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 +1 @@
1
- {"version":3,"file":"agx-chat.esm.js","mappings":"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","sources":["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/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/nonce","webpack://agx-chat-web/./src/styles/index.less?e247","webpack://agx-chat-web/external module \"react\"","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":["// 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","// 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))","__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","var x = y => { var x = {}; __webpack_require__.d(x, y); return x; }\nvar y = x => () => x\nconst __WEBPACK_NAMESPACE_OBJECT__ = x({ [\"Fragment\"]: () => __WEBPACK_EXTERNAL_MODULE_react__.Fragment, [\"createContext\"]: () => __WEBPACK_EXTERNAL_MODULE_react__.createContext, [\"createElement\"]: () => __WEBPACK_EXTERNAL_MODULE_react__.createElement, [\"default\"]: () => __WEBPACK_EXTERNAL_MODULE_react__[\"default\"], [\"useCallback\"]: () => __WEBPACK_EXTERNAL_MODULE_react__.useCallback, [\"useContext\"]: () => __WEBPACK_EXTERNAL_MODULE_react__.useContext, [\"useEffect\"]: () => __WEBPACK_EXTERNAL_MODULE_react__.useEffect, [\"useMemo\"]: () => __WEBPACK_EXTERNAL_MODULE_react__.useMemo, [\"useRef\"]: () => __WEBPACK_EXTERNAL_MODULE_react__.useRef, [\"useState\"]: () => __WEBPACK_EXTERNAL_MODULE_react__.useState });","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":["___CSS_LOADER_EXPORT___","push","module","id","exports","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","nc","__WEBPACK_EXTERNAL_MODULE_react__","Fragment","createContext","useCallback","useContext","useEffect","useMemo","useRef","useState","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","children","theme","config","Provider","context","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","props","i18nFromProps","i18nFromContext","defaultNS","defaultNSFromContext","reportNamespaces","notReadyT","optsOrDefaultValue","defaultValue","isArray","retNotReady","ready","wait","i18nOptions","keyPrefix","initializedStoreOnce","every","getT","getFixedT","nsMode","setT","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","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","root","reverse","rootMargin","infiniteElement","setInfiniteElement","currentElement","observer","IntersectionObserver","entries","isIntersecting","threshold","observe","unobserve","ListLoading","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","Symbol","iterator","op","TypeError","pop","__spreadArray","to","from","pack","ar","xmlnsXlink","x1","x2","y1","y2","gradientUnits","offset","stopColor","xlinkHref","fileType","b64","file","onClose","fileInfo","setFileInfo","setB64","reader","FileReader","readAsDataURL","onload","onerror","error","getBase64","insertAt","getElementsByTagName","insertBefore","styleInject","ReactSimpleImageViewer","_a","currentIndex","setCurrentIndex","changeImage","delta","nextIndex","closeOnClickOutside","checkId","checkClass","contains","stopPropagation","handleKeyDown","handleWheel","wheelDeltaY","addEventListener","disableScroll","removeEventListener","backgroundStyle","closeComponent","leftArrowComponent","rightArrowComponent","formatFileSize","size","toFixed","location","toUpperCase","fileName","originalname","filePages","pages","fileSize","mimetype","href","rel","MessageImage","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":""}
1
+ {"version":3,"file":"agx-chat.esm.js","mappings":"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","sources":["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/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/external module \"dayjs\"","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/nonce","webpack://agx-chat-web/./src/styles/index.less?e247","webpack://agx-chat-web/external module \"react\"","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/external module \"react-i18next\"","webpack://agx-chat-web/./src/app/Messenger/components/MessengerAvatar/MessengerAvatar.tsx","webpack://agx-chat-web/./src/app/Messenger/icons/TimerIcon.tsx","webpack://agx-chat-web/./src/app/Messenger/views/MessengerListItem.tsx","webpack://agx-chat-web/./src/app/Messenger/components/ChatTabs/ChatTabs.tsx","webpack://agx-chat-web/./src/app/Messenger/components/ChatButton/ChatButton.tsx","webpack://agx-chat-web/./src/app/Messenger/icons/SearchIcon.tsx","webpack://agx-chat-web/./src/app/Messenger/components/SearchInput/SearchInput.tsx","webpack://agx-chat-web/./src/app/Messenger/icons/EmptyIcon.tsx","webpack://agx-chat-web/./src/app/Messenger/components/InfiniteScroll/InfiniteScroll.tsx","webpack://agx-chat-web/./src/app/Messenger/views/MessengerList.tsx","webpack://agx-chat-web/./node_modules/tslib/tslib.es6.js","webpack://agx-chat-web/./src/app/Messenger/icons/DOCFileIcon.tsx","webpack://agx-chat-web/./src/app/Messenger/icons/PDFFileIcon.tsx","webpack://agx-chat-web/./src/app/Messenger/icons/CSVFileIcon.tsx","webpack://agx-chat-web/./src/app/Messenger/icons/MP4FileIcon.tsx","webpack://agx-chat-web/./src/app/Messenger/components/RenderFileIcon/RenderFileIcon.tsx","webpack://agx-chat-web/./src/app/Messenger/components/ImagesContainer/ImagesContainer.tsx","webpack://agx-chat-web/./node_modules/react-simple-image-viewer/dist/index.esm.js","webpack://agx-chat-web/./src/app/Messenger/icons/DownloadMinimalistIcon.tsx","webpack://agx-chat-web/./src/app/Messenger/components/DocMessage/DocMessage.tsx","webpack://agx-chat-web/./src/app/Messenger/components/IncomingMessage/IncomingMessage.tsx","webpack://agx-chat-web/./src/app/Messenger/icons/ReadIcon.tsx","webpack://agx-chat-web/external module \"react-simple-image-viewer\"","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/external module \"i18next\"","webpack://agx-chat-web/./src/app/i18n/index.ts","webpack://agx-chat-web/./src/app/ChatProvider/ChatProvider.tsx"],"sourcesContent":["// 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(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\"","var x = y => { var x = {}; __webpack_require__.d(x, y); return x; }\nvar y = x => () => x\nmodule.exports = __WEBPACK_EXTERNAL_MODULE_dayjs__;","// 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))","__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","var x = y => { var x = {}; __webpack_require__.d(x, y); return x; }\nvar y = x => () => x\nconst __WEBPACK_NAMESPACE_OBJECT__ = x({ [\"Fragment\"]: () => __WEBPACK_EXTERNAL_MODULE_react__.Fragment, [\"createContext\"]: () => __WEBPACK_EXTERNAL_MODULE_react__.createContext, [\"createElement\"]: () => __WEBPACK_EXTERNAL_MODULE_react__.createElement, [\"default\"]: () => __WEBPACK_EXTERNAL_MODULE_react__[\"default\"], [\"useCallback\"]: () => __WEBPACK_EXTERNAL_MODULE_react__.useCallback, [\"useContext\"]: () => __WEBPACK_EXTERNAL_MODULE_react__.useContext, [\"useEffect\"]: () => __WEBPACK_EXTERNAL_MODULE_react__.useEffect, [\"useMemo\"]: () => __WEBPACK_EXTERNAL_MODULE_react__.useMemo, [\"useRef\"]: () => __WEBPACK_EXTERNAL_MODULE_react__.useRef, [\"useState\"]: () => __WEBPACK_EXTERNAL_MODULE_react__.useState });","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","var x = y => { var x = {}; __webpack_require__.d(x, y); return x; }\nvar y = x => () => x\nconst __WEBPACK_NAMESPACE_OBJECT__ = x({ [\"I18nextProvider\"]: () => __WEBPACK_EXTERNAL_MODULE_react_i18next_31085753__.I18nextProvider, [\"initReactI18next\"]: () => __WEBPACK_EXTERNAL_MODULE_react_i18next_31085753__.initReactI18next, [\"useTranslation\"]: () => __WEBPACK_EXTERNAL_MODULE_react_i18next_31085753__.useTranslation });","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 * as React from 'react'\r\nimport { SVGProps } from 'react'\r\n\r\nconst CSVFileIcon = (props: SVGProps<SVGSVGElement>) => (\r\n <svg\r\n xmlns='http://www.w3.org/2000/svg'\r\n width={40}\r\n height={40}\r\n viewBox='0 0 32 32'\r\n {...props}\r\n >\r\n <rect width='32' height='32' rx='5' fill='#21A366' />\r\n <text\r\n x='16'\r\n y='22'\r\n textAnchor='middle'\r\n fontSize='12'\r\n fill='#fff'\r\n fontWeight='bold'\r\n >\r\n CSV\r\n </text>\r\n </svg>\r\n)\r\n\r\nexport default CSVFileIcon\r\n","import * as React from 'react'\r\nimport { SVGProps } from 'react'\r\n\r\nconst MP4FileIcon = (props: SVGProps<SVGSVGElement>) => (\r\n <svg\r\n xmlns='http://www.w3.org/2000/svg'\r\n width={40}\r\n height={40}\r\n viewBox='0 0 32 32'\r\n {...props}\r\n >\r\n <rect width='32' height='32' rx='5' fill='#E67E22' />\r\n <text\r\n x='16'\r\n y='22'\r\n textAnchor='middle'\r\n fontSize='12'\r\n fill='#fff'\r\n fontWeight='bold'\r\n >\r\n MP4\r\n </text>\r\n </svg>\r\n)\r\n\r\nexport default MP4FileIcon\r\n","import React from 'react'\r\nimport FileDoc from '../../icons/DOCFileIcon'\r\nimport FilePdf from '../../icons/PDFFileIcon'\r\nimport CSVFileIcon from '../../icons/CSVFileIcon'\r\nimport MP4FileIcon from '../../icons/MP4FileIcon'\r\nimport { useTranslation } from 'react-i18next'\r\n\r\nconst RenderFileIcon = ({\r\n fileType,\r\n b64,\r\n}: {\r\n fileType?: string\r\n b64?: string\r\n}) => {\r\n const { t } = useTranslation('messengerMessages')\r\n\r\n if (fileType === 'application/pdf') {\r\n return <FilePdf width='40' height='40' />\r\n } else if (\r\n fileType === 'application/msword' ||\r\n fileType ===\r\n 'application/vnd.openxmlformats-officedocument.wordprocessingml.document'\r\n ) {\r\n return <FileDoc width='40' height='40' />\r\n } else if (fileType === 'text/csv') {\r\n return <CSVFileIcon width='40' height='40' />\r\n } else if (fileType === 'video/mp4') {\r\n return <MP4FileIcon width='40' height='40' />\r\n } else {\r\n return (\r\n <img\r\n alt={t('renderFileIcon.altImage')}\r\n src={b64}\r\n className='images-container__image'\r\n />\r\n )\r\n }\r\n}\r\n\r\nexport default RenderFileIcon\r\n","import React, { useEffect, useState } from 'react'\r\nimport { IImagesContainer } from 'types'\r\nimport RenderFileIcon from '../RenderFileIcon/RenderFileIcon'\r\n\r\nfunction ImagesContainer ({ file, onClose }: IImagesContainer) {\r\n const [fileInfo, setFileInfo] = useState<{ name: string; type: string }>({\r\n name: '',\r\n type: '',\r\n })\r\n\r\n const [b64, setB64] = useState<string>('')\r\n\r\n useEffect(() => {\r\n function getBase64 (file: File) {\r\n return new Promise((resolve, reject) => {\r\n const reader = new FileReader()\r\n reader.readAsDataURL(file)\r\n reader.onload = () => resolve(reader.result)\r\n reader.onerror = (error) => reject(error)\r\n })\r\n }\r\n\r\n if (file) getBase64(file).then((base64) => setB64(base64 as string))\r\n }, [file])\r\n\r\n useEffect(() => {\r\n if (file) {\r\n setFileInfo({\r\n name: file.name,\r\n type: file.type,\r\n })\r\n }\r\n }, [file])\r\n\r\n return (\r\n <div className='images-container'>\r\n <div className='images-container__close'>\r\n <button className='images-container__close--icon' onClick={onClose} />\r\n </div>\r\n\r\n <div className='images-container__container'>\r\n <div className='images-container__image'>\r\n <RenderFileIcon fileType={fileInfo.type} b64={b64} />\r\n <span className='images-container__title-img'>{fileInfo.name}</span>\r\n </div>\r\n </div>\r\n </div>\r\n )\r\n}\r\n\r\nexport default ImagesContainer\r\n","import React, { useState, useCallback, useEffect } from 'react';\n\nfunction styleInject(css, ref) {\n if ( ref === void 0 ) ref = {};\n var insertAt = ref.insertAt;\n\n if (!css || typeof document === 'undefined') { return; }\n\n var head = document.head || document.getElementsByTagName('head')[0];\n var style = document.createElement('style');\n style.type = 'text/css';\n\n if (insertAt === 'top') {\n if (head.firstChild) {\n head.insertBefore(style, head.firstChild);\n } else {\n head.appendChild(style);\n }\n } else {\n head.appendChild(style);\n }\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(document.createTextNode(css));\n }\n}\n\nvar css_248z = \".styles-module_wrapper__1I_qj {\\n z-index: 1;\\n display: flex;\\n align-items: center;\\n position: fixed;\\n padding: 0px 60px 0px 60px;\\n left: 0;\\n top: 0;\\n width: 100%;\\n height: 100%;\\n background-color: black;\\n box-sizing: border-box;\\n}\\n\\n.styles-module_content__2jwZj {\\n margin: auto;\\n padding: 0;\\n width: 90%;\\n height: 100%;\\n max-height: 100%;\\n text-align: center;\\n}\\n\\n.styles-module_slide__1zrfk {\\n height: 100%;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n}\\n\\n.styles-module_image__2hdkJ {\\n max-height: 100%;\\n max-width: 100%;\\n user-select: none;\\n -moz-user-select: none;\\n -webkit-user-select: none;\\n}\\n\\n.styles-module_close__2I1sI {\\n color: white;\\n position: absolute;\\n top: 15px;\\n right: 15px;\\n font-size: 40px;\\n font-weight: bold;\\n opacity: 0.2;\\n cursor: pointer;\\n}\\n\\n.styles-module_close__2I1sI:hover {\\n opacity: 1;\\n}\\n\\n.styles-module_navigation__1pqAE {\\n height: 80%;\\n color: white;\\n cursor: pointer;\\n position: absolute;\\n font-size: 60px;\\n line-height: 60px;\\n font-weight: bold;\\n display: flex;\\n align-items: center;\\n opacity: 0.2;\\n padding: 0 15px;\\n user-select: none;\\n -moz-user-select: none;\\n -webkit-user-select: none;\\n}\\n\\n.styles-module_navigation__1pqAE:hover {\\n opacity: 1;\\n}\\n\\n@media (hover: none) {\\n .styles-module_navigation__1pqAE:hover {\\n opacity: 0.2;\\n }\\n}\\n\\n.styles-module_prev__KqFRp {\\n left: 0;\\n}\\n\\n.styles-module_next__1uQwZ {\\n right: 0;\\n}\\n\\n@media (max-width: 900px) {\\n .styles-module_wrapper__1I_qj {\\n padding: 0;\\n }\\n}\\n\";\nvar styles = {\"wrapper\":\"styles-module_wrapper__1I_qj\",\"content\":\"styles-module_content__2jwZj\",\"slide\":\"styles-module_slide__1zrfk\",\"image\":\"styles-module_image__2hdkJ\",\"close\":\"styles-module_close__2I1sI\",\"navigation\":\"styles-module_navigation__1pqAE\",\"prev\":\"styles-module_prev__KqFRp\",\"next\":\"styles-module_next__1uQwZ\"};\nstyleInject(css_248z);\n\nconst ReactSimpleImageViewer = (props) => {\n var _a;\n const [currentIndex, setCurrentIndex] = useState((_a = props.currentIndex) !== null && _a !== void 0 ? _a : 0);\n const changeImage = useCallback((delta) => {\n let nextIndex = (currentIndex + delta) % props.src.length;\n if (nextIndex < 0)\n nextIndex = props.src.length - 1;\n setCurrentIndex(nextIndex);\n }, [currentIndex]);\n const handleClick = useCallback((event) => {\n var _a;\n if (!event.target || !props.closeOnClickOutside) {\n return;\n }\n const checkId = event.target.id === 'ReactSimpleImageViewer';\n const checkClass = event.target.classList.contains('react-simple-image-viewer__slide');\n if (checkId || checkClass) {\n event.stopPropagation();\n (_a = props.onClose) === null || _a === void 0 ? void 0 : _a.call(props);\n }\n }, [props.onClose]);\n const handleKeyDown = useCallback((event) => {\n var _a;\n if (event.key === \"Escape\") {\n (_a = props.onClose) === null || _a === void 0 ? void 0 : _a.call(props);\n }\n if ([\"ArrowLeft\", \"h\"].includes(event.key)) {\n changeImage(-1);\n }\n if ([\"ArrowRight\", \"l\"].includes(event.key)) {\n changeImage(1);\n }\n }, [props.onClose, changeImage]);\n const handleWheel = useCallback((event) => {\n if (event.wheelDeltaY > 0) {\n changeImage(-1);\n }\n else {\n changeImage(1);\n }\n }, [changeImage]);\n useEffect(() => {\n document.addEventListener(\"keydown\", handleKeyDown);\n if (!props.disableScroll) {\n document.addEventListener(\"wheel\", handleWheel);\n }\n return () => {\n document.removeEventListener(\"keydown\", handleKeyDown);\n if (!props.disableScroll) {\n document.removeEventListener(\"wheel\", handleWheel);\n }\n };\n }, [handleKeyDown, handleWheel]);\n return (React.createElement(\"div\", { id: \"ReactSimpleImageViewer\", className: `${styles.wrapper} react-simple-image-viewer__modal`, onKeyDown: handleKeyDown, onClick: handleClick, style: props.backgroundStyle },\n React.createElement(\"span\", { className: `${styles.close} react-simple-image-viewer__close`, onClick: () => { var _a; return (_a = props.onClose) === null || _a === void 0 ? void 0 : _a.call(props); } }, props.closeComponent || \"×\"),\n props.src.length > 1 && (React.createElement(\"span\", { className: `${styles.navigation} ${styles.prev} react-simple-image-viewer__previous`, onClick: () => changeImage(-1) }, props.leftArrowComponent || \"❮\")),\n props.src.length > 1 && (React.createElement(\"span\", { className: `${styles.navigation} ${styles.next} react-simple-image-viewer__next`, onClick: () => changeImage(1) }, props.rightArrowComponent || \"❯\")),\n React.createElement(\"div\", { className: `${styles.content} react-simple-image-viewer__modal-content`, onClick: handleClick },\n React.createElement(\"div\", { className: `${styles.slide} react-simple-image-viewer__slide` },\n React.createElement(\"img\", { className: styles.image, src: props.src[currentIndex], alt: \"\" })))));\n};\n\nexport { ReactSimpleImageViewer as default };\n//# sourceMappingURL=index.esm.js.map\n","import React from 'react'\r\n\r\nfunction DownloadMinimalistIcon ({\r\n width,\r\n height,\r\n color,\r\n}: {\r\n width: string\r\n height: string\r\n color: string\r\n}) {\r\n return (\r\n <svg\r\n xmlns='http://www.w3.org/2000/svg'\r\n width={width}\r\n height={height}\r\n viewBox='0 0 24 24'\r\n fill='none'\r\n >\r\n <path\r\n d='M12.5535 16.5061C12.4114 16.6615 12.2106 16.75 12 16.75C11.7894 16.75 11.5886 16.6615 11.4465 16.5061L7.44648 12.1311C7.16698 11.8254 7.18822 11.351 7.49392 11.0715C7.79963 10.792 8.27402 10.8132 8.55352 11.1189L11.25 14.0682V3C11.25 2.58579 11.5858 2.25 12 2.25C12.4142 2.25 12.75 2.58579 12.75 3V14.0682L15.4465 11.1189C15.726 10.8132 16.2004 10.792 16.5061 11.0715C16.8118 11.351 16.833 11.8254 16.5535 12.1311L12.5535 16.5061Z'\r\n fill={color}\r\n />\r\n <path\r\n d='M3.75 15C3.75 14.5858 3.41422 14.25 3 14.25C2.58579 14.25 2.25 14.5858 2.25 15V15.0549C2.24998 16.4225 2.24996 17.5248 2.36652 18.3918C2.48754 19.2919 2.74643 20.0497 3.34835 20.6516C3.95027 21.2536 4.70814 21.5125 5.60825 21.6335C6.47522 21.75 7.57754 21.75 8.94513 21.75H15.0549C16.4225 21.75 17.5248 21.75 18.3918 21.6335C19.2919 21.5125 20.0497 21.2536 20.6517 20.6516C21.2536 20.0497 21.5125 19.2919 21.6335 18.3918C21.75 17.5248 21.75 16.4225 21.75 15.0549V15C21.75 14.5858 21.4142 14.25 21 14.25C20.5858 14.25 20.25 14.5858 20.25 15C20.25 16.4354 20.2484 17.4365 20.1469 18.1919C20.0482 18.9257 19.8678 19.3142 19.591 19.591C19.3142 19.8678 18.9257 20.0482 18.1919 20.1469C17.4365 20.2484 16.4354 20.25 15 20.25H9C7.56459 20.25 6.56347 20.2484 5.80812 20.1469C5.07435 20.0482 4.68577 19.8678 4.40901 19.591C4.13225 19.3142 3.9518 18.9257 3.85315 18.1919C3.75159 17.4365 3.75 16.4354 3.75 15Z'\r\n fill={color}\r\n />\r\n <defs>\r\n <clipPath id='clip0_23_2'>\r\n <rect width='32' height='32' fill='@text-color' />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n )\r\n}\r\n\r\nexport default DownloadMinimalistIcon\r\n","import React from 'react'\r\nimport DownloadMinimalistIcon from '../../icons/DownloadMinimalistIcon'\r\nimport { IMessagesBalloon } from 'types'\r\nimport RenderFileIcon from '../RenderFileIcon/RenderFileIcon'\r\n\r\nexport function formatFileSize (size = 0) {\r\n if (size % 1 === 0) {\r\n return `${size.toFixed(0)} MB`\r\n }\r\n return `${size.toFixed(2)} MB`\r\n}\r\n\r\nfunction DocMessage ({ file }: IMessagesBalloon) {\r\n const fileType = file?.location?.split('.').pop()?.toUpperCase()\r\n const fileName = file && file.originalname\r\n const filePages = file && file.pages\r\n const fileSize = file && formatFileSize(file?.size)\r\n\r\n return (\r\n <div className='messenger__messages-row--sender'>\r\n <span>\r\n {\r\n <div className='messenger__file-card'>\r\n <div className='messenger__file-icon'>\r\n <RenderFileIcon fileType={file?.mimetype} />\r\n </div>\r\n <div className='messenger__file-details'>\r\n <p className='messenger__file-name'>{fileName}</p>\r\n <p className='messenger__file-info'>\r\n {filePages && filePages + ' página(s) •'} {fileSize} •{' '}\r\n {fileType}\r\n </p>\r\n </div>\r\n <a\r\n href={file?.location}\r\n target='_blank'\r\n rel='noopener noreferrer'\r\n className='messenger__file-download'\r\n style={{ color: 'blue' }}\r\n >\r\n <DownloadMinimalistIcon width='24' height='24' color='white' />\r\n </a>\r\n </div>\r\n }\r\n </span>\r\n </div>\r\n )\r\n}\r\n\r\nexport default DocMessage\r\n","import useTheme from '../../hooks/useThemes'\r\nimport React, { useCallback, useState } from 'react'\r\nimport { Iimages, IInconmingMessage } from 'types'\r\nimport MessengerAvatar from '../MessengerAvatar/MessengerAvatar'\r\nimport ReactSimpleImageViewer from '../../../../../node_modules/react-simple-image-viewer'\r\nimport DocMessage from '../DocMessage/DocMessage'\r\nimport { useTranslation } from 'react-i18next'\r\n\r\ninterface IMessagesWithFile {\r\n file:\r\n | Iimages\r\n | {\r\n contentType: string\r\n location: string\r\n mimetype: string\r\n originalname: string\r\n size?: number\r\n pages?: number\r\n key?: string\r\n }\r\n | undefined\r\n message: string\r\n date: string\r\n openImageViewer: (index: number) => void\r\n id: string\r\n formatDate: (date: string | Date) => string | undefined\r\n currentImage: number\r\n}\r\n\r\nexport const MessageImage = ({ ...rest }) => {\r\n const { t } = useTranslation('messengerMessages')\r\n return (\r\n <div className='messenger__message--file'>\r\n <img\r\n {...rest}\r\n width={200}\r\n height={200}\r\n alt={t('incommingMessage.messageImage')}\r\n />\r\n </div>\r\n )\r\n}\r\n\r\nconst MessageWithFile = ({\r\n file,\r\n message,\r\n date,\r\n openImageViewer,\r\n id,\r\n formatDate,\r\n currentImage,\r\n}: IMessagesWithFile) => {\r\n const isImage = (\r\n file:\r\n | {\r\n contentType: string\r\n location: string\r\n mimetype: string\r\n originalname: string\r\n size?: number\r\n pages?: number\r\n key?: string\r\n }\r\n | Iimages\r\n | undefined\r\n ): file is Iimages => {\r\n if (!file) return false\r\n if (['image/png', 'image/jpeg'].includes(file?.mimetype ?? '')) {\r\n return true\r\n }\r\n return false\r\n }\r\n\r\n return (\r\n <>\r\n {isImage(file) ? (\r\n <MessageImage\r\n src={file?.location}\r\n onClick={() => openImageViewer(currentImage)}\r\n />\r\n ) : (\r\n file && (\r\n <DocMessage\r\n file={file}\r\n message={message}\r\n date={date}\r\n read={false}\r\n id={id}\r\n formatDate={formatDate}\r\n />\r\n )\r\n )}\r\n </>\r\n )\r\n}\r\n\r\nfunction IncomingMessage ({\r\n date,\r\n message,\r\n user,\r\n hasFile,\r\n file,\r\n isSystemMessage,\r\n formatDate,\r\n id,\r\n}: IInconmingMessage) {\r\n const { theme } = useTheme()\r\n const [currentImage, setCurrentImage] = useState(0)\r\n const [isViewerOpen, setIsViewerOpen] = useState(false)\r\n\r\n const openImageViewer = useCallback((index: number) => {\r\n setCurrentImage(index)\r\n setIsViewerOpen(true)\r\n }, [])\r\n\r\n const closeImageViewer = () => {\r\n setCurrentImage(0)\r\n setIsViewerOpen(false)\r\n }\r\n\r\n return (\r\n <div className='messenger__messages-row--received' id={id}>\r\n {(user.avatar || user.name) && !isSystemMessage && (\r\n <div className='messenger__message-avatar mr-2'>\r\n <MessengerAvatar image={user.avatar}>\r\n {user.name.slice(0, 1)}\r\n </MessengerAvatar>\r\n </div>\r\n )}\r\n\r\n <div\r\n className='messenger__messages-received'\r\n style={{ background: theme?.messengerIncomerColor }}\r\n >\r\n {!isSystemMessage && (\r\n <p className='messenger__message-title'>{user.name}</p>\r\n )}\r\n\r\n <span>\r\n {hasFile && (\r\n <MessageWithFile\r\n file={file}\r\n message={message}\r\n date={date}\r\n openImageViewer={openImageViewer}\r\n id={id}\r\n formatDate={formatDate}\r\n currentImage={currentImage}\r\n />\r\n )}\r\n {message && <p className='messenger__message'>{message}</p>}\r\n <p className='messenger__message--date'>\r\n {formatDate(date) ?? new Date(date).toLocaleString()}\r\n </p>\r\n </span>\r\n </div>\r\n {file && isViewerOpen && (\r\n <ReactSimpleImageViewer\r\n src={[file.location]}\r\n currentIndex={0}\r\n disableScroll={false}\r\n closeOnClickOutside={true}\r\n onClose={closeImageViewer}\r\n />\r\n )}\r\n </div>\r\n )\r\n}\r\n\r\nexport default IncomingMessage\r\n","import React from 'react'\r\n\r\nexport default function ReadIcon ({ fill }: { fill: string }) {\r\n return (\r\n <svg\r\n width='15'\r\n height='15'\r\n viewBox='0 0 30 24'\r\n fill='none'\r\n xmlns='http://www.w3.org/2000/svg'\r\n >\r\n <path\r\n d='M29.2857 0.5H26.7893C26.4393 0.5 26.1071 0.660714 25.8929 0.935714L11.1679 19.5893L4.10714 10.6429C4.00033 10.5072 3.86419 10.3976 3.70893 10.3221C3.55367 10.2467 3.38334 10.2074 3.21071 10.2071H0.714286C0.475 10.2071 0.342857 10.4821 0.489286 10.6679L10.2714 23.0607C10.7286 23.6393 11.6071 23.6393 12.0679 23.0607L29.5107 0.957143C29.6571 0.775 29.525 0.5 29.2857 0.5V0.5Z'\r\n fill={fill}\r\n />\r\n </svg>\r\n )\r\n}\r\n","var x = y => { var x = {}; __webpack_require__.d(x, y); return x; }\nvar y = x => () => x\nconst __WEBPACK_NAMESPACE_OBJECT__ = x({ [\"default\"]: () => __WEBPACK_EXTERNAL_MODULE_react_simple_image_viewer_6e6c0ca6__[\"default\"] });","import useTheme from '../../hooks/useThemes'\r\nimport React, { useCallback, useState } from 'react'\r\nimport { IMessagesBalloon } from 'types'\r\nimport ReadIcon from '../../icons/ReadIcon'\r\nimport ReactSimpleImageViewer from 'react-simple-image-viewer'\r\nimport { MessageImage } from '../IncomingMessage/IncomingMessage'\r\nimport DocMessage from '../DocMessage/DocMessage'\r\n\r\nfunction SenderMessages ({\r\n date,\r\n message,\r\n read,\r\n hasFile,\r\n file,\r\n formatDate,\r\n id,\r\n}: IMessagesBalloon) {\r\n const [currentImage, setCurrentImage] = useState(0)\r\n const [isViewerOpen, setIsViewerOpen] = useState(false)\r\n const { theme } = useTheme()\r\n\r\n const openImageViewer = useCallback((index: number) => {\r\n setCurrentImage(index)\r\n setIsViewerOpen(true)\r\n }, [])\r\n\r\n const closeImageViewer = () => {\r\n setCurrentImage(0)\r\n setIsViewerOpen(false)\r\n }\r\n\r\n const isDoc = [\r\n 'application/msword',\r\n 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',\r\n 'application/pdf',\r\n 'text/csv',\r\n 'video/mp4',\r\n ].includes(file?.mimetype ?? '')\r\n\r\n return (\r\n <div className='messenger__messages-row--sender'>\r\n <div\r\n className='messenger__messages-sender'\r\n id={id}\r\n style={{\r\n background: theme?.messengerSenderColor,\r\n color: theme?.documentMessagesTextColor,\r\n }}\r\n >\r\n <span>\r\n {hasFile &&\r\n (isDoc ? (\r\n <DocMessage\r\n date={date}\r\n message={message}\r\n read={read}\r\n file={file}\r\n formatDate={formatDate}\r\n id={id}\r\n />\r\n ) : (\r\n <MessageImage\r\n src={file?.location}\r\n onClick={() => openImageViewer(currentImage)}\r\n />\r\n ))}\r\n\r\n <p className='messenger__message'>{message}</p>\r\n <div className='messenger__message--bottom'>\r\n <p className='messenger__message--date'>\r\n {formatDate(date) ?? new Date(date).toString()}\r\n </p>\r\n <ReadIcon fill={read ? '#00efff' : 'white'} />\r\n </div>\r\n </span>\r\n </div>\r\n\r\n {file && !isDoc && isViewerOpen && (\r\n <ReactSimpleImageViewer\r\n src={[file.location]}\r\n currentIndex={0}\r\n disableScroll={false}\r\n closeOnClickOutside={true}\r\n onClose={closeImageViewer}\r\n />\r\n )}\r\n </div>\r\n )\r\n}\r\n\r\nexport default SenderMessages\r\n","import React from 'react'\r\nimport useTheme from '../../hooks/useThemes'\r\nimport { IInconmingMessage } from 'types'\r\n\r\nfunction SystemMessage ({ date, message, formatDate, id }: IInconmingMessage) {\r\n const { theme } = useTheme()\r\n\r\n return (\r\n <div className='messenger__messages-row--system' id={id}>\r\n <div\r\n className='messenger__messages-received messenger__messages-received--system'\r\n style={{ background: theme?.messengerSystemColor }}\r\n >\r\n <span>\r\n <p className='messenger__message'>{message}</p>\r\n <p className='messenger__message--date'>\r\n {formatDate(date) ?? new Date(date).toString()}\r\n </p>\r\n </span>\r\n </div>\r\n </div>\r\n )\r\n}\r\n\r\nexport default SystemMessage\r\n","import React from 'react'\r\nimport { Iimages, IMessages } from 'types'\r\nimport IncomingMessage from '../IncomingMessage/IncomingMessage'\r\nimport SenderMessages from '../SenderMessages/SenderMessages'\r\nimport SystemMessage from '../SystemMessage/SystemMessage'\r\n\r\nfunction MessageBalloon ({\r\n item,\r\n creatorId,\r\n formatDate,\r\n id,\r\n}: {\r\n item: IMessages\r\n creatorId?: string\r\n formatDate: (date: string | Date) => string | undefined\r\n id: string\r\n}) {\r\n if (item.isSystemMessage) {\r\n return (\r\n <SystemMessage\r\n formatDate={formatDate}\r\n date={item.createdAt}\r\n message={item.content}\r\n id={item.senderId}\r\n user={{ name: 'System' }}\r\n />\r\n )\r\n }\r\n\r\n if (\r\n item.sender.uniqueCode &&\r\n !item.isSystemMessage &&\r\n item.sender.uniqueCode === creatorId\r\n ) {\r\n return (\r\n <>\r\n <SenderMessages\r\n id={id}\r\n formatDate={formatDate}\r\n message={item.content}\r\n date={item.createdAt}\r\n read={item.everybodyHasRead}\r\n hasFile={item.hasFile}\r\n file={item.file}\r\n />\r\n\r\n {item.images &&\r\n item.images.map((image: Iimages, index: number) => (\r\n <SenderMessages\r\n key={image.key}\r\n id={`${id}image-${index}`}\r\n formatDate={formatDate}\r\n date={item.createdAt}\r\n file={image}\r\n message=''\r\n hasFile={true}\r\n read={item.everybodyHasRead}\r\n />\r\n ))}\r\n </>\r\n )\r\n }\r\n\r\n return (\r\n <>\r\n <IncomingMessage\r\n id={id}\r\n formatDate={formatDate}\r\n date={item.createdAt}\r\n message={item.content}\r\n hasFile={item.hasFile}\r\n isSystemMessage={item.isSystemMessage}\r\n file={item.file}\r\n user={{\r\n avatar: item.sender?.image,\r\n name: item.sender.username,\r\n }}\r\n />\r\n\r\n {item.images &&\r\n item.images.map((image: Iimages, index: number) => (\r\n <IncomingMessage\r\n key={image.key}\r\n id={`${id}image-${index}`}\r\n formatDate={formatDate}\r\n date={item.createdAt}\r\n file={image}\r\n message=''\r\n hasFile={true}\r\n user={{\r\n avatar: item.sender?.image,\r\n name: item.sender.username,\r\n }}\r\n />\r\n ))}\r\n </>\r\n )\r\n}\r\n\r\nexport default MessageBalloon\r\n","import React from 'react'\r\n\r\nfunction MessageIcon ({ width, height }: { width: string; height: string }) {\r\n return (\r\n <svg\r\n width={width}\r\n height={height}\r\n viewBox='0 0 32 32'\r\n fill='none'\r\n xmlns='http://www.w3.org/2000/svg'\r\n >\r\n <g clipPath='url(#clip0_23_2)'>\r\n <path\r\n d='M14.2857 16C14.2857 16.4547 14.4663 16.8907 14.7878 17.2122C15.1093 17.5337 15.5453 17.7143 16 17.7143C16.4547 17.7143 16.8907 17.5337 17.2122 17.2122C17.5337 16.8907 17.7143 16.4547 17.7143 16C17.7143 15.5453 17.5337 15.1093 17.2122 14.7878C16.8907 14.4663 16.4547 14.2857 16 14.2857C15.5453 14.2857 15.1093 14.4663 14.7878 14.7878C14.4663 15.1093 14.2857 15.5453 14.2857 16V16ZM21.4286 16C21.4286 16.4547 21.6092 16.8907 21.9307 17.2122C22.2522 17.5337 22.6882 17.7143 23.1429 17.7143C23.5975 17.7143 24.0336 17.5337 24.355 17.2122C24.6765 16.8907 24.8572 16.4547 24.8572 16C24.8572 15.5453 24.6765 15.1093 24.355 14.7878C24.0336 14.4663 23.5975 14.2857 23.1429 14.2857C22.6882 14.2857 22.2522 14.4663 21.9307 14.7878C21.6092 15.1093 21.4286 15.5453 21.4286 16ZM7.14286 16C7.14286 16.4547 7.32347 16.8907 7.64497 17.2122C7.96646 17.5337 8.40249 17.7143 8.85715 17.7143C9.31181 17.7143 9.74784 17.5337 10.0693 17.2122C10.3908 16.8907 10.5714 16.4547 10.5714 16C10.5714 15.5453 10.3908 15.1093 10.0693 14.7878C9.74784 14.4663 9.31181 14.2857 8.85715 14.2857C8.40249 14.2857 7.96646 14.4663 7.64497 14.7878C7.32347 15.1093 7.14286 15.5453 7.14286 16V16ZM30.7572 9.8C29.95 7.88214 28.7929 6.16071 27.3179 4.68214C25.8532 3.21213 24.1144 2.04365 22.2 1.24286C20.2357 0.417857 18.15 0 16 0H15.9286C13.7643 0.0107143 11.6679 0.439286 9.69643 1.28214C7.79842 2.09115 6.07595 3.2617 4.62501 4.72857C3.16429 6.20357 2.01786 7.91786 1.225 9.82857C0.403576 11.8071 -0.01071 13.9107 4.25255e-06 16.075C0.012123 18.5553 0.598904 20.999 1.71429 23.2143V28.6429C1.71429 29.0786 1.88738 29.4964 2.19547 29.8045C2.50357 30.1126 2.92143 30.2857 3.35715 30.2857H8.78929C11.0046 31.4011 13.4483 31.9879 15.9286 32H16.0036C18.1429 32 20.2179 31.5857 22.1714 30.775C24.0762 29.9838 25.8085 28.8289 27.2714 27.375C28.7464 25.9143 29.9072 24.2071 30.7179 22.3036C31.5607 20.3321 31.9893 18.2357 32 16.0714C32.0107 13.8964 31.5893 11.7857 30.7572 9.8V9.8ZM25.3607 25.4429C22.8571 27.9214 19.5357 29.2857 16 29.2857H15.9393C13.7857 29.275 11.6464 28.7393 9.75715 27.7321L9.45715 27.5714H4.42858V22.5429L4.26786 22.2429C3.26072 20.3536 2.725 18.2143 2.71429 16.0607C2.7 12.5 4.06072 9.15714 6.55715 6.63929C9.05001 4.12143 12.3821 2.72857 15.9429 2.71429H16.0036C17.7893 2.71429 19.5214 3.06071 21.1536 3.74643C22.7464 4.41429 24.175 5.375 25.4036 6.60357C26.6286 7.82857 27.5929 9.26071 28.2607 10.8536C28.9536 12.5036 29.3 14.2536 29.2929 16.0607C29.2714 19.6179 27.875 22.95 25.3607 25.4429V25.4429Z'\r\n fill='black'\r\n />\r\n </g>\r\n <defs>\r\n <clipPath id='clip0_23_2'>\r\n <rect width='32' height='32' fill='@text-color' />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n )\r\n}\r\n\r\nexport default MessageIcon\r\n","import React from 'react'\r\n\r\ninterface IProps {\r\n color: string\r\n}\r\nexport default function TrashIcon ({ color }: IProps) {\r\n return (\r\n <svg\r\n width='13'\r\n height='17'\r\n viewBox='0 0 13 17'\r\n fill='none'\r\n xmlns='http://www.w3.org/2000/svg'\r\n >\r\n <path\r\n d='M13 0.928571H9.75L8.82143 0H4.17857L3.25 0.928571H0V2.78571H13M0.928571 14.8571C0.928571 15.3497 1.12423 15.8221 1.47252 16.1703C1.8208 16.5186 2.29317 16.7143 2.78571 16.7143H10.2143C10.7068 16.7143 11.1792 16.5186 11.5275 16.1703C11.8758 15.8221 12.0714 15.3497 12.0714 14.8571V3.71429H0.928571V14.8571Z'\r\n fill={color}\r\n />\r\n </svg>\r\n )\r\n}\r\n","import TrashIcon from '../../icons/TrashIcon'\r\nimport React, { useMemo } from 'react'\r\nimport useTheme from '../../hooks/useThemes'\r\nimport { useTranslation } from 'react-i18next'\r\n\r\ninterface IProps {\r\n fileList: File[]\r\n onUpdateFile: (files: File) => void\r\n label: string\r\n onRemoveFile: (files: File) => void\r\n maxSize: string\r\n loading: boolean\r\n}\r\n\r\nfunction InputFile ({\r\n fileList,\r\n onUpdateFile,\r\n label,\r\n onRemoveFile,\r\n maxSize,\r\n loading,\r\n}: IProps) {\r\n const { theme } = useTheme()\r\n const { t } = useTranslation('newFormChat')\r\n\r\n const validateFileType = useMemo(\r\n () => (allowedTypes: string[], file?: File) => {\r\n if (file?.type) {\r\n return allowedTypes.includes(file.type)\r\n }\r\n const extension = file?.name.split('.').pop()?.toLowerCase()\r\n return extension ? allowedTypes.includes(`.${extension}`) : false\r\n },\r\n []\r\n )\r\n\r\n const onUpload = () => {\r\n const input = document.querySelector('.file-input__input') as HTMLElement\r\n input?.click()\r\n }\r\n\r\n const onChange = (e: React.ChangeEvent<HTMLInputElement>) => {\r\n const file = e?.target?.files?.[0]\r\n\r\n const isAllowedType = validateFileType(\r\n [\r\n 'image/png',\r\n 'image/jpeg',\r\n 'application/pdf',\r\n 'application/msword',\r\n 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',\r\n 'text/csv',\r\n 'video/mp4',\r\n ],\r\n file\r\n )\r\n if (!isAllowedType) {\r\n console.error(t('inputFile.documentSendError'))\r\n return false\r\n }\r\n\r\n if (file) onUpdateFile(file)\r\n return true\r\n }\r\n\r\n const removeItem = (file: File) => {\r\n if (fileList.some((item) => item === file)) {\r\n onRemoveFile(file)\r\n }\r\n }\r\n\r\n return (\r\n <>\r\n <div className='file-input'>\r\n <label\r\n style={{ color: theme.newChatFormTexts }}\r\n htmlFor=''\r\n className='file-input__label'\r\n >\r\n {label}\r\n </label>\r\n <div\r\n className='file-input__container'\r\n style={{\r\n backgroundColor: theme.inputBg,\r\n color: theme.newChatFormTexts,\r\n }}\r\n >\r\n <input\r\n className='file-input__input'\r\n type='file'\r\n id='docpicker'\r\n hidden\r\n accept='.jpg, .jpeg, .png, .pdf, .doc, .docx, .csv, .mp4'\r\n onChange={(event) => onChange(event)}\r\n />\r\n\r\n <h4>{t('inputFile.chooseFile')}</h4>\r\n <button\r\n className='file-input__button'\r\n type='button'\r\n onClick={onUpload}\r\n style={{\r\n background: theme?.buttonPrimary,\r\n color: theme?.buttonPrimaryText,\r\n }}\r\n >\r\n {t('inputFile.chooseFile')}\r\n </button>\r\n\r\n {loading ? (\r\n ''\r\n ) : (\r\n <p>\r\n {t('inputFile.allowDocuments')}(\r\n {t('inputFile.allowSizeDocument', { maxSize })})\r\n </p>\r\n )}\r\n </div>\r\n </div>\r\n\r\n <div>\r\n {fileList &&\r\n fileList.map((item) => (\r\n <div\r\n className='file-input__list'\r\n key={item.name}\r\n style={{\r\n backgroundColor: theme.inputBg,\r\n color: theme.newChatFormTexts,\r\n }}\r\n >\r\n <span className='file-input__list--file-name'>{item.name}</span>\r\n <button\r\n className='file-input__delete'\r\n onClick={() => removeItem(item)}\r\n >\r\n <TrashIcon color={theme.newChatFormDeleteFileButton || 'red'} />\r\n </button>\r\n </div>\r\n ))}\r\n </div>\r\n </>\r\n )\r\n}\r\n\r\nexport default InputFile\r\n","import React from 'react'\r\nimport useTheme from '../../hooks/useThemes'\r\ninterface IProps {\r\n options: {\r\n label: string\r\n value: string\r\n }[]\r\n label: string\r\n onChange: (value: string) => void\r\n name: string\r\n placeholder: string\r\n value: string\r\n}\r\n\r\nfunction SelectNew ({\r\n options,\r\n name,\r\n placeholder,\r\n label,\r\n onChange,\r\n value,\r\n}: IProps) {\r\n const { theme } = useTheme()\r\n return (\r\n <div className='form-select'>\r\n <label\r\n htmlFor={name}\r\n className='form-select__label'\r\n style={{ color: theme.newChatFormTexts }}\r\n >\r\n {label}\r\n </label>\r\n <select\r\n name={name}\r\n className='form-select__input'\r\n onChange={(e) => onChange(e.target.value)}\r\n value={value}\r\n style={{\r\n backgroundColor: theme.inputBg,\r\n color: theme.newChatFormTexts,\r\n }}\r\n >\r\n <option value='' disabled hidden>\r\n {placeholder}\r\n </option>\r\n {options.map((motivo) => (\r\n <option key={motivo.value} value={motivo.value}>\r\n {motivo.label}\r\n </option>\r\n ))}\r\n </select>\r\n </div>\r\n )\r\n}\r\n\r\nexport default SelectNew\r\n","import React from 'react'\r\nimport useTheme from '../../hooks/useThemes'\r\ninterface IProps {\r\n label: string\r\n onChange: (value: string) => void\r\n name: string\r\n placeholder: string\r\n}\r\n\r\nfunction Textarea ({ name, placeholder, label, onChange }: IProps) {\r\n const { theme } = useTheme()\r\n return (\r\n <div className='text-area'>\r\n <label\r\n htmlFor={name}\r\n className='text-area__label'\r\n style={{ color: theme.newChatFormTexts }}\r\n >\r\n {label}\r\n </label>\r\n <textarea\r\n style={{\r\n backgroundColor: theme.inputBg,\r\n color: theme.newChatFormTexts,\r\n }}\r\n name={name}\r\n placeholder={placeholder}\r\n className='text-area__input'\r\n onChange={(e) => onChange(e.target.value)}\r\n />\r\n </div>\r\n )\r\n}\r\n\r\nexport default Textarea\r\n","import React from 'react'\r\nimport useTheme from '../hooks/useThemes'\r\n\r\nexport default function CloseIcon () {\r\n const { theme } = useTheme()\r\n return (\r\n <svg\r\n width='21'\r\n height='21'\r\n viewBox='0 0 21 21'\r\n fill='none'\r\n xmlns='http://www.w3.org/2000/svg'\r\n >\r\n <path\r\n d='M13.4519 10.9583L20.435 3.9751C20.7664 3.64426 20.9529 3.19532 20.9533 2.72704C20.9537 2.25875 20.7681 1.80949 20.4372 1.47807C20.1064 1.14665 19.6574 0.960225 19.1892 0.959812C18.7209 0.959398 18.2716 1.14503 17.9402 1.47586L10.957 8.45902L3.97388 1.47586C3.64246 1.14444 3.19296 0.958252 2.72426 0.958252C2.25556 0.958252 1.80606 1.14444 1.47464 1.47586C1.14322 1.80728 0.957031 2.25678 0.957031 2.72548C0.957031 3.19418 1.14322 3.64368 1.47464 3.9751L8.4578 10.9583L1.47464 17.9414C1.14322 18.2728 0.957031 18.7223 0.957031 19.191C0.957031 19.6597 1.14322 20.1092 1.47464 20.4406C1.80606 20.7721 2.25556 20.9583 2.72426 20.9583C3.19296 20.9583 3.64246 20.7721 3.97388 20.4406L10.957 13.4575L17.9402 20.4406C18.2716 20.7721 18.7211 20.9583 19.1898 20.9583C19.6585 20.9583 20.108 20.7721 20.4394 20.4406C20.7708 20.1092 20.957 19.6597 20.957 19.191C20.957 18.7223 20.7708 18.2728 20.4394 17.9414L13.4519 10.9583Z'\r\n fill={theme.newChatFormTexts ?? '#476077'}\r\n />\r\n </svg>\r\n )\r\n}\r\n","import React, { FormEvent, useState } from 'react'\r\n\r\nimport InputFile from '../components/InputFile/InputFile'\r\nimport Select from '../components/Select/Select'\r\nimport Textarea from '../components/TextArea/TextArea'\r\nimport useTheme from '../hooks/useThemes'\r\nimport CloseIcon from '../icons/CloseIcon'\r\nimport { IOption } from 'types'\r\nimport { useTranslation } from 'react-i18next'\r\n\r\ninterface IProps {\r\n submitNewChat: (values: FormData) => void\r\n cancelNewChat: () => void\r\n reasons: Array<IOption>\r\n products: Array<IOption>\r\n loading: boolean\r\n maxFileSize: string\r\n loadingResources: boolean\r\n}\r\n\r\nfunction NewChatForm ({\r\n submitNewChat,\r\n cancelNewChat,\r\n reasons,\r\n products,\r\n loading,\r\n maxFileSize,\r\n loadingResources,\r\n}: IProps) {\r\n const [reason, setReason] = useState<string>(reasons?.[0]?.value)\r\n const [product, setProduct] = useState<string>(products?.[0]?.value)\r\n const [message, setMessage] = useState<string>()\r\n const [fileList, setFileList] = useState<File[]>([])\r\n const { t } = useTranslation('newFormChat')\r\n\r\n const { theme } = useTheme()\r\n\r\n const onSubmit = (event: FormEvent) => {\r\n const data2 = new FormData()\r\n event.preventDefault()\r\n\r\n fileList.forEach((file) => {\r\n data2.append(`documents`, file, file.name)\r\n })\r\n\r\n if (reason) data2.append('reason', reason)\r\n if (product) data2.append('product', product)\r\n\r\n if (message) data2.append('message', message)\r\n submitNewChat(data2)\r\n }\r\n\r\n const onUpdateFile = (file: File) => {\r\n setFileList((files) => [...files, file])\r\n }\r\n\r\n const onRemoveFile = (file: File) => {\r\n setFileList(fileList.filter((item: File) => item !== file))\r\n }\r\n\r\n return (\r\n <div\r\n className='messenger__new-chat-form'\r\n style={{\r\n backgroundColor: theme.newChatFormBg,\r\n borderRadius: theme.newChatFormRadius,\r\n }}\r\n >\r\n <div className='messenger__new-chat-form-header'>\r\n <h2 className='messenger__new-chat-form-title'>\r\n <b style={{ color: theme.newChatFormTexts }}>{t('newChat')}</b>\r\n </h2>\r\n\r\n <button\r\n onClick={cancelNewChat}\r\n className='messenger__new-chat-form-close'\r\n >\r\n <CloseIcon />\r\n </button>\r\n </div>\r\n\r\n <h3\r\n className='messenger__disclaimer'\r\n style={{\r\n borderColor: theme.disclaimerPrimaryColor,\r\n color: theme.disclaimerTextColor,\r\n backgroundColor: theme.disclaimerSecondaryColor,\r\n }}\r\n >\r\n {t('description.1')} <b>{t('description.1/2bold')}</b>{' '}\r\n {t('description.2')}\r\n </h3>\r\n\r\n <form onSubmit={onSubmit} className='messenger__new-chat-fields'>\r\n <Select\r\n onChange={(value) => setReason(value)}\r\n options={reasons}\r\n placeholder={t('fields.reasons.placeholder')}\r\n name='reasons'\r\n value={reason}\r\n label={t('fields.reasons.label')}\r\n />\r\n\r\n <Select\r\n onChange={(value) => setProduct(value)}\r\n options={products}\r\n placeholder={t('fields.product.placeholder')}\r\n value={product}\r\n name='product'\r\n label={t('fields.product.label')}\r\n />\r\n\r\n <InputFile\r\n fileList={fileList}\r\n onUpdateFile={onUpdateFile}\r\n onRemoveFile={onRemoveFile}\r\n label={t('fields.document.label')}\r\n maxSize={maxFileSize}\r\n loading={loadingResources}\r\n />\r\n\r\n <Textarea\r\n onChange={(value) => setMessage(value)}\r\n placeholder={t('fields.message.placeholder')}\r\n name='message'\r\n label={t('fields.message.label')}\r\n />\r\n\r\n <button\r\n className={`w-100 ${!loading ? 'messenger__new-chat-form-send' : 'messenger__new-chat-form-send messenger__new-chat-form-send--disabled'}`}\r\n disabled={loading}\r\n type='submit'\r\n style={{\r\n backgroundColor: !loading ? theme.buttonPrimary : '#ccc',\r\n color: theme.buttonPrimaryText,\r\n }}\r\n >\r\n {!loading ? t('buttons.send') : t('buttons.sendingButton')}\r\n </button>\r\n </form>\r\n </div>\r\n )\r\n}\r\n\r\nexport default NewChatForm\r\n","import React from 'react'\r\nimport useTheme from '../hooks/useThemes'\r\n\r\nexport default function AttachFileIcon ({ ...rest }) {\r\n const { theme } = useTheme()\r\n return (\r\n <svg\r\n width='26'\r\n height='28'\r\n viewBox='0 0 26 28'\r\n xmlns='http://www.w3.org/2000/svg'\r\n {...rest}\r\n >\r\n <path\r\n d='M22.5464 2.73571C19.1821 -0.628572 13.7036 -0.628572 10.3429 2.73571L1.02143 12.05C0.960715 12.1107 0.928572 12.1929 0.928572 12.2786C0.928572 12.3643 0.960715 12.4464 1.02143 12.5071L2.33929 13.825C2.39953 13.885 2.48107 13.9186 2.56607 13.9186C2.65108 13.9186 2.73262 13.885 2.79286 13.825L12.1143 4.51071C13.2714 3.35357 14.8107 2.71786 16.4464 2.71786C18.0821 2.71786 19.6214 3.35357 20.775 4.51071C21.9321 5.66786 22.5679 7.20714 22.5679 8.83929C22.5679 10.475 21.9321 12.0107 20.775 13.1679L11.275 22.6643L9.73572 24.2036C8.29643 25.6429 5.95714 25.6429 4.51786 24.2036C3.82143 23.5071 3.43929 22.5821 3.43929 21.5964C3.43929 20.6107 3.82143 19.6857 4.51786 18.9893L13.9429 9.56786C14.1821 9.33214 14.4964 9.2 14.8321 9.2H14.8357C15.1714 9.2 15.4821 9.33214 15.7179 9.56786C15.9571 9.80714 16.0857 10.1214 16.0857 10.4571C16.0857 10.7893 15.9536 11.1036 15.7179 11.3393L8.01429 19.0357C7.95357 19.0964 7.92143 19.1786 7.92143 19.2643C7.92143 19.35 7.95357 19.4321 8.01429 19.4929L9.33214 20.8107C9.39238 20.8707 9.47393 20.9044 9.55893 20.9044C9.64393 20.9044 9.72548 20.8707 9.78572 20.8107L17.4857 13.1107C18.1964 12.4 18.5857 11.4571 18.5857 10.4536C18.5857 9.45 18.1929 8.50357 17.4857 7.79643C16.0179 6.32857 13.6321 6.33214 12.1643 7.79643L11.25 8.71429L2.74286 17.2179C2.16547 17.7919 1.70778 18.4748 1.39634 19.227C1.0849 19.9793 0.925905 20.7858 0.928572 21.6C0.928572 23.2536 1.575 24.8071 2.74286 25.975C3.95357 27.1821 5.53929 27.7857 7.125 27.7857C8.71072 27.7857 10.2964 27.1821 11.5036 25.975L22.5464 14.9393C24.1714 13.3107 25.0714 11.1429 25.0714 8.83929C25.075 6.53214 24.175 4.36429 22.5464 2.73571Z'\r\n fill={theme.uploadFileIconColor}\r\n />\r\n </svg>\r\n )\r\n}\r\n","import React, { ReactNode } from 'react'\r\n\r\ninterface ToolTipProps {\r\n text: string\r\n children: ReactNode\r\n}\r\n\r\nconst ToolTip: React.FC<ToolTipProps> = ({ text, children }) => {\r\n return (\r\n <div className='tooltip'>\r\n {children}\r\n <div className='tooltip__text'>{text}</div>\r\n </div>\r\n )\r\n}\r\n\r\nexport default ToolTip\r\n","import useTheme from '../../hooks/useThemes'\r\nimport React, {\r\n Fragment,\r\n MutableRefObject,\r\n useMemo,\r\n useRef,\r\n useState,\r\n} from 'react'\r\nimport { IList } from 'types'\r\nimport AttachFileIcon from '../../../Messenger/icons/AttachFileIcon'\r\nimport rightArrow from '../../../../assets/right-arrow.svg'\r\nimport { SpinLoading } from '../../views/MessengerMessages'\r\nimport ToolTip from '../Tooltip/Tooltip'\r\nimport { useTranslation } from 'react-i18next'\r\n\r\ninterface IProps {\r\n allowImages: boolean\r\n current?: IList\r\n onSubmit: (value: FormData, callback: () => void) => void\r\n file?: File | null\r\n updateFile: (file: File | null) => void\r\n isLoading?: boolean\r\n maxFileSize: string\r\n}\r\n\r\nfunction AllowDocuments ({\r\n allowImages,\r\n attachFile,\r\n handleFile,\r\n closedChat,\r\n maxFileField,\r\n}: {\r\n allowImages: boolean\r\n attachFile: MutableRefObject<HTMLInputElement | null>\r\n handleFile: (e: React.ChangeEvent<HTMLInputElement>) => void\r\n closedChat: boolean\r\n maxFileField: string\r\n}) {\r\n const { t } = useTranslation('messengerMessages')\r\n\r\n if (allowImages) {\r\n return (\r\n <Fragment>\r\n <input\r\n type='file'\r\n size={1}\r\n className='messenger__messages-send--file'\r\n ref={attachFile}\r\n onChange={handleFile}\r\n accept='.jpg, .jpeg, .png, .pdf, .doc, .docx, .mp4, .csv'\r\n />\r\n\r\n <ToolTip text={t('sendMessageForm.maxFileField', { maxFileField })}>\r\n <AttachFileIcon\r\n className={`messenger__messages-send__attach ${closedChat ? 'messenger__messages-send__attach--disabled' : ''}`}\r\n onClick={() => (!closedChat ? attachFile.current?.click() : null)}\r\n />\r\n </ToolTip>\r\n </Fragment>\r\n )\r\n }\r\n\r\n return <></>\r\n}\r\n\r\nfunction SendMessageForm ({\r\n allowImages,\r\n current,\r\n onSubmit,\r\n file,\r\n updateFile,\r\n isLoading,\r\n maxFileSize,\r\n}: IProps) {\r\n const { t } = useTranslation('messengerMessages')\r\n const [formHeight, setFormHeight] = useState<number>(100)\r\n const [sending, setSending] = useState<boolean>(false)\r\n\r\n const inputRef: MutableRefObject<HTMLTextAreaElement | null> = useRef(null)\r\n const attachFile: MutableRefObject<HTMLInputElement | null> = useRef(null)\r\n\r\n const closedChat = useMemo(\r\n () => current?.status.current.state === 'final',\r\n [current]\r\n )\r\n\r\n const { theme } = useTheme()\r\n\r\n function correctTextAreaHeight (styleConfig: {\r\n height: number\r\n overflow: string\r\n }) {\r\n const textarea = inputRef.current\r\n if (textarea) {\r\n textarea.style.height = `${styleConfig.height}px`\r\n textarea.style.overflowY = styleConfig.overflow\r\n }\r\n }\r\n\r\n function resetHeights () {\r\n const inicialFormHeight = 100\r\n const inicialTextAreaHeight = 50\r\n setFormHeight(inicialFormHeight)\r\n correctTextAreaHeight({ height: inicialTextAreaHeight, overflow: 'hidden' })\r\n }\r\n\r\n function adjustFormHeight (textareaRef: typeof inputRef.current) {\r\n if (textareaRef) {\r\n const initialHeight = 50\r\n const maxHeight = 80\r\n const newHeight = textareaRef.scrollHeight\r\n\r\n if (newHeight > maxHeight) {\r\n correctTextAreaHeight({\r\n height: maxHeight,\r\n overflow: 'auto',\r\n })\r\n return maxHeight + initialHeight\r\n }\r\n\r\n correctTextAreaHeight({\r\n height: initialHeight,\r\n overflow: 'auto',\r\n })\r\n return initialHeight * 2\r\n }\r\n\r\n return formHeight\r\n }\r\n\r\n function handleTextareaChange () {\r\n const textarea = inputRef.current\r\n setFormHeight(adjustFormHeight(textarea))\r\n }\r\n\r\n function handleSubmit (e?: React.FormEvent<HTMLFormElement>) {\r\n e?.preventDefault()\r\n if (sending) return\r\n setSending(true)\r\n\r\n const data = new FormData()\r\n if (file) data.append('file', file)\r\n if (inputRef.current?.value) data.append('message', inputRef.current?.value)\r\n\r\n onSubmit(data, () => {\r\n if (inputRef.current) inputRef.current.value = ''\r\n if (file) updateFile(null)\r\n setSending(false)\r\n resetHeights()\r\n })\r\n }\r\n\r\n function handleFile (e: React.ChangeEvent<HTMLInputElement>) {\r\n if (e.target.files) {\r\n const file = e.target.files[0]\r\n const allowedTypes = [\r\n 'image/png',\r\n 'image/jpeg',\r\n 'application/pdf',\r\n 'application/msword',\r\n 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',\r\n 'text/csv',\r\n 'video/mp4',\r\n ]\r\n const allowedExtensions = [\r\n 'png',\r\n 'jpeg',\r\n 'jpg',\r\n 'pdf',\r\n 'doc',\r\n 'docx',\r\n 'csv',\r\n 'mp4',\r\n ]\r\n const fileType = file?.type\r\n const fileExtension = file?.name.split('.').pop()?.toLowerCase()\r\n const isAllowed = fileType\r\n ? allowedTypes.includes(fileType)\r\n : fileExtension\r\n ? allowedExtensions.includes(fileExtension)\r\n : false\r\n if (isAllowed) {\r\n updateFile(file)\r\n }\r\n }\r\n }\r\n\r\n return (\r\n <form\r\n onSubmit={handleSubmit}\r\n className='messenger__messages-send--form'\r\n style={{\r\n height: `${formHeight}px`,\r\n maxHeight: '150px',\r\n }}\r\n >\r\n <div className='messenger__messages-send__input-container'>\r\n <textarea\r\n onChange={handleTextareaChange}\r\n placeholder={\r\n closedChat\r\n ? t('sendMessageForm.chatEnded')\r\n : t('sendMessageForm.typeMessage')\r\n }\r\n ref={inputRef}\r\n onKeyDown={(e) => {\r\n if (e.key === 'Enter' && !e.shiftKey) {\r\n e.preventDefault()\r\n handleSubmit()\r\n }\r\n }}\r\n className={`messenger__messages-send__input ${closedChat || sending ? 'messenger__messages-send__input--disabled' : ''} `}\r\n disabled={closedChat || sending}\r\n style={{\r\n backgroundColor: theme?.inputBg,\r\n }}\r\n />\r\n\r\n <AllowDocuments\r\n allowImages={allowImages}\r\n handleFile={handleFile}\r\n attachFile={attachFile}\r\n closedChat={closedChat}\r\n maxFileField={maxFileSize}\r\n />\r\n </div>\r\n\r\n {isLoading ? (\r\n <div className='messenger__messages-sending'>\r\n <SpinLoading />\r\n </div>\r\n ) : (\r\n <button\r\n type='submit'\r\n className={`messenger__messages-send__button ${closedChat || sending ? 'messenger__messages-send__button--disabled' : ''}`}\r\n disabled={closedChat || sending}\r\n style={{\r\n backgroundColor: theme?.buttonPrimary,\r\n }}\r\n >\r\n <img\r\n alt={t('sendMessageForm.rightIcon')}\r\n height={25}\r\n width={25}\r\n className='ml-1'\r\n src={rightArrow}\r\n />\r\n </button>\r\n )}\r\n </form>\r\n )\r\n}\r\n\r\nexport default SendMessageForm\r\n","import React, {\r\n Fragment,\r\n useState,\r\n useRef,\r\n MutableRefObject,\r\n useEffect,\r\n} from 'react'\r\nimport ImagesContainer from '../components/ImagesContainer/ImagesContainer'\r\nimport MessageBalloon from '../components/MessageBallon/MessageBalloon'\r\n\r\nimport MessageIcon from '../icons/MessageIcon'\r\n\r\nimport { ICommonProps, IList, IMessages, IOption } from 'types'\r\nimport useTheme from '../hooks/useThemes'\r\n\r\nimport NewChatForm from './NewFormChat'\r\nimport EmptyIcon from '../icons/EmptyIcon'\r\nimport SendMessageForm from '../components/SendMessageForm/SendMessageForm'\r\nimport InfiniteScroll from '../components/InfiniteScroll/InfiniteScroll'\r\nimport { formatFileSize } from '../components/DocMessage/DocMessage'\r\nimport { useTranslation } from 'react-i18next'\r\n\r\ninterface IScrollableContainer {\r\n loading: boolean\r\n onIntersect: () => Promise<void>\r\n hasNext: boolean\r\n}\r\n\r\ntype MessengerView = 'empty' | 'messages' | 'newChat'\r\n\r\ninterface IMessengerMessages extends ICommonProps, IScrollableContainer {\r\n header: React.ReactElement\r\n current?: IList\r\n creatorId?: string\r\n allowImages: boolean\r\n tab?: 'list' | 'messages'\r\n messegerView: MessengerView\r\n className?: string\r\n messages: IMessages[]\r\n onSubmit: (value: FormData, callback: () => void) => Promise<void>\r\n cancelNewChat: () => void\r\n formatDate: (date: string | Date) => string | undefined\r\n reasons: Array<IOption>\r\n products: Array<IOption>\r\n submitNewChat: (values: FormData) => void\r\n newChatLoading: boolean\r\n maxFileSize: () => Promise<{ data: { data: { maxFileSize: number } } }>\r\n}\r\n\r\ninterface IMessengerForm {\r\n children: React.ReactNode\r\n messegerView: MessengerView\r\n reasons: Array<IOption>\r\n products: Array<IOption>\r\n submitNewChat: (values: FormData) => void\r\n cancelNewChat: () => void\r\n newChatLoading: boolean\r\n maxFileSize: string\r\n loadingResources: boolean\r\n}\r\n\r\nfunction MessagesContainerView ({\r\n children,\r\n messegerView,\r\n submitNewChat,\r\n cancelNewChat,\r\n reasons,\r\n products,\r\n newChatLoading,\r\n maxFileSize,\r\n loadingResources,\r\n}: IMessengerForm) {\r\n const { theme } = useTheme()\r\n const { t } = useTranslation('messengerMessages')\r\n\r\n if (messegerView === 'empty') {\r\n return (\r\n <div\r\n className='messenger__messages-container--empty'\r\n style={{ backgroundColor: theme?.messengerNotSelectedBg }}\r\n >\r\n <MessageIcon width='72' height='72' />\r\n <p>{t('selectConversation')}</p>\r\n </div>\r\n )\r\n }\r\n\r\n if (messegerView === 'newChat') {\r\n return (\r\n <NewChatForm\r\n reasons={reasons}\r\n products={products}\r\n submitNewChat={submitNewChat}\r\n cancelNewChat={cancelNewChat}\r\n loading={newChatLoading}\r\n maxFileSize={maxFileSize}\r\n loadingResources={loadingResources}\r\n />\r\n )\r\n }\r\n\r\n return <>{children}</>\r\n}\r\n\r\nexport function SpinLoading () {\r\n return (\r\n <div className='messenger__messages-loading'>\r\n <div className='messenger__messages-loading--loader' />\r\n </div>\r\n )\r\n}\r\n\r\nfunction Messages ({\r\n messages,\r\n creatorId,\r\n formatDate,\r\n loading,\r\n}: {\r\n messages: IMessages[]\r\n creatorId?: string\r\n formatDate: (date: string | Date) => string | undefined\r\n loading: boolean\r\n}) {\r\n const { theme } = useTheme()\r\n const { t } = useTranslation('messengerMessages')\r\n\r\n if (!messages || (messages.length === 0 && !loading)) {\r\n return (\r\n <div\r\n className='messenger__message-empty'\r\n style={{ color: theme.emptyMessagesFontColor }}\r\n >\r\n <EmptyIcon />\r\n <p>{t('noMessagesFound')}</p>\r\n </div>\r\n )\r\n }\r\n\r\n return (\r\n <>\r\n {messages.map((item, idx) => {\r\n return (\r\n <Fragment key={`${item.ticketId}_${item.senderId}_${idx}`}>\r\n <MessageBalloon\r\n id={`message_${idx}`}\r\n formatDate={formatDate}\r\n creatorId={creatorId}\r\n item={item}\r\n />\r\n </Fragment>\r\n )\r\n })}\r\n </>\r\n )\r\n}\r\n\r\nconst onScrollToBottom = (\r\n scrollContainer: MutableRefObject<HTMLDivElement | null>\r\n) => {\r\n if (scrollContainer.current) {\r\n scrollContainer.current.scrollTop = Number.MAX_SAFE_INTEGER\r\n }\r\n}\r\n\r\nfunction MessagesContainer ({\r\n children,\r\n fowardRef,\r\n ...rest\r\n}: {\r\n children: React.ReactNode\r\n fowardRef: MutableRefObject<HTMLDivElement | null>\r\n} & React.DetailedHTMLProps<\r\n React.HTMLAttributes<HTMLDivElement>,\r\n HTMLDivElement\r\n>) {\r\n const { theme } = useTheme()\r\n\r\n return (\r\n <div\r\n {...rest}\r\n ref={fowardRef}\r\n className='messenger__messages-container'\r\n style={{\r\n padding: '1rem',\r\n backgroundColor: theme?.messengerMessagesBg,\r\n border: `1px solid ${theme.borderColor}`,\r\n }}\r\n >\r\n {children}\r\n </div>\r\n )\r\n}\r\n\r\nfunction ScrollableContainer ({\r\n children,\r\n loading,\r\n onIntersect,\r\n hasNext,\r\n scrollContainerFowardRef,\r\n}: {\r\n children: React.ReactNode\r\n scrollContainerFowardRef: MutableRefObject<HTMLDivElement | null>\r\n} & IScrollableContainer) {\r\n const intersetRootMargin = 300\r\n\r\n const getElementScrollHeight = (divRef: HTMLDivElement | null) => {\r\n if (!divRef) return null\r\n return divRef.scrollHeight\r\n }\r\n\r\n const getElementScrollTop = (divRef: HTMLDivElement | null) => {\r\n if (!divRef) return null\r\n return divRef.scrollTop\r\n }\r\n\r\n const calculateScrollToDecrease = (\r\n elementBeforeIntersetHeight: number,\r\n elementAfterIntersectHeight: number,\r\n intersetRootMargin: number\r\n ) => {\r\n return (\r\n Math.abs(elementAfterIntersectHeight - elementBeforeIntersetHeight) +\r\n intersetRootMargin\r\n )\r\n }\r\n\r\n const isNill = (value: number | null | undefined) => {\r\n return value === null && value === undefined\r\n }\r\n\r\n const onFetchInfiniteScroll = async () => {\r\n const elementBeforeIntersetHeight = getElementScrollHeight(\r\n scrollContainerFowardRef.current\r\n )\r\n\r\n await onIntersect()\r\n\r\n const elementAfterIntersectHeight = getElementScrollHeight(\r\n scrollContainerFowardRef.current\r\n )\r\n\r\n if (\r\n scrollContainerFowardRef.current &&\r\n !isNill(elementBeforeIntersetHeight) &&\r\n !isNill(elementAfterIntersectHeight)\r\n ) {\r\n const currentScrollTop =\r\n getElementScrollTop(scrollContainerFowardRef.current) || 0\r\n scrollContainerFowardRef.current.scrollTop = calculateScrollToDecrease(\r\n elementAfterIntersectHeight as number,\r\n elementBeforeIntersetHeight as number,\r\n currentScrollTop\r\n )\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n onScrollToBottom(scrollContainerFowardRef)\r\n }, [])\r\n\r\n return (\r\n <MessagesContainer fowardRef={scrollContainerFowardRef}>\r\n <InfiniteScroll\r\n root={document.querySelector('.messenger__messages-container')}\r\n loading={loading}\r\n loadingCover={<SpinLoading />}\r\n more={hasNext}\r\n fetch={onFetchInfiniteScroll}\r\n rootMargin={intersetRootMargin}\r\n reverse\r\n >\r\n {children}\r\n </InfiniteScroll>\r\n </MessagesContainer>\r\n )\r\n}\r\n\r\nfunction MessengerMessages ({\r\n header,\r\n tab,\r\n className = '',\r\n current,\r\n messages,\r\n allowImages,\r\n creatorId,\r\n loading,\r\n onSubmit,\r\n submitNewChat,\r\n cancelNewChat,\r\n reasons,\r\n products,\r\n messegerView,\r\n formatDate,\r\n hasNext,\r\n onIntersect,\r\n newChatLoading,\r\n maxFileSize,\r\n}: IMessengerMessages) {\r\n const { t } = useTranslation('messengerMessages')\r\n const [file, setFile] = useState<File | null>()\r\n const scrollContainerRef = useRef<HTMLDivElement | null>(null)\r\n const [isSending, setIsSending] = useState(false)\r\n const [maxSize, setMaxSize] = useState<string>('')\r\n\r\n const { theme } = useTheme()\r\n\r\n const styleClassnames = {\r\n mobile: tab === 'list' ? 'messenger__mobile-hide' : '',\r\n }\r\n\r\n const updateFile = (file: File | null) => {\r\n setFile(file)\r\n }\r\n\r\n const onSubmitNewMessage = async (\r\n message: FormData,\r\n callback: () => void\r\n ) => {\r\n setIsSending(true)\r\n try {\r\n await onSubmit(message, callback)\r\n onScrollToBottom(scrollContainerRef)\r\n } finally {\r\n setIsSending(false)\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n const fetchMaxFileSize = async () => {\r\n try {\r\n const response = await maxFileSize()\r\n const size = formatFileSize(response.data.data.maxFileSize)\r\n setMaxSize(size)\r\n } catch (error) {\r\n console.error(t('errorSearchingMaxFileSize'), error)\r\n }\r\n }\r\n\r\n fetchMaxFileSize()\r\n }, [maxSize])\r\n\r\n return (\r\n <div\r\n className={`messenger__messages ${className} ${styleClassnames.mobile} `}\r\n >\r\n <MessagesContainerView\r\n newChatLoading={newChatLoading}\r\n reasons={reasons}\r\n products={products}\r\n submitNewChat={submitNewChat}\r\n cancelNewChat={cancelNewChat}\r\n messegerView={messegerView}\r\n maxFileSize={maxSize}\r\n loadingResources={loading}\r\n >\r\n {file ? (\r\n <ImagesContainer file={file} onClose={() => setFile(null)} />\r\n ) : (\r\n <>\r\n <div\r\n className='messenger__messages-header'\r\n style={{\r\n backgroundColor: theme?.headerAndSenderBg,\r\n border: `1px solid ${theme.borderColor}`,\r\n }}\r\n >\r\n {React.cloneElement(header)}\r\n </div>\r\n\r\n {loading && !messages.length ? (\r\n <MessagesContainer fowardRef={scrollContainerRef}>\r\n <SpinLoading />\r\n </MessagesContainer>\r\n ) : (\r\n <ScrollableContainer\r\n scrollContainerFowardRef={scrollContainerRef}\r\n loading={loading}\r\n hasNext={hasNext}\r\n onIntersect={onIntersect}\r\n >\r\n <Messages\r\n formatDate={formatDate}\r\n messages={messages}\r\n creatorId={creatorId}\r\n loading={loading}\r\n />\r\n </ScrollableContainer>\r\n )}\r\n </>\r\n )}\r\n\r\n <div\r\n className='messenger__messages-send'\r\n style={{\r\n backgroundColor: theme?.headerAndSenderBg,\r\n border: `1px solid ${theme.borderColor}`,\r\n }}\r\n >\r\n <SendMessageForm\r\n allowImages={allowImages}\r\n onSubmit={onSubmitNewMessage}\r\n file={file}\r\n updateFile={updateFile}\r\n current={current}\r\n isLoading={isSending}\r\n maxFileSize={maxSize}\r\n />\r\n </div>\r\n </MessagesContainerView>\r\n </div>\r\n )\r\n}\r\n\r\nexport default MessengerMessages\r\n","import { useState } from 'react'\r\nimport { IList } from 'types'\r\n\r\ntype _viewDesktop = 'empty' | 'messages' | 'newChat'\r\ntype _viewMobile = 'list' | 'messages'\r\n\r\nexport const useConversations = () => {\r\n const SLICE = 15\r\n const [sliceCount, setSliceCount] = useState(SLICE)\r\n const [conversations, setConversations] = useState<IList[]>([])\r\n const [currentChat, setCurrentChat] = useState<IList>()\r\n const [viewDesktop, setViewDesktop] = useState<_viewDesktop>('empty')\r\n const [viewMobile, setViewMobile] = useState<'list' | 'messages'>('list')\r\n\r\n const changeViewDesktop = (view: _viewDesktop) => {\r\n setViewDesktop(view)\r\n }\r\n\r\n const changeViewMobile = (view: _viewMobile) => {\r\n setViewMobile(view)\r\n }\r\n\r\n const selectChat = (chat: IList) => {\r\n setCurrentChat(chat)\r\n }\r\n\r\n const onIntersect = () => {\r\n setSliceCount((prev) => {\r\n const count = prev + SLICE\r\n return count\r\n })\r\n }\r\n\r\n const hasNext = () => {\r\n return conversations.length >= sliceCount\r\n }\r\n\r\n const resetConversations = () => {\r\n setConversations([])\r\n }\r\n\r\n const mapConversationsUnread = (prev: IList[]) => (id: string) => {\r\n return (prev || []).map((conversation) => {\r\n if (conversation?._id === id) {\r\n return {\r\n ...conversation,\r\n totalUnreadMessages: 0,\r\n }\r\n }\r\n\r\n return conversation\r\n })\r\n }\r\n\r\n const reorderConversations = (conversations: IList[], ticketId?: string) => {\r\n const index = conversations.findIndex(\r\n (conversation) => conversation._id === ticketId\r\n )\r\n if (index !== -1) {\r\n const conversationToMove = conversations.splice(index, 1)[0]\r\n conversations.unshift(conversationToMove)\r\n }\r\n }\r\n\r\n const mapConversationsIncrementUnread =\r\n (prev: IList[], ticketId?: string) => (id: string) => {\r\n const updatedConversations = (prev || []).map((conversation) => {\r\n if (conversation._id === id) {\r\n return {\r\n ...conversation,\r\n totalUnreadMessages:\r\n ticketId === id ? 0 : conversation.totalUnreadMessages + 1,\r\n }\r\n }\r\n return conversation\r\n })\r\n\r\n reorderConversations(updatedConversations, ticketId)\r\n\r\n return updatedConversations\r\n }\r\n\r\n const setAsRead = (id: string) => {\r\n setConversations((prev) => mapConversationsUnread(prev)(id))\r\n }\r\n\r\n const addConversations = (\r\n conversations: IList[],\r\n goToNewConversation?: (chat: IList) => void\r\n ) => {\r\n setConversations(conversations)\r\n\r\n if (goToNewConversation) goToNewConversation(conversations[0])\r\n }\r\n\r\n const addOneUnreadToTicket = (ticketId: string, currentChat?: string) => {\r\n setConversations((prev) => {\r\n return mapConversationsIncrementUnread(prev, currentChat)(ticketId)\r\n })\r\n }\r\n\r\n const removeClosedConversation = (ticketId: string) => {\r\n const filtred = conversations.filter(\r\n (conversation) => conversation._id !== ticketId\r\n )\r\n addConversations(filtred)\r\n }\r\n\r\n const closeIfIsCurrent = (ticketId: string) => {\r\n if (ticketId === currentChat?._id) {\r\n changeViewDesktop('empty')\r\n changeViewMobile('list')\r\n }\r\n }\r\n\r\n const onCloseChat = (ticketId: string) => {\r\n removeClosedConversation(ticketId)\r\n closeIfIsCurrent(ticketId)\r\n }\r\n\r\n const reset = () => {\r\n setSliceCount(SLICE)\r\n resetConversations()\r\n }\r\n\r\n return {\r\n onIntersect,\r\n reset,\r\n conversations,\r\n hasNext,\r\n addConversations,\r\n addOneUnreadToTicket,\r\n setAsRead,\r\n sliceCount,\r\n currentChat,\r\n selectChat,\r\n onCloseChat,\r\n changeViewDesktop,\r\n viewDesktop,\r\n changeViewMobile,\r\n viewMobile,\r\n }\r\n}\r\n","import { useState } from 'react'\r\nimport { IMessages, ISocketMessage } from 'types'\r\n\r\nexport const useMessages = () => {\r\n const [messages, setMessages] = useState<IMessages[]>([])\r\n const [totalMessages, setTotalMessages] = useState<number>(0)\r\n\r\n const addMessages = (messages: IMessages[]) => {\r\n setMessages(messages)\r\n }\r\n const addTotalMessages = (total: number) => {\r\n setTotalMessages(total)\r\n }\r\n\r\n const incrementMessages = (ticket: ISocketMessage, currentChatId: string) => {\r\n const existentMessage = messages.find(\r\n (item) => item.messagecode === ticket.message.messagecode\r\n )\r\n if (ticket.message.ticketId === currentChatId && !existentMessage) {\r\n addMessages([...messages, ticket.message])\r\n }\r\n }\r\n\r\n const updateMesssagesAsRead = (\r\n ticket: ISocketMessage,\r\n currentChatId: string\r\n ) => {\r\n if (ticket.markAsRead || currentChatId === ticket?.message?.ticketId) {\r\n const readMessages = messages.map((message) => ({\r\n ...message,\r\n everybodyHasRead: true,\r\n }))\r\n addMessages(readMessages)\r\n }\r\n }\r\n\r\n const hasOlderMessages = () => {\r\n return messages.length > 9 && messages.length < totalMessages\r\n }\r\n\r\n return {\r\n addMessages,\r\n messages,\r\n incrementMessages,\r\n updateMesssagesAsRead,\r\n addTotalMessages,\r\n hasOlderMessages,\r\n }\r\n}\r\n","var x = y => { var x = {}; __webpack_require__.d(x, y); return x; }\nvar y = x => () => x\nconst __WEBPACK_NAMESPACE_OBJECT__ = x({ [\"default\"]: () => __WEBPACK_EXTERNAL_MODULE_i18next__[\"default\"] });","import i18n from 'i18next'\r\nimport { initReactI18next } from 'react-i18next'\r\n\r\nimport pt from './locales/pt.json'\r\nimport en from './locales/en.json'\r\n\r\nconst resources = makeResources()\r\nfunction makeResources () {\r\n return {\r\n en: {\r\n newFormChat: en.newFormChat,\r\n messengerMessages: en.messengerMessages,\r\n messengerList: en.messengerList,\r\n },\r\n pt: {\r\n newFormChat: pt.newFormChat,\r\n messengerMessages: pt.messengerMessages,\r\n messengerList: pt.messengerList,\r\n },\r\n }\r\n}\r\n\r\ni18n.use(initReactI18next).init({\r\n resources,\r\n lng: 'pt',\r\n fallbackLng: 'pt',\r\n interpolation: {\r\n escapeValue: false,\r\n },\r\n})\r\n\r\nexport default i18n\r\n\r\nexport function setLanguage (lang: string) {\r\n i18n.changeLanguage(lang)\r\n}\r\n","import React, { ReactNode, useEffect } from 'react'\r\nimport { I18nextProvider } from 'react-i18next'\r\nimport defaultI18n from '../i18n'\r\n\r\ninterface ChatProviderProps {\r\n children: ReactNode\r\n locale?: string\r\n}\r\n\r\nfunction ChatProvider ({ children, locale }: ChatProviderProps) {\r\n useEffect(() => {\r\n if (locale) {\r\n defaultI18n.changeLanguage(locale)\r\n }\r\n }, [locale])\r\n\r\n return <I18nextProvider i18n={defaultI18n}>{children}</I18nextProvider>\r\n}\r\n\r\nexport default ChatProvider\r\n"],"names":["___CSS_LOADER_EXPORT___","push","module","id","exports","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","e","o","default","a","s","name","weekdays","split","weekdaysShort","weekdaysMin","months","monthsShort","ordinal","formats","LT","LTS","L","LL","LLL","LLLL","relativeTime","future","past","m","mm","h","hh","d","dd","M","MM","y","yy","locale","t","prototype","isToday","format","year","month","day","hour","minute","second","n","r","Date","timeZoneName","Intl","DateTimeFormat","hour12","timeZone","formatToParts","u","f","type","value","c","parseInt","l","v","utc","valueOf","tz","utcOffset","toDate","toLocaleString","Math","round","$set","$ms","getTimezoneOffset","add","$x","$timezone","offsetName","guess","find","toLowerCase","startOf","call","min","max","resolvedOptions","setDefault","date","args","arguments","$L","local","parse","$u","$utils","$offset","init","$d","$y","getUTCFullYear","$M","getUTCMonth","$D","getUTCDate","$W","getUTCDay","$H","getUTCHours","$m","getUTCMinutes","$s","getUTCSeconds","getUTCMilliseconds","match","abs","$localOffset","isUTC","toISOString","toUTCString","diff","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","apply","parentNode","removeChild","removeStyleElement","styleSheet","cssText","firstChild","createTextNode","__WEBPACK_EXTERNAL_MODULE_dayjs__","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","getter","__esModule","definition","key","Object","defineProperty","enumerable","get","prop","hasOwnProperty","nc","x","__WEBPACK_EXTERNAL_MODULE_react__","Fragment","createContext","useCallback","useContext","useEffect","useMemo","useRef","useState","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","children","theme","config","Provider","context","serverTz","timeAsDayjs","server","applyTimezone","timezone","seconds","holidays","isWorkingDay","dayOfWeek","isWorkingHour","isWeekendOrHoliday","weekDay","includes","formatedDate","isHoliday","canUpdateClock","isWorking","getDiffInSeconds","startDate","endDate","calculateWorkingTime","workingHours","current","clone","workingTime","isBefore","startOfDay","start","endOfDay","end","isAfter","getDifferenceInSeconds","secondsInHours","currentSeconds","hours","floor","minutes","padStart","getColorsByTime","__WEBPACK_EXTERNAL_MODULE_react_i18next_31085753__","I18nextProvider","initReactI18next","useTranslation","image","className","background","loading","alt","src","TimerIcon","color","width","height","viewBox","fill","xmlns","activeItem","defaultClass","activeClass","querySelectorAll","forEach","classList","currentTarget","unread","onClick","canSeeDetailsChat","currentId","currentViewerId","totalUnreadMessages","unreadMessages","setUnreadMessages","closedChat","status","state","setBackground","counter","setCounter","isInprogress","systemicValue","otherChatMember","users","uniqueCode","creator","interval","sla","SlaDates","currentTime","createdAt","diference","setInterval","prev","SLATimePassed","clearInterval","handleClick","onMouseOver","onMouseLeave","backgroundColor","_id","username","slice","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","root","reverse","rootMargin","infiniteElement","setInfiniteElement","currentElement","observer","IntersectionObserver","entries","isIntersecting","threshold","observe","unobserve","ref","ListLoading","Array","_","idx","borderBottom","affix","conversations","failed","showBadge","messegerView","helpDesk","hasNext","onIntersect","sliceCount","borderRadius","ChatButton","isArray","__assign","assign","p","__rest","indexOf","getOwnPropertySymbols","propertyIsEnumerable","__awaiter","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","step","next","rejected","done","then","__generator","body","g","sent","trys","ops","verb","Symbol","iterator","op","TypeError","pop","create","__spreadArray","to","from","pack","ar","props","xmlnsXlink","x1","x2","y1","y2","gradientUnits","offset","stopColor","xlinkHref","rx","textAnchor","fontSize","fontWeight","fileType","b64","file","onClose","fileInfo","setFileInfo","setB64","reader","FileReader","readAsDataURL","onload","onerror","error","getBase64","insertAt","getElementsByTagName","insertBefore","styleInject","ReactSimpleImageViewer","_a","currentIndex","setCurrentIndex","changeImage","delta","nextIndex","closeOnClickOutside","checkId","checkClass","contains","stopPropagation","handleKeyDown","handleWheel","wheelDeltaY","addEventListener","disableScroll","removeEventListener","backgroundStyle","closeComponent","leftArrowComponent","rightArrowComponent","formatFileSize","size","toFixed","location","toUpperCase","fileName","originalname","filePages","pages","fileSize","mimetype","href","rel","MessageImage","rest","MessageWithFile","message","openImageViewer","formatDate","currentImage","isImage","read","user","hasFile","isSystemMessage","setCurrentImage","isViewerOpen","setIsViewerOpen","avatar","ReadIcon","__WEBPACK_EXTERNAL_MODULE_react_simple_image_viewer_6e6c0ca6__","isDoc","creatorId","senderId","sender","everybodyHasRead","images","clipPath","TrashIcon","fileList","onUpdateFile","onRemoveFile","maxSize","validateFileType","allowedTypes","extension","htmlFor","hidden","accept","files","console","input","click","some","motivo","CloseIcon","submitNewChat","cancelNewChat","reasons","products","maxFileSize","loadingResources","setReason","product","setProduct","setMessage","setFileList","onSubmit","data2","FormData","preventDefault","append","Select","filter","AttachFileIcon","text","AllowDocuments","allowImages","attachFile","handleFile","maxFileField","updateFile","isLoading","formHeight","setFormHeight","sending","setSending","inputRef","correctTextAreaHeight","styleConfig","textarea","overflowY","overflow","handleSubmit","maxHeight","textareaRef","scrollHeight","initialHeight","adjustFormHeight","shiftKey","fileExtension","SpinLoading","MessagesContainerView","newChatLoading","Messages","messages","ticketId","onScrollToBottom","scrollContainer","scrollTop","Number","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","__WEBPACK_EXTERNAL_MODULE_i18next__","resources","en","newFormChat","messengerMessages","messengerList","pt","lng","fallbackLng","interpolation","escapeValue","setLanguage","lang","i18n"],"sourceRoot":""}