@wix/bex-core 2.62.0 → 2.63.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 (47) hide show
  1. package/dist/cjs/assets/locale/messages_cs.json +1 -0
  2. package/dist/cjs/assets/locale/messages_da.json +1 -0
  3. package/dist/cjs/assets/locale/messages_de.json +1 -0
  4. package/dist/cjs/assets/locale/messages_es.json +6 -5
  5. package/dist/cjs/assets/locale/messages_fr.json +1 -0
  6. package/dist/cjs/assets/locale/messages_hi.json +1 -0
  7. package/dist/cjs/assets/locale/messages_id.json +6 -5
  8. package/dist/cjs/assets/locale/messages_it.json +6 -5
  9. package/dist/cjs/assets/locale/messages_ja.json +1 -0
  10. package/dist/cjs/assets/locale/messages_ko.json +6 -5
  11. package/dist/cjs/assets/locale/messages_nl.json +1 -0
  12. package/dist/cjs/assets/locale/messages_no.json +6 -5
  13. package/dist/cjs/assets/locale/messages_pl.json +6 -5
  14. package/dist/cjs/assets/locale/messages_pt.json +6 -5
  15. package/dist/cjs/assets/locale/messages_ru.json +6 -5
  16. package/dist/cjs/assets/locale/messages_sv.json +6 -5
  17. package/dist/cjs/assets/locale/messages_th.json +1 -0
  18. package/dist/cjs/assets/locale/messages_tr.json +6 -5
  19. package/dist/cjs/assets/locale/messages_uk.json +6 -5
  20. package/dist/cjs/assets/locale/messages_vi.json +6 -5
  21. package/dist/cjs/assets/locale/messages_zh.json +1 -0
  22. package/dist/cjs/state/QueryResultState.js +3 -3
  23. package/dist/cjs/state/QueryResultState.js.map +1 -1
  24. package/dist/esm/assets/locale/messages_cs.json +1 -0
  25. package/dist/esm/assets/locale/messages_da.json +1 -0
  26. package/dist/esm/assets/locale/messages_de.json +1 -0
  27. package/dist/esm/assets/locale/messages_es.json +6 -5
  28. package/dist/esm/assets/locale/messages_fr.json +1 -0
  29. package/dist/esm/assets/locale/messages_hi.json +1 -0
  30. package/dist/esm/assets/locale/messages_id.json +6 -5
  31. package/dist/esm/assets/locale/messages_it.json +6 -5
  32. package/dist/esm/assets/locale/messages_ja.json +1 -0
  33. package/dist/esm/assets/locale/messages_ko.json +6 -5
  34. package/dist/esm/assets/locale/messages_nl.json +1 -0
  35. package/dist/esm/assets/locale/messages_no.json +6 -5
  36. package/dist/esm/assets/locale/messages_pl.json +6 -5
  37. package/dist/esm/assets/locale/messages_pt.json +6 -5
  38. package/dist/esm/assets/locale/messages_ru.json +6 -5
  39. package/dist/esm/assets/locale/messages_sv.json +6 -5
  40. package/dist/esm/assets/locale/messages_th.json +1 -0
  41. package/dist/esm/assets/locale/messages_tr.json +6 -5
  42. package/dist/esm/assets/locale/messages_uk.json +6 -5
  43. package/dist/esm/assets/locale/messages_vi.json +6 -5
  44. package/dist/esm/assets/locale/messages_zh.json +1 -0
  45. package/dist/esm/state/QueryResultState.js +2 -2
  46. package/dist/esm/state/QueryResultState.js.map +1 -1
  47. package/package.json +3 -3
@@ -50,7 +50,7 @@
50
50
  "cairo.dragAndDrop.leaveSite.modal.cancel.CTA": "İptal",
51
51
  "cairo.tags.manageTags.modal.deleteModal.delete.CTA": "Sil",
52
52
  "cairo.updatedView.collectionPage.toast.cta": "Görünümü Yenile",
53
- "cairo.customFields.addCustomField.modal.PII-setting.toggle.createNote": "PII settings can’t be changed later.",
53
+ "cairo.customFields.addCustomField.modal.PII-setting.toggle.createNote": "KTB ayarları daha sonra değiştirilemez.",
54
54
  "cairo.customFields.fieldType.dropdownList.placeholder": "Ör. İtalya",
55
55
  "cairo.tags.manageTags.modal.deleteModal.cancel.CTA": "İptal",
56
56
  "cairo.dragAndDrop.discardChanges.CTA": "Kaldır",
@@ -69,7 +69,7 @@
69
69
  "cairo.filtersPanel.time.title": "Saat",
70
70
  "cairo.tags.manageTags.modal.list.input.validation.exists": "Bu etiket zaten mevcut.",
71
71
  "cairo.filtersPanel.date.next7Days": "Önümüzdeki 7 gün",
72
- "cairo.collectionPage.nestedLimit.tooltip": "{subCatsAmount, plural, =1 {There is a max of 1 sub-level.} other {There is a max of # sub-levels.}}",
72
+ "cairo.collectionPage.nestedLimit.tooltip": "{subCatsAmount, plural, one {En fazla 1 alt düzey bulunabilir.} other {En fazla {subCatsAmount,number} alt düzey bulunabilir.}}",
73
73
  "cairo.sortableColumns.notification.undo": "Geri Al",
74
74
  "cairo.filtersPanel.saveView.button": "Görünümü Kaydet",
75
75
  "cairo.dragAndDrop.leaveSite.modal.title": "Çıkmak İstediğinize Emin misiniz?",
@@ -142,7 +142,7 @@
142
142
  "cairo.customFields.fieldType.longText": "Uzun metin",
143
143
  "cairo.export.tryAgain": "Tekrar Dene",
144
144
  "cairo.sortableColumns.modal.title": "Liste {columnTitle} Sütununa Göre Sıralansın mı?",
145
- "cairo.customFields.addCustomField.modal.PII-setting.toggle.name": "Personal information (PII)",
145
+ "cairo.customFields.addCustomField.modal.PII-setting.toggle.name": "Kişisel Tanımlama Bilgileri (KTB)",
146
146
  "cairo.dragAndDrop.leaveSite.modal.description": "Ögelerinizin sıralamasında yaptığınız değişiklikler kaydedilemeyebilir.",
147
147
  "cairo.table.deleteViewModal.deleteBody": "\"{viewName}\" silindikten sonra geri yüklenemez.",
148
148
  "cairo.export.allItems": "Tümü",
@@ -209,7 +209,7 @@
209
209
  "cairo.customFields.addCustomField.modal.sameKey.error": "Bu anahtar zaten mevcut. Farklı bir anahtar deneyin.",
210
210
  "cairo.entityPage.saveError-technical.toast.description": "Bizim tarafımızdaki teknik bir sorun nedeniyle değişiklikler kaydedilmedi. ",
211
211
  "cairo.customFields.addCustomField.modal.advancedSettings.key.title": "Anahtar",
212
- "cairo.customFields.addCustomField.modal.PII-setting.toggle.editNote": "PII can’t be changed after creation. To change it, create a new field.",
212
+ "cairo.customFields.addCustomField.modal.PII-setting.toggle.editNote": "KTB oluşturulduktan sonra değiştirilemez. Değiştirmek için yeni bir alan oluşturun.",
213
213
  "section.header.items": "Ögeler",
214
214
  "cairo.customFields.fieldType.numberInteger": "Sayı (tam sayı)",
215
215
  "cairo.folders.showAll.button": "Tümünü Göster",
@@ -235,7 +235,7 @@
235
235
  "cairo.table.custom-columns.disabled.tooltip": "Bu sütun gizlenemez veya taşınamaz.",
236
236
  "cairo.page.loadError.failedState.title": "Sayfa Yüklenemedi",
237
237
  "cairo.bulkSelected.selectUpTo": "Maksimum {max} öge seçin.",
238
- "cairo.customFields.addCustomField.modal.PII-setting.toggle.info": "Protect personally identifiable information (PII) like addresses and passport info with an additional layer of protection. <link><u>Why is this important?</u></link>",
238
+ "cairo.customFields.addCustomField.modal.PII-setting.toggle.info": "Adres ve pasaport bilgileri gibi kişisel tanımlama bilgilerini (KTB) ek bir koruma katmanıyla güvenceye alın. <link><u>Bu neden önemlidir?</u></link>",
239
239
  "cairo.manageView.saveChanges.CTA": "Değişiklikleri Kaydet",
240
240
  "cairo.customFields.archive.CTA": "Arşivle",
241
241
  "cairo.tags.tagsWidget.noPermissions.tooltip": "You need “Permission Type” permission to\nmanage tags. Contact \"Owner\" for access.",
@@ -316,6 +316,7 @@
316
316
  "cairo.appliedFilters.discardChanges.CTA": "Değişiklikleri Kaldır",
317
317
  "airo.tags.collectionPage.popover.emptyState.body": "Etiketler, ögelerinizi filtrelemeye ve düzenli tutmaya yardımcı olur.",
