@wix/patterns 1.31.0 → 1.33.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 (338) hide show
  1. package/dist/cjs/components/Collapse/Collapse.st.css.js +3 -3
  2. package/dist/cjs/components/Collapse/Collapse.st.css.js.map +1 -1
  3. package/dist/cjs/components/CollectionTable/CollectionTable.js +10 -10
  4. package/dist/cjs/components/CollectionTable/CollectionTable.js.map +1 -1
  5. package/dist/cjs/components/CollectionToolbar/CollectionToolbar.st.css.js +5 -5
  6. package/dist/cjs/components/CollectionToolbar/CollectionToolbar.st.css.js.map +1 -1
  7. package/dist/cjs/components/CollectionToolbar/SearchOrCustomFilter.st.css.js +3 -3
  8. package/dist/cjs/components/CollectionToolbar/SearchOrCustomFilter.st.css.js.map +1 -1
  9. package/dist/cjs/components/CollectionToolbarFilters/CollectionToolbarFilters.js.map +1 -1
  10. package/dist/cjs/components/CollectionViewsDropdown/AutoCompleteReadonly.st.css.js +2 -2
  11. package/dist/cjs/components/CollectionViewsDropdown/AutoCompleteReadonly.st.css.js.map +1 -1
  12. package/dist/cjs/components/CollectionViewsDropdown/ViewsDropdown.st.css.js +2 -2
  13. package/dist/cjs/components/CollectionViewsDropdown/ViewsDropdown.st.css.js.map +1 -1
  14. package/dist/cjs/components/CtaProps.js.map +1 -1
  15. package/dist/cjs/components/CustomFieldsWidget/CustomFieldsViewWidgetSection.st.css.js +3 -3
  16. package/dist/cjs/components/CustomFieldsWidget/CustomFieldsViewWidgetSection.st.css.js.map +1 -1
  17. package/dist/cjs/components/DragAndDrop/CollectionDragAndDropState.js +8 -12
  18. package/dist/cjs/components/DragAndDrop/CollectionDragAndDropState.js.map +1 -1
  19. package/dist/cjs/components/DragAndDrop/DragAndDrop.js.map +1 -1
  20. package/dist/cjs/components/DragAndDrop/DragAndDropCategoriesProps.js +4 -0
  21. package/dist/cjs/components/DragAndDrop/DragAndDropCategoriesProps.js.map +1 -0
  22. package/dist/cjs/components/DragAndDrop/DragAndDropState.js +5 -1
  23. package/dist/cjs/components/DragAndDrop/DragAndDropState.js.map +1 -1
  24. package/dist/cjs/components/DragHandle/DragHandle.st.css.js +2 -2
  25. package/dist/cjs/components/DragHandle/DragHandle.st.css.js.map +1 -1
  26. package/dist/cjs/components/Fade/Fade.st.css.js +2 -2
  27. package/dist/cjs/components/Fade/Fade.st.css.js.map +1 -1
  28. package/dist/cjs/components/Grid/Grid.js +6 -6
  29. package/dist/cjs/components/Grid/Grid.js.map +1 -1
  30. package/dist/cjs/components/Grid/GridItemBaseProps.js.map +1 -1
  31. package/dist/cjs/components/GridSections/GridSectionsState.js.map +1 -1
  32. package/dist/cjs/components/Heading/Heading.st.css.js +2 -2
  33. package/dist/cjs/components/Heading/Heading.st.css.js.map +1 -1
  34. package/dist/cjs/components/InputOverflow/InputOverflow.st.css.js +2 -2
  35. package/dist/cjs/components/InputOverflow/InputOverflow.st.css.js.map +1 -1
  36. package/dist/cjs/components/MaxHeightText/MaxHeightText.st.css.js +2 -2
  37. package/dist/cjs/components/MaxHeightText/MaxHeightText.st.css.js.map +1 -1
  38. package/dist/cjs/components/MaxLines/MaxLines.st.css.js +2 -2
  39. package/dist/cjs/components/MaxLines/MaxLines.st.css.js.map +1 -1
  40. package/dist/cjs/components/MultiBulkActionToolbar/MultiBulkActionToolbar.st.css.js +2 -2
  41. package/dist/cjs/components/MultiBulkActionToolbar/MultiBulkActionToolbar.st.css.js.map +1 -1
  42. package/dist/cjs/components/NestedTable/NestedTable.js +3 -3
  43. package/dist/cjs/components/NestedTable/NestedTable.js.map +1 -1
  44. package/dist/cjs/components/NestedTable/NestedTable.uni.driver.js +2 -0
  45. package/dist/cjs/components/NestedTable/NestedTable.uni.driver.js.map +1 -1
  46. package/dist/cjs/components/NestedTable/NestedTableParentCell.js +24 -13
  47. package/dist/cjs/components/NestedTable/NestedTableParentCell.js.map +1 -1
  48. package/dist/cjs/components/NestedTable/NestedTableParentCell.uni.driver.js +9 -2
  49. package/dist/cjs/components/NestedTable/NestedTableParentCell.uni.driver.js.map +1 -1
  50. package/dist/cjs/components/NestedTable/NestedTableRow.js +6 -2
  51. package/dist/cjs/components/NestedTable/NestedTableRow.js.map +1 -1
  52. package/dist/cjs/components/NestedTable/NestedTableRow.st.css.js +5 -5
  53. package/dist/cjs/components/NestedTable/NestedTableRow.st.css.js.map +1 -1
  54. package/dist/cjs/components/NestedTable/NestedTableWSRTable.js +2 -2
  55. package/dist/cjs/components/NestedTable/NestedTableWSRTable.js.map +1 -1
  56. package/dist/cjs/components/NestedTable/useModeTableProps.js.map +1 -1
  57. package/dist/cjs/components/NestedTableDragAndDrop/NestedTableDragAndDrop.js +1 -1
  58. package/dist/cjs/components/NestedTableDragAndDrop/NestedTableDragAndDrop.js.map +1 -1
  59. package/dist/cjs/components/NestedTableDragAndDrop/NestedTableDragAndDropContext.js +13 -4
  60. package/dist/cjs/components/NestedTableDragAndDrop/NestedTableDragAndDropContext.js.map +1 -1
  61. package/dist/cjs/components/NestedTableDragAndDrop/NestedTableDragAndDropState.js +176 -47
  62. package/dist/cjs/components/NestedTableDragAndDrop/NestedTableDragAndDropState.js.map +1 -1
  63. package/dist/cjs/components/NestedTableDragAndDrop/NestedTableGhostIndentationCell.js +1 -1
  64. package/dist/cjs/components/NestedTableDragAndDrop/NestedTableGhostIndentationCell.js.map +1 -1
  65. package/dist/cjs/components/NestedTableDragAndDrop/NestedTableGhostRow.uni.driver.js +2 -9
  66. package/dist/cjs/components/NestedTableDragAndDrop/NestedTableGhostRow.uni.driver.js.map +1 -1
  67. package/dist/cjs/components/NestedTableDragAndDrop/validateNestedTableDragAndDropProps.js +19 -0
  68. package/dist/cjs/components/NestedTableDragAndDrop/validateNestedTableDragAndDropProps.js.map +1 -0
  69. package/dist/cjs/components/PickerContent/PickerContent.st.css.js +2 -2
  70. package/dist/cjs/components/PickerContent/PickerContent.st.css.js.map +1 -1
  71. package/dist/cjs/components/PickerContent/PickerContentAdditionalStep.st.css.js +4 -4
  72. package/dist/cjs/components/PickerContent/PickerContentAdditionalStep.st.css.js.map +1 -1
  73. package/dist/cjs/components/PickerTableListItem/PickerTableListItem.st.css.js +2 -2
  74. package/dist/cjs/components/PickerTableListItem/PickerTableListItem.st.css.js.map +1 -1
  75. package/dist/cjs/components/ScrollableContent/ScrollableContent.st.css.js +2 -2
  76. package/dist/cjs/components/ScrollableContent/ScrollableContent.st.css.js.map +1 -1
  77. package/dist/cjs/components/SidePanelModal/SidePanelModal.js +8 -2
  78. package/dist/cjs/components/SidePanelModal/SidePanelModal.js.map +1 -1
  79. package/dist/cjs/components/SkeletonCard/SkeletonCard.st.css.js +3 -3
  80. package/dist/cjs/components/SkeletonCard/SkeletonCard.st.css.js.map +1 -1
  81. package/dist/cjs/components/SlidingModal/SlidingModal.js +20 -7
  82. package/dist/cjs/components/SlidingModal/SlidingModal.js.map +1 -1
  83. package/dist/cjs/components/SlidingModal/SlidingModal.st.css +6 -2
  84. package/dist/cjs/components/SlidingModal/SlidingModal.st.css.js +2 -2
  85. package/dist/cjs/components/SlidingModal/SlidingModal.st.css.js.map +1 -1
  86. package/dist/cjs/components/Table/TableVirtualHeader.st.css.js +2 -2
  87. package/dist/cjs/components/Table/TableVirtualHeader.st.css.js.map +1 -1
  88. package/dist/cjs/components/TableGridSwitch/TableGridSwitch.js +4 -4
  89. package/dist/cjs/components/TableGridSwitch/TableGridSwitch.js.map +1 -1
  90. package/dist/cjs/components/TabsFilter/TabsFilter.st.css.js +3 -3
  91. package/dist/cjs/components/TabsFilter/TabsFilter.st.css.js.map +1 -1
  92. package/dist/cjs/components/Tags/ManageTags/ManageTagsModal/ManageTagsModal.st.css.js +2 -2
  93. package/dist/cjs/components/Tags/ManageTags/ManageTagsModal/ManageTagsModal.st.css.js.map +1 -1
  94. package/dist/cjs/components/ToolbarCollection/ToolbarCollection.js +3 -3
  95. package/dist/cjs/components/ToolbarCollection/ToolbarCollection.js.map +1 -1
  96. package/dist/cjs/components/ToolbarItemBox/ToolbarItemBox.st.css.js +2 -2
  97. package/dist/cjs/components/ToolbarItemBox/ToolbarItemBox.st.css.js.map +1 -1
  98. package/dist/cjs/components/common.st.css.js +4 -4
  99. package/dist/cjs/components/common.st.css.js.map +1 -1
  100. package/dist/cjs/hooks/useCreateNestedOptimisticActions.js +3 -1
  101. package/dist/cjs/hooks/useCreateNestedOptimisticActions.js.map +1 -1
  102. package/dist/cjs/hooks/useOptionalCachedState.js +3 -3
  103. package/dist/cjs/hooks/useOptionalCachedState.js.map +1 -1
  104. package/dist/cjs/hooks/useSyncCollectionOnEntityReturn.js +90 -0
  105. package/dist/cjs/hooks/useSyncCollectionOnEntityReturn.js.map +1 -0
  106. package/dist/cjs/hooks/useSyncCollectionOnEntityUpdate.js +43 -0
  107. package/dist/cjs/hooks/useSyncCollectionOnEntityUpdate.js.map +1 -0
  108. package/dist/cjs/model/tableColumn.js.map +1 -1
  109. package/dist/cjs/state/DragAndDrop/createOptimisticActionsOrderByModeReaction.js +19 -0
  110. package/dist/cjs/state/DragAndDrop/createOptimisticActionsOrderByModeReaction.js.map +1 -0
  111. package/dist/cjs/state/EntityPage/EntityPageState.js +4 -5
  112. package/dist/cjs/state/EntityPage/EntityPageState.js.map +1 -1
  113. package/dist/cjs/state/NestedTableState/NestedCollectionLevelDescriptor.js.map +1 -1
  114. package/dist/cjs/state/NestedTableState/NestedCollectionNodeState.js +15 -5
  115. package/dist/cjs/state/NestedTableState/NestedCollectionNodeState.js.map +1 -1
  116. package/dist/cjs/state/NestedTableState/NestedCollectionState.js +11 -1
  117. package/dist/cjs/state/NestedTableState/NestedCollectionState.js.map +1 -1
  118. package/dist/cjs/state/NestedTableState/NestedTableLevelDescriptor.js.map +1 -1
  119. package/dist/cjs/state/NestedTableState/NestedTableNestedModeState.js +35 -6
  120. package/dist/cjs/state/NestedTableState/NestedTableNestedModeState.js.map +1 -1
  121. package/dist/cjs/state/NestedTableState/NestedTableNodeState.js +14 -26
  122. package/dist/cjs/state/NestedTableState/NestedTableNodeState.js.map +1 -1
  123. package/dist/cjs/state/NestedTableState/NestedTableState.js +6 -1
  124. package/dist/cjs/state/NestedTableState/NestedTableState.js.map +1 -1
  125. package/dist/cjs/state/TableVirtualState.js +5 -2
  126. package/dist/cjs/state/TableVirtualState.js.map +1 -1
  127. package/dist/cjs/state/ToolbarCollectionState.js +3 -0
  128. package/dist/cjs/state/ToolbarCollectionState.js.map +1 -1
  129. package/dist/cjs/state/WixPatternsRouterState.js.map +1 -1
  130. package/dist/cjs/styles.global.css +1 -1
  131. package/dist/cjs/test-utils/getUniDriverStyle.js +14 -0
  132. package/dist/cjs/test-utils/getUniDriverStyle.js.map +1 -0
  133. package/dist/cjs/version.js +1 -1
  134. package/dist/cjs/version.js.map +1 -1
  135. package/dist/esm/components/Collapse/Collapse.st.css.js +2 -2
  136. package/dist/esm/components/CollectionTable/CollectionTable.js.map +1 -1
  137. package/dist/esm/components/CollectionToolbar/CollectionToolbar.st.css.js +2 -2
  138. package/dist/esm/components/CollectionToolbar/CollectionToolbar.st.css.js.map +1 -1
  139. package/dist/esm/components/CollectionToolbar/SearchOrCustomFilter.st.css.js +2 -2
  140. package/dist/esm/components/CollectionToolbarFilters/CollectionToolbarFilters.js.map +1 -1
  141. package/dist/esm/components/CollectionViewsDropdown/AutoCompleteReadonly.st.css.js +2 -2
  142. package/dist/esm/components/CollectionViewsDropdown/ViewsDropdown.st.css.js +2 -2
  143. package/dist/esm/components/CollectionViewsDropdown/ViewsDropdown.st.css.js.map +1 -1
  144. package/dist/esm/components/CustomFieldsWidget/CustomFieldsViewWidgetSection.st.css.js +2 -2
  145. package/dist/esm/components/DragAndDrop/CollectionDragAndDropState.js +6 -11
  146. package/dist/esm/components/DragAndDrop/CollectionDragAndDropState.js.map +1 -1
  147. package/dist/esm/components/DragAndDrop/DragAndDropCategoriesProps.js +2 -0
  148. package/dist/esm/components/DragAndDrop/DragAndDropCategoriesProps.js.map +1 -0
  149. package/dist/esm/components/DragAndDrop/DragAndDropState.js +3 -1
  150. package/dist/esm/components/DragAndDrop/DragAndDropState.js.map +1 -1
  151. package/dist/esm/components/DragHandle/DragHandle.st.css.js +2 -2
  152. package/dist/esm/components/DragHandle/DragHandle.st.css.js.map +1 -1
  153. package/dist/esm/components/Fade/Fade.st.css.js +2 -2
  154. package/dist/esm/components/Fade/Fade.st.css.js.map +1 -1
  155. package/dist/esm/components/Grid/Grid.js.map +1 -1
  156. package/dist/esm/components/GridSections/GridSectionsState.js.map +1 -1
  157. package/dist/esm/components/Heading/Heading.st.css.js +2 -2
  158. package/dist/esm/components/InputOverflow/InputOverflow.st.css.js +2 -2
  159. package/dist/esm/components/MaxHeightText/MaxHeightText.st.css.js +2 -2
  160. package/dist/esm/components/MaxLines/MaxLines.st.css.js +2 -2
  161. package/dist/esm/components/MaxLines/MaxLines.st.css.js.map +1 -1
  162. package/dist/esm/components/MultiBulkActionToolbar/MultiBulkActionToolbar.st.css.js +2 -2
  163. package/dist/esm/components/NestedTable/NestedTable.js.map +1 -1
  164. package/dist/esm/components/NestedTable/NestedTable.uni.driver.js +2 -0
  165. package/dist/esm/components/NestedTable/NestedTable.uni.driver.js.map +1 -1
  166. package/dist/esm/components/NestedTable/NestedTableParentCell.js +8 -2
  167. package/dist/esm/components/NestedTable/NestedTableParentCell.js.map +1 -1
  168. package/dist/esm/components/NestedTable/NestedTableParentCell.uni.driver.js +7 -1
  169. package/dist/esm/components/NestedTable/NestedTableParentCell.uni.driver.js.map +1 -1
  170. package/dist/esm/components/NestedTable/NestedTableRow.js +4 -1
  171. package/dist/esm/components/NestedTable/NestedTableRow.js.map +1 -1
  172. package/dist/esm/components/NestedTable/NestedTableRow.st.css.js +2 -2
  173. package/dist/esm/components/NestedTable/NestedTableRow.st.css.js.map +1 -1
  174. package/dist/esm/components/NestedTable/NestedTableWSRTable.js +2 -2
  175. package/dist/esm/components/NestedTable/NestedTableWSRTable.js.map +1 -1
  176. package/dist/esm/components/NestedTableDragAndDrop/NestedTableDragAndDrop.js +1 -1
  177. package/dist/esm/components/NestedTableDragAndDrop/NestedTableDragAndDrop.js.map +1 -1
  178. package/dist/esm/components/NestedTableDragAndDrop/NestedTableDragAndDropContext.js +9 -0
  179. package/dist/esm/components/NestedTableDragAndDrop/NestedTableDragAndDropContext.js.map +1 -1
  180. package/dist/esm/components/NestedTableDragAndDrop/NestedTableDragAndDropState.js +154 -41
  181. package/dist/esm/components/NestedTableDragAndDrop/NestedTableDragAndDropState.js.map +1 -1
  182. package/dist/esm/components/NestedTableDragAndDrop/NestedTableGhostIndentationCell.js.map +1 -1
  183. package/dist/esm/components/NestedTableDragAndDrop/NestedTableGhostRow.uni.driver.js +2 -9
  184. package/dist/esm/components/NestedTableDragAndDrop/NestedTableGhostRow.uni.driver.js.map +1 -1
  185. package/dist/esm/components/NestedTableDragAndDrop/validateNestedTableDragAndDropProps.js +15 -0
  186. package/dist/esm/components/NestedTableDragAndDrop/validateNestedTableDragAndDropProps.js.map +1 -0
  187. package/dist/esm/components/PickerContent/PickerContent.st.css.js +2 -2
  188. package/dist/esm/components/PickerContent/PickerContentAdditionalStep.st.css.js +2 -2
  189. package/dist/esm/components/PickerTableListItem/PickerTableListItem.st.css.js +2 -2
  190. package/dist/esm/components/ScrollableContent/ScrollableContent.st.css.js +2 -2
  191. package/dist/esm/components/SidePanelModal/SidePanelModal.js +4 -0
  192. package/dist/esm/components/SidePanelModal/SidePanelModal.js.map +1 -1
  193. package/dist/esm/components/SkeletonCard/SkeletonCard.st.css.js +2 -2
  194. package/dist/esm/components/SkeletonCard/SkeletonCard.st.css.js.map +1 -1
  195. package/dist/esm/components/SlidingModal/SlidingModal.js +18 -5
  196. package/dist/esm/components/SlidingModal/SlidingModal.js.map +1 -1
  197. package/dist/esm/components/SlidingModal/SlidingModal.st.css +6 -2
  198. package/dist/esm/components/SlidingModal/SlidingModal.st.css.js +2 -2
  199. package/dist/esm/components/Table/TableVirtualHeader.st.css.js +2 -2
  200. package/dist/esm/components/TableGridSwitch/TableGridSwitch.js.map +1 -1
  201. package/dist/esm/components/TabsFilter/TabsFilter.st.css.js +2 -2
  202. package/dist/esm/components/Tags/ManageTags/ManageTagsModal/ManageTagsModal.st.css.js +2 -2
  203. package/dist/esm/components/ToolbarCollection/ToolbarCollection.js.map +1 -1
  204. package/dist/esm/components/ToolbarItemBox/ToolbarItemBox.st.css.js +2 -2
  205. package/dist/esm/components/ToolbarItemBox/ToolbarItemBox.st.css.js.map +1 -1
  206. package/dist/esm/components/common.st.css.js +2 -2
  207. package/dist/esm/hooks/useCreateNestedOptimisticActions.js +2 -0
  208. package/dist/esm/hooks/useCreateNestedOptimisticActions.js.map +1 -1
  209. package/dist/esm/hooks/useOptionalCachedState.js +3 -3
  210. package/dist/esm/hooks/useOptionalCachedState.js.map +1 -1
  211. package/dist/esm/hooks/useSyncCollectionOnEntityReturn.js +84 -0
  212. package/dist/esm/hooks/useSyncCollectionOnEntityReturn.js.map +1 -0
  213. package/dist/esm/hooks/useSyncCollectionOnEntityUpdate.js +38 -0
  214. package/dist/esm/hooks/useSyncCollectionOnEntityUpdate.js.map +1 -0
  215. package/dist/esm/state/DragAndDrop/createOptimisticActionsOrderByModeReaction.js +11 -0
  216. package/dist/esm/state/DragAndDrop/createOptimisticActionsOrderByModeReaction.js.map +1 -0
  217. package/dist/esm/state/EntityPage/EntityPageState.js +2 -5
  218. package/dist/esm/state/EntityPage/EntityPageState.js.map +1 -1
  219. package/dist/esm/state/NestedTableState/NestedCollectionNodeState.js +12 -3
  220. package/dist/esm/state/NestedTableState/NestedCollectionNodeState.js.map +1 -1
  221. package/dist/esm/state/NestedTableState/NestedCollectionState.js +9 -0
  222. package/dist/esm/state/NestedTableState/NestedCollectionState.js.map +1 -1
  223. package/dist/esm/state/NestedTableState/NestedTableNestedModeState.js +19 -2
  224. package/dist/esm/state/NestedTableState/NestedTableNestedModeState.js.map +1 -1
  225. package/dist/esm/state/NestedTableState/NestedTableNodeState.js +10 -16
  226. package/dist/esm/state/NestedTableState/NestedTableNodeState.js.map +1 -1
  227. package/dist/esm/state/NestedTableState/NestedTableState.js +6 -1
  228. package/dist/esm/state/NestedTableState/NestedTableState.js.map +1 -1
  229. package/dist/esm/state/TableVirtualState.js +4 -2
  230. package/dist/esm/state/TableVirtualState.js.map +1 -1
  231. package/dist/esm/state/ToolbarCollectionState.js +3 -0
  232. package/dist/esm/state/ToolbarCollectionState.js.map +1 -1
  233. package/dist/esm/styles.global.css +1 -1
  234. package/dist/esm/test-utils/getUniDriverStyle.js +9 -0
  235. package/dist/esm/test-utils/getUniDriverStyle.js.map +1 -0
  236. package/dist/esm/version.js +1 -1
  237. package/dist/types/components/CollectionTable/CollectionTable.d.ts +3 -1
  238. package/dist/types/components/CollectionTable/CollectionTable.d.ts.map +1 -1
  239. package/dist/types/components/CollectionToolbar/CollectionToolbar.st.css.d.ts.map +1 -1
  240. package/dist/types/components/CollectionViewsDropdown/ViewsDropdown.st.css.d.ts.map +1 -1
  241. package/dist/types/components/CtaProps.d.ts +13 -0
  242. package/dist/types/components/CtaProps.d.ts.map +1 -1
  243. package/dist/types/components/DragAndDrop/CollectionDragAndDropState.d.ts.map +1 -1
  244. package/dist/types/components/DragAndDrop/DragAndDrop.d.ts +1 -1
  245. package/dist/types/components/DragAndDrop/DragAndDrop.d.ts.map +1 -1
  246. package/dist/types/components/DragAndDrop/DragAndDropCategoriesProps.d.ts +12 -0
  247. package/dist/types/components/DragAndDrop/DragAndDropCategoriesProps.d.ts.map +1 -0
  248. package/dist/types/components/DragAndDrop/DragAndDropState.d.ts +2 -1
  249. package/dist/types/components/DragAndDrop/DragAndDropState.d.ts.map +1 -1
  250. package/dist/types/components/DragHandle/DragHandle.st.css.d.ts.map +1 -1
  251. package/dist/types/components/Fade/Fade.st.css.d.ts.map +1 -1
  252. package/dist/types/components/Grid/Grid.d.ts +8 -2
  253. package/dist/types/components/Grid/Grid.d.ts.map +1 -1
  254. package/dist/types/components/GridSections/GridSectionsState.d.ts +13 -0
  255. package/dist/types/components/GridSections/GridSectionsState.d.ts.map +1 -1
  256. package/dist/types/components/MaxLines/MaxLines.st.css.d.ts.map +1 -1
  257. package/dist/types/components/NestedTable/NestedTable.d.ts +3 -35
  258. package/dist/types/components/NestedTable/NestedTable.d.ts.map +1 -1
  259. package/dist/types/components/NestedTable/NestedTable.uni.driver.d.ts +4 -0
  260. package/dist/types/components/NestedTable/NestedTable.uni.driver.d.ts.map +1 -1
  261. package/dist/types/components/NestedTable/NestedTableParentCell.d.ts.map +1 -1
  262. package/dist/types/components/NestedTable/NestedTableParentCell.uni.driver.d.ts +1 -0
  263. package/dist/types/components/NestedTable/NestedTableParentCell.uni.driver.d.ts.map +1 -1
  264. package/dist/types/components/NestedTable/NestedTableRow.d.ts.map +1 -1
  265. package/dist/types/components/NestedTable/NestedTableRow.st.css.d.ts.map +1 -1
  266. package/dist/types/components/NestedTable/useModeTableProps.d.ts +3 -3
  267. package/dist/types/components/NestedTable/useModeTableProps.d.ts.map +1 -1
  268. package/dist/types/components/NestedTableDragAndDrop/NestedTableDragAndDrop.d.ts +1 -1
  269. package/dist/types/components/NestedTableDragAndDrop/NestedTableDragAndDropContext.d.ts.map +1 -1
  270. package/dist/types/components/NestedTableDragAndDrop/NestedTableDragAndDropState.d.ts +35 -7
  271. package/dist/types/components/NestedTableDragAndDrop/NestedTableDragAndDropState.d.ts.map +1 -1
  272. package/dist/types/components/NestedTableDragAndDrop/NestedTableGhostIndentationCell.d.ts.map +1 -1
  273. package/dist/types/components/NestedTableDragAndDrop/NestedTableGhostRow.uni.driver.d.ts.map +1 -1
  274. package/dist/types/components/NestedTableDragAndDrop/validateNestedTableDragAndDropProps.d.ts +3 -0
  275. package/dist/types/components/NestedTableDragAndDrop/validateNestedTableDragAndDropProps.d.ts.map +1 -0
  276. package/dist/types/components/SidePanelModal/SidePanelModal.d.ts.map +1 -1
  277. package/dist/types/components/SkeletonCard/SkeletonCard.st.css.d.ts.map +1 -1
  278. package/dist/types/components/SlidingModal/SlidingModal.d.ts +2 -0
  279. package/dist/types/components/SlidingModal/SlidingModal.d.ts.map +1 -1
  280. package/dist/types/components/TableGridSwitch/TableGridSwitch.d.ts +2 -1
  281. package/dist/types/components/TableGridSwitch/TableGridSwitch.d.ts.map +1 -1
  282. package/dist/types/components/ToolbarCollection/ToolbarCollection.d.ts +14 -19
  283. package/dist/types/components/ToolbarCollection/ToolbarCollection.d.ts.map +1 -1
  284. package/dist/types/components/ToolbarItemBox/ToolbarItemBox.st.css.d.ts.map +1 -1
  285. package/dist/types/hooks/useCreateNestedOptimisticActions.d.ts +5 -3
  286. package/dist/types/hooks/useCreateNestedOptimisticActions.d.ts.map +1 -1
  287. package/dist/types/hooks/useOptionalCachedState.d.ts +2 -1
  288. package/dist/types/hooks/useOptionalCachedState.d.ts.map +1 -1
  289. package/dist/types/hooks/useSyncCollectionOnEntityReturn.d.ts +10 -0
  290. package/dist/types/hooks/useSyncCollectionOnEntityReturn.d.ts.map +1 -0
  291. package/dist/types/hooks/useSyncCollectionOnEntityUpdate.d.ts +4 -0
  292. package/dist/types/hooks/useSyncCollectionOnEntityUpdate.d.ts.map +1 -0
  293. package/dist/types/model/tableColumn.d.ts +1 -1
  294. package/dist/types/model/tableColumn.d.ts.map +1 -1
  295. package/dist/types/state/DragAndDrop/createOptimisticActionsOrderByModeReaction.d.ts +4 -0
  296. package/dist/types/state/DragAndDrop/createOptimisticActionsOrderByModeReaction.d.ts.map +1 -0
  297. package/dist/types/state/EntityPage/EntityPageState.d.ts.map +1 -1
  298. package/dist/types/state/NestedTableState/NestedCollectionLevelDescriptor.d.ts +7 -2
  299. package/dist/types/state/NestedTableState/NestedCollectionLevelDescriptor.d.ts.map +1 -1
  300. package/dist/types/state/NestedTableState/NestedCollectionNodeState.d.ts +2 -0
  301. package/dist/types/state/NestedTableState/NestedCollectionNodeState.d.ts.map +1 -1
  302. package/dist/types/state/NestedTableState/NestedCollectionState.d.ts +8 -1
  303. package/dist/types/state/NestedTableState/NestedCollectionState.d.ts.map +1 -1
  304. package/dist/types/state/NestedTableState/NestedTableFlatModeState.d.ts +1 -1
  305. package/dist/types/state/NestedTableState/NestedTableFlatModeState.d.ts.map +1 -1
  306. package/dist/types/state/NestedTableState/NestedTableLevelDescriptor.d.ts +2 -0
  307. package/dist/types/state/NestedTableState/NestedTableLevelDescriptor.d.ts.map +1 -1
  308. package/dist/types/state/NestedTableState/NestedTableNestedModeState.d.ts +8 -1
  309. package/dist/types/state/NestedTableState/NestedTableNestedModeState.d.ts.map +1 -1
  310. package/dist/types/state/NestedTableState/NestedTableNodeState.d.ts +3 -8
  311. package/dist/types/state/NestedTableState/NestedTableNodeState.d.ts.map +1 -1
  312. package/dist/types/state/NestedTableState/NestedTableState.d.ts +2 -1
  313. package/dist/types/state/NestedTableState/NestedTableState.d.ts.map +1 -1
  314. package/dist/types/state/TableFoldersState.d.ts +1 -1
  315. package/dist/types/state/TableFoldersState.d.ts.map +1 -1
  316. package/dist/types/state/TableState.d.ts +1 -1
  317. package/dist/types/state/TableState.d.ts.map +1 -1
  318. package/dist/types/state/TableVirtualState.d.ts +10 -6
  319. package/dist/types/state/TableVirtualState.d.ts.map +1 -1
  320. package/dist/types/state/ToolbarCollectionState.d.ts +1 -0
  321. package/dist/types/state/ToolbarCollectionState.d.ts.map +1 -1
  322. package/dist/types/state/WixPatternsRouterState.d.ts +1 -1
  323. package/dist/types/test-utils/getUniDriverStyle.d.ts +3 -0
  324. package/dist/types/test-utils/getUniDriverStyle.d.ts.map +1 -0
  325. package/dist/types/testkit/enzyme.d.ts +4 -0
  326. package/dist/types/testkit/enzyme.d.ts.map +1 -1
  327. package/dist/types/testkit/jsdom.d.ts +4 -0
  328. package/dist/types/testkit/jsdom.d.ts.map +1 -1
  329. package/dist/types/testkit/puppeteer.d.ts +4 -0
  330. package/dist/types/testkit/puppeteer.d.ts.map +1 -1
  331. package/dist/types/version.d.ts +1 -1
  332. package/package.json +3 -3
  333. package/dist/cjs/hooks/useCachedUpdatedEntity.js +0 -101
  334. package/dist/cjs/hooks/useCachedUpdatedEntity.js.map +0 -1
  335. package/dist/esm/hooks/useCachedUpdatedEntity.js +0 -99
  336. package/dist/esm/hooks/useCachedUpdatedEntity.js.map +0 -1
  337. package/dist/types/hooks/useCachedUpdatedEntity.d.ts +0 -3
  338. package/dist/types/hooks/useCachedUpdatedEntity.d.ts.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"names":["_designSystem","require","_react","_interopRequireWildcard","_assertComponentType","_CollectionToolbars","_checkConflictingToolbarProps","_jsxFileName","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","ToolbarCollection","props","state","filters","title","tabs","views","extraToolbar","selectionToolbar","dragAndDropReorderModeToolbar","sticky","stickyProp","search","children","tableGridSwitchButton","exportButton","primaryActionButton","summaryBar","assertComponentType","checkConflictingToolbarProps","scrollableContentRef","scrollablePageRef","usePageScrollContext","setSticky","useState","current","useEffect","createElement","Fragment","CollectionToolbars","titleBar","Box","width","borderTopColor","borderTopWidth","borderTopStyle","boxSizing","__self","__source","fileName","lineNumber","columnNumber","dataHook","direction","minHeight","flex","verticalAlign"],"sources":["../../../../src/components/ToolbarCollection/ToolbarCollection.tsx"],"sourcesContent":["import { Box, CardProps, usePageScrollContext } from '@wix/design-system';\nimport React, {\n CSSProperties,\n ReactElement,\n ReactNode,\n useEffect,\n useState,\n} from 'react';\nimport { CollectionToolbarProps, FilterElement, TabsFilterProps } from '../..';\nimport { ComputedQuery, FiltersMap } from '@wix/bex-core';\nimport { ToolbarCollectionState } from '../../state';\nimport {\n assertComponentType,\n CollectionSearchElement,\n CollectionToolbarFiltersElement,\n CollectionViewsDropdownElement,\n CustomColumnsElement,\n PrimaryActionButtonElement,\n ReorderModeToolbarElement,\n TabsFilterElement,\n ToolbarTitleElement,\n TopNotificationElement,\n} from '../assertComponentType';\nimport { CollectionToolbars } from '../CollectionToolbars';\nimport {\n DragAndDropBulkSubmit,\n DragAndDropCancel,\n DragAndDropSubmit,\n} from '../DragAndDrop';\nimport { TableGridSwitchButtonProps } from '../TableGridSwitchButton';\nimport { checkConflictingToolbarProps } from './checkConflictingToolbarProps';\nimport type { AddApplyFiltersButtonType } from '../FiltersPanel/AddApplyFiltersButton';\nimport type { TagsElement } from '../Tags';\nimport type { ExtensionMenuItemsType } from '../ExtensionMenuItems';\nimport { TablePlaceholderStatesProps } from '../TablePlaceholderStates/TablePlaceholderStates';\n\nexport interface ToolbarBaseProps<T> {\n /**\n * Displays a title at the left of a toolbar. Accepts a [ToolbarTitle](./?path=/story/features-display-toolbar--toolbartitle) component.\n * @overrideType [ToolbarTitle](./?path=/story/features-display-toolbar--toolbartitle)\n * @external\n */\n title?: ToolbarTitleElement;\n /**\n * Displays a search input on the right side of the table toolbar.<br> <br>\n * Accepts a boolean or a custom React element as a parameter. When passing `false`, no search input is displayed.\n * @default true\n * @external\n */\n search?: boolean | FilterElement | CollectionSearchElement;\n\n /**\n * Indicates whether to show Table Title Bar or not.\n * Note: if you pass `showTitleBar = false` title bar is not removed from the DOM. For better accessibility column titles should be defined as well.\n * @default true\n * @external\n */\n showTitleBar?: boolean;\n /**\n * A [`<ExportButton />`](./?path=/story/features-export--exportto) react element to be added to the toolbar\n */\n exportButton?: ReactElement;\n\n /**\n * Enables tags feature. In this element you can pass the configuration\n */\n tags?: TagsElement<T>;\n /**\n * A [`<ExportModal />`](./?path=/story/features-export--exportto#CTA_is_out_of_the_table) react element to be rendered in table's context.\n */\n exportModal?: ReactElement;\n}\n\nexport interface ToolbarCollectionBaseProps<T, F extends FiltersMap>\n extends ToolbarBaseProps<T> {\n children?: ReactNode | ReactNode[];\n\n /**\n * Adds view options to the table headers.\n * Accepts a [Views](./?path=/story/features-display-views--views) component.\n * @overrideType [Views](./?path=/story/features-display-views--views)\n * @external\n */\n views?: CollectionViewsDropdownElement<F>;\n /**\n * Adds filters to the toolbar and/or a sliding panel. \n * Accepts a `ToolbarFilters` component, which must have the `panelTitle` prop defined.\n * @overrideType [ToolbarFilters](./?path=%2Fstory%2Ffeatures-filter-components--toolbarfilters)\n * @external\n */\n filters?: CollectionToolbarFiltersElement;\n /**\n * Displays tabs at the left of a toolbar.\n * Accepts a [TabsFilter](./?path=/story/features-filter-components--tabsfilter) component.\n * @overrideType [TabsFilter](./?path=/story/features-filter-components--tabsfilter)\n * @external\n */\n tabs?: TabsFilterElement<TabsFilterProps<T>>;\n\n selectionToolbar?: ReactElement;\n\n sticky?: boolean;\n /**\n * Minimum height for a card's container when showing:<br>\n * - A loader<br>\n * - Empty state<br>\n * - Error state\n * <br><br>\n * If no unit is specified, `px` is used.\n * @default 300px\n * @external\n */\n minCardHeight?: CSSProperties['minHeight'];\n\n /**\n * A render function to be rendered when there's an error fetching data from the server.<br>\n * The function accepts the following parameters <br>\n * * `err`: The error thrown by the [fetchData](./?path=/story/common-hooks--usecollection) function <br>\n * * `isOnline`: Indicates whether internet connection is available <br>\n * * `retry`: Retry collection fetch on failed response, similar to `collection.retryFetch` <br>\n * Returns [`EmptyState`](https://www.docs.wixdesignsystem.com/?path=/story/components-layout--emptystate) component.\n * @external\n */\n renderError?: TablePlaceholderStatesProps['renderError'];\n\n /**\n * Renders when there are no items to display. Accepts a [`CollectionEmptyState`](./?path=/story/features-display-empty-states--collectionemptystate) component.\n * @external\n * @overrideType [CollectionEmptyState](./?path=/story/features-display-empty-states--collectionemptystate)\n */\n emptyState?: ReactNode;\n\n /**\n * Shown when a search or filter has no results.\n * Accepts a [`CollectionNoResultsState`](./?path=/story/features-display-empty-states--collectionnoresultsstate) component, \n * or a function that accepts the following parameters:\n * - `hasAvailableItems`: Indicates whether other items may be shown using other filter or search parameters.\n * - `query`: An instance of [`ComputedQuery`](./?path=/story/common-models--computedquery) representing the query that resulted in the empty state.\n * The function should return [`CollectionNoResultsState`](./?path=/story/features-display-empty-states--collectionnoresultsstate).\n * @external\n * @overrideType [CollectionNoResultsState](./?path=/story/features-display-empty-states--collectionnoresultsstate)\n */\n noResultsState?:\n | ReactNode\n | ((params: {\n hasAvailableItems: boolean;\n query: ComputedQuery<F>;\n }) => ReactNode);\n\n cardProps?: Partial<CardProps>;\n onSelectedItems?: (allSelected: boolean, items: T[]) => unknown;\n /**\n * Renders a notification below the header. Accepts a [`TableTopNotification`](./?path=/story/features-display--tabletopnotification) component.\n * @overrideType [TableTopNotification](./?path=/story/features-display--tabletopnotification)\n * @external\n */\n topNotification?:\n | TopNotificationElement\n | ((params: {\n query: ComputedQuery<F>;\n }) => TopNotificationElement | boolean | null | undefined)\n | boolean\n | null\n | undefined;\n\n extraToolbar?: ReactNode;\n\n /**\n * Display a summary bar below the toolbar.\n * Accepts a [`SummaryBar`](./?path=/story/features-display-toolbar--summarybar) component.\n * @overrideType [SummaryBar](./?path=/story/features-display-toolbar--summarybar)\n * @external\n */\n summaryBar?: ReactNode;\n tableGridSwitchButton?: ReactElement<TableGridSwitchButtonProps>;\n\n /**\n * Function that submits a drop event to the server. <br> <br>\n * There is one supported parameter that is an array of the following objects: <br>\n * -`from: {item: T; index: number}`: Item that was dragged. <br>\n * -`after: null | [item: T; iindex: number}`: Previous item that was dropped. If this is the first item to be dropped, this argument is null. <br>\n * -`filters`: Applied [Drag and Drop](./?path=/story/features-sort-drag-and-drop--draganddrop) filters.\n *\n * @returns Promise\n * @external\n */\n dragAndDropSubmit?: DragAndDropSubmit<T, F>;\n\n /**\n * Function that submits a drop event to the server. <br> <br>\n * Parameter is an array of the following objects: <br>\n * -`from: {item: T; index: number}`: Item that was dragged. <br>\n * -`after: null | [item: T; index: number}`: Previous item that was dropped. If this is the first item to be dropped, this argument is null. <br>\n * -`filters`: Applied [Drag and Drop](./?path=/story/features-sort-drag-and-drop--draganddrop) filters. <br>\n *\n * @returns Promise\n * @external\n */\n dragAndDropBulkSubmit?: DragAndDropBulkSubmit<T, F>;\n\n /**\n * A function that cancels a drop event. <br>\n * Supported arguments: <br>\n * - `from: {item: T; index: number}`: Item that was dragged.\n * - `after: null | {item: T; index: number}`: Item that the dragged item was dropped after. If dropped at the head of the collection, this argument will be `null`.\n * - `filters`: Currently applied filters. Used in cases where your server holds a unique ordering per filtering. See the `dragAndDropCategories` prop.\n *\n * If the move is cancelled, the function will return a toast config object with a message explaining why the move was cancelled. Otherwise, the function will return a nullish value.\n * @external\n */\n dragAndDropCancel?: DragAndDropCancel<T, F>;\n\n /**\n * List of filters on which to enable drag and drop functionality. For example, you can enable the drag and drop functionality on the 'Age' filter, but not on the 'Phone Number' filter.\n * If no props are passed, the drag and drop feature is disabled, and unavailable for the table. To enable the drag and drop feature without the use of filters, pass an empty array. For example, `dragAndDropCategories={ [ [], ['status'] ] }`.\n * @external\n */\n dragAndDropCategories?: (keyof F)[][] | null;\n\n /**\n * @deprecated It doesn't need to be passed implicitly anymore.\n */\n extensionMenuItems?: ExtensionMenuItemsType;\n\n /**\n * Drag and drop reorder mode toolbar. This prop accepts a `ReorderModeToolbar` component.<br>\n * The `ReorderModeToolbar` component accepts the following props:<br>\n * + `learnMoreUrl`: [string] A URL in the toolbar.<br>\n * + `reorderModeTitle`: [string] A title in the toolbar.\n * @external\n */\n dragAndDropReorderModeToolbar?: ReorderModeToolbarElement | null;\n\n /**\n * Adds functionality to allow visitors to create choose which columns to display and in what order. Accepts a [CustomColumns](./?path=/story/features-display--customcolumns) component.\n * @overrideType [CustomColumns](./?path=/story/features-display--customcolumns)\n * @external\n */\n customColumns?: CustomColumnsElement | null;\n\n /**\n * Adds functionality to allow visitors to sort multiple columns simultaneously.\n * Accepts a [MultiLevelSorting](./?path=/story/features-sort-sortable-columns-multilevelsorting--multilevelsorting) component.\n * @overrideType [MultiLevelSorting](./?path=/story/features-sort-sortable-columns-multilevelsorting--multilevelsorting)\n * @external\n */\n multiLevelSorting?: CollectionToolbarProps<T, F>['multiLevelSorting'];\n\n /**\n * Adds functionality for a primary action button in the toolbar.\n * Accepts a [PrimaryActionButton](./?path=/story/features-actions-primaryactionbutton--primaryactionbutton) component.\n * @external\n * @overrideType [PrimaryActionButton](./?path=/story/features-actions-primaryactionbutton--primaryactionbutton)\n */\n primaryActionButton?: PrimaryActionButtonElement;\n\n /**\n * Apply filter button implementation: `import { AddApplyFiltersButton } from '@wix/patterns';`\n * <br>\n * Add `Apply` button to the filters panel footer. Panel filters will be applied only after the button is clicked.\n */\n AddApplyFiltersButton?: AddApplyFiltersButtonType;\n\n /**\n * Limits the amount of rows a visitor can select.\n * @external\n */\n maxSelection?: number;\n\n /**\n * Indicates whether the table should have an [internal scroll](./?path=/story/features-display-internal-scroll--internal-scroll) instead of the default page scroll.\n * @external\n */\n internalScroll?: boolean;\n}\n\nexport interface ToolbarCollectionProps<T, F extends FiltersMap>\n extends ToolbarCollectionBaseProps<T, F> {\n state: ToolbarCollectionState<T, F>;\n}\n\nexport function ToolbarCollection<T, F extends FiltersMap>(\n props: ToolbarCollectionProps<T, F>,\n) {\n const {\n state,\n filters,\n title,\n tabs,\n views,\n extraToolbar,\n selectionToolbar,\n dragAndDropReorderModeToolbar,\n sticky: stickyProp,\n search,\n children,\n tableGridSwitchButton,\n exportButton,\n primaryActionButton,\n summaryBar,\n } = props;\n assertComponentType(views, 'CollectionViewsDropdown', 'views');\n checkConflictingToolbarProps(props);\n\n const { scrollableContentRef: scrollablePageRef } = usePageScrollContext();\n\n const [sticky, setSticky] = useState(\n stickyProp ?? scrollablePageRef?.current != null,\n );\n\n useEffect(() => {\n setSticky(stickyProp ?? scrollablePageRef?.current != null);\n }, [stickyProp]);\n\n return (\n <>\n <CollectionToolbars\n sticky={sticky}\n state={state}\n search={search}\n views={views}\n title={title}\n tabs={tabs}\n filters={filters}\n selectionToolbar={selectionToolbar}\n dragAndDropReorderModeToolbar={dragAndDropReorderModeToolbar}\n extraToolbar={extraToolbar}\n tableGridSwitchButton={tableGridSwitchButton}\n exportButton={exportButton}\n primaryActionButton={primaryActionButton}\n summaryBar={summaryBar}\n titleBar={\n <Box\n width=\"100%\"\n borderTopColor=\"D60\"\n borderTopWidth=\"1px\"\n borderTopStyle=\"solid\"\n boxSizing=\"border-box\"\n />\n }\n />\n <Box\n dataHook=\"toolbar-collection-content\"\n width=\"100%\"\n direction=\"vertical\"\n minHeight={0}\n flex={1}\n verticalAlign=\"middle\"\n >\n {children}\n </Box>\n </>\n );\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_designSystem","require","_react","_interopRequireWildcard","_assertComponentType","_CollectionToolbars","_checkConflictingToolbarProps","_jsxFileName","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","ToolbarCollection","props","state","filters","title","tabs","views","extraToolbar","selectionToolbar","dragAndDropReorderModeToolbar","sticky","stickyProp","search","children","tableGridSwitchButton","exportButton","primaryActionButton","summaryBar","assertComponentType","checkConflictingToolbarProps","scrollableContentRef","scrollablePageRef","usePageScrollContext","setSticky","useState","current","useEffect","createElement","Fragment","CollectionToolbars","titleBar","Box","width","borderTopColor","borderTopWidth","borderTopStyle","boxSizing","__self","__source","fileName","lineNumber","columnNumber","dataHook","direction","minHeight","flex","verticalAlign"],"sources":["../../../../src/components/ToolbarCollection/ToolbarCollection.tsx"],"sourcesContent":["import { Box, CardProps, usePageScrollContext } from '@wix/design-system';\nimport React, {\n CSSProperties,\n ReactElement,\n ReactNode,\n useEffect,\n useState,\n} from 'react';\nimport { CollectionToolbarProps, FilterElement, TabsFilterProps } from '../..';\nimport { ComputedQuery, FiltersMap } from '@wix/bex-core';\nimport { ToolbarCollectionState } from '../../state';\nimport {\n assertComponentType,\n CollectionSearchElement,\n CollectionToolbarFiltersElement,\n CollectionViewsDropdownElement,\n CustomColumnsElement,\n PrimaryActionButtonElement,\n ReorderModeToolbarElement,\n TabsFilterElement,\n ToolbarTitleElement,\n TopNotificationElement,\n} from '../assertComponentType';\nimport { CollectionToolbars } from '../CollectionToolbars';\nimport {\n DragAndDropBulkSubmit,\n DragAndDropCancel,\n DragAndDropSubmit,\n} from '../DragAndDrop';\nimport { TableGridSwitchButtonProps } from '../TableGridSwitchButton';\nimport { checkConflictingToolbarProps } from './checkConflictingToolbarProps';\nimport type { AddApplyFiltersButtonType } from '../FiltersPanel/AddApplyFiltersButton';\nimport type { TagsElement } from '../Tags';\nimport type { ExtensionMenuItemsType } from '../ExtensionMenuItems';\nimport { TablePlaceholderStatesProps } from '../TablePlaceholderStates/TablePlaceholderStates';\nimport { DragAndDropCategoriesProps } from '../DragAndDrop/DragAndDropCategoriesProps';\n\nexport interface ToolbarBaseProps<T> {\n /**\n * Displays a title at the left of a toolbar. Accepts a [ToolbarTitle](./?path=/story/features-display-toolbar--toolbartitle) component.\n * @overrideType [ToolbarTitle](./?path=/story/features-display-toolbar--toolbartitle)\n * @external\n */\n title?: ToolbarTitleElement;\n /**\n * Displays a search input on the right side of the table toolbar.<br> <br>\n * Accepts a boolean or a custom React element as a parameter. When passing `false`, no search input is displayed.\n * @default true\n * @external\n */\n search?: boolean | FilterElement | CollectionSearchElement;\n\n /**\n * Indicates whether to show Table Title Bar or not.\n * Note: if you pass `showTitleBar = false` title bar is not removed from the DOM. For better accessibility column titles should be defined as well.\n * @default true\n * @external\n */\n showTitleBar?: boolean;\n /**\n * A [`<ExportButton />`](./?path=/story/features-export--exportto) react element to be added to the toolbar\n */\n exportButton?: ReactElement;\n\n /**\n * Enables tags feature. In this element you can pass the configuration\n */\n tags?: TagsElement<T>;\n /**\n * A [`<ExportModal />`](./?path=/story/features-export--exportto#CTA_is_out_of_the_table) react element to be rendered in table's context.\n */\n exportModal?: ReactElement;\n}\n\nexport interface ToolbarCollectionBaseProps<T, F extends FiltersMap>\n extends ToolbarBaseProps<T>,\n DragAndDropCategoriesProps<F> {\n children?: ReactNode | ReactNode[];\n\n /**\n * Adds view options to the table headers.\n * Accepts a [Views](./?path=/story/features-display-views--views) component.\n * @overrideType [Views](./?path=/story/features-display-views--views)\n * @external\n */\n views?: CollectionViewsDropdownElement<F>;\n /**\n * Adds filters to the toolbar and/or a sliding panel.\n * Accepts a `ToolbarFilters` component, which must have the `panelTitle` prop defined.\n * @overrideType [ToolbarFilters](./?path=%2Fstory%2Ffeatures-filter-components--toolbarfilters)\n * @external\n */\n filters?: CollectionToolbarFiltersElement;\n /**\n * Displays tabs at the left of a toolbar.\n * Accepts a [TabsFilter](./?path=/story/features-filter-components--tabsfilter) component.\n * @overrideType [TabsFilter](./?path=/story/features-filter-components--tabsfilter)\n * @external\n */\n tabs?: TabsFilterElement<TabsFilterProps<T>>;\n\n selectionToolbar?: ReactElement;\n\n sticky?: boolean;\n /**\n * Minimum height for a card's container when showing:<br>\n * - A loader<br>\n * - Empty state<br>\n * - Error state\n * <br><br>\n * If no unit is specified, `px` is used.\n * @default 300px\n * @external\n */\n minCardHeight?: CSSProperties['minHeight'];\n\n /**\n * A render function to be rendered when there's an error fetching data from the server.<br>\n * The function accepts the following parameters <br>\n * * `err`: The error thrown by the [fetchData](./?path=/story/common-hooks--usecollection) function <br>\n * * `isOnline`: Indicates whether internet connection is available <br>\n * * `retry`: Retry collection fetch on failed response, similar to `collection.retryFetch` <br>\n * Returns [`EmptyState`](https://www.docs.wixdesignsystem.com/?path=/story/components-layout--emptystate) component.\n * @external\n */\n renderError?: TablePlaceholderStatesProps['renderError'];\n\n /**\n * Renders when there are no items to display. Accepts a [`CollectionEmptyState`](./?path=/story/features-display-empty-states--collectionemptystate) component.\n * @external\n * @overrideType [CollectionEmptyState](./?path=/story/features-display-empty-states--collectionemptystate)\n */\n emptyState?: ReactNode;\n\n /**\n * Shown when a search or filter has no results.\n * Accepts a [`CollectionNoResultsState`](./?path=/story/features-display-empty-states--collectionnoresultsstate) component,\n * or a function that accepts the following parameters:\n * - `hasAvailableItems`: Indicates whether other items may be shown using other filter or search parameters.\n * - `query`: An instance of [`ComputedQuery`](./?path=/story/common-models--computedquery) representing the query that resulted in the empty state.\n * The function should return [`CollectionNoResultsState`](./?path=/story/features-display-empty-states--collectionnoresultsstate).\n * @external\n * @overrideType [CollectionNoResultsState](./?path=/story/features-display-empty-states--collectionnoresultsstate)\n */\n noResultsState?:\n | ReactNode\n | ((params: {\n hasAvailableItems: boolean;\n query: ComputedQuery<F>;\n }) => ReactNode);\n\n cardProps?: Partial<CardProps>;\n onSelectedItems?: (allSelected: boolean, items: T[]) => unknown;\n /**\n * Renders a notification below the header. Accepts a [`TableTopNotification`](./?path=/story/features-display--tabletopnotification) component.\n * @overrideType [TableTopNotification](./?path=/story/features-display--tabletopnotification)\n * @external\n */\n topNotification?:\n | TopNotificationElement\n | ((params: {\n query: ComputedQuery<F>;\n }) => TopNotificationElement | boolean | null | undefined)\n | boolean\n | null\n | undefined;\n\n extraToolbar?: ReactNode;\n\n /**\n * Display a summary bar below the toolbar.\n * Accepts a [`SummaryBar`](./?path=/story/features-display-toolbar--summarybar) component.\n * @overrideType [SummaryBar](./?path=/story/features-display-toolbar--summarybar)\n * @external\n */\n summaryBar?: ReactNode;\n tableGridSwitchButton?: ReactElement<TableGridSwitchButtonProps>;\n\n /**\n * Function that submits a drop event to the server. <br> <br>\n * The parameter is an event object containing the following details: <br>\n * -`from: {item: T; index: number}`: The dragged item. <br>\n * -`after: null | [item: T; iindex: number}`: The previous dropped item. If this is the first item to be dropped, this argument is `null`. <br>\n * -`filters`: Applied [Drag and Drop](./?path=/story/features-sort-drag-and-drop--overview) filters.\n *\n * @returns Promise\n * @external\n */\n dragAndDropSubmit?: DragAndDropSubmit<T, F>;\n\n /**\n * Function that submits an array of drop events to the server. <br> <br>\n * The parameter is an array of event objects containing the following details: <br>\n * -`from: {item: T; index: number}`: The dragged item. <br>\n * -`after: null | [item: T; index: number}`: The previous dropped item. If this is the first item to be dropped, this argument is `null`. <br>\n * -`filters`: Applied [Drag and Drop](./?path=/story/features-sort-drag-and-drop--overview) filters. <br>\n *\n * @returns Promise\n * @external\n */\n dragAndDropBulkSubmit?: DragAndDropBulkSubmit<T, F>;\n\n /**\n * A function that cancels a drop event. <br>\n * Supported arguments: <br>\n * - `from: {item: T; index: number}`: The dragged item.\n * - `after: null | {item: T; index: number}`: The item that the dragged item was dropped after. If dropped at the head of the collection, this argument will be `null`.\n * - `filters`: Currently applied filters. Used in cases where your server holds a unique ordering per filtering. See the `dragAndDropCategories` prop.\n *\n * If the move is cancelled, the function returns a toast config object with a message. Otherwise, the function will return a null value.\n * @external\n */\n dragAndDropCancel?: DragAndDropCancel<T, F>;\n\n /**\n * @deprecated It doesn't need to be passed implicitly anymore.\n */\n extensionMenuItems?: ExtensionMenuItemsType;\n\n /**\n * Drag and drop reorder mode toolbar. This prop accepts a `ReorderModeToolbar` component.<br>\n * The `ReorderModeToolbar` component accepts the following props:<br>\n * + `learnMoreUrl`: [string] A URL in the toolbar.<br>\n * + `reorderModeTitle`: [string] A title in the toolbar.\n * @external\n */\n dragAndDropReorderModeToolbar?: ReorderModeToolbarElement | null;\n\n /**\n * Adds functionality to allow visitors to create choose which columns to display and in what order. Accepts a [CustomColumns](./?path=/story/features-display--customcolumns) component.\n * @overrideType [CustomColumns](./?path=/story/features-display--customcolumns)\n * @external\n */\n customColumns?: CustomColumnsElement | null;\n\n /**\n * Adds functionality to allow visitors to sort multiple columns simultaneously.\n * Accepts a [MultiLevelSorting](./?path=/story/features-sort-sortable-columns-multilevelsorting--multilevelsorting) component.\n * @overrideType [MultiLevelSorting](./?path=/story/features-sort-sortable-columns-multilevelsorting--multilevelsorting)\n * @external\n */\n multiLevelSorting?: CollectionToolbarProps<T, F>['multiLevelSorting'];\n\n /**\n * Adds functionality for a primary action button in the toolbar.\n * Accepts a [PrimaryActionButton](./?path=/story/features-actions-primaryactionbutton--primaryactionbutton) component.\n * @external\n * @overrideType [PrimaryActionButton](./?path=/story/features-actions-primaryactionbutton--primaryactionbutton)\n */\n primaryActionButton?: PrimaryActionButtonElement;\n\n /**\n * Apply filter button implementation: `import { AddApplyFiltersButton } from '@wix/patterns';`\n * <br>\n * Add `Apply` button to the filters panel footer. Panel filters will be applied only after the button is clicked.\n */\n AddApplyFiltersButton?: AddApplyFiltersButtonType;\n\n /**\n * Limits the amount of rows a visitor can select.\n * @external\n */\n maxSelection?: number;\n\n /**\n * Indicates whether the table should have an [internal scroll](./?path=/story/features-display-internal-scroll--internal-scroll) instead of the default page scroll.\n * @external\n */\n internalScroll?: boolean;\n}\n\nexport interface ToolbarCollectionProps<T, F extends FiltersMap>\n extends ToolbarCollectionBaseProps<T, F> {\n state: ToolbarCollectionState<T, F>;\n}\n\nexport function ToolbarCollection<T, F extends FiltersMap>(\n props: ToolbarCollectionProps<T, F>,\n) {\n const {\n state,\n filters,\n title,\n tabs,\n views,\n extraToolbar,\n selectionToolbar,\n dragAndDropReorderModeToolbar,\n sticky: stickyProp,\n search,\n children,\n tableGridSwitchButton,\n exportButton,\n primaryActionButton,\n summaryBar,\n } = props;\n assertComponentType(views, 'CollectionViewsDropdown', 'views');\n checkConflictingToolbarProps(props);\n\n const { scrollableContentRef: scrollablePageRef } = usePageScrollContext();\n\n const [sticky, setSticky] = useState(\n stickyProp ?? scrollablePageRef?.current != null,\n );\n\n useEffect(() => {\n setSticky(stickyProp ?? scrollablePageRef?.current != null);\n }, [stickyProp]);\n\n return (\n <>\n <CollectionToolbars\n sticky={sticky}\n state={state}\n search={search}\n views={views}\n title={title}\n tabs={tabs}\n filters={filters}\n selectionToolbar={selectionToolbar}\n dragAndDropReorderModeToolbar={dragAndDropReorderModeToolbar}\n extraToolbar={extraToolbar}\n tableGridSwitchButton={tableGridSwitchButton}\n exportButton={exportButton}\n primaryActionButton={primaryActionButton}\n summaryBar={summaryBar}\n titleBar={\n <Box\n width=\"100%\"\n borderTopColor=\"D60\"\n borderTopWidth=\"1px\"\n borderTopStyle=\"solid\"\n boxSizing=\"border-box\"\n />\n }\n />\n <Box\n dataHook=\"toolbar-collection-content\"\n width=\"100%\"\n direction=\"vertical\"\n minHeight={0}\n flex={1}\n verticalAlign=\"middle\"\n >\n {children}\n </Box>\n </>\n );\n}\n"],"mappings":"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","ignoreList":[]}
