@wix/patterns 1.229.0 → 1.231.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 (385) hide show
  1. package/dist/cjs/components/CardContainer/CardContainer.st.css.js +2 -2
  2. package/dist/cjs/components/CardContainer/CardContainer.st.css.js.map +1 -1
  3. package/dist/cjs/components/Collapse/Collapse.st.css.js +3 -3
  4. package/dist/cjs/components/Collapse/Collapse.st.css.js.map +1 -1
  5. package/dist/cjs/components/CollectionMultiSelectCheckbox/CollectionMultiSelectCheckbox.js +3 -2
  6. package/dist/cjs/components/CollectionMultiSelectCheckbox/CollectionMultiSelectCheckbox.js.map +1 -1
  7. package/dist/cjs/components/CollectionPageNew/CollectionPage.st.css.js +2 -2
  8. package/dist/cjs/components/CollectionPageNew/CollectionPage.st.css.js.map +1 -1
  9. package/dist/cjs/components/CollectionSectionHeader/CollectionSectionHeader.js +41 -0
  10. package/dist/cjs/components/CollectionSectionHeader/CollectionSectionHeader.js.map +1 -0
  11. package/dist/cjs/components/CollectionSectionHeader/CollectionSectionHeader.types.js +4 -0
  12. package/dist/cjs/components/CollectionSectionHeader/CollectionSectionHeader.types.js.map +1 -0
  13. package/dist/cjs/components/CollectionSectionHeader/CollectionSectionHeader.uni.driver.js +12 -0
  14. package/dist/cjs/components/CollectionSectionHeader/CollectionSectionHeader.uni.driver.js.map +1 -0
  15. package/dist/cjs/components/{GridSections/GridSectionHeaderActionBar.js → CollectionSectionHeader/CollectionSectionHeaderActionBar.js} +23 -25
  16. package/dist/cjs/components/CollectionSectionHeader/CollectionSectionHeaderActionBar.js.map +1 -0
  17. package/dist/cjs/components/CollectionSectionHeader/index.js +19 -0
  18. package/dist/cjs/components/CollectionSectionHeader/index.js.map +1 -0
  19. package/dist/cjs/components/CollectionTable/CollectionTable.js +11 -9
  20. package/dist/cjs/components/CollectionTable/CollectionTable.js.map +1 -1
  21. package/dist/cjs/components/CollectionTable/CollectionTable.st.css.js +2 -2
  22. package/dist/cjs/components/CollectionTable/CollectionTable.st.css.js.map +1 -1
  23. package/dist/cjs/components/CollectionTable/CollectionTableWSRTable.js +13 -12
  24. package/dist/cjs/components/CollectionTable/CollectionTableWSRTable.js.map +1 -1
  25. package/dist/cjs/components/CollectionToolbar/CollectionToolbar.st.css.js +5 -5
  26. package/dist/cjs/components/CollectionToolbar/CollectionToolbar.st.css.js.map +1 -1
  27. package/dist/cjs/components/CollectionToolbar/SearchOrCustomFilter.st.css.js +4 -4
  28. package/dist/cjs/components/CollectionToolbar/SearchOrCustomFilter.st.css.js.map +1 -1
  29. package/dist/cjs/components/CollectionViewsDropdown/AutoCompleteReadonly.st.css.js +2 -2
  30. package/dist/cjs/components/CollectionViewsDropdown/AutoCompleteReadonly.st.css.js.map +1 -1
  31. package/dist/cjs/components/CollectionViewsDropdown/ViewsDropdown.st.css.js +2 -2
  32. package/dist/cjs/components/CollectionViewsDropdown/ViewsDropdown.st.css.js.map +1 -1
  33. package/dist/cjs/components/DragHandle/DragHandle.st.css.js +2 -2
  34. package/dist/cjs/components/DragHandle/DragHandle.st.css.js.map +1 -1
  35. package/dist/cjs/components/EntityPage/EntityPagePlain.st.css.js +2 -2
  36. package/dist/cjs/components/EntityPage/EntityPagePlain.st.css.js.map +1 -1
  37. package/dist/cjs/components/Fade/Fade.st.css.js +2 -2
  38. package/dist/cjs/components/Fade/Fade.st.css.js.map +1 -1
  39. package/dist/cjs/components/Grid/Grid.js.map +1 -1
  40. package/dist/cjs/components/Grid/Grid.uni.driver.js +2 -2
  41. package/dist/cjs/components/Grid/Grid.uni.driver.js.map +1 -1
  42. package/dist/cjs/components/GridSections/GridSectionHeader.js +5 -17
  43. package/dist/cjs/components/GridSections/GridSectionHeader.js.map +1 -1
  44. package/dist/cjs/components/GridSections/GridSectionsContent.js +3 -3
  45. package/dist/cjs/components/GridSections/GridSectionsContent.js.map +1 -1
  46. package/dist/cjs/components/GridSections/GridSectionsState.js.map +1 -1
  47. package/dist/cjs/components/Heading/Heading.st.css.js +2 -2
  48. package/dist/cjs/components/Heading/Heading.st.css.js.map +1 -1
  49. package/dist/cjs/components/InputOverflow/InputOverflow.st.css.js +2 -2
  50. package/dist/cjs/components/InputOverflow/InputOverflow.st.css.js.map +1 -1
  51. package/dist/cjs/components/Kanban/Card.js +1 -1
  52. package/dist/cjs/components/Kanban/Card.js.map +1 -1
  53. package/dist/cjs/components/Kanban/CardsSkeleton.js +132 -0
  54. package/dist/cjs/components/Kanban/CardsSkeleton.js.map +1 -0
  55. package/dist/cjs/components/Kanban/Kanban.js +15 -13
  56. package/dist/cjs/components/Kanban/Kanban.js.map +1 -1
  57. package/dist/cjs/components/Kanban/Kanban.uni.driver.js +16 -2
  58. package/dist/cjs/components/Kanban/Kanban.uni.driver.js.map +1 -1
  59. package/dist/cjs/components/Kanban/Stage.js +92 -37
  60. package/dist/cjs/components/Kanban/Stage.js.map +1 -1
  61. package/dist/cjs/components/Kanban/StagesSkeleton.js +100 -0
  62. package/dist/cjs/components/Kanban/StagesSkeleton.js.map +1 -0
  63. package/dist/cjs/components/Kanban/StagesSkeleton.scss +10 -0
  64. package/dist/cjs/components/Kanban/useCardActions.js +5 -4
  65. package/dist/cjs/components/Kanban/useCardActions.js.map +1 -1
  66. package/dist/cjs/components/KanbanDragAndDropDndKit/KanbanCardDragAndDrop.js +13 -14
  67. package/dist/cjs/components/KanbanDragAndDropDndKit/KanbanCardDragAndDrop.js.map +1 -1
  68. package/dist/cjs/components/KanbanDragAndDropDndKit/KanbanDraggableCardItem.js +6 -8
  69. package/dist/cjs/components/KanbanDragAndDropDndKit/KanbanDraggableCardItem.js.map +1 -1
  70. package/dist/cjs/components/LoadingRow/LoadingRow.st.css.js +3 -3
  71. package/dist/cjs/components/LoadingRow/LoadingRow.st.css.js.map +1 -1
  72. package/dist/cjs/components/MaxHeightText/MaxHeightText.st.css.js +2 -2
  73. package/dist/cjs/components/MaxHeightText/MaxHeightText.st.css.js.map +1 -1
  74. package/dist/cjs/components/MaxLines/MaxLines.st.css.js +2 -2
  75. package/dist/cjs/components/MaxLines/MaxLines.st.css.js.map +1 -1
  76. package/dist/cjs/components/MultiBulkActionToolbar/MultiBulkActionToolbar.st.css.js +2 -2
  77. package/dist/cjs/components/MultiBulkActionToolbar/MultiBulkActionToolbar.st.css.js.map +1 -1
  78. package/dist/cjs/components/NestedTable/NestedTablePlaceholderStatesRow.st.css.js +2 -2
  79. package/dist/cjs/components/NestedTable/NestedTablePlaceholderStatesRow.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/NestedTableDragAndDrop/MultipleDragOverlayEffect.st.css.js +2 -2
  83. package/dist/cjs/components/NestedTableDragAndDrop/MultipleDragOverlayEffect.st.css.js.map +1 -1
  84. package/dist/cjs/components/NestedTableDragAndDrop/NestedTableDragAndDropRow.st.css.js +2 -2
  85. package/dist/cjs/components/NestedTableDragAndDrop/NestedTableDragAndDropRow.st.css.js.map +1 -1
  86. package/dist/cjs/components/Picker/Picker.js +59 -19
  87. package/dist/cjs/components/Picker/Picker.js.map +1 -1
  88. package/dist/cjs/components/PickerContent/PickerContent.st.css.js +2 -2
  89. package/dist/cjs/components/PickerContent/PickerContent.st.css.js.map +1 -1
  90. package/dist/cjs/components/PickerContent/PickerContentAdditionalStep.st.css.js +4 -4
  91. package/dist/cjs/components/PickerContent/PickerContentAdditionalStep.st.css.js.map +1 -1
  92. package/dist/cjs/components/PickerTableListItem/PickerTableListItem.st.css.js +2 -2
  93. package/dist/cjs/components/PickerTableListItem/PickerTableListItem.st.css.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/SkeletonCard/SkeletonCard.st.css.js +3 -3
  97. package/dist/cjs/components/SkeletonCard/SkeletonCard.st.css.js.map +1 -1
  98. package/dist/cjs/components/SlidingModal/SlidingModal.st.css.js +2 -2
  99. package/dist/cjs/components/SlidingModal/SlidingModal.st.css.js.map +1 -1
  100. package/dist/cjs/components/Table/Table.js +2 -2
  101. package/dist/cjs/components/Table/Table.js.map +1 -1
  102. package/dist/cjs/components/Table/Table.uni.driver.js +4 -1
  103. package/dist/cjs/components/Table/Table.uni.driver.js.map +1 -1
  104. package/dist/cjs/components/Table/TableBase.js +24 -10
  105. package/dist/cjs/components/Table/TableBase.js.map +1 -1
  106. package/dist/cjs/components/Table/TableCompat.js +1 -1
  107. package/dist/cjs/components/Table/TableCompat.js.map +1 -1
  108. package/dist/cjs/components/Table/TableVirtual.js +3 -3
  109. package/dist/cjs/components/Table/TableVirtual.js.map +1 -1
  110. package/dist/cjs/components/TableGridSwitch/TableGridSwitch.js +19 -7
  111. package/dist/cjs/components/TableGridSwitch/TableGridSwitch.js.map +1 -1
  112. package/dist/cjs/components/TableSections/TableSectionRow.js +105 -0
  113. package/dist/cjs/components/TableSections/TableSectionRow.js.map +1 -0
  114. package/dist/cjs/components/TableSections/TableSections.js +49 -0
  115. package/dist/cjs/components/TableSections/TableSections.js.map +1 -0
  116. package/dist/cjs/components/TableSections/TableSectionsState.js +67 -0
  117. package/dist/cjs/components/TableSections/TableSectionsState.js.map +1 -0
  118. package/dist/cjs/components/TableSections/index.js +9 -0
  119. package/dist/cjs/components/TableSections/index.js.map +1 -0
  120. package/dist/cjs/components/TableSections/useTableSectionRow.js +28 -0
  121. package/dist/cjs/components/TableSections/useTableSectionRow.js.map +1 -0
  122. package/dist/cjs/components/TabsFilter/TabsFilter.st.css.js +3 -3
  123. package/dist/cjs/components/TabsFilter/TabsFilter.st.css.js.map +1 -1
  124. package/dist/cjs/components/Tags/ManageTags/ManageTagsModal/ManageTagsModal.st.css.js +2 -2
  125. package/dist/cjs/components/Tags/ManageTags/ManageTagsModal/ManageTagsModal.st.css.js.map +1 -1
  126. package/dist/cjs/components/ToolbarItem/ToolbarItem.st.css.js +2 -2
  127. package/dist/cjs/components/ToolbarItem/ToolbarItem.st.css.js.map +1 -1
  128. package/dist/cjs/components/ToolbarItemBox/ToolbarItemBox.st.css.js +2 -2
  129. package/dist/cjs/components/ToolbarItemBox/ToolbarItemBox.st.css.js.map +1 -1
  130. package/dist/cjs/components/common.st.css.js +4 -4
  131. package/dist/cjs/components/common.st.css.js.map +1 -1
  132. package/dist/cjs/exports/router/index.js +10 -0
  133. package/dist/cjs/exports/router/index.js.map +1 -0
  134. package/dist/cjs/hooks/useCollectionOptions.js +15 -10
  135. package/dist/cjs/hooks/useCollectionOptions.js.map +1 -1
  136. package/dist/cjs/index.js +5 -9
  137. package/dist/cjs/index.js.map +1 -1
  138. package/dist/cjs/state/CollectionPage/CollectionPageHeader.st.css.js +2 -2
  139. package/dist/cjs/state/CollectionPage/CollectionPageHeader.st.css.js.map +1 -1
  140. package/dist/cjs/state/DropdownCollectionFilterState.js +7 -1
  141. package/dist/cjs/state/DropdownCollectionFilterState.js.map +1 -1
  142. package/dist/cjs/state/EntityPage/EntityPageState.js +3 -1
  143. package/dist/cjs/state/EntityPage/EntityPageState.js.map +1 -1
  144. package/dist/cjs/state/FormPage/FormPageHeader.st.css.js +2 -2
  145. package/dist/cjs/state/FormPage/FormPageHeader.st.css.js.map +1 -1
  146. package/dist/cjs/state/KanbanState/KanbanStageState.js +48 -4
  147. package/dist/cjs/state/KanbanState/KanbanStageState.js.map +1 -1
  148. package/dist/cjs/state/KanbanState/KanbanState.js +255 -77
  149. package/dist/cjs/state/KanbanState/KanbanState.js.map +1 -1
  150. package/dist/cjs/styles.global.css +1 -1
  151. package/dist/cjs/version.js +1 -1
  152. package/dist/cjs/version.js.map +1 -1
  153. package/dist/esm/components/CardContainer/CardContainer.st.css.js +2 -2
  154. package/dist/esm/components/Collapse/Collapse.st.css.js +2 -2
  155. package/dist/esm/components/CollectionMultiSelectCheckbox/CollectionMultiSelectCheckbox.js +2 -1
  156. package/dist/esm/components/CollectionMultiSelectCheckbox/CollectionMultiSelectCheckbox.js.map +1 -1
  157. package/dist/esm/components/CollectionPageNew/CollectionPage.st.css.js +2 -2
  158. package/dist/esm/components/CollectionSectionHeader/CollectionSectionHeader.js +7 -0
  159. package/dist/esm/components/CollectionSectionHeader/CollectionSectionHeader.js.map +1 -0
  160. package/dist/esm/components/CollectionSectionHeader/CollectionSectionHeader.types.js +2 -0
  161. package/dist/esm/components/CollectionSectionHeader/CollectionSectionHeader.types.js.map +1 -0
  162. package/dist/esm/components/{GridSections/GridSectionHeader.uni.driver.js → CollectionSectionHeader/CollectionSectionHeader.uni.driver.js} +3 -3
  163. package/dist/esm/components/CollectionSectionHeader/CollectionSectionHeader.uni.driver.js.map +1 -0
  164. package/dist/esm/components/CollectionSectionHeader/CollectionSectionHeaderActionBar.js +18 -0
  165. package/dist/esm/components/CollectionSectionHeader/CollectionSectionHeaderActionBar.js.map +1 -0
  166. package/dist/esm/components/CollectionSectionHeader/index.js +3 -0
  167. package/dist/esm/components/CollectionSectionHeader/index.js.map +1 -0
  168. package/dist/esm/components/CollectionTable/CollectionTable.js +2 -2
  169. package/dist/esm/components/CollectionTable/CollectionTable.js.map +1 -1
  170. package/dist/esm/components/CollectionTable/CollectionTable.st.css.js +2 -2
  171. package/dist/esm/components/CollectionTable/CollectionTableWSRTable.js +2 -1
  172. package/dist/esm/components/CollectionTable/CollectionTableWSRTable.js.map +1 -1
  173. package/dist/esm/components/CollectionToolbar/CollectionToolbar.st.css.js +2 -2
  174. package/dist/esm/components/CollectionToolbar/SearchOrCustomFilter.st.css.js +2 -2
  175. package/dist/esm/components/CollectionViewsDropdown/AutoCompleteReadonly.st.css.js +2 -2
  176. package/dist/esm/components/CollectionViewsDropdown/ViewsDropdown.st.css.js +2 -2
  177. package/dist/esm/components/CollectionViewsDropdown/ViewsDropdown.st.css.js.map +1 -1
  178. package/dist/esm/components/DragHandle/DragHandle.st.css.js +2 -2
  179. package/dist/esm/components/DragHandle/DragHandle.st.css.js.map +1 -1
  180. package/dist/esm/components/EntityPage/EntityPagePlain.st.css.js +2 -2
  181. package/dist/esm/components/EntityPage/EntityPagePlain.st.css.js.map +1 -1
  182. package/dist/esm/components/Fade/Fade.st.css.js +2 -2
  183. package/dist/esm/components/Fade/Fade.st.css.js.map +1 -1
  184. package/dist/esm/components/Grid/Grid.uni.driver.js +2 -2
  185. package/dist/esm/components/Grid/Grid.uni.driver.js.map +1 -1
  186. package/dist/esm/components/GridSections/GridSectionHeader.js +2 -3
  187. package/dist/esm/components/GridSections/GridSectionHeader.js.map +1 -1
  188. package/dist/esm/components/GridSections/GridSectionsContent.js.map +1 -1
  189. package/dist/esm/components/GridSections/GridSectionsState.js.map +1 -1
  190. package/dist/esm/components/Heading/Heading.st.css.js +2 -2
  191. package/dist/esm/components/InputOverflow/InputOverflow.st.css.js +2 -2
  192. package/dist/esm/components/Kanban/Card.js +1 -1
  193. package/dist/esm/components/Kanban/CardsSkeleton.js +18 -0
  194. package/dist/esm/components/Kanban/CardsSkeleton.js.map +1 -0
  195. package/dist/esm/components/Kanban/Kanban.js +3 -2
  196. package/dist/esm/components/Kanban/Kanban.js.map +1 -1
  197. package/dist/esm/components/Kanban/Kanban.uni.driver.js +16 -2
  198. package/dist/esm/components/Kanban/Kanban.uni.driver.js.map +1 -1
  199. package/dist/esm/components/Kanban/Stage.js +33 -16
  200. package/dist/esm/components/Kanban/Stage.js.map +1 -1
  201. package/dist/esm/components/Kanban/StagesSkeleton.js +17 -0
  202. package/dist/esm/components/Kanban/StagesSkeleton.js.map +1 -0
  203. package/dist/esm/components/Kanban/StagesSkeleton.scss +10 -0
  204. package/dist/esm/components/Kanban/useCardActions.js +1 -1
  205. package/dist/esm/components/Kanban/useCardActions.js.map +1 -1
  206. package/dist/esm/components/KanbanDragAndDropDndKit/KanbanCardDragAndDrop.js +13 -20
  207. package/dist/esm/components/KanbanDragAndDropDndKit/KanbanCardDragAndDrop.js.map +1 -1
  208. package/dist/esm/components/KanbanDragAndDropDndKit/KanbanDraggableCardItem.js +3 -5
  209. package/dist/esm/components/KanbanDragAndDropDndKit/KanbanDraggableCardItem.js.map +1 -1
  210. package/dist/esm/components/LoadingRow/LoadingRow.st.css.js +3 -3
  211. package/dist/esm/components/MaxHeightText/MaxHeightText.st.css.js +2 -2
  212. package/dist/esm/components/MaxLines/MaxLines.st.css.js +2 -2
  213. package/dist/esm/components/MaxLines/MaxLines.st.css.js.map +1 -1
  214. package/dist/esm/components/MultiBulkActionToolbar/MultiBulkActionToolbar.st.css.js +2 -2
  215. package/dist/esm/components/NestedTable/NestedTablePlaceholderStatesRow.st.css.js +2 -2
  216. package/dist/esm/components/NestedTable/NestedTableRow.st.css.js +2 -2
  217. package/dist/esm/components/NestedTableDragAndDrop/MultipleDragOverlayEffect.st.css.js +2 -2
  218. package/dist/esm/components/NestedTableDragAndDrop/MultipleDragOverlayEffect.st.css.js.map +1 -1
  219. package/dist/esm/components/NestedTableDragAndDrop/NestedTableDragAndDropRow.st.css.js +2 -2
  220. package/dist/esm/components/NestedTableDragAndDrop/NestedTableDragAndDropRow.st.css.js.map +1 -1
  221. package/dist/esm/components/Picker/Picker.js +8 -4
  222. package/dist/esm/components/Picker/Picker.js.map +1 -1
  223. package/dist/esm/components/PickerContent/PickerContent.st.css.js +2 -2
  224. package/dist/esm/components/PickerContent/PickerContentAdditionalStep.st.css.js +2 -2
  225. package/dist/esm/components/PickerTableListItem/PickerTableListItem.st.css.js +2 -2
  226. package/dist/esm/components/ScrollableContent/ScrollableContent.st.css.js +2 -2
  227. package/dist/esm/components/SkeletonCard/SkeletonCard.st.css.js +2 -2
  228. package/dist/esm/components/SlidingModal/SlidingModal.st.css.js +2 -2
  229. package/dist/esm/components/SlidingModal/SlidingModal.st.css.js.map +1 -1
  230. package/dist/esm/components/Table/Table.js.map +1 -1
  231. package/dist/esm/components/Table/Table.uni.driver.js +3 -0
  232. package/dist/esm/components/Table/Table.uni.driver.js.map +1 -1
  233. package/dist/esm/components/Table/TableBase.js +10 -3
  234. package/dist/esm/components/Table/TableBase.js.map +1 -1
  235. package/dist/esm/components/Table/TableCompat.js.map +1 -1
  236. package/dist/esm/components/Table/TableVirtual.js.map +1 -1
  237. package/dist/esm/components/TableGridSwitch/TableGridSwitch.js +14 -2
  238. package/dist/esm/components/TableGridSwitch/TableGridSwitch.js.map +1 -1
  239. package/dist/esm/components/TableSections/TableSectionRow.js +32 -0
  240. package/dist/esm/components/TableSections/TableSectionRow.js.map +1 -0
  241. package/dist/esm/components/TableSections/TableSections.js +24 -0
  242. package/dist/esm/components/TableSections/TableSections.js.map +1 -0
  243. package/dist/esm/components/TableSections/TableSectionsState.js +56 -0
  244. package/dist/esm/components/TableSections/TableSectionsState.js.map +1 -0
  245. package/dist/esm/components/TableSections/index.js +2 -0
  246. package/dist/esm/components/TableSections/index.js.map +1 -0
  247. package/dist/esm/components/TableSections/useTableSectionRow.js +9 -0
  248. package/dist/esm/components/TableSections/useTableSectionRow.js.map +1 -0
  249. package/dist/esm/components/TabsFilter/TabsFilter.st.css.js +2 -2
  250. package/dist/esm/components/Tags/ManageTags/ManageTagsModal/ManageTagsModal.st.css.js +2 -2
  251. package/dist/esm/components/Tags/ManageTags/ManageTagsModal/ManageTagsModal.st.css.js.map +1 -1
  252. package/dist/esm/components/ToolbarItem/ToolbarItem.st.css.js +2 -2
  253. package/dist/esm/components/ToolbarItemBox/ToolbarItemBox.st.css.js +2 -2
  254. package/dist/esm/components/ToolbarItemBox/ToolbarItemBox.st.css.js.map +1 -1
  255. package/dist/esm/components/common.st.css.js +2 -2
  256. package/dist/esm/exports/router/index.js +2 -0
  257. package/dist/esm/exports/router/index.js.map +1 -0
  258. package/dist/esm/hooks/useCollectionOptions.js +18 -9
  259. package/dist/esm/hooks/useCollectionOptions.js.map +1 -1
  260. package/dist/esm/index.js +1 -1
  261. package/dist/esm/index.js.map +1 -1
  262. package/dist/esm/state/CollectionPage/CollectionPageHeader.st.css.js +2 -2
  263. package/dist/esm/state/DropdownCollectionFilterState.js +7 -1
  264. package/dist/esm/state/DropdownCollectionFilterState.js.map +1 -1
  265. package/dist/esm/state/EntityPage/EntityPageState.js +3 -1
  266. package/dist/esm/state/EntityPage/EntityPageState.js.map +1 -1
  267. package/dist/esm/state/FormPage/FormPageHeader.st.css.js +2 -2
  268. package/dist/esm/state/FormPage/FormPageHeader.st.css.js.map +1 -1
  269. package/dist/esm/state/KanbanState/KanbanStageState.js +46 -4
  270. package/dist/esm/state/KanbanState/KanbanStageState.js.map +1 -1
  271. package/dist/esm/state/KanbanState/KanbanState.js +254 -80
  272. package/dist/esm/state/KanbanState/KanbanState.js.map +1 -1
  273. package/dist/esm/styles.global.css +1 -1
  274. package/dist/esm/version.js +1 -1
  275. package/dist/types/components/CollectionMultiSelectCheckbox/CollectionMultiSelectCheckbox.d.ts.map +1 -1
  276. package/dist/types/components/CollectionSectionHeader/CollectionSectionHeader.d.ts +9 -0
  277. package/dist/types/components/CollectionSectionHeader/CollectionSectionHeader.d.ts.map +1 -0
  278. package/dist/types/components/CollectionSectionHeader/CollectionSectionHeader.types.d.ts +21 -0
  279. package/dist/types/components/CollectionSectionHeader/CollectionSectionHeader.types.d.ts.map +1 -0
  280. package/dist/types/components/{GridSections/GridSectionHeader.uni.driver.d.ts → CollectionSectionHeader/CollectionSectionHeader.uni.driver.d.ts} +2 -2
  281. package/dist/types/components/CollectionSectionHeader/CollectionSectionHeader.uni.driver.d.ts.map +1 -0
  282. package/dist/types/components/CollectionSectionHeader/CollectionSectionHeaderActionBar.d.ts +8 -0
  283. package/dist/types/components/CollectionSectionHeader/CollectionSectionHeaderActionBar.d.ts.map +1 -0
  284. package/dist/types/components/CollectionSectionHeader/index.d.ts +3 -0
  285. package/dist/types/components/CollectionSectionHeader/index.d.ts.map +1 -0
  286. package/dist/types/components/CollectionTable/CollectionTable.d.ts +1 -0
  287. package/dist/types/components/CollectionTable/CollectionTable.d.ts.map +1 -1
  288. package/dist/types/components/CollectionTable/CollectionTableWSRTable.d.ts +1 -0
  289. package/dist/types/components/CollectionTable/CollectionTableWSRTable.d.ts.map +1 -1
  290. package/dist/types/components/CollectionViewsDropdown/ViewsDropdown.st.css.d.ts.map +1 -1
  291. package/dist/types/components/DragHandle/DragHandle.st.css.d.ts.map +1 -1
  292. package/dist/types/components/EntityPage/EntityPagePlain.st.css.d.ts.map +1 -1
  293. package/dist/types/components/Fade/Fade.st.css.d.ts.map +1 -1
  294. package/dist/types/components/Grid/Grid.d.ts +1 -1
  295. package/dist/types/components/Grid/Grid.d.ts.map +1 -1
  296. package/dist/types/components/Grid/Grid.uni.driver.d.ts +5 -5
  297. package/dist/types/components/Grid/Grid.uni.driver.d.ts.map +1 -1
  298. package/dist/types/components/GridSections/GridSectionHeader.d.ts.map +1 -1
  299. package/dist/types/components/GridSections/GridSectionsContent.d.ts +2 -2
  300. package/dist/types/components/GridSections/GridSectionsContent.d.ts.map +1 -1
  301. package/dist/types/components/GridSections/GridSectionsState.d.ts +1 -20
  302. package/dist/types/components/GridSections/GridSectionsState.d.ts.map +1 -1
  303. package/dist/types/components/Kanban/CardsSkeleton.d.ts +5 -0
  304. package/dist/types/components/Kanban/CardsSkeleton.d.ts.map +1 -0
  305. package/dist/types/components/Kanban/Kanban.d.ts.map +1 -1
  306. package/dist/types/components/Kanban/Kanban.uni.driver.d.ts +25 -0
  307. package/dist/types/components/Kanban/Kanban.uni.driver.d.ts.map +1 -1
  308. package/dist/types/components/Kanban/Stage.d.ts.map +1 -1
  309. package/dist/types/components/Kanban/StagesSkeleton.d.ts +3 -0
  310. package/dist/types/components/Kanban/StagesSkeleton.d.ts.map +1 -0
  311. package/dist/types/components/Kanban/useCardActions.d.ts.map +1 -1
  312. package/dist/types/components/KanbanDragAndDropDndKit/KanbanCardDragAndDrop.d.ts +1 -1
  313. package/dist/types/components/KanbanDragAndDropDndKit/KanbanCardDragAndDrop.d.ts.map +1 -1
  314. package/dist/types/components/KanbanDragAndDropDndKit/KanbanDraggableCardItem.d.ts.map +1 -1
  315. package/dist/types/components/MaxLines/MaxLines.st.css.d.ts.map +1 -1
  316. package/dist/types/components/NestedTable/NestedTable.uni.driver.d.ts +8 -0
  317. package/dist/types/components/NestedTable/NestedTable.uni.driver.d.ts.map +1 -1
  318. package/dist/types/components/NestedTableDragAndDrop/MultipleDragOverlayEffect.st.css.d.ts.map +1 -1
  319. package/dist/types/components/NestedTableDragAndDrop/NestedTableDragAndDropRow.st.css.d.ts.map +1 -1
  320. package/dist/types/components/Picker/Picker.d.ts.map +1 -1
  321. package/dist/types/components/SlidingModal/SlidingModal.st.css.d.ts.map +1 -1
  322. package/dist/types/components/Table/Table.d.ts +7 -0
  323. package/dist/types/components/Table/Table.d.ts.map +1 -1
  324. package/dist/types/components/Table/Table.uni.driver.d.ts +33 -12
  325. package/dist/types/components/Table/Table.uni.driver.d.ts.map +1 -1
  326. package/dist/types/components/Table/TableBase.d.ts +2 -0
  327. package/dist/types/components/Table/TableBase.d.ts.map +1 -1
  328. package/dist/types/components/Table/TableCompat.d.ts +2 -0
  329. package/dist/types/components/Table/TableCompat.d.ts.map +1 -1
  330. package/dist/types/components/Table/TableVirtual.d.ts +2 -0
  331. package/dist/types/components/Table/TableVirtual.d.ts.map +1 -1
  332. package/dist/types/components/TableFolders/TableFolders.uni.driver.d.ts +8 -0
  333. package/dist/types/components/TableFolders/TableFolders.uni.driver.d.ts.map +1 -1
  334. package/dist/types/components/TableGridSwitch/TableGridSwitch.d.ts +14 -1
  335. package/dist/types/components/TableGridSwitch/TableGridSwitch.d.ts.map +1 -1
  336. package/dist/types/components/TableGridSwitch/TableGridSwitch.uni.driver.d.ts +8 -0
  337. package/dist/types/components/TableGridSwitch/TableGridSwitch.uni.driver.d.ts.map +1 -1
  338. package/dist/types/components/TableGridSwitchFolders/TableGridSwitchFolders.uni.driver.d.ts +8 -0
  339. package/dist/types/components/TableGridSwitchFolders/TableGridSwitchFolders.uni.driver.d.ts.map +1 -1
  340. package/dist/types/components/TableSections/TableSectionRow.d.ts +16 -0
  341. package/dist/types/components/TableSections/TableSectionRow.d.ts.map +1 -0
  342. package/dist/types/components/TableSections/TableSections.d.ts +17 -0
  343. package/dist/types/components/TableSections/TableSections.d.ts.map +1 -0
  344. package/dist/types/components/TableSections/TableSectionsState.d.ts +13 -0
  345. package/dist/types/components/TableSections/TableSectionsState.d.ts.map +1 -0
  346. package/dist/types/components/TableSections/index.d.ts +2 -0
  347. package/dist/types/components/TableSections/index.d.ts.map +1 -0
  348. package/dist/types/components/TableSections/useTableSectionRow.d.ts +9 -0
  349. package/dist/types/components/TableSections/useTableSectionRow.d.ts.map +1 -0
  350. package/dist/types/components/Tags/ManageTags/ManageTagsModal/ManageTagsModal.st.css.d.ts.map +1 -1
  351. package/dist/types/components/ToolbarItemBox/ToolbarItemBox.st.css.d.ts.map +1 -1
  352. package/dist/types/exports/router/index.d.ts +2 -0
  353. package/dist/types/exports/router/index.d.ts.map +1 -0
  354. package/dist/types/hooks/useCollectionOptions.d.ts +3 -3
  355. package/dist/types/hooks/useCollectionOptions.d.ts.map +1 -1
  356. package/dist/types/index.d.ts +1 -1
  357. package/dist/types/index.d.ts.map +1 -1
  358. package/dist/types/state/DropdownCollectionFilterState.d.ts +2 -0
  359. package/dist/types/state/DropdownCollectionFilterState.d.ts.map +1 -1
  360. package/dist/types/state/EntityPage/EntityPageState.d.ts.map +1 -1
  361. package/dist/types/state/FormPage/FormPageHeader.st.css.d.ts.map +1 -1
  362. package/dist/types/state/KanbanState/KanbanStageState.d.ts +9 -1
  363. package/dist/types/state/KanbanState/KanbanStageState.d.ts.map +1 -1
  364. package/dist/types/state/KanbanState/KanbanState.d.ts +36 -12
  365. package/dist/types/state/KanbanState/KanbanState.d.ts.map +1 -1
  366. package/dist/types/testkit/enzyme.d.ts +40 -0
  367. package/dist/types/testkit/enzyme.d.ts.map +1 -1
  368. package/dist/types/testkit/jsdom.d.ts +65 -0
  369. package/dist/types/testkit/jsdom.d.ts.map +1 -1
  370. package/dist/types/testkit/playwright.d.ts +40 -0
  371. package/dist/types/testkit/playwright.d.ts.map +1 -1
  372. package/dist/types/testkit/puppeteer.d.ts +65 -0
  373. package/dist/types/testkit/puppeteer.d.ts.map +1 -1
  374. package/dist/types/version.d.ts +1 -1
  375. package/package.json +11 -6
  376. package/router/package.json +6 -0
  377. package/dist/cjs/components/GridSections/GridSectionHeader.uni.driver.js +0 -12
  378. package/dist/cjs/components/GridSections/GridSectionHeader.uni.driver.js.map +0 -1
  379. package/dist/cjs/components/GridSections/GridSectionHeaderActionBar.js.map +0 -1
  380. package/dist/esm/components/GridSections/GridSectionHeader.uni.driver.js.map +0 -1
  381. package/dist/esm/components/GridSections/GridSectionHeaderActionBar.js +0 -16
  382. package/dist/esm/components/GridSections/GridSectionHeaderActionBar.js.map +0 -1
  383. package/dist/types/components/GridSections/GridSectionHeader.uni.driver.d.ts.map +0 -1
  384. package/dist/types/components/GridSections/GridSectionHeaderActionBar.d.ts +0 -10
  385. package/dist/types/components/GridSections/GridSectionHeaderActionBar.d.ts.map +0 -1
