@wix/bex-core 1.410.0 → 1.412.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 (65) hide show
  1. package/dist/cjs/assets/locale/messages_da.json +3 -3
  2. package/dist/cjs/assets/locale/messages_de.json +1 -1
  3. package/dist/cjs/assets/locale/messages_es.json +3 -3
  4. package/dist/cjs/assets/locale/messages_it.json +7 -7
  5. package/dist/cjs/assets/locale/messages_ja.json +8 -8
  6. package/dist/cjs/assets/locale/messages_no.json +3 -3
  7. package/dist/cjs/assets/locale/messages_pt.json +19 -19
  8. package/dist/cjs/assets/locale/messages_zh.json +1 -1
  9. package/dist/cjs/model/filter.js.map +1 -1
  10. package/dist/cjs/state/ArrayFilterState/ArrayFilterState.js +2 -0
  11. package/dist/cjs/state/ArrayFilterState/ArrayFilterState.js.map +1 -1
  12. package/dist/cjs/state/CustomFilterState/CustomFilterState.js +2 -0
  13. package/dist/cjs/state/CustomFilterState/CustomFilterState.js.map +1 -1
  14. package/dist/cjs/state/DataExtensionState.js +6 -2
  15. package/dist/cjs/state/DataExtensionState.js.map +1 -1
  16. package/dist/cjs/state/RangeFilterState/RangeFilterState.js +51 -14
  17. package/dist/cjs/state/RangeFilterState/RangeFilterState.js.map +1 -1
  18. package/dist/cjs/state/RangeFilterState/dateRangeUtils.js +130 -0
  19. package/dist/cjs/state/RangeFilterState/dateRangeUtils.js.map +1 -0
  20. package/dist/cjs/state/RangeFilterState/index.js +6 -0
  21. package/dist/cjs/state/RangeFilterState/index.js.map +1 -1
  22. package/dist/cjs/state/StringFilterState/StringFilterState.js +2 -0
  23. package/dist/cjs/state/StringFilterState/StringFilterState.js.map +1 -1
  24. package/dist/esm/assets/locale/messages_da.json +3 -3
  25. package/dist/esm/assets/locale/messages_de.json +1 -1
  26. package/dist/esm/assets/locale/messages_es.json +3 -3
  27. package/dist/esm/assets/locale/messages_it.json +7 -7
  28. package/dist/esm/assets/locale/messages_ja.json +8 -8
  29. package/dist/esm/assets/locale/messages_no.json +3 -3
  30. package/dist/esm/assets/locale/messages_pt.json +19 -19
  31. package/dist/esm/assets/locale/messages_zh.json +1 -1
  32. package/dist/esm/state/ArrayFilterState/ArrayFilterState.js +1 -0
  33. package/dist/esm/state/ArrayFilterState/ArrayFilterState.js.map +1 -1
  34. package/dist/esm/state/CustomFilterState/CustomFilterState.js +1 -0
  35. package/dist/esm/state/CustomFilterState/CustomFilterState.js.map +1 -1
  36. package/dist/esm/state/DataExtensionState.js +4 -2
  37. package/dist/esm/state/DataExtensionState.js.map +1 -1
  38. package/dist/esm/state/RangeFilterState/RangeFilterState.js +50 -22
  39. package/dist/esm/state/RangeFilterState/RangeFilterState.js.map +1 -1
  40. package/dist/esm/state/RangeFilterState/dateRangeUtils.js +107 -0
  41. package/dist/esm/state/RangeFilterState/dateRangeUtils.js.map +1 -0
  42. package/dist/esm/state/RangeFilterState/index.js +1 -0
  43. package/dist/esm/state/RangeFilterState/index.js.map +1 -1
  44. package/dist/esm/state/StringFilterState/StringFilterState.js +1 -0
  45. package/dist/esm/state/StringFilterState/StringFilterState.js.map +1 -1
  46. package/dist/types/model/filter.d.ts +5 -0
  47. package/dist/types/model/filter.d.ts.map +1 -1
  48. package/dist/types/services/fetchTranslationsPreBundled.d.ts +1 -1
  49. package/dist/types/services/fetchTranslationsPreBundled.d.ts.map +1 -1
  50. package/dist/types/state/ArrayFilterState/ArrayFilterState.d.ts +2 -0
  51. package/dist/types/state/ArrayFilterState/ArrayFilterState.d.ts.map +1 -1
  52. package/dist/types/state/CairoContainer.d.ts +3 -3
  53. package/dist/types/state/CairoContainer.d.ts.map +1 -1
  54. package/dist/types/state/CustomFilterState/CustomFilterState.d.ts +2 -0
  55. package/dist/types/state/CustomFilterState/CustomFilterState.d.ts.map +1 -1
  56. package/dist/types/state/DataExtensionState.d.ts.map +1 -1
  57. package/dist/types/state/RangeFilterState/RangeFilterState.d.ts +16 -1
  58. package/dist/types/state/RangeFilterState/RangeFilterState.d.ts.map +1 -1
  59. package/dist/types/state/RangeFilterState/dateRangeUtils.d.ts +31 -0
  60. package/dist/types/state/RangeFilterState/dateRangeUtils.d.ts.map +1 -0
  61. package/dist/types/state/RangeFilterState/index.d.ts +1 -0
  62. package/dist/types/state/RangeFilterState/index.d.ts.map +1 -1
  63. package/dist/types/state/StringFilterState/StringFilterState.d.ts +2 -0
  64. package/dist/types/state/StringFilterState/StringFilterState.d.ts.map +1 -1
  65. package/package.json +3 -3
@@ -81,7 +81,7 @@
81
81
  "cairo.table.custom-columns.subtitle": "Vælg, hvilke kolonner der skal vises.",
82
82
  "cairo.customFields.addCustomField.modal.advancedSettings.read": "Læse",
83
83
  "cairo.customFields.fieldType.dateAndTime.Name.placeholder": "fx tidsstempel",
84
- "cairo.customFields.addCustomField.modal.PII": "Dette felt kan ikke bruges til at gemme personligt identificerbare oplysninger (PII).",
84
+ "cairo.customFields.addCustomField.modal.PII": "Dette felt kan ikke bruges til at gemme personligt identificerbare oplysninger (PIO).",
85
85
  "cairo.dragAndDrop.reorderMode.toolbar.title.learnMore": "Learn more",
86
86
  "cairo.dragAndDrop.reorderMode.toolbar.title": "Changes in order will be reflected in your live site.",
87
87
  "cairo.customFields.addCustomField.modal.cancel.CTA": "Annuller",
@@ -401,13 +401,13 @@
401
401
  "cairo.table.advanced-sorting.button.cta": "Sortér",
402
402
  "cairo.manageView.Rename.disabled.predefinedView.tooltip": "Dette er en forudindstillet visning. Hvis du vil navngive denne visning, skal den gemmes som en ny visning.",
403
403
  "cairo.customFields.addCustomField.modal.fieldType.placeholder": "Vælg type",
404
- "cairo.customFields.fieldType.checkbox.Name.placeholder": "fx Abonnent",
404
+ "cairo.customFields.fieldType.checkbox.Name.placeholder": "fx abonnent",
405
405
  "cairo.dragAndDrop.live-region.itemDropped.sr": "Droppet på {currentNumber}.",
406
406
  "cairo.tags.manageTags.modal.add.CTA": "Opret tag",
407
407
  "cairo.entityPage.widgetError.TPAconnectionFail.title": "Kunne ikke indlæse dette afsnit",
408
408
  "cairo.error.tryAgain.cta": "Prøv igen",
409
409
  "cairo.tags.filterPanel.dropdown.placeholder": "Vælg tags ...",
410
- "cairo.customFields.fieldType.date.Name.placeholder": "fx Fødselsdato",
410
+ "cairo.customFields.fieldType.date.Name.placeholder": "fx fødselsdato",
411
411
  "cairo.customFields.addCustomField.dropdownList.emptyFieldName.error": "Tilføj en mulighed.",
412
412
  "cairo.customFields.addCustomField.modal.advancedSettings.externalApps": "Installerede apps",
413
413
  "cairo.export.successMessage": "Din fil downloades nu. Virker det ikke?",
@@ -401,7 +401,7 @@
401
401
  "cairo.table.advanced-sorting.button.cta": "Sortieren",
402
402
  "cairo.manageView.Rename.disabled.predefinedView.tooltip": "Dies ist eine voreingestellte Ansicht. Um sie umzubenennen, speichere sie als neue Ansicht.",
403
403
  "cairo.customFields.addCustomField.modal.fieldType.placeholder": "Feldtyp auswählen",
404
- "cairo.customFields.fieldType.checkbox.Name.placeholder": "z. B. Abonnent",
404
+ "cairo.customFields.fieldType.checkbox.Name.placeholder": "z. B. Abonnieren",
405
405
  "cairo.dragAndDrop.live-region.itemDropped.sr": "Abgelegt bei {currentNumber}",
406
406
  "cairo.tags.manageTags.modal.add.CTA": "Tag erstellen",
407
407
  "cairo.entityPage.widgetError.TPAconnectionFail.title": "Abschnitt wurde nicht geladen",
@@ -156,7 +156,7 @@
156
156
  "cairo.tags.tagsWidget.create.CTA": "Crear etiquetas",
157
157
  "cairo.customFields.addCustomField.modal.keyFormat.error": "Debe comenzar con una letra del abecedario y solo puede contener letras, números y guiones bajos.",
158
158
  "cairo.picker.itemsSelected": "{total, plural, one {1 ítem seleccionado ({max} máx.)} other {{total,number} ítems seleccionados ({max} máx.)}}",
159
- "cairo.customFields.addCustomField.modal.title": "Agregar un campo personalizado",
159
+ "cairo.customFields.addCustomField.modal.title": "Agrega un campo personalizado",
160
160
  "cairo.dropdownSearch.select.filers.placeholder": "Seleccionar filtros",
161
161
  "cairo.manageView.saveChanges.error.toast": "Debido a un problema técnico, tus cambios no se guardaron.",
162
162
  "cairo.tags.collectionPage.tagsColumn.emptyState.body": "Las etiquetas te ayudan a filtrar y organizar tus ítems.",
@@ -393,7 +393,7 @@
393
393
  "cairo.tags.collectionPage.popover.search.placeholder": "Buscar etiquetas…",
394
394
  "cairo.export.sessionExpiredMessage": "Tu sesión ha expirado. Actualiza la página y vuelve a iniciar sesión.",
395
395
  "cairo.tags.collectionPage.applyChanges.CTA": "Aplicar",
396
- "cairo.customFields.addCustomField.modal.fieldName.placeholder": "Ingresa un nombre",
396
+ "cairo.customFields.addCustomField.modal.fieldName.placeholder": "Ingresar nombre",
397
397
  "cairo.a11y.liveRegion.resultsFound": "{num, plural, =0 {No se encontraron resultados} one {1 resultado encontrado} other {{num,number} resultados encontrados}}",
398
398
  "cairo.table.listView": "Vista de lista",
399
399
  "cairo.passiveEmptyState.subtitle": "Cuando haya ítems, los verás aquí.",
@@ -407,7 +407,7 @@
407
407
  "cairo.entityPage.widgetError.TPAconnectionFail.title": "No se pudo cargar esta sección",
408
408
  "cairo.error.tryAgain.cta": "Reintentar",
409
409
  "cairo.tags.filterPanel.dropdown.placeholder": "Seleccionar etiquetas...",
410
- "cairo.customFields.fieldType.date.Name.placeholder": "P. ej., fecha de nacimiento",
410
+ "cairo.customFields.fieldType.date.Name.placeholder": "P. ej., Fecha de nacimiento",
411
411
  "cairo.customFields.addCustomField.dropdownList.emptyFieldName.error": "Agrega una opción.",
412
412
  "cairo.customFields.addCustomField.modal.advancedSettings.externalApps": "Apps instaladas",