@@ -5,14 +5,14 @@ exports.vars = exports.style = exports.stVars = exports.st = exports.namespace =
5
5
  var _stylableEsmRuntime = require("../../stylable-esm-runtime.js");
6
6
  // @ts-nocheck
7
7
 
8
- var _namespace_ = "ToolbarItemBox2091381012";
8
+ var _namespace_ = "ToolbarItemBox592812539";
9
9
  var _style_ = _stylableEsmRuntime.classesRuntime.bind(null, _namespace_);
10
10
  var cssStates = exports.cssStates = _stylableEsmRuntime.statesRuntime.bind(null, _namespace_);
11
11
  var style = exports.style = _style_;
12
12
  var st = exports.st = _style_;
13
13
  var namespace = exports.namespace = _namespace_;
14
14
  var classes = exports.classes = {
15
- "root": "ToolbarItemBox2091381012__root"
15
+ "root": "ToolbarItemBox592812539__root"
16
16
  };
17
17
  var keyframes = exports.keyframes = {};
18
18
  var layers = exports.layers = {};
@@ -1 +1 @@
1
- {"version":3,"names":["_stylableEsmRuntime","require","_namespace_","_style_","classesRuntime","bind","cssStates","exports","statesRuntime","style","st","namespace","classes","keyframes","layers","containers","stVars","vars"],"sources":["../../../../src/components/ToolbarItemBox/ToolbarItemBox.st.css.ts"],"sourcesContent":["// @ts-nocheck\n\n\nimport { classesRuntime, statesRuntime } from \"../../stylable-esm-runtime.js\";\n\n\n\nvar _namespace_ = \"ToolbarItemBox2091381012\";\nvar _style_ = classesRuntime.bind(null, _namespace_);\n\nexport var cssStates = statesRuntime.bind(null, _namespace_);\nexport var style = _style_;\nexport var st: import(\"@stylable/runtime\").STFunction = _style_;\n\nexport var namespace = _namespace_;\nexport var classes = {\"root\":\"ToolbarItemBox2091381012__root\"};\nexport var keyframes = {}; \nexport var layers = {};\nexport var containers = {};\nexport var stVars = {}; \nexport var vars = {}; \n\n\n\n\n"],"mappings":";;;;AAGA,IAAAA,mBAAA,GAAAC,OAAA;AAHA;;AAOA,IAAIC,WAAW,GAAG,0BAA0B;AAC5C,IAAIC,OAAO,GAAGC,kCAAc,CAACC,IAAI,CAAC,IAAI,EAAEH,WAAW,CAAC;AAE7C,IAAII,SAAS,GAAAC,OAAA,CAAAD,SAAA,GAAGE,iCAAa,CAACH,IAAI,CAAC,IAAI,EAAEH,WAAW,CAAC;AACrD,IAAIO,KAAK,GAAAF,OAAA,CAAAE,KAAA,GAAGN,OAAO;AACnB,IAAIO,EAA0C,GAAAH,OAAA,CAAAG,EAAA,GAAGP,OAAO;AAExD,IAAIQ,SAAS,GAAAJ,OAAA,CAAAI,SAAA,GAAGT,WAAW;AAC3B,IAAIU,OAAO,GAAAL,OAAA,CAAAK,OAAA,GAAG;EAAC,MAAM,EAAC;AAAgC,CAAC;AACvD,IAAIC,SAAS,GAAAN,OAAA,CAAAM,SAAA,GAAG,CAAC,CAAC;AAClB,IAAIC,MAAM,GAAAP,OAAA,CAAAO,MAAA,GAAG,CAAC,CAAC;AACf,IAAIC,UAAU,GAAAR,OAAA,CAAAQ,UAAA,GAAG,CAAC,CAAC;AACnB,IAAIC,MAAM,GAAAT,OAAA,CAAAS,MAAA,GAAG,CAAC,CAAC;AACf,IAAIC,IAAI,GAAAV,OAAA,CAAAU,IAAA,GAAG,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["_stylableEsmRuntime","require","_namespace_","_style_","classesRuntime","bind","cssStates","exports","statesRuntime","style","st","namespace","classes","keyframes","layers","containers","stVars","vars"],"sources":["../../../../src/components/ToolbarItemBox/ToolbarItemBox.st.css.ts"],"sourcesContent":["// @ts-nocheck\n\n\nimport { classesRuntime, statesRuntime } from \"../../stylable-esm-runtime.js\";\n\n\n\nvar _namespace_ = \"ToolbarItemBox592812539\";\nvar _style_ = classesRuntime.bind(null, _namespace_);\n\nexport var cssStates = statesRuntime.bind(null, _namespace_);\nexport var style = _style_;\nexport var st: import(\"@stylable/runtime\").STFunction = _style_;\n\nexport var namespace = _namespace_;\nexport var classes = {\"root\":\"ToolbarItemBox592812539__root\"};\nexport var keyframes = {}; \nexport var layers = {};\nexport var containers = {};\nexport var stVars = {}; \nexport var vars = {}; \n\n\n\n\n"],"mappings":";;;;AAGA,IAAAA,mBAAA,GAAAC,OAAA;AAHA;;AAOA,IAAIC,WAAW,GAAG,yBAAyB;AAC3C,IAAIC,OAAO,GAAGC,kCAAc,CAACC,IAAI,CAAC,IAAI,EAAEH,WAAW,CAAC;AAE7C,IAAII,SAAS,GAAAC,OAAA,CAAAD,SAAA,GAAGE,iCAAa,CAACH,IAAI,CAAC,IAAI,EAAEH,WAAW,CAAC;AACrD,IAAIO,KAAK,GAAAF,OAAA,CAAAE,KAAA,GAAGN,OAAO;AACnB,IAAIO,EAA0C,GAAAH,OAAA,CAAAG,EAAA,GAAGP,OAAO;AAExD,IAAIQ,SAAS,GAAAJ,OAAA,CAAAI,SAAA,GAAGT,WAAW;AAC3B,IAAIU,OAAO,GAAAL,OAAA,CAAAK,OAAA,GAAG;EAAC,MAAM,EAAC;AAA+B,CAAC;AACtD,IAAIC,SAAS,GAAAN,OAAA,CAAAM,SAAA,GAAG,CAAC,CAAC;AAClB,IAAIC,MAAM,GAAAP,OAAA,CAAAO,MAAA,GAAG,CAAC,CAAC;AACf,IAAIC,UAAU,GAAAR,OAAA,CAAAQ,UAAA,GAAG,CAAC,CAAC;AACnB,IAAIC,MAAM,GAAAT,OAAA,CAAAS,MAAA,GAAG,CAAC,CAAC;AACf,IAAIC,IAAI,GAAAV,OAAA,CAAAU,IAAA,GAAG,CAAC,CAAC","ignoreList":[]}
@@ -5,16 +5,16 @@ exports.vars = exports.style = exports.stVars = exports.st = exports.namespace =
5
5
  var _stylableEsmRuntime = require("../stylable-esm-runtime.js");
6
6
  // @ts-nocheck
7
7
 
8
- var _namespace_ = "common2180636632";
8
+ var _namespace_ = "common1515351176";
9
9
  var _style_ = _stylableEsmRuntime.classesRuntime.bind(null, _namespace_);
10
10
  var cssStates = exports.cssStates = _stylableEsmRuntime.statesRuntime.bind(null, _namespace_);
11
11
  var style = exports.style = _style_;
12
12
  var st = exports.st = _style_;
13
13
  var namespace = exports.namespace = _namespace_;
14
14
  var classes = exports.classes = {
15
- "root": "common2180636632__root",
16
- "column": "common2180636632__column",
17
- "fullHeight": "common2180636632__fullHeight"
15
+ "root": "common1515351176__root",
16
+ "column": "common1515351176__column",
17
+ "fullHeight": "common1515351176__fullHeight"
18
18
  };
19
19
  var keyframes = exports.keyframes = {};
20
20
  var layers = exports.layers = {};
@@ -1 +1 @@
1
- {"version":3,"names":["_stylableEsmRuntime","require","_namespace_","_style_","classesRuntime","bind","cssStates","exports","statesRuntime","style","st","namespace","classes","keyframes","layers","containers","stVars","vars"],"sources":["../../../src/components/common.st.css.ts"],"sourcesContent":["// @ts-nocheck\n\n\nimport { classesRuntime, statesRuntime } from \"../stylable-esm-runtime.js\";\n\n\n\nvar _namespace_ = \"common2180636632\";\nvar _style_ = classesRuntime.bind(null, _namespace_);\n\nexport var cssStates = statesRuntime.bind(null, _namespace_);\nexport var style = _style_;\nexport var st: import(\"@stylable/runtime\").STFunction = _style_;\n\nexport var namespace = _namespace_;\nexport var classes = {\"root\":\"common2180636632__root\",\"column\":\"common2180636632__column\",\"fullHeight\":\"common2180636632__fullHeight\"};\nexport var keyframes = {}; \nexport var layers = {};\nexport var containers = {};\nexport var stVars = {}; \nexport var vars = {}; \n\n\n\n\n"],"mappings":";;;;AAGA,IAAAA,mBAAA,GAAAC,OAAA;AAHA;;AAOA,IAAIC,WAAW,GAAG,kBAAkB;AACpC,IAAIC,OAAO,GAAGC,kCAAc,CAACC,IAAI,CAAC,IAAI,EAAEH,WAAW,CAAC;AAE7C,IAAII,SAAS,GAAAC,OAAA,CAAAD,SAAA,GAAGE,iCAAa,CAACH,IAAI,CAAC,IAAI,EAAEH,WAAW,CAAC;AACrD,IAAIO,KAAK,GAAAF,OAAA,CAAAE,KAAA,GAAGN,OAAO;AACnB,IAAIO,EAA0C,GAAAH,OAAA,CAAAG,EAAA,GAAGP,OAAO;AAExD,IAAIQ,SAAS,GAAAJ,OAAA,CAAAI,SAAA,GAAGT,WAAW;AAC3B,IAAIU,OAAO,GAAAL,OAAA,CAAAK,OAAA,GAAG;EAAC,MAAM,EAAC,wBAAwB;EAAC,QAAQ,EAAC,0BAA0B;EAAC,YAAY,EAAC;AAA8B,CAAC;AAC/H,IAAIC,SAAS,GAAAN,OAAA,CAAAM,SAAA,GAAG,CAAC,CAAC;AAClB,IAAIC,MAAM,GAAAP,OAAA,CAAAO,MAAA,GAAG,CAAC,CAAC;AACf,IAAIC,UAAU,GAAAR,OAAA,CAAAQ,UAAA,GAAG,CAAC,CAAC;AACnB,IAAIC,MAAM,GAAAT,OAAA,CAAAS,MAAA,GAAG,CAAC,CAAC;AACf,IAAIC,IAAI,GAAAV,OAAA,CAAAU,IAAA,GAAG,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["_stylableEsmRuntime","require","_namespace_","_style_","classesRuntime","bind","cssStates","exports","statesRuntime","style","st","namespace","classes","keyframes","layers","containers","stVars","vars"],"sources":["../../../src/components/common.st.css.ts"],"sourcesContent":["// @ts-nocheck\n\n\nimport { classesRuntime, statesRuntime } from \"../stylable-esm-runtime.js\";\n\n\n\nvar _namespace_ = \"common1515351176\";\nvar _style_ = classesRuntime.bind(null, _namespace_);\n\nexport var cssStates = statesRuntime.bind(null, _namespace_);\nexport var style = _style_;\nexport var st: import(\"@stylable/runtime\").STFunction = _style_;\n\nexport var namespace = _namespace_;\nexport var classes = {\"root\":\"common1515351176__root\",\"column\":\"common1515351176__column\",\"fullHeight\":\"common1515351176__fullHeight\"};\nexport var keyframes = {}; \nexport var layers = {};\nexport var containers = {};\nexport var stVars = {}; \nexport var vars = {}; \n\n\n\n\n"],"mappings":";;;;AAGA,IAAAA,mBAAA,GAAAC,OAAA;AAHA;;AAOA,IAAIC,WAAW,GAAG,kBAAkB;AACpC,IAAIC,OAAO,GAAGC,kCAAc,CAACC,IAAI,CAAC,IAAI,EAAEH,WAAW,CAAC;AAE7C,IAAII,SAAS,GAAAC,OAAA,CAAAD,SAAA,GAAGE,iCAAa,CAACH,IAAI,CAAC,IAAI,EAAEH,WAAW,CAAC;AACrD,IAAIO,KAAK,GAAAF,OAAA,CAAAE,KAAA,GAAGN,OAAO;AACnB,IAAIO,EAA0C,GAAAH,OAAA,CAAAG,EAAA,GAAGP,OAAO;AAExD,IAAIQ,SAAS,GAAAJ,OAAA,CAAAI,SAAA,GAAGT,WAAW;AAC3B,IAAIU,OAAO,GAAAL,OAAA,CAAAK,OAAA,GAAG;EAAC,MAAM,EAAC,wBAAwB;EAAC,QAAQ,EAAC,0BAA0B;EAAC,YAAY,EAAC;AAA8B,CAAC;AAC/H,IAAIC,SAAS,GAAAN,OAAA,CAAAM,SAAA,GAAG,CAAC,CAAC;AAClB,IAAIC,MAAM,GAAAP,OAAA,CAAAO,MAAA,GAAG,CAAC,CAAC;AACf,IAAIC,UAAU,GAAAR,OAAA,CAAAQ,UAAA,GAAG,CAAC,CAAC;AACnB,IAAIC,MAAM,GAAAT,OAAA,CAAAS,MAAA,GAAG,CAAC,CAAC;AACf,IAAIC,IAAI,GAAAV,OAAA,CAAAU,IAAA,GAAG,CAAC,CAAC","ignoreList":[]}
@@ -10,7 +10,9 @@ function useCreateNestedOptimisticActions() {
10
10
  var _state$parent;
11
11
  return createOptimisticActions(collection, {
12
12
  ...params,
13
- cacheNamespace: state == null || (_state$parent = state.parent) == null ? void 0 : _state$parent.id
13
+ cacheNamespace: state == null || (_state$parent = state.parent) == null ? void 0 : _state$parent.id,
14
+ sequences: state == null ? void 0 : state.sequences,
15
+ query: state == null ? void 0 : state.query
14
16
  });
15
17
  }, []);
16
18
  }