318
318
  "cairo.saveViewModal.error.message.unexpected": "Bu görünüm şu anda kaydedilemedi, lütfen birkaç dakika içinde tekrar deneyin.",
319
+ "cairo.collectionPage.appInstall-inContext.moreActions.relatedApps.CTA": "Explore related apps",
319
320
  "cairo.customFields.entityPage.emptyState.title": "Hiçbir alan doldurulmadı",
320
321
  "cairo.export.exportToCSVMessage": "Ögeleriniz ve tüm verileri CSV dosyası olarak indirilecek.",
321
322
  "cairo.manageView.unsaved.tooltip": "Değişikliklerinizi kaydetmek için 'Görünümü Yönet'e gidin.",
@@ -50,7 +50,7 @@
50
50
  "cairo.dragAndDrop.leaveSite.modal.cancel.CTA": "Скасувати",
51
51
  "cairo.tags.manageTags.modal.deleteModal.delete.CTA": "Видалити",
52
52
  "cairo.updatedView.collectionPage.toast.cta": "Оновити",
53
- "cairo.customFields.addCustomField.modal.PII-setting.toggle.createNote": "PII settings can’t be changed later.",
53
+ "cairo.customFields.addCustomField.modal.PII-setting.toggle.createNote": "Персональні дані не можна буде змінити пізніше.",
54
54
  "cairo.customFields.fieldType.dropdownList.placeholder": "напр., Італія",
55
55
  "cairo.tags.manageTags.modal.deleteModal.cancel.CTA": "Скасувати",
56
56
  "cairo.dragAndDrop.discardChanges.CTA": "Скинути",
@@ -69,7 +69,7 @@
69
69
  "cairo.filtersPanel.time.title": "Час",
70
70
  "cairo.tags.manageTags.modal.list.input.validation.exists": "Такий тег уже існує.",
71
71
  "cairo.filtersPanel.date.next7Days": "Наступні 7 днів",
72
- "cairo.collectionPage.nestedLimit.tooltip": "{subCatsAmount, plural, =1 {There is a max of 1 sub-level.} other {There is a max of # sub-levels.}}",
72
+ "cairo.collectionPage.nestedLimit.tooltip": "{subCatsAmount, plural, one {У вас не може бути більше 1 підрівня.} few {У вас не може бути більше {subCatsAmount,number} підрівнів.} many {У вас не може бути більше {subCatsAmount,number} підрівнів.} other {У вас не може бути більше {subCatsAmount,number} підрівнів.}}",
73
73
  "cairo.sortableColumns.notification.undo": "Відмінити",
74
74
  "cairo.filtersPanel.saveView.button": "Зберегти перегляд",
75
75
  "cairo.dragAndDrop.leaveSite.modal.title": "Упевнені, що бажаєте вийти?",
@@ -142,7 +142,7 @@
142
142
  "cairo.customFields.fieldType.longText": "Довгий текст",
143
143
  "cairo.export.tryAgain": "Спробуйте ще раз",
144
144
  "cairo.sortableColumns.modal.title": "Сортувати список за {columnTitle}?",
145
- "cairo.customFields.addCustomField.modal.PII-setting.toggle.name": "Personal information (PII)",
145
+ "cairo.customFields.addCustomField.modal.PII-setting.toggle.name": "Персональні дані (PII)",
146
146
  "cairo.dragAndDrop.leaveSite.modal.description": "Імовірно, що внесені зміни до порядку ваших елементів не будуть збережені.",
147
147
  "cairo.table.deleteViewModal.deleteBody": "Якщо видалити перегляд «{viewName}», його буде неможливо відновити.",
148
148
  "cairo.export.allItems": "Усі",
@@ -209,7 +209,7 @@
209
209
  "cairo.customFields.addCustomField.modal.sameKey.error": "Цей ключ уже існує. Спробуйте інший.",
210
210
  "cairo.entityPage.saveError-technical.toast.description": "Зміни не збережено, бо в нас виникла технічна проблема. ",
211
211
  "cairo.customFields.addCustomField.modal.advancedSettings.key.title": "Ключ",
212
- "cairo.customFields.addCustomField.modal.PII-setting.toggle.editNote": "PII can’t be changed after creation. To change it, create a new field.",
212
+ "cairo.customFields.addCustomField.modal.PII-setting.toggle.editNote": "Персональні дані не можна змінювати після створення. Щоб змінити їх, створіть нове поле.",
213
213
  "section.header.items": "Елементи",
214
214
  "cairo.customFields.fieldType.numberInteger": "Число (ціле)",
215
215
  "cairo.folders.showAll.button": "Показати всі",
@@ -235,7 +235,7 @@
235
235
  "cairo.table.custom-columns.disabled.tooltip": "Цей стовпчик неможливо приховати чи перемістити.",
236
236
  "cairo.page.loadError.failedState.title": "Не вдалося завантажити сторінку",
237
237
  "cairo.bulkSelected.selectUpTo": "Максимум елементів для вибору — {max}.",
238
- "cairo.customFields.addCustomField.modal.PII-setting.toggle.info": "Protect personally identifiable information (PII) like addresses and passport info with an additional layer of protection. <link><u>Why is this important?</u></link>",
238
+ "cairo.customFields.addCustomField.modal.PII-setting.toggle.info": "Використовуйте додатковий рівень захисту для персональних даних (PII), таких як адреси й паспортні дані. <link><u>Чому це важливо?</u></link>",
239
239
  "cairo.manageView.saveChanges.CTA": "Зберегти зміни",
240
240
  "cairo.customFields.archive.CTA": "Архівувати",
241
241
  "cairo.tags.tagsWidget.noPermissions.tooltip": "You need “Permission Type” permission to\nmanage tags. Contact \"Owner\" for access.",
@@ -316,6 +316,7 @@
316
316
  "cairo.appliedFilters.discardChanges.CTA": "Скасувати зміни",
317
317
  "airo.tags.collectionPage.popover.emptyState.body": "Теги допомагають фільтрувати й упорядковувати позиції.",
318
318
  "cairo.saveViewModal.error.message.unexpected": "Наразі не вдалося зберегти цей перегляд. Спробуйте ще раз за кілька хвилин.",
319
+ "cairo.collectionPage.appInstall-inContext.moreActions.relatedApps.CTA": "Explore related apps",
319
320
  "cairo.customFields.entityPage.emptyState.title": "Поля не заповнено",
320
321
  "cairo.export.exportToCSVMessage": "Ваші товари й усі їхні дані будуть завантажені у вигляді файлу CSV.",
321
322
  "cairo.manageView.unsaved.tooltip": "Щоб зберегти зміни, перейдіть у «Керувати переглядом».",
@@ -50,7 +50,7 @@
50
50
  "cairo.dragAndDrop.leaveSite.modal.cancel.CTA": "Hủy",
51
51
  "cairo.tags.manageTags.modal.deleteModal.delete.CTA": "Xóa",
52
52
  "cairo.updatedView.collectionPage.toast.cta": "Làm mới chế độ xem",
53
- "cairo.customFields.addCustomField.modal.PII-setting.toggle.createNote": "PII settings can’t be changed later.",
53
+ "cairo.customFields.addCustomField.modal.PII-setting.toggle.createNote": "Không thể thay thiết lập PII sau này.",
54
54
  "cairo.customFields.fieldType.dropdownList.placeholder": "VD: Ý",
55
55
  "cairo.tags.manageTags.modal.deleteModal.cancel.CTA": "Hủy",
56
56
  "cairo.dragAndDrop.discardChanges.CTA": "Bỏ",
@@ -69,7 +69,7 @@
69
69
  "cairo.filtersPanel.time.title": "Thời gian",
70
70
  "cairo.tags.manageTags.modal.list.input.validation.exists": "Thẻ này đã tồn tại.",
71
71
  "cairo.filtersPanel.date.next7Days": "7 ngày tới",
72
- "cairo.collectionPage.nestedLimit.tooltip": "{subCatsAmount, plural, =1 {There is a max of 1 sub-level.} other {There is a max of # sub-levels.}}",
72
+ "cairo.collectionPage.nestedLimit.tooltip": "{subCatsAmount, plural, other {Bạn không thể thêm nhiều hơn {subCatsAmount,number} cấp độ phụ.}}",
73
73
  "cairo.sortableColumns.notification.undo": "Hoàn tác",
74
74
  "cairo.filtersPanel.saveView.button": "Lưu dạng xem",
75
75
  "cairo.dragAndDrop.leaveSite.modal.title": "Bạn có chắc muốn thoát?",
@@ -142,7 +142,7 @@
142
142
  "cairo.customFields.fieldType.longText": "Văn bản dài",
143
143
  "cairo.export.tryAgain": "Thử lại",
144
144
  "cairo.sortableColumns.modal.title": "Sắp xếp danh sách theo {columnTitle}?",