@@ -13,6 +13,7 @@ class KanbanStageState {
13
13
  (0, _defineProperty2.default)(this, "name", void 0);
14
14
  (0, _defineProperty2.default)(this, "key", void 0);
15
15
  (0, _defineProperty2.default)(this, "stage", void 0);
16
+ (0, _defineProperty2.default)(this, "isRefetching", false);
16
17
  this.container = params.container;
17
18
  this.name = params.name;
18
19
  this.key = params.key;
@@ -29,28 +30,36 @@ class KanbanStageState {
29
30
  itemKey: params.itemKey,
30
31
  itemName: params.itemName,
31
32
  filters: {
32
- ...params.filters,
33
+ ...params.query.filters,
33
34
  stageId: (0, _bexCore.stringFilter)({
34
35
  initialValue: this.key
35
36
  })
36
37
  },
37
38
  initialPage: params.initialPage,
38
- errorHandler: this.container.errorMonitor,
39
- paginationMode: 'cursor'
39
+ errorHandler: this.container.errorHandler,
40
+ paginationMode: 'cursor',
41
+ search: params.query.search
40
42
  });
41
43
  new _bexCore.CollectionOptimisticActions({
42
44
  collection: this.itemsCollectionState,
43
45
  container: this.container
44
46
  });
45
47
  (0, _mobx.makeObservable)(this, {
48
+ name: _mobx.observable,
46
49
  fetchMore: _mobx.action,
47
50
  stageName: _mobx.computed,
48
- stageKey: _mobx.computed
51
+ stageKey: _mobx.computed,
52
+ isRefetching: _mobx.observable,
53
+ hasError: _mobx.computed
49
54
  });
