@wix/bex-core 2.89.0 → 2.91.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (82) hide show
  1. package/dist/cjs/assets/locale/messages_cs.json +1 -0
  2. package/dist/cjs/assets/locale/messages_da.json +1 -0
  3. package/dist/cjs/assets/locale/messages_de.json +1 -0
  4. package/dist/cjs/assets/locale/messages_en.json +2 -1
  5. package/dist/cjs/assets/locale/messages_es.json +1 -0
  6. package/dist/cjs/assets/locale/messages_fr.json +1 -0
  7. package/dist/cjs/assets/locale/messages_hi.json +1 -0
  8. package/dist/cjs/assets/locale/messages_id.json +1 -0
  9. package/dist/cjs/assets/locale/messages_it.json +1 -0
  10. package/dist/cjs/assets/locale/messages_ja.json +1 -0
  11. package/dist/cjs/assets/locale/messages_ko.json +1 -0
  12. package/dist/cjs/assets/locale/messages_nl.json +1 -0
  13. package/dist/cjs/assets/locale/messages_no.json +1 -0
  14. package/dist/cjs/assets/locale/messages_pl.json +1 -0
  15. package/dist/cjs/assets/locale/messages_pt.json +1 -0
  16. package/dist/cjs/assets/locale/messages_ru.json +1 -0
  17. package/dist/cjs/assets/locale/messages_sv.json +1 -0
  18. package/dist/cjs/assets/locale/messages_th.json +1 -0
  19. package/dist/cjs/assets/locale/messages_tr.json +1 -0
  20. package/dist/cjs/assets/locale/messages_uk.json +1 -0
  21. package/dist/cjs/assets/locale/messages_vi.json +1 -0
  22. package/dist/cjs/assets/locale/messages_zh.json +1 -0
  23. package/dist/cjs/services/tagsService/createTagErrors.js +5 -15
  24. package/dist/cjs/services/tagsService/createTagErrors.js.map +1 -1
  25. package/dist/cjs/services/tagsService/tagsService.js +1 -9
  26. package/dist/cjs/services/tagsService/tagsService.js.map +1 -1
  27. package/dist/cjs/services/translations.js.map +1 -1
  28. package/dist/cjs/state/CollectionOptimisticProcessor.js +14 -6
  29. package/dist/cjs/state/CollectionOptimisticProcessor.js.map +1 -1
  30. package/dist/cjs/state/TagsState/TagsFormState.js +4 -6
  31. package/dist/cjs/state/TagsState/TagsFormState.js.map +1 -1
  32. package/dist/cjs/state/TagsState/TagsManagementState.js +18 -15
  33. package/dist/cjs/state/TagsState/TagsManagementState.js.map +1 -1
  34. package/dist/cjs/util/tags.js +0 -22
  35. package/dist/cjs/util/tags.js.map +1 -1
  36. package/dist/esm/assets/locale/messages_cs.json +1 -0
  37. package/dist/esm/assets/locale/messages_da.json +1 -0
  38. package/dist/esm/assets/locale/messages_de.json +1 -0
  39. package/dist/esm/assets/locale/messages_en.json +2 -1
  40. package/dist/esm/assets/locale/messages_es.json +1 -0
  41. package/dist/esm/assets/locale/messages_fr.json +1 -0
  42. package/dist/esm/assets/locale/messages_hi.json +1 -0
  43. package/dist/esm/assets/locale/messages_id.json +1 -0
  44. package/dist/esm/assets/locale/messages_it.json +1 -0
  45. package/dist/esm/assets/locale/messages_ja.json +1 -0
  46. package/dist/esm/assets/locale/messages_ko.json +1 -0
  47. package/dist/esm/assets/locale/messages_nl.json +1 -0
  48. package/dist/esm/assets/locale/messages_no.json +1 -0
  49. package/dist/esm/assets/locale/messages_pl.json +1 -0
  50. package/dist/esm/assets/locale/messages_pt.json +1 -0
  51. package/dist/esm/assets/locale/messages_ru.json +1 -0
  52. package/dist/esm/assets/locale/messages_sv.json +1 -0
  53. package/dist/esm/assets/locale/messages_th.json +1 -0
  54. package/dist/esm/assets/locale/messages_tr.json +1 -0
  55. package/dist/esm/assets/locale/messages_uk.json +1 -0
  56. package/dist/esm/assets/locale/messages_vi.json +1 -0
  57. package/dist/esm/assets/locale/messages_zh.json +1 -0
  58. package/dist/esm/services/tagsService/createTagErrors.js +2 -13
  59. package/dist/esm/services/tagsService/createTagErrors.js.map +1 -1
  60. package/dist/esm/services/tagsService/tagsService.js +1 -6
  61. package/dist/esm/services/tagsService/tagsService.js.map +1 -1
  62. package/dist/esm/state/CollectionOptimisticProcessor.js +22 -11
  63. package/dist/esm/state/CollectionOptimisticProcessor.js.map +1 -1
  64. package/dist/esm/state/TagsState/TagsFormState.js +4 -6
  65. package/dist/esm/state/TagsState/TagsFormState.js.map +1 -1
  66. package/dist/esm/state/TagsState/TagsManagementState.js +7 -4
  67. package/dist/esm/state/TagsState/TagsManagementState.js.map +1 -1
  68. package/dist/esm/util/tags.js +0 -16
  69. package/dist/esm/util/tags.js.map +1 -1
  70. package/dist/types/services/tagsService/createTagErrors.d.ts +2 -1
  71. package/dist/types/services/tagsService/createTagErrors.d.ts.map +1 -1
  72. package/dist/types/services/tagsService/tagsService.d.ts +3 -5
  73. package/dist/types/services/tagsService/tagsService.d.ts.map +1 -1
  74. package/dist/types/services/translations.d.ts +1 -1
  75. package/dist/types/services/translations.d.ts.map +1 -1
  76. package/dist/types/state/CollectionOptimisticProcessor.d.ts.map +1 -1
  77. package/dist/types/state/TagsState/TagsFormState.d.ts.map +1 -1
  78. package/dist/types/state/TagsState/TagsManagementState.d.ts +1 -1
  79. package/dist/types/state/TagsState/TagsManagementState.d.ts.map +1 -1
  80. package/dist/types/util/tags.d.ts +0 -6
  81. package/dist/types/util/tags.d.ts.map +1 -1
  82. package/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"names":["_mobx","require","_QueryResultSimulationDefault","_CollectionOptimisticHelpers","_optimisticSimulation","_orderByOrders","_orderByMoves","CollectionOptimisticProcessor","constructor","params","_defineProperty2","default","collection","processorHelpers","CollectionOptimisticProcessorHelpers","optimistic","resultSimulationDefault","QueryResultSimulationDefault","predicate","orderBy","makeObservable","reprocess","action","bound","beforeAddNewPages","beforeSetTotal","_register","emitter","on","events","removeSelectionIfExists","itemKey","bulkSelect","result","originQuery","state","patches","itemPredicate","filterItem","filterPageByPatches","select","filter","item","pages","currentItemsMap","query","orderByIteratee","limit","length","orders","_orderByMode","finalPages","map","page","transformItemByUpdateAllPatches","itemToMerge","prepareItemsToMergeIntoPage","all","size","index","pageWithPatchedItems","mergePatchedItems","orderByMoves","pageIndex","currentFiltersKeyHash","filtersKeyHash","toMerge","orderByOrders","total","processedTotal","reduce","prev","actionType","patchedItemsEntries","originalItems","originalTotal","key","originalItem","get","patchedItemsTotal","acc","value","Math","max","exports"],"sources":["../../../src/state/CollectionOptimisticProcessor.ts"],"sourcesContent":["import {\n ComputedQuery,\n ComputedQueryFull,\n FiltersMap,\n KeyedItem,\n} from '../model';\nimport { CollectionState } from './CollectionState';\nimport { action, makeObservable } from 'mobx';\nimport { Order, QueryResultSimulation } from './QueryResultSimulation';\nimport { QueryResultSimulationDefault } from './QueryResultSimulationDefault';\nimport { TypedEmitter } from '../util';\nimport { CollectionOptimisticProcessorHelpers } from './CollectionOptimisticHelpers';\nimport { CollectionOptimisticActionsState } from './CollectionOptimisticActionsState';\nimport {\n filterPageByPatches,\n mergePatchedItems,\n prepareItemsToMergeIntoPage,\n transformItemByUpdateAllPatches,\n} from './optimistic-simulation';\nimport { orderByOrders } from './optimistic-simulation/orderByOrders';\nimport { orderByMoves } from './optimistic-simulation/orderByMoves';\nimport { QueryState } from './QueryState';\n\ninterface Optimistic<T, F extends FiltersMap> {\n _orderByMode: 'orders' | 'moves';\n readonly state: CollectionOptimisticActionsState<T>;\n readonly events: TypedEmitter<{\n reprocess: () => void;\n updated: () => void;\n }>;\n readonly query: QueryState<F>;\n}\n\nexport interface CollectionOptimisticProcessorParams<T, F extends FiltersMap>\n extends Partial<QueryResultSimulation<T, F>> {\n readonly collection: CollectionState<T, F>;\n readonly optimistic: Optimistic<T, F>;\n}\n\nexport class CollectionOptimisticProcessor<T, F extends FiltersMap> {\n readonly collection: CollectionState<T, F>;\n readonly processorHelpers: CollectionOptimisticProcessorHelpers<T, F>;\n readonly optimistic: Optimistic<T, F>;\n\n readonly resultSimulationDefault: QueryResultSimulation<T, F>;\n readonly predicate: (computedQuery: ComputedQuery<F>) => (item: T) => boolean;\n readonly orderBy: (computedQuery: ComputedQuery<F>) => Order<T>[];\n\n constructor(params: CollectionOptimisticProcessorParams<T, F>) {\n this.collection = params.collection;\n this.processorHelpers = new CollectionOptimisticProcessorHelpers(\n this.collection,\n );\n this.optimistic = params.optimistic;\n\n this.resultSimulationDefault = new QueryResultSimulationDefault({\n collection: this.collection,\n });\n this.predicate = params.predicate ?? this.resultSimulationDefault.predicate;\n this.orderBy = params.orderBy ?? this.resultSimulationDefault.orderBy;\n\n makeObservable(this, {\n reprocess: action.bound,\n beforeAddNewPages: action.bound,\n beforeSetTotal: action.bound,\n });\n\n this._register();\n }\n\n _register() {\n this.collection.emitter.on('beforeAddNewPages', this.beforeAddNewPages);\n this.collection.emitter.on('beforeSetTotal', this.beforeSetTotal);\n this.optimistic.events.on('reprocess', this.reprocess);\n }\n\n reprocess() {\n this.removeSelectionIfExists();\n this.processorHelpers.reprocess();\n }\n\n removeSelectionIfExists() {\n const {\n collection: {\n itemKey,\n bulkSelect,\n result: { originQuery },\n },\n optimistic: {\n state: { patches },\n },\n predicate,\n } = this;\n\n const itemPredicate = predicate(originQuery);\n\n const filterItem = filterPageByPatches(patches, { itemPredicate, itemKey });\n bulkSelect.select.filter(({ item }) => filterItem(item));\n }\n\n beforeAddNewPages({\n pages,\n currentItemsMap,\n originQuery,\n }: {\n pages: T[][];\n currentItemsMap: Map<string, KeyedItem<T>>;\n originQuery: ComputedQueryFull<F>;\n }) {\n const {\n optimistic: { state, query },\n collection,\n predicate,\n orderBy: orderByIteratee,\n } = this;\n\n const { itemKey } = collection;\n\n const { patches } = state;\n\n const { limit } = originQuery;\n\n if (!patches.length) {\n return pages;\n }\n\n const itemPredicate = predicate(originQuery);\n const orders =\n this.optimistic._orderByMode === 'orders'\n ? orderByIteratee(originQuery)\n : [];\n\n let finalPages = pages;\n\n finalPages = finalPages.map((page) => {\n return page\n .filter(filterPageByPatches(patches, { itemPredicate, itemKey }))\n .map(transformItemByUpdateAllPatches(patches));\n });\n\n const itemToMerge = prepareItemsToMergeIntoPage(patches, {\n itemPredicate,\n currentItemsMap,\n });\n\n if (!itemToMerge.all.size && this.optimistic._orderByMode === 'orders') {\n return finalPages;\n }\n\n finalPages = finalPages.map((page, index) => {\n const pageWithPatchedItems = itemToMerge.all.size\n ? mergePatchedItems(itemToMerge, {\n page,\n limit,\n itemKey,\n orders,\n itemPredicate,\n })\n : page.map((item) => ({ item }));\n\n return this.optimistic._orderByMode === 'moves'\n ? orderByMoves({\n pageWithPatchedItems,\n pageIndex: index,\n patches,\n currentFiltersKeyHash: query.filtersKeyHash,\n itemKey,\n toMerge: itemToMerge,\n itemPredicate,\n limit,\n })\n : orderByOrders(pageWithPatchedItems, itemToMerge, {\n orders,\n itemKey,\n limit,\n });\n });\n\n return finalPages;\n }\n\n beforeSetTotal({\n total,\n originQuery,\n }: {\n total: number;\n originQuery: ComputedQuery<F>;\n }) {\n const {\n optimistic: { state },\n predicate,\n } = this;\n\n const { patches } = state;\n\n if (!patches.length) {\n return total;\n }\n\n const itemPredicate = predicate(originQuery);\n\n const processedTotal = patches.reduce(\n (\n prev,\n { actionType, patchedItemsEntries, originalItems, originalTotal },\n ) => {\n if (actionType === 'updateAllConst' || actionType === 'deleteAll') {\n const [[key, item] = []] = patchedItemsEntries;\n\n if (key == null || item == null) {\n return prev;\n }\n\n const originalItem = originalItems.get(key);\n\n if (\n itemPredicate(item) &&\n (originalItem == null || !itemPredicate(originalItem))\n ) {\n return prev + originalTotal;\n }\n\n if (\n // if action=deleteAll treat the item as filtered out, no need to check predicate\n (actionType === 'deleteAll' || !itemPredicate(item)) &&\n originalItem != null &&\n itemPredicate(originalItem)\n ) {\n return prev - originalTotal;\n }\n\n return prev;\n }\n\n const patchedItemsTotal = patchedItemsEntries.reduce(\n (acc, [key, item]) => {\n const originalItem = originalItems.get(key);\n const value = (() => {\n switch (actionType) {\n case 'deleteMany':\n if (originalItem != null && itemPredicate(originalItem)) {\n return -1;\n }\n\n return 0;\n case 'updateMany':\n case 'updateAll':\n case 'createMany':\n if (\n itemPredicate(item) &&\n (originalItem == null || !itemPredicate(originalItem))\n ) {\n return 1;\n }\n\n if (\n !itemPredicate(item) &&\n originalItem != null &&\n itemPredicate(originalItem)\n ) {\n return -1;\n }\n return 0;\n }\n\n return 0;\n })();\n return acc + value;\n },\n 0,\n );\n\n return prev + patchedItemsTotal;\n },\n total,\n );\n\n return Math.max(processedTotal, 0);\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_mobx","require","_QueryResultSimulationDefault","_CollectionOptimisticHelpers","_optimisticSimulation","_orderByOrders","_orderByMoves","_filterByApplyAllPatches","CollectionOptimisticProcessor","constructor","params","_defineProperty2","default","collection","processorHelpers","CollectionOptimisticProcessorHelpers","optimistic","resultSimulationDefault","QueryResultSimulationDefault","predicate","orderBy","makeObservable","reprocess","action","bound","beforeAddNewPages","beforeSetTotal","_register","emitter","on","events","removeSelectionIfExists","itemKey","bulkSelect","result","originQuery","state","patches","itemPredicate","filterItem","filterPageByPatches","select","filter","item","pages","currentItemsMap","query","_orderByMode","orderByIteratee","limit","length","orders","finalPages","map","page","transformItemByUpdateAllPatches","itemToMerge","prepareItemsToMergeIntoPage","all","size","index","pageWithPatchedItems","mergePatchedItems","orderByMoves","pageIndex","currentFiltersKeyHash","filtersKeyHash","toMerge","orderByOrders","patchedItemPredicate","filterByApplyAllPatches","total","processedTotal","reduce","prev","actionType","patchedItemsEntries","originalItems","originalTotal","key","originalItem","get","patchedItemsTotal","acc","value","Math","max","exports"],"sources":["../../../src/state/CollectionOptimisticProcessor.ts"],"sourcesContent":["import {\n ComputedQuery,\n ComputedQueryFull,\n FiltersMap,\n KeyedItem,\n} from '../model';\nimport { CollectionState } from './CollectionState';\nimport { action, makeObservable } from 'mobx';\nimport { Order, QueryResultSimulation } from './QueryResultSimulation';\nimport { QueryResultSimulationDefault } from './QueryResultSimulationDefault';\nimport { TypedEmitter } from '../util';\nimport { CollectionOptimisticProcessorHelpers } from './CollectionOptimisticHelpers';\nimport { CollectionOptimisticActionsState } from './CollectionOptimisticActionsState';\nimport {\n filterPageByPatches,\n mergePatchedItems,\n prepareItemsToMergeIntoPage,\n transformItemByUpdateAllPatches,\n} from './optimistic-simulation';\nimport { orderByOrders } from './optimistic-simulation/orderByOrders';\nimport { orderByMoves } from './optimistic-simulation/orderByMoves';\nimport { QueryState } from './QueryState';\nimport { filterByApplyAllPatches } from './optimistic-simulation/filterByApplyAllPatches';\n\ninterface Optimistic<T, F extends FiltersMap> {\n _orderByMode: 'orders' | 'moves';\n readonly state: CollectionOptimisticActionsState<T>;\n readonly events: TypedEmitter<{\n reprocess: () => void;\n updated: () => void;\n }>;\n readonly query: QueryState<F>;\n}\n\nexport interface CollectionOptimisticProcessorParams<T, F extends FiltersMap>\n extends Partial<QueryResultSimulation<T, F>> {\n readonly collection: CollectionState<T, F>;\n readonly optimistic: Optimistic<T, F>;\n}\n\nexport class CollectionOptimisticProcessor<T, F extends FiltersMap> {\n readonly collection: CollectionState<T, F>;\n readonly processorHelpers: CollectionOptimisticProcessorHelpers<T, F>;\n readonly optimistic: Optimistic<T, F>;\n\n readonly resultSimulationDefault: QueryResultSimulation<T, F>;\n readonly predicate: (computedQuery: ComputedQuery<F>) => (item: T) => boolean;\n readonly orderBy: (computedQuery: ComputedQuery<F>) => Order<T>[];\n\n constructor(params: CollectionOptimisticProcessorParams<T, F>) {\n this.collection = params.collection;\n this.processorHelpers = new CollectionOptimisticProcessorHelpers(\n this.collection,\n );\n this.optimistic = params.optimistic;\n\n this.resultSimulationDefault = new QueryResultSimulationDefault({\n collection: this.collection,\n });\n this.predicate = params.predicate ?? this.resultSimulationDefault.predicate;\n this.orderBy = params.orderBy ?? this.resultSimulationDefault.orderBy;\n\n makeObservable(this, {\n reprocess: action.bound,\n beforeAddNewPages: action.bound,\n beforeSetTotal: action.bound,\n });\n\n this._register();\n }\n\n _register() {\n this.collection.emitter.on('beforeAddNewPages', this.beforeAddNewPages);\n this.collection.emitter.on('beforeSetTotal', this.beforeSetTotal);\n this.optimistic.events.on('reprocess', this.reprocess);\n }\n\n reprocess() {\n this.removeSelectionIfExists();\n this.processorHelpers.reprocess();\n }\n\n removeSelectionIfExists() {\n const {\n collection: {\n itemKey,\n bulkSelect,\n result: { originQuery },\n },\n optimistic: {\n state: { patches },\n },\n predicate,\n } = this;\n\n const itemPredicate = predicate(originQuery);\n\n const filterItem = filterPageByPatches(patches, { itemPredicate, itemKey });\n bulkSelect.select.filter(({ item }) => filterItem(item));\n }\n\n beforeAddNewPages({\n pages,\n currentItemsMap,\n originQuery,\n }: {\n pages: T[][];\n currentItemsMap: Map<string, KeyedItem<T>>;\n originQuery: ComputedQueryFull<F>;\n }) {\n const {\n optimistic: { state, query, _orderByMode },\n collection,\n predicate,\n orderBy: orderByIteratee,\n } = this;\n\n const { itemKey } = collection;\n\n const { patches } = state;\n\n const { limit } = originQuery;\n\n if (!patches.length) {\n return pages;\n }\n\n const itemPredicate = predicate(originQuery);\n const orders =\n _orderByMode === 'orders' ? orderByIteratee(originQuery) : [];\n\n let finalPages = pages;\n\n finalPages =\n _orderByMode !== 'moves'\n ? finalPages.map((page) => {\n return page\n .filter(filterPageByPatches(patches, { itemPredicate, itemKey }))\n .map(transformItemByUpdateAllPatches(patches));\n })\n : finalPages;\n\n const itemToMerge = prepareItemsToMergeIntoPage(patches, {\n itemPredicate,\n currentItemsMap,\n });\n\n if (!itemToMerge.all.size && _orderByMode === 'orders') {\n return finalPages;\n }\n\n finalPages = finalPages.map((page, index) => {\n const pageWithPatchedItems = itemToMerge.all.size\n ? mergePatchedItems(itemToMerge, {\n page,\n limit,\n itemKey,\n orders,\n itemPredicate,\n })\n : page.map((item) => ({ item }));\n\n return _orderByMode === 'moves'\n ? orderByMoves({\n pageWithPatchedItems,\n pageIndex: index,\n patches,\n currentFiltersKeyHash: query.filtersKeyHash,\n itemKey,\n toMerge: itemToMerge,\n itemPredicate,\n limit,\n })\n : orderByOrders(pageWithPatchedItems, itemToMerge, {\n orders,\n itemKey,\n limit,\n });\n });\n\n const patchedItemPredicate = filterByApplyAllPatches(patches, {\n itemPredicate,\n });\n\n finalPages =\n _orderByMode === 'moves'\n ? finalPages.map((page) => {\n return page.filter(patchedItemPredicate);\n })\n : finalPages;\n\n return finalPages;\n }\n\n beforeSetTotal({\n total,\n originQuery,\n }: {\n total: number;\n originQuery: ComputedQuery<F>;\n }) {\n const {\n optimistic: { state },\n predicate,\n } = this;\n\n const { patches } = state;\n\n if (!patches.length) {\n return total;\n }\n\n const itemPredicate = predicate(originQuery);\n\n const processedTotal = patches.reduce(\n (\n prev,\n { actionType, patchedItemsEntries, originalItems, originalTotal },\n ) => {\n if (actionType === 'updateAllConst' || actionType === 'deleteAll') {\n const [[key, item] = []] = patchedItemsEntries;\n\n if (key == null || item == null) {\n return prev;\n }\n\n const originalItem = originalItems.get(key);\n\n if (\n itemPredicate(item) &&\n (originalItem == null || !itemPredicate(originalItem))\n ) {\n return prev + originalTotal;\n }\n\n if (\n // if action=deleteAll treat the item as filtered out, no need to check predicate\n (actionType === 'deleteAll' || !itemPredicate(item)) &&\n originalItem != null &&\n itemPredicate(originalItem)\n ) {\n return prev - originalTotal;\n }\n\n return prev;\n }\n\n const patchedItemsTotal = patchedItemsEntries.reduce(\n (acc, [key, item]) => {\n const originalItem = originalItems.get(key);\n const value = (() => {\n switch (actionType) {\n case 'deleteMany':\n if (originalItem != null && itemPredicate(originalItem)) {\n return -1;\n }\n\n return 0;\n case 'updateMany':\n case 'updateAll':\n case 'createMany':\n if (\n itemPredicate(item) &&\n (originalItem == null || !itemPredicate(originalItem))\n ) {\n return 1;\n }\n\n if (\n !itemPredicate(item) &&\n originalItem != null &&\n itemPredicate(originalItem)\n ) {\n return -1;\n }\n return 0;\n }\n\n return 0;\n })();\n return acc + value;\n },\n 0,\n );\n\n return prev + patchedItemsTotal;\n },\n total,\n );\n\n return Math.max(processedTotal, 0);\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -10,7 +10,6 @@ var _TagsManagementState = require("./TagsManagementState");
10
10
  var _TagsSearchState = require("./TagsSearchState");
11
11
  var _TagsAssignmentState = require("./TagsAssignmentState");
12
12
  var _TagsBIReporter = require("./TagsBIReporter");
13
- var _util = require("../../util");
14
13
  const ADD_ITEM_OPTION_ID = exports.ADD_ITEM_OPTION_ID = 'add-item-option';
15
14
  const MANAGE_TAGS_OPTION_ID = exports.MANAGE_TAGS_OPTION_ID = 'manage-tags-option';
16
15
  class TagsFormState {
@@ -93,13 +92,12 @@ class TagsFormState {
93
92
  filteredListSize: this.displayedTagOptions.length,
94
93
  createOptimisticActionParams: {
95
94
  errorToast: error => {
96
- const config = (0, _util.getCreateTagErrorConfig)({
97
- container: this.container,
98
- error
99
- });
95
+ var _this$container$error, _this$container$error2;
96
+ const resolvedError = (_this$container$error = (_this$container$error2 = this.container.errorHandler).getResolvedError) == null ? void 0 : _this$container$error.call(_this$container$error2, error);
100
97
  return {
101
98
  biName: 'cairo-save-new-tag-error',
102
- ...config
99
+ message: (resolvedError == null ? void 0 : resolvedError.message) ?? this.container.translate('cairo.tags.collectionPage.toast.create.error'),
100
+ action: resolvedError == null ? void 0 : resolvedError.action
103
101
  };
104
102
  }
105
103
  },
@@ -1 +1 @@
1
- {"version":3,"names":["_mobx","require","_v","_TagsManagementState","_TagsSearchState","_TagsAssignmentState","_TagsBIReporter","_util","ADD_ITEM_OPTION_ID","exports","MANAGE_TAGS_OPTION_ID","TagsFormState","constructor","tagsManagementState","origin","initialTags","_defineProperty2","default","tagName","onError","error","tagsBIReporter","actionName","errorToast","biName","message","container","translate","onTryAgain","tag","onSubmit","tagsAssignmentState","assignTag","isFromSearch","previousSearchValue","optimisticActionParams","assignOptimisticActionParams","name","tagId","tagToUnassign","assignedTags","find","id","unassignTag","createAndAssignTag","filteredListSize","displayedTagOptions","length","createOptimisticActionParams","config","getCreateTagErrorConfig","tags","privateTags","tagIds","assignedTagIds","isValid","values","TagsBIReporter","collection","reportBi","createBILogger","componentType","fqdn","location","TagsAssignmentState","tagsSearchState","TagsSearchState","makeObservable","init","action","observable","isMultiSelectOnFocus","displayedAssignedTags","computed","isDirty","handleManageTagsCtaClick","handleSearchChange","handleOptionsShow","setIsMultiSelectOnFocus","entityId","disposers","cairoTagsWidgetLoaded","itemId","undefined","numTags","items","numTagsAssigned","initialTagIds","forEach","disposer","map","assignedTag","label","filteredItems","filter","value","isInEmptyState","searchValue","shouldShowCreateTagOption","hasSameTagAsSearch","handleTagSelect","option","_invokeBiOnCtaClick","slice","TAG_MAX_LENGTH","newSearchValue","isOnFocusValue","cairoTagsWidgetClickOnCta"],"sources":["../../../../src/state/TagsState/TagsFormState.ts"],"sourcesContent":["import { action, computed, makeObservable, observable } from 'mobx';\nimport { Tag } from '@wix/bex-utils/@wix/ambassador-os-tags-v1-tag/types';\nimport {\n cairoTagsWidgetClickOnCta,\n cairoTagsWidgetLoaded,\n} from '@wix/bex-utils/@wix/bi-logger-os-data/v2';\nimport { TAG_MAX_LENGTH, TagsManagementState } from './TagsManagementState';\nimport { TagsSearchState } from './TagsSearchState';\nimport {\n TagsAssignmentState,\n OnSubmitTagsFuncType,\n} from './TagsAssignmentState';\nimport { TagsBIReporter } from './TagsBIReporter';\nimport { Tags } from './tagsTypes';\nimport { WixPatternsContainer } from '../WixPatternsContainer';\nimport { getCreateTagErrorConfig } from '../../util';\n\nexport const ADD_ITEM_OPTION_ID = 'add-item-option';\nexport const MANAGE_TAGS_OPTION_ID = 'manage-tags-option';\n\nexport interface TagsFormStateParams {\n readonly tagsManagementState: TagsManagementState;\n readonly origin: string;\n readonly entityTypeName: string;\n readonly initialTags?: Tags;\n}\n\nexport class TagsFormState {\n readonly tagsAssignmentState: TagsAssignmentState;\n readonly tagsManagementState: TagsManagementState;\n readonly tagsSearchState: TagsSearchState;\n readonly tagsBIReporter: TagsBIReporter;\n readonly container: WixPatternsContainer;\n readonly origin: string;\n entityId?: string | null;\n previousSearchValue = '';\n isMultiSelectOnFocus = false;\n assignOptimisticActionParams = (tagName: string) => ({\n onError: (error: unknown) => {\n this.tagsBIReporter.onError(\n {\n tagName,\n actionName: 'Assign tag',\n origin: this.origin,\n },\n error,\n );\n },\n errorToast: () => {\n return {\n biName: 'cairo-assign-tag-error',\n message: this.container.translate(\n 'cairo.tags.collectionPage.toast.update.error',\n ),\n };\n },\n onTryAgain: () => {\n this.tagsBIReporter.onTryAgain({\n actionName: 'Assign tag',\n });\n },\n });\n\n constructor({\n tagsManagementState,\n origin,\n initialTags,\n }: TagsFormStateParams) {\n this.container = tagsManagementState.container;\n this.origin = origin;\n this.tagsManagementState = tagsManagementState;\n\n this.tagsBIReporter = new TagsBIReporter({\n collection: this.tagsManagementState.collection,\n reportBi: this.container.createBILogger({\n componentType: 'TagsWidget',\n ...tagsManagementState.fqdn,\n }),\n location: 'Tags widget',\n });\n\n this.tagsAssignmentState = new TagsAssignmentState({\n initialTags,\n tagsManagementState: this.tagsManagementState,\n tagsBIReporter: this.tagsBIReporter,\n origin,\n fqdn: tagsManagementState.fqdn,\n });\n this.tagsSearchState = new TagsSearchState({\n tagsManagementState: this.tagsManagementState,\n });\n\n makeObservable(this, {\n init: action,\n previousSearchValue: observable,\n isMultiSelectOnFocus: observable,\n displayedAssignedTags: computed,\n displayedTagOptions: computed,\n isDirty: computed,\n handleManageTagsCtaClick: action,\n handleSearchChange: action,\n handleOptionsShow: action,\n setIsMultiSelectOnFocus: action,\n });\n }\n\n init({ entityId }: { entityId?: string | null }) {\n this.entityId = entityId;\n const disposers = [\n this.tagsAssignmentState.init({\n entityId,\n }),\n ];\n\n this.tagsBIReporter.reportBi(\n cairoTagsWidgetLoaded({\n itemId: this.entityId ?? undefined,\n numTags: this.tagsManagementState.items.length,\n numTagsAssigned: this.tagsAssignmentState.initialTagIds.length,\n }),\n );\n\n return () => {\n disposers.forEach((disposer) => disposer?.());\n };\n }\n\n get displayedAssignedTags() {\n return this.tagsAssignmentState.assignedTags.map((assignedTag) => ({\n id: assignedTag.id!,\n label: assignedTag.name!,\n }));\n }\n\n get displayedTagOptions() {\n return this.tagsSearchState.filteredItems\n .filter(\n (tag: Tag) =>\n !this.displayedAssignedTags.find(\n (assignedTag) => assignedTag.label === tag.name,\n ),\n )\n .map((tag: Tag) => {\n return { id: tag.id!, value: tag.name };\n });\n }\n\n get isInEmptyState() {\n return this.tagsManagementState.items.length === 0;\n }\n\n get searchValue() {\n return this.tagsSearchState.searchValue;\n }\n\n get shouldShowCreateTagOption() {\n return this.searchValue && !this.tagsSearchState.hasSameTagAsSearch;\n }\n\n handleTagSelect(\n option: { id: string; value: string },\n onSubmit?: OnSubmitTagsFuncType,\n ) {\n if (option.id === ADD_ITEM_OPTION_ID) {\n this._invokeBiOnCtaClick('Create tags');\n const tagName = this.previousSearchValue.slice(0, TAG_MAX_LENGTH);\n this.createAndAssignTag(tagName, onSubmit);\n return;\n }\n\n this.assignTag({ id: option.id, name: option.value }, onSubmit);\n }\n\n assignTag = async (tag: Tag, onSubmit?: OnSubmitTagsFuncType) => {\n this.tagsAssignmentState.assignTag({\n tag,\n onSubmit,\n isFromSearch: this.previousSearchValue !== '',\n optimisticActionParams: this.assignOptimisticActionParams(tag.name!),\n });\n };\n\n unassignTag = async (tagId: string, onSubmit?: OnSubmitTagsFuncType) => {\n const tagToUnassign = this.tagsAssignmentState.assignedTags.find(\n (tag) => tag.id === tagId,\n );\n\n if (tagToUnassign) {\n this.tagsAssignmentState.unassignTag({\n tag: tagToUnassign,\n onSubmit,\n isFromSearch: false,\n optimisticActionParams: {\n errorToast: () => {\n return {\n biName: 'cairo-remove-assign-tag-error',\n message: this.container.translate(\n 'cairo.tags.collectionPage.toast.update.error',\n ),\n };\n },\n onError: (error: unknown) => {\n this.tagsBIReporter.onError(\n {\n tagName: tagToUnassign.name!,\n actionName: 'Remove assign tag',\n origin: this.origin,\n },\n error,\n );\n },\n onTryAgain: () => {\n this.tagsBIReporter.onTryAgain({\n actionName: 'Remove assign tag',\n });\n },\n },\n });\n }\n };\n\n createAndAssignTag = async (\n name: string,\n onSubmit?: OnSubmitTagsFuncType,\n ) => {\n this.tagsAssignmentState.createAndAssignTag({\n name,\n onSubmit,\n filteredListSize: this.displayedTagOptions.length,\n createOptimisticActionParams: {\n errorToast: (error) => {\n const config = getCreateTagErrorConfig({\n container: this.container,\n error,\n });\n\n return {\n biName: 'cairo-save-new-tag-error',\n ...config,\n };\n },\n },\n assignOptimisticActionParams: this.assignOptimisticActionParams(name),\n });\n };\n\n handleManageTagsCtaClick() {\n this._invokeBiOnCtaClick('Manage tags');\n }\n\n handleSearchChange(newSearchValue: string) {\n this.previousSearchValue = this.searchValue;\n this.tagsSearchState.searchValue = newSearchValue;\n }\n\n handleOptionsShow() {\n this._invokeBiOnCtaClick('Assign tags');\n }\n\n setIsMultiSelectOnFocus(isOnFocusValue: boolean) {\n this.isMultiSelectOnFocus = isOnFocusValue;\n }\n\n validate = async () => {\n const tags = {\n privateTags: { tagIds: this.tagsAssignmentState.assignedTagIds },\n };\n return {\n isValid: true,\n tags,\n values: tags,\n };\n };\n\n get isDirty() {\n return this.tagsAssignmentState.isDirty;\n }\n\n private _invokeBiOnCtaClick(actionName: string) {\n return this.tagsBIReporter.reportBi(\n cairoTagsWidgetClickOnCta({\n itemId: this.entityId ?? undefined,\n numTags: this.tagsManagementState.items.length,\n numTagsAssigned: this.tagsAssignmentState.assignedTags.length,\n actionName,\n }),\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_mobx","require","_v","_TagsManagementState","_TagsSearchState","_TagsAssignmentState","_TagsBIReporter","ADD_ITEM_OPTION_ID","exports","MANAGE_TAGS_OPTION_ID","TagsFormState","constructor","tagsManagementState","origin","initialTags","_defineProperty2","default","tagName","onError","error","tagsBIReporter","actionName","errorToast","biName","message","container","translate","onTryAgain","tag","onSubmit","tagsAssignmentState","assignTag","isFromSearch","previousSearchValue","optimisticActionParams","assignOptimisticActionParams","name","tagId","tagToUnassign","assignedTags","find","id","unassignTag","createAndAssignTag","filteredListSize","displayedTagOptions","length","createOptimisticActionParams","_this$container$error","_this$container$error2","resolvedError","errorHandler","getResolvedError","call","action","tags","privateTags","tagIds","assignedTagIds","isValid","values","TagsBIReporter","collection","reportBi","createBILogger","componentType","fqdn","location","TagsAssignmentState","tagsSearchState","TagsSearchState","makeObservable","init","observable","isMultiSelectOnFocus","displayedAssignedTags","computed","isDirty","handleManageTagsCtaClick","handleSearchChange","handleOptionsShow","setIsMultiSelectOnFocus","entityId","disposers","cairoTagsWidgetLoaded","itemId","undefined","numTags","items","numTagsAssigned","initialTagIds","forEach","disposer","map","assignedTag","label","filteredItems","filter","value","isInEmptyState","searchValue","shouldShowCreateTagOption","hasSameTagAsSearch","handleTagSelect","option","_invokeBiOnCtaClick","slice","TAG_MAX_LENGTH","newSearchValue","isOnFocusValue","cairoTagsWidgetClickOnCta"],"sources":["../../../../src/state/TagsState/TagsFormState.ts"],"sourcesContent":["import { action, computed, makeObservable, observable } from 'mobx';\nimport { Tag } from '@wix/bex-utils/@wix/ambassador-os-tags-v1-tag/types';\nimport {\n cairoTagsWidgetClickOnCta,\n cairoTagsWidgetLoaded,\n} from '@wix/bex-utils/@wix/bi-logger-os-data/v2';\nimport { TAG_MAX_LENGTH, TagsManagementState } from './TagsManagementState';\nimport { TagsSearchState } from './TagsSearchState';\nimport {\n TagsAssignmentState,\n OnSubmitTagsFuncType,\n} from './TagsAssignmentState';\nimport { TagsBIReporter } from './TagsBIReporter';\nimport { Tags } from './tagsTypes';\nimport { WixPatternsContainer } from '../WixPatternsContainer';\n\nexport const ADD_ITEM_OPTION_ID = 'add-item-option';\nexport const MANAGE_TAGS_OPTION_ID = 'manage-tags-option';\n\nexport interface TagsFormStateParams {\n readonly tagsManagementState: TagsManagementState;\n readonly origin: string;\n readonly entityTypeName: string;\n readonly initialTags?: Tags;\n}\n\nexport class TagsFormState {\n readonly tagsAssignmentState: TagsAssignmentState;\n readonly tagsManagementState: TagsManagementState;\n readonly tagsSearchState: TagsSearchState;\n readonly tagsBIReporter: TagsBIReporter;\n readonly container: WixPatternsContainer;\n readonly origin: string;\n entityId?: string | null;\n previousSearchValue = '';\n isMultiSelectOnFocus = false;\n assignOptimisticActionParams = (tagName: string) => ({\n onError: (error: unknown) => {\n this.tagsBIReporter.onError(\n {\n tagName,\n actionName: 'Assign tag',\n origin: this.origin,\n },\n error,\n );\n },\n errorToast: () => {\n return {\n biName: 'cairo-assign-tag-error',\n message: this.container.translate(\n 'cairo.tags.collectionPage.toast.update.error',\n ),\n };\n },\n onTryAgain: () => {\n this.tagsBIReporter.onTryAgain({\n actionName: 'Assign tag',\n });\n },\n });\n\n constructor({\n tagsManagementState,\n origin,\n initialTags,\n }: TagsFormStateParams) {\n this.container = tagsManagementState.container;\n this.origin = origin;\n this.tagsManagementState = tagsManagementState;\n\n this.tagsBIReporter = new TagsBIReporter({\n collection: this.tagsManagementState.collection,\n reportBi: this.container.createBILogger({\n componentType: 'TagsWidget',\n ...tagsManagementState.fqdn,\n }),\n location: 'Tags widget',\n });\n\n this.tagsAssignmentState = new TagsAssignmentState({\n initialTags,\n tagsManagementState: this.tagsManagementState,\n tagsBIReporter: this.tagsBIReporter,\n origin,\n fqdn: tagsManagementState.fqdn,\n });\n this.tagsSearchState = new TagsSearchState({\n tagsManagementState: this.tagsManagementState,\n });\n\n makeObservable(this, {\n init: action,\n previousSearchValue: observable,\n isMultiSelectOnFocus: observable,\n displayedAssignedTags: computed,\n displayedTagOptions: computed,\n isDirty: computed,\n handleManageTagsCtaClick: action,\n handleSearchChange: action,\n handleOptionsShow: action,\n setIsMultiSelectOnFocus: action,\n });\n }\n\n init({ entityId }: { entityId?: string | null }) {\n this.entityId = entityId;\n const disposers = [\n this.tagsAssignmentState.init({\n entityId,\n }),\n ];\n\n this.tagsBIReporter.reportBi(\n cairoTagsWidgetLoaded({\n itemId: this.entityId ?? undefined,\n numTags: this.tagsManagementState.items.length,\n numTagsAssigned: this.tagsAssignmentState.initialTagIds.length,\n }),\n );\n\n return () => {\n disposers.forEach((disposer) => disposer?.());\n };\n }\n\n get displayedAssignedTags() {\n return this.tagsAssignmentState.assignedTags.map((assignedTag) => ({\n id: assignedTag.id!,\n label: assignedTag.name!,\n }));\n }\n\n get displayedTagOptions() {\n return this.tagsSearchState.filteredItems\n .filter(\n (tag: Tag) =>\n !this.displayedAssignedTags.find(\n (assignedTag) => assignedTag.label === tag.name,\n ),\n )\n .map((tag: Tag) => {\n return { id: tag.id!, value: tag.name };\n });\n }\n\n get isInEmptyState() {\n return this.tagsManagementState.items.length === 0;\n }\n\n get searchValue() {\n return this.tagsSearchState.searchValue;\n }\n\n get shouldShowCreateTagOption() {\n return this.searchValue && !this.tagsSearchState.hasSameTagAsSearch;\n }\n\n handleTagSelect(\n option: { id: string; value: string },\n onSubmit?: OnSubmitTagsFuncType,\n ) {\n if (option.id === ADD_ITEM_OPTION_ID) {\n this._invokeBiOnCtaClick('Create tags');\n const tagName = this.previousSearchValue.slice(0, TAG_MAX_LENGTH);\n this.createAndAssignTag(tagName, onSubmit);\n return;\n }\n\n this.assignTag({ id: option.id, name: option.value }, onSubmit);\n }\n\n assignTag = async (tag: Tag, onSubmit?: OnSubmitTagsFuncType) => {\n this.tagsAssignmentState.assignTag({\n tag,\n onSubmit,\n isFromSearch: this.previousSearchValue !== '',\n optimisticActionParams: this.assignOptimisticActionParams(tag.name!),\n });\n };\n\n unassignTag = async (tagId: string, onSubmit?: OnSubmitTagsFuncType) => {\n const tagToUnassign = this.tagsAssignmentState.assignedTags.find(\n (tag) => tag.id === tagId,\n );\n\n if (tagToUnassign) {\n this.tagsAssignmentState.unassignTag({\n tag: tagToUnassign,\n onSubmit,\n isFromSearch: false,\n optimisticActionParams: {\n errorToast: () => {\n return {\n biName: 'cairo-remove-assign-tag-error',\n message: this.container.translate(\n 'cairo.tags.collectionPage.toast.update.error',\n ),\n };\n },\n onError: (error: unknown) => {\n this.tagsBIReporter.onError(\n {\n tagName: tagToUnassign.name!,\n actionName: 'Remove assign tag',\n origin: this.origin,\n },\n error,\n );\n },\n onTryAgain: () => {\n this.tagsBIReporter.onTryAgain({\n actionName: 'Remove assign tag',\n });\n },\n },\n });\n }\n };\n\n createAndAssignTag = async (\n name: string,\n onSubmit?: OnSubmitTagsFuncType,\n ) => {\n this.tagsAssignmentState.createAndAssignTag({\n name,\n onSubmit,\n filteredListSize: this.displayedTagOptions.length,\n createOptimisticActionParams: {\n errorToast: (error) => {\n const resolvedError =\n this.container.errorHandler.getResolvedError?.(error);\n return {\n biName: 'cairo-save-new-tag-error',\n message:\n resolvedError?.message ??\n this.container.translate(\n 'cairo.tags.collectionPage.toast.create.error',\n ),\n action: resolvedError?.action,\n };\n },\n },\n assignOptimisticActionParams: this.assignOptimisticActionParams(name),\n });\n };\n\n handleManageTagsCtaClick() {\n this._invokeBiOnCtaClick('Manage tags');\n }\n\n handleSearchChange(newSearchValue: string) {\n this.previousSearchValue = this.searchValue;\n this.tagsSearchState.searchValue = newSearchValue;\n }\n\n handleOptionsShow() {\n this._invokeBiOnCtaClick('Assign tags');\n }\n\n setIsMultiSelectOnFocus(isOnFocusValue: boolean) {\n this.isMultiSelectOnFocus = isOnFocusValue;\n }\n\n validate = async () => {\n const tags = {\n privateTags: { tagIds: this.tagsAssignmentState.assignedTagIds },\n };\n return {\n isValid: true,\n tags,\n values: tags,\n };\n };\n\n get isDirty() {\n return this.tagsAssignmentState.isDirty;\n }\n\n private _invokeBiOnCtaClick(actionName: string) {\n return this.tagsBIReporter.reportBi(\n cairoTagsWidgetClickOnCta({\n itemId: this.entityId ?? undefined,\n numTags: this.tagsManagementState.items.length,\n numTagsAssigned: this.tagsAssignmentState.assignedTags.length,\n actionName,\n }),\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -204,18 +204,19 @@ class TagsManagementState {
204
204
  type: 'ERROR'
205
205
  });
206
206
  }
207
- async createTag({
208
- name,
209
- origin,
210
- tagSubOrigin,
211
- filteredListSize,
212
- id = (0, _uuid.v4)(),
213
- isFromSearch = false,
214
- onSuccess,
215
- optimisticActionParams = {},
216
- tagsBIReporter,
217
- visualType = 'toast'
218
- }) {
207
+ async createTag(params) {
208
+ const {
209
+ name,
210
+ origin,
211
+ tagSubOrigin,
212
+ filteredListSize,
213
+ id = (0, _uuid.v4)(),
214
+ isFromSearch = false,
215
+ onSuccess,
216
+ optimisticActionParams = {},
217
+ tagsBIReporter,
218
+ visualType = 'toast'
219
+ } = params;
219
220
  const actionName = 'Add tag';
220
221
  tagsBIReporter.onAction({
221
222
  tagName: name,
@@ -238,9 +239,11 @@ class TagsManagementState {
238
239
  submit: async () => {
239
240
  const serverCreatedTag = await this.tagsService.createTag({
240
241
  tag: newTag
241
- }, {
242
- visualType
243
- });
242
+ }, (0, _createTagErrors.createTagErrors)({
243
+ translate: this.container.translate,
244
+ visualType,
245
+ retryFn: () => this.createTag(params)
246
+ }));
244
247
  await (onSuccess == null ? void 0 : onSuccess(serverCreatedTag));
245
248
  return [serverCreatedTag];
246
249
  },
@@ -1 +1 @@
1
- {"version":3,"names":["_mobx","require","_types","_uuid","_events","_CollectionState","_CollectionOptimisticActions","_TaskState","_util","_services","_createTagErrors","_tagsService","TAG_MAX_LENGTH","exports","MAX_TAGS","TagsManagementState","constructor","params","_defineProperty2","default","TaskState","EventEmitter","container","fqdn","tagsService","TagsService","collection","CollectionState","events","queryName","fqdnString","join","fetchData","fetchedItems","listTags","exposure","TagExposure","PRIVATE","items","total","length","itemKey","id","itemName","name","filters","showToast","toastConfig","_params$container","overrideShowToast","emit","remove","optimisticActions","CollectionOptimisticActions","orderBy","sort","fieldName","createdDate","Date","valueOf","order","makeObservable","init","action","createTag","updateTag","deleteTag","retry","_isFqdnValid","disposers","initTask","runOnce","status","promise","forEach","disposer","result","isError","isLoading","isIdle","isSuccessful","isSuccess","fqdnToString","getTagById","tagId","_this$collection$resu","_keyedItemsMap","get","item","getTagNameById","_this$getTagById","resource","undefined","_optimisticActionBaseParams","optimisticActionParams","tagsBIReporter","actionName","origin","tagName","filteredListSize","isFromSearch","errorCode","onError","onTryAgain","onUndo","otherOptimisticActionParams","error","internalMonitor","reportError","WixPatternsError","originalException","category","hasReachedTagsLimit","showTagsLimitErrorToast","visualType","message","getTagsReachedLimitErrorMessage","translate","biName","type","tagSubOrigin","uuid","onSuccess","onAction","newTag","createOne","submit","serverCreatedTag","tag","tagToUpdate","previousName","updateOne","revision","toString","tagToDelete","deleteOne"],"sources":["../../../../src/state/TagsState/TagsManagementState.ts"],"sourcesContent":["import { action, makeObservable } from 'mobx';\nimport {\n Tag,\n TagExposure,\n} from '@wix/bex-utils/@wix/ambassador-os-tags-v1-tag/types';\nimport { TagsBIReporter } from './TagsBIReporter';\nimport { v4 as uuid } from 'uuid';\nimport { EventEmitter } from 'events';\nimport { WixPatternsContainer } from '../WixPatternsContainer';\nimport { Fqdn, ToastConfig } from '../../model';\nimport { CollectionState } from '../CollectionState';\nimport { CollectionOptimisticActions } from '../CollectionOptimisticActions';\nimport { TaskState } from '../TaskState';\nimport { TagErrorVisualType, TypedEmitter, fqdnToString } from '../../util';\nimport { WixPatternsError, WixPatternsErrorCode } from '../../services';\nimport {\n CreateManyParams,\n DeleteManyParams,\n OptimisticActionBasis,\n UpdateManyParams,\n} from '../OptimisticActions';\nimport { getTagsReachedLimitErrorMessage } from '../../services/tagsService/createTagErrors';\nimport { TagsService } from '../../services/tagsService';\n\nexport const TAG_MAX_LENGTH = 30;\nconst MAX_TAGS = 100;\n\nexport interface TagsManagementStateParams {\n readonly container: WixPatternsContainer;\n readonly fqdn: Fqdn;\n}\n\nexport class TagsManagementState {\n readonly collection: CollectionState<Tag>;\n readonly optimisticActions: CollectionOptimisticActions<Tag, {}>;\n readonly container;\n readonly fqdn;\n readonly initTask = new TaskState();\n readonly tagsService;\n readonly events = new EventEmitter() as TypedEmitter<{\n showToast: (toastConfig: ToastConfig) => unknown;\n hideToast: (toastConfig: ToastConfig) => unknown;\n }>;\n overrideShowToast = false;\n\n constructor(params: TagsManagementStateParams) {\n this.container = params.container;\n this.fqdn = params.fqdn;\n this.tagsService = new TagsService({\n container: this.container,\n });\n\n this.collection = new CollectionState<Tag>({\n ...params.container,\n events: {},\n queryName: [this.fqdnString, 'tags'].join('/'),\n fetchData: async () => {\n const fetchedItems = await this.tagsService.listTags({\n fqdn: this.fqdnString,\n exposure: TagExposure.PRIVATE,\n });\n\n return {\n items: fetchedItems,\n total: fetchedItems.length,\n };\n },\n itemKey: ({ id }) => id!,\n itemName: ({ name }) => name!,\n filters: {},\n showToast: (toastConfig: ToastConfig) => {\n if (this.overrideShowToast) {\n this.events.emit('showToast', toastConfig);\n return {\n remove: () => {\n this.events.emit('hideToast', toastConfig);\n },\n };\n }\n if (params?.container?.showToast) {\n return params.container.showToast(toastConfig);\n }\n return { remove: () => {} };\n },\n });\n\n this.optimisticActions = new CollectionOptimisticActions<Tag, {}>({\n container: this.container,\n collection: this.collection,\n orderBy: ({ sort }) => [\n ...(sort || []),\n {\n fieldName: ({ createdDate }) => (createdDate ?? new Date()).valueOf(),\n order: 'asc',\n },\n ],\n });\n\n makeObservable(this, {\n init: action,\n createTag: action,\n updateTag: action,\n deleteTag: action,\n retry: action,\n });\n }\n\n init() {\n if (!this._isFqdnValid()) {\n return;\n }\n\n const { collection, optimisticActions } = this;\n\n const disposers = [collection.init(), optimisticActions.init()];\n\n this.initTask.runOnce(async () => {\n collection.initTask.runOnce();\n\n await collection.initTask.status.promise;\n });\n\n return () => {\n disposers.forEach((disposer) => disposer());\n };\n }\n\n retry() {\n this.collection.initTask.runOnce();\n }\n\n get items() {\n return this.collection.result.items;\n }\n\n get isError() {\n return this.initTask.status.isError;\n }\n\n get isLoading() {\n const { status } = this.collection.initTask;\n return status.isIdle || status.isLoading;\n }\n\n get isSuccessful() {\n const { status } = this.collection.initTask;\n return status.isSuccess;\n }\n\n get fqdnString() {\n return fqdnToString(this.fqdn);\n }\n\n getTagById(tagId: string) {\n return this.collection.result._keyedItemsMap?.get(tagId)?.item;\n }\n\n getTagNameById(tagId: string) {\n return this.getTagById(tagId)?.name;\n }\n\n private _isFqdnValid() {\n return this.fqdn.resource !== undefined;\n }\n\n private _optimisticActionBaseParams<T extends OptimisticActionBasis>(\n optimisticActionParams: T,\n {\n tagsBIReporter,\n actionName,\n origin,\n tagName,\n filteredListSize,\n isFromSearch = false,\n errorCode,\n }: {\n tagsBIReporter: TagsBIReporter;\n actionName: string;\n origin: string;\n tagName: string;\n filteredListSize: number;\n isFromSearch?: boolean;\n errorCode: WixPatternsErrorCode;\n },\n ) {\n const { onError, onTryAgain, onUndo, ...otherOptimisticActionParams } =\n optimisticActionParams;\n\n return {\n onError: (error: unknown) => {\n tagsBIReporter.onError(\n {\n tagName,\n actionName,\n origin,\n },\n error,\n );\n this.container.internalMonitor.reportError({\n error: new WixPatternsError({\n errorCode,\n originalException: error,\n }),\n category: 'Tags',\n });\n\n onError?.(error);\n },\n onTryAgain: () => {\n tagsBIReporter.onTryAgain({\n actionName,\n isFromSearch,\n filteredListSize,\n });\n onTryAgain?.();\n },\n onUndo: () => {\n tagsBIReporter.onUndo({ actionName });\n onUndo?.();\n },\n ...otherOptimisticActionParams,\n };\n }\n\n private hasReachedTagsLimit() {\n return this.collection.result.total >= MAX_TAGS;\n }\n\n private showTagsLimitErrorToast(visualType: TagErrorVisualType) {\n this.collection.showToast({\n message: getTagsReachedLimitErrorMessage({\n visualType,\n translate: this.container.translate,\n }),\n biName: 'cairo-max-tags-error',\n type: 'ERROR',\n });\n }\n\n async createTag({\n name,\n origin,\n tagSubOrigin,\n filteredListSize,\n id = uuid(),\n isFromSearch = false,\n onSuccess,\n optimisticActionParams = {},\n tagsBIReporter,\n visualType = 'toast',\n }: {\n name: string;\n origin: string;\n tagSubOrigin?: string;\n filteredListSize: number;\n id?: string;\n isFromSearch?: boolean;\n onSuccess?: (tag: Tag) => void | Promise<void>;\n optimisticActionParams?: Partial<CreateManyParams<Tag>>;\n tagsBIReporter: TagsBIReporter;\n visualType?: TagErrorVisualType;\n }) {\n const actionName = 'Add tag';\n\n tagsBIReporter.onAction({\n tagName: name,\n isFromSearch,\n actionName,\n origin,\n tagSubOrigin,\n });\n\n if (this.hasReachedTagsLimit()) {\n return this.showTagsLimitErrorToast(visualType);\n }\n\n const newTag = {\n id,\n name,\n fqdn: this.fqdnString,\n exposure: TagExposure.PRIVATE,\n createdDate: new Date(),\n };\n\n this.optimisticActions.createOne(newTag, {\n submit: async () => {\n const serverCreatedTag = await this.tagsService.createTag(\n {\n tag: newTag,\n },\n {\n visualType,\n },\n );\n\n await onSuccess?.(serverCreatedTag);\n\n return [serverCreatedTag];\n },\n ...this._optimisticActionBaseParams(optimisticActionParams, {\n tagsBIReporter,\n actionName,\n origin,\n filteredListSize,\n tagName: name,\n isFromSearch,\n errorCode: 'CreateTagFailed',\n }),\n });\n }\n\n async updateTag({\n tagToUpdate,\n previousName,\n origin,\n tagSubOrigin,\n filteredListSize,\n isFromSearch = false,\n optimisticActionParams = {},\n tagsBIReporter,\n }: {\n tagToUpdate: Tag;\n previousName: string;\n origin: string;\n tagSubOrigin?: string;\n filteredListSize: number;\n isFromSearch?: boolean;\n optimisticActionParams?: Partial<UpdateManyParams<Tag, {}>>;\n tagsBIReporter: TagsBIReporter;\n }) {\n const actionName = 'Rename tag';\n\n tagsBIReporter.onAction({\n actionName,\n previousName,\n tagName: tagToUpdate.name!,\n isFromSearch,\n origin,\n tagSubOrigin,\n });\n\n this.optimisticActions.updateOne(\n { ...tagToUpdate, revision: (+tagToUpdate.revision! + 1).toString() },\n {\n submit: async () => {\n return this.tagsService.updateTag({ tag: tagToUpdate });\n },\n ...this._optimisticActionBaseParams(optimisticActionParams, {\n tagsBIReporter,\n actionName,\n origin,\n filteredListSize,\n tagName: previousName,\n isFromSearch,\n errorCode: 'UpdateTagFailed',\n }),\n },\n );\n }\n\n async deleteTag({\n tagToDelete,\n origin,\n tagSubOrigin,\n filteredListSize,\n isFromSearch = true,\n optimisticActionParams = {},\n tagsBIReporter,\n }: {\n tagToDelete: Tag;\n origin: string;\n tagSubOrigin?: string;\n filteredListSize: number;\n isFromSearch?: boolean;\n optimisticActionParams?: Partial<DeleteManyParams<Tag, {}>>;\n tagsBIReporter: TagsBIReporter;\n }) {\n const tagName = tagToDelete.name!;\n const actionName = 'Delete tag';\n\n tagsBIReporter.onAction({\n actionName,\n tagName,\n isFromSearch,\n origin,\n tagSubOrigin,\n });\n\n await this.optimisticActions.deleteOne(tagToDelete, {\n submit: async () => {\n return this.tagsService.deleteTag({ tagId: tagToDelete.id! });\n },\n ...this._optimisticActionBaseParams(optimisticActionParams, {\n tagsBIReporter,\n actionName,\n origin,\n tagName,\n filteredListSize,\n isFromSearch,\n errorCode: 'RemovetagFailed',\n }),\n });\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_mobx","require","_types","_uuid","_events","_CollectionState","_CollectionOptimisticActions","_TaskState","_util","_services","_createTagErrors","_tagsService","TAG_MAX_LENGTH","exports","MAX_TAGS","TagsManagementState","constructor","params","_defineProperty2","default","TaskState","EventEmitter","container","fqdn","tagsService","TagsService","collection","CollectionState","events","queryName","fqdnString","join","fetchData","fetchedItems","listTags","exposure","TagExposure","PRIVATE","items","total","length","itemKey","id","itemName","name","filters","showToast","toastConfig","_params$container","overrideShowToast","emit","remove","optimisticActions","CollectionOptimisticActions","orderBy","sort","fieldName","createdDate","Date","valueOf","order","makeObservable","init","action","createTag","updateTag","deleteTag","retry","_isFqdnValid","disposers","initTask","runOnce","status","promise","forEach","disposer","result","isError","isLoading","isIdle","isSuccessful","isSuccess","fqdnToString","getTagById","tagId","_this$collection$resu","_keyedItemsMap","get","item","getTagNameById","_this$getTagById","resource","undefined","_optimisticActionBaseParams","optimisticActionParams","tagsBIReporter","actionName","origin","tagName","filteredListSize","isFromSearch","errorCode","onError","onTryAgain","onUndo","otherOptimisticActionParams","error","internalMonitor","reportError","WixPatternsError","originalException","category","hasReachedTagsLimit","showTagsLimitErrorToast","visualType","message","getTagsReachedLimitErrorMessage","translate","biName","type","tagSubOrigin","uuid","onSuccess","onAction","newTag","createOne","submit","serverCreatedTag","tag","createTagErrors","retryFn","tagToUpdate","previousName","updateOne","revision","toString","tagToDelete","deleteOne"],"sources":["../../../../src/state/TagsState/TagsManagementState.ts"],"sourcesContent":["import { action, makeObservable } from 'mobx';\nimport {\n Tag,\n TagExposure,\n} from '@wix/bex-utils/@wix/ambassador-os-tags-v1-tag/types';\nimport { TagsBIReporter } from './TagsBIReporter';\nimport { v4 as uuid } from 'uuid';\nimport { EventEmitter } from 'events';\nimport { WixPatternsContainer } from '../WixPatternsContainer';\nimport { Fqdn, ToastConfig } from '../../model';\nimport { CollectionState } from '../CollectionState';\nimport { CollectionOptimisticActions } from '../CollectionOptimisticActions';\nimport { TaskState } from '../TaskState';\nimport { TagErrorVisualType, TypedEmitter, fqdnToString } from '../../util';\nimport { WixPatternsError, WixPatternsErrorCode } from '../../services';\nimport {\n CreateManyParams,\n DeleteManyParams,\n OptimisticActionBasis,\n UpdateManyParams,\n} from '../OptimisticActions';\nimport {\n getTagsReachedLimitErrorMessage,\n createTagErrors,\n} from '../../services/tagsService/createTagErrors';\nimport { TagsService } from '../../services/tagsService';\n\nexport const TAG_MAX_LENGTH = 30;\nconst MAX_TAGS = 100;\n\nexport interface TagsManagementStateParams {\n readonly container: WixPatternsContainer;\n readonly fqdn: Fqdn;\n}\n\nexport class TagsManagementState {\n readonly collection: CollectionState<Tag>;\n readonly optimisticActions: CollectionOptimisticActions<Tag, {}>;\n readonly container;\n readonly fqdn;\n readonly initTask = new TaskState();\n readonly tagsService;\n readonly events = new EventEmitter() as TypedEmitter<{\n showToast: (toastConfig: ToastConfig) => unknown;\n hideToast: (toastConfig: ToastConfig) => unknown;\n }>;\n overrideShowToast = false;\n\n constructor(params: TagsManagementStateParams) {\n this.container = params.container;\n this.fqdn = params.fqdn;\n this.tagsService = new TagsService({\n container: this.container,\n });\n\n this.collection = new CollectionState<Tag>({\n ...params.container,\n events: {},\n queryName: [this.fqdnString, 'tags'].join('/'),\n fetchData: async () => {\n const fetchedItems = await this.tagsService.listTags({\n fqdn: this.fqdnString,\n exposure: TagExposure.PRIVATE,\n });\n\n return {\n items: fetchedItems,\n total: fetchedItems.length,\n };\n },\n itemKey: ({ id }) => id!,\n itemName: ({ name }) => name!,\n filters: {},\n showToast: (toastConfig: ToastConfig) => {\n if (this.overrideShowToast) {\n this.events.emit('showToast', toastConfig);\n return {\n remove: () => {\n this.events.emit('hideToast', toastConfig);\n },\n };\n }\n if (params?.container?.showToast) {\n return params.container.showToast(toastConfig);\n }\n return { remove: () => {} };\n },\n });\n\n this.optimisticActions = new CollectionOptimisticActions<Tag, {}>({\n container: this.container,\n collection: this.collection,\n orderBy: ({ sort }) => [\n ...(sort || []),\n {\n fieldName: ({ createdDate }) => (createdDate ?? new Date()).valueOf(),\n order: 'asc',\n },\n ],\n });\n\n makeObservable(this, {\n init: action,\n createTag: action,\n updateTag: action,\n deleteTag: action,\n retry: action,\n });\n }\n\n init() {\n if (!this._isFqdnValid()) {\n return;\n }\n\n const { collection, optimisticActions } = this;\n\n const disposers = [collection.init(), optimisticActions.init()];\n\n this.initTask.runOnce(async () => {\n collection.initTask.runOnce();\n\n await collection.initTask.status.promise;\n });\n\n return () => {\n disposers.forEach((disposer) => disposer());\n };\n }\n\n retry() {\n this.collection.initTask.runOnce();\n }\n\n get items() {\n return this.collection.result.items;\n }\n\n get isError() {\n return this.initTask.status.isError;\n }\n\n get isLoading() {\n const { status } = this.collection.initTask;\n return status.isIdle || status.isLoading;\n }\n\n get isSuccessful() {\n const { status } = this.collection.initTask;\n return status.isSuccess;\n }\n\n get fqdnString() {\n return fqdnToString(this.fqdn);\n }\n\n getTagById(tagId: string) {\n return this.collection.result._keyedItemsMap?.get(tagId)?.item;\n }\n\n getTagNameById(tagId: string) {\n return this.getTagById(tagId)?.name;\n }\n\n private _isFqdnValid() {\n return this.fqdn.resource !== undefined;\n }\n\n private _optimisticActionBaseParams<T extends OptimisticActionBasis>(\n optimisticActionParams: T,\n {\n tagsBIReporter,\n actionName,\n origin,\n tagName,\n filteredListSize,\n isFromSearch = false,\n errorCode,\n }: {\n tagsBIReporter: TagsBIReporter;\n actionName: string;\n origin: string;\n tagName: string;\n filteredListSize: number;\n isFromSearch?: boolean;\n errorCode: WixPatternsErrorCode;\n },\n ) {\n const { onError, onTryAgain, onUndo, ...otherOptimisticActionParams } =\n optimisticActionParams;\n\n return {\n onError: (error: unknown) => {\n tagsBIReporter.onError(\n {\n tagName,\n actionName,\n origin,\n },\n error,\n );\n this.container.internalMonitor.reportError({\n error: new WixPatternsError({\n errorCode,\n originalException: error,\n }),\n category: 'Tags',\n });\n\n onError?.(error);\n },\n onTryAgain: () => {\n tagsBIReporter.onTryAgain({\n actionName,\n isFromSearch,\n filteredListSize,\n });\n onTryAgain?.();\n },\n onUndo: () => {\n tagsBIReporter.onUndo({ actionName });\n onUndo?.();\n },\n ...otherOptimisticActionParams,\n };\n }\n\n private hasReachedTagsLimit() {\n return this.collection.result.total >= MAX_TAGS;\n }\n\n private showTagsLimitErrorToast(visualType: TagErrorVisualType) {\n this.collection.showToast({\n message: getTagsReachedLimitErrorMessage({\n visualType,\n translate: this.container.translate,\n }),\n biName: 'cairo-max-tags-error',\n type: 'ERROR',\n });\n }\n\n async createTag(params: {\n name: string;\n origin: string;\n tagSubOrigin?: string;\n filteredListSize: number;\n id?: string;\n isFromSearch?: boolean;\n onSuccess?: (tag: Tag) => void | Promise<void>;\n optimisticActionParams?: Partial<CreateManyParams<Tag>>;\n tagsBIReporter: TagsBIReporter;\n visualType?: TagErrorVisualType;\n }) {\n const {\n name,\n origin,\n tagSubOrigin,\n filteredListSize,\n id = uuid(),\n isFromSearch = false,\n onSuccess,\n optimisticActionParams = {},\n tagsBIReporter,\n visualType = 'toast',\n } = params;\n\n const actionName = 'Add tag';\n\n tagsBIReporter.onAction({\n tagName: name,\n isFromSearch,\n actionName,\n origin,\n tagSubOrigin,\n });\n\n if (this.hasReachedTagsLimit()) {\n return this.showTagsLimitErrorToast(visualType);\n }\n\n const newTag = {\n id,\n name,\n fqdn: this.fqdnString,\n exposure: TagExposure.PRIVATE,\n createdDate: new Date(),\n };\n\n this.optimisticActions.createOne(newTag, {\n submit: async () => {\n const serverCreatedTag = await this.tagsService.createTag(\n {\n tag: newTag,\n },\n createTagErrors({\n translate: this.container.translate,\n visualType,\n retryFn: () => this.createTag(params),\n }),\n );\n\n await onSuccess?.(serverCreatedTag);\n\n return [serverCreatedTag];\n },\n ...this._optimisticActionBaseParams(optimisticActionParams, {\n tagsBIReporter,\n actionName,\n origin,\n filteredListSize,\n tagName: name,\n isFromSearch,\n errorCode: 'CreateTagFailed',\n }),\n });\n }\n\n async updateTag({\n tagToUpdate,\n previousName,\n origin,\n tagSubOrigin,\n filteredListSize,\n isFromSearch = false,\n optimisticActionParams = {},\n tagsBIReporter,\n }: {\n tagToUpdate: Tag;\n previousName: string;\n origin: string;\n tagSubOrigin?: string;\n filteredListSize: number;\n isFromSearch?: boolean;\n optimisticActionParams?: Partial<UpdateManyParams<Tag, {}>>;\n tagsBIReporter: TagsBIReporter;\n }) {\n const actionName = 'Rename tag';\n\n tagsBIReporter.onAction({\n actionName,\n previousName,\n tagName: tagToUpdate.name!,\n isFromSearch,\n origin,\n tagSubOrigin,\n });\n\n this.optimisticActions.updateOne(\n { ...tagToUpdate, revision: (+tagToUpdate.revision! + 1).toString() },\n {\n submit: async () => {\n return this.tagsService.updateTag({ tag: tagToUpdate });\n },\n ...this._optimisticActionBaseParams(optimisticActionParams, {\n tagsBIReporter,\n actionName,\n origin,\n filteredListSize,\n tagName: previousName,\n isFromSearch,\n errorCode: 'UpdateTagFailed',\n }),\n },\n );\n }\n\n async deleteTag({\n tagToDelete,\n origin,\n tagSubOrigin,\n filteredListSize,\n isFromSearch = true,\n optimisticActionParams = {},\n tagsBIReporter,\n }: {\n tagToDelete: Tag;\n origin: string;\n tagSubOrigin?: string;\n filteredListSize: number;\n isFromSearch?: boolean;\n optimisticActionParams?: Partial<DeleteManyParams<Tag, {}>>;\n tagsBIReporter: TagsBIReporter;\n }) {\n const tagName = tagToDelete.name!;\n const actionName = 'Delete tag';\n\n tagsBIReporter.onAction({\n actionName,\n tagName,\n isFromSearch,\n origin,\n tagSubOrigin,\n });\n\n await this.optimisticActions.deleteOne(tagToDelete, {\n submit: async () => {\n return this.tagsService.deleteTag({ tagId: tagToDelete.id! });\n },\n ...this._optimisticActionBaseParams(optimisticActionParams, {\n tagsBIReporter,\n actionName,\n origin,\n tagName,\n filteredListSize,\n isFromSearch,\n errorCode: 'RemovetagFailed',\n }),\n });\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,10 +1,7 @@
1
1
  "use strict";
2
2
 
3
3
  exports.__esModule = true;
4
- exports.getCreateTagErrorConfig = getCreateTagErrorConfig;
5
4
  exports.getTranslatedErrorMessage = void 0;
6
- var _isHttpError = require("./isHttpError");
7
- const hideTryAgainButton = errorCode => errorCode === 'TAGS_REACHED_LIMIT';
8
5
  const getTranslatedErrorMessage = ({
9
6
  errorCode,
10
7
  visualType,
@@ -23,23 +20,4 @@ const getTranslatedErrorMessage = ({
23
20
  return container.translate(translationKey);
24
21
  };
25
22
  exports.getTranslatedErrorMessage = getTranslatedErrorMessage;
26
- function getCreateTagErrorConfig({
27
- container,
28
- error,
29
- visualType = 'toast'
30
- }) {
31
- var _error$response, _error$response2, _details$applicationE;
32
- const details = (0, _isHttpError.isHttpError)(error) && (0, _isHttpError.isErrorDetails)((_error$response = error.response) == null || (_error$response = _error$response.data) == null ? void 0 : _error$response.details) ? (_error$response2 = error.response) == null || (_error$response2 = _error$response2.data) == null ? void 0 : _error$response2.details : null;
33
- const errorCode = details == null || (_details$applicationE = details.applicationError) == null ? void 0 : _details$applicationE.code;
34
- return {
35
- message: getTranslatedErrorMessage({
36
- errorCode,
37
- visualType,
38
- container
39
- }),
40
- ...(hideTryAgainButton(errorCode) ? {
41
- action: undefined
42
- } : {})
43
- };
44
- }
45
23
  //# sourceMappingURL=tags.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_isHttpError","require","hideTryAgainButton","errorCode","getTranslatedErrorMessage","visualType","container","translationKey","translate","exports","getCreateTagErrorConfig","error","_error$response","_error$response2","_details$applicationE","details","isHttpError","isErrorDetails","response","data","applicationError","code","message","action","undefined"],"sources":["../../../src/util/tags.ts"],"sourcesContent":["import { ToastConfig } from '../model';\nimport { TranslationsKeys } from '../services';\nimport { WixPatternsContainer } from '../state';\nimport { isErrorDetails, isHttpError } from './isHttpError';\n\nexport type TagErrorVisualType = 'toast' | 'notification';\n\nexport type CreateTagErrorCodes =\n | 'FQDN_NOT_FOUND'\n | 'TAG_NAME_ALREADY_EXISTS'\n | 'TAGS_REACHED_LIMIT'\n | 'CREATE_ID_EXHAUSTED_RETRY_ATTEMPTS';\n\nconst hideTryAgainButton = (errorCode: CreateTagErrorCodes) =>\n errorCode === 'TAGS_REACHED_LIMIT';\n\nexport const getTranslatedErrorMessage = ({\n errorCode,\n visualType,\n container,\n}: {\n errorCode: CreateTagErrorCodes;\n visualType: TagErrorVisualType;\n container: WixPatternsContainer;\n}): string => {\n let translationKey: TranslationsKeys;\n\n switch (errorCode) {\n case 'TAGS_REACHED_LIMIT': {\n translationKey =\n visualType === 'toast'\n ? 'cairo.tags.popover.creationLimitReached.error'\n : 'cairo.tags.creationLimitReached.error';\n break;\n }\n default:\n translationKey =\n visualType === 'toast'\n ? 'cairo.tags.collectionPage.toast.create.error'\n : 'cairo.tags.manageTags.modal.toast.create.error';\n }\n\n return container.translate(translationKey);\n};\n\nexport function getCreateTagErrorConfig({\n container,\n error,\n visualType = 'toast',\n}: {\n container: WixPatternsContainer;\n error: unknown;\n visualType?: TagErrorVisualType;\n}): ToastConfig {\n const details =\n isHttpError(error) && isErrorDetails(error.response?.data?.details)\n ? error.response?.data?.details\n : null;\n\n const errorCode = details?.applicationError?.code as CreateTagErrorCodes;\n\n return {\n message: getTranslatedErrorMessage({\n errorCode,\n visualType,\n container,\n }),\n ...(hideTryAgainButton(errorCode) ? { action: undefined } : {}),\n };\n}\n"],"mappings":";;;;;AAGA,IAAAA,YAAA,GAAAC,OAAA;AAUA,MAAMC,kBAAkB,GAAIC,SAA8B,IACxDA,SAAS,KAAK,oBAAoB;AAE7B,MAAMC,yBAAyB,GAAGA,CAAC;EACxCD,SAAS;EACTE,UAAU;EACVC;AAKF,CAAC,KAAa;EACZ,IAAIC,cAAgC;EAEpC,QAAQJ,SAAS;IACf,KAAK,oBAAoB;MAAE;QACzBI,cAAc,GACZF,UAAU,KAAK,OAAO,GAClB,+CAA+C,GAC/C,uCAAuC;QAC7C;MACF;IACA;MACEE,cAAc,GACZF,UAAU,KAAK,OAAO,GAClB,8CAA8C,GAC9C,gDAAgD;EAC1D;EAEA,OAAOC,SAAS,CAACE,SAAS,CAACD,cAAc,CAAC;AAC5C,CAAC;AAACE,OAAA,CAAAL,yBAAA,GAAAA,yBAAA;AAEK,SAASM,uBAAuBA,CAAC;EACtCJ,SAAS;EACTK,KAAK;EACLN,UAAU,GAAG;AAKf,CAAC,EAAe;EAAA,IAAAO,eAAA,EAAAC,gBAAA,EAAAC,qBAAA;EACd,MAAMC,OAAO,GACX,IAAAC,wBAAW,EAACL,KAAK,CAAC,IAAI,IAAAM,2BAAc,GAAAL,eAAA,GAACD,KAAK,CAACO,QAAQ,cAAAN,eAAA,GAAdA,eAAA,CAAgBO,IAAI,qBAApBP,eAAA,CAAsBG,OAAO,CAAC,IAAAF,gBAAA,GAC/DF,KAAK,CAACO,QAAQ,cAAAL,gBAAA,GAAdA,gBAAA,CAAgBM,IAAI,qBAApBN,gBAAA,CAAsBE,OAAO,GAC7B,IAAI;EAEV,MAAMZ,SAAS,GAAGY,OAAO,aAAAD,qBAAA,GAAPC,OAAO,CAAEK,gBAAgB,qBAAzBN,qBAAA,CAA2BO,IAA2B;EAExE,OAAO;IACLC,OAAO,EAAElB,yBAAyB,CAAC;MACjCD,SAAS;MACTE,UAAU;MACVC;IACF,CAAC,CAAC;IACF,IAAIJ,kBAAkB,CAACC,SAAS,CAAC,GAAG;MAAEoB,MAAM,EAAEC;IAAU,CAAC,GAAG,CAAC,CAAC;EAChE,CAAC;AACH","ignoreList":[]}
1
+ {"version":3,"names":["getTranslatedErrorMessage","errorCode","visualType","container","translationKey","translate","exports"],"sources":["../../../src/util/tags.ts"],"sourcesContent":["import { TranslationsKeys } from '../services';\nimport { WixPatternsContainer } from '../state';\n\nexport type TagErrorVisualType = 'toast' | 'notification';\n\nexport type CreateTagErrorCodes =\n | 'FQDN_NOT_FOUND'\n | 'TAG_NAME_ALREADY_EXISTS'\n | 'TAGS_REACHED_LIMIT'\n | 'CREATE_ID_EXHAUSTED_RETRY_ATTEMPTS';\n\nexport const getTranslatedErrorMessage = ({\n errorCode,\n visualType,\n container,\n}: {\n errorCode: CreateTagErrorCodes;\n visualType: TagErrorVisualType;\n container: WixPatternsContainer;\n}): string => {\n let translationKey: TranslationsKeys;\n\n switch (errorCode) {\n case 'TAGS_REACHED_LIMIT': {\n translationKey =\n visualType === 'toast'\n ? 'cairo.tags.popover.creationLimitReached.error'\n : 'cairo.tags.creationLimitReached.error';\n break;\n }\n default:\n translationKey =\n visualType === 'toast'\n ? 'cairo.tags.collectionPage.toast.create.error'\n : 'cairo.tags.manageTags.modal.toast.create.error';\n }\n\n return container.translate(translationKey);\n};\n"],"mappings":";;;;AAWO,MAAMA,yBAAyB,GAAGA,CAAC;EACxCC,SAAS;EACTC,UAAU;EACVC;AAKF,CAAC,KAAa;EACZ,IAAIC,cAAgC;EAEpC,QAAQH,SAAS;IACf,KAAK,oBAAoB;MAAE;QACzBG,cAAc,GACZF,UAAU,KAAK,OAAO,GAClB,+CAA+C,GAC/C,uCAAuC;QAC7C;MACF;IACA;MACEE,cAAc,GACZF,UAAU,KAAK,OAAO,GAClB,8CAA8C,GAC9C,gDAAgD;EAC1D;EAEA,OAAOC,SAAS,CAACE,SAAS,CAACD,cAAc,CAAC;AAC5C,CAAC;AAACE,OAAA,CAAAN,yBAAA,GAAAA,yBAAA","ignoreList":[]}
@@ -463,6 +463,7 @@
463
463
  "cairo.customFields.addCustomField.dropdownList.emptyFieldName.error": "Zadejte možnost.",
464
464
  "cairo.customFields.addCustomField.modal.advancedSettings.externalApps": "Instalované aplikace",
465
465
  "cairo.export.successMessage": "Váš soubor se právě stahuje. Nefunguje to?",
466
+ "cairo.downloadable-url.error.generic": "There was an issue downloading the file.",
466
467
  "cairo.customFields.entityPage.subtitle": "Použijte vlastní pole k ukládání a shromažďování více informací.",
467
468
  "cairo.manageView.setAsDefault.success.toast": "Zobrazení „{viewName}“ bylo nastaveno jako výchozí.",
468
469
  "cairo.dropdownSearch.filters.emptyState": "Pro tento filtr nebyly nalezeny žádné položky.",
@@ -463,6 +463,7 @@
463
463
  "cairo.customFields.addCustomField.dropdownList.emptyFieldName.error": "Tilføj en mulighed.",
464
464
  "cairo.customFields.addCustomField.modal.advancedSettings.externalApps": "Installerede apps",
465
465
  "cairo.export.successMessage": "Din fil downloades nu. Virker det ikke?",
466
+ "cairo.downloadable-url.error.generic": "There was an issue downloading the file.",
466
467
  "cairo.customFields.entityPage.subtitle": "Brug tilpassede felter til at gemme og indsamle flere oplysninger.",
467
468
  "cairo.manageView.setAsDefault.success.toast": "\"{viewName}\" blev indstillet som standardvisning.",
468
469
  "cairo.dropdownSearch.filters.emptyState": "Ingen elementer blev fundet med dette filter.",
@@ -463,6 +463,7 @@
463
463
  "cairo.customFields.addCustomField.dropdownList.emptyFieldName.error": "Füge eine Option hinzu.",
464
464
  "cairo.customFields.addCustomField.modal.advancedSettings.externalApps": "Installierte Apps",
465
465
  "cairo.export.successMessage": "Deine Datei wird jetzt heruntergeladen. Funktioniert nicht?",
466
+ "cairo.downloadable-url.error.generic": "There was an issue downloading the file.",
466
467
  "cairo.customFields.entityPage.subtitle": "Verwende benutzerdefinierte Felder, um weitere Informationen zu speichern und zu erfassen.",
467
468
  "cairo.manageView.setAsDefault.success.toast": "„{viewName}“ wurde als deine Standardansicht festgelegt.",
468
469
  "cairo.dropdownSearch.filters.emptyState": "Es wurden keine Elemente mit diesem Filter gefunden.",
@@ -470,5 +470,6 @@
470
470
  "cairo.filtersPanel.numRange.minRange-from.placeholder": "Min.",
471
471
  "cairo.filtersPanel.numRange.maxRange-to.placeholder": "Max.",
472
472
  "cairo.filtersPanel.numRange.maxRange.consumer.error": "{maxAmount, plural, =1 {Value must be 1 or less.} other {Value must be # or less.}}",
473
- "errorHandler.common-error.networkError": "There was an issue connecting to the network. Check your connection and try again."
473
+ "errorHandler.common-error.networkError": "There was an issue connecting to the network. Check your connection and try again.",
474
+ "cairo.downloadable-url.error.generic": "There was an issue downloading the file."
474
475
  }
@@ -463,6 +463,7 @@
463
463
  "cairo.customFields.addCustomField.dropdownList.emptyFieldName.error": "Agrega una opción.",
464
464
  "cairo.customFields.addCustomField.modal.advancedSettings.externalApps": "Apps instaladas",
465
465
  "cairo.export.successMessage": "Se está descargando tu archivo. ¿No funciona?",
466
+ "cairo.downloadable-url.error.generic": "There was an issue downloading the file.",
466
467
  "cairo.customFields.entityPage.subtitle": "Usa campos personalizados para almacenar y recopilar más información.",
467
468
  "cairo.manageView.setAsDefault.success.toast": "\"{viewName}\" se configuró como tu vista predeterminada.",
468
469
  "cairo.dropdownSearch.filters.emptyState": "No se encontraron ítems para este filtro.",
@@ -463,6 +463,7 @@
463
463
  "cairo.customFields.addCustomField.dropdownList.emptyFieldName.error": "Ajoutez une option.",
464
464
  "cairo.customFields.addCustomField.modal.advancedSettings.externalApps": "Applis installées",
465
465
  "cairo.export.successMessage": "Votre fichier est en cours de téléchargement. Cela ne fonctionne pas ?",
466
+ "cairo.downloadable-url.error.generic": "There was an issue downloading the file.",
466
467
  "cairo.customFields.entityPage.subtitle": "Utilisez des champs personnalisés pour stocker et collecter plus d'informations.",
467
468
  "cairo.manageView.setAsDefault.success.toast": "« {viewName} » a été définie comme votre vue par défaut.",
468
469
  "cairo.dropdownSearch.filters.emptyState": "Aucun élément trouvé pour ce filtre.",
@@ -463,6 +463,7 @@
463
463
  "cairo.customFields.addCustomField.dropdownList.emptyFieldName.error": "एक विकल्प जोड़ें।",
464
464
  "cairo.customFields.addCustomField.modal.advancedSettings.externalApps": "इनस्टॉल की गई ऐप",
465
465
  "cairo.export.successMessage": "आपकी फाइल अब डाउनलोड हो रही है। क्या काम नहीं कर रहा?",
466
+ "cairo.downloadable-url.error.generic": "There was an issue downloading the file.",
466
467
  "cairo.customFields.entityPage.subtitle": "अधिक जानकारी संग्रहीत करने और एकत्र करने के लिए कस्टम फ़ील्ड का उपयोग करें।",
467
468
  "cairo.manageView.setAsDefault.success.toast": "\"{viewName}\" को आपके डिफ़ॉल्ट दृश्य के रूप में सेट किया गया था।",
468
469
  "cairo.dropdownSearch.filters.emptyState": "इस फ़िल्टर के लिए कोई आइटम नहीं मिली।",
@@ -463,6 +463,7 @@
463
463
  "cairo.customFields.addCustomField.dropdownList.emptyFieldName.error": "Tambahkan opsi.",
464
464
  "cairo.customFields.addCustomField.modal.advancedSettings.externalApps": "Aplikasi Terinstal",
465
465
  "cairo.export.successMessage": "File Anda sedang diunduh. Tidak berfungsi?",
466
+ "cairo.downloadable-url.error.generic": "There was an issue downloading the file.",
466
467
  "cairo.customFields.entityPage.subtitle": "Gunakan kolom kustom untuk menyimpan dan mengumpulkan lebih banyak informasi.",
467
468
  "cairo.manageView.setAsDefault.success.toast": "\"{viewName}\" diatur sebagai tampilan default Anda.",
468
469
  "cairo.dropdownSearch.filters.emptyState": "Tidak ada item yang ditemukan untuk filter ini.",
@@ -463,6 +463,7 @@
463
463
  "cairo.customFields.addCustomField.dropdownList.emptyFieldName.error": "Aggiungi un'opzione.",
464
464
  "cairo.customFields.addCustomField.modal.advancedSettings.externalApps": "App installate",
465
465
  "cairo.export.successMessage": "Download del file in corso. Non funziona?",
466
+ "cairo.downloadable-url.error.generic": "There was an issue downloading the file.",
466
467
  "cairo.customFields.entityPage.subtitle": "Usa i campi personalizzati per memorizzare e raccogliere più informazioni.",
467
468
  "cairo.manageView.setAsDefault.success.toast": "\"{viewName}\" è stata impostata come vista predefinita.",
468
469
  "cairo.dropdownSearch.filters.emptyState": "Nessun elemento trovato con questo filtro.",
@@ -463,6 +463,7 @@
463
463
  "cairo.customFields.addCustomField.dropdownList.emptyFieldName.error": "オプションを追加してください。",
464
464
  "cairo.customFields.addCustomField.modal.advancedSettings.externalApps": "追加済みアプリ",
465
465
  "cairo.export.successMessage": "現在ファイルのダウンロード中です。問題がある場合は",
466
+ "cairo.downloadable-url.error.generic": "There was an issue downloading the file.",
466
467
  "cairo.customFields.entityPage.subtitle": "カスタム項目を使用してより多くの情報を収集、保存します。",
467
468
  "cairo.manageView.setAsDefault.success.toast": "「{viewName}」がデフォルトビューとして設定されました。",
468
469
  "cairo.dropdownSearch.filters.emptyState": "このフィルターのアイテムはみつかりませんでした。",
@@ -463,6 +463,7 @@
463
463
  "cairo.customFields.addCustomField.dropdownList.emptyFieldName.error": "옵션을 추가하세요.",
464
464
  "cairo.customFields.addCustomField.modal.advancedSettings.externalApps": "사용 중인 앱",
465
465
  "cairo.export.successMessage": "파일을 다운로드하는 중입니다. 파일 다운로드에 문제가 있으신가요?",
466
+ "cairo.downloadable-url.error.generic": "There was an issue downloading the file.",
466
467
  "cairo.customFields.entityPage.subtitle": "더 많은 정보를 저장하고 수집하려면 사용자 지정 입력란을 사용하세요.",
467
468
  "cairo.manageView.setAsDefault.success.toast": "\"{viewName}\" 보기가 기본 보기로 설정되었습니다.",
468
469
  "cairo.dropdownSearch.filters.emptyState": "필터에 해당하는 아이템이 없습니다.",
@@ -463,6 +463,7 @@
463
463
  "cairo.customFields.addCustomField.dropdownList.emptyFieldName.error": "Voeg een optie toe.",
464
464
  "cairo.customFields.addCustomField.modal.advancedSettings.externalApps": "Geïnstalleerde apps",
465
465
  "cairo.export.successMessage": "Je bestand wordt nu gedownload. Is het mislukt?",
466
+ "cairo.downloadable-url.error.generic": "There was an issue downloading the file.",
466
467
  "cairo.customFields.entityPage.subtitle": "Gebruik aangepaste velden om meer informatie te verzamelen en op te slaan.",
467
468
  "cairo.manageView.setAsDefault.success.toast": "\"{viewName}\" is ingesteld als je standaardweergave.",
468
469
  "cairo.dropdownSearch.filters.emptyState": "Geen items gevonden voor dit filter.",
@@ -463,6 +463,7 @@
463
463
  "cairo.customFields.addCustomField.dropdownList.emptyFieldName.error": "Legg til et alternativ.",
464
464
  "cairo.customFields.addCustomField.modal.advancedSettings.externalApps": "Installerte apper",
465
465
  "cairo.export.successMessage": "Filen din blir nå lastet ned. Fungerer det ikke?",
466
+ "cairo.downloadable-url.error.generic": "There was an issue downloading the file.",
466
467
  "cairo.customFields.entityPage.subtitle": "Bruk egendefinerte felt for å lagre og samle inn mer informasjon.",
467
468
  "cairo.manageView.setAsDefault.success.toast": "«{viewName}» ble angitt som standardvisning.",
468
469
  "cairo.dropdownSearch.filters.emptyState": "Ingen elementer funnet for dette filteret.",
@@ -463,6 +463,7 @@
463
463
  "cairo.customFields.addCustomField.dropdownList.emptyFieldName.error": "Dodaj opcję.",
464
464
  "cairo.customFields.addCustomField.modal.advancedSettings.externalApps": "Zainst. aplikacje",
465
465
  "cairo.export.successMessage": "Pobieranie wkrótce zostanie rozpoczęte. Nie rozpoczęło się?",
466
+ "cairo.downloadable-url.error.generic": "There was an issue downloading the file.",
466
467
  "cairo.customFields.entityPage.subtitle": "Użyj pól niestandardowych, aby przechowywać i zbierać więcej informacji.",
467
468
  "cairo.manageView.setAsDefault.success.toast": "Widok „{viewName}” został ustawiony jako domyślny.",
468
469
  "cairo.dropdownSearch.filters.emptyState": "Nie znaleziono elementów dla tego filtra.",
@@ -463,6 +463,7 @@
463
463
  "cairo.customFields.addCustomField.dropdownList.emptyFieldName.error": "Adicione uma opção.",
464
464
  "cairo.customFields.addCustomField.modal.advancedSettings.externalApps": "Aplicativos instalados",
465
465
  "cairo.export.successMessage": "Fazendo download do seu arquivo... Não está funcionando?",
466
+ "cairo.downloadable-url.error.generic": "There was an issue downloading the file.",
466
467
  "cairo.customFields.entityPage.subtitle": "Use campos personalizados para coletar e armazenar mais informações.",
467
468
  "cairo.manageView.setAsDefault.success.toast": "A visualização \"{viewName}\" foi definida como padrão.",
468
469
  "cairo.dropdownSearch.filters.emptyState": "Nenhum item foi encontrado para este filtro.",
@@ -463,6 +463,7 @@
463
463
  "cairo.customFields.addCustomField.dropdownList.emptyFieldName.error": "Добавьте вариант.",
464
464
  "cairo.customFields.addCustomField.modal.advancedSettings.externalApps": "Приложения сайта",
465
465
  "cairo.export.successMessage": "Файл скачивается. Ничего не происходит?",
466
+ "cairo.downloadable-url.error.generic": "There was an issue downloading the file.",
466
467
  "cairo.customFields.entityPage.subtitle": "Используйте настраиваемые поля для сбора и хранения дополнительной информации.",
467
468
  "cairo.manageView.setAsDefault.success.toast": "Вид «{viewName}» установлен как вид по умолчанию.",
468
469
  "cairo.dropdownSearch.filters.emptyState": "Для этого фильтра ничего не найдено.",
@@ -463,6 +463,7 @@
463
463
  "cairo.customFields.addCustomField.dropdownList.emptyFieldName.error": "Lägg till ett alternativ.",
464
464
  "cairo.customFields.addCustomField.modal.advancedSettings.externalApps": "Installerade appar",
465
465
  "cairo.export.successMessage": "Din fil håller nu på att laddas ner. Funkar det inte?",
466
+ "cairo.downloadable-url.error.generic": "There was an issue downloading the file.",
466
467
  "cairo.customFields.entityPage.subtitle": "Använd anpassade fält för att lagra och samla in mer information.",
467
468
  "cairo.manageView.setAsDefault.success.toast": "\"{viewName}\" har ställts in som din standardvy.",
468
469
  "cairo.dropdownSearch.filters.emptyState": "Inga objekt hittades för filtret.",
@@ -463,6 +463,7 @@
463
463
  "cairo.customFields.addCustomField.dropdownList.emptyFieldName.error": "เพิ่มตัวเลือก",
464
464
  "cairo.customFields.addCustomField.modal.advancedSettings.externalApps": "แอปที่ติดตั้งแล้ว",
465
465
  "cairo.export.successMessage": "กำลังดาวน์โหลดไฟล์ของคุณ หากระบบไม่ทำงาน",
466
+ "cairo.downloadable-url.error.generic": "There was an issue downloading the file.",
466
467
  "cairo.customFields.entityPage.subtitle": "ใช้ช่องข้อมูลที่กำหนดเองเพื่อจัดเก็บและรวบรวมข้อมูลเพิ่มเติม",
467
468
  "cairo.manageView.setAsDefault.success.toast": "กำหนดให้ \"{viewName}\" เป็นมุมมองตั้งต้นของคุณแล้ว",
468
469
  "cairo.dropdownSearch.filters.emptyState": "ไม่พบข้อมูลตามตัวกรองนี้",
@@ -463,6 +463,7 @@
463
463
  "cairo.customFields.addCustomField.dropdownList.emptyFieldName.error": "Seçenek ekleyin.",
464
464
  "cairo.customFields.addCustomField.modal.advancedSettings.externalApps": "Yüklü uygulamalar",
465
465
  "cairo.export.successMessage": "Dosyanız şu anda indiriliyor. İndirme başlamadı mı?",
466
+ "cairo.downloadable-url.error.generic": "There was an issue downloading the file.",
466
467
  "cairo.customFields.entityPage.subtitle": "Daha fazla bilgi toplamak ve depolamak için özel alanları kullanın.",
467
468
  "cairo.manageView.setAsDefault.success.toast": "\"{viewName}\" varsayılan görünüm olarak ayarlandı.",
468
469
  "cairo.dropdownSearch.filters.emptyState": "Bu filtre için öge bulunamadı.",
@@ -463,6 +463,7 @@
463
463
  "cairo.customFields.addCustomField.dropdownList.emptyFieldName.error": "Додайте варіант.",
464
464
  "cairo.customFields.addCustomField.modal.advancedSettings.externalApps": "Установлені додатки",
465
465
  "cairo.export.successMessage": "Ваш файл завантажується. Не працює?",
466
+ "cairo.downloadable-url.error.generic": "There was an issue downloading the file.",
466
467
  "cairo.customFields.entityPage.subtitle": "Використовуйте власні поля, щоб зберігати й збирати додаткову інформацію.",
467
468
  "cairo.manageView.setAsDefault.success.toast": "«{viewName}» встановлено як ваш стандартний перегляд.",
468
469
  "cairo.dropdownSearch.filters.emptyState": "За цим фільтром не знайдено елементів.",