@wix/bex-core 2.157.0 → 2.159.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/assets/locale/messages_ar.json +0 -1
- package/dist/cjs/assets/locale/messages_bg.json +0 -1
- package/dist/cjs/assets/locale/messages_ca.json +0 -1
- package/dist/cjs/assets/locale/messages_cs.json +0 -2
- package/dist/cjs/assets/locale/messages_da.json +0 -2
- package/dist/cjs/assets/locale/messages_de.json +0 -2
- package/dist/cjs/assets/locale/messages_el.json +0 -1
- package/dist/cjs/assets/locale/messages_en.json +0 -2
- package/dist/cjs/assets/locale/messages_es.json +0 -2
- package/dist/cjs/assets/locale/messages_fi.json +0 -1
- package/dist/cjs/assets/locale/messages_fr.json +0 -2
- package/dist/cjs/assets/locale/messages_he.json +0 -1
- package/dist/cjs/assets/locale/messages_hi.json +0 -2
- package/dist/cjs/assets/locale/messages_hu.json +0 -1
- package/dist/cjs/assets/locale/messages_id.json +0 -2
- package/dist/cjs/assets/locale/messages_it.json +0 -2
- package/dist/cjs/assets/locale/messages_ja.json +0 -2
- package/dist/cjs/assets/locale/messages_ko.json +0 -2
- package/dist/cjs/assets/locale/messages_lt.json +0 -1
- package/dist/cjs/assets/locale/messages_ms.json +0 -1
- package/dist/cjs/assets/locale/messages_nl.json +0 -2
- package/dist/cjs/assets/locale/messages_no.json +0 -2
- package/dist/cjs/assets/locale/messages_pl.json +0 -2
- package/dist/cjs/assets/locale/messages_pt.json +0 -2
- package/dist/cjs/assets/locale/messages_ro.json +0 -1
- package/dist/cjs/assets/locale/messages_ru.json +0 -2
- package/dist/cjs/assets/locale/messages_sk.json +0 -1
- package/dist/cjs/assets/locale/messages_sl.json +0 -1
- package/dist/cjs/assets/locale/messages_sv.json +0 -2
- package/dist/cjs/assets/locale/messages_th.json +0 -2
- package/dist/cjs/assets/locale/messages_tl.json +0 -1
- package/dist/cjs/assets/locale/messages_tr.json +0 -2
- package/dist/cjs/assets/locale/messages_uk.json +0 -2
- package/dist/cjs/assets/locale/messages_vi.json +0 -2
- package/dist/cjs/assets/locale/messages_visuale2e.json +0 -2
- package/dist/cjs/assets/locale/messages_zh.json +0 -2
- package/dist/cjs/hooks/useAmbassadorCollection.js +48 -18
- package/dist/cjs/hooks/useAmbassadorCollection.js.map +1 -1
- package/dist/cjs/model/wixPatternsEssentials.js.map +1 -1
- package/dist/cjs/services/DataExtensionService/dataExtensionService.js +6 -3
- package/dist/cjs/services/DataExtensionService/dataExtensionService.js.map +1 -1
- package/dist/cjs/services/tagsService/createTagErrors.js.map +1 -1
- package/dist/cjs/services/tagsService/tagsService.js +10 -4
- package/dist/cjs/services/tagsService/tagsService.js.map +1 -1
- package/dist/cjs/services/translations.js.map +1 -1
- package/dist/cjs/state/AppsState.js +4 -2
- package/dist/cjs/state/AppsState.js.map +1 -1
- package/dist/cjs/state/BulkSelectState.js +12 -4
- package/dist/cjs/state/BulkSelectState.js.map +1 -1
- package/dist/cjs/state/CollectionOptimisticActions.js +1 -1
- package/dist/cjs/state/CollectionOptimisticActions.js.map +1 -1
- package/dist/cjs/state/ExportState/createExportAsyncJobErrors.js.map +1 -1
- package/dist/cjs/state/ExportState/getExportAsyncJobErrors.js.map +1 -1
- package/dist/cjs/state/SelectMapState.js +6 -2
- package/dist/cjs/state/SelectMapState.js.map +1 -1
- package/dist/cjs/state/TagsState/TagsManagementState.js +18 -1
- package/dist/cjs/state/TagsState/TagsManagementState.js.map +1 -1
- package/dist/esm/assets/locale/messages_ar.json +0 -1
- package/dist/esm/assets/locale/messages_bg.json +0 -1
- package/dist/esm/assets/locale/messages_ca.json +0 -1
- package/dist/esm/assets/locale/messages_cs.json +0 -2
- package/dist/esm/assets/locale/messages_da.json +0 -2
- package/dist/esm/assets/locale/messages_de.json +0 -2
- package/dist/esm/assets/locale/messages_el.json +0 -1
- package/dist/esm/assets/locale/messages_en.json +0 -2
- package/dist/esm/assets/locale/messages_es.json +0 -2
- package/dist/esm/assets/locale/messages_fi.json +0 -1
- package/dist/esm/assets/locale/messages_fr.json +0 -2
- package/dist/esm/assets/locale/messages_he.json +0 -1
- package/dist/esm/assets/locale/messages_hi.json +0 -2
- package/dist/esm/assets/locale/messages_hu.json +0 -1
- package/dist/esm/assets/locale/messages_id.json +0 -2
- package/dist/esm/assets/locale/messages_it.json +0 -2
- package/dist/esm/assets/locale/messages_ja.json +0 -2
- package/dist/esm/assets/locale/messages_ko.json +0 -2
- package/dist/esm/assets/locale/messages_lt.json +0 -1
- package/dist/esm/assets/locale/messages_ms.json +0 -1
- package/dist/esm/assets/locale/messages_nl.json +0 -2
- package/dist/esm/assets/locale/messages_no.json +0 -2
- package/dist/esm/assets/locale/messages_pl.json +0 -2
- package/dist/esm/assets/locale/messages_pt.json +0 -2
- package/dist/esm/assets/locale/messages_ro.json +0 -1
- package/dist/esm/assets/locale/messages_ru.json +0 -2
- package/dist/esm/assets/locale/messages_sk.json +0 -1
- package/dist/esm/assets/locale/messages_sl.json +0 -1
- package/dist/esm/assets/locale/messages_sv.json +0 -2
- package/dist/esm/assets/locale/messages_th.json +0 -2
- package/dist/esm/assets/locale/messages_tl.json +0 -1
- package/dist/esm/assets/locale/messages_tr.json +0 -2
- package/dist/esm/assets/locale/messages_uk.json +0 -2
- package/dist/esm/assets/locale/messages_vi.json +0 -2
- package/dist/esm/assets/locale/messages_visuale2e.json +0 -2
- package/dist/esm/assets/locale/messages_zh.json +0 -2
- package/dist/esm/hooks/useAmbassadorCollection.js +24 -14
- package/dist/esm/hooks/useAmbassadorCollection.js.map +1 -1
- package/dist/esm/services/DataExtensionService/dataExtensionService.js +3 -3
- package/dist/esm/services/DataExtensionService/dataExtensionService.js.map +1 -1
- package/dist/esm/services/tagsService/createTagErrors.js.map +1 -1
- package/dist/esm/services/tagsService/tagsService.js +4 -4
- package/dist/esm/services/tagsService/tagsService.js.map +1 -1
- package/dist/esm/state/AppsState.js +2 -2
- package/dist/esm/state/AppsState.js.map +1 -1
- package/dist/esm/state/BulkSelectState.js +13 -5
- package/dist/esm/state/BulkSelectState.js.map +1 -1
- package/dist/esm/state/CollectionOptimisticActions.js +1 -1
- package/dist/esm/state/CollectionOptimisticActions.js.map +1 -1
- package/dist/esm/state/ExportState/createExportAsyncJobErrors.js.map +1 -1
- package/dist/esm/state/ExportState/getExportAsyncJobErrors.js.map +1 -1
- package/dist/esm/state/SelectMapState.js +7 -3
- package/dist/esm/state/SelectMapState.js.map +1 -1
- package/dist/esm/state/TagsState/TagsManagementState.js +17 -1
- package/dist/esm/state/TagsState/TagsManagementState.js.map +1 -1
- package/dist/types/hooks/useAmbassadorCollection.d.ts.map +1 -1
- package/dist/types/model/wixPatternsEssentials.d.ts +1 -0
- package/dist/types/model/wixPatternsEssentials.d.ts.map +1 -1
- package/dist/types/services/DataExtensionService/dataExtensionService.d.ts.map +1 -1
- package/dist/types/services/fetchTranslationsPreBundled.d.ts +1 -1
- package/dist/types/services/fetchTranslationsPreBundled.d.ts.map +1 -1
- package/dist/types/services/tagsService/createTagErrors.d.ts +2 -2
- package/dist/types/services/tagsService/createTagErrors.d.ts.map +1 -1
- package/dist/types/services/tagsService/tagsService.d.ts +3 -3
- package/dist/types/services/tagsService/tagsService.d.ts.map +1 -1
- package/dist/types/services/translations.d.ts +1 -4
- package/dist/types/services/translations.d.ts.map +1 -1
- package/dist/types/state/AppsState.d.ts.map +1 -1
- package/dist/types/state/BulkSelectState.d.ts.map +1 -1
- package/dist/types/state/ExportState/createExportAsyncJobErrors.d.ts +2 -2
- package/dist/types/state/ExportState/createExportAsyncJobErrors.d.ts.map +1 -1
- package/dist/types/state/ExportState/getExportAsyncJobErrors.d.ts +2 -2
- package/dist/types/state/ExportState/getExportAsyncJobErrors.d.ts.map +1 -1
- package/dist/types/state/SelectMapState.d.ts.map +1 -1
- package/dist/types/state/TagsState/TagsManagementState.d.ts +3 -1
- package/dist/types/state/TagsState/TagsManagementState.d.ts.map +1 -1
- package/dist/types/state/WixPatternsContainer.d.ts +3 -3
- package/dist/types/state/WixPatternsContainer.d.ts.map +1 -1
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_TaskState","require","_mobx","_http","AppsState","constructor","params","_defineProperty2","default","TaskState","container","dataExtension","makeObservable","apps","observable","ref","appNames","computed","init","initTask","runOnce","status","promise","appIds","appSchemas","map","schema","appDefId","filter","Boolean","_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","environment","language","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';\nimport { DataExtensionState } from './DataExtensionState';\n\nexport interface AppsStateParams {\n container: WixPatternsContainer;\n dataExtension: DataExtensionState;\n}\n\nexport class AppsState {\n readonly initTask = new TaskState();\n readonly container: WixPatternsContainer;\n readonly dataExtension;\n\n apps: MarketListing[] = [];\n\n constructor(params: Readonly<AppsStateParams>) {\n this.container = params.container;\n this.dataExtension = params.dataExtension;\n\n makeObservable(this, {\n apps: observable.ref,\n appNames: computed,\n });\n }\n\n init() {\n const { initTask, dataExtension } = this;\n\n initTask.runOnce(async () => {\n await dataExtension.initTask.status.promise;\n const appIds = (dataExtension.appSchemas || [])\n .map((schema) => schema.appDefId)\n .filter(Boolean) as string[];\n\n await this._fetchApps(appIds);\n });\n\n return () => {};\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
|
|
1
|
+
{"version":3,"names":["_TaskState","require","_mobx","_http","AppsState","constructor","params","_defineProperty2","default","TaskState","container","dataExtension","makeObservable","apps","observable","ref","appNames","computed","init","initTask","runOnce","status","promise","appIds","appSchemas","map","schema","appDefId","filter","Boolean","_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","errorHandler","withErrorHandler","httpClient","queryMarketListing","query","environment","language","errorCodesMap","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';\nimport { DataExtensionState } from './DataExtensionState';\n\nexport interface AppsStateParams {\n container: WixPatternsContainer;\n dataExtension: DataExtensionState;\n}\n\nexport class AppsState {\n readonly initTask = new TaskState();\n readonly container: WixPatternsContainer;\n readonly dataExtension;\n\n apps: MarketListing[] = [];\n\n constructor(params: Readonly<AppsStateParams>) {\n this.container = params.container;\n this.dataExtension = params.dataExtension;\n\n makeObservable(this, {\n apps: observable.ref,\n appNames: computed,\n });\n }\n\n init() {\n const { initTask, dataExtension } = this;\n\n initTask.runOnce(async () => {\n await dataExtension.initTask.status.promise;\n const appIds = (dataExtension.appSchemas || [])\n .map((schema) => schema.appDefId)\n .filter(Boolean) as string[];\n\n await this._fetchApps(appIds);\n });\n\n return () => {};\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.errorHandler.withErrorHandler(\n () =>\n 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 { errorCodesMap: {} },\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":[]}
|
|
@@ -143,7 +143,9 @@ class BulkSelectState {
|
|
|
143
143
|
const {
|
|
144
144
|
select
|
|
145
145
|
} = this;
|
|
146
|
-
|
|
146
|
+
(0, _mobx.runInAction)(() => {
|
|
147
|
+
select.defaultStatus = select.defaultStatus.start();
|
|
148
|
+
});
|
|
147
149
|
select.startAll();
|
|
148
150
|
}
|
|
149
151
|
selectOneItem(item) {
|
|
@@ -153,7 +155,9 @@ class BulkSelectState {
|
|
|
153
155
|
} = this;
|
|
154
156
|
select.set(item);
|
|
155
157
|
if (!useNewSelectAllLogic) {
|
|
156
|
-
|
|
158
|
+
(0, _mobx.runInAction)(() => {
|
|
159
|
+
select.defaultStatus = select.defaultStatus.start();
|
|
160
|
+
});
|
|
157
161
|
}
|
|
158
162
|
}
|
|
159
163
|
selectOne(key) {
|
|
@@ -175,7 +179,9 @@ class BulkSelectState {
|
|
|
175
179
|
} = this;
|
|
176
180
|
select.delete(keyedItem);
|
|
177
181
|
if (!useNewSelectAllLogic) {
|
|
178
|
-
|
|
182
|
+
(0, _mobx.runInAction)(() => {
|
|
183
|
+
select.defaultStatus = select.defaultStatus.start();
|
|
184
|
+
});
|
|
179
185
|
}
|
|
180
186
|
}
|
|
181
187
|
deselectOne(key) {
|
|
@@ -195,7 +201,9 @@ class BulkSelectState {
|
|
|
195
201
|
const {
|
|
196
202
|
select
|
|
197
203
|
} = this;
|
|
198
|
-
|
|
204
|
+
(0, _mobx.runInAction)(() => {
|
|
205
|
+
select.defaultStatus = select.defaultStatus.start();
|
|
206
|
+
});
|
|
199
207
|
select.clear();
|
|
200
208
|
}
|
|
201
209
|
init() {
|
|
@@ -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","allSelectedItemsFetched","items","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 allSelectedItemsFetched() {\n return this.selectedCountOrTotal <= this.collection.result.items.length;\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
|
+
{"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","allSelectedItemsFetched","items","Set","isIndeterminate","final","keyedItems","finalizeMany","runInAction","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 {\n action,\n computed,\n makeObservable,\n observable,\n reaction,\n runInAction,\n} 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 allSelectedItemsFetched() {\n return this.selectedCountOrTotal <= this.collection.result.items.length;\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 runInAction(() => {\n select.defaultStatus = select.defaultStatus.start();\n });\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 runInAction(() => {\n select.defaultStatus = select.defaultStatus.start();\n });\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 runInAction(() => {\n select.defaultStatus = select.defaultStatus.start();\n });\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 runInAction(() => {\n select.defaultStatus = select.defaultStatus.start();\n });\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":["_mobx","require","_CollectionOptimisticActionsState","_CollectionOptimisticProcessor","_CollectionOptimisticPatch","_CollectionOptimisticExecutor","_events","_QueryResultSimulationDefault","_CollectionOptimisticSequenceExecutor","CollectionOptimisticActions","constructor","params","_defineProperty2","default","EventEmitter","action","patch","state","collection","collections","noInvalidate","processors","_commitMode","patches","remove","length","forEach","processorHelpers","commit","invalidate","p","refreshAllPages","events","clearPatch","off","_clearPatch","onRefresh","isStale","once","emit","on","query","sequences","Map","CollectionOptimisticActionsState","source","patchesCache","container","cacheNamespace","resultSimulationDefault","QueryResultSimulationDefault","predicate","orderBy","createdAt","executor","CollectionOptimisticExecutor","batchWait","errorMonitor","showToast","translate","lodash","push","CollectionOptimisticProcessor","optimistic","_optimisticActions","makeObservable","pushPatchAndReprocess","replacePatchAndReprocess","rollback","bound","clear","move","pendingMovePatches","computed","_queryNames","queryName","map","c","hasRunningSequence","Array","from","values","some","s","seq","running","filter","isArray","newPatch","oldPatch","oldPatchIndex","findIndex","createOne","item","createMany","items","itemKey","result","submit","updateServerAfter","onUndo","onTryAgain","onError","optimisticPatchParams","queryCache","queryNames","actionType","patchedItems","originalItems","originalTotal","total","get","selector","has","optimisticPatch","OptimisticPatch","_clearPatchOnNextResultOrUnmount","execute","actions","submitResult","reduce","patchedItemsEntries","key","set","updatedOptimisticPatch","onRollback","eventuallyUpdated","onEventuallyUpdated","updateMany","keepPosition","_result$get","originalItem","enqueueMovePatch","event","filtersKeyHash","_initSequence","CollectionOptimisticSequenceExecutor","err","pendingPatches","_p$move","Error","message","reorderModeCanceledMessage","biName","onClick","sequence","collectionSnapshot","updateOne","updateAll","patchOrFn","originQuery","itemPredicate","updatedAt","Date","deleteMany","deleteOne","deleteAll","initCollection","i","indexOf","splice","init","_patchesBeforeUnmount","emitRefresh","emitBeforeResultUpdated","emitter","disposers","reaction","isEmpty","_pages","unprocessed","flatMap","page","allFilteredOut","fetchNextPageIfNeeded","disposer","toJSON","remaining","exports"],"sources":["../../../src/state/CollectionOptimisticActions.ts"],"sourcesContent":["import { ActionMove, ComputedQuery, FiltersMap } from '../model';\nimport {\n action,\n computed,\n IObservableArray,\n makeObservable,\n reaction,\n} from 'mobx';\nimport { CollectionState } from './CollectionState';\nimport { Order } from './QueryResultSimulation';\nimport { CollectionOptimisticActionsState } from './CollectionOptimisticActionsState';\nimport { CollectionOptimisticProcessor } from './CollectionOptimisticProcessor';\nimport {\n OptimisticPatch,\n OptimisticPatchParams,\n} from './CollectionOptimisticPatch';\nimport { CollectionOptimisticExecutor } from './CollectionOptimisticExecutor';\nimport { EventEmitter } from 'events';\nimport { TypedEmitter } from '../util';\nimport { QueryResultSimulationDefault } from './QueryResultSimulationDefault';\nimport { CollectionOptimisticSequenceExecutor } from './CollectionOptimisticSequenceExecutor';\nimport { ModalLayoutProps } from '../services';\nimport { QueryState } from './QueryState';\nimport {\n CreateManyParams,\n DeleteManyParams,\n OptimisticActionBasis,\n UpdateAllParams,\n UpdateManyParams,\n} from './OptimisticActions';\n\nexport interface MoveParams<T, R> extends OptimisticActionBasis {\n /**\n * Function to submit the move operation.\n * @param params - The parameters for the move action.\n */\n submit?: (params: ActionMove<T>) => Promise<R>;\n /**\n * Snapshot of the collection before the move operation.\n */\n collectionSnapshot: { [key: string]: string | number | undefined };\n}\n\nexport interface CollectionOptimisticActionsBaseParams<\n T,\n F extends FiltersMap,\n> {\n /**\n * A function that simulates the filtering in the server.\n * The function should return another function that accepts an item, and return a boolean that indicates whether the item passes the query filters or not.\n * @param computedQuery - The computed query object.\n * @external\n */\n readonly predicate?: (\n computedQuery: ComputedQuery<F>,\n ) => (item: T) => boolean;\n /**\n * A function that simulates the ordering of the items in the server.<br>\n * The function should return a list of rules in the form of `{fieldName: string; order: 'asc' | 'desc';}` to order the items by\n * @param computedQuery - The computed query object.\n * @external\n */\n readonly orderBy?: (computedQuery: ComputedQuery<F>) => Order<T>[];\n /**\n * A function to retrieve the creation date of an item.\n * @param item - The item.\n * @external\n */\n readonly createdAt?: (item: T) => Date;\n /**\n * Time to wait before batching multiple `updateMany` calls into a single server call.\n * @default 0\n * @external\n */\n readonly batchWait?: number;\n /**\n * Indicates whether to refresh the current page without invalidating the cache.\n * @external\n */\n readonly noInvalidate?: boolean;\n /**\n * Adds a namespace to the cache key.\n * @external\n */\n readonly cacheNamespace?: string;\n readonly sequences?: Map<string, CollectionOptimisticSequenceExecutor>;\n readonly query?: QueryState<F>;\n}\n\nexport interface CollectionOptimisticActionsParams<T, F extends FiltersMap>\n extends CollectionOptimisticActionsBaseParams<T, F> {\n /**\n * The main collection to reflect changes into.\n * @external\n */\n readonly collection: CollectionState<T, F>;\n /**\n * Additional collections to reflect changes into.\n * @default undefined\n * @external\n */\n readonly collections?: CollectionState<T, F>[];\n /**\n * Container holding patches cache and events emitter.\n * @external\n */\n readonly container: {\n patchesCache: Map<string, IObservableArray<OptimisticPatch<T>>>;\n events: TypedEmitter<{\n navigation: () => ModalLayoutProps | null | undefined;\n }>;\n };\n}\n\nexport class CollectionOptimisticActions<T, F extends FiltersMap> {\n readonly collection;\n readonly query;\n readonly collections;\n readonly predicate: (computedQuery: ComputedQuery<F>) => (item: T) => boolean;\n readonly orderBy: (computedQuery: ComputedQuery<F>) => Order<T>[];\n readonly createdAt?: (item: T) => Date;\n readonly events = new EventEmitter() as TypedEmitter<{\n reprocess: () => void;\n updated: () => void;\n refresh: (params: { isStale: boolean }) => void;\n unmount: () => void;\n beforeResultUpdated: () => void;\n dragAndDropSequenceError: (params: {\n patches: OptimisticPatch<T>[];\n }) => void;\n dragAndDropSequenceRetry: (params: {\n patches: OptimisticPatch<T>[];\n }) => void;\n }>;\n readonly noInvalidate;\n readonly state;\n readonly processors: CollectionOptimisticProcessor<T, F>[] = [];\n readonly executor: CollectionOptimisticExecutor<OptimisticPatch<T>>;\n readonly sequences;\n readonly resultSimulationDefault;\n readonly reorderModeCanceledMessage = 'REORDER_MODE_CANCELED';\n\n _resumeNavigation: (() => void) | null = null;\n\n _orderByMode: 'orders' | 'moves' = 'orders';\n\n _commitMode = false;\n\n constructor(params: CollectionOptimisticActionsParams<T, F>) {\n this.collection = params.collection;\n this.query = params.query ?? this.collection.query;\n this.collections = params.collections ?? [];\n\n this.sequences =\n params.sequences ??\n new Map<string, CollectionOptimisticSequenceExecutor>();\n\n this.state = new CollectionOptimisticActionsState<T>({\n source: this.collection,\n patchesCache: params.container.patchesCache,\n cacheNamespace: params.cacheNamespace,\n });\n\n this.resultSimulationDefault = new QueryResultSimulationDefault({\n collection: this.collection,\n });\n\n this.predicate = params.predicate ?? this.resultSimulationDefault.predicate;\n this.orderBy = params.orderBy ?? this.resultSimulationDefault.orderBy;\n this.createdAt = params.createdAt;\n this.noInvalidate = params.noInvalidate;\n\n this.executor = new CollectionOptimisticExecutor({\n batchWait: params.batchWait ?? 0,\n errorMonitor: this.collection.errorMonitor,\n showToast: this.collection.showToast,\n translate: this.collection.translate,\n lodash: this.collection.lodash,\n container: params.container,\n });\n\n this.processors.push(\n new CollectionOptimisticProcessor({\n ...params,\n optimistic: this,\n }),\n );\n\n if (params.collections != null) {\n params.collections.forEach((collection) => {\n this.processors.push(\n new CollectionOptimisticProcessor({\n ...params,\n collection,\n optimistic: this,\n }),\n );\n });\n }\n\n this.collection._optimisticActions = this;\n\n makeObservable(this, {\n pushPatchAndReprocess: action,\n replacePatchAndReprocess: action,\n rollback: action.bound,\n clear: action,\n move: action,\n pendingMovePatches: computed,\n });\n }\n\n get _queryNames() {\n return [\n this.collection.queryName,\n ...this.collections.map((c) => c.queryName),\n ];\n }\n\n get hasRunningSequence() {\n return Array.from(this.sequences.values()).some((s) => s.seq.state.running);\n }\n\n get pendingMovePatches() {\n return this.state.patches.filter((p) => p.move);\n }\n\n rollback(patch: OptimisticPatch<T> | OptimisticPatch<T>[]) {\n const { events, state } = this;\n const patches = Array.isArray(patch) ? patch : [patch];\n\n for (const p of patches) {\n state.patches.remove(p);\n }\n\n events.emit('reprocess');\n }\n\n private _clearPatch = action((patch: OptimisticPatch<T>) => {\n const {\n state,\n collection,\n collections,\n noInvalidate,\n processors,\n _commitMode,\n } = this;\n\n if (noInvalidate) {\n return;\n }\n\n state.patches.remove(patch);\n if (_commitMode && !state.patches.length) {\n processors.forEach(({ processorHelpers }) => processorHelpers.commit());\n }\n collection.invalidate();\n collections.forEach((p) => p.refreshAllPages());\n });\n\n _clearPatchOnNextResultOrUnmount = (patch: OptimisticPatch<T>) => {\n const { events } = this;\n\n const clearPatch = () => {\n events.off('unmount', clearPatch);\n this._clearPatch(patch);\n };\n\n const onRefresh = ({ isStale }: { isStale: boolean }) => {\n events.off('refresh', onRefresh);\n\n // clear only when results are not going to come from cache\n if (isStale) {\n events.once('beforeResultUpdated', clearPatch);\n }\n };\n\n events.emit('updated');\n\n if (this._commitMode) {\n this._clearPatch(patch);\n } else {\n // Clear the patch on the next collection result update to eliminate inconsistencies between server state and local patches\n events.on('refresh', onRefresh);\n // since not clearing the patch immediately, clear it on unmount if was not cleared yet\n events.on('unmount', clearPatch);\n }\n };\n\n pushPatchAndReprocess(patch: OptimisticPatch<T> | OptimisticPatch<T>[]) {\n const { state, events } = this;\n const patches = Array.isArray(patch) ? patch : [patch];\n state.patches.push(...patches);\n events.emit('reprocess');\n }\n\n replacePatchAndReprocess(\n newPatch: OptimisticPatch<T>,\n oldPatch: OptimisticPatch<T>,\n ) {\n const { state, events } = this;\n\n const oldPatchIndex = state.patches.findIndex(\n (patch) => patch === oldPatch,\n );\n state.patches[oldPatchIndex] = newPatch;\n events.emit('reprocess');\n }\n\n /**\n * Creates a single item in the collection.\n * @param item - The item to create.\n * @param params - Additional parameters for the operation.\n * @external\n */\n createOne(item: T, params: CreateManyParams<T>) {\n this.createMany([item], params);\n }\n\n /**\n * Creates multiple items in the collection.\n * @param items - The items to create.\n * @param params - Additional parameters for the operation.\n * @external\n */\n createMany(items: T[], params: CreateManyParams<T>) {\n const { collection, executor } = this;\n const { itemKey, result } = collection;\n const { submit, updateServerAfter, onUndo, onTryAgain, onError } = params;\n\n const optimisticPatchParams: OptimisticPatchParams<T> = {\n queryCache: collection.queryCache,\n queryNames: this._queryNames,\n patches: this.state.patches,\n actionType: 'createMany',\n patchedItems: new Map(items.map((item) => [itemKey(item), item])),\n originalItems: new Map(),\n originalTotal: result.total,\n patch: (item, { patchedItems }) => patchedItems.get(itemKey(item)),\n selector: (item, { patchedItems }) => patchedItems.has(itemKey(item)),\n };\n\n const optimisticPatch = new OptimisticPatch<T>(optimisticPatchParams);\n\n this.pushPatchAndReprocess(optimisticPatch);\n\n optimisticPatch.events.on(\n 'scheduleRemoval',\n this._clearPatchOnNextResultOrUnmount,\n );\n\n return executor.execute([optimisticPatch], {\n ...params,\n submit: action(async (actions) => {\n const submitResult = await submit(\n Array.from(\n actions\n .filter(({ actionType }) => actionType === 'createMany')\n .reduce((map, { patchedItemsEntries }) => {\n for (const [key, item] of patchedItemsEntries) {\n map.set(key, item);\n }\n return map;\n }, new Map<string, T>())\n .values(),\n ),\n );\n\n if (!submitResult) {\n return;\n }\n\n const updatedOptimisticPatch = new OptimisticPatch({\n ...optimisticPatchParams,\n patchedItems: new Map(\n submitResult.map((item) => [itemKey(item), item]),\n ),\n });\n\n this.replacePatchAndReprocess(updatedOptimisticPatch, optimisticPatch);\n this._clearPatchOnNextResultOrUnmount(updatedOptimisticPatch);\n return submitResult;\n }),\n onRollback: () => {\n this.rollback(optimisticPatch);\n },\n eventuallyUpdated: updateServerAfter,\n onEventuallyUpdated: optimisticPatch.onEventuallyUpdated,\n onTryAgain: async () => {\n this.pushPatchAndReprocess(optimisticPatch);\n await onTryAgain?.();\n },\n onError,\n onUndo,\n });\n }\n\n /**\n * Updates multiple items in the collection.\n * @param items - The items to update.\n * @param params - Additional parameters for the update operation.\n * @external\n */\n updateMany<R>(items: T[], params: UpdateManyParams<T, R>) {\n const { executor, collection } = this;\n const { itemKey, result } = collection;\n const {\n submit,\n updateServerAfter,\n keepPosition,\n onUndo,\n onTryAgain,\n onError,\n } = params;\n\n const optimisticPatch = new OptimisticPatch({\n queryCache: collection.queryCache,\n queryNames: this._queryNames,\n patches: this.state.patches,\n actionType: 'updateMany',\n keepPosition,\n patchedItems: new Map(items.map((item) => [itemKey(item), item])),\n originalItems: new Map(\n items.map((item) => {\n const key = itemKey(item);\n const originalItem = result.get(itemKey(item))?.item ?? item;\n return [key, originalItem];\n }),\n ),\n originalTotal: result.total,\n patch: (item, { patchedItems }) => patchedItems.get(itemKey(item)),\n selector: (item, { patchedItems }) => patchedItems.has(itemKey(item)),\n });\n\n this.pushPatchAndReprocess(optimisticPatch);\n\n optimisticPatch.events.on(\n 'scheduleRemoval',\n this._clearPatchOnNextResultOrUnmount,\n );\n\n return executor.execute([optimisticPatch], {\n ...params,\n submit: action((actions) =>\n submit(\n Array.from(\n actions\n .filter(({ actionType }) => actionType === 'updateMany')\n .reduce((map, { patchedItemsEntries }) => {\n for (const [key, item] of patchedItemsEntries) {\n map.set(key, item);\n }\n return map;\n }, new Map<string, T>())\n .values(),\n ),\n ),\n ),\n onRollback: () => {\n this.rollback(optimisticPatch);\n },\n eventuallyUpdated: updateServerAfter,\n onEventuallyUpdated: optimisticPatch.onEventuallyUpdated,\n onTryAgain: async () => {\n this.pushPatchAndReprocess(optimisticPatch);\n await onTryAgain?.();\n },\n onError,\n onUndo,\n });\n }\n\n enqueueMovePatch<R>(\n optimisticPatch: OptimisticPatch<T>,\n params: MoveParams<T, R>,\n ) {\n const { submit, onTryAgain } = params;\n const { collection, state, events } = this;\n const { patches } = state;\n\n const event = optimisticPatch.move;\n\n if (event == null) {\n return;\n }\n\n const { filtersKeyHash } = event;\n\n const _initSequence = () => {\n const { sequences } = this;\n const seq =\n sequences.get(filtersKeyHash) ??\n new CollectionOptimisticSequenceExecutor({\n showToast: collection.showToast,\n translate: collection.translate,\n errorMonitor: collection.errorMonitor,\n onRollback: (err) => {\n const pendingPatches = patches.filter(\n (p) => p.move?.filtersKeyHash === filtersKeyHash,\n );\n this.rollback(pendingPatches);\n\n if (\n err instanceof Error &&\n err.message === this.reorderModeCanceledMessage\n ) {\n executor.seq.clear();\n return;\n }\n\n events.emit('dragAndDropSequenceError', {\n patches: pendingPatches,\n });\n executor.seq.clear();\n return {\n message: collection.translate('cairo.dragAndDrop.error.toast'),\n biName: 'cairo-drag-and-drop-submit-error',\n action: {\n onClick: async () => {\n this.pushPatchAndReprocess(pendingPatches);\n for (const p of pendingPatches) {\n this.enqueueMovePatch(p, params);\n }\n events.emit('dragAndDropSequenceRetry', {\n patches: pendingPatches,\n });\n\n await onTryAgain?.();\n },\n },\n };\n },\n });\n\n if (!sequences.has(filtersKeyHash)) {\n sequences.set(filtersKeyHash, seq);\n }\n\n return seq;\n };\n\n const executor = _initSequence();\n\n executor.sequence({\n submit: () => submit?.(event),\n onEventuallyUpdated: optimisticPatch.onEventuallyUpdated,\n });\n }\n\n async move<R>(event: ActionMove<T>, params: MoveParams<T, R>) {\n const { collection, state } = this;\n const { itemKey, result } = collection;\n const { patches } = state;\n\n const optimisticPatch = new OptimisticPatch({\n queryCache: collection.queryCache,\n queryNames: this._queryNames,\n patches,\n actionType: 'move',\n patchedItems: new Map(),\n originalItems: new Map(),\n originalTotal: result.total,\n selector: (item, { patchedItems }) => patchedItems.has(itemKey(item)),\n move: event,\n collectionSnapshot: params.collectionSnapshot,\n });\n\n this.pushPatchAndReprocess(optimisticPatch);\n\n optimisticPatch.events.on(\n 'scheduleRemoval',\n this._clearPatchOnNextResultOrUnmount,\n );\n\n this.enqueueMovePatch(optimisticPatch, params);\n }\n\n /**\n * Updates a single item in the collection.\n * @param item - The item to update.\n * @param params - Additional parameters for the operation.\n * @external\n */\n updateOne<R>(item: T, params: UpdateManyParams<T, R>) {\n return this.updateMany([item], params);\n }\n\n /**\n * > `updateAll(fn)` API is not recommended as it's not possible to calculate \"optimistic total\", prefer updateAll(patchObject) API if possible.\n * Updates all items in the collection based on a function or a patch object.\n * @param patchOrFn - A function or a patch object to apply to each item.\n * @param params - Additional parameters for the operation.\n */\n updateAll<R>(\n patchOrFn: (item: T) => Partial<T>,\n params: UpdateAllParams<R>,\n ): void;\n\n /**\n * Updates all items in the collection based on a patch object.\n * @param patch - A patch object to apply to each item.\n * @param params - Additional parameters for the operation.\n * @external\n */\n updateAll<R>(patch: Partial<T>, params: UpdateAllParams<R>): void;\n\n updateAll<R>(\n patchOrFn: ((item: T) => Partial<T>) | Partial<T>,\n params: UpdateAllParams<R>,\n ) {\n const { executor, collection, predicate, createdAt } = this;\n const {\n submit,\n updateServerAfter,\n keepPosition,\n onUndo,\n onTryAgain,\n onError,\n } = params;\n const {\n itemKey,\n result: { originQuery, items, total },\n } = collection;\n\n const itemPredicate = predicate(originQuery);\n\n const updatedAt = new Date();\n\n const { patch, actionType } =\n typeof patchOrFn === 'function'\n ? { actionType: 'updateAll' as const, patch: patchOrFn }\n : {\n actionType: 'updateAllConst' as const,\n patch: (item: T) => ({ ...item, ...patchOrFn }),\n };\n\n const optimisticPatch = new OptimisticPatch({\n queryCache: collection.queryCache,\n patches: this.state.patches,\n actionType,\n keepPosition,\n queryNames: this._queryNames,\n patchedItems: new Map(\n items.map((item) => [itemKey(item), { ...item, ...patch(item) }]),\n ),\n originalItems: new Map(items.map((item) => [itemKey(item), item])),\n originalTotal: total,\n selector: (item) =>\n itemPredicate(item) &&\n (createdAt == null || createdAt(item) <= updatedAt),\n patch,\n });\n\n this.pushPatchAndReprocess(optimisticPatch);\n\n optimisticPatch.events.on(\n 'scheduleRemoval',\n this._clearPatchOnNextResultOrUnmount,\n );\n\n executor.execute([optimisticPatch], {\n ...params,\n submit,\n onRollback: () => {\n this.rollback(optimisticPatch);\n },\n eventuallyUpdated: updateServerAfter,\n onEventuallyUpdated: optimisticPatch.onEventuallyUpdated,\n onTryAgain: async () => {\n this.pushPatchAndReprocess(optimisticPatch);\n await onTryAgain?.();\n },\n onError,\n onUndo,\n });\n }\n\n /**\n * Deletes multiple items from the collection.\n * @param items - An array of items to delete.\n * @param params - Additional parameters for the delete operation.\n * @external\n */\n deleteMany<R>(items: T[], params: DeleteManyParams<T, R>) {\n const { executor, collection } = this;\n const {\n itemKey,\n result: { total },\n } = collection;\n const { submit, updateServerAfter, onUndo, onTryAgain, onError } = params;\n\n const patchedItems = new Map(items.map((item) => [itemKey(item), item]));\n\n const optimisticPatch = new OptimisticPatch({\n queryCache: collection.queryCache,\n patches: this.state.patches,\n actionType: 'deleteMany',\n patchedItems,\n queryNames: this._queryNames,\n originalItems: patchedItems,\n originalTotal: total,\n selector: (item, { patchedItems }) => patchedItems.has(itemKey(item)),\n });\n\n this.pushPatchAndReprocess(optimisticPatch);\n\n optimisticPatch.events.on(\n 'scheduleRemoval',\n this._clearPatchOnNextResultOrUnmount,\n );\n\n executor.execute([optimisticPatch], {\n ...params,\n submit: action((actions) =>\n submit(\n Array.from(\n actions\n .filter(({ actionType }) => actionType === 'deleteMany')\n .reduce((map, { patchedItemsEntries }) => {\n for (const [key, item] of patchedItemsEntries) {\n map.set(key, item);\n }\n return map;\n }, new Map<string, T>())\n .values(),\n ),\n ),\n ),\n onRollback: () => {\n this.rollback(optimisticPatch);\n },\n eventuallyUpdated: updateServerAfter,\n onEventuallyUpdated: optimisticPatch.onEventuallyUpdated,\n onTryAgain: async () => {\n this.pushPatchAndReprocess(optimisticPatch);\n await onTryAgain?.();\n },\n onError,\n onUndo,\n });\n }\n\n /**\n * Deletes a single item from the collection.\n * @param item - The item to delete.\n * @param params - Additional parameters for the operation.\n * @external\n */\n deleteOne<R>(item: T, params: DeleteManyParams<T, R>) {\n return this.deleteMany([item], params);\n }\n\n /**\n * Deletes all items from the collection.\n * @param params - Additional parameters for the operation.\n * @external\n */\n deleteAll<R>(params: UpdateAllParams<R>) {\n const { executor, collection, predicate, createdAt } = this;\n const { submit, updateServerAfter, onUndo, onTryAgain, onError } = params;\n const {\n itemKey,\n result: { originQuery, items, total },\n } = collection;\n\n const itemPredicate = predicate(originQuery);\n\n const updatedAt = new Date();\n\n const patchedItems = new Map(items.map((item) => [itemKey(item), item]));\n\n const optimisticPatch = new OptimisticPatch({\n patches: this.state.patches,\n queryCache: collection.queryCache,\n actionType: 'deleteAll',\n patchedItems,\n queryNames: this._queryNames,\n originalItems: patchedItems,\n originalTotal: total,\n selector: (item) =>\n itemPredicate(item) &&\n (createdAt == null || createdAt(item) <= updatedAt),\n });\n\n optimisticPatch.events.on(\n 'scheduleRemoval',\n this._clearPatchOnNextResultOrUnmount,\n );\n\n this.pushPatchAndReprocess(optimisticPatch);\n\n executor.execute([optimisticPatch], {\n ...params,\n submit,\n onRollback: () => {\n this.rollback(optimisticPatch);\n },\n eventuallyUpdated: updateServerAfter,\n onEventuallyUpdated: optimisticPatch.onEventuallyUpdated,\n onTryAgain: async () => {\n this.pushPatchAndReprocess(optimisticPatch);\n await onTryAgain?.();\n },\n onError,\n onUndo,\n });\n }\n\n initCollection(collection: CollectionState<T, F>) {\n this.collections.push(collection);\n new CollectionOptimisticProcessor({\n collection,\n optimistic: this,\n orderBy: this.orderBy,\n predicate: this.predicate,\n });\n\n return () => {\n const i = this.collections.indexOf(collection);\n if (i !== -1) {\n this.collections.splice(i, 1);\n }\n };\n }\n\n init() {\n const { collection, events } = this;\n\n // The only case when this.state._patchesBeforeUnmount won't be null -\n // when the state was cached with patterns router, so we want to restore the patches that were existed before the unmount\n if (this.state._patchesBeforeUnmount) {\n this.state.patches.clear();\n this.state.patches.push(...this.state._patchesBeforeUnmount);\n }\n\n const emitRefresh = (params: { isStale: boolean }) => {\n events.emit('refresh', params);\n };\n const emitBeforeResultUpdated = () => events.emit('beforeResultUpdated');\n\n collection.emitter.on('refresh', emitRefresh);\n collection.emitter.on('beforeResultUpdated', emitBeforeResultUpdated);\n\n const disposers = [\n reaction(\n () => {\n const {\n result: { isEmpty, _pages },\n } = collection;\n const unprocessed = _pages.unprocessed.flatMap((page) => page);\n return isEmpty && unprocessed.length > 0;\n },\n (allFilteredOut) => {\n if (allFilteredOut) {\n collection.fetchNextPageIfNeeded();\n }\n },\n ),\n ];\n\n return () => {\n collection.emitter.off('refresh', emitRefresh);\n collection.emitter.off('beforeResultUpdated', emitBeforeResultUpdated);\n disposers.forEach((disposer) => disposer());\n this.state._patchesBeforeUnmount = this.state.patches.toJSON();\n events.emit('unmount');\n };\n }\n\n clear() {\n const { patches } = this.state;\n const remaining = patches.clear();\n for (const patch of remaining) {\n if (!patch.isStale) {\n patches.push(patch);\n }\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_mobx","require","_CollectionOptimisticActionsState","_CollectionOptimisticProcessor","_CollectionOptimisticPatch","_CollectionOptimisticExecutor","_events","_QueryResultSimulationDefault","_CollectionOptimisticSequenceExecutor","CollectionOptimisticActions","constructor","params","_defineProperty2","default","EventEmitter","action","patch","state","collection","collections","noInvalidate","processors","_commitMode","patches","remove","length","forEach","processorHelpers","commit","invalidate","p","refreshAllPages","events","clearPatch","off","_clearPatch","onRefresh","isStale","once","emit","on","query","sequences","Map","CollectionOptimisticActionsState","source","patchesCache","container","cacheNamespace","resultSimulationDefault","QueryResultSimulationDefault","predicate","orderBy","createdAt","executor","CollectionOptimisticExecutor","batchWait","errorMonitor","showToast","translate","lodash","push","CollectionOptimisticProcessor","optimistic","_optimisticActions","makeObservable","pushPatchAndReprocess","replacePatchAndReprocess","rollback","bound","clear","move","pendingMovePatches","computed","_queryNames","queryName","map","c","hasRunningSequence","Array","from","values","some","s","seq","running","filter","isArray","newPatch","oldPatch","oldPatchIndex","findIndex","createOne","item","createMany","items","itemKey","result","submit","updateServerAfter","onUndo","onTryAgain","onError","optimisticPatchParams","queryCache","queryNames","actionType","patchedItems","originalItems","originalTotal","total","get","selector","has","optimisticPatch","OptimisticPatch","_clearPatchOnNextResultOrUnmount","execute","actions","submitResult","reduce","patchedItemsEntries","key","set","updatedOptimisticPatch","onRollback","eventuallyUpdated","onEventuallyUpdated","updateMany","keepPosition","_result$get","originalItem","enqueueMovePatch","event","filtersKeyHash","_initSequence","CollectionOptimisticSequenceExecutor","err","pendingPatches","_p$move","Error","message","reorderModeCanceledMessage","biName","onClick","sequence","collectionSnapshot","updateOne","updateAll","patchOrFn","originQuery","itemPredicate","updatedAt","Date","deleteMany","deleteOne","deleteAll","initCollection","i","indexOf","splice","init","_patchesBeforeUnmount","emitRefresh","emitBeforeResultUpdated","emitter","disposers","reaction","isEmpty","_pages","unprocessed","flatMap","page","allFilteredOut","fetchNextPageIfNeeded","disposer","toJSON","remaining","exports"],"sources":["../../../src/state/CollectionOptimisticActions.ts"],"sourcesContent":["import { ActionMove, ComputedQuery, FiltersMap } from '../model';\nimport {\n action,\n computed,\n IObservableArray,\n makeObservable,\n reaction,\n} from 'mobx';\nimport { CollectionState } from './CollectionState';\nimport { Order } from './QueryResultSimulation';\nimport { CollectionOptimisticActionsState } from './CollectionOptimisticActionsState';\nimport { CollectionOptimisticProcessor } from './CollectionOptimisticProcessor';\nimport {\n OptimisticPatch,\n OptimisticPatchParams,\n} from './CollectionOptimisticPatch';\nimport { CollectionOptimisticExecutor } from './CollectionOptimisticExecutor';\nimport { EventEmitter } from 'events';\nimport { TypedEmitter } from '../util';\nimport { QueryResultSimulationDefault } from './QueryResultSimulationDefault';\nimport { CollectionOptimisticSequenceExecutor } from './CollectionOptimisticSequenceExecutor';\nimport { ModalLayoutProps } from '../services';\nimport { QueryState } from './QueryState';\nimport {\n CreateManyParams,\n DeleteManyParams,\n OptimisticActionBasis,\n UpdateAllParams,\n UpdateManyParams,\n} from './OptimisticActions';\n\nexport interface MoveParams<T, R> extends OptimisticActionBasis {\n /**\n * Function to submit the move operation.\n * @param params - The parameters for the move action.\n */\n submit?: (params: ActionMove<T>) => Promise<R>;\n /**\n * Snapshot of the collection before the move operation.\n */\n collectionSnapshot: { [key: string]: string | number | undefined };\n}\n\nexport interface CollectionOptimisticActionsBaseParams<\n T,\n F extends FiltersMap,\n> {\n /**\n * A function that simulates the filtering in the server.\n * The function should return another function that accepts an item, and return a boolean that indicates whether the item passes the query filters or not.\n * @param computedQuery - The computed query object.\n * @external\n */\n readonly predicate?: (\n computedQuery: ComputedQuery<F>,\n ) => (item: T) => boolean;\n /**\n * A function that simulates the ordering of the items in the server.<br>\n * The function should return a list of rules in the form of `{fieldName: string; order: 'asc' | 'desc';}` to order the items by\n * @param computedQuery - The computed query object.\n * @external\n */\n readonly orderBy?: (computedQuery: ComputedQuery<F>) => Order<T>[];\n /**\n * A function to retrieve the creation date of an item.\n * @param item - The item.\n * @external\n */\n readonly createdAt?: (item: T) => Date;\n /**\n * Time to wait before batching multiple `updateMany` calls into a single server call.\n * @default 0\n * @external\n */\n readonly batchWait?: number;\n /**\n * Indicates whether to refresh the current page without invalidating the cache.\n * @external\n */\n readonly noInvalidate?: boolean;\n /**\n * Adds a namespace to the cache key.\n * @external\n */\n readonly cacheNamespace?: string;\n readonly sequences?: Map<string, CollectionOptimisticSequenceExecutor>;\n readonly query?: QueryState<F>;\n}\n\nexport interface CollectionOptimisticActionsParams<T, F extends FiltersMap>\n extends CollectionOptimisticActionsBaseParams<T, F> {\n /**\n * The main collection to reflect changes into.\n * @external\n */\n readonly collection: CollectionState<T, F>;\n /**\n * Additional collections to reflect changes into.\n * @default undefined\n * @external\n */\n readonly collections?: CollectionState<T, F>[];\n /**\n * Container holding patches cache and events emitter.\n * @external\n */\n readonly container: {\n patchesCache: Map<string, IObservableArray<OptimisticPatch<T>>>;\n events: TypedEmitter<{\n navigation: () => ModalLayoutProps | null | undefined;\n }>;\n };\n}\n\nexport class CollectionOptimisticActions<T, F extends FiltersMap> {\n readonly collection;\n readonly query;\n readonly collections;\n readonly predicate: (computedQuery: ComputedQuery<F>) => (item: T) => boolean;\n readonly orderBy: (computedQuery: ComputedQuery<F>) => Order<T>[];\n readonly createdAt?: (item: T) => Date;\n readonly events = new EventEmitter() as TypedEmitter<{\n reprocess: () => void;\n updated: () => void;\n refresh: (params: { isStale: boolean }) => void;\n unmount: () => void;\n beforeResultUpdated: () => void;\n dragAndDropSequenceError: (params: {\n patches: OptimisticPatch<T>[];\n }) => void;\n dragAndDropSequenceRetry: (params: {\n patches: OptimisticPatch<T>[];\n }) => void;\n }>;\n readonly noInvalidate;\n readonly state;\n readonly processors: CollectionOptimisticProcessor<T, F>[] = [];\n readonly executor: CollectionOptimisticExecutor<OptimisticPatch<T>>;\n readonly sequences;\n readonly resultSimulationDefault;\n readonly reorderModeCanceledMessage = 'REORDER_MODE_CANCELED';\n\n _resumeNavigation: (() => void) | null = null;\n\n _orderByMode: 'orders' | 'moves' = 'orders';\n\n _commitMode = false;\n\n constructor(params: CollectionOptimisticActionsParams<T, F>) {\n this.collection = params.collection;\n this.query = params.query ?? this.collection.query;\n this.collections = params.collections ?? [];\n\n this.sequences =\n params.sequences ??\n new Map<string, CollectionOptimisticSequenceExecutor>();\n\n this.state = new CollectionOptimisticActionsState<T>({\n source: this.collection,\n patchesCache: params.container.patchesCache,\n cacheNamespace: params.cacheNamespace,\n });\n\n this.resultSimulationDefault = new QueryResultSimulationDefault({\n collection: this.collection,\n });\n\n this.predicate = params.predicate ?? this.resultSimulationDefault.predicate;\n this.orderBy = params.orderBy ?? this.resultSimulationDefault.orderBy;\n this.createdAt = params.createdAt;\n this.noInvalidate = params.noInvalidate;\n\n this.executor = new CollectionOptimisticExecutor({\n batchWait: params.batchWait ?? 0,\n errorMonitor: this.collection.errorMonitor,\n showToast: this.collection.showToast,\n translate: this.collection.translate,\n lodash: this.collection.lodash,\n container: params.container,\n });\n\n this.processors.push(\n new CollectionOptimisticProcessor({\n ...params,\n optimistic: this,\n }),\n );\n\n if (params.collections != null) {\n params.collections.forEach((collection) => {\n this.processors.push(\n new CollectionOptimisticProcessor({\n ...params,\n collection,\n optimistic: this,\n }),\n );\n });\n }\n\n this.collection._optimisticActions = this;\n\n makeObservable(this, {\n pushPatchAndReprocess: action,\n replacePatchAndReprocess: action,\n rollback: action.bound,\n clear: action,\n move: action,\n pendingMovePatches: computed,\n });\n }\n\n get _queryNames() {\n return [\n this.collection.queryName,\n ...this.collections.map((c) => c.queryName),\n ];\n }\n\n get hasRunningSequence() {\n return Array.from(this.sequences.values()).some((s) => s.seq.state.running);\n }\n\n get pendingMovePatches() {\n return this.state.patches.filter((p) => p.move);\n }\n\n rollback(patch: OptimisticPatch<T> | OptimisticPatch<T>[]) {\n const { events, state } = this;\n const patches = Array.isArray(patch) ? patch : [patch];\n\n for (const p of patches) {\n state.patches.remove(p);\n }\n\n events.emit('reprocess');\n }\n\n private _clearPatch = action((patch: OptimisticPatch<T>) => {\n const {\n state,\n collection,\n collections,\n noInvalidate,\n processors,\n _commitMode,\n } = this;\n\n if (noInvalidate) {\n return;\n }\n\n state.patches.remove(patch);\n if (_commitMode && !state.patches.length) {\n processors.forEach(({ processorHelpers }) => processorHelpers.commit());\n }\n collection.invalidate();\n collections.forEach((p) => p.refreshAllPages());\n });\n\n _clearPatchOnNextResultOrUnmount = (patch: OptimisticPatch<T>) => {\n const { events } = this;\n\n const clearPatch = () => {\n events.off('unmount', clearPatch);\n this._clearPatch(patch);\n };\n\n const onRefresh = ({ isStale }: { isStale: boolean }) => {\n events.off('refresh', onRefresh);\n\n // clear only when results are not going to come from cache\n if (isStale) {\n events.once('beforeResultUpdated', clearPatch);\n }\n };\n\n events.emit('updated');\n\n if (this._commitMode) {\n this._clearPatch(patch);\n } else {\n // Clear the patch on the next collection result update to eliminate inconsistencies between server state and local patches\n events.on('refresh', onRefresh);\n // since not clearing the patch immediately, clear it on unmount if was not cleared yet\n events.on('unmount', clearPatch);\n }\n };\n\n pushPatchAndReprocess(patch: OptimisticPatch<T> | OptimisticPatch<T>[]) {\n const { state, events } = this;\n const patches = Array.isArray(patch) ? patch : [patch];\n state.patches.push(...patches);\n events.emit('reprocess');\n }\n\n replacePatchAndReprocess(\n newPatch: OptimisticPatch<T>,\n oldPatch: OptimisticPatch<T>,\n ) {\n const { state, events } = this;\n\n const oldPatchIndex = state.patches.findIndex(\n (patch) => patch === oldPatch,\n );\n state.patches[oldPatchIndex] = newPatch;\n events.emit('reprocess');\n }\n\n /**\n * Creates a single item in the collection.\n * @param item - The item to create.\n * @param params - Additional parameters for the operation.\n * @external\n */\n createOne(item: T, params: CreateManyParams<T>) {\n return this.createMany([item], params);\n }\n\n /**\n * Creates multiple items in the collection.\n * @param items - The items to create.\n * @param params - Additional parameters for the operation.\n * @external\n */\n createMany(items: T[], params: CreateManyParams<T>) {\n const { collection, executor } = this;\n const { itemKey, result } = collection;\n const { submit, updateServerAfter, onUndo, onTryAgain, onError } = params;\n\n const optimisticPatchParams: OptimisticPatchParams<T> = {\n queryCache: collection.queryCache,\n queryNames: this._queryNames,\n patches: this.state.patches,\n actionType: 'createMany',\n patchedItems: new Map(items.map((item) => [itemKey(item), item])),\n originalItems: new Map(),\n originalTotal: result.total,\n patch: (item, { patchedItems }) => patchedItems.get(itemKey(item)),\n selector: (item, { patchedItems }) => patchedItems.has(itemKey(item)),\n };\n\n const optimisticPatch = new OptimisticPatch<T>(optimisticPatchParams);\n\n this.pushPatchAndReprocess(optimisticPatch);\n\n optimisticPatch.events.on(\n 'scheduleRemoval',\n this._clearPatchOnNextResultOrUnmount,\n );\n\n return executor.execute([optimisticPatch], {\n ...params,\n submit: action(async (actions) => {\n const submitResult = await submit(\n Array.from(\n actions\n .filter(({ actionType }) => actionType === 'createMany')\n .reduce((map, { patchedItemsEntries }) => {\n for (const [key, item] of patchedItemsEntries) {\n map.set(key, item);\n }\n return map;\n }, new Map<string, T>())\n .values(),\n ),\n );\n\n if (!submitResult) {\n return;\n }\n\n const updatedOptimisticPatch = new OptimisticPatch({\n ...optimisticPatchParams,\n patchedItems: new Map(\n submitResult.map((item) => [itemKey(item), item]),\n ),\n });\n\n this.replacePatchAndReprocess(updatedOptimisticPatch, optimisticPatch);\n this._clearPatchOnNextResultOrUnmount(updatedOptimisticPatch);\n return submitResult;\n }),\n onRollback: () => {\n this.rollback(optimisticPatch);\n },\n eventuallyUpdated: updateServerAfter,\n onEventuallyUpdated: optimisticPatch.onEventuallyUpdated,\n onTryAgain: async () => {\n this.pushPatchAndReprocess(optimisticPatch);\n await onTryAgain?.();\n },\n onError,\n onUndo,\n });\n }\n\n /**\n * Updates multiple items in the collection.\n * @param items - The items to update.\n * @param params - Additional parameters for the update operation.\n * @external\n */\n updateMany<R>(items: T[], params: UpdateManyParams<T, R>) {\n const { executor, collection } = this;\n const { itemKey, result } = collection;\n const {\n submit,\n updateServerAfter,\n keepPosition,\n onUndo,\n onTryAgain,\n onError,\n } = params;\n\n const optimisticPatch = new OptimisticPatch({\n queryCache: collection.queryCache,\n queryNames: this._queryNames,\n patches: this.state.patches,\n actionType: 'updateMany',\n keepPosition,\n patchedItems: new Map(items.map((item) => [itemKey(item), item])),\n originalItems: new Map(\n items.map((item) => {\n const key = itemKey(item);\n const originalItem = result.get(itemKey(item))?.item ?? item;\n return [key, originalItem];\n }),\n ),\n originalTotal: result.total,\n patch: (item, { patchedItems }) => patchedItems.get(itemKey(item)),\n selector: (item, { patchedItems }) => patchedItems.has(itemKey(item)),\n });\n\n this.pushPatchAndReprocess(optimisticPatch);\n\n optimisticPatch.events.on(\n 'scheduleRemoval',\n this._clearPatchOnNextResultOrUnmount,\n );\n\n return executor.execute([optimisticPatch], {\n ...params,\n submit: action((actions) =>\n submit(\n Array.from(\n actions\n .filter(({ actionType }) => actionType === 'updateMany')\n .reduce((map, { patchedItemsEntries }) => {\n for (const [key, item] of patchedItemsEntries) {\n map.set(key, item);\n }\n return map;\n }, new Map<string, T>())\n .values(),\n ),\n ),\n ),\n onRollback: () => {\n this.rollback(optimisticPatch);\n },\n eventuallyUpdated: updateServerAfter,\n onEventuallyUpdated: optimisticPatch.onEventuallyUpdated,\n onTryAgain: async () => {\n this.pushPatchAndReprocess(optimisticPatch);\n await onTryAgain?.();\n },\n onError,\n onUndo,\n });\n }\n\n enqueueMovePatch<R>(\n optimisticPatch: OptimisticPatch<T>,\n params: MoveParams<T, R>,\n ) {\n const { submit, onTryAgain } = params;\n const { collection, state, events } = this;\n const { patches } = state;\n\n const event = optimisticPatch.move;\n\n if (event == null) {\n return;\n }\n\n const { filtersKeyHash } = event;\n\n const _initSequence = () => {\n const { sequences } = this;\n const seq =\n sequences.get(filtersKeyHash) ??\n new CollectionOptimisticSequenceExecutor({\n showToast: collection.showToast,\n translate: collection.translate,\n errorMonitor: collection.errorMonitor,\n onRollback: (err) => {\n const pendingPatches = patches.filter(\n (p) => p.move?.filtersKeyHash === filtersKeyHash,\n );\n this.rollback(pendingPatches);\n\n if (\n err instanceof Error &&\n err.message === this.reorderModeCanceledMessage\n ) {\n executor.seq.clear();\n return;\n }\n\n events.emit('dragAndDropSequenceError', {\n patches: pendingPatches,\n });\n executor.seq.clear();\n return {\n message: collection.translate('cairo.dragAndDrop.error.toast'),\n biName: 'cairo-drag-and-drop-submit-error',\n action: {\n onClick: async () => {\n this.pushPatchAndReprocess(pendingPatches);\n for (const p of pendingPatches) {\n this.enqueueMovePatch(p, params);\n }\n events.emit('dragAndDropSequenceRetry', {\n patches: pendingPatches,\n });\n\n await onTryAgain?.();\n },\n },\n };\n },\n });\n\n if (!sequences.has(filtersKeyHash)) {\n sequences.set(filtersKeyHash, seq);\n }\n\n return seq;\n };\n\n const executor = _initSequence();\n\n executor.sequence({\n submit: () => submit?.(event),\n onEventuallyUpdated: optimisticPatch.onEventuallyUpdated,\n });\n }\n\n async move<R>(event: ActionMove<T>, params: MoveParams<T, R>) {\n const { collection, state } = this;\n const { itemKey, result } = collection;\n const { patches } = state;\n\n const optimisticPatch = new OptimisticPatch({\n queryCache: collection.queryCache,\n queryNames: this._queryNames,\n patches,\n actionType: 'move',\n patchedItems: new Map(),\n originalItems: new Map(),\n originalTotal: result.total,\n selector: (item, { patchedItems }) => patchedItems.has(itemKey(item)),\n move: event,\n collectionSnapshot: params.collectionSnapshot,\n });\n\n this.pushPatchAndReprocess(optimisticPatch);\n\n optimisticPatch.events.on(\n 'scheduleRemoval',\n this._clearPatchOnNextResultOrUnmount,\n );\n\n this.enqueueMovePatch(optimisticPatch, params);\n }\n\n /**\n * Updates a single item in the collection.\n * @param item - The item to update.\n * @param params - Additional parameters for the operation.\n * @external\n */\n updateOne<R>(item: T, params: UpdateManyParams<T, R>) {\n return this.updateMany([item], params);\n }\n\n /**\n * > `updateAll(fn)` API is not recommended as it's not possible to calculate \"optimistic total\", prefer updateAll(patchObject) API if possible.\n * Updates all items in the collection based on a function or a patch object.\n * @param patchOrFn - A function or a patch object to apply to each item.\n * @param params - Additional parameters for the operation.\n */\n updateAll<R>(\n patchOrFn: (item: T) => Partial<T>,\n params: UpdateAllParams<R>,\n ): void;\n\n /**\n * Updates all items in the collection based on a patch object.\n * @param patch - A patch object to apply to each item.\n * @param params - Additional parameters for the operation.\n * @external\n */\n updateAll<R>(patch: Partial<T>, params: UpdateAllParams<R>): void;\n\n updateAll<R>(\n patchOrFn: ((item: T) => Partial<T>) | Partial<T>,\n params: UpdateAllParams<R>,\n ) {\n const { executor, collection, predicate, createdAt } = this;\n const {\n submit,\n updateServerAfter,\n keepPosition,\n onUndo,\n onTryAgain,\n onError,\n } = params;\n const {\n itemKey,\n result: { originQuery, items, total },\n } = collection;\n\n const itemPredicate = predicate(originQuery);\n\n const updatedAt = new Date();\n\n const { patch, actionType } =\n typeof patchOrFn === 'function'\n ? { actionType: 'updateAll' as const, patch: patchOrFn }\n : {\n actionType: 'updateAllConst' as const,\n patch: (item: T) => ({ ...item, ...patchOrFn }),\n };\n\n const optimisticPatch = new OptimisticPatch({\n queryCache: collection.queryCache,\n patches: this.state.patches,\n actionType,\n keepPosition,\n queryNames: this._queryNames,\n patchedItems: new Map(\n items.map((item) => [itemKey(item), { ...item, ...patch(item) }]),\n ),\n originalItems: new Map(items.map((item) => [itemKey(item), item])),\n originalTotal: total,\n selector: (item) =>\n itemPredicate(item) &&\n (createdAt == null || createdAt(item) <= updatedAt),\n patch,\n });\n\n this.pushPatchAndReprocess(optimisticPatch);\n\n optimisticPatch.events.on(\n 'scheduleRemoval',\n this._clearPatchOnNextResultOrUnmount,\n );\n\n executor.execute([optimisticPatch], {\n ...params,\n submit,\n onRollback: () => {\n this.rollback(optimisticPatch);\n },\n eventuallyUpdated: updateServerAfter,\n onEventuallyUpdated: optimisticPatch.onEventuallyUpdated,\n onTryAgain: async () => {\n this.pushPatchAndReprocess(optimisticPatch);\n await onTryAgain?.();\n },\n onError,\n onUndo,\n });\n }\n\n /**\n * Deletes multiple items from the collection.\n * @param items - An array of items to delete.\n * @param params - Additional parameters for the delete operation.\n * @external\n */\n deleteMany<R>(items: T[], params: DeleteManyParams<T, R>) {\n const { executor, collection } = this;\n const {\n itemKey,\n result: { total },\n } = collection;\n const { submit, updateServerAfter, onUndo, onTryAgain, onError } = params;\n\n const patchedItems = new Map(items.map((item) => [itemKey(item), item]));\n\n const optimisticPatch = new OptimisticPatch({\n queryCache: collection.queryCache,\n patches: this.state.patches,\n actionType: 'deleteMany',\n patchedItems,\n queryNames: this._queryNames,\n originalItems: patchedItems,\n originalTotal: total,\n selector: (item, { patchedItems }) => patchedItems.has(itemKey(item)),\n });\n\n this.pushPatchAndReprocess(optimisticPatch);\n\n optimisticPatch.events.on(\n 'scheduleRemoval',\n this._clearPatchOnNextResultOrUnmount,\n );\n\n executor.execute([optimisticPatch], {\n ...params,\n submit: action((actions) =>\n submit(\n Array.from(\n actions\n .filter(({ actionType }) => actionType === 'deleteMany')\n .reduce((map, { patchedItemsEntries }) => {\n for (const [key, item] of patchedItemsEntries) {\n map.set(key, item);\n }\n return map;\n }, new Map<string, T>())\n .values(),\n ),\n ),\n ),\n onRollback: () => {\n this.rollback(optimisticPatch);\n },\n eventuallyUpdated: updateServerAfter,\n onEventuallyUpdated: optimisticPatch.onEventuallyUpdated,\n onTryAgain: async () => {\n this.pushPatchAndReprocess(optimisticPatch);\n await onTryAgain?.();\n },\n onError,\n onUndo,\n });\n }\n\n /**\n * Deletes a single item from the collection.\n * @param item - The item to delete.\n * @param params - Additional parameters for the operation.\n * @external\n */\n deleteOne<R>(item: T, params: DeleteManyParams<T, R>) {\n return this.deleteMany([item], params);\n }\n\n /**\n * Deletes all items from the collection.\n * @param params - Additional parameters for the operation.\n * @external\n */\n deleteAll<R>(params: UpdateAllParams<R>) {\n const { executor, collection, predicate, createdAt } = this;\n const { submit, updateServerAfter, onUndo, onTryAgain, onError } = params;\n const {\n itemKey,\n result: { originQuery, items, total },\n } = collection;\n\n const itemPredicate = predicate(originQuery);\n\n const updatedAt = new Date();\n\n const patchedItems = new Map(items.map((item) => [itemKey(item), item]));\n\n const optimisticPatch = new OptimisticPatch({\n patches: this.state.patches,\n queryCache: collection.queryCache,\n actionType: 'deleteAll',\n patchedItems,\n queryNames: this._queryNames,\n originalItems: patchedItems,\n originalTotal: total,\n selector: (item) =>\n itemPredicate(item) &&\n (createdAt == null || createdAt(item) <= updatedAt),\n });\n\n optimisticPatch.events.on(\n 'scheduleRemoval',\n this._clearPatchOnNextResultOrUnmount,\n );\n\n this.pushPatchAndReprocess(optimisticPatch);\n\n executor.execute([optimisticPatch], {\n ...params,\n submit,\n onRollback: () => {\n this.rollback(optimisticPatch);\n },\n eventuallyUpdated: updateServerAfter,\n onEventuallyUpdated: optimisticPatch.onEventuallyUpdated,\n onTryAgain: async () => {\n this.pushPatchAndReprocess(optimisticPatch);\n await onTryAgain?.();\n },\n onError,\n onUndo,\n });\n }\n\n initCollection(collection: CollectionState<T, F>) {\n this.collections.push(collection);\n new CollectionOptimisticProcessor({\n collection,\n optimistic: this,\n orderBy: this.orderBy,\n predicate: this.predicate,\n });\n\n return () => {\n const i = this.collections.indexOf(collection);\n if (i !== -1) {\n this.collections.splice(i, 1);\n }\n };\n }\n\n init() {\n const { collection, events } = this;\n\n // The only case when this.state._patchesBeforeUnmount won't be null -\n // when the state was cached with patterns router, so we want to restore the patches that were existed before the unmount\n if (this.state._patchesBeforeUnmount) {\n this.state.patches.clear();\n this.state.patches.push(...this.state._patchesBeforeUnmount);\n }\n\n const emitRefresh = (params: { isStale: boolean }) => {\n events.emit('refresh', params);\n };\n const emitBeforeResultUpdated = () => events.emit('beforeResultUpdated');\n\n collection.emitter.on('refresh', emitRefresh);\n collection.emitter.on('beforeResultUpdated', emitBeforeResultUpdated);\n\n const disposers = [\n reaction(\n () => {\n const {\n result: { isEmpty, _pages },\n } = collection;\n const unprocessed = _pages.unprocessed.flatMap((page) => page);\n return isEmpty && unprocessed.length > 0;\n },\n (allFilteredOut) => {\n if (allFilteredOut) {\n collection.fetchNextPageIfNeeded();\n }\n },\n ),\n ];\n\n return () => {\n collection.emitter.off('refresh', emitRefresh);\n collection.emitter.off('beforeResultUpdated', emitBeforeResultUpdated);\n disposers.forEach((disposer) => disposer());\n this.state._patchesBeforeUnmount = this.state.patches.toJSON();\n events.emit('unmount');\n };\n }\n\n clear() {\n const { patches } = this.state;\n const remaining = patches.clear();\n for (const patch of remaining) {\n if (!patch.isStale) {\n patches.push(patch);\n }\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_commonExportAsyncJobErrors","require","createExportAsyncJobErrors","translate","t","applicationError","method_endpoint_not_found","message","action","text","onClick","window","open","statusCodeError","commonExportAsyncJobErrors","exports"],"sources":["../../../../src/state/ExportState/createExportAsyncJobErrors.ts"],"sourcesContent":["import {
|
|
1
|
+
{"version":3,"names":["_commonExportAsyncJobErrors","require","createExportAsyncJobErrors","translate","t","applicationError","method_endpoint_not_found","message","action","text","onClick","window","open","statusCodeError","commonExportAsyncJobErrors","exports"],"sources":["../../../../src/state/ExportState/createExportAsyncJobErrors.ts"],"sourcesContent":["import { ErrorCodesMapRequiredApplicationError } from '@wix/fe-essentials/error-handler';\nimport { Translate } from '../../services';\nimport { CreateExportAsyncJobApplicationErrors } from '@wix/bex-utils/@wix/ambassador-fedinfra-exportservice-v1-export-async-job/types';\nimport { commonExportAsyncJobErrors } from './commonExportAsyncJobErrors';\n\nexport const createExportAsyncJobErrors = ({\n translate: t,\n}: {\n translate: Translate;\n}): ErrorCodesMapRequiredApplicationError<CreateExportAsyncJobApplicationErrors> => {\n return {\n applicationError: {\n method_endpoint_not_found: () => ({\n message: t(\n 'cairo.export.CreateExportAsyncJob.method-endpoint-not-found.error',\n ),\n action: {\n text: t('cairo.error.contactSupport.cta'),\n onClick: () => {\n window.open('https://www.wix.com/contact', '_blank');\n },\n },\n }),\n },\n statusCodeError: {\n ...commonExportAsyncJobErrors({ translate: t }),\n },\n };\n};\n"],"mappings":";;;;AAGA,IAAAA,2BAAA,GAAAC,OAAA;AAEO,MAAMC,0BAA0B,GAAGA,CAAC;EACzCC,SAAS,EAAEC;AAGb,CAAC,KAAmF;EAClF,OAAO;IACLC,gBAAgB,EAAE;MAChBC,yBAAyB,EAAEA,CAAA,MAAO;QAChCC,OAAO,EAAEH,CAAC,CACR,mEACF,CAAC;QACDI,MAAM,EAAE;UACNC,IAAI,EAAEL,CAAC,CAAC,gCAAgC,CAAC;UACzCM,OAAO,EAAEA,CAAA,KAAM;YACbC,MAAM,CAACC,IAAI,CAAC,6BAA6B,EAAE,QAAQ,CAAC;UACtD;QACF;MACF,CAAC;IACH,CAAC;IACDC,eAAe,EAAE;MACf,GAAG,IAAAC,sDAA0B,EAAC;QAAEX,SAAS,EAAEC;MAAE,CAAC;IAChD;EACF,CAAC;AACH,CAAC;AAACW,OAAA,CAAAb,0BAAA,GAAAA,0BAAA","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_commonExportAsyncJobErrors","require","getExportAsyncJobErrors","translate","t","retryFn","applicationError","job_not_found","message","action","text","onClick","get_async_job_internal","method_endpoint_permission_denied","statusCodeError","commonExportAsyncJobErrors","exports"],"sources":["../../../../src/state/ExportState/getExportAsyncJobErrors.ts"],"sourcesContent":["import {
|
|
1
|
+
{"version":3,"names":["_commonExportAsyncJobErrors","require","getExportAsyncJobErrors","translate","t","retryFn","applicationError","job_not_found","message","action","text","onClick","get_async_job_internal","method_endpoint_permission_denied","statusCodeError","commonExportAsyncJobErrors","exports"],"sources":["../../../../src/state/ExportState/getExportAsyncJobErrors.ts"],"sourcesContent":["import { ErrorCodesMapRequiredApplicationError } from '@wix/fe-essentials/error-handler';\nimport { Translate } from '../../services';\nimport { GetExportAsyncJobApplicationErrors } from '@wix/bex-utils/@wix/ambassador-fedinfra-exportservice-v1-export-async-job/types';\nimport { commonExportAsyncJobErrors } from './commonExportAsyncJobErrors';\n\nexport const getExportAsyncJobErrors = ({\n translate: t,\n retryFn,\n}: {\n translate: Translate;\n retryFn?: () => void;\n}): ErrorCodesMapRequiredApplicationError<GetExportAsyncJobApplicationErrors> => {\n return {\n applicationError: {\n job_not_found: () => ({\n message: t('cairo.export.GetExportAsyncJob.job-not-found.error'),\n action: {\n text: t('cairo.error.tryAgain.cta'),\n onClick: retryFn,\n },\n }),\n get_async_job_internal: () => ({\n message: t('cairo.export.get-async-job.error.internal'),\n action: {\n text: t('cairo.error.tryAgain.cta'),\n onClick: retryFn,\n },\n }),\n method_endpoint_permission_denied: false,\n },\n statusCodeError: {\n ...commonExportAsyncJobErrors({ translate: t }),\n },\n };\n};\n"],"mappings":";;;;AAGA,IAAAA,2BAAA,GAAAC,OAAA;AAEO,MAAMC,uBAAuB,GAAGA,CAAC;EACtCC,SAAS,EAAEC,CAAC;EACZC;AAIF,CAAC,KAAgF;EAC/E,OAAO;IACLC,gBAAgB,EAAE;MAChBC,aAAa,EAAEA,CAAA,MAAO;QACpBC,OAAO,EAAEJ,CAAC,CAAC,oDAAoD,CAAC;QAChEK,MAAM,EAAE;UACNC,IAAI,EAAEN,CAAC,CAAC,0BAA0B,CAAC;UACnCO,OAAO,EAAEN;QACX;MACF,CAAC,CAAC;MACFO,sBAAsB,EAAEA,CAAA,MAAO;QAC7BJ,OAAO,EAAEJ,CAAC,CAAC,2CAA2C,CAAC;QACvDK,MAAM,EAAE;UACNC,IAAI,EAAEN,CAAC,CAAC,0BAA0B,CAAC;UACnCO,OAAO,EAAEN;QACX;MACF,CAAC,CAAC;MACFQ,iCAAiC,EAAE;IACrC,CAAC;IACDC,eAAe,EAAE;MACf,GAAG,IAAAC,sDAA0B,EAAC;QAAEZ,SAAS,EAAEC;MAAE,CAAC;IAChD;EACF,CAAC;AACH,CAAC;AAACY,OAAA,CAAAd,uBAAA,GAAAA,uBAAA","ignoreList":[]}
|
|
@@ -18,10 +18,14 @@ class SelectMapState {
|
|
|
18
18
|
if (this.events.listeners('isDisabled').some(listener => listener(value))) {
|
|
19
19
|
return;
|
|
20
20
|
}
|
|
21
|
-
|
|
21
|
+
(0, _mobx.runInAction)(() => {
|
|
22
|
+
this.map.set(key, value);
|
|
23
|
+
});
|
|
22
24
|
}
|
|
23
25
|
forceSet(key, value) {
|
|
24
|
-
|
|
26
|
+
(0, _mobx.runInAction)(() => {
|
|
27
|
+
this.map.set(key, value);
|
|
28
|
+
});
|
|
25
29
|
}
|
|
26
30
|
get(key) {
|
|
27
31
|
return this.map.get(key);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_mobx","require","_events","SelectMapState","constructor","_defineProperty2","default","EventEmitter","map","observable","deep","set","key","value","events","listeners","some","listener","forceSet","get","values","entries","clear","exports"],"sources":["../../../src/state/SelectMapState.ts"],"sourcesContent":["import { observable, ObservableMap } from 'mobx';\nimport { EventEmitter } from 'events';\nimport { TypedEmitter } from '../util';\n\nexport class SelectMapState<K, V> {\n private map: ObservableMap<K, V>;\n readonly events = new EventEmitter() as TypedEmitter<{\n isDisabled: (item: V) => boolean;\n }>;\n\n constructor() {\n this.map = observable.map<K, V>([], {\n deep: false,\n });\n }\n\n set(key: K, value: V) {\n if (\n this.events.listeners('isDisabled').some((listener) => listener(value))\n ) {\n return;\n }\n\n this.map.set(key, value);\n }\n\n forceSet(key: K, value: V) {\n this.map.set(key, value);\n }\n\n get(key: K) {\n return this.map.get(key);\n }\n\n values() {\n return this.map.values();\n }\n\n entries() {\n return this.map.entries();\n }\n\n clear() {\n return this.map.clear();\n }\n}\n"],"mappings":";;;;;;AAAA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AAGO,MAAME,cAAc,CAAO;EAMhCC,WAAWA,CAAA,EAAG;IAAA,IAAAC,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA,kBAJI,IAAIC,oBAAY,CAAC,CAAC;IAKlC,IAAI,CAACC,GAAG,GAAGC,gBAAU,CAACD,GAAG,CAAO,EAAE,EAAE;MAClCE,IAAI,EAAE;IACR,CAAC,CAAC;EACJ;EAEAC,GAAGA,CAACC,GAAM,EAAEC,KAAQ,EAAE;IACpB,IACE,IAAI,CAACC,MAAM,CAACC,SAAS,CAAC,YAAY,CAAC,CAACC,IAAI,CAAEC,QAAQ,IAAKA,QAAQ,CAACJ,KAAK,CAAC,CAAC,EACvE;MACA;IACF;IAEA,IAAI,
|
|
1
|
+
{"version":3,"names":["_mobx","require","_events","SelectMapState","constructor","_defineProperty2","default","EventEmitter","map","observable","deep","set","key","value","events","listeners","some","listener","runInAction","forceSet","get","values","entries","clear","exports"],"sources":["../../../src/state/SelectMapState.ts"],"sourcesContent":["import { observable, ObservableMap, runInAction } from 'mobx';\nimport { EventEmitter } from 'events';\nimport { TypedEmitter } from '../util';\n\nexport class SelectMapState<K, V> {\n private map: ObservableMap<K, V>;\n readonly events = new EventEmitter() as TypedEmitter<{\n isDisabled: (item: V) => boolean;\n }>;\n\n constructor() {\n this.map = observable.map<K, V>([], {\n deep: false,\n });\n }\n\n set(key: K, value: V) {\n if (\n this.events.listeners('isDisabled').some((listener) => listener(value))\n ) {\n return;\n }\n\n runInAction(() => {\n this.map.set(key, value);\n });\n }\n\n forceSet(key: K, value: V) {\n runInAction(() => {\n this.map.set(key, value);\n });\n }\n\n get(key: K) {\n return this.map.get(key);\n }\n\n values() {\n return this.map.values();\n }\n\n entries() {\n return this.map.entries();\n }\n\n clear() {\n return this.map.clear();\n }\n}\n"],"mappings":";;;;;;AAAA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AAGO,MAAME,cAAc,CAAO;EAMhCC,WAAWA,CAAA,EAAG;IAAA,IAAAC,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA,kBAJI,IAAIC,oBAAY,CAAC,CAAC;IAKlC,IAAI,CAACC,GAAG,GAAGC,gBAAU,CAACD,GAAG,CAAO,EAAE,EAAE;MAClCE,IAAI,EAAE;IACR,CAAC,CAAC;EACJ;EAEAC,GAAGA,CAACC,GAAM,EAAEC,KAAQ,EAAE;IACpB,IACE,IAAI,CAACC,MAAM,CAACC,SAAS,CAAC,YAAY,CAAC,CAACC,IAAI,CAAEC,QAAQ,IAAKA,QAAQ,CAACJ,KAAK,CAAC,CAAC,EACvE;MACA;IACF;IAEA,IAAAK,iBAAW,EAAC,MAAM;MAChB,IAAI,CAACV,GAAG,CAACG,GAAG,CAACC,GAAG,EAAEC,KAAK,CAAC;IAC1B,CAAC,CAAC;EACJ;EAEAM,QAAQA,CAACP,GAAM,EAAEC,KAAQ,EAAE;IACzB,IAAAK,iBAAW,EAAC,MAAM;MAChB,IAAI,CAACV,GAAG,CAACG,GAAG,CAACC,GAAG,EAAEC,KAAK,CAAC;IAC1B,CAAC,CAAC;EACJ;EAEAO,GAAGA,CAACR,GAAM,EAAE;IACV,OAAO,IAAI,CAACJ,GAAG,CAACY,GAAG,CAACR,GAAG,CAAC;EAC1B;EAEAS,MAAMA,CAAA,EAAG;IACP,OAAO,IAAI,CAACb,GAAG,CAACa,MAAM,CAAC,CAAC;EAC1B;EAEAC,OAAOA,CAAA,EAAG;IACR,OAAO,IAAI,CAACd,GAAG,CAACc,OAAO,CAAC,CAAC;EAC3B;EAEAC,KAAKA,CAAA,EAAG;IACN,OAAO,IAAI,CAACf,GAAG,CAACe,KAAK,CAAC,CAAC;EACzB;AACF;AAACC,OAAA,CAAArB,cAAA,GAAAA,cAAA","ignoreList":[]}
|
|
@@ -27,6 +27,7 @@ class TagsManagementState {
|
|
|
27
27
|
(0, _defineProperty2.default)(this, "tagsService", void 0);
|
|
28
28
|
(0, _defineProperty2.default)(this, "events", new _events.EventEmitter());
|
|
29
29
|
(0, _defineProperty2.default)(this, "overrideShowToast", false);
|
|
30
|
+
(0, _defineProperty2.default)(this, "_resolvedListTagsError", void 0);
|
|
30
31
|
this.container = params.container;
|
|
31
32
|
this.fqdn = params.fqdn;
|
|
32
33
|
this.tagsService = new _tagsService.TagsService({
|
|
@@ -34,12 +35,25 @@ class TagsManagementState {
|
|
|
34
35
|
});
|
|
35
36
|
this.collection = new _CollectionState.CollectionState({
|
|
36
37
|
...params.container,
|
|
37
|
-
events: {
|
|
38
|
+
events: {
|
|
39
|
+
onError: error => {
|
|
40
|
+
var _this$container$error, _this$container$error2;
|
|
41
|
+
this._resolvedListTagsError = (_this$container$error = (_this$container$error2 = this.container.errorHandler).getResolvedError) == null ? void 0 : _this$container$error.call(_this$container$error2, error.err);
|
|
42
|
+
}
|
|
43
|
+
},
|
|
38
44
|
queryName: [this.fqdnString, 'tags'].join('/'),
|
|
39
45
|
fetchData: async () => {
|
|
40
46
|
const fetchedItems = await this.tagsService.listTags({
|
|
41
47
|
fqdn: this.fqdnString,
|
|
42
48
|
exposure: _types.TagExposure.PRIVATE
|
|
49
|
+
}, {
|
|
50
|
+
serverError: () => ({
|
|
51
|
+
message: this.container.translate('cairo.tags.collectionPage.popover.loadTags.error.body'),
|
|
52
|
+
action: {
|
|
53
|
+
text: this.container.translate('cairo.tags.loadTags.error.CTA'),
|
|
54
|
+
onClick: () => this.retry()
|
|
55
|
+
}
|
|
56
|
+
})
|
|
43
57
|
});
|
|
44
58
|
return {
|
|
45
59
|
items: fetchedItems,
|
|
@@ -117,6 +131,9 @@ class TagsManagementState {
|
|
|
117
131
|
get isError() {
|
|
118
132
|
return this.initTask.status.isError;
|
|
119
133
|
}
|
|
134
|
+
get error() {
|
|
135
|
+
return this._resolvedListTagsError;
|
|
136
|
+
}
|
|
120
137
|
get isLoading() {
|
|
121
138
|
const {
|
|
122
139
|
status
|