@wix/bex-core 1.411.0 → 1.413.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 (67) hide show
  1. package/dist/cjs/assets/locale/messages_da.json +1 -1
  2. package/dist/cjs/assets/locale/messages_de.json +1 -1
  3. package/dist/cjs/assets/locale/messages_it.json +14 -14
  4. package/dist/cjs/assets/locale/messages_no.json +6 -6
  5. package/dist/cjs/assets/locale/messages_pl.json +1 -1
  6. package/dist/cjs/assets/locale/messages_pt.json +3 -3
  7. package/dist/cjs/model/filter.js.map +1 -1
  8. package/dist/cjs/services/createComponentSettings.js +5 -5
  9. package/dist/cjs/services/createComponentSettings.js.map +1 -1
  10. package/dist/cjs/services/dataExtensionService.js.map +1 -1
  11. package/dist/cjs/state/ArrayFilterState/ArrayFilterState.js +2 -0
  12. package/dist/cjs/state/ArrayFilterState/ArrayFilterState.js.map +1 -1
  13. package/dist/cjs/state/CustomFilterState/CustomFilterState.js +2 -0
  14. package/dist/cjs/state/CustomFilterState/CustomFilterState.js.map +1 -1
  15. package/dist/cjs/state/DataExtensionState.js +1 -7
  16. package/dist/cjs/state/DataExtensionState.js.map +1 -1
  17. package/dist/cjs/state/RangeFilterState/RangeFilterState.js +51 -14
  18. package/dist/cjs/state/RangeFilterState/RangeFilterState.js.map +1 -1
  19. package/dist/cjs/state/RangeFilterState/dateRangeUtils.js +130 -0
  20. package/dist/cjs/state/RangeFilterState/dateRangeUtils.js.map +1 -0
  21. package/dist/cjs/state/RangeFilterState/index.js +6 -0
  22. package/dist/cjs/state/RangeFilterState/index.js.map +1 -1
  23. package/dist/cjs/state/StringFilterState/StringFilterState.js +2 -0
  24. package/dist/cjs/state/StringFilterState/StringFilterState.js.map +1 -1
  25. package/dist/esm/assets/locale/messages_da.json +1 -1
  26. package/dist/esm/assets/locale/messages_de.json +1 -1
  27. package/dist/esm/assets/locale/messages_it.json +14 -14
  28. package/dist/esm/assets/locale/messages_no.json +6 -6
  29. package/dist/esm/assets/locale/messages_pl.json +1 -1
  30. package/dist/esm/assets/locale/messages_pt.json +3 -3
  31. package/dist/esm/services/createComponentSettings.js +5 -5
  32. package/dist/esm/services/createComponentSettings.js.map +1 -1
  33. package/dist/esm/services/dataExtensionService.js.map +1 -1
  34. package/dist/esm/state/ArrayFilterState/ArrayFilterState.js +1 -0
  35. package/dist/esm/state/ArrayFilterState/ArrayFilterState.js.map +1 -1
  36. package/dist/esm/state/CustomFilterState/CustomFilterState.js +1 -0
  37. package/dist/esm/state/CustomFilterState/CustomFilterState.js.map +1 -1
  38. package/dist/esm/state/DataExtensionState.js +1 -9
  39. package/dist/esm/state/DataExtensionState.js.map +1 -1
  40. package/dist/esm/state/RangeFilterState/RangeFilterState.js +50 -22
  41. package/dist/esm/state/RangeFilterState/RangeFilterState.js.map +1 -1
  42. package/dist/esm/state/RangeFilterState/dateRangeUtils.js +107 -0
  43. package/dist/esm/state/RangeFilterState/dateRangeUtils.js.map +1 -0
  44. package/dist/esm/state/RangeFilterState/index.js +1 -0
  45. package/dist/esm/state/RangeFilterState/index.js.map +1 -1
  46. package/dist/esm/state/StringFilterState/StringFilterState.js +1 -0
  47. package/dist/esm/state/StringFilterState/StringFilterState.js.map +1 -1
  48. package/dist/types/model/filter.d.ts +5 -0
  49. package/dist/types/model/filter.d.ts.map +1 -1
  50. package/dist/types/services/createComponentSettings.d.ts.map +1 -1
  51. package/dist/types/services/dataExtensionService.d.ts +1 -2
  52. package/dist/types/services/dataExtensionService.d.ts.map +1 -1
  53. package/dist/types/state/ArrayFilterState/ArrayFilterState.d.ts +2 -0
  54. package/dist/types/state/ArrayFilterState/ArrayFilterState.d.ts.map +1 -1
  55. package/dist/types/state/CustomFilterState/CustomFilterState.d.ts +2 -0
  56. package/dist/types/state/CustomFilterState/CustomFilterState.d.ts.map +1 -1
  57. package/dist/types/state/DataExtensionState.d.ts +0 -1
  58. package/dist/types/state/DataExtensionState.d.ts.map +1 -1
  59. package/dist/types/state/RangeFilterState/RangeFilterState.d.ts +16 -1
  60. package/dist/types/state/RangeFilterState/RangeFilterState.d.ts.map +1 -1
  61. package/dist/types/state/RangeFilterState/dateRangeUtils.d.ts +31 -0
  62. package/dist/types/state/RangeFilterState/dateRangeUtils.d.ts.map +1 -0
  63. package/dist/types/state/RangeFilterState/index.d.ts +1 -0
  64. package/dist/types/state/RangeFilterState/index.d.ts.map +1 -1
  65. package/dist/types/state/StringFilterState/StringFilterState.d.ts +2 -0
  66. package/dist/types/state/StringFilterState/StringFilterState.d.ts.map +1 -1
  67. package/package.json +2 -2