50
55
  }
51
56
  init() {
52
57
  this.itemsCollectionState.init();
53
58
  }
59
+ get hasError() {
60
+ var _this$itemsCollection;
61
+ return (_this$itemsCollection = this.itemsCollectionState.result.status) == null ? void 0 : _this$itemsCollection.isError;
62
+ }
54
63
  items() {
55
64
  return this.itemsCollectionState.keyedItems.map(item => item.item);
56
65
  }
@@ -78,6 +87,41 @@ class KanbanStageState {
78
87
  isFetchingMore() {
79
88
  return true;
80
89
  }
90
+ deleteItem(item) {
91
+ this.itemsCollectionState.optimisticActions.deleteOne(item, {
92
+ submit: () => Promise.resolve()
93
+ });
94
+ }
95
+ createItem(item) {
96
+ this.itemsCollectionState.optimisticActions.createOne(item, {
97
+ submit: () => Promise.resolve()
98
+ });
99
+ }
100
+ showErrorToast(error) {
101
+ var _this$container$error, _this$container$error2;
102
+ const resolvedError = (_this$container$error = this.container.errorHandler) == null || _this$container$error.getResolvedError == null ? void 0 : _this$container$error.getResolvedError(error);
103
+ resolvedError && ((_this$container$error2 = this.container.errorHandler) == null || _this$container$error2.showError == null ? void 0 : _this$container$error2.showError(resolvedError));
104
+ }
105
+ updateItem(updatedItem) {
106
+ const allItems = this.itemsCollectionState.result.keyedItems.map(k => k.item);
107
+ const updatedItems = allItems.map(item => this.itemKey(item) === this.itemKey(updatedItem) ? updatedItem : item);
108
+ this.itemsCollectionState.optimisticActions.updateMany(updatedItems, {
109
+ submit: () => Promise.resolve(updatedItems),
110
+ keepPosition: true
111
+ });
112
+ }
113
+ async refetchStage() {
114
+ (0, _mobx.runInAction)(() => {
115
+ this.isRefetching = true;
116
+ });
117
+ try {
118
+ await this.itemsCollectionState.refreshAllPages();
119
+ } finally {
120
+ (0, _mobx.runInAction)(() => {
121
+ this.isRefetching = false;
122
+ });
123
+ }
124
+ }
81
125
  }
