@cratis/components 0.1.19 → 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 (305) hide show
  1. package/dist/cjs/CommandDialog/CommandDialog.js +14 -25
  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 +1 -1
  51. package/dist/esm/CommandDialog/CommandDialog.d.ts.map +1 -1
  52. package/dist/esm/CommandDialog/CommandDialog.js +15 -26
  53. package/dist/esm/CommandDialog/CommandDialog.js.map +1 -1
  54. package/dist/esm/CommandDialog/CommandDialog.stories.d.ts +1 -0
  55. package/dist/esm/CommandDialog/CommandDialog.stories.d.ts.map +1 -1
  56. package/dist/esm/CommandDialog/CommandDialog.stories.js +57 -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 +33 -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 +55 -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 +31 -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/index.d.ts +2 -1
  138. package/dist/esm/Dialogs/index.d.ts.map +1 -1
  139. package/dist/esm/Dialogs/index.js +2 -1
  140. package/dist/esm/Dialogs/index.js.map +1 -1
  141. package/dist/esm/ObjectContentEditor/ObjectContentEditor.d.ts +8 -0
  142. package/dist/esm/ObjectContentEditor/ObjectContentEditor.d.ts.map +1 -0
  143. package/dist/esm/ObjectContentEditor/ObjectContentEditor.js +135 -0
  144. package/dist/esm/ObjectContentEditor/ObjectContentEditor.js.map +1 -0
  145. package/dist/esm/ObjectContentEditor/ObjectContentEditor.stories.d.ts +10 -0
  146. package/dist/esm/ObjectContentEditor/ObjectContentEditor.stories.d.ts.map +1 -0
  147. package/dist/esm/ObjectContentEditor/ObjectContentEditor.stories.js +144 -0
  148. package/dist/esm/ObjectContentEditor/ObjectContentEditor.stories.js.map +1 -0
  149. package/dist/esm/ObjectContentEditor/index.d.ts +2 -0
  150. package/dist/esm/ObjectContentEditor/index.d.ts.map +1 -0
  151. package/dist/esm/ObjectContentEditor/index.js +2 -0
  152. package/dist/esm/ObjectContentEditor/index.js.map +1 -0
  153. package/dist/esm/ObjectNavigationalBar/ObjectNavigationalBar.d.ts +6 -0
  154. package/dist/esm/ObjectNavigationalBar/ObjectNavigationalBar.d.ts.map +1 -0
  155. package/dist/esm/ObjectNavigationalBar/ObjectNavigationalBar.js +24 -0
  156. package/dist/esm/ObjectNavigationalBar/ObjectNavigationalBar.js.map +1 -0
  157. package/dist/esm/ObjectNavigationalBar/ObjectNavigationalBar.stories.d.ts +10 -0
  158. package/dist/esm/ObjectNavigationalBar/ObjectNavigationalBar.stories.d.ts.map +1 -0
  159. package/dist/esm/ObjectNavigationalBar/ObjectNavigationalBar.stories.js +46 -0
  160. package/dist/esm/ObjectNavigationalBar/ObjectNavigationalBar.stories.js.map +1 -0
  161. package/dist/esm/ObjectNavigationalBar/index.d.ts +2 -0
  162. package/dist/esm/ObjectNavigationalBar/index.d.ts.map +1 -0
  163. package/dist/esm/ObjectNavigationalBar/index.js +2 -0
  164. package/dist/esm/ObjectNavigationalBar/index.js.map +1 -0
  165. package/dist/esm/SchemaEditor/NameCell.d.ts +9 -0
  166. package/dist/esm/SchemaEditor/NameCell.d.ts.map +1 -0
  167. package/dist/esm/SchemaEditor/NameCell.js +17 -0
  168. package/dist/esm/SchemaEditor/NameCell.js.map +1 -0
  169. package/dist/esm/SchemaEditor/SchemaEditor.d.ts +17 -0
  170. package/dist/esm/SchemaEditor/SchemaEditor.d.ts.map +1 -0
  171. package/dist/esm/SchemaEditor/SchemaEditor.js +331 -0
  172. package/dist/esm/SchemaEditor/SchemaEditor.js.map +1 -0
  173. package/dist/esm/SchemaEditor/SchemaEditor.module.css +11 -0
  174. package/dist/esm/SchemaEditor/SchemaEditor.stories.d.ts +12 -0
  175. package/dist/esm/SchemaEditor/SchemaEditor.stories.d.ts.map +1 -0
  176. package/dist/esm/SchemaEditor/SchemaEditor.stories.js +158 -0
  177. package/dist/esm/SchemaEditor/SchemaEditor.stories.js.map +1 -0
  178. package/dist/esm/SchemaEditor/TypeCell.d.ts +14 -0
  179. package/dist/esm/SchemaEditor/TypeCell.d.ts.map +1 -0
  180. package/dist/esm/SchemaEditor/TypeCell.js +81 -0
  181. package/dist/esm/SchemaEditor/TypeCell.js.map +1 -0
  182. package/dist/esm/SchemaEditor/index.d.ts +4 -0
  183. package/dist/esm/SchemaEditor/index.d.ts.map +1 -0
  184. package/dist/esm/SchemaEditor/index.js +3 -0
  185. package/dist/esm/TimeMachine/EventsView.stories.d.ts +8 -7
  186. package/dist/esm/TimeMachine/EventsView.stories.d.ts.map +1 -1
  187. package/dist/esm/TimeMachine/EventsView.stories.js +80 -4
  188. package/dist/esm/TimeMachine/EventsView.stories.js.map +1 -1
  189. package/dist/esm/TimeMachine/Properties.stories.d.ts +9 -7
  190. package/dist/esm/TimeMachine/Properties.stories.d.ts.map +1 -1
  191. package/dist/esm/TimeMachine/Properties.stories.js +49 -4
  192. package/dist/esm/TimeMachine/Properties.stories.js.map +1 -1
  193. package/dist/esm/TimeMachine/ReadModelView.stories.d.ts +7 -7
  194. package/dist/esm/TimeMachine/ReadModelView.stories.d.ts.map +1 -1
  195. package/dist/esm/TimeMachine/ReadModelView.stories.js +79 -5
  196. package/dist/esm/TimeMachine/ReadModelView.stories.js.map +1 -1
  197. package/dist/esm/TimeMachine/TimeMachine.stories.d.ts +8 -7
  198. package/dist/esm/TimeMachine/TimeMachine.stories.d.ts.map +1 -1
  199. package/dist/esm/TimeMachine/TimeMachine.stories.js +113 -4
  200. package/dist/esm/TimeMachine/TimeMachine.stories.js.map +1 -1
  201. package/dist/esm/index.d.ts +4 -2
  202. package/dist/esm/index.d.ts.map +1 -1
  203. package/dist/esm/index.js +10 -6
  204. package/dist/esm/index.js.map +1 -1
  205. package/dist/esm/tsconfig.tsbuildinfo +1 -1
  206. package/dist/esm/types/JsonSchema.d.ts +32 -0
  207. package/dist/esm/types/JsonSchema.d.ts.map +1 -0
  208. package/dist/esm/types/JsonSchema.js +2 -0
  209. package/dist/esm/types/JsonSchema.js.map +1 -0
  210. package/dist/esm/types/TypeFormat.d.ts +6 -0
  211. package/dist/esm/types/TypeFormat.d.ts.map +1 -0
  212. package/dist/esm/types/TypeFormat.js +18 -0
  213. package/dist/esm/types/TypeFormat.js.map +1 -0
  214. package/package.json +10 -5
  215. package/dist/cjs/CommandForm/CommandForm.js +0 -183
  216. package/dist/cjs/CommandForm/CommandForm.js.map +0 -1
  217. package/dist/cjs/CommandForm/CommandFormField.js +0 -11
  218. package/dist/cjs/CommandForm/CommandFormField.js.map +0 -1
  219. package/dist/cjs/CommandForm/CommandFormFields.js +0 -73
  220. package/dist/cjs/CommandForm/CommandFormFields.js.map +0 -1
  221. package/dist/cjs/CommandForm/ValidationMessage.js +0 -24
  222. package/dist/cjs/CommandForm/ValidationMessage.js.map +0 -1
  223. package/dist/cjs/CommandForm/asCommandFormField.js +0 -47
  224. package/dist/cjs/CommandForm/asCommandFormField.js.map +0 -1
  225. package/dist/cjs/EventModeling/EventModeling.css +0 -146
  226. package/dist/cjs/EventModeling/EventModeling.js +0 -209
  227. package/dist/cjs/EventModeling/EventModeling.js.map +0 -1
  228. package/dist/cjs/EventModeling/components/Canvas.js +0 -403
  229. package/dist/cjs/EventModeling/components/Canvas.js.map +0 -1
  230. package/dist/cjs/EventModeling/components/CanvasControls.js +0 -10
  231. package/dist/cjs/EventModeling/components/CanvasControls.js.map +0 -1
  232. package/dist/cjs/EventModeling/components/Toolbox.js +0 -18
  233. package/dist/cjs/EventModeling/components/Toolbox.js.map +0 -1
  234. package/dist/cjs/EventModeling/engine/connectorGraphics.js +0 -173
  235. package/dist/cjs/EventModeling/engine/connectorGraphics.js.map +0 -1
  236. package/dist/cjs/EventModeling/engine/elementSprites.js +0 -301
  237. package/dist/cjs/EventModeling/engine/elementSprites.js.map +0 -1
  238. package/dist/cjs/EventModeling/index.js +0 -12
  239. package/dist/cjs/EventModeling/types.js +0 -60
  240. package/dist/cjs/EventModeling/types.js.map +0 -1
  241. package/dist/esm/CommandForm/CommandForm.d.ts +0 -49
  242. package/dist/esm/CommandForm/CommandForm.d.ts.map +0 -1
  243. package/dist/esm/CommandForm/CommandForm.js +0 -178
  244. package/dist/esm/CommandForm/CommandForm.js.map +0 -1
  245. package/dist/esm/CommandForm/CommandForm.stories.d.ts +0 -8
  246. package/dist/esm/CommandForm/CommandForm.stories.d.ts.map +0 -1
  247. package/dist/esm/CommandForm/CommandForm.stories.js +0 -45
  248. package/dist/esm/CommandForm/CommandForm.stories.js.map +0 -1
  249. package/dist/esm/CommandForm/CommandFormField.d.ts +0 -18
  250. package/dist/esm/CommandForm/CommandFormField.d.ts.map +0 -1
  251. package/dist/esm/CommandForm/CommandFormField.js +0 -9
  252. package/dist/esm/CommandForm/CommandFormField.js.map +0 -1
  253. package/dist/esm/CommandForm/CommandFormFields.d.ts +0 -11
  254. package/dist/esm/CommandForm/CommandFormFields.d.ts.map +0 -1
  255. package/dist/esm/CommandForm/CommandFormFields.js +0 -71
  256. package/dist/esm/CommandForm/CommandFormFields.js.map +0 -1
  257. package/dist/esm/CommandForm/UserRegistrationCommand.d.ts +0 -63
  258. package/dist/esm/CommandForm/UserRegistrationCommand.d.ts.map +0 -1
  259. package/dist/esm/CommandForm/UserRegistrationCommand.js +0 -143
  260. package/dist/esm/CommandForm/UserRegistrationCommand.js.map +0 -1
  261. package/dist/esm/CommandForm/ValidationMessage.d.ts +0 -8
  262. package/dist/esm/CommandForm/ValidationMessage.d.ts.map +0 -1
  263. package/dist/esm/CommandForm/ValidationMessage.js +0 -22
  264. package/dist/esm/CommandForm/ValidationMessage.js.map +0 -1
  265. package/dist/esm/CommandForm/asCommandFormField.d.ts +0 -32
  266. package/dist/esm/CommandForm/asCommandFormField.d.ts.map +0 -1
  267. package/dist/esm/CommandForm/asCommandFormField.js +0 -45
  268. package/dist/esm/CommandForm/asCommandFormField.js.map +0 -1
  269. package/dist/esm/EventModeling/EventModeling.css +0 -146
  270. package/dist/esm/EventModeling/EventModeling.d.ts +0 -11
  271. package/dist/esm/EventModeling/EventModeling.d.ts.map +0 -1
  272. package/dist/esm/EventModeling/EventModeling.js +0 -207
  273. package/dist/esm/EventModeling/EventModeling.js.map +0 -1
  274. package/dist/esm/EventModeling/EventModeling.stories.d.ts +0 -10
  275. package/dist/esm/EventModeling/EventModeling.stories.d.ts.map +0 -1
  276. package/dist/esm/EventModeling/EventModeling.stories.js +0 -252
  277. package/dist/esm/EventModeling/EventModeling.stories.js.map +0 -1
  278. package/dist/esm/EventModeling/components/Canvas.d.ts +0 -23
  279. package/dist/esm/EventModeling/components/Canvas.d.ts.map +0 -1
  280. package/dist/esm/EventModeling/components/Canvas.js +0 -382
  281. package/dist/esm/EventModeling/components/Canvas.js.map +0 -1
  282. package/dist/esm/EventModeling/components/CanvasControls.d.ts +0 -10
  283. package/dist/esm/EventModeling/components/CanvasControls.d.ts.map +0 -1
  284. package/dist/esm/EventModeling/components/CanvasControls.js +0 -8
  285. package/dist/esm/EventModeling/components/CanvasControls.js.map +0 -1
  286. package/dist/esm/EventModeling/components/Toolbox.d.ts +0 -9
  287. package/dist/esm/EventModeling/components/Toolbox.d.ts.map +0 -1
  288. package/dist/esm/EventModeling/components/Toolbox.js +0 -16
  289. package/dist/esm/EventModeling/components/Toolbox.js.map +0 -1
  290. package/dist/esm/EventModeling/engine/connectorGraphics.d.ts +0 -12
  291. package/dist/esm/EventModeling/engine/connectorGraphics.d.ts.map +0 -1
  292. package/dist/esm/EventModeling/engine/connectorGraphics.js +0 -151
  293. package/dist/esm/EventModeling/engine/connectorGraphics.js.map +0 -1
  294. package/dist/esm/EventModeling/engine/elementSprites.d.ts +0 -23
  295. package/dist/esm/EventModeling/engine/elementSprites.d.ts.map +0 -1
  296. package/dist/esm/EventModeling/engine/elementSprites.js +0 -276
  297. package/dist/esm/EventModeling/engine/elementSprites.js.map +0 -1
  298. package/dist/esm/EventModeling/index.d.ts +0 -3
  299. package/dist/esm/EventModeling/index.d.ts.map +0 -1
  300. package/dist/esm/EventModeling/index.js +0 -3
  301. package/dist/esm/EventModeling/types.d.ts +0 -79
  302. package/dist/esm/EventModeling/types.d.ts.map +0 -1
  303. package/dist/esm/EventModeling/types.js +0 -56
  304. package/dist/esm/EventModeling/types.js.map +0 -1
  305. /package/dist/esm/{EventModeling → SchemaEditor}/index.js.map +0 -0