413
413
  "cairo.export.successMessage": "Se está descargando tu archivo. ¿No funciona?",
@@ -79,9 +79,9 @@
79
79
  "cairo.entityPage.widgetError.TPAconnectionFail.CTA": "Ricarica sezione",
80
80
  "cairo.dragAndDrop.error.toast": "A causa di un problema tecnico, le modifiche che hai apportato all'ordine degli elementi non sono state salvate.",
81
81
  "cairo.table.custom-columns.subtitle": "Scegli quali colonne mostrare.",
82
- "cairo.customFields.addCustomField.modal.advancedSettings.read": "Leggono",
82
+ "cairo.customFields.addCustomField.modal.advancedSettings.read": "Lettura",
83
83
  "cairo.customFields.fieldType.dateAndTime.Name.placeholder": "es.: data e ora",
84
- "cairo.customFields.addCustomField.modal.PII": "Questo campo non può va bene memorizzare informazioni personali (PII).",
84
+ "cairo.customFields.addCustomField.modal.PII": "Questo campo non può essere usato per memorizzare informazioni personali (PII).",
85
85
  "cairo.dragAndDrop.reorderMode.toolbar.title.learnMore": "Learn more",
86
86
  "cairo.dragAndDrop.reorderMode.toolbar.title": "Changes in order will be reflected in your live site.",
87
87
  "cairo.customFields.addCustomField.modal.cancel.CTA": "Annulla",
@@ -101,7 +101,7 @@
101
101
  "cairo.manageView.Delete.CTA.error.toast": "Si è verificato un problema tecnico e la visualizzazione non è stata eliminata.",
102
102
  "cairo.dragAndDrop.reorder-cancelled.sr": "Spostamento annullato.",
103
103
  "cairo.appliedFilters.discardChanges.description": "I filtri che hai selezionato non saranno applicati a questa vista.",
104
- "cairo.customFields.addCustomField.modal.advancedSettings.write": "Scrivono",
104
+ "cairo.customFields.addCustomField.modal.advancedSettings.write": "Scrittura",
105
105
  "cairo.pickerModal.back.button": "Indietro",
106
106
  "cairo.manageView.Delete.disabled.predefinedView.tooltip": "Questa visualizzazione non può essere eliminata.",
107
107
  "cairo.tags.manageTags.modal.toast.delete.success": "Tag eliminato.",
@@ -123,7 +123,7 @@
123
123
  "cairo.moreActions": "Altre azioni",
124
124
  "cairo.viewDropdown.allOrders.defaultViews": "Tutti gli ordini",
125
125
  "cairo.viewsDropdown.nothingMatches.text": "Non ci sono visualizzazioni. Prova con una nuova ricerca.",
126
- "cairo.customFields.addCustomField.modal.advancedSettings.readPermissions.tooltip": "Imposta le autorizzazioni per questo campo. I collaboratori del sito hanno le autorizzazioni di lettura e scrittura in default.",
126
+ "cairo.customFields.addCustomField.modal.advancedSettings.readPermissions.tooltip": "Imposta le autorizzazioni per questo campo. I collaboratori del sito hanno le autorizzazioni di lettura e scrittura in modo predefinito.",
127
127
  "cairo.manageView.CTA": "Gestisci vista",
128
128
  "cairo.filtersPanel.header": "Filtra",
129
129
  "cairo.emptyState.filters.nothingFound.clearFilters.CTA": "Rimuovi filtri",
@@ -150,7 +150,7 @@
150
150
  "cairo.manageView.setAsDefault.reset.success.toast": "La vista predefinita è stata ripristinata.",
151
151
  "Cairo.tags.manageTags.modal.toast.undo.CTA": "Annulla",
152
152
  "cairo.customFields.addCustomField.CTA": "Aggiungi campo",
153
- "cairo.customFields.addCustomField.modal.fieldType": "Tipo campo",
153
+ "cairo.customFields.addCustomField.modal.fieldType": "Tipo di campo",
154
154
  "cairo.filtersPanel.done.button": "Fatto",
155
155
  "cairo.emptyState.subtitle.nothingAvailable": "Nessun risultato.",
156
156
  "cairo.tags.tagsWidget.create.CTA": "Crea tag",
@@ -220,7 +220,7 @@
220
220
  "cairo.page.loadError.failedState.title": "Impossibile caricare questa pagina",
221
221
  "cairo.bulkSelected.selectUpTo": "Seleziona fino a {max} elementi.",
222
222
  "cairo.manageView.saveChanges.CTA": "Salva modifiche",
223
- "cairo.customFields.archive.CTA": "Archivio",
223
+ "cairo.customFields.archive.CTA": "Archivia",
224
224
  "cairo.tags.tagsWidget.noPermissions.tooltip": "You need “Permission Type” permission to\nmanage tags. Contact \"Owner\" for access.",
225
225
  "cairo.customFields.addCustomField.modal.advancedSettings.readPermissions": "Autorizzazioni",
226
226
  "cairo.tags.manageTags.modal.deleteModal.body": "<text>Il tag <name>\"{name}</name> \" potrebbe essere in uso. L'eliminazione di questo tag lo rimuoverà anche da tutti gli elementi a cui è assegnato.</text>",
@@ -360,7 +360,7 @@
360
360
  "cairo.offline": "Al momento sei offline.",
361
361
  "cairo.export.leaveSiteTitle": "Vuoi uscire dal sito?",
362
362
  "cairo.customFields.editCustomField.save.CTA": "Salva",
363
- "cairo.customFields.manageFields.title": "Gestisci campi personalizzati",
363
+ "cairo.customFields.manageFields.title": "Gestisci i campi personalizzati",
364
364
  "cairo.technical.error.title": "Impossibile caricare gli articoli",
365
365
  "cairo.customFields.fieldType.shortText.placeholder": "es.: Roma",
366
366
  "cairo.tags.manageTags.modal.emptyState.body": "I tag ti aiutano a filtrare e a organizzare i tuoi elementi.",
@@ -28,7 +28,7 @@
28
28
  "cairo.emptyState.title": "表示するものはありません",
29
29
  "cairo.sortableColumns.modal.cancel": "キャンセル",
30
30
  "cairo.customFields.writePermission.tooltip": "この機能は、サイト所有者と共同管理者のみが使用できます。",
31
- "cairo.customFields.manageFields.subtitle": "カスタムフィールドの追加、編集、アーカイブができます。",
31
+ "cairo.customFields.manageFields.subtitle": "カスタム項目の追加、編集、アーカイブができます。",
32
32
  "cairo.customFields.emptyStatePassive.subtitle": "項目を追加すると、ここに表示されます。",
33
33
  "cairo.manageView.saveChanges.disabled.predefinedView.tooltip": "これはプリセットビューです。変更を保存するには、新規ビューとして保存してください。",
34
34
  "cairo.customFields.fieldType.date": "日付",
@@ -39,7 +39,7 @@
39
39
  "cairo.appliedFilters.applyAndClose.CTA": "フィルターを適用して閉じる",
40
40
  "cairo.table.saveViewModal.nameLabel": "ビューの名前",
41
41
  "cairo.manageView.setAsDefault.error.toast": "技術的な問題が発生したため、「{viewName}」がデフォルトビューとして設定されませんでした。",
42
- "cairo.customFields.editCustomField.modal.title": "カスタムフィールドを編集",
42
+ "cairo.customFields.editCustomField.modal.title": "カスタム項目を編集",
43
43
  "cairo.deleteSuccess": "「{itemName}」は削除されました。",
44
44
  "cairo.export.databaseIssueMessage": "弊社側で一時的な問題が発生したため、エクスポートが保存されませんでした。お手数ですがカスタマーケアにお問合せください。",
45
45
  "cairo.saveView.Success.toast": "「{viewName}」が保存されました。",
@@ -79,13 +79,13 @@
79
79
  "cairo.entityPage.widgetError.TPAconnectionFail.CTA": "セクションを再度読み込む",
80
80
  "cairo.dragAndDrop.error.toast": "技術的な問題が発生したため、アイテムの順番に加えられた変更が保存されませんでした。",
81
81
  "cairo.table.custom-columns.subtitle": "表示する列を選択します。",
82
- "cairo.customFields.addCustomField.modal.advancedSettings.read": "閲覧",
82
+ "cairo.customFields.addCustomField.modal.advancedSettings.read": "読み込み",
83
83
  "cairo.customFields.fieldType.dateAndTime.Name.placeholder": "例:タイムスタンプ",
84
84
  "cairo.customFields.addCustomField.modal.PII": "この項目は、個人を特定できる情報(PII)を保存するために使用することはできません。",
85
85
  "cairo.dragAndDrop.reorderMode.toolbar.title.learnMore": "Learn more",
86
86
  "cairo.dragAndDrop.reorderMode.toolbar.title": "Changes in order will be reflected in your live site.",
87
87
  "cairo.customFields.addCustomField.modal.cancel.CTA": "キャンセル",
88
- "cairo.customFields.addCustomField.modal.advancedSettings.siteVisitors.note": "この項目をサイト上で動的に接続するには、訪問者の権限を「閲覧」に設定します。<learnMore>詳細はこちら</learnMore>",
88
+ "cairo.customFields.addCustomField.modal.advancedSettings.siteVisitors.note": "この項目をサイト上で動的に接続するには、訪問者の権限を「読み込み」に設定します。<learnMore>詳細はこちら</learnMore>",
89
89
  "cairo.deleteModal.title": "本当に削除してもよろしいですか?",
90
90
  "cairo.customFields.booleanValue.true": "はい",
91
91
  "cairo.tags.manageTags.modal.list.action.delete.CTA": "削除",
@@ -101,7 +101,7 @@
101
101
  "cairo.manageView.Delete.CTA.error.toast": "技術的な問題が発生したため、ビューが削除されませんでした。",
102
102
  "cairo.dragAndDrop.reorder-cancelled.sr": "ドラッグがキャンセルされました。",
103
103
  "cairo.appliedFilters.discardChanges.description": "選択されたフィルターは、このビューには適用されません。",
104
- "cairo.customFields.addCustomField.modal.advancedSettings.write": "編集",
104
+ "cairo.customFields.addCustomField.modal.advancedSettings.write": "書き込み",
105
105
  "cairo.pickerModal.back.button": "戻る",
106
106
  "cairo.manageView.Delete.disabled.predefinedView.tooltip": "このビューは削除できません。",
107
107
  "cairo.tags.manageTags.modal.toast.delete.success": "タグが削除されました。",
@@ -170,7 +170,7 @@
170
170
  "cairo.customFields.technical.error.title": "カスタム項目が読み込まれませんでした。",
171
171
  "cairo.table.saveViewModal.body": "このビューは、現在選択されているフィルターやカラムを含みます。 ",
172
172
  "cairo.customFields.emptyStatePassive.title": "項目はまだありません",
173
- "cairo.customFields.entityPage.title": "カスタムフィールド",
173
+ "cairo.customFields.entityPage.title": "カスタム項目",
174
174
  "cairo.dragAndDrop.reorderMode.toolbar.save.cta": "Save Order",
175
175
  "cairo.customFields.archive.modal.title": "カスタム項目をアーカイブしますか?",
176
176
  "cairo.manageView.Rename.Success.toast": "「{oldViewName}」が「{newViewName}」に名称変更されました。",
@@ -327,7 +327,7 @@
327
327
  "cairo.customFields.addCustomField.modal.PII.learnMore": "詳しくはこちら",
328
328
  "cairo.tags.manageTags.modal.list.input.cancel.CTA": "キャンセル",
329
329
  "cairo.customFields.archive.modal.description": "この項目および収集された情報はアーカイブされ、復元することはできません。",
330
- "cairo.customFields.fieldType.numberDecimal": "数字(整数)",
330
+ "cairo.customFields.fieldType.numberDecimal": "数字(10進数)",
331
331
  "cairo.manageView.saveView.error.toast": "技術的な問題が発生したため、ビューが保存されませんでした。",
