{"version":3,"sources":["webpack:///./src/components/Chat.vue?c59c","webpack:///src/components/Chat.vue","webpack:///./src/components/Chat.vue?a2dc","webpack:///./src/components/Chat.vue"],"names":["render","_vm","this","_h","$createElement","_c","_self","staticClass","attrs","_v","_s","errorMessage","_e","scopedSlots","_u","key","fn","ref","on","_g","_b","model","value","callback","$$v","chatDialog","expression","staticStyle","tableKey","tableHeight","dataObject","linkClick","link","getItemColor","coloredFields","fields_included","filterTabsFn","currentMessage","sendMessage","$event","showDialog","showSnackbar","messageSender","snackbarMessage","_l","m","i","time_stamp","sender","msg","replyMessage","sendReply","staticRenderFns","components","data","socket","openDialog","dataReady","object_name","schema_name","mobileBreakpoint","all_records","currentUser","me","allMessages","methods","getSocket","socketUrl","reconnection","reconnectionAttempts","reconnectionDelay","emit","recipients","message","push","to","saveMessage","selectedUsers","length","forEach","r","email","metadata","mounted","that","id","$root","store","userData","qry","$and","$on","e","tableName","select","selected","created","watch","component","VAlert","VBtn","VCard","VCardActions","VCardText","VCardTitle","VCol","VContainer","VDialog","VIcon","VRow","VSnackbar","VSpacer","VTextarea","VToolbar"],"mappings":"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","file":"js/chunk-2d226135.e6b19e32.js","sourcesContent":["var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[(_vm.errorMessage)?_c('v-alert',{staticClass:\"ma-2\",attrs:{\"dismissible\":\"\",\"dense\":\"\",\"timeout\":\"3000\",\"type\":\"error\"}},[_vm._v(\" \"+_vm._s(_vm.errorMessage)+\" \")]):_vm._e(),_c('v-dialog',{attrs:{\"max-width\":\"900px\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-btn',_vm._g(_vm._b({attrs:{\"text\":\"\",\"color\":\"info\"}},'v-btn',attrs,false),on),[_c('v-icon',[_vm._v(\"mdi-wechat\")]),_vm._v(\" Chat \")],1)]}}]),model:{value:(_vm.chatDialog),callback:function ($$v) {_vm.chatDialog=$$v},expression:\"chatDialog\"}},[_c('v-card',[_c('v-card-title',[_vm._v(\" Chat With Users \")]),_c('v-card-text',{staticClass:\"ma-2\",staticStyle:{\"max-width\":\"890px\",\"overflow-x\":\"hidden\"}},[_c('v-container',[_c('v-row',[_c('v-col',{attrs:{\"lg\":\"8\"}},[(_vm.dataReady)?_c('d-table',{key:_vm.tableKey,ref:\"dTable\",attrs:{\"tableHeight\":_vm.tableHeight,\"table_title\":\"Select Users To Send\",\"data_object\":_vm.dataObject,\"getFreshData\":true,\"linkClick\":_vm.linkClick,\"link\":_vm.link,\"directEdit\":false,\"mobileBreakpoint\":\"'0'\",\"itemsPerPage\":15,\"noDelete\":true,\"noExcel\":true,\"hideTopBar\":false,\"getItemColor\":_vm.getItemColor,\"coloredFields\":_vm.coloredFields,\"fields_included\":_vm.fields_included,\"tableName\":\"chat\",\"filterTabsFn\":_vm.filterTabsFn,\"hasSearch\":true}}):_vm._e()],1),_c('v-col',{attrs:{\"lg\":\"4\"}},[_c('v-textarea',{attrs:{\"label\":\"Type your message\",\"rows\":\"10\"},model:{value:(_vm.currentMessage),callback:function ($$v) {_vm.currentMessage=$$v},expression:\"currentMessage\"}}),_c('v-toolbar',{attrs:{\"flat\":\"\"}},[_c('v-spacer'),_c('v-btn',{attrs:{\"text\":\"\",\"color\":\"success\"},on:{\"click\":_vm.sendMessage}},[_c('v-icon',[_vm._v(\"mdi-send\")]),_vm._v(\"Send\")],1),_c('v-btn',{attrs:{\"text\":\"\"},on:{\"click\":function($event){_vm.chatDialog = false}}},[_vm._v(\"Cancel\")])],1)],1)],1)],1)],1)],1)],1),_c('v-snackbar',{attrs:{\"timeout\":3000000},scopedSlots:_vm._u([{key:\"action\",fn:function(ref){\nvar attrs = ref.attrs;\nreturn [_c('v-btn',{attrs:{\"text\":\"\"},on:{\"click\":function($event){_vm.chatDialog = false;\n          _vm.showDialog = true;\n          _vm.showSnackbar = false;}}},[_vm._v(\"Reply\")])]}}]),model:{value:(_vm.showSnackbar),callback:function ($$v) {_vm.showSnackbar=$$v},expression:\"showSnackbar\"}},[_vm._v(\" New message from \"+_vm._s(_vm.messageSender)+\": \"+_vm._s(_vm.snackbarMessage)+\" \")]),_c('v-dialog',{attrs:{\"max-width\":\"600px\"},model:{value:(_vm.showDialog),callback:function ($$v) {_vm.showDialog=$$v},expression:\"showDialog\"}},[_c('v-card',[_vm._l((_vm.allMessages),function(m,i){return _c('div',{key:i,staticClass:\"ma-2\"},[_vm._v(\" \"+_vm._s(m.time_stamp)+\" \"),_c('b',[_vm._v(_vm._s(m.sender)+\":\")]),_vm._v(\" \"+_vm._s(m.msg)+\" \")])}),_c('v-card-title',[_vm._v(\"Reply to \"+_vm._s(_vm.messageSender))]),_c('v-card-text',[_c('v-textarea',{attrs:{\"label\":\"Type your reply\"},model:{value:(_vm.replyMessage),callback:function ($$v) {_vm.replyMessage=$$v},expression:\"replyMessage\"}})],1),_c('v-card-actions',[_c('v-toolbar',{attrs:{\"flat\":\"\"}},[_c('v-btn',{attrs:{\"text\":\"\"},on:{\"click\":function($event){_vm.showDialog = false}}},[_vm._v(\"Cancel\")]),_c('v-spacer'),_c('v-btn',{attrs:{\"text\":\"\",\"color\":\"success\"},on:{\"click\":_vm.sendReply}},[_c('v-icon',[_vm._v(\"mdi-send\")]),_vm._v(\"Send\")],1)],1)],1)],2)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n  <div>\r\n    <!-- Chat UI -->\r\n    <v-alert\r\n      class=\"ma-2\"\r\n      dismissible\r\n      dense\r\n      timeout=\"3000\"\r\n      v-if=\"errorMessage\"\r\n      type=\"error\"\r\n    >\r\n      {{ errorMessage }}\r\n    </v-alert>\r\n    <v-dialog v-model=\"chatDialog\" max-width=\"900px\">\r\n      <template v-slot:activator=\"{ on, attrs }\">\r\n        <v-btn text color=\"info\" v-bind=\"attrs\" v-on=\"on\"\r\n          ><v-icon>mdi-wechat</v-icon>\r\n          Chat\r\n        </v-btn>\r\n      </template>\r\n      <v-card>\r\n        <v-card-title>\r\n          Chat With Users\r\n        </v-card-title>\r\n        <v-card-text class=\"ma-2\" style=\"max-width: 890px; overflow-x: hidden;\">\r\n          <v-container>\r\n            <v-row>\r\n              <v-col lg=\"8\">\r\n                <d-table\r\n                  v-if=\"dataReady\"\r\n                  :tableHeight=\"tableHeight\"\r\n                  table_title=\"Select Users To Send\"\r\n                  :data_object=\"dataObject\"\r\n                  :getFreshData=\"true\"\r\n                  :linkClick=\"linkClick\"\r\n                  :link=\"link\"\r\n                  :directEdit=\"false\"\r\n                  mobileBreakpoint=\"'0'\"\r\n                  :itemsPerPage=\"15\"\r\n                  :noDelete=\"true\"\r\n                  :key=\"tableKey\"\r\n                  :noExcel=\"true\"\r\n                  :hideTopBar=\"false\"\r\n                  :getItemColor=\"getItemColor\"\r\n                  :coloredFields=\"coloredFields\"\r\n                  :fields_included=\"fields_included\"\r\n                  ref=\"dTable\"\r\n                  tableName=\"chat\"\r\n                  :filterTabsFn=\"filterTabsFn\"\r\n                  :hasSearch=\"true\"\r\n                />\r\n              </v-col>\r\n              <v-col lg=\"4\">\r\n                <v-textarea\r\n                  v-model=\"currentMessage\"\r\n                  label=\"Type your message\"\r\n                  rows=\"10\"\r\n                ></v-textarea>\r\n                <v-toolbar flat>\r\n                  <v-spacer></v-spacer>\r\n\r\n                  <v-btn text color=\"success\" @click=\"sendMessage\"\r\n                    ><v-icon>mdi-send</v-icon>Send</v-btn\r\n                  ><v-btn text @click=\"chatDialog = false\">Cancel</v-btn>\r\n                </v-toolbar>\r\n              </v-col>\r\n            </v-row>\r\n          </v-container>\r\n        </v-card-text>\r\n      </v-card>\r\n    </v-dialog>\r\n    <!-- Snackbar for new messages -->\r\n    <v-snackbar v-model=\"showSnackbar\" :timeout=\"3000000\">\r\n      New message from {{ messageSender }}: {{ snackbarMessage }}\r\n      <template v-slot:action=\"{ attrs }\">\r\n        <v-btn\r\n          text\r\n          @click=\"\r\n            chatDialog = false;\r\n            showDialog = true;\r\n            showSnackbar = false;\r\n          \"\r\n          >Reply</v-btn\r\n        >\r\n      </template>\r\n    </v-snackbar>\r\n\r\n    <!-- Dialog for replying -->\r\n    <v-dialog v-model=\"showDialog\" max-width=\"600px\">\r\n      <v-card>\r\n        <div class=\"ma-2\" v-for=\"(m, i) in allMessages\" :key=\"i\">\r\n          {{ m.time_stamp }} <b>{{ m.sender }}:</b> {{ m.msg }}\r\n        </div>\r\n        <v-card-title>Reply to {{ messageSender }}</v-card-title>\r\n        <v-card-text>\r\n          <v-textarea\r\n            v-model=\"replyMessage\"\r\n            label=\"Type your reply\"\r\n          ></v-textarea>\r\n        </v-card-text>\r\n        <v-card-actions>\r\n          <v-toolbar flat\r\n            ><v-btn text @click=\"showDialog = false\">Cancel</v-btn\r\n            ><v-spacer></v-spacer>\r\n            <v-btn text color=\"success\" @click=\"sendReply\"\r\n              ><v-icon>mdi-send</v-icon>Send</v-btn\r\n            >\r\n          </v-toolbar>\r\n        </v-card-actions>\r\n      </v-card>\r\n    </v-dialog>\r\n  </div>\r\n</template>\r\n\r\n<script>\r\nimport io from \"socket.io-client\";\r\nimport * as fun from \"../plugins/common\";\r\nimport axios from \"axios\";\r\nexport default {\r\n  components: { DTable: () => import(\"../components/Table.vue\") },\r\n  data() {\r\n    return {\r\n      chatDialog: false,\r\n      tableHeight: \"200px\",\r\n      socket: null,\r\n      showSnackbar: false,\r\n      openDialog: false,\r\n      // Peer: require(\"simple-peer\"),\r\n      dataReady: false,\r\n      fields_included: [\r\n        \"full_name\",\r\n        // \"email\",\r\n        // \"last_login_action\",\r\n        // \"last_login_action_time\",\r\n        // \"last_action\",\r\n        // \"last_action_time\",\r\n      ],\r\n      dataObject: {\r\n        object_name: \"v_users_online\",\r\n        schema_name: \"v_sales_person\",\r\n        mobileBreakpoint: 0,\r\n        all_records: true,\r\n        // date_fields: [\"order_date_time\"],\r\n        fields_included: [\r\n          \"full_name\",\r\n          \"email\",\r\n          // \"last_login_action\",\r\n          // \"last_login_action_time\",\r\n          // \"last_action\",\r\n          // \"last_action_time\",\r\n        ],\r\n      },\r\n      currentUser: \"\",\r\n      me: \"\",\r\n      messageSender: \"\",\r\n      replyMessage: \"\",\r\n      showDialog: false,\r\n      allMessages: [],\r\n      errorMessage: \"\",\r\n    };\r\n  },\r\n  methods: {\r\n    getSocket() {\r\n      var socketUrl = \"https://server.moverai.com:5000/\";\r\n      this.socket = io(socketUrl, {\r\n        reconnection: true,\r\n        reconnectionAttempts: 10,\r\n        reconnectionDelay: 3000,\r\n      });\r\n    },\r\n    sendReply() {\r\n      this.socket.emit(\"send_message_to_selected\", {\r\n        recipients: [this.messageSender],\r\n        message: this.replyMessage,\r\n        sender: this.currentUser,\r\n      });\r\n      var msg = {\r\n        time_stamp: fun.timeStamp(),\r\n        msg: this.replyMessage,\r\n        sender: this.currentUser,\r\n      };\r\n      this.allMessages.push(msg);\r\n      msg.to = [this.messageSender];\r\n      this.saveMessage(msg);\r\n      this.replyMessage = \"\";\r\n    },\r\n    sendMessage() {\r\n      if (this.selectedUsers && this.selectedUsers.length) {\r\n        if (this.currentMessage) {\r\n          this.socket.emit(\"send_message_to_selected\", {\r\n            recipients: this.selectedUsers,\r\n            message: this.currentMessage,\r\n            sender: this.currentUser,\r\n          });\r\n          var msg = {\r\n            time_stamp: fun.timeStamp(),\r\n            msg: this.currentMessage,\r\n            sender: this.currentUser,\r\n          };\r\n          this.allMessages.push(msg);\r\n          var recipients = [];\r\n          this.selectedUsers.forEach((r) => {\r\n            if (r.email) {\r\n              recipients.push(r.email);\r\n            } else {\r\n              recipients.push(r);\r\n            }\r\n          });\r\n          msg.to = recipients;\r\n          this.saveMessage(msg);\r\n          this.currentMessage = \"\";\r\n          this.errorMessage = \"\";\r\n          this.chatDialog = false;\r\n        } else {\r\n          this.errorMessage = \"Please type the message\";\r\n        }\r\n      } else {\r\n        this.errorMessage = \"Please select users to send\";\r\n      }\r\n    },\r\n    saveMessage(model) {\r\n      var data = {\r\n        metadata: { object_name: \"chat\" },\r\n\r\n        model: model,\r\n      };\r\n      axios\r\n        .post(this.serverURL + \"/add_data\", data, {\r\n          withCredentials: true,\r\n        })\r\n        .then((response) => {\r\n          console.log(response.data);\r\n        });\r\n    },\r\n  },\r\n  mounted() {\r\n    var socketUrl = \"https://server.moverai.com:5000/\";\r\n    this.socket = io(socketUrl);\r\n\r\n    var that = this;\r\n    this.socket.on(\"receive_message\", (data) => {\r\n      // Only show if the current user is one of the intended recipients or if it's a message for 'All'\r\n      if (\r\n        data.recipients.some((d) => {\r\n          return d.email === that.currentUser;\r\n        }) ||\r\n        data.recipients.includes(that.currentUser)\r\n      ) {\r\n        var msg = {\r\n          time_stamp: fun.timeStamp(),\r\n          msg: data.message,\r\n          sender: data.sender,\r\n        };\r\n        that.allMessages.push(msg);\r\n        var recipients = [];\r\n        data.recipients.forEach((r) => {\r\n          if (r.email) {\r\n            recipients.push(r.email);\r\n          } else {\r\n            recipients.push(r);\r\n          }\r\n        });\r\n        msg.to = recipients;\r\n        that.saveMessage(msg);\r\n        that.snackbarMessage = data.message;\r\n        that.messageSender = data.sender;\r\n        that.showSnackbar = true;\r\n      }\r\n    });\r\n    this.socket.on(\"me\", (id) => {\r\n      that.me = id;\r\n    });\r\n    this.currentUser = this.$root.store.userData.email;\r\n    this.dataObject.qry = {\r\n      $and: [\r\n        { last_login_action: \"login\" },\r\n        { email: { $ne: this.currentUser } },\r\n      ],\r\n    };\r\n    this.dataReady = true;\r\n    this.$root.$on(\"tableMounted\", (e) => {\r\n      if (e.tableName == \"chat\") {\r\n        e.select = true;\r\n      }\r\n    });\r\n    this.$root.$on(\"tableSelectionChanged\", (e) => {\r\n      if (e.tableName == \"chat\") {\r\n        that.selectedUsers = e.selected;\r\n        that.errorMessage = \"\";\r\n      }\r\n    });\r\n  },\r\n  created() {},\r\n  watch: {\r\n    currentMessage() {\r\n      this.errorMessage = \"\";\r\n    },\r\n  },\r\n};\r\n</script>\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Chat.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Chat.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Chat.vue?vue&type=template&id=26da772f&\"\nimport script from \"./Chat.vue?vue&type=script&lang=js&\"\nexport * from \"./Chat.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VAlert } from 'vuetify/lib/components/VAlert';\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VDialog } from 'vuetify/lib/components/VDialog';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSnackbar } from 'vuetify/lib/components/VSnackbar';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VTextarea } from 'vuetify/lib/components/VTextarea';\nimport { VToolbar } from 'vuetify/lib/components/VToolbar';\ninstallComponents(component, {VAlert,VBtn,VCard,VCardActions,VCardText,VCardTitle,VCol,VContainer,VDialog,VIcon,VRow,VSnackbar,VSpacer,VTextarea,VToolbar})\n"],"sourceRoot":""}