@wix/patterns 1.38.0 → 1.40.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 (433) hide show
  1. package/README.md +23 -0
  2. package/dist/cjs/aiAssistance/AiAssistance.js.map +1 -1
  3. package/dist/cjs/aiAssistance/createAiAssistance.js +13 -3
  4. package/dist/cjs/aiAssistance/createAiAssistance.js.map +1 -1
  5. package/dist/cjs/aiAssistance/index.js +6 -0
  6. package/dist/cjs/aiAssistance/index.js.map +1 -1
  7. package/dist/cjs/components/ActionControl/ActionButton.js +9 -22
  8. package/dist/cjs/components/ActionControl/ActionButton.js.map +1 -1
  9. package/dist/cjs/components/ActionControl/ActionControl.js +11 -16
  10. package/dist/cjs/components/ActionControl/ActionControl.js.map +1 -1
  11. package/dist/cjs/components/ActionControl/ActionPopover.js +10 -23
  12. package/dist/cjs/components/ActionControl/ActionPopover.js.map +1 -1
  13. package/dist/cjs/components/ActionControl/ActionSubItemProps.js.map +1 -1
  14. package/dist/cjs/components/Collapse/Collapse.st.css.js +3 -3
  15. package/dist/cjs/components/Collapse/Collapse.st.css.js.map +1 -1
  16. package/dist/cjs/components/CollectionPageHeaderNew/CollectionPageHeader.js.map +1 -1
  17. package/dist/cjs/components/CollectionPageNew/CollectionPage.uni.driver.js +18 -2
  18. package/dist/cjs/components/CollectionPageNew/CollectionPage.uni.driver.js.map +1 -1
  19. package/dist/cjs/components/CollectionTable/CollectionTable.uni.driver.js +10 -3
  20. package/dist/cjs/components/CollectionTable/CollectionTable.uni.driver.js.map +1 -1
  21. package/dist/cjs/components/CollectionToolbar/CollectionToolbar.st.css.js +5 -5
  22. package/dist/cjs/components/CollectionToolbar/CollectionToolbar.st.css.js.map +1 -1
  23. package/dist/cjs/components/CollectionToolbar/SearchOrCustomFilter.st.css.js +3 -3
  24. package/dist/cjs/components/CollectionToolbar/SearchOrCustomFilter.st.css.js.map +1 -1
  25. package/dist/cjs/components/CollectionViewsDropdown/AutoCompleteReadonly.st.css.js +2 -2
  26. package/dist/cjs/components/CollectionViewsDropdown/AutoCompleteReadonly.st.css.js.map +1 -1
  27. package/dist/cjs/components/CollectionViewsDropdown/ViewsDropdown.st.css.js +2 -2
  28. package/dist/cjs/components/CollectionViewsDropdown/ViewsDropdown.st.css.js.map +1 -1
  29. package/dist/cjs/components/CustomFieldsWidget/CustomFieldsViewWidgetSection.st.css.js +3 -3
  30. package/dist/cjs/components/CustomFieldsWidget/CustomFieldsViewWidgetSection.st.css.js.map +1 -1
  31. package/dist/cjs/components/DragAndDrop/CollectionDragAndDropBI.js +4 -1
  32. package/dist/cjs/components/DragAndDrop/CollectionDragAndDropBI.js.map +1 -1
  33. package/dist/cjs/components/DragAndDrop/CollectionDragAndDropState.js +2 -1
  34. package/dist/cjs/components/DragAndDrop/CollectionDragAndDropState.js.map +1 -1
  35. package/dist/cjs/components/DragHandle/DragHandle.st.css.js +2 -2
  36. package/dist/cjs/components/DragHandle/DragHandle.st.css.js.map +1 -1
  37. package/dist/cjs/components/EntityPage/EntityPage.js +2 -2
  38. package/dist/cjs/components/EntityPage/EntityPage.js.map +1 -1
  39. package/dist/cjs/components/Fade/Fade.st.css.js +2 -2
  40. package/dist/cjs/components/Fade/Fade.st.css.js.map +1 -1
  41. package/dist/cjs/components/Grid/GridSingleGridContent.js +1 -1
  42. package/dist/cjs/components/Grid/GridSingleGridContent.js.map +1 -1
  43. package/dist/cjs/components/Grid/useGridBaseSyncProps.js +6 -4
  44. package/dist/cjs/components/Grid/useGridBaseSyncProps.js.map +1 -1
  45. package/dist/cjs/components/GridSections/GridSectionsContent.js +7 -6
  46. package/dist/cjs/components/GridSections/GridSectionsContent.js.map +1 -1
  47. package/dist/cjs/components/GridSections/GridSectionsSectionState.js +1 -1
  48. package/dist/cjs/components/GridSections/GridSectionsSectionState.js.map +1 -1
  49. package/dist/cjs/components/GridSections/GridSectionsSingleSkeletonGrid.js +1 -1
  50. package/dist/cjs/components/GridSections/GridSectionsSingleSkeletonGrid.js.map +1 -1
  51. package/dist/cjs/components/GridSections/GridSectionsState.js +2 -1
  52. package/dist/cjs/components/GridSections/GridSectionsState.js.map +1 -1
  53. package/dist/cjs/components/Heading/Heading.st.css.js +2 -2
  54. package/dist/cjs/components/Heading/Heading.st.css.js.map +1 -1
  55. package/dist/cjs/components/InputOverflow/InputOverflow.st.css.js +2 -2
  56. package/dist/cjs/components/InputOverflow/InputOverflow.st.css.js.map +1 -1
  57. package/dist/cjs/components/LoadingRow/AILoadingLottiePoster.js +75 -0
  58. package/dist/cjs/components/LoadingRow/AILoadingLottiePoster.js.map +1 -0
  59. package/dist/cjs/components/LoadingRow/LoadingRow.st.css +28 -0
  60. package/dist/cjs/components/LoadingRow/LoadingRow.st.css.js +24 -0
  61. package/dist/cjs/components/LoadingRow/LoadingRow.st.css.js.map +1 -0
  62. package/dist/cjs/components/LoadingRow/LoadingRowState.js +59 -0
  63. package/dist/cjs/components/LoadingRow/LoadingRowState.js.map +1 -0
  64. package/dist/cjs/components/LoadingRow/LoadingRowTD.js +85 -0
  65. package/dist/cjs/components/LoadingRow/LoadingRowTD.js.map +1 -0
  66. package/dist/cjs/components/LoadingRow/aiLoadingLottie.js +2154 -0
  67. package/dist/cjs/components/LoadingRow/aiLoadingLottie.js.map +1 -0
  68. package/dist/cjs/components/MaxHeightText/MaxHeightText.st.css.js +2 -2
  69. package/dist/cjs/components/MaxHeightText/MaxHeightText.st.css.js.map +1 -1
  70. package/dist/cjs/components/MaxLines/MaxLines.st.css.js +2 -2
  71. package/dist/cjs/components/MaxLines/MaxLines.st.css.js.map +1 -1
  72. package/dist/cjs/components/MoreActions/MoreActionsBase.js +4 -4
  73. package/dist/cjs/components/MoreActions/MoreActionsBase.js.map +1 -1
  74. package/dist/cjs/components/MoreActions/MoreActionsText.js +2 -1
  75. package/dist/cjs/components/MoreActions/MoreActionsText.js.map +1 -1
  76. package/dist/cjs/components/MultiBulkActionToolbar/MultiBulkActionToolbar.js +88 -46
  77. package/dist/cjs/components/MultiBulkActionToolbar/MultiBulkActionToolbar.js.map +1 -1
  78. package/dist/cjs/components/MultiBulkActionToolbar/MultiBulkActionToolbar.st.css.js +2 -2
  79. package/dist/cjs/components/MultiBulkActionToolbar/MultiBulkActionToolbar.st.css.js.map +1 -1
  80. package/dist/cjs/components/NestedTable/NestedTableRow.st.css.js +5 -5
  81. package/dist/cjs/components/NestedTable/NestedTableRow.st.css.js.map +1 -1
  82. package/dist/cjs/components/PickerContent/PickerContent.st.css.js +2 -2
  83. package/dist/cjs/components/PickerContent/PickerContent.st.css.js.map +1 -1
  84. package/dist/cjs/components/PickerContent/PickerContentAdditionalStep.st.css.js +4 -4
  85. package/dist/cjs/components/PickerContent/PickerContentAdditionalStep.st.css.js.map +1 -1
  86. package/dist/cjs/components/PickerTableListItem/PickerTableListItem.st.css.js +2 -2
  87. package/dist/cjs/components/PickerTableListItem/PickerTableListItem.st.css.js.map +1 -1
  88. package/dist/cjs/components/PrimaryActions/PrimaryActions.js +40 -0
  89. package/dist/cjs/components/PrimaryActions/PrimaryActions.js.map +1 -0
  90. package/dist/cjs/components/PrimaryActions/index.js +10 -0
  91. package/dist/cjs/components/PrimaryActions/index.js.map +1 -0
  92. package/dist/cjs/components/PrimaryPageButton/PrimaryPageButton.js +6 -2
  93. package/dist/cjs/components/PrimaryPageButton/PrimaryPageButton.js.map +1 -1
  94. package/dist/cjs/components/ScrollableContent/ScrollableContent.st.css.js +2 -2
  95. package/dist/cjs/components/ScrollableContent/ScrollableContent.st.css.js.map +1 -1
  96. package/dist/cjs/components/SecondaryActions/SecondaryActions.js +24 -0
  97. package/dist/cjs/components/SecondaryActions/SecondaryActions.js.map +1 -0
  98. package/dist/cjs/components/SecondaryActions/index.js +10 -0
  99. package/dist/cjs/components/SecondaryActions/index.js.map +1 -0
  100. package/dist/cjs/components/SkeletonCard/SkeletonCard.st.css.js +3 -3
  101. package/dist/cjs/components/SkeletonCard/SkeletonCard.st.css.js.map +1 -1
  102. package/dist/cjs/components/SlidingModal/SlidingModal.st.css.js +2 -2
  103. package/dist/cjs/components/SlidingModal/SlidingModal.st.css.js.map +1 -1
  104. package/dist/cjs/components/Table/Table.uni.driver.js +2 -0
  105. package/dist/cjs/components/Table/Table.uni.driver.js.map +1 -1
  106. package/dist/cjs/components/Table/TableBase.js +7 -4
  107. package/dist/cjs/components/Table/TableBase.js.map +1 -1
  108. package/dist/cjs/components/Table/TableBaseRow.js +50 -0
  109. package/dist/cjs/components/Table/TableBaseRow.js.map +1 -0
  110. package/dist/cjs/components/Table/TableVirtualHeader.st.css.js +2 -2
  111. package/dist/cjs/components/Table/TableVirtualHeader.st.css.js.map +1 -1
  112. package/dist/cjs/components/Table/useTableBaseRow.js +28 -0
  113. package/dist/cjs/components/Table/useTableBaseRow.js.map +1 -0
  114. package/dist/cjs/components/TabsFilter/TabsFilter.st.css.js +3 -3
  115. package/dist/cjs/components/TabsFilter/TabsFilter.st.css.js.map +1 -1
  116. package/dist/cjs/components/Tags/ManageTags/ManageTagsModal/ManageTagsModal.st.css.js +2 -2
  117. package/dist/cjs/components/Tags/ManageTags/ManageTagsModal/ManageTagsModal.st.css.js.map +1 -1
  118. package/dist/cjs/components/Tags/ManageTags/ManageTagsModal/ManageTagsModal.uni.driver.js +2 -0
  119. package/dist/cjs/components/Tags/ManageTags/ManageTagsModal/ManageTagsModal.uni.driver.js.map +1 -1
  120. package/dist/cjs/components/ToolbarCollection/useToolbarCollectionSyncProps.js +10 -2
  121. package/dist/cjs/components/ToolbarCollection/useToolbarCollectionSyncProps.js.map +1 -1
  122. package/dist/cjs/components/ToolbarItemBox/ToolbarItemBox.st.css.js +2 -2
  123. package/dist/cjs/components/ToolbarItemBox/ToolbarItemBox.st.css.js.map +1 -1
  124. package/dist/cjs/components/common.st.css.js +4 -4
  125. package/dist/cjs/components/common.st.css.js.map +1 -1
  126. package/dist/cjs/hooks/useSyncCollectionOnEntityReturn.js +17 -5
  127. package/dist/cjs/hooks/useSyncCollectionOnEntityReturn.js.map +1 -1
  128. package/dist/cjs/hooks/useTableCollection.js +4 -1
  129. package/dist/cjs/hooks/useTableCollection.js.map +1 -1
  130. package/dist/cjs/index.js +21 -0
  131. package/dist/cjs/index.js.map +1 -1
  132. package/dist/cjs/providers/WixPatternsRouterProvider.js +6 -12
  133. package/dist/cjs/providers/WixPatternsRouterProvider.js.map +1 -1
  134. package/dist/cjs/state/CollectionPage/useCollectionPageHeader.js +25 -8
  135. package/dist/cjs/state/CollectionPage/useCollectionPageHeader.js.map +1 -1
  136. package/dist/cjs/state/CustomColumnsState.js +28 -12
  137. package/dist/cjs/state/CustomColumnsState.js.map +1 -1
  138. package/dist/cjs/state/EntityPage/EntityPageState.js +9 -5
  139. package/dist/cjs/state/EntityPage/EntityPageState.js.map +1 -1
  140. package/dist/cjs/state/GridBaseState.js +6 -3
  141. package/dist/cjs/state/GridBaseState.js.map +1 -1
  142. package/dist/cjs/state/GridFoldersState.js +1 -0
  143. package/dist/cjs/state/GridFoldersState.js.map +1 -1
  144. package/dist/cjs/state/GridParentState.js +4 -0
  145. package/dist/cjs/state/GridParentState.js.map +1 -0
  146. package/dist/cjs/state/GridState.js +5 -0
  147. package/dist/cjs/state/GridState.js.map +1 -1
  148. package/dist/cjs/state/TableState.js +3 -0
  149. package/dist/cjs/state/TableState.js.map +1 -1
  150. package/dist/cjs/state/TagsBulkAssignPopoverState.js +2 -2
  151. package/dist/cjs/state/TagsBulkAssignPopoverState.js.map +1 -1
  152. package/dist/cjs/state/TagsModalState.js +2 -2
  153. package/dist/cjs/state/TagsModalState.js.map +1 -1
  154. package/dist/cjs/state/ToolbarCollectionState.js +4 -2
  155. package/dist/cjs/state/ToolbarCollectionState.js.map +1 -1
  156. package/dist/cjs/state/WixPatternsRouterState.js +9 -1
  157. package/dist/cjs/state/WixPatternsRouterState.js.map +1 -1
  158. package/dist/cjs/styles.global.css +1 -1
  159. package/dist/cjs/testkit/puppeteer.js +3 -1
  160. package/dist/cjs/testkit/puppeteer.js.map +1 -1
  161. package/dist/cjs/version.js +1 -1
  162. package/dist/cjs/version.js.map +1 -1
  163. package/dist/esm/aiAssistance/AiAssistance.js.map +1 -1
  164. package/dist/esm/aiAssistance/createAiAssistance.js +8 -3
  165. package/dist/esm/aiAssistance/createAiAssistance.js.map +1 -1
  166. package/dist/esm/aiAssistance/index.js +1 -0
  167. package/dist/esm/aiAssistance/index.js.map +1 -1
  168. package/dist/esm/components/ActionControl/ActionButton.js +3 -13
  169. package/dist/esm/components/ActionControl/ActionButton.js.map +1 -1
  170. package/dist/esm/components/ActionControl/ActionControl.js +2 -3
  171. package/dist/esm/components/ActionControl/ActionControl.js.map +1 -1
  172. package/dist/esm/components/ActionControl/ActionPopover.js +3 -15
  173. package/dist/esm/components/ActionControl/ActionPopover.js.map +1 -1
  174. package/dist/esm/components/Collapse/Collapse.st.css.js +2 -2
  175. package/dist/esm/components/Collapse/Collapse.st.css.js.map +1 -1
  176. package/dist/esm/components/CollectionPageHeaderNew/CollectionPageHeader.js.map +1 -1
  177. package/dist/esm/components/CollectionPageNew/CollectionPage.uni.driver.js +18 -2
  178. package/dist/esm/components/CollectionPageNew/CollectionPage.uni.driver.js.map +1 -1
  179. package/dist/esm/components/CollectionTable/CollectionTable.uni.driver.js +10 -3
  180. package/dist/esm/components/CollectionTable/CollectionTable.uni.driver.js.map +1 -1
  181. package/dist/esm/components/CollectionToolbar/CollectionToolbar.st.css.js +2 -2
  182. package/dist/esm/components/CollectionToolbar/SearchOrCustomFilter.st.css.js +2 -2
  183. package/dist/esm/components/CollectionViewsDropdown/AutoCompleteReadonly.st.css.js +2 -2
  184. package/dist/esm/components/CollectionViewsDropdown/ViewsDropdown.st.css.js +2 -2
  185. package/dist/esm/components/CollectionViewsDropdown/ViewsDropdown.st.css.js.map +1 -1
  186. package/dist/esm/components/CustomFieldsWidget/CustomFieldsViewWidgetSection.st.css.js +2 -2
  187. package/dist/esm/components/CustomFieldsWidget/CustomFieldsViewWidgetSection.st.css.js.map +1 -1
  188. package/dist/esm/components/DragAndDrop/CollectionDragAndDropBI.js +4 -1
  189. package/dist/esm/components/DragAndDrop/CollectionDragAndDropBI.js.map +1 -1
  190. package/dist/esm/components/DragAndDrop/CollectionDragAndDropState.js +2 -1
  191. package/dist/esm/components/DragAndDrop/CollectionDragAndDropState.js.map +1 -1
  192. package/dist/esm/components/DragHandle/DragHandle.st.css.js +2 -2
  193. package/dist/esm/components/DragHandle/DragHandle.st.css.js.map +1 -1
  194. package/dist/esm/components/EntityPage/EntityPage.js +2 -2
  195. package/dist/esm/components/EntityPage/EntityPage.js.map +1 -1
  196. package/dist/esm/components/Fade/Fade.st.css.js +2 -2
  197. package/dist/esm/components/Fade/Fade.st.css.js.map +1 -1
  198. package/dist/esm/components/Grid/GridSingleGridContent.js.map +1 -1
  199. package/dist/esm/components/Grid/useGridBaseSyncProps.js +7 -4
  200. package/dist/esm/components/Grid/useGridBaseSyncProps.js.map +1 -1
  201. package/dist/esm/components/GridSections/GridSectionsContent.js +2 -1
  202. package/dist/esm/components/GridSections/GridSectionsContent.js.map +1 -1
  203. package/dist/esm/components/GridSections/GridSectionsSectionState.js +1 -1
  204. package/dist/esm/components/GridSections/GridSectionsSectionState.js.map +1 -1
  205. package/dist/esm/components/GridSections/GridSectionsSingleSkeletonGrid.js.map +1 -1
  206. package/dist/esm/components/GridSections/GridSectionsState.js +1 -1
  207. package/dist/esm/components/GridSections/GridSectionsState.js.map +1 -1
  208. package/dist/esm/components/Heading/Heading.st.css.js +2 -2
  209. package/dist/esm/components/InputOverflow/InputOverflow.st.css.js +2 -2
  210. package/dist/esm/components/LoadingRow/AILoadingLottiePoster.js +11 -0
  211. package/dist/esm/components/LoadingRow/AILoadingLottiePoster.js.map +1 -0
  212. package/dist/esm/components/LoadingRow/LoadingRow.st.css +28 -0
  213. package/dist/esm/components/LoadingRow/LoadingRow.st.css.js +15 -0
  214. package/dist/esm/components/LoadingRow/LoadingRow.st.css.js.map +1 -0
  215. package/dist/esm/components/LoadingRow/LoadingRowState.js +50 -0
  216. package/dist/esm/components/LoadingRow/LoadingRowState.js.map +1 -0
  217. package/dist/esm/components/LoadingRow/LoadingRowTD.js +21 -0
  218. package/dist/esm/components/LoadingRow/LoadingRowTD.js.map +1 -0
  219. package/dist/esm/components/LoadingRow/aiLoadingLottie.js +2389 -0
  220. package/dist/esm/components/LoadingRow/aiLoadingLottie.js.map +1 -0
  221. package/dist/esm/components/MaxHeightText/MaxHeightText.st.css.js +2 -2
  222. package/dist/esm/components/MaxHeightText/MaxHeightText.st.css.js.map +1 -1
  223. package/dist/esm/components/MaxLines/MaxLines.st.css.js +2 -2
  224. package/dist/esm/components/MoreActions/MoreActionsBase.js +1 -1
  225. package/dist/esm/components/MoreActions/MoreActionsBase.js.map +1 -1
  226. package/dist/esm/components/MoreActions/MoreActionsText.js +1 -1
  227. package/dist/esm/components/MoreActions/MoreActionsText.js.map +1 -1
  228. package/dist/esm/components/MultiBulkActionToolbar/MultiBulkActionToolbar.js +47 -9
  229. package/dist/esm/components/MultiBulkActionToolbar/MultiBulkActionToolbar.js.map +1 -1
  230. package/dist/esm/components/MultiBulkActionToolbar/MultiBulkActionToolbar.st.css.js +2 -2
  231. package/dist/esm/components/MultiBulkActionToolbar/MultiBulkActionToolbar.st.css.js.map +1 -1
  232. package/dist/esm/components/NestedTable/NestedTableRow.st.css.js +2 -2
  233. package/dist/esm/components/PickerContent/PickerContent.st.css.js +2 -2
  234. package/dist/esm/components/PickerContent/PickerContentAdditionalStep.st.css.js +2 -2
  235. package/dist/esm/components/PickerTableListItem/PickerTableListItem.st.css.js +2 -2
  236. package/dist/esm/components/PrimaryActions/PrimaryActions.js +16 -0
  237. package/dist/esm/components/PrimaryActions/PrimaryActions.js.map +1 -0
  238. package/dist/esm/components/PrimaryActions/index.js +2 -0
  239. package/dist/esm/components/PrimaryActions/index.js.map +1 -0
  240. package/dist/esm/components/PrimaryPageButton/PrimaryPageButton.js +4 -0
  241. package/dist/esm/components/PrimaryPageButton/PrimaryPageButton.js.map +1 -1
  242. package/dist/esm/components/ScrollableContent/ScrollableContent.st.css.js +2 -2
  243. package/dist/esm/components/ScrollableContent/ScrollableContent.st.css.js.map +1 -1
  244. package/dist/esm/components/SecondaryActions/SecondaryActions.js +9 -0
  245. package/dist/esm/components/SecondaryActions/SecondaryActions.js.map +1 -0
  246. package/dist/esm/components/SecondaryActions/index.js +2 -0
  247. package/dist/esm/components/SecondaryActions/index.js.map +1 -0
  248. package/dist/esm/components/SkeletonCard/SkeletonCard.st.css.js +2 -2
  249. package/dist/esm/components/SlidingModal/SlidingModal.st.css.js +2 -2
  250. package/dist/esm/components/Table/Table.uni.driver.js +2 -0
  251. package/dist/esm/components/Table/Table.uni.driver.js.map +1 -1
  252. package/dist/esm/components/Table/TableBase.js +3 -1
  253. package/dist/esm/components/Table/TableBase.js.map +1 -1
  254. package/dist/esm/components/Table/TableBaseRow.js +20 -0
  255. package/dist/esm/components/Table/TableBaseRow.js.map +1 -0
  256. package/dist/esm/components/Table/TableVirtualHeader.st.css.js +2 -2
  257. package/dist/esm/components/Table/useTableBaseRow.js +9 -0
  258. package/dist/esm/components/Table/useTableBaseRow.js.map +1 -0
  259. package/dist/esm/components/TabsFilter/TabsFilter.st.css.js +2 -2
  260. package/dist/esm/components/TabsFilter/TabsFilter.st.css.js.map +1 -1
  261. package/dist/esm/components/Tags/ManageTags/ManageTagsModal/ManageTagsModal.st.css.js +2 -2
  262. package/dist/esm/components/Tags/ManageTags/ManageTagsModal/ManageTagsModal.uni.driver.js +5 -0
  263. package/dist/esm/components/Tags/ManageTags/ManageTagsModal/ManageTagsModal.uni.driver.js.map +1 -1
  264. package/dist/esm/components/ToolbarCollection/useToolbarCollectionSyncProps.js +9 -2
  265. package/dist/esm/components/ToolbarCollection/useToolbarCollectionSyncProps.js.map +1 -1
  266. package/dist/esm/components/ToolbarItemBox/ToolbarItemBox.st.css.js +2 -2
  267. package/dist/esm/components/ToolbarItemBox/ToolbarItemBox.st.css.js.map +1 -1
  268. package/dist/esm/components/common.st.css.js +2 -2
  269. package/dist/esm/hooks/useSyncCollectionOnEntityReturn.js +18 -6
  270. package/dist/esm/hooks/useSyncCollectionOnEntityReturn.js.map +1 -1
  271. package/dist/esm/hooks/useTableCollection.js +4 -1
  272. package/dist/esm/hooks/useTableCollection.js.map +1 -1
  273. package/dist/esm/index.js +3 -0
  274. package/dist/esm/index.js.map +1 -1
  275. package/dist/esm/providers/WixPatternsRouterProvider.js +5 -10
  276. package/dist/esm/providers/WixPatternsRouterProvider.js.map +1 -1
  277. package/dist/esm/state/CollectionPage/useCollectionPageHeader.js +12 -1
  278. package/dist/esm/state/CollectionPage/useCollectionPageHeader.js.map +1 -1
  279. package/dist/esm/state/CustomColumnsState.js +22 -9
  280. package/dist/esm/state/CustomColumnsState.js.map +1 -1
  281. package/dist/esm/state/EntityPage/EntityPageState.js +8 -4
  282. package/dist/esm/state/EntityPage/EntityPageState.js.map +1 -1
  283. package/dist/esm/state/GridBaseState.js +5 -2
  284. package/dist/esm/state/GridBaseState.js.map +1 -1
  285. package/dist/esm/state/GridFoldersState.js +2 -1
  286. package/dist/esm/state/GridFoldersState.js.map +1 -1
  287. package/dist/esm/state/GridParentState.js +2 -0
  288. package/dist/esm/state/GridParentState.js.map +1 -0
  289. package/dist/esm/state/GridState.js +5 -0
  290. package/dist/esm/state/GridState.js.map +1 -1
  291. package/dist/esm/state/TableState.js +2 -0
  292. package/dist/esm/state/TableState.js.map +1 -1
  293. package/dist/esm/state/TagsBulkAssignPopoverState.js +3 -3
  294. package/dist/esm/state/TagsBulkAssignPopoverState.js.map +1 -1
  295. package/dist/esm/state/TagsModalState.js +3 -3
  296. package/dist/esm/state/TagsModalState.js.map +1 -1
  297. package/dist/esm/state/ToolbarCollectionState.js +2 -2
  298. package/dist/esm/state/ToolbarCollectionState.js.map +1 -1
  299. package/dist/esm/state/WixPatternsRouterState.js +6 -1
  300. package/dist/esm/state/WixPatternsRouterState.js.map +1 -1
  301. package/dist/esm/styles.global.css +1 -1
  302. package/dist/esm/testkit/puppeteer.js +2 -0
  303. package/dist/esm/testkit/puppeteer.js.map +1 -1
  304. package/dist/esm/version.js +1 -1
  305. package/dist/types/aiAssistance/AiAssistance.d.ts +5 -1
  306. package/dist/types/aiAssistance/AiAssistance.d.ts.map +1 -1
  307. package/dist/types/aiAssistance/createAiAssistance.d.ts.map +1 -1
  308. package/dist/types/aiAssistance/index.d.ts +1 -0
  309. package/dist/types/aiAssistance/index.d.ts.map +1 -1
  310. package/dist/types/components/ActionControl/ActionButton.d.ts +2 -2
  311. package/dist/types/components/ActionControl/ActionButton.d.ts.map +1 -1
  312. package/dist/types/components/ActionControl/ActionControl.d.ts +3 -2
  313. package/dist/types/components/ActionControl/ActionControl.d.ts.map +1 -1
  314. package/dist/types/components/ActionControl/ActionPopover.d.ts +3 -2
  315. package/dist/types/components/ActionControl/ActionPopover.d.ts.map +1 -1
  316. package/dist/types/components/ActionControl/ActionSubItemProps.d.ts +0 -1
  317. package/dist/types/components/ActionControl/ActionSubItemProps.d.ts.map +1 -1
  318. package/dist/types/components/Collapse/Collapse.st.css.d.ts.map +1 -1
  319. package/dist/types/components/CollectionList/CollectionList.uni.driver.d.ts +1 -1
  320. package/dist/types/components/CollectionPageHeaderNew/CollectionPageHeader.d.ts +9 -3
  321. package/dist/types/components/CollectionPageHeaderNew/CollectionPageHeader.d.ts.map +1 -1
  322. package/dist/types/components/CollectionPageNew/CollectionPage.uni.driver.d.ts +39 -3
  323. package/dist/types/components/CollectionPageNew/CollectionPage.uni.driver.d.ts.map +1 -1
  324. package/dist/types/components/CollectionTable/CollectionTable.uni.driver.d.ts +25 -28
  325. package/dist/types/components/CollectionTable/CollectionTable.uni.driver.d.ts.map +1 -1
  326. package/dist/types/components/CollectionViewsDropdown/ViewsDropdown.st.css.d.ts.map +1 -1
  327. package/dist/types/components/CustomFieldsWidget/CustomFieldsViewWidgetSection.st.css.d.ts.map +1 -1
  328. package/dist/types/components/DragAndDrop/CollectionDragAndDropBI.d.ts.map +1 -1
  329. package/dist/types/components/DragAndDrop/CollectionDragAndDropState.d.ts.map +1 -1
  330. package/dist/types/components/DragHandle/DragHandle.st.css.d.ts.map +1 -1
  331. package/dist/types/components/Fade/Fade.st.css.d.ts.map +1 -1
  332. package/dist/types/components/Grid/Grid.uni.driver.d.ts +1 -1
  333. package/dist/types/components/Grid/GridFolders.uni.driver.d.ts +3 -3
  334. package/dist/types/components/Grid/GridFoldersSection.uni.driver.d.ts +1 -1
  335. package/dist/types/components/Grid/GridSingleGridContent.d.ts +3 -7
  336. package/dist/types/components/Grid/GridSingleGridContent.d.ts.map +1 -1
  337. package/dist/types/components/Grid/useGridBaseSyncProps.d.ts.map +1 -1
  338. package/dist/types/components/GridSections/GridSectionsContent.d.ts +4 -9
  339. package/dist/types/components/GridSections/GridSectionsContent.d.ts.map +1 -1
  340. package/dist/types/components/GridSections/GridSectionsSingleSkeletonGrid.d.ts +3 -7
  341. package/dist/types/components/GridSections/GridSectionsSingleSkeletonGrid.d.ts.map +1 -1
  342. package/dist/types/components/GridSections/GridSectionsState.d.ts +3 -2
  343. package/dist/types/components/GridSections/GridSectionsState.d.ts.map +1 -1
  344. package/dist/types/components/InfiniteScrollCollectionList/InfiniteScrollCollectionList.uni.driver.d.ts +1 -1
  345. package/dist/types/components/LoadingRow/AILoadingLottiePoster.d.ts +3 -0
  346. package/dist/types/components/LoadingRow/AILoadingLottiePoster.d.ts.map +1 -0
  347. package/dist/types/components/LoadingRow/LoadingRow.st.css.d.ts +15 -0
  348. package/dist/types/components/LoadingRow/LoadingRow.st.css.d.ts.map +1 -0
  349. package/dist/types/components/LoadingRow/LoadingRowState.d.ts +23 -0
  350. package/dist/types/components/LoadingRow/LoadingRowState.d.ts.map +1 -0
  351. package/dist/types/components/LoadingRow/LoadingRowTD.d.ts +10 -0
  352. package/dist/types/components/LoadingRow/LoadingRowTD.d.ts.map +1 -0
  353. package/dist/types/components/LoadingRow/aiLoadingLottie.d.ts +401 -0
  354. package/dist/types/components/LoadingRow/aiLoadingLottie.d.ts.map +1 -0
  355. package/dist/types/components/MaxHeightText/MaxHeightText.st.css.d.ts.map +1 -1
  356. package/dist/types/components/MoreActions/MoreActionsBase.d.ts.map +1 -1
  357. package/dist/types/components/MoreActions/MoreActionsText.d.ts.map +1 -1
  358. package/dist/types/components/MultiBulkActionToolbar/MultiBulkActionToolbar.d.ts.map +1 -1
  359. package/dist/types/components/MultiBulkActionToolbar/MultiBulkActionToolbar.st.css.d.ts.map +1 -1
  360. package/dist/types/components/NestedTable/NestedTable.uni.driver.d.ts +6 -1
  361. package/dist/types/components/NestedTable/NestedTable.uni.driver.d.ts.map +1 -1
  362. package/dist/types/components/PrimaryActions/PrimaryActions.d.ts +5 -0
  363. package/dist/types/components/PrimaryActions/PrimaryActions.d.ts.map +1 -0
  364. package/dist/types/components/PrimaryActions/index.d.ts +2 -0
  365. package/dist/types/components/PrimaryActions/index.d.ts.map +1 -0
  366. package/dist/types/components/PrimaryPageButton/PrimaryPageButton.d.ts +4 -0
  367. package/dist/types/components/PrimaryPageButton/PrimaryPageButton.d.ts.map +1 -1
  368. package/dist/types/components/ScrollableContent/ScrollableContent.st.css.d.ts.map +1 -1
  369. package/dist/types/components/SecondaryActions/SecondaryActions.d.ts +5 -0
  370. package/dist/types/components/SecondaryActions/SecondaryActions.d.ts.map +1 -0
  371. package/dist/types/components/SecondaryActions/index.d.ts +2 -0
  372. package/dist/types/components/SecondaryActions/index.d.ts.map +1 -0
  373. package/dist/types/components/SummaryBar/SummaryBar.uni.driver.d.ts +1 -1
  374. package/dist/types/components/Table/Table.uni.driver.d.ts +6 -1
  375. package/dist/types/components/Table/Table.uni.driver.d.ts.map +1 -1
  376. package/dist/types/components/Table/TableBase.d.ts.map +1 -1
  377. package/dist/types/components/Table/TableBaseRow.d.ts +11 -0
  378. package/dist/types/components/Table/TableBaseRow.d.ts.map +1 -0
  379. package/dist/types/components/Table/useTableBaseRow.d.ts +11 -0
  380. package/dist/types/components/Table/useTableBaseRow.d.ts.map +1 -0
  381. package/dist/types/components/TableFolders/TableFolders.uni.driver.d.ts +6 -1
  382. package/dist/types/components/TableFolders/TableFolders.uni.driver.d.ts.map +1 -1
  383. package/dist/types/components/TableGridSwitch/TableGridSwitch.uni.driver.d.ts +8 -3
  384. package/dist/types/components/TableGridSwitch/TableGridSwitch.uni.driver.d.ts.map +1 -1
  385. package/dist/types/components/TableGridSwitchFolders/TableGridSwitchFolders.uni.driver.d.ts +10 -5
  386. package/dist/types/components/TableGridSwitchFolders/TableGridSwitchFolders.uni.driver.d.ts.map +1 -1
  387. package/dist/types/components/TabsFilter/TabsFilter.st.css.d.ts.map +1 -1
  388. package/dist/types/components/Tags/BulkAssignTagsPopover/BulkAssignTagsPopover.uni.driver.d.ts +1 -0
  389. package/dist/types/components/Tags/BulkAssignTagsPopover/BulkAssignTagsPopover.uni.driver.d.ts.map +1 -1
  390. package/dist/types/components/Tags/ManageTags/ManageTagsModal/ManageTagsModal.uni.driver.d.ts +1 -0
  391. package/dist/types/components/Tags/ManageTags/ManageTagsModal/ManageTagsModal.uni.driver.d.ts.map +1 -1
  392. package/dist/types/components/TagsAssignButton/TagsAssignButton.uni.driver.d.ts +1 -0
  393. package/dist/types/components/TagsAssignButton/TagsAssignButton.uni.driver.d.ts.map +1 -1
  394. package/dist/types/components/ToolbarCollection/useToolbarCollectionSyncProps.d.ts.map +1 -1
  395. package/dist/types/components/ToolbarItemBox/ToolbarItemBox.st.css.d.ts.map +1 -1
  396. package/dist/types/hooks/useSyncCollectionOnEntityReturn.d.ts.map +1 -1
  397. package/dist/types/hooks/useTableCollection.d.ts.map +1 -1
  398. package/dist/types/index.d.ts +3 -0
  399. package/dist/types/index.d.ts.map +1 -1
  400. package/dist/types/providers/WixPatternsRouterProvider.d.ts +1 -1
  401. package/dist/types/providers/WixPatternsRouterProvider.d.ts.map +1 -1
  402. package/dist/types/state/CollectionPage/useCollectionPageHeader.d.ts.map +1 -1
  403. package/dist/types/state/CustomColumnsState.d.ts +1 -0
  404. package/dist/types/state/CustomColumnsState.d.ts.map +1 -1
  405. package/dist/types/state/EntityPage/EntityPageState.d.ts +5 -3
  406. package/dist/types/state/EntityPage/EntityPageState.d.ts.map +1 -1
  407. package/dist/types/state/GridBaseState.d.ts +5 -7
  408. package/dist/types/state/GridBaseState.d.ts.map +1 -1
  409. package/dist/types/state/GridFoldersState.d.ts +2 -0
  410. package/dist/types/state/GridFoldersState.d.ts.map +1 -1
  411. package/dist/types/state/GridParentState.d.ts +8 -0
  412. package/dist/types/state/GridParentState.d.ts.map +1 -0
  413. package/dist/types/state/GridState.d.ts +2 -0
  414. package/dist/types/state/GridState.d.ts.map +1 -1
  415. package/dist/types/state/TableState.d.ts +2 -0
  416. package/dist/types/state/TableState.d.ts.map +1 -1
  417. package/dist/types/state/TagsBulkAssignPopoverState.d.ts.map +1 -1
  418. package/dist/types/state/WixPatternsRouterState.d.ts +14 -3
  419. package/dist/types/state/WixPatternsRouterState.d.ts.map +1 -1
  420. package/dist/types/testkit/enzyme.d.ts +41 -16
  421. package/dist/types/testkit/enzyme.d.ts.map +1 -1
  422. package/dist/types/testkit/jsdom.d.ts +71 -17
  423. package/dist/types/testkit/jsdom.d.ts.map +1 -1
  424. package/dist/types/testkit/puppeteer.d.ts +124 -16
  425. package/dist/types/testkit/puppeteer.d.ts.map +1 -1
  426. package/dist/types/version.d.ts +1 -1
  427. package/package.json +6 -4
  428. package/dist/cjs/exports/aiAssistance.js +0 -10
  429. package/dist/cjs/exports/aiAssistance.js.map +0 -1
  430. package/dist/esm/exports/aiAssistance.js +0 -2
  431. package/dist/esm/exports/aiAssistance.js.map +0 -1
  432. package/dist/types/exports/aiAssistance.d.ts +0 -2
  433. package/dist/types/exports/aiAssistance.d.ts.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"names":["_bexCore","require","_mobx","_CustomColumnsHistoryState","_indexOfCompareFn","_events","_bi","asStoredColumnsOrNull","customColumnsResult","Array","isArray","CustomColumnsState","constructor","params","_defineProperty2","default","Map","TaskState","SelectState","keyGetter","column","id","EventEmitter","action","select","onColumnClick","toggle","isChecked","table","container","columnsCollection","CollectionState","events","queryName","environment","componentId","collection","filter","Boolean","join","fetchData","orderedColumns","items","hiddenFromCustomColumnsSelection","filters","itemKey","item","itemName","name","fetchErrorMessage","dragAndDrop","CustomColumnsDragAndDropState","customColumns","components","modalsContainerRef","customColumnsHistory","persistQueryToUrl","CustomColumnsHistoryState","history","makeObservable","persistCustomColumns","bound","toSelectedColumns","computed","selectedOrderedColumns","init","columns","customColumnsState","selectedColumns","value","some","selectedColumn","isSelected","dataCapsule","viewsProps","setItem","registerSelectedColumnChange","on","off","mergeNewColumns","_toStoredColumn","_didFirstColumnsMerge","defaultHidden","length","mergeTargetSelectedColumns","s","every","c","map","existing","find","hideable","diffColumns","forEach","d","originalIndex","findIndex","afterId","afterIndex","splice","getStickyColumnsCount","stickyColumns","reorderDisabled","reorderDisabledColumns","orderedColumnsByReorderDisabled","selectionChanged","i","a","b","_this$dragAndDrop","_this$customColumnsHi","customColumnsStateInitialized","disposers","reaction","clear","forceSetMany","status","finalStatus","startStatus","refreshAllPages","fireImmediately","selectedValues","setValue","emitEvents","disposer","_getStoredCustomColumns","getItem","e","Error","message","_tableInit","initTask","multi","collections","runOnce","beforeInitialFetchListeners","listeners","Promise","all","l","_fetchFromStorage","console","error","query","refreshOnColumnsChange","emitter","addListener","promise","_customColumnsState$c","_selectedColumnsFromUrl","storedCustomColumns","selectedColumnsFromStorage","sort","indexOfCompareFn","customizeColumnsInSidePanelBi","actionName","_performedCustomColumnsActions","get","set","reportBi","withoutDefaults","cairoCustomizeColumnsInSidePanel","exports"],"sources":["../../../src/state/CustomColumnsState.ts"],"sourcesContent":["import {\n CollectionState,\n FiltersMap,\n SelectState,\n TaskState,\n TypedEmitter,\n withoutDefaults,\n WixPatternsContainer,\n} from '@wix/bex-core';\nimport { action, computed, makeObservable, reaction } from 'mobx';\nimport { ToolbarCollectionState } from './ToolbarCollectionState';\nimport { Column } from '../model';\nimport type { CustomColumnsDragAndDrop } from '../components/CustomColumns/CustomColumnsDragAndDrop';\nimport { CustomColumnsHistoryState } from './CustomColumnsHistoryState';\nimport { indexOfCompareFn } from './indexOfCompareFn';\nimport { EventEmitter } from 'events';\nimport { cairoCustomizeColumnsInSidePanel } from '@wix/bex-core/bi';\n\ntype StoredColumn =\n | { id?: string; name?: string; isSelected?: boolean }\n | null\n | undefined;\n\nconst asStoredColumnsOrNull = (customColumnsResult: unknown) =>\n Array.isArray(customColumnsResult)\n ? (customColumnsResult as StoredColumn[])\n : null;\n\nexport interface CustomColumnsStateParams<T, F extends FiltersMap> {\n readonly table: ToolbarCollectionState<T, F>;\n readonly container: WixPatternsContainer;\n readonly dragAndDrop?: typeof CustomColumnsDragAndDrop;\n readonly modalsContainerRef: {\n current: HTMLElement | null | undefined;\n };\n}\n\nexport type CustomColumnsActionName = 'visibility' | 'reorder';\n\nexport class CustomColumnsState<T, F extends FiltersMap> {\n readonly table;\n readonly container;\n\n readonly columnsCollection;\n\n readonly dragAndDrop;\n\n readonly customColumnsHistory;\n\n onColumnClick?: (column: Column, checked: boolean) => unknown;\n\n _didFirstColumnsMerge?: boolean;\n _performedCustomColumnsActions: Map<CustomColumnsActionName, boolean> =\n new Map();\n\n readonly initTask = new TaskState();\n\n readonly select = new SelectState<{ id: string }>({\n keyGetter: (column) => column.id,\n });\n\n readonly events = new EventEmitter() as TypedEmitter<{\n beforeInitialFetch: () => void;\n }>;\n\n constructor(params: CustomColumnsStateParams<T, F>) {\n this.table = params.table;\n this.container = params.container;\n\n this.columnsCollection = new CollectionState({\n ...this.container,\n events: {},\n queryName: [\n this.container.environment.componentId,\n this.table.collection.queryName,\n 'customColumns',\n ]\n .filter(Boolean)\n .join('/'),\n fetchData: async () => {\n const { orderedColumns } = this;\n\n const items = orderedColumns.filter(\n (column) => column.hiddenFromCustomColumnsSelection !== true,\n );\n\n return {\n items,\n };\n },\n filters: {},\n itemKey: (item) => item.id,\n itemName: (item) => item.name,\n fetchErrorMessage: () => null,\n });\n\n if (params.dragAndDrop) {\n const { CustomColumnsDragAndDropState } = params.dragAndDrop;\n this.dragAndDrop = new CustomColumnsDragAndDropState({\n customColumns: this,\n components: params.dragAndDrop,\n modalsContainerRef: params.modalsContainerRef,\n });\n }\n\n this.customColumnsHistory = this.table.collection.persistQueryToUrl\n ? new CustomColumnsHistoryState({\n customColumns: this,\n history: params.container.history,\n })\n : null;\n\n makeObservable(this, {\n persistCustomColumns: action.bound,\n toSelectedColumns: computed,\n orderedColumns: computed,\n selectedOrderedColumns: computed,\n init: action,\n });\n }\n\n get orderedColumns(): Column[] {\n const { dragAndDrop, table } = this;\n const { columns, customColumnsState } = table;\n\n if (customColumnsState?.dragAndDrop && dragAndDrop) {\n return dragAndDrop.orderedColumns;\n }\n\n return columns;\n }\n\n get selectedOrderedColumns() {\n const {\n orderedColumns,\n table: {\n selectedColumns: { value: selectedColumns },\n },\n } = this;\n\n return orderedColumns.filter((column) =>\n selectedColumns.some(\n (selectedColumn) =>\n selectedColumn.id === column.id && selectedColumn.isSelected,\n ),\n );\n }\n\n async persistCustomColumns() {\n const { table } = this;\n const { dataCapsule, viewsProps } = table;\n\n // if views enabled columns persists inside the view instead of data capsule\n if (viewsProps) {\n return;\n }\n\n await dataCapsule.setItem('custom-columns', table.selectedColumns.value);\n }\n\n private registerSelectedColumnChange() {\n const { table } = this;\n table.selectedColumns.events.on('refresh', this.persistCustomColumns);\n\n return () => {\n table.selectedColumns.events.off('refresh', this.persistCustomColumns);\n };\n }\n\n mergeNewColumns() {\n const {\n table: { columns, selectedColumns, _toStoredColumn, customColumnsState },\n _didFirstColumnsMerge,\n } = this;\n\n const defaultHidden =\n !_didFirstColumnsMerge && !!selectedColumns.value.length;\n\n const mergeTargetSelectedColumns = [...selectedColumns.value];\n\n if (customColumnsState?.dragAndDrop == null) {\n return [\n ...mergeTargetSelectedColumns.filter((s) =>\n columns.every((c) => s.id !== c.id),\n ),\n ...columns.map((c) => {\n const existing = selectedColumns.value.find((s) => s.id === c.id);\n if (existing == null) {\n return _toStoredColumn(c);\n }\n\n return {\n ...existing,\n isSelected:\n c.hideable === false ||\n c.hiddenFromCustomColumnsSelection ||\n existing.isSelected,\n };\n }),\n ];\n }\n\n const diffColumns = columns\n .filter((c) => selectedColumns.value.every((s) => s.id !== c.id))\n .map((c) =>\n _toStoredColumn({\n ...c,\n defaultHidden: defaultHidden || c.defaultHidden,\n }),\n );\n\n // place new columns according to their order in the original columns prop\n diffColumns.forEach((d) => {\n const originalIndex = columns.findIndex((c) => c.id === d.id);\n const afterId = originalIndex > 0 ? columns[originalIndex - 1].id : null;\n const afterIndex =\n afterId != null\n ? mergeTargetSelectedColumns.findIndex((c) => c.id === afterId) + 1\n : originalIndex === 0\n ? 0\n : mergeTargetSelectedColumns.length;\n mergeTargetSelectedColumns.splice(afterIndex, 0, d);\n });\n\n this._didFirstColumnsMerge = true;\n return mergeTargetSelectedColumns;\n }\n\n onColumnCheckboxToggle = action((column: Column) => {\n const { select, onColumnClick } = this;\n select.toggle(column);\n onColumnClick?.(column, select.isChecked(column.id));\n });\n\n getStickyColumnsCount({ stickyColumns }: { stickyColumns: number }) {\n const {\n dragAndDrop,\n table: {\n selectedColumns: { value: selectedColumns },\n },\n } = this;\n\n if (dragAndDrop == null) {\n return stickyColumns;\n }\n\n const { reorderDisabled: reorderDisabledColumns } =\n dragAndDrop.orderedColumnsByReorderDisabled;\n\n if (!reorderDisabledColumns.length) {\n return stickyColumns;\n }\n\n return dragAndDrop.orderedColumnsByReorderDisabled.reorderDisabled.filter(\n (column) =>\n selectedColumns.some(\n (selectedColumn) =>\n selectedColumn.id === column.id && selectedColumn.isSelected,\n ),\n ).length;\n }\n\n get toSelectedColumns() {\n const {\n select,\n table: {\n selectedColumns: { value },\n },\n } = this;\n\n return value.map(({ id }) => ({\n id,\n isSelected: select.isChecked(id),\n }));\n }\n\n get selectionChanged() {\n const {\n toSelectedColumns,\n table: {\n selectedColumns: { value },\n },\n } = this;\n\n if (value.length !== toSelectedColumns.length) {\n return true;\n }\n\n for (let i = 0; i < value.length; i++) {\n const a = value[i];\n const b = toSelectedColumns[i];\n\n if (a.id !== b.id || a.isSelected !== b.isSelected) {\n return true;\n }\n }\n\n return false;\n }\n\n init() {\n const { table } = this;\n table.customColumnsStateInitialized = true;\n\n const disposers = [\n reaction(\n () => this.table.selectedColumns.value,\n async (selectedColumns) => {\n const { select, columnsCollection } = this;\n\n select.clear();\n select.forceSetMany(\n selectedColumns.map(({ id, isSelected }) => ({\n value: { id },\n status: isSelected ? select.finalStatus : select.startStatus,\n })),\n );\n await columnsCollection.refreshAllPages();\n },\n {\n fireImmediately: true,\n },\n ),\n reaction(\n () => this.select.selectedValues,\n () => {\n const {\n table: { selectedColumns },\n } = this;\n\n if (!this.selectionChanged) {\n return;\n }\n\n selectedColumns.setValue(this.toSelectedColumns, {\n emitEvents: ['change', 'beforeRefresh', 'refresh'],\n });\n },\n ),\n\n this.registerSelectedColumnChange(),\n this.columnsCollection.init(),\n this.dragAndDrop?.init(),\n this.customColumnsHistory?.init(),\n ];\n\n return () => {\n disposers.forEach((disposer) => disposer?.());\n };\n }\n\n async _getStoredCustomColumns() {\n const { dataCapsule } = this.table;\n try {\n return asStoredColumnsOrNull(await dataCapsule.getItem('custom-columns'));\n } catch (e) {\n if (e instanceof Error && e.message === 'Key was not found in capsule') {\n return null;\n }\n\n throw e;\n }\n }\n\n _tableInit() {\n const {\n initTask,\n table: {\n multi: { collections },\n },\n } = this;\n initTask.runOnce(async () => {\n try {\n const beforeInitialFetchListeners =\n this.events.listeners('beforeInitialFetch');\n await Promise.all(beforeInitialFetchListeners.map((l) => l()));\n await this._fetchFromStorage();\n } catch (e) {\n console.error(e);\n }\n });\n\n collections.forEach((collection) => {\n if (collection.query.refreshOnColumnsChange) {\n collection.emitter.addListener(\n 'beforeInitialFetch',\n () => initTask.status.promise,\n );\n }\n });\n }\n\n async _fetchFromStorage() {\n const {\n table: { viewsProps, columns, selectedColumns, customColumnsState },\n } = this;\n\n if (viewsProps) {\n return;\n }\n\n if (customColumnsState?.customColumnsHistory?._selectedColumnsFromUrl) {\n return;\n }\n\n const storedCustomColumns = await this._getStoredCustomColumns();\n\n if (storedCustomColumns == null) {\n return;\n }\n\n const selectedColumnsFromStorage = columns.map(\n ({ id, name, hideable, hiddenFromCustomColumnsSelection }) => ({\n id,\n name,\n isSelected:\n storedCustomColumns.some(\n (c) => c?.id === id && c?.isSelected !== false,\n ) ||\n !hideable ||\n hiddenFromCustomColumnsSelection === true,\n }),\n );\n\n selectedColumns.setValue(\n customColumnsState?.dragAndDrop\n ? selectedColumnsFromStorage.sort(\n indexOfCompareFn(storedCustomColumns, (e) => e?.id),\n )\n : selectedColumnsFromStorage,\n );\n }\n\n customizeColumnsInSidePanelBi({\n actionName,\n }: {\n actionName: CustomColumnsActionName;\n }) {\n if (this._performedCustomColumnsActions.get(actionName)) {\n return;\n }\n this._performedCustomColumnsActions.set(actionName, true);\n this.table.reportBi(\n withoutDefaults(cairoCustomizeColumnsInSidePanel)({\n actionName,\n }),\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_bexCore","require","_mobx","_CustomColumnsHistoryState","_indexOfCompareFn","_events","_bi","asStoredColumnsOrNull","customColumnsResult","Array","isArray","CustomColumnsState","constructor","params","_defineProperty2","default","Map","TaskState","SelectState","keyGetter","column","id","EventEmitter","action","select","onColumnClick","toggle","isChecked","table","container","columnsCollection","CollectionState","events","queryName","environment","componentId","collection","filter","Boolean","join","fetchData","orderedColumns","items","hiddenFromCustomColumnsSelection","filters","itemKey","item","itemName","name","fetchErrorMessage","dragAndDrop","CustomColumnsDragAndDropState","customColumns","components","modalsContainerRef","customColumnsHistory","persistQueryToUrl","CustomColumnsHistoryState","history","makeObservable","persistCustomColumns","bound","toSelectedColumns","computed","selectedOrderedColumns","init","columns","customColumnsState","selectedColumns","value","some","selectedColumn","isSelected","dataCapsule","viewsProps","_touched","setItem","registerSelectedColumnChange","on","off","mergeNewColumns","_toStoredColumn","_didFirstColumnsMerge","defaultHidden","length","mergeTargetSelectedColumns","s","every","c","map","existing","find","hideable","diffColumns","forEach","d","originalIndex","findIndex","afterId","afterIndex","splice","getStickyColumnsCount","stickyColumns","reorderDisabled","reorderDisabledColumns","orderedColumnsByReorderDisabled","selectionChanged","i","a","b","_this$dragAndDrop","_this$customColumnsHi","customColumnsStateInitialized","disposers","reaction","clear","forceSetMany","status","finalStatus","startStatus","refreshAllPages","fireImmediately","selectedValues","setValue","emitEvents","disposer","_getStoredCustomColumns","storedValue","getItem","e","Error","message","_tableInit","initTask","multi","collections","runOnce","beforeInitialFetchListeners","listeners","Promise","all","l","_fetchFromStorage","console","error","query","refreshOnColumnsChange","emitter","addListener","promise","_customColumnsState$c","_selectedColumnsFromUrl","storedCustomColumns","selectedColumnsFromStorage","tableColumn","sort","indexOfCompareFn","customizeColumnsInSidePanelBi","actionName","_performedCustomColumnsActions","get","set","reportBi","withoutDefaults","cairoCustomizeColumnsInSidePanel","exports"],"sources":["../../../src/state/CustomColumnsState.ts"],"sourcesContent":["import {\n CollectionState,\n FiltersMap,\n SelectState,\n TaskState,\n TypedEmitter,\n withoutDefaults,\n WixPatternsContainer,\n} from '@wix/bex-core';\nimport { action, computed, makeObservable, reaction } from 'mobx';\nimport { ToolbarCollectionState } from './ToolbarCollectionState';\nimport { Column } from '../model';\nimport type { CustomColumnsDragAndDrop } from '../components/CustomColumns/CustomColumnsDragAndDrop';\nimport { CustomColumnsHistoryState } from './CustomColumnsHistoryState';\nimport { indexOfCompareFn } from './indexOfCompareFn';\nimport { EventEmitter } from 'events';\nimport { cairoCustomizeColumnsInSidePanel } from '@wix/bex-core/bi';\n\ntype StoredColumn =\n | { id?: string; name?: string; isSelected?: boolean }\n | null\n | undefined;\n\nconst asStoredColumnsOrNull = (customColumnsResult: unknown) =>\n Array.isArray(customColumnsResult)\n ? (customColumnsResult as StoredColumn[])\n : null;\n\nexport interface CustomColumnsStateParams<T, F extends FiltersMap> {\n readonly table: ToolbarCollectionState<T, F>;\n readonly container: WixPatternsContainer;\n readonly dragAndDrop?: typeof CustomColumnsDragAndDrop;\n readonly modalsContainerRef: {\n current: HTMLElement | null | undefined;\n };\n}\n\nexport type CustomColumnsActionName = 'visibility' | 'reorder';\n\nexport class CustomColumnsState<T, F extends FiltersMap> {\n readonly table;\n readonly container;\n\n readonly columnsCollection;\n\n readonly dragAndDrop;\n\n readonly customColumnsHistory;\n\n onColumnClick?: (column: Column, checked: boolean) => unknown;\n\n _didFirstColumnsMerge?: boolean;\n _performedCustomColumnsActions: Map<CustomColumnsActionName, boolean> =\n new Map();\n\n readonly initTask = new TaskState();\n\n _touched = false;\n\n readonly select = new SelectState<{ id: string }>({\n keyGetter: (column) => column.id,\n });\n\n readonly events = new EventEmitter() as TypedEmitter<{\n beforeInitialFetch: () => void;\n }>;\n\n constructor(params: CustomColumnsStateParams<T, F>) {\n this.table = params.table;\n this.container = params.container;\n\n this.columnsCollection = new CollectionState({\n ...this.container,\n events: {},\n queryName: [\n this.container.environment.componentId,\n this.table.collection.queryName,\n 'customColumns',\n ]\n .filter(Boolean)\n .join('/'),\n fetchData: async () => {\n const { orderedColumns } = this;\n\n const items = orderedColumns.filter(\n (column) => column.hiddenFromCustomColumnsSelection !== true,\n );\n\n return {\n items,\n };\n },\n filters: {},\n itemKey: (item) => item.id,\n itemName: (item) => item.name,\n fetchErrorMessage: () => null,\n });\n\n if (params.dragAndDrop) {\n const { CustomColumnsDragAndDropState } = params.dragAndDrop;\n this.dragAndDrop = new CustomColumnsDragAndDropState({\n customColumns: this,\n components: params.dragAndDrop,\n modalsContainerRef: params.modalsContainerRef,\n });\n }\n\n this.customColumnsHistory = this.table.collection.persistQueryToUrl\n ? new CustomColumnsHistoryState({\n customColumns: this,\n history: params.container.history,\n })\n : null;\n\n makeObservable(this, {\n persistCustomColumns: action.bound,\n toSelectedColumns: computed,\n orderedColumns: computed,\n selectedOrderedColumns: computed,\n init: action,\n });\n }\n\n get orderedColumns(): Column[] {\n const { dragAndDrop, table } = this;\n const { columns, customColumnsState } = table;\n\n if (customColumnsState?.dragAndDrop && dragAndDrop) {\n return dragAndDrop.orderedColumns;\n }\n\n return columns;\n }\n\n get selectedOrderedColumns() {\n const {\n orderedColumns,\n table: {\n selectedColumns: { value: selectedColumns },\n },\n } = this;\n\n return orderedColumns.filter((column) =>\n selectedColumns.some(\n (selectedColumn) =>\n selectedColumn.id === column.id && selectedColumn.isSelected,\n ),\n );\n }\n\n async persistCustomColumns() {\n const { table } = this;\n const { dataCapsule, viewsProps } = table;\n\n // if views enabled columns persists inside the view instead of data capsule\n if (viewsProps) {\n return;\n }\n\n this._touched = true;\n await dataCapsule.setItem('custom-columns', table.selectedColumns.value);\n }\n\n private registerSelectedColumnChange() {\n const { table } = this;\n table.selectedColumns.events.on('refresh', this.persistCustomColumns);\n\n return () => {\n table.selectedColumns.events.off('refresh', this.persistCustomColumns);\n };\n }\n\n mergeNewColumns() {\n const {\n table: { columns, selectedColumns, _toStoredColumn, customColumnsState },\n _didFirstColumnsMerge,\n } = this;\n\n const defaultHidden =\n !_didFirstColumnsMerge && !!selectedColumns.value.length;\n\n const mergeTargetSelectedColumns = [...selectedColumns.value];\n\n if (customColumnsState?.dragAndDrop == null) {\n return [\n ...mergeTargetSelectedColumns.filter((s) =>\n columns.every((c) => s.id !== c.id),\n ),\n ...columns.map((c) => {\n const existing = selectedColumns.value.find((s) => s.id === c.id);\n if (existing == null) {\n return _toStoredColumn(c);\n }\n\n return {\n ...existing,\n isSelected:\n c.hideable === false ||\n c.hiddenFromCustomColumnsSelection ||\n existing.isSelected,\n };\n }),\n ];\n }\n\n const diffColumns = columns\n .filter((c) => selectedColumns.value.every((s) => s.id !== c.id))\n .map((c) =>\n _toStoredColumn({\n ...c,\n defaultHidden: defaultHidden || c.defaultHidden,\n }),\n );\n\n // place new columns according to their order in the original columns prop\n diffColumns.forEach((d) => {\n const originalIndex = columns.findIndex((c) => c.id === d.id);\n const afterId = originalIndex > 0 ? columns[originalIndex - 1].id : null;\n const afterIndex =\n afterId != null\n ? mergeTargetSelectedColumns.findIndex((c) => c.id === afterId) + 1\n : originalIndex === 0\n ? 0\n : mergeTargetSelectedColumns.length;\n mergeTargetSelectedColumns.splice(afterIndex, 0, d);\n });\n\n this._didFirstColumnsMerge = true;\n return mergeTargetSelectedColumns;\n }\n\n onColumnCheckboxToggle = action((column: Column) => {\n const { select, onColumnClick } = this;\n select.toggle(column);\n onColumnClick?.(column, select.isChecked(column.id));\n });\n\n getStickyColumnsCount({ stickyColumns }: { stickyColumns: number }) {\n const {\n dragAndDrop,\n table: {\n selectedColumns: { value: selectedColumns },\n },\n } = this;\n\n if (dragAndDrop == null) {\n return stickyColumns;\n }\n\n const { reorderDisabled: reorderDisabledColumns } =\n dragAndDrop.orderedColumnsByReorderDisabled;\n\n if (!reorderDisabledColumns.length) {\n return stickyColumns;\n }\n\n return dragAndDrop.orderedColumnsByReorderDisabled.reorderDisabled.filter(\n (column) =>\n selectedColumns.some(\n (selectedColumn) =>\n selectedColumn.id === column.id && selectedColumn.isSelected,\n ),\n ).length;\n }\n\n get toSelectedColumns() {\n const {\n select,\n table: {\n selectedColumns: { value },\n },\n } = this;\n\n return value.map(({ id }) => ({\n id,\n isSelected: select.isChecked(id),\n }));\n }\n\n get selectionChanged() {\n const {\n toSelectedColumns,\n table: {\n selectedColumns: { value },\n },\n } = this;\n\n if (value.length !== toSelectedColumns.length) {\n return true;\n }\n\n for (let i = 0; i < value.length; i++) {\n const a = value[i];\n const b = toSelectedColumns[i];\n\n if (a.id !== b.id || a.isSelected !== b.isSelected) {\n return true;\n }\n }\n\n return false;\n }\n\n init() {\n const { table } = this;\n table.customColumnsStateInitialized = true;\n\n const disposers = [\n reaction(\n () => this.table.selectedColumns.value,\n async (selectedColumns) => {\n const { select, columnsCollection } = this;\n\n select.clear();\n select.forceSetMany(\n selectedColumns.map(({ id, isSelected }) => ({\n value: { id },\n status: isSelected ? select.finalStatus : select.startStatus,\n })),\n );\n await columnsCollection.refreshAllPages();\n },\n {\n fireImmediately: true,\n },\n ),\n reaction(\n () => this.select.selectedValues,\n () => {\n const {\n table: { selectedColumns },\n } = this;\n\n if (!this.selectionChanged) {\n return;\n }\n\n selectedColumns.setValue(this.toSelectedColumns, {\n emitEvents: ['change', 'beforeRefresh', 'refresh'],\n });\n },\n ),\n\n this.registerSelectedColumnChange(),\n this.columnsCollection.init(),\n this.dragAndDrop?.init(),\n this.customColumnsHistory?.init(),\n ];\n\n return () => {\n disposers.forEach((disposer) => disposer?.());\n };\n }\n\n async _getStoredCustomColumns() {\n const { dataCapsule } = this.table;\n try {\n const storedValue = await asStoredColumnsOrNull(\n await dataCapsule.getItem('custom-columns'),\n );\n this._touched = storedValue != null;\n return storedValue;\n } catch (e) {\n if (e instanceof Error && e.message === 'Key was not found in capsule') {\n return null;\n }\n\n throw e;\n }\n }\n\n _tableInit() {\n const {\n initTask,\n table: {\n multi: { collections },\n },\n } = this;\n initTask.runOnce(async () => {\n try {\n const beforeInitialFetchListeners =\n this.events.listeners('beforeInitialFetch');\n await Promise.all(beforeInitialFetchListeners.map((l) => l()));\n await this._fetchFromStorage();\n } catch (e) {\n console.error(e);\n }\n });\n\n collections.forEach((collection) => {\n if (collection.query.refreshOnColumnsChange) {\n collection.emitter.addListener(\n 'beforeInitialFetch',\n () => initTask.status.promise,\n );\n }\n });\n }\n\n async _fetchFromStorage() {\n const {\n table: {\n viewsProps,\n columns,\n selectedColumns,\n customColumnsState,\n _toStoredColumn,\n },\n } = this;\n\n if (viewsProps) {\n return;\n }\n\n if (customColumnsState?.customColumnsHistory?._selectedColumnsFromUrl) {\n return;\n }\n\n const storedCustomColumns = await this._getStoredCustomColumns();\n\n if (storedCustomColumns == null) {\n return;\n }\n\n const selectedColumnsFromStorage = columns.map((tableColumn) => {\n const existing = storedCustomColumns.find(\n (c) => c?.id === tableColumn.id,\n );\n\n // If the column is not found in the stored columns, it means it was added after the last visit, so its \"isSelected\" state should be calculated based on the column prop passed via code\n if (existing == null) {\n return _toStoredColumn(tableColumn);\n }\n\n // If the column is found in the stored columns, it means it was already configured by the user, so its \"isSelected\" state should be taken from the stored columns\n const { id, name, hideable, hiddenFromCustomColumnsSelection } =\n tableColumn;\n\n return {\n id,\n name,\n isSelected:\n storedCustomColumns.some(\n (c) => c?.id === id && c?.isSelected !== false,\n ) ||\n !hideable ||\n hiddenFromCustomColumnsSelection === true,\n };\n });\n\n selectedColumns.setValue(\n customColumnsState?.dragAndDrop\n ? selectedColumnsFromStorage.sort(\n indexOfCompareFn(storedCustomColumns, (e) => e?.id),\n )\n : selectedColumnsFromStorage,\n );\n }\n\n customizeColumnsInSidePanelBi({\n actionName,\n }: {\n actionName: CustomColumnsActionName;\n }) {\n if (this._performedCustomColumnsActions.get(actionName)) {\n return;\n }\n this._performedCustomColumnsActions.set(actionName, true);\n this.table.reportBi(\n withoutDefaults(cairoCustomizeColumnsInSidePanel)({\n actionName,\n }),\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -26,7 +26,7 @@ class EntityPageState {
26
26
  (0, _defineProperty2.default)(this, "bi", void 0);
27
27
  (0, _defineProperty2.default)(this, "_isSubmitSuccessful", undefined);
28
28
  (0, _defineProperty2.default)(this, "_isFormDirty", false);
29
- (0, _defineProperty2.default)(this, "_withinRouter", false);
29
+ (0, _defineProperty2.default)(this, "_routerState", null);
30
30
  (0, _defineProperty2.default)(this, "formPage", new _bexCore.FormPageState());
31
31
  (0, _defineProperty2.default)(this, "events", new _events.EventEmitter());
32
32
  this.fetch = params.fetch;
@@ -54,13 +54,14 @@ class EntityPageState {
54
54
  _entity: _mobx.observable.ref,
55
55
  setEntity: _mobx.action,
56
56
  _isFormDirty: _mobx.observable.ref,
57
- isFormDirty: _mobx.computed
57
+ isFormDirty: _mobx.computed,
58
+ _withinRouter: _mobx.computed
58
59
  });
