@dev.smartpricing/message-composer-layer 4.3.2-fix.1 → 4.5.1-next.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.
- package/README.md +228 -46
- package/app/api/brands.ts +20 -13
- package/app/api/client.ts +15 -6
- package/app/api/compilation.ts +13 -3
- package/app/api/dynamicValues.ts +6 -2
- package/app/api/media.ts +6 -3
- package/app/api/messageGroups.ts +29 -14
- package/app/api/meta.ts +26 -4
- package/app/api/organization.ts +10 -1
- package/app/api/tracking.ts +2 -2
- package/app/components/Common/AppContextErrors.vue +30 -0
- package/app/components/Common/HtmlPreviewIframe.vue +17 -3
- package/app/components/Common/MessageGroupSelect.vue +164 -26
- package/app/components/Common/MessagePreviewSlideover.vue +3 -0
- package/app/components/Common/OrganizationGate.vue +51 -0
- package/app/components/Common/OrganizationSelect.vue +27 -0
- package/app/components/Common/WhatsappNotConfigured.vue +20 -0
- package/app/components/Composer/EmailComposer.vue +4 -0
- package/app/components/Composer/MessageLibrary.vue +17 -7
- package/app/components/Composer/WabaSelectModal.vue +75 -0
- package/app/components/Composer/WhatsappComposer.vue +78 -3
- package/app/components/MessageSendFlow/EmailPreview.vue +81 -0
- package/app/components/MessageSendFlow/LanguageSelect.vue +39 -0
- package/app/components/MessageSendFlow/MessageSendFlow.vue +265 -0
- package/app/components/MessageSendFlow/ParametersForm.vue +51 -0
- package/app/components/TemplateList/BaseTable.vue +156 -108
- package/app/components/Whatsapp/Preview.vue +12 -4
- package/app/components/Whatsapp/PreviewPanel.vue +7 -1
- package/app/composables/composerContext.ts +9 -7
- package/app/composables/useEffectiveOrganization.ts +34 -0
- package/app/composables/useMessageGroupList.ts +186 -0
- package/app/composables/useMessageGroupWaba.ts +73 -0
- package/app/composables/useMessageSendFlow.ts +284 -0
- package/app/composables/usePagedMessageGroups.ts +78 -0
- package/app/composables/useTemplateOperations.ts +23 -4
- package/app/composables/useTracking.ts +14 -5
- package/app/composables/useWhatsappConfiguration.ts +32 -0
- package/app/layouts/default.vue +5 -1
- package/app/pages/brands.vue +1 -0
- package/app/pages/images.vue +4 -0
- package/app/pages/index.vue +1 -0
- package/app/pages/preview/[id].vue +2 -0
- package/app/pages/template/whatsapp/[id].vue +1 -0
- package/app/queries/brands.ts +27 -7
- package/app/queries/compilation.ts +16 -3
- package/app/queries/dynamicValues.ts +19 -2
- package/app/queries/media.ts +8 -3
- package/app/queries/messageGroups.ts +56 -17
- package/app/queries/meta.ts +13 -8
- package/app/stores/appContext.ts +18 -48
- package/app/stores/effectiveOrganization.ts +128 -0
- package/app/stores/emailEditor.ts +5 -1
- package/app/stores/metaSubmission.ts +7 -17
- package/app/types/tracking.ts +17 -0
- package/app/utils/testIds.const.ts +29 -0
- package/i18n/locales/de.ts +84 -2
- package/i18n/locales/en.ts +80 -2
- package/i18n/locales/es.ts +81 -2
- package/i18n/locales/fr.ts +81 -2
- package/i18n/locales/it.ts +82 -2
- package/package.json +2 -2
package/i18n/locales/fr.ts
CHANGED
|
@@ -18,6 +18,7 @@ export default {
|
|
|
18
18
|
all: 'Tous',
|
|
19
19
|
copy: 'Copier',
|
|
20
20
|
copy_of: 'Copie de {name}',
|
|
21
|
+
context_error_title: 'Erreur de configuration du composer',
|
|
21
22
|
desktop: 'Bureau',
|
|
22
23
|
error: 'Erreur',
|
|
23
24
|
errore: 'Erreur',
|
|
@@ -50,16 +51,38 @@ export default {
|
|
|
50
51
|
},
|
|
51
52
|
internal: 'Interne',
|
|
52
53
|
mobile: 'Mobile',
|
|
54
|
+
organization: {
|
|
55
|
+
label: 'Organisation',
|
|
56
|
+
lookup_failed_description:
|
|
57
|
+
"Une erreur s'est produite lors du chargement des organisations auxquelles vous avez accès. Réessayez.",
|
|
58
|
+
lookup_failed_title: 'Impossible de charger vos organisations',
|
|
59
|
+
none_description: "Votre utilisateur n'a accès à aucune organisation.",
|
|
60
|
+
none_title: 'Aucune organisation disponible',
|
|
61
|
+
resolving: 'Chargement de vos organisations...',
|
|
62
|
+
retry: 'Réessayer',
|
|
63
|
+
search_placeholder: 'Rechercher des organisations...',
|
|
64
|
+
},
|
|
53
65
|
preview: 'Aperçu',
|
|
54
66
|
search: 'Rechercher...',
|
|
55
67
|
success: 'Succès',
|
|
56
68
|
translation_failed: 'Échec de la traduction',
|
|
57
69
|
messageGroupSelect: {
|
|
58
70
|
inactive_tooltip: 'Ce groupe de messages contient des messages non approuvés ou manquants',
|
|
71
|
+
not_sendable_tooltip: 'Ce groupe de messages ne contient aucun message approuvé',
|
|
59
72
|
hide_inactive: 'Masquer inactifs',
|
|
73
|
+
hide_not_sendable: 'Masquer non envoyables',
|
|
74
|
+
load_more: 'Charger plus',
|
|
60
75
|
},
|
|
61
76
|
view_less: 'Afficher moins',
|
|
62
77
|
view_more: 'Afficher plus',
|
|
78
|
+
whatsapp_not_configured_description:
|
|
79
|
+
'Cette organisation n’a pas de compte WhatsApp Business. Les messages WhatsApp peuvent être enregistrés comme brouillons, mais pas soumis pour approbation.',
|
|
80
|
+
whatsapp_not_configured_title: 'WhatsApp n’est pas configuré',
|
|
81
|
+
whatsapp_waba_detached_description:
|
|
82
|
+
'Il ne peut plus être soumis pour approbation. Dupliquez-le pour soumettre la copie à un autre compte WhatsApp Business.',
|
|
83
|
+
whatsapp_waba_detached_title:
|
|
84
|
+
'Ce message est sur un compte WhatsApp Business qui n’est plus connecté',
|
|
85
|
+
whatsapp_waba_label: 'Compte WhatsApp Business :',
|
|
63
86
|
},
|
|
64
87
|
dialogs: {
|
|
65
88
|
delete_message: {
|
|
@@ -104,6 +127,13 @@ export default {
|
|
|
104
127
|
'Envoyer la traduction {language} pour révision ? Vous ne pourrez pas la modifier tant qu’elle est en attente d’approbation.',
|
|
105
128
|
title: 'Demander une révision',
|
|
106
129
|
},
|
|
130
|
+
select_waba: {
|
|
131
|
+
confirm: 'Demander l’approbation',
|
|
132
|
+
description:
|
|
133
|
+
'Cette organisation a plusieurs comptes WhatsApp Business. Choisissez celui auquel ce message est soumis : il ne pourra plus être modifié ensuite.',
|
|
134
|
+
no_numbers: 'Aucun numéro connecté',
|
|
135
|
+
title: 'Choisissez le compte WhatsApp Business',
|
|
136
|
+
},
|
|
107
137
|
unpublish_message_group: {
|
|
108
138
|
message: 'Dépublier « {name} » ? Il ne sera plus visible aux clients.',
|
|
109
139
|
success: '« {name} » a été dépublié.',
|
|
@@ -785,20 +815,28 @@ export default {
|
|
|
785
815
|
},
|
|
786
816
|
message_library: {
|
|
787
817
|
add_message_group: 'Nouveau message',
|
|
818
|
+
all_products: 'Tous les produits',
|
|
788
819
|
category_placeholder: 'Sélectionner une catégorie',
|
|
789
820
|
headers: {
|
|
790
821
|
category: 'Catégorie',
|
|
791
822
|
name: 'Nom',
|
|
792
823
|
preview: 'Aperçu',
|
|
824
|
+
product: 'Produit',
|
|
793
825
|
status: 'Statut',
|
|
794
|
-
tags: 'Tags',
|
|
795
826
|
updated_at: 'Mis à jour le',
|
|
796
827
|
},
|
|
828
|
+
pagination_summary: '{from}–{to} sur {total}',
|
|
829
|
+
product_placeholder: 'Sélectionner un produit',
|
|
797
830
|
render_type_placeholder: 'Sélectionner le type de rendu',
|
|
798
831
|
search_placeholder: 'Rechercher',
|
|
799
832
|
status_placeholder: 'Sélectionner un statut',
|
|
800
|
-
tags_placeholder: 'Filtrer par tags',
|
|
801
833
|
title: 'Bibliothèque de messages',
|
|
834
|
+
visibility: {
|
|
835
|
+
all: 'Toutes',
|
|
836
|
+
internal: 'Internes',
|
|
837
|
+
public: 'Publiques',
|
|
838
|
+
},
|
|
839
|
+
visibility_placeholder: 'Sélectionner la visibilité',
|
|
802
840
|
},
|
|
803
841
|
whatsapp: {
|
|
804
842
|
create_message_group: {
|
|
@@ -831,6 +869,12 @@ export default {
|
|
|
831
869
|
},
|
|
832
870
|
},
|
|
833
871
|
},
|
|
872
|
+
products: {
|
|
873
|
+
chat: 'Smartchat',
|
|
874
|
+
connect: 'Smartconnect',
|
|
875
|
+
pms: 'Smartpms',
|
|
876
|
+
pricing: 'Smartpricing',
|
|
877
|
+
},
|
|
834
878
|
public: {
|
|
835
879
|
select_message: {
|
|
836
880
|
choose_language: 'Choisir une langue...',
|
|
@@ -840,6 +884,41 @@ export default {
|
|
|
840
884
|
send_message: 'Envoyer le message',
|
|
841
885
|
},
|
|
842
886
|
},
|
|
887
|
+
send_flow: {
|
|
888
|
+
actions: {
|
|
889
|
+
back: 'Retour',
|
|
890
|
+
cancel: 'Annuler',
|
|
891
|
+
confirm: 'Confirmer',
|
|
892
|
+
next: 'Suivant',
|
|
893
|
+
},
|
|
894
|
+
errors: {
|
|
895
|
+
COMPILE_FAILED: 'Le message n’a pas pu être préparé. Veuillez réessayer.',
|
|
896
|
+
MISSING_PARAMETERS: 'Renseignez tous les paramètres avant de confirmer.',
|
|
897
|
+
NOT_OFFERED:
|
|
898
|
+
'« {name} » ne peut pas être envoyé d’ici. Choisissez un autre groupe de messages.',
|
|
899
|
+
NOT_SENDABLE:
|
|
900
|
+
'« {name} » n’a aucun message approuvé et ne peut pas être envoyé. Choisissez un autre groupe de messages.',
|
|
901
|
+
TEMPLATE_NOT_APPROVED: 'Ce message n’a pas été approuvé par Meta et ne peut pas être envoyé.',
|
|
902
|
+
TEMPLATE_NOT_SUBMITTED: 'Ce message n’a pas été soumis à Meta et ne peut pas être envoyé.',
|
|
903
|
+
},
|
|
904
|
+
language: {
|
|
905
|
+
approved: 'Approuvé',
|
|
906
|
+
approved_count: 'Langues approuvées pour {name} : {count}',
|
|
907
|
+
not_sendable: 'Non envoyable ({status})',
|
|
908
|
+
},
|
|
909
|
+
no_parameters: 'Ce message n’a aucun paramètre à renseigner.',
|
|
910
|
+
not_sendable_hint: 'Les groupes de messages grisés n’ont aucun message approuvé.',
|
|
911
|
+
questions: {
|
|
912
|
+
language: 'Dans quelle langue ?',
|
|
913
|
+
message: 'Quel message voulez-vous envoyer ?',
|
|
914
|
+
parameters: 'Renseignez les paramètres',
|
|
915
|
+
preview: 'Voici ce que le client recevra',
|
|
916
|
+
},
|
|
917
|
+
steps: {
|
|
918
|
+
message: { description: 'Choisissez un groupe de messages envoyable', title: 'Message' },
|
|
919
|
+
parameters: { description: 'Remplissez les champs', title: 'Paramètres' },
|
|
920
|
+
},
|
|
921
|
+
},
|
|
843
922
|
status: {
|
|
844
923
|
approved: 'Approuvé',
|
|
845
924
|
draft: 'Brouillon',
|
package/i18n/locales/it.ts
CHANGED
|
@@ -18,6 +18,7 @@ export default {
|
|
|
18
18
|
all: 'Tutti',
|
|
19
19
|
copy: 'Copia',
|
|
20
20
|
copy_of: 'Copia di {name}',
|
|
21
|
+
context_error_title: 'Errore di configurazione del composer',
|
|
21
22
|
desktop: 'Desktop',
|
|
22
23
|
error: 'Errore',
|
|
23
24
|
errore: 'Errore',
|
|
@@ -49,16 +50,38 @@ export default {
|
|
|
49
50
|
},
|
|
50
51
|
internal: 'Interno',
|
|
51
52
|
mobile: 'Mobile',
|
|
53
|
+
organization: {
|
|
54
|
+
label: 'Organizzazione',
|
|
55
|
+
lookup_failed_description:
|
|
56
|
+
'Si è verificato un errore durante il caricamento delle organizzazioni a cui hai accesso. Riprova.',
|
|
57
|
+
lookup_failed_title: 'Impossibile caricare le tue organizzazioni',
|
|
58
|
+
none_description: 'Il tuo utente non ha accesso a nessuna organizzazione.',
|
|
59
|
+
none_title: 'Nessuna organizzazione disponibile',
|
|
60
|
+
resolving: 'Caricamento delle tue organizzazioni...',
|
|
61
|
+
retry: 'Riprova',
|
|
62
|
+
search_placeholder: 'Cerca organizzazioni...',
|
|
63
|
+
},
|
|
52
64
|
preview: 'Anteprima',
|
|
53
65
|
search: 'Cerca...',
|
|
54
66
|
success: 'Successo',
|
|
55
67
|
translation_failed: 'Traduzione non riuscita',
|
|
56
68
|
messageGroupSelect: {
|
|
57
69
|
inactive_tooltip: 'Questo gruppo di messaggi contiene messaggi non approvati o mancanti',
|
|
70
|
+
not_sendable_tooltip: 'Questo gruppo di messaggi non contiene messaggi approvati',
|
|
58
71
|
hide_inactive: 'Nascondi inattivi',
|
|
72
|
+
hide_not_sendable: 'Nascondi non inviabili',
|
|
73
|
+
load_more: 'Carica altri',
|
|
59
74
|
},
|
|
60
75
|
view_less: 'Mostra meno',
|
|
61
76
|
view_more: 'Mostra di più',
|
|
77
|
+
whatsapp_not_configured_description:
|
|
78
|
+
'Questa organizzazione non ha un account WhatsApp Business. I messaggi WhatsApp possono essere salvati come bozze, ma non inviati per l’approvazione.',
|
|
79
|
+
whatsapp_not_configured_title: 'WhatsApp non è configurato',
|
|
80
|
+
whatsapp_waba_detached_description:
|
|
81
|
+
'Non può più essere inviato per l’approvazione. Duplicalo per inviare la copia a un altro account WhatsApp Business.',
|
|
82
|
+
whatsapp_waba_detached_title:
|
|
83
|
+
'Questo messaggio è su un account WhatsApp Business che non è più collegato',
|
|
84
|
+
whatsapp_waba_label: 'Account WhatsApp Business:',
|
|
62
85
|
},
|
|
63
86
|
dialogs: {
|
|
64
87
|
delete_message: {
|
|
@@ -103,6 +126,13 @@ export default {
|
|
|
103
126
|
'Inviare per la revisione la traduzione in {language}? Non potrai modificarla finché è in attesa di approvazione.',
|
|
104
127
|
title: 'Richiedi revisione',
|
|
105
128
|
},
|
|
129
|
+
select_waba: {
|
|
130
|
+
confirm: 'Richiedi approvazione',
|
|
131
|
+
description:
|
|
132
|
+
'Questa organizzazione ha più di un account WhatsApp Business. Scegli quello a cui inviare questo messaggio: non potrà essere cambiato in seguito.',
|
|
133
|
+
no_numbers: 'Nessun numero collegato',
|
|
134
|
+
title: 'Scegli l’account WhatsApp Business',
|
|
135
|
+
},
|
|
106
136
|
unpublish_message_group: {
|
|
107
137
|
message: 'Annullare la pubblicazione di "{name}"? Non sarà più visibile ai clienti.',
|
|
108
138
|
success: 'La pubblicazione di "{name}" è stata annullata.',
|
|
@@ -778,20 +808,28 @@ export default {
|
|
|
778
808
|
},
|
|
779
809
|
message_library: {
|
|
780
810
|
add_message_group: 'Nuovo messaggio',
|
|
811
|
+
all_products: 'Tutti i prodotti',
|
|
781
812
|
category_placeholder: 'Seleziona categoria',
|
|
782
813
|
headers: {
|
|
783
814
|
category: 'Categoria',
|
|
784
815
|
name: 'Nome',
|
|
785
816
|
preview: 'Anteprima',
|
|
817
|
+
product: 'Prodotto',
|
|
786
818
|
status: 'Stato',
|
|
787
|
-
tags: 'Tag',
|
|
788
819
|
updated_at: 'Aggiornato il',
|
|
789
820
|
},
|
|
821
|
+
pagination_summary: '{from}–{to} di {total}',
|
|
822
|
+
product_placeholder: 'Seleziona prodotto',
|
|
790
823
|
render_type_placeholder: 'Seleziona tipo di rendering',
|
|
791
824
|
search_placeholder: 'Cerca',
|
|
792
825
|
status_placeholder: 'Seleziona stato',
|
|
793
|
-
tags_placeholder: 'Filtra per tag',
|
|
794
826
|
title: 'Libreria messaggi',
|
|
827
|
+
visibility: {
|
|
828
|
+
all: 'Tutte',
|
|
829
|
+
internal: 'Interne',
|
|
830
|
+
public: 'Pubbliche',
|
|
831
|
+
},
|
|
832
|
+
visibility_placeholder: 'Seleziona visibilità',
|
|
795
833
|
},
|
|
796
834
|
whatsapp: {
|
|
797
835
|
create_message_group: {
|
|
@@ -824,6 +862,12 @@ export default {
|
|
|
824
862
|
},
|
|
825
863
|
},
|
|
826
864
|
},
|
|
865
|
+
products: {
|
|
866
|
+
chat: 'Smartchat',
|
|
867
|
+
connect: 'Smartconnect',
|
|
868
|
+
pms: 'Smartpms',
|
|
869
|
+
pricing: 'Smartpricing',
|
|
870
|
+
},
|
|
827
871
|
public: {
|
|
828
872
|
select_message: {
|
|
829
873
|
choose_language: 'Scegli una lingua...',
|
|
@@ -833,6 +877,42 @@ export default {
|
|
|
833
877
|
send_message: 'Invia messaggio',
|
|
834
878
|
},
|
|
835
879
|
},
|
|
880
|
+
send_flow: {
|
|
881
|
+
actions: {
|
|
882
|
+
back: 'Indietro',
|
|
883
|
+
cancel: 'Annulla',
|
|
884
|
+
confirm: 'Conferma',
|
|
885
|
+
next: 'Avanti',
|
|
886
|
+
},
|
|
887
|
+
errors: {
|
|
888
|
+
COMPILE_FAILED: 'Non è stato possibile preparare il messaggio. Riprova.',
|
|
889
|
+
MISSING_PARAMETERS: 'Compila tutti i parametri prima di confermare.',
|
|
890
|
+
NOT_OFFERED: '"{name}" non può essere inviato da qui. Scegli un altro gruppo di messaggi.',
|
|
891
|
+
NOT_SENDABLE:
|
|
892
|
+
'"{name}" non ha nessun messaggio approvato e non può essere inviato. Scegli un altro gruppo di messaggi.',
|
|
893
|
+
TEMPLATE_NOT_APPROVED:
|
|
894
|
+
'Questo messaggio non è stato approvato da Meta e non può essere inviato.',
|
|
895
|
+
TEMPLATE_NOT_SUBMITTED:
|
|
896
|
+
'Questo messaggio non è stato sottoposto a Meta e non può essere inviato.',
|
|
897
|
+
},
|
|
898
|
+
language: {
|
|
899
|
+
approved: 'Approvato',
|
|
900
|
+
approved_count: 'Lingue approvate per {name}: {count}',
|
|
901
|
+
not_sendable: 'Non inviabile ({status})',
|
|
902
|
+
},
|
|
903
|
+
no_parameters: 'Questo messaggio non ha parametri da compilare.',
|
|
904
|
+
not_sendable_hint: 'I gruppi di messaggi in grigio non hanno nessun messaggio approvato.',
|
|
905
|
+
questions: {
|
|
906
|
+
language: 'In quale lingua?',
|
|
907
|
+
message: 'Quale messaggio vuoi inviare?',
|
|
908
|
+
parameters: 'Compila i parametri',
|
|
909
|
+
preview: 'Ecco cosa riceverà l’ospite',
|
|
910
|
+
},
|
|
911
|
+
steps: {
|
|
912
|
+
message: { description: 'Scegli un gruppo di messaggi inviabile', title: 'Messaggio' },
|
|
913
|
+
parameters: { description: 'Compila i campi', title: 'Parametri' },
|
|
914
|
+
},
|
|
915
|
+
},
|
|
836
916
|
status: {
|
|
837
917
|
approved: 'Approvato',
|
|
838
918
|
draft: 'Bozza',
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dev.smartpricing/message-composer-layer",
|
|
3
|
-
"version": "4.
|
|
3
|
+
"version": "4.5.1-next.0",
|
|
4
4
|
"private": false,
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./nuxt.config.ts",
|
|
@@ -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.
|
|
38
|
+
"@dev.smartpricing/message-composer-utils": "4.5.1-next.0"
|
|
39
39
|
},
|
|
40
40
|
"devDependencies": {
|
|
41
41
|
"@dev.smartpricing/platform-layer": "^0.0.23",
|