@economic/taco 2.45.0-alpha.1 → 2.45.0-alpha.10

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 (280) hide show
  1. package/dist/charts/components/Area/AreaChart.d.ts +19 -0
  2. package/dist/charts/components/Bar/BarChart.d.ts +20 -0
  3. package/dist/charts/components/Donut/ActiveShape.d.ts +8 -0
  4. package/dist/charts/components/Donut/CenteredLabel.d.ts +11 -0
  5. package/dist/charts/components/Donut/DonutChart.d.ts +21 -0
  6. package/dist/charts/components/Donut/Legend.d.ts +13 -0
  7. package/dist/charts/components/Donut/util.d.ts +2 -0
  8. package/dist/charts/components/Legend.d.ts +16 -0
  9. package/dist/charts/components/Line/LineChart.d.ts +18 -0
  10. package/dist/charts/components/ResponsiveContainer.d.ts +5 -0
  11. package/dist/charts/components/Tooltip.d.ts +10 -0
  12. package/dist/charts/components/types.d.ts +5 -0
  13. package/dist/charts/utils/color.d.ts +3 -0
  14. package/dist/charts/utils/common.d.ts +37 -0
  15. package/dist/components/Alert/Alert.d.ts +1 -1
  16. package/dist/components/Banner/util.d.ts +0 -1
  17. package/dist/components/Icon/components/Autopay.d.ts +3 -0
  18. package/dist/components/Icon/components/AutopayPaused.d.ts +3 -0
  19. package/dist/components/Icon/components/Experiment.d.ts +3 -0
  20. package/dist/components/Icon/components/Person.d.ts +3 -0
  21. package/dist/components/Icon/components/PersonSolid.d.ts +3 -0
  22. package/dist/components/Icon/components/Wallet.d.ts +3 -0
  23. package/dist/components/Icon/components/index.d.ts +1 -1
  24. package/dist/components/Input/Input.d.ts +1 -1
  25. package/dist/components/Menu/components/Item.d.ts +1 -1
  26. package/dist/components/Menu/components/Link.d.ts +1 -1
  27. package/dist/components/Navigation2/components/Link.d.ts +1 -1
  28. package/dist/components/Pagination/PageNumbers.d.ts +0 -1
  29. package/dist/components/Popover/Popover.d.ts +1 -1
  30. package/dist/components/Provider/Localization.d.ts +2 -0
  31. package/dist/components/RadioGroup/RadioGroup.d.ts +3 -3
  32. package/dist/components/Report/Report.d.ts +1 -1
  33. package/dist/components/Select2/components/Option.d.ts +4 -4
  34. package/dist/components/Select2/components/Search.d.ts +1 -7
  35. package/dist/components/Table3/Table3.d.ts +2 -14
  36. package/dist/components/Table3/components/Columns/Cell/EditingDisplayCell.d.ts +0 -1
  37. package/dist/components/Table3/components/Columns/Internal/EditingActionsMenu.d.ts +3 -4
  38. package/dist/components/Table3/components/Editing/DiscardChangesConfirmationDialog.d.ts +7 -0
  39. package/dist/components/Table3/components/Row/Editing/CreateNewRow.d.ts +13 -0
  40. package/dist/components/Table3/components/Row/Editing/TemporaryRow.d.ts +12 -0
  41. package/dist/components/Table3/features/useEditingState.d.ts +29 -0
  42. package/dist/components/Table3/features/useTableEditing.d.ts +28 -37
  43. package/dist/components/Table3/listeners/useTableEditingListener.d.ts +1 -1
  44. package/dist/components/Table3/types.d.ts +24 -8
  45. package/dist/components/Table3/useTable3.d.ts +6 -0
  46. package/dist/components/Table3/util/editing.d.ts +10 -1
  47. package/dist/components/Tag/Tag.d.ts +1 -1
  48. package/dist/esm/index.css +76 -10
  49. package/dist/esm/packages/taco/src/charts/components/Area/AreaChart.js +67 -0
  50. package/dist/esm/packages/taco/src/charts/components/Area/AreaChart.js.map +1 -0
  51. package/dist/esm/packages/taco/src/charts/components/Bar/BarChart.js +120 -0
  52. package/dist/esm/packages/taco/src/charts/components/Bar/BarChart.js.map +1 -0
  53. package/dist/esm/packages/taco/src/charts/components/Donut/ActiveShape.js +47 -0
  54. package/dist/esm/packages/taco/src/charts/components/Donut/ActiveShape.js.map +1 -0
  55. package/dist/esm/packages/taco/src/charts/components/Donut/CenteredLabel.js +27 -0
  56. package/dist/esm/packages/taco/src/charts/components/Donut/CenteredLabel.js.map +1 -0
  57. package/dist/esm/packages/taco/src/charts/components/Donut/DonutChart.js +170 -0
  58. package/dist/esm/packages/taco/src/charts/components/Donut/DonutChart.js.map +1 -0
  59. package/dist/esm/packages/taco/src/charts/components/Donut/Legend.js +164 -0
  60. package/dist/esm/packages/taco/src/charts/components/Donut/Legend.js.map +1 -0
  61. package/dist/esm/packages/taco/src/charts/components/Donut/util.js +5 -0
  62. package/dist/esm/packages/taco/src/charts/components/Donut/util.js.map +1 -0
  63. package/dist/esm/packages/taco/src/charts/components/Legend.js +145 -0
  64. package/dist/esm/packages/taco/src/charts/components/Legend.js.map +1 -0
  65. package/dist/esm/packages/taco/src/charts/components/Line/LineChart.js +65 -0
  66. package/dist/esm/packages/taco/src/charts/components/Line/LineChart.js.map +1 -0
  67. package/dist/esm/packages/taco/src/charts/components/ResponsiveContainer.js +10 -0
  68. package/dist/esm/packages/taco/src/charts/components/ResponsiveContainer.js.map +1 -0
  69. package/dist/esm/packages/taco/src/charts/components/Tooltip.js +44 -0
  70. package/dist/esm/packages/taco/src/charts/components/Tooltip.js.map +1 -0
  71. package/dist/esm/packages/taco/src/charts/utils/color.js +24 -0
  72. package/dist/esm/packages/taco/src/charts/utils/color.js.map +1 -0
  73. package/dist/esm/packages/taco/src/charts/utils/common.js +34 -0
  74. package/dist/esm/packages/taco/src/charts/utils/common.js.map +1 -0
  75. package/dist/esm/packages/taco/src/components/Accordion/Accordion.js +6 -14
  76. package/dist/esm/packages/taco/src/components/Accordion/Accordion.js.map +1 -1
  77. package/dist/esm/packages/taco/src/components/Alert/Alert.js +2 -0
  78. package/dist/esm/packages/taco/src/components/Alert/Alert.js.map +1 -1
  79. package/dist/esm/packages/taco/src/components/Badge/Badge.js +9 -6
  80. package/dist/esm/packages/taco/src/components/Badge/Badge.js.map +1 -1
  81. package/dist/esm/packages/taco/src/components/Banner/util.js +5 -0
  82. package/dist/esm/packages/taco/src/components/Banner/util.js.map +1 -1
  83. package/dist/esm/packages/taco/src/components/Button/Button.js +2 -1
  84. package/dist/esm/packages/taco/src/components/Button/Button.js.map +1 -1
  85. package/dist/esm/packages/taco/src/components/Button/util.js +1 -1
  86. package/dist/esm/packages/taco/src/components/Button/util.js.map +1 -1
  87. package/dist/esm/packages/taco/src/components/Combobox/useCombobox.js +8 -5
  88. package/dist/esm/packages/taco/src/components/Combobox/useCombobox.js.map +1 -1
  89. package/dist/esm/packages/taco/src/components/Datepicker/useDatepicker.js +1 -0
  90. package/dist/esm/packages/taco/src/components/Datepicker/useDatepicker.js.map +1 -1
  91. package/dist/esm/packages/taco/src/components/Dialog/Dialog.js.map +1 -1
  92. package/dist/esm/packages/taco/src/components/Header/components/AgreementSelector.js +2 -4
  93. package/dist/esm/packages/taco/src/components/Header/components/AgreementSelector.js.map +1 -1
  94. package/dist/esm/packages/taco/src/components/Icon/components/Autopay.js +19 -0
  95. package/dist/esm/packages/taco/src/components/Icon/components/Autopay.js.map +1 -0
  96. package/dist/esm/packages/taco/src/components/Icon/components/AutopayPaused.js +19 -0
  97. package/dist/esm/packages/taco/src/components/Icon/components/AutopayPaused.js.map +1 -0
  98. package/dist/esm/packages/taco/src/components/Icon/components/Experiment.js +20 -0
  99. package/dist/esm/packages/taco/src/components/Icon/components/Experiment.js.map +1 -0
  100. package/dist/esm/packages/taco/src/components/Icon/components/Person.js +19 -0
  101. package/dist/esm/packages/taco/src/components/Icon/components/Person.js.map +1 -0
  102. package/dist/esm/packages/taco/src/components/Icon/components/PersonSolid.js +19 -0
  103. package/dist/esm/packages/taco/src/components/Icon/components/PersonSolid.js.map +1 -0
  104. package/dist/esm/packages/taco/src/components/Icon/components/Wallet.js +19 -0
  105. package/dist/esm/packages/taco/src/components/Icon/components/Wallet.js.map +1 -0
  106. package/dist/esm/packages/taco/src/components/Icon/components/index.js +12 -0
  107. package/dist/esm/packages/taco/src/components/Icon/components/index.js.map +1 -1
  108. package/dist/esm/packages/taco/src/components/Input/util.js +1 -1
  109. package/dist/esm/packages/taco/src/components/Input/util.js.map +1 -1
  110. package/dist/esm/packages/taco/src/components/Listbox/util.js +1 -7
  111. package/dist/esm/packages/taco/src/components/Listbox/util.js.map +1 -1
  112. package/dist/esm/packages/taco/src/components/Menu/components/Content.js +5 -0
  113. package/dist/esm/packages/taco/src/components/Menu/components/Content.js.map +1 -1
  114. package/dist/esm/packages/taco/src/components/ModeSwitch/ModeSwitch.js +2 -2
  115. package/dist/esm/packages/taco/src/components/ModeSwitch/ModeSwitch.js.map +1 -1
  116. package/dist/esm/packages/taco/src/components/Popover/Popover.js.map +1 -1
  117. package/dist/esm/packages/taco/src/components/Provider/Localization.js +5 -3
  118. package/dist/esm/packages/taco/src/components/Provider/Localization.js.map +1 -1
  119. package/dist/esm/packages/taco/src/components/RadioGroup/RadioGroup.js.map +1 -1
  120. package/dist/esm/packages/taco/src/components/Select2/Select2.js +21 -40
  121. package/dist/esm/packages/taco/src/components/Select2/Select2.js.map +1 -1
  122. package/dist/esm/packages/taco/src/components/Select2/components/Option.js +7 -5
  123. package/dist/esm/packages/taco/src/components/Select2/components/Option.js.map +1 -1
  124. package/dist/esm/packages/taco/src/components/Select2/components/Search.js +2 -12
  125. package/dist/esm/packages/taco/src/components/Select2/components/Search.js.map +1 -1
  126. package/dist/esm/packages/taco/src/components/Select2/components/Trigger.js +75 -20
  127. package/dist/esm/packages/taco/src/components/Select2/components/Trigger.js.map +1 -1
  128. package/dist/esm/packages/taco/src/components/Shortcut/Shortcut.js +1 -1
  129. package/dist/esm/packages/taco/src/components/Shortcut/Shortcut.js.map +1 -1
  130. package/dist/esm/packages/taco/src/components/Switch/Switch.js +1 -1
  131. package/dist/esm/packages/taco/src/components/Switch/Switch.js.map +1 -1
  132. package/dist/esm/packages/taco/src/components/Table/hooks/plugins/useRowSelect.js.map +1 -1
  133. package/dist/esm/packages/taco/src/components/Table3/Table3.js +22 -7
  134. package/dist/esm/packages/taco/src/components/Table3/Table3.js.map +1 -1
  135. package/dist/esm/packages/taco/src/components/Table3/components/Columns/Cell/Editing/RowMoveIndicator.js +1 -2
  136. package/dist/esm/packages/taco/src/components/Table3/components/Columns/Cell/Editing/RowMoveIndicator.js.map +1 -1
  137. package/dist/esm/packages/taco/src/components/Table3/components/Columns/Cell/EditingControlCell.js +42 -14
  138. package/dist/esm/packages/taco/src/components/Table3/components/Columns/Cell/EditingControlCell.js.map +1 -1
  139. package/dist/esm/packages/taco/src/components/Table3/components/Columns/Internal/EditingActionsMenu.js +7 -39
  140. package/dist/esm/packages/taco/src/components/Table3/components/Columns/Internal/EditingActionsMenu.js.map +1 -1
  141. package/dist/esm/packages/taco/src/components/Table3/components/Editing/Alert.js +19 -12
  142. package/dist/esm/packages/taco/src/components/Table3/components/Editing/Alert.js.map +1 -1
  143. package/dist/esm/packages/taco/src/components/Table3/components/Editing/DiscardChangesConfirmationDialog.js +34 -0
  144. package/dist/esm/packages/taco/src/components/Table3/components/Editing/DiscardChangesConfirmationDialog.js.map +1 -0
  145. package/dist/esm/packages/taco/src/components/Table3/components/Row/Editing/CreateNewRow.js +73 -0
  146. package/dist/esm/packages/taco/src/components/Table3/components/Row/Editing/CreateNewRow.js.map +1 -0
  147. package/dist/esm/packages/taco/src/components/Table3/components/Row/Editing/SaveStatus.js +2 -14
  148. package/dist/esm/packages/taco/src/components/Table3/components/Row/Editing/SaveStatus.js.map +1 -1
  149. package/dist/esm/packages/taco/src/components/Table3/components/Row/Editing/TemporaryRow.js +96 -0
  150. package/dist/esm/packages/taco/src/components/Table3/components/Row/Editing/TemporaryRow.js.map +1 -0
  151. package/dist/esm/packages/taco/src/components/Table3/components/Row/Row.js +39 -6
  152. package/dist/esm/packages/taco/src/components/Table3/components/Row/Row.js.map +1 -1
  153. package/dist/esm/packages/taco/src/components/Table3/components/Toolbar/Editing/Editing.js +4 -17
  154. package/dist/esm/packages/taco/src/components/Table3/components/Toolbar/Editing/Editing.js.map +1 -1
  155. package/dist/esm/packages/taco/src/components/Table3/features/useEditingState.js +527 -0
  156. package/dist/esm/packages/taco/src/components/Table3/features/useEditingState.js.map +1 -0
  157. package/dist/esm/packages/taco/src/components/Table3/features/useTableEditing.js +71 -399
  158. package/dist/esm/packages/taco/src/components/Table3/features/useTableEditing.js.map +1 -1
  159. package/dist/esm/packages/taco/src/components/Table3/listeners/useTableEditingListener.js +44 -34
  160. package/dist/esm/packages/taco/src/components/Table3/listeners/useTableEditingListener.js.map +1 -1
  161. package/dist/esm/packages/taco/src/components/Table3/useTable3.js +46 -14
  162. package/dist/esm/packages/taco/src/components/Table3/useTable3.js.map +1 -1
  163. package/dist/esm/packages/taco/src/components/Table3/util/editing.js +19 -23
  164. package/dist/esm/packages/taco/src/components/Table3/util/editing.js.map +1 -1
  165. package/dist/esm/packages/taco/src/components/Tag/Tag.js +6 -4
  166. package/dist/esm/packages/taco/src/components/Tag/Tag.js.map +1 -1
  167. package/dist/esm/packages/taco/src/hooks/useLazyEffect.js +1 -1
  168. package/dist/esm/packages/taco/src/hooks/useLazyEffect.js.map +1 -1
  169. package/dist/esm/packages/taco/src/index.js +5 -1
  170. package/dist/esm/packages/taco/src/index.js.map +1 -1
  171. package/dist/esm/packages/taco/src/primitives/BubbleSelect.js +1 -1
  172. package/dist/esm/packages/taco/src/primitives/BubbleSelect.js.map +1 -1
  173. package/dist/esm/packages/taco/src/primitives/Collection/components/Root.js +18 -0
  174. package/dist/esm/packages/taco/src/primitives/Collection/components/Root.js.map +1 -1
  175. package/dist/esm/packages/taco/src/primitives/Listbox2/components/Option.js +0 -5
  176. package/dist/esm/packages/taco/src/primitives/Listbox2/components/Option.js.map +1 -1
  177. package/dist/esm/packages/taco/src/primitives/Listbox2/components/Root.js +1 -0
  178. package/dist/esm/packages/taco/src/primitives/Listbox2/components/Root.js.map +1 -1
  179. package/dist/esm/packages/taco/src/primitives/Sortable/components/Item.js.map +1 -1
  180. package/dist/esm/packages/taco/src/primitives/Table/Core/Table.js +13 -9
  181. package/dist/esm/packages/taco/src/primitives/Table/Core/Table.js.map +1 -1
  182. package/dist/esm/packages/taco/src/primitives/Table/Core/components/Body/EmptyStateBody.js +15 -2
  183. package/dist/esm/packages/taco/src/primitives/Table/Core/components/Body/EmptyStateBody.js.map +1 -1
  184. package/dist/esm/packages/taco/src/primitives/Table/Core/components/Columns/Cell/BuiltIns/GroupedCell.js +30 -17
  185. package/dist/esm/packages/taco/src/primitives/Table/Core/components/Columns/Cell/BuiltIns/GroupedCell.js.map +1 -1
  186. package/dist/esm/packages/taco/src/primitives/Table/Core/components/Columns/Internal/Actions.js +9 -6
  187. package/dist/esm/packages/taco/src/primitives/Table/Core/components/Columns/Internal/Actions.js.map +1 -1
  188. package/dist/esm/packages/taco/src/primitives/Table/Core/components/Columns/Internal/Drag.js +7 -0
  189. package/dist/esm/packages/taco/src/primitives/Table/Core/components/Columns/Internal/Drag.js.map +1 -1
  190. package/dist/esm/packages/taco/src/primitives/Table/Core/components/Columns/Internal/Expansion.js +11 -0
  191. package/dist/esm/packages/taco/src/primitives/Table/Core/components/Columns/Internal/Expansion.js.map +1 -1
  192. package/dist/esm/packages/taco/src/primitives/Table/Core/components/Columns/Internal/Selection.js +3 -3
  193. package/dist/esm/packages/taco/src/primitives/Table/Core/components/Columns/Internal/Selection.js.map +1 -1
  194. package/dist/esm/packages/taco/src/primitives/Table/Core/components/Footer/Footer.js +7 -2
  195. package/dist/esm/packages/taco/src/primitives/Table/Core/components/Footer/Footer.js.map +1 -1
  196. package/dist/esm/packages/taco/src/primitives/Table/Core/components/Row/BuiltIns/DisplayRow.js +6 -3
  197. package/dist/esm/packages/taco/src/primitives/Table/Core/components/Row/BuiltIns/DisplayRow.js.map +1 -1
  198. package/dist/esm/packages/taco/src/primitives/Table/Core/components/Row/Row.js +6 -2
  199. package/dist/esm/packages/taco/src/primitives/Table/Core/components/Row/Row.js.map +1 -1
  200. package/dist/esm/packages/taco/src/primitives/Table/Core/components/Row/RowContext.js +2 -0
  201. package/dist/esm/packages/taco/src/primitives/Table/Core/components/Row/RowContext.js.map +1 -1
  202. package/dist/esm/packages/taco/src/primitives/Table/Core/components/Toolbar/components/Filters/FilterContext.js +6 -0
  203. package/dist/esm/packages/taco/src/primitives/Table/Core/components/Toolbar/components/Filters/FilterContext.js.map +1 -0
  204. package/dist/esm/packages/taco/src/primitives/Table/Core/components/Toolbar/components/Filters/ManageFiltersPopover.js +5 -3
  205. package/dist/esm/packages/taco/src/primitives/Table/Core/components/Toolbar/components/Filters/ManageFiltersPopover.js.map +1 -1
  206. package/dist/esm/packages/taco/src/primitives/Table/Core/components/Toolbar/components/Filters/components/Filter.js +0 -2
  207. package/dist/esm/packages/taco/src/primitives/Table/Core/components/Toolbar/components/Filters/components/Filter.js.map +1 -1
  208. package/dist/esm/packages/taco/src/primitives/Table/Core/components/Toolbar/components/Filters/components/FilterColumn.js +2 -1
  209. package/dist/esm/packages/taco/src/primitives/Table/Core/components/Toolbar/components/Filters/components/FilterColumn.js.map +1 -1
  210. package/dist/esm/packages/taco/src/primitives/Table/Core/components/Toolbar/components/Filters/components/FilterValue.js +11 -2
  211. package/dist/esm/packages/taco/src/primitives/Table/Core/components/Toolbar/components/Filters/components/FilterValue.js.map +1 -1
  212. package/dist/esm/packages/taco/src/primitives/Table/Core/components/Toolbar/components/Search/Search.js +1 -2
  213. package/dist/esm/packages/taco/src/primitives/Table/Core/components/Toolbar/components/Search/Search.js.map +1 -1
  214. package/dist/esm/packages/taco/src/primitives/Table/Core/features/useTableRenderer.js +34 -8
  215. package/dist/esm/packages/taco/src/primitives/Table/Core/features/useTableRenderer.js.map +1 -1
  216. package/dist/esm/packages/taco/src/primitives/Table/Core/useTable.js +2 -2
  217. package/dist/esm/packages/taco/src/primitives/Table/Core/useTable.js.map +1 -1
  218. package/dist/esm/packages/taco/src/primitives/Table/types.js +1 -7
  219. package/dist/esm/packages/taco/src/primitives/Table/types.js.map +1 -1
  220. package/dist/esm/packages/taco/src/primitives/Table/useTableManager/features/useTableRowExpansion.js +2 -1
  221. package/dist/esm/packages/taco/src/primitives/Table/useTableManager/features/useTableRowExpansion.js.map +1 -1
  222. package/dist/esm/packages/taco/src/primitives/Table/useTableManager/features/useTableRowSelection.js +2 -1
  223. package/dist/esm/packages/taco/src/primitives/Table/useTableManager/features/useTableRowSelection.js.map +1 -1
  224. package/dist/esm/packages/taco/src/primitives/Table/useTableManager/features/useTableServerLoading.js +12 -7
  225. package/dist/esm/packages/taco/src/primitives/Table/useTableManager/features/useTableServerLoading.js.map +1 -1
  226. package/dist/esm/packages/taco/src/primitives/Table/useTableManager/listeners/useTableFontSizeListener.js +2 -1
  227. package/dist/esm/packages/taco/src/primitives/Table/useTableManager/listeners/useTableFontSizeListener.js.map +1 -1
  228. package/dist/esm/packages/taco/src/primitives/Table/useTableManager/listeners/useTableSearchListener.js +1 -1
  229. package/dist/esm/packages/taco/src/primitives/Table/useTableManager/listeners/useTableSearchListener.js.map +1 -1
  230. package/dist/esm/packages/taco/src/primitives/Table/useTableManager/useTableManager.js +3 -3
  231. package/dist/esm/packages/taco/src/primitives/Table/useTableManager/useTableManager.js.map +1 -1
  232. package/dist/esm/packages/taco/src/primitives/Table/useTableManager/util/dataTypes.js +6 -2
  233. package/dist/esm/packages/taco/src/primitives/Table/useTableManager/util/dataTypes.js.map +1 -1
  234. package/dist/esm/packages/taco/src/primitives/Table/useTableManager/util/presets.js +7 -1
  235. package/dist/esm/packages/taco/src/primitives/Table/useTableManager/util/presets.js.map +1 -1
  236. package/dist/esm/packages/taco/src/primitives/Table/useTableManager/util/search.js +7 -1
  237. package/dist/esm/packages/taco/src/primitives/Table/useTableManager/util/search.js.map +1 -1
  238. package/dist/esm/packages/taco/src/primitives/Table/useTableManager/util/setup.js +19 -3
  239. package/dist/esm/packages/taco/src/primitives/Table/useTableManager/util/setup.js.map +1 -1
  240. package/dist/esm/packages/taco/src/primitives/Table/useTableManager/util/sorting.js.map +1 -1
  241. package/dist/esm/packages/taco/src/types.js.map +1 -1
  242. package/dist/esm/packages/taco/src/utils/dom.js +32 -11
  243. package/dist/esm/packages/taco/src/utils/dom.js.map +1 -1
  244. package/dist/esm/packages/taco/src/utils/tailwind.js +2 -0
  245. package/dist/esm/packages/taco/src/utils/tailwind.js.map +1 -1
  246. package/dist/esm/packages/taco/tailwind.colors.js +122 -0
  247. package/dist/esm/packages/taco/tailwind.colors.js.map +1 -0
  248. package/dist/index.css +76 -10
  249. package/dist/index.d.ts +5 -0
  250. package/dist/primitives/Collection/components/Root.d.ts +2 -0
  251. package/dist/primitives/Table/Core/Table.d.ts +1 -0
  252. package/dist/primitives/Table/Core/components/Body/EmptyStateBody.d.ts +1 -0
  253. package/dist/primitives/Table/Core/components/Columns/Internal/Actions.d.ts +3 -1
  254. package/dist/primitives/Table/Core/components/Footer/Footer.d.ts +1 -1
  255. package/dist/primitives/Table/Core/components/Row/RowContext.d.ts +2 -0
  256. package/dist/primitives/Table/Core/components/Toolbar/components/Filters/FilterContext.d.ts +3 -0
  257. package/dist/primitives/Table/Core/components/Toolbar/components/Filters/components/Filter.d.ts +0 -1
  258. package/dist/primitives/Table/Core/components/Toolbar/components/Filters/components/FilterColumn.d.ts +0 -3
  259. package/dist/primitives/Table/Core/features/useTableRenderer.d.ts +2 -2
  260. package/dist/primitives/Table/Core/features/useTableStyle.d.ts +3 -3
  261. package/dist/primitives/Table/Core/types.d.ts +5 -0
  262. package/dist/primitives/Table/Core/useTable.d.ts +2 -2
  263. package/dist/primitives/Table/types.d.ts +3 -7
  264. package/dist/primitives/Table/useTableManager/features/useTableRowExpansion.d.ts +2 -1
  265. package/dist/primitives/Table/useTableManager/features/useTableServerLoading.d.ts +3 -3
  266. package/dist/primitives/Table/useTableManager/types.d.ts +0 -1
  267. package/dist/primitives/Table/useTableManager/useTableManager.d.ts +1 -1
  268. package/dist/primitives/Table/useTableManager/util/dataTypes.d.ts +1 -1
  269. package/dist/taco.cjs.development.js +2298 -853
  270. package/dist/taco.cjs.development.js.map +1 -1
  271. package/dist/taco.cjs.production.min.js +1 -1
  272. package/dist/taco.cjs.production.min.js.map +1 -1
  273. package/dist/types.d.ts +1 -1
  274. package/dist/utils/dom.d.ts +2 -1
  275. package/package.json +20 -19
  276. package/tailwind.colors.js +121 -0
  277. package/tailwind.config.js +3 -2
  278. package/dist/components/Table3/components/Row/Editing/CreateRowButton.d.ts +0 -11
  279. package/dist/esm/packages/taco/src/components/Table3/components/Row/Editing/CreateRowButton.js +0 -90
  280. package/dist/esm/packages/taco/src/components/Table3/components/Row/Editing/CreateRowButton.js.map +0 -1