82
126
  exports.KanbanStageState = KanbanStageState;
83
127
  //# sourceMappingURL=KanbanStageState.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_bexCore","require","_mobx","KanbanStageState","constructor","params","_defineProperty2","default","container","name","key","stage","itemsCollectionState","CollectionState","errorMonitor","history","lodash","onlineState","queryCache","translate","queryName","fetchData","itemKey","itemName","filters","stageId","stringFilter","initialValue","initialPage","errorHandler","paginationMode","CollectionOptimisticActions","collection","makeObservable","fetchMore","action","stageName","computed","stageKey","init","items","keyedItems","map","item","totalItems","total","isLoading","initTask","status","fetchNextPageIfNeeded","isFetchingMore","exports"],"sources":["../../../../src/state/KanbanState/KanbanStageState.ts"],"sourcesContent":["import {\n FiltersMap,\n WixPatternsContainer,\n DataResultRaw,\n CollectionState,\n CollectionStateParams,\n PatternsErrorHandler,\n stringFilter,\n CollectionOptimisticActions,\n} from '@wix/bex-core';\nimport { action, computed, makeObservable } from 'mobx';\n\nexport interface KanbanStageStateBaseParams<T> {\n readonly container: WixPatternsContainer;\n readonly initialPage?: DataResultRaw<T>;\n readonly name: string;\n readonly key: string;\n}\n\nexport interface KanbanStageStateParams<\n T,\n S,\n F extends FiltersMap & { stageId: ReturnType<typeof stringFilter> },\n> extends KanbanStageStateBaseParams<T> {\n readonly fetchData: CollectionStateParams<T, F>['fetchData'];\n readonly itemKey: CollectionStateParams<T, F>['itemKey'];\n readonly itemName: CollectionStateParams<T, F>['itemName'];\n readonly stage: S;\n}\n\nexport class KanbanStageState<\n T,\n S,\n F extends FiltersMap & { stageId: ReturnType<typeof stringFilter> },\n> {\n readonly container: WixPatternsContainer;\n readonly itemsCollectionState: CollectionState<T, F>;\n name: string;\n readonly key: string;\n readonly stage: S;\n\n constructor(params: KanbanStageStateParams<T, S, F>) {\n this.container = params.container;\n this.name = params.name;\n this.key = params.key;\n this.stage = params.stage;\n this.itemsCollectionState = new CollectionState<T, F>({\n errorMonitor: this.container.errorMonitor,\n history: this.container.history,\n lodash: this.container.lodash,\n onlineState: this.container.onlineState,\n queryCache: this.container.queryCache,\n translate: this.container.translate,\n queryName: `kanban-items-${this.key}`,\n fetchData: params.fetchData,\n itemKey: params.itemKey,\n itemName: params.itemName,\n filters: {\n ...(params as { filters?: F }).filters,\n stageId: stringFilter({ initialValue: this.key }),\n } as F,\n initialPage: params.initialPage,\n errorHandler: this.container\n .errorMonitor as unknown as PatternsErrorHandler,\n paginationMode: 'cursor',\n });\n\n new CollectionOptimisticActions({\n collection: this.itemsCollectionState,\n container: this.container,\n });\n\n makeObservable(this, {\n fetchMore: action,\n stageName: computed,\n stageKey: computed,\n });\n }\n\n init() {\n this.itemsCollectionState.init();\n }\n\n items() {\n return this.itemsCollectionState.keyedItems.map((item: any) => item.item);\n }\n\n itemName(item: T) {\n return this.itemsCollectionState.itemName(item);\n }\n\n itemKey(item: T) {\n return this.itemsCollectionState.itemKey(item);\n }\n\n totalItems() {\n return this.itemsCollectionState.total;\n }\n\n get stageName() {\n return this.name;\n }\n\n get stageKey() {\n return this.key;\n }\n\n isLoading() {\n return this.itemsCollectionState.initTask.status.isLoading;\n }\n\n fetchMore() {\n this.itemsCollectionState.fetchNextPageIfNeeded();\n }\n\n isFetchingMore() {\n return true;\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_bexCore","require","_mobx","KanbanStageState","constructor","params","_defineProperty2","default","container","name","key","stage","itemsCollectionState","CollectionState","errorMonitor","history","lodash","onlineState","queryCache","translate","queryName","fetchData","itemKey","itemName","filters","query","stageId","stringFilter","initialValue","initialPage","errorHandler","paginationMode","search","CollectionOptimisticActions","collection","makeObservable","observable","fetchMore","action","stageName","computed","stageKey","isRefetching","hasError","init","_this$itemsCollection","result","status","isError","items","keyedItems","map","item","totalItems","total","isLoading","initTask","fetchNextPageIfNeeded","isFetchingMore","deleteItem","optimisticActions","deleteOne","submit","Promise","resolve","createItem","createOne","showErrorToast","error","_this$container$error","_this$container$error2","resolvedError","getResolvedError","showError","updateItem","updatedItem","allItems","k","updatedItems","updateMany","keepPosition","refetchStage","runInAction","refreshAllPages","exports"],"sources":["../../../../src/state/KanbanState/KanbanStageState.ts"],"sourcesContent":["import {\n FiltersMap,\n WixPatternsContainer,\n DataResultRaw,\n CollectionState,\n CollectionStateParams,\n stringFilter,\n CollectionOptimisticActions,\n QueryState,\n} from '@wix/bex-core';\nimport {\n action,\n computed,\n makeObservable,\n observable,\n runInAction,\n} from 'mobx';\n\nexport interface KanbanStageStateBaseParams<T> {\n readonly container: WixPatternsContainer;\n readonly initialPage?: DataResultRaw<T>;\n readonly name: string;\n readonly key: string;\n}\n\nexport interface KanbanStageStateParams<\n T,\n S,\n F extends FiltersMap & { stageId: ReturnType<typeof stringFilter> },\n> extends KanbanStageStateBaseParams<T> {\n readonly fetchData: CollectionStateParams<T, F>['fetchData'];\n readonly itemKey: CollectionStateParams<T, F>['itemKey'];\n readonly itemName: CollectionStateParams<T, F>['itemName'];\n readonly stage: S;\n readonly query: QueryState<F>;\n}\n\nexport class KanbanStageState<\n T,\n S,\n F extends FiltersMap & { stageId: ReturnType<typeof stringFilter> },\n> {\n readonly container: WixPatternsContainer;\n readonly itemsCollectionState: CollectionState<T, F>;\n name: string;\n readonly key: string;\n readonly stage: S;\n isRefetching = false;\n constructor(params: KanbanStageStateParams<T, S, F>) {\n this.container = params.container;\n this.name = params.name;\n this.key = params.key;\n this.stage = params.stage;\n this.itemsCollectionState = new CollectionState<T, F>({\n errorMonitor: this.container.errorMonitor,\n history: this.container.history,\n lodash: this.container.lodash,\n onlineState: this.container.onlineState,\n queryCache: this.container.queryCache,\n translate: this.container.translate,\n queryName: `kanban-items-${this.key}`,\n fetchData: params.fetchData,\n itemKey: params.itemKey,\n itemName: params.itemName,\n filters: {\n ...params.query.filters,\n stageId: stringFilter({ initialValue: this.key }),\n },\n initialPage: params.initialPage,\n errorHandler: this.container.errorHandler,\n paginationMode: 'cursor',\n search: params.query.search,\n });\n\n new CollectionOptimisticActions({\n collection: this.itemsCollectionState,\n container: this.container,\n });\n\n makeObservable(this, {\n name: observable,\n fetchMore: action,\n stageName: computed,\n stageKey: computed,\n isRefetching: observable,\n hasError: computed,\n });\n }\n\n init() {\n this.itemsCollectionState.init();\n }\n\n get hasError() {\n return this.itemsCollectionState.result.status?.isError;\n }\n\n items() {\n return this.itemsCollectionState.keyedItems.map((item: any) => item.item);\n }\n\n itemName(item: T) {\n return this.itemsCollectionState.itemName(item);\n }\n\n itemKey(item: T) {\n return this.itemsCollectionState.itemKey(item);\n }\n\n totalItems() {\n return this.itemsCollectionState.total;\n }\n\n get stageName() {\n return this.name;\n }\n\n get stageKey() {\n return this.key;\n }\n\n isLoading() {\n return this.itemsCollectionState.initTask.status.isLoading;\n }\n\n fetchMore() {\n this.itemsCollectionState.fetchNextPageIfNeeded();\n }\n\n isFetchingMore() {\n return true;\n }\n\n deleteItem(item: T) {\n this.itemsCollectionState.optimisticActions.deleteOne(item, {\n submit: () => Promise.resolve(),\n });\n }\n\n createItem(item: T) {\n this.itemsCollectionState.optimisticActions.createOne(item, {\n submit: () => Promise.resolve(),\n });\n }\n\n showErrorToast(error: unknown) {\n const resolvedError =\n this.container.errorHandler?.getResolvedError?.(error);\n resolvedError && this.container.errorHandler?.showError?.(resolvedError);\n }\n\n updateItem(updatedItem: T) {\n const allItems = this.itemsCollectionState.result.keyedItems.map(\n (k) => k.item,\n );\n const updatedItems = allItems.map((item) =>\n this.itemKey(item) === this.itemKey(updatedItem) ? updatedItem : item,\n );\n this.itemsCollectionState.optimisticActions.updateMany(updatedItems, {\n submit: () => Promise.resolve(updatedItems),\n keepPosition: true,\n });\n }\n\n async refetchStage() {\n runInAction(() => {\n this.isRefetching = true;\n });\n try {\n await this.itemsCollectionState.refreshAllPages();\n } finally {\n runInAction(() => {\n this.isRefetching = false;\n });\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -9,35 +9,33 @@ var _ToolbarCollectionState = require("../ToolbarCollectionState");