@@ -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
@@ -1 +1 @@
1
- {"version":3,"file":"DataTableForQuery.stories.js","sourceRoot":"","sources":["../../../DataTables/DataTableForQuery.stories.tsx"],"names":[],"mappings":";AAIA,OAAO,KAAK,IAAI,MAAM,qBAAqB,CAAC;AAC5C,MAAM,SAAS,GAA4D,IAAgC,CAAC,OAA4E,IAAK,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAuE,CAAC;AAE1R,eAAe,EAAE,KAAK,EAAE,8BAA8B,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC;AAE/E,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":"DataTableForQuery.stories.js","sourceRoot":"","sources":["../../../DataTables/DataTableForQuery.stories.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"BusyIndicatorDialog.d.ts","sourceRoot":"","sources":["../../../Dialogs/BusyIndicatorDialog.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,0BAA0B,EAAE,MAAM,2BAA2B,CAAC;AAGvE,eAAO,MAAM,mBAAmB,GAAI,OAAO,0BAA0B,4CAkBpE,CAAC"}
1
+ {"version":3,"file":"BusyIndicatorDialog.d.ts","sourceRoot":"","sources":["../../../Dialogs/BusyIndicatorDialog.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,0BAA0B,EAAE,MAAM,2BAA2B,CAAC;AAIvE,eAAO,MAAM,mBAAmB,GAAI,OAAO,0BAA0B,4CAcpE,CAAC"}
@@ -1,10 +1,9 @@
1
- import { jsx, Fragment, jsxs } from 'react/jsx-runtime';
2
- import { Dialog } from 'primereact/dialog';
1
+ import { jsxs, jsx } from 'react/jsx-runtime';
3
2
  import { ProgressSpinner } from 'primereact/progressspinner';
3
+ import { Dialog } from './Dialog.js';
4
4
 
5
5
  const BusyIndicatorDialog = (props) => {
6
- const headerElement = (jsx("div", { className: "inline-flex align-items-center justify-content-center gap-2", children: jsx("span", { className: "font-bold white-space-nowrap", children: props.title }) }));
7
- return (jsx(Fragment, { children: jsxs(Dialog, { header: headerElement, modal: true, visible: true, onHide: () => undefined, children: [jsx(ProgressSpinner, {}), jsx("p", { className: "m-0", children: props.message })] }) }));
6
+ return (jsxs(Dialog, { title: props.title, visible: true, onCancel: () => undefined, buttons: null, children: [jsx(ProgressSpinner, {}), jsx("p", { className: "m-0", children: props.message })] }));
8
7
  };
9
8
 
10
9
  export { BusyIndicatorDialog };
@@ -1 +1 @@
1
- {"version":3,"file":"BusyIndicatorDialog.js","sources":["../../../Dialogs/BusyIndicatorDialog.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 { Dialog } from 'primereact/dialog';\nimport { BusyIndicatorDialogRequest } from '@cratis/arc.react/dialogs';\nimport { ProgressSpinner } from 'primereact/progressspinner';\n\nexport const BusyIndicatorDialog = (props: BusyIndicatorDialogRequest) => {\n\n const headerElement = (\n <div className=\"inline-flex align-items-center justify-content-center gap-2\">\n <span className=\"font-bold white-space-nowrap\">{props.title}</span>\n </div>\n );\n\n return (\n <>\n <Dialog header={headerElement} modal visible={true} onHide={() => undefined}>\n <ProgressSpinner />\n <p className=\"m-0\">\n {props.message}\n </p>\n </Dialog>\n </>\n );\n};\n"],"names":["_jsx","_Fragment","_jsxs"],"mappings":";;;;AAOO,MAAM,mBAAmB,GAAG,CAAC,KAAiC,KAAI;AAErE,IAAA,MAAM,aAAa,IACfA,aAAK,SAAS,EAAC,6DAA6D,EAAA,QAAA,EACxEA,GAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAC,8BAA8B,YAAE,KAAK,CAAC,KAAK,EAAA,CAAQ,EAAA,CACjE,CACT;AAED,IAAA,QACIA,GAAA,CAAAC,QAAA,EAAA,EAAA,QAAA,EACIC,IAAA,CAAC,MAAM,EAAA,EAAC,MAAM,EAAE,aAAa,EAAE,KAAK,QAAC,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,SAAS,aACvEF,GAAA,CAAC,eAAe,EAAA,EAAA,CAAG,EACnBA,WAAG,SAAS,EAAC,KAAK,EAAA,QAAA,EACb,KAAK,CAAC,OAAO,GACd,CAAA,EAAA,CACC,EAAA,CACV;AAEX;;;;"}
1
+ {"version":3,"file":"BusyIndicatorDialog.js","sources":["../../../Dialogs/BusyIndicatorDialog.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 { BusyIndicatorDialogRequest } from '@cratis/arc.react/dialogs';\nimport { ProgressSpinner } from 'primereact/progressspinner';\nimport { Dialog } from './Dialog';\n\nexport const BusyIndicatorDialog = (props: BusyIndicatorDialogRequest) => {\n return (\n <Dialog \n title={props.title} \n visible={true} \n onCancel={() => undefined}\n buttons={null}\n >\n <ProgressSpinner />\n <p className=\"m-0\">\n {props.message}\n </p>\n </Dialog>\n );\n};\n"],"names":["_jsxs","_jsx"],"mappings":";;;;AAOO,MAAM,mBAAmB,GAAG,CAAC,KAAiC,KAAI;AACrE,IAAA,QACIA,IAAA,CAAC,MAAM,IACH,KAAK,EAAE,KAAK,CAAC,KAAK,EAClB,OAAO,EAAE,IAAI,EACb,QAAQ,EAAE,MAAM,SAAS,EACzB,OAAO,EAAE,IAAI,EAAA,QAAA,EAAA,CAEbC,IAAC,eAAe,EAAA,EAAA,CAAG,EACnBA,GAAA,CAAA,GAAA,EAAA,EAAG,SAAS,EAAC,KAAK,YACb,KAAK,CAAC,OAAO,EAAA,CACd,CAAA,EAAA,CACC;AAEjB;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"ConfirmationDialog.d.ts","sourceRoot":"","sources":["../../../Dialogs/ConfirmationDialog.tsx"],"names":[],"mappings":"AAQA,eAAO,MAAM,kBAAkB,+CAkE9B,CAAC"}
1
+ {"version":3,"file":"ConfirmationDialog.d.ts","sourceRoot":"","sources":["../../../Dialogs/ConfirmationDialog.tsx"],"names":[],"mappings":"AAOA,eAAO,MAAM,kBAAkB,+CAmB9B,CAAC"}
@@ -1,30 +1,13 @@
1
- import { jsx, Fragment, jsxs } from 'react/jsx-runtime';
2
- import { Dialog } from 'primereact/dialog';
3
- import { useDialogContext, DialogResult, DialogButtons } from '@cratis/arc.react/dialogs';
4
- import { Button } from 'primereact/button';
1
+ import { jsx } from 'react/jsx-runtime';
2
+ import { useDialogContext } from '@cratis/arc.react/dialogs';
3
+ import { Dialog } from './Dialog.js';
5
4
 
6
5
  const ConfirmationDialog = () => {
7
6
  const { request, closeDialog } = useDialogContext();
8
- const headerElement = (jsx("div", { className: "inline-flex align-items-center justify-content-center gap-2", children: jsx("span", { className: "font-bold white-space-nowrap", children: request.title }) }));
9
- const okFooter = (jsx(Fragment, { children: jsx(Button, { label: "Ok", icon: "pi pi-check", onClick: () => closeDialog(DialogResult.Ok), autoFocus: true }) }));
10
- const okCancelFooter = (jsxs(Fragment, { children: [jsx(Button, { label: "Ok", icon: "pi pi-check", onClick: () => closeDialog(DialogResult.Ok), autoFocus: true }), jsx(Button, { label: "Cancel", icon: "pi pi-times", severity: 'secondary', onClick: () => closeDialog(DialogResult.Cancelled) })] }));
11
- const yesNoFooter = (jsxs(Fragment, { children: [jsx(Button, { label: "Yes", icon: "pi pi-check", onClick: () => closeDialog(DialogResult.Yes), autoFocus: true }), jsx(Button, { label: "No", icon: "pi pi-times", severity: 'secondary', onClick: () => closeDialog(DialogResult.No) })] }));
12
- const yesNoCancelFooter = (jsxs(Fragment, { children: [jsx(Button, { label: "Yes", icon: "pi pi-check", onClick: () => closeDialog(DialogResult.Yes), autoFocus: true }), jsx(Button, { label: "No", icon: "pi pi-times", severity: 'secondary', onClick: () => closeDialog(DialogResult.No) })] }));
13
- const getFooterInterior = () => {
14
- switch (request.buttons) {
15
- case DialogButtons.Ok:
16
- return okFooter;
17
- case DialogButtons.OkCancel:
18
- return okCancelFooter;
19
- case DialogButtons.YesNo:
20
- return yesNoFooter;
21
- case DialogButtons.YesNoCancel:
22
- return yesNoCancelFooter;
23
- }
24
- return (jsx(Fragment, {}));
7
+ const handleClose = (result) => {
8
+ closeDialog(result);
25
9
  };
26
- const footer = (jsx("div", { className: "card flex flex-wrap justify-content-center gap-3", children: getFooterInterior() }));
27
- return (jsx(Fragment, { children: jsx(Dialog, { header: headerElement, modal: true, footer: footer, onHide: () => closeDialog(DialogResult.Cancelled), visible: true, children: jsx("p", { className: "m-0", children: request.message }) }) }));
10
+ return (jsx(Dialog, { title: request.title, visible: true, onClose: handleClose, buttons: request.buttons, children: jsx("p", { className: "m-0", children: request.message }) }));
28
11
  };
29
12
 
30
13
  export { ConfirmationDialog };
@@ -1 +1 @@
1
- {"version":3,"file":"ConfirmationDialog.js","sources":["../../../Dialogs/ConfirmationDialog.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 { Dialog } from 'primereact/dialog';\nimport { DialogButtons, ConfirmationDialogRequest } from '@cratis/arc.react/dialogs';\nimport { DialogResult, useDialogContext } from '@cratis/arc.react/dialogs';\nimport { Button } from 'primereact/button';\n\nexport const ConfirmationDialog = () => {\n const { request, closeDialog } = useDialogContext<ConfirmationDialogRequest>();\n\n const headerElement = (\n <div className=\"inline-flex align-items-center justify-content-center gap-2\">\n <span className=\"font-bold white-space-nowrap\">{request.title}</span>\n </div>\n );\n\n const okFooter = (\n <>\n <Button label=\"Ok\" icon=\"pi pi-check\" onClick={() => closeDialog(DialogResult.Ok)} autoFocus />\n </>\n );\n\n const okCancelFooter = (\n <>\n <Button label=\"Ok\" icon=\"pi pi-check\" onClick={() => closeDialog(DialogResult.Ok)} autoFocus />\n <Button label=\"Cancel\" icon=\"pi pi-times\" severity='secondary' onClick={() => closeDialog(DialogResult.Cancelled)} />\n </>\n );\n\n const yesNoFooter = (\n <>\n <Button label=\"Yes\" icon=\"pi pi-check\" onClick={() => closeDialog(DialogResult.Yes)} autoFocus />\n <Button label=\"No\" icon=\"pi pi-times\" severity='secondary' onClick={() => closeDialog(DialogResult.No)} />\n </>\n );\n\n const yesNoCancelFooter = (\n <>\n <Button label=\"Yes\" icon=\"pi pi-check\" onClick={() => closeDialog(DialogResult.Yes)} autoFocus />\n <Button label=\"No\" icon=\"pi pi-times\" severity='secondary' onClick={() => closeDialog(DialogResult.No)} />\n </>\n );\n\n const getFooterInterior = () => {\n switch (request.buttons) {\n case DialogButtons.Ok:\n return okFooter;\n case DialogButtons.OkCancel:\n return okCancelFooter;\n case DialogButtons.YesNo:\n return yesNoFooter;\n case DialogButtons.YesNoCancel:\n return yesNoCancelFooter;\n }\n\n return (<></>);\n };\n\n const footer = (\n <div className=\"card flex flex-wrap justify-content-center gap-3\">\n {getFooterInterior()}\n </div>\n );\n\n return (\n <>\n <Dialog header={headerElement} modal footer={footer} onHide={() => closeDialog(DialogResult.Cancelled)} visible={true}>\n <p className=\"m-0\">\n {request.message}\n </p>\n </Dialog>\n </>\n );\n};\n"],"names":["_jsx","_Fragment","_jsxs"],"mappings":"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"}
1
+ {"version":3,"file":"ConfirmationDialog.js","sources":["../../../Dialogs/ConfirmationDialog.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 { ConfirmationDialogRequest } from '@cratis/arc.react/dialogs';\nimport { DialogResult, useDialogContext } from '@cratis/arc.react/dialogs';\nimport { Dialog } from './Dialog';\n\nexport const ConfirmationDialog = () => {\n const { request, closeDialog } = useDialogContext<ConfirmationDialogRequest>();\n\n const handleClose = (result: DialogResult) => {\n closeDialog(result);\n };\n\n return (\n <Dialog \n title={request.title}\n visible={true}\n onClose={handleClose}\n buttons={request.buttons}\n >\n <p className=\"m-0\">\n {request.message}\n </p>\n </Dialog>\n );\n};\n"],"names":["_jsx"],"mappings":";;;;AAOO,MAAM,kBAAkB,GAAG,MAAK;IACnC,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,gBAAgB,EAA6B;AAE9E,IAAA,MAAM,WAAW,GAAG,CAAC,MAAoB,KAAI;QACzC,WAAW,CAAC,MAAM,CAAC;AACvB,IAAA,CAAC;AAED,IAAA,QACIA,GAAA,CAAC,MAAM,EAAA,EACH,KAAK,EAAE,OAAO,CAAC,KAAK,EACpB,OAAO,EAAE,IAAI,EACb,OAAO,EAAE,WAAW,EACpB,OAAO,EAAE,OAAO,CAAC,OAAO,EAAA,QAAA,EAExBA,WAAG,SAAS,EAAC,KAAK,EAAA,QAAA,EACb,OAAO,CAAC,OAAO,EAAA,CAChB,EAAA,CACC;AAEjB;;;;"}
@@ -0,0 +1,23 @@
1
+ import { DialogResult, DialogButtons } from '@cratis/arc.react/dialogs';
2
+ import { ReactNode } from 'react';
3
+ export type CloseDialog = (result: DialogResult) => boolean | void | Promise<boolean> | Promise<void>;
4
+ export type ConfirmCallback = () => boolean | void | Promise<boolean> | Promise<void>;
5
+ export type CancelCallback = () => boolean | void | Promise<boolean> | Promise<void>;
6
+ export interface DialogProps {
7
+ title: string;
8
+ visible?: boolean;
9
+ onClose?: CloseDialog;
10
+ onConfirm?: ConfirmCallback;
11
+ onCancel?: CancelCallback;
12
+ buttons?: DialogButtons | ReactNode;
13
+ children: ReactNode;
14
+ width?: string;
15
+ resizable?: boolean;
16
+ isValid?: boolean;
17
+ okLabel?: string;
18
+ cancelLabel?: string;
19
+ yesLabel?: string;
20
+ noLabel?: string;
21
+ }
22
+ export declare const Dialog: ({ title, visible, onClose, onConfirm, onCancel, buttons, children, width, resizable, isValid, okLabel, cancelLabel, yesLabel, noLabel }: DialogProps) => import("react/jsx-runtime").JSX.Element;
23
+ //# sourceMappingURL=Dialog.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Dialog.d.ts","sourceRoot":"","sources":["../../../Dialogs/Dialog.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAE,YAAY,EAAE,aAAa,EAAoB,MAAM,2BAA2B,CAAC;AAC1F,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAElC,MAAM,MAAM,WAAW,GAAG,CAAC,MAAM,EAAE,YAAY,KAAK,OAAO,GAAG,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AACtG,MAAM,MAAM,eAAe,GAAG,MAAM,OAAO,GAAG,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AACtF,MAAM,MAAM,cAAc,GAAG,MAAM,OAAO,GAAG,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAErF,MAAM,WAAW,WAAW;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,SAAS,CAAC,EAAE,eAAe,CAAC;IAC5B,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,OAAO,CAAC,EAAE,aAAa,GAAG,SAAS,CAAC;IACpC,QAAQ,EAAE,SAAS,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,eAAO,MAAM,MAAM,GAAI,yIAepB,WAAW,4CA8Gb,CAAC"}
@@ -0,0 +1,64 @@
1
+ import { jsx, Fragment, jsxs } from 'react/jsx-runtime';
2
+ import { Dialog as Dialog$1 } from 'primereact/dialog';
3
+ import { Button } from 'primereact/button';
4
+ import { useDialogContext, DialogResult, DialogButtons } from '@cratis/arc.react/dialogs';
5
+
6
+ const Dialog = ({ title, visible = true, onClose, onConfirm, onCancel, buttons = DialogButtons.OkCancel, children, width = '450px', resizable = false, isValid, okLabel = 'Ok', cancelLabel = 'Cancel', yesLabel = 'Yes', noLabel = 'No' }) => {
7
+ let contextCloseDialog;
8
+ try {
9
+ const context = useDialogContext();
10
+ contextCloseDialog = context?.closeDialog;
11
+ }
12
+ catch {
13
+ contextCloseDialog = undefined;
14
+ }
15
+ const isDialogValid = isValid !== false;
16
+ const headerElement = (jsx("div", { className: "inline-flex align-items-center justify-content-center gap-2", children: jsx("span", { className: "font-bold white-space-nowrap", children: title }) }));
17
+ const handleClose = async (result) => {
18
+ let closeResult = true;
19
+ if (result === DialogResult.Ok || result === DialogResult.Yes) {
20
+ if (onConfirm) {
21
+ closeResult = await onConfirm();
22
+ }
23
+ else if (onClose) {
24
+ closeResult = await onClose(result);
25
+ }
26
+ }
27
+ else {
28
+ if (onCancel) {
29
+ closeResult = await onCancel();
30
+ }
31
+ else if (onClose) {
32
+ closeResult = await onClose(result);
33
+ }
34
+ }
35
+ if (closeResult !== false) {
36
+ contextCloseDialog?.(result);
37
+ }
38
+ };
39
+ const okFooter = (jsx(Fragment, { children: jsx(Button, { label: okLabel, icon: "pi pi-check", onClick: () => handleClose(DialogResult.Ok), disabled: !isDialogValid, autoFocus: true }) }));
40
+ const okCancelFooter = (jsxs(Fragment, { children: [jsx(Button, { label: okLabel, icon: "pi pi-check", onClick: () => handleClose(DialogResult.Ok), disabled: !isDialogValid, autoFocus: true }), jsx(Button, { label: cancelLabel, icon: "pi pi-times", outlined: true, onClick: () => handleClose(DialogResult.Cancelled) })] }));
41
+ const yesNoFooter = (jsxs(Fragment, { children: [jsx(Button, { label: yesLabel, icon: "pi pi-check", onClick: () => handleClose(DialogResult.Yes), disabled: !isDialogValid, autoFocus: true }), jsx(Button, { label: noLabel, icon: "pi pi-times", outlined: true, onClick: () => handleClose(DialogResult.No) })] }));
42
+ const yesNoCancelFooter = (jsxs(Fragment, { children: [jsx(Button, { label: yesLabel, icon: "pi pi-check", onClick: () => handleClose(DialogResult.Yes), disabled: !isDialogValid, autoFocus: true }), jsx(Button, { label: noLabel, icon: "pi pi-times", outlined: true, onClick: () => handleClose(DialogResult.No) }), jsx(Button, { label: cancelLabel, icon: "pi pi-times", outlined: true, onClick: () => handleClose(DialogResult.Cancelled) })] }));
43
+ const getFooterInterior = () => {
44
+ if (typeof buttons !== 'number') {
45
+ return buttons;
46
+ }
47
+ switch (buttons) {
48
+ case DialogButtons.Ok:
49
+ return okFooter;
50
+ case DialogButtons.OkCancel:
51
+ return okCancelFooter;
52
+ case DialogButtons.YesNo:
53
+ return yesNoFooter;
54
+ case DialogButtons.YesNoCancel:
55
+ return yesNoCancelFooter;
56
+ }
57
+ return (jsx(Fragment, {}));
58
+ };
59
+ const footer = (jsx("div", { className: "flex flex-wrap justify-content-start gap-3", children: getFooterInterior() }));
60
+ return (jsx(Dialog$1, { header: headerElement, modal: true, footer: footer, onHide: typeof buttons === 'number' ? () => handleClose(DialogResult.Cancelled) : () => { }, visible: visible, style: { width }, resizable: resizable, closable: typeof buttons === 'number', children: children }));
61
+ };
62
+
63
+ export { Dialog };
64
+ //# sourceMappingURL=Dialog.js.map