@@ -0,0 +1,527 @@
1
+ import React__default from 'react';
2
+ import { useLocalization } from '../../Provider/Localization.js';
3
+ import { v4 } from 'uuid';
4
+ import { _forOf, _catch } from '../../../../../../node_modules/babel-plugin-transform-async-to-promises/helpers.mjs.js';
5
+ import { isTemporaryRow, willRowMove, TEMPORARY_ROW_ID_PREFIX } from '../util/editing.js';
6
+ import omit from 'lodash-es/omit';
7
+ import setWith from 'lodash-es/setWith';
8
+
9
+ const DELAY_BEFORE_REMOVING_SAVE_STATUS = 3000;
10
+ function reducer(state, action) {
11
+ const {
12
+ type,
13
+ rowId,
14
+ payload
15
+ } = action;
16
+ switch (type) {
17
+ case 'setCellValue':
18
+ {
19
+ const {
20
+ columnId,
21
+ row,
22
+ value
23
+ } = payload;
24
+ return {
25
+ ...state,
26
+ changes: {
27
+ ...state.changes,
28
+ rows: setWith(state.changes.rows, `${rowId}.${columnId}`, value, Object),
29
+ originals: setWith(state.changes.originals, rowId, row, Object)
30
+ }
31
+ };
32
+ }
33
+ case 'removeCellValue':
34
+ {
35
+ const {
36
+ columnId,
37
+ rowIdentityAccessor
38
+ } = payload;
39
+ const changes = omit(state.changes.rows, `${rowId}.${columnId}`);
40
+ // if there are no changes left, remove the row
41
+ if (!Object.keys(changes[rowId]).length) {
42
+ return reducer(state, {
43
+ type: 'removeRow',
44
+ rowId,
45
+ payload: {
46
+ rowIdentityAccessor
47
+ }
48
+ });
49
+ }
50
+ return {
51
+ ...state,
52
+ changes: {
53
+ ...state.changes,
54
+ rows: omit(state.changes.rows, `${rowId}.${columnId}`),
55
+ errors: omit(state.changes.errors, `${rowId}.cells.${columnId}`),
56
+ moveReasons: omit(state.changes.moveReasons, `${rowId}.${columnId}`)
57
+ }
58
+ };
59
+ }
60
+ case 'updateRow':
61
+ {
62
+ const {
63
+ cellErrors,
64
+ moveReasons,
65
+ original,
66
+ value
67
+ } = payload;
68
+ return {
69
+ ...state,
70
+ changes: {
71
+ ...state.changes,
72
+ rows: setWith(state.changes.rows, rowId, value, Object),
73
+ errors: setWith(state.changes.errors, `${rowId}.cells`, cellErrors !== null && cellErrors !== void 0 ? cellErrors : state.changes.errors.cells[rowId], Object),
74
+ originals: setWith(state.changes.originals, rowId, original !== null && original !== void 0 ? original : state.changes.originals[rowId], Object),
75
+ moveReasons: setWith(state.changes.moveReasons, rowId, moveReasons !== null && moveReasons !== void 0 ? moveReasons : state.changes.moveReasons[rowId], Object),
76
+ // status can be undefined, so don't use ??
77
+ status: setWith(state.changes.status, rowId, undefined, Object)
78
+ }
79
+ };
80
+ }
81
+ case 'removeRow':
82
+ {
83
+ const {
84
+ rowIdentityAccessor
85
+ } = payload;
86
+ return {
87
+ ...state,
88
+ changes: {
89
+ ...state.changes,
90
+ rows: omit(state.changes.rows, rowId),
91
+ errors: omit(state.changes.errors, rowId),
92
+ moveReasons: omit(state.changes.moveReasons, rowId),
93
+ originals: omit(state.changes.originals, rowId),
94
+ status: omit(state.changes.status, rowId)
95
+ },
96
+ temporaryRows: state.temporaryRows.filter(row => row[rowIdentityAccessor] !== rowId)
97
+ };
98
+ }
99
+ case 'setRowStatus':
100
+ {
101
+ const {
102
+ status
103
+ } = payload;
104
+ return {
105
+ ...state,
106
+ changes: {
107
+ ...state.changes,
108
+ status: status ? setWith(state.changes.status, rowId, status, Object) : omit(state.changes.status, rowId)
109
+ }
110
+ };
111
+ }
112
+ case 'setRowErrors':
113
+ {
114
+ const {
115
+ ...errors
116
+ } = payload;
117
+ return {
118
+ ...state,
119
+ changes: {
120
+ ...state.changes,
121
+ errors: setWith(state.changes.errors, rowId, errors, Object)
122
+ }
123
+ };
124
+ }
125
+ case 'insertTemporaryRow':
126
+ {
127
+ const {
128
+ value
129
+ } = payload;
130
+ return {
131
+ ...state,
132
+ temporaryRows: state.temporaryRows.concat(value),
133
+ changes: {
134
+ ...state.changes,
135
+ rows: setWith(state.changes.rows, rowId, value, Object),
136
+ originals: setWith(state.changes.originals, rowId, value, Object)
137
+ }
138
+ };
139
+ }
140
+ default:
141
+ return state;
142
+ }
143
+ }
144
+ function usePendingChangesState(handleSave, handleChange, rowIdentityAccessor, validator) {
145
+ const saveChanges = function (table, rowId = undefined) {
146
+ try {
147
+ let _exit = false;
148
+ if (!handleSave) {
149
+ console.warn('Tried to save, but Table has no onEditingSave handler');
150
+ return Promise.resolve(false);
151
+ }
152
+ // sometimes we only want to save one row
153
+ const changes = rowId ? {
154
+ [rowId]: state.changes.rows[rowId]
155
+ } : state.changes.rows;
156
+ let completed = true;
157
+ const _temp9 = _forOf(Object.keys(changes), function (rowId) {
158
+ const status = getRowStatus(rowId);
159
+ return _catch(function () {
160
+ var _changes$rowId;
161
+ function _temp8(_result) {
162
+ return _exit ? _result : Promise.resolve(handleSave(changeSet)).then(function () {
163
+ // cleanup changes, we don't need them after saving
164
+ discardChanges(rowId, table);
165
+ // show the saved status, then remove it after a delay
166
+ setRowStatus(rowId, 'saved');
167
+ setTimeout(() => {
168
+ setRowStatus(rowId, undefined);
169
+ }, DELAY_BEFORE_REMOVING_SAVE_STATUS);
170
+ });
171
+ }
172
+ const rowChanges = (_changes$rowId = changes[rowId]) !== null && _changes$rowId !== void 0 ? _changes$rowId : {};
173
+ // don't try to save if - already saving, or there are known errors
174
+ if (!Object.keys(rowChanges).length || status === 'saving' || status === 'errored') {
175
+ return;
176
+ }
177
+ setRowStatus(rowId, 'saving');
178
+ const changeSet = {
179
+ ...state.changes.originals[rowId],
180
+ ...rowChanges
181
+ };
182
+ // if we had to create a temporary id, delete it first - it's our data, not theirs
183
+ if (isTemporaryRow(changeSet[rowIdentityAccessor])) {
184
+ delete changeSet[rowIdentityAccessor];
185
+ }
186
+ // re-run validation, maybe a cell is already invalid but has never been blurred
187
+ const _temp7 = function () {
188
+ if (validator) {
189
+ return Promise.resolve(validator(changeSet)).then(function (errors) {
190
+ if (errors && Object.keys(errors).length) {
191
+ throw errors;
192
+ }
193
+ });
194
+ }
195
+ }();
196
+ return _temp7 && _temp7.then ? _temp7.then(_temp8) : _temp8(_temp7); // send new data to the server
197
+ }, function (error) {
198
+ var _error$response;
199
+ if (error instanceof ReferenceError || error instanceof TypeError || (error === null || error === void 0 ? void 0 : (_error$response = error.response) === null || _error$response === void 0 ? void 0 : _error$response.status) >= 500) {
200
+ console.error(error);
201
+ }
202
+ // the onEditingSave handler should throw errors when something fails, e.g. validation, network errors etc
203
+ // this code handles those errors and maps them either to row errors or cell specific errors
204
+ let rowError;
205
+ let cellErrors;
206
+ if (typeof error === 'string') {
207
+ rowError = error;
208
+ } else if (error instanceof Error) {
209
+ var _error$response2;
210
+ rowError = error.message;
211
+ // most of our apis return error objects within this shape
212
+ if (typeof ((_error$response2 = error.response) === null || _error$response2 === void 0 ? void 0 : _error$response2.data) === 'object') {
213
+ var _error$response3;
214
+ cellErrors = (_error$response3 = error.response) === null || _error$response3 === void 0 ? void 0 : _error$response3.data;
215
+ }
216
+ } else if (typeof error === 'object') {
217
+ cellErrors = error;
218
+ }
219
+ if (rowError || cellErrors) {
220
+ dispatch({
221
+ type: 'setRowErrors',
222
+ rowId,
223
+ payload: {
224
+ row: rowError,
225
+ cells: cellErrors,
226
+ shouldShowErrorAlert: true
227
+ }
228
+ });
229
+ }
230
+ setRowStatus(rowId, 'errored');
231
+ completed = false;
232
+ });
233
+ }, function () {
234
+ return _exit;
235
+ });
236
+ return Promise.resolve(_temp9 && _temp9.then ? _temp9.then(function (_result3) {
237
+ return _exit ? _result3 : completed;
238
+ }) : _exit ? _temp9 : completed);
239
+ } catch (e) {
240
+ return Promise.reject(e);
241
+ }
242
+ };
243
+ const onCellChanged = function (cell, rowIndex, nextValue, shouldRunUpdaters = true) {
244
+ try {
245
+ function _temp6() {
246
+ var _state$changes$errors11;
247
+ function _temp4() {
248
+ // only set errors and move reasons for the cells we're currently acting on
249
+ // why? because the UX is not good if we set them for cells the user hasn't touched yet
250
+ const cellsToActOn = [cell.column.id, ...Object.keys(updatesForOtherCells)];
251
+ const allCells = cell.row._getAllCellsByColumnId();
252
+ cellsToActOn.forEach(accessor => {
253
+ if (validationErrors[accessor]) {
254
+ nextCellErrors[accessor] = validationErrors[accessor];
255
+ // don't show move indicator for cells with errors, they aren't valid and can't be saved
256
+ delete nextMoveReasons[accessor];
257
+ } else {
258
+ var _allCells$accessor;
259
+ // there isn't any error in this run, remove any error set in state
260
+ delete nextCellErrors[accessor];
261
+ if ((_allCells$accessor = allCells[accessor]) !== null && _allCells$accessor !== void 0 && _allCells$accessor.column.getIsSorted()) {
262
+ // run row move determination
263
+ const reason = willRowMove(cell, nextChanges[accessor], rowIndex, localization);
264
+ // if the row will move based on this change save why, otherwise delete any existing state
265
+ if (reason) {
266
+ nextMoveReasons[accessor] = reason;
267
+ } else {
268
+ delete nextMoveReasons[accessor];
269
+ }
270
+ }
271
+ }
272
+ });
273
+ dispatch({
274
+ type: 'updateRow',
275
+ rowId: cell.row.id,
276
+ payload: {
277
+ cellErrors: nextCellErrors,
278
+ moveReasons: nextMoveReasons,
279
+ value: nextChanges
280
+ }
281
+ });
282
+ }
283
+ // create a projection of the next state, so we can act against it
284
+ const nextChanges = {
285
+ ...changes,
286
+ ...updatesForOtherCells
287
+ };
288
+ const nextMoveReasons = {
289
+ ...state.changes.moveReasons[cell.row.id]
290
+ };
291
+ const nextCellErrors = {
292
+ ...((_state$changes$errors11 = state.changes.errors[cell.row.id]) === null || _state$changes$errors11 === void 0 ? void 0 : _state$changes$errors11.cells)
293
+ };
294
+ // run validation - if there are changes, and if there is an original stored
295
+ let validationErrors = {};
296
+ const _temp3 = function () {
297
+ if (validator && Object.keys(nextChanges).length && state.changes.originals[cell.row.id]) {
298
+ // merge with the original so we get a full row
299
+ const nextRowValue = {
300
+ ...state.changes.originals[cell.row.id],
301
+ ...changes,
302
+ ...updatesForOtherCells
303
+ };
304
+ return Promise.resolve(validator(nextRowValue)).then(function (_validator2) {
305
+ validationErrors = _validator2 !== null && _validator2 !== void 0 ? _validator2 : {};
306
+ });
307
+ }
308
+ }();
309
+ return _temp3 && _temp3.then ? _temp3.then(_temp4) : _temp4(_temp3);
310
+ }
311
+ const changes = nextValue !== undefined ? {
312
+ ...state.changes.rows[cell.row.id],
313
+ [cell.column.id]: nextValue
314
+ } : {
315
+ ...state.changes.rows[cell.row.id]
316
+ };
317
+ if (!Object.keys(changes).length) {
318
+ return Promise.resolve();
319
+ }
320
+ let updatesForOtherCells = {};
321
+ // run the updater handler if there is one, to see if there are any other cells to update
322
+ const _temp5 = function () {
323
+ if (typeof handleChange === 'function' && shouldRunUpdaters) {
324
+ const previousRowValue = {
325
+ ...state.changes.originals[cell.row.id]
326
+ };
327
+ const nextRowValue = {
328
+ ...state.changes.originals[cell.row.id],
329
+ ...changes
330
+ };
331
+ return Promise.resolve(handleChange(cell.column.id, changes[cell.column.id], nextRowValue, previousRowValue)).then(function (_handleChange) {
332
+ updatesForOtherCells = _handleChange !== null && _handleChange !== void 0 ? _handleChange : {};
333
+ });
334
+ }
335
+ }();
336
+ return Promise.resolve(_temp5 && _temp5.then ? _temp5.then(_temp6) : _temp6(_temp5));
337
+ } catch (e) {
338
+ return Promise.reject(e);
339
+ }
340
+ }; // general
341
+ // rows
342
+ const setRowValue = function (rowId, original, value) {
343
+ try {
344
+ function _temp2() {
345
+ dispatch({
346
+ type: 'updateRow',
347
+ rowId,
348
+ payload: {
349
+ cellErrors,
350
+ original,
351
+ value
352
+ }
353
+ });
354
+ }
355
+ let cellErrors;
356
+ const _temp = function () {
357
+ if (validator) {
358
+ const row = {
359
+ ...original,
360
+ ...value
361
+ };
362
+ return Promise.resolve(validator(row)).then(function (_validator) {
363
+ cellErrors = _validator !== null && _validator !== void 0 ? _validator : {};
364
+ });
365
+ }
366
+ }();
367
+ return Promise.resolve(_temp && _temp.then ? _temp.then(_temp2) : _temp2(_temp));
368
+ } catch (e) {
369
+ return Promise.reject(e);
370
+ }
371
+ };
372
+ const localization = useLocalization();
373
+ const [state, dispatch] = React__default.useReducer(reducer, {
374
+ changes: {
375
+ rows: {},
376
+ errors: {},
377
+ moveReasons: {},
378
+ originals: {},
379
+ status: {}
380
+ },
381
+ temporaryRows: []
382
+ });
383
+ function getRowValue(rowId) {
384
+ var _state$changes$rows$r, _state$changes$rows;
385
+ return (_state$changes$rows$r = (_state$changes$rows = state.changes.rows) === null || _state$changes$rows === void 0 ? void 0 : _state$changes$rows[rowId]) !== null && _state$changes$rows$r !== void 0 ? _state$changes$rows$r : undefined;
386
+ }
387
+ function getRowMoveReason(rowId) {
388
+ var _Object$values$, _state$changes$moveRe, _state$changes$moveRe2;
389
+ return (_Object$values$ = Object.values((_state$changes$moveRe = (_state$changes$moveRe2 = state.changes.moveReasons) === null || _state$changes$moveRe2 === void 0 ? void 0 : _state$changes$moveRe2[rowId]) !== null && _state$changes$moveRe !== void 0 ? _state$changes$moveRe : {})[0]) !== null && _Object$values$ !== void 0 ? _Object$values$ : undefined;
390
+ }
391
+ function hasRowErrors(rowId) {
392
+ var _state$changes$errors, _state$changes$errors2, _state$changes$errors3;
393
+ return !!((_state$changes$errors = state.changes.errors[rowId]) !== null && _state$changes$errors !== void 0 && _state$changes$errors.row) || !!Object.keys((_state$changes$errors2 = (_state$changes$errors3 = state.changes.errors[rowId]) === null || _state$changes$errors3 === void 0 ? void 0 : _state$changes$errors3.cells) !== null && _state$changes$errors2 !== void 0 ? _state$changes$errors2 : {}).length;
394
+ }
395
+ function hasRowErrorsShownInAlert(rowId) {
396
+ var _state$changes$errors4;
397
+ return hasRowErrors(rowId) && !!((_state$changes$errors4 = state.changes.errors[rowId]) !== null && _state$changes$errors4 !== void 0 && _state$changes$errors4.shouldShowErrorAlert);
398
+ }
399
+ function hasTemporaryRowErrors() {
400
+ var _state$temporaryRows, _state$changes$errors5, _state$changes$errors6, _state$changes$errors7;
401
+ const newRow = (_state$temporaryRows = state.temporaryRows) === null || _state$temporaryRows === void 0 ? void 0 : _state$temporaryRows[0];
402
+ if (!newRow) {
403
+ return false;
404
+ }
405
+ const rowId = newRow[rowIdentityAccessor];
406
+ return !!((_state$changes$errors5 = state.changes.errors[rowId]) !== null && _state$changes$errors5 !== void 0 && _state$changes$errors5.row) || !!Object.keys((_state$changes$errors6 = (_state$changes$errors7 = state.changes.errors[rowId]) === null || _state$changes$errors7 === void 0 ? void 0 : _state$changes$errors7.cells) !== null && _state$changes$errors6 !== void 0 ? _state$changes$errors6 : {}).length;
407
+ }
408
+ function getRowStatus(rowId) {
409
+ return state.changes.status[rowId];
410
+ }
411
+ function setRowStatus(rowId, status) {
412
+ dispatch({
413
+ type: 'setRowStatus',
414
+ rowId,
415
+ payload: {
416
+ status
417
+ }
418
+ });
419
+ }
420
+ function insertTemporaryRow(data) {
421
+ const newRowId = `${TEMPORARY_ROW_ID_PREFIX}${v4()}`;
422
+ const value = {
423
+ ...data,
424
+ [rowIdentityAccessor]: newRowId
425
+ };
426
+ dispatch({
427
+ type: 'insertTemporaryRow',
428
+ rowId: newRowId,
429
+ payload: {
430
+ value
431
+ }
432
+ });
433
+ return newRowId;
434
+ }
435
+ // cells
436
+ function setCellValue(cell, value) {
437
+ const rowId = cell.row.id;
438
+ const columnId = cell.column.id;
439
+ // update if the change is different to the original value
440
+ if (value !== cell.row.original[columnId]) {
441
+ dispatch({
442
+ type: 'setCellValue',
443
+ rowId,
444
+ payload: {
445
+ columnId,
446
+ row: cell.row.original,
447
+ value
448
+ }
449
+ });
450
+ }
451
+ // otherwise remove any previous change - no point saving the same value
452
+ else if (cell.row.id in state.changes.rows) {
453
+ dispatch({
454
+ type: 'removeCellValue',
455
+ rowId,
456
+ payload: {
457
+ columnId,
458
+ rowIdentityAccessor
459
+ }
460
+ });
461
+ }
462
+ }
463
+ function getCellValue(cell) {
464
+ var _state$changes$rows2, _state$changes$rows2$;
465
+ return (_state$changes$rows2 = state.changes.rows) === null || _state$changes$rows2 === void 0 ? void 0 : (_state$changes$rows2$ = _state$changes$rows2[cell.row.id]) === null || _state$changes$rows2$ === void 0 ? void 0 : _state$changes$rows2$[cell.column.id];
466
+ }
467
+ function getCellError(cell) {
468
+ var _state$changes$errors8, _state$changes$errors9, _state$changes$errors10;
469
+ return (_state$changes$errors8 = state.changes.errors) === null || _state$changes$errors8 === void 0 ? void 0 : (_state$changes$errors9 = _state$changes$errors8[cell.row.id]) === null || _state$changes$errors9 === void 0 ? void 0 : (_state$changes$errors10 = _state$changes$errors9.cells) === null || _state$changes$errors10 === void 0 ? void 0 : _state$changes$errors10[cell.column.id];
470
+ }
471
+ function getErrorsShownInAlert() {
472
+ const rowsWithErrors = Object.keys(state.changes.errors);
473
+ if (!rowsWithErrors.length) {
474
+ return [];
475
+ }
476
+ return rowsWithErrors.filter(hasRowErrorsShownInAlert).map(rowId => ({
477
+ rowId,
478
+ changes: state.changes.rows[rowId],
479
+ errors: state.changes.errors[rowId]
480
+ }));
481
+ }
482
+ function hasSaved() {
483
+ return !!Object.values(state.changes.status).filter(value => value === 'saved').length;
484
+ }
485
+ function hasChanges(rowId) {
486
+ return rowId ? !!state.changes.rows[rowId] : !!Object.keys(state.changes.rows).length;
487
+ }
488
+ function discardChanges(rowId, table) {
489
+ // remove any new rows from pinned state before discarding them
490
+ table.resetRowPinning(true);
491
+ dispatch({
492
+ type: 'removeRow',
493
+ rowId,
494
+ payload: {
495
+ rowIdentityAccessor
496
+ }
497
+ });
498
+ }
499
+ return {
500
+ // row
501
+ setRowValue,
502
+ getRowValue,
503
+ getRowMoveReason,
504
+ hasRowErrors,
505
+ hasRowErrorsShownInAlert,
506
+ hasTemporaryRowErrors,
507
+ getRowStatus,
508
+ setRowStatus,
509
+ // cells
510
+ setCellValue,
511
+ getCellValue,
512
+ getCellError,
513
+ onCellChanged,
514
+ // general
515
+ getErrorsShownInAlert,
516
+ hasChanges,
517
+ saveChanges,
518
+ discardChanges,
519
+ hasSaved,
520
+ // new rows
521
+ insertTemporaryRow,
522
+ temporaryRows: state.temporaryRows
523
+ };
524
+ }
525
+
526
+ export { usePendingChangesState };
527
+ //# sourceMappingURL=useEditingState.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useEditingState.js","sources":["../../../../../../../../src/components/Table3/features/useEditingState.ts"],"sourcesContent":["import React from 'react';\nimport { Table as ReactTable, Cell as ReactTableCell } from '@tanstack/react-table';\nimport { v4 as uuid } from 'uuid';\nimport omit from 'lodash/omit';\nimport setWith from 'lodash/setWith';\nimport { Table3EditingChangeHandler, Table3EditingSaveHandler, Table3EditingValidatorFn } from '../types';\nimport { isTemporaryRow, TEMPORARY_ROW_ID_PREFIX, willRowMove } from '../util/editing';\nimport { useLocalization } from '../../Provider/Localization';\n\nconst DELAY_BEFORE_REMOVING_SAVE_STATUS = 3000;\n\ntype EditingError = {\n row: string;\n cells: Record<string, string>;\n shouldShowErrorAlert: boolean;\n};\ntype EditingRowMoveReason = Record<string, 'search' | 'sorting' | 'filter'>;\ntype EditingSaveState = 'saving' | 'saved' | 'errored';\ntype EditingChangeset<TType = unknown> = Partial<TType>;\ntype EditingState<TType = unknown> = {\n changes: {\n rows: Record<string, EditingChangeset<TType>>;\n errors: Record<string, EditingError>;\n moveReasons: Record<string, EditingRowMoveReason>;\n originals: Record<string, TType>;\n status: Record<string, EditingSaveState>;\n };\n temporaryRows: TType[];\n};\ntype EditingStateAction = {\n type:\n | 'setCellValue'\n | 'removeCellValue'\n | 'updateRow'\n | 'mergeRowValue'\n | 'removeRow'\n | 'setRowStatus'\n | 'setRowErrors'\n | 'insertTemporaryRow';\n rowId: string;\n payload?: any;\n};\n\nfunction reducer<TType = unknown>(state: EditingState<TType>, action: EditingStateAction) {\n const { type, rowId, payload } = action;\n\n switch (type) {\n case 'setCellValue': {\n const { columnId, row, value } = payload;\n return {\n ...state,\n changes: {\n ...state.changes,\n rows: setWith(state.changes.rows, `${rowId}.${columnId}`, value, Object),\n originals: setWith(state.changes.originals, rowId, row, Object),\n },\n };\n }\n\n case 'removeCellValue': {\n const { columnId, rowIdentityAccessor } = payload;\n const changes = omit(state.changes.rows, `${rowId}.${columnId}`);\n\n // if there are no changes left, remove the row\n if (!Object.keys(changes[rowId]).length) {\n return reducer(state, { type: 'removeRow', rowId, payload: { rowIdentityAccessor } });\n }\n\n return {\n ...state,\n changes: {\n ...state.changes,\n rows: omit(state.changes.rows, `${rowId}.${columnId}`),\n errors: omit(state.changes.errors, `${rowId}.cells.${columnId}`),\n moveReasons: omit(state.changes.moveReasons, `${rowId}.${columnId}`),\n },\n };\n }\n\n case 'updateRow': {\n const { cellErrors, moveReasons, original, value } = payload;\n return {\n ...state,\n changes: {\n ...state.changes,\n rows: setWith(state.changes.rows, rowId, value, Object),\n errors: setWith(\n state.changes.errors,\n `${rowId}.cells`,\n cellErrors ?? state.changes.errors.cells[rowId],\n Object\n ),\n originals: setWith(state.changes.originals, rowId, original ?? state.changes.originals[rowId], Object),\n moveReasons: setWith(\n state.changes.moveReasons,\n rowId,\n moveReasons ?? state.changes.moveReasons[rowId],\n Object\n ),\n // status can be undefined, so don't use ??\n status: setWith(state.changes.status, rowId, undefined, Object),\n },\n };\n }\n\n case 'removeRow': {\n const { rowIdentityAccessor } = payload;\n return {\n ...state,\n changes: {\n ...state.changes,\n rows: omit(state.changes.rows, rowId),\n errors: omit(state.changes.errors, rowId),\n moveReasons: omit(state.changes.moveReasons, rowId),\n originals: omit(state.changes.originals, rowId),\n status: omit(state.changes.status, rowId),\n },\n temporaryRows: state.temporaryRows.filter(row => row[rowIdentityAccessor] !== rowId),\n };\n }\n\n case 'setRowStatus': {\n const { status } = payload;\n return {\n ...state,\n changes: {\n ...state.changes,\n status: status ? setWith(state.changes.status, rowId, status, Object) : omit(state.changes.status, rowId),\n },\n };\n }\n\n case 'setRowErrors': {\n const { ...errors } = payload;\n return {\n ...state,\n changes: {\n ...state.changes,\n errors: setWith(state.changes.errors, rowId, errors, Object),\n },\n };\n }\n\n case 'insertTemporaryRow': {\n const { value } = payload;\n return {\n ...state,\n temporaryRows: state.temporaryRows.concat(value),\n changes: {\n ...state.changes,\n rows: setWith(state.changes.rows, rowId, value, Object),\n originals: setWith(state.changes.originals, rowId, value, Object),\n },\n };\n }\n\n default:\n return state;\n }\n}\n\nexport function usePendingChangesState<TType = unknown>(\n handleSave: Table3EditingSaveHandler<TType> | undefined,\n handleChange: Table3EditingChangeHandler<TType> | undefined,\n rowIdentityAccessor: keyof TType,\n validator: Table3EditingValidatorFn<TType> | undefined\n) {\n const localization = useLocalization();\n const [state, dispatch] = React.useReducer(reducer, {\n changes: { rows: {}, errors: {}, moveReasons: {}, originals: {}, status: {} },\n temporaryRows: [],\n });\n\n // rows\n async function setRowValue<T extends TType>(rowId: string, original: T, value: Partial<T>) {\n let cellErrors;\n\n if (validator) {\n const row = { ...original, ...value } as T;\n cellErrors = ((await validator(row)) ?? {}) as Record<string, string>;\n }\n\n dispatch({\n type: 'updateRow',\n rowId,\n payload: { cellErrors, original, value },\n });\n }\n\n function getRowValue(rowId: string) {\n return state.changes.rows?.[rowId] ?? undefined;\n }\n\n function getRowMoveReason(rowId: string) {\n return Object.values(state.changes.moveReasons?.[rowId] ?? {})[0] ?? undefined;\n }\n\n function hasRowErrors(rowId: string) {\n return !!state.changes.errors[rowId]?.row || !!Object.keys(state.changes.errors[rowId]?.cells ?? {}).length;\n }\n\n function hasRowErrorsShownInAlert(rowId: string) {\n return hasRowErrors(rowId) && !!state.changes.errors[rowId]?.shouldShowErrorAlert;\n }\n\n function hasTemporaryRowErrors<T extends TType>() {\n const newRow = state.temporaryRows?.[0] as T | undefined;\n\n if (!newRow) {\n return false;\n }\n\n const rowId = newRow[rowIdentityAccessor as string];\n return !!state.changes.errors[rowId]?.row || !!Object.keys(state.changes.errors[rowId]?.cells ?? {}).length;\n }\n\n function getRowStatus(rowId: string) {\n return state.changes.status[rowId];\n }\n\n function setRowStatus(rowId: string, status: EditingSaveState | undefined) {\n dispatch({\n type: 'setRowStatus',\n rowId,\n payload: {\n status,\n },\n });\n }\n\n function insertTemporaryRow<T extends TType>(data: Partial<T>) {\n const newRowId = `${TEMPORARY_ROW_ID_PREFIX}${uuid()}`;\n const value: Partial<TType> = {\n ...data,\n [rowIdentityAccessor]: newRowId,\n };\n\n dispatch({\n type: 'insertTemporaryRow',\n rowId: newRowId,\n payload: { value },\n });\n\n return newRowId;\n }\n\n // cells\n function setCellValue<T extends TType>(cell: ReactTableCell<T, unknown>, value: unknown) {\n const rowId = cell.row.id;\n const columnId = cell.column.id;\n\n // update if the change is different to the original value\n if (value !== cell.row.original[columnId]) {\n dispatch({\n type: 'setCellValue',\n rowId,\n payload: {\n columnId,\n row: cell.row.original,\n value,\n },\n });\n }\n // otherwise remove any previous change - no point saving the same value\n else if (cell.row.id in state.changes.rows) {\n dispatch({\n type: 'removeCellValue',\n rowId,\n payload: {\n columnId,\n rowIdentityAccessor,\n },\n });\n }\n }\n\n function getCellValue<T extends TType>(cell: ReactTableCell<T, unknown>): unknown | undefined {\n return state.changes.rows?.[cell.row.id]?.[cell.column.id];\n }\n\n function getCellError<T extends TType>(cell: ReactTableCell<T, unknown>): string | undefined {\n return state.changes.errors?.[cell.row.id]?.cells?.[cell.column.id];\n }\n\n async function onCellChanged<T extends TType>(\n cell: ReactTableCell<T, unknown>,\n rowIndex: number,\n nextValue,\n shouldRunUpdaters = true\n ) {\n const changes =\n nextValue !== undefined\n ? { ...state.changes.rows[cell.row.id], [cell.column.id]: nextValue }\n : { ...state.changes.rows[cell.row.id] };\n\n if (!Object.keys(changes).length) {\n return;\n }\n\n let updatesForOtherCells: Partial<T> = {};\n\n // run the updater handler if there is one, to see if there are any other cells to update\n if (typeof handleChange === 'function' && shouldRunUpdaters) {\n const previousRowValue = {\n ...state.changes.originals[cell.row.id],\n //...getRowChangeset(updatersRef.current[cell.row.id], rowIdentityAccessor),\n };\n const nextRowValue = {\n ...state.changes.originals[cell.row.id],\n ...changes,\n };\n updatesForOtherCells = ((await handleChange(\n cell.column.id,\n changes[cell.column.id],\n nextRowValue,\n previousRowValue\n )) ?? {}) as Partial<T>;\n }\n\n // create a projection of the next state, so we can act against it\n const nextChanges = { ...changes, ...updatesForOtherCells };\n const nextMoveReasons: EditingRowMoveReason = { ...state.changes.moveReasons[cell.row.id] };\n const nextCellErrors: Record<string, string> = { ...state.changes.errors[cell.row.id]?.cells };\n\n // run validation - if there are changes, and if there is an original stored\n let validationErrors: Record<string, string> = {};\n\n if (validator && Object.keys(nextChanges).length && state.changes.originals[cell.row.id]) {\n // merge with the original so we get a full row\n const nextRowValue = { ...state.changes.originals[cell.row.id], ...changes, ...updatesForOtherCells };\n validationErrors = ((await validator(nextRowValue)) ?? {}) as Record<string, string>;\n }\n\n // only set errors and move reasons for the cells we're currently acting on\n // why? because the UX is not good if we set them for cells the user hasn't touched yet\n const cellsToActOn = [cell.column.id, ...Object.keys(updatesForOtherCells)];\n const allCells = cell.row._getAllCellsByColumnId();\n\n cellsToActOn.forEach(accessor => {\n if (validationErrors[accessor]) {\n nextCellErrors[accessor] = validationErrors[accessor];\n // don't show move indicator for cells with errors, they aren't valid and can't be saved\n delete nextMoveReasons[accessor];\n } else {\n // there isn't any error in this run, remove any error set in state\n delete nextCellErrors[accessor];\n\n if (allCells[accessor]?.column.getIsSorted()) {\n // run row move determination\n const reason = willRowMove(cell, nextChanges[accessor], rowIndex, localization);\n\n // if the row will move based on this change save why, otherwise delete any existing state\n if (reason) {\n nextMoveReasons[accessor] = reason;\n } else {\n delete nextMoveReasons[accessor];\n }\n }\n }\n });\n\n dispatch({\n type: 'updateRow',\n rowId: cell.row.id,\n payload: {\n cellErrors: nextCellErrors,\n moveReasons: nextMoveReasons,\n value: nextChanges,\n },\n });\n }\n\n // general\n function getErrorsShownInAlert<T extends TType>() {\n const rowsWithErrors = Object.keys(state.changes.errors);\n\n if (!rowsWithErrors.length) {\n return [];\n }\n\n return rowsWithErrors.filter(hasRowErrorsShownInAlert).map(rowId => ({\n rowId,\n changes: state.changes.rows[rowId] as EditingChangeset<T>,\n errors: state.changes.errors[rowId],\n }));\n }\n\n function hasSaved() {\n return !!Object.values(state.changes.status).filter(value => value === 'saved').length;\n }\n\n function hasChanges(rowId?: string) {\n return rowId ? !!state.changes.rows[rowId] : !!Object.keys(state.changes.rows).length;\n }\n\n async function saveChanges<T extends TType>(table: ReactTable<T>, rowId: string | undefined = undefined): Promise<boolean> {\n if (!handleSave) {\n console.warn('Tried to save, but Table has no onEditingSave handler');\n return false;\n }\n\n // sometimes we only want to save one row\n const changes = rowId ? { [rowId]: state.changes.rows[rowId] } : state.changes.rows;\n\n let completed = true;\n\n for (const rowId of Object.keys(changes)) {\n const status = getRowStatus(rowId);\n\n try {\n const rowChanges = changes[rowId] ?? {};\n\n // don't try to save if - already saving, or there are known errors\n if (!Object.keys(rowChanges).length || status === 'saving' || status === 'errored') {\n continue;\n }\n\n setRowStatus(rowId, 'saving');\n\n const changeSet = { ...state.changes.originals[rowId], ...rowChanges };\n\n // if we had to create a temporary id, delete it first - it's our data, not theirs\n if (isTemporaryRow(changeSet[rowIdentityAccessor as string])) {\n delete changeSet[rowIdentityAccessor];\n }\n\n // re-run validation, maybe a cell is already invalid but has never been blurred\n if (validator) {\n const errors = await validator(changeSet);\n\n if (errors && Object.keys(errors).length) {\n throw errors;\n }\n }\n\n // send new data to the server\n await handleSave(changeSet);\n\n // cleanup changes, we don't need them after saving\n discardChanges(rowId, table);\n\n // show the saved status, then remove it after a delay\n setRowStatus(rowId, 'saved');\n setTimeout(() => {\n setRowStatus(rowId, undefined);\n }, DELAY_BEFORE_REMOVING_SAVE_STATUS);\n } catch (error) {\n if (error instanceof ReferenceError || error instanceof TypeError || (error as any)?.response?.status >= 500) {\n console.error(error);\n }\n\n // the onEditingSave handler should throw errors when something fails, e.g. validation, network errors etc\n // this code handles those errors and maps them either to row errors or cell specific errors\n let rowError: string | undefined;\n let cellErrors;\n\n if (typeof error === 'string') {\n rowError = error;\n } else if (error instanceof Error) {\n rowError = error.message;\n\n // most of our apis return error objects within this shape\n if (typeof (error as any).response?.data === 'object') {\n cellErrors = (error as any).response?.data;\n }\n } else if (typeof error === 'object') {\n cellErrors = error;\n }\n\n if (rowError || cellErrors) {\n dispatch({\n type: 'setRowErrors',\n rowId,\n payload: {\n row: rowError,\n cells: cellErrors,\n shouldShowErrorAlert: true,\n },\n });\n }\n\n setRowStatus(rowId, 'errored');\n completed = false;\n }\n }\n\n return completed;\n }\n\n function discardChanges<T extends TType>(rowId: string, table: ReactTable<T>) {\n // remove any new rows from pinned state before discarding them\n table.resetRowPinning(true);\n\n dispatch({\n type: 'removeRow',\n rowId,\n payload: { rowIdentityAccessor },\n });\n }\n\n return {\n // row\n setRowValue,\n getRowValue,\n getRowMoveReason,\n hasRowErrors,\n hasRowErrorsShownInAlert,\n hasTemporaryRowErrors,\n getRowStatus,\n setRowStatus,\n // cells\n setCellValue,\n getCellValue,\n getCellError,\n onCellChanged,\n // general\n getErrorsShownInAlert,\n hasChanges,\n saveChanges,\n discardChanges,\n hasSaved,\n // new rows\n insertTemporaryRow,\n temporaryRows: state.temporaryRows,\n };\n}\n"],"names":["DELAY_BEFORE_REMOVING_SAVE_STATUS","reducer","state","action","type","rowId","payload","columnId","row","value","changes","rows","setWith","Object","originals","rowIdentityAccessor","omit","keys","length","errors","moveReasons","cellErrors","original","cells","status","undefined","temporaryRows","filter","concat","usePendingChangesState","handleSave","handleChange","validator","saveChanges","table","console","warn","Promise","resolve","completed","_temp9","_forOf","getRowStatus","_catch","_changes$rowId","_temp8","_result","_exit","changeSet","then","discardChanges","setRowStatus","setTimeout","rowChanges","isTemporaryRow","_temp7","error","_error$response","ReferenceError","TypeError","response","rowError","Error","_error$response2","message","data","_error$response3","dispatch","shouldShowErrorAlert","_result3","e","reject","onCellChanged","cell","rowIndex","nextValue","shouldRunUpdaters","cellsToActOn","column","id","updatesForOtherCells","allCells","_getAllCellsByColumnId","forEach","accessor","validationErrors","nextCellErrors","nextMoveReasons","_allCells$accessor","getIsSorted","reason","willRowMove","nextChanges","localization","_state$changes$errors11","_temp3","nextRowValue","_validator2","_temp4","_temp5","previousRowValue","_handleChange","_temp6","setRowValue","_temp","_validator","_temp2","useLocalization","React","useReducer","getRowValue","_state$changes$rows$r","_state$changes$rows","getRowMoveReason","_Object$values$","values","_state$changes$moveRe","_state$changes$moveRe2","hasRowErrors","_state$changes$errors","_state$changes$errors2","_state$changes$errors3","hasRowErrorsShownInAlert","_state$changes$errors4","hasTemporaryRowErrors","newRow","_state$temporaryRows","_state$changes$errors5","_state$changes$errors6","_state$changes$errors7","insertTemporaryRow","newRowId","TEMPORARY_ROW_ID_PREFIX","uuid","setCellValue","getCellValue","_state$changes$rows2","_state$changes$rows2$","getCellError","_state$changes$errors8","_state$changes$errors9","_state$changes$errors10","getErrorsShownInAlert","rowsWithErrors","map","hasSaved","hasChanges","resetRowPinning"],"mappings":"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"}