agx-chat-web 1.1.0 → 1.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +49 -49
- package/dist/agx-chat.esm.js +1 -1
- package/dist/agx-chat.esm.js.map +1 -1
- package/dist/{agx-chat.min.js → agx-chat.umd.js} +2 -2
- package/dist/agx-chat.umd.js.map +1 -0
- package/dist/esm/app/Messenger/components/IncomingMessage/IncomingMessage.js +7 -3
- package/dist/esm/app/Messenger/components/IncomingMessage/IncomingMessage.js.map +1 -1
- package/dist/esm/app/Messenger/components/InputFile/InputFile.js +3 -1
- package/dist/esm/app/Messenger/components/InputFile/InputFile.js.map +1 -1
- package/dist/esm/app/Messenger/components/RenderFileIcon/RenderFileIcon.js +8 -0
- package/dist/esm/app/Messenger/components/RenderFileIcon/RenderFileIcon.js.map +1 -1
- package/dist/esm/app/Messenger/components/SendMessageForm/SendMessageForm.js +30 -8
- package/dist/esm/app/Messenger/components/SendMessageForm/SendMessageForm.js.map +1 -1
- package/dist/esm/app/Messenger/components/SenderMessages/SenderMessages.js +11 -8
- package/dist/esm/app/Messenger/components/SenderMessages/SenderMessages.js.map +1 -1
- package/dist/esm/app/Messenger/icons/CSVFileIcon.d.ts +4 -0
- package/dist/esm/app/Messenger/icons/CSVFileIcon.js +7 -0
- package/dist/esm/app/Messenger/icons/CSVFileIcon.js.map +1 -0
- package/dist/esm/app/Messenger/icons/MP4FileIcon.d.ts +4 -0
- package/dist/esm/app/Messenger/icons/MP4FileIcon.js +7 -0
- package/dist/esm/app/Messenger/icons/MP4FileIcon.js.map +1 -0
- package/package.json +91 -91
- package/src/__tests__/app/Messenger/classes/slaCalculations.spec.ts +122 -122
- package/src/app/ChatProvider/ChatProvider.tsx +20 -20
- package/src/app/Messenger/classes/slaCalculations.ts +197 -197
- package/src/app/Messenger/components/ChatButton/ChatButton.tsx +64 -64
- package/src/app/Messenger/components/ChatTabs/ChatTabs.less +18 -18
- package/src/app/Messenger/components/ChatTabs/ChatTabs.tsx +32 -32
- package/src/app/Messenger/components/DocMessage/DocMessage.less +71 -71
- package/src/app/Messenger/components/DocMessage/DocMessage.tsx +50 -50
- package/src/app/Messenger/components/ImagesContainer/ImagesContainer.less +79 -79
- package/src/app/Messenger/components/ImagesContainer/ImagesContainer.tsx +51 -51
- package/src/app/Messenger/components/IncomingMessage/IncomingMessage.tsx +170 -166
- package/src/app/Messenger/components/InfiniteScroll/InfiniteScroll.tsx +80 -80
- package/src/app/Messenger/components/InputFile/InputFile.tsx +147 -145
- package/src/app/Messenger/components/InputFile/inputFile.less +59 -59
- package/src/app/Messenger/components/MessageBallon/MessageBalloon.tsx +100 -100
- package/src/app/Messenger/components/MessengerAvatar/MessengerAvatar.tsx +29 -29
- package/src/app/Messenger/components/MessengerThemeWrapper/MessengerThemeWrapper.tsx +62 -62
- package/src/app/Messenger/components/RenderFileIcon/RenderFileIcon.tsx +40 -34
- package/src/app/Messenger/components/SearchInput/SearchInput.less +45 -45
- package/src/app/Messenger/components/SearchInput/SearchInput.tsx +77 -77
- package/src/app/Messenger/components/Select/Select.less +22 -22
- package/src/app/Messenger/components/Select/Select.tsx +56 -56
- package/src/app/Messenger/components/SendMessageForm/SendMessageForm.tsx +254 -234
- package/src/app/Messenger/components/SenderMessages/SenderMessages.tsx +91 -89
- package/src/app/Messenger/components/SystemMessage/SystemMessage.tsx +25 -25
- package/src/app/Messenger/components/TextArea/TextArea.tsx +35 -35
- package/src/app/Messenger/components/TextArea/Textarea.less +22 -22
- package/src/app/Messenger/components/Tooltip/Tooltip.less +27 -27
- package/src/app/Messenger/components/Tooltip/Tooltip.tsx +17 -17
- package/src/app/Messenger/hooks/useConversations.tsx +143 -143
- package/src/app/Messenger/hooks/useMessages.tsx +49 -49
- package/src/app/Messenger/hooks/useThemes.tsx +14 -14
- package/src/app/Messenger/icons/AttachFileIcon.tsx +20 -20
- package/src/app/Messenger/icons/CSVFileIcon.tsx +26 -0
- package/src/app/Messenger/icons/CloseIcon.tsx +20 -20
- package/src/app/Messenger/icons/DOCFileIcon.tsx +54 -54
- package/src/app/Messenger/icons/DownloadMinimalistIcon.tsx +37 -37
- package/src/app/Messenger/icons/EmptyIcon.tsx +20 -20
- package/src/app/Messenger/icons/MP4FileIcon.tsx +26 -0
- package/src/app/Messenger/icons/MessageIcon.tsx +27 -27
- package/src/app/Messenger/icons/PDFFileIcon.tsx +54 -54
- package/src/app/Messenger/icons/ReadIcon.tsx +18 -18
- package/src/app/Messenger/icons/SearchIcon.tsx +20 -20
- package/src/app/Messenger/icons/TimerIcon.tsx +18 -18
- package/src/app/Messenger/icons/TrashIcon.tsx +21 -21
- package/src/app/Messenger/views/Messenger.less +623 -623
- package/src/app/Messenger/views/MessengerList.tsx +170 -170
- package/src/app/Messenger/views/MessengerListItem.tsx +178 -178
- package/src/app/Messenger/views/MessengerMessages.tsx +414 -414
- package/src/app/Messenger/views/NewFormChat.tsx +145 -145
- package/src/app/i18n/index.ts +36 -36
- package/src/app/i18n/locales/en.json +64 -64
- package/src/app/i18n/locales/pt.json +64 -64
- package/src/assets/right-arrow.svg +9 -9
- package/src/index.ts +23 -23
- package/src/react-app-env.d.ts +19 -19
- package/src/setupTests.ts +5 -5
- package/src/styles/abstracts/animations.less +8 -8
- package/src/styles/abstracts/mixins.less +5 -5
- package/src/styles/abstracts/variables.less +31 -31
- package/src/styles/base/base.less +6 -6
- package/src/styles/index.less +5 -5
- package/src/types.ts +174 -174
- package/dist/agx-chat.min.js.map +0 -1
package/dist/agx-chat.min.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"agx-chat.min.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/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})(self, (__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'\n\nconst defaultThemeVariables = {\n asideBg: '#eee',\n asideFontColor: 'var(--secondary-color)',\n messengerMessagesBg: '#eeeeee',\n headerAndSenderBg: '#232831',\n buttonPrimary: '#25D366',\n buttonPrimaryText: '#707070',\n buttonsDisabled: '#94989D',\n uploadFileIconColor: '#8696a0',\n messengerNotSelectedBg: '#DDDDDD',\n newChatFormBg: '',\n newChatFormRadius: '0 20px 20px 0',\n newChatFormTexts: '#000',\n newChatFormDeleteFileButton: '#DD4E4E',\n disclaimerPrimaryColor: '#4791FF',\n disclaimerSecondaryColor: '#4791FF',\n disclaimerTextColor: '#000',\n messengerSenderColor: '#00A73E',\n messengerIncomerColor: '#707070',\n messengerSystemColor: '#2A313A',\n borderColor: '#AAAAAA',\n inputBg: 'var(--secondary-color)',\n chatInputBorder: '',\n listItemHover: '',\n active: '',\n activeTabBorter: '#25D366',\n emptyMessagesFontColor: '#000',\n documentMessagesTextColor: '#fff',\n}\n\ntype ThemeVariables = typeof defaultThemeVariables\n\ntype ThemeContextContent = {\n theme: Partial<ThemeVariables>\n}\n\nexport const MessageThemeContext = createContext<ThemeContextContent>(\n {} as unknown as ThemeContextContent\n)\n\ntype Props = {\n children: ReactNode\n theme?: Partial<ThemeVariables>\n}\nconst MessageThemeWrapper = ({\n children,\n theme = defaultThemeVariables,\n}: Props) => {\n const config = {\n theme,\n }\n\n return (\n <MessageThemeContext.Provider value={config}>\n {children}\n </MessageThemeContext.Provider>\n )\n}\n\nexport default MessageThemeWrapper\n","import { useContext } from 'react'\nimport { MessageThemeContext } from '../components/MessengerThemeWrapper/MessengerThemeWrapper'\n\nconst useTheme = () => {\n const context = useContext(MessageThemeContext)\n\n if (context === undefined) {\n throw new Error('useTheme must be used within a ThemeProvider')\n }\n\n return context\n}\n\nexport default useTheme\n","import dayjs, { ConfigType, Dayjs } from 'dayjs'\nimport dayjsBR from 'dayjs/locale/pt-br'\nimport utc from 'dayjs/plugin/utc'\nimport timezone from 'dayjs/plugin/timezone'\nimport isToday from 'dayjs/plugin/isToday'\nconst serverTz = 'America/Sao_Paulo'\n\ndayjs.extend(utc)\ndayjs.extend(timezone)\ndayjs.extend(isToday)\ndayjs.locale(dayjsBR)\n\nexport const timeAsDayjs = (\n value: ConfigType = new Date(),\n options?: { server?: boolean; applyTimezone?: boolean }\n): Dayjs => {\n const server = options?.server\n const applyTimezone = options?.applyTimezone\n\n let timezone = dayjs.tz.guess()\n if (!(applyTimezone ?? true)) timezone = 'GMT'\n else if (server ?? false) timezone = serverTz\n\n return dayjs.tz(value, timezone)\n}\n\nexport const time = (\n value: ConfigType = new Date(),\n options?: { server?: boolean; applyTimezone?: boolean }\n): Date => {\n const server = options?.server\n const applyTimezone = options?.applyTimezone\n let aux: Dayjs\n\n if (!(applyTimezone ?? true))\n aux = dayjs.tz(value, 'GMT') // Set applyTimezone to false when timezone is applied incorrectly (usually when working with JSDate and timestamps)\n else if (server ?? false) aux = dayjs.tz(value, serverTz)\n else aux = dayjs.tz(value, dayjs.tz.guess())\n\n return new Date(\n Date.UTC(\n aux.year(),\n aux.month(),\n aux.date(),\n aux.hour(),\n aux.minute(),\n aux.second(),\n aux.millisecond()\n )\n )\n}\n\nexport class SlaDates {\n public seconds: number | null\n\n constructor (seconds: number) {\n this.seconds = seconds\n }\n\n private holidays = {\n 2023: ['09-07', '10-12', '10-17', '11-02', '11-15', '11-20', '12-25'],\n }\n\n private isWorkingDay (date: Dayjs) {\n const dayOfWeek = date.day()\n return dayOfWeek >= 1 && dayOfWeek <= 5 // Monday to Friday (1 to 5)\n }\n\n private isWorkingHour (date: Dayjs) {\n const hour = date.hour()\n return hour >= 9 && hour <= 18 // Between 9 AM and 5 PM (inclusive)\n }\n\n public isWeekendOrHoliday (date: Dayjs | Date | string): boolean {\n const weekDay = timeAsDayjs(date, { applyTimezone: false }).day()\n if ([6, 0].includes(weekDay)) return true\n\n const formatedDate = timeAsDayjs(date).format('MM-DD')\n const isHollyday = this.holidays[2023].includes(formatedDate)\n return isHollyday\n }\n\n private isHoliday (date: Dayjs) {\n const formatedDate = timeAsDayjs(date, { applyTimezone: false }).format(\n 'MM-DD'\n )\n const isHollyday = this.holidays[2023].includes(formatedDate)\n return isHollyday\n }\n\n public canUpdateClock (date: Dayjs) {\n const isWorking = this.isWorkingDay(date) && this.isWorkingHour(date)\n return !this.isWeekendOrHoliday(date) && isWorking\n }\n\n public getDiffInSeconds (\n startDate: dayjs.Dayjs,\n endDate: dayjs.Dayjs\n ): number {\n const diffInSeconds = endDate.diff(startDate, 'second')\n return diffInSeconds\n }\n\n calculateWorkingTime (\n startDate: Dayjs,\n endDate: Dayjs,\n workingHours: { start: number; end: number }\n ) {\n let current = startDate.clone()\n let workingTime = 0\n\n while (current.isBefore(endDate)) {\n // Skip weekends (Saturday and Sunday) and Holydays\n\n if (this.isWorkingDay(current) && !this.isHoliday(current)) {\n const startOfDay = current\n .clone()\n .startOf('day')\n .add(workingHours.start, 'hour')\n const endOfDay = current\n .clone()\n .startOf('day')\n .add(workingHours.end, 'hour')\n\n if (current.isBefore(startOfDay)) {\n // If current time is before the start of working hours, move to the start of working hours\n current = startOfDay.clone()\n }\n\n if (current.isAfter(endOfDay)) {\n current = current.clone().add(1, 'day').startOf('day')\n } else if (endDate.isAfter(endOfDay)) {\n // If end date is after the end of working hours, add a full working day\n\n workingTime += Math.abs(endOfDay.clone().diff(current, 'second'))\n current = current\n .clone()\n .add(1, 'day')\n .startOf('day')\n .add(workingHours.start, 'hour')\n } else {\n // Calculate working time for the last day (end date)\n workingTime += Math.abs(endDate.clone().diff(current, 'second'))\n\n break\n }\n } else {\n // Move to the next day\n current = current.clone().add(1, 'day').startOf('day')\n }\n }\n\n return workingTime\n }\n\n // Function to calculate the difference in seconds between two dates considering working hours\n getDifferenceInSeconds (\n startDate: Dayjs,\n endDate: Dayjs,\n workingHours: { start: number; end: number }\n ) {\n if (endDate.isBefore(startDate)) {\n throw new Error('End date should be after the start date.')\n }\n\n const workingTimeInSeconds = this.calculateWorkingTime(\n startDate,\n endDate,\n workingHours\n )\n return workingTimeInSeconds\n }\n\n static secondsInHours (currentSeconds: number) {\n const hours = Math.floor(currentSeconds / 3600)\n const minutes = Math.floor((currentSeconds % 3600) / 60)\n const seconds = currentSeconds % 60\n return `${hours.toString().padStart(2, '0')}:${minutes.toString().padStart(2, '0')}:${seconds.toString().padStart(2, '0')}`\n }\n\n static getColorsByTime (seconds: number) {\n const hours = seconds / 3600\n if (hours <= 2) {\n return '#00CF7B'\n }\n\n if (hours >= 2 && hours < 3) {\n return '#FF9838'\n }\n\n if (hours >= 3 && hours < 4) {\n return '#DD4E4E'\n }\n\n return '#151919'\n }\n}\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'\nimport React from 'react'\nimport { useTranslation } from 'react-i18next'\nimport { IMesssengerAvatar } from 'types'\n\nfunction MessengerAvatar ({\n image,\n children,\n className = '',\n}: IMesssengerAvatar) {\n const { t } = useTranslation('messengerList')\n const { theme } = useTheme()\n return (\n <figure\n className={`${className} messenger__aside-list-item--avatar`}\n style={{\n background: theme.messengerIncomerColor,\n }}\n >\n {image ? (\n <img loading='lazy' alt={t('messengerAvatar.alt')} src={image} />\n ) : (\n children\n )}\n </figure>\n )\n}\n\nexport default MessengerAvatar\n","import React from 'react'\n\nexport default function TimerIcon ({ color }: { color: string }) {\n return (\n <svg\n width='14'\n height='14'\n viewBox='0 0 18 18'\n fill={color}\n xmlns='http://www.w3.org/2000/svg'\n >\n <path\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'\n fill={color}\n />\n </svg>\n )\n}\n","import React, { useState, useMemo, useEffect } from 'react'\nimport { IList } from 'types'\nimport { SlaDates, timeAsDayjs } from '../classes/slaCalculations'\nimport MessengerAvatar from '../components/MessengerAvatar/MessengerAvatar'\nimport useTheme from '../hooks/useThemes'\nimport TimerIcon from '../icons/TimerIcon'\n\ninterface IListItem {\n onClick: (item: IList) => void\n item: IList\n currentId?: string\n canSeeDetailsChat: boolean\n currentViewerId: string\n}\n\nexport function activeItem (\n e: React.MouseEvent<HTMLElement, MouseEvent>,\n defaultClass: string,\n activeClass: string\n) {\n const click = document.querySelectorAll(`.${defaultClass}`)\n click.forEach((item) => {\n item.classList.remove(activeClass)\n })\n\n e.currentTarget.className += ` ${activeClass} `\n}\n\nfunction MessengerListItem ({\n item,\n onClick,\n canSeeDetailsChat,\n currentId,\n currentViewerId,\n}: IListItem) {\n const [unreadMessages, setUnreadMessages] = useState<\n typeof item.totalUnreadMessages\n >(item.totalUnreadMessages)\n const closedChat = useMemo(\n () =>\n item.status.current.state === 'final'\n ? 'messenger__aside-list-item--closed'\n : '',\n [item]\n )\n const [background, setBackground] = useState<string | undefined>('')\n const [counter, setCounter] = useState<number | null>(null)\n\n const { theme } = useTheme()\n const isInprogress = item.status?.current?.systemicValue === 'inprogress'\n\n const otherChatMember = useMemo(\n () =>\n item?.users.find((item) => item.uniqueCode !== currentViewerId) ||\n item.creator,\n [item?.users, currentViewerId]\n )\n\n useEffect(() => {\n let interval: NodeJS.Timer\n if (isInprogress && canSeeDetailsChat) {\n const sla = new SlaDates(\n timeAsDayjs(item.currentTime).diff(item.createdAt, 'second')\n )\n const diference = sla.calculateWorkingTime(\n timeAsDayjs(item.createdAt),\n timeAsDayjs(),\n { start: 9, end: 18 }\n )\n\n setCounter(diference)\n if (sla.canUpdateClock(timeAsDayjs())) {\n interval = setInterval(() => {\n setCounter((prev) => (prev !== null ? prev + 1 : null))\n }, 1000)\n }\n } else {\n setCounter(item.SLATimePassed ?? null)\n }\n\n return () => {\n clearInterval(interval)\n }\n }, [])\n\n useEffect(() => {\n setUnreadMessages(item.totalUnreadMessages)\n }, [item])\n\n function handleClick (\n e: React.MouseEvent<HTMLElement, MouseEvent>,\n item: IList\n ) {\n activeItem(\n e,\n 'messenger__aside-list-item',\n 'messenger__aside-list-item--active'\n )\n onClick(item)\n }\n\n function formatUnreadMessages (unread: number) {\n if (!unread) return 0\n if (unread >= 99) return 99\n return unread\n }\n\n const onMouseOver = () => {\n setBackground(theme?.listItemHover)\n }\n\n const onMouseLeave = () => {\n setBackground('')\n }\n\n const ShowTimer = () => {\n if (counter === null) return null\n\n return (\n <span\n className='messenger__aside-timer'\n style={{\n background: SlaDates.getColorsByTime(counter),\n color: 'var(--secondary-color)',\n width: 'fit-content',\n }}\n >\n <TimerIcon color='var(--secondary-color)' />\n \n <b>{SlaDates.secondsInHours(counter)}</b>\n </span>\n )\n }\n\n return (\n <div\n className={`messenger__aside-list-item ${closedChat}`}\n onClick={(e) => handleClick(e, item)}\n onMouseOver={onMouseOver}\n onMouseLeave={onMouseLeave}\n style={{\n color: theme?.asideFontColor,\n backgroundColor: currentId === item._id ? theme?.active : background,\n }}\n >\n <MessengerAvatar image={otherChatMember?.image}>\n {otherChatMember && otherChatMember.username\n ? otherChatMember.username.slice(0, 1)\n : ''}\n </MessengerAvatar>\n\n <div className='messenger__aside-list-item--info'>\n <p className='messenger__aside-list-item--title'>\n {otherChatMember?.username}\n </p>\n {item?.reason && (\n <p className='messenger__aside-list-item--description'>\n {item.reason}\n </p>\n )}\n {canSeeDetailsChat && <ShowTimer />}\n </div>\n\n {item && (\n <div className='messenger__aside-list-item--additional'>\n {canSeeDetailsChat && `#${item.protocol}`}\n {unreadMessages > 0 && (\n <div className='messenger__aside-list-item--unread'>\n <span>{formatUnreadMessages(unreadMessages)}</span>\n </div>\n )}\n </div>\n )}\n </div>\n )\n}\n\nexport default MessengerListItem\n","import useTheme from '../../hooks/useThemes'\nimport { activeItem } from '../../views/MessengerListItem'\nimport React from 'react'\n\ninterface IProps {\n handleChangeTickets: (tab: string) => void\n chatListTabs: { value: string; label: string }[]\n}\n\nfunction ChatTabs ({ handleChangeTickets, chatListTabs }: IProps) {\n const { theme } = useTheme()\n return (\n <div className='chat-tabs' style={{ color: theme.asideFontColor }}>\n {chatListTabs.map((tab, index) => {\n return (\n <button\n key={`chatListTab-${index}`}\n className={`chat-tabs__button ${index === 0 && 'chat-tabs__button--active'}`}\n onClick={(e) => {\n handleChangeTickets(tab.value)\n activeItem(e, 'chat-tabs__button', 'chat-tabs__button--active')\n }}\n >\n {tab.label}\n </button>\n )\n })}\n </div>\n )\n}\n\nexport default ChatTabs\n","import React from 'react'\nimport useTheme from '../../hooks/useThemes'\n\ninterface INewChatButton {\n removeActiveItem: (e: React.MouseEvent<HTMLElement, MouseEvent>) => void\n messegerView: 'empty' | 'messages' | 'newChat'\n chatButtons: {\n label: string\n onClick: () => void\n type: string\n canSee: boolean\n disabled?: boolean\n }[]\n}\n\nfunction ChatButtons ({ chatButtons, removeActiveItem }: INewChatButton) {\n const { theme } = useTheme()\n\n const getButtonType = (type: string, disabled?: boolean) => {\n if (type === 'primary')\n return {\n background: disabled ? theme?.buttonsDisabled : theme?.buttonPrimary,\n color: theme?.buttonPrimaryText,\n }\n\n if (type === 'outlined')\n return {\n background: 'transparent',\n color: theme?.asideFontColor,\n border: `${theme?.asideFontColor} 1px solid`,\n }\n return\n }\n\n return (\n <>\n {chatButtons.map((button) => {\n return (\n button.canSee && (\n <>\n <button\n key={`button-${button.label}`}\n className={\n button.disabled\n ? 'messenger__chat-button messenger__chat-button--disabled'\n : 'messenger__chat-button'\n }\n onClick={(event) => {\n button.onClick()\n removeActiveItem(event)\n }}\n style={getButtonType(button.type, button.disabled)}\n >\n {button.label}\n </button>\n </>\n )\n )\n })}\n </>\n )\n}\n\nexport default ChatButtons\n","import React from 'react'\nimport useTheme from '../hooks/useThemes'\n\nexport default function SearchIcon () {\n const { theme } = useTheme()\n return (\n <svg\n width='18'\n height='18'\n viewBox='0 0 18 18'\n fill='none'\n xmlns='http://www.w3.org/2000/svg'\n >\n <path\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'\n fill={theme.asideFontColor}\n />\n </svg>\n )\n}\n","import SearchIcon from '../../icons/SearchIcon'\nimport React, { useState } from 'react'\nimport useTheme from '../../hooks/useThemes'\nimport { useTranslation } from 'react-i18next'\n\ninterface IProps {\n searchChat: (value: string, key: string) => void\n searchKeys: { label: string; value: string }[]\n loadingSearch: boolean\n}\n\nfunction SearchInput ({ searchChat, searchKeys, loadingSearch }: IProps) {\n const { t } = useTranslation('messengerList')\n const [searchKey, setSearchKey] = useState<string>(searchKeys[0].value)\n const [searchValue, setSearchValue] = useState<string>('')\n const { theme } = useTheme()\n\n const onSearch = (event: React.ChangeEvent<HTMLInputElement>) => {\n setSearchValue(event.target.value)\n }\n\n const handleKeyPress = (event: React.KeyboardEvent<HTMLInputElement>) => {\n if (event.key === 'Enter') {\n searchChat(searchValue, searchKey)\n }\n }\n\n return (\n <div className='input-search'>\n <select\n className='input-search__select'\n onChange={(e) => setSearchKey(e.target.value)}\n style={{\n color: theme.asideFontColor,\n border: `${theme.asideFontColor} 1px solid`,\n }}\n >\n {searchKeys.map((item, index) => (\n <option\n className='input-search__option'\n key={index}\n value={item.value}\n >\n {item.label}\n </option>\n ))}\n </select>\n\n <input\n className='input-search__search'\n placeholder={t('searchInput.placeholder')}\n onChange={onSearch}\n onKeyDown={handleKeyPress}\n style={{\n color: theme.asideFontColor,\n border: `${theme.asideFontColor} 1px solid`,\n borderLeft: 0,\n }}\n />\n\n <button\n className='input-search__icon'\n onClick={() => searchChat(searchValue, searchKey)}\n >\n {loadingSearch ? (\n <div className='messenger__messages-loading'>\n <div className='messenger__messages-loading--loader' />\n </div>\n ) : (\n <SearchIcon />\n )}\n </button>\n </div>\n )\n}\n\nexport default SearchInput\n","import React from 'react'\nimport useTheme from '../hooks/useThemes'\n\nexport default function EmptyIcon () {\n const { theme } = useTheme()\n return (\n <svg\n width='26'\n height='32'\n viewBox='0 0 26 32'\n fill='none'\n xmlns='http://www.w3.org/2000/svg'\n >\n <path\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'\n fill={theme.emptyMessagesFontColor}\n />\n </svg>\n )\n}\n","import React, { ReactNode, CSSProperties } from 'react'\n\ninterface IInfiniteScroll {\n loading: boolean\n more: boolean\n fetch: () => void\n children: ReactNode\n loadingCover: React.ReactElement\n root: Element | null\n reverse?: boolean\n rootMargin?: number\n}\n\nconst intersectDivStyle: CSSProperties = {\n width: 25,\n height: 25,\n visibility: 'hidden',\n}\n\nfunction InfiniteScroll ({\n loading,\n loadingCover,\n more,\n fetch,\n children,\n root,\n reverse = false,\n rootMargin = 400,\n}: IInfiniteScroll) {\n const [infiniteElement, setInfiniteElement] =\n React.useState<HTMLDivElement | null>(null)\n\n React.useEffect(() => {\n if (!root) return\n const currentElement = infiniteElement\n const observer = new IntersectionObserver(\n (entries) => {\n const first = entries[0]\n if (first.isIntersecting === true) fetch()\n },\n {\n root,\n rootMargin: rootMargin.toString() + 'px',\n threshold: 0.5,\n }\n )\n\n if (currentElement) {\n observer.observe(currentElement)\n }\n\n return () => {\n if (currentElement) observer.unobserve(currentElement)\n }\n }, [infiniteElement])\n\n if (reverse) {\n return (\n <>\n {more && !loading && (\n <div ref={setInfiniteElement} style={intersectDivStyle}></div>\n )}\n {loading && loadingCover}\n {children}\n </>\n )\n }\n\n return (\n <>\n {children}\n {loading && loadingCover}\n {more && !loading && (\n <div ref={setInfiniteElement} style={intersectDivStyle}></div>\n )}\n </>\n )\n}\n\nexport default InfiniteScroll\n","import React, { Fragment } from 'react'\nimport { IList } from 'types'\nimport ChatTabs from '../components/ChatTabs/ChatTabs'\nimport ChatButtons from '../components/ChatButton/ChatButton'\nimport SearchInput from '../components/SearchInput/SearchInput'\nimport MessengerListItem, { activeItem } from './MessengerListItem'\nimport useTheme from '../hooks/useThemes'\nimport EmptyIcon from '../icons/EmptyIcon'\nimport InfiniteScroll from '../components/InfiniteScroll/InfiniteScroll'\nimport { useTranslation } from 'react-i18next'\n\ninterface IMessengerList {\n affix?: React.ReactElement\n loading: boolean\n conversations: IList[]\n currentId?: string\n failed?: boolean\n showBadge: boolean\n tab?: 'list' | 'messages'\n className?: string\n onClick: (item: IList) => void\n searchChat: (search: string, key: string) => void\n searchKeys: { label: string; value: string }[]\n messegerView: 'empty' | 'messages' | 'newChat'\n helpDesk: boolean\n handleChangeTickets: (tab: string) => void\n loadingSearch: boolean\n chatListTabs: { value: string; label: string }[]\n chatButtons: {\n label: string\n onClick: () => void\n type: string\n canSee: boolean\n disabled?: boolean\n }[]\n canSeeDetailsChat: boolean\n hasNext: boolean\n onIntersect: () => void\n sliceCount: number\n currentViewerId: string\n}\n\nconst ListLoading = () => {\n const { theme } = useTheme()\n return (\n <Fragment>\n {new Array(5).fill('').map((_, idx) => (\n <button\n key={`asideSkeleton${idx}`}\n style={{\n background: theme.listItemHover,\n borderBottom: idx < 4 ? `1px solid ${theme.borderColor}` : '0',\n }}\n className='messenger__aside-skeleton'\n />\n ))}\n </Fragment>\n )\n}\n\nfunction MessengerList ({\n affix,\n conversations,\n tab,\n className = '',\n loading,\n failed,\n showBadge,\n currentId,\n onClick,\n searchChat,\n searchKeys,\n messegerView,\n helpDesk,\n handleChangeTickets,\n chatListTabs,\n chatButtons,\n loadingSearch,\n canSeeDetailsChat,\n hasNext,\n onIntersect,\n sliceCount,\n currentViewerId,\n}: IMessengerList) {\n const { t } = useTranslation('messengerList')\n const { theme } = useTheme()\n\n return (\n <aside\n className={`messenger__aside ${className} ${tab === 'messages' ? 'messenger__mobile-hide' : ''}`}\n style={{\n border: `1px solid ${theme.borderColor}`,\n borderRadius: '20px 0 0 20px',\n background: theme.asideBg,\n }}\n >\n <div className='messenger__buttons-container'>\n <ChatButtons\n chatButtons={chatButtons}\n messegerView={messegerView}\n removeActiveItem={(e: React.MouseEvent<HTMLElement, MouseEvent>) => {\n activeItem(\n e,\n 'messenger__aside-list-item',\n 'messenger__aside-list-item--active'\n )\n }}\n />\n\n {helpDesk && (\n <SearchInput\n searchKeys={searchKeys}\n searchChat={searchChat}\n loadingSearch={loadingSearch}\n />\n )}\n </div>\n\n {affix && (\n <div className='messenger__aside-header'>\n {React.cloneElement(affix)}\n </div>\n )}\n\n <ChatTabs\n chatListTabs={chatListTabs}\n handleChangeTickets={handleChangeTickets}\n />\n\n <div className='messenger__aside-list'>\n <InfiniteScroll\n root={document.querySelector('.messenger__aside-list')}\n loading={loading}\n loadingCover={<ListLoading />}\n more={hasNext}\n fetch={onIntersect}\n >\n {Array.isArray(conversations) &&\n conversations.length > 0 &&\n conversations.slice(0, sliceCount).map((item) => {\n return (\n <div\n key={item?._id}\n className={`messenger__aside-item-container ${showBadge ? 'messenger__active-badge' : ''}`}\n >\n <MessengerListItem\n canSeeDetailsChat={canSeeDetailsChat}\n currentId={currentId}\n item={item}\n onClick={onClick}\n currentViewerId={currentViewerId}\n />\n </div>\n )\n })}\n </InfiniteScroll>\n\n {failed ||\n (conversations?.length === 0 && !loading && (\n <div className='messenger__aside-empty'>\n <EmptyIcon />\n <p>{t('noChatFound')}</p>\n </div>\n ))}\n </div>\n </aside>\n )\n}\n\nexport default MessengerList\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'\nimport { SVGProps } from 'react'\nconst FileDoc = (props: SVGProps<SVGSVGElement>) => (\n <svg\n xmlns='http://www.w3.org/2000/svg'\n xmlnsXlink='http://www.w3.org/1999/xlink'\n id='Layer_1'\n width={800}\n height={800}\n data-name='Layer 1'\n viewBox='0 0 32 32'\n {...props}\n >\n <defs>\n <linearGradient\n id='doc-gradient'\n x1={6.65}\n x2={27.27}\n y1={6.65}\n y2={27.27}\n gradientUnits='userSpaceOnUse'\n >\n <stop offset={0} stopColor='#00a6fb' />\n <stop offset={1} stopColor='#0094ce' />\n </linearGradient>\n <linearGradient\n xlinkHref='#doc-gradient'\n id='doc-gradient-2'\n x1={6}\n x2={12}\n y1={5}\n y2={5}\n />\n <style>{'.cls-3{fill:#f8edeb}'}</style>\n </defs>\n <path\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'\n style={{\n fill: '#00a6fb',\n }}\n />\n <path\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'\n style={{\n fill: '#0094ce',\n }}\n />\n <path\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'\n className='cls-3'\n />\n </svg>\n)\nexport default FileDoc\n","import * as React from 'react'\nimport { SVGProps } from 'react'\nconst SvgComponent = (props: SVGProps<SVGSVGElement>) => (\n <svg\n xmlns='http://www.w3.org/2000/svg'\n xmlnsXlink='http://www.w3.org/1999/xlink'\n id='Layer_1'\n width={800}\n height={800}\n data-name='Layer 1'\n viewBox='0 0 32 32'\n {...props}\n >\n <defs>\n <linearGradient\n id='pdf-gradient'\n x1={6.65}\n x2={27.27}\n y1={6.65}\n y2={27.27}\n gradientUnits='userSpaceOnUse'\n >\n <stop offset={0} stopColor='#ef6461' />\n <stop offset={1} stopColor='#e83d3d' />\n </linearGradient>\n <linearGradient\n xlinkHref='#pdf-gradient'\n id='pdf-gradient-2'\n x1={6}\n x2={12}\n y1={5}\n y2={5}\n />\n <style>{'.cls-3{fill:#f8edeb}'}</style>\n </defs>\n <path\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'\n style={{\n fill: 'url(#pdf-gradient)',\n }}\n />\n <path\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'\n style={{\n fill: 'url(#pdf-gradient-2)',\n }}\n />\n <path\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'\n className='cls-3'\n />\n </svg>\n)\nexport default SvgComponent\n","import React from 'react'\nimport FileDoc from '../../icons/DOCFileIcon'\nimport FilePdf from '../../icons/PDFFileIcon'\nimport { useTranslation } from 'react-i18next'\n\nconst RenderFileIcon = ({\n fileType,\n b64,\n}: {\n fileType?: string\n b64?: string\n}) => {\n const { t } = useTranslation('messengerMessages')\n\n if (fileType === 'application/pdf') {\n return <FilePdf width='40' height='40' />\n } else if (\n fileType === 'application/msword' ||\n fileType ===\n 'application/vnd.openxmlformats-officedocument.wordprocessingml.document'\n ) {\n return <FileDoc width='40' height='40' />\n } else {\n return (\n <img\n alt={t('renderFileIcon.altImage')}\n src={b64}\n className='images-container__image'\n />\n )\n }\n}\n\nexport default RenderFileIcon\n","import React, { useEffect, useState } from 'react'\nimport { IImagesContainer } from 'types'\nimport RenderFileIcon from '../RenderFileIcon/RenderFileIcon'\n\nfunction ImagesContainer ({ file, onClose }: IImagesContainer) {\n const [fileInfo, setFileInfo] = useState<{ name: string; type: string }>({\n name: '',\n type: '',\n })\n\n const [b64, setB64] = useState<string>('')\n\n useEffect(() => {\n function getBase64 (file: File) {\n return new Promise((resolve, reject) => {\n const reader = new FileReader()\n reader.readAsDataURL(file)\n reader.onload = () => resolve(reader.result)\n reader.onerror = (error) => reject(error)\n })\n }\n\n if (file) getBase64(file).then((base64) => setB64(base64 as string))\n }, [file])\n\n useEffect(() => {\n if (file) {\n setFileInfo({\n name: file.name,\n type: file.type,\n })\n }\n }, [file])\n\n return (\n <div className='images-container'>\n <div className='images-container__close'>\n <button className='images-container__close--icon' onClick={onClose} />\n </div>\n\n <div className='images-container__container'>\n <div className='images-container__image'>\n <RenderFileIcon fileType={fileInfo.type} b64={b64} />\n <span className='images-container__title-img'>{fileInfo.name}</span>\n </div>\n </div>\n </div>\n )\n}\n\nexport default ImagesContainer\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'\n\nfunction DownloadMinimalistIcon ({\n width,\n height,\n color,\n}: {\n width: string\n height: string\n color: string\n}) {\n return (\n <svg\n xmlns='http://www.w3.org/2000/svg'\n width={width}\n height={height}\n viewBox='0 0 24 24'\n fill='none'\n >\n <path\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'\n fill={color}\n />\n <path\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'\n fill={color}\n />\n <defs>\n <clipPath id='clip0_23_2'>\n <rect width='32' height='32' fill='@text-color' />\n </clipPath>\n </defs>\n </svg>\n )\n}\n\nexport default DownloadMinimalistIcon\n","import React from 'react'\nimport DownloadMinimalistIcon from '../../icons/DownloadMinimalistIcon'\nimport { IMessagesBalloon } from 'types'\nimport RenderFileIcon from '../RenderFileIcon/RenderFileIcon'\n\nexport function formatFileSize (size = 0) {\n if (size % 1 === 0) {\n return `${size.toFixed(0)} MB`\n }\n return `${size.toFixed(2)} MB`\n}\n\nfunction DocMessage ({ file }: IMessagesBalloon) {\n const fileType = file?.location?.split('.').pop()?.toUpperCase()\n const fileName = file && file.originalname\n const filePages = file && file.pages\n const fileSize = file && formatFileSize(file?.size)\n\n return (\n <div className='messenger__messages-row--sender'>\n <span>\n {\n <div className='messenger__file-card'>\n <div className='messenger__file-icon'>\n <RenderFileIcon fileType={file?.mimetype} />\n </div>\n <div className='messenger__file-details'>\n <p className='messenger__file-name'>{fileName}</p>\n <p className='messenger__file-info'>\n {filePages && filePages + ' página(s) •'} {fileSize} •{' '}\n {fileType}\n </p>\n </div>\n <a\n href={file?.location}\n target='_blank'\n rel='noopener noreferrer'\n className='messenger__file-download'\n style={{ color: 'blue' }}\n >\n <DownloadMinimalistIcon width='24' height='24' color='white' />\n </a>\n </div>\n }\n </span>\n </div>\n )\n}\n\nexport default DocMessage\n","import useTheme from '../../hooks/useThemes'\nimport React, { useCallback, useState } from 'react'\nimport { Iimages, IInconmingMessage } from 'types'\nimport MessengerAvatar from '../MessengerAvatar/MessengerAvatar'\nimport ReactSimpleImageViewer from '../../../../../node_modules/react-simple-image-viewer'\nimport DocMessage from '../DocMessage/DocMessage'\nimport { useTranslation } from 'react-i18next'\n\ninterface IMessagesWithFile {\n file:\n | Iimages\n | {\n contentType: string\n location: string\n mimetype: string\n originalname: string\n size?: number\n pages?: number\n key?: string\n }\n | undefined\n message: string\n date: string\n openImageViewer: (index: number) => void\n id: string\n formatDate: (date: string | Date) => string | undefined\n currentImage: number\n}\n\nexport const MessageImage = ({ ...rest }) => {\n const { t } = useTranslation('messengerMessages')\n return (\n <div className='messenger__message--file'>\n <img\n {...rest}\n width={200}\n height={200}\n alt={t('incommingMessage.messageImage')}\n />\n </div>\n )\n}\n\nconst MessageWithFile = ({\n file,\n message,\n date,\n openImageViewer,\n id,\n formatDate,\n currentImage,\n}: IMessagesWithFile) => {\n const isImage = (\n file:\n | {\n contentType: string\n location: string\n mimetype: string\n originalname: string\n size?: number\n pages?: number\n key?: string\n }\n | Iimages\n | undefined\n ): file is Iimages =>\n !!file?.mimetype?.includes('image/png') ||\n !!file?.mimetype?.includes('image/jpeg')\n\n return (\n <>\n {isImage(file) ? (\n <MessageImage\n src={file?.location}\n onClick={() => openImageViewer(currentImage)}\n />\n ) : (\n file && (\n <DocMessage\n file={file}\n message={message}\n date={date}\n read={false}\n id={id}\n formatDate={formatDate}\n />\n )\n )}\n </>\n )\n}\n\nfunction IncomingMessage ({\n date,\n message,\n user,\n hasFile,\n file,\n isSystemMessage,\n formatDate,\n id,\n}: IInconmingMessage) {\n const { theme } = useTheme()\n const [currentImage, setCurrentImage] = useState(0)\n const [isViewerOpen, setIsViewerOpen] = useState(false)\n\n const openImageViewer = useCallback((index: number) => {\n setCurrentImage(index)\n setIsViewerOpen(true)\n }, [])\n\n const closeImageViewer = () => {\n setCurrentImage(0)\n setIsViewerOpen(false)\n }\n\n return (\n <div className='messenger__messages-row--received' id={id}>\n {(user.avatar || user.name) && !isSystemMessage && (\n <div className='messenger__message-avatar mr-2'>\n <MessengerAvatar image={user.avatar}>\n {user.name.slice(0, 1)}\n </MessengerAvatar>\n </div>\n )}\n\n <div\n className='messenger__messages-received'\n style={{ background: theme?.messengerIncomerColor }}\n >\n {!isSystemMessage && (\n <p className='messenger__message-title'>{user.name}</p>\n )}\n\n <span>\n {hasFile && (\n <MessageWithFile\n file={file}\n message={message}\n date={date}\n openImageViewer={openImageViewer}\n id={id}\n formatDate={formatDate}\n currentImage={currentImage}\n />\n )}\n {message && <p className='messenger__message'>{message}</p>}\n <p className='messenger__message--date'>\n {formatDate(date) ?? new Date(date).toLocaleString()}\n </p>\n </span>\n </div>\n {file && isViewerOpen && (\n <ReactSimpleImageViewer\n src={[file.location]}\n currentIndex={0}\n disableScroll={false}\n closeOnClickOutside={true}\n onClose={closeImageViewer}\n />\n )}\n </div>\n )\n}\n\nexport default IncomingMessage\n","import React from 'react'\n\nexport default function ReadIcon ({ fill }: { fill: string }) {\n return (\n <svg\n width='15'\n height='15'\n viewBox='0 0 30 24'\n fill='none'\n xmlns='http://www.w3.org/2000/svg'\n >\n <path\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'\n fill={fill}\n />\n </svg>\n )\n}\n","import useTheme from '../../hooks/useThemes'\nimport React, { useCallback, useState } from 'react'\nimport { IMessagesBalloon } from 'types'\nimport ReadIcon from '../../icons/ReadIcon'\nimport ReactSimpleImageViewer from 'react-simple-image-viewer'\nimport { MessageImage } from '../IncomingMessage/IncomingMessage'\nimport DocMessage from '../DocMessage/DocMessage'\n\nfunction SenderMessages ({\n date,\n message,\n read,\n hasFile,\n file,\n formatDate,\n id,\n}: IMessagesBalloon) {\n const [currentImage, setCurrentImage] = useState(0)\n const [isViewerOpen, setIsViewerOpen] = useState(false)\n const { theme } = useTheme()\n\n const openImageViewer = useCallback((index: number) => {\n setCurrentImage(index)\n setIsViewerOpen(true)\n }, [])\n\n const closeImageViewer = () => {\n setCurrentImage(0)\n setIsViewerOpen(false)\n }\n\n const isDoc =\n file?.mimetype === 'application/msword' ||\n file?.mimetype ===\n 'application/vnd.openxmlformats-officedocument.wordprocessingml.document' ||\n file?.mimetype === 'application/pdf'\n\n return (\n <div className='messenger__messages-row--sender'>\n <div\n className='messenger__messages-sender'\n id={id}\n style={{\n background: theme?.messengerSenderColor,\n color: theme?.documentMessagesTextColor,\n }}\n >\n <span>\n {hasFile &&\n (isDoc ? (\n <DocMessage\n date={date}\n message={message}\n read={read}\n file={file}\n formatDate={formatDate}\n id={id}\n />\n ) : (\n <MessageImage\n src={file?.location}\n onClick={() => openImageViewer(currentImage)}\n />\n ))}\n\n <p className='messenger__message'>{message}</p>\n <div className='messenger__message--bottom'>\n <p className='messenger__message--date'>\n {formatDate(date) ?? new Date(date).toString()}\n </p>\n <ReadIcon fill={read ? '#00efff' : 'white'} />\n </div>\n </span>\n </div>\n\n {file && !isDoc && isViewerOpen && (\n <ReactSimpleImageViewer\n src={[file.location]}\n currentIndex={0}\n disableScroll={false}\n closeOnClickOutside={true}\n onClose={closeImageViewer}\n />\n )}\n </div>\n )\n}\n\nexport default SenderMessages\n","import React from 'react'\nimport useTheme from '../../hooks/useThemes'\nimport { IInconmingMessage } from 'types'\n\nfunction SystemMessage ({ date, message, formatDate, id }: IInconmingMessage) {\n const { theme } = useTheme()\n\n return (\n <div className='messenger__messages-row--system' id={id}>\n <div\n className='messenger__messages-received messenger__messages-received--system'\n style={{ background: theme?.messengerSystemColor }}\n >\n <span>\n <p className='messenger__message'>{message}</p>\n <p className='messenger__message--date'>\n {formatDate(date) ?? new Date(date).toString()}\n </p>\n </span>\n </div>\n </div>\n )\n}\n\nexport default SystemMessage\n","import React from 'react'\nimport { Iimages, IMessages } from 'types'\nimport IncomingMessage from '../IncomingMessage/IncomingMessage'\nimport SenderMessages from '../SenderMessages/SenderMessages'\nimport SystemMessage from '../SystemMessage/SystemMessage'\n\nfunction MessageBalloon ({\n item,\n creatorId,\n formatDate,\n id,\n}: {\n item: IMessages\n creatorId?: string\n formatDate: (date: string | Date) => string | undefined\n id: string\n}) {\n if (item.isSystemMessage) {\n return (\n <SystemMessage\n formatDate={formatDate}\n date={item.createdAt}\n message={item.content}\n id={item.senderId}\n user={{ name: 'System' }}\n />\n )\n }\n\n if (\n item.sender.uniqueCode &&\n !item.isSystemMessage &&\n item.sender.uniqueCode === creatorId\n ) {\n return (\n <>\n <SenderMessages\n id={id}\n formatDate={formatDate}\n message={item.content}\n date={item.createdAt}\n read={item.everybodyHasRead}\n hasFile={item.hasFile}\n file={item.file}\n />\n\n {item.images &&\n item.images.map((image: Iimages, index: number) => (\n <SenderMessages\n key={image.key}\n id={`${id}image-${index}`}\n formatDate={formatDate}\n date={item.createdAt}\n file={image}\n message=''\n hasFile={true}\n read={item.everybodyHasRead}\n />\n ))}\n </>\n )\n }\n\n return (\n <>\n <IncomingMessage\n id={id}\n formatDate={formatDate}\n date={item.createdAt}\n message={item.content}\n hasFile={item.hasFile}\n isSystemMessage={item.isSystemMessage}\n file={item.file}\n user={{\n avatar: item.sender?.image,\n name: item.sender.username,\n }}\n />\n\n {item.images &&\n item.images.map((image: Iimages, index: number) => (\n <IncomingMessage\n key={image.key}\n id={`${id}image-${index}`}\n formatDate={formatDate}\n date={item.createdAt}\n file={image}\n message=''\n hasFile={true}\n user={{\n avatar: item.sender?.image,\n name: item.sender.username,\n }}\n />\n ))}\n </>\n )\n}\n\nexport default MessageBalloon\n","import React from 'react'\n\nfunction MessageIcon ({ width, height }: { width: string; height: string }) {\n return (\n <svg\n width={width}\n height={height}\n viewBox='0 0 32 32'\n fill='none'\n xmlns='http://www.w3.org/2000/svg'\n >\n <g clipPath='url(#clip0_23_2)'>\n <path\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'\n fill='black'\n />\n </g>\n <defs>\n <clipPath id='clip0_23_2'>\n <rect width='32' height='32' fill='@text-color' />\n </clipPath>\n </defs>\n </svg>\n )\n}\n\nexport default MessageIcon\n","import React from 'react'\n\ninterface IProps {\n color: string\n}\nexport default function TrashIcon ({ color }: IProps) {\n return (\n <svg\n width='13'\n height='17'\n viewBox='0 0 13 17'\n fill='none'\n xmlns='http://www.w3.org/2000/svg'\n >\n <path\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'\n fill={color}\n />\n </svg>\n )\n}\n","import TrashIcon from '../../icons/TrashIcon'\nimport React, { useMemo } from 'react'\nimport useTheme from '../../hooks/useThemes'\nimport { useTranslation } from 'react-i18next'\n\ninterface IProps {\n fileList: File[]\n onUpdateFile: (files: File) => void\n label: string\n onRemoveFile: (files: File) => void\n maxSize: string\n loading: boolean\n}\n\nfunction InputFile ({\n fileList,\n onUpdateFile,\n label,\n onRemoveFile,\n maxSize,\n loading,\n}: IProps) {\n const { theme } = useTheme()\n const { t } = useTranslation('newFormChat')\n\n const validateFileType = useMemo(\n () => (allowedTypes: string[], file?: File) => {\n if (file?.type) {\n return allowedTypes.includes(file.type)\n }\n const extension = file?.name.split('.').pop()?.toLowerCase()\n return extension ? allowedTypes.includes(`.${extension}`) : false\n },\n []\n )\n\n const onUpload = () => {\n const input = document.querySelector('.file-input__input') as HTMLElement\n input?.click()\n }\n\n const onChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n const file = e?.target?.files?.[0]\n\n const isAllowedType = validateFileType(\n [\n 'image/png',\n 'image/jpeg',\n 'application/pdf',\n 'application/msword',\n 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',\n ],\n file\n )\n if (!isAllowedType) {\n console.error(t('inputFile.documentSendError'))\n return false\n }\n\n if (file) onUpdateFile(file)\n return true\n }\n\n const removeItem = (file: File) => {\n if (fileList.some((item) => item === file)) {\n onRemoveFile(file)\n }\n }\n\n return (\n <>\n <div className='file-input'>\n <label\n style={{ color: theme.newChatFormTexts }}\n htmlFor=''\n className='file-input__label'\n >\n {label}\n </label>\n <div\n className='file-input__container'\n style={{\n backgroundColor: theme.inputBg,\n color: theme.newChatFormTexts,\n }}\n >\n <input\n className='file-input__input'\n type='file'\n id='docpicker'\n hidden\n accept='.jpg, .jpeg, .png, .pdf, .doc, .docx'\n onChange={(event) => onChange(event)}\n />\n\n <h4>{t('inputFile.chooseFile')}</h4>\n <button\n className='file-input__button'\n type='button'\n onClick={onUpload}\n style={{\n background: theme?.buttonPrimary,\n color: theme?.buttonPrimaryText,\n }}\n >\n {t('inputFile.chooseFile')}\n </button>\n\n {loading ? (\n ''\n ) : (\n <p>\n {t('inputFile.allowDocuments')}(\n {t('inputFile.allowSizeDocument', { maxSize })})\n </p>\n )}\n </div>\n </div>\n\n <div>\n {fileList &&\n fileList.map((item) => (\n <div\n className='file-input__list'\n key={item.name}\n style={{\n backgroundColor: theme.inputBg,\n color: theme.newChatFormTexts,\n }}\n >\n <span className='file-input__list--file-name'>{item.name}</span>\n <button\n className='file-input__delete'\n onClick={() => removeItem(item)}\n >\n <TrashIcon color={theme.newChatFormDeleteFileButton || 'red'} />\n </button>\n </div>\n ))}\n </div>\n </>\n )\n}\n\nexport default InputFile\n","import React from 'react'\nimport useTheme from '../../hooks/useThemes'\ninterface IProps {\n options: {\n label: string\n value: string\n }[]\n label: string\n onChange: (value: string) => void\n name: string\n placeholder: string\n value: string\n}\n\nfunction SelectNew ({\n options,\n name,\n placeholder,\n label,\n onChange,\n value,\n}: IProps) {\n const { theme } = useTheme()\n return (\n <div className='form-select'>\n <label\n htmlFor={name}\n className='form-select__label'\n style={{ color: theme.newChatFormTexts }}\n >\n {label}\n </label>\n <select\n name={name}\n className='form-select__input'\n onChange={(e) => onChange(e.target.value)}\n value={value}\n style={{\n backgroundColor: theme.inputBg,\n color: theme.newChatFormTexts,\n }}\n >\n <option value='' disabled hidden>\n {placeholder}\n </option>\n {options.map((motivo) => (\n <option key={motivo.value} value={motivo.value}>\n {motivo.label}\n </option>\n ))}\n </select>\n </div>\n )\n}\n\nexport default SelectNew\n","import React from 'react'\nimport useTheme from '../../hooks/useThemes'\ninterface IProps {\n label: string\n onChange: (value: string) => void\n name: string\n placeholder: string\n}\n\nfunction Textarea ({ name, placeholder, label, onChange }: IProps) {\n const { theme } = useTheme()\n return (\n <div className='text-area'>\n <label\n htmlFor={name}\n className='text-area__label'\n style={{ color: theme.newChatFormTexts }}\n >\n {label}\n </label>\n <textarea\n style={{\n backgroundColor: theme.inputBg,\n color: theme.newChatFormTexts,\n }}\n name={name}\n placeholder={placeholder}\n className='text-area__input'\n onChange={(e) => onChange(e.target.value)}\n />\n </div>\n )\n}\n\nexport default Textarea\n","import React from 'react'\nimport useTheme from '../hooks/useThemes'\n\nexport default function CloseIcon () {\n const { theme } = useTheme()\n return (\n <svg\n width='21'\n height='21'\n viewBox='0 0 21 21'\n fill='none'\n xmlns='http://www.w3.org/2000/svg'\n >\n <path\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'\n fill={theme.newChatFormTexts ?? '#476077'}\n />\n </svg>\n )\n}\n","import React, { FormEvent, useState } from 'react'\n\nimport InputFile from '../components/InputFile/InputFile'\nimport Select from '../components/Select/Select'\nimport Textarea from '../components/TextArea/TextArea'\nimport useTheme from '../hooks/useThemes'\nimport CloseIcon from '../icons/CloseIcon'\nimport { IOption } from 'types'\nimport { useTranslation } from 'react-i18next'\n\ninterface IProps {\n submitNewChat: (values: FormData) => void\n cancelNewChat: () => void\n reasons: Array<IOption>\n products: Array<IOption>\n loading: boolean\n maxFileSize: string\n loadingResources: boolean\n}\n\nfunction NewChatForm ({\n submitNewChat,\n cancelNewChat,\n reasons,\n products,\n loading,\n maxFileSize,\n loadingResources,\n}: IProps) {\n const [reason, setReason] = useState<string>(reasons?.[0]?.value)\n const [product, setProduct] = useState<string>(products?.[0]?.value)\n const [message, setMessage] = useState<string>()\n const [fileList, setFileList] = useState<File[]>([])\n const { t } = useTranslation('newFormChat')\n\n const { theme } = useTheme()\n\n const onSubmit = (event: FormEvent) => {\n const data2 = new FormData()\n event.preventDefault()\n\n fileList.forEach((file) => {\n data2.append(`documents`, file, file.name)\n })\n\n if (reason) data2.append('reason', reason)\n if (product) data2.append('product', product)\n\n if (message) data2.append('message', message)\n submitNewChat(data2)\n }\n\n const onUpdateFile = (file: File) => {\n setFileList((files) => [...files, file])\n }\n\n const onRemoveFile = (file: File) => {\n setFileList(fileList.filter((item: File) => item !== file))\n }\n\n return (\n <div\n className='messenger__new-chat-form'\n style={{\n backgroundColor: theme.newChatFormBg,\n borderRadius: theme.newChatFormRadius,\n }}\n >\n <div className='messenger__new-chat-form-header'>\n <h2 className='messenger__new-chat-form-title'>\n <b style={{ color: theme.newChatFormTexts }}>{t('newChat')}</b>\n </h2>\n\n <button\n onClick={cancelNewChat}\n className='messenger__new-chat-form-close'\n >\n <CloseIcon />\n </button>\n </div>\n\n <h3\n className='messenger__disclaimer'\n style={{\n borderColor: theme.disclaimerPrimaryColor,\n color: theme.disclaimerTextColor,\n backgroundColor: theme.disclaimerSecondaryColor,\n }}\n >\n {t('description.1')} <b>{t('description.1/2bold')}</b>{' '}\n {t('description.2')}\n </h3>\n\n <form onSubmit={onSubmit} className='messenger__new-chat-fields'>\n <Select\n onChange={(value) => setReason(value)}\n options={reasons}\n placeholder={t('fields.reasons.placeholder')}\n name='reasons'\n value={reason}\n label={t('fields.reasons.label')}\n />\n\n <Select\n onChange={(value) => setProduct(value)}\n options={products}\n placeholder={t('fields.product.placeholder')}\n value={product}\n name='product'\n label={t('fields.product.label')}\n />\n\n <InputFile\n fileList={fileList}\n onUpdateFile={onUpdateFile}\n onRemoveFile={onRemoveFile}\n label={t('fields.document.label')}\n maxSize={maxFileSize}\n loading={loadingResources}\n />\n\n <Textarea\n onChange={(value) => setMessage(value)}\n placeholder={t('fields.message.placeholder')}\n name='message'\n label={t('fields.message.label')}\n />\n\n <button\n className={`w-100 ${!loading ? 'messenger__new-chat-form-send' : 'messenger__new-chat-form-send messenger__new-chat-form-send--disabled'}`}\n disabled={loading}\n type='submit'\n style={{\n backgroundColor: !loading ? theme.buttonPrimary : '#ccc',\n color: theme.buttonPrimaryText,\n }}\n >\n {!loading ? t('buttons.send') : t('buttons.sendingButton')}\n </button>\n </form>\n </div>\n )\n}\n\nexport default NewChatForm\n","import React from 'react'\nimport useTheme from '../hooks/useThemes'\n\nexport default function AttachFileIcon ({ ...rest }) {\n const { theme } = useTheme()\n return (\n <svg\n width='26'\n height='28'\n viewBox='0 0 26 28'\n xmlns='http://www.w3.org/2000/svg'\n {...rest}\n >\n <path\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'\n fill={theme.uploadFileIconColor}\n />\n </svg>\n )\n}\n","import React, { ReactNode } from 'react'\n\ninterface ToolTipProps {\n text: string\n children: ReactNode\n}\n\nconst ToolTip: React.FC<ToolTipProps> = ({ text, children }) => {\n return (\n <div className='tooltip'>\n {children}\n <div className='tooltip__text'>{text}</div>\n </div>\n )\n}\n\nexport default ToolTip\n","import useTheme from '../../hooks/useThemes'\nimport React, {\n Fragment,\n MutableRefObject,\n useMemo,\n useRef,\n useState,\n} from 'react'\nimport { IList } from 'types'\nimport AttachFileIcon from '../../../Messenger/icons/AttachFileIcon'\nimport rightArrow from '../../../../assets/right-arrow.svg'\nimport { SpinLoading } from '../../views/MessengerMessages'\nimport ToolTip from '../Tooltip/Tooltip'\nimport { useTranslation } from 'react-i18next'\n\ninterface IProps {\n allowImages: boolean\n current?: IList\n onSubmit: (value: FormData, callback: () => void) => void\n file?: File | null\n updateFile: (file: File | null) => void\n isLoading?: boolean\n maxFileSize: string\n}\n\nfunction AllowDocuments ({\n allowImages,\n attachFile,\n handleFile,\n closedChat,\n maxFileField,\n}: {\n allowImages: boolean\n attachFile: MutableRefObject<HTMLInputElement | null>\n handleFile: (e: React.ChangeEvent<HTMLInputElement>) => void\n closedChat: boolean\n maxFileField: string\n}) {\n const { t } = useTranslation('messengerMessages')\n\n if (allowImages) {\n return (\n <Fragment>\n <input\n type='file'\n size={1}\n className='messenger__messages-send--file'\n ref={attachFile}\n onChange={handleFile}\n accept='.jpg, .jpeg, .png, .pdf, .doc, .docx'\n />\n\n <ToolTip text={t('sendMessageForm.maxFileField', { maxFileField })}>\n <AttachFileIcon\n className={`messenger__messages-send__attach ${closedChat ? 'messenger__messages-send__attach--disabled' : ''}`}\n onClick={() => (!closedChat ? attachFile.current?.click() : null)}\n />\n </ToolTip>\n </Fragment>\n )\n }\n\n return <></>\n}\n\nfunction SendMessageForm ({\n allowImages,\n current,\n onSubmit,\n file,\n updateFile,\n isLoading,\n maxFileSize,\n}: IProps) {\n const { t } = useTranslation('messengerMessages')\n const [formHeight, setFormHeight] = useState<number>(100)\n const [sending, setSending] = useState<boolean>(false)\n\n const inputRef: MutableRefObject<HTMLTextAreaElement | null> = useRef(null)\n const attachFile: MutableRefObject<HTMLInputElement | null> = useRef(null)\n\n const closedChat = useMemo(\n () => current?.status.current.state === 'final',\n [current]\n )\n\n const { theme } = useTheme()\n\n function correctTextAreaHeight (styleConfig: {\n height: number\n overflow: string\n }) {\n const textarea = inputRef.current\n if (textarea) {\n textarea.style.height = `${styleConfig.height}px`\n textarea.style.overflowY = styleConfig.overflow\n }\n }\n\n function resetHeights () {\n const inicialFormHeight = 100\n const inicialTextAreaHeight = 50\n setFormHeight(inicialFormHeight)\n correctTextAreaHeight({ height: inicialTextAreaHeight, overflow: 'hidden' })\n }\n\n function adjustFormHeight (textareaRef: typeof inputRef.current) {\n if (textareaRef) {\n const initialHeight = 50\n const maxHeight = 80\n const newHeight = textareaRef.scrollHeight\n\n if (newHeight > maxHeight) {\n correctTextAreaHeight({\n height: maxHeight,\n overflow: 'auto',\n })\n return maxHeight + initialHeight\n }\n\n correctTextAreaHeight({\n height: initialHeight,\n overflow: 'auto',\n })\n return initialHeight * 2\n }\n\n return formHeight\n }\n\n function handleTextareaChange () {\n const textarea = inputRef.current\n setFormHeight(adjustFormHeight(textarea))\n }\n\n function handleSubmit (e?: React.FormEvent<HTMLFormElement>) {\n e?.preventDefault()\n if (sending) return\n setSending(true)\n\n const data = new FormData()\n if (file) data.append('file', file)\n if (inputRef.current?.value) data.append('message', inputRef.current?.value)\n\n onSubmit(data, () => {\n if (inputRef.current) inputRef.current.value = ''\n if (file) updateFile(null)\n setSending(false)\n resetHeights()\n })\n }\n\n function handleFile (e: React.ChangeEvent<HTMLInputElement>) {\n if (e.target.files) {\n const file = e.target.files[0]\n if (\n file?.type?.includes('image/') ||\n file?.type?.includes('application/') ||\n file?.type === 'application/msword' ||\n file?.type ===\n 'application/vnd.openxmlformats-officedocument.wordprocessingml.document'\n ) {\n updateFile(e.target.files[0])\n }\n }\n }\n\n return (\n <form\n onSubmit={handleSubmit}\n className='messenger__messages-send--form'\n style={{\n height: `${formHeight}px`,\n maxHeight: '150px',\n }}\n >\n <div className='messenger__messages-send__input-container'>\n <textarea\n onChange={handleTextareaChange}\n placeholder={\n closedChat\n ? t('sendMessageForm.chatEnded')\n : t('sendMessageForm.typeMessage')\n }\n ref={inputRef}\n onKeyDown={(e) => {\n if (e.key === 'Enter' && !e.shiftKey) {\n e.preventDefault()\n handleSubmit()\n }\n }}\n className={`messenger__messages-send__input ${closedChat || sending ? 'messenger__messages-send__input--disabled' : ''} `}\n disabled={closedChat || sending}\n style={{\n backgroundColor: theme?.inputBg,\n }}\n />\n\n <AllowDocuments\n allowImages={allowImages}\n handleFile={handleFile}\n attachFile={attachFile}\n closedChat={closedChat}\n maxFileField={maxFileSize}\n />\n </div>\n\n {isLoading ? (\n <div className='messenger__messages-sending'>\n <SpinLoading />\n </div>\n ) : (\n <button\n type='submit'\n className={`messenger__messages-send__button ${closedChat || sending ? 'messenger__messages-send__button--disabled' : ''}`}\n disabled={closedChat || sending}\n style={{\n backgroundColor: theme?.buttonPrimary,\n }}\n >\n <img\n alt={t('sendMessageForm.rightIcon')}\n height={25}\n width={25}\n className='ml-1'\n src={rightArrow}\n />\n </button>\n )}\n </form>\n )\n}\n\nexport default SendMessageForm\n","import React, {\n Fragment,\n useState,\n useRef,\n MutableRefObject,\n useEffect,\n} from 'react'\nimport ImagesContainer from '../components/ImagesContainer/ImagesContainer'\nimport MessageBalloon from '../components/MessageBallon/MessageBalloon'\n\nimport MessageIcon from '../icons/MessageIcon'\n\nimport { ICommonProps, IList, IMessages, IOption } from 'types'\nimport useTheme from '../hooks/useThemes'\n\nimport NewChatForm from './NewFormChat'\nimport EmptyIcon from '../icons/EmptyIcon'\nimport SendMessageForm from '../components/SendMessageForm/SendMessageForm'\nimport InfiniteScroll from '../components/InfiniteScroll/InfiniteScroll'\nimport { formatFileSize } from '../components/DocMessage/DocMessage'\nimport { useTranslation } from 'react-i18next'\n\ninterface IScrollableContainer {\n loading: boolean\n onIntersect: () => Promise<void>\n hasNext: boolean\n}\n\ntype MessengerView = 'empty' | 'messages' | 'newChat'\n\ninterface IMessengerMessages extends ICommonProps, IScrollableContainer {\n header: React.ReactElement\n current?: IList\n creatorId?: string\n allowImages: boolean\n tab?: 'list' | 'messages'\n messegerView: MessengerView\n className?: string\n messages: IMessages[]\n onSubmit: (value: FormData, callback: () => void) => Promise<void>\n cancelNewChat: () => void\n formatDate: (date: string | Date) => string | undefined\n reasons: Array<IOption>\n products: Array<IOption>\n submitNewChat: (values: FormData) => void\n newChatLoading: boolean\n maxFileSize: () => Promise<{ data: { data: { maxFileSize: number } } }>\n}\n\ninterface IMessengerForm {\n children: React.ReactNode\n messegerView: MessengerView\n reasons: Array<IOption>\n products: Array<IOption>\n submitNewChat: (values: FormData) => void\n cancelNewChat: () => void\n newChatLoading: boolean\n maxFileSize: string\n loadingResources: boolean\n}\n\nfunction MessagesContainerView ({\n children,\n messegerView,\n submitNewChat,\n cancelNewChat,\n reasons,\n products,\n newChatLoading,\n maxFileSize,\n loadingResources,\n}: IMessengerForm) {\n const { theme } = useTheme()\n const { t } = useTranslation('messengerMessages')\n\n if (messegerView === 'empty') {\n return (\n <div\n className='messenger__messages-container--empty'\n style={{ backgroundColor: theme?.messengerNotSelectedBg }}\n >\n <MessageIcon width='72' height='72' />\n <p>{t('selectConversation')}</p>\n </div>\n )\n }\n\n if (messegerView === 'newChat') {\n return (\n <NewChatForm\n reasons={reasons}\n products={products}\n submitNewChat={submitNewChat}\n cancelNewChat={cancelNewChat}\n loading={newChatLoading}\n maxFileSize={maxFileSize}\n loadingResources={loadingResources}\n />\n )\n }\n\n return <>{children}</>\n}\n\nexport function SpinLoading () {\n return (\n <div className='messenger__messages-loading'>\n <div className='messenger__messages-loading--loader' />\n </div>\n )\n}\n\nfunction Messages ({\n messages,\n creatorId,\n formatDate,\n loading,\n}: {\n messages: IMessages[]\n creatorId?: string\n formatDate: (date: string | Date) => string | undefined\n loading: boolean\n}) {\n const { theme } = useTheme()\n const { t } = useTranslation('messengerMessages')\n\n if (!messages || (messages.length === 0 && !loading)) {\n return (\n <div\n className='messenger__message-empty'\n style={{ color: theme.emptyMessagesFontColor }}\n >\n <EmptyIcon />\n <p>{t('noMessagesFound')}</p>\n </div>\n )\n }\n\n return (\n <>\n {messages.map((item, idx) => {\n return (\n <Fragment key={`${item.ticketId}_${item.senderId}_${idx}`}>\n <MessageBalloon\n id={`message_${idx}`}\n formatDate={formatDate}\n creatorId={creatorId}\n item={item}\n />\n </Fragment>\n )\n })}\n </>\n )\n}\n\nconst onScrollToBottom = (\n scrollContainer: MutableRefObject<HTMLDivElement | null>\n) => {\n if (scrollContainer.current) {\n scrollContainer.current.scrollTop = Number.MAX_SAFE_INTEGER\n }\n}\n\nfunction MessagesContainer ({\n children,\n fowardRef,\n ...rest\n}: {\n children: React.ReactNode\n fowardRef: MutableRefObject<HTMLDivElement | null>\n} & React.DetailedHTMLProps<\n React.HTMLAttributes<HTMLDivElement>,\n HTMLDivElement\n>) {\n const { theme } = useTheme()\n\n return (\n <div\n {...rest}\n ref={fowardRef}\n className='messenger__messages-container'\n style={{\n padding: '1rem',\n backgroundColor: theme?.messengerMessagesBg,\n border: `1px solid ${theme.borderColor}`,\n }}\n >\n {children}\n </div>\n )\n}\n\nfunction ScrollableContainer ({\n children,\n loading,\n onIntersect,\n hasNext,\n scrollContainerFowardRef,\n}: {\n children: React.ReactNode\n scrollContainerFowardRef: MutableRefObject<HTMLDivElement | null>\n} & IScrollableContainer) {\n const intersetRootMargin = 300\n\n const getElementScrollHeight = (divRef: HTMLDivElement | null) => {\n if (!divRef) return null\n return divRef.scrollHeight\n }\n\n const getElementScrollTop = (divRef: HTMLDivElement | null) => {\n if (!divRef) return null\n return divRef.scrollTop\n }\n\n const calculateScrollToDecrease = (\n elementBeforeIntersetHeight: number,\n elementAfterIntersectHeight: number,\n intersetRootMargin: number\n ) => {\n return (\n Math.abs(elementAfterIntersectHeight - elementBeforeIntersetHeight) +\n intersetRootMargin\n )\n }\n\n const isNill = (value: number | null | undefined) => {\n return value === null && value === undefined\n }\n\n const onFetchInfiniteScroll = async () => {\n const elementBeforeIntersetHeight = getElementScrollHeight(\n scrollContainerFowardRef.current\n )\n\n await onIntersect()\n\n const elementAfterIntersectHeight = getElementScrollHeight(\n scrollContainerFowardRef.current\n )\n\n if (\n scrollContainerFowardRef.current &&\n !isNill(elementBeforeIntersetHeight) &&\n !isNill(elementAfterIntersectHeight)\n ) {\n const currentScrollTop =\n getElementScrollTop(scrollContainerFowardRef.current) || 0\n scrollContainerFowardRef.current.scrollTop = calculateScrollToDecrease(\n elementAfterIntersectHeight as number,\n elementBeforeIntersetHeight as number,\n currentScrollTop\n )\n }\n }\n\n useEffect(() => {\n onScrollToBottom(scrollContainerFowardRef)\n }, [])\n\n return (\n <MessagesContainer fowardRef={scrollContainerFowardRef}>\n <InfiniteScroll\n root={document.querySelector('.messenger__messages-container')}\n loading={loading}\n loadingCover={<SpinLoading />}\n more={hasNext}\n fetch={onFetchInfiniteScroll}\n rootMargin={intersetRootMargin}\n reverse\n >\n {children}\n </InfiniteScroll>\n </MessagesContainer>\n )\n}\n\nfunction MessengerMessages ({\n header,\n tab,\n className = '',\n current,\n messages,\n allowImages,\n creatorId,\n loading,\n onSubmit,\n submitNewChat,\n cancelNewChat,\n reasons,\n products,\n messegerView,\n formatDate,\n hasNext,\n onIntersect,\n newChatLoading,\n maxFileSize,\n}: IMessengerMessages) {\n const { t } = useTranslation('messengerMessages')\n const [file, setFile] = useState<File | null>()\n const scrollContainerRef = useRef<HTMLDivElement | null>(null)\n const [isSending, setIsSending] = useState(false)\n const [maxSize, setMaxSize] = useState<string>('')\n\n const { theme } = useTheme()\n\n const styleClassnames = {\n mobile: tab === 'list' ? 'messenger__mobile-hide' : '',\n }\n\n const updateFile = (file: File | null) => {\n setFile(file)\n }\n\n const onSubmitNewMessage = async (\n message: FormData,\n callback: () => void\n ) => {\n setIsSending(true)\n try {\n await onSubmit(message, callback)\n onScrollToBottom(scrollContainerRef)\n } finally {\n setIsSending(false)\n }\n }\n\n useEffect(() => {\n const fetchMaxFileSize = async () => {\n try {\n const response = await maxFileSize()\n const size = formatFileSize(response.data.data.maxFileSize)\n setMaxSize(size)\n } catch (error) {\n console.error(t('errorSearchingMaxFileSize'), error)\n }\n }\n\n fetchMaxFileSize()\n }, [maxSize])\n\n return (\n <div\n className={`messenger__messages ${className} ${styleClassnames.mobile} `}\n >\n <MessagesContainerView\n newChatLoading={newChatLoading}\n reasons={reasons}\n products={products}\n submitNewChat={submitNewChat}\n cancelNewChat={cancelNewChat}\n messegerView={messegerView}\n maxFileSize={maxSize}\n loadingResources={loading}\n >\n {file ? (\n <ImagesContainer file={file} onClose={() => setFile(null)} />\n ) : (\n <>\n <div\n className='messenger__messages-header'\n style={{\n backgroundColor: theme?.headerAndSenderBg,\n border: `1px solid ${theme.borderColor}`,\n }}\n >\n {React.cloneElement(header)}\n </div>\n\n {loading && !messages.length ? (\n <MessagesContainer fowardRef={scrollContainerRef}>\n <SpinLoading />\n </MessagesContainer>\n ) : (\n <ScrollableContainer\n scrollContainerFowardRef={scrollContainerRef}\n loading={loading}\n hasNext={hasNext}\n onIntersect={onIntersect}\n >\n <Messages\n formatDate={formatDate}\n messages={messages}\n creatorId={creatorId}\n loading={loading}\n />\n </ScrollableContainer>\n )}\n </>\n )}\n\n <div\n className='messenger__messages-send'\n style={{\n backgroundColor: theme?.headerAndSenderBg,\n border: `1px solid ${theme.borderColor}`,\n }}\n >\n <SendMessageForm\n allowImages={allowImages}\n onSubmit={onSubmitNewMessage}\n file={file}\n updateFile={updateFile}\n current={current}\n isLoading={isSending}\n maxFileSize={maxSize}\n />\n </div>\n </MessagesContainerView>\n </div>\n )\n}\n\nexport default MessengerMessages\n","import { useState } from 'react'\nimport { IList } from 'types'\n\ntype _viewDesktop = 'empty' | 'messages' | 'newChat'\ntype _viewMobile = 'list' | 'messages'\n\nexport const useConversations = () => {\n const SLICE = 15\n const [sliceCount, setSliceCount] = useState(SLICE)\n const [conversations, setConversations] = useState<IList[]>([])\n const [currentChat, setCurrentChat] = useState<IList>()\n const [viewDesktop, setViewDesktop] = useState<_viewDesktop>('empty')\n const [viewMobile, setViewMobile] = useState<'list' | 'messages'>('list')\n\n const changeViewDesktop = (view: _viewDesktop) => {\n setViewDesktop(view)\n }\n\n const changeViewMobile = (view: _viewMobile) => {\n setViewMobile(view)\n }\n\n const selectChat = (chat: IList) => {\n setCurrentChat(chat)\n }\n\n const onIntersect = () => {\n setSliceCount((prev) => {\n const count = prev + SLICE\n return count\n })\n }\n\n const hasNext = () => {\n return conversations.length >= sliceCount\n }\n\n const resetConversations = () => {\n setConversations([])\n }\n\n const mapConversationsUnread = (prev: IList[]) => (id: string) => {\n return (prev || []).map((conversation) => {\n if (conversation?._id === id) {\n return {\n ...conversation,\n totalUnreadMessages: 0,\n }\n }\n\n return conversation\n })\n }\n\n const reorderConversations = (conversations: IList[], ticketId?: string) => {\n const index = conversations.findIndex(\n (conversation) => conversation._id === ticketId\n )\n if (index !== -1) {\n const conversationToMove = conversations.splice(index, 1)[0]\n conversations.unshift(conversationToMove)\n }\n }\n\n const mapConversationsIncrementUnread =\n (prev: IList[], ticketId?: string) => (id: string) => {\n const updatedConversations = (prev || []).map((conversation) => {\n if (conversation._id === id) {\n return {\n ...conversation,\n totalUnreadMessages:\n ticketId === id ? 0 : conversation.totalUnreadMessages + 1,\n }\n }\n return conversation\n })\n\n reorderConversations(updatedConversations, ticketId)\n\n return updatedConversations\n }\n\n const setAsRead = (id: string) => {\n setConversations((prev) => mapConversationsUnread(prev)(id))\n }\n\n const addConversations = (\n conversations: IList[],\n goToNewConversation?: (chat: IList) => void\n ) => {\n setConversations(conversations)\n\n if (goToNewConversation) goToNewConversation(conversations[0])\n }\n\n const addOneUnreadToTicket = (ticketId: string, currentChat?: string) => {\n setConversations((prev) => {\n return mapConversationsIncrementUnread(prev, currentChat)(ticketId)\n })\n }\n\n const removeClosedConversation = (ticketId: string) => {\n const filtred = conversations.filter(\n (conversation) => conversation._id !== ticketId\n )\n addConversations(filtred)\n }\n\n const closeIfIsCurrent = (ticketId: string) => {\n if (ticketId === currentChat?._id) {\n changeViewDesktop('empty')\n changeViewMobile('list')\n }\n }\n\n const onCloseChat = (ticketId: string) => {\n removeClosedConversation(ticketId)\n closeIfIsCurrent(ticketId)\n }\n\n const reset = () => {\n setSliceCount(SLICE)\n resetConversations()\n }\n\n return {\n onIntersect,\n reset,\n conversations,\n hasNext,\n addConversations,\n addOneUnreadToTicket,\n setAsRead,\n sliceCount,\n currentChat,\n selectChat,\n onCloseChat,\n changeViewDesktop,\n viewDesktop,\n changeViewMobile,\n viewMobile,\n }\n}\n","import { useState } from 'react'\nimport { IMessages, ISocketMessage } from 'types'\n\nexport const useMessages = () => {\n const [messages, setMessages] = useState<IMessages[]>([])\n const [totalMessages, setTotalMessages] = useState<number>(0)\n\n const addMessages = (messages: IMessages[]) => {\n setMessages(messages)\n }\n const addTotalMessages = (total: number) => {\n setTotalMessages(total)\n }\n\n const incrementMessages = (ticket: ISocketMessage, currentChatId: string) => {\n const existentMessage = messages.find(\n (item) => item.messagecode === ticket.message.messagecode\n )\n if (ticket.message.ticketId === currentChatId && !existentMessage) {\n addMessages([...messages, ticket.message])\n }\n }\n\n const updateMesssagesAsRead = (\n ticket: ISocketMessage,\n currentChatId: string\n ) => {\n if (ticket.markAsRead || currentChatId === ticket?.message?.ticketId) {\n const readMessages = messages.map((message) => ({\n ...message,\n everybodyHasRead: true,\n }))\n addMessages(readMessages)\n }\n }\n\n const hasOlderMessages = () => {\n return messages.length > 9 && messages.length < totalMessages\n }\n\n return {\n addMessages,\n messages,\n incrementMessages,\n updateMesssagesAsRead,\n addTotalMessages,\n hasOlderMessages,\n }\n}\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 i18n from 'i18next'\nimport { initReactI18next } from 'react-i18next'\n\nimport pt from './locales/pt.json'\nimport en from './locales/en.json'\n\nconst resources = makeResources()\nfunction makeResources () {\n return {\n en: {\n newFormChat: en.newFormChat,\n messengerMessages: en.messengerMessages,\n messengerList: en.messengerList,\n },\n pt: {\n newFormChat: pt.newFormChat,\n messengerMessages: pt.messengerMessages,\n messengerList: pt.messengerList,\n },\n }\n}\n\ni18n.use(initReactI18next).init({\n resources,\n lng: 'pt',\n fallbackLng: 'pt',\n interpolation: {\n escapeValue: false,\n },\n})\n\nexport default i18n\n\nexport function setLanguage (lang: string) {\n i18n.changeLanguage(lang)\n}\n","import React, { ReactNode, useEffect } from 'react'\nimport { I18nextProvider } from 'react-i18next'\nimport defaultI18n from '../i18n'\n\ninterface ChatProviderProps {\n children: ReactNode\n locale?: string\n}\n\nfunction ChatProvider ({ children, locale }: ChatProviderProps) {\n useEffect(() => {\n if (locale) {\n defaultI18n.changeLanguage(locale)\n }\n }, [locale])\n\n return <I18nextProvider i18n={defaultI18n}>{children}</I18nextProvider>\n}\n\nexport default ChatProvider\n"],"names":["root","factory","exports","module","require","define","amd","self","__WEBPACK_EXTERNAL_MODULE__156__","___CSS_LOADER_EXPORT___","push","id","cssWithMappingToString","list","toString","this","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","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","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","setLanguage","lang"],"sourceRoot":""}
|