@wix/patterns 1.32.0 → 1.33.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/components/Collapse/Collapse.st.css.js +3 -3
- package/dist/cjs/components/Collapse/Collapse.st.css.js.map +1 -1
- package/dist/cjs/components/CollectionTable/CollectionTable.js +10 -10
- package/dist/cjs/components/CollectionTable/CollectionTable.js.map +1 -1
- package/dist/cjs/components/CollectionToolbar/CollectionToolbar.st.css.js +5 -5
- package/dist/cjs/components/CollectionToolbar/CollectionToolbar.st.css.js.map +1 -1
- package/dist/cjs/components/CollectionToolbar/SearchOrCustomFilter.st.css.js +3 -3
- package/dist/cjs/components/CollectionToolbar/SearchOrCustomFilter.st.css.js.map +1 -1
- package/dist/cjs/components/CollectionToolbarFilters/CollectionToolbarFilters.js.map +1 -1
- package/dist/cjs/components/CollectionViewsDropdown/AutoCompleteReadonly.st.css.js +2 -2
- package/dist/cjs/components/CollectionViewsDropdown/AutoCompleteReadonly.st.css.js.map +1 -1
- package/dist/cjs/components/CollectionViewsDropdown/ViewsDropdown.st.css.js +2 -2
- package/dist/cjs/components/CollectionViewsDropdown/ViewsDropdown.st.css.js.map +1 -1
- package/dist/cjs/components/CtaProps.js.map +1 -1
- package/dist/cjs/components/CustomFieldsWidget/CustomFieldsViewWidgetSection.st.css.js +3 -3
- package/dist/cjs/components/CustomFieldsWidget/CustomFieldsViewWidgetSection.st.css.js.map +1 -1
- package/dist/cjs/components/DragAndDrop/CollectionDragAndDropState.js +8 -12
- package/dist/cjs/components/DragAndDrop/CollectionDragAndDropState.js.map +1 -1
- package/dist/cjs/components/DragAndDrop/DragAndDrop.js.map +1 -1
- package/dist/cjs/components/DragAndDrop/DragAndDropCategoriesProps.js +4 -0
- package/dist/cjs/components/DragAndDrop/DragAndDropCategoriesProps.js.map +1 -0
- package/dist/cjs/components/DragAndDrop/DragAndDropState.js +5 -1
- package/dist/cjs/components/DragAndDrop/DragAndDropState.js.map +1 -1
- package/dist/cjs/components/DragHandle/DragHandle.st.css.js +2 -2
- package/dist/cjs/components/DragHandle/DragHandle.st.css.js.map +1 -1
- package/dist/cjs/components/Fade/Fade.st.css.js +2 -2
- package/dist/cjs/components/Fade/Fade.st.css.js.map +1 -1
- package/dist/cjs/components/Grid/Grid.js +6 -6
- package/dist/cjs/components/Grid/Grid.js.map +1 -1
- package/dist/cjs/components/Grid/GridItemBaseProps.js.map +1 -1
- package/dist/cjs/components/GridSections/GridSectionsState.js.map +1 -1
- package/dist/cjs/components/Heading/Heading.st.css.js +2 -2
- package/dist/cjs/components/Heading/Heading.st.css.js.map +1 -1
- package/dist/cjs/components/InputOverflow/InputOverflow.st.css.js +2 -2
- package/dist/cjs/components/InputOverflow/InputOverflow.st.css.js.map +1 -1
- package/dist/cjs/components/MaxHeightText/MaxHeightText.st.css.js +2 -2
- package/dist/cjs/components/MaxHeightText/MaxHeightText.st.css.js.map +1 -1
- package/dist/cjs/components/MaxLines/MaxLines.st.css.js +2 -2
- package/dist/cjs/components/MaxLines/MaxLines.st.css.js.map +1 -1
- package/dist/cjs/components/MultiBulkActionToolbar/MultiBulkActionToolbar.st.css.js +2 -2
- package/dist/cjs/components/MultiBulkActionToolbar/MultiBulkActionToolbar.st.css.js.map +1 -1
- package/dist/cjs/components/NestedTable/NestedTable.js +3 -3
- package/dist/cjs/components/NestedTable/NestedTable.js.map +1 -1
- package/dist/cjs/components/NestedTable/NestedTable.uni.driver.js +2 -0
- package/dist/cjs/components/NestedTable/NestedTable.uni.driver.js.map +1 -1
- package/dist/cjs/components/NestedTable/NestedTableParentCell.js +24 -13
- package/dist/cjs/components/NestedTable/NestedTableParentCell.js.map +1 -1
- package/dist/cjs/components/NestedTable/NestedTableParentCell.uni.driver.js +9 -2
- package/dist/cjs/components/NestedTable/NestedTableParentCell.uni.driver.js.map +1 -1
- package/dist/cjs/components/NestedTable/NestedTableRow.js +6 -2
- package/dist/cjs/components/NestedTable/NestedTableRow.js.map +1 -1
- package/dist/cjs/components/NestedTable/NestedTableRow.st.css.js +5 -5
- package/dist/cjs/components/NestedTable/NestedTableRow.st.css.js.map +1 -1
- package/dist/cjs/components/NestedTable/NestedTableWSRTable.js +2 -2
- package/dist/cjs/components/NestedTable/NestedTableWSRTable.js.map +1 -1
- package/dist/cjs/components/NestedTable/useModeTableProps.js.map +1 -1
- package/dist/cjs/components/NestedTableDragAndDrop/NestedTableDragAndDrop.js +1 -1
- package/dist/cjs/components/NestedTableDragAndDrop/NestedTableDragAndDrop.js.map +1 -1
- package/dist/cjs/components/NestedTableDragAndDrop/NestedTableDragAndDropContext.js +13 -4
- package/dist/cjs/components/NestedTableDragAndDrop/NestedTableDragAndDropContext.js.map +1 -1
- package/dist/cjs/components/NestedTableDragAndDrop/NestedTableDragAndDropState.js +176 -47
- package/dist/cjs/components/NestedTableDragAndDrop/NestedTableDragAndDropState.js.map +1 -1
- package/dist/cjs/components/NestedTableDragAndDrop/NestedTableGhostIndentationCell.js +1 -1
- package/dist/cjs/components/NestedTableDragAndDrop/NestedTableGhostIndentationCell.js.map +1 -1
- package/dist/cjs/components/NestedTableDragAndDrop/NestedTableGhostRow.uni.driver.js +2 -9
- package/dist/cjs/components/NestedTableDragAndDrop/NestedTableGhostRow.uni.driver.js.map +1 -1
- package/dist/cjs/components/NestedTableDragAndDrop/validateNestedTableDragAndDropProps.js +19 -0
- package/dist/cjs/components/NestedTableDragAndDrop/validateNestedTableDragAndDropProps.js.map +1 -0
- package/dist/cjs/components/PickerContent/PickerContent.st.css.js +2 -2
- package/dist/cjs/components/PickerContent/PickerContent.st.css.js.map +1 -1
- package/dist/cjs/components/PickerContent/PickerContentAdditionalStep.st.css.js +4 -4
- package/dist/cjs/components/PickerContent/PickerContentAdditionalStep.st.css.js.map +1 -1
- package/dist/cjs/components/PickerTableListItem/PickerTableListItem.st.css.js +2 -2
- package/dist/cjs/components/PickerTableListItem/PickerTableListItem.st.css.js.map +1 -1
- package/dist/cjs/components/ScrollableContent/ScrollableContent.st.css.js +2 -2
- package/dist/cjs/components/ScrollableContent/ScrollableContent.st.css.js.map +1 -1
- package/dist/cjs/components/SkeletonCard/SkeletonCard.st.css.js +3 -3
- package/dist/cjs/components/SkeletonCard/SkeletonCard.st.css.js.map +1 -1
- package/dist/cjs/components/SlidingModal/SlidingModal.st.css.js +2 -2
- package/dist/cjs/components/SlidingModal/SlidingModal.st.css.js.map +1 -1
- package/dist/cjs/components/Table/TableVirtualHeader.st.css.js +2 -2
- package/dist/cjs/components/Table/TableVirtualHeader.st.css.js.map +1 -1
- package/dist/cjs/components/TableGridSwitch/TableGridSwitch.js +4 -4
- package/dist/cjs/components/TableGridSwitch/TableGridSwitch.js.map +1 -1
- package/dist/cjs/components/TabsFilter/TabsFilter.st.css.js +3 -3
- package/dist/cjs/components/TabsFilter/TabsFilter.st.css.js.map +1 -1
- package/dist/cjs/components/Tags/ManageTags/ManageTagsModal/ManageTagsModal.st.css.js +2 -2
- package/dist/cjs/components/Tags/ManageTags/ManageTagsModal/ManageTagsModal.st.css.js.map +1 -1
- package/dist/cjs/components/ToolbarCollection/ToolbarCollection.js +3 -3
- package/dist/cjs/components/ToolbarCollection/ToolbarCollection.js.map +1 -1
- package/dist/cjs/components/ToolbarItemBox/ToolbarItemBox.st.css.js +2 -2
- package/dist/cjs/components/ToolbarItemBox/ToolbarItemBox.st.css.js.map +1 -1
- package/dist/cjs/components/common.st.css.js +4 -4
- package/dist/cjs/components/common.st.css.js.map +1 -1
- package/dist/cjs/hooks/useCreateNestedOptimisticActions.js +3 -1
- package/dist/cjs/hooks/useCreateNestedOptimisticActions.js.map +1 -1
- package/dist/cjs/hooks/useOptionalCachedState.js +3 -3
- package/dist/cjs/hooks/useOptionalCachedState.js.map +1 -1
- package/dist/cjs/hooks/useSyncCollectionOnEntityReturn.js +90 -0
- package/dist/cjs/hooks/useSyncCollectionOnEntityReturn.js.map +1 -0
- package/dist/cjs/hooks/useSyncCollectionOnEntityUpdate.js +43 -0
- package/dist/cjs/hooks/useSyncCollectionOnEntityUpdate.js.map +1 -0
- package/dist/cjs/model/tableColumn.js.map +1 -1
- package/dist/cjs/state/DragAndDrop/createOptimisticActionsOrderByModeReaction.js +19 -0
- package/dist/cjs/state/DragAndDrop/createOptimisticActionsOrderByModeReaction.js.map +1 -0
- package/dist/cjs/state/EntityPage/EntityPageState.js +4 -5
- package/dist/cjs/state/EntityPage/EntityPageState.js.map +1 -1
- package/dist/cjs/state/NestedTableState/NestedCollectionLevelDescriptor.js.map +1 -1
- package/dist/cjs/state/NestedTableState/NestedCollectionNodeState.js +15 -5
- package/dist/cjs/state/NestedTableState/NestedCollectionNodeState.js.map +1 -1
- package/dist/cjs/state/NestedTableState/NestedCollectionState.js +11 -1
- package/dist/cjs/state/NestedTableState/NestedCollectionState.js.map +1 -1
- package/dist/cjs/state/NestedTableState/NestedTableLevelDescriptor.js.map +1 -1
- package/dist/cjs/state/NestedTableState/NestedTableNestedModeState.js +35 -6
- package/dist/cjs/state/NestedTableState/NestedTableNestedModeState.js.map +1 -1
- package/dist/cjs/state/NestedTableState/NestedTableNodeState.js +14 -26
- package/dist/cjs/state/NestedTableState/NestedTableNodeState.js.map +1 -1
- package/dist/cjs/state/NestedTableState/NestedTableState.js +6 -1
- package/dist/cjs/state/NestedTableState/NestedTableState.js.map +1 -1
- package/dist/cjs/state/TableVirtualState.js +5 -2
- package/dist/cjs/state/TableVirtualState.js.map +1 -1
- package/dist/cjs/state/ToolbarCollectionState.js +3 -0
- package/dist/cjs/state/ToolbarCollectionState.js.map +1 -1
- package/dist/cjs/state/WixPatternsRouterState.js.map +1 -1
- package/dist/cjs/styles.global.css +1 -1
- package/dist/cjs/test-utils/getUniDriverStyle.js +14 -0
- package/dist/cjs/test-utils/getUniDriverStyle.js.map +1 -0
- package/dist/cjs/version.js +1 -1
- package/dist/cjs/version.js.map +1 -1
- package/dist/esm/components/Collapse/Collapse.st.css.js +2 -2
- package/dist/esm/components/CollectionTable/CollectionTable.js.map +1 -1
- package/dist/esm/components/CollectionToolbar/CollectionToolbar.st.css.js +2 -2
- package/dist/esm/components/CollectionToolbar/SearchOrCustomFilter.st.css.js +2 -2
- package/dist/esm/components/CollectionToolbarFilters/CollectionToolbarFilters.js.map +1 -1
- package/dist/esm/components/CollectionViewsDropdown/AutoCompleteReadonly.st.css.js +2 -2
- package/dist/esm/components/CollectionViewsDropdown/ViewsDropdown.st.css.js +2 -2
- package/dist/esm/components/CustomFieldsWidget/CustomFieldsViewWidgetSection.st.css.js +2 -2
- package/dist/esm/components/CustomFieldsWidget/CustomFieldsViewWidgetSection.st.css.js.map +1 -1
- package/dist/esm/components/DragAndDrop/CollectionDragAndDropState.js +6 -11
- package/dist/esm/components/DragAndDrop/CollectionDragAndDropState.js.map +1 -1
- package/dist/esm/components/DragAndDrop/DragAndDropCategoriesProps.js +2 -0
- package/dist/esm/components/DragAndDrop/DragAndDropCategoriesProps.js.map +1 -0
- package/dist/esm/components/DragAndDrop/DragAndDropState.js +3 -1
- package/dist/esm/components/DragAndDrop/DragAndDropState.js.map +1 -1
- package/dist/esm/components/DragHandle/DragHandle.st.css.js +2 -2
- package/dist/esm/components/DragHandle/DragHandle.st.css.js.map +1 -1
- package/dist/esm/components/Fade/Fade.st.css.js +2 -2
- package/dist/esm/components/Grid/Grid.js.map +1 -1
- package/dist/esm/components/GridSections/GridSectionsState.js.map +1 -1
- package/dist/esm/components/Heading/Heading.st.css.js +2 -2
- package/dist/esm/components/InputOverflow/InputOverflow.st.css.js +2 -2
- package/dist/esm/components/MaxHeightText/MaxHeightText.st.css.js +2 -2
- package/dist/esm/components/MaxHeightText/MaxHeightText.st.css.js.map +1 -1
- package/dist/esm/components/MaxLines/MaxLines.st.css.js +2 -2
- package/dist/esm/components/MultiBulkActionToolbar/MultiBulkActionToolbar.st.css.js +2 -2
- package/dist/esm/components/NestedTable/NestedTable.js.map +1 -1
- package/dist/esm/components/NestedTable/NestedTable.uni.driver.js +2 -0
- package/dist/esm/components/NestedTable/NestedTable.uni.driver.js.map +1 -1
- package/dist/esm/components/NestedTable/NestedTableParentCell.js +8 -2
- package/dist/esm/components/NestedTable/NestedTableParentCell.js.map +1 -1
- package/dist/esm/components/NestedTable/NestedTableParentCell.uni.driver.js +7 -1
- package/dist/esm/components/NestedTable/NestedTableParentCell.uni.driver.js.map +1 -1
- package/dist/esm/components/NestedTable/NestedTableRow.js +4 -1
- package/dist/esm/components/NestedTable/NestedTableRow.js.map +1 -1
- package/dist/esm/components/NestedTable/NestedTableRow.st.css.js +2 -2
- package/dist/esm/components/NestedTable/NestedTableWSRTable.js +2 -2
- package/dist/esm/components/NestedTable/NestedTableWSRTable.js.map +1 -1
- package/dist/esm/components/NestedTableDragAndDrop/NestedTableDragAndDrop.js +1 -1
- package/dist/esm/components/NestedTableDragAndDrop/NestedTableDragAndDrop.js.map +1 -1
- package/dist/esm/components/NestedTableDragAndDrop/NestedTableDragAndDropContext.js +9 -0
- package/dist/esm/components/NestedTableDragAndDrop/NestedTableDragAndDropContext.js.map +1 -1
- package/dist/esm/components/NestedTableDragAndDrop/NestedTableDragAndDropState.js +154 -41
- package/dist/esm/components/NestedTableDragAndDrop/NestedTableDragAndDropState.js.map +1 -1
- package/dist/esm/components/NestedTableDragAndDrop/NestedTableGhostIndentationCell.js.map +1 -1
- package/dist/esm/components/NestedTableDragAndDrop/NestedTableGhostRow.uni.driver.js +2 -9
- package/dist/esm/components/NestedTableDragAndDrop/NestedTableGhostRow.uni.driver.js.map +1 -1
- package/dist/esm/components/NestedTableDragAndDrop/validateNestedTableDragAndDropProps.js +15 -0
- package/dist/esm/components/NestedTableDragAndDrop/validateNestedTableDragAndDropProps.js.map +1 -0
- package/dist/esm/components/PickerContent/PickerContent.st.css.js +2 -2
- package/dist/esm/components/PickerContent/PickerContentAdditionalStep.st.css.js +2 -2
- package/dist/esm/components/PickerContent/PickerContentAdditionalStep.st.css.js.map +1 -1
- package/dist/esm/components/PickerTableListItem/PickerTableListItem.st.css.js +2 -2
- package/dist/esm/components/ScrollableContent/ScrollableContent.st.css.js +2 -2
- package/dist/esm/components/ScrollableContent/ScrollableContent.st.css.js.map +1 -1
- package/dist/esm/components/SkeletonCard/SkeletonCard.st.css.js +2 -2
- package/dist/esm/components/SkeletonCard/SkeletonCard.st.css.js.map +1 -1
- package/dist/esm/components/SlidingModal/SlidingModal.st.css.js +2 -2
- package/dist/esm/components/Table/TableVirtualHeader.st.css.js +2 -2
- package/dist/esm/components/TableGridSwitch/TableGridSwitch.js.map +1 -1
- package/dist/esm/components/TabsFilter/TabsFilter.st.css.js +2 -2
- package/dist/esm/components/Tags/ManageTags/ManageTagsModal/ManageTagsModal.st.css.js +2 -2
- package/dist/esm/components/ToolbarCollection/ToolbarCollection.js.map +1 -1
- package/dist/esm/components/ToolbarItemBox/ToolbarItemBox.st.css.js +2 -2
- package/dist/esm/components/ToolbarItemBox/ToolbarItemBox.st.css.js.map +1 -1
- package/dist/esm/components/common.st.css.js +2 -2
- package/dist/esm/hooks/useCreateNestedOptimisticActions.js +2 -0
- package/dist/esm/hooks/useCreateNestedOptimisticActions.js.map +1 -1
- package/dist/esm/hooks/useOptionalCachedState.js +3 -3
- package/dist/esm/hooks/useOptionalCachedState.js.map +1 -1
- package/dist/esm/hooks/useSyncCollectionOnEntityReturn.js +84 -0
- package/dist/esm/hooks/useSyncCollectionOnEntityReturn.js.map +1 -0
- package/dist/esm/hooks/useSyncCollectionOnEntityUpdate.js +38 -0
- package/dist/esm/hooks/useSyncCollectionOnEntityUpdate.js.map +1 -0
- package/dist/esm/state/DragAndDrop/createOptimisticActionsOrderByModeReaction.js +11 -0
- package/dist/esm/state/DragAndDrop/createOptimisticActionsOrderByModeReaction.js.map +1 -0
- package/dist/esm/state/EntityPage/EntityPageState.js +2 -5
- package/dist/esm/state/EntityPage/EntityPageState.js.map +1 -1
- package/dist/esm/state/NestedTableState/NestedCollectionNodeState.js +12 -3
- package/dist/esm/state/NestedTableState/NestedCollectionNodeState.js.map +1 -1
- package/dist/esm/state/NestedTableState/NestedCollectionState.js +9 -0
- package/dist/esm/state/NestedTableState/NestedCollectionState.js.map +1 -1
- package/dist/esm/state/NestedTableState/NestedTableNestedModeState.js +19 -2
- package/dist/esm/state/NestedTableState/NestedTableNestedModeState.js.map +1 -1
- package/dist/esm/state/NestedTableState/NestedTableNodeState.js +10 -16
- package/dist/esm/state/NestedTableState/NestedTableNodeState.js.map +1 -1
- package/dist/esm/state/NestedTableState/NestedTableState.js +6 -1
- package/dist/esm/state/NestedTableState/NestedTableState.js.map +1 -1
- package/dist/esm/state/TableVirtualState.js +4 -2
- package/dist/esm/state/TableVirtualState.js.map +1 -1
- package/dist/esm/state/ToolbarCollectionState.js +3 -0
- package/dist/esm/state/ToolbarCollectionState.js.map +1 -1
- package/dist/esm/styles.global.css +1 -1
- package/dist/esm/test-utils/getUniDriverStyle.js +9 -0
- package/dist/esm/test-utils/getUniDriverStyle.js.map +1 -0
- package/dist/esm/version.js +1 -1
- package/dist/types/components/CollectionTable/CollectionTable.d.ts +3 -1
- package/dist/types/components/CollectionTable/CollectionTable.d.ts.map +1 -1
- package/dist/types/components/CtaProps.d.ts +13 -0
- package/dist/types/components/CtaProps.d.ts.map +1 -1
- package/dist/types/components/CustomFieldsWidget/CustomFieldsViewWidgetSection.st.css.d.ts.map +1 -1
- package/dist/types/components/DragAndDrop/CollectionDragAndDropState.d.ts.map +1 -1
- package/dist/types/components/DragAndDrop/DragAndDrop.d.ts +1 -1
- package/dist/types/components/DragAndDrop/DragAndDrop.d.ts.map +1 -1
- package/dist/types/components/DragAndDrop/DragAndDropCategoriesProps.d.ts +12 -0
- package/dist/types/components/DragAndDrop/DragAndDropCategoriesProps.d.ts.map +1 -0
- package/dist/types/components/DragAndDrop/DragAndDropState.d.ts +2 -1
- package/dist/types/components/DragAndDrop/DragAndDropState.d.ts.map +1 -1
- package/dist/types/components/DragHandle/DragHandle.st.css.d.ts.map +1 -1
- package/dist/types/components/Grid/Grid.d.ts +8 -2
- package/dist/types/components/Grid/Grid.d.ts.map +1 -1
- package/dist/types/components/GridSections/GridSectionsState.d.ts +13 -0
- package/dist/types/components/GridSections/GridSectionsState.d.ts.map +1 -1
- package/dist/types/components/MaxHeightText/MaxHeightText.st.css.d.ts.map +1 -1
- package/dist/types/components/NestedTable/NestedTable.d.ts +3 -35
- package/dist/types/components/NestedTable/NestedTable.d.ts.map +1 -1
- package/dist/types/components/NestedTable/NestedTable.uni.driver.d.ts +4 -0
- package/dist/types/components/NestedTable/NestedTable.uni.driver.d.ts.map +1 -1
- package/dist/types/components/NestedTable/NestedTableParentCell.d.ts.map +1 -1
- package/dist/types/components/NestedTable/NestedTableParentCell.uni.driver.d.ts +1 -0
- package/dist/types/components/NestedTable/NestedTableParentCell.uni.driver.d.ts.map +1 -1
- package/dist/types/components/NestedTable/NestedTableRow.d.ts.map +1 -1
- package/dist/types/components/NestedTable/useModeTableProps.d.ts +3 -3
- package/dist/types/components/NestedTable/useModeTableProps.d.ts.map +1 -1
- package/dist/types/components/NestedTableDragAndDrop/NestedTableDragAndDrop.d.ts +1 -1
- package/dist/types/components/NestedTableDragAndDrop/NestedTableDragAndDropContext.d.ts.map +1 -1
- package/dist/types/components/NestedTableDragAndDrop/NestedTableDragAndDropState.d.ts +35 -7
- package/dist/types/components/NestedTableDragAndDrop/NestedTableDragAndDropState.d.ts.map +1 -1
- package/dist/types/components/NestedTableDragAndDrop/NestedTableGhostIndentationCell.d.ts.map +1 -1
- package/dist/types/components/NestedTableDragAndDrop/NestedTableGhostRow.uni.driver.d.ts.map +1 -1
- package/dist/types/components/NestedTableDragAndDrop/validateNestedTableDragAndDropProps.d.ts +3 -0
- package/dist/types/components/NestedTableDragAndDrop/validateNestedTableDragAndDropProps.d.ts.map +1 -0
- package/dist/types/components/PickerContent/PickerContentAdditionalStep.st.css.d.ts.map +1 -1
- package/dist/types/components/ScrollableContent/ScrollableContent.st.css.d.ts.map +1 -1
- package/dist/types/components/SkeletonCard/SkeletonCard.st.css.d.ts.map +1 -1
- package/dist/types/components/TableGridSwitch/TableGridSwitch.d.ts +2 -1
- package/dist/types/components/TableGridSwitch/TableGridSwitch.d.ts.map +1 -1
- package/dist/types/components/ToolbarCollection/ToolbarCollection.d.ts +14 -19
- package/dist/types/components/ToolbarCollection/ToolbarCollection.d.ts.map +1 -1
- package/dist/types/components/ToolbarItemBox/ToolbarItemBox.st.css.d.ts.map +1 -1
- package/dist/types/hooks/useCreateNestedOptimisticActions.d.ts +5 -3
- package/dist/types/hooks/useCreateNestedOptimisticActions.d.ts.map +1 -1
- package/dist/types/hooks/useOptionalCachedState.d.ts +2 -1
- package/dist/types/hooks/useOptionalCachedState.d.ts.map +1 -1
- package/dist/types/hooks/useSyncCollectionOnEntityReturn.d.ts +10 -0
- package/dist/types/hooks/useSyncCollectionOnEntityReturn.d.ts.map +1 -0
- package/dist/types/hooks/useSyncCollectionOnEntityUpdate.d.ts +4 -0
- package/dist/types/hooks/useSyncCollectionOnEntityUpdate.d.ts.map +1 -0
- package/dist/types/model/tableColumn.d.ts +1 -1
- package/dist/types/model/tableColumn.d.ts.map +1 -1
- package/dist/types/state/DragAndDrop/createOptimisticActionsOrderByModeReaction.d.ts +4 -0
- package/dist/types/state/DragAndDrop/createOptimisticActionsOrderByModeReaction.d.ts.map +1 -0
- package/dist/types/state/EntityPage/EntityPageState.d.ts.map +1 -1
- package/dist/types/state/NestedTableState/NestedCollectionLevelDescriptor.d.ts +7 -2
- package/dist/types/state/NestedTableState/NestedCollectionLevelDescriptor.d.ts.map +1 -1
- package/dist/types/state/NestedTableState/NestedCollectionNodeState.d.ts +2 -0
- package/dist/types/state/NestedTableState/NestedCollectionNodeState.d.ts.map +1 -1
- package/dist/types/state/NestedTableState/NestedCollectionState.d.ts +8 -1
- package/dist/types/state/NestedTableState/NestedCollectionState.d.ts.map +1 -1
- package/dist/types/state/NestedTableState/NestedTableFlatModeState.d.ts +1 -1
- package/dist/types/state/NestedTableState/NestedTableFlatModeState.d.ts.map +1 -1
- package/dist/types/state/NestedTableState/NestedTableLevelDescriptor.d.ts +2 -0
- package/dist/types/state/NestedTableState/NestedTableLevelDescriptor.d.ts.map +1 -1
- package/dist/types/state/NestedTableState/NestedTableNestedModeState.d.ts +8 -1
- package/dist/types/state/NestedTableState/NestedTableNestedModeState.d.ts.map +1 -1
- package/dist/types/state/NestedTableState/NestedTableNodeState.d.ts +3 -8
- package/dist/types/state/NestedTableState/NestedTableNodeState.d.ts.map +1 -1
- package/dist/types/state/NestedTableState/NestedTableState.d.ts +2 -1
- package/dist/types/state/NestedTableState/NestedTableState.d.ts.map +1 -1
- package/dist/types/state/TableFoldersState.d.ts +1 -1
- package/dist/types/state/TableFoldersState.d.ts.map +1 -1
- package/dist/types/state/TableState.d.ts +1 -1
- package/dist/types/state/TableState.d.ts.map +1 -1
- package/dist/types/state/TableVirtualState.d.ts +10 -6
- package/dist/types/state/TableVirtualState.d.ts.map +1 -1
- package/dist/types/state/ToolbarCollectionState.d.ts +1 -0
- package/dist/types/state/ToolbarCollectionState.d.ts.map +1 -1
- package/dist/types/state/WixPatternsRouterState.d.ts +1 -1
- package/dist/types/test-utils/getUniDriverStyle.d.ts +3 -0
- package/dist/types/test-utils/getUniDriverStyle.d.ts.map +1 -0
- package/dist/types/testkit/enzyme.d.ts +4 -0
- package/dist/types/testkit/enzyme.d.ts.map +1 -1
- package/dist/types/testkit/jsdom.d.ts +4 -0
- package/dist/types/testkit/jsdom.d.ts.map +1 -1
- package/dist/types/testkit/puppeteer.d.ts +4 -0
- package/dist/types/testkit/puppeteer.d.ts.map +1 -1
- package/dist/types/version.d.ts +1 -1
- package/package.json +3 -3
- package/dist/cjs/hooks/useCachedUpdatedEntity.js +0 -101
- package/dist/cjs/hooks/useCachedUpdatedEntity.js.map +0 -1
- package/dist/esm/hooks/useCachedUpdatedEntity.js +0 -99
- package/dist/esm/hooks/useCachedUpdatedEntity.js.map +0 -1
- package/dist/types/hooks/useCachedUpdatedEntity.d.ts +0 -3
- package/dist/types/hooks/useCachedUpdatedEntity.d.ts.map +0 -1
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
exports.__esModule = true;
|
|
4
|
+
exports.useSyncCollectionOnEntityReturn = useSyncCollectionOnEntityReturn;
|
|
5
|
+
var _react = require("react");
|
|
6
|
+
var _WixPatternsRouterProvider = require("../providers/WixPatternsRouterProvider");
|
|
7
|
+
var _react2 = require("@wix/bex-core/react");
|
|
8
|
+
var _useSelector = require("../useSelector");
|
|
9
|
+
function useSyncCollectionOnEntityReturn({
|
|
10
|
+
cachedState,
|
|
11
|
+
updateCollection,
|
|
12
|
+
checkIfViewSynced,
|
|
13
|
+
getEntityFromRouterState,
|
|
14
|
+
getCollectionToUpdate
|
|
15
|
+
}) {
|
|
16
|
+
const container = (0, _react2.useWixPatternsContainer)();
|
|
17
|
+
const router = (0, _WixPatternsRouterProvider.useWixPatternsRouter)();
|
|
18
|
+
const routeState = (0, _useSelector.useSelector)(() => router == null ? void 0 : router.currentState);
|
|
19
|
+
const entity = (0, _react.useMemo)(() => routeState ? getEntityFromRouterState(routeState) : null, [getEntityFromRouterState, routeState]);
|
|
20
|
+
const collection = (0, _react.useMemo)(() => {
|
|
21
|
+
if (!cachedState) {
|
|
22
|
+
return null;
|
|
23
|
+
}
|
|
24
|
+
return (getCollectionToUpdate == null ? void 0 : getCollectionToUpdate(cachedState, entity)) || cachedState.toolbar.collection;
|
|
25
|
+
}, [cachedState, entity]);
|
|
26
|
+
const [currentToast, setCurrentToast] = (0, _react.useState)(null);
|
|
27
|
+
const showViewUpdatedToast = () => {
|
|
28
|
+
const toast = container.showToast == null ? void 0 : container.showToast({
|
|
29
|
+
type: 'STANDARD',
|
|
30
|
+
timeout: 'NONE',
|
|
31
|
+
message: container.translate('cairo.updatedView.collectionPage.toast.desc'),
|
|
32
|
+
onCloseClick: () => {
|
|
33
|
+
setCurrentToast(null);
|
|
34
|
+
},
|
|
35
|
+
biName: 'cairo-collection-page-updated-toast',
|
|
36
|
+
action: {
|
|
37
|
+
text: container.translate('cairo.updatedView.collectionPage.toast.cta'),
|
|
38
|
+
onClick: () => {
|
|
39
|
+
collection == null || collection.refreshAllPages();
|
|
40
|
+
setCurrentToast(null);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
});
|
|
44
|
+
if (toast) {
|
|
45
|
+
setCurrentToast(toast);
|
|
46
|
+
}
|
|
47
|
+
};
|
|
48
|
+
(0, _react.useEffect)(() => {
|
|
49
|
+
if (collection && entity) {
|
|
50
|
+
try {
|
|
51
|
+
updateCollection(collection, entity);
|
|
52
|
+
setTimeout(() => {
|
|
53
|
+
checkIfViewSynced(collection, entity).then(isViewSynced => {
|
|
54
|
+
if (!isViewSynced) {
|
|
55
|
+
showViewUpdatedToast();
|
|
56
|
+
}
|
|
57
|
+
});
|
|
58
|
+
}, 3000);
|
|
59
|
+
} catch (e) {} finally {
|
|
60
|
+
if (router) {
|
|
61
|
+
router.setCurrentState(null);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
}, [cachedState, routeState, collection, entity]);
|
|
66
|
+
(0, _react.useEffect)(() => {
|
|
67
|
+
if (!currentToast || !cachedState) {
|
|
68
|
+
return () => {};
|
|
69
|
+
}
|
|
70
|
+
const removeToast = () => {
|
|
71
|
+
currentToast == null || currentToast.remove();
|
|
72
|
+
setCurrentToast(null);
|
|
73
|
+
};
|
|
74
|
+
const onFetch = () => {
|
|
75
|
+
removeToast();
|
|
76
|
+
if (router) {
|
|
77
|
+
router.isUsingCache = false;
|
|
78
|
+
}
|
|
79
|
+
};
|
|
80
|
+
collection == null || collection.emitter.on('fetch', () => {
|
|
81
|
+
onFetch();
|
|
82
|
+
});
|
|
83
|
+
return () => {
|
|
84
|
+
collection == null || collection.emitter.off('fetch', () => {
|
|
85
|
+
onFetch();
|
|
86
|
+
});
|
|
87
|
+
};
|
|
88
|
+
}, [currentToast, collection]);
|
|
89
|
+
}
|
|
90
|
+
//# sourceMappingURL=useSyncCollectionOnEntityReturn.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_react","require","_WixPatternsRouterProvider","_react2","_useSelector","useSyncCollectionOnEntityReturn","cachedState","updateCollection","checkIfViewSynced","getEntityFromRouterState","getCollectionToUpdate","container","useWixPatternsContainer","router","useWixPatternsRouter","routeState","useSelector","currentState","entity","useMemo","collection","toolbar","currentToast","setCurrentToast","useState","showViewUpdatedToast","toast","showToast","type","timeout","message","translate","onCloseClick","biName","action","text","onClick","refreshAllPages","useEffect","setTimeout","then","isViewSynced","e","setCurrentState","removeToast","remove","onFetch","isUsingCache","emitter","on","off"],"sources":["../../../src/hooks/useSyncCollectionOnEntityReturn.ts"],"sourcesContent":["import { useEffect, useMemo, useState } from 'react';\nimport { useWixPatternsRouter } from '../providers/WixPatternsRouterProvider';\nimport { ICollectionComponentState } from '../state/ICollectionComponentState';\nimport { useWixPatternsContainer } from '@wix/bex-core/react';\nimport { CollectionState, RemoveToast } from '@wix/bex-core';\nimport { useSelector } from '../useSelector';\n\nexport function useSyncCollectionOnEntityReturn<\n S extends ICollectionComponentState,\n>({\n cachedState,\n updateCollection,\n checkIfViewSynced,\n getEntityFromRouterState,\n getCollectionToUpdate,\n}: {\n cachedState?: S;\n updateCollection: (\n collectionToUpdate: CollectionState<any>,\n entity: any,\n ) => void;\n checkIfViewSynced: (\n collectionsToUpdate: CollectionState<any>,\n entity: any,\n ) => Promise<boolean>;\n getEntityFromRouterState: (state: any) => any;\n getCollectionToUpdate?: (\n state: S,\n entity: any,\n ) => CollectionState<any> | null;\n}) {\n const container = useWixPatternsContainer();\n const router = useWixPatternsRouter();\n\n const routeState = useSelector(() => router?.currentState);\n\n const entity = useMemo(\n () => (routeState ? getEntityFromRouterState(routeState) : null),\n [getEntityFromRouterState, routeState],\n );\n const collection = useMemo(() => {\n if (!cachedState) {\n return null;\n }\n\n return (\n getCollectionToUpdate?.(cachedState, entity) ||\n cachedState.toolbar.collection\n );\n }, [cachedState, entity]);\n\n const [currentToast, setCurrentToast] = useState<{\n remove: RemoveToast;\n } | null>(null);\n\n const showViewUpdatedToast = () => {\n const toast = container.showToast?.({\n type: 'STANDARD',\n timeout: 'NONE',\n message: container.translate(\n 'cairo.updatedView.collectionPage.toast.desc',\n ),\n onCloseClick: () => {\n setCurrentToast(null);\n },\n biName: 'cairo-collection-page-updated-toast',\n action: {\n text: container.translate('cairo.updatedView.collectionPage.toast.cta'),\n onClick: () => {\n collection?.refreshAllPages();\n setCurrentToast(null);\n },\n },\n });\n\n if (toast) {\n setCurrentToast(toast);\n }\n };\n\n useEffect(() => {\n if (collection && entity) {\n try {\n updateCollection(collection, entity);\n setTimeout(() => {\n checkIfViewSynced(collection, entity).then(\n (isViewSynced: boolean) => {\n if (!isViewSynced) {\n showViewUpdatedToast();\n }\n },\n );\n }, 3000);\n } catch (e) {\n } finally {\n if (router) {\n router.setCurrentState(null);\n }\n }\n }\n }, [cachedState, routeState, collection, entity]);\n\n useEffect(() => {\n if (!currentToast || !cachedState) {\n return () => {};\n }\n\n const removeToast = () => {\n currentToast?.remove();\n setCurrentToast(null);\n };\n\n const onFetch = () => {\n removeToast();\n if (router) {\n router.isUsingCache = false;\n }\n };\n\n collection?.emitter.on('fetch', () => {\n onFetch();\n });\n return () => {\n collection?.emitter.off('fetch', () => {\n onFetch();\n });\n };\n }, [currentToast, collection]);\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
exports.__esModule = true;
|
|
4
|
+
exports.useSyncCollectionOnEntityUpdate = useSyncCollectionOnEntityUpdate;
|
|
5
|
+
var _react = require("react");
|
|
6
|
+
var _useSyncCollectionOnEntityReturn = require("./useSyncCollectionOnEntityReturn");
|
|
7
|
+
function useSyncCollectionOnEntityUpdate(cachedState, getCollectionToUpdate) {
|
|
8
|
+
const updateCollection = (0, _react.useCallback)((collection, updatedEntity) => {
|
|
9
|
+
collection.changeItem(updatedEntity);
|
|
10
|
+
}, []);
|
|
11
|
+
const checkIfViewSynced = (0, _react.useCallback)(async (collection, entity) => {
|
|
12
|
+
var _collection$getKeyedI;
|
|
13
|
+
const itemKey = collection.itemKey(entity);
|
|
14
|
+
let fetchedPageInfo = null;
|
|
15
|
+
for (let fetchIndex = collection.fetchesHistory.length - 1; fetchIndex >= 0; fetchIndex--) {
|
|
16
|
+
const fetch = collection.fetchesHistory[fetchIndex];
|
|
17
|
+
if (fetch.itemsKeys.some(fetchedItemKey => fetchedItemKey === itemKey)) {
|
|
18
|
+
fetchedPageInfo = fetch.queryPageInfo;
|
|
19
|
+
break;
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
if (!fetchedPageInfo) {
|
|
23
|
+
console.error('Fetched page info for updated entity not found');
|
|
24
|
+
return false;
|
|
25
|
+
}
|
|
26
|
+
const itemQuery = {
|
|
27
|
+
...collection.query.asComputed,
|
|
28
|
+
...fetchedPageInfo
|
|
29
|
+
};
|
|
30
|
+
const currentIndex = (_collection$getKeyedI = collection.getKeyedItem(itemKey)) == null ? void 0 : _collection$getKeyedI.indexWithinPage;
|
|
31
|
+
const updatedData = await collection.fetchData(itemQuery);
|
|
32
|
+
const newIndex = updatedData.items.findIndex(item => itemKey === collection.itemKey(item));
|
|
33
|
+
return newIndex === currentIndex;
|
|
34
|
+
}, [cachedState]);
|
|
35
|
+
(0, _useSyncCollectionOnEntityReturn.useSyncCollectionOnEntityReturn)({
|
|
36
|
+
cachedState,
|
|
37
|
+
updateCollection,
|
|
38
|
+
checkIfViewSynced,
|
|
39
|
+
getEntityFromRouterState: state => state._updatedEntity,
|
|
40
|
+
getCollectionToUpdate
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=useSyncCollectionOnEntityUpdate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_react","require","_useSyncCollectionOnEntityReturn","useSyncCollectionOnEntityUpdate","cachedState","getCollectionToUpdate","updateCollection","useCallback","collection","updatedEntity","changeItem","checkIfViewSynced","entity","_collection$getKeyedI","itemKey","fetchedPageInfo","fetchIndex","fetchesHistory","length","fetch","itemsKeys","some","fetchedItemKey","queryPageInfo","console","error","itemQuery","query","asComputed","currentIndex","getKeyedItem","indexWithinPage","updatedData","fetchData","newIndex","items","findIndex","item","useSyncCollectionOnEntityReturn","getEntityFromRouterState","state","_updatedEntity"],"sources":["../../../src/hooks/useSyncCollectionOnEntityUpdate.ts"],"sourcesContent":["import { useCallback } from 'react';\n\nimport { ICollectionComponentState } from '../state/ICollectionComponentState';\nimport { CollectionState } from '@wix/bex-core';\nimport { useSyncCollectionOnEntityReturn } from './useSyncCollectionOnEntityReturn';\n\nexport function useSyncCollectionOnEntityUpdate<\n S extends ICollectionComponentState,\n>(\n cachedState?: S,\n getCollectionToUpdate?: (\n state: S,\n entity: any,\n ) => CollectionState<any> | null,\n) {\n const updateCollection = useCallback(\n (collection: CollectionState<any, any>, updatedEntity: any) => {\n collection.changeItem(updatedEntity);\n },\n [],\n );\n\n const checkIfViewSynced = useCallback(\n async (collection: CollectionState<any, any>, entity: any) => {\n const itemKey = collection.itemKey(entity);\n let fetchedPageInfo = null;\n for (\n let fetchIndex = collection.fetchesHistory.length - 1;\n fetchIndex >= 0;\n fetchIndex--\n ) {\n const fetch = collection.fetchesHistory[fetchIndex];\n if (\n fetch.itemsKeys.some((fetchedItemKey) => fetchedItemKey === itemKey)\n ) {\n fetchedPageInfo = fetch.queryPageInfo;\n break;\n }\n }\n\n if (!fetchedPageInfo) {\n console.error('Fetched page info for updated entity not found');\n return false;\n }\n\n const itemQuery = {\n ...collection.query.asComputed,\n ...fetchedPageInfo,\n };\n\n const currentIndex = collection.getKeyedItem(itemKey)?.indexWithinPage;\n\n const updatedData = await collection.fetchData(itemQuery);\n const newIndex = updatedData.items.findIndex(\n (item) => itemKey === collection.itemKey(item),\n );\n\n return newIndex === currentIndex;\n },\n [cachedState],\n );\n\n useSyncCollectionOnEntityReturn({\n cachedState,\n updateCollection,\n checkIfViewSynced,\n getEntityFromRouterState: (state: any) => state._updatedEntity,\n getCollectionToUpdate,\n });\n}\n"],"mappings":";;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAIA,IAAAC,gCAAA,GAAAD,OAAA;AAEO,SAASE,+BAA+BA,CAG7CC,WAAe,EACfC,qBAGgC,EAChC;EACA,MAAMC,gBAAgB,GAAG,IAAAC,kBAAW,EAClC,CAACC,UAAqC,EAAEC,aAAkB,KAAK;IAC7DD,UAAU,CAACE,UAAU,CAACD,aAAa,CAAC;EACtC,CAAC,EACD,EACF,CAAC;EAED,MAAME,iBAAiB,GAAG,IAAAJ,kBAAW,EACnC,OAAOC,UAAqC,EAAEI,MAAW,KAAK;IAAA,IAAAC,qBAAA;IAC5D,MAAMC,OAAO,GAAGN,UAAU,CAACM,OAAO,CAACF,MAAM,CAAC;IAC1C,IAAIG,eAAe,GAAG,IAAI;IAC1B,KACE,IAAIC,UAAU,GAAGR,UAAU,CAACS,cAAc,CAACC,MAAM,GAAG,CAAC,EACrDF,UAAU,IAAI,CAAC,EACfA,UAAU,EAAE,EACZ;MACA,MAAMG,KAAK,GAAGX,UAAU,CAACS,cAAc,CAACD,UAAU,CAAC;MACnD,IACEG,KAAK,CAACC,SAAS,CAACC,IAAI,CAAEC,cAAc,IAAKA,cAAc,KAAKR,OAAO,CAAC,EACpE;QACAC,eAAe,GAAGI,KAAK,CAACI,aAAa;QACrC;MACF;IACF;IAEA,IAAI,CAACR,eAAe,EAAE;MACpBS,OAAO,CAACC,KAAK,CAAC,gDAAgD,CAAC;MAC/D,OAAO,KAAK;IACd;IAEA,MAAMC,SAAS,GAAG;MAChB,GAAGlB,UAAU,CAACmB,KAAK,CAACC,UAAU;MAC9B,GAAGb;IACL,CAAC;IAED,MAAMc,YAAY,IAAAhB,qBAAA,GAAGL,UAAU,CAACsB,YAAY,CAAChB,OAAO,CAAC,qBAAhCD,qBAAA,CAAkCkB,eAAe;IAEtE,MAAMC,WAAW,GAAG,MAAMxB,UAAU,CAACyB,SAAS,CAACP,SAAS,CAAC;IACzD,MAAMQ,QAAQ,GAAGF,WAAW,CAACG,KAAK,CAACC,SAAS,CACzCC,IAAI,IAAKvB,OAAO,KAAKN,UAAU,CAACM,OAAO,CAACuB,IAAI,CAC/C,CAAC;IAED,OAAOH,QAAQ,KAAKL,YAAY;EAClC,CAAC,EACD,CAACzB,WAAW,CACd,CAAC;EAED,IAAAkC,gEAA+B,EAAC;IAC9BlC,WAAW;IACXE,gBAAgB;IAChBK,iBAAiB;IACjB4B,wBAAwB,EAAGC,KAAU,IAAKA,KAAK,CAACC,cAAc;IAC9DpC;EACF,CAAC,CAAC;AACJ","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_tableColumnPublicApiTest","c"],"sources":["../../../src/model/tableColumn.ts"],"sourcesContent":["import type { TableColumn as TableColumnWSR } from '@wix/design-system';\nimport type { KeyedItem, SortMode, SortOrder } from '@wix/bex-core';\nimport { CSSProperties, ReactNode } from 'react';\n\ntype TableColumnBase<T = any> = Omit<\n TableColumnWSR<T>,\n 'sortDescending' | 'sortable' | 'infoTooltipProps' | 'style'\n> & {\n style?:\n | CSSProperties\n | ((\n column: TableColumnWSR,\n rowData: KeyedItem<T>,\n rowNum: number,\n ) => CSSProperties);\n reorderDisabled?: boolean;\n defaultSortOrder?: SortOrder;\n sortMode?: SortMode;\n infoTooltipProps?: TableColumnWSR['infoTooltipProps'] & {\n panelContent?: ReactNode;\n };\n};\n\n// disallow specifying `hideable` / `defaultHidden` or setting `hiddenFromCustomColumnsSelection` as false when `id` is missing\ninterface TableColumnOptional<T> extends TableColumnBase<T> {\n id?: string;\n name?: string;\n hiddenFromCustomColumnsSelection?: undefined | true;\n hideable?: undefined;\n defaultHidden?: undefined;\n}\n\n// common case for custom column definition\ninterface TableColumnCustom<T> extends TableColumnBase<T> {\n id: string;\n name: string;\n hiddenFromCustomColumnsSelection?: false;\n hideable?: true;\n defaultHidden?: boolean;\n}\n\n// allow `name` to be optional when `title` exists\ninterface TableColumnCustomOptionalName<T> extends TableColumnBase<T> {\n id: string;\n name?: string;\n title: TableColumnBase['title'];\n hiddenFromCustomColumnsSelection?: false;\n hideable?: true;\n defaultHidden?: boolean;\n}\n\n// force `defaultHidden=false|undefined` when `hideable=false`\ninterface TableColumnCustomDefaultHidden<T> extends TableColumnBase<T> {\n id: string;\n name?: string;\n title: TableColumnBase['title'];\n hiddenFromCustomColumnsSelection?: false;\n hideable: false;\n defaultHidden?: undefined | false;\n}\n\nexport type CustomColumnConfig<T> =\n | TableColumnOptional<T>\n | TableColumnCustom<T>\n | TableColumnCustomDefaultHidden<T>\n | TableColumnCustomOptionalName<T>;\n\nexport interface SortableColumnConfig<T> extends TableColumnBase<T> {\n id: string;\n sortable: true;\n}\n\nexport interface NotSortableColumnConfig<T> extends TableColumnBase<T> {\n id?: string;\n sortable?: false;\n}\n\nexport type SortableConfig<T> =\n | SortableColumnConfig<T>\n | NotSortableColumnConfig<T>;\n\nexport type TableColumn<T> = CustomColumnConfig<T> & SortableConfig<T>;\n\nexport interface Column {\n /**\n * A unique identifier for the column. This value is required to enable [custom columns](./?path=/story/features-display-custom-columns--overview) or [sortable columns](./?path=/story/features-sort-sortable-columns-sortable-columns--sortable-columns).\n * @external\n */\n id: string;\n /**\n * A name for the column. This value is shown in the [custom columns](./?path=/story/features-display-custom-columns--overview) dropdown.\n * @external\n */\n name: string;\n /**\n * The text to be shown at the top of the column.\n * @external\n */\n title: TableColumnBase['title'];\n /**\n * Hides the column from the custom column selection panel, making it always visible. Relevant for [custom columns](./?path=/story/features-display-custom-columns--overview)
|
|
1
|
+
{"version":3,"names":["_tableColumnPublicApiTest","c"],"sources":["../../../src/model/tableColumn.ts"],"sourcesContent":["import type { TableColumn as TableColumnWSR } from '@wix/design-system';\nimport type { KeyedItem, SortMode, SortOrder } from '@wix/bex-core';\nimport { CSSProperties, ReactNode } from 'react';\n\ntype TableColumnBase<T = any> = Omit<\n TableColumnWSR<T>,\n 'sortDescending' | 'sortable' | 'infoTooltipProps' | 'style'\n> & {\n style?:\n | CSSProperties\n | ((\n column: TableColumnWSR,\n rowData: KeyedItem<T>,\n rowNum: number,\n ) => CSSProperties);\n reorderDisabled?: boolean;\n defaultSortOrder?: SortOrder;\n sortMode?: SortMode;\n infoTooltipProps?: TableColumnWSR['infoTooltipProps'] & {\n panelContent?: ReactNode;\n };\n};\n\n// disallow specifying `hideable` / `defaultHidden` or setting `hiddenFromCustomColumnsSelection` as false when `id` is missing\ninterface TableColumnOptional<T> extends TableColumnBase<T> {\n id?: string;\n name?: string;\n hiddenFromCustomColumnsSelection?: undefined | true;\n hideable?: undefined;\n defaultHidden?: undefined;\n}\n\n// common case for custom column definition\ninterface TableColumnCustom<T> extends TableColumnBase<T> {\n id: string;\n name: string;\n hiddenFromCustomColumnsSelection?: false;\n hideable?: true;\n defaultHidden?: boolean;\n}\n\n// allow `name` to be optional when `title` exists\ninterface TableColumnCustomOptionalName<T> extends TableColumnBase<T> {\n id: string;\n name?: string;\n title: TableColumnBase['title'];\n hiddenFromCustomColumnsSelection?: false;\n hideable?: true;\n defaultHidden?: boolean;\n}\n\n// force `defaultHidden=false|undefined` when `hideable=false`\ninterface TableColumnCustomDefaultHidden<T> extends TableColumnBase<T> {\n id: string;\n name?: string;\n title: TableColumnBase['title'];\n hiddenFromCustomColumnsSelection?: false;\n hideable: false;\n defaultHidden?: undefined | false;\n}\n\nexport type CustomColumnConfig<T> =\n | TableColumnOptional<T>\n | TableColumnCustom<T>\n | TableColumnCustomDefaultHidden<T>\n | TableColumnCustomOptionalName<T>;\n\nexport interface SortableColumnConfig<T> extends TableColumnBase<T> {\n id: string;\n sortable: true;\n}\n\nexport interface NotSortableColumnConfig<T> extends TableColumnBase<T> {\n id?: string;\n sortable?: false;\n}\n\nexport type SortableConfig<T> =\n | SortableColumnConfig<T>\n | NotSortableColumnConfig<T>;\n\nexport type TableColumn<T> = CustomColumnConfig<T> & SortableConfig<T>;\n\nexport interface Column {\n /**\n * A unique identifier for the column. This value is required to enable [custom columns](./?path=/story/features-display-custom-columns--overview) or [sortable columns](./?path=/story/features-sort-sortable-columns-sortable-columns--sortable-columns).\n * @external\n */\n id: string;\n /**\n * A name for the column. This value is shown in the [custom columns](./?path=/story/features-display-custom-columns--overview) dropdown.\n * @external\n */\n name: string;\n /**\n * The text to be shown at the top of the column.\n * @external\n */\n title: TableColumnBase['title'];\n /**\n * Hides the column from the custom column selection panel, making it always visible. Relevant for [custom columns](./?path=/story/features-display-custom-columns--overview).\n * @external\n */\n hiddenFromCustomColumnsSelection?: boolean;\n /**\n * When `false`, the column is always selected and displayed. Relevant for [custom columns](./?path=/story/features-display-custom-columns--overview).\n */\n hideable?: boolean;\n /**\n * When `true`, disables drag and drop for the column.\n * @external\n */\n reorderDisabled?: boolean;\n /**\n * When `true`, makes the column a [sortable column](./?path=/story/features-sort-sortable-columns-sortable-columns--sortable-columns).\n * @external\n */\n sortable?: boolean;\n sortDescending?: boolean;\n sortMode?: SortMode;\n /**\n * Determines the default sort order for the column, either `asc` or `desc`. The column must be a [sortable column](./?path=/story/features-sort-sortable-columns-sortable-columns--sortable-columns).\n * @external\n */\n defaultSortOrder?: SortOrder;\n /**\n * For [custom columns](./?path=/story/features-display-custom-columns--overview), when `true`, this property causes the column to be unchecked and thus not shown by default. This isn't relevant when `hideable` `=` `false`.\n * @external\n */\n defaultHidden?: boolean;\n dataExtension?: { id: string; editable: boolean };\n infoTooltipProps?: {\n content?: ReactNode;\n panelContent?: ReactNode;\n };\n /**\n * A callback that is called for each row in the data to display the value of this row for the specified column.\n * @external\n */\n render: TableColumnWSR['render'];\n width?: TableColumnWSR['width'];\n style?: TableColumnWSR['style'];\n}\n\n// @ts-ignore\nfunction _tableColumnPublicApiTest<T>(\n c: TableColumn<T>,\n): Omit<Column, 'id' | 'name'> & Pick<Partial<Column>, 'id' | 'name'> {\n return c;\n}\n"],"mappings":";;;AAuBA;;AASA;;AASA;;AAUA;;AA6FA;AACA,SAASA,yBAAyBA,CAChCC,CAAiB,EACmD;EACpE,OAAOA,CAAC;AACV","ignoreList":[]}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
exports.__esModule = true;
|
|
4
|
+
exports.createOptimisticActionsOrderByModeReaction = createOptimisticActionsOrderByModeReaction;
|
|
5
|
+
var _mobx = require("mobx");
|
|
6
|
+
function createOptimisticActionsOrderByModeReaction(dnd, collection) {
|
|
7
|
+
return (0, _mobx.reaction)(() => dnd.isDisabled, isDisabled => {
|
|
8
|
+
const {
|
|
9
|
+
_optimisticActions
|
|
10
|
+
} = collection;
|
|
11
|
+
if (!_optimisticActions) {
|
|
12
|
+
return;
|
|
13
|
+
}
|
|
14
|
+
_optimisticActions._orderByMode = isDisabled ? 'orders' : 'moves';
|
|
15
|
+
}, {
|
|
16
|
+
fireImmediately: true
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=createOptimisticActionsOrderByModeReaction.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_mobx","require","createOptimisticActionsOrderByModeReaction","dnd","collection","reaction","isDisabled","_optimisticActions","_orderByMode","fireImmediately"],"sources":["../../../../src/state/DragAndDrop/createOptimisticActionsOrderByModeReaction.ts"],"sourcesContent":["import { DragAndDropState } from '../../components/DragAndDrop';\nimport { CollectionState, FiltersMap } from '@wix/bex-core';\nimport { reaction } from 'mobx';\n\nexport function createOptimisticActionsOrderByModeReaction<\n T,\n F extends FiltersMap,\n>(dnd: DragAndDropState<T, F>, collection: CollectionState<T, F>) {\n return reaction(\n () => dnd.isDisabled,\n (isDisabled) => {\n const { _optimisticActions } = collection;\n if (!_optimisticActions) {\n return;\n }\n\n _optimisticActions._orderByMode = isDisabled ? 'orders' : 'moves';\n },\n { fireImmediately: true },\n );\n}\n"],"mappings":";;;;AAEA,IAAAA,KAAA,GAAAC,OAAA;AAEO,SAASC,0CAA0CA,CAGxDC,GAA2B,EAAEC,UAAiC,EAAE;EAChE,OAAO,IAAAC,cAAQ,EACb,MAAMF,GAAG,CAACG,UAAU,EACnBA,UAAU,IAAK;IACd,MAAM;MAAEC;IAAmB,CAAC,GAAGH,UAAU;IACzC,IAAI,CAACG,kBAAkB,EAAE;MACvB;IACF;IAEAA,kBAAkB,CAACC,YAAY,GAAGF,UAAU,GAAG,QAAQ,GAAG,OAAO;EACnE,CAAC,EACD;IAAEG,eAAe,EAAE;EAAK,CAC1B,CAAC;AACH","ignoreList":[]}
|
|
@@ -120,17 +120,16 @@ class EntityPageState {
|
|
|
120
120
|
this.navigateToParent();
|
|
121
121
|
}
|
|
122
122
|
navigateToParent(updatedEntity) {
|
|
123
|
-
const
|
|
123
|
+
const entityObject = {
|
|
124
124
|
_updatedEntity: updatedEntity
|
|
125
|
-
}
|
|
125
|
+
};
|
|
126
126
|
if (this._withinRouter) {
|
|
127
127
|
this.container.navigate(this._parentPath, {
|
|
128
|
-
state:
|
|
128
|
+
state: entityObject
|
|
129
129
|
});
|
|
130
130
|
} else {
|
|
131
131
|
this.container.navigateTo({
|
|
132
|
-
pageId: this._parentPageId
|
|
133
|
-
appState: entityString
|
|
132
|
+
pageId: this._parentPageId
|
|
134
133
|
});
|
|
135
134
|
}
|
|
136
135
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_bexCore","require","_mobx","_EntityPageStateBIReporter","_events","EntityPageState","constructor","params","_defineProperty2","default","TaskState","undefined","FormPageState","EventEmitter","fetch","onSave","saveSuccessToast","saveErrorToast","_form","form","_parentPageId","parentPageId","transformEntityToCollectionItem","anEntity","_parentPath","parentPath","container","reportBI","createBILogger","componentType","pageType","route","window","location","pathname","bi","EntityPageStateBIReporter","entityPageState","init","makeObservable","handleSubmit","action","isFetching","computed","_entity","observable","ref","setEntity","_isFormDirty","isFormDirty","withinRouter","_withinRouter","_checkPageParams","initTask","onBeforeUnload","onBeforeUnloadSubscription","event","formState","isSubmitSuccessful","preventDefault","reportOnBeforeUnload","runOnce","_this$bi$appLoaded","_this$bi","data","Promise","all","status","promise","entity","appLoaded","call","remove","retryFetch","newEntity","isLoading","isIdle","flag","_isSubmitSuccessful","formPage","isDirty","onCancel","reportButtonClick","ctaName","navigateToParent","updatedEntity","entityString","JSON","stringify","_updatedEntity","navigate","state","navigateTo","pageId","appState","_showErrorToast","err","e","_this$saveErrorToast","_this$container$showT","_this$container","errorToast","message","showTryAgain","tryAgain","showToast","type","biName","translate","code","uiType","text","onClick","reportSaveTryAgain","removeToastOnClick","_showSuccessToast","_this$saveSuccessToas","_this$container$showT2","_this$container2","submitTask","events","emit","isValid","extraFields","validate","run","savedEntity","onSaveResult","widgetsFormData","errorMonitor","captureException","setError","transformedItem","Error","exports"],"sources":["../../../../src/state/EntityPage/EntityPageState.ts"],"sourcesContent":["import {\n FormPageState,\n ReportBI,\n TaskState,\n WixPatternsContainer,\n} from '@wix/bex-core';\nimport { action, computed, makeObservable, observable } from 'mobx';\nimport { FieldValues, UseFormReturn } from 'react-hook-form';\nimport { EntityPageStateBIReporter } from './EntityPageStateBIReporter';\nimport { EventEmitter, TypedEmitter } from '@wix/bex-core/events';\n\ntype OnSaveParams = {\n widgetsFormData: { [key: string]: any };\n};\n\nexport interface EntityPageStateParams<T, V extends FieldValues = FieldValues> {\n /**\n * A function that fetches the entity data.\n * @returns a promise that resolves to an object containing the entity.\n */\n fetch: () => Promise<{ entity: T | undefined }>;\n\n /**\n * A function to handle the save action.\n * @returns promise that resolves to an object that contains a 'updatedEntity' object.\n */\n onSave: (params: OnSaveParams) => Promise<{ updatedEntity: T }>;\n\n /**\n * An optional object with an optional message, or it can directly get a string message.\n */\n saveSuccessToast?: { message?: string } | string;\n\n /**\n * An optional function to display an error toast message when a save operation fails.\n * @returns an object with an optional message and a `tryAgain` flag, or it can directly return a string message.\n */\n saveErrorToast?: (\n err: unknown,\n ) => { message?: string; tryAgain?: boolean } | string;\n\n /**\n * An optional function to transform the updated entity data before it is passed to the collection page.\n * @param entity the updated entity.\n * @returns an object representing the entity in the collection page.\n */\n transformEntityToCollectionItem?: (entity: T) => any;\n\n /**\n * An object representing the form state and methods, typically returned by a useForm hook.\n */\n form: UseFormReturn<V>;\n\n /**\n * An object representing the container, possibly for dependency injection or component management.\n */\n container: WixPatternsContainer;\n\n /**\n * A string representing the ID of the parent page.\n * Must be passed if not using Patterns Router\n */\n parentPageId?: string;\n\n /**\n * A string representing the path of the parent page.\n * Must be passed if using Patterns Router\n */\n parentPath?: string;\n}\n\nexport interface EntityPageStateInterface {}\n\nexport interface EntityPageWidgetState {\n validate: () => Promise<{ isValid: boolean; values?: any }>;\n isDirty: boolean;\n}\n\nexport class EntityPageState<T, V extends FieldValues = FieldValues>\n implements EntityPageStateInterface\n{\n readonly initTask = new TaskState();\n readonly submitTask = new TaskState();\n\n readonly fetch: EntityPageStateParams<T>['fetch'];\n readonly onSave: EntityPageStateParams<T, V>['onSave'];\n readonly saveSuccessToast?: EntityPageStateParams<T>['saveSuccessToast'];\n readonly saveErrorToast?: EntityPageStateParams<T>['saveErrorToast'];\n readonly transformEntityToCollectionItem: (entity: T) => any;\n\n _entity: T | null = null;\n private readonly _form: UseFormReturn<V>;\n private readonly _parentPageId?: string;\n private readonly _parentPath?: string;\n\n readonly container: WixPatternsContainer;\n readonly reportBI: ReportBI;\n readonly bi: EntityPageStateBIReporter<T, V>;\n\n _isSubmitSuccessful?: boolean = undefined;\n _isFormDirty = false;\n\n _withinRouter = false;\n\n readonly formPage = new FormPageState();\n\n readonly events = new EventEmitter() as TypedEmitter<{\n save: () => void;\n saveError: (err: unknown) => void;\n }>;\n\n constructor(params: EntityPageStateParams<T, V>) {\n this.fetch = params.fetch;\n this.onSave = params.onSave;\n this.saveSuccessToast = params.saveSuccessToast;\n this.saveErrorToast = params.saveErrorToast;\n this._form = params.form;\n this._parentPageId = params.parentPageId;\n this.transformEntityToCollectionItem =\n params.transformEntityToCollectionItem || ((anEntity: T) => anEntity);\n this._parentPath = params.parentPath;\n\n this.container = params.container;\n\n this.reportBI = this.container.createBILogger({\n componentType: 'Entity page',\n pageType: 'Entity',\n route: window.location.pathname,\n });\n\n this.bi = new EntityPageStateBIReporter({\n reportBI: this.reportBI,\n entityPageState: this,\n });\n this.bi.init();\n\n makeObservable(this, {\n handleSubmit: action,\n isFetching: computed,\n _entity: observable.ref,\n setEntity: action,\n _isFormDirty: observable.ref,\n isFormDirty: computed,\n });\n }\n\n init({ withinRouter }: { withinRouter: boolean }) {\n this._withinRouter = withinRouter;\n this._checkPageParams();\n const { initTask, container } = this;\n const { onBeforeUnload } = container;\n\n const onBeforeUnloadSubscription = onBeforeUnload?.(\n action((event) => {\n const { form } = this;\n if (form.formState.isSubmitSuccessful || !this.isFormDirty) {\n return;\n }\n event.preventDefault();\n this.bi.reportOnBeforeUnload();\n }),\n );\n\n initTask.runOnce(async () => {\n const [data] = await Promise.all([\n this.fetch(),\n container.initTask.status.promise,\n ]);\n\n this.setEntity(data.entity ?? null);\n this.bi.appLoaded?.();\n });\n\n return () => {\n onBeforeUnloadSubscription?.remove();\n };\n }\n\n retryFetch() {\n this.initTask.runOnce();\n }\n\n setEntity(newEntity: T | null) {\n this._entity = newEntity;\n }\n\n get entity(): T | null {\n return this._entity;\n }\n\n get isFetching() {\n return this.initTask.status.isLoading || this.initTask.status.isIdle;\n }\n\n get form() {\n return this._form;\n }\n\n set isSubmitSuccessful(flag: boolean) {\n this._isSubmitSuccessful = flag;\n }\n\n set isFormDirty(flag: boolean) {\n this._isFormDirty = flag;\n }\n\n get isFormDirty() {\n return this._isFormDirty || this.formPage.isDirty;\n }\n\n onCancel() {\n this.bi.reportButtonClick({ ctaName: 'Cancel' });\n this.navigateToParent();\n }\n\n navigateToParent(updatedEntity?: any) {\n const entityString = updatedEntity\n ? JSON.stringify({ _updatedEntity: updatedEntity })\n : undefined;\n if (this._withinRouter) {\n this.container.navigate!(this._parentPath!, { state: entityString });\n } else {\n this.container.navigateTo!({\n pageId: this._parentPageId!,\n appState: entityString,\n });\n }\n }\n\n _showErrorToast(err: any, e?: React.BaseSyntheticEvent) {\n const errorToast = this.saveErrorToast?.(err);\n const message =\n typeof errorToast === 'string' ? errorToast : errorToast?.message;\n const showTryAgain =\n typeof errorToast === 'string' ? true : errorToast?.tryAgain !== false;\n\n this.container.showToast?.({\n type: 'ERROR',\n biName: 'cairo-entity-page-save-error-toast',\n message:\n message ??\n this.container.translate(\n err?.code === 'ERR_NETWORK'\n ? 'cairo.entityPage.saveError-offline.toast.description'\n : 'cairo.entityPage.saveError-technical.toast.description',\n ),\n action: showTryAgain\n ? {\n uiType: 'LINK',\n text: this.container.translate('cairo.toast.retry'),\n onClick: () => {\n this.bi.reportSaveTryAgain();\n this.handleSubmit(e);\n },\n removeToastOnClick: true,\n }\n : undefined,\n });\n }\n\n _showSuccessToast() {\n const message =\n typeof this.saveSuccessToast === 'string'\n ? this.saveSuccessToast\n : this.saveSuccessToast?.message;\n\n this.container.showToast?.({\n type: 'SUCCESS',\n biName: 'cairo-entity-page-save-success-toast',\n message:\n message ?? this.container.translate('cairo.entityPage.success.toast'),\n });\n }\n async handleSubmit(e?: React.BaseSyntheticEvent) {\n if (this.submitTask.status.isLoading) {\n return;\n }\n\n this.events.emit('save');\n\n const { isValid, data: extraFields } = await this.formPage.validate();\n\n if (!isValid) {\n this.bi.reportButtonClick({ ctaName: 'Save', isValid: false });\n return;\n }\n\n const { form, submitTask, bi } = this;\n\n submitTask.run(async () => {\n let savedEntity: T | undefined;\n await form.handleSubmit(\n async () => {\n bi.reportButtonClick({ ctaName: 'Save', isValid: true });\n try {\n if (this.isFormDirty) {\n const onSaveResult = await this.onSave({\n widgetsFormData: { ...extraFields },\n });\n savedEntity = onSaveResult?.updatedEntity;\n }\n this._showSuccessToast();\n } catch (err) {\n this._showErrorToast(err, e);\n this.container.errorMonitor.captureException(err);\n this.events.emit('saveError', err);\n form.setError('root.serverError', {}); // https://react-hook-form.com/docs/useform/seterror\n }\n },\n () => {\n bi.reportButtonClick({ ctaName: 'Save', isValid: false });\n }, // can be used to report validation errors\n )(e);\n\n if (!form.formState.isSubmitSuccessful) {\n return;\n }\n\n const transformedItem =\n savedEntity && this.transformEntityToCollectionItem\n ? this.transformEntityToCollectionItem(savedEntity)\n : savedEntity;\n this.navigateToParent(transformedItem);\n });\n await this.submitTask.status.promise;\n }\n\n private _checkPageParams() {\n if (this._withinRouter) {\n if (this._parentPath === undefined) {\n throw new Error('parentPath was not defined in useEntityPage');\n }\n\n if (!this.container.navigate) {\n throw new Error('navigate was not defined in Patterns Provider');\n }\n } else {\n if (this._parentPageId === undefined) {\n throw new Error('parentPageId was not defined in useEntityPage');\n }\n\n if (!this.container.navigateTo) {\n throw new Error('navigateTo was not defined in Patterns Provider');\n }\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_bexCore","require","_mobx","_EntityPageStateBIReporter","_events","EntityPageState","constructor","params","_defineProperty2","default","TaskState","undefined","FormPageState","EventEmitter","fetch","onSave","saveSuccessToast","saveErrorToast","_form","form","_parentPageId","parentPageId","transformEntityToCollectionItem","anEntity","_parentPath","parentPath","container","reportBI","createBILogger","componentType","pageType","route","window","location","pathname","bi","EntityPageStateBIReporter","entityPageState","init","makeObservable","handleSubmit","action","isFetching","computed","_entity","observable","ref","setEntity","_isFormDirty","isFormDirty","withinRouter","_withinRouter","_checkPageParams","initTask","onBeforeUnload","onBeforeUnloadSubscription","event","formState","isSubmitSuccessful","preventDefault","reportOnBeforeUnload","runOnce","_this$bi$appLoaded","_this$bi","data","Promise","all","status","promise","entity","appLoaded","call","remove","retryFetch","newEntity","isLoading","isIdle","flag","_isSubmitSuccessful","formPage","isDirty","onCancel","reportButtonClick","ctaName","navigateToParent","updatedEntity","entityObject","_updatedEntity","navigate","state","navigateTo","pageId","_showErrorToast","err","e","_this$saveErrorToast","_this$container$showT","_this$container","errorToast","message","showTryAgain","tryAgain","showToast","type","biName","translate","code","uiType","text","onClick","reportSaveTryAgain","removeToastOnClick","_showSuccessToast","_this$saveSuccessToas","_this$container$showT2","_this$container2","submitTask","events","emit","isValid","extraFields","validate","run","savedEntity","onSaveResult","widgetsFormData","errorMonitor","captureException","setError","transformedItem","Error","exports"],"sources":["../../../../src/state/EntityPage/EntityPageState.ts"],"sourcesContent":["import {\n FormPageState,\n ReportBI,\n TaskState,\n WixPatternsContainer,\n} from '@wix/bex-core';\nimport { action, computed, makeObservable, observable } from 'mobx';\nimport { FieldValues, UseFormReturn } from 'react-hook-form';\nimport { EntityPageStateBIReporter } from './EntityPageStateBIReporter';\nimport { EventEmitter, TypedEmitter } from '@wix/bex-core/events';\n\ntype OnSaveParams = {\n widgetsFormData: { [key: string]: any };\n};\n\nexport interface EntityPageStateParams<T, V extends FieldValues = FieldValues> {\n /**\n * A function that fetches the entity data.\n * @returns a promise that resolves to an object containing the entity.\n */\n fetch: () => Promise<{ entity: T | undefined }>;\n\n /**\n * A function to handle the save action.\n * @returns promise that resolves to an object that contains a 'updatedEntity' object.\n */\n onSave: (params: OnSaveParams) => Promise<{ updatedEntity: T }>;\n\n /**\n * An optional object with an optional message, or it can directly get a string message.\n */\n saveSuccessToast?: { message?: string } | string;\n\n /**\n * An optional function to display an error toast message when a save operation fails.\n * @returns an object with an optional message and a `tryAgain` flag, or it can directly return a string message.\n */\n saveErrorToast?: (\n err: unknown,\n ) => { message?: string; tryAgain?: boolean } | string;\n\n /**\n * An optional function to transform the updated entity data before it is passed to the collection page.\n * @param entity the updated entity.\n * @returns an object representing the entity in the collection page.\n */\n transformEntityToCollectionItem?: (entity: T) => any;\n\n /**\n * An object representing the form state and methods, typically returned by a useForm hook.\n */\n form: UseFormReturn<V>;\n\n /**\n * An object representing the container, possibly for dependency injection or component management.\n */\n container: WixPatternsContainer;\n\n /**\n * A string representing the ID of the parent page.\n * Must be passed if not using Patterns Router\n */\n parentPageId?: string;\n\n /**\n * A string representing the path of the parent page.\n * Must be passed if using Patterns Router\n */\n parentPath?: string;\n}\n\nexport interface EntityPageStateInterface {}\n\nexport interface EntityPageWidgetState {\n validate: () => Promise<{ isValid: boolean; values?: any }>;\n isDirty: boolean;\n}\n\nexport class EntityPageState<T, V extends FieldValues = FieldValues>\n implements EntityPageStateInterface\n{\n readonly initTask = new TaskState();\n readonly submitTask = new TaskState();\n\n readonly fetch: EntityPageStateParams<T>['fetch'];\n readonly onSave: EntityPageStateParams<T, V>['onSave'];\n readonly saveSuccessToast?: EntityPageStateParams<T>['saveSuccessToast'];\n readonly saveErrorToast?: EntityPageStateParams<T>['saveErrorToast'];\n readonly transformEntityToCollectionItem: (entity: T) => any;\n\n _entity: T | null = null;\n private readonly _form: UseFormReturn<V>;\n private readonly _parentPageId?: string;\n private readonly _parentPath?: string;\n\n readonly container: WixPatternsContainer;\n readonly reportBI: ReportBI;\n readonly bi: EntityPageStateBIReporter<T, V>;\n\n _isSubmitSuccessful?: boolean = undefined;\n _isFormDirty = false;\n\n _withinRouter = false;\n\n readonly formPage = new FormPageState();\n\n readonly events = new EventEmitter() as TypedEmitter<{\n save: () => void;\n saveError: (err: unknown) => void;\n }>;\n\n constructor(params: EntityPageStateParams<T, V>) {\n this.fetch = params.fetch;\n this.onSave = params.onSave;\n this.saveSuccessToast = params.saveSuccessToast;\n this.saveErrorToast = params.saveErrorToast;\n this._form = params.form;\n this._parentPageId = params.parentPageId;\n this.transformEntityToCollectionItem =\n params.transformEntityToCollectionItem || ((anEntity: T) => anEntity);\n this._parentPath = params.parentPath;\n\n this.container = params.container;\n\n this.reportBI = this.container.createBILogger({\n componentType: 'Entity page',\n pageType: 'Entity',\n route: window.location.pathname,\n });\n\n this.bi = new EntityPageStateBIReporter({\n reportBI: this.reportBI,\n entityPageState: this,\n });\n this.bi.init();\n\n makeObservable(this, {\n handleSubmit: action,\n isFetching: computed,\n _entity: observable.ref,\n setEntity: action,\n _isFormDirty: observable.ref,\n isFormDirty: computed,\n });\n }\n\n init({ withinRouter }: { withinRouter: boolean }) {\n this._withinRouter = withinRouter;\n this._checkPageParams();\n const { initTask, container } = this;\n const { onBeforeUnload } = container;\n\n const onBeforeUnloadSubscription = onBeforeUnload?.(\n action((event) => {\n const { form } = this;\n if (form.formState.isSubmitSuccessful || !this.isFormDirty) {\n return;\n }\n event.preventDefault();\n this.bi.reportOnBeforeUnload();\n }),\n );\n\n initTask.runOnce(async () => {\n const [data] = await Promise.all([\n this.fetch(),\n container.initTask.status.promise,\n ]);\n\n this.setEntity(data.entity ?? null);\n this.bi.appLoaded?.();\n });\n\n return () => {\n onBeforeUnloadSubscription?.remove();\n };\n }\n\n retryFetch() {\n this.initTask.runOnce();\n }\n\n setEntity(newEntity: T | null) {\n this._entity = newEntity;\n }\n\n get entity(): T | null {\n return this._entity;\n }\n\n get isFetching() {\n return this.initTask.status.isLoading || this.initTask.status.isIdle;\n }\n\n get form() {\n return this._form;\n }\n\n set isSubmitSuccessful(flag: boolean) {\n this._isSubmitSuccessful = flag;\n }\n\n set isFormDirty(flag: boolean) {\n this._isFormDirty = flag;\n }\n\n get isFormDirty() {\n return this._isFormDirty || this.formPage.isDirty;\n }\n\n onCancel() {\n this.bi.reportButtonClick({ ctaName: 'Cancel' });\n this.navigateToParent();\n }\n\n navigateToParent(updatedEntity?: any) {\n const entityObject = { _updatedEntity: updatedEntity };\n\n if (this._withinRouter) {\n this.container.navigate!(this._parentPath!, { state: entityObject });\n } else {\n this.container.navigateTo!({\n pageId: this._parentPageId!,\n });\n }\n }\n\n _showErrorToast(err: any, e?: React.BaseSyntheticEvent) {\n const errorToast = this.saveErrorToast?.(err);\n const message =\n typeof errorToast === 'string' ? errorToast : errorToast?.message;\n const showTryAgain =\n typeof errorToast === 'string' ? true : errorToast?.tryAgain !== false;\n\n this.container.showToast?.({\n type: 'ERROR',\n biName: 'cairo-entity-page-save-error-toast',\n message:\n message ??\n this.container.translate(\n err?.code === 'ERR_NETWORK'\n ? 'cairo.entityPage.saveError-offline.toast.description'\n : 'cairo.entityPage.saveError-technical.toast.description',\n ),\n action: showTryAgain\n ? {\n uiType: 'LINK',\n text: this.container.translate('cairo.toast.retry'),\n onClick: () => {\n this.bi.reportSaveTryAgain();\n this.handleSubmit(e);\n },\n removeToastOnClick: true,\n }\n : undefined,\n });\n }\n\n _showSuccessToast() {\n const message =\n typeof this.saveSuccessToast === 'string'\n ? this.saveSuccessToast\n : this.saveSuccessToast?.message;\n\n this.container.showToast?.({\n type: 'SUCCESS',\n biName: 'cairo-entity-page-save-success-toast',\n message:\n message ?? this.container.translate('cairo.entityPage.success.toast'),\n });\n }\n async handleSubmit(e?: React.BaseSyntheticEvent) {\n if (this.submitTask.status.isLoading) {\n return;\n }\n\n this.events.emit('save');\n\n const { isValid, data: extraFields } = await this.formPage.validate();\n\n if (!isValid) {\n this.bi.reportButtonClick({ ctaName: 'Save', isValid: false });\n return;\n }\n\n const { form, submitTask, bi } = this;\n\n submitTask.run(async () => {\n let savedEntity: T | undefined;\n await form.handleSubmit(\n async () => {\n bi.reportButtonClick({ ctaName: 'Save', isValid: true });\n try {\n if (this.isFormDirty) {\n const onSaveResult = await this.onSave({\n widgetsFormData: { ...extraFields },\n });\n savedEntity = onSaveResult?.updatedEntity;\n }\n this._showSuccessToast();\n } catch (err) {\n this._showErrorToast(err, e);\n this.container.errorMonitor.captureException(err);\n this.events.emit('saveError', err);\n form.setError('root.serverError', {}); // https://react-hook-form.com/docs/useform/seterror\n }\n },\n () => {\n bi.reportButtonClick({ ctaName: 'Save', isValid: false });\n }, // can be used to report validation errors\n )(e);\n\n if (!form.formState.isSubmitSuccessful) {\n return;\n }\n\n const transformedItem =\n savedEntity && this.transformEntityToCollectionItem\n ? this.transformEntityToCollectionItem(savedEntity)\n : savedEntity;\n this.navigateToParent(transformedItem);\n });\n await this.submitTask.status.promise;\n }\n\n private _checkPageParams() {\n if (this._withinRouter) {\n if (this._parentPath === undefined) {\n throw new Error('parentPath was not defined in useEntityPage');\n }\n\n if (!this.container.navigate) {\n throw new Error('navigate was not defined in Patterns Provider');\n }\n } else {\n if (this._parentPageId === undefined) {\n throw new Error('parentPageId was not defined in useEntityPage');\n }\n\n if (!this.container.navigateTo) {\n throw new Error('navigateTo was not defined in Patterns Provider');\n }\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[],"sources":["../../../../src/state/NestedTableState/NestedCollectionLevelDescriptor.ts"],"sourcesContent":["import {
|
|
1
|
+
{"version":3,"names":[],"sources":["../../../../src/state/NestedTableState/NestedCollectionLevelDescriptor.ts"],"sourcesContent":["import {\n CollectionOptimisticSequenceExecutor,\n CollectionState,\n Filter,\n FiltersMap,\n KeyedItem,\n QueryState,\n} from '@wix/bex-core';\n\nexport interface NestedCollectionLevelDescriptor<T, F extends FiltersMap> {\n readonly depth: number;\n readonly parentKey: (item: T) => string | null | undefined;\n readonly setParent?: (\n item: T,\n parentId: string | undefined,\n additionalInfo: {\n parentItem?: {};\n },\n ) => T;\n readonly createCollection: (params?: {\n readonly parent?: KeyedItem<any> | null;\n readonly sequences: Map<string, CollectionOptimisticSequenceExecutor>;\n readonly query: QueryState<F>;\n }) => {\n collection: CollectionState<T, F>;\n parentFilter?: Filter<string[]>;\n };\n readonly fetchAllThreshold?: number;\n}\n"],"mappings":"","ignoreList":[]}
|
|
@@ -19,6 +19,7 @@ class NestedCollectionNodeState {
|
|
|
19
19
|
}));
|
|
20
20
|
(0, _defineProperty2.default)(this, "_expanded", false);
|
|
21
21
|
(0, _defineProperty2.default)(this, "_hovered", false);
|
|
22
|
+
(0, _defineProperty2.default)(this, "_firstRender", void 0);
|
|
22
23
|
(0, _defineProperty2.default)(this, "initTask", new _bexCore.TaskState());
|
|
23
24
|
const {
|
|
24
25
|
nestedCollection
|
|
@@ -27,13 +28,18 @@ class NestedCollectionNodeState {
|
|
|
27
28
|
this.levelDescriptor = params.levelDescriptor;
|
|
28
29
|
this.parent = params.parent;
|
|
29
30
|
this.parentNode = params.parentNode;
|
|
31
|
+
this._firstRender = !params.preRegister;
|
|
30
32
|
(0, _mobx.runInAction)(() => {
|
|
31
33
|
this._expanded = !nestedCollection.isFetchAllAborted && nestedCollection.expandAll;
|
|
32
34
|
});
|
|
33
35
|
const {
|
|
34
36
|
collection,
|
|
35
37
|
parentFilter
|
|
36
|
-
} = params.nodeCollection ?? this.levelDescriptor.createCollection(
|
|
38
|
+
} = params.nodeCollection ?? this.levelDescriptor.createCollection({
|
|
39
|
+
parent: this.parent,
|
|
40
|
+
sequences: nestedCollection.sequences,
|
|
41
|
+
query: nestedCollection.query
|
|
42
|
+
});
|
|
37
43
|
this.collection = collection;
|
|
38
44
|
this.parentFilter = parentFilter;
|
|
39
45
|
const {
|
|
@@ -79,14 +85,17 @@ class NestedCollectionNodeState {
|
|
|
79
85
|
init({
|
|
80
86
|
skipCollectionInit
|
|
81
87
|
} = {}) {
|
|
82
|
-
var _collection$_optimist;
|
|
83
88
|
const {
|
|
84
89
|
initTask,
|
|
85
|
-
collection
|
|
90
|
+
collection,
|
|
91
|
+
nestedCollection
|
|
86
92
|
} = this;
|
|
93
|
+
if (collection._optimisticActions) {
|
|
94
|
+
nestedCollection.events.on('dispose', collection._optimisticActions.init());
|
|
95
|
+
}
|
|
87
96
|
const disposers = [!skipCollectionInit ? collection.init({
|
|
88
97
|
skipInitialFetch: !this._expanded
|
|
89
|
-
}) : undefined
|
|
98
|
+
}) : undefined];
|
|
90
99
|
initTask.runOnce(async () => {
|
|
91
100
|
collection.initTask.runOnce();
|
|
92
101
|
await collection.initTask.status.promise;
|
|
@@ -103,7 +112,8 @@ class NestedCollectionNodeState {
|
|
|
103
112
|
parent,
|
|
104
113
|
parentNode: this,
|
|
105
114
|
nestedCollection,
|
|
106
|
-
levelDescriptor: params.levelDescriptor
|
|
115
|
+
levelDescriptor: params.levelDescriptor,
|
|
116
|
+
preRegister: params.preRegister
|
|
107
117
|
});
|
|
108
118
|
}
|
|
109
119
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_bexCore","require","_mobx","NestedCollectionNodeState","constructor","params","_defineProperty2","default","observable","map","deep","TaskState","nestedCollection","levelDescriptor","parent","parentNode","runInAction","_expanded","isFetchAllAborted","expandAll","collection","parentFilter","nodeCollection","createCollection","query","sharedQuery","syncWithSharedQuery","persistent","setValue","key","makeObservable","init","action","_toggleExpand","_changeHover","ref","_hovered","hoveredOrParentHovered","computed","initialFetch","e","console","error","_this$parentNode","hovered","skipCollectionInit","
|
|
1
|
+
{"version":3,"names":["_bexCore","require","_mobx","NestedCollectionNodeState","constructor","params","_defineProperty2","default","observable","map","deep","TaskState","nestedCollection","levelDescriptor","parent","parentNode","_firstRender","preRegister","runInAction","_expanded","isFetchAllAborted","expandAll","collection","parentFilter","nodeCollection","createCollection","sequences","query","sharedQuery","syncWithSharedQuery","persistent","setValue","key","makeObservable","init","action","_toggleExpand","_changeHover","ref","_hovered","hoveredOrParentHovered","computed","initialFetch","e","console","error","_this$parentNode","hovered","skipCollectionInit","initTask","_optimisticActions","events","on","disposers","skipInitialFetch","undefined","runOnce","status","promise","forEach","d","_createNode","exports"],"sources":["../../../../src/state/NestedTableState/NestedCollectionNodeState.ts"],"sourcesContent":["import {\n FiltersMap,\n KeyedItem,\n QueryState,\n syncWithSharedQuery,\n TaskState,\n} from '@wix/bex-core';\nimport {\n action,\n computed,\n makeObservable,\n observable,\n runInAction,\n} from 'mobx';\nimport { NestedCollectionState } from './NestedCollectionState';\nimport { NestedCollectionLevelDescriptor } from './NestedCollectionLevelDescriptor';\nimport { NodeCollection } from './types';\n\nexport interface NestedCollectionNodeStateBaseParams<T, F extends FiltersMap> {\n readonly levelDescriptor: NestedCollectionLevelDescriptor<T, F>;\n readonly preRegister?: boolean;\n}\n\nexport interface NestedCollectionNodeStateParams<T, F extends FiltersMap>\n extends NestedCollectionNodeStateBaseParams<T, F> {\n readonly nestedCollection: NestedCollectionState;\n readonly parentNode: NestedCollectionNodeState<any, any> | null;\n readonly parent: KeyedItem<any> | null;\n readonly nodeCollection?: NodeCollection<T, F>;\n}\n\nexport class NestedCollectionNodeState<T, F extends FiltersMap> {\n readonly nestedCollection;\n readonly collection;\n readonly levelDescriptor: NestedCollectionLevelDescriptor<T, F>;\n readonly parent;\n readonly parentNode;\n readonly parentFilter;\n\n readonly parentKeyToChildrenMap = observable.map<\n string,\n NestedCollectionNodeState<any, any>\n >([], {\n deep: false,\n });\n\n _expanded = false;\n _hovered = false;\n\n _firstRender;\n\n readonly initTask = new TaskState();\n\n constructor(params: NestedCollectionNodeStateParams<T, F>) {\n const { nestedCollection } = params;\n this.nestedCollection = nestedCollection;\n this.levelDescriptor = params.levelDescriptor;\n this.parent = params.parent;\n this.parentNode = params.parentNode;\n this._firstRender = !params.preRegister;\n\n runInAction(() => {\n this._expanded =\n !nestedCollection.isFetchAllAborted && nestedCollection.expandAll;\n });\n\n const { collection, parentFilter } =\n params.nodeCollection ??\n this.levelDescriptor.createCollection({\n parent: this.parent,\n sequences: nestedCollection.sequences,\n query: nestedCollection.query as QueryState<F>,\n });\n\n this.collection = collection;\n this.parentFilter = parentFilter;\n\n const {\n parent,\n nestedCollection: { query: sharedQuery },\n } = this;\n\n const { query } = collection;\n\n syncWithSharedQuery(query, sharedQuery);\n\n if (parent != null && parentFilter != null) {\n parentFilter.persistent = true;\n parentFilter.setValue([parent.key]);\n }\n\n makeObservable(this, {\n init: action,\n _toggleExpand: action,\n _changeHover: action,\n _expanded: observable.ref,\n _hovered: observable.ref,\n hoveredOrParentHovered: computed,\n });\n }\n\n async _toggleExpand() {\n this._expanded = !this._expanded;\n if (this._expanded) {\n try {\n await this.collection.initialFetch();\n } catch (e) {\n console.error(e);\n }\n }\n }\n\n get hoveredOrParentHovered(): boolean {\n return this._hovered || !!this.parentNode?.hoveredOrParentHovered;\n }\n\n _changeHover(hovered: boolean) {\n this._hovered = hovered;\n }\n\n init({ skipCollectionInit }: { skipCollectionInit?: boolean } = {}) {\n const { initTask, collection, nestedCollection } = this;\n\n if (collection._optimisticActions) {\n nestedCollection.events.on(\n 'dispose',\n collection._optimisticActions.init(),\n );\n }\n\n const disposers = [\n !skipCollectionInit\n ? collection.init({ skipInitialFetch: !this._expanded })\n : undefined,\n ];\n\n initTask.runOnce(async () => {\n collection.initTask.runOnce();\n await collection.initTask.status.promise;\n });\n\n return () => {\n disposers.forEach((d) => d?.());\n };\n }\n\n _createNode(\n parent: KeyedItem<any>,\n params: NestedCollectionNodeStateBaseParams<any, any>,\n ) {\n const { nestedCollection } = this;\n\n return new NestedCollectionNodeState({\n parent,\n parentNode: this,\n nestedCollection,\n levelDescriptor: params.levelDescriptor,\n preRegister: params.preRegister,\n });\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -6,6 +6,7 @@ exports.NestedCollectionState = void 0;
|
|
|
6
6
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
7
7
|
var _mobx = require("mobx");
|
|
8
8
|
var _NestedCollectionNodeState = require("./NestedCollectionNodeState");
|
|
9
|
+
var _events = require("events");
|
|
9
10
|
class NestedCollectionState {
|
|
10
11
|
constructor(params) {
|
|
11
12
|
var _this$root$parentFilt;
|
|
@@ -17,10 +18,13 @@ class NestedCollectionState {
|
|
|
17
18
|
(0, _defineProperty2.default)(this, "total", 0);
|
|
18
19
|
(0, _defineProperty2.default)(this, "root", void 0);
|
|
19
20
|
(0, _defineProperty2.default)(this, "query", void 0);
|
|
21
|
+
(0, _defineProperty2.default)(this, "sequences", void 0);
|
|
22
|
+
(0, _defineProperty2.default)(this, "events", new _events.EventEmitter());
|
|
20
23
|
const {
|
|
21
24
|
container
|
|
22
25
|
} = params;
|
|
23
26
|
this.container = container;
|
|
27
|
+
this.sequences = params.sequences;
|
|
24
28
|
const rootLevelDescriptor = params.levels[0];
|
|
25
29
|
this.levels = params.levels;
|
|
26
30
|
this.query = params.query;
|
|
@@ -29,13 +33,19 @@ class NestedCollectionState {
|
|
|
29
33
|
parentNode: null,
|
|
30
34
|
parent: null,
|
|
31
35
|
levelDescriptor: rootLevelDescriptor,
|
|
32
|
-
nodeCollection: params.nodeCollection
|
|
36
|
+
nodeCollection: params.nodeCollection,
|
|
37
|
+
preRegister: true
|
|
33
38
|
});
|
|
34
39
|
(_this$root$parentFilt = this.root.parentFilter) == null || _this$root$parentFilt.setValue(['null']);
|
|
35
40
|
(0, _mobx.makeObservable)(this, {
|
|
36
41
|
total: _mobx.observable.ref
|
|
37
42
|
});
|
|
38
43
|
}
|
|
44
|
+
init() {
|
|
45
|
+
return () => {
|
|
46
|
+
return this.events.listeners('dispose').forEach(d => d == null ? void 0 : d());
|
|
47
|
+
};
|
|
48
|
+
}
|
|
39
49
|
}
|
|
40
50
|
exports.NestedCollectionState = NestedCollectionState;
|
|
41
51
|
//# sourceMappingURL=NestedCollectionState.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_mobx","require","_NestedCollectionNodeState","NestedCollectionState","constructor","params","_this$root$parentFilt","_defineProperty2","default","undefined","container","rootLevelDescriptor","levels","query","root","NestedCollectionNodeState","nestedCollection","parentNode","parent","levelDescriptor","nodeCollection","parentFilter","setValue","makeObservable","total","observable","ref","exports"],"sources":["../../../../src/state/NestedTableState/NestedCollectionState.ts"],"sourcesContent":["import {
|
|
1
|
+
{"version":3,"names":["_mobx","require","_NestedCollectionNodeState","_events","NestedCollectionState","constructor","params","_this$root$parentFilt","_defineProperty2","default","undefined","EventEmitter","container","sequences","rootLevelDescriptor","levels","query","root","NestedCollectionNodeState","nestedCollection","parentNode","parent","levelDescriptor","nodeCollection","preRegister","parentFilter","setValue","makeObservable","total","observable","ref","init","events","listeners","forEach","d","exports"],"sources":["../../../../src/state/NestedTableState/NestedCollectionState.ts"],"sourcesContent":["import {\n WixPatternsContainer,\n QueryState,\n CollectionOptimisticSequenceExecutor,\n} from '@wix/bex-core';\nimport { makeObservable, observable } from 'mobx';\nimport { NestedCollectionNodeState } from './NestedCollectionNodeState';\nimport { NestedCollectionLevelDescriptor } from './NestedCollectionLevelDescriptor';\nimport { NodeCollection } from './types';\nimport { EventEmitter } from 'events';\nimport { TypedEmitter } from '@wix/bex-core/events';\n\nexport interface NestedCollectionStateBaseParams {\n levels: NestedCollectionLevelDescriptor<any, any>[];\n query: QueryState<{}>;\n nodeCollection?: NodeCollection<any, any>;\n}\n\nexport interface NestedCollectionStateParams\n extends NestedCollectionStateBaseParams {\n readonly container: WixPatternsContainer;\n readonly sequences: Map<string, CollectionOptimisticSequenceExecutor>;\n}\n\nexport class NestedCollectionState {\n readonly container;\n\n readonly levels;\n\n isFetchAllAborted = null as null | boolean;\n\n _fetchAllTotal = undefined as undefined | number;\n\n expandAll = true;\n total = 0;\n\n readonly root: NestedCollectionNodeState<any, any>;\n readonly query;\n readonly sequences;\n\n readonly events = new EventEmitter() as TypedEmitter<{\n dispose: (() => void) | undefined;\n }>;\n\n constructor(params: NestedCollectionStateParams) {\n const { container } = params;\n this.container = container;\n this.sequences = params.sequences;\n\n const rootLevelDescriptor = params.levels[0];\n\n this.levels = params.levels;\n this.query = params.query;\n\n this.root = new NestedCollectionNodeState({\n nestedCollection: this,\n parentNode: null,\n parent: null,\n levelDescriptor: rootLevelDescriptor,\n nodeCollection: params.nodeCollection,\n preRegister: true,\n });\n\n this.root.parentFilter?.setValue(['null']);\n\n makeObservable(this, {\n total: observable.ref,\n });\n }\n\n init() {\n return () => {\n return this.events.listeners('dispose').forEach((d) => d?.());\n };\n }\n}\n"],"mappings":";;;;;;AAKA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,0BAAA,GAAAD,OAAA;AAGA,IAAAE,OAAA,GAAAF,OAAA;AAeO,MAAMG,qBAAqB,CAAC;EAoBjCC,WAAWA,CAACC,MAAmC,EAAE;IAAA,IAAAC,qBAAA;IAAA,IAAAC,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA,6BAf7B,IAAI;IAAA,IAAAD,gBAAA,CAAAC,OAAA,0BAEPC,SAAS;IAAA,IAAAF,gBAAA,CAAAC,OAAA,qBAEd,IAAI;IAAA,IAAAD,gBAAA,CAAAC,OAAA,iBACR,CAAC;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA,kBAMS,IAAIE,oBAAY,CAAC,CAAC;IAKlC,MAAM;MAAEC;IAAU,CAAC,GAAGN,MAAM;IAC5B,IAAI,CAACM,SAAS,GAAGA,SAAS;IAC1B,IAAI,CAACC,SAAS,GAAGP,MAAM,CAACO,SAAS;IAEjC,MAAMC,mBAAmB,GAAGR,MAAM,CAACS,MAAM,CAAC,CAAC,CAAC;IAE5C,IAAI,CAACA,MAAM,GAAGT,MAAM,CAACS,MAAM;IAC3B,IAAI,CAACC,KAAK,GAAGV,MAAM,CAACU,KAAK;IAEzB,IAAI,CAACC,IAAI,GAAG,IAAIC,oDAAyB,CAAC;MACxCC,gBAAgB,EAAE,IAAI;MACtBC,UAAU,EAAE,IAAI;MAChBC,MAAM,EAAE,IAAI;MACZC,eAAe,EAAER,mBAAmB;MACpCS,cAAc,EAAEjB,MAAM,CAACiB,cAAc;MACrCC,WAAW,EAAE;IACf,CAAC,CAAC;IAEF,CAAAjB,qBAAA,OAAI,CAACU,IAAI,CAACQ,YAAY,aAAtBlB,qBAAA,CAAwBmB,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC;IAE1C,IAAAC,oBAAc,EAAC,IAAI,EAAE;MACnBC,KAAK,EAAEC,gBAAU,CAACC;IACpB,CAAC,CAAC;EACJ;EAEAC,IAAIA,CAAA,EAAG;IACL,OAAO,MAAM;MACX,OAAO,IAAI,CAACC,MAAM,CAACC,SAAS,CAAC,SAAS,CAAC,CAACC,OAAO,CAAEC,CAAC,IAAKA,CAAC,oBAADA,CAAC,CAAG,CAAC,CAAC;IAC/D,CAAC;EACH;AACF;AAACC,OAAA,CAAAhC,qBAAA,GAAAA,qBAAA","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[],"sources":["../../../../src/state/NestedTableState/NestedTableLevelDescriptor.ts"],"sourcesContent":["import { FiltersMap } from '@wix/bex-core';\nimport { NestedCollectionLevelDescriptor } from './NestedCollectionLevelDescriptor';\nimport { ActionCell } from '../../components/ActionCell';\nimport {\n NestedTableNestColumns,\n RenderMainColumn,\n} from './NestedTableNodeState';\n\nexport interface NestedTableLevelDescriptor<\n C extends string,\n T,\n F extends FiltersMap,\n> extends NestedCollectionLevelDescriptor<T, F> {\n readonly columns?: NestedTableNestColumns<C, T>;\n readonly renderMainColumn?: RenderMainColumn<T>;\n readonly actionCell?: ActionCell<T, F>;\n readonly breadcrumbs?: (\n item: T,\n ) => { id: string; name: string }[] | null | undefined;\n readonly onAddNewClick?: () => void;\n}\n"],"mappings":"","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":[],"sources":["../../../../src/state/NestedTableState/NestedTableLevelDescriptor.ts"],"sourcesContent":["import { FiltersMap } from '@wix/bex-core';\nimport { NestedCollectionLevelDescriptor } from './NestedCollectionLevelDescriptor';\nimport { ActionCell } from '../../components/ActionCell';\nimport {\n NestedTableNestColumns,\n RenderMainColumn,\n} from './NestedTableNodeState';\nimport { NestedDragEndEvent } from '../../components/NestedTableDragAndDrop/NestedTableDragAndDropState';\n\nexport interface NestedTableLevelDescriptor<\n C extends string,\n T,\n F extends FiltersMap,\n> extends NestedCollectionLevelDescriptor<T, F> {\n readonly columns?: NestedTableNestColumns<C, T>;\n readonly renderMainColumn?: RenderMainColumn<T>;\n readonly actionCell?: ActionCell<T, F>;\n readonly breadcrumbs?: (\n item: T,\n ) => { id: string; name: string }[] | null | undefined;\n readonly onAddNewClick?: () => void;\n readonly dragAndDropSubmit?: (\n event: NestedDragEndEvent<C, T, F>,\n ) => Promise<void>;\n}\n"],"mappings":"","ignoreList":[]}
|
|
@@ -44,20 +44,47 @@ class NestedTableNestedModeState {
|
|
|
44
44
|
container: this.container,
|
|
45
45
|
levels: wrapper.levels,
|
|
46
46
|
query: wrapper.query,
|
|
47
|
-
nodeCollection: wrapper.rootNodeCollection
|
|
47
|
+
nodeCollection: wrapper.rootNodeCollection,
|
|
48
|
+
sequences: wrapper.sequences
|
|
48
49
|
});
|
|
49
50
|
this.root = new _NestedTableNodeState.NestedTableNodeState({
|
|
50
51
|
nestedTable: this,
|
|
51
52
|
node: this.nestedCollection.root,
|
|
52
53
|
levelDescriptor: rootLevelDescriptor,
|
|
53
54
|
parentNode: null,
|
|
54
|
-
parent: null
|
|
55
|
+
parent: null,
|
|
56
|
+
preRegister: true
|
|
55
57
|
});
|
|
56
58
|
this.reportBi = params.reportBi;
|
|
57
59
|
this.virtual = new _TableVirtualState.TableVirtualState({
|
|
58
|
-
table: this
|
|
60
|
+
table: this,
|
|
61
|
+
getVirtualItemKey: item => {
|
|
62
|
+
var _item$item$state$pare;
|
|
63
|
+
return [item.id, (_item$item$state$pare = item.item.state.parent) == null ? void 0 : _item$item$state$pare.id].filter(Boolean).join('_');
|
|
64
|
+
}
|
|
59
65
|
});
|
|
60
66
|
}
|
|
67
|
+
getCollectionSnapshot() {
|
|
68
|
+
var _toolbar$viewsState, _originQuery$sort;
|
|
69
|
+
const {
|
|
70
|
+
toolbar
|
|
71
|
+
} = this;
|
|
72
|
+
const {
|
|
73
|
+
collection: {
|
|
74
|
+
result: {
|
|
75
|
+
originQuery,
|
|
76
|
+
total
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
} = toolbar;
|
|
80
|
+
return {
|
|
81
|
+
viewShown: (_toolbar$viewsState = toolbar.viewsState) == null || (_toolbar$viewsState = _toolbar$viewsState.views.currentView) == null ? void 0 : _toolbar$viewsState.id,
|
|
82
|
+
tabShown: toolbar.getCurrentTabName(),
|
|
83
|
+
sortOrderApplied: (_originQuery$sort = originQuery.sort) != null && _originQuery$sort.length ? JSON.stringify(originQuery.sort) : undefined,
|
|
84
|
+
filtersApplied: JSON.stringify(originQuery.filtersKey),
|
|
85
|
+
filteredListSizeShown: total
|
|
86
|
+
};
|
|
87
|
+
}
|
|
61
88
|
get multi() {
|
|
62
89
|
return this.toolbar.multi;
|
|
63
90
|
}
|
|
@@ -122,12 +149,14 @@ class NestedTableNestedModeState {
|
|
|
122
149
|
const {
|
|
123
150
|
initTask,
|
|
124
151
|
wrapper,
|
|
125
|
-
root
|
|
152
|
+
root,
|
|
153
|
+
nestedCollection
|
|
126
154
|
} = this;
|
|
127
155
|
const disposers = [wrapper.init(), root.init({
|
|
128
156
|
skipCollectionInit: true
|
|
129
|
-
})
|
|
130
|
-
|
|
157
|
+
}),
|
|
158
|
+
// collection is initialized by toolbar state
|
|
159
|
+
nestedCollection.init()];
|
|
131
160
|
initTask.runOnce(async () => {
|
|
132
161
|
wrapper.initTask.runOnce();
|
|
133
162
|
root.initTask.runOnce();
|