@wix/patterns 1.35.0 → 1.36.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 (194) hide show
  1. package/dist/cjs/components/Collapse/Collapse.st.css.js +3 -3
  2. package/dist/cjs/components/Collapse/Collapse.st.css.js.map +1 -1
  3. package/dist/cjs/components/CollectionToolbar/CollectionToolbar.st.css.js +5 -5
  4. package/dist/cjs/components/CollectionToolbar/CollectionToolbar.st.css.js.map +1 -1
  5. package/dist/cjs/components/CollectionToolbar/SearchOrCustomFilter.st.css.js +3 -3
  6. package/dist/cjs/components/CollectionToolbar/SearchOrCustomFilter.st.css.js.map +1 -1
  7. package/dist/cjs/components/CollectionToolbarFilters/CollectionToolbarFilters.js +6 -6
  8. package/dist/cjs/components/CollectionToolbarFilters/CollectionToolbarFilters.js.map +1 -1
  9. package/dist/cjs/components/CollectionViewsDropdown/AutoCompleteReadonly.st.css.js +2 -2
  10. package/dist/cjs/components/CollectionViewsDropdown/AutoCompleteReadonly.st.css.js.map +1 -1
  11. package/dist/cjs/components/CollectionViewsDropdown/ViewsDropdown.st.css.js +2 -2
  12. package/dist/cjs/components/CollectionViewsDropdown/ViewsDropdown.st.css.js.map +1 -1
  13. package/dist/cjs/components/CustomFieldsWidget/CustomFieldsViewWidgetSection.st.css.js +3 -3
  14. package/dist/cjs/components/CustomFieldsWidget/CustomFieldsViewWidgetSection.st.css.js.map +1 -1
  15. package/dist/cjs/components/DragAndDrop/DragAndDropState.js +6 -1
  16. package/dist/cjs/components/DragAndDrop/DragAndDropState.js.map +1 -1
  17. package/dist/cjs/components/DragHandle/DragHandle.st.css.js +2 -2
  18. package/dist/cjs/components/DragHandle/DragHandle.st.css.js.map +1 -1
  19. package/dist/cjs/components/Fade/Fade.st.css.js +2 -2
  20. package/dist/cjs/components/Fade/Fade.st.css.js.map +1 -1
  21. package/dist/cjs/components/GridDragAndDropDndKit/GridDraggableCardItem.js +4 -28
  22. package/dist/cjs/components/GridDragAndDropDndKit/GridDraggableCardItem.js.map +1 -1
  23. package/dist/cjs/components/Heading/Heading.st.css.js +2 -2
  24. package/dist/cjs/components/Heading/Heading.st.css.js.map +1 -1
  25. package/dist/cjs/components/InputOverflow/InputOverflow.st.css.js +2 -2
  26. package/dist/cjs/components/InputOverflow/InputOverflow.st.css.js.map +1 -1
  27. package/dist/cjs/components/ListDragAndDrop/DraggableListItem.js +3 -27
  28. package/dist/cjs/components/ListDragAndDrop/DraggableListItem.js.map +1 -1
  29. package/dist/cjs/components/MaxHeightText/MaxHeightText.st.css.js +2 -2
  30. package/dist/cjs/components/MaxHeightText/MaxHeightText.st.css.js.map +1 -1
  31. package/dist/cjs/components/MaxLines/MaxLines.st.css.js +2 -2
  32. package/dist/cjs/components/MaxLines/MaxLines.st.css.js.map +1 -1
  33. package/dist/cjs/components/MultiBulkActionToolbar/MultiBulkActionToolbar.st.css.js +2 -2
  34. package/dist/cjs/components/MultiBulkActionToolbar/MultiBulkActionToolbar.st.css.js.map +1 -1
  35. package/dist/cjs/components/MultiInlineCheckboxFilter/MultiInlineCheckboxFilter.js +1 -0
  36. package/dist/cjs/components/MultiInlineCheckboxFilter/MultiInlineCheckboxFilter.js.map +1 -1
  37. package/dist/cjs/components/NestedTable/NestedTableRow.st.css.js +5 -5
  38. package/dist/cjs/components/NestedTable/NestedTableRow.st.css.js.map +1 -1
  39. package/dist/cjs/components/PickerContent/PickerContent.st.css.js +2 -2
  40. package/dist/cjs/components/PickerContent/PickerContent.st.css.js.map +1 -1
  41. package/dist/cjs/components/PickerContent/PickerContentAdditionalStep.st.css.js +4 -4
  42. package/dist/cjs/components/PickerContent/PickerContentAdditionalStep.st.css.js.map +1 -1
  43. package/dist/cjs/components/PickerTableListItem/PickerTableListItem.st.css.js +2 -2
  44. package/dist/cjs/components/PickerTableListItem/PickerTableListItem.st.css.js.map +1 -1
  45. package/dist/cjs/components/RadioGroupFilter/RadioGroupFilter.js +1 -0
  46. package/dist/cjs/components/RadioGroupFilter/RadioGroupFilter.js.map +1 -1
  47. package/dist/cjs/components/ScrollableContent/ScrollableContent.st.css.js +2 -2
  48. package/dist/cjs/components/ScrollableContent/ScrollableContent.st.css.js.map +1 -1
  49. package/dist/cjs/components/SkeletonCard/SkeletonCard.st.css.js +3 -3
  50. package/dist/cjs/components/SkeletonCard/SkeletonCard.st.css.js.map +1 -1
  51. package/dist/cjs/components/SlidingModal/SlidingModal.st.css.js +2 -2
  52. package/dist/cjs/components/SlidingModal/SlidingModal.st.css.js.map +1 -1
  53. package/dist/cjs/components/Table/TableVirtualHeader.st.css.js +2 -2
  54. package/dist/cjs/components/Table/TableVirtualHeader.st.css.js.map +1 -1
  55. package/dist/cjs/components/TabsFilter/TabsFilter.st.css.js +3 -3
  56. package/dist/cjs/components/TabsFilter/TabsFilter.st.css.js.map +1 -1
  57. package/dist/cjs/components/Tags/ManageTags/ManageTagsModal/ManageTagsModal.st.css.js +2 -2
  58. package/dist/cjs/components/Tags/ManageTags/ManageTagsModal/ManageTagsModal.st.css.js.map +1 -1
  59. package/dist/cjs/components/ToolbarItemBox/ToolbarItemBox.st.css.js +2 -2
  60. package/dist/cjs/components/ToolbarItemBox/ToolbarItemBox.st.css.js.map +1 -1
  61. package/dist/cjs/components/VirtualGridRepeater/ForceRenderIndexes.js +8 -6
  62. package/dist/cjs/components/VirtualGridRepeater/ForceRenderIndexes.js.map +1 -1
  63. package/dist/cjs/components/VirtualGridRepeater/GridState.js.map +1 -1
  64. package/dist/cjs/components/common.st.css.js +4 -4
  65. package/dist/cjs/components/common.st.css.js.map +1 -1
  66. package/dist/cjs/hooks/useNestedTable.js +1 -1
  67. package/dist/cjs/hooks/useNestedTable.js.map +1 -1
  68. package/dist/cjs/hooks/useOptionalCachedState.js +2 -0
  69. package/dist/cjs/hooks/useOptionalCachedState.js.map +1 -1
  70. package/dist/cjs/hooks/useSyncCollectionOnEntityCreate.js +28 -0
  71. package/dist/cjs/hooks/useSyncCollectionOnEntityCreate.js.map +1 -0
  72. package/dist/cjs/hooks/useSyncCollectionOnEntityReturn.js +5 -8
  73. package/dist/cjs/hooks/useSyncCollectionOnEntityReturn.js.map +1 -1
  74. package/dist/cjs/hooks/useSyncCollectionOnEntityUpdate.js.map +1 -1
  75. package/dist/cjs/state/CustomColumnsDragAndDropState.js.map +1 -1
  76. package/dist/cjs/state/EntityPage/EntityPageState.js +2 -1
  77. package/dist/cjs/state/EntityPage/EntityPageState.js.map +1 -1
  78. package/dist/cjs/state/GridBaseState.js.map +1 -1
  79. package/dist/cjs/state/MultiLevelSortingDragAndDrop.js +5 -0
  80. package/dist/cjs/state/MultiLevelSortingDragAndDrop.js.map +1 -1
  81. package/dist/cjs/state/TableVirtualState.js +3 -2
  82. package/dist/cjs/state/TableVirtualState.js.map +1 -1
  83. package/dist/cjs/state/ToolbarCollectionState.js +2 -0
  84. package/dist/cjs/state/ToolbarCollectionState.js.map +1 -1
  85. package/dist/cjs/styles.global.css +1 -1
  86. package/dist/cjs/version.js +1 -1
  87. package/dist/cjs/version.js.map +1 -1
  88. package/dist/esm/components/Collapse/Collapse.st.css.js +2 -2
  89. package/dist/esm/components/CollectionToolbar/CollectionToolbar.st.css.js +2 -2
  90. package/dist/esm/components/CollectionToolbar/CollectionToolbar.st.css.js.map +1 -1
  91. package/dist/esm/components/CollectionToolbar/SearchOrCustomFilter.st.css.js +2 -2
  92. package/dist/esm/components/CollectionToolbarFilters/CollectionToolbarFilters.js +6 -1
  93. package/dist/esm/components/CollectionToolbarFilters/CollectionToolbarFilters.js.map +1 -1
  94. package/dist/esm/components/CollectionViewsDropdown/AutoCompleteReadonly.st.css.js +2 -2
  95. package/dist/esm/components/CollectionViewsDropdown/ViewsDropdown.st.css.js +2 -2
  96. package/dist/esm/components/CollectionViewsDropdown/ViewsDropdown.st.css.js.map +1 -1
  97. package/dist/esm/components/CustomFieldsWidget/CustomFieldsViewWidgetSection.st.css.js +2 -2
  98. package/dist/esm/components/DragAndDrop/DragAndDropState.js +11 -2
  99. package/dist/esm/components/DragAndDrop/DragAndDropState.js.map +1 -1
  100. package/dist/esm/components/DragHandle/DragHandle.st.css.js +2 -2
  101. package/dist/esm/components/Fade/Fade.st.css.js +2 -2
  102. package/dist/esm/components/GridDragAndDropDndKit/GridDraggableCardItem.js +0 -17
  103. package/dist/esm/components/GridDragAndDropDndKit/GridDraggableCardItem.js.map +1 -1
  104. package/dist/esm/components/Heading/Heading.st.css.js +2 -2
  105. package/dist/esm/components/Heading/Heading.st.css.js.map +1 -1
  106. package/dist/esm/components/InputOverflow/InputOverflow.st.css.js +2 -2
  107. package/dist/esm/components/ListDragAndDrop/DraggableListItem.js +0 -17
  108. package/dist/esm/components/ListDragAndDrop/DraggableListItem.js.map +1 -1
  109. package/dist/esm/components/MaxHeightText/MaxHeightText.st.css.js +2 -2
  110. package/dist/esm/components/MaxLines/MaxLines.st.css.js +2 -2
  111. package/dist/esm/components/MultiBulkActionToolbar/MultiBulkActionToolbar.st.css.js +2 -2
  112. package/dist/esm/components/MultiBulkActionToolbar/MultiBulkActionToolbar.st.css.js.map +1 -1
  113. package/dist/esm/components/MultiInlineCheckboxFilter/MultiInlineCheckboxFilter.js +1 -0
  114. package/dist/esm/components/MultiInlineCheckboxFilter/MultiInlineCheckboxFilter.js.map +1 -1
  115. package/dist/esm/components/NestedTable/NestedTableRow.st.css.js +2 -2
  116. package/dist/esm/components/PickerContent/PickerContent.st.css.js +2 -2
  117. package/dist/esm/components/PickerContent/PickerContent.st.css.js.map +1 -1
  118. package/dist/esm/components/PickerContent/PickerContentAdditionalStep.st.css.js +2 -2
  119. package/dist/esm/components/PickerContent/PickerContentAdditionalStep.st.css.js.map +1 -1
  120. package/dist/esm/components/PickerTableListItem/PickerTableListItem.st.css.js +2 -2
  121. package/dist/esm/components/RadioGroupFilter/RadioGroupFilter.js +1 -0
  122. package/dist/esm/components/RadioGroupFilter/RadioGroupFilter.js.map +1 -1
  123. package/dist/esm/components/ScrollableContent/ScrollableContent.st.css.js +2 -2
  124. package/dist/esm/components/SkeletonCard/SkeletonCard.st.css.js +2 -2
  125. package/dist/esm/components/SlidingModal/SlidingModal.st.css.js +2 -2
  126. package/dist/esm/components/Table/TableVirtualHeader.st.css.js +2 -2
  127. package/dist/esm/components/TabsFilter/TabsFilter.st.css.js +2 -2
  128. package/dist/esm/components/Tags/ManageTags/ManageTagsModal/ManageTagsModal.st.css.js +2 -2
  129. package/dist/esm/components/ToolbarItemBox/ToolbarItemBox.st.css.js +2 -2
  130. package/dist/esm/components/ToolbarItemBox/ToolbarItemBox.st.css.js.map +1 -1
  131. package/dist/esm/components/VirtualGridRepeater/ForceRenderIndexes.js +4 -2
  132. package/dist/esm/components/VirtualGridRepeater/ForceRenderIndexes.js.map +1 -1
  133. package/dist/esm/components/common.st.css.js +2 -2
  134. package/dist/esm/components/common.st.css.js.map +1 -1
  135. package/dist/esm/hooks/useNestedTable.js +1 -1
  136. package/dist/esm/hooks/useNestedTable.js.map +1 -1
  137. package/dist/esm/hooks/useOptionalCachedState.js +2 -0
  138. package/dist/esm/hooks/useOptionalCachedState.js.map +1 -1
  139. package/dist/esm/hooks/useSyncCollectionOnEntityCreate.js +24 -0
  140. package/dist/esm/hooks/useSyncCollectionOnEntityCreate.js.map +1 -0
  141. package/dist/esm/hooks/useSyncCollectionOnEntityReturn.js +5 -8
  142. package/dist/esm/hooks/useSyncCollectionOnEntityReturn.js.map +1 -1
  143. package/dist/esm/hooks/useSyncCollectionOnEntityUpdate.js.map +1 -1
  144. package/dist/esm/state/CustomColumnsDragAndDropState.js.map +1 -1
  145. package/dist/esm/state/EntityPage/EntityPageState.js +2 -1
  146. package/dist/esm/state/EntityPage/EntityPageState.js.map +1 -1
  147. package/dist/esm/state/GridBaseState.js.map +1 -1
  148. package/dist/esm/state/MultiLevelSortingDragAndDrop.js +5 -0
  149. package/dist/esm/state/MultiLevelSortingDragAndDrop.js.map +1 -1
  150. package/dist/esm/state/TableVirtualState.js +3 -2
  151. package/dist/esm/state/TableVirtualState.js.map +1 -1
  152. package/dist/esm/state/ToolbarCollectionState.js +2 -0
  153. package/dist/esm/state/ToolbarCollectionState.js.map +1 -1
  154. package/dist/esm/styles.global.css +1 -1
  155. package/dist/esm/version.js +1 -1
  156. package/dist/types/components/CollectionToolbar/CollectionToolbar.st.css.d.ts.map +1 -1
  157. package/dist/types/components/CollectionToolbarFilters/CollectionToolbarFilters.d.ts.map +1 -1
  158. package/dist/types/components/CollectionViewsDropdown/ViewsDropdown.st.css.d.ts.map +1 -1
  159. package/dist/types/components/DragAndDrop/DragAndDropState.d.ts +1 -4
  160. package/dist/types/components/DragAndDrop/DragAndDropState.d.ts.map +1 -1
  161. package/dist/types/components/GridDragAndDropDndKit/GridDraggableCardItem.d.ts.map +1 -1
  162. package/dist/types/components/Heading/Heading.st.css.d.ts.map +1 -1
  163. package/dist/types/components/ListDragAndDrop/DraggableListItem.d.ts.map +1 -1
  164. package/dist/types/components/MultiBulkActionToolbar/MultiBulkActionToolbar.st.css.d.ts.map +1 -1
  165. package/dist/types/components/MultiInlineCheckboxFilter/MultiInlineCheckboxFilter.d.ts +3 -0
  166. package/dist/types/components/MultiInlineCheckboxFilter/MultiInlineCheckboxFilter.d.ts.map +1 -1
  167. package/dist/types/components/PickerContent/PickerContent.st.css.d.ts.map +1 -1
  168. package/dist/types/components/PickerContent/PickerContentAdditionalStep.st.css.d.ts.map +1 -1
  169. package/dist/types/components/ToolbarItemBox/ToolbarItemBox.st.css.d.ts.map +1 -1
  170. package/dist/types/components/VirtualGridRepeater/ForceRenderIndexes.d.ts.map +1 -1
  171. package/dist/types/components/VirtualGridRepeater/GridState.d.ts +1 -4
  172. package/dist/types/components/VirtualGridRepeater/GridState.d.ts.map +1 -1
  173. package/dist/types/components/common.st.css.d.ts.map +1 -1
  174. package/dist/types/hooks/useNestedTable.d.ts.map +1 -1
  175. package/dist/types/hooks/useOptionalCachedState.d.ts.map +1 -1
  176. package/dist/types/hooks/useSyncCollectionOnEntityCreate.d.ts +4 -0
  177. package/dist/types/hooks/useSyncCollectionOnEntityCreate.d.ts.map +1 -0
  178. package/dist/types/hooks/useSyncCollectionOnEntityReturn.d.ts +8 -5
  179. package/dist/types/hooks/useSyncCollectionOnEntityReturn.d.ts.map +1 -1
  180. package/dist/types/hooks/useSyncCollectionOnEntityUpdate.d.ts +1 -1
  181. package/dist/types/hooks/useSyncCollectionOnEntityUpdate.d.ts.map +1 -1
  182. package/dist/types/state/CustomColumnsDragAndDropState.d.ts +1 -4
  183. package/dist/types/state/CustomColumnsDragAndDropState.d.ts.map +1 -1
  184. package/dist/types/state/EntityPage/EntityPageState.d.ts.map +1 -1
  185. package/dist/types/state/GridBaseState.d.ts +1 -4
  186. package/dist/types/state/GridBaseState.d.ts.map +1 -1
  187. package/dist/types/state/MultiLevelSortingDragAndDrop.d.ts +1 -0
  188. package/dist/types/state/MultiLevelSortingDragAndDrop.d.ts.map +1 -1
  189. package/dist/types/state/TableVirtualState.d.ts +1 -4
  190. package/dist/types/state/TableVirtualState.d.ts.map +1 -1
  191. package/dist/types/state/ToolbarCollectionState.d.ts +1 -0
  192. package/dist/types/state/ToolbarCollectionState.d.ts.map +1 -1
  193. package/dist/types/version.d.ts +1 -1
  194. package/package.json +3 -3