@@ -346,7 +346,7 @@
346
346
  "cairo.table.custom-columns.hidden.disabled.tooltip": "Denne kolonne kan ikke skjules.",
347
347
  "cairo.entityPage.saveError-offline.toast.description": "Du er offline, og dine ændringer blev ikke gemt. Tjek din internetforbindelse.",
348
348
  "cairo.customFields.fieldType.Time.placeholder": "Vælg et tidspunkt",
349
- "cairo.tags.manageTags.modal.list.input.placeholder": "Indtast tagnavn",
349
+ "cairo.tags.manageTags.modal.list.input.placeholder": "Indtast tag-navn",
350
350
  "cairo.manageView.Rename.CTA": "Omdøb",
351
351
  "cairo.bulkSelected.withMaxNumber": "Du har valgt det maksimale antal.",
352
352
  "cairo.export.cancelMessage": "Eksporten er ikke gennemført, og dine data downloades ikke.",
@@ -67,7 +67,7 @@
67
67
  "cairo.sortableColumns.notification.undo": "Rückgängig",
68
68
  "cairo.filtersPanel.saveView.button": "Ansicht speichern",
69
69
  "cairo.dragAndDrop.leaveSite.modal.title": "Seite wirklich schließen?",
70
- "cairo.tags.manageTags.modal.search.placeholder": "Tags suchen ...",
70
+ "cairo.tags.manageTags.modal.search.placeholder": "Tags durchsuchen ...",
71
71
  "cairo.customFields.fieldType.dateAndTime": "Datum und Uhrzeit",
72
72
  "cairo.search.Tab.noresults.text": "Suche in einem anderen Tab oder starte eine neue Suche.",
73
73
  "cairo.viewDropdown.unsavedView.status": "Nicht gespeicherte Ansicht",
@@ -5,7 +5,7 @@
5
5
  "cairo.table.deleteViewModal.title": "Eliminare la vista?",
6
6
  "cairo.table.advanced-sorting.ascending.order": "Ascendente",
7
7
  "cairo.table.saveViewModal.title": "Salva vista",
8
- "cairo.customFields.fieldType.numberDecimal.placeholder": "ad es: 25,50",
8
+ "cairo.customFields.fieldType.numberDecimal.placeholder": "es: 25,50",
9
9
  "cairo.tags.popover.tagCreated.toast.success": "Tag creato.",
10
10
  "cairo.dragAndDrop.list-aria-label.sr": "Per riordinare gli elementi, premi la barra spaziatrice per selezionarne uno e usa i tasti freccia per trascinarlo; per rilasciarlo, usa di nuovo la barra spaziatrice. Per annullare, premi il tasto \"ESC\" o \"TAB\".",
11
11
  "cairo.customFields.addCustomField.modal.add.CTA": "Aggiungi campo",
@@ -46,7 +46,7 @@
46
46
  "cairo.customFields.fieldType.dropdownList.addOption.CTA": "Aggiungi opzione",
47
47
  "cairo.dragAndDrop.leaveSite.modal.cancel.CTA": "Annulla",
48
48
  "cairo.tags.manageTags.modal.deleteModal.delete.CTA": "Elimina",
49
- "cairo.customFields.fieldType.dropdownList.placeholder": "Es.: Italia",
49
+ "cairo.customFields.fieldType.dropdownList.placeholder": "es.: Italia",
50
50
  "cairo.tags.manageTags.modal.deleteModal.cancel.CTA": "Annulla",
51
51
  "cairo.dragAndDrop.discardChanges.CTA": "Annulla",
52
52
  "cairo.customFields.fieldType.dateAndTime.invalid.value": "Valore non valido",
@@ -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",
@@ -140,7 +140,7 @@
140
140
  "cairo.search.noresults.title": "Nessun risultato trovato",
141
141
  "cairo.tags.applyChanges.toast.success": "Tag aggiornati.",
142
142
  "cairo.bulkSelected": "{num, plural, one {1 selezionato} other {{num,number} selezionati}}",
143
- "cairo.customFields.fieldType.numberInteger.Name.placeholder": "ad es: età",
143
+ "cairo.customFields.fieldType.numberInteger.Name.placeholder": "es: età",
144
144
  "cairo.export.serverErrorMessage": "A causa di un errore temporaneo del server, è impossibile completare l'esportazione. Contatta l'assistenza se hai bisogno di aiuto.",
145
145
  "cairo.toast.undone": "Azione annullata.",
146
146
  "cairo.picker.createNew.button.tooltip": "Hai selezionato il numero massimo di elementi. Deseleziona un elemento per crearne uno nuovo.",
@@ -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",
@@ -211,7 +211,7 @@
211
211
  "cairo.table.advanced-sorting.cta": "Aggiungi nuovo ordinamento",
212
212
  "cairo.customFields.modal.maxFieldsError": "Hai raggiunto il limite di 10k. <supportLink>Contatta l'Assistenza clienti</supportLink>",
213
213
  "cairo.export.export": "Esporta",