145
- "cairo.customFields.addCustomField.modal.PII-setting.toggle.name": "Personal information (PII)",
145
+ "cairo.customFields.addCustomField.modal.PII-setting.toggle.name": "Thông tin cá nhân (PII)",
146
146
  "cairo.dragAndDrop.leaveSite.modal.description": "Các thay đổi bạn đã thực hiện đối với thứ tự các mặt hàng có thể không được lưu.",
147
147
  "cairo.table.deleteViewModal.deleteBody": "Sau khi bạn xóa \"{viewName}\", sẽ không thể khôi phục.",
148
148
  "cairo.export.allItems": "Tất cả",
@@ -209,7 +209,7 @@
209
209
  "cairo.customFields.addCustomField.modal.sameKey.error": "Khóa này đã tồn tại. Hãy thử khóa khác.",
210
210
  "cairo.entityPage.saveError-technical.toast.description": "Không lưu được thay đổi do chúng tôi gặp sự cố kỹ thuật. ",
211
211
  "cairo.customFields.addCustomField.modal.advancedSettings.key.title": "Khóa",
212
- "cairo.customFields.addCustomField.modal.PII-setting.toggle.editNote": "PII can’t be changed after creation. To change it, create a new field.",
212
+ "cairo.customFields.addCustomField.modal.PII-setting.toggle.editNote": "Không thể thay đổi PII sau khi tạo. Để thay đổi, hãy tạo một trường mới.",
213
213
  "section.header.items": "Mặt hàng",
214
214
  "cairo.customFields.fieldType.numberInteger": "Số (số nguyên)",
215
215
  "cairo.folders.showAll.button": "Hiện tất cả",
@@ -235,7 +235,7 @@
235
235
  "cairo.table.custom-columns.disabled.tooltip": "Không thể ẩn hoặc di chuyển cột này.",
236
236
  "cairo.page.loadError.failedState.title": "Không thể tải trang này",
237
237
  "cairo.bulkSelected.selectUpTo": "Chọn tối đa {max} mục.",
238
- "cairo.customFields.addCustomField.modal.PII-setting.toggle.info": "Protect personally identifiable information (PII) like addresses and passport info with an additional layer of protection. <link><u>Why is this important?</u></link>",
238
+ "cairo.customFields.addCustomField.modal.PII-setting.toggle.info": "Bảo vệ thông tin nhận dạng cá nhân (PII) như địa chỉ thông tin hộ chiếu bằng một lớp bảo vệ bổ sung. <link><u>Tại sao điều này lại quan trọng?</u></link>",
239
239
  "cairo.manageView.saveChanges.CTA": "Lưu thay đổi",
240
240
  "cairo.customFields.archive.CTA": "Lưu trữ",
241
241
  "cairo.tags.tagsWidget.noPermissions.tooltip": "You need “Permission Type” permission to\nmanage tags. Contact \"Owner\" for access.",
@@ -316,6 +316,7 @@
316
316
  "cairo.appliedFilters.discardChanges.CTA": "Bỏ thay đổi",
317
317
  "airo.tags.collectionPage.popover.emptyState.body": "Thẻ giúp bạn lọc và sắp xếp ngăn nắp các mục.",
318
318
  "cairo.saveViewModal.error.message.unexpected": "Chúng tôi hiện không thể lưu chế độ xem này, vui lòng thử lại sau vài phút.",
319
+ "cairo.collectionPage.appInstall-inContext.moreActions.relatedApps.CTA": "Explore related apps",
319
320
  "cairo.customFields.entityPage.emptyState.title": "Chưa điền trường nào",
320
321
  "cairo.export.exportToCSVMessage": "Các mục của bạn và tất cả dữ liệu của chúng sẽ được tải về dưới dạng tệp CSV.",
321
322
  "cairo.manageView.unsaved.tooltip": "Để lưu thay đổi, hãy đến \"Quản lý dạng xem\".",
@@ -316,6 +316,7 @@
316
316
  "cairo.appliedFilters.discardChanges.CTA": "捨棄變更",
317
317
  "airo.tags.collectionPage.popover.emptyState.body": "標籤可幫助您篩選和組織項目。",
318
318
  "cairo.saveViewModal.error.message.unexpected": "我們目前無法儲存此檢視,請過幾分鐘後再試一次。",
319
+ "cairo.collectionPage.appInstall-inContext.moreActions.relatedApps.CTA": "Explore related apps",
319
320
  "cairo.customFields.entityPage.emptyState.title": "未填寫任何欄位",
320
321
  "cairo.export.exportToCSVMessage": "項目及其所有資料將下載為 CSV 檔案。",
321
322
  "cairo.manageView.unsaved.tooltip": "如要儲存變更,請前往「管理檢視」。",