@@ -1 +1 @@
1
- {"version":3,"names":["_react","require","_react2","useCreateNestedOptimisticActions","createOptimisticActions","useCreateOptimisticActions","useCallback","collection","state","params","_state$parent","cacheNamespace","parent","id"],"sources":["../../../src/hooks/useCreateNestedOptimisticActions.ts"],"sourcesContent":["import { useCallback } from 'react';\nimport {\n CollectionState,\n FiltersMap,\n CollectionOptimisticActionsBaseParams,\n KeyedItem,\n} from '@wix/bex-core';\nimport { useCreateOptimisticActions } from '@wix/bex-core/react';\n\nexport function useCreateNestedOptimisticActions() {\n const createOptimisticActions = useCreateOptimisticActions();\n\n return useCallback(\n <T, F extends FiltersMap>(\n collection: CollectionState<T, F>,\n state?: {\n readonly parent: KeyedItem<any> | null;\n },\n params?: Partial<CollectionOptimisticActionsBaseParams<T, F>>,\n ) =>\n createOptimisticActions(collection, {\n ...params,\n cacheNamespace: state?.parent?.id,\n }),\n [],\n );\n}\n"],"mappings":";;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAOA,IAAAC,OAAA,GAAAD,OAAA;AAEO,SAASE,gCAAgCA,CAAA,EAAG;EACjD,MAAMC,uBAAuB,GAAG,IAAAC,kCAA0B,EAAC,CAAC;EAE5D,OAAO,IAAAC,kBAAW,EAChB,CACEC,UAAiC,EACjCC,KAEC,EACDC,MAA6D;IAAA,IAAAC,aAAA;IAAA,OAE7DN,uBAAuB,CAACG,UAAU,EAAE;MAClC,GAAGE,MAAM;MACTE,cAAc,EAAEH,KAAK,aAAAE,aAAA,GAALF,KAAK,CAAEI,MAAM,qBAAbF,aAAA,CAAeG;IACjC,CAAC,CAAC;EAAA,GACJ,EACF,CAAC;AACH","ignoreList":[]}
1
+ {"version":3,"names":["_react","require","_react2","useCreateNestedOptimisticActions","createOptimisticActions","useCreateOptimisticActions","useCallback","collection","state","params","_state$parent","cacheNamespace","parent","id","sequences","query"],"sources":["../../../src/hooks/useCreateNestedOptimisticActions.ts"],"sourcesContent":["import { useCallback } from 'react';\nimport {\n CollectionOptimisticActionsBaseParams,\n CollectionOptimisticSequenceExecutor,\n CollectionState,\n FiltersMap,\n KeyedItem,\n QueryState,\n} from '@wix/bex-core';\nimport { useCreateOptimisticActions } from '@wix/bex-core/react';\n\nexport function useCreateNestedOptimisticActions() {\n const createOptimisticActions = useCreateOptimisticActions();\n\n return useCallback(\n <T, F extends FiltersMap>(\n collection: CollectionState<T, F>,\n state?: {\n readonly parent?: KeyedItem<any> | null;\n readonly sequences: Map<string, CollectionOptimisticSequenceExecutor>;\n readonly query: QueryState<F>;\n },\n params?: Partial<CollectionOptimisticActionsBaseParams<T, F>>,\n ) =>\n createOptimisticActions(collection, {\n ...params,\n cacheNamespace: state?.parent?.id,\n sequences: state?.sequences,\n query: state?.query,\n }),\n [],\n );\n}\n"],"mappings":";;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AASA,IAAAC,OAAA,GAAAD,OAAA;AAEO,SAASE,gCAAgCA,CAAA,EAAG;EACjD,MAAMC,uBAAuB,GAAG,IAAAC,kCAA0B,EAAC,CAAC;EAE5D,OAAO,IAAAC,kBAAW,EAChB,CACEC,UAAiC,EACjCC,KAIC,EACDC,MAA6D;IAAA,IAAAC,aAAA;IAAA,OAE7DN,uBAAuB,CAACG,UAAU,EAAE;MAClC,GAAGE,MAAM;MACTE,cAAc,EAAEH,KAAK,aAAAE,aAAA,GAALF,KAAK,CAAEI,MAAM,qBAAbF,aAAA,CAAeG,EAAE;MACjCC,SAAS,EAAEN,KAAK,oBAALA,KAAK,CAAEM,SAAS;MAC3BC,KAAK,EAAEP,KAAK,oBAALA,KAAK,CAAEO;IAChB,CAAC,CAAC;EAAA,GACJ,EACF,CAAC;AACH","ignoreList":[]}
@@ -5,15 +5,15 @@ exports.useOptionalCachedState = useOptionalCachedState;
5
5
  var _react = require("react");
