{"version":3,"file":"Home-C2j-d1f3.js","sources":["../../../app/javascript/widget/components/GroupedAvatars.vue","../../../app/javascript/widget/components/AvailableAgents.vue","../../../app/javascript/widget/components/TeamAvailability.vue","../../../app/javascript/widget/components/ArticleListItem.vue","../../../app/javascript/widget/components/ArticleList.vue","../../../app/javascript/widget/components/ArticleCategoryCard.vue","../../../app/javascript/widget/components/ArticleHero.vue","../../../app/javascript/widget/components/ArticleCardSkeletonLoader.vue","../../../app/javascript/widget/views/Home.vue"],"sourcesContent":["<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\n<template>\n <div class=\"flex\">\n <span\n v-for=\"(user, index) in users\"\n :key=\"user.id\"\n :class=\"`${\n index ? '-ml-4' : ''\n } inline-block rounded-full text-white shadow-solid`\"\n >\n <Thumbnail\n size=\"36px\"\n :username=\"user.name\"\n :src=\"user.avatar\"\n has-border\n />\n </span>\n </div>\n</template>\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, 4).map(agent => ({\n id: agent.id,\n avatar: agent.avatar_url,\n name: agent.name,\n }));\n },\n },\n};\n</script>\n\n<template>\n <GroupedAvatars :users=\"users\" />\n</template>\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 configMixin from 'widget/mixins/configMixin';\nimport availabilityMixin from 'widget/mixins/availability';\nimport FluentIcon from 'shared/components/FluentIcon/Index.vue';\nimport { IFrameHelper } from 'widget/helpers/utils';\nimport { CHATWOOT_ON_START_CONVERSATION } from '../constants/sdkEvents';\n\nexport default {\n name: 'TeamAvailability',\n components: {\n AvailableAgents,\n FluentIcon,\n },\n mixins: [configMixin, nextAvailabilityTime, availabilityMixin],\n props: {\n availableAgents: {\n type: Array,\n default: () => {},\n },\n hasConversation: {\n type: Boolean,\n default: false,\n },\n },\n emits: ['startConversation'],\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('startConversation');\n if (!this.hasConversation) {\n IFrameHelper.sendMessage({\n event: 'onEvent',\n eventIdentifier: CHATWOOT_ON_START_CONVERSATION,\n data: { hasConversation: false },\n });\n }\n },\n },\n};\n</script>\n\n<template>\n <div class=\"p-4 bg-white rounded-md shadow-sm dark:bg-slate-700\">\n <div class=\"flex items-center justify-between\">\n <div class=\"\">\n <div class=\"text-sm font-medium text-slate-700 dark:text-slate-50\">\n {{\n isOnline\n ? $t('TEAM_AVAILABILITY.ONLINE')\n : $t('TEAM_AVAILABILITY.OFFLINE')\n }}\n </div>\n <div class=\"mt-1 text-sm text-slate-500 dark:text-slate-100\">\n {{ replyWaitMessage }}\n </div>\n </div>\n <AvailableAgents v-if=\"isOnline\" :agents=\"availableAgents\" />\n </div>\n <button\n class=\"inline-flex items-center justify-between px-2 py-1 mt-2 -ml-2 text-sm font-medium leading-6 rounded-md text-slate-800 dark:text-slate-50 hover:bg-slate-25 dark:hover:bg-slate-800\"\n :style=\"{ color: widgetColor }\"\n @click=\"startConversation\"\n >\n <span class=\"pr-2 text-sm\">\n {{\n hasConversation\n ? $t('CONTINUE_CONVERSATION')\n : $t('START_CONVERSATION')\n }}\n </span>\n <FluentIcon icon=\"arrow-right\" size=\"14\" />\n </button>\n </div>\n</template>\n","<script>\nimport FluentIcon from 'shared/components/FluentIcon/Index.vue';\n\nexport default {\n components: { FluentIcon },\n props: {\n link: {\n type: String,\n default: '',\n },\n title: {\n type: String,\n default: '',\n },\n },\n emits: ['selectArticle'],\n data() {\n return {};\n },\n methods: {\n onClick() {\n this.$emit('selectArticle', this.link);\n },\n },\n};\n</script>\n\n<template>\n <li\n class=\"py-1 flex items-center justify-between -mx-1 px-1 hover:bg-slate-25 dark:hover:bg-slate-600 rounded cursor-pointer text-slate-700 dark:text-slate-50 dark:hover:text-slate-25 hover:text-slate-900\"\n role=\"button\"\n @click=\"onClick\"\n >\n <button class=\"underline-offset-2 text-sm leading-6 text-left\">\n {{ title }}\n </button>\n <span class=\"pl-1 arrow\">\n <FluentIcon icon=\"arrow-right\" size=\"14\" />\n </span>\n </li>\n</template>\n","<script>\nimport ArticleListItem from './ArticleListItem.vue';\n\nexport default {\n components: {\n ArticleListItem,\n },\n props: {\n articles: {\n type: Array,\n default: () => [],\n },\n },\n emits: ['selectArticle'],\n data() {\n return {};\n },\n methods: {\n onClick(link) {\n this.$emit('selectArticle', link);\n },\n },\n};\n</script>\n\n<template>\n <ul role=\"list\" class=\"py-2\">\n <ArticleListItem\n v-for=\"article in articles\"\n :key=\"article.slug\"\n :link=\"article.link\"\n :title=\"article.title\"\n @select-article=\"onClick\"\n />\n </ul>\n</template>\n","<script>\nimport { mapGetters } from 'vuex';\nimport ArticleList from './ArticleList.vue';\nimport FluentIcon from 'shared/components/FluentIcon/Index.vue';\n\nexport default {\n components: { FluentIcon, ArticleList },\n props: {\n title: {\n type: String,\n default: '',\n },\n articles: {\n type: Array,\n default: () => [],\n },\n },\n emits: ['view', 'viewAll'],\n computed: {\n ...mapGetters({ widgetColor: 'appConfig/getWidgetColor' }),\n },\n methods: {\n onArticleClick(link) {\n this.$emit('view', link);\n },\n },\n};\n</script>\n\n<template>\n <div>\n <h3 class=\"mb-0 text-sm font-medium text-slate-800 dark:text-slate-50\">\n {{ title }}\n </h3>\n <ArticleList :articles=\"articles\" @select-article=\"onArticleClick\" />\n <button\n class=\"inline-flex items-center justify-between px-2 py-1 -ml-2 text-sm font-medium leading-6 rounded-md text-slate-800 dark:text-slate-50 hover:bg-slate-25 dark:hover:bg-slate-800 see-articles\"\n :style=\"{ color: widgetColor }\"\n @click=\"$emit('viewAll')\"\n >\n <span class=\"pr-2 text-sm\">{{ $t('PORTAL.VIEW_ALL_ARTICLES') }}</span>\n <FluentIcon icon=\"arrow-right\" size=\"14\" />\n </button>\n </div>\n</template>\n\n<style lang=\"scss\" scoped>\n.see-articles {\n color: var(--brand-textButtonClear);\n svg {\n color: var(--brand-textButtonClear);\n }\n}\n</style>\n","<script>\nimport CategoryCard from './ArticleCategoryCard.vue';\nexport default {\n components: { CategoryCard },\n props: {\n articles: {\n type: Array,\n default: () => [],\n },\n },\n emits: ['view', 'viewAll'],\n methods: {\n onArticleClick(link) {\n this.$emit('view', link);\n },\n },\n};\n</script>\n\n<template>\n <CategoryCard\n :title=\"$t('PORTAL.POPULAR_ARTICLES')\"\n :articles=\"articles.slice(0, 6)\"\n @view-all=\"$emit('viewAll')\"\n @view=\"onArticleClick\"\n />\n</template>\n","<template>\n <div class=\"py-4 space-y-4 bg-white dark:bg-slate-700\">\n <div class=\"space-y-2 animate-pulse\">\n <div class=\"h-6 bg-slate-100 dark:bg-slate-500 rounded w-2/5\" />\n </div>\n <div class=\"space-y-2 animate-pulse\">\n <div class=\"h-4 bg-slate-100 dark:bg-slate-500 rounded\" />\n <div class=\"h-4 bg-slate-100 dark:bg-slate-500 rounded\" />\n <div class=\"h-4 bg-slate-100 dark:bg-slate-500 rounded\" />\n </div>\n <div class=\"space-y-2 animate-pulse\">\n <div class=\"h-4 bg-slate-100 dark:bg-slate-500 rounded w-1/5\" />\n </div>\n </div>\n</template>\n","<script>\nimport TeamAvailability from 'widget/components/TeamAvailability.vue';\nimport ArticleHero from 'widget/components/ArticleHero.vue';\nimport ArticleCardSkeletonLoader from 'widget/components/ArticleCardSkeletonLoader.vue';\n\nimport { mapGetters } from 'vuex';\nimport { useDarkMode } from 'widget/composables/useDarkMode';\nimport routerMixin from 'widget/mixins/routerMixin';\nimport configMixin from 'widget/mixins/configMixin';\n\nexport default {\n name: 'Home',\n components: {\n ArticleHero,\n TeamAvailability,\n ArticleCardSkeletonLoader,\n },\n mixins: [configMixin, routerMixin],\n setup() {\n const { prefersDarkMode } = useDarkMode();\n return { prefersDarkMode };\n },\n computed: {\n ...mapGetters({\n availableAgents: 'agent/availableAgents',\n conversationSize: 'conversation/getConversationSize',\n unreadMessageCount: 'conversation/getUnreadMessageCount',\n popularArticles: 'article/popularArticles',\n articleUiFlags: 'article/uiFlags',\n }),\n widgetLocale() {\n return this.$i18n.locale || 'en';\n },\n portal() {\n return window.chatwootWebChannel.portal;\n },\n showArticles() {\n return (\n this.portal &&\n !this.articleUiFlags.isFetching &&\n this.popularArticles.length\n );\n },\n defaultLocale() {\n const widgetLocale = this.widgetLocale;\n const { allowed_locales: allowedLocales, default_locale: defaultLocale } =\n this.portal.config;\n\n // IMPORTANT: Variation strict locale matching, Follow iso_639_1_code\n // If the exact match of a locale is available in the list of portal locales, return it\n // Else return the default locale. Eg: `es` will not work if `es_ES` is available in the list\n if (allowedLocales.includes(widgetLocale)) {\n return widgetLocale;\n }\n return defaultLocale;\n },\n },\n mounted() {\n if (this.portal && this.popularArticles.length === 0) {\n const locale = this.defaultLocale;\n this.$store.dispatch('article/fetch', {\n slug: this.portal.slug,\n locale,\n });\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 openArticleInArticleViewer(link) {\n let linkToOpen = `${link}?show_plain_layout=true`;\n const isDark = this.prefersDarkMode;\n if (isDark) {\n linkToOpen = `${linkToOpen}&theme=dark`;\n }\n this.$router.push({\n name: 'article-viewer',\n query: { link: linkToOpen },\n });\n },\n viewAllArticles() {\n const locale = this.defaultLocale;\n const {\n portal: { slug },\n } = window.chatwootWebChannel;\n this.openArticleInArticleViewer(`/hc/${slug}/${locale}`);\n },\n },\n};\n</script>\n\n<template>\n <div\n class=\"z-50 flex flex-col flex-1 w-full rounded-md\"\n :class=\"{ 'pb-2': showArticles, 'justify-end': !showArticles }\"\n >\n <div class=\"w-full px-4 pt-4\">\n <TeamAvailability\n :available-agents=\"availableAgents\"\n :has-conversation=\"!!conversationSize\"\n :unread-count=\"unreadMessageCount\"\n @start-conversation=\"startConversation\"\n />\n </div>\n <div v-if=\"showArticles\" class=\"w-full px-4 py-2\">\n <div class=\"w-full p-4 bg-white rounded-md shadow-sm dark:bg-slate-700\">\n <ArticleHero\n v-if=\"\n !articleUiFlags.isFetching &&\n !articleUiFlags.isError &&\n popularArticles.length\n \"\n :articles=\"popularArticles\"\n @view=\"openArticleInArticleViewer\"\n @view-all=\"viewAllArticles\"\n />\n </div>\n </div>\n <div v-if=\"articleUiFlags.isFetching\" class=\"w-full px-4 py-2\">\n <div class=\"w-full p-4 bg-white rounded-md shadow-sm dark:bg-slate-700\">\n <ArticleCardSkeletonLoader />\n </div>\n </div>\n </div>\n</template>\n"],"names":["_sfc_main","Thumbnail","_hoisted_1","_openBlock","_createElementBlock","_Fragment","_renderList","$props","user","index","_normalizeClass","_createVNode","_component_Thumbnail","GroupedAvatars","agent","_createBlock","_component_GroupedAvatars","$options","AvailableAgents","FluentIcon","configMixin","nextAvailabilityTime","availabilityMixin","mapGetters","getContrastingTextColor","workingHoursEnabled","anyAgentOnline","IFrameHelper","CHATWOOT_ON_START_CONVERSATION","_hoisted_2","_hoisted_3","_hoisted_4","_hoisted_5","_hoisted_6","_createElementVNode","_toDisplayString","_ctx","_component_AvailableAgents","_createCommentVNode","_normalizeStyle","args","_component_FluentIcon","ArticleListItem","link","article","_component_ArticleListItem","ArticleList","_component_ArticleList","CategoryCard","_component_CategoryCard","_sfc_render","_cache","ArticleHero","TeamAvailability","ArticleCardSkeletonLoader","routerMixin","prefersDarkMode","useDarkMode","widgetLocale","allowedLocales","defaultLocale","locale","linkToOpen","slug","_component_TeamAvailability","_component_ArticleHero","_component_ArticleCardSkeletonLoader"],"mappings":"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"}