agx-chat-web 1.2.5 → 1.2.7
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/agx-chat.esm.js +2566 -1
- package/dist/agx-chat.esm.js.map +1 -1
- package/dist/agx-chat.min.js +2 -0
- package/dist/agx-chat.min.js.map +1 -0
- package/dist/esm/app/ChatProvider/ChatProvider.d.ts +1 -1
- package/dist/esm/app/ChatProvider/ChatProvider.js +3 -10
- package/dist/esm/app/ChatProvider/ChatProvider.js.map +1 -1
- package/dist/esm/app/Messenger/hooks/useConversations.d.ts +1 -1
- package/dist/esm/app/i18n/index.d.ts +12 -3
- package/dist/esm/app/i18n/index.js +11 -30
- package/dist/esm/app/i18n/index.js.map +1 -1
- package/dist/esm/index.d.ts +2 -2
- package/dist/esm/index.js +2 -2
- package/dist/esm/index.js.map +1 -1
- package/package.json +90 -93
- package/dist/agx-chat.umd.js +0 -2
- package/dist/agx-chat.umd.js.map +0 -1
package/dist/agx-chat.umd.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"agx-chat.umd.js","mappings":"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","sources":["webpack://agx-chat-web/webpack/universalModuleDefinition","webpack://agx-chat-web/./src/styles/index.less","webpack://agx-chat-web/./node_modules/css-loader/dist/runtime/api.js","webpack://agx-chat-web/./node_modules/css-loader/dist/runtime/sourceMaps.js","webpack://agx-chat-web/./node_modules/dayjs/dayjs.min.js","webpack://agx-chat-web/./node_modules/dayjs/locale/pt-br.js","webpack://agx-chat-web/./node_modules/dayjs/plugin/isToday.js","webpack://agx-chat-web/./node_modules/dayjs/plugin/timezone.js","webpack://agx-chat-web/./node_modules/dayjs/plugin/utc.js","webpack://agx-chat-web/./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js","webpack://agx-chat-web/./node_modules/style-loader/dist/runtime/insertBySelector.js","webpack://agx-chat-web/./node_modules/style-loader/dist/runtime/insertStyleElement.js","webpack://agx-chat-web/./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js","webpack://agx-chat-web/./node_modules/style-loader/dist/runtime/styleDomAPI.js","webpack://agx-chat-web/./node_modules/style-loader/dist/runtime/styleTagTransform.js","webpack://agx-chat-web/./src/assets/right-arrow.svg","webpack://agx-chat-web/./node_modules/void-elements/index.js","webpack://agx-chat-web/external umd \"react\"","webpack://agx-chat-web/webpack/bootstrap","webpack://agx-chat-web/webpack/runtime/compat get default export","webpack://agx-chat-web/webpack/runtime/define property getters","webpack://agx-chat-web/webpack/runtime/hasOwnProperty shorthand","webpack://agx-chat-web/webpack/runtime/make namespace object","webpack://agx-chat-web/webpack/runtime/nonce","webpack://agx-chat-web/./src/styles/index.less?e247","webpack://agx-chat-web/./src/app/Messenger/components/MessengerThemeWrapper/MessengerThemeWrapper.tsx","webpack://agx-chat-web/./src/app/Messenger/hooks/useThemes.tsx","webpack://agx-chat-web/./src/app/Messenger/classes/slaCalculations.ts","webpack://agx-chat-web/./node_modules/html-parse-stringify/dist/html-parse-stringify.module.js","webpack://agx-chat-web/./node_modules/react-i18next/dist/es/utils.js","webpack://agx-chat-web/./node_modules/react-i18next/dist/es/unescape.js","webpack://agx-chat-web/./node_modules/react-i18next/dist/es/defaults.js","webpack://agx-chat-web/./node_modules/react-i18next/dist/es/i18nInstance.js","webpack://agx-chat-web/./node_modules/react-i18next/dist/es/initReactI18next.js","webpack://agx-chat-web/./node_modules/react-i18next/dist/es/context.js","webpack://agx-chat-web/./node_modules/react-i18next/dist/es/useTranslation.js","webpack://agx-chat-web/./node_modules/react-i18next/dist/es/I18nextProvider.js","webpack://agx-chat-web/./src/app/Messenger/components/MessengerAvatar/MessengerAvatar.tsx","webpack://agx-chat-web/./src/app/Messenger/icons/TimerIcon.tsx","webpack://agx-chat-web/./src/app/Messenger/views/MessengerListItem.tsx","webpack://agx-chat-web/./src/app/Messenger/components/ChatTabs/ChatTabs.tsx","webpack://agx-chat-web/./src/app/Messenger/components/ChatButton/ChatButton.tsx","webpack://agx-chat-web/./src/app/Messenger/icons/SearchIcon.tsx","webpack://agx-chat-web/./src/app/Messenger/components/SearchInput/SearchInput.tsx","webpack://agx-chat-web/./src/app/Messenger/icons/EmptyIcon.tsx","webpack://agx-chat-web/./src/app/Messenger/components/InfiniteScroll/InfiniteScroll.tsx","webpack://agx-chat-web/./src/app/Messenger/views/MessengerList.tsx","webpack://agx-chat-web/./node_modules/tslib/tslib.es6.js","webpack://agx-chat-web/./src/app/Messenger/icons/DOCFileIcon.tsx","webpack://agx-chat-web/./src/app/Messenger/icons/PDFFileIcon.tsx","webpack://agx-chat-web/./src/app/Messenger/icons/CSVFileIcon.tsx","webpack://agx-chat-web/./src/app/Messenger/icons/MP4FileIcon.tsx","webpack://agx-chat-web/./src/app/Messenger/components/RenderFileIcon/RenderFileIcon.tsx","webpack://agx-chat-web/./src/app/Messenger/components/ImagesContainer/ImagesContainer.tsx","webpack://agx-chat-web/./node_modules/react-simple-image-viewer/dist/index.esm.js","webpack://agx-chat-web/./src/app/Messenger/icons/DownloadMinimalistIcon.tsx","webpack://agx-chat-web/./src/app/Messenger/components/DocMessage/DocMessage.tsx","webpack://agx-chat-web/./src/app/Messenger/components/IncomingMessage/IncomingMessage.tsx","webpack://agx-chat-web/./src/app/Messenger/icons/ReadIcon.tsx","webpack://agx-chat-web/./src/app/Messenger/components/SenderMessages/SenderMessages.tsx","webpack://agx-chat-web/./src/app/Messenger/components/SystemMessage/SystemMessage.tsx","webpack://agx-chat-web/./src/app/Messenger/components/MessageBallon/MessageBalloon.tsx","webpack://agx-chat-web/./src/app/Messenger/icons/MessageIcon.tsx","webpack://agx-chat-web/./src/app/Messenger/icons/TrashIcon.tsx","webpack://agx-chat-web/./src/app/Messenger/components/InputFile/InputFile.tsx","webpack://agx-chat-web/./src/app/Messenger/components/Select/Select.tsx","webpack://agx-chat-web/./src/app/Messenger/components/TextArea/TextArea.tsx","webpack://agx-chat-web/./src/app/Messenger/icons/CloseIcon.tsx","webpack://agx-chat-web/./src/app/Messenger/views/NewFormChat.tsx","webpack://agx-chat-web/./src/app/Messenger/icons/AttachFileIcon.tsx","webpack://agx-chat-web/./src/app/Messenger/components/Tooltip/Tooltip.tsx","webpack://agx-chat-web/./src/app/Messenger/components/SendMessageForm/SendMessageForm.tsx","webpack://agx-chat-web/./src/app/Messenger/views/MessengerMessages.tsx","webpack://agx-chat-web/./src/app/Messenger/hooks/useConversations.tsx","webpack://agx-chat-web/./src/app/Messenger/hooks/useMessages.tsx","webpack://agx-chat-web/./node_modules/i18next/dist/esm/i18next.js","webpack://agx-chat-web/./src/app/i18n/index.ts","webpack://agx-chat-web/./src/app/ChatProvider/ChatProvider.tsx"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"react\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"agx-chat-web\", [\"react\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"agx-chat-web\"] = factory(require(\"react\"));\n\telse\n\t\troot[\"agx-chat-web\"] = factory(root[\"react\"]);\n})(this, (__WEBPACK_EXTERNAL_MODULE__156__) => {\nreturn ","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".images-container {\\n width: 100%;\\n height: 90%;\\n border: 2px solid #484c52;\\n background-color: #232831;\\n border-bottom: none;\\n border-radius: 0 20px 0 0;\\n}\\n@media only screen and (max-width: 768px) {\\n .images-container {\\n border-radius: 20px 20px 0 0 !important;\\n }\\n}\\n.images-container__close {\\n width: 100%;\\n position: relative;\\n margin-top: 15px;\\n display: flex;\\n justify-content: flex-end;\\n align-items: center;\\n}\\n.images-container__close--icon {\\n width: 32px;\\n height: 32px;\\n cursor: pointer;\\n background-color: transparent;\\n outline: none;\\n border: none;\\n}\\n.images-container__close--icon:hover {\\n opacity: 75%;\\n transition: 200ms;\\n}\\n.images-container__close--icon::before,\\n.images-container__close--icon::after {\\n position: absolute;\\n right: 25px;\\n top: 0;\\n content: ' ';\\n height: 33px;\\n width: 2px;\\n background-color: red;\\n}\\n.images-container__close--icon:after {\\n transform: rotate(45deg);\\n}\\n.images-container__close--icon:before {\\n transform: rotate(-45deg);\\n}\\n.images-container__container {\\n width: 100%;\\n height: 100%;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n color: #476077;\\n}\\n.images-container__image {\\n display: flex;\\n flex-direction: column;\\n align-items: center;\\n width: 100%;\\n padding: 0 10px;\\n max-width: 700px;\\n max-height: 300px;\\n}\\n.images-container__title-img {\\n width: 100%;\\n text-align: center;\\n word-wrap: break-word;\\n}\\n.form-select {\\n margin-bottom: 1rem;\\n width: 100%;\\n}\\n.form-select__label {\\n color: #476077;\\n font-weight: bold;\\n margin: 0.5rem;\\n}\\n.form-select__input {\\n border: 1.5px solid hsl(0, 0%, 80%);\\n border-radius: 4px;\\n margin-top: 0.5rem;\\n padding: 8px 8px;\\n width: 100%;\\n}\\n.form-select__input:focus {\\n outline: #2684ff 2px solid !important;\\n}\\n.text-area {\\n margin-bottom: 1rem;\\n width: 100%;\\n}\\n.text-area__label {\\n color: #476077;\\n font-weight: bold;\\n margin: 0.5rem;\\n}\\n.text-area__input {\\n border: 1.5px solid hsl(0, 0%, 80%);\\n border-radius: 4px;\\n margin-top: 0.5rem;\\n padding: 4px 8px;\\n width: 100%;\\n}\\n.text-area__input:focus {\\n outline: #2684ff 2px solid !important;\\n}\\n.file-input {\\n margin-bottom: 1rem;\\n width: 100%;\\n}\\n.file-input__label {\\n color: #476077;\\n font-weight: bold;\\n margin: 0.5rem;\\n}\\n.file-input__container {\\n align-items: center;\\n background-color: var(--secondary-color);\\n border-radius: 10px;\\n display: flex;\\n flex-direction: column;\\n justify-content: center;\\n margin-top: 0.5rem;\\n padding: 1rem;\\n width: 100%;\\n}\\n.file-input__button {\\n border: none;\\n border-radius: 30px;\\n color: var(--secondary-color);\\n cursor: pointer;\\n font-size: 1rem;\\n font-weight: bold;\\n margin: 0.5rem 1rem;\\n padding: 0.5rem;\\n}\\n.file-input__list {\\n align-items: center;\\n background-color: var(--secondary-color);\\n border-radius: 10px;\\n display: flex;\\n justify-content: space-between;\\n margin: 0.5rem 0;\\n padding: 0.5rem;\\n}\\n.file-input__list--file-name {\\n overflow: hidden;\\n text-overflow: ellipsis;\\n white-space: nowrap;\\n max-width: 100%;\\n}\\n.file-input__delete {\\n align-items: center;\\n background: transparent;\\n border: none;\\n cursor: pointer;\\n display: flex;\\n justify-content: center;\\n}\\n.input-search {\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n width: 100%;\\n margin: 1rem 0;\\n position: relative;\\n}\\n.input-search__select {\\n border-radius: 30px 0 0 30px;\\n padding: 10px;\\n background: transparent;\\n margin-left: 1rem;\\n width: 30%;\\n}\\n.input-search__option {\\n color: black;\\n}\\n.input-search__search {\\n width: 70%;\\n margin-right: 1rem;\\n border-radius: 0 30px 30px 0;\\n padding: 9px;\\n color: var(--secondary-color);\\n border: var(--secondary-color) 1px solid;\\n background: transparent;\\n position: relative;\\n}\\n.input-search__search::placeholder {\\n color: var(--secondary-color);\\n opacity: 60%;\\n}\\n.input-search__icon {\\n border: none;\\n background: transparent;\\n position: absolute;\\n right: 2rem;\\n display: flex;\\n cursor: pointer;\\n}\\n.chat-tabs {\\n display: flex;\\n justify-content: center;\\n align-items: center;\\n}\\n.chat-tabs__button {\\n background: transparent;\\n border: none;\\n border-bottom: 1px solid transparent;\\n cursor: pointer;\\n padding: 0.5rem 1rem;\\n margin-bottom: 0.5rem;\\n}\\n.chat-tabs__button--active {\\n border-bottom: 1px solid var(--secondary-color);\\n transition: 0.5s;\\n}\\n.messenger__messages-row--sender {\\n display: flex;\\n justify-content: flex-end;\\n margin: 10px 0;\\n}\\n.messenger__messages-sender {\\n max-width: 80%;\\n padding: 10px;\\n border-radius: 8px;\\n font-family: 'Arial', sans-serif;\\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);\\n}\\n.messenger__file-card {\\n display: flex;\\n align-items: center;\\n background: rgba(0, 0, 0, 0.1);\\n border-radius: 8px;\\n padding: 10px;\\n}\\n.messenger__file-icon {\\n flex-shrink: 0;\\n width: 40px;\\n height: 40px;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n border-radius: 4px;\\n margin-right: 10px;\\n}\\n.messenger__file-details {\\n flex-grow: 1;\\n margin-right: 10px;\\n}\\n.messenger__file-name {\\n font-weight: bold;\\n font-size: 14px;\\n margin: 0;\\n}\\n.messenger__file-info {\\n font-size: 12px;\\n color: rgba(255, 255, 255, 0.8);\\n}\\n.messenger__file-download {\\n font-size: 12px;\\n text-decoration: none;\\n}\\n.messenger__file-download:hover {\\n text-decoration: underline;\\n}\\n.messenger__message--bottom {\\n display: flex;\\n justify-content: space-between;\\n align-items: center;\\n margin-top: 5px;\\n}\\n.messenger__message--date {\\n font-size: 12px;\\n color: rgba(255, 255, 255, 0.8);\\n}\\n.tooltip {\\n position: relative;\\n display: inline-block;\\n}\\n.tooltip__text {\\n visibility: hidden;\\n background-color: black;\\n color: #fff;\\n text-align: center;\\n border-radius: 5px;\\n padding: 5px;\\n position: absolute;\\n z-index: 1;\\n bottom: 125%;\\n left: -40%;\\n margin-left: -60px;\\n opacity: 0;\\n transition: opacity 0.3s, visibility 0.3s;\\n}\\n.tooltip:hover .tooltip__text {\\n visibility: visible;\\n opacity: 1;\\n}\\n.messenger__aside {\\n width: 30% !important;\\n display: flex;\\n align-items: center;\\n flex-direction: column;\\n}\\n@media only screen and (max-width: 1200px) {\\n .messenger__aside {\\n min-width: 300px;\\n }\\n}\\n@media only screen and (max-width: 992px) {\\n .messenger__aside {\\n border-radius: 20px !important;\\n width: 100% !important;\\n }\\n}\\n.messenger__aside-skeleton {\\n background-color: #232831;\\n border: 0;\\n min-height: 75px;\\n width: 100% !important;\\n}\\n.messenger__aside-empty {\\n width: 100%;\\n margin-top: 40px;\\n display: flex;\\n flex-direction: column;\\n justify-content: center;\\n align-items: center;\\n}\\n.messenger__aside-empty path {\\n fill: var(--secondary-color);\\n}\\n.messenger__aside-empty p {\\n text-align: center;\\n}\\n.messenger__aside-header {\\n width: 100% !important;\\n padding: 0 15px;\\n}\\n.messenger__scroll-content {\\n overflow-y: auto;\\n margin-bottom: 0.5rem;\\n}\\n.messenger__aside-list {\\n width: 100% !important;\\n padding: 0 10px 10px 10px;\\n height: 100%;\\n overflow-y: auto;\\n overflow-x: hidden;\\n display: flex;\\n flex-direction: column;\\n justify-content: flex-start;\\n align-items: center;\\n}\\n.messenger__aside-list > .ant-ribbon-wrapper {\\n width: 100%;\\n}\\n.messenger__aside-list > .ant-ribbon-wrapper .ant-ribbon {\\n z-index: -1;\\n top: 0;\\n}\\n.messenger__aside-item-container {\\n min-width: 100%;\\n position: relative;\\n}\\n.messenger__active-badge {\\n z-index: 15 !important;\\n}\\n.messenger__aside-protocol {\\n position: absolute;\\n right: 0;\\n top: 0;\\n border-radius: 10px;\\n background-color: var(--secondary-color);\\n padding: 0 0.5rem;\\n font-size: 0.6rem;\\n}\\n.messenger__aside-timer {\\n align-items: center;\\n display: flex;\\n font-size: 12px;\\n}\\n.messenger__aside-list-item {\\n border-radius: 0;\\n cursor: pointer;\\n display: flex;\\n flex-direction: row;\\n height: 72px;\\n padding: 5px 10px;\\n width: 100% !important;\\n}\\n.messenger__aside-list-item:hover {\\n background: #232831;\\n border-radius: 0;\\n}\\n.messenger__aside-list-item--avatar {\\n align-items: center;\\n background: #484c52;\\n border-radius: 50%;\\n color: #00a73e;\\n display: flex;\\n flex: 0 0 auto;\\n font-size: 25px;\\n font-weight: bold;\\n height: 50px;\\n justify-content: center;\\n line-height: 2.2;\\n margin: auto 10px auto 0;\\n text-transform: uppercase;\\n user-select: none;\\n width: 50px;\\n}\\n@media only screen and (max-width: 1200px) {\\n .messenger__aside-list-item--avatar {\\n height: 45px;\\n width: 45px;\\n }\\n}\\n.messenger__aside-list-item--avatar img {\\n height: 54px;\\n width: 54px;\\n border-radius: 50%;\\n}\\n.messenger__aside-list-item--info,\\n.messenger__aside-list-item--additional {\\n display: flex;\\n flex-direction: column;\\n gap: 0.5rem;\\n height: 100%;\\n}\\n.messenger__aside-list-item--info {\\n max-width: 120px;\\n min-width: 120px;\\n}\\n@media only screen and (min-width: 1600px) {\\n .messenger__aside-list-item--info {\\n max-width: 140px;\\n min-width: 140px;\\n }\\n}\\n@media only screen and (max-width: 992px) {\\n .messenger__aside-list-item--info {\\n max-width: 65%;\\n min-width: 65%;\\n }\\n}\\n@media only screen and (max-width: 576px) {\\n .messenger__aside-list-item--info {\\n max-width: 120px;\\n min-width: 120px;\\n }\\n}\\n.messenger__aside-list-item--additional {\\n align-items: flex-end;\\n font-size: 11px;\\n margin-left: 5px;\\n width: 100%;\\n}\\n.messenger__aside-list-item--unread {\\n background-color: #00a73e;\\n border-radius: 50%;\\n width: 20px;\\n height: 20px;\\n text-align: center;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n}\\n.messenger__aside-list-item--title,\\n.messenger__aside-list-item--description {\\n line-height: 1;\\n overflow: hidden;\\n margin: 0;\\n max-width: 160px;\\n text-overflow: ellipsis;\\n white-space: nowrap;\\n width: 100%;\\n}\\n.messenger__aside-list-item--title {\\n font-weight: bold;\\n font-size: 14px;\\n}\\n.messenger__aside-list-item--description {\\n font-size: 12px;\\n}\\n.messenger__messages {\\n width: 70% !important;\\n display: flex;\\n flex-direction: column;\\n justify-content: space-evenly;\\n}\\n@media only screen and (max-width: 992px) {\\n .messenger__messages {\\n width: 100% !important;\\n }\\n}\\n.messenger__messages-header,\\n.messenger__messages-send {\\n padding: 5px;\\n min-height: 10%;\\n width: 100%;\\n}\\n.messenger__messages-header {\\n border-radius: 0 20px 0 0;\\n display: flex;\\n flex-direction: row;\\n align-items: center;\\n justify-content: space-between;\\n}\\n@media only screen and (max-width: 992px) {\\n .messenger__messages-header {\\n border-radius: 20px 20px 0 0;\\n }\\n}\\n.messenger__messages-container {\\n max-height: 80%;\\n height: 100%;\\n padding: 0 24px;\\n overflow: auto;\\n overflow-x: hidden;\\n scroll-behavior: auto;\\n background-color: #dddddd;\\n}\\n.messenger__messages-container--empty {\\n width: 100%;\\n height: 100%;\\n border-radius: 0 20px 20px 0;\\n background-color: #dddddd;\\n display: flex;\\n flex-direction: column;\\n align-items: center;\\n justify-content: center;\\n}\\n.messenger__messages-container--empty path {\\n fill: #00a73e;\\n}\\n.messenger__messages-container--empty p {\\n text-align: center;\\n margin-top: 24px;\\n}\\n.messenger__messages-loading {\\n width: 100%;\\n display: flex;\\n justify-content: center;\\n align-items: center;\\n margin-top: 10px;\\n}\\n.messenger__messages-loading div {\\n animation: spin 1s infinite linear;\\n border-left: 2px solid var(--secondary-color);\\n border-radius: 50%;\\n height: 25px;\\n margin-bottom: 10px;\\n width: 25px;\\n}\\n.messenger__messages-row--sender,\\n.messenger__messages-row--received,\\n.messenger__messages-row--system {\\n width: 100%;\\n height: fit-content;\\n margin: 10px 0;\\n display: flex;\\n align-items: center;\\n}\\n.messenger__messages-row--sender {\\n justify-content: flex-end;\\n}\\n.messenger__messages-row--received {\\n justify-content: flex-start;\\n}\\n.messenger__messages-row--system {\\n justify-content: center;\\n}\\n.messenger__messages-received,\\n.messenger__messages-sender {\\n min-width: 75px;\\n width: fit-content;\\n padding: 10px;\\n}\\n.messenger__messages-received > span,\\n.messenger__messages-sender > span {\\n color: var(--secondary-color);\\n overflow-wrap: break-word;\\n word-break: break-word;\\n width: 200px;\\n}\\n.messenger__messages-received {\\n max-width: 500px;\\n background-color: #707070;\\n border-radius: 12px 12px 12px 0;\\n}\\n.messenger__messages-received--system {\\n border-radius: 12px;\\n}\\n.messenger__messages-sender {\\n max-width: 450px;\\n margin-top: -2px;\\n background-color: #00a73e;\\n border-radius: 12px 12px 0 12px;\\n}\\n.messenger__message-title {\\n white-space: nowrap;\\n overflow: hidden;\\n max-width: 100%;\\n display: block;\\n line-height: 1;\\n padding: 0;\\n margin: 0 0 3px;\\n justify-content: flex-end;\\n font-size: 13px;\\n color: var(--secondary-color);\\n font-weight: bold;\\n filter: opacity(0.7);\\n font-weight: 700;\\n}\\n.messenger__message {\\n padding: 0;\\n margin: 0;\\n white-space: pre-wrap;\\n line-height: 1.2;\\n}\\n.messenger__message--file {\\n cursor: pointer;\\n}\\n.messenger__message--file img {\\n object-fit: scale-down;\\n}\\n.messenger__message--bottom {\\n width: 100%;\\n display: flex;\\n align-items: center;\\n justify-content: flex-end;\\n gap: 5px;\\n margin-top: 5px;\\n}\\n.messenger__message--date {\\n font-size: 11.5px;\\n padding: 0;\\n margin-top: 5px;\\n margin-bottom: 0;\\n margin-right: 0;\\n text-align: right;\\n line-height: 14px;\\n}\\n.messenger__message-empty {\\n width: 100%;\\n margin-top: 40px;\\n display: flex;\\n flex-direction: column;\\n justify-content: center;\\n align-items: center;\\n}\\n.messenger__message-empty p {\\n text-align: center;\\n}\\n@media only screen and (max-width: 576px) {\\n .messenger__message-avatar {\\n display: none;\\n }\\n}\\n.messenger__messages-send {\\n border-radius: 0 0 20px 0;\\n border-top: 0;\\n display: flex;\\n flex-direction: row;\\n justify-content: center;\\n align-items: center;\\n}\\n@media only screen and (max-width: 992px) {\\n .messenger__messages-send {\\n border-radius: 0 0 20px 20px;\\n }\\n}\\n.messenger__messages-send--form {\\n align-items: center;\\n display: flex;\\n gap: 10px;\\n width: 100%;\\n}\\n.messenger__messages-send__input {\\n border: 0;\\n border-radius: 12px;\\n display: flex;\\n flex: 1 1 auto;\\n height: 50px;\\n line-height: 26px;\\n max-height: 90px;\\n outline: none;\\n overflow-y: auto;\\n padding: 10px 12px 9px;\\n resize: none;\\n width: 90%;\\n}\\n.messenger__messages-send__input--disabled {\\n cursor: not-allowed;\\n opacity: 0.5;\\n}\\n.messenger__messages-send__input::placeholder {\\n color: #aaaaaa;\\n}\\n.messenger__messages-send__input-container {\\n align-items: center;\\n border-radius: 12px;\\n display: flex;\\n flex: 1 1 auto;\\n}\\n.messenger__messages-send__button {\\n height: 45px !important;\\n width: 45px !important;\\n border-radius: 50%;\\n border: none;\\n outline: none;\\n cursor: pointer;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n}\\n.messenger__messages-send__button--disabled {\\n cursor: not-allowed;\\n opacity: 0.5;\\n}\\n.messenger__messages-send__button:hover {\\n opacity: 0.7;\\n transition: 200ms;\\n}\\n.messenger__messages-send--file {\\n display: none;\\n}\\n.messenger__messages-send__attach {\\n cursor: pointer;\\n width: 40px;\\n}\\n.messenger__messages-send__attach--disabled {\\n cursor: not-allowed;\\n}\\n.messenger__new-chat-form {\\n overflow-y: scroll;\\n border-radius: 0 20px 20px 0;\\n height: 100%;\\n padding: 1rem;\\n}\\n@media only screen and (max-width: 768px) {\\n .messenger__new-chat-form {\\n border-radius: 20px !important;\\n }\\n}\\n.messenger__new-chat-form-header {\\n display: flex;\\n justify-content: space-between;\\n margin: 1rem 0;\\n}\\n.messenger__new-chat-form-title {\\n color: #476077;\\n margin-right: 1rem;\\n}\\n.messenger__new-chat-form-close {\\n background: none;\\n border: none;\\n cursor: pointer;\\n}\\n.messenger__new-chat-fields,\\n.messenger__disclaimer {\\n margin: 0 1rem;\\n}\\n.messenger__disclaimer {\\n border: solid 1px;\\n border-radius: 10px;\\n padding: 0.8rem;\\n margin-bottom: 1rem;\\n}\\n.messenger__new-chat-form-send {\\n border: none;\\n border-radius: 30px;\\n cursor: pointer;\\n font-weight: bolder;\\n margin: 25px 0;\\n padding: 0.5rem;\\n}\\n.messenger__new-chat-form-send:hover {\\n opacity: 0.9;\\n}\\n.messenger__new-chat-form-send--disabled {\\n cursor: not-allowed;\\n background-color: #ccc;\\n}\\n.messenger__buttons-container {\\n display: flex;\\n flex-direction: column;\\n padding-top: 1rem;\\n width: 100%;\\n}\\n.messenger__chat-button {\\n border: none;\\n border-radius: 30px;\\n color: var(--secondary-color);\\n cursor: pointer;\\n font-size: 1rem;\\n font-weight: bold;\\n margin: 0.5rem 1rem;\\n padding: 0.5rem;\\n}\\n.messenger__chat-button--disabled {\\n cursor: not-allowed;\\n}\\n.messenger__input-button {\\n border: none;\\n border-radius: 30px;\\n color: var(--secondary-color);\\n font-size: 1rem;\\n font-weight: bold;\\n margin: 0.5rem 1rem;\\n padding: 0.5rem;\\n}\\n.messenger__input-button-label {\\n color: var(--secondary-color);\\n font-weight: bold;\\n margin: 0rem 1rem;\\n}\\n.messenger__input-button::-webkit-calendar-picker-indicator {\\n filter: invert(1);\\n}\\n@media only screen and (max-width: 992px) {\\n .messenger__mobile-hide {\\n display: none !important;\\n }\\n}\\n.styles-module_wrapper__1I_qj {\\n z-index: 60 !important;\\n background-color: rgba(0, 0, 0, 0.7) !important;\\n}\\n*,\\n::after,\\n::before {\\n padding: 0;\\n margin: 0;\\n}\\n:root {\\n --secondary-color: var(--secondary-color);\\n}\\n@keyframes spin {\\n 0% {\\n transform: rotate(0deg);\\n }\\n 100% {\\n transform: rotate(360deg);\\n }\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/app/Messenger/components/ImagesContainer/ImagesContainer.less\",\"webpack://./src/styles/index.less\",\"webpack://./src/app/Messenger/components/Select/Select.less\",\"webpack://./src/app/Messenger/components/TextArea/Textarea.less\",\"webpack://./src/app/Messenger/components/InputFile/inputFile.less\",\"webpack://./src/app/Messenger/components/SearchInput/SearchInput.less\",\"webpack://./src/app/Messenger/components/ChatTabs/ChatTabs.less\",\"webpack://./src/app/Messenger/components/DocMessage/DocMessage.less\",\"webpack://./src/app/Messenger/components/Tooltip/Tooltip.less\",\"webpack://./src/app/Messenger/views/Messenger.less\",\"webpack://./src/styles/abstracts/mixins.less\",\"webpack://./src/styles/base/base.less\",\"webpack://./src/styles/abstracts/variables.less\",\"webpack://./src/styles/abstracts/animations.less\"],\"names\":[],\"mappings\":\"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\",\"sourcesContent\":[\".images-container {\\n width: 100%;\\n height: 90%;\\n border: 2px solid @secondary-bg-color-chat;\\n background-color: @component-background;\\n border-bottom: none;\\n border-radius: 0 @border-radius 0 0;\\n @media @tab-md {\\n border-radius: @border-radius @border-radius 0 0 !important;\\n }\\n\\n &__close {\\n width: 100%;\\n position: relative;\\n margin-top: 15px;\\n display: flex;\\n justify-content: flex-end;\\n align-items: center;\\n\\n &--icon {\\n width: 32px;\\n height: 32px;\\n cursor: pointer;\\n background-color: transparent;\\n outline: none;\\n border: none;\\n\\n &:hover {\\n opacity: 75%;\\n transition: 200ms;\\n }\\n\\n &::before,\\n &::after {\\n position: absolute;\\n right: 25px;\\n top: 0;\\n content: ' ';\\n height: 33px;\\n width: 2px;\\n background-color: red;\\n }\\n\\n &:after {\\n transform: rotate(45deg);\\n }\\n\\n &:before {\\n transform: rotate(-45deg);\\n }\\n }\\n }\\n\\n &__container {\\n width: 100%;\\n height: 100%;\\n\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n color: @title-form-color;\\n }\\n\\n &__image {\\n display: flex;\\n flex-direction: column;\\n align-items: center;\\n width: 100%;\\n padding: 0 10px;\\n max-width: 700px;\\n max-height: 300px;\\n }\\n\\n &__title-img {\\n width: 100%;\\n text-align: center;\\n word-wrap: break-word;\\n }\\n}\\n\",\".images-container {\\n width: 100%;\\n height: 90%;\\n border: 2px solid #484c52;\\n background-color: #232831;\\n border-bottom: none;\\n border-radius: 0 20px 0 0;\\n}\\n@media only screen and (max-width: 768px) {\\n .images-container {\\n border-radius: 20px 20px 0 0 !important;\\n }\\n}\\n.images-container__close {\\n width: 100%;\\n position: relative;\\n margin-top: 15px;\\n display: flex;\\n justify-content: flex-end;\\n align-items: center;\\n}\\n.images-container__close--icon {\\n width: 32px;\\n height: 32px;\\n cursor: pointer;\\n background-color: transparent;\\n outline: none;\\n border: none;\\n}\\n.images-container__close--icon:hover {\\n opacity: 75%;\\n transition: 200ms;\\n}\\n.images-container__close--icon::before,\\n.images-container__close--icon::after {\\n position: absolute;\\n right: 25px;\\n top: 0;\\n content: ' ';\\n height: 33px;\\n width: 2px;\\n background-color: red;\\n}\\n.images-container__close--icon:after {\\n transform: rotate(45deg);\\n}\\n.images-container__close--icon:before {\\n transform: rotate(-45deg);\\n}\\n.images-container__container {\\n width: 100%;\\n height: 100%;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n color: #476077;\\n}\\n.images-container__image {\\n display: flex;\\n flex-direction: column;\\n align-items: center;\\n width: 100%;\\n padding: 0 10px;\\n max-width: 700px;\\n max-height: 300px;\\n}\\n.images-container__title-img {\\n width: 100%;\\n text-align: center;\\n word-wrap: break-word;\\n}\\n.form-select {\\n margin-bottom: 1rem;\\n width: 100%;\\n}\\n.form-select__label {\\n color: #476077;\\n font-weight: bold;\\n margin: 0.5rem;\\n}\\n.form-select__input {\\n border: 1.5px solid hsl(0, 0%, 80%);\\n border-radius: 4px;\\n margin-top: 0.5rem;\\n padding: 8px 8px;\\n width: 100%;\\n}\\n.form-select__input:focus {\\n outline: #2684ff 2px solid !important;\\n}\\n.text-area {\\n margin-bottom: 1rem;\\n width: 100%;\\n}\\n.text-area__label {\\n color: #476077;\\n font-weight: bold;\\n margin: 0.5rem;\\n}\\n.text-area__input {\\n border: 1.5px solid hsl(0, 0%, 80%);\\n border-radius: 4px;\\n margin-top: 0.5rem;\\n padding: 4px 8px;\\n width: 100%;\\n}\\n.text-area__input:focus {\\n outline: #2684ff 2px solid !important;\\n}\\n.file-input {\\n margin-bottom: 1rem;\\n width: 100%;\\n}\\n.file-input__label {\\n color: #476077;\\n font-weight: bold;\\n margin: 0.5rem;\\n}\\n.file-input__container {\\n align-items: center;\\n background-color: var(--secondary-color);\\n border-radius: 10px;\\n display: flex;\\n flex-direction: column;\\n justify-content: center;\\n margin-top: 0.5rem;\\n padding: 1rem;\\n width: 100%;\\n}\\n.file-input__button {\\n border: none;\\n border-radius: 30px;\\n color: var(--secondary-color);\\n cursor: pointer;\\n font-size: 1rem;\\n font-weight: bold;\\n margin: 0.5rem 1rem;\\n padding: 0.5rem;\\n}\\n.file-input__list {\\n align-items: center;\\n background-color: var(--secondary-color);\\n border-radius: 10px;\\n display: flex;\\n justify-content: space-between;\\n margin: 0.5rem 0;\\n padding: 0.5rem;\\n}\\n.file-input__list--file-name {\\n overflow: hidden;\\n text-overflow: ellipsis;\\n white-space: nowrap;\\n max-width: 100%;\\n}\\n.file-input__delete {\\n align-items: center;\\n background: transparent;\\n border: none;\\n cursor: pointer;\\n display: flex;\\n justify-content: center;\\n}\\n.input-search {\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n width: 100%;\\n margin: 1rem 0;\\n position: relative;\\n}\\n.input-search__select {\\n border-radius: 30px 0 0 30px;\\n padding: 10px;\\n background: transparent;\\n margin-left: 1rem;\\n width: 30%;\\n}\\n.input-search__option {\\n color: black;\\n}\\n.input-search__search {\\n width: 70%;\\n margin-right: 1rem;\\n border-radius: 0 30px 30px 0;\\n padding: 9px;\\n color: var(--secondary-color);\\n border: var(--secondary-color) 1px solid;\\n background: transparent;\\n position: relative;\\n}\\n.input-search__search::placeholder {\\n color: var(--secondary-color);\\n opacity: 60%;\\n}\\n.input-search__icon {\\n border: none;\\n background: transparent;\\n position: absolute;\\n right: 2rem;\\n display: flex;\\n cursor: pointer;\\n}\\n.chat-tabs {\\n display: flex;\\n justify-content: center;\\n align-items: center;\\n}\\n.chat-tabs__button {\\n background: transparent;\\n border: none;\\n border-bottom: 1px solid transparent;\\n cursor: pointer;\\n padding: 0.5rem 1rem;\\n margin-bottom: 0.5rem;\\n}\\n.chat-tabs__button--active {\\n border-bottom: 1px solid var(--secondary-color);\\n transition: 0.5s;\\n}\\n.messenger__messages-row--sender {\\n display: flex;\\n justify-content: flex-end;\\n margin: 10px 0;\\n}\\n.messenger__messages-sender {\\n max-width: 80%;\\n padding: 10px;\\n border-radius: 8px;\\n font-family: 'Arial', sans-serif;\\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);\\n}\\n.messenger__file-card {\\n display: flex;\\n align-items: center;\\n background: rgba(0, 0, 0, 0.1);\\n border-radius: 8px;\\n padding: 10px;\\n}\\n.messenger__file-icon {\\n flex-shrink: 0;\\n width: 40px;\\n height: 40px;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n border-radius: 4px;\\n margin-right: 10px;\\n}\\n.messenger__file-details {\\n flex-grow: 1;\\n margin-right: 10px;\\n}\\n.messenger__file-name {\\n font-weight: bold;\\n font-size: 14px;\\n margin: 0;\\n}\\n.messenger__file-info {\\n font-size: 12px;\\n color: rgba(255, 255, 255, 0.8);\\n}\\n.messenger__file-download {\\n font-size: 12px;\\n text-decoration: none;\\n}\\n.messenger__file-download:hover {\\n text-decoration: underline;\\n}\\n.messenger__message--bottom {\\n display: flex;\\n justify-content: space-between;\\n align-items: center;\\n margin-top: 5px;\\n}\\n.messenger__message--date {\\n font-size: 12px;\\n color: rgba(255, 255, 255, 0.8);\\n}\\n.tooltip {\\n position: relative;\\n display: inline-block;\\n}\\n.tooltip__text {\\n visibility: hidden;\\n background-color: black;\\n color: #fff;\\n text-align: center;\\n border-radius: 5px;\\n padding: 5px;\\n position: absolute;\\n z-index: 1;\\n bottom: 125%;\\n left: -40%;\\n margin-left: -60px;\\n opacity: 0;\\n transition: opacity 0.3s, visibility 0.3s;\\n}\\n.tooltip:hover .tooltip__text {\\n visibility: visible;\\n opacity: 1;\\n}\\n.messenger__aside {\\n width: 30% !important;\\n display: flex;\\n align-items: center;\\n flex-direction: column;\\n}\\n@media only screen and (max-width: 1200px) {\\n .messenger__aside {\\n min-width: 300px;\\n }\\n}\\n@media only screen and (max-width: 992px) {\\n .messenger__aside {\\n border-radius: 20px !important;\\n width: 100% !important;\\n }\\n}\\n.messenger__aside-skeleton {\\n background-color: #232831;\\n border: 0;\\n min-height: 75px;\\n width: 100% !important;\\n}\\n.messenger__aside-empty {\\n width: 100%;\\n margin-top: 40px;\\n display: flex;\\n flex-direction: column;\\n justify-content: center;\\n align-items: center;\\n}\\n.messenger__aside-empty path {\\n fill: var(--secondary-color);\\n}\\n.messenger__aside-empty p {\\n text-align: center;\\n}\\n.messenger__aside-header {\\n width: 100% !important;\\n padding: 0 15px;\\n}\\n.messenger__scroll-content {\\n overflow-y: auto;\\n margin-bottom: 0.5rem;\\n}\\n.messenger__aside-list {\\n width: 100% !important;\\n padding: 0 10px 10px 10px;\\n height: 100%;\\n overflow-y: auto;\\n overflow-x: hidden;\\n display: flex;\\n flex-direction: column;\\n justify-content: flex-start;\\n align-items: center;\\n}\\n.messenger__aside-list > .ant-ribbon-wrapper {\\n width: 100%;\\n}\\n.messenger__aside-list > .ant-ribbon-wrapper .ant-ribbon {\\n z-index: -1;\\n top: 0;\\n}\\n.messenger__aside-item-container {\\n min-width: 100%;\\n position: relative;\\n}\\n.messenger__active-badge {\\n z-index: 15 !important;\\n}\\n.messenger__aside-protocol {\\n position: absolute;\\n right: 0;\\n top: 0;\\n border-radius: 10px;\\n background-color: var(--secondary-color);\\n padding: 0 0.5rem;\\n font-size: 0.6rem;\\n}\\n.messenger__aside-timer {\\n align-items: center;\\n display: flex;\\n font-size: 12px;\\n}\\n.messenger__aside-list-item {\\n border-radius: 0;\\n cursor: pointer;\\n display: flex;\\n flex-direction: row;\\n height: 72px;\\n padding: 5px 10px;\\n width: 100% !important;\\n}\\n.messenger__aside-list-item:hover {\\n background: #232831;\\n border-radius: 0;\\n}\\n.messenger__aside-list-item--avatar {\\n align-items: center;\\n background: #484c52;\\n border-radius: 50%;\\n color: #00a73e;\\n display: flex;\\n flex: 0 0 auto;\\n font-size: 25px;\\n font-weight: bold;\\n height: 50px;\\n justify-content: center;\\n line-height: 2.2;\\n margin: auto 10px auto 0;\\n text-transform: uppercase;\\n user-select: none;\\n width: 50px;\\n}\\n@media only screen and (max-width: 1200px) {\\n .messenger__aside-list-item--avatar {\\n height: 45px;\\n width: 45px;\\n }\\n}\\n.messenger__aside-list-item--avatar img {\\n height: 54px;\\n width: 54px;\\n border-radius: 50%;\\n}\\n.messenger__aside-list-item--info,\\n.messenger__aside-list-item--additional {\\n display: flex;\\n flex-direction: column;\\n gap: 0.5rem;\\n height: 100%;\\n}\\n.messenger__aside-list-item--info {\\n max-width: 120px;\\n min-width: 120px;\\n}\\n@media only screen and (min-width: 1600px) {\\n .messenger__aside-list-item--info {\\n max-width: 140px;\\n min-width: 140px;\\n }\\n}\\n@media only screen and (max-width: 992px) {\\n .messenger__aside-list-item--info {\\n max-width: 65%;\\n min-width: 65%;\\n }\\n}\\n@media only screen and (max-width: 576px) {\\n .messenger__aside-list-item--info {\\n max-width: 120px;\\n min-width: 120px;\\n }\\n}\\n.messenger__aside-list-item--additional {\\n align-items: flex-end;\\n font-size: 11px;\\n margin-left: 5px;\\n width: 100%;\\n}\\n.messenger__aside-list-item--unread {\\n background-color: #00a73e;\\n border-radius: 50%;\\n width: 20px;\\n height: 20px;\\n text-align: center;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n}\\n.messenger__aside-list-item--title,\\n.messenger__aside-list-item--description {\\n line-height: 1;\\n overflow: hidden;\\n margin: 0;\\n max-width: 160px;\\n text-overflow: ellipsis;\\n white-space: nowrap;\\n width: 100%;\\n}\\n.messenger__aside-list-item--title {\\n font-weight: bold;\\n font-size: 14px;\\n}\\n.messenger__aside-list-item--description {\\n font-size: 12px;\\n}\\n.messenger__messages {\\n width: 70% !important;\\n display: flex;\\n flex-direction: column;\\n justify-content: space-evenly;\\n}\\n@media only screen and (max-width: 992px) {\\n .messenger__messages {\\n width: 100% !important;\\n }\\n}\\n.messenger__messages-header,\\n.messenger__messages-send {\\n padding: 5px;\\n min-height: 10%;\\n width: 100%;\\n}\\n.messenger__messages-header {\\n border-radius: 0 20px 0 0;\\n display: flex;\\n flex-direction: row;\\n align-items: center;\\n justify-content: space-between;\\n}\\n@media only screen and (max-width: 992px) {\\n .messenger__messages-header {\\n border-radius: 20px 20px 0 0;\\n }\\n}\\n.messenger__messages-container {\\n max-height: 80%;\\n height: 100%;\\n padding: 0 24px;\\n overflow: auto;\\n overflow-x: hidden;\\n scroll-behavior: auto;\\n background-color: #dddddd;\\n}\\n.messenger__messages-container--empty {\\n width: 100%;\\n height: 100%;\\n border-radius: 0 20px 20px 0;\\n background-color: #dddddd;\\n display: flex;\\n flex-direction: column;\\n align-items: center;\\n justify-content: center;\\n}\\n.messenger__messages-container--empty path {\\n fill: #00a73e;\\n}\\n.messenger__messages-container--empty p {\\n text-align: center;\\n margin-top: 24px;\\n}\\n.messenger__messages-loading {\\n width: 100%;\\n display: flex;\\n justify-content: center;\\n align-items: center;\\n margin-top: 10px;\\n}\\n.messenger__messages-loading div {\\n animation: spin 1s infinite linear;\\n border-left: 2px solid var(--secondary-color);\\n border-radius: 50%;\\n height: 25px;\\n margin-bottom: 10px;\\n width: 25px;\\n}\\n.messenger__messages-row--sender,\\n.messenger__messages-row--received,\\n.messenger__messages-row--system {\\n width: 100%;\\n height: fit-content;\\n margin: 10px 0;\\n display: flex;\\n align-items: center;\\n}\\n.messenger__messages-row--sender {\\n justify-content: flex-end;\\n}\\n.messenger__messages-row--received {\\n justify-content: flex-start;\\n}\\n.messenger__messages-row--system {\\n justify-content: center;\\n}\\n.messenger__messages-received,\\n.messenger__messages-sender {\\n min-width: 75px;\\n width: fit-content;\\n padding: 10px;\\n}\\n.messenger__messages-received > span,\\n.messenger__messages-sender > span {\\n color: var(--secondary-color);\\n overflow-wrap: break-word;\\n word-break: break-word;\\n width: 200px;\\n}\\n.messenger__messages-received {\\n max-width: 500px;\\n background-color: #707070;\\n border-radius: 12px 12px 12px 0;\\n}\\n.messenger__messages-received--system {\\n border-radius: 12px;\\n}\\n.messenger__messages-sender {\\n max-width: 450px;\\n margin-top: -2px;\\n background-color: #00a73e;\\n border-radius: 12px 12px 0 12px;\\n}\\n.messenger__message-title {\\n white-space: nowrap;\\n overflow: hidden;\\n max-width: 100%;\\n display: block;\\n line-height: 1;\\n padding: 0;\\n margin: 0 0 3px;\\n justify-content: flex-end;\\n font-size: 13px;\\n color: var(--secondary-color);\\n font-weight: bold;\\n filter: opacity(0.7);\\n font-weight: 700;\\n}\\n.messenger__message {\\n padding: 0;\\n margin: 0;\\n white-space: pre-wrap;\\n line-height: 1.2;\\n}\\n.messenger__message--file {\\n cursor: pointer;\\n}\\n.messenger__message--file img {\\n object-fit: scale-down;\\n}\\n.messenger__message--bottom {\\n width: 100%;\\n display: flex;\\n align-items: center;\\n justify-content: flex-end;\\n gap: 5px;\\n margin-top: 5px;\\n}\\n.messenger__message--date {\\n font-size: 11.5px;\\n padding: 0;\\n margin-top: 5px;\\n margin-bottom: 0;\\n margin-right: 0;\\n text-align: right;\\n line-height: 14px;\\n}\\n.messenger__message-empty {\\n width: 100%;\\n margin-top: 40px;\\n display: flex;\\n flex-direction: column;\\n justify-content: center;\\n align-items: center;\\n}\\n.messenger__message-empty p {\\n text-align: center;\\n}\\n@media only screen and (max-width: 576px) {\\n .messenger__message-avatar {\\n display: none;\\n }\\n}\\n.messenger__messages-send {\\n border-radius: 0 0 20px 0;\\n border-top: 0;\\n display: flex;\\n flex-direction: row;\\n justify-content: center;\\n align-items: center;\\n}\\n@media only screen and (max-width: 992px) {\\n .messenger__messages-send {\\n border-radius: 0 0 20px 20px;\\n }\\n}\\n.messenger__messages-send--form {\\n align-items: center;\\n display: flex;\\n gap: 10px;\\n width: 100%;\\n}\\n.messenger__messages-send__input {\\n border: 0;\\n border-radius: 12px;\\n display: flex;\\n flex: 1 1 auto;\\n height: 50px;\\n line-height: 26px;\\n max-height: 90px;\\n outline: none;\\n overflow-y: auto;\\n padding: 10px 12px 9px;\\n resize: none;\\n width: 90%;\\n}\\n.messenger__messages-send__input--disabled {\\n cursor: not-allowed;\\n opacity: 0.5;\\n}\\n.messenger__messages-send__input::placeholder {\\n color: #aaaaaa;\\n}\\n.messenger__messages-send__input-container {\\n align-items: center;\\n border-radius: 12px;\\n display: flex;\\n flex: 1 1 auto;\\n}\\n.messenger__messages-send__button {\\n height: 45px !important;\\n width: 45px !important;\\n border-radius: 50%;\\n border: none;\\n outline: none;\\n cursor: pointer;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n}\\n.messenger__messages-send__button--disabled {\\n cursor: not-allowed;\\n opacity: 0.5;\\n}\\n.messenger__messages-send__button:hover {\\n opacity: 0.7;\\n transition: 200ms;\\n}\\n.messenger__messages-send--file {\\n display: none;\\n}\\n.messenger__messages-send__attach {\\n cursor: pointer;\\n width: 40px;\\n}\\n.messenger__messages-send__attach--disabled {\\n cursor: not-allowed;\\n}\\n.messenger__new-chat-form {\\n overflow-y: scroll;\\n border-radius: 0 20px 20px 0;\\n height: 100%;\\n padding: 1rem;\\n}\\n@media only screen and (max-width: 768px) {\\n .messenger__new-chat-form {\\n border-radius: 20px !important;\\n }\\n}\\n.messenger__new-chat-form-header {\\n display: flex;\\n justify-content: space-between;\\n margin: 1rem 0;\\n}\\n.messenger__new-chat-form-title {\\n color: #476077;\\n margin-right: 1rem;\\n}\\n.messenger__new-chat-form-close {\\n background: none;\\n border: none;\\n cursor: pointer;\\n}\\n.messenger__new-chat-fields,\\n.messenger__disclaimer {\\n margin: 0 1rem;\\n}\\n.messenger__disclaimer {\\n border: solid 1px;\\n border-radius: 10px;\\n padding: 0.8rem;\\n margin-bottom: 1rem;\\n}\\n.messenger__new-chat-form-send {\\n border: none;\\n border-radius: 30px;\\n cursor: pointer;\\n font-weight: bolder;\\n margin: 25px 0;\\n padding: 0.5rem;\\n}\\n.messenger__new-chat-form-send:hover {\\n opacity: 0.9;\\n}\\n.messenger__new-chat-form-send--disabled {\\n cursor: not-allowed;\\n background-color: #ccc;\\n}\\n.messenger__buttons-container {\\n display: flex;\\n flex-direction: column;\\n padding-top: 1rem;\\n width: 100%;\\n}\\n.messenger__chat-button {\\n border: none;\\n border-radius: 30px;\\n color: var(--secondary-color);\\n cursor: pointer;\\n font-size: 1rem;\\n font-weight: bold;\\n margin: 0.5rem 1rem;\\n padding: 0.5rem;\\n}\\n.messenger__chat-button--disabled {\\n cursor: not-allowed;\\n}\\n.messenger__input-button {\\n border: none;\\n border-radius: 30px;\\n color: var(--secondary-color);\\n font-size: 1rem;\\n font-weight: bold;\\n margin: 0.5rem 1rem;\\n padding: 0.5rem;\\n}\\n.messenger__input-button-label {\\n color: var(--secondary-color);\\n font-weight: bold;\\n margin: 0rem 1rem;\\n}\\n.messenger__input-button::-webkit-calendar-picker-indicator {\\n filter: invert(1);\\n}\\n@media only screen and (max-width: 992px) {\\n .messenger__mobile-hide {\\n display: none !important;\\n }\\n}\\n.styles-module_wrapper__1I_qj {\\n z-index: 60 !important;\\n background-color: rgba(0, 0, 0, 0.7) !important;\\n}\\n*,\\n::after,\\n::before {\\n padding: 0;\\n margin: 0;\\n}\\n:root {\\n --secondary-color: var(--secondary-color);\\n}\\n@keyframes spin {\\n 0% {\\n transform: rotate(0deg);\\n }\\n 100% {\\n transform: rotate(360deg);\\n }\\n}\\n\",\".form-select {\\n margin-bottom: 1rem;\\n width: 100%;\\n\\n &__label {\\n color: @title-form-color;\\n font-weight: bold;\\n margin: 0.5rem;\\n }\\n\\n &__input {\\n border: 1.5px solid hsl(0, 0%, 80%);\\n border-radius: 4px;\\n margin-top: 0.5rem;\\n padding: 8px 8px;\\n width: 100%;\\n\\n &:focus {\\n outline: #2684ff 2px solid !important;\\n }\\n }\\n}\\n\",\".text-area {\\n margin-bottom: 1rem;\\n width: 100%;\\n\\n &__label {\\n color: @title-form-color;\\n font-weight: bold;\\n margin: 0.5rem;\\n }\\n\\n &__input {\\n border: 1.5px solid hsl(0, 0%, 80%);\\n border-radius: 4px;\\n margin-top: 0.5rem;\\n padding: 4px 8px;\\n width: 100%;\\n\\n &:focus {\\n outline: #2684ff 2px solid !important;\\n }\\n }\\n}\\n\",\".file-input {\\n margin-bottom: 1rem;\\n width: 100%;\\n\\n &__label {\\n color: @title-form-color;\\n font-weight: bold;\\n margin: 0.5rem;\\n }\\n\\n &__container {\\n align-items: center;\\n background-color: var(--secondary-color);\\n border-radius: 10px;\\n display: flex;\\n flex-direction: column;\\n justify-content: center;\\n margin-top: 0.5rem;\\n padding: 1rem;\\n width: 100%;\\n }\\n\\n &__button {\\n border: none;\\n border-radius: 30px;\\n color: var(--secondary-color);\\n cursor: pointer;\\n font-size: 1rem;\\n font-weight: bold;\\n margin: 0.5rem 1rem;\\n padding: 0.5rem;\\n }\\n\\n &__list {\\n align-items: center;\\n background-color: var(--secondary-color);\\n border-radius: 10px;\\n display: flex;\\n justify-content: space-between;\\n margin: 0.5rem 0;\\n padding: 0.5rem;\\n\\n &--file-name {\\n overflow: hidden;\\n text-overflow: ellipsis;\\n white-space: nowrap;\\n max-width: 100%;\\n }\\n }\\n\\n &__delete {\\n align-items: center;\\n background: transparent;\\n border: none;\\n cursor: pointer;\\n display: flex;\\n justify-content: center;\\n }\\n}\\n\",\".input-search {\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n width: 100%;\\n margin: 1rem 0;\\n position: relative;\\n\\n &__select {\\n border-radius: 30px 0 0 30px;\\n padding: 10px;\\n background: transparent;\\n margin-left: 1rem;\\n width: 30%;\\n }\\n\\n &__option {\\n color: black;\\n }\\n\\n &__search {\\n width: 70%;\\n margin-right: 1rem;\\n border-radius: 0 30px 30px 0;\\n padding: 9px;\\n color: var(--secondary-color);\\n border: var(--secondary-color) 1px solid;\\n background: transparent;\\n position: relative;\\n\\n &::placeholder {\\n color: var(--secondary-color);\\n opacity: 60%;\\n }\\n }\\n\\n &__icon {\\n border: none;\\n background: transparent;\\n position: absolute;\\n right: 2rem;\\n display: flex;\\n cursor: pointer;\\n }\\n}\\n\",\".chat-tabs {\\n display: flex;\\n justify-content: center;\\n align-items: center;\\n &__button {\\n background: transparent;\\n border: none;\\n border-bottom: 1px solid transparent;\\n cursor: pointer;\\n padding: 0.5rem 1rem;\\n margin-bottom: 0.5rem;\\n\\n &--active {\\n border-bottom: 1px solid var(--secondary-color);\\n transition: 0.5s;\\n }\\n }\\n}\\n\",\".messenger {\\n &__messages-row--sender {\\n display: flex;\\n justify-content: flex-end;\\n margin: 10px 0;\\n }\\n\\n &__messages-sender {\\n max-width: 80%;\\n padding: 10px;\\n border-radius: 8px;\\n font-family: 'Arial', sans-serif;\\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);\\n }\\n\\n &__file-card {\\n display: flex;\\n align-items: center;\\n background: rgba(0, 0, 0, 0.1);\\n border-radius: 8px;\\n padding: 10px;\\n }\\n\\n &__file-icon {\\n flex-shrink: 0;\\n width: 40px;\\n height: 40px;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n border-radius: 4px;\\n margin-right: 10px;\\n }\\n\\n &__file-details {\\n flex-grow: 1;\\n margin-right: 10px;\\n }\\n\\n &__file-name {\\n font-weight: bold;\\n font-size: 14px;\\n margin: 0;\\n }\\n\\n &__file-info {\\n font-size: 12px;\\n color: rgba(255, 255, 255, 0.8);\\n }\\n\\n &__file-download {\\n font-size: 12px;\\n text-decoration: none;\\n }\\n\\n &__file-download:hover {\\n text-decoration: underline;\\n }\\n\\n &__message--bottom {\\n display: flex;\\n justify-content: space-between;\\n align-items: center;\\n margin-top: 5px;\\n }\\n\\n &__message--date {\\n font-size: 12px;\\n color: rgba(255, 255, 255, 0.8);\\n }\\n}\\n\",\".tooltip {\\n position: relative;\\n display: inline-block;\\n}\\n\\n.tooltip__text {\\n visibility: hidden;\\n background-color: black;\\n color: #fff;\\n text-align: center;\\n border-radius: 5px;\\n padding: 5px;\\n position: absolute;\\n z-index: 1;\\n bottom: 125%;\\n left: -40%;\\n margin-left: -60px;\\n opacity: 0;\\n transition:\\n opacity 0.3s,\\n visibility 0.3s;\\n}\\n\\n.tooltip:hover .tooltip__text {\\n visibility: visible;\\n opacity: 1;\\n}\\n\",\"@import '../components/ImagesContainer/ImagesContainer';\\n@import '../components/Select/Select.less';\\n@import '../components/TextArea/Textarea.less';\\n@import '../components/InputFile/inputFile.less';\\n@import '../components/SearchInput/SearchInput.less';\\n@import '../components/ChatTabs/ChatTabs.less';\\n@import '../components/DocMessage/DocMessage.less';\\n@import '../components/Tooltip/Tooltip.less';\\n\\n@buttons-container-height: 10rem;\\n\\n.messenger {\\n &__aside {\\n width: 30% !important;\\n\\n @media @tab-xl {\\n min-width: 300px;\\n }\\n\\n @media @tab-lg {\\n border-radius: 20px !important;\\n width: 100% !important;\\n }\\n\\n display: flex;\\n align-items: center;\\n flex-direction: column;\\n }\\n\\n &__aside-skeleton {\\n background-color: @component-background;\\n border: 0;\\n min-height: 75px;\\n width: 100% !important;\\n }\\n\\n &__aside-empty {\\n width: 100%;\\n margin-top: 40px;\\n\\n display: flex;\\n flex-direction: column;\\n justify-content: center;\\n align-items: center;\\n\\n & path {\\n fill: var(--secondary-color);\\n }\\n\\n & p {\\n text-align: center;\\n }\\n }\\n\\n &__aside-header {\\n width: 100% !important;\\n padding: 0 15px;\\n }\\n\\n &__scroll-content {\\n overflow-y: auto;\\n margin-bottom: 0.5rem;\\n }\\n\\n &__aside-list {\\n width: 100% !important;\\n padding: 0 10px 10px 10px;\\n\\n height: 100%;\\n overflow-y: auto;\\n overflow-x: hidden;\\n\\n display: flex;\\n flex-direction: column;\\n justify-content: flex-start;\\n align-items: center;\\n\\n & > .ant-ribbon-wrapper {\\n width: 100%;\\n\\n & .ant-ribbon {\\n z-index: -1;\\n top: 0;\\n }\\n }\\n }\\n\\n &__aside-item-container {\\n min-width: 100%;\\n position: relative;\\n }\\n\\n &__active-badge {\\n z-index: 15 !important;\\n }\\n\\n &__aside-protocol {\\n position: absolute;\\n right: 0;\\n top: 0;\\n border-radius: 10px;\\n background-color: var(--secondary-color);\\n padding: 0 0.5rem;\\n font-size: 0.6rem;\\n }\\n\\n &__aside-timer {\\n align-items: center;\\n display: flex;\\n font-size: 12px;\\n }\\n\\n &__aside-list-item {\\n border-radius: 0;\\n cursor: pointer;\\n display: flex;\\n flex-direction: row;\\n height: 72px;\\n padding: 5px 10px;\\n width: 100% !important;\\n\\n &:hover {\\n background: @component-background;\\n border-radius: 0;\\n }\\n\\n &--avatar {\\n align-items: center;\\n background: @secondary-bg-color-chat;\\n border-radius: 50%;\\n color: @messenger-primary-color;\\n display: flex;\\n flex: 0 0 auto;\\n font-size: 25px;\\n font-weight: bold;\\n height: 50px;\\n justify-content: center;\\n line-height: 2.2;\\n margin: auto 10px auto 0;\\n text-transform: uppercase;\\n user-select: none;\\n width: 50px;\\n\\n @media @tab-xl {\\n height: 45px;\\n width: 45px;\\n }\\n\\n & img {\\n height: 54px;\\n width: 54px;\\n border-radius: 50%;\\n }\\n }\\n\\n &--info,\\n &--additional {\\n display: flex;\\n flex-direction: column;\\n gap: 0.5rem;\\n height: 100%;\\n }\\n\\n &--info {\\n max-width: 120px;\\n min-width: 120px;\\n\\n @media @desktop-xxl {\\n max-width: 140px;\\n min-width: 140px;\\n }\\n\\n @media @tab-lg {\\n max-width: 65%;\\n min-width: 65%;\\n }\\n\\n @media @phone-sm {\\n max-width: 120px;\\n min-width: 120px;\\n }\\n }\\n\\n &--additional {\\n align-items: flex-end;\\n font-size: 11px;\\n margin-left: 5px;\\n width: 100%;\\n }\\n\\n &--unread {\\n background-color: @messenger-primary-color;\\n border-radius: 50%;\\n width: 20px;\\n height: 20px;\\n text-align: center;\\n\\n .flex-full-center();\\n }\\n\\n &--title,\\n &--description {\\n line-height: 1;\\n overflow: hidden;\\n margin: 0;\\n max-width: 160px;\\n text-overflow: ellipsis;\\n white-space: nowrap;\\n width: 100%;\\n }\\n\\n &--title {\\n font-weight: bold;\\n font-size: 14px;\\n }\\n\\n &--description {\\n font-size: 12px;\\n }\\n }\\n\\n &__messages {\\n width: 70% !important;\\n\\n display: flex;\\n flex-direction: column;\\n justify-content: space-evenly;\\n\\n @media @tab-lg {\\n width: 100% !important;\\n }\\n }\\n\\n &__messages-header,\\n &__messages-send {\\n padding: 5px;\\n min-height: 10%;\\n width: 100%;\\n }\\n\\n &__messages-header {\\n @media @tab-lg {\\n border-radius: @border-radius @border-radius 0 0;\\n }\\n\\n border-radius: 0 @border-radius 0 0;\\n display: flex;\\n flex-direction: row;\\n align-items: center;\\n justify-content: space-between;\\n }\\n\\n &__messages-container {\\n max-height: 80%;\\n height: 100%;\\n padding: 0 24px;\\n overflow: auto;\\n overflow-x: hidden;\\n scroll-behavior: auto;\\n background-color: @card-background;\\n\\n &--empty {\\n width: 100%;\\n height: 100%;\\n border-radius: 0 @border-radius @border-radius 0;\\n background-color: @card-background;\\n\\n display: flex;\\n flex-direction: column;\\n align-items: center;\\n justify-content: center;\\n\\n & path {\\n fill: @messenger-primary-color;\\n }\\n\\n & p {\\n text-align: center;\\n margin-top: 24px;\\n }\\n }\\n }\\n\\n &__messages-loading {\\n width: 100%;\\n display: flex;\\n justify-content: center;\\n align-items: center;\\n margin-top: 10px;\\n\\n & div {\\n animation: spin 1s infinite linear;\\n border-left: 2px solid var(--secondary-color);\\n border-radius: 50%;\\n height: 25px;\\n margin-bottom: 10px;\\n width: 25px;\\n }\\n }\\n\\n &__messages-row--sender,\\n &__messages-row--received,\\n &__messages-row--system {\\n width: 100%;\\n height: fit-content;\\n margin: 10px 0;\\n display: flex;\\n align-items: center;\\n }\\n\\n &__messages-row--sender {\\n justify-content: flex-end;\\n }\\n\\n &__messages-row--received {\\n justify-content: flex-start;\\n }\\n\\n &__messages-row--system {\\n justify-content: center;\\n }\\n\\n &__messages-received,\\n &__messages-sender {\\n min-width: 75px;\\n width: fit-content;\\n padding: 10px;\\n\\n & > span {\\n color: var(--secondary-color);\\n overflow-wrap: break-word;\\n word-break: break-word;\\n width: 200px;\\n }\\n }\\n\\n &__messages-received {\\n max-width: 500px;\\n background-color: @grey-2;\\n border-radius: 12px 12px 12px 0;\\n\\n &--system {\\n border-radius: 12px;\\n }\\n }\\n\\n &__messages-sender {\\n max-width: 450px;\\n margin-top: -2px;\\n background-color: @messenger-primary-color;\\n border-radius: 12px 12px 0 12px;\\n }\\n\\n &__message-title {\\n max-width: 100%;\\n white-space: nowrap;\\n overflow: hidden;\\n max-width: 100%;\\n display: block;\\n\\n line-height: 1;\\n padding: 0;\\n margin: 0 0 3px;\\n justify-content: flex-end;\\n font-size: 13px;\\n color: var(--secondary-color);\\n font-weight: bold;\\n filter: opacity(0.7);\\n font-weight: 700;\\n }\\n\\n &__message {\\n padding: 0;\\n margin: 0;\\n white-space: pre-wrap;\\n line-height: 1.2;\\n\\n &--file {\\n cursor: pointer;\\n\\n img {\\n object-fit: scale-down;\\n }\\n }\\n\\n &--bottom {\\n width: 100%;\\n display: flex;\\n align-items: center;\\n justify-content: flex-end;\\n gap: 5px;\\n margin-top: 5px;\\n }\\n\\n &--date {\\n font-size: 11.5px;\\n padding: 0;\\n margin-top: 5px;\\n margin-bottom: 0;\\n margin-right: 0;\\n text-align: right;\\n line-height: 14px;\\n }\\n }\\n\\n &__message-empty {\\n width: 100%;\\n margin-top: 40px;\\n\\n display: flex;\\n flex-direction: column;\\n justify-content: center;\\n align-items: center;\\n\\n & p {\\n text-align: center;\\n }\\n }\\n\\n &__message-avatar {\\n @media @phone-sm {\\n display: none;\\n }\\n }\\n\\n &__messages-send {\\n border-radius: 0 0 @border-radius 0;\\n border-top: 0;\\n\\n @media @tab-lg {\\n border-radius: 0 0 @border-radius @border-radius;\\n }\\n\\n display: flex;\\n flex-direction: row;\\n justify-content: center;\\n align-items: center;\\n\\n &--form {\\n align-items: center;\\n display: flex;\\n gap: 10px;\\n width: 100%;\\n }\\n\\n &__input {\\n border: 0;\\n border-radius: 12px;\\n display: flex;\\n flex: 1 1 auto;\\n height: 50px;\\n line-height: 26px;\\n max-height: 90px;\\n outline: none;\\n overflow-y: auto;\\n padding: 10px 12px 9px;\\n resize: none;\\n width: 90%;\\n\\n &--disabled {\\n cursor: not-allowed;\\n opacity: 0.5;\\n }\\n\\n &::placeholder {\\n color: @border-color;\\n }\\n }\\n\\n &__input-container {\\n align-items: center;\\n border-radius: 12px;\\n display: flex;\\n flex: 1 1 auto;\\n }\\n\\n &__button {\\n height: 45px !important;\\n width: 45px !important;\\n border-radius: 50%;\\n border: none;\\n outline: none;\\n cursor: pointer;\\n\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n\\n &--disabled {\\n cursor: not-allowed;\\n opacity: 0.5;\\n }\\n\\n &:hover {\\n opacity: 0.7;\\n transition: 200ms;\\n }\\n }\\n\\n &--file {\\n display: none;\\n }\\n\\n &__attach {\\n cursor: pointer;\\n width: 40px;\\n\\n &--disabled {\\n cursor: not-allowed;\\n }\\n }\\n }\\n\\n &__new-chat-form {\\n overflow-y: scroll;\\n border-radius: 0 20px 20px 0;\\n height: 100%;\\n padding: 1rem;\\n\\n @media @tab-md {\\n border-radius: 20px !important;\\n }\\n }\\n\\n &__new-chat-form-header {\\n display: flex;\\n justify-content: space-between;\\n margin: 1rem 0;\\n }\\n\\n &__new-chat-form-title {\\n color: @title-form-color;\\n margin-right: 1rem;\\n }\\n\\n &__new-chat-form-close {\\n background: none;\\n border: none;\\n cursor: pointer;\\n }\\n\\n &__new-chat-fields,\\n &__disclaimer {\\n margin: 0 1rem;\\n }\\n\\n &__disclaimer {\\n border: solid 1px;\\n border-radius: 10px;\\n padding: 0.8rem;\\n margin-bottom: 1rem;\\n }\\n\\n &__new-chat-form-send {\\n border: none;\\n border-radius: 30px;\\n cursor: pointer;\\n font-weight: bolder;\\n margin: 25px 0;\\n padding: 0.5rem;\\n\\n &:hover {\\n opacity: 0.9;\\n }\\n &--disabled {\\n cursor: not-allowed;\\n background-color: #ccc;\\n }\\n }\\n\\n &__buttons-container {\\n display: flex;\\n flex-direction: column;\\n padding-top: 1rem;\\n width: 100%;\\n }\\n\\n &__chat-button {\\n border: none;\\n border-radius: 30px;\\n color: var(--secondary-color);\\n cursor: pointer;\\n font-size: 1rem;\\n font-weight: bold;\\n margin: 0.5rem 1rem;\\n padding: 0.5rem;\\n }\\n\\n &__chat-button--disabled {\\n cursor: not-allowed;\\n }\\n\\n &__input-button {\\n border: none;\\n border-radius: 30px;\\n color: var(--secondary-color);\\n font-size: 1rem;\\n font-weight: bold;\\n margin: 0.5rem 1rem;\\n padding: 0.5rem;\\n }\\n\\n &__input-button-label {\\n color: var(--secondary-color);\\n font-weight: bold;\\n margin: 0rem 1rem;\\n }\\n\\n &__input-button::-webkit-calendar-picker-indicator {\\n filter: invert(1);\\n }\\n\\n &__mobile-hide {\\n @media @tab-lg {\\n display: none !important;\\n }\\n }\\n}\\n\\n.styles-module_wrapper__1I_qj {\\n z-index: 60 !important;\\n background-color: rgba(0, 0, 0, 70%) !important;\\n}\\n\",\".flex-full-center() {\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n}\\n\",\"*,\\n::after,\\n::before {\\n padding: 0;\\n margin: 0;\\n}\\n\",\"// ANTD MEDIA QUERIES\\n@phone-xs: ~'only screen and (max-width: 480px)';\\n@phone-sm: ~'only screen and (max-width: 576px)';\\n@tab-md: ~'only screen and (max-width: 768px)';\\n@tab-lg: ~'only screen and (max-width: 992px)';\\n@tab-lg-min: ~'only screen and (min-width: 992px)';\\n@tab-xl: ~'only screen and (max-width: 1200px)';\\n\\n// [1200 - 1600] - normal style //\\n@desktop-xxl: ~'only screen and (min-width: 1600px)';\\n\\n@grey-1: #94989d;\\n@grey-2: #707070;\\n@border-color: #aaaaaa;\\n@messenger-primary-color: #00a73e;\\n@messenger-messages-bg: #eeeeee;\\n@secondary-bg-color-chat: #484c52;\\n@card-background: #dddddd;\\n@upload-file-icon-color: #8696a0;\\n@border-radius: 20px;\\n@body-background: blue;\\n@component-background: #232831;\\n@full-content-height: calc(100vh - 23px);\\n@title-form-color: #476077;\\n@border-radius: 20px;\\n@document-message-bg: #34c759;\\n@text-color-white: #ffffff;\\n\\n:root {\\n --secondary-color: var(--secondary-color);\\n}\\n\",\"@keyframes spin {\\n 0% {\\n transform: rotate(0deg);\\n }\\n 100% {\\n transform: rotate(360deg);\\n }\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","\"use strict\";\n\n/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n*/\nmodule.exports = function (cssWithMappingToString) {\n var list = [];\n\n // return the list of modules as css string\n list.toString = function toString() {\n return this.map(function (item) {\n var content = \"\";\n var needLayer = typeof item[5] !== \"undefined\";\n if (item[4]) {\n content += \"@supports (\".concat(item[4], \") {\");\n }\n if (item[2]) {\n content += \"@media \".concat(item[2], \" {\");\n }\n if (needLayer) {\n content += \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\");\n }\n content += cssWithMappingToString(item);\n if (needLayer) {\n content += \"}\";\n }\n if (item[2]) {\n content += \"}\";\n }\n if (item[4]) {\n content += \"}\";\n }\n return content;\n }).join(\"\");\n };\n\n // import a list of modules into the list\n list.i = function i(modules, media, dedupe, supports, layer) {\n if (typeof modules === \"string\") {\n modules = [[null, modules, undefined]];\n }\n var alreadyImportedModules = {};\n if (dedupe) {\n for (var k = 0; k < this.length; k++) {\n var id = this[k][0];\n if (id != null) {\n alreadyImportedModules[id] = true;\n }\n }\n }\n for (var _k = 0; _k < modules.length; _k++) {\n var item = [].concat(modules[_k]);\n if (dedupe && alreadyImportedModules[item[0]]) {\n continue;\n }\n if (typeof layer !== \"undefined\") {\n if (typeof item[5] === \"undefined\") {\n item[5] = layer;\n } else {\n item[1] = \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\").concat(item[1], \"}\");\n item[5] = layer;\n }\n }\n if (media) {\n if (!item[2]) {\n item[2] = media;\n } else {\n item[1] = \"@media \".concat(item[2], \" {\").concat(item[1], \"}\");\n item[2] = media;\n }\n }\n if (supports) {\n if (!item[4]) {\n item[4] = \"\".concat(supports);\n } else {\n item[1] = \"@supports (\".concat(item[4], \") {\").concat(item[1], \"}\");\n item[4] = supports;\n }\n }\n list.push(item);\n }\n };\n return list;\n};","\"use strict\";\n\nmodule.exports = function (item) {\n var content = item[1];\n var cssMapping = item[3];\n if (!cssMapping) {\n return content;\n }\n if (typeof btoa === \"function\") {\n var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(cssMapping))));\n var data = \"sourceMappingURL=data:application/json;charset=utf-8;base64,\".concat(base64);\n var sourceMapping = \"/*# \".concat(data, \" */\");\n return [content].concat([sourceMapping]).join(\"\\n\");\n }\n return [content].join(\"\\n\");\n};","!function(t,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define(e):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs=e()}(this,(function(){\"use strict\";var t=1e3,e=6e4,n=36e5,r=\"millisecond\",i=\"second\",s=\"minute\",u=\"hour\",a=\"day\",o=\"week\",c=\"month\",f=\"quarter\",h=\"year\",d=\"date\",l=\"Invalid Date\",$=/^(\\d{4})[-/]?(\\d{1,2})?[-/]?(\\d{0,2})[Tt\\s]*(\\d{1,2})?:?(\\d{1,2})?:?(\\d{1,2})?[.:]?(\\d+)?$/,y=/\\[([^\\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,M={name:\"en\",weekdays:\"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday\".split(\"_\"),months:\"January_February_March_April_May_June_July_August_September_October_November_December\".split(\"_\"),ordinal:function(t){var e=[\"th\",\"st\",\"nd\",\"rd\"],n=t%100;return\"[\"+t+(e[(n-20)%10]||e[n]||e[0])+\"]\"}},m=function(t,e,n){var r=String(t);return!r||r.length>=e?t:\"\"+Array(e+1-r.length).join(n)+t},v={s:m,z:function(t){var e=-t.utcOffset(),n=Math.abs(e),r=Math.floor(n/60),i=n%60;return(e<=0?\"+\":\"-\")+m(r,2,\"0\")+\":\"+m(i,2,\"0\")},m:function t(e,n){if(e.date()<n.date())return-t(n,e);var r=12*(n.year()-e.year())+(n.month()-e.month()),i=e.clone().add(r,c),s=n-i<0,u=e.clone().add(r+(s?-1:1),c);return+(-(r+(n-i)/(s?i-u:u-i))||0)},a:function(t){return t<0?Math.ceil(t)||0:Math.floor(t)},p:function(t){return{M:c,y:h,w:o,d:a,D:d,h:u,m:s,s:i,ms:r,Q:f}[t]||String(t||\"\").toLowerCase().replace(/s$/,\"\")},u:function(t){return void 0===t}},g=\"en\",D={};D[g]=M;var p=function(t){return t instanceof b},S=function t(e,n,r){var i;if(!e)return g;if(\"string\"==typeof e){var s=e.toLowerCase();D[s]&&(i=s),n&&(D[s]=n,i=s);var u=e.split(\"-\");if(!i&&u.length>1)return t(u[0])}else{var a=e.name;D[a]=e,i=a}return!r&&i&&(g=i),i||!r&&g},w=function(t,e){if(p(t))return t.clone();var n=\"object\"==typeof e?e:{};return n.date=t,n.args=arguments,new b(n)},O=v;O.l=S,O.i=p,O.w=function(t,e){return w(t,{locale:e.$L,utc:e.$u,x:e.$x,$offset:e.$offset})};var b=function(){function M(t){this.$L=S(t.locale,null,!0),this.parse(t)}var m=M.prototype;return m.parse=function(t){this.$d=function(t){var e=t.date,n=t.utc;if(null===e)return new Date(NaN);if(O.u(e))return new Date;if(e instanceof Date)return new Date(e);if(\"string\"==typeof e&&!/Z$/i.test(e)){var r=e.match($);if(r){var i=r[2]-1||0,s=(r[7]||\"0\").substring(0,3);return n?new Date(Date.UTC(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)):new Date(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)}}return new Date(e)}(t),this.$x=t.x||{},this.init()},m.init=function(){var t=this.$d;this.$y=t.getFullYear(),this.$M=t.getMonth(),this.$D=t.getDate(),this.$W=t.getDay(),this.$H=t.getHours(),this.$m=t.getMinutes(),this.$s=t.getSeconds(),this.$ms=t.getMilliseconds()},m.$utils=function(){return O},m.isValid=function(){return!(this.$d.toString()===l)},m.isSame=function(t,e){var n=w(t);return this.startOf(e)<=n&&n<=this.endOf(e)},m.isAfter=function(t,e){return w(t)<this.startOf(e)},m.isBefore=function(t,e){return this.endOf(e)<w(t)},m.$g=function(t,e,n){return O.u(t)?this[e]:this.set(n,t)},m.unix=function(){return Math.floor(this.valueOf()/1e3)},m.valueOf=function(){return this.$d.getTime()},m.startOf=function(t,e){var n=this,r=!!O.u(e)||e,f=O.p(t),l=function(t,e){var i=O.w(n.$u?Date.UTC(n.$y,e,t):new Date(n.$y,e,t),n);return r?i:i.endOf(a)},$=function(t,e){return O.w(n.toDate()[t].apply(n.toDate(\"s\"),(r?[0,0,0,0]:[23,59,59,999]).slice(e)),n)},y=this.$W,M=this.$M,m=this.$D,v=\"set\"+(this.$u?\"UTC\":\"\");switch(f){case h:return r?l(1,0):l(31,11);case c:return r?l(1,M):l(0,M+1);case o:var g=this.$locale().weekStart||0,D=(y<g?y+7:y)-g;return l(r?m-D:m+(6-D),M);case a:case d:return $(v+\"Hours\",0);case u:return $(v+\"Minutes\",1);case s:return $(v+\"Seconds\",2);case i:return $(v+\"Milliseconds\",3);default:return this.clone()}},m.endOf=function(t){return this.startOf(t,!1)},m.$set=function(t,e){var n,o=O.p(t),f=\"set\"+(this.$u?\"UTC\":\"\"),l=(n={},n[a]=f+\"Date\",n[d]=f+\"Date\",n[c]=f+\"Month\",n[h]=f+\"FullYear\",n[u]=f+\"Hours\",n[s]=f+\"Minutes\",n[i]=f+\"Seconds\",n[r]=f+\"Milliseconds\",n)[o],$=o===a?this.$D+(e-this.$W):e;if(o===c||o===h){var y=this.clone().set(d,1);y.$d[l]($),y.init(),this.$d=y.set(d,Math.min(this.$D,y.daysInMonth())).$d}else l&&this.$d[l]($);return this.init(),this},m.set=function(t,e){return this.clone().$set(t,e)},m.get=function(t){return this[O.p(t)]()},m.add=function(r,f){var d,l=this;r=Number(r);var $=O.p(f),y=function(t){var e=w(l);return O.w(e.date(e.date()+Math.round(t*r)),l)};if($===c)return this.set(c,this.$M+r);if($===h)return this.set(h,this.$y+r);if($===a)return y(1);if($===o)return y(7);var M=(d={},d[s]=e,d[u]=n,d[i]=t,d)[$]||1,m=this.$d.getTime()+r*M;return O.w(m,this)},m.subtract=function(t,e){return this.add(-1*t,e)},m.format=function(t){var e=this,n=this.$locale();if(!this.isValid())return n.invalidDate||l;var r=t||\"YYYY-MM-DDTHH:mm:ssZ\",i=O.z(this),s=this.$H,u=this.$m,a=this.$M,o=n.weekdays,c=n.months,f=n.meridiem,h=function(t,n,i,s){return t&&(t[n]||t(e,r))||i[n].slice(0,s)},d=function(t){return O.s(s%12||12,t,\"0\")},$=f||function(t,e,n){var r=t<12?\"AM\":\"PM\";return n?r.toLowerCase():r};return r.replace(y,(function(t,r){return r||function(t){switch(t){case\"YY\":return String(e.$y).slice(-2);case\"YYYY\":return O.s(e.$y,4,\"0\");case\"M\":return a+1;case\"MM\":return O.s(a+1,2,\"0\");case\"MMM\":return h(n.monthsShort,a,c,3);case\"MMMM\":return h(c,a);case\"D\":return e.$D;case\"DD\":return O.s(e.$D,2,\"0\");case\"d\":return String(e.$W);case\"dd\":return h(n.weekdaysMin,e.$W,o,2);case\"ddd\":return h(n.weekdaysShort,e.$W,o,3);case\"dddd\":return o[e.$W];case\"H\":return String(s);case\"HH\":return O.s(s,2,\"0\");case\"h\":return d(1);case\"hh\":return d(2);case\"a\":return $(s,u,!0);case\"A\":return $(s,u,!1);case\"m\":return String(u);case\"mm\":return O.s(u,2,\"0\");case\"s\":return String(e.$s);case\"ss\":return O.s(e.$s,2,\"0\");case\"SSS\":return O.s(e.$ms,3,\"0\");case\"Z\":return i}return null}(t)||i.replace(\":\",\"\")}))},m.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},m.diff=function(r,d,l){var $,y=this,M=O.p(d),m=w(r),v=(m.utcOffset()-this.utcOffset())*e,g=this-m,D=function(){return O.m(y,m)};switch(M){case h:$=D()/12;break;case c:$=D();break;case f:$=D()/3;break;case o:$=(g-v)/6048e5;break;case a:$=(g-v)/864e5;break;case u:$=g/n;break;case s:$=g/e;break;case i:$=g/t;break;default:$=g}return l?$:O.a($)},m.daysInMonth=function(){return this.endOf(c).$D},m.$locale=function(){return D[this.$L]},m.locale=function(t,e){if(!t)return this.$L;var n=this.clone(),r=S(t,e,!0);return r&&(n.$L=r),n},m.clone=function(){return O.w(this.$d,this)},m.toDate=function(){return new Date(this.valueOf())},m.toJSON=function(){return this.isValid()?this.toISOString():null},m.toISOString=function(){return this.$d.toISOString()},m.toString=function(){return this.$d.toUTCString()},M}(),_=b.prototype;return w.prototype=_,[[\"$ms\",r],[\"$s\",i],[\"$m\",s],[\"$H\",u],[\"$W\",a],[\"$M\",c],[\"$y\",h],[\"$D\",d]].forEach((function(t){_[t[1]]=function(e){return this.$g(e,t[0],t[1])}})),w.extend=function(t,e){return t.$i||(t(e,b,w),t.$i=!0),w},w.locale=S,w.isDayjs=p,w.unix=function(t){return w(1e3*t)},w.en=D[g],w.Ls=D,w.p={},w}));","!function(e,o){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=o(require(\"dayjs\")):\"function\"==typeof define&&define.amd?define([\"dayjs\"],o):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_locale_pt_br=o(e.dayjs)}(this,(function(e){\"use strict\";function o(e){return e&&\"object\"==typeof e&&\"default\"in e?e:{default:e}}var a=o(e),s={name:\"pt-br\",weekdays:\"domingo_segunda-feira_terça-feira_quarta-feira_quinta-feira_sexta-feira_sábado\".split(\"_\"),weekdaysShort:\"dom_seg_ter_qua_qui_sex_sáb\".split(\"_\"),weekdaysMin:\"Do_2ª_3ª_4ª_5ª_6ª_Sá\".split(\"_\"),months:\"janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro\".split(\"_\"),monthsShort:\"jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez\".split(\"_\"),ordinal:function(e){return e+\"º\"},formats:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD/MM/YYYY\",LL:\"D [de] MMMM [de] YYYY\",LLL:\"D [de] MMMM [de] YYYY [às] HH:mm\",LLLL:\"dddd, D [de] MMMM [de] YYYY [às] HH:mm\"},relativeTime:{future:\"em %s\",past:\"há %s\",s:\"poucos segundos\",m:\"um minuto\",mm:\"%d minutos\",h:\"uma hora\",hh:\"%d horas\",d:\"um dia\",dd:\"%d dias\",M:\"um mês\",MM:\"%d meses\",y:\"um ano\",yy:\"%d anos\"}};return a.default.locale(s,null,!0),s}));","!function(e,o){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=o():\"function\"==typeof define&&define.amd?define(o):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_isToday=o()}(this,(function(){\"use strict\";return function(e,o,t){o.prototype.isToday=function(){var e=\"YYYY-MM-DD\",o=t();return this.format(e)===o.format(e)}}}));","!function(t,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define(e):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs_plugin_timezone=e()}(this,(function(){\"use strict\";var t={year:0,month:1,day:2,hour:3,minute:4,second:5},e={};return function(n,i,o){var r,a=function(t,n,i){void 0===i&&(i={});var o=new Date(t),r=function(t,n){void 0===n&&(n={});var i=n.timeZoneName||\"short\",o=t+\"|\"+i,r=e[o];return r||(r=new Intl.DateTimeFormat(\"en-US\",{hour12:!1,timeZone:t,year:\"numeric\",month:\"2-digit\",day:\"2-digit\",hour:\"2-digit\",minute:\"2-digit\",second:\"2-digit\",timeZoneName:i}),e[o]=r),r}(n,i);return r.formatToParts(o)},u=function(e,n){for(var i=a(e,n),r=[],u=0;u<i.length;u+=1){var f=i[u],s=f.type,m=f.value,c=t[s];c>=0&&(r[c]=parseInt(m,10))}var d=r[3],l=24===d?0:d,v=r[0]+\"-\"+r[1]+\"-\"+r[2]+\" \"+l+\":\"+r[4]+\":\"+r[5]+\":000\",h=+e;return(o.utc(v).valueOf()-(h-=h%1e3))/6e4},f=i.prototype;f.tz=function(t,e){void 0===t&&(t=r);var n=this.utcOffset(),i=this.toDate(),a=i.toLocaleString(\"en-US\",{timeZone:t}),u=Math.round((i-new Date(a))/1e3/60),f=o(a).$set(\"millisecond\",this.$ms).utcOffset(15*-Math.round(i.getTimezoneOffset()/15)-u,!0);if(e){var s=f.utcOffset();f=f.add(n-s,\"minute\")}return f.$x.$timezone=t,f},f.offsetName=function(t){var e=this.$x.$timezone||o.tz.guess(),n=a(this.valueOf(),e,{timeZoneName:t}).find((function(t){return\"timezonename\"===t.type.toLowerCase()}));return n&&n.value};var s=f.startOf;f.startOf=function(t,e){if(!this.$x||!this.$x.$timezone)return s.call(this,t,e);var n=o(this.format(\"YYYY-MM-DD HH:mm:ss:SSS\"));return s.call(n,t,e).tz(this.$x.$timezone,!0)},o.tz=function(t,e,n){var i=n&&e,a=n||e||r,f=u(+o(),a);if(\"string\"!=typeof t)return o(t).tz(a);var s=function(t,e,n){var i=t-60*e*1e3,o=u(i,n);if(e===o)return[i,e];var r=u(i-=60*(o-e)*1e3,n);return o===r?[i,o]:[t-60*Math.min(o,r)*1e3,Math.max(o,r)]}(o.utc(t,i).valueOf(),f,a),m=s[0],c=s[1],d=o(m).utcOffset(c);return d.$x.$timezone=a,d},o.tz.guess=function(){return Intl.DateTimeFormat().resolvedOptions().timeZone},o.tz.setDefault=function(t){r=t}}}));","!function(t,i){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=i():\"function\"==typeof define&&define.amd?define(i):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs_plugin_utc=i()}(this,(function(){\"use strict\";var t=\"minute\",i=/[+-]\\d\\d(?::?\\d\\d)?/g,e=/([+-]|\\d\\d)/g;return function(s,f,n){var u=f.prototype;n.utc=function(t){var i={date:t,utc:!0,args:arguments};return new f(i)},u.utc=function(i){var e=n(this.toDate(),{locale:this.$L,utc:!0});return i?e.add(this.utcOffset(),t):e},u.local=function(){return n(this.toDate(),{locale:this.$L,utc:!1})};var o=u.parse;u.parse=function(t){t.utc&&(this.$u=!0),this.$utils().u(t.$offset)||(this.$offset=t.$offset),o.call(this,t)};var r=u.init;u.init=function(){if(this.$u){var t=this.$d;this.$y=t.getUTCFullYear(),this.$M=t.getUTCMonth(),this.$D=t.getUTCDate(),this.$W=t.getUTCDay(),this.$H=t.getUTCHours(),this.$m=t.getUTCMinutes(),this.$s=t.getUTCSeconds(),this.$ms=t.getUTCMilliseconds()}else r.call(this)};var a=u.utcOffset;u.utcOffset=function(s,f){var n=this.$utils().u;if(n(s))return this.$u?0:n(this.$offset)?a.call(this):this.$offset;if(\"string\"==typeof s&&(s=function(t){void 0===t&&(t=\"\");var s=t.match(i);if(!s)return null;var f=(\"\"+s[0]).match(e)||[\"-\",0,0],n=f[0],u=60*+f[1]+ +f[2];return 0===u?0:\"+\"===n?u:-u}(s),null===s))return this;var u=Math.abs(s)<=16?60*s:s,o=this;if(f)return o.$offset=u,o.$u=0===s,o;if(0!==s){var r=this.$u?this.toDate().getTimezoneOffset():-1*this.utcOffset();(o=this.local().add(u+r,t)).$offset=u,o.$x.$localOffset=r}else o=this.utc();return o};var h=u.format;u.format=function(t){var i=t||(this.$u?\"YYYY-MM-DDTHH:mm:ss[Z]\":\"\");return h.call(this,i)},u.valueOf=function(){var t=this.$utils().u(this.$offset)?0:this.$offset+(this.$x.$localOffset||this.$d.getTimezoneOffset());return this.$d.valueOf()-6e4*t},u.isUTC=function(){return!!this.$u},u.toISOString=function(){return this.toDate().toISOString()},u.toString=function(){return this.toDate().toUTCString()};var l=u.toDate;u.toDate=function(t){return\"s\"===t&&this.$offset?n(this.format(\"YYYY-MM-DD HH:mm:ss:SSS\")).toDate():l.call(this)};var c=u.diff;u.diff=function(t,i,e){if(t&&this.$u===t.$u)return c.call(this,t,i,e);var s=this.local(),f=n(t).local();return c.call(s,f,i,e)}}}));","\"use strict\";\n\nvar stylesInDOM = [];\n\nfunction getIndexByIdentifier(identifier) {\n var result = -1;\n\n for (var i = 0; i < stylesInDOM.length; i++) {\n if (stylesInDOM[i].identifier === identifier) {\n result = i;\n break;\n }\n }\n\n return result;\n}\n\nfunction modulesToDom(list, options) {\n var idCountMap = {};\n var identifiers = [];\n\n for (var i = 0; i < list.length; i++) {\n var item = list[i];\n var id = options.base ? item[0] + options.base : item[0];\n var count = idCountMap[id] || 0;\n var identifier = \"\".concat(id, \" \").concat(count);\n idCountMap[id] = count + 1;\n var indexByIdentifier = getIndexByIdentifier(identifier);\n var obj = {\n css: item[1],\n media: item[2],\n sourceMap: item[3],\n supports: item[4],\n layer: item[5]\n };\n\n if (indexByIdentifier !== -1) {\n stylesInDOM[indexByIdentifier].references++;\n stylesInDOM[indexByIdentifier].updater(obj);\n } else {\n var updater = addElementStyle(obj, options);\n options.byIndex = i;\n stylesInDOM.splice(i, 0, {\n identifier: identifier,\n updater: updater,\n references: 1\n });\n }\n\n identifiers.push(identifier);\n }\n\n return identifiers;\n}\n\nfunction addElementStyle(obj, options) {\n var api = options.domAPI(options);\n api.update(obj);\n\n var updater = function updater(newObj) {\n if (newObj) {\n if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap && newObj.supports === obj.supports && newObj.layer === obj.layer) {\n return;\n }\n\n api.update(obj = newObj);\n } else {\n api.remove();\n }\n };\n\n return updater;\n}\n\nmodule.exports = function (list, options) {\n options = options || {};\n list = list || [];\n var lastIdentifiers = modulesToDom(list, options);\n return function update(newList) {\n newList = newList || [];\n\n for (var i = 0; i < lastIdentifiers.length; i++) {\n var identifier = lastIdentifiers[i];\n var index = getIndexByIdentifier(identifier);\n stylesInDOM[index].references--;\n }\n\n var newLastIdentifiers = modulesToDom(newList, options);\n\n for (var _i = 0; _i < lastIdentifiers.length; _i++) {\n var _identifier = lastIdentifiers[_i];\n\n var _index = getIndexByIdentifier(_identifier);\n\n if (stylesInDOM[_index].references === 0) {\n stylesInDOM[_index].updater();\n\n stylesInDOM.splice(_index, 1);\n }\n }\n\n lastIdentifiers = newLastIdentifiers;\n };\n};","\"use strict\";\n\nvar memo = {};\n/* istanbul ignore next */\n\nfunction getTarget(target) {\n if (typeof memo[target] === \"undefined\") {\n var styleTarget = document.querySelector(target); // Special case to return head of iframe instead of iframe itself\n\n if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {\n try {\n // This will throw an exception if access to iframe is blocked\n // due to cross-origin restrictions\n styleTarget = styleTarget.contentDocument.head;\n } catch (e) {\n // istanbul ignore next\n styleTarget = null;\n }\n }\n\n memo[target] = styleTarget;\n }\n\n return memo[target];\n}\n/* istanbul ignore next */\n\n\nfunction insertBySelector(insert, style) {\n var target = getTarget(insert);\n\n if (!target) {\n throw new Error(\"Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.\");\n }\n\n target.appendChild(style);\n}\n\nmodule.exports = insertBySelector;","\"use strict\";\n\n/* istanbul ignore next */\nfunction insertStyleElement(options) {\n var element = document.createElement(\"style\");\n options.setAttributes(element, options.attributes);\n options.insert(element, options.options);\n return element;\n}\n\nmodule.exports = insertStyleElement;","\"use strict\";\n\n/* istanbul ignore next */\nfunction setAttributesWithoutAttributes(styleElement) {\n var nonce = typeof __webpack_nonce__ !== \"undefined\" ? __webpack_nonce__ : null;\n\n if (nonce) {\n styleElement.setAttribute(\"nonce\", nonce);\n }\n}\n\nmodule.exports = setAttributesWithoutAttributes;","\"use strict\";\n\n/* istanbul ignore next */\nfunction apply(styleElement, options, obj) {\n var css = \"\";\n\n if (obj.supports) {\n css += \"@supports (\".concat(obj.supports, \") {\");\n }\n\n if (obj.media) {\n css += \"@media \".concat(obj.media, \" {\");\n }\n\n var needLayer = typeof obj.layer !== \"undefined\";\n\n if (needLayer) {\n css += \"@layer\".concat(obj.layer.length > 0 ? \" \".concat(obj.layer) : \"\", \" {\");\n }\n\n css += obj.css;\n\n if (needLayer) {\n css += \"}\";\n }\n\n if (obj.media) {\n css += \"}\";\n }\n\n if (obj.supports) {\n css += \"}\";\n }\n\n var sourceMap = obj.sourceMap;\n\n if (sourceMap && typeof btoa !== \"undefined\") {\n css += \"\\n/*# sourceMappingURL=data:application/json;base64,\".concat(btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))), \" */\");\n } // For old IE\n\n /* istanbul ignore if */\n\n\n options.styleTagTransform(css, styleElement, options.options);\n}\n\nfunction removeStyleElement(styleElement) {\n // istanbul ignore if\n if (styleElement.parentNode === null) {\n return false;\n }\n\n styleElement.parentNode.removeChild(styleElement);\n}\n/* istanbul ignore next */\n\n\nfunction domAPI(options) {\n var styleElement = options.insertStyleElement(options);\n return {\n update: function update(obj) {\n apply(styleElement, options, obj);\n },\n remove: function remove() {\n removeStyleElement(styleElement);\n }\n };\n}\n\nmodule.exports = domAPI;","\"use strict\";\n\n/* istanbul ignore next */\nfunction styleTagTransform(css, styleElement) {\n if (styleElement.styleSheet) {\n styleElement.styleSheet.cssText = css;\n } else {\n while (styleElement.firstChild) {\n styleElement.removeChild(styleElement.firstChild);\n }\n\n styleElement.appendChild(document.createTextNode(css));\n }\n}\n\nmodule.exports = styleTagTransform;","module.exports = \"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' version='1.1' width='256' height='256' viewBox='0 0 256 256' xml:space='preserve'%3e %3cdesc%3eCreated with Fabric.js 1.7.22%3c/desc%3e %3cdefs%3e %3c/defs%3e %3cg transform='translate(128 128) scale(0.72 0.72)' style=''%3e %3cg style='stroke: none; stroke-width: 0; stroke-dasharray: none; stroke-linecap: butt; stroke-linejoin: miter; stroke-miterlimit: 10; fill: none; fill-rule: nonzero; opacity: 1;' transform='translate(-175.05 -175.05000000000004) scale(3.89 3.89)' %3e %3cpath d='M 87.85 41.551 L 5.545 1.167 C 2.414 -0.369 -0.979 2.725 0.263 5.984 l 14.342 37.648 c 0.336 0.881 0.336 1.854 0 2.735 L 0.263 84.016 c -1.241 3.259 2.152 6.353 5.282 4.817 L 87.85 48.449 C 90.717 47.043 90.717 42.957 87.85 41.551 z' style='stroke: none; stroke-width: 1; stroke-dasharray: none; stroke-linecap: butt; stroke-linejoin: miter; stroke-miterlimit: 10; fill: rgb(255,255,255); fill-rule: nonzero; opacity: 1;' transform=' matrix(1 0 0 1 0 0) ' stroke-linecap='round' /%3e %3c/g%3e %3c/g%3e %3c/svg%3e\"","/**\n * This file automatically generated from `pre-publish.js`.\n * Do not manually edit.\n */\n\nmodule.exports = {\n \"area\": true,\n \"base\": true,\n \"br\": true,\n \"col\": true,\n \"embed\": true,\n \"hr\": true,\n \"img\": true,\n \"input\": true,\n \"link\": true,\n \"meta\": true,\n \"param\": true,\n \"source\": true,\n \"track\": true,\n \"wbr\": true\n};\n","module.exports = __WEBPACK_EXTERNAL_MODULE__156__;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nc = undefined;","\n import API from \"!../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../node_modules/css-loader/dist/cjs.js!../../node_modules/less-loader/dist/cjs.js!./index.less\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../node_modules/css-loader/dist/cjs.js!../../node_modules/less-loader/dist/cjs.js!./index.less\";\n export default content && content.locals ? content.locals : undefined;\n","import React, { createContext, ReactNode } from 'react'\r\n\r\nconst defaultThemeVariables = {\r\n asideBg: '#eee',\r\n asideFontColor: 'var(--secondary-color)',\r\n messengerMessagesBg: '#eeeeee',\r\n headerAndSenderBg: '#232831',\r\n buttonPrimary: '#25D366',\r\n buttonPrimaryText: '#707070',\r\n buttonsDisabled: '#94989D',\r\n uploadFileIconColor: '#8696a0',\r\n messengerNotSelectedBg: '#DDDDDD',\r\n newChatFormBg: '',\r\n newChatFormRadius: '0 20px 20px 0',\r\n newChatFormTexts: '#000',\r\n newChatFormDeleteFileButton: '#DD4E4E',\r\n disclaimerPrimaryColor: '#4791FF',\r\n disclaimerSecondaryColor: '#4791FF',\r\n disclaimerTextColor: '#000',\r\n messengerSenderColor: '#00A73E',\r\n messengerIncomerColor: '#707070',\r\n messengerSystemColor: '#2A313A',\r\n borderColor: '#AAAAAA',\r\n inputBg: 'var(--secondary-color)',\r\n chatInputBorder: '',\r\n listItemHover: '',\r\n active: '',\r\n activeTabBorter: '#25D366',\r\n emptyMessagesFontColor: '#000',\r\n documentMessagesTextColor: '#fff',\r\n}\r\n\r\ntype ThemeVariables = typeof defaultThemeVariables\r\n\r\ntype ThemeContextContent = {\r\n theme: Partial<ThemeVariables>\r\n}\r\n\r\nexport const MessageThemeContext = createContext<ThemeContextContent>(\r\n {} as unknown as ThemeContextContent\r\n)\r\n\r\ntype Props = {\r\n children: ReactNode\r\n theme?: Partial<ThemeVariables>\r\n}\r\nconst MessageThemeWrapper = ({\r\n children,\r\n theme = defaultThemeVariables,\r\n}: Props) => {\r\n const config = {\r\n theme,\r\n }\r\n\r\n return (\r\n <MessageThemeContext.Provider value={config}>\r\n {children}\r\n </MessageThemeContext.Provider>\r\n )\r\n}\r\n\r\nexport default MessageThemeWrapper\r\n","import { useContext } from 'react'\r\nimport { MessageThemeContext } from '../components/MessengerThemeWrapper/MessengerThemeWrapper'\r\n\r\nconst useTheme = () => {\r\n const context = useContext(MessageThemeContext)\r\n\r\n if (context === undefined) {\r\n throw new Error('useTheme must be used within a ThemeProvider')\r\n }\r\n\r\n return context\r\n}\r\n\r\nexport default useTheme\r\n","import dayjs, { ConfigType, Dayjs } from 'dayjs'\r\nimport dayjsBR from 'dayjs/locale/pt-br'\r\nimport utc from 'dayjs/plugin/utc'\r\nimport timezone from 'dayjs/plugin/timezone'\r\nimport isToday from 'dayjs/plugin/isToday'\r\nconst serverTz = 'America/Sao_Paulo'\r\n\r\ndayjs.extend(utc)\r\ndayjs.extend(timezone)\r\ndayjs.extend(isToday)\r\ndayjs.locale(dayjsBR)\r\n\r\nexport const timeAsDayjs = (\r\n value: ConfigType = new Date(),\r\n options?: { server?: boolean; applyTimezone?: boolean }\r\n): Dayjs => {\r\n const server = options?.server\r\n const applyTimezone = options?.applyTimezone\r\n\r\n let timezone = dayjs.tz.guess()\r\n if (!(applyTimezone ?? true)) timezone = 'GMT'\r\n else if (server ?? false) timezone = serverTz\r\n\r\n return dayjs.tz(value, timezone)\r\n}\r\n\r\nexport const time = (\r\n value: ConfigType = new Date(),\r\n options?: { server?: boolean; applyTimezone?: boolean }\r\n): Date => {\r\n const server = options?.server\r\n const applyTimezone = options?.applyTimezone\r\n let aux: Dayjs\r\n\r\n if (!(applyTimezone ?? true))\r\n aux = dayjs.tz(value, 'GMT') // Set applyTimezone to false when timezone is applied incorrectly (usually when working with JSDate and timestamps)\r\n else if (server ?? false) aux = dayjs.tz(value, serverTz)\r\n else aux = dayjs.tz(value, dayjs.tz.guess())\r\n\r\n return new Date(\r\n Date.UTC(\r\n aux.year(),\r\n aux.month(),\r\n aux.date(),\r\n aux.hour(),\r\n aux.minute(),\r\n aux.second(),\r\n aux.millisecond()\r\n )\r\n )\r\n}\r\n\r\nexport class SlaDates {\r\n public seconds: number | null\r\n\r\n constructor (seconds: number) {\r\n this.seconds = seconds\r\n }\r\n\r\n private holidays = {\r\n 2023: ['09-07', '10-12', '10-17', '11-02', '11-15', '11-20', '12-25'],\r\n }\r\n\r\n private isWorkingDay (date: Dayjs) {\r\n const dayOfWeek = date.day()\r\n return dayOfWeek >= 1 && dayOfWeek <= 5 // Monday to Friday (1 to 5)\r\n }\r\n\r\n private isWorkingHour (date: Dayjs) {\r\n const hour = date.hour()\r\n return hour >= 9 && hour <= 18 // Between 9 AM and 5 PM (inclusive)\r\n }\r\n\r\n public isWeekendOrHoliday (date: Dayjs | Date | string): boolean {\r\n const weekDay = timeAsDayjs(date, { applyTimezone: false }).day()\r\n if ([6, 0].includes(weekDay)) return true\r\n\r\n const formatedDate = timeAsDayjs(date).format('MM-DD')\r\n const isHollyday = this.holidays[2023].includes(formatedDate)\r\n return isHollyday\r\n }\r\n\r\n private isHoliday (date: Dayjs) {\r\n const formatedDate = timeAsDayjs(date, { applyTimezone: false }).format(\r\n 'MM-DD'\r\n )\r\n const isHollyday = this.holidays[2023].includes(formatedDate)\r\n return isHollyday\r\n }\r\n\r\n public canUpdateClock (date: Dayjs) {\r\n const isWorking = this.isWorkingDay(date) && this.isWorkingHour(date)\r\n return !this.isWeekendOrHoliday(date) && isWorking\r\n }\r\n\r\n public getDiffInSeconds (\r\n startDate: dayjs.Dayjs,\r\n endDate: dayjs.Dayjs\r\n ): number {\r\n const diffInSeconds = endDate.diff(startDate, 'second')\r\n return diffInSeconds\r\n }\r\n\r\n calculateWorkingTime (\r\n startDate: Dayjs,\r\n endDate: Dayjs,\r\n workingHours: { start: number; end: number }\r\n ) {\r\n let current = startDate.clone()\r\n let workingTime = 0\r\n\r\n while (current.isBefore(endDate)) {\r\n // Skip weekends (Saturday and Sunday) and Holydays\r\n\r\n if (this.isWorkingDay(current) && !this.isHoliday(current)) {\r\n const startOfDay = current\r\n .clone()\r\n .startOf('day')\r\n .add(workingHours.start, 'hour')\r\n const endOfDay = current\r\n .clone()\r\n .startOf('day')\r\n .add(workingHours.end, 'hour')\r\n\r\n if (current.isBefore(startOfDay)) {\r\n // If current time is before the start of working hours, move to the start of working hours\r\n current = startOfDay.clone()\r\n }\r\n\r\n if (current.isAfter(endOfDay)) {\r\n current = current.clone().add(1, 'day').startOf('day')\r\n } else if (endDate.isAfter(endOfDay)) {\r\n // If end date is after the end of working hours, add a full working day\r\n\r\n workingTime += Math.abs(endOfDay.clone().diff(current, 'second'))\r\n current = current\r\n .clone()\r\n .add(1, 'day')\r\n .startOf('day')\r\n .add(workingHours.start, 'hour')\r\n } else {\r\n // Calculate working time for the last day (end date)\r\n workingTime += Math.abs(endDate.clone().diff(current, 'second'))\r\n\r\n break\r\n }\r\n } else {\r\n // Move to the next day\r\n current = current.clone().add(1, 'day').startOf('day')\r\n }\r\n }\r\n\r\n return workingTime\r\n }\r\n\r\n // Function to calculate the difference in seconds between two dates considering working hours\r\n getDifferenceInSeconds (\r\n startDate: Dayjs,\r\n endDate: Dayjs,\r\n workingHours: { start: number; end: number }\r\n ) {\r\n if (endDate.isBefore(startDate)) {\r\n throw new Error('End date should be after the start date.')\r\n }\r\n\r\n const workingTimeInSeconds = this.calculateWorkingTime(\r\n startDate,\r\n endDate,\r\n workingHours\r\n )\r\n return workingTimeInSeconds\r\n }\r\n\r\n static secondsInHours (currentSeconds: number) {\r\n const hours = Math.floor(currentSeconds / 3600)\r\n const minutes = Math.floor((currentSeconds % 3600) / 60)\r\n const seconds = currentSeconds % 60\r\n return `${hours.toString().padStart(2, '0')}:${minutes.toString().padStart(2, '0')}:${seconds.toString().padStart(2, '0')}`\r\n }\r\n\r\n static getColorsByTime (seconds: number) {\r\n const hours = seconds / 3600\r\n if (hours <= 2) {\r\n return '#00CF7B'\r\n }\r\n\r\n if (hours >= 2 && hours < 3) {\r\n return '#FF9838'\r\n }\r\n\r\n if (hours >= 3 && hours < 4) {\r\n return '#DD4E4E'\r\n }\r\n\r\n return '#151919'\r\n }\r\n}\r\n","import e from\"void-elements\";var t=/\\s([^'\"/\\s><]+?)[\\s/>]|([^\\s=]+)=\\s?(\".*?\"|'.*?')/g;function n(n){var r={type:\"tag\",name:\"\",voidElement:!1,attrs:{},children:[]},i=n.match(/<\\/?([^\\s]+?)[/\\s>]/);if(i&&(r.name=i[1],(e[i[1]]||\"/\"===n.charAt(n.length-2))&&(r.voidElement=!0),r.name.startsWith(\"!--\"))){var s=n.indexOf(\"--\\x3e\");return{type:\"comment\",comment:-1!==s?n.slice(4,s):\"\"}}for(var a=new RegExp(t),c=null;null!==(c=a.exec(n));)if(c[0].trim())if(c[1]){var o=c[1].trim(),l=[o,\"\"];o.indexOf(\"=\")>-1&&(l=o.split(\"=\")),r.attrs[l[0]]=l[1],a.lastIndex--}else c[2]&&(r.attrs[c[2]]=c[3].trim().substring(1,c[3].length-1));return r}var r=/<[a-zA-Z0-9\\-\\!\\/](?:\"[^\"]*\"|'[^']*'|[^'\">])*>/g,i=/^\\s*$/,s=Object.create(null);function a(e,t){switch(t.type){case\"text\":return e+t.content;case\"tag\":return e+=\"<\"+t.name+(t.attrs?function(e){var t=[];for(var n in e)t.push(n+'=\"'+e[n]+'\"');return t.length?\" \"+t.join(\" \"):\"\"}(t.attrs):\"\")+(t.voidElement?\"/>\":\">\"),t.voidElement?e:e+t.children.reduce(a,\"\")+\"</\"+t.name+\">\";case\"comment\":return e+\"\\x3c!--\"+t.comment+\"--\\x3e\"}}var c={parse:function(e,t){t||(t={}),t.components||(t.components=s);var a,c=[],o=[],l=-1,m=!1;if(0!==e.indexOf(\"<\")){var u=e.indexOf(\"<\");c.push({type:\"text\",content:-1===u?e:e.substring(0,u)})}return e.replace(r,function(r,s){if(m){if(r!==\"</\"+a.name+\">\")return;m=!1}var u,f=\"/\"!==r.charAt(1),h=r.startsWith(\"\\x3c!--\"),p=s+r.length,d=e.charAt(p);if(h){var v=n(r);return l<0?(c.push(v),c):((u=o[l]).children.push(v),c)}if(f&&(l++,\"tag\"===(a=n(r)).type&&t.components[a.name]&&(a.type=\"component\",m=!0),a.voidElement||m||!d||\"<\"===d||a.children.push({type:\"text\",content:e.slice(p,e.indexOf(\"<\",p))}),0===l&&c.push(a),(u=o[l-1])&&u.children.push(a),o[l]=a),(!f||a.voidElement)&&(l>-1&&(a.voidElement||a.name===r.slice(2,-1))&&(l--,a=-1===l?c:o[l]),!m&&\"<\"!==d&&d)){u=-1===l?c:o[l].children;var x=e.indexOf(\"<\",p),g=e.slice(p,-1===x?void 0:x);i.test(g)&&(g=\" \"),(x>-1&&l+u.length>=0||\" \"!==g)&&u.push({type:\"text\",content:g})}}),c},stringify:function(e){return e.reduce(function(e,t){return e+a(\"\",t)},\"\")}};export default c;\n//# sourceMappingURL=html-parse-stringify.module.js.map\n","export const warn = (i18n, code, msg, rest) => {\n const args = [msg, {\n code,\n ...(rest || {})\n }];\n if (i18n?.services?.logger?.forward) {\n return i18n.services.logger.forward(args, 'warn', 'react-i18next::', true);\n }\n if (isString(args[0])) args[0] = `react-i18next:: ${args[0]}`;\n if (i18n?.services?.logger?.warn) {\n i18n.services.logger.warn(...args);\n } else if (console?.warn) {\n console.warn(...args);\n }\n};\nconst alreadyWarned = {};\nexport const warnOnce = (i18n, code, msg, rest) => {\n if (isString(msg) && alreadyWarned[msg]) return;\n if (isString(msg)) alreadyWarned[msg] = new Date();\n warn(i18n, code, msg, rest);\n};\nconst loadedClb = (i18n, cb) => () => {\n if (i18n.isInitialized) {\n cb();\n } else {\n const initialized = () => {\n setTimeout(() => {\n i18n.off('initialized', initialized);\n }, 0);\n cb();\n };\n i18n.on('initialized', initialized);\n }\n};\nexport const loadNamespaces = (i18n, ns, cb) => {\n i18n.loadNamespaces(ns, loadedClb(i18n, cb));\n};\nexport const loadLanguages = (i18n, lng, ns, cb) => {\n if (isString(ns)) ns = [ns];\n if (i18n.options.preload && i18n.options.preload.indexOf(lng) > -1) return loadNamespaces(i18n, ns, cb);\n ns.forEach(n => {\n if (i18n.options.ns.indexOf(n) < 0) i18n.options.ns.push(n);\n });\n i18n.loadLanguages(lng, loadedClb(i18n, cb));\n};\nexport const hasLoadedNamespace = (ns, i18n, options = {}) => {\n if (!i18n.languages || !i18n.languages.length) {\n warnOnce(i18n, 'NO_LANGUAGES', 'i18n.languages were undefined or empty', {\n languages: i18n.languages\n });\n return true;\n }\n return i18n.hasLoadedNamespace(ns, {\n lng: options.lng,\n precheck: (i18nInstance, loadNotPending) => {\n if (options.bindI18n && options.bindI18n.indexOf('languageChanging') > -1 && i18nInstance.services.backendConnector.backend && i18nInstance.isLanguageChangingTo && !loadNotPending(i18nInstance.isLanguageChangingTo, ns)) return false;\n }\n });\n};\nexport const getDisplayName = Component => Component.displayName || Component.name || (isString(Component) && Component.length > 0 ? Component : 'Unknown');\nexport const isString = obj => typeof obj === 'string';\nexport const isObject = obj => typeof obj === 'object' && obj !== null;","const matchHtmlEntity = /&(?:amp|#38|lt|#60|gt|#62|apos|#39|quot|#34|nbsp|#160|copy|#169|reg|#174|hellip|#8230|#x2F|#47);/g;\nconst htmlEntities = {\n '&': '&',\n '&': '&',\n '<': '<',\n '<': '<',\n '>': '>',\n '>': '>',\n ''': \"'\",\n ''': \"'\",\n '"': '\"',\n '"': '\"',\n ' ': ' ',\n ' ': ' ',\n '©': '©',\n '©': '©',\n '®': '®',\n '®': '®',\n '…': '…',\n '…': '…',\n '/': '/',\n '/': '/'\n};\nconst unescapeHtmlEntity = m => htmlEntities[m];\nexport const unescape = text => text.replace(matchHtmlEntity, unescapeHtmlEntity);","import { unescape } from './unescape.js';\nlet defaultOptions = {\n bindI18n: 'languageChanged',\n bindI18nStore: '',\n transEmptyNodeValue: '',\n transSupportBasicHtmlNodes: true,\n transWrapTextNodes: '',\n transKeepBasicHtmlNodesFor: ['br', 'strong', 'i', 'p'],\n useSuspense: true,\n unescape\n};\nexport const setDefaults = (options = {}) => {\n defaultOptions = {\n ...defaultOptions,\n ...options\n };\n};\nexport const getDefaults = () => defaultOptions;","let i18nInstance;\nexport const setI18n = instance => {\n i18nInstance = instance;\n};\nexport const getI18n = () => i18nInstance;","import { setDefaults } from './defaults.js';\nimport { setI18n } from './i18nInstance.js';\nexport const initReactI18next = {\n type: '3rdParty',\n init(instance) {\n setDefaults(instance.options.react);\n setI18n(instance);\n }\n};","import { createContext } from 'react';\nimport { getDefaults, setDefaults } from './defaults.js';\nimport { getI18n, setI18n } from './i18nInstance.js';\nimport { initReactI18next } from './initReactI18next.js';\nexport { getDefaults, setDefaults, getI18n, setI18n, initReactI18next };\nexport const I18nContext = createContext();\nexport class ReportNamespaces {\n constructor() {\n this.usedNamespaces = {};\n }\n addUsedNamespaces(namespaces) {\n namespaces.forEach(ns => {\n if (!this.usedNamespaces[ns]) this.usedNamespaces[ns] = true;\n });\n }\n getUsedNamespaces() {\n return Object.keys(this.usedNamespaces);\n }\n}\nexport const composeInitialProps = ForComponent => async ctx => {\n const componentsInitialProps = (await ForComponent.getInitialProps?.(ctx)) ?? {};\n const i18nInitialProps = getInitialProps();\n return {\n ...componentsInitialProps,\n ...i18nInitialProps\n };\n};\nexport const getInitialProps = () => {\n const i18n = getI18n();\n const namespaces = i18n.reportNamespaces?.getUsedNamespaces() ?? [];\n const ret = {};\n const initialI18nStore = {};\n i18n.languages.forEach(l => {\n initialI18nStore[l] = {};\n namespaces.forEach(ns => {\n initialI18nStore[l][ns] = i18n.getResourceBundle(l, ns) || {};\n });\n });\n ret.initialI18nStore = initialI18nStore;\n ret.initialLanguage = i18n.language;\n return ret;\n};","import { useState, useEffect, useContext, useRef, useCallback } from 'react';\nimport { getI18n, getDefaults, ReportNamespaces, I18nContext } from './context.js';\nimport { warnOnce, loadNamespaces, loadLanguages, hasLoadedNamespace, isString, isObject } from './utils.js';\nconst usePrevious = (value, ignore) => {\n const ref = useRef();\n useEffect(() => {\n ref.current = ignore ? ref.current : value;\n }, [value, ignore]);\n return ref.current;\n};\nconst alwaysNewT = (i18n, language, namespace, keyPrefix) => i18n.getFixedT(language, namespace, keyPrefix);\nconst useMemoizedT = (i18n, language, namespace, keyPrefix) => useCallback(alwaysNewT(i18n, language, namespace, keyPrefix), [i18n, language, namespace, keyPrefix]);\nexport const useTranslation = (ns, props = {}) => {\n const {\n i18n: i18nFromProps\n } = props;\n const {\n i18n: i18nFromContext,\n defaultNS: defaultNSFromContext\n } = useContext(I18nContext) || {};\n const i18n = i18nFromProps || i18nFromContext || getI18n();\n if (i18n && !i18n.reportNamespaces) i18n.reportNamespaces = new ReportNamespaces();\n if (!i18n) {\n warnOnce(i18n, 'NO_I18NEXT_INSTANCE', 'useTranslation: You will need to pass in an i18next instance by using initReactI18next');\n const notReadyT = (k, optsOrDefaultValue) => {\n if (isString(optsOrDefaultValue)) return optsOrDefaultValue;\n if (isObject(optsOrDefaultValue) && isString(optsOrDefaultValue.defaultValue)) return optsOrDefaultValue.defaultValue;\n return Array.isArray(k) ? k[k.length - 1] : k;\n };\n const retNotReady = [notReadyT, {}, false];\n retNotReady.t = notReadyT;\n retNotReady.i18n = {};\n retNotReady.ready = false;\n return retNotReady;\n }\n if (i18n.options.react?.wait) warnOnce(i18n, 'DEPRECATED_OPTION', 'useTranslation: It seems you are still using the old wait option, you may migrate to the new useSuspense behaviour.');\n const i18nOptions = {\n ...getDefaults(),\n ...i18n.options.react,\n ...props\n };\n const {\n useSuspense,\n keyPrefix\n } = i18nOptions;\n let namespaces = ns || defaultNSFromContext || i18n.options?.defaultNS;\n namespaces = isString(namespaces) ? [namespaces] : namespaces || ['translation'];\n i18n.reportNamespaces.addUsedNamespaces?.(namespaces);\n const ready = (i18n.isInitialized || i18n.initializedStoreOnce) && namespaces.every(n => hasLoadedNamespace(n, i18n, i18nOptions));\n const memoGetT = useMemoizedT(i18n, props.lng || null, i18nOptions.nsMode === 'fallback' ? namespaces : namespaces[0], keyPrefix);\n const getT = () => memoGetT;\n const getNewT = () => alwaysNewT(i18n, props.lng || null, i18nOptions.nsMode === 'fallback' ? namespaces : namespaces[0], keyPrefix);\n const [t, setT] = useState(getT);\n let joinedNS = namespaces.join();\n if (props.lng) joinedNS = `${props.lng}${joinedNS}`;\n const previousJoinedNS = usePrevious(joinedNS);\n const isMounted = useRef(true);\n useEffect(() => {\n const {\n bindI18n,\n bindI18nStore\n } = i18nOptions;\n isMounted.current = true;\n if (!ready && !useSuspense) {\n if (props.lng) {\n loadLanguages(i18n, props.lng, namespaces, () => {\n if (isMounted.current) setT(getNewT);\n });\n } else {\n loadNamespaces(i18n, namespaces, () => {\n if (isMounted.current) setT(getNewT);\n });\n }\n }\n if (ready && previousJoinedNS && previousJoinedNS !== joinedNS && isMounted.current) {\n setT(getNewT);\n }\n const boundReset = () => {\n if (isMounted.current) setT(getNewT);\n };\n if (bindI18n) i18n?.on(bindI18n, boundReset);\n if (bindI18nStore) i18n?.store.on(bindI18nStore, boundReset);\n return () => {\n isMounted.current = false;\n if (i18n && bindI18n) bindI18n?.split(' ').forEach(e => i18n.off(e, boundReset));\n if (bindI18nStore && i18n) bindI18nStore.split(' ').forEach(e => i18n.store.off(e, boundReset));\n };\n }, [i18n, joinedNS]);\n useEffect(() => {\n if (isMounted.current && ready) {\n setT(getT);\n }\n }, [i18n, keyPrefix, ready]);\n const ret = [t, i18n, ready];\n ret.t = t;\n ret.i18n = i18n;\n ret.ready = ready;\n if (ready) return ret;\n if (!ready && !useSuspense) return ret;\n throw new Promise(resolve => {\n if (props.lng) {\n loadLanguages(i18n, props.lng, namespaces, () => resolve());\n } else {\n loadNamespaces(i18n, namespaces, () => resolve());\n }\n });\n};","import { createElement, useMemo } from 'react';\nimport { I18nContext } from './context.js';\nexport function I18nextProvider({\n i18n,\n defaultNS,\n children\n}) {\n const value = useMemo(() => ({\n i18n,\n defaultNS\n }), [i18n, defaultNS]);\n return createElement(I18nContext.Provider, {\n value\n }, children);\n}","import useTheme from '../../hooks/useThemes'\r\nimport React from 'react'\r\nimport { useTranslation } from 'react-i18next'\r\nimport { IMesssengerAvatar } from 'types'\r\n\r\nfunction MessengerAvatar ({\r\n image,\r\n children,\r\n className = '',\r\n}: IMesssengerAvatar) {\r\n const { t } = useTranslation('messengerList')\r\n const { theme } = useTheme()\r\n return (\r\n <figure\r\n className={`${className} messenger__aside-list-item--avatar`}\r\n style={{\r\n background: theme.messengerIncomerColor,\r\n }}\r\n >\r\n {image ? (\r\n <img loading='lazy' alt={t('messengerAvatar.alt')} src={image} />\r\n ) : (\r\n children\r\n )}\r\n </figure>\r\n )\r\n}\r\n\r\nexport default MessengerAvatar\r\n","import React from 'react'\r\n\r\nexport default function TimerIcon ({ color }: { color: string }) {\r\n return (\r\n <svg\r\n width='14'\r\n height='14'\r\n viewBox='0 0 18 18'\r\n fill={color}\r\n xmlns='http://www.w3.org/2000/svg'\r\n >\r\n <path\r\n d='M9.42207 4.79883H8.57656C8.49922 4.79883 8.43594 4.86211 8.43594 4.93946V9.77871C8.43594 9.82442 8.45703 9.8666 8.49394 9.89297L11.3996 12.0147C11.4629 12.0604 11.5508 12.048 11.5965 11.9848L12.0992 11.2992C12.1467 11.2342 12.1326 11.1463 12.0693 11.1023L9.56269 9.29004V4.93946C9.56269 4.86211 9.49941 4.79883 9.42207 4.79883ZM13.2857 6.12071L16.042 6.79395C16.1299 6.81504 16.216 6.74824 16.216 6.6586L16.2301 3.81973C16.2301 3.70196 16.0947 3.63516 16.0033 3.70899L13.233 5.87285C13.2121 5.88905 13.1961 5.91083 13.187 5.93568C13.1779 5.96054 13.176 5.98746 13.1815 6.01335C13.187 6.03924 13.1997 6.06305 13.2182 6.08204C13.2366 6.10103 13.26 6.11444 13.2857 6.12071ZM16.2336 11.4135L15.2369 11.0707C15.2022 11.0588 15.1641 11.061 15.131 11.0767C15.0978 11.0925 15.0721 11.1206 15.0594 11.1551C15.026 11.2447 14.9908 11.3326 14.9539 11.4205C14.641 12.1605 14.1928 12.8268 13.6197 13.3981C13.053 13.9665 12.3815 14.4196 11.6422 14.7322C10.8764 15.056 10.0531 15.2222 9.22168 15.2209C8.38145 15.2209 7.56758 15.0574 6.80117 14.7322C6.06191 14.4196 5.39032 13.9665 4.82363 13.3981C4.25234 12.8268 3.8041 12.1605 3.48945 11.4205C3.16745 10.6542 3.00248 9.83117 3.0043 9C3.0043 8.15977 3.16777 7.34414 3.49297 6.57774C3.80586 5.8377 4.2541 5.17149 4.82715 4.6002C5.39383 4.03175 6.06542 3.57866 6.80469 3.26602C7.56758 2.94082 8.3832 2.77735 9.22344 2.77735C10.0637 2.77735 10.8775 2.94082 11.6439 3.26602C12.3832 3.57866 13.0548 4.03175 13.6215 4.6002C13.8008 4.78125 13.9695 4.96934 14.1242 5.16797L15.1754 4.34531C13.792 2.57696 11.6387 1.43965 9.21992 1.44141C5.0082 1.44317 1.62617 4.86387 1.66836 9.07735C1.71055 13.217 5.07676 16.5586 9.22344 16.5586C12.4842 16.5586 15.2615 14.4914 16.3197 11.5963C16.3461 11.5225 16.3074 11.4398 16.2336 11.4135Z'\r\n fill={color}\r\n />\r\n </svg>\r\n )\r\n}\r\n","import React, { useState, useMemo, useEffect } from 'react'\r\nimport { IList } from 'types'\r\nimport { SlaDates, timeAsDayjs } from '../classes/slaCalculations'\r\nimport MessengerAvatar from '../components/MessengerAvatar/MessengerAvatar'\r\nimport useTheme from '../hooks/useThemes'\r\nimport TimerIcon from '../icons/TimerIcon'\r\n\r\ninterface IListItem {\r\n onClick: (item: IList) => void\r\n item: IList\r\n currentId?: string\r\n canSeeDetailsChat: boolean\r\n currentViewerId: string\r\n}\r\n\r\nexport function activeItem (\r\n e: React.MouseEvent<HTMLElement, MouseEvent>,\r\n defaultClass: string,\r\n activeClass: string\r\n) {\r\n const click = document.querySelectorAll(`.${defaultClass}`)\r\n click.forEach((item) => {\r\n item.classList.remove(activeClass)\r\n })\r\n\r\n e.currentTarget.className += ` ${activeClass} `\r\n}\r\n\r\nfunction MessengerListItem ({\r\n item,\r\n onClick,\r\n canSeeDetailsChat,\r\n currentId,\r\n currentViewerId,\r\n}: IListItem) {\r\n const [unreadMessages, setUnreadMessages] = useState<\r\n typeof item.totalUnreadMessages\r\n >(item.totalUnreadMessages)\r\n const closedChat = useMemo(\r\n () =>\r\n item.status.current.state === 'final'\r\n ? 'messenger__aside-list-item--closed'\r\n : '',\r\n [item]\r\n )\r\n const [background, setBackground] = useState<string | undefined>('')\r\n const [counter, setCounter] = useState<number | null>(null)\r\n\r\n const { theme } = useTheme()\r\n const isInprogress = item.status?.current?.systemicValue === 'inprogress'\r\n\r\n const otherChatMember = useMemo(\r\n () =>\r\n item?.users.find((item) => item.uniqueCode !== currentViewerId) ||\r\n item.creator,\r\n [item?.users, currentViewerId]\r\n )\r\n\r\n useEffect(() => {\r\n let interval: NodeJS.Timer\r\n if (isInprogress && canSeeDetailsChat) {\r\n const sla = new SlaDates(\r\n timeAsDayjs(item.currentTime).diff(item.createdAt, 'second')\r\n )\r\n const diference = sla.calculateWorkingTime(\r\n timeAsDayjs(item.createdAt),\r\n timeAsDayjs(),\r\n { start: 9, end: 18 }\r\n )\r\n\r\n setCounter(diference)\r\n if (sla.canUpdateClock(timeAsDayjs())) {\r\n interval = setInterval(() => {\r\n setCounter((prev) => (prev !== null ? prev + 1 : null))\r\n }, 1000)\r\n }\r\n } else {\r\n setCounter(item.SLATimePassed ?? null)\r\n }\r\n\r\n return () => {\r\n clearInterval(interval)\r\n }\r\n }, [])\r\n\r\n useEffect(() => {\r\n setUnreadMessages(item.totalUnreadMessages)\r\n }, [item])\r\n\r\n function handleClick (\r\n e: React.MouseEvent<HTMLElement, MouseEvent>,\r\n item: IList\r\n ) {\r\n activeItem(\r\n e,\r\n 'messenger__aside-list-item',\r\n 'messenger__aside-list-item--active'\r\n )\r\n onClick(item)\r\n }\r\n\r\n function formatUnreadMessages (unread: number) {\r\n if (!unread) return 0\r\n if (unread >= 99) return 99\r\n return unread\r\n }\r\n\r\n const onMouseOver = () => {\r\n setBackground(theme?.listItemHover)\r\n }\r\n\r\n const onMouseLeave = () => {\r\n setBackground('')\r\n }\r\n\r\n const ShowTimer = () => {\r\n if (counter === null) return null\r\n\r\n return (\r\n <span\r\n className='messenger__aside-timer'\r\n style={{\r\n background: SlaDates.getColorsByTime(counter),\r\n color: 'var(--secondary-color)',\r\n width: 'fit-content',\r\n }}\r\n >\r\n <TimerIcon color='var(--secondary-color)' />\r\n \r\n <b>{SlaDates.secondsInHours(counter)}</b>\r\n </span>\r\n )\r\n }\r\n\r\n return (\r\n <div\r\n className={`messenger__aside-list-item ${closedChat}`}\r\n onClick={(e) => handleClick(e, item)}\r\n onMouseOver={onMouseOver}\r\n onMouseLeave={onMouseLeave}\r\n style={{\r\n color: theme?.asideFontColor,\r\n backgroundColor: currentId === item._id ? theme?.active : background,\r\n }}\r\n >\r\n <MessengerAvatar image={otherChatMember?.image}>\r\n {otherChatMember && otherChatMember.username\r\n ? otherChatMember.username.slice(0, 1)\r\n : ''}\r\n </MessengerAvatar>\r\n\r\n <div className='messenger__aside-list-item--info'>\r\n <p className='messenger__aside-list-item--title'>\r\n {otherChatMember?.username}\r\n </p>\r\n {item?.reason && (\r\n <p className='messenger__aside-list-item--description'>\r\n {item.reason}\r\n </p>\r\n )}\r\n {canSeeDetailsChat && <ShowTimer />}\r\n </div>\r\n\r\n {item && (\r\n <div className='messenger__aside-list-item--additional'>\r\n {canSeeDetailsChat && `#${item.protocol}`}\r\n {unreadMessages > 0 && (\r\n <div className='messenger__aside-list-item--unread'>\r\n <span>{formatUnreadMessages(unreadMessages)}</span>\r\n </div>\r\n )}\r\n </div>\r\n )}\r\n </div>\r\n )\r\n}\r\n\r\nexport default MessengerListItem\r\n","import useTheme from '../../hooks/useThemes'\r\nimport { activeItem } from '../../views/MessengerListItem'\r\nimport React from 'react'\r\n\r\ninterface IProps {\r\n handleChangeTickets: (tab: string) => void\r\n chatListTabs: { value: string; label: string }[]\r\n}\r\n\r\nfunction ChatTabs ({ handleChangeTickets, chatListTabs }: IProps) {\r\n const { theme } = useTheme()\r\n return (\r\n <div className='chat-tabs' style={{ color: theme.asideFontColor }}>\r\n {chatListTabs.map((tab, index) => {\r\n return (\r\n <button\r\n key={`chatListTab-${index}`}\r\n className={`chat-tabs__button ${index === 0 && 'chat-tabs__button--active'}`}\r\n onClick={(e) => {\r\n handleChangeTickets(tab.value)\r\n activeItem(e, 'chat-tabs__button', 'chat-tabs__button--active')\r\n }}\r\n >\r\n {tab.label}\r\n </button>\r\n )\r\n })}\r\n </div>\r\n )\r\n}\r\n\r\nexport default ChatTabs\r\n","import React from 'react'\r\nimport useTheme from '../../hooks/useThemes'\r\n\r\ninterface INewChatButton {\r\n removeActiveItem: (e: React.MouseEvent<HTMLElement, MouseEvent>) => void\r\n messegerView: 'empty' | 'messages' | 'newChat'\r\n chatButtons: {\r\n label: string\r\n onClick: () => void\r\n type: string\r\n canSee: boolean\r\n disabled?: boolean\r\n }[]\r\n}\r\n\r\nfunction ChatButtons ({ chatButtons, removeActiveItem }: INewChatButton) {\r\n const { theme } = useTheme()\r\n\r\n const getButtonType = (type: string, disabled?: boolean) => {\r\n if (type === 'primary')\r\n return {\r\n background: disabled ? theme?.buttonsDisabled : theme?.buttonPrimary,\r\n color: theme?.buttonPrimaryText,\r\n }\r\n\r\n if (type === 'outlined')\r\n return {\r\n background: 'transparent',\r\n color: theme?.asideFontColor,\r\n border: `${theme?.asideFontColor} 1px solid`,\r\n }\r\n return\r\n }\r\n\r\n return (\r\n <>\r\n {chatButtons.map((button) => {\r\n return (\r\n button.canSee && (\r\n <>\r\n <button\r\n key={`button-${button.label}`}\r\n className={\r\n button.disabled\r\n ? 'messenger__chat-button messenger__chat-button--disabled'\r\n : 'messenger__chat-button'\r\n }\r\n onClick={(event) => {\r\n button.onClick()\r\n removeActiveItem(event)\r\n }}\r\n style={getButtonType(button.type, button.disabled)}\r\n >\r\n {button.label}\r\n </button>\r\n </>\r\n )\r\n )\r\n })}\r\n </>\r\n )\r\n}\r\n\r\nexport default ChatButtons\r\n","import React from 'react'\r\nimport useTheme from '../hooks/useThemes'\r\n\r\nexport default function SearchIcon () {\r\n const { theme } = useTheme()\r\n return (\r\n <svg\r\n width='18'\r\n height='18'\r\n viewBox='0 0 18 18'\r\n fill='none'\r\n xmlns='http://www.w3.org/2000/svg'\r\n >\r\n <path\r\n d='M15.9 17.3L10.3 11.7C9.8 12.1 9.225 12.4167 8.575 12.65C7.925 12.8833 7.23333 13 6.5 13C4.68333 13 3.146 12.371 1.888 11.113C0.629333 9.85433 0 8.31667 0 6.5C0 4.68333 0.629333 3.14567 1.888 1.887C3.146 0.629 4.68333 0 6.5 0C8.31667 0 9.85433 0.629 11.113 1.887C12.371 3.14567 13 4.68333 13 6.5C13 7.23333 12.8833 7.925 12.65 8.575C12.4167 9.225 12.1 9.8 11.7 10.3L17.325 15.925C17.5083 16.1083 17.6 16.3333 17.6 16.6C17.6 16.8667 17.5 17.1 17.3 17.3C17.1167 17.4833 16.8833 17.575 16.6 17.575C16.3167 17.575 16.0833 17.4833 15.9 17.3ZM6.5 11C7.75 11 8.81267 10.5627 9.688 9.688C10.5627 8.81267 11 7.75 11 6.5C11 5.25 10.5627 4.18733 9.688 3.312C8.81267 2.43733 7.75 2 6.5 2C5.25 2 4.18733 2.43733 3.312 3.312C2.43733 4.18733 2 5.25 2 6.5C2 7.75 2.43733 8.81267 3.312 9.688C4.18733 10.5627 5.25 11 6.5 11Z'\r\n fill={theme.asideFontColor}\r\n />\r\n </svg>\r\n )\r\n}\r\n","import SearchIcon from '../../icons/SearchIcon'\r\nimport React, { useState } from 'react'\r\nimport useTheme from '../../hooks/useThemes'\r\nimport { useTranslation } from 'react-i18next'\r\n\r\ninterface IProps {\r\n searchChat: (value: string, key: string) => void\r\n searchKeys: { label: string; value: string }[]\r\n loadingSearch: boolean\r\n}\r\n\r\nfunction SearchInput ({ searchChat, searchKeys, loadingSearch }: IProps) {\r\n const { t } = useTranslation('messengerList')\r\n const [searchKey, setSearchKey] = useState<string>(searchKeys[0].value)\r\n const [searchValue, setSearchValue] = useState<string>('')\r\n const { theme } = useTheme()\r\n\r\n const onSearch = (event: React.ChangeEvent<HTMLInputElement>) => {\r\n setSearchValue(event.target.value)\r\n }\r\n\r\n const handleKeyPress = (event: React.KeyboardEvent<HTMLInputElement>) => {\r\n if (event.key === 'Enter') {\r\n searchChat(searchValue, searchKey)\r\n }\r\n }\r\n\r\n return (\r\n <div className='input-search'>\r\n <select\r\n className='input-search__select'\r\n onChange={(e) => setSearchKey(e.target.value)}\r\n style={{\r\n color: theme.asideFontColor,\r\n border: `${theme.asideFontColor} 1px solid`,\r\n }}\r\n >\r\n {searchKeys.map((item, index) => (\r\n <option\r\n className='input-search__option'\r\n key={index}\r\n value={item.value}\r\n >\r\n {item.label}\r\n </option>\r\n ))}\r\n </select>\r\n\r\n <input\r\n className='input-search__search'\r\n placeholder={t('searchInput.placeholder')}\r\n onChange={onSearch}\r\n onKeyDown={handleKeyPress}\r\n style={{\r\n color: theme.asideFontColor,\r\n border: `${theme.asideFontColor} 1px solid`,\r\n borderLeft: 0,\r\n }}\r\n />\r\n\r\n <button\r\n className='input-search__icon'\r\n onClick={() => searchChat(searchValue, searchKey)}\r\n >\r\n {loadingSearch ? (\r\n <div className='messenger__messages-loading'>\r\n <div className='messenger__messages-loading--loader' />\r\n </div>\r\n ) : (\r\n <SearchIcon />\r\n )}\r\n </button>\r\n </div>\r\n )\r\n}\r\n\r\nexport default SearchInput\r\n","import React from 'react'\r\nimport useTheme from '../hooks/useThemes'\r\n\r\nexport default function EmptyIcon () {\r\n const { theme } = useTheme()\r\n return (\r\n <svg\r\n width='26'\r\n height='32'\r\n viewBox='0 0 26 32'\r\n fill='none'\r\n xmlns='http://www.w3.org/2000/svg'\r\n >\r\n <path\r\n d='M24.4286 0H1.57143C0.939288 0 0.428574 0.510714 0.428574 1.14286V30.8571C0.428574 31.4893 0.939288 32 1.57143 32H24.4286C25.0607 32 25.5714 31.4893 25.5714 30.8571V1.14286C25.5714 0.510714 25.0607 0 24.4286 0ZM23 29.4286H3V22.25H6.49643C6.91072 23.4214 7.63929 24.475 8.60715 25.275C9.83929 26.2929 11.4 26.8571 13 26.8571C14.6 26.8571 16.1607 26.2964 17.3929 25.275C18.3607 24.475 19.0893 23.4214 19.5036 22.25H23V29.4286ZM23 20H17.7L17.5143 20.8821C17.0857 23.0179 15.1857 24.5714 13 24.5714C10.8143 24.5714 8.91429 23.0179 8.48215 20.8821L8.29643 20H3V2.57143H23V20Z'\r\n fill={theme.emptyMessagesFontColor}\r\n />\r\n </svg>\r\n )\r\n}\r\n","import React, { ReactNode, CSSProperties } from 'react'\r\n\r\ninterface IInfiniteScroll {\r\n loading: boolean\r\n more: boolean\r\n fetch: () => void\r\n children: ReactNode\r\n loadingCover: React.ReactElement\r\n root: Element | null\r\n reverse?: boolean\r\n rootMargin?: number\r\n}\r\n\r\nconst intersectDivStyle: CSSProperties = {\r\n width: 25,\r\n height: 25,\r\n visibility: 'hidden',\r\n}\r\n\r\nfunction InfiniteScroll ({\r\n loading,\r\n loadingCover,\r\n more,\r\n fetch,\r\n children,\r\n root,\r\n reverse = false,\r\n rootMargin = 400,\r\n}: IInfiniteScroll) {\r\n const [infiniteElement, setInfiniteElement] =\r\n React.useState<HTMLDivElement | null>(null)\r\n\r\n React.useEffect(() => {\r\n if (!root) return\r\n const currentElement = infiniteElement\r\n const observer = new IntersectionObserver(\r\n (entries) => {\r\n const first = entries[0]\r\n if (first.isIntersecting === true) fetch()\r\n },\r\n {\r\n root,\r\n rootMargin: rootMargin.toString() + 'px',\r\n threshold: 0.5,\r\n }\r\n )\r\n\r\n if (currentElement) {\r\n observer.observe(currentElement)\r\n }\r\n\r\n return () => {\r\n if (currentElement) observer.unobserve(currentElement)\r\n }\r\n }, [infiniteElement])\r\n\r\n if (reverse) {\r\n return (\r\n <>\r\n {more && !loading && (\r\n <div ref={setInfiniteElement} style={intersectDivStyle}></div>\r\n )}\r\n {loading && loadingCover}\r\n {children}\r\n </>\r\n )\r\n }\r\n\r\n return (\r\n <>\r\n {children}\r\n {loading && loadingCover}\r\n {more && !loading && (\r\n <div ref={setInfiniteElement} style={intersectDivStyle}></div>\r\n )}\r\n </>\r\n )\r\n}\r\n\r\nexport default InfiniteScroll\r\n","import React, { Fragment } from 'react'\r\nimport { IList } from 'types'\r\nimport ChatTabs from '../components/ChatTabs/ChatTabs'\r\nimport ChatButtons from '../components/ChatButton/ChatButton'\r\nimport SearchInput from '../components/SearchInput/SearchInput'\r\nimport MessengerListItem, { activeItem } from './MessengerListItem'\r\nimport useTheme from '../hooks/useThemes'\r\nimport EmptyIcon from '../icons/EmptyIcon'\r\nimport InfiniteScroll from '../components/InfiniteScroll/InfiniteScroll'\r\nimport { useTranslation } from 'react-i18next'\r\n\r\ninterface IMessengerList {\r\n affix?: React.ReactElement\r\n loading: boolean\r\n conversations: IList[]\r\n currentId?: string\r\n failed?: boolean\r\n showBadge: boolean\r\n tab?: 'list' | 'messages'\r\n className?: string\r\n onClick: (item: IList) => void\r\n searchChat: (search: string, key: string) => void\r\n searchKeys: { label: string; value: string }[]\r\n messegerView: 'empty' | 'messages' | 'newChat'\r\n helpDesk: boolean\r\n handleChangeTickets: (tab: string) => void\r\n loadingSearch: boolean\r\n chatListTabs: { value: string; label: string }[]\r\n chatButtons: {\r\n label: string\r\n onClick: () => void\r\n type: string\r\n canSee: boolean\r\n disabled?: boolean\r\n }[]\r\n canSeeDetailsChat: boolean\r\n hasNext: boolean\r\n onIntersect: () => void\r\n sliceCount: number\r\n currentViewerId: string\r\n}\r\n\r\nconst ListLoading = () => {\r\n const { theme } = useTheme()\r\n return (\r\n <Fragment>\r\n {new Array(5).fill('').map((_, idx) => (\r\n <button\r\n key={`asideSkeleton${idx}`}\r\n style={{\r\n background: theme.listItemHover,\r\n borderBottom: idx < 4 ? `1px solid ${theme.borderColor}` : '0',\r\n }}\r\n className='messenger__aside-skeleton'\r\n />\r\n ))}\r\n </Fragment>\r\n )\r\n}\r\n\r\nfunction MessengerList ({\r\n affix,\r\n conversations,\r\n tab,\r\n className = '',\r\n loading,\r\n failed,\r\n showBadge,\r\n currentId,\r\n onClick,\r\n searchChat,\r\n searchKeys,\r\n messegerView,\r\n helpDesk,\r\n handleChangeTickets,\r\n chatListTabs,\r\n chatButtons,\r\n loadingSearch,\r\n canSeeDetailsChat,\r\n hasNext,\r\n onIntersect,\r\n sliceCount,\r\n currentViewerId,\r\n}: IMessengerList) {\r\n const { t } = useTranslation('messengerList')\r\n const { theme } = useTheme()\r\n\r\n return (\r\n <aside\r\n className={`messenger__aside ${className} ${tab === 'messages' ? 'messenger__mobile-hide' : ''}`}\r\n style={{\r\n border: `1px solid ${theme.borderColor}`,\r\n borderRadius: '20px 0 0 20px',\r\n background: theme.asideBg,\r\n }}\r\n >\r\n <div className='messenger__buttons-container'>\r\n <ChatButtons\r\n chatButtons={chatButtons}\r\n messegerView={messegerView}\r\n removeActiveItem={(e: React.MouseEvent<HTMLElement, MouseEvent>) => {\r\n activeItem(\r\n e,\r\n 'messenger__aside-list-item',\r\n 'messenger__aside-list-item--active'\r\n )\r\n }}\r\n />\r\n\r\n {helpDesk && (\r\n <SearchInput\r\n searchKeys={searchKeys}\r\n searchChat={searchChat}\r\n loadingSearch={loadingSearch}\r\n />\r\n )}\r\n </div>\r\n\r\n {affix && (\r\n <div className='messenger__aside-header'>\r\n {React.cloneElement(affix)}\r\n </div>\r\n )}\r\n\r\n <ChatTabs\r\n chatListTabs={chatListTabs}\r\n handleChangeTickets={handleChangeTickets}\r\n />\r\n\r\n <div className='messenger__aside-list'>\r\n <InfiniteScroll\r\n root={document.querySelector('.messenger__aside-list')}\r\n loading={loading}\r\n loadingCover={<ListLoading />}\r\n more={hasNext}\r\n fetch={onIntersect}\r\n >\r\n {Array.isArray(conversations) &&\r\n conversations.length > 0 &&\r\n conversations.slice(0, sliceCount).map((item) => {\r\n return (\r\n <div\r\n key={item?._id}\r\n className={`messenger__aside-item-container ${showBadge ? 'messenger__active-badge' : ''}`}\r\n >\r\n <MessengerListItem\r\n canSeeDetailsChat={canSeeDetailsChat}\r\n currentId={currentId}\r\n item={item}\r\n onClick={onClick}\r\n currentViewerId={currentViewerId}\r\n />\r\n </div>\r\n )\r\n })}\r\n </InfiniteScroll>\r\n\r\n {failed ||\r\n (conversations?.length === 0 && !loading && (\r\n <div className='messenger__aside-empty'>\r\n <EmptyIcon />\r\n <p>{t('noChatFound')}</p>\r\n </div>\r\n ))}\r\n </div>\r\n </aside>\r\n )\r\n}\r\n\r\nexport default MessengerList\r\n","/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n 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;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n","import * as React from 'react'\r\nimport { SVGProps } from 'react'\r\nconst FileDoc = (props: SVGProps<SVGSVGElement>) => (\r\n <svg\r\n xmlns='http://www.w3.org/2000/svg'\r\n xmlnsXlink='http://www.w3.org/1999/xlink'\r\n id='Layer_1'\r\n width={800}\r\n height={800}\r\n data-name='Layer 1'\r\n viewBox='0 0 32 32'\r\n {...props}\r\n >\r\n <defs>\r\n <linearGradient\r\n id='doc-gradient'\r\n x1={6.65}\r\n x2={27.27}\r\n y1={6.65}\r\n y2={27.27}\r\n gradientUnits='userSpaceOnUse'\r\n >\r\n <stop offset={0} stopColor='#00a6fb' />\r\n <stop offset={1} stopColor='#0094ce' />\r\n </linearGradient>\r\n <linearGradient\r\n xlinkHref='#doc-gradient'\r\n id='doc-gradient-2'\r\n x1={6}\r\n x2={12}\r\n y1={5}\r\n y2={5}\r\n />\r\n <style>{'.cls-3{fill:#f8edeb}'}</style>\r\n </defs>\r\n <path\r\n d='M23.5 2h-12a.47.47 0 0 0-.35.15l-5 5A.47.47 0 0 0 6 7.5v20A2.5 2.5 0 0 0 8.5 30h15a2.5 2.5 0 0 0 2.5-2.5v-23A2.5 2.5 0 0 0 23.5 2Z'\r\n style={{\r\n fill: '#00a6fb',\r\n }}\r\n />\r\n <path\r\n d='M11.69 2a.47.47 0 0 0-.54.11l-5 5a.47.47 0 0 0-.15.58.5.5 0 0 0 .5.31h3A2.5 2.5 0 0 0 12 5.5v-3a.5.5 0 0 0-.31-.5Z'\r\n style={{\r\n fill: '#0094ce',\r\n }}\r\n />\r\n <path\r\n d='M16 21a2 2 0 0 1-2-2v-6a2 2 0 0 1 4 0v6a2 2 0 0 1-2 2Zm0-9a1 1 0 0 0-1 1v6a1 1 0 0 0 2 0v-6a1 1 0 0 0-1-1ZM9.5 21a.5.5 0 0 1-.5-.5v-9a.5.5 0 0 1 .5-.5 3.5 3.5 0 0 1 3.5 3.5v3A3.5 3.5 0 0 1 9.5 21Zm.5-8.95V20a2.5 2.5 0 0 0 2-2.45v-3a2.5 2.5 0 0 0-2-2.5ZM21 21a2 2 0 0 1-2-2v-6a2 2 0 0 1 4 0 .5.5 0 0 1-1 0 1 1 0 0 0-2 0v6a1 1 0 0 0 2 0 .5.5 0 0 1 1 0 2 2 0 0 1-2 2Z'\r\n className='cls-3'\r\n />\r\n </svg>\r\n)\r\nexport default FileDoc\r\n","import * as React from 'react'\r\nimport { SVGProps } from 'react'\r\nconst SvgComponent = (props: SVGProps<SVGSVGElement>) => (\r\n <svg\r\n xmlns='http://www.w3.org/2000/svg'\r\n xmlnsXlink='http://www.w3.org/1999/xlink'\r\n id='Layer_1'\r\n width={800}\r\n height={800}\r\n data-name='Layer 1'\r\n viewBox='0 0 32 32'\r\n {...props}\r\n >\r\n <defs>\r\n <linearGradient\r\n id='pdf-gradient'\r\n x1={6.65}\r\n x2={27.27}\r\n y1={6.65}\r\n y2={27.27}\r\n gradientUnits='userSpaceOnUse'\r\n >\r\n <stop offset={0} stopColor='#ef6461' />\r\n <stop offset={1} stopColor='#e83d3d' />\r\n </linearGradient>\r\n <linearGradient\r\n xlinkHref='#pdf-gradient'\r\n id='pdf-gradient-2'\r\n x1={6}\r\n x2={12}\r\n y1={5}\r\n y2={5}\r\n />\r\n <style>{'.cls-3{fill:#f8edeb}'}</style>\r\n </defs>\r\n <path\r\n d='M23.5 2h-12a.47.47 0 0 0-.35.15l-5 5A.47.47 0 0 0 6 7.5v20A2.5 2.5 0 0 0 8.5 30h15a2.5 2.5 0 0 0 2.5-2.5v-23A2.5 2.5 0 0 0 23.5 2Z'\r\n style={{\r\n fill: 'url(#pdf-gradient)',\r\n }}\r\n />\r\n <path\r\n d='M11.69 2a.47.47 0 0 0-.54.11l-5 5a.47.47 0 0 0-.15.58.5.5 0 0 0 .5.31h3A2.5 2.5 0 0 0 12 5.5v-3a.5.5 0 0 0-.31-.5Z'\r\n style={{\r\n fill: 'url(#pdf-gradient-2)',\r\n }}\r\n />\r\n <path\r\n d='M15.5 11h-1a.5.5 0 0 0-.5.5v9a.5.5 0 0 0 .5.5h1a2.5 2.5 0 0 0 2.5-2.5v-5a2.5 2.5 0 0 0-2.5-2.5Zm1.5 7.5a1.5 1.5 0 0 1-1.5 1.5H15v-8h.5a1.5 1.5 0 0 1 1.5 1.5ZM11.5 11h-2a.5.5 0 0 0-.5.5v9a.5.5 0 0 0 1 0V17h1.5a1.5 1.5 0 0 0 1.5-1.5v-3a1.5 1.5 0 0 0-1.5-1.5Zm.5 4.5a.5.5 0 0 1-.5.5H10v-4h1.5a.5.5 0 0 1 .5.5ZM22.5 15H20v-3h2.5a.5.5 0 0 0 0-1h-3a.5.5 0 0 0-.5.5v9a.5.5 0 0 0 1 0V16h2.5a.5.5 0 0 0 0-1Z'\r\n className='cls-3'\r\n />\r\n </svg>\r\n)\r\nexport default SvgComponent\r\n","import * as React from 'react'\r\nimport { SVGProps } from 'react'\r\n\r\nconst CSVFileIcon = (props: SVGProps<SVGSVGElement>) => (\r\n <svg\r\n xmlns='http://www.w3.org/2000/svg'\r\n width={40}\r\n height={40}\r\n viewBox='0 0 32 32'\r\n {...props}\r\n >\r\n <rect width='32' height='32' rx='5' fill='#21A366' />\r\n <text\r\n x='16'\r\n y='22'\r\n textAnchor='middle'\r\n fontSize='12'\r\n fill='#fff'\r\n fontWeight='bold'\r\n >\r\n CSV\r\n </text>\r\n </svg>\r\n)\r\n\r\nexport default CSVFileIcon\r\n","import * as React from 'react'\r\nimport { SVGProps } from 'react'\r\n\r\nconst MP4FileIcon = (props: SVGProps<SVGSVGElement>) => (\r\n <svg\r\n xmlns='http://www.w3.org/2000/svg'\r\n width={40}\r\n height={40}\r\n viewBox='0 0 32 32'\r\n {...props}\r\n >\r\n <rect width='32' height='32' rx='5' fill='#E67E22' />\r\n <text\r\n x='16'\r\n y='22'\r\n textAnchor='middle'\r\n fontSize='12'\r\n fill='#fff'\r\n fontWeight='bold'\r\n >\r\n MP4\r\n </text>\r\n </svg>\r\n)\r\n\r\nexport default MP4FileIcon\r\n","import React from 'react'\r\nimport FileDoc from '../../icons/DOCFileIcon'\r\nimport FilePdf from '../../icons/PDFFileIcon'\r\nimport CSVFileIcon from '../../icons/CSVFileIcon'\r\nimport MP4FileIcon from '../../icons/MP4FileIcon'\r\nimport { useTranslation } from 'react-i18next'\r\n\r\nconst RenderFileIcon = ({\r\n fileType,\r\n b64,\r\n}: {\r\n fileType?: string\r\n b64?: string\r\n}) => {\r\n const { t } = useTranslation('messengerMessages')\r\n\r\n if (fileType === 'application/pdf') {\r\n return <FilePdf width='40' height='40' />\r\n } else if (\r\n fileType === 'application/msword' ||\r\n fileType ===\r\n 'application/vnd.openxmlformats-officedocument.wordprocessingml.document'\r\n ) {\r\n return <FileDoc width='40' height='40' />\r\n } else if (fileType === 'text/csv') {\r\n return <CSVFileIcon width='40' height='40' />\r\n } else if (fileType === 'video/mp4') {\r\n return <MP4FileIcon width='40' height='40' />\r\n } else {\r\n return (\r\n <img\r\n alt={t('renderFileIcon.altImage')}\r\n src={b64}\r\n className='images-container__image'\r\n />\r\n )\r\n }\r\n}\r\n\r\nexport default RenderFileIcon\r\n","import React, { useEffect, useState } from 'react'\r\nimport { IImagesContainer } from 'types'\r\nimport RenderFileIcon from '../RenderFileIcon/RenderFileIcon'\r\n\r\nfunction ImagesContainer ({ file, onClose }: IImagesContainer) {\r\n const [fileInfo, setFileInfo] = useState<{ name: string; type: string }>({\r\n name: '',\r\n type: '',\r\n })\r\n\r\n const [b64, setB64] = useState<string>('')\r\n\r\n useEffect(() => {\r\n function getBase64 (file: File) {\r\n return new Promise((resolve, reject) => {\r\n const reader = new FileReader()\r\n reader.readAsDataURL(file)\r\n reader.onload = () => resolve(reader.result)\r\n reader.onerror = (error) => reject(error)\r\n })\r\n }\r\n\r\n if (file) getBase64(file).then((base64) => setB64(base64 as string))\r\n }, [file])\r\n\r\n useEffect(() => {\r\n if (file) {\r\n setFileInfo({\r\n name: file.name,\r\n type: file.type,\r\n })\r\n }\r\n }, [file])\r\n\r\n return (\r\n <div className='images-container'>\r\n <div className='images-container__close'>\r\n <button className='images-container__close--icon' onClick={onClose} />\r\n </div>\r\n\r\n <div className='images-container__container'>\r\n <div className='images-container__image'>\r\n <RenderFileIcon fileType={fileInfo.type} b64={b64} />\r\n <span className='images-container__title-img'>{fileInfo.name}</span>\r\n </div>\r\n </div>\r\n </div>\r\n )\r\n}\r\n\r\nexport default ImagesContainer\r\n","import React, { useState, useCallback, useEffect } from 'react';\n\nfunction styleInject(css, ref) {\n if ( ref === void 0 ) ref = {};\n var insertAt = ref.insertAt;\n\n if (!css || typeof document === 'undefined') { return; }\n\n var head = document.head || document.getElementsByTagName('head')[0];\n var style = document.createElement('style');\n style.type = 'text/css';\n\n if (insertAt === 'top') {\n if (head.firstChild) {\n head.insertBefore(style, head.firstChild);\n } else {\n head.appendChild(style);\n }\n } else {\n head.appendChild(style);\n }\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(document.createTextNode(css));\n }\n}\n\nvar css_248z = \".styles-module_wrapper__1I_qj {\\n z-index: 1;\\n display: flex;\\n align-items: center;\\n position: fixed;\\n padding: 0px 60px 0px 60px;\\n left: 0;\\n top: 0;\\n width: 100%;\\n height: 100%;\\n background-color: black;\\n box-sizing: border-box;\\n}\\n\\n.styles-module_content__2jwZj {\\n margin: auto;\\n padding: 0;\\n width: 90%;\\n height: 100%;\\n max-height: 100%;\\n text-align: center;\\n}\\n\\n.styles-module_slide__1zrfk {\\n height: 100%;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n}\\n\\n.styles-module_image__2hdkJ {\\n max-height: 100%;\\n max-width: 100%;\\n user-select: none;\\n -moz-user-select: none;\\n -webkit-user-select: none;\\n}\\n\\n.styles-module_close__2I1sI {\\n color: white;\\n position: absolute;\\n top: 15px;\\n right: 15px;\\n font-size: 40px;\\n font-weight: bold;\\n opacity: 0.2;\\n cursor: pointer;\\n}\\n\\n.styles-module_close__2I1sI:hover {\\n opacity: 1;\\n}\\n\\n.styles-module_navigation__1pqAE {\\n height: 80%;\\n color: white;\\n cursor: pointer;\\n position: absolute;\\n font-size: 60px;\\n line-height: 60px;\\n font-weight: bold;\\n display: flex;\\n align-items: center;\\n opacity: 0.2;\\n padding: 0 15px;\\n user-select: none;\\n -moz-user-select: none;\\n -webkit-user-select: none;\\n}\\n\\n.styles-module_navigation__1pqAE:hover {\\n opacity: 1;\\n}\\n\\n@media (hover: none) {\\n .styles-module_navigation__1pqAE:hover {\\n opacity: 0.2;\\n }\\n}\\n\\n.styles-module_prev__KqFRp {\\n left: 0;\\n}\\n\\n.styles-module_next__1uQwZ {\\n right: 0;\\n}\\n\\n@media (max-width: 900px) {\\n .styles-module_wrapper__1I_qj {\\n padding: 0;\\n }\\n}\\n\";\nvar styles = {\"wrapper\":\"styles-module_wrapper__1I_qj\",\"content\":\"styles-module_content__2jwZj\",\"slide\":\"styles-module_slide__1zrfk\",\"image\":\"styles-module_image__2hdkJ\",\"close\":\"styles-module_close__2I1sI\",\"navigation\":\"styles-module_navigation__1pqAE\",\"prev\":\"styles-module_prev__KqFRp\",\"next\":\"styles-module_next__1uQwZ\"};\nstyleInject(css_248z);\n\nconst ReactSimpleImageViewer = (props) => {\n var _a;\n const [currentIndex, setCurrentIndex] = useState((_a = props.currentIndex) !== null && _a !== void 0 ? _a : 0);\n const changeImage = useCallback((delta) => {\n let nextIndex = (currentIndex + delta) % props.src.length;\n if (nextIndex < 0)\n nextIndex = props.src.length - 1;\n setCurrentIndex(nextIndex);\n }, [currentIndex]);\n const handleClick = useCallback((event) => {\n var _a;\n if (!event.target || !props.closeOnClickOutside) {\n return;\n }\n const checkId = event.target.id === 'ReactSimpleImageViewer';\n const checkClass = event.target.classList.contains('react-simple-image-viewer__slide');\n if (checkId || checkClass) {\n event.stopPropagation();\n (_a = props.onClose) === null || _a === void 0 ? void 0 : _a.call(props);\n }\n }, [props.onClose]);\n const handleKeyDown = useCallback((event) => {\n var _a;\n if (event.key === \"Escape\") {\n (_a = props.onClose) === null || _a === void 0 ? void 0 : _a.call(props);\n }\n if ([\"ArrowLeft\", \"h\"].includes(event.key)) {\n changeImage(-1);\n }\n if ([\"ArrowRight\", \"l\"].includes(event.key)) {\n changeImage(1);\n }\n }, [props.onClose, changeImage]);\n const handleWheel = useCallback((event) => {\n if (event.wheelDeltaY > 0) {\n changeImage(-1);\n }\n else {\n changeImage(1);\n }\n }, [changeImage]);\n useEffect(() => {\n document.addEventListener(\"keydown\", handleKeyDown);\n if (!props.disableScroll) {\n document.addEventListener(\"wheel\", handleWheel);\n }\n return () => {\n document.removeEventListener(\"keydown\", handleKeyDown);\n if (!props.disableScroll) {\n document.removeEventListener(\"wheel\", handleWheel);\n }\n };\n }, [handleKeyDown, handleWheel]);\n return (React.createElement(\"div\", { id: \"ReactSimpleImageViewer\", className: `${styles.wrapper} react-simple-image-viewer__modal`, onKeyDown: handleKeyDown, onClick: handleClick, style: props.backgroundStyle },\n React.createElement(\"span\", { className: `${styles.close} react-simple-image-viewer__close`, onClick: () => { var _a; return (_a = props.onClose) === null || _a === void 0 ? void 0 : _a.call(props); } }, props.closeComponent || \"×\"),\n props.src.length > 1 && (React.createElement(\"span\", { className: `${styles.navigation} ${styles.prev} react-simple-image-viewer__previous`, onClick: () => changeImage(-1) }, props.leftArrowComponent || \"❮\")),\n props.src.length > 1 && (React.createElement(\"span\", { className: `${styles.navigation} ${styles.next} react-simple-image-viewer__next`, onClick: () => changeImage(1) }, props.rightArrowComponent || \"❯\")),\n React.createElement(\"div\", { className: `${styles.content} react-simple-image-viewer__modal-content`, onClick: handleClick },\n React.createElement(\"div\", { className: `${styles.slide} react-simple-image-viewer__slide` },\n React.createElement(\"img\", { className: styles.image, src: props.src[currentIndex], alt: \"\" })))));\n};\n\nexport { ReactSimpleImageViewer as default };\n//# sourceMappingURL=index.esm.js.map\n","import React from 'react'\r\n\r\nfunction DownloadMinimalistIcon ({\r\n width,\r\n height,\r\n color,\r\n}: {\r\n width: string\r\n height: string\r\n color: string\r\n}) {\r\n return (\r\n <svg\r\n xmlns='http://www.w3.org/2000/svg'\r\n width={width}\r\n height={height}\r\n viewBox='0 0 24 24'\r\n fill='none'\r\n >\r\n <path\r\n d='M12.5535 16.5061C12.4114 16.6615 12.2106 16.75 12 16.75C11.7894 16.75 11.5886 16.6615 11.4465 16.5061L7.44648 12.1311C7.16698 11.8254 7.18822 11.351 7.49392 11.0715C7.79963 10.792 8.27402 10.8132 8.55352 11.1189L11.25 14.0682V3C11.25 2.58579 11.5858 2.25 12 2.25C12.4142 2.25 12.75 2.58579 12.75 3V14.0682L15.4465 11.1189C15.726 10.8132 16.2004 10.792 16.5061 11.0715C16.8118 11.351 16.833 11.8254 16.5535 12.1311L12.5535 16.5061Z'\r\n fill={color}\r\n />\r\n <path\r\n d='M3.75 15C3.75 14.5858 3.41422 14.25 3 14.25C2.58579 14.25 2.25 14.5858 2.25 15V15.0549C2.24998 16.4225 2.24996 17.5248 2.36652 18.3918C2.48754 19.2919 2.74643 20.0497 3.34835 20.6516C3.95027 21.2536 4.70814 21.5125 5.60825 21.6335C6.47522 21.75 7.57754 21.75 8.94513 21.75H15.0549C16.4225 21.75 17.5248 21.75 18.3918 21.6335C19.2919 21.5125 20.0497 21.2536 20.6517 20.6516C21.2536 20.0497 21.5125 19.2919 21.6335 18.3918C21.75 17.5248 21.75 16.4225 21.75 15.0549V15C21.75 14.5858 21.4142 14.25 21 14.25C20.5858 14.25 20.25 14.5858 20.25 15C20.25 16.4354 20.2484 17.4365 20.1469 18.1919C20.0482 18.9257 19.8678 19.3142 19.591 19.591C19.3142 19.8678 18.9257 20.0482 18.1919 20.1469C17.4365 20.2484 16.4354 20.25 15 20.25H9C7.56459 20.25 6.56347 20.2484 5.80812 20.1469C5.07435 20.0482 4.68577 19.8678 4.40901 19.591C4.13225 19.3142 3.9518 18.9257 3.85315 18.1919C3.75159 17.4365 3.75 16.4354 3.75 15Z'\r\n fill={color}\r\n />\r\n <defs>\r\n <clipPath id='clip0_23_2'>\r\n <rect width='32' height='32' fill='@text-color' />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n )\r\n}\r\n\r\nexport default DownloadMinimalistIcon\r\n","import React from 'react'\r\nimport DownloadMinimalistIcon from '../../icons/DownloadMinimalistIcon'\r\nimport { IMessagesBalloon } from 'types'\r\nimport RenderFileIcon from '../RenderFileIcon/RenderFileIcon'\r\n\r\nexport function formatFileSize (size = 0) {\r\n if (size % 1 === 0) {\r\n return `${size.toFixed(0)} MB`\r\n }\r\n return `${size.toFixed(2)} MB`\r\n}\r\n\r\nfunction DocMessage ({ file }: IMessagesBalloon) {\r\n const fileType = file?.location?.split('.').pop()?.toUpperCase()\r\n const fileName = file && file.originalname\r\n const filePages = file && file.pages\r\n const fileSize = file && formatFileSize(file?.size)\r\n\r\n return (\r\n <div className='messenger__messages-row--sender'>\r\n <span>\r\n {\r\n <div className='messenger__file-card'>\r\n <div className='messenger__file-icon'>\r\n <RenderFileIcon fileType={file?.mimetype} />\r\n </div>\r\n <div className='messenger__file-details'>\r\n <p className='messenger__file-name'>{fileName}</p>\r\n <p className='messenger__file-info'>\r\n {filePages && filePages + ' página(s) •'} {fileSize} •{' '}\r\n {fileType}\r\n </p>\r\n </div>\r\n <a\r\n href={file?.location}\r\n target='_blank'\r\n rel='noopener noreferrer'\r\n className='messenger__file-download'\r\n style={{ color: 'blue' }}\r\n >\r\n <DownloadMinimalistIcon width='24' height='24' color='white' />\r\n </a>\r\n </div>\r\n }\r\n </span>\r\n </div>\r\n )\r\n}\r\n\r\nexport default DocMessage\r\n","import useTheme from '../../hooks/useThemes'\r\nimport React, { useCallback, useState } from 'react'\r\nimport { Iimages, IInconmingMessage } from 'types'\r\nimport MessengerAvatar from '../MessengerAvatar/MessengerAvatar'\r\nimport ReactSimpleImageViewer from '../../../../../node_modules/react-simple-image-viewer'\r\nimport DocMessage from '../DocMessage/DocMessage'\r\nimport { useTranslation } from 'react-i18next'\r\n\r\ninterface IMessagesWithFile {\r\n file:\r\n | Iimages\r\n | {\r\n contentType: string\r\n location: string\r\n mimetype: string\r\n originalname: string\r\n size?: number\r\n pages?: number\r\n key?: string\r\n }\r\n | undefined\r\n message: string\r\n date: string\r\n openImageViewer: (index: number) => void\r\n id: string\r\n formatDate: (date: string | Date) => string | undefined\r\n currentImage: number\r\n}\r\n\r\nexport const MessageImage = ({ ...rest }) => {\r\n const { t } = useTranslation('messengerMessages')\r\n return (\r\n <div className='messenger__message--file'>\r\n <img\r\n {...rest}\r\n width={200}\r\n height={200}\r\n alt={t('incommingMessage.messageImage')}\r\n />\r\n </div>\r\n )\r\n}\r\n\r\nconst MessageWithFile = ({\r\n file,\r\n message,\r\n date,\r\n openImageViewer,\r\n id,\r\n formatDate,\r\n currentImage,\r\n}: IMessagesWithFile) => {\r\n const isImage = (\r\n file:\r\n | {\r\n contentType: string\r\n location: string\r\n mimetype: string\r\n originalname: string\r\n size?: number\r\n pages?: number\r\n key?: string\r\n }\r\n | Iimages\r\n | undefined\r\n ): file is Iimages => {\r\n if (!file) return false\r\n if (['image/png', 'image/jpeg'].includes(file?.mimetype ?? '')) {\r\n return true\r\n }\r\n return false\r\n }\r\n\r\n return (\r\n <>\r\n {isImage(file) ? (\r\n <MessageImage\r\n src={file?.location}\r\n onClick={() => openImageViewer(currentImage)}\r\n />\r\n ) : (\r\n file && (\r\n <DocMessage\r\n file={file}\r\n message={message}\r\n date={date}\r\n read={false}\r\n id={id}\r\n formatDate={formatDate}\r\n />\r\n )\r\n )}\r\n </>\r\n )\r\n}\r\n\r\nfunction IncomingMessage ({\r\n date,\r\n message,\r\n user,\r\n hasFile,\r\n file,\r\n isSystemMessage,\r\n formatDate,\r\n id,\r\n}: IInconmingMessage) {\r\n const { theme } = useTheme()\r\n const [currentImage, setCurrentImage] = useState(0)\r\n const [isViewerOpen, setIsViewerOpen] = useState(false)\r\n\r\n const openImageViewer = useCallback((index: number) => {\r\n setCurrentImage(index)\r\n setIsViewerOpen(true)\r\n }, [])\r\n\r\n const closeImageViewer = () => {\r\n setCurrentImage(0)\r\n setIsViewerOpen(false)\r\n }\r\n\r\n return (\r\n <div className='messenger__messages-row--received' id={id}>\r\n {(user.avatar || user.name) && !isSystemMessage && (\r\n <div className='messenger__message-avatar mr-2'>\r\n <MessengerAvatar image={user.avatar}>\r\n {user.name.slice(0, 1)}\r\n </MessengerAvatar>\r\n </div>\r\n )}\r\n\r\n <div\r\n className='messenger__messages-received'\r\n style={{ background: theme?.messengerIncomerColor }}\r\n >\r\n {!isSystemMessage && (\r\n <p className='messenger__message-title'>{user.name}</p>\r\n )}\r\n\r\n <span>\r\n {hasFile && (\r\n <MessageWithFile\r\n file={file}\r\n message={message}\r\n date={date}\r\n openImageViewer={openImageViewer}\r\n id={id}\r\n formatDate={formatDate}\r\n currentImage={currentImage}\r\n />\r\n )}\r\n {message && <p className='messenger__message'>{message}</p>}\r\n <p className='messenger__message--date'>\r\n {formatDate(date) ?? new Date(date).toLocaleString()}\r\n </p>\r\n </span>\r\n </div>\r\n {file && isViewerOpen && (\r\n <ReactSimpleImageViewer\r\n src={[file.location]}\r\n currentIndex={0}\r\n disableScroll={false}\r\n closeOnClickOutside={true}\r\n onClose={closeImageViewer}\r\n />\r\n )}\r\n </div>\r\n )\r\n}\r\n\r\nexport default IncomingMessage\r\n","import React from 'react'\r\n\r\nexport default function ReadIcon ({ fill }: { fill: string }) {\r\n return (\r\n <svg\r\n width='15'\r\n height='15'\r\n viewBox='0 0 30 24'\r\n fill='none'\r\n xmlns='http://www.w3.org/2000/svg'\r\n >\r\n <path\r\n d='M29.2857 0.5H26.7893C26.4393 0.5 26.1071 0.660714 25.8929 0.935714L11.1679 19.5893L4.10714 10.6429C4.00033 10.5072 3.86419 10.3976 3.70893 10.3221C3.55367 10.2467 3.38334 10.2074 3.21071 10.2071H0.714286C0.475 10.2071 0.342857 10.4821 0.489286 10.6679L10.2714 23.0607C10.7286 23.6393 11.6071 23.6393 12.0679 23.0607L29.5107 0.957143C29.6571 0.775 29.525 0.5 29.2857 0.5V0.5Z'\r\n fill={fill}\r\n />\r\n </svg>\r\n )\r\n}\r\n","import useTheme from '../../hooks/useThemes'\r\nimport React, { useCallback, useState } from 'react'\r\nimport { IMessagesBalloon } from 'types'\r\nimport ReadIcon from '../../icons/ReadIcon'\r\nimport ReactSimpleImageViewer from 'react-simple-image-viewer'\r\nimport { MessageImage } from '../IncomingMessage/IncomingMessage'\r\nimport DocMessage from '../DocMessage/DocMessage'\r\n\r\nfunction SenderMessages ({\r\n date,\r\n message,\r\n read,\r\n hasFile,\r\n file,\r\n formatDate,\r\n id,\r\n}: IMessagesBalloon) {\r\n const [currentImage, setCurrentImage] = useState(0)\r\n const [isViewerOpen, setIsViewerOpen] = useState(false)\r\n const { theme } = useTheme()\r\n\r\n const openImageViewer = useCallback((index: number) => {\r\n setCurrentImage(index)\r\n setIsViewerOpen(true)\r\n }, [])\r\n\r\n const closeImageViewer = () => {\r\n setCurrentImage(0)\r\n setIsViewerOpen(false)\r\n }\r\n\r\n const isDoc = [\r\n 'application/msword',\r\n 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',\r\n 'application/pdf',\r\n 'text/csv',\r\n 'video/mp4',\r\n ].includes(file?.mimetype ?? '')\r\n\r\n return (\r\n <div className='messenger__messages-row--sender'>\r\n <div\r\n className='messenger__messages-sender'\r\n id={id}\r\n style={{\r\n background: theme?.messengerSenderColor,\r\n color: theme?.documentMessagesTextColor,\r\n }}\r\n >\r\n <span>\r\n {hasFile &&\r\n (isDoc ? (\r\n <DocMessage\r\n date={date}\r\n message={message}\r\n read={read}\r\n file={file}\r\n formatDate={formatDate}\r\n id={id}\r\n />\r\n ) : (\r\n <MessageImage\r\n src={file?.location}\r\n onClick={() => openImageViewer(currentImage)}\r\n />\r\n ))}\r\n\r\n <p className='messenger__message'>{message}</p>\r\n <div className='messenger__message--bottom'>\r\n <p className='messenger__message--date'>\r\n {formatDate(date) ?? new Date(date).toString()}\r\n </p>\r\n <ReadIcon fill={read ? '#00efff' : 'white'} />\r\n </div>\r\n </span>\r\n </div>\r\n\r\n {file && !isDoc && isViewerOpen && (\r\n <ReactSimpleImageViewer\r\n src={[file.location]}\r\n currentIndex={0}\r\n disableScroll={false}\r\n closeOnClickOutside={true}\r\n onClose={closeImageViewer}\r\n />\r\n )}\r\n </div>\r\n )\r\n}\r\n\r\nexport default SenderMessages\r\n","import React from 'react'\r\nimport useTheme from '../../hooks/useThemes'\r\nimport { IInconmingMessage } from 'types'\r\n\r\nfunction SystemMessage ({ date, message, formatDate, id }: IInconmingMessage) {\r\n const { theme } = useTheme()\r\n\r\n return (\r\n <div className='messenger__messages-row--system' id={id}>\r\n <div\r\n className='messenger__messages-received messenger__messages-received--system'\r\n style={{ background: theme?.messengerSystemColor }}\r\n >\r\n <span>\r\n <p className='messenger__message'>{message}</p>\r\n <p className='messenger__message--date'>\r\n {formatDate(date) ?? new Date(date).toString()}\r\n </p>\r\n </span>\r\n </div>\r\n </div>\r\n )\r\n}\r\n\r\nexport default SystemMessage\r\n","import React from 'react'\r\nimport { Iimages, IMessages } from 'types'\r\nimport IncomingMessage from '../IncomingMessage/IncomingMessage'\r\nimport SenderMessages from '../SenderMessages/SenderMessages'\r\nimport SystemMessage from '../SystemMessage/SystemMessage'\r\n\r\nfunction MessageBalloon ({\r\n item,\r\n creatorId,\r\n formatDate,\r\n id,\r\n}: {\r\n item: IMessages\r\n creatorId?: string\r\n formatDate: (date: string | Date) => string | undefined\r\n id: string\r\n}) {\r\n if (item.isSystemMessage) {\r\n return (\r\n <SystemMessage\r\n formatDate={formatDate}\r\n date={item.createdAt}\r\n message={item.content}\r\n id={item.senderId}\r\n user={{ name: 'System' }}\r\n />\r\n )\r\n }\r\n\r\n if (\r\n item.sender.uniqueCode &&\r\n !item.isSystemMessage &&\r\n item.sender.uniqueCode === creatorId\r\n ) {\r\n return (\r\n <>\r\n <SenderMessages\r\n id={id}\r\n formatDate={formatDate}\r\n message={item.content}\r\n date={item.createdAt}\r\n read={item.everybodyHasRead}\r\n hasFile={item.hasFile}\r\n file={item.file}\r\n />\r\n\r\n {item.images &&\r\n item.images.map((image: Iimages, index: number) => (\r\n <SenderMessages\r\n key={image.key}\r\n id={`${id}image-${index}`}\r\n formatDate={formatDate}\r\n date={item.createdAt}\r\n file={image}\r\n message=''\r\n hasFile={true}\r\n read={item.everybodyHasRead}\r\n />\r\n ))}\r\n </>\r\n )\r\n }\r\n\r\n return (\r\n <>\r\n <IncomingMessage\r\n id={id}\r\n formatDate={formatDate}\r\n date={item.createdAt}\r\n message={item.content}\r\n hasFile={item.hasFile}\r\n isSystemMessage={item.isSystemMessage}\r\n file={item.file}\r\n user={{\r\n avatar: item.sender?.image,\r\n name: item.sender.username,\r\n }}\r\n />\r\n\r\n {item.images &&\r\n item.images.map((image: Iimages, index: number) => (\r\n <IncomingMessage\r\n key={image.key}\r\n id={`${id}image-${index}`}\r\n formatDate={formatDate}\r\n date={item.createdAt}\r\n file={image}\r\n message=''\r\n hasFile={true}\r\n user={{\r\n avatar: item.sender?.image,\r\n name: item.sender.username,\r\n }}\r\n />\r\n ))}\r\n </>\r\n )\r\n}\r\n\r\nexport default MessageBalloon\r\n","import React from 'react'\r\n\r\nfunction MessageIcon ({ width, height }: { width: string; height: string }) {\r\n return (\r\n <svg\r\n width={width}\r\n height={height}\r\n viewBox='0 0 32 32'\r\n fill='none'\r\n xmlns='http://www.w3.org/2000/svg'\r\n >\r\n <g clipPath='url(#clip0_23_2)'>\r\n <path\r\n d='M14.2857 16C14.2857 16.4547 14.4663 16.8907 14.7878 17.2122C15.1093 17.5337 15.5453 17.7143 16 17.7143C16.4547 17.7143 16.8907 17.5337 17.2122 17.2122C17.5337 16.8907 17.7143 16.4547 17.7143 16C17.7143 15.5453 17.5337 15.1093 17.2122 14.7878C16.8907 14.4663 16.4547 14.2857 16 14.2857C15.5453 14.2857 15.1093 14.4663 14.7878 14.7878C14.4663 15.1093 14.2857 15.5453 14.2857 16V16ZM21.4286 16C21.4286 16.4547 21.6092 16.8907 21.9307 17.2122C22.2522 17.5337 22.6882 17.7143 23.1429 17.7143C23.5975 17.7143 24.0336 17.5337 24.355 17.2122C24.6765 16.8907 24.8572 16.4547 24.8572 16C24.8572 15.5453 24.6765 15.1093 24.355 14.7878C24.0336 14.4663 23.5975 14.2857 23.1429 14.2857C22.6882 14.2857 22.2522 14.4663 21.9307 14.7878C21.6092 15.1093 21.4286 15.5453 21.4286 16ZM7.14286 16C7.14286 16.4547 7.32347 16.8907 7.64497 17.2122C7.96646 17.5337 8.40249 17.7143 8.85715 17.7143C9.31181 17.7143 9.74784 17.5337 10.0693 17.2122C10.3908 16.8907 10.5714 16.4547 10.5714 16C10.5714 15.5453 10.3908 15.1093 10.0693 14.7878C9.74784 14.4663 9.31181 14.2857 8.85715 14.2857C8.40249 14.2857 7.96646 14.4663 7.64497 14.7878C7.32347 15.1093 7.14286 15.5453 7.14286 16V16ZM30.7572 9.8C29.95 7.88214 28.7929 6.16071 27.3179 4.68214C25.8532 3.21213 24.1144 2.04365 22.2 1.24286C20.2357 0.417857 18.15 0 16 0H15.9286C13.7643 0.0107143 11.6679 0.439286 9.69643 1.28214C7.79842 2.09115 6.07595 3.2617 4.62501 4.72857C3.16429 6.20357 2.01786 7.91786 1.225 9.82857C0.403576 11.8071 -0.01071 13.9107 4.25255e-06 16.075C0.012123 18.5553 0.598904 20.999 1.71429 23.2143V28.6429C1.71429 29.0786 1.88738 29.4964 2.19547 29.8045C2.50357 30.1126 2.92143 30.2857 3.35715 30.2857H8.78929C11.0046 31.4011 13.4483 31.9879 15.9286 32H16.0036C18.1429 32 20.2179 31.5857 22.1714 30.775C24.0762 29.9838 25.8085 28.8289 27.2714 27.375C28.7464 25.9143 29.9072 24.2071 30.7179 22.3036C31.5607 20.3321 31.9893 18.2357 32 16.0714C32.0107 13.8964 31.5893 11.7857 30.7572 9.8V9.8ZM25.3607 25.4429C22.8571 27.9214 19.5357 29.2857 16 29.2857H15.9393C13.7857 29.275 11.6464 28.7393 9.75715 27.7321L9.45715 27.5714H4.42858V22.5429L4.26786 22.2429C3.26072 20.3536 2.725 18.2143 2.71429 16.0607C2.7 12.5 4.06072 9.15714 6.55715 6.63929C9.05001 4.12143 12.3821 2.72857 15.9429 2.71429H16.0036C17.7893 2.71429 19.5214 3.06071 21.1536 3.74643C22.7464 4.41429 24.175 5.375 25.4036 6.60357C26.6286 7.82857 27.5929 9.26071 28.2607 10.8536C28.9536 12.5036 29.3 14.2536 29.2929 16.0607C29.2714 19.6179 27.875 22.95 25.3607 25.4429V25.4429Z'\r\n fill='black'\r\n />\r\n </g>\r\n <defs>\r\n <clipPath id='clip0_23_2'>\r\n <rect width='32' height='32' fill='@text-color' />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n )\r\n}\r\n\r\nexport default MessageIcon\r\n","import React from 'react'\r\n\r\ninterface IProps {\r\n color: string\r\n}\r\nexport default function TrashIcon ({ color }: IProps) {\r\n return (\r\n <svg\r\n width='13'\r\n height='17'\r\n viewBox='0 0 13 17'\r\n fill='none'\r\n xmlns='http://www.w3.org/2000/svg'\r\n >\r\n <path\r\n d='M13 0.928571H9.75L8.82143 0H4.17857L3.25 0.928571H0V2.78571H13M0.928571 14.8571C0.928571 15.3497 1.12423 15.8221 1.47252 16.1703C1.8208 16.5186 2.29317 16.7143 2.78571 16.7143H10.2143C10.7068 16.7143 11.1792 16.5186 11.5275 16.1703C11.8758 15.8221 12.0714 15.3497 12.0714 14.8571V3.71429H0.928571V14.8571Z'\r\n fill={color}\r\n />\r\n </svg>\r\n )\r\n}\r\n","import TrashIcon from '../../icons/TrashIcon'\r\nimport React, { useMemo } from 'react'\r\nimport useTheme from '../../hooks/useThemes'\r\nimport { useTranslation } from 'react-i18next'\r\n\r\ninterface IProps {\r\n fileList: File[]\r\n onUpdateFile: (files: File) => void\r\n label: string\r\n onRemoveFile: (files: File) => void\r\n maxSize: string\r\n loading: boolean\r\n}\r\n\r\nfunction InputFile ({\r\n fileList,\r\n onUpdateFile,\r\n label,\r\n onRemoveFile,\r\n maxSize,\r\n loading,\r\n}: IProps) {\r\n const { theme } = useTheme()\r\n const { t } = useTranslation('newFormChat')\r\n\r\n const validateFileType = useMemo(\r\n () => (allowedTypes: string[], file?: File) => {\r\n if (file?.type) {\r\n return allowedTypes.includes(file.type)\r\n }\r\n const extension = file?.name.split('.').pop()?.toLowerCase()\r\n return extension ? allowedTypes.includes(`.${extension}`) : false\r\n },\r\n []\r\n )\r\n\r\n const onUpload = () => {\r\n const input = document.querySelector('.file-input__input') as HTMLElement\r\n input?.click()\r\n }\r\n\r\n const onChange = (e: React.ChangeEvent<HTMLInputElement>) => {\r\n const file = e?.target?.files?.[0]\r\n\r\n const isAllowedType = validateFileType(\r\n [\r\n 'image/png',\r\n 'image/jpeg',\r\n 'application/pdf',\r\n 'application/msword',\r\n 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',\r\n 'text/csv',\r\n 'video/mp4',\r\n ],\r\n file\r\n )\r\n if (!isAllowedType) {\r\n console.error(t('inputFile.documentSendError'))\r\n return false\r\n }\r\n\r\n if (file) onUpdateFile(file)\r\n return true\r\n }\r\n\r\n const removeItem = (file: File) => {\r\n if (fileList.some((item) => item === file)) {\r\n onRemoveFile(file)\r\n }\r\n }\r\n\r\n return (\r\n <>\r\n <div className='file-input'>\r\n <label\r\n style={{ color: theme.newChatFormTexts }}\r\n htmlFor=''\r\n className='file-input__label'\r\n >\r\n {label}\r\n </label>\r\n <div\r\n className='file-input__container'\r\n style={{\r\n backgroundColor: theme.inputBg,\r\n color: theme.newChatFormTexts,\r\n }}\r\n >\r\n <input\r\n className='file-input__input'\r\n type='file'\r\n id='docpicker'\r\n hidden\r\n accept='.jpg, .jpeg, .png, .pdf, .doc, .docx, .csv, .mp4'\r\n onChange={(event) => onChange(event)}\r\n />\r\n\r\n <h4>{t('inputFile.chooseFile')}</h4>\r\n <button\r\n className='file-input__button'\r\n type='button'\r\n onClick={onUpload}\r\n style={{\r\n background: theme?.buttonPrimary,\r\n color: theme?.buttonPrimaryText,\r\n }}\r\n >\r\n {t('inputFile.chooseFile')}\r\n </button>\r\n\r\n {loading ? (\r\n ''\r\n ) : (\r\n <p>\r\n {t('inputFile.allowDocuments')}(\r\n {t('inputFile.allowSizeDocument', { maxSize })})\r\n </p>\r\n )}\r\n </div>\r\n </div>\r\n\r\n <div>\r\n {fileList &&\r\n fileList.map((item) => (\r\n <div\r\n className='file-input__list'\r\n key={item.name}\r\n style={{\r\n backgroundColor: theme.inputBg,\r\n color: theme.newChatFormTexts,\r\n }}\r\n >\r\n <span className='file-input__list--file-name'>{item.name}</span>\r\n <button\r\n className='file-input__delete'\r\n onClick={() => removeItem(item)}\r\n >\r\n <TrashIcon color={theme.newChatFormDeleteFileButton || 'red'} />\r\n </button>\r\n </div>\r\n ))}\r\n </div>\r\n </>\r\n )\r\n}\r\n\r\nexport default InputFile\r\n","import React from 'react'\r\nimport useTheme from '../../hooks/useThemes'\r\ninterface IProps {\r\n options: {\r\n label: string\r\n value: string\r\n }[]\r\n label: string\r\n onChange: (value: string) => void\r\n name: string\r\n placeholder: string\r\n value: string\r\n}\r\n\r\nfunction SelectNew ({\r\n options,\r\n name,\r\n placeholder,\r\n label,\r\n onChange,\r\n value,\r\n}: IProps) {\r\n const { theme } = useTheme()\r\n return (\r\n <div className='form-select'>\r\n <label\r\n htmlFor={name}\r\n className='form-select__label'\r\n style={{ color: theme.newChatFormTexts }}\r\n >\r\n {label}\r\n </label>\r\n <select\r\n name={name}\r\n className='form-select__input'\r\n onChange={(e) => onChange(e.target.value)}\r\n value={value}\r\n style={{\r\n backgroundColor: theme.inputBg,\r\n color: theme.newChatFormTexts,\r\n }}\r\n >\r\n <option value='' disabled hidden>\r\n {placeholder}\r\n </option>\r\n {options.map((motivo) => (\r\n <option key={motivo.value} value={motivo.value}>\r\n {motivo.label}\r\n </option>\r\n ))}\r\n </select>\r\n </div>\r\n )\r\n}\r\n\r\nexport default SelectNew\r\n","import React from 'react'\r\nimport useTheme from '../../hooks/useThemes'\r\ninterface IProps {\r\n label: string\r\n onChange: (value: string) => void\r\n name: string\r\n placeholder: string\r\n}\r\n\r\nfunction Textarea ({ name, placeholder, label, onChange }: IProps) {\r\n const { theme } = useTheme()\r\n return (\r\n <div className='text-area'>\r\n <label\r\n htmlFor={name}\r\n className='text-area__label'\r\n style={{ color: theme.newChatFormTexts }}\r\n >\r\n {label}\r\n </label>\r\n <textarea\r\n style={{\r\n backgroundColor: theme.inputBg,\r\n color: theme.newChatFormTexts,\r\n }}\r\n name={name}\r\n placeholder={placeholder}\r\n className='text-area__input'\r\n onChange={(e) => onChange(e.target.value)}\r\n />\r\n </div>\r\n )\r\n}\r\n\r\nexport default Textarea\r\n","import React from 'react'\r\nimport useTheme from '../hooks/useThemes'\r\n\r\nexport default function CloseIcon () {\r\n const { theme } = useTheme()\r\n return (\r\n <svg\r\n width='21'\r\n height='21'\r\n viewBox='0 0 21 21'\r\n fill='none'\r\n xmlns='http://www.w3.org/2000/svg'\r\n >\r\n <path\r\n d='M13.4519 10.9583L20.435 3.9751C20.7664 3.64426 20.9529 3.19532 20.9533 2.72704C20.9537 2.25875 20.7681 1.80949 20.4372 1.47807C20.1064 1.14665 19.6574 0.960225 19.1892 0.959812C18.7209 0.959398 18.2716 1.14503 17.9402 1.47586L10.957 8.45902L3.97388 1.47586C3.64246 1.14444 3.19296 0.958252 2.72426 0.958252C2.25556 0.958252 1.80606 1.14444 1.47464 1.47586C1.14322 1.80728 0.957031 2.25678 0.957031 2.72548C0.957031 3.19418 1.14322 3.64368 1.47464 3.9751L8.4578 10.9583L1.47464 17.9414C1.14322 18.2728 0.957031 18.7223 0.957031 19.191C0.957031 19.6597 1.14322 20.1092 1.47464 20.4406C1.80606 20.7721 2.25556 20.9583 2.72426 20.9583C3.19296 20.9583 3.64246 20.7721 3.97388 20.4406L10.957 13.4575L17.9402 20.4406C18.2716 20.7721 18.7211 20.9583 19.1898 20.9583C19.6585 20.9583 20.108 20.7721 20.4394 20.4406C20.7708 20.1092 20.957 19.6597 20.957 19.191C20.957 18.7223 20.7708 18.2728 20.4394 17.9414L13.4519 10.9583Z'\r\n fill={theme.newChatFormTexts ?? '#476077'}\r\n />\r\n </svg>\r\n )\r\n}\r\n","import React, { FormEvent, useState } from 'react'\r\n\r\nimport InputFile from '../components/InputFile/InputFile'\r\nimport Select from '../components/Select/Select'\r\nimport Textarea from '../components/TextArea/TextArea'\r\nimport useTheme from '../hooks/useThemes'\r\nimport CloseIcon from '../icons/CloseIcon'\r\nimport { IOption } from 'types'\r\nimport { useTranslation } from 'react-i18next'\r\n\r\ninterface IProps {\r\n submitNewChat: (values: FormData) => void\r\n cancelNewChat: () => void\r\n reasons: Array<IOption>\r\n products: Array<IOption>\r\n loading: boolean\r\n maxFileSize: string\r\n loadingResources: boolean\r\n}\r\n\r\nfunction NewChatForm ({\r\n submitNewChat,\r\n cancelNewChat,\r\n reasons,\r\n products,\r\n loading,\r\n maxFileSize,\r\n loadingResources,\r\n}: IProps) {\r\n const [reason, setReason] = useState<string>(reasons?.[0]?.value)\r\n const [product, setProduct] = useState<string>(products?.[0]?.value)\r\n const [message, setMessage] = useState<string>()\r\n const [fileList, setFileList] = useState<File[]>([])\r\n const { t } = useTranslation('newFormChat')\r\n\r\n const { theme } = useTheme()\r\n\r\n const onSubmit = (event: FormEvent) => {\r\n const data2 = new FormData()\r\n event.preventDefault()\r\n\r\n fileList.forEach((file) => {\r\n data2.append(`documents`, file, file.name)\r\n })\r\n\r\n if (reason) data2.append('reason', reason)\r\n if (product) data2.append('product', product)\r\n\r\n if (message) data2.append('message', message)\r\n submitNewChat(data2)\r\n }\r\n\r\n const onUpdateFile = (file: File) => {\r\n setFileList((files) => [...files, file])\r\n }\r\n\r\n const onRemoveFile = (file: File) => {\r\n setFileList(fileList.filter((item: File) => item !== file))\r\n }\r\n\r\n return (\r\n <div\r\n className='messenger__new-chat-form'\r\n style={{\r\n backgroundColor: theme.newChatFormBg,\r\n borderRadius: theme.newChatFormRadius,\r\n }}\r\n >\r\n <div className='messenger__new-chat-form-header'>\r\n <h2 className='messenger__new-chat-form-title'>\r\n <b style={{ color: theme.newChatFormTexts }}>{t('newChat')}</b>\r\n </h2>\r\n\r\n <button\r\n onClick={cancelNewChat}\r\n className='messenger__new-chat-form-close'\r\n >\r\n <CloseIcon />\r\n </button>\r\n </div>\r\n\r\n <h3\r\n className='messenger__disclaimer'\r\n style={{\r\n borderColor: theme.disclaimerPrimaryColor,\r\n color: theme.disclaimerTextColor,\r\n backgroundColor: theme.disclaimerSecondaryColor,\r\n }}\r\n >\r\n {t('description.1')} <b>{t('description.1/2bold')}</b>{' '}\r\n {t('description.2')}\r\n </h3>\r\n\r\n <form onSubmit={onSubmit} className='messenger__new-chat-fields'>\r\n <Select\r\n onChange={(value) => setReason(value)}\r\n options={reasons}\r\n placeholder={t('fields.reasons.placeholder')}\r\n name='reasons'\r\n value={reason}\r\n label={t('fields.reasons.label')}\r\n />\r\n\r\n <Select\r\n onChange={(value) => setProduct(value)}\r\n options={products}\r\n placeholder={t('fields.product.placeholder')}\r\n value={product}\r\n name='product'\r\n label={t('fields.product.label')}\r\n />\r\n\r\n <InputFile\r\n fileList={fileList}\r\n onUpdateFile={onUpdateFile}\r\n onRemoveFile={onRemoveFile}\r\n label={t('fields.document.label')}\r\n maxSize={maxFileSize}\r\n loading={loadingResources}\r\n />\r\n\r\n <Textarea\r\n onChange={(value) => setMessage(value)}\r\n placeholder={t('fields.message.placeholder')}\r\n name='message'\r\n label={t('fields.message.label')}\r\n />\r\n\r\n <button\r\n className={`w-100 ${!loading ? 'messenger__new-chat-form-send' : 'messenger__new-chat-form-send messenger__new-chat-form-send--disabled'}`}\r\n disabled={loading}\r\n type='submit'\r\n style={{\r\n backgroundColor: !loading ? theme.buttonPrimary : '#ccc',\r\n color: theme.buttonPrimaryText,\r\n }}\r\n >\r\n {!loading ? t('buttons.send') : t('buttons.sendingButton')}\r\n </button>\r\n </form>\r\n </div>\r\n )\r\n}\r\n\r\nexport default NewChatForm\r\n","import React from 'react'\r\nimport useTheme from '../hooks/useThemes'\r\n\r\nexport default function AttachFileIcon ({ ...rest }) {\r\n const { theme } = useTheme()\r\n return (\r\n <svg\r\n width='26'\r\n height='28'\r\n viewBox='0 0 26 28'\r\n xmlns='http://www.w3.org/2000/svg'\r\n {...rest}\r\n >\r\n <path\r\n d='M22.5464 2.73571C19.1821 -0.628572 13.7036 -0.628572 10.3429 2.73571L1.02143 12.05C0.960715 12.1107 0.928572 12.1929 0.928572 12.2786C0.928572 12.3643 0.960715 12.4464 1.02143 12.5071L2.33929 13.825C2.39953 13.885 2.48107 13.9186 2.56607 13.9186C2.65108 13.9186 2.73262 13.885 2.79286 13.825L12.1143 4.51071C13.2714 3.35357 14.8107 2.71786 16.4464 2.71786C18.0821 2.71786 19.6214 3.35357 20.775 4.51071C21.9321 5.66786 22.5679 7.20714 22.5679 8.83929C22.5679 10.475 21.9321 12.0107 20.775 13.1679L11.275 22.6643L9.73572 24.2036C8.29643 25.6429 5.95714 25.6429 4.51786 24.2036C3.82143 23.5071 3.43929 22.5821 3.43929 21.5964C3.43929 20.6107 3.82143 19.6857 4.51786 18.9893L13.9429 9.56786C14.1821 9.33214 14.4964 9.2 14.8321 9.2H14.8357C15.1714 9.2 15.4821 9.33214 15.7179 9.56786C15.9571 9.80714 16.0857 10.1214 16.0857 10.4571C16.0857 10.7893 15.9536 11.1036 15.7179 11.3393L8.01429 19.0357C7.95357 19.0964 7.92143 19.1786 7.92143 19.2643C7.92143 19.35 7.95357 19.4321 8.01429 19.4929L9.33214 20.8107C9.39238 20.8707 9.47393 20.9044 9.55893 20.9044C9.64393 20.9044 9.72548 20.8707 9.78572 20.8107L17.4857 13.1107C18.1964 12.4 18.5857 11.4571 18.5857 10.4536C18.5857 9.45 18.1929 8.50357 17.4857 7.79643C16.0179 6.32857 13.6321 6.33214 12.1643 7.79643L11.25 8.71429L2.74286 17.2179C2.16547 17.7919 1.70778 18.4748 1.39634 19.227C1.0849 19.9793 0.925905 20.7858 0.928572 21.6C0.928572 23.2536 1.575 24.8071 2.74286 25.975C3.95357 27.1821 5.53929 27.7857 7.125 27.7857C8.71072 27.7857 10.2964 27.1821 11.5036 25.975L22.5464 14.9393C24.1714 13.3107 25.0714 11.1429 25.0714 8.83929C25.075 6.53214 24.175 4.36429 22.5464 2.73571Z'\r\n fill={theme.uploadFileIconColor}\r\n />\r\n </svg>\r\n )\r\n}\r\n","import React, { ReactNode } from 'react'\r\n\r\ninterface ToolTipProps {\r\n text: string\r\n children: ReactNode\r\n}\r\n\r\nconst ToolTip: React.FC<ToolTipProps> = ({ text, children }) => {\r\n return (\r\n <div className='tooltip'>\r\n {children}\r\n <div className='tooltip__text'>{text}</div>\r\n </div>\r\n )\r\n}\r\n\r\nexport default ToolTip\r\n","import useTheme from '../../hooks/useThemes'\r\nimport React, {\r\n Fragment,\r\n MutableRefObject,\r\n useMemo,\r\n useRef,\r\n useState,\r\n} from 'react'\r\nimport { IList } from 'types'\r\nimport AttachFileIcon from '../../../Messenger/icons/AttachFileIcon'\r\nimport rightArrow from '../../../../assets/right-arrow.svg'\r\nimport { SpinLoading } from '../../views/MessengerMessages'\r\nimport ToolTip from '../Tooltip/Tooltip'\r\nimport { useTranslation } from 'react-i18next'\r\n\r\ninterface IProps {\r\n allowImages: boolean\r\n current?: IList\r\n onSubmit: (value: FormData, callback: () => void) => void\r\n file?: File | null\r\n updateFile: (file: File | null) => void\r\n isLoading?: boolean\r\n maxFileSize: string\r\n}\r\n\r\nfunction AllowDocuments ({\r\n allowImages,\r\n attachFile,\r\n handleFile,\r\n closedChat,\r\n maxFileField,\r\n}: {\r\n allowImages: boolean\r\n attachFile: MutableRefObject<HTMLInputElement | null>\r\n handleFile: (e: React.ChangeEvent<HTMLInputElement>) => void\r\n closedChat: boolean\r\n maxFileField: string\r\n}) {\r\n const { t } = useTranslation('messengerMessages')\r\n\r\n if (allowImages) {\r\n return (\r\n <Fragment>\r\n <input\r\n type='file'\r\n size={1}\r\n className='messenger__messages-send--file'\r\n ref={attachFile}\r\n onChange={handleFile}\r\n accept='.jpg, .jpeg, .png, .pdf, .doc, .docx, .mp4, .csv'\r\n />\r\n\r\n <ToolTip text={t('sendMessageForm.maxFileField', { maxFileField })}>\r\n <AttachFileIcon\r\n className={`messenger__messages-send__attach ${closedChat ? 'messenger__messages-send__attach--disabled' : ''}`}\r\n onClick={() => (!closedChat ? attachFile.current?.click() : null)}\r\n />\r\n </ToolTip>\r\n </Fragment>\r\n )\r\n }\r\n\r\n return <></>\r\n}\r\n\r\nfunction SendMessageForm ({\r\n allowImages,\r\n current,\r\n onSubmit,\r\n file,\r\n updateFile,\r\n isLoading,\r\n maxFileSize,\r\n}: IProps) {\r\n const { t } = useTranslation('messengerMessages')\r\n const [formHeight, setFormHeight] = useState<number>(100)\r\n const [sending, setSending] = useState<boolean>(false)\r\n\r\n const inputRef: MutableRefObject<HTMLTextAreaElement | null> = useRef(null)\r\n const attachFile: MutableRefObject<HTMLInputElement | null> = useRef(null)\r\n\r\n const closedChat = useMemo(\r\n () => current?.status.current.state === 'final',\r\n [current]\r\n )\r\n\r\n const { theme } = useTheme()\r\n\r\n function correctTextAreaHeight (styleConfig: {\r\n height: number\r\n overflow: string\r\n }) {\r\n const textarea = inputRef.current\r\n if (textarea) {\r\n textarea.style.height = `${styleConfig.height}px`\r\n textarea.style.overflowY = styleConfig.overflow\r\n }\r\n }\r\n\r\n function resetHeights () {\r\n const inicialFormHeight = 100\r\n const inicialTextAreaHeight = 50\r\n setFormHeight(inicialFormHeight)\r\n correctTextAreaHeight({ height: inicialTextAreaHeight, overflow: 'hidden' })\r\n }\r\n\r\n function adjustFormHeight (textareaRef: typeof inputRef.current) {\r\n if (textareaRef) {\r\n const initialHeight = 50\r\n const maxHeight = 80\r\n const newHeight = textareaRef.scrollHeight\r\n\r\n if (newHeight > maxHeight) {\r\n correctTextAreaHeight({\r\n height: maxHeight,\r\n overflow: 'auto',\r\n })\r\n return maxHeight + initialHeight\r\n }\r\n\r\n correctTextAreaHeight({\r\n height: initialHeight,\r\n overflow: 'auto',\r\n })\r\n return initialHeight * 2\r\n }\r\n\r\n return formHeight\r\n }\r\n\r\n function handleTextareaChange () {\r\n const textarea = inputRef.current\r\n setFormHeight(adjustFormHeight(textarea))\r\n }\r\n\r\n function handleSubmit (e?: React.FormEvent<HTMLFormElement>) {\r\n e?.preventDefault()\r\n if (sending) return\r\n setSending(true)\r\n\r\n const data = new FormData()\r\n if (file) data.append('file', file)\r\n if (inputRef.current?.value) data.append('message', inputRef.current?.value)\r\n\r\n onSubmit(data, () => {\r\n if (inputRef.current) inputRef.current.value = ''\r\n if (file) updateFile(null)\r\n setSending(false)\r\n resetHeights()\r\n })\r\n }\r\n\r\n function handleFile (e: React.ChangeEvent<HTMLInputElement>) {\r\n if (e.target.files) {\r\n const file = e.target.files[0]\r\n const allowedTypes = [\r\n 'image/png',\r\n 'image/jpeg',\r\n 'application/pdf',\r\n 'application/msword',\r\n 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',\r\n 'text/csv',\r\n 'video/mp4',\r\n ]\r\n const allowedExtensions = [\r\n 'png',\r\n 'jpeg',\r\n 'jpg',\r\n 'pdf',\r\n 'doc',\r\n 'docx',\r\n 'csv',\r\n 'mp4',\r\n ]\r\n const fileType = file?.type\r\n const fileExtension = file?.name.split('.').pop()?.toLowerCase()\r\n const isAllowed = fileType\r\n ? allowedTypes.includes(fileType)\r\n : fileExtension\r\n ? allowedExtensions.includes(fileExtension)\r\n : false\r\n if (isAllowed) {\r\n updateFile(file)\r\n }\r\n }\r\n }\r\n\r\n return (\r\n <form\r\n onSubmit={handleSubmit}\r\n className='messenger__messages-send--form'\r\n style={{\r\n height: `${formHeight}px`,\r\n maxHeight: '150px',\r\n }}\r\n >\r\n <div className='messenger__messages-send__input-container'>\r\n <textarea\r\n onChange={handleTextareaChange}\r\n placeholder={\r\n closedChat\r\n ? t('sendMessageForm.chatEnded')\r\n : t('sendMessageForm.typeMessage')\r\n }\r\n ref={inputRef}\r\n onKeyDown={(e) => {\r\n if (e.key === 'Enter' && !e.shiftKey) {\r\n e.preventDefault()\r\n handleSubmit()\r\n }\r\n }}\r\n className={`messenger__messages-send__input ${closedChat || sending ? 'messenger__messages-send__input--disabled' : ''} `}\r\n disabled={closedChat || sending}\r\n style={{\r\n backgroundColor: theme?.inputBg,\r\n }}\r\n />\r\n\r\n <AllowDocuments\r\n allowImages={allowImages}\r\n handleFile={handleFile}\r\n attachFile={attachFile}\r\n closedChat={closedChat}\r\n maxFileField={maxFileSize}\r\n />\r\n </div>\r\n\r\n {isLoading ? (\r\n <div className='messenger__messages-sending'>\r\n <SpinLoading />\r\n </div>\r\n ) : (\r\n <button\r\n type='submit'\r\n className={`messenger__messages-send__button ${closedChat || sending ? 'messenger__messages-send__button--disabled' : ''}`}\r\n disabled={closedChat || sending}\r\n style={{\r\n backgroundColor: theme?.buttonPrimary,\r\n }}\r\n >\r\n <img\r\n alt={t('sendMessageForm.rightIcon')}\r\n height={25}\r\n width={25}\r\n className='ml-1'\r\n src={rightArrow}\r\n />\r\n </button>\r\n )}\r\n </form>\r\n )\r\n}\r\n\r\nexport default SendMessageForm\r\n","import React, {\r\n Fragment,\r\n useState,\r\n useRef,\r\n MutableRefObject,\r\n useEffect,\r\n} from 'react'\r\nimport ImagesContainer from '../components/ImagesContainer/ImagesContainer'\r\nimport MessageBalloon from '../components/MessageBallon/MessageBalloon'\r\n\r\nimport MessageIcon from '../icons/MessageIcon'\r\n\r\nimport { ICommonProps, IList, IMessages, IOption } from 'types'\r\nimport useTheme from '../hooks/useThemes'\r\n\r\nimport NewChatForm from './NewFormChat'\r\nimport EmptyIcon from '../icons/EmptyIcon'\r\nimport SendMessageForm from '../components/SendMessageForm/SendMessageForm'\r\nimport InfiniteScroll from '../components/InfiniteScroll/InfiniteScroll'\r\nimport { formatFileSize } from '../components/DocMessage/DocMessage'\r\nimport { useTranslation } from 'react-i18next'\r\n\r\ninterface IScrollableContainer {\r\n loading: boolean\r\n onIntersect: () => Promise<void>\r\n hasNext: boolean\r\n}\r\n\r\ntype MessengerView = 'empty' | 'messages' | 'newChat'\r\n\r\ninterface IMessengerMessages extends ICommonProps, IScrollableContainer {\r\n header: React.ReactElement\r\n current?: IList\r\n creatorId?: string\r\n allowImages: boolean\r\n tab?: 'list' | 'messages'\r\n messegerView: MessengerView\r\n className?: string\r\n messages: IMessages[]\r\n onSubmit: (value: FormData, callback: () => void) => Promise<void>\r\n cancelNewChat: () => void\r\n formatDate: (date: string | Date) => string | undefined\r\n reasons: Array<IOption>\r\n products: Array<IOption>\r\n submitNewChat: (values: FormData) => void\r\n newChatLoading: boolean\r\n maxFileSize: () => Promise<{ data: { data: { maxFileSize: number } } }>\r\n}\r\n\r\ninterface IMessengerForm {\r\n children: React.ReactNode\r\n messegerView: MessengerView\r\n reasons: Array<IOption>\r\n products: Array<IOption>\r\n submitNewChat: (values: FormData) => void\r\n cancelNewChat: () => void\r\n newChatLoading: boolean\r\n maxFileSize: string\r\n loadingResources: boolean\r\n}\r\n\r\nfunction MessagesContainerView ({\r\n children,\r\n messegerView,\r\n submitNewChat,\r\n cancelNewChat,\r\n reasons,\r\n products,\r\n newChatLoading,\r\n maxFileSize,\r\n loadingResources,\r\n}: IMessengerForm) {\r\n const { theme } = useTheme()\r\n const { t } = useTranslation('messengerMessages')\r\n\r\n if (messegerView === 'empty') {\r\n return (\r\n <div\r\n className='messenger__messages-container--empty'\r\n style={{ backgroundColor: theme?.messengerNotSelectedBg }}\r\n >\r\n <MessageIcon width='72' height='72' />\r\n <p>{t('selectConversation')}</p>\r\n </div>\r\n )\r\n }\r\n\r\n if (messegerView === 'newChat') {\r\n return (\r\n <NewChatForm\r\n reasons={reasons}\r\n products={products}\r\n submitNewChat={submitNewChat}\r\n cancelNewChat={cancelNewChat}\r\n loading={newChatLoading}\r\n maxFileSize={maxFileSize}\r\n loadingResources={loadingResources}\r\n />\r\n )\r\n }\r\n\r\n return <>{children}</>\r\n}\r\n\r\nexport function SpinLoading () {\r\n return (\r\n <div className='messenger__messages-loading'>\r\n <div className='messenger__messages-loading--loader' />\r\n </div>\r\n )\r\n}\r\n\r\nfunction Messages ({\r\n messages,\r\n creatorId,\r\n formatDate,\r\n loading,\r\n}: {\r\n messages: IMessages[]\r\n creatorId?: string\r\n formatDate: (date: string | Date) => string | undefined\r\n loading: boolean\r\n}) {\r\n const { theme } = useTheme()\r\n const { t } = useTranslation('messengerMessages')\r\n\r\n if (!messages || (messages.length === 0 && !loading)) {\r\n return (\r\n <div\r\n className='messenger__message-empty'\r\n style={{ color: theme.emptyMessagesFontColor }}\r\n >\r\n <EmptyIcon />\r\n <p>{t('noMessagesFound')}</p>\r\n </div>\r\n )\r\n }\r\n\r\n return (\r\n <>\r\n {messages.map((item, idx) => {\r\n return (\r\n <Fragment key={`${item.ticketId}_${item.senderId}_${idx}`}>\r\n <MessageBalloon\r\n id={`message_${idx}`}\r\n formatDate={formatDate}\r\n creatorId={creatorId}\r\n item={item}\r\n />\r\n </Fragment>\r\n )\r\n })}\r\n </>\r\n )\r\n}\r\n\r\nconst onScrollToBottom = (\r\n scrollContainer: MutableRefObject<HTMLDivElement | null>\r\n) => {\r\n if (scrollContainer.current) {\r\n scrollContainer.current.scrollTop = Number.MAX_SAFE_INTEGER\r\n }\r\n}\r\n\r\nfunction MessagesContainer ({\r\n children,\r\n fowardRef,\r\n ...rest\r\n}: {\r\n children: React.ReactNode\r\n fowardRef: MutableRefObject<HTMLDivElement | null>\r\n} & React.DetailedHTMLProps<\r\n React.HTMLAttributes<HTMLDivElement>,\r\n HTMLDivElement\r\n>) {\r\n const { theme } = useTheme()\r\n\r\n return (\r\n <div\r\n {...rest}\r\n ref={fowardRef}\r\n className='messenger__messages-container'\r\n style={{\r\n padding: '1rem',\r\n backgroundColor: theme?.messengerMessagesBg,\r\n border: `1px solid ${theme.borderColor}`,\r\n }}\r\n >\r\n {children}\r\n </div>\r\n )\r\n}\r\n\r\nfunction ScrollableContainer ({\r\n children,\r\n loading,\r\n onIntersect,\r\n hasNext,\r\n scrollContainerFowardRef,\r\n}: {\r\n children: React.ReactNode\r\n scrollContainerFowardRef: MutableRefObject<HTMLDivElement | null>\r\n} & IScrollableContainer) {\r\n const intersetRootMargin = 300\r\n\r\n const getElementScrollHeight = (divRef: HTMLDivElement | null) => {\r\n if (!divRef) return null\r\n return divRef.scrollHeight\r\n }\r\n\r\n const getElementScrollTop = (divRef: HTMLDivElement | null) => {\r\n if (!divRef) return null\r\n return divRef.scrollTop\r\n }\r\n\r\n const calculateScrollToDecrease = (\r\n elementBeforeIntersetHeight: number,\r\n elementAfterIntersectHeight: number,\r\n intersetRootMargin: number\r\n ) => {\r\n return (\r\n Math.abs(elementAfterIntersectHeight - elementBeforeIntersetHeight) +\r\n intersetRootMargin\r\n )\r\n }\r\n\r\n const isNill = (value: number | null | undefined) => {\r\n return value === null && value === undefined\r\n }\r\n\r\n const onFetchInfiniteScroll = async () => {\r\n const elementBeforeIntersetHeight = getElementScrollHeight(\r\n scrollContainerFowardRef.current\r\n )\r\n\r\n await onIntersect()\r\n\r\n const elementAfterIntersectHeight = getElementScrollHeight(\r\n scrollContainerFowardRef.current\r\n )\r\n\r\n if (\r\n scrollContainerFowardRef.current &&\r\n !isNill(elementBeforeIntersetHeight) &&\r\n !isNill(elementAfterIntersectHeight)\r\n ) {\r\n const currentScrollTop =\r\n getElementScrollTop(scrollContainerFowardRef.current) || 0\r\n scrollContainerFowardRef.current.scrollTop = calculateScrollToDecrease(\r\n elementAfterIntersectHeight as number,\r\n elementBeforeIntersetHeight as number,\r\n currentScrollTop\r\n )\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n onScrollToBottom(scrollContainerFowardRef)\r\n }, [])\r\n\r\n return (\r\n <MessagesContainer fowardRef={scrollContainerFowardRef}>\r\n <InfiniteScroll\r\n root={document.querySelector('.messenger__messages-container')}\r\n loading={loading}\r\n loadingCover={<SpinLoading />}\r\n more={hasNext}\r\n fetch={onFetchInfiniteScroll}\r\n rootMargin={intersetRootMargin}\r\n reverse\r\n >\r\n {children}\r\n </InfiniteScroll>\r\n </MessagesContainer>\r\n )\r\n}\r\n\r\nfunction MessengerMessages ({\r\n header,\r\n tab,\r\n className = '',\r\n current,\r\n messages,\r\n allowImages,\r\n creatorId,\r\n loading,\r\n onSubmit,\r\n submitNewChat,\r\n cancelNewChat,\r\n reasons,\r\n products,\r\n messegerView,\r\n formatDate,\r\n hasNext,\r\n onIntersect,\r\n newChatLoading,\r\n maxFileSize,\r\n}: IMessengerMessages) {\r\n const { t } = useTranslation('messengerMessages')\r\n const [file, setFile] = useState<File | null>()\r\n const scrollContainerRef = useRef<HTMLDivElement | null>(null)\r\n const [isSending, setIsSending] = useState(false)\r\n const [maxSize, setMaxSize] = useState<string>('')\r\n\r\n const { theme } = useTheme()\r\n\r\n const styleClassnames = {\r\n mobile: tab === 'list' ? 'messenger__mobile-hide' : '',\r\n }\r\n\r\n const updateFile = (file: File | null) => {\r\n setFile(file)\r\n }\r\n\r\n const onSubmitNewMessage = async (\r\n message: FormData,\r\n callback: () => void\r\n ) => {\r\n setIsSending(true)\r\n try {\r\n await onSubmit(message, callback)\r\n onScrollToBottom(scrollContainerRef)\r\n } finally {\r\n setIsSending(false)\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n const fetchMaxFileSize = async () => {\r\n try {\r\n const response = await maxFileSize()\r\n const size = formatFileSize(response.data.data.maxFileSize)\r\n setMaxSize(size)\r\n } catch (error) {\r\n console.error(t('errorSearchingMaxFileSize'), error)\r\n }\r\n }\r\n\r\n fetchMaxFileSize()\r\n }, [maxSize])\r\n\r\n return (\r\n <div\r\n className={`messenger__messages ${className} ${styleClassnames.mobile} `}\r\n >\r\n <MessagesContainerView\r\n newChatLoading={newChatLoading}\r\n reasons={reasons}\r\n products={products}\r\n submitNewChat={submitNewChat}\r\n cancelNewChat={cancelNewChat}\r\n messegerView={messegerView}\r\n maxFileSize={maxSize}\r\n loadingResources={loading}\r\n >\r\n {file ? (\r\n <ImagesContainer file={file} onClose={() => setFile(null)} />\r\n ) : (\r\n <>\r\n <div\r\n className='messenger__messages-header'\r\n style={{\r\n backgroundColor: theme?.headerAndSenderBg,\r\n border: `1px solid ${theme.borderColor}`,\r\n }}\r\n >\r\n {React.cloneElement(header)}\r\n </div>\r\n\r\n {loading && !messages.length ? (\r\n <MessagesContainer fowardRef={scrollContainerRef}>\r\n <SpinLoading />\r\n </MessagesContainer>\r\n ) : (\r\n <ScrollableContainer\r\n scrollContainerFowardRef={scrollContainerRef}\r\n loading={loading}\r\n hasNext={hasNext}\r\n onIntersect={onIntersect}\r\n >\r\n <Messages\r\n formatDate={formatDate}\r\n messages={messages}\r\n creatorId={creatorId}\r\n loading={loading}\r\n />\r\n </ScrollableContainer>\r\n )}\r\n </>\r\n )}\r\n\r\n <div\r\n className='messenger__messages-send'\r\n style={{\r\n backgroundColor: theme?.headerAndSenderBg,\r\n border: `1px solid ${theme.borderColor}`,\r\n }}\r\n >\r\n <SendMessageForm\r\n allowImages={allowImages}\r\n onSubmit={onSubmitNewMessage}\r\n file={file}\r\n updateFile={updateFile}\r\n current={current}\r\n isLoading={isSending}\r\n maxFileSize={maxSize}\r\n />\r\n </div>\r\n </MessagesContainerView>\r\n </div>\r\n )\r\n}\r\n\r\nexport default MessengerMessages\r\n","import { useState } from 'react'\r\nimport { IList } from 'types'\r\n\r\ntype _viewDesktop = 'empty' | 'messages' | 'newChat'\r\ntype _viewMobile = 'list' | 'messages'\r\n\r\nexport const useConversations = () => {\r\n const SLICE = 15\r\n const [sliceCount, setSliceCount] = useState(SLICE)\r\n const [conversations, setConversations] = useState<IList[]>([])\r\n const [currentChat, setCurrentChat] = useState<IList>()\r\n const [viewDesktop, setViewDesktop] = useState<_viewDesktop>('empty')\r\n const [viewMobile, setViewMobile] = useState<'list' | 'messages'>('list')\r\n\r\n const changeViewDesktop = (view: _viewDesktop) => {\r\n setViewDesktop(view)\r\n }\r\n\r\n const changeViewMobile = (view: _viewMobile) => {\r\n setViewMobile(view)\r\n }\r\n\r\n const selectChat = (chat: IList) => {\r\n setCurrentChat(chat)\r\n }\r\n\r\n const onIntersect = () => {\r\n setSliceCount((prev) => {\r\n const count = prev + SLICE\r\n return count\r\n })\r\n }\r\n\r\n const hasNext = () => {\r\n return conversations.length >= sliceCount\r\n }\r\n\r\n const resetConversations = () => {\r\n setConversations([])\r\n }\r\n\r\n const mapConversationsUnread = (prev: IList[]) => (id: string) => {\r\n return (prev || []).map((conversation) => {\r\n if (conversation?._id === id) {\r\n return {\r\n ...conversation,\r\n totalUnreadMessages: 0,\r\n }\r\n }\r\n\r\n return conversation\r\n })\r\n }\r\n\r\n const reorderConversations = (conversations: IList[], ticketId?: string) => {\r\n const index = conversations.findIndex(\r\n (conversation) => conversation._id === ticketId\r\n )\r\n if (index !== -1) {\r\n const conversationToMove = conversations.splice(index, 1)[0]\r\n conversations.unshift(conversationToMove)\r\n }\r\n }\r\n\r\n const mapConversationsIncrementUnread =\r\n (prev: IList[], ticketId?: string) => (id: string) => {\r\n const updatedConversations = (prev || []).map((conversation) => {\r\n if (conversation._id === id) {\r\n return {\r\n ...conversation,\r\n totalUnreadMessages:\r\n ticketId === id ? 0 : conversation.totalUnreadMessages + 1,\r\n }\r\n }\r\n return conversation\r\n })\r\n\r\n reorderConversations(updatedConversations, ticketId)\r\n\r\n return updatedConversations\r\n }\r\n\r\n const setAsRead = (id: string) => {\r\n setConversations((prev) => mapConversationsUnread(prev)(id))\r\n }\r\n\r\n const addConversations = (\r\n conversations: IList[],\r\n goToNewConversation?: (chat: IList) => void\r\n ) => {\r\n setConversations(conversations)\r\n\r\n if (goToNewConversation) goToNewConversation(conversations[0])\r\n }\r\n\r\n const addOneUnreadToTicket = (ticketId: string, currentChat?: string) => {\r\n setConversations((prev) => {\r\n return mapConversationsIncrementUnread(prev, currentChat)(ticketId)\r\n })\r\n }\r\n\r\n const removeClosedConversation = (ticketId: string) => {\r\n const filtred = conversations.filter(\r\n (conversation) => conversation._id !== ticketId\r\n )\r\n addConversations(filtred)\r\n }\r\n\r\n const closeIfIsCurrent = (ticketId: string) => {\r\n if (ticketId === currentChat?._id) {\r\n changeViewDesktop('empty')\r\n changeViewMobile('list')\r\n }\r\n }\r\n\r\n const onCloseChat = (ticketId: string) => {\r\n removeClosedConversation(ticketId)\r\n closeIfIsCurrent(ticketId)\r\n }\r\n\r\n const reset = () => {\r\n setSliceCount(SLICE)\r\n resetConversations()\r\n }\r\n\r\n return {\r\n onIntersect,\r\n reset,\r\n conversations,\r\n hasNext,\r\n addConversations,\r\n addOneUnreadToTicket,\r\n setAsRead,\r\n sliceCount,\r\n currentChat,\r\n selectChat,\r\n onCloseChat,\r\n changeViewDesktop,\r\n viewDesktop,\r\n changeViewMobile,\r\n viewMobile,\r\n }\r\n}\r\n","import { useState } from 'react'\r\nimport { IMessages, ISocketMessage } from 'types'\r\n\r\nexport const useMessages = () => {\r\n const [messages, setMessages] = useState<IMessages[]>([])\r\n const [totalMessages, setTotalMessages] = useState<number>(0)\r\n\r\n const addMessages = (messages: IMessages[]) => {\r\n setMessages(messages)\r\n }\r\n const addTotalMessages = (total: number) => {\r\n setTotalMessages(total)\r\n }\r\n\r\n const incrementMessages = (ticket: ISocketMessage, currentChatId: string) => {\r\n const existentMessage = messages.find(\r\n (item) => item.messagecode === ticket.message.messagecode\r\n )\r\n if (ticket.message.ticketId === currentChatId && !existentMessage) {\r\n addMessages([...messages, ticket.message])\r\n }\r\n }\r\n\r\n const updateMesssagesAsRead = (\r\n ticket: ISocketMessage,\r\n currentChatId: string\r\n ) => {\r\n if (ticket.markAsRead || currentChatId === ticket?.message?.ticketId) {\r\n const readMessages = messages.map((message) => ({\r\n ...message,\r\n everybodyHasRead: true,\r\n }))\r\n addMessages(readMessages)\r\n }\r\n }\r\n\r\n const hasOlderMessages = () => {\r\n return messages.length > 9 && messages.length < totalMessages\r\n }\r\n\r\n return {\r\n addMessages,\r\n messages,\r\n incrementMessages,\r\n updateMesssagesAsRead,\r\n addTotalMessages,\r\n hasOlderMessages,\r\n }\r\n}\r\n","const isString = obj => typeof obj === 'string';\nconst defer = () => {\n let res;\n let rej;\n const promise = new Promise((resolve, reject) => {\n res = resolve;\n rej = reject;\n });\n promise.resolve = res;\n promise.reject = rej;\n return promise;\n};\nconst makeString = object => {\n if (object == null) return '';\n return '' + object;\n};\nconst copy = (a, s, t) => {\n a.forEach(m => {\n if (s[m]) t[m] = s[m];\n });\n};\nconst lastOfPathSeparatorRegExp = /###/g;\nconst cleanKey = key => key && key.indexOf('###') > -1 ? key.replace(lastOfPathSeparatorRegExp, '.') : key;\nconst canNotTraverseDeeper = object => !object || isString(object);\nconst getLastOfPath = (object, path, Empty) => {\n const stack = !isString(path) ? path : path.split('.');\n let stackIndex = 0;\n while (stackIndex < stack.length - 1) {\n if (canNotTraverseDeeper(object)) return {};\n const key = cleanKey(stack[stackIndex]);\n if (!object[key] && Empty) object[key] = new Empty();\n if (Object.prototype.hasOwnProperty.call(object, key)) {\n object = object[key];\n } else {\n object = {};\n }\n ++stackIndex;\n }\n if (canNotTraverseDeeper(object)) return {};\n return {\n obj: object,\n k: cleanKey(stack[stackIndex])\n };\n};\nconst setPath = (object, path, newValue) => {\n const {\n obj,\n k\n } = getLastOfPath(object, path, Object);\n if (obj !== undefined || path.length === 1) {\n obj[k] = newValue;\n return;\n }\n let e = path[path.length - 1];\n let p = path.slice(0, path.length - 1);\n let last = getLastOfPath(object, p, Object);\n while (last.obj === undefined && p.length) {\n e = `${p[p.length - 1]}.${e}`;\n p = p.slice(0, p.length - 1);\n last = getLastOfPath(object, p, Object);\n if (last?.obj && typeof last.obj[`${last.k}.${e}`] !== 'undefined') {\n last.obj = undefined;\n }\n }\n last.obj[`${last.k}.${e}`] = newValue;\n};\nconst pushPath = (object, path, newValue, concat) => {\n const {\n obj,\n k\n } = getLastOfPath(object, path, Object);\n obj[k] = obj[k] || [];\n obj[k].push(newValue);\n};\nconst getPath = (object, path) => {\n const {\n obj,\n k\n } = getLastOfPath(object, path);\n if (!obj) return undefined;\n if (!Object.prototype.hasOwnProperty.call(obj, k)) return undefined;\n return obj[k];\n};\nconst getPathWithDefaults = (data, defaultData, key) => {\n const value = getPath(data, key);\n if (value !== undefined) {\n return value;\n }\n return getPath(defaultData, key);\n};\nconst deepExtend = (target, source, overwrite) => {\n for (const prop in source) {\n if (prop !== '__proto__' && prop !== 'constructor') {\n if (prop in target) {\n if (isString(target[prop]) || target[prop] instanceof String || isString(source[prop]) || source[prop] instanceof String) {\n if (overwrite) target[prop] = source[prop];\n } else {\n deepExtend(target[prop], source[prop], overwrite);\n }\n } else {\n target[prop] = source[prop];\n }\n }\n }\n return target;\n};\nconst regexEscape = str => str.replace(/[\\-\\[\\]\\/\\{\\}\\(\\)\\*\\+\\?\\.\\\\\\^\\$\\|]/g, '\\\\$&');\nvar _entityMap = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": ''',\n '/': '/'\n};\nconst escape = data => {\n if (isString(data)) {\n return data.replace(/[&<>\"'\\/]/g, s => _entityMap[s]);\n }\n return data;\n};\nclass RegExpCache {\n constructor(capacity) {\n this.capacity = capacity;\n this.regExpMap = new Map();\n this.regExpQueue = [];\n }\n getRegExp(pattern) {\n const regExpFromCache = this.regExpMap.get(pattern);\n if (regExpFromCache !== undefined) {\n return regExpFromCache;\n }\n const regExpNew = new RegExp(pattern);\n if (this.regExpQueue.length === this.capacity) {\n this.regExpMap.delete(this.regExpQueue.shift());\n }\n this.regExpMap.set(pattern, regExpNew);\n this.regExpQueue.push(pattern);\n return regExpNew;\n }\n}\nconst chars = [' ', ',', '?', '!', ';'];\nconst looksLikeObjectPathRegExpCache = new RegExpCache(20);\nconst looksLikeObjectPath = (key, nsSeparator, keySeparator) => {\n nsSeparator = nsSeparator || '';\n keySeparator = keySeparator || '';\n const possibleChars = chars.filter(c => nsSeparator.indexOf(c) < 0 && keySeparator.indexOf(c) < 0);\n if (possibleChars.length === 0) return true;\n const r = looksLikeObjectPathRegExpCache.getRegExp(`(${possibleChars.map(c => c === '?' ? '\\\\?' : c).join('|')})`);\n let matched = !r.test(key);\n if (!matched) {\n const ki = key.indexOf(keySeparator);\n if (ki > 0 && !r.test(key.substring(0, ki))) {\n matched = true;\n }\n }\n return matched;\n};\nconst deepFind = (obj, path, keySeparator = '.') => {\n if (!obj) return undefined;\n if (obj[path]) {\n if (!Object.prototype.hasOwnProperty.call(obj, path)) return undefined;\n return obj[path];\n }\n const tokens = path.split(keySeparator);\n let current = obj;\n for (let i = 0; i < tokens.length;) {\n if (!current || typeof current !== 'object') {\n return undefined;\n }\n let next;\n let nextPath = '';\n for (let j = i; j < tokens.length; ++j) {\n if (j !== i) {\n nextPath += keySeparator;\n }\n nextPath += tokens[j];\n next = current[nextPath];\n if (next !== undefined) {\n if (['string', 'number', 'boolean'].indexOf(typeof next) > -1 && j < tokens.length - 1) {\n continue;\n }\n i += j - i + 1;\n break;\n }\n }\n current = next;\n }\n return current;\n};\nconst getCleanedCode = code => code?.replace('_', '-');\n\nconst consoleLogger = {\n type: 'logger',\n log(args) {\n this.output('log', args);\n },\n warn(args) {\n this.output('warn', args);\n },\n error(args) {\n this.output('error', args);\n },\n output(type, args) {\n console?.[type]?.apply?.(console, args);\n }\n};\nclass Logger {\n constructor(concreteLogger, options = {}) {\n this.init(concreteLogger, options);\n }\n init(concreteLogger, options = {}) {\n this.prefix = options.prefix || 'i18next:';\n this.logger = concreteLogger || consoleLogger;\n this.options = options;\n this.debug = options.debug;\n }\n log(...args) {\n return this.forward(args, 'log', '', true);\n }\n warn(...args) {\n return this.forward(args, 'warn', '', true);\n }\n error(...args) {\n return this.forward(args, 'error', '');\n }\n deprecate(...args) {\n return this.forward(args, 'warn', 'WARNING DEPRECATED: ', true);\n }\n forward(args, lvl, prefix, debugOnly) {\n if (debugOnly && !this.debug) return null;\n if (isString(args[0])) args[0] = `${prefix}${this.prefix} ${args[0]}`;\n return this.logger[lvl](args);\n }\n create(moduleName) {\n return new Logger(this.logger, {\n ...{\n prefix: `${this.prefix}:${moduleName}:`\n },\n ...this.options\n });\n }\n clone(options) {\n options = options || this.options;\n options.prefix = options.prefix || this.prefix;\n return new Logger(this.logger, options);\n }\n}\nvar baseLogger = new Logger();\n\nclass EventEmitter {\n constructor() {\n this.observers = {};\n }\n on(events, listener) {\n events.split(' ').forEach(event => {\n if (!this.observers[event]) this.observers[event] = new Map();\n const numListeners = this.observers[event].get(listener) || 0;\n this.observers[event].set(listener, numListeners + 1);\n });\n return this;\n }\n off(event, listener) {\n if (!this.observers[event]) return;\n if (!listener) {\n delete this.observers[event];\n return;\n }\n this.observers[event].delete(listener);\n }\n emit(event, ...args) {\n if (this.observers[event]) {\n const cloned = Array.from(this.observers[event].entries());\n cloned.forEach(([observer, numTimesAdded]) => {\n for (let i = 0; i < numTimesAdded; i++) {\n observer(...args);\n }\n });\n }\n if (this.observers['*']) {\n const cloned = Array.from(this.observers['*'].entries());\n cloned.forEach(([observer, numTimesAdded]) => {\n for (let i = 0; i < numTimesAdded; i++) {\n observer.apply(observer, [event, ...args]);\n }\n });\n }\n }\n}\n\nclass ResourceStore extends EventEmitter {\n constructor(data, options = {\n ns: ['translation'],\n defaultNS: 'translation'\n }) {\n super();\n this.data = data || {};\n this.options = options;\n if (this.options.keySeparator === undefined) {\n this.options.keySeparator = '.';\n }\n if (this.options.ignoreJSONStructure === undefined) {\n this.options.ignoreJSONStructure = true;\n }\n }\n addNamespaces(ns) {\n if (this.options.ns.indexOf(ns) < 0) {\n this.options.ns.push(ns);\n }\n }\n removeNamespaces(ns) {\n const index = this.options.ns.indexOf(ns);\n if (index > -1) {\n this.options.ns.splice(index, 1);\n }\n }\n getResource(lng, ns, key, options = {}) {\n const keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n const ignoreJSONStructure = options.ignoreJSONStructure !== undefined ? options.ignoreJSONStructure : this.options.ignoreJSONStructure;\n let path;\n if (lng.indexOf('.') > -1) {\n path = lng.split('.');\n } else {\n path = [lng, ns];\n if (key) {\n if (Array.isArray(key)) {\n path.push(...key);\n } else if (isString(key) && keySeparator) {\n path.push(...key.split(keySeparator));\n } else {\n path.push(key);\n }\n }\n }\n const result = getPath(this.data, path);\n if (!result && !ns && !key && lng.indexOf('.') > -1) {\n lng = path[0];\n ns = path[1];\n key = path.slice(2).join('.');\n }\n if (result || !ignoreJSONStructure || !isString(key)) return result;\n return deepFind(this.data?.[lng]?.[ns], key, keySeparator);\n }\n addResource(lng, ns, key, value, options = {\n silent: false\n }) {\n const keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n let path = [lng, ns];\n if (key) path = path.concat(keySeparator ? key.split(keySeparator) : key);\n if (lng.indexOf('.') > -1) {\n path = lng.split('.');\n value = ns;\n ns = path[1];\n }\n this.addNamespaces(ns);\n setPath(this.data, path, value);\n if (!options.silent) this.emit('added', lng, ns, key, value);\n }\n addResources(lng, ns, resources, options = {\n silent: false\n }) {\n for (const m in resources) {\n if (isString(resources[m]) || Array.isArray(resources[m])) this.addResource(lng, ns, m, resources[m], {\n silent: true\n });\n }\n if (!options.silent) this.emit('added', lng, ns, resources);\n }\n addResourceBundle(lng, ns, resources, deep, overwrite, options = {\n silent: false,\n skipCopy: false\n }) {\n let path = [lng, ns];\n if (lng.indexOf('.') > -1) {\n path = lng.split('.');\n deep = resources;\n resources = ns;\n ns = path[1];\n }\n this.addNamespaces(ns);\n let pack = getPath(this.data, path) || {};\n if (!options.skipCopy) resources = JSON.parse(JSON.stringify(resources));\n if (deep) {\n deepExtend(pack, resources, overwrite);\n } else {\n pack = {\n ...pack,\n ...resources\n };\n }\n setPath(this.data, path, pack);\n if (!options.silent) this.emit('added', lng, ns, resources);\n }\n removeResourceBundle(lng, ns) {\n if (this.hasResourceBundle(lng, ns)) {\n delete this.data[lng][ns];\n }\n this.removeNamespaces(ns);\n this.emit('removed', lng, ns);\n }\n hasResourceBundle(lng, ns) {\n return this.getResource(lng, ns) !== undefined;\n }\n getResourceBundle(lng, ns) {\n if (!ns) ns = this.options.defaultNS;\n return this.getResource(lng, ns);\n }\n getDataByLanguage(lng) {\n return this.data[lng];\n }\n hasLanguageSomeTranslations(lng) {\n const data = this.getDataByLanguage(lng);\n const n = data && Object.keys(data) || [];\n return !!n.find(v => data[v] && Object.keys(data[v]).length > 0);\n }\n toJSON() {\n return this.data;\n }\n}\n\nvar postProcessor = {\n processors: {},\n addPostProcessor(module) {\n this.processors[module.name] = module;\n },\n handle(processors, value, key, options, translator) {\n processors.forEach(processor => {\n value = this.processors[processor]?.process(value, key, options, translator) ?? value;\n });\n return value;\n }\n};\n\nconst PATH_KEY = Symbol('i18next/PATH_KEY');\nfunction createProxy() {\n const state = [];\n const handler = Object.create(null);\n let proxy;\n handler.get = (target, key) => {\n proxy?.revoke?.();\n if (key === PATH_KEY) return state;\n state.push(key);\n proxy = Proxy.revocable(target, handler);\n return proxy.proxy;\n };\n return Proxy.revocable(Object.create(null), handler).proxy;\n}\nfunction keysFromSelector(selector, opts) {\n const {\n [PATH_KEY]: path\n } = selector(createProxy());\n return path.join(opts?.keySeparator ?? '.');\n}\n\nconst checkedLoadedFor = {};\nconst shouldHandleAsObject = res => !isString(res) && typeof res !== 'boolean' && typeof res !== 'number';\nclass Translator extends EventEmitter {\n constructor(services, options = {}) {\n super();\n copy(['resourceStore', 'languageUtils', 'pluralResolver', 'interpolator', 'backendConnector', 'i18nFormat', 'utils'], services, this);\n this.options = options;\n if (this.options.keySeparator === undefined) {\n this.options.keySeparator = '.';\n }\n this.logger = baseLogger.create('translator');\n }\n changeLanguage(lng) {\n if (lng) this.language = lng;\n }\n exists(key, o = {\n interpolation: {}\n }) {\n const opt = {\n ...o\n };\n if (key == null) return false;\n const resolved = this.resolve(key, opt);\n return resolved?.res !== undefined;\n }\n extractFromKey(key, opt) {\n let nsSeparator = opt.nsSeparator !== undefined ? opt.nsSeparator : this.options.nsSeparator;\n if (nsSeparator === undefined) nsSeparator = ':';\n const keySeparator = opt.keySeparator !== undefined ? opt.keySeparator : this.options.keySeparator;\n let namespaces = opt.ns || this.options.defaultNS || [];\n const wouldCheckForNsInKey = nsSeparator && key.indexOf(nsSeparator) > -1;\n const seemsNaturalLanguage = !this.options.userDefinedKeySeparator && !opt.keySeparator && !this.options.userDefinedNsSeparator && !opt.nsSeparator && !looksLikeObjectPath(key, nsSeparator, keySeparator);\n if (wouldCheckForNsInKey && !seemsNaturalLanguage) {\n const m = key.match(this.interpolator.nestingRegexp);\n if (m && m.length > 0) {\n return {\n key,\n namespaces: isString(namespaces) ? [namespaces] : namespaces\n };\n }\n const parts = key.split(nsSeparator);\n if (nsSeparator !== keySeparator || nsSeparator === keySeparator && this.options.ns.indexOf(parts[0]) > -1) namespaces = parts.shift();\n key = parts.join(keySeparator);\n }\n return {\n key,\n namespaces: isString(namespaces) ? [namespaces] : namespaces\n };\n }\n translate(keys, o, lastKey) {\n let opt = typeof o === 'object' ? {\n ...o\n } : o;\n if (typeof opt !== 'object' && this.options.overloadTranslationOptionHandler) {\n opt = this.options.overloadTranslationOptionHandler(arguments);\n }\n if (typeof opt === 'object') opt = {\n ...opt\n };\n if (!opt) opt = {};\n if (keys == null) return '';\n if (typeof keys === 'function') keys = keysFromSelector(keys, {\n ...this.options,\n ...opt\n });\n if (!Array.isArray(keys)) keys = [String(keys)];\n const returnDetails = opt.returnDetails !== undefined ? opt.returnDetails : this.options.returnDetails;\n const keySeparator = opt.keySeparator !== undefined ? opt.keySeparator : this.options.keySeparator;\n const {\n key,\n namespaces\n } = this.extractFromKey(keys[keys.length - 1], opt);\n const namespace = namespaces[namespaces.length - 1];\n let nsSeparator = opt.nsSeparator !== undefined ? opt.nsSeparator : this.options.nsSeparator;\n if (nsSeparator === undefined) nsSeparator = ':';\n const lng = opt.lng || this.language;\n const appendNamespaceToCIMode = opt.appendNamespaceToCIMode || this.options.appendNamespaceToCIMode;\n if (lng?.toLowerCase() === 'cimode') {\n if (appendNamespaceToCIMode) {\n if (returnDetails) {\n return {\n res: `${namespace}${nsSeparator}${key}`,\n usedKey: key,\n exactUsedKey: key,\n usedLng: lng,\n usedNS: namespace,\n usedParams: this.getUsedParamsDetails(opt)\n };\n }\n return `${namespace}${nsSeparator}${key}`;\n }\n if (returnDetails) {\n return {\n res: key,\n usedKey: key,\n exactUsedKey: key,\n usedLng: lng,\n usedNS: namespace,\n usedParams: this.getUsedParamsDetails(opt)\n };\n }\n return key;\n }\n const resolved = this.resolve(keys, opt);\n let res = resolved?.res;\n const resUsedKey = resolved?.usedKey || key;\n const resExactUsedKey = resolved?.exactUsedKey || key;\n const noObject = ['[object Number]', '[object Function]', '[object RegExp]'];\n const joinArrays = opt.joinArrays !== undefined ? opt.joinArrays : this.options.joinArrays;\n const handleAsObjectInI18nFormat = !this.i18nFormat || this.i18nFormat.handleAsObject;\n const needsPluralHandling = opt.count !== undefined && !isString(opt.count);\n const hasDefaultValue = Translator.hasDefaultValue(opt);\n const defaultValueSuffix = needsPluralHandling ? this.pluralResolver.getSuffix(lng, opt.count, opt) : '';\n const defaultValueSuffixOrdinalFallback = opt.ordinal && needsPluralHandling ? this.pluralResolver.getSuffix(lng, opt.count, {\n ordinal: false\n }) : '';\n const needsZeroSuffixLookup = needsPluralHandling && !opt.ordinal && opt.count === 0;\n const defaultValue = needsZeroSuffixLookup && opt[`defaultValue${this.options.pluralSeparator}zero`] || opt[`defaultValue${defaultValueSuffix}`] || opt[`defaultValue${defaultValueSuffixOrdinalFallback}`] || opt.defaultValue;\n let resForObjHndl = res;\n if (handleAsObjectInI18nFormat && !res && hasDefaultValue) {\n resForObjHndl = defaultValue;\n }\n const handleAsObject = shouldHandleAsObject(resForObjHndl);\n const resType = Object.prototype.toString.apply(resForObjHndl);\n if (handleAsObjectInI18nFormat && resForObjHndl && handleAsObject && noObject.indexOf(resType) < 0 && !(isString(joinArrays) && Array.isArray(resForObjHndl))) {\n if (!opt.returnObjects && !this.options.returnObjects) {\n if (!this.options.returnedObjectHandler) {\n this.logger.warn('accessing an object - but returnObjects options is not enabled!');\n }\n const r = this.options.returnedObjectHandler ? this.options.returnedObjectHandler(resUsedKey, resForObjHndl, {\n ...opt,\n ns: namespaces\n }) : `key '${key} (${this.language})' returned an object instead of string.`;\n if (returnDetails) {\n resolved.res = r;\n resolved.usedParams = this.getUsedParamsDetails(opt);\n return resolved;\n }\n return r;\n }\n if (keySeparator) {\n const resTypeIsArray = Array.isArray(resForObjHndl);\n const copy = resTypeIsArray ? [] : {};\n const newKeyToUse = resTypeIsArray ? resExactUsedKey : resUsedKey;\n for (const m in resForObjHndl) {\n if (Object.prototype.hasOwnProperty.call(resForObjHndl, m)) {\n const deepKey = `${newKeyToUse}${keySeparator}${m}`;\n if (hasDefaultValue && !res) {\n copy[m] = this.translate(deepKey, {\n ...opt,\n defaultValue: shouldHandleAsObject(defaultValue) ? defaultValue[m] : undefined,\n ...{\n joinArrays: false,\n ns: namespaces\n }\n });\n } else {\n copy[m] = this.translate(deepKey, {\n ...opt,\n ...{\n joinArrays: false,\n ns: namespaces\n }\n });\n }\n if (copy[m] === deepKey) copy[m] = resForObjHndl[m];\n }\n }\n res = copy;\n }\n } else if (handleAsObjectInI18nFormat && isString(joinArrays) && Array.isArray(res)) {\n res = res.join(joinArrays);\n if (res) res = this.extendTranslation(res, keys, opt, lastKey);\n } else {\n let usedDefault = false;\n let usedKey = false;\n if (!this.isValidLookup(res) && hasDefaultValue) {\n usedDefault = true;\n res = defaultValue;\n }\n if (!this.isValidLookup(res)) {\n usedKey = true;\n res = key;\n }\n const missingKeyNoValueFallbackToKey = opt.missingKeyNoValueFallbackToKey || this.options.missingKeyNoValueFallbackToKey;\n const resForMissing = missingKeyNoValueFallbackToKey && usedKey ? undefined : res;\n const updateMissing = hasDefaultValue && defaultValue !== res && this.options.updateMissing;\n if (usedKey || usedDefault || updateMissing) {\n this.logger.log(updateMissing ? 'updateKey' : 'missingKey', lng, namespace, key, updateMissing ? defaultValue : res);\n if (keySeparator) {\n const fk = this.resolve(key, {\n ...opt,\n keySeparator: false\n });\n if (fk && fk.res) this.logger.warn('Seems the loaded translations were in flat JSON format instead of nested. Either set keySeparator: false on init or make sure your translations are published in nested format.');\n }\n let lngs = [];\n const fallbackLngs = this.languageUtils.getFallbackCodes(this.options.fallbackLng, opt.lng || this.language);\n if (this.options.saveMissingTo === 'fallback' && fallbackLngs && fallbackLngs[0]) {\n for (let i = 0; i < fallbackLngs.length; i++) {\n lngs.push(fallbackLngs[i]);\n }\n } else if (this.options.saveMissingTo === 'all') {\n lngs = this.languageUtils.toResolveHierarchy(opt.lng || this.language);\n } else {\n lngs.push(opt.lng || this.language);\n }\n const send = (l, k, specificDefaultValue) => {\n const defaultForMissing = hasDefaultValue && specificDefaultValue !== res ? specificDefaultValue : resForMissing;\n if (this.options.missingKeyHandler) {\n this.options.missingKeyHandler(l, namespace, k, defaultForMissing, updateMissing, opt);\n } else if (this.backendConnector?.saveMissing) {\n this.backendConnector.saveMissing(l, namespace, k, defaultForMissing, updateMissing, opt);\n }\n this.emit('missingKey', l, namespace, k, res);\n };\n if (this.options.saveMissing) {\n if (this.options.saveMissingPlurals && needsPluralHandling) {\n lngs.forEach(language => {\n const suffixes = this.pluralResolver.getSuffixes(language, opt);\n if (needsZeroSuffixLookup && opt[`defaultValue${this.options.pluralSeparator}zero`] && suffixes.indexOf(`${this.options.pluralSeparator}zero`) < 0) {\n suffixes.push(`${this.options.pluralSeparator}zero`);\n }\n suffixes.forEach(suffix => {\n send([language], key + suffix, opt[`defaultValue${suffix}`] || defaultValue);\n });\n });\n } else {\n send(lngs, key, defaultValue);\n }\n }\n }\n res = this.extendTranslation(res, keys, opt, resolved, lastKey);\n if (usedKey && res === key && this.options.appendNamespaceToMissingKey) {\n res = `${namespace}${nsSeparator}${key}`;\n }\n if ((usedKey || usedDefault) && this.options.parseMissingKeyHandler) {\n res = this.options.parseMissingKeyHandler(this.options.appendNamespaceToMissingKey ? `${namespace}${nsSeparator}${key}` : key, usedDefault ? res : undefined, opt);\n }\n }\n if (returnDetails) {\n resolved.res = res;\n resolved.usedParams = this.getUsedParamsDetails(opt);\n return resolved;\n }\n return res;\n }\n extendTranslation(res, key, opt, resolved, lastKey) {\n if (this.i18nFormat?.parse) {\n res = this.i18nFormat.parse(res, {\n ...this.options.interpolation.defaultVariables,\n ...opt\n }, opt.lng || this.language || resolved.usedLng, resolved.usedNS, resolved.usedKey, {\n resolved\n });\n } else if (!opt.skipInterpolation) {\n if (opt.interpolation) this.interpolator.init({\n ...opt,\n ...{\n interpolation: {\n ...this.options.interpolation,\n ...opt.interpolation\n }\n }\n });\n const skipOnVariables = isString(res) && (opt?.interpolation?.skipOnVariables !== undefined ? opt.interpolation.skipOnVariables : this.options.interpolation.skipOnVariables);\n let nestBef;\n if (skipOnVariables) {\n const nb = res.match(this.interpolator.nestingRegexp);\n nestBef = nb && nb.length;\n }\n let data = opt.replace && !isString(opt.replace) ? opt.replace : opt;\n if (this.options.interpolation.defaultVariables) data = {\n ...this.options.interpolation.defaultVariables,\n ...data\n };\n res = this.interpolator.interpolate(res, data, opt.lng || this.language || resolved.usedLng, opt);\n if (skipOnVariables) {\n const na = res.match(this.interpolator.nestingRegexp);\n const nestAft = na && na.length;\n if (nestBef < nestAft) opt.nest = false;\n }\n if (!opt.lng && resolved && resolved.res) opt.lng = this.language || resolved.usedLng;\n if (opt.nest !== false) res = this.interpolator.nest(res, (...args) => {\n if (lastKey?.[0] === args[0] && !opt.context) {\n this.logger.warn(`It seems you are nesting recursively key: ${args[0]} in key: ${key[0]}`);\n return null;\n }\n return this.translate(...args, key);\n }, opt);\n if (opt.interpolation) this.interpolator.reset();\n }\n const postProcess = opt.postProcess || this.options.postProcess;\n const postProcessorNames = isString(postProcess) ? [postProcess] : postProcess;\n if (res != null && postProcessorNames?.length && opt.applyPostProcessor !== false) {\n res = postProcessor.handle(postProcessorNames, res, key, this.options && this.options.postProcessPassResolved ? {\n i18nResolved: {\n ...resolved,\n usedParams: this.getUsedParamsDetails(opt)\n },\n ...opt\n } : opt, this);\n }\n return res;\n }\n resolve(keys, opt = {}) {\n let found;\n let usedKey;\n let exactUsedKey;\n let usedLng;\n let usedNS;\n if (isString(keys)) keys = [keys];\n keys.forEach(k => {\n if (this.isValidLookup(found)) return;\n const extracted = this.extractFromKey(k, opt);\n const key = extracted.key;\n usedKey = key;\n let namespaces = extracted.namespaces;\n if (this.options.fallbackNS) namespaces = namespaces.concat(this.options.fallbackNS);\n const needsPluralHandling = opt.count !== undefined && !isString(opt.count);\n const needsZeroSuffixLookup = needsPluralHandling && !opt.ordinal && opt.count === 0;\n const needsContextHandling = opt.context !== undefined && (isString(opt.context) || typeof opt.context === 'number') && opt.context !== '';\n const codes = opt.lngs ? opt.lngs : this.languageUtils.toResolveHierarchy(opt.lng || this.language, opt.fallbackLng);\n namespaces.forEach(ns => {\n if (this.isValidLookup(found)) return;\n usedNS = ns;\n if (!checkedLoadedFor[`${codes[0]}-${ns}`] && this.utils?.hasLoadedNamespace && !this.utils?.hasLoadedNamespace(usedNS)) {\n checkedLoadedFor[`${codes[0]}-${ns}`] = true;\n this.logger.warn(`key \"${usedKey}\" for languages \"${codes.join(', ')}\" won't get resolved as namespace \"${usedNS}\" was not yet loaded`, 'This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!');\n }\n codes.forEach(code => {\n if (this.isValidLookup(found)) return;\n usedLng = code;\n const finalKeys = [key];\n if (this.i18nFormat?.addLookupKeys) {\n this.i18nFormat.addLookupKeys(finalKeys, key, code, ns, opt);\n } else {\n let pluralSuffix;\n if (needsPluralHandling) pluralSuffix = this.pluralResolver.getSuffix(code, opt.count, opt);\n const zeroSuffix = `${this.options.pluralSeparator}zero`;\n const ordinalPrefix = `${this.options.pluralSeparator}ordinal${this.options.pluralSeparator}`;\n if (needsPluralHandling) {\n if (opt.ordinal && pluralSuffix.indexOf(ordinalPrefix) === 0) {\n finalKeys.push(key + pluralSuffix.replace(ordinalPrefix, this.options.pluralSeparator));\n }\n finalKeys.push(key + pluralSuffix);\n if (needsZeroSuffixLookup) {\n finalKeys.push(key + zeroSuffix);\n }\n }\n if (needsContextHandling) {\n const contextKey = `${key}${this.options.contextSeparator || '_'}${opt.context}`;\n finalKeys.push(contextKey);\n if (needsPluralHandling) {\n if (opt.ordinal && pluralSuffix.indexOf(ordinalPrefix) === 0) {\n finalKeys.push(contextKey + pluralSuffix.replace(ordinalPrefix, this.options.pluralSeparator));\n }\n finalKeys.push(contextKey + pluralSuffix);\n if (needsZeroSuffixLookup) {\n finalKeys.push(contextKey + zeroSuffix);\n }\n }\n }\n }\n let possibleKey;\n while (possibleKey = finalKeys.pop()) {\n if (!this.isValidLookup(found)) {\n exactUsedKey = possibleKey;\n found = this.getResource(code, ns, possibleKey, opt);\n }\n }\n });\n });\n });\n return {\n res: found,\n usedKey,\n exactUsedKey,\n usedLng,\n usedNS\n };\n }\n isValidLookup(res) {\n return res !== undefined && !(!this.options.returnNull && res === null) && !(!this.options.returnEmptyString && res === '');\n }\n getResource(code, ns, key, options = {}) {\n if (this.i18nFormat?.getResource) return this.i18nFormat.getResource(code, ns, key, options);\n return this.resourceStore.getResource(code, ns, key, options);\n }\n getUsedParamsDetails(options = {}) {\n const optionsKeys = ['defaultValue', 'ordinal', 'context', 'replace', 'lng', 'lngs', 'fallbackLng', 'ns', 'keySeparator', 'nsSeparator', 'returnObjects', 'returnDetails', 'joinArrays', 'postProcess', 'interpolation'];\n const useOptionsReplaceForData = options.replace && !isString(options.replace);\n let data = useOptionsReplaceForData ? options.replace : options;\n if (useOptionsReplaceForData && typeof options.count !== 'undefined') {\n data.count = options.count;\n }\n if (this.options.interpolation.defaultVariables) {\n data = {\n ...this.options.interpolation.defaultVariables,\n ...data\n };\n }\n if (!useOptionsReplaceForData) {\n data = {\n ...data\n };\n for (const key of optionsKeys) {\n delete data[key];\n }\n }\n return data;\n }\n static hasDefaultValue(options) {\n const prefix = 'defaultValue';\n for (const option in options) {\n if (Object.prototype.hasOwnProperty.call(options, option) && prefix === option.substring(0, prefix.length) && undefined !== options[option]) {\n return true;\n }\n }\n return false;\n }\n}\n\nclass LanguageUtil {\n constructor(options) {\n this.options = options;\n this.supportedLngs = this.options.supportedLngs || false;\n this.logger = baseLogger.create('languageUtils');\n }\n getScriptPartFromCode(code) {\n code = getCleanedCode(code);\n if (!code || code.indexOf('-') < 0) return null;\n const p = code.split('-');\n if (p.length === 2) return null;\n p.pop();\n if (p[p.length - 1].toLowerCase() === 'x') return null;\n return this.formatLanguageCode(p.join('-'));\n }\n getLanguagePartFromCode(code) {\n code = getCleanedCode(code);\n if (!code || code.indexOf('-') < 0) return code;\n const p = code.split('-');\n return this.formatLanguageCode(p[0]);\n }\n formatLanguageCode(code) {\n if (isString(code) && code.indexOf('-') > -1) {\n let formattedCode;\n try {\n formattedCode = Intl.getCanonicalLocales(code)[0];\n } catch (e) {}\n if (formattedCode && this.options.lowerCaseLng) {\n formattedCode = formattedCode.toLowerCase();\n }\n if (formattedCode) return formattedCode;\n if (this.options.lowerCaseLng) {\n return code.toLowerCase();\n }\n return code;\n }\n return this.options.cleanCode || this.options.lowerCaseLng ? code.toLowerCase() : code;\n }\n isSupportedCode(code) {\n if (this.options.load === 'languageOnly' || this.options.nonExplicitSupportedLngs) {\n code = this.getLanguagePartFromCode(code);\n }\n return !this.supportedLngs || !this.supportedLngs.length || this.supportedLngs.indexOf(code) > -1;\n }\n getBestMatchFromCodes(codes) {\n if (!codes) return null;\n let found;\n codes.forEach(code => {\n if (found) return;\n const cleanedLng = this.formatLanguageCode(code);\n if (!this.options.supportedLngs || this.isSupportedCode(cleanedLng)) found = cleanedLng;\n });\n if (!found && this.options.supportedLngs) {\n codes.forEach(code => {\n if (found) return;\n const lngScOnly = this.getScriptPartFromCode(code);\n if (this.isSupportedCode(lngScOnly)) return found = lngScOnly;\n const lngOnly = this.getLanguagePartFromCode(code);\n if (this.isSupportedCode(lngOnly)) return found = lngOnly;\n found = this.options.supportedLngs.find(supportedLng => {\n if (supportedLng === lngOnly) return supportedLng;\n if (supportedLng.indexOf('-') < 0 && lngOnly.indexOf('-') < 0) return;\n if (supportedLng.indexOf('-') > 0 && lngOnly.indexOf('-') < 0 && supportedLng.substring(0, supportedLng.indexOf('-')) === lngOnly) return supportedLng;\n if (supportedLng.indexOf(lngOnly) === 0 && lngOnly.length > 1) return supportedLng;\n });\n });\n }\n if (!found) found = this.getFallbackCodes(this.options.fallbackLng)[0];\n return found;\n }\n getFallbackCodes(fallbacks, code) {\n if (!fallbacks) return [];\n if (typeof fallbacks === 'function') fallbacks = fallbacks(code);\n if (isString(fallbacks)) fallbacks = [fallbacks];\n if (Array.isArray(fallbacks)) return fallbacks;\n if (!code) return fallbacks.default || [];\n let found = fallbacks[code];\n if (!found) found = fallbacks[this.getScriptPartFromCode(code)];\n if (!found) found = fallbacks[this.formatLanguageCode(code)];\n if (!found) found = fallbacks[this.getLanguagePartFromCode(code)];\n if (!found) found = fallbacks.default;\n return found || [];\n }\n toResolveHierarchy(code, fallbackCode) {\n const fallbackCodes = this.getFallbackCodes((fallbackCode === false ? [] : fallbackCode) || this.options.fallbackLng || [], code);\n const codes = [];\n const addCode = c => {\n if (!c) return;\n if (this.isSupportedCode(c)) {\n codes.push(c);\n } else {\n this.logger.warn(`rejecting language code not found in supportedLngs: ${c}`);\n }\n };\n if (isString(code) && (code.indexOf('-') > -1 || code.indexOf('_') > -1)) {\n if (this.options.load !== 'languageOnly') addCode(this.formatLanguageCode(code));\n if (this.options.load !== 'languageOnly' && this.options.load !== 'currentOnly') addCode(this.getScriptPartFromCode(code));\n if (this.options.load !== 'currentOnly') addCode(this.getLanguagePartFromCode(code));\n } else if (isString(code)) {\n addCode(this.formatLanguageCode(code));\n }\n fallbackCodes.forEach(fc => {\n if (codes.indexOf(fc) < 0) addCode(this.formatLanguageCode(fc));\n });\n return codes;\n }\n}\n\nconst suffixesOrder = {\n zero: 0,\n one: 1,\n two: 2,\n few: 3,\n many: 4,\n other: 5\n};\nconst dummyRule = {\n select: count => count === 1 ? 'one' : 'other',\n resolvedOptions: () => ({\n pluralCategories: ['one', 'other']\n })\n};\nclass PluralResolver {\n constructor(languageUtils, options = {}) {\n this.languageUtils = languageUtils;\n this.options = options;\n this.logger = baseLogger.create('pluralResolver');\n this.pluralRulesCache = {};\n }\n addRule(lng, obj) {\n this.rules[lng] = obj;\n }\n clearCache() {\n this.pluralRulesCache = {};\n }\n getRule(code, options = {}) {\n const cleanedCode = getCleanedCode(code === 'dev' ? 'en' : code);\n const type = options.ordinal ? 'ordinal' : 'cardinal';\n const cacheKey = JSON.stringify({\n cleanedCode,\n type\n });\n if (cacheKey in this.pluralRulesCache) {\n return this.pluralRulesCache[cacheKey];\n }\n let rule;\n try {\n rule = new Intl.PluralRules(cleanedCode, {\n type\n });\n } catch (err) {\n if (!Intl) {\n this.logger.error('No Intl support, please use an Intl polyfill!');\n return dummyRule;\n }\n if (!code.match(/-|_/)) return dummyRule;\n const lngPart = this.languageUtils.getLanguagePartFromCode(code);\n rule = this.getRule(lngPart, options);\n }\n this.pluralRulesCache[cacheKey] = rule;\n return rule;\n }\n needsPlural(code, options = {}) {\n let rule = this.getRule(code, options);\n if (!rule) rule = this.getRule('dev', options);\n return rule?.resolvedOptions().pluralCategories.length > 1;\n }\n getPluralFormsOfKey(code, key, options = {}) {\n return this.getSuffixes(code, options).map(suffix => `${key}${suffix}`);\n }\n getSuffixes(code, options = {}) {\n let rule = this.getRule(code, options);\n if (!rule) rule = this.getRule('dev', options);\n if (!rule) return [];\n return rule.resolvedOptions().pluralCategories.sort((pluralCategory1, pluralCategory2) => suffixesOrder[pluralCategory1] - suffixesOrder[pluralCategory2]).map(pluralCategory => `${this.options.prepend}${options.ordinal ? `ordinal${this.options.prepend}` : ''}${pluralCategory}`);\n }\n getSuffix(code, count, options = {}) {\n const rule = this.getRule(code, options);\n if (rule) {\n return `${this.options.prepend}${options.ordinal ? `ordinal${this.options.prepend}` : ''}${rule.select(count)}`;\n }\n this.logger.warn(`no plural rule found for: ${code}`);\n return this.getSuffix('dev', count, options);\n }\n}\n\nconst deepFindWithDefaults = (data, defaultData, key, keySeparator = '.', ignoreJSONStructure = true) => {\n let path = getPathWithDefaults(data, defaultData, key);\n if (!path && ignoreJSONStructure && isString(key)) {\n path = deepFind(data, key, keySeparator);\n if (path === undefined) path = deepFind(defaultData, key, keySeparator);\n }\n return path;\n};\nconst regexSafe = val => val.replace(/\\$/g, '$$$$');\nclass Interpolator {\n constructor(options = {}) {\n this.logger = baseLogger.create('interpolator');\n this.options = options;\n this.format = options?.interpolation?.format || (value => value);\n this.init(options);\n }\n init(options = {}) {\n if (!options.interpolation) options.interpolation = {\n escapeValue: true\n };\n const {\n escape: escape$1,\n escapeValue,\n useRawValueToEscape,\n prefix,\n prefixEscaped,\n suffix,\n suffixEscaped,\n formatSeparator,\n unescapeSuffix,\n unescapePrefix,\n nestingPrefix,\n nestingPrefixEscaped,\n nestingSuffix,\n nestingSuffixEscaped,\n nestingOptionsSeparator,\n maxReplaces,\n alwaysFormat\n } = options.interpolation;\n this.escape = escape$1 !== undefined ? escape$1 : escape;\n this.escapeValue = escapeValue !== undefined ? escapeValue : true;\n this.useRawValueToEscape = useRawValueToEscape !== undefined ? useRawValueToEscape : false;\n this.prefix = prefix ? regexEscape(prefix) : prefixEscaped || '{{';\n this.suffix = suffix ? regexEscape(suffix) : suffixEscaped || '}}';\n this.formatSeparator = formatSeparator || ',';\n this.unescapePrefix = unescapeSuffix ? '' : unescapePrefix || '-';\n this.unescapeSuffix = this.unescapePrefix ? '' : unescapeSuffix || '';\n this.nestingPrefix = nestingPrefix ? regexEscape(nestingPrefix) : nestingPrefixEscaped || regexEscape('$t(');\n this.nestingSuffix = nestingSuffix ? regexEscape(nestingSuffix) : nestingSuffixEscaped || regexEscape(')');\n this.nestingOptionsSeparator = nestingOptionsSeparator || ',';\n this.maxReplaces = maxReplaces || 1000;\n this.alwaysFormat = alwaysFormat !== undefined ? alwaysFormat : false;\n this.resetRegExp();\n }\n reset() {\n if (this.options) this.init(this.options);\n }\n resetRegExp() {\n const getOrResetRegExp = (existingRegExp, pattern) => {\n if (existingRegExp?.source === pattern) {\n existingRegExp.lastIndex = 0;\n return existingRegExp;\n }\n return new RegExp(pattern, 'g');\n };\n this.regexp = getOrResetRegExp(this.regexp, `${this.prefix}(.+?)${this.suffix}`);\n this.regexpUnescape = getOrResetRegExp(this.regexpUnescape, `${this.prefix}${this.unescapePrefix}(.+?)${this.unescapeSuffix}${this.suffix}`);\n this.nestingRegexp = getOrResetRegExp(this.nestingRegexp, `${this.nestingPrefix}((?:[^()\"']+|\"[^\"]*\"|'[^']*'|\\\\((?:[^()]|\"[^\"]*\"|'[^']*')*\\\\))*?)${this.nestingSuffix}`);\n }\n interpolate(str, data, lng, options) {\n let match;\n let value;\n let replaces;\n const defaultData = this.options && this.options.interpolation && this.options.interpolation.defaultVariables || {};\n const handleFormat = key => {\n if (key.indexOf(this.formatSeparator) < 0) {\n const path = deepFindWithDefaults(data, defaultData, key, this.options.keySeparator, this.options.ignoreJSONStructure);\n return this.alwaysFormat ? this.format(path, undefined, lng, {\n ...options,\n ...data,\n interpolationkey: key\n }) : path;\n }\n const p = key.split(this.formatSeparator);\n const k = p.shift().trim();\n const f = p.join(this.formatSeparator).trim();\n return this.format(deepFindWithDefaults(data, defaultData, k, this.options.keySeparator, this.options.ignoreJSONStructure), f, lng, {\n ...options,\n ...data,\n interpolationkey: k\n });\n };\n this.resetRegExp();\n const missingInterpolationHandler = options?.missingInterpolationHandler || this.options.missingInterpolationHandler;\n const skipOnVariables = options?.interpolation?.skipOnVariables !== undefined ? options.interpolation.skipOnVariables : this.options.interpolation.skipOnVariables;\n const todos = [{\n regex: this.regexpUnescape,\n safeValue: val => regexSafe(val)\n }, {\n regex: this.regexp,\n safeValue: val => this.escapeValue ? regexSafe(this.escape(val)) : regexSafe(val)\n }];\n todos.forEach(todo => {\n replaces = 0;\n while (match = todo.regex.exec(str)) {\n const matchedVar = match[1].trim();\n value = handleFormat(matchedVar);\n if (value === undefined) {\n if (typeof missingInterpolationHandler === 'function') {\n const temp = missingInterpolationHandler(str, match, options);\n value = isString(temp) ? temp : '';\n } else if (options && Object.prototype.hasOwnProperty.call(options, matchedVar)) {\n value = '';\n } else if (skipOnVariables) {\n value = match[0];\n continue;\n } else {\n this.logger.warn(`missed to pass in variable ${matchedVar} for interpolating ${str}`);\n value = '';\n }\n } else if (!isString(value) && !this.useRawValueToEscape) {\n value = makeString(value);\n }\n const safeValue = todo.safeValue(value);\n str = str.replace(match[0], safeValue);\n if (skipOnVariables) {\n todo.regex.lastIndex += value.length;\n todo.regex.lastIndex -= match[0].length;\n } else {\n todo.regex.lastIndex = 0;\n }\n replaces++;\n if (replaces >= this.maxReplaces) {\n break;\n }\n }\n });\n return str;\n }\n nest(str, fc, options = {}) {\n let match;\n let value;\n let clonedOptions;\n const handleHasOptions = (key, inheritedOptions) => {\n const sep = this.nestingOptionsSeparator;\n if (key.indexOf(sep) < 0) return key;\n const c = key.split(new RegExp(`${sep}[ ]*{`));\n let optionsString = `{${c[1]}`;\n key = c[0];\n optionsString = this.interpolate(optionsString, clonedOptions);\n const matchedSingleQuotes = optionsString.match(/'/g);\n const matchedDoubleQuotes = optionsString.match(/\"/g);\n if ((matchedSingleQuotes?.length ?? 0) % 2 === 0 && !matchedDoubleQuotes || matchedDoubleQuotes.length % 2 !== 0) {\n optionsString = optionsString.replace(/'/g, '\"');\n }\n try {\n clonedOptions = JSON.parse(optionsString);\n if (inheritedOptions) clonedOptions = {\n ...inheritedOptions,\n ...clonedOptions\n };\n } catch (e) {\n this.logger.warn(`failed parsing options string in nesting for key ${key}`, e);\n return `${key}${sep}${optionsString}`;\n }\n if (clonedOptions.defaultValue && clonedOptions.defaultValue.indexOf(this.prefix) > -1) delete clonedOptions.defaultValue;\n return key;\n };\n while (match = this.nestingRegexp.exec(str)) {\n let formatters = [];\n clonedOptions = {\n ...options\n };\n clonedOptions = clonedOptions.replace && !isString(clonedOptions.replace) ? clonedOptions.replace : clonedOptions;\n clonedOptions.applyPostProcessor = false;\n delete clonedOptions.defaultValue;\n const keyEndIndex = /{.*}/.test(match[1]) ? match[1].lastIndexOf('}') + 1 : match[1].indexOf(this.formatSeparator);\n if (keyEndIndex !== -1) {\n formatters = match[1].slice(keyEndIndex).split(this.formatSeparator).map(elem => elem.trim()).filter(Boolean);\n match[1] = match[1].slice(0, keyEndIndex);\n }\n value = fc(handleHasOptions.call(this, match[1].trim(), clonedOptions), clonedOptions);\n if (value && match[0] === str && !isString(value)) return value;\n if (!isString(value)) value = makeString(value);\n if (!value) {\n this.logger.warn(`missed to resolve ${match[1]} for nesting ${str}`);\n value = '';\n }\n if (formatters.length) {\n value = formatters.reduce((v, f) => this.format(v, f, options.lng, {\n ...options,\n interpolationkey: match[1].trim()\n }), value.trim());\n }\n str = str.replace(match[0], value);\n this.regexp.lastIndex = 0;\n }\n return str;\n }\n}\n\nconst parseFormatStr = formatStr => {\n let formatName = formatStr.toLowerCase().trim();\n const formatOptions = {};\n if (formatStr.indexOf('(') > -1) {\n const p = formatStr.split('(');\n formatName = p[0].toLowerCase().trim();\n const optStr = p[1].substring(0, p[1].length - 1);\n if (formatName === 'currency' && optStr.indexOf(':') < 0) {\n if (!formatOptions.currency) formatOptions.currency = optStr.trim();\n } else if (formatName === 'relativetime' && optStr.indexOf(':') < 0) {\n if (!formatOptions.range) formatOptions.range = optStr.trim();\n } else {\n const opts = optStr.split(';');\n opts.forEach(opt => {\n if (opt) {\n const [key, ...rest] = opt.split(':');\n const val = rest.join(':').trim().replace(/^'+|'+$/g, '');\n const trimmedKey = key.trim();\n if (!formatOptions[trimmedKey]) formatOptions[trimmedKey] = val;\n if (val === 'false') formatOptions[trimmedKey] = false;\n if (val === 'true') formatOptions[trimmedKey] = true;\n if (!isNaN(val)) formatOptions[trimmedKey] = parseInt(val, 10);\n }\n });\n }\n }\n return {\n formatName,\n formatOptions\n };\n};\nconst createCachedFormatter = fn => {\n const cache = {};\n return (v, l, o) => {\n let optForCache = o;\n if (o && o.interpolationkey && o.formatParams && o.formatParams[o.interpolationkey] && o[o.interpolationkey]) {\n optForCache = {\n ...optForCache,\n [o.interpolationkey]: undefined\n };\n }\n const key = l + JSON.stringify(optForCache);\n let frm = cache[key];\n if (!frm) {\n frm = fn(getCleanedCode(l), o);\n cache[key] = frm;\n }\n return frm(v);\n };\n};\nconst createNonCachedFormatter = fn => (v, l, o) => fn(getCleanedCode(l), o)(v);\nclass Formatter {\n constructor(options = {}) {\n this.logger = baseLogger.create('formatter');\n this.options = options;\n this.init(options);\n }\n init(services, options = {\n interpolation: {}\n }) {\n this.formatSeparator = options.interpolation.formatSeparator || ',';\n const cf = options.cacheInBuiltFormats ? createCachedFormatter : createNonCachedFormatter;\n this.formats = {\n number: cf((lng, opt) => {\n const formatter = new Intl.NumberFormat(lng, {\n ...opt\n });\n return val => formatter.format(val);\n }),\n currency: cf((lng, opt) => {\n const formatter = new Intl.NumberFormat(lng, {\n ...opt,\n style: 'currency'\n });\n return val => formatter.format(val);\n }),\n datetime: cf((lng, opt) => {\n const formatter = new Intl.DateTimeFormat(lng, {\n ...opt\n });\n return val => formatter.format(val);\n }),\n relativetime: cf((lng, opt) => {\n const formatter = new Intl.RelativeTimeFormat(lng, {\n ...opt\n });\n return val => formatter.format(val, opt.range || 'day');\n }),\n list: cf((lng, opt) => {\n const formatter = new Intl.ListFormat(lng, {\n ...opt\n });\n return val => formatter.format(val);\n })\n };\n }\n add(name, fc) {\n this.formats[name.toLowerCase().trim()] = fc;\n }\n addCached(name, fc) {\n this.formats[name.toLowerCase().trim()] = createCachedFormatter(fc);\n }\n format(value, format, lng, options = {}) {\n const formats = format.split(this.formatSeparator);\n if (formats.length > 1 && formats[0].indexOf('(') > 1 && formats[0].indexOf(')') < 0 && formats.find(f => f.indexOf(')') > -1)) {\n const lastIndex = formats.findIndex(f => f.indexOf(')') > -1);\n formats[0] = [formats[0], ...formats.splice(1, lastIndex)].join(this.formatSeparator);\n }\n const result = formats.reduce((mem, f) => {\n const {\n formatName,\n formatOptions\n } = parseFormatStr(f);\n if (this.formats[formatName]) {\n let formatted = mem;\n try {\n const valOptions = options?.formatParams?.[options.interpolationkey] || {};\n const l = valOptions.locale || valOptions.lng || options.locale || options.lng || lng;\n formatted = this.formats[formatName](mem, l, {\n ...formatOptions,\n ...options,\n ...valOptions\n });\n } catch (error) {\n this.logger.warn(error);\n }\n return formatted;\n } else {\n this.logger.warn(`there was no format function for ${formatName}`);\n }\n return mem;\n }, value);\n return result;\n }\n}\n\nconst removePending = (q, name) => {\n if (q.pending[name] !== undefined) {\n delete q.pending[name];\n q.pendingCount--;\n }\n};\nclass Connector extends EventEmitter {\n constructor(backend, store, services, options = {}) {\n super();\n this.backend = backend;\n this.store = store;\n this.services = services;\n this.languageUtils = services.languageUtils;\n this.options = options;\n this.logger = baseLogger.create('backendConnector');\n this.waitingReads = [];\n this.maxParallelReads = options.maxParallelReads || 10;\n this.readingCalls = 0;\n this.maxRetries = options.maxRetries >= 0 ? options.maxRetries : 5;\n this.retryTimeout = options.retryTimeout >= 1 ? options.retryTimeout : 350;\n this.state = {};\n this.queue = [];\n this.backend?.init?.(services, options.backend, options);\n }\n queueLoad(languages, namespaces, options, callback) {\n const toLoad = {};\n const pending = {};\n const toLoadLanguages = {};\n const toLoadNamespaces = {};\n languages.forEach(lng => {\n let hasAllNamespaces = true;\n namespaces.forEach(ns => {\n const name = `${lng}|${ns}`;\n if (!options.reload && this.store.hasResourceBundle(lng, ns)) {\n this.state[name] = 2;\n } else if (this.state[name] < 0) ; else if (this.state[name] === 1) {\n if (pending[name] === undefined) pending[name] = true;\n } else {\n this.state[name] = 1;\n hasAllNamespaces = false;\n if (pending[name] === undefined) pending[name] = true;\n if (toLoad[name] === undefined) toLoad[name] = true;\n if (toLoadNamespaces[ns] === undefined) toLoadNamespaces[ns] = true;\n }\n });\n if (!hasAllNamespaces) toLoadLanguages[lng] = true;\n });\n if (Object.keys(toLoad).length || Object.keys(pending).length) {\n this.queue.push({\n pending,\n pendingCount: Object.keys(pending).length,\n loaded: {},\n errors: [],\n callback\n });\n }\n return {\n toLoad: Object.keys(toLoad),\n pending: Object.keys(pending),\n toLoadLanguages: Object.keys(toLoadLanguages),\n toLoadNamespaces: Object.keys(toLoadNamespaces)\n };\n }\n loaded(name, err, data) {\n const s = name.split('|');\n const lng = s[0];\n const ns = s[1];\n if (err) this.emit('failedLoading', lng, ns, err);\n if (!err && data) {\n this.store.addResourceBundle(lng, ns, data, undefined, undefined, {\n skipCopy: true\n });\n }\n this.state[name] = err ? -1 : 2;\n if (err && data) this.state[name] = 0;\n const loaded = {};\n this.queue.forEach(q => {\n pushPath(q.loaded, [lng], ns);\n removePending(q, name);\n if (err) q.errors.push(err);\n if (q.pendingCount === 0 && !q.done) {\n Object.keys(q.loaded).forEach(l => {\n if (!loaded[l]) loaded[l] = {};\n const loadedKeys = q.loaded[l];\n if (loadedKeys.length) {\n loadedKeys.forEach(n => {\n if (loaded[l][n] === undefined) loaded[l][n] = true;\n });\n }\n });\n q.done = true;\n if (q.errors.length) {\n q.callback(q.errors);\n } else {\n q.callback();\n }\n }\n });\n this.emit('loaded', loaded);\n this.queue = this.queue.filter(q => !q.done);\n }\n read(lng, ns, fcName, tried = 0, wait = this.retryTimeout, callback) {\n if (!lng.length) return callback(null, {});\n if (this.readingCalls >= this.maxParallelReads) {\n this.waitingReads.push({\n lng,\n ns,\n fcName,\n tried,\n wait,\n callback\n });\n return;\n }\n this.readingCalls++;\n const resolver = (err, data) => {\n this.readingCalls--;\n if (this.waitingReads.length > 0) {\n const next = this.waitingReads.shift();\n this.read(next.lng, next.ns, next.fcName, next.tried, next.wait, next.callback);\n }\n if (err && data && tried < this.maxRetries) {\n setTimeout(() => {\n this.read.call(this, lng, ns, fcName, tried + 1, wait * 2, callback);\n }, wait);\n return;\n }\n callback(err, data);\n };\n const fc = this.backend[fcName].bind(this.backend);\n if (fc.length === 2) {\n try {\n const r = fc(lng, ns);\n if (r && typeof r.then === 'function') {\n r.then(data => resolver(null, data)).catch(resolver);\n } else {\n resolver(null, r);\n }\n } catch (err) {\n resolver(err);\n }\n return;\n }\n return fc(lng, ns, resolver);\n }\n prepareLoading(languages, namespaces, options = {}, callback) {\n if (!this.backend) {\n this.logger.warn('No backend was added via i18next.use. Will not load resources.');\n return callback && callback();\n }\n if (isString(languages)) languages = this.languageUtils.toResolveHierarchy(languages);\n if (isString(namespaces)) namespaces = [namespaces];\n const toLoad = this.queueLoad(languages, namespaces, options, callback);\n if (!toLoad.toLoad.length) {\n if (!toLoad.pending.length) callback();\n return null;\n }\n toLoad.toLoad.forEach(name => {\n this.loadOne(name);\n });\n }\n load(languages, namespaces, callback) {\n this.prepareLoading(languages, namespaces, {}, callback);\n }\n reload(languages, namespaces, callback) {\n this.prepareLoading(languages, namespaces, {\n reload: true\n }, callback);\n }\n loadOne(name, prefix = '') {\n const s = name.split('|');\n const lng = s[0];\n const ns = s[1];\n this.read(lng, ns, 'read', undefined, undefined, (err, data) => {\n if (err) this.logger.warn(`${prefix}loading namespace ${ns} for language ${lng} failed`, err);\n if (!err && data) this.logger.log(`${prefix}loaded namespace ${ns} for language ${lng}`, data);\n this.loaded(name, err, data);\n });\n }\n saveMissing(languages, namespace, key, fallbackValue, isUpdate, options = {}, clb = () => {}) {\n if (this.services?.utils?.hasLoadedNamespace && !this.services?.utils?.hasLoadedNamespace(namespace)) {\n this.logger.warn(`did not save key \"${key}\" as the namespace \"${namespace}\" was not yet loaded`, 'This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!');\n return;\n }\n if (key === undefined || key === null || key === '') return;\n if (this.backend?.create) {\n const opts = {\n ...options,\n isUpdate\n };\n const fc = this.backend.create.bind(this.backend);\n if (fc.length < 6) {\n try {\n let r;\n if (fc.length === 5) {\n r = fc(languages, namespace, key, fallbackValue, opts);\n } else {\n r = fc(languages, namespace, key, fallbackValue);\n }\n if (r && typeof r.then === 'function') {\n r.then(data => clb(null, data)).catch(clb);\n } else {\n clb(null, r);\n }\n } catch (err) {\n clb(err);\n }\n } else {\n fc(languages, namespace, key, fallbackValue, clb, opts);\n }\n }\n if (!languages || !languages[0]) return;\n this.store.addResource(languages[0], namespace, key, fallbackValue);\n }\n}\n\nconst get = () => ({\n debug: false,\n initAsync: true,\n ns: ['translation'],\n defaultNS: ['translation'],\n fallbackLng: ['dev'],\n fallbackNS: false,\n supportedLngs: false,\n nonExplicitSupportedLngs: false,\n load: 'all',\n preload: false,\n simplifyPluralSuffix: true,\n keySeparator: '.',\n nsSeparator: ':',\n pluralSeparator: '_',\n contextSeparator: '_',\n partialBundledLanguages: false,\n saveMissing: false,\n updateMissing: false,\n saveMissingTo: 'fallback',\n saveMissingPlurals: true,\n missingKeyHandler: false,\n missingInterpolationHandler: false,\n postProcess: false,\n postProcessPassResolved: false,\n returnNull: false,\n returnEmptyString: true,\n returnObjects: false,\n joinArrays: false,\n returnedObjectHandler: false,\n parseMissingKeyHandler: false,\n appendNamespaceToMissingKey: false,\n appendNamespaceToCIMode: false,\n overloadTranslationOptionHandler: args => {\n let ret = {};\n if (typeof args[1] === 'object') ret = args[1];\n if (isString(args[1])) ret.defaultValue = args[1];\n if (isString(args[2])) ret.tDescription = args[2];\n if (typeof args[2] === 'object' || typeof args[3] === 'object') {\n const options = args[3] || args[2];\n Object.keys(options).forEach(key => {\n ret[key] = options[key];\n });\n }\n return ret;\n },\n interpolation: {\n escapeValue: true,\n format: value => value,\n prefix: '{{',\n suffix: '}}',\n formatSeparator: ',',\n unescapePrefix: '-',\n nestingPrefix: '$t(',\n nestingSuffix: ')',\n nestingOptionsSeparator: ',',\n maxReplaces: 1000,\n skipOnVariables: true\n },\n cacheInBuiltFormats: true\n});\nconst transformOptions = options => {\n if (isString(options.ns)) options.ns = [options.ns];\n if (isString(options.fallbackLng)) options.fallbackLng = [options.fallbackLng];\n if (isString(options.fallbackNS)) options.fallbackNS = [options.fallbackNS];\n if (options.supportedLngs?.indexOf?.('cimode') < 0) {\n options.supportedLngs = options.supportedLngs.concat(['cimode']);\n }\n if (typeof options.initImmediate === 'boolean') options.initAsync = options.initImmediate;\n return options;\n};\n\nconst noop = () => {};\nconst bindMemberFunctions = inst => {\n const mems = Object.getOwnPropertyNames(Object.getPrototypeOf(inst));\n mems.forEach(mem => {\n if (typeof inst[mem] === 'function') {\n inst[mem] = inst[mem].bind(inst);\n }\n });\n};\nclass I18n extends EventEmitter {\n constructor(options = {}, callback) {\n super();\n this.options = transformOptions(options);\n this.services = {};\n this.logger = baseLogger;\n this.modules = {\n external: []\n };\n bindMemberFunctions(this);\n if (callback && !this.isInitialized && !options.isClone) {\n if (!this.options.initAsync) {\n this.init(options, callback);\n return this;\n }\n setTimeout(() => {\n this.init(options, callback);\n }, 0);\n }\n }\n init(options = {}, callback) {\n this.isInitializing = true;\n if (typeof options === 'function') {\n callback = options;\n options = {};\n }\n if (options.defaultNS == null && options.ns) {\n if (isString(options.ns)) {\n options.defaultNS = options.ns;\n } else if (options.ns.indexOf('translation') < 0) {\n options.defaultNS = options.ns[0];\n }\n }\n const defOpts = get();\n this.options = {\n ...defOpts,\n ...this.options,\n ...transformOptions(options)\n };\n this.options.interpolation = {\n ...defOpts.interpolation,\n ...this.options.interpolation\n };\n if (options.keySeparator !== undefined) {\n this.options.userDefinedKeySeparator = options.keySeparator;\n }\n if (options.nsSeparator !== undefined) {\n this.options.userDefinedNsSeparator = options.nsSeparator;\n }\n const createClassOnDemand = ClassOrObject => {\n if (!ClassOrObject) return null;\n if (typeof ClassOrObject === 'function') return new ClassOrObject();\n return ClassOrObject;\n };\n if (!this.options.isClone) {\n if (this.modules.logger) {\n baseLogger.init(createClassOnDemand(this.modules.logger), this.options);\n } else {\n baseLogger.init(null, this.options);\n }\n let formatter;\n if (this.modules.formatter) {\n formatter = this.modules.formatter;\n } else {\n formatter = Formatter;\n }\n const lu = new LanguageUtil(this.options);\n this.store = new ResourceStore(this.options.resources, this.options);\n const s = this.services;\n s.logger = baseLogger;\n s.resourceStore = this.store;\n s.languageUtils = lu;\n s.pluralResolver = new PluralResolver(lu, {\n prepend: this.options.pluralSeparator,\n simplifyPluralSuffix: this.options.simplifyPluralSuffix\n });\n const usingLegacyFormatFunction = this.options.interpolation.format && this.options.interpolation.format !== defOpts.interpolation.format;\n if (usingLegacyFormatFunction) {\n this.logger.deprecate(`init: you are still using the legacy format function, please use the new approach: https://www.i18next.com/translation-function/formatting`);\n }\n if (formatter && (!this.options.interpolation.format || this.options.interpolation.format === defOpts.interpolation.format)) {\n s.formatter = createClassOnDemand(formatter);\n if (s.formatter.init) s.formatter.init(s, this.options);\n this.options.interpolation.format = s.formatter.format.bind(s.formatter);\n }\n s.interpolator = new Interpolator(this.options);\n s.utils = {\n hasLoadedNamespace: this.hasLoadedNamespace.bind(this)\n };\n s.backendConnector = new Connector(createClassOnDemand(this.modules.backend), s.resourceStore, s, this.options);\n s.backendConnector.on('*', (event, ...args) => {\n this.emit(event, ...args);\n });\n if (this.modules.languageDetector) {\n s.languageDetector = createClassOnDemand(this.modules.languageDetector);\n if (s.languageDetector.init) s.languageDetector.init(s, this.options.detection, this.options);\n }\n if (this.modules.i18nFormat) {\n s.i18nFormat = createClassOnDemand(this.modules.i18nFormat);\n if (s.i18nFormat.init) s.i18nFormat.init(this);\n }\n this.translator = new Translator(this.services, this.options);\n this.translator.on('*', (event, ...args) => {\n this.emit(event, ...args);\n });\n this.modules.external.forEach(m => {\n if (m.init) m.init(this);\n });\n }\n this.format = this.options.interpolation.format;\n if (!callback) callback = noop;\n if (this.options.fallbackLng && !this.services.languageDetector && !this.options.lng) {\n const codes = this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);\n if (codes.length > 0 && codes[0] !== 'dev') this.options.lng = codes[0];\n }\n if (!this.services.languageDetector && !this.options.lng) {\n this.logger.warn('init: no languageDetector is used and no lng is defined');\n }\n const storeApi = ['getResource', 'hasResourceBundle', 'getResourceBundle', 'getDataByLanguage'];\n storeApi.forEach(fcName => {\n this[fcName] = (...args) => this.store[fcName](...args);\n });\n const storeApiChained = ['addResource', 'addResources', 'addResourceBundle', 'removeResourceBundle'];\n storeApiChained.forEach(fcName => {\n this[fcName] = (...args) => {\n this.store[fcName](...args);\n return this;\n };\n });\n const deferred = defer();\n const load = () => {\n const finish = (err, t) => {\n this.isInitializing = false;\n if (this.isInitialized && !this.initializedStoreOnce) this.logger.warn('init: i18next is already initialized. You should call init just once!');\n this.isInitialized = true;\n if (!this.options.isClone) this.logger.log('initialized', this.options);\n this.emit('initialized', this.options);\n deferred.resolve(t);\n callback(err, t);\n };\n if (this.languages && !this.isInitialized) return finish(null, this.t.bind(this));\n this.changeLanguage(this.options.lng, finish);\n };\n if (this.options.resources || !this.options.initAsync) {\n load();\n } else {\n setTimeout(load, 0);\n }\n return deferred;\n }\n loadResources(language, callback = noop) {\n let usedCallback = callback;\n const usedLng = isString(language) ? language : this.language;\n if (typeof language === 'function') usedCallback = language;\n if (!this.options.resources || this.options.partialBundledLanguages) {\n if (usedLng?.toLowerCase() === 'cimode' && (!this.options.preload || this.options.preload.length === 0)) return usedCallback();\n const toLoad = [];\n const append = lng => {\n if (!lng) return;\n if (lng === 'cimode') return;\n const lngs = this.services.languageUtils.toResolveHierarchy(lng);\n lngs.forEach(l => {\n if (l === 'cimode') return;\n if (toLoad.indexOf(l) < 0) toLoad.push(l);\n });\n };\n if (!usedLng) {\n const fallbacks = this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);\n fallbacks.forEach(l => append(l));\n } else {\n append(usedLng);\n }\n this.options.preload?.forEach?.(l => append(l));\n this.services.backendConnector.load(toLoad, this.options.ns, e => {\n if (!e && !this.resolvedLanguage && this.language) this.setResolvedLanguage(this.language);\n usedCallback(e);\n });\n } else {\n usedCallback(null);\n }\n }\n reloadResources(lngs, ns, callback) {\n const deferred = defer();\n if (typeof lngs === 'function') {\n callback = lngs;\n lngs = undefined;\n }\n if (typeof ns === 'function') {\n callback = ns;\n ns = undefined;\n }\n if (!lngs) lngs = this.languages;\n if (!ns) ns = this.options.ns;\n if (!callback) callback = noop;\n this.services.backendConnector.reload(lngs, ns, err => {\n deferred.resolve();\n callback(err);\n });\n return deferred;\n }\n use(module) {\n if (!module) throw new Error('You are passing an undefined module! Please check the object you are passing to i18next.use()');\n if (!module.type) throw new Error('You are passing a wrong module! Please check the object you are passing to i18next.use()');\n if (module.type === 'backend') {\n this.modules.backend = module;\n }\n if (module.type === 'logger' || module.log && module.warn && module.error) {\n this.modules.logger = module;\n }\n if (module.type === 'languageDetector') {\n this.modules.languageDetector = module;\n }\n if (module.type === 'i18nFormat') {\n this.modules.i18nFormat = module;\n }\n if (module.type === 'postProcessor') {\n postProcessor.addPostProcessor(module);\n }\n if (module.type === 'formatter') {\n this.modules.formatter = module;\n }\n if (module.type === '3rdParty') {\n this.modules.external.push(module);\n }\n return this;\n }\n setResolvedLanguage(l) {\n if (!l || !this.languages) return;\n if (['cimode', 'dev'].indexOf(l) > -1) return;\n for (let li = 0; li < this.languages.length; li++) {\n const lngInLngs = this.languages[li];\n if (['cimode', 'dev'].indexOf(lngInLngs) > -1) continue;\n if (this.store.hasLanguageSomeTranslations(lngInLngs)) {\n this.resolvedLanguage = lngInLngs;\n break;\n }\n }\n if (!this.resolvedLanguage && this.languages.indexOf(l) < 0 && this.store.hasLanguageSomeTranslations(l)) {\n this.resolvedLanguage = l;\n this.languages.unshift(l);\n }\n }\n changeLanguage(lng, callback) {\n this.isLanguageChangingTo = lng;\n const deferred = defer();\n this.emit('languageChanging', lng);\n const setLngProps = l => {\n this.language = l;\n this.languages = this.services.languageUtils.toResolveHierarchy(l);\n this.resolvedLanguage = undefined;\n this.setResolvedLanguage(l);\n };\n const done = (err, l) => {\n if (l) {\n if (this.isLanguageChangingTo === lng) {\n setLngProps(l);\n this.translator.changeLanguage(l);\n this.isLanguageChangingTo = undefined;\n this.emit('languageChanged', l);\n this.logger.log('languageChanged', l);\n }\n } else {\n this.isLanguageChangingTo = undefined;\n }\n deferred.resolve((...args) => this.t(...args));\n if (callback) callback(err, (...args) => this.t(...args));\n };\n const setLng = lngs => {\n if (!lng && !lngs && this.services.languageDetector) lngs = [];\n const fl = isString(lngs) ? lngs : lngs && lngs[0];\n const l = this.store.hasLanguageSomeTranslations(fl) ? fl : this.services.languageUtils.getBestMatchFromCodes(isString(lngs) ? [lngs] : lngs);\n if (l) {\n if (!this.language) {\n setLngProps(l);\n }\n if (!this.translator.language) this.translator.changeLanguage(l);\n this.services.languageDetector?.cacheUserLanguage?.(l);\n }\n this.loadResources(l, err => {\n done(err, l);\n });\n };\n if (!lng && this.services.languageDetector && !this.services.languageDetector.async) {\n setLng(this.services.languageDetector.detect());\n } else if (!lng && this.services.languageDetector && this.services.languageDetector.async) {\n if (this.services.languageDetector.detect.length === 0) {\n this.services.languageDetector.detect().then(setLng);\n } else {\n this.services.languageDetector.detect(setLng);\n }\n } else {\n setLng(lng);\n }\n return deferred;\n }\n getFixedT(lng, ns, keyPrefix) {\n const fixedT = (key, opts, ...rest) => {\n let o;\n if (typeof opts !== 'object') {\n o = this.options.overloadTranslationOptionHandler([key, opts].concat(rest));\n } else {\n o = {\n ...opts\n };\n }\n o.lng = o.lng || fixedT.lng;\n o.lngs = o.lngs || fixedT.lngs;\n o.ns = o.ns || fixedT.ns;\n if (o.keyPrefix !== '') o.keyPrefix = o.keyPrefix || keyPrefix || fixedT.keyPrefix;\n const keySeparator = this.options.keySeparator || '.';\n let resultKey;\n if (o.keyPrefix && Array.isArray(key)) {\n resultKey = key.map(k => {\n if (typeof k === 'function') k = keysFromSelector(k, {\n ...this.options,\n ...opts\n });\n return `${o.keyPrefix}${keySeparator}${k}`;\n });\n } else {\n if (typeof key === 'function') key = keysFromSelector(key, {\n ...this.options,\n ...opts\n });\n resultKey = o.keyPrefix ? `${o.keyPrefix}${keySeparator}${key}` : key;\n }\n return this.t(resultKey, o);\n };\n if (isString(lng)) {\n fixedT.lng = lng;\n } else {\n fixedT.lngs = lng;\n }\n fixedT.ns = ns;\n fixedT.keyPrefix = keyPrefix;\n return fixedT;\n }\n t(...args) {\n return this.translator?.translate(...args);\n }\n exists(...args) {\n return this.translator?.exists(...args);\n }\n setDefaultNamespace(ns) {\n this.options.defaultNS = ns;\n }\n hasLoadedNamespace(ns, options = {}) {\n if (!this.isInitialized) {\n this.logger.warn('hasLoadedNamespace: i18next was not initialized', this.languages);\n return false;\n }\n if (!this.languages || !this.languages.length) {\n this.logger.warn('hasLoadedNamespace: i18n.languages were undefined or empty', this.languages);\n return false;\n }\n const lng = options.lng || this.resolvedLanguage || this.languages[0];\n const fallbackLng = this.options ? this.options.fallbackLng : false;\n const lastLng = this.languages[this.languages.length - 1];\n if (lng.toLowerCase() === 'cimode') return true;\n const loadNotPending = (l, n) => {\n const loadState = this.services.backendConnector.state[`${l}|${n}`];\n return loadState === -1 || loadState === 0 || loadState === 2;\n };\n if (options.precheck) {\n const preResult = options.precheck(this, loadNotPending);\n if (preResult !== undefined) return preResult;\n }\n if (this.hasResourceBundle(lng, ns)) return true;\n if (!this.services.backendConnector.backend || this.options.resources && !this.options.partialBundledLanguages) return true;\n if (loadNotPending(lng, ns) && (!fallbackLng || loadNotPending(lastLng, ns))) return true;\n return false;\n }\n loadNamespaces(ns, callback) {\n const deferred = defer();\n if (!this.options.ns) {\n if (callback) callback();\n return Promise.resolve();\n }\n if (isString(ns)) ns = [ns];\n ns.forEach(n => {\n if (this.options.ns.indexOf(n) < 0) this.options.ns.push(n);\n });\n this.loadResources(err => {\n deferred.resolve();\n if (callback) callback(err);\n });\n return deferred;\n }\n loadLanguages(lngs, callback) {\n const deferred = defer();\n if (isString(lngs)) lngs = [lngs];\n const preloaded = this.options.preload || [];\n const newLngs = lngs.filter(lng => preloaded.indexOf(lng) < 0 && this.services.languageUtils.isSupportedCode(lng));\n if (!newLngs.length) {\n if (callback) callback();\n return Promise.resolve();\n }\n this.options.preload = preloaded.concat(newLngs);\n this.loadResources(err => {\n deferred.resolve();\n if (callback) callback(err);\n });\n return deferred;\n }\n dir(lng) {\n if (!lng) lng = this.resolvedLanguage || (this.languages?.length > 0 ? this.languages[0] : this.language);\n if (!lng) return 'rtl';\n try {\n const l = new Intl.Locale(lng);\n if (l && l.getTextInfo) {\n const ti = l.getTextInfo();\n if (ti && ti.direction) return ti.direction;\n }\n } catch (e) {}\n const rtlLngs = ['ar', 'shu', 'sqr', 'ssh', 'xaa', 'yhd', 'yud', 'aao', 'abh', 'abv', 'acm', 'acq', 'acw', 'acx', 'acy', 'adf', 'ads', 'aeb', 'aec', 'afb', 'ajp', 'apc', 'apd', 'arb', 'arq', 'ars', 'ary', 'arz', 'auz', 'avl', 'ayh', 'ayl', 'ayn', 'ayp', 'bbz', 'pga', 'he', 'iw', 'ps', 'pbt', 'pbu', 'pst', 'prp', 'prd', 'ug', 'ur', 'ydd', 'yds', 'yih', 'ji', 'yi', 'hbo', 'men', 'xmn', 'fa', 'jpr', 'peo', 'pes', 'prs', 'dv', 'sam', 'ckb'];\n const languageUtils = this.services?.languageUtils || new LanguageUtil(get());\n if (lng.toLowerCase().indexOf('-latn') > 1) return 'ltr';\n return rtlLngs.indexOf(languageUtils.getLanguagePartFromCode(lng)) > -1 || lng.toLowerCase().indexOf('-arab') > 1 ? 'rtl' : 'ltr';\n }\n static createInstance(options = {}, callback) {\n return new I18n(options, callback);\n }\n cloneInstance(options = {}, callback = noop) {\n const forkResourceStore = options.forkResourceStore;\n if (forkResourceStore) delete options.forkResourceStore;\n const mergedOptions = {\n ...this.options,\n ...options,\n ...{\n isClone: true\n }\n };\n const clone = new I18n(mergedOptions);\n if (options.debug !== undefined || options.prefix !== undefined) {\n clone.logger = clone.logger.clone(options);\n }\n const membersToCopy = ['store', 'services', 'language'];\n membersToCopy.forEach(m => {\n clone[m] = this[m];\n });\n clone.services = {\n ...this.services\n };\n clone.services.utils = {\n hasLoadedNamespace: clone.hasLoadedNamespace.bind(clone)\n };\n if (forkResourceStore) {\n const clonedData = Object.keys(this.store.data).reduce((prev, l) => {\n prev[l] = {\n ...this.store.data[l]\n };\n prev[l] = Object.keys(prev[l]).reduce((acc, n) => {\n acc[n] = {\n ...prev[l][n]\n };\n return acc;\n }, prev[l]);\n return prev;\n }, {});\n clone.store = new ResourceStore(clonedData, mergedOptions);\n clone.services.resourceStore = clone.store;\n }\n clone.translator = new Translator(clone.services, mergedOptions);\n clone.translator.on('*', (event, ...args) => {\n clone.emit(event, ...args);\n });\n clone.init(mergedOptions, callback);\n clone.translator.options = mergedOptions;\n clone.translator.backendConnector.services.utils = {\n hasLoadedNamespace: clone.hasLoadedNamespace.bind(clone)\n };\n return clone;\n }\n toJSON() {\n return {\n options: this.options,\n store: this.store,\n language: this.language,\n languages: this.languages,\n resolvedLanguage: this.resolvedLanguage\n };\n }\n}\nconst instance = I18n.createInstance();\ninstance.createInstance = I18n.createInstance;\n\nconst createInstance = instance.createInstance;\nconst dir = instance.dir;\nconst init = instance.init;\nconst loadResources = instance.loadResources;\nconst reloadResources = instance.reloadResources;\nconst use = instance.use;\nconst changeLanguage = instance.changeLanguage;\nconst getFixedT = instance.getFixedT;\nconst t = instance.t;\nconst exists = instance.exists;\nconst setDefaultNamespace = instance.setDefaultNamespace;\nconst hasLoadedNamespace = instance.hasLoadedNamespace;\nconst loadNamespaces = instance.loadNamespaces;\nconst loadLanguages = instance.loadLanguages;\n\nexport { changeLanguage, createInstance, instance as default, dir, exists, getFixedT, hasLoadedNamespace, init, loadLanguages, loadNamespaces, loadResources, reloadResources, setDefaultNamespace, t, use };\n","import i18next from 'i18next'\r\nimport { initReactI18next } from 'react-i18next'\r\n\r\nimport pt from './locales/pt.json'\r\nimport en from './locales/en.json'\r\n\r\nconst resources = makeResources()\r\nfunction makeResources () {\r\n return {\r\n en: {\r\n newFormChat: en.newFormChat,\r\n messengerMessages: en.messengerMessages,\r\n messengerList: en.messengerList,\r\n },\r\n pt: {\r\n newFormChat: pt.newFormChat,\r\n messengerMessages: pt.messengerMessages,\r\n messengerList: pt.messengerList,\r\n },\r\n }\r\n}\r\n\r\n// Instância isolada -> Para não conflitar com a instância global do i18next usada no uxVision ou outros apps.\r\nconst chatI18n = i18next.createInstance()\r\n\r\nchatI18n.use(initReactI18next).init({\r\n resources,\r\n lng: 'pt',\r\n fallbackLng: 'pt',\r\n interpolation: {\r\n escapeValue: false,\r\n },\r\n})\r\n\r\nexport default chatI18n\r\n\r\nexport function setLanguage (lang: string) {\r\n chatI18n.changeLanguage(lang)\r\n}\r\n","import React, { ReactNode, useEffect } from 'react'\r\nimport { I18nextProvider } from 'react-i18next'\r\nimport defaultI18n from '../i18n'\r\n\r\ninterface ChatProviderProps {\r\n children: ReactNode\r\n locale?: string\r\n}\r\n\r\nfunction ChatProvider ({ children, locale }: ChatProviderProps) {\r\n useEffect(() => {\r\n if (locale) {\r\n defaultI18n.changeLanguage(locale)\r\n }\r\n }, [locale])\r\n\r\n return <I18nextProvider i18n={defaultI18n}>{children}</I18nextProvider>\r\n}\r\n\r\nexport default ChatProvider\r\n"],"names":["root","factory","exports","module","require","define","amd","this","__WEBPACK_EXTERNAL_MODULE__156__","___CSS_LOADER_EXPORT___","push","id","cssWithMappingToString","list","toString","map","item","content","needLayer","concat","length","join","i","modules","media","dedupe","supports","layer","undefined","alreadyImportedModules","k","_k","cssMapping","btoa","base64","unescape","encodeURIComponent","JSON","stringify","data","sourceMapping","t","e","n","r","s","u","a","o","c","f","h","d","l","$","y","M","name","weekdays","split","months","ordinal","m","String","Array","v","z","utcOffset","Math","abs","floor","date","year","month","clone","add","ceil","p","w","D","ms","Q","toLowerCase","replace","g","b","S","args","arguments","O","locale","$L","utc","$u","x","$x","$offset","parse","prototype","$d","Date","NaN","test","match","substring","UTC","init","$y","getFullYear","$M","getMonth","$D","getDate","$W","getDay","$H","getHours","$m","getMinutes","$s","getSeconds","$ms","getMilliseconds","$utils","isValid","isSame","startOf","endOf","isAfter","isBefore","$g","set","unix","valueOf","getTime","toDate","apply","slice","$locale","weekStart","$set","min","daysInMonth","get","Number","round","subtract","format","invalidDate","meridiem","monthsShort","weekdaysMin","weekdaysShort","getTimezoneOffset","diff","toJSON","toISOString","toUTCString","_","forEach","extend","$i","isDayjs","en","Ls","default","formats","LT","LTS","L","LL","LLL","LLLL","relativeTime","future","past","mm","hh","dd","MM","yy","isToday","day","hour","minute","second","timeZoneName","Intl","DateTimeFormat","hour12","timeZone","formatToParts","type","value","parseInt","tz","toLocaleString","$timezone","offsetName","guess","find","call","max","resolvedOptions","setDefault","local","getUTCFullYear","getUTCMonth","getUTCDate","getUTCDay","getUTCHours","getUTCMinutes","getUTCSeconds","getUTCMilliseconds","$localOffset","isUTC","stylesInDOM","getIndexByIdentifier","identifier","result","modulesToDom","options","idCountMap","identifiers","base","count","indexByIdentifier","obj","css","sourceMap","references","updater","addElementStyle","byIndex","splice","api","domAPI","update","newObj","remove","lastIdentifiers","newList","index","newLastIdentifiers","_i","_index","memo","insert","style","target","styleTarget","document","querySelector","window","HTMLIFrameElement","contentDocument","head","getTarget","Error","appendChild","element","createElement","setAttributes","attributes","styleElement","nonce","setAttribute","insertStyleElement","styleTagTransform","parentNode","removeChild","removeStyleElement","styleSheet","cssText","firstChild","createTextNode","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","getter","__esModule","definition","key","Object","defineProperty","enumerable","prop","hasOwnProperty","Symbol","toStringTag","nc","defaultThemeVariables","asideBg","asideFontColor","messengerMessagesBg","headerAndSenderBg","buttonPrimary","buttonPrimaryText","buttonsDisabled","uploadFileIconColor","messengerNotSelectedBg","newChatFormBg","newChatFormRadius","newChatFormTexts","newChatFormDeleteFileButton","disclaimerPrimaryColor","disclaimerSecondaryColor","disclaimerTextColor","messengerSenderColor","messengerIncomerColor","messengerSystemColor","borderColor","inputBg","chatInputBorder","listItemHover","active","activeTabBorter","emptyMessagesFontColor","documentMessagesTextColor","MessageThemeContext","createContext","children","theme","config","Provider","context","useContext","serverTz","timeAsDayjs","server","applyTimezone","timezone","seconds","holidays","isWorkingDay","dayOfWeek","isWorkingHour","isWeekendOrHoliday","weekDay","includes","formatedDate","isHoliday","canUpdateClock","isWorking","getDiffInSeconds","startDate","endDate","calculateWorkingTime","workingHours","current","workingTime","startOfDay","start","endOfDay","end","getDifferenceInSeconds","secondsInHours","currentSeconds","hours","minutes","padStart","getColorsByTime","create","alreadyWarned","i18n","code","msg","rest","services","logger","forward","warn","console","loadedClb","cb","isInitialized","initialized","setTimeout","off","on","loadNamespaces","ns","loadLanguages","lng","preload","indexOf","matchHtmlEntity","htmlEntities","unescapeHtmlEntity","defaultOptions","bindI18n","bindI18nStore","transEmptyNodeValue","transSupportBasicHtmlNodes","transWrapTextNodes","transKeepBasicHtmlNodesFor","useSuspense","text","i18nInstance","initReactI18next","instance","setDefaults","react","setI18n","ReportNamespaces","constructor","usedNamespaces","addUsedNamespaces","namespaces","getUsedNamespaces","keys","alwaysNewT","language","namespace","keyPrefix","getFixedT","props","i18nFromProps","i18nFromContext","defaultNS","defaultNSFromContext","reportNamespaces","notReadyT","optsOrDefaultValue","defaultValue","isArray","retNotReady","ready","wait","i18nOptions","initializedStoreOnce","every","languages","hasLoadedNamespace","precheck","loadNotPending","backendConnector","backend","isLanguageChangingTo","memoGetT","useCallback","useMemoizedT","nsMode","getT","getNewT","setT","useState","joinedNS","previousJoinedNS","ignore","ref","useRef","useEffect","usePrevious","isMounted","boundReset","store","ret","Promise","resolve","I18nextProvider","useMemo","image","className","background","loading","alt","src","TimerIcon","color","width","height","viewBox","fill","xmlns","activeItem","defaultClass","activeClass","querySelectorAll","classList","currentTarget","unread","onClick","canSeeDetailsChat","currentId","currentViewerId","totalUnreadMessages","unreadMessages","setUnreadMessages","closedChat","status","state","setBackground","counter","setCounter","isInprogress","systemicValue","otherChatMember","users","uniqueCode","creator","interval","sla","SlaDates","currentTime","createdAt","diference","setInterval","prev","SLATimePassed","clearInterval","handleClick","onMouseOver","onMouseLeave","backgroundColor","_id","username","reason","protocol","handleChangeTickets","chatListTabs","tab","label","chatButtons","removeActiveItem","button","canSee","disabled","event","border","SearchIcon","searchChat","searchKeys","loadingSearch","searchKey","setSearchKey","searchValue","setSearchValue","onChange","placeholder","onKeyDown","borderLeft","EmptyIcon","intersectDivStyle","visibility","loadingCover","more","fetch","reverse","rootMargin","infiniteElement","setInfiniteElement","currentElement","observer","IntersectionObserver","entries","isIntersecting","threshold","observe","unobserve","ListLoading","Fragment","idx","borderBottom","affix","conversations","failed","showBadge","messegerView","helpDesk","hasNext","onIntersect","sliceCount","borderRadius","ChatButton","__assign","assign","__rest","getOwnPropertySymbols","propertyIsEnumerable","__awaiter","thisArg","_arguments","P","generator","reject","fulfilled","step","next","rejected","done","then","__generator","body","sent","trys","ops","verb","iterator","op","TypeError","pop","__spreadArray","to","from","pack","ar","xmlnsXlink","x1","x2","y1","y2","gradientUnits","offset","stopColor","xlinkHref","rx","textAnchor","fontSize","fontWeight","fileType","b64","file","onClose","fileInfo","setFileInfo","setB64","reader","FileReader","readAsDataURL","onload","onerror","error","getBase64","insertAt","getElementsByTagName","insertBefore","styleInject","ReactSimpleImageViewer","_a","currentIndex","setCurrentIndex","changeImage","delta","nextIndex","closeOnClickOutside","checkId","checkClass","contains","stopPropagation","handleKeyDown","handleWheel","wheelDeltaY","addEventListener","disableScroll","removeEventListener","backgroundStyle","closeComponent","leftArrowComponent","rightArrowComponent","formatFileSize","size","toFixed","location","toUpperCase","fileName","originalname","filePages","pages","fileSize","mimetype","href","rel","MessageImage","MessageWithFile","message","openImageViewer","formatDate","currentImage","isImage","read","user","hasFile","isSystemMessage","setCurrentImage","isViewerOpen","setIsViewerOpen","avatar","ReadIcon","isDoc","creatorId","senderId","sender","everybodyHasRead","images","clipPath","TrashIcon","fileList","onUpdateFile","onRemoveFile","maxSize","validateFileType","allowedTypes","extension","htmlFor","hidden","accept","files","input","click","some","motivo","CloseIcon","submitNewChat","cancelNewChat","reasons","products","maxFileSize","loadingResources","setReason","product","setProduct","setMessage","setFileList","onSubmit","data2","FormData","preventDefault","append","Select","filter","AttachFileIcon","AllowDocuments","allowImages","attachFile","handleFile","maxFileField","updateFile","isLoading","formHeight","setFormHeight","sending","setSending","inputRef","correctTextAreaHeight","styleConfig","textarea","overflowY","overflow","handleSubmit","maxHeight","textareaRef","scrollHeight","initialHeight","adjustFormHeight","shiftKey","fileExtension","SpinLoading","MessagesContainerView","newChatLoading","Messages","messages","ticketId","onScrollToBottom","scrollContainer","scrollTop","MAX_SAFE_INTEGER","MessagesContainer","fowardRef","padding","ScrollableContainer","scrollContainerFowardRef","getElementScrollHeight","divRef","isNill","elementBeforeIntersetHeight","elementAfterIntersectHeight","currentScrollTop","intersetRootMargin","calculateScrollToDecrease","header","setFile","scrollContainerRef","isSending","setIsSending","setMaxSize","styleClassnames","mobile","response","callback","useConversations","setSliceCount","setConversations","currentChat","setCurrentChat","viewDesktop","setViewDesktop","viewMobile","setViewMobile","changeViewDesktop","view","changeViewMobile","addConversations","goToNewConversation","reset","addOneUnreadToTicket","updatedConversations","conversation","findIndex","conversationToMove","unshift","reorderConversations","mapConversationsIncrementUnread","setAsRead","mapConversationsUnread","selectChat","chat","onCloseChat","filtred","removeClosedConversation","closeIfIsCurrent","useMessages","setMessages","totalMessages","setTotalMessages","addMessages","incrementMessages","ticket","currentChatId","existentMessage","messagecode","updateMesssagesAsRead","markAsRead","readMessages","addTotalMessages","total","hasOlderMessages","defer","res","rej","promise","makeString","object","lastOfPathSeparatorRegExp","cleanKey","canNotTraverseDeeper","getLastOfPath","path","Empty","stack","stackIndex","setPath","newValue","last","getPath","deepExtend","source","overwrite","regexEscape","str","_entityMap","chars","looksLikeObjectPathRegExpCache","capacity","regExpMap","Map","regExpQueue","getRegExp","pattern","regExpFromCache","regExpNew","RegExp","delete","shift","deepFind","keySeparator","tokens","nextPath","j","getCleanedCode","consoleLogger","log","output","Logger","concreteLogger","prefix","debug","deprecate","lvl","debugOnly","moduleName","baseLogger","EventEmitter","observers","events","listener","numListeners","emit","numTimesAdded","ResourceStore","super","ignoreJSONStructure","addNamespaces","removeNamespaces","getResource","addResource","silent","addResources","resources","addResourceBundle","deep","skipCopy","removeResourceBundle","hasResourceBundle","getResourceBundle","getDataByLanguage","hasLanguageSomeTranslations","postProcessor","processors","addPostProcessor","handle","translator","processor","process","PATH_KEY","keysFromSelector","selector","opts","handler","proxy","revoke","Proxy","revocable","createProxy","checkedLoadedFor","shouldHandleAsObject","Translator","copy","changeLanguage","exists","interpolation","opt","extractFromKey","nsSeparator","wouldCheckForNsInKey","seemsNaturalLanguage","userDefinedKeySeparator","userDefinedNsSeparator","possibleChars","matched","ki","looksLikeObjectPath","interpolator","nestingRegexp","parts","translate","lastKey","overloadTranslationOptionHandler","returnDetails","appendNamespaceToCIMode","usedKey","exactUsedKey","usedLng","usedNS","usedParams","getUsedParamsDetails","resolved","resUsedKey","resExactUsedKey","joinArrays","handleAsObjectInI18nFormat","i18nFormat","handleAsObject","needsPluralHandling","hasDefaultValue","defaultValueSuffix","pluralResolver","getSuffix","defaultValueSuffixOrdinalFallback","needsZeroSuffixLookup","pluralSeparator","resForObjHndl","resType","extendTranslation","usedDefault","isValidLookup","resForMissing","missingKeyNoValueFallbackToKey","updateMissing","fk","lngs","fallbackLngs","languageUtils","getFallbackCodes","fallbackLng","saveMissingTo","toResolveHierarchy","send","specificDefaultValue","defaultForMissing","missingKeyHandler","saveMissing","saveMissingPlurals","suffixes","getSuffixes","suffix","appendNamespaceToMissingKey","parseMissingKeyHandler","returnObjects","returnedObjectHandler","resTypeIsArray","newKeyToUse","deepKey","defaultVariables","skipInterpolation","skipOnVariables","nestBef","nb","interpolate","na","nest","postProcess","postProcessorNames","applyPostProcessor","postProcessPassResolved","i18nResolved","found","extracted","fallbackNS","needsContextHandling","codes","utils","finalKeys","addLookupKeys","pluralSuffix","zeroSuffix","ordinalPrefix","contextKey","contextSeparator","possibleKey","returnNull","returnEmptyString","resourceStore","optionsKeys","useOptionsReplaceForData","static","option","LanguageUtil","supportedLngs","getScriptPartFromCode","formatLanguageCode","getLanguagePartFromCode","formattedCode","getCanonicalLocales","lowerCaseLng","cleanCode","isSupportedCode","load","nonExplicitSupportedLngs","getBestMatchFromCodes","cleanedLng","lngScOnly","lngOnly","supportedLng","fallbacks","fallbackCode","fallbackCodes","addCode","fc","suffixesOrder","zero","one","two","few","many","other","dummyRule","select","pluralCategories","PluralResolver","pluralRulesCache","addRule","rules","clearCache","getRule","cleanedCode","cacheKey","rule","PluralRules","err","lngPart","needsPlural","getPluralFormsOfKey","sort","pluralCategory1","pluralCategory2","pluralCategory","prepend","deepFindWithDefaults","defaultData","getPathWithDefaults","regexSafe","val","Interpolator","escapeValue","escape","escape$1","useRawValueToEscape","prefixEscaped","suffixEscaped","formatSeparator","unescapeSuffix","unescapePrefix","nestingPrefix","nestingPrefixEscaped","nestingSuffix","nestingSuffixEscaped","nestingOptionsSeparator","maxReplaces","alwaysFormat","resetRegExp","getOrResetRegExp","existingRegExp","lastIndex","regexp","regexpUnescape","replaces","handleFormat","interpolationkey","trim","missingInterpolationHandler","regex","safeValue","todo","exec","matchedVar","temp","clonedOptions","handleHasOptions","inheritedOptions","sep","optionsString","matchedSingleQuotes","matchedDoubleQuotes","formatters","keyEndIndex","lastIndexOf","elem","Boolean","reduce","createCachedFormatter","fn","cache","optForCache","formatParams","frm","createNonCachedFormatter","Formatter","cf","cacheInBuiltFormats","number","formatter","NumberFormat","currency","datetime","relativetime","RelativeTimeFormat","range","ListFormat","addCached","mem","formatName","formatOptions","formatStr","optStr","trimmedKey","isNaN","parseFormatStr","formatted","valOptions","Connector","waitingReads","maxParallelReads","readingCalls","maxRetries","retryTimeout","queue","queueLoad","toLoad","pending","toLoadLanguages","toLoadNamespaces","hasAllNamespaces","reload","pendingCount","loaded","errors","q","pushPath","removePending","loadedKeys","fcName","tried","resolver","bind","catch","prepareLoading","loadOne","fallbackValue","isUpdate","clb","initAsync","simplifyPluralSuffix","partialBundledLanguages","tDescription","transformOptions","initImmediate","noop","I18n","inst","external","getOwnPropertyNames","getPrototypeOf","isClone","isInitializing","defOpts","createClassOnDemand","ClassOrObject","lu","languageDetector","detection","deferred","finish","loadResources","usedCallback","resolvedLanguage","setResolvedLanguage","reloadResources","use","li","lngInLngs","setLngProps","setLng","fl","cacheUserLanguage","async","detect","fixedT","resultKey","setDefaultNamespace","lastLng","loadState","preResult","preloaded","newLngs","dir","Locale","getTextInfo","ti","direction","cloneInstance","forkResourceStore","mergedOptions","clonedData","acc","createInstance","newFormChat","messengerMessages","messengerList","pt","chatI18n","setLanguage","lang"],"sourceRoot":""}
|