214
- "cairo.customFields.fieldType.dropdownList.Name.placeholder": "Es.: Paese",
214
+ "cairo.customFields.fieldType.dropdownList.Name.placeholder": "es.: Paese",
215
215
  "cairo.selectorModal.searchEmptyState.changeFilter.subtitle": "Prova a modificare il filtro.",
216
216
  "cairo.tags.collectionPage.add.CTA": "Assegna tag",
217
217
  "cairo.tags.collectionPage.popover.emptyState.body": "I tag ti aiutano a filtrare e a organizzare i tuoi elementi. Crea il tuo primo tag digitandolo nella ricerca.",
@@ -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>",
@@ -346,7 +346,7 @@
346
346
  "cairo.table.custom-columns.hidden.disabled.tooltip": "Questa colonna non può essere nascosta.",
347
347
  "cairo.entityPage.saveError-offline.toast.description": "Sei offline e le modifiche non sono state salvate. Verifica la connessione a Internet.",
348
348
  "cairo.customFields.fieldType.Time.placeholder": "Seleziona un orario",
349
- "cairo.tags.manageTags.modal.list.input.placeholder": "Inserisci nome tag",
349
+ "cairo.tags.manageTags.modal.list.input.placeholder": "Inserisci il nome del tag",
350
350
  "cairo.manageView.Rename.CTA": "Rinomina",
351
351
  "cairo.bulkSelected.withMaxNumber": "Hai selezionato il numero massimo.",
352
352
  "cairo.export.cancelMessage": "L'esportazione non è completa e i dati non saranno scaricati.",
@@ -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.",
@@ -401,13 +401,13 @@
401
401
  "cairo.table.advanced-sorting.button.cta": "Ordina",
402
402
  "cairo.manageView.Rename.disabled.predefinedView.tooltip": "Questa è una visualizzazione predefinita. Per rinominarla, clicca su Salva nuova vista.",
403
403
  "cairo.customFields.addCustomField.modal.fieldType.placeholder": "Seleziona tipo",
404
- "cairo.customFields.fieldType.checkbox.Name.placeholder": "Es.: Iscritto",
404
+ "cairo.customFields.fieldType.checkbox.Name.placeholder": "es.: Iscritto",
405
405
  "cairo.dragAndDrop.live-region.itemDropped.sr": "Rilasciato in posizione {currentNumber}.",
406
406
  "cairo.tags.manageTags.modal.add.CTA": "Crea tag",
407
407
  "cairo.entityPage.widgetError.TPAconnectionFail.title": "Impossibile caricare la sezione",
408
408
  "cairo.error.tryAgain.cta": "Riprova",
409
409
  "cairo.tags.filterPanel.dropdown.placeholder": "Seleziona i tag...",
410
- "cairo.customFields.fieldType.date.Name.placeholder": "Per es: data di nascita",
410
+ "cairo.customFields.fieldType.date.Name.placeholder": "es: data di nascita",
411
411
  "cairo.customFields.addCustomField.dropdownList.emptyFieldName.error": "Aggiungi un'opzione.",
412
412
  "cairo.customFields.addCustomField.modal.advancedSettings.externalApps": "App installate",
413
413
  "cairo.export.successMessage": "Download del file in corso. Non funziona?",
@@ -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",
@@ -149,7 +149,7 @@
149
149
  "cairo.filtersPanel.date.title": "Dato",
150
150
  "cairo.manageView.setAsDefault.reset.success.toast": "Standardvisningen din ble tilbakestilt.",
151
151
  "Cairo.tags.manageTags.modal.toast.undo.CTA": "Angre",
152
- "cairo.customFields.addCustomField.CTA": "Legg til egendefinert felt",
152
+ "cairo.customFields.addCustomField.CTA": "Legg til felt",
153
153
  "cairo.customFields.addCustomField.modal.fieldType": "Felttype",
154
154
  "cairo.filtersPanel.done.button": "Ferdig",
155
155
  "cairo.emptyState.subtitle.nothingAvailable": "Vi kunne ikke finne noe.",
@@ -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.",
@@ -189,7 +189,7 @@
189
189
  "cairo.customFields.fieldType.checkbox": "Avmerkingsboks",
190
190
  "cairo.filtersPanel.date.custom": "Egendefinert",
191
191
  "cairo.customFields.modal.networkError": "Feltet ble ikke lagt til på grunn av en nettverksfeil. Sjekk internettilkoblingen din og prøv på nytt.",
192
- "cairo.customFields.manageFields.CTA": "Administrer felt",
192
+ "cairo.customFields.manageFields.CTA": "Administrer",
193
193
  "cairo.appliedFilters": "{num, plural, =0 {Ingen filtre brukt} one {{num,number} filter brukt} other {{num,number} filtre brukt}}",
194
194
  "cairo.dragAndDrop.reorderMode.toast.success": "Order has been updated",
195
195
  "cairo.customFields.addCustomField.modal.sameKey.error": "Denne nøkkelen finnes allerede. Prøv en annen.",
@@ -354,7 +354,7 @@
354
354
  "cairo.tags.collectionPage.popover.create.CTA": "Opprett «{tagName}»",
355
355
  "cairo.entityPage.header.save.CTA": "Lagre",
356
356
  "cairo.search.filter.nothingMatches.text": "Prøv et nytt søk eller endre filtrene dine.",
357
- "cairo.tags.manageTags.modal.toast.rename.success": "Tagg endret navn.",
357
+ "cairo.tags.manageTags.modal.toast.rename.success": "Endret navn på tagg.",
358
358
  "cairo.customFields.edit.CTA": "Rediger",
