{"version":3,"sources":["webpack:///./app/javascript/shared/components/Button.vue?d9aa","webpack:///./app/javascript/shared/components/Button.vue?26c2","webpack:///app/javascript/shared/components/Button.vue","webpack:///./app/javascript/shared/components/Button.vue","webpack:///./app/javascript/widget/views/Home.vue?40ec","webpack:///./app/javascript/widget/components/GroupedAvatars.vue?4d56","webpack:///app/javascript/widget/components/GroupedAvatars.vue","webpack:///./app/javascript/widget/components/AvailableAgents.vue?df8c","webpack:///app/javascript/widget/components/AvailableAgents.vue","webpack:///./app/javascript/widget/components/GroupedAvatars.vue","webpack:///./app/javascript/widget/components/GroupedAvatars.vue?84ff","webpack:///./app/javascript/widget/components/AvailableAgents.vue","webpack:///./app/javascript/widget/components/AvailableAgents.vue?cfab","webpack:///app/javascript/widget/components/TeamAvailability.vue","webpack:///./app/javascript/widget/components/TeamAvailability.vue?b386","webpack:///./app/javascript/widget/components/TeamAvailability.vue","webpack:///./app/javascript/widget/components/TeamAvailability.vue?9f03","webpack:///app/javascript/widget/views/Home.vue","webpack:///./app/javascript/widget/views/Home.vue?129f","webpack:///./app/javascript/widget/views/Home.vue"],"names":["component","_vm","this","_h","$createElement","_self","_c","class","buttonClassName","style","attrs","disabled","on","onClick","_t","staticClass","_l","user","index","key","id","name","avatar","users","$dm","_v","_s","isOnline","$t","replyWaitMessage","availableAgents","_e","widgetColor","textColor","startConversation","hasConversation","conversationSize"],"mappings":"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","file":"js/52-b934f702fbe3b6360f2c.chunk.js","sourcesContent":["var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('button',{class:_vm.buttonClassName,style:(_vm.buttonStyles),attrs:{\"disabled\":_vm.disabled},on:{\"click\":_vm.onClick}},[_vm._t(\"default\")],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js??ref--7-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Button.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js??ref--7-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Button.vue?vue&type=script&lang=js&\"","<template>\n <button\n :class=\"buttonClassName\"\n :style=\"buttonStyles\"\n :disabled=\"disabled\"\n @click=\"onClick\"\n >\n <slot />\n </button>\n</template>\n<script>\nexport default {\n props: {\n block: {\n type: Boolean,\n default: false,\n },\n type: {\n type: String,\n default: 'blue',\n },\n bgColor: {\n type: String,\n default: '',\n },\n textColor: {\n type: String,\n default: '',\n },\n disabled: {\n type: Boolean,\n default: false,\n },\n },\n computed: {\n buttonClassName() {\n let className = 'text-white py-3 px-4 rounded shadow-sm leading-4';\n if (this.type === 'clear') {\n className = 'flex mx-auto mt-4 text-xs leading-3 w-auto text-black-600';\n }\n\n if (this.type === 'blue' && !Object.keys(this.buttonStyles).length) {\n className = `${className} bg-woot-500 hover:bg-woot-700`;\n }\n if (this.block) {\n className = `${className} w-full`;\n }\n return className;\n },\n buttonStyles() {\n const styles = {};\n if (this.bgColor) {\n styles.backgroundColor = this.bgColor;\n }\n if (this.textColor) {\n styles.color = this.textColor;\n }\n return styles;\n },\n },\n methods: {\n onClick(e) {\n this.$emit('click', e);\n },\n },\n};\n</script>\n","import { render, staticRenderFns } from \"./Button.vue?vue&type=template&id=05075a0e&\"\nimport script from \"./Button.vue?vue&type=script&lang=js&\"\nexport * from \"./Button.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","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"flex flex-1 flex-col justify-end\"},[_c('div',{staticClass:\"flex flex-1 overflow-auto\"}),_vm._v(\" \"),_c('team-availability',{attrs:{\"available-agents\":_vm.availableAgents,\"has-conversation\":!!_vm.conversationSize},on:{\"start-conversation\":_vm.startConversation}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js??ref--7-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GroupedAvatars.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js??ref--7-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GroupedAvatars.vue?vue&type=script&lang=js&\"","<template>\n <div class=\"flex\">\n <span\n v-for=\"(user, index) in users\"\n :key=\"user.id\"\n :class=\"\n `${\n index ? '-ml-4' : ''\n } inline-block rounded-full text-white shadow-solid`\n \"\n >\n <thumbnail\n size=\"40px\"\n :username=\"user.name\"\n :src=\"user.avatar\"\n has-border\n />\n </span>\n </div>\n</template>\n\n<script>\nimport Thumbnail from 'dashboard/components/widgets/Thumbnail.vue';\n\nexport default {\n name: 'GroupedAvatars',\n components: { Thumbnail },\n props: {\n users: {\n type: Array,\n default: () => [],\n },\n },\n};\n</script>\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js??ref--7-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AvailableAgents.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js??ref--7-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AvailableAgents.vue?vue&type=script&lang=js&\"","<template>\n <grouped-avatars :users=\"users\" />\n</template>\n\n<script>\nimport GroupedAvatars from 'widget/components/GroupedAvatars.vue';\n\nexport default {\n name: 'AvailableAgents',\n components: { GroupedAvatars },\n props: {\n agents: {\n type: Array,\n default: () => [],\n },\n },\n computed: {\n users() {\n return this.agents.slice(0, 5).map(agent => ({\n id: agent.id,\n avatar: agent.avatar_url,\n name: agent.name,\n }));\n },\n },\n};\n</script>\n","import { render, staticRenderFns } from \"./GroupedAvatars.vue?vue&type=template&id=1f2b141a&\"\nimport script from \"./GroupedAvatars.vue?vue&type=script&lang=js&\"\nexport * from \"./GroupedAvatars.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","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"flex\"},_vm._l((_vm.users),function(user,index){return _c('span',{key:user.id,class:((index ? '-ml-4' : '') + \" inline-block rounded-full text-white shadow-solid\")},[_c('thumbnail',{attrs:{\"size\":\"40px\",\"username\":user.name,\"src\":user.avatar,\"has-border\":\"\"}})],1)}),0)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./AvailableAgents.vue?vue&type=template&id=9765f988&\"\nimport script from \"./AvailableAgents.vue?vue&type=script&lang=js&\"\nexport * from \"./AvailableAgents.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","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('grouped-avatars',{attrs:{\"users\":_vm.users}})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <div class=\"px-5\">\n <div class=\"flex items-center justify-between mb-4\">\n <div\n class=\"max-w-xs\"\n :class=\"$dm('text-black-700', 'dark:text-slate-50')\"\n >\n <div class=\"text-base leading-5 font-medium mb-1\">\n {{\n isOnline\n ? $t('TEAM_AVAILABILITY.ONLINE')\n : $t('TEAM_AVAILABILITY.OFFLINE')\n }}\n </div>\n <div class=\"text-xs leading-3 mt-1\">\n {{ replyWaitMessage }}\n </div>\n </div>\n <available-agents v-if=\"isOnline\" :agents=\"availableAgents\" />\n </div>\n <custom-button\n class=\"font-medium\"\n block\n :bg-color=\"widgetColor\"\n :text-color=\"textColor\"\n @click=\"startConversation\"\n >\n {{\n hasConversation ? $t('CONTINUE_CONVERSATION') : $t('START_CONVERSATION')\n }}\n </custom-button>\n </div>\n</template>\n\n<script>\nimport { mapGetters } from 'vuex';\nimport { getContrastingTextColor } from '@chatwoot/utils';\nimport nextAvailabilityTime from 'widget/mixins/nextAvailabilityTime';\nimport AvailableAgents from 'widget/components/AvailableAgents.vue';\nimport CustomButton from 'shared/components/Button';\nimport configMixin from 'widget/mixins/configMixin';\nimport availabilityMixin from 'widget/mixins/availability';\nimport darkMixin from 'widget/mixins/darkModeMixin.js';\n\nexport default {\n name: 'TeamAvailability',\n components: {\n AvailableAgents,\n CustomButton,\n },\n mixins: [configMixin, nextAvailabilityTime, availabilityMixin, darkMixin],\n props: {\n availableAgents: {\n type: Array,\n default: () => {},\n },\n hasConversation: {\n type: Boolean,\n default: false,\n },\n },\n\n computed: {\n ...mapGetters({\n widgetColor: 'appConfig/getWidgetColor',\n }),\n textColor() {\n return getContrastingTextColor(this.widgetColor);\n },\n isOnline() {\n const { workingHoursEnabled } = this.channelConfig;\n const anyAgentOnline = this.availableAgents.length > 0;\n\n if (workingHoursEnabled) {\n return this.isInBetweenTheWorkingHours;\n }\n return anyAgentOnline;\n },\n },\n methods: {\n startConversation() {\n this.$emit('start-conversation');\n },\n },\n};\n</script>\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js??ref--7-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TeamAvailability.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js??ref--7-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TeamAvailability.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./TeamAvailability.vue?vue&type=template&id=5b86a948&\"\nimport script from \"./TeamAvailability.vue?vue&type=script&lang=js&\"\nexport * from \"./TeamAvailability.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","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"px-5\"},[_c('div',{staticClass:\"flex items-center justify-between mb-4\"},[_c('div',{staticClass:\"max-w-xs\",class:_vm.$dm('text-black-700', 'dark:text-slate-50')},[_c('div',{staticClass:\"text-base leading-5 font-medium mb-1\"},[_vm._v(\"\\n \"+_vm._s(_vm.isOnline\n ? _vm.$t('TEAM_AVAILABILITY.ONLINE')\n : _vm.$t('TEAM_AVAILABILITY.OFFLINE'))+\"\\n \")]),_vm._v(\" \"),_c('div',{staticClass:\"text-xs leading-3 mt-1\"},[_vm._v(\"\\n \"+_vm._s(_vm.replyWaitMessage)+\"\\n \")])]),_vm._v(\" \"),(_vm.isOnline)?_c('available-agents',{attrs:{\"agents\":_vm.availableAgents}}):_vm._e()],1),_vm._v(\" \"),_c('custom-button',{staticClass:\"font-medium\",attrs:{\"block\":\"\",\"bg-color\":_vm.widgetColor,\"text-color\":_vm.textColor},on:{\"click\":_vm.startConversation}},[_vm._v(\"\\n \"+_vm._s(_vm.hasConversation ? _vm.$t('CONTINUE_CONVERSATION') : _vm.$t('START_CONVERSATION'))+\"\\n \")])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <div class=\"flex flex-1 flex-col justify-end\">\n <div class=\"flex flex-1 overflow-auto\">\n <!-- Load Conversation List Components Here -->\n </div>\n <team-availability\n :available-agents=\"availableAgents\"\n :has-conversation=\"!!conversationSize\"\n @start-conversation=\"startConversation\"\n />\n </div>\n</template>\n\n<script>\nimport configMixin from '../mixins/configMixin';\nimport TeamAvailability from 'widget/components/TeamAvailability';\nimport { mapGetters } from 'vuex';\nimport routerMixin from 'widget/mixins/routerMixin';\nexport default {\n name: 'Home',\n components: {\n TeamAvailability,\n },\n mixins: [configMixin, routerMixin],\n props: {\n hasFetched: {\n type: Boolean,\n default: false,\n },\n isCampaignViewClicked: {\n type: Boolean,\n default: false,\n },\n },\n data() {\n return {};\n },\n computed: {\n ...mapGetters({\n availableAgents: 'agent/availableAgents',\n activeCampaign: 'campaign/getActiveCampaign',\n conversationSize: 'conversation/getConversationSize',\n }),\n },\n methods: {\n startConversation() {\n if (this.preChatFormEnabled && !this.conversationSize) {\n return this.replaceRoute('prechat-form');\n }\n return this.replaceRoute('messages');\n },\n },\n};\n</script>\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js??ref--7-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js??ref--7-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Home.vue?vue&type=template&id=f2e40a68&\"\nimport script from \"./Home.vue?vue&type=script&lang=js&\"\nexport * from \"./Home.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"],"sourceRoot":""}