332
332
  "cairo.entityPage.newPageName.title": "New {Entity Name}",
333
333
  "cairo.table.noFiltersApplied.label": "フィルターなし",
@@ -360,7 +360,7 @@
360
360
  "cairo.offline": "現在オフライン状態です。",
361
361
  "cairo.export.leaveSiteTitle": "サイトを閉じてもよろしいですか?",
362
362
  "cairo.customFields.editCustomField.save.CTA": "保存する",
363
- "cairo.customFields.manageFields.title": "カスタムフィールドを管理",
363
+ "cairo.customFields.manageFields.title": "カスタム項目を管理",
364
364
  "cairo.technical.error.title": "アイテムが読み込まれませんでした",
365
365
  "cairo.customFields.fieldType.shortText.placeholder": "例:京都",
366
366
  "cairo.tags.manageTags.modal.emptyState.body": "タグはアイテムのフィルタリングや整理に役立ちます。",
@@ -39,7 +39,7 @@
39
39
  "cairo.appliedFilters.applyAndClose.CTA": "Bruk filtre og lukk",
40
40
  "cairo.table.saveViewModal.nameLabel": "Navn",
41
41
  "cairo.manageView.setAsDefault.error.toast": "På grunn av et teknisk problem ble ikke «{viewName}» angitt som standardvisning.",
42
- "cairo.customFields.editCustomField.modal.title": "Rediger tilpasset felt",
42
+ "cairo.customFields.editCustomField.modal.title": "Rediger egendefinert felt",
43
43
  "cairo.deleteSuccess": "«{itemName}» ble slettet.",
44
44
  "cairo.export.databaseIssueMessage": "Det oppsto et midlertidig problem hos oss, og eksporten kunne ikke lagres. Kontakt brukerstøtte for å få hjelp.",
45
45
  "cairo.saveView.Success.toast": "«{viewName}« ble lagret.",
@@ -89,7 +89,7 @@
89
89
  "cairo.deleteModal.title": "Sikker på at du vil slette dette?",
90
90
  "cairo.customFields.booleanValue.true": "Ja",
91
91
  "cairo.tags.manageTags.modal.list.action.delete.CTA": "Slett",
92
- "cairo.customFields.addCustomField.modal.advancedSettings.key.tooltip": "Denne nøkkelen brukes i koden din. Det kan ikke endres senere.",
92
+ "cairo.customFields.addCustomField.modal.advancedSettings.key.tooltip": "Denne nøkkelen brukes i koden din. Den kan ikke endres senere.",
93
93
  "cairo.filtersPanel.dateRange.title": "Datointervall",
94
94
  "section.header.folders": "Mapper",
95
95
  "cairo.tags.manageTags.modal.list.input.save.CTA": "Lagre",
@@ -172,7 +172,7 @@
172
172
  "cairo.customFields.emptyStatePassive.title": "No fields yet",
173
173
  "cairo.customFields.entityPage.title": "Egendefinerte felt",
174
174
  "cairo.dragAndDrop.reorderMode.toolbar.save.cta": "Save Order",
175
- "cairo.customFields.archive.modal.title": "Vil du arkivere tilpasset felt?",
175
+ "cairo.customFields.archive.modal.title": "Vil du arkivere det egendefinerte feltet?",
176
176
  "cairo.manageView.Rename.Success.toast": "«{oldViewName}» har skiftet navn til «{newViewName}».",
177
177
  "cairo.table.deleteViewModal.deleteButton": "Slett visning",
178
178
  "cairo.export.offlineMessage": "Eksporten fortsetter så snart internettforbindelsen er gjenopprettet.",
@@ -5,10 +5,10 @@
5
5
  "cairo.table.deleteViewModal.title": "Deseja excluir essa visualização?",
6
6
  "cairo.table.advanced-sorting.ascending.order": "Crescente",
7
7
  "cairo.table.saveViewModal.title": "Salvar visualização",
8
- "cairo.customFields.fieldType.numberDecimal.placeholder": "Por exemplo: 25,50",
8
+ "cairo.customFields.fieldType.numberDecimal.placeholder": "Ex.: 25,50",
9
9
  "cairo.tags.popover.tagCreated.toast.success": "Tag criada.",
10
10
  "cairo.dragAndDrop.list-aria-label.sr": "Para reordenar, pressione a barra de espaço para pegar um item, as teclas de seta para arrastar, a barra de espaço para soltar e “escape” ou “tab” para cancelar.",
11
- "cairo.customFields.addCustomField.modal.add.CTA": "Adicionar campo",
11
+ "cairo.customFields.addCustomField.modal.add.CTA": "Adicionar",
12
12
  "cairo.tags.loadTags.error.CTA": "Recarregar tags",
13
13
  "cairo.appliedFilters.filteredBy.label": "Filtrado por:",
14
14
  "cairo.toast.retry": "Tente novamente",
@@ -35,7 +35,7 @@
35
35
  "cairo.search.Tab.noresults.title": "Nenhum resultado encontrado em \"{tabName}\"",
36
36
  "cairo.tags.collectionPage.tagsColumn.title": "Tags",
37
37
  "cairo.emptyState.filters.nothingFound.description": "Tente ajustar seus filtros para encontrar o que está buscando.",
38
- "cairo.customFields.fieldType.numberInteger.placeholder": "Por exemplo: 30",
38
+ "cairo.customFields.fieldType.numberInteger.placeholder": "Ex.: 30",
39
39
  "cairo.appliedFilters.applyAndClose.CTA": "Aplicar filtros e fechar",
40
40
  "cairo.table.saveViewModal.nameLabel": "Nome",
41
41
  "cairo.manageView.setAsDefault.error.toast": "Ocorreu um problema técnico e a visualização \"{viewName}\" não foi definida como padrão.",
@@ -46,7 +46,7 @@
46
46
  "cairo.customFields.fieldType.dropdownList.addOption.CTA": "Adicionar opção",
47
47
  "cairo.dragAndDrop.leaveSite.modal.cancel.CTA": "Cancelar",
48
48
  "cairo.tags.manageTags.modal.deleteModal.delete.CTA": "Excluir",
49
- "cairo.customFields.fieldType.dropdownList.placeholder": "Por exemplo: Itália",
49
+ "cairo.customFields.fieldType.dropdownList.placeholder": "Ex.: Itália",
50
50
  "cairo.tags.manageTags.modal.deleteModal.cancel.CTA": "Cancelar",
51
51
  "cairo.dragAndDrop.discardChanges.CTA": "Descartar",
52
52
  "cairo.customFields.fieldType.dateAndTime.invalid.value": "Valor inválido",
@@ -55,7 +55,7 @@
55
55
  "cairo.customFields.addCustomField.modal.emptyFieldType.error": "Selecione um tipo de campo.",
56
56
  "cairo.filtersPanel.date.today": "Hoje",
57
57
  "cairo.tags.manageTags.modal.toast.create.error": "Não foi possível criar a tag.",
58
- "cairo.customFields.fieldType.longText.Name.placeholder": "Por exemplo: observações",
58
+ "cairo.customFields.fieldType.longText.Name.placeholder": "Ex.: Observações",
59
59
  "cairo.customFields.fieldType.dropdownList": "Lista dropdown",
60
60
  "cairo.customFields.archive.modal.cancel.CTA": "Cancelar",
61
61
  "cairo.emptyState.additem.text": "Quando adicionar itens, eles aparecerão aqui.",
@@ -80,7 +80,7 @@
80
80
  "cairo.dragAndDrop.error.toast": "Devido a um problema técnico, as alterações feitas na ordem do seus itens não foram salvas.",
81
81
  "cairo.table.custom-columns.subtitle": "Escolha quais colunas exibir.",
82
82
  "cairo.customFields.addCustomField.modal.advancedSettings.read": "Leitura",
83
- "cairo.customFields.fieldType.dateAndTime.Name.placeholder": "Por exemplo: horário",
83
+ "cairo.customFields.fieldType.dateAndTime.Name.placeholder": "Ex.: Horário",
84
84
  "cairo.customFields.addCustomField.modal.PII": "Este campo não pode ser usado para armazenar informações de identificação pessoal (PII).",
85
85
  "cairo.dragAndDrop.reorderMode.toolbar.title.learnMore": "Learn more",
86
86
  "cairo.dragAndDrop.reorderMode.toolbar.title": "Changes in order will be reflected in your live site.",
@@ -96,7 +96,7 @@
96
96
  "cairo.table.saveViewModal.placeholder": "Por exemplo: Favoritos",
97
97
  "cairo.filtersPanel.date.7days": "Últimos 7 dias",
98
98
  "cairo.customFields.fieldType.longText.placeholder": "Insira o texto aqui",
99
- "cairo.customFields.addCustomField.modal.fieldName": "Nome",
99
+ "cairo.customFields.addCustomField.modal.fieldName": "Nome de campo",
100
100
  "cairo.tags.loadTags.error.title": "Não foi possível carregar suas tags",
101
101
  "cairo.manageView.Delete.CTA.error.toast": "Devido a um problema técnico, sua visualização não foi excluída.",
102
102
  "cairo.dragAndDrop.reorder-cancelled.sr": "Ação \"arrastar\" cancelada.",
@@ -130,7 +130,7 @@
130
130
  "cairo.toolbar.moreFiltersButton": "Filtrar",
131
131
  "cairo.export.exportFailedMessage": "Ocorreu um erro ao tentar exportar seus itens.",
132
132
  "cairo.customFields.fieldType.date.inputTitle": "Data",
133
- "cairo.customFields.fieldType.longText": "Text longo",
133
+ "cairo.customFields.fieldType.longText": "Texto longo",
134
134
  "cairo.export.tryAgain": "Tentar novamente",
135
135
  "cairo.sortableColumns.modal.title": "Ordenar lista por {columnTitle}?",
136
136
  "cairo.dragAndDrop.leaveSite.modal.description": "As alterações feitas na ordem do seus itens podem não ter sido salvas.",
@@ -140,7 +140,7 @@
140
140
  "cairo.search.noresults.title": "Nenhum resultado encontrado",
141
141
  "cairo.tags.applyChanges.toast.success": "Tags atualizadas.",
142
142
  "cairo.bulkSelected": "{num, plural, one {1 selecionado} other {{num,number} selecionados}}",
143
- "cairo.customFields.fieldType.numberInteger.Name.placeholder": "Por exemplo: idade",
143
+ "cairo.customFields.fieldType.numberInteger.Name.placeholder": "Ex.: Idade",
144
144
  "cairo.export.serverErrorMessage": "Devido a um erro temporário do servidor, sua exportação não pode ser concluída. Entre em contato com o Apoio ao Cliente para obter ajuda.",
145
145
  "cairo.toast.undone": "Ação desfeita.",
146
146
  "cairo.picker.createNew.button.tooltip": "Você selecionou a quantidade máxima de itens. É necessário desmarcar um item para criar um novo.",
@@ -162,7 +162,7 @@
162
162
  "cairo.tags.collectionPage.tagsColumn.emptyState.body": "As tags ajudam você a filtrar e organizar seus itens.",
163
163
  "cairo.emptyState.title.nothingAvailable": "Nenhum resultado encontrado",
164
164
  "cairo.toast.undo": "Desfazer",
165
- "cairo.customFields.fieldType.numberDecimal.Name.placeholder": "Por exemplo: preço",
165
+ "cairo.customFields.fieldType.numberDecimal.Name.placeholder": "Ex.: Preço",
166
166
  "cairo.tags.popover.bulkItemLimit.tooltip": "As tags só podem ser atribuídas a 100 itens por vez.",
167
167
  "cairo.tags.filterPanel.dropdown.title": "Tags",
168
168
  "cairo.manageView.Rename.error.toast": "Devido a um problema técnico, sua visualização não foi renomeada.",
@@ -177,7 +177,7 @@
177
177
  "cairo.table.deleteViewModal.deleteButton": "Excluir",
