@cratis/components 0.1.18 → 1.0.3

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 (294) hide show
  1. package/README.md +83 -0
  2. package/dist/cjs/CommandDialog/CommandDialog.js +14 -25
  3. package/dist/cjs/CommandDialog/CommandDialog.js.map +1 -1
  4. package/dist/cjs/CommandForm/fields/CheckboxField.js +2 -2
  5. package/dist/cjs/CommandForm/fields/CheckboxField.js.map +1 -1
  6. package/dist/cjs/CommandForm/fields/DropdownField.js +5 -5
  7. package/dist/cjs/CommandForm/fields/DropdownField.js.map +1 -1
  8. package/dist/cjs/CommandForm/fields/InputTextField.js +2 -2
  9. package/dist/cjs/CommandForm/fields/InputTextField.js.map +1 -1
  10. package/dist/cjs/CommandForm/fields/NumberField.js +2 -2
  11. package/dist/cjs/CommandForm/fields/NumberField.js.map +1 -1
  12. package/dist/cjs/CommandForm/fields/SliderField.js +5 -9
  13. package/dist/cjs/CommandForm/fields/SliderField.js.map +1 -1
  14. package/dist/cjs/CommandForm/fields/TextAreaField.js +2 -2
  15. package/dist/cjs/CommandForm/fields/TextAreaField.js.map +1 -1
  16. package/dist/cjs/CommandForm/index.js +35 -15
  17. package/dist/cjs/CommandForm/index.js.map +1 -1
  18. package/dist/cjs/Common/ErrorBoundary.js +26 -0
  19. package/dist/cjs/Common/ErrorBoundary.js.map +1 -0
  20. package/dist/cjs/Common/FormElement.js +10 -0
  21. package/dist/cjs/Common/FormElement.js.map +1 -0
  22. package/dist/cjs/Common/index.js +12 -0
  23. package/dist/cjs/Common/index.js.map +1 -0
  24. package/dist/cjs/DataTables/DataTableForObservableQuery.js +53 -1
  25. package/dist/cjs/DataTables/DataTableForObservableQuery.js.map +1 -1
  26. package/dist/cjs/DataTables/DataTableForQuery.js +19 -1
  27. package/dist/cjs/DataTables/DataTableForQuery.js.map +1 -1
  28. package/dist/cjs/Dialogs/BusyIndicatorDialog.js +2 -3
  29. package/dist/cjs/Dialogs/BusyIndicatorDialog.js.map +1 -1
  30. package/dist/cjs/Dialogs/ConfirmationDialog.js +4 -21
  31. package/dist/cjs/Dialogs/ConfirmationDialog.js.map +1 -1
  32. package/dist/cjs/Dialogs/Dialog.js +66 -0
  33. package/dist/cjs/Dialogs/Dialog.js.map +1 -0
  34. package/dist/cjs/Dialogs/index.js +4 -2
  35. package/dist/cjs/Dialogs/index.js.map +1 -1
  36. package/dist/cjs/ObjectContentEditor/ObjectContentEditor.js +156 -0
  37. package/dist/cjs/ObjectContentEditor/ObjectContentEditor.js.map +1 -0
  38. package/dist/cjs/ObjectContentEditor/index.js +8 -0
  39. package/dist/cjs/ObjectContentEditor/index.js.map +1 -0
  40. package/dist/cjs/ObjectNavigationalBar/ObjectNavigationalBar.js +45 -0
  41. package/dist/cjs/ObjectNavigationalBar/ObjectNavigationalBar.js.map +1 -0
  42. package/dist/cjs/ObjectNavigationalBar/index.js +8 -0
  43. package/dist/cjs/ObjectNavigationalBar/index.js.map +1 -0
  44. package/dist/cjs/PivotViewer/components/PivotCanvas.js.map +1 -1
  45. package/dist/cjs/PivotViewer/components/PivotViewerMain.js.map +1 -1
  46. package/dist/cjs/PivotViewer/components/pivot/groups.js +15 -15
  47. package/dist/cjs/PivotViewer/components/pivot/groups.js.map +1 -1
  48. package/dist/cjs/PivotViewer/components/pivot/sprites.js +2 -2
  49. package/dist/cjs/PivotViewer/components/pivot/sprites.js.map +1 -1
  50. package/dist/cjs/PivotViewer/types.js.map +1 -1
  51. package/dist/cjs/SchemaEditor/NameCell.js +38 -0
  52. package/dist/cjs/SchemaEditor/NameCell.js.map +1 -0
  53. package/dist/cjs/SchemaEditor/SchemaEditor.js +352 -0
  54. package/dist/cjs/SchemaEditor/SchemaEditor.js.map +1 -0
  55. package/dist/cjs/SchemaEditor/SchemaEditor.module.css +11 -0
  56. package/dist/cjs/SchemaEditor/TypeCell.js +102 -0
  57. package/dist/cjs/SchemaEditor/TypeCell.js.map +1 -0
  58. package/dist/cjs/SchemaEditor/index.js +10 -0
  59. package/dist/cjs/SchemaEditor/index.js.map +1 -0
  60. package/dist/cjs/TimeMachine/TimeMachine.js +0 -3
  61. package/dist/cjs/TimeMachine/TimeMachine.js.map +1 -1
  62. package/dist/cjs/index.js +20 -12
  63. package/dist/cjs/index.js.map +1 -1
  64. package/dist/cjs/package.json +3 -0
  65. package/dist/cjs/types/TypeFormat.js +20 -0
  66. package/dist/cjs/types/TypeFormat.js.map +1 -0
  67. package/dist/esm/CommandDialog/CommandDialog.d.ts +1 -1
  68. package/dist/esm/CommandDialog/CommandDialog.d.ts.map +1 -1
  69. package/dist/esm/CommandDialog/CommandDialog.js +15 -26
  70. package/dist/esm/CommandDialog/CommandDialog.js.map +1 -1
  71. package/dist/esm/CommandDialog/CommandDialog.stories.d.ts +1 -0
  72. package/dist/esm/CommandDialog/CommandDialog.stories.d.ts.map +1 -1
  73. package/dist/esm/CommandDialog/CommandDialog.stories.js +57 -3
  74. package/dist/esm/CommandDialog/CommandDialog.stories.js.map +1 -1
  75. package/dist/esm/CommandForm/fields/CheckboxField.d.ts +3 -2
  76. package/dist/esm/CommandForm/fields/CheckboxField.d.ts.map +1 -1
  77. package/dist/esm/CommandForm/fields/CheckboxField.js +1 -1
  78. package/dist/esm/CommandForm/fields/CheckboxField.js.map +1 -1
  79. package/dist/esm/CommandForm/fields/DropdownField.d.ts +7 -6
  80. package/dist/esm/CommandForm/fields/DropdownField.d.ts.map +1 -1
  81. package/dist/esm/CommandForm/fields/DropdownField.js +6 -6
  82. package/dist/esm/CommandForm/fields/DropdownField.js.map +1 -1
  83. package/dist/esm/CommandForm/fields/Fields.stories.d.ts +13 -0
  84. package/dist/esm/CommandForm/fields/Fields.stories.d.ts.map +1 -0
  85. package/dist/esm/CommandForm/fields/Fields.stories.js +137 -0
  86. package/dist/esm/CommandForm/fields/Fields.stories.js.map +1 -0
  87. package/dist/esm/CommandForm/fields/InputTextField.d.ts +3 -2
  88. package/dist/esm/CommandForm/fields/InputTextField.d.ts.map +1 -1
  89. package/dist/esm/CommandForm/fields/InputTextField.js +1 -1
  90. package/dist/esm/CommandForm/fields/InputTextField.js.map +1 -1
  91. package/dist/esm/CommandForm/fields/NumberField.d.ts +3 -2
  92. package/dist/esm/CommandForm/fields/NumberField.d.ts.map +1 -1
  93. package/dist/esm/CommandForm/fields/NumberField.js +1 -1
  94. package/dist/esm/CommandForm/fields/NumberField.js.map +1 -1
  95. package/dist/esm/CommandForm/fields/SliderField.d.ts +5 -4
  96. package/dist/esm/CommandForm/fields/SliderField.d.ts.map +1 -1
  97. package/dist/esm/CommandForm/fields/SliderField.js +5 -9
  98. package/dist/esm/CommandForm/fields/SliderField.js.map +1 -1
  99. package/dist/esm/CommandForm/fields/TextAreaField.d.ts +3 -2
  100. package/dist/esm/CommandForm/fields/TextAreaField.d.ts.map +1 -1
  101. package/dist/esm/CommandForm/fields/TextAreaField.js +1 -1
  102. package/dist/esm/CommandForm/fields/TextAreaField.js.map +1 -1
  103. package/dist/esm/CommandForm/fields/index.d.ts +2 -2
  104. package/dist/esm/CommandForm/fields/index.d.ts.map +1 -1
  105. package/dist/esm/CommandForm/fields/index.js +2 -2
  106. package/dist/esm/CommandForm/fields/index.js.map +1 -1
  107. package/dist/esm/CommandForm/index.d.ts +1 -5
  108. package/dist/esm/CommandForm/index.d.ts.map +1 -1
  109. package/dist/esm/CommandForm/index.js +3 -7
  110. package/dist/esm/CommandForm/index.js.map +1 -1
  111. package/dist/esm/Common/ErrorBoundary.d.ts +1 -1
  112. package/dist/esm/Common/ErrorBoundary.js +7 -4
  113. package/dist/esm/Common/ErrorBoundary.js.map +1 -1
  114. package/dist/esm/Common/ErrorBoundary.stories.d.ts +7 -7
  115. package/dist/esm/Common/ErrorBoundary.stories.d.ts.map +1 -1
  116. package/dist/esm/Common/ErrorBoundary.stories.js +21 -5
  117. package/dist/esm/Common/ErrorBoundary.stories.js.map +1 -1
  118. package/dist/esm/Common/FormElement.js +7 -4
  119. package/dist/esm/Common/FormElement.js.map +1 -1
  120. package/dist/esm/Common/FormElement.stories.d.ts +8 -7
  121. package/dist/esm/Common/FormElement.stories.d.ts.map +1 -1
  122. package/dist/esm/Common/FormElement.stories.js +25 -4
  123. package/dist/esm/Common/FormElement.stories.js.map +1 -1
  124. package/dist/esm/Common/Page.stories.d.ts +7 -7
  125. package/dist/esm/Common/Page.stories.d.ts.map +1 -1
  126. package/dist/esm/Common/Page.stories.js +20 -5
  127. package/dist/esm/Common/Page.stories.js.map +1 -1
  128. package/dist/esm/Common/index.js +4 -4
  129. package/dist/esm/Common/index.js.map +1 -1
  130. package/dist/esm/DataPage/DataPage.stories.d.ts +7 -7
  131. package/dist/esm/DataPage/DataPage.stories.d.ts.map +1 -1
  132. package/dist/esm/DataPage/DataPage.stories.js +33 -5
  133. package/dist/esm/DataPage/DataPage.stories.js.map +1 -1
  134. package/dist/esm/DataTables/DataTableForObservableQuery.d.ts +1 -0
  135. package/dist/esm/DataTables/DataTableForObservableQuery.d.ts.map +1 -1
  136. package/dist/esm/DataTables/DataTableForObservableQuery.js +55 -3
  137. package/dist/esm/DataTables/DataTableForObservableQuery.js.map +1 -1
  138. package/dist/esm/DataTables/DataTableForObservableQuery.stories.d.ts +7 -7
  139. package/dist/esm/DataTables/DataTableForObservableQuery.stories.d.ts.map +1 -1
  140. package/dist/esm/DataTables/DataTableForObservableQuery.stories.js +55 -5
  141. package/dist/esm/DataTables/DataTableForObservableQuery.stories.js.map +1 -1
  142. package/dist/esm/DataTables/DataTableForQuery.d.ts +1 -0
  143. package/dist/esm/DataTables/DataTableForQuery.d.ts.map +1 -1
  144. package/dist/esm/DataTables/DataTableForQuery.js +21 -3
  145. package/dist/esm/DataTables/DataTableForQuery.js.map +1 -1
  146. package/dist/esm/DataTables/DataTableForQuery.stories.d.ts +7 -7
  147. package/dist/esm/DataTables/DataTableForQuery.stories.d.ts.map +1 -1
  148. package/dist/esm/DataTables/DataTableForQuery.stories.js +31 -5
  149. package/dist/esm/DataTables/DataTableForQuery.stories.js.map +1 -1
  150. package/dist/esm/Dialogs/BusyIndicatorDialog.d.ts.map +1 -1
  151. package/dist/esm/Dialogs/BusyIndicatorDialog.js +3 -4
  152. package/dist/esm/Dialogs/BusyIndicatorDialog.js.map +1 -1
  153. package/dist/esm/Dialogs/ConfirmationDialog.d.ts.map +1 -1
  154. package/dist/esm/Dialogs/ConfirmationDialog.js +6 -23
  155. package/dist/esm/Dialogs/ConfirmationDialog.js.map +1 -1
  156. package/dist/esm/Dialogs/Dialog.d.ts +23 -0
  157. package/dist/esm/Dialogs/Dialog.d.ts.map +1 -0
  158. package/dist/esm/Dialogs/Dialog.js +64 -0
  159. package/dist/esm/Dialogs/Dialog.js.map +1 -0
  160. package/dist/esm/Dialogs/index.d.ts +2 -1
  161. package/dist/esm/Dialogs/index.d.ts.map +1 -1
  162. package/dist/esm/Dialogs/index.js +2 -1
  163. package/dist/esm/Dialogs/index.js.map +1 -1
  164. package/dist/esm/ObjectContentEditor/ObjectContentEditor.d.ts +8 -0
  165. package/dist/esm/ObjectContentEditor/ObjectContentEditor.d.ts.map +1 -0
  166. package/dist/esm/ObjectContentEditor/ObjectContentEditor.js +135 -0
  167. package/dist/esm/ObjectContentEditor/ObjectContentEditor.js.map +1 -0
  168. package/dist/esm/ObjectContentEditor/ObjectContentEditor.stories.d.ts +10 -0
  169. package/dist/esm/ObjectContentEditor/ObjectContentEditor.stories.d.ts.map +1 -0
  170. package/dist/esm/ObjectContentEditor/ObjectContentEditor.stories.js +144 -0
  171. package/dist/esm/ObjectContentEditor/ObjectContentEditor.stories.js.map +1 -0
  172. package/dist/esm/ObjectContentEditor/index.d.ts +2 -0
  173. package/dist/esm/ObjectContentEditor/index.d.ts.map +1 -0
  174. package/dist/esm/ObjectContentEditor/index.js +2 -0
  175. package/dist/esm/ObjectContentEditor/index.js.map +1 -0
  176. package/dist/esm/ObjectNavigationalBar/ObjectNavigationalBar.d.ts +6 -0
  177. package/dist/esm/ObjectNavigationalBar/ObjectNavigationalBar.d.ts.map +1 -0
  178. package/dist/esm/ObjectNavigationalBar/ObjectNavigationalBar.js +24 -0
  179. package/dist/esm/ObjectNavigationalBar/ObjectNavigationalBar.js.map +1 -0
  180. package/dist/esm/ObjectNavigationalBar/ObjectNavigationalBar.stories.d.ts +10 -0
  181. package/dist/esm/ObjectNavigationalBar/ObjectNavigationalBar.stories.d.ts.map +1 -0
  182. package/dist/esm/ObjectNavigationalBar/ObjectNavigationalBar.stories.js +46 -0
  183. package/dist/esm/ObjectNavigationalBar/ObjectNavigationalBar.stories.js.map +1 -0
  184. package/dist/esm/ObjectNavigationalBar/index.d.ts +2 -0
  185. package/dist/esm/ObjectNavigationalBar/index.d.ts.map +1 -0
  186. package/dist/esm/ObjectNavigationalBar/index.js +2 -0
  187. package/dist/esm/ObjectNavigationalBar/index.js.map +1 -0
  188. package/dist/esm/PivotViewer/components/PivotCanvas.d.ts +2 -2
  189. package/dist/esm/PivotViewer/components/PivotCanvas.d.ts.map +1 -1
  190. package/dist/esm/PivotViewer/components/PivotCanvas.js.map +1 -1
  191. package/dist/esm/PivotViewer/components/PivotViewerMain.d.ts +2 -2
  192. package/dist/esm/PivotViewer/components/PivotViewerMain.d.ts.map +1 -1
  193. package/dist/esm/PivotViewer/components/PivotViewerMain.js.map +1 -1
  194. package/dist/esm/PivotViewer/components/pivot/groups.d.ts.map +1 -1
  195. package/dist/esm/PivotViewer/components/pivot/groups.js +2 -2
  196. package/dist/esm/PivotViewer/components/pivot/groups.js.map +1 -1
  197. package/dist/esm/PivotViewer/components/pivot/sprites.d.ts +4 -4
  198. package/dist/esm/PivotViewer/components/pivot/sprites.d.ts.map +1 -1
  199. package/dist/esm/PivotViewer/components/pivot/sprites.js +2 -2
  200. package/dist/esm/PivotViewer/components/pivot/sprites.js.map +1 -1
  201. package/dist/esm/PivotViewer/types.d.ts +2 -2
  202. package/dist/esm/PivotViewer/types.d.ts.map +1 -1
  203. package/dist/esm/PivotViewer/types.js.map +1 -1
  204. package/dist/esm/SchemaEditor/NameCell.d.ts +9 -0
  205. package/dist/esm/SchemaEditor/NameCell.d.ts.map +1 -0
  206. package/dist/esm/SchemaEditor/NameCell.js +17 -0
  207. package/dist/esm/SchemaEditor/NameCell.js.map +1 -0
  208. package/dist/esm/SchemaEditor/SchemaEditor.d.ts +17 -0
  209. package/dist/esm/SchemaEditor/SchemaEditor.d.ts.map +1 -0
  210. package/dist/esm/SchemaEditor/SchemaEditor.js +331 -0
  211. package/dist/esm/SchemaEditor/SchemaEditor.js.map +1 -0
  212. package/dist/esm/SchemaEditor/SchemaEditor.module.css +11 -0
  213. package/dist/esm/SchemaEditor/SchemaEditor.stories.d.ts +12 -0
  214. package/dist/esm/SchemaEditor/SchemaEditor.stories.d.ts.map +1 -0
  215. package/dist/esm/SchemaEditor/SchemaEditor.stories.js +158 -0
  216. package/dist/esm/SchemaEditor/SchemaEditor.stories.js.map +1 -0
  217. package/dist/esm/SchemaEditor/TypeCell.d.ts +14 -0
  218. package/dist/esm/SchemaEditor/TypeCell.d.ts.map +1 -0
  219. package/dist/esm/SchemaEditor/TypeCell.js +81 -0
  220. package/dist/esm/SchemaEditor/TypeCell.js.map +1 -0
  221. package/dist/esm/SchemaEditor/index.d.ts +4 -0
  222. package/dist/esm/SchemaEditor/index.d.ts.map +1 -0
  223. package/dist/esm/SchemaEditor/index.js +3 -0
  224. package/dist/esm/SchemaEditor/index.js.map +1 -0
  225. package/dist/esm/TimeMachine/EventsView.stories.d.ts +8 -7
  226. package/dist/esm/TimeMachine/EventsView.stories.d.ts.map +1 -1
  227. package/dist/esm/TimeMachine/EventsView.stories.js +80 -4
  228. package/dist/esm/TimeMachine/EventsView.stories.js.map +1 -1
  229. package/dist/esm/TimeMachine/Properties.stories.d.ts +9 -7
  230. package/dist/esm/TimeMachine/Properties.stories.d.ts.map +1 -1
  231. package/dist/esm/TimeMachine/Properties.stories.js +49 -4
  232. package/dist/esm/TimeMachine/Properties.stories.js.map +1 -1
  233. package/dist/esm/TimeMachine/ReadModelView.stories.d.ts +7 -7
  234. package/dist/esm/TimeMachine/ReadModelView.stories.d.ts.map +1 -1
  235. package/dist/esm/TimeMachine/ReadModelView.stories.js +79 -5
  236. package/dist/esm/TimeMachine/ReadModelView.stories.js.map +1 -1
  237. package/dist/esm/TimeMachine/TimeMachine.js +1 -1
  238. package/dist/esm/TimeMachine/TimeMachine.stories.d.ts +8 -7
  239. package/dist/esm/TimeMachine/TimeMachine.stories.d.ts.map +1 -1
  240. package/dist/esm/TimeMachine/TimeMachine.stories.js +113 -4
  241. package/dist/esm/TimeMachine/TimeMachine.stories.js.map +1 -1
  242. package/dist/esm/index.d.ts +7 -3
  243. package/dist/esm/index.d.ts.map +1 -1
  244. package/dist/esm/index.js +20 -12
  245. package/dist/esm/index.js.map +1 -1
  246. package/dist/esm/package.json +3 -0
  247. package/dist/esm/tsconfig.tsbuildinfo +1 -1
  248. package/dist/esm/types/JsonSchema.d.ts +32 -0
  249. package/dist/esm/types/JsonSchema.d.ts.map +1 -0
  250. package/dist/esm/types/JsonSchema.js +2 -0
  251. package/dist/esm/types/JsonSchema.js.map +1 -0
  252. package/dist/esm/types/TypeFormat.d.ts +6 -0
  253. package/dist/esm/types/TypeFormat.d.ts.map +1 -0
  254. package/dist/esm/types/TypeFormat.js +18 -0
  255. package/dist/esm/types/TypeFormat.js.map +1 -0
  256. package/package.json +41 -78
  257. package/dist/cjs/CommandForm/CommandForm.js +0 -183
  258. package/dist/cjs/CommandForm/CommandForm.js.map +0 -1
  259. package/dist/cjs/CommandForm/CommandFormField.js +0 -11
  260. package/dist/cjs/CommandForm/CommandFormField.js.map +0 -1
  261. package/dist/cjs/CommandForm/CommandFormFields.js +0 -73
  262. package/dist/cjs/CommandForm/CommandFormFields.js.map +0 -1
  263. package/dist/cjs/CommandForm/ValidationMessage.js +0 -24
  264. package/dist/cjs/CommandForm/ValidationMessage.js.map +0 -1
  265. package/dist/cjs/CommandForm/asCommandFormField.js +0 -47
  266. package/dist/cjs/CommandForm/asCommandFormField.js.map +0 -1
  267. package/dist/esm/CommandForm/CommandForm.d.ts +0 -49
  268. package/dist/esm/CommandForm/CommandForm.d.ts.map +0 -1
  269. package/dist/esm/CommandForm/CommandForm.js +0 -178
  270. package/dist/esm/CommandForm/CommandForm.js.map +0 -1
  271. package/dist/esm/CommandForm/CommandForm.stories.d.ts +0 -8
  272. package/dist/esm/CommandForm/CommandForm.stories.d.ts.map +0 -1
  273. package/dist/esm/CommandForm/CommandForm.stories.js +0 -45
  274. package/dist/esm/CommandForm/CommandForm.stories.js.map +0 -1
  275. package/dist/esm/CommandForm/CommandFormField.d.ts +0 -18
  276. package/dist/esm/CommandForm/CommandFormField.d.ts.map +0 -1
  277. package/dist/esm/CommandForm/CommandFormField.js +0 -9
  278. package/dist/esm/CommandForm/CommandFormField.js.map +0 -1
  279. package/dist/esm/CommandForm/CommandFormFields.d.ts +0 -11
  280. package/dist/esm/CommandForm/CommandFormFields.d.ts.map +0 -1
  281. package/dist/esm/CommandForm/CommandFormFields.js +0 -71
  282. package/dist/esm/CommandForm/CommandFormFields.js.map +0 -1
  283. package/dist/esm/CommandForm/UserRegistrationCommand.d.ts +0 -63
  284. package/dist/esm/CommandForm/UserRegistrationCommand.d.ts.map +0 -1
  285. package/dist/esm/CommandForm/UserRegistrationCommand.js +0 -143
  286. package/dist/esm/CommandForm/UserRegistrationCommand.js.map +0 -1
  287. package/dist/esm/CommandForm/ValidationMessage.d.ts +0 -8
  288. package/dist/esm/CommandForm/ValidationMessage.d.ts.map +0 -1
  289. package/dist/esm/CommandForm/ValidationMessage.js +0 -22
  290. package/dist/esm/CommandForm/ValidationMessage.js.map +0 -1
  291. package/dist/esm/CommandForm/asCommandFormField.d.ts +0 -32
  292. package/dist/esm/CommandForm/asCommandFormField.d.ts.map +0 -1
  293. package/dist/esm/CommandForm/asCommandFormField.js +0 -45
  294. package/dist/esm/CommandForm/asCommandFormField.js.map +0 -1
