@wix/bex-core 2.7.0 → 2.8.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 (255) hide show
  1. package/dist/cjs/InMemoryBackend/InMemoryBackend.js.map +1 -1
  2. package/dist/cjs/InMemoryBackend/index.js.map +1 -1
  3. package/dist/cjs/assets/locale/messages_uk.json +2 -2
  4. package/dist/cjs/assets/locale/messages_visuale2e.json +3 -0
  5. package/dist/cjs/exports/InMemoryBackend.js.map +1 -1
  6. package/dist/cjs/exports/bi/index.js.map +1 -1
  7. package/dist/cjs/exports/events.js.map +1 -1
  8. package/dist/cjs/exports/history.js.map +1 -1
  9. package/dist/cjs/exports/mobx.js.map +1 -1
  10. package/dist/cjs/exports/react.js.map +1 -1
  11. package/dist/cjs/exports/testkit/client.js.map +1 -1
  12. package/dist/cjs/exports/testkit/internal.js.map +1 -1
  13. package/dist/cjs/exports/testkit/testkit.js.map +1 -1
  14. package/dist/cjs/exports/util.js.map +1 -1
  15. package/dist/cjs/hooks/collectionConfig.js.map +1 -1
  16. package/dist/cjs/hooks/collectionConfigPartials.js.map +1 -1
  17. package/dist/cjs/hooks/createCollection.js.map +1 -1
  18. package/dist/cjs/hooks/createCollectionConfig.js.map +1 -1
  19. package/dist/cjs/hooks/index.js.map +1 -1
  20. package/dist/cjs/hooks/paginationModeConfig.js.map +1 -1
  21. package/dist/cjs/hooks/useAmbassadorCollection.js.map +1 -1
  22. package/dist/cjs/hooks/useCollection/index.js.map +1 -1
  23. package/dist/cjs/hooks/useCollection/useCollection.js.map +1 -1
  24. package/dist/cjs/hooks/useCollectionPageState.js.map +1 -1
  25. package/dist/cjs/hooks/useEmptyStateTexts.js.map +1 -1
  26. package/dist/cjs/hooks/useExport.js.map +1 -1
  27. package/dist/cjs/hooks/useExportConfig.js.map +1 -1
  28. package/dist/cjs/hooks/useOptimisticActions.js.map +1 -1
  29. package/dist/cjs/hooks/usePicker.js.map +1 -1
  30. package/dist/cjs/index.js.map +1 -1
  31. package/dist/cjs/mocks/PartialWindowMock.js.map +1 -1
  32. package/dist/cjs/mocks/partialLodashMock.js.map +1 -1
  33. package/dist/cjs/model/actionMove.js.map +1 -1
  34. package/dist/cjs/model/arrayField.js.map +1 -1
  35. package/dist/cjs/model/collectionEvents.js.map +1 -1
  36. package/dist/cjs/model/commonTypes.js.map +1 -1
  37. package/dist/cjs/model/computedQuery/computedQuery.js.map +1 -1
  38. package/dist/cjs/model/computedQuery/index.js.map +1 -1
  39. package/dist/cjs/model/computedResult.js.map +1 -1
  40. package/dist/cjs/model/dataCapsule.js.map +1 -1
  41. package/dist/cjs/model/dataResultRaw/dataResultRaw.js.map +1 -1
  42. package/dist/cjs/model/dataResultRaw/index.js.map +1 -1
  43. package/dist/cjs/model/fetchDataFn.js.map +1 -1
  44. package/dist/cjs/model/filter.js.map +1 -1
  45. package/dist/cjs/model/fqdn.js.map +1 -1
  46. package/dist/cjs/model/httpClient.js.map +1 -1
  47. package/dist/cjs/model/index.js.map +1 -1
  48. package/dist/cjs/model/keyedItem.js.map +1 -1
  49. package/dist/cjs/model/queryOptions.js.map +1 -1
  50. package/dist/cjs/model/queryResult.js.map +1 -1
  51. package/dist/cjs/model/queryResultStatus.js.map +1 -1
  52. package/dist/cjs/model/queryStatus.js.map +1 -1
  53. package/dist/cjs/model/taskStatus.js.map +1 -1
  54. package/dist/cjs/model/toast.js.map +1 -1
  55. package/dist/cjs/model/wixPatternsEnvironment.js.map +1 -1
  56. package/dist/cjs/model/wixPatternsEssentials.js.map +1 -1
  57. package/dist/cjs/model/wixPatternsInitialProps.js.map +1 -1
  58. package/dist/cjs/providers/CairoProvider/CairoProvider.js +1 -1
  59. package/dist/cjs/providers/CairoProvider/CairoProvider.js.map +1 -1
  60. package/dist/cjs/providers/CairoProvider/index.js.map +1 -1
  61. package/dist/cjs/providers/CollectionContext.js.map +1 -1
  62. package/dist/cjs/providers/CollectionPageContext.js.map +1 -1
  63. package/dist/cjs/providers/FormWidgetContext.js.map +1 -1
  64. package/dist/cjs/providers/PageContext.js.map +1 -1
  65. package/dist/cjs/providers/WixPatternsContainerOverridesContext.js.map +1 -1
  66. package/dist/cjs/providers/WixPatternsContainerProvider/WixPatternsContainerProvider.js.map +1 -1
  67. package/dist/cjs/providers/WixPatternsContainerProvider/index.js.map +1 -1
  68. package/dist/cjs/providers/WixPatternsInitialPropsProvider.js.map +1 -1
  69. package/dist/cjs/providers/createContext.js.map +1 -1
  70. package/dist/cjs/providers/index.js.map +1 -1
  71. package/dist/cjs/services/AccountPreferencesMergeStrategy.js.map +1 -1
  72. package/dist/cjs/services/AccountPreferencesStrategy.js.map +1 -1
  73. package/dist/cjs/services/AppSettingsCapsule.js.map +1 -1
  74. package/dist/cjs/services/DataCapsuleMergeStrategy.js.map +1 -1
  75. package/dist/cjs/services/ModalLayoutProps.js.map +1 -1
  76. package/dist/cjs/services/MonitorLogger.js.map +1 -1
  77. package/dist/cjs/services/WixPatternsError.js.map +1 -1
  78. package/dist/cjs/services/WixPatternsErrorCode.js.map +1 -1
  79. package/dist/cjs/services/cairoMonitor.js.map +1 -1
  80. package/dist/cjs/services/cairoTranslations.js.map +1 -1
  81. package/dist/cjs/services/createAccountComponentSettings.js.map +1 -1
  82. package/dist/cjs/services/createAppSettingsCapsule.js.map +1 -1
  83. package/dist/cjs/services/createComponentSettings.js.map +1 -1
  84. package/dist/cjs/services/dataExtensionService.js.map +1 -1
  85. package/dist/cjs/services/environment.js.map +1 -1
  86. package/dist/cjs/services/experiments.js.map +1 -1
  87. package/dist/cjs/services/fetchTranslations.js.map +1 -1
  88. package/dist/cjs/services/fetchTranslationsPreBundled.js.map +1 -1
  89. package/dist/cjs/services/focusManager.js.map +1 -1
  90. package/dist/cjs/services/getErrorMonitorCompat.js.map +1 -1
  91. package/dist/cjs/services/history.js.map +1 -1
  92. package/dist/cjs/services/index.js.map +1 -1
  93. package/dist/cjs/services/mapGuidComponentIdToNonGuid.js.map +1 -1
  94. package/dist/cjs/services/navigationManager.js +17 -4
  95. package/dist/cjs/services/navigationManager.js.map +1 -1
  96. package/dist/cjs/services/onlineManager.js.map +1 -1
  97. package/dist/cjs/services/partialLodash.js.map +1 -1
  98. package/dist/cjs/services/partialWindow.js.map +1 -1
  99. package/dist/cjs/services/replaceSearchParamsWith.js.map +1 -1
  100. package/dist/cjs/services/reportBi.js.map +1 -1
  101. package/dist/cjs/services/translations.js.map +1 -1
  102. package/dist/cjs/services/translationsImportsMap.js +1 -1
  103. package/dist/cjs/services/translationsImportsMap.js.map +1 -1
  104. package/dist/cjs/state/AppsState.js +100 -0
  105. package/dist/cjs/state/AppsState.js.map +1 -0
  106. package/dist/cjs/state/ArrayFilterState/ArrayFilterState.js.map +1 -1
  107. package/dist/cjs/state/ArrayFilterState/index.js.map +1 -1
  108. package/dist/cjs/state/BeforeUnloadCompatState.js.map +1 -1
  109. package/dist/cjs/state/BulkActionModalState.js.map +1 -1
  110. package/dist/cjs/state/BulkSelectState.js.map +1 -1
  111. package/dist/cjs/state/CollectionBIReporter.js.map +1 -1
  112. package/dist/cjs/state/CollectionOptimisticActions.js.map +1 -1
  113. package/dist/cjs/state/CollectionOptimisticActionsState.js.map +1 -1
  114. package/dist/cjs/state/CollectionOptimisticExecutor.js.map +1 -1
  115. package/dist/cjs/state/CollectionOptimisticHelpers.js.map +1 -1
  116. package/dist/cjs/state/CollectionOptimisticPatch.js.map +1 -1
  117. package/dist/cjs/state/CollectionOptimisticProcessor.js.map +1 -1
  118. package/dist/cjs/state/CollectionOptimisticSequenceExecutor.js.map +1 -1
  119. package/dist/cjs/state/CollectionPageState.js.map +1 -1
  120. package/dist/cjs/state/CollectionState.js.map +1 -1
  121. package/dist/cjs/state/ConditionalModalState.js.map +1 -1
  122. package/dist/cjs/state/CustomFieldModalBiReporter.js.map +1 -1
  123. package/dist/cjs/state/CustomFieldModalState.js.map +1 -1
  124. package/dist/cjs/state/CustomFieldsViewWidgetState.js +34 -1
  125. package/dist/cjs/state/CustomFieldsViewWidgetState.js.map +1 -1
  126. package/dist/cjs/state/CustomFilterState/CustomFilterState.js.map +1 -1
  127. package/dist/cjs/state/CustomFilterState/index.js.map +1 -1
  128. package/dist/cjs/state/DataExtension/DataExtensionField.js.map +1 -1
  129. package/dist/cjs/state/DataExtensionState.js +16 -7
  130. package/dist/cjs/state/DataExtensionState.js.map +1 -1
  131. package/dist/cjs/state/DataExtensionStateBIReporter.js.map +1 -1
  132. package/dist/cjs/state/ExportJobState.js.map +1 -1
  133. package/dist/cjs/state/ExportState.js.map +1 -1
  134. package/dist/cjs/state/ExportStateBIReporter.js.map +1 -1
  135. package/dist/cjs/state/FedopsReporter.js.map +1 -1
  136. package/dist/cjs/state/FormPageState.js.map +1 -1
  137. package/dist/cjs/state/ModalState.js.map +1 -1
  138. package/dist/cjs/state/MultiCollectionSupport.js.map +1 -1
  139. package/dist/cjs/state/OnlineState.js.map +1 -1
  140. package/dist/cjs/state/PageState.js.map +1 -1
  141. package/dist/cjs/state/Pagination.js.map +1 -1
  142. package/dist/cjs/state/PaginationMode.js.map +1 -1
  143. package/dist/cjs/state/PaginationModeCursor.js.map +1 -1
  144. package/dist/cjs/state/PaginationModeOffset.js.map +1 -1
  145. package/dist/cjs/state/PickerState.js.map +1 -1
  146. package/dist/cjs/state/PromiseState.js.map +1 -1
  147. package/dist/cjs/state/PromisesSequence.js.map +1 -1
  148. package/dist/cjs/state/PromisesState.js.map +1 -1
  149. package/dist/cjs/state/QueryHistoryState.js.map +1 -1
  150. package/dist/cjs/state/QueryPendingState.js.map +1 -1
  151. package/dist/cjs/state/QueryPendingStateBIReporter.js.map +1 -1
  152. package/dist/cjs/state/QueryResultSimulation.js.map +1 -1
  153. package/dist/cjs/state/QueryResultSimulationDefault.js.map +1 -1
  154. package/dist/cjs/state/QueryResultState.js.map +1 -1
  155. package/dist/cjs/state/QueryState.js.map +1 -1
  156. package/dist/cjs/state/RangeFilterState/RangeFilterState.js.map +1 -1
  157. package/dist/cjs/state/RangeFilterState/dateRangeUtils.js.map +1 -1
  158. package/dist/cjs/state/RangeFilterState/index.js.map +1 -1
  159. package/dist/cjs/state/RefObject.js.map +1 -1
  160. package/dist/cjs/state/ReturnFocus.js.map +1 -1
  161. package/dist/cjs/state/SelectMapState.js.map +1 -1
  162. package/dist/cjs/state/SelectState.js.map +1 -1
  163. package/dist/cjs/state/SelectionStatus.js.map +1 -1
  164. package/dist/cjs/state/SelectionStatusWixPatternsPreset.js.map +1 -1
  165. package/dist/cjs/state/SidePanelState.js.map +1 -1
  166. package/dist/cjs/state/SortState.js.map +1 -1
  167. package/dist/cjs/state/StringFilterState/StringFilterState.js.map +1 -1
  168. package/dist/cjs/state/StringFilterState/index.js.map +1 -1
  169. package/dist/cjs/state/TagsState/TagsAssignmentState.js.map +1 -1
  170. package/dist/cjs/state/TagsState/TagsBIReporter.js.map +1 -1
  171. package/dist/cjs/state/TagsState/TagsFormState.js.map +1 -1
  172. package/dist/cjs/state/TagsState/TagsManagementState.js.map +1 -1
  173. package/dist/cjs/state/TagsState/TagsSearchState.js.map +1 -1
  174. package/dist/cjs/state/TagsState/TagsWidgetState.js.map +1 -1
  175. package/dist/cjs/state/TagsState/index.js.map +1 -1
  176. package/dist/cjs/state/TagsState/tagsTypes.js.map +1 -1
  177. package/dist/cjs/state/TaskState.js.map +1 -1
  178. package/dist/cjs/state/TextOverflowState.js.map +1 -1
  179. package/dist/cjs/state/ToggleState.js.map +1 -1
  180. package/dist/cjs/state/TransitionState.js.map +1 -1
  181. package/dist/cjs/state/ValueBox.js.map +1 -1
  182. package/dist/cjs/state/WixPatternsContainer.js.map +1 -1
  183. package/dist/cjs/state/buildWixPatternsContainer.js.map +1 -1
  184. package/dist/cjs/state/getJobItemsAbsoluteCounter.js.map +1 -1
  185. package/dist/cjs/state/index.js.map +1 -1
  186. package/dist/cjs/state/mutationObserverCompat.js.map +1 -1
  187. package/dist/cjs/state/onItemsCreated.js.map +1 -1
  188. package/dist/cjs/state/optimistic-simulation/filterPageByPatches.js.map +1 -1
  189. package/dist/cjs/state/optimistic-simulation/index.js.map +1 -1
  190. package/dist/cjs/state/optimistic-simulation/mergePatchedItems.js.map +1 -1
  191. package/dist/cjs/state/optimistic-simulation/orderByMoves.js.map +1 -1
  192. package/dist/cjs/state/optimistic-simulation/orderByOrders.js.map +1 -1
  193. package/dist/cjs/state/optimistic-simulation/prepareItemsToMergeIntoPage.js.map +1 -1
  194. package/dist/cjs/state/optimistic-simulation/transformItemByUpdateAllPatches.js.map +1 -1
  195. package/dist/cjs/state/optimistic-simulation/trimAddedItemsFromPagePredicate.js.map +1 -1
  196. package/dist/cjs/state/resizeObserverCompat.js.map +1 -1
  197. package/dist/cjs/state/snapshot.js.map +1 -1
  198. package/dist/cjs/state/useExperimentsCompat.js.map +1 -1
  199. package/dist/cjs/state/warmUpPickerStandalone.js.map +1 -1
  200. package/dist/cjs/test-utils/flush.js.map +1 -1
  201. package/dist/cjs/test-utils/index.js.map +1 -1
  202. package/dist/cjs/test-utils/jest.js.map +1 -1
  203. package/dist/cjs/testkit/ProductsCollectionState.driver.js.map +1 -1
  204. package/dist/cjs/testkit/WixPatternsContainer.driver.js +11 -10
  205. package/dist/cjs/testkit/WixPatternsContainer.driver.js.map +1 -1
  206. package/dist/cjs/testkit/appSettingsMocks.js.map +1 -1
  207. package/dist/cjs/testkit/client.js.map +1 -1
  208. package/dist/cjs/testkit/country.js.map +1 -1
  209. package/dist/cjs/testkit/createCountriesBackend.js.map +1 -1
  210. package/dist/cjs/testkit/createFoldersBackend.js.map +1 -1
  211. package/dist/cjs/testkit/createProductsBackend.js.map +1 -1
  212. package/dist/cjs/testkit/exportServiceMocks.js.map +1 -1
  213. package/dist/cjs/testkit/folder.js.map +1 -1
  214. package/dist/cjs/testkit/folderFilters.js.map +1 -1
  215. package/dist/cjs/testkit/index.js.map +1 -1
  216. package/dist/cjs/testkit/internal.js.map +1 -1
  217. package/dist/cjs/testkit/matchMediaMock.js.map +1 -1
  218. package/dist/cjs/testkit/nestifyItems.js.map +1 -1
  219. package/dist/cjs/testkit/product.js.map +1 -1
  220. package/dist/cjs/testkit/productFilters.js.map +1 -1
  221. package/dist/cjs/util/OfflineError.js.map +1 -1
  222. package/dist/cjs/util/addEventListener.js.map +1 -1
  223. package/dist/cjs/util/assertKey.js.map +1 -1
  224. package/dist/cjs/util/index.js.map +1 -1
  225. package/dist/cjs/util/isHttpError.js.map +1 -1
  226. package/dist/cjs/util/parseFqdn.js.map +1 -1
  227. package/dist/cjs/util/shouldRedirectToLogin.js.map +1 -1
  228. package/dist/cjs/util/showToastCompat.js.map +1 -1
  229. package/dist/cjs/util/slugify.js.map +1 -1
  230. package/dist/cjs/util/syncWithSharedQuery.js.map +1 -1
  231. package/dist/cjs/util/typedEmitter.js.map +1 -1
  232. package/dist/cjs/util/withoutDefaults.js.map +1 -1
  233. package/dist/esm/assets/locale/messages_uk.json +2 -2
  234. package/dist/esm/assets/locale/messages_visuale2e.json +3 -0
  235. package/dist/esm/services/navigationManager.js +15 -4
  236. package/dist/esm/services/navigationManager.js.map +1 -1
  237. package/dist/esm/state/AppsState.js +89 -0
  238. package/dist/esm/state/AppsState.js.map +1 -0
  239. package/dist/esm/state/CustomFieldsViewWidgetState.js +36 -1
  240. package/dist/esm/state/CustomFieldsViewWidgetState.js.map +1 -1
  241. package/dist/esm/state/DataExtensionState.js +18 -10
  242. package/dist/esm/state/DataExtensionState.js.map +1 -1
  243. package/dist/esm/testkit/WixPatternsContainer.driver.js +12 -11
  244. package/dist/esm/testkit/WixPatternsContainer.driver.js.map +1 -1
  245. package/dist/types/services/navigationManager.d.ts +12 -6
  246. package/dist/types/services/navigationManager.d.ts.map +1 -1
  247. package/dist/types/state/AppsState.d.ts +20 -0
  248. package/dist/types/state/AppsState.d.ts.map +1 -0
  249. package/dist/types/state/CustomFieldsViewWidgetState.d.ts +6 -0
  250. package/dist/types/state/CustomFieldsViewWidgetState.d.ts.map +1 -1
  251. package/dist/types/state/DataExtensionState.d.ts +7 -1
  252. package/dist/types/state/DataExtensionState.d.ts.map +1 -1
  253. package/dist/types/testkit/WixPatternsContainer.driver.d.ts +1 -1
  254. package/dist/types/testkit/WixPatternsContainer.driver.d.ts.map +1 -1
  255. package/package.json +3 -3
