@wix/patterns 1.137.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.
Files changed (164) hide show
  1. package/dist/cjs/components/Collapse/Collapse.st.css.js +3 -3
  2. package/dist/cjs/components/Collapse/Collapse.st.css.js.map +1 -1
  3. package/dist/cjs/components/CollectionToolbar/CollectionToolbar.st.css.js +5 -5
  4. package/dist/cjs/components/CollectionToolbar/CollectionToolbar.st.css.js.map +1 -1
  5. package/dist/cjs/components/CollectionToolbar/SearchOrCustomFilter.st.css.js +3 -3
  6. package/dist/cjs/components/CollectionToolbar/SearchOrCustomFilter.st.css.js.map +1 -1
  7. package/dist/cjs/components/CollectionViewsDropdown/AutoCompleteReadonly.st.css.js +2 -2
  8. package/dist/cjs/components/CollectionViewsDropdown/AutoCompleteReadonly.st.css.js.map +1 -1
  9. package/dist/cjs/components/CollectionViewsDropdown/ViewsDropdown.st.css.js +2 -2
  10. package/dist/cjs/components/CollectionViewsDropdown/ViewsDropdown.st.css.js.map +1 -1
  11. package/dist/cjs/components/CustomFieldsForm/CustomFieldsForm.js +11 -8
  12. package/dist/cjs/components/CustomFieldsForm/CustomFieldsForm.js.map +1 -1
  13. package/dist/cjs/components/CustomFieldsWidget/CustomFieldsWidget.js +11 -6
  14. package/dist/cjs/components/CustomFieldsWidget/CustomFieldsWidget.js.map +1 -1
  15. package/dist/cjs/components/DragHandle/DragHandle.st.css.js +2 -2
  16. package/dist/cjs/components/DragHandle/DragHandle.st.css.js.map +1 -1
  17. package/dist/cjs/components/Fade/Fade.st.css.js +2 -2
  18. package/dist/cjs/components/Fade/Fade.st.css.js.map +1 -1
  19. package/dist/cjs/components/FormFieldInput/FormFieldInput.js +7 -4
  20. package/dist/cjs/components/FormFieldInput/FormFieldInput.js.map +1 -1
  21. package/dist/cjs/components/Heading/Heading.st.css.js +2 -2
  22. package/dist/cjs/components/Heading/Heading.st.css.js.map +1 -1
  23. package/dist/cjs/components/InputOverflow/InputOverflow.st.css.js +2 -2
  24. package/dist/cjs/components/InputOverflow/InputOverflow.st.css.js.map +1 -1
  25. package/dist/cjs/components/LoadingRow/LoadingRow.st.css.js +3 -3
  26. package/dist/cjs/components/LoadingRow/LoadingRow.st.css.js.map +1 -1
  27. package/dist/cjs/components/MaxHeightText/MaxHeightText.st.css.js +2 -2
  28. package/dist/cjs/components/MaxHeightText/MaxHeightText.st.css.js.map +1 -1
  29. package/dist/cjs/components/MaxLines/MaxLines.st.css.js +2 -2
  30. package/dist/cjs/components/MaxLines/MaxLines.st.css.js.map +1 -1
  31. package/dist/cjs/components/MultiBulkActionToolbar/MultiBulkActionToolbar.st.css.js +2 -2
  32. package/dist/cjs/components/MultiBulkActionToolbar/MultiBulkActionToolbar.st.css.js.map +1 -1
  33. package/dist/cjs/components/NestedTable/NestedTablePlaceholderStatesRow.st.css.js +2 -2
  34. package/dist/cjs/components/NestedTable/NestedTablePlaceholderStatesRow.st.css.js.map +1 -1
  35. package/dist/cjs/components/NestedTable/NestedTableRow.st.css.js +5 -5
  36. package/dist/cjs/components/NestedTable/NestedTableRow.st.css.js.map +1 -1
  37. package/dist/cjs/components/NestedTableDragAndDrop/MultipleDragOverlayEffect.st.css.js +2 -2
  38. package/dist/cjs/components/NestedTableDragAndDrop/MultipleDragOverlayEffect.st.css.js.map +1 -1
  39. package/dist/cjs/components/NestedTableDragAndDrop/NestedTableDragAndDropRow.st.css.js +2 -2
  40. package/dist/cjs/components/NestedTableDragAndDrop/NestedTableDragAndDropRow.st.css.js.map +1 -1
  41. package/dist/cjs/components/PickerContent/PickerContent.st.css.js +2 -2
  42. package/dist/cjs/components/PickerContent/PickerContent.st.css.js.map +1 -1
  43. package/dist/cjs/components/PickerContent/PickerContentAdditionalStep.st.css.js +4 -4
  44. package/dist/cjs/components/PickerContent/PickerContentAdditionalStep.st.css.js.map +1 -1
  45. package/dist/cjs/components/PickerTableListItem/PickerTableListItem.st.css.js +2 -2
  46. package/dist/cjs/components/PickerTableListItem/PickerTableListItem.st.css.js.map +1 -1
  47. package/dist/cjs/components/ScrollableContent/ScrollableContent.st.css.js +2 -2
  48. package/dist/cjs/components/ScrollableContent/ScrollableContent.st.css.js.map +1 -1
  49. package/dist/cjs/components/SkeletonCard/SkeletonCard.st.css.js +3 -3
  50. package/dist/cjs/components/SkeletonCard/SkeletonCard.st.css.js.map +1 -1
  51. package/dist/cjs/components/SlidingModal/SlidingModal.st.css.js +2 -2
  52. package/dist/cjs/components/SlidingModal/SlidingModal.st.css.js.map +1 -1
  53. package/dist/cjs/components/TabsFilter/TabsFilter.st.css.js +3 -3
  54. package/dist/cjs/components/TabsFilter/TabsFilter.st.css.js.map +1 -1
  55. package/dist/cjs/components/Tags/ManageTags/ManageTagsModal/ManageTagsModal.st.css.js +2 -2
  56. package/dist/cjs/components/Tags/ManageTags/ManageTagsModal/ManageTagsModal.st.css.js.map +1 -1
  57. package/dist/cjs/components/Tags/TagsBulkAssignUtils.js +40 -0
  58. package/dist/cjs/components/Tags/TagsBulkAssignUtils.js.map +1 -0
  59. package/dist/cjs/components/Tags/useTagsBulkAssignFoldersUtils.js +7 -7
  60. package/dist/cjs/components/Tags/useTagsBulkAssignFoldersUtils.js.map +1 -1
  61. package/dist/cjs/components/Tags/useTagsBulkAssignUtils.js +7 -7
  62. package/dist/cjs/components/Tags/useTagsBulkAssignUtils.js.map +1 -1
  63. package/dist/cjs/components/ToolbarItemBox/ToolbarItemBox.st.css.js +2 -2
  64. package/dist/cjs/components/ToolbarItemBox/ToolbarItemBox.st.css.js.map +1 -1
  65. package/dist/cjs/components/common.st.css.js +4 -4
  66. package/dist/cjs/components/common.st.css.js.map +1 -1
  67. package/dist/cjs/state/EntityPage/EntityPageState.js.map +1 -1
  68. package/dist/cjs/state/FoldersAndItemsCollectionsState.js +2 -2
  69. package/dist/cjs/state/FoldersAndItemsCollectionsState.js.map +1 -1
  70. package/dist/cjs/state/SettingsPage/SettingsPageState.js.map +1 -1
  71. package/dist/cjs/state/TagsBulkAssignAsyncState.js.map +1 -1
  72. package/dist/cjs/state/TagsBulkAssignPopoverState.js +3 -11
  73. package/dist/cjs/state/TagsBulkAssignPopoverState.js.map +1 -1
  74. package/dist/cjs/state/TagsBulkAssignSyncState.js +9 -1
  75. package/dist/cjs/state/TagsBulkAssignSyncState.js.map +1 -1
  76. package/dist/cjs/styles.global.css +1 -1
  77. package/dist/cjs/version.js +1 -1
  78. package/dist/cjs/version.js.map +1 -1
  79. package/dist/esm/components/Collapse/Collapse.st.css.js +2 -2
  80. package/dist/esm/components/CollectionToolbar/CollectionToolbar.st.css.js +2 -2
  81. package/dist/esm/components/CollectionToolbar/CollectionToolbar.st.css.js.map +1 -1
  82. package/dist/esm/components/CollectionToolbar/SearchOrCustomFilter.st.css.js +2 -2
  83. package/dist/esm/components/CollectionToolbar/SearchOrCustomFilter.st.css.js.map +1 -1
  84. package/dist/esm/components/CollectionViewsDropdown/AutoCompleteReadonly.st.css.js +2 -2
  85. package/dist/esm/components/CollectionViewsDropdown/ViewsDropdown.st.css.js +2 -2
  86. package/dist/esm/components/CustomFieldsForm/CustomFieldsForm.js +5 -2
  87. package/dist/esm/components/CustomFieldsForm/CustomFieldsForm.js.map +1 -1
  88. package/dist/esm/components/CustomFieldsWidget/CustomFieldsWidget.js +6 -1
  89. package/dist/esm/components/CustomFieldsWidget/CustomFieldsWidget.js.map +1 -1
  90. package/dist/esm/components/DragHandle/DragHandle.st.css.js +2 -2
  91. package/dist/esm/components/Fade/Fade.st.css.js +2 -2
  92. package/dist/esm/components/FormFieldInput/FormFieldInput.js +4 -1
  93. package/dist/esm/components/FormFieldInput/FormFieldInput.js.map +1 -1
  94. package/dist/esm/components/Heading/Heading.st.css.js +2 -2
  95. package/dist/esm/components/InputOverflow/InputOverflow.st.css.js +2 -2
  96. package/dist/esm/components/LoadingRow/LoadingRow.st.css.js +3 -3
  97. package/dist/esm/components/MaxHeightText/MaxHeightText.st.css.js +2 -2
  98. package/dist/esm/components/MaxLines/MaxLines.st.css.js +2 -2
  99. package/dist/esm/components/MaxLines/MaxLines.st.css.js.map +1 -1
  100. package/dist/esm/components/MultiBulkActionToolbar/MultiBulkActionToolbar.st.css.js +2 -2
  101. package/dist/esm/components/NestedTable/NestedTablePlaceholderStatesRow.st.css.js +2 -2
  102. package/dist/esm/components/NestedTable/NestedTableRow.st.css.js +2 -2
  103. package/dist/esm/components/NestedTable/NestedTableRow.st.css.js.map +1 -1
  104. package/dist/esm/components/NestedTableDragAndDrop/MultipleDragOverlayEffect.st.css.js +2 -2
  105. package/dist/esm/components/NestedTableDragAndDrop/NestedTableDragAndDropRow.st.css.js +2 -2
  106. package/dist/esm/components/PickerContent/PickerContent.st.css.js +2 -2
  107. package/dist/esm/components/PickerContent/PickerContent.st.css.js.map +1 -1
  108. package/dist/esm/components/PickerContent/PickerContentAdditionalStep.st.css.js +2 -2
  109. package/dist/esm/components/PickerTableListItem/PickerTableListItem.st.css.js +2 -2
  110. package/dist/esm/components/ScrollableContent/ScrollableContent.st.css.js +2 -2
  111. package/dist/esm/components/SkeletonCard/SkeletonCard.st.css.js +2 -2
  112. package/dist/esm/components/SlidingModal/SlidingModal.st.css.js +2 -2
  113. package/dist/esm/components/TabsFilter/TabsFilter.st.css.js +2 -2
  114. package/dist/esm/components/Tags/ManageTags/ManageTagsModal/ManageTagsModal.st.css.js +2 -2
  115. package/dist/esm/components/Tags/ManageTags/ManageTagsModal/ManageTagsModal.st.css.js.map +1 -1
  116. package/dist/esm/components/Tags/TagsBulkAssignUtils.js +24 -0
  117. package/dist/esm/components/Tags/TagsBulkAssignUtils.js.map +1 -0
  118. package/dist/esm/components/Tags/useTagsBulkAssignFoldersUtils.js +8 -5
  119. package/dist/esm/components/Tags/useTagsBulkAssignFoldersUtils.js.map +1 -1
  120. package/dist/esm/components/Tags/useTagsBulkAssignUtils.js +5 -4
  121. package/dist/esm/components/Tags/useTagsBulkAssignUtils.js.map +1 -1
  122. package/dist/esm/components/ToolbarItemBox/ToolbarItemBox.st.css.js +2 -2
  123. package/dist/esm/components/common.st.css.js +2 -2
  124. package/dist/esm/components/common.st.css.js.map +1 -1
  125. package/dist/esm/state/EntityPage/EntityPageState.js.map +1 -1
  126. package/dist/esm/state/FoldersAndItemsCollectionsState.js +2 -2
  127. package/dist/esm/state/FoldersAndItemsCollectionsState.js.map +1 -1
  128. package/dist/esm/state/SettingsPage/SettingsPageState.js.map +1 -1
  129. package/dist/esm/state/TagsBulkAssignAsyncState.js.map +1 -1
  130. package/dist/esm/state/TagsBulkAssignPopoverState.js +2 -8
  131. package/dist/esm/state/TagsBulkAssignPopoverState.js.map +1 -1
  132. package/dist/esm/state/TagsBulkAssignSyncState.js +6 -0
  133. package/dist/esm/state/TagsBulkAssignSyncState.js.map +1 -1
  134. package/dist/esm/styles.global.css +1 -1
  135. package/dist/esm/version.js +1 -1
  136. package/dist/types/components/CollectionToolbar/CollectionToolbar.st.css.d.ts.map +1 -1
  137. package/dist/types/components/CollectionToolbar/SearchOrCustomFilter.st.css.d.ts.map +1 -1
  138. package/dist/types/components/CustomFieldsForm/CustomFieldsForm.d.ts.map +1 -1
  139. package/dist/types/components/CustomFieldsWidget/CustomFieldsWidget.d.ts.map +1 -1
  140. package/dist/types/components/FormFieldInput/FormFieldInput.d.ts +13 -0
  141. package/dist/types/components/FormFieldInput/FormFieldInput.d.ts.map +1 -1
  142. package/dist/types/components/MaxLines/MaxLines.st.css.d.ts.map +1 -1
  143. package/dist/types/components/NestedTable/NestedTableRow.st.css.d.ts.map +1 -1
  144. package/dist/types/components/PickerContent/PickerContent.st.css.d.ts.map +1 -1
  145. package/dist/types/components/Tags/ManageTags/ManageTagsModal/ManageTagsModal.st.css.d.ts.map +1 -1
  146. package/dist/types/components/Tags/TagsBulkAssignUtils.d.ts +13 -0
  147. package/dist/types/components/Tags/TagsBulkAssignUtils.d.ts.map +1 -0
  148. package/dist/types/components/Tags/useTagsBulkAssignFoldersUtils.d.ts.map +1 -1
  149. package/dist/types/components/Tags/useTagsBulkAssignUtils.d.ts.map +1 -1
  150. package/dist/types/components/common.st.css.d.ts.map +1 -1
  151. package/dist/types/state/FoldersAndItemsCollectionsState.d.ts +1 -1
  152. package/dist/types/state/FoldersAndItemsCollectionsState.d.ts.map +1 -1
  153. package/dist/types/state/TagsBulkAssignPopoverState.d.ts +0 -2
  154. package/dist/types/state/TagsBulkAssignPopoverState.d.ts.map +1 -1
  155. package/dist/types/state/TagsBulkAssignSyncState.d.ts +2 -0
  156. package/dist/types/state/TagsBulkAssignSyncState.d.ts.map +1 -1
  157. package/dist/types/version.d.ts +1 -1
  158. package/package.json +3 -3
  159. package/dist/cjs/components/Tags/useTagsBulkAssignBaseUtils.js +0 -28
  160. package/dist/cjs/components/Tags/useTagsBulkAssignBaseUtils.js.map +0 -1
  161. package/dist/esm/components/Tags/useTagsBulkAssignBaseUtils.js +0 -16
  162. package/dist/esm/components/Tags/useTagsBulkAssignBaseUtils.js.map +0 -1
  163. package/dist/types/components/Tags/useTagsBulkAssignBaseUtils.d.ts +0 -15
  164. package/dist/types/components/Tags/useTagsBulkAssignBaseUtils.d.ts.map +0 -1