@@ -1,6 +1,27 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
- import * as Comp from './FormElement';
3
- const Component = Comp.default || Object.values(Comp)[0];
4
- export default { title: 'Common/FormElement', component: Component };
5
- export const Default = () => (Component ? _jsx(Component, {}) : _jsx("div", { children: "Unable to render component" }));
2
+ import { FormElement } from './FormElement';
3
+ import { InputText } from 'primereact/inputtext';
4
+ const meta = {
5
+ title: 'Common/FormElement',
6
+ component: FormElement,
7
+ };
8
+ export default meta;
9
+ export const Default = {
10
+ args: {
11
+ icon: _jsx("i", { className: "pi pi-user" }),
12
+ },
13
+ render: (args) => (_jsx("div", { className: "p-4", children: _jsx(FormElement, { ...args, children: _jsx(InputText, { placeholder: "Username" }) }) }))
14
+ };
15
+ export const WithEmailIcon = {
16
+ args: {
17
+ icon: _jsx("i", { className: "pi pi-envelope" }),
18
+ },
19
+ render: (args) => (_jsx("div", { className: "p-4", children: _jsx(FormElement, { ...args, children: _jsx(InputText, { type: "email", placeholder: "Email address" }) }) }))
20
+ };
21
+ export const WithSearchIcon = {
22
+ args: {
23
+ icon: _jsx("i", { className: "pi pi-search" }),
24
+ },
25
+ render: (args) => (_jsx("div", { className: "p-4", children: _jsx(FormElement, { ...args, children: _jsx(InputText, { placeholder: "Search..." }) }) }))
26
+ };
6
27
  //# sourceMappingURL=FormElement.stories.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"FormElement.stories.js","sourceRoot":"","sources":["../../../Common/FormElement.stories.tsx"],"names":[],"mappings":";AAIA,OAAO,KAAK,IAAI,MAAM,eAAe,CAAC;AACtC,MAAM,SAAS,GAA4D,IAAgC,CAAC,OAA4E,IAAK,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAuE,CAAC;AAE1R,eAAe,EAAE,KAAK,EAAE,oBAAoB,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC;AAErE,MAAM,CAAC,MAAM,OAAO,GAAG,GAAG,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAC,SAAS,KAAG,CAAC,CAAC,CAAC,uDAAqC,CAAC,CAAC"}