6
6
  var _WixPatternsRouterProvider = require("../providers/WixPatternsRouterProvider");
7
7
  var _getCollectionComponentUniqueId = require("../utils/getCollectionComponentUniqueId");
8
- var _useCachedUpdatedEntity = require("./useCachedUpdatedEntity");
9
- function useOptionalCachedState(createState) {
8
+ var _useSyncCollectionOnEntityUpdate = require("./useSyncCollectionOnEntityUpdate");
9
+ function useOptionalCachedState(createState, getCollectionToUpdate) {
10
10
  const router = (0, _WixPatternsRouterProvider.useWixPatternsRouter)();
11
11
  const [maybeNewState] = (0, _react.useState)(() => createState());
12
12
  const [cachedState] = (0, _react.useState)(() => {
13
13
  const uniqueId = (0, _getCollectionComponentUniqueId.getCollectionComponentUniqueId)(maybeNewState);
14
14
  return router == null ? void 0 : router.stateRefs.get(uniqueId);
15
15
  });
16
- (0, _useCachedUpdatedEntity.useCachedUpdatedEntity)(cachedState);
16
+ (0, _useSyncCollectionOnEntityUpdate.useSyncCollectionOnEntityUpdate)(cachedState, getCollectionToUpdate);
17
17
  const [state] = (0, _react.useState)(() => {
18
18
  if (router) {
19
19
  router.isUsingCache = !!cachedState;
@@ -1 +1 @@
1
- {"version":3,"names":["_react","require","_WixPatternsRouterProvider","_getCollectionComponentUniqueId","_useCachedUpdatedEntity","useOptionalCachedState","createState","router","useWixPatternsRouter","maybeNewState","useState","cachedState","uniqueId","getCollectionComponentUniqueId","stateRefs","get","useCachedUpdatedEntity","state","isUsingCache","saveState"],"sources":["../../../src/hooks/useOptionalCachedState.ts"],"sourcesContent":["import { useState } from 'react';\nimport { useWixPatternsRouter } from '../providers/WixPatternsRouterProvider';\nimport { ICollectionComponentState } from '../state/ICollectionComponentState';\nimport { getCollectionComponentUniqueId } from '../utils/getCollectionComponentUniqueId';\nimport { useCachedUpdatedEntity } from './useCachedUpdatedEntity';\n\nexport function useOptionalCachedState<T extends ICollectionComponentState>(\n createState: () => T,\n): T {\n const router = useWixPatternsRouter();\n\n const [maybeNewState] = useState<T>(() => createState());\n const [cachedState] = useState<T | undefined>(() => {\n const uniqueId = getCollectionComponentUniqueId(maybeNewState);\n return router?.stateRefs.get(uniqueId) as T | undefined;\n });\n\n useCachedUpdatedEntity(cachedState);\n\n const [state] = useState<T>(() => {\n if (router) {\n router.isUsingCache = !!cachedState;\n }\n\n if (cachedState) {\n return cachedState;\n }\n\n router?.saveState<T>(maybeNewState);\n return maybeNewState;\n });\n\n return state;\n}\n"],"mappings":";;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,0BAAA,GAAAD,OAAA;AAEA,IAAAE,+BAAA,GAAAF,OAAA;AACA,IAAAG,uBAAA,GAAAH,OAAA;AAEO,SAASI,sBAAsBA,CACpCC,WAAoB,EACjB;EACH,MAAMC,MAAM,GAAG,IAAAC,+CAAoB,EAAC,CAAC;EAErC,MAAM,CAACC,aAAa,CAAC,GAAG,IAAAC,eAAQ,EAAI,MAAMJ,WAAW,CAAC,CAAC,CAAC;EACxD,MAAM,CAACK,WAAW,CAAC,GAAG,IAAAD,eAAQ,EAAgB,MAAM;IAClD,MAAME,QAAQ,GAAG,IAAAC,8DAA8B,EAACJ,aAAa,CAAC;IAC9D,OAAOF,MAAM,oBAANA,MAAM,CAAEO,SAAS,CAACC,GAAG,CAACH,QAAQ,CAAC;EACxC,CAAC,CAAC;EAEF,IAAAI,8CAAsB,EAACL,WAAW,CAAC;EAEnC,MAAM,CAACM,KAAK,CAAC,GAAG,IAAAP,eAAQ,EAAI,MAAM;IAChC,IAAIH,MAAM,EAAE;MACVA,MAAM,CAACW,YAAY,GAAG,CAAC,CAACP,WAAW;IACrC;IAEA,IAAIA,WAAW,EAAE;MACf,OAAOA,WAAW;IACpB;IAEAJ,MAAM,YAANA,MAAM,CAAEY,SAAS,CAAIV,aAAa,CAAC;IACnC,OAAOA,aAAa;EACtB,CAAC,CAAC;EAEF,OAAOQ,KAAK;AACd","ignoreList":[]}
1
+ {"version":3,"names":["_react","require","_WixPatternsRouterProvider","_getCollectionComponentUniqueId","_useSyncCollectionOnEntityUpdate","useOptionalCachedState","createState","getCollectionToUpdate","router","useWixPatternsRouter","maybeNewState","useState","cachedState","uniqueId","getCollectionComponentUniqueId","stateRefs","get","useSyncCollectionOnEntityUpdate","state","isUsingCache","saveState"],"sources":["../../../src/hooks/useOptionalCachedState.ts"],"sourcesContent":["import { useState } from 'react';\nimport { useWixPatternsRouter } from '../providers/WixPatternsRouterProvider';\nimport { ICollectionComponentState } from '../state/ICollectionComponentState';\nimport { getCollectionComponentUniqueId } from '../utils/getCollectionComponentUniqueId';\nimport { CollectionState } from '@wix/bex-core';\nimport { useSyncCollectionOnEntityUpdate } from './useSyncCollectionOnEntityUpdate';\n\nexport function useOptionalCachedState<S extends ICollectionComponentState>(\n createState: () => S,\n getCollectionToUpdate?: (\n state: S,\n entity: any,\n ) => CollectionState<any> | null,\n): S {\n const router = useWixPatternsRouter();\n\n const [maybeNewState] = useState<S>(() => createState());\n const [cachedState] = useState<S | undefined>(() => {\n const uniqueId = getCollectionComponentUniqueId(maybeNewState);\n return router?.stateRefs.get(uniqueId) as S | undefined;\n });\n\n useSyncCollectionOnEntityUpdate(cachedState, getCollectionToUpdate);\n\n const [state] = useState<S>(() => {\n if (router) {\n router.isUsingCache = !!cachedState;\n }\n\n if (cachedState) {\n return cachedState;\n }\n\n router?.saveState<S>(maybeNewState);\n return maybeNewState;\n });\n\n return state;\n}\n"],"mappings":";;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,0BAAA,GAAAD,OAAA;AAEA,IAAAE,+BAAA,GAAAF,OAAA;AAEA,IAAAG,gCAAA,GAAAH,OAAA;AAEO,SAASI,sBAAsBA,CACpCC,WAAoB,EACpBC,qBAGgC,EAC7B;EACH,MAAMC,MAAM,GAAG,IAAAC,+CAAoB,EAAC,CAAC;EAErC,MAAM,CAACC,aAAa,CAAC,GAAG,IAAAC,eAAQ,EAAI,MAAML,WAAW,CAAC,CAAC,CAAC;EACxD,MAAM,CAACM,WAAW,CAAC,GAAG,IAAAD,eAAQ,EAAgB,MAAM;IAClD,MAAME,QAAQ,GAAG,IAAAC,8DAA8B,EAACJ,aAAa,CAAC;IAC9D,OAAOF,MAAM,oBAANA,MAAM,CAAEO,SAAS,CAACC,GAAG,CAACH,QAAQ,CAAC;EACxC,CAAC,CAAC;EAEF,IAAAI,gEAA+B,EAACL,WAAW,EAAEL,qBAAqB,CAAC;EAEnE,MAAM,CAACW,KAAK,CAAC,GAAG,IAAAP,eAAQ,EAAI,MAAM;IAChC,IAAIH,MAAM,EAAE;MACVA,MAAM,CAACW,YAAY,GAAG,CAAC,CAACP,WAAW;IACrC;IAEA,IAAIA,WAAW,EAAE;MACf,OAAOA,WAAW;IACpB;IAEAJ,MAAM,YAANA,MAAM,CAAEY,SAAS,CAAIV,aAAa,CAAC;IACnC,OAAOA,aAAa;EACtB,CAAC,CAAC;EAEF,OAAOQ,KAAK;AACd","ignoreList":[]}
@@ -0,0 +1,90 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ exports.useSyncCollectionOnEntityReturn = useSyncCollectionOnEntityReturn;
5
+ var _react = require("react");
6
+ var _WixPatternsRouterProvider = require("../providers/WixPatternsRouterProvider");
7
+ var _react2 = require("@wix/bex-core/react");
8
+ var _useSelector = require("../useSelector");
9
+ function useSyncCollectionOnEntityReturn({
10
+ cachedState,
11
+ updateCollection,
12
+ checkIfViewSynced,
13
+ getEntityFromRouterState,
14
+ getCollectionToUpdate
15
+ }) {
16
+ const container = (0, _react2.useWixPatternsContainer)();
17
+ const router = (0, _WixPatternsRouterProvider.useWixPatternsRouter)();
18
+ const routeState = (0, _useSelector.useSelector)(() => router == null ? void 0 : router.currentState);
19
+ const entity = (0, _react.useMemo)(() => routeState ? getEntityFromRouterState(routeState) : null, [getEntityFromRouterState, routeState]);
20
+ const collection = (0, _react.useMemo)(() => {
21
+ if (!cachedState) {
22
+ return null;
23
+ }
24
+ return (getCollectionToUpdate == null ? void 0 : getCollectionToUpdate(cachedState, entity)) || cachedState.toolbar.collection;
25
+ }, [cachedState, entity]);
26
+ const [currentToast, setCurrentToast] = (0, _react.useState)(null);
27
+ const showViewUpdatedToast = () => {
28
+ const toast = container.showToast == null ? void 0 : container.showToast({
29
+ type: 'STANDARD',
30
+ timeout: 'NONE',
31
+ message: container.translate('cairo.updatedView.collectionPage.toast.desc'),
32
+ onCloseClick: () => {
33
+ setCurrentToast(null);
34
+ },
35
+ biName: 'cairo-collection-page-updated-toast',
36
+ action: {
37
+ text: container.translate('cairo.updatedView.collectionPage.toast.cta'),
38
+ onClick: () => {
39
+ collection == null || collection.refreshAllPages();
40
+ setCurrentToast(null);
41
+ }
42
+ }
43
+ });
44
+ if (toast) {
45
+ setCurrentToast(toast);
46
+ }
47
+ };
48
+ (0, _react.useEffect)(() => {
49
+ if (collection && entity) {
50
+ try {
51
+ updateCollection(collection, entity);
52
+ setTimeout(() => {
53
+ checkIfViewSynced(collection, entity).then(isViewSynced => {
54
+ if (!isViewSynced) {
55
+ showViewUpdatedToast();
56
+ }
57
+ });
58
+ }, 3000);
59
+ } catch (e) {} finally {
60
+ if (router) {
61
+ router.setCurrentState(null);
62
+ }
63
+ }
64
+ }
65
+ }, [cachedState, routeState, collection, entity]);
66
+ (0, _react.useEffect)(() => {
67
+ if (!currentToast || !cachedState) {
68
+ return () => {};
69
+ }
70
+ const removeToast = () => {
71
+ currentToast == null || currentToast.remove();
72
+ setCurrentToast(null);
73
+ };
74
+ const onFetch = () => {
75
+ removeToast();
76
+ if (router) {
77
+ router.isUsingCache = false;
78
+ }
79
+ };
80
+ collection == null || collection.emitter.on('fetch', () => {
81
+ onFetch();
82
+ });
83
+ return () => {
84
+ collection == null || collection.emitter.off('fetch', () => {
85
+ onFetch();
86
+ });
87
+ };
88
+ }, [currentToast, collection]);
89
+ }
90
+ //# sourceMappingURL=useSyncCollectionOnEntityReturn.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","require","_WixPatternsRouterProvider","_react2","_useSelector","useSyncCollectionOnEntityReturn","cachedState","updateCollection","checkIfViewSynced","getEntityFromRouterState","getCollectionToUpdate","container","useWixPatternsContainer","router","useWixPatternsRouter","routeState","useSelector","currentState","entity","useMemo","collection","toolbar","currentToast","setCurrentToast","useState","showViewUpdatedToast","toast","showToast","type","timeout","message","translate","onCloseClick","biName","action","text","onClick","refreshAllPages","useEffect","setTimeout","then","isViewSynced","e","setCurrentState","removeToast","remove","onFetch","isUsingCache","emitter","on","off"],"sources":["../../../src/hooks/useSyncCollectionOnEntityReturn.ts"],"sourcesContent":["import { useEffect, useMemo, useState } from 'react';\nimport { useWixPatternsRouter } from '../providers/WixPatternsRouterProvider';\nimport { ICollectionComponentState } from '../state/ICollectionComponentState';\nimport { useWixPatternsContainer } from '@wix/bex-core/react';\nimport { CollectionState, RemoveToast } from '@wix/bex-core';\nimport { useSelector } from '../useSelector';\n\nexport function useSyncCollectionOnEntityReturn<\n S extends ICollectionComponentState,\n>({\n cachedState,\n updateCollection,\n checkIfViewSynced,\n getEntityFromRouterState,\n getCollectionToUpdate,\n}: {\n cachedState?: S;\n updateCollection: (\n collectionToUpdate: CollectionState<any>,\n entity: any,\n ) => void;\n checkIfViewSynced: (\n collectionsToUpdate: CollectionState<any>,\n entity: any,\n ) => Promise<boolean>;\n getEntityFromRouterState: (state: any) => any;\n getCollectionToUpdate?: (\n state: S,\n entity: any,\n ) => CollectionState<any> | null;\n}) {\n const container = useWixPatternsContainer();\n const router = useWixPatternsRouter();\n\n const routeState = useSelector(() => router?.currentState);\n\n const entity = useMemo(\n () => (routeState ? getEntityFromRouterState(routeState) : null),\n [getEntityFromRouterState, routeState],\n );\n const collection = useMemo(() => {\n if (!cachedState) {\n return null;\n }\n\n return (\n getCollectionToUpdate?.(cachedState, entity) ||\n cachedState.toolbar.collection\n );\n }, [cachedState, entity]);\n\n const [currentToast, setCurrentToast] = useState<{\n remove: RemoveToast;\n } | null>(null);\n\n const showViewUpdatedToast = () => {\n const toast = container.showToast?.({\n type: 'STANDARD',\n timeout: 'NONE',\n message: container.translate(\n 'cairo.updatedView.collectionPage.toast.desc',\n ),\n onCloseClick: () => {\n setCurrentToast(null);\n },\n biName: 'cairo-collection-page-updated-toast',\n action: {\n text: container.translate('cairo.updatedView.collectionPage.toast.cta'),\n onClick: () => {\n collection?.refreshAllPages();\n setCurrentToast(null);\n },\n },\n });\n\n if (toast) {\n setCurrentToast(toast);\n }\n };\n\n useEffect(() => {\n if (collection && entity) {\n try {\n updateCollection(collection, entity);\n setTimeout(() => {\n checkIfViewSynced(collection, entity).then(\n (isViewSynced: boolean) => {\n if (!isViewSynced) {\n showViewUpdatedToast();\n }\n },\n );\n }, 3000);\n } catch (e) {\n } finally {\n if (router) {\n router.setCurrentState(null);\n }\n }\n }\n }, [cachedState, routeState, collection, entity]);\n\n useEffect(() => {\n if (!currentToast || !cachedState) {\n return () => {};\n }\n\n const removeToast = () => {\n currentToast?.remove();\n setCurrentToast(null);\n };\n\n const onFetch = () => {\n removeToast();\n if (router) {\n router.isUsingCache = false;\n }\n };\n\n collection?.emitter.on('fetch', () => {\n onFetch();\n });\n return () => {\n collection?.emitter.off('fetch', () => {\n onFetch();\n });\n };\n }, [currentToast, collection]);\n}\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ exports.useSyncCollectionOnEntityUpdate = useSyncCollectionOnEntityUpdate;
5
+ var _react = require("react");
6
+ var _useSyncCollectionOnEntityReturn = require("./useSyncCollectionOnEntityReturn");
7
+ function useSyncCollectionOnEntityUpdate(cachedState, getCollectionToUpdate) {
8
+ const updateCollection = (0, _react.useCallback)((collection, updatedEntity) => {
9
+ collection.changeItem(updatedEntity);
10
+ }, []);
11
+ const checkIfViewSynced = (0, _react.useCallback)(async (collection, entity) => {
12
+ var _collection$getKeyedI;
13
+ const itemKey = collection.itemKey(entity);
14
+ let fetchedPageInfo = null;
15
+ for (let fetchIndex = collection.fetchesHistory.length - 1; fetchIndex >= 0; fetchIndex--) {
16
+ const fetch = collection.fetchesHistory[fetchIndex];
17
+ if (fetch.itemsKeys.some(fetchedItemKey => fetchedItemKey === itemKey)) {
18
+ fetchedPageInfo = fetch.queryPageInfo;
19
+ break;
20
+ }
21
+ }
22
+ if (!fetchedPageInfo) {
23
+ console.error('Fetched page info for updated entity not found');
24
+ return false;
25
+ }
26
+ const itemQuery = {
27
+ ...collection.query.asComputed,
28
+ ...fetchedPageInfo
29
+ };
30
+ const currentIndex = (_collection$getKeyedI = collection.getKeyedItem(itemKey)) == null ? void 0 : _collection$getKeyedI.indexWithinPage;
31
+ const updatedData = await collection.fetchData(itemQuery);
32
+ const newIndex = updatedData.items.findIndex(item => itemKey === collection.itemKey(item));
33
+ return newIndex === currentIndex;
34
+ }, [cachedState]);
35
+ (0, _useSyncCollectionOnEntityReturn.useSyncCollectionOnEntityReturn)({
36
+ cachedState,
37
+ updateCollection,
38
+ checkIfViewSynced,
39
+ getEntityFromRouterState: state => state._updatedEntity,
40
+ getCollectionToUpdate
41
+ });
42
+ }
43
+ //# sourceMappingURL=useSyncCollectionOnEntityUpdate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","require","_useSyncCollectionOnEntityReturn","useSyncCollectionOnEntityUpdate","cachedState","getCollectionToUpdate","updateCollection","useCallback","collection","updatedEntity","changeItem","checkIfViewSynced","entity","_collection$getKeyedI","itemKey","fetchedPageInfo","fetchIndex","fetchesHistory","length","fetch","itemsKeys","some","fetchedItemKey","queryPageInfo","console","error","itemQuery","query","asComputed","currentIndex","getKeyedItem","indexWithinPage","updatedData","fetchData","newIndex","items","findIndex","item","useSyncCollectionOnEntityReturn","getEntityFromRouterState","state","_updatedEntity"],"sources":["../../../src/hooks/useSyncCollectionOnEntityUpdate.ts"],"sourcesContent":["import { useCallback } from 'react';\n\nimport { ICollectionComponentState } from '../state/ICollectionComponentState';\nimport { CollectionState } from '@wix/bex-core';\nimport { useSyncCollectionOnEntityReturn } from './useSyncCollectionOnEntityReturn';\n\nexport function useSyncCollectionOnEntityUpdate<\n S extends ICollectionComponentState,\n>(\n cachedState?: S,\n getCollectionToUpdate?: (\n state: S,\n entity: any,\n ) => CollectionState<any> | null,\n) {\n const updateCollection = useCallback(\n (collection: CollectionState<any, any>, updatedEntity: any) => {\n collection.changeItem(updatedEntity);\n },\n [],\n );\n\n const checkIfViewSynced = useCallback(\n async (collection: CollectionState<any, any>, entity: any) => {\n const itemKey = collection.itemKey(entity);\n let fetchedPageInfo = null;\n for (\n let fetchIndex = collection.fetchesHistory.length - 1;\n fetchIndex >= 0;\n fetchIndex--\n ) {\n const fetch = collection.fetchesHistory[fetchIndex];\n if (\n fetch.itemsKeys.some((fetchedItemKey) => fetchedItemKey === itemKey)\n ) {\n fetchedPageInfo = fetch.queryPageInfo;\n break;\n }\n }\n\n if (!fetchedPageInfo) {\n console.error('Fetched page info for updated entity not found');\n return false;\n }\n\n const itemQuery = {\n ...collection.query.asComputed,\n ...fetchedPageInfo,\n };\n\n const currentIndex = collection.getKeyedItem(itemKey)?.indexWithinPage;\n\n const updatedData = await collection.fetchData(itemQuery);\n const newIndex = updatedData.items.findIndex(\n (item) => itemKey === collection.itemKey(item),\n );\n\n return newIndex === currentIndex;\n },\n [cachedState],\n );\n\n useSyncCollectionOnEntityReturn({\n cachedState,\n updateCollection,\n checkIfViewSynced,\n getEntityFromRouterState: (state: any) => state._updatedEntity,\n getCollectionToUpdate,\n });\n}\n"],"mappings":";;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAIA,IAAAC,gCAAA,GAAAD,OAAA;AAEO,SAASE,+BAA+BA,CAG7CC,WAAe,EACfC,qBAGgC,EAChC;EACA,MAAMC,gBAAgB,GAAG,IAAAC,kBAAW,EAClC,CAACC,UAAqC,EAAEC,aAAkB,KAAK;IAC7DD,UAAU,CAACE,UAAU,CAACD,aAAa,CAAC;EACtC,CAAC,EACD,EACF,CAAC;EAED,MAAME,iBAAiB,GAAG,IAAAJ,kBAAW,EACnC,OAAOC,UAAqC,EAAEI,MAAW,KAAK;IAAA,IAAAC,qBAAA;IAC5D,MAAMC,OAAO,GAAGN,UAAU,CAACM,OAAO,CAACF,MAAM,CAAC;IAC1C,IAAIG,eAAe,GAAG,IAAI;IAC1B,KACE,IAAIC,UAAU,GAAGR,UAAU,CAACS,cAAc,CAACC,MAAM,GAAG,CAAC,EACrDF,UAAU,IAAI,CAAC,EACfA,UAAU,EAAE,EACZ;MACA,MAAMG,KAAK,GAAGX,UAAU,CAACS,cAAc,CAACD,UAAU,CAAC;MACnD,IACEG,KAAK,CAACC,SAAS,CAACC,IAAI,CAAEC,cAAc,IAAKA,cAAc,KAAKR,OAAO,CAAC,EACpE;QACAC,eAAe,GAAGI,KAAK,CAACI,aAAa;QACrC;MACF;IACF;IAEA,IAAI,CAACR,eAAe,EAAE;MACpBS,OAAO,CAACC,KAAK,CAAC,gDAAgD,CAAC;MAC/D,OAAO,KAAK;IACd;IAEA,MAAMC,SAAS,GAAG;MAChB,GAAGlB,UAAU,CAACmB,KAAK,CAACC,UAAU;MAC9B,GAAGb;IACL,CAAC;IAED,MAAMc,YAAY,IAAAhB,qBAAA,GAAGL,UAAU,CAACsB,YAAY,CAAChB,OAAO,CAAC,qBAAhCD,qBAAA,CAAkCkB,eAAe;IAEtE,MAAMC,WAAW,GAAG,MAAMxB,UAAU,CAACyB,SAAS,CAACP,SAAS,CAAC;IACzD,MAAMQ,QAAQ,GAAGF,WAAW,CAACG,KAAK,CAACC,SAAS,CACzCC,IAAI,IAAKvB,OAAO,KAAKN,UAAU,CAACM,OAAO,CAACuB,IAAI,CAC/C,CAAC;IAED,OAAOH,QAAQ,KAAKL,YAAY;EAClC,CAAC,EACD,CAACzB,WAAW,CACd,CAAC;EAED,IAAAkC,gEAA+B,EAAC;IAC9BlC,WAAW;IACXE,gBAAgB;IAChBK,iBAAiB;IACjB4B,wBAAwB,EAAGC,KAAU,IAAKA,KAAK,CAACC,cAAc;IAC9DpC;EACF,CAAC,CAAC;AACJ","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["_tableColumnPublicApiTest","c"],"sources":["../../../src/model/tableColumn.ts"],"sourcesContent":["import type { TableColumn as TableColumnWSR } from '@wix/design-system';\nimport type { KeyedItem, SortMode, SortOrder } from '@wix/bex-core';\nimport { CSSProperties, ReactNode } from 'react';\n\ntype TableColumnBase<T = any> = Omit<\n TableColumnWSR<T>,\n 'sortDescending' | 'sortable' | 'infoTooltipProps' | 'style'\n> & {\n style?:\n | CSSProperties\n | ((\n column: TableColumnWSR,\n rowData: KeyedItem<T>,\n rowNum: number,\n ) => CSSProperties);\n reorderDisabled?: boolean;\n defaultSortOrder?: SortOrder;\n sortMode?: SortMode;\n infoTooltipProps?: TableColumnWSR['infoTooltipProps'] & {\n panelContent?: ReactNode;\n };\n};\n\n// disallow specifying `hideable` / `defaultHidden` or setting `hiddenFromCustomColumnsSelection` as false when `id` is missing\ninterface TableColumnOptional<T> extends TableColumnBase<T> {\n id?: string;\n name?: string;\n hiddenFromCustomColumnsSelection?: undefined | true;\n hideable?: undefined;\n defaultHidden?: undefined;\n}\n\n// common case for custom column definition\ninterface TableColumnCustom<T> extends TableColumnBase<T> {\n id: string;\n name: string;\n hiddenFromCustomColumnsSelection?: false;\n hideable?: true;\n defaultHidden?: boolean;\n}\n\n// allow `name` to be optional when `title` exists\ninterface TableColumnCustomOptionalName<T> extends TableColumnBase<T> {\n id: string;\n name?: string;\n title: TableColumnBase['title'];\n hiddenFromCustomColumnsSelection?: false;\n hideable?: true;\n defaultHidden?: boolean;\n}\n\n// force `defaultHidden=false|undefined` when `hideable=false`\ninterface TableColumnCustomDefaultHidden<T> extends TableColumnBase<T> {\n id: string;\n name?: string;\n title: TableColumnBase['title'];\n hiddenFromCustomColumnsSelection?: false;\n hideable: false;\n defaultHidden?: undefined | false;\n}\n\nexport type CustomColumnConfig<T> =\n | TableColumnOptional<T>\n | TableColumnCustom<T>\n | TableColumnCustomDefaultHidden<T>\n | TableColumnCustomOptionalName<T>;\n\nexport interface SortableColumnConfig<T> extends TableColumnBase<T> {\n id: string;\n sortable: true;\n}\n\nexport interface NotSortableColumnConfig<T> extends TableColumnBase<T> {\n id?: string;\n sortable?: false;\n}\n\nexport type SortableConfig<T> =\n | SortableColumnConfig<T>\n | NotSortableColumnConfig<T>;\n\nexport type TableColumn<T> = CustomColumnConfig<T> & SortableConfig<T>;\n\nexport interface Column {\n /**\n * A unique identifier for the column. This value is required to enable [custom columns](./?path=/story/features-display-custom-columns--overview) or [sortable columns](./?path=/story/features-sort-sortable-columns-sortable-columns--sortable-columns).\n * @external\n */\n id: string;\n /**\n * A name for the column. This value is shown in the [custom columns](./?path=/story/features-display-custom-columns--overview) dropdown.\n * @external\n */\n name: string;\n /**\n * The text to be shown at the top of the column.\n * @external\n */\n title: TableColumnBase['title'];\n /**\n * Hides the column from the custom column selection panel, making it always visible. Relevant for [custom columns](./?path=/story/features-display-custom-columns--overview). \n * @external\n */\n hiddenFromCustomColumnsSelection?: boolean;\n /**\n * When `false`, the column is always selected and displayed. Relevant for [custom columns](./?path=/story/features-display-custom-columns--overview). \n */\n hideable?: boolean;\n /**\n * When `true`, disables drag and drop for the column.\n * @external\n */\n reorderDisabled?: boolean;\n /**\n * When `true`, makes the column a [sortable column](./?path=/story/features-sort-sortable-columns-sortable-columns--sortable-columns).\n * @external\n */\n sortable?: boolean;\n sortDescending?: boolean;\n sortMode?: SortMode;\n /**\n * Determines the default sort order for the column, either `asc` or `desc`. The column must be a [sortable column](./?path=/story/features-sort-sortable-columns-sortable-columns--sortable-columns).\n * @external\n */\n defaultSortOrder?: SortOrder;\n /**\n * For [custom columns](./?path=/story/features-display-custom-columns--overview), when `true`, this property causes the column to be unchecked and thus not shown by default. This isn't relevant when `hideable` `=` `false`.\n * @external\n */\n defaultHidden?: boolean;\n dataExtension?: { id: string; editable: boolean };\n infoTooltipProps?: {\n content?: ReactNode;\n panelContent?: ReactNode;\n };\n /**\n * A callback that is called for each row in the data to display the value of this row for the specified column.\n * @external\n */\n render: TableColumnWSR['render'];\n width?: TableColumnWSR['width'];\n style?: TableColumnWSR['style'];\n}\n\n// @ts-ignore\nfunction _tableColumnPublicApiTest<T>(\n c: TableColumn<T>,\n): Omit<Column, 'id' | 'name'> & Pick<Partial<Column>, 'id' | 'name'> {\n return c;\n}\n"],"mappings":";;;AAuBA;;AASA;;AASA;;AAUA;;AA6FA;AACA,SAASA,yBAAyBA,CAChCC,CAAiB,EACmD;EACpE,OAAOA,CAAC;AACV","ignoreList":[]}
1
+ {"version":3,"names":["_tableColumnPublicApiTest","c"],"sources":["../../../src/model/tableColumn.ts"],"sourcesContent":["import type { TableColumn as TableColumnWSR } from '@wix/design-system';\nimport type { KeyedItem, SortMode, SortOrder } from '@wix/bex-core';\nimport { CSSProperties, ReactNode } from 'react';\n\ntype TableColumnBase<T = any> = Omit<\n TableColumnWSR<T>,\n 'sortDescending' | 'sortable' | 'infoTooltipProps' | 'style'\n> & {\n style?:\n | CSSProperties\n | ((\n column: TableColumnWSR,\n rowData: KeyedItem<T>,\n rowNum: number,\n ) => CSSProperties);\n reorderDisabled?: boolean;\n defaultSortOrder?: SortOrder;\n sortMode?: SortMode;\n infoTooltipProps?: TableColumnWSR['infoTooltipProps'] & {\n panelContent?: ReactNode;\n };\n};\n\n// disallow specifying `hideable` / `defaultHidden` or setting `hiddenFromCustomColumnsSelection` as false when `id` is missing\ninterface TableColumnOptional<T> extends TableColumnBase<T> {\n id?: string;\n name?: string;\n hiddenFromCustomColumnsSelection?: undefined | true;\n hideable?: undefined;\n defaultHidden?: undefined;\n}\n\n// common case for custom column definition\ninterface TableColumnCustom<T> extends TableColumnBase<T> {\n id: string;\n name: string;\n hiddenFromCustomColumnsSelection?: false;\n hideable?: true;\n defaultHidden?: boolean;\n}\n\n// allow `name` to be optional when `title` exists\ninterface TableColumnCustomOptionalName<T> extends TableColumnBase<T> {\n id: string;\n name?: string;\n title: TableColumnBase['title'];\n hiddenFromCustomColumnsSelection?: false;\n hideable?: true;\n defaultHidden?: boolean;\n}\n\n// force `defaultHidden=false|undefined` when `hideable=false`\ninterface TableColumnCustomDefaultHidden<T> extends TableColumnBase<T> {\n id: string;\n name?: string;\n title: TableColumnBase['title'];\n hiddenFromCustomColumnsSelection?: false;\n hideable: false;\n defaultHidden?: undefined | false;\n}\n\nexport type CustomColumnConfig<T> =\n | TableColumnOptional<T>\n | TableColumnCustom<T>\n | TableColumnCustomDefaultHidden<T>\n | TableColumnCustomOptionalName<T>;\n\nexport interface SortableColumnConfig<T> extends TableColumnBase<T> {\n id: string;\n sortable: true;\n}\n\nexport interface NotSortableColumnConfig<T> extends TableColumnBase<T> {\n id?: string;\n sortable?: false;\n}\n\nexport type SortableConfig<T> =\n | SortableColumnConfig<T>\n | NotSortableColumnConfig<T>;\n\nexport type TableColumn<T> = CustomColumnConfig<T> & SortableConfig<T>;\n\nexport interface Column {\n /**\n * A unique identifier for the column. This value is required to enable [custom columns](./?path=/story/features-display-custom-columns--overview) or [sortable columns](./?path=/story/features-sort-sortable-columns-sortable-columns--sortable-columns).\n * @external\n */\n id: string;\n /**\n * A name for the column. This value is shown in the [custom columns](./?path=/story/features-display-custom-columns--overview) dropdown.\n * @external\n */\n name: string;\n /**\n * The text to be shown at the top of the column.\n * @external\n */\n title: TableColumnBase['title'];\n /**\n * Hides the column from the custom column selection panel, making it always visible. Relevant for [custom columns](./?path=/story/features-display-custom-columns--overview).\n * @external\n */\n hiddenFromCustomColumnsSelection?: boolean;\n /**\n * When `false`, the column is always selected and displayed. Relevant for [custom columns](./?path=/story/features-display-custom-columns--overview).\n */\n hideable?: boolean;\n /**\n * When `true`, disables drag and drop for the column.\n * @external\n */\n reorderDisabled?: boolean;\n /**\n * When `true`, makes the column a [sortable column](./?path=/story/features-sort-sortable-columns-sortable-columns--sortable-columns).\n * @external\n */\n sortable?: boolean;\n sortDescending?: boolean;\n sortMode?: SortMode;\n /**\n * Determines the default sort order for the column, either `asc` or `desc`. The column must be a [sortable column](./?path=/story/features-sort-sortable-columns-sortable-columns--sortable-columns).\n * @external\n */\n defaultSortOrder?: SortOrder;\n /**\n * For [custom columns](./?path=/story/features-display-custom-columns--overview), when `true`, this property causes the column to be unchecked and thus not shown by default. This isn't relevant when `hideable` `=` `false`.\n * @external\n */\n defaultHidden?: boolean;\n dataExtension?: { id: string; editable: boolean };\n infoTooltipProps?: {\n content?: ReactNode;\n panelContent?: ReactNode;\n };\n /**\n * A callback that is called for each row in the data to display the value of this row for the specified column.\n * @external\n */\n render: TableColumnWSR['render'];\n width?: TableColumnWSR['width'];\n style?: TableColumnWSR['style'];\n}\n\n// @ts-ignore\nfunction _tableColumnPublicApiTest<T>(\n c: TableColumn<T>,\n): Omit<Column, 'id' | 'name'> & Pick<Partial<Column>, 'id' | 'name'> {\n return c;\n}\n"],"mappings":";;;AAuBA;;AASA;;AASA;;AAUA;;AA6FA;AACA,SAASA,yBAAyBA,CAChCC,CAAiB,EACmD;EACpE,OAAOA,CAAC;AACV","ignoreList":[]}
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ exports.createOptimisticActionsOrderByModeReaction = createOptimisticActionsOrderByModeReaction;
5
+ var _mobx = require("mobx");
6
+ function createOptimisticActionsOrderByModeReaction(dnd, collection) {
7
+ return (0, _mobx.reaction)(() => dnd.isDisabled, isDisabled => {
8
+ const {
9
+ _optimisticActions
10
+ } = collection;
11
+ if (!_optimisticActions) {
12
+ return;
13
+ }
14
+ _optimisticActions._orderByMode = isDisabled ? 'orders' : 'moves';
15
+ }, {
16
+ fireImmediately: true
17
+ });
18
+ }
19
+ //# sourceMappingURL=createOptimisticActionsOrderByModeReaction.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_mobx","require","createOptimisticActionsOrderByModeReaction","dnd","collection","reaction","isDisabled","_optimisticActions","_orderByMode","fireImmediately"],"sources":["../../../../src/state/DragAndDrop/createOptimisticActionsOrderByModeReaction.ts"],"sourcesContent":["import { DragAndDropState } from '../../components/DragAndDrop';\nimport { CollectionState, FiltersMap } from '@wix/bex-core';\nimport { reaction } from 'mobx';\n\nexport function createOptimisticActionsOrderByModeReaction<\n T,\n F extends FiltersMap,\n>(dnd: DragAndDropState<T, F>, collection: CollectionState<T, F>) {\n return reaction(\n () => dnd.isDisabled,\n (isDisabled) => {\n const { _optimisticActions } = collection;\n if (!_optimisticActions) {\n return;\n }\n\n _optimisticActions._orderByMode = isDisabled ? 'orders' : 'moves';\n },\n { fireImmediately: true },\n );\n}\n"],"mappings":";;;;AAEA,IAAAA,KAAA,GAAAC,OAAA;AAEO,SAASC,0CAA0CA,CAGxDC,GAA2B,EAAEC,UAAiC,EAAE;EAChE,OAAO,IAAAC,cAAQ,EACb,MAAMF,GAAG,CAACG,UAAU,EACnBA,UAAU,IAAK;IACd,MAAM;MAAEC;IAAmB,CAAC,GAAGH,UAAU;IACzC,IAAI,CAACG,kBAAkB,EAAE;MACvB;IACF;IAEAA,kBAAkB,CAACC,YAAY,GAAGF,UAAU,GAAG,QAAQ,GAAG,OAAO;EACnE,CAAC,EACD;IAAEG,eAAe,EAAE;EAAK,CAC1B,CAAC;AACH","ignoreList":[]}
@@ -120,17 +120,16 @@ class EntityPageState {
120
120
  this.navigateToParent();
121
121
  }
122
122
  navigateToParent(updatedEntity) {
123
- const entityString = updatedEntity ? JSON.stringify({
123
+ const entityObject = {
124
124
  _updatedEntity: updatedEntity
125
- }) : undefined;
125
+ };
126
126
  if (this._withinRouter) {
127
127
  this.container.navigate(this._parentPath, {
128
- state: entityString
128
+ state: entityObject
129
129
  });
130
130
  } else {
131
131
  this.container.navigateTo({
132
- pageId: this._parentPageId,
133
- appState: entityString
132
+ pageId: this._parentPageId
134
133
  });
135
134
  }
136
135
  }
@@ -1 +1 @@
1
- {"version":3,"names":["_bexCore","require","_mobx","_EntityPageStateBIReporter","_events","EntityPageState","constructor","params","_defineProperty2","default","TaskState","undefined","FormPageState","EventEmitter","fetch","onSave","saveSuccessToast","saveErrorToast","_form","form","_parentPageId","parentPageId","transformEntityToCollectionItem","anEntity","_parentPath","parentPath","container","reportBI","createBILogger","componentType","pageType","route","window","location","pathname","bi","EntityPageStateBIReporter","entityPageState","init","makeObservable","handleSubmit","action","isFetching","computed","_entity","observable","ref","setEntity","_isFormDirty","isFormDirty","withinRouter","_withinRouter","_checkPageParams","initTask","onBeforeUnload","onBeforeUnloadSubscription","event","formState","isSubmitSuccessful","preventDefault","reportOnBeforeUnload","runOnce","_this$bi$appLoaded","_this$bi","data","Promise","all","status","promise","entity","appLoaded","call","remove","retryFetch","newEntity","isLoading","isIdle","flag","_isSubmitSuccessful","formPage","isDirty","onCancel","reportButtonClick","ctaName","navigateToParent","updatedEntity","entityString","JSON","stringify","_updatedEntity","navigate","state","navigateTo","pageId","appState","_showErrorToast","err","e","_this$saveErrorToast","_this$container$showT","_this$container","errorToast","message","showTryAgain","tryAgain","showToast","type","biName","translate","code","uiType","text","onClick","reportSaveTryAgain","removeToastOnClick","_showSuccessToast","_this$saveSuccessToas","_this$container$showT2","_this$container2","submitTask","events","emit","isValid","extraFields","validate","run","savedEntity","onSaveResult","widgetsFormData","errorMonitor","captureException","setError","transformedItem","Error","exports"],"sources":["../../../../src/state/EntityPage/EntityPageState.ts"],"sourcesContent":["import {\n FormPageState,\n ReportBI,\n TaskState,\n WixPatternsContainer,\n} from '@wix/bex-core';\nimport { action, computed, makeObservable, observable } from 'mobx';\nimport { FieldValues, UseFormReturn } from 'react-hook-form';\nimport { EntityPageStateBIReporter } from './EntityPageStateBIReporter';\nimport { EventEmitter, TypedEmitter } from '@wix/bex-core/events';\n\ntype OnSaveParams = {\n widgetsFormData: { [key: string]: any };\n};\n\nexport interface EntityPageStateParams<T, V extends FieldValues = FieldValues> {\n /**\n * A function that fetches the entity data.\n * @returns a promise that resolves to an object containing the entity.\n */\n fetch: () => Promise<{ entity: T | undefined }>;\n\n /**\n * A function to handle the save action.\n * @returns promise that resolves to an object that contains a 'updatedEntity' object.\n */\n onSave: (params: OnSaveParams) => Promise<{ updatedEntity: T }>;\n\n /**\n * An optional object with an optional message, or it can directly get a string message.\n */\n saveSuccessToast?: { message?: string } | string;\n\n /**\n * An optional function to display an error toast message when a save operation fails.\n * @returns an object with an optional message and a `tryAgain` flag, or it can directly return a string message.\n */\n saveErrorToast?: (\n err: unknown,\n ) => { message?: string; tryAgain?: boolean } | string;\n\n /**\n * An optional function to transform the updated entity data before it is passed to the collection page.\n * @param entity the updated entity.\n * @returns an object representing the entity in the collection page.\n */\n transformEntityToCollectionItem?: (entity: T) => any;\n\n /**\n * An object representing the form state and methods, typically returned by a useForm hook.\n */\n form: UseFormReturn<V>;\n\n /**\n * An object representing the container, possibly for dependency injection or component management.\n */\n container: WixPatternsContainer;\n\n /**\n * A string representing the ID of the parent page.\n * Must be passed if not using Patterns Router\n */\n parentPageId?: string;\n\n /**\n * A string representing the path of the parent page.\n * Must be passed if using Patterns Router\n */\n parentPath?: string;\n}\n\nexport interface EntityPageStateInterface {}\n\nexport interface EntityPageWidgetState {\n validate: () => Promise<{ isValid: boolean; values?: any }>;\n isDirty: boolean;\n}\n\nexport class EntityPageState<T, V extends FieldValues = FieldValues>\n implements EntityPageStateInterface\n{\n readonly initTask = new TaskState();\n readonly submitTask = new TaskState();\n\n readonly fetch: EntityPageStateParams<T>['fetch'];\n readonly onSave: EntityPageStateParams<T, V>['onSave'];\n readonly saveSuccessToast?: EntityPageStateParams<T>['saveSuccessToast'];\n readonly saveErrorToast?: EntityPageStateParams<T>['saveErrorToast'];\n readonly transformEntityToCollectionItem: (entity: T) => any;\n\n _entity: T | null = null;\n private readonly _form: UseFormReturn<V>;\n private readonly _parentPageId?: string;\n private readonly _parentPath?: string;\n\n readonly container: WixPatternsContainer;\n readonly reportBI: ReportBI;\n readonly bi: EntityPageStateBIReporter<T, V>;\n\n _isSubmitSuccessful?: boolean = undefined;\n _isFormDirty = false;\n\n _withinRouter = false;\n\n readonly formPage = new FormPageState();\n\n readonly events = new EventEmitter() as TypedEmitter<{\n save: () => void;\n saveError: (err: unknown) => void;\n }>;\n\n constructor(params: EntityPageStateParams<T, V>) {\n this.fetch = params.fetch;\n this.onSave = params.onSave;\n this.saveSuccessToast = params.saveSuccessToast;\n this.saveErrorToast = params.saveErrorToast;\n this._form = params.form;\n this._parentPageId = params.parentPageId;\n this.transformEntityToCollectionItem =\n params.transformEntityToCollectionItem || ((anEntity: T) => anEntity);\n this._parentPath = params.parentPath;\n\n this.container = params.container;\n\n this.reportBI = this.container.createBILogger({\n componentType: 'Entity page',\n pageType: 'Entity',\n route: window.location.pathname,\n });\n\n this.bi = new EntityPageStateBIReporter({\n reportBI: this.reportBI,\n entityPageState: this,\n });\n this.bi.init();\n\n makeObservable(this, {\n handleSubmit: action,\n isFetching: computed,\n _entity: observable.ref,\n setEntity: action,\n _isFormDirty: observable.ref,\n isFormDirty: computed,\n });\n }\n\n init({ withinRouter }: { withinRouter: boolean }) {\n this._withinRouter = withinRouter;\n this._checkPageParams();\n const { initTask, container } = this;\n const { onBeforeUnload } = container;\n\n const onBeforeUnloadSubscription = onBeforeUnload?.(\n action((event) => {\n const { form } = this;\n if (form.formState.isSubmitSuccessful || !this.isFormDirty) {\n return;\n }\n event.preventDefault();\n this.bi.reportOnBeforeUnload();\n }),\n );\n\n initTask.runOnce(async () => {\n const [data] = await Promise.all([\n this.fetch(),\n container.initTask.status.promise,\n ]);\n\n this.setEntity(data.entity ?? null);\n this.bi.appLoaded?.();\n });\n\n return () => {\n onBeforeUnloadSubscription?.remove();\n };\n }\n\n retryFetch() {\n this.initTask.runOnce();\n }\n\n setEntity(newEntity: T | null) {\n this._entity = newEntity;\n }\n\n get entity(): T | null {\n return this._entity;\n }\n\n get isFetching() {\n return this.initTask.status.isLoading || this.initTask.status.isIdle;\n }\n\n get form() {\n return this._form;\n }\n\n set isSubmitSuccessful(flag: boolean) {\n this._isSubmitSuccessful = flag;\n }\n\n set isFormDirty(flag: boolean) {\n this._isFormDirty = flag;\n }\n\n get isFormDirty() {\n return this._isFormDirty || this.formPage.isDirty;\n }\n\n onCancel() {\n this.bi.reportButtonClick({ ctaName: 'Cancel' });\n this.navigateToParent();\n }\n\n navigateToParent(updatedEntity?: any) {\n const entityString = updatedEntity\n ? JSON.stringify({ _updatedEntity: updatedEntity })\n : undefined;\n if (this._withinRouter) {\n this.container.navigate!(this._parentPath!, { state: entityString });\n } else {\n this.container.navigateTo!({\n pageId: this._parentPageId!,\n appState: entityString,\n });\n }\n }\n\n _showErrorToast(err: any, e?: React.BaseSyntheticEvent) {\n const errorToast = this.saveErrorToast?.(err);\n const message =\n typeof errorToast === 'string' ? errorToast : errorToast?.message;\n const showTryAgain =\n typeof errorToast === 'string' ? true : errorToast?.tryAgain !== false;\n\n this.container.showToast?.({\n type: 'ERROR',\n biName: 'cairo-entity-page-save-error-toast',\n message:\n message ??\n this.container.translate(\n err?.code === 'ERR_NETWORK'\n ? 'cairo.entityPage.saveError-offline.toast.description'\n : 'cairo.entityPage.saveError-technical.toast.description',\n ),\n action: showTryAgain\n ? {\n uiType: 'LINK',\n text: this.container.translate('cairo.toast.retry'),\n onClick: () => {\n this.bi.reportSaveTryAgain();\n this.handleSubmit(e);\n },\n removeToastOnClick: true,\n }\n : undefined,\n });\n }\n\n _showSuccessToast() {\n const message =\n typeof this.saveSuccessToast === 'string'\n ? this.saveSuccessToast\n : this.saveSuccessToast?.message;\n\n this.container.showToast?.({\n type: 'SUCCESS',\n biName: 'cairo-entity-page-save-success-toast',\n message:\n message ?? this.container.translate('cairo.entityPage.success.toast'),\n });\n }\n async handleSubmit(e?: React.BaseSyntheticEvent) {\n if (this.submitTask.status.isLoading) {\n return;\n }\n\n this.events.emit('save');\n\n const { isValid, data: extraFields } = await this.formPage.validate();\n\n if (!isValid) {\n this.bi.reportButtonClick({ ctaName: 'Save', isValid: false });\n return;\n }\n\n const { form, submitTask, bi } = this;\n\n submitTask.run(async () => {\n let savedEntity: T | undefined;\n await form.handleSubmit(\n async () => {\n bi.reportButtonClick({ ctaName: 'Save', isValid: true });\n try {\n if (this.isFormDirty) {\n const onSaveResult = await this.onSave({\n widgetsFormData: { ...extraFields },\n });\n savedEntity = onSaveResult?.updatedEntity;\n }\n this._showSuccessToast();\n } catch (err) {\n this._showErrorToast(err, e);\n this.container.errorMonitor.captureException(err);\n this.events.emit('saveError', err);\n form.setError('root.serverError', {}); // https://react-hook-form.com/docs/useform/seterror\n }\n },\n () => {\n bi.reportButtonClick({ ctaName: 'Save', isValid: false });\n }, // can be used to report validation errors\n )(e);\n\n if (!form.formState.isSubmitSuccessful) {\n return;\n }\n\n const transformedItem =\n savedEntity && this.transformEntityToCollectionItem\n ? this.transformEntityToCollectionItem(savedEntity)\n : savedEntity;\n this.navigateToParent(transformedItem);\n });\n await this.submitTask.status.promise;\n }\n\n private _checkPageParams() {\n if (this._withinRouter) {\n if (this._parentPath === undefined) {\n throw new Error('parentPath was not defined in useEntityPage');\n }\n\n if (!this.container.navigate) {\n throw new Error('navigate was not defined in Patterns Provider');\n }\n } else {\n if (this._parentPageId === undefined) {\n throw new Error('parentPageId was not defined in useEntityPage');\n }\n\n if (!this.container.navigateTo) {\n throw new Error('navigateTo was not defined in Patterns Provider');\n }\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_bexCore","require","_mobx","_EntityPageStateBIReporter","_events","EntityPageState","constructor","params","_defineProperty2","default","TaskState","undefined","FormPageState","EventEmitter","fetch","onSave","saveSuccessToast","saveErrorToast","_form","form","_parentPageId","parentPageId","transformEntityToCollectionItem","anEntity","_parentPath","parentPath","container","reportBI","createBILogger","componentType","pageType","route","window","location","pathname","bi","EntityPageStateBIReporter","entityPageState","init","makeObservable","handleSubmit","action","isFetching","computed","_entity","observable","ref","setEntity","_isFormDirty","isFormDirty","withinRouter","_withinRouter","_checkPageParams","initTask","onBeforeUnload","onBeforeUnloadSubscription","event","formState","isSubmitSuccessful","preventDefault","reportOnBeforeUnload","runOnce","_this$bi$appLoaded","_this$bi","data","Promise","all","status","promise","entity","appLoaded","call","remove","retryFetch","newEntity","isLoading","isIdle","flag","_isSubmitSuccessful","formPage","isDirty","onCancel","reportButtonClick","ctaName","navigateToParent","updatedEntity","entityObject","_updatedEntity","navigate","state","navigateTo","pageId","_showErrorToast","err","e","_this$saveErrorToast","_this$container$showT","_this$container","errorToast","message","showTryAgain","tryAgain","showToast","type","biName","translate","code","uiType","text","onClick","reportSaveTryAgain","removeToastOnClick","_showSuccessToast","_this$saveSuccessToas","_this$container$showT2","_this$container2","submitTask","events","emit","isValid","extraFields","validate","run","savedEntity","onSaveResult","widgetsFormData","errorMonitor","captureException","setError","transformedItem","Error","exports"],"sources":["../../../../src/state/EntityPage/EntityPageState.ts"],"sourcesContent":["import {\n FormPageState,\n ReportBI,\n TaskState,\n WixPatternsContainer,\n} from '@wix/bex-core';\nimport { action, computed, makeObservable, observable } from 'mobx';\nimport { FieldValues, UseFormReturn } from 'react-hook-form';\nimport { EntityPageStateBIReporter } from './EntityPageStateBIReporter';\nimport { EventEmitter, TypedEmitter } from '@wix/bex-core/events';\n\ntype OnSaveParams = {\n widgetsFormData: { [key: string]: any };\n};\n\nexport interface EntityPageStateParams<T, V extends FieldValues = FieldValues> {\n /**\n * A function that fetches the entity data.\n * @returns a promise that resolves to an object containing the entity.\n */\n fetch: () => Promise<{ entity: T | undefined }>;\n\n /**\n * A function to handle the save action.\n * @returns promise that resolves to an object that contains a 'updatedEntity' object.\n */\n onSave: (params: OnSaveParams) => Promise<{ updatedEntity: T }>;\n\n /**\n * An optional object with an optional message, or it can directly get a string message.\n */\n saveSuccessToast?: { message?: string } | string;\n\n /**\n * An optional function to display an error toast message when a save operation fails.\n * @returns an object with an optional message and a `tryAgain` flag, or it can directly return a string message.\n */\n saveErrorToast?: (\n err: unknown,\n ) => { message?: string; tryAgain?: boolean } | string;\n\n /**\n * An optional function to transform the updated entity data before it is passed to the collection page.\n * @param entity the updated entity.\n * @returns an object representing the entity in the collection page.\n */\n transformEntityToCollectionItem?: (entity: T) => any;\n\n /**\n * An object representing the form state and methods, typically returned by a useForm hook.\n */\n form: UseFormReturn<V>;\n\n /**\n * An object representing the container, possibly for dependency injection or component management.\n */\n container: WixPatternsContainer;\n\n /**\n * A string representing the ID of the parent page.\n * Must be passed if not using Patterns Router\n */\n parentPageId?: string;\n\n /**\n * A string representing the path of the parent page.\n * Must be passed if using Patterns Router\n */\n parentPath?: string;\n}\n\nexport interface EntityPageStateInterface {}\n\nexport interface EntityPageWidgetState {\n validate: () => Promise<{ isValid: boolean; values?: any }>;\n isDirty: boolean;\n}\n\nexport class EntityPageState<T, V extends FieldValues = FieldValues>\n implements EntityPageStateInterface\n{\n readonly initTask = new TaskState();\n readonly submitTask = new TaskState();\n\n readonly fetch: EntityPageStateParams<T>['fetch'];\n readonly onSave: EntityPageStateParams<T, V>['onSave'];\n readonly saveSuccessToast?: EntityPageStateParams<T>['saveSuccessToast'];\n readonly saveErrorToast?: EntityPageStateParams<T>['saveErrorToast'];\n readonly transformEntityToCollectionItem: (entity: T) => any;\n\n _entity: T | null = null;\n private readonly _form: UseFormReturn<V>;\n private readonly _parentPageId?: string;\n private readonly _parentPath?: string;\n\n readonly container: WixPatternsContainer;\n readonly reportBI: ReportBI;\n readonly bi: EntityPageStateBIReporter<T, V>;\n\n _isSubmitSuccessful?: boolean = undefined;\n _isFormDirty = false;\n\n _withinRouter = false;\n\n readonly formPage = new FormPageState();\n\n readonly events = new EventEmitter() as TypedEmitter<{\n save: () => void;\n saveError: (err: unknown) => void;\n }>;\n\n constructor(params: EntityPageStateParams<T, V>) {\n this.fetch = params.fetch;\n this.onSave = params.onSave;\n this.saveSuccessToast = params.saveSuccessToast;\n this.saveErrorToast = params.saveErrorToast;\n this._form = params.form;\n this._parentPageId = params.parentPageId;\n this.transformEntityToCollectionItem =\n params.transformEntityToCollectionItem || ((anEntity: T) => anEntity);\n this._parentPath = params.parentPath;\n\n this.container = params.container;\n\n this.reportBI = this.container.createBILogger({\n componentType: 'Entity page',\n pageType: 'Entity',\n route: window.location.pathname,\n });\n\n this.bi = new EntityPageStateBIReporter({\n reportBI: this.reportBI,\n entityPageState: this,\n });\n this.bi.init();\n\n makeObservable(this, {\n handleSubmit: action,\n isFetching: computed,\n _entity: observable.ref,\n setEntity: action,\n _isFormDirty: observable.ref,\n isFormDirty: computed,\n });\n }\n\n init({ withinRouter }: { withinRouter: boolean }) {\n this._withinRouter = withinRouter;\n this._checkPageParams();\n const { initTask, container } = this;\n const { onBeforeUnload } = container;\n\n const onBeforeUnloadSubscription = onBeforeUnload?.(\n action((event) => {\n const { form } = this;\n if (form.formState.isSubmitSuccessful || !this.isFormDirty) {\n return;\n }\n event.preventDefault();\n this.bi.reportOnBeforeUnload();\n }),\n );\n\n initTask.runOnce(async () => {\n const [data] = await Promise.all([\n this.fetch(),\n container.initTask.status.promise,\n ]);\n\n this.setEntity(data.entity ?? null);\n this.bi.appLoaded?.();\n });\n\n return () => {\n onBeforeUnloadSubscription?.remove();\n };\n }\n\n retryFetch() {\n this.initTask.runOnce();\n }\n\n setEntity(newEntity: T | null) {\n this._entity = newEntity;\n }\n\n get entity(): T | null {\n return this._entity;\n }\n\n get isFetching() {\n return this.initTask.status.isLoading || this.initTask.status.isIdle;\n }\n\n get form() {\n return this._form;\n }\n\n set isSubmitSuccessful(flag: boolean) {\n this._isSubmitSuccessful = flag;\n }\n\n set isFormDirty(flag: boolean) {\n this._isFormDirty = flag;\n }\n\n get isFormDirty() {\n return this._isFormDirty || this.formPage.isDirty;\n }\n\n onCancel() {\n this.bi.reportButtonClick({ ctaName: 'Cancel' });\n this.navigateToParent();\n }\n\n navigateToParent(updatedEntity?: any) {\n const entityObject = { _updatedEntity: updatedEntity };\n\n if (this._withinRouter) {\n this.container.navigate!(this._parentPath!, { state: entityObject });\n } else {\n this.container.navigateTo!({\n pageId: this._parentPageId!,\n });\n }\n }\n\n _showErrorToast(err: any, e?: React.BaseSyntheticEvent) {\n const errorToast = this.saveErrorToast?.(err);\n const message =\n typeof errorToast === 'string' ? errorToast : errorToast?.message;\n const showTryAgain =\n typeof errorToast === 'string' ? true : errorToast?.tryAgain !== false;\n\n this.container.showToast?.({\n type: 'ERROR',\n biName: 'cairo-entity-page-save-error-toast',\n message:\n message ??\n this.container.translate(\n err?.code === 'ERR_NETWORK'\n ? 'cairo.entityPage.saveError-offline.toast.description'\n : 'cairo.entityPage.saveError-technical.toast.description',\n ),\n action: showTryAgain\n ? {\n uiType: 'LINK',\n text: this.container.translate('cairo.toast.retry'),\n onClick: () => {\n this.bi.reportSaveTryAgain();\n this.handleSubmit(e);\n },\n removeToastOnClick: true,\n }\n : undefined,\n });\n }\n\n _showSuccessToast() {\n const message =\n typeof this.saveSuccessToast === 'string'\n ? this.saveSuccessToast\n : this.saveSuccessToast?.message;\n\n this.container.showToast?.({\n type: 'SUCCESS',\n biName: 'cairo-entity-page-save-success-toast',\n message:\n message ?? this.container.translate('cairo.entityPage.success.toast'),\n });\n }\n async handleSubmit(e?: React.BaseSyntheticEvent) {\n if (this.submitTask.status.isLoading) {\n return;\n }\n\n this.events.emit('save');\n\n const { isValid, data: extraFields } = await this.formPage.validate();\n\n if (!isValid) {\n this.bi.reportButtonClick({ ctaName: 'Save', isValid: false });\n return;\n }\n\n const { form, submitTask, bi } = this;\n\n submitTask.run(async () => {\n let savedEntity: T | undefined;\n await form.handleSubmit(\n async () => {\n bi.reportButtonClick({ ctaName: 'Save', isValid: true });\n try {\n if (this.isFormDirty) {\n const onSaveResult = await this.onSave({\n widgetsFormData: { ...extraFields },\n });\n savedEntity = onSaveResult?.updatedEntity;\n }\n this._showSuccessToast();\n } catch (err) {\n this._showErrorToast(err, e);\n this.container.errorMonitor.captureException(err);\n this.events.emit('saveError', err);\n form.setError('root.serverError', {}); // https://react-hook-form.com/docs/useform/seterror\n }\n },\n () => {\n bi.reportButtonClick({ ctaName: 'Save', isValid: false });\n }, // can be used to report validation errors\n )(e);\n\n if (!form.formState.isSubmitSuccessful) {\n return;\n }\n\n const transformedItem =\n savedEntity && this.transformEntityToCollectionItem\n ? this.transformEntityToCollectionItem(savedEntity)\n : savedEntity;\n this.navigateToParent(transformedItem);\n });\n await this.submitTask.status.promise;\n }\n\n private _checkPageParams() {\n if (this._withinRouter) {\n if (this._parentPath === undefined) {\n throw new Error('parentPath was not defined in useEntityPage');\n }\n\n if (!this.container.navigate) {\n throw new Error('navigate was not defined in Patterns Provider');\n }\n } else {\n if (this._parentPageId === undefined) {\n throw new Error('parentPageId was not defined in useEntityPage');\n }\n\n if (!this.container.navigateTo) {\n throw new Error('navigateTo was not defined in Patterns Provider');\n }\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["../../../../src/state/NestedTableState/NestedCollectionLevelDescriptor.ts"],"sourcesContent":["import { CollectionState, Filter, FiltersMap, KeyedItem } from '@wix/bex-core';\n\nexport interface NestedCollectionLevelDescriptor<T, F extends FiltersMap> {\n readonly depth: number;\n readonly parentKey: (item: T) => string | null | undefined;\n readonly createCollection: (params?: {\n readonly parent: KeyedItem<any> | null;\n }) => {\n collection: CollectionState<T, F>;\n parentFilter?: Filter<string[]>;\n };\n readonly fetchAllThreshold?: number;\n}\n"],"mappings":"","ignoreList":[]}
1
+ {"version":3,"names":[],"sources":["../../../../src/state/NestedTableState/NestedCollectionLevelDescriptor.ts"],"sourcesContent":["import {\n CollectionOptimisticSequenceExecutor,\n CollectionState,\n Filter,\n FiltersMap,\n KeyedItem,\n QueryState,\n} from '@wix/bex-core';\n\nexport interface NestedCollectionLevelDescriptor<T, F extends FiltersMap> {\n readonly depth: number;\n readonly parentKey: (item: T) => string | null | undefined;\n readonly setParent?: (\n item: T,\n parentId: string | undefined,\n additionalInfo: {\n parentItem?: {};\n },\n ) => T;\n readonly createCollection: (params?: {\n readonly parent?: KeyedItem<any> | null;\n readonly sequences: Map<string, CollectionOptimisticSequenceExecutor>;\n readonly query: QueryState<F>;\n }) => {\n collection: CollectionState<T, F>;\n parentFilter?: Filter<string[]>;\n };\n readonly fetchAllThreshold?: number;\n}\n"],"mappings":"","ignoreList":[]}