@powerhousedao/document-engineering 1.14.0 → 1.16.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (240) hide show
  1. package/dist/src/scalars/components/amount-field/amount-currency-validations.d.ts +1 -1
  2. package/dist/src/scalars/components/amount-field/amount-currency-validations.d.ts.map +1 -1
  3. package/dist/src/scalars/components/amount-field/amount-currency-validations.js +6 -3
  4. package/dist/src/scalars/components/amount-field/amount-currency-validations.js.map +1 -1
  5. package/dist/src/scalars/components/amount-field/amount-field-validations.d.ts +1 -1
  6. package/dist/src/scalars/components/amount-field/amount-field-validations.d.ts.map +1 -1
  7. package/dist/src/scalars/components/amount-field/amount-field-validations.js +2 -2
  8. package/dist/src/scalars/components/amount-field/amount-field-validations.js.map +1 -1
  9. package/dist/src/scalars/components/date-picker-field/date-picker-validations.js +6 -6
  10. package/dist/src/scalars/components/date-picker-field/date-picker-validations.js.map +1 -1
  11. package/dist/src/scalars/components/date-time-picker-field/date-time-picker-field-validations.d.ts.map +1 -1
  12. package/dist/src/scalars/components/date-time-picker-field/date-time-picker-field-validations.js +14 -7
  13. package/dist/src/scalars/components/date-time-picker-field/date-time-picker-field-validations.js.map +1 -1
  14. package/dist/src/scalars/components/examples/enum-field-example/enum-field-example.js +1 -1
  15. package/dist/src/scalars/components/examples/enum-field-example/enum-field-example.js.map +1 -1
  16. package/dist/src/scalars/components/examples/multiple-fields-with-complex-layout/multiple-fields-with-complex-layout.js +2 -2
  17. package/dist/src/scalars/components/examples/multiple-fields-with-complex-layout/multiple-fields-with-complex-layout.js.map +1 -1
  18. package/dist/src/scalars/components/examples/reset-button/reset-button.js +2 -2
  19. package/dist/src/scalars/components/examples/reset-button/reset-button.js.map +1 -1
  20. package/dist/src/scalars/components/examples/reset-on-successful-submit/reset-on-successful-submit.d.ts.map +1 -1
  21. package/dist/src/scalars/components/examples/reset-on-successful-submit/reset-on-successful-submit.js +2 -2
  22. package/dist/src/scalars/components/examples/reset-on-successful-submit/reset-on-successful-submit.js.map +1 -1
  23. package/dist/src/scalars/components/examples/submit-changes-only/submit-changes-only.js +3 -3
  24. package/dist/src/scalars/components/examples/submit-changes-only/submit-changes-only.js.map +1 -1
  25. package/dist/src/scalars/components/fragments/command/command.d.ts +6 -6
  26. package/dist/src/scalars/components/fragments/command/command.d.ts.map +1 -1
  27. package/dist/src/scalars/components/fragments/command/command.js.map +1 -1
  28. package/dist/src/scalars/components/fragments/with-field-validation/with-field-validation.d.ts.map +1 -1
  29. package/dist/src/scalars/components/fragments/with-field-validation/with-field-validation.js +1 -2
  30. package/dist/src/scalars/components/fragments/with-field-validation/with-field-validation.js.map +1 -1
  31. package/dist/src/scalars/lib/decorators.js +2 -2
  32. package/dist/src/scalars/lib/decorators.js.map +1 -1
  33. package/dist/src/scalars/lib/value-cast.js +4 -4
  34. package/dist/src/scalars/lib/value-cast.js.map +1 -1
  35. package/dist/src/ui/components/button/button.d.ts +11 -0
  36. package/dist/src/ui/components/button/button.d.ts.map +1 -0
  37. package/dist/src/ui/components/button/button.js +32 -0
  38. package/dist/src/ui/components/button/button.js.map +1 -0
  39. package/dist/src/ui/components/button/index.d.ts +2 -0
  40. package/dist/src/ui/components/button/index.d.ts.map +1 -0
  41. package/dist/src/ui/components/button/index.js +2 -0
  42. package/dist/src/ui/components/button/index.js.map +1 -0
  43. package/dist/src/ui/components/confirm/alert-dialog.d.ts +21 -0
  44. package/dist/src/ui/components/confirm/alert-dialog.d.ts.map +1 -0
  45. package/dist/src/ui/components/confirm/alert-dialog.js +40 -0
  46. package/dist/src/ui/components/confirm/alert-dialog.js.map +1 -0
  47. package/dist/src/ui/components/confirm/confirm.d.ts +12 -0
  48. package/dist/src/ui/components/confirm/confirm.d.ts.map +1 -0
  49. package/dist/src/ui/components/confirm/confirm.js +14 -0
  50. package/dist/src/ui/components/confirm/confirm.js.map +1 -0
  51. package/dist/src/ui/components/confirm/index.d.ts +3 -0
  52. package/dist/src/ui/components/confirm/index.d.ts.map +1 -0
  53. package/dist/src/ui/components/confirm/index.js +2 -0
  54. package/dist/src/ui/components/confirm/index.js.map +1 -0
  55. package/dist/src/ui/components/data-entry/country-code-picker/country-code-picker.d.ts.map +1 -1
  56. package/dist/src/ui/components/data-entry/country-code-picker/country-code-picker.js +13 -4
  57. package/dist/src/ui/components/data-entry/country-code-picker/country-code-picker.js.map +1 -1
  58. package/dist/src/ui/components/data-entry/currency-code-picker/currency-code-picker.d.ts.map +1 -1
  59. package/dist/src/ui/components/data-entry/currency-code-picker/currency-code-picker.js +2 -2
  60. package/dist/src/ui/components/data-entry/currency-code-picker/currency-code-picker.js.map +1 -1
  61. package/dist/src/ui/components/data-entry/currency-code-picker/types.d.ts +2 -4
  62. package/dist/src/ui/components/data-entry/currency-code-picker/types.d.ts.map +1 -1
  63. package/dist/src/ui/components/data-entry/date-picker/subcomponents/date-picker-diff/date-picker-diff.js +1 -1
  64. package/dist/src/ui/components/data-entry/date-picker/subcomponents/date-picker-diff/date-picker-diff.js.map +1 -1
  65. package/dist/src/ui/components/data-entry/date-picker/subcomponents/month-grid.js +2 -2
  66. package/dist/src/ui/components/data-entry/date-picker/subcomponents/month-grid.js.map +1 -1
  67. package/dist/src/ui/components/data-entry/date-picker/use-date-picker.d.ts.map +1 -1
  68. package/dist/src/ui/components/data-entry/date-picker/use-date-picker.js +3 -3
  69. package/dist/src/ui/components/data-entry/date-picker/use-date-picker.js.map +1 -1
  70. package/dist/src/ui/components/data-entry/date-time-picker/date-time-picker-content.d.ts +3 -1
  71. package/dist/src/ui/components/data-entry/date-time-picker/date-time-picker-content.d.ts.map +1 -1
  72. package/dist/src/ui/components/data-entry/date-time-picker/date-time-picker-content.js +2 -2
  73. package/dist/src/ui/components/data-entry/date-time-picker/date-time-picker-content.js.map +1 -1
  74. package/dist/src/ui/components/data-entry/date-time-picker/date-time-picker.d.ts.map +1 -1
  75. package/dist/src/ui/components/data-entry/date-time-picker/date-time-picker.js +2 -2
  76. package/dist/src/ui/components/data-entry/date-time-picker/date-time-picker.js.map +1 -1
  77. package/dist/src/ui/components/data-entry/date-time-picker/subcomponent/date-time-picker-diff.d.ts.map +1 -1
  78. package/dist/src/ui/components/data-entry/date-time-picker/subcomponent/date-time-picker-diff.js +4 -5
  79. package/dist/src/ui/components/data-entry/date-time-picker/subcomponent/date-time-picker-diff.js.map +1 -1
  80. package/dist/src/ui/components/data-entry/date-time-picker/use-date-time-picker.d.ts +1 -2
  81. package/dist/src/ui/components/data-entry/date-time-picker/use-date-time-picker.d.ts.map +1 -1
  82. package/dist/src/ui/components/data-entry/date-time-picker/use-date-time-picker.js +62 -89
  83. package/dist/src/ui/components/data-entry/date-time-picker/use-date-time-picker.js.map +1 -1
  84. package/dist/src/ui/components/data-entry/date-time-picker/utils.d.ts +11 -1
  85. package/dist/src/ui/components/data-entry/date-time-picker/utils.d.ts.map +1 -1
  86. package/dist/src/ui/components/data-entry/date-time-picker/utils.js +70 -3
  87. package/dist/src/ui/components/data-entry/date-time-picker/utils.js.map +1 -1
  88. package/dist/src/ui/components/data-entry/input/splitted-input-diff.d.ts +3 -1
  89. package/dist/src/ui/components/data-entry/input/splitted-input-diff.d.ts.map +1 -1
  90. package/dist/src/ui/components/data-entry/input/splitted-input-diff.js +4 -2
  91. package/dist/src/ui/components/data-entry/input/splitted-input-diff.js.map +1 -1
  92. package/dist/src/ui/components/data-entry/input/subcomponent/text-diff.d.ts.map +1 -1
  93. package/dist/src/ui/components/data-entry/input/subcomponent/text-diff.js +21 -2
  94. package/dist/src/ui/components/data-entry/input/subcomponent/text-diff.js.map +1 -1
  95. package/dist/src/ui/components/data-entry/number-input/number-input.d.ts.map +1 -1
  96. package/dist/src/ui/components/data-entry/number-input/number-input.js +1 -1
  97. package/dist/src/ui/components/data-entry/number-input/number-input.js.map +1 -1
  98. package/dist/src/ui/components/data-entry/number-input/types.d.ts +2 -2
  99. package/dist/src/ui/components/data-entry/number-input/types.d.ts.map +1 -1
  100. package/dist/src/ui/components/data-entry/select/command-list-item.d.ts.map +1 -1
  101. package/dist/src/ui/components/data-entry/select/command-list-item.js +2 -7
  102. package/dist/src/ui/components/data-entry/select/command-list-item.js.map +1 -1
  103. package/dist/src/ui/components/data-entry/select/render-icon.d.ts +3 -0
  104. package/dist/src/ui/components/data-entry/select/render-icon.d.ts.map +1 -0
  105. package/dist/src/ui/components/data-entry/select/render-icon.js +10 -0
  106. package/dist/src/ui/components/data-entry/select/render-icon.js.map +1 -0
  107. package/dist/src/ui/components/data-entry/select/select-diff.d.ts +3 -1
  108. package/dist/src/ui/components/data-entry/select/select-diff.d.ts.map +1 -1
  109. package/dist/src/ui/components/data-entry/select/select-diff.js +2 -2
  110. package/dist/src/ui/components/data-entry/select/select-diff.js.map +1 -1
  111. package/dist/src/ui/components/data-entry/select/select.d.ts.map +1 -1
  112. package/dist/src/ui/components/data-entry/select/select.js +4 -2
  113. package/dist/src/ui/components/data-entry/select/select.js.map +1 -1
  114. package/dist/src/ui/components/data-entry/select/selected-content.d.ts.map +1 -1
  115. package/dist/src/ui/components/data-entry/select/selected-content.js +1 -6
  116. package/dist/src/ui/components/data-entry/select/selected-content.js.map +1 -1
  117. package/dist/src/ui/components/data-entry/select/types.d.ts +3 -1
  118. package/dist/src/ui/components/data-entry/select/types.d.ts.map +1 -1
  119. package/dist/src/ui/components/data-entry/text-input/text-input.d.ts.map +1 -1
  120. package/dist/src/ui/components/data-entry/text-input/text-input.js +1 -1
  121. package/dist/src/ui/components/data-entry/text-input/text-input.js.map +1 -1
  122. package/dist/src/ui/components/data-entry/textarea/textarea.d.ts.map +1 -1
  123. package/dist/src/ui/components/data-entry/textarea/textarea.js +1 -1
  124. package/dist/src/ui/components/data-entry/textarea/textarea.js.map +1 -1
  125. package/dist/src/ui/components/data-entry/time-picker/use-time-picker.d.ts.map +1 -1
  126. package/dist/src/ui/components/data-entry/time-picker/use-time-picker.js +14 -8
  127. package/dist/src/ui/components/data-entry/time-picker/use-time-picker.js.map +1 -1
  128. package/dist/src/ui/components/data-entry/time-picker/utils.d.ts +1 -0
  129. package/dist/src/ui/components/data-entry/time-picker/utils.d.ts.map +1 -1
  130. package/dist/src/ui/components/data-entry/time-picker/utils.js +11 -0
  131. package/dist/src/ui/components/data-entry/time-picker/utils.js.map +1 -1
  132. package/dist/src/ui/components/data-entry/toggle/subcomponents/toogle-diff.d.ts +2 -2
  133. package/dist/src/ui/components/data-entry/toggle/subcomponents/toogle-diff.d.ts.map +1 -1
  134. package/dist/src/ui/components/data-entry/toggle/subcomponents/toogle-diff.js +2 -2
  135. package/dist/src/ui/components/data-entry/toggle/subcomponents/toogle-diff.js.map +1 -1
  136. package/dist/src/ui/components/data-entry/toggle/toggle.d.ts.map +1 -1
  137. package/dist/src/ui/components/data-entry/toggle/toggle.js +1 -1
  138. package/dist/src/ui/components/data-entry/toggle/toggle.js.map +1 -1
  139. package/dist/src/ui/components/data-entry/url-input/url-input-diff.d.ts +1 -1
  140. package/dist/src/ui/components/data-entry/url-input/url-input-diff.d.ts.map +1 -1
  141. package/dist/src/ui/components/data-entry/url-input/url-input-diff.js +2 -2
  142. package/dist/src/ui/components/data-entry/url-input/url-input-diff.js.map +1 -1
  143. package/dist/src/ui/components/data-entry/url-input/url-input.d.ts.map +1 -1
  144. package/dist/src/ui/components/data-entry/url-input/url-input.js +1 -1
  145. package/dist/src/ui/components/data-entry/url-input/url-input.js.map +1 -1
  146. package/dist/src/ui/components/index.d.ts +2 -0
  147. package/dist/src/ui/components/index.d.ts.map +1 -1
  148. package/dist/src/ui/components/index.js +3 -0
  149. package/dist/src/ui/components/index.js.map +1 -1
  150. package/dist/src/ui/components/object-set-table/examples/custom-rendering/custom-rendering.d.ts.map +1 -1
  151. package/dist/src/ui/components/object-set-table/examples/custom-rendering/custom-rendering.js +0 -1
  152. package/dist/src/ui/components/object-set-table/examples/custom-rendering/custom-rendering.js.map +1 -1
  153. package/dist/src/ui/components/object-set-table/examples/table-editing/table-editing.d.ts +5 -0
  154. package/dist/src/ui/components/object-set-table/examples/table-editing/table-editing.d.ts.map +1 -0
  155. package/dist/src/ui/components/object-set-table/examples/table-editing/table-editing.js +108 -0
  156. package/dist/src/ui/components/object-set-table/examples/table-editing/table-editing.js.map +1 -0
  157. package/dist/src/ui/components/object-set-table/hooks/useGlobalTableKeyEvents.d.ts.map +1 -1
  158. package/dist/src/ui/components/object-set-table/hooks/useGlobalTableKeyEvents.js +17 -2
  159. package/dist/src/ui/components/object-set-table/hooks/useGlobalTableKeyEvents.js.map +1 -1
  160. package/dist/src/ui/components/object-set-table/logic/selection-manager.d.ts +4 -0
  161. package/dist/src/ui/components/object-set-table/logic/selection-manager.d.ts.map +1 -1
  162. package/dist/src/ui/components/object-set-table/logic/selection-manager.js +6 -0
  163. package/dist/src/ui/components/object-set-table/logic/selection-manager.js.map +1 -1
  164. package/dist/src/ui/components/object-set-table/logic/table-api.d.ts +25 -1
  165. package/dist/src/ui/components/object-set-table/logic/table-api.d.ts.map +1 -1
  166. package/dist/src/ui/components/object-set-table/logic/table-api.js +82 -3
  167. package/dist/src/ui/components/object-set-table/logic/table-api.js.map +1 -1
  168. package/dist/src/ui/components/object-set-table/logic/types.d.ts +6 -1
  169. package/dist/src/ui/components/object-set-table/logic/types.d.ts.map +1 -1
  170. package/dist/src/ui/components/object-set-table/object-set-table.d.ts +3 -0
  171. package/dist/src/ui/components/object-set-table/object-set-table.d.ts.map +1 -1
  172. package/dist/src/ui/components/object-set-table/object-set-table.js +10 -1
  173. package/dist/src/ui/components/object-set-table/object-set-table.js.map +1 -1
  174. package/dist/src/ui/components/object-set-table/subcomponents/body.d.ts.map +1 -1
  175. package/dist/src/ui/components/object-set-table/subcomponents/body.js +11 -5
  176. package/dist/src/ui/components/object-set-table/subcomponents/body.js.map +1 -1
  177. package/dist/src/ui/components/object-set-table/subcomponents/cells/information-cell.d.ts +5 -1
  178. package/dist/src/ui/components/object-set-table/subcomponents/cells/information-cell.d.ts.map +1 -1
  179. package/dist/src/ui/components/object-set-table/subcomponents/cells/information-cell.js +8 -2
  180. package/dist/src/ui/components/object-set-table/subcomponents/cells/information-cell.js.map +1 -1
  181. package/dist/src/ui/components/object-set-table/subcomponents/cells/render-cell/empty-cell.d.ts +9 -0
  182. package/dist/src/ui/components/object-set-table/subcomponents/cells/render-cell/empty-cell.d.ts.map +1 -0
  183. package/dist/src/ui/components/object-set-table/subcomponents/cells/render-cell/empty-cell.js +7 -0
  184. package/dist/src/ui/components/object-set-table/subcomponents/cells/render-cell/empty-cell.js.map +1 -0
  185. package/dist/src/ui/components/object-set-table/subcomponents/cells/{render-cell.d.ts → render-cell/render-cell.d.ts} +1 -1
  186. package/dist/src/ui/components/object-set-table/subcomponents/cells/render-cell/render-cell.d.ts.map +1 -0
  187. package/dist/src/ui/components/object-set-table/subcomponents/cells/render-cell/render-cell.js +34 -0
  188. package/dist/src/ui/components/object-set-table/subcomponents/cells/render-cell/render-cell.js.map +1 -0
  189. package/dist/src/ui/components/object-set-table/subcomponents/cells/render-cell/use-cell-logic.d.ts +16 -0
  190. package/dist/src/ui/components/object-set-table/subcomponents/cells/render-cell/use-cell-logic.d.ts.map +1 -0
  191. package/dist/src/ui/components/object-set-table/subcomponents/cells/render-cell/use-cell-logic.js +44 -0
  192. package/dist/src/ui/components/object-set-table/subcomponents/cells/render-cell/use-cell-logic.js.map +1 -0
  193. package/dist/src/ui/components/object-set-table/subcomponents/default-cell-editors/boolean-editor.d.ts +3 -0
  194. package/dist/src/ui/components/object-set-table/subcomponents/default-cell-editors/boolean-editor.d.ts.map +1 -0
  195. package/dist/src/ui/components/object-set-table/subcomponents/default-cell-editors/boolean-editor.js +22 -0
  196. package/dist/src/ui/components/object-set-table/subcomponents/default-cell-editors/boolean-editor.js.map +1 -0
  197. package/dist/src/ui/components/object-set-table/subcomponents/default-cell-editors/get-cell-editor-fn.d.ts +3 -0
  198. package/dist/src/ui/components/object-set-table/subcomponents/default-cell-editors/get-cell-editor-fn.d.ts.map +1 -0
  199. package/dist/src/ui/components/object-set-table/subcomponents/default-cell-editors/get-cell-editor-fn.js +18 -0
  200. package/dist/src/ui/components/object-set-table/subcomponents/default-cell-editors/get-cell-editor-fn.js.map +1 -0
  201. package/dist/src/ui/components/object-set-table/subcomponents/default-cell-editors/number-editor.d.ts +3 -0
  202. package/dist/src/ui/components/object-set-table/subcomponents/default-cell-editors/number-editor.d.ts.map +1 -0
  203. package/dist/src/ui/components/object-set-table/subcomponents/default-cell-editors/number-editor.js +9 -0
  204. package/dist/src/ui/components/object-set-table/subcomponents/default-cell-editors/number-editor.js.map +1 -0
  205. package/dist/src/ui/components/object-set-table/subcomponents/default-cell-editors/text-editor.d.ts +3 -0
  206. package/dist/src/ui/components/object-set-table/subcomponents/default-cell-editors/text-editor.d.ts.map +1 -0
  207. package/dist/src/ui/components/object-set-table/subcomponents/default-cell-editors/text-editor.js +9 -0
  208. package/dist/src/ui/components/object-set-table/subcomponents/default-cell-editors/text-editor.js.map +1 -0
  209. package/dist/src/ui/components/object-set-table/subcomponents/rows/render-row.js +2 -2
  210. package/dist/src/ui/components/object-set-table/subcomponents/rows/render-row.js.map +1 -1
  211. package/dist/src/ui/components/object-set-table/subcomponents/table-focus-trap.d.ts.map +1 -1
  212. package/dist/src/ui/components/object-set-table/subcomponents/table-focus-trap.js +13 -1
  213. package/dist/src/ui/components/object-set-table/subcomponents/table-focus-trap.js.map +1 -1
  214. package/dist/src/ui/components/object-set-table/subcomponents/table-provider/table-provider.d.ts.map +1 -1
  215. package/dist/src/ui/components/object-set-table/subcomponents/table-provider/table-provider.js +8 -0
  216. package/dist/src/ui/components/object-set-table/subcomponents/table-provider/table-provider.js.map +1 -1
  217. package/dist/src/ui/components/object-set-table/subcomponents/table-provider/table-reducer.d.ts +2 -0
  218. package/dist/src/ui/components/object-set-table/subcomponents/table-provider/table-reducer.d.ts.map +1 -1
  219. package/dist/src/ui/components/object-set-table/subcomponents/table-provider/table-reducer.js +6 -1
  220. package/dist/src/ui/components/object-set-table/subcomponents/table-provider/table-reducer.js.map +1 -1
  221. package/dist/src/ui/components/object-set-table/types.d.ts +29 -4
  222. package/dist/src/ui/components/object-set-table/types.d.ts.map +1 -1
  223. package/dist/src/ui/components/object-set-table/utils.d.ts +9 -0
  224. package/dist/src/ui/components/object-set-table/utils.d.ts.map +1 -1
  225. package/dist/src/ui/components/object-set-table/utils.js +23 -1
  226. package/dist/src/ui/components/object-set-table/utils.js.map +1 -1
  227. package/dist/style.css +347 -0
  228. package/dist/tsconfig.lib.tsbuildinfo +1 -1
  229. package/package.json +4 -4
  230. package/dist/src/ui/components/data-entry/country-code-picker/country-code-picker-diff.d.ts +0 -9
  231. package/dist/src/ui/components/data-entry/country-code-picker/country-code-picker-diff.d.ts.map +0 -1
  232. package/dist/src/ui/components/data-entry/country-code-picker/country-code-picker-diff.js +0 -8
  233. package/dist/src/ui/components/data-entry/country-code-picker/country-code-picker-diff.js.map +0 -1
  234. package/dist/src/ui/components/data-entry/currency-code-picker/currency-code-picker-diff.d.ts +0 -9
  235. package/dist/src/ui/components/data-entry/currency-code-picker/currency-code-picker-diff.d.ts.map +0 -1
  236. package/dist/src/ui/components/data-entry/currency-code-picker/currency-code-picker-diff.js +0 -8
  237. package/dist/src/ui/components/data-entry/currency-code-picker/currency-code-picker-diff.js.map +0 -1
  238. package/dist/src/ui/components/object-set-table/subcomponents/cells/render-cell.d.ts.map +0 -1
  239. package/dist/src/ui/components/object-set-table/subcomponents/cells/render-cell.js +0 -62
  240. package/dist/src/ui/components/object-set-table/subcomponents/cells/render-cell.js.map +0 -1
