@cratis/components 0.1.19 → 1.0.4

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 (309) hide show
  1. package/dist/cjs/CommandDialog/CommandDialog.js +35 -24
  2. package/dist/cjs/CommandDialog/CommandDialog.js.map +1 -1
  3. package/dist/cjs/CommandForm/fields/CheckboxField.js +2 -2
  4. package/dist/cjs/CommandForm/fields/CheckboxField.js.map +1 -1
  5. package/dist/cjs/CommandForm/fields/DropdownField.js +5 -5
  6. package/dist/cjs/CommandForm/fields/DropdownField.js.map +1 -1
  7. package/dist/cjs/CommandForm/fields/InputTextField.js +2 -2
  8. package/dist/cjs/CommandForm/fields/InputTextField.js.map +1 -1
  9. package/dist/cjs/CommandForm/fields/NumberField.js +2 -2
  10. package/dist/cjs/CommandForm/fields/NumberField.js.map +1 -1
  11. package/dist/cjs/CommandForm/fields/SliderField.js +5 -9
  12. package/dist/cjs/CommandForm/fields/SliderField.js.map +1 -1
  13. package/dist/cjs/CommandForm/fields/TextAreaField.js +2 -2
  14. package/dist/cjs/CommandForm/fields/TextAreaField.js.map +1 -1
  15. package/dist/cjs/CommandForm/index.js +35 -15
  16. package/dist/cjs/CommandForm/index.js.map +1 -1
  17. package/dist/cjs/DataTables/DataTableForObservableQuery.js +53 -1
  18. package/dist/cjs/DataTables/DataTableForObservableQuery.js.map +1 -1
  19. package/dist/cjs/DataTables/DataTableForQuery.js +19 -1
  20. package/dist/cjs/DataTables/DataTableForQuery.js.map +1 -1
  21. package/dist/cjs/Dialogs/BusyIndicatorDialog.js +2 -3
  22. package/dist/cjs/Dialogs/BusyIndicatorDialog.js.map +1 -1
  23. package/dist/cjs/Dialogs/ConfirmationDialog.js +4 -21
  24. package/dist/cjs/Dialogs/ConfirmationDialog.js.map +1 -1
  25. package/dist/cjs/Dialogs/Dialog.js +66 -0
  26. package/dist/cjs/Dialogs/Dialog.js.map +1 -0
  27. package/dist/cjs/Dialogs/index.js +4 -2
  28. package/dist/cjs/Dialogs/index.js.map +1 -1
  29. package/dist/cjs/ObjectContentEditor/ObjectContentEditor.js +156 -0
  30. package/dist/cjs/ObjectContentEditor/ObjectContentEditor.js.map +1 -0
  31. package/dist/cjs/ObjectContentEditor/index.js +8 -0
  32. package/dist/cjs/{EventModeling → ObjectContentEditor}/index.js.map +1 -1
  33. package/dist/cjs/ObjectNavigationalBar/ObjectNavigationalBar.js +45 -0
  34. package/dist/cjs/ObjectNavigationalBar/ObjectNavigationalBar.js.map +1 -0
  35. package/dist/cjs/ObjectNavigationalBar/index.js +8 -0
  36. package/dist/cjs/ObjectNavigationalBar/index.js.map +1 -0
  37. package/dist/cjs/SchemaEditor/NameCell.js +38 -0
  38. package/dist/cjs/SchemaEditor/NameCell.js.map +1 -0
  39. package/dist/cjs/SchemaEditor/SchemaEditor.js +352 -0
  40. package/dist/cjs/SchemaEditor/SchemaEditor.js.map +1 -0
  41. package/dist/cjs/SchemaEditor/SchemaEditor.module.css +11 -0
  42. package/dist/cjs/SchemaEditor/TypeCell.js +102 -0
  43. package/dist/cjs/SchemaEditor/TypeCell.js.map +1 -0
  44. package/dist/cjs/SchemaEditor/index.js +10 -0
  45. package/dist/cjs/SchemaEditor/index.js.map +1 -0
  46. package/dist/cjs/index.js +10 -6
  47. package/dist/cjs/index.js.map +1 -1
  48. package/dist/cjs/types/TypeFormat.js +20 -0
  49. package/dist/cjs/types/TypeFormat.js.map +1 -0
  50. package/dist/esm/CommandDialog/CommandDialog.d.ts +22 -1
  51. package/dist/esm/CommandDialog/CommandDialog.d.ts.map +1 -1
  52. package/dist/esm/CommandDialog/CommandDialog.js +35 -24
  53. package/dist/esm/CommandDialog/CommandDialog.js.map +1 -1
  54. package/dist/esm/CommandDialog/CommandDialog.stories.d.ts +11 -0
  55. package/dist/esm/CommandDialog/CommandDialog.stories.d.ts.map +1 -1
  56. package/dist/esm/CommandDialog/CommandDialog.stories.js +208 -3
  57. package/dist/esm/CommandDialog/CommandDialog.stories.js.map +1 -1
  58. package/dist/esm/CommandForm/fields/CheckboxField.d.ts +3 -2
  59. package/dist/esm/CommandForm/fields/CheckboxField.d.ts.map +1 -1
  60. package/dist/esm/CommandForm/fields/CheckboxField.js +1 -1
  61. package/dist/esm/CommandForm/fields/CheckboxField.js.map +1 -1
  62. package/dist/esm/CommandForm/fields/DropdownField.d.ts +7 -6
  63. package/dist/esm/CommandForm/fields/DropdownField.d.ts.map +1 -1
  64. package/dist/esm/CommandForm/fields/DropdownField.js +6 -6
  65. package/dist/esm/CommandForm/fields/DropdownField.js.map +1 -1
  66. package/dist/esm/CommandForm/fields/Fields.stories.d.ts +13 -0
  67. package/dist/esm/CommandForm/fields/Fields.stories.d.ts.map +1 -0
  68. package/dist/esm/CommandForm/fields/Fields.stories.js +137 -0
  69. package/dist/esm/CommandForm/fields/Fields.stories.js.map +1 -0
  70. package/dist/esm/CommandForm/fields/InputTextField.d.ts +3 -2
  71. package/dist/esm/CommandForm/fields/InputTextField.d.ts.map +1 -1
  72. package/dist/esm/CommandForm/fields/InputTextField.js +1 -1
  73. package/dist/esm/CommandForm/fields/InputTextField.js.map +1 -1
  74. package/dist/esm/CommandForm/fields/NumberField.d.ts +3 -2
  75. package/dist/esm/CommandForm/fields/NumberField.d.ts.map +1 -1
  76. package/dist/esm/CommandForm/fields/NumberField.js +1 -1
  77. package/dist/esm/CommandForm/fields/NumberField.js.map +1 -1
  78. package/dist/esm/CommandForm/fields/SliderField.d.ts +5 -4
  79. package/dist/esm/CommandForm/fields/SliderField.d.ts.map +1 -1
  80. package/dist/esm/CommandForm/fields/SliderField.js +5 -9
  81. package/dist/esm/CommandForm/fields/SliderField.js.map +1 -1
  82. package/dist/esm/CommandForm/fields/TextAreaField.d.ts +3 -2
  83. package/dist/esm/CommandForm/fields/TextAreaField.d.ts.map +1 -1
  84. package/dist/esm/CommandForm/fields/TextAreaField.js +1 -1
  85. package/dist/esm/CommandForm/fields/TextAreaField.js.map +1 -1
  86. package/dist/esm/CommandForm/fields/index.d.ts +2 -2
  87. package/dist/esm/CommandForm/fields/index.d.ts.map +1 -1
  88. package/dist/esm/CommandForm/fields/index.js +2 -2
  89. package/dist/esm/CommandForm/fields/index.js.map +1 -1
  90. package/dist/esm/CommandForm/index.d.ts +1 -5
  91. package/dist/esm/CommandForm/index.d.ts.map +1 -1
  92. package/dist/esm/CommandForm/index.js +3 -7
  93. package/dist/esm/CommandForm/index.js.map +1 -1
  94. package/dist/esm/Common/ErrorBoundary.d.ts +1 -1
  95. package/dist/esm/Common/ErrorBoundary.stories.d.ts +7 -7
  96. package/dist/esm/Common/ErrorBoundary.stories.d.ts.map +1 -1
  97. package/dist/esm/Common/ErrorBoundary.stories.js +21 -5
  98. package/dist/esm/Common/ErrorBoundary.stories.js.map +1 -1
  99. package/dist/esm/Common/FormElement.stories.d.ts +8 -7
  100. package/dist/esm/Common/FormElement.stories.d.ts.map +1 -1
  101. package/dist/esm/Common/FormElement.stories.js +25 -4
  102. package/dist/esm/Common/FormElement.stories.js.map +1 -1
  103. package/dist/esm/Common/Page.stories.d.ts +7 -7
  104. package/dist/esm/Common/Page.stories.d.ts.map +1 -1
  105. package/dist/esm/Common/Page.stories.js +20 -5
  106. package/dist/esm/Common/Page.stories.js.map +1 -1
  107. package/dist/esm/DataPage/DataPage.stories.d.ts +7 -7
  108. package/dist/esm/DataPage/DataPage.stories.d.ts.map +1 -1
  109. package/dist/esm/DataPage/DataPage.stories.js +56 -5
  110. package/dist/esm/DataPage/DataPage.stories.js.map +1 -1
  111. package/dist/esm/DataTables/DataTableForObservableQuery.d.ts +1 -0
  112. package/dist/esm/DataTables/DataTableForObservableQuery.d.ts.map +1 -1
  113. package/dist/esm/DataTables/DataTableForObservableQuery.js +55 -3
  114. package/dist/esm/DataTables/DataTableForObservableQuery.js.map +1 -1
  115. package/dist/esm/DataTables/DataTableForObservableQuery.stories.d.ts +7 -7
  116. package/dist/esm/DataTables/DataTableForObservableQuery.stories.d.ts.map +1 -1
  117. package/dist/esm/DataTables/DataTableForObservableQuery.stories.js +78 -5
  118. package/dist/esm/DataTables/DataTableForObservableQuery.stories.js.map +1 -1
  119. package/dist/esm/DataTables/DataTableForQuery.d.ts +1 -0
  120. package/dist/esm/DataTables/DataTableForQuery.d.ts.map +1 -1
  121. package/dist/esm/DataTables/DataTableForQuery.js +21 -3
  122. package/dist/esm/DataTables/DataTableForQuery.js.map +1 -1
  123. package/dist/esm/DataTables/DataTableForQuery.stories.d.ts +7 -7
  124. package/dist/esm/DataTables/DataTableForQuery.stories.d.ts.map +1 -1
  125. package/dist/esm/DataTables/DataTableForQuery.stories.js +53 -5
  126. package/dist/esm/DataTables/DataTableForQuery.stories.js.map +1 -1
  127. package/dist/esm/Dialogs/BusyIndicatorDialog.d.ts.map +1 -1
  128. package/dist/esm/Dialogs/BusyIndicatorDialog.js +3 -4
  129. package/dist/esm/Dialogs/BusyIndicatorDialog.js.map +1 -1
  130. package/dist/esm/Dialogs/ConfirmationDialog.d.ts.map +1 -1
  131. package/dist/esm/Dialogs/ConfirmationDialog.js +6 -23
  132. package/dist/esm/Dialogs/ConfirmationDialog.js.map +1 -1
  133. package/dist/esm/Dialogs/Dialog.d.ts +23 -0
  134. package/dist/esm/Dialogs/Dialog.d.ts.map +1 -0
  135. package/dist/esm/Dialogs/Dialog.js +64 -0
  136. package/dist/esm/Dialogs/Dialog.js.map +1 -0
  137. package/dist/esm/Dialogs/Dialog.stories.d.ts +12 -0
  138. package/dist/esm/Dialogs/Dialog.stories.d.ts.map +1 -0
  139. package/dist/esm/Dialogs/Dialog.stories.js +44 -0
  140. package/dist/esm/Dialogs/Dialog.stories.js.map +1 -0
  141. package/dist/esm/Dialogs/index.d.ts +2 -1
  142. package/dist/esm/Dialogs/index.d.ts.map +1 -1
  143. package/dist/esm/Dialogs/index.js +2 -1
  144. package/dist/esm/Dialogs/index.js.map +1 -1
  145. package/dist/esm/ObjectContentEditor/ObjectContentEditor.d.ts +8 -0
  146. package/dist/esm/ObjectContentEditor/ObjectContentEditor.d.ts.map +1 -0
  147. package/dist/esm/ObjectContentEditor/ObjectContentEditor.js +135 -0
  148. package/dist/esm/ObjectContentEditor/ObjectContentEditor.js.map +1 -0
  149. package/dist/esm/ObjectContentEditor/ObjectContentEditor.stories.d.ts +10 -0
  150. package/dist/esm/ObjectContentEditor/ObjectContentEditor.stories.d.ts.map +1 -0
  151. package/dist/esm/ObjectContentEditor/ObjectContentEditor.stories.js +144 -0
  152. package/dist/esm/ObjectContentEditor/ObjectContentEditor.stories.js.map +1 -0
  153. package/dist/esm/ObjectContentEditor/index.d.ts +2 -0
  154. package/dist/esm/ObjectContentEditor/index.d.ts.map +1 -0
  155. package/dist/esm/ObjectContentEditor/index.js +2 -0
  156. package/dist/esm/ObjectContentEditor/index.js.map +1 -0
  157. package/dist/esm/ObjectNavigationalBar/ObjectNavigationalBar.d.ts +6 -0
  158. package/dist/esm/ObjectNavigationalBar/ObjectNavigationalBar.d.ts.map +1 -0
  159. package/dist/esm/ObjectNavigationalBar/ObjectNavigationalBar.js +24 -0
  160. package/dist/esm/ObjectNavigationalBar/ObjectNavigationalBar.js.map +1 -0
  161. package/dist/esm/ObjectNavigationalBar/ObjectNavigationalBar.stories.d.ts +10 -0
  162. package/dist/esm/ObjectNavigationalBar/ObjectNavigationalBar.stories.d.ts.map +1 -0
  163. package/dist/esm/ObjectNavigationalBar/ObjectNavigationalBar.stories.js +46 -0
  164. package/dist/esm/ObjectNavigationalBar/ObjectNavigationalBar.stories.js.map +1 -0
  165. package/dist/esm/ObjectNavigationalBar/index.d.ts +2 -0
  166. package/dist/esm/ObjectNavigationalBar/index.d.ts.map +1 -0
  167. package/dist/esm/ObjectNavigationalBar/index.js +2 -0
  168. package/dist/esm/ObjectNavigationalBar/index.js.map +1 -0
  169. package/dist/esm/SchemaEditor/NameCell.d.ts +9 -0
  170. package/dist/esm/SchemaEditor/NameCell.d.ts.map +1 -0
  171. package/dist/esm/SchemaEditor/NameCell.js +17 -0
  172. package/dist/esm/SchemaEditor/NameCell.js.map +1 -0
  173. package/dist/esm/SchemaEditor/SchemaEditor.d.ts +17 -0
  174. package/dist/esm/SchemaEditor/SchemaEditor.d.ts.map +1 -0
  175. package/dist/esm/SchemaEditor/SchemaEditor.js +331 -0
  176. package/dist/esm/SchemaEditor/SchemaEditor.js.map +1 -0
  177. package/dist/esm/SchemaEditor/SchemaEditor.module.css +11 -0
  178. package/dist/esm/SchemaEditor/SchemaEditor.stories.d.ts +12 -0
  179. package/dist/esm/SchemaEditor/SchemaEditor.stories.d.ts.map +1 -0
  180. package/dist/esm/SchemaEditor/SchemaEditor.stories.js +158 -0
  181. package/dist/esm/SchemaEditor/SchemaEditor.stories.js.map +1 -0
  182. package/dist/esm/SchemaEditor/TypeCell.d.ts +14 -0
  183. package/dist/esm/SchemaEditor/TypeCell.d.ts.map +1 -0
  184. package/dist/esm/SchemaEditor/TypeCell.js +81 -0
  185. package/dist/esm/SchemaEditor/TypeCell.js.map +1 -0
  186. package/dist/esm/SchemaEditor/index.d.ts +4 -0
  187. package/dist/esm/SchemaEditor/index.d.ts.map +1 -0
  188. package/dist/esm/SchemaEditor/index.js +3 -0
  189. package/dist/esm/TimeMachine/EventsView.stories.d.ts +8 -7
  190. package/dist/esm/TimeMachine/EventsView.stories.d.ts.map +1 -1
  191. package/dist/esm/TimeMachine/EventsView.stories.js +80 -4
  192. package/dist/esm/TimeMachine/EventsView.stories.js.map +1 -1
  193. package/dist/esm/TimeMachine/Properties.stories.d.ts +9 -7
  194. package/dist/esm/TimeMachine/Properties.stories.d.ts.map +1 -1
  195. package/dist/esm/TimeMachine/Properties.stories.js +49 -4
  196. package/dist/esm/TimeMachine/Properties.stories.js.map +1 -1
  197. package/dist/esm/TimeMachine/ReadModelView.stories.d.ts +7 -7
  198. package/dist/esm/TimeMachine/ReadModelView.stories.d.ts.map +1 -1
  199. package/dist/esm/TimeMachine/ReadModelView.stories.js +79 -5
  200. package/dist/esm/TimeMachine/ReadModelView.stories.js.map +1 -1
  201. package/dist/esm/TimeMachine/TimeMachine.stories.d.ts +8 -7
  202. package/dist/esm/TimeMachine/TimeMachine.stories.d.ts.map +1 -1
  203. package/dist/esm/TimeMachine/TimeMachine.stories.js +113 -4
  204. package/dist/esm/TimeMachine/TimeMachine.stories.js.map +1 -1
  205. package/dist/esm/index.d.ts +4 -2
  206. package/dist/esm/index.d.ts.map +1 -1
  207. package/dist/esm/index.js +10 -6
  208. package/dist/esm/index.js.map +1 -1
  209. package/dist/esm/tsconfig.tsbuildinfo +1 -1
  210. package/dist/esm/types/JsonSchema.d.ts +32 -0
  211. package/dist/esm/types/JsonSchema.d.ts.map +1 -0
  212. package/dist/esm/types/JsonSchema.js +2 -0
  213. package/dist/esm/types/JsonSchema.js.map +1 -0
  214. package/dist/esm/types/TypeFormat.d.ts +6 -0
  215. package/dist/esm/types/TypeFormat.d.ts.map +1 -0
  216. package/dist/esm/types/TypeFormat.js +18 -0
  217. package/dist/esm/types/TypeFormat.js.map +1 -0
  218. package/package.json +12 -7
  219. package/dist/cjs/CommandForm/CommandForm.js +0 -183
  220. package/dist/cjs/CommandForm/CommandForm.js.map +0 -1
  221. package/dist/cjs/CommandForm/CommandFormField.js +0 -11
  222. package/dist/cjs/CommandForm/CommandFormField.js.map +0 -1
  223. package/dist/cjs/CommandForm/CommandFormFields.js +0 -73
  224. package/dist/cjs/CommandForm/CommandFormFields.js.map +0 -1
  225. package/dist/cjs/CommandForm/ValidationMessage.js +0 -24
  226. package/dist/cjs/CommandForm/ValidationMessage.js.map +0 -1
  227. package/dist/cjs/CommandForm/asCommandFormField.js +0 -47
  228. package/dist/cjs/CommandForm/asCommandFormField.js.map +0 -1
  229. package/dist/cjs/EventModeling/EventModeling.css +0 -146
  230. package/dist/cjs/EventModeling/EventModeling.js +0 -209
  231. package/dist/cjs/EventModeling/EventModeling.js.map +0 -1
  232. package/dist/cjs/EventModeling/components/Canvas.js +0 -403
  233. package/dist/cjs/EventModeling/components/Canvas.js.map +0 -1
  234. package/dist/cjs/EventModeling/components/CanvasControls.js +0 -10
  235. package/dist/cjs/EventModeling/components/CanvasControls.js.map +0 -1
  236. package/dist/cjs/EventModeling/components/Toolbox.js +0 -18
  237. package/dist/cjs/EventModeling/components/Toolbox.js.map +0 -1
  238. package/dist/cjs/EventModeling/engine/connectorGraphics.js +0 -173
  239. package/dist/cjs/EventModeling/engine/connectorGraphics.js.map +0 -1
  240. package/dist/cjs/EventModeling/engine/elementSprites.js +0 -301
  241. package/dist/cjs/EventModeling/engine/elementSprites.js.map +0 -1
  242. package/dist/cjs/EventModeling/index.js +0 -12
  243. package/dist/cjs/EventModeling/types.js +0 -60
  244. package/dist/cjs/EventModeling/types.js.map +0 -1
  245. package/dist/esm/CommandForm/CommandForm.d.ts +0 -49
  246. package/dist/esm/CommandForm/CommandForm.d.ts.map +0 -1
  247. package/dist/esm/CommandForm/CommandForm.js +0 -178
  248. package/dist/esm/CommandForm/CommandForm.js.map +0 -1
  249. package/dist/esm/CommandForm/CommandForm.stories.d.ts +0 -8
  250. package/dist/esm/CommandForm/CommandForm.stories.d.ts.map +0 -1
  251. package/dist/esm/CommandForm/CommandForm.stories.js +0 -45
  252. package/dist/esm/CommandForm/CommandForm.stories.js.map +0 -1
  253. package/dist/esm/CommandForm/CommandFormField.d.ts +0 -18
  254. package/dist/esm/CommandForm/CommandFormField.d.ts.map +0 -1
  255. package/dist/esm/CommandForm/CommandFormField.js +0 -9
  256. package/dist/esm/CommandForm/CommandFormField.js.map +0 -1
  257. package/dist/esm/CommandForm/CommandFormFields.d.ts +0 -11
  258. package/dist/esm/CommandForm/CommandFormFields.d.ts.map +0 -1
  259. package/dist/esm/CommandForm/CommandFormFields.js +0 -71
  260. package/dist/esm/CommandForm/CommandFormFields.js.map +0 -1
  261. package/dist/esm/CommandForm/UserRegistrationCommand.d.ts +0 -63
  262. package/dist/esm/CommandForm/UserRegistrationCommand.d.ts.map +0 -1
  263. package/dist/esm/CommandForm/UserRegistrationCommand.js +0 -143
  264. package/dist/esm/CommandForm/UserRegistrationCommand.js.map +0 -1
  265. package/dist/esm/CommandForm/ValidationMessage.d.ts +0 -8
  266. package/dist/esm/CommandForm/ValidationMessage.d.ts.map +0 -1
  267. package/dist/esm/CommandForm/ValidationMessage.js +0 -22
  268. package/dist/esm/CommandForm/ValidationMessage.js.map +0 -1
  269. package/dist/esm/CommandForm/asCommandFormField.d.ts +0 -32
  270. package/dist/esm/CommandForm/asCommandFormField.d.ts.map +0 -1
  271. package/dist/esm/CommandForm/asCommandFormField.js +0 -45
  272. package/dist/esm/CommandForm/asCommandFormField.js.map +0 -1
  273. package/dist/esm/EventModeling/EventModeling.css +0 -146
  274. package/dist/esm/EventModeling/EventModeling.d.ts +0 -11
  275. package/dist/esm/EventModeling/EventModeling.d.ts.map +0 -1
  276. package/dist/esm/EventModeling/EventModeling.js +0 -207
  277. package/dist/esm/EventModeling/EventModeling.js.map +0 -1
  278. package/dist/esm/EventModeling/EventModeling.stories.d.ts +0 -10
  279. package/dist/esm/EventModeling/EventModeling.stories.d.ts.map +0 -1
  280. package/dist/esm/EventModeling/EventModeling.stories.js +0 -252
  281. package/dist/esm/EventModeling/EventModeling.stories.js.map +0 -1
  282. package/dist/esm/EventModeling/components/Canvas.d.ts +0 -23
  283. package/dist/esm/EventModeling/components/Canvas.d.ts.map +0 -1
  284. package/dist/esm/EventModeling/components/Canvas.js +0 -382
  285. package/dist/esm/EventModeling/components/Canvas.js.map +0 -1
  286. package/dist/esm/EventModeling/components/CanvasControls.d.ts +0 -10
  287. package/dist/esm/EventModeling/components/CanvasControls.d.ts.map +0 -1
  288. package/dist/esm/EventModeling/components/CanvasControls.js +0 -8
  289. package/dist/esm/EventModeling/components/CanvasControls.js.map +0 -1
  290. package/dist/esm/EventModeling/components/Toolbox.d.ts +0 -9
  291. package/dist/esm/EventModeling/components/Toolbox.d.ts.map +0 -1
  292. package/dist/esm/EventModeling/components/Toolbox.js +0 -16
  293. package/dist/esm/EventModeling/components/Toolbox.js.map +0 -1
  294. package/dist/esm/EventModeling/engine/connectorGraphics.d.ts +0 -12
  295. package/dist/esm/EventModeling/engine/connectorGraphics.d.ts.map +0 -1
  296. package/dist/esm/EventModeling/engine/connectorGraphics.js +0 -151
  297. package/dist/esm/EventModeling/engine/connectorGraphics.js.map +0 -1
  298. package/dist/esm/EventModeling/engine/elementSprites.d.ts +0 -23
  299. package/dist/esm/EventModeling/engine/elementSprites.d.ts.map +0 -1
  300. package/dist/esm/EventModeling/engine/elementSprites.js +0 -276
  301. package/dist/esm/EventModeling/engine/elementSprites.js.map +0 -1
  302. package/dist/esm/EventModeling/index.d.ts +0 -3
  303. package/dist/esm/EventModeling/index.d.ts.map +0 -1
  304. package/dist/esm/EventModeling/index.js +0 -3
  305. package/dist/esm/EventModeling/types.d.ts +0 -79
  306. package/dist/esm/EventModeling/types.d.ts.map +0 -1
  307. package/dist/esm/EventModeling/types.js +0 -56
  308. package/dist/esm/EventModeling/types.js.map +0 -1
  309. /package/dist/esm/{EventModeling → SchemaEditor}/index.js.map +0 -0
