@wix/patterns 1.136.0 → 1.138.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/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/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/CustomFieldsForm/CustomFieldsForm.js +11 -8
- package/dist/cjs/components/CustomFieldsForm/CustomFieldsForm.js.map +1 -1
- package/dist/cjs/components/CustomFieldsWidget/CustomFieldsWidget.js +22 -8
- package/dist/cjs/components/CustomFieldsWidget/CustomFieldsWidget.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/FiltersPanel/FiltersPanel.uni.driver.js +2 -1
- package/dist/cjs/components/FiltersPanel/FiltersPanel.uni.driver.js.map +1 -1
- package/dist/cjs/components/FormFieldInput/FormFieldInput.js +7 -4
- package/dist/cjs/components/FormFieldInput/FormFieldInput.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/LoadingRow/LoadingRow.st.css.js +3 -3
- package/dist/cjs/components/LoadingRow/LoadingRow.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/MultiAutoInlineCheckboxFilter/MultiAutoInlineCheckboxFilter.js +2 -2
- package/dist/cjs/components/MultiAutoInlineCheckboxFilter/MultiAutoInlineCheckboxFilter.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/NestedTablePlaceholderStatesRow.st.css.js +2 -2
- package/dist/cjs/components/NestedTable/NestedTablePlaceholderStatesRow.st.css.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/NestedTableDragAndDrop/MultipleDragOverlayEffect.st.css.js +2 -2
- package/dist/cjs/components/NestedTableDragAndDrop/MultipleDragOverlayEffect.st.css.js.map +1 -1
- package/dist/cjs/components/NestedTableDragAndDrop/NestedTableDragAndDropRow.st.css.js +2 -2
- package/dist/cjs/components/NestedTableDragAndDrop/NestedTableDragAndDropRow.st.css.js.map +1 -1
- 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/getVirtualTableProps.js +2 -2
- package/dist/cjs/components/Table/getVirtualTableProps.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/Tags/TagsBulkAssignUtils.js +40 -0
- package/dist/cjs/components/Tags/TagsBulkAssignUtils.js.map +1 -0
- package/dist/cjs/components/Tags/useTagsBulkAssignFoldersUtils.js +7 -7
- package/dist/cjs/components/Tags/useTagsBulkAssignFoldersUtils.js.map +1 -1
- package/dist/cjs/components/Tags/useTagsBulkAssignUtils.js +7 -7
- package/dist/cjs/components/Tags/useTagsBulkAssignUtils.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/useCustomFieldsWidget.js +0 -6
- package/dist/cjs/hooks/useCustomFieldsWidget.js.map +1 -1
- package/dist/cjs/services/viewsService.js +10 -3
- package/dist/cjs/services/viewsService.js.map +1 -1
- package/dist/cjs/state/EntityPage/EntityPageState.js.map +1 -1
- package/dist/cjs/state/FoldersAndItemsCollectionsState.js +2 -2
- package/dist/cjs/state/FoldersAndItemsCollectionsState.js.map +1 -1
- package/dist/cjs/state/SettingsPage/SettingsPageState.js.map +1 -1
- package/dist/cjs/state/TagsBulkAssignAsyncState.js +111 -27
- package/dist/cjs/state/TagsBulkAssignAsyncState.js.map +1 -1
- package/dist/cjs/state/TagsBulkAssignPopoverState.js +3 -11
- package/dist/cjs/state/TagsBulkAssignPopoverState.js.map +1 -1
- package/dist/cjs/state/TagsBulkAssignSyncState.js +9 -1
- package/dist/cjs/state/TagsBulkAssignSyncState.js.map +1 -1
- package/dist/cjs/styles.global.css +1 -1
- 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/CollectionToolbar/CollectionToolbar.st.css.js +2 -2
- package/dist/esm/components/CollectionToolbar/CollectionToolbar.st.css.js.map +1 -1
- package/dist/esm/components/CollectionToolbar/SearchOrCustomFilter.st.css.js +2 -2
- package/dist/esm/components/CollectionViewsDropdown/AutoCompleteReadonly.st.css.js +2 -2
- package/dist/esm/components/CollectionViewsDropdown/AutoCompleteReadonly.st.css.js.map +1 -1
- package/dist/esm/components/CollectionViewsDropdown/ViewsDropdown.st.css.js +2 -2
- package/dist/esm/components/CollectionViewsDropdown/ViewsDropdown.st.css.js.map +1 -1
- package/dist/esm/components/CustomFieldsForm/CustomFieldsForm.js +5 -2
- package/dist/esm/components/CustomFieldsForm/CustomFieldsForm.js.map +1 -1
- package/dist/esm/components/CustomFieldsWidget/CustomFieldsWidget.js +13 -2
- package/dist/esm/components/CustomFieldsWidget/CustomFieldsWidget.js.map +1 -1
- package/dist/esm/components/DragHandle/DragHandle.st.css.js +2 -2
- package/dist/esm/components/Fade/Fade.st.css.js +2 -2
- package/dist/esm/components/FiltersPanel/FiltersPanel.uni.driver.js +1 -0
- package/dist/esm/components/FiltersPanel/FiltersPanel.uni.driver.js.map +1 -1
- package/dist/esm/components/FormFieldInput/FormFieldInput.js +4 -1
- package/dist/esm/components/FormFieldInput/FormFieldInput.js.map +1 -1
- package/dist/esm/components/Heading/Heading.st.css.js +2 -2
- package/dist/esm/components/Heading/Heading.st.css.js.map +1 -1
- package/dist/esm/components/InputOverflow/InputOverflow.st.css.js +2 -2
- package/dist/esm/components/LoadingRow/LoadingRow.st.css.js +3 -3
- package/dist/esm/components/MaxHeightText/MaxHeightText.st.css.js +2 -2
- package/dist/esm/components/MaxLines/MaxLines.st.css.js +2 -2
- package/dist/esm/components/MaxLines/MaxLines.st.css.js.map +1 -1
- package/dist/esm/components/MultiAutoInlineCheckboxFilter/MultiAutoInlineCheckboxFilter.js.map +1 -1
- package/dist/esm/components/MultiBulkActionToolbar/MultiBulkActionToolbar.st.css.js +2 -2
- package/dist/esm/components/MultiBulkActionToolbar/MultiBulkActionToolbar.st.css.js.map +1 -1
- package/dist/esm/components/NestedTable/NestedTablePlaceholderStatesRow.st.css.js +2 -2
- package/dist/esm/components/NestedTable/NestedTableRow.st.css.js +2 -2
- package/dist/esm/components/NestedTableDragAndDrop/MultipleDragOverlayEffect.st.css.js +2 -2
- package/dist/esm/components/NestedTableDragAndDrop/NestedTableDragAndDropRow.st.css.js +2 -2
- package/dist/esm/components/PickerContent/PickerContent.st.css.js +2 -2
- package/dist/esm/components/PickerContent/PickerContent.st.css.js.map +1 -1
- package/dist/esm/components/PickerContent/PickerContentAdditionalStep.st.css.js +2 -2
- 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/SlidingModal/SlidingModal.st.css.js +2 -2
- package/dist/esm/components/Table/getVirtualTableProps.js +2 -2
- package/dist/esm/components/Table/getVirtualTableProps.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/Tags/ManageTags/ManageTagsModal/ManageTagsModal.st.css.js.map +1 -1
- package/dist/esm/components/Tags/TagsBulkAssignUtils.js +24 -0
- package/dist/esm/components/Tags/TagsBulkAssignUtils.js.map +1 -0
- package/dist/esm/components/Tags/useTagsBulkAssignFoldersUtils.js +8 -5
- package/dist/esm/components/Tags/useTagsBulkAssignFoldersUtils.js.map +1 -1
- package/dist/esm/components/Tags/useTagsBulkAssignUtils.js +5 -4
- package/dist/esm/components/Tags/useTagsBulkAssignUtils.js.map +1 -1
- package/dist/esm/components/ToolbarItemBox/ToolbarItemBox.st.css.js +2 -2
- package/dist/esm/components/common.st.css.js +2 -2
- package/dist/esm/components/common.st.css.js.map +1 -1
- package/dist/esm/hooks/useCustomFieldsWidget.js +0 -6
- package/dist/esm/hooks/useCustomFieldsWidget.js.map +1 -1
- package/dist/esm/services/viewsService.js +10 -4
- package/dist/esm/services/viewsService.js.map +1 -1
- package/dist/esm/state/EntityPage/EntityPageState.js.map +1 -1
- package/dist/esm/state/FoldersAndItemsCollectionsState.js +2 -2
- package/dist/esm/state/FoldersAndItemsCollectionsState.js.map +1 -1
- package/dist/esm/state/SettingsPage/SettingsPageState.js.map +1 -1
- package/dist/esm/state/TagsBulkAssignAsyncState.js +89 -18
- package/dist/esm/state/TagsBulkAssignAsyncState.js.map +1 -1
- package/dist/esm/state/TagsBulkAssignPopoverState.js +2 -8
- package/dist/esm/state/TagsBulkAssignPopoverState.js.map +1 -1
- package/dist/esm/state/TagsBulkAssignSyncState.js +6 -0
- package/dist/esm/state/TagsBulkAssignSyncState.js.map +1 -1
- package/dist/esm/styles.global.css +1 -1
- package/dist/esm/version.js +1 -1
- package/dist/types/components/CollectionTable/CollectionTable.uni.driver.d.ts +72 -0
- package/dist/types/components/CollectionTable/CollectionTable.uni.driver.d.ts.map +1 -1
- package/dist/types/components/CollectionToolbar/CollectionToolbar.st.css.d.ts.map +1 -1
- package/dist/types/components/CollectionToolbar/CollectionToolbar.uni.driver.d.ts +36 -0
- package/dist/types/components/CollectionToolbar/CollectionToolbar.uni.driver.d.ts.map +1 -1
- package/dist/types/components/CollectionViewsDropdown/AutoCompleteReadonly.st.css.d.ts.map +1 -1
- package/dist/types/components/CollectionViewsDropdown/ViewsDropdown.st.css.d.ts.map +1 -1
- package/dist/types/components/CustomFieldsForm/CustomFieldsForm.d.ts.map +1 -1
- package/dist/types/components/CustomFieldsWidget/CustomFieldsWidget.d.ts.map +1 -1
- package/dist/types/components/FiltersPanel/FiltersPanel.uni.driver.d.ts +36 -0
- package/dist/types/components/FiltersPanel/FiltersPanel.uni.driver.d.ts.map +1 -1
- package/dist/types/components/FormFieldInput/FormFieldInput.d.ts +13 -0
- package/dist/types/components/FormFieldInput/FormFieldInput.d.ts.map +1 -1
- package/dist/types/components/Grid/Grid.uni.driver.d.ts +36 -0
- package/dist/types/components/Grid/Grid.uni.driver.d.ts.map +1 -1
- package/dist/types/components/Grid/GridFolders.uni.driver.d.ts +108 -0
- package/dist/types/components/Grid/GridFolders.uni.driver.d.ts.map +1 -1
- package/dist/types/components/Grid/GridFoldersSection.uni.driver.d.ts +36 -0
- package/dist/types/components/Grid/GridFoldersSection.uni.driver.d.ts.map +1 -1
- package/dist/types/components/Heading/Heading.st.css.d.ts.map +1 -1
- package/dist/types/components/MaxLines/MaxLines.st.css.d.ts.map +1 -1
- package/dist/types/components/MultiAutoInlineCheckboxFilter/MultiAutoInlineCheckboxFilter.d.ts +3 -4
- package/dist/types/components/MultiAutoInlineCheckboxFilter/MultiAutoInlineCheckboxFilter.d.ts.map +1 -1
- package/dist/types/components/MultiBulkActionToolbar/MultiBulkActionToolbar.st.css.d.ts.map +1 -1
- package/dist/types/components/NestedTable/NestedTable.uni.driver.d.ts +108 -0
- package/dist/types/components/NestedTable/NestedTable.uni.driver.d.ts.map +1 -1
- package/dist/types/components/PickerContent/PickerContent.st.css.d.ts.map +1 -1
- package/dist/types/components/ScrollableContent/ScrollableContent.st.css.d.ts.map +1 -1
- package/dist/types/components/Table/Table.uni.driver.d.ts +72 -0
- package/dist/types/components/Table/Table.uni.driver.d.ts.map +1 -1
- package/dist/types/components/TableFolders/TableFolders.uni.driver.d.ts +108 -0
- package/dist/types/components/TableFolders/TableFolders.uni.driver.d.ts.map +1 -1
- package/dist/types/components/TableGridSwitch/TableGridSwitch.uni.driver.d.ts +108 -0
- package/dist/types/components/TableGridSwitch/TableGridSwitch.uni.driver.d.ts.map +1 -1
- package/dist/types/components/TableGridSwitchFolders/TableGridSwitchFolders.uni.driver.d.ts +216 -0
- package/dist/types/components/TableGridSwitchFolders/TableGridSwitchFolders.uni.driver.d.ts.map +1 -1
- package/dist/types/components/Tags/ManageTags/ManageTagsModal/ManageTagsModal.st.css.d.ts.map +1 -1
- package/dist/types/components/Tags/TagsBulkAssignUtils.d.ts +13 -0
- package/dist/types/components/Tags/TagsBulkAssignUtils.d.ts.map +1 -0
- package/dist/types/components/Tags/useTagsBulkAssignFoldersUtils.d.ts.map +1 -1
- package/dist/types/components/Tags/useTagsBulkAssignUtils.d.ts.map +1 -1
- package/dist/types/components/common.st.css.d.ts.map +1 -1
- package/dist/types/hooks/useCustomFieldsWidget.d.ts.map +1 -1
- package/dist/types/services/viewsService.d.ts.map +1 -1
- package/dist/types/state/FoldersAndItemsCollectionsState.d.ts +1 -1
- package/dist/types/state/FoldersAndItemsCollectionsState.d.ts.map +1 -1
- package/dist/types/state/TagsBulkAssignAsyncState.d.ts +14 -2
- package/dist/types/state/TagsBulkAssignAsyncState.d.ts.map +1 -1
- package/dist/types/state/TagsBulkAssignPopoverState.d.ts +0 -2
- package/dist/types/state/TagsBulkAssignPopoverState.d.ts.map +1 -1
- package/dist/types/state/TagsBulkAssignSyncState.d.ts +2 -0
- package/dist/types/state/TagsBulkAssignSyncState.d.ts.map +1 -1
- package/dist/types/testkit/enzyme.d.ts +756 -0
- package/dist/types/testkit/enzyme.d.ts.map +1 -1
- package/dist/types/testkit/jsdom.d.ts +756 -0
- package/dist/types/testkit/jsdom.d.ts.map +1 -1
- package/dist/types/testkit/puppeteer.d.ts +756 -0
- package/dist/types/testkit/puppeteer.d.ts.map +1 -1
- package/dist/types/version.d.ts +1 -1
- package/package.json +4 -4
- package/dist/cjs/components/Table/TableVirtualHeader.st.css +0 -3
- package/dist/cjs/components/Table/TableVirtualHeader.st.css.js +0 -22
- package/dist/cjs/components/Table/TableVirtualHeader.st.css.js.map +0 -1
- package/dist/cjs/components/Tags/useTagsBulkAssignBaseUtils.js +0 -28
- package/dist/cjs/components/Tags/useTagsBulkAssignBaseUtils.js.map +0 -1
- package/dist/esm/components/Table/TableVirtualHeader.st.css +0 -3
- package/dist/esm/components/Table/TableVirtualHeader.st.css.js +0 -15
- package/dist/esm/components/Table/TableVirtualHeader.st.css.js.map +0 -1
- package/dist/esm/components/Tags/useTagsBulkAssignBaseUtils.js +0 -16
- package/dist/esm/components/Tags/useTagsBulkAssignBaseUtils.js.map +0 -1
- package/dist/types/components/Table/TableVirtualHeader.st.css.d.ts +0 -13
- package/dist/types/components/Table/TableVirtualHeader.st.css.d.ts.map +0 -1
- package/dist/types/components/Tags/useTagsBulkAssignBaseUtils.d.ts +0 -15
- package/dist/types/components/Tags/useTagsBulkAssignBaseUtils.d.ts.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_bexCore","require","_util","_mobx","isActiveFilterAndNotInCollection","query","filtersArray","f1","isEmpty","some","f2","FoldersAndItemsCollectionsState","constructor","params","_defineProperty2","default","toolbar","items","folders","multi","collections","push","syncWithSharedQuery","bulkSelect","useNewSelectAllLogic","makeObservable","hasItemsOnlyActiveFilters","computed","hasFoldersOnlyActiveFilters","showEmptyState","
|
|
1
|
+
{"version":3,"names":["_bexCore","require","_util","_mobx","isActiveFilterAndNotInCollection","query","filtersArray","f1","isEmpty","some","f2","FoldersAndItemsCollectionsState","constructor","params","_defineProperty2","default","toolbar","items","folders","multi","collections","push","syncWithSharedQuery","bulkSelect","useNewSelectAllLogic","makeObservable","hasItemsOnlyActiveFilters","computed","hasFoldersOnlyActiveFilters","showEmptyState","hasSelectedFolders","hasAvailableItems","resultOriginQuerySearch","hasNonPersistentActiveFilters","selectedIds","length","init","initParams","disposers","addEventListener","emitter","clearResult","_runSearch","clearResultAndMoveToStart","_runSort","emit","forEach","d","exports"],"sources":["../../../src/state/FoldersAndItemsCollectionsState.ts"],"sourcesContent":["import {\n CollectionState,\n Filter,\n FiltersMap,\n syncWithSharedQuery,\n} from '@wix/bex-core';\nimport {\n ToolbarCollectionState,\n ToolbarCollectionStateParamsInitParams,\n} from './ToolbarCollectionState';\nimport { addEventListener } from '@wix/bex-core/util';\nimport { computed, makeObservable } from 'mobx';\n\nexport type PartialAllFilters<\n F1 extends FiltersMap,\n F2 extends FiltersMap,\n> = Partial<F1 & F2>;\n\nconst isActiveFilterAndNotInCollection =\n <T>({ query: { filtersArray } }: CollectionState<T, {}>) =>\n (f1: Filter<unknown>) =>\n !f1.isEmpty && !filtersArray.some((f2) => f2 === f1);\n\nexport interface FoldersAndItemsCollectionsStateInitParams\n extends ToolbarCollectionStateParamsInitParams {}\n\nexport interface FoldersAndItemsCollectionsStateParams<\n T1,\n F1 extends FiltersMap,\n T2,\n F2 extends FiltersMap,\n> {\n readonly items: CollectionState<T1, F1>;\n readonly folders: CollectionState<T2, F2>;\n readonly toolbar: ToolbarCollectionState<T1, PartialAllFilters<F1, F2>>;\n}\n\nexport class FoldersAndItemsCollectionsState<\n T1,\n F1 extends FiltersMap,\n T2,\n F2 extends FiltersMap,\n> {\n readonly toolbar;\n readonly items;\n readonly folders;\n\n constructor(params: FoldersAndItemsCollectionsStateParams<T1, F1, T2, F2>) {\n this.toolbar = params.toolbar;\n this.items = params.items;\n this.folders = params.folders;\n\n this.toolbar.multi.collections.push(\n this.folders as CollectionState<unknown, {}>,\n );\n\n syncWithSharedQuery(this.folders.query, this.items.query);\n this.items.bulkSelect.useNewSelectAllLogic = true;\n this.folders.bulkSelect.useNewSelectAllLogic = true;\n\n makeObservable(this, {\n hasItemsOnlyActiveFilters: computed,\n hasFoldersOnlyActiveFilters: computed,\n showEmptyState: computed,\n hasSelectedFolders: computed,\n });\n }\n\n get hasFoldersOnlyActiveFilters() {\n const { folders, items } = this;\n return folders.query.filtersArray.some(\n isActiveFilterAndNotInCollection(items),\n );\n }\n\n get hasItemsOnlyActiveFilters() {\n const { folders, items } = this;\n return items.query.filtersArray.some(\n isActiveFilterAndNotInCollection(folders),\n );\n }\n\n get showEmptyState() {\n const {\n toolbar: {\n multi: { showEmptyState },\n },\n items,\n folders,\n hasFoldersOnlyActiveFilters,\n hasItemsOnlyActiveFilters,\n } = this;\n return (\n showEmptyState ||\n (folders.showEmptyState && hasFoldersOnlyActiveFilters) ||\n (items.showEmptyState && hasItemsOnlyActiveFilters)\n );\n }\n\n get hasAvailableItems() {\n const {\n toolbar: {\n multi: { hasAvailableItems },\n },\n items,\n folders,\n } = this;\n return (\n hasAvailableItems || folders.hasAvailableItems || items.hasAvailableItems\n );\n }\n\n get resultOriginQuerySearch() {\n const {\n toolbar: {\n multi: { resultOriginQuerySearch },\n },\n } = this;\n return resultOriginQuerySearch;\n }\n\n get hasNonPersistentActiveFilters() {\n const {\n toolbar: {\n multi: { hasNonPersistentActiveFilters },\n },\n } = this;\n return hasNonPersistentActiveFilters;\n }\n\n get query() {\n return this.items.query;\n }\n\n get hasSelectedFolders() {\n return !!this.folders.bulkSelect.selectedIds.length;\n }\n\n init(initParams: FoldersAndItemsCollectionsStateInitParams) {\n const { items, folders, toolbar } = this;\n const disposers = [\n toolbar.init(initParams),\n addEventListener(items.emitter, 'search', ({ clearResult }) => {\n folders._runSearch(clearResult);\n }),\n addEventListener(items.emitter, 'clearSearch', () => {\n folders.clearResultAndMoveToStart();\n }),\n addEventListener(items.emitter, 'sort', (params) => {\n folders._runSort(params);\n }),\n addEventListener(items.emitter, 'beforeSortStart', (params) => {\n folders.emitter.emit('beforeSortStart', params);\n }),\n addEventListener(items.emitter, 'sortStart', (params) => {\n folders.emitter.emit('sortStart', params);\n }),\n ];\n\n return () => {\n disposers.forEach((d) => d());\n };\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_bexCore","require","_mobx","_SettingsPageStateBIReporter","_events","SettingsPageState","constructor","params","_defineProperty2","default","EventEmitter","fetch","_onSave","onSave","_onCancel","onCancel","saveSuccessToast","saveErrorToast","formPage","FormPageState","form","container","reportBI","createBILogger","componentType","pageType","route","window","location","pathname","bi","SettingsPageStateBIReporter","settingsPageState","init","makeObservable","handleSubmit","action","_settings","observable","ref","setSettings","isDirty","computed","initTask","onBeforeUnload","onBeforeUnloadSubscription","event","preventDefault","reportOnBeforeUnload","runOnce","_this$bi$appLoaded","_this$bi","data","Promise","all","status","promise","settings","appLoaded","call","remove","retryFetch","newSettings","isFetching","reportButtonClick","ctaName","_showErrorToast","err","e","_this$saveErrorToast","_this$container$showT","_this$container","errorToast","retry","message","showTryAgain","tryAgain","undefined","showToast","type","biName","translate","code","uiType","text","onClick","reportSaveTryAgain","removeToastOnClick","_showSuccessToast","_this$saveSuccessToas","_this$container$showT2","_this$container2","submitTask","isLoading","events","emit","run","isValid","reset","getValues","errorMonitor","captureException","setError","exports"],"sources":["../../../../src/state/SettingsPage/SettingsPageState.ts"],"sourcesContent":["import { FormPageState, ReportBI, WixPatternsContainer } from '@wix/bex-core';\nimport { action, computed, makeObservable, observable } from 'mobx';\nimport { FieldValues } from 'react-hook-form';\nimport { SettingsPageStateBIReporter } from './SettingsPageStateBIReporter';\nimport { EventEmitter, TypedEmitter } from '@wix/bex-core/events';\n\nexport interface SettingsPageStateParams<\n T,\n V extends FieldValues = FieldValues,\n> {\n /**\n * A function that fetches the settings data.\n * @returns a promise that resolves to an object containing the settings.\n */\n fetch: () => Promise<{ settings: T | undefined }>;\n\n /**\n * A function to handle the save action.\n */\n onSave: () => Promise<void>;\n\n /**\n * A function to handle the cancel action.\n */\n onCancel: () => Promise<void>;\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 a `message` and an `action` object. Alternatively, it can return an object with an optional `message` and a `tryAgain` flag, or a string message.\n * The previous return types are still supported but are now deprecated.\n */\n saveErrorToast?: (\n err: unknown,\n params: { retry: () => void },\n ) =>\n | {\n message?: string;\n /**\n * @deprecated use `action` instead\n */\n tryAgain?: boolean;\n action?: { text: string; onClick: () => void };\n }\n | string;\n\n form: FormPageState<V>['form'];\n\n /**\n * An object representing the container, possibly for dependency injection or component management.\n */\n container: WixPatternsContainer;\n}\n\nexport interface SettingsPageStateInterface {}\n\nexport class SettingsPageState<T, V extends FieldValues = FieldValues>\n implements SettingsPageStateInterface\n{\n readonly fetch: SettingsPageStateParams<T>['fetch'];\n readonly _onSave: SettingsPageStateParams<T, V>['onSave'];\n readonly _onCancel: SettingsPageStateParams<T, V>['onCancel'];\n readonly saveSuccessToast?: SettingsPageStateParams<T>['saveSuccessToast'];\n readonly saveErrorToast?: SettingsPageStateParams<T>['saveErrorToast'];\n\n _settings: T | null = null;\n\n readonly container: WixPatternsContainer;\n readonly reportBI: ReportBI;\n readonly bi: SettingsPageStateBIReporter<T, V>;\n\n readonly formPage: FormPageState<V>;\n\n readonly events = new EventEmitter() as TypedEmitter<{\n save: () => void;\n saveError: (err: unknown) => void;\n }>;\n\n constructor(params: SettingsPageStateParams<T, V>) {\n this.fetch = params.fetch;\n this._onSave = params.onSave;\n this._onCancel = params.onCancel;\n this.saveSuccessToast = params.saveSuccessToast;\n this.saveErrorToast = params.saveErrorToast;\n this.formPage = new FormPageState<V>({ form: params.form });\n\n this.container = params.container;\n\n this.reportBI = this.container.createBILogger({\n componentType: 'Settings page',\n pageType: 'Settings',\n route: window.location.pathname,\n });\n\n this.bi = new SettingsPageStateBIReporter({\n reportBI: this.reportBI,\n settingsPageState: this,\n });\n\n this.bi.init();\n\n makeObservable(this, {\n handleSubmit: action,\n _settings: observable.ref,\n setSettings: action,\n isDirty: computed,\n });\n }\n\n init() {\n const {\n formPage: { initTask },\n container,\n } = this;\n const { onBeforeUnload } = container;\n\n const onBeforeUnloadSubscription = onBeforeUnload?.(\n action((event) => {\n if (!this.isDirty) {\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.setSettings(data.settings ?? null);\n this.bi.appLoaded?.();\n });\n\n return () => {\n onBeforeUnloadSubscription?.remove();\n };\n }\n\n retryFetch() {\n this.formPage.retryFetch();\n }\n\n setSettings(newSettings: T | null) {\n this._settings = newSettings;\n }\n\n get settings(): T | null {\n return this._settings;\n }\n\n get isFetching() {\n return this.formPage.isFetching;\n }\n\n get form() {\n return this.formPage.form;\n }\n\n get isDirty() {\n return this.formPage.isDirty;\n }\n\n onCancel() {\n this.bi.reportButtonClick({ ctaName: 'Cancel' });\n this._onCancel();\n }\n\n _showErrorToast(err: any, e?: React.BaseSyntheticEvent) {\n const errorToast = this.saveErrorToast?.(err, {\n retry: () => this.handleSubmit(e),\n });\n const message =\n typeof errorToast === 'string' ? errorToast : errorToast?.message;\n const showTryAgain =\n typeof errorToast === 'string' ? true : errorToast?.tryAgain !== false;\n const action =\n typeof errorToast === 'string' ? undefined : errorToast?.action;\n\n this.container.showToast?.({\n type: 'ERROR',\n biName: 'cairo-settings-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:\n action || showTryAgain\n ? {\n uiType: 'LINK',\n text:\n action?.text ?? this.container.translate('cairo.toast.retry'),\n onClick: () => {\n if (action?.onClick) {\n action.onClick();\n } else {\n this.bi.reportSaveTryAgain();\n this.handleSubmit(e);\n }\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-settings-page-save-success-toast',\n message:\n message ?? this.container.translate('cairo.entityPage.success.toast'),\n });\n }\n\n async handleSubmit(e?: React.BaseSyntheticEvent) {\n if (this.formPage.submitTask.status.isLoading) {\n return;\n }\n\n this.events.emit('save');\n\n const {\n form,\n formPage: { submitTask },\n bi,\n } = this;\n\n submitTask.run(async () => {\n await form.handleSubmit(\n async () => {\n bi.reportButtonClick({ ctaName: 'Save', isValid: true });\n try {\n if (!this.isFetching) {\n await this._onSave();\n form.reset(form.getValues());\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\n await this.formPage.submitTask.status.promise;\n }\n\n get initTask() {\n return this.formPage.initTask;\n }\n\n get submitTask() {\n return this.formPage.submitTask;\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_bexCore","require","_mobx","_SettingsPageStateBIReporter","_events","SettingsPageState","constructor","params","_defineProperty2","default","EventEmitter","fetch","_onSave","onSave","_onCancel","onCancel","saveSuccessToast","saveErrorToast","formPage","FormPageState","form","container","reportBI","createBILogger","componentType","pageType","route","window","location","pathname","bi","SettingsPageStateBIReporter","settingsPageState","init","makeObservable","handleSubmit","action","_settings","observable","ref","setSettings","isDirty","computed","initTask","onBeforeUnload","onBeforeUnloadSubscription","event","preventDefault","reportOnBeforeUnload","runOnce","_this$bi$appLoaded","_this$bi","data","Promise","all","status","promise","settings","appLoaded","call","remove","retryFetch","newSettings","isFetching","reportButtonClick","ctaName","_showErrorToast","err","e","_this$saveErrorToast","_this$container$showT","_this$container","errorToast","retry","message","showTryAgain","tryAgain","undefined","showToast","type","biName","translate","code","uiType","text","onClick","reportSaveTryAgain","removeToastOnClick","_showSuccessToast","_this$saveSuccessToas","_this$container$showT2","_this$container2","submitTask","isLoading","events","emit","run","isValid","reset","getValues","errorMonitor","captureException","setError","exports"],"sources":["../../../../src/state/SettingsPage/SettingsPageState.ts"],"sourcesContent":["import { FormPageState, ReportBI, WixPatternsContainer } from '@wix/bex-core';\nimport { action, computed, makeObservable, observable } from 'mobx';\nimport { FieldValues } from 'react-hook-form';\nimport { SettingsPageStateBIReporter } from './SettingsPageStateBIReporter';\nimport { EventEmitter, TypedEmitter } from '@wix/bex-core/events';\n\nexport interface SettingsPageStateParams<\n T,\n V extends FieldValues = FieldValues,\n> {\n /**\n * A function that fetches the settings data.\n * @returns a promise that resolves to an object containing the settings.\n */\n fetch: () => Promise<{ settings: T | undefined }>;\n\n /**\n * A function to handle the save action.\n */\n onSave: () => Promise<void>;\n\n /**\n * A function to handle the cancel action.\n */\n onCancel: () => Promise<void>;\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 a `message` and an `action` object. Alternatively, it can return an object with an optional `message` and a `tryAgain` flag, or a string message.\n * The previous return types are still supported but are now deprecated.\n */\n saveErrorToast?: (\n err: unknown,\n params: { retry: () => void },\n ) =>\n | {\n message?: string;\n /**\n * @deprecated use `action` instead\n */\n tryAgain?: boolean;\n action?: { text: string; onClick: () => void };\n }\n | string;\n\n form: FormPageState<V>['form'];\n\n /**\n * An object representing the container, possibly for dependency injection or component management.\n */\n container: WixPatternsContainer;\n}\n\nexport interface SettingsPageStateInterface {}\n\nexport class SettingsPageState<T, V extends FieldValues = FieldValues>\n implements SettingsPageStateInterface\n{\n readonly fetch: SettingsPageStateParams<T>['fetch'];\n readonly _onSave: SettingsPageStateParams<T, V>['onSave'];\n readonly _onCancel: SettingsPageStateParams<T, V>['onCancel'];\n readonly saveSuccessToast?: SettingsPageStateParams<T>['saveSuccessToast'];\n readonly saveErrorToast?: SettingsPageStateParams<T>['saveErrorToast'];\n\n _settings: T | null = null;\n\n readonly container: WixPatternsContainer;\n readonly reportBI: ReportBI;\n readonly bi: SettingsPageStateBIReporter<T, V>;\n\n readonly formPage: FormPageState<V>;\n\n readonly events = new EventEmitter() as TypedEmitter<{\n save: () => void;\n saveError: (err: unknown) => void;\n }>;\n\n constructor(params: SettingsPageStateParams<T, V>) {\n this.fetch = params.fetch;\n this._onSave = params.onSave;\n this._onCancel = params.onCancel;\n this.saveSuccessToast = params.saveSuccessToast;\n this.saveErrorToast = params.saveErrorToast;\n this.formPage = new FormPageState<V>({ form: params.form });\n\n this.container = params.container;\n\n this.reportBI = this.container.createBILogger({\n componentType: 'Settings page',\n pageType: 'Settings',\n route: window.location.pathname,\n });\n\n this.bi = new SettingsPageStateBIReporter({\n reportBI: this.reportBI,\n settingsPageState: this,\n });\n\n this.bi.init();\n\n makeObservable(this, {\n handleSubmit: action,\n _settings: observable.ref,\n setSettings: action,\n isDirty: computed,\n });\n }\n\n init() {\n const {\n formPage: { initTask },\n container,\n } = this;\n const { onBeforeUnload } = container;\n\n const onBeforeUnloadSubscription = onBeforeUnload?.(\n action((event: Event) => {\n if (!this.isDirty) {\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.setSettings(data.settings ?? null);\n this.bi.appLoaded?.();\n });\n\n return () => {\n onBeforeUnloadSubscription?.remove();\n };\n }\n\n retryFetch() {\n this.formPage.retryFetch();\n }\n\n setSettings(newSettings: T | null) {\n this._settings = newSettings;\n }\n\n get settings(): T | null {\n return this._settings;\n }\n\n get isFetching() {\n return this.formPage.isFetching;\n }\n\n get form() {\n return this.formPage.form;\n }\n\n get isDirty() {\n return this.formPage.isDirty;\n }\n\n onCancel() {\n this.bi.reportButtonClick({ ctaName: 'Cancel' });\n this._onCancel();\n }\n\n _showErrorToast(err: any, e?: React.BaseSyntheticEvent) {\n const errorToast = this.saveErrorToast?.(err, {\n retry: () => this.handleSubmit(e),\n });\n const message =\n typeof errorToast === 'string' ? errorToast : errorToast?.message;\n const showTryAgain =\n typeof errorToast === 'string' ? true : errorToast?.tryAgain !== false;\n const action =\n typeof errorToast === 'string' ? undefined : errorToast?.action;\n\n this.container.showToast?.({\n type: 'ERROR',\n biName: 'cairo-settings-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:\n action || showTryAgain\n ? {\n uiType: 'LINK',\n text:\n action?.text ?? this.container.translate('cairo.toast.retry'),\n onClick: () => {\n if (action?.onClick) {\n action.onClick();\n } else {\n this.bi.reportSaveTryAgain();\n this.handleSubmit(e);\n }\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-settings-page-save-success-toast',\n message:\n message ?? this.container.translate('cairo.entityPage.success.toast'),\n });\n }\n\n async handleSubmit(e?: React.BaseSyntheticEvent) {\n if (this.formPage.submitTask.status.isLoading) {\n return;\n }\n\n this.events.emit('save');\n\n const {\n form,\n formPage: { submitTask },\n bi,\n } = this;\n\n submitTask.run(async () => {\n await form.handleSubmit(\n async () => {\n bi.reportButtonClick({ ctaName: 'Save', isValid: true });\n try {\n if (!this.isFetching) {\n await this._onSave();\n form.reset(form.getValues());\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\n await this.formPage.submitTask.status.promise;\n }\n\n get initTask() {\n return this.formPage.initTask;\n }\n\n get submitTask() {\n return this.formPage.submitTask;\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -20,11 +20,29 @@ class TagsBulkAssignAsyncState {
|
|
|
20
20
|
(0, _defineProperty2.default)(this, "job", null);
|
|
21
21
|
(0, _defineProperty2.default)(this, "timeout", null);
|
|
22
22
|
(0, _defineProperty2.default)(this, "isDuringApplyChanges", false);
|
|
23
|
+
(0, _defineProperty2.default)(this, "currentInvocationParams", null);
|
|
24
|
+
(0, _defineProperty2.default)(this, "updatingTagsToast", null);
|
|
23
25
|
(0, _defineProperty2.default)(this, "openAsyncJobProgressModal", () => {
|
|
24
26
|
this.asyncJobProgressModalState.modal.open();
|
|
25
27
|
});
|
|
26
28
|
(0, _defineProperty2.default)(this, "closeAsyncJobProgressModal", () => {
|
|
27
29
|
this.asyncJobProgressModalState.modal.close();
|
|
30
|
+
if (this.isJobInProgress) {
|
|
31
|
+
var _this$container$showT, _this$container;
|
|
32
|
+
this.updatingTagsToast = ((_this$container$showT = (_this$container = this.container).showToast) == null ? void 0 : _this$container$showT.call(_this$container, {
|
|
33
|
+
type: 'STANDARD',
|
|
34
|
+
message: this.container.translate('cairo.tags.bulkItemUpdate.updatingTags.toast'),
|
|
35
|
+
action: {
|
|
36
|
+
text: this.container.translate('cairo.tags.bulkItemUpdate.updatingTags.toast.CTA'),
|
|
37
|
+
onClick: async () => {
|
|
38
|
+
this.openAsyncJobProgressModal();
|
|
39
|
+
},
|
|
40
|
+
removeToastOnClick: true
|
|
41
|
+
},
|
|
42
|
+
timeout: 'NONE',
|
|
43
|
+
biName: 'cairo-updating-bulk-assign-tags-async'
|
|
44
|
+
})) || null;
|
|
45
|
+
}
|
|
28
46
|
});
|
|
29
47
|
const {
|
|
30
48
|
collectionState,
|
|
@@ -43,7 +61,7 @@ class TagsBulkAssignAsyncState {
|
|
|
43
61
|
isDuringApplyChanges: _mobx.observable,
|
|
44
62
|
init: _mobx.action,
|
|
45
63
|
applyChanges: _mobx.action,
|
|
46
|
-
|
|
64
|
+
pollJobStatus: _mobx.action,
|
|
47
65
|
canBulkAssignAsync: _mobx.computed,
|
|
48
66
|
isJobCompleted: _mobx.computed,
|
|
49
67
|
isJobFailed: _mobx.computed,
|
|
@@ -76,9 +94,6 @@ class TagsBulkAssignAsyncState {
|
|
|
76
94
|
newAssignedTagIds,
|
|
77
95
|
newUnassignedTagIds
|
|
78
96
|
}) {
|
|
79
|
-
if (!this.asyncBulkUpdateTags) {
|
|
80
|
-
throw new Error('tried to bulk assign tags async without asyncBulkUpdateTags prop given');
|
|
81
|
-
}
|
|
82
97
|
this.isDuringApplyChanges = true;
|
|
83
98
|
const {
|
|
84
99
|
bulkSelect,
|
|
@@ -89,9 +104,7 @@ class TagsBulkAssignAsyncState {
|
|
|
89
104
|
selectedValues,
|
|
90
105
|
uncheckedValues
|
|
91
106
|
} = bulkSelect;
|
|
92
|
-
const {
|
|
93
|
-
jobId
|
|
94
|
-
} = await this.asyncBulkUpdateTags({
|
|
107
|
+
const params = {
|
|
95
108
|
allSelected,
|
|
96
109
|
selectedValues,
|
|
97
110
|
uncheckedValues,
|
|
@@ -106,11 +119,21 @@ class TagsBulkAssignAsyncState {
|
|
|
106
119
|
tagIds: newUnassignedTagIds
|
|
107
120
|
}
|
|
108
121
|
}
|
|
109
|
-
}
|
|
122
|
+
};
|
|
123
|
+
await this.triggerBulkAssign(params);
|
|
124
|
+
}
|
|
125
|
+
async triggerBulkAssign(params) {
|
|
126
|
+
if (!this.asyncBulkUpdateTags) {
|
|
127
|
+
throw new Error('tried to bulk assign tags async without asyncBulkUpdateTags prop given');
|
|
128
|
+
}
|
|
129
|
+
this.currentInvocationParams = params;
|
|
130
|
+
const {
|
|
131
|
+
jobId
|
|
132
|
+
} = await this.asyncBulkUpdateTags(params);
|
|
110
133
|
this.asyncJobProgressModalState.modal.open();
|
|
111
|
-
await this.
|
|
134
|
+
await this.pollJobStatus(jobId);
|
|
112
135
|
}
|
|
113
|
-
async
|
|
136
|
+
async pollJobStatus(jobId) {
|
|
114
137
|
try {
|
|
115
138
|
const {
|
|
116
139
|
data: {
|
|
@@ -127,43 +150,104 @@ class TagsBulkAssignAsyncState {
|
|
|
127
150
|
}
|
|
128
151
|
(0, _mobx.runInAction)(() => {
|
|
129
152
|
if (this.isJobInProgress) {
|
|
130
|
-
this.timeout = setTimeout(() =>
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
}
|
|
153
|
+
this.timeout = setTimeout(() => {
|
|
154
|
+
(0, _mobx.runInAction)(() => this.pollJobStatus(jobId));
|
|
155
|
+
}, POLL_DELAY);
|
|
156
|
+
return;
|
|
157
|
+
}
|
|
158
|
+
if (this.isJobEnded) {
|
|
159
|
+
this.timeout = setTimeout(() => {
|
|
160
|
+
(0, _mobx.runInAction)(() => this.handleJobEnd());
|
|
161
|
+
}, MILLIS_FOR_SHOWING_SUCCESS);
|
|
139
162
|
}
|
|
140
163
|
});
|
|
141
164
|
}
|
|
142
|
-
|
|
165
|
+
handleJobEnd() {
|
|
166
|
+
const lastInvocationParams = this.currentInvocationParams;
|
|
167
|
+
if (this.isJobCompleted) {
|
|
168
|
+
this.handleJobSuccess(lastInvocationParams);
|
|
169
|
+
}
|
|
170
|
+
this.resetStateParams();
|
|
171
|
+
}
|
|
172
|
+
handleJobSuccess(lastInvocationParams) {
|
|
143
173
|
var _this$job;
|
|
144
|
-
|
|
174
|
+
const failCount = (_this$job = this.job) == null || (_this$job = _this$job.counts) == null ? void 0 : _this$job.failCount;
|
|
175
|
+
if (failCount) {
|
|
176
|
+
this.showPartialFailureToast({
|
|
177
|
+
failCount,
|
|
178
|
+
lastInvocationParams
|
|
179
|
+
});
|
|
180
|
+
}
|
|
181
|
+
this.showJobCompletedSuccessfullyToast();
|
|
182
|
+
this.refreshCollection();
|
|
145
183
|
}
|
|
146
|
-
|
|
184
|
+
resetStateParams() {
|
|
185
|
+
var _this$updatingTagsToa;
|
|
186
|
+
this.job = null;
|
|
187
|
+
this.currentInvocationParams = null;
|
|
188
|
+
this.isDuringApplyChanges = false;
|
|
189
|
+
(_this$updatingTagsToa = this.updatingTagsToast) == null || _this$updatingTagsToa.remove();
|
|
190
|
+
this.updatingTagsToast = null;
|
|
191
|
+
this.closeAsyncJobProgressModal();
|
|
192
|
+
}
|
|
193
|
+
showPartialFailureToast({
|
|
194
|
+
failCount,
|
|
195
|
+
lastInvocationParams
|
|
196
|
+
}) {
|
|
197
|
+
var _this$container$showT2, _this$container2;
|
|
198
|
+
(_this$container$showT2 = (_this$container2 = this.container).showToast) == null || _this$container$showT2.call(_this$container2, {
|
|
199
|
+
type: 'WARNING',
|
|
200
|
+
message: this.container.translate('cairo.tags.bulkItemUpdate.toast.error', {
|
|
201
|
+
total: failCount
|
|
202
|
+
}),
|
|
203
|
+
action: {
|
|
204
|
+
text: this.container.translate('cairo.tags.bulkItemUpdate.toast.error.CTA'),
|
|
205
|
+
onClick: async () => {
|
|
206
|
+
if (lastInvocationParams) {
|
|
207
|
+
await this.triggerBulkAssign(lastInvocationParams);
|
|
208
|
+
}
|
|
209
|
+
},
|
|
210
|
+
removeToastOnClick: true
|
|
211
|
+
},
|
|
212
|
+
biName: 'cairo-update-bulk-assign-tags-async-fail'
|
|
213
|
+
});
|
|
214
|
+
}
|
|
215
|
+
showJobCompletedSuccessfullyToast() {
|
|
216
|
+
var _this$container$showT3, _this$container3;
|
|
217
|
+
(_this$container$showT3 = (_this$container3 = this.container).showToast) == null || _this$container$showT3.call(_this$container3, {
|
|
218
|
+
type: 'SUCCESS',
|
|
219
|
+
message: this.container.translate('cairo.tags.bulkItemUpdate.toast.success'),
|
|
220
|
+
biName: 'cairo-update-bulk-assign-tags-async-success'
|
|
221
|
+
});
|
|
222
|
+
}
|
|
223
|
+
refreshCollection() {
|
|
224
|
+
this.collectionState.refreshAllPages();
|
|
225
|
+
}
|
|
226
|
+
get isJobCompleted() {
|
|
147
227
|
var _this$job2;
|
|
148
|
-
return ((_this$job2 = this.job) == null ? void 0 : _this$job2.status) === '
|
|
228
|
+
return ((_this$job2 = this.job) == null ? void 0 : _this$job2.status) === 'FINISHED';
|
|
229
|
+
}
|
|
230
|
+
get isJobFailed() {
|
|
231
|
+
var _this$job3;
|
|
232
|
+
return ((_this$job3 = this.job) == null ? void 0 : _this$job3.status) === 'FAILED';
|
|
149
233
|
}
|
|
150
234
|
get isJobEnded() {
|
|
151
235
|
return this.isJobCompleted || this.isJobFailed;
|
|
152
236
|
}
|
|
153
237
|
get isJobInProgress() {
|
|
154
|
-
var _this$
|
|
155
|
-
return ((_this$
|
|
238
|
+
var _this$job4, _this$job5;
|
|
239
|
+
return ((_this$job4 = this.job) == null ? void 0 : _this$job4.status) === 'PROCESSING' || ((_this$job5 = this.job) == null ? void 0 : _this$job5.status) === 'INITIALIZED';
|
|
156
240
|
}
|
|
157
241
|
get canBulkAssignAsync() {
|
|
158
242
|
return !!this.asyncBulkUpdateTags;
|
|
159
243
|
}
|
|
160
244
|
get updatedItemsPercentage() {
|
|
161
|
-
var _this$job$counts, _this$job$counts2, _this$
|
|
245
|
+
var _this$job$counts, _this$job$counts2, _this$job6;
|
|
162
246
|
if (!this.job) {
|
|
163
247
|
return 0;
|
|
164
248
|
}
|
|
165
249
|
const alreadyUpdatedItemsCount = (((_this$job$counts = this.job.counts) == null ? void 0 : _this$job$counts.successCount) || 0) + (((_this$job$counts2 = this.job.counts) == null ? void 0 : _this$job$counts2.failCount) || 0);
|
|
166
|
-
const totalUpdatingItemsCount = ((_this$
|
|
250
|
+
const totalUpdatingItemsCount = ((_this$job6 = this.job) == null || (_this$job6 = _this$job6.counts) == null ? void 0 : _this$job6.total) || this.collectionState.bulkSelect.selectedCountOrTotal;
|
|
167
251
|
return Math.floor(100 * (alreadyUpdatedItemsCount / totalUpdatingItemsCount));
|
|
168
252
|
}
|
|
169
253
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_bexCore","require","_mobx","_http","POLL_DELAY","exports","MILLIS_FOR_SHOWING_SUCCESS","TagsBulkAssignAsyncState","constructor","params","_defineProperty2","default","ConditionalModalState","asyncJobProgressModalState","modal","open","close","collectionState","optimisticActions","container","tagsBIReporter","asyncBulkUpdateTags","makeObservable","job","observable","ref","isDuringApplyChanges","init","action","applyChanges","checkJobStatus","canBulkAssignAsync","computed","isJobCompleted","isJobFailed","isJobEnded","isJobInProgress","updatedItemsPercentage","onBeforeUnload","onBeforeUnloadSubscription","event","preventDefault","disposers","remove","timeout","clearTimeout","forEach","disposer","newAssignedTagIds","newUnassignedTagIds","Error","bulkSelect","result","allSelected","selectedValues","uncheckedValues","jobId","query","originQuery","assignTags","privateTags","tagIds","unassignTags","data","httpClient","request","getAsyncJob","runInAction","error","console","setTimeout","closeAsyncJobProgressModal","_this$job","status","_this$job2","_this$job3","_this$job4","_this$job$counts","_this$job$counts2","_this$job5","alreadyUpdatedItemsCount","counts","successCount","failCount","totalUpdatingItemsCount","total","selectedCountOrTotal","Math","floor"],"sources":["../../../src/state/TagsBulkAssignAsyncState.ts"],"sourcesContent":["import { ConditionalModalState, FiltersMap, Tags } from '@wix/bex-core';\n\nimport {\n TagsBulkAssignPopoverState,\n TagsBulkAssignPopoverStateParams,\n} from './TagsBulkAssignPopoverState';\nimport { BulkActionModalRenderPropParams } from '../components/BulkAction';\nimport {\n computed,\n makeObservable,\n observable,\n runInAction,\n action,\n} from 'mobx';\nimport { getAsyncJob } from '@wix/bex-utils/@wix/ambassador-infra-asyncjobs-v1-async-job/http';\nimport { AsyncJob } from '@wix/bex-utils/@wix/ambassador-infra-asyncjobs-v1-async-job/types';\n\nexport const POLL_DELAY = 500;\nexport const MILLIS_FOR_SHOWING_SUCCESS = 1000;\nexport interface AsyncBulkUpdateTagsParams<T, F extends FiltersMap>\n extends Pick<\n BulkActionModalRenderPropParams<T, F>,\n 'allSelected' | 'selectedValues' | 'uncheckedValues' | 'query'\n > {\n assignTags: Tags;\n unassignTags: Tags;\n}\n\nexport interface TagsBulkAssignAsyncStateParams<T, F extends FiltersMap>\n extends Pick<\n TagsBulkAssignPopoverStateParams<T, F>,\n 'asyncBulkUpdateTags' | 'collectionState'\n > {\n container: TagsBulkAssignPopoverState<T, F>['container'];\n optimisticActions: TagsBulkAssignPopoverState<T, F>['optimisticActions'];\n tagsBIReporter: TagsBulkAssignPopoverState<T, F>['tagsBIReporter'];\n}\n\nexport class TagsBulkAssignAsyncState<T, F extends FiltersMap> {\n readonly collectionState;\n readonly optimisticActions;\n readonly container;\n readonly tagsBIReporter;\n readonly asyncBulkUpdateTags;\n readonly asyncJobProgressModalState = new ConditionalModalState();\n\n job: AsyncJob | null = null;\n timeout: NodeJS.Timeout | null = null;\n isDuringApplyChanges = false;\n\n constructor(params: TagsBulkAssignAsyncStateParams<T, F>) {\n const {\n collectionState,\n optimisticActions,\n container,\n tagsBIReporter,\n asyncBulkUpdateTags,\n } = params;\n this.collectionState = collectionState;\n this.optimisticActions = optimisticActions;\n this.container = container;\n this.tagsBIReporter = tagsBIReporter;\n this.asyncBulkUpdateTags = asyncBulkUpdateTags;\n\n makeObservable(this, {\n job: observable.ref,\n isDuringApplyChanges: observable,\n init: action,\n applyChanges: action,\n checkJobStatus: action,\n canBulkAssignAsync: computed,\n isJobCompleted: computed,\n isJobFailed: computed,\n isJobEnded: computed,\n isJobInProgress: computed,\n updatedItemsPercentage: computed,\n });\n }\n\n init() {\n const { onBeforeUnload } = this.container;\n const onBeforeUnloadSubscription = onBeforeUnload?.(\n action((event) => {\n if (this.isDuringApplyChanges) {\n event.preventDefault();\n }\n }),\n );\n const disposers = [\n () => {\n onBeforeUnloadSubscription?.remove();\n },\n () => {\n if (this.timeout) {\n clearTimeout(this.timeout);\n }\n },\n ];\n\n return () => {\n disposers.forEach((disposer) => disposer());\n };\n }\n\n async applyChanges({\n newAssignedTagIds,\n newUnassignedTagIds,\n }: {\n newAssignedTagIds: string[];\n newUnassignedTagIds: string[];\n }) {\n if (!this.asyncBulkUpdateTags) {\n throw new Error(\n 'tried to bulk assign tags async without asyncBulkUpdateTags prop given',\n );\n }\n\n this.isDuringApplyChanges = true;\n const { bulkSelect, result } = this.collectionState;\n const { allSelected, selectedValues, uncheckedValues } = bulkSelect;\n\n const { jobId } = await this.asyncBulkUpdateTags({\n allSelected,\n selectedValues,\n uncheckedValues,\n query: result.originQuery,\n assignTags: { privateTags: { tagIds: newAssignedTagIds } },\n unassignTags: { privateTags: { tagIds: newUnassignedTagIds } },\n });\n\n this.asyncJobProgressModalState.modal.open();\n await this.checkJobStatus(jobId);\n }\n\n async checkJobStatus(jobId: string) {\n try {\n const {\n data: { job },\n } = await this.container.httpClient.request(getAsyncJob({ jobId }));\n runInAction(() => {\n this.job = job as AsyncJob;\n });\n } catch (error) {\n console.error('failed to get job status', error);\n }\n\n runInAction(() => {\n if (this.isJobInProgress) {\n this.timeout = setTimeout(() => this.checkJobStatus(jobId), POLL_DELAY);\n } else {\n if (this.isJobEnded) {\n setTimeout(() => {\n this.isDuringApplyChanges = false;\n this.closeAsyncJobProgressModal();\n this.job = null;\n }, MILLIS_FOR_SHOWING_SUCCESS);\n }\n }\n });\n }\n\n openAsyncJobProgressModal = () => {\n this.asyncJobProgressModalState.modal.open();\n };\n\n closeAsyncJobProgressModal = () => {\n this.asyncJobProgressModalState.modal.close();\n };\n\n get isJobCompleted() {\n return this.job?.status === 'FINISHED';\n }\n\n get isJobFailed() {\n return this.job?.status === 'FAILED';\n }\n\n get isJobEnded() {\n return this.isJobCompleted || this.isJobFailed;\n }\n\n get isJobInProgress() {\n return (\n this.job?.status === 'PROCESSING' || this.job?.status === 'INITIALIZED'\n );\n }\n\n get canBulkAssignAsync() {\n return !!this.asyncBulkUpdateTags;\n }\n\n get updatedItemsPercentage() {\n if (!this.job) {\n return 0;\n }\n\n const alreadyUpdatedItemsCount =\n (this.job.counts?.successCount || 0) + (this.job.counts?.failCount || 0);\n const totalUpdatingItemsCount =\n this.job?.counts?.total ||\n this.collectionState.bulkSelect.selectedCountOrTotal;\n\n return Math.floor(\n 100 * (alreadyUpdatedItemsCount / totalUpdatingItemsCount),\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_bexCore","require","_mobx","_http","POLL_DELAY","exports","MILLIS_FOR_SHOWING_SUCCESS","TagsBulkAssignAsyncState","constructor","params","_defineProperty2","default","ConditionalModalState","asyncJobProgressModalState","modal","open","close","isJobInProgress","_this$container$showT","_this$container","updatingTagsToast","container","showToast","call","type","message","translate","action","text","onClick","openAsyncJobProgressModal","removeToastOnClick","timeout","biName","collectionState","optimisticActions","tagsBIReporter","asyncBulkUpdateTags","makeObservable","job","observable","ref","isDuringApplyChanges","init","applyChanges","pollJobStatus","canBulkAssignAsync","computed","isJobCompleted","isJobFailed","isJobEnded","updatedItemsPercentage","onBeforeUnload","onBeforeUnloadSubscription","event","preventDefault","disposers","remove","clearTimeout","forEach","disposer","newAssignedTagIds","newUnassignedTagIds","bulkSelect","result","allSelected","selectedValues","uncheckedValues","query","originQuery","assignTags","privateTags","tagIds","unassignTags","triggerBulkAssign","Error","currentInvocationParams","jobId","data","httpClient","request","getAsyncJob","runInAction","error","console","setTimeout","handleJobEnd","lastInvocationParams","handleJobSuccess","resetStateParams","_this$job","failCount","counts","showPartialFailureToast","showJobCompletedSuccessfullyToast","refreshCollection","_this$updatingTagsToa","closeAsyncJobProgressModal","_this$container$showT2","_this$container2","total","_this$container$showT3","_this$container3","refreshAllPages","_this$job2","status","_this$job3","_this$job4","_this$job5","_this$job$counts","_this$job$counts2","_this$job6","alreadyUpdatedItemsCount","successCount","totalUpdatingItemsCount","selectedCountOrTotal","Math","floor"],"sources":["../../../src/state/TagsBulkAssignAsyncState.ts"],"sourcesContent":["import {\n ConditionalModalState,\n FiltersMap,\n ShowToast,\n Tags,\n} from '@wix/bex-core';\n\nimport {\n TagsBulkAssignPopoverState,\n TagsBulkAssignPopoverStateParams,\n} from './TagsBulkAssignPopoverState';\nimport { BulkActionModalRenderPropParams } from '../components/BulkAction';\nimport {\n computed,\n makeObservable,\n observable,\n runInAction,\n action,\n} from 'mobx';\nimport { getAsyncJob } from '@wix/bex-utils/@wix/ambassador-infra-asyncjobs-v1-async-job/http';\nimport { AsyncJob } from '@wix/bex-utils/@wix/ambassador-infra-asyncjobs-v1-async-job/types';\n\nexport const POLL_DELAY = 500;\nexport const MILLIS_FOR_SHOWING_SUCCESS = 1000;\nexport interface AsyncBulkUpdateTagsParams<T, F extends FiltersMap>\n extends Pick<\n BulkActionModalRenderPropParams<T, F>,\n 'allSelected' | 'selectedValues' | 'uncheckedValues' | 'query'\n > {\n assignTags: Tags;\n unassignTags: Tags;\n}\n\nexport interface TagsBulkAssignAsyncStateParams<T, F extends FiltersMap>\n extends Pick<\n TagsBulkAssignPopoverStateParams<T, F>,\n 'asyncBulkUpdateTags' | 'collectionState'\n > {\n container: TagsBulkAssignPopoverState<T, F>['container'];\n optimisticActions: TagsBulkAssignPopoverState<T, F>['optimisticActions'];\n tagsBIReporter: TagsBulkAssignPopoverState<T, F>['tagsBIReporter'];\n}\n\nexport class TagsBulkAssignAsyncState<T, F extends FiltersMap> {\n readonly collectionState;\n readonly optimisticActions;\n readonly container;\n readonly tagsBIReporter;\n readonly asyncBulkUpdateTags;\n readonly asyncJobProgressModalState = new ConditionalModalState();\n\n job: AsyncJob | null = null;\n timeout: NodeJS.Timeout | null = null;\n isDuringApplyChanges = false;\n currentInvocationParams: AsyncBulkUpdateTagsParams<T, F> | null = null;\n updatingTagsToast: ReturnType<ShowToast> | null = null;\n\n constructor(params: TagsBulkAssignAsyncStateParams<T, F>) {\n const {\n collectionState,\n optimisticActions,\n container,\n tagsBIReporter,\n asyncBulkUpdateTags,\n } = params;\n this.collectionState = collectionState;\n this.optimisticActions = optimisticActions;\n this.container = container;\n this.tagsBIReporter = tagsBIReporter;\n this.asyncBulkUpdateTags = asyncBulkUpdateTags;\n\n makeObservable(this, {\n job: observable.ref,\n isDuringApplyChanges: observable,\n init: action,\n applyChanges: action,\n pollJobStatus: action,\n canBulkAssignAsync: computed,\n isJobCompleted: computed,\n isJobFailed: computed,\n isJobEnded: computed,\n isJobInProgress: computed,\n updatedItemsPercentage: computed,\n });\n }\n\n init() {\n const { onBeforeUnload } = this.container;\n const onBeforeUnloadSubscription = onBeforeUnload?.(\n action((event: Event) => {\n if (this.isDuringApplyChanges) {\n event.preventDefault();\n }\n }),\n );\n const disposers = [\n () => {\n onBeforeUnloadSubscription?.remove();\n },\n () => {\n if (this.timeout) {\n clearTimeout(this.timeout);\n }\n },\n ];\n\n return () => {\n disposers.forEach((disposer) => disposer());\n };\n }\n\n async applyChanges({\n newAssignedTagIds,\n newUnassignedTagIds,\n }: {\n newAssignedTagIds: string[];\n newUnassignedTagIds: string[];\n }) {\n this.isDuringApplyChanges = true;\n const { bulkSelect, result } = this.collectionState;\n const { allSelected, selectedValues, uncheckedValues } = bulkSelect;\n\n const params = {\n allSelected,\n selectedValues,\n uncheckedValues,\n query: result.originQuery,\n assignTags: { privateTags: { tagIds: newAssignedTagIds } },\n unassignTags: { privateTags: { tagIds: newUnassignedTagIds } },\n };\n\n await this.triggerBulkAssign(params);\n }\n\n async triggerBulkAssign(params: AsyncBulkUpdateTagsParams<T, F>) {\n if (!this.asyncBulkUpdateTags) {\n throw new Error(\n 'tried to bulk assign tags async without asyncBulkUpdateTags prop given',\n );\n }\n\n this.currentInvocationParams = params;\n const { jobId } = await this.asyncBulkUpdateTags(params);\n this.asyncJobProgressModalState.modal.open();\n await this.pollJobStatus(jobId);\n }\n\n async pollJobStatus(jobId: string) {\n try {\n const {\n data: { job },\n } = await this.container.httpClient.request(getAsyncJob({ jobId }));\n runInAction(() => {\n this.job = job as AsyncJob;\n });\n } catch (error) {\n console.error('failed to get job status', error);\n }\n\n runInAction(() => {\n if (this.isJobInProgress) {\n this.timeout = setTimeout(() => {\n runInAction(() => this.pollJobStatus(jobId));\n }, POLL_DELAY);\n return;\n }\n if (this.isJobEnded) {\n this.timeout = setTimeout(() => {\n runInAction(() => this.handleJobEnd());\n }, MILLIS_FOR_SHOWING_SUCCESS);\n }\n });\n }\n\n handleJobEnd() {\n const lastInvocationParams = this.currentInvocationParams;\n\n if (this.isJobCompleted) {\n this.handleJobSuccess(lastInvocationParams);\n }\n\n this.resetStateParams();\n }\n\n handleJobSuccess(\n lastInvocationParams: AsyncBulkUpdateTagsParams<T, F> | null,\n ) {\n const failCount = this.job?.counts?.failCount;\n if (failCount) {\n this.showPartialFailureToast({ failCount, lastInvocationParams });\n }\n this.showJobCompletedSuccessfullyToast();\n this.refreshCollection();\n }\n\n resetStateParams() {\n this.job = null;\n this.currentInvocationParams = null;\n this.isDuringApplyChanges = false;\n this.updatingTagsToast?.remove();\n this.updatingTagsToast = null;\n this.closeAsyncJobProgressModal();\n }\n\n showPartialFailureToast({\n failCount,\n lastInvocationParams,\n }: {\n failCount: number;\n lastInvocationParams: AsyncBulkUpdateTagsParams<T, F> | null;\n }) {\n this.container.showToast?.({\n type: 'WARNING',\n message: this.container.translate(\n 'cairo.tags.bulkItemUpdate.toast.error',\n { total: failCount },\n ),\n action: {\n text: this.container.translate(\n 'cairo.tags.bulkItemUpdate.toast.error.CTA',\n ),\n onClick: async () => {\n if (lastInvocationParams) {\n await this.triggerBulkAssign(lastInvocationParams);\n }\n },\n removeToastOnClick: true,\n },\n biName: 'cairo-update-bulk-assign-tags-async-fail',\n });\n }\n\n showJobCompletedSuccessfullyToast() {\n this.container.showToast?.({\n type: 'SUCCESS',\n message: this.container.translate(\n 'cairo.tags.bulkItemUpdate.toast.success',\n ),\n biName: 'cairo-update-bulk-assign-tags-async-success',\n });\n }\n\n refreshCollection() {\n this.collectionState.refreshAllPages();\n }\n\n openAsyncJobProgressModal = () => {\n this.asyncJobProgressModalState.modal.open();\n };\n\n closeAsyncJobProgressModal = () => {\n this.asyncJobProgressModalState.modal.close();\n if (this.isJobInProgress) {\n this.updatingTagsToast =\n this.container.showToast?.({\n type: 'STANDARD',\n message: this.container.translate(\n 'cairo.tags.bulkItemUpdate.updatingTags.toast',\n ),\n action: {\n text: this.container.translate(\n 'cairo.tags.bulkItemUpdate.updatingTags.toast.CTA',\n ),\n onClick: async () => {\n this.openAsyncJobProgressModal();\n },\n removeToastOnClick: true,\n },\n timeout: 'NONE',\n biName: 'cairo-updating-bulk-assign-tags-async',\n }) || null;\n }\n };\n\n get isJobCompleted() {\n return this.job?.status === 'FINISHED';\n }\n\n get isJobFailed() {\n return this.job?.status === 'FAILED';\n }\n\n get isJobEnded() {\n return this.isJobCompleted || this.isJobFailed;\n }\n\n get isJobInProgress() {\n return (\n this.job?.status === 'PROCESSING' || this.job?.status === 'INITIALIZED'\n );\n }\n\n get canBulkAssignAsync() {\n return !!this.asyncBulkUpdateTags;\n }\n\n get updatedItemsPercentage() {\n if (!this.job) {\n return 0;\n }\n\n const alreadyUpdatedItemsCount =\n (this.job.counts?.successCount || 0) + (this.job.counts?.failCount || 0);\n const totalUpdatingItemsCount =\n this.job?.counts?.total ||\n this.collectionState.bulkSelect.selectedCountOrTotal;\n\n return Math.floor(\n 100 * (alreadyUpdatedItemsCount / totalUpdatingItemsCount),\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
4
|
exports.__esModule = true;
|
|
5
|
-
exports.TagsBulkAssignPopoverState =
|
|
5
|
+
exports.TagsBulkAssignPopoverState = void 0;
|
|
6
6
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
7
7
|
var _mobx = require("mobx");
|
|
8
8
|
var _bexCore = require("@wix/bex-core");
|
|
@@ -12,7 +12,6 @@ var _TagsBulkAssignButtonState = require("./TagsBulkAssignButtonState");
|
|
|
12
12
|
var _TagsBulkAssignAsyncState = require("./TagsBulkAssignAsyncState");
|
|
13
13
|
var _TagsBulkAssignSyncState = require("./TagsBulkAssignSyncState");
|
|
14
14
|
const origin = 'bulk_assign_popover';
|
|
15
|
-
const MAX_SELECTED_ENTITIES_FOR_BULK_ASSIGN_SYNC = exports.MAX_SELECTED_ENTITIES_FOR_BULK_ASSIGN_SYNC = 100;
|
|
16
15
|
class TagsBulkAssignPopoverState {
|
|
17
16
|
constructor({
|
|
18
17
|
tagsManagementState,
|
|
@@ -220,7 +219,7 @@ class TagsBulkAssignPopoverState {
|
|
|
220
219
|
newAssignedTagIds,
|
|
221
220
|
newUnassignedTagIds
|
|
222
221
|
};
|
|
223
|
-
if (this.
|
|
222
|
+
if (this.bulkAssignSyncState.canUseBulkSync) {
|
|
224
223
|
this.bulkAssignSyncState.applyChanges(params);
|
|
225
224
|
} else {
|
|
226
225
|
await this.bulkAssignAsyncState.applyChanges(params);
|
|
@@ -295,13 +294,6 @@ class TagsBulkAssignPopoverState {
|
|
|
295
294
|
get newUnassignedTagIds() {
|
|
296
295
|
return [...this.initialSelectedIds.filter(tagId => !this.assignedTagIds.includes(tagId)), ...this.initialIndeterminateTagIds.filter(tagId => ![...this.assignedTagIds, ...this.indeterminateTagIds].includes(tagId))];
|
|
297
296
|
}
|
|
298
|
-
get shouldlUseBulkSync() {
|
|
299
|
-
const {
|
|
300
|
-
allSelectedItemsFetched,
|
|
301
|
-
selectedCountOrTotal
|
|
302
|
-
} = this.collectionState.bulkSelect;
|
|
303
|
-
return allSelectedItemsFetched && selectedCountOrTotal < MAX_SELECTED_ENTITIES_FOR_BULK_ASSIGN_SYNC;
|
|
304
|
-
}
|
|
305
297
|
get canUseBulkUpdate() {
|
|
306
298
|
// Cannot invoke bulk assign while applying async changes
|
|
307
299
|
if (this.bulkAssignAsyncState.isDuringApplyChanges) {
|
|
@@ -309,7 +301,7 @@ class TagsBulkAssignPopoverState {
|
|
|
309
301
|
}
|
|
310
302
|
|
|
311
303
|
// can use sync
|
|
312
|
-
if (this.
|
|
304
|
+
if (this.bulkAssignSyncState.canUseBulkSync) {
|
|
313
305
|
return true;
|
|
314
306
|
}
|
|
315
307
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_mobx","require","_bexCore","_bi","_uuid","_TagsBulkAssignButtonState","_TagsBulkAssignAsyncState","_TagsBulkAssignSyncState","origin","MAX_SELECTED_ENTITIES_FOR_BULK_ASSIGN_SYNC","exports","TagsBulkAssignPopoverState","constructor","tagsManagementState","collectionState","tagsModalState","bulkUpdateTags","asyncBulkUpdateTags","getTags","_defineProperty2","default","tag","optimisticNewTag","assignedTagIds","includes","id","push","tagName","tagId","name","createdDate","Date","updatedAssignedTagIds","filter","assignedTagId","selectedKeyedItems","tagsCount","items","reduce","result","forEach","selectedKeyedItem","_this$getTags","_tags$privateTags","tags","item","call","entityTagIds","privateTags","tagIds","Set","entityTagId","selectedTagIds","indeterminateTagIds","tagCount","Object","entries","length","initialIndeterminateTagIds","initialSelectedIds","optimisticActions","_optimisticActions","CollectionOptimisticActions","container","collection","tagsBIReporter","TagsBIReporter","reportBi","createBILogger","componentType","fqdn","location","bulkAssignSyncState","TagsBulkAssignSyncState","bulkAssignAsyncState","TagsBulkAssignAsyncState","tagsBulkAssignButtonState","TagsBulkAssignButtonState","makeObservable","init","action","isShown","observable","searchValue","showPopover","closePopover","applyChanges","handleManageTagsCtaClick","handleItemSelect","handleSearchChange","createAndAssignTag","retry","ref","assignedTags","computed","disposers","disposer","_reportPopoverShowChangedBi","_initSelectionState","_reportSearchEventsBi","slice","TAG_MAX_LENGTH","uuid","assignTagOptimistic","createTag","filteredListSize","isFromSearch","onSuccess","newTag","assignTag","optimisticActionParams","successToast","biName","message","translate","errorToast","error","_this$container$error","_this$container$error2","resolvedError","errorHandler","getResolvedError","newAssignedTagIds","newUnassignedTagIds","params","shouldlUseBulkSync","openManageTagsModal","tagSubOrigin","itemId","currentTag","find","indeterminateTagId","assignedWithOptimisticTagIds","unassignTag","_reportSearchChangedBi","isInEmptyState","isSuccessful","tagOptions","sort","tag1","tag2","isTag1InitialUnassigned","_isInitialUnassignedTag","isTag2InitialUnassigned","valueOf","savedAssignedTags","map","element","Boolean","allSelectedItemsFetched","selectedCountOrTotal","bulkSelect","canUseBulkUpdate","isDuringApplyChanges","canBulkAssignAsync","isError","isLoading","isDirty","_calcTagsCount","_getSelectedTagsIdsStatus","isOpened","cairoFiltersPanelUsed","feature","onSearch","_clearAllEvents","event","events","emit"],"sources":["../../../src/state/TagsBulkAssignPopoverState.ts"],"sourcesContent":["import { action, makeObservable, computed, observable } from 'mobx';\nimport { TagsModalState } from './TagsModalState';\nimport { Tag } from '@wix/bex-utils/@wix/ambassador-os-tags-v1-tag/types';\nimport {\n CollectionOptimisticActions,\n CollectionState,\n FiltersMap,\n KeyedItem,\n TAG_MAX_LENGTH,\n Tags,\n TagsBIReporter,\n TagsManagementState,\n} from '@wix/bex-core';\nimport { cairoFiltersPanelUsed } from '@wix/bex-core/bi';\nimport { v4 as uuid } from 'uuid';\nimport { TagsProps } from '../components/Tags';\nimport { TagsBulkAssignButtonState } from './TagsBulkAssignButtonState';\nimport { TagsBulkAssignAsyncState } from './TagsBulkAssignAsyncState';\nimport { TagsBulkAssignSyncState } from './TagsBulkAssignSyncState';\n\nconst origin = 'bulk_assign_popover';\n\nexport interface BulkUpdateTagsParams {\n entityIds: string[];\n assignTags: Tags;\n unassignTags: Tags;\n}\n\nexport interface TagsBulkAssignPopoverStateParams<T, F extends FiltersMap>\n extends Pick<\n TagsProps<T, F>,\n 'bulkUpdateTags' | 'asyncBulkUpdateTags' | 'getTags'\n > {\n readonly tagsManagementState: TagsManagementState;\n readonly tagsModalState: TagsModalState;\n readonly collectionState: CollectionState<T, F>;\n}\n\nexport const MAX_SELECTED_ENTITIES_FOR_BULK_ASSIGN_SYNC = 100;\n\nexport class TagsBulkAssignPopoverState<T, F extends FiltersMap> {\n readonly tagsManagementState: TagsManagementState;\n readonly collectionState;\n readonly optimisticActions: CollectionOptimisticActions<T, F>;\n readonly tagsModalState;\n readonly tagsBulkAssignButtonState: TagsBulkAssignButtonState;\n\n readonly bulkAssignSyncState: TagsBulkAssignSyncState<T, F>;\n readonly bulkAssignAsyncState: TagsBulkAssignAsyncState<T, F>;\n readonly container;\n readonly tagsBIReporter: TagsBIReporter;\n readonly getTags?: (item: T) => Tags;\n initialSelectedIds: string[] = [];\n initialIndeterminateTagIds: string[] = [];\n indeterminateTagIds: string[] = [];\n assignedTagIds: string[] = [];\n optimisticNewTag: Tag | null = null;\n isShown = false;\n searchValue: string = '';\n\n constructor({\n tagsManagementState,\n collectionState,\n tagsModalState,\n bulkUpdateTags,\n asyncBulkUpdateTags,\n getTags,\n }: TagsBulkAssignPopoverStateParams<T, F>) {\n this.tagsManagementState = tagsManagementState;\n this.collectionState = collectionState;\n this.optimisticActions =\n collectionState._optimisticActions ??\n new CollectionOptimisticActions<T, F>({\n container: this.tagsManagementState.container,\n collection: this.collectionState,\n });\n this.tagsBIReporter = new TagsBIReporter({\n collection: this.tagsManagementState.collection,\n reportBi: this.tagsManagementState.container.createBILogger({\n componentType: 'TagsBulkAssignPopover',\n ...tagsManagementState.fqdn,\n }),\n location: 'Bulk assign tags popover',\n });\n this.tagsModalState = tagsModalState;\n this.container = tagsManagementState.container;\n this.getTags = getTags;\n this.bulkAssignSyncState = new TagsBulkAssignSyncState({\n collectionState,\n optimisticActions: this.optimisticActions,\n container: this.container,\n tagsBIReporter: this.tagsBIReporter,\n getTags,\n bulkUpdateTags,\n });\n this.bulkAssignAsyncState = new TagsBulkAssignAsyncState({\n collectionState,\n optimisticActions: this.optimisticActions,\n container: this.container,\n tagsBIReporter: this.tagsBIReporter,\n asyncBulkUpdateTags,\n });\n\n this.tagsBulkAssignButtonState = new TagsBulkAssignButtonState();\n\n makeObservable(this, {\n init: action,\n isShown: observable,\n initialSelectedIds: observable,\n initialIndeterminateTagIds: observable,\n indeterminateTagIds: observable,\n searchValue: observable,\n showPopover: action,\n closePopover: action,\n applyChanges: action,\n handleManageTagsCtaClick: action,\n handleItemSelect: action,\n handleSearchChange: action,\n createAndAssignTag: action,\n retry: action,\n assignedTagIds: observable,\n optimisticNewTag: observable.ref,\n assignedTags: computed,\n });\n }\n\n init() {\n const disposers = [\n this.optimisticActions.init(),\n this.bulkAssignAsyncState.init(),\n ];\n\n return () => {\n disposers.forEach((disposer) => disposer());\n };\n }\n\n async showPopover() {\n if (this.isShown) {\n return;\n }\n\n this.isShown = true;\n this._reportPopoverShowChangedBi(true);\n const { selectedTagIds, indeterminateTagIds } = this._initSelectionState();\n this.initialSelectedIds = selectedTagIds;\n this.assignedTagIds = selectedTagIds;\n this.initialIndeterminateTagIds = indeterminateTagIds;\n this.indeterminateTagIds = indeterminateTagIds;\n }\n\n closePopover() {\n this._reportPopoverShowChangedBi(false);\n this._reportSearchEventsBi('blur');\n this.isShown = false;\n this.assignedTagIds = [];\n this.initialSelectedIds = [];\n this.initialIndeterminateTagIds = [];\n this.indeterminateTagIds = [];\n }\n\n async createAndAssignTag(name: string) {\n this._reportSearchEventsBi('add');\n const tagName = name.slice(0, TAG_MAX_LENGTH);\n const id = uuid();\n this.assignTagOptimistic(tagName, id);\n this.tagsManagementState.createTag({\n name,\n id,\n filteredListSize: 0,\n origin,\n isFromSearch: true,\n tagsBIReporter: this.tagsBIReporter,\n onSuccess: (newTag) => this.assignTag({ tag: newTag }),\n optimisticActionParams: {\n successToast: {\n biName: 'cairo-save-new-tag-success',\n message: this.container.translate(\n 'cairo.tags.popover.tagCreated.toast.success',\n ),\n },\n errorToast: (error) => {\n const resolvedError =\n this.container.errorHandler.getResolvedError?.(error);\n return {\n biName: 'cairo-save-new-tag-error',\n message:\n resolvedError?.message ??\n this.container.translate(\n 'cairo.tags.collectionPage.toast.create.error',\n ),\n action: resolvedError?.action,\n };\n },\n },\n });\n }\n\n async applyChanges() {\n const { searchValue, newAssignedTagIds, newUnassignedTagIds } = this;\n const params = {\n searchValue,\n newAssignedTagIds,\n newUnassignedTagIds,\n };\n if (this.shouldlUseBulkSync) {\n this.bulkAssignSyncState.applyChanges(params);\n } else {\n await this.bulkAssignAsyncState.applyChanges(params);\n }\n\n this.closePopover();\n }\n\n handleManageTagsCtaClick() {\n this.closePopover();\n this.tagsModalState.openManageTagsModal({\n origin,\n tagSubOrigin: 'bulkAssignPopover',\n });\n }\n\n handleItemSelect(itemId: string) {\n const currentTag = this.tagsManagementState.items.find(\n (tag) => tag.id === itemId,\n );\n if (!currentTag) {\n return;\n }\n\n this._reportSearchEventsBi('select');\n\n if (\n this.initialIndeterminateTagIds.includes(itemId) &&\n this.indeterminateTagIds.includes(itemId)\n ) {\n this.indeterminateTagIds = this.indeterminateTagIds.filter(\n (indeterminateTagId) => indeterminateTagId !== itemId,\n );\n }\n\n if (this.assignedWithOptimisticTagIds.includes(itemId)) {\n this.unassignTag({ tag: currentTag });\n } else {\n this.assignTag({ tag: currentTag });\n }\n }\n\n handleSearchChange(searchValue: string) {\n this._reportSearchChangedBi(searchValue);\n this.searchValue = searchValue;\n }\n\n retry() {\n this.tagsManagementState.retry();\n }\n\n get isInEmptyState() {\n return (\n this.tagsManagementState.isSuccessful &&\n this.tagsManagementState.items.length === 0\n );\n }\n\n get tagOptions() {\n return this.tagsManagementState.items.sort((tag1, tag2) => {\n const isTag1InitialUnassigned = this._isInitialUnassignedTag(tag1);\n const isTag2InitialUnassigned = this._isInitialUnassignedTag(tag2);\n\n // Showing first assigned/indeterminate tags, and unassigned tags below it\n if (!isTag1InitialUnassigned && isTag2InitialUnassigned) {\n return -1;\n }\n\n if (isTag1InitialUnassigned && !isTag2InitialUnassigned) {\n return 1;\n }\n\n // Sub order by showing first newer tags\n return (\n new Date(tag2.createdDate!).valueOf() -\n new Date(tag1.createdDate!).valueOf()\n );\n });\n }\n\n get assignedTags() {\n const savedAssignedTags = this.assignedTagIds\n .map((tagId) => {\n return this.tagsManagementState.items.find((tag) => tag.id === tagId);\n })\n .filter((element) => Boolean(element)) as Tag[];\n return this.optimisticNewTag\n ? [...savedAssignedTags, this.optimisticNewTag]\n : savedAssignedTags;\n }\n\n get assignedWithOptimisticTagIds() {\n return this.assignedTags.map((tag) => tag.id!);\n }\n\n get newAssignedTagIds() {\n return this.assignedTagIds.filter(\n (tagId) => !this.initialSelectedIds.includes(tagId),\n );\n }\n\n get newUnassignedTagIds() {\n return [\n ...this.initialSelectedIds.filter(\n (tagId) => !this.assignedTagIds.includes(tagId),\n ),\n ...this.initialIndeterminateTagIds.filter(\n (tagId) =>\n ![...this.assignedTagIds, ...this.indeterminateTagIds].includes(\n tagId,\n ),\n ),\n ];\n }\n\n get shouldlUseBulkSync() {\n const { allSelectedItemsFetched, selectedCountOrTotal } =\n this.collectionState.bulkSelect;\n\n return (\n allSelectedItemsFetched &&\n selectedCountOrTotal < MAX_SELECTED_ENTITIES_FOR_BULK_ASSIGN_SYNC\n );\n }\n\n get canUseBulkUpdate() {\n // Cannot invoke bulk assign while applying async changes\n if (this.bulkAssignAsyncState.isDuringApplyChanges) {\n return false;\n }\n\n // can use sync\n if (this.shouldlUseBulkSync) {\n return true;\n }\n\n // can use async\n return this.bulkAssignAsyncState.canBulkAssignAsync;\n }\n\n get isError() {\n return this.tagsManagementState.isError;\n }\n\n get isLoading() {\n return this.tagsManagementState.isLoading;\n }\n\n get isDirty() {\n return (\n this.newAssignedTagIds.length > 0 || this.newUnassignedTagIds.length > 0\n );\n }\n\n assignTag = async ({ tag }: { tag: Tag }) => {\n this.optimisticNewTag = null;\n if (this.assignedTagIds.includes(tag.id!)) {\n return;\n }\n\n this.assignedTagIds.push(tag.id!);\n };\n\n assignTagOptimistic = (tagName: string, tagId: string = 'fake tag id') => {\n this.optimisticNewTag = {\n id: tagId,\n name: tagName,\n createdDate: new Date(),\n };\n };\n\n unassignTag = async ({ tag }: { tag: Tag }) => {\n const updatedAssignedTagIds = this.assignedTagIds.filter(\n (assignedTagId) => assignedTagId !== tag.id,\n );\n\n this.assignedTagIds = updatedAssignedTagIds;\n };\n\n private _calcTagsCount = (selectedKeyedItems: KeyedItem<T>[]) => {\n const tagsCount = this.tagsManagementState.items.reduce(\n (result: Record<string, number>, tag) => {\n result[tag.id!] = 0;\n return result;\n },\n {},\n );\n\n selectedKeyedItems.forEach((selectedKeyedItem) => {\n const tags: Tags =\n (selectedKeyedItem.item as any).tags ??\n this.getTags?.(selectedKeyedItem.item);\n\n const entityTagIds = (tags?.privateTags?.tagIds as string[]) || [];\n\n [...new Set(entityTagIds)].forEach((entityTagId) => {\n if (entityTagId in tagsCount) {\n tagsCount[entityTagId]++;\n }\n });\n });\n return tagsCount;\n };\n\n private _getSelectedTagsIdsStatus = (\n tagsCount: Record<string, number>,\n selectedKeyedItems: KeyedItem<T>[],\n ) => {\n const selectedTagIds: string[] = [];\n const indeterminateTagIds: string[] = [];\n for (const [tagId, tagCount] of Object.entries(tagsCount)) {\n if (tagCount === selectedKeyedItems.length) {\n selectedTagIds.push(tagId);\n } else if (tagCount > 0) {\n indeterminateTagIds.push(tagId);\n }\n }\n return { selectedTagIds, indeterminateTagIds };\n };\n\n private _initSelectionState() {\n const { selectedKeyedItems } = this.collectionState.bulkSelect;\n const tagsCount = this._calcTagsCount(selectedKeyedItems);\n return this._getSelectedTagsIdsStatus(tagsCount, selectedKeyedItems);\n }\n\n private _isInitialUnassignedTag = (tag: Tag) =>\n !this.initialIndeterminateTagIds.includes(tag.id!) &&\n !this.initialSelectedIds.includes(tag.id!);\n\n private _reportPopoverShowChangedBi(isOpened: boolean) {\n this.tagsBIReporter.reportBi(\n cairoFiltersPanelUsed({\n isOpened,\n feature: 'Tags',\n origin: 'Assign Tags',\n }),\n );\n }\n\n private _reportSearchChangedBi(searchValue: string) {\n if (searchValue !== '') {\n this.tagsBIReporter.onSearch(searchValue);\n } else {\n this.tagsBIReporter._clearAllEvents();\n }\n }\n\n private _reportSearchEventsBi(event: 'add' | 'select' | 'blur') {\n return this.tagsBIReporter.events.emit(event);\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_mobx","require","_bexCore","_bi","_uuid","_TagsBulkAssignButtonState","_TagsBulkAssignAsyncState","_TagsBulkAssignSyncState","origin","TagsBulkAssignPopoverState","constructor","tagsManagementState","collectionState","tagsModalState","bulkUpdateTags","asyncBulkUpdateTags","getTags","_defineProperty2","default","tag","optimisticNewTag","assignedTagIds","includes","id","push","tagName","tagId","name","createdDate","Date","updatedAssignedTagIds","filter","assignedTagId","selectedKeyedItems","tagsCount","items","reduce","result","forEach","selectedKeyedItem","_this$getTags","_tags$privateTags","tags","item","call","entityTagIds","privateTags","tagIds","Set","entityTagId","selectedTagIds","indeterminateTagIds","tagCount","Object","entries","length","initialIndeterminateTagIds","initialSelectedIds","optimisticActions","_optimisticActions","CollectionOptimisticActions","container","collection","tagsBIReporter","TagsBIReporter","reportBi","createBILogger","componentType","fqdn","location","bulkAssignSyncState","TagsBulkAssignSyncState","bulkAssignAsyncState","TagsBulkAssignAsyncState","tagsBulkAssignButtonState","TagsBulkAssignButtonState","makeObservable","init","action","isShown","observable","searchValue","showPopover","closePopover","applyChanges","handleManageTagsCtaClick","handleItemSelect","handleSearchChange","createAndAssignTag","retry","ref","assignedTags","computed","disposers","disposer","_reportPopoverShowChangedBi","_initSelectionState","_reportSearchEventsBi","slice","TAG_MAX_LENGTH","uuid","assignTagOptimistic","createTag","filteredListSize","isFromSearch","onSuccess","newTag","assignTag","optimisticActionParams","successToast","biName","message","translate","errorToast","error","_this$container$error","_this$container$error2","resolvedError","errorHandler","getResolvedError","newAssignedTagIds","newUnassignedTagIds","params","canUseBulkSync","openManageTagsModal","tagSubOrigin","itemId","currentTag","find","indeterminateTagId","assignedWithOptimisticTagIds","unassignTag","_reportSearchChangedBi","isInEmptyState","isSuccessful","tagOptions","sort","tag1","tag2","isTag1InitialUnassigned","_isInitialUnassignedTag","isTag2InitialUnassigned","valueOf","savedAssignedTags","map","element","Boolean","canUseBulkUpdate","isDuringApplyChanges","canBulkAssignAsync","isError","isLoading","isDirty","bulkSelect","_calcTagsCount","_getSelectedTagsIdsStatus","isOpened","cairoFiltersPanelUsed","feature","onSearch","_clearAllEvents","event","events","emit","exports"],"sources":["../../../src/state/TagsBulkAssignPopoverState.ts"],"sourcesContent":["import { action, makeObservable, computed, observable } from 'mobx';\nimport { TagsModalState } from './TagsModalState';\nimport { Tag } from '@wix/bex-utils/@wix/ambassador-os-tags-v1-tag/types';\nimport {\n CollectionOptimisticActions,\n CollectionState,\n FiltersMap,\n KeyedItem,\n TAG_MAX_LENGTH,\n Tags,\n TagsBIReporter,\n TagsManagementState,\n} from '@wix/bex-core';\nimport { cairoFiltersPanelUsed } from '@wix/bex-core/bi';\nimport { v4 as uuid } from 'uuid';\nimport { TagsProps } from '../components/Tags';\nimport { TagsBulkAssignButtonState } from './TagsBulkAssignButtonState';\nimport { TagsBulkAssignAsyncState } from './TagsBulkAssignAsyncState';\nimport { TagsBulkAssignSyncState } from './TagsBulkAssignSyncState';\n\nconst origin = 'bulk_assign_popover';\n\nexport interface BulkUpdateTagsParams {\n entityIds: string[];\n assignTags: Tags;\n unassignTags: Tags;\n}\n\nexport interface TagsBulkAssignPopoverStateParams<T, F extends FiltersMap>\n extends Pick<\n TagsProps<T, F>,\n 'bulkUpdateTags' | 'asyncBulkUpdateTags' | 'getTags'\n > {\n readonly tagsManagementState: TagsManagementState;\n readonly tagsModalState: TagsModalState;\n readonly collectionState: CollectionState<T, F>;\n}\n\nexport class TagsBulkAssignPopoverState<T, F extends FiltersMap> {\n readonly tagsManagementState: TagsManagementState;\n readonly collectionState;\n readonly optimisticActions: CollectionOptimisticActions<T, F>;\n readonly tagsModalState;\n readonly tagsBulkAssignButtonState: TagsBulkAssignButtonState;\n\n readonly bulkAssignSyncState: TagsBulkAssignSyncState<T, F>;\n readonly bulkAssignAsyncState: TagsBulkAssignAsyncState<T, F>;\n readonly container;\n readonly tagsBIReporter: TagsBIReporter;\n readonly getTags?: (item: T) => Tags;\n initialSelectedIds: string[] = [];\n initialIndeterminateTagIds: string[] = [];\n indeterminateTagIds: string[] = [];\n assignedTagIds: string[] = [];\n optimisticNewTag: Tag | null = null;\n isShown = false;\n searchValue: string = '';\n\n constructor({\n tagsManagementState,\n collectionState,\n tagsModalState,\n bulkUpdateTags,\n asyncBulkUpdateTags,\n getTags,\n }: TagsBulkAssignPopoverStateParams<T, F>) {\n this.tagsManagementState = tagsManagementState;\n this.collectionState = collectionState;\n this.optimisticActions =\n collectionState._optimisticActions ??\n new CollectionOptimisticActions<T, F>({\n container: this.tagsManagementState.container,\n collection: this.collectionState,\n });\n this.tagsBIReporter = new TagsBIReporter({\n collection: this.tagsManagementState.collection,\n reportBi: this.tagsManagementState.container.createBILogger({\n componentType: 'TagsBulkAssignPopover',\n ...tagsManagementState.fqdn,\n }),\n location: 'Bulk assign tags popover',\n });\n this.tagsModalState = tagsModalState;\n this.container = tagsManagementState.container;\n this.getTags = getTags;\n this.bulkAssignSyncState = new TagsBulkAssignSyncState({\n collectionState,\n optimisticActions: this.optimisticActions,\n container: this.container,\n tagsBIReporter: this.tagsBIReporter,\n getTags,\n bulkUpdateTags,\n });\n this.bulkAssignAsyncState = new TagsBulkAssignAsyncState({\n collectionState,\n optimisticActions: this.optimisticActions,\n container: this.container,\n tagsBIReporter: this.tagsBIReporter,\n asyncBulkUpdateTags,\n });\n\n this.tagsBulkAssignButtonState = new TagsBulkAssignButtonState();\n\n makeObservable(this, {\n init: action,\n isShown: observable,\n initialSelectedIds: observable,\n initialIndeterminateTagIds: observable,\n indeterminateTagIds: observable,\n searchValue: observable,\n showPopover: action,\n closePopover: action,\n applyChanges: action,\n handleManageTagsCtaClick: action,\n handleItemSelect: action,\n handleSearchChange: action,\n createAndAssignTag: action,\n retry: action,\n assignedTagIds: observable,\n optimisticNewTag: observable.ref,\n assignedTags: computed,\n });\n }\n\n init() {\n const disposers = [\n this.optimisticActions.init(),\n this.bulkAssignAsyncState.init(),\n ];\n\n return () => {\n disposers.forEach((disposer) => disposer());\n };\n }\n\n async showPopover() {\n if (this.isShown) {\n return;\n }\n\n this.isShown = true;\n this._reportPopoverShowChangedBi(true);\n const { selectedTagIds, indeterminateTagIds } = this._initSelectionState();\n this.initialSelectedIds = selectedTagIds;\n this.assignedTagIds = selectedTagIds;\n this.initialIndeterminateTagIds = indeterminateTagIds;\n this.indeterminateTagIds = indeterminateTagIds;\n }\n\n closePopover() {\n this._reportPopoverShowChangedBi(false);\n this._reportSearchEventsBi('blur');\n this.isShown = false;\n this.assignedTagIds = [];\n this.initialSelectedIds = [];\n this.initialIndeterminateTagIds = [];\n this.indeterminateTagIds = [];\n }\n\n async createAndAssignTag(name: string) {\n this._reportSearchEventsBi('add');\n const tagName = name.slice(0, TAG_MAX_LENGTH);\n const id = uuid();\n this.assignTagOptimistic(tagName, id);\n this.tagsManagementState.createTag({\n name,\n id,\n filteredListSize: 0,\n origin,\n isFromSearch: true,\n tagsBIReporter: this.tagsBIReporter,\n onSuccess: (newTag) => this.assignTag({ tag: newTag }),\n optimisticActionParams: {\n successToast: {\n biName: 'cairo-save-new-tag-success',\n message: this.container.translate(\n 'cairo.tags.popover.tagCreated.toast.success',\n ),\n },\n errorToast: (error) => {\n const resolvedError =\n this.container.errorHandler.getResolvedError?.(error);\n return {\n biName: 'cairo-save-new-tag-error',\n message:\n resolvedError?.message ??\n this.container.translate(\n 'cairo.tags.collectionPage.toast.create.error',\n ),\n action: resolvedError?.action,\n };\n },\n },\n });\n }\n\n async applyChanges() {\n const { searchValue, newAssignedTagIds, newUnassignedTagIds } = this;\n const params = {\n searchValue,\n newAssignedTagIds,\n newUnassignedTagIds,\n };\n if (this.bulkAssignSyncState.canUseBulkSync) {\n this.bulkAssignSyncState.applyChanges(params);\n } else {\n await this.bulkAssignAsyncState.applyChanges(params);\n }\n\n this.closePopover();\n }\n\n handleManageTagsCtaClick() {\n this.closePopover();\n this.tagsModalState.openManageTagsModal({\n origin,\n tagSubOrigin: 'bulkAssignPopover',\n });\n }\n\n handleItemSelect(itemId: string) {\n const currentTag = this.tagsManagementState.items.find(\n (tag) => tag.id === itemId,\n );\n if (!currentTag) {\n return;\n }\n\n this._reportSearchEventsBi('select');\n\n if (\n this.initialIndeterminateTagIds.includes(itemId) &&\n this.indeterminateTagIds.includes(itemId)\n ) {\n this.indeterminateTagIds = this.indeterminateTagIds.filter(\n (indeterminateTagId) => indeterminateTagId !== itemId,\n );\n }\n\n if (this.assignedWithOptimisticTagIds.includes(itemId)) {\n this.unassignTag({ tag: currentTag });\n } else {\n this.assignTag({ tag: currentTag });\n }\n }\n\n handleSearchChange(searchValue: string) {\n this._reportSearchChangedBi(searchValue);\n this.searchValue = searchValue;\n }\n\n retry() {\n this.tagsManagementState.retry();\n }\n\n get isInEmptyState() {\n return (\n this.tagsManagementState.isSuccessful &&\n this.tagsManagementState.items.length === 0\n );\n }\n\n get tagOptions() {\n return this.tagsManagementState.items.sort((tag1, tag2) => {\n const isTag1InitialUnassigned = this._isInitialUnassignedTag(tag1);\n const isTag2InitialUnassigned = this._isInitialUnassignedTag(tag2);\n\n // Showing first assigned/indeterminate tags, and unassigned tags below it\n if (!isTag1InitialUnassigned && isTag2InitialUnassigned) {\n return -1;\n }\n\n if (isTag1InitialUnassigned && !isTag2InitialUnassigned) {\n return 1;\n }\n\n // Sub order by showing first newer tags\n return (\n new Date(tag2.createdDate!).valueOf() -\n new Date(tag1.createdDate!).valueOf()\n );\n });\n }\n\n get assignedTags() {\n const savedAssignedTags = this.assignedTagIds\n .map((tagId) => {\n return this.tagsManagementState.items.find((tag) => tag.id === tagId);\n })\n .filter((element) => Boolean(element)) as Tag[];\n return this.optimisticNewTag\n ? [...savedAssignedTags, this.optimisticNewTag]\n : savedAssignedTags;\n }\n\n get assignedWithOptimisticTagIds() {\n return this.assignedTags.map((tag) => tag.id!);\n }\n\n get newAssignedTagIds() {\n return this.assignedTagIds.filter(\n (tagId) => !this.initialSelectedIds.includes(tagId),\n );\n }\n\n get newUnassignedTagIds() {\n return [\n ...this.initialSelectedIds.filter(\n (tagId) => !this.assignedTagIds.includes(tagId),\n ),\n ...this.initialIndeterminateTagIds.filter(\n (tagId) =>\n ![...this.assignedTagIds, ...this.indeterminateTagIds].includes(\n tagId,\n ),\n ),\n ];\n }\n\n get canUseBulkUpdate() {\n // Cannot invoke bulk assign while applying async changes\n if (this.bulkAssignAsyncState.isDuringApplyChanges) {\n return false;\n }\n\n // can use sync\n if (this.bulkAssignSyncState.canUseBulkSync) {\n return true;\n }\n\n // can use async\n return this.bulkAssignAsyncState.canBulkAssignAsync;\n }\n\n get isError() {\n return this.tagsManagementState.isError;\n }\n\n get isLoading() {\n return this.tagsManagementState.isLoading;\n }\n\n get isDirty() {\n return (\n this.newAssignedTagIds.length > 0 || this.newUnassignedTagIds.length > 0\n );\n }\n\n assignTag = async ({ tag }: { tag: Tag }) => {\n this.optimisticNewTag = null;\n if (this.assignedTagIds.includes(tag.id!)) {\n return;\n }\n\n this.assignedTagIds.push(tag.id!);\n };\n\n assignTagOptimistic = (tagName: string, tagId: string = 'fake tag id') => {\n this.optimisticNewTag = {\n id: tagId,\n name: tagName,\n createdDate: new Date(),\n };\n };\n\n unassignTag = async ({ tag }: { tag: Tag }) => {\n const updatedAssignedTagIds = this.assignedTagIds.filter(\n (assignedTagId) => assignedTagId !== tag.id,\n );\n\n this.assignedTagIds = updatedAssignedTagIds;\n };\n\n private _calcTagsCount = (selectedKeyedItems: KeyedItem<T>[]) => {\n const tagsCount = this.tagsManagementState.items.reduce(\n (result: Record<string, number>, tag) => {\n result[tag.id!] = 0;\n return result;\n },\n {},\n );\n\n selectedKeyedItems.forEach((selectedKeyedItem) => {\n const tags: Tags =\n (selectedKeyedItem.item as any).tags ??\n this.getTags?.(selectedKeyedItem.item);\n\n const entityTagIds = (tags?.privateTags?.tagIds as string[]) || [];\n\n [...new Set(entityTagIds)].forEach((entityTagId) => {\n if (entityTagId in tagsCount) {\n tagsCount[entityTagId]++;\n }\n });\n });\n return tagsCount;\n };\n\n private _getSelectedTagsIdsStatus = (\n tagsCount: Record<string, number>,\n selectedKeyedItems: KeyedItem<T>[],\n ) => {\n const selectedTagIds: string[] = [];\n const indeterminateTagIds: string[] = [];\n for (const [tagId, tagCount] of Object.entries(tagsCount)) {\n if (tagCount === selectedKeyedItems.length) {\n selectedTagIds.push(tagId);\n } else if (tagCount > 0) {\n indeterminateTagIds.push(tagId);\n }\n }\n return { selectedTagIds, indeterminateTagIds };\n };\n\n private _initSelectionState() {\n const { selectedKeyedItems } = this.collectionState.bulkSelect;\n const tagsCount = this._calcTagsCount(selectedKeyedItems);\n return this._getSelectedTagsIdsStatus(tagsCount, selectedKeyedItems);\n }\n\n private _isInitialUnassignedTag = (tag: Tag) =>\n !this.initialIndeterminateTagIds.includes(tag.id!) &&\n !this.initialSelectedIds.includes(tag.id!);\n\n private _reportPopoverShowChangedBi(isOpened: boolean) {\n this.tagsBIReporter.reportBi(\n cairoFiltersPanelUsed({\n isOpened,\n feature: 'Tags',\n origin: 'Assign Tags',\n }),\n );\n }\n\n private _reportSearchChangedBi(searchValue: string) {\n if (searchValue !== '') {\n this.tagsBIReporter.onSearch(searchValue);\n } else {\n this.tagsBIReporter._clearAllEvents();\n }\n }\n\n private _reportSearchEventsBi(event: 'add' | 'select' | 'blur') {\n return this.tagsBIReporter.events.emit(event);\n }\n}\n"],"mappings":";;;;;;AAAA,IAAAA,KAAA,GAAAC,OAAA;AAGA,IAAAC,QAAA,GAAAD,OAAA;AAUA,IAAAE,GAAA,GAAAF,OAAA;AACA,IAAAG,KAAA,GAAAH,OAAA;AAEA,IAAAI,0BAAA,GAAAJ,OAAA;AACA,IAAAK,yBAAA,GAAAL,OAAA;AACA,IAAAM,wBAAA,GAAAN,OAAA;AAEA,MAAMO,MAAM,GAAG,qBAAqB;AAkB7B,MAAMC,0BAA0B,CAA0B;EAoB/DC,WAAWA,CAAC;IACVC,mBAAmB;IACnBC,eAAe;IACfC,cAAc;IACdC,cAAc;IACdC,mBAAmB;IACnBC;EACsC,CAAC,EAAE;IAAA,IAAAC,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA,8BAfZ,EAAE;IAAA,IAAAD,gBAAA,CAAAC,OAAA,sCACM,EAAE;IAAA,IAAAD,gBAAA,CAAAC,OAAA,+BACT,EAAE;IAAA,IAAAD,gBAAA,CAAAC,OAAA,0BACP,EAAE;IAAA,IAAAD,gBAAA,CAAAC,OAAA,4BACE,IAAI;IAAA,IAAAD,gBAAA,CAAAC,OAAA,mBACzB,KAAK;IAAA,IAAAD,gBAAA,CAAAC,OAAA,uBACO,EAAE;IAAA,IAAAD,gBAAA,CAAAC,OAAA,qBAoSZ,OAAO;MAAEC;IAAkB,CAAC,KAAK;MAC3C,IAAI,CAACC,gBAAgB,GAAG,IAAI;MAC5B,IAAI,IAAI,CAACC,cAAc,CAACC,QAAQ,CAACH,GAAG,CAACI,EAAG,CAAC,EAAE;QACzC;MACF;MAEA,IAAI,CAACF,cAAc,CAACG,IAAI,CAACL,GAAG,CAACI,EAAG,CAAC;IACnC,CAAC;IAAA,IAAAN,gBAAA,CAAAC,OAAA,+BAEqB,CAACO,OAAe,EAAEC,KAAa,GAAG,aAAa,KAAK;MACxE,IAAI,CAACN,gBAAgB,GAAG;QACtBG,EAAE,EAAEG,KAAK;QACTC,IAAI,EAAEF,OAAO;QACbG,WAAW,EAAE,IAAIC,IAAI,CAAC;MACxB,CAAC;IACH,CAAC;IAAA,IAAAZ,gBAAA,CAAAC,OAAA,uBAEa,OAAO;MAAEC;IAAkB,CAAC,KAAK;MAC7C,MAAMW,qBAAqB,GAAG,IAAI,CAACT,cAAc,CAACU,MAAM,CACrDC,aAAa,IAAKA,aAAa,KAAKb,GAAG,CAACI,EAC3C,CAAC;MAED,IAAI,CAACF,cAAc,GAAGS,qBAAqB;IAC7C,CAAC;IAAA,IAAAb,gBAAA,CAAAC,OAAA,0BAEyBe,kBAAkC,IAAK;MAC/D,MAAMC,SAAS,GAAG,IAAI,CAACvB,mBAAmB,CAACwB,KAAK,CAACC,MAAM,CACrD,CAACC,MAA8B,EAAElB,GAAG,KAAK;QACvCkB,MAAM,CAAClB,GAAG,CAACI,EAAE,CAAE,GAAG,CAAC;QACnB,OAAOc,MAAM;MACf,CAAC,EACD,CAAC,CACH,CAAC;MAEDJ,kBAAkB,CAACK,OAAO,CAAEC,iBAAiB,IAAK;QAAA,IAAAC,aAAA,EAAAC,iBAAA;QAChD,MAAMC,IAAU,GACbH,iBAAiB,CAACI,IAAI,CAASD,IAAI,MAAAF,aAAA,GACpC,IAAI,CAACxB,OAAO,qBAAZwB,aAAA,CAAAI,IAAA,KAAI,EAAWL,iBAAiB,CAACI,IAAI,CAAC;QAExC,MAAME,YAAY,GAAG,CAACH,IAAI,aAAAD,iBAAA,GAAJC,IAAI,CAAEI,WAAW,qBAAjBL,iBAAA,CAAmBM,MAAM,KAAiB,EAAE;QAElE,CAAC,GAAG,IAAIC,GAAG,CAACH,YAAY,CAAC,CAAC,CAACP,OAAO,CAAEW,WAAW,IAAK;UAClD,IAAIA,WAAW,IAAIf,SAAS,EAAE;YAC5BA,SAAS,CAACe,WAAW,CAAC,EAAE;UAC1B;QACF,CAAC,CAAC;MACJ,CAAC,CAAC;MACF,OAAOf,SAAS;IAClB,CAAC;IAAA,IAAAjB,gBAAA,CAAAC,OAAA,qCAEmC,CAClCgB,SAAiC,EACjCD,kBAAkC,KAC/B;MACH,MAAMiB,cAAwB,GAAG,EAAE;MACnC,MAAMC,mBAA6B,GAAG,EAAE;MACxC,KAAK,MAAM,CAACzB,KAAK,EAAE0B,QAAQ,CAAC,IAAIC,MAAM,CAACC,OAAO,CAACpB,SAAS,CAAC,EAAE;QACzD,IAAIkB,QAAQ,KAAKnB,kBAAkB,CAACsB,MAAM,EAAE;UAC1CL,cAAc,CAAC1B,IAAI,CAACE,KAAK,CAAC;QAC5B,CAAC,MAAM,IAAI0B,QAAQ,GAAG,CAAC,EAAE;UACvBD,mBAAmB,CAAC3B,IAAI,CAACE,KAAK,CAAC;QACjC;MACF;MACA,OAAO;QAAEwB,cAAc;QAAEC;MAAoB,CAAC;IAChD,CAAC;IAAA,IAAAlC,gBAAA,CAAAC,OAAA,mCAQkCC,GAAQ,IACzC,CAAC,IAAI,CAACqC,0BAA0B,CAAClC,QAAQ,CAACH,GAAG,CAACI,EAAG,CAAC,IAClD,CAAC,IAAI,CAACkC,kBAAkB,CAACnC,QAAQ,CAACH,GAAG,CAACI,EAAG,CAAC;IApW1C,IAAI,CAACZ,mBAAmB,GAAGA,mBAAmB;IAC9C,IAAI,CAACC,eAAe,GAAGA,eAAe;IACtC,IAAI,CAAC8C,iBAAiB,GACpB9C,eAAe,CAAC+C,kBAAkB,IAClC,IAAIC,oCAA2B,CAAO;MACpCC,SAAS,EAAE,IAAI,CAAClD,mBAAmB,CAACkD,SAAS;MAC7CC,UAAU,EAAE,IAAI,CAAClD;IACnB,CAAC,CAAC;IACJ,IAAI,CAACmD,cAAc,GAAG,IAAIC,uBAAc,CAAC;MACvCF,UAAU,EAAE,IAAI,CAACnD,mBAAmB,CAACmD,UAAU;MAC/CG,QAAQ,EAAE,IAAI,CAACtD,mBAAmB,CAACkD,SAAS,CAACK,cAAc,CAAC;QAC1DC,aAAa,EAAE,uBAAuB;QACtC,GAAGxD,mBAAmB,CAACyD;MACzB,CAAC,CAAC;MACFC,QAAQ,EAAE;IACZ,CAAC,CAAC;IACF,IAAI,CAACxD,cAAc,GAAGA,cAAc;IACpC,IAAI,CAACgD,SAAS,GAAGlD,mBAAmB,CAACkD,SAAS;IAC9C,IAAI,CAAC7C,OAAO,GAAGA,OAAO;IACtB,IAAI,CAACsD,mBAAmB,GAAG,IAAIC,gDAAuB,CAAC;MACrD3D,eAAe;MACf8C,iBAAiB,EAAE,IAAI,CAACA,iBAAiB;MACzCG,SAAS,EAAE,IAAI,CAACA,SAAS;MACzBE,cAAc,EAAE,IAAI,CAACA,cAAc;MACnC/C,OAAO;MACPF;IACF,CAAC,CAAC;IACF,IAAI,CAAC0D,oBAAoB,GAAG,IAAIC,kDAAwB,CAAC;MACvD7D,eAAe;MACf8C,iBAAiB,EAAE,IAAI,CAACA,iBAAiB;MACzCG,SAAS,EAAE,IAAI,CAACA,SAAS;MACzBE,cAAc,EAAE,IAAI,CAACA,cAAc;MACnChD;IACF,CAAC,CAAC;IAEF,IAAI,CAAC2D,yBAAyB,GAAG,IAAIC,oDAAyB,CAAC,CAAC;IAEhE,IAAAC,oBAAc,EAAC,IAAI,EAAE;MACnBC,IAAI,EAAEC,YAAM;MACZC,OAAO,EAAEC,gBAAU;MACnBvB,kBAAkB,EAAEuB,gBAAU;MAC9BxB,0BAA0B,EAAEwB,gBAAU;MACtC7B,mBAAmB,EAAE6B,gBAAU;MAC/BC,WAAW,EAAED,gBAAU;MACvBE,WAAW,EAAEJ,YAAM;MACnBK,YAAY,EAAEL,YAAM;MACpBM,YAAY,EAAEN,YAAM;MACpBO,wBAAwB,EAAEP,YAAM;MAChCQ,gBAAgB,EAAER,YAAM;MACxBS,kBAAkB,EAAET,YAAM;MAC1BU,kBAAkB,EAAEV,YAAM;MAC1BW,KAAK,EAAEX,YAAM;MACbzD,cAAc,EAAE2D,gBAAU;MAC1B5D,gBAAgB,EAAE4D,gBAAU,CAACU,GAAG;MAChCC,YAAY,EAAEC;IAChB,CAAC,CAAC;EACJ;EAEAf,IAAIA,CAAA,EAAG;IACL,MAAMgB,SAAS,GAAG,CAChB,IAAI,CAACnC,iBAAiB,CAACmB,IAAI,CAAC,CAAC,EAC7B,IAAI,CAACL,oBAAoB,CAACK,IAAI,CAAC,CAAC,CACjC;IAED,OAAO,MAAM;MACXgB,SAAS,CAACvD,OAAO,CAAEwD,QAAQ,IAAKA,QAAQ,CAAC,CAAC,CAAC;IAC7C,CAAC;EACH;EAEA,MAAMZ,WAAWA,CAAA,EAAG;IAClB,IAAI,IAAI,CAACH,OAAO,EAAE;MAChB;IACF;IAEA,IAAI,CAACA,OAAO,GAAG,IAAI;IACnB,IAAI,CAACgB,2BAA2B,CAAC,IAAI,CAAC;IACtC,MAAM;MAAE7C,cAAc;MAAEC;IAAoB,CAAC,GAAG,IAAI,CAAC6C,mBAAmB,CAAC,CAAC;IAC1E,IAAI,CAACvC,kBAAkB,GAAGP,cAAc;IACxC,IAAI,CAAC7B,cAAc,GAAG6B,cAAc;IACpC,IAAI,CAACM,0BAA0B,GAAGL,mBAAmB;IACrD,IAAI,CAACA,mBAAmB,GAAGA,mBAAmB;EAChD;EAEAgC,YAAYA,CAAA,EAAG;IACb,IAAI,CAACY,2BAA2B,CAAC,KAAK,CAAC;IACvC,IAAI,CAACE,qBAAqB,CAAC,MAAM,CAAC;IAClC,IAAI,CAAClB,OAAO,GAAG,KAAK;IACpB,IAAI,CAAC1D,cAAc,GAAG,EAAE;IACxB,IAAI,CAACoC,kBAAkB,GAAG,EAAE;IAC5B,IAAI,CAACD,0BAA0B,GAAG,EAAE;IACpC,IAAI,CAACL,mBAAmB,GAAG,EAAE;EAC/B;EAEA,MAAMqC,kBAAkBA,CAAC7D,IAAY,EAAE;IACrC,IAAI,CAACsE,qBAAqB,CAAC,KAAK,CAAC;IACjC,MAAMxE,OAAO,GAAGE,IAAI,CAACuE,KAAK,CAAC,CAAC,EAAEC,uBAAc,CAAC;IAC7C,MAAM5E,EAAE,GAAG,IAAA6E,QAAI,EAAC,CAAC;IACjB,IAAI,CAACC,mBAAmB,CAAC5E,OAAO,EAAEF,EAAE,CAAC;IACrC,IAAI,CAACZ,mBAAmB,CAAC2F,SAAS,CAAC;MACjC3E,IAAI;MACJJ,EAAE;MACFgF,gBAAgB,EAAE,CAAC;MACnB/F,MAAM;MACNgG,YAAY,EAAE,IAAI;MAClBzC,cAAc,EAAE,IAAI,CAACA,cAAc;MACnC0C,SAAS,EAAGC,MAAM,IAAK,IAAI,CAACC,SAAS,CAAC;QAAExF,GAAG,EAAEuF;MAAO,CAAC,CAAC;MACtDE,sBAAsB,EAAE;QACtBC,YAAY,EAAE;UACZC,MAAM,EAAE,4BAA4B;UACpCC,OAAO,EAAE,IAAI,CAAClD,SAAS,CAACmD,SAAS,CAC/B,6CACF;QACF,CAAC;QACDC,UAAU,EAAGC,KAAK,IAAK;UAAA,IAAAC,qBAAA,EAAAC,sBAAA;UACrB,MAAMC,aAAa,IAAAF,qBAAA,GACjB,CAAAC,sBAAA,OAAI,CAACvD,SAAS,CAACyD,YAAY,EAACC,gBAAgB,qBAA5CJ,qBAAA,CAAAvE,IAAA,CAAAwE,sBAAA,EAA+CF,KAAK,CAAC;UACvD,OAAO;YACLJ,MAAM,EAAE,0BAA0B;YAClCC,OAAO,EACL,CAAAM,aAAa,oBAAbA,aAAa,CAAEN,OAAO,KACtB,IAAI,CAAClD,SAAS,CAACmD,SAAS,CACtB,8CACF,CAAC;YACHlC,MAAM,EAAEuC,aAAa,oBAAbA,aAAa,CAAEvC;UACzB,CAAC;QACH;MACF;IACF,CAAC,CAAC;EACJ;EAEA,MAAMM,YAAYA,CAAA,EAAG;IACnB,MAAM;MAAEH,WAAW;MAAEuC,iBAAiB;MAAEC;IAAoB,CAAC,GAAG,IAAI;IACpE,MAAMC,MAAM,GAAG;MACbzC,WAAW;MACXuC,iBAAiB;MACjBC;IACF,CAAC;IACD,IAAI,IAAI,CAACnD,mBAAmB,CAACqD,cAAc,EAAE;MAC3C,IAAI,CAACrD,mBAAmB,CAACc,YAAY,CAACsC,MAAM,CAAC;IAC/C,CAAC,MAAM;MACL,MAAM,IAAI,CAAClD,oBAAoB,CAACY,YAAY,CAACsC,MAAM,CAAC;IACtD;IAEA,IAAI,CAACvC,YAAY,CAAC,CAAC;EACrB;EAEAE,wBAAwBA,CAAA,EAAG;IACzB,IAAI,CAACF,YAAY,CAAC,CAAC;IACnB,IAAI,CAACtE,cAAc,CAAC+G,mBAAmB,CAAC;MACtCpH,MAAM;MACNqH,YAAY,EAAE;IAChB,CAAC,CAAC;EACJ;EAEAvC,gBAAgBA,CAACwC,MAAc,EAAE;IAC/B,MAAMC,UAAU,GAAG,IAAI,CAACpH,mBAAmB,CAACwB,KAAK,CAAC6F,IAAI,CACnD7G,GAAG,IAAKA,GAAG,CAACI,EAAE,KAAKuG,MACtB,CAAC;IACD,IAAI,CAACC,UAAU,EAAE;MACf;IACF;IAEA,IAAI,CAAC9B,qBAAqB,CAAC,QAAQ,CAAC;IAEpC,IACE,IAAI,CAACzC,0BAA0B,CAAClC,QAAQ,CAACwG,MAAM,CAAC,IAChD,IAAI,CAAC3E,mBAAmB,CAAC7B,QAAQ,CAACwG,MAAM,CAAC,EACzC;MACA,IAAI,CAAC3E,mBAAmB,GAAG,IAAI,CAACA,mBAAmB,CAACpB,MAAM,CACvDkG,kBAAkB,IAAKA,kBAAkB,KAAKH,MACjD,CAAC;IACH;IAEA,IAAI,IAAI,CAACI,4BAA4B,CAAC5G,QAAQ,CAACwG,MAAM,CAAC,EAAE;MACtD,IAAI,CAACK,WAAW,CAAC;QAAEhH,GAAG,EAAE4G;MAAW,CAAC,CAAC;IACvC,CAAC,MAAM;MACL,IAAI,CAACpB,SAAS,CAAC;QAAExF,GAAG,EAAE4G;MAAW,CAAC,CAAC;IACrC;EACF;EAEAxC,kBAAkBA,CAACN,WAAmB,EAAE;IACtC,IAAI,CAACmD,sBAAsB,CAACnD,WAAW,CAAC;IACxC,IAAI,CAACA,WAAW,GAAGA,WAAW;EAChC;EAEAQ,KAAKA,CAAA,EAAG;IACN,IAAI,CAAC9E,mBAAmB,CAAC8E,KAAK,CAAC,CAAC;EAClC;EAEA,IAAI4C,cAAcA,CAAA,EAAG;IACnB,OACE,IAAI,CAAC1H,mBAAmB,CAAC2H,YAAY,IACrC,IAAI,CAAC3H,mBAAmB,CAACwB,KAAK,CAACoB,MAAM,KAAK,CAAC;EAE/C;EAEA,IAAIgF,UAAUA,CAAA,EAAG;IACf,OAAO,IAAI,CAAC5H,mBAAmB,CAACwB,KAAK,CAACqG,IAAI,CAAC,CAACC,IAAI,EAAEC,IAAI,KAAK;MACzD,MAAMC,uBAAuB,GAAG,IAAI,CAACC,uBAAuB,CAACH,IAAI,CAAC;MAClE,MAAMI,uBAAuB,GAAG,IAAI,CAACD,uBAAuB,CAACF,IAAI,CAAC;;MAElE;MACA,IAAI,CAACC,uBAAuB,IAAIE,uBAAuB,EAAE;QACvD,OAAO,CAAC,CAAC;MACX;MAEA,IAAIF,uBAAuB,IAAI,CAACE,uBAAuB,EAAE;QACvD,OAAO,CAAC;MACV;;MAEA;MACA,OACE,IAAIhH,IAAI,CAAC6G,IAAI,CAAC9G,WAAY,CAAC,CAACkH,OAAO,CAAC,CAAC,GACrC,IAAIjH,IAAI,CAAC4G,IAAI,CAAC7G,WAAY,CAAC,CAACkH,OAAO,CAAC,CAAC;IAEzC,CAAC,CAAC;EACJ;EAEA,IAAInD,YAAYA,CAAA,EAAG;IACjB,MAAMoD,iBAAiB,GAAG,IAAI,CAAC1H,cAAc,CAC1C2H,GAAG,CAAEtH,KAAK,IAAK;MACd,OAAO,IAAI,CAACf,mBAAmB,CAACwB,KAAK,CAAC6F,IAAI,CAAE7G,GAAG,IAAKA,GAAG,CAACI,EAAE,KAAKG,KAAK,CAAC;IACvE,CAAC,CAAC,CACDK,MAAM,CAAEkH,OAAO,IAAKC,OAAO,CAACD,OAAO,CAAC,CAAU;IACjD,OAAO,IAAI,CAAC7H,gBAAgB,GACxB,CAAC,GAAG2H,iBAAiB,EAAE,IAAI,CAAC3H,gBAAgB,CAAC,GAC7C2H,iBAAiB;EACvB;EAEA,IAAIb,4BAA4BA,CAAA,EAAG;IACjC,OAAO,IAAI,CAACvC,YAAY,CAACqD,GAAG,CAAE7H,GAAG,IAAKA,GAAG,CAACI,EAAG,CAAC;EAChD;EAEA,IAAIiG,iBAAiBA,CAAA,EAAG;IACtB,OAAO,IAAI,CAACnG,cAAc,CAACU,MAAM,CAC9BL,KAAK,IAAK,CAAC,IAAI,CAAC+B,kBAAkB,CAACnC,QAAQ,CAACI,KAAK,CACpD,CAAC;EACH;EAEA,IAAI+F,mBAAmBA,CAAA,EAAG;IACxB,OAAO,CACL,GAAG,IAAI,CAAChE,kBAAkB,CAAC1B,MAAM,CAC9BL,KAAK,IAAK,CAAC,IAAI,CAACL,cAAc,CAACC,QAAQ,CAACI,KAAK,CAChD,CAAC,EACD,GAAG,IAAI,CAAC8B,0BAA0B,CAACzB,MAAM,CACtCL,KAAK,IACJ,CAAC,CAAC,GAAG,IAAI,CAACL,cAAc,EAAE,GAAG,IAAI,CAAC8B,mBAAmB,CAAC,CAAC7B,QAAQ,CAC7DI,KACF,CACJ,CAAC,CACF;EACH;EAEA,IAAIyH,gBAAgBA,CAAA,EAAG;IACrB;IACA,IAAI,IAAI,CAAC3E,oBAAoB,CAAC4E,oBAAoB,EAAE;MAClD,OAAO,KAAK;IACd;;IAEA;IACA,IAAI,IAAI,CAAC9E,mBAAmB,CAACqD,cAAc,EAAE;MAC3C,OAAO,IAAI;IACb;;IAEA;IACA,OAAO,IAAI,CAACnD,oBAAoB,CAAC6E,kBAAkB;EACrD;EAEA,IAAIC,OAAOA,CAAA,EAAG;IACZ,OAAO,IAAI,CAAC3I,mBAAmB,CAAC2I,OAAO;EACzC;EAEA,IAAIC,SAASA,CAAA,EAAG;IACd,OAAO,IAAI,CAAC5I,mBAAmB,CAAC4I,SAAS;EAC3C;EAEA,IAAIC,OAAOA,CAAA,EAAG;IACZ,OACE,IAAI,CAAChC,iBAAiB,CAACjE,MAAM,GAAG,CAAC,IAAI,IAAI,CAACkE,mBAAmB,CAAClE,MAAM,GAAG,CAAC;EAE5E;EAoEQyC,mBAAmBA,CAAA,EAAG;IAC5B,MAAM;MAAE/D;IAAmB,CAAC,GAAG,IAAI,CAACrB,eAAe,CAAC6I,UAAU;IAC9D,MAAMvH,SAAS,GAAG,IAAI,CAACwH,cAAc,CAACzH,kBAAkB,CAAC;IACzD,OAAO,IAAI,CAAC0H,yBAAyB,CAACzH,SAAS,EAAED,kBAAkB,CAAC;EACtE;EAMQ8D,2BAA2BA,CAAC6D,QAAiB,EAAE;IACrD,IAAI,CAAC7F,cAAc,CAACE,QAAQ,CAC1B,IAAA4F,yBAAqB,EAAC;MACpBD,QAAQ;MACRE,OAAO,EAAE,MAAM;MACftJ,MAAM,EAAE;IACV,CAAC,CACH,CAAC;EACH;EAEQ4H,sBAAsBA,CAACnD,WAAmB,EAAE;IAClD,IAAIA,WAAW,KAAK,EAAE,EAAE;MACtB,IAAI,CAAClB,cAAc,CAACgG,QAAQ,CAAC9E,WAAW,CAAC;IAC3C,CAAC,MAAM;MACL,IAAI,CAAClB,cAAc,CAACiG,eAAe,CAAC,CAAC;IACvC;EACF;EAEQ/D,qBAAqBA,CAACgE,KAAgC,EAAE;IAC9D,OAAO,IAAI,CAAClG,cAAc,CAACmG,MAAM,CAACC,IAAI,CAACF,KAAK,CAAC;EAC/C;AACF;AAACG,OAAA,CAAA3J,0BAAA,GAAAA,0BAAA","ignoreList":[]}
|
|
@@ -2,9 +2,10 @@
|
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
4
|
exports.__esModule = true;
|
|
5
|
-
exports.TagsBulkAssignSyncState = void 0;
|
|
5
|
+
exports.TagsBulkAssignSyncState = exports.MAX_SELECTED_ENTITIES_FOR_BULK_ASSIGN_SYNC = void 0;
|
|
6
6
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
7
7
|
var _bi = require("@wix/bex-core/bi");
|
|
8
|
+
const MAX_SELECTED_ENTITIES_FOR_BULK_ASSIGN_SYNC = exports.MAX_SELECTED_ENTITIES_FOR_BULK_ASSIGN_SYNC = 100;
|
|
8
9
|
class TagsBulkAssignSyncState {
|
|
9
10
|
constructor(params) {
|
|
10
11
|
(0, _defineProperty2.default)(this, "collectionState", void 0);
|
|
@@ -34,6 +35,13 @@ class TagsBulkAssignSyncState {
|
|
|
34
35
|
this.getTags = getTags;
|
|
35
36
|
this.bulkUpdateTags = bulkUpdateTags;
|
|
36
37
|
}
|
|
38
|
+
get canUseBulkSync() {
|
|
39
|
+
const {
|
|
40
|
+
allSelectedItemsFetched,
|
|
41
|
+
selectedCountOrTotal
|
|
42
|
+
} = this.collectionState.bulkSelect;
|
|
43
|
+
return allSelectedItemsFetched && selectedCountOrTotal < MAX_SELECTED_ENTITIES_FOR_BULK_ASSIGN_SYNC;
|
|
44
|
+
}
|
|
37
45
|
async applyChanges({
|
|
38
46
|
newAssignedTagIds,
|
|
39
47
|
newUnassignedTagIds,
|