9
9
  var _KanbanStageState = require("./KanbanStageState");
10
10
  var _mobx = require("mobx");
11
11
  var _KanbanCardDragAndDrop = require("../../components/KanbanDragAndDropDndKit/KanbanCardDragAndDrop");
12
+ var _uuid = require("uuid");
12
13
  class KanbanState {
13
14
  constructor(params) {
14
15
  (0, _defineProperty2.default)(this, "container", void 0);
15
16
  (0, _defineProperty2.default)(this, "kanbanStageStates", {});
16
- // @ts-expect-error
17
17
  (0, _defineProperty2.default)(this, "toolbar", void 0);
18
18
  (0, _defineProperty2.default)(this, "stagesCollectionState", void 0);
19
+ (0, _defineProperty2.default)(this, "toolbarQueryCollectionState", void 0);
19
20
  (0, _defineProperty2.default)(this, "dragAndDropState", void 0);
21
+ (0, _defineProperty2.default)(this, "query", void 0);
22
+ (0, _defineProperty2.default)(this, "debouncedStagesRefresh", void 0);
20
23
  (0, _defineProperty2.default)(this, "items", void 0);
21
24
  (0, _defineProperty2.default)(this, "isRefetching", false);
25
+ (0, _defineProperty2.default)(this, "isChangingFiltersValue", false);
22
26
  this.container = params.container;
23
27
  this.items = params.items;
24
- this.stagesCollectionState = new _bexCore.CollectionState({
25
- errorMonitor: this.container.errorMonitor,
26
- history: this.container.history,
27
- lodash: this.container.lodash,
28
- onlineState: this.container.onlineState,
29
- queryCache: this.container.queryCache,
30
- translate: this.container.translate,
31
- queryName: 'kanban-stages',
32
- fetchData: params.stages.fetchData,
33
- itemKey: params.stages.stageKey,
34
- itemName: params.stages.stageName,
28
+ this.toolbarQueryCollectionState = this.createToolbarQueryCollectionState();
29
+ this.query = new _bexCore.QueryState({
35
30
  filters: {},
36
- errorHandler: this.container.errorMonitor,
37
- paginationMode: 'cursor'
31
+ search: (0, _bexCore.stringFilter)({
32
+ initialValue: ''
33
+ })
38
34
  });
35
+ (0, _bexCore.syncWithSharedQuery)(this.toolbarQueryCollectionState.query, this.query);
36
+ this.stagesCollectionState = this.createStagesCollectionState(params);
39
37
  this.toolbar = new _ToolbarCollectionState.ToolbarCollectionState({
40
- collection: this.stagesCollectionState,
38
+ collection: this.toolbarQueryCollectionState,
41
39
  container: params.container,
42
40
  componentType: 'Kanban',
43
41
  reportBi: this.container.reportBi
@@ -50,15 +48,21 @@ class KanbanState {
50
48
  updateStage: _mobx.action,
51
49
  stages: _mobx.computed,
52
50
  isRefetching: _mobx.observable,
53
- refetchKanban: _mobx.action
51
+ refetchKanban: _mobx.action,
52
+ hasStagesError: _mobx.computed
54
53
  });
54
+ this.debouncedStagesRefresh = this.container.lodash.debounce(() => {
55
+ this.isChangingFiltersValue = false;
56
+ this.initializeStageStates();
57
+ }, 300);
58
+ }
59
+ triggerDebouncedStagesRefresh() {
60
+ this.isChangingFiltersValue = true;
61
+ this.debouncedStagesRefresh();
55
62
  }
56
63
  async init() {
57
- var _this$stagesCollectio;
58
- this.stagesCollectionState.init();
59
- await ((_this$stagesCollectio = this.stagesCollectionState) == null || (_this$stagesCollectio = _this$stagesCollectio.initTask) == null || (_this$stagesCollectio = _this$stagesCollectio.status) == null || (_this$stagesCollectio = _this$stagesCollectio.promise) == null ? void 0 : _this$stagesCollectio.catch(() => {}));
60
- await this.initialAllStages();
61
- this.waitLoadStagesState();
64
+ await this.loadStages();
65
+ await this.initializeStageStates();
62
66
  this.toolbar.init({
63
67
  featuresInitializers: []
64
68
  });
@@ -67,56 +71,32 @@ class KanbanState {
67
71
  collection: this.stagesCollectionState,
68
72
  container: this.container
69
73
  });
74
+ const disposers = [(0, _mobx.reaction)(() => this.query.asComputed, () => {
75
+ this.triggerDebouncedStagesRefresh();
76
+ }, {
77
+ fireImmediately: false
78
+ })];
79
+ return () => {
80
+ disposers.forEach(d => d == null ? void 0 : d());
81
+ };
82
+ }
83
+ async loadStages() {
84
+ var _this$stagesCollectio;
85
+ this.stagesCollectionState.init();
86
+ await ((_this$stagesCollectio = this.stagesCollectionState) == null || (_this$stagesCollectio = _this$stagesCollectio.initTask) == null || (_this$stagesCollectio = _this$stagesCollectio.status) == null || (_this$stagesCollectio = _this$stagesCollectio.promise) == null ? void 0 : _this$stagesCollectio.catch(error => {
87
+ this.showErrorToast(error);
88
+ }));
70
89
  }
71
- async initialAllStages() {
90
+ async initializeStageStates() {
72
91
  if (!this.items.fetchAllByStageIds) {
73
92
  return;
74
93
  }
75
- const data = await this.items.fetchAllByStageIds({
76
- ids: this.stagesCollectionState.result.keyedItems.map(item => this.stagesCollectionState.itemKey(item.item)),
77
- filter: {}
78
- });
79
- this.stagesCollectionState.result.keyedItems.forEach(stage => {
80
- (0, _mobx.runInAction)(() => {
81
- const stageId = this.stagesCollectionState.itemKey(stage.item);
82
- const hasDataForStage = !!data[stageId];
83
- if (!this.kanbanStageStates[stageId]) {
84
- var _data$stageId, _data$stageId2, _data$stageId3;
85
- this.kanbanStageStates[stageId] = new _KanbanStageState.KanbanStageState({
86
- container: this.container,
87
- fetchData: this.items.fetchData,
88
- itemKey: this.items.itemKey,
89
- itemName: this.items.itemName,
90
- initialPage: hasDataForStage ? {
91
- items: (_data$stageId = data[stageId]) == null ? void 0 : _data$stageId.items,
92
- total: (_data$stageId2 = data[stageId]) == null ? void 0 : _data$stageId2.total,
93
- cursor: (_data$stageId3 = data[stageId]) == null ? void 0 : _data$stageId3.cursor
94
- } : undefined,
95
- name: this.stagesCollectionState.itemName(stage.item),
96
- key: this.stagesCollectionState.itemKey(stage.item),
97
- stage: stage.item
98
- });
99
- } else {
100
- this.kanbanStageStates[stageId].itemsCollectionState.clearResultAndMoveToStart();
101
- this.kanbanStageStates[stageId].name = this.stagesCollectionState.itemName(stage.item);
102
- if (hasDataForStage) {
103
- var _data$stageId4, _data$stageId5, _data$stageId6;
104
- this.kanbanStageStates[stageId].itemsCollectionState.setInitialPage({
105
- items: (_data$stageId4 = data[stageId]) == null ? void 0 : _data$stageId4.items,
106
- total: (_data$stageId5 = data[stageId]) == null ? void 0 : _data$stageId5.total,
107
- cursor: (_data$stageId6 = data[stageId]) == null ? void 0 : _data$stageId6.cursor
108
- });
109
- } else {
110
- this.kanbanStageStates[stageId].itemsCollectionState.clearResultAndMoveToStart();
111
- }
112
- }
113
- });
114
- });
115
- }
116
- waitLoadStagesState() {
117
- Object.entries(this.kanbanStageStates).forEach(([, stageState]) => {
118
- stageState.init();
119
- });
94
+ try {
95
+ const stageData = await this.fetchStagesData();
96
+ this.processAllStages(stageData);
97
+ } catch (error) {
98
+ this.showErrorToast(error);
99
+ }
120
100
  }
121
101
  get stages() {
122
102
  return this.stagesCollectionState.result.keyedItems.map(item => item.item);
@@ -128,19 +108,31 @@ class KanbanState {
128
108
  return this.kanbanStageStates[stageKey];
129
109
  }
130
110
  isLoading() {
131
- return this.stagesCollectionState.initTask.status.isLoading || this.isRefetching || Object.keys(this.kanbanStageStates).length !== this.stagesCollectionState.result.keyedItems.length || Object.values(this.kanbanStageStates).some(stage => stage.isLoading());
111
+ return this.isLoadingStages() || Object.values(this.kanbanStageStates).some(stage => stage.isLoading());
112
+ }
113
+ isLoadingStages() {
114
+ return this.stagesCollectionState.initTask.status.isLoading || this.isRefetching || Object.keys(this.kanbanStageStates).length !== this.stagesCollectionState.result.keyedItems.length;
115
+ }
116
+ isInSearchMode() {
117
+ var _this$query$asCompute;
118
+ return ((_this$query$asCompute = this.query.asComputed.search) == null ? void 0 : _this$query$asCompute.length) && this.query.asComputed.search.length > 0;
119
+ }
120
+ getIsChangingFiltersValue() {
121
+ return this.isChangingFiltersValue;
132
122
  }
133
123
  stageKey(stage) {
134
124
  return this.stagesCollectionState.itemKey(stage);
135
125
  }
136
- updateStage(originalStage, updatedStage) {
137
- this.stagesCollectionState.optimisticActions.updateOne(originalStage, {
138
- submit: () => {
139
- return Promise.resolve(updatedStage);
140
- },
141
- keepPosition: true
142
- });
126
+ moveItemBetweenStages(item, fromStageId, toStageId) {
127
+ this.getStageStateByKey(fromStageId).deleteItem(item);
128
+ this.getStageStateByKey(toStageId).createItem(item);
129
+ }
130
+ get hasStagesError() {
131
+ var _this$stagesCollectio2;
132
+ return (_this$stagesCollectio2 = this.stagesCollectionState.result.status) == null ? void 0 : _this$stagesCollectio2.isError;
143
133
  }
134
+
135
+ // Public methods
144
136
  async refetchKanban() {
145
137
  (0, _mobx.runInAction)(() => {
146
138
  this.isRefetching = true;
@@ -148,14 +140,200 @@ class KanbanState {
148
140
  try {
149
141
  await this.stagesCollectionState.clearResultBeforeRefresh();
150
142
  await this.stagesCollectionState.refreshAllPages();
151
- await this.initialAllStages();
152
- this.waitLoadStagesState();
143
+ await this.initializeStageStates();
153
144
  } finally {
154
145
  (0, _mobx.runInAction)(() => {
155
146
  this.isRefetching = false;
156
147
  });
157
148
  }
158
149
  }
150
+
151
+ // Private methods
152
+ showErrorToast(error) {
153
+ var _this$container$error, _this$container$error2;
154
+ const resolvedError = (_this$container$error = this.container.errorHandler) == null || _this$container$error.getResolvedError == null ? void 0 : _this$container$error.getResolvedError(error);
155
+ resolvedError && ((_this$container$error2 = this.container.errorHandler) == null || _this$container$error2.showError == null ? void 0 : _this$container$error2.showError(resolvedError));
156
+ }
157
+ createToolbarQueryCollectionState() {
158
+ return new _bexCore.CollectionState({
159
+ errorMonitor: this.container.errorMonitor,
160
+ history: this.container.history,
161
+ lodash: this.container.lodash,
162
+ onlineState: this.container.onlineState,
163
+ queryCache: this.container.queryCache,
164
+ translate: this.container.translate,
165
+ queryName: 'kanban-toolbar-query-items',
166
+ fetchData: () => Promise.resolve({
167
+ items: [],
168
+ total: 0,
169
+ cursor: null
170
+ }),
171
+ itemKey: () => '',
172
+ itemName: () => '',
173
+ filters: {},
174
+ errorHandler: this.container.errorHandler,
175
+ paginationMode: 'cursor'
176
+ });
177
+ }
178
+ createStagesCollectionState(params) {
179
+ return new _bexCore.CollectionState({
180
+ errorMonitor: this.container.errorMonitor,
181
+ history: this.container.history,
182
+ lodash: this.container.lodash,
183
+ onlineState: this.container.onlineState,
184
+ queryCache: this.container.queryCache,
185
+ translate: this.container.translate,
186
+ queryName: 'kanban-stages',
187
+ fetchData: params.stages.fetchData,
188
+ itemKey: params.stages.stageKey,
189
+ itemName: params.stages.stageName,
190
+ filters: {},
191
+ errorHandler: this.container.errorHandler,
192
+ paginationMode: 'cursor'
193
+ });
194
+ }
195
+ async fetchStagesData() {
196
+ const stageIds = this.getStageIds();
197
+ return this.items.fetchAllByStageIds({
198
+ ids: stageIds,
199
+ filters: this.query.asComputed.filters,
200
+ search: this.query.asComputed.search
201
+ });
202
+ }
203
+ getStageIds() {
204
+ return this.stagesCollectionState.result.keyedItems.map(item => this.stagesCollectionState.itemKey(item.item));
205
+ }
206
+ processAllStages(stageData) {
207
+ this.stagesCollectionState.result.keyedItems.forEach(keyedStage => {
208
+ const stage = keyedStage.item;
209
+ (0, _mobx.runInAction)(() => {
210
+ const stageId = this.stagesCollectionState.itemKey(stage);
211
+ const hasDataForStage = !!stageData[stageId];
212
+ if (!this.kanbanStageStates[stageId]) {
213
+ this.createNewStageState(stage, stageId, stageData[stageId], hasDataForStage);
214
+ } else {
215
+ this.updateExistingStageState(stage, stageId, stageData[stageId], hasDataForStage);
216
+ }
217
+ });
218
+ });
219
+ }
220
+ createNewStageState(stage, stageId, stageData, hasDataForStage) {
221
+ this.kanbanStageStates[stageId] = new _KanbanStageState.KanbanStageState({
222
+ container: this.container,
223
+ fetchData: this.items.fetchData,
224
+ itemKey: this.items.itemKey,
225
+ itemName: this.items.itemName,
226
+ initialPage: hasDataForStage ? this.getInitialPageData(stageData) : undefined,
227
+ name: this.stagesCollectionState.itemName(stage),
228
+ key: this.stagesCollectionState.itemKey(stage),
229
+ stage,
230
+ query: this.query
231
+ });
232
+ this.kanbanStageStates[stageId].init();
233
+ }
234
+ updateExistingStageState(stage, stageId, stageData, hasDataForStage) {
235
+ const stageState = this.kanbanStageStates[stageId];
236
+ stageState.name = this.stagesCollectionState.itemName(stage);
237
+ (0, _mobx.runInAction)(() => {
238
+ const initialPageData = this.getInitialPageData(hasDataForStage ? stageData : {
239
+ items: [],
240
+ total: 0,
241
+ cursor: null
242
+ });
243
+ stageState.itemsCollectionState.setInitialPage(initialPageData);
244
+
245
+ // Directly update QueryResultState to trigger MobX reactivity for keyedItems
246
+ const items = initialPageData.items || [];
247
+ const total = initialPageData.total ?? items.length;
248
+ const cursor = initialPageData.cursor;
249
+ stageState.itemsCollectionState.result.setPages({
250
+ processed: [items],
251
+ unprocessed: [items]
252
+ });
253
+ stageState.itemsCollectionState.result.setTotals({
254
+ processed: total,
255
+ unprocessed: total
256
+ });
257
+ if (cursor != null) {
258
+ stageState.itemsCollectionState.paginationMode.setCursor(cursor);
259
+ }
260
+ });
261
+ }
262
+ getInitialPageData(stageData) {
263
+ return {
264
+ items: stageData == null ? void 0 : stageData.items,
265
+ total: stageData == null ? void 0 : stageData.total,
266
+ cursor: stageData == null ? void 0 : stageData.cursor
267
+ };
268
+ }
269
+
270
+ // optimistic actions
271
+
272
+ updateStage(originalStage, updatedStage) {
273
+ const stageId = this.stagesCollectionState.itemKey(originalStage);
274
+ const stageState = this.getStageStateByKey(stageId);
275
+ this.stagesCollectionState.optimisticActions.updateOne(originalStage, {
276
+ submit: () => Promise.resolve(updatedStage),
277
+ keepPosition: true
278
+ });
279
+ (0, _mobx.runInAction)(() => {
280
+ if (stageState.name !== this.stagesCollectionState.itemName(updatedStage)) {
281
+ stageState.name = this.stagesCollectionState.itemName(updatedStage);
282
+ }
283
+ stageState.refetchStage();
284
+ });
285
+ }
286
+ createStage(stage) {
287
+ this.stagesCollectionState.optimisticActions.createOne(stage, {
288
+ submit: _items => Promise.resolve()
289
+ });
290
+ (0, _mobx.runInAction)(() => {
291
+ const stageId = this.stagesCollectionState.itemKey(stage);
292
+ this.createNewStageState(stage, stageId, {
293
+ items: [],
294
+ total: 0,
295
+ cursor: null
296
+ }, false);
297
+ });
298
+ }
299
+ deleteStage(stage) {
300
+ const stageId = this.stagesCollectionState.itemKey(stage);
301
+ this.stagesCollectionState.optimisticActions.deleteOne(stage, {
302
+ submit: _items => Promise.resolve()
303
+ });
304
+ (0, _mobx.runInAction)(() => {
305
+ Reflect.deleteProperty(this.kanbanStageStates, stageId);
306
+ });
307
+ }
308
+ reorderStages(fromIndex, toIndex) {
309
+ const keyedItems = this.stagesCollectionState.result.keyedItems;
310
+ if (fromIndex === toIndex) {
311
+ return;
312
+ }
313
+ const from = keyedItems[fromIndex];
314
+ const over = keyedItems[toIndex];
315
+ let after;
316
+ if (toIndex === 0) {
317
+ after = null;
318
+ } else if (fromIndex < toIndex) {
319
+ after = over;
320
+ } else {
321
+ after = keyedItems[toIndex - 1];
322
+ }
323
+ const actionMove = {
324
+ moveId: (0, _uuid.v4)(),
325
+ from,
326
+ over,
327
+ after,
328
+ isFromHandle: false,
329
+ filtersKeyHash: this.stagesCollectionState.query.filtersKeyHash,
330
+ query: this.stagesCollectionState.originQuery
331
+ };
332
+ this.stagesCollectionState.optimisticActions._orderByMode = 'moves';
333
+ this.stagesCollectionState.optimisticActions.move(actionMove, {
334
+ collectionSnapshot: {}
335
+ });
336
+ }
159
337
  }
160
338
  exports.KanbanState = KanbanState;
161
339
  //# sourceMappingURL=KanbanState.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_bexCore","require","_ToolbarCollectionState","_KanbanStageState","_mobx","_KanbanCardDragAndDrop","KanbanState","constructor","params","_defineProperty2","default","container","items","stagesCollectionState","CollectionState","errorMonitor","history","lodash","onlineState","queryCache","translate","queryName","fetchData","stages","itemKey","stageKey","itemName","stageName","filters","errorHandler","paginationMode","toolbar","ToolbarCollectionState","collection","componentType","reportBi","dragAndDropState","KanbanDragAndDropState","kanbanState","makeObservable","kanbanStageStates","observable","updateStage","action","computed","isRefetching","refetchKanban","init","_this$stagesCollectio","initTask","status","promise","catch","initialAllStages","waitLoadStagesState","featuresInitializers","CollectionOptimisticActions","fetchAllByStageIds","data","ids","result","keyedItems","map","item","filter","forEach","stage","runInAction","stageId","hasDataForStage","_data$stageId","_data$stageId2","_data$stageId3","KanbanStageState","initialPage","total","cursor","undefined","name","key","itemsCollectionState","clearResultAndMoveToStart","_data$stageId4","_data$stageId5","_data$stageId6","setInitialPage","Object","entries","stageState","getStageState","getStageStateByKey","isLoading","keys","length","values","some","originalStage","updatedStage","optimisticActions","updateOne","submit","Promise","resolve","keepPosition","clearResultBeforeRefresh","refreshAllPages","exports"],"sources":["../../../../src/state/KanbanState/KanbanState.ts"],"sourcesContent":["import {\n CollectionState,\n CollectionStateParams,\n DataResultRaw,\n FiltersMap,\n OptionalFiltersMap,\n WixPatternsContainer,\n stringFilter,\n CollectionOptimisticActions,\n} from '@wix/bex-core';\nimport { ICollectionComponentState } from '../ICollectionComponentState';\nimport { ToolbarCollectionState } from '../ToolbarCollectionState';\nimport { KanbanDragEndItemEvent } from './KanbanDragEndEvent';\nimport { KanbanStageState } from './KanbanStageState';\nimport {\n observable,\n makeObservable,\n runInAction,\n action,\n computed,\n} from 'mobx';\nimport { KanbanDragAndDropState } from '../../components/KanbanDragAndDropDndKit/KanbanCardDragAndDrop';\n\nexport type stageType = 'DONE' | 'NONE';\n\nexport interface KanbanStateBaseParams<\n T,\n S,\n F extends FiltersMap = OptionalFiltersMap,\n> {\n stages: {\n fetchData: CollectionStateParams<S, F>['fetchData'];\n stageKey: CollectionStateParams<S, F>['itemKey'];\n stageName: CollectionStateParams<S, F>['itemName'];\n stageType?(stage: S): stageType;\n };\n items: {\n fetchData: CollectionStateParams<T, F>['fetchData'];\n itemKey: CollectionStateParams<T, F>['itemKey'];\n itemName: CollectionStateParams<T, F>['itemName'];\n fetchAllByStageIds?: ({\n ids,\n filter,\n }: {\n ids: string[];\n filter: F;\n }) => Promise<Record<string, DataResultRaw<T>>>;\n dragAndDrop?: {\n onSubmit?: (event: KanbanDragEndItemEvent<T>) => Promise<T>;\n };\n };\n}\n\nexport interface KanbanStateParams<\n T,\n S,\n F extends FiltersMap = OptionalFiltersMap,\n> extends KanbanStateBaseParams<T, S, F> {\n readonly container: WixPatternsContainer;\n}\n\nexport interface KanbanStateParamsAPI {\n readonly toolbar: ToolbarCollectionState<unknown, {}>;\n}\n\nexport class KanbanState<T, S, F extends FiltersMap = OptionalFiltersMap>\n implements ICollectionComponentState, KanbanStateParamsAPI\n{\n readonly container: any;\n kanbanStageStates: Record<\n string,\n KanbanStageState<T, S, F & { stageId: ReturnType<typeof stringFilter> }>\n > = {};\n // @ts-expect-error\n readonly toolbar: ToolbarCollectionState<S, F>;\n readonly stagesCollectionState: CollectionState<S, F>;\n readonly dragAndDropState: KanbanDragAndDropState<\n T,\n S,\n F & { stageId: ReturnType<typeof stringFilter> }\n >;\n items: KanbanStateBaseParams<T, S, F>['items'];\n isRefetching = false;\n\n constructor(params: KanbanStateParams<T, S, F>) {\n this.container = params.container;\n this.items = params.items;\n this.stagesCollectionState = new CollectionState<S, F>({\n errorMonitor: this.container.errorMonitor,\n history: this.container.history,\n lodash: this.container.lodash,\n onlineState: this.container.onlineState,\n queryCache: this.container.queryCache,\n translate: this.container.translate,\n queryName: 'kanban-stages',\n fetchData: params.stages.fetchData,\n itemKey: params.stages.stageKey,\n itemName: params.stages.stageName,\n filters: {} as F,\n errorHandler: this.container.errorMonitor,\n paginationMode: 'cursor',\n });\n\n this.toolbar = new ToolbarCollectionState({\n collection: this.stagesCollectionState,\n container: params.container,\n componentType: 'Kanban',\n reportBi: this.container.reportBi,\n });\n\n this.dragAndDropState = new KanbanDragAndDropState({\n kanbanState: this as any,\n });\n\n makeObservable(this, {\n kanbanStageStates: observable,\n updateStage: action,\n stages: computed,\n isRefetching: observable,\n refetchKanban: action,\n });\n }\n\n async init() {\n this.stagesCollectionState.init();\n await this.stagesCollectionState?.initTask?.status?.promise?.catch(\n () => {},\n );\n await this.initialAllStages();\n this.waitLoadStagesState();\n this.toolbar.init({ featuresInitializers: [] });\n this.dragAndDropState.init();\n new CollectionOptimisticActions({\n collection: this.stagesCollectionState,\n container: this.container,\n });\n }\n\n async initialAllStages() {\n if (!this.items.fetchAllByStageIds) {\n return;\n }\n\n const data = await this.items.fetchAllByStageIds({\n ids: this.stagesCollectionState.result.keyedItems.map((item) =>\n this.stagesCollectionState.itemKey(item.item),\n ),\n filter: {} as any,\n });\n\n this.stagesCollectionState.result.keyedItems.forEach((stage) => {\n runInAction(() => {\n const stageId = this.stagesCollectionState.itemKey(stage.item);\n const hasDataForStage = !!data[stageId];\n if (!this.kanbanStageStates[stageId]) {\n this.kanbanStageStates[stageId] = new KanbanStageState<\n T,\n S,\n F & { stageId: ReturnType<typeof stringFilter> }\n >({\n container: this.container,\n fetchData: this.items.fetchData,\n itemKey: this.items.itemKey,\n itemName: this.items.itemName,\n initialPage: hasDataForStage\n ? {\n items: data[stageId]?.items,\n total: data[stageId]?.total,\n cursor: data[stageId]?.cursor,\n }\n : undefined,\n name: this.stagesCollectionState.itemName(stage.item),\n key: this.stagesCollectionState.itemKey(stage.item),\n stage: stage.item,\n });\n } else {\n this.kanbanStageStates[\n stageId\n ].itemsCollectionState.clearResultAndMoveToStart();\n this.kanbanStageStates[stageId].name =\n this.stagesCollectionState.itemName(stage.item);\n if (hasDataForStage) {\n this.kanbanStageStates[stageId].itemsCollectionState.setInitialPage(\n {\n items: data[stageId]?.items,\n total: data[stageId]?.total,\n cursor: data[stageId]?.cursor,\n },\n );\n } else {\n this.kanbanStageStates[\n stageId\n ].itemsCollectionState.clearResultAndMoveToStart();\n }\n }\n });\n });\n }\n\n waitLoadStagesState() {\n Object.entries(this.kanbanStageStates).forEach(([, stageState]) => {\n stageState.init();\n });\n }\n\n get stages() {\n return this.stagesCollectionState.result.keyedItems.map(\n (item: any) => item.item,\n );\n }\n\n getStageState(stage: S) {\n return this.kanbanStageStates[this.stagesCollectionState.itemKey(stage)];\n }\n\n getStageStateByKey(stageKey: string) {\n return this.kanbanStageStates[stageKey];\n }\n\n isLoading() {\n return (\n this.stagesCollectionState.initTask.status.isLoading ||\n this.isRefetching ||\n Object.keys(this.kanbanStageStates).length !==\n this.stagesCollectionState.result.keyedItems.length ||\n Object.values(this.kanbanStageStates).some((stage) => stage.isLoading())\n );\n }\n\n stageKey(stage: S) {\n return this.stagesCollectionState.itemKey(stage);\n }\n\n updateStage(originalStage: S, updatedStage: S) {\n this.stagesCollectionState.optimisticActions.updateOne(originalStage, {\n submit: () => {\n return Promise.resolve(updatedStage);\n },\n keepPosition: true,\n });\n }\n\n async refetchKanban() {\n runInAction(() => {\n this.isRefetching = true;\n });\n try {\n await this.stagesCollectionState.clearResultBeforeRefresh();\n await this.stagesCollectionState.refreshAllPages();\n await this.initialAllStages();\n this.waitLoadStagesState();\n } finally {\n runInAction(() => {\n this.isRefetching = false;\n });\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_bexCore","require","_ToolbarCollectionState","_KanbanStageState","_mobx","_KanbanCardDragAndDrop","_uuid","KanbanState","constructor","params","_defineProperty2","default","container","items","toolbarQueryCollectionState","createToolbarQueryCollectionState","query","QueryState","filters","search","stringFilter","initialValue","syncWithSharedQuery","stagesCollectionState","createStagesCollectionState","toolbar","ToolbarCollectionState","collection","componentType","reportBi","dragAndDropState","KanbanDragAndDropState","kanbanState","makeObservable","kanbanStageStates","observable","updateStage","action","stages","computed","isRefetching","refetchKanban","hasStagesError","debouncedStagesRefresh","lodash","debounce","isChangingFiltersValue","initializeStageStates","triggerDebouncedStagesRefresh","init","loadStages","featuresInitializers","CollectionOptimisticActions","disposers","reaction","asComputed","fireImmediately","forEach","d","_this$stagesCollectio","initTask","status","promise","catch","error","showErrorToast","fetchAllByStageIds","stageData","fetchStagesData","processAllStages","result","keyedItems","map","item","getStageState","stage","itemKey","getStageStateByKey","stageKey","isLoading","isLoadingStages","Object","values","some","keys","length","isInSearchMode","_this$query$asCompute","getIsChangingFiltersValue","moveItemBetweenStages","fromStageId","toStageId","deleteItem","createItem","_this$stagesCollectio2","isError","runInAction","clearResultBeforeRefresh","refreshAllPages","_this$container$error","_this$container$error2","resolvedError","errorHandler","getResolvedError","showError","CollectionState","errorMonitor","history","onlineState","queryCache","translate","queryName","fetchData","Promise","resolve","total","cursor","itemName","paginationMode","stageName","stageIds","getStageIds","ids","keyedStage","stageId","hasDataForStage","createNewStageState","updateExistingStageState","KanbanStageState","initialPage","getInitialPageData","undefined","name","key","stageState","initialPageData","itemsCollectionState","setInitialPage","setPages","processed","unprocessed","setTotals","setCursor","originalStage","updatedStage","optimisticActions","updateOne","submit","keepPosition","refetchStage","createStage","createOne","_items","deleteStage","deleteOne","Reflect","deleteProperty","reorderStages","fromIndex","toIndex","from","over","after","actionMove","moveId","uuid","isFromHandle","filtersKeyHash","originQuery","_orderByMode","move","collectionSnapshot","exports"],"sources":["../../../../src/state/KanbanState/KanbanState.ts"],"sourcesContent":["import {\n CollectionState,\n CollectionStateParams,\n DataResultRaw,\n FiltersMap,\n OptionalFiltersMap,\n WixPatternsContainer,\n stringFilter,\n CollectionOptimisticActions,\n QueryState,\n syncWithSharedQuery,\n ComputedQuery,\n} from '@wix/bex-core';\nimport { ICollectionComponentState } from '../ICollectionComponentState';\nimport { ToolbarCollectionState } from '../ToolbarCollectionState';\nimport { KanbanDragEndItemEvent } from './KanbanDragEndEvent';\nimport { KanbanStageState } from './KanbanStageState';\nimport {\n observable,\n makeObservable,\n runInAction,\n action,\n computed,\n reaction,\n} from 'mobx';\nimport { KanbanDragAndDropState } from '../../components/KanbanDragAndDropDndKit/KanbanCardDragAndDrop';\nimport { v4 as uuid } from 'uuid';\n\nexport type stageType = 'DONE' | 'NONE';\n\nexport interface KanbanStateBaseParams<\n T,\n S,\n F extends FiltersMap = OptionalFiltersMap,\n> {\n stages: {\n fetchData: CollectionStateParams<S, F>['fetchData'];\n stageKey: CollectionStateParams<S, F>['itemKey'];\n stageName: CollectionStateParams<S, F>['itemName'];\n stageType?(stage: S): stageType;\n };\n items: {\n fetchData: CollectionStateParams<T, F>['fetchData'];\n itemKey: CollectionStateParams<T, F>['itemKey'];\n itemName: CollectionStateParams<T, F>['itemName'];\n stageField: string;\n fetchAllByStageIds?: (params: {\n ids: string[];\n filters: ComputedQuery<F>['filters'];\n search?: ComputedQuery<F>['search'];\n }) => Promise<Record<string, DataResultRaw<T>>>;\n dragAndDrop?: {\n onSubmit?: (event: KanbanDragEndItemEvent<T>) => Promise<T>;\n };\n };\n}\n\nexport interface KanbanStateParams<\n T,\n S,\n F extends FiltersMap = OptionalFiltersMap,\n> extends KanbanStateBaseParams<T, S, F> {\n readonly container: WixPatternsContainer;\n}\n\nexport interface KanbanStateParamsAPI<\n T,\n F extends FiltersMap = OptionalFiltersMap,\n> {\n readonly toolbar: ToolbarCollectionState<T, F>;\n}\n\nexport class KanbanState<T, S, F extends FiltersMap = OptionalFiltersMap>\n implements ICollectionComponentState, KanbanStateParamsAPI<T, F>\n{\n readonly container: WixPatternsContainer;\n kanbanStageStates: Record<\n string,\n KanbanStageState<T, S, F & { stageId: ReturnType<typeof stringFilter> }>\n > = {};\n readonly toolbar: ToolbarCollectionState<T, F>;\n readonly stagesCollectionState: CollectionState<S, F>;\n readonly toolbarQueryCollectionState: CollectionState<T, F>;\n readonly dragAndDropState: KanbanDragAndDropState<\n T,\n S,\n F & { stageId: ReturnType<typeof stringFilter> }\n >;\n readonly query: QueryState<F>;\n readonly debouncedStagesRefresh: () => unknown;\n items: KanbanStateBaseParams<T, S, F>['items'];\n isRefetching = false;\n isChangingFiltersValue = false;\n\n constructor(params: KanbanStateParams<T, S, F>) {\n this.container = params.container;\n this.items = params.items;\n this.toolbarQueryCollectionState = this.createToolbarQueryCollectionState();\n this.query = new QueryState({\n filters: {} as F,\n search: stringFilter({ initialValue: '' }),\n });\n\n syncWithSharedQuery(this.toolbarQueryCollectionState.query, this.query);\n\n this.stagesCollectionState = this.createStagesCollectionState(params);\n\n this.toolbar = new ToolbarCollectionState({\n collection: this.toolbarQueryCollectionState,\n container: params.container,\n componentType: 'Kanban',\n reportBi: this.container.reportBi,\n });\n\n this.dragAndDropState = new KanbanDragAndDropState({\n kanbanState: this as any,\n });\n\n makeObservable(this, {\n kanbanStageStates: observable,\n updateStage: action,\n stages: computed,\n isRefetching: observable,\n refetchKanban: action,\n hasStagesError: computed,\n });\n\n this.debouncedStagesRefresh = this.container.lodash.debounce(() => {\n this.isChangingFiltersValue = false;\n this.initializeStageStates();\n }, 300);\n }\n\n triggerDebouncedStagesRefresh() {\n this.isChangingFiltersValue = true;\n this.debouncedStagesRefresh();\n }\n\n async init() {\n await this.loadStages();\n await this.initializeStageStates();\n this.toolbar.init({ featuresInitializers: [] });\n this.dragAndDropState.init();\n new CollectionOptimisticActions({\n collection: this.stagesCollectionState,\n container: this.container,\n });\n\n const disposers = [\n reaction(\n () => this.query.asComputed,\n () => {\n this.triggerDebouncedStagesRefresh();\n },\n {\n fireImmediately: false,\n },\n ),\n ];\n\n return () => {\n disposers.forEach((d) => d?.());\n };\n }\n\n async loadStages() {\n this.stagesCollectionState.init();\n await this.stagesCollectionState?.initTask?.status?.promise?.catch(\n (error) => {\n this.showErrorToast(error);\n },\n );\n }\n\n async initializeStageStates() {\n if (!this.items.fetchAllByStageIds) {\n return;\n }\n try {\n const stageData = await this.fetchStagesData();\n this.processAllStages(stageData);\n } catch (error) {\n this.showErrorToast(error);\n }\n }\n\n get stages() {\n return this.stagesCollectionState.result.keyedItems.map(\n (item: any) => item.item,\n );\n }\n\n getStageState(stage: S) {\n return this.kanbanStageStates[this.stagesCollectionState.itemKey(stage)];\n }\n\n getStageStateByKey(stageKey: string) {\n return this.kanbanStageStates[stageKey];\n }\n\n isLoading() {\n return (\n this.isLoadingStages() ||\n Object.values(this.kanbanStageStates).some((stage) => stage.isLoading())\n );\n }\n\n isLoadingStages() {\n return (\n this.stagesCollectionState.initTask.status.isLoading ||\n this.isRefetching ||\n Object.keys(this.kanbanStageStates).length !==\n this.stagesCollectionState.result.keyedItems.length\n );\n }\n\n isInSearchMode() {\n return (\n this.query.asComputed.search?.length &&\n this.query.asComputed.search.length > 0\n );\n }\n\n getIsChangingFiltersValue() {\n return this.isChangingFiltersValue;\n }\n\n stageKey(stage: S) {\n return this.stagesCollectionState.itemKey(stage);\n }\n\n moveItemBetweenStages(item: T, fromStageId: string, toStageId: string) {\n this.getStageStateByKey(fromStageId).deleteItem(item);\n this.getStageStateByKey(toStageId).createItem(item);\n }\n\n get hasStagesError() {\n return this.stagesCollectionState.result.status?.isError;\n }\n\n // Public methods\n public async refetchKanban() {\n runInAction(() => {\n this.isRefetching = true;\n });\n try {\n await this.stagesCollectionState.clearResultBeforeRefresh();\n await this.stagesCollectionState.refreshAllPages();\n await this.initializeStageStates();\n } finally {\n runInAction(() => {\n this.isRefetching = false;\n });\n }\n }\n\n // Private methods\n showErrorToast(error: unknown) {\n const resolvedError =\n this.container.errorHandler?.getResolvedError?.(error);\n resolvedError && this.container.errorHandler?.showError?.(resolvedError);\n }\n\n private createToolbarQueryCollectionState() {\n return new CollectionState<T, F>({\n errorMonitor: this.container.errorMonitor,\n history: this.container.history,\n lodash: this.container.lodash,\n onlineState: this.container.onlineState,\n queryCache: this.container.queryCache,\n translate: this.container.translate,\n queryName: 'kanban-toolbar-query-items',\n fetchData: () =>\n Promise.resolve({\n items: [],\n total: 0,\n cursor: null,\n }),\n itemKey: () => '',\n itemName: () => '',\n filters: {} as F,\n errorHandler: this.container.errorHandler,\n paginationMode: 'cursor',\n });\n }\n\n private createStagesCollectionState(params: KanbanStateParams<T, S, F>) {\n return new CollectionState<S, F>({\n errorMonitor: this.container.errorMonitor,\n history: this.container.history,\n lodash: this.container.lodash,\n onlineState: this.container.onlineState,\n queryCache: this.container.queryCache,\n translate: this.container.translate,\n queryName: 'kanban-stages',\n fetchData: params.stages.fetchData,\n itemKey: params.stages.stageKey,\n itemName: params.stages.stageName,\n filters: {} as F,\n errorHandler: this.container.errorHandler,\n paginationMode: 'cursor',\n });\n }\n\n private async fetchStagesData() {\n const stageIds = this.getStageIds();\n\n return this.items.fetchAllByStageIds!({\n ids: stageIds,\n filters: this.query.asComputed.filters,\n search: this.query.asComputed.search,\n });\n }\n\n private getStageIds(): string[] {\n return this.stagesCollectionState.result.keyedItems.map((item) =>\n this.stagesCollectionState.itemKey(item.item),\n );\n }\n\n private processAllStages(stageData: Record<string, DataResultRaw<T>>) {\n this.stagesCollectionState.result.keyedItems.forEach((keyedStage) => {\n const stage = keyedStage.item;\n runInAction(() => {\n const stageId = this.stagesCollectionState.itemKey(stage);\n const hasDataForStage = !!stageData[stageId];\n\n if (!this.kanbanStageStates[stageId]) {\n this.createNewStageState(\n stage,\n stageId,\n stageData[stageId],\n hasDataForStage,\n );\n } else {\n this.updateExistingStageState(\n stage,\n stageId,\n stageData[stageId],\n hasDataForStage,\n );\n }\n });\n });\n }\n\n private createNewStageState(\n stage: S,\n stageId: string,\n stageData: DataResultRaw<T>,\n hasDataForStage: boolean,\n ) {\n this.kanbanStageStates[stageId] = new KanbanStageState<\n T,\n S,\n F & { stageId: ReturnType<typeof stringFilter> }\n >({\n container: this.container,\n fetchData: this.items.fetchData,\n itemKey: this.items.itemKey,\n itemName: this.items.itemName,\n initialPage: hasDataForStage\n ? this.getInitialPageData(stageData)\n : undefined,\n name: this.stagesCollectionState.itemName(stage),\n key: this.stagesCollectionState.itemKey(stage),\n stage,\n query: this.query as any,\n });\n this.kanbanStageStates[stageId].init();\n }\n\n private updateExistingStageState(\n stage: S,\n stageId: string,\n stageData: DataResultRaw<T>,\n hasDataForStage: boolean,\n ) {\n const stageState = this.kanbanStageStates[stageId];\n stageState.name = this.stagesCollectionState.itemName(stage);\n\n runInAction(() => {\n const initialPageData = this.getInitialPageData(\n hasDataForStage\n ? stageData\n : {\n items: [],\n total: 0,\n cursor: null,\n },\n );\n\n stageState.itemsCollectionState.setInitialPage(initialPageData);\n\n // Directly update QueryResultState to trigger MobX reactivity for keyedItems\n const items = initialPageData.items || [];\n const total = initialPageData.total ?? items.length;\n const cursor = initialPageData.cursor;\n\n stageState.itemsCollectionState.result.setPages({\n processed: [items],\n unprocessed: [items],\n });\n\n stageState.itemsCollectionState.result.setTotals({\n processed: total,\n unprocessed: total,\n });\n\n if (cursor != null) {\n stageState.itemsCollectionState.paginationMode.setCursor(cursor);\n }\n });\n }\n\n private getInitialPageData(stageData: DataResultRaw<T>) {\n return {\n items: stageData?.items,\n total: stageData?.total,\n cursor: stageData?.cursor,\n };\n }\n\n // optimistic actions\n\n updateStage(originalStage: S, updatedStage: S) {\n const stageId = this.stagesCollectionState.itemKey(originalStage);\n const stageState = this.getStageStateByKey(stageId);\n\n this.stagesCollectionState.optimisticActions.updateOne(originalStage, {\n submit: () => Promise.resolve(updatedStage),\n keepPosition: true,\n });\n runInAction(() => {\n if (\n stageState.name !== this.stagesCollectionState.itemName(updatedStage)\n ) {\n stageState.name = this.stagesCollectionState.itemName(updatedStage);\n }\n stageState.refetchStage();\n });\n }\n\n createStage(stage: S) {\n this.stagesCollectionState.optimisticActions.createOne(stage, {\n submit: (_items) => Promise.resolve(),\n });\n runInAction(() => {\n const stageId = this.stagesCollectionState.itemKey(stage);\n\n this.createNewStageState(\n stage,\n stageId,\n {\n items: [],\n total: 0,\n cursor: null,\n },\n false,\n );\n });\n }\n\n deleteStage(stage: S) {\n const stageId = this.stagesCollectionState.itemKey(stage);\n\n this.stagesCollectionState.optimisticActions.deleteOne(stage, {\n submit: (_items) => Promise.resolve(),\n });\n runInAction(() => {\n Reflect.deleteProperty(this.kanbanStageStates, stageId);\n });\n }\n\n reorderStages(fromIndex: number, toIndex: number) {\n const keyedItems = this.stagesCollectionState.result.keyedItems;\n if (fromIndex === toIndex) {\n return;\n }\n\n const from = keyedItems[fromIndex];\n const over = keyedItems[toIndex];\n\n let after;\n if (toIndex === 0) {\n after = null;\n } else if (fromIndex < toIndex) {\n after = over;\n } else {\n after = keyedItems[toIndex - 1];\n }\n\n const actionMove = {\n moveId: uuid(),\n from,\n over,\n after,\n isFromHandle: false,\n filtersKeyHash: this.stagesCollectionState.query.filtersKeyHash,\n query: this.stagesCollectionState.originQuery,\n };\n\n this.stagesCollectionState.optimisticActions._orderByMode = 'moves';\n this.stagesCollectionState.optimisticActions.move(actionMove, {\n collectionSnapshot: {},\n });\n }\n}\n"],"mappings":"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","ignoreList":[]}