1
+ {"version":3,"file":"FormElement.stories.js","sourceRoot":"","sources":["../../../Common/FormElement.stories.tsx"],"names":[],"mappings":";AAKA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEjD,MAAM,IAAI,GAA6B;IACnC,KAAK,EAAE,oBAAoB;IAC3B,SAAS,EAAE,WAAW;CACzB,CAAC;AAEF,eAAe,IAAI,CAAC;AAGpB,MAAM,CAAC,MAAM,OAAO,GAAU;IAC1B,IAAI,EAAE;QACF,IAAI,EAAE,YAAG,SAAS,EAAC,YAAY,GAAG;KACrC;IACD,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CACd,cAAK,SAAS,EAAC,KAAK,YAChB,KAAC,WAAW,OAAK,IAAI,YACjB,KAAC,SAAS,IAAC,WAAW,EAAC,UAAU,GAAG,GAC1B,GACZ,CACT;CACJ,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAAU;IAChC,IAAI,EAAE;QACF,IAAI,EAAE,YAAG,SAAS,EAAC,gBAAgB,GAAG;KACzC;IACD,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CACd,cAAK,SAAS,EAAC,KAAK,YAChB,KAAC,WAAW,OAAK,IAAI,YACjB,KAAC,SAAS,IAAC,IAAI,EAAC,OAAO,EAAC,WAAW,EAAC,eAAe,GAAG,GAC5C,GACZ,CACT;CACJ,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAU;IACjC,IAAI,EAAE;QACF,IAAI,EAAE,YAAG,SAAS,EAAC,cAAc,GAAG;KACvC;IACD,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CACd,cAAK,SAAS,EAAC,KAAK,YAChB,KAAC,WAAW,OAAK,IAAI,YACjB,KAAC,SAAS,IAAC,WAAW,EAAC,WAAW,GAAG,GAC3B,GACZ,CACT;CACJ,CAAC"}
@@ -1,8 +1,8 @@
1
- import React from 'react';
2
- declare const _default: {
3
- title: string;
4
- component: React.ComponentType<Record<string, never>> | undefined;
5
- };
6
- export default _default;
7
- export declare const Default: () => import("react/jsx-runtime").JSX.Element;
1
+ import { Meta, StoryObj } from '@storybook/react';
2
+ import { Page } from './Page';
3
+ declare const meta: Meta<typeof Page>;
4
+ export default meta;
5
+ type Story = StoryObj<typeof Page>;
6
+ export declare const Default: Story;
7
+ export declare const WithPanel: Story;
8
8
  //# sourceMappingURL=Page.stories.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Page.stories.d.ts","sourceRoot":"","sources":["../../../Common/Page.stories.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,MAAM,OAAO,CAAC;;;;;AAI1B,wBAA8D;AAE9D,eAAO,MAAM,OAAO,+CAA4E,CAAC"}
1
+ {"version":3,"file":"Page.stories.d.ts","sourceRoot":"","sources":["../../../Common/Page.stories.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAE9B,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,IAAI,CAG3B,CAAC;AAEF,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AAEnC,eAAO,MAAM,OAAO,EAAE,KAYrB,CAAC;AAEF,eAAO,MAAM,SAAS,EAAE,KAavB,CAAC"}
@@ -1,6 +1,21 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import * as Comp from './Page';
3
- const Component = Comp.default || Object.values(Comp)[0];
4
- export default { title: 'Common/Page', component: Component };
5
- export const Default = () => (Component ? _jsx(Component, {}) : _jsx("div", { children: "Unable to render component" }));
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Page } from './Page';
3
+ const meta = {
4
+ title: 'Common/Page',
5
+ component: Page,
6
+ };
7
+ export default meta;
8
+ export const Default = {
9
+ args: {
10
+ title: 'My Page Title',
11
+ },
12
+ render: (args) => (_jsx(Page, { ...args, children: _jsxs("div", { className: "p-4", children: [_jsx("p", { children: "This is the page content area." }), _jsx("p", { children: "The Page component provides a consistent layout with a title and content area." })] }) }))
13
+ };
14
+ export const WithPanel = {
15
+ args: {
16
+ title: 'Page with Panel',
17
+ panel: true,
18
+ },
19
+ render: (args) => (_jsx(Page, { ...args, children: _jsxs("div", { className: "p-4", children: [_jsx("p", { children: "This page has the panel style applied." }), _jsx("p", { children: "The panel prop adds special styling to the content area." })] }) }))
20
+ };
6
21
  //# sourceMappingURL=Page.stories.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Page.stories.js","sourceRoot":"","sources":["../../../Common/Page.stories.tsx"],"names":[],"mappings":";AAIA,OAAO,KAAK,IAAI,MAAM,QAAQ,CAAC;AAC/B,MAAM,SAAS,GAA4D,IAAgC,CAAC,OAA4E,IAAK,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAuE,CAAC;AAE1R,eAAe,EAAE,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC;AAE9D,MAAM,CAAC,MAAM,OAAO,GAAG,GAAG,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAC,SAAS,KAAG,CAAC,CAAC,CAAC,uDAAqC,CAAC,CAAC"}
1
+ {"version":3,"file":"Page.stories.js","sourceRoot":"","sources":["../../../Common/Page.stories.tsx"],"names":[],"mappings":";AAKA,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAE9B,MAAM,IAAI,GAAsB;IAC5B,KAAK,EAAE,aAAa;IACpB,SAAS,EAAE,IAAI;CAClB,CAAC;AAEF,eAAe,IAAI,CAAC;AAGpB,MAAM,CAAC,MAAM,OAAO,GAAU;IAC1B,IAAI,EAAE;QACF,KAAK,EAAE,eAAe;KACzB;IACD,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CACd,KAAC,IAAI,OAAK,IAAI,YACV,eAAK,SAAS,EAAC,KAAK,aAChB,yDAAqC,EACrC,yGAAqF,IACnF,GACH,CACV;CACJ,CAAC;AAEF,MAAM,CAAC,MAAM,SAAS,GAAU;IAC5B,IAAI,EAAE;QACF,KAAK,EAAE,iBAAiB;QACxB,KAAK,EAAE,IAAI;KACd;IACD,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CACd,KAAC,IAAI,OAAK,IAAI,YACV,eAAK,SAAS,EAAC,KAAK,aAChB,iEAA6C,EAC7C,mFAA+D,IAC7D,GACH,CACV;CACJ,CAAC"}
@@ -1,4 +1,4 @@
1
- export * from './ErrorBoundary';
2
- export * from './Page';
3
- export * from './FormElement';
4
- //# sourceMappingURL=index.js.map
1
+ export { ErrorBoundary } from './ErrorBoundary.js';
2
+ export { Page } from './Page.js';
3
+ export { FormElement } from './FormElement.js';
4
+ //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../Common/index.ts"],"names":[],"mappings":"AAGA,cAAc,iBAAiB,CAAC;AAChC,cAAc,QAAQ,CAAC;AACvB,cAAc,eAAe,CAAC"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;"}
@@ -1,8 +1,8 @@
1
- import React from 'react';
2
- declare const _default: {
3
- title: string;
4
- component: React.ComponentType<Record<string, never>> | undefined;
5
- };
6
- export default _default;
7
- export declare const Default: () => import("react/jsx-runtime").JSX.Element;
1
+ import { Meta, StoryObj } from '@storybook/react';
2
+ import { DataPage } from './DataPage';
3
+ declare const meta: Meta<typeof DataPage>;
4
+ export default meta;
5
+ type Story = StoryObj<typeof DataPage>;
6
+ export declare const Default: Story;
7
+ export declare const WithoutDetails: Story;
8
8
  //# sourceMappingURL=DataPage.stories.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"DataPage.stories.d.ts","sourceRoot":"","sources":["../../../DataPage/DataPage.stories.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,MAAM,OAAO,CAAC;;;;;AAI1B,wBAAoE;AAEpE,eAAO,MAAM,OAAO,+CAA4E,CAAC"}