359
359
  "cairo.customFields.maxFields": "Du kan legge til opptil 10 egendefinerte felt.",
360
360
  "cairo.offline": "Du er for øyeblikket frakoblet.",
@@ -409,7 +409,7 @@
409
409
  "cairo.tags.filterPanel.dropdown.placeholder": "Wybierz tagi...",
410
410
  "cairo.customFields.fieldType.date.Name.placeholder": "np. data urodzenia",
411
411
  "cairo.customFields.addCustomField.dropdownList.emptyFieldName.error": "Dodaj opcję.",
412
- "cairo.customFields.addCustomField.modal.advancedSettings.externalApps": "Zainstalowane aplikacje",
412
+ "cairo.customFields.addCustomField.modal.advancedSettings.externalApps": "Zainst. aplikacje",
413
413
  "cairo.export.successMessage": "Pobieranie wkrótce zostanie rozpoczęte. Nie rozpoczęło się?",
414
414
  "cairo.customFields.entityPage.subtitle": "Użyj pól niestandardowych, aby przechowywać i zbierać więcej informacji.",
415
415
  "cairo.manageView.setAsDefault.success.toast": "Widok „{viewName}” został ustawiony jako domyślny.",
@@ -223,7 +223,7 @@
223
223
  "cairo.customFields.archive.CTA": "Arquivar",
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": "Permissões",
226
- "cairo.tags.manageTags.modal.deleteModal.body": "<text>A tag <name>\"{name}\"</name> pode estar em uso. Excluir esta tag também a removerá de todos os itens aos quais ela está atribuída.</text>",
226
+ "cairo.tags.manageTags.modal.deleteModal.body": "<text>A tag <name>\"{name}\"</name> pode estar em uso. Excluí-la também a removerá de todos os itens aos quais ela está atribuída.</text>",
227
227
  "cairo.sortableColumns.modal.CTA": "Ordenar",
228
228
  "cairo.filtersPanel.noAppliedFilters.label": "Nenhum filtro aplicado",
229
229
  "cairo.dragAndDrop.discardChanges.description": "Qualquer alteração feita não será salva.",
@@ -283,7 +283,7 @@
283
283
  "cairo.tags.tagsWidget.title": "Tags",
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
- "cairo.tags.manageTags.modal.deleteModal.title": "Excluir esta tag?",
286
+ "cairo.tags.manageTags.modal.deleteModal.title": "Excluir essa tag?",
287
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}}",
@@ -392,7 +392,7 @@
392
392
  "cairo.manageView.setAsDefault.tooltip": "Para definir esta visualização como padrão, salve as alterações ou salve como uma nova visualização.",
393
393
  "cairo.tags.collectionPage.popover.search.placeholder": "Buscar tags",
394
394
  "cairo.export.sessionExpiredMessage": "Sua sessão expirou. Atualize a página e faça login novamente.",
395
- "cairo.tags.collectionPage.applyChanges.CTA": "OK",
395
+ "cairo.tags.collectionPage.applyChanges.CTA": "Aplicar",
396
396
  "cairo.customFields.addCustomField.modal.fieldName.placeholder": "Insira um nome",
397
397
  "cairo.a11y.liveRegion.resultsFound": "{num, plural, =0 {Nenhum resultado encontrado} one {1 resultado encontrado} other {{num,number} resultados encontrados}}",
398
398
  "cairo.table.listView": "Lista",
