@botpress/webchat 0.5.0 → 1.0.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 (295) hide show
  1. package/dist/App.d.ts +10 -0
  2. package/dist/Utils/colors.d.ts +18 -0
  3. package/dist/Utils/eventEmitter.d.ts +12 -0
  4. package/dist/Utils/index.d.ts +2 -0
  5. package/dist/client/MessagingClient.d.ts +27 -0
  6. package/dist/client/adapters/Audio.d.ts +19 -0
  7. package/dist/client/adapters/Card.d.ts +188 -0
  8. package/dist/client/adapters/Carousel.d.ts +147 -0
  9. package/dist/client/adapters/Choice.d.ts +45 -0
  10. package/dist/client/adapters/Dropdown.d.ts +46 -0
  11. package/dist/client/adapters/File.d.ts +19 -0
  12. package/dist/client/adapters/Image.d.ts +19 -0
  13. package/dist/client/adapters/Location.d.ts +27 -0
  14. package/dist/client/adapters/Message.d.ts +433 -0
  15. package/dist/client/adapters/Text.d.ts +20 -0
  16. package/dist/client/adapters/Utils.d.ts +5 -0
  17. package/dist/client/adapters/Video.d.ts +19 -0
  18. package/dist/client/adapters/Voice.d.ts +15 -0
  19. package/dist/client/adapters/index.d.ts +12 -0
  20. package/dist/client/index.d.ts +2 -0
  21. package/dist/components/Avatar.d.ts +6 -0
  22. package/dist/components/Block.d.ts +4 -0
  23. package/dist/components/Composer.d.ts +12 -14
  24. package/dist/components/Container.d.ts +2 -12
  25. package/dist/components/Header.d.ts +36 -26
  26. package/dist/components/LoadingIndicator.d.ts +2 -0
  27. package/dist/components/Message.d.ts +7 -0
  28. package/dist/components/MessageList.d.ts +2 -0
  29. package/dist/components/Modal.d.ts +17 -0
  30. package/dist/components/RestartConversation.d.ts +5 -0
  31. package/dist/components/Webchat.d.ts +6 -0
  32. package/dist/components/dev-tools/DevTools.d.ts +1 -0
  33. package/dist/components/dev-tools/configuration.d.ts +2 -0
  34. package/dist/components/dev-tools/helpers.d.ts +5 -0
  35. package/dist/components/index.d.ts +12 -0
  36. package/dist/components/renderers/Audio.d.ts +3 -0
  37. package/dist/components/renderers/Bubble.d.ts +5 -0
  38. package/dist/components/renderers/Button.d.ts +4 -0
  39. package/dist/components/renderers/Carousel.d.ts +3 -0
  40. package/dist/components/renderers/Column.d.ts +5 -0
  41. package/dist/components/renderers/Dropdown.d.ts +5 -0
  42. package/dist/components/renderers/File.d.ts +3 -0
  43. package/dist/components/renderers/Image.d.ts +3 -0
  44. package/dist/components/renderers/Location.d.ts +3 -0
  45. package/dist/components/renderers/Row.d.ts +5 -0
  46. package/dist/components/renderers/Text.d.ts +4 -0
  47. package/dist/components/renderers/Video.d.ts +3 -0
  48. package/dist/components/renderers/index.d.ts +2 -0
  49. package/dist/contexts/ComposerContext.d.ts +8 -0
  50. package/dist/contexts/MessageContext.d.ts +8 -0
  51. package/dist/contexts/ModalContext.d.ts +14 -0
  52. package/dist/contexts/WebchatContext.d.ts +56 -0
  53. package/dist/contexts/index.d.ts +4 -0
  54. package/dist/hooks/index.d.ts +3 -0
  55. package/dist/hooks/useImageSize.d.ts +2 -0
  56. package/dist/hooks/useRefresh.d.ts +10 -0
  57. package/dist/hooks/useWebchatStore.d.ts +30 -0
  58. package/dist/index.d.ts +3 -17
  59. package/dist/index.js +43569 -48
  60. package/dist/index.umd.cjs +702 -0
  61. package/dist/main.d.ts +11 -13
  62. package/dist/providers/ModalProvider.d.ts +8 -0
  63. package/dist/providers/WebchatProvider.d.ts +13 -0
  64. package/dist/providers/index.d.ts +2 -0
  65. package/dist/schemas/index.d.ts +1 -0
  66. package/dist/schemas/theme.d.ts +3371 -0
  67. package/dist/services/clipboard.d.ts +1 -0
  68. package/dist/services/images.d.ts +2 -0
  69. package/dist/services/index.d.ts +3 -0
  70. package/dist/services/toast.d.ts +17 -0
  71. package/dist/themes/dawn.d.ts +2 -0
  72. package/dist/themes/duskTheme.d.ts +2 -0
  73. package/dist/themes/eggplant.d.ts +2 -0
  74. package/dist/themes/galaxy.d.ts +2 -0
  75. package/dist/themes/index.d.ts +6 -0
  76. package/dist/themes/midnight.d.ts +2 -0
  77. package/dist/themes/prism.d.ts +2 -0
  78. package/dist/twind.config.d.ts +9 -0
  79. package/dist/types/block-type.d.ts +93 -0
  80. package/dist/types/image.d.ts +11 -0
  81. package/dist/types/index.d.ts +2 -0
  82. package/dist/vite.svg +1 -0
  83. package/index.html +18 -0
  84. package/package.json +60 -48
  85. package/public/vite.svg +1 -0
  86. package/src/App.tsx +41 -0
  87. package/src/Utils/colors.ts +45 -0
  88. package/src/Utils/eventEmitter.ts +31 -0
  89. package/src/Utils/index.ts +2 -0
  90. package/src/assets/check-circle-bold.svg +5 -0
  91. package/src/assets/chevron-up.svg +3 -0
  92. package/src/assets/file-05.svg +6 -0
  93. package/src/assets/globe-02.svg +6 -0
  94. package/src/assets/help-circle.svg +3 -0
  95. package/src/assets/info-circle.svg +3 -0
  96. package/src/assets/lock-01.svg +4 -0
  97. package/src/assets/mail-01.svg +6 -0
  98. package/src/assets/minus-circle.svg +3 -0
  99. package/src/assets/phone.svg +6 -0
  100. package/src/assets/send-03.svg +4 -0
  101. package/src/assets/share-04.svg +5 -0
  102. package/src/assets/slash-circle-01.svg +3 -0
  103. package/src/assets/x-circle-bold.svg +5 -0
  104. package/src/assets/x-close.svg +3 -0
  105. package/src/assets/x.svg +3 -0
  106. package/src/client/MessagingClient.ts +87 -0
  107. package/src/client/adapters/Audio.ts +10 -0
  108. package/src/client/adapters/Card.ts +104 -0
  109. package/src/client/adapters/Carousel.ts +11 -0
  110. package/src/client/adapters/Choice.ts +48 -0
  111. package/src/client/adapters/Dropdown.ts +39 -0
  112. package/src/client/adapters/File.ts +10 -0
  113. package/src/client/adapters/Image.ts +10 -0
  114. package/src/client/adapters/Location.ts +18 -0
  115. package/src/client/adapters/Message.ts +26 -0
  116. package/src/client/adapters/Text.ts +11 -0
  117. package/src/client/adapters/Utils.ts +11 -0
  118. package/src/client/adapters/Video.ts +10 -0
  119. package/src/client/adapters/Voice.ts +9 -0
  120. package/src/client/adapters/index.ts +12 -0
  121. package/src/client/index.ts +2 -0
  122. package/src/components/Avatar.tsx +22 -0
  123. package/src/components/Block.tsx +17 -0
  124. package/src/components/Composer.tsx +115 -0
  125. package/src/components/Container.tsx +17 -0
  126. package/src/components/Header.tsx +141 -0
  127. package/src/components/LoadingIndicator.tsx +15 -0
  128. package/src/components/Message.tsx +52 -0
  129. package/src/components/MessageList.tsx +75 -0
  130. package/src/components/Modal.tsx +49 -0
  131. package/src/components/RestartConversation.tsx +52 -0
  132. package/src/components/Webchat.tsx +68 -0
  133. package/src/components/dev-tools/DevTools.tsx +496 -0
  134. package/src/components/dev-tools/configuration.tsx +27 -0
  135. package/src/components/dev-tools/helpers.ts +21 -0
  136. package/src/components/index.ts +12 -0
  137. package/src/components/renderers/Audio.tsx +11 -0
  138. package/src/components/renderers/Bubble.tsx +12 -0
  139. package/src/components/renderers/Button.tsx +59 -0
  140. package/src/components/renderers/Carousel.tsx +51 -0
  141. package/src/components/renderers/Column.tsx +22 -0
  142. package/src/components/renderers/Dropdown.tsx +170 -0
  143. package/src/components/renderers/File.tsx +13 -0
  144. package/src/components/renderers/Image.tsx +63 -0
  145. package/src/components/renderers/Location.tsx +16 -0
  146. package/src/components/renderers/Row.tsx +22 -0
  147. package/src/components/renderers/Text.tsx +32 -0
  148. package/src/components/renderers/Video.tsx +11 -0
  149. package/src/components/renderers/index.ts +28 -0
  150. package/src/contexts/ComposerContext.ts +16 -0
  151. package/src/contexts/MessageContext.ts +16 -0
  152. package/src/contexts/ModalContext.ts +19 -0
  153. package/src/contexts/WebchatContext.ts +61 -0
  154. package/src/contexts/index.ts +4 -0
  155. package/src/hooks/index.ts +3 -0
  156. package/src/hooks/useImageSize.ts +30 -0
  157. package/src/hooks/useRefresh.ts +33 -0
  158. package/src/hooks/useWebchatStore.ts +45 -0
  159. package/src/index.css +18 -0
  160. package/src/index.ts +3 -0
  161. package/src/main.tsx +33 -0
  162. package/src/providers/ModalProvider.tsx +35 -0
  163. package/src/providers/WebchatProvider.tsx +107 -0
  164. package/src/providers/index.ts +2 -0
  165. package/src/schemas/index.ts +1 -0
  166. package/src/schemas/theme.ts +188 -0
  167. package/src/services/clipboard.ts +8 -0
  168. package/src/services/images.ts +39 -0
  169. package/src/services/index.ts +3 -0
  170. package/src/services/toast.tsx +71 -0
  171. package/src/themes/dawn.ts +277 -0
  172. package/src/themes/duskTheme.ts +349 -0
  173. package/src/themes/eggplant.ts +353 -0
  174. package/src/themes/galaxy.ts +323 -0
  175. package/src/themes/index.ts +6 -0
  176. package/src/themes/midnight.ts +276 -0
  177. package/src/themes/prism.ts +349 -0
  178. package/src/twind.config.ts +31 -0
  179. package/src/types/block-type.ts +150 -0
  180. package/src/types/image.ts +10 -0
  181. package/src/types/index.ts +2 -0
  182. package/src/vite-env.d.ts +1 -0
  183. package/tailwind.config.js +0 -0
  184. package/tsconfig.json +30 -0
  185. package/tsconfig.node.json +10 -0
  186. package/vite.config.ts +31 -0
  187. package/README.md +0 -31
  188. package/assets/fonts/roboto/roboto.woff2 +0 -0
  189. package/assets/fonts/roboto/roboto500.woff2 +0 -0
  190. package/assets/fonts/roboto.css +0 -128
  191. package/assets/notification.mp3 +0 -0
  192. package/dist/components/Composer.js +0 -118
  193. package/dist/components/Container.js +0 -62
  194. package/dist/components/ConversationList.d.ts +0 -10
  195. package/dist/components/ConversationList.js +0 -41
  196. package/dist/components/Footer.d.ts +0 -3
  197. package/dist/components/Footer.js +0 -21
  198. package/dist/components/Header.js +0 -181
  199. package/dist/components/VoiceRecorder.d.ts +0 -10
  200. package/dist/components/VoiceRecorder.js +0 -137
  201. package/dist/components/common/Avatar/index.d.ts +0 -9
  202. package/dist/components/common/Avatar/index.js +0 -13
  203. package/dist/components/common/BotInfo/index.d.ts +0 -10
  204. package/dist/components/common/BotInfo/index.js +0 -102
  205. package/dist/components/common/BotInfo/style.scss +0 -88
  206. package/dist/components/common/ConfirmDialog/index.d.ts +0 -11
  207. package/dist/components/common/ConfirmDialog/index.js +0 -78
  208. package/dist/components/common/ConfirmDialog/style.module.scss +0 -48
  209. package/dist/components/common/Dialog/index.d.ts +0 -17
  210. package/dist/components/common/Dialog/index.js +0 -57
  211. package/dist/components/common/Dialog/style.module.scss +0 -29
  212. package/dist/components/common/ToolTip/index.d.ts +0 -10
  213. package/dist/components/common/ToolTip/index.js +0 -163
  214. package/dist/components/common/ToolTip/style.module.scss +0 -108
  215. package/dist/components/common/ToolTip/utils.d.ts +0 -15
  216. package/dist/components/common/ToolTip/utils.js +0 -78
  217. package/dist/components/common/variables.scss +0 -38
  218. package/dist/components/messages/InlineFeedback.d.ts +0 -11
  219. package/dist/components/messages/InlineFeedback.js +0 -56
  220. package/dist/components/messages/Message.d.ts +0 -11
  221. package/dist/components/messages/Message.js +0 -106
  222. package/dist/components/messages/MessageGroup.d.ts +0 -23
  223. package/dist/components/messages/MessageGroup.js +0 -63
  224. package/dist/components/messages/MessageList.d.ts +0 -10
  225. package/dist/components/messages/MessageList.js +0 -154
  226. package/dist/core/api.d.ts +0 -23
  227. package/dist/core/api.js +0 -117
  228. package/dist/core/constants.d.ts +0 -14
  229. package/dist/core/constants.js +0 -29
  230. package/dist/core/socket.d.ts +0 -14
  231. package/dist/core/socket.js +0 -57
  232. package/dist/declaration.d.ts +0 -1
  233. package/dist/declaration.js +0 -1
  234. package/dist/fonts/roboto.d.ts +0 -4
  235. package/dist/fonts/roboto.js +0 -9
  236. package/dist/globals.d.ts +0 -7
  237. package/dist/globals.js +0 -2
  238. package/dist/icons/Add.d.ts +0 -6
  239. package/dist/icons/Add.js +0 -10
  240. package/dist/icons/Cancel.d.ts +0 -5
  241. package/dist/icons/Cancel.js +0 -10
  242. package/dist/icons/Chat.d.ts +0 -6
  243. package/dist/icons/Chat.js +0 -9
  244. package/dist/icons/Close.d.ts +0 -3
  245. package/dist/icons/Close.js +0 -10
  246. package/dist/icons/Delete.d.ts +0 -3
  247. package/dist/icons/Delete.js +0 -11
  248. package/dist/icons/Download.d.ts +0 -3
  249. package/dist/icons/Download.js +0 -10
  250. package/dist/icons/Email.d.ts +0 -3
  251. package/dist/icons/Email.js +0 -8
  252. package/dist/icons/Information.d.ts +0 -3
  253. package/dist/icons/Information.js +0 -12
  254. package/dist/icons/List.d.ts +0 -3
  255. package/dist/icons/List.js +0 -15
  256. package/dist/icons/Microphone.d.ts +0 -5
  257. package/dist/icons/Microphone.js +0 -12
  258. package/dist/icons/Phone.d.ts +0 -3
  259. package/dist/icons/Phone.js +0 -8
  260. package/dist/icons/Reload.d.ts +0 -3
  261. package/dist/icons/Reload.js +0 -10
  262. package/dist/icons/ThumbsDown.d.ts +0 -3
  263. package/dist/icons/ThumbsDown.js +0 -11
  264. package/dist/icons/ThumbsUp.d.ts +0 -3
  265. package/dist/icons/ThumbsUp.js +0 -11
  266. package/dist/icons/Website.d.ts +0 -3
  267. package/dist/icons/Website.js +0 -8
  268. package/dist/main.js +0 -336
  269. package/dist/store/composer.d.ts +0 -17
  270. package/dist/store/composer.js +0 -98
  271. package/dist/store/index.d.ts +0 -82
  272. package/dist/store/index.js +0 -576
  273. package/dist/store/view.d.ts +0 -61
  274. package/dist/store/view.js +0 -361
  275. package/dist/translations/ar.json +0 -30
  276. package/dist/translations/de.json +0 -32
  277. package/dist/translations/en.json +0 -40
  278. package/dist/translations/es.json +0 -19
  279. package/dist/translations/fr.json +0 -40
  280. package/dist/translations/index.d.ts +0 -9
  281. package/dist/translations/index.js +0 -95
  282. package/dist/translations/it.json +0 -38
  283. package/dist/translations/pt.json +0 -19
  284. package/dist/translations/ru.json +0 -24
  285. package/dist/translations/uk.json +0 -24
  286. package/dist/typings.d.ts +0 -378
  287. package/dist/typings.js +0 -2
  288. package/dist/utils/analytics.d.ts +0 -5
  289. package/dist/utils/analytics.js +0 -37
  290. package/dist/utils/index.d.ts +0 -3
  291. package/dist/utils/index.js +0 -27
  292. package/dist/utils/storage.d.ts +0 -16
  293. package/dist/utils/storage.js +0 -129
  294. package/dist/utils/webchatEvents.d.ts +0 -2
  295. package/dist/utils/webchatEvents.js +0 -14