@@ -0,0 +1,100 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ exports.__esModule = true;
5
+ exports.AppsState = void 0;
6
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
7
+ var _TaskState = require("./TaskState");
8
+ var _mobx = require("mobx");
9
+ var _http = require("@wix/bex-utils/@wix/ambassador-devcenter-app-market-listing-v1-market-listing/http");
10
+ class AppsState {
11
+ constructor(params) {
12
+ (0, _defineProperty2.default)(this, "initTask", new _TaskState.TaskState());
13
+ (0, _defineProperty2.default)(this, "container", void 0);
14
+ (0, _defineProperty2.default)(this, "apps", []);
15
+ this.container = params.container;
16
+ (0, _mobx.makeObservable)(this, {
17
+ apps: _mobx.observable.ref,
18
+ appNames: _mobx.computed
19
+ });
20
+ }
21
+ init(appIds) {
22
+ const {
23
+ initTask
24
+ } = this;
25
+ initTask.runOnce(async () => {
26
+ await this.fetchApps(appIds);
27
+ });
28
+ }
29
+ async fetchApps(appIds) {
30
+ if (!appIds.length) {
31
+ return;
32
+ }
33
+ const appRequests = this._getAppsRequests(appIds);
34
+
35
+ // Don't care if one of the requests fails, we want to have as many apps as possible
36
+ const responses = await Promise.allSettled(appRequests);
37
+ const allApps = this._aggregateAppsFromResponses(responses);
38
+ (0, _mobx.runInAction)(() => {
39
+ this.apps = allApps;
40
+ });
41
+ }
42
+ get appNames() {
43
+ // Prioritize English, allowing other languages to override it.
44
+ return this.apps.sort(this._sortByEnglishFirst).reduce(this._extractAppNames, {});
45
+ }
46
+ _sortByEnglishFirst(a, b) {
47
+ if (a.languageCode === 'en' && b.languageCode !== 'en') {
48
+ return -1;
49
+ } else if (a.languageCode !== 'en' && b.languageCode === 'en') {
50
+ return 1;
51
+ } else {
52
+ return 0;
53
+ }
54
+ }
55
+ _extractAppNames(acc, app) {
56
+ var _app$basicInfo;
57
+ if (app.appId && (_app$basicInfo = app.basicInfo) != null && _app$basicInfo.name) {
58
+ acc[app.appId] = app.basicInfo.name;
59
+ }
60
+ return acc;
61
+ }
62
+ _getAppsRequests(appIds) {
63
+ // Call the API with batches of 50, since the limit is 100, and we get two languages per app (the requested one + english)
64
+ const batchSize = 50;
65
+ const numBatches = Math.ceil(appIds.length / batchSize);
66
+ const batchRequests = [];
67
+ for (let i = 0; i < numBatches; i++) {
68
+ const batchAppIds = appIds.slice(i * batchSize, (i + 1) * batchSize);
69
+ const request = this.container.httpClient.request((0, _http.queryMarketListing)({
70
+ query: {
71
+ filter: {
72
+ appId: batchAppIds,
73
+ languageCode: [this.container.environment.language, 'en'],
74
+ status: 'APPROVED'
75
+ }
76
+ }
77
+ }));
78
+ batchRequests.push(request);
79
+ }
80
+ return batchRequests;
81
+ }
82
+ _aggregateAppsFromResponses(responses) {
83
+ const allApps = [];
84
+ responses.forEach(response => {
85
+ if (response.status === 'fulfilled') {
86
+ const {
87
+ data: {
88
+ marketListing: apps
89
+ }
90
+ } = response.value;
91
+ if (apps) {
92
+ allApps.push(...apps);
93
+ }
94
+ }
95
+ });
96
+ return allApps;
97
+ }
98
+ }
99
+ exports.AppsState = AppsState;
100
+ //# sourceMappingURL=AppsState.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_TaskState","require","_mobx","_http","AppsState","constructor","params","_defineProperty2","default","TaskState","container","makeObservable","apps","observable","ref","appNames","computed","init","appIds","initTask","runOnce","fetchApps","length","appRequests","_getAppsRequests","responses","Promise","allSettled","allApps","_aggregateAppsFromResponses","runInAction","sort","_sortByEnglishFirst","reduce","_extractAppNames","a","b","languageCode","acc","app","_app$basicInfo","appId","basicInfo","name","batchSize","numBatches","Math","ceil","batchRequests","i","batchAppIds","slice","request","httpClient","queryMarketListing","query","filter","environment","language","status","push","forEach","response","data","marketListing","value","exports"],"sources":["../../../src/state/AppsState.ts"],"sourcesContent":["import { TaskState } from './TaskState';\nimport { computed, makeObservable, observable, runInAction } from 'mobx';\nimport { WixPatternsContainer } from './WixPatternsContainer';\nimport { queryMarketListing } from '@wix/bex-utils/@wix/ambassador-devcenter-app-market-listing-v1-market-listing/http';\nimport {\n MarketListing,\n QueryMarketListingResponse,\n} from '@wix/bex-utils/@wix/ambassador-devcenter-app-market-listing-v1-market-listing/types';\n\nexport interface AppsStateParams {\n container: WixPatternsContainer;\n}\n\nexport class AppsState {\n readonly initTask = new TaskState();\n readonly container: WixPatternsContainer;\n apps: MarketListing[] = [];\n\n constructor(params: Readonly<AppsStateParams>) {\n this.container = params.container;\n\n makeObservable(this, {\n apps: observable.ref,\n appNames: computed,\n });\n }\n\n init(appIds: string[]) {\n const { initTask } = this;\n\n initTask.runOnce(async () => {\n await this.fetchApps(appIds);\n });\n }\n\n async fetchApps(appIds: string[]) {\n if (!appIds.length) {\n return;\n }\n\n const appRequests = this._getAppsRequests(appIds);\n\n // Don't care if one of the requests fails, we want to have as many apps as possible\n const responses = await Promise.allSettled(appRequests);\n const allApps = this._aggregateAppsFromResponses(responses);\n runInAction(() => {\n this.apps = allApps;\n });\n }\n\n get appNames(): Record<string, string> {\n // Prioritize English, allowing other languages to override it.\n return this.apps\n .sort(this._sortByEnglishFirst)\n .reduce(this._extractAppNames, {});\n }\n\n private _sortByEnglishFirst(a: MarketListing, b: MarketListing): number {\n if (a.languageCode === 'en' && b.languageCode !== 'en') {\n return -1;\n } else if (a.languageCode !== 'en' && b.languageCode === 'en') {\n return 1;\n } else {\n return 0;\n }\n }\n\n private _extractAppNames(\n acc: Record<string, string>,\n app: MarketListing,\n ): Record<string, string> {\n if (app.appId && app.basicInfo?.name) {\n acc[app.appId] = app.basicInfo.name;\n }\n return acc;\n }\n\n private _getAppsRequests(appIds: string[]) {\n // Call the API with batches of 50, since the limit is 100, and we get two languages per app (the requested one + english)\n const batchSize = 50;\n const numBatches = Math.ceil(appIds.length / batchSize);\n\n const batchRequests = [];\n\n for (let i = 0; i < numBatches; i++) {\n const batchAppIds = appIds.slice(i * batchSize, (i + 1) * batchSize);\n const request = this.container.httpClient.request(\n queryMarketListing({\n query: {\n filter: {\n appId: batchAppIds,\n languageCode: [this.container.environment.language, 'en'],\n status: 'APPROVED',\n },\n },\n }),\n );\n batchRequests.push(request);\n }\n\n return batchRequests;\n }\n\n private _aggregateAppsFromResponses(\n responses: PromiseSettledResult<{\n data: QueryMarketListingResponse;\n status: number;\n statusText: string;\n headers: Record<string, string>;\n }>[],\n ) {\n const allApps: MarketListing[] = [];\n\n responses.forEach((response) => {\n if (response.status === 'fulfilled') {\n const {\n data: { marketListing: apps },\n } = response.value;\n if (apps) {\n allApps.push(...apps);\n }\n }\n });\n\n return allApps;\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["_events","require","_mobx","ArrayFilterState","constructor","params","_defineProperty2","default","EventEmitter","name","persistent","defaultValue","parse","simplify","value","itemKey","itemName","_value","initialValue","matches","item","key","length","some","v","equals","makeObservable","observable","ref","isEmpty","computed","size","reset","action","setValue","changeValue","scheduleRefresh","clone","toArray","toQueryString","JSON","stringify","map","applyFromQueryString","str","maybeArr","Array","isArray","filter","_","encode","decode","raw","emitEvents","options","event","events","emit","refresh","hasDiff","items","every","i","remove","keysToRemove","Set","has","exports","stringsArrayFilter","arrayFilter","idNameArrayFilter","id","idArrayFilter","idNameArrayFilterNum","String"],"sources":["../../../../src/state/ArrayFilterState/ArrayFilterState.ts"],"sourcesContent":["import { EventEmitter } from 'events';\nimport { action, computed, makeObservable, observable } from 'mobx';\nimport {\n ChangeValueOptions,\n Filter,\n FilterEvents,\n FilterStateBaseParams,\n} from '../../model';\n\nexport interface ArrayFilterStateParams<T> extends FilterStateBaseParams<T[]> {\n /**\n * The value to set the value to, when clearing the filter (Optional)\n * @external\n */\n defaultValue?: T[];\n /**\n * Convert a unknown object to a T.<br>\n * If the function returns null, the item will be skipped when we try to deserializate it from an array.\n * @param value\n * @external\n */\n readonly parse: (\n value: Record<string, unknown> | string | null | undefined,\n ) => T | null;\n /**\n * Return a simplified form of an item for serialization.\n * @param value\n * @external\n */\n readonly simplify?: (value: T) => Partial<T>;\n\n /**\n * Indicates whether an item matches the current value of the filter\n * @external\n */\n readonly matches?: (item: T, value: T[]) => boolean;\n\n readonly equals?: (item1: T, item2: T) => boolean;\n}\n\nexport class ArrayFilterState<T> implements Filter<T[]> {\n _value: T[];\n\n name: string;\n persistent;\n defaultValue: T[];\n readonly parse: ArrayFilterStateParams<T>['parse'];\n readonly simplify: (value: T) => Partial<T>;\n readonly itemKey: (item: T) => string;\n readonly itemName: (item: T) => string;\n readonly equals?: (item1: T, item2: T) => boolean;\n\n readonly events = new EventEmitter() as FilterEvents;\n\n readonly matches: (item: T, value: T[]) => boolean;\n\n constructor(params: Readonly<ArrayFilterStateParams<T>>) {\n this.name = params.name ?? '';\n this.persistent = params.persistent;\n this.defaultValue = params.defaultValue ?? [];\n this.parse = params.parse;\n this.simplify = params.simplify ?? ((value) => value);\n this.itemKey = params.itemKey;\n this.itemName = params.itemName;\n this._value = params.initialValue ?? this.defaultValue;\n this.matches =\n params.matches ??\n ((item, value) => {\n const { itemKey } = this;\n const key = typeof item === 'string' ? item : itemKey(item);\n return (\n value == null ||\n !value.length ||\n value.some((v) => itemKey(v) === key)\n );\n });\n this.equals = params.equals;\n\n makeObservable(this, {\n _value: observable.ref,\n defaultValue: observable.ref,\n persistent: observable.ref,\n isEmpty: computed,\n size: computed,\n value: computed,\n reset: action,\n setValue: action,\n changeValue: action,\n scheduleRefresh: action,\n clone: action,\n });\n }\n\n get value() {\n return this._value;\n }\n\n get toArray() {\n return this._value;\n }\n\n get isEmpty() {\n return !this.size;\n }\n\n get size() {\n return this._value.length;\n }\n\n get toQueryString() {\n return JSON.stringify(this._value.map(this.simplify));\n }\n\n applyFromQueryString(str: string) {\n try {\n const maybeArr = JSON.parse(str) as unknown;\n if (Array.isArray(maybeArr)) {\n this.setValue(\n maybeArr.map(this.parse).filter((value): value is T => value != null),\n );\n }\n } catch (_) {}\n }\n\n encode(value: T[]) {\n return value.map(this.simplify);\n }\n\n decode(raw: unknown) {\n if (Array.isArray(raw)) {\n return raw.map(this.parse).filter((value): value is T => value != null);\n }\n\n return [];\n }\n\n setValue(value: T[], { emitEvents, ...options }: ChangeValueOptions = {}) {\n this._value = value;\n if (emitEvents) {\n for (const event of emitEvents) {\n this.events.emit(event, options);\n }\n }\n }\n\n changeValue(\n value: T[],\n { emitEvents = [], ...options }: ChangeValueOptions = {},\n ) {\n this.setValue(value, { ...options, emitEvents: ['change', ...emitEvents] });\n }\n\n refresh(value: T[], options?: ChangeValueOptions) {\n this.changeValue(value, {\n ...options,\n emitEvents: ['refresh'],\n });\n }\n\n scheduleRefresh(value: T[]) {\n this.changeValue(value, { emitEvents: ['scheduleRefresh'] });\n }\n\n reset(options: ChangeValueOptions = {}) {\n this.setValue(this.defaultValue, options);\n }\n\n hasDiff(items: T[]) {\n const { value } = this;\n return (\n value.length !== items.length ||\n value.some((item) =>\n items.every((i) => this.itemKey(i) !== this.itemKey(item)),\n )\n );\n }\n\n remove(items: T[], options: ChangeValueOptions = {}) {\n const { itemKey } = this;\n const keysToRemove = new Set(items.map(itemKey));\n this.setValue(\n this._value.filter((item) => !keysToRemove.has(itemKey(item))),\n options,\n );\n }\n\n clone(params: Partial<ArrayFilterStateParams<T>>): ArrayFilterState<T> {\n const {\n itemName,\n itemKey,\n simplify,\n parse,\n defaultValue,\n value: initialValue,\n matches,\n persistent,\n name,\n } = this;\n return new ArrayFilterState({\n itemName,\n itemKey,\n simplify,\n parse,\n defaultValue,\n initialValue,\n matches,\n persistent,\n name,\n ...params,\n });\n }\n}\n\nexport const stringsArrayFilter = <T extends string>(\n params?: Partial<ArrayFilterStateParams<T>>,\n) =>\n new ArrayFilterState<T>({\n itemKey: (item) => item,\n itemName: (item) => item,\n parse: (value) => {\n if (value == null || typeof value !== 'string') {\n return null;\n }\n return value as T;\n },\n simplify: (value) => value,\n ...params,\n });\n\nexport const arrayFilter = <T>(params: ArrayFilterStateParams<T>) =>\n new ArrayFilterState<T>(params);\n\nexport const idNameArrayFilter = <T extends { id: string; name: string }>(\n params?: Partial<ArrayFilterStateParams<T>>,\n) =>\n new ArrayFilterState<T>({\n itemKey: (item) => item.id,\n itemName: (item) => item.name,\n parse: (value) => {\n if (\n value == null ||\n typeof value === 'string' ||\n typeof value.id !== 'string' ||\n typeof value.name !== 'string'\n ) {\n return null;\n }\n return value as T;\n },\n simplify: (value) =>\n ({\n id: value.id,\n name: value.name,\n } as Partial<T>),\n ...params,\n });\n\nexport const idArrayFilter = <T extends { id: string }>(\n params?: Partial<ArrayFilterStateParams<T>>,\n) =>\n new ArrayFilterState<T>({\n itemKey: (item) => item.id,\n itemName: () => '',\n parse: (value) => {\n if (\n value == null ||\n typeof value === 'string' ||\n typeof value.id !== 'string'\n ) {\n return null;\n }\n return value as T;\n },\n simplify: (value) =>\n ({\n id: value.id,\n } as Partial<T>),\n ...params,\n });\n\nexport const idNameArrayFilterNum = <T extends { id: number; name: string }>(\n params?: Partial<ArrayFilterStateParams<T>>,\n) =>\n new ArrayFilterState<T>({\n itemKey: (item) => String(item.id),\n itemName: (item) => item.name,\n parse: (value) => {\n if (\n value == null ||\n typeof value === 'string' ||\n typeof value.id !== 'number' ||\n typeof value.name !== 'string'\n ) {\n return null;\n }\n return value as T;\n },\n simplify: (value) =>\n ({\n id: value.id,\n name: value.name,\n } as Partial<T>),\n ...params,\n });\n"],"mappings":"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"}
1
+ {"version":3,"names":["_events","require","_mobx","ArrayFilterState","constructor","params","_defineProperty2","default","EventEmitter","name","persistent","defaultValue","parse","simplify","value","itemKey","itemName","_value","initialValue","matches","item","key","length","some","v","equals","makeObservable","observable","ref","isEmpty","computed","size","reset","action","setValue","changeValue","scheduleRefresh","clone","toArray","toQueryString","JSON","stringify","map","applyFromQueryString","str","maybeArr","Array","isArray","filter","_","encode","decode","raw","emitEvents","options","event","events","emit","refresh","hasDiff","items","every","i","remove","keysToRemove","Set","has","exports","stringsArrayFilter","arrayFilter","idNameArrayFilter","id","idArrayFilter","idNameArrayFilterNum","String"],"sources":["../../../../src/state/ArrayFilterState/ArrayFilterState.ts"],"sourcesContent":["import { EventEmitter } from 'events';\nimport { action, computed, makeObservable, observable } from 'mobx';\nimport {\n ChangeValueOptions,\n Filter,\n FilterEvents,\n FilterStateBaseParams,\n} from '../../model';\n\nexport interface ArrayFilterStateParams<T> extends FilterStateBaseParams<T[]> {\n /**\n * The value to set the value to, when clearing the filter (Optional)\n * @external\n */\n defaultValue?: T[];\n /**\n * Convert a unknown object to a T.<br>\n * If the function returns null, the item will be skipped when we try to deserializate it from an array.\n * @param value\n * @external\n */\n readonly parse: (\n value: Record<string, unknown> | string | null | undefined,\n ) => T | null;\n /**\n * Return a simplified form of an item for serialization.\n * @param value\n * @external\n */\n readonly simplify?: (value: T) => Partial<T>;\n\n /**\n * Indicates whether an item matches the current value of the filter\n * @external\n */\n readonly matches?: (item: T, value: T[]) => boolean;\n\n readonly equals?: (item1: T, item2: T) => boolean;\n}\n\nexport class ArrayFilterState<T> implements Filter<T[]> {\n _value: T[];\n\n name: string;\n persistent;\n defaultValue: T[];\n readonly parse: ArrayFilterStateParams<T>['parse'];\n readonly simplify: (value: T) => Partial<T>;\n readonly itemKey: (item: T) => string;\n readonly itemName: (item: T) => string;\n readonly equals?: (item1: T, item2: T) => boolean;\n\n readonly events = new EventEmitter() as FilterEvents;\n\n readonly matches: (item: T, value: T[]) => boolean;\n\n constructor(params: Readonly<ArrayFilterStateParams<T>>) {\n this.name = params.name ?? '';\n this.persistent = params.persistent;\n this.defaultValue = params.defaultValue ?? [];\n this.parse = params.parse;\n this.simplify = params.simplify ?? ((value) => value);\n this.itemKey = params.itemKey;\n this.itemName = params.itemName;\n this._value = params.initialValue ?? this.defaultValue;\n this.matches =\n params.matches ??\n ((item, value) => {\n const { itemKey } = this;\n const key = typeof item === 'string' ? item : itemKey(item);\n return (\n value == null ||\n !value.length ||\n value.some((v) => itemKey(v) === key)\n );\n });\n this.equals = params.equals;\n\n makeObservable(this, {\n _value: observable.ref,\n defaultValue: observable.ref,\n persistent: observable.ref,\n isEmpty: computed,\n size: computed,\n value: computed,\n reset: action,\n setValue: action,\n changeValue: action,\n scheduleRefresh: action,\n clone: action,\n });\n }\n\n get value() {\n return this._value;\n }\n\n get toArray() {\n return this._value;\n }\n\n get isEmpty() {\n return !this.size;\n }\n\n get size() {\n return this._value.length;\n }\n\n get toQueryString() {\n return JSON.stringify(this._value.map(this.simplify));\n }\n\n applyFromQueryString(str: string) {\n try {\n const maybeArr = JSON.parse(str) as unknown;\n if (Array.isArray(maybeArr)) {\n this.setValue(\n maybeArr.map(this.parse).filter((value): value is T => value != null),\n );\n }\n } catch (_) {}\n }\n\n encode(value: T[]) {\n return value.map(this.simplify);\n }\n\n decode(raw: unknown) {\n if (Array.isArray(raw)) {\n return raw.map(this.parse).filter((value): value is T => value != null);\n }\n\n return [];\n }\n\n setValue(value: T[], { emitEvents, ...options }: ChangeValueOptions = {}) {\n this._value = value;\n if (emitEvents) {\n for (const event of emitEvents) {\n this.events.emit(event, options);\n }\n }\n }\n\n changeValue(\n value: T[],\n { emitEvents = [], ...options }: ChangeValueOptions = {},\n ) {\n this.setValue(value, { ...options, emitEvents: ['change', ...emitEvents] });\n }\n\n refresh(value: T[], options?: ChangeValueOptions) {\n this.changeValue(value, {\n ...options,\n emitEvents: ['refresh'],\n });\n }\n\n scheduleRefresh(value: T[]) {\n this.changeValue(value, { emitEvents: ['scheduleRefresh'] });\n }\n\n reset(options: ChangeValueOptions = {}) {\n this.setValue(this.defaultValue, options);\n }\n\n hasDiff(items: T[]) {\n const { value } = this;\n return (\n value.length !== items.length ||\n value.some((item) =>\n items.every((i) => this.itemKey(i) !== this.itemKey(item)),\n )\n );\n }\n\n remove(items: T[], options: ChangeValueOptions = {}) {\n const { itemKey } = this;\n const keysToRemove = new Set(items.map(itemKey));\n this.setValue(\n this._value.filter((item) => !keysToRemove.has(itemKey(item))),\n options,\n );\n }\n\n clone(params: Partial<ArrayFilterStateParams<T>>): ArrayFilterState<T> {\n const {\n itemName,\n itemKey,\n simplify,\n parse,\n defaultValue,\n value: initialValue,\n matches,\n persistent,\n name,\n } = this;\n return new ArrayFilterState({\n itemName,\n itemKey,\n simplify,\n parse,\n defaultValue,\n initialValue,\n matches,\n persistent,\n name,\n ...params,\n });\n }\n}\n\nexport const stringsArrayFilter = <T extends string>(\n params?: Partial<ArrayFilterStateParams<T>>,\n) =>\n new ArrayFilterState<T>({\n itemKey: (item) => item,\n itemName: (item) => item,\n parse: (value) => {\n if (value == null || typeof value !== 'string') {\n return null;\n }\n return value as T;\n },\n simplify: (value) => value,\n ...params,\n });\n\nexport const arrayFilter = <T>(params: ArrayFilterStateParams<T>) =>\n new ArrayFilterState<T>(params);\n\nexport const idNameArrayFilter = <T extends { id: string; name: string }>(\n params?: Partial<ArrayFilterStateParams<T>>,\n) =>\n new ArrayFilterState<T>({\n itemKey: (item) => item.id,\n itemName: (item) => item.name,\n parse: (value) => {\n if (\n value == null ||\n typeof value === 'string' ||\n typeof value.id !== 'string' ||\n typeof value.name !== 'string'\n ) {\n return null;\n }\n return value as T;\n },\n simplify: (value) =>\n ({\n id: value.id,\n name: value.name,\n } as Partial<T>),\n ...params,\n });\n\nexport const idArrayFilter = <T extends { id: string }>(\n params?: Partial<ArrayFilterStateParams<T>>,\n) =>\n new ArrayFilterState<T>({\n itemKey: (item) => item.id,\n itemName: () => '',\n parse: (value) => {\n if (\n value == null ||\n typeof value === 'string' ||\n typeof value.id !== 'string'\n ) {\n return null;\n }\n return value as T;\n },\n simplify: (value) =>\n ({\n id: value.id,\n } as Partial<T>),\n ...params,\n });\n\nexport const idNameArrayFilterNum = <T extends { id: number; name: string }>(\n params?: Partial<ArrayFilterStateParams<T>>,\n) =>\n new ArrayFilterState<T>({\n itemKey: (item) => String(item.id),\n itemName: (item) => item.name,\n parse: (value) => {\n if (\n value == null ||\n typeof value === 'string' ||\n typeof value.id !== 'number' ||\n typeof value.name !== 'string'\n ) {\n return null;\n }\n return value as T;\n },\n simplify: (value) =>\n ({\n id: value.id,\n name: value.name,\n } as Partial<T>),\n ...params,\n });\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["_ArrayFilterState","require","Object","keys","forEach","key","exports"],"sources":["../../../../src/state/ArrayFilterState/index.ts"],"sourcesContent":["export * from './ArrayFilterState';\n"],"mappings":";;;AAAA,IAAAA,iBAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,iBAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAL,iBAAA,CAAAK,GAAA;EAAAC,OAAA,CAAAD,GAAA,IAAAL,iBAAA,CAAAK,GAAA;AAAA"}
1
+ {"version":3,"names":["_ArrayFilterState","require","Object","keys","forEach","key","exports"],"sources":["../../../../src/state/ArrayFilterState/index.ts"],"sourcesContent":["export * from './ArrayFilterState';\n"],"mappings":";;;AAAA,IAAAA,iBAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,iBAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAL,iBAAA,CAAAK,GAAA;EAAAC,OAAA,CAAAD,GAAA,IAAAL,iBAAA,CAAAK,GAAA;AAAA","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["BeforeUnloadCompatState","constructor","container","_defineProperty2","default","pause","onNavigationModal","translate","t","modalPropsList","_getBeforeUnloadListeners","length","resume","state","didCancel","confirmationsCount","onNavigationModalProps","Promise","resolve","modal","events","once","open","onConfirm","onClose","primaryButtonText","secondaryButtonText","forEach","onResume","listeners","map","l","filter","p","init","onNavigation","onBeforeUnload","onBeforeUnloadSubscription","event","preventDefault","remove","unloadDialog","e","returnValue","window","addEventListener","onNavigationSubscription","_onNavigation","removeEventListener","exports"],"sources":["../../../src/state/BeforeUnloadCompatState.ts"],"sourcesContent":["import { WixPatternsContainer } from './WixPatternsContainer';\nimport { ModalLayoutProps } from '../services';\nimport { OnNavigationCallback } from '../model';\n\nexport class BeforeUnloadCompatState {\n readonly container: WixPatternsContainer;\n\n constructor(container: WixPatternsContainer) {\n this.container = container;\n }\n\n _onNavigation: OnNavigationCallback = async (pause) => {\n const { onNavigationModal, translate: t } = this.container;\n const modalPropsList = this._getBeforeUnloadListeners();\n\n if (!modalPropsList.length) {\n return;\n }\n\n const { resume } = pause();\n\n const state = {\n didCancel: false,\n confirmationsCount: 0,\n };\n\n for (const onNavigationModalProps of modalPropsList) {\n await new Promise<void>((resolve) => {\n onNavigationModal.modal.events.once('close', () => resolve());\n onNavigationModal.open({\n ...onNavigationModalProps,\n onConfirm: () => {\n state.confirmationsCount++;\n onNavigationModalProps?.onConfirm?.();\n },\n onClose: () => {\n state.didCancel = true;\n },\n primaryButtonText: t('cairo.dragAndDrop.leaveSite.modal.leave.CTA'),\n secondaryButtonText: t('cairo.cancel.button'),\n });\n });\n\n // Skip rest of the modals when the user decides to cancel the navigation\n if (state.didCancel) {\n break;\n }\n }\n\n // Resume navigation after all modals confirmed\n if (state.confirmationsCount === modalPropsList.length) {\n modalPropsList.forEach(({ onResume }) => onResume?.());\n resume();\n }\n };\n\n _getBeforeUnloadListeners() {\n return this.container.events\n .listeners('navigation')\n .map((l) => l())\n .filter((p): p is ModalLayoutProps => p != null);\n }\n\n init() {\n const { onNavigation, onBeforeUnload } = this.container;\n\n // In GizaProvider & BM that migrated to Giza, `onBeforeUnload` will be available (not possible to customize the modal)\n if (onBeforeUnload) {\n const onBeforeUnloadSubscription = onBeforeUnload((event) => {\n if (!this._getBeforeUnloadListeners().length) {\n return;\n }\n\n event.preventDefault();\n });\n\n return () => {\n onBeforeUnloadSubscription.remove();\n };\n }\n\n // In BM that didn't migrate to Giza, `onBeforeUnload` will be `undefined` due to `usePlatformApiCompat`\n // `onNavigation` will be available (possible to customize the modal)\n if (onNavigation) {\n const unloadDialog = (e: BeforeUnloadEvent) => {\n if (!this._getBeforeUnloadListeners().length) {\n return;\n }\n e.preventDefault();\n e.returnValue = '';\n };\n\n window.addEventListener('beforeunload', unloadDialog);\n const onNavigationSubscription = onNavigation(this._onNavigation);\n\n return () => {\n window.removeEventListener('beforeunload', unloadDialog);\n onNavigationSubscription.remove();\n };\n }\n\n return;\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["BeforeUnloadCompatState","constructor","container","_defineProperty2","default","pause","onNavigationModal","translate","t","modalPropsList","_getBeforeUnloadListeners","length","resume","state","didCancel","confirmationsCount","onNavigationModalProps","Promise","resolve","modal","events","once","open","onConfirm","onClose","primaryButtonText","secondaryButtonText","forEach","onResume","listeners","map","l","filter","p","init","onNavigation","onBeforeUnload","onBeforeUnloadSubscription","event","preventDefault","remove","unloadDialog","e","returnValue","window","addEventListener","onNavigationSubscription","_onNavigation","removeEventListener","exports"],"sources":["../../../src/state/BeforeUnloadCompatState.ts"],"sourcesContent":["import { WixPatternsContainer } from './WixPatternsContainer';\nimport { ModalLayoutProps } from '../services';\nimport { OnNavigationCallback } from '../model';\n\nexport class BeforeUnloadCompatState {\n readonly container: WixPatternsContainer;\n\n constructor(container: WixPatternsContainer) {\n this.container = container;\n }\n\n _onNavigation: OnNavigationCallback = async (pause) => {\n const { onNavigationModal, translate: t } = this.container;\n const modalPropsList = this._getBeforeUnloadListeners();\n\n if (!modalPropsList.length) {\n return;\n }\n\n const { resume } = pause();\n\n const state = {\n didCancel: false,\n confirmationsCount: 0,\n };\n\n for (const onNavigationModalProps of modalPropsList) {\n await new Promise<void>((resolve) => {\n onNavigationModal.modal.events.once('close', () => resolve());\n onNavigationModal.open({\n ...onNavigationModalProps,\n onConfirm: () => {\n state.confirmationsCount++;\n onNavigationModalProps?.onConfirm?.();\n },\n onClose: () => {\n state.didCancel = true;\n },\n primaryButtonText: t('cairo.dragAndDrop.leaveSite.modal.leave.CTA'),\n secondaryButtonText: t('cairo.cancel.button'),\n });\n });\n\n // Skip rest of the modals when the user decides to cancel the navigation\n if (state.didCancel) {\n break;\n }\n }\n\n // Resume navigation after all modals confirmed\n if (state.confirmationsCount === modalPropsList.length) {\n modalPropsList.forEach(({ onResume }) => onResume?.());\n resume();\n }\n };\n\n _getBeforeUnloadListeners() {\n return this.container.events\n .listeners('navigation')\n .map((l) => l())\n .filter((p): p is ModalLayoutProps => p != null);\n }\n\n init() {\n const { onNavigation, onBeforeUnload } = this.container;\n\n // In GizaProvider & BM that migrated to Giza, `onBeforeUnload` will be available (not possible to customize the modal)\n if (onBeforeUnload) {\n const onBeforeUnloadSubscription = onBeforeUnload((event) => {\n if (!this._getBeforeUnloadListeners().length) {\n return;\n }\n\n event.preventDefault();\n });\n\n return () => {\n onBeforeUnloadSubscription.remove();\n };\n }\n\n // In BM that didn't migrate to Giza, `onBeforeUnload` will be `undefined` due to `usePlatformApiCompat`\n // `onNavigation` will be available (possible to customize the modal)\n if (onNavigation) {\n const unloadDialog = (e: BeforeUnloadEvent) => {\n if (!this._getBeforeUnloadListeners().length) {\n return;\n }\n e.preventDefault();\n e.returnValue = '';\n };\n\n window.addEventListener('beforeunload', unloadDialog);\n const onNavigationSubscription = onNavigation(this._onNavigation);\n\n return () => {\n window.removeEventListener('beforeunload', unloadDialog);\n onNavigationSubscription.remove();\n };\n }\n\n return;\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["_ConditionalModalState","require","BulkActionModalState","constructor","params","_defineProperty2","default","ConditionalModalState","actionModal","modal","open","close","closeModal","scrollToTop","props","translate","t","title","primaryButtonText","secondaryButtonText","isModalOpen","isOpen","exports"],"sources":["../../../src/state/BulkActionModalState.ts"],"sourcesContent":["import { ReactNode } from 'react';\nimport { ConditionalModalState } from './ConditionalModalState';\nimport { ModalTheme } from '@wix/design-system/dist/types/BaseModalLayout';\nimport { Translate } from '../services';\n\ninterface MessageModalLayoutProps {\n title?: string | ReactNode;\n content?: string | ReactNode;\n primaryButtonText?: string;\n secondaryButtonText?: string;\n theme?: ModalTheme;\n}\n\nexport interface BulkActionModalParams {\n readonly translate: Translate;\n readonly scrollToTop: () => unknown;\n}\n\nexport class BulkActionModalState {\n readonly translate;\n readonly scrollToTop;\n\n readonly actionModal = new ConditionalModalState<\n Partial<MessageModalLayoutProps>\n >();\n\n constructor(params: BulkActionModalParams) {\n this.translate = params.translate;\n this.scrollToTop = params.scrollToTop;\n }\n\n openModal = () => {\n this.actionModal.modal.open();\n };\n\n closeModal = () => {\n this.actionModal.modal.close();\n };\n\n closeModalAndScrollTop = () => {\n this.closeModal();\n this.scrollToTop();\n };\n\n openConfirmModal = (props?: Partial<MessageModalLayoutProps>) => {\n const { translate: t } = this;\n this.actionModal.open({\n title: t('cairo.confirmModal.title'),\n primaryButtonText: t('cairo.confirm.button'),\n secondaryButtonText: t('cairo.cancel.button'),\n ...props,\n });\n };\n\n get isModalOpen() {\n return this.actionModal.isOpen;\n }\n}\n"],"mappings":";;;;;;AACA,IAAAA,sBAAA,GAAAC,OAAA;AAiBO,MAAMC,oBAAoB,CAAC;EAQhCC,WAAWA,CAACC,MAA6B,EAAE;IAAA,IAAAC,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA,uBAJpB,IAAIC,4CAAqB,CAE9C,CAAC;IAAA,IAAAF,gBAAA,CAAAC,OAAA,qBAOS,MAAM;MAChB,IAAI,CAACE,WAAW,CAACC,KAAK,CAACC,IAAI,CAAC,CAAC;IAC/B,CAAC;IAAA,IAAAL,gBAAA,CAAAC,OAAA,sBAEY,MAAM;MACjB,IAAI,CAACE,WAAW,CAACC,KAAK,CAACE,KAAK,CAAC,CAAC;IAChC,CAAC;IAAA,IAAAN,gBAAA,CAAAC,OAAA,kCAEwB,MAAM;MAC7B,IAAI,CAACM,UAAU,CAAC,CAAC;MACjB,IAAI,CAACC,WAAW,CAAC,CAAC;IACpB,CAAC;IAAA,IAAAR,gBAAA,CAAAC,OAAA,4BAEmBQ,KAAwC,IAAK;MAC/D,MAAM;QAAEC,SAAS,EAAEC;MAAE,CAAC,GAAG,IAAI;MAC7B,IAAI,CAACR,WAAW,CAACE,IAAI,CAAC;QACpBO,KAAK,EAAED,CAAC,CAAC,0BAA0B,CAAC;QACpCE,iBAAiB,EAAEF,CAAC,CAAC,sBAAsB,CAAC;QAC5CG,mBAAmB,EAAEH,CAAC,CAAC,qBAAqB,CAAC;QAC7C,GAAGF;MACL,CAAC,CAAC;IACJ,CAAC;IAzBC,IAAI,CAACC,SAAS,GAAGX,MAAM,CAACW,SAAS;IACjC,IAAI,CAACF,WAAW,GAAGT,MAAM,CAACS,WAAW;EACvC;EAyBA,IAAIO,WAAWA,CAAA,EAAG;IAChB,OAAO,IAAI,CAACZ,WAAW,CAACa,MAAM;EAChC;AACF;AAACC,OAAA,CAAApB,oBAAA,GAAAA,oBAAA"}
1
+ {"version":3,"names":["_ConditionalModalState","require","BulkActionModalState","constructor","params","_defineProperty2","default","ConditionalModalState","actionModal","modal","open","close","closeModal","scrollToTop","props","translate","t","title","primaryButtonText","secondaryButtonText","isModalOpen","isOpen","exports"],"sources":["../../../src/state/BulkActionModalState.ts"],"sourcesContent":["import { ReactNode } from 'react';\nimport { ConditionalModalState } from './ConditionalModalState';\nimport { ModalTheme } from '@wix/design-system/dist/types/BaseModalLayout';\nimport { Translate } from '../services';\n\ninterface MessageModalLayoutProps {\n title?: string | ReactNode;\n content?: string | ReactNode;\n primaryButtonText?: string;\n secondaryButtonText?: string;\n theme?: ModalTheme;\n}\n\nexport interface BulkActionModalParams {\n readonly translate: Translate;\n readonly scrollToTop: () => unknown;\n}\n\nexport class BulkActionModalState {\n readonly translate;\n readonly scrollToTop;\n\n readonly actionModal = new ConditionalModalState<\n Partial<MessageModalLayoutProps>\n >();\n\n constructor(params: BulkActionModalParams) {\n this.translate = params.translate;\n this.scrollToTop = params.scrollToTop;\n }\n\n openModal = () => {\n this.actionModal.modal.open();\n };\n\n closeModal = () => {\n this.actionModal.modal.close();\n };\n\n closeModalAndScrollTop = () => {\n this.closeModal();\n this.scrollToTop();\n };\n\n openConfirmModal = (props?: Partial<MessageModalLayoutProps>) => {\n const { translate: t } = this;\n this.actionModal.open({\n title: t('cairo.confirmModal.title'),\n primaryButtonText: t('cairo.confirm.button'),\n secondaryButtonText: t('cairo.cancel.button'),\n ...props,\n });\n };\n\n get isModalOpen() {\n return this.actionModal.isOpen;\n }\n}\n"],"mappings":";;;;;;AACA,IAAAA,sBAAA,GAAAC,OAAA;AAiBO,MAAMC,oBAAoB,CAAC;EAQhCC,WAAWA,CAACC,MAA6B,EAAE;IAAA,IAAAC,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA,uBAJpB,IAAIC,4CAAqB,CAE9C,CAAC;IAAA,IAAAF,gBAAA,CAAAC,OAAA,qBAOS,MAAM;MAChB,IAAI,CAACE,WAAW,CAACC,KAAK,CAACC,IAAI,CAAC,CAAC;IAC/B,CAAC;IAAA,IAAAL,gBAAA,CAAAC,OAAA,sBAEY,MAAM;MACjB,IAAI,CAACE,WAAW,CAACC,KAAK,CAACE,KAAK,CAAC,CAAC;IAChC,CAAC;IAAA,IAAAN,gBAAA,CAAAC,OAAA,kCAEwB,MAAM;MAC7B,IAAI,CAACM,UAAU,CAAC,CAAC;MACjB,IAAI,CAACC,WAAW,CAAC,CAAC;IACpB,CAAC;IAAA,IAAAR,gBAAA,CAAAC,OAAA,4BAEmBQ,KAAwC,IAAK;MAC/D,MAAM;QAAEC,SAAS,EAAEC;MAAE,CAAC,GAAG,IAAI;MAC7B,IAAI,CAACR,WAAW,CAACE,IAAI,CAAC;QACpBO,KAAK,EAAED,CAAC,CAAC,0BAA0B,CAAC;QACpCE,iBAAiB,EAAEF,CAAC,CAAC,sBAAsB,CAAC;QAC5CG,mBAAmB,EAAEH,CAAC,CAAC,qBAAqB,CAAC;QAC7C,GAAGF;MACL,CAAC,CAAC;IACJ,CAAC;IAzBC,IAAI,CAACC,SAAS,GAAGX,MAAM,CAACW,SAAS;IACjC,IAAI,CAACF,WAAW,GAAGT,MAAM,CAACS,WAAW;EACvC;EAyBA,IAAIO,WAAWA,CAAA,EAAG;IAChB,OAAO,IAAI,CAACZ,WAAW,CAACa,MAAM;EAChC;AACF;AAACC,OAAA,CAAApB,oBAAA,GAAAA,oBAAA","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["_SelectState","require","_mobx","_snapshot","_util","_events","BulkSelectState","allSelected","select","defaultStatus","isChecked","hasUnchecked","uncheckedValues","length","constructor","params","_defineProperty2","default","EventEmitter","events","emit","action","isEmptyEnabledItems","deselectAll","selectAll","collection","scrollToTop","disableAutoSelectAllCount","useNewSelectAllLogic","SelectState","keyGetter","item","key","totalSnapshot","Snapshot","expression","effect","result","total","makeObservable","computed","observable","ref","selectOne","selectOneItem","deselectOne","deselectOneItem","resetToDefaults","bound","selectedIds","uncheckedIds","selectedValues","selectedKeyedItems","uncheckedInCurrentCollection","selectedCountOrTotal","checkedSet","indeterminateSet","getCollectionItem","_keyedItemsMap","get","selectedKeys","toArray","filter","status","map","value","selectedCount","Set","isIndeterminate","final","keyedItems","finalizeMany","start","startAll","set","keyedItem","delete","clear","init","disposers","addEventListener","emitter","forceUpdate","reaction","syncValues","e","forEach","disposer","id","isEmpty","itemKey","has","toggle","exports"],"sources":["../../../src/state/BulkSelectState.ts"],"sourcesContent":["import { SelectState } from './SelectState';\nimport { action, computed, makeObservable, observable, reaction } from 'mobx';\nimport { CollectionState } from './CollectionState';\nimport { Snapshot } from './snapshot';\nimport { addEventListener, TypedEmitter } from '../util';\nimport { EventEmitter } from 'events';\nimport { KeyedItem } from '../model';\n\nexport interface BulkSelectKeyedItem<T> {\n item: T;\n key: string;\n}\n\nexport interface BulkSelectStateParams<T> {\n collection: CollectionState<T, any>;\n disableAutoSelectAllCount?: boolean;\n maxSelection?: number;\n scrollToTop: () => unknown;\n useNewSelectAllLogic?: boolean;\n}\n\nexport class BulkSelectState<T> {\n readonly select: SelectState<BulkSelectKeyedItem<T>>;\n readonly events = new EventEmitter() as TypedEmitter<{\n openModal: () => unknown;\n closeModal: () => unknown;\n }>;\n readonly collection;\n readonly scrollToTop;\n useNewSelectAllLogic;\n disableAutoSelectAllCount?: boolean;\n totalSnapshot;\n\n get allSelected() {\n return this.select.defaultStatus.isChecked;\n }\n\n get hasUnchecked() {\n return !!this.uncheckedValues.length;\n }\n\n constructor(params: Readonly<BulkSelectStateParams<T>>) {\n this.collection = params.collection;\n this.scrollToTop = params.scrollToTop;\n this.disableAutoSelectAllCount = params.disableAutoSelectAllCount;\n this.useNewSelectAllLogic = params.useNewSelectAllLogic;\n\n this.select = new SelectState<BulkSelectKeyedItem<T>>({\n keyGetter: (item) => item.key,\n });\n\n this.totalSnapshot = new Snapshot({\n expression: () => this.allSelected,\n effect: () => this.collection.result.total,\n });\n\n makeObservable(this, {\n allSelected: computed,\n disableAutoSelectAllCount: observable.ref,\n selectAll: action,\n selectOne: action,\n selectOneItem: action,\n deselectOne: action,\n deselectOneItem: action,\n resetToDefaults: action.bound,\n hasUnchecked: computed,\n selectedIds: computed,\n uncheckedIds: computed,\n selectedValues: computed,\n selectedKeyedItems: computed,\n uncheckedValues: computed,\n uncheckedInCurrentCollection: computed,\n selectedCountOrTotal: computed,\n checkedSet: computed,\n indeterminateSet: computed,\n });\n }\n\n getCollectionItem(key: string) {\n return this.collection.result._keyedItemsMap.get(key);\n }\n\n get selectedIds() {\n return this.select.selectedKeys;\n }\n\n get uncheckedIds() {\n return this.select.toArray\n .filter(({ status }) => !status.isChecked)\n .map(({ value }) => value.key);\n }\n\n get selectedCount(): number {\n return this.select.selectedCount;\n }\n\n get selectedValues() {\n return this.select.selectedValues.map(({ item }) => item);\n }\n\n get checkedSet() {\n return new Set(\n this.select.toArray\n .filter(({ status }) => status.isChecked)\n .map(({ value }) => value.key),\n );\n }\n\n get indeterminateSet() {\n return new Set(\n this.select.toArray\n .filter(({ status }) => status.isIndeterminate)\n .map(({ value }) => value.key),\n );\n }\n\n get uncheckedValues() {\n return this.select.toArray\n .filter(({ status }) => !status.isChecked)\n .map(({ value }) => value.item);\n }\n\n isChecked(key: string) {\n const { select } = this;\n return select.isChecked(key);\n }\n\n selectAll() {\n const { select, collection } = this;\n select.defaultStatus = select.defaultStatus.final();\n const {\n result: { keyedItems },\n } = collection;\n select.finalizeMany(keyedItems);\n }\n\n deselectAll() {\n const { select } = this;\n select.defaultStatus = select.defaultStatus.start();\n select.startAll();\n }\n\n selectOneItem(item: BulkSelectKeyedItem<T>) {\n const { select, useNewSelectAllLogic } = this;\n\n select.set(item);\n\n if (!useNewSelectAllLogic) {\n select.defaultStatus = select.defaultStatus.start();\n }\n }\n\n selectOne(key: string) {\n const { collection } = this;\n const { result } = collection;\n const keyedItem = result.get(key);\n if (keyedItem) {\n this.selectOneItem(keyedItem);\n }\n }\n\n deselectOneItem(keyedItem: BulkSelectKeyedItem<T>) {\n const { select, useNewSelectAllLogic } = this;\n\n select.delete(keyedItem);\n\n if (!useNewSelectAllLogic) {\n select.defaultStatus = select.defaultStatus.start();\n }\n }\n\n deselectOne(key: string) {\n const { collection } = this;\n const { result } = collection;\n const keyedItem = result.get(key);\n\n if (keyedItem == null) {\n return;\n }\n\n this.deselectOneItem(keyedItem);\n }\n\n openModal = () => {\n this.events.emit('openModal');\n };\n\n closeModal = () => {\n this.events.emit('closeModal');\n };\n\n resetToDefaults() {\n const { select } = this;\n select.defaultStatus = select.defaultStatus.start();\n select.clear();\n }\n\n init() {\n const disposers = [\n this.totalSnapshot.init(),\n addEventListener(this.collection.emitter, 'ready', () => {\n this.totalSnapshot.forceUpdate();\n }),\n reaction(\n () => this.collection.result.keyedItems,\n (keyedItems) => {\n const {\n select,\n allSelected,\n disableAutoSelectAllCount,\n collection: {\n result: { _keyedItemsMap },\n },\n } = this;\n if (allSelected && !disableAutoSelectAllCount) {\n select.syncValues(keyedItems);\n } else {\n select.syncValues(\n select.selectedKeys\n .map(\n (key) =>\n _keyedItemsMap.get(key) as\n | BulkSelectKeyedItem<T>\n | null\n | undefined,\n )\n .filter((e): e is BulkSelectKeyedItem<T> => e != null),\n );\n }\n },\n ),\n ];\n\n return () => {\n disposers.forEach((disposer) => disposer());\n };\n }\n\n get selectedKeyedItems() {\n return this.selectedIds\n .map((id) => this.collection.result.get(id))\n .filter((item): item is KeyedItem<T> => !!item);\n }\n\n get isEmpty() {\n return this.select.isEmpty;\n }\n\n get uncheckedInCurrentCollection() {\n const { uncheckedValues, collection } = this;\n const { itemKey } = collection;\n\n return uncheckedValues.filter((item) =>\n collection.result.has(itemKey(item)),\n );\n }\n\n get selectedCountOrTotal() {\n const {\n allSelected,\n disableAutoSelectAllCount,\n selectedIds,\n useNewSelectAllLogic,\n uncheckedInCurrentCollection,\n collection: {\n result: { total },\n },\n } = this;\n\n if (!allSelected || disableAutoSelectAllCount) {\n return selectedIds.length;\n }\n\n if (useNewSelectAllLogic) {\n return total - uncheckedInCurrentCollection.length;\n }\n\n return total;\n }\n\n toggleIsSelectAll = action(() => {\n const {\n allSelected,\n select: { isEmptyEnabledItems },\n } = this;\n if (allSelected || !isEmptyEnabledItems) {\n this.deselectAll();\n } else {\n this.selectAll();\n }\n });\n\n toggle(keyedItem: BulkSelectKeyedItem<T>) {\n this.select.toggle(keyedItem);\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["_SelectState","require","_mobx","_snapshot","_util","_events","BulkSelectState","allSelected","select","defaultStatus","isChecked","hasUnchecked","uncheckedValues","length","constructor","params","_defineProperty2","default","EventEmitter","events","emit","action","isEmptyEnabledItems","deselectAll","selectAll","collection","scrollToTop","disableAutoSelectAllCount","useNewSelectAllLogic","SelectState","keyGetter","item","key","totalSnapshot","Snapshot","expression","effect","result","total","makeObservable","computed","observable","ref","selectOne","selectOneItem","deselectOne","deselectOneItem","resetToDefaults","bound","selectedIds","uncheckedIds","selectedValues","selectedKeyedItems","uncheckedInCurrentCollection","selectedCountOrTotal","checkedSet","indeterminateSet","getCollectionItem","_keyedItemsMap","get","selectedKeys","toArray","filter","status","map","value","selectedCount","Set","isIndeterminate","final","keyedItems","finalizeMany","start","startAll","set","keyedItem","delete","clear","init","disposers","addEventListener","emitter","forceUpdate","reaction","syncValues","e","forEach","disposer","id","isEmpty","itemKey","has","toggle","exports"],"sources":["../../../src/state/BulkSelectState.ts"],"sourcesContent":["import { SelectState } from './SelectState';\nimport { action, computed, makeObservable, observable, reaction } from 'mobx';\nimport { CollectionState } from './CollectionState';\nimport { Snapshot } from './snapshot';\nimport { addEventListener, TypedEmitter } from '../util';\nimport { EventEmitter } from 'events';\nimport { KeyedItem } from '../model';\n\nexport interface BulkSelectKeyedItem<T> {\n item: T;\n key: string;\n}\n\nexport interface BulkSelectStateParams<T> {\n collection: CollectionState<T, any>;\n disableAutoSelectAllCount?: boolean;\n maxSelection?: number;\n scrollToTop: () => unknown;\n useNewSelectAllLogic?: boolean;\n}\n\nexport class BulkSelectState<T> {\n readonly select: SelectState<BulkSelectKeyedItem<T>>;\n readonly events = new EventEmitter() as TypedEmitter<{\n openModal: () => unknown;\n closeModal: () => unknown;\n }>;\n readonly collection;\n readonly scrollToTop;\n useNewSelectAllLogic;\n disableAutoSelectAllCount?: boolean;\n totalSnapshot;\n\n get allSelected() {\n return this.select.defaultStatus.isChecked;\n }\n\n get hasUnchecked() {\n return !!this.uncheckedValues.length;\n }\n\n constructor(params: Readonly<BulkSelectStateParams<T>>) {\n this.collection = params.collection;\n this.scrollToTop = params.scrollToTop;\n this.disableAutoSelectAllCount = params.disableAutoSelectAllCount;\n this.useNewSelectAllLogic = params.useNewSelectAllLogic;\n\n this.select = new SelectState<BulkSelectKeyedItem<T>>({\n keyGetter: (item) => item.key,\n });\n\n this.totalSnapshot = new Snapshot({\n expression: () => this.allSelected,\n effect: () => this.collection.result.total,\n });\n\n makeObservable(this, {\n allSelected: computed,\n disableAutoSelectAllCount: observable.ref,\n selectAll: action,\n selectOne: action,\n selectOneItem: action,\n deselectOne: action,\n deselectOneItem: action,\n resetToDefaults: action.bound,\n hasUnchecked: computed,\n selectedIds: computed,\n uncheckedIds: computed,\n selectedValues: computed,\n selectedKeyedItems: computed,\n uncheckedValues: computed,\n uncheckedInCurrentCollection: computed,\n selectedCountOrTotal: computed,\n checkedSet: computed,\n indeterminateSet: computed,\n });\n }\n\n getCollectionItem(key: string) {\n return this.collection.result._keyedItemsMap.get(key);\n }\n\n get selectedIds() {\n return this.select.selectedKeys;\n }\n\n get uncheckedIds() {\n return this.select.toArray\n .filter(({ status }) => !status.isChecked)\n .map(({ value }) => value.key);\n }\n\n get selectedCount(): number {\n return this.select.selectedCount;\n }\n\n get selectedValues() {\n return this.select.selectedValues.map(({ item }) => item);\n }\n\n get checkedSet() {\n return new Set(\n this.select.toArray\n .filter(({ status }) => status.isChecked)\n .map(({ value }) => value.key),\n );\n }\n\n get indeterminateSet() {\n return new Set(\n this.select.toArray\n .filter(({ status }) => status.isIndeterminate)\n .map(({ value }) => value.key),\n );\n }\n\n get uncheckedValues() {\n return this.select.toArray\n .filter(({ status }) => !status.isChecked)\n .map(({ value }) => value.item);\n }\n\n isChecked(key: string) {\n const { select } = this;\n return select.isChecked(key);\n }\n\n selectAll() {\n const { select, collection } = this;\n select.defaultStatus = select.defaultStatus.final();\n const {\n result: { keyedItems },\n } = collection;\n select.finalizeMany(keyedItems);\n }\n\n deselectAll() {\n const { select } = this;\n select.defaultStatus = select.defaultStatus.start();\n select.startAll();\n }\n\n selectOneItem(item: BulkSelectKeyedItem<T>) {\n const { select, useNewSelectAllLogic } = this;\n\n select.set(item);\n\n if (!useNewSelectAllLogic) {\n select.defaultStatus = select.defaultStatus.start();\n }\n }\n\n selectOne(key: string) {\n const { collection } = this;\n const { result } = collection;\n const keyedItem = result.get(key);\n if (keyedItem) {\n this.selectOneItem(keyedItem);\n }\n }\n\n deselectOneItem(keyedItem: BulkSelectKeyedItem<T>) {\n const { select, useNewSelectAllLogic } = this;\n\n select.delete(keyedItem);\n\n if (!useNewSelectAllLogic) {\n select.defaultStatus = select.defaultStatus.start();\n }\n }\n\n deselectOne(key: string) {\n const { collection } = this;\n const { result } = collection;\n const keyedItem = result.get(key);\n\n if (keyedItem == null) {\n return;\n }\n\n this.deselectOneItem(keyedItem);\n }\n\n openModal = () => {\n this.events.emit('openModal');\n };\n\n closeModal = () => {\n this.events.emit('closeModal');\n };\n\n resetToDefaults() {\n const { select } = this;\n select.defaultStatus = select.defaultStatus.start();\n select.clear();\n }\n\n init() {\n const disposers = [\n this.totalSnapshot.init(),\n addEventListener(this.collection.emitter, 'ready', () => {\n this.totalSnapshot.forceUpdate();\n }),\n reaction(\n () => this.collection.result.keyedItems,\n (keyedItems) => {\n const {\n select,\n allSelected,\n disableAutoSelectAllCount,\n collection: {\n result: { _keyedItemsMap },\n },\n } = this;\n if (allSelected && !disableAutoSelectAllCount) {\n select.syncValues(keyedItems);\n } else {\n select.syncValues(\n select.selectedKeys\n .map(\n (key) =>\n _keyedItemsMap.get(key) as\n | BulkSelectKeyedItem<T>\n | null\n | undefined,\n )\n .filter((e): e is BulkSelectKeyedItem<T> => e != null),\n );\n }\n },\n ),\n ];\n\n return () => {\n disposers.forEach((disposer) => disposer());\n };\n }\n\n get selectedKeyedItems() {\n return this.selectedIds\n .map((id) => this.collection.result.get(id))\n .filter((item): item is KeyedItem<T> => !!item);\n }\n\n get isEmpty() {\n return this.select.isEmpty;\n }\n\n get uncheckedInCurrentCollection() {\n const { uncheckedValues, collection } = this;\n const { itemKey } = collection;\n\n return uncheckedValues.filter((item) =>\n collection.result.has(itemKey(item)),\n );\n }\n\n get selectedCountOrTotal() {\n const {\n allSelected,\n disableAutoSelectAllCount,\n selectedIds,\n useNewSelectAllLogic,\n uncheckedInCurrentCollection,\n collection: {\n result: { total },\n },\n } = this;\n\n if (!allSelected || disableAutoSelectAllCount) {\n return selectedIds.length;\n }\n\n if (useNewSelectAllLogic) {\n return total - uncheckedInCurrentCollection.length;\n }\n\n return total;\n }\n\n toggleIsSelectAll = action(() => {\n const {\n allSelected,\n select: { isEmptyEnabledItems },\n } = this;\n if (allSelected || !isEmptyEnabledItems) {\n this.deselectAll();\n } else {\n this.selectAll();\n }\n });\n\n toggle(keyedItem: BulkSelectKeyedItem<T>) {\n this.select.toggle(keyedItem);\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["_util","require","_v","_mobx","_events","withoutDefaults","withoutIrrelevant","CollectionBIReporter","constructor","params","_defineProperty2","default","EventEmitter","collection","reportBi","init","events","emitter","query","disposers","addEventListener","action","origin","cairoAllFiltersCleared","filterNames","activeFilters","map","filter","name","join","filteredListSize","result","total","numFiltersCleared","activeFiltersCount","prevSortedColumnId","sortedColumnId","prevSortedIds","Set","sort","value","field","prevSortOrder","_getSortOrder","prevSortingOrder","_getSortDirection","once","col","id","itemIndex","findIndex","cairoComponentSorted","newSortedColumn","newSortingOrder","prevSortedColumn","newSortOrder","isAddNewSort","has","prevNumSortingColumns","size","numSortingColumns","length","emit","startTime","performance","now","totalNewItems","loadMore","loadedItems","loadingTime","Math","round","searchTerm","search","cairoSearchResults","searchResultsCnt","asComputed","cairoFilterToggled","filterName","numFiltersActive","actionType","filterValue","forEach","d","columndId","find","direction","JSON","stringify","fieldName","order","exports"],"sources":["../../../src/state/CollectionBIReporter.ts"],"sourcesContent":["import { CollectionState } from './CollectionState';\nimport { addEventListener, TypedEmitter, withoutIrrelevant } from '../util';\nimport {\n cairoComponentSorted,\n cairoFilterToggled,\n cairoAllFiltersCleared,\n cairoSearchResults,\n loadMore,\n} from '@wix/bex-utils/@wix/bi-logger-cairo-os/v2';\nimport { FiltersMap } from '../model';\nimport { ReportBI } from '../services';\nimport { action } from 'mobx';\nimport { EventEmitter } from 'events';\n\nconst withoutDefaults = withoutIrrelevant<\n | 'currentTab'\n | 'currentView'\n | 'currentFilters'\n | 'currentSortOrder'\n | 'listSize'\n | 'initialItems'\n>();\n\nexport interface CollectionBIReporterParams<T, F extends FiltersMap> {\n readonly collection: CollectionState<T, F>;\n readonly reportBi: ReportBI;\n}\n\nexport class CollectionBIReporter<T, F extends FiltersMap> {\n readonly collection;\n readonly reportBi;\n readonly events = new EventEmitter() as TypedEmitter<{\n sortStart: (params: { col: { id: string } }) => unknown;\n }>;\n\n sortedColumnId = '';\n\n constructor(params: CollectionBIReporterParams<T, F>) {\n this.collection = params.collection;\n this.reportBi = params.reportBi;\n }\n\n init() {\n const { collection, events } = this;\n const { emitter, query } = collection;\n\n const disposers = [\n addEventListener(\n emitter,\n 'beforeClearFilters',\n action(({ origin }) => {\n this.reportBi(\n withoutDefaults(cairoAllFiltersCleared)({\n filterNames: collection.query.activeFilters\n .map((filter) => filter.name)\n .join(','),\n filteredListSize: collection.result.total,\n numFiltersCleared: collection.query.activeFiltersCount,\n origin,\n }),\n );\n }),\n ),\n\n addEventListener(\n emitter,\n 'beforeSortStart',\n action(({ origin }) => {\n const prevSortedColumnId = this.sortedColumnId;\n const prevSortedIds = new Set(\n query.sort.value.map(({ field }) => field),\n );\n\n const prevSortOrder = this._getSortOrder();\n let prevSortingOrder = this._getSortDirection(prevSortedColumnId);\n\n events.once('sortStart', ({ col }) => {\n this.sortedColumnId = col.id;\n\n if (prevSortedColumnId && col.id !== prevSortedColumnId) {\n prevSortingOrder = this._getSortDirection(prevSortedColumnId);\n } else if (!prevSortedColumnId) {\n prevSortingOrder = '';\n }\n\n const itemIndex = this.collection.query.sort.value.findIndex(\n ({ field }) => field === col.id,\n );\n\n this.reportBi(\n withoutDefaults(cairoComponentSorted)({\n newSortedColumn: col.id,\n newSortingOrder: this._getSortDirection(col.id),\n prevSortedColumn: prevSortedColumnId,\n prevSortingOrder,\n origin,\n prevSortOrder,\n newSortOrder: this._getSortOrder(),\n itemIndex,\n isAddNewSort: !prevSortedIds.has(col.id),\n prevNumSortingColumns: prevSortedIds.size,\n numSortingColumns: query.sort.value.length,\n }),\n );\n });\n }),\n ),\n\n addEventListener(emitter, 'sortStart', (params) => {\n events.emit('sortStart', params);\n }),\n\n addEventListener(emitter, 'newPageStart', () => {\n const startTime = performance.now();\n\n return ({ totalNewItems }) => {\n this.reportBi(\n withoutDefaults(loadMore)({\n loadedItems: totalNewItems,\n loadingTime: Math.round(performance.now() - startTime),\n }),\n );\n };\n }),\n\n addEventListener(emitter, 'searchStart', () => {\n const startTime = performance.now();\n const searchTerm = collection.query.search.value;\n return () => {\n this.reportBi(\n withoutDefaults(cairoSearchResults)({\n searchTerm,\n searchResultsCnt: collection.result.asComputed.total,\n loadingTime: Math.round(performance.now() - startTime),\n }),\n );\n };\n }),\n\n addEventListener(\n emitter,\n 'search',\n action(() => {\n this.reportBi(\n withoutDefaults(cairoFilterToggled)({\n filterName: 'search',\n origin: 'toolbar',\n numFiltersActive: collection.query.activeFiltersCount,\n actionType: 'add',\n filterValue: collection.query.search.value,\n filteredListSize: collection.result.total,\n }),\n );\n }),\n ),\n ];\n\n return () => {\n disposers.forEach((d) => d());\n };\n }\n\n _getSortDirection(columndId?: string) {\n const {\n query: {\n sort: { value },\n },\n } = this.collection;\n\n const sort = value.find(({ field }) => field === columndId);\n\n if (sort) {\n return sort.direction;\n }\n\n return 'removed';\n }\n\n _getSortOrder() {\n const {\n query: { sort },\n } = this.collection;\n\n return JSON.stringify(\n sort.value.map(({ field, direction }) => ({\n fieldName: field,\n order: direction,\n })),\n );\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["_util","require","_v","_mobx","_events","withoutDefaults","withoutIrrelevant","CollectionBIReporter","constructor","params","_defineProperty2","default","EventEmitter","collection","reportBi","init","events","emitter","query","disposers","addEventListener","action","origin","cairoAllFiltersCleared","filterNames","activeFilters","map","filter","name","join","filteredListSize","result","total","numFiltersCleared","activeFiltersCount","prevSortedColumnId","sortedColumnId","prevSortedIds","Set","sort","value","field","prevSortOrder","_getSortOrder","prevSortingOrder","_getSortDirection","once","col","id","itemIndex","findIndex","cairoComponentSorted","newSortedColumn","newSortingOrder","prevSortedColumn","newSortOrder","isAddNewSort","has","prevNumSortingColumns","size","numSortingColumns","length","emit","startTime","performance","now","totalNewItems","loadMore","loadedItems","loadingTime","Math","round","searchTerm","search","cairoSearchResults","searchResultsCnt","asComputed","cairoFilterToggled","filterName","numFiltersActive","actionType","filterValue","forEach","d","columndId","find","direction","JSON","stringify","fieldName","order","exports"],"sources":["../../../src/state/CollectionBIReporter.ts"],"sourcesContent":["import { CollectionState } from './CollectionState';\nimport { addEventListener, TypedEmitter, withoutIrrelevant } from '../util';\nimport {\n cairoComponentSorted,\n cairoFilterToggled,\n cairoAllFiltersCleared,\n cairoSearchResults,\n loadMore,\n} from '@wix/bex-utils/@wix/bi-logger-cairo-os/v2';\nimport { FiltersMap } from '../model';\nimport { ReportBI } from '../services';\nimport { action } from 'mobx';\nimport { EventEmitter } from 'events';\n\nconst withoutDefaults = withoutIrrelevant<\n | 'currentTab'\n | 'currentView'\n | 'currentFilters'\n | 'currentSortOrder'\n | 'listSize'\n | 'initialItems'\n>();\n\nexport interface CollectionBIReporterParams<T, F extends FiltersMap> {\n readonly collection: CollectionState<T, F>;\n readonly reportBi: ReportBI;\n}\n\nexport class CollectionBIReporter<T, F extends FiltersMap> {\n readonly collection;\n readonly reportBi;\n readonly events = new EventEmitter() as TypedEmitter<{\n sortStart: (params: { col: { id: string } }) => unknown;\n }>;\n\n sortedColumnId = '';\n\n constructor(params: CollectionBIReporterParams<T, F>) {\n this.collection = params.collection;\n this.reportBi = params.reportBi;\n }\n\n init() {\n const { collection, events } = this;\n const { emitter, query } = collection;\n\n const disposers = [\n addEventListener(\n emitter,\n 'beforeClearFilters',\n action(({ origin }) => {\n this.reportBi(\n withoutDefaults(cairoAllFiltersCleared)({\n filterNames: collection.query.activeFilters\n .map((filter) => filter.name)\n .join(','),\n filteredListSize: collection.result.total,\n numFiltersCleared: collection.query.activeFiltersCount,\n origin,\n }),\n );\n }),\n ),\n\n addEventListener(\n emitter,\n 'beforeSortStart',\n action(({ origin }) => {\n const prevSortedColumnId = this.sortedColumnId;\n const prevSortedIds = new Set(\n query.sort.value.map(({ field }) => field),\n );\n\n const prevSortOrder = this._getSortOrder();\n let prevSortingOrder = this._getSortDirection(prevSortedColumnId);\n\n events.once('sortStart', ({ col }) => {\n this.sortedColumnId = col.id;\n\n if (prevSortedColumnId && col.id !== prevSortedColumnId) {\n prevSortingOrder = this._getSortDirection(prevSortedColumnId);\n } else if (!prevSortedColumnId) {\n prevSortingOrder = '';\n }\n\n const itemIndex = this.collection.query.sort.value.findIndex(\n ({ field }) => field === col.id,\n );\n\n this.reportBi(\n withoutDefaults(cairoComponentSorted)({\n newSortedColumn: col.id,\n newSortingOrder: this._getSortDirection(col.id),\n prevSortedColumn: prevSortedColumnId,\n prevSortingOrder,\n origin,\n prevSortOrder,\n newSortOrder: this._getSortOrder(),\n itemIndex,\n isAddNewSort: !prevSortedIds.has(col.id),\n prevNumSortingColumns: prevSortedIds.size,\n numSortingColumns: query.sort.value.length,\n }),\n );\n });\n }),\n ),\n\n addEventListener(emitter, 'sortStart', (params) => {\n events.emit('sortStart', params);\n }),\n\n addEventListener(emitter, 'newPageStart', () => {\n const startTime = performance.now();\n\n return ({ totalNewItems }) => {\n this.reportBi(\n withoutDefaults(loadMore)({\n loadedItems: totalNewItems,\n loadingTime: Math.round(performance.now() - startTime),\n }),\n );\n };\n }),\n\n addEventListener(emitter, 'searchStart', () => {\n const startTime = performance.now();\n const searchTerm = collection.query.search.value;\n return () => {\n this.reportBi(\n withoutDefaults(cairoSearchResults)({\n searchTerm,\n searchResultsCnt: collection.result.asComputed.total,\n loadingTime: Math.round(performance.now() - startTime),\n }),\n );\n };\n }),\n\n addEventListener(\n emitter,\n 'search',\n action(() => {\n this.reportBi(\n withoutDefaults(cairoFilterToggled)({\n filterName: 'search',\n origin: 'toolbar',\n numFiltersActive: collection.query.activeFiltersCount,\n actionType: 'add',\n filterValue: collection.query.search.value,\n filteredListSize: collection.result.total,\n }),\n );\n }),\n ),\n ];\n\n return () => {\n disposers.forEach((d) => d());\n };\n }\n\n _getSortDirection(columndId?: string) {\n const {\n query: {\n sort: { value },\n },\n } = this.collection;\n\n const sort = value.find(({ field }) => field === columndId);\n\n if (sort) {\n return sort.direction;\n }\n\n return 'removed';\n }\n\n _getSortOrder() {\n const {\n query: { sort },\n } = this.collection;\n\n return JSON.stringify(\n sort.value.map(({ field, direction }) => ({\n fieldName: field,\n order: direction,\n })),\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}