@wix/bex-core 2.0.0 → 2.2.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_cs.json +4 -4
- package/dist/cjs/assets/locale/messages_da.json +1 -1
- package/dist/cjs/assets/locale/messages_de.json +1 -1
- package/dist/cjs/assets/locale/messages_en.json +1 -1
- package/dist/cjs/assets/locale/messages_es.json +1 -1
- package/dist/cjs/assets/locale/messages_fr.json +1 -1
- package/dist/cjs/assets/locale/messages_id.json +1 -1
- package/dist/cjs/assets/locale/messages_it.json +7 -7
- package/dist/cjs/assets/locale/messages_ja.json +3 -3
- package/dist/cjs/assets/locale/messages_ko.json +1 -1
- package/dist/cjs/assets/locale/messages_nl.json +3 -3
- package/dist/cjs/assets/locale/messages_no.json +1 -1
- package/dist/cjs/assets/locale/messages_pl.json +1 -1
- package/dist/cjs/assets/locale/messages_pt.json +3 -3
- package/dist/cjs/assets/locale/messages_sv.json +1 -1
- package/dist/cjs/assets/locale/messages_th.json +1 -1
- package/dist/cjs/assets/locale/messages_tr.json +4 -4
- package/dist/cjs/assets/locale/messages_uk.json +1 -1
- package/dist/cjs/assets/locale/messages_vi.json +5 -5
- package/dist/cjs/assets/locale/messages_visuale2e.json +3 -1
- package/dist/cjs/assets/locale/messages_zh.json +2 -2
- package/dist/cjs/hooks/collectionConfig.js.map +1 -1
- package/dist/cjs/hooks/collectionConfigPartials.js.map +1 -1
- package/dist/cjs/hooks/createCollection.js +1 -2
- package/dist/cjs/hooks/createCollection.js.map +1 -1
- package/dist/cjs/hooks/createCollectionConfig.js +4 -4
- package/dist/cjs/hooks/createCollectionConfig.js.map +1 -1
- package/dist/cjs/hooks/useAmbassadorCollection.js +8 -8
- package/dist/cjs/hooks/useAmbassadorCollection.js.map +1 -1
- package/dist/cjs/hooks/useOptimisticActions.js +1 -1
- package/dist/cjs/hooks/useOptimisticActions.js.map +1 -1
- package/dist/cjs/model/cairoEssentials.js.map +1 -1
- package/dist/cjs/model/commonTypes.js.map +1 -1
- package/dist/cjs/model/computedQuery/computedQuery.js.map +1 -1
- package/dist/cjs/model/filter.js.map +1 -1
- package/dist/cjs/providers/CairoContainerOverridesContext.js +1 -6
- package/dist/cjs/providers/CairoContainerOverridesContext.js.map +1 -1
- package/dist/cjs/providers/CairoContainerProvider/CairoContainerProvider.js +1 -6
- package/dist/cjs/providers/CairoContainerProvider/CairoContainerProvider.js.map +1 -1
- package/dist/cjs/providers/CairoInitialPropsProvider.js +3 -3
- package/dist/cjs/providers/CairoInitialPropsProvider.js.map +1 -1
- package/dist/cjs/providers/CairoProvider/CairoProvider.js +2 -2
- package/dist/cjs/providers/CairoProvider/CairoProvider.js.map +1 -1
- package/dist/cjs/state/ArrayFilterState/ArrayFilterState.js +0 -4
- package/dist/cjs/state/ArrayFilterState/ArrayFilterState.js.map +1 -1
- package/dist/cjs/state/BulkSelectState.js +13 -11
- package/dist/cjs/state/BulkSelectState.js.map +1 -1
- package/dist/cjs/state/CairoContainer.js +2 -13
- package/dist/cjs/state/CairoContainer.js.map +1 -1
- package/dist/cjs/state/CollectionOptimisticActions.js +11 -93
- package/dist/cjs/state/CollectionOptimisticActions.js.map +1 -1
- package/dist/cjs/state/CollectionOptimisticExecutor.js +2 -2
- package/dist/cjs/state/CollectionOptimisticExecutor.js.map +1 -1
- package/dist/cjs/state/CollectionState.js +0 -20
- package/dist/cjs/state/CollectionState.js.map +1 -1
- package/dist/cjs/state/CustomFilterState/CustomFilterState.js +0 -4
- package/dist/cjs/state/CustomFilterState/CustomFilterState.js.map +1 -1
- package/dist/cjs/state/ExportState.js +7 -7
- package/dist/cjs/state/ExportState.js.map +1 -1
- package/dist/cjs/state/RangeFilterState/RangeFilterState.js +0 -4
- package/dist/cjs/state/RangeFilterState/RangeFilterState.js.map +1 -1
- package/dist/cjs/state/RangeFilterState/dateRangeUtils.js.map +1 -1
- package/dist/cjs/state/SortState.js +4 -4
- package/dist/cjs/state/SortState.js.map +1 -1
- package/dist/cjs/state/StringFilterState/StringFilterState.js +0 -4
- package/dist/cjs/state/StringFilterState/StringFilterState.js.map +1 -1
- package/dist/cjs/state/buildCairoContainer.js +4 -10
- package/dist/cjs/state/buildCairoContainer.js.map +1 -1
- package/dist/cjs/state/index.js +0 -7
- package/dist/cjs/state/index.js.map +1 -1
- package/dist/cjs/testkit/CairoContainer.driver.js +3 -3
- package/dist/cjs/testkit/CairoContainer.driver.js.map +1 -1
- package/dist/cjs/testkit/ProductsCollectionState.driver.js +1 -1
- package/dist/cjs/testkit/ProductsCollectionState.driver.js.map +1 -1
- package/dist/cjs/util/assertKey.js +21 -1
- package/dist/cjs/util/assertKey.js.map +1 -1
- package/dist/esm/assets/locale/messages_cs.json +4 -4
- package/dist/esm/assets/locale/messages_da.json +1 -1
- package/dist/esm/assets/locale/messages_de.json +1 -1
- package/dist/esm/assets/locale/messages_en.json +1 -1
- package/dist/esm/assets/locale/messages_es.json +1 -1
- package/dist/esm/assets/locale/messages_fr.json +1 -1
- package/dist/esm/assets/locale/messages_id.json +1 -1
- package/dist/esm/assets/locale/messages_it.json +7 -7
- package/dist/esm/assets/locale/messages_ja.json +3 -3
- package/dist/esm/assets/locale/messages_ko.json +1 -1
- package/dist/esm/assets/locale/messages_nl.json +3 -3
- package/dist/esm/assets/locale/messages_no.json +1 -1
- package/dist/esm/assets/locale/messages_pl.json +1 -1
- package/dist/esm/assets/locale/messages_pt.json +3 -3
- package/dist/esm/assets/locale/messages_sv.json +1 -1
- package/dist/esm/assets/locale/messages_th.json +1 -1
- package/dist/esm/assets/locale/messages_tr.json +4 -4
- package/dist/esm/assets/locale/messages_uk.json +1 -1
- package/dist/esm/assets/locale/messages_vi.json +5 -5
- package/dist/esm/assets/locale/messages_visuale2e.json +3 -1
- package/dist/esm/assets/locale/messages_zh.json +2 -2
- package/dist/esm/hooks/createCollection.js +2 -2
- package/dist/esm/hooks/createCollection.js.map +1 -1
- package/dist/esm/hooks/createCollectionConfig.js +7 -6
- package/dist/esm/hooks/createCollectionConfig.js.map +1 -1
- package/dist/esm/hooks/useAmbassadorCollection.js +9 -6
- package/dist/esm/hooks/useAmbassadorCollection.js.map +1 -1
- package/dist/esm/hooks/useOptimisticActions.js +5 -2
- package/dist/esm/hooks/useOptimisticActions.js.map +1 -1
- package/dist/esm/providers/CairoContainerOverridesContext.js +0 -5
- package/dist/esm/providers/CairoContainerOverridesContext.js.map +1 -1
- package/dist/esm/providers/CairoContainerProvider/CairoContainerProvider.js +0 -5
- package/dist/esm/providers/CairoContainerProvider/CairoContainerProvider.js.map +1 -1
- package/dist/esm/providers/CairoInitialPropsProvider.js +1 -1
- package/dist/esm/providers/CairoInitialPropsProvider.js.map +1 -1
- package/dist/esm/providers/CairoProvider/CairoProvider.js +4 -4
- package/dist/esm/providers/CairoProvider/CairoProvider.js.map +1 -1
- package/dist/esm/state/ArrayFilterState/ArrayFilterState.js +5 -7
- package/dist/esm/state/ArrayFilterState/ArrayFilterState.js.map +1 -1
- package/dist/esm/state/BulkSelectState.js +9 -9
- package/dist/esm/state/BulkSelectState.js.map +1 -1
- package/dist/esm/state/CairoContainer.js +1 -7
- package/dist/esm/state/CairoContainer.js.map +1 -1
- package/dist/esm/state/CollectionOptimisticActions.js +10 -58
- package/dist/esm/state/CollectionOptimisticActions.js.map +1 -1
- package/dist/esm/state/CollectionOptimisticExecutor.js +2 -2
- package/dist/esm/state/CollectionOptimisticExecutor.js.map +1 -1
- package/dist/esm/state/CollectionState.js +5 -19
- package/dist/esm/state/CollectionState.js.map +1 -1
- package/dist/esm/state/CustomFilterState/CustomFilterState.js +4 -6
- package/dist/esm/state/CustomFilterState/CustomFilterState.js.map +1 -1
- package/dist/esm/state/ExportState.js +7 -7
- package/dist/esm/state/ExportState.js.map +1 -1
- package/dist/esm/state/RangeFilterState/RangeFilterState.js +8 -10
- package/dist/esm/state/RangeFilterState/RangeFilterState.js.map +1 -1
- package/dist/esm/state/SortState.js +4 -4
- package/dist/esm/state/SortState.js.map +1 -1
- package/dist/esm/state/StringFilterState/StringFilterState.js +5 -7
- package/dist/esm/state/StringFilterState/StringFilterState.js.map +1 -1
- package/dist/esm/state/buildCairoContainer.js +5 -4
- package/dist/esm/state/buildCairoContainer.js.map +1 -1
- package/dist/esm/state/index.js +0 -1
- package/dist/esm/state/index.js.map +1 -1
- package/dist/esm/testkit/CairoContainer.driver.js +1 -1
- package/dist/esm/testkit/CairoContainer.driver.js.map +1 -1
- package/dist/esm/testkit/ProductsCollectionState.driver.js +2 -2
- package/dist/esm/testkit/ProductsCollectionState.driver.js.map +1 -1
- package/dist/esm/util/assertKey.js +18 -1
- package/dist/esm/util/assertKey.js.map +1 -1
- package/dist/types/hooks/collectionConfig.d.ts +3 -7
- package/dist/types/hooks/collectionConfig.d.ts.map +1 -1
- package/dist/types/hooks/collectionConfigPartials.d.ts +6 -2
- package/dist/types/hooks/collectionConfigPartials.d.ts.map +1 -1
- package/dist/types/hooks/createCollection.d.ts.map +1 -1
- package/dist/types/hooks/createCollectionConfig.d.ts.map +1 -1
- package/dist/types/hooks/useAmbassadorCollection.d.ts +2 -2
- package/dist/types/hooks/useAmbassadorCollection.d.ts.map +1 -1
- package/dist/types/hooks/useOptimisticActions.d.ts.map +1 -1
- package/dist/types/model/cairoEssentials.d.ts +1 -14
- package/dist/types/model/cairoEssentials.d.ts.map +1 -1
- package/dist/types/model/commonTypes.d.ts +1 -1
- package/dist/types/model/commonTypes.d.ts.map +1 -1
- package/dist/types/model/computedQuery/computedQuery.d.ts +2 -2
- package/dist/types/model/computedQuery/computedQuery.d.ts.map +1 -1
- package/dist/types/model/filter.d.ts +0 -5
- package/dist/types/model/filter.d.ts.map +1 -1
- package/dist/types/providers/CairoContainerOverridesContext.d.ts +0 -5
- package/dist/types/providers/CairoContainerOverridesContext.d.ts.map +1 -1
- package/dist/types/providers/CairoContainerProvider/CairoContainerProvider.d.ts +0 -5
- package/dist/types/providers/CairoContainerProvider/CairoContainerProvider.d.ts.map +1 -1
- package/dist/types/providers/CairoInitialPropsProvider.d.ts +1 -1
- package/dist/types/providers/CairoInitialPropsProvider.d.ts.map +1 -1
- package/dist/types/state/ArrayFilterState/ArrayFilterState.d.ts +0 -1
- package/dist/types/state/ArrayFilterState/ArrayFilterState.d.ts.map +1 -1
- package/dist/types/state/BulkSelectState.d.ts +1 -1
- package/dist/types/state/BulkSelectState.d.ts.map +1 -1
- package/dist/types/state/CairoContainer.d.ts +3 -19
- package/dist/types/state/CairoContainer.d.ts.map +1 -1
- package/dist/types/state/CollectionBIReporter.d.ts +1 -1
- package/dist/types/state/CollectionOptimisticActions.d.ts +3 -31
- package/dist/types/state/CollectionOptimisticActions.d.ts.map +1 -1
- package/dist/types/state/CollectionState.d.ts +2 -32
- package/dist/types/state/CollectionState.d.ts.map +1 -1
- package/dist/types/state/CustomFilterState/CustomFilterState.d.ts +0 -1
- package/dist/types/state/CustomFilterState/CustomFilterState.d.ts.map +1 -1
- package/dist/types/state/ExportState.d.ts +1 -1
- package/dist/types/state/ExportState.d.ts.map +1 -1
- package/dist/types/state/RangeFilterState/RangeFilterState.d.ts +0 -1
- package/dist/types/state/RangeFilterState/RangeFilterState.d.ts.map +1 -1
- package/dist/types/state/RangeFilterState/dateRangeUtils.d.ts +1 -1
- package/dist/types/state/RangeFilterState/dateRangeUtils.d.ts.map +1 -1
- package/dist/types/state/SortState.d.ts +5 -5
- package/dist/types/state/SortState.d.ts.map +1 -1
- package/dist/types/state/StringFilterState/StringFilterState.d.ts +0 -5
- package/dist/types/state/StringFilterState/StringFilterState.d.ts.map +1 -1
- package/dist/types/state/buildCairoContainer.d.ts +1 -1
- package/dist/types/state/buildCairoContainer.d.ts.map +1 -1
- package/dist/types/state/index.d.ts +0 -1
- package/dist/types/state/index.d.ts.map +1 -1
- package/dist/types/testkit/CairoContainer.driver.d.ts +3 -3
- package/dist/types/testkit/CairoContainer.driver.d.ts.map +1 -1
- package/dist/types/testkit/ProductsCollectionState.driver.d.ts +3 -3
- package/dist/types/testkit/ProductsCollectionState.driver.d.ts.map +1 -1
- package/dist/types/util/assertKey.d.ts +7 -1
- package/dist/types/util/assertKey.d.ts.map +1 -1
- package/package.json +3 -3
- package/dist/cjs/state/FiltersPanelModalCompatBridge.js +0 -33
- package/dist/cjs/state/FiltersPanelModalCompatBridge.js.map +0 -1
- package/dist/esm/state/FiltersPanelModalCompatBridge.js +0 -21
- package/dist/esm/state/FiltersPanelModalCompatBridge.js.map +0 -1
- package/dist/types/state/FiltersPanelModalCompatBridge.d.ts +0 -17
- package/dist/types/state/FiltersPanelModalCompatBridge.d.ts.map +0 -1
|
@@ -242,7 +242,7 @@ class ExportState {
|
|
|
242
242
|
return this.collection.bulkSelect.selectedIds.length !== undefined && this.collection.bulkSelect.selectedIds.length > 0;
|
|
243
243
|
}
|
|
244
244
|
get isAllSelected() {
|
|
245
|
-
return this.collection.bulkSelect.
|
|
245
|
+
return this.collection.bulkSelect.allSelected;
|
|
246
246
|
}
|
|
247
247
|
get totalForExportMap() {
|
|
248
248
|
return {
|
|
@@ -770,14 +770,14 @@ class ExportState {
|
|
|
770
770
|
const {
|
|
771
771
|
bulkSelect: {
|
|
772
772
|
selectedIds,
|
|
773
|
-
|
|
773
|
+
allSelected: selectAll,
|
|
774
774
|
uncheckedInCurrentCollection: uncheckedValues
|
|
775
775
|
},
|
|
776
776
|
query: {
|
|
777
777
|
asComputed: computedQuery
|
|
778
778
|
}
|
|
779
779
|
} = this.collection;
|
|
780
|
-
const
|
|
780
|
+
const wixPatternsQuery = selectedExportOption !== 'all' ? computedQuery : {
|
|
781
781
|
...computedQuery,
|
|
782
782
|
filtersKey: {},
|
|
783
783
|
rawFilters: {},
|
|
@@ -785,9 +785,9 @@ class ExportState {
|
|
|
785
785
|
};
|
|
786
786
|
const exportPublicState = {
|
|
787
787
|
platformizedQuery,
|
|
788
|
-
|
|
788
|
+
wixPatternsQuery,
|
|
789
789
|
selectedItems: selectedExportOption === 'selected' ? selectedIds : undefined,
|
|
790
|
-
isSelectAll,
|
|
790
|
+
isSelectAll: selectAll,
|
|
791
791
|
uncheckedValues
|
|
792
792
|
};
|
|
793
793
|
const query = (await (transformPlatformizedQuery == null ? void 0 : transformPlatformizedQuery(exportPublicState))) ?? platformizedQuery;
|
|
@@ -797,9 +797,9 @@ class ExportState {
|
|
|
797
797
|
});
|
|
798
798
|
const saveAs = ((_this$saveAs = this.saveAs) == null ? void 0 : _this$saveAs.call(this, {
|
|
799
799
|
platformizedQuery,
|
|
800
|
-
|
|
800
|
+
wixPatternsQuery,
|
|
801
801
|
selectedItems: selectedExportOption === 'selected' ? selectedIds : undefined,
|
|
802
|
-
isSelectAll
|
|
802
|
+
isSelectAll: selectAll
|
|
803
803
|
})) ?? this.collectionPageState.pageTitle;
|
|
804
804
|
(0, _mobx.runInAction)(() => {
|
|
805
805
|
this.currentStep = 'progress';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_http","require","_types","_mobx","_model","_services","_mapValues","_interopRequireDefault","_events","_ExportStateBIReporter","_getJobItemsAbsoluteCounter","defaultPlatformizedQuery","filter","sort","ExportState","constructor","props","_defineProperty2","default","queryStatus","idle","pollingDelay","stateJob","maxPolling","maxRetries","queryJobRetries","delay","max","iterationsCount","pollCount","retries","count","EventEmitter","selected","action","collection","bulkSelect","selectedCountOrTotal","filtered","result","total","supportTotal","all","allItemsQuery","query","asComputed","filtersKey","mapValues","customFilters","undefined","rawFilters","filters","queryKey","_queryKey","allItemsQueryResult","queryClient","fetchQuery","queryFn","_queryFn","e","preventDefault","returnValue","customTotal","differentQueryEndpointThanCollection","translate","createExportAsyncJobRequest","saveAs","window","httpClient","onlineState","exportModalState","collectionPageState","showToast","internalMonitor","reportBi","disabledRadios","transformPlatformizedQuery","bi","ExportStateBIReporter","makeObservable","exportStatus","observable","ref","iterationsCountPoll","isExporting","computed","totalForExport","selectedExportOption","counter","absoluteCounter","onExportToClick","bound","onExportCloseAttemptClick","onCancelExportCloseButtonClick","onCancelExportGoBackButtonClick","onExportSecondaryActionAttempt","onRetryExportToClick","onFailedClose","onFailedCancel","onCancelClick","onCloseClick","init","setTotalForExport","onExportTypeChange","hasFilters","totalForExportMap","hasSelectedRows","isAllSelected","currentStep","_onJobSuccess","_checkIfStaleJob","_throwJobError","_updateJobProgress","isModalOpen","isOpen","isLoading","isSuccess","_cancelJob","_reset","prev","next","_this$maybeToast","maybeToast","remove","clickOpenModal","onOnlineChanged","isOnline","events","emit","on","removeEventListener","beforeunload","removeAllListeners","off","hasActiveFilters","selectedIds","length","isSelectAll","totalForExportGettersMap","params","collectionTotalPromise","runInAction","close","onCancelExportVerifyButtonClick","onCancelExportButtonClick","onExportCancelAttemptClick","exportStartTime","performance","now","interactionStarted","reportExportEnd","onExportStart","_exportTo","onExportEnd","interactionEnded","job","_job$data","_this$showToast","t","data","signedUrl","once","Promise","resolve","setTimeout","success","_updateAbsoluteCounter","res","biState","beforeToast","call","message","biName","timeout","type","onToastDismissed","by","text","uiType","navigationTarget","url","openInNewTab","onClick","onToastActionClick","download","then","_job$data2","_job$data3","_job$data4","error","applicationError","code","Object","assign","Error","response","_job$data5","_job$data6","status","JobStatus","FINISHED","_job$data7","completionStep","config","_job$data8","newAbsoluteCounter","getJobItemsAbsoluteCounter","Math","floor","random","newCounter","round","_poll","jobId","current","_job$data$error","currentJob","promise","getExportAsyncJobResponse","request","getExportAsyncJob","catch","WixPatternsError","errorCode","originalException","extraData","loading","FAILED","_job$data$error2","checkIfStaleJobResult","_job$data9","_job$data10","pagingMetadata","console","reportError","_this$saveAs","addEventListener","platformizedQuery","uncheckedInCurrentCollection","uncheckedValues","computedQuery","cairoQuery","exportPublicState","selectedItems","totalForExportPromise","pageTitle","_createExport","createExportAsyncJobResponse","createExportAsyncJob","fields","methodMetadata","err","_createExportAsyncJob","id","_createExportAsyncJob2","exports"],"sources":["../../../src/state/ExportState.ts"],"sourcesContent":["import {\n createExportAsyncJob,\n getExportAsyncJob,\n} from '@wix/bex-utils/@wix/ambassador-fedinfra-exportservice-v1-export-async-job/http';\nimport {\n CreateExportAsyncJobRequest,\n ExportAsyncJob,\n ExportQueryV2 as QueryV2,\n Status as JobStatus,\n} from '@wix/bex-utils/@wix/ambassador-fedinfra-exportservice-v1-export-async-job/types';\nimport {\n action,\n computed,\n makeObservable,\n observable,\n runInAction,\n} from 'mobx';\nimport {\n WixPatternsEssentials,\n ComputedQueryFull,\n FiltersMap,\n queryStatus,\n ShowToast,\n TaskStatus,\n} from '../model';\nimport {\n WixPatternsError,\n WixPatternsMonitor,\n PartialWindow,\n ReportBI,\n Translate,\n} from '../services';\nimport { CollectionState } from './CollectionState';\nimport mapValues from 'lodash/mapValues';\nimport { EventEmitter } from 'events';\nimport { TypedEmitter } from '../util';\nimport { ExportStateBIReporter } from './ExportStateBIReporter';\nimport { ModalState } from './ModalState';\nimport { getJobItemsAbsoluteCounter } from './getJobItemsAbsoluteCounter';\nimport { ExportJobStateParams } from './ExportJobState';\nimport { ErrorDetails } from '../util/isHttpError';\nimport { OnlineState } from './OnlineState';\nimport { CollectionPageState } from './CollectionPageState';\n\nfunction defaultPlatformizedQuery(): QueryV2 {\n return {\n filter: {},\n sort: [],\n };\n}\n\ninterface ExportPublicState<T, F extends FiltersMap> {\n platformizedQuery: QueryV2;\n cairoQuery: ComputedQueryFull<F>;\n selectedItems?: string[];\n isSelectAll: boolean;\n uncheckedValues?: T[];\n}\n\nexport type CustomTotalFn<T, F extends FiltersMap> = (\n params: ExportPublicState<T, F> & {\n collectionTotalPromise: number | null | Promise<number | null | undefined>;\n },\n) => number | null | undefined | Promise<number | null | undefined>;\n\nexport type TransformQuery<T, F extends FiltersMap> = (\n params: ExportPublicState<T, F>,\n) => QueryV2 | Promise<QueryV2>;\n\nexport type SaveAsFn<T, F extends FiltersMap> = (\n params: ExportPublicState<T, F>,\n) => string;\n\nexport interface ExportStateProps<T, F extends FiltersMap> {\n transformPlatformizedQuery?: TransformQuery<T, F>;\n differentQueryEndpointThanCollection?: boolean;\n customTotal?: CustomTotalFn<T, F>;\n\n createExportAsyncJobRequest: Partial<CreateExportAsyncJobRequest>;\n saveAs?: SaveAsFn<T, F>;\n\n httpClient: WixPatternsEssentials['httpClient'];\n showToast?: ShowToast;\n translate: Translate;\n collection: CollectionState<T, F>;\n reportBi: ReportBI;\n onlineState: OnlineState;\n internalMonitor: WixPatternsMonitor;\n\n exportModalState: ModalState;\n collectionPageState: CollectionPageState;\n window: PartialWindow;\n}\n\nexport type SelectedExportOption = 'all' | 'selected' | 'filtered';\n\nexport class ExportState<T, F extends FiltersMap> {\n exportStatus: TaskStatus<ExportAsyncJob, unknown> = {\n ...queryStatus.idle,\n };\n\n readonly config = {\n pollingDelay: 2000,\n stateJob: {\n maxPolling: 14,\n maxRetries: 1,\n },\n queryJobRetries: {\n delay: 5000,\n max: 4,\n },\n };\n\n exportStartTime: number = 0;\n totalForExport: number | undefined | null = null;\n selectedExportOption: SelectedExportOption = 'all';\n disabledRadios: SelectedExportOption[];\n maybeToast?: { remove: () => void };\n iterationsCountPoll: {\n iterationsCount?: number;\n pollCount: number;\n retries: number;\n } = {\n iterationsCount: 0,\n pollCount: 0,\n retries: 0,\n };\n\n queryJobRetries: {\n count: number;\n } = {\n count: 0,\n };\n\n readonly differentQueryEndpointThanCollection;\n readonly customTotal;\n readonly translate;\n readonly createExportAsyncJobRequest;\n readonly saveAs;\n readonly window;\n readonly httpClient: WixPatternsEssentials['httpClient'];\n readonly onlineState;\n readonly exportModalState;\n readonly collectionPageState;\n readonly transformPlatformizedQuery?: ExportStateProps<\n T,\n F\n >['transformPlatformizedQuery'];\n readonly showToast;\n readonly internalMonitor;\n readonly collection;\n readonly reportBi;\n readonly bi;\n\n readonly events = new EventEmitter() as TypedEmitter<{\n afterJobCreated: (params: { job: ExportAsyncJob }) => unknown;\n undoCancel: () => unknown;\n online: () => unknown;\n }>;\n\n counter = 0;\n absoluteCounter = 0;\n retries = 0;\n\n constructor(props: ExportStateProps<T, F>) {\n this.customTotal = props.customTotal;\n this.differentQueryEndpointThanCollection =\n props.differentQueryEndpointThanCollection;\n this.translate = props.translate;\n this.createExportAsyncJobRequest = props.createExportAsyncJobRequest;\n this.saveAs = props.saveAs;\n this.window = props.window;\n this.httpClient = props.httpClient;\n this.onlineState = props.onlineState;\n this.exportModalState = props.exportModalState;\n this.collectionPageState = props.collectionPageState;\n this.showToast = props.showToast;\n this.internalMonitor = props.internalMonitor;\n this.collection = props.collection;\n this.reportBi = props.reportBi;\n this.disabledRadios = [];\n this.transformPlatformizedQuery = props.transformPlatformizedQuery;\n\n this.bi = new ExportStateBIReporter(this);\n makeObservable(this, {\n exportStatus: observable.ref,\n iterationsCountPoll: observable.ref,\n isExporting: computed,\n totalForExport: observable.ref,\n selectedExportOption: observable.ref,\n disabledRadios: observable.ref,\n counter: observable.ref,\n absoluteCounter: observable.ref,\n onExportToClick: action.bound,\n onExportCloseAttemptClick: action.bound,\n onCancelExportCloseButtonClick: action.bound,\n onCancelExportGoBackButtonClick: action.bound,\n onExportSecondaryActionAttempt: action.bound,\n onRetryExportToClick: action.bound,\n onFailedClose: action.bound,\n onFailedCancel: action.bound,\n onCancelClick: action.bound,\n onCloseClick: action.bound,\n init: action.bound,\n setTotalForExport: action,\n onExportTypeChange: action,\n hasFilters: computed,\n totalForExportMap: computed,\n hasSelectedRows: computed,\n isAllSelected: computed,\n currentStep: observable.ref,\n _onJobSuccess: action,\n _checkIfStaleJob: action,\n _throwJobError: action,\n _updateJobProgress: action,\n });\n }\n\n get isModalOpen() {\n return this.exportModalState.isOpen;\n }\n\n currentStep: 'config' | 'progress' | 'error' | 'cancel' = 'config';\n\n get isExporting() {\n const { exportStatus } = this;\n return exportStatus.isLoading || exportStatus.isSuccess;\n }\n\n _cancelJob() {\n // const { events } = this;\n // events.once('afterJobCreated', ({ job }) => {\n // const { httpClient } = this;\n // httpClient.request(\n // cancelExportAsyncJob({\n // jobId: job.id as string,\n // }),\n // );\n // });\n }\n\n _reset() {\n this.exportStatus = {\n ...queryStatus.idle,\n };\n this.currentStep = 'config';\n this.counter = 0;\n this.absoluteCounter = 0;\n this.totalForExport = null;\n }\n\n onExportTypeChange(selectedExportOption: SelectedExportOption) {\n this.bi.onExportTypeChange({\n prev: this.selectedExportOption,\n next: selectedExportOption,\n });\n this.selectedExportOption = selectedExportOption;\n }\n\n init() {\n const { onlineState } = this;\n this.maybeToast?.remove();\n\n if (this.hasSelectedRows) {\n this.disabledRadios = this.hasFilters ? [] : ['filtered'];\n this.selectedExportOption = 'selected';\n } else if (this.hasFilters) {\n this.disabledRadios = ['selected'];\n this.selectedExportOption = 'filtered';\n } else {\n this.disabledRadios = ['selected', 'filtered'];\n this.selectedExportOption = 'all';\n }\n\n this.bi.clickOpenModal();\n\n const onOnlineChanged = action((isOnline: boolean) => {\n if (isOnline && this.currentStep === 'error') {\n this.currentStep = 'progress';\n this.events.emit('online');\n }\n });\n\n onlineState.events.on('change', onOnlineChanged);\n\n return () => {\n window.removeEventListener('beforeunload', this.beforeunload);\n this.events.removeAllListeners('undoCancel');\n this.events.removeAllListeners('online');\n onlineState.events.off('change', onOnlineChanged);\n };\n }\n\n get hasFilters() {\n return this.collection.query.hasActiveFilters;\n }\n\n get hasSelectedRows() {\n return (\n this.collection.bulkSelect.selectedIds.length !== undefined &&\n this.collection.bulkSelect.selectedIds.length > 0\n );\n }\n\n get isAllSelected() {\n return this.collection.bulkSelect.isSelectAll;\n }\n\n get totalForExportMap() {\n return {\n selected: this.totalForExportGettersMap.selected(),\n filtered: this.totalForExportGettersMap.filtered(),\n };\n }\n\n readonly totalForExportGettersMap = {\n selected: action(() => {\n const { collection } = this;\n\n const {\n bulkSelect: { selectedCountOrTotal },\n } = collection;\n\n return selectedCountOrTotal;\n }),\n filtered: action(() => {\n const { collection } = this;\n const {\n result: { total, supportTotal },\n } = collection;\n\n if (!supportTotal) {\n return null;\n }\n\n return total;\n }),\n all: action(async () => {\n const { collection } = this;\n\n const allItemsQuery = {\n ...collection.query.asComputed,\n filtersKey: mapValues(collection.query.customFilters, (filter) =>\n filter != null ? null : undefined,\n ),\n rawFilters: {},\n filters: {},\n };\n\n const queryKey = collection._queryKey(allItemsQuery);\n\n const allItemsQueryResult = await collection.queryClient.fetchQuery({\n queryFn: () => collection._queryFn(allItemsQuery),\n queryKey,\n });\n\n return allItemsQueryResult.total;\n }),\n };\n\n async setTotalForExport(params: ExportPublicState<T, F>) {\n const { selectedExportOption, collection } = this;\n const {\n result: { supportTotal },\n } = collection;\n\n if (this.differentQueryEndpointThanCollection === true) {\n return;\n }\n\n const collectionTotalPromise = (() => {\n if (selectedExportOption === 'selected') {\n return this.totalForExportGettersMap.selected();\n }\n\n if (selectedExportOption === 'filtered' && supportTotal) {\n return this.totalForExportGettersMap.filtered();\n }\n\n return this.totalForExportGettersMap.all();\n })();\n\n if (this.customTotal) {\n const totalForExport = await this.customTotal({\n ...params,\n collectionTotalPromise,\n });\n runInAction(() => {\n this.totalForExport = totalForExport;\n });\n return;\n }\n\n const totalForExport = await collectionTotalPromise;\n runInAction(() => {\n this.totalForExport = totalForExport;\n });\n }\n\n onCancelClick() {\n const { bi, exportModalState } = this;\n bi.onCancelClick();\n exportModalState.close();\n }\n\n onCancelExportVerifyButtonClick() {\n const { bi, exportModalState } = this;\n bi.onCancelExportButtonClick();\n exportModalState.close();\n }\n\n onCancelExportGoBackButtonClick() {\n this.currentStep = 'progress';\n const { bi, events } = this;\n bi.onCancelExportGoBackButtonClick();\n events.emit('undoCancel');\n }\n\n onCancelExportCloseButtonClick() {\n this.currentStep = 'progress';\n const { bi, events } = this;\n bi.onCancelExportCloseButtonClick();\n events.emit('undoCancel');\n }\n\n onExportCloseAttemptClick() {\n this.currentStep = 'cancel';\n const { bi } = this;\n bi.onExportCloseAttemptClick();\n }\n\n onExportSecondaryActionAttempt() {\n this.currentStep = 'cancel';\n const { bi } = this;\n bi.onExportCancelAttemptClick();\n }\n\n onCloseClick() {\n const { bi, exportModalState } = this;\n bi.onCloseClick();\n exportModalState.close();\n }\n\n async onExportToClick() {\n const { internalMonitor, bi } = this;\n this.retries += 1;\n this.iterationsCountPoll = {\n iterationsCount: 0,\n retries: 0,\n pollCount: 0,\n };\n this.queryJobRetries = {\n count: 0,\n };\n this.exportStartTime = performance.now();\n internalMonitor.interactionStarted('export-to');\n bi.onExportToClick();\n const reportExportEnd = bi.onExportStart();\n this._exportTo({\n onExportEnd: action((params) => {\n if (params.result !== 'fail') {\n internalMonitor.interactionEnded('export-to');\n }\n\n reportExportEnd(params);\n }),\n });\n }\n\n beforeunload = (e: BeforeUnloadEvent) => {\n e.preventDefault();\n e.returnValue = '';\n };\n\n async onRetryExportToClick() {\n const { bi } = this;\n bi.onRetryExportToClick();\n await this.onExportToClick();\n }\n\n async onFailedClose() {\n const { bi, exportModalState } = this;\n bi.onFailedClose();\n exportModalState.close();\n }\n\n async onFailedCancel() {\n const { bi, exportModalState } = this;\n bi.onFailedCancel();\n exportModalState.close();\n }\n\n async _onJobSuccess(job: ExportAsyncJob, params: ExportJobStateParams) {\n const { events, exportModalState, translate: t } = this;\n const { onExportEnd, query, saveAs } = params;\n\n if (job.data?.signedUrl == null) {\n return;\n }\n\n if (this.currentStep === 'cancel') {\n events.once('undoCancel', async () => {\n await new Promise((resolve) => setTimeout(resolve, 1000));\n return this._onJobSuccess(job, { onExportEnd, query, saveAs });\n });\n return;\n }\n\n runInAction(() => {\n this.exportStatus = {\n ...queryStatus.success,\n data: job,\n };\n this.counter = 100;\n this._updateAbsoluteCounter(job, params);\n });\n\n window.removeEventListener('beforeunload', this.beforeunload);\n await new Promise((res) => setTimeout(res, 1000)); // wait bit before starting the download for the progress indication animation completes\n\n const signedUrl = job.data.signedUrl;\n\n onExportEnd({ job, query, result: 'success', saveAs });\n const biState = this.bi.beforeToast();\n\n const maybeToast = this.showToast?.({\n message: t('cairo.export.successMessage'),\n biName: 'cairo-export-success-toast',\n timeout: 'NONE',\n type: 'SUCCESS',\n onCloseClick: () => {\n this.bi.onToastDismissed({\n ...biState,\n by: 'manual',\n });\n this.maybeToast = undefined;\n },\n action: {\n text: t('cairo.export.downloadManually'),\n uiType: 'LINK',\n navigationTarget: {\n url: signedUrl,\n openInNewTab: true,\n },\n onClick: () => {\n this.bi.onToastActionClick(biState);\n this.maybeToast = undefined;\n },\n },\n });\n\n this.maybeToast = maybeToast;\n\n this.window.download(signedUrl, saveAs);\n\n if (maybeToast) {\n new Promise((resolve) => setTimeout(resolve, 6000)).then(() => {\n if (maybeToast === this.maybeToast) {\n maybeToast.remove();\n this.bi.onToastDismissed({\n ...biState,\n by: 'automatic',\n });\n }\n });\n }\n\n exportModalState.close();\n }\n\n _throwJobError(\n job: ExportAsyncJob,\n { onExportEnd, query }: ExportJobStateParams,\n ) {\n if (job.data?.error?.applicationError?.code === 'job_cancelled_by_client') {\n onExportEnd({ job, query, result: 'stopped by user' });\n\n return;\n }\n\n onExportEnd({ job, query, result: 'fail' });\n\n throw Object.assign(\n new Error(`ExportAsyncJob.${job.data?.error?.applicationError?.code}`),\n {\n response: {\n data: job.data?.error,\n },\n job,\n query,\n },\n );\n }\n\n _checkIfStaleJob(\n job: ExportAsyncJob,\n { onExportEnd, query }: ExportJobStateParams,\n ) {\n const { internalMonitor } = this;\n\n if (job.status === JobStatus.FINISHED && !job.data?.signedUrl) {\n internalMonitor.interactionStarted(\n 'export-to-finished-without-download-url',\n );\n internalMonitor.interactionEnded(\n 'export-to-finished-without-download-url',\n );\n }\n\n if (\n job.data?.iterationsCount === this.iterationsCountPoll.iterationsCount\n ) {\n this.iterationsCountPoll = {\n ...this.iterationsCountPoll,\n pollCount: this.iterationsCountPoll.pollCount + 1,\n };\n\n if (\n job.data?.completionStep !== 'upload' &&\n this.iterationsCountPoll.pollCount > this.config.stateJob.maxPolling\n ) {\n if (\n this.iterationsCountPoll.retries < this.config.stateJob.maxRetries\n ) {\n internalMonitor.interactionStarted('export-to-max-polling-stale-job');\n internalMonitor.interactionEnded('export-to-max-polling-stale-job');\n runInAction(() => {\n this.iterationsCountPoll = {\n iterationsCount: 0,\n pollCount: 0,\n retries: this.iterationsCountPoll.retries + 1,\n };\n });\n window.removeEventListener('beforeunload', this.beforeunload);\n this._exportTo({ onExportEnd });\n return 'restarted';\n }\n\n onExportEnd({ job, query, result: 'fail' });\n\n throw Object.assign(new Error('ExportAsyncJob.max_polling_stale_job'), {\n response: {\n data: {\n applicationError: {\n code: 'max_polling_stale_job',\n },\n } as ErrorDetails,\n },\n });\n }\n } else {\n this.iterationsCountPoll = {\n ...this.iterationsCountPoll,\n iterationsCount: job.data?.iterationsCount,\n pollCount: 1,\n };\n }\n\n return;\n }\n\n _updateAbsoluteCounter(job: ExportAsyncJob, { query }: ExportJobStateParams) {\n if (job?.data == null) {\n return;\n }\n\n const { totalForExport } = this;\n\n const newAbsoluteCounter = getJobItemsAbsoluteCounter(job, {\n query,\n totalForExport,\n });\n\n this.absoluteCounter =\n totalForExport != null &&\n newAbsoluteCounter >= totalForExport &&\n !this.exportStatus.isSuccess\n ? this.absoluteCounter +\n Math.floor(\n Math.random() * (newAbsoluteCounter - this.absoluteCounter),\n )\n : newAbsoluteCounter;\n }\n\n _updateJobProgress(job: ExportAsyncJob, params: ExportJobStateParams) {\n this._updateAbsoluteCounter(job, params);\n\n const { totalForExport } = this;\n if (totalForExport) {\n if (this.absoluteCounter) {\n const newCounter = Math.round(\n (this.absoluteCounter / totalForExport) * 100,\n );\n\n this.counter =\n newCounter === 100\n ? this.counter + Math.round(Math.random() * (99 - this.counter))\n : newCounter;\n }\n } else if (this.counter < 90 && this.absoluteCounter > 0) {\n this.counter += 10;\n }\n }\n\n private async _poll({\n jobId,\n saveAs,\n query,\n onExportEnd,\n }: {\n query: QueryV2;\n saveAs?: string;\n onExportEnd: (params: {\n job: ExportAsyncJob | null;\n query: QueryV2;\n result: 'success' | 'fail' | 'stopped by user';\n }) => void;\n jobId: string;\n }) {\n const { httpClient, events, onlineState } = this;\n\n let current: ExportAsyncJob | null = null;\n\n try {\n // eslint-disable-next-line no-constant-condition\n while (true) {\n if (!this.isModalOpen) {\n const currentJob = await this.exportStatus.promise;\n if (currentJob) {\n onExportEnd({\n job: currentJob,\n query,\n result: 'stopped by user',\n });\n }\n\n break;\n }\n\n const getExportAsyncJobResponse = await httpClient\n .request(getExportAsyncJob({ jobId }))\n .catch((error) => ({ error }));\n\n if (\n getExportAsyncJobResponse &&\n !('data' in getExportAsyncJobResponse)\n ) {\n const error = getExportAsyncJobResponse.error;\n if (!onlineState.isOnline) {\n events.once('online', () => {\n this._poll({\n jobId,\n onExportEnd,\n query,\n saveAs,\n });\n });\n\n throw new WixPatternsError({\n errorCode: 'GetExportAsyncJob.offline',\n originalException: error,\n extraData: {\n response: {\n data: {\n applicationError: {\n code: 'offline',\n },\n } as ErrorDetails,\n },\n },\n });\n }\n\n if (this.queryJobRetries.count > this.config.queryJobRetries.max) {\n onExportEnd({ job: current, query, result: 'fail' });\n throw new WixPatternsError({\n originalException: error,\n errorCode: 'GetExportAsyncJob.failed',\n });\n }\n\n this.queryJobRetries = {\n ...this.queryJobRetries,\n count: this.queryJobRetries.count + 1,\n };\n\n setTimeout(() => {\n this._poll({\n jobId,\n onExportEnd,\n query,\n saveAs,\n });\n }, this.config.queryJobRetries.delay);\n\n break;\n }\n\n const job = getExportAsyncJobResponse?.data.job;\n\n if (job?.data == null) {\n throw new WixPatternsError({\n errorCode: 'GetExportAsyncJob.invalid',\n });\n }\n\n current = job;\n\n this.queryJobRetries = {\n count: 0,\n };\n\n runInAction(() => {\n this.exportStatus = {\n ...queryStatus.loading,\n promise: Promise.resolve(job),\n };\n });\n\n const isModalOpen = runInAction(() => this.isModalOpen);\n if (!isModalOpen) {\n break;\n }\n\n if (job.data.signedUrl) {\n await this._onJobSuccess(job, {\n onExportEnd,\n saveAs,\n query,\n });\n break;\n }\n\n if (\n job.status === JobStatus.FAILED ||\n job.data.error?.applicationError != null\n ) {\n if (\n job.data.error?.applicationError?.code ===\n 'media_generate_signed_url'\n ) {\n // await this._retryGenerateUrl(job);\n // continue;\n }\n\n this._throwJobError(job, {\n onExportEnd,\n query,\n saveAs,\n });\n break;\n }\n\n const checkIfStaleJobResult = this._checkIfStaleJob(job, {\n onExportEnd,\n saveAs,\n query,\n });\n\n if (checkIfStaleJobResult === 'restarted') {\n return;\n }\n\n await runInAction(async () => {\n if (\n !this.totalForExport &&\n (job.data?.iterationsCount == null || job.data.iterationsCount <= 1)\n ) {\n this.totalForExport = job.data?.pagingMetadata?.total;\n }\n });\n\n this._updateJobProgress(job, { onExportEnd, query, saveAs });\n\n await new Promise((res) => setTimeout(res, this.config.pollingDelay));\n }\n } catch (error) {\n console.error(error);\n\n this.internalMonitor.reportError({ error });\n\n runInAction(() => {\n this.currentStep = 'error';\n this.exportStatus = {\n ...queryStatus.error,\n error,\n };\n });\n }\n }\n\n private async _exportTo({\n onExportEnd,\n }: {\n onExportEnd: (params: {\n job: ExportAsyncJob | null;\n query: QueryV2;\n result: 'success' | 'fail' | 'stopped by user';\n }) => void;\n }) {\n const {\n createExportAsyncJobRequest,\n httpClient,\n transformPlatformizedQuery,\n selectedExportOption,\n events,\n onlineState,\n } = this;\n\n this._reset();\n window.addEventListener('beforeunload', this.beforeunload);\n\n const platformizedQuery = defaultPlatformizedQuery();\n\n const {\n bulkSelect: {\n selectedIds,\n isSelectAll,\n uncheckedInCurrentCollection: uncheckedValues,\n },\n query: { asComputed: computedQuery },\n } = this.collection;\n\n const cairoQuery =\n selectedExportOption !== 'all'\n ? computedQuery\n : {\n ...computedQuery,\n filtersKey: {},\n rawFilters: {},\n filters: {},\n };\n\n const exportPublicState = {\n platformizedQuery,\n cairoQuery,\n selectedItems:\n selectedExportOption === 'selected' ? selectedIds : undefined,\n isSelectAll,\n uncheckedValues,\n };\n\n const query =\n (await transformPlatformizedQuery?.(exportPublicState)) ??\n platformizedQuery;\n\n const totalForExportPromise = this.setTotalForExport({\n ...exportPublicState,\n platformizedQuery: query,\n });\n\n const saveAs =\n this.saveAs?.({\n platformizedQuery,\n cairoQuery,\n selectedItems:\n selectedExportOption === 'selected' ? selectedIds : undefined,\n isSelectAll,\n }) ?? this.collectionPageState.pageTitle;\n\n runInAction(() => {\n this.currentStep = 'progress';\n });\n\n const _createExport = async () => {\n try {\n const { data: createExportAsyncJobResponse } = await httpClient\n .request(\n createExportAsyncJob({\n fields: [],\n methodMetadata: {},\n ...createExportAsyncJobRequest,\n saveAs,\n query,\n }),\n )\n .catch((err) => {\n if (!onlineState.isOnline) {\n events.once('online', () => {\n this._exportTo({\n onExportEnd,\n });\n });\n throw Object.assign(new Error('CreateExportAsyncJob.offline'), {\n response: {\n data: {\n applicationError: {\n code: 'offline',\n },\n } as ErrorDetails,\n },\n });\n }\n onExportEnd({ job: null, query, result: 'fail' });\n\n throw err;\n });\n\n return createExportAsyncJobResponse;\n } catch (error) {\n runInAction(() => {\n this.currentStep = 'error';\n this.exportStatus = {\n ...queryStatus.error,\n error,\n };\n });\n\n throw error;\n }\n };\n\n try {\n const createExportAsyncJobResponse = await _createExport();\n\n if (!createExportAsyncJobResponse.job?.id) {\n throw new Error(\n `Invalid response from createExportAsyncJob \"jobId=${createExportAsyncJobResponse.job?.id}\"`,\n );\n }\n\n await totalForExportPromise;\n\n runInAction(() => {\n this.exportStatus = {\n ...queryStatus.loading,\n promise: Promise.resolve(\n createExportAsyncJobResponse.job as ExportAsyncJob,\n ),\n };\n });\n\n this.events.emit('afterJobCreated', {\n job: createExportAsyncJobResponse.job as ExportAsyncJob,\n });\n\n runInAction(() => {\n this.counter = 1;\n });\n\n await this._poll({\n onExportEnd,\n saveAs,\n query,\n jobId: createExportAsyncJobResponse.job.id,\n });\n } catch (error) {\n console.error(error);\n this.internalMonitor.reportError({ error });\n }\n\n window.removeEventListener('beforeunload', this.beforeunload);\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["_http","require","_types","_mobx","_model","_services","_mapValues","_interopRequireDefault","_events","_ExportStateBIReporter","_getJobItemsAbsoluteCounter","defaultPlatformizedQuery","filter","sort","ExportState","constructor","props","_defineProperty2","default","queryStatus","idle","pollingDelay","stateJob","maxPolling","maxRetries","queryJobRetries","delay","max","iterationsCount","pollCount","retries","count","EventEmitter","selected","action","collection","bulkSelect","selectedCountOrTotal","filtered","result","total","supportTotal","all","allItemsQuery","query","asComputed","filtersKey","mapValues","customFilters","undefined","rawFilters","filters","queryKey","_queryKey","allItemsQueryResult","queryClient","fetchQuery","queryFn","_queryFn","e","preventDefault","returnValue","customTotal","differentQueryEndpointThanCollection","translate","createExportAsyncJobRequest","saveAs","window","httpClient","onlineState","exportModalState","collectionPageState","showToast","internalMonitor","reportBi","disabledRadios","transformPlatformizedQuery","bi","ExportStateBIReporter","makeObservable","exportStatus","observable","ref","iterationsCountPoll","isExporting","computed","totalForExport","selectedExportOption","counter","absoluteCounter","onExportToClick","bound","onExportCloseAttemptClick","onCancelExportCloseButtonClick","onCancelExportGoBackButtonClick","onExportSecondaryActionAttempt","onRetryExportToClick","onFailedClose","onFailedCancel","onCancelClick","onCloseClick","init","setTotalForExport","onExportTypeChange","hasFilters","totalForExportMap","hasSelectedRows","isAllSelected","currentStep","_onJobSuccess","_checkIfStaleJob","_throwJobError","_updateJobProgress","isModalOpen","isOpen","isLoading","isSuccess","_cancelJob","_reset","prev","next","_this$maybeToast","maybeToast","remove","clickOpenModal","onOnlineChanged","isOnline","events","emit","on","removeEventListener","beforeunload","removeAllListeners","off","hasActiveFilters","selectedIds","length","allSelected","totalForExportGettersMap","params","collectionTotalPromise","runInAction","close","onCancelExportVerifyButtonClick","onCancelExportButtonClick","onExportCancelAttemptClick","exportStartTime","performance","now","interactionStarted","reportExportEnd","onExportStart","_exportTo","onExportEnd","interactionEnded","job","_job$data","_this$showToast","t","data","signedUrl","once","Promise","resolve","setTimeout","success","_updateAbsoluteCounter","res","biState","beforeToast","call","message","biName","timeout","type","onToastDismissed","by","text","uiType","navigationTarget","url","openInNewTab","onClick","onToastActionClick","download","then","_job$data2","_job$data3","_job$data4","error","applicationError","code","Object","assign","Error","response","_job$data5","_job$data6","status","JobStatus","FINISHED","_job$data7","completionStep","config","_job$data8","newAbsoluteCounter","getJobItemsAbsoluteCounter","Math","floor","random","newCounter","round","_poll","jobId","current","_job$data$error","currentJob","promise","getExportAsyncJobResponse","request","getExportAsyncJob","catch","WixPatternsError","errorCode","originalException","extraData","loading","FAILED","_job$data$error2","checkIfStaleJobResult","_job$data9","_job$data10","pagingMetadata","console","reportError","_this$saveAs","addEventListener","platformizedQuery","selectAll","uncheckedInCurrentCollection","uncheckedValues","computedQuery","wixPatternsQuery","exportPublicState","selectedItems","isSelectAll","totalForExportPromise","pageTitle","_createExport","createExportAsyncJobResponse","createExportAsyncJob","fields","methodMetadata","err","_createExportAsyncJob","id","_createExportAsyncJob2","exports"],"sources":["../../../src/state/ExportState.ts"],"sourcesContent":["import {\n createExportAsyncJob,\n getExportAsyncJob,\n} from '@wix/bex-utils/@wix/ambassador-fedinfra-exportservice-v1-export-async-job/http';\nimport {\n CreateExportAsyncJobRequest,\n ExportAsyncJob,\n ExportQueryV2 as QueryV2,\n Status as JobStatus,\n} from '@wix/bex-utils/@wix/ambassador-fedinfra-exportservice-v1-export-async-job/types';\nimport {\n action,\n computed,\n makeObservable,\n observable,\n runInAction,\n} from 'mobx';\nimport {\n WixPatternsEssentials,\n ComputedQueryFull,\n FiltersMap,\n queryStatus,\n ShowToast,\n TaskStatus,\n} from '../model';\nimport {\n WixPatternsError,\n WixPatternsMonitor,\n PartialWindow,\n ReportBI,\n Translate,\n} from '../services';\nimport { CollectionState } from './CollectionState';\nimport mapValues from 'lodash/mapValues';\nimport { EventEmitter } from 'events';\nimport { TypedEmitter } from '../util';\nimport { ExportStateBIReporter } from './ExportStateBIReporter';\nimport { ModalState } from './ModalState';\nimport { getJobItemsAbsoluteCounter } from './getJobItemsAbsoluteCounter';\nimport { ExportJobStateParams } from './ExportJobState';\nimport { ErrorDetails } from '../util/isHttpError';\nimport { OnlineState } from './OnlineState';\nimport { CollectionPageState } from './CollectionPageState';\n\nfunction defaultPlatformizedQuery(): QueryV2 {\n return {\n filter: {},\n sort: [],\n };\n}\n\ninterface ExportPublicState<T, F extends FiltersMap> {\n platformizedQuery: QueryV2;\n wixPatternsQuery: ComputedQueryFull<F>;\n selectedItems?: string[];\n isSelectAll: boolean;\n uncheckedValues?: T[];\n}\n\nexport type CustomTotalFn<T, F extends FiltersMap> = (\n params: ExportPublicState<T, F> & {\n collectionTotalPromise: number | null | Promise<number | null | undefined>;\n },\n) => number | null | undefined | Promise<number | null | undefined>;\n\nexport type TransformQuery<T, F extends FiltersMap> = (\n params: ExportPublicState<T, F>,\n) => QueryV2 | Promise<QueryV2>;\n\nexport type SaveAsFn<T, F extends FiltersMap> = (\n params: ExportPublicState<T, F>,\n) => string;\n\nexport interface ExportStateProps<T, F extends FiltersMap> {\n transformPlatformizedQuery?: TransformQuery<T, F>;\n differentQueryEndpointThanCollection?: boolean;\n customTotal?: CustomTotalFn<T, F>;\n\n createExportAsyncJobRequest: Partial<CreateExportAsyncJobRequest>;\n saveAs?: SaveAsFn<T, F>;\n\n httpClient: WixPatternsEssentials['httpClient'];\n showToast?: ShowToast;\n translate: Translate;\n collection: CollectionState<T, F>;\n reportBi: ReportBI;\n onlineState: OnlineState;\n internalMonitor: WixPatternsMonitor;\n\n exportModalState: ModalState;\n collectionPageState: CollectionPageState;\n window: PartialWindow;\n}\n\nexport type SelectedExportOption = 'all' | 'selected' | 'filtered';\n\nexport class ExportState<T, F extends FiltersMap> {\n exportStatus: TaskStatus<ExportAsyncJob, unknown> = {\n ...queryStatus.idle,\n };\n\n readonly config = {\n pollingDelay: 2000,\n stateJob: {\n maxPolling: 14,\n maxRetries: 1,\n },\n queryJobRetries: {\n delay: 5000,\n max: 4,\n },\n };\n\n exportStartTime: number = 0;\n totalForExport: number | undefined | null = null;\n selectedExportOption: SelectedExportOption = 'all';\n disabledRadios: SelectedExportOption[];\n maybeToast?: { remove: () => void };\n iterationsCountPoll: {\n iterationsCount?: number;\n pollCount: number;\n retries: number;\n } = {\n iterationsCount: 0,\n pollCount: 0,\n retries: 0,\n };\n\n queryJobRetries: {\n count: number;\n } = {\n count: 0,\n };\n\n readonly differentQueryEndpointThanCollection;\n readonly customTotal;\n readonly translate;\n readonly createExportAsyncJobRequest;\n readonly saveAs;\n readonly window;\n readonly httpClient: WixPatternsEssentials['httpClient'];\n readonly onlineState;\n readonly exportModalState;\n readonly collectionPageState;\n readonly transformPlatformizedQuery?: ExportStateProps<\n T,\n F\n >['transformPlatformizedQuery'];\n readonly showToast;\n readonly internalMonitor;\n readonly collection;\n readonly reportBi;\n readonly bi;\n\n readonly events = new EventEmitter() as TypedEmitter<{\n afterJobCreated: (params: { job: ExportAsyncJob }) => unknown;\n undoCancel: () => unknown;\n online: () => unknown;\n }>;\n\n counter = 0;\n absoluteCounter = 0;\n retries = 0;\n\n constructor(props: ExportStateProps<T, F>) {\n this.customTotal = props.customTotal;\n this.differentQueryEndpointThanCollection =\n props.differentQueryEndpointThanCollection;\n this.translate = props.translate;\n this.createExportAsyncJobRequest = props.createExportAsyncJobRequest;\n this.saveAs = props.saveAs;\n this.window = props.window;\n this.httpClient = props.httpClient;\n this.onlineState = props.onlineState;\n this.exportModalState = props.exportModalState;\n this.collectionPageState = props.collectionPageState;\n this.showToast = props.showToast;\n this.internalMonitor = props.internalMonitor;\n this.collection = props.collection;\n this.reportBi = props.reportBi;\n this.disabledRadios = [];\n this.transformPlatformizedQuery = props.transformPlatformizedQuery;\n\n this.bi = new ExportStateBIReporter(this);\n makeObservable(this, {\n exportStatus: observable.ref,\n iterationsCountPoll: observable.ref,\n isExporting: computed,\n totalForExport: observable.ref,\n selectedExportOption: observable.ref,\n disabledRadios: observable.ref,\n counter: observable.ref,\n absoluteCounter: observable.ref,\n onExportToClick: action.bound,\n onExportCloseAttemptClick: action.bound,\n onCancelExportCloseButtonClick: action.bound,\n onCancelExportGoBackButtonClick: action.bound,\n onExportSecondaryActionAttempt: action.bound,\n onRetryExportToClick: action.bound,\n onFailedClose: action.bound,\n onFailedCancel: action.bound,\n onCancelClick: action.bound,\n onCloseClick: action.bound,\n init: action.bound,\n setTotalForExport: action,\n onExportTypeChange: action,\n hasFilters: computed,\n totalForExportMap: computed,\n hasSelectedRows: computed,\n isAllSelected: computed,\n currentStep: observable.ref,\n _onJobSuccess: action,\n _checkIfStaleJob: action,\n _throwJobError: action,\n _updateJobProgress: action,\n });\n }\n\n get isModalOpen() {\n return this.exportModalState.isOpen;\n }\n\n currentStep: 'config' | 'progress' | 'error' | 'cancel' = 'config';\n\n get isExporting() {\n const { exportStatus } = this;\n return exportStatus.isLoading || exportStatus.isSuccess;\n }\n\n _cancelJob() {\n // const { events } = this;\n // events.once('afterJobCreated', ({ job }) => {\n // const { httpClient } = this;\n // httpClient.request(\n // cancelExportAsyncJob({\n // jobId: job.id as string,\n // }),\n // );\n // });\n }\n\n _reset() {\n this.exportStatus = {\n ...queryStatus.idle,\n };\n this.currentStep = 'config';\n this.counter = 0;\n this.absoluteCounter = 0;\n this.totalForExport = null;\n }\n\n onExportTypeChange(selectedExportOption: SelectedExportOption) {\n this.bi.onExportTypeChange({\n prev: this.selectedExportOption,\n next: selectedExportOption,\n });\n this.selectedExportOption = selectedExportOption;\n }\n\n init() {\n const { onlineState } = this;\n this.maybeToast?.remove();\n\n if (this.hasSelectedRows) {\n this.disabledRadios = this.hasFilters ? [] : ['filtered'];\n this.selectedExportOption = 'selected';\n } else if (this.hasFilters) {\n this.disabledRadios = ['selected'];\n this.selectedExportOption = 'filtered';\n } else {\n this.disabledRadios = ['selected', 'filtered'];\n this.selectedExportOption = 'all';\n }\n\n this.bi.clickOpenModal();\n\n const onOnlineChanged = action((isOnline: boolean) => {\n if (isOnline && this.currentStep === 'error') {\n this.currentStep = 'progress';\n this.events.emit('online');\n }\n });\n\n onlineState.events.on('change', onOnlineChanged);\n\n return () => {\n window.removeEventListener('beforeunload', this.beforeunload);\n this.events.removeAllListeners('undoCancel');\n this.events.removeAllListeners('online');\n onlineState.events.off('change', onOnlineChanged);\n };\n }\n\n get hasFilters() {\n return this.collection.query.hasActiveFilters;\n }\n\n get hasSelectedRows() {\n return (\n this.collection.bulkSelect.selectedIds.length !== undefined &&\n this.collection.bulkSelect.selectedIds.length > 0\n );\n }\n\n get isAllSelected() {\n return this.collection.bulkSelect.allSelected;\n }\n\n get totalForExportMap() {\n return {\n selected: this.totalForExportGettersMap.selected(),\n filtered: this.totalForExportGettersMap.filtered(),\n };\n }\n\n readonly totalForExportGettersMap = {\n selected: action(() => {\n const { collection } = this;\n\n const {\n bulkSelect: { selectedCountOrTotal },\n } = collection;\n\n return selectedCountOrTotal;\n }),\n filtered: action(() => {\n const { collection } = this;\n const {\n result: { total, supportTotal },\n } = collection;\n\n if (!supportTotal) {\n return null;\n }\n\n return total;\n }),\n all: action(async () => {\n const { collection } = this;\n\n const allItemsQuery = {\n ...collection.query.asComputed,\n filtersKey: mapValues(collection.query.customFilters, (filter) =>\n filter != null ? null : undefined,\n ),\n rawFilters: {},\n filters: {},\n };\n\n const queryKey = collection._queryKey(allItemsQuery);\n\n const allItemsQueryResult = await collection.queryClient.fetchQuery({\n queryFn: () => collection._queryFn(allItemsQuery),\n queryKey,\n });\n\n return allItemsQueryResult.total;\n }),\n };\n\n async setTotalForExport(params: ExportPublicState<T, F>) {\n const { selectedExportOption, collection } = this;\n const {\n result: { supportTotal },\n } = collection;\n\n if (this.differentQueryEndpointThanCollection === true) {\n return;\n }\n\n const collectionTotalPromise = (() => {\n if (selectedExportOption === 'selected') {\n return this.totalForExportGettersMap.selected();\n }\n\n if (selectedExportOption === 'filtered' && supportTotal) {\n return this.totalForExportGettersMap.filtered();\n }\n\n return this.totalForExportGettersMap.all();\n })();\n\n if (this.customTotal) {\n const totalForExport = await this.customTotal({\n ...params,\n collectionTotalPromise,\n });\n runInAction(() => {\n this.totalForExport = totalForExport;\n });\n return;\n }\n\n const totalForExport = await collectionTotalPromise;\n runInAction(() => {\n this.totalForExport = totalForExport;\n });\n }\n\n onCancelClick() {\n const { bi, exportModalState } = this;\n bi.onCancelClick();\n exportModalState.close();\n }\n\n onCancelExportVerifyButtonClick() {\n const { bi, exportModalState } = this;\n bi.onCancelExportButtonClick();\n exportModalState.close();\n }\n\n onCancelExportGoBackButtonClick() {\n this.currentStep = 'progress';\n const { bi, events } = this;\n bi.onCancelExportGoBackButtonClick();\n events.emit('undoCancel');\n }\n\n onCancelExportCloseButtonClick() {\n this.currentStep = 'progress';\n const { bi, events } = this;\n bi.onCancelExportCloseButtonClick();\n events.emit('undoCancel');\n }\n\n onExportCloseAttemptClick() {\n this.currentStep = 'cancel';\n const { bi } = this;\n bi.onExportCloseAttemptClick();\n }\n\n onExportSecondaryActionAttempt() {\n this.currentStep = 'cancel';\n const { bi } = this;\n bi.onExportCancelAttemptClick();\n }\n\n onCloseClick() {\n const { bi, exportModalState } = this;\n bi.onCloseClick();\n exportModalState.close();\n }\n\n async onExportToClick() {\n const { internalMonitor, bi } = this;\n this.retries += 1;\n this.iterationsCountPoll = {\n iterationsCount: 0,\n retries: 0,\n pollCount: 0,\n };\n this.queryJobRetries = {\n count: 0,\n };\n this.exportStartTime = performance.now();\n internalMonitor.interactionStarted('export-to');\n bi.onExportToClick();\n const reportExportEnd = bi.onExportStart();\n this._exportTo({\n onExportEnd: action((params) => {\n if (params.result !== 'fail') {\n internalMonitor.interactionEnded('export-to');\n }\n\n reportExportEnd(params);\n }),\n });\n }\n\n beforeunload = (e: BeforeUnloadEvent) => {\n e.preventDefault();\n e.returnValue = '';\n };\n\n async onRetryExportToClick() {\n const { bi } = this;\n bi.onRetryExportToClick();\n await this.onExportToClick();\n }\n\n async onFailedClose() {\n const { bi, exportModalState } = this;\n bi.onFailedClose();\n exportModalState.close();\n }\n\n async onFailedCancel() {\n const { bi, exportModalState } = this;\n bi.onFailedCancel();\n exportModalState.close();\n }\n\n async _onJobSuccess(job: ExportAsyncJob, params: ExportJobStateParams) {\n const { events, exportModalState, translate: t } = this;\n const { onExportEnd, query, saveAs } = params;\n\n if (job.data?.signedUrl == null) {\n return;\n }\n\n if (this.currentStep === 'cancel') {\n events.once('undoCancel', async () => {\n await new Promise((resolve) => setTimeout(resolve, 1000));\n return this._onJobSuccess(job, { onExportEnd, query, saveAs });\n });\n return;\n }\n\n runInAction(() => {\n this.exportStatus = {\n ...queryStatus.success,\n data: job,\n };\n this.counter = 100;\n this._updateAbsoluteCounter(job, params);\n });\n\n window.removeEventListener('beforeunload', this.beforeunload);\n await new Promise((res) => setTimeout(res, 1000)); // wait bit before starting the download for the progress indication animation completes\n\n const signedUrl = job.data.signedUrl;\n\n onExportEnd({ job, query, result: 'success', saveAs });\n const biState = this.bi.beforeToast();\n\n const maybeToast = this.showToast?.({\n message: t('cairo.export.successMessage'),\n biName: 'cairo-export-success-toast',\n timeout: 'NONE',\n type: 'SUCCESS',\n onCloseClick: () => {\n this.bi.onToastDismissed({\n ...biState,\n by: 'manual',\n });\n this.maybeToast = undefined;\n },\n action: {\n text: t('cairo.export.downloadManually'),\n uiType: 'LINK',\n navigationTarget: {\n url: signedUrl,\n openInNewTab: true,\n },\n onClick: () => {\n this.bi.onToastActionClick(biState);\n this.maybeToast = undefined;\n },\n },\n });\n\n this.maybeToast = maybeToast;\n\n this.window.download(signedUrl, saveAs);\n\n if (maybeToast) {\n new Promise((resolve) => setTimeout(resolve, 6000)).then(() => {\n if (maybeToast === this.maybeToast) {\n maybeToast.remove();\n this.bi.onToastDismissed({\n ...biState,\n by: 'automatic',\n });\n }\n });\n }\n\n exportModalState.close();\n }\n\n _throwJobError(\n job: ExportAsyncJob,\n { onExportEnd, query }: ExportJobStateParams,\n ) {\n if (job.data?.error?.applicationError?.code === 'job_cancelled_by_client') {\n onExportEnd({ job, query, result: 'stopped by user' });\n\n return;\n }\n\n onExportEnd({ job, query, result: 'fail' });\n\n throw Object.assign(\n new Error(`ExportAsyncJob.${job.data?.error?.applicationError?.code}`),\n {\n response: {\n data: job.data?.error,\n },\n job,\n query,\n },\n );\n }\n\n _checkIfStaleJob(\n job: ExportAsyncJob,\n { onExportEnd, query }: ExportJobStateParams,\n ) {\n const { internalMonitor } = this;\n\n if (job.status === JobStatus.FINISHED && !job.data?.signedUrl) {\n internalMonitor.interactionStarted(\n 'export-to-finished-without-download-url',\n );\n internalMonitor.interactionEnded(\n 'export-to-finished-without-download-url',\n );\n }\n\n if (\n job.data?.iterationsCount === this.iterationsCountPoll.iterationsCount\n ) {\n this.iterationsCountPoll = {\n ...this.iterationsCountPoll,\n pollCount: this.iterationsCountPoll.pollCount + 1,\n };\n\n if (\n job.data?.completionStep !== 'upload' &&\n this.iterationsCountPoll.pollCount > this.config.stateJob.maxPolling\n ) {\n if (\n this.iterationsCountPoll.retries < this.config.stateJob.maxRetries\n ) {\n internalMonitor.interactionStarted('export-to-max-polling-stale-job');\n internalMonitor.interactionEnded('export-to-max-polling-stale-job');\n runInAction(() => {\n this.iterationsCountPoll = {\n iterationsCount: 0,\n pollCount: 0,\n retries: this.iterationsCountPoll.retries + 1,\n };\n });\n window.removeEventListener('beforeunload', this.beforeunload);\n this._exportTo({ onExportEnd });\n return 'restarted';\n }\n\n onExportEnd({ job, query, result: 'fail' });\n\n throw Object.assign(new Error('ExportAsyncJob.max_polling_stale_job'), {\n response: {\n data: {\n applicationError: {\n code: 'max_polling_stale_job',\n },\n } as ErrorDetails,\n },\n });\n }\n } else {\n this.iterationsCountPoll = {\n ...this.iterationsCountPoll,\n iterationsCount: job.data?.iterationsCount,\n pollCount: 1,\n };\n }\n\n return;\n }\n\n _updateAbsoluteCounter(job: ExportAsyncJob, { query }: ExportJobStateParams) {\n if (job?.data == null) {\n return;\n }\n\n const { totalForExport } = this;\n\n const newAbsoluteCounter = getJobItemsAbsoluteCounter(job, {\n query,\n totalForExport,\n });\n\n this.absoluteCounter =\n totalForExport != null &&\n newAbsoluteCounter >= totalForExport &&\n !this.exportStatus.isSuccess\n ? this.absoluteCounter +\n Math.floor(\n Math.random() * (newAbsoluteCounter - this.absoluteCounter),\n )\n : newAbsoluteCounter;\n }\n\n _updateJobProgress(job: ExportAsyncJob, params: ExportJobStateParams) {\n this._updateAbsoluteCounter(job, params);\n\n const { totalForExport } = this;\n if (totalForExport) {\n if (this.absoluteCounter) {\n const newCounter = Math.round(\n (this.absoluteCounter / totalForExport) * 100,\n );\n\n this.counter =\n newCounter === 100\n ? this.counter + Math.round(Math.random() * (99 - this.counter))\n : newCounter;\n }\n } else if (this.counter < 90 && this.absoluteCounter > 0) {\n this.counter += 10;\n }\n }\n\n private async _poll({\n jobId,\n saveAs,\n query,\n onExportEnd,\n }: {\n query: QueryV2;\n saveAs?: string;\n onExportEnd: (params: {\n job: ExportAsyncJob | null;\n query: QueryV2;\n result: 'success' | 'fail' | 'stopped by user';\n }) => void;\n jobId: string;\n }) {\n const { httpClient, events, onlineState } = this;\n\n let current: ExportAsyncJob | null = null;\n\n try {\n // eslint-disable-next-line no-constant-condition\n while (true) {\n if (!this.isModalOpen) {\n const currentJob = await this.exportStatus.promise;\n if (currentJob) {\n onExportEnd({\n job: currentJob,\n query,\n result: 'stopped by user',\n });\n }\n\n break;\n }\n\n const getExportAsyncJobResponse = await httpClient\n .request(getExportAsyncJob({ jobId }))\n .catch((error) => ({ error }));\n\n if (\n getExportAsyncJobResponse &&\n !('data' in getExportAsyncJobResponse)\n ) {\n const error = getExportAsyncJobResponse.error;\n if (!onlineState.isOnline) {\n events.once('online', () => {\n this._poll({\n jobId,\n onExportEnd,\n query,\n saveAs,\n });\n });\n\n throw new WixPatternsError({\n errorCode: 'GetExportAsyncJob.offline',\n originalException: error,\n extraData: {\n response: {\n data: {\n applicationError: {\n code: 'offline',\n },\n } as ErrorDetails,\n },\n },\n });\n }\n\n if (this.queryJobRetries.count > this.config.queryJobRetries.max) {\n onExportEnd({ job: current, query, result: 'fail' });\n throw new WixPatternsError({\n originalException: error,\n errorCode: 'GetExportAsyncJob.failed',\n });\n }\n\n this.queryJobRetries = {\n ...this.queryJobRetries,\n count: this.queryJobRetries.count + 1,\n };\n\n setTimeout(() => {\n this._poll({\n jobId,\n onExportEnd,\n query,\n saveAs,\n });\n }, this.config.queryJobRetries.delay);\n\n break;\n }\n\n const job = getExportAsyncJobResponse?.data.job;\n\n if (job?.data == null) {\n throw new WixPatternsError({\n errorCode: 'GetExportAsyncJob.invalid',\n });\n }\n\n current = job;\n\n this.queryJobRetries = {\n count: 0,\n };\n\n runInAction(() => {\n this.exportStatus = {\n ...queryStatus.loading,\n promise: Promise.resolve(job),\n };\n });\n\n const isModalOpen = runInAction(() => this.isModalOpen);\n if (!isModalOpen) {\n break;\n }\n\n if (job.data.signedUrl) {\n await this._onJobSuccess(job, {\n onExportEnd,\n saveAs,\n query,\n });\n break;\n }\n\n if (\n job.status === JobStatus.FAILED ||\n job.data.error?.applicationError != null\n ) {\n if (\n job.data.error?.applicationError?.code ===\n 'media_generate_signed_url'\n ) {\n // await this._retryGenerateUrl(job);\n // continue;\n }\n\n this._throwJobError(job, {\n onExportEnd,\n query,\n saveAs,\n });\n break;\n }\n\n const checkIfStaleJobResult = this._checkIfStaleJob(job, {\n onExportEnd,\n saveAs,\n query,\n });\n\n if (checkIfStaleJobResult === 'restarted') {\n return;\n }\n\n await runInAction(async () => {\n if (\n !this.totalForExport &&\n (job.data?.iterationsCount == null || job.data.iterationsCount <= 1)\n ) {\n this.totalForExport = job.data?.pagingMetadata?.total;\n }\n });\n\n this._updateJobProgress(job, { onExportEnd, query, saveAs });\n\n await new Promise((res) => setTimeout(res, this.config.pollingDelay));\n }\n } catch (error) {\n console.error(error);\n\n this.internalMonitor.reportError({ error });\n\n runInAction(() => {\n this.currentStep = 'error';\n this.exportStatus = {\n ...queryStatus.error,\n error,\n };\n });\n }\n }\n\n private async _exportTo({\n onExportEnd,\n }: {\n onExportEnd: (params: {\n job: ExportAsyncJob | null;\n query: QueryV2;\n result: 'success' | 'fail' | 'stopped by user';\n }) => void;\n }) {\n const {\n createExportAsyncJobRequest,\n httpClient,\n transformPlatformizedQuery,\n selectedExportOption,\n events,\n onlineState,\n } = this;\n\n this._reset();\n window.addEventListener('beforeunload', this.beforeunload);\n\n const platformizedQuery = defaultPlatformizedQuery();\n\n const {\n bulkSelect: {\n selectedIds,\n allSelected: selectAll,\n uncheckedInCurrentCollection: uncheckedValues,\n },\n query: { asComputed: computedQuery },\n } = this.collection;\n\n const wixPatternsQuery =\n selectedExportOption !== 'all'\n ? computedQuery\n : {\n ...computedQuery,\n filtersKey: {},\n rawFilters: {},\n filters: {},\n };\n\n const exportPublicState = {\n platformizedQuery,\n wixPatternsQuery,\n selectedItems:\n selectedExportOption === 'selected' ? selectedIds : undefined,\n isSelectAll: selectAll,\n uncheckedValues,\n };\n\n const query =\n (await transformPlatformizedQuery?.(exportPublicState)) ??\n platformizedQuery;\n\n const totalForExportPromise = this.setTotalForExport({\n ...exportPublicState,\n platformizedQuery: query,\n });\n\n const saveAs =\n this.saveAs?.({\n platformizedQuery,\n wixPatternsQuery,\n selectedItems:\n selectedExportOption === 'selected' ? selectedIds : undefined,\n isSelectAll: selectAll,\n }) ?? this.collectionPageState.pageTitle;\n\n runInAction(() => {\n this.currentStep = 'progress';\n });\n\n const _createExport = async () => {\n try {\n const { data: createExportAsyncJobResponse } = await httpClient\n .request(\n createExportAsyncJob({\n fields: [],\n methodMetadata: {},\n ...createExportAsyncJobRequest,\n saveAs,\n query,\n }),\n )\n .catch((err) => {\n if (!onlineState.isOnline) {\n events.once('online', () => {\n this._exportTo({\n onExportEnd,\n });\n });\n throw Object.assign(new Error('CreateExportAsyncJob.offline'), {\n response: {\n data: {\n applicationError: {\n code: 'offline',\n },\n } as ErrorDetails,\n },\n });\n }\n onExportEnd({ job: null, query, result: 'fail' });\n\n throw err;\n });\n\n return createExportAsyncJobResponse;\n } catch (error) {\n runInAction(() => {\n this.currentStep = 'error';\n this.exportStatus = {\n ...queryStatus.error,\n error,\n };\n });\n\n throw error;\n }\n };\n\n try {\n const createExportAsyncJobResponse = await _createExport();\n\n if (!createExportAsyncJobResponse.job?.id) {\n throw new Error(\n `Invalid response from createExportAsyncJob \"jobId=${createExportAsyncJobResponse.job?.id}\"`,\n );\n }\n\n await totalForExportPromise;\n\n runInAction(() => {\n this.exportStatus = {\n ...queryStatus.loading,\n promise: Promise.resolve(\n createExportAsyncJobResponse.job as ExportAsyncJob,\n ),\n };\n });\n\n this.events.emit('afterJobCreated', {\n job: createExportAsyncJobResponse.job as ExportAsyncJob,\n });\n\n runInAction(() => {\n this.counter = 1;\n });\n\n await this._poll({\n onExportEnd,\n saveAs,\n query,\n jobId: createExportAsyncJobResponse.job.id,\n });\n } catch (error) {\n console.error(error);\n this.internalMonitor.reportError({ error });\n }\n\n window.removeEventListener('beforeunload', this.beforeunload);\n }\n}\n"],"mappings":"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"}
|
|
@@ -17,7 +17,6 @@ class RangeFilterState {
|
|
|
17
17
|
// defaultValue: string;
|
|
18
18
|
(0, _defineProperty2.default)(this, "itemKey", void 0);
|
|
19
19
|
(0, _defineProperty2.default)(this, "itemName", void 0);
|
|
20
|
-
(0, _defineProperty2.default)(this, "entityName", void 0);
|
|
21
20
|
(0, _defineProperty2.default)(this, "equals", void 0);
|
|
22
21
|
(0, _defineProperty2.default)(this, "isEmptyPreset", void 0);
|
|
23
22
|
(0, _defineProperty2.default)(this, "parsePreset", void 0);
|
|
@@ -31,7 +30,6 @@ class RangeFilterState {
|
|
|
31
30
|
// this.defaultValue = params.defaultValue;
|
|
32
31
|
this.itemKey = params.itemKey;
|
|
33
32
|
this.itemName = params.itemName;
|
|
34
|
-
this.entityName = params.entityName ?? (() => '');
|
|
35
33
|
this.parse = params.parse;
|
|
36
34
|
this.parsePreset = params.parsePreset ?? (() => this.emptyValue);
|
|
37
35
|
this.isEmptyPreset = params.isEmptyPreset ?? (() => true);
|
|
@@ -160,7 +158,6 @@ class RangeFilterState {
|
|
|
160
158
|
}
|
|
161
159
|
clone(params) {
|
|
162
160
|
const {
|
|
163
|
-
entityName,
|
|
164
161
|
value: initialValue,
|
|
165
162
|
matches,
|
|
166
163
|
persistent,
|
|
@@ -174,7 +171,6 @@ class RangeFilterState {
|
|
|
174
171
|
equals
|
|
175
172
|
} = this;
|
|
176
173
|
return new RangeFilterState({
|
|
177
|
-
entityName,
|
|
178
174
|
initialValue,
|
|
179
175
|
matches,
|
|
180
176
|
persistent,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_events","require","_mobx","_dateRangeUtils","isRecord","thing","RangeFilterState","constructor","params","_defineProperty2","default","emptyValue","EventEmitter","name","persistent","itemKey","itemName","entityName","parse","parsePreset","isEmptyPreset","simplify","value","matches","item","_value","initialValue","equals","makeObservable","observable","ref","isEmpty","computed","size","setValue","action","changeValue","from","to","toArray","preset","toQueryString","encode","decode","raw","includes","split","map","undefined","emitEvents","options","event","events","emit","remove","items","some","e","applyFromQueryString","str","refresh","scheduleRefresh","reset","hasDiff","rangeItem","clone","exports","rangeFilter","isEmptyDatePreset","presetToDaysAmount","toString","d","toISOString","join","dateRangeFilter","Date","isNaN","valueOf","getDatesFromPreset","item1","item2","_item1$from","_item2$from","_item1$to","_item2$to","getTime"],"sources":["../../../../src/state/RangeFilterState/RangeFilterState.ts"],"sourcesContent":["import { EventEmitter } from 'events';\nimport { action, computed, makeObservable, observable } from 'mobx';\nimport {\n ChangeValueOptions,\n Filter,\n FilterEvents,\n FilterStateBaseParams,\n} from '../../model';\nimport { getDatesFromPreset, presetToDaysAmount } from './dateRangeUtils';\n\nexport interface RangeItem<T> {\n from: T | null;\n to: T | null;\n preset?: string;\n}\n\nfunction isRecord(thing: unknown): thing is Record<string, unknown> {\n return thing != null;\n}\n\nexport interface RangeFilterStateParams<T>\n extends FilterStateBaseParams<RangeItem<T>> {\n /**\n * Convert an unknown object to a T.\n * @param value\n * @external\n */\n readonly parse: (value: unknown) => T | null;\n /**\n * Return a simplified form of an item for serialization.\n * @param value\n * @external\n */\n readonly simplify?: (value: T) => Partial<T>;\n /**\n * Indicates whether an item matches the current value of the filter\n * @external\n */\n readonly matches?: (item: RangeItem<T>, value: RangeItem<T>) => boolean;\n /**\n * Indicates whether a preset does not exist or is empty\n * @external\n */\n readonly isEmptyPreset?: (preset?: string) => boolean;\n /**\n * Converts a preset string to a RangeItem\n * @param preset\n * @external\n */\n readonly parsePreset?: (preset?: string) => RangeItem<T>;\n}\n\nexport class RangeFilterState<T> implements Filter<RangeItem<T>> {\n name: string;\n persistent;\n // defaultValue: string;\n readonly itemKey: (item: RangeItem<T>) => string;\n readonly itemName: (item: RangeItem<T>) => string;\n readonly entityName: (pluralization: number) => string;\n readonly equals?: (item1: RangeItem<T>, item2: RangeItem<T>) => boolean;\n\n readonly isEmptyPreset: (preset?: string) => boolean;\n readonly parsePreset: (preset?: string) => RangeItem<T>;\n readonly parse: RangeFilterStateParams<T>['parse'];\n readonly simplify;\n readonly matches: (item: RangeItem<T>, value: RangeItem<T>) => boolean;\n\n _value: RangeItem<T> = this.emptyValue;\n\n readonly events = new EventEmitter() as FilterEvents;\n\n constructor(params: RangeFilterStateParams<T>) {\n this.name = params.name ?? '';\n this.persistent = params.persistent;\n // this.defaultValue = params.defaultValue;\n this.itemKey = params.itemKey;\n this.itemName = params.itemName;\n this.entityName = params.entityName ?? (() => '');\n this.parse = params.parse;\n this.parsePreset = params.parsePreset ?? (() => this.emptyValue);\n this.isEmptyPreset = params.isEmptyPreset ?? (() => true);\n this.simplify = params.simplify ?? ((value) => value);\n this.matches =\n params.matches ??\n ((item, value) => this.itemName(item) === this.itemName(value));\n this._value = params.initialValue ?? this.emptyValue;\n this.equals = params.equals;\n\n makeObservable(this, {\n _value: observable.ref,\n persistent: observable.ref,\n isEmpty: computed,\n size: computed,\n value: computed,\n setValue: action,\n changeValue: action,\n });\n }\n\n get emptyValue() {\n return { from: null, to: null };\n }\n\n get value() {\n return this._value;\n }\n\n get toArray() {\n return [this._value];\n }\n\n get isEmpty() {\n return (\n !this._value.from &&\n !this._value.to &&\n this.isEmptyPreset(this._value.preset)\n );\n }\n\n get size() {\n return this.isEmpty ? 0 : 1;\n }\n\n get toQueryString() {\n return this.itemKey(this._value);\n }\n\n encode(value: RangeItem<T>) {\n if (!this.isEmptyPreset(value.preset)) {\n return {\n preset: value.preset,\n };\n }\n\n return {\n ...(value.from && { from: this.simplify(value.from) }),\n ...(value.to && { to: this.simplify(value.to) }),\n };\n }\n\n decode(raw: unknown): RangeItem<T> {\n if (typeof raw === 'string') {\n if (!raw.includes('/') && !this.isEmptyPreset(raw)) {\n return this.parsePreset(raw);\n }\n\n const [from, to] = raw.split('/').map(this.parse);\n\n return {\n from,\n to,\n };\n }\n\n if (isRecord(raw)) {\n const [from, to] = [raw.from, raw.to].map(this.parse);\n const preset = typeof raw.preset === 'string' ? raw.preset : undefined;\n\n if (!this.isEmptyPreset(preset)) {\n return this.parsePreset(preset);\n }\n\n return {\n from,\n to,\n preset,\n };\n }\n\n return this.emptyValue;\n }\n\n setValue(\n value: RangeItem<T>,\n { emitEvents, ...options }: ChangeValueOptions = {},\n ) {\n this._value = value;\n if (emitEvents) {\n for (const event of emitEvents) {\n this.events.emit(event, options);\n }\n }\n }\n\n changeValue(\n value: RangeItem<T>,\n { emitEvents = [], ...options }: ChangeValueOptions = {},\n ) {\n this.setValue(value, { ...options, emitEvents: ['change', ...emitEvents] });\n }\n\n remove(items: RangeItem<T>[], options: ChangeValueOptions = {}) {\n if (items.some((e) => e.from || e.to)) {\n this.setValue(this.emptyValue, options);\n }\n }\n\n applyFromQueryString(str: string) {\n this.setValue(this.decode(str));\n }\n\n refresh(value: RangeItem<T>, options?: ChangeValueOptions) {\n this.changeValue(value, { ...options, emitEvents: ['refresh'] });\n }\n\n scheduleRefresh(value: RangeItem<T>) {\n this.changeValue(value, { emitEvents: ['scheduleRefresh'] });\n }\n\n reset(options: ChangeValueOptions = {}) {\n this.setValue(this.emptyValue, options);\n }\n\n hasDiff(rangeItem: RangeItem<T>) {\n const { value } = this;\n return value.from !== rangeItem.from || value.to !== rangeItem.to;\n }\n\n clone(params: Partial<RangeFilterStateParams<T>>): RangeFilterState<T> {\n const {\n entityName,\n value: initialValue,\n matches,\n persistent,\n itemKey,\n itemName,\n parse,\n name,\n simplify,\n isEmptyPreset,\n parsePreset,\n equals,\n } = this;\n return new RangeFilterState<T>({\n entityName,\n initialValue,\n matches,\n persistent,\n itemKey,\n itemName,\n parse,\n name,\n simplify,\n isEmptyPreset,\n parsePreset,\n equals,\n ...params,\n });\n }\n}\n\nexport const rangeFilter = <T>(params: RangeFilterStateParams<T>) =>\n new RangeFilterState(params);\n\nconst isEmptyDatePreset = (preset?: string): preset is string => {\n return !preset || presetToDaysAmount[preset] === undefined;\n};\n\nexport const toString = (item: RangeItem<Date>) => {\n if (!item.preset || isEmptyDatePreset(item.preset)) {\n return [item.from, item.to].map((d) => d?.toISOString()).join('/');\n }\n return item.preset;\n};\n\nexport const dateRangeFilter = (\n params: Partial<RangeFilterStateParams<Date>> = {},\n) => {\n return new RangeFilterState({\n itemKey: toString,\n itemName: toString,\n parse: (value) => {\n if (typeof value === 'object' && value instanceof Date) {\n return value;\n }\n\n if (typeof value !== 'string' && typeof value !== 'number') {\n return null;\n }\n\n const d = new Date(value);\n\n if (isNaN(d.valueOf())) {\n return null;\n }\n\n return d;\n },\n parsePreset: getDatesFromPreset,\n isEmptyPreset: isEmptyDatePreset,\n equals: (item1, item2) => {\n if (isEmptyDatePreset(item1.preset) && isEmptyDatePreset(item2.preset)) {\n return (\n item1.from?.getTime() === item2.from?.getTime() &&\n item1.to?.getTime() === item2.to?.getTime()\n );\n }\n return item1.preset === item2.preset;\n },\n ...params,\n });\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["_events","require","_mobx","_dateRangeUtils","isRecord","thing","RangeFilterState","constructor","params","_defineProperty2","default","emptyValue","EventEmitter","name","persistent","itemKey","itemName","parse","parsePreset","isEmptyPreset","simplify","value","matches","item","_value","initialValue","equals","makeObservable","observable","ref","isEmpty","computed","size","setValue","action","changeValue","from","to","toArray","preset","toQueryString","encode","decode","raw","includes","split","map","undefined","emitEvents","options","event","events","emit","remove","items","some","e","applyFromQueryString","str","refresh","scheduleRefresh","reset","hasDiff","rangeItem","clone","exports","rangeFilter","isEmptyDatePreset","presetToDaysAmount","toString","d","toISOString","join","dateRangeFilter","Date","isNaN","valueOf","getDatesFromPreset","item1","item2","_item1$from","_item2$from","_item1$to","_item2$to","getTime"],"sources":["../../../../src/state/RangeFilterState/RangeFilterState.ts"],"sourcesContent":["import { EventEmitter } from 'events';\nimport { action, computed, makeObservable, observable } from 'mobx';\nimport {\n ChangeValueOptions,\n Filter,\n FilterEvents,\n FilterStateBaseParams,\n} from '../../model';\nimport { getDatesFromPreset, presetToDaysAmount } from './dateRangeUtils';\n\nexport interface RangeItem<T> {\n from: T | null;\n to: T | null;\n preset?: string;\n}\n\nfunction isRecord(thing: unknown): thing is Record<string, unknown> {\n return thing != null;\n}\n\nexport interface RangeFilterStateParams<T>\n extends FilterStateBaseParams<RangeItem<T>> {\n /**\n * Convert an unknown object to a T.\n * @param value\n * @external\n */\n readonly parse: (value: unknown) => T | null;\n /**\n * Return a simplified form of an item for serialization.\n * @param value\n * @external\n */\n readonly simplify?: (value: T) => Partial<T>;\n /**\n * Indicates whether an item matches the current value of the filter\n * @external\n */\n readonly matches?: (item: RangeItem<T>, value: RangeItem<T>) => boolean;\n /**\n * Indicates whether a preset does not exist or is empty\n * @external\n */\n readonly isEmptyPreset?: (preset?: string) => boolean;\n /**\n * Converts a preset string to a RangeItem\n * @param preset\n * @external\n */\n readonly parsePreset?: (preset?: string) => RangeItem<T>;\n}\n\nexport class RangeFilterState<T> implements Filter<RangeItem<T>> {\n name: string;\n persistent;\n // defaultValue: string;\n readonly itemKey: (item: RangeItem<T>) => string;\n readonly itemName: (item: RangeItem<T>) => string;\n readonly equals?: (item1: RangeItem<T>, item2: RangeItem<T>) => boolean;\n\n readonly isEmptyPreset: (preset?: string) => boolean;\n readonly parsePreset: (preset?: string) => RangeItem<T>;\n readonly parse: RangeFilterStateParams<T>['parse'];\n readonly simplify;\n readonly matches: (item: RangeItem<T>, value: RangeItem<T>) => boolean;\n\n _value: RangeItem<T> = this.emptyValue;\n\n readonly events = new EventEmitter() as FilterEvents;\n\n constructor(params: RangeFilterStateParams<T>) {\n this.name = params.name ?? '';\n this.persistent = params.persistent;\n // this.defaultValue = params.defaultValue;\n this.itemKey = params.itemKey;\n this.itemName = params.itemName;\n this.parse = params.parse;\n this.parsePreset = params.parsePreset ?? (() => this.emptyValue);\n this.isEmptyPreset = params.isEmptyPreset ?? (() => true);\n this.simplify = params.simplify ?? ((value) => value);\n this.matches =\n params.matches ??\n ((item, value) => this.itemName(item) === this.itemName(value));\n this._value = params.initialValue ?? this.emptyValue;\n this.equals = params.equals;\n\n makeObservable(this, {\n _value: observable.ref,\n persistent: observable.ref,\n isEmpty: computed,\n size: computed,\n value: computed,\n setValue: action,\n changeValue: action,\n });\n }\n\n get emptyValue() {\n return { from: null, to: null };\n }\n\n get value() {\n return this._value;\n }\n\n get toArray() {\n return [this._value];\n }\n\n get isEmpty() {\n return (\n !this._value.from &&\n !this._value.to &&\n this.isEmptyPreset(this._value.preset)\n );\n }\n\n get size() {\n return this.isEmpty ? 0 : 1;\n }\n\n get toQueryString() {\n return this.itemKey(this._value);\n }\n\n encode(value: RangeItem<T>) {\n if (!this.isEmptyPreset(value.preset)) {\n return {\n preset: value.preset,\n };\n }\n\n return {\n ...(value.from && { from: this.simplify(value.from) }),\n ...(value.to && { to: this.simplify(value.to) }),\n };\n }\n\n decode(raw: unknown): RangeItem<T> {\n if (typeof raw === 'string') {\n if (!raw.includes('/') && !this.isEmptyPreset(raw)) {\n return this.parsePreset(raw);\n }\n\n const [from, to] = raw.split('/').map(this.parse);\n\n return {\n from,\n to,\n };\n }\n\n if (isRecord(raw)) {\n const [from, to] = [raw.from, raw.to].map(this.parse);\n const preset = typeof raw.preset === 'string' ? raw.preset : undefined;\n\n if (!this.isEmptyPreset(preset)) {\n return this.parsePreset(preset);\n }\n\n return {\n from,\n to,\n preset,\n };\n }\n\n return this.emptyValue;\n }\n\n setValue(\n value: RangeItem<T>,\n { emitEvents, ...options }: ChangeValueOptions = {},\n ) {\n this._value = value;\n if (emitEvents) {\n for (const event of emitEvents) {\n this.events.emit(event, options);\n }\n }\n }\n\n changeValue(\n value: RangeItem<T>,\n { emitEvents = [], ...options }: ChangeValueOptions = {},\n ) {\n this.setValue(value, { ...options, emitEvents: ['change', ...emitEvents] });\n }\n\n remove(items: RangeItem<T>[], options: ChangeValueOptions = {}) {\n if (items.some((e) => e.from || e.to)) {\n this.setValue(this.emptyValue, options);\n }\n }\n\n applyFromQueryString(str: string) {\n this.setValue(this.decode(str));\n }\n\n refresh(value: RangeItem<T>, options?: ChangeValueOptions) {\n this.changeValue(value, { ...options, emitEvents: ['refresh'] });\n }\n\n scheduleRefresh(value: RangeItem<T>) {\n this.changeValue(value, { emitEvents: ['scheduleRefresh'] });\n }\n\n reset(options: ChangeValueOptions = {}) {\n this.setValue(this.emptyValue, options);\n }\n\n hasDiff(rangeItem: RangeItem<T>) {\n const { value } = this;\n return value.from !== rangeItem.from || value.to !== rangeItem.to;\n }\n\n clone(params: Partial<RangeFilterStateParams<T>>): RangeFilterState<T> {\n const {\n value: initialValue,\n matches,\n persistent,\n itemKey,\n itemName,\n parse,\n name,\n simplify,\n isEmptyPreset,\n parsePreset,\n equals,\n } = this;\n return new RangeFilterState<T>({\n initialValue,\n matches,\n persistent,\n itemKey,\n itemName,\n parse,\n name,\n simplify,\n isEmptyPreset,\n parsePreset,\n equals,\n ...params,\n });\n }\n}\n\nexport const rangeFilter = <T>(params: RangeFilterStateParams<T>) =>\n new RangeFilterState(params);\n\nconst isEmptyDatePreset = (preset?: string): preset is string => {\n return !preset || presetToDaysAmount[preset] === undefined;\n};\n\nexport const toString = (item: RangeItem<Date>) => {\n if (!item.preset || isEmptyDatePreset(item.preset)) {\n return [item.from, item.to].map((d) => d?.toISOString()).join('/');\n }\n return item.preset;\n};\n\nexport const dateRangeFilter = (\n params: Partial<RangeFilterStateParams<Date>> = {},\n) => {\n return new RangeFilterState({\n itemKey: toString,\n itemName: toString,\n parse: (value) => {\n if (typeof value === 'object' && value instanceof Date) {\n return value;\n }\n\n if (typeof value !== 'string' && typeof value !== 'number') {\n return null;\n }\n\n const d = new Date(value);\n\n if (isNaN(d.valueOf())) {\n return null;\n }\n\n return d;\n },\n parsePreset: getDatesFromPreset,\n isEmptyPreset: isEmptyDatePreset,\n equals: (item1, item2) => {\n if (isEmptyDatePreset(item1.preset) && isEmptyDatePreset(item2.preset)) {\n return (\n item1.from?.getTime() === item2.from?.getTime() &&\n item1.to?.getTime() === item2.to?.getTime()\n );\n }\n return item1.preset === item2.preset;\n },\n ...params,\n });\n};\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["DateRangePreset","exports","NONE","SEVEN_DAYS","FOURTEEN_DAYS","MONTH","TODAY","TOMORROW","NEXT_THREE_DAYS","NEXT_SEVEN_DAYS","NEXT_THIRTY_DAYS","CUSTOM","DefaultDateRangePreset","getDateRangeLabel","item","dateFormatters","from","to","filter","Boolean","map","date","mediumTime","format","join","renderPresetToolbarTag","container","translate","t","preset","presetToDaysAmount","children","MAP_DATE_PRESET_TO_KEY","shouldRenderPresetTag","Object","values","includes","days","months","getDatesFromPreset","today","Date","presetDiff","undefined","fromDate","getTime","years","setDate","getDate","setMonth","getMonth","setFullYear","getFullYear","setHours"],"sources":["../../../../src/state/RangeFilterState/dateRangeUtils.ts"],"sourcesContent":["import { FilterItem } from '../../model';\nimport { RangeItem } from './RangeFilterState';\nimport { Translate, TranslationsKeys } from '../../services';\n\nexport const DateRangePreset: Record<DateRangePresetOptions, string> = {\n NONE: 'NONE',\n SEVEN_DAYS: 'SEVEN_DAYS',\n FOURTEEN_DAYS: 'FOURTEEN_DAYS',\n MONTH: 'MONTH',\n TODAY: 'TODAY',\n TOMORROW: 'TOMORROW',\n NEXT_THREE_DAYS: 'NEXT_THREE_DAYS',\n NEXT_SEVEN_DAYS: 'NEXT_SEVEN_DAYS',\n NEXT_THIRTY_DAYS: 'NEXT_THIRTY_DAYS',\n CUSTOM: 'CUSTOM',\n};\n\nexport const DefaultDateRangePreset: Record<\n 'NONE' | 'SEVEN_DAYS' | 'FOURTEEN_DAYS' | 'MONTH' | 'CUSTOM',\n string\n> = {\n NONE: 'NONE',\n SEVEN_DAYS: 'SEVEN_DAYS',\n FOURTEEN_DAYS: 'FOURTEEN_DAYS',\n MONTH: 'MONTH',\n CUSTOM: 'CUSTOM',\n};\n\nconst getDateRangeLabel = (\n item: RangeItem<Date>,\n {\n dateFormatters,\n }: {\n dateFormatters: {\n medium: Intl.DateTimeFormat;\n mediumTime: Intl.DateTimeFormat;\n };\n },\n) => {\n return [item.from, item.to]\n .filter(Boolean as unknown as (d: Date | null) => d is Date)\n .map((date) => dateFormatters.mediumTime.format(date))\n .join(' - ');\n};\n\nexport const renderPresetToolbarTag =\n (container: {\n translate: Translate;\n dateFormatters: {\n medium: Intl.DateTimeFormat;\n mediumTime: Intl.DateTimeFormat;\n };\n }) =>\n <V>(filter: FilterItem<V>) => {\n const { translate: t, dateFormatters } = container;\n const { preset } = filter as FilterItem<RangeItem<Date>>;\n if (!preset || !presetToDaysAmount[preset]) {\n return {\n children: getDateRangeLabel(filter as RangeItem<Date>, {\n dateFormatters,\n }),\n };\n }\n return { children: t(MAP_DATE_PRESET_TO_KEY[preset]) };\n };\n\nexport const shouldRenderPresetTag = (preset?: string) =>\n preset &&\n Object.values(DateRangePreset).includes(preset) &&\n preset !== DateRangePreset.NONE &&\n preset !== DateRangePreset.CUSTOM;\n\nexport const presetToDaysAmount: {\n [key: string]: {\n months?: number;\n days?: number;\n years?: number;\n };\n} = {\n [DateRangePreset.SEVEN_DAYS]: {\n days: -7,\n },\n [DateRangePreset.FOURTEEN_DAYS]: {\n days: -14,\n },\n [DateRangePreset.MONTH]: {\n months: -1,\n },\n [DateRangePreset.TODAY]: {\n days: 0,\n },\n [DateRangePreset.TOMORROW]: {\n days: 1,\n },\n [DateRangePreset.NEXT_THREE_DAYS]: {\n days: 3,\n },\n [DateRangePreset.NEXT_SEVEN_DAYS]: {\n days: 7,\n },\n [DateRangePreset.NEXT_THIRTY_DAYS]: {\n days: 30,\n },\n};\n\nexport const getDatesFromPreset = (preset?: string): RangeItem<Date> => {\n const today = new Date();\n const presetDiff = preset ? presetToDaysAmount[preset] : undefined;\n if (!presetDiff) {\n return { from: null, to: null };\n }\n const fromDate = new Date(today.getTime());\n const { days, months, years } = presetDiff;\n if (days) {\n fromDate.setDate(today.getDate() + days);\n\n // tomorrow preset is the ony preset which does not include today\n if (preset === DateRangePreset.TOMORROW) {\n today.setDate(today.getDate() + days);\n }\n }\n if (months) {\n fromDate.setMonth(today.getMonth() + months);\n }\n if (years) {\n fromDate.setFullYear(today.getFullYear() + years);\n }\n\n if (fromDate.getTime() > today.getTime()) {\n today.setHours(0, 0, 0, 0);\n fromDate.setHours(23, 59, 59, 999);\n return { from: today, to: fromDate, preset };\n }\n\n fromDate.setHours(0, 0, 0, 0);\n today.setHours(23, 59, 59, 999);\n return { from: fromDate, to: today, preset };\n};\n\nexport const MAP_DATE_PRESET_TO_KEY: { [key: string]: TranslationsKeys } = {\n [DateRangePreset.NONE]: 'cairo.filtersPanel.date.none',\n [DateRangePreset.SEVEN_DAYS]: 'cairo.filtersPanel.date.7days',\n [DateRangePreset.FOURTEEN_DAYS]: 'cairo.filtersPanel.date.14days',\n [DateRangePreset.MONTH]: 'cairo.filtersPanel.date.lastMonth',\n [DateRangePreset.CUSTOM]: 'cairo.filtersPanel.date.custom',\n [DateRangePreset.TODAY]: 'cairo.filtersPanel.date.today',\n [DateRangePreset.TOMORROW]: 'cairo.filtersPanel.date.tomorrow',\n [DateRangePreset.NEXT_THREE_DAYS]: 'cairo.filtersPanel.date.next3Days',\n [DateRangePreset.NEXT_SEVEN_DAYS]: 'cairo.filtersPanel.date.next7Days',\n [DateRangePreset.NEXT_THIRTY_DAYS]: 'cairo.filtersPanel.date.next30Days',\n};\n\nexport type DateRangeFilterMode = 'ONLY_PREDEFINED' | 'ONLY_CUSTOM' | 'COMBINE';\nexport type DateRangePredefinedPresetOptions =\n | 'SEVEN_DAYS'\n | 'FOURTEEN_DAYS'\n | 'MONTH'\n | 'TODAY'\n | 'TOMORROW'\n | 'NEXT_THREE_DAYS'\n | 'NEXT_SEVEN_DAYS'\n | 'NEXT_THIRTY_DAYS';\nexport type DateRangePresetOptions =\n | DateRangePredefinedPresetOptions\n | 'NONE'\n | 'CUSTOM';\nexport type
|
|
1
|
+
{"version":3,"names":["DateRangePreset","exports","NONE","SEVEN_DAYS","FOURTEEN_DAYS","MONTH","TODAY","TOMORROW","NEXT_THREE_DAYS","NEXT_SEVEN_DAYS","NEXT_THIRTY_DAYS","CUSTOM","DefaultDateRangePreset","getDateRangeLabel","item","dateFormatters","from","to","filter","Boolean","map","date","mediumTime","format","join","renderPresetToolbarTag","container","translate","t","preset","presetToDaysAmount","children","MAP_DATE_PRESET_TO_KEY","shouldRenderPresetTag","Object","values","includes","days","months","getDatesFromPreset","today","Date","presetDiff","undefined","fromDate","getTime","years","setDate","getDate","setMonth","getMonth","setFullYear","getFullYear","setHours"],"sources":["../../../../src/state/RangeFilterState/dateRangeUtils.ts"],"sourcesContent":["import { FilterItem } from '../../model';\nimport { RangeItem } from './RangeFilterState';\nimport { Translate, TranslationsKeys } from '../../services';\n\nexport const DateRangePreset: Record<DateRangePresetOptions, string> = {\n NONE: 'NONE',\n SEVEN_DAYS: 'SEVEN_DAYS',\n FOURTEEN_DAYS: 'FOURTEEN_DAYS',\n MONTH: 'MONTH',\n TODAY: 'TODAY',\n TOMORROW: 'TOMORROW',\n NEXT_THREE_DAYS: 'NEXT_THREE_DAYS',\n NEXT_SEVEN_DAYS: 'NEXT_SEVEN_DAYS',\n NEXT_THIRTY_DAYS: 'NEXT_THIRTY_DAYS',\n CUSTOM: 'CUSTOM',\n};\n\nexport const DefaultDateRangePreset: Record<\n 'NONE' | 'SEVEN_DAYS' | 'FOURTEEN_DAYS' | 'MONTH' | 'CUSTOM',\n string\n> = {\n NONE: 'NONE',\n SEVEN_DAYS: 'SEVEN_DAYS',\n FOURTEEN_DAYS: 'FOURTEEN_DAYS',\n MONTH: 'MONTH',\n CUSTOM: 'CUSTOM',\n};\n\nconst getDateRangeLabel = (\n item: RangeItem<Date>,\n {\n dateFormatters,\n }: {\n dateFormatters: {\n medium: Intl.DateTimeFormat;\n mediumTime: Intl.DateTimeFormat;\n };\n },\n) => {\n return [item.from, item.to]\n .filter(Boolean as unknown as (d: Date | null) => d is Date)\n .map((date) => dateFormatters.mediumTime.format(date))\n .join(' - ');\n};\n\nexport const renderPresetToolbarTag =\n (container: {\n translate: Translate;\n dateFormatters: {\n medium: Intl.DateTimeFormat;\n mediumTime: Intl.DateTimeFormat;\n };\n }) =>\n <V>(filter: FilterItem<V>) => {\n const { translate: t, dateFormatters } = container;\n const { preset } = filter as FilterItem<RangeItem<Date>>;\n if (!preset || !presetToDaysAmount[preset]) {\n return {\n children: getDateRangeLabel(filter as RangeItem<Date>, {\n dateFormatters,\n }),\n };\n }\n return { children: t(MAP_DATE_PRESET_TO_KEY[preset]) };\n };\n\nexport const shouldRenderPresetTag = (preset?: string) =>\n preset &&\n Object.values(DateRangePreset).includes(preset) &&\n preset !== DateRangePreset.NONE &&\n preset !== DateRangePreset.CUSTOM;\n\nexport const presetToDaysAmount: {\n [key: string]: {\n months?: number;\n days?: number;\n years?: number;\n };\n} = {\n [DateRangePreset.SEVEN_DAYS]: {\n days: -7,\n },\n [DateRangePreset.FOURTEEN_DAYS]: {\n days: -14,\n },\n [DateRangePreset.MONTH]: {\n months: -1,\n },\n [DateRangePreset.TODAY]: {\n days: 0,\n },\n [DateRangePreset.TOMORROW]: {\n days: 1,\n },\n [DateRangePreset.NEXT_THREE_DAYS]: {\n days: 3,\n },\n [DateRangePreset.NEXT_SEVEN_DAYS]: {\n days: 7,\n },\n [DateRangePreset.NEXT_THIRTY_DAYS]: {\n days: 30,\n },\n};\n\nexport const getDatesFromPreset = (preset?: string): RangeItem<Date> => {\n const today = new Date();\n const presetDiff = preset ? presetToDaysAmount[preset] : undefined;\n if (!presetDiff) {\n return { from: null, to: null };\n }\n const fromDate = new Date(today.getTime());\n const { days, months, years } = presetDiff;\n if (days) {\n fromDate.setDate(today.getDate() + days);\n\n // tomorrow preset is the ony preset which does not include today\n if (preset === DateRangePreset.TOMORROW) {\n today.setDate(today.getDate() + days);\n }\n }\n if (months) {\n fromDate.setMonth(today.getMonth() + months);\n }\n if (years) {\n fromDate.setFullYear(today.getFullYear() + years);\n }\n\n if (fromDate.getTime() > today.getTime()) {\n today.setHours(0, 0, 0, 0);\n fromDate.setHours(23, 59, 59, 999);\n return { from: today, to: fromDate, preset };\n }\n\n fromDate.setHours(0, 0, 0, 0);\n today.setHours(23, 59, 59, 999);\n return { from: fromDate, to: today, preset };\n};\n\nexport const MAP_DATE_PRESET_TO_KEY: { [key: string]: TranslationsKeys } = {\n [DateRangePreset.NONE]: 'cairo.filtersPanel.date.none',\n [DateRangePreset.SEVEN_DAYS]: 'cairo.filtersPanel.date.7days',\n [DateRangePreset.FOURTEEN_DAYS]: 'cairo.filtersPanel.date.14days',\n [DateRangePreset.MONTH]: 'cairo.filtersPanel.date.lastMonth',\n [DateRangePreset.CUSTOM]: 'cairo.filtersPanel.date.custom',\n [DateRangePreset.TODAY]: 'cairo.filtersPanel.date.today',\n [DateRangePreset.TOMORROW]: 'cairo.filtersPanel.date.tomorrow',\n [DateRangePreset.NEXT_THREE_DAYS]: 'cairo.filtersPanel.date.next3Days',\n [DateRangePreset.NEXT_SEVEN_DAYS]: 'cairo.filtersPanel.date.next7Days',\n [DateRangePreset.NEXT_THIRTY_DAYS]: 'cairo.filtersPanel.date.next30Days',\n};\n\nexport type DateRangeFilterMode = 'ONLY_PREDEFINED' | 'ONLY_CUSTOM' | 'COMBINE';\nexport type DateRangePredefinedPresetOptions =\n | 'SEVEN_DAYS'\n | 'FOURTEEN_DAYS'\n | 'MONTH'\n | 'TODAY'\n | 'TOMORROW'\n | 'NEXT_THREE_DAYS'\n | 'NEXT_SEVEN_DAYS'\n | 'NEXT_THIRTY_DAYS';\nexport type DateRangePresetOptions =\n | DateRangePredefinedPresetOptions\n | 'NONE'\n | 'CUSTOM';\nexport type DateRangeOptions = DateRangePredefinedPresetOptions[];\n"],"mappings":"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"}
|
|
@@ -27,7 +27,7 @@ class SortState {
|
|
|
27
27
|
this.events.emit('change');
|
|
28
28
|
}
|
|
29
29
|
}
|
|
30
|
-
|
|
30
|
+
_getNextSortOrder(col) {
|
|
31
31
|
const existingSort = this._value.find(({
|
|
32
32
|
field
|
|
33
33
|
}) => field === col.id);
|
|
@@ -43,11 +43,11 @@ class SortState {
|
|
|
43
43
|
emitChangeEvent,
|
|
44
44
|
multiple
|
|
45
45
|
} = {}) {
|
|
46
|
-
const
|
|
46
|
+
const order = forceDirection ?? this._getNextSortOrder(col);
|
|
47
47
|
if (multiple) {
|
|
48
|
-
this._setSortMultiple(col,
|
|
48
|
+
this._setSortMultiple(col, order);
|
|
49
49
|
} else {
|
|
50
|
-
this._setSortSingular(col,
|
|
50
|
+
this._setSortSingular(col, order);
|
|
51
51
|
}
|
|
52
52
|
if (emitChangeEvent) {
|
|
53
53
|
this.events.emit('change', {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_events","require","_mobx","SortState","constructor","_params","_defineProperty2","default","observable","array","deep","EventEmitter","makeObservable","value","computed","setSort","action","changeSort","reset","emitChangeEvent","_value","clear","events","emit","
|
|
1
|
+
{"version":3,"names":["_events","require","_mobx","SortState","constructor","_params","_defineProperty2","default","observable","array","deep","EventEmitter","makeObservable","value","computed","setSort","action","changeSort","reset","emitChangeEvent","_value","clear","events","emit","_getNextSortOrder","col","existingSort","find","field","id","sortMode","direction","undefined","forceDirection","multiple","order","_setSortMultiple","_setSortSingular","push","sortIndex","findIndex","nextDirection","length","setSortQuery","query","replace","params","getIsSortDescending","sort","exports"],"sources":["../../../src/state/SortState.ts"],"sourcesContent":["import { EventEmitter } from 'events';\nimport { action, computed, makeObservable, observable } from 'mobx';\nimport { Sort, SortOrder } from '../model';\nimport { TypedEmitter } from '../util';\n\nexport interface SortStateParams {}\n\nexport interface Sortable {\n id: string;\n sortMode?: 'always';\n}\n\nexport class SortState {\n readonly _value = observable.array<Sort>([], { deep: true });\n\n readonly events = new EventEmitter() as TypedEmitter<{\n change: (params?: { col?: Sortable }) => unknown;\n }>;\n\n constructor(_params: SortStateParams) {\n makeObservable(this, {\n value: computed,\n setSort: action,\n changeSort: action,\n reset: action,\n });\n }\n\n reset({ emitChangeEvent }: { emitChangeEvent?: boolean } = {}) {\n this._value.clear();\n\n if (emitChangeEvent) {\n this.events.emit('change');\n }\n }\n\n _getNextSortOrder(col: Sortable) {\n const existingSort = this._value.find(({ field }) => field === col.id);\n\n if (col.sortMode === 'always') {\n return existingSort?.direction === 'asc' ? 'desc' : 'asc';\n }\n\n // asc->desc->undefined->asc...\n return existingSort === undefined\n ? 'asc'\n : existingSort.direction === 'desc'\n ? undefined\n : 'desc';\n }\n\n setSort(\n col: Sortable,\n {\n forceDirection,\n emitChangeEvent,\n multiple,\n }: {\n forceDirection?: SortOrder;\n emitChangeEvent?: boolean;\n multiple?: boolean;\n } = {},\n ) {\n const order = forceDirection ?? this._getNextSortOrder(col);\n\n if (multiple) {\n this._setSortMultiple(col, order);\n } else {\n this._setSortSingular(col, order);\n }\n\n if (emitChangeEvent) {\n this.events.emit('change', { col });\n }\n }\n\n _setSortSingular(col: Sortable, direction?: SortOrder) {\n this._value.clear();\n\n if (direction) {\n this._value.push({ field: col.id, direction });\n }\n }\n\n /**\n * Rules\n * Sort by a new column:\n * - Clear all previous sorts and add a new one\n * Sort by an existing column:\n * - If only 1 column is sorted, the next direction is calculated\n * with the SortMode in mind (if provided).\n * - If more than 1 column is sorted, only change the direction\n * asc -> desc, desc -> asc, ignoring the SortMode (if provided).\n */\n _setSortMultiple(col: Sortable, direction?: SortOrder) {\n const sortIndex = this._value.findIndex(({ field }) => field === col.id);\n\n if (sortIndex === -1) {\n this._setSortSingular(col, direction);\n } else {\n const nextDirection =\n this._value.length > 1\n ? this._value[sortIndex].direction === 'asc'\n ? 'desc'\n : 'asc'\n : direction;\n\n if (this._value.length === 1 && !direction) {\n this._value.clear();\n } else if (nextDirection) {\n this._value[sortIndex] = {\n field: col.id,\n direction: nextDirection,\n };\n }\n }\n }\n\n setSortQuery(\n query: Sort[],\n { emitChangeEvent }: { emitChangeEvent?: boolean } = {},\n ) {\n this._value.replace(query);\n\n if (emitChangeEvent) {\n this.events.emit('change');\n }\n }\n\n changeSort(col: Sortable, params: { multiple?: boolean } = {}) {\n this.setSort(col, {\n multiple: params.multiple,\n emitChangeEvent: true,\n });\n }\n\n get value() {\n return this._value;\n }\n\n getIsSortDescending(id: string) {\n const sort = this._value.find(({ field }) => field === id);\n if (sort) {\n return sort.direction === 'desc';\n }\n return undefined;\n }\n}\n"],"mappings":";;;;;;AAAA,IAAAA,OAAA,GAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AAWO,MAAME,SAAS,CAAC;EAOrBC,WAAWA,CAACC,OAAwB,EAAE;IAAA,IAAAC,gBAAA,CAAAC,OAAA,kBANpBC,gBAAU,CAACC,KAAK,CAAO,EAAE,EAAE;MAAEC,IAAI,EAAE;IAAK,CAAC,CAAC;IAAA,IAAAJ,gBAAA,CAAAC,OAAA,kBAE1C,IAAII,oBAAY,CAAC,CAAC;IAKlC,IAAAC,oBAAc,EAAC,IAAI,EAAE;MACnBC,KAAK,EAAEC,cAAQ;MACfC,OAAO,EAAEC,YAAM;MACfC,UAAU,EAAED,YAAM;MAClBE,KAAK,EAAEF;IACT,CAAC,CAAC;EACJ;EAEAE,KAAKA,CAAC;IAAEC;EAA+C,CAAC,GAAG,CAAC,CAAC,EAAE;IAC7D,IAAI,CAACC,MAAM,CAACC,KAAK,CAAC,CAAC;IAEnB,IAAIF,eAAe,EAAE;MACnB,IAAI,CAACG,MAAM,CAACC,IAAI,CAAC,QAAQ,CAAC;IAC5B;EACF;EAEAC,iBAAiBA,CAACC,GAAa,EAAE;IAC/B,MAAMC,YAAY,GAAG,IAAI,CAACN,MAAM,CAACO,IAAI,CAAC,CAAC;MAAEC;IAAM,CAAC,KAAKA,KAAK,KAAKH,GAAG,CAACI,EAAE,CAAC;IAEtE,IAAIJ,GAAG,CAACK,QAAQ,KAAK,QAAQ,EAAE;MAC7B,OAAO,CAAAJ,YAAY,oBAAZA,YAAY,CAAEK,SAAS,MAAK,KAAK,GAAG,MAAM,GAAG,KAAK;IAC3D;;IAEA;IACA,OAAOL,YAAY,KAAKM,SAAS,GAC7B,KAAK,GACLN,YAAY,CAACK,SAAS,KAAK,MAAM,GACjCC,SAAS,GACT,MAAM;EACZ;EAEAjB,OAAOA,CACLU,GAAa,EACb;IACEQ,cAAc;IACdd,eAAe;IACfe;EAKF,CAAC,GAAG,CAAC,CAAC,EACN;IACA,MAAMC,KAAK,GAAGF,cAAc,IAAI,IAAI,CAACT,iBAAiB,CAACC,GAAG,CAAC;IAE3D,IAAIS,QAAQ,EAAE;MACZ,IAAI,CAACE,gBAAgB,CAACX,GAAG,EAAEU,KAAK,CAAC;IACnC,CAAC,MAAM;MACL,IAAI,CAACE,gBAAgB,CAACZ,GAAG,EAAEU,KAAK,CAAC;IACnC;IAEA,IAAIhB,eAAe,EAAE;MACnB,IAAI,CAACG,MAAM,CAACC,IAAI,CAAC,QAAQ,EAAE;QAAEE;MAAI,CAAC,CAAC;IACrC;EACF;EAEAY,gBAAgBA,CAACZ,GAAa,EAAEM,SAAqB,EAAE;IACrD,IAAI,CAACX,MAAM,CAACC,KAAK,CAAC,CAAC;IAEnB,IAAIU,SAAS,EAAE;MACb,IAAI,CAACX,MAAM,CAACkB,IAAI,CAAC;QAAEV,KAAK,EAAEH,GAAG,CAACI,EAAE;QAAEE;MAAU,CAAC,CAAC;IAChD;EACF;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACEK,gBAAgBA,CAACX,GAAa,EAAEM,SAAqB,EAAE;IACrD,MAAMQ,SAAS,GAAG,IAAI,CAACnB,MAAM,CAACoB,SAAS,CAAC,CAAC;MAAEZ;IAAM,CAAC,KAAKA,KAAK,KAAKH,GAAG,CAACI,EAAE,CAAC;IAExE,IAAIU,SAAS,KAAK,CAAC,CAAC,EAAE;MACpB,IAAI,CAACF,gBAAgB,CAACZ,GAAG,EAAEM,SAAS,CAAC;IACvC,CAAC,MAAM;MACL,MAAMU,aAAa,GACjB,IAAI,CAACrB,MAAM,CAACsB,MAAM,GAAG,CAAC,GAClB,IAAI,CAACtB,MAAM,CAACmB,SAAS,CAAC,CAACR,SAAS,KAAK,KAAK,GACxC,MAAM,GACN,KAAK,GACPA,SAAS;MAEf,IAAI,IAAI,CAACX,MAAM,CAACsB,MAAM,KAAK,CAAC,IAAI,CAACX,SAAS,EAAE;QAC1C,IAAI,CAACX,MAAM,CAACC,KAAK,CAAC,CAAC;MACrB,CAAC,MAAM,IAAIoB,aAAa,EAAE;QACxB,IAAI,CAACrB,MAAM,CAACmB,SAAS,CAAC,GAAG;UACvBX,KAAK,EAAEH,GAAG,CAACI,EAAE;UACbE,SAAS,EAAEU;QACb,CAAC;MACH;IACF;EACF;EAEAE,YAAYA,CACVC,KAAa,EACb;IAAEzB;EAA+C,CAAC,GAAG,CAAC,CAAC,EACvD;IACA,IAAI,CAACC,MAAM,CAACyB,OAAO,CAACD,KAAK,CAAC;IAE1B,IAAIzB,eAAe,EAAE;MACnB,IAAI,CAACG,MAAM,CAACC,IAAI,CAAC,QAAQ,CAAC;IAC5B;EACF;EAEAN,UAAUA,CAACQ,GAAa,EAAEqB,MAA8B,GAAG,CAAC,CAAC,EAAE;IAC7D,IAAI,CAAC/B,OAAO,CAACU,GAAG,EAAE;MAChBS,QAAQ,EAAEY,MAAM,CAACZ,QAAQ;MACzBf,eAAe,EAAE;IACnB,CAAC,CAAC;EACJ;EAEA,IAAIN,KAAKA,CAAA,EAAG;IACV,OAAO,IAAI,CAACO,MAAM;EACpB;EAEA2B,mBAAmBA,CAAClB,EAAU,EAAE;IAC9B,MAAMmB,IAAI,GAAG,IAAI,CAAC5B,MAAM,CAACO,IAAI,CAAC,CAAC;MAAEC;IAAM,CAAC,KAAKA,KAAK,KAAKC,EAAE,CAAC;IAC1D,IAAImB,IAAI,EAAE;MACR,OAAOA,IAAI,CAACjB,SAAS,KAAK,MAAM;IAClC;IACA,OAAOC,SAAS;EAClB;AACF;AAACiB,OAAA,CAAA9C,SAAA,GAAAA,SAAA"}
|
|
@@ -13,7 +13,6 @@ class StringFilterState {
|
|
|
13
13
|
(0, _defineProperty2.default)(this, "defaultValue", void 0);
|
|
14
14
|
(0, _defineProperty2.default)(this, "itemKey", void 0);
|
|
15
15
|
(0, _defineProperty2.default)(this, "itemName", void 0);
|
|
16
|
-
(0, _defineProperty2.default)(this, "entityName", void 0);
|
|
17
16
|
(0, _defineProperty2.default)(this, "matches", void 0);
|
|
18
17
|
(0, _defineProperty2.default)(this, "equals", void 0);
|
|
19
18
|
(0, _defineProperty2.default)(this, "_value", void 0);
|
|
@@ -23,7 +22,6 @@ class StringFilterState {
|
|
|
23
22
|
this.defaultValue = params.defaultValue;
|
|
24
23
|
this.itemKey = item => item;
|
|
25
24
|
this.itemName = item => item;
|
|
26
|
-
this.entityName = params.entityName ?? (() => '');
|
|
27
25
|
this._value = params.initialValue ?? this.defaultValue;
|
|
28
26
|
this.matches = params.matches ?? ((item, value) => value == null || value === '' || typeof item === 'string' ? value.toLowerCase().includes(item.toLowerCase()) : false);
|
|
29
27
|
this.equals = params.equals;
|
|
@@ -109,7 +107,6 @@ class StringFilterState {
|
|
|
109
107
|
}
|
|
110
108
|
clone(params) {
|
|
111
109
|
const {
|
|
112
|
-
entityName,
|
|
113
110
|
defaultValue,
|
|
114
111
|
value: initialValue,
|
|
115
112
|
matches,
|
|
@@ -117,7 +114,6 @@ class StringFilterState {
|
|
|
117
114
|
name
|
|
118
115
|
} = this;
|
|
119
116
|
return new StringFilterState({
|
|
120
|
-
entityName,
|
|
121
117
|
defaultValue,
|
|
122
118
|
initialValue,
|
|
123
119
|
matches,
|