@wix/bex-core 2.68.0 → 2.70.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 (97) hide show
  1. package/dist/cjs/assets/locale/messages_cs.json +15 -0
  2. package/dist/cjs/assets/locale/messages_da.json +15 -0
  3. package/dist/cjs/assets/locale/messages_de.json +15 -0
  4. package/dist/cjs/assets/locale/messages_en.json +16 -1
  5. package/dist/cjs/assets/locale/messages_es.json +15 -0
  6. package/dist/cjs/assets/locale/messages_fr.json +15 -0
  7. package/dist/cjs/assets/locale/messages_hi.json +15 -0
  8. package/dist/cjs/assets/locale/messages_id.json +15 -0
  9. package/dist/cjs/assets/locale/messages_it.json +15 -0
  10. package/dist/cjs/assets/locale/messages_ja.json +15 -0
  11. package/dist/cjs/assets/locale/messages_ko.json +17 -2
  12. package/dist/cjs/assets/locale/messages_nl.json +15 -0
  13. package/dist/cjs/assets/locale/messages_no.json +15 -0
  14. package/dist/cjs/assets/locale/messages_pl.json +15 -0
  15. package/dist/cjs/assets/locale/messages_pt.json +15 -0
  16. package/dist/cjs/assets/locale/messages_ru.json +15 -0
  17. package/dist/cjs/assets/locale/messages_sv.json +15 -0
  18. package/dist/cjs/assets/locale/messages_th.json +15 -0
  19. package/dist/cjs/assets/locale/messages_tr.json +15 -0
  20. package/dist/cjs/assets/locale/messages_uk.json +15 -0
  21. package/dist/cjs/assets/locale/messages_vi.json +15 -0
  22. package/dist/cjs/assets/locale/messages_zh.json +15 -0
  23. package/dist/cjs/hooks/collectionConfig.js.map +1 -1
  24. package/dist/cjs/services/dataExtensionService.js.map +1 -1
  25. package/dist/cjs/services/translations.js.map +1 -1
  26. package/dist/cjs/state/DataExtensionState.js +19 -11
  27. package/dist/cjs/state/DataExtensionState.js.map +1 -1
  28. package/dist/cjs/state/FormPageState.js.map +1 -1
  29. package/dist/cjs/state/QueryResultState.js.map +1 -1
  30. package/dist/cjs/state/TagsState/TagsAssignmentState.js.map +1 -1
  31. package/dist/cjs/state/TagsState/TagsFormState.js.map +1 -1
  32. package/dist/cjs/state/TagsState/TagsManagementState.js.map +1 -1
  33. package/dist/cjs/state/WidgetsFormState.js.map +1 -1
  34. package/dist/cjs/testkit/ProductsCollectionState.driver.js +1 -0
  35. package/dist/cjs/testkit/ProductsCollectionState.driver.js.map +1 -1
  36. package/dist/cjs/testkit/createFoldersBackend.js.map +1 -1
  37. package/dist/cjs/testkit/product.js +2 -0
  38. package/dist/cjs/testkit/product.js.map +1 -1
  39. package/dist/esm/assets/locale/messages_cs.json +15 -0
  40. package/dist/esm/assets/locale/messages_da.json +15 -0
  41. package/dist/esm/assets/locale/messages_de.json +15 -0
  42. package/dist/esm/assets/locale/messages_en.json +16 -1
  43. package/dist/esm/assets/locale/messages_es.json +15 -0
  44. package/dist/esm/assets/locale/messages_fr.json +15 -0
  45. package/dist/esm/assets/locale/messages_hi.json +15 -0
  46. package/dist/esm/assets/locale/messages_id.json +15 -0
  47. package/dist/esm/assets/locale/messages_it.json +15 -0
  48. package/dist/esm/assets/locale/messages_ja.json +15 -0
  49. package/dist/esm/assets/locale/messages_ko.json +17 -2
  50. package/dist/esm/assets/locale/messages_nl.json +15 -0
  51. package/dist/esm/assets/locale/messages_no.json +15 -0
  52. package/dist/esm/assets/locale/messages_pl.json +15 -0
  53. package/dist/esm/assets/locale/messages_pt.json +15 -0
  54. package/dist/esm/assets/locale/messages_ru.json +15 -0
  55. package/dist/esm/assets/locale/messages_sv.json +15 -0
  56. package/dist/esm/assets/locale/messages_th.json +15 -0
  57. package/dist/esm/assets/locale/messages_tr.json +15 -0
  58. package/dist/esm/assets/locale/messages_uk.json +15 -0
  59. package/dist/esm/assets/locale/messages_vi.json +15 -0
  60. package/dist/esm/assets/locale/messages_zh.json +15 -0
  61. package/dist/esm/services/dataExtensionService.js.map +1 -1
  62. package/dist/esm/state/DataExtensionState.js +16 -5
  63. package/dist/esm/state/DataExtensionState.js.map +1 -1
  64. package/dist/esm/state/FormPageState.js.map +1 -1
  65. package/dist/esm/state/QueryResultState.js +1 -3
  66. package/dist/esm/state/QueryResultState.js.map +1 -1
  67. package/dist/esm/state/TagsState/TagsAssignmentState.js +1 -1
  68. package/dist/esm/state/TagsState/TagsAssignmentState.js.map +1 -1
  69. package/dist/esm/state/TagsState/TagsFormState.js +2 -2
  70. package/dist/esm/state/TagsState/TagsFormState.js.map +1 -1
  71. package/dist/esm/state/TagsState/TagsManagementState.js +1 -1
  72. package/dist/esm/state/TagsState/TagsManagementState.js.map +1 -1
  73. package/dist/esm/state/WidgetsFormState.js.map +1 -1
  74. package/dist/esm/testkit/ProductsCollectionState.driver.js +1 -0
  75. package/dist/esm/testkit/ProductsCollectionState.driver.js.map +1 -1
  76. package/dist/esm/testkit/createFoldersBackend.js +1 -1
  77. package/dist/esm/testkit/createFoldersBackend.js.map +1 -1
  78. package/dist/types/hooks/collectionConfig.d.ts +11 -1
  79. package/dist/types/hooks/collectionConfig.d.ts.map +1 -1
  80. package/dist/types/services/dataExtensionService.d.ts +2 -3
  81. package/dist/types/services/dataExtensionService.d.ts.map +1 -1
  82. package/dist/types/services/translations.d.ts +4 -1
  83. package/dist/types/services/translations.d.ts.map +1 -1
  84. package/dist/types/state/DataExtensionState.d.ts +2 -1
  85. package/dist/types/state/DataExtensionState.d.ts.map +1 -1
  86. package/dist/types/state/FormPageState.d.ts.map +1 -1
  87. package/dist/types/state/QueryResultState.d.ts.map +1 -1
  88. package/dist/types/state/TagsState/TagsAssignmentState.d.ts.map +1 -1
  89. package/dist/types/state/TagsState/TagsFormState.d.ts +2 -2
  90. package/dist/types/state/TagsState/TagsFormState.d.ts.map +1 -1
  91. package/dist/types/state/TagsState/TagsManagementState.d.ts.map +1 -1
  92. package/dist/types/state/WidgetsFormState.d.ts.map +1 -1
  93. package/dist/types/testkit/ProductsCollectionState.driver.d.ts.map +1 -1
  94. package/dist/types/testkit/createFoldersBackend.d.ts.map +1 -1
  95. package/dist/types/testkit/product.d.ts +2 -0
  96. package/dist/types/testkit/product.d.ts.map +1 -1
  97. package/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"names":["_model","require","_mobx","_flatMap","_interopRequireDefault","QueryResultState","pages","_pagesAtom","reportObserved","_pages","processed","constructor","params","_defineProperty2","default","createAtom","unprocessed","Map","queryStatus","idle","error","isFetching","action","reportChanged","itemKey","originQuery","fetchTotal","makeObservable","items","computed","keepAlive","keyedItems","size","itemsKeys","fetchedAll","isEmptyAndNotFetching","asComputed","total","hasAvailableItems","_totals","observable","ref","_supportTotal","setTotals","available","status","changeItems","totalStatus","slice","init","_this$fetchTotal","disposers","forEach","disposer","errorStatus","isError","currentIndex","flatMap","page","pageIndex","map","item","indexWithinPage","key","id","index","isSuccess","length","isEmpty","supportTotal","isLoading","get","_keyedItemsMap","has","createRollbackFn","updates","newItem","prevItem","keyedItem","newItems","find","processedPage","itemIndex","findIndex","push","rollback","undefined","addItems","calcKeyedItemsMap","clear","set","setNewPages","addPages","morePages","totals","setSupportTotal","setPages","start","end","hasNonPersistentActiveFilters","exports"],"sources":["../../../src/state/QueryResultState.ts"],"sourcesContent":["import {\n ComputedQueryFull,\n DataResultKeyed,\n FiltersMap,\n KeyedItem,\n QueryResult,\n QueryResultStatus,\n queryStatus,\n} from '../model';\nimport { action, computed, createAtom, makeObservable, observable } from 'mobx';\nimport flatMap from 'lodash/flatMap';\nimport { FetchTotalState } from './FetchTotalState';\n\ninterface ProcessedResult<T> {\n processed: T;\n unprocessed: T;\n}\n\ntype Pages<T> = ProcessedResult<T[][]>;\ntype Totals = ProcessedResult<number>;\n\nexport interface QueryResultStateParams<T, F extends FiltersMap> {\n itemKey: (item: T) => string;\n originQuery: ComputedQueryFull<F>;\n fetchTotal?: FetchTotalState<T, F>;\n}\n\nexport class QueryResultState<T, F extends FiltersMap>\n implements QueryResult<T>\n{\n readonly itemKey: (item: T) => string;\n\n readonly _pagesAtom = createAtom('QueryResultState.pages');\n _pages: Pages<T> = { processed: [], unprocessed: [] };\n _totals: Totals = { processed: 0, unprocessed: 0 };\n _supportTotal: boolean = false;\n readonly _keyedItemsMap: Map<string, KeyedItem<T>> = new Map();\n readonly fetchTotal?: FetchTotalState<T, F>;\n\n get pages() {\n this._pagesAtom.reportObserved();\n return this._pages.processed;\n }\n\n available: number | null = null;\n status: QueryResultStatus<DataResultKeyed<T>, unknown> = {\n ...queryStatus.idle,\n error: null,\n isFetching: false,\n };\n originQuery: ComputedQueryFull<F>;\n\n constructor(params: QueryResultStateParams<T, F>) {\n this.itemKey = params.itemKey;\n this.originQuery = params.originQuery;\n this.fetchTotal = params.fetchTotal;\n\n makeObservable(this, {\n items: computed({\n keepAlive: true,\n }),\n keyedItems: computed({\n keepAlive: true,\n }),\n pages: computed,\n size: computed,\n itemsKeys: computed,\n fetchedAll: computed,\n isFetching: computed,\n isEmptyAndNotFetching: computed,\n asComputed: computed,\n total: computed,\n\n hasAvailableItems: computed,\n _totals: observable.ref,\n _supportTotal: observable.ref,\n setTotals: action,\n available: observable.ref,\n status: observable.ref,\n originQuery: observable.ref,\n changeItems: action,\n totalStatus: computed,\n slice: action,\n });\n }\n\n init() {\n const disposers = [\n this.fetchTotal?.init(),\n ];\n\n return () => {\n disposers.forEach((disposer) => disposer?.());\n };\n }\n\n get errorStatus() {\n const { status } = this;\n return status.isError ? status : null;\n }\n\n private setNewPages = action((pages: Pages<T>) => {\n this._pages = pages;\n this._pagesAtom.reportChanged();\n });\n\n get keyedItems(): KeyedItem<T>[] {\n this._pagesAtom.reportObserved();\n const { pages, itemKey } = this;\n let currentIndex = 0;\n return flatMap(pages, (page, pageIndex) => {\n return page.map((item, indexWithinPage) => {\n const key = itemKey(item);\n return {\n key,\n id: key,\n item,\n index: currentIndex++,\n pageIndex,\n indexWithinPage,\n };\n });\n });\n }\n\n get itemsKeys() {\n return this.keyedItems.map(({ key }) => key);\n }\n\n get isEmptyAndNotFetching() {\n const { status, keyedItems } = this;\n return status.isSuccess && !status.isFetching && !keyedItems.length;\n }\n\n get isEmpty() {\n const { keyedItems } = this;\n return keyedItems.length === 0;\n }\n\n get items(): T[] {\n this._pagesAtom.reportObserved();\n const { pages } = this;\n return flatMap(pages);\n }\n\n get total() {\n return this.fetchTotal ? this.fetchTotal.total : this._totals.processed;\n }\n\n get totalStatus() {\n return this.fetchTotal ? this.fetchTotal.status : this.status.status;\n }\n\n get supportTotal() {\n return !!this.fetchTotal || this._supportTotal;\n }\n\n get fetchedAll() {\n const { status, items, total } = this;\n return !status.isLoading && total <= items.length;\n }\n\n get isFetching() {\n return this.status.isFetching;\n }\n\n get(key: string) {\n this._pagesAtom.reportObserved();\n return this._keyedItemsMap.get(key);\n }\n\n has(key: string) {\n return this._keyedItemsMap.has(key);\n }\n\n private createRollbackFn(updates: { prevItem: T; newItem: T }[]) {\n return () => {\n const { itemKey, _keyedItemsMap, pages } = this;\n for (const { newItem, prevItem } of updates) {\n const key = itemKey(newItem);\n const keyedItem = _keyedItemsMap.get(key);\n // the current item is still the one that was recently updated\n if (keyedItem != null) {\n const { pageIndex, indexWithinPage } = keyedItem;\n const page = pages[pageIndex];\n if (page[indexWithinPage] === newItem) {\n this.changeItems([prevItem]);\n return true;\n }\n }\n }\n\n return false;\n };\n }\n\n changeItems(newItems: T[]) {\n const { itemKey, _pages, _pagesAtom, keyedItems } = this;\n const updates: { prevItem: T; newItem: T }[] = [];\n for (const newItem of newItems) {\n const key = itemKey(newItem);\n const keyedItem = keyedItems.find((item) => item.key === key);\n if (keyedItem != null) {\n const { pageIndex, indexWithinPage } = keyedItem;\n const processedPage = _pages.processed[pageIndex];\n // this mutates react-query cache since `page` is the same reference of the cached data\n // this behavior is intentional because the strategy is to assume the server will be update correctly in the next invalidation\n // until then, we simulate locally (cache) what we expect the server state eventually to be\n const prevItem = processedPage[indexWithinPage];\n processedPage[indexWithinPage] = newItem;\n\n _pages.unprocessed.forEach((page) => {\n const itemIndex = page.findIndex((item) => itemKey(item) === key);\n if (itemIndex !== -1) {\n page[itemIndex] = newItem;\n }\n });\n\n updates.push({ prevItem, newItem });\n }\n }\n\n if (updates.length) {\n _pagesAtom.reportChanged();\n\n return {\n rollback: this.createRollbackFn(updates),\n };\n }\n\n return undefined;\n }\n\n addItems(newItems: T[]) {\n const { _pages, _pagesAtom } = this;\n _pages.processed = [newItems, ..._pages.processed];\n _pages.unprocessed = [newItems, ..._pages.unprocessed];\n _pagesAtom.reportChanged();\n\n return {\n rollback: () => {\n _pages.processed = _pages.processed.slice(1);\n _pages.unprocessed = _pages.unprocessed.slice(1);\n _pagesAtom.reportChanged();\n },\n };\n }\n\n private calcKeyedItemsMap() {\n const { keyedItems, _keyedItemsMap } = this;\n _keyedItemsMap.clear();\n for (const keyedItem of keyedItems) {\n _keyedItemsMap.set(keyedItem.key, keyedItem);\n }\n }\n\n clear() {\n this.setNewPages({ processed: [], unprocessed: [] });\n this._keyedItemsMap.clear();\n }\n\n addPages(morePages: Pages<T>) {\n const { _pages } = this;\n this.setNewPages({\n unprocessed: [..._pages.unprocessed, ...morePages.unprocessed],\n processed: [..._pages.processed, ...morePages.processed],\n });\n this.calcKeyedItemsMap();\n }\n\n setTotals(totals: Totals) {\n this._totals = totals;\n }\n\n setSupportTotal(supportTotal: boolean) {\n this._supportTotal = supportTotal;\n }\n\n setPages(pages: Pages<T>) {\n this.setNewPages(pages);\n this.calcKeyedItemsMap();\n }\n\n slice(start?: number, end?: number) {\n const { _pages } = this;\n this.setNewPages({\n unprocessed: _pages.unprocessed.slice(start, end),\n processed: _pages.processed.slice(start, end),\n });\n }\n\n get hasAvailableItems() {\n const {\n originQuery: { hasNonPersistentActiveFilters },\n available,\n total,\n size,\n } = this;\n // if `available` info is missing, must assume that there are available items if non persistent filters are active\n return available != null\n ? available > 0\n : hasNonPersistentActiveFilters || total > 0 || size > 0;\n }\n\n get asComputed() {\n const { total, available } = this;\n return {\n total,\n available: available ?? 0,\n };\n }\n\n get size() {\n return this.items.length;\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_model","require","_mobx","_flatMap","_interopRequireDefault","QueryResultState","pages","_pagesAtom","reportObserved","_pages","processed","constructor","params","_defineProperty2","default","createAtom","unprocessed","Map","queryStatus","idle","error","isFetching","action","reportChanged","itemKey","originQuery","fetchTotal","makeObservable","items","computed","keepAlive","keyedItems","size","itemsKeys","fetchedAll","isEmptyAndNotFetching","asComputed","total","hasAvailableItems","_totals","observable","ref","_supportTotal","setTotals","available","status","changeItems","totalStatus","slice","init","_this$fetchTotal","disposers","forEach","disposer","errorStatus","isError","currentIndex","flatMap","page","pageIndex","map","item","indexWithinPage","key","id","index","isSuccess","length","isEmpty","supportTotal","isLoading","get","_keyedItemsMap","has","createRollbackFn","updates","newItem","prevItem","keyedItem","newItems","find","processedPage","itemIndex","findIndex","push","rollback","undefined","addItems","calcKeyedItemsMap","clear","set","setNewPages","addPages","morePages","totals","setSupportTotal","setPages","start","end","hasNonPersistentActiveFilters","exports"],"sources":["../../../src/state/QueryResultState.ts"],"sourcesContent":["import {\n ComputedQueryFull,\n DataResultKeyed,\n FiltersMap,\n KeyedItem,\n QueryResult,\n QueryResultStatus,\n queryStatus,\n} from '../model';\nimport { action, computed, createAtom, makeObservable, observable } from 'mobx';\nimport flatMap from 'lodash/flatMap';\nimport { FetchTotalState } from './FetchTotalState';\n\ninterface ProcessedResult<T> {\n processed: T;\n unprocessed: T;\n}\n\ntype Pages<T> = ProcessedResult<T[][]>;\ntype Totals = ProcessedResult<number>;\n\nexport interface QueryResultStateParams<T, F extends FiltersMap> {\n itemKey: (item: T) => string;\n originQuery: ComputedQueryFull<F>;\n fetchTotal?: FetchTotalState<T, F>;\n}\n\nexport class QueryResultState<T, F extends FiltersMap>\n implements QueryResult<T>\n{\n readonly itemKey: (item: T) => string;\n\n readonly _pagesAtom = createAtom('QueryResultState.pages');\n _pages: Pages<T> = { processed: [], unprocessed: [] };\n _totals: Totals = { processed: 0, unprocessed: 0 };\n _supportTotal: boolean = false;\n readonly _keyedItemsMap: Map<string, KeyedItem<T>> = new Map();\n readonly fetchTotal?: FetchTotalState<T, F>;\n\n get pages() {\n this._pagesAtom.reportObserved();\n return this._pages.processed;\n }\n\n available: number | null = null;\n status: QueryResultStatus<DataResultKeyed<T>, unknown> = {\n ...queryStatus.idle,\n error: null,\n isFetching: false,\n };\n originQuery: ComputedQueryFull<F>;\n\n constructor(params: QueryResultStateParams<T, F>) {\n this.itemKey = params.itemKey;\n this.originQuery = params.originQuery;\n this.fetchTotal = params.fetchTotal;\n\n makeObservable(this, {\n items: computed({\n keepAlive: true,\n }),\n keyedItems: computed({\n keepAlive: true,\n }),\n pages: computed,\n size: computed,\n itemsKeys: computed,\n fetchedAll: computed,\n isFetching: computed,\n isEmptyAndNotFetching: computed,\n asComputed: computed,\n total: computed,\n\n hasAvailableItems: computed,\n _totals: observable.ref,\n _supportTotal: observable.ref,\n setTotals: action,\n available: observable.ref,\n status: observable.ref,\n originQuery: observable.ref,\n changeItems: action,\n totalStatus: computed,\n slice: action,\n });\n }\n\n init() {\n const disposers = [this.fetchTotal?.init()];\n\n return () => {\n disposers.forEach((disposer) => disposer?.());\n };\n }\n\n get errorStatus() {\n const { status } = this;\n return status.isError ? status : null;\n }\n\n private setNewPages = action((pages: Pages<T>) => {\n this._pages = pages;\n this._pagesAtom.reportChanged();\n });\n\n get keyedItems(): KeyedItem<T>[] {\n this._pagesAtom.reportObserved();\n const { pages, itemKey } = this;\n let currentIndex = 0;\n return flatMap(pages, (page, pageIndex) => {\n return page.map((item, indexWithinPage) => {\n const key = itemKey(item);\n return {\n key,\n id: key,\n item,\n index: currentIndex++,\n pageIndex,\n indexWithinPage,\n };\n });\n });\n }\n\n get itemsKeys() {\n return this.keyedItems.map(({ key }) => key);\n }\n\n get isEmptyAndNotFetching() {\n const { status, keyedItems } = this;\n return status.isSuccess && !status.isFetching && !keyedItems.length;\n }\n\n get isEmpty() {\n const { keyedItems } = this;\n return keyedItems.length === 0;\n }\n\n get items(): T[] {\n this._pagesAtom.reportObserved();\n const { pages } = this;\n return flatMap(pages);\n }\n\n get total() {\n return this.fetchTotal ? this.fetchTotal.total : this._totals.processed;\n }\n\n get totalStatus() {\n return this.fetchTotal ? this.fetchTotal.status : this.status.status;\n }\n\n get supportTotal() {\n return !!this.fetchTotal || this._supportTotal;\n }\n\n get fetchedAll() {\n const { status, items, total } = this;\n return !status.isLoading && total <= items.length;\n }\n\n get isFetching() {\n return this.status.isFetching;\n }\n\n get(key: string) {\n this._pagesAtom.reportObserved();\n return this._keyedItemsMap.get(key);\n }\n\n has(key: string) {\n return this._keyedItemsMap.has(key);\n }\n\n private createRollbackFn(updates: { prevItem: T; newItem: T }[]) {\n return () => {\n const { itemKey, _keyedItemsMap, pages } = this;\n for (const { newItem, prevItem } of updates) {\n const key = itemKey(newItem);\n const keyedItem = _keyedItemsMap.get(key);\n // the current item is still the one that was recently updated\n if (keyedItem != null) {\n const { pageIndex, indexWithinPage } = keyedItem;\n const page = pages[pageIndex];\n if (page[indexWithinPage] === newItem) {\n this.changeItems([prevItem]);\n return true;\n }\n }\n }\n\n return false;\n };\n }\n\n changeItems(newItems: T[]) {\n const { itemKey, _pages, _pagesAtom, keyedItems } = this;\n const updates: { prevItem: T; newItem: T }[] = [];\n for (const newItem of newItems) {\n const key = itemKey(newItem);\n const keyedItem = keyedItems.find((item) => item.key === key);\n if (keyedItem != null) {\n const { pageIndex, indexWithinPage } = keyedItem;\n const processedPage = _pages.processed[pageIndex];\n // this mutates react-query cache since `page` is the same reference of the cached data\n // this behavior is intentional because the strategy is to assume the server will be update correctly in the next invalidation\n // until then, we simulate locally (cache) what we expect the server state eventually to be\n const prevItem = processedPage[indexWithinPage];\n processedPage[indexWithinPage] = newItem;\n\n _pages.unprocessed.forEach((page) => {\n const itemIndex = page.findIndex((item) => itemKey(item) === key);\n if (itemIndex !== -1) {\n page[itemIndex] = newItem;\n }\n });\n\n updates.push({ prevItem, newItem });\n }\n }\n\n if (updates.length) {\n _pagesAtom.reportChanged();\n\n return {\n rollback: this.createRollbackFn(updates),\n };\n }\n\n return undefined;\n }\n\n addItems(newItems: T[]) {\n const { _pages, _pagesAtom } = this;\n _pages.processed = [newItems, ..._pages.processed];\n _pages.unprocessed = [newItems, ..._pages.unprocessed];\n _pagesAtom.reportChanged();\n\n return {\n rollback: () => {\n _pages.processed = _pages.processed.slice(1);\n _pages.unprocessed = _pages.unprocessed.slice(1);\n _pagesAtom.reportChanged();\n },\n };\n }\n\n private calcKeyedItemsMap() {\n const { keyedItems, _keyedItemsMap } = this;\n _keyedItemsMap.clear();\n for (const keyedItem of keyedItems) {\n _keyedItemsMap.set(keyedItem.key, keyedItem);\n }\n }\n\n clear() {\n this.setNewPages({ processed: [], unprocessed: [] });\n this._keyedItemsMap.clear();\n }\n\n addPages(morePages: Pages<T>) {\n const { _pages } = this;\n this.setNewPages({\n unprocessed: [..._pages.unprocessed, ...morePages.unprocessed],\n processed: [..._pages.processed, ...morePages.processed],\n });\n this.calcKeyedItemsMap();\n }\n\n setTotals(totals: Totals) {\n this._totals = totals;\n }\n\n setSupportTotal(supportTotal: boolean) {\n this._supportTotal = supportTotal;\n }\n\n setPages(pages: Pages<T>) {\n this.setNewPages(pages);\n this.calcKeyedItemsMap();\n }\n\n slice(start?: number, end?: number) {\n const { _pages } = this;\n this.setNewPages({\n unprocessed: _pages.unprocessed.slice(start, end),\n processed: _pages.processed.slice(start, end),\n });\n }\n\n get hasAvailableItems() {\n const {\n originQuery: { hasNonPersistentActiveFilters },\n available,\n total,\n size,\n } = this;\n // if `available` info is missing, must assume that there are available items if non persistent filters are active\n return available != null\n ? available > 0\n : hasNonPersistentActiveFilters || total > 0 || size > 0;\n }\n\n get asComputed() {\n const { total, available } = this;\n return {\n total,\n available: available ?? 0,\n };\n }\n\n get size() {\n return this.items.length;\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["_v","require","_uuid","_mobx","_CollectionOptimisticActions","_TaskState","_CollectionState","_util","TagsAssignmentState","constructor","tagsManagementState","entityId","origin","tagsBIReporter","initialTags","params","_initialTags$privateT","_defineProperty2","default","TaskState","tag","onSubmit","isFromSearch","optimisticActionParams","assignedTagIds","includes","id","newIndex","_getNewIndex","optimisticActions","createOne","index","submit","_","_assignTag","tagIds","tagToUnassign","collection","result","items","find","t","deleteOne","_invokeBiOnAssignUnassign","actionName","allTags","privateTags","filter","addedTags","removedTags","name","uuid","filteredListSize","assignOptimisticActionParams","createOptimisticActionParams","newTag","_createAndAssign","Array","from","Set","assignError","tagId","_createTag","onCreateSuccess","error","Promise","resolve","createTag","onSuccess","fqdn","map","makeObservable","observable","init","action","assignTag","createAndAssignTag","unassignTag","clear","assignedTags","computed","initialTagIds","isDirty","CollectionState","container","events","queryName","fqdnString","join","fetchData","total","length","itemKey","itemName","fetchErrorMessage","filters","CollectionOptimisticActions","orderBy","fieldName","order","undefined","disposers","initTask","runOnce","status","promise","forEach","disposer","fqdnToString","isLoading","isIdle","isError","retry","_this$collection$resu","Boolean","unassigendTagIds","reportBi","cairoTagsAssignTag","itemId","numItems","numTags","numTagsAssigned","tagName","max","Math","exports"],"sources":["../../../../src/state/TagsState/TagsAssignmentState.ts"],"sourcesContent":["import { Tag } from '@wix/bex-utils/@wix/ambassador-os-tags-v1-tag/types';\nimport { TagsManagementState } from './TagsManagementState';\nimport { TagsBIReporter } from './TagsBIReporter';\nimport { cairoTagsAssignTag } from '@wix/bex-utils/@wix/bi-logger-os-data/v2';\nimport { Tags } from './tagsTypes';\nimport { v4 as uuid } from 'uuid';\nimport { action, computed, makeObservable, observable } from 'mobx';\nimport { Fqdn } from '../../model';\nimport {\n CollectionOptimisticActions,\n} from '../CollectionOptimisticActions';\nimport { TaskState } from '../TaskState';\nimport { CollectionState } from '../CollectionState';\nimport { fqdnToString } from '../../util';\nimport { CreateManyParams, DeleteManyParams } from '../OptimisticActions';\n\nexport type OnSubmitTagsFuncType = ({\n allTags,\n addedTags,\n removedTags,\n}: {\n allTags: Tags;\n addedTags: Tags;\n removedTags: Tags;\n}) => void;\n\nexport interface TagsAssignmentStateParams {\n readonly tagsManagementState: TagsManagementState;\n readonly entityId?: string;\n readonly origin: string;\n readonly fqdn: Fqdn;\n readonly tagsBIReporter: TagsBIReporter;\n readonly initialTags?: Tags;\n}\n\nexport interface CreateAndAssignParams {\n name: string;\n id?: string;\n filteredListSize: number;\n onSubmit?: OnSubmitTagsFuncType;\n isFromSearch?: boolean;\n assignOptimisticActionParams?: Partial<CreateManyParams<Tag>>;\n createOptimisticActionParams?: Partial<CreateManyParams<Tag>>;\n}\n\ninterface TagAssignment {\n id: string;\n index: number;\n}\n\nexport class TagsAssignmentState {\n readonly tagsManagementState: TagsManagementState;\n readonly origin;\n readonly tagsBIReporter: TagsBIReporter;\n readonly initTask = new TaskState();\n readonly collection: CollectionState<TagAssignment>;\n readonly optimisticActions: CollectionOptimisticActions<TagAssignment, {}>;\n entityId?: string;\n readonly initialTags: TagAssignment[];\n readonly fqdn;\n\n constructor({\n tagsManagementState,\n entityId,\n origin,\n tagsBIReporter,\n initialTags,\n ...params\n }: TagsAssignmentStateParams) {\n this.tagsManagementState = tagsManagementState;\n this.origin = origin;\n this.tagsBIReporter = tagsBIReporter;\n this.fqdn = params.fqdn;\n this.initialTags = Array.from(\n new Set(initialTags?.privateTags?.tagIds || []),\n ).map((id, index) => ({\n index,\n id,\n }));\n\n makeObservable(this, {\n initialTags: observable,\n init: action,\n assignTag: action,\n createAndAssignTag: action,\n unassignTag: action,\n clear: action,\n assignedTags: computed,\n initialTagIds: computed,\n isDirty: computed,\n });\n\n this.collection = new CollectionState<TagAssignment>({\n ...tagsManagementState.container,\n events: {},\n queryName: [this.fqdnString, origin, entityId].join('/'),\n fetchData: async () => {\n return {\n items: this.initialTags,\n total: this.initialTags.length,\n };\n },\n itemKey: (tag) => tag.id,\n itemName: (tag) => tag.id,\n fetchErrorMessage: () => '',\n filters: {},\n });\n\n this.optimisticActions = new CollectionOptimisticActions<TagAssignment, {}>(\n {\n collection: this.collection,\n container: tagsManagementState.container,\n orderBy: () => [\n {\n fieldName: ({ index }) => index,\n order: 'asc',\n },\n ],\n },\n );\n }\n\n init({ entityId }: { entityId?: string | null }) {\n this.entityId = entityId ?? undefined;\n\n const { collection, optimisticActions } = this;\n\n const disposers = [collection.init(), optimisticActions.init()];\n\n this.initTask.runOnce(async () => {\n await collection.initTask.status.promise;\n\n this.tagsManagementState.init();\n await this.tagsManagementState.initTask.status.promise;\n });\n\n return () => {\n disposers.forEach((disposer) => disposer());\n };\n }\n\n get fqdnString() {\n return fqdnToString(this.fqdn);\n }\n\n get isLoading() {\n const { status } = this.tagsManagementState.initTask;\n return status.isIdle || status.isLoading || this.initTask.status.isLoading;\n }\n\n get isError() {\n return (\n this.tagsManagementState.initTask.status.isError ||\n this.initTask.status.isError\n );\n }\n\n retry() {\n this.initTask.runOnce();\n }\n\n get assignedTags() {\n return this.collection.result.items\n ?.map(({ id }) => {\n return this.tagsManagementState.items.find((tag: Tag) => tag.id === id);\n })\n .filter(Boolean) as Tag[];\n }\n\n get assignedTagIds() {\n const { isIdle, isLoading } = this.collection.status\n\n /**\n * During collection fetch, the returned items are 0, which impacts assignedTagIds\n * and sets isDirty to true during the rendering lifecycle, causing flakiness in the UI.\n */\n return isIdle || isLoading\n ? this.initialTagIds\n : this.collection.result.items.map((tag) => tag.id);\n }\n\n get initialTagIds() {\n return this.initialTags.map((tag) => tag.id);\n }\n\n clear() {\n this.collection.result.clear();\n }\n\n assignTag = async ({\n tag,\n onSubmit,\n isFromSearch,\n optimisticActionParams,\n }: {\n tag: Tag;\n onSubmit?: OnSubmitTagsFuncType;\n isFromSearch?: boolean;\n optimisticActionParams?: Partial<CreateManyParams<Tag>>;\n }) => {\n if (this.assignedTagIds.includes(tag.id!)) {\n return;\n }\n const newIndex = this._getNewIndex();\n\n await this.optimisticActions.createOne(\n { id: tag.id!, index: newIndex },\n {\n ...optimisticActionParams,\n submit: async (_: any) => {\n await this._assignTag({\n tagIds: this.assignedTagIds,\n tag,\n onSubmit,\n isFromSearch,\n });\n\n return [{ id: tag.id!, index: newIndex }];\n },\n },\n );\n };\n\n unassignTag = async ({\n tag,\n onSubmit,\n isFromSearch = false,\n optimisticActionParams,\n }: {\n tag: Tag;\n onSubmit?: OnSubmitTagsFuncType;\n isFromSearch?: boolean;\n optimisticActionParams?: Partial<DeleteManyParams<Tag, {}>>;\n }) => {\n const tagToUnassign = this.collection.result.items.find(\n (t) => t.id === tag.id,\n );\n\n await this.optimisticActions.deleteOne(tagToUnassign!, {\n ...optimisticActionParams,\n submit: async () => {\n this._invokeBiOnAssignUnassign({\n actionName: 'Remove',\n tag,\n isFromSearch,\n });\n\n await onSubmit?.({\n allTags: {\n privateTags: {\n tagIds: this.assignedTagIds.filter((id: string) => id !== tag.id),\n },\n },\n addedTags: {\n privateTags: {\n tagIds: [],\n },\n },\n removedTags: {\n privateTags: {\n tagIds: [tag.id!],\n },\n },\n });\n },\n });\n };\n\n createAndAssignTag = async ({\n name,\n id = uuid(),\n filteredListSize,\n onSubmit,\n assignOptimisticActionParams,\n createOptimisticActionParams,\n }: CreateAndAssignParams) => {\n const newIndex = this._getNewIndex();\n\n this.optimisticActions.createOne(\n { id, index: newIndex },\n {\n ...assignOptimisticActionParams,\n submit: async (_) => {\n const newTag = await this._createAndAssign({\n name,\n id,\n filteredListSize,\n onSubmit,\n createOptimisticActionParams,\n });\n return [{ id: newTag.id!, index: newIndex }];\n },\n },\n );\n };\n\n get isDirty() {\n if (this.initialTagIds.length !== this.assignedTagIds.length) {\n return true;\n }\n\n const unassigendTagIds = this.initialTagIds.filter(\n (id) => !this.assignedTagIds.includes(id),\n );\n const assignedTagIds = this.assignedTagIds.filter(\n (id) => !this.initialTagIds.includes(id),\n );\n\n return unassigendTagIds.length !== 0 || assignedTagIds.length !== 0;\n }\n\n private _assignTag = async ({\n tagIds,\n tag,\n onSubmit,\n isFromSearch,\n }: {\n tagIds: string[];\n tag: Tag;\n onSubmit?: OnSubmitTagsFuncType;\n isFromSearch?: boolean;\n }) => {\n this._invokeBiOnAssignUnassign({\n actionName: 'Assign',\n tag,\n isFromSearch,\n });\n await onSubmit?.({\n allTags: {\n privateTags: {\n tagIds: Array.from(new Set([...tagIds, tag.id])) as string[],\n },\n },\n addedTags: { privateTags: { tagIds: [tag.id!] } },\n removedTags: { privateTags: { tagIds: [] } },\n });\n };\n\n private _createAndAssign = async ({\n name,\n id,\n filteredListSize,\n onSubmit,\n createOptimisticActionParams,\n }: CreateAndAssignParams) => {\n const isFromSearch = true;\n let assignError: unknown;\n\n let newTag = this.tagsManagementState.items.find(\n (tag: Tag) => tag.name === name,\n );\n if (newTag) {\n await this._assignTag({\n tagIds: this.assignedTagIds.filter((tagId) => tagId !== id),\n tag: newTag,\n onSubmit,\n isFromSearch,\n });\n\n return newTag;\n }\n newTag = await this._createTag({\n name,\n id,\n filteredListSize,\n isFromSearch,\n createOptimisticActionParams,\n onCreateSuccess: async (newTag) => {\n try {\n await this._assignTag({\n tagIds: this.assignedTagIds.filter((tagId) => tagId !== id),\n tag: newTag,\n onSubmit,\n isFromSearch,\n });\n } catch (error: unknown) {\n assignError = error;\n }\n },\n });\n\n // We want to throw assign exception in assign optimistic context so assign tryAgain (and not create) will be triggered\n if (assignError) {\n throw assignError;\n }\n return newTag;\n };\n\n private _createTag = async ({\n name,\n id,\n filteredListSize,\n isFromSearch,\n onCreateSuccess,\n createOptimisticActionParams,\n }: CreateAndAssignParams & { onCreateSuccess: (newTag: Tag) => void }) => {\n return new Promise<Tag>(async (resolve) => {\n await this.tagsManagementState.createTag({\n name,\n id,\n filteredListSize,\n origin: this.origin,\n isFromSearch,\n tagsBIReporter: this.tagsBIReporter,\n optimisticActionParams: createOptimisticActionParams,\n onSuccess: async (newTag) => {\n await onCreateSuccess?.(newTag);\n resolve(newTag);\n },\n });\n });\n };\n\n private _invokeBiOnAssignUnassign({\n actionName,\n tag,\n isFromSearch = false,\n }: {\n actionName: string;\n tag: Tag;\n isFromSearch?: boolean;\n }) {\n this.tagsBIReporter.reportBi(\n cairoTagsAssignTag({\n actionName,\n isFromSearch,\n itemId: this.entityId,\n numItems: 1,\n numTags: this.tagsManagementState.items.length,\n numTagsAssigned: this.assignedTags.length,\n tagName: tag.name!,\n origin: this.origin,\n }),\n );\n }\n\n private _getNewIndex() {\n const max = Math.max(\n 0,\n ...this.collection.result.items.map((tag) => tag.index!),\n );\n\n return max + 1;\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_v","require","_uuid","_mobx","_CollectionOptimisticActions","_TaskState","_CollectionState","_util","TagsAssignmentState","constructor","tagsManagementState","entityId","origin","tagsBIReporter","initialTags","params","_initialTags$privateT","_defineProperty2","default","TaskState","tag","onSubmit","isFromSearch","optimisticActionParams","assignedTagIds","includes","id","newIndex","_getNewIndex","optimisticActions","createOne","index","submit","_","_assignTag","tagIds","tagToUnassign","collection","result","items","find","t","deleteOne","_invokeBiOnAssignUnassign","actionName","allTags","privateTags","filter","addedTags","removedTags","name","uuid","filteredListSize","assignOptimisticActionParams","createOptimisticActionParams","newTag","_createAndAssign","Array","from","Set","assignError","tagId","_createTag","onCreateSuccess","error","Promise","resolve","createTag","onSuccess","fqdn","map","makeObservable","observable","init","action","assignTag","createAndAssignTag","unassignTag","clear","assignedTags","computed","initialTagIds","isDirty","CollectionState","container","events","queryName","fqdnString","join","fetchData","total","length","itemKey","itemName","fetchErrorMessage","filters","CollectionOptimisticActions","orderBy","fieldName","order","undefined","disposers","initTask","runOnce","status","promise","forEach","disposer","fqdnToString","isLoading","isIdle","isError","retry","_this$collection$resu","Boolean","unassigendTagIds","reportBi","cairoTagsAssignTag","itemId","numItems","numTags","numTagsAssigned","tagName","max","Math","exports"],"sources":["../../../../src/state/TagsState/TagsAssignmentState.ts"],"sourcesContent":["import { Tag } from '@wix/bex-utils/@wix/ambassador-os-tags-v1-tag/types';\nimport { TagsManagementState } from './TagsManagementState';\nimport { TagsBIReporter } from './TagsBIReporter';\nimport { cairoTagsAssignTag } from '@wix/bex-utils/@wix/bi-logger-os-data/v2';\nimport { Tags } from './tagsTypes';\nimport { v4 as uuid } from 'uuid';\nimport { action, computed, makeObservable, observable } from 'mobx';\nimport { Fqdn } from '../../model';\nimport { CollectionOptimisticActions } from '../CollectionOptimisticActions';\nimport { TaskState } from '../TaskState';\nimport { CollectionState } from '../CollectionState';\nimport { fqdnToString } from '../../util';\nimport { CreateManyParams, DeleteManyParams } from '../OptimisticActions';\n\nexport type OnSubmitTagsFuncType = ({\n allTags,\n addedTags,\n removedTags,\n}: {\n allTags: Tags;\n addedTags: Tags;\n removedTags: Tags;\n}) => void;\n\nexport interface TagsAssignmentStateParams {\n readonly tagsManagementState: TagsManagementState;\n readonly entityId?: string;\n readonly origin: string;\n readonly fqdn: Fqdn;\n readonly tagsBIReporter: TagsBIReporter;\n readonly initialTags?: Tags;\n}\n\nexport interface CreateAndAssignParams {\n name: string;\n id?: string;\n filteredListSize: number;\n onSubmit?: OnSubmitTagsFuncType;\n isFromSearch?: boolean;\n assignOptimisticActionParams?: Partial<CreateManyParams<Tag>>;\n createOptimisticActionParams?: Partial<CreateManyParams<Tag>>;\n}\n\ninterface TagAssignment {\n id: string;\n index: number;\n}\n\nexport class TagsAssignmentState {\n readonly tagsManagementState: TagsManagementState;\n readonly origin;\n readonly tagsBIReporter: TagsBIReporter;\n readonly initTask = new TaskState();\n readonly collection: CollectionState<TagAssignment>;\n readonly optimisticActions: CollectionOptimisticActions<TagAssignment, {}>;\n entityId?: string;\n readonly initialTags: TagAssignment[];\n readonly fqdn;\n\n constructor({\n tagsManagementState,\n entityId,\n origin,\n tagsBIReporter,\n initialTags,\n ...params\n }: TagsAssignmentStateParams) {\n this.tagsManagementState = tagsManagementState;\n this.origin = origin;\n this.tagsBIReporter = tagsBIReporter;\n this.fqdn = params.fqdn;\n this.initialTags = Array.from(\n new Set(initialTags?.privateTags?.tagIds || []),\n ).map((id, index) => ({\n index,\n id,\n }));\n\n makeObservable(this, {\n initialTags: observable,\n init: action,\n assignTag: action,\n createAndAssignTag: action,\n unassignTag: action,\n clear: action,\n assignedTags: computed,\n initialTagIds: computed,\n isDirty: computed,\n });\n\n this.collection = new CollectionState<TagAssignment>({\n ...tagsManagementState.container,\n events: {},\n queryName: [this.fqdnString, origin, entityId].join('/'),\n fetchData: async () => {\n return {\n items: this.initialTags,\n total: this.initialTags.length,\n };\n },\n itemKey: (tag) => tag.id,\n itemName: (tag) => tag.id,\n fetchErrorMessage: () => '',\n filters: {},\n });\n\n this.optimisticActions = new CollectionOptimisticActions<TagAssignment, {}>(\n {\n collection: this.collection,\n container: tagsManagementState.container,\n orderBy: () => [\n {\n fieldName: ({ index }) => index,\n order: 'asc',\n },\n ],\n },\n );\n }\n\n init({ entityId }: { entityId?: string | null }) {\n this.entityId = entityId ?? undefined;\n\n const { collection, optimisticActions } = this;\n\n const disposers = [collection.init(), optimisticActions.init()];\n\n this.initTask.runOnce(async () => {\n await collection.initTask.status.promise;\n\n this.tagsManagementState.init();\n await this.tagsManagementState.initTask.status.promise;\n });\n\n return () => {\n disposers.forEach((disposer) => disposer());\n };\n }\n\n get fqdnString() {\n return fqdnToString(this.fqdn);\n }\n\n get isLoading() {\n const { status } = this.tagsManagementState.initTask;\n return status.isIdle || status.isLoading || this.initTask.status.isLoading;\n }\n\n get isError() {\n return (\n this.tagsManagementState.initTask.status.isError ||\n this.initTask.status.isError\n );\n }\n\n retry() {\n this.initTask.runOnce();\n }\n\n get assignedTags() {\n return this.collection.result.items\n ?.map(({ id }) => {\n return this.tagsManagementState.items.find((tag: Tag) => tag.id === id);\n })\n .filter(Boolean) as Tag[];\n }\n\n get assignedTagIds() {\n const { isIdle, isLoading } = this.collection.status;\n\n /**\n * During collection fetch, the returned items are 0, which impacts assignedTagIds\n * and sets isDirty to true during the rendering lifecycle, causing flakiness in the UI.\n */\n return isIdle || isLoading\n ? this.initialTagIds\n : this.collection.result.items.map((tag) => tag.id);\n }\n\n get initialTagIds() {\n return this.initialTags.map((tag) => tag.id);\n }\n\n clear() {\n this.collection.result.clear();\n }\n\n assignTag = async ({\n tag,\n onSubmit,\n isFromSearch,\n optimisticActionParams,\n }: {\n tag: Tag;\n onSubmit?: OnSubmitTagsFuncType;\n isFromSearch?: boolean;\n optimisticActionParams?: Partial<CreateManyParams<Tag>>;\n }) => {\n if (this.assignedTagIds.includes(tag.id!)) {\n return;\n }\n const newIndex = this._getNewIndex();\n\n await this.optimisticActions.createOne(\n { id: tag.id!, index: newIndex },\n {\n ...optimisticActionParams,\n submit: async (_: any) => {\n await this._assignTag({\n tagIds: this.assignedTagIds,\n tag,\n onSubmit,\n isFromSearch,\n });\n\n return [{ id: tag.id!, index: newIndex }];\n },\n },\n );\n };\n\n unassignTag = async ({\n tag,\n onSubmit,\n isFromSearch = false,\n optimisticActionParams,\n }: {\n tag: Tag;\n onSubmit?: OnSubmitTagsFuncType;\n isFromSearch?: boolean;\n optimisticActionParams?: Partial<DeleteManyParams<Tag, {}>>;\n }) => {\n const tagToUnassign = this.collection.result.items.find(\n (t) => t.id === tag.id,\n );\n\n await this.optimisticActions.deleteOne(tagToUnassign!, {\n ...optimisticActionParams,\n submit: async () => {\n this._invokeBiOnAssignUnassign({\n actionName: 'Remove',\n tag,\n isFromSearch,\n });\n\n await onSubmit?.({\n allTags: {\n privateTags: {\n tagIds: this.assignedTagIds.filter((id: string) => id !== tag.id),\n },\n },\n addedTags: {\n privateTags: {\n tagIds: [],\n },\n },\n removedTags: {\n privateTags: {\n tagIds: [tag.id!],\n },\n },\n });\n },\n });\n };\n\n createAndAssignTag = async ({\n name,\n id = uuid(),\n filteredListSize,\n onSubmit,\n assignOptimisticActionParams,\n createOptimisticActionParams,\n }: CreateAndAssignParams) => {\n const newIndex = this._getNewIndex();\n\n this.optimisticActions.createOne(\n { id, index: newIndex },\n {\n ...assignOptimisticActionParams,\n submit: async (_) => {\n const newTag = await this._createAndAssign({\n name,\n id,\n filteredListSize,\n onSubmit,\n createOptimisticActionParams,\n });\n return [{ id: newTag.id!, index: newIndex }];\n },\n },\n );\n };\n\n get isDirty() {\n if (this.initialTagIds.length !== this.assignedTagIds.length) {\n return true;\n }\n\n const unassigendTagIds = this.initialTagIds.filter(\n (id) => !this.assignedTagIds.includes(id),\n );\n const assignedTagIds = this.assignedTagIds.filter(\n (id) => !this.initialTagIds.includes(id),\n );\n\n return unassigendTagIds.length !== 0 || assignedTagIds.length !== 0;\n }\n\n private _assignTag = async ({\n tagIds,\n tag,\n onSubmit,\n isFromSearch,\n }: {\n tagIds: string[];\n tag: Tag;\n onSubmit?: OnSubmitTagsFuncType;\n isFromSearch?: boolean;\n }) => {\n this._invokeBiOnAssignUnassign({\n actionName: 'Assign',\n tag,\n isFromSearch,\n });\n await onSubmit?.({\n allTags: {\n privateTags: {\n tagIds: Array.from(new Set([...tagIds, tag.id])) as string[],\n },\n },\n addedTags: { privateTags: { tagIds: [tag.id!] } },\n removedTags: { privateTags: { tagIds: [] } },\n });\n };\n\n private _createAndAssign = async ({\n name,\n id,\n filteredListSize,\n onSubmit,\n createOptimisticActionParams,\n }: CreateAndAssignParams) => {\n const isFromSearch = true;\n let assignError: unknown;\n\n let newTag = this.tagsManagementState.items.find(\n (tag: Tag) => tag.name === name,\n );\n if (newTag) {\n await this._assignTag({\n tagIds: this.assignedTagIds.filter((tagId) => tagId !== id),\n tag: newTag,\n onSubmit,\n isFromSearch,\n });\n\n return newTag;\n }\n newTag = await this._createTag({\n name,\n id,\n filteredListSize,\n isFromSearch,\n createOptimisticActionParams,\n onCreateSuccess: async (newTag) => {\n try {\n await this._assignTag({\n tagIds: this.assignedTagIds.filter((tagId) => tagId !== id),\n tag: newTag,\n onSubmit,\n isFromSearch,\n });\n } catch (error: unknown) {\n assignError = error;\n }\n },\n });\n\n // We want to throw assign exception in assign optimistic context so assign tryAgain (and not create) will be triggered\n if (assignError) {\n throw assignError;\n }\n return newTag;\n };\n\n private _createTag = async ({\n name,\n id,\n filteredListSize,\n isFromSearch,\n onCreateSuccess,\n createOptimisticActionParams,\n }: CreateAndAssignParams & { onCreateSuccess: (newTag: Tag) => void }) => {\n return new Promise<Tag>(async (resolve) => {\n await this.tagsManagementState.createTag({\n name,\n id,\n filteredListSize,\n origin: this.origin,\n isFromSearch,\n tagsBIReporter: this.tagsBIReporter,\n optimisticActionParams: createOptimisticActionParams,\n onSuccess: async (newTag) => {\n await onCreateSuccess?.(newTag);\n resolve(newTag);\n },\n });\n });\n };\n\n private _invokeBiOnAssignUnassign({\n actionName,\n tag,\n isFromSearch = false,\n }: {\n actionName: string;\n tag: Tag;\n isFromSearch?: boolean;\n }) {\n this.tagsBIReporter.reportBi(\n cairoTagsAssignTag({\n actionName,\n isFromSearch,\n itemId: this.entityId,\n numItems: 1,\n numTags: this.tagsManagementState.items.length,\n numTagsAssigned: this.assignedTags.length,\n tagName: tag.name!,\n origin: this.origin,\n }),\n );\n }\n\n private _getNewIndex() {\n const max = Math.max(\n 0,\n ...this.collection.result.items.map((tag) => tag.index!),\n );\n\n return max + 1;\n }\n}\n"],"mappings":";;;;;;AAGA,IAAAA,EAAA,GAAAC,OAAA;AAEA,IAAAC,KAAA,GAAAD,OAAA;AACA,IAAAE,KAAA,GAAAF,OAAA;AAEA,IAAAG,4BAAA,GAAAH,OAAA;AACA,IAAAI,UAAA,GAAAJ,OAAA;AACA,IAAAK,gBAAA,GAAAL,OAAA;AACA,IAAAM,KAAA,GAAAN,OAAA;AAqCO,MAAMO,mBAAmB,CAAC;EAW/BC,WAAWA,CAAC;IACVC,mBAAmB;IACnBC,QAAQ;IACRC,MAAM;IACNC,cAAc;IACdC,WAAW;IACX,GAAGC;EACsB,CAAC,EAAE;IAAA,IAAAC,qBAAA;IAAA,IAAAC,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA,oBAdV,IAAIC,oBAAS,CAAC,CAAC;IAAA,IAAAF,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA,qBAuIvB,OAAO;MACjBE,GAAG;MACHC,QAAQ;MACRC,YAAY;MACZC;IAMF,CAAC,KAAK;MACJ,IAAI,IAAI,CAACC,cAAc,CAACC,QAAQ,CAACL,GAAG,CAACM,EAAG,CAAC,EAAE;QACzC;MACF;MACA,MAAMC,QAAQ,GAAG,IAAI,CAACC,YAAY,CAAC,CAAC;MAEpC,MAAM,IAAI,CAACC,iBAAiB,CAACC,SAAS,CACpC;QAAEJ,EAAE,EAAEN,GAAG,CAACM,EAAG;QAAEK,KAAK,EAAEJ;MAAS,CAAC,EAChC;QACE,GAAGJ,sBAAsB;QACzBS,MAAM,EAAE,MAAOC,CAAM,IAAK;UACxB,MAAM,IAAI,CAACC,UAAU,CAAC;YACpBC,MAAM,EAAE,IAAI,CAACX,cAAc;YAC3BJ,GAAG;YACHC,QAAQ;YACRC;UACF,CAAC,CAAC;UAEF,OAAO,CAAC;YAAEI,EAAE,EAAEN,GAAG,CAACM,EAAG;YAAEK,KAAK,EAAEJ;UAAS,CAAC,CAAC;QAC3C;MACF,CACF,CAAC;IACH,CAAC;IAAA,IAAAV,gBAAA,CAAAC,OAAA,uBAEa,OAAO;MACnBE,GAAG;MACHC,QAAQ;MACRC,YAAY,GAAG,KAAK;MACpBC;IAMF,CAAC,KAAK;MACJ,MAAMa,aAAa,GAAG,IAAI,CAACC,UAAU,CAACC,MAAM,CAACC,KAAK,CAACC,IAAI,CACpDC,CAAC,IAAKA,CAAC,CAACf,EAAE,KAAKN,GAAG,CAACM,EACtB,CAAC;MAED,MAAM,IAAI,CAACG,iBAAiB,CAACa,SAAS,CAACN,aAAa,EAAG;QACrD,GAAGb,sBAAsB;QACzBS,MAAM,EAAE,MAAAA,CAAA,KAAY;UAClB,IAAI,CAACW,yBAAyB,CAAC;YAC7BC,UAAU,EAAE,QAAQ;YACpBxB,GAAG;YACHE;UACF,CAAC,CAAC;UAEF,OAAMD,QAAQ,oBAARA,QAAQ,CAAG;YACfwB,OAAO,EAAE;cACPC,WAAW,EAAE;gBACXX,MAAM,EAAE,IAAI,CAACX,cAAc,CAACuB,MAAM,CAAErB,EAAU,IAAKA,EAAE,KAAKN,GAAG,CAACM,EAAE;cAClE;YACF,CAAC;YACDsB,SAAS,EAAE;cACTF,WAAW,EAAE;gBACXX,MAAM,EAAE;cACV;YACF,CAAC;YACDc,WAAW,EAAE;cACXH,WAAW,EAAE;gBACXX,MAAM,EAAE,CAACf,GAAG,CAACM,EAAE;cACjB;YACF;UACF,CAAC,CAAC;QACJ;MACF,CAAC,CAAC;IACJ,CAAC;IAAA,IAAAT,gBAAA,CAAAC,OAAA,8BAEoB,OAAO;MAC1BgC,IAAI;MACJxB,EAAE,GAAG,IAAAyB,QAAI,EAAC,CAAC;MACXC,gBAAgB;MAChB/B,QAAQ;MACRgC,4BAA4B;MAC5BC;IACqB,CAAC,KAAK;MAC3B,MAAM3B,QAAQ,GAAG,IAAI,CAACC,YAAY,CAAC,CAAC;MAEpC,IAAI,CAACC,iBAAiB,CAACC,SAAS,CAC9B;QAAEJ,EAAE;QAAEK,KAAK,EAAEJ;MAAS,CAAC,EACvB;QACE,GAAG0B,4BAA4B;QAC/BrB,MAAM,EAAE,MAAOC,CAAC,IAAK;UACnB,MAAMsB,MAAM,GAAG,MAAM,IAAI,CAACC,gBAAgB,CAAC;YACzCN,IAAI;YACJxB,EAAE;YACF0B,gBAAgB;YAChB/B,QAAQ;YACRiC;UACF,CAAC,CAAC;UACF,OAAO,CAAC;YAAE5B,EAAE,EAAE6B,MAAM,CAAC7B,EAAG;YAAEK,KAAK,EAAEJ;UAAS,CAAC,CAAC;QAC9C;MACF,CACF,CAAC;IACH,CAAC;IAAA,IAAAV,gBAAA,CAAAC,OAAA,sBAiBoB,OAAO;MAC1BiB,MAAM;MACNf,GAAG;MACHC,QAAQ;MACRC;IAMF,CAAC,KAAK;MACJ,IAAI,CAACqB,yBAAyB,CAAC;QAC7BC,UAAU,EAAE,QAAQ;QACpBxB,GAAG;QACHE;MACF,CAAC,CAAC;MACF,OAAMD,QAAQ,oBAARA,QAAQ,CAAG;QACfwB,OAAO,EAAE;UACPC,WAAW,EAAE;YACXX,MAAM,EAAEsB,KAAK,CAACC,IAAI,CAAC,IAAIC,GAAG,CAAC,CAAC,GAAGxB,MAAM,EAAEf,GAAG,CAACM,EAAE,CAAC,CAAC;UACjD;QACF,CAAC;QACDsB,SAAS,EAAE;UAAEF,WAAW,EAAE;YAAEX,MAAM,EAAE,CAACf,GAAG,CAACM,EAAE;UAAG;QAAE,CAAC;QACjDuB,WAAW,EAAE;UAAEH,WAAW,EAAE;YAAEX,MAAM,EAAE;UAAG;QAAE;MAC7C,CAAC,CAAC;IACJ,CAAC;IAAA,IAAAlB,gBAAA,CAAAC,OAAA,4BAE0B,OAAO;MAChCgC,IAAI;MACJxB,EAAE;MACF0B,gBAAgB;MAChB/B,QAAQ;MACRiC;IACqB,CAAC,KAAK;MAC3B,MAAMhC,YAAY,GAAG,IAAI;MACzB,IAAIsC,WAAoB;MAExB,IAAIL,MAAM,GAAG,IAAI,CAAC7C,mBAAmB,CAAC6B,KAAK,CAACC,IAAI,CAC7CpB,GAAQ,IAAKA,GAAG,CAAC8B,IAAI,KAAKA,IAC7B,CAAC;MACD,IAAIK,MAAM,EAAE;QACV,MAAM,IAAI,CAACrB,UAAU,CAAC;UACpBC,MAAM,EAAE,IAAI,CAACX,cAAc,CAACuB,MAAM,CAAEc,KAAK,IAAKA,KAAK,KAAKnC,EAAE,CAAC;UAC3DN,GAAG,EAAEmC,MAAM;UACXlC,QAAQ;UACRC;QACF,CAAC,CAAC;QAEF,OAAOiC,MAAM;MACf;MACAA,MAAM,GAAG,MAAM,IAAI,CAACO,UAAU,CAAC;QAC7BZ,IAAI;QACJxB,EAAE;QACF0B,gBAAgB;QAChB9B,YAAY;QACZgC,4BAA4B;QAC5BS,eAAe,EAAE,MAAOR,MAAM,IAAK;UACjC,IAAI;YACF,MAAM,IAAI,CAACrB,UAAU,CAAC;cACpBC,MAAM,EAAE,IAAI,CAACX,cAAc,CAACuB,MAAM,CAAEc,KAAK,IAAKA,KAAK,KAAKnC,EAAE,CAAC;cAC3DN,GAAG,EAAEmC,MAAM;cACXlC,QAAQ;cACRC;YACF,CAAC,CAAC;UACJ,CAAC,CAAC,OAAO0C,KAAc,EAAE;YACvBJ,WAAW,GAAGI,KAAK;UACrB;QACF;MACF,CAAC,CAAC;;MAEF;MACA,IAAIJ,WAAW,EAAE;QACf,MAAMA,WAAW;MACnB;MACA,OAAOL,MAAM;IACf,CAAC;IAAA,IAAAtC,gBAAA,CAAAC,OAAA,sBAEoB,OAAO;MAC1BgC,IAAI;MACJxB,EAAE;MACF0B,gBAAgB;MAChB9B,YAAY;MACZyC,eAAe;MACfT;IACkE,CAAC,KAAK;MACxE,OAAO,IAAIW,OAAO,CAAM,MAAOC,OAAO,IAAK;QACzC,MAAM,IAAI,CAACxD,mBAAmB,CAACyD,SAAS,CAAC;UACvCjB,IAAI;UACJxB,EAAE;UACF0B,gBAAgB;UAChBxC,MAAM,EAAE,IAAI,CAACA,MAAM;UACnBU,YAAY;UACZT,cAAc,EAAE,IAAI,CAACA,cAAc;UACnCU,sBAAsB,EAAE+B,4BAA4B;UACpDc,SAAS,EAAE,MAAOb,MAAM,IAAK;YAC3B,OAAMQ,eAAe,oBAAfA,eAAe,CAAGR,MAAM,CAAC;YAC/BW,OAAO,CAACX,MAAM,CAAC;UACjB;QACF,CAAC,CAAC;MACJ,CAAC,CAAC;IACJ,CAAC;IAtVC,IAAI,CAAC7C,mBAAmB,GAAGA,mBAAmB;IAC9C,IAAI,CAACE,MAAM,GAAGA,MAAM;IACpB,IAAI,CAACC,cAAc,GAAGA,cAAc;IACpC,IAAI,CAACwD,IAAI,GAAGtD,MAAM,CAACsD,IAAI;IACvB,IAAI,CAACvD,WAAW,GAAG2C,KAAK,CAACC,IAAI,CAC3B,IAAIC,GAAG,CAAC,CAAA7C,WAAW,aAAAE,qBAAA,GAAXF,WAAW,CAAEgC,WAAW,qBAAxB9B,qBAAA,CAA0BmB,MAAM,KAAI,EAAE,CAChD,CAAC,CAACmC,GAAG,CAAC,CAAC5C,EAAE,EAAEK,KAAK,MAAM;MACpBA,KAAK;MACLL;IACF,CAAC,CAAC,CAAC;IAEH,IAAA6C,oBAAc,EAAC,IAAI,EAAE;MACnBzD,WAAW,EAAE0D,gBAAU;MACvBC,IAAI,EAAEC,YAAM;MACZC,SAAS,EAAED,YAAM;MACjBE,kBAAkB,EAAEF,YAAM;MAC1BG,WAAW,EAAEH,YAAM;MACnBI,KAAK,EAAEJ,YAAM;MACbK,YAAY,EAAEC,cAAQ;MACtBC,aAAa,EAAED,cAAQ;MACvBE,OAAO,EAAEF;IACX,CAAC,CAAC;IAEF,IAAI,CAAC3C,UAAU,GAAG,IAAI8C,gCAAe,CAAgB;MACnD,GAAGzE,mBAAmB,CAAC0E,SAAS;MAChCC,MAAM,EAAE,CAAC,CAAC;MACVC,SAAS,EAAE,CAAC,IAAI,CAACC,UAAU,EAAE3E,MAAM,EAAED,QAAQ,CAAC,CAAC6E,IAAI,CAAC,GAAG,CAAC;MACxDC,SAAS,EAAE,MAAAA,CAAA,KAAY;QACrB,OAAO;UACLlD,KAAK,EAAE,IAAI,CAACzB,WAAW;UACvB4E,KAAK,EAAE,IAAI,CAAC5E,WAAW,CAAC6E;QAC1B,CAAC;MACH,CAAC;MACDC,OAAO,EAAGxE,GAAG,IAAKA,GAAG,CAACM,EAAE;MACxBmE,QAAQ,EAAGzE,GAAG,IAAKA,GAAG,CAACM,EAAE;MACzBoE,iBAAiB,EAAEA,CAAA,KAAM,EAAE;MAC3BC,OAAO,EAAE,CAAC;IACZ,CAAC,CAAC;IAEF,IAAI,CAAClE,iBAAiB,GAAG,IAAImE,wDAA2B,CACtD;MACE3D,UAAU,EAAE,IAAI,CAACA,UAAU;MAC3B+C,SAAS,EAAE1E,mBAAmB,CAAC0E,SAAS;MACxCa,OAAO,EAAEA,CAAA,KAAM,CACb;QACEC,SAAS,EAAEA,CAAC;UAAEnE;QAAM,CAAC,KAAKA,KAAK;QAC/BoE,KAAK,EAAE;MACT,CAAC;IAEL,CACF,CAAC;EACH;EAEA1B,IAAIA,CAAC;IAAE9D;EAAuC,CAAC,EAAE;IAC/C,IAAI,CAACA,QAAQ,GAAGA,QAAQ,IAAIyF,SAAS;IAErC,MAAM;MAAE/D,UAAU;MAAER;IAAkB,CAAC,GAAG,IAAI;IAE9C,MAAMwE,SAAS,GAAG,CAAChE,UAAU,CAACoC,IAAI,CAAC,CAAC,EAAE5C,iBAAiB,CAAC4C,IAAI,CAAC,CAAC,CAAC;IAE/D,IAAI,CAAC6B,QAAQ,CAACC,OAAO,CAAC,YAAY;MAChC,MAAMlE,UAAU,CAACiE,QAAQ,CAACE,MAAM,CAACC,OAAO;MAExC,IAAI,CAAC/F,mBAAmB,CAAC+D,IAAI,CAAC,CAAC;MAC/B,MAAM,IAAI,CAAC/D,mBAAmB,CAAC4F,QAAQ,CAACE,MAAM,CAACC,OAAO;IACxD,CAAC,CAAC;IAEF,OAAO,MAAM;MACXJ,SAAS,CAACK,OAAO,CAAEC,QAAQ,IAAKA,QAAQ,CAAC,CAAC,CAAC;IAC7C,CAAC;EACH;EAEA,IAAIpB,UAAUA,CAAA,EAAG;IACf,OAAO,IAAAqB,kBAAY,EAAC,IAAI,CAACvC,IAAI,CAAC;EAChC;EAEA,IAAIwC,SAASA,CAAA,EAAG;IACd,MAAM;MAAEL;IAAO,CAAC,GAAG,IAAI,CAAC9F,mBAAmB,CAAC4F,QAAQ;IACpD,OAAOE,MAAM,CAACM,MAAM,IAAIN,MAAM,CAACK,SAAS,IAAI,IAAI,CAACP,QAAQ,CAACE,MAAM,CAACK,SAAS;EAC5E;EAEA,IAAIE,OAAOA,CAAA,EAAG;IACZ,OACE,IAAI,CAACrG,mBAAmB,CAAC4F,QAAQ,CAACE,MAAM,CAACO,OAAO,IAChD,IAAI,CAACT,QAAQ,CAACE,MAAM,CAACO,OAAO;EAEhC;EAEAC,KAAKA,CAAA,EAAG;IACN,IAAI,CAACV,QAAQ,CAACC,OAAO,CAAC,CAAC;EACzB;EAEA,IAAIxB,YAAYA,CAAA,EAAG;IAAA,IAAAkC,qBAAA;IACjB,QAAAA,qBAAA,GAAO,IAAI,CAAC5E,UAAU,CAACC,MAAM,CAACC,KAAK,qBAA5B0E,qBAAA,CACH3C,GAAG,CAAC,CAAC;MAAE5C;IAAG,CAAC,KAAK;MAChB,OAAO,IAAI,CAAChB,mBAAmB,CAAC6B,KAAK,CAACC,IAAI,CAAEpB,GAAQ,IAAKA,GAAG,CAACM,EAAE,KAAKA,EAAE,CAAC;IACzE,CAAC,CAAC,CACDqB,MAAM,CAACmE,OAAO,CAAC;EACpB;EAEA,IAAI1F,cAAcA,CAAA,EAAG;IACnB,MAAM;MAAEsF,MAAM;MAAED;IAAU,CAAC,GAAG,IAAI,CAACxE,UAAU,CAACmE,MAAM;;IAEpD;AACJ;AACA;AACA;IACI,OAAOM,MAAM,IAAID,SAAS,GACtB,IAAI,CAAC5B,aAAa,GAClB,IAAI,CAAC5C,UAAU,CAACC,MAAM,CAACC,KAAK,CAAC+B,GAAG,CAAElD,GAAG,IAAKA,GAAG,CAACM,EAAE,CAAC;EACvD;EAEA,IAAIuD,aAAaA,CAAA,EAAG;IAClB,OAAO,IAAI,CAACnE,WAAW,CAACwD,GAAG,CAAElD,GAAG,IAAKA,GAAG,CAACM,EAAE,CAAC;EAC9C;EAEAoD,KAAKA,CAAA,EAAG;IACN,IAAI,CAACzC,UAAU,CAACC,MAAM,CAACwC,KAAK,CAAC,CAAC;EAChC;EA6GA,IAAII,OAAOA,CAAA,EAAG;IACZ,IAAI,IAAI,CAACD,aAAa,CAACU,MAAM,KAAK,IAAI,CAACnE,cAAc,CAACmE,MAAM,EAAE;MAC5D,OAAO,IAAI;IACb;IAEA,MAAMwB,gBAAgB,GAAG,IAAI,CAAClC,aAAa,CAAClC,MAAM,CAC/CrB,EAAE,IAAK,CAAC,IAAI,CAACF,cAAc,CAACC,QAAQ,CAACC,EAAE,CAC1C,CAAC;IACD,MAAMF,cAAc,GAAG,IAAI,CAACA,cAAc,CAACuB,MAAM,CAC9CrB,EAAE,IAAK,CAAC,IAAI,CAACuD,aAAa,CAACxD,QAAQ,CAACC,EAAE,CACzC,CAAC;IAED,OAAOyF,gBAAgB,CAACxB,MAAM,KAAK,CAAC,IAAInE,cAAc,CAACmE,MAAM,KAAK,CAAC;EACrE;EAwGQhD,yBAAyBA,CAAC;IAChCC,UAAU;IACVxB,GAAG;IACHE,YAAY,GAAG;EAKjB,CAAC,EAAE;IACD,IAAI,CAACT,cAAc,CAACuG,QAAQ,CAC1B,IAAAC,qBAAkB,EAAC;MACjBzE,UAAU;MACVtB,YAAY;MACZgG,MAAM,EAAE,IAAI,CAAC3G,QAAQ;MACrB4G,QAAQ,EAAE,CAAC;MACXC,OAAO,EAAE,IAAI,CAAC9G,mBAAmB,CAAC6B,KAAK,CAACoD,MAAM;MAC9C8B,eAAe,EAAE,IAAI,CAAC1C,YAAY,CAACY,MAAM;MACzC+B,OAAO,EAAEtG,GAAG,CAAC8B,IAAK;MAClBtC,MAAM,EAAE,IAAI,CAACA;IACf,CAAC,CACH,CAAC;EACH;EAEQgB,YAAYA,CAAA,EAAG;IACrB,MAAM+F,GAAG,GAAGC,IAAI,CAACD,GAAG,CAClB,CAAC,EACD,GAAG,IAAI,CAACtF,UAAU,CAACC,MAAM,CAACC,KAAK,CAAC+B,GAAG,CAAElD,GAAG,IAAKA,GAAG,CAACW,KAAM,CACzD,CAAC;IAED,OAAO4F,GAAG,GAAG,CAAC;EAChB;AACF;AAACE,OAAA,CAAArH,mBAAA,GAAAA,mBAAA","ignoreList":[]}
@@ -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({ tagsManagementState, origin, initialTags }: 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({\n entityId,\n }: {\n entityId?: string | null;\n }) {\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":";;;;;;AAAA,IAAAA,KAAA,GAAAC,OAAA;AAEA,IAAAC,EAAA,GAAAD,OAAA;AAIA,IAAAE,oBAAA,GAAAF,OAAA;AACA,IAAAG,gBAAA,GAAAH,OAAA;AACA,IAAAI,oBAAA,GAAAJ,OAAA;AAIA,IAAAK,eAAA,GAAAL,OAAA;AAGA,IAAAM,KAAA,GAAAN,OAAA;AAEO,MAAMO,kBAAkB,GAAAC,OAAA,CAAAD,kBAAA,GAAG,iBAAiB;AAC5C,MAAME,qBAAqB,GAAAD,OAAA,CAAAC,qBAAA,GAAG,oBAAoB;AASlD,MAAMC,aAAa,CAAC;EAoCzBC,WAAWA,CAAC;IAAEC,mBAAmB;IAAEC,MAAM;IAAEC;EAAiC,CAAC,EAAE;IAAA,IAAAC,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA,+BA5BzD,EAAE;IAAA,IAAAD,gBAAA,CAAAC,OAAA,gCACD,KAAK;IAAA,IAAAD,gBAAA,CAAAC,OAAA,wCACIC,OAAe,KAAM;MACnDC,OAAO,EAAGC,KAAc,IAAK;QAC3B,IAAI,CAACC,cAAc,CAACF,OAAO,CACzB;UACED,OAAO;UACPI,UAAU,EAAE,YAAY;UACxBR,MAAM,EAAE,IAAI,CAACA;QACf,CAAC,EACDM,KACF,CAAC;MACH,CAAC;MACDG,UAAU,EAAEA,CAAA,KAAM;QAChB,OAAO;UACLC,MAAM,EAAE,wBAAwB;UAChCC,OAAO,EAAE,IAAI,CAACC,SAAS,CAACC,SAAS,CAC/B,8CACF;QACF,CAAC;MACH,CAAC;MACDC,UAAU,EAAEA,CAAA,KAAM;QAChB,IAAI,CAACP,cAAc,CAACO,UAAU,CAAC;UAC7BN,UAAU,EAAE;QACd,CAAC,CAAC;MACJ;IACF,CAAC,CAAC;IAAA,IAAAN,gBAAA,CAAAC,OAAA,qBAgHU,OAAOY,GAAQ,EAAEC,QAA+B,KAAK;MAC/D,IAAI,CAACC,mBAAmB,CAACC,SAAS,CAAC;QACjCH,GAAG;QACHC,QAAQ;QACRG,YAAY,EAAE,IAAI,CAACC,mBAAmB,KAAK,EAAE;QAC7CC,sBAAsB,EAAE,IAAI,CAACC,4BAA4B,CAACP,GAAG,CAACQ,IAAK;MACrE,CAAC,CAAC;IACJ,CAAC;IAAA,IAAArB,gBAAA,CAAAC,OAAA,uBAEa,OAAOqB,KAAa,EAAER,QAA+B,KAAK;MACtE,MAAMS,aAAa,GAAG,IAAI,CAACR,mBAAmB,CAACS,YAAY,CAACC,IAAI,CAC7DZ,GAAG,IAAKA,GAAG,CAACa,EAAE,KAAKJ,KACtB,CAAC;MAED,IAAIC,aAAa,EAAE;QACjB,IAAI,CAACR,mBAAmB,CAACY,WAAW,CAAC;UACnCd,GAAG,EAAEU,aAAa;UAClBT,QAAQ;UACRG,YAAY,EAAE,KAAK;UACnBE,sBAAsB,EAAE;YACtBZ,UAAU,EAAEA,CAAA,KAAM;cAChB,OAAO;gBACLC,MAAM,EAAE,+BAA+B;gBACvCC,OAAO,EAAE,IAAI,CAACC,SAAS,CAACC,SAAS,CAC/B,8CACF;cACF,CAAC;YACH,CAAC;YACDR,OAAO,EAAGC,KAAc,IAAK;cAC3B,IAAI,CAACC,cAAc,CAACF,OAAO,CACzB;gBACED,OAAO,EAAEqB,aAAa,CAACF,IAAK;gBAC5Bf,UAAU,EAAE,mBAAmB;gBAC/BR,MAAM,EAAE,IAAI,CAACA;cACf,CAAC,EACDM,KACF,CAAC;YACH,CAAC;YACDQ,UAAU,EAAEA,CAAA,KAAM;cAChB,IAAI,CAACP,cAAc,CAACO,UAAU,CAAC;gBAC7BN,UAAU,EAAE;cACd,CAAC,CAAC;YACJ;UACF;QACF,CAAC,CAAC;MACJ;IACF,CAAC;IAAA,IAAAN,gBAAA,CAAAC,OAAA,8BAEoB,OACnBoB,IAAY,EACZP,QAA+B,KAC5B;MACH,IAAI,CAACC,mBAAmB,CAACa,kBAAkB,CAAC;QAC1CP,IAAI;QACJP,QAAQ;QACRe,gBAAgB,EAAE,IAAI,CAACC,mBAAmB,CAACC,MAAM;QACjDC,4BAA4B,EAAE;UAC5BzB,UAAU,EAAGH,KAAK,IAAK;YACrB,MAAM6B,MAAM,GAAG,IAAAC,6BAAuB,EAAC;cACrCxB,SAAS,EAAE,IAAI,CAACA,SAAS;cACzBN;YACF,CAAC,CAAC;YAEF,OAAO;cACLI,MAAM,EAAE,0BAA0B;cAClC,GAAGyB;YACL,CAAC;UACH;QACF,CAAC;QACDb,4BAA4B,EAAE,IAAI,CAACA,4BAA4B,CAACC,IAAI;MACtE,CAAC,CAAC;IACJ,CAAC;IAAA,IAAArB,gBAAA,CAAAC,OAAA,oBAmBU,YAAY;MACrB,MAAMkC,IAAI,GAAG;QACXC,WAAW,EAAE;UAAEC,MAAM,EAAE,IAAI,CAACtB,mBAAmB,CAACuB;QAAe;MACjE,CAAC;MACD,OAAO;QACLC,OAAO,EAAE,IAAI;QACbJ,IAAI;QACJK,MAAM,EAAEL;MACV,CAAC;IACH,CAAC;IAhNC,IAAI,CAACzB,SAAS,GAAGb,mBAAmB,CAACa,SAAS;IAC9C,IAAI,CAACZ,MAAM,GAAGA,MAAM;IACpB,IAAI,CAACD,mBAAmB,GAAGA,mBAAmB;IAE9C,IAAI,CAACQ,cAAc,GAAG,IAAIoC,8BAAc,CAAC;MACvCC,UAAU,EAAE,IAAI,CAAC7C,mBAAmB,CAAC6C,UAAU;MAC/CC,QAAQ,EAAE,IAAI,CAACjC,SAAS,CAACkC,cAAc,CAAC;QACtCC,aAAa,EAAE,YAAY;QAC3B,GAAGhD,mBAAmB,CAACiD;MACzB,CAAC,CAAC;MACFC,QAAQ,EAAE;IACZ,CAAC,CAAC;IAEF,IAAI,CAAChC,mBAAmB,GAAG,IAAIiC,wCAAmB,CAAC;MACjDjD,WAAW;MACXF,mBAAmB,EAAE,IAAI,CAACA,mBAAmB;MAC7CQ,cAAc,EAAE,IAAI,CAACA,cAAc;MACnCP,MAAM;MACNgD,IAAI,EAAEjD,mBAAmB,CAACiD;IAC5B,CAAC,CAAC;IACF,IAAI,CAACG,eAAe,GAAG,IAAIC,gCAAe,CAAC;MACzCrD,mBAAmB,EAAE,IAAI,CAACA;IAC5B,CAAC,CAAC;IAEF,IAAAsD,oBAAc,EAAC,IAAI,EAAE;MACnBC,IAAI,EAAEC,YAAM;MACZnC,mBAAmB,EAAEoC,gBAAU;MAC/BC,oBAAoB,EAAED,gBAAU;MAChCE,qBAAqB,EAAEC,cAAQ;MAC/B3B,mBAAmB,EAAE2B,cAAQ;MAC7BC,OAAO,EAAED,cAAQ;MACjBE,wBAAwB,EAAEN,YAAM;MAChCO,kBAAkB,EAAEP,YAAM;MAC1BQ,iBAAiB,EAAER,YAAM;MACzBS,uBAAuB,EAAET;IAC3B,CAAC,CAAC;EACJ;EAEAD,IAAIA,CAAC;IACHW;EAGF,CAAC,EAAE;IACD,IAAI,CAACA,QAAQ,GAAGA,QAAQ;IACxB,MAAMC,SAAS,GAAG,CAChB,IAAI,CAACjD,mBAAmB,CAACqC,IAAI,CAAC;MAC5BW;IACF,CAAC,CAAC,CACH;IAED,IAAI,CAAC1D,cAAc,CAACsC,QAAQ,CAC1B,IAAAsB,wBAAqB,EAAC;MACpBC,MAAM,EAAE,IAAI,CAACH,QAAQ,IAAII,SAAS;MAClCC,OAAO,EAAE,IAAI,CAACvE,mBAAmB,CAACwE,KAAK,CAACtC,MAAM;MAC9CuC,eAAe,EAAE,IAAI,CAACvD,mBAAmB,CAACwD,aAAa,CAACxC;IAC1D,CAAC,CACH,CAAC;IAED,OAAO,MAAM;MACXiC,SAAS,CAACQ,OAAO,CAAEC,QAAQ,IAAKA,QAAQ,oBAARA,QAAQ,CAAG,CAAC,CAAC;IAC/C,CAAC;EACH;EAEA,IAAIjB,qBAAqBA,CAAA,EAAG;IAC1B,OAAO,IAAI,CAACzC,mBAAmB,CAACS,YAAY,CAACkD,GAAG,CAAEC,WAAW,KAAM;MACjEjD,EAAE,EAAEiD,WAAW,CAACjD,EAAG;MACnBkD,KAAK,EAAED,WAAW,CAACtD;IACrB,CAAC,CAAC,CAAC;EACL;EAEA,IAAIS,mBAAmBA,CAAA,EAAG;IACxB,OAAO,IAAI,CAACmB,eAAe,CAAC4B,aAAa,CACtCC,MAAM,CACJjE,GAAQ,IACP,CAAC,IAAI,CAAC2C,qBAAqB,CAAC/B,IAAI,CAC7BkD,WAAW,IAAKA,WAAW,CAACC,KAAK,KAAK/D,GAAG,CAACQ,IAC7C,CACJ,CAAC,CACAqD,GAAG,CAAE7D,GAAQ,IAAK;MACjB,OAAO;QAAEa,EAAE,EAAEb,GAAG,CAACa,EAAG;QAAEqD,KAAK,EAAElE,GAAG,CAACQ;MAAK,CAAC;IACzC,CAAC,CAAC;EACN;EAEA,IAAI2D,cAAcA,CAAA,EAAG;IACnB,OAAO,IAAI,CAACnF,mBAAmB,CAACwE,KAAK,CAACtC,MAAM,KAAK,CAAC;EACpD;EAEA,IAAIkD,WAAWA,CAAA,EAAG;IAChB,OAAO,IAAI,CAAChC,eAAe,CAACgC,WAAW;EACzC;EAEA,IAAIC,yBAAyBA,CAAA,EAAG;IAC9B,OAAO,IAAI,CAACD,WAAW,IAAI,CAAC,IAAI,CAAChC,eAAe,CAACkC,kBAAkB;EACrE;EAEAC,eAAeA,CACbC,MAAqC,EACrCvE,QAA+B,EAC/B;IACA,IAAIuE,MAAM,CAAC3D,EAAE,KAAKlC,kBAAkB,EAAE;MACpC,IAAI,CAAC8F,mBAAmB,CAAC,aAAa,CAAC;MACvC,MAAMpF,OAAO,GAAG,IAAI,CAACgB,mBAAmB,CAACqE,KAAK,CAAC,CAAC,EAAEC,mCAAc,CAAC;MACjE,IAAI,CAAC5D,kBAAkB,CAAC1B,OAAO,EAAEY,QAAQ,CAAC;MAC1C;IACF;IAEA,IAAI,CAACE,SAAS,CAAC;MAAEU,EAAE,EAAE2D,MAAM,CAAC3D,EAAE;MAAEL,IAAI,EAAEgE,MAAM,CAACN;IAAM,CAAC,EAAEjE,QAAQ,CAAC;EACjE;EA2EA6C,wBAAwBA,CAAA,EAAG;IACzB,IAAI,CAAC2B,mBAAmB,CAAC,aAAa,CAAC;EACzC;EAEA1B,kBAAkBA,CAAC6B,cAAsB,EAAE;IACzC,IAAI,CAACvE,mBAAmB,GAAG,IAAI,CAAC+D,WAAW;IAC3C,IAAI,CAAChC,eAAe,CAACgC,WAAW,GAAGQ,cAAc;EACnD;EAEA5B,iBAAiBA,CAAA,EAAG;IAClB,IAAI,CAACyB,mBAAmB,CAAC,aAAa,CAAC;EACzC;EAEAxB,uBAAuBA,CAAC4B,cAAuB,EAAE;IAC/C,IAAI,CAACnC,oBAAoB,GAAGmC,cAAc;EAC5C;EAaA,IAAIhC,OAAOA,CAAA,EAAG;IACZ,OAAO,IAAI,CAAC3C,mBAAmB,CAAC2C,OAAO;EACzC;EAEQ4B,mBAAmBA,CAAChF,UAAkB,EAAE;IAC9C,OAAO,IAAI,CAACD,cAAc,CAACsC,QAAQ,CACjC,IAAAgD,4BAAyB,EAAC;MACxBzB,MAAM,EAAE,IAAI,CAACH,QAAQ,IAAII,SAAS;MAClCC,OAAO,EAAE,IAAI,CAACvE,mBAAmB,CAACwE,KAAK,CAACtC,MAAM;MAC9CuC,eAAe,EAAE,IAAI,CAACvD,mBAAmB,CAACS,YAAY,CAACO,MAAM;MAC7DzB;IACF,CAAC,CACH,CAAC;EACH;AACF;AAACb,OAAA,CAAAE,aAAA,GAAAA,aAAA","ignoreList":[]}
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 +1 @@
1
- {"version":3,"names":["_mobx","require","_http","_types","_uuid","_events","_CollectionState","_CollectionOptimisticActions","_TaskState","_util","_services","TAG_MAX_LENGTH","exports","MAX_TAGS","TagsManagementState","constructor","params","_defineProperty2","default","TaskState","EventEmitter","container","fqdn","collection","CollectionState","events","queryName","fqdnString","join","fetchData","fetchedItems","httpClient","request","listTags","exposure","TagExposure","PRIVATE","then","data","tags","filter","id","name","items","total","length","itemKey","itemName","fetchErrorMessage","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","getTranslatedErrorMessage","TagErrorCode","TAGS_REACHED_LIMIT","biName","type","tagSubOrigin","uuid","onSuccess","onAction","newTag","createOne","submit","createTagResponse","tag","serverCreatedTag","tagToUpdate","previousName","updateOne","revision","toString","tagToDelete","deleteOne"],"sources":["../../../../src/state/TagsState/TagsManagementState.ts"],"sourcesContent":["import { action, makeObservable } from 'mobx';\nimport {\n listTags,\n createTag,\n updateTag,\n deleteTag,\n} from '@wix/bex-utils/@wix/ambassador-os-tags-v1-tag/http';\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 {\n CollectionOptimisticActions,\n} from '../CollectionOptimisticActions';\nimport { TaskState } from '../TaskState';\nimport {\n TagErrorCode,\n TagErrorVisualType,\n TypedEmitter,\n fqdnToString,\n getTranslatedErrorMessage,\n} from '../../util';\nimport { WixPatternsError, WixPatternsErrorCode } from '../../services';\nimport { CreateManyParams, DeleteManyParams, OptimisticActionBasis, UpdateManyParams } from '../OptimisticActions';\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 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.collection = new CollectionState<Tag>({\n ...params.container,\n events: {},\n queryName: [this.fqdnString, 'tags'].join('/'),\n fetchData: async () => {\n const fetchedItems = await this.container.httpClient\n .request(\n listTags({ fqdn: this.fqdnString, exposure: TagExposure.PRIVATE }),\n )\n .then(({ data: { tags = [] } }) =>\n tags.filter(({ id, name }) => id && name),\n );\n\n return {\n items: fetchedItems,\n total: fetchedItems.length,\n };\n },\n itemKey: ({ id }) => id!,\n itemName: ({ name }) => name!,\n fetchErrorMessage: () => '',\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: getTranslatedErrorMessage({\n errorCode: TagErrorCode.TAGS_REACHED_LIMIT,\n visualType,\n container: this.container,\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 createTagResponse = await this.container.httpClient.request(\n createTag({ tag: newTag }),\n );\n\n const serverCreatedTag = createTagResponse.data.tag!;\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.container.httpClient.request(\n updateTag({ tag: tagToUpdate }),\n );\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.container.httpClient.request(\n deleteTag({ tagId: tagToDelete.id! }),\n );\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","_http","_types","_uuid","_events","_CollectionState","_CollectionOptimisticActions","_TaskState","_util","_services","TAG_MAX_LENGTH","exports","MAX_TAGS","TagsManagementState","constructor","params","_defineProperty2","default","TaskState","EventEmitter","container","fqdn","collection","CollectionState","events","queryName","fqdnString","join","fetchData","fetchedItems","httpClient","request","listTags","exposure","TagExposure","PRIVATE","then","data","tags","filter","id","name","items","total","length","itemKey","itemName","fetchErrorMessage","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","getTranslatedErrorMessage","TagErrorCode","TAGS_REACHED_LIMIT","biName","type","tagSubOrigin","uuid","onSuccess","onAction","newTag","createOne","submit","createTagResponse","tag","serverCreatedTag","tagToUpdate","previousName","updateOne","revision","toString","tagToDelete","deleteOne"],"sources":["../../../../src/state/TagsState/TagsManagementState.ts"],"sourcesContent":["import { action, makeObservable } from 'mobx';\nimport {\n listTags,\n createTag,\n updateTag,\n deleteTag,\n} from '@wix/bex-utils/@wix/ambassador-os-tags-v1-tag/http';\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 {\n TagErrorCode,\n TagErrorVisualType,\n TypedEmitter,\n fqdnToString,\n getTranslatedErrorMessage,\n} from '../../util';\nimport { WixPatternsError, WixPatternsErrorCode } from '../../services';\nimport {\n CreateManyParams,\n DeleteManyParams,\n OptimisticActionBasis,\n UpdateManyParams,\n} from '../OptimisticActions';\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 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.collection = new CollectionState<Tag>({\n ...params.container,\n events: {},\n queryName: [this.fqdnString, 'tags'].join('/'),\n fetchData: async () => {\n const fetchedItems = await this.container.httpClient\n .request(\n listTags({ fqdn: this.fqdnString, exposure: TagExposure.PRIVATE }),\n )\n .then(({ data: { tags = [] } }) =>\n tags.filter(({ id, name }) => id && name),\n );\n\n return {\n items: fetchedItems,\n total: fetchedItems.length,\n };\n },\n itemKey: ({ id }) => id!,\n itemName: ({ name }) => name!,\n fetchErrorMessage: () => '',\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: getTranslatedErrorMessage({\n errorCode: TagErrorCode.TAGS_REACHED_LIMIT,\n visualType,\n container: this.container,\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 createTagResponse = await this.container.httpClient.request(\n createTag({ tag: newTag }),\n );\n\n const serverCreatedTag = createTagResponse.data.tag!;\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.container.httpClient.request(\n updateTag({ tag: tagToUpdate }),\n );\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.container.httpClient.request(\n deleteTag({ tagId: tagToDelete.id! }),\n );\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 +1 @@
1
- {"version":3,"names":["_mobx","require","WidgetsFormState","constructor","_defineProperty2","default","observable","map","Map","makeObservable","registerWidget","action","bound","isDirty","computed","key","state","_widgets","set","validate","data","isValid","widget","entries","widgetData","values","some","w","get","exports"],"sources":["../../../src/state/WidgetsFormState.ts"],"sourcesContent":["import { action, computed, makeObservable, observable } from 'mobx';\n\nexport type WidgetState = {\n isDirty: boolean;\n validate: () => Promise<{ isValid: boolean; values?: Record<string, any> }>;\n};\n\nexport type OnSaveParams = {\n widgetsFormData: { [key: string]: any };\n};\n\nexport interface WidgetsFormProps {\n}\n\nexport class WidgetsFormState {\n _widgets = observable.map<string, WidgetState>(new Map());\n\n constructor() {\n\n makeObservable(this, {\n registerWidget: action.bound,\n isDirty: computed,\n });\n }\n\n registerWidget(key: string, state: WidgetState) {\n this._widgets.set(key, state);\n }\n\n async validate(): Promise<{ isValid: boolean; data: Record<string, any> }> {\n const data: Record<string, any> = {};\n let isValid = true;\n\n for (const [key, widget] of this._widgets.entries()) {\n const widgetData = await widget.validate();\n\n if (!widgetData.isValid) {\n isValid = false;\n return { isValid: false, data: {} };\n }\n\n data[key] = widgetData.values;\n }\n\n return { isValid, data };\n }\n\n get isDirty() {\n return [...this._widgets.values()].some((w) => w.isDirty);\n }\n\n get(key: string) {\n return this._widgets.get(key);\n }\n}\n"],"mappings":";;;;;;AAAA,IAAAA,KAAA,GAAAC,OAAA;AAcO,MAAMC,gBAAgB,CAAC;EAG5BC,WAAWA,CAAA,EAAG;IAAA,IAAAC,gBAAA,CAAAC,OAAA,oBAFHC,gBAAU,CAACC,GAAG,CAAsB,IAAIC,GAAG,CAAC,CAAC,CAAC;IAIvD,IAAAC,oBAAc,EAAC,IAAI,EAAE;MACnBC,cAAc,EAAEC,YAAM,CAACC,KAAK;MAC5BC,OAAO,EAAEC;IACX,CAAC,CAAC;EACJ;EAEAJ,cAAcA,CAACK,GAAW,EAAEC,KAAkB,EAAE;IAC9C,IAAI,CAACC,QAAQ,CAACC,GAAG,CAACH,GAAG,EAAEC,KAAK,CAAC;EAC/B;EAEA,MAAMG,QAAQA,CAAA,EAA6D;IACzE,MAAMC,IAAyB,GAAG,CAAC,CAAC;IACpC,IAAIC,OAAO,GAAG,IAAI;IAElB,KAAK,MAAM,CAACN,GAAG,EAAEO,MAAM,CAAC,IAAI,IAAI,CAACL,QAAQ,CAACM,OAAO,CAAC,CAAC,EAAE;MACnD,MAAMC,UAAU,GAAG,MAAMF,MAAM,CAACH,QAAQ,CAAC,CAAC;MAE1C,IAAI,CAACK,UAAU,CAACH,OAAO,EAAE;QACvBA,OAAO,GAAG,KAAK;QACf,OAAO;UAAEA,OAAO,EAAE,KAAK;UAAED,IAAI,EAAE,CAAC;QAAE,CAAC;MACrC;MAEAA,IAAI,CAACL,GAAG,CAAC,GAAGS,UAAU,CAACC,MAAM;IAC/B;IAEA,OAAO;MAAEJ,OAAO;MAAED;IAAK,CAAC;EAC1B;EAEA,IAAIP,OAAOA,CAAA,EAAG;IACZ,OAAO,CAAC,GAAG,IAAI,CAACI,QAAQ,CAACQ,MAAM,CAAC,CAAC,CAAC,CAACC,IAAI,CAAEC,CAAC,IAAKA,CAAC,CAACd,OAAO,CAAC;EAC3D;EAEAe,GAAGA,CAACb,GAAW,EAAE;IACf,OAAO,IAAI,CAACE,QAAQ,CAACW,GAAG,CAACb,GAAG,CAAC;EAC/B;AACF;AAACc,OAAA,CAAA3B,gBAAA,GAAAA,gBAAA","ignoreList":[]}
1
+ {"version":3,"names":["_mobx","require","WidgetsFormState","constructor","_defineProperty2","default","observable","map","Map","makeObservable","registerWidget","action","bound","isDirty","computed","key","state","_widgets","set","validate","data","isValid","widget","entries","widgetData","values","some","w","get","exports"],"sources":["../../../src/state/WidgetsFormState.ts"],"sourcesContent":["import { action, computed, makeObservable, observable } from 'mobx';\n\nexport type WidgetState = {\n isDirty: boolean;\n validate: () => Promise<{ isValid: boolean; values?: Record<string, any> }>;\n};\n\nexport type OnSaveParams = {\n widgetsFormData: { [key: string]: any };\n};\n\nexport interface WidgetsFormProps {}\n\nexport class WidgetsFormState {\n _widgets = observable.map<string, WidgetState>(new Map());\n\n constructor() {\n makeObservable(this, {\n registerWidget: action.bound,\n isDirty: computed,\n });\n }\n\n registerWidget(key: string, state: WidgetState) {\n this._widgets.set(key, state);\n }\n\n async validate(): Promise<{ isValid: boolean; data: Record<string, any> }> {\n const data: Record<string, any> = {};\n let isValid = true;\n\n for (const [key, widget] of this._widgets.entries()) {\n const widgetData = await widget.validate();\n\n if (!widgetData.isValid) {\n isValid = false;\n return { isValid: false, data: {} };\n }\n\n data[key] = widgetData.values;\n }\n\n return { isValid, data };\n }\n\n get isDirty() {\n return [...this._widgets.values()].some((w) => w.isDirty);\n }\n\n get(key: string) {\n return this._widgets.get(key);\n }\n}\n"],"mappings":";;;;;;AAAA,IAAAA,KAAA,GAAAC,OAAA;AAaO,MAAMC,gBAAgB,CAAC;EAG5BC,WAAWA,CAAA,EAAG;IAAA,IAAAC,gBAAA,CAAAC,OAAA,oBAFHC,gBAAU,CAACC,GAAG,CAAsB,IAAIC,GAAG,CAAC,CAAC,CAAC;IAGvD,IAAAC,oBAAc,EAAC,IAAI,EAAE;MACnBC,cAAc,EAAEC,YAAM,CAACC,KAAK;MAC5BC,OAAO,EAAEC;IACX,CAAC,CAAC;EACJ;EAEAJ,cAAcA,CAACK,GAAW,EAAEC,KAAkB,EAAE;IAC9C,IAAI,CAACC,QAAQ,CAACC,GAAG,CAACH,GAAG,EAAEC,KAAK,CAAC;EAC/B;EAEA,MAAMG,QAAQA,CAAA,EAA6D;IACzE,MAAMC,IAAyB,GAAG,CAAC,CAAC;IACpC,IAAIC,OAAO,GAAG,IAAI;IAElB,KAAK,MAAM,CAACN,GAAG,EAAEO,MAAM,CAAC,IAAI,IAAI,CAACL,QAAQ,CAACM,OAAO,CAAC,CAAC,EAAE;MACnD,MAAMC,UAAU,GAAG,MAAMF,MAAM,CAACH,QAAQ,CAAC,CAAC;MAE1C,IAAI,CAACK,UAAU,CAACH,OAAO,EAAE;QACvBA,OAAO,GAAG,KAAK;QACf,OAAO;UAAEA,OAAO,EAAE,KAAK;UAAED,IAAI,EAAE,CAAC;QAAE,CAAC;MACrC;MAEAA,IAAI,CAACL,GAAG,CAAC,GAAGS,UAAU,CAACC,MAAM;IAC/B;IAEA,OAAO;MAAEJ,OAAO;MAAED;IAAK,CAAC;EAC1B;EAEA,IAAIP,OAAOA,CAAA,EAAG;IACZ,OAAO,CAAC,GAAG,IAAI,CAACI,QAAQ,CAACQ,MAAM,CAAC,CAAC,CAAC,CAACC,IAAI,CAAEC,CAAC,IAAKA,CAAC,CAACd,OAAO,CAAC;EAC3D;EAEAe,GAAGA,CAACb,GAAW,EAAE;IACf,OAAO,IAAI,CAACE,QAAQ,CAACW,GAAG,CAACb,GAAG,CAAC;EAC/B;AACF;AAACc,OAAA,CAAA3B,gBAAA,GAAAA,gBAAA","ignoreList":[]}
@@ -27,6 +27,7 @@ class ProductsCollectionStateDriver {
27
27
  this.collection = new _state.CollectionState({
28
28
  queryName,
29
29
  fqdn,
30
+ toExtendedFields: item => item.extendedFields,
30
31
  fetchData: query => this.backend.fetchData(query),
31
32
  // not passing collection.fetch directly to be able to spy on it
32
33
  itemKey: item => item.id,
@@ -1 +1 @@
1
- {"version":3,"names":["_WixPatternsContainer","require","_state","_createProductsBackend","_util","ProductsCollectionStateDriver","constructor","overrides","_defineProperty2","default","spy","jest","fn","backend","events","on","container","WixPatternsContainerDriver","createProductsBackend","queryName","fqdn","parseFqdn","collection","CollectionState","fetchData","query","itemKey","item","id","itemName","name","fetchErrorMessage","filters","limit","onlineState","translate","i18n","t","bind","queryCache","history","errorMonitor","showToast","initDependencies","initialFetch","lodash","reCreateCollection","getRandomItem","items","index","chance","integer","min","max","length","fetchDataSync","asComputed","exports"],"sources":["../../../src/testkit/ProductsCollectionState.driver.ts"],"sourcesContent":["import {\n WixPatternsContainerDriver,\n WixPatternsContainerDriverOverrides,\n} from './WixPatternsContainer.driver';\nimport { CollectionState, CollectionStateParams } from '../state';\nimport { InMemoryBackend, InMemoryBackendParams } from '../InMemoryBackend';\nimport { Product } from './product';\nimport { ProductFilters } from './productFilters';\nimport { createProductsBackend } from './createProductsBackend';\nimport { parseFqdn } from '../util';\n\nexport interface ProductsCollectionStateDriverOverrides\n extends WixPatternsContainerDriverOverrides {\n readonly collection?: Partial<CollectionStateParams<Product, ProductFilters>>;\n readonly backend?: Partial<InMemoryBackendParams<Product, ProductFilters>>;\n}\n\nexport class ProductsCollectionStateDriver {\n readonly container: WixPatternsContainerDriver;\n readonly backend: InMemoryBackend<Product, ProductFilters>;\n\n readonly overrides;\n collection: CollectionState<Product, ProductFilters>;\n\n constructor(overrides: ProductsCollectionStateDriverOverrides = {}) {\n this.overrides = overrides;\n\n this.container = new WixPatternsContainerDriver(overrides);\n this.backend = createProductsBackend(overrides.backend);\n\n const queryName = 'wix.cairo.products.v1.product';\n const fqdn = overrides.fqdn\n ? parseFqdn(overrides.fqdn)\n : parseFqdn(queryName);\n\n this.collection = new CollectionState({\n queryName,\n fqdn,\n fetchData: (query) => this.backend.fetchData(query), // not passing collection.fetch directly to be able to spy on it\n itemKey: (item) => item.id,\n itemName: (item) => item.name,\n fetchErrorMessage: () => 'Error fetching products',\n filters: {},\n limit: 50,\n onlineState: this.container.onlineState,\n translate: this.container.i18n.t.bind(this.container.i18n),\n queryCache: this.container.queryCache,\n history: this.container.history,\n errorMonitor: this.container.errorMonitor,\n showToast: this.container.showToast,\n initDependencies: () => this.container.container.initialFetch(),\n lodash: this.container.container.lodash,\n ...overrides.collection,\n });\n }\n\n reCreateCollection() {\n const {\n queryName,\n query: { limit },\n filters,\n } = this.collection;\n this.collection = new CollectionState({\n queryName,\n fqdn: parseFqdn(queryName),\n fetchData: (query) => this.backend.fetchData(query), // not passing collection.fetch directly to be able to spy on it\n itemKey: (item) => item.id,\n itemName: (item) => item.name,\n fetchErrorMessage: () => 'Error fetching products',\n filters,\n limit,\n onlineState: this.container.onlineState,\n translate: this.container.i18n.t.bind(this.container.i18n),\n queryCache: this.container.queryCache,\n history: this.container.history,\n errorMonitor: this.container.errorMonitor,\n showToast: this.container.showToast,\n initDependencies: () => this.container.container.initialFetch(),\n lodash: this.container.container.lodash,\n ...this.overrides.collection,\n });\n }\n\n getRandomItem() {\n const { items } = this;\n const index = this.backend.chance.integer({\n min: 0,\n max: items.length - 1,\n });\n\n return {\n index,\n item: items[index],\n };\n }\n\n fetchDataStartSpy = () => {\n const spy = jest.fn();\n this.backend.events.on('fetchDataStart', spy);\n return spy;\n };\n\n get items(): Product[] {\n const {\n collection: { query },\n } = this;\n const { items } = this.backend.fetchDataSync(query.asComputed);\n return items;\n }\n\n get chance() {\n return this.backend.chance;\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_WixPatternsContainer","require","_state","_createProductsBackend","_util","ProductsCollectionStateDriver","constructor","overrides","_defineProperty2","default","spy","jest","fn","backend","events","on","container","WixPatternsContainerDriver","createProductsBackend","queryName","fqdn","parseFqdn","collection","CollectionState","toExtendedFields","item","extendedFields","fetchData","query","itemKey","id","itemName","name","fetchErrorMessage","filters","limit","onlineState","translate","i18n","t","bind","queryCache","history","errorMonitor","showToast","initDependencies","initialFetch","lodash","reCreateCollection","getRandomItem","items","index","chance","integer","min","max","length","fetchDataSync","asComputed","exports"],"sources":["../../../src/testkit/ProductsCollectionState.driver.ts"],"sourcesContent":["import {\n WixPatternsContainerDriver,\n WixPatternsContainerDriverOverrides,\n} from './WixPatternsContainer.driver';\nimport { CollectionState, CollectionStateParams } from '../state';\nimport { InMemoryBackend, InMemoryBackendParams } from '../InMemoryBackend';\nimport { Product } from './product';\nimport { ProductFilters } from './productFilters';\nimport { createProductsBackend } from './createProductsBackend';\nimport { parseFqdn } from '../util';\n\nexport interface ProductsCollectionStateDriverOverrides\n extends WixPatternsContainerDriverOverrides {\n readonly collection?: Partial<CollectionStateParams<Product, ProductFilters>>;\n readonly backend?: Partial<InMemoryBackendParams<Product, ProductFilters>>;\n}\n\nexport class ProductsCollectionStateDriver {\n readonly container: WixPatternsContainerDriver;\n readonly backend: InMemoryBackend<Product, ProductFilters>;\n\n readonly overrides;\n collection: CollectionState<Product, ProductFilters>;\n\n constructor(overrides: ProductsCollectionStateDriverOverrides = {}) {\n this.overrides = overrides;\n\n this.container = new WixPatternsContainerDriver(overrides);\n this.backend = createProductsBackend(overrides.backend);\n\n const queryName = 'wix.cairo.products.v1.product';\n const fqdn = overrides.fqdn\n ? parseFqdn(overrides.fqdn)\n : parseFqdn(queryName);\n\n this.collection = new CollectionState({\n queryName,\n fqdn,\n toExtendedFields: (item) => item.extendedFields,\n fetchData: (query) => this.backend.fetchData(query), // not passing collection.fetch directly to be able to spy on it\n itemKey: (item) => item.id,\n itemName: (item) => item.name,\n fetchErrorMessage: () => 'Error fetching products',\n filters: {},\n limit: 50,\n onlineState: this.container.onlineState,\n translate: this.container.i18n.t.bind(this.container.i18n),\n queryCache: this.container.queryCache,\n history: this.container.history,\n errorMonitor: this.container.errorMonitor,\n showToast: this.container.showToast,\n initDependencies: () => this.container.container.initialFetch(),\n lodash: this.container.container.lodash,\n ...overrides.collection,\n });\n }\n\n reCreateCollection() {\n const {\n queryName,\n query: { limit },\n filters,\n } = this.collection;\n this.collection = new CollectionState({\n queryName,\n fqdn: parseFqdn(queryName),\n fetchData: (query) => this.backend.fetchData(query), // not passing collection.fetch directly to be able to spy on it\n itemKey: (item) => item.id,\n itemName: (item) => item.name,\n fetchErrorMessage: () => 'Error fetching products',\n filters,\n limit,\n onlineState: this.container.onlineState,\n translate: this.container.i18n.t.bind(this.container.i18n),\n queryCache: this.container.queryCache,\n history: this.container.history,\n errorMonitor: this.container.errorMonitor,\n showToast: this.container.showToast,\n initDependencies: () => this.container.container.initialFetch(),\n lodash: this.container.container.lodash,\n ...this.overrides.collection,\n });\n }\n\n getRandomItem() {\n const { items } = this;\n const index = this.backend.chance.integer({\n min: 0,\n max: items.length - 1,\n });\n\n return {\n index,\n item: items[index],\n };\n }\n\n fetchDataStartSpy = () => {\n const spy = jest.fn();\n this.backend.events.on('fetchDataStart', spy);\n return spy;\n };\n\n get items(): Product[] {\n const {\n collection: { query },\n } = this;\n const { items } = this.backend.fetchDataSync(query.asComputed);\n return items;\n }\n\n get chance() {\n return this.backend.chance;\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["_chance","require","_lodash","_InMemoryBackend","_nestifyItems","createFolder","chance","createdAt","date","min","Date","now","max","rest","id","guid","name","updatedAt","status","pickone","createFoldersBackend","createOne","depth","total","forceEmptyParentInEachLevel","foldersStaticData","params","Chance","backend","InMemoryBackend","enableTotal","i","raw","itemKey","item","Math","length","predicate","query","search","filters","parentId","folderStatus","level","hasChildren","ancestorId","rgx","RegExp","escapeRegExp","_folderStatus$","test","some","from","valueOf","to","_item$breadcrumbs","breadcrumbs","String","childCount","orderBy","sort","projection","_query$fields","fields","includes","undefined","nestifyItems","values","setDepthOnItem","parent","exports"],"sources":["../../../src/testkit/createFoldersBackend.ts"],"sourcesContent":["import { Folder, FolderRaw } from './folder';\nimport { Chance } from 'chance';\n\nimport { FolderFilters } from './folderFilters';\nimport { escapeRegExp } from 'lodash';\nimport { InMemoryBackend, InMemoryBackendParams } from '../InMemoryBackend';\nimport { nestifyItems } from './nestifyItems';\n\nexport function createFolder(\n chance: Chance.Chance,\n {\n createdAt = chance.date({\n min: new Date(Date.now() - 365 * 24 * 60 * 60 * 1000),\n max: new Date(Date.now() - 2 * 24 * 60 * 60 * 1000),\n }) as Date,\n ...rest\n }: Partial<Folder> = {},\n): Folder {\n return {\n id: chance.guid(),\n name: chance.name(),\n createdAt,\n updatedAt: createdAt,\n status: chance.pickone(['visible', 'hidden']),\n ...rest,\n };\n}\n\nexport type CreateFoldersBackendParams = Partial<\n InMemoryBackendParams<Folder, FolderFilters>\n> & {\n enableTotal?: boolean;\n depth?: number;\n forceEmptyParentInEachLevel?: boolean;\n foldersStaticData?: FolderRaw[];\n};\n\nexport const createFoldersBackend = ({\n createOne,\n depth = 4,\n total = 1000,\n forceEmptyParentInEachLevel,\n foldersStaticData,\n ...params\n}: CreateFoldersBackendParams = {}) => {\n const chance = new Chance();\n const backend = new InMemoryBackend<Folder, FolderFilters>({\n enableTotal: params?.enableTotal,\n createOne:\n createOne ??\n (foldersStaticData\n ? (i) => {\n const raw = foldersStaticData[i];\n return {\n ...raw,\n status: raw.status as Folder['status'],\n createdAt: new Date(raw.createdAt),\n updatedAt: new Date(raw.updatedAt),\n };\n }\n : () => createFolder(chance)),\n itemKey: (item) => item.id,\n total: foldersStaticData\n ? Math.min(foldersStaticData.length, total)\n : total,\n predicate: (query) => {\n const { search } = query;\n const filters = query.filters ?? {};\n const { id, parentId, folderStatus, updatedAt, level, hasChildren, ancestorId } =\n filters;\n const rgx = new RegExp(escapeRegExp(search), 'i');\n\n return (item) => {\n if (search && !rgx.test(item.name)) {\n return false;\n }\n\n if (\n folderStatus &&\n folderStatus.length &&\n folderStatus[0]?.id !== 'all' &&\n !folderStatus.some((status) => status.id === item.status)\n ) {\n return false;\n }\n\n if (\n item.updatedAt &&\n updatedAt?.from &&\n updatedAt.from.valueOf() > item.updatedAt.valueOf()\n ) {\n return false;\n }\n\n if (\n item.updatedAt &&\n updatedAt?.to &&\n updatedAt.to.valueOf() < item.updatedAt.valueOf()\n ) {\n return false;\n }\n\n if (\n parentId &&\n parentId.length &&\n !parentId.some((parentId) =>\n parentId === 'null'\n ? item.parentId == null\n : item.parentId === parentId,\n )\n ) {\n return false;\n }\n\n if (\n ancestorId &&\n ancestorId.length &&\n !ancestorId.some((ancestorId) =>\n item.breadcrumbs?.some(({ id }) => id === ancestorId),\n )\n ) {\n return false;\n }\n\n if (id && id.length && !id.some((id) => id === item.id)) {\n return false;\n }\n\n if (\n level &&\n level.length &&\n !level.some((level) => level === String(item.level))\n ) {\n return false;\n }\n\n if (hasChildren && hasChildren[0] === 'true' && !item.childCount) {\n return false;\n }\n\n if (hasChildren && hasChildren[0] === 'false' && item.childCount) {\n return false;\n }\n\n return true;\n };\n },\n orderBy: (query) => {\n return [...(query.sort ?? [])];\n },\n projection: (query) => (item) => {\n if (!query.fields?.includes('breadcrumbs')) {\n return {\n ...item,\n breadcrumbs: undefined,\n };\n }\n return item;\n },\n ...params,\n });\n\n if (!foldersStaticData) {\n nestifyItems(backend.values, {\n forceEmptyParentInEachLevel,\n depth,\n setDepthOnItem: (item, { depth, parent }) => {\n item.level = depth;\n if (parent) {\n parent.childCount = (parent.childCount ?? 0) + 1;\n }\n },\n });\n }\n\n return backend;\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_chance","require","_lodash","_InMemoryBackend","_nestifyItems","createFolder","chance","createdAt","date","min","Date","now","max","rest","id","guid","name","updatedAt","status","pickone","createFoldersBackend","createOne","depth","total","forceEmptyParentInEachLevel","foldersStaticData","params","Chance","backend","InMemoryBackend","enableTotal","i","raw","itemKey","item","Math","length","predicate","query","search","filters","parentId","folderStatus","level","hasChildren","ancestorId","rgx","RegExp","escapeRegExp","_folderStatus$","test","some","from","valueOf","to","_item$breadcrumbs","breadcrumbs","String","childCount","orderBy","sort","projection","_query$fields","fields","includes","undefined","nestifyItems","values","setDepthOnItem","parent","exports"],"sources":["../../../src/testkit/createFoldersBackend.ts"],"sourcesContent":["import { Folder, FolderRaw } from './folder';\nimport { Chance } from 'chance';\n\nimport { FolderFilters } from './folderFilters';\nimport { escapeRegExp } from 'lodash';\nimport { InMemoryBackend, InMemoryBackendParams } from '../InMemoryBackend';\nimport { nestifyItems } from './nestifyItems';\n\nexport function createFolder(\n chance: Chance.Chance,\n {\n createdAt = chance.date({\n min: new Date(Date.now() - 365 * 24 * 60 * 60 * 1000),\n max: new Date(Date.now() - 2 * 24 * 60 * 60 * 1000),\n }) as Date,\n ...rest\n }: Partial<Folder> = {},\n): Folder {\n return {\n id: chance.guid(),\n name: chance.name(),\n createdAt,\n updatedAt: createdAt,\n status: chance.pickone(['visible', 'hidden']),\n ...rest,\n };\n}\n\nexport type CreateFoldersBackendParams = Partial<\n InMemoryBackendParams<Folder, FolderFilters>\n> & {\n enableTotal?: boolean;\n depth?: number;\n forceEmptyParentInEachLevel?: boolean;\n foldersStaticData?: FolderRaw[];\n};\n\nexport const createFoldersBackend = ({\n createOne,\n depth = 4,\n total = 1000,\n forceEmptyParentInEachLevel,\n foldersStaticData,\n ...params\n}: CreateFoldersBackendParams = {}) => {\n const chance = new Chance();\n const backend = new InMemoryBackend<Folder, FolderFilters>({\n enableTotal: params?.enableTotal,\n createOne:\n createOne ??\n (foldersStaticData\n ? (i) => {\n const raw = foldersStaticData[i];\n return {\n ...raw,\n status: raw.status as Folder['status'],\n createdAt: new Date(raw.createdAt),\n updatedAt: new Date(raw.updatedAt),\n };\n }\n : () => createFolder(chance)),\n itemKey: (item) => item.id,\n total: foldersStaticData\n ? Math.min(foldersStaticData.length, total)\n : total,\n predicate: (query) => {\n const { search } = query;\n const filters = query.filters ?? {};\n const {\n id,\n parentId,\n folderStatus,\n updatedAt,\n level,\n hasChildren,\n ancestorId,\n } = filters;\n const rgx = new RegExp(escapeRegExp(search), 'i');\n\n return (item) => {\n if (search && !rgx.test(item.name)) {\n return false;\n }\n\n if (\n folderStatus &&\n folderStatus.length &&\n folderStatus[0]?.id !== 'all' &&\n !folderStatus.some((status) => status.id === item.status)\n ) {\n return false;\n }\n\n if (\n item.updatedAt &&\n updatedAt?.from &&\n updatedAt.from.valueOf() > item.updatedAt.valueOf()\n ) {\n return false;\n }\n\n if (\n item.updatedAt &&\n updatedAt?.to &&\n updatedAt.to.valueOf() < item.updatedAt.valueOf()\n ) {\n return false;\n }\n\n if (\n parentId &&\n parentId.length &&\n !parentId.some((parentId) =>\n parentId === 'null'\n ? item.parentId == null\n : item.parentId === parentId,\n )\n ) {\n return false;\n }\n\n if (\n ancestorId &&\n ancestorId.length &&\n !ancestorId.some((ancestorId) =>\n item.breadcrumbs?.some(({ id }) => id === ancestorId),\n )\n ) {\n return false;\n }\n\n if (id && id.length && !id.some((id) => id === item.id)) {\n return false;\n }\n\n if (\n level &&\n level.length &&\n !level.some((level) => level === String(item.level))\n ) {\n return false;\n }\n\n if (hasChildren && hasChildren[0] === 'true' && !item.childCount) {\n return false;\n }\n\n if (hasChildren && hasChildren[0] === 'false' && item.childCount) {\n return false;\n }\n\n return true;\n };\n },\n orderBy: (query) => {\n return [...(query.sort ?? [])];\n },\n projection: (query) => (item) => {\n if (!query.fields?.includes('breadcrumbs')) {\n return {\n ...item,\n breadcrumbs: undefined,\n };\n }\n return item;\n },\n ...params,\n });\n\n if (!foldersStaticData) {\n nestifyItems(backend.values, {\n forceEmptyParentInEachLevel,\n depth,\n setDepthOnItem: (item, { depth, parent }) => {\n item.level = depth;\n if (parent) {\n parent.childCount = (parent.childCount ?? 0) + 1;\n }\n },\n });\n }\n\n return backend;\n};\n"],"mappings":"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","ignoreList":[]}
@@ -1,2 +1,4 @@
1
+ "use strict";
1
2
 
3
+ exports.__esModule = true;
2
4
  //# sourceMappingURL=product.js.map
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["../../../src/testkit/product.ts"],"sourcesContent":["export interface Product {\n id: string;\n name: string;\n description: string;\n price: number;\n img: string;\n status?: 'available' | 'outOfStock' | 'archived';\n country?: string;\n createdAt: Date;\n updatedAt: Date;\n tags?: Tags;\n}\n\nexport interface Tags {\n privateTags?: TagList;\n tags?: TagList;\n}\nexport interface TagList {\n tagIds?: string[];\n}\n"],"mappings":"","ignoreList":[]}
1
+ {"version":3,"names":[],"sources":["../../../src/testkit/product.ts"],"sourcesContent":["import { ExtendedFields } from '../services';\n\nexport interface Product {\n id: string;\n name: string;\n description: string;\n price: number;\n img: string;\n status?: 'available' | 'outOfStock' | 'archived';\n country?: string;\n extendedFields?: ExtendedFields;\n createdAt: Date;\n updatedAt: Date;\n tags?: Tags;\n}\n\nexport interface Tags {\n privateTags?: TagList;\n tags?: TagList;\n}\nexport interface TagList {\n tagIds?: string[];\n}\n"],"mappings":"","ignoreList":[]}