1
+ {"version":3,"file":"DataPage.stories.d.ts","sourceRoot":"","sources":["../../../DataPage/DataPage.stories.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAY,MAAM,YAAY,CAAC;AAIhD,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,QAAQ,CAM/B,CAAC;AAEF,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,QAAQ,CAAC,CAAC;AA8CvC,eAAO,MAAM,OAAO,EAAE,KAuCrB,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,KA0B5B,CAAC"}
@@ -1,6 +1,34 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import * as Comp from './DataPage';
3
- const Component = Comp.default || Object.values(Comp)[0];
4
- export default { title: 'DataPage/DataPage', component: Component };
5
- export const Default = () => (Component ? _jsx(Component, {}) : _jsx("div", { children: "Unable to render component" }));
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { DataPage, MenuItem } from './DataPage';
3
+ import { Column } from 'primereact/column';
4
+ import { QueryFor } from '@cratis/arc/queries';
5
+ const meta = {
6
+ title: 'DataPage/DataPage',
7
+ component: DataPage,
8
+ parameters: {
9
+ layout: 'fullscreen',
10
+ },
11
+ };
12
+ export default meta;
13
+ class PersonsQuery extends QueryFor {
14
+ route = '/api/persons';
15
+ routeTemplate = '/api/persons';
16
+ defaultValue = { id: 0, name: '', email: '', role: '' };
17
+ parameterDescriptors = [];
18
+ get requiredRequestParameters() {
19
+ return [];
20
+ }
21
+ constructor() {
22
+ super(Object, false);
23
+ }
24
+ }
25
+ const PersonDetails = ({ item }) => {
26
+ return (_jsxs("div", { className: "p-4", children: [_jsx("h2", { className: "text-2xl font-bold mb-4", children: "Person Details" }), _jsxs("div", { className: "space-y-2", children: [_jsxs("div", { children: [_jsx("strong", { children: "ID:" }), " ", item.id] }), _jsxs("div", { children: [_jsx("strong", { children: "Name:" }), " ", item.name] }), _jsxs("div", { children: [_jsx("strong", { children: "Email:" }), " ", item.email] }), _jsxs("div", { children: [_jsx("strong", { children: "Role:" }), " ", item.role] })] })] }));
27
+ };
28
+ export const Default = {
29
+ render: () => (_jsx("div", { style: { height: '600px' }, children: _jsxs(DataPage, { title: "Persons", query: PersonsQuery, emptyMessage: "No persons found", dataKey: "id", detailsComponent: PersonDetails, globalFilterFields: ['name', 'email', 'role'], children: [_jsxs(DataPage.MenuItems, { children: [_jsx(MenuItem, { label: "Add Person", icon: () => _jsx("i", { className: "pi pi-plus" }), command: () => alert('Add person clicked') }), _jsx(MenuItem, { label: "Edit Person", icon: () => _jsx("i", { className: "pi pi-pencil" }), command: () => alert('Edit person clicked'), disableOnUnselected: true }), _jsx(MenuItem, { label: "Delete Person", icon: () => _jsx("i", { className: "pi pi-trash" }), command: () => alert('Delete person clicked'), disableOnUnselected: true })] }), _jsxs(DataPage.Columns, { children: [_jsx(Column, { field: "id", header: "ID", sortable: true, style: { width: '10%' } }), _jsx(Column, { field: "name", header: "Name", sortable: true, style: { width: '30%' } }), _jsx(Column, { field: "email", header: "Email", sortable: true, style: { width: '35%' } }), _jsx(Column, { field: "role", header: "Role", sortable: true, style: { width: '25%' } })] })] }) }))
30
+ };
31
+ export const WithoutDetails = {
32
+ render: () => (_jsx("div", { style: { height: '600px' }, children: _jsxs(DataPage, { title: "Persons (No Details Panel)", query: PersonsQuery, emptyMessage: "No persons found", dataKey: "id", globalFilterFields: ['name', 'email', 'role'], children: [_jsx(DataPage.MenuItems, { children: _jsx(MenuItem, { label: "Refresh", icon: () => _jsx("i", { className: "pi pi-refresh" }), command: () => alert('Refresh clicked') }) }), _jsxs(DataPage.Columns, { children: [_jsx(Column, { field: "id", header: "ID", sortable: true, style: { width: '10%' } }), _jsx(Column, { field: "name", header: "Name", sortable: true, style: { width: '30%' } }), _jsx(Column, { field: "email", header: "Email", sortable: true, style: { width: '35%' } }), _jsx(Column, { field: "role", header: "Role", sortable: true, style: { width: '25%' } })] })] }) }))
33
+ };
6
34
  //# sourceMappingURL=DataPage.stories.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DataPage.stories.js","sourceRoot":"","sources":["../../../DataPage/DataPage.stories.tsx"],"names":[],"mappings":";AAIA,OAAO,KAAK,IAAI,MAAM,YAAY,CAAC;AACnC,MAAM,SAAS,GAA4D,IAAgC,CAAC,OAAiE,IAAK,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAA4D,CAAC;AAEpQ,eAAe,EAAE,KAAK,EAAE,mBAAmB,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC;AAEpE,MAAM,CAAC,MAAM,OAAO,GAAG,GAAG,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAC,SAAS,KAAG,CAAC,CAAC,CAAC,uDAAqC,CAAC,CAAC"}
1
+ {"version":3,"file":"DataPage.stories.js","sourceRoot":"","sources":["../../../DataPage/DataPage.stories.tsx"],"names":[],"mappings":"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"}
@@ -12,6 +12,7 @@ export interface DataTableForObservableQueryProps<TQuery extends IObservableQuer
12
12
  onSelectionChange?(event: DataTableSelectionSingleChangeEvent<TDataType[]>): void;
13
13
  globalFilterFields?: string[] | undefined;
14
14
  defaultFilters?: DataTableFilterMeta;
15
+ clientFiltering?: boolean;
15
16
  }
16
17
  export declare const DataTableForObservableQuery: <TQuery extends IObservableQueryFor<TDataType, TArguments>, TDataType extends object, TArguments extends object>(props: DataTableForObservableQueryProps<TQuery, TDataType, TArguments>) => import("react/jsx-runtime").JSX.Element;
17
18
  //# sourceMappingURL=DataTableForObservableQuery.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"DataTableForObservableQuery.d.ts","sourceRoot":"","sources":["../../../DataTables/DataTableForObservableQuery.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAa,mBAAmB,EAAE,mCAAmC,EAAE,MAAM,sBAAsB,CAAC;AAC3G,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,mBAAmB,EAAU,MAAM,qBAAqB,CAAC;AAElE,OAAO,EAAE,SAAS,EAAY,MAAM,OAAO,CAAC;AAO5C,MAAM,WAAW,gCAAgC,CAAC,MAAM,SAAS,mBAAmB,CAAC,SAAS,EAAE,UAAU,CAAC,EAAE,SAAS,SAAS,MAAM,EAAE,UAAU,SAAS,MAAM;IAI5J,QAAQ,CAAC,EAAE,SAAS,CAAC;IAKrB,KAAK,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAK3B,cAAc,CAAC,EAAE,UAAU,CAAC;IAK5B,YAAY,EAAE,MAAM,CAAC;IAKrB,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAK7B,SAAS,CAAC,EAAE,SAAS,GAAG,SAAS,GAAG,IAAI,CAAC;IAKzC,iBAAiB,CAAC,CAAC,KAAK,EAAE,mCAAmC,CAAC,SAAS,EAAE,CAAC,GAAG,IAAI,CAAC;IAKlF,kBAAkB,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IAK1C,cAAc,CAAC,EAAE,mBAAmB,CAAC;CACxC;AASD,eAAO,MAAM,2BAA2B,GAAI,MAAM,SAAS,mBAAmB,CAAC,SAAS,EAAE,UAAU,CAAC,EAAE,SAAS,SAAS,MAAM,EAAE,UAAU,SAAS,MAAM,EAAE,OAAO,gCAAgC,CAAC,MAAM,EAAE,SAAS,EAAE,UAAU,CAAC,4CA4BjO,CAAC"}
