genassist-chat-react 1.0.15 → 1.0.16
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/dist/components/ChatMessage.d.ts +4 -1
- package/dist/components/ChatMessage.js +35 -10
- package/dist/components/GenAgentChat.js +129 -25
- package/dist/components/GenAgentConfigPanel.d.ts +2 -0
- package/dist/components/GenAgentConfigPanel.js +4 -2
- package/dist/components/LanguageSelector.d.ts +19 -0
- package/dist/components/LanguageSelector.js +54 -0
- package/dist/hooks/useChat.js +154 -87
- package/dist/index.d.ts +2 -1
- package/dist/index.js +2 -1
- package/dist/services/chatService.js +37 -16
- package/dist/types/index.d.ts +6 -0
- package/dist/types/index.js +1 -1
- package/dist/utils/de.json +90 -0
- package/dist/utils/en.json +90 -0
- package/dist/utils/es.json +90 -0
- package/dist/utils/fr.json +90 -0
- package/dist/utils/i18n.d.ts +90 -0
- package/dist/utils/i18n.js +138 -0
- package/dist/utils/it.json +90 -0
- package/dist/utils/pt.json +90 -0
- package/dist/utils/time.d.ts +6 -1
- package/dist/utils/time.js +19 -9
- package/package.json +13 -4
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
{
|
|
2
|
+
"header": {
|
|
3
|
+
"subtitle": "Support"
|
|
4
|
+
},
|
|
5
|
+
"menu": {
|
|
6
|
+
"title": "Menu",
|
|
7
|
+
"resetConversation": "Réinitialiser la conversation",
|
|
8
|
+
"language": "Langue"
|
|
9
|
+
},
|
|
10
|
+
"buttons": {
|
|
11
|
+
"startConversation": "Démarrer la conversation",
|
|
12
|
+
"cancel": "Annuler",
|
|
13
|
+
"reset": "Réinitialiser",
|
|
14
|
+
"save": "Enregistrer",
|
|
15
|
+
"saveChanges": "Enregistrer les modifications",
|
|
16
|
+
"add": "Ajouter"
|
|
17
|
+
},
|
|
18
|
+
"input": {
|
|
19
|
+
"placeholder": "Posez une question"
|
|
20
|
+
},
|
|
21
|
+
"labels": {
|
|
22
|
+
"agent": "Agent",
|
|
23
|
+
"you": "Vous"
|
|
24
|
+
},
|
|
25
|
+
"dialog": {
|
|
26
|
+
"resetConversation": {
|
|
27
|
+
"title": "Réinitialiser la conversation",
|
|
28
|
+
"message": "Cela effacera l'historique de conversation actuel et démarrera une nouvelle conversation. Êtes-vous sûr ?"
|
|
29
|
+
}
|
|
30
|
+
},
|
|
31
|
+
"feedback": {
|
|
32
|
+
"thumbsUp": "Pouce vers le haut",
|
|
33
|
+
"thumbsDown": "Pouce vers le bas"
|
|
34
|
+
},
|
|
35
|
+
"thinking": {
|
|
36
|
+
"messages": [
|
|
37
|
+
"Réflexion…",
|
|
38
|
+
"Analyse de votre question…",
|
|
39
|
+
"Recherche d'informations…",
|
|
40
|
+
"Récupération d'informations pertinentes…",
|
|
41
|
+
"Rédaction de la réponse…",
|
|
42
|
+
"Vérification des détails…",
|
|
43
|
+
"Assemblage de tout…",
|
|
44
|
+
"Presque terminé…"
|
|
45
|
+
]
|
|
46
|
+
},
|
|
47
|
+
"time": {
|
|
48
|
+
"justNow": "À l'instant",
|
|
49
|
+
"today": "Aujourd'hui",
|
|
50
|
+
"yesterday": "Hier"
|
|
51
|
+
},
|
|
52
|
+
"settings": {
|
|
53
|
+
"defaultDescription": "Support"
|
|
54
|
+
},
|
|
55
|
+
"metadata": {
|
|
56
|
+
"addParameter": "Ajouter un paramètre",
|
|
57
|
+
"editParameter": "Modifier le paramètre",
|
|
58
|
+
"defineKeyValue": "Définir des paramètres clé/valeur envoyés comme métadonnées du chat."
|
|
59
|
+
},
|
|
60
|
+
"configPanel": {
|
|
61
|
+
"appearance": "APPARENCE",
|
|
62
|
+
"settings": "PARAMÈTRES",
|
|
63
|
+
"metadata": "MÉTADONNÉES",
|
|
64
|
+
"primaryColor": "Couleur principale",
|
|
65
|
+
"secondaryColor": "Couleur secondaire",
|
|
66
|
+
"backgroundColor": "Couleur de fond",
|
|
67
|
+
"textColor": "Couleur du texte",
|
|
68
|
+
"fontSize": "Taille de police",
|
|
69
|
+
"fontFamily": "Famille de police",
|
|
70
|
+
"name": "Nom",
|
|
71
|
+
"description": "Description",
|
|
72
|
+
"small": "Petit (12px)",
|
|
73
|
+
"medium": "Moyen (15px)",
|
|
74
|
+
"large": "Grand (18px)",
|
|
75
|
+
"parameterName": "Nom du paramètre",
|
|
76
|
+
"type": "Type",
|
|
77
|
+
"required": "Requis",
|
|
78
|
+
"defaultValue": "Valeur par défaut",
|
|
79
|
+
"value": "Valeur",
|
|
80
|
+
"yes": "Oui",
|
|
81
|
+
"no": "Non",
|
|
82
|
+
"true": "Vrai",
|
|
83
|
+
"false": "Faux",
|
|
84
|
+
"string": "Chaîne",
|
|
85
|
+
"number": "Nombre",
|
|
86
|
+
"boolean": "Booléen",
|
|
87
|
+
"edit": "Modifier",
|
|
88
|
+
"remove": "Supprimer"
|
|
89
|
+
}
|
|
90
|
+
}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
export interface Translations {
|
|
2
|
+
header: {
|
|
3
|
+
subtitle: string;
|
|
4
|
+
};
|
|
5
|
+
menu: {
|
|
6
|
+
title: string;
|
|
7
|
+
resetConversation: string;
|
|
8
|
+
language: string;
|
|
9
|
+
};
|
|
10
|
+
buttons: {
|
|
11
|
+
startConversation: string;
|
|
12
|
+
cancel: string;
|
|
13
|
+
reset: string;
|
|
14
|
+
save: string;
|
|
15
|
+
saveChanges: string;
|
|
16
|
+
add: string;
|
|
17
|
+
};
|
|
18
|
+
input: {
|
|
19
|
+
placeholder: string;
|
|
20
|
+
};
|
|
21
|
+
labels: {
|
|
22
|
+
agent: string;
|
|
23
|
+
you: string;
|
|
24
|
+
};
|
|
25
|
+
dialog: {
|
|
26
|
+
resetConversation: {
|
|
27
|
+
title: string;
|
|
28
|
+
message: string;
|
|
29
|
+
};
|
|
30
|
+
};
|
|
31
|
+
feedback: {
|
|
32
|
+
thumbsUp: string;
|
|
33
|
+
thumbsDown: string;
|
|
34
|
+
};
|
|
35
|
+
thinking: {
|
|
36
|
+
messages: string[];
|
|
37
|
+
};
|
|
38
|
+
time: {
|
|
39
|
+
justNow: string;
|
|
40
|
+
today: string;
|
|
41
|
+
yesterday: string;
|
|
42
|
+
};
|
|
43
|
+
settings: {
|
|
44
|
+
defaultDescription: string;
|
|
45
|
+
};
|
|
46
|
+
metadata: {
|
|
47
|
+
addParameter: string;
|
|
48
|
+
editParameter: string;
|
|
49
|
+
defineKeyValue: string;
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
export declare const defaultTranslations: Translations;
|
|
53
|
+
/**
|
|
54
|
+
* Get browser language code (e.g., 'en', 'es')
|
|
55
|
+
* Returns the primary language code without region
|
|
56
|
+
*/
|
|
57
|
+
export declare function getBrowserLanguage(): string;
|
|
58
|
+
/**
|
|
59
|
+
* Get translation value by key path
|
|
60
|
+
* Supports nested keys like 'header.subtitle' or 'dialog.resetConversation.title'
|
|
61
|
+
*/
|
|
62
|
+
export declare function getTranslation(key: string, translations: Translations, fallback?: string): string | string[];
|
|
63
|
+
/**
|
|
64
|
+
* Get a string translation (non-array)
|
|
65
|
+
*/
|
|
66
|
+
export declare function getTranslationString(key: string, translations: Translations, fallback?: string): string;
|
|
67
|
+
/**
|
|
68
|
+
* Get an array translation
|
|
69
|
+
*/
|
|
70
|
+
export declare function getTranslationArray(key: string, translations: Translations, fallback?: string[]): string[];
|
|
71
|
+
/**
|
|
72
|
+
* Resolve the language to use
|
|
73
|
+
* Priority: prop → browser → 'en'
|
|
74
|
+
*/
|
|
75
|
+
export declare function resolveLanguage(languageProp?: string): string;
|
|
76
|
+
/**
|
|
77
|
+
* Merge custom translations with defaults
|
|
78
|
+
* Custom translations override defaults, but don't need to include all keys
|
|
79
|
+
*/
|
|
80
|
+
export declare function mergeTranslations(custom?: Partial<Translations>, defaults?: Translations): Translations;
|
|
81
|
+
export declare const spanishTranslations: Partial<Translations>;
|
|
82
|
+
export declare const frenchTranslations: Partial<Translations>;
|
|
83
|
+
export declare const germanTranslations: Partial<Translations>;
|
|
84
|
+
export declare const italianTranslations: Partial<Translations>;
|
|
85
|
+
export declare const portugueseTranslations: Partial<Translations>;
|
|
86
|
+
export declare const translationsByLanguage: Record<string, Partial<Translations>>;
|
|
87
|
+
/**
|
|
88
|
+
* Get translations for a specific language
|
|
89
|
+
*/
|
|
90
|
+
export declare function getTranslationsForLanguage(language: string): Translations;
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
var __assign = (this && this.__assign) || function () {
|
|
2
|
+
__assign = Object.assign || function(t) {
|
|
3
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
4
|
+
s = arguments[i];
|
|
5
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
6
|
+
t[p] = s[p];
|
|
7
|
+
}
|
|
8
|
+
return t;
|
|
9
|
+
};
|
|
10
|
+
return __assign.apply(this, arguments);
|
|
11
|
+
};
|
|
12
|
+
// Translation types and utilities
|
|
13
|
+
import defaultTranslationsData from './en.json';
|
|
14
|
+
import spanishTranslationsData from './es.json';
|
|
15
|
+
import frenchTranslationsData from './fr.json';
|
|
16
|
+
import germanTranslationsData from './de.json';
|
|
17
|
+
import italianTranslationsData from './it.json';
|
|
18
|
+
import portugueseTranslationsData from './pt.json';
|
|
19
|
+
// Default English translations loaded from JSON file
|
|
20
|
+
export var defaultTranslations = defaultTranslationsData;
|
|
21
|
+
/**
|
|
22
|
+
* Get browser language code (e.g., 'en', 'es')
|
|
23
|
+
* Returns the primary language code without region
|
|
24
|
+
*/
|
|
25
|
+
export function getBrowserLanguage() {
|
|
26
|
+
if (typeof window === 'undefined' || !navigator.language) {
|
|
27
|
+
return 'en';
|
|
28
|
+
}
|
|
29
|
+
// Extract primary language code (e.g., 'en' from 'en-US')
|
|
30
|
+
return navigator.language.split('-')[0].toLowerCase();
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Get translation value by key path
|
|
34
|
+
* Supports nested keys like 'header.subtitle' or 'dialog.resetConversation.title'
|
|
35
|
+
*/
|
|
36
|
+
export function getTranslation(key, translations, fallback) {
|
|
37
|
+
var keys = key.split('.');
|
|
38
|
+
var value = translations;
|
|
39
|
+
for (var _i = 0, keys_1 = keys; _i < keys_1.length; _i++) {
|
|
40
|
+
var k = keys_1[_i];
|
|
41
|
+
if (value && typeof value === 'object' && k in value) {
|
|
42
|
+
value = value[k];
|
|
43
|
+
}
|
|
44
|
+
else {
|
|
45
|
+
return fallback || key;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
return value;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Get a string translation (non-array)
|
|
52
|
+
*/
|
|
53
|
+
export function getTranslationString(key, translations, fallback) {
|
|
54
|
+
var value = getTranslation(key, translations, fallback);
|
|
55
|
+
return Array.isArray(value) ? (fallback || key) : value;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Get an array translation
|
|
59
|
+
*/
|
|
60
|
+
export function getTranslationArray(key, translations, fallback) {
|
|
61
|
+
var value = getTranslation(key, translations);
|
|
62
|
+
return Array.isArray(value) ? value : (fallback || []);
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Resolve the language to use
|
|
66
|
+
* Priority: prop → browser → 'en'
|
|
67
|
+
*/
|
|
68
|
+
export function resolveLanguage(languageProp) {
|
|
69
|
+
if (languageProp) {
|
|
70
|
+
return languageProp.toLowerCase();
|
|
71
|
+
}
|
|
72
|
+
return getBrowserLanguage();
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Merge custom translations with defaults
|
|
76
|
+
* Custom translations override defaults, but don't need to include all keys
|
|
77
|
+
*/
|
|
78
|
+
export function mergeTranslations(custom, defaults) {
|
|
79
|
+
if (defaults === void 0) { defaults = defaultTranslations; }
|
|
80
|
+
if (!custom) {
|
|
81
|
+
return defaults;
|
|
82
|
+
}
|
|
83
|
+
// Deep merge function
|
|
84
|
+
var deepMerge = function (target, source) {
|
|
85
|
+
var output = __assign({}, target);
|
|
86
|
+
if (isObject(target) && isObject(source)) {
|
|
87
|
+
Object.keys(source).forEach(function (key) {
|
|
88
|
+
var _a, _b;
|
|
89
|
+
if (isObject(source[key])) {
|
|
90
|
+
if (!(key in target)) {
|
|
91
|
+
Object.assign(output, (_a = {}, _a[key] = source[key], _a));
|
|
92
|
+
}
|
|
93
|
+
else {
|
|
94
|
+
output[key] = deepMerge(target[key], source[key]);
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
else {
|
|
98
|
+
Object.assign(output, (_b = {}, _b[key] = source[key], _b));
|
|
99
|
+
}
|
|
100
|
+
});
|
|
101
|
+
}
|
|
102
|
+
return output;
|
|
103
|
+
};
|
|
104
|
+
return deepMerge(defaults, custom);
|
|
105
|
+
}
|
|
106
|
+
function isObject(item) {
|
|
107
|
+
return item && typeof item === 'object' && !Array.isArray(item);
|
|
108
|
+
}
|
|
109
|
+
// Spanish translations loaded from JSON file
|
|
110
|
+
export var spanishTranslations = spanishTranslationsData;
|
|
111
|
+
// French translations loaded from JSON file
|
|
112
|
+
export var frenchTranslations = frenchTranslationsData;
|
|
113
|
+
// German translations loaded from JSON file
|
|
114
|
+
export var germanTranslations = germanTranslationsData;
|
|
115
|
+
// Italian translations loaded from JSON file
|
|
116
|
+
export var italianTranslations = italianTranslationsData;
|
|
117
|
+
// Portuguese translations loaded from JSON file
|
|
118
|
+
export var portugueseTranslations = portugueseTranslationsData;
|
|
119
|
+
// Translations map for easy access by language code
|
|
120
|
+
export var translationsByLanguage = {
|
|
121
|
+
en: defaultTranslations,
|
|
122
|
+
es: spanishTranslations,
|
|
123
|
+
fr: frenchTranslations,
|
|
124
|
+
de: germanTranslations,
|
|
125
|
+
it: italianTranslations,
|
|
126
|
+
pt: portugueseTranslations,
|
|
127
|
+
};
|
|
128
|
+
/**
|
|
129
|
+
* Get translations for a specific language
|
|
130
|
+
*/
|
|
131
|
+
export function getTranslationsForLanguage(language) {
|
|
132
|
+
var langTranslations = translationsByLanguage[language.toLowerCase()];
|
|
133
|
+
if (langTranslations) {
|
|
134
|
+
return mergeTranslations(langTranslations, defaultTranslations);
|
|
135
|
+
}
|
|
136
|
+
return defaultTranslations;
|
|
137
|
+
}
|
|
138
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaTE4bi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9pMThuLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQUEsa0NBQWtDO0FBQ2xDLE9BQU8sdUJBQXVCLE1BQU0sV0FBVyxDQUFDO0FBQ2hELE9BQU8sdUJBQXVCLE1BQU0sV0FBVyxDQUFDO0FBQ2hELE9BQU8sc0JBQXNCLE1BQU0sV0FBVyxDQUFDO0FBQy9DLE9BQU8sc0JBQXNCLE1BQU0sV0FBVyxDQUFDO0FBQy9DLE9BQU8sdUJBQXVCLE1BQU0sV0FBVyxDQUFDO0FBQ2hELE9BQU8sMEJBQTBCLE1BQU0sV0FBVyxDQUFDO0FBc0RuRCxxREFBcUQ7QUFDckQsTUFBTSxDQUFDLElBQU0sbUJBQW1CLEdBQWlCLHVCQUF1QyxDQUFDO0FBRXpGOzs7R0FHRztBQUNILE1BQU0sVUFBVSxrQkFBa0I7SUFDaEMsSUFBSSxPQUFPLE1BQU0sS0FBSyxXQUFXLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDekQsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBQ0QsMERBQTBEO0lBQzFELE9BQU8sU0FBUyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUM7QUFDeEQsQ0FBQztBQUVEOzs7R0FHRztBQUNILE1BQU0sVUFBVSxjQUFjLENBQzVCLEdBQVcsRUFDWCxZQUEwQixFQUMxQixRQUFpQjtJQUVqQixJQUFNLElBQUksR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzVCLElBQUksS0FBSyxHQUFRLFlBQVksQ0FBQztJQUU5QixLQUFnQixVQUFJLEVBQUosYUFBSSxFQUFKLGtCQUFJLEVBQUosSUFBSSxFQUFFLENBQUM7UUFBbEIsSUFBTSxDQUFDLGFBQUE7UUFDVixJQUFJLEtBQUssSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFR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LFFBQVEsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDbEUsQ0FBQztBQUVELDZDQUE2QztBQUM3QyxNQUFNLENBQUMsSUFBTSxtQkFBbUIsR0FBMEIsdUJBQWdELENBQUM7QUFFM0csNENBQTRDO0FBQzVDLE1BQU0sQ0FBQyxJQUFNLGtCQUFrQixHQUEwQixzQkFBK0MsQ0FBQztBQUV6Ryw0Q0FBNEM7QUFDNUMsTUFBTSxDQUFDLElBQU0sa0JBQWtCLEdBQTBCLHNCQUErQyxDQUFDO0FBRXpHLDZDQUE2QztBQUM3QyxNQUFNLENBQUMsSUFBTSxtQkFBbUIsR0FBMEIsdUJBQWdELENBQUM7QUFFM0csZ0RBQWdEO0FBQ2hELE1BQU0sQ0FBQyxJQUFNLHNCQUFzQixHQUEwQiwwQkFBbUQsQ0FBQztBQUVqSCxvREFBb0Q7QUFDcEQsTUFBTSxDQUFDLElBQU0sc0JBQXNCLEdBQTBDO0lBQzNFLEVBQUUsRUFBRSxtQkFBbUI7SUFDdkIsRUFBRSxFQUFFLG1CQUFtQjtJQUN2QixFQUFFLEVBQUUsa0JBQWtCO0lBQ3RCLEVBQUUsRUFBRSxrQkFBa0I7SUFDdEIsRUFBRSxFQUFFLG1CQUFtQjtJQUN2QixFQUFFLEVBQUUsc0JBQXNCO0NBQzNCLENBQUM7QUFFRjs7R0FFRztBQUNILE1BQU0sVUFBVSwwQkFBMEIsQ0FBQyxRQUFnQjtJQUN6RCxJQUFNLGdCQUFnQixHQUFHLHNCQUFzQixDQUFDLFFBQVEsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO0lBQ3hFLElBQUksZ0JBQWdCLEVBQUUsQ0FBQztRQUNyQixPQUFPLGlCQUFpQixDQUFDLGdCQUFnQixFQUFFLG1CQUFtQixDQUFDLENBQUM7SUFDbEUsQ0FBQztJQUNELE9BQU8sbUJBQW1CLENBQUM7QUFDN0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIFRyYW5zbGF0aW9uIHR5cGVzIGFuZCB1dGlsaXRpZXNcbmltcG9ydCBkZWZhdWx0VHJhbnNsYXRpb25zRGF0YSBmcm9tICcuL2VuLmpzb24nO1xuaW1wb3J0IHNwYW5pc2hUcmFuc2xhdGlvbnNEYXRhIGZyb20gJy4vZXMuanNvbic7XG5pbXBvcnQgZnJlbmNoVHJhbnNsYXRpb25zRGF0YSBmcm9tICcuL2ZyLmpzb24nO1xuaW1wb3J0IGdlcm1hblRyYW5zbGF0aW9uc0RhdGEgZnJvbSAnLi9kZS5qc29uJztcbmltcG9ydCBpdGFsaWFuVHJhbnNsYXRpb25zRGF0YSBmcm9tICcuL2l0Lmpzb24nO1xuaW1wb3J0IHBvcnR1Z3Vlc2VUcmFuc2xhdGlvbnNEYXRhIGZyb20gJy4vcHQuanNvbic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgVHJhbnNsYXRpb25zIHtcbiAgaGVhZGVyOiB7XG4gICAgc3VidGl0bGU6IHN0cmluZztcbiAgfTtcbiAgbWVudToge1xuICAgIHRpdGxlOiBzdHJpbmc7XG4gICAgcmVzZXRDb252ZXJzYXRpb246IHN0cmluZztcbiAgICBsYW5ndWFnZTogc3RyaW5nO1xuICB9O1xuICBidXR0b25zOiB7XG4gICAgc3RhcnRDb252ZXJzYXRpb246IHN0cmluZztcbiAgICBjYW5jZWw6IHN0cmluZztcbiAgICByZXNldDogc3RyaW5nO1xuICAgIHNhdmU6IHN0cmluZztcbiAgICBzYXZlQ2hhbmdlczogc3RyaW5nO1xuICAgIGFkZDogc3RyaW5nO1xuICB9O1xuICBpbnB1dDoge1xuICAgIHBsYWNlaG9sZGVyOiBzdHJpbmc7XG4gIH07XG4gIGxhYmVsczoge1xuICAgIGFnZW50OiBzdHJpbmc7XG4gICAgeW91OiBzdHJpbmc7XG4gIH07XG4gIGRpYWxvZzoge1xuICAgIHJlc2V0Q29udmVyc2F0aW9uOiB7XG4gICAgICB0aXRsZTogc3RyaW5nO1xuICAgICAgbWVzc2FnZTogc3RyaW5nO1xuICAgIH07XG4gIH07XG4gIGZlZWRiYWNrOiB7XG4gICAgdGh1bWJzVXA6IHN0cmluZztcbiAgICB0aHVtYnNEb3duOiBzdHJpbmc7XG4gIH07XG4gIHRoaW5raW5nOiB7XG4gICAgbWVzc2FnZXM6IHN0cmluZ1tdO1xuICB9O1xuICB0aW1lOiB7XG4gICAganVzdE5vdzogc3RyaW5nO1xuICAgIHRvZGF5OiBzdHJpbmc7XG4gICAgeWVzdGVyZGF5OiBzdHJpbmc7XG4gIH07XG4gIHNldHRpbmdzOiB7XG4gICAgZGVmYXVsdERlc2NyaXB0aW9uOiBzdHJpbmc7XG4gIH07XG4gIG1ldGFkYXRhOiB7XG4gICAgYWRkUGFyYW1ldGVyOiBzdHJpbmc7XG4gICAgZWRpdFBhcmFtZXRlcjogc3RyaW5nO1xuICAgIGRlZmluZUtleVZhbHVlOiBzdHJpbmc7XG4gIH07XG59XG5cbi8vIERlZmF1bHQgRW5nbGlzaCB0cmFuc2xhdGlvbnMgbG9hZGVkIGZyb20gSlNPTiBmaWxlXG5leHBvcnQgY29uc3QgZGVmYXVsdFRyYW5zbGF0aW9uczogVHJhbnNsYXRpb25zID0gZGVmYXVsdFRyYW5zbGF0aW9uc0RhdGEgYXMgVHJhbnNsYXRpb25zO1xuXG4vKipcbiAqIEdldCBicm93c2VyIGxhbmd1YWdlIGNvZGUgKGUuZy4sICdlbicsICdlcycpXG4gKiBSZXR1cm5zIHRoZSBwcmltYXJ5IGxhbmd1YWdlIGNvZGUgd2l0aG91dCByZWdpb25cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEJyb3dzZXJMYW5ndWFnZSgpOiBzdHJpbmcge1xuICBpZiAodHlwZW9mIHdpbmRvdyA9PT0gJ3VuZGVmaW5lZCcgfHwgIW5hdmlnYXRvci5sYW5ndWFnZSkge1xuICAgIHJldHVybiAnZW4nO1xuICB9XG4gIC8vIEV4dHJhY3QgcHJpbWFyeSBsYW5ndWFnZSBjb2RlIChlLmcuLCAnZW4nIGZyb20gJ2VuLVVTJylcbiAgcmV0dXJuIG5hdmlnYXRvci5sYW5ndWFnZS5zcGxpdCgnLScpWzBdLnRvTG93ZXJDYXNlKCk7XG59XG5cbi8qKlxuICogR2V0IHRyYW5zbGF0aW9uIHZhbHVlIGJ5IGtleSBwYXRoXG4gKiBTdXBwb3J0cyBuZXN0ZWQga2V5cyBsaWtlICdoZWFkZXIuc3VidGl0bGUnIG9yICdkaWFsb2cucmVzZXRDb252ZXJzYXRpb24udGl0bGUnXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRUcmFuc2xhdGlvbihcbiAga2V5OiBzdHJpbmcsXG4gIHRyYW5zbGF0aW9uczogVHJhbnNsYXRpb25zLFxuICBmYWxsYmFjaz86IHN0cmluZ1xuKTogc3RyaW5nIHwgc3RyaW5nW10ge1xuICBjb25zdCBrZXlzID0ga2V5LnNwbGl0KCcuJyk7XG4gIGxldCB2YWx1ZTogYW55ID0gdHJhbnNsYXRpb25zO1xuXG4gIGZvciAoY29uc3QgayBvZiBrZXlzKSB7XG4gICAgaWYgKHZhbHVlICYmIHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcgJiYgayBpbiB2YWx1ZSkge1xuICAgICAgdmFsdWUgPSB2YWx1ZVtrIGFzIGtleW9mIHR5cGVvZiB2YWx1ZV07XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBmYWxsYmFjayB8fCBrZXk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHZhbHVlO1xufVxuXG4vKipcbiAqIEdldCBhIHN0cmluZyB0cmFuc2xhdGlvbiAobm9uLWFycmF5KVxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0VHJhbnNsYXRpb25TdHJpbmcoXG4gIGtleTogc3RyaW5nLFxuICB0cmFuc2xhdGlvbnM6IFRyYW5zbGF0aW9ucyxcbiAgZmFsbGJhY2s/OiBzdHJpbmdcbik6IHN0cmluZyB7XG4gIGNvbnN0IHZhbHVlID0gZ2V0VHJhbnNsYXRpb24oa2V5LCB0cmFuc2xhdGlvbnMsIGZhbGxiYWNrKTtcbiAgcmV0dXJuIEFycmF5LmlzQXJyYXkodmFsdWUpID8gKGZhbGxiYWNrIHx8IGtleSkgOiB2YWx1ZTtcbn1cblxuLyoqXG4gKiBHZXQgYW4gYXJyYXkgdHJhbnNsYXRpb25cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFRyYW5zbGF0aW9uQXJyYXkoXG4gIGtleTogc3RyaW5nLFxuICB0cmFuc2xhdGlvbnM6IFRyYW5zbGF0aW9ucyxcbiAgZmFsbGJhY2s/OiBzdHJpbmdbXVxuKTogc3RyaW5nW10ge1xuICBjb25zdCB2YWx1ZSA9IGdldFRyYW5zbGF0aW9uKGtleSwgdHJhbnNsYXRpb25zKTtcbiAgcmV0dXJuIEFycmF5LmlzQXJyYXkodmFsdWUpID8gdmFsdWUgOiAoZmFsbGJhY2sgfHwgW10pO1xufVxuXG4vKipcbiAqIFJlc29sdmUgdGhlIGxhbmd1YWdlIHRvIHVzZVxuICogUHJpb3JpdHk6IHByb3Ag4oaSIGJyb3dzZXIg4oaSICdlbidcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlc29sdmVMYW5ndWFnZShsYW5ndWFnZVByb3A/OiBzdHJpbmcpOiBzdHJpbmcge1xuICBpZiAobGFuZ3VhZ2VQcm9wKSB7XG4gICAgcmV0dXJuIGxhbmd1YWdlUHJvcC50b0xvd2VyQ2FzZSgpO1xuICB9XG4gIHJldHVybiBnZXRCcm93c2VyTGFuZ3VhZ2UoKTtcbn1cblxuLyoqXG4gKiBNZXJnZSBjdXN0b20gdHJhbnNsYXRpb25zIHdpdGggZGVmYXVsdHNcbiAqIEN1c3RvbSB0cmFuc2xhdGlvbnMgb3ZlcnJpZGUgZGVmYXVsdHMsIGJ1dCBkb24ndCBuZWVkIHRvIGluY2x1ZGUgYWxsIGtleXNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG1lcmdlVHJhbnNsYXRpb25zKFxuICBjdXN0b20/OiBQYXJ0aWFsPFRyYW5zbGF0aW9ucz4sXG4gIGRlZmF1bHRzOiBUcmFuc2xhdGlvbnMgPSBkZWZhdWx0VHJhbnNsYXRpb25zXG4pOiBUcmFuc2xhdGlvbnMge1xuICBpZiAoIWN1c3RvbSkge1xuICAgIHJldHVybiBkZWZhdWx0cztcbiAgfVxuXG4gIC8vIERlZXAgbWVyZ2UgZnVuY3Rpb25cbiAgY29uc3QgZGVlcE1lcmdlID0gKHRhcmdldDogYW55LCBzb3VyY2U6IGFueSk6IGFueSA9PiB7XG4gICAgY29uc3Qgb3V0cHV0ID0geyAuLi50YXJnZXQgfTtcbiAgICBpZiAoaXNPYmplY3QodGFyZ2V0KSAmJiBpc09iamVjdChzb3VyY2UpKSB7XG4gICAgICBPYmplY3Qua2V5cyhzb3VyY2UpLmZvckVhY2goKGtleSkgPT4ge1xuICAgICAgICBpZiAoaXNPYmplY3Qoc291cmNlW2tleV0pKSB7XG4gICAgICAgICAgaWYgKCEoa2V5IGluIHRhcmdldCkpIHtcbiAgICAgICAgICAgIE9iamVjdC5hc3NpZ24ob3V0cHV0LCB7IFtrZXldOiBzb3VyY2Vba2V5XSB9KTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgb3V0cHV0W2tleV0gPSBkZWVwTWVyZ2UodGFyZ2V0W2tleV0sIHNvdXJjZVtrZXldKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgT2JqZWN0LmFzc2lnbihvdXRwdXQsIHsgW2tleV06IHNvdXJjZVtrZXldIH0pO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIG91dHB1dDtcbiAgfTtcblxuICByZXR1cm4gZGVlcE1lcmdlKGRlZmF1bHRzLCBjdXN0b20pO1xufVxuXG5mdW5jdGlvbiBpc09iamVjdChpdGVtOiBhbnkpOiBib29sZWFuIHtcbiAgcmV0dXJuIGl0ZW0gJiYgdHlwZW9mIGl0ZW0gPT09ICdvYmplY3QnICYmICFBcnJheS5pc0FycmF5KGl0ZW0pO1xufVxuXG4vLyBTcGFuaXNoIHRyYW5zbGF0aW9ucyBsb2FkZWQgZnJvbSBKU09OIGZpbGVcbmV4cG9ydCBjb25zdCBzcGFuaXNoVHJhbnNsYXRpb25zOiBQYXJ0aWFsPFRyYW5zbGF0aW9ucz4gPSBzcGFuaXNoVHJhbnNsYXRpb25zRGF0YSBhcyBQYXJ0aWFsPFRyYW5zbGF0aW9ucz47XG5cbi8vIEZyZW5jaCB0cmFuc2xhdGlvbnMgbG9hZGVkIGZyb20gSlNPTiBmaWxlXG5leHBvcnQgY29uc3QgZnJlbmNoVHJhbnNsYXRpb25zOiBQYXJ0aWFsPFRyYW5zbGF0aW9ucz4gPSBmcmVuY2hUcmFuc2xhdGlvbnNEYXRhIGFzIFBhcnRpYWw8VHJhbnNsYXRpb25zPjtcblxuLy8gR2VybWFuIHRyYW5zbGF0aW9ucyBsb2FkZWQgZnJvbSBKU09OIGZpbGVcbmV4cG9ydCBjb25zdCBnZXJtYW5UcmFuc2xhdGlvbnM6IFBhcnRpYWw8VHJhbnNsYXRpb25zPiA9IGdlcm1hblRyYW5zbGF0aW9uc0RhdGEgYXMgUGFydGlhbDxUcmFuc2xhdGlvbnM+O1xuXG4vLyBJdGFsaWFuIHRyYW5zbGF0aW9ucyBsb2FkZWQgZnJvbSBKU09OIGZpbGVcbmV4cG9ydCBjb25zdCBpdGFsaWFuVHJhbnNsYXRpb25zOiBQYXJ0aWFsPFRyYW5zbGF0aW9ucz4gPSBpdGFsaWFuVHJhbnNsYXRpb25zRGF0YSBhcyBQYXJ0aWFsPFRyYW5zbGF0aW9ucz47XG5cbi8vIFBvcnR1Z3Vlc2UgdHJhbnNsYXRpb25zIGxvYWRlZCBmcm9tIEpTT04gZmlsZVxuZXhwb3J0IGNvbnN0IHBvcnR1Z3Vlc2VUcmFuc2xhdGlvbnM6IFBhcnRpYWw8VHJhbnNsYXRpb25zPiA9IHBvcnR1Z3Vlc2VUcmFuc2xhdGlvbnNEYXRhIGFzIFBhcnRpYWw8VHJhbnNsYXRpb25zPjtcblxuLy8gVHJhbnNsYXRpb25zIG1hcCBmb3IgZWFzeSBhY2Nlc3MgYnkgbGFuZ3VhZ2UgY29kZVxuZXhwb3J0IGNvbnN0IHRyYW5zbGF0aW9uc0J5TGFuZ3VhZ2U6IFJlY29yZDxzdHJpbmcsIFBhcnRpYWw8VHJhbnNsYXRpb25zPj4gPSB7XG4gIGVuOiBkZWZhdWx0VHJhbnNsYXRpb25zLFxuICBlczogc3BhbmlzaFRyYW5zbGF0aW9ucyxcbiAgZnI6IGZyZW5jaFRyYW5zbGF0aW9ucyxcbiAgZGU6IGdlcm1hblRyYW5zbGF0aW9ucyxcbiAgaXQ6IGl0YWxpYW5UcmFuc2xhdGlvbnMsXG4gIHB0OiBwb3J0dWd1ZXNlVHJhbnNsYXRpb25zLFxufTtcblxuLyoqXG4gKiBHZXQgdHJhbnNsYXRpb25zIGZvciBhIHNwZWNpZmljIGxhbmd1YWdlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRUcmFuc2xhdGlvbnNGb3JMYW5ndWFnZShsYW5ndWFnZTogc3RyaW5nKTogVHJhbnNsYXRpb25zIHtcbiAgY29uc3QgbGFuZ1RyYW5zbGF0aW9ucyA9IHRyYW5zbGF0aW9uc0J5TGFuZ3VhZ2VbbGFuZ3VhZ2UudG9Mb3dlckNhc2UoKV07XG4gIGlmIChsYW5nVHJhbnNsYXRpb25zKSB7XG4gICAgcmV0dXJuIG1lcmdlVHJhbnNsYXRpb25zKGxhbmdUcmFuc2xhdGlvbnMsIGRlZmF1bHRUcmFuc2xhdGlvbnMpO1xuICB9XG4gIHJldHVybiBkZWZhdWx0VHJhbnNsYXRpb25zO1xufVxuXG4iXX0=
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
{
|
|
2
|
+
"header": {
|
|
3
|
+
"subtitle": "Supporto"
|
|
4
|
+
},
|
|
5
|
+
"menu": {
|
|
6
|
+
"title": "Menu",
|
|
7
|
+
"resetConversation": "Reimposta conversazione",
|
|
8
|
+
"language": "Lingua"
|
|
9
|
+
},
|
|
10
|
+
"buttons": {
|
|
11
|
+
"startConversation": "Avvia conversazione",
|
|
12
|
+
"cancel": "Annulla",
|
|
13
|
+
"reset": "Reimposta",
|
|
14
|
+
"save": "Salva",
|
|
15
|
+
"saveChanges": "Salva modifiche",
|
|
16
|
+
"add": "Aggiungi"
|
|
17
|
+
},
|
|
18
|
+
"input": {
|
|
19
|
+
"placeholder": "Fai una domanda"
|
|
20
|
+
},
|
|
21
|
+
"labels": {
|
|
22
|
+
"agent": "Agente",
|
|
23
|
+
"you": "Tu"
|
|
24
|
+
},
|
|
25
|
+
"dialog": {
|
|
26
|
+
"resetConversation": {
|
|
27
|
+
"title": "Reimposta conversazione",
|
|
28
|
+
"message": "Questo cancellerà la cronologia della conversazione corrente e inizierà una nuova conversazione. Sei sicuro?"
|
|
29
|
+
}
|
|
30
|
+
},
|
|
31
|
+
"feedback": {
|
|
32
|
+
"thumbsUp": "Pollice su",
|
|
33
|
+
"thumbsDown": "Pollice giù"
|
|
34
|
+
},
|
|
35
|
+
"thinking": {
|
|
36
|
+
"messages": [
|
|
37
|
+
"Pensando…",
|
|
38
|
+
"Analizzando la tua domanda…",
|
|
39
|
+
"Cercando informazioni…",
|
|
40
|
+
"Recuperando informazioni rilevanti…",
|
|
41
|
+
"Redigendo la risposta…",
|
|
42
|
+
"Verificando i dettagli…",
|
|
43
|
+
"Mettendo tutto insieme…",
|
|
44
|
+
"Quasi fatto…"
|
|
45
|
+
]
|
|
46
|
+
},
|
|
47
|
+
"time": {
|
|
48
|
+
"justNow": "Proprio ora",
|
|
49
|
+
"today": "Oggi",
|
|
50
|
+
"yesterday": "Ieri"
|
|
51
|
+
},
|
|
52
|
+
"settings": {
|
|
53
|
+
"defaultDescription": "Supporto"
|
|
54
|
+
},
|
|
55
|
+
"metadata": {
|
|
56
|
+
"addParameter": "Aggiungi parametro",
|
|
57
|
+
"editParameter": "Modifica parametro",
|
|
58
|
+
"defineKeyValue": "Definisci parametri chiave/valore inviati come metadati della chat."
|
|
59
|
+
},
|
|
60
|
+
"configPanel": {
|
|
61
|
+
"appearance": "ASPETTO",
|
|
62
|
+
"settings": "IMPOSTAZIONI",
|
|
63
|
+
"metadata": "METADATI",
|
|
64
|
+
"primaryColor": "Colore primario",
|
|
65
|
+
"secondaryColor": "Colore secondario",
|
|
66
|
+
"backgroundColor": "Colore di sfondo",
|
|
67
|
+
"textColor": "Colore del testo",
|
|
68
|
+
"fontSize": "Dimensione carattere",
|
|
69
|
+
"fontFamily": "Famiglia carattere",
|
|
70
|
+
"name": "Nome",
|
|
71
|
+
"description": "Descrizione",
|
|
72
|
+
"small": "Piccolo (12px)",
|
|
73
|
+
"medium": "Medio (15px)",
|
|
74
|
+
"large": "Grande (18px)",
|
|
75
|
+
"parameterName": "Nome parametro",
|
|
76
|
+
"type": "Tipo",
|
|
77
|
+
"required": "Obbligatorio",
|
|
78
|
+
"defaultValue": "Valore predefinito",
|
|
79
|
+
"value": "Valore",
|
|
80
|
+
"yes": "Sì",
|
|
81
|
+
"no": "No",
|
|
82
|
+
"true": "Vero",
|
|
83
|
+
"false": "Falso",
|
|
84
|
+
"string": "Stringa",
|
|
85
|
+
"number": "Numero",
|
|
86
|
+
"boolean": "Booleano",
|
|
87
|
+
"edit": "Modifica",
|
|
88
|
+
"remove": "Rimuovi"
|
|
89
|
+
}
|
|
90
|
+
}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
{
|
|
2
|
+
"header": {
|
|
3
|
+
"subtitle": "Suporte"
|
|
4
|
+
},
|
|
5
|
+
"menu": {
|
|
6
|
+
"title": "Menu",
|
|
7
|
+
"resetConversation": "Reiniciar conversa",
|
|
8
|
+
"language": "Idioma"
|
|
9
|
+
},
|
|
10
|
+
"buttons": {
|
|
11
|
+
"startConversation": "Iniciar conversa",
|
|
12
|
+
"cancel": "Cancelar",
|
|
13
|
+
"reset": "Reiniciar",
|
|
14
|
+
"save": "Salvar",
|
|
15
|
+
"saveChanges": "Salvar alterações",
|
|
16
|
+
"add": "Adicionar"
|
|
17
|
+
},
|
|
18
|
+
"input": {
|
|
19
|
+
"placeholder": "Faça uma pergunta"
|
|
20
|
+
},
|
|
21
|
+
"labels": {
|
|
22
|
+
"agent": "Agente",
|
|
23
|
+
"you": "Você"
|
|
24
|
+
},
|
|
25
|
+
"dialog": {
|
|
26
|
+
"resetConversation": {
|
|
27
|
+
"title": "Reiniciar conversa",
|
|
28
|
+
"message": "Isso limpará o histórico de conversa atual e iniciará uma nova conversa. Tem certeza?"
|
|
29
|
+
}
|
|
30
|
+
},
|
|
31
|
+
"feedback": {
|
|
32
|
+
"thumbsUp": "Polegar para cima",
|
|
33
|
+
"thumbsDown": "Polegar para baixo"
|
|
34
|
+
},
|
|
35
|
+
"thinking": {
|
|
36
|
+
"messages": [
|
|
37
|
+
"Pensando…",
|
|
38
|
+
"Analisando sua pergunta…",
|
|
39
|
+
"Buscando informações…",
|
|
40
|
+
"Obtendo informações relevantes…",
|
|
41
|
+
"Redigindo a resposta…",
|
|
42
|
+
"Verificando detalhes…",
|
|
43
|
+
"Juntando tudo…",
|
|
44
|
+
"Quase lá…"
|
|
45
|
+
]
|
|
46
|
+
},
|
|
47
|
+
"time": {
|
|
48
|
+
"justNow": "Agora mesmo",
|
|
49
|
+
"today": "Hoje",
|
|
50
|
+
"yesterday": "Ontem"
|
|
51
|
+
},
|
|
52
|
+
"settings": {
|
|
53
|
+
"defaultDescription": "Suporte"
|
|
54
|
+
},
|
|
55
|
+
"metadata": {
|
|
56
|
+
"addParameter": "Adicionar parâmetro",
|
|
57
|
+
"editParameter": "Editar parâmetro",
|
|
58
|
+
"defineKeyValue": "Defina parâmetros chave/valor enviados como metadados do chat."
|
|
59
|
+
},
|
|
60
|
+
"configPanel": {
|
|
61
|
+
"appearance": "APARÊNCIA",
|
|
62
|
+
"settings": "CONFIGURAÇÕES",
|
|
63
|
+
"metadata": "METADADOS",
|
|
64
|
+
"primaryColor": "Cor primária",
|
|
65
|
+
"secondaryColor": "Cor secundária",
|
|
66
|
+
"backgroundColor": "Cor de fundo",
|
|
67
|
+
"textColor": "Cor do texto",
|
|
68
|
+
"fontSize": "Tamanho da fonte",
|
|
69
|
+
"fontFamily": "Família da fonte",
|
|
70
|
+
"name": "Nome",
|
|
71
|
+
"description": "Descrição",
|
|
72
|
+
"small": "Pequeno (12px)",
|
|
73
|
+
"medium": "Médio (15px)",
|
|
74
|
+
"large": "Grande (18px)",
|
|
75
|
+
"parameterName": "Nome do parâmetro",
|
|
76
|
+
"type": "Tipo",
|
|
77
|
+
"required": "Obrigatório",
|
|
78
|
+
"defaultValue": "Valor padrão",
|
|
79
|
+
"value": "Valor",
|
|
80
|
+
"yes": "Sim",
|
|
81
|
+
"no": "Não",
|
|
82
|
+
"true": "Verdadeiro",
|
|
83
|
+
"false": "Falso",
|
|
84
|
+
"string": "String",
|
|
85
|
+
"number": "Número",
|
|
86
|
+
"boolean": "Booleano",
|
|
87
|
+
"edit": "Editar",
|
|
88
|
+
"remove": "Remover"
|
|
89
|
+
}
|
|
90
|
+
}
|
package/dist/utils/time.d.ts
CHANGED
|
@@ -1 +1,6 @@
|
|
|
1
|
-
export
|
|
1
|
+
export interface TimeTranslations {
|
|
2
|
+
justNow: string;
|
|
3
|
+
today: string;
|
|
4
|
+
yesterday: string;
|
|
5
|
+
}
|
|
6
|
+
export declare const formatTimestamp: (timestamp: number, language?: string, translations?: TimeTranslations) => string;
|
package/dist/utils/time.js
CHANGED
|
@@ -1,32 +1,42 @@
|
|
|
1
|
-
export var formatTimestamp = function (timestamp) {
|
|
1
|
+
export var formatTimestamp = function (timestamp, language, translations) {
|
|
2
2
|
try {
|
|
3
3
|
if (!timestamp || isNaN(timestamp)) {
|
|
4
|
-
return 'Just now';
|
|
4
|
+
return (translations === null || translations === void 0 ? void 0 : translations.justNow) || 'Just now';
|
|
5
5
|
}
|
|
6
6
|
var timestampMs = timestamp < 1000000000000 ? timestamp * 1000 : timestamp;
|
|
7
7
|
var date = new Date(timestampMs);
|
|
8
8
|
if (isNaN(date.getTime())) {
|
|
9
|
-
return 'Just now';
|
|
9
|
+
return (translations === null || translations === void 0 ? void 0 : translations.justNow) || 'Just now';
|
|
10
10
|
}
|
|
11
11
|
var today = new Date();
|
|
12
12
|
var yesterday = new Date(today);
|
|
13
13
|
yesterday.setDate(yesterday.getDate() - 1);
|
|
14
|
+
// Use language for locale formatting
|
|
15
|
+
var localeMap = {
|
|
16
|
+
'en': 'en-US',
|
|
17
|
+
'es': 'es-ES',
|
|
18
|
+
'fr': 'fr-FR',
|
|
19
|
+
'de': 'de-DE',
|
|
20
|
+
'it': 'it-IT',
|
|
21
|
+
'pt': 'pt-PT',
|
|
22
|
+
};
|
|
23
|
+
var locale = language ? (localeMap[language] || language) : undefined;
|
|
14
24
|
var timeOptions = { hour: 'numeric', minute: '2-digit', hour12: true };
|
|
15
|
-
var timeStr = date.toLocaleTimeString(
|
|
25
|
+
var timeStr = date.toLocaleTimeString(locale, timeOptions);
|
|
16
26
|
if (date.toDateString() === today.toDateString()) {
|
|
17
|
-
return "Today, ".concat(timeStr);
|
|
27
|
+
return "".concat((translations === null || translations === void 0 ? void 0 : translations.today) || 'Today', ", ").concat(timeStr);
|
|
18
28
|
}
|
|
19
29
|
else if (date.toDateString() === yesterday.toDateString()) {
|
|
20
|
-
return "Yesterday, ".concat(timeStr);
|
|
30
|
+
return "".concat((translations === null || translations === void 0 ? void 0 : translations.yesterday) || 'Yesterday', ", ").concat(timeStr);
|
|
21
31
|
}
|
|
22
32
|
else {
|
|
23
33
|
var dateOptions = { month: 'short', day: 'numeric', year: 'numeric' };
|
|
24
|
-
var dateStr = date.toLocaleDateString(
|
|
34
|
+
var dateStr = date.toLocaleDateString(locale, dateOptions);
|
|
25
35
|
return "".concat(dateStr, ", ").concat(timeStr);
|
|
26
36
|
}
|
|
27
37
|
}
|
|
28
38
|
catch (_a) {
|
|
29
|
-
return 'Just now';
|
|
39
|
+
return (translations === null || translations === void 0 ? void 0 : translations.justNow) || 'Just now';
|
|
30
40
|
}
|
|
31
41
|
};
|
|
32
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
42
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy90aW1lLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU1BLE1BQU0sQ0FBQyxJQUFNLGVBQWUsR0FBRyxVQUM3QixTQUFpQixFQUNqQixRQUFpQixFQUNqQixZQUErQjtJQUUvQixJQUFJLENBQUM7UUFDSCxJQUFJLENBQUMsU0FBUyxJQUFJLEtBQUssQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDO1lBQ25DLE9BQU8sQ0FBQSxZQUFZLGFBQVosWUFBWSx1QkFBWixZQUFZLENBQUUsT0FBTyxLQUFJLFVBQVUsQ0FBQztRQUM3QyxDQUFDO1FBQ0QsSUFBTSxXQUFXLEdBQUcsU0FBUyxHQUFHLGFBQWEsQ0FBQyxDQUFDLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO1FBQzdFLElBQU0sSUFBSSxHQUFHLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ25DLElBQUksS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxFQUFFLENBQUM7WUFDMUIsT0FBTyxDQUFBLFlBQVksYUFBWixZQUFZLHVCQUFaLFlBQVksQ0FBRSxPQUFPLEtBQUksVUFBVSxDQUFDO1FBQzdDLENBQUM7UUFDRCxJQUFNLEtBQUssR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDO1FBQ3pCLElBQU0sU0FBUyxHQUFHLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2xDLFNBQVMsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLE9BQU8sRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBRTNDLHFDQUFxQztRQUNyQyxJQUFNLFNBQVMsR0FBMkI7WUFDeEMsSUFBSSxFQUFFLE9BQU87WUFDYixJQUFJLEVBQUUsT0FBTztZQUNiLElBQUksRUFBRSxPQUFPO1lBQ2IsSUFBSSxFQUFFLE9BQU87WUFDYixJQUFJLEVBQUUsT0FBTztZQUNiLElBQUksRUFBRSxPQUFPO1NBQ2QsQ0FBQztRQUNGLElBQU0sTUFBTSxHQUFHLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLElBQUksUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztRQUN4RSxJQUFNLFdBQVcsR0FBK0IsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxDQUFDO1FBQ3JHLElBQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFFN0QsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFLEtBQUssS0FBSyxDQUFDLFlBQVksRUFBRSxFQUFFLENBQUM7WUFDakQsT0FBTyxVQUFHLENBQUEsWUFBWSxhQUFaLFlBQVksdUJBQVosWUFBWSxDQUFFLEtBQUssS0FBSSxPQUFPLGVBQUssT0FBTyxDQUFFLENBQUM7UUFDekQsQ0FBQzthQUFNLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxLQUFLLFNBQVMsQ0FBQyxZQUFZLEVBQUUsRUFBRSxDQUFDO1lBQzVELE9BQU8sVUFBRyxDQUFBLFlBQVksYUFBWixZQUFZLHVCQUFaLFlBQVksQ0FBRSxTQUFTLEtBQUksV0FBVyxlQUFLLE9BQU8sQ0FBRSxDQUFDO1FBQ2pFLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBTSxXQUFXLEdBQStCLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsQ0FBQztZQUNwRyxJQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsTUFBTSxFQUFFLFdBQVcsQ0FBQyxDQUFDO1lBQzdELE9BQU8sVUFBRyxPQUFPLGVBQUssT0FBTyxDQUFFLENBQUM7UUFDbEMsQ0FBQztJQUNILENBQUM7SUFBQyxXQUFNLENBQUM7UUFDUCxPQUFPLENBQUEsWUFBWSxhQUFaLFlBQVksdUJBQVosWUFBWSxDQUFFLE9BQU8sS0FBSSxVQUFVLENBQUM7SUFDN0MsQ0FBQztBQUNILENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgVGltZVRyYW5zbGF0aW9ucyB7XG4gIGp1c3ROb3c6IHN0cmluZztcbiAgdG9kYXk6IHN0cmluZztcbiAgeWVzdGVyZGF5OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjb25zdCBmb3JtYXRUaW1lc3RhbXAgPSAoXG4gIHRpbWVzdGFtcDogbnVtYmVyLFxuICBsYW5ndWFnZT86IHN0cmluZyxcbiAgdHJhbnNsYXRpb25zPzogVGltZVRyYW5zbGF0aW9uc1xuKTogc3RyaW5nID0+IHtcbiAgdHJ5IHtcbiAgICBpZiAoIXRpbWVzdGFtcCB8fCBpc05hTih0aW1lc3RhbXApKSB7XG4gICAgICByZXR1cm4gdHJhbnNsYXRpb25zPy5qdXN0Tm93IHx8ICdKdXN0IG5vdyc7XG4gICAgfVxuICAgIGNvbnN0IHRpbWVzdGFtcE1zID0gdGltZXN0YW1wIDwgMTAwMDAwMDAwMDAwMCA/IHRpbWVzdGFtcCAqIDEwMDAgOiB0aW1lc3RhbXA7XG4gICAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKHRpbWVzdGFtcE1zKTtcbiAgICBpZiAoaXNOYU4oZGF0ZS5nZXRUaW1lKCkpKSB7XG4gICAgICByZXR1cm4gdHJhbnNsYXRpb25zPy5qdXN0Tm93IHx8ICdKdXN0IG5vdyc7XG4gICAgfVxuICAgIGNvbnN0IHRvZGF5ID0gbmV3IERhdGUoKTtcbiAgICBjb25zdCB5ZXN0ZXJkYXkgPSBuZXcgRGF0ZSh0b2RheSk7XG4gICAgeWVzdGVyZGF5LnNldERhdGUoeWVzdGVyZGF5LmdldERhdGUoKSAtIDEpO1xuICAgIFxuICAgIC8vIFVzZSBsYW5ndWFnZSBmb3IgbG9jYWxlIGZvcm1hdHRpbmdcbiAgICBjb25zdCBsb2NhbGVNYXA6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gICAgICAnZW4nOiAnZW4tVVMnLFxuICAgICAgJ2VzJzogJ2VzLUVTJyxcbiAgICAgICdmcic6ICdmci1GUicsXG4gICAgICAnZGUnOiAnZGUtREUnLFxuICAgICAgJ2l0JzogJ2l0LUlUJyxcbiAgICAgICdwdCc6ICdwdC1QVCcsXG4gICAgfTtcbiAgICBjb25zdCBsb2NhbGUgPSBsYW5ndWFnZSA/IChsb2NhbGVNYXBbbGFuZ3VhZ2VdIHx8IGxhbmd1YWdlKSA6IHVuZGVmaW5lZDtcbiAgICBjb25zdCB0aW1lT3B0aW9uczogSW50bC5EYXRlVGltZUZvcm1hdE9wdGlvbnMgPSB7IGhvdXI6ICdudW1lcmljJywgbWludXRlOiAnMi1kaWdpdCcsIGhvdXIxMjogdHJ1ZSB9O1xuICAgIGNvbnN0IHRpbWVTdHIgPSBkYXRlLnRvTG9jYWxlVGltZVN0cmluZyhsb2NhbGUsIHRpbWVPcHRpb25zKTtcbiAgICBcbiAgICBpZiAoZGF0ZS50b0RhdGVTdHJpbmcoKSA9PT0gdG9kYXkudG9EYXRlU3RyaW5nKCkpIHtcbiAgICAgIHJldHVybiBgJHt0cmFuc2xhdGlvbnM/LnRvZGF5IHx8ICdUb2RheSd9LCAke3RpbWVTdHJ9YDtcbiAgICB9IGVsc2UgaWYgKGRhdGUudG9EYXRlU3RyaW5nKCkgPT09IHllc3RlcmRheS50b0RhdGVTdHJpbmcoKSkge1xuICAgICAgcmV0dXJuIGAke3RyYW5zbGF0aW9ucz8ueWVzdGVyZGF5IHx8ICdZZXN0ZXJkYXknfSwgJHt0aW1lU3RyfWA7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IGRhdGVPcHRpb25zOiBJbnRsLkRhdGVUaW1lRm9ybWF0T3B0aW9ucyA9IHsgbW9udGg6ICdzaG9ydCcsIGRheTogJ251bWVyaWMnLCB5ZWFyOiAnbnVtZXJpYycgfTtcbiAgICAgIGNvbnN0IGRhdGVTdHIgPSBkYXRlLnRvTG9jYWxlRGF0ZVN0cmluZyhsb2NhbGUsIGRhdGVPcHRpb25zKTtcbiAgICAgIHJldHVybiBgJHtkYXRlU3RyfSwgJHt0aW1lU3RyfWA7XG4gICAgfVxuICB9IGNhdGNoIHtcbiAgICByZXR1cm4gdHJhbnNsYXRpb25zPy5qdXN0Tm93IHx8ICdKdXN0IG5vdyc7XG4gIH1cbn07XG5cbiJdfQ==
|
package/package.json
CHANGED
|
@@ -1,10 +1,19 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "genassist-chat-react",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.16",
|
|
4
4
|
"description": "React chat component for GenAssist",
|
|
5
|
-
"main": "dist/index.js",
|
|
6
|
-
"module": "dist/index.
|
|
7
|
-
"types": "dist/index.d.ts",
|
|
5
|
+
"main": "./dist/index.js",
|
|
6
|
+
"module": "./dist/index.js",
|
|
7
|
+
"types": "./dist/index.d.ts",
|
|
8
|
+
"exports": {
|
|
9
|
+
".": {
|
|
10
|
+
"types": "./dist/index.d.ts",
|
|
11
|
+
"import": "./dist/index.js",
|
|
12
|
+
"require": "./dist/index.js",
|
|
13
|
+
"default": "./dist/index.js"
|
|
14
|
+
},
|
|
15
|
+
"./package.json": "./package.json"
|
|
16
|
+
},
|
|
8
17
|
"files": [
|
|
9
18
|
"dist",
|
|
10
19
|
"assets"
|