@@ -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":""}
@@ -9,14 +9,14 @@ const createComponentSettings = ({
9
9
  environment
10
10
  }) => {
11
11
  return options => {
12
- const dataCapsuleOptions = {
13
- namespace: options.namespace,
14
- scope: (0, _mapGuidComponentIdToNonGuid.mapGuidComponentIdToNonGuid)(environment.componentId || environment.artifactId)
15
- };
16
12
  const {
17
13
  dataCapsule: _dataCapsule
18
14
  } = createEssentials({
19
- dataCapsule: dataCapsuleOptions
15
+ dataCapsule: {
16
+ storageStrategy: 'userPreferences',
17
+ namespace: options.namespace,
18
+ scope: (0, _mapGuidComponentIdToNonGuid.mapGuidComponentIdToNonGuid)(environment.componentId || environment.artifactId)
19
+ }
20
20
  });
21
21
  const componentSettings = _dataCapsule;
22
22
  componentSettings.storageStrategy = new _DataCapsuleMergeStrategy.DataCapsuleMergeStrategy({
@@ -1 +1 @@
1
- {"version":3,"names":["_DataCapsuleMergeStrategy","require","_mapGuidComponentIdToNonGuid","createComponentSettings","createEssentials","environment","options","dataCapsuleOptions","namespace","scope","mapGuidComponentIdToNonGuid","componentId","artifactId","dataCapsule","_dataCapsule","componentSettings","storageStrategy","DataCapsuleMergeStrategy","storage","exports"],"sources":["../../../src/services/createComponentSettings.ts"],"sourcesContent":["import {\n BaseStorage,\n BaseStorageOptions,\n DataCapsule,\n} from '@wix/fe-essentials/data-capsule';\nimport { CreateComponentSettings } from '../model';\nimport { DataCapsuleMergeStrategy } from './DataCapsuleMergeStrategy';\nimport { mapGuidComponentIdToNonGuid } from './mapGuidComponentIdToNonGuid';\n\nexport const createComponentSettings: CreateComponentSettings = ({\n createEssentials,\n environment,\n}) => {\n return (options) => {\n const dataCapsuleOptions = {\n namespace: options.namespace,\n scope: mapGuidComponentIdToNonGuid(\n environment.componentId || environment.artifactId,\n ),\n };\n\n const { dataCapsule: _dataCapsule } = createEssentials({\n dataCapsule: dataCapsuleOptions,\n });\n\n const componentSettings = _dataCapsule as unknown as Omit<\n DataCapsule,\n 'storageStrategy'\n > & {\n storageStrategy: BaseStorage<BaseStorageOptions>;\n };\n\n componentSettings.storageStrategy = new DataCapsuleMergeStrategy({\n storage: componentSettings.storageStrategy,\n });\n\n return _dataCapsule;\n };\n};\n"],"mappings":";;;;AAMA,IAAAA,yBAAA,GAAAC,OAAA;AACA,IAAAC,4BAAA,GAAAD,OAAA;AAEO,MAAME,uBAAgD,GAAGA,CAAC;EAC/DC,gBAAgB;EAChBC;AACF,CAAC,KAAK;EACJ,OAAQC,OAAO,IAAK;IAClB,MAAMC,kBAAkB,GAAG;MACzBC,SAAS,EAAEF,OAAO,CAACE,SAAS;MAC5BC,KAAK,EAAE,IAAAC,wDAA2B,EAChCL,WAAW,CAACM,WAAW,IAAIN,WAAW,CAACO,UACzC;IACF,CAAC;IAED,MAAM;MAAEC,WAAW,EAAEC;IAAa,CAAC,GAAGV,gBAAgB,CAAC;MACrDS,WAAW,EAAEN;IACf,CAAC,CAAC;IAEF,MAAMQ,iBAAiB,GAAGD,YAKzB;IAEDC,iBAAiB,CAACC,eAAe,GAAG,IAAIC,kDAAwB,CAAC;MAC/DC,OAAO,EAAEH,iBAAiB,CAACC;IAC7B,CAAC,CAAC;IAEF,OAAOF,YAAY;EACrB,CAAC;AACH,CAAC;AAACK,OAAA,CAAAhB,uBAAA,GAAAA,uBAAA"}
1
+ {"version":3,"names":["_DataCapsuleMergeStrategy","require","_mapGuidComponentIdToNonGuid","createComponentSettings","createEssentials","environment","options","dataCapsule","_dataCapsule","storageStrategy","namespace","scope","mapGuidComponentIdToNonGuid","componentId","artifactId","componentSettings","DataCapsuleMergeStrategy","storage","exports"],"sources":["../../../src/services/createComponentSettings.ts"],"sourcesContent":["import {\n BaseStorage,\n BaseStorageOptions,\n DataCapsule,\n} from '@wix/fe-essentials/data-capsule';\nimport { CreateComponentSettings } from '../model';\nimport { DataCapsuleMergeStrategy } from './DataCapsuleMergeStrategy';\nimport { mapGuidComponentIdToNonGuid } from './mapGuidComponentIdToNonGuid';\n\nexport const createComponentSettings: CreateComponentSettings = ({\n createEssentials,\n environment,\n}) => {\n return (options) => {\n const { dataCapsule: _dataCapsule } = createEssentials({\n dataCapsule: {\n storageStrategy: 'userPreferences',\n namespace: options.namespace,\n scope: mapGuidComponentIdToNonGuid(\n environment.componentId || environment.artifactId,\n ),\n },\n });\n\n const componentSettings = _dataCapsule as unknown as Omit<\n DataCapsule,\n 'storageStrategy'\n > & {\n storageStrategy: BaseStorage<BaseStorageOptions>;\n };\n\n componentSettings.storageStrategy = new DataCapsuleMergeStrategy({\n storage: componentSettings.storageStrategy,\n });\n\n return _dataCapsule;\n };\n};\n"],"mappings":";;;;AAMA,IAAAA,yBAAA,GAAAC,OAAA;AACA,IAAAC,4BAAA,GAAAD,OAAA;AAEO,MAAME,uBAAgD,GAAGA,CAAC;EAC/DC,gBAAgB;EAChBC;AACF,CAAC,KAAK;EACJ,OAAQC,OAAO,IAAK;IAClB,MAAM;MAAEC,WAAW,EAAEC;IAAa,CAAC,GAAGJ,gBAAgB,CAAC;MACrDG,WAAW,EAAE;QACXE,eAAe,EAAE,iBAAiB;QAClCC,SAAS,EAAEJ,OAAO,CAACI,SAAS;QAC5BC,KAAK,EAAE,IAAAC,wDAA2B,EAChCP,WAAW,CAACQ,WAAW,IAAIR,WAAW,CAACS,UACzC;MACF;IACF,CAAC,CAAC;IAEF,MAAMC,iBAAiB,GAAGP,YAKzB;IAEDO,iBAAiB,CAACN,eAAe,GAAG,IAAIO,kDAAwB,CAAC;MAC/DC,OAAO,EAAEF,iBAAiB,CAACN;IAC7B,CAAC,CAAC;IAEF,OAAOD,YAAY;EACrB,CAAC;AACH,CAAC;AAACU,OAAA,CAAAf,uBAAA,GAAAA,uBAAA"}
@@ -1 +1 @@
1
- {"version":3,"names":["_types","require","_http","DataExtensionSchemaService","toSchemaType","type","format","maxLength","items","Error","toCustomType","field","hasOwnProperty","toCustomField","schema","key","_schema$jsonSchema","property","jsonSchema","properties","title","id","constructor","params","_defineProperty2","default","httpClient","addCustomField","_params$schema","_params$schema2","_params$schema3","userFieldsNamespace","form","name","readApps","readUsers","writeApps","writeUsers","fqdn","permissions","read","write","namespace","request","updateDataExtensionSchema","dataExtensionSchema","createDataExtensionSchema","then","res","data","archiveCustomField","_params$schema4","_params$schema5","fetchSchemas","listDataExtensionSchemas","namespaces","fields","RequestedField","ARCHIVED","exports"],"sources":["../../../src/services/dataExtensionService.ts"],"sourcesContent":["import {\n DataExtensionSchema,\n RequestedField,\n} from '@wix/bex-utils/@wix/ambassador-data-extensions-v1-data-extension-schema/types';\nimport {\n createDataExtensionSchema,\n updateDataExtensionSchema,\n listDataExtensionSchemas,\n} from '@wix/bex-utils/@wix/ambassador-data-extensions-v1-data-extension-schema/http';\nimport { CustomFieldForm } from '../state';\nimport { CairoEssentials } from '../model';\n\nexport interface DataExtensionSchemaServiceParams {\n readonly httpClient: CairoEssentials['httpClient'];\n}\n\n// server types\nexport type DataExtensionType =\n | 'string'\n | 'number'\n | 'integer'\n | 'boolean'\n | 'array';\n\nexport type DataExtensionFormat = 'date-time' | 'date' | 'single-line';\n\nexport interface DataExtensionField {\n id: string;\n type?: DataExtensionType;\n format?: DataExtensionFormat;\n title?: string;\n maxLength?: number;\n enum?: string[];\n 'x-wix-archived'?: boolean;\n 'x-wix-created-date': string;\n 'x-wix-permissions': {\n read: string[];\n write: string[];\n };\n}\n\n// client types\nexport type CustomFieldType =\n | 'shortText'\n | 'longText'\n | 'date'\n | 'dateTime'\n | 'integer'\n | 'decimal'\n | 'checkbox'\n | 'dropdown';\n\nexport type CustomFieldOrigin =\n | 'Custom columns panel'\n | 'Custom fields panel'\n | 'Custom fields widget'\n | 'external';\n\nexport interface ExtendedFields {\n /**\n * Data Extensions extended fields\n * Key: Namespace\n * Value: extended fields data in Struct format\n */\n namespaces?: {\n _user_fields?: Record<string, any>;\n };\n}\n\nexport interface CustomField {\n id: string;\n type: CustomFieldType;\n label?: string;\n maxLength?: number;\n options?: string[];\n editable: boolean;\n}\n\nexport interface AddFieldParams {\n schema?: DataExtensionSchema;\n fqdn: string;\n form: CustomFieldForm;\n}\n\nexport interface ArchiveFieldParams {\n schema?: DataExtensionSchema;\n fqdn: string;\n id: string;\n}\n\nexport class DataExtensionSchemaService {\n readonly httpClient: CairoEssentials['httpClient'];\n\n readonly userFieldsNamespace = '_user_fields';\n\n static toSchemaType(type?: CustomFieldType) {\n switch (type) {\n case 'shortText':\n return {\n type: 'string',\n format: 'single-line',\n maxLength: 120,\n };\n case 'longText':\n return {\n type: 'string',\n maxLength: 200,\n };\n case 'date':\n return {\n type: 'string',\n format: 'date',\n };\n case 'dateTime':\n return {\n type: 'string',\n format: 'date-time',\n };\n case 'integer':\n return {\n type: 'integer',\n };\n case 'decimal':\n return {\n type: 'number',\n };\n case 'checkbox':\n return {\n type: 'boolean',\n };\n case 'dropdown':\n return {\n type: 'array',\n items: {\n type: 'string',\n },\n };\n default:\n throw new Error(`Unexpected type: ${type}`);\n }\n }\n\n static toCustomType(field: DataExtensionField): CustomFieldType {\n switch (field.type) {\n case 'string':\n if (field.hasOwnProperty('enum')) {\n return 'dropdown';\n }\n\n switch (field.format) {\n case 'date-time':\n return 'dateTime';\n case 'date':\n return 'date';\n case 'single-line':\n return 'shortText';\n default:\n return 'longText';\n }\n case 'number':\n return 'decimal';\n case 'integer':\n return 'integer';\n case 'boolean':\n return 'checkbox';\n case 'array':\n return 'dropdown';\n default:\n return 'shortText';\n }\n }\n\n static toCustomField(\n schema: DataExtensionSchema,\n key: string,\n ): DataExtensionField | undefined {\n const property: DataExtensionField = schema.jsonSchema?.properties?.[key];\n\n if (!property || typeof property !== 'object') {\n return;\n }\n\n if (\n typeof property.title !== 'string' ||\n typeof property.type !== 'string' ||\n typeof property['x-wix-permissions'] !== 'object'\n ) {\n return;\n }\n\n return { ...property, id: key };\n }\n\n constructor(params: DataExtensionSchemaServiceParams) {\n this.httpClient = params.httpClient;\n }\n\n addCustomField(params: AddFieldParams) {\n const { httpClient, userFieldsNamespace } = this;\n const {\n form: { key, name, readApps, readUsers, writeApps, writeUsers },\n fqdn,\n } = params;\n const type = DataExtensionSchemaService.toSchemaType(params.form.type);\n\n const permissions = {\n read: [\n 'users',\n ...(readUsers ? ['users-of-users'] : []),\n ...(readApps ? ['apps'] : []),\n ],\n write: [\n 'users',\n ...(writeUsers ? ['users-of-users'] : []),\n ...(writeApps ? ['apps'] : []),\n ],\n };\n\n const schema: DataExtensionSchema = {\n fqdn,\n namespace: userFieldsNamespace,\n ...params.schema,\n jsonSchema: {\n properties: {\n ...params.schema?.jsonSchema?.properties,\n [key]: {\n ...params.schema?.jsonSchema?.properties[key],\n title: name,\n ...type,\n 'x-wix-permissions': permissions,\n },\n },\n },\n };\n\n const request = params.schema?.id\n ? updateDataExtensionSchema({ dataExtensionSchema: schema })\n : createDataExtensionSchema({ dataExtensionSchema: schema });\n\n return httpClient.request(request).then((res) => res.data);\n }\n\n archiveCustomField(params: ArchiveFieldParams) {\n const { httpClient, userFieldsNamespace } = this;\n const { id, fqdn } = params;\n\n const schema: DataExtensionSchema = {\n fqdn,\n namespace: userFieldsNamespace,\n ...params.schema,\n jsonSchema: {\n properties: {\n ...params.schema?.jsonSchema?.properties,\n [id]: {\n ...params.schema?.jsonSchema?.properties[id],\n 'x-wix-archived': true,\n },\n },\n },\n };\n\n return httpClient\n .request(updateDataExtensionSchema({ dataExtensionSchema: schema }))\n .then((res) => res.data);\n }\n\n fetchSchemas(fqdn: string) {\n const { httpClient } = this;\n\n return httpClient\n .request(\n listDataExtensionSchemas({\n fqdn,\n namespaces: [],\n fields: [RequestedField.ARCHIVED],\n }),\n )\n .then((res) => res.data);\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["_types","require","_http","DataExtensionSchemaService","toSchemaType","type","format","maxLength","items","Error","toCustomType","field","hasOwnProperty","toCustomField","schema","key","_schema$jsonSchema","property","jsonSchema","properties","title","id","constructor","params","_defineProperty2","default","httpClient","addCustomField","_params$schema","_params$schema2","_params$schema3","userFieldsNamespace","form","name","readApps","readUsers","writeApps","writeUsers","fqdn","permissions","read","write","namespace","request","updateDataExtensionSchema","dataExtensionSchema","createDataExtensionSchema","then","res","data","archiveCustomField","_params$schema4","_params$schema5","fetchSchemas","listDataExtensionSchemas","namespaces","fields","RequestedField","ARCHIVED","exports"],"sources":["../../../src/services/dataExtensionService.ts"],"sourcesContent":["import {\n DataExtensionSchema,\n RequestedField,\n} from '@wix/bex-utils/@wix/ambassador-data-extensions-v1-data-extension-schema/types';\nimport {\n createDataExtensionSchema,\n updateDataExtensionSchema,\n listDataExtensionSchemas,\n} from '@wix/bex-utils/@wix/ambassador-data-extensions-v1-data-extension-schema/http';\nimport { CustomFieldForm } from '../state';\nimport { CairoEssentials } from '../model';\n\nexport interface DataExtensionSchemaServiceParams {\n readonly httpClient: CairoEssentials['httpClient'];\n}\n\n// server types\nexport type DataExtensionType =\n | 'string'\n | 'number'\n | 'integer'\n | 'boolean'\n | 'array';\n\nexport interface DataExtensionField {\n id: string;\n type?: DataExtensionType;\n format?: 'date-time' | 'date' | 'single-line' | string;\n title?: string;\n maxLength?: number;\n enum?: string[];\n 'x-wix-archived'?: boolean;\n 'x-wix-created-date': string;\n 'x-wix-permissions': {\n read: string[];\n write: string[];\n };\n}\n\n// client types\nexport type CustomFieldType =\n | 'shortText'\n | 'longText'\n | 'date'\n | 'dateTime'\n | 'integer'\n | 'decimal'\n | 'checkbox'\n | 'dropdown';\n\nexport type CustomFieldOrigin =\n | 'Custom columns panel'\n | 'Custom fields panel'\n | 'Custom fields widget'\n | 'external';\n\nexport interface ExtendedFields {\n /**\n * Data Extensions extended fields\n * Key: Namespace\n * Value: extended fields data in Struct format\n */\n namespaces?: {\n _user_fields?: Record<string, any>;\n };\n}\n\nexport interface CustomField {\n id: string;\n type: CustomFieldType;\n label?: string;\n maxLength?: number;\n options?: string[];\n editable: boolean;\n}\n\nexport interface AddFieldParams {\n schema?: DataExtensionSchema;\n fqdn: string;\n form: CustomFieldForm;\n}\n\nexport interface ArchiveFieldParams {\n schema?: DataExtensionSchema;\n fqdn: string;\n id: string;\n}\n\nexport class DataExtensionSchemaService {\n readonly httpClient: CairoEssentials['httpClient'];\n\n readonly userFieldsNamespace = '_user_fields';\n\n static toSchemaType(type?: CustomFieldType) {\n switch (type) {\n case 'shortText':\n return {\n type: 'string',\n format: 'single-line',\n maxLength: 120,\n };\n case 'longText':\n return {\n type: 'string',\n maxLength: 200,\n };\n case 'date':\n return {\n type: 'string',\n format: 'date',\n };\n case 'dateTime':\n return {\n type: 'string',\n format: 'date-time',\n };\n case 'integer':\n return {\n type: 'integer',\n };\n case 'decimal':\n return {\n type: 'number',\n };\n case 'checkbox':\n return {\n type: 'boolean',\n };\n case 'dropdown':\n return {\n type: 'array',\n items: {\n type: 'string',\n },\n };\n default:\n throw new Error(`Unexpected type: ${type}`);\n }\n }\n\n static toCustomType(field: DataExtensionField): CustomFieldType {\n switch (field.type) {\n case 'string':\n if (field.hasOwnProperty('enum')) {\n return 'dropdown';\n }\n\n switch (field.format) {\n case 'date-time':\n return 'dateTime';\n case 'date':\n return 'date';\n case 'single-line':\n return 'shortText';\n default:\n return 'longText';\n }\n case 'number':\n return 'decimal';\n case 'integer':\n return 'integer';\n case 'boolean':\n return 'checkbox';\n case 'array':\n return 'dropdown';\n default:\n return 'shortText';\n }\n }\n\n static toCustomField(\n schema: DataExtensionSchema,\n key: string,\n ): DataExtensionField | undefined {\n const property: DataExtensionField = schema.jsonSchema?.properties?.[key];\n\n if (!property || typeof property !== 'object') {\n return;\n }\n\n if (\n typeof property.title !== 'string' ||\n typeof property.type !== 'string' ||\n typeof property['x-wix-permissions'] !== 'object'\n ) {\n return;\n }\n\n return { ...property, id: key };\n }\n\n constructor(params: DataExtensionSchemaServiceParams) {\n this.httpClient = params.httpClient;\n }\n\n addCustomField(params: AddFieldParams) {\n const { httpClient, userFieldsNamespace } = this;\n const {\n form: { key, name, readApps, readUsers, writeApps, writeUsers },\n fqdn,\n } = params;\n const type = DataExtensionSchemaService.toSchemaType(params.form.type);\n\n const permissions = {\n read: [\n 'users',\n ...(readUsers ? ['users-of-users'] : []),\n ...(readApps ? ['apps'] : []),\n ],\n write: [\n 'users',\n ...(writeUsers ? ['users-of-users'] : []),\n ...(writeApps ? ['apps'] : []),\n ],\n };\n\n const schema: DataExtensionSchema = {\n fqdn,\n namespace: userFieldsNamespace,\n ...params.schema,\n jsonSchema: {\n properties: {\n ...params.schema?.jsonSchema?.properties,\n [key]: {\n ...params.schema?.jsonSchema?.properties[key],\n title: name,\n ...type,\n 'x-wix-permissions': permissions,\n },\n },\n },\n };\n\n const request = params.schema?.id\n ? updateDataExtensionSchema({ dataExtensionSchema: schema })\n : createDataExtensionSchema({ dataExtensionSchema: schema });\n\n return httpClient.request(request).then((res) => res.data);\n }\n\n archiveCustomField(params: ArchiveFieldParams) {\n const { httpClient, userFieldsNamespace } = this;\n const { id, fqdn } = params;\n\n const schema: DataExtensionSchema = {\n fqdn,\n namespace: userFieldsNamespace,\n ...params.schema,\n jsonSchema: {\n properties: {\n ...params.schema?.jsonSchema?.properties,\n [id]: {\n ...params.schema?.jsonSchema?.properties[id],\n 'x-wix-archived': true,\n },\n },\n },\n };\n\n return httpClient\n .request(updateDataExtensionSchema({ dataExtensionSchema: schema }))\n .then((res) => res.data);\n }\n\n fetchSchemas(fqdn: string) {\n const { httpClient } = this;\n\n return httpClient\n .request(\n listDataExtensionSchemas({\n fqdn,\n namespaces: [],\n fields: [RequestedField.ARCHIVED],\n }),\n )\n .then((res) => res.data);\n }\n}\n"],"mappings":"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"}
@@ -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":"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"}
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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"}
@@ -190,16 +190,10 @@ class DataExtensionState {
190
190
  }
191
191
  return ['string', 'number', 'integer', 'boolean', 'array'].includes(type);
192
192
  }
193
- isSupportedFieldFormat(type, format) {
194
- if (!format) {
195
- return true;
196
- }
197
- return ['date-time', 'date', 'single-line'].includes(format) && type === 'string';
198
- }
199
193
  getAvailableCustomFieldsInSchema(properties, editable) {
200
194
  return Object.keys(properties).filter(key => {
201
195
  const field = properties[key];
202
- return !field['x-wix-archived'] && this.isSupportedFieldType(field.type) && this.isSupportedFieldFormat(field.type, field.format);
196
+ return !field['x-wix-archived'] && this.isSupportedFieldType(field.type);
203
197
  }).sort((a, b) => {
204
198
  const aVal = new Date(properties[a]['x-wix-created-date']);
205
199
  const bVal = new Date(properties[b]['x-wix-created-date']);