agx-chat-web 1.2.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.
Files changed (38) hide show
  1. package/dist/agx-chat.esm.js +1 -1
  2. package/dist/agx-chat.esm.js.map +1 -1
  3. package/dist/agx-chat.umd.js +2 -0
  4. package/dist/agx-chat.umd.js.map +1 -0
  5. package/dist/esm/app/ChatProvider/ChatProvider.d.ts +7 -0
  6. package/dist/esm/app/ChatProvider/ChatProvider.js +14 -0
  7. package/dist/esm/app/ChatProvider/ChatProvider.js.map +1 -0
  8. package/dist/esm/app/Messenger/components/IncomingMessage/IncomingMessage.js +7 -3
  9. package/dist/esm/app/Messenger/components/IncomingMessage/IncomingMessage.js.map +1 -1
  10. package/dist/esm/app/Messenger/components/InputFile/InputFile.js +3 -1
  11. package/dist/esm/app/Messenger/components/InputFile/InputFile.js.map +1 -1
  12. package/dist/esm/app/Messenger/components/RenderFileIcon/RenderFileIcon.js +8 -0
  13. package/dist/esm/app/Messenger/components/RenderFileIcon/RenderFileIcon.js.map +1 -1
  14. package/dist/esm/app/Messenger/components/Select/Select.js +1 -1
  15. package/dist/esm/app/Messenger/components/SendMessageForm/SendMessageForm.js +33 -9
  16. package/dist/esm/app/Messenger/components/SendMessageForm/SendMessageForm.js.map +1 -1
  17. package/dist/esm/app/Messenger/components/SenderMessages/SenderMessages.js +11 -8
  18. package/dist/esm/app/Messenger/components/SenderMessages/SenderMessages.js.map +1 -1
  19. package/dist/esm/app/Messenger/icons/CSVFileIcon.d.ts +4 -0
  20. package/dist/esm/app/Messenger/icons/CSVFileIcon.js +7 -0
  21. package/dist/esm/app/Messenger/icons/CSVFileIcon.js.map +1 -0
  22. package/dist/esm/app/Messenger/icons/MP4FileIcon.d.ts +4 -0
  23. package/dist/esm/app/Messenger/icons/MP4FileIcon.js +7 -0
  24. package/dist/esm/app/Messenger/icons/MP4FileIcon.js.map +1 -0
  25. package/dist/esm/app/Messenger/views/NewFormChat.js +1 -1
  26. package/dist/esm/app/Messenger/views/NewFormChat.js.map +1 -1
  27. package/dist/esm/app/i18n/index.d.ts +1 -1
  28. package/dist/esm/app/i18n/index.js +15 -14
  29. package/dist/esm/app/i18n/index.js.map +1 -1
  30. package/dist/esm/index.d.ts +2 -1
  31. package/dist/esm/index.js +2 -1
  32. package/dist/esm/index.js.map +1 -1
  33. package/package.json +2 -2
  34. package/dist/agx-chat.min.js +0 -2
  35. package/dist/agx-chat.min.js.map +0 -1
  36. package/dist/esm/app/i18n/locales/index.d.ts +0 -6
  37. package/dist/esm/app/i18n/locales/index.js +0 -7
  38. package/dist/esm/app/i18n/locales/index.js.map +0 -1