1
+ {"version":3,"file":"DataTableForObservableQuery.d.ts","sourceRoot":"","sources":["../../../DataTables/DataTableForObservableQuery.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAa,mBAAmB,EAAE,mCAAmC,EAAE,MAAM,sBAAsB,CAAC;AAE3G,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,mBAAmB,EAAU,MAAM,qBAAqB,CAAC;AAElE,OAAO,EAAE,SAAS,EAA+B,MAAM,OAAO,CAAC;AAK/D,MAAM,WAAW,gCAAgC,CAAC,MAAM,SAAS,mBAAmB,CAAC,SAAS,EAAE,UAAU,CAAC,EAAE,SAAS,SAAS,MAAM,EAAE,UAAU,SAAS,MAAM;IAI5J,QAAQ,CAAC,EAAE,SAAS,CAAC;IAKrB,KAAK,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAK3B,cAAc,CAAC,EAAE,UAAU,CAAC;IAK5B,YAAY,EAAE,MAAM,CAAC;IAKrB,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAK7B,SAAS,CAAC,EAAE,SAAS,GAAG,SAAS,GAAG,IAAI,CAAC;IAKzC,iBAAiB,CAAC,CAAC,KAAK,EAAE,mCAAmC,CAAC,SAAS,EAAE,CAAC,GAAG,IAAI,CAAC;IAKlF,kBAAkB,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IAK1C,cAAc,CAAC,EAAE,mBAAmB,CAAC;IAKrC,eAAe,CAAC,EAAE,OAAO,CAAC;CAC7B;AASD,eAAO,MAAM,2BAA2B,GAAI,MAAM,SAAS,mBAAmB,CAAC,SAAS,EAAE,UAAU,CAAC,EAAE,SAAS,SAAS,MAAM,EAAE,UAAU,SAAS,MAAM,EAAE,OAAO,gCAAgC,CAAC,MAAM,EAAE,SAAS,EAAE,UAAU,CAAC,4CAgGjO,CAAC"}
@@ -1,14 +1,66 @@
1
- import { jsx } from 'react/jsx-runtime';
1
+ import { jsxs, jsx } from 'react/jsx-runtime';
2
2
  import { DataTable } from 'primereact/datatable';
3
+ import { Paginator } from 'primereact/paginator';
3
4
  import { Paging } from '@cratis/arc/queries';
4
5
  import { useObservableQueryWithPaging } from '@cratis/arc.react/queries';
5
- import { useState } from 'react';
6
+ import { useState, useRef, useEffect } from 'react';
6
7
 
7
8
  const paging = new Paging(0, 20);
8
9
  const DataTableForObservableQuery = (props) => {
9
10
  const [filters, setFilters] = useState(props.defaultFilters ?? {});
11
+ const [filteredTotal, setFilteredTotal] = useState(undefined);
10
12
  const [result, , setPage] = useObservableQueryWithPaging(props.query, paging, props.queryArguments);
11
- return (jsx(DataTable, { value: result.data, lazy: true, rows: paging.pageSize, totalRecords: result.paging.totalItems, paginator: true, alwaysShowPaginator: false, first: result.paging.page * paging.pageSize, onPage: (e) => setPage(e.page ?? 0), scrollable: true, scrollHeight: 'flex', selectionMode: 'single', selection: props.selection, onSelectionChange: props.onSelectionChange, dataKey: props.dataKey, filters: filters, filterDisplay: 'menu', onFilter: (e) => setFilters(e.filters), globalFilterFields: props.globalFilterFields, emptyMessage: props.emptyMessage, children: props.children }));
13
+ const containerRef = useRef(null);
14
+ const [tableHeight, setTableHeight] = useState(600);
15
+ const timeoutRef = useRef(undefined);
16
+ const isClientFiltering = props.clientFiltering === true;
17
+ const totalRecords = isClientFiltering && filteredTotal !== undefined ? filteredTotal : result.paging.totalItems;
18
+ useEffect(() => {
19
+ if (!containerRef.current)
20
+ return;
21
+ const resizeObserver = new ResizeObserver((entries) => {
22
+ if (timeoutRef.current) {
23
+ clearTimeout(timeoutRef.current);
24
+ }
25
+ timeoutRef.current = setTimeout(() => {
26
+ for (const entry of entries) {
27
+ const containerHeight = entry.contentRect.height;
28
+ if (containerHeight > 0) {
29
+ const paginatorHeight = result.paging.totalItems > 0 ? 56 : 0;
30
+ const calculatedHeight = containerHeight - paginatorHeight - 2;
31
+ const newHeight = Math.max(calculatedHeight, 200);
32
+ setTableHeight(prevHeight => {
33
+ if (Math.abs(newHeight - prevHeight) > 5) {
34
+ return newHeight;
35
+ }
36
+ return prevHeight;
37
+ });
38
+ }
39
+ }
40
+ }, 10);
41
+ });
42
+ resizeObserver.observe(containerRef.current);
43
+ return () => {
44
+ if (timeoutRef.current) {
45
+ clearTimeout(timeoutRef.current);
46
+ }
47
+ resizeObserver.disconnect();
48
+ };
49
+ }, [result.paging.totalItems]);
50
+ return (jsxs("div", { ref: containerRef, style: {
51
+ display: 'flex',
52
+ flexDirection: 'column',
53
+ height: '100%',
54
+ border: '1px solid var(--surface-border)',
55
+ borderRadius: 'var(--border-radius)',
56
+ overflow: 'hidden'
57
+ }, children: [jsx("div", { style: { height: `${tableHeight}px`, overflow: 'hidden' }, children: jsx(DataTable, { value: result.data, lazy: !isClientFiltering, rows: paging.pageSize, totalRecords: totalRecords, scrollable: true, scrollHeight: '100%', selectionMode: 'single', selection: props.selection, onSelectionChange: props.onSelectionChange, dataKey: props.dataKey, filters: filters, filterDisplay: 'menu', onFilter: (e) => {
58
+ setFilters(e.filters);
59
+ if (isClientFiltering) {
60
+ const filteredValue = e.filteredValue;
61
+ setFilteredTotal(filteredValue ? filteredValue.length : undefined);
62
+ }
63
+ }, globalFilterFields: props.globalFilterFields, emptyMessage: props.emptyMessage, children: props.children }) }), result.paging.totalItems > 0 && (jsx("div", { style: { borderTop: '1px solid var(--surface-border)' }, children: jsx(Paginator, { first: result.paging.page * paging.pageSize, rows: paging.pageSize, totalRecords: result.paging.totalItems, onPageChange: (e) => setPage(e.page) }) }))] }));
12
64
  };
13
65
 
14
66
  export { DataTableForObservableQuery };
@@ -1 +1 @@
1
- {"version":3,"file":"DataTableForObservableQuery.js","sources":["../../../DataTables/DataTableForObservableQuery.tsx"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport { DataTable, DataTableFilterMeta, DataTableSelectionSingleChangeEvent } from 'primereact/datatable';\nimport { Constructor } from '@cratis/fundamentals';\nimport { IObservableQueryFor, Paging } from '@cratis/arc/queries';\nimport { useObservableQueryWithPaging } from '@cratis/arc.react/queries';\nimport { ReactNode, useState } from 'react';\n\n \n\n/**\n * Props for the DataTableForQuery component\n */\nexport interface DataTableForObservableQueryProps<TQuery extends IObservableQueryFor<TDataType, TArguments>, TDataType extends object, TArguments extends object> {\n /**\n * Children to render\n */\n children?: ReactNode;\n\n /**\n * The type of query to use\n */\n query: Constructor<TQuery>;\n\n /**\n * Optional arguments to pass to the query\n */\n queryArguments?: TArguments;\n\n /**\n * The message to show when there is no data\n */\n emptyMessage: string;\n\n /**\n * The key to use for the data\n */\n dataKey?: string | undefined;\n\n /**\n * The current selection.\n */\n selection?: TDataType | undefined | null;\n\n /**\n * Callback for when the selection changes\n */\n onSelectionChange?(event: DataTableSelectionSingleChangeEvent<TDataType[]>): void;\n\n /**\n * Fields to use for global filtering\n */\n globalFilterFields?: string[] | undefined;\n\n /**\n * Default filters to use\n */\n defaultFilters?: DataTableFilterMeta;\n}\n\nconst paging = new Paging(0, 20);\n\n/**\n * Represents a DataTable for a query.\n * @param props Props for the component\n * @returns Function to render the DataTableForQuery component\n */\nexport const DataTableForObservableQuery = <TQuery extends IObservableQueryFor<TDataType, TArguments>, TDataType extends object, TArguments extends object>(props: DataTableForObservableQueryProps<TQuery, TDataType, TArguments>) => {\n const [filters, setFilters] = useState<DataTableFilterMeta>(props.defaultFilters ?? {});\n const [result, , setPage] = useObservableQueryWithPaging(props.query, paging, props.queryArguments);\n\n return (\n <DataTable\n value={result.data as unknown as object[]}\n lazy\n rows={paging.pageSize}\n totalRecords={result.paging.totalItems}\n paginator\n alwaysShowPaginator={false}\n first={result.paging.page * paging.pageSize}\n onPage={(e) => setPage(e.page ?? 0)}\n scrollable\n scrollHeight={'flex'}\n selectionMode='single'\n selection={props.selection}\n onSelectionChange={props.onSelectionChange}\n dataKey={props.dataKey}\n filters={filters}\n filterDisplay='menu'\n onFilter={(e) => setFilters(e.filters)}\n globalFilterFields={props.globalFilterFields}\n emptyMessage={props.emptyMessage}>\n {props.children}\n </DataTable>\n );\n};\n"],"names":["_jsx"],"mappings":";;;;;;AA6DA,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,CAAC,EAAE,EAAE,CAAC;AAOzB,MAAM,2BAA2B,GAAG,CAAiH,KAAsE,KAAI;AAClO,IAAA,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAsB,KAAK,CAAC,cAAc,IAAI,EAAE,CAAC;IACvF,MAAM,CAAC,MAAM,IAAI,OAAO,CAAC,GAAG,4BAA4B,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,cAAc,CAAC;AAEnG,IAAA,QACIA,GAAA,CAAC,SAAS,EAAA,EACN,KAAK,EAAE,MAAM,CAAC,IAA2B,EACzC,IAAI,EAAA,IAAA,EACJ,IAAI,EAAE,MAAM,CAAC,QAAQ,EACrB,YAAY,EAAE,MAAM,CAAC,MAAM,CAAC,UAAU,EACtC,SAAS,EAAA,IAAA,EACT,mBAAmB,EAAE,KAAK,EAC1B,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,GAAG,MAAM,CAAC,QAAQ,EAC3C,MAAM,EAAE,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,EACnC,UAAU,EAAA,IAAA,EACV,YAAY,EAAE,MAAM,EACpB,aAAa,EAAC,QAAQ,EACtB,SAAS,EAAE,KAAK,CAAC,SAAS,EAC1B,iBAAiB,EAAE,KAAK,CAAC,iBAAiB,EAC1C,OAAO,EAAE,KAAK,CAAC,OAAO,EACtB,OAAO,EAAE,OAAO,EAChB,aAAa,EAAC,MAAM,EACpB,QAAQ,EAAE,CAAC,CAAC,KAAK,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,EACtC,kBAAkB,EAAE,KAAK,CAAC,kBAAkB,EAC5C,YAAY,EAAE,KAAK,CAAC,YAAY,EAAA,QAAA,EAC/B,KAAK,CAAC,QAAQ,EAAA,CACP;AAEpB;;;;"}
1
+ {"version":3,"file":"DataTableForObservableQuery.js","sources":["../../../DataTables/DataTableForObservableQuery.tsx"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport { DataTable, DataTableFilterMeta, DataTableSelectionSingleChangeEvent } from 'primereact/datatable';\nimport { Paginator } from 'primereact/paginator';\nimport { Constructor } from '@cratis/fundamentals';\nimport { IObservableQueryFor, Paging } from '@cratis/arc/queries';\nimport { useObservableQueryWithPaging } from '@cratis/arc.react/queries';\nimport { ReactNode, useState, useRef, useEffect } from 'react';\n\n/**\n * Props for the DataTableForQuery component\n */\nexport interface DataTableForObservableQueryProps<TQuery extends IObservableQueryFor<TDataType, TArguments>, TDataType extends object, TArguments extends object> {\n /**\n * Children to render\n */\n children?: ReactNode;\n\n /**\n * The type of query to use\n */\n query: Constructor<TQuery>;\n\n /**\n * Optional arguments to pass to the query\n */\n queryArguments?: TArguments;\n\n /**\n * The message to show when there is no data\n */\n emptyMessage: string;\n\n /**\n * The key to use for the data\n */\n dataKey?: string | undefined;\n\n /**\n * The current selection.\n */\n selection?: TDataType | undefined | null;\n\n /**\n * Callback for when the selection changes\n */\n onSelectionChange?(event: DataTableSelectionSingleChangeEvent<TDataType[]>): void;\n\n /**\n * Fields to use for global filtering\n */\n globalFilterFields?: string[] | undefined;\n\n /**\n * Default filters to use\n */\n defaultFilters?: DataTableFilterMeta;\n\n /**\n * Enable client-side filtering for the data table\n */\n clientFiltering?: boolean;\n}\n\nconst paging = new Paging(0, 20);\n\n/**\n * Represents a DataTable for a query.\n * @param props Props for the component\n * @returns Function to render the DataTableForQuery component\n */\nexport const DataTableForObservableQuery = <TQuery extends IObservableQueryFor<TDataType, TArguments>, TDataType extends object, TArguments extends object>(props: DataTableForObservableQueryProps<TQuery, TDataType, TArguments>) => {\n const [filters, setFilters] = useState<DataTableFilterMeta>(props.defaultFilters ?? {});\n const [filteredTotal, setFilteredTotal] = useState<number | undefined>(undefined);\n const [result, , setPage] = useObservableQueryWithPaging(props.query, paging, props.queryArguments);\n const containerRef = useRef<HTMLDivElement>(null);\n const [tableHeight, setTableHeight] = useState<number>(600);\n const timeoutRef = useRef<ReturnType<typeof setTimeout> | undefined>(undefined);\n const isClientFiltering = props.clientFiltering === true;\n const totalRecords = isClientFiltering && filteredTotal !== undefined ? filteredTotal : result.paging.totalItems;\n\n useEffect(() => {\n if (!containerRef.current) return;\n\n const resizeObserver = new ResizeObserver((entries) => {\n if (timeoutRef.current) {\n clearTimeout(timeoutRef.current);\n }\n\n timeoutRef.current = setTimeout(() => {\n for (const entry of entries) {\n const containerHeight = entry.contentRect.height;\n if (containerHeight > 0) {\n const paginatorHeight = result.paging.totalItems > 0 ? 56 : 0;\n const calculatedHeight = containerHeight - paginatorHeight - 2;\n const newHeight = Math.max(calculatedHeight, 200);\n\n setTableHeight(prevHeight => {\n if (Math.abs(newHeight - prevHeight) > 5) {\n return newHeight;\n }\n return prevHeight;\n });\n }\n }\n }, 10);\n });\n\n resizeObserver.observe(containerRef.current);\n\n return () => {\n if (timeoutRef.current) {\n clearTimeout(timeoutRef.current);\n }\n resizeObserver.disconnect();\n };\n }, [result.paging.totalItems]);\n\n return (\n <div\n ref={containerRef}\n style={{\n display: 'flex',\n flexDirection: 'column',\n height: '100%',\n border: '1px solid var(--surface-border)',\n borderRadius: 'var(--border-radius)',\n overflow: 'hidden'\n }}>\n <div style={{ height: `${tableHeight}px`, overflow: 'hidden' }}>\n <DataTable\n value={result.data as unknown as object[]}\n lazy={!isClientFiltering}\n rows={paging.pageSize}\n totalRecords={totalRecords}\n scrollable\n scrollHeight='100%'\n selectionMode='single'\n selection={props.selection}\n onSelectionChange={props.onSelectionChange}\n dataKey={props.dataKey}\n filters={filters}\n filterDisplay='menu'\n onFilter={(e) => {\n setFilters(e.filters);\n if (isClientFiltering) {\n const filteredValue = e.filteredValue as unknown[] | undefined;\n setFilteredTotal(filteredValue ? filteredValue.length : undefined);\n }\n }}\n globalFilterFields={props.globalFilterFields}\n emptyMessage={props.emptyMessage}>\n {props.children}\n </DataTable>\n </div>\n {result.paging.totalItems > 0 && (\n <div style={{ borderTop: '1px solid var(--surface-border)' }}>\n <Paginator\n first={result.paging.page * paging.pageSize}\n rows={paging.pageSize}\n totalRecords={result.paging.totalItems}\n onPageChange={(e) => setPage(e.page)}\n />\n </div>\n )}\n </div>\n );\n};\n"],"names":["_jsxs","_jsx"],"mappings":"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"}
@@ -1,8 +1,8 @@
1
- import React from 'react';
2
- declare const _default: {
3
- title: string;
4
- component: React.ComponentType<Record<string, never>> | undefined;
5
- };
6
- export default _default;
7
- export declare const Default: () => import("react/jsx-runtime").JSX.Element;
1
+ import { Meta, StoryObj } from '@storybook/react';
2
+ import { DataTableForObservableQuery } from './DataTableForObservableQuery';
3
+ declare const meta: Meta<typeof DataTableForObservableQuery>;
4
+ export default meta;
5
+ type Story = StoryObj<typeof DataTableForObservableQuery>;
6
+ export declare const Default: Story;
7
+ export declare const WithSelection: Story;
8
8
  //# sourceMappingURL=DataTableForObservableQuery.stories.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"DataTableForObservableQuery.stories.d.ts","sourceRoot":"","sources":["../../../DataTables/DataTableForObservableQuery.stories.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,MAAM,OAAO,CAAC;;;;;AAI1B,wBAAyF;AAEzF,eAAO,MAAM,OAAO,+CAA4E,CAAC"}
1
+ {"version":3,"file":"DataTableForObservableQuery.stories.d.ts","sourceRoot":"","sources":["../../../DataTables/DataTableForObservableQuery.stories.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,2BAA2B,EAAE,MAAM,+BAA+B,CAAC;AAK5E,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,2BAA2B,CAGlD,CAAC;AAEF,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,2BAA2B,CAAC,CAAC;AAmD1D,eAAO,MAAM,OAAO,EAAE,KAoCrB,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,KA0C3B,CAAC"}
@@ -1,6 +1,56 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import * as Comp from './DataTableForObservableQuery';
3
- const Component = Comp.default || Object.values(Comp)[0];
4
- export default { title: 'DataTables/DataTableForObservableQuery', component: Component };
5
- export const Default = () => (Component ? _jsx(Component, {}) : _jsx("div", { children: "Unable to render component" }));
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useState } from 'react';
3
+ import { DataTableForObservableQuery } from './DataTableForObservableQuery';
4
+ import { Column } from 'primereact/column';
5
+ import { ObservableQueryFor } from '@cratis/arc/queries';
6
+ const meta = {
7
+ title: 'DataTables/DataTableForObservableQuery',
8
+ component: DataTableForObservableQuery,
9
+ };
10
+ export default meta;
11
+ class TasksQuery extends ObservableQueryFor {
12
+ route = '/api/tasks';
13
+ routeTemplate = '/api/tasks';
14
+ defaultValue = { id: 0, title: '', status: 'todo', priority: 'low', assignee: '' };
15
+ parameterDescriptors = [];
16
+ get requiredRequestParameters() {
17
+ return [];
18
+ }
19
+ constructor() {
20
+ super(Object, false);
21
+ }
22
+ }
23
+ const getStatusColor = (status) => {
24
+ switch (status) {
25
+ case 'done':
26
+ return 'text-green-600';
27
+ case 'in-progress':
28
+ return 'text-blue-600';
29
+ case 'todo':
30
+ return 'text-gray-600';
31
+ default:
32
+ return '';
33
+ }
34
+ };
35
+ const getPriorityColor = (priority) => {
36
+ switch (priority) {
37
+ case 'high':
38
+ return 'text-red-600 font-bold';
39
+ case 'medium':
40
+ return 'text-orange-600';
41
+ case 'low':
42
+ return 'text-gray-600';
43
+ default:
44
+ return '';
45
+ }
46
+ };
47
+ export const Default = {
48
+ render: () => (_jsx("div", { className: "p-4", children: _jsxs(DataTableForObservableQuery, { query: TasksQuery, emptyMessage: "No tasks found", dataKey: "id", children: [_jsx(Column, { field: "id", header: "ID", sortable: true, style: { width: '10%' } }), _jsx(Column, { field: "title", header: "Task Title", sortable: true, style: { width: '35%' } }), _jsx(Column, { field: "status", header: "Status", sortable: true, style: { width: '20%' }, body: (rowData) => (_jsx("span", { className: getStatusColor(rowData.status), children: rowData.status })) }), _jsx(Column, { field: "priority", header: "Priority", sortable: true, style: { width: '15%' }, body: (rowData) => (_jsx("span", { className: getPriorityColor(rowData.priority), children: rowData.priority })) }), _jsx(Column, { field: "assignee", header: "Assignee", sortable: true, style: { width: '20%' } })] }) }))
49
+ };
50
+ export const WithSelection = {
51
+ render: () => {
52
+ const [selectedTask, setSelectedTask] = useState();
53
+ return (_jsxs("div", { className: "p-4", children: [_jsxs(DataTableForObservableQuery, { query: TasksQuery, emptyMessage: "No tasks found", dataKey: "id", selection: selectedTask, onSelectionChange: (e) => setSelectedTask(e.value), children: [_jsx(Column, { selectionMode: "single", headerStyle: { width: '3rem' } }), _jsx(Column, { field: "id", header: "ID", sortable: true, style: { width: '10%' } }), _jsx(Column, { field: "title", header: "Task Title", sortable: true, style: { width: '35%' } }), _jsx(Column, { field: "status", header: "Status", sortable: true, style: { width: '20%' }, body: (rowData) => (_jsx("span", { className: getStatusColor(rowData.status), children: rowData.status })) }), _jsx(Column, { field: "assignee", header: "Assignee", sortable: true, style: { width: '20%' } })] }), selectedTask && (_jsxs("div", { className: "mt-4 p-4 border rounded", children: [_jsx("h3", { className: "font-bold mb-2", children: "Selected Task:" }), _jsxs("p", { children: [_jsx("strong", { children: "Title:" }), " ", selectedTask.title] }), _jsxs("p", { children: [_jsx("strong", { children: "Status:" }), " ", selectedTask.status] }), _jsxs("p", { children: [_jsx("strong", { children: "Priority:" }), " ", selectedTask.priority] }), _jsxs("p", { children: [_jsx("strong", { children: "Assignee:" }), " ", selectedTask.assignee] })] }))] }));
54
+ }
55
+ };
6
56
  //# sourceMappingURL=DataTableForObservableQuery.stories.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DataTableForObservableQuery.stories.js","sourceRoot":"","sources":["../../../DataTables/DataTableForObservableQuery.stories.tsx"],"names":[],"mappings":";AAIA,OAAO,KAAK,IAAI,MAAM,+BAA+B,CAAC;AACtD,MAAM,SAAS,GAA4D,IAAgC,CAAC,OAA4E,IAAK,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAuE,CAAC;AAE1R,eAAe,EAAE,KAAK,EAAE,wCAAwC,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC;AAEzF,MAAM,CAAC,MAAM,OAAO,GAAG,GAAG,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAC,SAAS,KAAG,CAAC,CAAC,CAAC,uDAAqC,CAAC,CAAC"}
1
+ {"version":3,"file":"DataTableForObservableQuery.stories.js","sourceRoot":"","sources":["../../../DataTables/DataTableForObservableQuery.stories.tsx"],"names":[],"mappings":"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"}
@@ -12,6 +12,7 @@ export interface DataTableForQueryProps<TQuery extends IQueryFor<TDataType, TArg
12
12
  onSelectionChange?(event: DataTableSelectionSingleChangeEvent<TDataType[]>): void;
13
13
  globalFilterFields?: string[] | undefined;
14
14
  defaultFilters?: DataTableFilterMeta;
15
+ clientFiltering?: boolean;
15
16
  }
16
17
  export declare const DataTableForQuery: <TQuery extends IQueryFor<TDataType, TArguments>, TDataType extends object, TArguments extends object>(props: DataTableForQueryProps<TQuery, TDataType, TArguments>) => import("react/jsx-runtime").JSX.Element;
17
18
  //# sourceMappingURL=DataTableForQuery.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"DataTableForQuery.d.ts","sourceRoot":"","sources":["../../../DataTables/DataTableForQuery.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAa,mBAAmB,EAAE,mCAAmC,EAAE,MAAM,sBAAsB,CAAC;AAC3G,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,SAAS,EAAU,MAAM,qBAAqB,CAAC;AAExD,OAAO,EAAE,SAAS,EAAY,MAAM,OAAO,CAAC;AAO5C,MAAM,WAAW,sBAAsB,CAAC,MAAM,SAAS,SAAS,CAAC,SAAS,EAAE,UAAU,CAAC,EAAE,SAAS,SAAS,MAAM,EAAE,UAAU,SAAS,MAAM;IAIxI,QAAQ,CAAC,EAAE,SAAS,CAAC;IAKrB,KAAK,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAK3B,cAAc,CAAC,EAAE,UAAU,CAAC;IAK5B,YAAY,EAAE,MAAM,CAAC;IAKrB,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAK7B,SAAS,CAAC,EAAE,SAAS,GAAG,SAAS,GAAG,IAAI,CAAC;IAKzC,iBAAiB,CAAC,CAAC,KAAK,EAAE,mCAAmC,CAAC,SAAS,EAAE,CAAC,GAAG,IAAI,CAAC;IAKlF,kBAAkB,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IAK1C,cAAc,CAAC,EAAE,mBAAmB,CAAC;CACxC;AASD,eAAO,MAAM,iBAAiB,GAAI,MAAM,SAAS,SAAS,CAAC,SAAS,EAAE,UAAU,CAAC,EAAE,SAAS,SAAS,MAAM,EAAE,UAAU,SAAS,MAAM,EAAE,OAAO,sBAAsB,CAAC,MAAM,EAAE,SAAS,EAAE,UAAU,CAAC,4CA4BnM,CAAC"}
1
+ {"version":3,"file":"DataTableForQuery.d.ts","sourceRoot":"","sources":["../../../DataTables/DataTableForQuery.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAa,mBAAmB,EAAE,mCAAmC,EAAE,MAAM,sBAAsB,CAAC;AAE3G,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,SAAS,EAAU,MAAM,qBAAqB,CAAC;AAExD,OAAO,EAAE,SAAS,EAAoB,MAAM,OAAO,CAAC;AAKpD,MAAM,WAAW,sBAAsB,CAAC,MAAM,SAAS,SAAS,CAAC,SAAS,EAAE,UAAU,CAAC,EAAE,SAAS,SAAS,MAAM,EAAE,UAAU,SAAS,MAAM;IAIxI,QAAQ,CAAC,EAAE,SAAS,CAAC;IAKrB,KAAK,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAK3B,cAAc,CAAC,EAAE,UAAU,CAAC;IAK5B,YAAY,EAAE,MAAM,CAAC;IAKrB,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAK7B,SAAS,CAAC,EAAE,SAAS,GAAG,SAAS,GAAG,IAAI,CAAC;IAKzC,iBAAiB,CAAC,CAAC,KAAK,EAAE,mCAAmC,CAAC,SAAS,EAAE,CAAC,GAAG,IAAI,CAAC;IAKlF,kBAAkB,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IAK1C,cAAc,CAAC,EAAE,mBAAmB,CAAC;IAKrC,eAAe,CAAC,EAAE,OAAO,CAAC;CAC7B;AASD,eAAO,MAAM,iBAAiB,GAAI,MAAM,SAAS,SAAS,CAAC,SAAS,EAAE,UAAU,CAAC,EAAE,SAAS,SAAS,MAAM,EAAE,UAAU,SAAS,MAAM,EAAE,OAAO,sBAAsB,CAAC,MAAM,EAAE,SAAS,EAAE,UAAU,CAAC,4CAyDnM,CAAC"}
@@ -1,14 +1,32 @@
1
- import { jsx } from 'react/jsx-runtime';
1
+ import { jsxs, jsx } from 'react/jsx-runtime';
2
2
  import { DataTable } from 'primereact/datatable';
3
+ import { Paginator } from 'primereact/paginator';
3
4
  import { Paging } from '@cratis/arc/queries';
4
5
  import { useQueryWithPaging } from '@cratis/arc.react/queries';
5
- import { useState } from 'react';
6
+ import { useState, useRef } from 'react';
6
7
 
7
8
  const paging = new Paging(0, 20);
8
9
  const DataTableForQuery = (props) => {
9
10
  const [filters, setFilters] = useState(props.defaultFilters ?? {});
11
+ const [filteredTotal, setFilteredTotal] = useState(undefined);
10
12
  const [result, , , setPage] = useQueryWithPaging(props.query, paging, props.queryArguments);
11
- return (jsx(DataTable, { value: result.data, lazy: true, rows: paging.pageSize, totalRecords: result.paging.totalItems, paginator: true, alwaysShowPaginator: false, first: result.paging.page * paging.pageSize, onPage: (e) => setPage(e.page ?? 0), scrollable: true, scrollHeight: 'flex', selectionMode: 'single', selection: props.selection, onSelectionChange: props.onSelectionChange, dataKey: props.dataKey, filters: filters, filterDisplay: 'menu', onFilter: (e) => setFilters(e.filters), globalFilterFields: props.globalFilterFields, emptyMessage: props.emptyMessage, children: props.children }));
13
+ const containerRef = useRef(null);
14
+ const isClientFiltering = props.clientFiltering === true;
15
+ const totalRecords = isClientFiltering && filteredTotal !== undefined ? filteredTotal : result.paging.totalItems;
16
+ return (jsxs("div", { ref: containerRef, style: {
17
+ display: 'flex',
18
+ flexDirection: 'column',
19
+ height: '100%',
20
+ border: '1px solid var(--surface-border)',
21
+ borderRadius: 'var(--border-radius)',
22
+ overflow: 'hidden'
23
+ }, children: [jsx("div", { style: { flex: 1, minHeight: 0, overflow: 'auto' }, children: jsx(DataTable, { value: result.data, lazy: !isClientFiltering, rows: paging.pageSize, totalRecords: totalRecords, selectionMode: 'single', selection: props.selection, onSelectionChange: props.onSelectionChange, dataKey: props.dataKey, filters: filters, filterDisplay: 'menu', onFilter: (e) => {
24
+ setFilters(e.filters);
25
+ if (isClientFiltering) {
26
+ const filteredValue = e.filteredValue;
27
+ setFilteredTotal(filteredValue ? filteredValue.length : undefined);
28
+ }
29
+ }, globalFilterFields: props.globalFilterFields, emptyMessage: props.emptyMessage, style: { minWidth: '100%' }, children: props.children }) }), result.paging.totalItems > 0 && (jsx("div", { style: { borderTop: '1px solid var(--surface-border)', flexShrink: 0 }, children: jsx(Paginator, { first: result.paging.page * paging.pageSize, rows: paging.pageSize, totalRecords: result.paging.totalItems, onPageChange: (e) => setPage(e.page) }) }))] }));
12
30
  };
13
31
 
14
32
  export { DataTableForQuery };
@@ -1 +1 @@
1
- {"version":3,"file":"DataTableForQuery.js","sources":["../../../DataTables/DataTableForQuery.tsx"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport { DataTable, DataTableFilterMeta, DataTableSelectionSingleChangeEvent } from 'primereact/datatable';\nimport { Constructor } from '@cratis/fundamentals';\nimport { IQueryFor, Paging } from '@cratis/arc/queries';\nimport { useQueryWithPaging } from '@cratis/arc.react/queries';\nimport { ReactNode, useState } from 'react';\n\n \n\n/**\n * Props for the DataTableForQuery component\n */\nexport interface DataTableForQueryProps<TQuery extends IQueryFor<TDataType, TArguments>, TDataType extends object, TArguments extends object> {\n /**\n * Children to render\n */\n children?: ReactNode;\n\n /**\n * The type of query to use\n */\n query: Constructor<TQuery>;\n\n /**\n * Optional Arguments to pass to the query\n */\n queryArguments?: TArguments;\n\n /**\n * The message to show when there is no data\n */\n emptyMessage: string;\n\n /**\n * The key to use for the data\n */\n dataKey?: string | undefined;\n\n /**\n * The current selection.\n */\n selection?: TDataType | undefined | null;\n\n /**\n * Callback for when the selection changes\n */\n onSelectionChange?(event: DataTableSelectionSingleChangeEvent<TDataType[]>): void;\n\n /**\n * Fields to use for global filtering\n */\n globalFilterFields?: string[] | undefined;\n\n /**\n * Default filters to use\n */\n defaultFilters?: DataTableFilterMeta;\n}\n\nconst paging = new Paging(0, 20);\n\n/**\n * Represents a DataTable for a query.\n * @param props Props for the component\n * @returns Function to render the DataTableForQuery component\n */\nexport const DataTableForQuery = <TQuery extends IQueryFor<TDataType, TArguments>, TDataType extends object, TArguments extends object>(props: DataTableForQueryProps<TQuery, TDataType, TArguments>) => {\n const [filters, setFilters] = useState<DataTableFilterMeta>(props.defaultFilters ?? {});\n const [result, , , setPage] = useQueryWithPaging(props.query, paging, props.queryArguments);\n\n return (\n <DataTable\n value={result.data as unknown as object[]}\n lazy\n rows={paging.pageSize}\n totalRecords={result.paging.totalItems}\n paginator\n alwaysShowPaginator={false}\n first={result.paging.page * paging.pageSize}\n onPage={(e) => setPage(e.page ?? 0)}\n scrollable\n scrollHeight={'flex'}\n selectionMode='single'\n selection={props.selection}\n onSelectionChange={props.onSelectionChange}\n dataKey={props.dataKey}\n filters={filters}\n filterDisplay='menu'\n onFilter={(e) => setFilters(e.filters)}\n globalFilterFields={props.globalFilterFields}\n emptyMessage={props.emptyMessage} >\n {props.children}\n </DataTable >\n );\n};\n"],"names":["_jsx"],"mappings":";;;;;;AA6DA,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,CAAC,EAAE,EAAE,CAAC;AAOzB,MAAM,iBAAiB,GAAG,CAAuG,KAA4D,KAAI;AACpM,IAAA,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAsB,KAAK,CAAC,cAAc,IAAI,EAAE,CAAC;IACvF,MAAM,CAAC,MAAM,MAAM,OAAO,CAAC,GAAG,kBAAkB,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,cAAc,CAAC;AAE3F,IAAA,QACIA,GAAA,CAAC,SAAS,EAAA,EACN,KAAK,EAAE,MAAM,CAAC,IAA2B,EACzC,IAAI,EAAA,IAAA,EACJ,IAAI,EAAE,MAAM,CAAC,QAAQ,EACrB,YAAY,EAAE,MAAM,CAAC,MAAM,CAAC,UAAU,EACtC,SAAS,EAAA,IAAA,EACT,mBAAmB,EAAE,KAAK,EAC1B,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,GAAG,MAAM,CAAC,QAAQ,EAC3C,MAAM,EAAE,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,EACnC,UAAU,EAAA,IAAA,EACV,YAAY,EAAE,MAAM,EACpB,aAAa,EAAC,QAAQ,EACtB,SAAS,EAAE,KAAK,CAAC,SAAS,EAC1B,iBAAiB,EAAE,KAAK,CAAC,iBAAiB,EAC1C,OAAO,EAAE,KAAK,CAAC,OAAO,EACtB,OAAO,EAAE,OAAO,EAChB,aAAa,EAAC,MAAM,EACpB,QAAQ,EAAE,CAAC,CAAC,KAAK,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,EACtC,kBAAkB,EAAE,KAAK,CAAC,kBAAkB,EAC5C,YAAY,EAAE,KAAK,CAAC,YAAY,EAAA,QAAA,EAC/B,KAAK,CAAC,QAAQ,EAAA,CACN;AAErB;;;;"}
1
+ {"version":3,"file":"DataTableForQuery.js","sources":["../../../DataTables/DataTableForQuery.tsx"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport { DataTable, DataTableFilterMeta, DataTableSelectionSingleChangeEvent } from 'primereact/datatable';\nimport { Paginator } from 'primereact/paginator';\nimport { Constructor } from '@cratis/fundamentals';\nimport { IQueryFor, Paging } from '@cratis/arc/queries';\nimport { useQueryWithPaging } from '@cratis/arc.react/queries';\nimport { ReactNode, useState, useRef } from 'react';\n\n/**\n * Props for the DataTableForQuery component\n */\nexport interface DataTableForQueryProps<TQuery extends IQueryFor<TDataType, TArguments>, TDataType extends object, TArguments extends object> {\n /**\n * Children to render\n */\n children?: ReactNode;\n\n /**\n * The type of query to use\n */\n query: Constructor<TQuery>;\n\n /**\n * Optional Arguments to pass to the query\n */\n queryArguments?: TArguments;\n\n /**\n * The message to show when there is no data\n */\n emptyMessage: string;\n\n /**\n * The key to use for the data\n */\n dataKey?: string | undefined;\n\n /**\n * The current selection.\n */\n selection?: TDataType | undefined | null;\n\n /**\n * Callback for when the selection changes\n */\n onSelectionChange?(event: DataTableSelectionSingleChangeEvent<TDataType[]>): void;\n\n /**\n * Fields to use for global filtering\n */\n globalFilterFields?: string[] | undefined;\n\n /**\n * Default filters to use\n */\n defaultFilters?: DataTableFilterMeta;\n\n /**\n * Enable client-side filtering for the data table\n */\n clientFiltering?: boolean;\n}\n\nconst paging = new Paging(0, 20);\n\n/**\n * Represents a DataTable for a query.\n * @param props Props for the component\n * @returns Function to render the DataTableForQuery component\n */\nexport const DataTableForQuery = <TQuery extends IQueryFor<TDataType, TArguments>, TDataType extends object, TArguments extends object>(props: DataTableForQueryProps<TQuery, TDataType, TArguments>) => {\n const [filters, setFilters] = useState<DataTableFilterMeta>(props.defaultFilters ?? {});\n const [filteredTotal, setFilteredTotal] = useState<number | undefined>(undefined);\n const [result, , , setPage] = useQueryWithPaging(props.query, paging, props.queryArguments);\n const containerRef = useRef<HTMLDivElement>(null);\n const isClientFiltering = props.clientFiltering === true;\n const totalRecords = isClientFiltering && filteredTotal !== undefined ? filteredTotal : result.paging.totalItems;\n\n return (\n <div\n ref={containerRef}\n style={{\n display: 'flex',\n flexDirection: 'column',\n height: '100%',\n border: '1px solid var(--surface-border)',\n borderRadius: 'var(--border-radius)',\n overflow: 'hidden'\n }}>\n <div style={{ flex: 1, minHeight: 0, overflow: 'auto' }}>\n <DataTable\n value={result.data as unknown as object[]}\n lazy={!isClientFiltering}\n rows={paging.pageSize}\n totalRecords={totalRecords}\n selectionMode='single'\n selection={props.selection}\n onSelectionChange={props.onSelectionChange}\n dataKey={props.dataKey}\n filters={filters}\n filterDisplay='menu'\n onFilter={(e) => {\n setFilters(e.filters);\n if (isClientFiltering) {\n const filteredValue = e.filteredValue as unknown[] | undefined;\n setFilteredTotal(filteredValue ? filteredValue.length : undefined);\n }\n }}\n globalFilterFields={props.globalFilterFields}\n emptyMessage={props.emptyMessage}\n style={{ minWidth: '100%' }}>\n {props.children}\n </DataTable>\n </div>\n\n {result.paging.totalItems > 0 && (\n <div style={{ borderTop: '1px solid var(--surface-border)', flexShrink: 0 }}>\n <Paginator\n first={result.paging.page * paging.pageSize}\n rows={paging.pageSize}\n totalRecords={result.paging.totalItems}\n onPageChange={(e) => setPage(e.page)}\n />\n </div>\n )}\n </div>\n );\n};\n"],"names":["_jsxs","_jsx"],"mappings":";;;;;;;AAiEA,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,CAAC,EAAE,EAAE,CAAC;AAOzB,MAAM,iBAAiB,GAAG,CAAuG,KAA4D,KAAI;AACpM,IAAA,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAsB,KAAK,CAAC,cAAc,IAAI,EAAE,CAAC;IACvF,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,QAAQ,CAAqB,SAAS,CAAC;IACjF,MAAM,CAAC,MAAM,MAAM,OAAO,CAAC,GAAG,kBAAkB,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,cAAc,CAAC;AAC3F,IAAA,MAAM,YAAY,GAAG,MAAM,CAAiB,IAAI,CAAC;AACjD,IAAA,MAAM,iBAAiB,GAAG,KAAK,CAAC,eAAe,KAAK,IAAI;AACxD,IAAA,MAAM,YAAY,GAAG,iBAAiB,IAAI,aAAa,KAAK,SAAS,GAAG,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,UAAU;AAEhH,IAAA,QACIA,IAAA,CAAA,KAAA,EAAA,EACI,GAAG,EAAE,YAAY,EACjB,KAAK,EAAE;AACH,YAAA,OAAO,EAAE,MAAM;AACf,YAAA,aAAa,EAAE,QAAQ;AACvB,YAAA,MAAM,EAAE,MAAM;AACd,YAAA,MAAM,EAAE,iCAAiC;AACzC,YAAA,YAAY,EAAE,sBAAsB;AACpC,YAAA,QAAQ,EAAE;AACb,SAAA,EAAA,QAAA,EAAA,CACDC,aAAK,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAA,QAAA,EACnDA,GAAA,CAAC,SAAS,EAAA,EACN,KAAK,EAAE,MAAM,CAAC,IAA2B,EACzC,IAAI,EAAE,CAAC,iBAAiB,EACxB,IAAI,EAAE,MAAM,CAAC,QAAQ,EACrB,YAAY,EAAE,YAAY,EAC1B,aAAa,EAAC,QAAQ,EACtB,SAAS,EAAE,KAAK,CAAC,SAAS,EAC1B,iBAAiB,EAAE,KAAK,CAAC,iBAAiB,EAC1C,OAAO,EAAE,KAAK,CAAC,OAAO,EACtB,OAAO,EAAE,OAAO,EAChB,aAAa,EAAC,MAAM,EACpB,QAAQ,EAAE,CAAC,CAAC,KAAI;AACZ,wBAAA,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC;wBACrB,IAAI,iBAAiB,EAAE;AACnB,4BAAA,MAAM,aAAa,GAAG,CAAC,CAAC,aAAsC;AAC9D,4BAAA,gBAAgB,CAAC,aAAa,GAAG,aAAa,CAAC,MAAM,GAAG,SAAS,CAAC;wBACtE;oBACJ,CAAC,EACD,kBAAkB,EAAE,KAAK,CAAC,kBAAkB,EAC5C,YAAY,EAAE,KAAK,CAAC,YAAY,EAChC,KAAK,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAA,QAAA,EAC1B,KAAK,CAAC,QAAQ,EAAA,CACP,EAAA,CACV,EAEL,MAAM,CAAC,MAAM,CAAC,UAAU,GAAG,CAAC,KACzBA,GAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAE,EAAE,SAAS,EAAE,iCAAiC,EAAE,UAAU,EAAE,CAAC,EAAE,YACvEA,GAAA,CAAC,SAAS,IACN,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,GAAG,MAAM,CAAC,QAAQ,EAC3C,IAAI,EAAE,MAAM,CAAC,QAAQ,EACrB,YAAY,EAAE,MAAM,CAAC,MAAM,CAAC,UAAU,EACtC,YAAY,EAAE,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,GACtC,EAAA,CACA,CACT,CAAA,EAAA,CACC;AAEd;;;;"}
@@ -1,8 +1,8 @@
1
- import React from 'react';
2
- declare const _default: {
3
- title: string;
4
- component: React.ComponentType<Record<string, never>> | undefined;
5
- };
6
- export default _default;
7
- export declare const Default: () => import("react/jsx-runtime").JSX.Element;
1
+ import { Meta, StoryObj } from '@storybook/react';
2
+ import { DataTableForQuery } from './DataTableForQuery';
3
+ declare const meta: Meta<typeof DataTableForQuery>;
4
+ export default meta;
5
+ type Story = StoryObj<typeof DataTableForQuery>;
6
+ export declare const Default: Story;
7
+ export declare const WithSelection: Story;
8
8
  //# sourceMappingURL=DataTableForQuery.stories.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"DataTableForQuery.stories.d.ts","sourceRoot":"","sources":["../../../DataTables/DataTableForQuery.stories.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,MAAM,OAAO,CAAC;;;;;AAI1B,wBAA+E;AAE/E,eAAO,MAAM,OAAO,+CAA4E,CAAC"}
1
+ {"version":3,"file":"DataTableForQuery.stories.d.ts","sourceRoot":"","sources":["../../../DataTables/DataTableForQuery.stories.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAKxD,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,iBAAiB,CAGxC,CAAC;AAEF,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAyBhD,eAAO,MAAM,OAAO,EAAE,KAgCrB,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,KAsC3B,CAAC"}
@@ -1,6 +1,32 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import * as Comp from './DataTableForQuery';
3
- const Component = Comp.default || Object.values(Comp)[0];
4
- export default { title: 'DataTables/DataTableForQuery', component: Component };
5
- export const Default = () => (Component ? _jsx(Component, {}) : _jsx("div", { children: "Unable to render component" }));
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useState } from 'react';
3
+ import { DataTableForQuery } from './DataTableForQuery';
4
+ import { Column } from 'primereact/column';
5
+ import { QueryFor } from '@cratis/arc/queries';
6
+ const meta = {
7
+ title: 'DataTables/DataTableForQuery',
8
+ component: DataTableForQuery,
9
+ };
10
+ export default meta;
11
+ class ProductsQuery extends QueryFor {
12
+ route = '/api/products';
13
+ routeTemplate = '/api/products';
14
+ defaultValue = { id: 0, name: '', category: '', price: 0, inStock: false };
15
+ parameterDescriptors = [];
16
+ get requiredRequestParameters() {
17
+ return [];
18
+ }
19
+ constructor() {
20
+ super(Object, false);
21
+ }
22
+ }
23
+ export const Default = {
24
+ render: () => (_jsx("div", { className: "p-4", children: _jsxs(DataTableForQuery, { query: ProductsQuery, emptyMessage: "No products found", dataKey: "id", children: [_jsx(Column, { field: "id", header: "ID", sortable: true, style: { width: '10%' } }), _jsx(Column, { field: "name", header: "Product Name", sortable: true, style: { width: '30%' } }), _jsx(Column, { field: "category", header: "Category", sortable: true, style: { width: '20%' } }), _jsx(Column, { field: "price", header: "Price", sortable: true, style: { width: '20%' }, body: (rowData) => `$${rowData.price.toFixed(2)}` }), _jsx(Column, { field: "inStock", header: "In Stock", sortable: true, style: { width: '20%' }, body: (rowData) => (_jsx("span", { className: rowData.inStock ? 'text-green-600' : 'text-red-600', children: rowData.inStock ? 'Yes' : 'No' })) })] }) }))
25
+ };
26
+ export const WithSelection = {
27
+ render: () => {
28
+ const [selectedProduct, setSelectedProduct] = useState();
29
+ return (_jsxs("div", { className: "p-4", children: [_jsxs(DataTableForQuery, { query: ProductsQuery, emptyMessage: "No products found", dataKey: "id", selection: selectedProduct, onSelectionChange: (e) => setSelectedProduct(e.value), children: [_jsx(Column, { selectionMode: "single", headerStyle: { width: '3rem' } }), _jsx(Column, { field: "id", header: "ID", sortable: true, style: { width: '10%' } }), _jsx(Column, { field: "name", header: "Product Name", sortable: true, style: { width: '30%' } }), _jsx(Column, { field: "category", header: "Category", sortable: true, style: { width: '20%' } }), _jsx(Column, { field: "price", header: "Price", sortable: true, style: { width: '20%' }, body: (rowData) => `$${rowData.price.toFixed(2)}` })] }), selectedProduct && (_jsxs("div", { className: "mt-4 p-4 border rounded", children: [_jsx("h3", { className: "font-bold mb-2", children: "Selected Product:" }), _jsxs("p", { children: [_jsx("strong", { children: "Name:" }), " ", selectedProduct.name] }), _jsxs("p", { children: [_jsx("strong", { children: "Category:" }), " ", selectedProduct.category] }), _jsxs("p", { children: [_jsx("strong", { children: "Price:" }), " $", selectedProduct.price.toFixed(2)] }), _jsxs("p", { children: [_jsx("strong", { children: "In Stock:" }), " ", selectedProduct.inStock ? 'Yes' : 'No'] })] }))] }));
30
+ }
31
+ };
6
32
  //# sourceMappingURL=DataTableForQuery.stories.js.map