├── store ├── app │ ├── getters.js │ ├── state.js │ ├── mutation-types.js │ ├── mutations.js │ └── actions.js ├── chat │ ├── getters.js │ ├── state.js │ ├── mutation-types.js │ ├── actions.js │ └── mutations.js ├── index.js ├── app.js └── chat.js ├── components ├── app │ ├── app.scss │ ├── app.html │ ├── app.vue │ └── app.js ├── country-config │ ├── country-config.scss │ ├── country-config.vue │ ├── country-config.html │ └── country-config.js ├── contact-details │ ├── contact-details.scss │ ├── contact-details.vue │ ├── contact-details.js │ └── contact-details.html ├── confirm-tab-dialog │ ├── confirm-tab-dialog.scss │ ├── confirm-tab-dialog.vue │ ├── confirm-tab-dialog.js │ └── confirm-tab-dialog.html ├── profile-image-edit │ ├── profile-image-edit.scss │ ├── profile-image-edit.html │ ├── profile-image-edit.vue │ └── profile-image-edit.js ├── chat-box │ ├── chat-box.vue │ ├── chat-box.scss │ ├── chat-box.html │ └── chat-box.js ├── contact-list │ ├── contact-list.scss │ ├── contact-list.vue │ ├── contact-list.html │ └── contact-list.js ├── chat-config │ ├── chat-config.vue │ ├── chat-config.scss │ ├── chat-config.html │ └── chat-config.js ├── chat-header │ ├── chat-header.vue │ ├── chat-header.scss │ ├── chat-header.js │ └── chat-header.html ├── loading-app │ ├── loading-app.vue │ ├── loading-app.js │ ├── loading-app.html │ └── loading-app.scss ├── conversations │ ├── conversations.vue │ ├── conversations.scss │ ├── conversations.html │ └── conversations.js ├── cool-textarea │ ├── cool-textarea.vue │ ├── cool-textarea.scss │ ├── cool-textarea.html │ └── cool-textarea.js └── templates │ └── base-template │ ├── base-template.vue │ ├── base-template.html │ ├── base-template.js │ └── base-template.scss ├── .prettierrc ├── static ├── favicon.ico ├── flags │ ├── de-de.png │ ├── en-us.png │ └── pt-br.png ├── audio │ └── notification.mp3 ├── favicon │ ├── favicon-bell.png │ └── favicon-normal.png ├── config │ └── app-config.json ├── svg-emoji │ ├── confused-emoji.svg │ ├── happy-emoji.svg │ ├── pensive-emoji.svg │ └── thinking-emoji.svg └── locales │ ├── en-us.json │ ├── pt-br.json │ └── de-de.json ├── .dockerignore ├── pages ├── index.vue ├── chat │ ├── index.vue │ ├── index.html │ ├── index.scss │ └── index.js ├── index.html └── index.js ├── assets └── img │ ├── chat-logo.png │ └── background-login.jpg ├── plugins ├── filters.js ├── vue-intersect.js ├── i18n.js ├── element-ui.js ├── vue-fontawesome.js └── global-mixins.js ├── middleware └── authenticated.js ├── entrypoint.sh ├── .editorconfig ├── utils ├── promise-utils.js ├── format-utils.js ├── filter-utils.js ├── object-utils.js ├── screen-utils.js ├── array-utils.js ├── date-utils.js ├── string-utils.js └── cache-utils.js ├── layouts ├── error-layout.vue ├── default.vue └── error.vue ├── Dockerfile ├── .eslintrc.js ├── services ├── emoji-service.js ├── axios-service.js ├── config-service.js ├── doc-title-service.js ├── notification-service.js ├── profile-config-service.js ├── favicon-service.js ├── message-parser.js └── xmpp-service.js ├── global-styles ├── element-variables.scss └── main.scss ├── server └── index.js ├── LICENSE ├── .gitignore ├── strophe └── strophe-mam-mod.js ├── enums └── presence-enum.js ├── package.json ├── nuxt.config.js └── README.md /store/app/getters.js: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /store/chat/getters.js: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /components/app/app.scss: -------------------------------------------------------------------------------- 1 | .app { 2 | } 3 | -------------------------------------------------------------------------------- /components/country-config/country-config.scss: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /store/index.js: -------------------------------------------------------------------------------- 1 | export const strict = false; 2 | -------------------------------------------------------------------------------- /components/app/app.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "semi": true, 3 | "singleQuote": true 4 | } 5 | -------------------------------------------------------------------------------- /components/contact-details/contact-details.scss: -------------------------------------------------------------------------------- 1 | .contact-details { 2 | } 3 | -------------------------------------------------------------------------------- /static/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/credija/opa/HEAD/static/favicon.ico -------------------------------------------------------------------------------- /.dockerignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | .nuxt 3 | npm-debug.log 4 | README.md 5 | Dockerfile 6 | -------------------------------------------------------------------------------- /components/confirm-tab-dialog/confirm-tab-dialog.scss: -------------------------------------------------------------------------------- 1 | .confirm-tab-dialog { 2 | } 3 | -------------------------------------------------------------------------------- /components/profile-image-edit/profile-image-edit.scss: -------------------------------------------------------------------------------- 1 | .profile-image-edit { 2 | } 3 | -------------------------------------------------------------------------------- /pages/index.vue: -------------------------------------------------------------------------------- 1 |