{"version":3,"file":"index-ba9c9978.js","sources":["../../../src/utils/cookie.js","../../../src/App.vue","../../../src/store/index.js","../../../src/lib/directive/clickOutside.js","../../../src/lib/directive/preventEvent.js","../../../src/main.js","../../../src/lib/directive/directive.js"],"sourcesContent":["// 获取指定名称的cookie\nexport const getCookie = (name) => {\n var strcookie = document.cookie //获取cookie字符串\n var arrcookie = strcookie.split(\"; \") //分割\n //遍历匹配\n for (var i = 0; i < arrcookie.length; i++) {\n var arr = arrcookie[i].split(\"=\")\n if (arr[0] == name) {\n return arr[1]\n }\n }\n return \"\"\n}\n\n// 打印所有cookie\nexport const print = () => {\n var strcookie = document.cookie //获取cookie字符串\n var arrcookie = strcookie.split(\";\") //分割\n\n //遍历匹配\n for (var i = 0; i < arrcookie.length; i++) {\n var arr = arrcookie[i].split(\"=\")\n console.log(arr[0] + \":\" + arr[1])\n }\n}\n\nexport const getDevice = () => {\n const ua = navigator.userAgent.toLowerCase()\n if (/iphone|ipad|ipod|ios/i.test(ua)) {\n return \"ios\"\n } else if (/android/.test(ua)) {\n return \"android\"\n }\n return \"other\"\n}\n\nexport const isApp = () =>\n /^(thevoice|starmaker|sargam|suaraku|sm|tvp|sm_in|sm_id|stm|jal|mld|sme)/i.test(window.navigator.userAgent) || window.stBridge != undefined\nexport const isIos = () => getDevice() === \"ios\"\nexport const isAndroid = () => /android/i.test(window.navigator.userAgent)\nexport const isWeixin = () => {\n var ua = window.navigator.userAgent.toLowerCase()\n return /micromessenger/.test(ua) || /wechat/.test(ua)\n}\nexport const isQQ = () => {\n var ua = window.navigator.userAgent.toLowerCase()\n return /qqbrowser/.test(ua) || /qzone/.test(ua) || /qq/.test(ua)\n}\n\nexport const isWeibo = () => {\n var ua = window.navigator.userAgent.toLowerCase()\n return /weibo/.test(ua)\n}\n\nexport const isWechatMoments = () => {\n var ua = window.navigator.userAgent.toLowerCase()\n return /pengyouquan/.test(ua)\n}\n\nexport const extractVersion = () => {\n var ua = window.navigator.userAgent.toLowerCase()\n // const versionPattern = /android\\/(\\d+\\.\\d+\\.\\d+)/;\n // const match = ua.match(versionPattern);\n\n // // 如果找到匹配项,返回版本号,否则返回null\n // return match ? match[1] : null;\n \n // const regex = /^(?:[^\\/]*\\/){10}([^\\/]+)/\n\n // // Extract the content between the fourth and fifth slashes\n // const match = ua.match(regex)\n\n // if (match && match[1]) {\n // const content = match[1]\n // return content // Output: 1.7.0\n // } else {\n // return null\n // }\n\n return getFifthFromLastSlash(ua)\n}\n\nfunction getFifthFromLastSlash(str) {\n // 检查字符串是否包含至少五个'/',否则无法获取倒数第五个\n if (str.split('/').length < 6) {\n return null; // 或者抛出一个错误,取决于你的需求\n }\n\n // 将字符串按'/'分割成数组\n const parts = str.split('/');\n\n // 确保数组有足够的元素\n if (parts.length < 6) {\n return null; // 同样,这里根据需要处理\n }\n\n // 获取倒数第五个元素\n const fifthFromLast = parts[parts.length - 6];\n\n return fifthFromLast;\n}\n\n// 判断版本号 返回 > 1 < -1 相等 0\nexport const compareVersion = (v1, v2) =>{\n if (v1 == v2) return 0\n v1 = v1.split('.')\n v2 = v2.split('.')\n var len = Math.max(v1.length, v2.length)\n // 调整两个版本号位数相同\n while (v1.length < len) {\n v1.push('0')\n }\n while (v2.length < len) {\n v2.push('0')\n }\n\n // 循环判断每位数的大小\n for (let i = 0; i < len; i++) {\n var num1 = parseInt(v1[i])\n var num2 = parseInt(v2[i])\n\n if (num1 > num2) {\n return 1\n } else if (num1 < num2) {\n return -1\n }\n }\n\n return 0\n}\n","\n\n\n","import { createPinia } from 'pinia'\n\nconst store = createPinia()\n\nexport default store","// clickOutside.js\nconst clickOutside = {\n beforeMount(el, binding) {\n // 点击外部区域触发的回调函数\n const handleClickOutside = (event) => {\n if (!el.contains(event.target) && el !== event.target) {\n binding.value(event);\n }\n };\n\n // 将回调函数绑定到 document 的点击事件\n document.addEventListener('click', handleClickOutside);\n\n // 在组件销毁前移除事件监听器\n el.__clickOutsideHandler__ = handleClickOutside;\n },\n beforeUnmount(el) {\n // 移除事件监听器\n document.removeEventListener('click', el.__clickOutsideHandler__);\n },\n};\n\nexport default clickOutside;\n","// preventEvent.js\n\nimport { getUuid, getType } from '@/utils/tools';\n\n// v-prevent-event:eventName=\"{\n// callback: (e)=>{},\n// cancel: false, cancel 优先级高于 diabledtime\n// diabledtime: 1000,\n// disableOpacity:0.5,\n \n// \n// renderState: false 渲染释放。回归到之前状态 true 渲染禁止,独立于其他参数,可用此参数单独控制渲染事件禁止效果,默认请置false,用完记得释放\n// }\"\n\n// renderState 和其他只能二选一\n\nconst preventEvent = {\n created(el, binding, vnode, prevVnode) {\n },\n // 在元素被插入到 DOM 前调用\n beforeMount(el, binding, vnode, prevVnode) {},\n // 在绑定元素的父组件\n // 及他自己的所有子节点都挂载完成后调用\n mounted(el, binding, vnode, prevVnode) {\n const { arg, value } = binding;\n let eventName = arg;\n const handleEvent = (event) => {\n if (el.__preventEventDisable__) {\n event.preventDefault();\n event.stopImmediatePropagation();\n } else {\n if(getType(value)=='Object'){\n let callback = value.callback;\n let time= value.diabledtime\n let cancel = value.cancel;\n let disableOpacity = !isNaN(Number(value.disableOpacity)) ? value.disableOpacity : 0.5;\n\n if(getType(callback)=='Function'){\n callback(event);\n }\n if(!cancel){\n el.__preventEventDisable_cp__= true;\n el.__preventEventDisable__= true;\n el.classList.add(\"__disable\");\n el.style['pointer-events']='none';\n el.style['cursor']='not-allowed';\n el.style['opacity']=`${disableOpacity}`;\n if(!isNaN(Number(time))){\n el.__preventEventTimer__ = setTimeout(() => {\n if(el.__preventEventrenderState__ != true){\n el.__preventEventTimer__ = null;\n el.__preventEventDisable_cp__= false;\n el.__preventEventDisable__ = false;\n el.style['pointer-events']='auto';\n el.style['cursor']='pointer'\n el.style['opacity']='1';\n el.classList.remove(\"__disable\");\n }\n }, time);\n }\n }\n }\n }\n };\n if(getType(value)=='Object'){\n el.__preventEventeEventName__= eventName;\n el.addEventListener(eventName, handleEvent);\n }\n // 在组件销毁前移除事件监听器\n el.__preventEventHandler__ = handleEvent;\n },\n // 绑定元素的父组件更新前调用\n beforeUpdate(el, binding, vnode, prevVnode) {\n \n },\n // 在绑定元素的父组件\n // 及他自己的所有子节点都更新后调用\n updated(el, binding, vnode, prevVnode) {\n const { arg, value } = binding;\n el.__preventEventDisable_cp__ == el.__preventEventDisable_cp__ ?? false;\n if(getType(value)=='Object'){\n let eventName = arg;\n el.__preventEventrenderState__= value.renderState;\n // 渲染层面的禁止事件 用户控制\n if(el.__preventEventrenderState__ == false || el.__preventEventrenderState__ == true){\n if(el.__preventEventrenderState__ == false && el.__preventEventDisable_cp__ == false){\n if(el.__preventEventTimer__){\n clearTimeout(el.__preventEventTimer__);\n }\n el.__preventEventDisable__= false;\n el.style['pointer-events']='auto';\n el.style['cursor']='pointer';\n el.style['opacity']='1';\n el.classList.remove(\"__disable\");\n } else {\n let disableOpacity = !isNaN(Number(value.disableOpacity)) ? value.disableOpacity : 0.5;\n el.__preventEventDisable__= true;\n el.classList.add(\"__disable\");\n el.style['pointer-events']='none';\n el.style['cursor']='not-allowed';\n el.style['opacity']=`${disableOpacity}`;\n }\n }\n if(value.cancel && el.__preventEventrenderState__ != true){\n if(el.__preventEventTimer__){\n clearTimeout(el.__preventEventTimer__);\n }\n el.__preventEventDisable_cp__= false;\n el.__preventEventDisable__= false;\n el.style['pointer-events']='auto';\n el.style['cursor']='pointer';\n el.style['opacity']='1';\n el.classList.remove(\"__disable\");\n } else if(value.cancel && el.__preventEventrenderState__ == true){\n el.__preventEventDisable_cp__= false;\n }\n }\n },\n // 绑定元素的父组件卸载前调用\n beforeUnmount(el, binding, vnode, prevVnode) {\n // 移除事件监听器\n const { arg, value } = binding;\n let eventName = arg;\n if(el.__preventEventTimer__){\n clearTimeout(el.__preventEventTimer__);\n }\n el.removeEventListener(eventName, el.__preventEventHandler__);\n },\n // 绑定元素的父组件卸载后调用\n unmounted(el, binding, vnode, prevVnode) {\n }\n};\n\nexport default preventEvent;\n","import { createApp } from \"vue\"\nimport App from \"./App.vue\"\nimport router from \"./router/index\"\nimport store from \"./store\"\nimport setupDirective from \"./lib/directive/directive\"\nimport i18n from \"./i18n/i18n.js\"\n// import VConsole from \"vconsole\"\nimport VueLazyload from \"vue-lazyload\"\nimport { isDev } from \"@/utils/tools.js\"\nimport vue3GoogleLogin from \"vue3-google-login\"\nimport firebaseFuctionInit from \"@/utils/analytic/firebaseUtils.js\"\nimport fc from \"@/components/functionComp/index\"\nimport \"@/assets/css/css.js\"\n\nconst env = import.meta.env.VITE_LANGUAGE ?? \"en\"\n\nif (env == \"cn\") {\n var scriptElement = document.createElement(\"script\")\n scriptElement.src = \"https://hm.baidu.com/hm.js?ec88c725f3668b0e98d6f86f4850811a\"\n var firstScript = document.getElementsByTagName(\"script\")[0]\n firstScript.parentNode.insertBefore(scriptElement, firstScript)\n} else {\n var script = document.createElement(\"script\")\n script.src = \"https://www.googletagmanager.com/gtag/js?id=G-17TCK1YGSV\"\n script.async = true\n document.head.appendChild(script)\n\n script.onload = function () {\n window.dataLayer = window.dataLayer || []\n function gtag() {\n dataLayer.push(arguments)\n }\n gtag(\"js\", new Date())\n gtag(\"config\", \"G-17TCK1YGSV\")\n }\n}\n\nconst pinia = createPinia()\nconst app = createApp(App)\n\napp.use(pinia)\napp.use(fc)\nsetupDirective(app)\napp.use(router)\napp.use(store)\napp.use(i18n)\napp.use(firebaseFuctionInit)\napp.use(vue3GoogleLogin, {\n clientId: \"1069642802272-0ktgtg6hn72ljht0bltd9h14qseflsvj.apps.googleusercontent.com\",\n scope: \"profile email\",\n})\napp.use(VueLazyload)\napp.mount(\"#app\")\nif (isDev()) {\n // window.__vConsole = new VConsole({ theme: 'dark' });\n}\n","\nimport clickOutside from \"./clickOutside.js\";\nimport preventEvent from \"./preventEvent.js\";\nconst setupDirective = (app) => {\n app.directive('click-outside', clickOutside);\n app.directive('prevent-event', preventEvent);\n}\n\nexport default setupDirective"],"names":["draftDataStore","useDraftDataStore","lyricDataStore","useLyricDataStore","ref","userDataStore","useUserDataStore","shopCartStore","useShopCartStore","name","arrcookie","document","cookie","split","i","length","arr","getCookie","codeReport","__async","this","code","_a","tools","getParameterByName","apiUser","userCodePeport","message","success","position","content","$$t","error","maskClosable","onMounted","window","addEventListener","event","useHomeDataStore","abortSse","isProd","lastGenerateDraftData","lyrics","lyric","confirmationMessage","returnValue","init","isLogin","getCartTotalCount","store","createPinia","clickOutside","beforeMount","el","binding","handleClickOutside","contains","target","value","__clickOutsideHandler__","beforeUnmount","removeEventListener","preventEvent","created","vnode","prevVnode","mounted","arg","eventName","handleEvent","__preventEventDisable__","preventDefault","stopImmediatePropagation","getType","callback","time","diabledtime","cancel","disableOpacity","isNaN","Number","__preventEventDisable_cp__","classList","add","style","__preventEventTimer__","setTimeout","__preventEventrenderState__","remove","__preventEventeEventName__","__preventEventHandler__","beforeUpdate","updated","renderState","clearTimeout","unmounted","script","createElement","src","async","head","appendChild","onload","gtag","dataLayer","push","arguments","Date","pinia","app","createApp","App","use","fc","directive","router","i18n","firebaseFuctionInit","vue3GoogleLogin","clientId","scope","VueLazyload","mount"],"mappings":"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"}