@@ -1 +1 @@
1
- {"version":3,"names":["_bexCore","require","_sortable","_util","_DragAndDrop","_mobx","_RectState","_indexOfCompareFn","CustomColumnsDragAndDropState","_dnd","_this$collectionDragA","collectionDragAndDropState","dnd","constructor","params","_defineProperty2","default","undefined","customColumns","components","container","listRect","RectState","table","columnsActions","CollectionOptimisticActions","collection","columnsCollection","CollectionDragAndDropState","state","a11yContainer","modalsContainerRef","makeObservable","_onCustomColumnsReorder","action","bound","containerRect","computed","orderedColumns","orderedColumnsByReorderDisabled","columns","reduce","column","reorderDisabled","push","regular","selectedColumns","value","sort","indexOfCompareFn","c","id","rect","left","columnId","overColumnId","columnsArray","reorderedColumnsArray","arrayMove","findIndex","refresh","init","disposers","addEventListener","events","refreshAllPages","forEach","disposer","exports"],"sources":["../../../src/state/CustomColumnsDragAndDropState.ts"],"sourcesContent":["import { CustomColumnsState } from './CustomColumnsState';\nimport { CollectionOptimisticActions, FiltersMap } from '@wix/bex-core';\nimport { arrayMove } from '@wix/wix-style-react-incubator/dnd-kit/sortable';\nimport { addEventListener } from '@wix/bex-core/util';\nimport type { CustomColumnsDragAndDrop } from '../components/CustomColumns/CustomColumnsDragAndDrop';\nimport { CollectionDragAndDropState } from '../components/DragAndDrop';\nimport { Column } from '../model';\nimport { action, computed, makeObservable } from 'mobx';\nimport { RectState } from './RectState';\nimport { indexOfCompareFn } from './indexOfCompareFn';\n\nexport interface CustomColumnsDragAndDropStateParams<T, F extends FiltersMap> {\n readonly customColumns: CustomColumnsState<T, F>;\n readonly components: typeof CustomColumnsDragAndDrop;\n readonly modalsContainerRef: {\n current: HTMLElement | null | undefined;\n };\n}\n\nexport class CustomColumnsDragAndDropState<T, F extends FiltersMap> {\n readonly container;\n readonly customColumns;\n readonly table;\n readonly columnsActions;\n readonly components;\n\n get _dnd() {\n return this.collectionDragAndDropState?.dnd;\n }\n\n collectionDragAndDropState: CollectionDragAndDropState<Column, {}> | null =\n null;\n\n forceRenderIndexes: { rowIndex: number; columnIndex: number }[] | undefined =\n undefined;\n\n reportBi = () => {\n // report columns re-order BI here\n };\n\n readonly listRect;\n\n constructor(params: CustomColumnsDragAndDropStateParams<T, F>) {\n const { customColumns, components } = params;\n this.components = components;\n this.container = customColumns.container;\n this.listRect = new RectState({\n container: customColumns.container,\n });\n this.customColumns = customColumns;\n this.table = customColumns.table;\n this.columnsActions = new CollectionOptimisticActions({\n container: this.container,\n collection: this.customColumns.columnsCollection,\n });\n\n this.collectionDragAndDropState = new CollectionDragAndDropState({\n state: this,\n a11yContainer: params.modalsContainerRef,\n container: this.container,\n });\n\n makeObservable(this, {\n _onCustomColumnsReorder: action.bound,\n containerRect: computed,\n orderedColumns: computed,\n orderedColumnsByReorderDisabled: computed,\n });\n }\n\n get orderedColumnsByReorderDisabled() {\n return this.table.columns.reduce(\n (state, column) => {\n column.reorderDisabled\n ? state.reorderDisabled.push(column)\n : state.regular.push(column);\n\n return state;\n },\n { regular: [] as Column[], reorderDisabled: [] as Column[] },\n );\n }\n\n get orderedColumns(): Column[] {\n const { table } = this;\n const {\n selectedColumns: { value: selectedColumns },\n } = table;\n\n const { reorderDisabled, regular } = this.orderedColumnsByReorderDisabled;\n\n return [\n ...reorderDisabled,\n ...regular.sort(\n indexOfCompareFn(selectedColumns as { id: string }[], (c) => c.id),\n ),\n ];\n }\n\n get collection() {\n return this.customColumns.columnsCollection;\n }\n\n get containerRect() {\n const { listRect } = this;\n if (listRect.rect.left) {\n return {\n ...listRect.rect,\n };\n }\n return undefined;\n }\n\n _onCustomColumnsReorder(columnId: string, overColumnId: string) {\n const {\n table: { selectedColumns },\n } = this;\n\n const columnsArray = selectedColumns.value;\n\n const reorderedColumnsArray = arrayMove(\n columnsArray,\n columnsArray.findIndex((c) => c.id === columnId),\n columnsArray.findIndex((c) => c.id === overColumnId),\n );\n\n selectedColumns.refresh(reorderedColumnsArray);\n }\n\n init() {\n const { columnsActions } = this;\n const disposers = [\n columnsActions.init(),\n addEventListener(columnsActions.events, 'updated', async () => {\n const {\n customColumns: { columnsCollection },\n } = this;\n await columnsCollection.refreshAllPages();\n }),\n ];\n\n return () => {\n disposers.forEach((disposer) => disposer?.());\n };\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_bexCore","require","_sortable","_util","_DragAndDrop","_mobx","_RectState","_indexOfCompareFn","CustomColumnsDragAndDropState","_dnd","_this$collectionDragA","collectionDragAndDropState","dnd","constructor","params","_defineProperty2","default","undefined","customColumns","components","container","listRect","RectState","table","columnsActions","CollectionOptimisticActions","collection","columnsCollection","CollectionDragAndDropState","state","a11yContainer","modalsContainerRef","makeObservable","_onCustomColumnsReorder","action","bound","containerRect","computed","orderedColumns","orderedColumnsByReorderDisabled","columns","reduce","column","reorderDisabled","push","regular","selectedColumns","value","sort","indexOfCompareFn","c","id","rect","left","columnId","overColumnId","columnsArray","reorderedColumnsArray","arrayMove","findIndex","refresh","init","disposers","addEventListener","events","refreshAllPages","forEach","disposer","exports"],"sources":["../../../src/state/CustomColumnsDragAndDropState.ts"],"sourcesContent":["import { CustomColumnsState } from './CustomColumnsState';\nimport { CollectionOptimisticActions, FiltersMap } from '@wix/bex-core';\nimport { arrayMove } from '@wix/wix-style-react-incubator/dnd-kit/sortable';\nimport { addEventListener } from '@wix/bex-core/util';\nimport type { CustomColumnsDragAndDrop } from '../components/CustomColumns/CustomColumnsDragAndDrop';\nimport { CollectionDragAndDropState } from '../components/DragAndDrop';\nimport { Column } from '../model';\nimport { action, computed, makeObservable } from 'mobx';\nimport { RectState } from './RectState';\nimport { indexOfCompareFn } from './indexOfCompareFn';\n\nexport interface CustomColumnsDragAndDropStateParams<T, F extends FiltersMap> {\n readonly customColumns: CustomColumnsState<T, F>;\n readonly components: typeof CustomColumnsDragAndDrop;\n readonly modalsContainerRef: {\n current: HTMLElement | null | undefined;\n };\n}\n\nexport class CustomColumnsDragAndDropState<T, F extends FiltersMap> {\n readonly container;\n readonly customColumns;\n readonly table;\n readonly columnsActions;\n readonly components;\n\n get _dnd() {\n return this.collectionDragAndDropState?.dnd;\n }\n\n collectionDragAndDropState: CollectionDragAndDropState<Column, {}> | null =\n null;\n\n forceRenderIndexes: number[] | undefined = undefined;\n\n reportBi = () => {\n // report columns re-order BI here\n };\n\n readonly listRect;\n\n constructor(params: CustomColumnsDragAndDropStateParams<T, F>) {\n const { customColumns, components } = params;\n this.components = components;\n this.container = customColumns.container;\n this.listRect = new RectState({\n container: customColumns.container,\n });\n this.customColumns = customColumns;\n this.table = customColumns.table;\n this.columnsActions = new CollectionOptimisticActions({\n container: this.container,\n collection: this.customColumns.columnsCollection,\n });\n\n this.collectionDragAndDropState = new CollectionDragAndDropState({\n state: this,\n a11yContainer: params.modalsContainerRef,\n container: this.container,\n });\n\n makeObservable(this, {\n _onCustomColumnsReorder: action.bound,\n containerRect: computed,\n orderedColumns: computed,\n orderedColumnsByReorderDisabled: computed,\n });\n }\n\n get orderedColumnsByReorderDisabled() {\n return this.table.columns.reduce(\n (state, column) => {\n column.reorderDisabled\n ? state.reorderDisabled.push(column)\n : state.regular.push(column);\n\n return state;\n },\n { regular: [] as Column[], reorderDisabled: [] as Column[] },\n );\n }\n\n get orderedColumns(): Column[] {\n const { table } = this;\n const {\n selectedColumns: { value: selectedColumns },\n } = table;\n\n const { reorderDisabled, regular } = this.orderedColumnsByReorderDisabled;\n\n return [\n ...reorderDisabled,\n ...regular.sort(\n indexOfCompareFn(selectedColumns as { id: string }[], (c) => c.id),\n ),\n ];\n }\n\n get collection() {\n return this.customColumns.columnsCollection;\n }\n\n get containerRect() {\n const { listRect } = this;\n if (listRect.rect.left) {\n return {\n ...listRect.rect,\n };\n }\n return undefined;\n }\n\n _onCustomColumnsReorder(columnId: string, overColumnId: string) {\n const {\n table: { selectedColumns },\n } = this;\n\n const columnsArray = selectedColumns.value;\n\n const reorderedColumnsArray = arrayMove(\n columnsArray,\n columnsArray.findIndex((c) => c.id === columnId),\n columnsArray.findIndex((c) => c.id === overColumnId),\n );\n\n selectedColumns.refresh(reorderedColumnsArray);\n }\n\n init() {\n const { columnsActions } = this;\n const disposers = [\n columnsActions.init(),\n addEventListener(columnsActions.events, 'updated', async () => {\n const {\n customColumns: { columnsCollection },\n } = this;\n await columnsCollection.refreshAllPages();\n }),\n ];\n\n return () => {\n disposers.forEach((disposer) => disposer?.());\n };\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -120,8 +120,9 @@ class EntityPageState {
120
120
  this.navigateToParent();
121
121
  }
122
122
  navigateToParent(updatedEntity) {
123
+ const entityStringKey = this._entity ? '_updatedEntity' : '_createdEntity';
123
124
  const entityObject = {
124
- _updatedEntity: updatedEntity
125
+ [entityStringKey]: updatedEntity
125
126
  };
126
127
  if (this._withinRouter) {
127
128
  this.container.navigate(this._parentPath, {
@@ -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","entityObject","_updatedEntity","navigate","state","navigateTo","pageId","_showErrorToast","err","e","_this$saveErrorToast","_this$container$showT","_this$container","errorToast","message","showTryAgain","tryAgain","showToast","type","biName","translate","code","uiType","text","onClick","reportSaveTryAgain","removeToastOnClick","_showSuccessToast","_this$saveSuccessToas","_this$container$showT2","_this$container2","submitTask","events","emit","isValid","extraFields","validate","run","savedEntity","onSaveResult","widgetsFormData","errorMonitor","captureException","setError","transformedItem","Error","exports"],"sources":["../../../../src/state/EntityPage/EntityPageState.ts"],"sourcesContent":["import {\n FormPageState,\n ReportBI,\n TaskState,\n WixPatternsContainer,\n} from '@wix/bex-core';\nimport { action, computed, makeObservable, observable } from 'mobx';\nimport { FieldValues, UseFormReturn } from 'react-hook-form';\nimport { EntityPageStateBIReporter } from './EntityPageStateBIReporter';\nimport { EventEmitter, TypedEmitter } from '@wix/bex-core/events';\n\ntype OnSaveParams = {\n widgetsFormData: { [key: string]: any };\n};\n\nexport interface EntityPageStateParams<T, V extends FieldValues = FieldValues> {\n /**\n * A function that fetches the entity data.\n * @returns a promise that resolves to an object containing the entity.\n */\n fetch: () => Promise<{ entity: T | undefined }>;\n\n /**\n * A function to handle the save action.\n * @returns promise that resolves to an object that contains a 'updatedEntity' object.\n */\n onSave: (params: OnSaveParams) => Promise<{ updatedEntity: T }>;\n\n /**\n * An optional object with an optional message, or it can directly get a string message.\n */\n saveSuccessToast?: { message?: string } | string;\n\n /**\n * An optional function to display an error toast message when a save operation fails.\n * @returns an object with an optional message and a `tryAgain` flag, or it can directly return a string message.\n */\n saveErrorToast?: (\n err: unknown,\n ) => { message?: string; tryAgain?: boolean } | string;\n\n /**\n * An optional function to transform the updated entity data before it is passed to the collection page.\n * @param entity the updated entity.\n * @returns an object representing the entity in the collection page.\n */\n transformEntityToCollectionItem?: (entity: T) => any;\n\n /**\n * An object representing the form state and methods, typically returned by a useForm hook.\n */\n form: UseFormReturn<V>;\n\n /**\n * An object representing the container, possibly for dependency injection or component management.\n */\n container: WixPatternsContainer;\n\n /**\n * A string representing the ID of the parent page.\n * Must be passed if not using Patterns Router\n */\n parentPageId?: string;\n\n /**\n * A string representing the path of the parent page.\n * Must be passed if using Patterns Router\n */\n parentPath?: string;\n}\n\nexport interface EntityPageStateInterface {}\n\nexport interface EntityPageWidgetState {\n validate: () => Promise<{ isValid: boolean; values?: any }>;\n isDirty: boolean;\n}\n\nexport class EntityPageState<T, V extends FieldValues = FieldValues>\n implements EntityPageStateInterface\n{\n readonly initTask = new TaskState();\n readonly submitTask = new TaskState();\n\n readonly fetch: EntityPageStateParams<T>['fetch'];\n readonly onSave: EntityPageStateParams<T, V>['onSave'];\n readonly saveSuccessToast?: EntityPageStateParams<T>['saveSuccessToast'];\n readonly saveErrorToast?: EntityPageStateParams<T>['saveErrorToast'];\n readonly transformEntityToCollectionItem: (entity: T) => any;\n\n _entity: T | null = null;\n private readonly _form: UseFormReturn<V>;\n private readonly _parentPageId?: string;\n private readonly _parentPath?: string;\n\n readonly container: WixPatternsContainer;\n readonly reportBI: ReportBI;\n readonly bi: EntityPageStateBIReporter<T, V>;\n\n _isSubmitSuccessful?: boolean = undefined;\n _isFormDirty = false;\n\n _withinRouter = false;\n\n readonly formPage = new FormPageState();\n\n readonly events = new EventEmitter() as TypedEmitter<{\n save: () => void;\n saveError: (err: unknown) => void;\n }>;\n\n constructor(params: EntityPageStateParams<T, V>) {\n this.fetch = params.fetch;\n this.onSave = params.onSave;\n this.saveSuccessToast = params.saveSuccessToast;\n this.saveErrorToast = params.saveErrorToast;\n this._form = params.form;\n this._parentPageId = params.parentPageId;\n this.transformEntityToCollectionItem =\n params.transformEntityToCollectionItem || ((anEntity: T) => anEntity);\n this._parentPath = params.parentPath;\n\n this.container = params.container;\n\n this.reportBI = this.container.createBILogger({\n componentType: 'Entity page',\n pageType: 'Entity',\n route: window.location.pathname,\n });\n\n this.bi = new EntityPageStateBIReporter({\n reportBI: this.reportBI,\n entityPageState: this,\n });\n this.bi.init();\n\n makeObservable(this, {\n handleSubmit: action,\n isFetching: computed,\n _entity: observable.ref,\n setEntity: action,\n _isFormDirty: observable.ref,\n isFormDirty: computed,\n });\n }\n\n init({ withinRouter }: { withinRouter: boolean }) {\n this._withinRouter = withinRouter;\n this._checkPageParams();\n const { initTask, container } = this;\n const { onBeforeUnload } = container;\n\n const onBeforeUnloadSubscription = onBeforeUnload?.(\n action((event) => {\n const { form } = this;\n if (form.formState.isSubmitSuccessful || !this.isFormDirty) {\n return;\n }\n event.preventDefault();\n this.bi.reportOnBeforeUnload();\n }),\n );\n\n initTask.runOnce(async () => {\n const [data] = await Promise.all([\n this.fetch(),\n container.initTask.status.promise,\n ]);\n\n this.setEntity(data.entity ?? null);\n this.bi.appLoaded?.();\n });\n\n return () => {\n onBeforeUnloadSubscription?.remove();\n };\n }\n\n retryFetch() {\n this.initTask.runOnce();\n }\n\n setEntity(newEntity: T | null) {\n this._entity = newEntity;\n }\n\n get entity(): T | null {\n return this._entity;\n }\n\n get isFetching() {\n return this.initTask.status.isLoading || this.initTask.status.isIdle;\n }\n\n get form() {\n return this._form;\n }\n\n set isSubmitSuccessful(flag: boolean) {\n this._isSubmitSuccessful = flag;\n }\n\n set isFormDirty(flag: boolean) {\n this._isFormDirty = flag;\n }\n\n get isFormDirty() {\n return this._isFormDirty || this.formPage.isDirty;\n }\n\n onCancel() {\n this.bi.reportButtonClick({ ctaName: 'Cancel' });\n this.navigateToParent();\n }\n\n navigateToParent(updatedEntity?: any) {\n const entityObject = { _updatedEntity: updatedEntity };\n\n if (this._withinRouter) {\n this.container.navigate!(this._parentPath!, { state: entityObject });\n } else {\n this.container.navigateTo!({\n pageId: this._parentPageId!,\n });\n }\n }\n\n _showErrorToast(err: any, e?: React.BaseSyntheticEvent) {\n const errorToast = this.saveErrorToast?.(err);\n const message =\n typeof errorToast === 'string' ? errorToast : errorToast?.message;\n const showTryAgain =\n typeof errorToast === 'string' ? true : errorToast?.tryAgain !== false;\n\n this.container.showToast?.({\n type: 'ERROR',\n biName: 'cairo-entity-page-save-error-toast',\n message:\n message ??\n this.container.translate(\n err?.code === 'ERR_NETWORK'\n ? 'cairo.entityPage.saveError-offline.toast.description'\n : 'cairo.entityPage.saveError-technical.toast.description',\n ),\n action: showTryAgain\n ? {\n uiType: 'LINK',\n text: this.container.translate('cairo.toast.retry'),\n onClick: () => {\n this.bi.reportSaveTryAgain();\n this.handleSubmit(e);\n },\n removeToastOnClick: true,\n }\n : undefined,\n });\n }\n\n _showSuccessToast() {\n const message =\n typeof this.saveSuccessToast === 'string'\n ? this.saveSuccessToast\n : this.saveSuccessToast?.message;\n\n this.container.showToast?.({\n type: 'SUCCESS',\n biName: 'cairo-entity-page-save-success-toast',\n message:\n message ?? this.container.translate('cairo.entityPage.success.toast'),\n });\n }\n async handleSubmit(e?: React.BaseSyntheticEvent) {\n if (this.submitTask.status.isLoading) {\n return;\n }\n\n this.events.emit('save');\n\n const { isValid, data: extraFields } = await this.formPage.validate();\n\n if (!isValid) {\n this.bi.reportButtonClick({ ctaName: 'Save', isValid: false });\n return;\n }\n\n const { form, submitTask, bi } = this;\n\n submitTask.run(async () => {\n let savedEntity: T | undefined;\n await form.handleSubmit(\n async () => {\n bi.reportButtonClick({ ctaName: 'Save', isValid: true });\n try {\n if (this.isFormDirty) {\n const onSaveResult = await this.onSave({\n widgetsFormData: { ...extraFields },\n });\n savedEntity = onSaveResult?.updatedEntity;\n }\n this._showSuccessToast();\n } catch (err) {\n this._showErrorToast(err, e);\n this.container.errorMonitor.captureException(err);\n this.events.emit('saveError', err);\n form.setError('root.serverError', {}); // https://react-hook-form.com/docs/useform/seterror\n }\n },\n () => {\n bi.reportButtonClick({ ctaName: 'Save', isValid: false });\n }, // can be used to report validation errors\n )(e);\n\n if (!form.formState.isSubmitSuccessful) {\n return;\n }\n\n const transformedItem =\n savedEntity && this.transformEntityToCollectionItem\n ? this.transformEntityToCollectionItem(savedEntity)\n : savedEntity;\n this.navigateToParent(transformedItem);\n });\n await this.submitTask.status.promise;\n }\n\n private _checkPageParams() {\n if (this._withinRouter) {\n if (this._parentPath === undefined) {\n throw new Error('parentPath was not defined in useEntityPage');\n }\n\n if (!this.container.navigate) {\n throw new Error('navigate was not defined in Patterns Provider');\n }\n } else {\n if (this._parentPageId === undefined) {\n throw new Error('parentPageId was not defined in useEntityPage');\n }\n\n if (!this.container.navigateTo) {\n throw new Error('navigateTo was not defined in Patterns Provider');\n }\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"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 +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: { rowIndex: number; columnIndex: number }[] | undefined =\n 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","_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":[]}
@@ -9,11 +9,13 @@ var _bi = require("@wix/bex-core/bi");
9
9
  var _sortable = require("@wix/wix-style-react-incubator/dnd-kit/sortable");
10
10
  var _events = _interopRequireDefault(require("events"));
11
11
  var _DragAndDrop = require("../components/DragAndDrop");
12
+ var _mobx = require("mobx");
12
13
  class MultiLevelSortingStateDragAndDrop {
13
14
  constructor(params) {
14
15
  (0, _defineProperty2.default)(this, "multiLevelSortingState", void 0);
15
16
  (0, _defineProperty2.default)(this, "multiLevelSortingActions", void 0);
16
17
  (0, _defineProperty2.default)(this, "collectionDragAndDropState", null);
18
+ (0, _defineProperty2.default)(this, "forceRenderIndexes", undefined);
17
19
  (0, _defineProperty2.default)(this, "events", new _events.default());
18
20
  const {
19
21
  multiLevelSortingState
@@ -28,6 +30,9 @@ class MultiLevelSortingStateDragAndDrop {
28
30
  a11yContainer: params.modalsContainerRef,
29
31
  container: this.multiLevelSortingState.container
30
32
  });
33
+ (0, _mobx.makeObservable)(this, {
34
+ forceRenderIndexes: _mobx.observable.ref
35
+ });
31
36
  }
32
37
  get _dnd() {
33
38
  var _this$collectionDragA;
@@ -1 +1 @@
1
- {"version":3,"names":["_bexCore","require","_bi","_sortable","_events","_interopRequireDefault","_DragAndDrop","MultiLevelSortingStateDragAndDrop","constructor","params","_defineProperty2","default","EventEmitter","multiLevelSortingState","multiLevelSortingActions","CollectionOptimisticActions","container","collection","collectionDragAndDropState","CollectionDragAndDropState","state","a11yContainer","modalsContainerRef","_dnd","_this$collectionDragA","dnd","reportBi","table","sortingCollection","_onSortReorder","fromColumnId","overColumnId","orderedSortableColumns","indexBefore","findIndex","columnId","indexAfter","newOrder","arrayMove","events","emit","replace","init","disposers","addEventListener","prevSortOrder","JSON","stringify","currentSortOrder","once","newSortOrder","numSortingColumns","length","withoutDefaults","cairoReorderingSortColumns","columnIndexBefore","columnIndexAfter","sortingColumn","forEach","disposer","exports"],"sources":["../../../src/state/MultiLevelSortingDragAndDrop.ts"],"sourcesContent":["import {\n CollectionOptimisticActions,\n FiltersMap,\n TypedEmitter,\n addEventListener,\n withoutDefaults,\n} from '@wix/bex-core';\nimport { cairoReorderingSortColumns } from '@wix/bex-core/bi';\nimport { arrayMove } from '@wix/wix-style-react-incubator/dnd-kit/sortable';\nimport EventEmitter from 'events';\nimport {\n MultiLevelSortingState,\n SortableColumn,\n} from './MultiLevelSortingState';\nimport { CollectionDragAndDropState } from '../components/DragAndDrop';\n\nexport interface MultiLevelSortingStateDragAndDropParams<\n T,\n F extends FiltersMap,\n> {\n readonly multiLevelSortingState: MultiLevelSortingState<T, F>;\n readonly modalsContainerRef: {\n current: HTMLElement | null | undefined;\n };\n}\n\nexport class MultiLevelSortingStateDragAndDrop<T, F extends FiltersMap> {\n readonly multiLevelSortingState;\n readonly multiLevelSortingActions: CollectionOptimisticActions<\n SortableColumn,\n {}\n >;\n\n readonly collectionDragAndDropState: CollectionDragAndDropState<\n SortableColumn,\n {}\n > | null = null;\n\n events = new EventEmitter() as TypedEmitter<{\n beforeReorder: () => unknown;\n afterReorder: (params: {\n indexBefore: number;\n indexAfter: number;\n columnId: string;\n }) => unknown;\n }>;\n\n constructor(params: MultiLevelSortingStateDragAndDropParams<T, F>) {\n const { multiLevelSortingState } = params;\n this.multiLevelSortingState = multiLevelSortingState;\n this.multiLevelSortingActions = new CollectionOptimisticActions<\n SortableColumn,\n {}\n >({\n container: this.container,\n collection: this.collection,\n });\n\n this.collectionDragAndDropState = new CollectionDragAndDropState({\n state: this,\n a11yContainer: params.modalsContainerRef,\n container: this.multiLevelSortingState.container,\n });\n }\n\n get _dnd() {\n return this.collectionDragAndDropState?.dnd;\n }\n\n get reportBi() {\n return this.multiLevelSortingState.table.reportBi;\n }\n\n get container() {\n return this.multiLevelSortingState.container;\n }\n\n get collection() {\n return this.multiLevelSortingState.sortingCollection;\n }\n\n _onSortReorder(fromColumnId: string, overColumnId: string) {\n const { orderedSortableColumns } = this.multiLevelSortingState;\n\n const indexBefore = orderedSortableColumns.findIndex(\n ({ columnId }) => columnId === fromColumnId,\n );\n const indexAfter = orderedSortableColumns.findIndex(\n ({ columnId }) => columnId === overColumnId,\n );\n\n const newOrder = arrayMove(orderedSortableColumns, indexBefore, indexAfter);\n\n this.events.emit('beforeReorder');\n\n orderedSortableColumns.replace(newOrder);\n\n this.events.emit('afterReorder', {\n indexBefore,\n indexAfter,\n columnId: fromColumnId,\n });\n }\n\n init() {\n const { reportBi, events, multiLevelSortingState } = this;\n\n const disposers = [\n this.multiLevelSortingActions.init(),\n addEventListener(events, 'beforeReorder', () => {\n const prevSortOrder = JSON.stringify(\n multiLevelSortingState.currentSortOrder,\n );\n events.once('afterReorder', ({ indexBefore, indexAfter, columnId }) => {\n const newSortOrder = JSON.stringify(\n multiLevelSortingState.currentSortOrder,\n );\n const numSortingColumns =\n multiLevelSortingState.orderedSortableColumns.length;\n\n reportBi(\n withoutDefaults(cairoReorderingSortColumns)({\n columnIndexBefore: indexBefore,\n columnIndexAfter: indexAfter,\n numSortingColumns,\n sortingColumn: columnId,\n newSortOrder,\n prevSortOrder,\n }),\n );\n });\n }),\n ];\n\n return () => {\n disposers.forEach((disposer) => disposer?.());\n };\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_bexCore","require","_bi","_sortable","_events","_interopRequireDefault","_DragAndDrop","_mobx","MultiLevelSortingStateDragAndDrop","constructor","params","_defineProperty2","default","undefined","EventEmitter","multiLevelSortingState","multiLevelSortingActions","CollectionOptimisticActions","container","collection","collectionDragAndDropState","CollectionDragAndDropState","state","a11yContainer","modalsContainerRef","makeObservable","forceRenderIndexes","observable","ref","_dnd","_this$collectionDragA","dnd","reportBi","table","sortingCollection","_onSortReorder","fromColumnId","overColumnId","orderedSortableColumns","indexBefore","findIndex","columnId","indexAfter","newOrder","arrayMove","events","emit","replace","init","disposers","addEventListener","prevSortOrder","JSON","stringify","currentSortOrder","once","newSortOrder","numSortingColumns","length","withoutDefaults","cairoReorderingSortColumns","columnIndexBefore","columnIndexAfter","sortingColumn","forEach","disposer","exports"],"sources":["../../../src/state/MultiLevelSortingDragAndDrop.ts"],"sourcesContent":["import {\n CollectionOptimisticActions,\n FiltersMap,\n TypedEmitter,\n addEventListener,\n withoutDefaults,\n} from '@wix/bex-core';\nimport { cairoReorderingSortColumns } from '@wix/bex-core/bi';\nimport { arrayMove } from '@wix/wix-style-react-incubator/dnd-kit/sortable';\nimport EventEmitter from 'events';\nimport {\n MultiLevelSortingState,\n SortableColumn,\n} from './MultiLevelSortingState';\nimport { CollectionDragAndDropState } from '../components/DragAndDrop';\nimport { makeObservable, observable } from 'mobx';\n\nexport interface MultiLevelSortingStateDragAndDropParams<\n T,\n F extends FiltersMap,\n> {\n readonly multiLevelSortingState: MultiLevelSortingState<T, F>;\n readonly modalsContainerRef: {\n current: HTMLElement | null | undefined;\n };\n}\n\nexport class MultiLevelSortingStateDragAndDrop<T, F extends FiltersMap> {\n readonly multiLevelSortingState;\n readonly multiLevelSortingActions: CollectionOptimisticActions<\n SortableColumn,\n {}\n >;\n\n readonly collectionDragAndDropState: CollectionDragAndDropState<\n SortableColumn,\n {}\n > | null = null;\n\n forceRenderIndexes = undefined as number[] | undefined;\n\n events = new EventEmitter() as TypedEmitter<{\n beforeReorder: () => unknown;\n afterReorder: (params: {\n indexBefore: number;\n indexAfter: number;\n columnId: string;\n }) => unknown;\n }>;\n\n constructor(params: MultiLevelSortingStateDragAndDropParams<T, F>) {\n const { multiLevelSortingState } = params;\n this.multiLevelSortingState = multiLevelSortingState;\n this.multiLevelSortingActions = new CollectionOptimisticActions<\n SortableColumn,\n {}\n >({\n container: this.container,\n collection: this.collection,\n });\n\n this.collectionDragAndDropState = new CollectionDragAndDropState({\n state: this,\n a11yContainer: params.modalsContainerRef,\n container: this.multiLevelSortingState.container,\n });\n\n makeObservable(this, {\n forceRenderIndexes: observable.ref,\n });\n }\n\n get _dnd() {\n return this.collectionDragAndDropState?.dnd;\n }\n\n get reportBi() {\n return this.multiLevelSortingState.table.reportBi;\n }\n\n get container() {\n return this.multiLevelSortingState.container;\n }\n\n get collection() {\n return this.multiLevelSortingState.sortingCollection;\n }\n\n _onSortReorder(fromColumnId: string, overColumnId: string) {\n const { orderedSortableColumns } = this.multiLevelSortingState;\n\n const indexBefore = orderedSortableColumns.findIndex(\n ({ columnId }) => columnId === fromColumnId,\n );\n const indexAfter = orderedSortableColumns.findIndex(\n ({ columnId }) => columnId === overColumnId,\n );\n\n const newOrder = arrayMove(orderedSortableColumns, indexBefore, indexAfter);\n\n this.events.emit('beforeReorder');\n\n orderedSortableColumns.replace(newOrder);\n\n this.events.emit('afterReorder', {\n indexBefore,\n indexAfter,\n columnId: fromColumnId,\n });\n }\n\n init() {\n const { reportBi, events, multiLevelSortingState } = this;\n\n const disposers = [\n this.multiLevelSortingActions.init(),\n addEventListener(events, 'beforeReorder', () => {\n const prevSortOrder = JSON.stringify(\n multiLevelSortingState.currentSortOrder,\n );\n events.once('afterReorder', ({ indexBefore, indexAfter, columnId }) => {\n const newSortOrder = JSON.stringify(\n multiLevelSortingState.currentSortOrder,\n );\n const numSortingColumns =\n multiLevelSortingState.orderedSortableColumns.length;\n\n reportBi(\n withoutDefaults(cairoReorderingSortColumns)({\n columnIndexBefore: indexBefore,\n columnIndexAfter: indexAfter,\n numSortingColumns,\n sortingColumn: columnId,\n newSortOrder,\n prevSortOrder,\n }),\n );\n });\n }),\n ];\n\n return () => {\n disposers.forEach((disposer) => disposer?.());\n };\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -13,7 +13,6 @@ class TableVirtualState {
13
13
  (0, _defineProperty2.default)(this, "gridRef", void 0);
14
14
  (0, _defineProperty2.default)(this, "table", void 0);
15
15
  (0, _defineProperty2.default)(this, "getVirtualItemKey", void 0);
16
- (0, _defineProperty2.default)(this, "forceRenderIndexes", undefined);
17
16
  (0, _defineProperty2.default)(this, "gap", 0);
18
17
  (0, _defineProperty2.default)(this, "rowHeight", 0);
19
18
  (0, _defineProperty2.default)(this, "estimatedRowHeight", 80);
@@ -30,7 +29,6 @@ class TableVirtualState {
30
29
  this.table = params.table;
31
30
  this.getVirtualItemKey = params.getVirtualItemKey;
32
31
  (0, _mobx.makeObservable)(this, {
33
- forceRenderIndexes: _mobx.observable.ref,
34
32
  rowHeight: _mobx.observable.ref,
35
33
  estimatedRowHeight: _mobx.observable.ref,
36
34
  rowHeights: _mobx.observable.ref,
@@ -43,6 +41,9 @@ class TableVirtualState {
43
41
  });
44
42
  this.init();
45
43
  }
44
+ get forceRenderIndexes() {
45
+ return this.toolbar.forceRenderIndexes;
46
+ }
46
47
  init() {
47
48
  const disposers = [(0, _mobx.reaction)(() => this.rowHeights, async () => {
48
49
  var _this$gridRef;
@@ -1 +1 @@
1
- {"version":3,"names":["_mobx","require","TableVirtualState","container","table","toolbar","constructor","params","_defineProperty2","default","undefined","size","key","rowHeights","getVirtualItemKey","makeObservable","forceRenderIndexes","observable","ref","rowHeight","estimatedRowHeight","calcGridProps","computed","rowHeightFunc","itemsToRenderCount","itemKeyRecyclerOverride","init","action","setVariableRowHeight","disposers","reaction","_this$gridRef","gridRef","resetAfterIndices","columnIndex","rowIndex","shouldForceUpdate","forEach","disposer","itemsContentWidth","itemsContentRect","rect","width","keyedItems","index","keyedItem","length","rowHeightProp","process","env","NODE_ENV","item","itemsContentHeight","avgRowHeight","overscanCount","Math","round","columnCount","columnWidth","columnWidthIncludingGap","rowHeightIncludingGap","exports"],"sources":["../../../src/state/TableVirtualState.ts"],"sourcesContent":["import { FiltersMap, KeyedItem } from '@wix/bex-core';\nimport { ToolbarCollectionState } from './ToolbarCollectionState';\nimport { action, computed, makeObservable, observable, reaction } from 'mobx';\nimport { ReactWindowGridRef } from '../components/VirtualGridRepeater/VirtualGridRepeaterState';\n\nexport interface TableVirtualStateParams<\n K extends KeyedItem<any>,\n T,\n F extends FiltersMap,\n> {\n readonly table: {\n keyedItems: K[];\n toolbar: ToolbarCollectionState<T, F>;\n };\n getVirtualItemKey?: (item: K) => string;\n}\n\ntype InferItem<K> = K extends KeyedItem<infer T> ? T : never;\n\nexport class TableVirtualState<\n K extends KeyedItem<any>,\n T,\n F extends FiltersMap,\n> {\n gridRef?: ReactWindowGridRef | null;\n\n readonly table;\n readonly getVirtualItemKey;\n\n forceRenderIndexes: { rowIndex: number; columnIndex: number }[] | undefined =\n undefined;\n\n gap = 0;\n\n rowHeight?: number | ((item: InferItem<K>, index: number) => number) = 0;\n estimatedRowHeight?: number = 80;\n\n rowHeights = {} as Record<number | string, number>;\n\n get container() {\n return this.table.toolbar.container;\n }\n\n constructor(params: TableVirtualStateParams<K, T, F>) {\n this.table = params.table;\n this.getVirtualItemKey = params.getVirtualItemKey;\n\n makeObservable(this, {\n forceRenderIndexes: observable.ref,\n rowHeight: observable.ref,\n estimatedRowHeight: observable.ref,\n rowHeights: observable.ref,\n calcGridProps: computed,\n rowHeightFunc: computed,\n itemsToRenderCount: computed,\n itemKeyRecyclerOverride: computed,\n init: action,\n setVariableRowHeight: action,\n });\n\n this.init();\n }\n\n init() {\n const disposers = [\n reaction(\n () => this.rowHeights,\n async () => {\n this.gridRef?.resetAfterIndices({\n columnIndex: 0,\n rowIndex: 0,\n shouldForceUpdate: true,\n });\n },\n ),\n ];\n\n return () => {\n disposers.forEach((disposer) => disposer?.());\n };\n }\n\n setVariableRowHeight = ({\n size,\n key,\n }: {\n size: number;\n key: number | string;\n }) => {\n this.rowHeights = {\n ...this.rowHeights,\n [key]: size,\n };\n };\n\n get toolbar() {\n return this.table.toolbar;\n }\n\n get itemsContentWidth() {\n return this.table.toolbar.itemsContentRect.rect.width ?? 0;\n }\n\n get itemKeyRecyclerOverride() {\n const {\n getVirtualItemKey,\n table: { keyedItems },\n } = this;\n return (index: number) => {\n const keyedItem = keyedItems[index];\n return getVirtualItemKey?.(keyedItem) ?? keyedItem?.key ?? index;\n };\n }\n\n get itemsToRenderCount() {\n return this.table.keyedItems.length;\n }\n\n get rowHeightFunc() {\n const {\n rowHeight: rowHeightProp,\n table: { keyedItems },\n } = this;\n\n if (process.env.NODE_ENV === 'test' && rowHeightProp == null) {\n // need to provide rowHeight for tests\n return () => 20;\n }\n\n if (rowHeightProp == null) {\n return undefined;\n }\n\n if (typeof rowHeightProp === 'number') {\n return () => rowHeightProp as number;\n }\n\n return action((index: number) =>\n rowHeightProp(keyedItems[index].item, index),\n );\n }\n\n get calcGridProps() {\n const {\n rowHeightFunc: rowHeight,\n itemsContentWidth,\n table: { toolbar },\n estimatedRowHeight,\n } = this;\n\n const { itemsContentHeight } = toolbar;\n const avgRowHeight = rowHeight?.(0) ?? estimatedRowHeight;\n\n const overscanCount =\n avgRowHeight == null\n ? 10\n : Math.round((itemsContentHeight / avgRowHeight) * 1.5);\n\n return {\n columnCount: 1,\n width: itemsContentWidth,\n columnWidth: () => itemsContentWidth,\n columnWidthIncludingGap: () => itemsContentWidth,\n rowHeight,\n rowHeightIncludingGap: ({\n index,\n key,\n }: {\n index: number;\n key: number | string;\n }) => {\n if (rowHeight != null) {\n return rowHeight(index);\n }\n return this.rowHeights[key];\n },\n estimatedRowHeight,\n overscanCount,\n };\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_mobx","require","TableVirtualState","container","table","toolbar","constructor","params","_defineProperty2","default","size","key","rowHeights","getVirtualItemKey","makeObservable","rowHeight","observable","ref","estimatedRowHeight","calcGridProps","computed","rowHeightFunc","itemsToRenderCount","itemKeyRecyclerOverride","init","action","setVariableRowHeight","forceRenderIndexes","disposers","reaction","_this$gridRef","gridRef","resetAfterIndices","columnIndex","rowIndex","shouldForceUpdate","forEach","disposer","itemsContentWidth","itemsContentRect","rect","width","keyedItems","index","keyedItem","length","rowHeightProp","process","env","NODE_ENV","undefined","item","itemsContentHeight","avgRowHeight","overscanCount","Math","round","columnCount","columnWidth","columnWidthIncludingGap","rowHeightIncludingGap","exports"],"sources":["../../../src/state/TableVirtualState.ts"],"sourcesContent":["import { FiltersMap, KeyedItem } from '@wix/bex-core';\nimport { ToolbarCollectionState } from './ToolbarCollectionState';\nimport { action, computed, makeObservable, observable, reaction } from 'mobx';\nimport { ReactWindowGridRef } from '../components/VirtualGridRepeater/VirtualGridRepeaterState';\n\nexport interface TableVirtualStateParams<\n K extends KeyedItem<any>,\n T,\n F extends FiltersMap,\n> {\n readonly table: {\n keyedItems: K[];\n toolbar: ToolbarCollectionState<T, F>;\n };\n getVirtualItemKey?: (item: K) => string;\n}\n\ntype InferItem<K> = K extends KeyedItem<infer T> ? T : never;\n\nexport class TableVirtualState<\n K extends KeyedItem<any>,\n T,\n F extends FiltersMap,\n> {\n gridRef?: ReactWindowGridRef | null;\n\n readonly table;\n readonly getVirtualItemKey;\n\n gap = 0;\n\n rowHeight?: number | ((item: InferItem<K>, index: number) => number) = 0;\n estimatedRowHeight?: number = 80;\n\n rowHeights = {} as Record<number | string, number>;\n\n get container() {\n return this.table.toolbar.container;\n }\n\n constructor(params: TableVirtualStateParams<K, T, F>) {\n this.table = params.table;\n this.getVirtualItemKey = params.getVirtualItemKey;\n\n makeObservable(this, {\n rowHeight: observable.ref,\n estimatedRowHeight: observable.ref,\n rowHeights: observable.ref,\n calcGridProps: computed,\n rowHeightFunc: computed,\n itemsToRenderCount: computed,\n itemKeyRecyclerOverride: computed,\n init: action,\n setVariableRowHeight: action,\n });\n\n this.init();\n }\n\n get forceRenderIndexes() {\n return this.toolbar.forceRenderIndexes;\n }\n\n init() {\n const disposers = [\n reaction(\n () => this.rowHeights,\n async () => {\n this.gridRef?.resetAfterIndices({\n columnIndex: 0,\n rowIndex: 0,\n shouldForceUpdate: true,\n });\n },\n ),\n ];\n\n return () => {\n disposers.forEach((disposer) => disposer?.());\n };\n }\n\n setVariableRowHeight = ({\n size,\n key,\n }: {\n size: number;\n key: number | string;\n }) => {\n this.rowHeights = {\n ...this.rowHeights,\n [key]: size,\n };\n };\n\n get toolbar() {\n return this.table.toolbar;\n }\n\n get itemsContentWidth() {\n return this.table.toolbar.itemsContentRect.rect.width ?? 0;\n }\n\n get itemKeyRecyclerOverride() {\n const {\n getVirtualItemKey,\n table: { keyedItems },\n } = this;\n return (index: number) => {\n const keyedItem = keyedItems[index];\n return getVirtualItemKey?.(keyedItem) ?? keyedItem?.key ?? index;\n };\n }\n\n get itemsToRenderCount() {\n return this.table.keyedItems.length;\n }\n\n get rowHeightFunc() {\n const {\n rowHeight: rowHeightProp,\n table: { keyedItems },\n } = this;\n\n if (process.env.NODE_ENV === 'test' && rowHeightProp == null) {\n // need to provide rowHeight for tests\n return () => 20;\n }\n\n if (rowHeightProp == null) {\n return undefined;\n }\n\n if (typeof rowHeightProp === 'number') {\n return () => rowHeightProp as number;\n }\n\n return action((index: number) =>\n rowHeightProp(keyedItems[index].item, index),\n );\n }\n\n get calcGridProps() {\n const {\n rowHeightFunc: rowHeight,\n itemsContentWidth,\n table: { toolbar },\n estimatedRowHeight,\n } = this;\n\n const { itemsContentHeight } = toolbar;\n const avgRowHeight = rowHeight?.(0) ?? estimatedRowHeight;\n\n const overscanCount =\n avgRowHeight == null\n ? 10\n : Math.round((itemsContentHeight / avgRowHeight) * 1.5);\n\n return {\n columnCount: 1,\n width: itemsContentWidth,\n columnWidth: () => itemsContentWidth,\n columnWidthIncludingGap: () => itemsContentWidth,\n rowHeight,\n rowHeightIncludingGap: ({\n index,\n key,\n }: {\n index: number;\n key: number | string;\n }) => {\n if (rowHeight != null) {\n return rowHeight(index);\n }\n return this.rowHeights[key];\n },\n estimatedRowHeight,\n overscanCount,\n };\n }\n}\n"],"mappings":";;;;;;AAEA,IAAAA,KAAA,GAAAC,OAAA;AAiBO,MAAMC,iBAAiB,CAI5B;EAaA,IAAIC,SAASA,CAAA,EAAG;IACd,OAAO,IAAI,CAACC,KAAK,CAACC,OAAO,CAACF,SAAS;EACrC;EAEAG,WAAWA,CAACC,MAAwC,EAAE;IAAA,IAAAC,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA,eAXhD,CAAC;IAAA,IAAAD,gBAAA,CAAAC,OAAA,qBAEgE,CAAC;IAAA,IAAAD,gBAAA,CAAAC,OAAA,8BAC1C,EAAE;IAAA,IAAAD,gBAAA,CAAAC,OAAA,sBAEnB,CAAC,CAAC;IAAA,IAAAD,gBAAA,CAAAC,OAAA,gCAgDQ,CAAC;MACtBC,IAAI;MACJC;IAIF,CAAC,KAAK;MACJ,IAAI,CAACC,UAAU,GAAG;QAChB,GAAG,IAAI,CAACA,UAAU;QAClB,CAACD,GAAG,GAAGD;MACT,CAAC;IACH,CAAC;IApDC,IAAI,CAACN,KAAK,GAAGG,MAAM,CAACH,KAAK;IACzB,IAAI,CAACS,iBAAiB,GAAGN,MAAM,CAACM,iBAAiB;IAEjD,IAAAC,oBAAc,EAAC,IAAI,EAAE;MACnBC,SAAS,EAAEC,gBAAU,CAACC,GAAG;MACzBC,kBAAkB,EAAEF,gBAAU,CAACC,GAAG;MAClCL,UAAU,EAAEI,gBAAU,CAACC,GAAG;MAC1BE,aAAa,EAAEC,cAAQ;MACvBC,aAAa,EAAED,cAAQ;MACvBE,kBAAkB,EAAEF,cAAQ;MAC5BG,uBAAuB,EAAEH,cAAQ;MACjCI,IAAI,EAAEC,YAAM;MACZC,oBAAoB,EAAED;IACxB,CAAC,CAAC;IAEF,IAAI,CAACD,IAAI,CAAC,CAAC;EACb;EAEA,IAAIG,kBAAkBA,CAAA,EAAG;IACvB,OAAO,IAAI,CAACtB,OAAO,CAACsB,kBAAkB;EACxC;EAEAH,IAAIA,CAAA,EAAG;IACL,MAAMI,SAAS,GAAG,CAChB,IAAAC,cAAQ,EACN,MAAM,IAAI,CAACjB,UAAU,EACrB,YAAY;MAAA,IAAAkB,aAAA;MACV,CAAAA,aAAA,OAAI,CAACC,OAAO,aAAZD,aAAA,CAAcE,iBAAiB,CAAC;QAC9BC,WAAW,EAAE,CAAC;QACdC,QAAQ,EAAE,CAAC;QACXC,iBAAiB,EAAE;MACrB,CAAC,CAAC;IACJ,CACF,CAAC,CACF;IAED,OAAO,MAAM;MACXP,SAAS,CAACQ,OAAO,CAAEC,QAAQ,IAAKA,QAAQ,oBAARA,QAAQ,CAAG,CAAC,CAAC;IAC/C,CAAC;EACH;EAeA,IAAIhC,OAAOA,CAAA,EAAG;IACZ,OAAO,IAAI,CAACD,KAAK,CAACC,OAAO;EAC3B;EAEA,IAAIiC,iBAAiBA,CAAA,EAAG;IACtB,OAAO,IAAI,CAAClC,KAAK,CAACC,OAAO,CAACkC,gBAAgB,CAACC,IAAI,CAACC,KAAK,IAAI,CAAC;EAC5D;EAEA,IAAIlB,uBAAuBA,CAAA,EAAG;IAC5B,MAAM;MACJV,iBAAiB;MACjBT,KAAK,EAAE;QAAEsC;MAAW;IACtB,CAAC,GAAG,IAAI;IACR,OAAQC,KAAa,IAAK;MACxB,MAAMC,SAAS,GAAGF,UAAU,CAACC,KAAK,CAAC;MACnC,OAAO,CAAA9B,iBAAiB,oBAAjBA,iBAAiB,CAAG+B,SAAS,CAAC,MAAIA,SAAS,oBAATA,SAAS,CAAEjC,GAAG,KAAIgC,KAAK;IAClE,CAAC;EACH;EAEA,IAAIrB,kBAAkBA,CAAA,EAAG;IACvB,OAAO,IAAI,CAAClB,KAAK,CAACsC,UAAU,CAACG,MAAM;EACrC;EAEA,IAAIxB,aAAaA,CAAA,EAAG;IAClB,MAAM;MACJN,SAAS,EAAE+B,aAAa;MACxB1C,KAAK,EAAE;QAAEsC;MAAW;IACtB,CAAC,GAAG,IAAI;IAER,IAAIK,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,MAAM,IAAIH,aAAa,IAAI,IAAI,EAAE;MAC5D;MACA,OAAO,MAAM,EAAE;IACjB;IAEA,IAAIA,aAAa,IAAI,IAAI,EAAE;MACzB,OAAOI,SAAS;IAClB;IAEA,IAAI,OAAOJ,aAAa,KAAK,QAAQ,EAAE;MACrC,OAAO,MAAMA,aAAuB;IACtC;IAEA,OAAO,IAAArB,YAAM,EAAEkB,KAAa,IAC1BG,aAAa,CAACJ,UAAU,CAACC,KAAK,CAAC,CAACQ,IAAI,EAAER,KAAK,CAC7C,CAAC;EACH;EAEA,IAAIxB,aAAaA,CAAA,EAAG;IAClB,MAAM;MACJE,aAAa,EAAEN,SAAS;MACxBuB,iBAAiB;MACjBlC,KAAK,EAAE;QAAEC;MAAQ,CAAC;MAClBa;IACF,CAAC,GAAG,IAAI;IAER,MAAM;MAAEkC;IAAmB,CAAC,GAAG/C,OAAO;IACtC,MAAMgD,YAAY,GAAG,CAAAtC,SAAS,oBAATA,SAAS,CAAG,CAAC,CAAC,KAAIG,kBAAkB;IAEzD,MAAMoC,aAAa,GACjBD,YAAY,IAAI,IAAI,GAChB,EAAE,GACFE,IAAI,CAACC,KAAK,CAAEJ,kBAAkB,GAAGC,YAAY,GAAI,GAAG,CAAC;IAE3D,OAAO;MACLI,WAAW,EAAE,CAAC;MACdhB,KAAK,EAAEH,iBAAiB;MACxBoB,WAAW,EAAEA,CAAA,KAAMpB,iBAAiB;MACpCqB,uBAAuB,EAAEA,CAAA,KAAMrB,iBAAiB;MAChDvB,SAAS;MACT6C,qBAAqB,EAAEA,CAAC;QACtBjB,KAAK;QACLhC;MAIF,CAAC,KAAK;QACJ,IAAII,SAAS,IAAI,IAAI,EAAE;UACrB,OAAOA,SAAS,CAAC4B,KAAK,CAAC;QACzB;QACA,OAAO,IAAI,CAAC/B,UAAU,CAACD,GAAG,CAAC;MAC7B,CAAC;MACDO,kBAAkB;MAClBoC;IACF,CAAC;EACH;AACF;AAACO,OAAA,CAAA3D,iBAAA,GAAAA,iBAAA","ignoreList":[]}
@@ -77,6 +77,7 @@ class ToolbarCollectionState {
77
77
  (0, _defineProperty2.default)(this, "pendingQuery", void 0);
78
78
  (0, _defineProperty2.default)(this, "AddApplyFiltersButton", void 0);
79
79
  (0, _defineProperty2.default)(this, "tabs", void 0);
80
+ (0, _defineProperty2.default)(this, "forceRenderIndexes", undefined);
80
81
  (0, _defineProperty2.default)(this, "getCollectionSnapshot", () => {
81
82
  var _this$viewsState, _originQuery$sort;
82
83
  const {
@@ -293,6 +294,7 @@ class ToolbarCollectionState {
293
294
  });
294
295
  };
295
296
  (0, _mobx.makeObservable)(this, {
297
+ forceRenderIndexes: _mobx.observable.ref,
296
298
  _userColumns: _mobx.observable.ref,
297
299
  _extendedColumns: _mobx.observable.ref,
298
300
  columns: _mobx.computed,