{"version":3,"sources":["webpack:///./src/screens/chat/index.vue?da58","webpack:///./src/mixins/indexDB.js","webpack:///./src/screens/chat/scripts.js","webpack:///./src/screens/chat/scripts.js?4d7a","webpack:///./src/screens/chat/index.vue","webpack:///./node_modules/detect-browser/index.js","webpack:///./src/screens/chat/index.vue?2e0e"],"names":["render","_vm","this","_h","$createElement","_c","_self","staticClass","attrs","_e","staticRenderFns","data","browser","detect","mounted","checkBrowserCompatibility","methods","window","indexedDB","mozIndexedDB","mozIndexedD","webkitIndexedDB","webkitIndex","msIndexedDB","IDBTransaction","webkitIDBTransaction","msIDBTransaction","IDBKeyRange","webkitIDBKeyRange","msIDBKeyRange","setLocalForageDriver","addToastDanger","$setStorageDriver","localforage","LOCALSTORAGE","browserName","name","mixins","IndexDBMixin","Mixin","components","ChatStructure","EmptyView","isLazyLoading","allBots","userId","userIdsNotAllowed","computed","mapGetters","watch","$getterInfoUser","to","setColor","color","getterGenericEventsIsWritingLoading","sockets","authenticated","val","executeOnAuthenticated","addEventListener","onMessageEvent","$eventBus","$on","updateSettingsInDatabasesAndQuery","timeClear","setTimeout","executeOnMounted","clearTimeout","beforeDestroy","removeEventListener","mapMutations","mapActions","event","Object","keys","length","call","value","actionSetLocalForageUserId","then","username","document","location","reload","checkIfNotExistDataInQueryString","setAllBots","checkActiveAndInactiveTabsAndSetNext","getActiveTab","dataToSetTab","setTabByActualIndexTabAndReplaceRoute","listActiveTab","maxIndex","getBotConfiguration","catch","err","console","error","response","updateIndexTab","checkIsProactive","checkTabsInactive","actionGlobalDisconnect","$route","query","vlibrasAlreadyOpen","$mutationVlibrasEnable","url","cloneDeep","getDataInQueryStringAndParams","actionGetSessionStorageUserId","actionSetSessionStorageUserId","botId","$actionIsDebugger","isDebugger","$router","currentRoute","params","push","path","actionGetLocalStorageAllBots","activeTab","actionGetLocalForageListTabs","getGratherThanTabInLocalForage","listTabs","forEach","element","indexToAdd","newListTabs","indexOf","concat","actionSetLocalForageListTabs","getterSettingWebchat","Promise","resolve","queryString","removeLoadingAndShowMessage","reject","requiredData","checkRequiredData","context","conversationId","createdAt","Date","key","localforageKeys","WEBCHATSETTINGS","$setItem","SET_SETTINGS_WEBCHAT","getDataInLocalForage","$getItem","message","typeToast","dismissAfter","required","localforageData","uuid","v4","actionGetAllDataBotConfiguration","responseAction","botName","enabled","addUpdateNewBot","socket_connect","status","includes","newBot","index","findIndex","actionSetLocalStorageAllBots","firstBoot","JSON","parse","sessionStorage","getItem","getterSelectedBot","isProactive","setItem","stringify","$emit","isSend","$keysInStorage","keysWebchat","filter","existingTabs","tab","find","split","keySplited","parseInt","uniq","$removeItem","indexToDeleteListTabs","lastMessage","diff","Math","abs","minutes","floor","Const","MINUTES_TO_RESET_CACHE_LASTMESSAGE","splice","MINUTES_TO_RESET_CACHE_CREATEDAT","findQueryActiveTab","i","findActualIndexTab","actualIndexTab","existing","getGratherThanItemInLocalForage","component","__spreadArrays","s","il","arguments","r","Array","k","a","j","jl","defineProperty","exports","BrowserInfo","version","os","NodeInfo","process","platform","BotInfo","bot","SEARCHBOX_UA_REGEX","SEARCHBOT_OS_REGEX","REQUIRED_VERSION_PARTS","userAgentRules","operatingSystemRules","userAgent","parseUserAgent","navigator","getNodeVersion","ua","matchedRule","reduce","matched","_a","regex","uaMatch","exec","match","versionParts","slice","createVersionParts","join","detectOS","ii","count","test","isNode","output"],"mappings":"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","file":"js/chunk-3cf44aca.5ebe3a18.js","sourcesContent":["var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('section',{staticClass:\"container-page-home\"},[(_vm.isLazyLoading)?_c('section',{staticClass:\"lazy-loading\"},[_c('empty-view',{attrs:{\"message\":\"Conectando\",\"image-src\":\"/img/loading-ellipsis.gif\"}})],1):_vm._e(),_c('section',{staticClass:\"page-home\"},[_c('chat-structure')],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { detect } from 'detect-browser'\nimport localforage from 'localforage'\n\nexport default {\n data () {\n return {\n browser: detect()\n }\n },\n mounted () {\n this.checkBrowserCompatibility()\n },\n methods: {\n checkBrowserCompatibility () {\n if (!window.indexedDB) {\n if (window.mozIndexedDB) {\n window.indexedDB = window.mozIndexedD\n } else if (window.webkitIndexedDB) {\n window.indexedDB = window.webkitIndex\n } else if (window.msIndexedDB) {\n window.indexedDB = window.msIndexedDB\n }\n }\n\n if (!window.IDBTransaction) {\n if (window.webkitIDBTransaction) {\n window.IDBTransaction = window.webkitIDBTransaction\n } else if (window.msIDBTransaction) {\n window.IDBTransaction = window.msIDBTransaction\n }\n }\n\n if (!window.IDBKeyRange) {\n if (window.webkitIDBKeyRange) {\n window.IDBKeyRange = window.webkitIDBKeyRange\n } else if (window.msIDBKeyRange) {\n window.IDBKeyRange = window.msIDBKeyRange\n }\n }\n\n if (!window.indexedDB) {\n this.addToastDanger('Seu navegador não tem suporte para a versão estável do IndexDB, por favor entre em contato com a equipe de suporte!', 60000)\n } else {\n this.setLocalForageDriver()\n }\n },\n setLocalForageDriver () {\n if (this.browser) {\n // if (this.browser.name === 'edge' || this.browser.name === 'ie' || /iphone|ipod|ipad/i.test(navigator.userAgent)) {\n // this.$setStorageDriver(localforage.LOCALSTORAGE)\n // } else {\n // this.$setStorageDriver(localforage.INDEXEDDB)\n // }\n this.$setStorageDriver(localforage.LOCALSTORAGE)\n }\n\n window.browserName = this.browser.name\n }\n }\n}\n","/* eslint-disable eqeqeq */\nimport {\n indexOf,\n cloneDeep,\n findIndex,\n uniq\n} from 'lodash'\nimport { mapGetters, mapActions, mapMutations } from 'vuex'\nimport { uuid } from 'vue-uuid'\nimport { Mixin } from '@cedro-technologies/people-vue-ui'\n\nimport Const from '../../helper/const'\nimport { ChatStructure, EmptyView } from '../../components/index'\nimport IndexDBMixin from '../../mixins/indexDB'\nimport localforageKeys from '../../helper/localForageKeys'\n\nexport default {\n name: 'ChatScreen',\n mixins: [\n IndexDBMixin,\n Mixin\n ],\n components: {\n ChatStructure,\n EmptyView\n },\n data () {\n return {\n isLazyLoading: true,\n allBots: [],\n userId: '',\n userIdsNotAllowed: [\n 'null',\n 'undefined'\n ]\n }\n },\n computed: {\n ...mapGetters([\n 'getterSelectedBot',\n '$getterIsDebugger',\n 'getterSettingWebchat',\n '$getterInfoUser',\n 'getterGenericEventsIsWritingLoading'\n ])\n },\n watch: {\n $getterInfoUser (to) {\n this.setColor('botColor', to.color)\n this.setColor('chatMessage', '#dcf8c6')\n },\n getterGenericEventsIsWritingLoading (to) {\n this.isLazyLoading = to\n }\n },\n sockets: {\n authenticated (val) {\n this.executeOnAuthenticated(val)\n }\n },\n mounted () {\n window.addEventListener('message', this.onMessageEvent)\n\n this.$eventBus.$on('update-settings', this.updateSettingsInDatabasesAndQuery)\n\n const timeClear = setTimeout(() => {\n this.executeOnMounted()\n clearTimeout(timeClear)\n }, 1000)\n },\n beforeDestroy () {\n window.removeEventListener('message', this.onMessageEvent)\n },\n methods: {\n ...mapMutations([\n 'SET_SETTINGS_WEBCHAT',\n '$mutationVlibrasEnable'\n ]),\n ...mapActions([\n 'actionGetLocalForageListTabs',\n 'actionSetLocalForageListTabs',\n 'actionGetLocalStorageAllBots',\n 'actionSetLocalStorageAllBots',\n 'actionGlobalDisconnect',\n 'actionGetAllDataBotConfiguration',\n 'actionGetLocalForageUserId',\n 'actionSetLocalForageUserId',\n 'socket_connect',\n 'actionSetSessionStorageUserId',\n 'actionGetSessionStorageUserId',\n '$actionIsDebugger'\n ]),\n onMessageEvent (event) {\n if (Object.keys(event.data).length > 0 && event.data.call === 'PostUserData') {\n const data = event.data.value || {}\n this.actionSetLocalForageUserId(data.userId)\n .then(() => {\n this.updateSettingsInDatabasesAndQuery({\n userId: data.userId,\n username: data.username\n })\n })\n\n document.location.reload(true)\n }\n },\n async executeOnMounted () {\n await this.checkIfNotExistDataInQueryString()\n .then(async () => {\n await this.setAllBots()\n .then(async () => {\n await this.checkActiveAndInactiveTabsAndSetNext(this.getActiveTab())\n .then(async (dataToSetTab) => {\n await this.setTabByActualIndexTabAndReplaceRoute(dataToSetTab.listActiveTab, dataToSetTab.maxIndex)\n .then(async () => {\n await this.getBotConfiguration()\n .catch((err) => {\n console.error(err)\n })\n })\n .catch((err) => {\n console.error(err)\n })\n })\n .catch((err) => {\n console.error(err)\n })\n })\n .catch((err) => {\n console.error(err)\n })\n })\n .catch((err) => {\n console.error(err)\n })\n },\n async executeOnAuthenticated (response) {\n if (!response) {\n this.actionGlobalDisconnect()\n } else {\n await this.updateIndexTab()\n\n setTimeout(async () => {\n this.checkIsProactive()\n\n await this.checkTabsInactive()\n }, 2000)\n }\n\n if (this.$route.query && this.$route.query.vlibrasAlreadyOpen && this.$route.query.vlibrasAlreadyOpen === 'true') {\n setTimeout(() => {\n this.$mutationVlibrasEnable(true)\n }, 1000)\n }\n\n this.isLazyLoading = false\n },\n async checkIfNotExistDataInQueryString () {\n const url = cloneDeep(this.getDataInQueryStringAndParams())\n if (!(await this.actionGetSessionStorageUserId())) {\n this.actionSetSessionStorageUserId()\n }\n this.userId = await this.actionGetSessionStorageUserId()\n\n if (url.botId) {\n url.userId = this.userId\n if (!url.username) {\n url.username = 'Usuário'\n }\n this.$actionIsDebugger(!!url.isDebugger || false)\n\n await this.actionSetLocalForageUserId(url.userId)\n\n if (this.$router.currentRoute.params.botId !== url.botId\n || this.$router.currentRoute.query.userId != url.userId\n || this.$router.currentRoute.query.username != url.username\n || this.$router.currentRoute.query.isDebugger != url.isDebugger\n || this.$router.currentRoute.query.vlibrasAlreadyOpen != url.vlibrasAlreadyOpen) {\n this.$router.push({\n path: `/${url.botId}`,\n query: {\n isDebugger: url.isDebugger,\n userId: url.userId,\n username: url.username,\n vlibrasAlreadyOpen: url.vlibrasAlreadyOpen\n }\n })\n }\n }\n },\n async setAllBots () {\n this.allBots = await this.actionGetLocalStorageAllBots()\n },\n getActiveTab () {\n return this.getDataInQueryStringAndParams().activeTab || 1\n },\n async checkActiveAndInactiveTabsAndSetNext () {\n const listActiveTab = await this.actionGetLocalForageListTabs()\n\n if (listActiveTab) {\n const maxIndex = await this.getGratherThanTabInLocalForage()\n\n return { listActiveTab, maxIndex }\n }\n\n return { listActiveTab: [], maxIndex: 0 }\n },\n async getGratherThanTabInLocalForage () {\n const listTabs = await this.actionGetLocalForageListTabs()\n let maxIndex = -1\n\n if (listTabs) {\n listTabs.forEach(element => {\n if (element > maxIndex) {\n maxIndex = element\n }\n })\n }\n\n maxIndex++\n\n if (maxIndex == this.getActiveTab()) {\n maxIndex++\n }\n\n return maxIndex\n },\n async setTabByActualIndexTabAndReplaceRoute (listTabs, indexToAdd) {\n let newListTabs = cloneDeep(listTabs)\n if (indexOf(newListTabs, indexToAdd) === -1) {\n newListTabs = newListTabs.concat(indexToAdd)\n }\n\n await this.actionSetLocalForageListTabs(newListTabs)\n\n await this.updateSettingsInDatabasesAndQuery({\n ...this.getterSettingWebchat,\n activeTab: indexToAdd\n })\n\n return Promise.resolve()\n },\n async updateSettingsInDatabasesAndQuery (data) {\n const queryString = this.getDataInQueryStringAndParams()\n\n if (!queryString.botId) {\n this.removeLoadingAndShowMessage('Não foi possível configurar o webchat, pois o bot não foi encontrado na url', 'addToastWarning', 60000)\n return Promise.reject()\n }\n\n let requiredData = {\n botId: queryString.botId,\n userId: queryString.userId,\n username: queryString.username,\n isDebugger: queryString.isDebugger,\n vlibrasAlreadyOpen: queryString.vlibrasAlreadyOpen\n }\n\n requiredData = await this.checkRequiredData(requiredData)\n\n const context = {\n ...this.getterSettingWebchat,\n ...requiredData,\n ...data,\n userId: this.userId\n }\n\n if (context.conversationId) {\n context.conversationId = this.userId\n }\n\n if (!context.createdAt) {\n context.createdAt = new Date()\n }\n\n const key = localforageKeys.WEBCHATSETTINGS('', this.getActiveTab(), context.botId)\n\n await this.$setItem(key, context)\n\n this.SET_SETTINGS_WEBCHAT(context)\n\n return Promise.resolve()\n },\n getDataInQueryStringAndParams () {\n return {\n botId: this.$route.params.botId,\n userId: this.$route.query.userId,\n username: this.$route.query.username,\n isDebugger: this.$route.query.isDebugger,\n activeTab: this.$route.query.activeTab,\n vlibrasAlreadyOpen: this.$route.query.vlibrasAlreadyOpen\n }\n },\n getDataInLocalForage () {\n const key = localforageKeys.WEBCHATSETTINGS('', this.getActiveTab(), this.getDataInQueryStringAndParams().botId)\n\n return this.$getItem(key)\n .then((response) => Promise.resolve(response))\n .catch(() => {\n this.removeLoadingAndShowMessage('Não foi possível acessar as configurações iniciais do webchat, pois seu navegador não tem suporte necessário', 'addToastDanger', 60000)\n })\n },\n removeLoadingAndShowMessage (message, typeToast, dismissAfter) {\n this.actionGlobalDisconnect(this.$route.params.botId)\n\n this[typeToast || 'addToastDanger'](message, dismissAfter)\n },\n async checkRequiredData (data) {\n const required = {\n botId: data.botId,\n userId: data.userId,\n username: data.username,\n isDebugger: data.isDebugger,\n vlibrasAlreadyOpen: data.vlibrasAlreadyOpen\n }\n\n const localforageData = await this.getDataInLocalForage()\n\n if (localforageData) {\n if (!required.botId) {\n required.botId = localforageData.botId\n }\n if (!required.userId) {\n required.userId = localforageData.userId || uuid.v4()\n }\n if (!required.username) {\n required.username = localforageData.username || 'Usuário'\n }\n if (!required.isDebugger) {\n required.isDebugger = localforageData.isDebugger || false\n }\n if (!required.vlibrasAlreadyOpen) {\n required.vlibrasAlreadyOpen = localforageData.vlibrasAlreadyOpen || false\n }\n }\n\n return required\n },\n getBotConfiguration () {\n return this.actionGetAllDataBotConfiguration(this.getDataInQueryStringAndParams().botId)\n .then(async (responseAction) => {\n if (Object.keys(responseAction.data).length && responseAction.data.botName && responseAction.data.color) {\n if (responseAction.data.enabled) {\n await this.addUpdateNewBot({ ...responseAction.data, botId: this.getDataInQueryStringAndParams().botId })\n\n this.socket_connect()\n } else {\n this.removeLoadingAndShowMessage('Este bot não está habilitado, tente novamente mais tarde!', 'addToastWarning')\n }\n } else {\n this.removeLoadingAndShowMessage('O bot não está configurado corretamente, tente novamente mais tarde!', 'addToastWarning')\n }\n })\n .catch((err) => {\n if (err.status === 404 || err.message.includes('failed with status code 404')) {\n this.removeLoadingAndShowMessage('O bot não foi encontrado, tente novamente!', 'addToastWarning')\n } else {\n this.removeLoadingAndShowMessage('Não foi possível adquirir os dados do bot, tente novamente mais tarde!', 'addToastDanger', 60000)\n }\n })\n },\n async addUpdateNewBot (newBot) {\n await this.setAllBots()\n\n if (newBot && newBot.botId) {\n const index = findIndex(this.allBots, { botId: newBot.botId })\n\n if (index > -1) {\n this.allBots[index] = newBot\n } else {\n this.allBots = this.allBots.concat(newBot)\n }\n\n this.actionSetLocalStorageAllBots(this.allBots)\n }\n },\n checkIsProactive () {\n const firstBoot = JSON.parse(sessionStorage.getItem('firstBoot'))\n\n if (this.getterSelectedBot.isProactive && firstBoot) {\n sessionStorage.setItem('firstBoot', JSON.stringify(false))\n this.$eventBus.$emit('send-message', {\n value: 'oi',\n isSend: false\n })\n }\n },\n async checkTabsInactive () {\n const listActiveTab = await this.actionGetLocalForageListTabs()\n const keys = await this.$keysInStorage()\n\n const keysWebchat = keys.filter((key) => key.includes('webChatSettings'))\n\n let existingTabs = listActiveTab.filter((tab) => keysWebchat.find((key) => key.split('/')[0] == tab))\n\n keysWebchat.forEach((key) => {\n const keySplited = key.split('/')[0]\n if (!existingTabs.find((tab) => tab == keySplited)) {\n existingTabs = existingTabs.concat(parseInt(keySplited, 10))\n }\n })\n\n await this.actionSetLocalForageListTabs(uniq(existingTabs))\n\n await keys.forEach(async (key) => {\n if (key.includes('webChatSettings')) {\n if (key.includes('undefined')) {\n this.$removeItem(key)\n }\n\n const activeTab = key.split('/')[0]\n const indexToDeleteListTabs = indexOf(listActiveTab, activeTab)\n\n const value = await this.$getItem(key)\n\n if (value && value.createdAt) {\n if (!value.lastMessage) {\n const diff = Math.abs(new Date(value.createdAt) - new Date())\n const minutes = Math.floor((diff / 1000) / 60)\n\n if (minutes >= Const.MINUTES_TO_RESET_CACHE_CREATEDAT) {\n this.$removeItem(key)\n\n if (listActiveTab > -1) {\n listActiveTab.splice(indexToDeleteListTabs, 1)\n await this.actionSetLocalForageListTabs(listActiveTab)\n }\n }\n } else {\n const diff = Math.abs(new Date(value.lastMessage) - new Date())\n const minutes = Math.floor((diff / 1000) / 60)\n\n if (minutes >= Const.MINUTES_TO_RESET_CACHE_LASTMESSAGE) {\n this.$removeItem(key)\n\n if (listActiveTab > -1) {\n listActiveTab.splice(indexToDeleteListTabs, 1)\n await this.actionSetLocalForageListTabs(listActiveTab)\n }\n }\n }\n } else {\n this.$removeItem(key)\n\n if (listActiveTab > -1) {\n listActiveTab.splice(indexToDeleteListTabs, 1)\n await this.actionSetLocalForageListTabs(listActiveTab)\n }\n }\n } else if (!key.includes('activeTabs') && !key.includes('allBots') && !key.includes('userId')) {\n this.$removeItem(key)\n }\n })\n },\n async updateIndexTab () {\n const listActiveTab = await this.actionGetLocalForageListTabs()\n\n if (listActiveTab) {\n const findQueryActiveTab = listActiveTab.find(i => i == this.getDataInQueryStringAndParams().activeTab)\n const findActualIndexTab = listActiveTab.find(i => i == this.actualIndexTab)\n\n if (this.getDataInQueryStringAndParams().activeTab) {\n if (!findQueryActiveTab) {\n this.setTabByActualIndexTabAndReplaceRoute(listActiveTab, this.getDataInQueryStringAndParams().activeTab)\n }\n\n return Promise.resolve()\n }\n\n if (!findActualIndexTab) {\n this.setTabByActualIndexTabAndReplaceRoute(listActiveTab, this.actualIndexTab)\n } else {\n let existing = false\n\n for (let index = 1; index <= listActiveTab.length; index++) {\n if (indexOf(listActiveTab, index) < 0) {\n existing = true\n this.actualIndexTab = index\n break\n }\n }\n\n if (!existing) {\n this.actualIndexTab = this.getGratherThanItemInLocalForage(listActiveTab)\n }\n\n this.setTabByActualIndexTabAndReplaceRoute(listActiveTab, this.actualIndexTab)\n }\n return Promise.resolve()\n }\n\n this.setTabByActualIndexTabAndReplaceRoute([], this.getDataInQueryStringAndParams().activeTab || 1)\n return Promise.resolve()\n }\n }\n}\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/eslint-loader/index.js??ref--13-0!./scripts.js?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/eslint-loader/index.js??ref--13-0!./scripts.js?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=e2b7e19c&lang=html&\"\nimport script from \"./scripts.js?vue&type=script&lang=js&\"\nexport * from \"./scripts.js?vue&type=script&lang=js&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&lang=scss&\"\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","\"use strict\";\nvar __spreadArrays = (this && this.__spreadArrays) || function () {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar BrowserInfo = /** @class */ (function () {\n function BrowserInfo(name, version, os) {\n this.name = name;\n this.version = version;\n this.os = os;\n }\n return BrowserInfo;\n}());\nexports.BrowserInfo = BrowserInfo;\nvar NodeInfo = /** @class */ (function () {\n function NodeInfo(version) {\n this.version = version;\n this.name = 'node';\n this.os = process.platform;\n }\n return NodeInfo;\n}());\nexports.NodeInfo = NodeInfo;\nvar BotInfo = /** @class */ (function () {\n function BotInfo() {\n this.bot = true; // NOTE: deprecated test name instead\n this.name = 'bot';\n this.version = null;\n this.os = null;\n }\n return BotInfo;\n}());\nexports.BotInfo = BotInfo;\n// tslint:disable-next-line:max-line-length\nvar SEARCHBOX_UA_REGEX = /alexa|bot|crawl(er|ing)|facebookexternalhit|feedburner|google web preview|nagios|postrank|pingdom|slurp|spider|yahoo!|yandex/;\nvar SEARCHBOT_OS_REGEX = /(nuhk)|(Googlebot)|(Yammybot)|(Openbot)|(Slurp)|(MSNBot)|(Ask Jeeves\\/Teoma)|(ia_archiver)/;\nvar REQUIRED_VERSION_PARTS = 3;\nvar userAgentRules = [\n ['aol', /AOLShield\\/([0-9\\._]+)/],\n ['edge', /Edge\\/([0-9\\._]+)/],\n ['edge-ios', /EdgiOS\\/([0-9\\._]+)/],\n ['yandexbrowser', /YaBrowser\\/([0-9\\._]+)/],\n ['vivaldi', /Vivaldi\\/([0-9\\.]+)/],\n ['kakaotalk', /KAKAOTALK\\s([0-9\\.]+)/],\n ['samsung', /SamsungBrowser\\/([0-9\\.]+)/],\n ['silk', /\\bSilk\\/([0-9._-]+)\\b/],\n ['miui', /MiuiBrowser\\/([0-9\\.]+)$/],\n ['beaker', /BeakerBrowser\\/([0-9\\.]+)/],\n ['edge-chromium', /Edg\\/([0-9\\.]+)/],\n [\n 'chromium-webview',\n /(?!Chrom.*OPR)wv\\).*Chrom(?:e|ium)\\/([0-9\\.]+)(:?\\s|$)/,\n ],\n ['chrome', /(?!Chrom.*OPR)Chrom(?:e|ium)\\/([0-9\\.]+)(:?\\s|$)/],\n ['phantomjs', /PhantomJS\\/([0-9\\.]+)(:?\\s|$)/],\n ['crios', /CriOS\\/([0-9\\.]+)(:?\\s|$)/],\n ['firefox', /Firefox\\/([0-9\\.]+)(?:\\s|$)/],\n ['fxios', /FxiOS\\/([0-9\\.]+)/],\n ['opera-mini', /Opera Mini.*Version\\/([0-9\\.]+)/],\n ['opera', /Opera\\/([0-9\\.]+)(?:\\s|$)/],\n ['opera', /OPR\\/([0-9\\.]+)(:?\\s|$)/],\n ['ie', /Trident\\/7\\.0.*rv\\:([0-9\\.]+).*\\).*Gecko$/],\n ['ie', /MSIE\\s([0-9\\.]+);.*Trident\\/[4-7].0/],\n ['ie', /MSIE\\s(7\\.0)/],\n ['bb10', /BB10;\\sTouch.*Version\\/([0-9\\.]+)/],\n ['android', /Android\\s([0-9\\.]+)/],\n ['ios', /Version\\/([0-9\\._]+).*Mobile.*Safari.*/],\n ['safari', /Version\\/([0-9\\._]+).*Safari/],\n ['facebook', /FBAV\\/([0-9\\.]+)/],\n ['instagram', /Instagram\\s([0-9\\.]+)/],\n ['ios-webview', /AppleWebKit\\/([0-9\\.]+).*Mobile/],\n ['ios-webview', /AppleWebKit\\/([0-9\\.]+).*Gecko\\)$/],\n ['searchbot', SEARCHBOX_UA_REGEX],\n];\nvar operatingSystemRules = [\n ['iOS', /iP(hone|od|ad)/],\n ['Android OS', /Android/],\n ['BlackBerry OS', /BlackBerry|BB10/],\n ['Windows Mobile', /IEMobile/],\n ['Amazon OS', /Kindle/],\n ['Windows 3.11', /Win16/],\n ['Windows 95', /(Windows 95)|(Win95)|(Windows_95)/],\n ['Windows 98', /(Windows 98)|(Win98)/],\n ['Windows 2000', /(Windows NT 5.0)|(Windows 2000)/],\n ['Windows XP', /(Windows NT 5.1)|(Windows XP)/],\n ['Windows Server 2003', /(Windows NT 5.2)/],\n ['Windows Vista', /(Windows NT 6.0)/],\n ['Windows 7', /(Windows NT 6.1)/],\n ['Windows 8', /(Windows NT 6.2)/],\n ['Windows 8.1', /(Windows NT 6.3)/],\n ['Windows 10', /(Windows NT 10.0)/],\n ['Windows ME', /Windows ME/],\n ['Open BSD', /OpenBSD/],\n ['Sun OS', /SunOS/],\n ['Chrome OS', /CrOS/],\n ['Linux', /(Linux)|(X11)/],\n ['Mac OS', /(Mac_PowerPC)|(Macintosh)/],\n ['QNX', /QNX/],\n ['BeOS', /BeOS/],\n ['OS/2', /OS\\/2/],\n ['Search Bot', SEARCHBOT_OS_REGEX],\n];\nfunction detect(userAgent) {\n if (!!userAgent) {\n return parseUserAgent(userAgent);\n }\n if (typeof navigator !== 'undefined') {\n return parseUserAgent(navigator.userAgent);\n }\n return getNodeVersion();\n}\nexports.detect = detect;\nfunction parseUserAgent(ua) {\n // opted for using reduce here rather than Array#first with a regex.test call\n // this is primarily because using the reduce we only perform the regex\n // execution once rather than once for the test and for the exec again below\n // probably something that needs to be benchmarked though\n var matchedRule = ua !== '' &&\n userAgentRules.reduce(function (matched, _a) {\n var browser = _a[0], regex = _a[1];\n if (matched) {\n return matched;\n }\n var uaMatch = regex.exec(ua);\n return !!uaMatch && [browser, uaMatch];\n }, false);\n if (!matchedRule) {\n return null;\n }\n var name = matchedRule[0], match = matchedRule[1];\n if (name === 'searchbot') {\n return new BotInfo();\n }\n var versionParts = match[1] && match[1].split(/[._]/).slice(0, 3);\n if (versionParts) {\n if (versionParts.length < REQUIRED_VERSION_PARTS) {\n versionParts = __spreadArrays(versionParts, createVersionParts(REQUIRED_VERSION_PARTS - versionParts.length));\n }\n }\n else {\n versionParts = [];\n }\n return new BrowserInfo(name, versionParts.join('.'), detectOS(ua));\n}\nexports.parseUserAgent = parseUserAgent;\nfunction detectOS(ua) {\n for (var ii = 0, count = operatingSystemRules.length; ii < count; ii++) {\n var _a = operatingSystemRules[ii], os = _a[0], regex = _a[1];\n var match = regex.test(ua);\n if (match) {\n return os;\n }\n }\n return null;\n}\nexports.detectOS = detectOS;\nfunction getNodeVersion() {\n var isNode = typeof process !== 'undefined' && process.version;\n return isNode ? new NodeInfo(process.version.slice(1)) : null;\n}\nexports.getNodeVersion = getNodeVersion;\nfunction createVersionParts(count) {\n var output = [];\n for (var ii = 0; ii < count; ii++) {\n output.push('0');\n }\n return output;\n}\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&lang=scss&\""],"sourceRoot":""}