178
178
  "cairo.export.offlineMessage": "A exportação continuará assim que a conexão com a Internet for restaurada.",
179
179
  "cairo.confirm.button": "Confirmar",
180
- "cairo.customFields.addCustomField.modal.advancedSettings.key.placeholder": "Chave do campo",
180
+ "cairo.customFields.addCustomField.modal.advancedSettings.key.placeholder": "Chave de campo",
181
181
  "cairo.manageView.Rename.modal.cancel.CTA": "Cancelar",
182
182
  "cairo.filtersPanel.default.All": "Todos",
183
183
  "cairo.tags.manageTags.modal.list.input.validation.noName": "Insira um nome.",
@@ -194,7 +194,7 @@
194
194
  "cairo.dragAndDrop.reorderMode.toast.success": "Order has been updated",
195
195
  "cairo.customFields.addCustomField.modal.sameKey.error": "Esta chave já existe. Tente uma diferente.",
196
196
  "cairo.entityPage.saveError-technical.toast.description": "As alterações não foram salvas devido a um problema técnico no nosso sistema. ",
197
- "cairo.customFields.addCustomField.modal.advancedSettings.key.title": "Chave",
197
+ "cairo.customFields.addCustomField.modal.advancedSettings.key.title": "Chave de campo",
198
198
  "section.header.items": "Itens",
199
199
  "cairo.customFields.fieldType.numberInteger": "Número (inteiro)",
200
200
  "cairo.folders.showAll.button": "Mostrar tudo",
@@ -211,7 +211,7 @@
211
211
  "cairo.table.advanced-sorting.cta": "Adicionar nova ordem",
212
212
  "cairo.customFields.modal.maxFieldsError": "Você atingiu seu limite de 10 mil. <supportLink>Entre em contato com o suporte.</supportLink>",
213
213
  "cairo.export.export": "Exportar",
214
- "cairo.customFields.fieldType.dropdownList.Name.placeholder": "Por exemplo: país",
214
+ "cairo.customFields.fieldType.dropdownList.Name.placeholder": "Ex.: País",
215
215
  "cairo.selectorModal.searchEmptyState.changeFilter.subtitle": "Tente alterar seu filtro.",
216
216
  "cairo.tags.collectionPage.add.CTA": "Atribuir tags",
217
217
  "cairo.tags.collectionPage.popover.emptyState.body": "As tags ajudam você a filtrar e organizar seus itens. Crie sua primeira tag digitando-a na busca.",
@@ -276,7 +276,7 @@
276
276
  "cairo.export.exportTypeQuestionTitle": "Quais itens você gostaria de exportar?",
277
277
  "cairo.page.loadError.failedState.CTA": "Recarregar página",
278
278
  "cairo.tags.manageTags.modal.subtitle": "Edite, remova e crie tags.",
279
- "cairo.customFields.fieldType.shortText.Name.placeholder": "Por exemplo: cidade",
279
+ "cairo.customFields.fieldType.shortText.Name.placeholder": "Ex.: Cidade",
280
280
  "cairo.dragAndDrop.live-region.itemGrabbed.sr": "Pegou.",
281
281
  "cairo.customFields.widget.showMore.button": "Mostrar mais",
282
282
  "cairo.manageView.Rename.modal.title": "Renomear visualização",
@@ -284,7 +284,7 @@
284
284
  "cairo.customFields.entityPage.emptyState.subtitle": "Os campos dos usuários aparecem aqui se forem preenchidos pelos usuários.",
285
285
  "cairo.searchPlaceholder": "Buscar",
286
286
  "cairo.tags.manageTags.modal.deleteModal.title": "Excluir esta tag?",
287
- "cairo.customFields.addCustomField.modal.advancedSettings.externalApps.tooltip": "Permita que aplicativos do App Market leiam ou gravem a entrada deste campo.",
287
+ "cairo.customFields.addCustomField.modal.advancedSettings.externalApps.tooltip": "Permita que aplicativos do Wix App Market leiam ou gravem a entrada deste campo.",
288
288
  "cairo.emptyState.additem.title": "Adicione seu primeiro item",
289
289
  "cairo.tags.manageTags.modal.list.input.validation.maxLength": "As tags devem ter menos de {count, plural, other {# caracteres}}",
290
290
  "cairo.selector.modal.items.selected": "{total, plural, one {1 item selecionado} other {{total,number} itens selecionados}}",
@@ -362,7 +362,7 @@
362
362
  "cairo.customFields.editCustomField.save.CTA": "Salvar",
363
363
  "cairo.customFields.manageFields.title": "Gerenciar campos personalizados",
364
364
  "cairo.technical.error.title": "Não conseguimos carregar seus itens",
365
- "cairo.customFields.fieldType.shortText.placeholder": "Por exemplo: São Paulo",
365
+ "cairo.customFields.fieldType.shortText.placeholder": "Ex.: São Paulo",
366
366
  "cairo.tags.manageTags.modal.emptyState.body": "As tags ajudam você a filtrar e organizar seus itens.",
367
367
  "cairo.selectPlaceholder": "Selecionar",
368
368
  "cairo.table.advanced-sorting.sortByColumns.toast": "Agora você está ordenando por colunas.",
@@ -400,14 +400,14 @@
400
400
  "cairo.tags.collectionPage.popover.loadTags.error.body": "Não foi possível carregar as tags devido a um problema técnico no nosso sistema.",
401
401
  "cairo.table.advanced-sorting.button.cta": "Classificar",
402
402
  "cairo.manageView.Rename.disabled.predefinedView.tooltip": "Esta é uma visualização predefinida. Para renomear essa visualização, salve-a como uma nova visualização.",
403
- "cairo.customFields.addCustomField.modal.fieldType.placeholder": "Selecionar tipo",
404
- "cairo.customFields.fieldType.checkbox.Name.placeholder": "Por exemplo: inscrito",
403
+ "cairo.customFields.addCustomField.modal.fieldType.placeholder": "Selecione um tipo",
404
+ "cairo.customFields.fieldType.checkbox.Name.placeholder": "Ex.: Inscrito",
405
405
  "cairo.dragAndDrop.live-region.itemDropped.sr": "Soltar em {currentNumber}.",
406
406
  "cairo.tags.manageTags.modal.add.CTA": "Criar tag",
407
407
  "cairo.entityPage.widgetError.TPAconnectionFail.title": "Não foi possível carregar esta seção",
408
408
  "cairo.error.tryAgain.cta": "Tentar novamente",
409
409
  "cairo.tags.filterPanel.dropdown.placeholder": "Selecionar tags",
410
- "cairo.customFields.fieldType.date.Name.placeholder": "Por exemplo: data de nascimento",
410
+ "cairo.customFields.fieldType.date.Name.placeholder": "Ex.: Data de nascimento",
411
411
  "cairo.customFields.addCustomField.dropdownList.emptyFieldName.error": "Adicione uma opção.",
412
412
  "cairo.customFields.addCustomField.modal.advancedSettings.externalApps": "Aplicativos instalados",
413
413
  "cairo.export.successMessage": "Fazendo download do seu arquivo... Não está funcionando?",
@@ -89,7 +89,7 @@
89
89
  "cairo.deleteModal.title": "確定要刪除嗎?",
90
90
  "cairo.customFields.booleanValue.true": "是",
91
91
  "cairo.tags.manageTags.modal.list.action.delete.CTA": "刪除",
92
- "cairo.customFields.addCustomField.modal.advancedSettings.key.tooltip": "此金鑰用於您的代碼。它不能在日後變更。",
92
+ "cairo.customFields.addCustomField.modal.advancedSettings.key.tooltip": "此金鑰用於您的代碼中。它不能在日後變更。",
93
93
  "cairo.filtersPanel.dateRange.title": "日期範圍",
94
94
  "section.header.folders": "資料夾",
95
95
  "cairo.tags.manageTags.modal.list.input.save.CTA": "儲存",
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["../../../src/model/filter.ts"],"sourcesContent":["import { TypedEmitter } from '../util';\n\n/*\nchange - whenever we want to notify that the value was changed, for additional side effects, i.e BI events. For example, when initializing the value, we don't want to emit this event.\nrefresh - the collection should be refreshed as a result of this change\nscheduleRefresh - the collection should schedule a refresh as a result of this change\n */\ntype FilterEvent = 'change' | 'refresh' | 'scheduleRefresh' | 'beforeRefresh';\n\nexport interface ChangeValueOptions {\n emitEvents?: FilterEvent[];\n clearResult?: boolean;\n actionType?: 'add' | 'remove';\n clickedValueKey?: string;\n}\n\nexport type FilterItem<T> = T extends (infer V)[] ? V : T;\n\nexport interface FilterEventOptions {\n clearResult?: boolean;\n actionType?: 'add' | 'remove';\n clickedValueKey?: string;\n}\n\ninterface FilterEventsSchema {\n refresh: (opt: FilterEventOptions | undefined) => unknown;\n beforeRefresh: (opt: FilterEventOptions | undefined) => unknown;\n change: (opt?: FilterEventOptions) => unknown;\n scheduleRefresh: (opt?: FilterEventOptions) => unknown;\n}\n\nexport type FilterEvents = TypedEmitter<FilterEventsSchema>;\n\nexport interface Filter<T> {\n events: TypedEmitter<FilterEventsSchema>;\n name: string;\n persistent?: boolean;\n readonly value: T;\n readonly toArray: FilterItem<T>[];\n readonly isEmpty: boolean;\n readonly toQueryString: string;\n readonly decode: (value: unknown) => T;\n readonly encode: (value: T) => unknown;\n readonly size: number;\n readonly itemKey: (item: FilterItem<T>) => string;\n readonly itemName: (item: FilterItem<T>) => string;\n readonly matches: (item: FilterItem<T>, value: T) => boolean;\n readonly entityName: (pluralization: number) => string;\n\n applyFromQueryString(str: string): void;\n setValue(value: T, options?: ChangeValueOptions): void;\n changeValue(value: T, options?: ChangeValueOptions): void;\n refresh(value: T, options?: ChangeValueOptions): void;\n scheduleRefresh(value: T): void;\n reset(options?: ChangeValueOptions): void;\n remove(items: FilterItem<T>[], options?: ChangeValueOptions): void;\n clone(...args: any[]): Filter<T>;\n hasDiff(items: T): boolean;\n}\n\nexport interface FilterStateBaseParams<T> {\n name?: string;\n /**\n * Marks the filter as a \"context\" or \"scope\" filter. This makes the filter not be visible in the sub-toolbar tag list, not saved in views, not counted as \"X filters applied\".\n */\n persistent?: boolean;\n /**\n * The value to initialize the filter with (Optional)\n */\n initialValue?: T;\n\n /**\n * A callback function that accepts an item and returns a unique ID of it. typically `item.id`.\n */\n itemKey: (item: FilterItem<T>) => string;\n /**\n * A callback function that accepts an item and returns the item name which is used in many messages through cairo\n */\n itemName: (item: FilterItem<T>) => string;\n /**\n * @deprecated No longer required. To customize filters panel accordion item label pass [accordionItemProps.label](/pages/cairo/?path=/story/components-filters--filterprops) prop to the filter component\n */\n entityName?: (pluralization: number) => string;\n}\n\nexport type FiltersMap = { [key: string]: Filter<any> | undefined };\nexport type OptionalFiltersMap = { [key: string]: undefined };\n"],"mappings":""}
1
+ {"version":3,"names":[],"sources":["../../../src/model/filter.ts"],"sourcesContent":["import { TypedEmitter } from '../util';\n\n/*\nchange - whenever we want to notify that the value was changed, for additional side effects, i.e BI events. For example, when initializing the value, we don't want to emit this event.\nrefresh - the collection should be refreshed as a result of this change\nscheduleRefresh - the collection should schedule a refresh as a result of this change\n */\ntype FilterEvent = 'change' | 'refresh' | 'scheduleRefresh' | 'beforeRefresh';\n\nexport interface ChangeValueOptions {\n emitEvents?: FilterEvent[];\n clearResult?: boolean;\n actionType?: 'add' | 'remove';\n clickedValueKey?: string;\n}\n\nexport type FilterItem<T> = T extends (infer V)[] ? V : T;\n\nexport interface FilterEventOptions {\n clearResult?: boolean;\n actionType?: 'add' | 'remove';\n clickedValueKey?: string;\n}\n\ninterface FilterEventsSchema {\n refresh: (opt: FilterEventOptions | undefined) => unknown;\n beforeRefresh: (opt: FilterEventOptions | undefined) => unknown;\n change: (opt?: FilterEventOptions) => unknown;\n scheduleRefresh: (opt?: FilterEventOptions) => unknown;\n}\n\nexport type FilterEvents = TypedEmitter<FilterEventsSchema>;\n\nexport interface Filter<T> {\n events: TypedEmitter<FilterEventsSchema>;\n name: string;\n persistent?: boolean;\n readonly value: T;\n readonly toArray: FilterItem<T>[];\n readonly isEmpty: boolean;\n readonly toQueryString: string;\n readonly decode: (value: unknown) => T;\n readonly encode: (value: T) => unknown;\n readonly size: number;\n readonly itemKey: (item: FilterItem<T>) => string;\n readonly itemName: (item: FilterItem<T>) => string;\n readonly matches: (item: FilterItem<T>, value: T) => boolean;\n readonly entityName: (pluralization: number) => string;\n readonly equals?: (item1: FilterItem<T>, item2: FilterItem<T>) => boolean;\n\n applyFromQueryString(str: string): void;\n setValue(value: T, options?: ChangeValueOptions): void;\n changeValue(value: T, options?: ChangeValueOptions): void;\n refresh(value: T, options?: ChangeValueOptions): void;\n scheduleRefresh(value: T): void;\n reset(options?: ChangeValueOptions): void;\n remove(items: FilterItem<T>[], options?: ChangeValueOptions): void;\n clone(...args: any[]): Filter<T>;\n hasDiff(items: T): boolean;\n}\n\nexport interface FilterStateBaseParams<T> {\n name?: string;\n /**\n * Marks the filter as a \"context\" or \"scope\" filter. This makes the filter not be visible in the sub-toolbar tag list, not saved in views, not counted as \"X filters applied\".\n */\n persistent?: boolean;\n /**\n * The value to initialize the filter with (Optional)\n */\n initialValue?: T;\n\n /**\n * A callback function that accepts an item and returns a unique ID of it. typically `item.id`.\n */\n itemKey: (item: FilterItem<T>) => string;\n /**\n * A callback function that accepts an item and returns the item name which is used in many messages through cairo\n */\n itemName: (item: FilterItem<T>) => string;\n /**\n * @deprecated No longer required. To customize filters panel accordion item label pass [accordionItemProps.label](/pages/cairo/?path=/story/components-filters--filterprops) prop to the filter component\n */\n entityName?: (pluralization: number) => string;\n\n /**\n * A function which accepts 2 items and returns true if they are equal\n */\n equals?: (item1: FilterItem<T>, item2: FilterItem<T>) => boolean;\n}\n\nexport type FiltersMap = { [key: string]: Filter<any> | undefined };\nexport type OptionalFiltersMap = { [key: string]: undefined };\n"],"mappings":""}
@@ -17,6 +17,7 @@ class ArrayFilterState {
17
17
  (0, _defineProperty2.default)(this, "itemKey", void 0);
18
18
  (0, _defineProperty2.default)(this, "itemName", void 0);
19
19
  (0, _defineProperty2.default)(this, "entityName", void 0);
20
+ (0, _defineProperty2.default)(this, "equals", void 0);
20
21
  (0, _defineProperty2.default)(this, "events", new _events.EventEmitter());
21
22
  (0, _defineProperty2.default)(this, "matches", void 0);
22
23
  this.name = params.name ?? '';
@@ -35,6 +36,7 @@ class ArrayFilterState {
35
36
  const key = typeof item === 'string' ? item : itemKey(item);
36
37
  return value == null || !value.length || value.some(v => itemKey(v) === key);
37
38
  });