@@ -172,14 +172,14 @@ class QueryResultState {
172
172
  changeItems(newItems) {
173
173
  const {
174
174
  itemKey,
175
- _keyedItemsMap,
176
175
  _pages,
177
- _pagesAtom
176
+ _pagesAtom,
177
+ keyedItems
178
178
  } = this;
179
179
  const updates = [];
180
180
  for (const newItem of newItems) {
181
181
  const key = itemKey(newItem);
182
- const keyedItem = _keyedItemsMap.get(key);
182
+ const keyedItem = keyedItems.find(item => item.key === key);
183
183
  if (keyedItem != null) {
184
184
  const {
185
185
  pageIndex,
@@ -1 +1 @@
1
- {"version":3,"names":["_model","require","_mobx","_flatMap","_interopRequireDefault","QueryResultState","pages","_pagesAtom","reportObserved","_pages","processed","constructor","params","_defineProperty2","default","createAtom","unprocessed","Map","queryStatus","idle","error","isFetching","action","reportChanged","itemKey","originQuery","makeObservable","items","computed","keepAlive","keyedItems","size","itemsKeys","fetchedAll","isEmptyAndNotFetching","asComputed","total","hasAvailableItems","_totals","observable","ref","_supportTotal","setTotals","available","status","changeItems","slice","errorStatus","isError","currentIndex","flatMap","page","pageIndex","map","item","indexWithinPage","key","id","index","isSuccess","length","isEmpty","supportTotal","isLoading","get","_keyedItemsMap","has","createRollbackFn","updates","newItem","prevItem","keyedItem","newItems","processedPage","forEach","itemIndex","findIndex","push","rollback","undefined","addItems","calcKeyedItemsMap","clear","set","setNewPages","addPages","morePages","totals","setSupportTotal","setPages","start","end","hasNonPersistentActiveFilters","exports"],"sources":["../../../src/state/QueryResultState.ts"],"sourcesContent":["import {\n ComputedQueryFull,\n DataResultKeyed,\n FiltersMap,\n KeyedItem,\n QueryResult,\n QueryResultStatus,\n queryStatus,\n} from '../model';\nimport { action, computed, createAtom, makeObservable, observable } from 'mobx';\nimport flatMap from 'lodash/flatMap';\n\ninterface ProcessedResult<T> {\n processed: T;\n unprocessed: T;\n}\n\ntype Pages<T> = ProcessedResult<T[][]>;\ntype Totals = ProcessedResult<number>;\n\nexport interface QueryResultStateParams<T, F extends FiltersMap> {\n itemKey: (item: T) => string;\n originQuery: ComputedQueryFull<F>;\n}\n\nexport class QueryResultState<T, F extends FiltersMap>\n implements QueryResult<T>\n{\n readonly itemKey: (item: T) => string;\n\n readonly _pagesAtom = createAtom('QueryResultState.pages');\n _pages: Pages<T> = { processed: [], unprocessed: [] };\n _totals: Totals = { processed: 0, unprocessed: 0 };\n _supportTotal: boolean = false;\n readonly _keyedItemsMap: Map<string, KeyedItem<T>> = new Map();\n\n get pages() {\n this._pagesAtom.reportObserved();\n return this._pages.processed;\n }\n\n available: number | null = null;\n status: QueryResultStatus<DataResultKeyed<T>, unknown> = {\n ...queryStatus.idle,\n error: null,\n isFetching: false,\n };\n originQuery: ComputedQueryFull<F>;\n\n constructor(params: QueryResultStateParams<T, F>) {\n this.itemKey = params.itemKey;\n this.originQuery = params.originQuery;\n\n makeObservable(this, {\n items: computed({\n keepAlive: true,\n }),\n keyedItems: computed({\n keepAlive: true,\n }),\n pages: computed,\n size: computed,\n itemsKeys: computed,\n fetchedAll: computed,\n isFetching: computed,\n isEmptyAndNotFetching: computed,\n asComputed: computed,\n total: computed,\n\n hasAvailableItems: computed,\n _totals: observable.ref,\n _supportTotal: observable.ref,\n setTotals: action,\n available: observable.ref,\n status: observable.ref,\n originQuery: observable.ref,\n changeItems: action,\n slice: action,\n });\n }\n\n get errorStatus() {\n const { status } = this;\n return status.isError ? status : null;\n }\n\n private setNewPages = action((pages: Pages<T>) => {\n this._pages = pages;\n this._pagesAtom.reportChanged();\n });\n\n get keyedItems(): KeyedItem<T>[] {\n this._pagesAtom.reportObserved();\n const { pages, itemKey } = this;\n let currentIndex = 0;\n return flatMap(pages, (page, pageIndex) => {\n return page.map((item, indexWithinPage) => {\n const key = itemKey(item);\n return {\n key,\n id: key,\n item,\n index: currentIndex++,\n pageIndex,\n indexWithinPage,\n };\n });\n });\n }\n\n get itemsKeys() {\n return this.keyedItems.map(({ key }) => key);\n }\n\n get isEmptyAndNotFetching() {\n const { status, keyedItems } = this;\n return status.isSuccess && !status.isFetching && !keyedItems.length;\n }\n\n get isEmpty() {\n const { keyedItems } = this;\n return keyedItems.length === 0;\n }\n\n get items(): T[] {\n this._pagesAtom.reportObserved();\n const { pages } = this;\n return flatMap(pages);\n }\n\n get total() {\n return this._totals.processed;\n }\n\n get supportTotal() {\n return this._supportTotal;\n }\n\n get fetchedAll() {\n const { status, items, total } = this;\n return !status.isLoading && total <= items.length;\n }\n\n get isFetching() {\n return this.status.isFetching;\n }\n\n get(key: string) {\n this._pagesAtom.reportObserved();\n return this._keyedItemsMap.get(key);\n }\n\n has(key: string) {\n return this._keyedItemsMap.has(key);\n }\n\n private createRollbackFn(updates: { prevItem: T; newItem: T }[]) {\n return () => {\n const { itemKey, _keyedItemsMap, pages } = this;\n for (const { newItem, prevItem } of updates) {\n const key = itemKey(newItem);\n const keyedItem = _keyedItemsMap.get(key);\n // the current item is still the one that was recently updated\n if (keyedItem != null) {\n const { pageIndex, indexWithinPage } = keyedItem;\n const page = pages[pageIndex];\n if (page[indexWithinPage] === newItem) {\n this.changeItems([prevItem]);\n return true;\n }\n }\n }\n\n return false;\n };\n }\n\n changeItems(newItems: T[]) {\n const { itemKey, _keyedItemsMap, _pages, _pagesAtom } = this;\n const updates: { prevItem: T; newItem: T }[] = [];\n for (const newItem of newItems) {\n const key = itemKey(newItem);\n const keyedItem = _keyedItemsMap.get(key);\n if (keyedItem != null) {\n const { pageIndex, indexWithinPage } = keyedItem;\n const processedPage = _pages.processed[pageIndex];\n // this mutates react-query cache since `page` is the same reference of the cached data\n // this behavior is intentional because the strategy is to assume the server will be update correctly in the next invalidation\n // until then, we simulate locally (cache) what we expect the server state eventually to be\n const prevItem = processedPage[indexWithinPage];\n processedPage[indexWithinPage] = newItem;\n\n _pages.unprocessed.forEach((page) => {\n const itemIndex = page.findIndex((item) => itemKey(item) === key);\n if (itemIndex !== -1) {\n page[itemIndex] = newItem;\n }\n });\n\n updates.push({ prevItem, newItem });\n }\n }\n\n if (updates.length) {\n _pagesAtom.reportChanged();\n\n return {\n rollback: this.createRollbackFn(updates),\n };\n }\n\n return undefined;\n }\n\n addItems(newItems: T[]) {\n const { _pages, _pagesAtom } = this;\n _pages.processed = [newItems, ..._pages.processed];\n _pages.unprocessed = [newItems, ..._pages.unprocessed];\n _pagesAtom.reportChanged();\n\n return {\n rollback: () => {\n _pages.processed = _pages.processed.slice(1);\n _pages.unprocessed = _pages.unprocessed.slice(1);\n _pagesAtom.reportChanged();\n },\n };\n }\n\n private calcKeyedItemsMap() {\n const { keyedItems, _keyedItemsMap } = this;\n _keyedItemsMap.clear();\n for (const keyedItem of keyedItems) {\n _keyedItemsMap.set(keyedItem.key, keyedItem);\n }\n }\n\n clear() {\n this.setNewPages({ processed: [], unprocessed: [] });\n this._keyedItemsMap.clear();\n }\n\n addPages(morePages: Pages<T>) {\n const { _pages } = this;\n this.setNewPages({\n unprocessed: [..._pages.unprocessed, ...morePages.unprocessed],\n processed: [..._pages.processed, ...morePages.processed],\n });\n this.calcKeyedItemsMap();\n }\n\n setTotals(totals: Totals) {\n this._totals = totals;\n }\n\n setSupportTotal(supportTotal: boolean) {\n this._supportTotal = supportTotal;\n }\n\n setPages(pages: Pages<T>) {\n this.setNewPages(pages);\n this.calcKeyedItemsMap();\n }\n\n slice(start?: number, end?: number) {\n const { _pages } = this;\n this.setNewPages({\n unprocessed: _pages.unprocessed.slice(start, end),\n processed: _pages.processed.slice(start, end),\n });\n }\n\n get hasAvailableItems() {\n const {\n originQuery: { hasNonPersistentActiveFilters },\n available,\n total,\n size,\n } = this;\n // if `available` info is missing, must assume that there are available items if non persistent filters are active\n return available != null\n ? available > 0\n : hasNonPersistentActiveFilters || total > 0 || size > 0;\n }\n\n get asComputed() {\n const { total, available } = this;\n return {\n total,\n available: available ?? 0,\n };\n }\n\n get size() {\n return this.items.length;\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_model","require","_mobx","_flatMap","_interopRequireDefault","QueryResultState","pages","_pagesAtom","reportObserved","_pages","processed","constructor","params","_defineProperty2","default","createAtom","unprocessed","Map","queryStatus","idle","error","isFetching","action","reportChanged","itemKey","originQuery","makeObservable","items","computed","keepAlive","keyedItems","size","itemsKeys","fetchedAll","isEmptyAndNotFetching","asComputed","total","hasAvailableItems","_totals","observable","ref","_supportTotal","setTotals","available","status","changeItems","slice","errorStatus","isError","currentIndex","flatMap","page","pageIndex","map","item","indexWithinPage","key","id","index","isSuccess","length","isEmpty","supportTotal","isLoading","get","_keyedItemsMap","has","createRollbackFn","updates","newItem","prevItem","keyedItem","newItems","find","processedPage","forEach","itemIndex","findIndex","push","rollback","undefined","addItems","calcKeyedItemsMap","clear","set","setNewPages","addPages","morePages","totals","setSupportTotal","setPages","start","end","hasNonPersistentActiveFilters","exports"],"sources":["../../../src/state/QueryResultState.ts"],"sourcesContent":["import {\n ComputedQueryFull,\n DataResultKeyed,\n FiltersMap,\n KeyedItem,\n QueryResult,\n QueryResultStatus,\n queryStatus,\n} from '../model';\nimport { action, computed, createAtom, makeObservable, observable } from 'mobx';\nimport flatMap from 'lodash/flatMap';\n\ninterface ProcessedResult<T> {\n processed: T;\n unprocessed: T;\n}\n\ntype Pages<T> = ProcessedResult<T[][]>;\ntype Totals = ProcessedResult<number>;\n\nexport interface QueryResultStateParams<T, F extends FiltersMap> {\n itemKey: (item: T) => string;\n originQuery: ComputedQueryFull<F>;\n}\n\nexport class QueryResultState<T, F extends FiltersMap>\n implements QueryResult<T>\n{\n readonly itemKey: (item: T) => string;\n\n readonly _pagesAtom = createAtom('QueryResultState.pages');\n _pages: Pages<T> = { processed: [], unprocessed: [] };\n _totals: Totals = { processed: 0, unprocessed: 0 };\n _supportTotal: boolean = false;\n readonly _keyedItemsMap: Map<string, KeyedItem<T>> = new Map();\n\n get pages() {\n this._pagesAtom.reportObserved();\n return this._pages.processed;\n }\n\n available: number | null = null;\n status: QueryResultStatus<DataResultKeyed<T>, unknown> = {\n ...queryStatus.idle,\n error: null,\n isFetching: false,\n };\n originQuery: ComputedQueryFull<F>;\n\n constructor(params: QueryResultStateParams<T, F>) {\n this.itemKey = params.itemKey;\n this.originQuery = params.originQuery;\n\n makeObservable(this, {\n items: computed({\n keepAlive: true,\n }),\n keyedItems: computed({\n keepAlive: true,\n }),\n pages: computed,\n size: computed,\n itemsKeys: computed,\n fetchedAll: computed,\n isFetching: computed,\n isEmptyAndNotFetching: computed,\n asComputed: computed,\n total: computed,\n\n hasAvailableItems: computed,\n _totals: observable.ref,\n _supportTotal: observable.ref,\n setTotals: action,\n available: observable.ref,\n status: observable.ref,\n originQuery: observable.ref,\n changeItems: action,\n slice: action,\n });\n }\n\n get errorStatus() {\n const { status } = this;\n return status.isError ? status : null;\n }\n\n private setNewPages = action((pages: Pages<T>) => {\n this._pages = pages;\n this._pagesAtom.reportChanged();\n });\n\n get keyedItems(): KeyedItem<T>[] {\n this._pagesAtom.reportObserved();\n const { pages, itemKey } = this;\n let currentIndex = 0;\n return flatMap(pages, (page, pageIndex) => {\n return page.map((item, indexWithinPage) => {\n const key = itemKey(item);\n return {\n key,\n id: key,\n item,\n index: currentIndex++,\n pageIndex,\n indexWithinPage,\n };\n });\n });\n }\n\n get itemsKeys() {\n return this.keyedItems.map(({ key }) => key);\n }\n\n get isEmptyAndNotFetching() {\n const { status, keyedItems } = this;\n return status.isSuccess && !status.isFetching && !keyedItems.length;\n }\n\n get isEmpty() {\n const { keyedItems } = this;\n return keyedItems.length === 0;\n }\n\n get items(): T[] {\n this._pagesAtom.reportObserved();\n const { pages } = this;\n return flatMap(pages);\n }\n\n get total() {\n return this._totals.processed;\n }\n\n get supportTotal() {\n return this._supportTotal;\n }\n\n get fetchedAll() {\n const { status, items, total } = this;\n return !status.isLoading && total <= items.length;\n }\n\n get isFetching() {\n return this.status.isFetching;\n }\n\n get(key: string) {\n this._pagesAtom.reportObserved();\n return this._keyedItemsMap.get(key);\n }\n\n has(key: string) {\n return this._keyedItemsMap.has(key);\n }\n\n private createRollbackFn(updates: { prevItem: T; newItem: T }[]) {\n return () => {\n const { itemKey, _keyedItemsMap, pages } = this;\n for (const { newItem, prevItem } of updates) {\n const key = itemKey(newItem);\n const keyedItem = _keyedItemsMap.get(key);\n // the current item is still the one that was recently updated\n if (keyedItem != null) {\n const { pageIndex, indexWithinPage } = keyedItem;\n const page = pages[pageIndex];\n if (page[indexWithinPage] === newItem) {\n this.changeItems([prevItem]);\n return true;\n }\n }\n }\n\n return false;\n };\n }\n\n changeItems(newItems: T[]) {\n const { itemKey, _pages, _pagesAtom, keyedItems } = this;\n const updates: { prevItem: T; newItem: T }[] = [];\n for (const newItem of newItems) {\n const key = itemKey(newItem);\n const keyedItem = keyedItems.find((item) => item.key === key);\n if (keyedItem != null) {\n const { pageIndex, indexWithinPage } = keyedItem;\n const processedPage = _pages.processed[pageIndex];\n // this mutates react-query cache since `page` is the same reference of the cached data\n // this behavior is intentional because the strategy is to assume the server will be update correctly in the next invalidation\n // until then, we simulate locally (cache) what we expect the server state eventually to be\n const prevItem = processedPage[indexWithinPage];\n processedPage[indexWithinPage] = newItem;\n\n _pages.unprocessed.forEach((page) => {\n const itemIndex = page.findIndex((item) => itemKey(item) === key);\n if (itemIndex !== -1) {\n page[itemIndex] = newItem;\n }\n });\n\n updates.push({ prevItem, newItem });\n }\n }\n\n if (updates.length) {\n _pagesAtom.reportChanged();\n\n return {\n rollback: this.createRollbackFn(updates),\n };\n }\n\n return undefined;\n }\n\n addItems(newItems: T[]) {\n const { _pages, _pagesAtom } = this;\n _pages.processed = [newItems, ..._pages.processed];\n _pages.unprocessed = [newItems, ..._pages.unprocessed];\n _pagesAtom.reportChanged();\n\n return {\n rollback: () => {\n _pages.processed = _pages.processed.slice(1);\n _pages.unprocessed = _pages.unprocessed.slice(1);\n _pagesAtom.reportChanged();\n },\n };\n }\n\n private calcKeyedItemsMap() {\n const { keyedItems, _keyedItemsMap } = this;\n _keyedItemsMap.clear();\n for (const keyedItem of keyedItems) {\n _keyedItemsMap.set(keyedItem.key, keyedItem);\n }\n }\n\n clear() {\n this.setNewPages({ processed: [], unprocessed: [] });\n this._keyedItemsMap.clear();\n }\n\n addPages(morePages: Pages<T>) {\n const { _pages } = this;\n this.setNewPages({\n unprocessed: [..._pages.unprocessed, ...morePages.unprocessed],\n processed: [..._pages.processed, ...morePages.processed],\n });\n this.calcKeyedItemsMap();\n }\n\n setTotals(totals: Totals) {\n this._totals = totals;\n }\n\n setSupportTotal(supportTotal: boolean) {\n this._supportTotal = supportTotal;\n }\n\n setPages(pages: Pages<T>) {\n this.setNewPages(pages);\n this.calcKeyedItemsMap();\n }\n\n slice(start?: number, end?: number) {\n const { _pages } = this;\n this.setNewPages({\n unprocessed: _pages.unprocessed.slice(start, end),\n processed: _pages.processed.slice(start, end),\n });\n }\n\n get hasAvailableItems() {\n const {\n originQuery: { hasNonPersistentActiveFilters },\n available,\n total,\n size,\n } = this;\n // if `available` info is missing, must assume that there are available items if non persistent filters are active\n return available != null\n ? available > 0\n : hasNonPersistentActiveFilters || total > 0 || size > 0;\n }\n\n get asComputed() {\n const { total, available } = this;\n return {\n total,\n available: available ?? 0,\n };\n }\n\n get size() {\n return this.items.length;\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -316,6 +316,7 @@
316
316
  "cairo.appliedFilters.discardChanges.CTA": "Změny neukládat",
317
317
  "airo.tags.collectionPage.popover.emptyState.body": "Tagy vám pomáhají filtrovat a organizovat položky.",
318
318
  "cairo.saveViewModal.error.message.unexpected": "Toto zobrazení jsme v tuto chvíli nemohli uložit. Zkuste to za pár minut znovu.",
319
+ "cairo.collectionPage.appInstall-inContext.moreActions.relatedApps.CTA": "Explore related apps",
319
320
  "cairo.customFields.entityPage.emptyState.title": "Nebyla vyplněna žádná pole",
320
321
  "cairo.export.exportToCSVMessage": "Vaše položky a všechna jejich data budou staženy ve formátu CSV souboru.",
321
322
  "cairo.manageView.unsaved.tooltip": "Pro uložení změn přejděte do „Správa zobrazení“.",
@@ -316,6 +316,7 @@
316
316
  "cairo.appliedFilters.discardChanges.CTA": "Fortryd ændringer",
317
317
  "airo.tags.collectionPage.popover.emptyState.body": "Tags hjælper dig med at filtrere og organisere dine elementer.",
318
318
  "cairo.saveViewModal.error.message.unexpected": "Denne visning kunne ikke gemmes i øjeblikket. Forsøg igen om et par minutter.",
319
+ "cairo.collectionPage.appInstall-inContext.moreActions.relatedApps.CTA": "Explore related apps",
319
320
  "cairo.customFields.entityPage.emptyState.title": "Ingen felter blev udfyldt",
320
321
  "cairo.export.exportToCSVMessage": "Dine elementer og alle deres data downloades som en CSV-fil.",
321
322
  "cairo.manageView.unsaved.tooltip": "Hvis du vil gemme dine ændringer, skal du gå til \"Administrer visning\".",
@@ -316,6 +316,7 @@
316
316
  "cairo.appliedFilters.discardChanges.CTA": "Änderungen verwerfen",
317
317
  "airo.tags.collectionPage.popover.emptyState.body": "Tags helfen dir beim Filtern und Ordnen deiner Elemente.",
318
318
  "cairo.saveViewModal.error.message.unexpected": "Wir können diese Ansicht derzeit nicht speichern. Bitte versuche es in ein paar Minuten erneut.",
319
+ "cairo.collectionPage.appInstall-inContext.moreActions.relatedApps.CTA": "Explore related apps",
319
320
  "cairo.customFields.entityPage.emptyState.title": "Es wurden keine Felder ausgefüllt",
320
321
  "cairo.export.exportToCSVMessage": "Deine Elemente und die zugehörigen Daten werden als CSV-Datei heruntergeladen.",
321
322
  "cairo.manageView.unsaved.tooltip": "Um deine Änderungen zu speichern, öffne den Bereich „Ansicht verwalten“.",
@@ -50,7 +50,7 @@
50
50
  "cairo.dragAndDrop.leaveSite.modal.cancel.CTA": "Cancelar",
51
51
  "cairo.tags.manageTags.modal.deleteModal.delete.CTA": "Eliminar",
52
52
  "cairo.updatedView.collectionPage.toast.cta": "Actualizar vista",
53
- "cairo.customFields.addCustomField.modal.PII-setting.toggle.createNote": "PII settings can’t be changed later.",
53
+ "cairo.customFields.addCustomField.modal.PII-setting.toggle.createNote": "Los ajustes de PII no se pueden cambiar más adelante.",
54
54
  "cairo.customFields.fieldType.dropdownList.placeholder": "P. ej., Italia",
55
55
  "cairo.tags.manageTags.modal.deleteModal.cancel.CTA": "Cancelar",
56
56
  "cairo.dragAndDrop.discardChanges.CTA": "Descartar",
@@ -69,7 +69,7 @@
69
69
  "cairo.filtersPanel.time.title": "Hora",
70
70
  "cairo.tags.manageTags.modal.list.input.validation.exists": "Esta etiqueta ya existe.",
71
71
  "cairo.filtersPanel.date.next7Days": "Dentro de 7 días",
72
- "cairo.collectionPage.nestedLimit.tooltip": "{subCatsAmount, plural, =1 {There is a max of 1 sub-level.} other {There is a max of # sub-levels.}}",
72
+ "cairo.collectionPage.nestedLimit.tooltip": "{subCatsAmount, plural, one {No puedes tener más de 1 subnivel.} other {No puedes tener más de {subCatsAmount,number} subniveles.}}",
73
73
  "cairo.sortableColumns.notification.undo": "Deshacer",
74
74
  "cairo.filtersPanel.saveView.button": "Guardar vista",
75
75
  "cairo.dragAndDrop.leaveSite.modal.title": "¿De verdad quieres salir?",
@@ -142,7 +142,7 @@
142
142
  "cairo.customFields.fieldType.longText": "Texto largo",
143
143
  "cairo.export.tryAgain": "Reintentar",
144
144
  "cairo.sortableColumns.modal.title": "¿Quieres ordenar la lista por {columnTitle}?",
145
- "cairo.customFields.addCustomField.modal.PII-setting.toggle.name": "Personal information (PII)",
145
+ "cairo.customFields.addCustomField.modal.PII-setting.toggle.name": "Información de identificación personal (PII)",
146
146
  "cairo.dragAndDrop.leaveSite.modal.description": "Es posible que los cambios realizados en el orden de tus ítems no se guarden.",
147
147
  "cairo.table.deleteViewModal.deleteBody": "Una vez que elimines \"{viewName}\", no se podrá restaurar.",
148
148
  "cairo.export.allItems": "Todos",
@@ -209,7 +209,7 @@
209
209
  "cairo.customFields.addCustomField.modal.sameKey.error": "Esta clave ya existe. Intenta una diferente.",
210
210
  "cairo.entityPage.saveError-technical.toast.description": "Los cambios no se guardaron debido a un problema técnico de nuestra parte. ",
211
211
  "cairo.customFields.addCustomField.modal.advancedSettings.key.title": "Clave",
212
- "cairo.customFields.addCustomField.modal.PII-setting.toggle.editNote": "PII can’t be changed after creation. To change it, create a new field.",
212
+ "cairo.customFields.addCustomField.modal.PII-setting.toggle.editNote": "La PII no se puede cambiar una vez creada. Para cambiarla, crea un nuevo campo.",
213
213
  "section.header.items": "Ítems",
214
214
  "cairo.customFields.fieldType.numberInteger": "Número (entero)",
215
215
  "cairo.folders.showAll.button": "Mostrar todo",
@@ -235,7 +235,7 @@
235
235
  "cairo.table.custom-columns.disabled.tooltip": "Esta columna no se puede ocultar ni mover.",
236
236
  "cairo.page.loadError.failedState.title": "No se pudo cargar esta página",
237
237
  "cairo.bulkSelected.selectUpTo": "Selecciona hasta {max} ítems.",
238
- "cairo.customFields.addCustomField.modal.PII-setting.toggle.info": "Protect personally identifiable information (PII) like addresses and passport info with an additional layer of protection. <link><u>Why is this important?</u></link>",
238
+ "cairo.customFields.addCustomField.modal.PII-setting.toggle.info": "Protege con un nivel adicional de seguridad la información de identificación personal (PII), como direcciones e información de pasaporte. <link><u>¿Por qué es importante?</u></link>",
239
239
  "cairo.manageView.saveChanges.CTA": "Guardar cambios",
240
240
  "cairo.customFields.archive.CTA": "Archivar",
241
241
  "cairo.tags.tagsWidget.noPermissions.tooltip": "You need “Permission Type” permission to\nmanage tags. Contact \"Owner\" for access.",
@@ -316,6 +316,7 @@
316
316
  "cairo.appliedFilters.discardChanges.CTA": "Descartar cambios",
317
317
  "airo.tags.collectionPage.popover.emptyState.body": "Las etiquetas te ayudan a filtrar y organizar tus ítems.",
318
318
  "cairo.saveViewModal.error.message.unexpected": "No pudimos guardar esta vista en este momento. Vuelve a intentarlo en unos minutos.",
319
+ "cairo.collectionPage.appInstall-inContext.moreActions.relatedApps.CTA": "Explore related apps",
319
320
  "cairo.customFields.entityPage.emptyState.title": "No se rellenó ningún campo",
320
321
  "cairo.export.exportToCSVMessage": "Tus ítems y todos sus datos se descargarán en un archivo CSV.",
321
322
  "cairo.manageView.unsaved.tooltip": "Para guardar tus cambios, ve a Administrar vista.",
@@ -316,6 +316,7 @@
316
316
  "cairo.appliedFilters.discardChanges.CTA": "Ignorer les modifications",
317
317
  "airo.tags.collectionPage.popover.emptyState.body": "Les libellés vous permettent de filtrer et d'organiser vos éléments.",
318
318
  "cairo.saveViewModal.error.message.unexpected": "Nous n'avons pas pu enregistrer cette vue pour le moment. Veuillez réessayer dans quelques minutes.",
319
+ "cairo.collectionPage.appInstall-inContext.moreActions.relatedApps.CTA": "Explore related apps",
319
320
  "cairo.customFields.entityPage.emptyState.title": "Aucun champ n'a été rempli",
320
321
  "cairo.export.exportToCSVMessage": "Vos éléments et toutes leurs données seront téléchargés dans un fichier CSV.",
321
322
  "cairo.manageView.unsaved.tooltip": "Pour enregistrer vos modifications, allez dans « Gérer la vue ».",
@@ -316,6 +316,7 @@
316
316
  "cairo.appliedFilters.discardChanges.CTA": "परिवर्तन निरस्त करें",
317
317
  "airo.tags.collectionPage.popover.emptyState.body": "Tags help you filter and organize your items.",
318
318
  "cairo.saveViewModal.error.message.unexpected": "हम इस समय इस दृश्य को सेव नहीं कर सके, कृपया कुछ मिनटों में फिर से प्रयास करें।",
319
+ "cairo.collectionPage.appInstall-inContext.moreActions.relatedApps.CTA": "Explore related apps",
319
320
  "cairo.customFields.entityPage.emptyState.title": "No fields were filled",
320
321
  "cairo.export.exportToCSVMessage": "आपके आइटम और उनका सारा डेटा CSV फ़ाइल के रूप में डाउनलोड किया जाएगा।",
321
322
  "cairo.manageView.unsaved.tooltip": "अपने परिवर्तनों को सहेजने के लिए, 'दृश्य प्रबंधित करें' पर जाएं।",
@@ -50,7 +50,7 @@
50
50
  "cairo.dragAndDrop.leaveSite.modal.cancel.CTA": "Cancel",
51
51
  "cairo.tags.manageTags.modal.deleteModal.delete.CTA": "Hapus",
52
52
  "cairo.updatedView.collectionPage.toast.cta": "Muat Ulang Tampilan",
53
- "cairo.customFields.addCustomField.modal.PII-setting.toggle.createNote": "PII settings can’t be changed later.",
53
+ "cairo.customFields.addCustomField.modal.PII-setting.toggle.createNote": "Pengaturan PII tidak dapat diubah lagi nanti.",
54
54
  "cairo.customFields.fieldType.dropdownList.placeholder": "mis., Italia",
55
55
  "cairo.tags.manageTags.modal.deleteModal.cancel.CTA": "Batal",
56
56
  "cairo.dragAndDrop.discardChanges.CTA": "Buang",
@@ -69,7 +69,7 @@
69
69
  "cairo.filtersPanel.time.title": "Waktu",
70
70
  "cairo.tags.manageTags.modal.list.input.validation.exists": "Tag ini sudah ada.",
71
71
  "cairo.filtersPanel.date.next7Days": "7 hari ke depan",
72
- "cairo.collectionPage.nestedLimit.tooltip": "{subCatsAmount, plural, =1 {There is a max of 1 sub-level.} other {There is a max of # sub-levels.}}",
72
+ "cairo.collectionPage.nestedLimit.tooltip": "{subCatsAmount, plural, other {Anda tidak dapat memiliki lebih dari {subCatsAmount,number} sublevel.}}",
73
73
  "cairo.sortableColumns.notification.undo": "Urungkan",
74
74
  "cairo.filtersPanel.saveView.button": "Simpan Tampilan",
75
75
  "cairo.dragAndDrop.leaveSite.modal.title": "Anda yakin ingin keluar?",
@@ -142,7 +142,7 @@
142
142
  "cairo.customFields.fieldType.longText": "Teks Panjang",
143
143
  "cairo.export.tryAgain": "Coba Lagi",
144
144
  "cairo.sortableColumns.modal.title": "Urutkan daftar menurut {columnTitle}?",
145
- "cairo.customFields.addCustomField.modal.PII-setting.toggle.name": "Personal information (PII)",
145
+ "cairo.customFields.addCustomField.modal.PII-setting.toggle.name": "Informasi pribadi (PII)",
146
146
  "cairo.dragAndDrop.leaveSite.modal.description": "Perubahan yang Anda buat pada urutan item Anda mungkin tidak tersimpan.",
147
147
  "cairo.table.deleteViewModal.deleteBody": "Setelah Anda menghapus \"{viewName}\", maka tidak akan dapat dipulihkan.",
148
148
  "cairo.export.allItems": "Semua",
@@ -209,7 +209,7 @@
209
209
  "cairo.customFields.addCustomField.modal.sameKey.error": "Kunci ini sudah ada. Coba nama lain.",
210
210
  "cairo.entityPage.saveError-technical.toast.description": "Perubahan tidak disimpan karena masalah teknis di pihak kami. ",
211
211
  "cairo.customFields.addCustomField.modal.advancedSettings.key.title": "Kunci",
212
- "cairo.customFields.addCustomField.modal.PII-setting.toggle.editNote": "PII can’t be changed after creation. To change it, create a new field.",
212
+ "cairo.customFields.addCustomField.modal.PII-setting.toggle.editNote": "PII tidak dapat diubah setelah dibuat. Untuk mengubahnya, buat kolom baru.",
213
213
  "section.header.items": "Item",
214
214
  "cairo.customFields.fieldType.numberInteger": "Angka (bilangan bulat)",
215
215
  "cairo.folders.showAll.button": "Tampilkan Semua",
@@ -235,7 +235,7 @@
235
235
  "cairo.table.custom-columns.disabled.tooltip": "Kolom ini tidak dapat disembunyikan atau dipindahkan.",
236
236
  "cairo.page.loadError.failedState.title": "Tidak dapat memuat halaman ini",
237
237
  "cairo.bulkSelected.selectUpTo": "Pilih hingga {max} item.",
238
- "cairo.customFields.addCustomField.modal.PII-setting.toggle.info": "Protect personally identifiable information (PII) like addresses and passport info with an additional layer of protection. <link><u>Why is this important?</u></link>",
238
+ "cairo.customFields.addCustomField.modal.PII-setting.toggle.info": "Lindungi informasi data pribadi (PII) seperti alamat dan info paspor dengan lapisan perlindungan tambahan. <link><u>Mengapa ini penting?</u></link>",
239
239
  "cairo.manageView.saveChanges.CTA": "Simpan Perubahan",
240
240
  "cairo.customFields.archive.CTA": "Arsipkan",
241
241
  "cairo.tags.tagsWidget.noPermissions.tooltip": "You need “Permission Type” permission to\nmanage tags. Contact \"Owner\" for access.",
@@ -316,6 +316,7 @@
316
316
  "cairo.appliedFilters.discardChanges.CTA": "Buang Perubahan",
317
317
  "airo.tags.collectionPage.popover.emptyState.body": "Tag membantu Anda memfilter dan mengatur item Anda.",
318
318
  "cairo.saveViewModal.error.message.unexpected": "Kami tidak dapat menyimpan tampilan ini saat ini, silakan coba lagi dalam beberapa menit.",
319
+ "cairo.collectionPage.appInstall-inContext.moreActions.relatedApps.CTA": "Explore related apps",
319
320
  "cairo.customFields.entityPage.emptyState.title": "Tidak ada kolom yang terisi",
320
321
  "cairo.export.exportToCSVMessage": "Item Anda dan semua datanya akan diunduh sebagai file CSV.",
321
322
  "cairo.manageView.unsaved.tooltip": "Untuk menyimpan perubahan, buka 'Kelola Tampilan'.",
@@ -50,7 +50,7 @@
50
50
  "cairo.dragAndDrop.leaveSite.modal.cancel.CTA": "Annulla",
51
51
  "cairo.tags.manageTags.modal.deleteModal.delete.CTA": "Elimina",
52
52
  "cairo.updatedView.collectionPage.toast.cta": "Aggiorna",
53
- "cairo.customFields.addCustomField.modal.PII-setting.toggle.createNote": "PII settings can’t be changed later.",
53
+ "cairo.customFields.addCustomField.modal.PII-setting.toggle.createNote": "Le impostazioni PII non possono essere modificate in un secondo momento.",
54
54
  "cairo.customFields.fieldType.dropdownList.placeholder": "es.: Italia",
55
55
  "cairo.tags.manageTags.modal.deleteModal.cancel.CTA": "Annulla",
56
56
  "cairo.dragAndDrop.discardChanges.CTA": "Annulla",
@@ -69,7 +69,7 @@
69
69
  "cairo.filtersPanel.time.title": "Ora",
70
70
  "cairo.tags.manageTags.modal.list.input.validation.exists": "Questo tag esiste già.",
71
71
  "cairo.filtersPanel.date.next7Days": "I prossimi 7 giorni",
72
- "cairo.collectionPage.nestedLimit.tooltip": "{subCatsAmount, plural, =1 {There is a max of 1 sub-level.} other {There is a max of # sub-levels.}}",
72
+ "cairo.collectionPage.nestedLimit.tooltip": "{subCatsAmount, plural, one {Non puoi avere più di 1 sottolivello.} other {Non puoi avere più di {subCatsAmount,number} sottolivelli.}}",
73
73
  "cairo.sortableColumns.notification.undo": "Annulla",
74
74
  "cairo.filtersPanel.saveView.button": "Salva vista",
75
75
  "cairo.dragAndDrop.leaveSite.modal.title": "Vuoi uscire?",
@@ -142,7 +142,7 @@
142
142
  "cairo.customFields.fieldType.longText": "Testo lungo",
143
143
  "cairo.export.tryAgain": "Riprova",
144
144
  "cairo.sortableColumns.modal.title": "Ordina elenco per {columnTitle}?",
145
- "cairo.customFields.addCustomField.modal.PII-setting.toggle.name": "Personal information (PII)",
145
+ "cairo.customFields.addCustomField.modal.PII-setting.toggle.name": "Informazioni personali (PII)",
146
146
  "cairo.dragAndDrop.leaveSite.modal.description": "Le modifiche che hai apportato all'ordine degli elementi potrebbero non essere state salvate.",
147
147
  "cairo.table.deleteViewModal.deleteBody": "Se elimini \"{viewName}\" non sarà possibile annullare l'operazione.",
148
148
  "cairo.export.allItems": "Tutti",
@@ -209,7 +209,7 @@
209
209
  "cairo.customFields.addCustomField.modal.sameKey.error": "Questa chiave esiste già. Provane un'altra.",
210
210
  "cairo.entityPage.saveError-technical.toast.description": "Impossibile salvare le modifiche a causa di un problema tecnico interno. ",
211
211
  "cairo.customFields.addCustomField.modal.advancedSettings.key.title": "Chiave",
212
- "cairo.customFields.addCustomField.modal.PII-setting.toggle.editNote": "PII can’t be changed after creation. To change it, create a new field.",
212
+ "cairo.customFields.addCustomField.modal.PII-setting.toggle.editNote": "Le PII non possono essere modificate dopo la creazione. Per modificarle, crea un nuovo campo.",
213
213
  "section.header.items": "Articoli",
214
214
  "cairo.customFields.fieldType.numberInteger": "Numero (intero)",
215
215
  "cairo.folders.showAll.button": "Mostra tutto",
@@ -235,7 +235,7 @@
235
235
  "cairo.table.custom-columns.disabled.tooltip": "Questa colonna non può essere nascosta o spostata.",
236
236
  "cairo.page.loadError.failedState.title": "Impossibile caricare questa pagina",
237
237
  "cairo.bulkSelected.selectUpTo": "Seleziona fino a {max} elementi.",
238
- "cairo.customFields.addCustomField.modal.PII-setting.toggle.info": "Protect personally identifiable information (PII) like addresses and passport info with an additional layer of protection. <link><u>Why is this important?</u></link>",
238
+ "cairo.customFields.addCustomField.modal.PII-setting.toggle.info": "Tieni al sicuro le informazioni di identificazione personale (PII), come gli indirizzi e i dati dei passaporti, con un ulteriore livello di protezione. <link><u>Perché è importante?</u></link>",
239
239
  "cairo.manageView.saveChanges.CTA": "Salva modifiche",
240
240
  "cairo.customFields.archive.CTA": "Archivia",
241
241
  "cairo.tags.tagsWidget.noPermissions.tooltip": "You need “Permission Type” permission to\nmanage tags. Contact \"Owner\" for access.",
@@ -316,6 +316,7 @@
316
316
  "cairo.appliedFilters.discardChanges.CTA": "Annulla modifiche",
317
317
  "airo.tags.collectionPage.popover.emptyState.body": "I tag ti aiutano a filtrare e a organizzare i tuoi elementi.",
318
318
  "cairo.saveViewModal.error.message.unexpected": "Non è stato possibile salvare questa visualizzazione. Riprova più tardi.",
319
+ "cairo.collectionPage.appInstall-inContext.moreActions.relatedApps.CTA": "Explore related apps",
319
320
  "cairo.customFields.entityPage.emptyState.title": "Nessun campo è stato compilato",
320
321
  "cairo.export.exportToCSVMessage": "Gli elementi e tutti i relativi dati saranno scaricati in un file CSV.",
321
322
  "cairo.manageView.unsaved.tooltip": "Per salvare le modifiche, vai su \"Gestisci vista\".",
@@ -316,6 +316,7 @@
316
316
  "cairo.appliedFilters.discardChanges.CTA": "変更内容を破棄する",
317
317
  "airo.tags.collectionPage.popover.emptyState.body": "タグはアイテムのフィルタリングや整理に役立ちます。",
318
318
  "cairo.saveViewModal.error.message.unexpected": "このビューは保存されませんでした。数分後にもう一度お試しください。",
319
+ "cairo.collectionPage.appInstall-inContext.moreActions.relatedApps.CTA": "Explore related apps",
319
320
  "cairo.customFields.entityPage.emptyState.title": "項目が入力されませんでした",
320
321
  "cairo.export.exportToCSVMessage": "アイテムとそのすべてのデータは CSV 形式ファイルとしてダウンロードされます。",
321
322
  "cairo.manageView.unsaved.tooltip": "変更を保存するには、「ビューを管理」に移動してください。",
@@ -50,7 +50,7 @@
50
50
  "cairo.dragAndDrop.leaveSite.modal.cancel.CTA": "취소",
51
51
  "cairo.tags.manageTags.modal.deleteModal.delete.CTA": "삭제",
52
52
  "cairo.updatedView.collectionPage.toast.cta": "화면 새로고침",
53
- "cairo.customFields.addCustomField.modal.PII-setting.toggle.createNote": "PII settings can’t be changed later.",
53
+ "cairo.customFields.addCustomField.modal.PII-setting.toggle.createNote": "개인 식별 정보 설정은 변경할 수 없습니다.",
54
54
  "cairo.customFields.fieldType.dropdownList.placeholder": "예: 이탈리아",
55
55
  "cairo.tags.manageTags.modal.deleteModal.cancel.CTA": "취소",
56
56
  "cairo.dragAndDrop.discardChanges.CTA": "취소",
@@ -69,7 +69,7 @@
69
69
  "cairo.filtersPanel.time.title": "시간",
70
70
  "cairo.tags.manageTags.modal.list.input.validation.exists": "이미 존재하는 태그입니다.",
71
71
  "cairo.filtersPanel.date.next7Days": "7일 후",
72
- "cairo.collectionPage.nestedLimit.tooltip": "{subCatsAmount, plural, =1 {There is a max of 1 sub-level.} other {There is a max of # sub-levels.}}",
72
+ "cairo.collectionPage.nestedLimit.tooltip": "{subCatsAmount, plural, other {하위 레벨은 최대 {subCatsAmount,number}개까지 설정할 있습니다.}}",
73
73
  "cairo.sortableColumns.notification.undo": "실행 취소",
74
74
  "cairo.filtersPanel.saveView.button": "조회 화면 저장",
75
75
  "cairo.dragAndDrop.leaveSite.modal.title": "페이지 종료하기",
@@ -142,7 +142,7 @@
142
142
  "cairo.customFields.fieldType.longText": "장문",
143
143
  "cairo.export.tryAgain": "다시 시도",
144
144
  "cairo.sortableColumns.modal.title": "{columnTitle} 기준으로 목록 정렬하기",
145
- "cairo.customFields.addCustomField.modal.PII-setting.toggle.name": "Personal information (PII)",
145
+ "cairo.customFields.addCustomField.modal.PII-setting.toggle.name": "개인 식별 정보(PII)",
146
146
  "cairo.dragAndDrop.leaveSite.modal.description": "아이템 순서에 적용된 변경 사항이 저장되지 않을 수 있습니다.",
147
147
  "cairo.table.deleteViewModal.deleteBody": "\"{viewName}\" 조회 화면 설정을 삭제하면 복구가 불가능합니다.",
148
148
  "cairo.export.allItems": "전체",
@@ -209,7 +209,7 @@
209
209
  "cairo.customFields.addCustomField.modal.sameKey.error": "이미 존재하는 키입니다. 다른 키를 사용해보세요.",
210
210
  "cairo.entityPage.saveError-technical.toast.description": "Wix에 기술적인 문제가 발생하여 변경 사항이 저장되지 않았습니다. ",
211
211
  "cairo.customFields.addCustomField.modal.advancedSettings.key.title": "키",
212
- "cairo.customFields.addCustomField.modal.PII-setting.toggle.editNote": "PII can’t be changed after creation. To change it, create a new field.",
212
+ "cairo.customFields.addCustomField.modal.PII-setting.toggle.editNote": "개인 식별 정보가 추가되면 변경할 없습니다. 변경하려면 입력란을 추가해야 합니다.",
213
213
  "section.header.items": "아이템",
214
214
  "cairo.customFields.fieldType.numberInteger": "숫자(정수)",
215
215
  "cairo.folders.showAll.button": "전체 표시",
@@ -235,7 +235,7 @@
235
235
  "cairo.table.custom-columns.disabled.tooltip": "비공개 또는 이동이 불가능한 칼럼입니다.",
236
236
  "cairo.page.loadError.failedState.title": "페이지 불러오기 불가",
237
237
  "cairo.bulkSelected.selectUpTo": "최대 {max}개 아이템을 선택할 수 있습니다.",
238
- "cairo.customFields.addCustomField.modal.PII-setting.toggle.info": "Protect personally identifiable information (PII) like addresses and passport info with an additional layer of protection. <link><u>Why is this important?</u></link>",
238
+ "cairo.customFields.addCustomField.modal.PII-setting.toggle.info": "추가적인 보안 절차를 설정하여 주소 여권 정보와 같은 개인 식별 정보(PII)를 보호하세요. <link><u>보안 설정이 중요한 이유 보기</u></link>",
239
239
  "cairo.manageView.saveChanges.CTA": "저장",
240
240
  "cairo.customFields.archive.CTA": "보관",
241
241
  "cairo.tags.tagsWidget.noPermissions.tooltip": "You need “Permission Type” permission to\nmanage tags. Contact \"Owner\" for access.",
@@ -316,6 +316,7 @@
316
316
  "cairo.appliedFilters.discardChanges.CTA": "변경 취소",
317
317
  "airo.tags.collectionPage.popover.emptyState.body": "태그를 사용하면 필터를 적용하고 아이템을 체계적으로 관리할 수 있습니다.",
318
318
  "cairo.saveViewModal.error.message.unexpected": "현재 조회 화면을 저장할 수 없습니다. 잠시 후에 다시 시도해보세요.",
319
+ "cairo.collectionPage.appInstall-inContext.moreActions.relatedApps.CTA": "Explore related apps",
319
320
  "cairo.customFields.entityPage.emptyState.title": "입력란 작성 요청",
320
321
  "cairo.export.exportToCSVMessage": "아이템 및 모든 관련 데이터가 CSV 파일로 다운로드됩니다.",
321
322
  "cairo.manageView.unsaved.tooltip": "변경 사항을 저장하려면 \"뷰 관리\"로 이동하세요.",
@@ -316,6 +316,7 @@
316
316
  "cairo.appliedFilters.discardChanges.CTA": "Wijzigingen negeren",
317
317
  "airo.tags.collectionPage.popover.emptyState.body": "Met tags kun je items filteren en ordenen.",
318
318
  "cairo.saveViewModal.error.message.unexpected": "We kunnen deze weergave momenteel niet opslaan. Probeer het over een paar minuten opnieuw.",
319
+ "cairo.collectionPage.appInstall-inContext.moreActions.relatedApps.CTA": "Explore related apps",
319
320
  "cairo.customFields.entityPage.emptyState.title": "Er zijn geen velden ingevuld",
320
321
  "cairo.export.exportToCSVMessage": "Je items en alle gegevens worden gedownload als een CSV-bestand.",
321
322
  "cairo.manageView.unsaved.tooltip": "Ga naar 'Weergave beheren' om je wijzigingen op te slaan.",