@@ -1,10 +1,10 @@
1
1
  'use strict';
2
2
 
3
3
  var jsxRuntime = require('react/jsx-runtime');
4
- var dialog = require('primereact/dialog');
5
- var button = require('primereact/button');
4
+ var dialogs = require('@cratis/arc.react/dialogs');
5
+ var Dialog = require('../Dialogs/Dialog.js');
6
6
  var React = require('react');
7
- var CommandForm = require('../CommandForm/CommandForm.js');
7
+ var commands = require('@cratis/arc.react/commands');
8
8
 
9
9
  const CommandDialogContext = React.createContext(undefined);
10
10
  const useCommandDialogContext = () => {
@@ -14,42 +14,50 @@ const useCommandDialogContext = () => {
14
14
  }
15
15
  return context;
16
16
  };
17
- const CommandDialogFormContent = () => {
18
- const command = CommandForm.useCommandInstance();
19
- const { setCommandResult, setCommandValues, isValid, onBeforeExecute } = CommandForm.useCommandFormContext();
20
- const { onSuccess: onConfirm, onCancel, confirmLabel, cancelLabel, confirmIcon, cancelIcon } = useCommandDialogContext();
17
+ const CommandDialogWrapper = ({ header, visible, width, confirmLabel, cancelLabel, onConfirm, onCancel, onBeforeExecute, children }) => {
18
+ const { setCommandValues, setCommandResult, commandResult } = commands.useCommandFormContext();
19
+ const commandInstance = commands.useCommandInstance();
20
+ const isDialogValid = !commandResult || commandResult.isValid;
21
21
  const handleConfirm = async () => {
22
22
  if (onBeforeExecute) {
23
- const transformedValues = onBeforeExecute(command);
23
+ const transformedValues = onBeforeExecute(commandInstance);
24
24
  setCommandValues(transformedValues);
25
25
  }
26
- const result = await command.execute();
26
+ const result = await commandInstance.execute();
27
27
  if (result.isSuccess) {
28
28
  await onConfirm(result);
29
+ return true;
29
30
  }
30
31
  else {
31
32
  setCommandResult(result);
33
+ return false;
32
34
  }
33
35
  };
34
- const handleCancel = () => {
35
- onCancel();
36
+ const processChildren = (nodes) => {
37
+ return React.Children.map(nodes, (child) => {
38
+ if (!React.isValidElement(child))
39
+ return child;
40
+ const component = child.type;
41
+ if (component.displayName === 'CommandFormField') {
42
+ return jsxRuntime.jsx(commands.CommandFormFieldWrapper, { field: child });
43
+ }
44
+ const childProps = child.props;
45
+ if (childProps.children != null) {
46
+ return React.cloneElement(child, {
47
+ children: processChildren(childProps.children)
48
+ });
49
+ }
50
+ return child;
51
+ });
36
52
  };
37
- return (jsxRuntime.jsx(jsxRuntime.Fragment, { children: jsxRuntime.jsxs("div", { className: "card flex flex-wrap justify-content-center gap-3 mt-8", children: [jsxRuntime.jsx(button.Button, { label: confirmLabel, icon: confirmIcon, onClick: handleConfirm, disabled: !isValid }), jsxRuntime.jsx(button.Button, { label: cancelLabel, icon: cancelIcon, severity: 'secondary', onClick: handleCancel })] }) }));
53
+ const processedChildren = processChildren(children);
54
+ return (jsxRuntime.jsx(Dialog.Dialog, { title: header, visible: visible, width: width, onConfirm: handleConfirm, onCancel: onCancel, buttons: dialogs.DialogButtons.OkCancel, okLabel: confirmLabel, cancelLabel: cancelLabel, isValid: isDialogValid, children: jsxRuntime.jsx("div", { style: { display: 'flex', flexDirection: 'column', width: '100%' }, children: processedChildren }) }));
38
55
  };
39
56
  const CommandDialogFieldsWrapper = (props) => {
40
- React.Children.forEach(props.children, child => {
41
- if (React.isValidElement(child)) {
42
- const component = child.type;
43
- if (component.displayName !== 'CommandFormField') {
44
- throw new Error(`Only CommandFormField components are allowed as children of CommandDialog.Fields. Got: ${component.displayName || component.name || 'Unknown'}`);
45
- }
46
- }
47
- });
48
- return (jsxRuntime.jsx(CommandForm.CommandForm.Fields, { children: props.children }));
57
+ return (jsxRuntime.jsx(commands.CommandForm.Fields, { children: props.children }));
49
58
  };
50
59
  const CommandDialogComponent = (props) => {
51
- const { command, initialValues, currentValues, visible, header, confirmLabel = 'Confirm', cancelLabel = 'Cancel', confirmIcon = 'pi pi-check', cancelIcon = 'pi pi-times', onConfirm, onCancel, onFieldValidate, onFieldChange, onBeforeExecute, children, style = { width: '50vw' }, width } = props;
52
- const dialogStyle = width ? { ...style, width } : style;
60
+ const { command, initialValues, currentValues, visible, header, confirmLabel = 'Confirm', cancelLabel = 'Cancel', confirmIcon = 'pi pi-check', cancelIcon = 'pi pi-times', onConfirm, onCancel, onFieldValidate, onFieldChange, onBeforeExecute, children, width = '50vw', showTitles, showErrors, validateOn, validateAllFieldsOnChange, validateOnInit, autoServerValidate, autoServerValidateThrottle, fieldContainerComponent, fieldDecoratorComponent, errorDisplayComponent, tooltipComponent, errorClassName, iconAddonClassName } = props;
53
61
  const contextValue = {
54
62
  onSuccess: onConfirm,
55
63
  onCancel,
@@ -61,9 +69,12 @@ const CommandDialogComponent = (props) => {
61
69
  onFieldChange,
62
70
  onBeforeExecute
63
71
  };
64
- return (jsxRuntime.jsx(dialog.Dialog, { header: header, visible: visible, style: dialogStyle, onHide: onCancel, contentStyle: { overflow: 'visible' }, children: jsxRuntime.jsx(CommandDialogContext.Provider, { value: contextValue, children: jsxRuntime.jsxs(CommandForm.CommandForm, { command: command, initialValues: initialValues, currentValues: currentValues, onFieldValidate: onFieldValidate, onFieldChange: onFieldChange, onBeforeExecute: onBeforeExecute, children: [children, jsxRuntime.jsx(CommandDialogFormContent, {})] }) }) }));
72
+ return (jsxRuntime.jsx(CommandDialogContext.Provider, { value: contextValue, children: jsxRuntime.jsx(commands.CommandForm, { command: command, initialValues: initialValues, currentValues: currentValues, onFieldValidate: onFieldValidate, onFieldChange: onFieldChange, onBeforeExecute: onBeforeExecute, showTitles: showTitles, showErrors: showErrors, validateOn: validateOn, validateAllFieldsOnChange: validateAllFieldsOnChange, validateOnInit: validateOnInit, autoServerValidate: autoServerValidate, autoServerValidateThrottle: autoServerValidateThrottle, fieldContainerComponent: fieldContainerComponent, fieldDecoratorComponent: fieldDecoratorComponent, errorDisplayComponent: errorDisplayComponent, tooltipComponent: tooltipComponent, errorClassName: errorClassName, iconAddonClassName: iconAddonClassName, children: jsxRuntime.jsx(CommandDialogWrapper, { header: header, visible: visible, width: width, confirmLabel: confirmLabel, cancelLabel: cancelLabel, onConfirm: onConfirm, onCancel: onCancel, onBeforeExecute: onBeforeExecute, children: children }) }) }));
65
73
  };
74
+ const CommandDialogColumnWrapper = ({ children }) => (jsxRuntime.jsx(commands.CommandForm.Column, { children: children }));
75
+ CommandDialogColumnWrapper.displayName = 'CommandFormColumn';
66
76
  CommandDialogComponent.Fields = CommandDialogFieldsWrapper;
77
+ CommandDialogComponent.Column = CommandDialogColumnWrapper;
67
78
  const CommandDialog = CommandDialogComponent;
68
79
 
69
80
  exports.CommandDialog = CommandDialog;
@@ -1 +1 @@
1
- {"version":3,"file":"CommandDialog.js","sources":["../../../CommandDialog/CommandDialog.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 { ICommandResult } from '@cratis/arc/commands';\nimport { Constructor } from '@cratis/fundamentals';\nimport { Dialog } from 'primereact/dialog';\nimport { Button } from 'primereact/button';\nimport React, { createContext, useContext } from 'react';\nimport { CommandForm, useCommandFormContext, BeforeExecuteCallback } from '../CommandForm/CommandForm';\nimport { useCommandInstance } from '../CommandForm/CommandForm';\n\nexport type FieldValidator<TCommand> = (command: TCommand, fieldName: string, oldValue: unknown, newValue: unknown) => string | undefined;\nexport type FieldChangeCallback<TCommand> = (command: TCommand, fieldName: string, oldValue: unknown, newValue: unknown) => void;\n\nexport interface CommandDialogProps<TCommand, TResponse = object> {\n command: Constructor<TCommand>;\n initialValues?: Partial<TCommand>;\n currentValues?: Partial<TCommand> | undefined;\n visible: boolean;\n header: string;\n confirmLabel?: string;\n cancelLabel?: string;\n confirmIcon?: string;\n cancelIcon?: string;\n onConfirm: (result: ICommandResult<TResponse>) => void | Promise<void>;\n onCancel: () => void;\n onFieldValidate?: FieldValidator<TCommand>;\n onFieldChange?: FieldChangeCallback<TCommand>;\n onBeforeExecute?: BeforeExecuteCallback<TCommand>;\n children?: React.ReactNode;\n style?: React.CSSProperties;\n width?: string;\n}\n\ninterface CommandDialogContextValue<TCommand = unknown> {\n onSuccess: (result: ICommandResult<unknown>) => void | Promise<void>;\n onCancel: () => void;\n confirmLabel: string;\n cancelLabel: string;\n confirmIcon: string;\n cancelIcon: string;\n onFieldValidate?: FieldValidator<TCommand>;\n onFieldChange?: FieldChangeCallback<TCommand>;\n onBeforeExecute?: BeforeExecuteCallback<TCommand>;\n}\n\nconst CommandDialogContext = createContext<CommandDialogContextValue<unknown> | undefined>(undefined);\n\nexport const useCommandDialogContext = <TCommand = unknown,>() => {\n const context = useContext(CommandDialogContext);\n if (!context) {\n throw new Error('useCommandDialogContext must be used within a CommandDialog');\n }\n return context as CommandDialogContextValue<TCommand>;\n};\n\nconst CommandDialogFormContent = <TCommand extends { execute: () => Promise<ICommandResult<unknown>> }>() => {\n const command = useCommandInstance<TCommand>();\n const { setCommandResult, setCommandValues, isValid, onBeforeExecute } = useCommandFormContext<TCommand>();\n const { onSuccess: onConfirm, onCancel, confirmLabel, cancelLabel, confirmIcon, cancelIcon } = useCommandDialogContext<TCommand>();\n\n const handleConfirm = async () => {\n if (onBeforeExecute) {\n const transformedValues = onBeforeExecute(command);\n setCommandValues(transformedValues);\n }\n const result = await command.execute();\n if (result.isSuccess) {\n await onConfirm(result);\n } else {\n setCommandResult(result);\n }\n };\n\n const handleCancel = () => {\n onCancel();\n };\n\n return (\n <>\n <div className=\"card flex flex-wrap justify-content-center gap-3 mt-8\">\n <Button label={confirmLabel} icon={confirmIcon} onClick={handleConfirm} disabled={!isValid} />\n <Button label={cancelLabel} icon={cancelIcon} severity='secondary' onClick={handleCancel} />\n </div>\n </>\n );\n};\n\nconst CommandDialogFieldsWrapper = (props: { children: React.ReactNode }) => {\n React.Children.forEach(props.children, child => {\n if (React.isValidElement(child)) {\n const component = child.type as React.ComponentType<unknown>;\n if (component.displayName !== 'CommandFormField') {\n throw new Error(`Only CommandFormField components are allowed as children of CommandDialog.Fields. Got: ${component.displayName || component.name || 'Unknown'}`);\n }\n }\n });\n\n return (\n <CommandForm.Fields>\n {props.children}\n </CommandForm.Fields>\n );\n};\n\nconst CommandDialogComponent = <TCommand extends object = object, TResponse = object>(props: CommandDialogProps<TCommand, TResponse>) => {\n const {\n command,\n initialValues,\n currentValues,\n visible,\n header,\n confirmLabel = 'Confirm',\n cancelLabel = 'Cancel',\n confirmIcon = 'pi pi-check',\n cancelIcon = 'pi pi-times',\n onConfirm,\n onCancel,\n onFieldValidate,\n onFieldChange,\n onBeforeExecute,\n children,\n style = { width: '50vw' },\n width\n } = props;\n\n const dialogStyle = width ? { ...style, width } : style;\n\n const contextValue: CommandDialogContextValue<TCommand> = {\n onSuccess: onConfirm,\n onCancel,\n confirmLabel,\n cancelLabel,\n confirmIcon,\n cancelIcon,\n onFieldValidate,\n onFieldChange,\n onBeforeExecute\n };\n\n return (\n <Dialog\n header={header}\n visible={visible}\n style={dialogStyle}\n onHide={onCancel}\n contentStyle={{ overflow: 'visible' }}\n >\n <CommandDialogContext.Provider value={contextValue}>\n <CommandForm command={command} initialValues={initialValues} currentValues={currentValues} onFieldValidate={onFieldValidate} onFieldChange={onFieldChange} onBeforeExecute={onBeforeExecute}>\n {children}\n <CommandDialogFormContent />\n </CommandForm>\n </CommandDialogContext.Provider>\n </Dialog>\n );\n};\n\nCommandDialogComponent.Fields = CommandDialogFieldsWrapper;\n\nexport const CommandDialog = CommandDialogComponent;\n"],"names":["createContext","useContext","useCommandInstance","useCommandFormContext","_jsx","_jsxs","Button","CommandForm","Dialog"],"mappings":"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"}
1
+ {"version":3,"file":"CommandDialog.js","sources":["../../../CommandDialog/CommandDialog.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 { ICommandResult } from '@cratis/arc/commands';\nimport { Constructor } from '@cratis/fundamentals';\nimport { DialogButtons } from '@cratis/arc.react/dialogs';\nimport { Dialog } from '../Dialogs/Dialog';\nimport React, { createContext, useContext } from 'react';\nimport { \n CommandForm, \n CommandFormFieldWrapper,\n useCommandFormContext, \n useCommandInstance\n} from '@cratis/arc.react/commands';\n\ntype CommandFormProps = React.ComponentProps<typeof CommandForm>;\n\n// Local type definitions\nexport type BeforeExecuteCallback<TCommand> = (values: TCommand) => TCommand;\n\nexport type FieldValidator<TCommand> = (command: TCommand, fieldName: string, oldValue: unknown, newValue: unknown) => string | undefined;\nexport type FieldChangeCallback<TCommand> = (command: TCommand, fieldName: string, oldValue: unknown, newValue: unknown) => void;\n\nexport interface CommandDialogProps<TCommand, TResponse = object> {\n command: Constructor<TCommand>;\n initialValues?: Partial<TCommand>;\n currentValues?: Partial<TCommand> | undefined;\n visible: boolean;\n header: string;\n confirmLabel?: string;\n cancelLabel?: string;\n confirmIcon?: string;\n cancelIcon?: string;\n onConfirm: (result: ICommandResult<TResponse>) => void | Promise<void>;\n onCancel: () => void;\n onFieldValidate?: FieldValidator<TCommand>;\n onFieldChange?: FieldChangeCallback<TCommand>;\n onBeforeExecute?: BeforeExecuteCallback<TCommand>;\n children?: React.ReactNode;\n style?: React.CSSProperties;\n width?: string;\n showTitles?: boolean;\n showErrors?: boolean;\n validateOn?: CommandFormProps['validateOn'];\n validateAllFieldsOnChange?: boolean;\n validateOnInit?: boolean;\n autoServerValidate?: boolean;\n autoServerValidateThrottle?: number;\n fieldContainerComponent?: CommandFormProps['fieldContainerComponent'];\n fieldDecoratorComponent?: CommandFormProps['fieldDecoratorComponent'];\n errorDisplayComponent?: CommandFormProps['errorDisplayComponent'];\n tooltipComponent?: CommandFormProps['tooltipComponent'];\n errorClassName?: string;\n iconAddonClassName?: string;\n}\n\ninterface CommandDialogContextValue<TCommand = unknown> {\n onSuccess: (result: ICommandResult<unknown>) => void | Promise<void>;\n onCancel: () => void;\n confirmLabel: string;\n cancelLabel: string;\n confirmIcon: string;\n cancelIcon: string;\n onFieldValidate?: FieldValidator<TCommand>;\n onFieldChange?: FieldChangeCallback<TCommand>;\n onBeforeExecute?: BeforeExecuteCallback<TCommand>;\n}\n\nconst CommandDialogContext = createContext<CommandDialogContextValue<unknown> | undefined>(undefined);\n\nexport const useCommandDialogContext = <TCommand = unknown,>() => {\n const context = useContext(CommandDialogContext);\n if (!context) {\n throw new Error('useCommandDialogContext must be used within a CommandDialog');\n }\n return context as CommandDialogContextValue<TCommand>;\n};\n\nconst CommandDialogWrapper = <TCommand extends object>({\n header,\n visible,\n width,\n confirmLabel,\n cancelLabel,\n onConfirm,\n onCancel,\n onBeforeExecute,\n children\n}: {\n header: string;\n visible: boolean;\n width: string;\n confirmLabel: string;\n cancelLabel: string;\n onConfirm: (result: ICommandResult<unknown>) => void | Promise<void>;\n onCancel: () => void;\n onBeforeExecute?: BeforeExecuteCallback<TCommand>;\n children: React.ReactNode;\n}) => {\n const { setCommandValues, setCommandResult, commandResult } = useCommandFormContext<TCommand>();\n const commandInstance = useCommandInstance<TCommand>();\n\n // Compute real dialog validity from commandResult.\n // fieldValidities in CommandForm is never populated by field renderers, so\n // the context's isValid is always vacuously true. We derive validity from\n // the actual validation result instead:\n // - No result yet (before any validate call) → enabled (allow first submit)\n // - commandResult.isValid → reflects actual validation state\n const isDialogValid = !commandResult || commandResult.isValid;\n\n const handleConfirm = async () => {\n if (onBeforeExecute) {\n const transformedValues = onBeforeExecute(commandInstance);\n setCommandValues(transformedValues);\n }\n const result = await (commandInstance as unknown as { execute: () => Promise<ICommandResult<unknown>> }).execute();\n if (result.isSuccess) {\n await onConfirm(result);\n return true;\n } else {\n setCommandResult(result);\n return false;\n }\n };\n\n const processChildren = (nodes: React.ReactNode): React.ReactNode => {\n return React.Children.map(nodes, (child) => {\n if (!React.isValidElement(child)) return child;\n\n const component = child.type as React.ComponentType<unknown>;\n if (component.displayName === 'CommandFormField') {\n type FieldElement = Parameters<typeof CommandFormFieldWrapper>[0]['field'];\n return <CommandFormFieldWrapper field={child as unknown as FieldElement} />;\n }\n\n const childProps = child.props as Record<string, unknown>;\n if (childProps.children != null) {\n return React.cloneElement(child as React.ReactElement<Record<string, unknown>>, {\n children: processChildren(childProps.children as React.ReactNode)\n });\n }\n\n return child;\n });\n };\n\n const processedChildren = processChildren(children);\n\n return (\n <Dialog\n title={header}\n visible={visible}\n width={width}\n onConfirm={handleConfirm}\n onCancel={onCancel}\n buttons={DialogButtons.OkCancel}\n okLabel={confirmLabel}\n cancelLabel={cancelLabel}\n isValid={isDialogValid}\n >\n <div style={{ display: 'flex', flexDirection: 'column', width: '100%' }}>\n {processedChildren}\n </div>\n </Dialog>\n );\n};\n\nconst CommandDialogFieldsWrapper = (props: { children: React.ReactNode }) => {\n return (\n <CommandForm.Fields>\n {props.children}\n </CommandForm.Fields>\n );\n};\n\nconst CommandDialogComponent = <TCommand extends object = object, TResponse = object>(props: CommandDialogProps<TCommand, TResponse>) => {\n const {\n command,\n initialValues,\n currentValues,\n visible,\n header,\n confirmLabel = 'Confirm',\n cancelLabel = 'Cancel',\n confirmIcon = 'pi pi-check',\n cancelIcon = 'pi pi-times',\n onConfirm,\n onCancel,\n onFieldValidate,\n onFieldChange,\n onBeforeExecute,\n children,\n width = '50vw',\n showTitles,\n showErrors,\n validateOn,\n validateAllFieldsOnChange,\n validateOnInit,\n autoServerValidate,\n autoServerValidateThrottle,\n fieldContainerComponent,\n fieldDecoratorComponent,\n errorDisplayComponent,\n tooltipComponent,\n errorClassName,\n iconAddonClassName\n } = props;\n\n const contextValue: CommandDialogContextValue<TCommand> = {\n onSuccess: onConfirm,\n onCancel,\n confirmLabel,\n cancelLabel,\n confirmIcon,\n cancelIcon,\n onFieldValidate,\n onFieldChange,\n onBeforeExecute\n };\n\n return (\n <CommandDialogContext.Provider value={contextValue}>\n <CommandForm\n command={command}\n initialValues={initialValues}\n currentValues={currentValues}\n onFieldValidate={onFieldValidate}\n onFieldChange={onFieldChange}\n onBeforeExecute={onBeforeExecute}\n showTitles={showTitles}\n showErrors={showErrors}\n validateOn={validateOn}\n validateAllFieldsOnChange={validateAllFieldsOnChange}\n validateOnInit={validateOnInit}\n autoServerValidate={autoServerValidate}\n autoServerValidateThrottle={autoServerValidateThrottle}\n fieldContainerComponent={fieldContainerComponent}\n fieldDecoratorComponent={fieldDecoratorComponent}\n errorDisplayComponent={errorDisplayComponent}\n tooltipComponent={tooltipComponent}\n errorClassName={errorClassName}\n iconAddonClassName={iconAddonClassName}>\n <CommandDialogWrapper\n header={header}\n visible={visible}\n width={width}\n confirmLabel={confirmLabel}\n cancelLabel={cancelLabel}\n onConfirm={onConfirm}\n onCancel={onCancel}\n onBeforeExecute={onBeforeExecute}\n >\n {children}\n </CommandDialogWrapper>\n </CommandForm>\n </CommandDialogContext.Provider>\n );\n};\n\nconst CommandDialogColumnWrapper = ({ children }: { children: React.ReactNode }) => (\n <CommandForm.Column>{children}</CommandForm.Column>\n);\nCommandDialogColumnWrapper.displayName = 'CommandFormColumn';\n\nCommandDialogComponent.Fields = CommandDialogFieldsWrapper;\nCommandDialogComponent.Column = CommandDialogColumnWrapper;\n\nexport const CommandDialog = CommandDialogComponent;\n"],"names":["createContext","useContext","useCommandFormContext","useCommandInstance","_jsx","CommandFormFieldWrapper","Dialog","DialogButtons","CommandForm"],"mappings":"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"}
@@ -2,9 +2,9 @@
2
2
 
3
3
  var jsxRuntime = require('react/jsx-runtime');
4
4
  var checkbox = require('primereact/checkbox');
5
- var asCommandFormField = require('../asCommandFormField.js');
5
+ var commands = require('@cratis/arc.react/commands');
6
6
 
7
- const CheckboxField = asCommandFormField.asCommandFormField((props) => (jsxRuntime.jsxs("div", { className: "flex align-items-center", children: [jsxRuntime.jsx(checkbox.Checkbox, { checked: props.value, onChange: props.onChange, invalid: props.invalid }), props.label && jsxRuntime.jsx("label", { className: "ml-2", children: props.label })] })), {
7
+ const CheckboxField = commands.asCommandFormField((props) => (jsxRuntime.jsxs("div", { className: "flex align-items-center", children: [jsxRuntime.jsx(checkbox.Checkbox, { checked: props.value, onChange: props.onChange, invalid: props.invalid }), props.label && jsxRuntime.jsx("label", { className: "ml-2", children: props.label })] })), {
8
8
  defaultValue: false,
9
9
  extractValue: (e) => e.checked
10
10
  });
@@ -1 +1 @@
1
- {"version":3,"file":"CheckboxField.js","sources":["../../../../CommandForm/fields/CheckboxField.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 { Checkbox } from 'primereact/checkbox';\nimport React from 'react';\nimport { asCommandFormField, WrappedFieldProps } from '../asCommandFormField';\n\ninterface CheckboxFieldComponentProps extends WrappedFieldProps<boolean> {\n label?: string;\n}\n\nexport const CheckboxField = asCommandFormField<CheckboxFieldComponentProps>(\n (props) => (\n <div className=\"flex align-items-center\">\n <Checkbox\n checked={props.value}\n onChange={props.onChange}\n invalid={props.invalid}\n />\n {props.label && <label className=\"ml-2\">{props.label}</label>}\n </div>\n ),\n {\n defaultValue: false,\n extractValue: (e: { checked: boolean }) => e.checked\n }\n);\n"],"names":["asCommandFormField","_jsxs","_jsx","Checkbox"],"mappings":";;;;;;AAWO,MAAM,aAAa,GAAGA,qCAAkB,CAC3C,CAAC,KAAK,MACFC,yBAAK,SAAS,EAAC,yBAAyB,EAAA,QAAA,EAAA,CACpCC,cAAA,CAACC,iBAAQ,EAAA,EACL,OAAO,EAAE,KAAK,CAAC,KAAK,EACpB,QAAQ,EAAE,KAAK,CAAC,QAAQ,EACxB,OAAO,EAAE,KAAK,CAAC,OAAO,EAAA,CACxB,EACD,KAAK,CAAC,KAAK,IAAID,cAAA,CAAA,OAAA,EAAA,EAAO,SAAS,EAAC,MAAM,EAAA,QAAA,EAAE,KAAK,CAAC,KAAK,EAAA,CAAS,CAAA,EAAA,CAC3D,CACT,EACD;AACI,IAAA,YAAY,EAAE,KAAK;IACnB,YAAY,EAAE,CAAC,CAAuB,KAAK,CAAC,CAAC;AAChD,CAAA;;;;"}
1
+ {"version":3,"file":"CheckboxField.js","sources":["../../../../CommandForm/fields/CheckboxField.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 { Checkbox } from 'primereact/checkbox';\nimport React from 'react';\nimport { asCommandFormField, WrappedFieldProps } from '@cratis/arc.react/commands';\n\ninterface CheckboxFieldComponentProps extends WrappedFieldProps<boolean> {\n label?: string;\n}\n\nexport const CheckboxField = asCommandFormField<CheckboxFieldComponentProps>(\n (props) => (\n <div className=\"flex align-items-center\">\n <Checkbox\n checked={props.value}\n onChange={props.onChange}\n invalid={props.invalid}\n />\n {props.label && <label className=\"ml-2\">{props.label}</label>}\n </div>\n ),\n {\n defaultValue: false,\n extractValue: (e: { checked: boolean }) => e.checked\n }\n);\n"],"names":["asCommandFormField","_jsxs","_jsx","Checkbox"],"mappings":";;;;;;AAWO,MAAM,aAAa,GAAGA,2BAAkB,CAC3C,CAAC,KAAK,MACFC,yBAAK,SAAS,EAAC,yBAAyB,EAAA,QAAA,EAAA,CACpCC,cAAA,CAACC,iBAAQ,EAAA,EACL,OAAO,EAAE,KAAK,CAAC,KAAK,EACpB,QAAQ,EAAE,KAAK,CAAC,QAAQ,EACxB,OAAO,EAAE,KAAK,CAAC,OAAO,EAAA,CACxB,EACD,KAAK,CAAC,KAAK,IAAID,cAAA,CAAA,OAAA,EAAA,EAAO,SAAS,EAAC,MAAM,EAAA,QAAA,EAAE,KAAK,CAAC,KAAK,EAAA,CAAS,CAAA,EAAA,CAC3D,CACT,EACD;AACI,IAAA,YAAY,EAAE,KAAK;IACnB,YAAY,EAAE,CAAC,CAAuB,KAAK,CAAC,CAAC;AAChD,CAAA;;;;"}
@@ -1,13 +1,13 @@
1
1
  'use strict';
2
2
 
3
3
  var jsxRuntime = require('react/jsx-runtime');
4
- var asCommandFormField = require('../asCommandFormField.js');
4
+ var dropdown = require('primereact/dropdown');
5
+ var commands = require('@cratis/arc.react/commands');
5
6
 
6
- const SelectComponent = (props) => (jsxRuntime.jsxs("select", { value: props.value || '', onChange: props.onChange, required: props.required, className: `w-full p-3 rounded-md text-base ${props.invalid ? 'border border-red-500' : 'border border-gray-300'}`, children: [props.placeholder && jsxRuntime.jsx("option", { value: "", children: props.placeholder }), props.options.map((option, index) => (jsxRuntime.jsx("option", { value: String(option[props.optionIdField]), children: String(option[props.optionLabelField]) }, index)))] }));
7
- const SelectField = asCommandFormField.asCommandFormField(SelectComponent, {
7
+ const DropdownField = commands.asCommandFormField((props) => (jsxRuntime.jsx(dropdown.Dropdown, { value: props.value, onChange: (e) => props.onChange(e.value), options: props.options, optionValue: props.optionValue, optionLabel: props.optionLabel, placeholder: props.placeholder, invalid: props.invalid, className: "w-full" })), {
8
8
  defaultValue: '',
9
- extractValue: (e) => e.target.value
9
+ extractValue: (e) => e
10
10
  });
11
11
 
12
- exports.SelectField = SelectField;
12
+ exports.DropdownField = DropdownField;
13
13
  //# sourceMappingURL=DropdownField.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DropdownField.js","sources":["../../../../CommandForm/fields/DropdownField.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 React from 'react';\nimport { asCommandFormField, WrappedFieldProps } from '../asCommandFormField';\n\ninterface SelectComponentProps extends WrappedFieldProps<string> {\n options: Array<{ [key: string]: unknown }>;\n optionIdField: string;\n optionLabelField: string;\n placeholder?: string;\n}\n\nconst SelectComponent = (props: SelectComponentProps) => (\n <select\n value={props.value || ''}\n onChange={props.onChange}\n required={props.required}\n className={`w-full p-3 rounded-md text-base ${props.invalid ? 'border border-red-500' : 'border border-gray-300'}`}\n >\n {props.placeholder && <option value=\"\">{props.placeholder}</option>}\n {props.options.map((option, index) => (\n <option key={index} value={String(option[props.optionIdField])}>\n {String(option[props.optionLabelField])}\n </option>\n ))}\n </select>\n);\n\nexport const SelectField = asCommandFormField<SelectComponentProps>(\n SelectComponent,\n {\n defaultValue: '',\n extractValue: (e: React.ChangeEvent<HTMLSelectElement>) => e.target.value\n }\n);\n"],"names":["_jsxs","_jsx","asCommandFormField"],"mappings":";;;;;AAaA,MAAM,eAAe,GAAG,CAAC,KAA2B,MAChDA,eAAA,CAAA,QAAA,EAAA,EACI,KAAK,EAAE,KAAK,CAAC,KAAK,IAAI,EAAE,EACxB,QAAQ,EAAE,KAAK,CAAC,QAAQ,EACxB,QAAQ,EAAE,KAAK,CAAC,QAAQ,EACxB,SAAS,EAAE,CAAA,gCAAA,EAAmC,KAAK,CAAC,OAAO,GAAG,uBAAuB,GAAG,wBAAwB,CAAA,CAAE,aAEjH,KAAK,CAAC,WAAW,IAAIC,cAAA,CAAA,QAAA,EAAA,EAAQ,KAAK,EAAC,EAAE,EAAA,QAAA,EAAE,KAAK,CAAC,WAAW,GAAU,EAClE,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,MAC7BA,cAAA,CAAA,QAAA,EAAA,EAAoB,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,EAAA,QAAA,EACzD,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,EAAA,EAD9B,KAAK,CAET,CACZ,CAAC,CAAA,EAAA,CACG,CACZ;AAEM,MAAM,WAAW,GAAGC,qCAAkB,CACzC,eAAe,EACf;AACI,IAAA,YAAY,EAAE,EAAE;IAChB,YAAY,EAAE,CAAC,CAAuC,KAAK,CAAC,CAAC,MAAM,CAAC;AACvE,CAAA;;;;"}
1
+ {"version":3,"file":"DropdownField.js","sources":["../../../../CommandForm/fields/DropdownField.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 { Dropdown } from 'primereact/dropdown';\nimport React from 'react';\nimport { asCommandFormField, WrappedFieldProps } from '@cratis/arc.react/commands';\n\ninterface DropdownFieldComponentProps extends WrappedFieldProps<string | number> {\n options: Array<{ [key: string]: unknown }>;\n optionValue: string;\n optionLabel: string;\n placeholder?: string;\n}\n\nexport const DropdownField = asCommandFormField<DropdownFieldComponentProps>(\n (props) => (\n <Dropdown\n value={props.value}\n onChange={(e) => props.onChange(e.value)}\n options={props.options}\n optionValue={props.optionValue}\n optionLabel={props.optionLabel}\n placeholder={props.placeholder}\n invalid={props.invalid}\n className=\"w-full\"\n />\n ),\n {\n defaultValue: '',\n extractValue: (e: unknown) => e as string | number\n }\n);\n"],"names":["asCommandFormField","_jsx","Dropdown"],"mappings":";;;;;;AAcO,MAAM,aAAa,GAAGA,2BAAkB,CAC3C,CAAC,KAAK,MACFC,cAAA,CAACC,iBAAQ,IACL,KAAK,EAAE,KAAK,CAAC,KAAK,EAClB,QAAQ,EAAE,CAAC,CAAC,KAAK,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,EACxC,OAAO,EAAE,KAAK,CAAC,OAAO,EACtB,WAAW,EAAE,KAAK,CAAC,WAAW,EAC9B,WAAW,EAAE,KAAK,CAAC,WAAW,EAC9B,WAAW,EAAE,KAAK,CAAC,WAAW,EAC9B,OAAO,EAAE,KAAK,CAAC,OAAO,EACtB,SAAS,EAAC,QAAQ,EAAA,CACpB,CACL,EACD;AACI,IAAA,YAAY,EAAE,EAAE;AAChB,IAAA,YAAY,EAAE,CAAC,CAAU,KAAK;AACjC,CAAA;;;;"}
@@ -2,9 +2,9 @@
2
2
 
3
3
  var jsxRuntime = require('react/jsx-runtime');
4
4
  var inputtext = require('primereact/inputtext');
5
- var asCommandFormField = require('../asCommandFormField.js');
5
+ var commands = require('@cratis/arc.react/commands');
6
6
 
7
- const InputTextField = asCommandFormField.asCommandFormField((props) => (jsxRuntime.jsx(inputtext.InputText, { type: props.type || 'text', value: props.value, onChange: props.onChange, invalid: props.invalid, placeholder: props.placeholder, className: "w-full" })), {
7
+ const InputTextField = commands.asCommandFormField((props) => (jsxRuntime.jsx(inputtext.InputText, { type: props.type || 'text', value: props.value, onChange: props.onChange, invalid: props.invalid, placeholder: props.placeholder, className: "w-full" })), {
8
8
  defaultValue: '',
9
9
  extractValue: (e) => e.target.value
10
10
  });
@@ -1 +1 @@
1
- {"version":3,"file":"InputTextField.js","sources":["../../../../CommandForm/fields/InputTextField.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 { InputText } from 'primereact/inputtext';\nimport React from 'react';\nimport { asCommandFormField, WrappedFieldProps } from '../asCommandFormField';\n\ninterface InputTextComponentProps extends WrappedFieldProps<string> {\n type?: 'text' | 'email' | 'password' | 'color' | 'date' | 'datetime-local' | 'time' | 'url' | 'tel' | 'search';\n placeholder?: string;\n}\n\nexport const InputTextField = asCommandFormField<InputTextComponentProps>(\n (props) => (\n <InputText\n type={props.type || 'text'}\n value={props.value}\n onChange={props.onChange}\n invalid={props.invalid}\n placeholder={props.placeholder}\n className=\"w-full\"\n />\n ),\n {\n defaultValue: '',\n extractValue: (e: React.ChangeEvent<HTMLInputElement>) => e.target.value\n }\n);\n"],"names":["asCommandFormField","_jsx","InputText"],"mappings":";;;;;;AAYO,MAAM,cAAc,GAAGA,qCAAkB,CAC5C,CAAC,KAAK,MACFC,eAACC,mBAAS,EAAA,EACN,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,MAAM,EAC1B,KAAK,EAAE,KAAK,CAAC,KAAK,EAClB,QAAQ,EAAE,KAAK,CAAC,QAAQ,EACxB,OAAO,EAAE,KAAK,CAAC,OAAO,EACtB,WAAW,EAAE,KAAK,CAAC,WAAW,EAC9B,SAAS,EAAC,QAAQ,EAAA,CACpB,CACL,EACD;AACI,IAAA,YAAY,EAAE,EAAE;IAChB,YAAY,EAAE,CAAC,CAAsC,KAAK,CAAC,CAAC,MAAM,CAAC;AACtE,CAAA;;;;"}
1
+ {"version":3,"file":"InputTextField.js","sources":["../../../../CommandForm/fields/InputTextField.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 { InputText } from 'primereact/inputtext';\nimport React from 'react';\nimport { asCommandFormField, WrappedFieldProps } from '@cratis/arc.react/commands';\n\ninterface InputTextComponentProps extends WrappedFieldProps<string> {\n type?: 'text' | 'email' | 'password' | 'color' | 'date' | 'datetime-local' | 'time' | 'url' | 'tel' | 'search';\n placeholder?: string;\n}\n\nexport const InputTextField = asCommandFormField<InputTextComponentProps>(\n (props) => (\n <InputText\n type={props.type || 'text'}\n value={props.value}\n onChange={props.onChange}\n invalid={props.invalid}\n placeholder={props.placeholder}\n className=\"w-full\"\n />\n ),\n {\n defaultValue: '',\n extractValue: (e: React.ChangeEvent<HTMLInputElement>) => e.target.value\n }\n);\n"],"names":["asCommandFormField","_jsx","InputText"],"mappings":";;;;;;AAYO,MAAM,cAAc,GAAGA,2BAAkB,CAC5C,CAAC,KAAK,MACFC,eAACC,mBAAS,EAAA,EACN,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,MAAM,EAC1B,KAAK,EAAE,KAAK,CAAC,KAAK,EAClB,QAAQ,EAAE,KAAK,CAAC,QAAQ,EACxB,OAAO,EAAE,KAAK,CAAC,OAAO,EACtB,WAAW,EAAE,KAAK,CAAC,WAAW,EAC9B,SAAS,EAAC,QAAQ,EAAA,CACpB,CACL,EACD;AACI,IAAA,YAAY,EAAE,EAAE;IAChB,YAAY,EAAE,CAAC,CAAsC,KAAK,CAAC,CAAC,MAAM,CAAC;AACtE,CAAA;;;;"}
@@ -2,9 +2,9 @@
2
2
 
3
3
  var jsxRuntime = require('react/jsx-runtime');
4
4
  var inputnumber = require('primereact/inputnumber');
5
- var asCommandFormField = require('../asCommandFormField.js');
5
+ var commands = require('@cratis/arc.react/commands');
6
6
 
7
- const NumberField = asCommandFormField.asCommandFormField((props) => (jsxRuntime.jsx(inputnumber.InputNumber, { value: props.value, onValueChange: (e) => props.onChange(e.value ?? 0), invalid: props.invalid, placeholder: props.placeholder, min: props.min, max: props.max, step: props.step, className: "w-full" })), {
7
+ const NumberField = commands.asCommandFormField((props) => (jsxRuntime.jsx(inputnumber.InputNumber, { value: props.value, onValueChange: (e) => props.onChange(e.value ?? 0), invalid: props.invalid, placeholder: props.placeholder, min: props.min, max: props.max, step: props.step, className: "w-full" })), {
8
8
  defaultValue: 0,
9
9
  extractValue: (e) => (typeof e === 'number' ? e : 0)
10
10
  });
@@ -1 +1 @@
1
- {"version":3,"file":"NumberField.js","sources":["../../../../CommandForm/fields/NumberField.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 { InputNumber } from 'primereact/inputnumber';\nimport React from 'react';\nimport { asCommandFormField, WrappedFieldProps } from '../asCommandFormField';\n\ninterface NumberFieldComponentProps extends WrappedFieldProps<number> {\n placeholder?: string;\n min?: number;\n max?: number;\n step?: number;\n}\n\nexport const NumberField = asCommandFormField<NumberFieldComponentProps>(\n (props) => (\n <InputNumber\n value={props.value}\n onValueChange={(e) => props.onChange(e.value ?? 0)}\n invalid={props.invalid}\n placeholder={props.placeholder}\n min={props.min}\n max={props.max}\n step={props.step}\n className=\"w-full\"\n />\n ),\n {\n defaultValue: 0,\n extractValue: (e: unknown) => (typeof e === 'number' ? e : 0)\n }\n);\n"],"names":["asCommandFormField","_jsx","InputNumber"],"mappings":";;;;;;AAcO,MAAM,WAAW,GAAGA,qCAAkB,CACzC,CAAC,KAAK,MACFC,cAAA,CAACC,uBAAW,IACR,KAAK,EAAE,KAAK,CAAC,KAAK,EAClB,aAAa,EAAE,CAAC,CAAC,KAAK,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,EAClD,OAAO,EAAE,KAAK,CAAC,OAAO,EACtB,WAAW,EAAE,KAAK,CAAC,WAAW,EAC9B,GAAG,EAAE,KAAK,CAAC,GAAG,EACd,GAAG,EAAE,KAAK,CAAC,GAAG,EACd,IAAI,EAAE,KAAK,CAAC,IAAI,EAChB,SAAS,EAAC,QAAQ,EAAA,CACpB,CACL,EACD;AACI,IAAA,YAAY,EAAE,CAAC;AACf,IAAA,YAAY,EAAE,CAAC,CAAU,MAAM,OAAO,CAAC,KAAK,QAAQ,GAAG,CAAC,GAAG,CAAC;AAC/D,CAAA;;;;"}
1
+ {"version":3,"file":"NumberField.js","sources":["../../../../CommandForm/fields/NumberField.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 { InputNumber } from 'primereact/inputnumber';\nimport React from 'react';\nimport { asCommandFormField, WrappedFieldProps } from '@cratis/arc.react/commands';\n\ninterface NumberFieldComponentProps extends WrappedFieldProps<number> {\n placeholder?: string;\n min?: number;\n max?: number;\n step?: number;\n}\n\nexport const NumberField = asCommandFormField<NumberFieldComponentProps>(\n (props) => (\n <InputNumber\n value={props.value}\n onValueChange={(e) => props.onChange(e.value ?? 0)}\n invalid={props.invalid}\n placeholder={props.placeholder}\n min={props.min}\n max={props.max}\n step={props.step}\n className=\"w-full\"\n />\n ),\n {\n defaultValue: 0,\n extractValue: (e: unknown) => (typeof e === 'number' ? e : 0)\n }\n);\n"],"names":["asCommandFormField","_jsx","InputNumber"],"mappings":";;;;;;AAcO,MAAM,WAAW,GAAGA,2BAAkB,CACzC,CAAC,KAAK,MACFC,cAAA,CAACC,uBAAW,IACR,KAAK,EAAE,KAAK,CAAC,KAAK,EAClB,aAAa,EAAE,CAAC,CAAC,KAAK,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,EAClD,OAAO,EAAE,KAAK,CAAC,OAAO,EACtB,WAAW,EAAE,KAAK,CAAC,WAAW,EAC9B,GAAG,EAAE,KAAK,CAAC,GAAG,EACd,GAAG,EAAE,KAAK,CAAC,GAAG,EACd,IAAI,EAAE,KAAK,CAAC,IAAI,EAChB,SAAS,EAAC,QAAQ,EAAA,CACpB,CACL,EACD;AACI,IAAA,YAAY,EAAE,CAAC;AACf,IAAA,YAAY,EAAE,CAAC,CAAU,MAAM,OAAO,CAAC,KAAK,QAAQ,GAAG,CAAC,GAAG,CAAC;AAC/D,CAAA;;;;"}
@@ -1,17 +1,13 @@
1
1
  'use strict';
2
2
 
3
3
  var jsxRuntime = require('react/jsx-runtime');
4
- var asCommandFormField = require('../asCommandFormField.js');
4
+ var slider = require('primereact/slider');
5
+ var commands = require('@cratis/arc.react/commands');
5
6
 
6
- const RangeField = asCommandFormField.asCommandFormField((props) => {
7
- const min = props.min ?? 0;
8
- const max = props.max ?? 100;
9
- const step = props.step ?? 1;
10
- return (jsxRuntime.jsxs("div", { className: "w-full flex items-center gap-4 p-3 border border-gray-300 rounded-md", children: [jsxRuntime.jsx("input", { type: "range", value: props.value, onChange: props.onChange, min: min, max: max, step: step, required: props.required, className: "flex-1" }), jsxRuntime.jsx("span", { className: "min-w-[3rem] text-right font-semibold", children: props.value })] }));
11
- }, {
7
+ const SliderField = commands.asCommandFormField((props) => (jsxRuntime.jsxs("div", { className: "w-full", children: [jsxRuntime.jsx(slider.Slider, { value: props.value, onChange: (e) => props.onChange(e.value), min: props.min ?? 0, max: props.max ?? 100, step: props.step ?? 1, className: "w-full" }), jsxRuntime.jsx("div", { className: "text-center mt-2", children: jsxRuntime.jsx("span", { className: "font-semibold", children: props.value }) })] })), {
12
8
  defaultValue: 0,
13
- extractValue: (e) => parseFloat(e.target.value)
9
+ extractValue: (e) => (typeof e === 'number' ? e : 0)
14
10
  });
15
11
 
16
- exports.RangeField = RangeField;
12
+ exports.SliderField = SliderField;
17
13
  //# sourceMappingURL=SliderField.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SliderField.js","sources":["../../../../CommandForm/fields/SliderField.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 React from 'react';\nimport { asCommandFormField, WrappedFieldProps } from '../asCommandFormField';\n\ninterface RangeComponentProps extends WrappedFieldProps<number> {\n min?: number;\n max?: number;\n step?: number;\n}\n\nexport const RangeField = asCommandFormField<RangeComponentProps>(\n (props) => {\n const min = props.min ?? 0;\n const max = props.max ?? 100;\n const step = props.step ?? 1;\n\n return (\n <div className=\"w-full flex items-center gap-4 p-3 border border-gray-300 rounded-md\">\n <input\n type=\"range\"\n value={props.value}\n onChange={props.onChange}\n min={min}\n max={max}\n step={step}\n required={props.required}\n className=\"flex-1\"\n />\n <span className=\"min-w-[3rem] text-right font-semibold\">\n {props.value}\n </span>\n </div>\n );\n },\n {\n defaultValue: 0,\n extractValue: (e: React.ChangeEvent<HTMLInputElement>) => parseFloat(e.target.value)\n }\n);\n"],"names":["asCommandFormField","_jsxs","_jsx"],"mappings":";;;;;MAYa,UAAU,GAAGA,qCAAkB,CACxC,CAAC,KAAK,KAAI;AACN,IAAA,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC;AAC1B,IAAA,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,IAAI,GAAG;AAC5B,IAAA,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC;IAE5B,QACIC,eAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,sEAAsE,EAAA,QAAA,EAAA,CACjFC,cAAA,CAAA,OAAA,EAAA,EACI,IAAI,EAAC,OAAO,EACZ,KAAK,EAAE,KAAK,CAAC,KAAK,EAClB,QAAQ,EAAE,KAAK,CAAC,QAAQ,EACxB,GAAG,EAAE,GAAG,EACR,GAAG,EAAE,GAAG,EACR,IAAI,EAAE,IAAI,EACV,QAAQ,EAAE,KAAK,CAAC,QAAQ,EACxB,SAAS,EAAC,QAAQ,EAAA,CACpB,EACFA,cAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAC,uCAAuC,EAAA,QAAA,EAClD,KAAK,CAAC,KAAK,EAAA,CACT,CAAA,EAAA,CACL;AAEd,CAAC,EACD;AACI,IAAA,YAAY,EAAE,CAAC;AACf,IAAA,YAAY,EAAE,CAAC,CAAsC,KAAK,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK;AACtF,CAAA;;;;"}
1
+ {"version":3,"file":"SliderField.js","sources":["../../../../CommandForm/fields/SliderField.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 { Slider } from 'primereact/slider';\nimport React from 'react';\nimport { asCommandFormField, WrappedFieldProps } from '@cratis/arc.react/commands';\n\ninterface SliderFieldComponentProps extends WrappedFieldProps<number> {\n min?: number;\n max?: number;\n step?: number;\n}\n\nexport const SliderField = asCommandFormField<SliderFieldComponentProps>(\n (props) => (\n <div className=\"w-full\">\n <Slider\n value={props.value}\n onChange={(e) => props.onChange(e.value)}\n min={props.min ?? 0}\n max={props.max ?? 100}\n step={props.step ?? 1}\n className=\"w-full\"\n />\n <div className=\"text-center mt-2\">\n <span className=\"font-semibold\">{props.value}</span>\n </div>\n </div>\n ),\n {\n defaultValue: 0,\n extractValue: (e: unknown) => (typeof e === 'number' ? e : 0)\n }\n);\n"],"names":["asCommandFormField","_jsxs","_jsx","Slider"],"mappings":";;;;;;AAaO,MAAM,WAAW,GAAGA,2BAAkB,CACzC,CAAC,KAAK,MACFC,yBAAK,SAAS,EAAC,QAAQ,EAAA,QAAA,EAAA,CACnBC,cAAA,CAACC,aAAM,EAAA,EACH,KAAK,EAAE,KAAK,CAAC,KAAK,EAClB,QAAQ,EAAE,CAAC,CAAC,KAAK,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,EACxC,GAAG,EAAE,KAAK,CAAC,GAAG,IAAI,CAAC,EACnB,GAAG,EAAE,KAAK,CAAC,GAAG,IAAI,GAAG,EACrB,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,EACrB,SAAS,EAAC,QAAQ,GACpB,EACFD,cAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,kBAAkB,YAC7BA,cAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAC,eAAe,EAAA,QAAA,EAAE,KAAK,CAAC,KAAK,GAAQ,EAAA,CAClD,CAAA,EAAA,CACJ,CACT,EACD;AACI,IAAA,YAAY,EAAE,CAAC;AACf,IAAA,YAAY,EAAE,CAAC,CAAU,MAAM,OAAO,CAAC,KAAK,QAAQ,GAAG,CAAC,GAAG,CAAC;AAC/D,CAAA;;;;"}
@@ -2,9 +2,9 @@
2
2
 
3
3
  var jsxRuntime = require('react/jsx-runtime');
4
4
  var inputtextarea = require('primereact/inputtextarea');
5
- var asCommandFormField = require('../asCommandFormField.js');
5
+ var commands = require('@cratis/arc.react/commands');
6
6
 
7
- const TextAreaField = asCommandFormField.asCommandFormField((props) => (jsxRuntime.jsx(inputtextarea.InputTextarea, { value: props.value, onChange: props.onChange, invalid: props.invalid, placeholder: props.placeholder, rows: props.rows ?? 5, cols: props.cols, className: "w-full" })), {
7
+ const TextAreaField = commands.asCommandFormField((props) => (jsxRuntime.jsx(inputtextarea.InputTextarea, { value: props.value, onChange: props.onChange, invalid: props.invalid, placeholder: props.placeholder, rows: props.rows ?? 5, cols: props.cols, className: "w-full" })), {
8
8
  defaultValue: '',
9
9
  extractValue: (e) => e.target.value
10
10
  });
@@ -1 +1 @@
1
- {"version":3,"file":"TextAreaField.js","sources":["../../../../CommandForm/fields/TextAreaField.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 { InputTextarea } from 'primereact/inputtextarea';\nimport React from 'react';\nimport { asCommandFormField, WrappedFieldProps } from '../asCommandFormField';\n\ninterface TextAreaFieldComponentProps extends WrappedFieldProps<string> {\n placeholder?: string;\n rows?: number;\n cols?: number;\n}\n\nexport const TextAreaField = asCommandFormField<TextAreaFieldComponentProps>(\n (props) => (\n <InputTextarea\n value={props.value}\n onChange={props.onChange}\n invalid={props.invalid}\n placeholder={props.placeholder}\n rows={props.rows ?? 5}\n cols={props.cols}\n className=\"w-full\"\n />\n ),\n {\n defaultValue: '',\n extractValue: (e: React.ChangeEvent<HTMLTextAreaElement>) => e.target.value\n }\n);\n"],"names":["asCommandFormField","_jsx","InputTextarea"],"mappings":";;;;;;AAaO,MAAM,aAAa,GAAGA,qCAAkB,CAC3C,CAAC,KAAK,MACFC,cAAA,CAACC,2BAAa,EAAA,EACV,KAAK,EAAE,KAAK,CAAC,KAAK,EAClB,QAAQ,EAAE,KAAK,CAAC,QAAQ,EACxB,OAAO,EAAE,KAAK,CAAC,OAAO,EACtB,WAAW,EAAE,KAAK,CAAC,WAAW,EAC9B,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,EACrB,IAAI,EAAE,KAAK,CAAC,IAAI,EAChB,SAAS,EAAC,QAAQ,EAAA,CACpB,CACL,EACD;AACI,IAAA,YAAY,EAAE,EAAE;IAChB,YAAY,EAAE,CAAC,CAAyC,KAAK,CAAC,CAAC,MAAM,CAAC;AACzE,CAAA;;;;"}
1
+ {"version":3,"file":"TextAreaField.js","sources":["../../../../CommandForm/fields/TextAreaField.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 { InputTextarea } from 'primereact/inputtextarea';\nimport React from 'react';\nimport { asCommandFormField, WrappedFieldProps } from '@cratis/arc.react/commands';\n\ninterface TextAreaFieldComponentProps extends WrappedFieldProps<string> {\n placeholder?: string;\n rows?: number;\n cols?: number;\n}\n\nexport const TextAreaField = asCommandFormField<TextAreaFieldComponentProps>(\n (props) => (\n <InputTextarea\n value={props.value}\n onChange={props.onChange}\n invalid={props.invalid}\n placeholder={props.placeholder}\n rows={props.rows ?? 5}\n cols={props.cols}\n className=\"w-full\"\n />\n ),\n {\n defaultValue: '',\n extractValue: (e: React.ChangeEvent<HTMLTextAreaElement>) => e.target.value\n }\n);\n"],"names":["asCommandFormField","_jsx","InputTextarea"],"mappings":";;;;;;AAaO,MAAM,aAAa,GAAGA,2BAAkB,CAC3C,CAAC,KAAK,MACFC,cAAA,CAACC,2BAAa,EAAA,EACV,KAAK,EAAE,KAAK,CAAC,KAAK,EAClB,QAAQ,EAAE,KAAK,CAAC,QAAQ,EACxB,OAAO,EAAE,KAAK,CAAC,OAAO,EACtB,WAAW,EAAE,KAAK,CAAC,WAAW,EAC9B,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,EACrB,IAAI,EAAE,KAAK,CAAC,IAAI,EAChB,SAAS,EAAC,QAAQ,EAAA,CACpB,CACL,EACD;AACI,IAAA,YAAY,EAAE,EAAE;IAChB,YAAY,EAAE,CAAC,CAAyC,KAAK,CAAC,CAAC,MAAM,CAAC;AACzE,CAAA;;;;"}
@@ -1,10 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var CommandForm = require('./CommandForm.js');
4
- var CommandFormField = require('./CommandFormField.js');
5
- var ValidationMessage = require('./ValidationMessage.js');
6
- var CommandFormFields = require('./CommandFormFields.js');
7
- var asCommandFormField = require('./asCommandFormField.js');
3
+ var commands = require('@cratis/arc.react/commands');
8
4
  var InputTextField = require('./fields/InputTextField.js');
9
5
  var NumberField = require('./fields/NumberField.js');
10
6
  var CheckboxField = require('./fields/CheckboxField.js');
@@ -14,18 +10,42 @@ var SliderField = require('./fields/SliderField.js');
14
10
 
15
11
 
16
12
 
17
- exports.CommandForm = CommandForm.CommandForm;
18
- exports.useCommandFormContext = CommandForm.useCommandFormContext;
19
- exports.useCommandInstance = CommandForm.useCommandInstance;
20
- exports.useSetCommandResult = CommandForm.useSetCommandResult;
21
- exports.CommandFormField = CommandFormField.CommandFormField;
22
- exports.ValidationMessage = ValidationMessage.ValidationMessage;
23
- exports.CommandFormFields = CommandFormFields.CommandFormFields;
24
- exports.asCommandFormField = asCommandFormField.asCommandFormField;
13
+ Object.defineProperty(exports, "CommandForm", {
14
+ enumerable: true,
15
+ get: function () { return commands.CommandForm; }
16
+ });
17
+ Object.defineProperty(exports, "CommandFormField", {
18
+ enumerable: true,
19
+ get: function () { return commands.CommandFormField; }
20
+ });
21
+ Object.defineProperty(exports, "CommandFormFields", {
22
+ enumerable: true,
23
+ get: function () { return commands.CommandFormFields; }
24
+ });
25
+ Object.defineProperty(exports, "ValidationMessage", {
26
+ enumerable: true,
27
+ get: function () { return commands.ValidationMessage; }
28
+ });
29
+ Object.defineProperty(exports, "asCommandFormField", {
30
+ enumerable: true,
31
+ get: function () { return commands.asCommandFormField; }
32
+ });
33
+ Object.defineProperty(exports, "useCommandFormContext", {
34
+ enumerable: true,
35
+ get: function () { return commands.useCommandFormContext; }
36
+ });
37
+ Object.defineProperty(exports, "useCommandInstance", {
38
+ enumerable: true,
39
+ get: function () { return commands.useCommandInstance; }
40
+ });
41
+ Object.defineProperty(exports, "useSetCommandResult", {
42
+ enumerable: true,
43
+ get: function () { return commands.useSetCommandResult; }
44
+ });
25
45
  exports.InputTextField = InputTextField.InputTextField;
26
46
  exports.NumberField = NumberField.NumberField;
27
47
  exports.CheckboxField = CheckboxField.CheckboxField;
28
48
  exports.TextAreaField = TextAreaField.TextAreaField;
29
- exports.SelectField = DropdownField.SelectField;
30
- exports.RangeField = SliderField.RangeField;
49
+ exports.DropdownField = DropdownField.DropdownField;
50
+ exports.SliderField = SliderField.SliderField;
31
51
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -2,6 +2,7 @@
2
2
 
3
3
  var jsxRuntime = require('react/jsx-runtime');
4
4
  var datatable = require('primereact/datatable');
5
+ var paginator = require('primereact/paginator');
5
6
  var queries = require('@cratis/arc/queries');
6
7
  var queries$1 = require('@cratis/arc.react/queries');
7
8
  var React = require('react');
@@ -9,8 +10,59 @@ var React = require('react');
9
10
  const paging = new queries.Paging(0, 20);
10
11
  const DataTableForObservableQuery = (props) => {
11
12
  const [filters, setFilters] = React.useState(props.defaultFilters ?? {});
13
+ const [filteredTotal, setFilteredTotal] = React.useState(undefined);
12
14
  const [result, , setPage] = queries$1.useObservableQueryWithPaging(props.query, paging, props.queryArguments);
13
- return (jsxRuntime.jsx(datatable.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 }));
15
+ const containerRef = React.useRef(null);
16
+ const [tableHeight, setTableHeight] = React.useState(600);
17
+ const timeoutRef = React.useRef(undefined);
18
+ const isClientFiltering = props.clientFiltering === true;
19
+ const totalRecords = isClientFiltering && filteredTotal !== undefined ? filteredTotal : result.paging.totalItems;
20
+ React.useEffect(() => {
21
+ if (!containerRef.current)
22
+ return;
23
+ const resizeObserver = new ResizeObserver((entries) => {
24
+ if (timeoutRef.current) {
25
+ clearTimeout(timeoutRef.current);
26
+ }
27
+ timeoutRef.current = setTimeout(() => {
28
+ for (const entry of entries) {
29
+ const containerHeight = entry.contentRect.height;
30
+ if (containerHeight > 0) {
31
+ const paginatorHeight = result.paging.totalItems > 0 ? 56 : 0;
32
+ const calculatedHeight = containerHeight - paginatorHeight - 2;
33
+ const newHeight = Math.max(calculatedHeight, 200);
34
+ setTableHeight(prevHeight => {
35
+ if (Math.abs(newHeight - prevHeight) > 5) {
36
+ return newHeight;
37
+ }
38
+ return prevHeight;
39
+ });
40
+ }
41
+ }
42
+ }, 10);
43
+ });
44
+ resizeObserver.observe(containerRef.current);
45
+ return () => {
46
+ if (timeoutRef.current) {
47
+ clearTimeout(timeoutRef.current);
48
+ }
49
+ resizeObserver.disconnect();
50
+ };
51
+ }, [result.paging.totalItems]);
52
+ return (jsxRuntime.jsxs("div", { ref: containerRef, style: {
53
+ display: 'flex',
54
+ flexDirection: 'column',
55
+ height: '100%',
56
+ border: '1px solid var(--surface-border)',
57
+ borderRadius: 'var(--border-radius)',
58
+ overflow: 'hidden'
59
+ }, children: [jsxRuntime.jsx("div", { style: { height: `${tableHeight}px`, overflow: 'hidden' }, children: jsxRuntime.jsx(datatable.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) => {
60
+ setFilters(e.filters);
61
+ if (isClientFiltering) {
62
+ const filteredValue = e.filteredValue;
63
+ setFilteredTotal(filteredValue ? filteredValue.length : undefined);
64
+ }
65
+ }, globalFilterFields: props.globalFilterFields, emptyMessage: props.emptyMessage, children: props.children }) }), result.paging.totalItems > 0 && (jsxRuntime.jsx("div", { style: { borderTop: '1px solid var(--surface-border)' }, children: jsxRuntime.jsx(paginator.Paginator, { first: result.paging.page * paging.pageSize, rows: paging.pageSize, totalRecords: result.paging.totalItems, onPageChange: (e) => setPage(e.page) }) }))] }));
14
66
  };
15
67
 
16
68
  exports.DataTableForObservableQuery = 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":["Paging","useState","useObservableQueryWithPaging","_jsx","DataTable"],"mappings":";;;;;;;;AA6DA,MAAM,MAAM,GAAG,IAAIA,cAAM,CAAC,CAAC,EAAE,EAAE,CAAC;AAOzB,MAAM,2BAA2B,GAAG,CAAiH,KAAsE,KAAI;AAClO,IAAA,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAGC,cAAQ,CAAsB,KAAK,CAAC,cAAc,IAAI,EAAE,CAAC;IACvF,MAAM,CAAC,MAAM,IAAI,OAAO,CAAC,GAAGC,sCAA4B,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,cAAc,CAAC;AAEnG,IAAA,QACIC,cAAA,CAACC,mBAAS,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":["Paging","useState","useObservableQueryWithPaging","useRef","useEffect","_jsxs","_jsx","DataTable","Paginator"],"mappings":"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"}
@@ -2,6 +2,7 @@
2
2
 
3
3
  var jsxRuntime = require('react/jsx-runtime');
4
4
  var datatable = require('primereact/datatable');
5
+ var paginator = require('primereact/paginator');
5
6
  var queries = require('@cratis/arc/queries');
6
7
  var queries$1 = require('@cratis/arc.react/queries');
7
8
  var React = require('react');
@@ -9,8 +10,25 @@ var React = require('react');
9
10
  const paging = new queries.Paging(0, 20);
10
11
  const DataTableForQuery = (props) => {
11
12
  const [filters, setFilters] = React.useState(props.defaultFilters ?? {});
13
+ const [filteredTotal, setFilteredTotal] = React.useState(undefined);
12
14
  const [result, , , setPage] = queries$1.useQueryWithPaging(props.query, paging, props.queryArguments);
13
- return (jsxRuntime.jsx(datatable.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 }));
15
+ const containerRef = React.useRef(null);
16
+ const isClientFiltering = props.clientFiltering === true;
17
+ const totalRecords = isClientFiltering && filteredTotal !== undefined ? filteredTotal : result.paging.totalItems;
18
+ return (jsxRuntime.jsxs("div", { ref: containerRef, style: {
19
+ display: 'flex',
20
+ flexDirection: 'column',
21
+ height: '100%',
22
+ border: '1px solid var(--surface-border)',
23
+ borderRadius: 'var(--border-radius)',
24
+ overflow: 'hidden'
25
+ }, children: [jsxRuntime.jsx("div", { style: { flex: 1, minHeight: 0, overflow: 'auto' }, children: jsxRuntime.jsx(datatable.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) => {
26
+ setFilters(e.filters);
27
+ if (isClientFiltering) {
28
+ const filteredValue = e.filteredValue;
29
+ setFilteredTotal(filteredValue ? filteredValue.length : undefined);
30
+ }
31
+ }, globalFilterFields: props.globalFilterFields, emptyMessage: props.emptyMessage, style: { minWidth: '100%' }, children: props.children }) }), result.paging.totalItems > 0 && (jsxRuntime.jsx("div", { style: { borderTop: '1px solid var(--surface-border)', flexShrink: 0 }, children: jsxRuntime.jsx(paginator.Paginator, { first: result.paging.page * paging.pageSize, rows: paging.pageSize, totalRecords: result.paging.totalItems, onPageChange: (e) => setPage(e.page) }) }))] }));
14
32
  };
15
33
 
16
34
  exports.DataTableForQuery = DataTableForQuery;