39
+ this.equals = params.equals;
38
40
  (0, _mobx.makeObservable)(this, {
39
41
  _value: _mobx.observable.ref,
40
42
  defaultValue: _mobx.observable.ref,
@@ -1 +1 @@
1
- {"version":3,"names":["_events","require","_mobx","ArrayFilterState","constructor","params","_defineProperty2","default","EventEmitter","name","persistent","defaultValue","parse","simplify","value","itemKey","itemName","entityName","_value","initialValue","matches","item","key","length","some","v","makeObservable","observable","ref","isEmpty","computed","size","reset","action","setValue","changeValue","scheduleRefresh","clone","toArray","toQueryString","JSON","stringify","map","applyFromQueryString","str","maybeArr","Array","isArray","filter","_","encode","decode","raw","emitEvents","options","event","events","emit","refresh","hasDiff","items","every","i","remove","keysToRemove","Set","has","exports","stringsArrayFilter","arrayFilter","idNameArrayFilter","id","idArrayFilter","idNameArrayFilterNum","String"],"sources":["../../../../src/state/ArrayFilterState/ArrayFilterState.ts"],"sourcesContent":["import { EventEmitter } from 'events';\nimport { action, computed, makeObservable, observable } from 'mobx';\nimport {\n ChangeValueOptions,\n Filter,\n FilterEvents,\n FilterStateBaseParams,\n} from '../../model';\n\nexport interface ArrayFilterStateParams<T> extends FilterStateBaseParams<T[]> {\n /**\n * The value to set the value to, when clearing the filter (Optional)\n */\n defaultValue?: T[];\n /**\n * Convert a unknown object to a T.<br>\n * If the function returns null, the item will be skipped when we try to deserializate it from an array.\n * @param value\n */\n readonly parse: (\n value: Record<string, unknown> | string | null | undefined,\n ) => T | null;\n /**\n * Return a simplified form of an item for serialization.\n * @param value\n */\n readonly simplify?: (value: T) => Partial<T>;\n\n /**\n * Indicates whether an item matches the current value of the filter\n */\n readonly matches?: (item: T, value: T[]) => boolean;\n}\n\nexport class ArrayFilterState<T> implements Filter<T[]> {\n _value: T[];\n\n name: string;\n persistent;\n defaultValue: T[];\n readonly parse: ArrayFilterStateParams<T>['parse'];\n readonly simplify: (value: T) => Partial<T>;\n readonly itemKey: (item: T) => string;\n readonly itemName: (item: T) => string;\n readonly entityName: (pluralization: number) => string;\n\n readonly events = new EventEmitter() as FilterEvents;\n\n readonly matches: (item: T, value: T[]) => boolean;\n\n constructor(params: Readonly<ArrayFilterStateParams<T>>) {\n this.name = params.name ?? '';\n this.persistent = params.persistent;\n this.defaultValue = params.defaultValue ?? [];\n this.parse = params.parse;\n this.simplify = params.simplify ?? ((value) => value);\n this.itemKey = params.itemKey;\n this.itemName = params.itemName;\n this.entityName = params.entityName ?? (() => '');\n this._value = params.initialValue ?? this.defaultValue;\n this.matches =\n params.matches ??\n ((item, value) => {\n const { itemKey } = this;\n const key = typeof item === 'string' ? item : itemKey(item);\n return (\n value == null ||\n !value.length ||\n value.some((v) => itemKey(v) === key)\n );\n });\n\n makeObservable(this, {\n _value: observable.ref,\n defaultValue: observable.ref,\n persistent: observable.ref,\n isEmpty: computed,\n size: computed,\n value: computed,\n reset: action,\n setValue: action,\n changeValue: action,\n scheduleRefresh: action,\n clone: action,\n });\n }\n\n get value() {\n return this._value;\n }\n\n get toArray() {\n return this._value;\n }\n\n get isEmpty() {\n return !this.size;\n }\n\n get size() {\n return this._value.length;\n }\n\n get toQueryString() {\n return JSON.stringify(this._value.map(this.simplify));\n }\n\n applyFromQueryString(str: string) {\n try {\n const maybeArr = JSON.parse(str) as unknown;\n if (Array.isArray(maybeArr)) {\n this.setValue(\n maybeArr.map(this.parse).filter((value): value is T => value != null),\n );\n }\n } catch (_) {}\n }\n\n encode(value: T[]) {\n return value.map(this.simplify);\n }\n\n decode(raw: unknown) {\n if (Array.isArray(raw)) {\n return raw.map(this.parse).filter((value): value is T => value != null);\n }\n\n return [];\n }\n\n setValue(value: T[], { emitEvents, ...options }: ChangeValueOptions = {}) {\n this._value = value;\n if (emitEvents) {\n for (const event of emitEvents) {\n this.events.emit(event, options);\n }\n }\n }\n\n changeValue(\n value: T[],\n { emitEvents = [], ...options }: ChangeValueOptions = {},\n ) {\n this.setValue(value, { ...options, emitEvents: ['change', ...emitEvents] });\n }\n\n refresh(value: T[], options?: ChangeValueOptions) {\n this.changeValue(value, {\n ...options,\n emitEvents: ['refresh'],\n });\n }\n\n scheduleRefresh(value: T[]) {\n this.changeValue(value, { emitEvents: ['scheduleRefresh'] });\n }\n\n reset(options: ChangeValueOptions = {}) {\n this.setValue(this.defaultValue, options);\n }\n\n hasDiff(items: T[]) {\n const { value } = this;\n return (\n value.length !== items.length ||\n value.some((item) =>\n items.every((i) => this.itemKey(i) !== this.itemKey(item)),\n )\n );\n }\n\n remove(items: T[], options: ChangeValueOptions = {}) {\n const { itemKey } = this;\n const keysToRemove = new Set(items.map(itemKey));\n this.setValue(\n this._value.filter((item) => !keysToRemove.has(itemKey(item))),\n options,\n );\n }\n\n clone(params: Partial<ArrayFilterStateParams<T>>): ArrayFilterState<T> {\n const {\n entityName,\n itemName,\n itemKey,\n simplify,\n parse,\n defaultValue,\n value: initialValue,\n matches,\n persistent,\n name,\n } = this;\n return new ArrayFilterState({\n entityName,\n itemName,\n itemKey,\n simplify,\n parse,\n defaultValue,\n initialValue,\n matches,\n persistent,\n name,\n ...params,\n });\n }\n}\n\nexport const stringsArrayFilter = <T extends string>(\n params?: Partial<ArrayFilterStateParams<T>>,\n) =>\n new ArrayFilterState<T>({\n itemKey: (item) => item,\n itemName: (item) => item,\n parse: (value) => {\n if (value == null || typeof value !== 'string') {\n return null;\n }\n return value as T;\n },\n simplify: (value) => value,\n ...params,\n });\n\nexport const arrayFilter = <T>(params: ArrayFilterStateParams<T>) =>\n new ArrayFilterState<T>(params);\n\nexport const idNameArrayFilter = <T extends { id: string; name: string }>(\n params?: Partial<ArrayFilterStateParams<T>>,\n) =>\n new ArrayFilterState<T>({\n itemKey: (item) => item.id,\n itemName: (item) => item.name,\n parse: (value) => {\n if (\n value == null ||\n typeof value === 'string' ||\n typeof value.id !== 'string' ||\n typeof value.name !== 'string'\n ) {\n return null;\n }\n return value as T;\n },\n simplify: (value) =>\n ({\n id: value.id,\n name: value.name,\n } as Partial<T>),\n ...params,\n });\n\nexport const idArrayFilter = <T extends { id: string }>(\n params?: Partial<ArrayFilterStateParams<T>>,\n) =>\n new ArrayFilterState<T>({\n itemKey: (item) => item.id,\n itemName: () => '',\n parse: (value) => {\n if (\n value == null ||\n typeof value === 'string' ||\n typeof value.id !== 'string'\n ) {\n return null;\n }\n return value as T;\n },\n simplify: (value) =>\n ({\n id: value.id,\n } as Partial<T>),\n ...params,\n });\n\nexport const idNameArrayFilterNum = <T extends { id: number; name: string }>(\n params?: Partial<ArrayFilterStateParams<T>>,\n) =>\n new ArrayFilterState<T>({\n itemKey: (item) => String(item.id),\n itemName: (item) => item.name,\n parse: (value) => {\n if (\n value == null ||\n typeof value === 'string' ||\n typeof value.id !== 'number' ||\n typeof value.name !== 'string'\n ) {\n return null;\n }\n return value as T;\n },\n simplify: (value) =>\n ({\n id: value.id,\n name: value.name,\n } as Partial<T>),\n ...params,\n });\n"],"mappings":"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"}
1
+ {"version":3,"names":["_events","require","_mobx","ArrayFilterState","constructor","params","_defineProperty2","default","EventEmitter","name","persistent","defaultValue","parse","simplify","value","itemKey","itemName","entityName","_value","initialValue","matches","item","key","length","some","v","equals","makeObservable","observable","ref","isEmpty","computed","size","reset","action","setValue","changeValue","scheduleRefresh","clone","toArray","toQueryString","JSON","stringify","map","applyFromQueryString","str","maybeArr","Array","isArray","filter","_","encode","decode","raw","emitEvents","options","event","events","emit","refresh","hasDiff","items","every","i","remove","keysToRemove","Set","has","exports","stringsArrayFilter","arrayFilter","idNameArrayFilter","id","idArrayFilter","idNameArrayFilterNum","String"],"sources":["../../../../src/state/ArrayFilterState/ArrayFilterState.ts"],"sourcesContent":["import { EventEmitter } from 'events';\nimport { action, computed, makeObservable, observable } from 'mobx';\nimport {\n ChangeValueOptions,\n Filter,\n FilterEvents,\n FilterStateBaseParams,\n} from '../../model';\n\nexport interface ArrayFilterStateParams<T> extends FilterStateBaseParams<T[]> {\n /**\n * The value to set the value to, when clearing the filter (Optional)\n */\n defaultValue?: T[];\n /**\n * Convert a unknown object to a T.<br>\n * If the function returns null, the item will be skipped when we try to deserializate it from an array.\n * @param value\n */\n readonly parse: (\n value: Record<string, unknown> | string | null | undefined,\n ) => T | null;\n /**\n * Return a simplified form of an item for serialization.\n * @param value\n */\n readonly simplify?: (value: T) => Partial<T>;\n\n /**\n * Indicates whether an item matches the current value of the filter\n */\n readonly matches?: (item: T, value: T[]) => boolean;\n\n readonly equals?: (item1: T, item2: T) => boolean;\n}\n\nexport class ArrayFilterState<T> implements Filter<T[]> {\n _value: T[];\n\n name: string;\n persistent;\n defaultValue: T[];\n readonly parse: ArrayFilterStateParams<T>['parse'];\n readonly simplify: (value: T) => Partial<T>;\n readonly itemKey: (item: T) => string;\n readonly itemName: (item: T) => string;\n readonly entityName: (pluralization: number) => string;\n readonly equals?: (item1: T, item2: T) => boolean;\n\n readonly events = new EventEmitter() as FilterEvents;\n\n readonly matches: (item: T, value: T[]) => boolean;\n\n constructor(params: Readonly<ArrayFilterStateParams<T>>) {\n this.name = params.name ?? '';\n this.persistent = params.persistent;\n this.defaultValue = params.defaultValue ?? [];\n this.parse = params.parse;\n this.simplify = params.simplify ?? ((value) => value);\n this.itemKey = params.itemKey;\n this.itemName = params.itemName;\n this.entityName = params.entityName ?? (() => '');\n this._value = params.initialValue ?? this.defaultValue;\n this.matches =\n params.matches ??\n ((item, value) => {\n const { itemKey } = this;\n const key = typeof item === 'string' ? item : itemKey(item);\n return (\n value == null ||\n !value.length ||\n value.some((v) => itemKey(v) === key)\n );\n });\n this.equals = params.equals;\n\n makeObservable(this, {\n _value: observable.ref,\n defaultValue: observable.ref,\n persistent: observable.ref,\n isEmpty: computed,\n size: computed,\n value: computed,\n reset: action,\n setValue: action,\n changeValue: action,\n scheduleRefresh: action,\n clone: action,\n });\n }\n\n get value() {\n return this._value;\n }\n\n get toArray() {\n return this._value;\n }\n\n get isEmpty() {\n return !this.size;\n }\n\n get size() {\n return this._value.length;\n }\n\n get toQueryString() {\n return JSON.stringify(this._value.map(this.simplify));\n }\n\n applyFromQueryString(str: string) {\n try {\n const maybeArr = JSON.parse(str) as unknown;\n if (Array.isArray(maybeArr)) {\n this.setValue(\n maybeArr.map(this.parse).filter((value): value is T => value != null),\n );\n }\n } catch (_) {}\n }\n\n encode(value: T[]) {\n return value.map(this.simplify);\n }\n\n decode(raw: unknown) {\n if (Array.isArray(raw)) {\n return raw.map(this.parse).filter((value): value is T => value != null);\n }\n\n return [];\n }\n\n setValue(value: T[], { emitEvents, ...options }: ChangeValueOptions = {}) {\n this._value = value;\n if (emitEvents) {\n for (const event of emitEvents) {\n this.events.emit(event, options);\n }\n }\n }\n\n changeValue(\n value: T[],\n { emitEvents = [], ...options }: ChangeValueOptions = {},\n ) {\n this.setValue(value, { ...options, emitEvents: ['change', ...emitEvents] });\n }\n\n refresh(value: T[], options?: ChangeValueOptions) {\n this.changeValue(value, {\n ...options,\n emitEvents: ['refresh'],\n });\n }\n\n scheduleRefresh(value: T[]) {\n this.changeValue(value, { emitEvents: ['scheduleRefresh'] });\n }\n\n reset(options: ChangeValueOptions = {}) {\n this.setValue(this.defaultValue, options);\n }\n\n hasDiff(items: T[]) {\n const { value } = this;\n return (\n value.length !== items.length ||\n value.some((item) =>\n items.every((i) => this.itemKey(i) !== this.itemKey(item)),\n )\n );\n }\n\n remove(items: T[], options: ChangeValueOptions = {}) {\n const { itemKey } = this;\n const keysToRemove = new Set(items.map(itemKey));\n this.setValue(\n this._value.filter((item) => !keysToRemove.has(itemKey(item))),\n options,\n );\n }\n\n clone(params: Partial<ArrayFilterStateParams<T>>): ArrayFilterState<T> {\n const {\n entityName,\n itemName,\n itemKey,\n simplify,\n parse,\n defaultValue,\n value: initialValue,\n matches,\n persistent,\n name,\n } = this;\n return new ArrayFilterState({\n entityName,\n itemName,\n itemKey,\n simplify,\n parse,\n defaultValue,\n initialValue,\n matches,\n persistent,\n name,\n ...params,\n });\n }\n}\n\nexport const stringsArrayFilter = <T extends string>(\n params?: Partial<ArrayFilterStateParams<T>>,\n) =>\n new ArrayFilterState<T>({\n itemKey: (item) => item,\n itemName: (item) => item,\n parse: (value) => {\n if (value == null || typeof value !== 'string') {\n return null;\n }\n return value as T;\n },\n simplify: (value) => value,\n ...params,\n });\n\nexport const arrayFilter = <T>(params: ArrayFilterStateParams<T>) =>\n new ArrayFilterState<T>(params);\n\nexport const idNameArrayFilter = <T extends { id: string; name: string }>(\n params?: Partial<ArrayFilterStateParams<T>>,\n) =>\n new ArrayFilterState<T>({\n itemKey: (item) => item.id,\n itemName: (item) => item.name,\n parse: (value) => {\n if (\n value == null ||\n typeof value === 'string' ||\n typeof value.id !== 'string' ||\n typeof value.name !== 'string'\n ) {\n return null;\n }\n return value as T;\n },\n simplify: (value) =>\n ({\n id: value.id,\n name: value.name,\n } as Partial<T>),\n ...params,\n });\n\nexport const idArrayFilter = <T extends { id: string }>(\n params?: Partial<ArrayFilterStateParams<T>>,\n) =>\n new ArrayFilterState<T>({\n itemKey: (item) => item.id,\n itemName: () => '',\n parse: (value) => {\n if (\n value == null ||\n typeof value === 'string' ||\n typeof value.id !== 'string'\n ) {\n return null;\n }\n return value as T;\n },\n simplify: (value) =>\n ({\n id: value.id,\n } as Partial<T>),\n ...params,\n });\n\nexport const idNameArrayFilterNum = <T extends { id: number; name: string }>(\n params?: Partial<ArrayFilterStateParams<T>>,\n) =>\n new ArrayFilterState<T>({\n itemKey: (item) => String(item.id),\n itemName: (item) => item.name,\n parse: (value) => {\n if (\n value == null ||\n typeof value === 'string' ||\n typeof value.id !== 'number' ||\n typeof value.name !== 'string'\n ) {\n return null;\n }\n return value as T;\n },\n simplify: (value) =>\n ({\n id: value.id,\n name: value.name,\n } as Partial<T>),\n ...params,\n });\n"],"mappings":"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"}
@@ -25,6 +25,7 @@ class CustomFilterState {
25
25
  (0, _defineProperty2.default)(this, "itemName", void 0);
26
26
  (0, _defineProperty2.default)(this, "entityName", void 0);
27
27
  (0, _defineProperty2.default)(this, "matches", void 0);
28
+ (0, _defineProperty2.default)(this, "equals", void 0);
28
29
  (0, _defineProperty2.default)(this, "events", new _events.EventEmitter());
29
30
  this.name = params.name ?? '';
30
31
  this.persistent = params.persistent;
@@ -43,6 +44,7 @@ class CustomFilterState {
43
44
  this.encode = params.encode;
44
45
  this.entityName = params.entityName ?? (() => '');
45
46
  this.matches = params.matches ?? (() => false);
47
+ this.equals = params.equals;
46
48
  (0, _mobx.makeObservable)(this, {
47
49
  _value: _mobx.observable.ref,
48
50
  persistent: _mobx.observable.ref,
@@ -1 +1 @@
1
- {"version":3,"names":["_events","require","_mobx","CustomFilterState","constructor","params","_defineProperty2","default","EventEmitter","name","persistent","defaultValue","_value","initialValue","_isEmpty","isEmpty","_size","size","value","_toQueryString","toQueryString","_fromQueryString","fromQueryString","_toArray","toArray","_remove","remove","_hasDiff","hasDiff","data","itemKey","itemName","decode","encode","entityName","matches","makeObservable","observable","ref","computed","reset","action","setValue","changeValue","scheduleRefresh","clone","emitEvents","options","event","events","emit","refresh","JSON","stringify","applyFromQueryString","str","raw","parse","e","items","exports","customFilter"],"sources":["../../../../src/state/CustomFilterState/CustomFilterState.ts"],"sourcesContent":["import { EventEmitter } from 'events';\nimport { action, computed, makeObservable, observable } from 'mobx';\nimport {\n ChangeValueOptions,\n Filter,\n FilterEvents,\n FilterItem,\n FilterStateBaseParams,\n} from '../../model';\n\nexport interface CustomFilterStateParams<T> extends FilterStateBaseParams<T> {\n /**\n * The value to set the value to, when clearing the filter.\n */\n defaultValue: T;\n /**\n * Indicates whether nothing is selected.<br>\n * For example, when implementing a range filter, when both minimum and maximum inputs are empty\n */\n isEmpty: (value: T) => boolean;\n /**\n * Indicates the number of effective filters.<br>\n * For example, when implementing a range filter, 1 when only minimum/maximum are entered, 2 - when both entered.\n * @default A function that 0 when `isEmpty` returns true, and 1 otherwise.\n */\n size?: (value: T) => number;\n /**\n * Convert the filter value to a string, to be stored in a URL.\n */\n toQueryString?: (value: T) => string;\n /**\n * Convert the a string value to the filter value, to be retrieved from a URL.\n */\n fromQueryString?: (str: string) => T;\n\n /**\n * Convert a unknown object to a T.<br>\n * If the function returns null, the item will be skipped when we try to deserializate it from an array.\n * @param value\n */\n readonly decode: (value: unknown) => T;\n /**\n * Return a simplified form of an item for serialization.\n * @param value\n */\n readonly encode: (value: T) => unknown;\n\n /**\n * Flatten the correct selection to an array, to be shown in the table sub-toolbar in a tag list.\n * Usually this will return an array with a single item, but it gives control when we want to show more than a 1 tag in the tag list.\n */\n toArray: (value: T) => FilterItem<T>[];\n /**\n * Remove a tag from the tag list.\n * @default A function that returns `defaultValue`.\n */\n remove?: (item: FilterItem<T>[], value: T) => T;\n /**\n * Indicates whether current filter value is different than `data`\n */\n hasDiff?: (data: T) => boolean;\n /**\n * Indicates whether an item matches the current value of the filter\n */\n matches?: (item: FilterItem<T>, value: T) => boolean;\n}\n\nexport class CustomFilterState<T> implements Filter<T> {\n name: string;\n persistent;\n defaultValue: T;\n _value: T;\n private readonly _isEmpty: CustomFilterStateParams<T>['isEmpty'];\n private readonly _size: (value: T) => number;\n private readonly _toQueryString?: CustomFilterStateParams<T>['toQueryString'];\n private readonly _fromQueryString?: CustomFilterStateParams<T>['fromQueryString'];\n private readonly _toArray: CustomFilterStateParams<T>['toArray'];\n private readonly _remove;\n private readonly _hasDiff;\n readonly decode;\n readonly encode;\n\n readonly itemKey: (item: FilterItem<T>) => string;\n readonly itemName: (item: FilterItem<T>) => string;\n readonly entityName: (pluralization: number) => string;\n readonly matches: (item: FilterItem<T>, value: T) => boolean;\n\n readonly events = new EventEmitter() as FilterEvents;\n\n constructor(params: Readonly<CustomFilterStateParams<T>>) {\n this.name = params.name ?? '';\n this.persistent = params.persistent;\n this.defaultValue = params.defaultValue;\n this._value = params.initialValue ?? params.defaultValue;\n this._isEmpty = params.isEmpty;\n this._size = params.size ?? ((value) => (this._isEmpty(value) ? 0 : 1));\n this._toQueryString = params.toQueryString;\n this._fromQueryString = params.fromQueryString;\n this._toArray = params.toArray;\n this._remove = params.remove ?? (() => this.defaultValue);\n this._hasDiff = params.hasDiff ?? ((data) => data !== this.value);\n this.itemKey = params.itemKey;\n this.itemName = params.itemName;\n this.decode = params.decode;\n this.encode = params.encode;\n this.entityName = params.entityName ?? (() => '');\n this.matches = params.matches ?? (() => false);\n\n makeObservable(this, {\n _value: observable.ref,\n persistent: observable.ref,\n isEmpty: computed,\n size: computed,\n value: computed,\n reset: action,\n setValue: action,\n changeValue: action,\n scheduleRefresh: action,\n clone: action,\n });\n }\n\n get value() {\n return this._value;\n }\n\n get toArray() {\n return this._toArray(this._value);\n }\n\n get isEmpty() {\n return this._isEmpty(this.value);\n }\n\n get size() {\n return this._size(this.value);\n }\n\n setValue(value: T, { emitEvents, ...options }: ChangeValueOptions = {}) {\n this._value = value;\n if (emitEvents) {\n for (const event of emitEvents) {\n this.events.emit(event, options);\n }\n }\n }\n\n changeValue(\n value: T,\n { emitEvents = [], ...options }: ChangeValueOptions = {},\n ) {\n this.setValue(value, { ...options, emitEvents: ['change', ...emitEvents] });\n }\n\n refresh(value: T, options?: ChangeValueOptions) {\n this.changeValue(value, { ...options, emitEvents: ['refresh'] });\n }\n\n scheduleRefresh(value: T) {\n this.changeValue(value, { emitEvents: ['scheduleRefresh'] });\n }\n\n get toQueryString() {\n const { _toQueryString, encode, value } = this;\n if (_toQueryString) {\n return _toQueryString(value);\n }\n\n return JSON.stringify(encode(value));\n }\n\n applyFromQueryString(str: string) {\n const { _fromQueryString, decode } = this;\n\n if (_fromQueryString) {\n this.setValue(_fromQueryString(str));\n } else {\n try {\n const raw = JSON.parse(str) as unknown;\n this.setValue(decode(raw));\n } catch (e) {}\n }\n }\n\n reset(options: ChangeValueOptions = {}) {\n this.setValue(this.defaultValue, options);\n }\n\n remove(items: FilterItem<T>[], options: ChangeValueOptions = {}) {\n this.setValue(this._remove(items, this.value), options);\n }\n\n hasDiff(data: T) {\n return this._hasDiff(data);\n }\n\n clone(params: Partial<CustomFilterStateParams<T>>) {\n const {\n entityName,\n itemName,\n itemKey,\n encode,\n decode,\n _isEmpty: isEmpty,\n _remove: remove,\n _size: size,\n _fromQueryString: fromQueryString,\n _toArray: toArray,\n _toQueryString: toQueryString,\n defaultValue,\n value: initialValue,\n matches,\n persistent,\n name,\n } = this;\n return new CustomFilterState<T>({\n entityName,\n itemName,\n itemKey,\n encode,\n decode,\n isEmpty,\n remove,\n size,\n fromQueryString,\n toArray,\n toQueryString,\n defaultValue,\n initialValue,\n matches,\n persistent,\n name,\n ...params,\n });\n }\n}\n\nexport const customFilter = <T>(params: CustomFilterStateParams<T>) =>\n new CustomFilterState(params);\n"],"mappings":";;;;;;AAAA,IAAAA,OAAA,GAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AAkEO,MAAME,iBAAiB,CAAyB;EAsBrDC,WAAWA,CAACC,MAA4C,EAAE;IAAA,IAAAC,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA,kBAFxC,IAAIC,oBAAY,CAAC,CAAC;IAGlC,IAAI,CAACC,IAAI,GAAGJ,MAAM,CAACI,IAAI,IAAI,EAAE;IAC7B,IAAI,CAACC,UAAU,GAAGL,MAAM,CAACK,UAAU;IACnC,IAAI,CAACC,YAAY,GAAGN,MAAM,CAACM,YAAY;IACvC,IAAI,CAACC,MAAM,GAAGP,MAAM,CAACQ,YAAY,IAAIR,MAAM,CAACM,YAAY;IACxD,IAAI,CAACG,QAAQ,GAAGT,MAAM,CAACU,OAAO;IAC9B,IAAI,CAACC,KAAK,GAAGX,MAAM,CAACY,IAAI,KAAMC,KAAK,IAAM,IAAI,CAACJ,QAAQ,CAACI,KAAK,CAAC,GAAG,CAAC,GAAG,CAAE,CAAC;IACvE,IAAI,CAACC,cAAc,GAAGd,MAAM,CAACe,aAAa;IAC1C,IAAI,CAACC,gBAAgB,GAAGhB,MAAM,CAACiB,eAAe;IAC9C,IAAI,CAACC,QAAQ,GAAGlB,MAAM,CAACmB,OAAO;IAC9B,IAAI,CAACC,OAAO,GAAGpB,MAAM,CAACqB,MAAM,KAAK,MAAM,IAAI,CAACf,YAAY,CAAC;IACzD,IAAI,CAACgB,QAAQ,GAAGtB,MAAM,CAACuB,OAAO,KAAMC,IAAI,IAAKA,IAAI,KAAK,IAAI,CAACX,KAAK,CAAC;IACjE,IAAI,CAACY,OAAO,GAAGzB,MAAM,CAACyB,OAAO;IAC7B,IAAI,CAACC,QAAQ,GAAG1B,MAAM,CAAC0B,QAAQ;IAC/B,IAAI,CAACC,MAAM,GAAG3B,MAAM,CAAC2B,MAAM;IAC3B,IAAI,CAACC,MAAM,GAAG5B,MAAM,CAAC4B,MAAM;IAC3B,IAAI,CAACC,UAAU,GAAG7B,MAAM,CAAC6B,UAAU,KAAK,MAAM,EAAE,CAAC;IACjD,IAAI,CAACC,OAAO,GAAG9B,MAAM,CAAC8B,OAAO,KAAK,MAAM,KAAK,CAAC;IAE9C,IAAAC,oBAAc,EAAC,IAAI,EAAE;MACnBxB,MAAM,EAAEyB,gBAAU,CAACC,GAAG;MACtB5B,UAAU,EAAE2B,gBAAU,CAACC,GAAG;MAC1BvB,OAAO,EAAEwB,cAAQ;MACjBtB,IAAI,EAAEsB,cAAQ;MACdrB,KAAK,EAAEqB,cAAQ;MACfC,KAAK,EAAEC,YAAM;MACbC,QAAQ,EAAED,YAAM;MAChBE,WAAW,EAAEF,YAAM;MACnBG,eAAe,EAAEH,YAAM;MACvBI,KAAK,EAAEJ;IACT,CAAC,CAAC;EACJ;EAEA,IAAIvB,KAAKA,CAAA,EAAG;IACV,OAAO,IAAI,CAACN,MAAM;EACpB;EAEA,IAAIY,OAAOA,CAAA,EAAG;IACZ,OAAO,IAAI,CAACD,QAAQ,CAAC,IAAI,CAACX,MAAM,CAAC;EACnC;EAEA,IAAIG,OAAOA,CAAA,EAAG;IACZ,OAAO,IAAI,CAACD,QAAQ,CAAC,IAAI,CAACI,KAAK,CAAC;EAClC;EAEA,IAAID,IAAIA,CAAA,EAAG;IACT,OAAO,IAAI,CAACD,KAAK,CAAC,IAAI,CAACE,KAAK,CAAC;EAC/B;EAEAwB,QAAQA,CAACxB,KAAQ,EAAE;IAAE4B,UAAU;IAAE,GAAGC;EAA4B,CAAC,GAAG,CAAC,CAAC,EAAE;IACtE,IAAI,CAACnC,MAAM,GAAGM,KAAK;IACnB,IAAI4B,UAAU,EAAE;MACd,KAAK,MAAME,KAAK,IAAIF,UAAU,EAAE;QAC9B,IAAI,CAACG,MAAM,CAACC,IAAI,CAACF,KAAK,EAAED,OAAO,CAAC;MAClC;IACF;EACF;EAEAJ,WAAWA,CACTzB,KAAQ,EACR;IAAE4B,UAAU,GAAG,EAAE;IAAE,GAAGC;EAA4B,CAAC,GAAG,CAAC,CAAC,EACxD;IACA,IAAI,CAACL,QAAQ,CAACxB,KAAK,EAAE;MAAE,GAAG6B,OAAO;MAAED,UAAU,EAAE,CAAC,QAAQ,EAAE,GAAGA,UAAU;IAAE,CAAC,CAAC;EAC7E;EAEAK,OAAOA,CAACjC,KAAQ,EAAE6B,OAA4B,EAAE;IAC9C,IAAI,CAACJ,WAAW,CAACzB,KAAK,EAAE;MAAE,GAAG6B,OAAO;MAAED,UAAU,EAAE,CAAC,SAAS;IAAE,CAAC,CAAC;EAClE;EAEAF,eAAeA,CAAC1B,KAAQ,EAAE;IACxB,IAAI,CAACyB,WAAW,CAACzB,KAAK,EAAE;MAAE4B,UAAU,EAAE,CAAC,iBAAiB;IAAE,CAAC,CAAC;EAC9D;EAEA,IAAI1B,aAAaA,CAAA,EAAG;IAClB,MAAM;MAAED,cAAc;MAAEc,MAAM;MAAEf;IAAM,CAAC,GAAG,IAAI;IAC9C,IAAIC,cAAc,EAAE;MAClB,OAAOA,cAAc,CAACD,KAAK,CAAC;IAC9B;IAEA,OAAOkC,IAAI,CAACC,SAAS,CAACpB,MAAM,CAACf,KAAK,CAAC,CAAC;EACtC;EAEAoC,oBAAoBA,CAACC,GAAW,EAAE;IAChC,MAAM;MAAElC,gBAAgB;MAAEW;IAAO,CAAC,GAAG,IAAI;IAEzC,IAAIX,gBAAgB,EAAE;MACpB,IAAI,CAACqB,QAAQ,CAACrB,gBAAgB,CAACkC,GAAG,CAAC,CAAC;IACtC,CAAC,MAAM;MACL,IAAI;QACF,MAAMC,GAAG,GAAGJ,IAAI,CAACK,KAAK,CAACF,GAAG,CAAY;QACtC,IAAI,CAACb,QAAQ,CAACV,MAAM,CAACwB,GAAG,CAAC,CAAC;MAC5B,CAAC,CAAC,OAAOE,CAAC,EAAE,CAAC;IACf;EACF;EAEAlB,KAAKA,CAACO,OAA2B,GAAG,CAAC,CAAC,EAAE;IACtC,IAAI,CAACL,QAAQ,CAAC,IAAI,CAAC/B,YAAY,EAAEoC,OAAO,CAAC;EAC3C;EAEArB,MAAMA,CAACiC,KAAsB,EAAEZ,OAA2B,GAAG,CAAC,CAAC,EAAE;IAC/D,IAAI,CAACL,QAAQ,CAAC,IAAI,CAACjB,OAAO,CAACkC,KAAK,EAAE,IAAI,CAACzC,KAAK,CAAC,EAAE6B,OAAO,CAAC;EACzD;EAEAnB,OAAOA,CAACC,IAAO,EAAE;IACf,OAAO,IAAI,CAACF,QAAQ,CAACE,IAAI,CAAC;EAC5B;EAEAgB,KAAKA,CAACxC,MAA2C,EAAE;IACjD,MAAM;MACJ6B,UAAU;MACVH,QAAQ;MACRD,OAAO;MACPG,MAAM;MACND,MAAM;MACNlB,QAAQ,EAAEC,OAAO;MACjBU,OAAO,EAAEC,MAAM;MACfV,KAAK,EAAEC,IAAI;MACXI,gBAAgB,EAAEC,eAAe;MACjCC,QAAQ,EAAEC,OAAO;MACjBL,cAAc,EAAEC,aAAa;MAC7BT,YAAY;MACZO,KAAK,EAAEL,YAAY;MACnBsB,OAAO;MACPzB,UAAU;MACVD;IACF,CAAC,GAAG,IAAI;IACR,OAAO,IAAIN,iBAAiB,CAAI;MAC9B+B,UAAU;MACVH,QAAQ;MACRD,OAAO;MACPG,MAAM;MACND,MAAM;MACNjB,OAAO;MACPW,MAAM;MACNT,IAAI;MACJK,eAAe;MACfE,OAAO;MACPJ,aAAa;MACbT,YAAY;MACZE,YAAY;MACZsB,OAAO;MACPzB,UAAU;MACVD,IAAI;MACJ,GAAGJ;IACL,CAAC,CAAC;EACJ;AACF;AAACuD,OAAA,CAAAzD,iBAAA,GAAAA,iBAAA;AAEM,MAAM0D,YAAY,GAAOxD,MAAkC,IAChE,IAAIF,iBAAiB,CAACE,MAAM,CAAC;AAACuD,OAAA,CAAAC,YAAA,GAAAA,YAAA"}
1
+ {"version":3,"names":["_events","require","_mobx","CustomFilterState","constructor","params","_defineProperty2","default","EventEmitter","name","persistent","defaultValue","_value","initialValue","_isEmpty","isEmpty","_size","size","value","_toQueryString","toQueryString","_fromQueryString","fromQueryString","_toArray","toArray","_remove","remove","_hasDiff","hasDiff","data","itemKey","itemName","decode","encode","entityName","matches","equals","makeObservable","observable","ref","computed","reset","action","setValue","changeValue","scheduleRefresh","clone","emitEvents","options","event","events","emit","refresh","JSON","stringify","applyFromQueryString","str","raw","parse","e","items","exports","customFilter"],"sources":["../../../../src/state/CustomFilterState/CustomFilterState.ts"],"sourcesContent":["import { EventEmitter } from 'events';\nimport { action, computed, makeObservable, observable } from 'mobx';\nimport {\n ChangeValueOptions,\n Filter,\n FilterEvents,\n FilterItem,\n FilterStateBaseParams,\n} from '../../model';\n\nexport interface CustomFilterStateParams<T> extends FilterStateBaseParams<T> {\n /**\n * The value to set the value to, when clearing the filter.\n */\n defaultValue: T;\n /**\n * Indicates whether nothing is selected.<br>\n * For example, when implementing a range filter, when both minimum and maximum inputs are empty\n */\n isEmpty: (value: T) => boolean;\n /**\n * Indicates the number of effective filters.<br>\n * For example, when implementing a range filter, 1 when only minimum/maximum are entered, 2 - when both entered.\n * @default A function that 0 when `isEmpty` returns true, and 1 otherwise.\n */\n size?: (value: T) => number;\n /**\n * Convert the filter value to a string, to be stored in a URL.\n */\n toQueryString?: (value: T) => string;\n /**\n * Convert the a string value to the filter value, to be retrieved from a URL.\n */\n fromQueryString?: (str: string) => T;\n\n /**\n * Convert a unknown object to a T.<br>\n * If the function returns null, the item will be skipped when we try to deserializate it from an array.\n * @param value\n */\n readonly decode: (value: unknown) => T;\n /**\n * Return a simplified form of an item for serialization.\n * @param value\n */\n readonly encode: (value: T) => unknown;\n\n /**\n * Flatten the correct selection to an array, to be shown in the table sub-toolbar in a tag list.\n * Usually this will return an array with a single item, but it gives control when we want to show more than a 1 tag in the tag list.\n */\n toArray: (value: T) => FilterItem<T>[];\n /**\n * Remove a tag from the tag list.\n * @default A function that returns `defaultValue`.\n */\n remove?: (item: FilterItem<T>[], value: T) => T;\n /**\n * Indicates whether current filter value is different than `data`\n */\n hasDiff?: (data: T) => boolean;\n /**\n * Indicates whether an item matches the current value of the filter\n */\n matches?: (item: FilterItem<T>, value: T) => boolean;\n\n equals?: (item1: FilterItem<T>, item2: FilterItem<T>) => boolean;\n}\n\nexport class CustomFilterState<T> implements Filter<T> {\n name: string;\n persistent;\n defaultValue: T;\n _value: T;\n private readonly _isEmpty: CustomFilterStateParams<T>['isEmpty'];\n private readonly _size: (value: T) => number;\n private readonly _toQueryString?: CustomFilterStateParams<T>['toQueryString'];\n private readonly _fromQueryString?: CustomFilterStateParams<T>['fromQueryString'];\n private readonly _toArray: CustomFilterStateParams<T>['toArray'];\n private readonly _remove;\n private readonly _hasDiff;\n readonly decode;\n readonly encode;\n\n readonly itemKey: (item: FilterItem<T>) => string;\n readonly itemName: (item: FilterItem<T>) => string;\n readonly entityName: (pluralization: number) => string;\n readonly matches: (item: FilterItem<T>, value: T) => boolean;\n readonly equals?: (item1: FilterItem<T>, item2: FilterItem<T>) => boolean;\n\n readonly events = new EventEmitter() as FilterEvents;\n\n constructor(params: Readonly<CustomFilterStateParams<T>>) {\n this.name = params.name ?? '';\n this.persistent = params.persistent;\n this.defaultValue = params.defaultValue;\n this._value = params.initialValue ?? params.defaultValue;\n this._isEmpty = params.isEmpty;\n this._size = params.size ?? ((value) => (this._isEmpty(value) ? 0 : 1));\n this._toQueryString = params.toQueryString;\n this._fromQueryString = params.fromQueryString;\n this._toArray = params.toArray;\n this._remove = params.remove ?? (() => this.defaultValue);\n this._hasDiff = params.hasDiff ?? ((data) => data !== this.value);\n this.itemKey = params.itemKey;\n this.itemName = params.itemName;\n this.decode = params.decode;\n this.encode = params.encode;\n this.entityName = params.entityName ?? (() => '');\n this.matches = params.matches ?? (() => false);\n this.equals = params.equals;\n\n makeObservable(this, {\n _value: observable.ref,\n persistent: observable.ref,\n isEmpty: computed,\n size: computed,\n value: computed,\n reset: action,\n setValue: action,\n changeValue: action,\n scheduleRefresh: action,\n clone: action,\n });\n }\n\n get value() {\n return this._value;\n }\n\n get toArray() {\n return this._toArray(this._value);\n }\n\n get isEmpty() {\n return this._isEmpty(this.value);\n }\n\n get size() {\n return this._size(this.value);\n }\n\n setValue(value: T, { emitEvents, ...options }: ChangeValueOptions = {}) {\n this._value = value;\n if (emitEvents) {\n for (const event of emitEvents) {\n this.events.emit(event, options);\n }\n }\n }\n\n changeValue(\n value: T,\n { emitEvents = [], ...options }: ChangeValueOptions = {},\n ) {\n this.setValue(value, { ...options, emitEvents: ['change', ...emitEvents] });\n }\n\n refresh(value: T, options?: ChangeValueOptions) {\n this.changeValue(value, { ...options, emitEvents: ['refresh'] });\n }\n\n scheduleRefresh(value: T) {\n this.changeValue(value, { emitEvents: ['scheduleRefresh'] });\n }\n\n get toQueryString() {\n const { _toQueryString, encode, value } = this;\n if (_toQueryString) {\n return _toQueryString(value);\n }\n\n return JSON.stringify(encode(value));\n }\n\n applyFromQueryString(str: string) {\n const { _fromQueryString, decode } = this;\n\n if (_fromQueryString) {\n this.setValue(_fromQueryString(str));\n } else {\n try {\n const raw = JSON.parse(str) as unknown;\n this.setValue(decode(raw));\n } catch (e) {}\n }\n }\n\n reset(options: ChangeValueOptions = {}) {\n this.setValue(this.defaultValue, options);\n }\n\n remove(items: FilterItem<T>[], options: ChangeValueOptions = {}) {\n this.setValue(this._remove(items, this.value), options);\n }\n\n hasDiff(data: T) {\n return this._hasDiff(data);\n }\n\n clone(params: Partial<CustomFilterStateParams<T>>) {\n const {\n entityName,\n itemName,\n itemKey,\n encode,\n decode,\n _isEmpty: isEmpty,\n _remove: remove,\n _size: size,\n _fromQueryString: fromQueryString,\n _toArray: toArray,\n _toQueryString: toQueryString,\n defaultValue,\n value: initialValue,\n matches,\n persistent,\n name,\n } = this;\n return new CustomFilterState<T>({\n entityName,\n itemName,\n itemKey,\n encode,\n decode,\n isEmpty,\n remove,\n size,\n fromQueryString,\n toArray,\n toQueryString,\n defaultValue,\n initialValue,\n matches,\n persistent,\n name,\n ...params,\n });\n }\n}\n\nexport const customFilter = <T>(params: CustomFilterStateParams<T>) =>\n new CustomFilterState(params);\n"],"mappings":"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"}