@@ -3,7 +3,7 @@
3
3
  exports.__esModule = true;
4
4
  exports.useTagsBulkAssignUtils = useTagsBulkAssignUtils;
5
5
  var _react = require("react");
6
- var _useTagsBulkAssignBaseUtils = require("./useTagsBulkAssignBaseUtils");
6
+ var _TagsBulkAssignUtils = require("./TagsBulkAssignUtils");
7
7
  function useTagsBulkAssignUtils({
8
8
  state
9
9
  }) {
@@ -12,18 +12,18 @@ function useTagsBulkAssignUtils({
12
12
  tagsBulkAssignButtonState
13
13
  } = ((_state$toolbar$tagsCo = state.toolbar.tagsCollectionState) == null ? void 0 : _state$toolbar$tagsCo.tagsBulkAssignPopoverState) ?? {};
14
14
  const {
15
- bulkJob
16
- } = (0, _useTagsBulkAssignBaseUtils.useTagsBulkAssignBaseUtils)({
15
+ hasReachedMaxSelectedItems,
16
+ isDuringApplyChanges
17
+ } = (0, _TagsBulkAssignUtils.getBulkAssignStatus)({
17
18
  state: state.toolbar
18
19
  });
19
20
  (0, _react.useEffect)(() => {
20
21
  if (tagsBulkAssignButtonState) {
21
- const tooltipContent = (0, _useTagsBulkAssignBaseUtils.getDisabledTooltipContent)({
22
- state: state.toolbar,
23
- bulkJob
22
+ const tooltipContent = (0, _TagsBulkAssignUtils.getDisabledTooltipContent)({
23
+ state: state.toolbar
24
24
  });
25
25
  tagsBulkAssignButtonState.setTooltipContent(tooltipContent);
26
26
  }
27
- }, [bulkJob]);
27
+ }, [hasReachedMaxSelectedItems, isDuringApplyChanges]);
28
28
  }
29
29
  //# sourceMappingURL=useTagsBulkAssignUtils.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_react","require","_useTagsBulkAssignBaseUtils","useTagsBulkAssignUtils","state","_state$toolbar$tagsCo","tagsBulkAssignButtonState","toolbar","tagsCollectionState","tagsBulkAssignPopoverState","bulkJob","useTagsBulkAssignBaseUtils","useEffect","tooltipContent","getDisabledTooltipContent","setTooltipContent"],"sources":["../../../../src/components/Tags/useTagsBulkAssignUtils.ts"],"sourcesContent":["import { useEffect } from 'react';\nimport { TableState } from '../../state';\nimport { FiltersMap } from '@wix/bex-core';\nimport {\n getDisabledTooltipContent,\n useTagsBulkAssignBaseUtils,\n} from './useTagsBulkAssignBaseUtils';\n\ninterface UseTagsBulkAssignUtilsProps<T1, F1 extends FiltersMap> {\n state: TableState<T1, F1>;\n}\n\nexport function useTagsBulkAssignUtils<T1, F1 extends FiltersMap>({\n state,\n}: UseTagsBulkAssignUtilsProps<T1, F1>) {\n const { tagsBulkAssignButtonState } =\n state.toolbar.tagsCollectionState?.tagsBulkAssignPopoverState ?? {};\n\n const { bulkJob } = useTagsBulkAssignBaseUtils({ state: state.toolbar });\n\n useEffect(() => {\n if (tagsBulkAssignButtonState) {\n const tooltipContent = getDisabledTooltipContent({\n state: state.toolbar,\n bulkJob,\n });\n tagsBulkAssignButtonState.setTooltipContent(tooltipContent);\n }\n }, [bulkJob]);\n}\n"],"mappings":";;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAGA,IAAAC,2BAAA,GAAAD,OAAA;AASO,SAASE,sBAAsBA,CAA4B;EAChEC;AACmC,CAAC,EAAE;EAAA,IAAAC,qBAAA;EACtC,MAAM;IAAEC;EAA0B,CAAC,GACjC,EAAAD,qBAAA,GAAAD,KAAK,CAACG,OAAO,CAACC,mBAAmB,qBAAjCH,qBAAA,CAAmCI,0BAA0B,KAAI,CAAC,CAAC;EAErE,MAAM;IAAEC;EAAQ,CAAC,GAAG,IAAAC,sDAA0B,EAAC;IAAEP,KAAK,EAAEA,KAAK,CAACG;EAAQ,CAAC,CAAC;EAExE,IAAAK,gBAAS,EAAC,MAAM;IACd,IAAIN,yBAAyB,EAAE;MAC7B,MAAMO,cAAc,GAAG,IAAAC,qDAAyB,EAAC;QAC/CV,KAAK,EAAEA,KAAK,CAACG,OAAO;QACpBG;MACF,CAAC,CAAC;MACFJ,yBAAyB,CAACS,iBAAiB,CAACF,cAAc,CAAC;IAC7D;EACF,CAAC,EAAE,CAACH,OAAO,CAAC,CAAC;AACf","ignoreList":[]}
1
+ {"version":3,"names":["_react","require","_TagsBulkAssignUtils","useTagsBulkAssignUtils","state","_state$toolbar$tagsCo","tagsBulkAssignButtonState","toolbar","tagsCollectionState","tagsBulkAssignPopoverState","hasReachedMaxSelectedItems","isDuringApplyChanges","getBulkAssignStatus","useEffect","tooltipContent","getDisabledTooltipContent","setTooltipContent"],"sources":["../../../../src/components/Tags/useTagsBulkAssignUtils.ts"],"sourcesContent":["import { useEffect } from 'react';\nimport { TableState } from '../../state';\nimport { FiltersMap } from '@wix/bex-core';\nimport {\n getBulkAssignStatus,\n getDisabledTooltipContent,\n} from './TagsBulkAssignUtils';\n\ninterface UseTagsBulkAssignUtilsProps<T1, F1 extends FiltersMap> {\n state: TableState<T1, F1>;\n}\n\nexport function useTagsBulkAssignUtils<T1, F1 extends FiltersMap>({\n state,\n}: UseTagsBulkAssignUtilsProps<T1, F1>) {\n const { tagsBulkAssignButtonState } =\n state.toolbar.tagsCollectionState?.tagsBulkAssignPopoverState ?? {};\n\n const { hasReachedMaxSelectedItems, isDuringApplyChanges } =\n getBulkAssignStatus({\n state: state.toolbar,\n });\n useEffect(() => {\n if (tagsBulkAssignButtonState) {\n const tooltipContent = getDisabledTooltipContent({\n state: state.toolbar,\n });\n tagsBulkAssignButtonState.setTooltipContent(tooltipContent);\n }\n }, [hasReachedMaxSelectedItems, isDuringApplyChanges]);\n}\n"],"mappings":";;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAGA,IAAAC,oBAAA,GAAAD,OAAA;AASO,SAASE,sBAAsBA,CAA4B;EAChEC;AACmC,CAAC,EAAE;EAAA,IAAAC,qBAAA;EACtC,MAAM;IAAEC;EAA0B,CAAC,GACjC,EAAAD,qBAAA,GAAAD,KAAK,CAACG,OAAO,CAACC,mBAAmB,qBAAjCH,qBAAA,CAAmCI,0BAA0B,KAAI,CAAC,CAAC;EAErE,MAAM;IAAEC,0BAA0B;IAAEC;EAAqB,CAAC,GACxD,IAAAC,wCAAmB,EAAC;IAClBR,KAAK,EAAEA,KAAK,CAACG;EACf,CAAC,CAAC;EACJ,IAAAM,gBAAS,EAAC,MAAM;IACd,IAAIP,yBAAyB,EAAE;MAC7B,MAAMQ,cAAc,GAAG,IAAAC,8CAAyB,EAAC;QAC/CX,KAAK,EAAEA,KAAK,CAACG;MACf,CAAC,CAAC;MACFD,yBAAyB,CAACU,iBAAiB,CAACF,cAAc,CAAC;IAC7D;EACF,CAAC,EAAE,CAACJ,0BAA0B,EAAEC,oBAAoB,CAAC,CAAC;AACxD","ignoreList":[]}
@@ -5,14 +5,14 @@ exports.vars = exports.style = exports.stVars = exports.st = exports.namespace =
5
5
  var _stylableEsmRuntime = require("../../stylable-esm-runtime.js");
6
6
  // @ts-nocheck
7
7
 
8
- var _namespace_ = "ToolbarItemBox3217190567";
8
+ var _namespace_ = "ToolbarItemBox4279196036";
9
9
  var _style_ = _stylableEsmRuntime.classesRuntime.bind(null, _namespace_);
10
10
  var cssStates = exports.cssStates = _stylableEsmRuntime.statesRuntime.bind(null, _namespace_);
11
11
  var style = exports.style = _style_;
12
12
  var st = exports.st = _style_;
13
13
  var namespace = exports.namespace = _namespace_;
14
14
  var classes = exports.classes = {
15
- "root": "ToolbarItemBox3217190567__root"
15
+ "root": "ToolbarItemBox4279196036__root"
16
16
  };
17
17
  var keyframes = exports.keyframes = {};
18
18
  var layers = exports.layers = {};
@@ -1 +1 @@
1
- {"version":3,"names":["_stylableEsmRuntime","require","_namespace_","_style_","classesRuntime","bind","cssStates","exports","statesRuntime","style","st","namespace","classes","keyframes","layers","containers","stVars","vars"],"sources":["../../../../src/components/ToolbarItemBox/ToolbarItemBox.st.css.ts"],"sourcesContent":["// @ts-nocheck\n\n\nimport { classesRuntime, statesRuntime } from \"../../stylable-esm-runtime.js\";\n\n\n\nvar _namespace_ = \"ToolbarItemBox3217190567\";\nvar _style_ = classesRuntime.bind(null, _namespace_);\n\nexport var cssStates = statesRuntime.bind(null, _namespace_);\nexport var style = _style_;\nexport var st: import(\"@stylable/runtime\").STFunction = _style_;\n\nexport var namespace = _namespace_;\nexport var classes = {\"root\":\"ToolbarItemBox3217190567__root\"};\nexport var keyframes = {}; \nexport var layers = {};\nexport var containers = {};\nexport var stVars = {}; \nexport var vars = {}; \n\n\n\n\n"],"mappings":";;;;AAGA,IAAAA,mBAAA,GAAAC,OAAA;AAHA;;AAOA,IAAIC,WAAW,GAAG,0BAA0B;AAC5C,IAAIC,OAAO,GAAGC,kCAAc,CAACC,IAAI,CAAC,IAAI,EAAEH,WAAW,CAAC;AAE7C,IAAII,SAAS,GAAAC,OAAA,CAAAD,SAAA,GAAGE,iCAAa,CAACH,IAAI,CAAC,IAAI,EAAEH,WAAW,CAAC;AACrD,IAAIO,KAAK,GAAAF,OAAA,CAAAE,KAAA,GAAGN,OAAO;AACnB,IAAIO,EAA0C,GAAAH,OAAA,CAAAG,EAAA,GAAGP,OAAO;AAExD,IAAIQ,SAAS,GAAAJ,OAAA,CAAAI,SAAA,GAAGT,WAAW;AAC3B,IAAIU,OAAO,GAAAL,OAAA,CAAAK,OAAA,GAAG;EAAC,MAAM,EAAC;AAAgC,CAAC;AACvD,IAAIC,SAAS,GAAAN,OAAA,CAAAM,SAAA,GAAG,CAAC,CAAC;AAClB,IAAIC,MAAM,GAAAP,OAAA,CAAAO,MAAA,GAAG,CAAC,CAAC;AACf,IAAIC,UAAU,GAAAR,OAAA,CAAAQ,UAAA,GAAG,CAAC,CAAC;AACnB,IAAIC,MAAM,GAAAT,OAAA,CAAAS,MAAA,GAAG,CAAC,CAAC;AACf,IAAIC,IAAI,GAAAV,OAAA,CAAAU,IAAA,GAAG,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["_stylableEsmRuntime","require","_namespace_","_style_","classesRuntime","bind","cssStates","exports","statesRuntime","style","st","namespace","classes","keyframes","layers","containers","stVars","vars"],"sources":["../../../../src/components/ToolbarItemBox/ToolbarItemBox.st.css.ts"],"sourcesContent":["// @ts-nocheck\n\n\nimport { classesRuntime, statesRuntime } from \"../../stylable-esm-runtime.js\";\n\n\n\nvar _namespace_ = \"ToolbarItemBox4279196036\";\nvar _style_ = classesRuntime.bind(null, _namespace_);\n\nexport var cssStates = statesRuntime.bind(null, _namespace_);\nexport var style = _style_;\nexport var st: import(\"@stylable/runtime\").STFunction = _style_;\n\nexport var namespace = _namespace_;\nexport var classes = {\"root\":\"ToolbarItemBox4279196036__root\"};\nexport var keyframes = {}; \nexport var layers = {};\nexport var containers = {};\nexport var stVars = {}; \nexport var vars = {}; \n\n\n\n\n"],"mappings":";;;;AAGA,IAAAA,mBAAA,GAAAC,OAAA;AAHA;;AAOA,IAAIC,WAAW,GAAG,0BAA0B;AAC5C,IAAIC,OAAO,GAAGC,kCAAc,CAACC,IAAI,CAAC,IAAI,EAAEH,WAAW,CAAC;AAE7C,IAAII,SAAS,GAAAC,OAAA,CAAAD,SAAA,GAAGE,iCAAa,CAACH,IAAI,CAAC,IAAI,EAAEH,WAAW,CAAC;AACrD,IAAIO,KAAK,GAAAF,OAAA,CAAAE,KAAA,GAAGN,OAAO;AACnB,IAAIO,EAA0C,GAAAH,OAAA,CAAAG,EAAA,GAAGP,OAAO;AAExD,IAAIQ,SAAS,GAAAJ,OAAA,CAAAI,SAAA,GAAGT,WAAW;AAC3B,IAAIU,OAAO,GAAAL,OAAA,CAAAK,OAAA,GAAG;EAAC,MAAM,EAAC;AAAgC,CAAC;AACvD,IAAIC,SAAS,GAAAN,OAAA,CAAAM,SAAA,GAAG,CAAC,CAAC;AAClB,IAAIC,MAAM,GAAAP,OAAA,CAAAO,MAAA,GAAG,CAAC,CAAC;AACf,IAAIC,UAAU,GAAAR,OAAA,CAAAQ,UAAA,GAAG,CAAC,CAAC;AACnB,IAAIC,MAAM,GAAAT,OAAA,CAAAS,MAAA,GAAG,CAAC,CAAC;AACf,IAAIC,IAAI,GAAAV,OAAA,CAAAU,IAAA,GAAG,CAAC,CAAC","ignoreList":[]}
@@ -5,16 +5,16 @@ exports.vars = exports.style = exports.stVars = exports.st = exports.namespace =
5
5
  var _stylableEsmRuntime = require("../stylable-esm-runtime.js");
6
6
  // @ts-nocheck
7
7
 
8
- var _namespace_ = "common1284001297";
8
+ var _namespace_ = "common928919892";
9
9
  var _style_ = _stylableEsmRuntime.classesRuntime.bind(null, _namespace_);
10
10
  var cssStates = exports.cssStates = _stylableEsmRuntime.statesRuntime.bind(null, _namespace_);
11
11
  var style = exports.style = _style_;
12
12
  var st = exports.st = _style_;
13
13
  var namespace = exports.namespace = _namespace_;
14
14
  var classes = exports.classes = {
15
- "root": "common1284001297__root",
16
- "column": "common1284001297__column",
17
- "fullHeight": "common1284001297__fullHeight"
15
+ "root": "common928919892__root",
16
+ "column": "common928919892__column",
17
+ "fullHeight": "common928919892__fullHeight"
18
18
  };
19
19
  var keyframes = exports.keyframes = {};
20
20
  var layers = exports.layers = {};
@@ -1 +1 @@
1
- {"version":3,"names":["_stylableEsmRuntime","require","_namespace_","_style_","classesRuntime","bind","cssStates","exports","statesRuntime","style","st","namespace","classes","keyframes","layers","containers","stVars","vars"],"sources":["../../../src/components/common.st.css.ts"],"sourcesContent":["// @ts-nocheck\n\n\nimport { classesRuntime, statesRuntime } from \"../stylable-esm-runtime.js\";\n\n\n\nvar _namespace_ = \"common1284001297\";\nvar _style_ = classesRuntime.bind(null, _namespace_);\n\nexport var cssStates = statesRuntime.bind(null, _namespace_);\nexport var style = _style_;\nexport var st: import(\"@stylable/runtime\").STFunction = _style_;\n\nexport var namespace = _namespace_;\nexport var classes = {\"root\":\"common1284001297__root\",\"column\":\"common1284001297__column\",\"fullHeight\":\"common1284001297__fullHeight\"};\nexport var keyframes = {}; \nexport var layers = {};\nexport var containers = {};\nexport var stVars = {}; \nexport var vars = {}; \n\n\n\n\n"],"mappings":";;;;AAGA,IAAAA,mBAAA,GAAAC,OAAA;AAHA;;AAOA,IAAIC,WAAW,GAAG,kBAAkB;AACpC,IAAIC,OAAO,GAAGC,kCAAc,CAACC,IAAI,CAAC,IAAI,EAAEH,WAAW,CAAC;AAE7C,IAAII,SAAS,GAAAC,OAAA,CAAAD,SAAA,GAAGE,iCAAa,CAACH,IAAI,CAAC,IAAI,EAAEH,WAAW,CAAC;AACrD,IAAIO,KAAK,GAAAF,OAAA,CAAAE,KAAA,GAAGN,OAAO;AACnB,IAAIO,EAA0C,GAAAH,OAAA,CAAAG,EAAA,GAAGP,OAAO;AAExD,IAAIQ,SAAS,GAAAJ,OAAA,CAAAI,SAAA,GAAGT,WAAW;AAC3B,IAAIU,OAAO,GAAAL,OAAA,CAAAK,OAAA,GAAG;EAAC,MAAM,EAAC,wBAAwB;EAAC,QAAQ,EAAC,0BAA0B;EAAC,YAAY,EAAC;AAA8B,CAAC;AAC/H,IAAIC,SAAS,GAAAN,OAAA,CAAAM,SAAA,GAAG,CAAC,CAAC;AAClB,IAAIC,MAAM,GAAAP,OAAA,CAAAO,MAAA,GAAG,CAAC,CAAC;AACf,IAAIC,UAAU,GAAAR,OAAA,CAAAQ,UAAA,GAAG,CAAC,CAAC;AACnB,IAAIC,MAAM,GAAAT,OAAA,CAAAS,MAAA,GAAG,CAAC,CAAC;AACf,IAAIC,IAAI,GAAAV,OAAA,CAAAU,IAAA,GAAG,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["_stylableEsmRuntime","require","_namespace_","_style_","classesRuntime","bind","cssStates","exports","statesRuntime","style","st","namespace","classes","keyframes","layers","containers","stVars","vars"],"sources":["../../../src/components/common.st.css.ts"],"sourcesContent":["// @ts-nocheck\n\n\nimport { classesRuntime, statesRuntime } from \"../stylable-esm-runtime.js\";\n\n\n\nvar _namespace_ = \"common928919892\";\nvar _style_ = classesRuntime.bind(null, _namespace_);\n\nexport var cssStates = statesRuntime.bind(null, _namespace_);\nexport var style = _style_;\nexport var st: import(\"@stylable/runtime\").STFunction = _style_;\n\nexport var namespace = _namespace_;\nexport var classes = {\"root\":\"common928919892__root\",\"column\":\"common928919892__column\",\"fullHeight\":\"common928919892__fullHeight\"};\nexport var keyframes = {}; \nexport var layers = {};\nexport var containers = {};\nexport var stVars = {}; \nexport var vars = {}; \n\n\n\n\n"],"mappings":";;;;AAGA,IAAAA,mBAAA,GAAAC,OAAA;AAHA;;AAOA,IAAIC,WAAW,GAAG,iBAAiB;AACnC,IAAIC,OAAO,GAAGC,kCAAc,CAACC,IAAI,CAAC,IAAI,EAAEH,WAAW,CAAC;AAE7C,IAAII,SAAS,GAAAC,OAAA,CAAAD,SAAA,GAAGE,iCAAa,CAACH,IAAI,CAAC,IAAI,EAAEH,WAAW,CAAC;AACrD,IAAIO,KAAK,GAAAF,OAAA,CAAAE,KAAA,GAAGN,OAAO;AACnB,IAAIO,EAA0C,GAAAH,OAAA,CAAAG,EAAA,GAAGP,OAAO;AAExD,IAAIQ,SAAS,GAAAJ,OAAA,CAAAI,SAAA,GAAGT,WAAW;AAC3B,IAAIU,OAAO,GAAAL,OAAA,CAAAK,OAAA,GAAG;EAAC,MAAM,EAAC,uBAAuB;EAAC,QAAQ,EAAC,yBAAyB;EAAC,YAAY,EAAC;AAA6B,CAAC;AAC5H,IAAIC,SAAS,GAAAN,OAAA,CAAAM,SAAA,GAAG,CAAC,CAAC;AAClB,IAAIC,MAAM,GAAAP,OAAA,CAAAO,MAAA,GAAG,CAAC,CAAC;AACf,IAAIC,UAAU,GAAAR,OAAA,CAAAQ,UAAA,GAAG,CAAC,CAAC;AACnB,IAAIC,MAAM,GAAAT,OAAA,CAAAS,MAAA,GAAG,CAAC,CAAC;AACf,IAAIC,IAAI,GAAAV,OAAA,CAAAU,IAAA,GAAG,CAAC,CAAC","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["_bexCore","require","_mobx","_EntityPageStateBIReporter","_events","EntityPageState","constructor","params","_defineProperty2","default","EventEmitter","fetch","onSave","saveSuccessToast","saveErrorToast","formPage","FormPageState","form","_parentPageId","parentPageId","transformEntityToCollectionItem","anEntity","_parentPath","parentPath","container","_routerState","routerState","_this$_routerState$cu","_entity","currentState","_chosenEntity","entity","reportBI","createBILogger","componentType","pageType","route","window","location","pathname","bi","EntityPageStateBIReporter","entityPageState","init","makeObservable","handleSubmit","action","observable","ref","setEntity","isFormDirty","computed","_withinRouter","_checkPageParams","initTask","onBeforeUnload","onBeforeUnloadSubscription","event","formState","isSubmitSuccessful","preventDefault","reportOnBeforeUnload","runOnce","_this$bi$appLoaded","_this$bi","data","Promise","all","status","promise","appLoaded","call","remove","retryFetch","newEntity","isFetching","flag","isDirty","_isFormDirty","val","onCancel","reportButtonClick","ctaName","navigateToParent","updatedEntity","entityStringKey","entityObject","navigate","state","navigateTo","pageId","_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","isValid","extraFields","validate","run","savedEntity","onSaveResult","widgetsFormData","errorMonitor","captureException","setError","transformedItem","Error","exports"],"sources":["../../../../src/state/EntityPage/EntityPageState.ts"],"sourcesContent":["import {\n FormPageState,\n ReportBI,\n WixPatternsContainer,\n ActionsBarConfig,\n} from '@wix/bex-core';\nimport { action, computed, makeObservable, observable } from 'mobx';\nimport { FieldValues } from 'react-hook-form';\nimport { EntityPageStateBIReporter } from './EntityPageStateBIReporter';\nimport { EventEmitter, TypedEmitter } from '@wix/bex-core/events';\nimport { WixPatternsRouterState } from '../WixPatternsRouterState';\n\ntype OnSaveParams = {\n widgetsFormData: { [key: string]: any };\n};\n\nexport interface EntityPageStateParams<T, V extends FieldValues = FieldValues> {\n /**\n * A function that fetches the entity data.\n * @returns a promise that resolves to an object containing the entity.\n */\n fetch: () => Promise<{ entity: T | undefined }>;\n\n /**\n * A function to handle the save action.\n * @returns promise that resolves to an object that contains a 'updatedEntity' object.\n */\n onSave: (params: OnSaveParams) => Promise<{ updatedEntity: T }>;\n\n /**\n * An optional object with an optional message, or it can directly get a string message.\n */\n saveSuccessToast?: { message?: string } | string;\n\n /**\n * An optional function to display an error toast message when a save operation fails.\n * @returns An object with 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 /**\n * An optional function to transform the updated entity data before it is passed to the collection page.\n * @param entity the updated entity.\n * @returns an object representing the entity in the collection page.\n */\n transformEntityToCollectionItem?: (entity: T) => any;\n\n 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 /**\n * A string representing the ID of the parent page.\n * Must be passed if not using Patterns Router\n */\n parentPageId?: string;\n\n /**\n * A string representing the path of the parent page.\n * Must be passed if using Patterns Router\n */\n parentPath?: string;\n\n /**\n * An object representing the router state\n */\n routerState?: WixPatternsRouterState | null;\n\n /**\n * An optional object to override the actions bar.\n */\n actionsBarConfig?: ActionsBarConfig;\n}\n\nexport interface EntityPageStateInterface {}\n\nexport interface EntityPageWidgetState {\n validate: () => Promise<{ isValid: boolean; values?: any }>;\n isDirty: boolean;\n}\n\nexport class EntityPageState<T, V extends FieldValues = FieldValues>\n implements EntityPageStateInterface\n{\n readonly fetch: EntityPageStateParams<T>['fetch'];\n readonly onSave: EntityPageStateParams<T, V>['onSave'];\n readonly saveSuccessToast?: EntityPageStateParams<T>['saveSuccessToast'];\n readonly saveErrorToast?: EntityPageStateParams<T>['saveErrorToast'];\n readonly transformEntityToCollectionItem: (entity: T) => any;\n\n _entity: T | null = null;\n private readonly _parentPageId?: string;\n private readonly _parentPath?: string;\n\n actionsBarConfig?: EntityPageStateParams<T>['actionsBarConfig'];\n\n readonly container: WixPatternsContainer;\n readonly reportBI: ReportBI;\n readonly bi: EntityPageStateBIReporter<T, V>;\n\n _routerState: WixPatternsRouterState | null = null;\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: EntityPageStateParams<T, V>) {\n this.fetch = params.fetch;\n this.onSave = params.onSave;\n this.saveSuccessToast = params.saveSuccessToast;\n this.saveErrorToast = params.saveErrorToast;\n this.formPage = new FormPageState<V>({ form: params.form });\n this._parentPageId = params.parentPageId;\n this.transformEntityToCollectionItem =\n params.transformEntityToCollectionItem || ((anEntity: T) => anEntity);\n this._parentPath = params.parentPath;\n\n this.container = params.container;\n\n this._routerState = params.routerState ?? null;\n\n if (this._routerState) {\n this._entity = this._routerState.currentState?._chosenEntity?.entity;\n }\n\n this.reportBI = this.container.createBILogger({\n componentType: 'Entity page',\n pageType: 'Entity',\n route: window.location.pathname,\n });\n\n this.bi = new EntityPageStateBIReporter({\n reportBI: this.reportBI,\n entityPageState: this,\n });\n this.bi.init();\n\n makeObservable(this, {\n handleSubmit: action,\n _entity: observable.ref,\n setEntity: action,\n isFormDirty: computed,\n _withinRouter: computed,\n });\n }\n\n init() {\n this._checkPageParams();\n const {\n formPage: { initTask },\n container,\n } = this;\n const { onBeforeUnload } = container;\n\n const onBeforeUnloadSubscription = onBeforeUnload?.(\n action((event) => {\n const { form } = this;\n if (form.formState.isSubmitSuccessful || !this.isFormDirty) {\n return;\n }\n event.preventDefault();\n this.bi.reportOnBeforeUnload();\n }),\n );\n\n initTask.runOnce(async () => {\n const [data] = await Promise.all([\n this.fetch(),\n container.initTask.status.promise,\n ]);\n\n this.setEntity(data.entity ?? null);\n this.bi.appLoaded?.();\n });\n\n return () => {\n onBeforeUnloadSubscription?.remove();\n };\n }\n\n retryFetch() {\n this.formPage.retryFetch();\n }\n\n setEntity(newEntity: T | null) {\n this._entity = newEntity;\n }\n\n get entity(): T | null {\n return this._entity;\n }\n\n get isFetching() {\n return this.formPage.isFetching;\n }\n\n get form() {\n return this.formPage.form;\n }\n\n set isSubmitSuccessful(flag: boolean) {\n this.formPage.isSubmitSuccessful = flag;\n }\n\n get isFormDirty() {\n return this.formPage.isDirty;\n }\n\n // backwards compatibility\n set _isFormDirty(val: boolean) {\n this.formPage._isFormDirty = val;\n }\n\n get _withinRouter() {\n return !!this._routerState;\n }\n\n onCancel() {\n this.bi.reportButtonClick({ ctaName: 'Cancel' });\n this.navigateToParent();\n }\n\n navigateToParent(updatedEntity?: any) {\n const entityStringKey = this._entity ? '_updatedEntity' : '_createdEntity';\n const entityObject = { [entityStringKey]: updatedEntity };\n\n if (this._withinRouter) {\n this._routerState!.navigate(this._parentPath!, { state: entityObject });\n } else {\n this.container.navigateTo!({\n pageId: this._parentPageId!,\n });\n }\n }\n\n _showErrorToast(err: any, e?: React.BaseSyntheticEvent) {\n const errorToast = this.saveErrorToast?.(err, {\n 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-entity-page-save-error-toast',\n message:\n message ??\n this.container.translate(\n err?.code === 'ERR_NETWORK'\n ? 'cairo.entityPage.saveError-offline.toast.description'\n : 'cairo.entityPage.saveError-technical.toast.description',\n ),\n action:\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-entity-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 { isValid, data: extraFields } = await this.formPage.validate();\n\n if (!isValid) {\n this.bi.reportButtonClick({ ctaName: 'Save', isValid: false });\n return;\n }\n\n const {\n form,\n formPage: { submitTask },\n bi,\n } = this;\n\n submitTask.run(async () => {\n let savedEntity: T | undefined;\n await form.handleSubmit(\n async () => {\n bi.reportButtonClick({ ctaName: 'Save', isValid: true });\n try {\n if (!this.isFetching) {\n const onSaveResult = await this.onSave({\n widgetsFormData: { ...extraFields },\n });\n savedEntity = onSaveResult?.updatedEntity;\n }\n this._showSuccessToast();\n } catch (err) {\n this._showErrorToast(err, e);\n this.container.errorMonitor.captureException(err);\n this.events.emit('saveError', err);\n form.setError('root.serverError', {}); // https://react-hook-form.com/docs/useform/seterror\n }\n },\n () => {\n bi.reportButtonClick({ ctaName: 'Save', isValid: false });\n }, // can be used to report validation errors\n )(e);\n\n if (!form.formState.isSubmitSuccessful) {\n return;\n }\n\n const transformedItem =\n savedEntity && this.transformEntityToCollectionItem\n ? this.transformEntityToCollectionItem(savedEntity)\n : savedEntity;\n this.navigateToParent(transformedItem);\n });\n await this.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 private _checkPageParams() {\n if (this._withinRouter) {\n if (this._parentPath === undefined) {\n throw new Error('parentPath was not defined in useEntityPage');\n }\n } else {\n if (this._parentPageId === undefined) {\n throw new Error('parentPageId was not defined in useEntityPage');\n }\n\n if (!this.container.navigateTo) {\n throw new Error('navigateTo was not defined in Patterns Provider');\n }\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_bexCore","require","_mobx","_EntityPageStateBIReporter","_events","EntityPageState","constructor","params","_defineProperty2","default","EventEmitter","fetch","onSave","saveSuccessToast","saveErrorToast","formPage","FormPageState","form","_parentPageId","parentPageId","transformEntityToCollectionItem","anEntity","_parentPath","parentPath","container","_routerState","routerState","_this$_routerState$cu","_entity","currentState","_chosenEntity","entity","reportBI","createBILogger","componentType","pageType","route","window","location","pathname","bi","EntityPageStateBIReporter","entityPageState","init","makeObservable","handleSubmit","action","observable","ref","setEntity","isFormDirty","computed","_withinRouter","_checkPageParams","initTask","onBeforeUnload","onBeforeUnloadSubscription","event","formState","isSubmitSuccessful","preventDefault","reportOnBeforeUnload","runOnce","_this$bi$appLoaded","_this$bi","data","Promise","all","status","promise","appLoaded","call","remove","retryFetch","newEntity","isFetching","flag","isDirty","_isFormDirty","val","onCancel","reportButtonClick","ctaName","navigateToParent","updatedEntity","entityStringKey","entityObject","navigate","state","navigateTo","pageId","_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","isValid","extraFields","validate","run","savedEntity","onSaveResult","widgetsFormData","errorMonitor","captureException","setError","transformedItem","Error","exports"],"sources":["../../../../src/state/EntityPage/EntityPageState.ts"],"sourcesContent":["import {\n FormPageState,\n ReportBI,\n WixPatternsContainer,\n ActionsBarConfig,\n} from '@wix/bex-core';\nimport { action, computed, makeObservable, observable } from 'mobx';\nimport { FieldValues } from 'react-hook-form';\nimport { EntityPageStateBIReporter } from './EntityPageStateBIReporter';\nimport { EventEmitter, TypedEmitter } from '@wix/bex-core/events';\nimport { WixPatternsRouterState } from '../WixPatternsRouterState';\n\ntype OnSaveParams = {\n widgetsFormData: { [key: string]: any };\n};\n\nexport interface EntityPageStateParams<T, V extends FieldValues = FieldValues> {\n /**\n * A function that fetches the entity data.\n * @returns a promise that resolves to an object containing the entity.\n */\n fetch: () => Promise<{ entity: T | undefined }>;\n\n /**\n * A function to handle the save action.\n * @returns promise that resolves to an object that contains a 'updatedEntity' object.\n */\n onSave: (params: OnSaveParams) => Promise<{ updatedEntity: T }>;\n\n /**\n * An optional object with an optional message, or it can directly get a string message.\n */\n saveSuccessToast?: { message?: string } | string;\n\n /**\n * An optional function to display an error toast message when a save operation fails.\n * @returns An object with 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 /**\n * An optional function to transform the updated entity data before it is passed to the collection page.\n * @param entity the updated entity.\n * @returns an object representing the entity in the collection page.\n */\n transformEntityToCollectionItem?: (entity: T) => any;\n\n 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 /**\n * A string representing the ID of the parent page.\n * Must be passed if not using Patterns Router\n */\n parentPageId?: string;\n\n /**\n * A string representing the path of the parent page.\n * Must be passed if using Patterns Router\n */\n parentPath?: string;\n\n /**\n * An object representing the router state\n */\n routerState?: WixPatternsRouterState | null;\n\n /**\n * An optional object to override the actions bar.\n */\n actionsBarConfig?: ActionsBarConfig;\n}\n\nexport interface EntityPageStateInterface {}\n\nexport interface EntityPageWidgetState {\n validate: () => Promise<{ isValid: boolean; values?: any }>;\n isDirty: boolean;\n}\n\nexport class EntityPageState<T, V extends FieldValues = FieldValues>\n implements EntityPageStateInterface\n{\n readonly fetch: EntityPageStateParams<T>['fetch'];\n readonly onSave: EntityPageStateParams<T, V>['onSave'];\n readonly saveSuccessToast?: EntityPageStateParams<T>['saveSuccessToast'];\n readonly saveErrorToast?: EntityPageStateParams<T>['saveErrorToast'];\n readonly transformEntityToCollectionItem: (entity: T) => any;\n\n _entity: T | null = null;\n private readonly _parentPageId?: string;\n private readonly _parentPath?: string;\n\n actionsBarConfig?: EntityPageStateParams<T>['actionsBarConfig'];\n\n readonly container: WixPatternsContainer;\n readonly reportBI: ReportBI;\n readonly bi: EntityPageStateBIReporter<T, V>;\n\n _routerState: WixPatternsRouterState | null = null;\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: EntityPageStateParams<T, V>) {\n this.fetch = params.fetch;\n this.onSave = params.onSave;\n this.saveSuccessToast = params.saveSuccessToast;\n this.saveErrorToast = params.saveErrorToast;\n this.formPage = new FormPageState<V>({ form: params.form });\n this._parentPageId = params.parentPageId;\n this.transformEntityToCollectionItem =\n params.transformEntityToCollectionItem || ((anEntity: T) => anEntity);\n this._parentPath = params.parentPath;\n\n this.container = params.container;\n\n this._routerState = params.routerState ?? null;\n\n if (this._routerState) {\n this._entity = this._routerState.currentState?._chosenEntity?.entity;\n }\n\n this.reportBI = this.container.createBILogger({\n componentType: 'Entity page',\n pageType: 'Entity',\n route: window.location.pathname,\n });\n\n this.bi = new EntityPageStateBIReporter({\n reportBI: this.reportBI,\n entityPageState: this,\n });\n this.bi.init();\n\n makeObservable(this, {\n handleSubmit: action,\n _entity: observable.ref,\n setEntity: action,\n isFormDirty: computed,\n _withinRouter: computed,\n });\n }\n\n init() {\n this._checkPageParams();\n const {\n formPage: { initTask },\n container,\n } = this;\n const { onBeforeUnload } = container;\n\n const onBeforeUnloadSubscription = onBeforeUnload?.(\n action((event: Event) => {\n const { form } = this;\n if (form.formState.isSubmitSuccessful || !this.isFormDirty) {\n return;\n }\n event.preventDefault();\n this.bi.reportOnBeforeUnload();\n }),\n );\n\n initTask.runOnce(async () => {\n const [data] = await Promise.all([\n this.fetch(),\n container.initTask.status.promise,\n ]);\n\n this.setEntity(data.entity ?? null);\n this.bi.appLoaded?.();\n });\n\n return () => {\n onBeforeUnloadSubscription?.remove();\n };\n }\n\n retryFetch() {\n this.formPage.retryFetch();\n }\n\n setEntity(newEntity: T | null) {\n this._entity = newEntity;\n }\n\n get entity(): T | null {\n return this._entity;\n }\n\n get isFetching() {\n return this.formPage.isFetching;\n }\n\n get form() {\n return this.formPage.form;\n }\n\n set isSubmitSuccessful(flag: boolean) {\n this.formPage.isSubmitSuccessful = flag;\n }\n\n get isFormDirty() {\n return this.formPage.isDirty;\n }\n\n // backwards compatibility\n set _isFormDirty(val: boolean) {\n this.formPage._isFormDirty = val;\n }\n\n get _withinRouter() {\n return !!this._routerState;\n }\n\n onCancel() {\n this.bi.reportButtonClick({ ctaName: 'Cancel' });\n this.navigateToParent();\n }\n\n navigateToParent(updatedEntity?: any) {\n const entityStringKey = this._entity ? '_updatedEntity' : '_createdEntity';\n const entityObject = { [entityStringKey]: updatedEntity };\n\n if (this._withinRouter) {\n this._routerState!.navigate(this._parentPath!, { state: entityObject });\n } else {\n this.container.navigateTo!({\n pageId: this._parentPageId!,\n });\n }\n }\n\n _showErrorToast(err: any, e?: React.BaseSyntheticEvent) {\n const errorToast = this.saveErrorToast?.(err, {\n 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-entity-page-save-error-toast',\n message:\n message ??\n this.container.translate(\n err?.code === 'ERR_NETWORK'\n ? 'cairo.entityPage.saveError-offline.toast.description'\n : 'cairo.entityPage.saveError-technical.toast.description',\n ),\n action:\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-entity-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 { isValid, data: extraFields } = await this.formPage.validate();\n\n if (!isValid) {\n this.bi.reportButtonClick({ ctaName: 'Save', isValid: false });\n return;\n }\n\n const {\n form,\n formPage: { submitTask },\n bi,\n } = this;\n\n submitTask.run(async () => {\n let savedEntity: T | undefined;\n await form.handleSubmit(\n async () => {\n bi.reportButtonClick({ ctaName: 'Save', isValid: true });\n try {\n if (!this.isFetching) {\n const onSaveResult = await this.onSave({\n widgetsFormData: { ...extraFields },\n });\n savedEntity = onSaveResult?.updatedEntity;\n }\n this._showSuccessToast();\n } catch (err) {\n this._showErrorToast(err, e);\n this.container.errorMonitor.captureException(err);\n this.events.emit('saveError', err);\n form.setError('root.serverError', {}); // https://react-hook-form.com/docs/useform/seterror\n }\n },\n () => {\n bi.reportButtonClick({ ctaName: 'Save', isValid: false });\n }, // can be used to report validation errors\n )(e);\n\n if (!form.formState.isSubmitSuccessful) {\n return;\n }\n\n const transformedItem =\n savedEntity && this.transformEntityToCollectionItem\n ? this.transformEntityToCollectionItem(savedEntity)\n : savedEntity;\n this.navigateToParent(transformedItem);\n });\n await this.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 private _checkPageParams() {\n if (this._withinRouter) {\n if (this._parentPath === undefined) {\n throw new Error('parentPath was not defined in useEntityPage');\n }\n } else {\n if (this._parentPageId === undefined) {\n throw new Error('parentPageId was not defined in useEntityPage');\n }\n\n if (!this.container.navigateTo) {\n throw new Error('navigateTo was not defined in Patterns Provider');\n }\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -28,7 +28,7 @@ class FoldersAndItemsCollectionsState {
28
28
  hasItemsOnlyActiveFilters: _mobx.computed,
29
29
  hasFoldersOnlyActiveFilters: _mobx.computed,
30
30
  showEmptyState: _mobx.computed,
31
- hasBulkSelectFolders: _mobx.computed
31
+ hasSelectedFolders: _mobx.computed
32
32
  });
33
33
  }
34
34
  get hasFoldersOnlyActiveFilters() {
@@ -94,7 +94,7 @@ class FoldersAndItemsCollectionsState {
94
94
  get query() {
95
95
  return this.items.query;
96
96
  }
97
- get hasBulkSelectFolders() {
97
+ get hasSelectedFolders() {
98
98
  return !!this.folders.bulkSelect.selectedIds.length;
99
99
  }
100
100
  init(initParams) {
@@ -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","hasBulkSelectFolders","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 hasBulkSelectFolders: 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 hasBulkSelectFolders() {\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
+ {"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":";;;;;;AAAA,IAAAA,QAAA,GAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AAEA,IAAAE,4BAAA,GAAAF,OAAA;AACA,IAAAG,OAAA,GAAAH,OAAA;AAwDO,MAAMI,iBAAiB,CAE9B;EAoBEC,WAAWA,CAACC,MAAqC,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,qBAb7B,IAAI;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,kBAQR,IAAIC,oBAAY,CAAC,CAAC;IAMlC,IAAI,CAACC,KAAK,GAAGJ,MAAM,CAACI,KAAK;IACzB,IAAI,CAACC,OAAO,GAAGL,MAAM,CAACM,MAAM;IAC5B,IAAI,CAACC,SAAS,GAAGP,MAAM,CAACQ,QAAQ;IAChC,IAAI,CAACC,gBAAgB,GAAGT,MAAM,CAACS,gBAAgB;IAC/C,IAAI,CAACC,cAAc,GAAGV,MAAM,CAACU,cAAc;IAC3C,IAAI,CAACC,QAAQ,GAAG,IAAIC,sBAAa,CAAI;MAAEC,IAAI,EAAEb,MAAM,CAACa;IAAK,CAAC,CAAC;IAE3D,IAAI,CAACC,SAAS,GAAGd,MAAM,CAACc,SAAS;IAEjC,IAAI,CAACC,QAAQ,GAAG,IAAI,CAACD,SAAS,CAACE,cAAc,CAAC;MAC5CC,aAAa,EAAE,eAAe;MAC9BC,QAAQ,EAAE,UAAU;MACpBC,KAAK,EAAEC,MAAM,CAACC,QAAQ,CAACC;IACzB,CAAC,CAAC;IAEF,IAAI,CAACC,EAAE,GAAG,IAAIC,wDAA2B,CAAC;MACxCT,QAAQ,EAAE,IAAI,CAACA,QAAQ;MACvBU,iBAAiB,EAAE;IACrB,CAAC,CAAC;IAEF,IAAI,CAACF,EAAE,CAACG,IAAI,CAAC,CAAC;IAEd,IAAAC,oBAAc,EAAC,IAAI,EAAE;MACnBC,YAAY,EAAEC,YAAM;MACpBC,SAAS,EAAEC,gBAAU,CAACC,GAAG;MACzBC,WAAW,EAAEJ,YAAM;MACnBK,OAAO,EAAEC;IACX,CAAC,CAAC;EACJ;EAEAT,IAAIA,CAAA,EAAG;IACL,MAAM;MACJf,QAAQ,EAAE;QAAEyB;MAAS,CAAC;MACtBtB;IACF,CAAC,GAAG,IAAI;IACR,MAAM;MAAEuB;IAAe,CAAC,GAAGvB,SAAS;IAEpC,MAAMwB,0BAA0B,GAAGD,cAAc,oBAAdA,cAAc,CAC/C,IAAAR,YAAM,EAAEU,KAAK,IAAK;MAChB,IAAI,CAAC,IAAI,CAACL,OAAO,EAAE;QACjB;MACF;MACAK,KAAK,CAACC,cAAc,CAAC,CAAC;MACtB,IAAI,CAACjB,EAAE,CAACkB,oBAAoB,CAAC,CAAC;IAChC,CAAC,CACH,CAAC;IAEDL,QAAQ,CAACM,OAAO,CAAC,YAAY;MAAA,IAAAC,kBAAA,EAAAC,QAAA;MAC3B,MAAM,CAACC,IAAI,CAAC,GAAG,MAAMC,OAAO,CAACC,GAAG,CAAC,CAC/B,IAAI,CAAC3C,KAAK,CAAC,CAAC,EACZU,SAAS,CAACsB,QAAQ,CAACY,MAAM,CAACC,OAAO,CAClC,CAAC;MAEF,IAAI,CAAChB,WAAW,CAACY,IAAI,CAACK,QAAQ,IAAI,IAAI,CAAC;MACvC,CAAAP,kBAAA,IAAAC,QAAA,OAAI,CAACrB,EAAE,EAAC4B,SAAS,aAAjBR,kBAAA,CAAAS,IAAA,CAAAR,QAAoB,CAAC;IACvB,CAAC,CAAC;IAEF,OAAO,MAAM;MACXN,0BAA0B,YAA1BA,0BAA0B,CAAEe,MAAM,CAAC,CAAC;IACtC,CAAC;EACH;EAEAC,UAAUA,CAAA,EAAG;IACX,IAAI,CAAC3C,QAAQ,CAAC2C,UAAU,CAAC,CAAC;EAC5B;EAEArB,WAAWA,CAACsB,WAAqB,EAAE;IACjC,IAAI,CAACzB,SAAS,GAAGyB,WAAW;EAC9B;EAEA,IAAIL,QAAQA,CAAA,EAAa;IACvB,OAAO,IAAI,CAACpB,SAAS;EACvB;EAEA,IAAI0B,UAAUA,CAAA,EAAG;IACf,OAAO,IAAI,CAAC7C,QAAQ,CAAC6C,UAAU;EACjC;EAEA,IAAI3C,IAAIA,CAAA,EAAG;IACT,OAAO,IAAI,CAACF,QAAQ,CAACE,IAAI;EAC3B;EAEA,IAAIqB,OAAOA,CAAA,EAAG;IACZ,OAAO,IAAI,CAACvB,QAAQ,CAACuB,OAAO;EAC9B;EAEA1B,QAAQA,CAAA,EAAG;IACT,IAAI,CAACe,EAAE,CAACkC,iBAAiB,CAAC;MAAEC,OAAO,EAAE;IAAS,CAAC,CAAC;IAChD,IAAI,CAACnD,SAAS,CAAC,CAAC;EAClB;EAEAoD,eAAeA,CAACC,GAAQ,EAAEC,CAA4B,EAAE;IAAA,IAAAC,oBAAA,EAAAC,qBAAA,EAAAC,eAAA;IACtD,MAAMC,UAAU,IAAAH,oBAAA,GAAG,IAAI,CAACpD,cAAc,qBAAnBoD,oBAAA,CAAAV,IAAA,KAAI,EAAkBQ,GAAG,EAAE;MAC5CM,KAAK,EAAEA,CAAA,KAAM,IAAI,CAACtC,YAAY,CAACiC,CAAC;IAClC,CAAC,CAAC;IACF,MAAMM,OAAO,GACX,OAAOF,UAAU,KAAK,QAAQ,GAAGA,UAAU,GAAGA,UAAU,oBAAVA,UAAU,CAAEE,OAAO;IACnE,MAAMC,YAAY,GAChB,OAAOH,UAAU,KAAK,QAAQ,GAAG,IAAI,GAAG,CAAAA,UAAU,oBAAVA,UAAU,CAAEI,QAAQ,MAAK,KAAK;IACxE,MAAMxC,MAAM,GACV,OAAOoC,UAAU,KAAK,QAAQ,GAAGK,SAAS,GAAGL,UAAU,oBAAVA,UAAU,CAAEpC,MAAM;IAEjE,CAAAkC,qBAAA,IAAAC,eAAA,OAAI,CAAClD,SAAS,EAACyD,SAAS,aAAxBR,qBAAA,CAAAX,IAAA,CAAAY,eAAA,EAA2B;MACzBQ,IAAI,EAAE,OAAO;MACbC,MAAM,EAAE,sCAAsC;MAC9CN,OAAO,EACLA,OAAO,IACP,IAAI,CAACrD,SAAS,CAAC4D,SAAS,CACtB,CAAAd,GAAG,oBAAHA,GAAG,CAAEe,IAAI,MAAK,aAAa,GACvB,sDAAsD,GACtD,wDACN,CAAC;MACH9C,MAAM,EACJA,MAAM,IAAIuC,YAAY,GAClB;QACEQ,MAAM,EAAE,MAAM;QACdC,IAAI,EACF,CAAAhD,MAAM,oBAANA,MAAM,CAAEgD,IAAI,KAAI,IAAI,CAAC/D,SAAS,CAAC4D,SAAS,CAAC,mBAAmB,CAAC;QAC/DI,OAAO,EAAEA,CAAA,KAAM;UACb,IAAIjD,MAAM,YAANA,MAAM,CAAEiD,OAAO,EAAE;YACnBjD,MAAM,CAACiD,OAAO,CAAC,CAAC;UAClB,CAAC,MAAM;YACL,IAAI,CAACvD,EAAE,CAACwD,kBAAkB,CAAC,CAAC;YAC5B,IAAI,CAACnD,YAAY,CAACiC,CAAC,CAAC;UACtB;QACF,CAAC;QACDmB,kBAAkB,EAAE;MACtB,CAAC,GACDV;IACR,CAAC,CAAC;EACJ;EAEAW,iBAAiBA,CAAA,EAAG;IAAA,IAAAC,qBAAA,EAAAC,sBAAA,EAAAC,gBAAA;IAClB,MAAMjB,OAAO,GACX,OAAO,IAAI,CAAC1D,gBAAgB,KAAK,QAAQ,GACrC,IAAI,CAACA,gBAAgB,IAAAyE,qBAAA,GACrB,IAAI,CAACzE,gBAAgB,qBAArByE,qBAAA,CAAuBf,OAAO;IAEpC,CAAAgB,sBAAA,IAAAC,gBAAA,OAAI,CAACtE,SAAS,EAACyD,SAAS,aAAxBY,sBAAA,CAAA/B,IAAA,CAAAgC,gBAAA,EAA2B;MACzBZ,IAAI,EAAE,SAAS;MACfC,MAAM,EAAE,wCAAwC;MAChDN,OAAO,EACLA,OAAO,IAAI,IAAI,CAACrD,SAAS,CAAC4D,SAAS,CAAC,gCAAgC;IACxE,CAAC,CAAC;EACJ;EAEA,MAAM9C,YAAYA,CAACiC,CAA4B,EAAE;IAC/C,IAAI,IAAI,CAAClD,QAAQ,CAAC0E,UAAU,CAACrC,MAAM,CAACsC,SAAS,EAAE;MAC7C;IACF;IAEA,IAAI,CAACC,MAAM,CAACC,IAAI,CAAC,MAAM,CAAC;IAExB,MAAM;MACJ3E,IAAI;MACJF,QAAQ,EAAE;QAAE0E;MAAW,CAAC;MACxB9D;IACF,CAAC,GAAG,IAAI;IAER8D,UAAU,CAACI,GAAG,CAAC,YAAY;MACzB,MAAM5E,IAAI,CAACe,YAAY,CACrB,YAAY;QACVL,EAAE,CAACkC,iBAAiB,CAAC;UAAEC,OAAO,EAAE,MAAM;UAAEgC,OAAO,EAAE;QAAK,CAAC,CAAC;QACxD,IAAI;UACF,IAAI,CAAC,IAAI,CAAClC,UAAU,EAAE;YACpB,MAAM,IAAI,CAACnD,OAAO,CAAC,CAAC;YACpBQ,IAAI,CAAC8E,KAAK,CAAC9E,IAAI,CAAC+E,SAAS,CAAC,CAAC,CAAC;UAC9B;UACA,IAAI,CAACX,iBAAiB,CAAC,CAAC;QAC1B,CAAC,CAAC,OAAOrB,GAAG,EAAE;UACZ,IAAI,CAACD,eAAe,CAACC,GAAG,EAAEC,CAAC,CAAC;UAC5B,IAAI,CAAC/C,SAAS,CAAC+E,YAAY,CAACC,gBAAgB,CAAClC,GAAG,CAAC;UACjD,IAAI,CAAC2B,MAAM,CAACC,IAAI,CAAC,WAAW,EAAE5B,GAAG,CAAC;UAClC/C,IAAI,CAACkF,QAAQ,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QACzC;MACF,CAAC,EACD,MAAM;QACJxE,EAAE,CAACkC,iBAAiB,CAAC;UAAEC,OAAO,EAAE,MAAM;UAAEgC,OAAO,EAAE;QAAM,CAAC,CAAC;MAC3D,CAAC,CAAE;MACL,CAAC,CAAC7B,CAAC,CAAC;IACN,CAAC,CAAC;IAEF,MAAM,IAAI,CAAClD,QAAQ,CAAC0E,UAAU,CAACrC,MAAM,CAACC,OAAO;EAC/C;EAEA,IAAIb,QAAQA,CAAA,EAAG;IACb,OAAO,IAAI,CAACzB,QAAQ,CAACyB,QAAQ;EAC/B;EAEA,IAAIiD,UAAUA,CAAA,EAAG;IACf,OAAO,IAAI,CAAC1E,QAAQ,CAAC0E,UAAU;EACjC;AACF;AAACW,OAAA,CAAAlG,iBAAA,GAAAA,iBAAA","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":[]}
@@ -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","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) => {\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":[]}
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":";;;;;;AAAA,IAAAA,QAAA,GAAAC,OAAA;AAYA,IAAAC,KAAA,GAAAD,OAAA;AAOA,IAAAE,KAAA,GAAAF,OAAA;AAGO,MAAMG,UAAU,GAAAC,OAAA,CAAAD,UAAA,GAAG,GAAG;AACtB,MAAME,0BAA0B,GAAAD,OAAA,CAAAC,0BAAA,GAAG,IAAI;AAoBvC,MAAMC,wBAAwB,CAA0B;EAc7DC,WAAWA,CAACC,MAA4C,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,sCARpB,IAAIC,8BAAqB,CAAC,CAAC;IAAA,IAAAF,gBAAA,CAAAC,OAAA,eAE1C,IAAI;IAAA,IAAAD,gBAAA,CAAAC,OAAA,mBACM,IAAI;IAAA,IAAAD,gBAAA,CAAAC,OAAA,gCACd,KAAK;IAAA,IAAAD,gBAAA,CAAAC,OAAA,mCACsC,IAAI;IAAA,IAAAD,gBAAA,CAAAC,OAAA,6BACpB,IAAI;IAAA,IAAAD,gBAAA,CAAAC,OAAA,qCA+L1B,MAAM;MAChC,IAAI,CAACE,0BAA0B,CAACC,KAAK,CAACC,IAAI,CAAC,CAAC;IAC9C,CAAC;IAAA,IAAAL,gBAAA,CAAAC,OAAA,sCAE4B,MAAM;MACjC,IAAI,CAACE,0BAA0B,CAACC,KAAK,CAACE,KAAK,CAAC,CAAC;MAC7C,IAAI,IAAI,CAACC,eAAe,EAAE;QAAA,IAAAC,qBAAA,EAAAC,eAAA;QACxB,IAAI,CAACC,iBAAiB,GACpB,EAAAF,qBAAA,IAAAC,eAAA,OAAI,CAACE,SAAS,EAACC,SAAS,qBAAxBJ,qBAAA,CAAAK,IAAA,CAAAJ,eAAA,EAA2B;UACzBK,IAAI,EAAE,UAAU;UAChBC,OAAO,EAAE,IAAI,CAACJ,SAAS,CAACK,SAAS,CAC/B,8CACF,CAAC;UACDC,MAAM,EAAE;YACNC,IAAI,EAAE,IAAI,CAACP,SAAS,CAACK,SAAS,CAC5B,kDACF,CAAC;YACDG,OAAO,EAAE,MAAAA,CAAA,KAAY;cACnB,IAAI,CAACC,yBAAyB,CAAC,CAAC;YAClC,CAAC;YACDC,kBAAkB,EAAE;UACtB,CAAC;UACDC,OAAO,EAAE,MAAM;UACfC,MAAM,EAAE;QACV,CAAC,CAAC,KAAI,IAAI;MACd;IACF,CAAC;IAtNC,MAAM;MACJC,eAAe;MACfC,iBAAiB;MACjBd,SAAS;MACTe,cAAc;MACdC;IACF,CAAC,GAAG5B,MAAM;IACV,IAAI,CAACyB,eAAe,GAAGA,eAAe;IACtC,IAAI,CAACC,iBAAiB,GAAGA,iBAAiB;IAC1C,IAAI,CAACd,SAAS,GAAGA,SAAS;IAC1B,IAAI,CAACe,cAAc,GAAGA,cAAc;IACpC,IAAI,CAACC,mBAAmB,GAAGA,mBAAmB;IAE9C,IAAAC,oBAAc,EAAC,IAAI,EAAE;MACnBC,GAAG,EAAEC,gBAAU,CAACC,GAAG;MACnBC,oBAAoB,EAAEF,gBAAU;MAChCG,IAAI,EAAEhB,YAAM;MACZiB,YAAY,EAAEjB,YAAM;MACpBkB,aAAa,EAAElB,YAAM;MACrBmB,kBAAkB,EAAEC,cAAQ;MAC5BC,cAAc,EAAED,cAAQ;MACxBE,WAAW,EAAEF,cAAQ;MACrBG,UAAU,EAAEH,cAAQ;MACpB9B,eAAe,EAAE8B,cAAQ;MACzBI,sBAAsB,EAAEJ;IAC1B,CAAC,CAAC;EACJ;EAEAJ,IAAIA,CAAA,EAAG;IACL,MAAM;MAAES;IAAe,CAAC,GAAG,IAAI,CAAC/B,SAAS;IACzC,MAAMgC,0BAA0B,GAAGD,cAAc,oBAAdA,cAAc,CAC/C,IAAAzB,YAAM,EAAE2B,KAAY,IAAK;MACvB,IAAI,IAAI,CAACZ,oBAAoB,EAAE;QAC7BY,KAAK,CAACC,cAAc,CAAC,CAAC;MACxB;IACF,CAAC,CACH,CAAC;IACD,MAAMC,SAAS,GAAG,CAChB,MAAM;MACJH,0BAA0B,YAA1BA,0BAA0B,CAAEI,MAAM,CAAC,CAAC;IACtC,CAAC,EACD,MAAM;MACJ,IAAI,IAAI,CAACzB,OAAO,EAAE;QAChB0B,YAAY,CAAC,IAAI,CAAC1B,OAAO,CAAC;MAC5B;IACF,CAAC,CACF;IAED,OAAO,MAAM;MACXwB,SAAS,CAACG,OAAO,CAAEC,QAAQ,IAAKA,QAAQ,CAAC,CAAC,CAAC;IAC7C,CAAC;EACH;EAEA,MAAMhB,YAAYA,CAAC;IACjBiB,iBAAiB;IACjBC;EAIF,CAAC,EAAE;IACD,IAAI,CAACpB,oBAAoB,GAAG,IAAI;IAChC,MAAM;MAAEqB,UAAU;MAAEC;IAAO,CAAC,GAAG,IAAI,CAAC9B,eAAe;IACnD,MAAM;MAAE+B,WAAW;MAAEC,cAAc;MAAEC;IAAgB,CAAC,GAAGJ,UAAU;IAEnE,MAAMtD,MAAM,GAAG;MACbwD,WAAW;MACXC,cAAc;MACdC,eAAe;MACfC,KAAK,EAAEJ,MAAM,CAACK,WAAW;MACzBC,UAAU,EAAE;QAAEC,WAAW,EAAE;UAAEC,MAAM,EAAEX;QAAkB;MAAE,CAAC;MAC1DY,YAAY,EAAE;QAAEF,WAAW,EAAE;UAAEC,MAAM,EAAEV;QAAoB;MAAE;IAC/D,CAAC;IAED,MAAM,IAAI,CAACY,iBAAiB,CAACjE,MAAM,CAAC;EACtC;EAEA,MAAMiE,iBAAiBA,CAACjE,MAAuC,EAAE;IAC/D,IAAI,CAAC,IAAI,CAAC4B,mBAAmB,EAAE;MAC7B,MAAM,IAAIsC,KAAK,CACb,wEACF,CAAC;IACH;IAEA,IAAI,CAACC,uBAAuB,GAAGnE,MAAM;IACrC,MAAM;MAAEoE;IAAM,CAAC,GAAG,MAAM,IAAI,CAACxC,mBAAmB,CAAC5B,MAAM,CAAC;IACxD,IAAI,CAACI,0BAA0B,CAACC,KAAK,CAACC,IAAI,CAAC,CAAC;IAC5C,MAAM,IAAI,CAAC8B,aAAa,CAACgC,KAAK,CAAC;EACjC;EAEA,MAAMhC,aAAaA,CAACgC,KAAa,EAAE;IACjC,IAAI;MACF,MAAM;QACJC,IAAI,EAAE;UAAEvC;QAAI;MACd,CAAC,GAAG,MAAM,IAAI,CAAClB,SAAS,CAAC0D,UAAU,CAACC,OAAO,CAAC,IAAAC,iBAAW,EAAC;QAAEJ;MAAM,CAAC,CAAC,CAAC;MACnE,IAAAK,iBAAW,EAAC,MAAM;QAChB,IAAI,CAAC3C,GAAG,GAAGA,GAAe;MAC5B,CAAC,CAAC;IACJ,CAAC,CAAC,OAAO4C,KAAK,EAAE;MACdC,OAAO,CAACD,KAAK,CAAC,0BAA0B,EAAEA,KAAK,CAAC;IAClD;IAEA,IAAAD,iBAAW,EAAC,MAAM;MAChB,IAAI,IAAI,CAACjE,eAAe,EAAE;QACxB,IAAI,CAACe,OAAO,GAAGqD,UAAU,CAAC,MAAM;UAC9B,IAAAH,iBAAW,EAAC,MAAM,IAAI,CAACrC,aAAa,CAACgC,KAAK,CAAC,CAAC;QAC9C,CAAC,EAAEzE,UAAU,CAAC;QACd;MACF;MACA,IAAI,IAAI,CAAC8C,UAAU,EAAE;QACnB,IAAI,CAAClB,OAAO,GAAGqD,UAAU,CAAC,MAAM;UAC9B,IAAAH,iBAAW,EAAC,MAAM,IAAI,CAACI,YAAY,CAAC,CAAC,CAAC;QACxC,CAAC,EAAEhF,0BAA0B,CAAC;MAChC;IACF,CAAC,CAAC;EACJ;EAEAgF,YAAYA,CAAA,EAAG;IACb,MAAMC,oBAAoB,GAAG,IAAI,CAACX,uBAAuB;IAEzD,IAAI,IAAI,CAAC5B,cAAc,EAAE;MACvB,IAAI,CAACwC,gBAAgB,CAACD,oBAAoB,CAAC;IAC7C;IAEA,IAAI,CAACE,gBAAgB,CAAC,CAAC;EACzB;EAEAD,gBAAgBA,CACdD,oBAA4D,EAC5D;IAAA,IAAAG,SAAA;IACA,MAAMC,SAAS,IAAAD,SAAA,GAAG,IAAI,CAACnD,GAAG,cAAAmD,SAAA,GAARA,SAAA,CAAUE,MAAM,qBAAhBF,SAAA,CAAkBC,SAAS;IAC7C,IAAIA,SAAS,EAAE;MACb,IAAI,CAACE,uBAAuB,CAAC;QAAEF,SAAS;QAAEJ;MAAqB,CAAC,CAAC;IACnE;IACA,IAAI,CAACO,iCAAiC,CAAC,CAAC;IACxC,IAAI,CAACC,iBAAiB,CAAC,CAAC;EAC1B;EAEAN,gBAAgBA,CAAA,EAAG;IAAA,IAAAO,qBAAA;IACjB,IAAI,CAACzD,GAAG,GAAG,IAAI;IACf,IAAI,CAACqC,uBAAuB,GAAG,IAAI;IACnC,IAAI,CAAClC,oBAAoB,GAAG,KAAK;IACjC,CAAAsD,qBAAA,OAAI,CAAC5E,iBAAiB,aAAtB4E,qBAAA,CAAwBvC,MAAM,CAAC,CAAC;IAChC,IAAI,CAACrC,iBAAiB,GAAG,IAAI;IAC7B,IAAI,CAAC6E,0BAA0B,CAAC,CAAC;EACnC;EAEAJ,uBAAuBA,CAAC;IACtBF,SAAS;IACTJ;EAIF,CAAC,EAAE;IAAA,IAAAW,sBAAA,EAAAC,gBAAA;IACD,CAAAD,sBAAA,IAAAC,gBAAA,OAAI,CAAC9E,SAAS,EAACC,SAAS,aAAxB4E,sBAAA,CAAA3E,IAAA,CAAA4E,gBAAA,EAA2B;MACzB3E,IAAI,EAAE,SAAS;MACfC,OAAO,EAAE,IAAI,CAACJ,SAAS,CAACK,SAAS,CAC/B,uCAAuC,EACvC;QAAE0E,KAAK,EAAET;MAAU,CACrB,CAAC;MACDhE,MAAM,EAAE;QACNC,IAAI,EAAE,IAAI,CAACP,SAAS,CAACK,SAAS,CAC5B,2CACF,CAAC;QACDG,OAAO,EAAE,MAAAA,CAAA,KAAY;UACnB,IAAI0D,oBAAoB,EAAE;YACxB,MAAM,IAAI,CAACb,iBAAiB,CAACa,oBAAoB,CAAC;UACpD;QACF,CAAC;QACDxD,kBAAkB,EAAE;MACtB,CAAC;MACDE,MAAM,EAAE;IACV,CAAC,CAAC;EACJ;EAEA6D,iCAAiCA,CAAA,EAAG;IAAA,IAAAO,sBAAA,EAAAC,gBAAA;IAClC,CAAAD,sBAAA,IAAAC,gBAAA,OAAI,CAACjF,SAAS,EAACC,SAAS,aAAxB+E,sBAAA,CAAA9E,IAAA,CAAA+E,gBAAA,EAA2B;MACzB9E,IAAI,EAAE,SAAS;MACfC,OAAO,EAAE,IAAI,CAACJ,SAAS,CAACK,SAAS,CAC/B,yCACF,CAAC;MACDO,MAAM,EAAE;IACV,CAAC,CAAC;EACJ;EAEA8D,iBAAiBA,CAAA,EAAG;IAClB,IAAI,CAAC7D,eAAe,CAACqE,eAAe,CAAC,CAAC;EACxC;EA8BA,IAAIvD,cAAcA,CAAA,EAAG;IAAA,IAAAwD,UAAA;IACnB,OAAO,EAAAA,UAAA,OAAI,CAACjE,GAAG,qBAARiE,UAAA,CAAUC,MAAM,MAAK,UAAU;EACxC;EAEA,IAAIxD,WAAWA,CAAA,EAAG;IAAA,IAAAyD,UAAA;IAChB,OAAO,EAAAA,UAAA,OAAI,CAACnE,GAAG,qBAARmE,UAAA,CAAUD,MAAM,MAAK,QAAQ;EACtC;EAEA,IAAIvD,UAAUA,CAAA,EAAG;IACf,OAAO,IAAI,CAACF,cAAc,IAAI,IAAI,CAACC,WAAW;EAChD;EAEA,IAAIhC,eAAeA,CAAA,EAAG;IAAA,IAAA0F,UAAA,EAAAC,UAAA;IACpB,OACE,EAAAD,UAAA,OAAI,CAACpE,GAAG,qBAARoE,UAAA,CAAUF,MAAM,MAAK,YAAY,IAAI,EAAAG,UAAA,OAAI,CAACrE,GAAG,qBAARqE,UAAA,CAAUH,MAAM,MAAK,aAAa;EAE3E;EAEA,IAAI3D,kBAAkBA,CAAA,EAAG;IACvB,OAAO,CAAC,CAAC,IAAI,CAACT,mBAAmB;EACnC;EAEA,IAAIc,sBAAsBA,CAAA,EAAG;IAAA,IAAA0D,gBAAA,EAAAC,iBAAA,EAAAC,UAAA;IAC3B,IAAI,CAAC,IAAI,CAACxE,GAAG,EAAE;MACb,OAAO,CAAC;IACV;IAEA,MAAMyE,wBAAwB,GAC5B,CAAC,EAAAH,gBAAA,OAAI,CAACtE,GAAG,CAACqD,MAAM,qBAAfiB,gBAAA,CAAiBI,YAAY,KAAI,CAAC,KAAK,EAAAH,iBAAA,OAAI,CAACvE,GAAG,CAACqD,MAAM,qBAAfkB,iBAAA,CAAiBnB,SAAS,KAAI,CAAC,CAAC;IAC1E,MAAMuB,uBAAuB,GAC3B,EAAAH,UAAA,OAAI,CAACxE,GAAG,cAAAwE,UAAA,GAARA,UAAA,CAAUnB,MAAM,qBAAhBmB,UAAA,CAAkBX,KAAK,KACvB,IAAI,CAAClE,eAAe,CAAC6B,UAAU,CAACoD,oBAAoB;IAEtD,OAAOC,IAAI,CAACC,KAAK,CACf,GAAG,IAAIL,wBAAwB,GAAGE,uBAAuB,CAC3D,CAAC;EACH;AACF;AAAC7G,OAAA,CAAAE,wBAAA,GAAAA,wBAAA","ignoreList":[]}
@@ -2,7 +2,7 @@
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
4
  exports.__esModule = true;
5
- exports.TagsBulkAssignPopoverState = exports.MAX_SELECTED_ENTITIES_FOR_BULK_ASSIGN_SYNC = void 0;
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.shouldlUseBulkSync) {
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.shouldlUseBulkSync) {
304
+ if (this.bulkAssignSyncState.canUseBulkSync) {
313
305
  return true;
314
306
  }
315
307