@dev.smartpricing/message-composer-layer 4.5.1-next.2 → 4.5.1-next.4

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 (72) hide show
  1. package/README.md +132 -3
  2. package/app/api/automations.ts +74 -0
  3. package/app/api/index.ts +1 -0
  4. package/app/api/messageGroups.ts +5 -1
  5. package/app/app.config.ts +10 -0
  6. package/app/components/Automations/ActionCard.vue +174 -0
  7. package/app/components/Automations/ActionEditor.vue +398 -0
  8. package/app/components/Automations/Actions.vue +148 -0
  9. package/app/components/Automations/CloneModal.vue +78 -0
  10. package/app/components/Automations/Conditions.vue +155 -0
  11. package/app/components/Automations/Create.vue +114 -0
  12. package/app/components/Automations/Data.vue +46 -0
  13. package/app/components/Automations/DeleteModal.vue +80 -0
  14. package/app/components/Automations/Edit.vue +145 -0
  15. package/app/components/Automations/Form.vue +282 -0
  16. package/app/components/Automations/List.vue +370 -0
  17. package/app/components/Automations/PageGate.vue +50 -0
  18. package/app/components/Automations/SaveProblems.vue +54 -0
  19. package/app/components/Automations/Unavailable.vue +71 -0
  20. package/app/components/Automations/UnavailableBadge.vue +35 -0
  21. package/app/components/Common/MessageGroupSelect.vue +30 -1
  22. package/app/components/Composer/EmailComposer.vue +5 -1
  23. package/app/components/Composer/WhatsappComposer.vue +5 -1
  24. package/app/components/Filters/DateInput.vue +57 -0
  25. package/app/components/Filters/Editor.vue +163 -0
  26. package/app/components/Filters/Row.vue +119 -0
  27. package/app/components/Filters/Summary.vue +215 -0
  28. package/app/components/Filters/UnavailableRow.vue +74 -0
  29. package/app/components/Filters/ValueInput.vue +215 -0
  30. package/app/components/Layout/BasePage.vue +2 -0
  31. package/app/components/TemplateList/BaseTable.vue +0 -11
  32. package/app/composables/apiErrorMessages.ts +1 -0
  33. package/app/composables/automationsContext.ts +42 -0
  34. package/app/composables/composerContext.ts +0 -6
  35. package/app/composables/useAutomationClone.ts +33 -0
  36. package/app/composables/useAutomationEditorTrip.ts +77 -0
  37. package/app/composables/useAutomationSaveProblems.ts +82 -0
  38. package/app/composables/useAutomationUnavailable.ts +98 -0
  39. package/app/composables/useAutomationsGate.ts +68 -0
  40. package/app/composables/useBuiltInOptionLists.ts +44 -0
  41. package/app/composables/useEditorTripBack.ts +15 -0
  42. package/app/composables/useMessageGroupWaba.ts +4 -7
  43. package/app/composables/useTemplateOperations.ts +8 -3
  44. package/app/middleware/automations-enabled.ts +12 -0
  45. package/app/pages/automations/[id].vue +87 -0
  46. package/app/pages/automations/index.vue +28 -0
  47. package/app/pages/automations/new.vue +53 -0
  48. package/app/pages/template/email/[id].vue +5 -0
  49. package/app/pages/template/email/create.vue +5 -0
  50. package/app/pages/template/whatsapp/[id].vue +5 -0
  51. package/app/pages/template/whatsapp/create.vue +5 -0
  52. package/app/queries/automations.ts +206 -0
  53. package/app/queries/index.ts +1 -0
  54. package/app/queries/messageGroups.ts +1 -3
  55. package/app/stores/appContext.ts +0 -3
  56. package/app/stores/editorTrip.ts +67 -0
  57. package/app/types/app-config.d.ts +3 -0
  58. package/app/types/tracking.ts +33 -0
  59. package/app/utils/automations/form.ts +389 -0
  60. package/app/utils/automations/metadata.ts +71 -0
  61. package/app/utils/automations/unavailable.ts +90 -0
  62. package/app/utils/filters/data/countries.json +998 -0
  63. package/app/utils/filters/data/languages.json +754 -0
  64. package/app/utils/filters/rows.ts +367 -0
  65. package/app/utils/testIds.const.ts +107 -1
  66. package/i18n/locales/de.ts +269 -1
  67. package/i18n/locales/en.ts +255 -1
  68. package/i18n/locales/es.ts +258 -1
  69. package/i18n/locales/fr.ts +264 -1
  70. package/i18n/locales/it.ts +260 -1
  71. package/package.json +4 -4
  72. package/app.config.ts +0 -5