59
60
  }
60
61
  init({
61
- withinRouter
62
+ routerState
62
63
  }) {
63
- this._withinRouter = withinRouter;
64
+ this._routerState = routerState;
64
65
  this._checkPageParams();
65
66
  const {
66
67
  initTask,
@@ -113,6 +114,9 @@ class EntityPageState {
113
114
  get isFormDirty() {
114
115
  return this._isFormDirty || this.formPage.isDirty;
115
116
  }
117
+ get _withinRouter() {
118
+ return !!this._routerState;
119
+ }
116
120
  onCancel() {
117
121
  this.bi.reportButtonClick({
118
122
  ctaName: 'Cancel'
@@ -125,7 +129,7 @@ class EntityPageState {
125
129
  [entityStringKey]: updatedEntity
126
130
  };
127
131
  if (this._withinRouter) {
128
- this.container.navigate(this._parentPath, {
132
+ this._routerState.navigate(this._parentPath, {
129
133
  state: entityObject
130
134
  });
131
135
  } else {
@@ -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","entityStringKey","entityObject","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 entityStringKey = this._entity ? '_updatedEntity' : '_createdEntity';\n const entityObject = { [entityStringKey]: 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
+ {"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","routerState","_routerState","_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","entityStringKey","entityObject","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';\nimport { WixPatternsRouterState } from '../WixPatternsRouterState';\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 _routerState: WixPatternsRouterState | null = null;\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 _withinRouter: computed,\n });\n }\n\n init({ routerState }: { routerState: WixPatternsRouterState | null }) {\n this._routerState = routerState;\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 get _withinRouter() {\n return !!this._routerState;\n }\n\n onCancel() {\n this.bi.reportButtonClick({ ctaName: 'Cancel' });\n this.navigateToParent();\n }\n\n navigateToParent(updatedEntity?: any) {\n const entityStringKey = this._entity ? '_updatedEntity' : '_createdEntity';\n const entityObject = { [entityStringKey]: updatedEntity };\n\n if (this._withinRouter) {\n this._routerState!.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":[]}
@@ -20,7 +20,7 @@ class GridBaseState {
20
20
  (0, _defineProperty2.default)(this, "_containerRectState", void 0);
21
21
  (0, _defineProperty2.default)(this, "_responsiveColumnsState", void 0);
22
22
  (0, _defineProperty2.default)(this, "parentState", void 0);
23
- (0, _defineProperty2.default)(this, "sizePreset", void 0);
23
+ (0, _defineProperty2.default)(this, "_sizePreset", void 0);
24
24
  (0, _defineProperty2.default)(this, "layoutType", void 0);
25
25
  (0, _defineProperty2.default)(this, "trailingItemsCount", 0);
26
26
  (0, _defineProperty2.default)(this, "minItemWidth", 196);
@@ -51,7 +51,7 @@ class GridBaseState {
51
51
  minItemWidth: this.minItemWidth,
52
52
  rectState: this._containerRectState
53
53
  });
54
- this.sizePreset = params.sizePreset;
54
+ this._sizePreset = params.sizePreset;
55
55
  this._localLimit = (_params$range = params.range) == null ? void 0 : _params$range.length;
56
56
  this._localStart = ((_params$range2 = params.range) == null ? void 0 : _params$range2.start) ?? 0;
57
57
  (0, _mobx.makeObservable)(this, {
@@ -73,10 +73,13 @@ class GridBaseState {
73
73
  itemsContentWidth: _mobx.computed,
74
74
  containerPaddingTop: _mobx.computed,
75
75
  gap: _mobx.computed,
76
- sizePreset: _mobx.observable.ref,
76
+ _sizePreset: _mobx.observable.ref,
77
77
  layoutType: _mobx.observable.ref
78
78
  });
79
79
  }
80
+ get sizePreset() {
81
+ return this.parentState._sizePreset ?? this._sizePreset;
82
+ }
80
83
  get imagePlacement() {
81
84
  return this.sizePreset.imagePlacement;
82
85
  }
@@ -1 +1 @@
1
- {"version":3,"names":["_mobx","require","_RectState","_ResponsiveColumnsState","GridBaseState","_dnd","_this$collectionDragA","collectionDragAndDropState","dnd","constructor","params","_params$range","_params$range2","_defineProperty2","default","undefined","origin","toolbar","toolbarBIReporter","onAddItemClick","items","onAddItemActionComplete","container","collection","parentState","layoutType","_containerRectState","RectState","_draggable","draggable","_responsiveColumnsState","ResponsiveColumnsState","gridState","minItemWidth","rectState","sizePreset","_localLimit","range","length","_localStart","start","makeObservable","trailingItemsCount","observable","ref","forceRenderIndexes","preset","computed","itemsToRenderCount","itemsToRender","rowCount","isInteracting","calcGridProps","columnsCount","_sizeProps","itemKeyRecyclerOverride","itemsContentWidth","containerPaddingTop","gap","imagePlacement","contentPadding","aspectRatio","footerHeights","_this$_dnd","isDisabled","window","result","keyedItems","itemsCount","Math","min","fetchedLastPage","floor","reportBi","columnCount","containerRect","ceil","_this$_dnd2","_this$_dnd3","isActive","isDropping","Array","fill","getItemRenderTypeAt","index","indexInCollection","errorMonitor","responsiveColumnCount","width","widthWithLastColumnGap","widthWithoutGaps","columnWidth","cardFooterSize","cardFooterHeight","cardTopImageHeight","rowHeight","columnWidthIncludingGap","rowHeightIncludingGap","rowHeightFixed","itemsContentHeight","overscanCount","round","getCollectionSnapshot","_keyedItems$index","key","dragAndDropCategories","listAttributes","_this$_dnd4","nullAnnouncements","role","_subscribe","_subGrids","push","i","indexOf","splice","init","exports"],"sources":["../../../src/state/GridBaseState.ts"],"sourcesContent":["import {\n WixPatternsContainer,\n CollectionState,\n FiltersMap,\n} from '@wix/bex-core';\nimport { computed, makeObservable, observable } from 'mobx';\nimport {\n ToolbarCollectionState,\n ToolbarCollectionStateParamsInitParams,\n} from './ToolbarCollectionState';\nimport { CollectionDragAndDropState } from '../components/DragAndDrop';\nimport { RectState } from './RectState';\nimport { GridSizePreset } from './gridSizePresets';\nimport { ResponsiveColumnsState } from './ResponsiveColumnsState';\n\nexport type LayoutType = 'grid' | 'list';\n\nexport interface GridBaseStateParams<T, F extends FiltersMap> {\n readonly collection: CollectionState<T, F>;\n readonly container: WixPatternsContainer;\n readonly toolbar: ToolbarCollectionState<any, Partial<F>>;\n readonly sizePreset: GridSizePreset;\n readonly range?: { start: number; length: number };\n readonly layoutType: LayoutType | undefined;\n readonly parentState: {\n _subGrids?: GridBaseState<T, F>[];\n };\n readonly draggable?: 'none' | 'draggable';\n}\n\nexport interface GridBaseStateInitParams\n extends ToolbarCollectionStateParamsInitParams {}\n\nexport class GridBaseState<T, F extends FiltersMap> {\n readonly toolbar;\n readonly container;\n readonly collection;\n readonly _containerRectState;\n readonly _responsiveColumnsState;\n readonly parentState;\n sizePreset;\n layoutType;\n\n trailingItemsCount = 0;\n minItemWidth = 196;\n smallCardWidthThreshold = 200;\n preset: 'full' | 'title' | 'empty' = 'title';\n _draggable: 'none' | 'draggable' = 'none';\n _localLimit: number | null | undefined;\n _localStart: number;\n forceRenderIndexes: number[] | undefined = undefined;\n\n collectionDragAndDropState: CollectionDragAndDropState<T, F> | null = null;\n\n get _dnd() {\n return this.collectionDragAndDropState?.dnd;\n }\n\n constructor(params: GridBaseStateParams<T, F>) {\n this.container = params.container;\n this.collection = params.collection;\n this.parentState = params.parentState;\n this.layoutType = params.layoutType ?? 'grid';\n this._containerRectState = new RectState({\n container: this.container,\n });\n this._draggable = params.draggable ?? 'none';\n this.toolbar = params.toolbar as ToolbarCollectionState<\n unknown,\n Partial<F>\n >;\n this._responsiveColumnsState = new ResponsiveColumnsState({\n gridState: this,\n minItemWidth: this.minItemWidth,\n rectState: this._containerRectState,\n });\n this.sizePreset = params.sizePreset;\n this._localLimit = params.range?.length;\n this._localStart = params.range?.start ?? 0;\n\n makeObservable(this, {\n trailingItemsCount: observable.ref,\n forceRenderIndexes: observable.ref,\n preset: observable.ref,\n _draggable: observable.ref,\n draggable: computed,\n itemsToRenderCount: computed,\n itemsToRender: computed,\n rowCount: computed,\n isInteracting: computed,\n calcGridProps: computed,\n columnsCount: computed,\n _sizeProps: computed,\n itemKeyRecyclerOverride: computed,\n _localLimit: observable.ref,\n _localStart: observable.ref,\n itemsContentWidth: computed,\n containerPaddingTop: computed,\n gap: computed,\n sizePreset: observable.ref,\n layoutType: observable.ref,\n });\n }\n\n get imagePlacement() {\n return this.sizePreset.imagePlacement;\n }\n\n get gap() {\n const { layoutType } = this;\n if (layoutType === 'list') {\n return 12;\n }\n\n return 24;\n }\n\n get containerPaddingTop() {\n const { layoutType } = this;\n if (layoutType === 'list') {\n return 0;\n }\n\n return this.toolbar.contentPadding;\n }\n\n get aspectRatio() {\n return this.sizePreset.aspectRatio;\n }\n\n get footerHeights() {\n return this.sizePreset.footerHeights;\n }\n\n get itemsContentWidth() {\n return this._responsiveColumnsState.itemsContentWidth;\n }\n\n get draggable() {\n if (this._dnd?.isDisabled) {\n return 'none' as const;\n }\n return this._draggable;\n }\n\n get window() {\n return this.container.window;\n }\n\n get itemsToRenderCount() {\n const { collection, trailingItemsCount, _localLimit, _localStart } = this;\n const {\n result: { keyedItems },\n } = collection;\n\n const itemsCount =\n _localLimit != null\n ? Math.min(_localLimit, keyedItems.length)\n : keyedItems.length;\n\n return collection.fetchedLastPage ||\n (_localLimit != null && _localStart + _localLimit < keyedItems.length)\n ? itemsCount + trailingItemsCount\n : itemsCount - Math.floor(itemsCount % this.columnsCount);\n }\n\n get reportBi() {\n return this.toolbar.reportBi;\n }\n\n get columnsCount() {\n return this.calcGridProps.columnCount;\n }\n\n get containerRect() {\n return this.toolbar.containerRect;\n }\n\n get rowCount() {\n const { itemsToRenderCount, columnsCount } = this;\n\n return Math.ceil(itemsToRenderCount / columnsCount);\n }\n\n get isInteracting() {\n return this._dnd?.isActive || this._dnd?.isDropping;\n }\n\n get itemsToRender(): null[] {\n const { itemsToRenderCount } = this;\n return new Array(itemsToRenderCount).fill(null);\n }\n\n getItemRenderTypeAt(index: number) {\n const { collection, itemsToRenderCount, _localStart } = this;\n const {\n result: { keyedItems },\n } = collection;\n\n if (index >= itemsToRenderCount) {\n return null;\n }\n\n const indexInCollection = index + _localStart;\n\n if (indexInCollection >= keyedItems.length) {\n return 'trailing';\n }\n\n return keyedItems[indexInCollection];\n }\n\n get errorMonitor() {\n return this.container.errorMonitor;\n }\n\n get _sizeProps() {\n const {\n aspectRatio,\n preset,\n draggable,\n _responsiveColumnsState: {\n gap,\n columnCount: responsiveColumnCount,\n itemsContentWidth: width,\n widthWithLastColumnGap,\n },\n layoutType,\n } = this;\n\n const columnCount = layoutType === 'list' ? 1 : responsiveColumnCount;\n\n const widthWithoutGaps = width - (columnCount - 1) * gap;\n const columnWidth = widthWithoutGaps / columnCount;\n\n const cardFooterSize = 'small' as const;\n\n const cardFooterHeight =\n this.footerHeights[preset][draggable][cardFooterSize];\n const cardTopImageHeight = columnWidth * aspectRatio;\n const rowHeight = cardTopImageHeight + cardFooterHeight + 1;\n\n const columnWidthIncludingGap = widthWithLastColumnGap / columnCount;\n const rowHeightIncludingGap = rowHeight + gap;\n\n return {\n columnCount,\n columnWidth: () => columnWidth,\n columnWidthIncludingGap: () => columnWidthIncludingGap,\n rowHeight: () => rowHeight,\n rowHeightFixed: rowHeight,\n cardTopImageHeight,\n rowHeightIncludingGap: () => rowHeightIncludingGap,\n cardFooterHeight,\n cardFooterSize,\n };\n }\n\n get calcGridProps() {\n const {\n toolbar: { itemsContentHeight },\n _sizeProps: { rowHeightFixed },\n } = this;\n\n const overscanCount = Math.round(\n (itemsContentHeight / rowHeightFixed) * 1.5,\n );\n\n return {\n ...this._sizeProps,\n overscanCount,\n };\n }\n\n get getCollectionSnapshot() {\n return this.toolbar.getCollectionSnapshot;\n }\n\n onAddItemClick = (origin?: string) => {\n this.toolbar.toolbarBIReporter.onAddItemClick(origin);\n };\n\n onAddItemActionComplete = async (items: T[]) => {\n return this.toolbar.onAddItemActionComplete(items);\n };\n\n get itemKeyRecyclerOverride() {\n const { collection } = this;\n const {\n result: { keyedItems },\n } = collection;\n return (index: number) => {\n return keyedItems[index]?.key ?? index;\n };\n }\n\n get dragAndDropCategories() {\n return this.toolbar.dragAndDropCategories;\n }\n\n get listAttributes() {\n return {\n ...this._dnd?.nullAnnouncements.listAttributes?.(),\n role: 'list',\n };\n }\n\n _subscribe() {\n const {\n parentState: { _subGrids },\n } = this;\n\n if (!_subGrids) {\n return;\n }\n\n _subGrids.push(this);\n\n return () => {\n const i = _subGrids.indexOf(this);\n i !== -1 && _subGrids.splice(i, 1);\n };\n }\n\n init() {\n return this._subscribe();\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_mobx","require","_RectState","_ResponsiveColumnsState","GridBaseState","_dnd","_this$collectionDragA","collectionDragAndDropState","dnd","constructor","params","_params$range","_params$range2","_defineProperty2","default","undefined","origin","toolbar","toolbarBIReporter","onAddItemClick","items","onAddItemActionComplete","container","collection","parentState","layoutType","_containerRectState","RectState","_draggable","draggable","_responsiveColumnsState","ResponsiveColumnsState","gridState","minItemWidth","rectState","_sizePreset","sizePreset","_localLimit","range","length","_localStart","start","makeObservable","trailingItemsCount","observable","ref","forceRenderIndexes","preset","computed","itemsToRenderCount","itemsToRender","rowCount","isInteracting","calcGridProps","columnsCount","_sizeProps","itemKeyRecyclerOverride","itemsContentWidth","containerPaddingTop","gap","imagePlacement","contentPadding","aspectRatio","footerHeights","_this$_dnd","isDisabled","window","result","keyedItems","itemsCount","Math","min","fetchedLastPage","floor","reportBi","columnCount","containerRect","ceil","_this$_dnd2","_this$_dnd3","isActive","isDropping","Array","fill","getItemRenderTypeAt","index","indexInCollection","errorMonitor","responsiveColumnCount","width","widthWithLastColumnGap","widthWithoutGaps","columnWidth","cardFooterSize","cardFooterHeight","cardTopImageHeight","rowHeight","columnWidthIncludingGap","rowHeightIncludingGap","rowHeightFixed","itemsContentHeight","overscanCount","round","getCollectionSnapshot","_keyedItems$index","key","dragAndDropCategories","listAttributes","_this$_dnd4","nullAnnouncements","role","_subscribe","_subGrids","push","i","indexOf","splice","init","exports"],"sources":["../../../src/state/GridBaseState.ts"],"sourcesContent":["import {\n WixPatternsContainer,\n CollectionState,\n FiltersMap,\n} from '@wix/bex-core';\nimport { computed, makeObservable, observable } from 'mobx';\nimport {\n ToolbarCollectionState,\n ToolbarCollectionStateParamsInitParams,\n} from './ToolbarCollectionState';\nimport { CollectionDragAndDropState } from '../components/DragAndDrop';\nimport { RectState } from './RectState';\nimport { GridSizePreset } from './gridSizePresets';\nimport { ResponsiveColumnsState } from './ResponsiveColumnsState';\nimport { GridParentState } from './GridParentState';\n\nexport type LayoutType = 'grid' | 'list';\n\nexport interface GridBaseStateParams<T, F extends FiltersMap> {\n readonly collection: CollectionState<T, F>;\n readonly container: WixPatternsContainer;\n readonly toolbar: ToolbarCollectionState<any, Partial<F>>;\n readonly sizePreset: GridSizePreset;\n readonly range?: { start: number; length: number };\n readonly layoutType: LayoutType | undefined;\n readonly parentState: GridParentState<T, F>;\n readonly draggable?: 'none' | 'draggable';\n}\n\nexport interface GridBaseStateInitParams\n extends ToolbarCollectionStateParamsInitParams {}\n\nexport class GridBaseState<T, F extends FiltersMap> {\n readonly toolbar;\n readonly container;\n readonly collection;\n readonly _containerRectState;\n readonly _responsiveColumnsState;\n readonly parentState;\n _sizePreset;\n layoutType;\n\n trailingItemsCount = 0;\n minItemWidth = 196;\n smallCardWidthThreshold = 200;\n preset: 'full' | 'title' | 'empty' = 'title';\n _draggable: 'none' | 'draggable' = 'none';\n _localLimit: number | null | undefined;\n _localStart: number;\n forceRenderIndexes: number[] | undefined = undefined;\n\n collectionDragAndDropState: CollectionDragAndDropState<T, F> | null = null;\n\n get _dnd() {\n return this.collectionDragAndDropState?.dnd;\n }\n\n constructor(params: GridBaseStateParams<T, F>) {\n this.container = params.container;\n this.collection = params.collection;\n this.parentState = params.parentState;\n this.layoutType = params.layoutType ?? 'grid';\n this._containerRectState = new RectState({\n container: this.container,\n });\n this._draggable = params.draggable ?? 'none';\n this.toolbar = params.toolbar as ToolbarCollectionState<\n unknown,\n Partial<F>\n >;\n this._responsiveColumnsState = new ResponsiveColumnsState({\n gridState: this,\n minItemWidth: this.minItemWidth,\n rectState: this._containerRectState,\n });\n this._sizePreset = params.sizePreset;\n this._localLimit = params.range?.length;\n this._localStart = params.range?.start ?? 0;\n\n makeObservable(this, {\n trailingItemsCount: observable.ref,\n forceRenderIndexes: observable.ref,\n preset: observable.ref,\n _draggable: observable.ref,\n draggable: computed,\n itemsToRenderCount: computed,\n itemsToRender: computed,\n rowCount: computed,\n isInteracting: computed,\n calcGridProps: computed,\n columnsCount: computed,\n _sizeProps: computed,\n itemKeyRecyclerOverride: computed,\n _localLimit: observable.ref,\n _localStart: observable.ref,\n itemsContentWidth: computed,\n containerPaddingTop: computed,\n gap: computed,\n _sizePreset: observable.ref,\n layoutType: observable.ref,\n });\n }\n\n get sizePreset() {\n return this.parentState._sizePreset ?? this._sizePreset;\n }\n\n get imagePlacement() {\n return this.sizePreset.imagePlacement;\n }\n\n get gap() {\n const { layoutType } = this;\n if (layoutType === 'list') {\n return 12;\n }\n\n return 24;\n }\n\n get containerPaddingTop() {\n const { layoutType } = this;\n if (layoutType === 'list') {\n return 0;\n }\n\n return this.toolbar.contentPadding;\n }\n\n get aspectRatio() {\n return this.sizePreset.aspectRatio;\n }\n\n get footerHeights() {\n return this.sizePreset.footerHeights;\n }\n\n get itemsContentWidth() {\n return this._responsiveColumnsState.itemsContentWidth;\n }\n\n get draggable() {\n if (this._dnd?.isDisabled) {\n return 'none' as const;\n }\n return this._draggable;\n }\n\n get window() {\n return this.container.window;\n }\n\n get itemsToRenderCount() {\n const { collection, trailingItemsCount, _localLimit, _localStart } = this;\n const {\n result: { keyedItems },\n } = collection;\n\n const itemsCount =\n _localLimit != null\n ? Math.min(_localLimit, keyedItems.length)\n : keyedItems.length;\n\n return collection.fetchedLastPage ||\n (_localLimit != null && _localStart + _localLimit < keyedItems.length)\n ? itemsCount + trailingItemsCount\n : itemsCount - Math.floor(itemsCount % this.columnsCount);\n }\n\n get reportBi() {\n return this.toolbar.reportBi;\n }\n\n get columnsCount() {\n return this.calcGridProps.columnCount;\n }\n\n get containerRect() {\n return this.toolbar.containerRect;\n }\n\n get rowCount() {\n const { itemsToRenderCount, columnsCount } = this;\n\n return Math.ceil(itemsToRenderCount / columnsCount);\n }\n\n get isInteracting() {\n return this._dnd?.isActive || this._dnd?.isDropping;\n }\n\n get itemsToRender(): null[] {\n const { itemsToRenderCount } = this;\n return new Array(itemsToRenderCount).fill(null);\n }\n\n getItemRenderTypeAt(index: number) {\n const { collection, itemsToRenderCount, _localStart } = this;\n const {\n result: { keyedItems },\n } = collection;\n\n if (index >= itemsToRenderCount) {\n return null;\n }\n\n const indexInCollection = index + _localStart;\n\n if (indexInCollection >= keyedItems.length) {\n return 'trailing';\n }\n\n return keyedItems[indexInCollection];\n }\n\n get errorMonitor() {\n return this.container.errorMonitor;\n }\n\n get _sizeProps() {\n const {\n aspectRatio,\n preset,\n draggable,\n _responsiveColumnsState: {\n gap,\n columnCount: responsiveColumnCount,\n itemsContentWidth: width,\n widthWithLastColumnGap,\n },\n layoutType,\n } = this;\n\n const columnCount = layoutType === 'list' ? 1 : responsiveColumnCount;\n\n const widthWithoutGaps = width - (columnCount - 1) * gap;\n const columnWidth = widthWithoutGaps / columnCount;\n\n const cardFooterSize = 'small' as const;\n\n const cardFooterHeight =\n this.footerHeights[preset][draggable][cardFooterSize];\n const cardTopImageHeight = columnWidth * aspectRatio;\n const rowHeight = cardTopImageHeight + cardFooterHeight + 1;\n\n const columnWidthIncludingGap = widthWithLastColumnGap / columnCount;\n const rowHeightIncludingGap = rowHeight + gap;\n\n return {\n columnCount,\n columnWidth: () => columnWidth,\n columnWidthIncludingGap: () => columnWidthIncludingGap,\n rowHeight: () => rowHeight,\n rowHeightFixed: rowHeight,\n cardTopImageHeight,\n rowHeightIncludingGap: () => rowHeightIncludingGap,\n cardFooterHeight,\n cardFooterSize,\n };\n }\n\n get calcGridProps() {\n const {\n toolbar: { itemsContentHeight },\n _sizeProps: { rowHeightFixed },\n } = this;\n\n const overscanCount = Math.round(\n (itemsContentHeight / rowHeightFixed) * 1.5,\n );\n\n return {\n ...this._sizeProps,\n overscanCount,\n };\n }\n\n get getCollectionSnapshot() {\n return this.toolbar.getCollectionSnapshot;\n }\n\n onAddItemClick = (origin?: string) => {\n this.toolbar.toolbarBIReporter.onAddItemClick(origin);\n };\n\n onAddItemActionComplete = async (items: T[]) => {\n return this.toolbar.onAddItemActionComplete(items);\n };\n\n get itemKeyRecyclerOverride() {\n const { collection } = this;\n const {\n result: { keyedItems },\n } = collection;\n return (index: number) => {\n return keyedItems[index]?.key ?? index;\n };\n }\n\n get dragAndDropCategories() {\n return this.toolbar.dragAndDropCategories;\n }\n\n get listAttributes() {\n return {\n ...this._dnd?.nullAnnouncements.listAttributes?.(),\n role: 'list',\n };\n }\n\n _subscribe() {\n const {\n parentState: { _subGrids },\n } = this;\n\n if (!_subGrids) {\n return;\n }\n\n _subGrids.push(this);\n\n return () => {\n const i = _subGrids.indexOf(this);\n i !== -1 && _subGrids.splice(i, 1);\n };\n }\n\n init() {\n return this._subscribe();\n }\n}\n"],"mappings":";;;;;;AAKA,IAAAA,KAAA,GAAAC,OAAA;AAMA,IAAAC,UAAA,GAAAD,OAAA;AAEA,IAAAE,uBAAA,GAAAF,OAAA;AAmBO,MAAMG,aAAa,CAA0B;EAqBlD,IAAIC,IAAIA,CAAA,EAAG;IAAA,IAAAC,qBAAA;IACT,QAAAA,qBAAA,GAAO,IAAI,CAACC,0BAA0B,qBAA/BD,qBAAA,CAAiCE,GAAG;EAC7C;EAEAC,WAAWA,CAACC,MAAiC,EAAE;IAAA,IAAAC,aAAA,EAAAC,cAAA;IAAA,IAAAC,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA,8BAf1B,CAAC;IAAA,IAAAD,gBAAA,CAAAC,OAAA,wBACP,GAAG;IAAA,IAAAD,gBAAA,CAAAC,OAAA,mCACQ,GAAG;IAAA,IAAAD,gBAAA,CAAAC,OAAA,kBACQ,OAAO;IAAA,IAAAD,gBAAA,CAAAC,OAAA,sBACT,MAAM;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA,8BAGEC,SAAS;IAAA,IAAAF,gBAAA,CAAAC,OAAA,sCAEkB,IAAI;IAAA,IAAAD,gBAAA,CAAAC,OAAA,0BAsOxDE,MAAe,IAAK;MACpC,IAAI,CAACC,OAAO,CAACC,iBAAiB,CAACC,cAAc,CAACH,MAAM,CAAC;IACvD,CAAC;IAAA,IAAAH,gBAAA,CAAAC,OAAA,mCAEyB,MAAOM,KAAU,IAAK;MAC9C,OAAO,IAAI,CAACH,OAAO,CAACI,uBAAuB,CAACD,KAAK,CAAC;IACpD,CAAC;IArOC,IAAI,CAACE,SAAS,GAAGZ,MAAM,CAACY,SAAS;IACjC,IAAI,CAACC,UAAU,GAAGb,MAAM,CAACa,UAAU;IACnC,IAAI,CAACC,WAAW,GAAGd,MAAM,CAACc,WAAW;IACrC,IAAI,CAACC,UAAU,GAAGf,MAAM,CAACe,UAAU,IAAI,MAAM;IAC7C,IAAI,CAACC,mBAAmB,GAAG,IAAIC,oBAAS,CAAC;MACvCL,SAAS,EAAE,IAAI,CAACA;IAClB,CAAC,CAAC;IACF,IAAI,CAACM,UAAU,GAAGlB,MAAM,CAACmB,SAAS,IAAI,MAAM;IAC5C,IAAI,CAACZ,OAAO,GAAGP,MAAM,CAACO,OAGrB;IACD,IAAI,CAACa,uBAAuB,GAAG,IAAIC,8CAAsB,CAAC;MACxDC,SAAS,EAAE,IAAI;MACfC,YAAY,EAAE,IAAI,CAACA,YAAY;MAC/BC,SAAS,EAAE,IAAI,CAACR;IAClB,CAAC,CAAC;IACF,IAAI,CAACS,WAAW,GAAGzB,MAAM,CAAC0B,UAAU;IACpC,IAAI,CAACC,WAAW,IAAA1B,aAAA,GAAGD,MAAM,CAAC4B,KAAK,qBAAZ3B,aAAA,CAAc4B,MAAM;IACvC,IAAI,CAACC,WAAW,GAAG,EAAA5B,cAAA,GAAAF,MAAM,CAAC4B,KAAK,qBAAZ1B,cAAA,CAAc6B,KAAK,KAAI,CAAC;IAE3C,IAAAC,oBAAc,EAAC,IAAI,EAAE;MACnBC,kBAAkB,EAAEC,gBAAU,CAACC,GAAG;MAClCC,kBAAkB,EAAEF,gBAAU,CAACC,GAAG;MAClCE,MAAM,EAAEH,gBAAU,CAACC,GAAG;MACtBjB,UAAU,EAAEgB,gBAAU,CAACC,GAAG;MAC1BhB,SAAS,EAAEmB,cAAQ;MACnBC,kBAAkB,EAAED,cAAQ;MAC5BE,aAAa,EAAEF,cAAQ;MACvBG,QAAQ,EAAEH,cAAQ;MAClBI,aAAa,EAAEJ,cAAQ;MACvBK,aAAa,EAAEL,cAAQ;MACvBM,YAAY,EAAEN,cAAQ;MACtBO,UAAU,EAAEP,cAAQ;MACpBQ,uBAAuB,EAAER,cAAQ;MACjCX,WAAW,EAAEO,gBAAU,CAACC,GAAG;MAC3BL,WAAW,EAAEI,gBAAU,CAACC,GAAG;MAC3BY,iBAAiB,EAAET,cAAQ;MAC3BU,mBAAmB,EAAEV,cAAQ;MAC7BW,GAAG,EAAEX,cAAQ;MACbb,WAAW,EAAES,gBAAU,CAACC,GAAG;MAC3BpB,UAAU,EAAEmB,gBAAU,CAACC;IACzB,CAAC,CAAC;EACJ;EAEA,IAAIT,UAAUA,CAAA,EAAG;IACf,OAAO,IAAI,CAACZ,WAAW,CAACW,WAAW,IAAI,IAAI,CAACA,WAAW;EACzD;EAEA,IAAIyB,cAAcA,CAAA,EAAG;IACnB,OAAO,IAAI,CAACxB,UAAU,CAACwB,cAAc;EACvC;EAEA,IAAID,GAAGA,CAAA,EAAG;IACR,MAAM;MAAElC;IAAW,CAAC,GAAG,IAAI;IAC3B,IAAIA,UAAU,KAAK,MAAM,EAAE;MACzB,OAAO,EAAE;IACX;IAEA,OAAO,EAAE;EACX;EAEA,IAAIiC,mBAAmBA,CAAA,EAAG;IACxB,MAAM;MAAEjC;IAAW,CAAC,GAAG,IAAI;IAC3B,IAAIA,UAAU,KAAK,MAAM,EAAE;MACzB,OAAO,CAAC;IACV;IAEA,OAAO,IAAI,CAACR,OAAO,CAAC4C,cAAc;EACpC;EAEA,IAAIC,WAAWA,CAAA,EAAG;IAChB,OAAO,IAAI,CAAC1B,UAAU,CAAC0B,WAAW;EACpC;EAEA,IAAIC,aAAaA,CAAA,EAAG;IAClB,OAAO,IAAI,CAAC3B,UAAU,CAAC2B,aAAa;EACtC;EAEA,IAAIN,iBAAiBA,CAAA,EAAG;IACtB,OAAO,IAAI,CAAC3B,uBAAuB,CAAC2B,iBAAiB;EACvD;EAEA,IAAI5B,SAASA,CAAA,EAAG;IAAA,IAAAmC,UAAA;IACd,KAAAA,UAAA,GAAI,IAAI,CAAC3D,IAAI,aAAT2D,UAAA,CAAWC,UAAU,EAAE;MACzB,OAAO,MAAM;IACf;IACA,OAAO,IAAI,CAACrC,UAAU;EACxB;EAEA,IAAIsC,MAAMA,CAAA,EAAG;IACX,OAAO,IAAI,CAAC5C,SAAS,CAAC4C,MAAM;EAC9B;EAEA,IAAIjB,kBAAkBA,CAAA,EAAG;IACvB,MAAM;MAAE1B,UAAU;MAAEoB,kBAAkB;MAAEN,WAAW;MAAEG;IAAY,CAAC,GAAG,IAAI;IACzE,MAAM;MACJ2B,MAAM,EAAE;QAAEC;MAAW;IACvB,CAAC,GAAG7C,UAAU;IAEd,MAAM8C,UAAU,GACdhC,WAAW,IAAI,IAAI,GACfiC,IAAI,CAACC,GAAG,CAAClC,WAAW,EAAE+B,UAAU,CAAC7B,MAAM,CAAC,GACxC6B,UAAU,CAAC7B,MAAM;IAEvB,OAAOhB,UAAU,CAACiD,eAAe,IAC9BnC,WAAW,IAAI,IAAI,IAAIG,WAAW,GAAGH,WAAW,GAAG+B,UAAU,CAAC7B,MAAO,GACpE8B,UAAU,GAAG1B,kBAAkB,GAC/B0B,UAAU,GAAGC,IAAI,CAACG,KAAK,CAACJ,UAAU,GAAG,IAAI,CAACf,YAAY,CAAC;EAC7D;EAEA,IAAIoB,QAAQA,CAAA,EAAG;IACb,OAAO,IAAI,CAACzD,OAAO,CAACyD,QAAQ;EAC9B;EAEA,IAAIpB,YAAYA,CAAA,EAAG;IACjB,OAAO,IAAI,CAACD,aAAa,CAACsB,WAAW;EACvC;EAEA,IAAIC,aAAaA,CAAA,EAAG;IAClB,OAAO,IAAI,CAAC3D,OAAO,CAAC2D,aAAa;EACnC;EAEA,IAAIzB,QAAQA,CAAA,EAAG;IACb,MAAM;MAAEF,kBAAkB;MAAEK;IAAa,CAAC,GAAG,IAAI;IAEjD,OAAOgB,IAAI,CAACO,IAAI,CAAC5B,kBAAkB,GAAGK,YAAY,CAAC;EACrD;EAEA,IAAIF,aAAaA,CAAA,EAAG;IAAA,IAAA0B,WAAA,EAAAC,WAAA;IAClB,OAAO,EAAAD,WAAA,OAAI,CAACzE,IAAI,qBAATyE,WAAA,CAAWE,QAAQ,OAAAD,WAAA,GAAI,IAAI,CAAC1E,IAAI,qBAAT0E,WAAA,CAAWE,UAAU;EACrD;EAEA,IAAI/B,aAAaA,CAAA,EAAW;IAC1B,MAAM;MAAED;IAAmB,CAAC,GAAG,IAAI;IACnC,OAAO,IAAIiC,KAAK,CAACjC,kBAAkB,CAAC,CAACkC,IAAI,CAAC,IAAI,CAAC;EACjD;EAEAC,mBAAmBA,CAACC,KAAa,EAAE;IACjC,MAAM;MAAE9D,UAAU;MAAE0B,kBAAkB;MAAET;IAAY,CAAC,GAAG,IAAI;IAC5D,MAAM;MACJ2B,MAAM,EAAE;QAAEC;MAAW;IACvB,CAAC,GAAG7C,UAAU;IAEd,IAAI8D,KAAK,IAAIpC,kBAAkB,EAAE;MAC/B,OAAO,IAAI;IACb;IAEA,MAAMqC,iBAAiB,GAAGD,KAAK,GAAG7C,WAAW;IAE7C,IAAI8C,iBAAiB,IAAIlB,UAAU,CAAC7B,MAAM,EAAE;MAC1C,OAAO,UAAU;IACnB;IAEA,OAAO6B,UAAU,CAACkB,iBAAiB,CAAC;EACtC;EAEA,IAAIC,YAAYA,CAAA,EAAG;IACjB,OAAO,IAAI,CAACjE,SAAS,CAACiE,YAAY;EACpC;EAEA,IAAIhC,UAAUA,CAAA,EAAG;IACf,MAAM;MACJO,WAAW;MACXf,MAAM;MACNlB,SAAS;MACTC,uBAAuB,EAAE;QACvB6B,GAAG;QACHgB,WAAW,EAAEa,qBAAqB;QAClC/B,iBAAiB,EAAEgC,KAAK;QACxBC;MACF,CAAC;MACDjE;IACF,CAAC,GAAG,IAAI;IAER,MAAMkD,WAAW,GAAGlD,UAAU,KAAK,MAAM,GAAG,CAAC,GAAG+D,qBAAqB;IAErE,MAAMG,gBAAgB,GAAGF,KAAK,GAAG,CAACd,WAAW,GAAG,CAAC,IAAIhB,GAAG;IACxD,MAAMiC,WAAW,GAAGD,gBAAgB,GAAGhB,WAAW;IAElD,MAAMkB,cAAc,GAAG,OAAgB;IAEvC,MAAMC,gBAAgB,GACpB,IAAI,CAAC/B,aAAa,CAAChB,MAAM,CAAC,CAAClB,SAAS,CAAC,CAACgE,cAAc,CAAC;IACvD,MAAME,kBAAkB,GAAGH,WAAW,GAAG9B,WAAW;IACpD,MAAMkC,SAAS,GAAGD,kBAAkB,GAAGD,gBAAgB,GAAG,CAAC;IAE3D,MAAMG,uBAAuB,GAAGP,sBAAsB,GAAGf,WAAW;IACpE,MAAMuB,qBAAqB,GAAGF,SAAS,GAAGrC,GAAG;IAE7C,OAAO;MACLgB,WAAW;MACXiB,WAAW,EAAEA,CAAA,KAAMA,WAAW;MAC9BK,uBAAuB,EAAEA,CAAA,KAAMA,uBAAuB;MACtDD,SAAS,EAAEA,CAAA,KAAMA,SAAS;MAC1BG,cAAc,EAAEH,SAAS;MACzBD,kBAAkB;MAClBG,qBAAqB,EAAEA,CAAA,KAAMA,qBAAqB;MAClDJ,gBAAgB;MAChBD;IACF,CAAC;EACH;EAEA,IAAIxC,aAAaA,CAAA,EAAG;IAClB,MAAM;MACJpC,OAAO,EAAE;QAAEmF;MAAmB,CAAC;MAC/B7C,UAAU,EAAE;QAAE4C;MAAe;IAC/B,CAAC,GAAG,IAAI;IAER,MAAME,aAAa,GAAG/B,IAAI,CAACgC,KAAK,CAC7BF,kBAAkB,GAAGD,cAAc,GAAI,GAC1C,CAAC;IAED,OAAO;MACL,GAAG,IAAI,CAAC5C,UAAU;MAClB8C;IACF,CAAC;EACH;EAEA,IAAIE,qBAAqBA,CAAA,EAAG;IAC1B,OAAO,IAAI,CAACtF,OAAO,CAACsF,qBAAqB;EAC3C;EAUA,IAAI/C,uBAAuBA,CAAA,EAAG;IAC5B,MAAM;MAAEjC;IAAW,CAAC,GAAG,IAAI;IAC3B,MAAM;MACJ4C,MAAM,EAAE;QAAEC;MAAW;IACvB,CAAC,GAAG7C,UAAU;IACd,OAAQ8D,KAAa,IAAK;MAAA,IAAAmB,iBAAA;MACxB,OAAO,EAAAA,iBAAA,GAAApC,UAAU,CAACiB,KAAK,CAAC,qBAAjBmB,iBAAA,CAAmBC,GAAG,KAAIpB,KAAK;IACxC,CAAC;EACH;EAEA,IAAIqB,qBAAqBA,CAAA,EAAG;IAC1B,OAAO,IAAI,CAACzF,OAAO,CAACyF,qBAAqB;EAC3C;EAEA,IAAIC,cAAcA,CAAA,EAAG;IAAA,IAAAC,WAAA;IACnB,OAAO;MACL,KAAAA,WAAA,GAAG,IAAI,CAACvG,IAAI,aAATuG,WAAA,CAAWC,iBAAiB,CAACF,cAAc,oBAA3CC,WAAA,CAAWC,iBAAiB,CAACF,cAAc,CAAG,CAAC;MAClDG,IAAI,EAAE;IACR,CAAC;EACH;EAEAC,UAAUA,CAAA,EAAG;IACX,MAAM;MACJvF,WAAW,EAAE;QAAEwF;MAAU;IAC3B,CAAC,GAAG,IAAI;IAER,IAAI,CAACA,SAAS,EAAE;MACd;IACF;IAEAA,SAAS,CAACC,IAAI,CAAC,IAAI,CAAC;IAEpB,OAAO,MAAM;MACX,MAAMC,CAAC,GAAGF,SAAS,CAACG,OAAO,CAAC,IAAI,CAAC;MACjCD,CAAC,KAAK,CAAC,CAAC,IAAIF,SAAS,CAACI,MAAM,CAACF,CAAC,EAAE,CAAC,CAAC;IACpC,CAAC;EACH;EAEAG,IAAIA,CAAA,EAAG;IACL,OAAO,IAAI,CAACN,UAAU,CAAC,CAAC;EAC1B;AACF;AAACO,OAAA,CAAAlH,aAAA,GAAAA,aAAA","ignoreList":[]}
@@ -19,6 +19,7 @@ class GridFoldersState {
19
19
  (0, _defineProperty2.default)(this, "collections", void 0);
20
20
  (0, _defineProperty2.default)(this, "bi", void 0);
21
21
  (0, _defineProperty2.default)(this, "_subGrids", []);
22
+ (0, _defineProperty2.default)(this, "_sizePreset", undefined);
22
23
  (0, _defineProperty2.default)(this, "showAllFolders", false);
23
24
  (0, _defineProperty2.default)(this, "toggleShowAllFolders", (0, _mobx.action)(() => {
24
25
  this.showAllFolders = !this.showAllFolders;
@@ -1 +1 @@
1
- {"version":3,"names":["_GridBaseState","require","_mobx","_ToolbarCollectionState","_FoldersAndItemsCollectionsState","_gridSizePresets","_GridFoldersBIReporter","GridFoldersState","constructor","params","_defineProperty2","default","action","showAllFolders","bi","onToggleShowAllButtonClick","toolbar","retryErrorState","container","ToolbarCollectionState","collection","items","componentType","collections","FoldersAndItemsCollectionsState","GridBaseState","sizePreset","topGridSizePreset","parentState","layoutType","folders","sideGridSizePreset","GridFoldersBIReporter","state","makeObservable","observable","ref","foldersLocalLimit","computed","effectiveFoldersLocalLimit","showToggleShowAllLessButton","showItemsSection","showItemsSectionHeader","showFoldersSection","showFoldersSectionHeader","showLoadingSection","columnsCount","result","size","isEmptyAndNotFetching","hasFoldersOnlyActiveFilters","fetchedLastPage","initTask","showErrorState","multi","errorStatus","showLoadingState","showEmptyState","hasAvailableItems","resultOriginQuerySearch","hasNonPersistentActiveFilters","hasItemsOnlyActiveFilters","isLoadingToolbarAndCollection","showInitialLoader","status","isLoading","isIdle","showRefreshLoader","init","disposers","reaction","_localLimit","fireImmediately","forEach","d","exports"],"sources":["../../../src/state/GridFoldersState.ts"],"sourcesContent":["import {\n WixPatternsContainer,\n CollectionState,\n FiltersMap,\n} from '@wix/bex-core';\nimport { GridBaseState } from './GridBaseState';\nimport { action, computed, makeObservable, observable, reaction } from 'mobx';\nimport { ToolbarCollectionState } from './ToolbarCollectionState';\nimport {\n FoldersAndItemsCollectionsState,\n FoldersAndItemsCollectionsStateInitParams,\n PartialAllFilters,\n} from './FoldersAndItemsCollectionsState';\nimport { sideGridSizePreset, topGridSizePreset } from './gridSizePresets';\nimport { GridFoldersBIReporter } from './GridFoldersBIReporter';\nimport { ICollectionComponentState } from './ICollectionComponentState';\n\nexport interface GridFoldersStateParams<\n T1,\n F1 extends FiltersMap,\n T2,\n F2 extends FiltersMap,\n> {\n readonly items: CollectionState<T1, F1>;\n readonly folders: CollectionState<T2, F2>;\n readonly container: WixPatternsContainer;\n readonly toolbar?: ToolbarCollectionState<T1, PartialAllFilters<F1, F2>>;\n readonly collections?: FoldersAndItemsCollectionsState<T1, F1, T2, F2>;\n}\n\ninterface GridFoldersStateInitParams\n extends FoldersAndItemsCollectionsStateInitParams {}\n\nexport class GridFoldersState<\n T1,\n F1 extends FiltersMap,\n T2,\n F2 extends FiltersMap,\n> implements ICollectionComponentState\n{\n readonly container;\n readonly toolbar;\n readonly items;\n readonly folders;\n readonly collections;\n readonly bi;\n\n readonly _subGrids = [] as GridBaseState<any, any>[];\n\n showAllFolders = false;\n\n constructor(params: GridFoldersStateParams<T1, F1, T2, F2>) {\n this.container = params.container;\n\n this.toolbar =\n params.toolbar ??\n new ToolbarCollectionState({\n collection: params.items as CollectionState<T1, {}> as CollectionState<\n T1,\n PartialAllFilters<F1, F2>\n >,\n container: params.container,\n componentType: 'GridFolders',\n });\n\n this.collections =\n params.collections ??\n new FoldersAndItemsCollectionsState({\n ...params,\n toolbar: this.toolbar,\n });\n\n this.items = new GridBaseState({\n collection: params.items,\n container: params.container,\n toolbar: this.toolbar as ToolbarCollectionState<unknown, Partial<F1>>,\n sizePreset: topGridSizePreset,\n parentState: this,\n layoutType: 'grid',\n });\n\n this.folders = new GridBaseState({\n collection: params.folders,\n container: params.container,\n toolbar: this.toolbar as ToolbarCollectionState<unknown, Partial<F2>>,\n sizePreset: sideGridSizePreset,\n parentState: this,\n layoutType: 'grid',\n });\n\n this.bi = new GridFoldersBIReporter({\n state: this,\n });\n\n makeObservable(this, {\n showAllFolders: observable.ref,\n foldersLocalLimit: computed,\n effectiveFoldersLocalLimit: computed,\n showToggleShowAllLessButton: computed,\n showItemsSection: computed,\n showItemsSectionHeader: computed,\n showFoldersSection: computed,\n showFoldersSectionHeader: computed,\n showLoadingSection: computed,\n });\n }\n\n toggleShowAllFolders = action(() => {\n this.showAllFolders = !this.showAllFolders;\n this.bi.onToggleShowAllButtonClick();\n });\n\n get foldersLocalLimit() {\n return this.folders.columnsCount * 2;\n }\n\n get effectiveFoldersLocalLimit() {\n return this.showAllFolders ? null : this.folders.columnsCount * 2;\n }\n\n get showToggleShowAllLessButton() {\n return this.collections.folders.result.size > this.foldersLocalLimit;\n }\n\n get showFoldersSectionHeader() {\n return this.showToggleShowAllLessButton || this.showItemsSection;\n }\n\n get showItemsSection() {\n return (\n !this.collections.items.result.isEmptyAndNotFetching &&\n !this.collections.hasFoldersOnlyActiveFilters &&\n (!this.showAllFolders || this.folders.collection.fetchedLastPage)\n );\n }\n\n get initTask() {\n return this.toolbar.initTask;\n }\n\n get showErrorState() {\n return this.toolbar.multi.showErrorState;\n }\n\n get errorStatus() {\n return this.toolbar.multi.errorStatus;\n }\n\n retryErrorState = action(() => this.toolbar.retryErrorState());\n\n get showLoadingState() {\n return this.toolbar.multi.showLoadingState;\n }\n\n get showEmptyState() {\n return this.collections.showEmptyState;\n }\n\n get hasAvailableItems() {\n return this.collections.hasAvailableItems;\n }\n\n get resultOriginQuerySearch() {\n return this.collections.resultOriginQuerySearch;\n }\n\n get hasNonPersistentActiveFilters() {\n return this.collections.hasNonPersistentActiveFilters;\n }\n\n get showItemsSectionHeader() {\n return this.showFoldersSection;\n }\n\n get showFoldersSection() {\n return (\n !this.collections.folders.result.isEmptyAndNotFetching &&\n !this.collections.hasItemsOnlyActiveFilters\n );\n }\n\n get showLoadingSection() {\n const {\n collections: { hasFoldersOnlyActiveFilters, hasItemsOnlyActiveFilters },\n toolbar: { initTask, multi },\n } = this;\n\n const isLoadingToolbarAndCollection = () =>\n (multi.showInitialLoader && initTask.status.isLoading) ||\n initTask.status.isIdle;\n\n return (\n !hasFoldersOnlyActiveFilters &&\n !hasItemsOnlyActiveFilters &&\n (multi.showRefreshLoader || isLoadingToolbarAndCollection())\n );\n }\n\n init(params: GridFoldersStateInitParams) {\n const disposers = [\n this.collections.init(params),\n reaction(\n () => this.effectiveFoldersLocalLimit,\n (effectiveFoldersLocalLimit) => {\n this.folders._localLimit = effectiveFoldersLocalLimit;\n },\n {\n fireImmediately: true,\n },\n ),\n ];\n\n return () => {\n disposers.forEach((d) => d());\n };\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_GridBaseState","require","_mobx","_ToolbarCollectionState","_FoldersAndItemsCollectionsState","_gridSizePresets","_GridFoldersBIReporter","GridFoldersState","constructor","params","_defineProperty2","default","undefined","action","showAllFolders","bi","onToggleShowAllButtonClick","toolbar","retryErrorState","container","ToolbarCollectionState","collection","items","componentType","collections","FoldersAndItemsCollectionsState","GridBaseState","sizePreset","topGridSizePreset","parentState","layoutType","folders","sideGridSizePreset","GridFoldersBIReporter","state","makeObservable","observable","ref","foldersLocalLimit","computed","effectiveFoldersLocalLimit","showToggleShowAllLessButton","showItemsSection","showItemsSectionHeader","showFoldersSection","showFoldersSectionHeader","showLoadingSection","columnsCount","result","size","isEmptyAndNotFetching","hasFoldersOnlyActiveFilters","fetchedLastPage","initTask","showErrorState","multi","errorStatus","showLoadingState","showEmptyState","hasAvailableItems","resultOriginQuerySearch","hasNonPersistentActiveFilters","hasItemsOnlyActiveFilters","isLoadingToolbarAndCollection","showInitialLoader","status","isLoading","isIdle","showRefreshLoader","init","disposers","reaction","_localLimit","fireImmediately","forEach","d","exports"],"sources":["../../../src/state/GridFoldersState.ts"],"sourcesContent":["import {\n WixPatternsContainer,\n CollectionState,\n FiltersMap,\n} from '@wix/bex-core';\nimport { GridBaseState } from './GridBaseState';\nimport { action, computed, makeObservable, observable, reaction } from 'mobx';\nimport { ToolbarCollectionState } from './ToolbarCollectionState';\nimport {\n FoldersAndItemsCollectionsState,\n FoldersAndItemsCollectionsStateInitParams,\n PartialAllFilters,\n} from './FoldersAndItemsCollectionsState';\nimport {\n GridSizePreset,\n sideGridSizePreset,\n topGridSizePreset,\n} from './gridSizePresets';\nimport { GridFoldersBIReporter } from './GridFoldersBIReporter';\nimport { ICollectionComponentState } from './ICollectionComponentState';\n\nexport interface GridFoldersStateParams<\n T1,\n F1 extends FiltersMap,\n T2,\n F2 extends FiltersMap,\n> {\n readonly items: CollectionState<T1, F1>;\n readonly folders: CollectionState<T2, F2>;\n readonly container: WixPatternsContainer;\n readonly toolbar?: ToolbarCollectionState<T1, PartialAllFilters<F1, F2>>;\n readonly collections?: FoldersAndItemsCollectionsState<T1, F1, T2, F2>;\n}\n\ninterface GridFoldersStateInitParams\n extends FoldersAndItemsCollectionsStateInitParams {}\n\nexport class GridFoldersState<\n T1,\n F1 extends FiltersMap,\n T2,\n F2 extends FiltersMap,\n> implements ICollectionComponentState\n{\n readonly container;\n readonly toolbar;\n readonly items;\n readonly folders;\n readonly collections;\n readonly bi;\n\n readonly _subGrids = [] as GridBaseState<any, any>[];\n readonly _sizePreset = undefined as undefined | GridSizePreset;\n\n showAllFolders = false;\n\n constructor(params: GridFoldersStateParams<T1, F1, T2, F2>) {\n this.container = params.container;\n\n this.toolbar =\n params.toolbar ??\n new ToolbarCollectionState({\n collection: params.items as CollectionState<T1, {}> as CollectionState<\n T1,\n PartialAllFilters<F1, F2>\n >,\n container: params.container,\n componentType: 'GridFolders',\n });\n\n this.collections =\n params.collections ??\n new FoldersAndItemsCollectionsState({\n ...params,\n toolbar: this.toolbar,\n });\n\n this.items = new GridBaseState({\n collection: params.items,\n container: params.container,\n toolbar: this.toolbar as ToolbarCollectionState<unknown, Partial<F1>>,\n sizePreset: topGridSizePreset,\n parentState: this,\n layoutType: 'grid',\n });\n\n this.folders = new GridBaseState({\n collection: params.folders,\n container: params.container,\n toolbar: this.toolbar as ToolbarCollectionState<unknown, Partial<F2>>,\n sizePreset: sideGridSizePreset,\n parentState: this,\n layoutType: 'grid',\n });\n\n this.bi = new GridFoldersBIReporter({\n state: this,\n });\n\n makeObservable(this, {\n showAllFolders: observable.ref,\n foldersLocalLimit: computed,\n effectiveFoldersLocalLimit: computed,\n showToggleShowAllLessButton: computed,\n showItemsSection: computed,\n showItemsSectionHeader: computed,\n showFoldersSection: computed,\n showFoldersSectionHeader: computed,\n showLoadingSection: computed,\n });\n }\n\n toggleShowAllFolders = action(() => {\n this.showAllFolders = !this.showAllFolders;\n this.bi.onToggleShowAllButtonClick();\n });\n\n get foldersLocalLimit() {\n return this.folders.columnsCount * 2;\n }\n\n get effectiveFoldersLocalLimit() {\n return this.showAllFolders ? null : this.folders.columnsCount * 2;\n }\n\n get showToggleShowAllLessButton() {\n return this.collections.folders.result.size > this.foldersLocalLimit;\n }\n\n get showFoldersSectionHeader() {\n return this.showToggleShowAllLessButton || this.showItemsSection;\n }\n\n get showItemsSection() {\n return (\n !this.collections.items.result.isEmptyAndNotFetching &&\n !this.collections.hasFoldersOnlyActiveFilters &&\n (!this.showAllFolders || this.folders.collection.fetchedLastPage)\n );\n }\n\n get initTask() {\n return this.toolbar.initTask;\n }\n\n get showErrorState() {\n return this.toolbar.multi.showErrorState;\n }\n\n get errorStatus() {\n return this.toolbar.multi.errorStatus;\n }\n\n retryErrorState = action(() => this.toolbar.retryErrorState());\n\n get showLoadingState() {\n return this.toolbar.multi.showLoadingState;\n }\n\n get showEmptyState() {\n return this.collections.showEmptyState;\n }\n\n get hasAvailableItems() {\n return this.collections.hasAvailableItems;\n }\n\n get resultOriginQuerySearch() {\n return this.collections.resultOriginQuerySearch;\n }\n\n get hasNonPersistentActiveFilters() {\n return this.collections.hasNonPersistentActiveFilters;\n }\n\n get showItemsSectionHeader() {\n return this.showFoldersSection;\n }\n\n get showFoldersSection() {\n return (\n !this.collections.folders.result.isEmptyAndNotFetching &&\n !this.collections.hasItemsOnlyActiveFilters\n );\n }\n\n get showLoadingSection() {\n const {\n collections: { hasFoldersOnlyActiveFilters, hasItemsOnlyActiveFilters },\n toolbar: { initTask, multi },\n } = this;\n\n const isLoadingToolbarAndCollection = () =>\n (multi.showInitialLoader && initTask.status.isLoading) ||\n initTask.status.isIdle;\n\n return (\n !hasFoldersOnlyActiveFilters &&\n !hasItemsOnlyActiveFilters &&\n (multi.showRefreshLoader || isLoadingToolbarAndCollection())\n );\n }\n\n init(params: GridFoldersStateInitParams) {\n const disposers = [\n this.collections.init(params),\n reaction(\n () => this.effectiveFoldersLocalLimit,\n (effectiveFoldersLocalLimit) => {\n this.folders._localLimit = effectiveFoldersLocalLimit;\n },\n {\n fireImmediately: true,\n },\n ),\n ];\n\n return () => {\n disposers.forEach((d) => d());\n };\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ //# sourceMappingURL=GridParentState.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sources":["../../../src/state/GridParentState.ts"],"sourcesContent":["import { FiltersMap } from '@wix/bex-core';\nimport { GridSizePreset } from './gridSizePresets';\nimport { GridBaseState } from './GridBaseState';\n\nexport interface GridParentState<T, F extends FiltersMap> {\n _subGrids: GridBaseState<T, F>[] | undefined;\n _sizePreset: GridSizePreset | undefined;\n}\n"],"mappings":"","ignoreList":[]}
@@ -5,12 +5,14 @@ exports.__esModule = true;
5
5
  exports.GridState = void 0;
6
6
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
7
7
  var _ToolbarCollectionState = require("./ToolbarCollectionState");
8
+ var _mobx = require("mobx");
8
9
  class GridState {
9
10
  constructor(params) {
10
11
  (0, _defineProperty2.default)(this, "toolbar", void 0);
11
12
  (0, _defineProperty2.default)(this, "container", void 0);
12
13
  (0, _defineProperty2.default)(this, "collection", void 0);
13
14
  (0, _defineProperty2.default)(this, "_subGrids", []);
15
+ (0, _defineProperty2.default)(this, "_sizePreset", undefined);
14
16
  (0, _defineProperty2.default)(this, "_sections", void 0);
15
17
  (0, _defineProperty2.default)(this, "onAddItemActionComplete", async items => {
16
18
  return this.toolbar.onAddItemActionComplete(items);
@@ -22,6 +24,9 @@ class GridState {
22
24
  container: params.container,
23
25
  componentType: 'Grid'
24
26
  });
27
+ (0, _mobx.makeObservable)(this, {
28
+ _sizePreset: _mobx.observable.ref
29
+ });
25
30
  }
26
31
  init(params) {
27
32
  const disposers = [this.toolbar.init(params)];
@@ -1 +1 @@
1
- {"version":3,"names":["_ToolbarCollectionState","require","GridState","constructor","params","_defineProperty2","default","items","toolbar","onAddItemActionComplete","container","collection","ToolbarCollectionState","componentType","init","disposers","disposer","exports"],"sources":["../../../src/state/GridState.ts"],"sourcesContent":["import {\n CollectionState,\n FiltersMap,\n WixPatternsContainer,\n} from '@wix/bex-core';\nimport {\n ToolbarCollectionState,\n ToolbarCollectionStateParamsInitParams,\n} from './ToolbarCollectionState';\nimport { GridBaseState } from './GridBaseState';\nimport { GridSectionsState } from '../components/GridSections/GridSectionsState';\nimport { ICollectionComponentState } from './ICollectionComponentState';\n\nexport interface GridStateParams<T, F extends FiltersMap> {\n readonly collection: CollectionState<T, F>;\n readonly container: WixPatternsContainer;\n readonly toolbar?: ToolbarCollectionState<T, F>;\n}\n\nexport interface GridStateInitParams\n extends ToolbarCollectionStateParamsInitParams {}\n\nexport interface GridStatePublicAPI<T, F extends FiltersMap> {\n /**\n * Underlying [CollectionState](./?path=/story/common-state--collectionstate) instance\n * @external\n */\n readonly collection: CollectionState<T, F>;\n /**\n * Underlying [ToolbarCollectionState](./?path=/story/common-state--toolbarcollectionstate) instance\n * @external\n */\n readonly toolbar: ToolbarCollectionState<T, F>;\n\n /**\n * Reset active filters & sorting and adds new items to the collection.\n * @param items - new items to add to the collection\n * @external\n */\n onAddItemActionComplete(items: T[]): void;\n}\n\nexport class GridState<T, F extends FiltersMap>\n implements GridStatePublicAPI<T, F>, ICollectionComponentState\n{\n readonly toolbar;\n readonly container;\n readonly collection;\n\n readonly _subGrids = [] as GridBaseState<T, F>[];\n _sections?: GridSectionsState<T, F>;\n\n constructor(params: GridStateParams<T, F>) {\n this.container = params.container;\n this.collection = params.collection;\n\n this.toolbar =\n params.toolbar ??\n new ToolbarCollectionState({\n collection: params.collection,\n container: params.container,\n componentType: 'Grid',\n });\n }\n\n init(params: GridStateInitParams) {\n const disposers = [this.toolbar.init(params)];\n\n return () => {\n for (const disposer of disposers) {\n disposer();\n }\n };\n }\n\n onAddItemActionComplete = async (items: T[]) => {\n return this.toolbar.onAddItemActionComplete(items);\n };\n}\n"],"mappings":";;;;;;AAKA,IAAAA,uBAAA,GAAAC,OAAA;AAqCO,MAAMC,SAAS,CAEtB;EAQEC,WAAWA,CAACC,MAA6B,EAAE;IAAA,IAAAC,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA,qBAHtB,EAAE;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA,mCA0BG,MAAOC,KAAU,IAAK;MAC9C,OAAO,IAAI,CAACC,OAAO,CAACC,uBAAuB,CAACF,KAAK,CAAC;IACpD,CAAC;IAxBC,IAAI,CAACG,SAAS,GAAGN,MAAM,CAACM,SAAS;IACjC,IAAI,CAACC,UAAU,GAAGP,MAAM,CAACO,UAAU;IAEnC,IAAI,CAACH,OAAO,GACVJ,MAAM,CAACI,OAAO,IACd,IAAII,8CAAsB,CAAC;MACzBD,UAAU,EAAEP,MAAM,CAACO,UAAU;MAC7BD,SAAS,EAAEN,MAAM,CAACM,SAAS;MAC3BG,aAAa,EAAE;IACjB,CAAC,CAAC;EACN;EAEAC,IAAIA,CAACV,MAA2B,EAAE;IAChC,MAAMW,SAAS,GAAG,CAAC,IAAI,CAACP,OAAO,CAACM,IAAI,CAACV,MAAM,CAAC,CAAC;IAE7C,OAAO,MAAM;MACX,KAAK,MAAMY,QAAQ,IAAID,SAAS,EAAE;QAChCC,QAAQ,CAAC,CAAC;MACZ;IACF,CAAC;EACH;AAKF;AAACC,OAAA,CAAAf,SAAA,GAAAA,SAAA","ignoreList":[]}
1
+ {"version":3,"names":["_ToolbarCollectionState","require","_mobx","GridState","constructor","params","_defineProperty2","default","undefined","items","toolbar","onAddItemActionComplete","container","collection","ToolbarCollectionState","componentType","makeObservable","_sizePreset","observable","ref","init","disposers","disposer","exports"],"sources":["../../../src/state/GridState.ts"],"sourcesContent":["import {\n CollectionState,\n FiltersMap,\n WixPatternsContainer,\n} from '@wix/bex-core';\nimport {\n ToolbarCollectionState,\n ToolbarCollectionStateParamsInitParams,\n} from './ToolbarCollectionState';\nimport { GridBaseState } from './GridBaseState';\nimport { GridSectionsState } from '../components/GridSections/GridSectionsState';\nimport { ICollectionComponentState } from './ICollectionComponentState';\nimport { GridSizePreset } from './gridSizePresets';\nimport { makeObservable, observable } from 'mobx';\n\nexport interface GridStateParams<T, F extends FiltersMap> {\n readonly collection: CollectionState<T, F>;\n readonly container: WixPatternsContainer;\n readonly toolbar?: ToolbarCollectionState<T, F>;\n}\n\nexport interface GridStateInitParams\n extends ToolbarCollectionStateParamsInitParams {}\n\nexport interface GridStatePublicAPI<T, F extends FiltersMap> {\n /**\n * Underlying [CollectionState](./?path=/story/common-state--collectionstate) instance\n * @external\n */\n readonly collection: CollectionState<T, F>;\n /**\n * Underlying [ToolbarCollectionState](./?path=/story/common-state--toolbarcollectionstate) instance\n * @external\n */\n readonly toolbar: ToolbarCollectionState<T, F>;\n\n /**\n * Reset active filters & sorting and adds new items to the collection.\n * @param items - new items to add to the collection\n * @external\n */\n onAddItemActionComplete(items: T[]): void;\n}\n\nexport class GridState<T, F extends FiltersMap>\n implements GridStatePublicAPI<T, F>, ICollectionComponentState\n{\n readonly toolbar;\n readonly container;\n readonly collection;\n\n readonly _subGrids = [] as GridBaseState<T, F>[];\n _sizePreset = undefined as GridSizePreset | undefined;\n _sections?: GridSectionsState<T, F>;\n\n constructor(params: GridStateParams<T, F>) {\n this.container = params.container;\n this.collection = params.collection;\n\n this.toolbar =\n params.toolbar ??\n new ToolbarCollectionState({\n collection: params.collection,\n container: params.container,\n componentType: 'Grid',\n });\n\n makeObservable(this, {\n _sizePreset: observable.ref,\n });\n }\n\n init(params: GridStateInitParams) {\n const disposers = [this.toolbar.init(params)];\n\n return () => {\n for (const disposer of disposers) {\n disposer();\n }\n };\n }\n\n onAddItemActionComplete = async (items: T[]) => {\n return this.toolbar.onAddItemActionComplete(items);\n };\n}\n"],"mappings":";;;;;;AAKA,IAAAA,uBAAA,GAAAC,OAAA;AAQA,IAAAC,KAAA,GAAAD,OAAA;AA+BO,MAAME,SAAS,CAEtB;EASEC,WAAWA,CAACC,MAA6B,EAAE;IAAA,IAAAC,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA,qBAJtB,EAAE;IAAA,IAAAD,gBAAA,CAAAC,OAAA,uBACTC,SAAS;IAAA,IAAAF,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA,mCA8BG,MAAOE,KAAU,IAAK;MAC9C,OAAO,IAAI,CAACC,OAAO,CAACC,uBAAuB,CAACF,KAAK,CAAC;IACpD,CAAC;IA5BC,IAAI,CAACG,SAAS,GAAGP,MAAM,CAACO,SAAS;IACjC,IAAI,CAACC,UAAU,GAAGR,MAAM,CAACQ,UAAU;IAEnC,IAAI,CAACH,OAAO,GACVL,MAAM,CAACK,OAAO,IACd,IAAII,8CAAsB,CAAC;MACzBD,UAAU,EAAER,MAAM,CAACQ,UAAU;MAC7BD,SAAS,EAAEP,MAAM,CAACO,SAAS;MAC3BG,aAAa,EAAE;IACjB,CAAC,CAAC;IAEJ,IAAAC,oBAAc,EAAC,IAAI,EAAE;MACnBC,WAAW,EAAEC,gBAAU,CAACC;IAC1B,CAAC,CAAC;EACJ;EAEAC,IAAIA,CAACf,MAA2B,EAAE;IAChC,MAAMgB,SAAS,GAAG,CAAC,IAAI,CAACX,OAAO,CAACU,IAAI,CAACf,MAAM,CAAC,CAAC;IAE7C,OAAO,MAAM;MACX,KAAK,MAAMiB,QAAQ,IAAID,SAAS,EAAE;QAChCC,QAAQ,CAAC,CAAC;MACZ;IACF,CAAC;EACH;AAKF;AAACC,OAAA,CAAApB,SAAA,GAAAA,SAAA","ignoreList":[]}
@@ -6,10 +6,12 @@ exports.TableState = void 0;
6
6
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
7
7
  var _ToolbarCollectionState = require("./ToolbarCollectionState");
8
8
  var _TableVirtualState = require("./TableVirtualState");
9
+ var _LoadingRowState = require("../components/LoadingRow/LoadingRowState");
9
10
  class TableState {
10
11
  constructor(params) {
11
12
  (0, _defineProperty2.default)(this, "toolbar", void 0);
12
13
  (0, _defineProperty2.default)(this, "virtual", void 0);
14
+ (0, _defineProperty2.default)(this, "loadingRowState", void 0);
13
15
  (0, _defineProperty2.default)(this, "tableDragAndDropState", null);
14
16
  (0, _defineProperty2.default)(this, "retryErrorState", () => this.toolbar.retryErrorState());
15
17
  (0, _defineProperty2.default)(this, "onAddItemActionComplete", async items => {
@@ -23,6 +25,7 @@ class TableState {
23
25
  this.virtual = new _TableVirtualState.TableVirtualState({
24
26
  table: this
25
27
  });
28
+ this.loadingRowState = new _LoadingRowState.LoadingRowState();
26
29
  }
27
30
  get visibleColumns() {
28
31
  return this.toolbar.selectedOrderedColumnsOrAll;