@wix/bex-core 2.36.0 → 2.38.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 (98) hide show
  1. package/dist/cjs/InMemoryBackend/InMemoryBackend.js +6 -2
  2. package/dist/cjs/InMemoryBackend/InMemoryBackend.js.map +1 -1
  3. package/dist/cjs/assets/locale/messages_cs.json +2 -0
  4. package/dist/cjs/assets/locale/messages_da.json +2 -0
  5. package/dist/cjs/assets/locale/messages_de.json +2 -0
  6. package/dist/cjs/assets/locale/messages_en.json +3 -1
  7. package/dist/cjs/assets/locale/messages_es.json +2 -0
  8. package/dist/cjs/assets/locale/messages_fr.json +2 -0
  9. package/dist/cjs/assets/locale/messages_hi.json +2 -0
  10. package/dist/cjs/assets/locale/messages_id.json +2 -0
  11. package/dist/cjs/assets/locale/messages_it.json +2 -0
  12. package/dist/cjs/assets/locale/messages_ja.json +2 -0
  13. package/dist/cjs/assets/locale/messages_ko.json +2 -0
  14. package/dist/cjs/assets/locale/messages_nl.json +2 -0
  15. package/dist/cjs/assets/locale/messages_no.json +2 -0
  16. package/dist/cjs/assets/locale/messages_pl.json +2 -0
  17. package/dist/cjs/assets/locale/messages_pt.json +2 -0
  18. package/dist/cjs/assets/locale/messages_ru.json +2 -0
  19. package/dist/cjs/assets/locale/messages_sv.json +2 -0
  20. package/dist/cjs/assets/locale/messages_th.json +2 -0
  21. package/dist/cjs/assets/locale/messages_tr.json +2 -0
  22. package/dist/cjs/assets/locale/messages_uk.json +2 -0
  23. package/dist/cjs/assets/locale/messages_vi.json +2 -0
  24. package/dist/cjs/assets/locale/messages_visuale2e.json +2 -0
  25. package/dist/cjs/assets/locale/messages_zh.json +2 -0
  26. package/dist/cjs/model/actionMove.js.map +1 -1
  27. package/dist/cjs/services/translations.js.map +1 -1
  28. package/dist/cjs/state/CollectionOptimisticActions.js +2 -1
  29. package/dist/cjs/state/CollectionOptimisticActions.js.map +1 -1
  30. package/dist/cjs/state/CollectionOptimisticProcessor.js +1 -0
  31. package/dist/cjs/state/CollectionOptimisticProcessor.js.map +1 -1
  32. package/dist/cjs/state/CollectionState.js +16 -7
  33. package/dist/cjs/state/CollectionState.js.map +1 -1
  34. package/dist/cjs/state/index.js +7 -0
  35. package/dist/cjs/state/index.js.map +1 -1
  36. package/dist/cjs/state/optimistic-simulation/filterByApplyAllPatches.js +19 -0
  37. package/dist/cjs/state/optimistic-simulation/filterByApplyAllPatches.js.map +1 -0
  38. package/dist/cjs/state/optimistic-simulation/mergePatchedItems.js +3 -0
  39. package/dist/cjs/state/optimistic-simulation/mergePatchedItems.js.map +1 -1
  40. package/dist/cjs/state/optimistic-simulation/orderByMoves.js +8 -0
  41. package/dist/cjs/state/optimistic-simulation/orderByMoves.js.map +1 -1
  42. package/dist/esm/InMemoryBackend/InMemoryBackend.js +8 -2
  43. package/dist/esm/InMemoryBackend/InMemoryBackend.js.map +1 -1
  44. package/dist/esm/assets/locale/messages_cs.json +2 -0
  45. package/dist/esm/assets/locale/messages_da.json +2 -0
  46. package/dist/esm/assets/locale/messages_de.json +2 -0
  47. package/dist/esm/assets/locale/messages_en.json +3 -1
  48. package/dist/esm/assets/locale/messages_es.json +2 -0
  49. package/dist/esm/assets/locale/messages_fr.json +2 -0
  50. package/dist/esm/assets/locale/messages_hi.json +2 -0
  51. package/dist/esm/assets/locale/messages_id.json +2 -0
  52. package/dist/esm/assets/locale/messages_it.json +2 -0
  53. package/dist/esm/assets/locale/messages_ja.json +2 -0
  54. package/dist/esm/assets/locale/messages_ko.json +2 -0
  55. package/dist/esm/assets/locale/messages_nl.json +2 -0
  56. package/dist/esm/assets/locale/messages_no.json +2 -0
  57. package/dist/esm/assets/locale/messages_pl.json +2 -0
  58. package/dist/esm/assets/locale/messages_pt.json +2 -0
  59. package/dist/esm/assets/locale/messages_ru.json +2 -0
  60. package/dist/esm/assets/locale/messages_sv.json +2 -0
  61. package/dist/esm/assets/locale/messages_th.json +2 -0
  62. package/dist/esm/assets/locale/messages_tr.json +2 -0
  63. package/dist/esm/assets/locale/messages_uk.json +2 -0
  64. package/dist/esm/assets/locale/messages_vi.json +2 -0
  65. package/dist/esm/assets/locale/messages_visuale2e.json +2 -0
  66. package/dist/esm/assets/locale/messages_zh.json +2 -0
  67. package/dist/esm/state/CollectionOptimisticActions.js +3 -1
  68. package/dist/esm/state/CollectionOptimisticActions.js.map +1 -1
  69. package/dist/esm/state/CollectionOptimisticProcessor.js +1 -0
  70. package/dist/esm/state/CollectionOptimisticProcessor.js.map +1 -1
  71. package/dist/esm/state/CollectionState.js +14 -4
  72. package/dist/esm/state/CollectionState.js.map +1 -1
  73. package/dist/esm/state/index.js +1 -0
  74. package/dist/esm/state/index.js.map +1 -1
  75. package/dist/esm/state/optimistic-simulation/filterByApplyAllPatches.js +10 -0
  76. package/dist/esm/state/optimistic-simulation/filterByApplyAllPatches.js.map +1 -0
  77. package/dist/esm/state/optimistic-simulation/mergePatchedItems.js +3 -0
  78. package/dist/esm/state/optimistic-simulation/mergePatchedItems.js.map +1 -1
  79. package/dist/esm/state/optimistic-simulation/orderByMoves.js +8 -1
  80. package/dist/esm/state/optimistic-simulation/orderByMoves.js.map +1 -1
  81. package/dist/types/InMemoryBackend/InMemoryBackend.d.ts +10 -6
  82. package/dist/types/InMemoryBackend/InMemoryBackend.d.ts.map +1 -1
  83. package/dist/types/model/actionMove.d.ts +1 -1
  84. package/dist/types/model/actionMove.d.ts.map +1 -1
  85. package/dist/types/services/translations.d.ts +1 -1
  86. package/dist/types/services/translations.d.ts.map +1 -1
  87. package/dist/types/state/CollectionOptimisticActions.d.ts.map +1 -1
  88. package/dist/types/state/CollectionOptimisticProcessor.d.ts.map +1 -1
  89. package/dist/types/state/CollectionState.d.ts +2 -0
  90. package/dist/types/state/CollectionState.d.ts.map +1 -1
  91. package/dist/types/state/index.d.ts +1 -0
  92. package/dist/types/state/index.d.ts.map +1 -1
  93. package/dist/types/state/optimistic-simulation/filterByApplyAllPatches.d.ts +5 -0
  94. package/dist/types/state/optimistic-simulation/filterByApplyAllPatches.d.ts.map +1 -0
  95. package/dist/types/state/optimistic-simulation/mergePatchedItems.d.ts.map +1 -1
  96. package/dist/types/state/optimistic-simulation/orderByMoves.d.ts +1 -0
  97. package/dist/types/state/optimistic-simulation/orderByMoves.d.ts.map +1 -1
  98. package/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["../../../src/services/translations.ts"],"sourcesContent":["// DO NOT UPDATE THIS FILE! This file was auto-generated by generate-keys.ts\nexport type TranslationsKeys =\n | 'cairo.table.filter.button'\n | 'cairo.table.listView'\n | 'cairo.table.gridView'\n | 'cairo.table.deleteViewModal.title'\n | 'cairo.table.deleteViewModal.deleteButton'\n | 'cairo.table.deleteViewModal.deleteButtonTwo'\n | 'cairo.table.deleteViewModal.cancelButton'\n | 'cairo.table.clearFilters.button'\n | 'cairo.table.saveView.button'\n | 'cairo.table.noFiltersApplied.label'\n | 'cairo.table.saveViewModal.title'\n | 'cairo.table.saveViewModal.body'\n | 'cairo.table.saveViewModal.learnMoreLink'\n | 'cairo.table.saveViewModal.nameLabel'\n | 'cairo.table.saveViewModal.placeholder'\n | 'cairo.table.custom-columns.button.tooltip'\n | 'cairo.viewDropdown.allOrders.defaultViews'\n | 'cairo.filtersPanel.noAppliedFilters.label'\n | 'cairo.filtersPanel.clear.button'\n | 'cairo.filtersPanel.saveView.button'\n | 'cairo.filtersPanel.done.button'\n | 'cairo.viewDropdown.unsavedView.status'\n | 'cairo.viewDropdown.category.savedViews'\n | 'cairo.viewDropdown.category.predefinedViews'\n | 'cairo.viewsDropdown.allItems.label'\n | 'cairo.noFiltersApplied.validationTooltip'\n | 'cairo.noViewName.validationTooltip'\n | 'cairo.saveViewModal.saveButton'\n | 'cairo.saveViewModal.cancelButton'\n | 'cairo.cancel.button'\n | 'cairo.delete.button'\n | 'cairo.offline'\n | 'cairo.deleteModal.title'\n | 'cairo.deleteModal.body'\n | 'cairo.selectPlaceholder'\n | 'cairo.moreFilters'\n | 'cairo.filtersPanel.header'\n | 'cairo.filtersPanel.sections.default.title'\n | 'cairo.toolbar.moreFiltersButton'\n | 'cairo.continue'\n | 'cairo.emptyState.title'\n | 'cairo.emptyState.subtitle.nothingMatchesCriteria'\n | 'cairo.emptyState.subtitle.nothingAvailable'\n | 'cairo.emptyState.reset.button'\n | 'cairo.clear'\n | 'cairo.searchPlaceholder'\n | 'cairo.selectAll'\n | 'cairo.deselectAll'\n | 'cairo.bulkSelected.withMaxNumber'\n | 'cairo.saveViewModal.error.message.unexpected'\n | 'cairo.toast.undo'\n | 'cairo.toast.retry'\n | 'cairo.toast.undone'\n | 'cairo.emptyState.title.nothingAvailable'\n | 'cairo.confirmModal.title'\n | 'cairo.confirm.button'\n | 'cairo.picker.createNew.button.tooltip'\n | 'cairo.picker.createNew.button'\n | 'cairo.moreActions'\n | 'cairo.connection.error.text'\n | 'cairo.emptyState.additem.text'\n | 'cairo.search.Tab.noresults.text'\n | 'cairo.technical.error.text'\n | 'cairo.search.filter.Tab.noresults.text'\n | 'cairo.emptyState.additem.cta'\n | 'cairo.emptyState.additem.title'\n | 'cairo.search.nothingMatches.text'\n | 'cairo.connection.error.title'\n | 'cairo.search.filter.nothingMatches.text'\n | 'cairo.technical.error.title'\n | 'cairo.error.tryAgain.cta'\n | 'cairo.export.successMessage'\n | 'cairo.export.exportTypeQuestionTitle'\n | 'cairo.export.selectedItems'\n | 'cairo.export.filteredItems'\n | 'cairo.export.exportToCSVMessage'\n | 'cairo.export.export'\n | 'cairo.export.cancelButton'\n | 'cairo.export.exporting'\n | 'cairo.export.exportingTitle'\n | 'cairo.export.exportingDescription'\n | 'cairo.export.allItems'\n | 'cairo.export.downloadManually'\n | 'cairo.export.leaveSiteTitle'\n | 'cairo.export.leaveSiteMessage'\n | 'cairo.export.cancelTheExport'\n | 'cairo.export.cancelTheExportGoBack'\n | 'cairo.export.exportFailed'\n | 'cairo.export.exportFailedMessage'\n | 'cairo.export.tryAgain'\n | 'cairo.export.cancelTheExportConfirm'\n | 'cairo.export.cancelMessage'\n | 'cairo.export.databaseIssueMessage'\n | 'cairo.export.overloadErrorMessage'\n | 'cairo.export.serverErrorMessage'\n | 'cairo.export.noPermissionsCTA'\n | 'cairo.export.noPermissionsMessage'\n | 'cairo.export.sessionExpiredMessage'\n | 'cairo.error.contactSupport.cta'\n | 'cairo.export.offlineMessage'\n | 'cairo.sortableColumns.modal.cancel'\n | 'cairo.sortableColumns.notification.undo'\n | 'cairo.sortableColumns.modal.CTA'\n | 'cairo.dragAndDrop.discardChanges.CTA'\n | 'cairo.dragAndDrop.discardChanges.title'\n | 'cairo.dragAndDrop.discardChanges.description'\n | 'cairo.dragAndDrop.note.learnMore'\n | 'cairo.dragAndDrop.discardChanges.cancel'\n | 'cairo.dragAndDrop.note'\n | 'cairo.dragAndDrop.error.toast'\n | 'cairo.dragAndDrop.leaveSiteTitle'\n | 'cairo.dragAndDrop.leaveSiteMessage'\n | 'cairo.dragAndDrop.reorderMode.toolbar.title'\n | 'cairo.dragAndDrop.reorderMode.toolbar.title.learnMore'\n | 'cairo.dragAndDrop.reorderMode.toolbar.cancel.cta'\n | 'cairo.dragAndDrop.reorderMode.toolbar.save.cta'\n | 'cairo.dragAndDrop.reorderMode.toast.success'\n | 'cairo.dragAndDrop.reorderMode.discardChanges.title'\n | 'cairo.dragAndDrop.reorderMode.discardChanges.description'\n | 'cairo.dragAndDrop.reorderMode.discardChanges.applyAndClose.CTA'\n | 'cairo.dragAndDrop.reorderMode.discardChanges.cancel.CTA'\n | 'cairo.emptyState.filters.nothingFound.title'\n | 'cairo.emptyState.filters.nothingFound.description'\n | 'cairo.dragAndDrop.leaveSite.modal.cancel.CTA'\n | 'cairo.dragAndDrop.leaveSite.modal.title'\n | 'cairo.filtersPanel.dateRange.title'\n | 'cairo.filtersPanel.date.7days'\n | 'cairo.filtersPanel.date.lastMonth'\n | 'cairo.emptyState.filters.nothingFound.clearFilters.CTA'\n | 'cairo.dragAndDrop.leaveSite.modal.description'\n | 'cairo.filtersPanel.date.title'\n | 'cairo.filtersPanel.time.title'\n | 'cairo.filtersPanel.date.none'\n | 'cairo.filtersPanel.date.custom'\n | 'cairo.filtersPanel.date.to.placeholder'\n | 'cairo.dragAndDrop.leaveSite.modal.leave.CTA'\n | 'cairo.filtersPanel.date.14days'\n | 'cairo.filtersPanel.date.from.placeholder'\n | 'cairo.table.custom-columns.title'\n | 'cairo.table.custom-columns.subtitle'\n | 'cairo.table.custom-columns.dragAndDrop.subtitle'\n | 'cairo.table.custom-columns.disabled.tooltip'\n | 'cairo.table.custom-columns.hidden.disabled.tooltip'\n | 'cairo.emptyState.subtitle.noFilterResults'\n | 'cairo.search.noresults.title'\n | 'cairo.manageView.saveChanges.disabled.predefinedView.tooltip'\n | 'cairo.manageView.Delete.CTA.error.toast'\n | 'cairo.manageView.Delete.disabled.predefinedView.tooltip'\n | 'cairo.manageView.Rename.disabled.tooltip'\n | 'cairo.manageView.CTA'\n | 'cairo.manageView.saveChanges.error.toast'\n | 'cairo.manageView.Rename.error.toast'\n | 'cairo.manageView.Rename.modal.cancel.CTA'\n | 'cairo.manageView.Rename.modal.field.title'\n | 'cairo.manageView.Delete.CTA'\n | 'cairo.manageView.saveChanges.CTA'\n | 'cairo.manageView.Rename.modal.title'\n | 'cairo.manageView.saveChanges.disabled.tooltip'\n | 'cairo.manageView.Rename.modal.save.CTA'\n | 'cairo.manageView.saveView.error.toast'\n | 'cairo.manageView.saveNewView.CTA'\n | 'cairo.manageView.Rename.CTA'\n | 'cairo.manageView.Rename.disabled.predefinedView.tooltip'\n | 'cairo.table.advanced-sorting.ascending.order'\n | 'cairo.table.advanced-sorting.subtitle'\n | 'cairo.table.advanced-sorting.disabled.cta.tooltip'\n | 'cairo.table.advanced-sorting.descending.order'\n | 'cairo.table.advanced-sorting.cta'\n | 'cairo.table.advanced-sorting.remove.button.tooltip'\n | 'cairo.table.advanced-sorting.dragAndDrop.tooltip'\n | 'cairo.table.advanced-sorting.sortManually.toast'\n | 'cairo.table.advanced-sorting.sortByColumns.toast'\n | 'cairo.table.advanced-sorting.button.tooltip'\n | 'cairo.dragAndDrop.list-aria-label.sr'\n | 'cairo.dragAndDrop.reorder-cancelled.sr'\n | 'cairo.dragAndDrop.live-region.itemGrabbed.sr'\n | 'cairo.manageView.tooltip'\n | 'matvey.test'\n | 'cairo.table.custom-columns.move.disabled.tooltip'\n | 'cairo.manageView.unsaved.tooltip'\n | 'cairo.table.advanced-sorting.title.tooltip'\n | 'cairo.selectorModal.searchEmptyState.subtitle'\n | 'cairo.selectorModal.searchEmptyState.changeFilter.subtitle'\n | 'cairo.collectionsPage.add.item.CTA'\n | 'section.header.folders'\n | 'section.header.items'\n | 'cairo.folders.showAll.button'\n | 'cairo.folders.showLess.button'\n | 'cairo.passiveEmptyState.title'\n | 'cairo.passiveEmptyState.subtitle'\n | 'cairo.viewsDropdown.nothingMatches.text'\n | 'cairo.manageView.setAsDefault.CTA'\n | 'cairo.manageView.setAsDefault.reset.CTA'\n | 'cairo.manageView.setAsDefault.tooltip'\n | 'cairo.filtersPanel.default.All'\n | 'cairo.manageView.setAsDefault.reset.tooltip'\n | 'cairo.dropdownSearch.select.filers.placeholder'\n | 'cairo.dropdownSearch.select.filers.clear'\n | 'cairo.dropdownSearch.filters.noResults'\n | 'cairo.pickerModal.back.button'\n | 'cairo.manageView.setAsDefault.reset.success.toast'\n | 'cairo.appliedFilters.applyAndClose.CTA'\n | 'cairo.appliedFilters.discardChanges.description'\n | 'cairo.appliedFilters.discardChanges.title'\n | 'cairo.appliedFilters.discardChanges.CTA'\n | 'cair.appliedFilters.Apply.CTA'\n | 'cairo.appliedFilters.filteredBy.label'\n | 'cairo.tags.tagsWidget.title'\n | 'cairo.tags.tagsWidget.subtitle'\n | 'cairo.tags.tagsWidget.input.placeholder'\n | 'cairo.tags.tagsWidget.add.CTA'\n | 'cairo.tags.tagsWidget.options.manage.CTA'\n | 'cairo.tags.manageTags.modal.subtitle'\n | 'cairo.tags.manageTags.modal.add.CTA'\n | 'cairo.tags.manageTags.modal.search.placeholder'\n | 'cairo.tags.manageTags.modal.close.CTA'\n | 'cairo.tags.manageTags.modal.list.action.rename.CTA'\n | 'cairo.tags.manageTags.modal.list.action.delete.CTA'\n | 'cairo.tags.manageTags.modal.list.input.placeholder'\n | 'cairo.tags.manageTags.modal.list.input.cancel.CTA'\n | 'cairo.tags.manageTags.modal.list.input.save.CTA'\n | 'cairo.tags.manageTags.modal.list.input.validation.exists'\n | 'cairo.tags.manageTags.modal.list.input.validation.emptyName'\n | 'cairo.tags.manageTags.modal.toast.create.success'\n | 'cairo.tags.manageTags.modal.toast.create.error'\n | 'cairo.tags.manageTags.modal.toast.rename.success'\n | 'cairo.tags.manageTags.modal.toast.rename.error'\n | 'cairo.tags.manageTags.modal.toast.delete.success'\n | 'cairo.tags.manageTags.modal.toast.delete.error'\n | 'cairo.tags.manageTags.modal.deleteModal.title'\n | 'cairo.customFields.addCustomField.CTA'\n | 'cairo.customFields.addCustomField.modal.add.CTA'\n | 'cairo.customFields.addCustomField.modal.subtitle.note'\n | 'cairo.customFields.addCustomField.modal.PII'\n | 'cairo.customFields.addCustomField.modal.cancel.CTA'\n | 'cairo.customFields.addCustomField.modal.fieldName'\n | 'cairo.customFields.addCustomField.modal.fieldType'\n | 'cairo.customFields.addCustomField.modal.title'\n | 'cairo.customFields.addCustomField.modal.subtitle'\n | 'cairo.customFields.addCustomField.modal.PII.learnMore'\n | 'cairo.customFields.addCustomField.modal.fieldName.placeholder'\n | 'cairo.customFields.addCustomField.modal.fieldType.placeholder'\n | 'cairo.customFields.addCustomField.modal.advancedSettings.siteCollaborators'\n | 'cairo.customFields.addCustomField.modal.advancedSettings.key.tooltip'\n | 'cairo.customFields.addCustomField.modal.advancedSettings.readPermissions.tooltip'\n | 'cairo.customFields.addCustomField.modal.advancedSettings'\n | 'cairo.customFields.addCustomField.modal.advancedSettings.key.placeholder'\n | 'cairo.customFields.addCustomField.modal.advancedSettings.key.title'\n | 'cairo.customFields.addCustomField.modal.advancedSettings.readPermissions'\n | 'cairo.customFields.addCustomField.modal.advancedSettings.externalApps'\n | 'cairo.customFields.addCustomField.modal.advancedSettings.read'\n | 'cairo.customFields.addCustomField.modal.advancedSettings.write'\n | 'cairo.customFields.addCustomField.modal.advancedSettings.externalApps.tooltip'\n | 'cairo.customFields.fieldType.shortText'\n | 'cairo.customFields.fieldType.numberDecimal.placeholder'\n | 'cairo.customFields.fieldType.date'\n | 'cairo.customFields.fieldType.numberInteger.placeholder'\n | 'cairo.customFields.fieldType.longText.Name.placeholder'\n | 'cairo.customFields.fieldType.dropdownList'\n | 'cairo.customFields.fieldType.dateAndTime'\n | 'cairo.customFields.fieldType.dateAndTime.Name.placeholder'\n | 'cairo.customFields.fieldType.dateAndTime.invalid.value'\n | 'cairo.customFields.fieldType.longText.placeholder'\n | 'cairo.customFields.fieldType.time.inputTitle'\n | 'cairo.customFields.addCustomField.modal.advancedSettings.siteVisitors'\n | 'cairo.customFields.fieldType.date.inputTitle'\n | 'cairo.customFields.fieldType.longText'\n | 'cairo.customFields.fieldType.numberInteger.Name.placeholder'\n | 'cairo.customFields.fieldType.numberDecimal.Name.placeholder'\n | 'cairo.customFields.fieldType.checkbox'\n | 'cairo.customFields.fieldType.numberInteger'\n | 'cairo.customFields.fieldType.date.placeholder'\n | 'cairo.customFields.addCustomField.modal.advancedSettings.siteVisitors.tooltip'\n | 'cairo.customFields.fieldType.shortText.Name.placeholder'\n | 'cairo.customFields.fieldType.numberDecimal'\n | 'cairo.customFields.fieldType.Time.placeholder'\n | 'cairo.customFields.fieldType.shortText.placeholder'\n | 'cairo.customFields.fieldType.date.Name.placeholder'\n | 'cairo.customFields.successToast'\n | 'cairo.customFields.addCustomField.modal.sameName.error'\n | 'cairo.customFields.addCustomField.modal.sameKey.error'\n | 'cairo.customFields.addCustomField.modal.keyFormat.error'\n | 'cairo.customFields.addCustomField.modal.emptyFieldType.error'\n | 'cairo.customFields.addCustomField.modal.emptyFieldName.error'\n | 'cairo.export.successMessage.downloadLink'\n | 'cairo.customFields.editCustomField.fieldType.tooltip'\n | 'cairo.customFields.manageFields.subtitle'\n | 'cairo.customFields.editCustomField.modal.title'\n | 'cairo.customFields.showAll.button'\n | 'cairo.customFields.entityPage.title'\n | 'cairo.customFields.entityPage.emptyState.title'\n | 'cairo.customFields.entityPage.emptyState.subtitle'\n | 'cairo.customFields.manageFields.CTA'\n | 'cairo.customFields.archive.CTA'\n | 'cairo.customFields.editCustomField.fieldKey.tooltip'\n | 'cairo.customFields.editCustomField.success.toast'\n | 'cairo.customFields.edit.CTA'\n | 'cairo.customFields.editCustomField.save.CTA'\n | 'cairo.customFields.manageFields.title'\n | 'cairo.customFields.archive.modal.cancel.CTA'\n | 'cairo.customFields.archive.modal.title'\n | 'cairo.customFields.archive.modal.CTA'\n | 'cairo.customFields.archive.modal.description'\n | 'cairo.customFields.archive.success.toast'\n | 'cairo.customFields.fieldType.dropdownList.Name.placeholder'\n | 'cairo.customFields.fieldType.checkbox.Name.placeholder'\n | 'cairo.customFields.fieldType.dropdownList.placeholder'\n | 'cairo.customFields.fieldType.dropdownList.inputTitle'\n | 'cairo.customFields.fieldType.dropdownList.addOption.CTA'\n | 'cairo.customFields.addCustomField.dropdownList.emptyFieldName.error'\n | 'cairo.customFields.entityPage.subtitle'\n | 'cairo.customFields.technical.error.title'\n | 'cairo.customFields.maxFields'\n | 'cairo.customFields.modal.technicalError'\n | 'cairo.customFields.modal.networkError'\n | 'cairo.customFields.modal.maxFieldsError'\n | 'cairo.customFields.modal.dropDownlist.option.error'\n | 'cairo.customFields.archive.technicalError'\n | 'cairo.customFields.fetch.technicalError'\n | 'cairo.customFields.emptyState.title'\n | 'cairo.customFields.emptyStatePassive.title'\n | 'cairo.customFields.emptyState.subtitle'\n | 'cairo.customFields.emptyStatePassive.subtitle'\n | 'cairo.customFields.addCustomField.modal.advancedSettings.siteVisitors.note'\n | 'cairo.customFields.writePermission.tooltip'\n | 'cairo.customFields.booleanValue.true'\n | 'cairo.customFields.booleanValue.false'\n | 'cairo.customFields.widget.showMore.button'\n | 'cairo.customFields.widget.showLess.button'\n | 'cairo.entityPage.header.save.CTA'\n | 'cairo.entityPage.header.cancel.CTA'\n | 'cairo.entityPage.success.toast'\n | 'cairo.entityPage.saveError-technical.toast.description'\n | 'cairo.entityPage.saveError-offline.toast.description'\n | 'cairo.tags.loadTags.error.CTA'\n | 'cairo.tags.collectionPage.tagsColumn.title'\n | 'cairo.tags.loadTags.error.title'\n | 'cairo.tags.collectionPage.toast.create.error'\n | 'cairo.tags.applyChanges.toast.success'\n | 'cairo.tags.tagsWidget.create.CTA'\n | 'cairo.tags.collectionPage.tagsColumn.emptyState.body'\n | 'cairo.tags.collectionPage.popover.manage.CTA'\n | 'cairo.tags.applyChanges.toast.undo.CTA'\n | 'cairo.tags.tagsWidget.emptyState.body'\n | 'cairo.tags.collectionPage.add.CTA'\n | 'cairo.tags.collectionPage.popover.close.CTA'\n | 'cairo.tags.tagsWidget.noPermissions.tooltip'\n | 'cairo.tags.collectionPage.tagsColumn.manage.CTA'\n | 'airo.tags.collectionPage.popover.emptyState.body'\n | 'cairo.tags.loadTags.error.body'\n | 'cairo.tags.manageTags.modal.emptyState.title'\n | 'cairo.tags.collectionPage.popover.emptyState.body'\n | 'cairo.tags.manageTags.modal.emptyState.body'\n | 'cairo.tags.collectionPage.toast.update.error'\n | 'cairo.tags.collectionPage.popover.search.placeholder'\n | 'cairo.tags.collectionPage.popover.emptyState.search.placeholder'\n | 'cairo.tags.collectionPage.applyChanges.CTA'\n | 'cairo.tags.manageTags.modal.list.input.validation.noName'\n | 'cairo.tags.collectionPage.popover.loadTags.error.body'\n | 'cairo.dropdownSearch.filters.emptyState'\n | 'cairo.page.loadError.failedState.title'\n | 'cairo.entityPage.widgetError.TPAconnectionFail.CTA'\n | 'cairo.page.loadError.failedState.CTA'\n | 'cairo.entityPage.widgetError.TPAconnectionFail.description'\n | 'cairo.page.loadError.failedState.description'\n | 'cairo.entityPage.widgetError.TPAconnectionFail.title'\n | 'cairo.tags.popover.tagCreated.toast.success'\n | 'cairo.tags.filterPanel.dropdown.title'\n | 'cairo.tags.filterPanel.dropdown.placeholder'\n | 'cairo.filtersPanel.date.today'\n | 'cairo.filtersPanel.date.next7Days'\n | 'cairo.filtersPanel.date.next3Days'\n | 'cairo.filtersPanel.date.next30Days'\n | 'cairo.filtersPanel.date.tomorrow'\n | 'cairo.tags.popover.bulkItemLimit.tooltip'\n | 'cairo.table.advanced-sorting.button.cta'\n | 'cairo.table.custom-columns.button.cta'\n | 'cairo.tags.manageTags.modal.deleteModal.cancel.CTA'\n | 'cairo.tags.manageTags.modal.deleteModal.delete.CTA'\n | 'cairo.collectionsPage.edit.CTA'\n | 'cairo.page.primary.cta'\n | 'cairo.table.subtitle.learnMore'\n | 'cairo.table.summaryBar.loadError'\n | 'cairo.table.summaryBar.loadError.cta'\n | 'cairo.emptyState.premium.cta'\n | 'cairo.emptyState.premium.title'\n | 'cairo.emptyState.premium.text'\n | 'cairo.customFields.entityPage.sectionTitle'\n | 'cairo.entityPage.header.subscribe.CTA'\n | 'cairo.entityPage.header.connect.CTA'\n | 'cairo.entityPage.header.apply.CTA'\n | 'cairo.entityPage.header.publish.CTA'\n | 'cairo.entityPage.header.activate.CTA'\n | 'cairo.updatedView.collectionPage.toast.desc'\n | 'cairo.updatedView.collectionPage.toast.cta'\n | 'cairo.subtitle.learnMore';\n\nexport type Translate = {\n (key: TranslationsKeys, params?: Record<string, string | number>): string;\n (\n key: 'cairo.filtersPanel.appliedFilters.label',\n params: { numberAppliedFilters: number },\n ): string;\n (\n key: 'cairo.table.deleteViewModal.deleteBody',\n params: { viewName: string },\n ): string;\n (key: 'cairo.entity.item', params: { num: number }): string;\n (key: 'cairo.deleteSuccess', params: { itemName: string }): string;\n (key: 'cairo.selected', params: { total: number }): string;\n (key: 'cairo.appliedFilters', params: { num: number }): string;\n (key: 'cairo.bulkSelected', params: { num: number }): string;\n (\n key: 'cairo.bulkSelectedWithTotal',\n params: { num: number; total: number },\n ): string;\n (key: 'cairo.bulkSelected.selectUpTo', params: { max: number }): string;\n (\n key: 'cairo.emptyState.subtitle.nothingMatches',\n params: { term: string },\n ): string;\n (\n key: 'cairo.picker.itemsSelected',\n params: { total: number; max: number },\n ): string;\n (\n key: 'cairo.search.Tab.noresults.title',\n params: { tabName: string },\n ): string;\n (key: 'cairo.search.nothingMatches.title', params: { term: string }): string;\n (\n key: 'cairo.sortableColumns.modal.title',\n params: { columnTitle: string },\n ): string;\n (\n key: 'cairo.sortableColumns.modal.description',\n params: { columnTitle: string },\n ): string;\n (\n key: 'cairo.sortableColumns.notification',\n params: { columnTitle: string },\n ): string;\n (key: 'cairo.deleteView.Success.toast', params: { viewName: string }): string;\n (key: 'cairo.saveView.Success.toast', params: { viewName: string }): string;\n (\n key: 'cairo.manageView.Rename.Success.toast',\n params: { oldViewName: string; newViewName: string },\n ): string;\n (\n key: 'cairo.manageView.saveChanges.Success.toast',\n params: { viewName: string },\n ): string;\n (\n key: 'cairo.dragAndDrop.live-region.itemDragged.sr',\n params: { currentNumber: number; totalNumber: number },\n ): string;\n (\n key: 'cairo.dragAndDrop.button-role-label.sr',\n params: { itemName: string },\n ): string;\n (\n key: 'cairo.dragAndDrop.live-region.itemDropped.sr',\n params: { currentNumber: number },\n ): string;\n (\n key: 'cairo.selector.modal.items.selected',\n params: { total: number },\n ): string;\n (\n key: 'cairo.bulkActions.max.selection',\n params: { total: number; max: number },\n ): string;\n (\n key: 'cairo.manageView.setAsDefault.error.toast',\n params: { viewName: string },\n ): string;\n (\n key: 'cairo.manageView.setAsDefault.success.toast',\n params: { viewName: string },\n ): string;\n (\n key: 'cairo.dropdownSearch.filters.selected',\n params: { total: number },\n ): string;\n (key: 'cairo.appliedFilters.selected', params: { num: number }): string;\n (\n key: 'cairo.tags.tagsWidget.options.add.CTA',\n params: { tagName: string },\n ): string;\n (\n key: 'cairo.tags.manageTags.modal.title',\n params: { EntityName: string },\n ): string;\n (\n key: 'cairo.tags.manageTags.modal.list.input.validation.maxLength',\n params: { count: number },\n ): string;\n (\n key: 'cairo.tags.manageTags.modal.deleteModal.body',\n params: { name: string },\n ): string;\n (\n key: 'cairo.customFields.maxFields.tooltip',\n params: { max: number },\n ): string;\n (key: 'cairo.a11y.liveRegion.resultsFound', params: { num: number }): string;\n (\n key: 'cairo.tags.collectionPage.popover.create.CTA',\n params: { tagName: string },\n ): string;\n (\n key: 'cairo.tags.manageTags.modal.list.create.CTA',\n params: { tagName: string },\n ): string;\n (\n key: 'cairo.table.summaryBar.list.item',\n params: { title: string; value: string },\n ): string;\n (\n key: 'cairo.collectionPage.nestedLimit.tooltip',\n params: { subCatsAmount: string },\n ): string;\n};\n"],"mappings":"","ignoreList":[]}