@@ -1,4 +1,218 @@
1
1
  export default {
2
+ automations: {
3
+ action: {
4
+ at: 'Alle',
5
+ itIsSent: 'Viene inviato',
6
+ },
7
+ actions: {
8
+ addChannel: 'Aggiungi messaggio',
9
+ },
10
+ advanced: 'Avanzate',
11
+ audienceAll: 'Tutti i contatti',
12
+ audienceSpecific: 'Specifico',
13
+ channel: {
14
+ addTitle: 'Nuovo messaggio',
15
+ cannotFindMessage: 'Hai bisogno di un altro messaggio?',
16
+ category: 'Messaggi',
17
+ channelType: 'Tipo di messaggio',
18
+ chooseDays: 'giorni',
19
+ createNew: 'Crea nuovo',
20
+ editTitle: 'Modifica messaggio',
21
+ no_message: {
22
+ description: "Seleziona un messaggio o creane uno nuovo per vederne l'anteprima qui",
23
+ title: 'Nessuna anteprima',
24
+ },
25
+ preview: 'Anteprima',
26
+ searchMessagePlaceholder: 'Cerca un messaggio',
27
+ selectMessage: 'Messaggio',
28
+ selectMessageHint:
29
+ 'I messaggi con stato «Bozza» non sono visibili nell’elenco e non possono essere selezionati.',
30
+ selectMessagePlaceholder: 'Seleziona un messaggio',
31
+ sendingTime: 'Ora di invio',
32
+ when: 'Programma invio',
33
+ whenHint:
34
+ "Questa programmazione non è legata all'azione di check-out nel tuo Sistema di Gestione delle Proprietà (PMS).",
35
+ },
36
+ channels: {
37
+ email: 'Email',
38
+ whatsapp: 'WhatsApp',
39
+ },
40
+ clone: {
41
+ namePlaceholder: 'Nome automazione',
42
+ title: 'Duplica automazione',
43
+ },
44
+ delete: {
45
+ confirm:
46
+ 'Vuoi eliminare questa automazione? Una volta eliminata, non potrà essere recuperata.',
47
+ messages: 'Elimina anche i suoi messaggi',
48
+ title: 'Elimina automazione',
49
+ warning:
50
+ 'Un messaggio può essere usato da altre automazioni: eliminandolo lo togli anche da quelle.',
51
+ },
52
+ editTitle: 'Modifica automazione',
53
+ form: {
54
+ actions: {
55
+ deleteConfirm: 'Elimina messaggio',
56
+ deleteConfirmDescription:
57
+ 'Sei sicuro di voler eliminare il messaggio? Potrai aggiungerlo di nuovo in qualsiasi momento.',
58
+ empty: 'Nessun messaggio è stato ancora aggiunto. Clicca il pulsante per crearne uno.',
59
+ emptyHint: 'Scegli come comunicare con il tuo pubblico aggiungendo i messaggi giusti.',
60
+ },
61
+ addFilters: 'Aggiungi filtri',
62
+ changeTrigger: {
63
+ confirm: 'Cambia',
64
+ message: 'Cambiare il trigger reimposterà i tuoi messaggi e pubblico.',
65
+ title: 'Cambiare trigger?',
66
+ },
67
+ create: 'Crea',
68
+ create_specific_audience: 'Crea un pubblico specifico',
69
+ create_specific_audience_hint: 'Usa i filtri per inviare il messaggio a un pubblico mirato.',
70
+ data: {
71
+ requiredBadge: 'Dati obbligatori',
72
+ title: 'Dati',
73
+ },
74
+ error_banner: 'Completa tutti i campi obbligatori',
75
+ includeIf: 'Includi i contatti se...',
76
+ messages: 'Messaggi',
77
+ name: 'Nome',
78
+ namePlaceholder: 'Promuovi Marketplace',
79
+ required: 'Obbligatorio',
80
+ sendToHint: 'Usa i filtri per inviare il messaggio a un pubblico mirato.',
81
+ sendTo_all: 'Tutti i contatti',
82
+ sendTotitle: 'Pubblico',
83
+ title: 'Dettagli',
84
+ trigger: 'Trigger',
85
+ },
86
+ gate: {
87
+ catalog_failed_description:
88
+ 'Si è verificato un errore durante il caricamento di ciò che serve a questa pagina. Riprova.',
89
+ catalog_failed_title: 'Impossibile caricare le automazioni',
90
+ load_failed_description:
91
+ 'Si è verificato un errore durante il caricamento di questa automazione. Riprova.',
92
+ load_failed_title: 'Impossibile caricare l’automazione',
93
+ no_catalog_description:
94
+ 'In questo prodotto non c’è ancora nulla con cui creare un’automazione. Contatta il supporto se ti aspettavi di trovarle.',
95
+ no_catalog_title: 'Le automazioni non sono disponibili qui',
96
+ no_context_description:
97
+ 'Questa pagina non ha ricevuto ciò che le serve per funzionare. Ricarica la pagina; se succede di nuovo, contatta il supporto.',
98
+ no_context_title: 'Impossibile mostrare le automazioni',
99
+ no_organization_description:
100
+ 'Le automazioni appartengono a un’organizzazione e nessuna è selezionata.',
101
+ no_organization_title: 'Nessuna organizzazione su cui lavorare',
102
+ not_found_description:
103
+ 'Potrebbe essere stata eliminata, oppure appartiene a un’altra organizzazione o a un altro prodotto.',
104
+ not_found_title: 'Automazione non trovata',
105
+ },
106
+ immediately: 'Immediatamente {moment}',
107
+ list: {
108
+ active: 'Attivo',
109
+ allChannels: 'Tutti i messaggi',
110
+ allStatuses: 'Tutti gli stati',
111
+ allTriggers: 'Tutti i trigger',
112
+ empty: 'Nessuna automazione trovata',
113
+ headers: {
114
+ audience: 'Pubblico',
115
+ channels: 'Messaggi',
116
+ createdAt: 'Creato il',
117
+ name: 'Nome',
118
+ status: 'Stato',
119
+ trigger: 'Trigger',
120
+ },
121
+ inactive: 'Inattivo',
122
+ search: 'Cerca per nome',
123
+ },
124
+ nDays: '{count} giorni {moment}',
125
+ new: 'Nuova automazione',
126
+ newTitle: 'Crea automazione',
127
+ oneDay: '1 giorno {moment}',
128
+ preventDuplicates: {
129
+ hint: 'Non inviare se questo messaggio è già stato inviato o programmato per lo stesso destinatario alla stessa ora',
130
+ label: 'Previeni messaggi duplicati',
131
+ },
132
+ problems: {
133
+ action_channel_not_in_catalog:
134
+ '"{name}": questo tipo di messaggio non può essere usato con questo trigger.',
135
+ action_date_reference_not_in_catalog:
136
+ '"{name}": il momento in cui questo messaggio è programmato non è più disponibile. Scegline un altro.',
137
+ action_invalid:
138
+ '"{name}": questo messaggio è attivo ma non è approvato in tutte le lingue. Disattivalo, o scegli un messaggio approvato, per salvare.',
139
+ action_not_found: '"{name}": questo messaggio non esiste più. Scegline un altro.',
140
+ action_other_organization:
141
+ '"{name}": questo messaggio appartiene a un’altra organizzazione. Scegline un altro.',
142
+ condition_field_not_in_catalog:
143
+ 'Un filtro è su "{field}", che non è più disponibile. Rimuovilo per salvare.',
144
+ condition_operator_not_allowed:
145
+ 'Il filtro su "{field}" usa un confronto che non può essere usato. Modificalo o rimuovilo per salvare.',
146
+ show: 'Mostra',
147
+ title: 'Questa automazione non può ancora essere salvata',
148
+ trigger_not_in_catalog: 'Il trigger non è più disponibile. Scegline un altro.',
149
+ unknown: 'Qualcosa in questa automazione non può essere salvato. Controlla e riprova.',
150
+ },
151
+ recurrence: {
152
+ daily: 'Giornaliera',
153
+ label: 'Ricorrenza',
154
+ monthly: 'Mensile',
155
+ none: 'Nessuna',
156
+ yearly: 'Annuale',
157
+ },
158
+ strictDelay: {
159
+ hint: 'Salta i messaggi se l’orario programmato è già passato',
160
+ label: 'Ritardo rigido',
161
+ },
162
+ system: {
163
+ alert:
164
+ 'Questa è un’automazione di sistema. Puoi solo attivare o disattivare i suoi messaggi e compilare i dati richiesti. Duplicala per creare una copia completamente modificabile.',
165
+ badge: 'Automazione di sistema',
166
+ tooltip: 'Si possono modificare solo l’attivazione dei messaggi e i dati richiesti',
167
+ },
168
+ title: 'Automazioni',
169
+ toast: {
170
+ cloned: 'Automazione duplicata con successo',
171
+ created: 'Automazione creata con successo',
172
+ deleted: 'Automazione eliminata con successo',
173
+ deleted_messages: 'Messaggi eliminati insieme: {names}',
174
+ engine_rejected: 'L’Automation Engine ha rifiutato la richiesta',
175
+ kept_messages: 'Messaggi che non è stato possibile eliminare e sono stati mantenuti: {names}',
176
+ partly_saved: 'L’automazione è stata salvata solo in parte',
177
+ partly_saved_description: 'Le tue modifiche sono ancora qui. Salva di nuovo per completarla.',
178
+ updated: 'Automazione aggiornata con successo',
179
+ },
180
+ trip: {
181
+ back: "Torna all'automazione",
182
+ kept: 'Le modifiche non salvate sono state mantenute',
183
+ },
184
+ unavailable: {
185
+ badges: {
186
+ not_approved: 'Non approvato',
187
+ not_set_up: 'Non configurato',
188
+ unavailable: 'Non disponibile',
189
+ },
190
+ channel:
191
+ '{channel} non è configurato per questa organizzazione. Questo messaggio viene mantenuto, ma non viene inviato.',
192
+ channel_option: '{channel} (non configurato)',
193
+ condition_not_editable:
194
+ 'Questo filtro non può essere modificato qui. Resta valido: tienilo o rimuovilo.',
195
+ condition_unknown_field: 'Questo filtro non è più disponibile. Rimuovilo per salvare.',
196
+ date_reference:
197
+ 'La data su cui è programmato questo messaggio non è più disponibile. Scegline un’altra per salvare.',
198
+ kept: 'Mantenuti così come sono',
199
+ message_group_active:
200
+ 'Questo messaggio è attivo ma non è approvato in tutte le lingue. Disattivalo, o scegli un messaggio approvato, per salvare.',
201
+ message_group_inactive:
202
+ 'Questo messaggio non è ancora approvato in tutte le lingue. Potrà essere attivato quando lo sarà.',
203
+ option:
204
+ 'Un’opzione selezionata non è più disponibile. Resta valida e viene mantenuta finché non la rimuovi.',
205
+ title_blocked: 'Questa automazione non può ancora essere salvata',
206
+ title_kept: 'Alcune parti di questa automazione non sono disponibili',
207
+ to_fix: 'Da correggere prima di salvare',
208
+ trigger:
209
+ 'Questo trigger non è più disponibile. Scegline un altro per salvare; i messaggi e il pubblico verranno reimpostati.',
210
+ where: {
211
+ filter: 'Filtro "{field}"',
212
+ message: 'Messaggio "{name}"',
213
+ },
214
+ },
215
+ },
2
216
  categories: {
3
217
  marketing: 'Marketing',
4
218
  utility: 'Utilità',
@@ -637,6 +851,52 @@ export default {
637
851
  no_preview: 'Nessuna anteprima disponibile',
638
852
  subject: 'Oggetto',
639
853
  },
854
+ filters: {
855
+ actions: {
856
+ add_filter: 'Aggiungi filtro',
857
+ open_calendar: 'Apri il calendario',
858
+ remove_filter: 'Rimuovi filtro',
859
+ remove_option: 'Rimuovi opzione',
860
+ },
861
+ and: 'e',
862
+ applied: '{count} filtri applicati',
863
+ field_placeholder: 'Scegli un campo',
864
+ operators: {
865
+ contains: 'Contiene',
866
+ does_not_contain: 'Non contiene',
867
+ in: 'In',
868
+ is: 'È',
869
+ is_at_least: 'È almeno',
870
+ is_at_most: 'È al massimo',
871
+ is_between: 'È tra',
872
+ is_empty: 'È vuoto',
873
+ is_less: 'È minore di',
874
+ is_more: 'È maggiore di',
875
+ is_not: 'Non è',
876
+ is_not_between: 'Non è tra',
877
+ is_not_empty: 'Non è vuoto',
878
+ is_set: 'È impostato',
879
+ not_in: 'Non in',
880
+ },
881
+ selected: '{count} selezionati',
882
+ types: {
883
+ date: 'Data',
884
+ multiselect: 'Scelta multipla',
885
+ number: 'Numero',
886
+ price: 'Prezzo',
887
+ select: 'Scelta singola',
888
+ text: 'Testo',
889
+ },
890
+ unavailable: {
891
+ badge: 'Non disponibile',
892
+ not_editable:
893
+ 'Questo filtro non può essere modificato qui. Resta valido: tienilo o rimuovilo.',
894
+ option: 'Opzione non disponibile',
895
+ option_description:
896
+ "Un'opzione selezionata non è più disponibile. Resta valida e viene mantenuta finché non la rimuovi.",
897
+ unknown_field: 'Questo filtro non è più disponibile.',
898
+ },
899
+ },
640
900
  language: {
641
901
  de: 'Tedesco',
642
902
  en: 'Inglese',
@@ -820,7 +1080,6 @@ export default {
820
1080
  status: 'Stato',
821
1081
  updated_at: 'Aggiornato il',
822
1082
  },
823
- loading: 'Caricamento dei messaggi...',
824
1083
  pagination_summary: '{from}–{to} di {total}',
825
1084
  product_placeholder: 'Seleziona prodotto',
826
1085
  render_type_placeholder: 'Seleziona tipo di rendering',
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dev.smartpricing/message-composer-layer",
3
- "version": "4.5.1-next.2",
3
+ "version": "4.5.1-next.4",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "main": "./nuxt.config.ts",
@@ -8,11 +8,11 @@
8
8
  "app",
9
9
  "i18n",
10
10
  "shared",
11
- "nuxt.config.ts",
12
- "app.config.ts"
11
+ "nuxt.config.ts"
13
12
  ],
14
13
  "dependencies": {
15
14
  "@formkit/drag-and-drop": "^0.5.3",
15
+ "@internationalized/date": "^3.12.4",
16
16
  "@pinia/colada": "^1.3.0",
17
17
  "@tiptap/extension-character-count": "^3.23.4",
18
18
  "@tiptap/extension-emoji": "^3.23.4",
@@ -35,7 +35,7 @@
35
35
  "vue-router": "^5.0.7",
36
36
  "vue3-emoji-picker": "^1.1.8",
37
37
  "zod": "^4.4.3",
38
- "@dev.smartpricing/message-composer-utils": "4.5.1-next.2"
38
+ "@dev.smartpricing/message-composer-utils": "4.5.1-next.4"
39
39
  },
40
40
  "devDependencies": {
41
41
  "@dev.smartpricing/platform-layer": "^0.0.23",
package/app.config.ts DELETED
@@ -1,5 +0,0 @@
1
- export default defineAppConfig({
2
- composer: {
3
- tracking: false,
4
- },
5
- })