@@ -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/./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"],"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'\r\n\r\nconst defaultThemeVariables = {\r\n asideBg: '#eee',\r\n asideFontColor: 'var(--secondary-color)',\r\n messengerMessagesBg: '#eeeeee',\r\n headerAndSenderBg: '#232831',\r\n buttonPrimary: '#25D366',\r\n buttonPrimaryText: '#707070',\r\n buttonsDisabled: '#94989D',\r\n uploadFileIconColor: '#8696a0',\r\n messengerNotSelectedBg: '#DDDDDD',\r\n newChatFormBg: '',\r\n newChatFormRadius: '0 20px 20px 0',\r\n newChatFormTexts: '#000',\r\n newChatFormDeleteFileButton: '#DD4E4E',\r\n disclaimerPrimaryColor: '#4791FF',\r\n disclaimerSecondaryColor: '#4791FF',\r\n disclaimerTextColor: '#000',\r\n messengerSenderColor: '#00A73E',\r\n messengerIncomerColor: '#707070',\r\n messengerSystemColor: '#2A313A',\r\n borderColor: '#AAAAAA',\r\n inputBg: 'var(--secondary-color)',\r\n chatInputBorder: '',\r\n listItemHover: '',\r\n active: '',\r\n activeTabBorter: '#25D366',\r\n emptyMessagesFontColor: '#000',\r\n documentMessagesTextColor: '#fff',\r\n}\r\n\r\ntype ThemeVariables = typeof defaultThemeVariables\r\n\r\ntype ThemeContextContent = {\r\n theme: Partial<ThemeVariables>\r\n}\r\n\r\nexport const MessageThemeContext = createContext<ThemeContextContent>(\r\n {} as unknown as ThemeContextContent\r\n)\r\n\r\ntype Props = {\r\n children: ReactNode\r\n theme?: Partial<ThemeVariables>\r\n}\r\nconst MessageThemeWrapper = ({\r\n children,\r\n theme = defaultThemeVariables,\r\n}: Props) => {\r\n const config = {\r\n theme,\r\n }\r\n\r\n return (\r\n <MessageThemeContext.Provider value={config}>\r\n {children}\r\n </MessageThemeContext.Provider>\r\n )\r\n}\r\n\r\nexport default MessageThemeWrapper\r\n","import { useContext } from 'react'\r\nimport { MessageThemeContext } from '../components/MessengerThemeWrapper/MessengerThemeWrapper'\r\n\r\nconst useTheme = () => {\r\n const context = useContext(MessageThemeContext)\r\n\r\n if (context === undefined) {\r\n throw new Error('useTheme must be used within a ThemeProvider')\r\n }\r\n\r\n return context\r\n}\r\n\r\nexport default useTheme\r\n","import dayjs, { ConfigType, Dayjs } from 'dayjs'\r\nimport dayjsBR from 'dayjs/locale/pt-br'\r\nimport utc from 'dayjs/plugin/utc'\r\nimport timezone from 'dayjs/plugin/timezone'\r\nimport isToday from 'dayjs/plugin/isToday'\r\nconst serverTz = 'America/Sao_Paulo'\r\n\r\ndayjs.extend(utc)\r\ndayjs.extend(timezone)\r\ndayjs.extend(isToday)\r\ndayjs.locale(dayjsBR)\r\n\r\nexport const timeAsDayjs = (\r\n value: ConfigType = new Date(),\r\n options?: { server?: boolean; applyTimezone?: boolean }\r\n): Dayjs => {\r\n const server = options?.server\r\n const applyTimezone = options?.applyTimezone\r\n\r\n let timezone = dayjs.tz.guess()\r\n if (!(applyTimezone ?? true)) timezone = 'GMT'\r\n else if (server ?? false) timezone = serverTz\r\n\r\n return dayjs.tz(value, timezone)\r\n}\r\n\r\nexport const time = (\r\n value: ConfigType = new Date(),\r\n options?: { server?: boolean; applyTimezone?: boolean }\r\n): Date => {\r\n const server = options?.server\r\n const applyTimezone = options?.applyTimezone\r\n let aux: Dayjs\r\n\r\n if (!(applyTimezone ?? true))\r\n aux = dayjs.tz(value, 'GMT') // Set applyTimezone to false when timezone is applied incorrectly (usually when working with JSDate and timestamps)\r\n else if (server ?? false) aux = dayjs.tz(value, serverTz)\r\n else aux = dayjs.tz(value, dayjs.tz.guess())\r\n\r\n return new Date(\r\n Date.UTC(\r\n aux.year(),\r\n aux.month(),\r\n aux.date(),\r\n aux.hour(),\r\n aux.minute(),\r\n aux.second(),\r\n aux.millisecond()\r\n )\r\n )\r\n}\r\n\r\nexport class SlaDates {\r\n public seconds: number | null\r\n\r\n constructor (seconds: number) {\r\n this.seconds = seconds\r\n }\r\n\r\n private holidays = {\r\n 2023: ['09-07', '10-12', '10-17', '11-02', '11-15', '11-20', '12-25'],\r\n }\r\n\r\n private isWorkingDay (date: Dayjs) {\r\n const dayOfWeek = date.day()\r\n return dayOfWeek >= 1 && dayOfWeek <= 5 // Monday to Friday (1 to 5)\r\n }\r\n\r\n private isWorkingHour (date: Dayjs) {\r\n const hour = date.hour()\r\n return hour >= 9 && hour <= 18 // Between 9 AM and 5 PM (inclusive)\r\n }\r\n\r\n public isWeekendOrHoliday (date: Dayjs | Date | string): boolean {\r\n const weekDay = timeAsDayjs(date, { applyTimezone: false }).day()\r\n if ([6, 0].includes(weekDay)) return true\r\n\r\n const formatedDate = timeAsDayjs(date).format('MM-DD')\r\n const isHollyday = this.holidays[2023].includes(formatedDate)\r\n return isHollyday\r\n }\r\n\r\n private isHoliday (date: Dayjs) {\r\n const formatedDate = timeAsDayjs(date, { applyTimezone: false }).format(\r\n 'MM-DD'\r\n )\r\n const isHollyday = this.holidays[2023].includes(formatedDate)\r\n return isHollyday\r\n }\r\n\r\n public canUpdateClock (date: Dayjs) {\r\n const isWorking = this.isWorkingDay(date) && this.isWorkingHour(date)\r\n return !this.isWeekendOrHoliday(date) && isWorking\r\n }\r\n\r\n public getDiffInSeconds (\r\n startDate: dayjs.Dayjs,\r\n endDate: dayjs.Dayjs\r\n ): number {\r\n const diffInSeconds = endDate.diff(startDate, 'second')\r\n return diffInSeconds\r\n }\r\n\r\n calculateWorkingTime (\r\n startDate: Dayjs,\r\n endDate: Dayjs,\r\n workingHours: { start: number; end: number }\r\n ) {\r\n let current = startDate.clone()\r\n let workingTime = 0\r\n\r\n while (current.isBefore(endDate)) {\r\n // Skip weekends (Saturday and Sunday) and Holydays\r\n\r\n if (this.isWorkingDay(current) && !this.isHoliday(current)) {\r\n const startOfDay = current\r\n .clone()\r\n .startOf('day')\r\n .add(workingHours.start, 'hour')\r\n const endOfDay = current\r\n .clone()\r\n .startOf('day')\r\n .add(workingHours.end, 'hour')\r\n\r\n if (current.isBefore(startOfDay)) {\r\n // If current time is before the start of working hours, move to the start of working hours\r\n current = startOfDay.clone()\r\n }\r\n\r\n if (current.isAfter(endOfDay)) {\r\n current = current.clone().add(1, 'day').startOf('day')\r\n } else if (endDate.isAfter(endOfDay)) {\r\n // If end date is after the end of working hours, add a full working day\r\n\r\n workingTime += Math.abs(endOfDay.clone().diff(current, 'second'))\r\n current = current\r\n .clone()\r\n .add(1, 'day')\r\n .startOf('day')\r\n .add(workingHours.start, 'hour')\r\n } else {\r\n // Calculate working time for the last day (end date)\r\n workingTime += Math.abs(endDate.clone().diff(current, 'second'))\r\n\r\n break\r\n }\r\n } else {\r\n // Move to the next day\r\n current = current.clone().add(1, 'day').startOf('day')\r\n }\r\n }\r\n\r\n return workingTime\r\n }\r\n\r\n // Function to calculate the difference in seconds between two dates considering working hours\r\n getDifferenceInSeconds (\r\n startDate: Dayjs,\r\n endDate: Dayjs,\r\n workingHours: { start: number; end: number }\r\n ) {\r\n if (endDate.isBefore(startDate)) {\r\n throw new Error('End date should be after the start date.')\r\n }\r\n\r\n const workingTimeInSeconds = this.calculateWorkingTime(\r\n startDate,\r\n endDate,\r\n workingHours\r\n )\r\n return workingTimeInSeconds\r\n }\r\n\r\n static secondsInHours (currentSeconds: number) {\r\n const hours = Math.floor(currentSeconds / 3600)\r\n const minutes = Math.floor((currentSeconds % 3600) / 60)\r\n const seconds = currentSeconds % 60\r\n return `${hours.toString().padStart(2, '0')}:${minutes.toString().padStart(2, '0')}:${seconds.toString().padStart(2, '0')}`\r\n }\r\n\r\n static getColorsByTime (seconds: number) {\r\n const hours = seconds / 3600\r\n if (hours <= 2) {\r\n return '#00CF7B'\r\n }\r\n\r\n if (hours >= 2 && hours < 3) {\r\n return '#FF9838'\r\n }\r\n\r\n if (hours >= 3 && hours < 4) {\r\n return '#DD4E4E'\r\n }\r\n\r\n return '#151919'\r\n }\r\n}\r\n","import e from\"void-elements\";var t=/\\s([^'\"/\\s><]+?)[\\s/>]|([^\\s=]+)=\\s?(\".*?\"|'.*?')/g;function n(n){var r={type:\"tag\",name:\"\",voidElement:!1,attrs:{},children:[]},i=n.match(/<\\/?([^\\s]+?)[/\\s>]/);if(i&&(r.name=i[1],(e[i[1]]||\"/\"===n.charAt(n.length-2))&&(r.voidElement=!0),r.name.startsWith(\"!--\"))){var s=n.indexOf(\"--\\x3e\");return{type:\"comment\",comment:-1!==s?n.slice(4,s):\"\"}}for(var a=new RegExp(t),c=null;null!==(c=a.exec(n));)if(c[0].trim())if(c[1]){var o=c[1].trim(),l=[o,\"\"];o.indexOf(\"=\")>-1&&(l=o.split(\"=\")),r.attrs[l[0]]=l[1],a.lastIndex--}else c[2]&&(r.attrs[c[2]]=c[3].trim().substring(1,c[3].length-1));return r}var r=/<[a-zA-Z0-9\\-\\!\\/](?:\"[^\"]*\"|'[^']*'|[^'\">])*>/g,i=/^\\s*$/,s=Object.create(null);function a(e,t){switch(t.type){case\"text\":return e+t.content;case\"tag\":return e+=\"<\"+t.name+(t.attrs?function(e){var t=[];for(var n in e)t.push(n+'=\"'+e[n]+'\"');return t.length?\" \"+t.join(\" \"):\"\"}(t.attrs):\"\")+(t.voidElement?\"/>\":\">\"),t.voidElement?e:e+t.children.reduce(a,\"\")+\"</\"+t.name+\">\";case\"comment\":return e+\"\\x3c!--\"+t.comment+\"--\\x3e\"}}var c={parse:function(e,t){t||(t={}),t.components||(t.components=s);var a,c=[],o=[],l=-1,m=!1;if(0!==e.indexOf(\"<\")){var u=e.indexOf(\"<\");c.push({type:\"text\",content:-1===u?e:e.substring(0,u)})}return e.replace(r,function(r,s){if(m){if(r!==\"</\"+a.name+\">\")return;m=!1}var u,f=\"/\"!==r.charAt(1),h=r.startsWith(\"\\x3c!--\"),p=s+r.length,d=e.charAt(p);if(h){var v=n(r);return l<0?(c.push(v),c):((u=o[l]).children.push(v),c)}if(f&&(l++,\"tag\"===(a=n(r)).type&&t.components[a.name]&&(a.type=\"component\",m=!0),a.voidElement||m||!d||\"<\"===d||a.children.push({type:\"text\",content:e.slice(p,e.indexOf(\"<\",p))}),0===l&&c.push(a),(u=o[l-1])&&u.children.push(a),o[l]=a),(!f||a.voidElement)&&(l>-1&&(a.voidElement||a.name===r.slice(2,-1))&&(l--,a=-1===l?c:o[l]),!m&&\"<\"!==d&&d)){u=-1===l?c:o[l].children;var x=e.indexOf(\"<\",p),g=e.slice(p,-1===x?void 0:x);i.test(g)&&(g=\" \"),(x>-1&&l+u.length>=0||\" \"!==g)&&u.push({type:\"text\",content:g})}}),c},stringify:function(e){return e.reduce(function(e,t){return e+a(\"\",t)},\"\")}};export default c;\n//# sourceMappingURL=html-parse-stringify.module.js.map\n","export function warn() {\n if (console && console.warn) {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n if (typeof args[0] === 'string') args[0] = `react-i18next:: ${args[0]}`;\n console.warn(...args);\n }\n}\nconst alreadyWarned = {};\nexport function warnOnce() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n if (typeof args[0] === 'string' && alreadyWarned[args[0]]) return;\n if (typeof args[0] === 'string') alreadyWarned[args[0]] = new Date();\n warn(...args);\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 function loadNamespaces(i18n, ns, cb) {\n i18n.loadNamespaces(ns, loadedClb(i18n, cb));\n}\nexport function loadLanguages(i18n, lng, ns, cb) {\n if (typeof ns === 'string') ns = [ns];\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}\nfunction oldI18nextHasLoadedNamespace(ns, i18n) {\n let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n const lng = i18n.languages[0];\n const fallbackLng = i18n.options ? i18n.options.fallbackLng : false;\n const lastLng = i18n.languages[i18n.languages.length - 1];\n if (lng.toLowerCase() === 'cimode') return true;\n const loadNotPending = (l, n) => {\n const loadState = i18n.services.backendConnector.state[`${l}|${n}`];\n return loadState === -1 || loadState === 2;\n };\n if (options.bindI18n && options.bindI18n.indexOf('languageChanging') > -1 && i18n.services.backendConnector.backend && i18n.isLanguageChangingTo && !loadNotPending(i18n.isLanguageChangingTo, ns)) return false;\n if (i18n.hasResourceBundle(lng, ns)) return true;\n if (!i18n.services.backendConnector.backend || i18n.options.resources && !i18n.options.partialBundledLanguages) return true;\n if (loadNotPending(lng, ns) && (!fallbackLng || loadNotPending(lastLng, ns))) return true;\n return false;\n}\nexport function hasLoadedNamespace(ns, i18n) {\n let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n if (!i18n.languages || !i18n.languages.length) {\n warnOnce('i18n.languages were undefined or empty', i18n.languages);\n return true;\n }\n const isNewerI18next = i18n.options.ignoreJSONStructure !== undefined;\n if (!isNewerI18next) {\n return oldI18nextHasLoadedNamespace(ns, i18n, options);\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 function getDisplayName(Component) {\n return Component.displayName || Component.name || (typeof Component === 'string' && Component.length > 0 ? Component : 'Unknown');\n}","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 '&amp;': '&',\n '&#38;': '&',\n '&lt;': '<',\n '&#60;': '<',\n '&gt;': '>',\n '&#62;': '>',\n '&apos;': \"'\",\n '&#39;': \"'\",\n '&quot;': '\"',\n '&#34;': '\"',\n '&nbsp;': ' ',\n '&#160;': ' ',\n '&copy;': '©',\n '&#169;': '©',\n '&reg;': '®',\n '&#174;': '®',\n '&hellip;': '…',\n '&#8230;': '…',\n '&#x2F;': '/',\n '&#47;': '/'\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 function setDefaults() {\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n defaultOptions = {\n ...defaultOptions,\n ...options\n };\n}\nexport function getDefaults() {\n return defaultOptions;\n}","let i18nInstance;\nexport function setI18n(instance) {\n i18nInstance = instance;\n}\nexport function getI18n() {\n return i18nInstance;\n}","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 function composeInitialProps(ForComponent) {\n return ctx => new Promise(resolve => {\n const i18nInitialProps = getInitialProps();\n if (ForComponent.getInitialProps) {\n ForComponent.getInitialProps(ctx).then(componentsInitialProps => {\n resolve({\n ...componentsInitialProps,\n ...i18nInitialProps\n });\n });\n } else {\n resolve(i18nInitialProps);\n }\n });\n}\nexport function getInitialProps() {\n const i18n = getI18n();\n const namespaces = i18n.reportNamespaces ? 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 } from 'react';\nimport { getI18n, getDefaults, ReportNamespaces, I18nContext } from './context.js';\nimport { warnOnce, loadNamespaces, loadLanguages, hasLoadedNamespace } 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};\nexport function useTranslation(ns) {\n let props = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\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('You will need to pass in an i18next instance by using initReactI18next');\n const notReadyT = (k, optsOrDefaultValue) => {\n if (typeof optsOrDefaultValue === 'string') return optsOrDefaultValue;\n if (optsOrDefaultValue && typeof optsOrDefaultValue === 'object' && typeof optsOrDefaultValue.defaultValue === 'string') 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 && i18n.options.react.wait !== undefined) warnOnce('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 && i18n.options.defaultNS;\n namespaces = typeof namespaces === 'string' ? [namespaces] : namespaces || ['translation'];\n if (i18n.reportNamespaces.addUsedNamespaces) i18n.reportNamespaces.addUsedNamespaces(namespaces);\n const ready = (i18n.isInitialized || i18n.initializedStoreOnce) && namespaces.every(n => hasLoadedNamespace(n, i18n, i18nOptions));\n function getT() {\n return i18n.getFixedT(props.lng || null, i18nOptions.nsMode === 'fallback' ? namespaces : namespaces[0], keyPrefix);\n }\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(getT);\n });\n } else {\n loadNamespaces(i18n, namespaces, () => {\n if (isMounted.current) setT(getT);\n });\n }\n }\n if (ready && previousJoinedNS && previousJoinedNS !== joinedNS && isMounted.current) {\n setT(getT);\n }\n function boundReset() {\n if (isMounted.current) setT(getT);\n }\n if (bindI18n && i18n) i18n.on(bindI18n, boundReset);\n if (bindI18nStore && i18n) i18n.store.on(bindI18nStore, boundReset);\n return () => {\n isMounted.current = false;\n if (bindI18n && i18n) 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 const isInitial = useRef(true);\n useEffect(() => {\n if (isMounted.current && !isInitial.current) {\n setT(getT);\n }\n isInitial.current = false;\n }, [i18n, keyPrefix]);\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 useTheme from '../../hooks/useThemes'\r\nimport React from 'react'\r\nimport { useTranslation } from 'react-i18next'\r\nimport { IMesssengerAvatar } from 'types'\r\n\r\nfunction MessengerAvatar ({\r\n image,\r\n children,\r\n className = '',\r\n}: IMesssengerAvatar) {\r\n const { t } = useTranslation('messengerList')\r\n const { theme } = useTheme()\r\n return (\r\n <figure\r\n className={`${className} messenger__aside-list-item--avatar`}\r\n style={{\r\n background: theme.messengerIncomerColor,\r\n }}\r\n >\r\n {image ? (\r\n <img loading='lazy' alt={t('messengerAvatar.alt')} src={image} />\r\n ) : (\r\n children\r\n )}\r\n </figure>\r\n )\r\n}\r\n\r\nexport default MessengerAvatar\r\n","import React from 'react'\r\n\r\nexport default function TimerIcon ({ color }: { color: string }) {\r\n return (\r\n <svg\r\n width='14'\r\n height='14'\r\n viewBox='0 0 18 18'\r\n fill={color}\r\n xmlns='http://www.w3.org/2000/svg'\r\n >\r\n <path\r\n d='M9.42207 4.79883H8.57656C8.49922 4.79883 8.43594 4.86211 8.43594 4.93946V9.77871C8.43594 9.82442 8.45703 9.8666 8.49394 9.89297L11.3996 12.0147C11.4629 12.0604 11.5508 12.048 11.5965 11.9848L12.0992 11.2992C12.1467 11.2342 12.1326 11.1463 12.0693 11.1023L9.56269 9.29004V4.93946C9.56269 4.86211 9.49941 4.79883 9.42207 4.79883ZM13.2857 6.12071L16.042 6.79395C16.1299 6.81504 16.216 6.74824 16.216 6.6586L16.2301 3.81973C16.2301 3.70196 16.0947 3.63516 16.0033 3.70899L13.233 5.87285C13.2121 5.88905 13.1961 5.91083 13.187 5.93568C13.1779 5.96054 13.176 5.98746 13.1815 6.01335C13.187 6.03924 13.1997 6.06305 13.2182 6.08204C13.2366 6.10103 13.26 6.11444 13.2857 6.12071ZM16.2336 11.4135L15.2369 11.0707C15.2022 11.0588 15.1641 11.061 15.131 11.0767C15.0978 11.0925 15.0721 11.1206 15.0594 11.1551C15.026 11.2447 14.9908 11.3326 14.9539 11.4205C14.641 12.1605 14.1928 12.8268 13.6197 13.3981C13.053 13.9665 12.3815 14.4196 11.6422 14.7322C10.8764 15.056 10.0531 15.2222 9.22168 15.2209C8.38145 15.2209 7.56758 15.0574 6.80117 14.7322C6.06191 14.4196 5.39032 13.9665 4.82363 13.3981C4.25234 12.8268 3.8041 12.1605 3.48945 11.4205C3.16745 10.6542 3.00248 9.83117 3.0043 9C3.0043 8.15977 3.16777 7.34414 3.49297 6.57774C3.80586 5.8377 4.2541 5.17149 4.82715 4.6002C5.39383 4.03175 6.06542 3.57866 6.80469 3.26602C7.56758 2.94082 8.3832 2.77735 9.22344 2.77735C10.0637 2.77735 10.8775 2.94082 11.6439 3.26602C12.3832 3.57866 13.0548 4.03175 13.6215 4.6002C13.8008 4.78125 13.9695 4.96934 14.1242 5.16797L15.1754 4.34531C13.792 2.57696 11.6387 1.43965 9.21992 1.44141C5.0082 1.44317 1.62617 4.86387 1.66836 9.07735C1.71055 13.217 5.07676 16.5586 9.22344 16.5586C12.4842 16.5586 15.2615 14.4914 16.3197 11.5963C16.3461 11.5225 16.3074 11.4398 16.2336 11.4135Z'\r\n fill={color}\r\n />\r\n </svg>\r\n )\r\n}\r\n","import React, { useState, useMemo, useEffect } from 'react'\r\nimport { IList } from 'types'\r\nimport { SlaDates, timeAsDayjs } from '../classes/slaCalculations'\r\nimport MessengerAvatar from '../components/MessengerAvatar/MessengerAvatar'\r\nimport useTheme from '../hooks/useThemes'\r\nimport TimerIcon from '../icons/TimerIcon'\r\n\r\ninterface IListItem {\r\n onClick: (item: IList) => void\r\n item: IList\r\n currentId?: string\r\n canSeeDetailsChat: boolean\r\n currentViewerId: string\r\n}\r\n\r\nexport function activeItem (\r\n e: React.MouseEvent<HTMLElement, MouseEvent>,\r\n defaultClass: string,\r\n activeClass: string\r\n) {\r\n const click = document.querySelectorAll(`.${defaultClass}`)\r\n click.forEach((item) => {\r\n item.classList.remove(activeClass)\r\n })\r\n\r\n e.currentTarget.className += ` ${activeClass} `\r\n}\r\n\r\nfunction MessengerListItem ({\r\n item,\r\n onClick,\r\n canSeeDetailsChat,\r\n currentId,\r\n currentViewerId,\r\n}: IListItem) {\r\n const [unreadMessages, setUnreadMessages] = useState<\r\n typeof item.totalUnreadMessages\r\n >(item.totalUnreadMessages)\r\n const closedChat = useMemo(\r\n () =>\r\n item.status.current.state === 'final'\r\n ? 'messenger__aside-list-item--closed'\r\n : '',\r\n [item]\r\n )\r\n const [background, setBackground] = useState<string | undefined>('')\r\n const [counter, setCounter] = useState<number | null>(null)\r\n\r\n const { theme } = useTheme()\r\n const isInprogress = item.status?.current?.systemicValue === 'inprogress'\r\n\r\n const otherChatMember = useMemo(\r\n () =>\r\n item?.users.find((item) => item.uniqueCode !== currentViewerId) ||\r\n item.creator,\r\n [item?.users, currentViewerId]\r\n )\r\n\r\n useEffect(() => {\r\n let interval: NodeJS.Timer\r\n if (isInprogress && canSeeDetailsChat) {\r\n const sla = new SlaDates(\r\n timeAsDayjs(item.currentTime).diff(item.createdAt, 'second')\r\n )\r\n const diference = sla.calculateWorkingTime(\r\n timeAsDayjs(item.createdAt),\r\n timeAsDayjs(),\r\n { start: 9, end: 18 }\r\n )\r\n\r\n setCounter(diference)\r\n if (sla.canUpdateClock(timeAsDayjs())) {\r\n interval = setInterval(() => {\r\n setCounter((prev) => (prev !== null ? prev + 1 : null))\r\n }, 1000)\r\n }\r\n } else {\r\n setCounter(item.SLATimePassed ?? null)\r\n }\r\n\r\n return () => {\r\n clearInterval(interval)\r\n }\r\n }, [])\r\n\r\n useEffect(() => {\r\n setUnreadMessages(item.totalUnreadMessages)\r\n }, [item])\r\n\r\n function handleClick (\r\n e: React.MouseEvent<HTMLElement, MouseEvent>,\r\n item: IList\r\n ) {\r\n activeItem(\r\n e,\r\n 'messenger__aside-list-item',\r\n 'messenger__aside-list-item--active'\r\n )\r\n onClick(item)\r\n }\r\n\r\n function formatUnreadMessages (unread: number) {\r\n if (!unread) return 0\r\n if (unread >= 99) return 99\r\n return unread\r\n }\r\n\r\n const onMouseOver = () => {\r\n setBackground(theme?.listItemHover)\r\n }\r\n\r\n const onMouseLeave = () => {\r\n setBackground('')\r\n }\r\n\r\n const ShowTimer = () => {\r\n if (counter === null) return null\r\n\r\n return (\r\n <span\r\n className='messenger__aside-timer'\r\n style={{\r\n background: SlaDates.getColorsByTime(counter),\r\n color: 'var(--secondary-color)',\r\n width: 'fit-content',\r\n }}\r\n >\r\n <TimerIcon color='var(--secondary-color)' />\r\n &nbsp;\r\n <b>{SlaDates.secondsInHours(counter)}</b>\r\n </span>\r\n )\r\n }\r\n\r\n return (\r\n <div\r\n className={`messenger__aside-list-item ${closedChat}`}\r\n onClick={(e) => handleClick(e, item)}\r\n onMouseOver={onMouseOver}\r\n onMouseLeave={onMouseLeave}\r\n style={{\r\n color: theme?.asideFontColor,\r\n backgroundColor: currentId === item._id ? theme?.active : background,\r\n }}\r\n >\r\n <MessengerAvatar image={otherChatMember?.image}>\r\n {otherChatMember && otherChatMember.username\r\n ? otherChatMember.username.slice(0, 1)\r\n : ''}\r\n </MessengerAvatar>\r\n\r\n <div className='messenger__aside-list-item--info'>\r\n <p className='messenger__aside-list-item--title'>\r\n {otherChatMember?.username}\r\n </p>\r\n {item?.reason && (\r\n <p className='messenger__aside-list-item--description'>\r\n {item.reason}\r\n </p>\r\n )}\r\n {canSeeDetailsChat && <ShowTimer />}\r\n </div>\r\n\r\n {item && (\r\n <div className='messenger__aside-list-item--additional'>\r\n {canSeeDetailsChat && `#${item.protocol}`}\r\n {unreadMessages > 0 && (\r\n <div className='messenger__aside-list-item--unread'>\r\n <span>{formatUnreadMessages(unreadMessages)}</span>\r\n </div>\r\n )}\r\n </div>\r\n )}\r\n </div>\r\n )\r\n}\r\n\r\nexport default MessengerListItem\r\n","import useTheme from '../../hooks/useThemes'\r\nimport { activeItem } from '../../views/MessengerListItem'\r\nimport React from 'react'\r\n\r\ninterface IProps {\r\n handleChangeTickets: (tab: string) => void\r\n chatListTabs: { value: string; label: string }[]\r\n}\r\n\r\nfunction ChatTabs ({ handleChangeTickets, chatListTabs }: IProps) {\r\n const { theme } = useTheme()\r\n return (\r\n <div className='chat-tabs' style={{ color: theme.asideFontColor }}>\r\n {chatListTabs.map((tab, index) => {\r\n return (\r\n <button\r\n key={`chatListTab-${index}`}\r\n className={`chat-tabs__button ${index === 0 && 'chat-tabs__button--active'}`}\r\n onClick={(e) => {\r\n handleChangeTickets(tab.value)\r\n activeItem(e, 'chat-tabs__button', 'chat-tabs__button--active')\r\n }}\r\n >\r\n {tab.label}\r\n </button>\r\n )\r\n })}\r\n </div>\r\n )\r\n}\r\n\r\nexport default ChatTabs\r\n","import React from 'react'\r\nimport useTheme from '../../hooks/useThemes'\r\n\r\ninterface INewChatButton {\r\n removeActiveItem: (e: React.MouseEvent<HTMLElement, MouseEvent>) => void\r\n messegerView: 'empty' | 'messages' | 'newChat'\r\n chatButtons: {\r\n label: string\r\n onClick: () => void\r\n type: string\r\n canSee: boolean\r\n disabled?: boolean\r\n }[]\r\n}\r\n\r\nfunction ChatButtons ({ chatButtons, removeActiveItem }: INewChatButton) {\r\n const { theme } = useTheme()\r\n\r\n const getButtonType = (type: string, disabled?: boolean) => {\r\n if (type === 'primary')\r\n return {\r\n background: disabled ? theme?.buttonsDisabled : theme?.buttonPrimary,\r\n color: theme?.buttonPrimaryText,\r\n }\r\n\r\n if (type === 'outlined')\r\n return {\r\n background: 'transparent',\r\n color: theme?.asideFontColor,\r\n border: `${theme?.asideFontColor} 1px solid`,\r\n }\r\n return\r\n }\r\n\r\n return (\r\n <>\r\n {chatButtons.map((button) => {\r\n return (\r\n button.canSee && (\r\n <>\r\n <button\r\n key={`button-${button.label}`}\r\n className={\r\n button.disabled\r\n ? 'messenger__chat-button messenger__chat-button--disabled'\r\n : 'messenger__chat-button'\r\n }\r\n onClick={(event) => {\r\n button.onClick()\r\n removeActiveItem(event)\r\n }}\r\n style={getButtonType(button.type, button.disabled)}\r\n >\r\n {button.label}\r\n </button>\r\n </>\r\n )\r\n )\r\n })}\r\n </>\r\n )\r\n}\r\n\r\nexport default ChatButtons\r\n","import React from 'react'\r\nimport useTheme from '../hooks/useThemes'\r\n\r\nexport default function SearchIcon () {\r\n const { theme } = useTheme()\r\n return (\r\n <svg\r\n width='18'\r\n height='18'\r\n viewBox='0 0 18 18'\r\n fill='none'\r\n xmlns='http://www.w3.org/2000/svg'\r\n >\r\n <path\r\n d='M15.9 17.3L10.3 11.7C9.8 12.1 9.225 12.4167 8.575 12.65C7.925 12.8833 7.23333 13 6.5 13C4.68333 13 3.146 12.371 1.888 11.113C0.629333 9.85433 0 8.31667 0 6.5C0 4.68333 0.629333 3.14567 1.888 1.887C3.146 0.629 4.68333 0 6.5 0C8.31667 0 9.85433 0.629 11.113 1.887C12.371 3.14567 13 4.68333 13 6.5C13 7.23333 12.8833 7.925 12.65 8.575C12.4167 9.225 12.1 9.8 11.7 10.3L17.325 15.925C17.5083 16.1083 17.6 16.3333 17.6 16.6C17.6 16.8667 17.5 17.1 17.3 17.3C17.1167 17.4833 16.8833 17.575 16.6 17.575C16.3167 17.575 16.0833 17.4833 15.9 17.3ZM6.5 11C7.75 11 8.81267 10.5627 9.688 9.688C10.5627 8.81267 11 7.75 11 6.5C11 5.25 10.5627 4.18733 9.688 3.312C8.81267 2.43733 7.75 2 6.5 2C5.25 2 4.18733 2.43733 3.312 3.312C2.43733 4.18733 2 5.25 2 6.5C2 7.75 2.43733 8.81267 3.312 9.688C4.18733 10.5627 5.25 11 6.5 11Z'\r\n fill={theme.asideFontColor}\r\n />\r\n </svg>\r\n )\r\n}\r\n","import SearchIcon from '../../icons/SearchIcon'\r\nimport React, { useState } from 'react'\r\nimport useTheme from '../../hooks/useThemes'\r\nimport { useTranslation } from 'react-i18next'\r\n\r\ninterface IProps {\r\n searchChat: (value: string, key: string) => void\r\n searchKeys: { label: string; value: string }[]\r\n loadingSearch: boolean\r\n}\r\n\r\nfunction SearchInput ({ searchChat, searchKeys, loadingSearch }: IProps) {\r\n const { t } = useTranslation('messengerList')\r\n const [searchKey, setSearchKey] = useState<string>(searchKeys[0].value)\r\n const [searchValue, setSearchValue] = useState<string>('')\r\n const { theme } = useTheme()\r\n\r\n const onSearch = (event: React.ChangeEvent<HTMLInputElement>) => {\r\n setSearchValue(event.target.value)\r\n }\r\n\r\n const handleKeyPress = (event: React.KeyboardEvent<HTMLInputElement>) => {\r\n if (event.key === 'Enter') {\r\n searchChat(searchValue, searchKey)\r\n }\r\n }\r\n\r\n return (\r\n <div className='input-search'>\r\n <select\r\n className='input-search__select'\r\n onChange={(e) => setSearchKey(e.target.value)}\r\n style={{\r\n color: theme.asideFontColor,\r\n border: `${theme.asideFontColor} 1px solid`,\r\n }}\r\n >\r\n {searchKeys.map((item, index) => (\r\n <option\r\n className='input-search__option'\r\n key={index}\r\n value={item.value}\r\n >\r\n {item.label}\r\n </option>\r\n ))}\r\n </select>\r\n\r\n <input\r\n className='input-search__search'\r\n placeholder={t('searchInput.placeholder')}\r\n onChange={onSearch}\r\n onKeyDown={handleKeyPress}\r\n style={{\r\n color: theme.asideFontColor,\r\n border: `${theme.asideFontColor} 1px solid`,\r\n borderLeft: 0,\r\n }}\r\n />\r\n\r\n <button\r\n className='input-search__icon'\r\n onClick={() => searchChat(searchValue, searchKey)}\r\n >\r\n {loadingSearch ? (\r\n <div className='messenger__messages-loading'>\r\n <div className='messenger__messages-loading--loader' />\r\n </div>\r\n ) : (\r\n <SearchIcon />\r\n )}\r\n </button>\r\n </div>\r\n )\r\n}\r\n\r\nexport default SearchInput\r\n","import React from 'react'\r\nimport useTheme from '../hooks/useThemes'\r\n\r\nexport default function EmptyIcon () {\r\n const { theme } = useTheme()\r\n return (\r\n <svg\r\n width='26'\r\n height='32'\r\n viewBox='0 0 26 32'\r\n fill='none'\r\n xmlns='http://www.w3.org/2000/svg'\r\n >\r\n <path\r\n d='M24.4286 0H1.57143C0.939288 0 0.428574 0.510714 0.428574 1.14286V30.8571C0.428574 31.4893 0.939288 32 1.57143 32H24.4286C25.0607 32 25.5714 31.4893 25.5714 30.8571V1.14286C25.5714 0.510714 25.0607 0 24.4286 0ZM23 29.4286H3V22.25H6.49643C6.91072 23.4214 7.63929 24.475 8.60715 25.275C9.83929 26.2929 11.4 26.8571 13 26.8571C14.6 26.8571 16.1607 26.2964 17.3929 25.275C18.3607 24.475 19.0893 23.4214 19.5036 22.25H23V29.4286ZM23 20H17.7L17.5143 20.8821C17.0857 23.0179 15.1857 24.5714 13 24.5714C10.8143 24.5714 8.91429 23.0179 8.48215 20.8821L8.29643 20H3V2.57143H23V20Z'\r\n fill={theme.emptyMessagesFontColor}\r\n />\r\n </svg>\r\n )\r\n}\r\n","import React, { ReactNode, CSSProperties } from 'react'\r\n\r\ninterface IInfiniteScroll {\r\n loading: boolean\r\n more: boolean\r\n fetch: () => void\r\n children: ReactNode\r\n loadingCover: React.ReactElement\r\n root: Element | null\r\n reverse?: boolean\r\n rootMargin?: number\r\n}\r\n\r\nconst intersectDivStyle: CSSProperties = {\r\n width: 25,\r\n height: 25,\r\n visibility: 'hidden',\r\n}\r\n\r\nfunction InfiniteScroll ({\r\n loading,\r\n loadingCover,\r\n more,\r\n fetch,\r\n children,\r\n root,\r\n reverse = false,\r\n rootMargin = 400,\r\n}: IInfiniteScroll) {\r\n const [infiniteElement, setInfiniteElement] =\r\n React.useState<HTMLDivElement | null>(null)\r\n\r\n React.useEffect(() => {\r\n if (!root) return\r\n const currentElement = infiniteElement\r\n const observer = new IntersectionObserver(\r\n (entries) => {\r\n const first = entries[0]\r\n if (first.isIntersecting === true) fetch()\r\n },\r\n {\r\n root,\r\n rootMargin: rootMargin.toString() + 'px',\r\n threshold: 0.5,\r\n }\r\n )\r\n\r\n if (currentElement) {\r\n observer.observe(currentElement)\r\n }\r\n\r\n return () => {\r\n if (currentElement) observer.unobserve(currentElement)\r\n }\r\n }, [infiniteElement])\r\n\r\n if (reverse) {\r\n return (\r\n <>\r\n {more && !loading && (\r\n <div ref={setInfiniteElement} style={intersectDivStyle}></div>\r\n )}\r\n {loading && loadingCover}\r\n {children}\r\n </>\r\n )\r\n }\r\n\r\n return (\r\n <>\r\n {children}\r\n {loading && loadingCover}\r\n {more && !loading && (\r\n <div ref={setInfiniteElement} style={intersectDivStyle}></div>\r\n )}\r\n </>\r\n )\r\n}\r\n\r\nexport default InfiniteScroll\r\n","import React, { Fragment } from 'react'\r\nimport { IList } from 'types'\r\nimport ChatTabs from '../components/ChatTabs/ChatTabs'\r\nimport ChatButtons from '../components/ChatButton/ChatButton'\r\nimport SearchInput from '../components/SearchInput/SearchInput'\r\nimport MessengerListItem, { activeItem } from './MessengerListItem'\r\nimport useTheme from '../hooks/useThemes'\r\nimport EmptyIcon from '../icons/EmptyIcon'\r\nimport InfiniteScroll from '../components/InfiniteScroll/InfiniteScroll'\r\nimport { useTranslation } from 'react-i18next'\r\n\r\ninterface IMessengerList {\r\n affix?: React.ReactElement\r\n loading: boolean\r\n conversations: IList[]\r\n currentId?: string\r\n failed?: boolean\r\n showBadge: boolean\r\n tab?: 'list' | 'messages'\r\n className?: string\r\n onClick: (item: IList) => void\r\n searchChat: (search: string, key: string) => void\r\n searchKeys: { label: string; value: string }[]\r\n messegerView: 'empty' | 'messages' | 'newChat'\r\n helpDesk: boolean\r\n handleChangeTickets: (tab: string) => void\r\n loadingSearch: boolean\r\n chatListTabs: { value: string; label: string }[]\r\n chatButtons: {\r\n label: string\r\n onClick: () => void\r\n type: string\r\n canSee: boolean\r\n disabled?: boolean\r\n }[]\r\n canSeeDetailsChat: boolean\r\n hasNext: boolean\r\n onIntersect: () => void\r\n sliceCount: number\r\n currentViewerId: string\r\n}\r\n\r\nconst ListLoading = () => {\r\n const { theme } = useTheme()\r\n return (\r\n <Fragment>\r\n {new Array(5).fill('').map((_, idx) => (\r\n <button\r\n key={`asideSkeleton${idx}`}\r\n style={{\r\n background: theme.listItemHover,\r\n borderBottom: idx < 4 ? `1px solid ${theme.borderColor}` : '0',\r\n }}\r\n className='messenger__aside-skeleton'\r\n />\r\n ))}\r\n </Fragment>\r\n )\r\n}\r\n\r\nfunction MessengerList ({\r\n affix,\r\n conversations,\r\n tab,\r\n className = '',\r\n loading,\r\n failed,\r\n showBadge,\r\n currentId,\r\n onClick,\r\n searchChat,\r\n searchKeys,\r\n messegerView,\r\n helpDesk,\r\n handleChangeTickets,\r\n chatListTabs,\r\n chatButtons,\r\n loadingSearch,\r\n canSeeDetailsChat,\r\n hasNext,\r\n onIntersect,\r\n sliceCount,\r\n currentViewerId,\r\n}: IMessengerList) {\r\n const { t } = useTranslation('messengerList')\r\n const { theme } = useTheme()\r\n\r\n return (\r\n <aside\r\n className={`messenger__aside ${className} ${tab === 'messages' ? 'messenger__mobile-hide' : ''}`}\r\n style={{\r\n border: `1px solid ${theme.borderColor}`,\r\n borderRadius: '20px 0 0 20px',\r\n background: theme.asideBg,\r\n }}\r\n >\r\n <div className='messenger__buttons-container'>\r\n <ChatButtons\r\n chatButtons={chatButtons}\r\n messegerView={messegerView}\r\n removeActiveItem={(e: React.MouseEvent<HTMLElement, MouseEvent>) => {\r\n activeItem(\r\n e,\r\n 'messenger__aside-list-item',\r\n 'messenger__aside-list-item--active'\r\n )\r\n }}\r\n />\r\n\r\n {helpDesk && (\r\n <SearchInput\r\n searchKeys={searchKeys}\r\n searchChat={searchChat}\r\n loadingSearch={loadingSearch}\r\n />\r\n )}\r\n </div>\r\n\r\n {affix && (\r\n <div className='messenger__aside-header'>\r\n {React.cloneElement(affix)}\r\n </div>\r\n )}\r\n\r\n <ChatTabs\r\n chatListTabs={chatListTabs}\r\n handleChangeTickets={handleChangeTickets}\r\n />\r\n\r\n <div className='messenger__aside-list'>\r\n <InfiniteScroll\r\n root={document.querySelector('.messenger__aside-list')}\r\n loading={loading}\r\n loadingCover={<ListLoading />}\r\n more={hasNext}\r\n fetch={onIntersect}\r\n >\r\n {Array.isArray(conversations) &&\r\n conversations.length > 0 &&\r\n conversations.slice(0, sliceCount).map((item) => {\r\n return (\r\n <div\r\n key={item?._id}\r\n className={`messenger__aside-item-container ${showBadge ? 'messenger__active-badge' : ''}`}\r\n >\r\n <MessengerListItem\r\n canSeeDetailsChat={canSeeDetailsChat}\r\n currentId={currentId}\r\n item={item}\r\n onClick={onClick}\r\n currentViewerId={currentViewerId}\r\n />\r\n </div>\r\n )\r\n })}\r\n </InfiniteScroll>\r\n\r\n {failed ||\r\n (conversations?.length === 0 && !loading && (\r\n <div className='messenger__aside-empty'>\r\n <EmptyIcon />\r\n <p>{t('noChatFound')}</p>\r\n </div>\r\n ))}\r\n </div>\r\n </aside>\r\n )\r\n}\r\n\r\nexport default MessengerList\r\n","/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n","import * as React from 'react'\r\nimport { SVGProps } from 'react'\r\nconst FileDoc = (props: SVGProps<SVGSVGElement>) => (\r\n <svg\r\n xmlns='http://www.w3.org/2000/svg'\r\n xmlnsXlink='http://www.w3.org/1999/xlink'\r\n id='Layer_1'\r\n width={800}\r\n height={800}\r\n data-name='Layer 1'\r\n viewBox='0 0 32 32'\r\n {...props}\r\n >\r\n <defs>\r\n <linearGradient\r\n id='doc-gradient'\r\n x1={6.65}\r\n x2={27.27}\r\n y1={6.65}\r\n y2={27.27}\r\n gradientUnits='userSpaceOnUse'\r\n >\r\n <stop offset={0} stopColor='#00a6fb' />\r\n <stop offset={1} stopColor='#0094ce' />\r\n </linearGradient>\r\n <linearGradient\r\n xlinkHref='#doc-gradient'\r\n id='doc-gradient-2'\r\n x1={6}\r\n x2={12}\r\n y1={5}\r\n y2={5}\r\n />\r\n <style>{'.cls-3{fill:#f8edeb}'}</style>\r\n </defs>\r\n <path\r\n d='M23.5 2h-12a.47.47 0 0 0-.35.15l-5 5A.47.47 0 0 0 6 7.5v20A2.5 2.5 0 0 0 8.5 30h15a2.5 2.5 0 0 0 2.5-2.5v-23A2.5 2.5 0 0 0 23.5 2Z'\r\n style={{\r\n fill: '#00a6fb',\r\n }}\r\n />\r\n <path\r\n d='M11.69 2a.47.47 0 0 0-.54.11l-5 5a.47.47 0 0 0-.15.58.5.5 0 0 0 .5.31h3A2.5 2.5 0 0 0 12 5.5v-3a.5.5 0 0 0-.31-.5Z'\r\n style={{\r\n fill: '#0094ce',\r\n }}\r\n />\r\n <path\r\n d='M16 21a2 2 0 0 1-2-2v-6a2 2 0 0 1 4 0v6a2 2 0 0 1-2 2Zm0-9a1 1 0 0 0-1 1v6a1 1 0 0 0 2 0v-6a1 1 0 0 0-1-1ZM9.5 21a.5.5 0 0 1-.5-.5v-9a.5.5 0 0 1 .5-.5 3.5 3.5 0 0 1 3.5 3.5v3A3.5 3.5 0 0 1 9.5 21Zm.5-8.95V20a2.5 2.5 0 0 0 2-2.45v-3a2.5 2.5 0 0 0-2-2.5ZM21 21a2 2 0 0 1-2-2v-6a2 2 0 0 1 4 0 .5.5 0 0 1-1 0 1 1 0 0 0-2 0v6a1 1 0 0 0 2 0 .5.5 0 0 1 1 0 2 2 0 0 1-2 2Z'\r\n className='cls-3'\r\n />\r\n </svg>\r\n)\r\nexport default FileDoc\r\n","import * as React from 'react'\r\nimport { SVGProps } from 'react'\r\nconst SvgComponent = (props: SVGProps<SVGSVGElement>) => (\r\n <svg\r\n xmlns='http://www.w3.org/2000/svg'\r\n xmlnsXlink='http://www.w3.org/1999/xlink'\r\n id='Layer_1'\r\n width={800}\r\n height={800}\r\n data-name='Layer 1'\r\n viewBox='0 0 32 32'\r\n {...props}\r\n >\r\n <defs>\r\n <linearGradient\r\n id='pdf-gradient'\r\n x1={6.65}\r\n x2={27.27}\r\n y1={6.65}\r\n y2={27.27}\r\n gradientUnits='userSpaceOnUse'\r\n >\r\n <stop offset={0} stopColor='#ef6461' />\r\n <stop offset={1} stopColor='#e83d3d' />\r\n </linearGradient>\r\n <linearGradient\r\n xlinkHref='#pdf-gradient'\r\n id='pdf-gradient-2'\r\n x1={6}\r\n x2={12}\r\n y1={5}\r\n y2={5}\r\n />\r\n <style>{'.cls-3{fill:#f8edeb}'}</style>\r\n </defs>\r\n <path\r\n d='M23.5 2h-12a.47.47 0 0 0-.35.15l-5 5A.47.47 0 0 0 6 7.5v20A2.5 2.5 0 0 0 8.5 30h15a2.5 2.5 0 0 0 2.5-2.5v-23A2.5 2.5 0 0 0 23.5 2Z'\r\n style={{\r\n fill: 'url(#pdf-gradient)',\r\n }}\r\n />\r\n <path\r\n d='M11.69 2a.47.47 0 0 0-.54.11l-5 5a.47.47 0 0 0-.15.58.5.5 0 0 0 .5.31h3A2.5 2.5 0 0 0 12 5.5v-3a.5.5 0 0 0-.31-.5Z'\r\n style={{\r\n fill: 'url(#pdf-gradient-2)',\r\n }}\r\n />\r\n <path\r\n d='M15.5 11h-1a.5.5 0 0 0-.5.5v9a.5.5 0 0 0 .5.5h1a2.5 2.5 0 0 0 2.5-2.5v-5a2.5 2.5 0 0 0-2.5-2.5Zm1.5 7.5a1.5 1.5 0 0 1-1.5 1.5H15v-8h.5a1.5 1.5 0 0 1 1.5 1.5ZM11.5 11h-2a.5.5 0 0 0-.5.5v9a.5.5 0 0 0 1 0V17h1.5a1.5 1.5 0 0 0 1.5-1.5v-3a1.5 1.5 0 0 0-1.5-1.5Zm.5 4.5a.5.5 0 0 1-.5.5H10v-4h1.5a.5.5 0 0 1 .5.5ZM22.5 15H20v-3h2.5a.5.5 0 0 0 0-1h-3a.5.5 0 0 0-.5.5v9a.5.5 0 0 0 1 0V16h2.5a.5.5 0 0 0 0-1Z'\r\n className='cls-3'\r\n />\r\n </svg>\r\n)\r\nexport default SvgComponent\r\n","import React from 'react'\r\nimport FileDoc from '../../icons/DOCFileIcon'\r\nimport FilePdf from '../../icons/PDFFileIcon'\r\nimport { useTranslation } from 'react-i18next'\r\n\r\nconst RenderFileIcon = ({\r\n fileType,\r\n b64,\r\n}: {\r\n fileType?: string\r\n b64?: string\r\n}) => {\r\n const { t } = useTranslation('messengerMessages')\r\n\r\n if (fileType === 'application/pdf') {\r\n return <FilePdf width='40' height='40' />\r\n } else if (\r\n fileType === 'application/msword' ||\r\n fileType ===\r\n 'application/vnd.openxmlformats-officedocument.wordprocessingml.document'\r\n ) {\r\n return <FileDoc width='40' height='40' />\r\n } else {\r\n return (\r\n <img\r\n alt={t('renderFileIcon.altImage')}\r\n src={b64}\r\n className='images-container__image'\r\n />\r\n )\r\n }\r\n}\r\n\r\nexport default RenderFileIcon\r\n","import React, { useEffect, useState } from 'react'\r\nimport { IImagesContainer } from 'types'\r\nimport RenderFileIcon from '../RenderFileIcon/RenderFileIcon'\r\n\r\nfunction ImagesContainer ({ file, onClose }: IImagesContainer) {\r\n const [fileInfo, setFileInfo] = useState<{ name: string; type: string }>({\r\n name: '',\r\n type: '',\r\n })\r\n\r\n const [b64, setB64] = useState<string>('')\r\n\r\n useEffect(() => {\r\n function getBase64 (file: File) {\r\n return new Promise((resolve, reject) => {\r\n const reader = new FileReader()\r\n reader.readAsDataURL(file)\r\n reader.onload = () => resolve(reader.result)\r\n reader.onerror = (error) => reject(error)\r\n })\r\n }\r\n\r\n if (file) getBase64(file).then((base64) => setB64(base64 as string))\r\n }, [file])\r\n\r\n useEffect(() => {\r\n if (file) {\r\n setFileInfo({\r\n name: file.name,\r\n type: file.type,\r\n })\r\n }\r\n }, [file])\r\n\r\n return (\r\n <div className='images-container'>\r\n <div className='images-container__close'>\r\n <button className='images-container__close--icon' onClick={onClose} />\r\n </div>\r\n\r\n <div className='images-container__container'>\r\n <div className='images-container__image'>\r\n <RenderFileIcon fileType={fileInfo.type} b64={b64} />\r\n <span className='images-container__title-img'>{fileInfo.name}</span>\r\n </div>\r\n </div>\r\n </div>\r\n )\r\n}\r\n\r\nexport default ImagesContainer\r\n","import React, { useState, useCallback, useEffect } from 'react';\n\nfunction styleInject(css, ref) {\n if ( ref === void 0 ) ref = {};\n var insertAt = ref.insertAt;\n\n if (!css || typeof document === 'undefined') { return; }\n\n var head = document.head || document.getElementsByTagName('head')[0];\n var style = document.createElement('style');\n style.type = 'text/css';\n\n if (insertAt === 'top') {\n if (head.firstChild) {\n head.insertBefore(style, head.firstChild);\n } else {\n head.appendChild(style);\n }\n } else {\n head.appendChild(style);\n }\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(document.createTextNode(css));\n }\n}\n\nvar css_248z = \".styles-module_wrapper__1I_qj {\\n z-index: 1;\\n display: flex;\\n align-items: center;\\n position: fixed;\\n padding: 0px 60px 0px 60px;\\n left: 0;\\n top: 0;\\n width: 100%;\\n height: 100%;\\n background-color: black;\\n box-sizing: border-box;\\n}\\n\\n.styles-module_content__2jwZj {\\n margin: auto;\\n padding: 0;\\n width: 90%;\\n height: 100%;\\n max-height: 100%;\\n text-align: center;\\n}\\n\\n.styles-module_slide__1zrfk {\\n height: 100%;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n}\\n\\n.styles-module_image__2hdkJ {\\n max-height: 100%;\\n max-width: 100%;\\n user-select: none;\\n -moz-user-select: none;\\n -webkit-user-select: none;\\n}\\n\\n.styles-module_close__2I1sI {\\n color: white;\\n position: absolute;\\n top: 15px;\\n right: 15px;\\n font-size: 40px;\\n font-weight: bold;\\n opacity: 0.2;\\n cursor: pointer;\\n}\\n\\n.styles-module_close__2I1sI:hover {\\n opacity: 1;\\n}\\n\\n.styles-module_navigation__1pqAE {\\n height: 80%;\\n color: white;\\n cursor: pointer;\\n position: absolute;\\n font-size: 60px;\\n line-height: 60px;\\n font-weight: bold;\\n display: flex;\\n align-items: center;\\n opacity: 0.2;\\n padding: 0 15px;\\n user-select: none;\\n -moz-user-select: none;\\n -webkit-user-select: none;\\n}\\n\\n.styles-module_navigation__1pqAE:hover {\\n opacity: 1;\\n}\\n\\n@media (hover: none) {\\n .styles-module_navigation__1pqAE:hover {\\n opacity: 0.2;\\n }\\n}\\n\\n.styles-module_prev__KqFRp {\\n left: 0;\\n}\\n\\n.styles-module_next__1uQwZ {\\n right: 0;\\n}\\n\\n@media (max-width: 900px) {\\n .styles-module_wrapper__1I_qj {\\n padding: 0;\\n }\\n}\\n\";\nvar styles = {\"wrapper\":\"styles-module_wrapper__1I_qj\",\"content\":\"styles-module_content__2jwZj\",\"slide\":\"styles-module_slide__1zrfk\",\"image\":\"styles-module_image__2hdkJ\",\"close\":\"styles-module_close__2I1sI\",\"navigation\":\"styles-module_navigation__1pqAE\",\"prev\":\"styles-module_prev__KqFRp\",\"next\":\"styles-module_next__1uQwZ\"};\nstyleInject(css_248z);\n\nconst ReactSimpleImageViewer = (props) => {\n var _a;\n const [currentIndex, setCurrentIndex] = useState((_a = props.currentIndex) !== null && _a !== void 0 ? _a : 0);\n const changeImage = useCallback((delta) => {\n let nextIndex = (currentIndex + delta) % props.src.length;\n if (nextIndex < 0)\n nextIndex = props.src.length - 1;\n setCurrentIndex(nextIndex);\n }, [currentIndex]);\n const handleClick = useCallback((event) => {\n var _a;\n if (!event.target || !props.closeOnClickOutside) {\n return;\n }\n const checkId = event.target.id === 'ReactSimpleImageViewer';\n const checkClass = event.target.classList.contains('react-simple-image-viewer__slide');\n if (checkId || checkClass) {\n event.stopPropagation();\n (_a = props.onClose) === null || _a === void 0 ? void 0 : _a.call(props);\n }\n }, [props.onClose]);\n const handleKeyDown = useCallback((event) => {\n var _a;\n if (event.key === \"Escape\") {\n (_a = props.onClose) === null || _a === void 0 ? void 0 : _a.call(props);\n }\n if ([\"ArrowLeft\", \"h\"].includes(event.key)) {\n changeImage(-1);\n }\n if ([\"ArrowRight\", \"l\"].includes(event.key)) {\n changeImage(1);\n }\n }, [props.onClose, changeImage]);\n const handleWheel = useCallback((event) => {\n if (event.wheelDeltaY > 0) {\n changeImage(-1);\n }\n else {\n changeImage(1);\n }\n }, [changeImage]);\n useEffect(() => {\n document.addEventListener(\"keydown\", handleKeyDown);\n if (!props.disableScroll) {\n document.addEventListener(\"wheel\", handleWheel);\n }\n return () => {\n document.removeEventListener(\"keydown\", handleKeyDown);\n if (!props.disableScroll) {\n document.removeEventListener(\"wheel\", handleWheel);\n }\n };\n }, [handleKeyDown, handleWheel]);\n return (React.createElement(\"div\", { id: \"ReactSimpleImageViewer\", className: `${styles.wrapper} react-simple-image-viewer__modal`, onKeyDown: handleKeyDown, onClick: handleClick, style: props.backgroundStyle },\n React.createElement(\"span\", { className: `${styles.close} react-simple-image-viewer__close`, onClick: () => { var _a; return (_a = props.onClose) === null || _a === void 0 ? void 0 : _a.call(props); } }, props.closeComponent || \"×\"),\n props.src.length > 1 && (React.createElement(\"span\", { className: `${styles.navigation} ${styles.prev} react-simple-image-viewer__previous`, onClick: () => changeImage(-1) }, props.leftArrowComponent || \"❮\")),\n props.src.length > 1 && (React.createElement(\"span\", { className: `${styles.navigation} ${styles.next} react-simple-image-viewer__next`, onClick: () => changeImage(1) }, props.rightArrowComponent || \"❯\")),\n React.createElement(\"div\", { className: `${styles.content} react-simple-image-viewer__modal-content`, onClick: handleClick },\n React.createElement(\"div\", { className: `${styles.slide} react-simple-image-viewer__slide` },\n React.createElement(\"img\", { className: styles.image, src: props.src[currentIndex], alt: \"\" })))));\n};\n\nexport { ReactSimpleImageViewer as default };\n//# sourceMappingURL=index.esm.js.map\n","import React from 'react'\r\n\r\nfunction DownloadMinimalistIcon ({\r\n width,\r\n height,\r\n color,\r\n}: {\r\n width: string\r\n height: string\r\n color: string\r\n}) {\r\n return (\r\n <svg\r\n xmlns='http://www.w3.org/2000/svg'\r\n width={width}\r\n height={height}\r\n viewBox='0 0 24 24'\r\n fill='none'\r\n >\r\n <path\r\n d='M12.5535 16.5061C12.4114 16.6615 12.2106 16.75 12 16.75C11.7894 16.75 11.5886 16.6615 11.4465 16.5061L7.44648 12.1311C7.16698 11.8254 7.18822 11.351 7.49392 11.0715C7.79963 10.792 8.27402 10.8132 8.55352 11.1189L11.25 14.0682V3C11.25 2.58579 11.5858 2.25 12 2.25C12.4142 2.25 12.75 2.58579 12.75 3V14.0682L15.4465 11.1189C15.726 10.8132 16.2004 10.792 16.5061 11.0715C16.8118 11.351 16.833 11.8254 16.5535 12.1311L12.5535 16.5061Z'\r\n fill={color}\r\n />\r\n <path\r\n d='M3.75 15C3.75 14.5858 3.41422 14.25 3 14.25C2.58579 14.25 2.25 14.5858 2.25 15V15.0549C2.24998 16.4225 2.24996 17.5248 2.36652 18.3918C2.48754 19.2919 2.74643 20.0497 3.34835 20.6516C3.95027 21.2536 4.70814 21.5125 5.60825 21.6335C6.47522 21.75 7.57754 21.75 8.94513 21.75H15.0549C16.4225 21.75 17.5248 21.75 18.3918 21.6335C19.2919 21.5125 20.0497 21.2536 20.6517 20.6516C21.2536 20.0497 21.5125 19.2919 21.6335 18.3918C21.75 17.5248 21.75 16.4225 21.75 15.0549V15C21.75 14.5858 21.4142 14.25 21 14.25C20.5858 14.25 20.25 14.5858 20.25 15C20.25 16.4354 20.2484 17.4365 20.1469 18.1919C20.0482 18.9257 19.8678 19.3142 19.591 19.591C19.3142 19.8678 18.9257 20.0482 18.1919 20.1469C17.4365 20.2484 16.4354 20.25 15 20.25H9C7.56459 20.25 6.56347 20.2484 5.80812 20.1469C5.07435 20.0482 4.68577 19.8678 4.40901 19.591C4.13225 19.3142 3.9518 18.9257 3.85315 18.1919C3.75159 17.4365 3.75 16.4354 3.75 15Z'\r\n fill={color}\r\n />\r\n <defs>\r\n <clipPath id='clip0_23_2'>\r\n <rect width='32' height='32' fill='@text-color' />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n )\r\n}\r\n\r\nexport default DownloadMinimalistIcon\r\n","import React from 'react'\r\nimport DownloadMinimalistIcon from '../../icons/DownloadMinimalistIcon'\r\nimport { IMessagesBalloon } from 'types'\r\nimport RenderFileIcon from '../RenderFileIcon/RenderFileIcon'\r\n\r\nexport function formatFileSize (size = 0) {\r\n if (size % 1 === 0) {\r\n return `${size.toFixed(0)} MB`\r\n }\r\n return `${size.toFixed(2)} MB`\r\n}\r\n\r\nfunction DocMessage ({ file }: IMessagesBalloon) {\r\n const fileType = file?.location?.split('.').pop()?.toUpperCase()\r\n const fileName = file && file.originalname\r\n const filePages = file && file.pages\r\n const fileSize = file && formatFileSize(file?.size)\r\n\r\n return (\r\n <div className='messenger__messages-row--sender'>\r\n <span>\r\n {\r\n <div className='messenger__file-card'>\r\n <div className='messenger__file-icon'>\r\n <RenderFileIcon fileType={file?.mimetype} />\r\n </div>\r\n <div className='messenger__file-details'>\r\n <p className='messenger__file-name'>{fileName}</p>\r\n <p className='messenger__file-info'>\r\n {filePages && filePages + ' página(s) •'} {fileSize} •{' '}\r\n {fileType}\r\n </p>\r\n </div>\r\n <a\r\n href={file?.location}\r\n target='_blank'\r\n rel='noopener noreferrer'\r\n className='messenger__file-download'\r\n style={{ color: 'blue' }}\r\n >\r\n <DownloadMinimalistIcon width='24' height='24' color='white' />\r\n </a>\r\n </div>\r\n }\r\n </span>\r\n </div>\r\n )\r\n}\r\n\r\nexport default DocMessage\r\n","import useTheme from '../../hooks/useThemes'\r\nimport React, { useCallback, useState } from 'react'\r\nimport { Iimages, IInconmingMessage } from 'types'\r\nimport MessengerAvatar from '../MessengerAvatar/MessengerAvatar'\r\nimport ReactSimpleImageViewer from '../../../../../node_modules/react-simple-image-viewer'\r\nimport DocMessage from '../DocMessage/DocMessage'\r\nimport { useTranslation } from 'react-i18next'\r\n\r\ninterface IMessagesWithFile {\r\n file:\r\n | Iimages\r\n | {\r\n contentType: string\r\n location: string\r\n mimetype: string\r\n originalname: string\r\n size?: number\r\n pages?: number\r\n key?: string\r\n }\r\n | undefined\r\n message: string\r\n date: string\r\n openImageViewer: (index: number) => void\r\n id: string\r\n formatDate: (date: string | Date) => string | undefined\r\n currentImage: number\r\n}\r\n\r\nexport const MessageImage = ({ ...rest }) => {\r\n const { t } = useTranslation('messengerMessages')\r\n return (\r\n <div className='messenger__message--file'>\r\n <img {...rest} width={200} height={200} alt={t('incommingMessage.messageImage')} />\r\n </div>\r\n )\r\n}\r\n\r\nconst MessageWithFile = ({\r\n file,\r\n message,\r\n date,\r\n openImageViewer,\r\n id,\r\n formatDate,\r\n currentImage,\r\n}: IMessagesWithFile) => {\r\n const isImage = (\r\n file:\r\n | {\r\n contentType: string\r\n location: string\r\n mimetype: string\r\n originalname: string\r\n size?: number\r\n pages?: number\r\n key?: string\r\n }\r\n | Iimages\r\n | undefined\r\n ): file is Iimages =>\r\n !!file?.mimetype?.includes('image/png') ||\r\n !!file?.mimetype?.includes('image/jpeg')\r\n\r\n return (\r\n <>\r\n {isImage(file) ? (\r\n <MessageImage\r\n src={file?.location}\r\n onClick={() => openImageViewer(currentImage)}\r\n />\r\n ) : (\r\n file && (\r\n <DocMessage\r\n file={file}\r\n message={message}\r\n date={date}\r\n read={false}\r\n id={id}\r\n formatDate={formatDate}\r\n />\r\n )\r\n )}\r\n </>\r\n )\r\n}\r\n\r\nfunction IncomingMessage ({\r\n date,\r\n message,\r\n user,\r\n hasFile,\r\n file,\r\n isSystemMessage,\r\n formatDate,\r\n id,\r\n}: IInconmingMessage) {\r\n const { theme } = useTheme()\r\n const [currentImage, setCurrentImage] = useState(0)\r\n const [isViewerOpen, setIsViewerOpen] = useState(false)\r\n\r\n const openImageViewer = useCallback((index: number) => {\r\n setCurrentImage(index)\r\n setIsViewerOpen(true)\r\n }, [])\r\n\r\n const closeImageViewer = () => {\r\n setCurrentImage(0)\r\n setIsViewerOpen(false)\r\n }\r\n\r\n return (\r\n <div className='messenger__messages-row--received' id={id}>\r\n {(user.avatar || user.name) && !isSystemMessage && (\r\n <div className='messenger__message-avatar mr-2'>\r\n <MessengerAvatar image={user.avatar}>\r\n {user.name.slice(0, 1)}\r\n </MessengerAvatar>\r\n </div>\r\n )}\r\n\r\n <div\r\n className='messenger__messages-received'\r\n style={{ background: theme?.messengerIncomerColor }}\r\n >\r\n {!isSystemMessage && (\r\n <p className='messenger__message-title'>{user.name}</p>\r\n )}\r\n\r\n <span>\r\n {hasFile && (\r\n <MessageWithFile\r\n file={file}\r\n message={message}\r\n date={date}\r\n openImageViewer={openImageViewer}\r\n id={id}\r\n formatDate={formatDate}\r\n currentImage={currentImage}\r\n />\r\n )}\r\n {message && <p className='messenger__message'>{message}</p>}\r\n <p className='messenger__message--date'>\r\n {formatDate(date) ?? new Date(date).toLocaleString()}\r\n </p>\r\n </span>\r\n </div>\r\n {file && isViewerOpen && (\r\n <ReactSimpleImageViewer\r\n src={[file.location]}\r\n currentIndex={0}\r\n disableScroll={false}\r\n closeOnClickOutside={true}\r\n onClose={closeImageViewer}\r\n />\r\n )}\r\n </div>\r\n )\r\n}\r\n\r\nexport default IncomingMessage\r\n","import React from 'react'\r\n\r\nexport default function ReadIcon ({ fill }: { fill: string }) {\r\n return (\r\n <svg\r\n width='15'\r\n height='15'\r\n viewBox='0 0 30 24'\r\n fill='none'\r\n xmlns='http://www.w3.org/2000/svg'\r\n >\r\n <path\r\n d='M29.2857 0.5H26.7893C26.4393 0.5 26.1071 0.660714 25.8929 0.935714L11.1679 19.5893L4.10714 10.6429C4.00033 10.5072 3.86419 10.3976 3.70893 10.3221C3.55367 10.2467 3.38334 10.2074 3.21071 10.2071H0.714286C0.475 10.2071 0.342857 10.4821 0.489286 10.6679L10.2714 23.0607C10.7286 23.6393 11.6071 23.6393 12.0679 23.0607L29.5107 0.957143C29.6571 0.775 29.525 0.5 29.2857 0.5V0.5Z'\r\n fill={fill}\r\n />\r\n </svg>\r\n )\r\n}\r\n","import useTheme from '../../hooks/useThemes'\r\nimport React, { useCallback, useState } from 'react'\r\nimport { IMessagesBalloon } from 'types'\r\nimport ReadIcon from '../../icons/ReadIcon'\r\nimport ReactSimpleImageViewer from 'react-simple-image-viewer'\r\nimport { MessageImage } from '../IncomingMessage/IncomingMessage'\r\nimport DocMessage from '../DocMessage/DocMessage'\r\n\r\nfunction SenderMessages ({\r\n date,\r\n message,\r\n read,\r\n hasFile,\r\n file,\r\n formatDate,\r\n id,\r\n}: IMessagesBalloon) {\r\n const [currentImage, setCurrentImage] = useState(0)\r\n const [isViewerOpen, setIsViewerOpen] = useState(false)\r\n const { theme } = useTheme()\r\n\r\n const openImageViewer = useCallback((index: number) => {\r\n setCurrentImage(index)\r\n setIsViewerOpen(true)\r\n }, [])\r\n\r\n const closeImageViewer = () => {\r\n setCurrentImage(0)\r\n setIsViewerOpen(false)\r\n }\r\n\r\n const isDoc =\r\n file?.mimetype === 'application/msword' ||\r\n file?.mimetype ===\r\n 'application/vnd.openxmlformats-officedocument.wordprocessingml.document' ||\r\n file?.mimetype === 'application/pdf'\r\n\r\n return (\r\n <div className='messenger__messages-row--sender'>\r\n <div\r\n className='messenger__messages-sender'\r\n id={id}\r\n style={{\r\n background: theme?.messengerSenderColor,\r\n color: theme?.documentMessagesTextColor,\r\n }}\r\n >\r\n <span>\r\n {hasFile &&\r\n (isDoc ? (\r\n <DocMessage\r\n date={date}\r\n message={message}\r\n read={read}\r\n file={file}\r\n formatDate={formatDate}\r\n id={id}\r\n />\r\n ) : (\r\n <MessageImage\r\n src={file?.location}\r\n onClick={() => openImageViewer(currentImage)}\r\n />\r\n ))}\r\n\r\n <p className='messenger__message'>{message}</p>\r\n <div className='messenger__message--bottom'>\r\n <p className='messenger__message--date'>\r\n {formatDate(date) ?? new Date(date).toString()}\r\n </p>\r\n <ReadIcon fill={read ? '#00efff' : 'white'} />\r\n </div>\r\n </span>\r\n </div>\r\n\r\n {file && !isDoc && isViewerOpen && (\r\n <ReactSimpleImageViewer\r\n src={[file.location]}\r\n currentIndex={0}\r\n disableScroll={false}\r\n closeOnClickOutside={true}\r\n onClose={closeImageViewer}\r\n />\r\n )}\r\n </div>\r\n )\r\n}\r\n\r\nexport default SenderMessages\r\n","import React from 'react'\r\nimport useTheme from '../../hooks/useThemes'\r\nimport { IInconmingMessage } from 'types'\r\n\r\nfunction SystemMessage ({ date, message, formatDate, id }: IInconmingMessage) {\r\n const { theme } = useTheme()\r\n\r\n return (\r\n <div className='messenger__messages-row--system' id={id}>\r\n <div\r\n className='messenger__messages-received messenger__messages-received--system'\r\n style={{ background: theme?.messengerSystemColor }}\r\n >\r\n <span>\r\n <p className='messenger__message'>{message}</p>\r\n <p className='messenger__message--date'>\r\n {formatDate(date) ?? new Date(date).toString()}\r\n </p>\r\n </span>\r\n </div>\r\n </div>\r\n )\r\n}\r\n\r\nexport default SystemMessage\r\n","import React from 'react'\r\nimport { Iimages, IMessages } from 'types'\r\nimport IncomingMessage from '../IncomingMessage/IncomingMessage'\r\nimport SenderMessages from '../SenderMessages/SenderMessages'\r\nimport SystemMessage from '../SystemMessage/SystemMessage'\r\n\r\nfunction MessageBalloon ({\r\n item,\r\n creatorId,\r\n formatDate,\r\n id,\r\n}: {\r\n item: IMessages\r\n creatorId?: string\r\n formatDate: (date: string | Date) => string | undefined\r\n id: string\r\n}) {\r\n if (item.isSystemMessage) {\r\n return (\r\n <SystemMessage\r\n formatDate={formatDate}\r\n date={item.createdAt}\r\n message={item.content}\r\n id={item.senderId}\r\n user={{ name: 'System' }}\r\n />\r\n )\r\n }\r\n\r\n if (\r\n item.sender.uniqueCode &&\r\n !item.isSystemMessage &&\r\n item.sender.uniqueCode === creatorId\r\n ) {\r\n return (\r\n <>\r\n <SenderMessages\r\n id={id}\r\n formatDate={formatDate}\r\n message={item.content}\r\n date={item.createdAt}\r\n read={item.everybodyHasRead}\r\n hasFile={item.hasFile}\r\n file={item.file}\r\n />\r\n\r\n {item.images &&\r\n item.images.map((image: Iimages, index: number) => (\r\n <SenderMessages\r\n key={image.key}\r\n id={`${id}image-${index}`}\r\n formatDate={formatDate}\r\n date={item.createdAt}\r\n file={image}\r\n message=''\r\n hasFile={true}\r\n read={item.everybodyHasRead}\r\n />\r\n ))}\r\n </>\r\n )\r\n }\r\n\r\n return (\r\n <>\r\n <IncomingMessage\r\n id={id}\r\n formatDate={formatDate}\r\n date={item.createdAt}\r\n message={item.content}\r\n hasFile={item.hasFile}\r\n isSystemMessage={item.isSystemMessage}\r\n file={item.file}\r\n user={{\r\n avatar: item.sender?.image,\r\n name: item.sender.username,\r\n }}\r\n />\r\n\r\n {item.images &&\r\n item.images.map((image: Iimages, index: number) => (\r\n <IncomingMessage\r\n key={image.key}\r\n id={`${id}image-${index}`}\r\n formatDate={formatDate}\r\n date={item.createdAt}\r\n file={image}\r\n message=''\r\n hasFile={true}\r\n user={{\r\n avatar: item.sender?.image,\r\n name: item.sender.username,\r\n }}\r\n />\r\n ))}\r\n </>\r\n )\r\n}\r\n\r\nexport default MessageBalloon\r\n","import React from 'react'\r\n\r\nfunction MessageIcon ({ width, height }: { width: string; height: string }) {\r\n return (\r\n <svg\r\n width={width}\r\n height={height}\r\n viewBox='0 0 32 32'\r\n fill='none'\r\n xmlns='http://www.w3.org/2000/svg'\r\n >\r\n <g clipPath='url(#clip0_23_2)'>\r\n <path\r\n d='M14.2857 16C14.2857 16.4547 14.4663 16.8907 14.7878 17.2122C15.1093 17.5337 15.5453 17.7143 16 17.7143C16.4547 17.7143 16.8907 17.5337 17.2122 17.2122C17.5337 16.8907 17.7143 16.4547 17.7143 16C17.7143 15.5453 17.5337 15.1093 17.2122 14.7878C16.8907 14.4663 16.4547 14.2857 16 14.2857C15.5453 14.2857 15.1093 14.4663 14.7878 14.7878C14.4663 15.1093 14.2857 15.5453 14.2857 16V16ZM21.4286 16C21.4286 16.4547 21.6092 16.8907 21.9307 17.2122C22.2522 17.5337 22.6882 17.7143 23.1429 17.7143C23.5975 17.7143 24.0336 17.5337 24.355 17.2122C24.6765 16.8907 24.8572 16.4547 24.8572 16C24.8572 15.5453 24.6765 15.1093 24.355 14.7878C24.0336 14.4663 23.5975 14.2857 23.1429 14.2857C22.6882 14.2857 22.2522 14.4663 21.9307 14.7878C21.6092 15.1093 21.4286 15.5453 21.4286 16ZM7.14286 16C7.14286 16.4547 7.32347 16.8907 7.64497 17.2122C7.96646 17.5337 8.40249 17.7143 8.85715 17.7143C9.31181 17.7143 9.74784 17.5337 10.0693 17.2122C10.3908 16.8907 10.5714 16.4547 10.5714 16C10.5714 15.5453 10.3908 15.1093 10.0693 14.7878C9.74784 14.4663 9.31181 14.2857 8.85715 14.2857C8.40249 14.2857 7.96646 14.4663 7.64497 14.7878C7.32347 15.1093 7.14286 15.5453 7.14286 16V16ZM30.7572 9.8C29.95 7.88214 28.7929 6.16071 27.3179 4.68214C25.8532 3.21213 24.1144 2.04365 22.2 1.24286C20.2357 0.417857 18.15 0 16 0H15.9286C13.7643 0.0107143 11.6679 0.439286 9.69643 1.28214C7.79842 2.09115 6.07595 3.2617 4.62501 4.72857C3.16429 6.20357 2.01786 7.91786 1.225 9.82857C0.403576 11.8071 -0.01071 13.9107 4.25255e-06 16.075C0.012123 18.5553 0.598904 20.999 1.71429 23.2143V28.6429C1.71429 29.0786 1.88738 29.4964 2.19547 29.8045C2.50357 30.1126 2.92143 30.2857 3.35715 30.2857H8.78929C11.0046 31.4011 13.4483 31.9879 15.9286 32H16.0036C18.1429 32 20.2179 31.5857 22.1714 30.775C24.0762 29.9838 25.8085 28.8289 27.2714 27.375C28.7464 25.9143 29.9072 24.2071 30.7179 22.3036C31.5607 20.3321 31.9893 18.2357 32 16.0714C32.0107 13.8964 31.5893 11.7857 30.7572 9.8V9.8ZM25.3607 25.4429C22.8571 27.9214 19.5357 29.2857 16 29.2857H15.9393C13.7857 29.275 11.6464 28.7393 9.75715 27.7321L9.45715 27.5714H4.42858V22.5429L4.26786 22.2429C3.26072 20.3536 2.725 18.2143 2.71429 16.0607C2.7 12.5 4.06072 9.15714 6.55715 6.63929C9.05001 4.12143 12.3821 2.72857 15.9429 2.71429H16.0036C17.7893 2.71429 19.5214 3.06071 21.1536 3.74643C22.7464 4.41429 24.175 5.375 25.4036 6.60357C26.6286 7.82857 27.5929 9.26071 28.2607 10.8536C28.9536 12.5036 29.3 14.2536 29.2929 16.0607C29.2714 19.6179 27.875 22.95 25.3607 25.4429V25.4429Z'\r\n fill='black'\r\n />\r\n </g>\r\n <defs>\r\n <clipPath id='clip0_23_2'>\r\n <rect width='32' height='32' fill='@text-color' />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n )\r\n}\r\n\r\nexport default MessageIcon\r\n","import React from 'react'\r\n\r\ninterface IProps {\r\n color: string\r\n}\r\nexport default function TrashIcon ({ color }: IProps) {\r\n return (\r\n <svg\r\n width='13'\r\n height='17'\r\n viewBox='0 0 13 17'\r\n fill='none'\r\n xmlns='http://www.w3.org/2000/svg'\r\n >\r\n <path\r\n d='M13 0.928571H9.75L8.82143 0H4.17857L3.25 0.928571H0V2.78571H13M0.928571 14.8571C0.928571 15.3497 1.12423 15.8221 1.47252 16.1703C1.8208 16.5186 2.29317 16.7143 2.78571 16.7143H10.2143C10.7068 16.7143 11.1792 16.5186 11.5275 16.1703C11.8758 15.8221 12.0714 15.3497 12.0714 14.8571V3.71429H0.928571V14.8571Z'\r\n fill={color}\r\n />\r\n </svg>\r\n )\r\n}\r\n","import TrashIcon from '../../icons/TrashIcon'\r\nimport React, { useMemo } from 'react'\r\nimport useTheme from '../../hooks/useThemes'\r\nimport { useTranslation } from 'react-i18next'\r\n\r\ninterface IProps {\r\n fileList: File[]\r\n onUpdateFile: (files: File) => void\r\n label: string\r\n onRemoveFile: (files: File) => void\r\n maxSize: string\r\n loading: boolean\r\n}\r\n\r\nfunction InputFile ({\r\n fileList,\r\n onUpdateFile,\r\n label,\r\n onRemoveFile,\r\n maxSize,\r\n loading,\r\n}: IProps) {\r\n const { theme } = useTheme()\r\n const { t } = useTranslation('newFormChat')\r\n\r\n const validateFileType = useMemo(\r\n () => (allowedTypes: string[], file?: File) => {\r\n if (file?.type) {\r\n return allowedTypes.includes(file.type)\r\n }\r\n const extension = file?.name.split('.').pop()?.toLowerCase()\r\n return extension ? allowedTypes.includes(`.${extension}`) : false\r\n },\r\n []\r\n )\r\n\r\n const onUpload = () => {\r\n const input = document.querySelector('.file-input__input') as HTMLElement\r\n input?.click()\r\n }\r\n\r\n const onChange = (e: React.ChangeEvent<HTMLInputElement>) => {\r\n const file = e?.target?.files?.[0]\r\n\r\n const isAllowedType = validateFileType(\r\n [\r\n 'image/png',\r\n 'image/jpeg',\r\n 'application/pdf',\r\n 'application/msword',\r\n 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',\r\n ],\r\n file\r\n )\r\n if (!isAllowedType) {\r\n console.error(t('inputFile.documentSendError'))\r\n return false\r\n }\r\n\r\n if (file) onUpdateFile(file)\r\n return true\r\n }\r\n\r\n const removeItem = (file: File) => {\r\n if (fileList.some((item) => item === file)) {\r\n onRemoveFile(file)\r\n }\r\n }\r\n\r\n return (\r\n <>\r\n <div className='file-input'>\r\n <label\r\n style={{ color: theme.newChatFormTexts }}\r\n htmlFor=''\r\n className='file-input__label'\r\n >\r\n {label}\r\n </label>\r\n <div\r\n className='file-input__container'\r\n style={{\r\n backgroundColor: theme.inputBg,\r\n color: theme.newChatFormTexts,\r\n }}\r\n >\r\n <input\r\n className='file-input__input'\r\n type='file'\r\n id='docpicker'\r\n hidden\r\n accept='.jpg, .jpeg, .png, .pdf, .doc, .docx'\r\n onChange={(event) => onChange(event)}\r\n />\r\n\r\n <h4>{t('inputFile.chooseFile')}</h4>\r\n <button\r\n className='file-input__button'\r\n type='button'\r\n onClick={onUpload}\r\n style={{\r\n background: theme?.buttonPrimary,\r\n color: theme?.buttonPrimaryText,\r\n }}\r\n >\r\n {t('inputFile.chooseFile')}\r\n </button>\r\n\r\n {loading ? (\r\n ''\r\n ) : (\r\n <p>\r\n {t('inputFile.allowDocuments')}\r\n ({t('inputFile.allowSizeDocument', { maxSize })})\r\n </p>\r\n )}\r\n </div>\r\n </div>\r\n\r\n <div>\r\n {fileList &&\r\n fileList.map((item) => (\r\n <div\r\n className='file-input__list'\r\n key={item.name}\r\n style={{\r\n backgroundColor: theme.inputBg,\r\n color: theme.newChatFormTexts,\r\n }}\r\n >\r\n <span className='file-input__list--file-name'>{item.name}</span>\r\n <button\r\n className='file-input__delete'\r\n onClick={() => removeItem(item)}\r\n >\r\n <TrashIcon color={theme.newChatFormDeleteFileButton || 'red'} />\r\n </button>\r\n </div>\r\n ))}\r\n </div>\r\n </>\r\n )\r\n}\r\n\r\nexport default InputFile\r\n","import React from 'react'\r\nimport useTheme from '../../hooks/useThemes'\r\ninterface IProps {\r\n options: {\r\n label: string\r\n value: string\r\n }[]\r\n label: string\r\n onChange: (value: string) => void\r\n name: string\r\n placeholder: string\r\n value: string\r\n}\r\n\r\nfunction SelectNew ({\r\n options,\r\n name,\r\n placeholder,\r\n label,\r\n onChange,\r\n value,\r\n}: IProps) {\r\n const { theme } = useTheme()\r\n return (\r\n <div className='form-select'>\r\n <label\r\n htmlFor={name}\r\n className='form-select__label'\r\n style={{ color: theme.newChatFormTexts }}\r\n >\r\n {label}\r\n </label>\r\n <select\r\n name={name}\r\n className='form-select__input'\r\n onChange={(e) => onChange(e.target.value)}\r\n value={value}\r\n style={{\r\n backgroundColor: theme.inputBg,\r\n color: theme.newChatFormTexts,\r\n }}\r\n >\r\n <option value=\"\" disabled hidden>\r\n {placeholder}\r\n </option>\r\n {options.map((motivo) => (\r\n <option key={motivo.value} value={motivo.value}>\r\n {motivo.label}\r\n </option>\r\n ))}\r\n </select>\r\n </div>\r\n )\r\n}\r\n\r\nexport default SelectNew\r\n","import React from 'react'\r\nimport useTheme from '../../hooks/useThemes'\r\ninterface IProps {\r\n label: string\r\n onChange: (value: string) => void\r\n name: string\r\n placeholder: string\r\n}\r\n\r\nfunction Textarea ({ name, placeholder, label, onChange }: IProps) {\r\n const { theme } = useTheme()\r\n return (\r\n <div className='text-area'>\r\n <label\r\n htmlFor={name}\r\n className='text-area__label'\r\n style={{ color: theme.newChatFormTexts }}\r\n >\r\n {label}\r\n </label>\r\n <textarea\r\n style={{\r\n backgroundColor: theme.inputBg,\r\n color: theme.newChatFormTexts,\r\n }}\r\n name={name}\r\n placeholder={placeholder}\r\n className='text-area__input'\r\n onChange={(e) => onChange(e.target.value)}\r\n />\r\n </div>\r\n )\r\n}\r\n\r\nexport default Textarea\r\n","import React from 'react'\r\nimport useTheme from '../hooks/useThemes'\r\n\r\nexport default function CloseIcon () {\r\n const { theme } = useTheme()\r\n return (\r\n <svg\r\n width='21'\r\n height='21'\r\n viewBox='0 0 21 21'\r\n fill='none'\r\n xmlns='http://www.w3.org/2000/svg'\r\n >\r\n <path\r\n d='M13.4519 10.9583L20.435 3.9751C20.7664 3.64426 20.9529 3.19532 20.9533 2.72704C20.9537 2.25875 20.7681 1.80949 20.4372 1.47807C20.1064 1.14665 19.6574 0.960225 19.1892 0.959812C18.7209 0.959398 18.2716 1.14503 17.9402 1.47586L10.957 8.45902L3.97388 1.47586C3.64246 1.14444 3.19296 0.958252 2.72426 0.958252C2.25556 0.958252 1.80606 1.14444 1.47464 1.47586C1.14322 1.80728 0.957031 2.25678 0.957031 2.72548C0.957031 3.19418 1.14322 3.64368 1.47464 3.9751L8.4578 10.9583L1.47464 17.9414C1.14322 18.2728 0.957031 18.7223 0.957031 19.191C0.957031 19.6597 1.14322 20.1092 1.47464 20.4406C1.80606 20.7721 2.25556 20.9583 2.72426 20.9583C3.19296 20.9583 3.64246 20.7721 3.97388 20.4406L10.957 13.4575L17.9402 20.4406C18.2716 20.7721 18.7211 20.9583 19.1898 20.9583C19.6585 20.9583 20.108 20.7721 20.4394 20.4406C20.7708 20.1092 20.957 19.6597 20.957 19.191C20.957 18.7223 20.7708 18.2728 20.4394 17.9414L13.4519 10.9583Z'\r\n fill={theme.newChatFormTexts ?? '#476077'}\r\n />\r\n </svg>\r\n )\r\n}\r\n","import React, { FormEvent, useState } from 'react'\r\n\r\nimport InputFile from '../components/InputFile/InputFile'\r\nimport Select from '../components/Select/Select'\r\nimport Textarea from '../components/TextArea/TextArea'\r\nimport useTheme from '../hooks/useThemes'\r\nimport CloseIcon from '../icons/CloseIcon'\r\nimport { IOption } from 'types'\r\nimport { useTranslation } from 'react-i18next'\r\n\r\ninterface IProps {\r\n submitNewChat: (values: FormData) => void\r\n cancelNewChat: () => void\r\n reasons: Array<IOption>\r\n products: Array<IOption>\r\n loading: boolean\r\n maxFileSize: string\r\n loadingResources: boolean\r\n}\r\n\r\nfunction NewChatForm ({\r\n submitNewChat,\r\n cancelNewChat,\r\n reasons,\r\n products,\r\n loading,\r\n maxFileSize,\r\n loadingResources,\r\n}: IProps) {\r\n const [reason, setReason] = useState<string>(reasons?.[0]?.value)\r\n const [product, setProduct] = useState<string>(products?.[0]?.value)\r\n const [message, setMessage] = useState<string>()\r\n const [fileList, setFileList] = useState<File[]>([])\r\n const { t } = useTranslation('newFormChat')\r\n\r\n const { theme } = useTheme()\r\n\r\n const onSubmit = (event: FormEvent) => {\r\n const data2 = new FormData()\r\n event.preventDefault()\r\n\r\n fileList.forEach((file) => {\r\n data2.append(`documents`, file, file.name)\r\n })\r\n\r\n if (reason) data2.append('reason', reason)\r\n if (product) data2.append('product', product)\r\n\r\n if (message) data2.append('message', message)\r\n submitNewChat(data2)\r\n }\r\n\r\n const onUpdateFile = (file: File) => {\r\n setFileList((files) => [...files, file])\r\n }\r\n\r\n const onRemoveFile = (file: File) => {\r\n setFileList(fileList.filter((item: File) => item !== file))\r\n }\r\n\r\n return (\r\n <div\r\n className='messenger__new-chat-form'\r\n style={{\r\n backgroundColor: theme.newChatFormBg,\r\n borderRadius: theme.newChatFormRadius,\r\n }}\r\n >\r\n <div className='messenger__new-chat-form-header'>\r\n <h2 className='messenger__new-chat-form-title'>\r\n <b style={{ color: theme.newChatFormTexts }}>{t('newChat')}</b>\r\n </h2>\r\n\r\n <button\r\n onClick={cancelNewChat}\r\n className='messenger__new-chat-form-close'\r\n >\r\n <CloseIcon />\r\n </button>\r\n </div>\r\n\r\n <h3\r\n className='messenger__disclaimer'\r\n style={{\r\n borderColor: theme.disclaimerPrimaryColor,\r\n color: theme.disclaimerTextColor,\r\n backgroundColor: theme.disclaimerSecondaryColor,\r\n }}\r\n >\r\n {t('description.1')} <b>{t('description.1/2bold')}</b> {t('description.2')}\r\n </h3>\r\n\r\n <form onSubmit={onSubmit} className='messenger__new-chat-fields'>\r\n <Select\r\n onChange={(value) => setReason(value)}\r\n options={reasons}\r\n placeholder={t('fields.reasons.placeholder')}\r\n name='reasons'\r\n value={reason}\r\n label={t('fields.reasons.label')}\r\n />\r\n\r\n <Select\r\n onChange={(value) => setProduct(value)}\r\n options={products}\r\n placeholder={t('fields.product.placeholder')}\r\n value={product}\r\n name='product'\r\n label={t('fields.product.label')}\r\n />\r\n\r\n <InputFile\r\n fileList={fileList}\r\n onUpdateFile={onUpdateFile}\r\n onRemoveFile={onRemoveFile}\r\n label={t('fields.document.label')}\r\n maxSize={maxFileSize}\r\n loading={loadingResources}\r\n />\r\n\r\n <Textarea\r\n onChange={(value) => setMessage(value)}\r\n placeholder={t('fields.message.placeholder')}\r\n name='message'\r\n label={t('fields.message.label')}\r\n />\r\n\r\n <button\r\n className={`w-100 ${!loading ? 'messenger__new-chat-form-send' : 'messenger__new-chat-form-send messenger__new-chat-form-send--disabled'}`}\r\n disabled={loading}\r\n type='submit'\r\n style={{\r\n backgroundColor: !loading ? theme.buttonPrimary : '#ccc',\r\n color: theme.buttonPrimaryText,\r\n }}\r\n >\r\n {!loading ? t('buttons.send') : t('buttons.sendingButton')}\r\n </button>\r\n </form>\r\n </div>\r\n )\r\n}\r\n\r\nexport default NewChatForm\r\n","import React from 'react'\r\nimport useTheme from '../hooks/useThemes'\r\n\r\nexport default function AttachFileIcon ({ ...rest }) {\r\n const { theme } = useTheme()\r\n return (\r\n <svg\r\n width='26'\r\n height='28'\r\n viewBox='0 0 26 28'\r\n xmlns='http://www.w3.org/2000/svg'\r\n {...rest}\r\n >\r\n <path\r\n d='M22.5464 2.73571C19.1821 -0.628572 13.7036 -0.628572 10.3429 2.73571L1.02143 12.05C0.960715 12.1107 0.928572 12.1929 0.928572 12.2786C0.928572 12.3643 0.960715 12.4464 1.02143 12.5071L2.33929 13.825C2.39953 13.885 2.48107 13.9186 2.56607 13.9186C2.65108 13.9186 2.73262 13.885 2.79286 13.825L12.1143 4.51071C13.2714 3.35357 14.8107 2.71786 16.4464 2.71786C18.0821 2.71786 19.6214 3.35357 20.775 4.51071C21.9321 5.66786 22.5679 7.20714 22.5679 8.83929C22.5679 10.475 21.9321 12.0107 20.775 13.1679L11.275 22.6643L9.73572 24.2036C8.29643 25.6429 5.95714 25.6429 4.51786 24.2036C3.82143 23.5071 3.43929 22.5821 3.43929 21.5964C3.43929 20.6107 3.82143 19.6857 4.51786 18.9893L13.9429 9.56786C14.1821 9.33214 14.4964 9.2 14.8321 9.2H14.8357C15.1714 9.2 15.4821 9.33214 15.7179 9.56786C15.9571 9.80714 16.0857 10.1214 16.0857 10.4571C16.0857 10.7893 15.9536 11.1036 15.7179 11.3393L8.01429 19.0357C7.95357 19.0964 7.92143 19.1786 7.92143 19.2643C7.92143 19.35 7.95357 19.4321 8.01429 19.4929L9.33214 20.8107C9.39238 20.8707 9.47393 20.9044 9.55893 20.9044C9.64393 20.9044 9.72548 20.8707 9.78572 20.8107L17.4857 13.1107C18.1964 12.4 18.5857 11.4571 18.5857 10.4536C18.5857 9.45 18.1929 8.50357 17.4857 7.79643C16.0179 6.32857 13.6321 6.33214 12.1643 7.79643L11.25 8.71429L2.74286 17.2179C2.16547 17.7919 1.70778 18.4748 1.39634 19.227C1.0849 19.9793 0.925905 20.7858 0.928572 21.6C0.928572 23.2536 1.575 24.8071 2.74286 25.975C3.95357 27.1821 5.53929 27.7857 7.125 27.7857C8.71072 27.7857 10.2964 27.1821 11.5036 25.975L22.5464 14.9393C24.1714 13.3107 25.0714 11.1429 25.0714 8.83929C25.075 6.53214 24.175 4.36429 22.5464 2.73571Z'\r\n fill={theme.uploadFileIconColor}\r\n />\r\n </svg>\r\n )\r\n}\r\n","import React, { ReactNode } from 'react'\r\n\r\ninterface ToolTipProps {\r\n text: string\r\n children: ReactNode\r\n}\r\n\r\nconst ToolTip: React.FC<ToolTipProps> = ({ text, children }) => {\r\n return (\r\n <div className='tooltip'>\r\n {children}\r\n <div className='tooltip__text'>{text}</div>\r\n </div>\r\n )\r\n}\r\n\r\nexport default ToolTip\r\n","import useTheme from '../../hooks/useThemes'\r\nimport React, {\r\n Fragment,\r\n MutableRefObject,\r\n useMemo,\r\n useRef,\r\n useState,\r\n} from 'react'\r\nimport { IList } from 'types'\r\nimport AttachFileIcon from '../../../Messenger/icons/AttachFileIcon'\r\nimport rightArrow from '../../../../assets/right-arrow.svg'\r\nimport { SpinLoading } from '../../views/MessengerMessages'\r\nimport ToolTip from '../Tooltip/Tooltip'\r\nimport { useTranslation } from 'react-i18next'\r\n\r\ninterface IProps {\r\n allowImages: boolean\r\n current?: IList\r\n onSubmit: (value: FormData, callback: () => void) => void\r\n file?: File | null\r\n updateFile: (file: File | null) => void\r\n isLoading?: boolean\r\n maxFileSize: string\r\n}\r\n\r\nfunction AllowDocuments ({\r\n allowImages,\r\n attachFile,\r\n handleFile,\r\n closedChat,\r\n maxFileField,\r\n}: {\r\n allowImages: boolean\r\n attachFile: MutableRefObject<HTMLInputElement | null>\r\n handleFile: (e: React.ChangeEvent<HTMLInputElement>) => void\r\n closedChat: boolean\r\n maxFileField: string\r\n}) {\r\n const { t } = useTranslation('messengerMessages')\r\n\r\n if (allowImages) {\r\n return (\r\n <Fragment>\r\n <input\r\n type='file'\r\n size={1}\r\n className='messenger__messages-send--file'\r\n ref={attachFile}\r\n onChange={handleFile}\r\n accept='.jpg, .jpeg, .png, .pdf, .doc, .docx'\r\n />\r\n\r\n <ToolTip text={t('sendMessageForm.maxFileField', { maxFileField })}>\r\n <AttachFileIcon\r\n className={`messenger__messages-send__attach ${closedChat ? 'messenger__messages-send__attach--disabled' : ''}`}\r\n onClick={() => (!closedChat ? attachFile.current?.click() : null)}\r\n />\r\n </ToolTip>\r\n </Fragment>\r\n )\r\n }\r\n\r\n return <></>\r\n}\r\n\r\nfunction SendMessageForm ({\r\n allowImages,\r\n current,\r\n onSubmit,\r\n file,\r\n updateFile,\r\n isLoading,\r\n maxFileSize,\r\n}: IProps) {\r\n const { t } = useTranslation('messengerMessages')\r\n const [formHeight, setFormHeight] = useState<number>(100)\r\n const [sending, setSending] = useState<boolean>(false)\r\n\r\n const inputRef: MutableRefObject<HTMLTextAreaElement | null> = useRef(null)\r\n const attachFile: MutableRefObject<HTMLInputElement | null> = useRef(null)\r\n\r\n const closedChat = useMemo(\r\n () => current?.status.current.state === 'final',\r\n [current]\r\n )\r\n\r\n const { theme } = useTheme()\r\n\r\n function correctTextAreaHeight (styleConfig: {\r\n height: number\r\n overflow: string\r\n }) {\r\n const textarea = inputRef.current\r\n if (textarea) {\r\n textarea.style.height = `${styleConfig.height}px`\r\n textarea.style.overflowY = styleConfig.overflow\r\n }\r\n }\r\n\r\n function resetHeights () {\r\n const inicialFormHeight = 100\r\n const inicialTextAreaHeight = 50\r\n setFormHeight(inicialFormHeight)\r\n correctTextAreaHeight({ height: inicialTextAreaHeight, overflow: 'hidden' })\r\n }\r\n\r\n function adjustFormHeight (textareaRef: typeof inputRef.current) {\r\n if (textareaRef) {\r\n const initialHeight = 50\r\n const maxHeight = 80\r\n const newHeight = textareaRef.scrollHeight\r\n\r\n if (newHeight > maxHeight) {\r\n correctTextAreaHeight({\r\n height: maxHeight,\r\n overflow: 'auto',\r\n })\r\n return maxHeight + initialHeight\r\n }\r\n\r\n correctTextAreaHeight({\r\n height: initialHeight,\r\n overflow: 'auto',\r\n })\r\n return initialHeight * 2\r\n }\r\n\r\n return formHeight\r\n }\r\n\r\n function handleTextareaChange () {\r\n const textarea = inputRef.current\r\n setFormHeight(adjustFormHeight(textarea))\r\n }\r\n\r\n function handleSubmit (e?: React.FormEvent<HTMLFormElement>) {\r\n e?.preventDefault()\r\n if (sending) return\r\n setSending(true)\r\n\r\n const data = new FormData()\r\n if (file) data.append('file', file)\r\n if (inputRef.current?.value) data.append('message', inputRef.current?.value)\r\n\r\n onSubmit(data, () => {\r\n if (inputRef.current) inputRef.current.value = ''\r\n if (file) updateFile(null)\r\n setSending(false)\r\n resetHeights()\r\n })\r\n }\r\n\r\n function handleFile (e: React.ChangeEvent<HTMLInputElement>) {\r\n if (e.target.files) {\r\n const file = e.target.files[0]\r\n if (\r\n file?.type?.includes('image/') ||\r\n file?.type?.includes('application/') ||\r\n file?.type === 'application/msword' ||\r\n file?.type ===\r\n 'application/vnd.openxmlformats-officedocument.wordprocessingml.document'\r\n ) {\r\n updateFile(e.target.files[0])\r\n }\r\n }\r\n }\r\n\r\n return (\r\n <form\r\n onSubmit={handleSubmit}\r\n className='messenger__messages-send--form'\r\n style={{\r\n height: `${formHeight}px`,\r\n maxHeight: '150px',\r\n }}\r\n >\r\n <div className='messenger__messages-send__input-container'>\r\n <textarea\r\n onChange={handleTextareaChange}\r\n placeholder={\r\n closedChat ? t('sendMessageForm.chatEnded') : t('sendMessageForm.typeMessage')\r\n }\r\n ref={inputRef}\r\n onKeyDown={(e) => {\r\n if (e.key === 'Enter' && !e.shiftKey) {\r\n e.preventDefault()\r\n handleSubmit()\r\n }\r\n }}\r\n className={`messenger__messages-send__input ${closedChat || sending ? 'messenger__messages-send__input--disabled' : ''} `}\r\n disabled={closedChat || sending}\r\n style={{\r\n backgroundColor: theme?.inputBg,\r\n }}\r\n />\r\n\r\n <AllowDocuments\r\n allowImages={allowImages}\r\n handleFile={handleFile}\r\n attachFile={attachFile}\r\n closedChat={closedChat}\r\n maxFileField={maxFileSize}\r\n />\r\n </div>\r\n\r\n {isLoading ? (\r\n <div className='messenger__messages-sending'>\r\n <SpinLoading />\r\n </div>\r\n ) : (\r\n <button\r\n type='submit'\r\n className={`messenger__messages-send__button ${closedChat || sending ? 'messenger__messages-send__button--disabled' : ''}`}\r\n disabled={closedChat || sending}\r\n style={{\r\n backgroundColor: theme?.buttonPrimary,\r\n }}\r\n >\r\n <img\r\n alt={t('sendMessageForm.rightIcon')}\r\n height={25}\r\n width={25}\r\n className='ml-1'\r\n src={rightArrow}\r\n />\r\n </button>\r\n )}\r\n </form>\r\n )\r\n}\r\n\r\nexport default SendMessageForm\r\n","import React, {\r\n Fragment,\r\n useState,\r\n useRef,\r\n MutableRefObject,\r\n useEffect,\r\n} from 'react'\r\nimport ImagesContainer from '../components/ImagesContainer/ImagesContainer'\r\nimport MessageBalloon from '../components/MessageBallon/MessageBalloon'\r\n\r\nimport MessageIcon from '../icons/MessageIcon'\r\n\r\nimport { ICommonProps, IList, IMessages, IOption } from 'types'\r\nimport useTheme from '../hooks/useThemes'\r\n\r\nimport NewChatForm from './NewFormChat'\r\nimport EmptyIcon from '../icons/EmptyIcon'\r\nimport SendMessageForm from '../components/SendMessageForm/SendMessageForm'\r\nimport InfiniteScroll from '../components/InfiniteScroll/InfiniteScroll'\r\nimport { formatFileSize } from '../components/DocMessage/DocMessage'\r\nimport { useTranslation } from 'react-i18next'\r\n\r\ninterface IScrollableContainer {\r\n loading: boolean\r\n onIntersect: () => Promise<void>\r\n hasNext: boolean\r\n}\r\n\r\ntype MessengerView = 'empty' | 'messages' | 'newChat'\r\n\r\ninterface IMessengerMessages extends ICommonProps, IScrollableContainer {\r\n header: React.ReactElement\r\n current?: IList\r\n creatorId?: string\r\n allowImages: boolean\r\n tab?: 'list' | 'messages'\r\n messegerView: MessengerView\r\n className?: string\r\n messages: IMessages[]\r\n onSubmit: (value: FormData, callback: () => void) => Promise<void>\r\n cancelNewChat: () => void\r\n formatDate: (date: string | Date) => string | undefined\r\n reasons: Array<IOption>\r\n products: Array<IOption>\r\n submitNewChat: (values: FormData) => void\r\n newChatLoading: boolean\r\n maxFileSize: () => Promise<{ data: { data: { maxFileSize: number } } }>\r\n}\r\n\r\ninterface IMessengerForm {\r\n children: React.ReactNode\r\n messegerView: MessengerView\r\n reasons: Array<IOption>\r\n products: Array<IOption>\r\n submitNewChat: (values: FormData) => void\r\n cancelNewChat: () => void\r\n newChatLoading: boolean\r\n maxFileSize: string\r\n loadingResources: boolean\r\n}\r\n\r\nfunction MessagesContainerView ({\r\n children,\r\n messegerView,\r\n submitNewChat,\r\n cancelNewChat,\r\n reasons,\r\n products,\r\n newChatLoading,\r\n maxFileSize,\r\n loadingResources,\r\n}: IMessengerForm) {\r\n const { theme } = useTheme()\r\n const { t } = useTranslation('messengerMessages')\r\n\r\n if (messegerView === 'empty') {\r\n return (\r\n <div\r\n className='messenger__messages-container--empty'\r\n style={{ backgroundColor: theme?.messengerNotSelectedBg }}\r\n >\r\n <MessageIcon width='72' height='72' />\r\n <p>{t('selectConversation')}</p>\r\n </div>\r\n )\r\n }\r\n\r\n if (messegerView === 'newChat') {\r\n return (\r\n <NewChatForm\r\n reasons={reasons}\r\n products={products}\r\n submitNewChat={submitNewChat}\r\n cancelNewChat={cancelNewChat}\r\n loading={newChatLoading}\r\n maxFileSize={maxFileSize}\r\n loadingResources={loadingResources}\r\n />\r\n )\r\n }\r\n\r\n return <>{children}</>\r\n}\r\n\r\nexport function SpinLoading () {\r\n return (\r\n <div className='messenger__messages-loading'>\r\n <div className='messenger__messages-loading--loader' />\r\n </div>\r\n )\r\n}\r\n\r\nfunction Messages ({\r\n messages,\r\n creatorId,\r\n formatDate,\r\n loading,\r\n}: {\r\n messages: IMessages[]\r\n creatorId?: string\r\n formatDate: (date: string | Date) => string | undefined\r\n loading: boolean\r\n}) {\r\n const { theme } = useTheme()\r\n const { t } = useTranslation('messengerMessages')\r\n\r\n if (!messages || (messages.length === 0 && !loading)) {\r\n return (\r\n <div\r\n className='messenger__message-empty'\r\n style={{ color: theme.emptyMessagesFontColor }}\r\n >\r\n <EmptyIcon />\r\n <p>{t('noMessagesFound')}</p>\r\n </div>\r\n )\r\n }\r\n\r\n return (\r\n <>\r\n {messages.map((item, idx) => {\r\n return (\r\n <Fragment key={`${item.ticketId}_${item.senderId}_${idx}`}>\r\n <MessageBalloon\r\n id={`message_${idx}`}\r\n formatDate={formatDate}\r\n creatorId={creatorId}\r\n item={item}\r\n />\r\n </Fragment>\r\n )\r\n })}\r\n </>\r\n )\r\n}\r\n\r\nconst onScrollToBottom = (\r\n scrollContainer: MutableRefObject<HTMLDivElement | null>\r\n) => {\r\n if (scrollContainer.current) {\r\n scrollContainer.current.scrollTop = Number.MAX_SAFE_INTEGER\r\n }\r\n}\r\n\r\nfunction MessagesContainer ({\r\n children,\r\n fowardRef,\r\n ...rest\r\n}: {\r\n children: React.ReactNode\r\n fowardRef: MutableRefObject<HTMLDivElement | null>\r\n} & React.DetailedHTMLProps<\r\n React.HTMLAttributes<HTMLDivElement>,\r\n HTMLDivElement\r\n>) {\r\n const { theme } = useTheme()\r\n\r\n return (\r\n <div\r\n {...rest}\r\n ref={fowardRef}\r\n className='messenger__messages-container'\r\n style={{\r\n padding: '1rem',\r\n backgroundColor: theme?.messengerMessagesBg,\r\n border: `1px solid ${theme.borderColor}`,\r\n }}\r\n >\r\n {children}\r\n </div>\r\n )\r\n}\r\n\r\nfunction ScrollableContainer ({\r\n children,\r\n loading,\r\n onIntersect,\r\n hasNext,\r\n scrollContainerFowardRef,\r\n}: {\r\n children: React.ReactNode\r\n scrollContainerFowardRef: MutableRefObject<HTMLDivElement | null>\r\n} & IScrollableContainer) {\r\n const intersetRootMargin = 300\r\n\r\n const getElementScrollHeight = (divRef: HTMLDivElement | null) => {\r\n if (!divRef) return null\r\n return divRef.scrollHeight\r\n }\r\n\r\n const getElementScrollTop = (divRef: HTMLDivElement | null) => {\r\n if (!divRef) return null\r\n return divRef.scrollTop\r\n }\r\n\r\n const calculateScrollToDecrease = (\r\n elementBeforeIntersetHeight: number,\r\n elementAfterIntersectHeight: number,\r\n intersetRootMargin: number\r\n ) => {\r\n return (\r\n Math.abs(elementAfterIntersectHeight - elementBeforeIntersetHeight) +\r\n intersetRootMargin\r\n )\r\n }\r\n\r\n const isNill = (value: number | null | undefined) => {\r\n return value === null && value === undefined\r\n }\r\n\r\n const onFetchInfiniteScroll = async () => {\r\n const elementBeforeIntersetHeight = getElementScrollHeight(\r\n scrollContainerFowardRef.current\r\n )\r\n\r\n await onIntersect()\r\n\r\n const elementAfterIntersectHeight = getElementScrollHeight(\r\n scrollContainerFowardRef.current\r\n )\r\n\r\n if (\r\n scrollContainerFowardRef.current &&\r\n !isNill(elementBeforeIntersetHeight) &&\r\n !isNill(elementAfterIntersectHeight)\r\n ) {\r\n const currentScrollTop =\r\n getElementScrollTop(scrollContainerFowardRef.current) || 0\r\n scrollContainerFowardRef.current.scrollTop = calculateScrollToDecrease(\r\n elementAfterIntersectHeight as number,\r\n elementBeforeIntersetHeight as number,\r\n currentScrollTop\r\n )\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n onScrollToBottom(scrollContainerFowardRef)\r\n }, [])\r\n\r\n return (\r\n <MessagesContainer fowardRef={scrollContainerFowardRef}>\r\n <InfiniteScroll\r\n root={document.querySelector('.messenger__messages-container')}\r\n loading={loading}\r\n loadingCover={<SpinLoading />}\r\n more={hasNext}\r\n fetch={onFetchInfiniteScroll}\r\n rootMargin={intersetRootMargin}\r\n reverse\r\n >\r\n {children}\r\n </InfiniteScroll>\r\n </MessagesContainer>\r\n )\r\n}\r\n\r\nfunction MessengerMessages ({\r\n header,\r\n tab,\r\n className = '',\r\n current,\r\n messages,\r\n allowImages,\r\n creatorId,\r\n loading,\r\n onSubmit,\r\n submitNewChat,\r\n cancelNewChat,\r\n reasons,\r\n products,\r\n messegerView,\r\n formatDate,\r\n hasNext,\r\n onIntersect,\r\n newChatLoading,\r\n maxFileSize,\r\n}: IMessengerMessages) {\r\n const { t } = useTranslation('messengerMessages')\r\n const [file, setFile] = useState<File | null>()\r\n const scrollContainerRef = useRef<HTMLDivElement | null>(null)\r\n const [isSending, setIsSending] = useState(false)\r\n const [maxSize, setMaxSize] = useState<string>('')\r\n\r\n const { theme } = useTheme()\r\n\r\n const styleClassnames = {\r\n mobile: tab === 'list' ? 'messenger__mobile-hide' : '',\r\n }\r\n\r\n const updateFile = (file: File | null) => {\r\n setFile(file)\r\n }\r\n\r\n const onSubmitNewMessage = async (\r\n message: FormData,\r\n callback: () => void\r\n ) => {\r\n setIsSending(true)\r\n try {\r\n await onSubmit(message, callback)\r\n onScrollToBottom(scrollContainerRef)\r\n } finally {\r\n setIsSending(false)\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n const fetchMaxFileSize = async () => {\r\n try {\r\n const response = await maxFileSize()\r\n const size = formatFileSize(response.data.data.maxFileSize)\r\n setMaxSize(size)\r\n } catch (error) {\r\n console.error(t('errorSearchingMaxFileSize'), error)\r\n }\r\n }\r\n\r\n fetchMaxFileSize()\r\n }, [maxSize])\r\n\r\n return (\r\n <div\r\n className={`messenger__messages ${className} ${styleClassnames.mobile} `}\r\n >\r\n <MessagesContainerView\r\n newChatLoading={newChatLoading}\r\n reasons={reasons}\r\n products={products}\r\n submitNewChat={submitNewChat}\r\n cancelNewChat={cancelNewChat}\r\n messegerView={messegerView}\r\n maxFileSize={maxSize}\r\n loadingResources={loading}\r\n >\r\n {file ? (\r\n <ImagesContainer file={file} onClose={() => setFile(null)} />\r\n ) : (\r\n <>\r\n <div\r\n className='messenger__messages-header'\r\n style={{\r\n backgroundColor: theme?.headerAndSenderBg,\r\n border: `1px solid ${theme.borderColor}`,\r\n }}\r\n >\r\n {React.cloneElement(header)}\r\n </div>\r\n\r\n {loading && !messages.length ? (\r\n <MessagesContainer fowardRef={scrollContainerRef}>\r\n <SpinLoading />\r\n </MessagesContainer>\r\n ) : (\r\n <ScrollableContainer\r\n scrollContainerFowardRef={scrollContainerRef}\r\n loading={loading}\r\n hasNext={hasNext}\r\n onIntersect={onIntersect}\r\n >\r\n <Messages\r\n formatDate={formatDate}\r\n messages={messages}\r\n creatorId={creatorId}\r\n loading={loading}\r\n />\r\n </ScrollableContainer>\r\n )}\r\n </>\r\n )}\r\n\r\n <div\r\n className='messenger__messages-send'\r\n style={{\r\n backgroundColor: theme?.headerAndSenderBg,\r\n border: `1px solid ${theme.borderColor}`,\r\n }}\r\n >\r\n <SendMessageForm\r\n allowImages={allowImages}\r\n onSubmit={onSubmitNewMessage}\r\n file={file}\r\n updateFile={updateFile}\r\n current={current}\r\n isLoading={isSending}\r\n maxFileSize={maxSize}\r\n />\r\n </div>\r\n </MessagesContainerView>\r\n </div>\r\n )\r\n}\r\n\r\nexport default MessengerMessages\r\n","import { useState } from 'react'\r\nimport { IList } from 'types'\r\n\r\ntype _viewDesktop = 'empty' | 'messages' | 'newChat'\r\ntype _viewMobile = 'list' | 'messages'\r\n\r\nexport const useConversations = () => {\r\n const SLICE = 15\r\n const [sliceCount, setSliceCount] = useState(SLICE)\r\n const [conversations, setConversations] = useState<IList[]>([])\r\n const [currentChat, setCurrentChat] = useState<IList>()\r\n const [viewDesktop, setViewDesktop] = useState<_viewDesktop>('empty')\r\n const [viewMobile, setViewMobile] = useState<'list' | 'messages'>('list')\r\n\r\n const changeViewDesktop = (view: _viewDesktop) => {\r\n setViewDesktop(view)\r\n }\r\n\r\n const changeViewMobile = (view: _viewMobile) => {\r\n setViewMobile(view)\r\n }\r\n\r\n const selectChat = (chat: IList) => {\r\n setCurrentChat(chat)\r\n }\r\n\r\n const onIntersect = () => {\r\n setSliceCount((prev) => {\r\n const count = prev + SLICE\r\n return count\r\n })\r\n }\r\n\r\n const hasNext = () => {\r\n return conversations.length >= sliceCount\r\n }\r\n\r\n const resetConversations = () => {\r\n setConversations([])\r\n }\r\n\r\n const mapConversationsUnread = (prev: IList[]) => (id: string) => {\r\n return (prev || []).map((conversation) => {\r\n if (conversation?._id === id) {\r\n return {\r\n ...conversation,\r\n totalUnreadMessages: 0,\r\n }\r\n }\r\n\r\n return conversation\r\n })\r\n }\r\n\r\n const reorderConversations = (conversations: IList[], ticketId?: string) => {\r\n const index = conversations.findIndex(\r\n (conversation) => conversation._id === ticketId\r\n )\r\n if (index !== -1) {\r\n const conversationToMove = conversations.splice(index, 1)[0]\r\n conversations.unshift(conversationToMove)\r\n }\r\n }\r\n\r\n const mapConversationsIncrementUnread =\r\n (prev: IList[], ticketId?: string) => (id: string) => {\r\n const updatedConversations = (prev || []).map((conversation) => {\r\n if (conversation._id === id) {\r\n return {\r\n ...conversation,\r\n totalUnreadMessages:\r\n ticketId === id ? 0 : conversation.totalUnreadMessages + 1,\r\n }\r\n }\r\n return conversation\r\n })\r\n\r\n reorderConversations(updatedConversations, ticketId)\r\n\r\n return updatedConversations\r\n }\r\n\r\n const setAsRead = (id: string) => {\r\n setConversations((prev) => mapConversationsUnread(prev)(id))\r\n }\r\n\r\n const addConversations = (\r\n conversations: IList[],\r\n goToNewConversation?: (chat: IList) => void\r\n ) => {\r\n setConversations(conversations)\r\n\r\n if (goToNewConversation) goToNewConversation(conversations[0])\r\n }\r\n\r\n const addOneUnreadToTicket = (ticketId: string, currentChat?: string) => {\r\n setConversations((prev) => {\r\n return mapConversationsIncrementUnread(prev, currentChat)(ticketId)\r\n })\r\n }\r\n\r\n const removeClosedConversation = (ticketId: string) => {\r\n const filtred = conversations.filter(\r\n (conversation) => conversation._id !== ticketId\r\n )\r\n addConversations(filtred)\r\n }\r\n\r\n const closeIfIsCurrent = (ticketId: string) => {\r\n if (ticketId === currentChat?._id) {\r\n changeViewDesktop('empty')\r\n changeViewMobile('list')\r\n }\r\n }\r\n\r\n const onCloseChat = (ticketId: string) => {\r\n removeClosedConversation(ticketId)\r\n closeIfIsCurrent(ticketId)\r\n }\r\n\r\n const reset = () => {\r\n setSliceCount(SLICE)\r\n resetConversations()\r\n }\r\n\r\n return {\r\n onIntersect,\r\n reset,\r\n conversations,\r\n hasNext,\r\n addConversations,\r\n addOneUnreadToTicket,\r\n setAsRead,\r\n sliceCount,\r\n currentChat,\r\n selectChat,\r\n onCloseChat,\r\n changeViewDesktop,\r\n viewDesktop,\r\n changeViewMobile,\r\n viewMobile,\r\n }\r\n}\r\n","import { useState } from 'react'\r\nimport { IMessages, ISocketMessage } from 'types'\r\n\r\nexport const useMessages = () => {\r\n const [messages, setMessages] = useState<IMessages[]>([])\r\n const [totalMessages, setTotalMessages] = useState<number>(0)\r\n\r\n const addMessages = (messages: IMessages[]) => {\r\n setMessages(messages)\r\n }\r\n const addTotalMessages = (total: number) => {\r\n setTotalMessages(total)\r\n }\r\n\r\n const incrementMessages = (ticket: ISocketMessage, currentChatId: string) => {\r\n const existentMessage = messages.find(\r\n (item) => item.messagecode === ticket.message.messagecode\r\n )\r\n if (ticket.message.ticketId === currentChatId && !existentMessage) {\r\n addMessages([...messages, ticket.message])\r\n }\r\n }\r\n\r\n const updateMesssagesAsRead = (\r\n ticket: ISocketMessage,\r\n currentChatId: string\r\n ) => {\r\n if (ticket.markAsRead || currentChatId === ticket?.message?.ticketId) {\r\n const readMessages = messages.map((message) => ({\r\n ...message,\r\n everybodyHasRead: true,\r\n }))\r\n addMessages(readMessages)\r\n }\r\n }\r\n\r\n const hasOlderMessages = () => {\r\n return messages.length > 9 && messages.length < totalMessages\r\n }\r\n\r\n return {\r\n addMessages,\r\n messages,\r\n incrementMessages,\r\n updateMesssagesAsRead,\r\n addTotalMessages,\r\n hasOlderMessages,\r\n }\r\n}\r\n","const isString = obj => typeof obj === 'string';\nconst defer = () => {\n let res;\n let rej;\n const promise = new Promise((resolve, reject) => {\n res = resolve;\n rej = reject;\n });\n promise.resolve = res;\n promise.reject = rej;\n return promise;\n};\nconst makeString = object => {\n if (object == null) return '';\n return '' + object;\n};\nconst copy = (a, s, t) => {\n a.forEach(m => {\n if (s[m]) t[m] = s[m];\n });\n};\nconst lastOfPathSeparatorRegExp = /###/g;\nconst cleanKey = key => key && key.indexOf('###') > -1 ? key.replace(lastOfPathSeparatorRegExp, '.') : key;\nconst canNotTraverseDeeper = object => !object || isString(object);\nconst getLastOfPath = (object, path, Empty) => {\n const stack = !isString(path) ? path : path.split('.');\n let stackIndex = 0;\n while (stackIndex < stack.length - 1) {\n if (canNotTraverseDeeper(object)) return {};\n const key = cleanKey(stack[stackIndex]);\n if (!object[key] && Empty) object[key] = new Empty();\n if (Object.prototype.hasOwnProperty.call(object, key)) {\n object = object[key];\n } else {\n object = {};\n }\n ++stackIndex;\n }\n if (canNotTraverseDeeper(object)) return {};\n return {\n obj: object,\n k: cleanKey(stack[stackIndex])\n };\n};\nconst setPath = (object, path, newValue) => {\n const {\n obj,\n k\n } = getLastOfPath(object, path, Object);\n if (obj !== undefined || path.length === 1) {\n obj[k] = newValue;\n return;\n }\n let e = path[path.length - 1];\n let p = path.slice(0, path.length - 1);\n let last = getLastOfPath(object, p, Object);\n while (last.obj === undefined && p.length) {\n e = `${p[p.length - 1]}.${e}`;\n p = p.slice(0, p.length - 1);\n last = getLastOfPath(object, p, Object);\n if (last && 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 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 '&': '&amp;',\n '<': '&lt;',\n '>': '&gt;',\n '\"': '&quot;',\n \"'\": '&#39;',\n '/': '&#x2F;'\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 = function (obj, path) {\n let keySeparator = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '.';\n if (!obj) return undefined;\n if (obj[path]) return obj[path];\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 && 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 if (console && console[type]) console[type].apply(console, args);\n }\n};\nclass Logger {\n constructor(concreteLogger) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n this.init(concreteLogger, options);\n }\n init(concreteLogger) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n this.prefix = options.prefix || 'i18next:';\n this.logger = concreteLogger || consoleLogger;\n this.options = options;\n this.debug = options.debug;\n }\n log() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n return this.forward(args, 'log', '', true);\n }\n warn() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n return this.forward(args, 'warn', '', true);\n }\n error() {\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n return this.forward(args, 'error', '');\n }\n deprecate() {\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\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) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n if (this.observers[event]) {\n const cloned = Array.from(this.observers[event].entries());\n cloned.forEach(_ref => {\n let [observer, numTimesAdded] = _ref;\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(_ref2 => {\n let [observer, numTimesAdded] = _ref2;\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) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\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) {\n let options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\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 && this.data[lng] && this.data[lng][ns], key, keySeparator);\n }\n addResource(lng, ns, key, value) {\n let options = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {\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) {\n let options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {\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) {\n let options = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : {\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 if (this.options.compatibilityAPI === 'v1') return {\n ...{},\n ...this.getResource(lng, ns)\n };\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 if (this.processors[processor]) value = this.processors[processor].process(value, key, options, translator);\n });\n return value;\n }\n};\n\nconst checkedLoadedFor = {};\nclass Translator extends EventEmitter {\n constructor(services) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\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) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n interpolation: {}\n };\n if (key === undefined || key === null) {\n return false;\n }\n const resolved = this.resolve(key, options);\n return resolved && resolved.res !== undefined;\n }\n extractFromKey(key, options) {\n let nsSeparator = options.nsSeparator !== undefined ? options.nsSeparator : this.options.nsSeparator;\n if (nsSeparator === undefined) nsSeparator = ':';\n const keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n let namespaces = options.ns || this.options.defaultNS || [];\n const wouldCheckForNsInKey = nsSeparator && key.indexOf(nsSeparator) > -1;\n const seemsNaturalLanguage = !this.options.userDefinedKeySeparator && !options.keySeparator && !this.options.userDefinedNsSeparator && !options.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, options, lastKey) {\n if (typeof options !== 'object' && this.options.overloadTranslationOptionHandler) {\n options = this.options.overloadTranslationOptionHandler(arguments);\n }\n if (typeof options === 'object') options = {\n ...options\n };\n if (!options) options = {};\n if (keys === undefined || keys === null) return '';\n if (!Array.isArray(keys)) keys = [String(keys)];\n const returnDetails = options.returnDetails !== undefined ? options.returnDetails : this.options.returnDetails;\n const keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n const {\n key,\n namespaces\n } = this.extractFromKey(keys[keys.length - 1], options);\n const namespace = namespaces[namespaces.length - 1];\n const lng = options.lng || this.language;\n const appendNamespaceToCIMode = options.appendNamespaceToCIMode || this.options.appendNamespaceToCIMode;\n if (lng && lng.toLowerCase() === 'cimode') {\n if (appendNamespaceToCIMode) {\n const nsSeparator = options.nsSeparator || this.options.nsSeparator;\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(options)\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(options)\n };\n }\n return key;\n }\n const resolved = this.resolve(keys, options);\n let res = resolved && resolved.res;\n const resUsedKey = resolved && resolved.usedKey || key;\n const resExactUsedKey = resolved && resolved.exactUsedKey || key;\n const resType = Object.prototype.toString.apply(res);\n const noObject = ['[object Number]', '[object Function]', '[object RegExp]'];\n const joinArrays = options.joinArrays !== undefined ? options.joinArrays : this.options.joinArrays;\n const handleAsObjectInI18nFormat = !this.i18nFormat || this.i18nFormat.handleAsObject;\n const handleAsObject = !isString(res) && typeof res !== 'boolean' && typeof res !== 'number';\n if (handleAsObjectInI18nFormat && res && handleAsObject && noObject.indexOf(resType) < 0 && !(isString(joinArrays) && Array.isArray(res))) {\n if (!options.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, res, {\n ...options,\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(options);\n return resolved;\n }\n return r;\n }\n if (keySeparator) {\n const resTypeIsArray = Array.isArray(res);\n const copy = resTypeIsArray ? [] : {};\n const newKeyToUse = resTypeIsArray ? resExactUsedKey : resUsedKey;\n for (const m in res) {\n if (Object.prototype.hasOwnProperty.call(res, m)) {\n const deepKey = `${newKeyToUse}${keySeparator}${m}`;\n copy[m] = this.translate(deepKey, {\n ...options,\n ...{\n joinArrays: false,\n ns: namespaces\n }\n });\n if (copy[m] === deepKey) copy[m] = res[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, options, lastKey);\n } else {\n let usedDefault = false;\n let usedKey = false;\n const needsPluralHandling = options.count !== undefined && !isString(options.count);\n const hasDefaultValue = Translator.hasDefaultValue(options);\n const defaultValueSuffix = needsPluralHandling ? this.pluralResolver.getSuffix(lng, options.count, options) : '';\n const defaultValueSuffixOrdinalFallback = options.ordinal && needsPluralHandling ? this.pluralResolver.getSuffix(lng, options.count, {\n ordinal: false\n }) : '';\n const needsZeroSuffixLookup = needsPluralHandling && !options.ordinal && options.count === 0 && this.pluralResolver.shouldUseIntlApi();\n const defaultValue = needsZeroSuffixLookup && options[`defaultValue${this.options.pluralSeparator}zero`] || options[`defaultValue${defaultValueSuffix}`] || options[`defaultValue${defaultValueSuffixOrdinalFallback}`] || options.defaultValue;\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 = options.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 ...options,\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, options.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(options.lng || this.language);\n } else {\n lngs.push(options.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, options);\n } else if (this.backendConnector && this.backendConnector.saveMissing) {\n this.backendConnector.saveMissing(l, namespace, k, defaultForMissing, updateMissing, options);\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, options);\n if (needsZeroSuffixLookup && options[`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, options[`defaultValue${suffix}`] || defaultValue);\n });\n });\n } else {\n send(lngs, key, defaultValue);\n }\n }\n }\n res = this.extendTranslation(res, keys, options, resolved, lastKey);\n if (usedKey && res === key && this.options.appendNamespaceToMissingKey) res = `${namespace}:${key}`;\n if ((usedKey || usedDefault) && this.options.parseMissingKeyHandler) {\n if (this.options.compatibilityAPI !== 'v1') {\n res = this.options.parseMissingKeyHandler(this.options.appendNamespaceToMissingKey ? `${namespace}:${key}` : key, usedDefault ? res : undefined);\n } else {\n res = this.options.parseMissingKeyHandler(res);\n }\n }\n }\n if (returnDetails) {\n resolved.res = res;\n resolved.usedParams = this.getUsedParamsDetails(options);\n return resolved;\n }\n return res;\n }\n extendTranslation(res, key, options, resolved, lastKey) {\n var _this = this;\n if (this.i18nFormat && this.i18nFormat.parse) {\n res = this.i18nFormat.parse(res, {\n ...this.options.interpolation.defaultVariables,\n ...options\n }, options.lng || this.language || resolved.usedLng, resolved.usedNS, resolved.usedKey, {\n resolved\n });\n } else if (!options.skipInterpolation) {\n if (options.interpolation) this.interpolator.init({\n ...options,\n ...{\n interpolation: {\n ...this.options.interpolation,\n ...options.interpolation\n }\n }\n });\n const skipOnVariables = isString(res) && (options && options.interpolation && options.interpolation.skipOnVariables !== undefined ? options.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 = options.replace && !isString(options.replace) ? options.replace : options;\n if (this.options.interpolation.defaultVariables) data = {\n ...this.options.interpolation.defaultVariables,\n ...data\n };\n res = this.interpolator.interpolate(res, data, options.lng || this.language || resolved.usedLng, options);\n if (skipOnVariables) {\n const na = res.match(this.interpolator.nestingRegexp);\n const nestAft = na && na.length;\n if (nestBef < nestAft) options.nest = false;\n }\n if (!options.lng && this.options.compatibilityAPI !== 'v1' && resolved && resolved.res) options.lng = this.language || resolved.usedLng;\n if (options.nest !== false) res = this.interpolator.nest(res, function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n if (lastKey && lastKey[0] === args[0] && !options.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 }, options);\n if (options.interpolation) this.interpolator.reset();\n }\n const postProcess = options.postProcess || this.options.postProcess;\n const postProcessorNames = isString(postProcess) ? [postProcess] : postProcess;\n if (res !== undefined && res !== null && postProcessorNames && postProcessorNames.length && options.applyPostProcessor !== false) {\n res = postProcessor.handle(postProcessorNames, res, key, this.options && this.options.postProcessPassResolved ? {\n i18nResolved: {\n ...resolved,\n usedParams: this.getUsedParamsDetails(options)\n },\n ...options\n } : options, this);\n }\n return res;\n }\n resolve(keys) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\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, options);\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 = options.count !== undefined && !isString(options.count);\n const needsZeroSuffixLookup = needsPluralHandling && !options.ordinal && options.count === 0 && this.pluralResolver.shouldUseIntlApi();\n const needsContextHandling = options.context !== undefined && (isString(options.context) || typeof options.context === 'number') && options.context !== '';\n const codes = options.lngs ? options.lngs : this.languageUtils.toResolveHierarchy(options.lng || this.language, options.fallbackLng);\n namespaces.forEach(ns => {\n if (this.isValidLookup(found)) return;\n usedNS = ns;\n if (!checkedLoadedFor[`${codes[0]}-${ns}`] && this.utils && 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 && this.i18nFormat.addLookupKeys) {\n this.i18nFormat.addLookupKeys(finalKeys, key, code, ns, options);\n } else {\n let pluralSuffix;\n if (needsPluralHandling) pluralSuffix = this.pluralResolver.getSuffix(code, options.count, options);\n const zeroSuffix = `${this.options.pluralSeparator}zero`;\n const ordinalPrefix = `${this.options.pluralSeparator}ordinal${this.options.pluralSeparator}`;\n if (needsPluralHandling) {\n finalKeys.push(key + pluralSuffix);\n if (options.ordinal && pluralSuffix.indexOf(ordinalPrefix) === 0) {\n finalKeys.push(key + pluralSuffix.replace(ordinalPrefix, this.options.pluralSeparator));\n }\n if (needsZeroSuffixLookup) {\n finalKeys.push(key + zeroSuffix);\n }\n }\n if (needsContextHandling) {\n const contextKey = `${key}${this.options.contextSeparator}${options.context}`;\n finalKeys.push(contextKey);\n if (needsPluralHandling) {\n finalKeys.push(contextKey + pluralSuffix);\n if (options.ordinal && pluralSuffix.indexOf(ordinalPrefix) === 0) {\n finalKeys.push(contextKey + pluralSuffix.replace(ordinalPrefix, this.options.pluralSeparator));\n }\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, options);\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) {\n let options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n if (this.i18nFormat && this.i18nFormat.getResource) return this.i18nFormat.getResource(code, ns, key, options);\n return this.resourceStore.getResource(code, ns, key, options);\n }\n getUsedParamsDetails() {\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\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\nconst capitalize = string => string.charAt(0).toUpperCase() + string.slice(1);\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 if (typeof Intl !== 'undefined' && typeof Intl.getCanonicalLocales !== 'undefined') {\n try {\n let formattedCode = Intl.getCanonicalLocales(code)[0];\n if (formattedCode && this.options.lowerCaseLng) {\n formattedCode = formattedCode.toLowerCase();\n }\n if (formattedCode) return formattedCode;\n } catch (e) {}\n }\n const specialCases = ['hans', 'hant', 'latn', 'cyrl', 'cans', 'mong', 'arab'];\n let p = code.split('-');\n if (this.options.lowerCaseLng) {\n p = p.map(part => part.toLowerCase());\n } else if (p.length === 2) {\n p[0] = p[0].toLowerCase();\n p[1] = p[1].toUpperCase();\n if (specialCases.indexOf(p[1].toLowerCase()) > -1) p[1] = capitalize(p[1].toLowerCase());\n } else if (p.length === 3) {\n p[0] = p[0].toLowerCase();\n if (p[1].length === 2) p[1] = p[1].toUpperCase();\n if (p[0] !== 'sgn' && p[2].length === 2) p[2] = p[2].toUpperCase();\n if (specialCases.indexOf(p[1].toLowerCase()) > -1) p[1] = capitalize(p[1].toLowerCase());\n if (specialCases.indexOf(p[2].toLowerCase()) > -1) p[2] = capitalize(p[2].toLowerCase());\n }\n return p.join('-');\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 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 || 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\nlet sets = [{\n lngs: ['ach', 'ak', 'am', 'arn', 'br', 'fil', 'gun', 'ln', 'mfe', 'mg', 'mi', 'oc', 'pt', 'pt-BR', 'tg', 'tl', 'ti', 'tr', 'uz', 'wa'],\n nr: [1, 2],\n fc: 1\n}, {\n lngs: ['af', 'an', 'ast', 'az', 'bg', 'bn', 'ca', 'da', 'de', 'dev', 'el', 'en', 'eo', 'es', 'et', 'eu', 'fi', 'fo', 'fur', 'fy', 'gl', 'gu', 'ha', 'hi', 'hu', 'hy', 'ia', 'it', 'kk', 'kn', 'ku', 'lb', 'mai', 'ml', 'mn', 'mr', 'nah', 'nap', 'nb', 'ne', 'nl', 'nn', 'no', 'nso', 'pa', 'pap', 'pms', 'ps', 'pt-PT', 'rm', 'sco', 'se', 'si', 'so', 'son', 'sq', 'sv', 'sw', 'ta', 'te', 'tk', 'ur', 'yo'],\n nr: [1, 2],\n fc: 2\n}, {\n lngs: ['ay', 'bo', 'cgg', 'fa', 'ht', 'id', 'ja', 'jbo', 'ka', 'km', 'ko', 'ky', 'lo', 'ms', 'sah', 'su', 'th', 'tt', 'ug', 'vi', 'wo', 'zh'],\n nr: [1],\n fc: 3\n}, {\n lngs: ['be', 'bs', 'cnr', 'dz', 'hr', 'ru', 'sr', 'uk'],\n nr: [1, 2, 5],\n fc: 4\n}, {\n lngs: ['ar'],\n nr: [0, 1, 2, 3, 11, 100],\n fc: 5\n}, {\n lngs: ['cs', 'sk'],\n nr: [1, 2, 5],\n fc: 6\n}, {\n lngs: ['csb', 'pl'],\n nr: [1, 2, 5],\n fc: 7\n}, {\n lngs: ['cy'],\n nr: [1, 2, 3, 8],\n fc: 8\n}, {\n lngs: ['fr'],\n nr: [1, 2],\n fc: 9\n}, {\n lngs: ['ga'],\n nr: [1, 2, 3, 7, 11],\n fc: 10\n}, {\n lngs: ['gd'],\n nr: [1, 2, 3, 20],\n fc: 11\n}, {\n lngs: ['is'],\n nr: [1, 2],\n fc: 12\n}, {\n lngs: ['jv'],\n nr: [0, 1],\n fc: 13\n}, {\n lngs: ['kw'],\n nr: [1, 2, 3, 4],\n fc: 14\n}, {\n lngs: ['lt'],\n nr: [1, 2, 10],\n fc: 15\n}, {\n lngs: ['lv'],\n nr: [1, 2, 0],\n fc: 16\n}, {\n lngs: ['mk'],\n nr: [1, 2],\n fc: 17\n}, {\n lngs: ['mnk'],\n nr: [0, 1, 2],\n fc: 18\n}, {\n lngs: ['mt'],\n nr: [1, 2, 11, 20],\n fc: 19\n}, {\n lngs: ['or'],\n nr: [2, 1],\n fc: 2\n}, {\n lngs: ['ro'],\n nr: [1, 2, 20],\n fc: 20\n}, {\n lngs: ['sl'],\n nr: [5, 1, 2, 3],\n fc: 21\n}, {\n lngs: ['he', 'iw'],\n nr: [1, 2, 20, 21],\n fc: 22\n}];\nlet _rulesPluralsTypes = {\n 1: n => Number(n > 1),\n 2: n => Number(n != 1),\n 3: n => 0,\n 4: n => Number(n % 10 == 1 && n % 100 != 11 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2),\n 5: n => Number(n == 0 ? 0 : n == 1 ? 1 : n == 2 ? 2 : n % 100 >= 3 && n % 100 <= 10 ? 3 : n % 100 >= 11 ? 4 : 5),\n 6: n => Number(n == 1 ? 0 : n >= 2 && n <= 4 ? 1 : 2),\n 7: n => Number(n == 1 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2),\n 8: n => Number(n == 1 ? 0 : n == 2 ? 1 : n != 8 && n != 11 ? 2 : 3),\n 9: n => Number(n >= 2),\n 10: n => Number(n == 1 ? 0 : n == 2 ? 1 : n < 7 ? 2 : n < 11 ? 3 : 4),\n 11: n => Number(n == 1 || n == 11 ? 0 : n == 2 || n == 12 ? 1 : n > 2 && n < 20 ? 2 : 3),\n 12: n => Number(n % 10 != 1 || n % 100 == 11),\n 13: n => Number(n !== 0),\n 14: n => Number(n == 1 ? 0 : n == 2 ? 1 : n == 3 ? 2 : 3),\n 15: n => Number(n % 10 == 1 && n % 100 != 11 ? 0 : n % 10 >= 2 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2),\n 16: n => Number(n % 10 == 1 && n % 100 != 11 ? 0 : n !== 0 ? 1 : 2),\n 17: n => Number(n == 1 || n % 10 == 1 && n % 100 != 11 ? 0 : 1),\n 18: n => Number(n == 0 ? 0 : n == 1 ? 1 : 2),\n 19: n => Number(n == 1 ? 0 : n == 0 || n % 100 > 1 && n % 100 < 11 ? 1 : n % 100 > 10 && n % 100 < 20 ? 2 : 3),\n 20: n => Number(n == 1 ? 0 : n == 0 || n % 100 > 0 && n % 100 < 20 ? 1 : 2),\n 21: n => Number(n % 100 == 1 ? 1 : n % 100 == 2 ? 2 : n % 100 == 3 || n % 100 == 4 ? 3 : 0),\n 22: n => Number(n == 1 ? 0 : n == 2 ? 1 : (n < 0 || n > 10) && n % 10 == 0 ? 2 : 3)\n};\nconst nonIntlVersions = ['v1', 'v2', 'v3'];\nconst intlVersions = ['v4'];\nconst suffixesOrder = {\n zero: 0,\n one: 1,\n two: 2,\n few: 3,\n many: 4,\n other: 5\n};\nconst createRules = () => {\n const rules = {};\n sets.forEach(set => {\n set.lngs.forEach(l => {\n rules[l] = {\n numbers: set.nr,\n plurals: _rulesPluralsTypes[set.fc]\n };\n });\n });\n return rules;\n};\nclass PluralResolver {\n constructor(languageUtils) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n this.languageUtils = languageUtils;\n this.options = options;\n this.logger = baseLogger.create('pluralResolver');\n if ((!this.options.compatibilityJSON || intlVersions.includes(this.options.compatibilityJSON)) && (typeof Intl === 'undefined' || !Intl.PluralRules)) {\n this.options.compatibilityJSON = 'v3';\n this.logger.error('Your environment seems not to be Intl API compatible, use an Intl.PluralRules polyfill. Will fallback to the compatibilityJSON v3 format handling.');\n }\n this.rules = createRules();\n this.pluralRulesCache = {};\n }\n addRule(lng, obj) {\n this.rules[lng] = obj;\n }\n clearCache() {\n this.pluralRulesCache = {};\n }\n getRule(code) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n if (this.shouldUseIntlApi()) {\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 (!code.match(/-|_/)) return;\n const lngPart = this.languageUtils.getLanguagePartFromCode(code);\n rule = this.getRule(lngPart, options);\n }\n this.pluralRulesCache[cacheKey] = rule;\n return rule;\n }\n return this.rules[code] || this.rules[this.languageUtils.getLanguagePartFromCode(code)];\n }\n needsPlural(code) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n const rule = this.getRule(code, options);\n if (this.shouldUseIntlApi()) {\n return rule && rule.resolvedOptions().pluralCategories.length > 1;\n }\n return rule && rule.numbers.length > 1;\n }\n getPluralFormsOfKey(code, key) {\n let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n return this.getSuffixes(code, options).map(suffix => `${key}${suffix}`);\n }\n getSuffixes(code) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n const rule = this.getRule(code, options);\n if (!rule) {\n return [];\n }\n if (this.shouldUseIntlApi()) {\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 return rule.numbers.map(number => this.getSuffix(code, number, options));\n }\n getSuffix(code, count) {\n let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n const rule = this.getRule(code, options);\n if (rule) {\n if (this.shouldUseIntlApi()) {\n return `${this.options.prepend}${options.ordinal ? `ordinal${this.options.prepend}` : ''}${rule.select(count)}`;\n }\n return this.getSuffixRetroCompatible(rule, count);\n }\n this.logger.warn(`no plural rule found for: ${code}`);\n return '';\n }\n getSuffixRetroCompatible(rule, count) {\n const idx = rule.noAbs ? rule.plurals(count) : rule.plurals(Math.abs(count));\n let suffix = rule.numbers[idx];\n if (this.options.simplifyPluralSuffix && rule.numbers.length === 2 && rule.numbers[0] === 1) {\n if (suffix === 2) {\n suffix = 'plural';\n } else if (suffix === 1) {\n suffix = '';\n }\n }\n const returnSuffix = () => this.options.prepend && suffix.toString() ? this.options.prepend + suffix.toString() : suffix.toString();\n if (this.options.compatibilityJSON === 'v1') {\n if (suffix === 1) return '';\n if (typeof suffix === 'number') return `_plural_${suffix.toString()}`;\n return returnSuffix();\n } else if (this.options.compatibilityJSON === 'v2') {\n return returnSuffix();\n } else if (this.options.simplifyPluralSuffix && rule.numbers.length === 2 && rule.numbers[0] === 1) {\n return returnSuffix();\n }\n return this.options.prepend && idx.toString() ? this.options.prepend + idx.toString() : idx.toString();\n }\n shouldUseIntlApi() {\n return !nonIntlVersions.includes(this.options.compatibilityJSON);\n }\n}\n\nconst deepFindWithDefaults = function (data, defaultData, key) {\n let keySeparator = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : '.';\n let ignoreJSONStructure = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 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() {\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n this.logger = baseLogger.create('interpolator');\n this.options = options;\n this.format = options.interpolation && options.interpolation.format || (value => value);\n this.init(options);\n }\n init() {\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\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 && 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 && options.missingInterpolationHandler || this.options.missingInterpolationHandler;\n const skipOnVariables = options && options.interpolation && 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) {\n let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\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 && matchedSingleQuotes.length % 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 let doReduce = false;\n if (match[0].indexOf(this.formatSeparator) !== -1 && !/{.*}/.test(match[1])) {\n const r = match[1].split(this.formatSeparator).map(elem => elem.trim());\n match[1] = r.shift();\n formatters = r;\n doReduce = true;\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 (doReduce) {\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 (val, lng, options) => {\n let optForCache = options;\n if (options && options.interpolationkey && options.formatParams && options.formatParams[options.interpolationkey] && options[options.interpolationkey]) {\n optForCache = {\n ...optForCache,\n [options.interpolationkey]: undefined\n };\n }\n const key = lng + JSON.stringify(optForCache);\n let formatter = cache[key];\n if (!formatter) {\n formatter = fn(getCleanedCode(lng), options);\n cache[key] = formatter;\n }\n return formatter(val);\n };\n};\nclass Formatter {\n constructor() {\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n this.logger = baseLogger.create('formatter');\n this.options = options;\n this.formats = {\n number: createCachedFormatter((lng, opt) => {\n const formatter = new Intl.NumberFormat(lng, {\n ...opt\n });\n return val => formatter.format(val);\n }),\n currency: createCachedFormatter((lng, opt) => {\n const formatter = new Intl.NumberFormat(lng, {\n ...opt,\n style: 'currency'\n });\n return val => formatter.format(val);\n }),\n datetime: createCachedFormatter((lng, opt) => {\n const formatter = new Intl.DateTimeFormat(lng, {\n ...opt\n });\n return val => formatter.format(val);\n }),\n relativetime: createCachedFormatter((lng, opt) => {\n const formatter = new Intl.RelativeTimeFormat(lng, {\n ...opt\n });\n return val => formatter.format(val, opt.range || 'day');\n }),\n list: createCachedFormatter((lng, opt) => {\n const formatter = new Intl.ListFormat(lng, {\n ...opt\n });\n return val => formatter.format(val);\n })\n };\n this.init(options);\n }\n init(services) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n interpolation: {}\n };\n this.formatSeparator = options.interpolation.formatSeparator || ',';\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) {\n let options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\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 && options.formatParams && 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) {\n let options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\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 if (this.backend && this.backend.init) {\n this.backend.init(services, options.backend, options);\n }\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) {\n let tried = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;\n let wait = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : this.retryTimeout;\n let callback = arguments.length > 5 ? arguments[5] : undefined;\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) {\n let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n let callback = arguments.length > 3 ? arguments[3] : undefined;\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) {\n let prefix = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\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) {\n let options = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : {};\n let clb = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : () => {};\n if (this.services.utils && 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 && 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 initImmediate: 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});\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 && options.supportedLngs.indexOf('cimode') < 0) {\n options.supportedLngs = options.supportedLngs.concat(['cimode']);\n }\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() {\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n let callback = arguments.length > 1 ? arguments[1] : undefined;\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.initImmediate) {\n this.init(options, callback);\n return this;\n }\n setTimeout(() => {\n this.init(options, callback);\n }, 0);\n }\n }\n init() {\n var _this = this;\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n let callback = arguments.length > 1 ? arguments[1] : undefined;\n this.isInitializing = true;\n if (typeof options === 'function') {\n callback = options;\n options = {};\n }\n if (!options.defaultNS && options.defaultNS !== false && 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 if (this.options.compatibilityAPI !== 'v1') {\n this.options.interpolation = {\n ...defOpts.interpolation,\n ...this.options.interpolation\n };\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 if (typeof Intl !== 'undefined') {\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 compatibilityJSON: this.options.compatibilityJSON,\n simplifyPluralSuffix: this.options.simplifyPluralSuffix\n });\n if (formatter && (!this.options.interpolation.format || this.options.interpolation.format === defOpts.interpolation.format)) {\n s.formatter = createClassOnDemand(formatter);\n 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('*', function (event) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\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('*', function (event) {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\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] = function () {\n return _this.store[fcName](...arguments);\n };\n });\n const storeApiChained = ['addResource', 'addResources', 'addResourceBundle', 'removeResourceBundle'];\n storeApiChained.forEach(fcName => {\n this[fcName] = function () {\n _this.store[fcName](...arguments);\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.options.compatibilityAPI !== 'v1' && !this.isInitialized) return finish(null, this.t.bind(this));\n this.changeLanguage(this.options.lng, finish);\n };\n if (this.options.resources || !this.options.initImmediate) {\n load();\n } else {\n setTimeout(load, 0);\n }\n return deferred;\n }\n loadResources(language) {\n let callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 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 && 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 if (this.options.preload) {\n this.options.preload.forEach(l => append(l));\n }\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 }\n changeLanguage(lng, callback) {\n var _this2 = this;\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 setLngProps(l);\n this.translator.changeLanguage(l);\n this.isLanguageChangingTo = undefined;\n this.emit('languageChanged', l);\n this.logger.log('languageChanged', l);\n } else {\n this.isLanguageChangingTo = undefined;\n }\n deferred.resolve(function () {\n return _this2.t(...arguments);\n });\n if (callback) callback(err, function () {\n return _this2.t(...arguments);\n });\n };\n const setLng = lngs => {\n if (!lng && !lngs && this.services.languageDetector) lngs = [];\n const l = isString(lngs) ? lngs : this.services.languageUtils.getBestMatchFromCodes(lngs);\n if (l) {\n if (!this.language) {\n setLngProps(l);\n }\n if (!this.translator.language) this.translator.changeLanguage(l);\n if (this.services.languageDetector && this.services.languageDetector.cacheUserLanguage) 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 var _this3 = this;\n const fixedT = function (key, opts) {\n let options;\n if (typeof opts !== 'object') {\n for (var _len3 = arguments.length, rest = new Array(_len3 > 2 ? _len3 - 2 : 0), _key3 = 2; _key3 < _len3; _key3++) {\n rest[_key3 - 2] = arguments[_key3];\n }\n options = _this3.options.overloadTranslationOptionHandler([key, opts].concat(rest));\n } else {\n options = {\n ...opts\n };\n }\n options.lng = options.lng || fixedT.lng;\n options.lngs = options.lngs || fixedT.lngs;\n options.ns = options.ns || fixedT.ns;\n if (options.keyPrefix !== '') options.keyPrefix = options.keyPrefix || keyPrefix || fixedT.keyPrefix;\n const keySeparator = _this3.options.keySeparator || '.';\n let resultKey;\n if (options.keyPrefix && Array.isArray(key)) {\n resultKey = key.map(k => `${options.keyPrefix}${keySeparator}${k}`);\n } else {\n resultKey = options.keyPrefix ? `${options.keyPrefix}${keySeparator}${key}` : key;\n }\n return _this3.t(resultKey, options);\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() {\n return this.translator && this.translator.translate(...arguments);\n }\n exists() {\n return this.translator && this.translator.exists(...arguments);\n }\n setDefaultNamespace(ns) {\n this.options.defaultNS = ns;\n }\n hasLoadedNamespace(ns) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\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 && this.languages.length > 0 ? this.languages[0] : this.language);\n if (!lng) return 'rtl';\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 && this.services.languageUtils || new LanguageUtil(get());\n return rtlLngs.indexOf(languageUtils.getLanguagePartFromCode(lng)) > -1 || lng.toLowerCase().indexOf('-arab') > 1 ? 'rtl' : 'ltr';\n }\n static createInstance() {\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n let callback = arguments.length > 1 ? arguments[1] : undefined;\n return new I18n(options, callback);\n }\n cloneInstance() {\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n let callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 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 clone.store = new ResourceStore(this.store.data, mergedOptions);\n clone.services.resourceStore = clone.store;\n }\n clone.translator = new Translator(clone.services, mergedOptions);\n clone.translator.on('*', function (event) {\n for (var _len4 = arguments.length, args = new Array(_len4 > 1 ? _len4 - 1 : 0), _key4 = 1; _key4 < _len4; _key4++) {\n args[_key4 - 1] = arguments[_key4];\n }\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\"\r\nimport { initReactI18next } from \"react-i18next\"\r\n\r\nimport { \r\n messengerList_EN,\r\n messengerList_PT,\r\n messengerMessages_EN,\r\n messengerMessages_PT,\r\n newFormChat_EN, \r\n newFormChat_PT \r\n} from \"./locales\"\r\n\r\n\r\nconst resources = makeResources()\r\nfunction makeResources() {\r\n return {\r\n en: { \r\n newFormChat: newFormChat_EN,\r\n messengerMessages: messengerMessages_EN,\r\n messengerList: messengerList_EN\r\n },\r\n pt: { \r\n newFormChat: newFormChat_PT,\r\n messengerMessages: messengerMessages_PT,\r\n messengerList: messengerList_PT\r\n }\r\n }\r\n}\r\n\r\ni18n.use(initReactI18next).init({\r\n resources,\r\n lng: \"en\",\r\n fallbackLng: \"en\",\r\n interpolation: {\r\n escapeValue: false\r\n }\r\n})\r\n\r\nexport default i18n\r\n\r\nexport function setLanguage(lang: string) {\r\n i18n.changeLanguage(lang)\r\n}\r\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","console","warn","_len","_key","alreadyWarned","_len2","_key2","loadedClb","i18n","cb","isInitialized","initialized","setTimeout","off","on","loadNamespaces","ns","loadLanguages","lng","indexOf","oldI18nextHasLoadedNamespace","languages","fallbackLng","lastLng","loadNotPending","loadState","services","backendConnector","state","bindI18n","backend","isLanguageChangingTo","hasResourceBundle","resources","partialBundledLanguages","hasLoadedNamespace","isNewerI18next","ignoreJSONStructure","precheck","i18nInstance","matchHtmlEntity","htmlEntities","unescapeHtmlEntity","defaultOptions","bindI18nStore","transEmptyNodeValue","transSupportBasicHtmlNodes","transWrapTextNodes","transKeepBasicHtmlNodesFor","useSuspense","text","initReactI18next","instance","setDefaults","react","setI18n","ReportNamespaces","constructor","usedNamespaces","addUsedNamespaces","namespaces","getUsedNamespaces","keys","usePrevious","ignore","ref","useRef","useEffect","props","i18nFromProps","i18nFromContext","defaultNS","defaultNSFromContext","reportNamespaces","notReadyT","optsOrDefaultValue","defaultValue","isArray","retNotReady","ready","wait","i18nOptions","keyPrefix","initializedStoreOnce","every","getT","getFixedT","nsMode","setT","useState","joinedNS","previousJoinedNS","isMounted","boundReset","store","isInitial","ret","Promise","resolve","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","useMemo","status","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","useCallback","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","rest","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","isString","defer","res","rej","promise","makeString","object","lastOfPathSeparatorRegExp","cleanKey","canNotTraverseDeeper","getLastOfPath","path","Empty","stack","stackIndex","setPath","newValue","last","getPath","getPathWithDefaults","defaultData","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","code","consoleLogger","log","output","Logger","concreteLogger","prefix","logger","debug","forward","_len3","_key3","deprecate","_len4","_key4","lvl","debugOnly","moduleName","baseLogger","EventEmitter","observers","events","listener","numListeners","emit","_ref","numTimesAdded","_ref2","ResourceStore","super","addNamespaces","removeNamespaces","getResource","addResource","silent","addResources","addResourceBundle","deep","skipCopy","removeResourceBundle","getResourceBundle","compatibilityAPI","getDataByLanguage","hasLanguageSomeTranslations","postProcessor","processors","addPostProcessor","handle","translator","processor","process","checkedLoadedFor","Translator","copy","changeLanguage","language","exists","interpolation","resolved","extractFromKey","nsSeparator","wouldCheckForNsInKey","seemsNaturalLanguage","userDefinedKeySeparator","userDefinedNsSeparator","possibleChars","matched","ki","looksLikeObjectPath","interpolator","nestingRegexp","parts","translate","lastKey","overloadTranslationOptionHandler","returnDetails","namespace","appendNamespaceToCIMode","usedKey","exactUsedKey","usedLng","usedNS","usedParams","getUsedParamsDetails","resUsedKey","resExactUsedKey","resType","joinArrays","handleAsObjectInI18nFormat","i18nFormat","handleAsObject","extendTranslation","usedDefault","needsPluralHandling","hasDefaultValue","defaultValueSuffix","pluralResolver","getSuffix","defaultValueSuffixOrdinalFallback","needsZeroSuffixLookup","shouldUseIntlApi","pluralSeparator","isValidLookup","resForMissing","missingKeyNoValueFallbackToKey","updateMissing","fk","lngs","fallbackLngs","languageUtils","getFallbackCodes","saveMissingTo","toResolveHierarchy","send","specificDefaultValue","defaultForMissing","missingKeyHandler","saveMissing","saveMissingPlurals","suffixes","getSuffixes","suffix","appendNamespaceToMissingKey","parseMissingKeyHandler","returnObjects","returnedObjectHandler","resTypeIsArray","newKeyToUse","deepKey","_this","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","capitalize","string","charAt","LanguageUtil","supportedLngs","getScriptPartFromCode","formatLanguageCode","getLanguagePartFromCode","getCanonicalLocales","formattedCode","lowerCaseLng","specialCases","part","cleanCode","isSupportedCode","load","nonExplicitSupportedLngs","getBestMatchFromCodes","cleanedLng","lngOnly","supportedLng","fallbacks","fallbackCode","fallbackCodes","addCode","fc","sets","nr","_rulesPluralsTypes","nonIntlVersions","intlVersions","suffixesOrder","zero","one","two","few","many","other","PluralResolver","compatibilityJSON","PluralRules","rules","numbers","plurals","createRules","pluralRulesCache","addRule","clearCache","getRule","cleanedCode","cacheKey","rule","err","lngPart","needsPlural","pluralCategories","getPluralFormsOfKey","sort","pluralCategory1","pluralCategory2","pluralCategory","prepend","number","select","getSuffixRetroCompatible","noAbs","simplifyPluralSuffix","returnSuffix","deepFindWithDefaults","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","doReduce","elem","reduce","createCachedFormatter","fn","cache","optForCache","formatParams","formatter","Formatter","opt","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","opts","initImmediate","preload","tDescription","transformOptions","noop","I18n","inst","external","getOwnPropertyNames","getPrototypeOf","isClone","isInitializing","defOpts","createClassOnDemand","ClassOrObject","lu","languageDetector","detection","deferred","finish","loadResources","usedCallback","resolvedLanguage","setResolvedLanguage","reloadResources","use","li","lngInLngs","_this2","setLngProps","setLng","cacheUserLanguage","async","detect","_this3","fixedT","resultKey","setDefaultNamespace","preResult","preloaded","newLngs","dir","cloneInstance","forkResourceStore","mergedOptions","createInstance","newFormChat","messengerMessages","messengerList","pt","setLanguage","lang"],"sourceRoot":""}