@@ -9,14 +9,16 @@ const useGlobalTableKeyEvents = () => {
9
9
  const selectedCell = api._getState().selectedCellIndex;
10
10
  if (isEditing) {
11
11
  if (e.key === 'Enter') {
12
- api.exitCellEditMode(true);
12
+ void api.exitCellEditMode(true);
13
13
  }
14
14
  if (e.key === 'Escape' && !!selectedCell) {
15
- api.exitCellEditMode(false);
15
+ void api.exitCellEditMode(false);
16
16
  }
17
17
  }
18
18
  else {
19
19
  if (e.key === 'Enter' && !!selectedCell && api.canEditCell(selectedCell.row, selectedCell.column)) {
20
+ // prevent the form from being submitted when the cell enters in edit mode
21
+ e.preventDefault();
20
22
  api.enterCellEditMode(selectedCell.row, selectedCell.column);
21
23
  }
22
24
  // arrow keys
@@ -36,9 +38,22 @@ const useGlobalTableKeyEvents = () => {
36
38
  }
37
39
  }
38
40
  };
41
+ const handleDeleteRows = (e) => {
42
+ if (e.key === 'Delete' && api.canDelete()) {
43
+ const selectedRowIndexes = api.selection
44
+ .getSelectedRowIndexes()
45
+ // we need to filter out the rows as generated empty rows might be selected
46
+ .filter((index) => index < api._getState().data.length);
47
+ if (selectedRowIndexes.length > 0) {
48
+ void api.deleteRows(selectedRowIndexes);
49
+ }
50
+ }
51
+ };
39
52
  api.getHTMLTable()?.addEventListener('keydown', handleKeyDown);