@@ -1,361 +0,0 @@
1
- "use strict";
2
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
- return c > 3 && r && Object.defineProperty(target, key, r), r;
7
- };
8
- var __importDefault = (this && this.__importDefault) || function (mod) {
9
- return (mod && mod.__esModule) ? mod : { "default": mod };
10
- };
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- const merge_1 = __importDefault(require("lodash/merge"));
13
- const mobx_1 = require("mobx");
14
- const constants_1 = __importDefault(require("../core/constants"));
15
- const webchatEvents_1 = require("../utils/webchatEvents");
16
- class ViewStore {
17
- constructor(rootStore, fullscreen) {
18
- /** If false, probably embedded on a website or on the studio */
19
- this.isFullscreen = true;
20
- this.unreadCount = 0;
21
- this.isConversationsDisplayed = false;
22
- this._isLoading = true;
23
- this._showBotInfo = false;
24
- this.isPoweredByDisplayed = true;
25
- this.focusedArea = mobx_1.observable.box('input');
26
- /** These buttons are displayed in the header, and can point to actions on your custom components */
27
- this.customButtons = [];
28
- this.customActions = [];
29
- this.disableAnimations = false;
30
- this.rootStore = rootStore;
31
- this.isFullscreen = fullscreen;
32
- this.activeView = fullscreen ? 'side' : 'widget';
33
- this.dimensions = {
34
- container: fullscreen ? '100%' : constants_1.default.DEFAULT_CONTAINER_WIDTH,
35
- layout: fullscreen ? '100%' : constants_1.default.DEFAULT_LAYOUT_WIDTH
36
- };
37
- }
38
- get showConversationsButton() {
39
- var _a;
40
- return (_a = this.rootStore.config) === null || _a === void 0 ? void 0 : _a.showConversationsButton;
41
- }
42
- get showBotInfoButton() {
43
- return !this.isConversationsDisplayed && this.rootStore.botInfo && this.rootStore.botInfo.showBotInfoPage;
44
- }
45
- get showDownloadButton() {
46
- return !this.isConversationsDisplayed && !this.isBotInfoDisplayed && this.rootStore.config.enableTranscriptDownload;
47
- }
48
- get showDeleteConversationButton() {
49
- return (!this.isConversationsDisplayed && !this.isBotInfoDisplayed && this.rootStore.config.enableConversationDeletion);
50
- }
51
- get showCloseButton() {
52
- return !this.isFullscreen;
53
- }
54
- get showWidgetButton() {
55
- var _a;
56
- return !((_a = this.rootStore.config) === null || _a === void 0 ? void 0 : _a.hideWidget);
57
- }
58
- get hasUnreadMessages() {
59
- return this.unreadCount > 0;
60
- }
61
- get isWebchatReady() {
62
- return !this._isLoading && this.activeView;
63
- }
64
- get isBotInfoDisplayed() {
65
- return this._showBotInfo && this.rootStore.botInfo && this.rootStore.botInfo.showBotInfoPage;
66
- }
67
- /** Returns the active transition for the side panel, like fade in or out */
68
- get sideTransition() {
69
- var _a;
70
- return !this.isFullscreen && ((_a = this.transitions) === null || _a === void 0 ? void 0 : _a.sideTransition);
71
- }
72
- get widgetTransition() {
73
- var _a;
74
- return (_a = this.transitions) === null || _a === void 0 ? void 0 : _a.widgetTransition;
75
- }
76
- get displayWidgetView() {
77
- return this.activeView !== 'side' && !this.isFullscreen;
78
- }
79
- /** Sets the current focus to that element */
80
- setFocus(element) {
81
- this.focusedArea.set(element);
82
- }
83
- focusPrevious() {
84
- const current = this._getFocusOrder(this.focusedArea.get());
85
- if (current) {
86
- this.setFocus(current.prev);
87
- }
88
- }
89
- focusNext() {
90
- const current = this._getFocusOrder(this.focusedArea.get());
91
- if (current) {
92
- this.setFocus(current.next);
93
- }
94
- }
95
- incrementUnread() {
96
- this.unreadCount++;
97
- }
98
- resetUnread() {
99
- this.unreadCount = 0;
100
- }
101
- toggleBotInfo() {
102
- this._showBotInfo = !this._showBotInfo;
103
- }
104
- showBotInfo() {
105
- this._showBotInfo = true;
106
- }
107
- toggleConversations() {
108
- this.isConversationsDisplayed = !this.isConversationsDisplayed;
109
- }
110
- hideConversations() {
111
- this.isConversationsDisplayed = false;
112
- }
113
- setLoadingCompleted() {
114
- this._isLoading = false;
115
- (0, webchatEvents_1.postMessageToParent)('LIFECYCLE.LOADED', undefined, this.rootStore.config.chatId);
116
- }
117
- showPoweredBy() {
118
- this.isPoweredByDisplayed = true;
119
- }
120
- hidePoweredBy() {
121
- this.isPoweredByDisplayed = false;
122
- }
123
- setLayoutWidth(width) {
124
- if (width) {
125
- this.dimensions.layout = typeof width === 'number' ? `${width}px` : width;
126
- }
127
- }
128
- setContainerWidth(width) {
129
- if (width) {
130
- this.dimensions.container = width = typeof width === 'number' ? `${width}px` : width;
131
- }
132
- }
133
- addCustomAction(newAction) {
134
- if (this.customActions.find((act) => act.id === newAction.id)) {
135
- console.error("Can't add another action with the same ID.");
136
- return;
137
- }
138
- this.customActions.push(newAction);
139
- }
140
- removeCustomAction(actionId) {
141
- this.customActions = this.customActions.filter((btn) => btn.id !== actionId);
142
- }
143
- addHeaderButton(newButton) {
144
- if (this.customButtons.find((btn) => btn.id === newButton.id)) {
145
- console.error("Can't add another button with the same ID.");
146
- return;
147
- }
148
- this.customButtons.push(newButton);
149
- }
150
- /** Updates one or multiple properties of a specific button */
151
- updateHeaderButton(buttonId, newProps) {
152
- const button = this.customButtons.find((btn) => btn.id === buttonId);
153
- button && (0, merge_1.default)(button, newProps);
154
- }
155
- removeHeaderButton(buttonId) {
156
- this.customButtons = this.customButtons.filter((btn) => btn.id !== buttonId);
157
- }
158
- showChat() {
159
- if (this.disableAnimations) {
160
- this.activeView = 'side';
161
- (0, webchatEvents_1.postMessageToParent)('UI.OPENED', undefined, this.rootStore.config.chatId);
162
- return this._updateTransitions({ widgetTransition: undefined, sideTransition: 'none' });
163
- }
164
- this._updateTransitions({ widgetTransition: 'fadeOut' });
165
- setTimeout(() => {
166
- this._updateTransitions({ sideTransition: 'fadeIn' });
167
- }, constants_1.default.ANIMATION_DURATION + 10);
168
- this._endAnimation('side');
169
- (0, webchatEvents_1.postMessageToParent)('UI.OPENED', undefined, this.rootStore.config.chatId);
170
- }
171
- hideChat() {
172
- if (this.isFullscreen) {
173
- return;
174
- }
175
- if (this.disableAnimations) {
176
- this.activeView = 'widget';
177
- (0, webchatEvents_1.postMessageToParent)('UI.CLOSED', undefined, this.rootStore.config.chatId);
178
- return this._updateTransitions({ widgetTransition: undefined, sideTransition: undefined });
179
- }
180
- this._updateTransitions({ sideTransition: 'fadeOut' });
181
- if (!this.activeView || this.activeView === 'side') {
182
- setTimeout(() => {
183
- this._updateTransitions({ widgetTransition: 'fadeIn' });
184
- }, constants_1.default.ANIMATION_DURATION + 10);
185
- }
186
- this._endAnimation('widget');
187
- (0, webchatEvents_1.postMessageToParent)('UI.CLOSED', undefined, this.rootStore.config.chatId);
188
- }
189
- _endAnimation(finalView) {
190
- setTimeout(() => {
191
- (0, mobx_1.runInAction)(() => {
192
- this.activeView = finalView;
193
- });
194
- }, constants_1.default.ANIMATION_DURATION);
195
- setTimeout(() => {
196
- this._updateTransitions({
197
- widgetTransition: undefined,
198
- sideTransition: this.transitions.sideTransition === 'fadeIn' ? 'fadeIn' : undefined
199
- });
200
- }, constants_1.default.ANIMATION_DURATION * 2.1);
201
- }
202
- _updateTransitions({ widgetTransition, sideTransition }) {
203
- this.transitions = { widgetTransition, sideTransition };
204
- }
205
- _getFocusOrder(current) {
206
- if (current === 'header') {
207
- return { prev: 'input', next: 'convo' };
208
- }
209
- else if (current === 'input' && !this.isConversationsDisplayed && !this.isBotInfoDisplayed) {
210
- return { prev: 'convo', next: 'header' };
211
- }
212
- else if (current === 'convo') {
213
- return { prev: 'header', next: 'input' };
214
- }
215
- }
216
- }
217
- __decorate([
218
- mobx_1.observable
219
- ], ViewStore.prototype, "isFullscreen", void 0);
220
- __decorate([
221
- mobx_1.observable
222
- ], ViewStore.prototype, "unreadCount", void 0);
223
- __decorate([
224
- mobx_1.observable
225
- ], ViewStore.prototype, "dimensions", void 0);
226
- __decorate([
227
- mobx_1.observable
228
- ], ViewStore.prototype, "isConversationsDisplayed", void 0);
229
- __decorate([
230
- mobx_1.observable
231
- ], ViewStore.prototype, "activeView", void 0);
232
- __decorate([
233
- mobx_1.observable
234
- ], ViewStore.prototype, "transitions", void 0);
235
- __decorate([
236
- mobx_1.observable
237
- ], ViewStore.prototype, "_isLoading", void 0);
238
- __decorate([
239
- mobx_1.observable
240
- ], ViewStore.prototype, "_showBotInfo", void 0);
241
- __decorate([
242
- mobx_1.observable
243
- ], ViewStore.prototype, "isPoweredByDisplayed", void 0);
244
- __decorate([
245
- mobx_1.observable
246
- ], ViewStore.prototype, "focusedArea", void 0);
247
- __decorate([
248
- mobx_1.observable
249
- ], ViewStore.prototype, "customButtons", void 0);
250
- __decorate([
251
- mobx_1.observable
252
- ], ViewStore.prototype, "customActions", void 0);
253
- __decorate([
254
- mobx_1.observable
255
- ], ViewStore.prototype, "disableAnimations", void 0);
256
- __decorate([
257
- mobx_1.computed
258
- ], ViewStore.prototype, "showConversationsButton", null);
259
- __decorate([
260
- mobx_1.computed
261
- ], ViewStore.prototype, "showBotInfoButton", null);
262
- __decorate([
263
- mobx_1.computed
264
- ], ViewStore.prototype, "showDownloadButton", null);
265
- __decorate([
266
- mobx_1.computed
267
- ], ViewStore.prototype, "showDeleteConversationButton", null);
268
- __decorate([
269
- mobx_1.computed
270
- ], ViewStore.prototype, "showCloseButton", null);
271
- __decorate([
272
- mobx_1.computed
273
- ], ViewStore.prototype, "showWidgetButton", null);
274
- __decorate([
275
- mobx_1.computed
276
- ], ViewStore.prototype, "hasUnreadMessages", null);
277
- __decorate([
278
- mobx_1.computed
279
- ], ViewStore.prototype, "isWebchatReady", null);
280
- __decorate([
281
- mobx_1.computed
282
- ], ViewStore.prototype, "isBotInfoDisplayed", null);
283
- __decorate([
284
- mobx_1.computed
285
- ], ViewStore.prototype, "sideTransition", null);
286
- __decorate([
287
- mobx_1.computed
288
- ], ViewStore.prototype, "widgetTransition", null);
289
- __decorate([
290
- mobx_1.computed
291
- ], ViewStore.prototype, "displayWidgetView", null);
292
- __decorate([
293
- mobx_1.action.bound
294
- ], ViewStore.prototype, "setFocus", null);
295
- __decorate([
296
- mobx_1.action.bound
297
- ], ViewStore.prototype, "focusPrevious", null);
298
- __decorate([
299
- mobx_1.action.bound
300
- ], ViewStore.prototype, "focusNext", null);
301
- __decorate([
302
- mobx_1.action.bound
303
- ], ViewStore.prototype, "incrementUnread", null);
304
- __decorate([
305
- mobx_1.action.bound
306
- ], ViewStore.prototype, "resetUnread", null);
307
- __decorate([
308
- mobx_1.action.bound
309
- ], ViewStore.prototype, "toggleBotInfo", null);
310
- __decorate([
311
- mobx_1.action.bound
312
- ], ViewStore.prototype, "showBotInfo", null);
313
- __decorate([
314
- mobx_1.action.bound
315
- ], ViewStore.prototype, "toggleConversations", null);
316
- __decorate([
317
- mobx_1.action.bound
318
- ], ViewStore.prototype, "hideConversations", null);
319
- __decorate([
320
- mobx_1.action.bound
321
- ], ViewStore.prototype, "setLoadingCompleted", null);
322
- __decorate([
323
- mobx_1.action.bound
324
- ], ViewStore.prototype, "showPoweredBy", null);
325
- __decorate([
326
- mobx_1.action.bound
327
- ], ViewStore.prototype, "hidePoweredBy", null);
328
- __decorate([
329
- mobx_1.action.bound
330
- ], ViewStore.prototype, "setLayoutWidth", null);
331
- __decorate([
332
- mobx_1.action.bound
333
- ], ViewStore.prototype, "setContainerWidth", null);
334
- __decorate([
335
- mobx_1.action.bound
336
- ], ViewStore.prototype, "addCustomAction", null);
337
- __decorate([
338
- mobx_1.action.bound
339
- ], ViewStore.prototype, "removeCustomAction", null);
340
- __decorate([
341
- mobx_1.action.bound
342
- ], ViewStore.prototype, "addHeaderButton", null);
343
- __decorate([
344
- mobx_1.action.bound
345
- ], ViewStore.prototype, "updateHeaderButton", null);
346
- __decorate([
347
- mobx_1.action.bound
348
- ], ViewStore.prototype, "removeHeaderButton", null);
349
- __decorate([
350
- mobx_1.action.bound
351
- ], ViewStore.prototype, "showChat", null);
352
- __decorate([
353
- mobx_1.action.bound
354
- ], ViewStore.prototype, "hideChat", null);
355
- __decorate([
356
- mobx_1.action.bound
357
- ], ViewStore.prototype, "_endAnimation", null);
358
- __decorate([
359
- mobx_1.action.bound
360
- ], ViewStore.prototype, "_updateTransitions", null);
361
- exports.default = ViewStore;
@@ -1,30 +0,0 @@
1
- {
2
- "composer.placeholder": "الرد على {name}",
3
- "composer.placeholderInit": "قل شيئا ل {name}",
4
- "composer.message": "رسالة لإرسالها",
5
- "composer.send": "إرسال",
6
- "composer.sendMessage": "أرسل رسالة",
7
- "composer.interact": "تفاعل مع الشات بوت الخاص بك",
8
- "header.conversations": "محادثات",
9
- "header.deleteConversation": "هل أنت متأكد أنك تريد حذف هذه المحادثة بأكملها؟",
10
- "header.deleteConversationYes": "حذف",
11
- "header.deleteConversationNo": "إلغاء",
12
- "footer.poweredBy": "{link} نحن مدعومون من",
13
- "conversationList.untitledConversation": "محادثة بلا عنوان",
14
- "conversationList.title": "محادثة {id}",
15
- "botInfo.backToConversation": "العودة الى المحادثة",
16
- "botInfo.startConversation": "بداية محادثة",
17
- "botInfo.privacyPolicy": "عرض سياسة الخصوصية",
18
- "botInfo.termsAndConditions": "عرض شروط الخدمة",
19
- "botInfo.preferredLanguage": "اللغة المفضلة",
20
- "store.resetSessionMessage": "إعادة بدء المحادثة",
21
- "loginForm.userName": "اسم المستخدم",
22
- "loginForm.password": "كلمة المرور",
23
- "loginForm.submit": "تقديم",
24
- "loginForm.formTitle": "نموذج تسجيل الدخول",
25
- "loginForm.providedCredentials": "تم إدخال تفاصيل الدخول",
26
- "messages.newMessage": "رسالة جديدة",
27
- "messages.newMessages": "رسائل جديدة",
28
- "widget.title": "نافذة الدردشة",
29
- "widget.toggle": "تبديل نافذة الدردشة"
30
- }
@@ -1,32 +0,0 @@
1
- {
2
- "composer.placeholder": "Schreibe {name}",
3
- "composer.placeholderInit": "Sag etwas zu {name}",
4
- "composer.message": "Nachricht zum Versenden",
5
- "composer.send": "Senden",
6
- "header.conversations": "Unterhaltungen",
7
- "header.hideChatWindow": "Das Chatfenster verstecken",
8
- "header.deleteConversation": "Möchten Sie das gesamte Gespräch wirklich löschen?",
9
- "header.deleteConversationYes": "Löschen",
10
- "header.deleteConversationNo": "Stornieren",
11
- "conversationList.untitledConversation": "Unbenannte Unterhaltung",
12
- "conversationList.title": "Konversation {id}",
13
- "botInfo.backToConversation": "Zurück zur Unterhaltung",
14
- "botInfo.startConversation": "Unterhaltung beginnen",
15
- "botInfo.privacyPolicy": "Datenschutzerklärung anzeigen",
16
- "botInfo.termsAndConditions": "Geschäftsbedingungen anzeigen",
17
- "botInfo.preferredLanguage": "Bevorzugte Sprache",
18
- "store.resetSessionMessage": "Unterhaltung zurücksetzen",
19
- "loginForm.userName": "Benutzername",
20
- "loginForm.password": "Passwort",
21
- "loginForm.submit": "Absenden",
22
- "loginForm.formTitle": "Anmeldeformular",
23
- "loginForm.providedCredentials": "Bereitgestellte Anmeldedaten",
24
- "message.botSaid": "Virtuelle Assistent sagte : ",
25
- "message.fromBotLabel": "Virtueller Assistent",
26
- "message.fromMeLabel": "Ich",
27
- "message.iSaid": "Ich sagte : ",
28
- "messages.newMessage": "Neue Nachricht",
29
- "messages.newMessages": "Neue Nachrichten",
30
- "widget.title": "Chatfenster",
31
- "widget.toggle": "Chatfenster ein- oder ausblenden"
32
- }
@@ -1,40 +0,0 @@
1
- {
2
- "composer.dropdownPlaceholder": "Select a choice",
3
- "composer.placeholder": "Reply to {name}",
4
- "composer.placeholderInit": "Say something to {name}",
5
- "composer.message": "Message to send",
6
- "composer.send": "Send",
7
- "composer.sendMessage": "Send Message",
8
- "composer.interact": "Interact with your chatbot",
9
- "footer.poweredBy": "We're {icon} by {link}",
10
- "header.conversations": "Conversations",
11
- "header.hideChatWindow": "Hide the chat window",
12
- "header.deleteConversation": "Are you sure you want to delete this entire conversation?",
13
- "header.deleteConversationYes": "Delete",
14
- "header.deleteConversationNo": "Cancel",
15
- "conversationList.untitledConversation": "Untitled Conversation",
16
- "conversationList.title": "Conversation {id}",
17
- "botInfo.backToConversation": "Back to Conversation",
18
- "botInfo.startConversation": "Start Conversation",
19
- "botInfo.privacyPolicy": "View Privacy Policy",
20
- "botInfo.termsAndConditions": "View Terms of Service",
21
- "botInfo.preferredLanguage": "Preferred Language",
22
- "store.resetSessionMessage": "Reset the conversation",
23
- "loginForm.userName": "Username",
24
- "loginForm.password": "Password",
25
- "loginForm.submit": "Submit",
26
- "loginForm.formTitle": "Login form",
27
- "loginForm.providedCredentials": "Provided credentials",
28
- "message.botSaid": "Virtual assistant said : ",
29
- "message.fromBotLabel": "Virtual Assistant",
30
- "message.fromMeLabel": "Me",
31
- "message.iSaid": "I said : ",
32
- "messages.newMessage": "New message",
33
- "messages.newMessages": "New messages",
34
- "messages.readMore": "Read More",
35
- "messages.showLess": "Show Less",
36
- "message.thumbsUp": "Thumbs Up",
37
- "message.thumbsDown": "Thumbs Down",
38
- "widget.title": "Chat window",
39
- "widget.toggle": "Toggle chatbot window"
40
- }
@@ -1,19 +0,0 @@
1
- {
2
- "composer.placeholder": "Responder a {name}",
3
- "composer.placeholderInit": "Decir algo a {name}",
4
- "composer.send": "Enviar",
5
- "header.conversations": "Conversaciones",
6
- "header.deleteConversation": "¿Estás seguro de que deseas eliminar toda esta conversación?",
7
- "header.deleteConversationYes": "Eliminar",
8
- "header.deleteConversationNo": "Cancelar",
9
- "conversationList.untitledConversation": "Conversación sin título",
10
- "conversationList.title": "Conversacion {id}",
11
- "botInfo.backToConversation": "Volver a conversar",
12
- "botInfo.startConversation": "Iniciar conversación",
13
- "botInfo.privacyPolicy": "Ver política de privacidad",
14
- "botInfo.termsAndConditions": "Ver términos de servicio",
15
- "botInfo.preferredLanguage": "Preferred Language",
16
- "store.resetSessionMessage": "Restablecer la conversación",
17
- "messages.newMessage": "Nuevo mensaje",
18
- "messages.newMessages": "Nuevos mensajes"
19
- }
@@ -1,40 +0,0 @@
1
- {
2
- "composer.dropdownPlaceholder": "Sélectionnez un choix",
3
- "composer.placeholder": "Répondre à {name}",
4
- "composer.placeholderInit": "Dites quelque chose à {name}",
5
- "composer.message": "Message à envoyer",
6
- "composer.send": "Envoyer",
7
- "composer.sendMessage": "Envoyer le message",
8
- "composer.interact": "Interagir avec votre assistant virtuel",
9
- "footer.poweredBy": "Propulsé par {link}",
10
- "header.conversations": "Conversations",
11
- "header.hideChatWindow": "Cacher la fenêtre de clavardage",
12
- "header.deleteConversation": "Êtes-vous certain de vouloir supprimer cette conversation?",
13
- "header.deleteConversationYes": "Supprimer",
14
- "header.deleteConversationNo": "Annuler",
15
- "conversationList.untitledConversation": "Conversation sans titre",
16
- "conversationList.title": "Conversation {id}",
17
- "botInfo.backToConversation": "Retour à la conversation",
18
- "botInfo.startConversation": "Démarrer la conversation",
19
- "botInfo.privacyPolicy": "Politique de confidentialité",
20
- "botInfo.termsAndConditions": "Termes et conditions",
21
- "botInfo.preferredLanguage": "Langue préférée",
22
- "store.resetSessionMessage": "Réinitialisation de la conversation",
23
- "loginForm.userName": "Identifiant",
24
- "loginForm.password": "Mot de passe",
25
- "loginForm.submit": "Envoyer",
26
- "loginForm.formTitle": "Formulaire de connexion",
27
- "loginForm.providedCredentials": "Identifiants renseignés",
28
- "message.botSaid": "L'assistant virtuel a dit : ",
29
- "message.fromBotLabel": "Assistant virtuel",
30
- "message.fromMeLabel": "Moi",
31
- "message.iSaid": "J'ai dit : ",
32
- "messages.newMessage": "Nouveau message",
33
- "messages.newMessages": "Nouveaux messages",
34
- "messages.readMore": "Afficher la suite",
35
- "messages.showLess": "Afficher moins",
36
- "message.thumbsUp": "Très bien",
37
- "message.thumbsDown": "Mauvais",
38
- "widget.title": "Fenêtre de clavardage",
39
- "widget.toggle": "Ouvrir ou fermer la conversation"
40
- }
@@ -1,9 +0,0 @@
1
- declare type Locale = 'browser' | string;
2
- declare const DEFAULT_LOCALE = "en";
3
- declare const translations: {
4
- [lang: string]: any;
5
- };
6
- declare const getUserLocale: (manualLocale?: Locale) => string;
7
- declare const setUserLocale: (locale: Locale) => void;
8
- declare const isRTLLocale: (locale?: string | undefined) => boolean;
9
- export { translations, DEFAULT_LOCALE as defaultLocale, getUserLocale, setUserLocale, isRTLLocale };
@@ -1,95 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.isRTLLocale = exports.setUserLocale = exports.getUserLocale = exports.defaultLocale = exports.translations = void 0;
7
- require('@formatjs/intl-pluralrules/polyfill');
8
- require('@formatjs/intl-pluralrules/locale-data/ar');
9
- require('@formatjs/intl-pluralrules/locale-data/de');
10
- require('@formatjs/intl-pluralrules/locale-data/en');
11
- require('@formatjs/intl-pluralrules/locale-data/es');
12
- require('@formatjs/intl-pluralrules/locale-data/fr');
13
- require('@formatjs/intl-pluralrules/locale-data/it');
14
- require('@formatjs/intl-pluralrules/locale-data/pt');
15
- require('@formatjs/intl-pluralrules/locale-data/ru');
16
- require('@formatjs/intl-pluralrules/locale-data/uk');
17
- const ar_json_1 = __importDefault(require("./ar.json"));
18
- const de_json_1 = __importDefault(require("./de.json"));
19
- const en_json_1 = __importDefault(require("./en.json"));
20
- const es_json_1 = __importDefault(require("./es.json"));
21
- const fr_json_1 = __importDefault(require("./fr.json"));
22
- const it_json_1 = __importDefault(require("./it.json"));
23
- const pt_json_1 = __importDefault(require("./pt.json"));
24
- const ru_json_1 = __importDefault(require("./ru.json"));
25
- const uk_json_1 = __importDefault(require("./uk.json"));
26
- const DEFAULT_LOCALE = 'en';
27
- exports.defaultLocale = DEFAULT_LOCALE;
28
- const USER_LANG_STORAGE_KEY = 'user-lang';
29
- const translations = { en: en_json_1.default, fr: fr_json_1.default, pt: pt_json_1.default, es: es_json_1.default, ar: ar_json_1.default, ru: ru_json_1.default, uk: uk_json_1.default, de: de_json_1.default, it: it_json_1.default };
30
- exports.translations = translations;
31
- const rtlLocales = [
32
- 'ae' /* Avestan */,
33
- 'ar' /* 'العربية', Arabic */,
34
- 'arc' /* Aramaic */,
35
- 'bcc' /* 'بلوچی مکرانی', Southern Balochi */,
36
- 'bqi' /* 'بختياري', Bakthiari */,
37
- 'ckb' /* 'Soranî / کوردی', Sorani */,
38
- 'dv' /* Dhivehi */,
39
- 'fa' /* 'فارسی', Persian */,
40
- 'glk' /* 'گیلکی', Gilaki */,
41
- 'he' /* 'עברית', Hebrew */,
42
- 'ku' /* 'Kurdî / كوردی', Kurdish */,
43
- 'mzn' /* 'مازِرونی', Mazanderani */,
44
- 'nqo' /* N'Ko */,
45
- 'pnb' /* 'پنجابی', Western Punjabi */,
46
- 'ps' /* 'پښتو', Pashto, */,
47
- 'sd' /* 'سنڌي', Sindhi */,
48
- 'ug' /* 'Uyghurche / ئۇيغۇرچە', Uyghur */,
49
- 'ur' /* 'اردو', Urdu */,
50
- 'yi' /* 'ייִדיש', Yiddish */
51
- ];
52
- // 'en-US' becomes ['en', '-us'] 'en' becomes ['en']
53
- const localeRegex = /^([a-zA-Z]{2,3})([_\-a-zA-Z]{3,5})$/;
54
- const cleanLanguageCode = (str) => str.split('-')[0];
55
- const getNavigatorLanguage = () => cleanLanguageCode(navigator.language || navigator['userLanguage'] || '');
56
- const getStorageLanguage = () => cleanLanguageCode(window.BP_STORAGE.get(USER_LANG_STORAGE_KEY) || '');
57
- const setStorageLanguage = (locale) => window.BP_STORAGE.set(USER_LANG_STORAGE_KEY, locale);
58
- // Desired precedence
59
- // 1- manual locale = 'browser' : browser lang
60
- // 2- manual locale is supported : manual lang
61
- // 3- storage lang is supported : storage lang
62
- // 4- browser lang is supported : browser lang
63
- // 5- default lang
64
- const getUserLocale = (manualLocale = '') => {
65
- const browserLocale = getNavigatorLanguage();
66
- if (manualLocale === 'browser' && translations[browserLocale]) {
67
- return browserLocale;
68
- }
69
- manualLocale = cleanLanguageCode(manualLocale);
70
- if (translations[manualLocale]) {
71
- return manualLocale;
72
- }
73
- const storageLocale = getStorageLanguage();
74
- if (translations[storageLocale]) {
75
- return storageLocale;
76
- }
77
- return translations[browserLocale] ? browserLocale : DEFAULT_LOCALE;
78
- };
79
- exports.getUserLocale = getUserLocale;
80
- const setUserLocale = (locale) => {
81
- setStorageLanguage(locale);
82
- };
83
- exports.setUserLocale = setUserLocale;
84
- const isRTLLocale = (locale) => {
85
- if (!locale) {
86
- return false;
87
- }
88
- locale = locale.toLowerCase();
89
- const matches = localeRegex.exec(locale);
90
- if (!matches || matches.length < 2) {
91
- return false;
92
- }
93
- return rtlLocales.includes(matches[1]);
94
- };
95
- exports.isRTLLocale = isRTLLocale;
@@ -1,38 +0,0 @@
1
- {
2
- "composer.dropdownPlaceholder": "Seleziona una scelta",
3
- "composer.placeholder": "Rispondi a {name}",
4
- "composer.placeholderInit": "Scrivi qualcosa a {name}",
5
- "composer.message": "Messaggio da inviare",
6
- "composer.send": "Invia",
7
- "footer.poweredBy": "We're {icon} by {link}",
8
- "header.conversations": "Conversazioni",
9
- "header.hideChatWindow": "Nascondi la finestra chat",
10
- "header.deleteConversation": "Sei sicuro di voler eliminare l'intera conversazione?",
11
- "header.deleteConversationYes": "Elimina",
12
- "header.deleteConversationNo": "Annulla",
13
- "conversationList.untitledConversation": "Conversazione senza titolo",
14
- "conversationList.title": "Conversazione {id}",
15
- "botInfo.backToConversation": "Ritorna alla Conversazione",
16
- "botInfo.startConversation": "Avvia Conversazione",
17
- "botInfo.privacyPolicy": "Vedi Privacy Policy",
18
- "botInfo.termsAndConditions": "Vedi Terms of Service",
19
- "botInfo.preferredLanguage": "Lingua preferita",
20
- "store.resetSessionMessage": "Azzera conversazione",
21
- "loginForm.userName": "Username",
22
- "loginForm.password": "Password",
23
- "loginForm.submit": "Invia",
24
- "loginForm.formTitle": "Login form",
25
- "loginForm.providedCredentials": "Credenziali fornite",
26
- "message.botSaid": "Virtual assistant dice : ",
27
- "message.fromBotLabel": "Virtual Assistant",
28
- "message.fromMeLabel": "Io",
29
- "message.iSaid": "Io ho detto : ",
30
- "messages.newMessage": "Nuovo messaggio",
31
- "messages.newMessages": "Nuovi messaggi",
32
- "messages.readMore": "Leggi altro",
33
- "messages.showLess": "Mostra meno",
34
- "message.thumbsUp": "Pollice Su",
35
- "message.thumbsDown": "Pollice Giù",
36
- "widget.title": "Finestra Chat",
37
- "widget.toggle": "Togli finestra chat"
38
- }