{"version":3,"sources":["webpack:///./app/javascript/shared/components/Spinner.vue?0b9f","webpack:///./app/javascript/shared/components/Spinner.vue?bdee","webpack:///app/javascript/shared/components/Spinner.vue","webpack:///./app/javascript/shared/components/Spinner.vue","webpack:///./app/javascript/shared/mixins/globalConfigMixin.js","webpack:///./app/javascript/v3/api/apiClient.js","webpack:///./app/javascript/v3/api/auth.js","webpack:///./app/javascript/v3/components/Form/Input.vue?23b8","webpack:///./app/javascript/v3/components/Form/WithLabel.vue?b1b9","webpack:///app/javascript/v3/components/Form/WithLabel.vue","webpack:///./app/javascript/v3/components/Form/Input.vue?f7fc","webpack:///app/javascript/v3/components/Form/Input.vue","webpack:///./app/javascript/v3/components/Form/WithLabel.vue","webpack:///./app/javascript/v3/components/Form/WithLabel.vue?85f0","webpack:///./app/javascript/v3/components/Form/Input.vue","webpack:///./app/javascript/v3/components/Button/SubmitButton.vue?c2cc","webpack:///./app/javascript/v3/components/Button/SubmitButton.vue?a3e9","webpack:///app/javascript/v3/components/Button/SubmitButton.vue","webpack:///./app/javascript/v3/components/Button/SubmitButton.vue","webpack:///./app/javascript/v3/components/GoogleOauth/Button.vue?026d","webpack:///./app/javascript/v3/components/Divider/SimpleDivider.vue?3412","webpack:///app/javascript/v3/components/Divider/SimpleDivider.vue","webpack:///./app/javascript/v3/components/GoogleOauth/Button.vue?cf04","webpack:///app/javascript/v3/components/GoogleOauth/Button.vue","webpack:///./app/javascript/v3/components/Divider/SimpleDivider.vue","webpack:///./app/javascript/v3/components/Divider/SimpleDivider.vue?be1f","webpack:///./app/javascript/v3/components/GoogleOauth/Button.vue","webpack:///./node_modules/@chatwoot/utils/dist/utils.esm.js","webpack:///./app/javascript/v3/views/login/Index.vue?bad6","webpack:///app/javascript/v3/views/login/Index.vue","webpack:///./app/javascript/v3/views/login/Index.vue?0cc7","webpack:///./app/javascript/v3/views/login/Index.vue","webpack:///./app/javascript/shared/components/Spinner.vue?7506"],"names":["component","_vm","this","_c","_self","staticClass","class","size","colorSchemeClasses","methods","useInstallationName","str","installationName","replace","window","chatwootConfig","apiHost","wootAPI","axios","create","baseURL","login","ssoAccountId","ssoConversationId","credentials","post","response","setAuthCredentials","clearLocalStorageOnLogout","location","getLoginRedirectURL","user","data","throwErrorMessage","register","creds","account_name","accountName","trim","user_full_name","fullName","email","password","h_captcha_client_response","hCaptchaClientResponse","verifyPasswordToken","confirmationToken","confirmation_token","setNewPassword","resetPasswordToken","confirmPassword","put","reset_password_token","password_confirmation","resetPassword","hasError","attrs","name","_t","_v","_s","label","_e","icon","errorMessage","scopedSlots","_u","key","fn","proxy","spacing","type","tabindex","required","placeholder","dataTestid","domProps","value","on","onInput","$event","$emit","computedClass","disabled","onClick","buttonText","iconClass","_m","getGoogleAuthUrl","$t","ref","debounce","func","wait","immediate","timeout","context","args","arguments","later","apply","callNow","clearTimeout","setTimeout","getContrastingTextColor","bgColor","color","parseInt","slice","formatTime","timeInSeconds","formattedTime","minutes","Math","floor","seconds","hours","_minutes","days","_hours","trimContent","content","maxLength","ellipsis","trimmedContent","length","substring","convertSecondsToTimeUnit","unitNames","time","unit","minute","Number","toFixed","hour","day","parseBoolean","candidate","candidateString","String","toLowerCase","Boolean","JSON","parse","error","sortAsc","arr","sort","a","b","_quantileForSorted","sorted","q","min","max","clamped","pos","base","rest","undefined","getQuantileIntervals","intervals","map","interval","_extends","Object","assign","target","i","source","prototype","hasOwnProperty","call","MESSAGE_VARIABLES_REGEX","capitalizeName","s","toUpperCase","getFirstName","_ref","firstName","split","shift","getLastName","_ref2","lastName","pop","getMessageVariables","_ref3","_assignee$email","conversation","contact","_conversation$meta","meta","assignee","sender","id","_conversation$custom_","custom_attributes","conversationCustomAttributes","contactCustomAttributes","phone_number","entries","reduce","acc","_ref5","_ref6","replaceVariablesInMessage","_ref7","message","variables","_","getUndefinedVariablesInMessage","_ref8","matches","match","filter","variable","createTypingIndicator","onStartTyping","onStopTyping","idleTime","timer","stop","reset","start","globalConfig","logo","logoDark","showGoogleOAuth","loginApi","hasErrored","preventDefault","submitLogin","$v","$error","$touch","model","callback","$$v","$set","expression","disableUserProfileUpdate","showLoading"],"mappings":"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","file":"js/52-b217f251ff19b1f9dd4d.chunk.js","sourcesContent":["var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',{staticClass:\"spinner\",class:`${_vm.size} ${_vm.colorSchemeClasses}`})\n}\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!./Spinner.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!./Spinner.vue?vue&type=script&lang=js&\"","\n\n\n","import { render, staticRenderFns } from \"./Spinner.vue?vue&type=template&id=25f4edd6&scoped=true&\"\nimport script from \"./Spinner.vue?vue&type=script&lang=js&\"\nexport * from \"./Spinner.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Spinner.vue?vue&type=style&index=0&id=25f4edd6&prod&scoped=true&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 \"25f4edd6\",\n null\n \n)\n\nexport default component.exports","export default {\n methods: {\n // eslint-disable-next-line default-param-last\n useInstallationName(str = '', installationName) {\n return str.replace(/Chatwoot/g, installationName);\n },\n },\n};\n","import axios from 'axios';\n\nconst { apiHost = '' } = window.chatwootConfig || {};\nconst wootAPI = axios.create({ baseURL: `${apiHost}/` });\n\nexport default wootAPI;\n","import {\n setAuthCredentials,\n throwErrorMessage,\n clearLocalStorageOnLogout,\n} from 'dashboard/store/utils/api';\nimport wootAPI from './apiClient';\nimport { getLoginRedirectURL } from '../helpers/AuthHelper';\n\nexport const login = async ({\n ssoAccountId,\n ssoConversationId,\n ...credentials\n}) => {\n try {\n const response = await wootAPI.post('auth/sign_in', credentials);\n setAuthCredentials(response);\n clearLocalStorageOnLogout();\n window.location = getLoginRedirectURL({\n ssoAccountId,\n ssoConversationId,\n user: response.data.data,\n });\n } catch (error) {\n throwErrorMessage(error);\n }\n};\n\nexport const register = async creds => {\n try {\n const response = await wootAPI.post('api/v1/accounts.json', {\n account_name: creds.accountName.trim(),\n user_full_name: creds.fullName.trim(),\n email: creds.email,\n password: creds.password,\n h_captcha_client_response: creds.hCaptchaClientResponse,\n });\n setAuthCredentials(response);\n return response.data;\n } catch (error) {\n throwErrorMessage(error);\n }\n return null;\n};\n\nexport const verifyPasswordToken = async ({ confirmationToken }) => {\n try {\n const response = await wootAPI.post('auth/confirmation', {\n confirmation_token: confirmationToken,\n });\n setAuthCredentials(response);\n } catch (error) {\n throwErrorMessage(error);\n }\n};\n\nexport const setNewPassword = async ({\n resetPasswordToken,\n password,\n confirmPassword,\n}) => {\n try {\n const response = await wootAPI.put('auth/password', {\n reset_password_token: resetPasswordToken,\n password_confirmation: confirmPassword,\n password,\n });\n setAuthCredentials(response);\n } catch (error) {\n throwErrorMessage(error);\n }\n};\n\nexport const resetPassword = async ({ email }) =>\n wootAPI.post('auth/password', { email });\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('with-label',{attrs:{\"label\":_vm.label,\"icon\":_vm.icon,\"name\":_vm.name,\"has-error\":_vm.hasError,\"error-message\":_vm.errorMessage},scopedSlots:_vm._u([{key:\"rightOfLabel\",fn:function(){return [_vm._t(\"default\")]},proxy:true}],null,true)},[_vm._v(\" \"),_c('input',{staticClass:\"block w-full border-none rounded-md shadow-sm appearance-none outline outline-1 focus:outline-2 text-slate-900 dark:text-slate-100 placeholder:text-slate-400 sm:text-sm sm:leading-6 dark:bg-slate-800\",class:{\n 'focus:outline-red-600 outline-red-600 dark:focus:outline-red-600 dark:outline-red-600':\n _vm.hasError,\n 'outline-slate-200 dark:outline-slate-600 dark:focus:outline-woot-500 focus:outline-woot-500':\n !_vm.hasError,\n 'px-3 py-3': _vm.spacing === 'base',\n 'px-3 py-2 mb-0': _vm.spacing === 'compact',\n 'pl-9': _vm.icon,\n },attrs:{\"id\":_vm.name,\"name\":_vm.name,\"type\":_vm.type,\"autocomplete\":\"off\",\"tabindex\":_vm.tabindex,\"required\":_vm.required,\"placeholder\":_vm.placeholder,\"data-testid\":_vm.dataTestid},domProps:{\"value\":_vm.value},on:{\"input\":_vm.onInput,\"blur\":function($event){return _vm.$emit('blur')}}})])\n}\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!./WithLabel.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!./WithLabel.vue?vue&type=script&lang=js&\"","\n\n","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js??ref--7-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Input.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!./Input.vue?vue&type=script&lang=js&\"","\n\n","import { render, staticRenderFns } from \"./WithLabel.vue?vue&type=template&id=a1e722e6&\"\nimport script from \"./WithLabel.vue?vue&type=script&lang=js&\"\nexport * from \"./WithLabel.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 render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"space-y-1\"},[(_vm.label)?_c('label',{staticClass:\"flex justify-between text-sm font-medium leading-6 text-slate-900 dark:text-white\",class:{ 'text-red-500': _vm.hasError },attrs:{\"for\":_vm.name}},[_vm._t(\"label\",function(){return [_vm._v(\"\\n \"+_vm._s(_vm.label)+\"\\n \")]}),_vm._v(\" \"),_vm._t(\"rightOfLabel\")],2):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"w-full\"},[_c('div',{staticClass:\"flex items-center relative w-full\"},[(_vm.icon)?_c('fluent-icon',{staticClass:\"absolute left-2 transform text-slate-400 dark:text-slate-600 w-5 h-5\",attrs:{\"size\":\"16\",\"icon\":_vm.icon}}):_vm._e(),_vm._v(\" \"),_vm._t(\"default\")],2),_vm._v(\" \"),(_vm.errorMessage && _vm.hasError)?_c('span',{staticClass:\"text-xs text-red-400 leading-2\"},[_vm._v(\"\\n \"+_vm._s(_vm.errorMessage)+\"\\n \")]):_vm._e()])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./Input.vue?vue&type=template&id=acdb9ff4&\"\nimport script from \"./Input.vue?vue&type=script&lang=js&\"\nexport * from \"./Input.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 render(){var _vm=this,_c=_vm._self._c;return _c('button',{staticClass:\"flex items-center w-full justify-center rounded-md bg-woot-500 py-3 px-3 text-base font-medium text-white shadow-sm hover:bg-woot-600 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-woot-500 cursor-pointer\",class:_vm.computedClass,attrs:{\"type\":_vm.type,\"data-testid\":\"submit_button\",\"disabled\":_vm.disabled},on:{\"click\":_vm.onClick}},[_c('span',[_vm._v(_vm._s(_vm.buttonText))]),_vm._v(\" \"),(!!_vm.iconClass)?_c('fluent-icon',{staticClass:\"icon\",attrs:{\"icon\":_vm.iconClass}}):_vm._e(),_vm._v(\" \"),(_vm.loading)?_c('spinner'):_vm._e()],1)\n}\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!./SubmitButton.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!./SubmitButton.vue?vue&type=script&lang=js&\"","\n\n\n","import { render, staticRenderFns } from \"./SubmitButton.vue?vue&type=template&id=ea9458c6&\"\nimport script from \"./SubmitButton.vue?vue&type=script&lang=js&\"\nexport * from \"./SubmitButton.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 render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"flex flex-col\"},[_c('a',{staticClass:\"inline-flex w-full justify-center rounded-md bg-white py-3 px-4 shadow-sm ring-1 ring-inset ring-slate-200 dark:ring-slate-600 hover:bg-slate-50 focus:outline-offset-0 dark:bg-slate-700 dark:hover:bg-slate-700\",attrs:{\"href\":_vm.getGoogleAuthUrl()}},[_c('img',{staticClass:\"h-6\",attrs:{\"src\":\"/assets/images/auth/google.svg\",\"alt\":\"Google Logo\"}}),_vm._v(\" \"),_c('span',{staticClass:\"text-base font-medium ml-2 text-slate-600 dark:text-white\"},[_vm._v(\"\\n \"+_vm._s(_vm.$t('LOGIN.OAUTH.GOOGLE_LOGIN'))+\"\\n \")])]),_vm._v(\" \"),(_vm.showSeparator)?_c('simple-divider',{ref:\"divider\",staticClass:\"uppercase\",attrs:{\"label\":_vm.$t('COMMON.OR')}}):_vm._e()],1)\n}\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!./SimpleDivider.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!./SimpleDivider.vue?vue&type=script&lang=js&\"","\n\n","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&\"","\n\n\n","import { render, staticRenderFns } from \"./SimpleDivider.vue?vue&type=template&id=72614552&\"\nimport script from \"./SimpleDivider.vue?vue&type=script&lang=js&\"\nexport * from \"./SimpleDivider.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 render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"relative my-4 section-separator\"},[_vm._m(0),_vm._v(\" \"),(_vm.label)?_c('div',{staticClass:\"relative flex justify-center text-sm\"},[_c('span',{staticClass:\"bg-white dark:bg-slate-800 px-2 text-slate-500 dark:text-white\"},[_vm._v(\"\\n \"+_vm._s(_vm.label)+\"\\n \")])]):_vm._e()])\n}\nvar staticRenderFns = [function (){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"absolute inset-0 flex items-center\",attrs:{\"aria-hidden\":\"true\"}},[_c('div',{staticClass:\"w-full border-t border-slate-200 dark:border-slate-600\"})])\n}]\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./Button.vue?vue&type=template&id=e0b6ae8c&\"\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","import isToday from 'date-fns/isToday';\nimport isYesterday from 'date-fns/isYesterday'; // Returns a function, that, as long as it continues to be invoked, will not\n// be triggered. The function will be called after it stops being called for\n// N milliseconds. If `immediate` is passed, trigger the function on the\n// leading edge, instead of the trailing.\n\n/**\r\n * @func Callback function to be called after delay\r\n * @delay Delay for debounce in ms\r\n * @immediate should execute immediately\r\n * @returns debounced callback function\r\n */\n\nvar debounce = function debounce(func, wait, immediate) {\n var timeout;\n return function () {\n var context = null;\n var args = arguments;\n\n var later = function later() {\n timeout = null;\n if (!immediate) func.apply(context, args);\n };\n\n var callNow = immediate && !timeout;\n clearTimeout(timeout);\n timeout = window.setTimeout(later, wait);\n if (callNow) func.apply(context, args);\n };\n};\n/**\r\n * @name Get contrasting text color\r\n * @description Get contrasting text color from a text color\r\n * @param bgColor Background color of text.\r\n * @returns contrasting text color\r\n */\n\n\nvar getContrastingTextColor = function getContrastingTextColor(bgColor) {\n var color = bgColor.replace('#', '');\n var r = parseInt(color.slice(0, 2), 16);\n var g = parseInt(color.slice(2, 4), 16);\n var b = parseInt(color.slice(4, 6), 16); // http://stackoverflow.com/a/3943023/112731\n\n return r * 0.299 + g * 0.587 + b * 0.114 > 186 ? '#000000' : '#FFFFFF';\n};\n/**\r\n * @name Get formatted date\r\n * @description Get date in today, yesterday or any other date format\r\n * @param date date\r\n * @param todayText Today text\r\n * @param yesterdayText Yesterday text\r\n * @returns formatted date\r\n */\n\n\nvar formatDate = function formatDate(_ref) {\n var date = _ref.date,\n todayText = _ref.todayText,\n yesterdayText = _ref.yesterdayText;\n var dateValue = new Date(date);\n if (isToday(dateValue)) return todayText;\n if (isYesterday(dateValue)) return yesterdayText;\n return date;\n};\n/**\r\n * @name formatTime\r\n * @description Format time to Hour, Minute and Second\r\n * @param timeInSeconds number\r\n * @returns formatted time\r\n */\n\n\nvar formatTime = function formatTime(timeInSeconds) {\n var formattedTime = '';\n\n if (timeInSeconds >= 60 && timeInSeconds < 3600) {\n var minutes = Math.floor(timeInSeconds / 60);\n formattedTime = minutes + \" Min\";\n var seconds = minutes === 60 ? 0 : Math.floor(timeInSeconds % 60);\n return formattedTime + (\"\" + (seconds > 0 ? ' ' + seconds + ' Sec' : ''));\n }\n\n if (timeInSeconds >= 3600 && timeInSeconds < 86400) {\n var hours = Math.floor(timeInSeconds / 3600);\n formattedTime = hours + \" Hr\";\n\n var _minutes = timeInSeconds % 3600 < 60 || hours === 24 ? 0 : Math.floor(timeInSeconds % 3600 / 60);\n\n return formattedTime + (\"\" + (_minutes > 0 ? ' ' + _minutes + ' Min' : ''));\n }\n\n if (timeInSeconds >= 86400) {\n var days = Math.floor(timeInSeconds / 86400);\n formattedTime = days + \" Day\";\n\n var _hours = timeInSeconds % 86400 < 3600 || days >= 364 ? 0 : Math.floor(timeInSeconds % 86400 / 3600);\n\n return formattedTime + (\"\" + (_hours > 0 ? ' ' + _hours + ' Hr' : ''));\n }\n\n return Math.floor(timeInSeconds) + \" Sec\";\n};\n/**\r\n * @name trimContent\r\n * @description Trim a string to max length\r\n * @param content String to trim\r\n * @param maxLength Length of the string to trim, default 1024\r\n * @param ellipsis Boolean to add dots at the end of the string, default false\r\n * @returns trimmed string\r\n */\n\n\nvar trimContent = function trimContent(content, maxLength, ellipsis) {\n if (content === void 0) {\n content = '';\n }\n\n if (maxLength === void 0) {\n maxLength = 1024;\n }\n\n if (ellipsis === void 0) {\n ellipsis = false;\n }\n\n var trimmedContent = content;\n\n if (content.length > maxLength) {\n trimmedContent = content.substring(0, maxLength);\n }\n\n if (ellipsis) {\n trimmedContent = trimmedContent + '...';\n }\n\n return trimmedContent;\n};\n/**\r\n * @name convertSecondsToTimeUnit\r\n * @description Convert seconds to time unit\r\n * @param seconds number\r\n * @param unitNames object\r\n * @returns time and unit\r\n * @example\r\n * convertToUnit(60, { minute: 'm', hour: 'h', day: 'd' }); // { time: 1, unit: 'm' }\r\n * convertToUnit(60, { minute: 'Minutes', hour: 'Hours', day: 'Days' }); // { time: 1, unit: 'Minutes' }\r\n */\n\n\nvar convertSecondsToTimeUnit = function convertSecondsToTimeUnit(seconds, unitNames) {\n if (seconds === null || seconds === 0) return {\n time: null,\n unit: unitNames.minute\n };\n if (seconds < 3600) return {\n time: Number((seconds / 60).toFixed(1)),\n unit: unitNames.minute\n };\n if (seconds < 86400) return {\n time: Number((seconds / 3600).toFixed(1)),\n unit: unitNames.hour\n };\n return {\n time: Number((seconds / 86400).toFixed(1)),\n unit: unitNames.day\n };\n};\n/**\r\n * Function that parses a string boolean value and returns the corresponding boolean value\r\n * @param {string | number} candidate - The string boolean value to be parsed\r\n * @return {boolean} - The parsed boolean value\r\n */\n\n\nfunction parseBoolean(candidate) {\n try {\n // lowercase the string, so TRUE becomes true\n var candidateString = String(candidate).toLowerCase(); // wrap in boolean to ensure that the return value\n // is a boolean even if values like 0 or 1 are passed\n\n return Boolean(JSON.parse(candidateString));\n } catch (error) {\n return false;\n }\n}\n/**\r\n * Sorts an array of numbers in ascending order.\r\n * @param {number[]} arr - The array of numbers to be sorted.\r\n * @returns {number[]} - The sorted array.\r\n */\n\n\nfunction sortAsc(arr) {\n // .slice() is used to create a copy of the array so that the original array is not mutated\n return arr.slice().sort(function (a, b) {\n return a - b;\n });\n}\n/**\r\n * Calculates the quantile value of an array at a specified percentile.\r\n * @param {number[]} arr - The array of numbers to calculate the quantile value from.\r\n * @param {number} q - The percentile to calculate the quantile value for.\r\n * @returns {number} - The quantile value.\r\n */\n\n\nfunction quantile(arr, q) {\n var sorted = sortAsc(arr); // Sort the array in ascending order\n\n return _quantileForSorted(sorted, q); // Calculate the quantile value\n}\n/**\r\n * Clamps a value between a minimum and maximum range.\r\n * @param {number} min - The minimum range.\r\n * @param {number} max - The maximum range.\r\n * @param {number} value - The value to be clamped.\r\n * @returns {number} - The clamped value.\r\n */\n\n\nfunction clamp(min, max, value) {\n if (value < min) {\n return min;\n }\n\n if (value > max) {\n return max;\n }\n\n return value;\n}\n/**\r\n * This method assumes the the array provided is already sorted in ascending order.\r\n * It's a helper method for the quantile method and should not be exported as is.\r\n *\r\n * @param {number[]} arr - The array of numbers to calculate the quantile value from.\r\n * @param {number} q - The percentile to calculate the quantile value for.\r\n * @returns {number} - The quantile value.\r\n */\n\n\nfunction _quantileForSorted(sorted, q) {\n var clamped = clamp(0, 1, q); // Clamp the percentile between 0 and 1\n\n var pos = (sorted.length - 1) * clamped; // Calculate the index of the element at the specified percentile\n\n var base = Math.floor(pos); // Find the index of the closest element to the specified percentile\n\n var rest = pos - base; // Calculate the decimal value between the closest elements\n // Interpolate the quantile value between the closest elements\n // Most libraries don't to the interpolation, but I'm just having fun here\n // also see https://en.wikipedia.org/wiki/Quantile#Estimating_quantiles_from_a_sample\n\n if (sorted[base + 1] !== undefined) {\n // in case the position was a integer, the rest will be 0 and the interpolation will be skipped\n return sorted[base] + rest * (sorted[base + 1] - sorted[base]);\n } // Return the closest element if there is no interpolation possible\n\n\n return sorted[base];\n}\n/**\r\n * Calculates the quantile values for an array of intervals.\r\n * @param {number[]} data - The array of numbers to calculate the quantile values from.\r\n * @param {number[]} intervals - The array of intervals to calculate the quantile values for.\r\n * @returns {number[]} - The array of quantile values for the intervals.\r\n */\n\n\nvar getQuantileIntervals = function getQuantileIntervals(data, intervals) {\n // Sort the array in ascending order before looping through the intervals.\n // depending on the size of the array and the number of intervals, this can speed up the process by at least twice\n // for a random array of 100 numbers and 5 intervals, the speedup is 3x\n var sorted = sortAsc(data);\n return intervals.map(function (interval) {\n return _quantileForSorted(sorted, interval);\n });\n};\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nvar MESSAGE_VARIABLES_REGEX = /{{(.*?)}}/g;\n\nvar skipCodeBlocks = function skipCodeBlocks(str) {\n return str.replace(/```(?:.|\\n)+?```/g, '');\n};\n\nvar capitalizeName = function capitalizeName(name) {\n return (name || '').replace(/\\b(\\w)/g, function (s) {\n return s.toUpperCase();\n });\n};\n\nvar getFirstName = function getFirstName(_ref) {\n var user = _ref.user;\n var firstName = user != null && user.name ? user.name.split(' ').shift() : '';\n return capitalizeName(firstName);\n};\n\nvar getLastName = function getLastName(_ref2) {\n var user = _ref2.user;\n\n if (user && user.name) {\n var lastName = user.name.split(' ').length > 1 ? user.name.split(' ').pop() : '';\n return capitalizeName(lastName);\n }\n\n return '';\n};\n\nvar getMessageVariables = function getMessageVariables(_ref3) {\n var _assignee$email;\n\n var conversation = _ref3.conversation,\n contact = _ref3.contact;\n var _conversation$meta = conversation.meta,\n assignee = _conversation$meta.assignee,\n sender = _conversation$meta.sender,\n id = conversation.id,\n _conversation$custom_ = conversation.custom_attributes,\n conversationCustomAttributes = _conversation$custom_ === void 0 ? {} : _conversation$custom_;\n\n var _ref4 = contact || {},\n contactCustomAttributes = _ref4.custom_attributes;\n\n var standardVariables = {\n 'contact.name': capitalizeName((sender == null ? void 0 : sender.name) || ''),\n 'contact.first_name': getFirstName({\n user: sender\n }),\n 'contact.last_name': getLastName({\n user: sender\n }),\n 'contact.email': sender == null ? void 0 : sender.email,\n 'contact.phone': sender == null ? void 0 : sender.phone_number,\n 'contact.id': sender == null ? void 0 : sender.id,\n 'conversation.id': id,\n 'agent.name': capitalizeName((assignee == null ? void 0 : assignee.name) || ''),\n 'agent.first_name': getFirstName({\n user: assignee\n }),\n 'agent.last_name': getLastName({\n user: assignee\n }),\n 'agent.email': (_assignee$email = assignee == null ? void 0 : assignee.email) != null ? _assignee$email : ''\n };\n var conversationCustomAttributeVariables = Object.entries(conversationCustomAttributes).reduce(function (acc, _ref5) {\n var key = _ref5[0],\n value = _ref5[1];\n acc[\"conversation.custom_attribute.\" + key] = value;\n return acc;\n }, {});\n var contactCustomAttributeVariables = Object.entries(contactCustomAttributes).reduce(function (acc, _ref6) {\n var key = _ref6[0],\n value = _ref6[1];\n acc[\"contact.custom_attribute.\" + key] = value;\n return acc;\n }, {});\n\n var variables = _extends({}, standardVariables, conversationCustomAttributeVariables, contactCustomAttributeVariables);\n\n return variables;\n};\n\nvar replaceVariablesInMessage = function replaceVariablesInMessage(_ref7) {\n var message = _ref7.message,\n variables = _ref7.variables; // @ts-ignore\n\n return message == null ? void 0 : message.replace(MESSAGE_VARIABLES_REGEX, function (_, replace) {\n return variables[replace.trim()] ? variables[replace.trim().toLowerCase()] : '';\n });\n};\n\nvar getUndefinedVariablesInMessage = function getUndefinedVariablesInMessage(_ref8) {\n var message = _ref8.message,\n variables = _ref8.variables;\n var messageWithOutCodeBlocks = skipCodeBlocks(message);\n var matches = messageWithOutCodeBlocks.match(MESSAGE_VARIABLES_REGEX);\n if (!matches) return [];\n return matches.map(function (match) {\n return match.replace('{{', '').replace('}}', '').trim();\n }).filter(function (variable) {\n return variables[variable] === undefined;\n });\n};\n/**\r\n * Creates a typing indicator utility.\r\n * @param onStartTyping Callback function to be called when typing starts\r\n * @param onStopTyping Callback function to be called when typing stops after delay\r\n * @param idleTime Delay for idle time in ms before considering typing stopped\r\n * @returns An object with start and stop methods for typing indicator\r\n */\n\n\nvar createTypingIndicator = function createTypingIndicator(onStartTyping, onStopTyping, idleTime) {\n var timer = null;\n\n var start = function start() {\n if (!timer) {\n onStartTyping();\n }\n\n reset();\n };\n\n var stop = function stop() {\n if (timer) {\n clearTimeout(timer);\n timer = null;\n onStopTyping();\n }\n };\n\n var reset = function reset() {\n if (timer) {\n clearTimeout(timer);\n }\n\n timer = setTimeout(function () {\n stop();\n }, idleTime);\n };\n\n return {\n start: start,\n stop: stop\n };\n};\n\nexport { clamp, convertSecondsToTimeUnit, createTypingIndicator, debounce, formatDate, formatTime, getContrastingTextColor, getMessageVariables, getQuantileIntervals, getUndefinedVariablesInMessage, parseBoolean, quantile, replaceVariablesInMessage, sortAsc, trimContent };","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('main',{staticClass:\"flex flex-col bg-woot-25 min-h-screen w-full py-20 sm:px-6 lg:px-8 dark:bg-slate-900\"},[_c('section',{staticClass:\"max-w-5xl mx-auto\"},[_c('img',{staticClass:\"mx-auto h-8 w-auto block dark:hidden\",attrs:{\"src\":_vm.globalConfig.logo,\"alt\":_vm.globalConfig.installationName}}),_vm._v(\" \"),(_vm.globalConfig.logoDark)?_c('img',{staticClass:\"mx-auto h-8 w-auto hidden dark:block\",attrs:{\"src\":_vm.globalConfig.logoDark,\"alt\":_vm.globalConfig.installationName}}):_vm._e(),_vm._v(\" \"),_c('h2',{staticClass:\"mt-6 text-center text-3xl font-medium text-slate-900 dark:text-woot-50\"},[_vm._v(\"\\n \"+_vm._s(_vm.useInstallationName(_vm.$t('LOGIN.TITLE'), _vm.globalConfig.installationName))+\"\\n \")]),_vm._v(\" \"),(_vm.showSignupLink)?_c('p',{staticClass:\"mt-3 text-center text-sm text-slate-600 dark:text-slate-400\"},[_vm._v(\"\\n \"+_vm._s(_vm.$t('COMMON.OR'))+\"\\n \"),_c('router-link',{staticClass:\"text-link lowercase\",attrs:{\"to\":\"auth/signup\"}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('LOGIN.CREATE_NEW_ACCOUNT'))+\"\\n \")])],1):_vm._e()]),_vm._v(\" \"),_c('section',{staticClass:\"bg-white shadow sm:mx-auto mt-11 sm:w-full sm:max-w-lg dark:bg-slate-800 p-11 sm:shadow-lg sm:rounded-lg\",class:{\n 'mb-8 mt-15': !_vm.showGoogleOAuth,\n 'animate-wiggle': _vm.loginApi.hasErrored,\n }},[(!_vm.email)?_c('div',[(_vm.showGoogleOAuth)?_c('GoogleOAuthButton'):_vm._e(),_vm._v(\" \"),_c('form',{staticClass:\"space-y-5\",on:{\"submit\":function($event){$event.preventDefault();return _vm.submitLogin.apply(null, arguments)}}},[_c('form-input',{attrs:{\"name\":\"email_address\",\"type\":\"text\",\"data-testid\":\"email_input\",\"tabindex\":1,\"required\":\"\",\"label\":_vm.$t('LOGIN.EMAIL.LABEL'),\"placeholder\":_vm.$t('LOGIN.EMAIL.PLACEHOLDER'),\"has-error\":_vm.$v.credentials.email.$error},on:{\"input\":_vm.$v.credentials.email.$touch},model:{value:(_vm.credentials.email),callback:function ($$v) {_vm.$set(_vm.credentials, \"email\", (typeof $$v === 'string'? $$v.trim(): $$v))},expression:\"credentials.email\"}}),_vm._v(\" \"),_c('form-input',{attrs:{\"type\":\"password\",\"name\":\"password\",\"data-testid\":\"password_input\",\"required\":\"\",\"tabindex\":2,\"label\":_vm.$t('LOGIN.PASSWORD.LABEL'),\"placeholder\":_vm.$t('LOGIN.PASSWORD.PLACEHOLDER'),\"has-error\":_vm.$v.credentials.password.$error},on:{\"input\":_vm.$v.credentials.password.$touch},model:{value:(_vm.credentials.password),callback:function ($$v) {_vm.$set(_vm.credentials, \"password\", (typeof $$v === 'string'? $$v.trim(): $$v))},expression:\"credentials.password\"}},[(!_vm.globalConfig.disableUserProfileUpdate)?_c('p',[_c('router-link',{staticClass:\"text-link text-sm\",attrs:{\"to\":\"auth/reset/password\",\"tabindex\":\"4\"}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('LOGIN.FORGOT_PASSWORD'))+\"\\n \")])],1):_vm._e()]),_vm._v(\" \"),_c('submit-button',{attrs:{\"disabled\":_vm.loginApi.showLoading,\"tabindex\":3,\"button-text\":_vm.$t('LOGIN.SUBMIT'),\"loading\":_vm.loginApi.showLoading}})],1)],1):_c('div',{staticClass:\"flex items-center justify-center\"},[_c('spinner',{attrs:{\"color-scheme\":\"primary\",\"size\":\"\"}})],1)])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js??ref--7-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Index.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!./Index.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Index.vue?vue&type=template&id=2a6bb46b&\"\nimport script from \"./Index.vue?vue&type=script&lang=js&\"\nexport * from \"./Index.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","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../../node_modules/css-loader/dist/cjs.js??ref--3-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/dist/cjs.js??ref--3-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--3-3!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Spinner.vue?vue&type=style&index=0&id=25f4edd6&prod&scoped=true&lang=scss&\""],"sourceRoot":""}