53
+ document.addEventListener('keydown', handleDeleteRows);
40
54
  return () => {
41
55
  api.getHTMLTable()?.removeEventListener('keydown', handleKeyDown);
56
+ document.removeEventListener('keydown', handleDeleteRows);
42
57
  };
43
58
  }, [api]);
44
59
  };
@@ -1 +1 @@
1
- {"version":3,"file":"useGlobalTableKeyEvents.js","sourceRoot":"","sources":["../../../../../../src/ui/components/object-set-table/hooks/useGlobalTableKeyEvents.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AACjC,OAAO,EAAE,qBAAqB,EAAE,MAAM,mDAAmD,CAAA;AACzF,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AAEtE,MAAM,uBAAuB,GAAG,GAAG,EAAE;IACnC,MAAM,EAAE,GAAG,EAAE,GAAG,qBAAqB,EAAE,CAAA;IAEvC,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,aAAa,GAAG,CAAC,CAAgB,EAAE,EAAE;YACzC,MAAM,SAAS,GAAG,GAAG,CAAC,SAAS,EAAE,CAAA;YACjC,MAAM,YAAY,GAAG,GAAG,CAAC,SAAS,EAAE,CAAC,iBAAiB,CAAA;YAEtD,IAAI,SAAS,EAAE,CAAC;gBACd,IAAI,CAAC,CAAC,GAAG,KAAK,OAAO,EAAE,CAAC;oBACtB,GAAG,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAA;gBAC5B,CAAC;gBACD,IAAI,CAAC,CAAC,GAAG,KAAK,QAAQ,IAAI,CAAC,CAAC,YAAY,EAAE,CAAC;oBACzC,GAAG,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAA;gBAC7B,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,CAAC,GAAG,KAAK,OAAO,IAAI,CAAC,CAAC,YAAY,IAAI,GAAG,CAAC,WAAW,CAAC,YAAY,CAAC,GAAG,EAAE,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC;oBAClG,GAAG,CAAC,iBAAiB,CAAC,YAAY,CAAC,GAAG,EAAE,YAAY,CAAC,MAAM,CAAC,CAAA;gBAC9D,CAAC;gBAED,aAAa;gBACb,IAAI,CAAC,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;oBAC/E,MAAM,SAAS,GAAG,mBAAmB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;oBAC5C,MAAM,QAAQ,GAAG,mBAAmB,CAAC;wBACnC,SAAS;wBACT,WAAW,EAAE,YAAY;wBACzB,QAAQ,EAAE,GAAG,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC,MAAM;wBACrC,WAAW,EAAE,GAAG,CAAC,UAAU,EAAE,CAAC,OAAO,CAAC,MAAM;wBAC5C,aAAa,EAAE,CAAC,CAAC,GAAG,KAAK,KAAK;qBAC/B,CAAC,CAAA;oBACF,IAAI,CAAC,CAAC,GAAG,KAAK,KAAK,EAAE,CAAC;wBACpB,CAAC,CAAC,cAAc,EAAE,CAAA;oBACpB,CAAC;oBACD,GAAG,CAAC,SAAS,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAA;gBACzD,CAAC;YACH,CAAC;QACH,CAAC,CAAA;QAED,GAAG,CAAC,YAAY,EAAE,EAAE,gBAAgB,CAAC,SAAS,EAAE,aAAa,CAAC,CAAA;QAC9D,OAAO,GAAG,EAAE;YACV,GAAG,CAAC,YAAY,EAAE,EAAE,mBAAmB,CAAC,SAAS,EAAE,aAAa,CAAC,CAAA;QACnE,CAAC,CAAA;IACH,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAA;AACX,CAAC,CAAA;AAED,OAAO,EAAE,uBAAuB,EAAE,CAAA"}
1
+ {"version":3,"file":"useGlobalTableKeyEvents.js","sourceRoot":"","sources":["../../../../../../src/ui/components/object-set-table/hooks/useGlobalTableKeyEvents.tsx"],"names":[],"mappings":"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"}
@@ -47,6 +47,10 @@ declare class SelectionManager<TData> implements TableSelectionManager {
47
47
  * @param to - The index of the last row to select
48
48
  */
49
49
  selectRange(from: number, to: number): void;
50
+ /**
51
+ * Returns the indexes of the selected rows
52
+ */
53
+ getSelectedRowIndexes(): number[];
50
54
  /**
51
55
  * Selects a cell in the table.
52
56
  *
@@ -1 +1 @@
1
- {"version":3,"file":"selection-manager.d.ts","sourceRoot":"","sources":["../../../../../../src/ui/components/object-set-table/logic/selection-manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAA;AAE5E,cAAM,gBAAgB,CAAC,KAAK,CAAE,YAAW,qBAAqB;IAChD,OAAO,CAAC,GAAG;gBAAH,GAAG,EAAE,mBAAmB,CAAC,KAAK,CAAC;IAEnD;;OAEG;IACH,aAAa;IAIb;;OAEG;IACH,cAAc;IAId;;OAEG;IACH,iBAAiB;IAIjB;;;;OAIG;IACH,SAAS,CAAC,QAAQ,EAAE,MAAM;IAS1B;;;;OAIG;IACH,SAAS,CAAC,QAAQ,EAAE,MAAM;IAS1B;;;;OAIG;IACH,uBAAuB,CAAC,QAAQ,EAAE,MAAM;IAkBxC;;OAEG;IACH,aAAa;IASb;;OAEG;IACH,eAAe;IASf;;;;;OAKG;IACH,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM;IASpC;;;;;OAKG;IACH,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM;IAShD;;OAEG;IACH,kBAAkB;IAIlB;;OAEG;IACH,KAAK;CAGN;AAED,OAAO,EAAE,gBAAgB,EAAE,CAAA"}
1
+ {"version":3,"file":"selection-manager.d.ts","sourceRoot":"","sources":["../../../../../../src/ui/components/object-set-table/logic/selection-manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAA;AAE5E,cAAM,gBAAgB,CAAC,KAAK,CAAE,YAAW,qBAAqB;IAChD,OAAO,CAAC,GAAG;gBAAH,GAAG,EAAE,mBAAmB,CAAC,KAAK,CAAC;IAEnD;;OAEG;IACH,aAAa;IAIb;;OAEG;IACH,cAAc;IAId;;OAEG;IACH,iBAAiB;IAIjB;;;;OAIG;IACH,SAAS,CAAC,QAAQ,EAAE,MAAM;IAS1B;;;;OAIG;IACH,SAAS,CAAC,QAAQ,EAAE,MAAM;IAS1B;;;;OAIG;IACH,uBAAuB,CAAC,QAAQ,EAAE,MAAM;IAkBxC;;OAEG;IACH,aAAa;IASb;;OAEG;IACH,eAAe;IASf;;;;;OAKG;IACH,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM;IASpC;;OAEG;IACH,qBAAqB,IAAI,MAAM,EAAE;IAIjC;;;;;OAKG;IACH,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM;IAShD;;OAEG;IACH,kBAAkB;IAIlB;;OAEG;IACH,KAAK;CAGN;AAED,OAAO,EAAE,gBAAgB,EAAE,CAAA"}
@@ -103,6 +103,12 @@ class SelectionManager {
103
103
  payload: { from, to },
104
104
  });
105
105
  }
106
+ /**
107
+ * Returns the indexes of the selected rows
108
+ */
109
+ getSelectedRowIndexes() {
110
+ return this.api._getState().selectedRowIndexes;
111
+ }
106
112
  /**
107
113
  * Selects a cell in the table.
108
114
  *
@@ -1 +1 @@
1
- {"version":3,"file":"selection-manager.js","sourceRoot":"","sources":["../../../../../../src/ui/components/object-set-table/logic/selection-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"selection-manager.js","sourceRoot":"","sources":["../../../../../../src/ui/components/object-set-table/logic/selection-manager.ts"],"names":[],"mappings":"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"}
@@ -64,7 +64,7 @@ declare class TableApi<TData> implements PrivateTableApiBase<TData> {
64
64
  *
65
65
  * @param save - Whether to save the changes made in the cell
66
66
  */
67
- exitCellEditMode(save?: boolean): void;
67
+ exitCellEditMode(save?: boolean): Promise<void>;
68
68
  /**
69
69
  * Sorts the rows by the given column index and direction
70
70
  *
@@ -84,6 +84,30 @@ declare class TableApi<TData> implements PrivateTableApiBase<TData> {
84
84
  * ```
85
85
  */
86
86
  getCurrentSortInfo(): SortingInfo | null;
87
+ /**
88
+ * Checks if the table can be deleted
89
+ *
90
+ * @returns `true` if the table can be deleted, `false` otherwise
91
+ */
92
+ canDelete(): boolean;
93
+ /**
94
+ * Deletes the rows at the given indexes
95
+ *
96
+ * @param rows - The indexes of the rows to delete
97
+ */
98
+ deleteRows(rows: number[]): Promise<void>;
99
+ /**
100
+ * Checks if the table can be added
101
+ *
102
+ * @returns `true` if the table can be added, `false` otherwise
103
+ */
104
+ canAdd(): boolean;
105
+ /**
106
+ * Checks if the table is currently in adding mode
107
+ *
108
+ * @returns `true` if the table is in adding mode, `false` otherwise
109
+ */
110
+ isAdding(): boolean;
87
111
  }
88
112
  export { TableApi };
89
113
  //# sourceMappingURL=table-api.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"table-api.d.ts","sourceRoot":"","sources":["../../../../../../src/ui/components/object-set-table/logic/table-api.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AACtC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kDAAkD,CAAA;AAClF,OAAO,KAAK,EAAE,WAAW,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAEnF,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AACzD,OAAO,KAAK,EAAE,mBAAmB,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAElE,cAAM,QAAQ,CAAC,KAAK,CAAE,YAAW,mBAAmB,CAAC,KAAK,CAAC;IAIvD,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAL3B,SAAgB,SAAS,EAAE,gBAAgB,CAAC,KAAK,CAAC,CAAA;gBAG/B,QAAQ,EAAE,SAAS,CAAC,gBAAgB,CAAC,EACrC,SAAS,EAAE,SAAS,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC,EACjD,QAAQ,EAAE,SAAS,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IAKzD,UAAU,IAAI,oBAAoB,CAAC,KAAK,CAAC;IAIzC,SAAS,IAAI,UAAU,CAAC,KAAK,CAAC;IAI9B,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,WAAW,CAAC,KAAK,CAAC;IAUnE;;;;OAIG;IACH,YAAY,IAAI,gBAAgB,GAAG,IAAI;IAIvC;;;;OAIG;IACH,iBAAiB,IAAI,MAAM;IAY3B;;;;;;OAMG;IACH,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO;IAIjD;;;;OAIG;IACH,SAAS;IAIT;;;;OAIG;IACH,UAAU;IAIV;;;;;;OAMG;IACH,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAQzC;;;;;OAKG;IACH,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAS7C;;;;OAIG;IACH,gBAAgB,CAAC,IAAI,UAAO;IA+B5B;;;;;OAKG;IACH,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,aAAa,GAAG,IAAI;IAa7D;;;;;;;;;;OAUG;IACH,kBAAkB,IAAI,WAAW,GAAG,IAAI;CAGzC;AAED,OAAO,EAAE,QAAQ,EAAE,CAAA"}
1
+ {"version":3,"file":"table-api.d.ts","sourceRoot":"","sources":["../../../../../../src/ui/components/object-set-table/logic/table-api.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AACtC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kDAAkD,CAAA;AAClF,OAAO,KAAK,EAAE,WAAW,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAEnF,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AACzD,OAAO,KAAK,EAAE,mBAAmB,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAGlE,cAAM,QAAQ,CAAC,KAAK,CAAE,YAAW,mBAAmB,CAAC,KAAK,CAAC;IAIvD,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAL3B,SAAgB,SAAS,EAAE,gBAAgB,CAAC,KAAK,CAAC,CAAA;gBAG/B,QAAQ,EAAE,SAAS,CAAC,gBAAgB,CAAC,EACrC,SAAS,EAAE,SAAS,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC,EACjD,QAAQ,EAAE,SAAS,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IAKzD,UAAU,IAAI,oBAAoB,CAAC,KAAK,CAAC;IAIzC,SAAS,IAAI,UAAU,CAAC,KAAK,CAAC;IAI9B,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,WAAW,CAAC,KAAK,CAAC;IAUnE;;;;OAIG;IACH,YAAY,IAAI,gBAAgB,GAAG,IAAI;IAIvC;;;;OAIG;IACH,iBAAiB,IAAI,MAAM;IAY3B;;;;;;OAMG;IACH,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO;IAIjD;;;;OAIG;IACH,SAAS;IAIT;;;;OAIG;IACH,UAAU;IAIV;;;;;;OAMG;IACH,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAQzC;;;;;OAKG;IACH,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAsB7C;;;;OAIG;IACG,gBAAgB,CAAC,IAAI,UAAO;IA6ClC;;;;;OAKG;IACH,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,aAAa,GAAG,IAAI;IAa7D;;;;;;;;;;OAUG;IACH,kBAAkB,IAAI,WAAW,GAAG,IAAI;IAKxC;;;;OAIG;IACH,SAAS,IAAI,OAAO;IAIpB;;;;OAIG;IACG,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAqB/C;;;;OAIG;IACH,MAAM,IAAI,OAAO;IAIjB;;;;OAIG;IACH,QAAQ,IAAI,OAAO;CAKpB;AAED,OAAO,EAAE,QAAQ,EAAE,CAAA"}
@@ -1,5 +1,6 @@
1
1
  import { getNextSelectedCell } from '../utils.js';
2
2
  import { SelectionManager } from './selection-manager.js';
3
+ import { confirm } from '../../confirm/index.js';
3
4
  class TableApi {
4
5
  tableRef;
5
6
  configRef;
@@ -95,17 +96,28 @@ class TableApi {
95
96
  enterCellEditMode(row, column) {
96
97
  if (!this.canEditCell(row, column))
97
98
  throw new Error('Cell is not editable');
99
+ // restore the form value
100
+ const formRef = this._getState().dataFormReferences[row][column];
101
+ const columnDef = this._getConfig().columns[column];
102
+ if (formRef) {
103
+ const originalValue = columnDef.valueGetter?.(this._getState().data[row], this._createCellContext(row, column));
104
+ formRef.current?.setValue(columnDef.field, originalValue);
105
+ }
98
106
  this._getState().dispatch?.({
99
107
  type: 'ENTER_CELL_EDIT_MODE',
100
108
  payload: { row, column },
101
109
  });
110
+ // restore focus to the field one the edit mode is entered
111
+ setTimeout(() => {
112
+ formRef?.current?.setFocus(columnDef.field);
113
+ }, 30);
102
114
  }
103
115
  /**
104
116
  * Exits cell edit mode
105
117
  *
106
118
  * @param save - Whether to save the changes made in the cell
107
119
  */
108
- exitCellEditMode(save = true) {
120
+ async exitCellEditMode(save = true) {
109
121
  // TODO: before exiting, check if the ${value} edited is valid
110
122
  // exit edit mode
111
123
  const selectedCell = this._getState().selectedCellIndex ?? {
@@ -114,8 +126,24 @@ class TableApi {
114
126
  };
115
127
  this.selection.selectCell(selectedCell.row, selectedCell.column);
116
128
  if (save) {
117
- const value = this._getConfig().columns[selectedCell.column]?.valueGetter?.(this._getState().data[selectedCell.row], this._createCellContext(selectedCell.row, selectedCell.column));
118
- this._getConfig().columns[selectedCell.column]?.onSave?.(`${value?.toString() ?? ''} edited`, this._createCellContext(selectedCell.row, selectedCell.column));
129
+ const formRef = this._getState().dataFormReferences[selectedCell.row][selectedCell.column];
130
+ if (formRef) {
131
+ const columnDef = this._getConfig().columns[selectedCell.column];
132
+ const isValid = await formRef.current?.trigger();
133
+ if (!isValid) {
134
+ return;
135
+ }
136
+ const formData = formRef.current?.getValues();
137
+ const value = formData?.[columnDef.field];
138
+ if (selectedCell.row === this._getState().data.length) {
139
+ await this._getConfig().onAdd?.({ [columnDef.field]: value });
140
+ return;
141
+ }
142
+ // TODO: save only if the value changed
143
+ columnDef.onSave?.(value, this._createCellContext(selectedCell.row, selectedCell.column));
144
+ }
145
+ // the actual save is done in the form onSubmit callback
146
+ // so we just asume that the save was done and we can move to the next cell
119
147
  const nextCell = getNextSelectedCell({
120
148
  direction: 'down',
121
149
  currentCell: selectedCell,
@@ -158,6 +186,57 @@ class TableApi {
158
186
  getCurrentSortInfo() {
159
187
  return this._getState().sortState;
160
188
  }
189
+ // deletion
190
+ /**
191
+ * Checks if the table can be deleted
192
+ *
193
+ * @returns `true` if the table can be deleted, `false` otherwise
194
+ */
195
+ canDelete() {
196
+ return typeof this._getConfig().onDelete === 'function';
197
+ }
198
+ /**
199
+ * Deletes the rows at the given indexes
200
+ *
201
+ * @param rows - The indexes of the rows to delete
202
+ */
203
+ async deleteRows(rows) {
204
+ if (!this.canDelete())
205
+ return;
206
+ const rowsData = rows.map((row) => this._getState().data[row]);
207
+ const count = rows.length;
208
+ const confirmed = await confirm({
209
+ title: 'Delete entries',
210
+ description: `Are you sure you want to delete ${count} selected ${count === 1 ? 'entry' : 'entries'}?`,
211
+ confirmLabel: 'Continue',
212
+ confirmVariant: 'default',
213
+ cancelLabel: 'Cancel',
214
+ cancelVariant: 'secondary',
215
+ });
216
+ if (confirmed) {
217
+ await this._getConfig().onDelete?.(rowsData);
218
+ this.selection.clear();
219
+ }
220
+ }
221
+ // insertion
222
+ /**
223
+ * Checks if the table can be added
224
+ *
225
+ * @returns `true` if the table can be added, `false` otherwise
226
+ */
227
+ canAdd() {
228
+ return typeof this._getConfig().onAdd === 'function';
229
+ }
230
+ /**
231
+ * Checks if the table is currently in adding mode
232
+ *
233
+ * @returns `true` if the table is in adding mode, `false` otherwise
234
+ */
235
+ isAdding() {
236
+ const editingRow = this._getState().selectedCellIndex?.row;
237
+ const rowCount = this._getState().data.length;
238
+ return this.isEditing() && editingRow === rowCount;
239
+ }
161
240
  }
162
241
  export { TableApi };
163
242
  //# sourceMappingURL=table-api.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"table-api.js","sourceRoot":"","sources":["../../../../../../src/ui/components/object-set-table/logic/table-api.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"table-api.js","sourceRoot":"","sources":["../../../../../../src/ui/components/object-set-table/logic/table-api.ts"],"names":[],"mappings":"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"}
@@ -14,6 +14,7 @@ export interface TableSelectionManager {
14
14
  selectAllRows(): void;
15
15
  toggleSelectAll(): void;
16
16
  selectRange(from: number, to: number): void;
17
+ getSelectedRowIndexes(): number[];
17
18
  selectCell(rowIndex: number, columnIndex: number): void;
18
19
  clearCellSelection(): void;
19
20
  clear(): void;
@@ -27,7 +28,11 @@ export interface TableApiBase {
27
28
  isEditing(): boolean;
28
29
  isEditingCell(row: number, column: number): boolean;
29
30
  enterCellEditMode(row: number, column: number): void;
30
- exitCellEditMode(save?: boolean): void;
31
+ exitCellEditMode(save?: boolean): Promise<void>;
32
+ canDelete(): boolean;
33
+ deleteRows(rows: number[]): Promise<void>;
34
+ canAdd(): boolean;
35
+ isAdding(): boolean;
31
36
  sortRows(columnIndex: number, direction: SortDirection | null): void;
32
37
  getCurrentSortInfo(): SortingInfo | null;
33
38
  }
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../src/ui/components/object-set-table/logic/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AACnF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kDAAkD,CAAA;AAElF,MAAM,WAAW,WAAW;IAC1B,WAAW,EAAE,MAAM,CAAA;IACnB,SAAS,EAAE,aAAa,CAAA;CACzB;AAED,MAAM,WAAW,qBAAqB;IACpC,aAAa,IAAI,OAAO,CAAA;IACxB,cAAc,IAAI,OAAO,CAAA;IACzB,iBAAiB,IAAI,OAAO,CAAA;IAE5B,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;IACjC,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;IACjC,uBAAuB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;IAC/C,aAAa,IAAI,IAAI,CAAA;IACrB,eAAe,IAAI,IAAI,CAAA;IACvB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI,CAAA;IAE3C,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;IAEvD,kBAAkB,IAAI,IAAI,CAAA;IAC1B,KAAK,IAAI,IAAI,CAAA;CACd;AAED,MAAM,WAAW,YAAY;IAE3B,SAAS,EAAE,qBAAqB,CAAA;IAGhC,YAAY,IAAI,gBAAgB,GAAG,IAAI,CAAA;IACvC,iBAAiB,IAAI,MAAM,CAAA;IAG3B,UAAU,IAAI,OAAO,CAAA;IACrB,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAA;IACjD,SAAS,IAAI,OAAO,CAAA;IACpB,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAA;IACnD,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;IACpD,gBAAgB,CAAC,IAAI,CAAC,EAAE,OAAO,GAAG,IAAI,CAAA;IAGtC,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,aAAa,GAAG,IAAI,GAAG,IAAI,CAAA;IACpE,kBAAkB,IAAI,WAAW,GAAG,IAAI,CAAA;CACzC;AAED,MAAM,WAAW,mBAAmB,CAAC,KAAK,CAAE,SAAQ,YAAY;IAC9D,UAAU,IAAI,oBAAoB,CAAC,KAAK,CAAC,CAAA;IACzC,SAAS,IAAI,UAAU,CAAC,KAAK,CAAC,CAAA;IAC9B,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,WAAW,CAAC,KAAK,CAAC,CAAA;CACpE"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../src/ui/components/object-set-table/logic/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AACnF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kDAAkD,CAAA;AAElF,MAAM,WAAW,WAAW;IAC1B,WAAW,EAAE,MAAM,CAAA;IACnB,SAAS,EAAE,aAAa,CAAA;CACzB;AAED,MAAM,WAAW,qBAAqB;IACpC,aAAa,IAAI,OAAO,CAAA;IACxB,cAAc,IAAI,OAAO,CAAA;IACzB,iBAAiB,IAAI,OAAO,CAAA;IAE5B,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;IACjC,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;IACjC,uBAAuB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;IAC/C,aAAa,IAAI,IAAI,CAAA;IACrB,eAAe,IAAI,IAAI,CAAA;IACvB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI,CAAA;IAC3C,qBAAqB,IAAI,MAAM,EAAE,CAAA;IAEjC,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;IAEvD,kBAAkB,IAAI,IAAI,CAAA;IAC1B,KAAK,IAAI,IAAI,CAAA;CACd;AAED,MAAM,WAAW,YAAY;IAE3B,SAAS,EAAE,qBAAqB,CAAA;IAGhC,YAAY,IAAI,gBAAgB,GAAG,IAAI,CAAA;IACvC,iBAAiB,IAAI,MAAM,CAAA;IAG3B,UAAU,IAAI,OAAO,CAAA;IACrB,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAA;IACjD,SAAS,IAAI,OAAO,CAAA;IACpB,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAA;IACnD,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;IACpD,gBAAgB,CAAC,IAAI,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAG/C,SAAS,IAAI,OAAO,CAAA;IACpB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAGzC,MAAM,IAAI,OAAO,CAAA;IACjB,QAAQ,IAAI,OAAO,CAAA;IAGnB,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,aAAa,GAAG,IAAI,GAAG,IAAI,CAAA;IACpE,kBAAkB,IAAI,WAAW,GAAG,IAAI,CAAA;CACzC;AAED,MAAM,WAAW,mBAAmB,CAAC,KAAK,CAAE,SAAQ,YAAY;IAC9D,UAAU,IAAI,oBAAoB,CAAC,KAAK,CAAC,CAAA;IACzC,SAAS,IAAI,UAAU,CAAC,KAAK,CAAC,CAAA;IAC9B,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,WAAW,CAAC,KAAK,CAAC,CAAA;CACpE"}
@@ -6,6 +6,9 @@ import type { DataType, ObjectSetTableConfig } from './types.js';
6
6
  * @param data The data to display in the table.
7
7
  * @param allowRowSelection Whether to allow row selection.
8
8
  * @param showRowNumbers Whether to show row numbers.
9
+ * @param onAdd Function called when a new row is added. Enables insertion row when provided.
10
+ * @param onDelete Function called when rows are deleted. Enables deletion functionality when provided.
11
+ * @param apiRef Reference to the table API for programmatic control.
9
12
  */
10
13
  declare const ObjectSetTable: <T extends DataType = DataType>(config: ObjectSetTableConfig<T>) => import("react/jsx-runtime").JSX.Element;
11
14
  export { ObjectSetTable };
@@ -1 +1 @@
1
- {"version":3,"file":"object-set-table.d.ts","sourceRoot":"","sources":["../../../../../src/ui/components/object-set-table/object-set-table.tsx"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAc,QAAQ,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAA;AAK5E;;;;;;;GAOG;AACH,QAAA,MAAM,cAAc,GAAI,CAAC,SAAS,QAAQ,GAAG,QAAQ,EAAE,QAAQ,oBAAoB,CAAC,CAAC,CAAC,4CAqDrF,CAAA;AAED,OAAO,EAAE,cAAc,EAAE,CAAA"}
1
+ {"version":3,"file":"object-set-table.d.ts","sourceRoot":"","sources":["../../../../../src/ui/components/object-set-table/object-set-table.tsx"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAc,QAAQ,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAA;AAM5E;;;;;;;;;;GAUG;AACH,QAAA,MAAM,cAAc,GAAI,CAAC,SAAS,QAAQ,GAAG,QAAQ,EAAE,QAAQ,oBAAoB,CAAC,CAAC,CAAC,4CA0DrF,CAAA;AAED,OAAO,EAAE,cAAc,EAAE,CAAA"}
@@ -10,6 +10,7 @@ import { TableProvider } from './subcomponents/table-provider/table-provider.js'
10
10
  import { defaultColumnAlignment } from './subcomponents/default-fns/default-column-config.js';
11
11
  import { defaultHeaderRenderer } from './subcomponents/default-header-renderers/default-header-renderer.js';
12
12
  import { defaultSortFns } from './subcomponents/default-sort-columns/default-sort-fns.js';
13
+ import { getCellEditorFn } from './subcomponents/default-cell-editors/get-cell-editor-fn.js';
13
14
  /**
14
15
  * The ObjectSetTable component is a table component that displays a list of objects.
15
16
  *
@@ -17,6 +18,9 @@ import { defaultSortFns } from './subcomponents/default-sort-columns/default-sor
17
18
  * @param data The data to display in the table.
18
19
  * @param allowRowSelection Whether to allow row selection.
19
20
  * @param showRowNumbers Whether to show row numbers.
21
+ * @param onAdd Function called when a new row is added. Enables insertion row when provided.
22
+ * @param onDelete Function called when rows are deleted. Enables deletion functionality when provided.
23
+ * @param apiRef Reference to the table API for programmatic control.
20
24
  */
21
25
  const ObjectSetTable = (config) => {
22
26
  /**
@@ -38,12 +42,17 @@ const ObjectSetTable = (config) => {
38
42
  // TODO: move the default onSave to a utility function
39
43
  onSave: column.onSave ??
40
44
  ((value, context) => {
45
+ if (import.meta.env.DEV) {
46
+ // This is a warning that is only shown in development mode for better DX
47
+ // eslint-disable-next-line no-console
48
+ console.warn(`onSave is not implemented for column %c${column.field}`, 'font-weight: bold');
49
+ }
41
50
  config.data[context.rowIndex][context.column.field] = value;
42
51
  return true;
43
52
  }),
53
+ renderCellEditor: column.renderCellEditor ?? getCellEditorFn(column.type),
44
54
  // sorting
45
55
  sortable: column.sortable ?? false,
46
- defaultSortDirection: column.defaultSortDirection ?? 'asc',
47
56
  rowComparator: column.rowComparator ?? defaultSortFns(column.type ?? defaultColumnType),
48
57
  })),
49
58
  width: config.width ?? 'auto',
@@ -1 +1 @@
1
- {"version":3,"file":"object-set-table.js","sourceRoot":"","sources":["../../../../../src/ui/components/object-set-table/object-set-table.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"object-set-table.js","sourceRoot":"","sources":["../../../../../src/ui/components/object-set-table/object-set-table.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"body.d.ts","sourceRoot":"","sources":["../../../../../../src/ui/components/object-set-table/subcomponents/body.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAI3C,QAAA,MAAM,SAAS,GAAI,CAAC,SAAS,QAAQ,8CAsBpC,CAAA;AAED,OAAO,EAAE,SAAS,EAAE,CAAA"}
1
+ {"version":3,"file":"body.d.ts","sourceRoot":"","sources":["../../../../../../src/ui/components/object-set-table/subcomponents/body.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAI3C,QAAA,MAAM,SAAS,GAAI,CAAC,SAAS,QAAQ,8CAmCpC,CAAA;AAED,OAAO,EAAE,SAAS,EAAE,CAAA"}
@@ -3,13 +3,19 @@ import { useGlobalTableKeyEvents } from '../hooks/useGlobalTableKeyEvents.js';
3
3
  import { useInternalTableState } from './table-provider/table-provider.js';
4
4
  import { RenderRow } from './rows/render-row.js';
5
5
  const TableBody = () => {
6
- const { config, state: { data }, } = useInternalTableState();
6
+ const { config, api } = useInternalTableState();
7
7
  // add global key events to the table
8
8
  useGlobalTableKeyEvents();
9
- return (_jsxs("tbody", { className: "text-sm leading-5 text-gray-900", children: [data.map((data, index) => (
10
- // TODO: replace key with unique key (maybe generated with object-hash package)
11
- _jsx(RenderRow, { item: data, rowIndex: index }, index))), data.length < (config.minRowCount ?? 0) &&
12
- Array.from({ length: (config.minRowCount ?? 0) - data.length }).map((_, index) => (_jsx(RenderRow, { item: {}, rowIndex: index + data.length, emptyRow: true }, index)))] }));
9
+ const canRenderInsertRow = api.canAdd();
10
+ // if can insert rows and we need to add emprty rows, we need to substract 1 because the insert row will occupy one row
11
+ const shouldRenderEmptyRows = canRenderInsertRow
12
+ ? config.data.length < (config.minRowCount ?? 0) - 1
13
+ : config.data.length < (config.minRowCount ?? 0);
14
+ const emptyRowsCount = shouldRenderEmptyRows
15
+ ? (config.minRowCount ?? 0) - config.data.length - (canRenderInsertRow ? 1 : 0)
16
+ : 0;
17
+ return (_jsxs("tbody", { className: "text-sm leading-5 text-gray-900", children: [config.data.map((data, index) => (_jsx(RenderRow, { item: data, rowIndex: index }, JSON.stringify({ data, _reactKeyIndex: index })))), canRenderInsertRow && _jsx(RenderRow, { item: {}, rowIndex: config.data.length }), emptyRowsCount > 0 &&
18
+ Array.from({ length: emptyRowsCount }).map((_, index) => (_jsx(RenderRow, { item: {}, rowIndex: index + config.data.length + (canRenderInsertRow ? 1 : 0), emptyRow: true }, index)))] }));
13
19
  };
14
20
  export { TableBody };
15
21
  //# sourceMappingURL=body.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"body.js","sourceRoot":"","sources":["../../../../../../src/ui/components/object-set-table/subcomponents/body.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,qCAAqC,CAAA;AAE7E,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAA;AAC1E,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAA;AAEhD,MAAM,SAAS,GAAG,GAAuB,EAAE;IACzC,MAAM,EACJ,MAAM,EACN,KAAK,EAAE,EAAE,IAAI,EAAE,GAChB,GAAG,qBAAqB,EAAK,CAAA;IAE9B,qCAAqC;IACrC,uBAAuB,EAAE,CAAA;IAEzB,OAAO,CACL,iBAAO,SAAS,EAAC,iCAAiC,aAC/C,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;YACzB,+EAA+E;YAC/E,KAAC,SAAS,IAAa,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,IAAlC,KAAK,CAAiC,CACvD,CAAC,EAED,IAAI,CAAC,MAAM,GAAG,CAAC,MAAM,CAAC,WAAW,IAAI,CAAC,CAAC;gBACtC,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,MAAM,CAAC,WAAW,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,CAChF,KAAC,SAAS,IAAa,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,QAAQ,UAAxD,KAAK,CAAsD,CAC5E,CAAC,IACE,CACT,CAAA;AACH,CAAC,CAAA;AAED,OAAO,EAAE,SAAS,EAAE,CAAA"}
1
+ {"version":3,"file":"body.js","sourceRoot":"","sources":["../../../../../../src/ui/components/object-set-table/subcomponents/body.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,qCAAqC,CAAA;AAE7E,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAA;AAC1E,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAA;AAEhD,MAAM,SAAS,GAAG,GAAuB,EAAE;IACzC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,qBAAqB,EAAK,CAAA;IAElD,qCAAqC;IACrC,uBAAuB,EAAE,CAAA;IAEzB,MAAM,kBAAkB,GAAG,GAAG,CAAC,MAAM,EAAE,CAAA;IACvC,uHAAuH;IACvH,MAAM,qBAAqB,GAAG,kBAAkB;QAC9C,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,MAAM,CAAC,WAAW,IAAI,CAAC,CAAC,GAAG,CAAC;QACpD,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,MAAM,CAAC,WAAW,IAAI,CAAC,CAAC,CAAA;IAElD,MAAM,cAAc,GAAG,qBAAqB;QAC1C,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/E,CAAC,CAAC,CAAC,CAAA;IAEL,OAAO,CACL,iBAAO,SAAS,EAAC,iCAAiC,aAC/C,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CAChC,KAAC,SAAS,IAAuD,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,IAA5E,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC,CAAiC,CACjG,CAAC,EAED,kBAAkB,IAAI,KAAC,SAAS,IAAC,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,GAAI,EAE3E,cAAc,GAAG,CAAC;gBACjB,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,CACvD,KAAC,SAAS,IAER,IAAI,EAAE,EAAE,EACR,QAAQ,EAAE,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EACnE,QAAQ,UAHH,KAAK,CAIV,CACH,CAAC,IACE,CACT,CAAA;AACH,CAAC,CAAA;AAED,OAAO,EAAE,SAAS,EAAE,CAAA"}
@@ -1,3 +1,7 @@
1
- declare const InformationCell: () => import("react/jsx-runtime").JSX.Element;
1
+ interface InformationCellProps {
2
+ rowIndex: number;
3
+ emptyRow?: boolean;
4
+ }
5
+ declare const InformationCell: ({ rowIndex, emptyRow }: InformationCellProps) => import("react/jsx-runtime").JSX.Element;
2
6
  export { InformationCell };
3
7
  //# sourceMappingURL=information-cell.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"information-cell.d.ts","sourceRoot":"","sources":["../../../../../../../src/ui/components/object-set-table/subcomponents/cells/information-cell.tsx"],"names":[],"mappings":"AAEA,QAAA,MAAM,eAAe,+CAEpB,CAAA;AAED,OAAO,EAAE,eAAe,EAAE,CAAA"}
1
+ {"version":3,"file":"information-cell.d.ts","sourceRoot":"","sources":["../../../../../../../src/ui/components/object-set-table/subcomponents/cells/information-cell.tsx"],"names":[],"mappings":"AAIA,UAAU,oBAAoB;IAC5B,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB;AAED,QAAA,MAAM,eAAe,GAAI,wBAAwB,oBAAoB,4CAsBpE,CAAA;AAED,OAAO,EAAE,eAAe,EAAE,CAAA"}
@@ -1,7 +1,13 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { Icon } from '../../../icon/icon.js';
3
+ import { useInternalTableState } from '../table-provider/table-provider.js';
2
4
  import { TableCellBasic } from './basic-cell.js';
3
- const InformationCell = () => {
4
- return _jsx(TableCellBasic, { className: "min-w-[40px] max-w-[40px]" });
5
+ const InformationCell = ({ rowIndex, emptyRow }) => {
6
+ const { state: { selectedRowIndexes }, api, } = useInternalTableState();
7
+ const canDelete = api.canDelete();
8
+ return (_jsx(TableCellBasic, { className: "min-w-[40px] max-w-[40px]", children: !emptyRow && canDelete && selectedRowIndexes.includes(rowIndex) && (_jsx("div", { className: "flex h-full w-full items-center justify-center cursor-pointer text-red-900", onClick: () => {
9
+ void api.deleteRows([rowIndex]);
10
+ }, children: _jsx(Icon, { name: "Trash", size: 16 }) })) }));
5
11
  };
6
12
  export { InformationCell };
7
13
  //# sourceMappingURL=information-cell.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"information-cell.js","sourceRoot":"","sources":["../../../../../../../src/ui/components/object-set-table/subcomponents/cells/information-cell.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAEhD,MAAM,eAAe,GAAG,GAAG,EAAE;IAC3B,OAAO,KAAC,cAAc,IAAC,SAAS,EAAC,2BAA2B,GAAG,CAAA;AACjE,CAAC,CAAA;AAED,OAAO,EAAE,eAAe,EAAE,CAAA"}
1
+ {"version":3,"file":"information-cell.js","sourceRoot":"","sources":["../../../../../../../src/ui/components/object-set-table/subcomponents/cells/information-cell.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAA;AAC5C,OAAO,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAA;AAC3E,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAOhD,MAAM,eAAe,GAAG,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAwB,EAAE,EAAE;IACvE,MAAM,EACJ,KAAK,EAAE,EAAE,kBAAkB,EAAE,EAC7B,GAAG,GACJ,GAAG,qBAAqB,EAAE,CAAA;IAE3B,MAAM,SAAS,GAAG,GAAG,CAAC,SAAS,EAAE,CAAA;IAEjC,OAAO,CACL,KAAC,cAAc,IAAC,SAAS,EAAC,2BAA2B,YAClD,CAAC,QAAQ,IAAI,SAAS,IAAI,kBAAkB,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAClE,cACE,SAAS,EAAC,4EAA4E,EACtF,OAAO,EAAE,GAAG,EAAE;gBACZ,KAAK,GAAG,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAA;YACjC,CAAC,YAED,KAAC,IAAI,IAAC,IAAI,EAAC,OAAO,EAAC,IAAI,EAAE,EAAE,GAAI,GAC3B,CACP,GACc,CAClB,CAAA;AACH,CAAC,CAAA;AAED,OAAO,EAAE,eAAe,EAAE,CAAA"}
@@ -0,0 +1,9 @@
1
+ import type { ColumnDef, DataType } from '../../../types.js';
2
+ interface EmptyCellProps<T> {
3
+ column: ColumnDef<T>;
4
+ isSelected: boolean;
5
+ onClick: (event: React.MouseEvent<HTMLTableCellElement>) => void;
6
+ }
7
+ declare const EmptyCell: <T extends DataType>({ column, isSelected, onClick }: EmptyCellProps<T>) => import("react/jsx-runtime").JSX.Element;
8
+ export { EmptyCell };
9
+ //# sourceMappingURL=empty-cell.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"empty-cell.d.ts","sourceRoot":"","sources":["../../../../../../../../src/ui/components/object-set-table/subcomponents/cells/render-cell/empty-cell.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAG5D,UAAU,cAAc,CAAC,CAAC;IACxB,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,CAAA;IACpB,UAAU,EAAE,OAAO,CAAA;IACnB,OAAO,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,oBAAoB,CAAC,KAAK,IAAI,CAAA;CACjE;AAED,QAAA,MAAM,SAAS,GAAI,CAAC,SAAS,QAAQ,EAAE,iCAAiC,cAAc,CAAC,CAAC,CAAC,4CAExF,CAAA;AAED,OAAO,EAAE,SAAS,EAAE,CAAA"}
@@ -0,0 +1,7 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { DefaultTableCell } from '../default-cell.js';
3
+ const EmptyCell = ({ column, isSelected, onClick }) => {
4
+ return _jsx(DefaultTableCell, { onClick: onClick, isSelected: isSelected, isEditable: false }, column.field);
5
+ };
6
+ export { EmptyCell };
7
+ //# sourceMappingURL=empty-cell.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"empty-cell.js","sourceRoot":"","sources":["../../../../../../../../src/ui/components/object-set-table/subcomponents/cells/render-cell/empty-cell.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAQrD,MAAM,SAAS,GAAG,CAAqB,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAqB,EAAE,EAAE;IAC3F,OAAO,KAAC,gBAAgB,IAAoB,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,KAAK,IAAzE,MAAM,CAAC,KAAK,CAAiE,CAAA;AAC7G,CAAC,CAAA;AAED,OAAO,EAAE,SAAS,EAAE,CAAA"}
@@ -1,4 +1,4 @@
1
- import type { ColumnDef, DataType } from '../../types.js';
1
+ import type { ColumnDef, DataType } from '../../../types.js';
2
2
  interface RenderCellProps<T extends DataType> {
3
3
  rowItem: T;
4
4
  column: ColumnDef<T>;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"render-cell.d.ts","sourceRoot":"","sources":["../../../../../../../../src/ui/components/object-set-table/subcomponents/cells/render-cell/render-cell.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAe,SAAS,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAOzE,UAAU,eAAe,CAAC,CAAC,SAAS,QAAQ;IAC1C,OAAO,EAAE,CAAC,CAAA;IACV,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,CAAA;IACpB,QAAQ,EAAE,MAAM,CAAA;IAChB,WAAW,EAAE,MAAM,CAAA;IACnB,eAAe,CAAC,EAAE,OAAO,CAAA;CAC1B;AAED,QAAA,MAAM,UAAU,GAAI,CAAC,SAAS,QAAQ,EAAE,8DAMrC,eAAe,CAAC,CAAC,CAAC,4CA4CpB,CAAA;AAED,OAAO,EAAE,UAAU,EAAE,CAAA"}
@@ -0,0 +1,34 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { DefaultTableCell } from '../default-cell.js';
3
+ import { Form } from '../../../../../../scalars/components/form/form.js';
4
+ import { cn } from '../../../../../../scalars/lib/utils.js';
5
+ import { EmptyCell } from './empty-cell.js';
6
+ import { useCellLogic } from './use-cell-logic.js';
7
+ const RenderCell = ({ rowItem, column, rowIndex, columnIndex, renderEmptyCell = false, }) => {
8
+ const { config, isThisCellSelected, isCellEditMode, handleCellClick, formRef } = useCellLogic({
9
+ column,
10
+ rowIndex,
11
+ columnIndex,
12
+ renderEmptyCell,
13
+ });
14
+ /**
15
+ * If the cell is empty, we don't want to render anything
16
+ * so we're going to return a default table cell with no content
17
+ */
18
+ if (renderEmptyCell) {
19
+ return _jsx(EmptyCell, { column: column, isSelected: isThisCellSelected, onClick: handleCellClick });
20
+ }
21
+ const cellContext = {
22
+ row: rowItem,
23
+ column,
24
+ rowIndex,
25
+ columnIndex,
26
+ tableConfig: config,
27
+ };
28
+ // get and format the cell value
29
+ const cellValue = column.valueFormatter?.(column.valueGetter?.(rowItem, cellContext), cellContext);
30
+ const isThisCellEditMode = isCellEditMode && isThisCellSelected;
31
+ return (_jsx(DefaultTableCell, { onClick: handleCellClick, isSelected: isThisCellSelected, isEditable: column.editable ?? false, children: _jsxs(Form, { ref: formRef, onSubmit: () => undefined, submitChangesOnly: true, children: [_jsx("div", { className: cn({ hidden: !isThisCellEditMode }), children: column.renderCellEditor?.(cellValue, () => null, cellContext) }), _jsx("div", { className: cn({ hidden: isThisCellEditMode }), children: column.renderCell?.(cellValue, cellContext) })] }) }, column.field));
32
+ };
33
+ export { RenderCell };
34
+ //# sourceMappingURL=render-cell.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"render-cell.js","sourceRoot":"","sources":["../../../../../../../../src/ui/components/object-set-table/subcomponents/cells/render-cell/render-cell.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AACrD,OAAO,EAAE,IAAI,EAAE,MAAM,mDAAmD,CAAA;AACxE,OAAO,EAAE,EAAE,EAAE,MAAM,wCAAwC,CAAA;AAC3D,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAUlD,MAAM,UAAU,GAAG,CAAqB,EACtC,OAAO,EACP,MAAM,EACN,QAAQ,EACR,WAAW,EACX,eAAe,GAAG,KAAK,GACJ,EAAE,EAAE;IACvB,MAAM,EAAE,MAAM,EAAE,kBAAkB,EAAE,cAAc,EAAE,eAAe,EAAE,OAAO,EAAE,GAAG,YAAY,CAAC;QAC5F,MAAM;QACN,QAAQ;QACR,WAAW;QACX,eAAe;KAChB,CAAC,CAAA;IAEF;;;OAGG;IACH,IAAI,eAAe,EAAE,CAAC;QACpB,OAAO,KAAC,SAAS,IAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,kBAAkB,EAAE,OAAO,EAAE,eAAe,GAAI,CAAA;IAChG,CAAC;IAED,MAAM,WAAW,GAAmB;QAClC,GAAG,EAAE,OAAO;QACZ,MAAM;QACN,QAAQ;QACR,WAAW;QACX,WAAW,EAAE,MAAM;KACpB,CAAA;IAED,gCAAgC;IAChC,MAAM,SAAS,GAAG,MAAM,CAAC,cAAc,EAAE,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,OAAO,EAAE,WAAW,CAAC,EAAE,WAAW,CAAC,CAAA;IAElG,MAAM,kBAAkB,GAAG,cAAc,IAAI,kBAAkB,CAAA;IAE/D,OAAO,CACL,KAAC,gBAAgB,IAEf,OAAO,EAAE,eAAe,EACxB,UAAU,EAAE,kBAAkB,EAC9B,UAAU,EAAE,MAAM,CAAC,QAAQ,IAAI,KAAK,YAEpC,MAAC,IAAI,IAAC,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,SAAS,EAAE,iBAAiB,mBAC9D,cAAK,SAAS,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,kBAAkB,EAAE,CAAC,YAChD,MAAM,CAAC,gBAAgB,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,WAAW,CAAC,GAC1D,EACN,cAAK,SAAS,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,kBAAkB,EAAE,CAAC,YAAG,MAAM,CAAC,UAAU,EAAE,CAAC,SAAS,EAAE,WAAW,CAAC,GAAO,IAClG,IAVF,MAAM,CAAC,KAAK,CAWA,CACpB,CAAA;AACH,CAAC,CAAA;AAED,OAAO,EAAE,UAAU,EAAE,CAAA"}
@@ -0,0 +1,16 @@
1
+ import type { ColumnDef, DataType } from '../../../types.js';
2
+ interface UseCellLogicProps<T extends DataType> {
3
+ column: ColumnDef<T>;
4
+ rowIndex: number;
5
+ columnIndex: number;
6
+ renderEmptyCell?: boolean;
7
+ }
8
+ declare const useCellLogic: <T extends DataType>({ column, rowIndex, columnIndex, renderEmptyCell, }: UseCellLogicProps<T>) => {
9
+ config: import("../../../types.js").ObjectSetTableConfig<T>;
10
+ isThisCellSelected: boolean;
11
+ isCellEditMode: boolean;
12
+ handleCellClick: (event: React.MouseEvent<HTMLTableCellElement>) => void;
13
+ formRef: import("react").RefObject<import("react-hook-form").UseFormReturn> | null;
14
+ };
15
+ export { useCellLogic };
16
+ //# sourceMappingURL=use-cell-logic.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-cell-logic.d.ts","sourceRoot":"","sources":["../../../../../../../../src/ui/components/object-set-table/subcomponents/cells/render-cell/use-cell-logic.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAI5D,UAAU,iBAAiB,CAAC,CAAC,SAAS,QAAQ;IAC5C,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,CAAA;IACpB,QAAQ,EAAE,MAAM,CAAA;IAChB,WAAW,EAAE,MAAM,CAAA;IACnB,eAAe,CAAC,EAAE,OAAO,CAAA;CAC1B;AACD,QAAA,MAAM,YAAY,GAAI,CAAC,SAAS,QAAQ,EAAE,qDAKvC,iBAAiB,CAAC,CAAC,CAAC;;;;6BAcK,KAAK,CAAC,UAAU,CAAC,oBAAoB,CAAC;;CAkCjE,CAAA;AAED,OAAO,EAAE,YAAY,EAAE,CAAA"}