Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Upstream Catchup] Merge Rocket.chat.Livechat:develop to develop #129

Merged
merged 37 commits into from
Sep 6, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
37 commits
Select commit Hold shift + click to select a range
a910710
[IMPROVE] Add cookie to identify widget calls (#645)
KevLehman Sep 14, 2021
351f0c2
[IMPROVE] Russian translations (#644)
vladislavs Sep 14, 2021
0905fa6
[IMPROVE] Spanish translations (#370)
imiguelsalcedo Sep 14, 2021
bf08327
[FIX] Escaping HTML on paste/drop Text (#471)
Shailesh351 Sep 14, 2021
2dd84f3
[IMPROVE] Swedish Translations (#573)
gridnine-developer Sep 14, 2021
741d8f2
[IMPROVE] Readme enhancements (#557)
rafaelblink Sep 14, 2021
09c547a
Release 1.9.5
MartinSchoeler Sep 14, 2021
e32415b
Merge pull request #647 from RocketChat/release-1-9-5
MartinSchoeler Sep 14, 2021
c83d875
[FIX] 'Hide agent info' not working on system message (#651)
murtaza98 Oct 20, 2021
30bdd54
[FIX] Issues on Custom Livechat messages (#648)
murtaza98 Oct 20, 2021
0886758
Release 1.9.6
MartinSchoeler Oct 20, 2021
7034970
Release 1.9.6
ggazzo Oct 20, 2021
485fd47
[NEW] Audio and Video calling in Livechat using WebRTC #646
MartinSchoeler Nov 22, 2021
c76fc34
[FIX] LoadConfig after registering guest (#640)
hanoii Nov 19, 2021
954c2c8
[FIX] Body styles getting overridden #660
MartinSchoeler Nov 22, 2021
3c42aa5
Release 1.10.0
MartinSchoeler Nov 22, 2021
0b50f73
Chore: Add PR title check (#663)
KevLehman Nov 22, 2021
6f70a8c
Merge pull request #664 from RocketChat/release/1-10-0
MartinSchoeler Nov 22, 2021
4c1777f
[NEW] Introduce `clearLocalStorageWhenChatEnded` setting logic (#666)
tiagoevanp Dec 3, 2021
305939d
[IMPROVE] Change logic to generate token on Live Chat
cauefcr Dec 8, 2021
9226ab2
[NEW] Introduce `clearLocalStorageWhenChatEnded` setting logic (#666)
MartinSchoeler Dec 9, 2021
cfa9a95
[IMPROVE] Change logic to generate token on Live Chat
cauefcr Dec 8, 2021
116971f
Release 1.11.0
MartinSchoeler Dec 9, 2021
3ecb6b8
Merge pull request #668 from RocketChat/release/1-11-0
MartinSchoeler Dec 9, 2021
27ed909
Hide Livechat if omnichannel is disabled (#671)
murtaza98 Dec 30, 2021
5677a8a
Release 1.11.1 (#672)
MartinSchoeler Jan 3, 2022
b5f0cce
[FIX] IME not working properly (#674)
tiagoevanp Jan 7, 2022
43b0404
Release 1.11.2 (#675)
tiagoevanp Jan 12, 2022
8da8b8b
Merge branch 'master' into develop
tiagoevanp Jan 14, 2022
d95ae3d
[NEW] Introduce Widget API method to manage Business Units (#677)
murtaza98 Jan 20, 2022
1ee9420
[fa] Update FA translations (#653)
shamsnaamir Jan 20, 2022
ca2d04e
Merge branch 'develop' of github.com:RocketChat/Rocket.Chat.Livechat …
tiagoevanp Jan 20, 2022
a0c38c9
Release 1.12.0 (#680)
tiagoevanp Jan 20, 2022
c04dcea
Merge branch 'master' of github.com:RocketChat/Rocket.Chat.Livechat i…
tiagoevanp Jan 20, 2022
12225f8
[FIX] Making sure the 'hide agent info' hides the agent info even wit…
cauefcr Mar 8, 2022
fb1b2ee
[IMPROVE] Centralized e-mail validation under a library function (#693)
cauefcr Mar 25, 2022
f3b8fbe
[FIX] Fixes broken triggers. (#695)
cauefcr Mar 25, 2022
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 10 additions & 0 deletions .github/pr-title-checker-config.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
{
"LABEL": {
"name": "Invalid PR Title",
"color": "B60205"
},
"CHECKS": {
"regexp": "^(?:(?:\\[(NEW|BREAK|IMPROVE|FIX)\\](\\[(ENTERPRISE|APPS)\\])?|(?:Regression|Chore|Bump):) .+|Release [0-9]+\\.[0-9]+\\.[0-9]+)",
"ignoreLabels" : ["[ignore-title]"]
}
}
12 changes: 12 additions & 0 deletions .github/workflows/pr-title-checker.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
name: "PR Title Checker"
on:
pull_request:
types: [opened, edited]

jobs:
check:
runs-on: ubuntu-latest
steps:
- uses: thehanimo/[email protected]
with:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
2 changes: 2 additions & 0 deletions .loki/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
current
difference
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified .loki/reference/chrome_Components_Button_danger.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified .loki/reference/chrome_Components_Button_disabled.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified .loki/reference/chrome_Components_Button_loading.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified .loki/reference/chrome_Components_Button_normal.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified .loki/reference/chrome_Components_Button_nude.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified .loki/reference/chrome_Components_Button_outline.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified .loki/reference/chrome_Components_Button_secondary.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified .loki/reference/chrome_Components_Button_small.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified .loki/reference/chrome_Components_Button_stack.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified .loki/reference/chrome_Components_Button_with_badge.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified .loki/reference/chrome_Components_Header_for_user_chat.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified .loki/reference/chrome_Components_Header_with_custom_field.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified .loki/reference/chrome_Components_Header_with_theme.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified .loki/reference/chrome_Components_Icons_doc.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified .loki/reference/chrome_Components_Icons_file.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified .loki/reference/chrome_Components_Icons_pdf.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified .loki/reference/chrome_Components_Icons_ppt.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified .loki/reference/chrome_Components_Icons_sheet.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified .loki/reference/chrome_Components_Icons_zip.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified .loki/reference/chrome_Components_Menu_Item_disabled.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified .loki/reference/chrome_Components_Menu_Item_with_icon.png
Binary file modified .loki/reference/chrome_Components_Modal_alert.png
Binary file modified .loki/reference/chrome_Components_Modal_animated.png
Binary file modified .loki/reference/chrome_Components_Modal_confirm.png
Binary file modified .loki/reference/chrome_Components_Modal_normal.png
Binary file modified .loki/reference/chrome_Components_Modal_timeout.png
Binary file modified .loki/reference/chrome_Components_Screen_with_agent.png
Binary file modified .loki/reference/chrome_Components_Screen_with_agent_email.png
Binary file modified .loki/reference/chrome_Components_Screen_with_agent_phone.png
Binary file modified .loki/reference/chrome_Forms_DateInput_default.png
Binary file modified .loki/reference/chrome_Forms_DateInput_disabled.png
Binary file modified .loki/reference/chrome_Forms_DateInput_filled.png
Binary file modified .loki/reference/chrome_Forms_DateInput_small.png
Binary file modified .loki/reference/chrome_Forms_DateInput_with_error.png
Binary file modified .loki/reference/chrome_Forms_Form_default.png
Binary file modified .loki/reference/chrome_Forms_PasswordInput_disabled.png
Binary file modified .loki/reference/chrome_Forms_SelectInput_disabled.png
Binary file modified .loki/reference/chrome_Forms_TextInput_disabled.png
Binary file modified .loki/reference/chrome_Messages_MessageBlocks_with_blocks.png
Binary file modified .loki/reference/chrome_Messages_MessageList_normal.png
Binary file modified .loki/reference/chrome_Messages_MessageList_with_typing_users.png
Binary file modified .loki/reference/chrome_Messages_Message_default.png
Binary file modified .loki/reference/chrome_Messages_Message_grouping.png
Binary file modified .loki/reference/chrome_Messages_Message_markdown.png
Binary file modified .loki/reference/chrome_Messages_Message_me.png
Binary file modified .loki/reference/chrome_Messages_Message_with_files_attachments.png
Binary file modified .loki/reference/chrome_Messages_Message_with_image_attachment.png
Binary file modified .loki/reference/chrome_Messages_Message_with_quotation.png
Binary file modified .loki/reference/chrome_Messages_TypingIndicator_with_avatars.png
Binary file modified .loki/reference/chrome_Routes_Chat_loading.png
Binary file modified .loki/reference/chrome_Routes_Chat_normal.png
Binary file modified .loki/reference/chrome_Routes_Chat_with_trigger_messages.png
Binary file modified .loki/reference/chrome_Routes_Chat_with_typing_user.png
Binary file modified .loki/reference/chrome_Routes_Leave_a_message_loading.png
Binary file modified .loki/reference/chrome_Routes_Register_loading.png
Binary file modified .loki/reference/chrome_Routes_SwitchDepartment_loading.png
Binary file modified .loki/reference/chrome_Routes_SwitchDepartment_normal.png
Binary file modified .loki/reference/chrome_Routes_TriggerMessage_multiple.png
Binary file modified .loki/reference/chrome_UiKit_Message_Actions_block_button.png
Binary file modified .loki/reference/chrome_UiKit_Message_Actions_block_datepicker.png
Binary file modified .loki/reference/chrome_UiKit_Message_Button_element_default.png
Binary file modified .loki/reference/chrome_UiKit_Message_Context_block_mrkdwn.png
31 changes: 31 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,37 @@
All notable changes to this project will be documented in this file.
This project adheres to [Semantic Versioning](http://semver.org/).

## 1.12.0 - 2022-01-20
[NEW] Introduce Widget API method to manage Business Units (#677)
[IMPROVE] Update FA translations (#653)

## 1.11.2 - 2022-01-10
[FIX] IME not working properly #674

## 1.11.1 - 2021-12-30
[FIX] Hide Livechat if Omnichannel is disabled #671

## 1.11.0 - 2021-12-09
[NEW] Introduce clearLocalStorageWhenChatEnded setting logic (#666)
[IMPROVE] Change logic to generate token on Live Chat (#667)

## 1.10.0 - 2021-11-22
[NEW] Audio and Video calling in Livechat using WebRTC (#646)
[FIX] LoadConfig after registering guest (#640)
[FIX] Body styles getting overridden (#660)

## 1.9.6 - 2021-10-20
[FIX] 'Hide agent info' not working on system message (#651)
[FIX] Issues on Custom Livechat messages (#648)

## 1.9.5 - 2021-09-14
[IMPROVE] Readme enhancements (#557)
[IMPROVE] Swedish Translations (#573)
[FIX] Escaping HTML on paste/drop Text (#471)
[IMPROVE] Spanish translations (#370)
[IMPROVE] Russian translations (#644)
[IMPROVE] Add cookie to identify widget calls (#645)

## 1.9.4 - 2021-08-19
[FIX] Iframe overlay (#631)
[IMPROVE] German informal translation (#622)
Expand Down
4 changes: 2 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@rocket.chat/livechat",
"version": "1.9.4",
"version": "1.12.0",
"files": [
"/build"
],
Expand Down Expand Up @@ -87,10 +87,10 @@
"@kossnocorp/desvg": "^0.2.0",
"@rocket.chat/sdk": "^1.0.0-alpha.42",
"@rocket.chat/ui-kit": "^0.14.1",
"crypto-js": "^4.1.1",
"css-vars-ponyfill": "^2.3.2",
"date-fns": "^2.15.0",
"desvg": "^1.0.2",
"dompurify": "^2.2.6",
"emoji-mart": "^3.0.0",
"history": "^5.0.0",
"i18nline": "^2.0.1",
Expand Down
9 changes: 7 additions & 2 deletions src/components/App/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,7 @@ export class App extends Component {
return route('/leave-message');
}


const showDepartment = departments.filter((dept) => dept.showOnRegistration).length > 0;

const showRegistrationForm = (
Expand All @@ -79,14 +80,15 @@ export class App extends Component {
}, 100);
}

handleTriggers() {
handleTriggers = () => {
const { config: { online, enabled } } = this.props;

Triggers.enabled = online && enabled;

if (online && enabled) {
Triggers.init();
}
Triggers.processTriggers();
}

handleEnableNotifications = () => {
Expand Down Expand Up @@ -121,7 +123,6 @@ export class App extends Component {
}

handleOpenWindow = () => {
parentCall('openPopout');
const { dispatch } = this.props;
dispatch({ undocked: true, minimized: false });
}
Expand Down Expand Up @@ -208,10 +209,14 @@ export class App extends Component {
expanded,
alerts,
modal,
config,
}, { initialized, poppedOut }) => {
if (!initialized) {
return null;
}
if (!config.enabled) {
return null;
}
const screenProps = {
notificationsEnabled: sound && sound.enabled,
minimized: !poppedOut && (minimized || undocked),
Expand Down
36 changes: 5 additions & 31 deletions src/components/Composer/index.js
Original file line number Diff line number Diff line change
@@ -1,31 +1,8 @@
import { sanitize } from 'dompurify';
import mem from 'mem';
import { h, Component } from 'preact';

import { createClassName } from '../helpers';
import { createClassName, parse } from '../helpers';
import styles from './styles.scss';


const escapeMap = {
'&': '&',
'<': '&lt;',
'>': '&gt;',
'"': '&quot;',
'\'': '&#x27;',
'`': '&#x60;',
};

const escapeRegex = new RegExp(`(?:${ Object.keys(escapeMap).join('|') })`, 'g');

const escapeHtml = mem(
(string) => string.replace(escapeRegex, (match) => escapeMap[match]),
);

const parse = (plainText) =>
[{ plain: plainText }]
.map(({ plain, html }) => (plain ? escapeHtml(plain) : html || ''))
.join('');

const findLastTextNode = (node) => {
if (node.nodeType === Node.TEXT_NODE) {
return node;
Expand Down Expand Up @@ -67,7 +44,7 @@ export class Composer extends Component {
if (this.state.inputLock) {
return;
}
onChange && onChange(sanitize(this.el.innerText));
onChange && onChange(this.el.innerText);
}

handleKeypress = (onSubmit) => (event) => {
Expand Down Expand Up @@ -98,6 +75,7 @@ export class Composer extends Component {
items.filter((item) => item.kind === 'string' && /^text\/plain/.test(item.type))
.map((item) => new Promise((resolve) => item.getAsString(resolve))),
);

texts.forEach((text) => this.pasteText(parse(text)));
}

Expand Down Expand Up @@ -241,16 +219,12 @@ export class Composer extends Component {
}

render = ({ pre, post, value, placeholder, onChange, onSubmit, onUpload, className, style }) => (

<div className={createClassName(styles, 'composer', { }, [className])} style={style}>
{pre}
<div
ref={this.handleRef}
{...(
{
dangerouslySetInnerHTML: {
__html: parse(value),
},
contentEditable: true,
'data-placeholder': placeholder,
onInput: this.handleInput(onChange),
Expand All @@ -272,10 +246,10 @@ export class Composer extends Component {


className={createClassName(styles, 'composer__input')}
/>
>{value}</div>
{post}
</div>
)
);
}

export { ComposerAction } from './ComposerAction';
Expand Down
4 changes: 2 additions & 2 deletions src/components/Form/index.js
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
import { h } from 'preact';

import I18n from '../../i18n';
import { validateEmail } from '../../lib/email';
import { createClassName, MemoizedComponent } from '../helpers';
import styles from './styles.scss';


export class Form extends MemoizedComponent {
static defaultHandleSubmit = (event) => {
event.preventDefault();
Expand All @@ -25,7 +25,7 @@ export class Form extends MemoizedComponent {
export const Validations = {
nonEmpty: ({ value }) => (!value ? I18n.t('Field required') : undefined),

email: ({ value }) => (!/^\S+@\S+\.\S+/.test(String(value).toLowerCase()) ? I18n.t('Invalid email') : null),
email: ({ value }) => (validateEmail(String(value).toLowerCase()) ? null : I18n.t('Invalid email')),

custom: ({ value, pattern }) => (new RegExp(pattern, 'i').test(String(value)) ? null : I18n.t('Invalid value')),
};
Expand Down
3 changes: 1 addition & 2 deletions src/components/Messages/MessageText/markdown.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
import { sanitize } from 'dompurify';
import MarkdownIt from 'markdown-it';


Expand Down Expand Up @@ -81,4 +80,4 @@ md.use((md) => {
});
});

export const renderMarkdown = (...args) => sanitize(md.render(...args), { ADD_ATTR: ['target', 'rel'] });
export const renderMarkdown = (...args) => md.render(...args);
26 changes: 24 additions & 2 deletions src/components/helpers.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import parseISO from 'date-fns/parseISO';
import mem from 'mem';
import { Component } from 'preact';

import { Livechat, useSsl } from '../api';
Expand Down Expand Up @@ -120,8 +121,6 @@ export const setCookies = (rid, token) => {
document.cookie = `rc_room_type=l; path=/; ${ getSecureCookieSettings() }`;
};

export const createToken = () => Math.random().toString(36).substring(2, 15) + Math.random().toString(36).substring(2, 15);

export const getAvatarUrl = (username) => (username ? `${ Livechat.client.host }/avatar/${ username }` : null);

export const msgTypesNotRendered = ['livechat_video_call', 'livechat_navigation_history', 'au', 'command', 'uj', 'ul', 'livechat-close'];
Expand Down Expand Up @@ -156,6 +155,9 @@ export const normalizeTransferHistoryMessage = (transferData, sender) => {
},
department: () => {
const to = nextDepartment && nextDepartment.name;
if (!sender.username) {
return I18n.t('The agent transferred the chat to the department %{to}', { to });
}
return I18n.t('%{from} transferred the chat to the department %{to}', { from, to });
},
queue: () => {
Expand Down Expand Up @@ -264,3 +266,23 @@ export const resolveDate = (dateInput) => {
}
}
};

const escapeMap = {
'&': '&amp;',
'<': '&lt;',
'>': '&gt;',
'"': '&quot;',
'\'': '&#x27;',
'`': '&#x60;',
};

const escapeRegex = new RegExp(`(?:${ Object.keys(escapeMap).join('|') })`, 'g');

const escapeHtml = mem(
(string) => string.replace(escapeRegex, (match) => escapeMap[match]),
);

export const parse = (plainText) =>
[{ plain: plainText }]
.map(({ plain, html }) => (plain ? escapeHtml(plain) : html || ''))
.join('');
11 changes: 10 additions & 1 deletion src/i18n/af.json
Original file line number Diff line number Diff line change
@@ -1,8 +1,11 @@
{
"af": {
"_lasted_callduration_ea6f769d": " - Lasted %{callDuration}",
"accept_2fdd362e": "Accept",
"are_you_sure_you_want_to_finish_this_chat_1db5c13b": "Are you sure you want to finish this chat?",
"are_you_sure_you_want_to_remove_all_of_your_person_426720f1": "Are you sure you want to remove all of your personal data?",
"are_you_sure_you_want_to_switch_the_department_d50a0b08": "Are you sure you want to switch the department?",
"call_ended_at_time_2391216e": "Call ended at %{time}",
"cancel_caeb1e68": "kanselleer",
"change_department_1d671538": "Change department",
"change_department_523a16e8": "Change Department",
Expand All @@ -17,6 +20,7 @@
"one": "One new message since %{since}",
"other": "%{count} new messages since %{since}"
},
"decline_7eeb5ff4": "Decline",
"department_switched_cff305cf": "Departement aangeskakel",
"departments_3826b025": "Departments",
"disable_notifications_dd6a3180": "Disable notifications",
Expand All @@ -25,6 +29,7 @@
"email_22a7d52d": "Email",
"enable_notifications_a3daf4b1": "Enable notifications",
"error_closing_chat_4c5e29d7": "Error closing chat.",
"error_getting_call_alert_a69fbfab": "error_getting_call_alert",
"error_removing_user_data_ce507478": "Error removing user data.",
"error_starting_a_new_conversation_reason_a1b491a1": "Error starting a new conversation: %{reason}",
"expand_chat_a0045dbd": "Expand chat",
Expand All @@ -42,9 +47,12 @@
"i_agree_df2ecbd4": "I Agree",
"i_need_help_with_61054e21": "I need help with...",
"if_you_have_any_other_questions_just_press_the_but_ceaadfa0": "If you have any other questions, just press the button below to start a new chat.",
"incoming_video_call_eee0fff9": "Incoming video Call",
"insert_your_field_here_d631e875": "Insert your %{field} here...",
"invalid_email_e82f3682": "Invalid email",
"invalid_value_12ca12c2": "Invalid value",
"join_call_a5effa0e": "Join Call",
"join_my_room_to_start_the_video_call_7cb30651": "Join my room to start the video call",
"leave_a_message_5b581048": "Leave a message",
"livechat_connected_afee1c5b": "Livechat connected.",
"livechat_is_not_connected_b40328ca": "Livechat is not connected.",
Expand All @@ -69,6 +77,7 @@
"sound_is_on_98a9ec58": "Sound is on",
"start_chat_8606d464": "Start chat",
"thanks_for_talking_with_us_719cce22": "Thanks for talking with us",
"the_agent_transferred_the_chat_to_the_department_t_3cbe495c": "The agent transferred the chat to the department %{to}",
"the_chat_was_moved_back_to_queue_cefbade6": "The chat was moved back to queue",
"the_chat_was_transferred_to_another_agent_b375bdac": "The chat was transferred to another agent",
"the_controller_of_your_personal_data_is_company_na_c82f5567": "The controller of your personal data is [Company Name], with registered office at [Company Address]. To start the chat you agree that your personal data shall be processed and trasmitted in accordance with the General Data Protection Regulation (GDPR).",
Expand All @@ -88,4 +97,4 @@
"your_spot_is_spot_a35cd288": "Your spot is #%{spot}",
"your_spot_is_spot_estimated_wait_time_estimatedwai_d0ff46e0": "Your spot is #%{spot} (Estimated wait time: %{estimatedWaitTime})"
}
}
}
Loading