1
+ {"version":3,"names":[],"sources":["../../../src/services/translations.ts"],"sourcesContent":["// DO NOT UPDATE THIS FILE! This file was auto-generated by generate-keys.ts\nexport type TranslationsKeys =\n | 'cairo.table.filter.button'\n | 'cairo.table.listView'\n | 'cairo.table.gridView'\n | 'cairo.table.deleteViewModal.title'\n | 'cairo.table.deleteViewModal.deleteButton'\n | 'cairo.table.deleteViewModal.deleteButtonTwo'\n | 'cairo.table.deleteViewModal.cancelButton'\n | 'cairo.table.clearFilters.button'\n | 'cairo.table.saveView.button'\n | 'cairo.table.noFiltersApplied.label'\n | 'cairo.table.saveViewModal.title'\n | 'cairo.table.saveViewModal.body'\n | 'cairo.table.saveViewModal.learnMoreLink'\n | 'cairo.table.saveViewModal.nameLabel'\n | 'cairo.table.saveViewModal.placeholder'\n | 'cairo.table.custom-columns.button.tooltip'\n | 'cairo.viewDropdown.allOrders.defaultViews'\n | 'cairo.filtersPanel.noAppliedFilters.label'\n | 'cairo.filtersPanel.clear.button'\n | 'cairo.filtersPanel.saveView.button'\n | 'cairo.filtersPanel.done.button'\n | 'cairo.viewDropdown.unsavedView.status'\n | 'cairo.viewDropdown.category.savedViews'\n | 'cairo.viewDropdown.category.predefinedViews'\n | 'cairo.viewsDropdown.allItems.label'\n | 'cairo.noFiltersApplied.validationTooltip'\n | 'cairo.noViewName.validationTooltip'\n | 'cairo.saveViewModal.saveButton'\n | 'cairo.saveViewModal.cancelButton'\n | 'cairo.cancel.button'\n | 'cairo.delete.button'\n | 'cairo.offline'\n | 'cairo.deleteModal.title'\n | 'cairo.deleteModal.body'\n | 'cairo.selectPlaceholder'\n | 'cairo.moreFilters'\n | 'cairo.filtersPanel.header'\n | 'cairo.filtersPanel.sections.default.title'\n | 'cairo.toolbar.moreFiltersButton'\n | 'cairo.continue'\n | 'cairo.emptyState.title'\n | 'cairo.emptyState.subtitle.nothingMatchesCriteria'\n | 'cairo.emptyState.subtitle.nothingAvailable'\n | 'cairo.emptyState.reset.button'\n | 'cairo.clear'\n | 'cairo.searchPlaceholder'\n | 'cairo.selectAll'\n | 'cairo.deselectAll'\n | 'cairo.bulkSelected.withMaxNumber'\n | 'cairo.saveViewModal.error.message.unexpected'\n | 'cairo.toast.undo'\n | 'cairo.toast.retry'\n | 'cairo.toast.undone'\n | 'cairo.emptyState.title.nothingAvailable'\n | 'cairo.confirmModal.title'\n | 'cairo.confirm.button'\n | 'cairo.picker.createNew.button.tooltip'\n | 'cairo.picker.createNew.button'\n | 'cairo.moreActions'\n | 'cairo.connection.error.text'\n | 'cairo.emptyState.additem.text'\n | 'cairo.search.Tab.noresults.text'\n | 'cairo.technical.error.text'\n | 'cairo.search.filter.Tab.noresults.text'\n | 'cairo.emptyState.additem.cta'\n | 'cairo.emptyState.additem.title'\n | 'cairo.search.nothingMatches.text'\n | 'cairo.connection.error.title'\n | 'cairo.search.filter.nothingMatches.text'\n | 'cairo.technical.error.title'\n | 'cairo.error.tryAgain.cta'\n | 'cairo.export.successMessage'\n | 'cairo.export.exportTypeQuestionTitle'\n | 'cairo.export.selectedItems'\n | 'cairo.export.filteredItems'\n | 'cairo.export.exportToCSVMessage'\n | 'cairo.export.export'\n | 'cairo.export.cancelButton'\n | 'cairo.export.exporting'\n | 'cairo.export.exportingTitle'\n | 'cairo.export.exportingDescription'\n | 'cairo.export.allItems'\n | 'cairo.export.downloadManually'\n | 'cairo.export.leaveSiteTitle'\n | 'cairo.export.leaveSiteMessage'\n | 'cairo.export.cancelTheExport'\n | 'cairo.export.cancelTheExportGoBack'\n | 'cairo.export.exportFailed'\n | 'cairo.export.exportFailedMessage'\n | 'cairo.export.tryAgain'\n | 'cairo.export.cancelTheExportConfirm'\n | 'cairo.export.cancelMessage'\n | 'cairo.export.databaseIssueMessage'\n | 'cairo.export.overloadErrorMessage'\n | 'cairo.export.serverErrorMessage'\n | 'cairo.export.noPermissionsCTA'\n | 'cairo.export.noPermissionsMessage'\n | 'cairo.export.sessionExpiredMessage'\n | 'cairo.error.contactSupport.cta'\n | 'cairo.export.offlineMessage'\n | 'cairo.sortableColumns.modal.cancel'\n | 'cairo.sortableColumns.notification.undo'\n | 'cairo.sortableColumns.modal.CTA'\n | 'cairo.dragAndDrop.discardChanges.CTA'\n | 'cairo.dragAndDrop.discardChanges.title'\n | 'cairo.dragAndDrop.discardChanges.description'\n | 'cairo.dragAndDrop.note.learnMore'\n | 'cairo.dragAndDrop.discardChanges.cancel'\n | 'cairo.dragAndDrop.note'\n | 'cairo.dragAndDrop.error.toast'\n | 'cairo.dragAndDrop.leaveSiteTitle'\n | 'cairo.dragAndDrop.leaveSiteMessage'\n | 'cairo.dragAndDrop.reorderMode.toolbar.title'\n | 'cairo.dragAndDrop.reorderMode.toolbar.title.learnMore'\n | 'cairo.dragAndDrop.reorderMode.toolbar.cancel.cta'\n | 'cairo.dragAndDrop.reorderMode.toolbar.save.cta'\n | 'cairo.dragAndDrop.reorderMode.toast.success'\n | 'cairo.dragAndDrop.reorderMode.discardChanges.title'\n | 'cairo.dragAndDrop.reorderMode.discardChanges.description'\n | 'cairo.dragAndDrop.reorderMode.discardChanges.applyAndClose.CTA'\n | 'cairo.dragAndDrop.reorderMode.discardChanges.cancel.CTA'\n | 'cairo.emptyState.filters.nothingFound.title'\n | 'cairo.emptyState.filters.nothingFound.description'\n | 'cairo.dragAndDrop.leaveSite.modal.cancel.CTA'\n | 'cairo.dragAndDrop.leaveSite.modal.title'\n | 'cairo.filtersPanel.dateRange.title'\n | 'cairo.filtersPanel.date.7days'\n | 'cairo.filtersPanel.date.lastMonth'\n | 'cairo.emptyState.filters.nothingFound.clearFilters.CTA'\n | 'cairo.dragAndDrop.leaveSite.modal.description'\n | 'cairo.filtersPanel.date.title'\n | 'cairo.filtersPanel.time.title'\n | 'cairo.filtersPanel.date.none'\n | 'cairo.filtersPanel.date.custom'\n | 'cairo.filtersPanel.date.to.placeholder'\n | 'cairo.dragAndDrop.leaveSite.modal.leave.CTA'\n | 'cairo.filtersPanel.date.14days'\n | 'cairo.filtersPanel.date.from.placeholder'\n | 'cairo.table.custom-columns.title'\n | 'cairo.table.custom-columns.subtitle'\n | 'cairo.table.custom-columns.dragAndDrop.subtitle'\n | 'cairo.table.custom-columns.disabled.tooltip'\n | 'cairo.table.custom-columns.hidden.disabled.tooltip'\n | 'cairo.emptyState.subtitle.noFilterResults'\n | 'cairo.search.noresults.title'\n | 'cairo.manageView.saveChanges.disabled.predefinedView.tooltip'\n | 'cairo.manageView.Delete.CTA.error.toast'\n | 'cairo.manageView.Delete.disabled.predefinedView.tooltip'\n | 'cairo.manageView.Rename.disabled.tooltip'\n | 'cairo.manageView.CTA'\n | 'cairo.manageView.saveChanges.error.toast'\n | 'cairo.manageView.Rename.error.toast'\n | 'cairo.manageView.Rename.modal.cancel.CTA'\n | 'cairo.manageView.Rename.modal.field.title'\n | 'cairo.manageView.Delete.CTA'\n | 'cairo.manageView.saveChanges.CTA'\n | 'cairo.manageView.Rename.modal.title'\n | 'cairo.manageView.saveChanges.disabled.tooltip'\n | 'cairo.manageView.Rename.modal.save.CTA'\n | 'cairo.manageView.saveView.error.toast'\n | 'cairo.manageView.saveNewView.CTA'\n | 'cairo.manageView.Rename.CTA'\n | 'cairo.manageView.Rename.disabled.predefinedView.tooltip'\n | 'cairo.table.advanced-sorting.ascending.order'\n | 'cairo.table.advanced-sorting.subtitle'\n | 'cairo.table.advanced-sorting.disabled.cta.tooltip'\n | 'cairo.table.advanced-sorting.descending.order'\n | 'cairo.table.advanced-sorting.cta'\n | 'cairo.table.advanced-sorting.remove.button.tooltip'\n | 'cairo.table.advanced-sorting.dragAndDrop.tooltip'\n | 'cairo.table.advanced-sorting.sortManually.toast'\n | 'cairo.table.advanced-sorting.sortByColumns.toast'\n | 'cairo.table.advanced-sorting.button.tooltip'\n | 'cairo.dragAndDrop.list-aria-label.sr'\n | 'cairo.dragAndDrop.reorder-cancelled.sr'\n | 'cairo.dragAndDrop.live-region.itemGrabbed.sr'\n | 'cairo.manageView.tooltip'\n | 'matvey.test'\n | 'cairo.table.custom-columns.move.disabled.tooltip'\n | 'cairo.manageView.unsaved.tooltip'\n | 'cairo.table.advanced-sorting.title.tooltip'\n | 'cairo.selectorModal.searchEmptyState.subtitle'\n | 'cairo.selectorModal.searchEmptyState.changeFilter.subtitle'\n | 'cairo.collectionsPage.add.item.CTA'\n | 'section.header.folders'\n | 'section.header.items'\n | 'cairo.folders.showAll.button'\n | 'cairo.folders.showLess.button'\n | 'cairo.passiveEmptyState.title'\n | 'cairo.passiveEmptyState.subtitle'\n | 'cairo.viewsDropdown.nothingMatches.text'\n | 'cairo.manageView.setAsDefault.CTA'\n | 'cairo.manageView.setAsDefault.reset.CTA'\n | 'cairo.manageView.setAsDefault.tooltip'\n | 'cairo.filtersPanel.default.All'\n | 'cairo.manageView.setAsDefault.reset.tooltip'\n | 'cairo.dropdownSearch.select.filers.placeholder'\n | 'cairo.dropdownSearch.select.filers.clear'\n | 'cairo.dropdownSearch.filters.noResults'\n | 'cairo.pickerModal.back.button'\n | 'cairo.manageView.setAsDefault.reset.success.toast'\n | 'cairo.appliedFilters.applyAndClose.CTA'\n | 'cairo.appliedFilters.discardChanges.description'\n | 'cairo.appliedFilters.discardChanges.title'\n | 'cairo.appliedFilters.discardChanges.CTA'\n | 'cair.appliedFilters.Apply.CTA'\n | 'cairo.appliedFilters.filteredBy.label'\n | 'cairo.tags.tagsWidget.title'\n | 'cairo.tags.tagsWidget.subtitle'\n | 'cairo.tags.tagsWidget.input.placeholder'\n | 'cairo.tags.tagsWidget.add.CTA'\n | 'cairo.tags.tagsWidget.options.manage.CTA'\n | 'cairo.tags.manageTags.modal.subtitle'\n | 'cairo.tags.manageTags.modal.add.CTA'\n | 'cairo.tags.manageTags.modal.search.placeholder'\n | 'cairo.tags.manageTags.modal.close.CTA'\n | 'cairo.tags.manageTags.modal.list.action.rename.CTA'\n | 'cairo.tags.manageTags.modal.list.action.delete.CTA'\n | 'cairo.tags.manageTags.modal.list.input.placeholder'\n | 'cairo.tags.manageTags.modal.list.input.cancel.CTA'\n | 'cairo.tags.manageTags.modal.list.input.save.CTA'\n | 'cairo.tags.manageTags.modal.list.input.validation.exists'\n | 'cairo.tags.manageTags.modal.list.input.validation.emptyName'\n | 'cairo.tags.manageTags.modal.toast.create.success'\n | 'cairo.tags.manageTags.modal.toast.create.error'\n | 'cairo.tags.manageTags.modal.toast.rename.success'\n | 'cairo.tags.manageTags.modal.toast.rename.error'\n | 'cairo.tags.manageTags.modal.toast.delete.success'\n | 'cairo.tags.manageTags.modal.toast.delete.error'\n | 'cairo.tags.manageTags.modal.deleteModal.title'\n | 'cairo.customFields.addCustomField.CTA'\n | 'cairo.customFields.addCustomField.modal.add.CTA'\n | 'cairo.customFields.addCustomField.modal.subtitle.note'\n | 'cairo.customFields.addCustomField.modal.PII'\n | 'cairo.customFields.addCustomField.modal.cancel.CTA'\n | 'cairo.customFields.addCustomField.modal.fieldName'\n | 'cairo.customFields.addCustomField.modal.fieldType'\n | 'cairo.customFields.addCustomField.modal.title'\n | 'cairo.customFields.addCustomField.modal.subtitle'\n | 'cairo.customFields.addCustomField.modal.PII.learnMore'\n | 'cairo.customFields.addCustomField.modal.fieldName.placeholder'\n | 'cairo.customFields.addCustomField.modal.fieldType.placeholder'\n | 'cairo.customFields.addCustomField.modal.advancedSettings.siteCollaborators'\n | 'cairo.customFields.addCustomField.modal.advancedSettings.key.tooltip'\n | 'cairo.customFields.addCustomField.modal.advancedSettings.readPermissions.tooltip'\n | 'cairo.customFields.addCustomField.modal.advancedSettings'\n | 'cairo.customFields.addCustomField.modal.advancedSettings.key.placeholder'\n | 'cairo.customFields.addCustomField.modal.advancedSettings.key.title'\n | 'cairo.customFields.addCustomField.modal.advancedSettings.readPermissions'\n | 'cairo.customFields.addCustomField.modal.advancedSettings.externalApps'\n | 'cairo.customFields.addCustomField.modal.advancedSettings.read'\n | 'cairo.customFields.addCustomField.modal.advancedSettings.write'\n | 'cairo.customFields.addCustomField.modal.advancedSettings.externalApps.tooltip'\n | 'cairo.customFields.fieldType.shortText'\n | 'cairo.customFields.fieldType.numberDecimal.placeholder'\n | 'cairo.customFields.fieldType.date'\n | 'cairo.customFields.fieldType.numberInteger.placeholder'\n | 'cairo.customFields.fieldType.longText.Name.placeholder'\n | 'cairo.customFields.fieldType.dropdownList'\n | 'cairo.customFields.fieldType.dateAndTime'\n | 'cairo.customFields.fieldType.dateAndTime.Name.placeholder'\n | 'cairo.customFields.fieldType.dateAndTime.invalid.value'\n | 'cairo.customFields.fieldType.longText.placeholder'\n | 'cairo.customFields.fieldType.time.inputTitle'\n | 'cairo.customFields.addCustomField.modal.advancedSettings.siteVisitors'\n | 'cairo.customFields.fieldType.date.inputTitle'\n | 'cairo.customFields.fieldType.longText'\n | 'cairo.customFields.fieldType.numberInteger.Name.placeholder'\n | 'cairo.customFields.fieldType.numberDecimal.Name.placeholder'\n | 'cairo.customFields.fieldType.checkbox'\n | 'cairo.customFields.fieldType.numberInteger'\n | 'cairo.customFields.fieldType.date.placeholder'\n | 'cairo.customFields.addCustomField.modal.advancedSettings.siteVisitors.tooltip'\n | 'cairo.customFields.fieldType.shortText.Name.placeholder'\n | 'cairo.customFields.fieldType.numberDecimal'\n | 'cairo.customFields.fieldType.Time.placeholder'\n | 'cairo.customFields.fieldType.shortText.placeholder'\n | 'cairo.customFields.fieldType.date.Name.placeholder'\n | 'cairo.customFields.successToast'\n | 'cairo.customFields.addCustomField.modal.sameName.error'\n | 'cairo.customFields.addCustomField.modal.sameKey.error'\n | 'cairo.customFields.addCustomField.modal.keyFormat.error'\n | 'cairo.customFields.addCustomField.modal.emptyFieldType.error'\n | 'cairo.customFields.addCustomField.modal.emptyFieldName.error'\n | 'cairo.export.successMessage.downloadLink'\n | 'cairo.customFields.editCustomField.fieldType.tooltip'\n | 'cairo.customFields.manageFields.subtitle'\n | 'cairo.customFields.editCustomField.modal.title'\n | 'cairo.customFields.showAll.button'\n | 'cairo.customFields.entityPage.title'\n | 'cairo.customFields.entityPage.emptyState.title'\n | 'cairo.customFields.entityPage.emptyState.subtitle'\n | 'cairo.customFields.manageFields.CTA'\n | 'cairo.customFields.archive.CTA'\n | 'cairo.customFields.editCustomField.fieldKey.tooltip'\n | 'cairo.customFields.editCustomField.success.toast'\n | 'cairo.customFields.edit.CTA'\n | 'cairo.customFields.editCustomField.save.CTA'\n | 'cairo.customFields.manageFields.title'\n | 'cairo.customFields.archive.modal.cancel.CTA'\n | 'cairo.customFields.archive.modal.title'\n | 'cairo.customFields.archive.modal.CTA'\n | 'cairo.customFields.archive.modal.description'\n | 'cairo.customFields.archive.success.toast'\n | 'cairo.customFields.fieldType.dropdownList.Name.placeholder'\n | 'cairo.customFields.fieldType.checkbox.Name.placeholder'\n | 'cairo.customFields.fieldType.dropdownList.placeholder'\n | 'cairo.customFields.fieldType.dropdownList.inputTitle'\n | 'cairo.customFields.fieldType.dropdownList.addOption.CTA'\n | 'cairo.customFields.addCustomField.dropdownList.emptyFieldName.error'\n | 'cairo.customFields.entityPage.subtitle'\n | 'cairo.customFields.technical.error.title'\n | 'cairo.customFields.maxFields'\n | 'cairo.customFields.modal.technicalError'\n | 'cairo.customFields.modal.networkError'\n | 'cairo.customFields.modal.maxFieldsError'\n | 'cairo.customFields.modal.dropDownlist.option.error'\n | 'cairo.customFields.archive.technicalError'\n | 'cairo.customFields.fetch.technicalError'\n | 'cairo.customFields.emptyState.title'\n | 'cairo.customFields.emptyStatePassive.title'\n | 'cairo.customFields.emptyState.subtitle'\n | 'cairo.customFields.emptyStatePassive.subtitle'\n | 'cairo.customFields.addCustomField.modal.advancedSettings.siteVisitors.note'\n | 'cairo.customFields.writePermission.tooltip'\n | 'cairo.customFields.booleanValue.true'\n | 'cairo.customFields.booleanValue.false'\n | 'cairo.customFields.widget.showMore.button'\n | 'cairo.customFields.widget.showLess.button'\n | 'cairo.entityPage.header.save.CTA'\n | 'cairo.entityPage.header.cancel.CTA'\n | 'cairo.entityPage.success.toast'\n | 'cairo.entityPage.saveError-technical.toast.description'\n | 'cairo.entityPage.saveError-offline.toast.description'\n | 'cairo.tags.loadTags.error.CTA'\n | 'cairo.tags.collectionPage.tagsColumn.title'\n | 'cairo.tags.loadTags.error.title'\n | 'cairo.tags.collectionPage.toast.create.error'\n | 'cairo.tags.applyChanges.toast.success'\n | 'cairo.tags.tagsWidget.create.CTA'\n | 'cairo.tags.collectionPage.tagsColumn.emptyState.body'\n | 'cairo.tags.collectionPage.popover.manage.CTA'\n | 'cairo.tags.applyChanges.toast.undo.CTA'\n | 'cairo.tags.tagsWidget.emptyState.body'\n | 'cairo.tags.collectionPage.add.CTA'\n | 'cairo.tags.collectionPage.popover.close.CTA'\n | 'cairo.tags.tagsWidget.noPermissions.tooltip'\n | 'cairo.tags.collectionPage.tagsColumn.manage.CTA'\n | 'airo.tags.collectionPage.popover.emptyState.body'\n | 'cairo.tags.loadTags.error.body'\n | 'cairo.tags.manageTags.modal.emptyState.title'\n | 'cairo.tags.collectionPage.popover.emptyState.body'\n | 'cairo.tags.manageTags.modal.emptyState.body'\n | 'cairo.tags.collectionPage.toast.update.error'\n | 'cairo.tags.collectionPage.popover.search.placeholder'\n | 'cairo.tags.collectionPage.popover.emptyState.search.placeholder'\n | 'cairo.tags.collectionPage.applyChanges.CTA'\n | 'cairo.tags.manageTags.modal.list.input.validation.noName'\n | 'cairo.tags.collectionPage.popover.loadTags.error.body'\n | 'cairo.dropdownSearch.filters.emptyState'\n | 'cairo.page.loadError.failedState.title'\n | 'cairo.entityPage.widgetError.TPAconnectionFail.CTA'\n | 'cairo.page.loadError.failedState.CTA'\n | 'cairo.entityPage.widgetError.TPAconnectionFail.description'\n | 'cairo.page.loadError.failedState.description'\n | 'cairo.entityPage.widgetError.TPAconnectionFail.title'\n | 'cairo.tags.popover.tagCreated.toast.success'\n | 'cairo.tags.filterPanel.dropdown.title'\n | 'cairo.tags.filterPanel.dropdown.placeholder'\n | 'cairo.filtersPanel.date.today'\n | 'cairo.filtersPanel.date.next7Days'\n | 'cairo.filtersPanel.date.next3Days'\n | 'cairo.filtersPanel.date.next30Days'\n | 'cairo.filtersPanel.date.tomorrow'\n | 'cairo.tags.popover.bulkItemLimit.tooltip'\n | 'cairo.table.advanced-sorting.button.cta'\n | 'cairo.table.custom-columns.button.cta'\n | 'cairo.tags.manageTags.modal.deleteModal.cancel.CTA'\n | 'cairo.tags.manageTags.modal.deleteModal.delete.CTA'\n | 'cairo.collectionsPage.edit.CTA'\n | 'cairo.page.primary.cta'\n | 'cairo.table.subtitle.learnMore'\n | 'cairo.table.summaryBar.loadError'\n | 'cairo.table.summaryBar.loadError.cta'\n | 'cairo.emptyState.premium.cta'\n | 'cairo.emptyState.premium.title'\n | 'cairo.emptyState.premium.text'\n | 'cairo.customFields.entityPage.sectionTitle'\n | 'cairo.entityPage.header.subscribe.CTA'\n | 'cairo.entityPage.header.connect.CTA'\n | 'cairo.entityPage.header.apply.CTA'\n | 'cairo.entityPage.header.publish.CTA'\n | 'cairo.entityPage.header.activate.CTA'\n | 'cairo.updatedView.collectionPage.toast.desc'\n | 'cairo.updatedView.collectionPage.toast.cta'\n | 'cairo.subtitle.learnMore'\n | 'cairo.tags.creationLimitReached.error'\n | 'cairo.tags.popover.creationLimitReached.error';\n\nexport type Translate = {\n (key: TranslationsKeys, params?: Record<string, string | number>): string;\n (\n key: 'cairo.filtersPanel.appliedFilters.label',\n params: { numberAppliedFilters: number },\n ): string;\n (\n key: 'cairo.table.deleteViewModal.deleteBody',\n params: { viewName: string },\n ): string;\n (key: 'cairo.entity.item', params: { num: number }): string;\n (key: 'cairo.deleteSuccess', params: { itemName: string }): string;\n (key: 'cairo.selected', params: { total: number }): string;\n (key: 'cairo.appliedFilters', params: { num: number }): string;\n (key: 'cairo.bulkSelected', params: { num: number }): string;\n (\n key: 'cairo.bulkSelectedWithTotal',\n params: { num: number; total: number },\n ): string;\n (key: 'cairo.bulkSelected.selectUpTo', params: { max: number }): string;\n (\n key: 'cairo.emptyState.subtitle.nothingMatches',\n params: { term: string },\n ): string;\n (\n key: 'cairo.picker.itemsSelected',\n params: { total: number; max: number },\n ): string;\n (\n key: 'cairo.search.Tab.noresults.title',\n params: { tabName: string },\n ): string;\n (key: 'cairo.search.nothingMatches.title', params: { term: string }): string;\n (\n key: 'cairo.sortableColumns.modal.title',\n params: { columnTitle: string },\n ): string;\n (\n key: 'cairo.sortableColumns.modal.description',\n params: { columnTitle: string },\n ): string;\n (\n key: 'cairo.sortableColumns.notification',\n params: { columnTitle: string },\n ): string;\n (key: 'cairo.deleteView.Success.toast', params: { viewName: string }): string;\n (key: 'cairo.saveView.Success.toast', params: { viewName: string }): string;\n (\n key: 'cairo.manageView.Rename.Success.toast',\n params: { oldViewName: string; newViewName: string },\n ): string;\n (\n key: 'cairo.manageView.saveChanges.Success.toast',\n params: { viewName: string },\n ): string;\n (\n key: 'cairo.dragAndDrop.live-region.itemDragged.sr',\n params: { currentNumber: number; totalNumber: number },\n ): string;\n (\n key: 'cairo.dragAndDrop.button-role-label.sr',\n params: { itemName: string },\n ): string;\n (\n key: 'cairo.dragAndDrop.live-region.itemDropped.sr',\n params: { currentNumber: number },\n ): string;\n (\n key: 'cairo.selector.modal.items.selected',\n params: { total: number },\n ): string;\n (\n key: 'cairo.bulkActions.max.selection',\n params: { total: number; max: number },\n ): string;\n (\n key: 'cairo.manageView.setAsDefault.error.toast',\n params: { viewName: string },\n ): string;\n (\n key: 'cairo.manageView.setAsDefault.success.toast',\n params: { viewName: string },\n ): string;\n (\n key: 'cairo.dropdownSearch.filters.selected',\n params: { total: number },\n ): string;\n (key: 'cairo.appliedFilters.selected', params: { num: number }): string;\n (\n key: 'cairo.tags.tagsWidget.options.add.CTA',\n params: { tagName: string },\n ): string;\n (\n key: 'cairo.tags.manageTags.modal.title',\n params: { EntityName: string },\n ): string;\n (\n key: 'cairo.tags.manageTags.modal.list.input.validation.maxLength',\n params: { count: number },\n ): string;\n (\n key: 'cairo.tags.manageTags.modal.deleteModal.body',\n params: { name: string },\n ): string;\n (\n key: 'cairo.customFields.maxFields.tooltip',\n params: { max: number },\n ): string;\n (key: 'cairo.a11y.liveRegion.resultsFound', params: { num: number }): string;\n (\n key: 'cairo.tags.collectionPage.popover.create.CTA',\n params: { tagName: string },\n ): string;\n (\n key: 'cairo.tags.manageTags.modal.list.create.CTA',\n params: { tagName: string },\n ): string;\n (\n key: 'cairo.table.summaryBar.list.item',\n params: { title: string; value: string },\n ): string;\n (\n key: 'cairo.collectionPage.nestedLimit.tooltip',\n params: { subCatsAmount: string },\n ): string;\n};\n"],"mappings":"","ignoreList":[]}
@@ -25,7 +25,7 @@ class CollectionOptimisticActions {
25
25
  (0, _defineProperty2.default)(this, "state", void 0);
26
26
  (0, _defineProperty2.default)(this, "processors", []);
27
27
  (0, _defineProperty2.default)(this, "executor", void 0);
28
- (0, _defineProperty2.default)(this, "sequences", new Map());
28
+ (0, _defineProperty2.default)(this, "sequences", void 0);
29
29
  (0, _defineProperty2.default)(this, "resultSimulationDefault", void 0);
30
30
  (0, _defineProperty2.default)(this, "reorderModeCanceledMessage", 'REORDER_MODE_CANCELED');
31
31
  (0, _defineProperty2.default)(this, "_resumeNavigation", null);
@@ -72,6 +72,7 @@ class CollectionOptimisticActions {
72
72
  this.collection = params.collection;
73
73
  this.query = params.query ?? this.collection.query;
74
74
  this.collections = params.collections ?? [];
75
+ this.sequences = params.sequences ?? new Map();
75
76
  this.state = new _CollectionOptimisticActionsState.CollectionOptimisticActionsState({
76
77
  source: this.collection,
77
78
  patchesCache: params.container.patchesCache,
@@ -1 +1 @@
1
- {"version":3,"names":["_mobx","require","_CollectionOptimisticActionsState","_CollectionOptimisticProcessor","_CollectionOptimisticPatch","_CollectionOptimisticExecutor","_events","_QueryResultSimulationDefault","_CollectionOptimisticSequenceExecutor","CollectionOptimisticActions","constructor","params","_defineProperty2","default","EventEmitter","Map","action","patch","state","collection","collections","noInvalidate","patches","remove","invalidate","forEach","p","refreshAllPages","events","clearPatch","off","_clearPatch","onRefresh","isStale","once","on","emit","query","CollectionOptimisticActionsState","source","patchesCache","container","cacheNamespace","resultSimulationDefault","QueryResultSimulationDefault","predicate","orderBy","createdAt","executor","CollectionOptimisticExecutor","batchWait","errorMonitor","showToast","translate","lodash","processors","push","CollectionOptimisticProcessor","optimistic","_optimisticActions","makeObservable","pushPatchAndReprocess","replacePatchAndReprocess","rollback","bound","clear","move","pendingMovePatches","computed","_queryNames","queryName","map","c","hasRunningSequence","Array","from","sequences","values","some","s","seq","running","filter","isArray","newPatch","oldPatch","oldPatchIndex","findIndex","createOne","item","createMany","items","itemKey","result","submit","updateServerAfter","onUndo","onTryAgain","onError","optimisticPatchParams","queryCache","queryNames","actionType","patchedItems","originalItems","originalTotal","total","get","selector","has","optimisticPatch","OptimisticPatch","_clearPatchOnNextResultOrUnmount","execute","actions","submitResult","reduce","patchedItemsEntries","key","set","updatedOptimisticPatch","onRollback","eventuallyUpdated","onEventuallyUpdated","updateMany","keepPosition","_result$get","originalItem","enqueueMovePatch","event","filtersKeyHash","_initSequence","CollectionOptimisticSequenceExecutor","err","pendingPatches","_p$move","Error","message","reorderModeCanceledMessage","biName","onClick","sequence","collectionSnapshot","updateOne","updateAll","patchOrFn","originQuery","itemPredicate","updatedAt","Date","deleteMany","deleteOne","deleteAll","initCollection","i","indexOf","splice","init","emitRefresh","emitBeforeResultUpdated","emitter","disposers","reaction","isEmpty","_pages","unprocessed","flatMap","page","length","allFilteredOut","fetchNextPageIfNeeded","disposer","remaining","exports"],"sources":["../../../src/state/CollectionOptimisticActions.ts"],"sourcesContent":["import { ActionMove, ComputedQuery, FiltersMap, ToastConfig } from '../model';\nimport {\n action,\n computed,\n IObservableArray,\n makeObservable,\n reaction,\n} from 'mobx';\nimport { CollectionState } from './CollectionState';\nimport { Order } from './QueryResultSimulation';\nimport { CollectionOptimisticActionsState } from './CollectionOptimisticActionsState';\nimport { CollectionOptimisticProcessor } from './CollectionOptimisticProcessor';\nimport {\n OptimisticPatch,\n OptimisticPatchParams,\n} from './CollectionOptimisticPatch';\nimport {\n CollectionOptimisticExecutor,\n EventuallyUpdated,\n} from './CollectionOptimisticExecutor';\nimport { EventEmitter } from 'events';\nimport { TypedEmitter } from '../util';\nimport { QueryResultSimulationDefault } from './QueryResultSimulationDefault';\nimport { CollectionOptimisticSequenceExecutor } from './CollectionOptimisticSequenceExecutor';\nimport { ModalLayoutProps } from '../services';\nimport { QueryState } from './QueryState';\n\nexport interface OptimisticActionBasis {\n /**\n * Determines whether to display an undo toast before calling the server action.\n * @default false\n * @external\n */\n showUndoToast?: boolean;\n /**\n * Determines whether to display a toast after clicking on undo.\n * @default false\n * @external\n */\n showUndoSuccessToast?: boolean;\n /**\n * Callback function triggered when the user clicks on the undo button.\n * @external\n */\n onUndo?: () => void;\n /**\n * Function to generate error toast to show in case the server fails to perform the action.\n * @external\n */\n errorToast?: (err: unknown) => ToastConfig | string;\n /**\n * Callback function triggered when an error occurs.\n * @external\n */\n onError?: (err: unknown) => void;\n /**\n * Callback function to retry the action.\n * @external\n */\n onTryAgain?: () => void | Promise<void>;\n /**\n * Toast message or configuration to show on successful action.\n * @external\n */\n successToast?: ToastConfig | string;\n /**\n * Indicates when the server is eventually updated.\n * Possible values:\n * - submit: Server updates immediately after the submission promise resolves.\n * - number: Server updates after a specified timeout (in milliseconds).\n * - Promise: Server updates after a forwarded promise resolves.\n * @default submit\n * @external\n */\n updateServerAfter?: EventuallyUpdated;\n}\n\nexport interface UpdateAllParams<R> extends OptimisticActionBasis {\n /**\n * Function to submit the update operation.\n */\n submit: () => Promise<R>;\n /**\n * Indicates whether to keep the current position of items after the update.\n */\n keepPosition?: boolean;\n}\n\nexport interface UpdateManyParams<T, R> extends OptimisticActionBasis {\n /**\n * Function to submit the update operation.\n * @param items - The items to update.\n */\n submit: (items: T[]) => Promise<R>;\n /**\n * Indicates whether to keep the current position of items after the update.\n */\n keepPosition?: boolean;\n}\n\nexport interface MoveParams<T, R> extends OptimisticActionBasis {\n /**\n * Function to submit the move operation.\n * @param params - The parameters for the move action.\n */\n submit?: (params: ActionMove<T>) => Promise<R>;\n /**\n * Snapshot of the collection before the move operation.\n */\n collectionSnapshot: { [key: string]: string | number | undefined };\n}\n\nexport interface CreateManyParams<T> extends OptimisticActionBasis {\n /**\n * Function to submit the creation operation.\n * @param items - The items to create.\n */\n submit: (items: T[]) => Promise<T[]>;\n}\n\nexport interface DeleteManyParams<T, R> extends OptimisticActionBasis {\n /**\n * Function to submit the deletion operation.\n * @param items - The items to delete.\n */\n submit: (items: T[]) => Promise<R>;\n}\n\nexport interface DeleteAllParams<R> extends OptimisticActionBasis {\n /**\n * Function to submit the deletion operation.\n */\n submit: () => Promise<R>;\n}\n\nexport interface CollectionOptimisticActionsBaseParams<\n T,\n F extends FiltersMap,\n> {\n /**\n * A function that simulates the filtering in the server.\n * The function should return another function that accepts an item, and return a boolean that indicates whether the item passes the query filters or not.\n * @param computedQuery - The computed query object.\n * @external\n */\n readonly predicate?: (\n computedQuery: ComputedQuery<F>,\n ) => (item: T) => boolean;\n /**\n * A function that simulates the ordering of the items in the server.<br>\n * The function should return a list of rules in the form of `{fieldName: string; order: 'asc' | 'desc';}` to order the items by\n * @param computedQuery - The computed query object.\n * @external\n */\n readonly orderBy?: (computedQuery: ComputedQuery<F>) => Order<T>[];\n /**\n * A function to retrieve the creation date of an item.\n * @param item - The item.\n * @external\n */\n readonly createdAt?: (item: T) => Date;\n /**\n * Time to wait before batching multiple `updateMany` calls into a single server call.\n * @default 0\n * @external\n */\n readonly batchWait?: number;\n /**\n * Indicates whether to refresh the current page without invalidating the cache.\n * @external\n */\n readonly noInvalidate?: boolean;\n /**\n * Adds a namespace to the cache key.\n * @external\n */\n readonly cacheNamespace?: string;\n readonly sequences?: Map<string, CollectionOptimisticSequenceExecutor>;\n readonly query?: QueryState<F>;\n}\n\nexport interface CollectionOptimisticActionsParams<T, F extends FiltersMap>\n extends CollectionOptimisticActionsBaseParams<T, F> {\n /**\n * The main collection to reflect changes into.\n * @external\n */\n readonly collection: CollectionState<T, F>;\n /**\n * Additional collections to reflect changes into.\n * @default undefined\n * @external\n */\n readonly collections?: CollectionState<T, F>[];\n /**\n * Container holding patches cache and events emitter.\n * @external\n */\n readonly container: {\n patchesCache: Map<string, IObservableArray<OptimisticPatch<T>>>;\n events: TypedEmitter<{\n navigation: () => ModalLayoutProps | null | undefined;\n }>;\n };\n}\n\nexport class CollectionOptimisticActions<T, F extends FiltersMap> {\n readonly collection;\n readonly query;\n readonly collections;\n readonly predicate: (computedQuery: ComputedQuery<F>) => (item: T) => boolean;\n readonly orderBy: (computedQuery: ComputedQuery<F>) => Order<T>[];\n readonly createdAt?: (item: T) => Date;\n readonly events = new EventEmitter() as TypedEmitter<{\n reprocess: () => void;\n updated: () => void;\n refresh: (params: { isStale: boolean }) => void;\n unmount: () => void;\n beforeResultUpdated: () => void;\n dragAndDropSequenceError: (params: {\n patches: OptimisticPatch<T>[];\n }) => void;\n dragAndDropSequenceRetry: (params: {\n patches: OptimisticPatch<T>[];\n }) => void;\n }>;\n readonly noInvalidate;\n readonly state;\n readonly processors: CollectionOptimisticProcessor<T, F>[] = [];\n readonly executor: CollectionOptimisticExecutor<OptimisticPatch<T>>;\n readonly sequences = new Map<string, CollectionOptimisticSequenceExecutor>();\n readonly resultSimulationDefault;\n readonly reorderModeCanceledMessage = 'REORDER_MODE_CANCELED';\n\n _resumeNavigation: (() => void) | null = null;\n\n _orderByMode: 'orders' | 'moves' = 'orders';\n\n constructor(params: CollectionOptimisticActionsParams<T, F>) {\n this.collection = params.collection;\n this.query = params.query ?? this.collection.query;\n this.collections = params.collections ?? [];\n\n this.state = new CollectionOptimisticActionsState<T>({\n source: this.collection,\n patchesCache: params.container.patchesCache,\n cacheNamespace: params.cacheNamespace,\n });\n\n this.resultSimulationDefault = new QueryResultSimulationDefault({\n collection: this.collection,\n });\n\n this.predicate = params.predicate ?? this.resultSimulationDefault.predicate;\n this.orderBy = params.orderBy ?? this.resultSimulationDefault.orderBy;\n this.createdAt = params.createdAt;\n this.noInvalidate = params.noInvalidate;\n\n this.executor = new CollectionOptimisticExecutor({\n batchWait: params.batchWait ?? 0,\n errorMonitor: this.collection.errorMonitor,\n showToast: this.collection.showToast,\n translate: this.collection.translate,\n lodash: this.collection.lodash,\n container: params.container,\n });\n\n this.processors.push(\n new CollectionOptimisticProcessor({\n ...params,\n optimistic: this,\n }),\n );\n\n if (params.collections != null) {\n params.collections.forEach((collection) => {\n this.processors.push(\n new CollectionOptimisticProcessor({\n ...params,\n collection,\n optimistic: this,\n }),\n );\n });\n }\n\n this.collection._optimisticActions = this;\n\n makeObservable(this, {\n pushPatchAndReprocess: action,\n replacePatchAndReprocess: action,\n rollback: action.bound,\n clear: action,\n move: action,\n pendingMovePatches: computed,\n });\n }\n\n get _queryNames() {\n return [\n this.collection.queryName,\n ...this.collections.map((c) => c.queryName),\n ];\n }\n\n get hasRunningSequence() {\n return Array.from(this.sequences.values()).some((s) => s.seq.state.running);\n }\n\n get pendingMovePatches() {\n return this.state.patches.filter((p) => p.move);\n }\n\n rollback(patch: OptimisticPatch<T> | OptimisticPatch<T>[]) {\n const { events, state } = this;\n const patches = Array.isArray(patch) ? patch : [patch];\n\n for (const p of patches) {\n state.patches.remove(p);\n }\n\n events.emit('reprocess');\n }\n\n private _clearPatch = action((patch: OptimisticPatch<T>) => {\n const { state, collection, collections, noInvalidate } = this;\n if (noInvalidate) {\n return;\n }\n\n state.patches.remove(patch);\n collection.invalidate();\n collections.forEach((p) => p.refreshAllPages());\n });\n\n _clearPatchOnNextResultOrUnmount = (patch: OptimisticPatch<T>) => {\n const { events } = this;\n\n const clearPatch = () => {\n events.off('unmount', clearPatch);\n this._clearPatch(patch);\n };\n\n const onRefresh = ({ isStale }: { isStale: boolean }) => {\n events.off('refresh', onRefresh);\n\n // clear only when results are not going to come from cache\n if (isStale) {\n events.once('beforeResultUpdated', clearPatch);\n }\n };\n\n // Clear the patch on the next collection result update to eliminate inconsistencies between server state and local patches\n events.on('refresh', onRefresh);\n // since not clearing the patch immediately, clear it on unmount if was not cleared yet\n events.on('unmount', clearPatch);\n\n events.emit('updated');\n };\n\n pushPatchAndReprocess(patch: OptimisticPatch<T> | OptimisticPatch<T>[]) {\n const { state, events } = this;\n const patches = Array.isArray(patch) ? patch : [patch];\n state.patches.push(...patches);\n events.emit('reprocess');\n }\n\n replacePatchAndReprocess(\n newPatch: OptimisticPatch<T>,\n oldPatch: OptimisticPatch<T>,\n ) {\n const { state, events } = this;\n\n const oldPatchIndex = state.patches.findIndex(\n (patch) => patch === oldPatch,\n );\n state.patches[oldPatchIndex] = newPatch;\n events.emit('reprocess');\n }\n\n /**\n * Creates a single item in the collection.\n * @param item - The item to create.\n * @param params - Additional parameters for the operation.\n * @external\n */\n createOne(item: T, params: CreateManyParams<T>) {\n this.createMany([item], params);\n }\n\n /**\n * Creates multiple items in the collection.\n * @param items - The items to create.\n * @param params - Additional parameters for the operation.\n * @external\n */\n createMany(items: T[], params: CreateManyParams<T>) {\n const { collection, executor } = this;\n const { itemKey, result } = collection;\n const { submit, updateServerAfter, onUndo, onTryAgain, onError } = params;\n\n const optimisticPatchParams: OptimisticPatchParams<T> = {\n queryCache: collection.queryCache,\n queryNames: this._queryNames,\n patches: this.state.patches,\n actionType: 'createMany',\n patchedItems: new Map(items.map((item) => [itemKey(item), item])),\n originalItems: new Map(),\n originalTotal: result.total,\n patch: (item, { patchedItems }) => patchedItems.get(itemKey(item)),\n selector: (item, { patchedItems }) => patchedItems.has(itemKey(item)),\n };\n\n const optimisticPatch = new OptimisticPatch<T>(optimisticPatchParams);\n\n this.pushPatchAndReprocess(optimisticPatch);\n\n optimisticPatch.events.on(\n 'scheduleRemoval',\n this._clearPatchOnNextResultOrUnmount,\n );\n\n return executor.execute([optimisticPatch], {\n ...params,\n submit: action(async (actions) => {\n const submitResult = await submit(\n Array.from(\n actions\n .filter(({ actionType }) => actionType === 'createMany')\n .reduce((map, { patchedItemsEntries }) => {\n for (const [key, item] of patchedItemsEntries) {\n map.set(key, item);\n }\n return map;\n }, new Map<string, T>())\n .values(),\n ),\n );\n\n const updatedOptimisticPatch = new OptimisticPatch({\n ...optimisticPatchParams,\n patchedItems: new Map(\n submitResult.map((item) => [itemKey(item), item]),\n ),\n });\n\n this.replacePatchAndReprocess(updatedOptimisticPatch, optimisticPatch);\n this._clearPatchOnNextResultOrUnmount(updatedOptimisticPatch);\n return submitResult;\n }),\n onRollback: () => {\n this.rollback(optimisticPatch);\n },\n eventuallyUpdated: updateServerAfter,\n onEventuallyUpdated: optimisticPatch.onEventuallyUpdated,\n onTryAgain: async () => {\n this.pushPatchAndReprocess(optimisticPatch);\n await onTryAgain?.();\n },\n onError,\n onUndo,\n });\n }\n\n /**\n * Updates multiple items in the collection.\n * @param items - The items to update.\n * @param params - Additional parameters for the update operation.\n * @external\n */\n updateMany<R>(items: T[], params: UpdateManyParams<T, R>) {\n const { executor, collection } = this;\n const { itemKey, result } = collection;\n const {\n submit,\n updateServerAfter,\n keepPosition,\n onUndo,\n onTryAgain,\n onError,\n } = params;\n\n const optimisticPatch = new OptimisticPatch({\n queryCache: collection.queryCache,\n queryNames: this._queryNames,\n patches: this.state.patches,\n actionType: 'updateMany',\n keepPosition,\n patchedItems: new Map(items.map((item) => [itemKey(item), item])),\n originalItems: new Map(\n items.map((item) => {\n const key = itemKey(item);\n const originalItem = result.get(itemKey(item))?.item ?? item;\n return [key, originalItem];\n }),\n ),\n originalTotal: result.total,\n patch: (item, { patchedItems }) => patchedItems.get(itemKey(item)),\n selector: (item, { patchedItems }) => patchedItems.has(itemKey(item)),\n });\n\n this.pushPatchAndReprocess(optimisticPatch);\n\n optimisticPatch.events.on(\n 'scheduleRemoval',\n this._clearPatchOnNextResultOrUnmount,\n );\n\n return executor.execute([optimisticPatch], {\n ...params,\n submit: action((actions) =>\n submit(\n Array.from(\n actions\n .filter(({ actionType }) => actionType === 'updateMany')\n .reduce((map, { patchedItemsEntries }) => {\n for (const [key, item] of patchedItemsEntries) {\n map.set(key, item);\n }\n return map;\n }, new Map<string, T>())\n .values(),\n ),\n ),\n ),\n onRollback: () => {\n this.rollback(optimisticPatch);\n },\n eventuallyUpdated: updateServerAfter,\n onEventuallyUpdated: optimisticPatch.onEventuallyUpdated,\n onTryAgain: async () => {\n this.pushPatchAndReprocess(optimisticPatch);\n await onTryAgain?.();\n },\n onError,\n onUndo,\n });\n }\n\n enqueueMovePatch<R>(\n optimisticPatch: OptimisticPatch<T>,\n params: MoveParams<T, R>,\n ) {\n const { submit, onTryAgain } = params;\n const { collection, state, events } = this;\n const { patches } = state;\n\n const event = optimisticPatch.move;\n\n if (event == null) {\n return;\n }\n\n const { filtersKeyHash } = event;\n\n const _initSequence = () => {\n const { sequences } = this;\n const seq =\n sequences.get(filtersKeyHash) ??\n new CollectionOptimisticSequenceExecutor({\n showToast: collection.showToast,\n translate: collection.translate,\n errorMonitor: collection.errorMonitor,\n onRollback: (err) => {\n const pendingPatches = patches.filter(\n (p) => p.move?.filtersKeyHash === filtersKeyHash,\n );\n this.rollback(pendingPatches);\n\n if (\n err instanceof Error &&\n err.message === this.reorderModeCanceledMessage\n ) {\n executor.seq.clear();\n return;\n }\n\n events.emit('dragAndDropSequenceError', {\n patches: pendingPatches,\n });\n executor.seq.clear();\n return {\n message: collection.translate('cairo.dragAndDrop.error.toast'),\n biName: 'cairo-drag-and-drop-submit-error',\n action: {\n onClick: async () => {\n this.pushPatchAndReprocess(pendingPatches);\n for (const p of pendingPatches) {\n this.enqueueMovePatch(p, params);\n }\n events.emit('dragAndDropSequenceRetry', {\n patches: pendingPatches,\n });\n\n await onTryAgain?.();\n },\n },\n };\n },\n });\n\n if (!sequences.has(filtersKeyHash)) {\n sequences.set(filtersKeyHash, seq);\n }\n\n return seq;\n };\n\n const executor = _initSequence();\n\n executor.sequence({\n submit: () => submit?.(event),\n onEventuallyUpdated: optimisticPatch.onEventuallyUpdated,\n });\n }\n\n async move<R>(event: ActionMove<T>, params: MoveParams<T, R>) {\n const { collection, state } = this;\n const { itemKey, result } = collection;\n const { patches } = state;\n\n const optimisticPatch = new OptimisticPatch({\n queryCache: collection.queryCache,\n queryNames: this._queryNames,\n patches,\n actionType: 'move',\n patchedItems: new Map(),\n originalItems: new Map(),\n originalTotal: result.total,\n selector: (item, { patchedItems }) => patchedItems.has(itemKey(item)),\n move: event,\n collectionSnapshot: params.collectionSnapshot,\n });\n\n this.pushPatchAndReprocess(optimisticPatch);\n\n optimisticPatch.events.on(\n 'scheduleRemoval',\n this._clearPatchOnNextResultOrUnmount,\n );\n\n this.enqueueMovePatch(optimisticPatch, params);\n }\n\n /**\n * Updates a single item in the collection.\n * @param item - The item to update.\n * @param params - Additional parameters for the operation.\n * @external\n */\n updateOne<R>(item: T, params: UpdateManyParams<T, R>) {\n return this.updateMany([item], params);\n }\n\n /**\n * > `updateAll(fn)` API is not recommended as it's not possible to calculate \"optimistic total\", prefer updateAll(patchObject) API if possible.\n * Updates all items in the collection based on a function or a patch object.\n * @param patchOrFn - A function or a patch object to apply to each item.\n * @param params - Additional parameters for the operation.\n */\n updateAll<R>(\n patchOrFn: (item: T) => Partial<T>,\n params: UpdateAllParams<R>,\n ): void;\n\n /**\n * Updates all items in the collection based on a patch object.\n * @param patch - A patch object to apply to each item.\n * @param params - Additional parameters for the operation.\n * @external\n */\n updateAll<R>(patch: Partial<T>, params: UpdateAllParams<R>): void;\n\n updateAll<R>(\n patchOrFn: ((item: T) => Partial<T>) | Partial<T>,\n params: UpdateAllParams<R>,\n ) {\n const { executor, collection, predicate, createdAt } = this;\n const {\n submit,\n updateServerAfter,\n keepPosition,\n onUndo,\n onTryAgain,\n onError,\n } = params;\n const {\n itemKey,\n result: { originQuery, items, total },\n } = collection;\n\n const itemPredicate = predicate(originQuery);\n\n const updatedAt = new Date();\n\n const { patch, actionType } =\n typeof patchOrFn === 'function'\n ? { actionType: 'updateAll' as const, patch: patchOrFn }\n : {\n actionType: 'updateAllConst' as const,\n patch: (item: T) => ({ ...item, ...patchOrFn }),\n };\n\n const optimisticPatch = new OptimisticPatch({\n queryCache: collection.queryCache,\n patches: this.state.patches,\n actionType,\n keepPosition,\n queryNames: this._queryNames,\n patchedItems: new Map(\n items.map((item) => [itemKey(item), { ...item, ...patch(item) }]),\n ),\n originalItems: new Map(items.map((item) => [itemKey(item), item])),\n originalTotal: total,\n selector: (item) =>\n itemPredicate(item) &&\n (createdAt == null || createdAt(item) <= updatedAt),\n patch,\n });\n\n this.pushPatchAndReprocess(optimisticPatch);\n\n optimisticPatch.events.on(\n 'scheduleRemoval',\n this._clearPatchOnNextResultOrUnmount,\n );\n\n executor.execute([optimisticPatch], {\n ...params,\n submit,\n onRollback: () => {\n this.rollback(optimisticPatch);\n },\n eventuallyUpdated: updateServerAfter,\n onEventuallyUpdated: optimisticPatch.onEventuallyUpdated,\n onTryAgain: async () => {\n this.pushPatchAndReprocess(optimisticPatch);\n await onTryAgain?.();\n },\n onError,\n onUndo,\n });\n }\n\n /**\n * Deletes multiple items from the collection.\n * @param items - An array of items to delete.\n * @param params - Additional parameters for the delete operation.\n * @external\n */\n deleteMany<R>(items: T[], params: DeleteManyParams<T, R>) {\n const { executor, collection } = this;\n const {\n itemKey,\n result: { total },\n } = collection;\n const { submit, updateServerAfter, onUndo, onTryAgain, onError } = params;\n\n const patchedItems = new Map(items.map((item) => [itemKey(item), item]));\n\n const optimisticPatch = new OptimisticPatch({\n queryCache: collection.queryCache,\n patches: this.state.patches,\n actionType: 'deleteMany',\n patchedItems,\n queryNames: this._queryNames,\n originalItems: patchedItems,\n originalTotal: total,\n selector: (item, { patchedItems }) => patchedItems.has(itemKey(item)),\n });\n\n this.pushPatchAndReprocess(optimisticPatch);\n\n optimisticPatch.events.on(\n 'scheduleRemoval',\n this._clearPatchOnNextResultOrUnmount,\n );\n\n executor.execute([optimisticPatch], {\n ...params,\n submit: action((actions) =>\n submit(\n Array.from(\n actions\n .filter(({ actionType }) => actionType === 'deleteMany')\n .reduce((map, { patchedItemsEntries }) => {\n for (const [key, item] of patchedItemsEntries) {\n map.set(key, item);\n }\n return map;\n }, new Map<string, T>())\n .values(),\n ),\n ),\n ),\n onRollback: () => {\n this.rollback(optimisticPatch);\n },\n eventuallyUpdated: updateServerAfter,\n onEventuallyUpdated: optimisticPatch.onEventuallyUpdated,\n onTryAgain: async () => {\n this.pushPatchAndReprocess(optimisticPatch);\n await onTryAgain?.();\n },\n onError,\n onUndo,\n });\n }\n\n /**\n * Deletes a single item from the collection.\n * @param item - The item to delete.\n * @param params - Additional parameters for the operation.\n * @external\n */\n deleteOne<R>(item: T, params: DeleteManyParams<T, R>) {\n return this.deleteMany([item], params);\n }\n\n /**\n * Deletes all items from the collection.\n * @param params - Additional parameters for the operation.\n * @external\n */\n deleteAll<R>(params: UpdateAllParams<R>) {\n const { executor, collection, predicate, createdAt } = this;\n const { submit, updateServerAfter, onUndo, onTryAgain, onError } = params;\n const {\n itemKey,\n result: { originQuery, items, total },\n } = collection;\n\n const itemPredicate = predicate(originQuery);\n\n const updatedAt = new Date();\n\n const patchedItems = new Map(items.map((item) => [itemKey(item), item]));\n\n const optimisticPatch = new OptimisticPatch({\n patches: this.state.patches,\n queryCache: collection.queryCache,\n actionType: 'deleteAll',\n patchedItems,\n queryNames: this._queryNames,\n originalItems: patchedItems,\n originalTotal: total,\n selector: (item) =>\n itemPredicate(item) &&\n (createdAt == null || createdAt(item) <= updatedAt),\n });\n\n optimisticPatch.events.on(\n 'scheduleRemoval',\n this._clearPatchOnNextResultOrUnmount,\n );\n\n this.pushPatchAndReprocess(optimisticPatch);\n\n executor.execute([optimisticPatch], {\n ...params,\n submit,\n onRollback: () => {\n this.rollback(optimisticPatch);\n },\n eventuallyUpdated: updateServerAfter,\n onEventuallyUpdated: optimisticPatch.onEventuallyUpdated,\n onTryAgain: async () => {\n this.pushPatchAndReprocess(optimisticPatch);\n await onTryAgain?.();\n },\n onError,\n onUndo,\n });\n }\n\n initCollection(collection: CollectionState<T, F>) {\n this.collections.push(collection);\n new CollectionOptimisticProcessor({\n collection,\n optimistic: this,\n orderBy: this.orderBy,\n predicate: this.predicate,\n });\n\n return () => {\n const i = this.collections.indexOf(collection);\n if (i !== -1) {\n this.collections.splice(i, 1);\n }\n };\n }\n\n init() {\n const { collection, events } = this;\n\n const emitRefresh = (params: { isStale: boolean }) => {\n events.emit('refresh', params);\n };\n const emitBeforeResultUpdated = () => events.emit('beforeResultUpdated');\n\n collection.emitter.on('refresh', emitRefresh);\n collection.emitter.on('beforeResultUpdated', emitBeforeResultUpdated);\n\n const disposers = [\n reaction(\n () => {\n const {\n result: { isEmpty, _pages },\n } = collection;\n const unprocessed = _pages.unprocessed.flatMap((page) => page);\n return isEmpty && unprocessed.length > 0;\n },\n (allFilteredOut) => {\n if (allFilteredOut) {\n collection.fetchNextPageIfNeeded();\n }\n },\n ),\n ];\n\n return () => {\n collection.emitter.off('refresh', emitRefresh);\n collection.emitter.off('beforeResultUpdated', emitBeforeResultUpdated);\n disposers.forEach((disposer) => disposer());\n events.emit('unmount');\n };\n }\n\n clear() {\n const { patches } = this.state;\n const remaining = patches.clear();\n for (const patch of remaining) {\n if (!patch.isStale) {\n patches.push(patch);\n }\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_mobx","require","_CollectionOptimisticActionsState","_CollectionOptimisticProcessor","_CollectionOptimisticPatch","_CollectionOptimisticExecutor","_events","_QueryResultSimulationDefault","_CollectionOptimisticSequenceExecutor","CollectionOptimisticActions","constructor","params","_defineProperty2","default","EventEmitter","action","patch","state","collection","collections","noInvalidate","patches","remove","invalidate","forEach","p","refreshAllPages","events","clearPatch","off","_clearPatch","onRefresh","isStale","once","on","emit","query","sequences","Map","CollectionOptimisticActionsState","source","patchesCache","container","cacheNamespace","resultSimulationDefault","QueryResultSimulationDefault","predicate","orderBy","createdAt","executor","CollectionOptimisticExecutor","batchWait","errorMonitor","showToast","translate","lodash","processors","push","CollectionOptimisticProcessor","optimistic","_optimisticActions","makeObservable","pushPatchAndReprocess","replacePatchAndReprocess","rollback","bound","clear","move","pendingMovePatches","computed","_queryNames","queryName","map","c","hasRunningSequence","Array","from","values","some","s","seq","running","filter","isArray","newPatch","oldPatch","oldPatchIndex","findIndex","createOne","item","createMany","items","itemKey","result","submit","updateServerAfter","onUndo","onTryAgain","onError","optimisticPatchParams","queryCache","queryNames","actionType","patchedItems","originalItems","originalTotal","total","get","selector","has","optimisticPatch","OptimisticPatch","_clearPatchOnNextResultOrUnmount","execute","actions","submitResult","reduce","patchedItemsEntries","key","set","updatedOptimisticPatch","onRollback","eventuallyUpdated","onEventuallyUpdated","updateMany","keepPosition","_result$get","originalItem","enqueueMovePatch","event","filtersKeyHash","_initSequence","CollectionOptimisticSequenceExecutor","err","pendingPatches","_p$move","Error","message","reorderModeCanceledMessage","biName","onClick","sequence","collectionSnapshot","updateOne","updateAll","patchOrFn","originQuery","itemPredicate","updatedAt","Date","deleteMany","deleteOne","deleteAll","initCollection","i","indexOf","splice","init","emitRefresh","emitBeforeResultUpdated","emitter","disposers","reaction","isEmpty","_pages","unprocessed","flatMap","page","length","allFilteredOut","fetchNextPageIfNeeded","disposer","remaining","exports"],"sources":["../../../src/state/CollectionOptimisticActions.ts"],"sourcesContent":["import { ActionMove, ComputedQuery, FiltersMap, ToastConfig } from '../model';\nimport {\n action,\n computed,\n IObservableArray,\n makeObservable,\n reaction,\n} from 'mobx';\nimport { CollectionState } from './CollectionState';\nimport { Order } from './QueryResultSimulation';\nimport { CollectionOptimisticActionsState } from './CollectionOptimisticActionsState';\nimport { CollectionOptimisticProcessor } from './CollectionOptimisticProcessor';\nimport {\n OptimisticPatch,\n OptimisticPatchParams,\n} from './CollectionOptimisticPatch';\nimport {\n CollectionOptimisticExecutor,\n EventuallyUpdated,\n} from './CollectionOptimisticExecutor';\nimport { EventEmitter } from 'events';\nimport { TypedEmitter } from '../util';\nimport { QueryResultSimulationDefault } from './QueryResultSimulationDefault';\nimport { CollectionOptimisticSequenceExecutor } from './CollectionOptimisticSequenceExecutor';\nimport { ModalLayoutProps } from '../services';\nimport { QueryState } from './QueryState';\n\nexport interface OptimisticActionBasis {\n /**\n * Determines whether to display an undo toast before calling the server action.\n * @default false\n * @external\n */\n showUndoToast?: boolean;\n /**\n * Determines whether to display a toast after clicking on undo.\n * @default false\n * @external\n */\n showUndoSuccessToast?: boolean;\n /**\n * Callback function triggered when the user clicks on the undo button.\n * @external\n */\n onUndo?: () => void;\n /**\n * Function to generate error toast to show in case the server fails to perform the action.\n * @external\n */\n errorToast?: (err: unknown) => ToastConfig | string;\n /**\n * Callback function triggered when an error occurs.\n * @external\n */\n onError?: (err: unknown) => void;\n /**\n * Callback function to retry the action.\n * @external\n */\n onTryAgain?: () => void | Promise<void>;\n /**\n * Toast message or configuration to show on successful action.\n * @external\n */\n successToast?: ToastConfig | string;\n /**\n * Indicates when the server is eventually updated.\n * Possible values:\n * - submit: Server updates immediately after the submission promise resolves.\n * - number: Server updates after a specified timeout (in milliseconds).\n * - Promise: Server updates after a forwarded promise resolves.\n * @default submit\n * @external\n */\n updateServerAfter?: EventuallyUpdated;\n}\n\nexport interface UpdateAllParams<R> extends OptimisticActionBasis {\n /**\n * Function to submit the update operation.\n */\n submit: () => Promise<R>;\n /**\n * Indicates whether to keep the current position of items after the update.\n */\n keepPosition?: boolean;\n}\n\nexport interface UpdateManyParams<T, R> extends OptimisticActionBasis {\n /**\n * Function to submit the update operation.\n * @param items - The items to update.\n */\n submit: (items: T[]) => Promise<R>;\n /**\n * Indicates whether to keep the current position of items after the update.\n */\n keepPosition?: boolean;\n}\n\nexport interface MoveParams<T, R> extends OptimisticActionBasis {\n /**\n * Function to submit the move operation.\n * @param params - The parameters for the move action.\n */\n submit?: (params: ActionMove<T>) => Promise<R>;\n /**\n * Snapshot of the collection before the move operation.\n */\n collectionSnapshot: { [key: string]: string | number | undefined };\n}\n\nexport interface CreateManyParams<T> extends OptimisticActionBasis {\n /**\n * Function to submit the creation operation.\n * @param items - The items to create.\n */\n submit: (items: T[]) => Promise<T[]>;\n}\n\nexport interface DeleteManyParams<T, R> extends OptimisticActionBasis {\n /**\n * Function to submit the deletion operation.\n * @param items - The items to delete.\n */\n submit: (items: T[]) => Promise<R>;\n}\n\nexport interface DeleteAllParams<R> extends OptimisticActionBasis {\n /**\n * Function to submit the deletion operation.\n */\n submit: () => Promise<R>;\n}\n\nexport interface CollectionOptimisticActionsBaseParams<\n T,\n F extends FiltersMap,\n> {\n /**\n * A function that simulates the filtering in the server.\n * The function should return another function that accepts an item, and return a boolean that indicates whether the item passes the query filters or not.\n * @param computedQuery - The computed query object.\n * @external\n */\n readonly predicate?: (\n computedQuery: ComputedQuery<F>,\n ) => (item: T) => boolean;\n /**\n * A function that simulates the ordering of the items in the server.<br>\n * The function should return a list of rules in the form of `{fieldName: string; order: 'asc' | 'desc';}` to order the items by\n * @param computedQuery - The computed query object.\n * @external\n */\n readonly orderBy?: (computedQuery: ComputedQuery<F>) => Order<T>[];\n /**\n * A function to retrieve the creation date of an item.\n * @param item - The item.\n * @external\n */\n readonly createdAt?: (item: T) => Date;\n /**\n * Time to wait before batching multiple `updateMany` calls into a single server call.\n * @default 0\n * @external\n */\n readonly batchWait?: number;\n /**\n * Indicates whether to refresh the current page without invalidating the cache.\n * @external\n */\n readonly noInvalidate?: boolean;\n /**\n * Adds a namespace to the cache key.\n * @external\n */\n readonly cacheNamespace?: string;\n readonly sequences?: Map<string, CollectionOptimisticSequenceExecutor>;\n readonly query?: QueryState<F>;\n}\n\nexport interface CollectionOptimisticActionsParams<T, F extends FiltersMap>\n extends CollectionOptimisticActionsBaseParams<T, F> {\n /**\n * The main collection to reflect changes into.\n * @external\n */\n readonly collection: CollectionState<T, F>;\n /**\n * Additional collections to reflect changes into.\n * @default undefined\n * @external\n */\n readonly collections?: CollectionState<T, F>[];\n /**\n * Container holding patches cache and events emitter.\n * @external\n */\n readonly container: {\n patchesCache: Map<string, IObservableArray<OptimisticPatch<T>>>;\n events: TypedEmitter<{\n navigation: () => ModalLayoutProps | null | undefined;\n }>;\n };\n}\n\nexport class CollectionOptimisticActions<T, F extends FiltersMap> {\n readonly collection;\n readonly query;\n readonly collections;\n readonly predicate: (computedQuery: ComputedQuery<F>) => (item: T) => boolean;\n readonly orderBy: (computedQuery: ComputedQuery<F>) => Order<T>[];\n readonly createdAt?: (item: T) => Date;\n readonly events = new EventEmitter() as TypedEmitter<{\n reprocess: () => void;\n updated: () => void;\n refresh: (params: { isStale: boolean }) => void;\n unmount: () => void;\n beforeResultUpdated: () => void;\n dragAndDropSequenceError: (params: {\n patches: OptimisticPatch<T>[];\n }) => void;\n dragAndDropSequenceRetry: (params: {\n patches: OptimisticPatch<T>[];\n }) => void;\n }>;\n readonly noInvalidate;\n readonly state;\n readonly processors: CollectionOptimisticProcessor<T, F>[] = [];\n readonly executor: CollectionOptimisticExecutor<OptimisticPatch<T>>;\n readonly sequences;\n readonly resultSimulationDefault;\n readonly reorderModeCanceledMessage = 'REORDER_MODE_CANCELED';\n\n _resumeNavigation: (() => void) | null = null;\n\n _orderByMode: 'orders' | 'moves' = 'orders';\n\n constructor(params: CollectionOptimisticActionsParams<T, F>) {\n this.collection = params.collection;\n this.query = params.query ?? this.collection.query;\n this.collections = params.collections ?? [];\n\n this.sequences =\n params.sequences ??\n new Map<string, CollectionOptimisticSequenceExecutor>();\n\n this.state = new CollectionOptimisticActionsState<T>({\n source: this.collection,\n patchesCache: params.container.patchesCache,\n cacheNamespace: params.cacheNamespace,\n });\n\n this.resultSimulationDefault = new QueryResultSimulationDefault({\n collection: this.collection,\n });\n\n this.predicate = params.predicate ?? this.resultSimulationDefault.predicate;\n this.orderBy = params.orderBy ?? this.resultSimulationDefault.orderBy;\n this.createdAt = params.createdAt;\n this.noInvalidate = params.noInvalidate;\n\n this.executor = new CollectionOptimisticExecutor({\n batchWait: params.batchWait ?? 0,\n errorMonitor: this.collection.errorMonitor,\n showToast: this.collection.showToast,\n translate: this.collection.translate,\n lodash: this.collection.lodash,\n container: params.container,\n });\n\n this.processors.push(\n new CollectionOptimisticProcessor({\n ...params,\n optimistic: this,\n }),\n );\n\n if (params.collections != null) {\n params.collections.forEach((collection) => {\n this.processors.push(\n new CollectionOptimisticProcessor({\n ...params,\n collection,\n optimistic: this,\n }),\n );\n });\n }\n\n this.collection._optimisticActions = this;\n\n makeObservable(this, {\n pushPatchAndReprocess: action,\n replacePatchAndReprocess: action,\n rollback: action.bound,\n clear: action,\n move: action,\n pendingMovePatches: computed,\n });\n }\n\n get _queryNames() {\n return [\n this.collection.queryName,\n ...this.collections.map((c) => c.queryName),\n ];\n }\n\n get hasRunningSequence() {\n return Array.from(this.sequences.values()).some((s) => s.seq.state.running);\n }\n\n get pendingMovePatches() {\n return this.state.patches.filter((p) => p.move);\n }\n\n rollback(patch: OptimisticPatch<T> | OptimisticPatch<T>[]) {\n const { events, state } = this;\n const patches = Array.isArray(patch) ? patch : [patch];\n\n for (const p of patches) {\n state.patches.remove(p);\n }\n\n events.emit('reprocess');\n }\n\n private _clearPatch = action((patch: OptimisticPatch<T>) => {\n const { state, collection, collections, noInvalidate } = this;\n if (noInvalidate) {\n return;\n }\n\n state.patches.remove(patch);\n collection.invalidate();\n collections.forEach((p) => p.refreshAllPages());\n });\n\n _clearPatchOnNextResultOrUnmount = (patch: OptimisticPatch<T>) => {\n const { events } = this;\n\n const clearPatch = () => {\n events.off('unmount', clearPatch);\n this._clearPatch(patch);\n };\n\n const onRefresh = ({ isStale }: { isStale: boolean }) => {\n events.off('refresh', onRefresh);\n\n // clear only when results are not going to come from cache\n if (isStale) {\n events.once('beforeResultUpdated', clearPatch);\n }\n };\n\n // Clear the patch on the next collection result update to eliminate inconsistencies between server state and local patches\n events.on('refresh', onRefresh);\n // since not clearing the patch immediately, clear it on unmount if was not cleared yet\n events.on('unmount', clearPatch);\n\n events.emit('updated');\n };\n\n pushPatchAndReprocess(patch: OptimisticPatch<T> | OptimisticPatch<T>[]) {\n const { state, events } = this;\n const patches = Array.isArray(patch) ? patch : [patch];\n state.patches.push(...patches);\n events.emit('reprocess');\n }\n\n replacePatchAndReprocess(\n newPatch: OptimisticPatch<T>,\n oldPatch: OptimisticPatch<T>,\n ) {\n const { state, events } = this;\n\n const oldPatchIndex = state.patches.findIndex(\n (patch) => patch === oldPatch,\n );\n state.patches[oldPatchIndex] = newPatch;\n events.emit('reprocess');\n }\n\n /**\n * Creates a single item in the collection.\n * @param item - The item to create.\n * @param params - Additional parameters for the operation.\n * @external\n */\n createOne(item: T, params: CreateManyParams<T>) {\n this.createMany([item], params);\n }\n\n /**\n * Creates multiple items in the collection.\n * @param items - The items to create.\n * @param params - Additional parameters for the operation.\n * @external\n */\n createMany(items: T[], params: CreateManyParams<T>) {\n const { collection, executor } = this;\n const { itemKey, result } = collection;\n const { submit, updateServerAfter, onUndo, onTryAgain, onError } = params;\n\n const optimisticPatchParams: OptimisticPatchParams<T> = {\n queryCache: collection.queryCache,\n queryNames: this._queryNames,\n patches: this.state.patches,\n actionType: 'createMany',\n patchedItems: new Map(items.map((item) => [itemKey(item), item])),\n originalItems: new Map(),\n originalTotal: result.total,\n patch: (item, { patchedItems }) => patchedItems.get(itemKey(item)),\n selector: (item, { patchedItems }) => patchedItems.has(itemKey(item)),\n };\n\n const optimisticPatch = new OptimisticPatch<T>(optimisticPatchParams);\n\n this.pushPatchAndReprocess(optimisticPatch);\n\n optimisticPatch.events.on(\n 'scheduleRemoval',\n this._clearPatchOnNextResultOrUnmount,\n );\n\n return executor.execute([optimisticPatch], {\n ...params,\n submit: action(async (actions) => {\n const submitResult = await submit(\n Array.from(\n actions\n .filter(({ actionType }) => actionType === 'createMany')\n .reduce((map, { patchedItemsEntries }) => {\n for (const [key, item] of patchedItemsEntries) {\n map.set(key, item);\n }\n return map;\n }, new Map<string, T>())\n .values(),\n ),\n );\n\n const updatedOptimisticPatch = new OptimisticPatch({\n ...optimisticPatchParams,\n patchedItems: new Map(\n submitResult.map((item) => [itemKey(item), item]),\n ),\n });\n\n this.replacePatchAndReprocess(updatedOptimisticPatch, optimisticPatch);\n this._clearPatchOnNextResultOrUnmount(updatedOptimisticPatch);\n return submitResult;\n }),\n onRollback: () => {\n this.rollback(optimisticPatch);\n },\n eventuallyUpdated: updateServerAfter,\n onEventuallyUpdated: optimisticPatch.onEventuallyUpdated,\n onTryAgain: async () => {\n this.pushPatchAndReprocess(optimisticPatch);\n await onTryAgain?.();\n },\n onError,\n onUndo,\n });\n }\n\n /**\n * Updates multiple items in the collection.\n * @param items - The items to update.\n * @param params - Additional parameters for the update operation.\n * @external\n */\n updateMany<R>(items: T[], params: UpdateManyParams<T, R>) {\n const { executor, collection } = this;\n const { itemKey, result } = collection;\n const {\n submit,\n updateServerAfter,\n keepPosition,\n onUndo,\n onTryAgain,\n onError,\n } = params;\n\n const optimisticPatch = new OptimisticPatch({\n queryCache: collection.queryCache,\n queryNames: this._queryNames,\n patches: this.state.patches,\n actionType: 'updateMany',\n keepPosition,\n patchedItems: new Map(items.map((item) => [itemKey(item), item])),\n originalItems: new Map(\n items.map((item) => {\n const key = itemKey(item);\n const originalItem = result.get(itemKey(item))?.item ?? item;\n return [key, originalItem];\n }),\n ),\n originalTotal: result.total,\n patch: (item, { patchedItems }) => patchedItems.get(itemKey(item)),\n selector: (item, { patchedItems }) => patchedItems.has(itemKey(item)),\n });\n\n this.pushPatchAndReprocess(optimisticPatch);\n\n optimisticPatch.events.on(\n 'scheduleRemoval',\n this._clearPatchOnNextResultOrUnmount,\n );\n\n return executor.execute([optimisticPatch], {\n ...params,\n submit: action((actions) =>\n submit(\n Array.from(\n actions\n .filter(({ actionType }) => actionType === 'updateMany')\n .reduce((map, { patchedItemsEntries }) => {\n for (const [key, item] of patchedItemsEntries) {\n map.set(key, item);\n }\n return map;\n }, new Map<string, T>())\n .values(),\n ),\n ),\n ),\n onRollback: () => {\n this.rollback(optimisticPatch);\n },\n eventuallyUpdated: updateServerAfter,\n onEventuallyUpdated: optimisticPatch.onEventuallyUpdated,\n onTryAgain: async () => {\n this.pushPatchAndReprocess(optimisticPatch);\n await onTryAgain?.();\n },\n onError,\n onUndo,\n });\n }\n\n enqueueMovePatch<R>(\n optimisticPatch: OptimisticPatch<T>,\n params: MoveParams<T, R>,\n ) {\n const { submit, onTryAgain } = params;\n const { collection, state, events } = this;\n const { patches } = state;\n\n const event = optimisticPatch.move;\n\n if (event == null) {\n return;\n }\n\n const { filtersKeyHash } = event;\n\n const _initSequence = () => {\n const { sequences } = this;\n const seq =\n sequences.get(filtersKeyHash) ??\n new CollectionOptimisticSequenceExecutor({\n showToast: collection.showToast,\n translate: collection.translate,\n errorMonitor: collection.errorMonitor,\n onRollback: (err) => {\n const pendingPatches = patches.filter(\n (p) => p.move?.filtersKeyHash === filtersKeyHash,\n );\n this.rollback(pendingPatches);\n\n if (\n err instanceof Error &&\n err.message === this.reorderModeCanceledMessage\n ) {\n executor.seq.clear();\n return;\n }\n\n events.emit('dragAndDropSequenceError', {\n patches: pendingPatches,\n });\n executor.seq.clear();\n return {\n message: collection.translate('cairo.dragAndDrop.error.toast'),\n biName: 'cairo-drag-and-drop-submit-error',\n action: {\n onClick: async () => {\n this.pushPatchAndReprocess(pendingPatches);\n for (const p of pendingPatches) {\n this.enqueueMovePatch(p, params);\n }\n events.emit('dragAndDropSequenceRetry', {\n patches: pendingPatches,\n });\n\n await onTryAgain?.();\n },\n },\n };\n },\n });\n\n if (!sequences.has(filtersKeyHash)) {\n sequences.set(filtersKeyHash, seq);\n }\n\n return seq;\n };\n\n const executor = _initSequence();\n\n executor.sequence({\n submit: () => submit?.(event),\n onEventuallyUpdated: optimisticPatch.onEventuallyUpdated,\n });\n }\n\n async move<R>(event: ActionMove<T>, params: MoveParams<T, R>) {\n const { collection, state } = this;\n const { itemKey, result } = collection;\n const { patches } = state;\n\n const optimisticPatch = new OptimisticPatch({\n queryCache: collection.queryCache,\n queryNames: this._queryNames,\n patches,\n actionType: 'move',\n patchedItems: new Map(),\n originalItems: new Map(),\n originalTotal: result.total,\n selector: (item, { patchedItems }) => patchedItems.has(itemKey(item)),\n move: event,\n collectionSnapshot: params.collectionSnapshot,\n });\n\n this.pushPatchAndReprocess(optimisticPatch);\n\n optimisticPatch.events.on(\n 'scheduleRemoval',\n this._clearPatchOnNextResultOrUnmount,\n );\n\n this.enqueueMovePatch(optimisticPatch, params);\n }\n\n /**\n * Updates a single item in the collection.\n * @param item - The item to update.\n * @param params - Additional parameters for the operation.\n * @external\n */\n updateOne<R>(item: T, params: UpdateManyParams<T, R>) {\n return this.updateMany([item], params);\n }\n\n /**\n * > `updateAll(fn)` API is not recommended as it's not possible to calculate \"optimistic total\", prefer updateAll(patchObject) API if possible.\n * Updates all items in the collection based on a function or a patch object.\n * @param patchOrFn - A function or a patch object to apply to each item.\n * @param params - Additional parameters for the operation.\n */\n updateAll<R>(\n patchOrFn: (item: T) => Partial<T>,\n params: UpdateAllParams<R>,\n ): void;\n\n /**\n * Updates all items in the collection based on a patch object.\n * @param patch - A patch object to apply to each item.\n * @param params - Additional parameters for the operation.\n * @external\n */\n updateAll<R>(patch: Partial<T>, params: UpdateAllParams<R>): void;\n\n updateAll<R>(\n patchOrFn: ((item: T) => Partial<T>) | Partial<T>,\n params: UpdateAllParams<R>,\n ) {\n const { executor, collection, predicate, createdAt } = this;\n const {\n submit,\n updateServerAfter,\n keepPosition,\n onUndo,\n onTryAgain,\n onError,\n } = params;\n const {\n itemKey,\n result: { originQuery, items, total },\n } = collection;\n\n const itemPredicate = predicate(originQuery);\n\n const updatedAt = new Date();\n\n const { patch, actionType } =\n typeof patchOrFn === 'function'\n ? { actionType: 'updateAll' as const, patch: patchOrFn }\n : {\n actionType: 'updateAllConst' as const,\n patch: (item: T) => ({ ...item, ...patchOrFn }),\n };\n\n const optimisticPatch = new OptimisticPatch({\n queryCache: collection.queryCache,\n patches: this.state.patches,\n actionType,\n keepPosition,\n queryNames: this._queryNames,\n patchedItems: new Map(\n items.map((item) => [itemKey(item), { ...item, ...patch(item) }]),\n ),\n originalItems: new Map(items.map((item) => [itemKey(item), item])),\n originalTotal: total,\n selector: (item) =>\n itemPredicate(item) &&\n (createdAt == null || createdAt(item) <= updatedAt),\n patch,\n });\n\n this.pushPatchAndReprocess(optimisticPatch);\n\n optimisticPatch.events.on(\n 'scheduleRemoval',\n this._clearPatchOnNextResultOrUnmount,\n );\n\n executor.execute([optimisticPatch], {\n ...params,\n submit,\n onRollback: () => {\n this.rollback(optimisticPatch);\n },\n eventuallyUpdated: updateServerAfter,\n onEventuallyUpdated: optimisticPatch.onEventuallyUpdated,\n onTryAgain: async () => {\n this.pushPatchAndReprocess(optimisticPatch);\n await onTryAgain?.();\n },\n onError,\n onUndo,\n });\n }\n\n /**\n * Deletes multiple items from the collection.\n * @param items - An array of items to delete.\n * @param params - Additional parameters for the delete operation.\n * @external\n */\n deleteMany<R>(items: T[], params: DeleteManyParams<T, R>) {\n const { executor, collection } = this;\n const {\n itemKey,\n result: { total },\n } = collection;\n const { submit, updateServerAfter, onUndo, onTryAgain, onError } = params;\n\n const patchedItems = new Map(items.map((item) => [itemKey(item), item]));\n\n const optimisticPatch = new OptimisticPatch({\n queryCache: collection.queryCache,\n patches: this.state.patches,\n actionType: 'deleteMany',\n patchedItems,\n queryNames: this._queryNames,\n originalItems: patchedItems,\n originalTotal: total,\n selector: (item, { patchedItems }) => patchedItems.has(itemKey(item)),\n });\n\n this.pushPatchAndReprocess(optimisticPatch);\n\n optimisticPatch.events.on(\n 'scheduleRemoval',\n this._clearPatchOnNextResultOrUnmount,\n );\n\n executor.execute([optimisticPatch], {\n ...params,\n submit: action((actions) =>\n submit(\n Array.from(\n actions\n .filter(({ actionType }) => actionType === 'deleteMany')\n .reduce((map, { patchedItemsEntries }) => {\n for (const [key, item] of patchedItemsEntries) {\n map.set(key, item);\n }\n return map;\n }, new Map<string, T>())\n .values(),\n ),\n ),\n ),\n onRollback: () => {\n this.rollback(optimisticPatch);\n },\n eventuallyUpdated: updateServerAfter,\n onEventuallyUpdated: optimisticPatch.onEventuallyUpdated,\n onTryAgain: async () => {\n this.pushPatchAndReprocess(optimisticPatch);\n await onTryAgain?.();\n },\n onError,\n onUndo,\n });\n }\n\n /**\n * Deletes a single item from the collection.\n * @param item - The item to delete.\n * @param params - Additional parameters for the operation.\n * @external\n */\n deleteOne<R>(item: T, params: DeleteManyParams<T, R>) {\n return this.deleteMany([item], params);\n }\n\n /**\n * Deletes all items from the collection.\n * @param params - Additional parameters for the operation.\n * @external\n */\n deleteAll<R>(params: UpdateAllParams<R>) {\n const { executor, collection, predicate, createdAt } = this;\n const { submit, updateServerAfter, onUndo, onTryAgain, onError } = params;\n const {\n itemKey,\n result: { originQuery, items, total },\n } = collection;\n\n const itemPredicate = predicate(originQuery);\n\n const updatedAt = new Date();\n\n const patchedItems = new Map(items.map((item) => [itemKey(item), item]));\n\n const optimisticPatch = new OptimisticPatch({\n patches: this.state.patches,\n queryCache: collection.queryCache,\n actionType: 'deleteAll',\n patchedItems,\n queryNames: this._queryNames,\n originalItems: patchedItems,\n originalTotal: total,\n selector: (item) =>\n itemPredicate(item) &&\n (createdAt == null || createdAt(item) <= updatedAt),\n });\n\n optimisticPatch.events.on(\n 'scheduleRemoval',\n this._clearPatchOnNextResultOrUnmount,\n );\n\n this.pushPatchAndReprocess(optimisticPatch);\n\n executor.execute([optimisticPatch], {\n ...params,\n submit,\n onRollback: () => {\n this.rollback(optimisticPatch);\n },\n eventuallyUpdated: updateServerAfter,\n onEventuallyUpdated: optimisticPatch.onEventuallyUpdated,\n onTryAgain: async () => {\n this.pushPatchAndReprocess(optimisticPatch);\n await onTryAgain?.();\n },\n onError,\n onUndo,\n });\n }\n\n initCollection(collection: CollectionState<T, F>) {\n this.collections.push(collection);\n new CollectionOptimisticProcessor({\n collection,\n optimistic: this,\n orderBy: this.orderBy,\n predicate: this.predicate,\n });\n\n return () => {\n const i = this.collections.indexOf(collection);\n if (i !== -1) {\n this.collections.splice(i, 1);\n }\n };\n }\n\n init() {\n const { collection, events } = this;\n\n const emitRefresh = (params: { isStale: boolean }) => {\n events.emit('refresh', params);\n };\n const emitBeforeResultUpdated = () => events.emit('beforeResultUpdated');\n\n collection.emitter.on('refresh', emitRefresh);\n collection.emitter.on('beforeResultUpdated', emitBeforeResultUpdated);\n\n const disposers = [\n reaction(\n () => {\n const {\n result: { isEmpty, _pages },\n } = collection;\n const unprocessed = _pages.unprocessed.flatMap((page) => page);\n return isEmpty && unprocessed.length > 0;\n },\n (allFilteredOut) => {\n if (allFilteredOut) {\n collection.fetchNextPageIfNeeded();\n }\n },\n ),\n ];\n\n return () => {\n collection.emitter.off('refresh', emitRefresh);\n collection.emitter.off('beforeResultUpdated', emitBeforeResultUpdated);\n disposers.forEach((disposer) => disposer());\n events.emit('unmount');\n };\n }\n\n clear() {\n const { patches } = this.state;\n const remaining = patches.clear();\n for (const patch of remaining) {\n if (!patch.isStale) {\n patches.push(patch);\n }\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -126,6 +126,7 @@ class CollectionOptimisticProcessor {
126
126
  currentFiltersKeyHash: query.filtersKeyHash,
127
127
  itemKey,
128
128
  toMerge: itemToMerge,
129
+ itemPredicate,
129
130
  limit
130
131
  }) : (0, _orderByOrders.orderByOrders)(pageWithPatchedItems, itemToMerge, {
131
132
  orders,
@@ -1 +1 @@
1
- {"version":3,"names":["_mobx","require","_QueryResultSimulationDefault","_CollectionOptimisticHelpers","_optimisticSimulation","_orderByOrders","_orderByMoves","CollectionOptimisticProcessor","constructor","params","_defineProperty2","default","collection","processorHelpers","CollectionOptimisticProcessorHelpers","optimistic","resultSimulationDefault","QueryResultSimulationDefault","predicate","orderBy","makeObservable","reprocess","action","bound","beforeAddNewPages","beforeSetTotal","_register","emitter","on","events","removeSelectionIfExists","itemKey","bulkSelect","result","originQuery","state","patches","itemPredicate","filterItem","filterPageByPatches","select","filter","item","pages","currentItemsMap","query","orderByIteratee","limit","length","orders","_orderByMode","finalPages","map","page","transformItemByUpdateAllPatches","itemToMerge","prepareItemsToMergeIntoPage","all","size","index","pageWithPatchedItems","mergePatchedItems","orderByMoves","pageIndex","currentFiltersKeyHash","filtersKeyHash","toMerge","orderByOrders","total","processedTotal","reduce","prev","actionType","patchedItemsEntries","originalItems","originalTotal","key","originalItem","get","patchedItemsTotal","acc","value","Math","max","exports"],"sources":["../../../src/state/CollectionOptimisticProcessor.ts"],"sourcesContent":["import {\n ComputedQuery,\n ComputedQueryFull,\n FiltersMap,\n KeyedItem,\n} from '../model';\nimport { CollectionState } from './CollectionState';\nimport { action, makeObservable } from 'mobx';\nimport { Order, QueryResultSimulation } from './QueryResultSimulation';\nimport { QueryResultSimulationDefault } from './QueryResultSimulationDefault';\nimport { TypedEmitter } from '../util';\nimport { CollectionOptimisticProcessorHelpers } from './CollectionOptimisticHelpers';\nimport { CollectionOptimisticActionsState } from './CollectionOptimisticActionsState';\nimport {\n filterPageByPatches,\n mergePatchedItems,\n prepareItemsToMergeIntoPage,\n transformItemByUpdateAllPatches,\n} from './optimistic-simulation';\nimport { orderByOrders } from './optimistic-simulation/orderByOrders';\nimport { orderByMoves } from './optimistic-simulation/orderByMoves';\nimport { QueryState } from './QueryState';\n\ninterface Optimistic<T, F extends FiltersMap> {\n _orderByMode: 'orders' | 'moves';\n readonly state: CollectionOptimisticActionsState<T>;\n readonly events: TypedEmitter<{\n reprocess: () => void;\n updated: () => void;\n }>;\n readonly query: QueryState<F>;\n}\n\nexport interface CollectionOptimisticProcessorParams<T, F extends FiltersMap>\n extends Partial<QueryResultSimulation<T, F>> {\n readonly collection: CollectionState<T, F>;\n readonly optimistic: Optimistic<T, F>;\n}\n\nexport class CollectionOptimisticProcessor<T, F extends FiltersMap> {\n readonly collection: CollectionState<T, F>;\n readonly processorHelpers: CollectionOptimisticProcessorHelpers<T, F>;\n readonly optimistic: Optimistic<T, F>;\n\n readonly resultSimulationDefault: QueryResultSimulation<T, F>;\n readonly predicate: (computedQuery: ComputedQuery<F>) => (item: T) => boolean;\n readonly orderBy: (computedQuery: ComputedQuery<F>) => Order<T>[];\n\n constructor(params: CollectionOptimisticProcessorParams<T, F>) {\n this.collection = params.collection;\n this.processorHelpers = new CollectionOptimisticProcessorHelpers(\n this.collection,\n );\n this.optimistic = params.optimistic;\n\n this.resultSimulationDefault = new QueryResultSimulationDefault({\n collection: this.collection,\n });\n this.predicate = params.predicate ?? this.resultSimulationDefault.predicate;\n this.orderBy = params.orderBy ?? this.resultSimulationDefault.orderBy;\n\n makeObservable(this, {\n reprocess: action.bound,\n beforeAddNewPages: action.bound,\n beforeSetTotal: action.bound,\n });\n\n this._register();\n }\n\n _register() {\n this.collection.emitter.on('beforeAddNewPages', this.beforeAddNewPages);\n this.collection.emitter.on('beforeSetTotal', this.beforeSetTotal);\n this.optimistic.events.on('reprocess', this.reprocess);\n }\n\n reprocess() {\n this.removeSelectionIfExists();\n this.processorHelpers.reprocess();\n }\n\n removeSelectionIfExists() {\n const {\n collection: {\n itemKey,\n bulkSelect,\n result: { originQuery },\n },\n optimistic: {\n state: { patches },\n },\n predicate,\n } = this;\n\n const itemPredicate = predicate(originQuery);\n\n const filterItem = filterPageByPatches(patches, { itemPredicate, itemKey });\n bulkSelect.select.filter(({ item }) => filterItem(item));\n }\n\n beforeAddNewPages({\n pages,\n currentItemsMap,\n originQuery,\n }: {\n pages: T[][];\n currentItemsMap: Map<string, KeyedItem<T>>;\n originQuery: ComputedQueryFull<F>;\n }) {\n const {\n optimistic: { state, query },\n collection,\n predicate,\n orderBy: orderByIteratee,\n } = this;\n\n const { itemKey } = collection;\n\n const { patches } = state;\n\n const { limit } = originQuery;\n\n if (!patches.length) {\n return pages;\n }\n\n const itemPredicate = predicate(originQuery);\n const orders =\n this.optimistic._orderByMode === 'orders'\n ? orderByIteratee(originQuery)\n : [];\n\n let finalPages = pages;\n\n finalPages = finalPages.map((page) => {\n return page\n .filter(filterPageByPatches(patches, { itemPredicate, itemKey }))\n .map(transformItemByUpdateAllPatches(patches));\n });\n\n const itemToMerge = prepareItemsToMergeIntoPage(patches, {\n itemPredicate,\n currentItemsMap,\n });\n\n if (!itemToMerge.all.size && this.optimistic._orderByMode === 'orders') {\n return finalPages;\n }\n\n finalPages = finalPages.map((page, index) => {\n const pageWithPatchedItems = itemToMerge.all.size\n ? mergePatchedItems(itemToMerge, {\n page,\n limit,\n itemKey,\n orders,\n itemPredicate,\n })\n : page.map((item) => ({ item }));\n\n return this.optimistic._orderByMode === 'moves'\n ? orderByMoves({\n pageWithPatchedItems,\n pageIndex: index,\n patches,\n currentFiltersKeyHash: query.filtersKeyHash,\n itemKey,\n toMerge: itemToMerge,\n limit,\n })\n : orderByOrders(pageWithPatchedItems, itemToMerge, {\n orders,\n itemKey,\n limit,\n });\n });\n\n return finalPages;\n }\n\n beforeSetTotal({\n total,\n originQuery,\n }: {\n total: number;\n originQuery: ComputedQuery<F>;\n }) {\n const {\n optimistic: { state },\n predicate,\n } = this;\n\n const { patches } = state;\n\n if (!patches.length) {\n return total;\n }\n\n const itemPredicate = predicate(originQuery);\n\n const processedTotal = patches.reduce(\n (\n prev,\n { actionType, patchedItemsEntries, originalItems, originalTotal },\n ) => {\n if (actionType === 'updateAllConst' || actionType === 'deleteAll') {\n const [[key, item] = []] = patchedItemsEntries;\n\n if (key == null || item == null) {\n return prev;\n }\n\n const originalItem = originalItems.get(key);\n\n if (\n itemPredicate(item) &&\n (originalItem == null || !itemPredicate(originalItem))\n ) {\n return prev + originalTotal;\n }\n\n if (\n // if action=deleteAll treat the item as filtered out, no need to check predicate\n (actionType === 'deleteAll' || !itemPredicate(item)) &&\n originalItem != null &&\n itemPredicate(originalItem)\n ) {\n return prev - originalTotal;\n }\n\n return prev;\n }\n\n const patchedItemsTotal = patchedItemsEntries.reduce(\n (acc, [key, item]) => {\n const originalItem = originalItems.get(key);\n const value = (() => {\n switch (actionType) {\n case 'deleteMany':\n if (originalItem != null && itemPredicate(originalItem)) {\n return -1;\n }\n\n return 0;\n case 'updateMany':\n case 'updateAll':\n case 'createMany':\n if (\n itemPredicate(item) &&\n (originalItem == null || !itemPredicate(originalItem))\n ) {\n return 1;\n }\n\n if (\n !itemPredicate(item) &&\n originalItem != null &&\n itemPredicate(originalItem)\n ) {\n return -1;\n }\n return 0;\n }\n\n return 0;\n })();\n return acc + value;\n },\n 0,\n );\n\n return prev + patchedItemsTotal;\n },\n total,\n );\n\n return Math.max(processedTotal, 0);\n }\n}\n"],"mappings":";;;;;;AAOA,IAAAA,KAAA,GAAAC,OAAA;AAEA,IAAAC,6BAAA,GAAAD,OAAA;AAEA,IAAAE,4BAAA,GAAAF,OAAA;AAEA,IAAAG,qBAAA,GAAAH,OAAA;AAMA,IAAAI,cAAA,GAAAJ,OAAA;AACA,IAAAK,aAAA,GAAAL,OAAA;AAmBO,MAAMM,6BAA6B,CAA0B;EASlEC,WAAWA,CAACC,MAAiD,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;IAC7D,IAAI,CAACC,UAAU,GAAGH,MAAM,CAACG,UAAU;IACnC,IAAI,CAACC,gBAAgB,GAAG,IAAIC,iEAAoC,CAC9D,IAAI,CAACF,UACP,CAAC;IACD,IAAI,CAACG,UAAU,GAAGN,MAAM,CAACM,UAAU;IAEnC,IAAI,CAACC,uBAAuB,GAAG,IAAIC,0DAA4B,CAAC;MAC9DL,UAAU,EAAE,IAAI,CAACA;IACnB,CAAC,CAAC;IACF,IAAI,CAACM,SAAS,GAAGT,MAAM,CAACS,SAAS,IAAI,IAAI,CAACF,uBAAuB,CAACE,SAAS;IAC3E,IAAI,CAACC,OAAO,GAAGV,MAAM,CAACU,OAAO,IAAI,IAAI,CAACH,uBAAuB,CAACG,OAAO;IAErE,IAAAC,oBAAc,EAAC,IAAI,EAAE;MACnBC,SAAS,EAAEC,YAAM,CAACC,KAAK;MACvBC,iBAAiB,EAAEF,YAAM,CAACC,KAAK;MAC/BE,cAAc,EAAEH,YAAM,CAACC;IACzB,CAAC,CAAC;IAEF,IAAI,CAACG,SAAS,CAAC,CAAC;EAClB;EAEAA,SAASA,CAAA,EAAG;IACV,IAAI,CAACd,UAAU,CAACe,OAAO,CAACC,EAAE,CAAC,mBAAmB,EAAE,IAAI,CAACJ,iBAAiB,CAAC;IACvE,IAAI,CAACZ,UAAU,CAACe,OAAO,CAACC,EAAE,CAAC,gBAAgB,EAAE,IAAI,CAACH,cAAc,CAAC;IACjE,IAAI,CAACV,UAAU,CAACc,MAAM,CAACD,EAAE,CAAC,WAAW,EAAE,IAAI,CAACP,SAAS,CAAC;EACxD;EAEAA,SAASA,CAAA,EAAG;IACV,IAAI,CAACS,uBAAuB,CAAC,CAAC;IAC9B,IAAI,CAACjB,gBAAgB,CAACQ,SAAS,CAAC,CAAC;EACnC;EAEAS,uBAAuBA,CAAA,EAAG;IACxB,MAAM;MACJlB,UAAU,EAAE;QACVmB,OAAO;QACPC,UAAU;QACVC,MAAM,EAAE;UAAEC;QAAY;MACxB,CAAC;MACDnB,UAAU,EAAE;QACVoB,KAAK,EAAE;UAAEC;QAAQ;MACnB,CAAC;MACDlB;IACF,CAAC,GAAG,IAAI;IAER,MAAMmB,aAAa,GAAGnB,SAAS,CAACgB,WAAW,CAAC;IAE5C,MAAMI,UAAU,GAAG,IAAAC,yCAAmB,EAACH,OAAO,EAAE;MAAEC,aAAa;MAAEN;IAAQ,CAAC,CAAC;IAC3EC,UAAU,CAACQ,MAAM,CAACC,MAAM,CAAC,CAAC;MAAEC;IAAK,CAAC,KAAKJ,UAAU,CAACI,IAAI,CAAC,CAAC;EAC1D;EAEAlB,iBAAiBA,CAAC;IAChBmB,KAAK;IACLC,eAAe;IACfV;EAKF,CAAC,EAAE;IACD,MAAM;MACJnB,UAAU,EAAE;QAAEoB,KAAK;QAAEU;MAAM,CAAC;MAC5BjC,UAAU;MACVM,SAAS;MACTC,OAAO,EAAE2B;IACX,CAAC,GAAG,IAAI;IAER,MAAM;MAAEf;IAAQ,CAAC,GAAGnB,UAAU;IAE9B,MAAM;MAAEwB;IAAQ,CAAC,GAAGD,KAAK;IAEzB,MAAM;MAAEY;IAAM,CAAC,GAAGb,WAAW;IAE7B,IAAI,CAACE,OAAO,CAACY,MAAM,EAAE;MACnB,OAAOL,KAAK;IACd;IAEA,MAAMN,aAAa,GAAGnB,SAAS,CAACgB,WAAW,CAAC;IAC5C,MAAMe,MAAM,GACV,IAAI,CAAClC,UAAU,CAACmC,YAAY,KAAK,QAAQ,GACrCJ,eAAe,CAACZ,WAAW,CAAC,GAC5B,EAAE;IAER,IAAIiB,UAAU,GAAGR,KAAK;IAEtBQ,UAAU,GAAGA,UAAU,CAACC,GAAG,CAAEC,IAAI,IAAK;MACpC,OAAOA,IAAI,CACRZ,MAAM,CAAC,IAAAF,yCAAmB,EAACH,OAAO,EAAE;QAAEC,aAAa;QAAEN;MAAQ,CAAC,CAAC,CAAC,CAChEqB,GAAG,CAAC,IAAAE,qDAA+B,EAAClB,OAAO,CAAC,CAAC;IAClD,CAAC,CAAC;IAEF,MAAMmB,WAAW,GAAG,IAAAC,iDAA2B,EAACpB,OAAO,EAAE;MACvDC,aAAa;MACbO;IACF,CAAC,CAAC;IAEF,IAAI,CAACW,WAAW,CAACE,GAAG,CAACC,IAAI,IAAI,IAAI,CAAC3C,UAAU,CAACmC,YAAY,KAAK,QAAQ,EAAE;MACtE,OAAOC,UAAU;IACnB;IAEAA,UAAU,GAAGA,UAAU,CAACC,GAAG,CAAC,CAACC,IAAI,EAAEM,KAAK,KAAK;MAC3C,MAAMC,oBAAoB,GAAGL,WAAW,CAACE,GAAG,CAACC,IAAI,GAC7C,IAAAG,uCAAiB,EAACN,WAAW,EAAE;QAC7BF,IAAI;QACJN,KAAK;QACLhB,OAAO;QACPkB,MAAM;QACNZ;MACF,CAAC,CAAC,GACFgB,IAAI,CAACD,GAAG,CAAEV,IAAI,KAAM;QAAEA;MAAK,CAAC,CAAC,CAAC;MAElC,OAAO,IAAI,CAAC3B,UAAU,CAACmC,YAAY,KAAK,OAAO,GAC3C,IAAAY,0BAAY,EAAC;QACXF,oBAAoB;QACpBG,SAAS,EAAEJ,KAAK;QAChBvB,OAAO;QACP4B,qBAAqB,EAAEnB,KAAK,CAACoB,cAAc;QAC3ClC,OAAO;QACPmC,OAAO,EAAEX,WAAW;QACpBR;MACF,CAAC,CAAC,GACF,IAAAoB,4BAAa,EAACP,oBAAoB,EAAEL,WAAW,EAAE;QAC/CN,MAAM;QACNlB,OAAO;QACPgB;MACF,CAAC,CAAC;IACR,CAAC,CAAC;IAEF,OAAOI,UAAU;EACnB;EAEA1B,cAAcA,CAAC;IACb2C,KAAK;IACLlC;EAIF,CAAC,EAAE;IACD,MAAM;MACJnB,UAAU,EAAE;QAAEoB;MAAM,CAAC;MACrBjB;IACF,CAAC,GAAG,IAAI;IAER,MAAM;MAAEkB;IAAQ,CAAC,GAAGD,KAAK;IAEzB,IAAI,CAACC,OAAO,CAACY,MAAM,EAAE;MACnB,OAAOoB,KAAK;IACd;IAEA,MAAM/B,aAAa,GAAGnB,SAAS,CAACgB,WAAW,CAAC;IAE5C,MAAMmC,cAAc,GAAGjC,OAAO,CAACkC,MAAM,CACnC,CACEC,IAAI,EACJ;MAAEC,UAAU;MAAEC,mBAAmB;MAAEC,aAAa;MAAEC;IAAc,CAAC,KAC9D;MACH,IAAIH,UAAU,KAAK,gBAAgB,IAAIA,UAAU,KAAK,WAAW,EAAE;QACjE,MAAM,CAAC,CAACI,GAAG,EAAElC,IAAI,CAAC,GAAG,EAAE,CAAC,GAAG+B,mBAAmB;QAE9C,IAAIG,GAAG,IAAI,IAAI,IAAIlC,IAAI,IAAI,IAAI,EAAE;UAC/B,OAAO6B,IAAI;QACb;QAEA,MAAMM,YAAY,GAAGH,aAAa,CAACI,GAAG,CAACF,GAAG,CAAC;QAE3C,IACEvC,aAAa,CAACK,IAAI,CAAC,KAClBmC,YAAY,IAAI,IAAI,IAAI,CAACxC,aAAa,CAACwC,YAAY,CAAC,CAAC,EACtD;UACA,OAAON,IAAI,GAAGI,aAAa;QAC7B;QAEA;QACE;QACA,CAACH,UAAU,KAAK,WAAW,IAAI,CAACnC,aAAa,CAACK,IAAI,CAAC,KACnDmC,YAAY,IAAI,IAAI,IACpBxC,aAAa,CAACwC,YAAY,CAAC,EAC3B;UACA,OAAON,IAAI,GAAGI,aAAa;QAC7B;QAEA,OAAOJ,IAAI;MACb;MAEA,MAAMQ,iBAAiB,GAAGN,mBAAmB,CAACH,MAAM,CAClD,CAACU,GAAG,EAAE,CAACJ,GAAG,EAAElC,IAAI,CAAC,KAAK;QACpB,MAAMmC,YAAY,GAAGH,aAAa,CAACI,GAAG,CAACF,GAAG,CAAC;QAC3C,MAAMK,KAAK,GAAG,CAAC,MAAM;UACnB,QAAQT,UAAU;YAChB,KAAK,YAAY;cACf,IAAIK,YAAY,IAAI,IAAI,IAAIxC,aAAa,CAACwC,YAAY,CAAC,EAAE;gBACvD,OAAO,CAAC,CAAC;cACX;cAEA,OAAO,CAAC;YACV,KAAK,YAAY;YACjB,KAAK,WAAW;YAChB,KAAK,YAAY;cACf,IACExC,aAAa,CAACK,IAAI,CAAC,KAClBmC,YAAY,IAAI,IAAI,IAAI,CAACxC,aAAa,CAACwC,YAAY,CAAC,CAAC,EACtD;gBACA,OAAO,CAAC;cACV;cAEA,IACE,CAACxC,aAAa,CAACK,IAAI,CAAC,IACpBmC,YAAY,IAAI,IAAI,IACpBxC,aAAa,CAACwC,YAAY,CAAC,EAC3B;gBACA,OAAO,CAAC,CAAC;cACX;cACA,OAAO,CAAC;UACZ;UAEA,OAAO,CAAC;QACV,CAAC,EAAE,CAAC;QACJ,OAAOG,GAAG,GAAGC,KAAK;MACpB,CAAC,EACD,CACF,CAAC;MAED,OAAOV,IAAI,GAAGQ,iBAAiB;IACjC,CAAC,EACDX,KACF,CAAC;IAED,OAAOc,IAAI,CAACC,GAAG,CAACd,cAAc,EAAE,CAAC,CAAC;EACpC;AACF;AAACe,OAAA,CAAA7E,6BAAA,GAAAA,6BAAA","ignoreList":[]}
1
+ {"version":3,"names":["_mobx","require","_QueryResultSimulationDefault","_CollectionOptimisticHelpers","_optimisticSimulation","_orderByOrders","_orderByMoves","CollectionOptimisticProcessor","constructor","params","_defineProperty2","default","collection","processorHelpers","CollectionOptimisticProcessorHelpers","optimistic","resultSimulationDefault","QueryResultSimulationDefault","predicate","orderBy","makeObservable","reprocess","action","bound","beforeAddNewPages","beforeSetTotal","_register","emitter","on","events","removeSelectionIfExists","itemKey","bulkSelect","result","originQuery","state","patches","itemPredicate","filterItem","filterPageByPatches","select","filter","item","pages","currentItemsMap","query","orderByIteratee","limit","length","orders","_orderByMode","finalPages","map","page","transformItemByUpdateAllPatches","itemToMerge","prepareItemsToMergeIntoPage","all","size","index","pageWithPatchedItems","mergePatchedItems","orderByMoves","pageIndex","currentFiltersKeyHash","filtersKeyHash","toMerge","orderByOrders","total","processedTotal","reduce","prev","actionType","patchedItemsEntries","originalItems","originalTotal","key","originalItem","get","patchedItemsTotal","acc","value","Math","max","exports"],"sources":["../../../src/state/CollectionOptimisticProcessor.ts"],"sourcesContent":["import {\n ComputedQuery,\n ComputedQueryFull,\n FiltersMap,\n KeyedItem,\n} from '../model';\nimport { CollectionState } from './CollectionState';\nimport { action, makeObservable } from 'mobx';\nimport { Order, QueryResultSimulation } from './QueryResultSimulation';\nimport { QueryResultSimulationDefault } from './QueryResultSimulationDefault';\nimport { TypedEmitter } from '../util';\nimport { CollectionOptimisticProcessorHelpers } from './CollectionOptimisticHelpers';\nimport { CollectionOptimisticActionsState } from './CollectionOptimisticActionsState';\nimport {\n filterPageByPatches,\n mergePatchedItems,\n prepareItemsToMergeIntoPage,\n transformItemByUpdateAllPatches,\n} from './optimistic-simulation';\nimport { orderByOrders } from './optimistic-simulation/orderByOrders';\nimport { orderByMoves } from './optimistic-simulation/orderByMoves';\nimport { QueryState } from './QueryState';\n\ninterface Optimistic<T, F extends FiltersMap> {\n _orderByMode: 'orders' | 'moves';\n readonly state: CollectionOptimisticActionsState<T>;\n readonly events: TypedEmitter<{\n reprocess: () => void;\n updated: () => void;\n }>;\n readonly query: QueryState<F>;\n}\n\nexport interface CollectionOptimisticProcessorParams<T, F extends FiltersMap>\n extends Partial<QueryResultSimulation<T, F>> {\n readonly collection: CollectionState<T, F>;\n readonly optimistic: Optimistic<T, F>;\n}\n\nexport class CollectionOptimisticProcessor<T, F extends FiltersMap> {\n readonly collection: CollectionState<T, F>;\n readonly processorHelpers: CollectionOptimisticProcessorHelpers<T, F>;\n readonly optimistic: Optimistic<T, F>;\n\n readonly resultSimulationDefault: QueryResultSimulation<T, F>;\n readonly predicate: (computedQuery: ComputedQuery<F>) => (item: T) => boolean;\n readonly orderBy: (computedQuery: ComputedQuery<F>) => Order<T>[];\n\n constructor(params: CollectionOptimisticProcessorParams<T, F>) {\n this.collection = params.collection;\n this.processorHelpers = new CollectionOptimisticProcessorHelpers(\n this.collection,\n );\n this.optimistic = params.optimistic;\n\n this.resultSimulationDefault = new QueryResultSimulationDefault({\n collection: this.collection,\n });\n this.predicate = params.predicate ?? this.resultSimulationDefault.predicate;\n this.orderBy = params.orderBy ?? this.resultSimulationDefault.orderBy;\n\n makeObservable(this, {\n reprocess: action.bound,\n beforeAddNewPages: action.bound,\n beforeSetTotal: action.bound,\n });\n\n this._register();\n }\n\n _register() {\n this.collection.emitter.on('beforeAddNewPages', this.beforeAddNewPages);\n this.collection.emitter.on('beforeSetTotal', this.beforeSetTotal);\n this.optimistic.events.on('reprocess', this.reprocess);\n }\n\n reprocess() {\n this.removeSelectionIfExists();\n this.processorHelpers.reprocess();\n }\n\n removeSelectionIfExists() {\n const {\n collection: {\n itemKey,\n bulkSelect,\n result: { originQuery },\n },\n optimistic: {\n state: { patches },\n },\n predicate,\n } = this;\n\n const itemPredicate = predicate(originQuery);\n\n const filterItem = filterPageByPatches(patches, { itemPredicate, itemKey });\n bulkSelect.select.filter(({ item }) => filterItem(item));\n }\n\n beforeAddNewPages({\n pages,\n currentItemsMap,\n originQuery,\n }: {\n pages: T[][];\n currentItemsMap: Map<string, KeyedItem<T>>;\n originQuery: ComputedQueryFull<F>;\n }) {\n const {\n optimistic: { state, query },\n collection,\n predicate,\n orderBy: orderByIteratee,\n } = this;\n\n const { itemKey } = collection;\n\n const { patches } = state;\n\n const { limit } = originQuery;\n\n if (!patches.length) {\n return pages;\n }\n\n const itemPredicate = predicate(originQuery);\n const orders =\n this.optimistic._orderByMode === 'orders'\n ? orderByIteratee(originQuery)\n : [];\n\n let finalPages = pages;\n\n finalPages = finalPages.map((page) => {\n return page\n .filter(filterPageByPatches(patches, { itemPredicate, itemKey }))\n .map(transformItemByUpdateAllPatches(patches));\n });\n\n const itemToMerge = prepareItemsToMergeIntoPage(patches, {\n itemPredicate,\n currentItemsMap,\n });\n\n if (!itemToMerge.all.size && this.optimistic._orderByMode === 'orders') {\n return finalPages;\n }\n\n finalPages = finalPages.map((page, index) => {\n const pageWithPatchedItems = itemToMerge.all.size\n ? mergePatchedItems(itemToMerge, {\n page,\n limit,\n itemKey,\n orders,\n itemPredicate,\n })\n : page.map((item) => ({ item }));\n\n return this.optimistic._orderByMode === 'moves'\n ? orderByMoves({\n pageWithPatchedItems,\n pageIndex: index,\n patches,\n currentFiltersKeyHash: query.filtersKeyHash,\n itemKey,\n toMerge: itemToMerge,\n itemPredicate,\n limit,\n })\n : orderByOrders(pageWithPatchedItems, itemToMerge, {\n orders,\n itemKey,\n limit,\n });\n });\n\n return finalPages;\n }\n\n beforeSetTotal({\n total,\n originQuery,\n }: {\n total: number;\n originQuery: ComputedQuery<F>;\n }) {\n const {\n optimistic: { state },\n predicate,\n } = this;\n\n const { patches } = state;\n\n if (!patches.length) {\n return total;\n }\n\n const itemPredicate = predicate(originQuery);\n\n const processedTotal = patches.reduce(\n (\n prev,\n { actionType, patchedItemsEntries, originalItems, originalTotal },\n ) => {\n if (actionType === 'updateAllConst' || actionType === 'deleteAll') {\n const [[key, item] = []] = patchedItemsEntries;\n\n if (key == null || item == null) {\n return prev;\n }\n\n const originalItem = originalItems.get(key);\n\n if (\n itemPredicate(item) &&\n (originalItem == null || !itemPredicate(originalItem))\n ) {\n return prev + originalTotal;\n }\n\n if (\n // if action=deleteAll treat the item as filtered out, no need to check predicate\n (actionType === 'deleteAll' || !itemPredicate(item)) &&\n originalItem != null &&\n itemPredicate(originalItem)\n ) {\n return prev - originalTotal;\n }\n\n return prev;\n }\n\n const patchedItemsTotal = patchedItemsEntries.reduce(\n (acc, [key, item]) => {\n const originalItem = originalItems.get(key);\n const value = (() => {\n switch (actionType) {\n case 'deleteMany':\n if (originalItem != null && itemPredicate(originalItem)) {\n return -1;\n }\n\n return 0;\n case 'updateMany':\n case 'updateAll':\n case 'createMany':\n if (\n itemPredicate(item) &&\n (originalItem == null || !itemPredicate(originalItem))\n ) {\n return 1;\n }\n\n if (\n !itemPredicate(item) &&\n originalItem != null &&\n itemPredicate(originalItem)\n ) {\n return -1;\n }\n return 0;\n }\n\n return 0;\n })();\n return acc + value;\n },\n 0,\n );\n\n return prev + patchedItemsTotal;\n },\n total,\n );\n\n return Math.max(processedTotal, 0);\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -105,13 +105,6 @@ class CollectionState {
105
105
  available = null,
106
106
  cursor = null
107
107
  } = await this.fetchData(computedQuery);
108
- this.fetchesHistory.push({
109
- itemsKeys: items.map(item => this.itemKey(item)),
110
- queryPageInfo: {
111
- page: computedQuery.page,
112
- cursor: computedQuery.cursor
113
- }
114
- });
115
108
  return {
116
109
  items,
117
110
  total,
@@ -480,6 +473,21 @@ class CollectionState {
480
473
  originQuery
481
474
  }), unprocessedTotal);
482
475
  }
476
+ _addToFetchesHistory(newPages) {
477
+ const {
478
+ page,
479
+ cursor,
480
+ offset
481
+ } = this.query.asComputed;
482
+ this.fetchesHistory.push({
483
+ itemsKeys: newPages.flatMap(p => p.items).map(item => this.itemKey(item)),
484
+ queryPageInfo: {
485
+ page,
486
+ cursor,
487
+ offset
488
+ }
489
+ });
490
+ }
483
491
  updateResult(queries) {
484
492
  const {
485
493
  result,
@@ -513,6 +521,7 @@ class CollectionState {
513
521
  unprocessed: unprocessedTotal,
514
522
  processed: processedTotal
515
523
  });
524
+ this._addToFetchesHistory(newPages);
516
525
  result.setSupportTotal(lastPage.total != null);
517
526
  paginationMode.setCursor(cursor);
518
527
  if (available != null) {