{"version":3,"sources":["webpack:///./src/components/DownloadUnavailable.vue?b0e2","webpack:////var/static/shared/assets/img/trying.png","webpack:///./src/components/FileItem.vue?9b13","webpack:///./src/assets/img/yunpan-icon@3x.png","webpack:///./src/components/TdProgress.vue?be04","webpack:///./src/components/SpeedUp.vue?faeb","webpack:////var/static/shared/assets/img/speedup/vip-closed.png","webpack:////var/static/shared/assets/img/speedup/super-closed.png","webpack:////var/static/shared/assets/img/speedup/super-started.png","webpack:////var/static/shared/assets/img/team.png","webpack:////var/static/shared/assets/img/speedup/vip-stopped.png","webpack:///./src/components/Fail.vue","webpack:///./src/components/Fail.vue?276e","webpack:///./src/components/FileTabPlus.vue","webpack:///./src/components/FileTabPlus.vue?1f3c","webpack:///./src/components/SpeedUp.vue","webpack:///./src/components/SpeedUp.vue?8202","webpack:///./src/components/FileItem.vue?9638","webpack:///./src/components/FileItem.vue","webpack:///./src/components/FileItem.vue?8492","webpack:///./src/components/Footer.vue?a248","webpack:///./src/components/Footer.vue","webpack:///./src/components/Footer.vue?4e70","webpack:///./src/components/Empty.vue?a03d","webpack:///./src/components/Empty.vue","webpack:///./src/components/Empty.vue?b0ca","webpack:///./src/components/TdProgress.vue?b5f4","webpack:///./src/components/TdProgress.vue","webpack:///./src/components/TdProgress.vue?75b0","webpack:///./src/components/VipTryOut.vue?bcd8","webpack:///./src/components/VipTryOut.vue","webpack:///./src/components/VipTryOut.vue?5d78","webpack:///./src/components/DownloadUnavailable.vue","webpack:///./src/components/DownloadUnavailable.vue?d8d0","webpack:///./src/components/FloatingBird.vue","webpack:///./src/components/FloatingBird.vue?a213","webpack:///./src/api/flow.ts","webpack:///./src/views/home/index.vue","webpack:///./src/views/home/index.vue?584c","webpack:///./src/components/FileTabPlus.vue?3d4b","webpack:////var/static/shared/assets/img/speedup/p2p-normal.png","webpack:///./src/components/FloatingBird.vue?b08b","webpack:////var/static/shared/assets/img/speedup/vip-started.png","webpack:////var/static/shared/assets/img/bird-awake.png","webpack:///./src/components/Footer.vue?d7e1","webpack:////var/static/shared/assets/img/bird-sleep.png","webpack:////var/static/shared/assets/img/speed.png","webpack:///./src/components/VipTryOut.vue?8f08","webpack:///./src/composable/auth.ts","webpack:////var/static/shared/assets/img/bird-growing.png","webpack:////var/static/shared/assets/img/speedup/p2p-vip.png","webpack:///./src/views/home/index.vue?a0cc"],"names":["module","exports","_hoisted_1","class","_hoisted_2","_hoisted_3","_hoisted_4","_hoisted_5","_hoisted_6","_hoisted_7","key","_hoisted_8","_hoisted_9","_hoisted_10","_hoisted_11","_hoisted_12","__name","__props","clickCount","showFailBtn","connectMessage","showFailDialog","deviceStore","connecting","store","state","curDeviceRunner","tip","_curDeviceRunner$valu","_curDeviceRunner$valu2","_curDeviceRunner$valu3","value","id","name","tipBtn","lastTime","_deviceStore$currentD","_device$updated_time","device","currentDeviceRef","runnerTaskRef","deviceLastUpdateTime","updated_time","localDeviceTime","lastUpdateTimeValue","Date","getTime","since","copyClose","handleRetry","location","reload","dispatch","JSON","stringify","_ctx","_cache","onClick","$event","href","__exports__","_withScopeId","n","showMoreTab","tasks","isSelect","selects","taskType","curList","getters","all","curAllSelect","isLogin","tasksNum","total","length","status","phase","selectNum","downloadOrPause","action","willToast","handelAllTask","async","i","task","type","handelActionTabClick","val","console","log","handleSelect","commit","changeMoreTab","message","handleCancel","checkDialogScrapeHintShow","_deviceStore$currentN","_deviceStore$currentN2","hasInitCinema","currentNFOInstance","hasInitLocalState","todayTask","map","find","_deviceStore$currentD2","_deviceStore$currentD3","util","isVersionSmallerThan","baseConfig","nfo_config","is_disabled","_deviceStore$currentD4","_deviceStore$currentD5","_deviceStore$currentD6","uid","deviceInfoRef","user","canShow","dialogManager","canDialogShow","dialogID","_deviceStore$currentD7","dialogShow","theme","scene","onTab","tab","handleAllSel","list","callAppUpload","stat","data","position","createFrom","router","push","path","query","currentRoute","callAppDown","style","props","speedUp","Object","default","isVIP","Boolean","isSVIP","isInTry","required","gcid","String","infoHash","url","isComponentShow","vip","super","checkDetail","info_hash","icon","p2p","src","alt","draggable","ref","_hoisted_13","render","$props","$setup","$data","$options","_ctx$file","_component_SpeedUp","_directive_longpress","unread","isTaskDeleted","args","iconLink","file","file_name","speedBackground","width","progress","parseTime","created_time","isWarn","warnInfo","size","speedTxt","params","speedup","taskSpeedUp","isVip","isSuperVip","isInTrySpeed","hash","isAllTaskWithSensitiveResource","speedupSpeed","speedVip","isTaskWithSensitiveResource","handleWarn","vipTeamJoined","MeetIcon","svipJoined","SpeedTackIcon","showCheckBtn","handleSelectInLong","MapPhase","MapSpecTxt","components","SpeedUp","iShowHuddle","isOpeningBTDetail","computed","this","team_isjoined","super_speedup_isjoined","$store","trySpeedStatus","teamTaskId","huddleNum","teamLeftTimes","showVip","includes","spec","match","specIcon","isUpdating","specStatus","updating","isChecked","parse","e","_this$file$params$err","_safeJSONParse$error","_this$file","error","kind","file_size","Number","speed","speedup_count","now","d","update_action","showSpeed","outdated","speedup_speed","_this$file$params$rea","_this$file$params$rea2","real_path","endsWith","isBt","bt","icon_link","mime_type","total_file_count","speedup_failed_count","_this$file2","is_deleted","watch","oVal","isYSvip","setTimeout","showLastCount","methods","localStorage","setItem","isShowVipPop","lessHuddle","msg","parent_id","file_id","with","files","rootFileName","rootFileID","taskID","parentIds","formatSize","$refs","el","contains","target","nodeName","handleFile","_this$file$params$inf","_this$file$params$url","deviceFetch","$stat","task_type","usage","action_from","catch","showFolder","space","envStore","request","err","_ref","_err$error_descriptio","error_description","_this$file$params$inf2","_this$file$params$url2","handleOpenFile","_this$file3","_this$file$name","_this$file4","_this$file$name2","_this$file5","_task$params","_task$params2","_task$params3","_task$file_name","isVideo","task_name","task_size","file_extension","leading","trailing","_this$file$params$inf3","_this$file$params$url3","split","pop","sub_file_index","prevParams","undefined","retry_times","retry_record","retry_from","footer","isIos","checkIsIos","copyList","handleCopy","handleDel","num","handleReport","currentId","filter","v","every","_this$all$i","handleDelDo","join","cancelSel","deleteCompletely","isAllSelectedTaskDeleted","show","title","okTxt","cancelTxt","hasCheck","deleteTaskList","_task$name","isEmptyName","trim","willRefresh","willCheck","delStat","selectedTasks","if_delete_file","_task$params$hash","_task$params$info_has","_task$params$url","curFile","guid","encodeURIComponent","platform","openType","from","noCallback","showClose","handleAdd","$router","$route","circleSize","viewBox","view","cx","circleDistance","cy","r","radius","strokeWidth","stroke","outerColor","fill","linecap","circlePathStyle","validator","color","height","textVisible","distance","Math","PI","strokeDasharray","perimeter","transform","transformOrigin","transition","_hoisted_14","_hoisted_15","_component_TdProgress","_component_swiper_slide","_component_swiper","statusRef","speedIcon","tryTimeUsagePercentage","primaryTitleRef","secondaryTitleRef","teamTaskIDListRef","superSpeedTaskIDListRef","direction","autoplay","delay","loop","modules","isNewVipPrivilege","teamIcon","oldTeamIcon","_","tryingIcon","oldTryingIcon","platformPath","buttonTextRef","closeBanner","display","isBannerVisibleRef","TdProgress","Swiper","SwiperSlide","injectStrict","fallback","resolved","Error","description","injectedProps","commitApplyTry","_store$state$deviceIn","_store$state","currentNumericVersion","deviceInfoWatchData","client_version","targetNumericVersion","imgSrc","isOpening","img","Image","onload","deviceName","open","pollRunnerList","disabled","DRAG_MOVE_THRESHOLD","MAX_DIFF_Y","runningTaskList","Array","pausedTaskList","isManualClickBird","haveTaskRunning","haveTaskPaused","isSpeedShow","totalSpeed","totalSpeedInByte","reduce","acc","cur","_cur$params$speed","_cur$params","keep3DigitsMax","alternativeDefaultSizeMap","statClickFlow","statShowFlow","statClickBird","statShowBird","isFlowHidden","isGoldBeanEnabled","hasLabel","isGoldBeanHidden","whichBird","goldBeanManager","config","bird","flowArea","beanArea","lastX","lastY","startX","startY","diffX","diffY","isAttaching","attachSide","nextAttachSide","touchStartTimestamp","isDragMoveCalled","noTransition","dragStartTarget","autoCloseTimer","userInfo","toggleFlow","beans","window","clearTimeout","isDragging","dragMoveCallCount","unifyClientXY","touches","x","clientX","y","clientY","onDragMove","stopPropagation","innerWidth","MIN_DIFF_Y","document","body","clientHeight","onDragEnd","dragEndReset","removeEventListener","preventDefault","_diffX$value","_diffY$value","clientWidth","requestAnimationFrame","_flowArea$value","_beanArea$value","userProfile","statBeansClick","startPointToBirdBottom","onDragStart","getClientRects","addEventListener","userStore","initBirdData","untilDeviceReady","flow","startPolling","hasInit","getUser","init","userID","_deviceStore$currentD8","_unref$currentDeviceR","_unref$currentDeviceR2","_unref$currentDeviceR3","ref_key","onTouchstart","onMousedown","remainFlow","getFlowInfo","method","curTaskList","labels","isDownloadAvailable","isRemoteDownloadGuideShow","shouldRemoteDownloadGuideShow","haveRequestedRunner","deviceMap","isInPC","currentShowContent","newVal","oldVal","immediate","finishStartXLLite","isFloatBirdShow","curRunningTaskList","curPausedTaskList","firstLoad","firstLoadTasks","pathEnv","signOut","taskLink","huddleTime","getItem","today","loadMore","loading","page_token","nextPageToken","_directive_observer","_directive_see","onTouchmove","FileItem","Fail","Empty","DownloadUnavailable","RemoteDownloadGuide","onDone","runnerConfig","VipTryOut","Footer","FloatingBird","useHuaweiRequest","_window","generateRequestID","timestamp","random","floor","hdc","requestFunction","payload","Promise","resolve","reject","requestID","resp","_response$data","response","code","stringifiedPayload","getServiceData","webkit","messageHandlers","_response$data2","result","postMessage","callback","function","curryGetDeviceStatus","requestFunc","currySignOut","curryGetAuthLink","curryGetEntryLink","useAuth","factory","mapFactoryToRequestComposable","huawei","updateAuthStatus","curRequestFunction","linkResp","paramsToObject","URL","searchParams","updateGlobalProperties","error_message","toast","auth","_status$user","authParams","captureException"],"mappings":"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","file":"js/chunk-55cc5026.js","sourcesContent":["/* unplugin-vue-components disabled */export * from \"-!../../../../node_modules/.pnpm/unplugin@1.4.0/node_modules/unplugin/dist/webpack/loaders/transform.js?unpluginName=unplugin-vue-components!../../../../node_modules/.pnpm/mini-css-extract-plugin@0.9.0_webpack@4.46.0/node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/.pnpm/css-loader@3.6.0_webpack@4.46.0/node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.3.4_vue@3.3.4_webpack@4.46.0/node_modules/vue-loader/dist/stylePostLoader.js!../../../../node_modules/.pnpm/postcss-loader@3.0.0/node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/.pnpm/sass-loader@8.0.2_sass@1.65.1/node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/.pnpm/cache-loader@4.1.0_webpack@4.46.0/node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.3.4_vue@3.3.4_webpack@4.46.0/node_modules/vue-loader/dist/index.js??ref--1-1!./DownloadUnavailable.vue?vue&type=style&index=0&id=453625d7&lang=scss&scoped=true\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABwAAAAcCAMAAABF0y+mAAAAulBMVEVGPjxIQD5oYF5BOTkAAABqZGBBOTdpYl5COjloYl6UfmNDOjlmX11GPTxBOTdEPDr/1JBqY2BiW1dNRUNMREFlXltjXFloYl5mYF1PR0VEPDpHPz1eV1RKQkBBODZQSUZJQT9SSkhgWVZcVVFdVlNYUU5XT01FPTtaU1BVTktUTEpCOjhDOjnrxIjBo3ech2pyZlv1zIyvlXGojmtpXVLVs4CFdWJ7bl54aVhxYlNmW1HhvYXXtYHTsX2vGHjjAAAAEHRSTlP+/iAfAO/vv7+v/u/u7rCvrys0kgAAARRJREFUKM9tk+l2wiAQRsHErSsGrc1WTWNXhcS0bl3e/7VkIMc5EPh7z8fcYQYS9oY3s4foOVuV7y+vH5/FIubTnKbkPghJrz9/7MIlIcl1QMYTDSMHpiRZj8jEB6dUwc2gC0+m5luyeTIQa5aSHXVNgJjMAB4F+485z5cquXaSFWPsRwtRouH8AqOdYtLYmiQK7QWDoIGOUMPgNKYVEMJk/aeZ+C481wqmzxZg59qqpexrEcc8p7ZQLVsqTphE21q0WRBKifN80jCwdV8oq7XRlbfPlby0wmGeVnKv2K7EYVtJpdPAPAsPrNi2wjVx+vwVB1wT1/YwsxbMwL69JrbQ0AsptHKHS92Bg0B9h7EX3o6C8AycdFGETyeTagAAAABJRU5ErkJggg==\"","/* unplugin-vue-components disabled */export * from \"-!../../../../node_modules/.pnpm/unplugin@1.4.0/node_modules/unplugin/dist/webpack/loaders/transform.js?unpluginName=unplugin-vue-components!../../../../node_modules/.pnpm/mini-css-extract-plugin@0.9.0_webpack@4.46.0/node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/.pnpm/css-loader@3.6.0_webpack@4.46.0/node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.3.4_vue@3.3.4_webpack@4.46.0/node_modules/vue-loader/dist/stylePostLoader.js!../../../../node_modules/.pnpm/postcss-loader@3.0.0/node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/.pnpm/sass-loader@8.0.2_sass@1.65.1/node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/.pnpm/cache-loader@4.1.0_webpack@4.46.0/node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.3.4_vue@3.3.4_webpack@4.46.0/node_modules/vue-loader/dist/index.js??ref--1-1!./FileItem.vue?vue&type=style&index=0&id=558b8ab8&lang=scss&scoped=true\"","module.exports = \"data:image/png;base64,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\"","/* unplugin-vue-components disabled */export * from \"-!../../../../node_modules/.pnpm/unplugin@1.4.0/node_modules/unplugin/dist/webpack/loaders/transform.js?unpluginName=unplugin-vue-components!../../../../node_modules/.pnpm/mini-css-extract-plugin@0.9.0_webpack@4.46.0/node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../../node_modules/.pnpm/css-loader@3.6.0_webpack@4.46.0/node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.3.4_vue@3.3.4_webpack@4.46.0/node_modules/vue-loader/dist/stylePostLoader.js!../../../../node_modules/.pnpm/postcss-loader@3.0.0/node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../../node_modules/.pnpm/cache-loader@4.1.0_webpack@4.46.0/node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.3.4_vue@3.3.4_webpack@4.46.0/node_modules/vue-loader/dist/index.js??ref--1-1!./TdProgress.vue?vue&type=style&index=0&id=b8811530&scoped=true&lang=css\"","/* unplugin-vue-components disabled */export * from \"-!../../../../node_modules/.pnpm/unplugin@1.4.0/node_modules/unplugin/dist/webpack/loaders/transform.js?unpluginName=unplugin-vue-components!../../../../node_modules/.pnpm/mini-css-extract-plugin@0.9.0_webpack@4.46.0/node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/.pnpm/css-loader@3.6.0_webpack@4.46.0/node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.3.4_vue@3.3.4_webpack@4.46.0/node_modules/vue-loader/dist/stylePostLoader.js!../../../../node_modules/.pnpm/postcss-loader@3.0.0/node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/.pnpm/sass-loader@8.0.2_sass@1.65.1/node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/.pnpm/cache-loader@4.1.0_webpack@4.46.0/node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.3.4_vue@3.3.4_webpack@4.46.0/node_modules/vue-loader/dist/index.js??ref--1-1!./SpeedUp.vue?vue&type=style&index=0&id=27da79ae&lang=scss&scoped=true\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABwAAAAcCAYAAAByDd+UAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAOcSURBVHgBzVbLTxNBGJ+dne62KC2lDwtaTYgcsBF8RBO5k+BVknIzwciBmwHPWv8AuZJKIokmJjTxrAmeJR4UIaInD1isjaEsLYW2291Z59s+st3utqtc/F06/ebb7zXfi0MOkEikhP5+2S2KWMAY8ZSqGOgY87RSqSqU8tX9faGcSMTlbrK4TpepVMqTy5V7MeZ45ACUamqp5D6cn4+X/kohU8RLkuJHSHWhfwAoDgTcuXg8rprvsJmQSCR78nkl2EnZ0NDF2PDw8LjdPUQEZKysrLjNdy0eAoMsE7+dIH8k6D0/EFngCZmF/6pClzc3th6jDjg6Eg+MIW4qhDCCVY2EMGPwwmA0HAw9Z9bHjHRNQ+mclJv68T29a/UdJJbPR/Ya4W0KZ8kRsFMWuzwyeyYUXjMr0y3mUDTgD7wDHqtvQWYtH+oG1L3z2GXi6FhsQXSLT5hgL7IB3AGPnVLIh8XFlAdOpO4dpL4lK0/4ycZZo3SbhbDQrhFFMcbnBFG8z/4tW8nxeMq97KdEoKgxrnSqM5+uTNPSGx+3JqwYwDPwsIMMPXNZJAUMHQQ5AKut93Z3KqVfkANks7KbYAz1hrsy8zyevnbjyjQLay0b2btVqtVHXze/pQjHe5ED6K1RFF3EjgEShmNvY6TlDqQ7LLQ3FY0+KxaLutfExd/WbWBvCd/YyYM+zCWTLwfMF3Y1R1W6/vnT1pSZNxIOfzDSoDZ/7e5OZLN7bQlmGUv/ae+4Vc3JanXVTAt4fbfMNPA0FApNWskm0AnsCt5kdQHeC85Xr4+usVDHGDGtIc6HHAJ0EUoRtJyuCplVb+AXQqgrq7kS5ZBzcBypkkqFyqKIuo6hRpaiE+D4WFZIJCKUJalyqhOjbYcxANpb03MbgC7Curi8tPRCteqlmkYLclV9ur25rbcrCGewzx838hwUC6uNSXFpbCQuENdDbColAAxl0KXXIJvOh8zLvhYGlb7dyWQeSIbUzuxk0uH+QBQTPl4ToqaMYwmSihm1HuwPtNUirB56JBqEZPJVc8rDoJUsaqgWlqB34Ozga42dd35mpuz4jDLAu7m5u7/h3Owyfj+R8nmkD2A7IQAoZiwK9wjhtU58jTsoBSY716C3ZDXMRXNoTwpBUKSZmZmypUIA7DWKIvqcNINOqK8WBZYoLSuj7ZoIK4fTfbQdfBWeyGpN/D8WYQvFAgzPnh6BaJriMq760BqhW0FRQ511k/UHK+m4yYXiEF0AAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABwAAAAcCAYAAAByDd+UAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAN4SURBVHgBzVbPT9NQHH997doNgTlAHASCIQaFgZz9A4zel4ybCSYcOEHgDtM7iVeCCTcPS7zrP4DxZAYWlCgRQZxkW20J69q1r77vQsdbt26VcPCTNG2/7/X76ff7vr84FADpdEbs6THDkoRFjBFPiI1BjjFPDKNiEcJXikWxnE6nzHa6uFaLmUwmUiiUuzDmeBQAhDi2rofPlpZS+j8RUiJeUawYQnYIXQFA3NsbLqRSKdu7hr2CdHq9Q1WtvquSVZVSj4COzc3NsHetzkLYYJpCDF0jzs+lP6yLa4TgRvgrNyBcPJhOLHM8P4QCwLGd4+3szhorg8CKRoW8617BXaDB0Utd0UAmiKFlFBQ0tBJT45q8s7fhisAARUHgtXzNQohGRTFust8OjgwOx/v7P3h1UgUZ27K2WJkghOY4jBPue6mkJz/LX96ze1zXChfWQejXFmPxvu7+vltvvGSO4xwd/vy1ouTymiujFtWRASKRyMt4vO9RjtkXiZS76E3HkNTePBsZGHhBZUNesoJSTLJko2N3ElJYeu79MY5Dw7cHBuuOAjioJ0UMFYRdmJoaT2GBT3mVIOJs/fh2dMyKOiM3niAf8AKem5ger9OTy5lhjHF9vvGhUFMlHI9nwH2sbDsrrzmEyMgHIh+aYd+rpVGSQgIrPC3kVwkhx80UgPvuJ+49ZGW/8/lnzfbDERRVZYGVQR3G3rw7OTw5Os3nk36k1FWT3v3gbi8ZnLf3CIALN1PqR0ps8lbOXuYYAHKVPXM/sksraSXwI9XOSrOOgzRXEXXRCrtncnLiMVsYHIdorcl4wq2vv25ZqEfH7iai3Z3VnOSQo7JrDuKiNAW6XTJV05IH+999g4jnJQMbBmnZNA/2v8q6rs9WFXPcMHu5ZICyaS20IgOUSqaF43GxjNoAylTZNBb91inZ4t727jvUBsCFaRU3oWG227yb3ctUrMqKV26YldXd7KdMu++BA7iqUUq78xkKgJ2P8ivLsmvtB57lrLwR5FsYPeBeq9jtgodFYjpRrThBycC6+fmnp/BcqzKxmKCoKmpowM0QlAgAqUB1F2rv7gN0ZNqZNXTNEARDZYephqkN5hrLkqJBLG2Fi9FCo2R1I6PvmHgxcgSaRxvBV+CImo2J/8cg3IRYhObZ0SEKjmOF2FGfEGRDtYKkhjxrp+svhZjr/nEsBlMAAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABwAAAAcCAYAAAByDd+UAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAANzSURBVHgBrZbLbtQwFIaP7dxmSDozhQoKQkICDRR1g9iy6APAFgkeoF2AhLhIbMuSRWFDF/ACSCzhBViwBLGpuFSqBEI0gt5mJp1L7DjGDk3kSScz06q/FCU5ds7nc3zsGMEYEivLblf0asTGLgKwgWOSNJCYx9zsxFHYLSFnB83e2R3lCw0FfX1xnAI9jYBYMM7AgFMLrHU0c3frQECxsmhRcC8gYpbgEErAvPUdzS7SkUAVFSPsbJa2w0omu83gR+3K/UYhUHx+XmUOPg9HqB6QHxNaijOgSiOzKpfzkfV2tucB4mkYT75TO/Gqz6LKCppf0vQaqZ2SiYtoAEzwaB4OoF5jO3Cqk68zA8GEkorK2lf1mkSYzBvwc/qHrNM9HXWCt3mHhJB3iJBPui1i9LaslHr6btj2gulV+vqYMrWqepMI90o/a+QR9STsJeyXTzzvGTGsQIvolg5LBhCGi7hEb+v9FEPetrD4u+zm1xkLWg/kLT9vvu1V5nUn0W6nLqLo4YCBTdNWs28qFGPjw1MPQ5NX9Yaw1bgueHwj7wER/BHbtt8XCevNQZFicSts7PT5OXGyVMFhxMq6UXA2N+h7NYgkfZqc2uQrOfRVKGJyfl1/p4J7GHPcByS2+0ze/IFQmT4WNK/qNqPkPSro79uut6gbEAUbq7LVjWa5tG6UvYVCKOf1fH+V7n0wOd/5KVAsPMhpERQh/N7S1xika7VvzgfD9oTVTlAENZ2SqsC0Kn3L9Zb6YEFjLrcxBMNgioXE6vMZlptHXdFuUGe9brom8/87V15eCjMdd8Fwy8VFBCTAst4DGCLD9VblzvFoz/F07kphstisJ8NgSrYRd/Am7zZhhNQ2hQ3zSVG7arO86nsYoc0/3SaeuvQ4ECaEozrb1do7YhpLeTsxjCXVNup7xZi69jhIqjRkxIcxZFUmX2NiZL8f9Zyv2iKljOx/GK4uzyAelcf5mO7tOOPCVHT2hXsr6jn7H1p0ao3B78v5jWCQxgUlslFkdU5lxZQtfDR7k/aI+QuOWO0m/6l87wMqqbNH24nXijaDA0lG1muzn0MPUanEyhuLOn4dMXnoPYQEiTsWPbOmRzYUmKoljx62yafHBaviUNU4cdCDcF4b3556x5hRxQaUsC0Px6H4X2wybSLilIfxbtuMGmpNj/L1D+NjhG3soiruAAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABwAAAAcCAMAAABF0y+mAAAAS1BMVEU3uXc4t3g4uHgAAAA3uHc4uXg4uHj///9RwYnz+/dqypqC06vm9u7N7d205M2P17NEvIDa8ubB6dWb3Lyo4MSC0qpdxpKC0qt2zqKCuz+VAAAABnRSTlPvIL8AsK+vyM/PAAAArUlEQVQoz53SSw6DMAxF0YRAnkPzBUq7/5WWgRuMCKjqnR7J+cjK6E7ZVr02SjOd22iwl/HIdoqx3U+YHGr+ecQZ8VGLSBIJsxUtLgtM3sqymwWGaA/FsCM54JijL5LHKU+MEY0WRo9Cbzl5XAs8I7C9uuy23eYFMDpMfG69zQTHOAE8tDIQGUc0WhmphSQxjbUkMQcgkPjaAhcy45+boO6wu7b+fqmNHi5GavMBUvkVDSd4YTgAAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABwAAAAcCAYAAAByDd+UAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAPCSURBVHgBpVbPT9RAFJ5OZ9su6pKyqOuuqFGJmgV1VUzwbuLJg5rljJG7gbuuf4AmHg1Gzm5ioidN9OBJLyo/dP1xMEHBdTXUAkLYbbdT3yt0KaUtK3xJ03be9H3z3rz3TQXSBAqFotTWZiiyTCVKici5RXGcUpHXamadc9H880eqFgp5YyNfQpSxWCzGNa26g1JBJE2Ac9taWlL+Dg7ml/6LEIhEXa+rhFgxsgkgcTKpaPl83vLbqH+gULjXMjdXb48iO3jwcLazs/NcmB0zgj5GRkYUv21NhDjBMJga5khNtSf27UkNiYwN4LtV58PjoxM3SQQWF+VZb4obhJhGXJVbEH6k96c7drXvfACrz3rHbZtMabp2+fvXqemg77CwWlvZjJvehnMojmQYWbb72MDunbue+8mcFQukI6kmX+CcoG/R53I9rCxgJbp4WCUeP5EdkhX5FjhOkBCgDeeEkWI93LlTjOMTW4kOSz9wqsjEC+6zzXkJUji/npF0UEr3SrJ8Dd6Gg/zE49UdcFti2NSU1qL6rNUhs+2p0bcT54MmYGQYYYQPp3IhkxJFBSFNAHrrVZjN4vwDaQKViqEwSrHf6IaTRZH2neo52QdpXa5G2Leaad74OP6pyAQxQZoASiOT5RiDSgqcgAUjwN54x7RZ/RK2QPfprsGFhYVXKAAxJeYUC1YsLKoM+f9gc7ukzem3ve2COsyCWiGs57jFX7sOpn9U7ntFYA0EoUsQha72tmSfmlCHf/0s365UZuaRi5EAqNsT54J6zrDMh44dFGd/JvPIP+dMrsu5vxld3VKR0YH03kwvPF5BUopKQJoAtgPuFz4fyKQfBS0oFBDx7j3pIeSinBOrmW8450/xjumGfW2ebAUY6dHsoR5Wq3FDlsmGx5BbpWQLkBXlPEulpKqu17ZFTfQqDEYXJXNRgCK9SEHFDTwwA4lsPl8zzJuoMGPvJi7/1maub5bM8UfsA05LwOn812+EFng2OV0+WxovNbSx/K08RbYIhxCihANSNBuOtZmnENFVHcrY/0FDaTaHsUbTqyrT3RYJInLhVmsQ3pe+OFcYBEFYJcQTGU7mUCIXsKfPImzOFQazat5aI2uYWkmq61Fi8Ln05TX+ywTZurNHnCsIgk3u9vbmJtfpaH9/fxX/QcIqF4HaiK3iH5elmHMFYEyk9YJDTCIQ9SOcAj1FuUIF8RIivGnFyJAsl8vNbkjoIZbw8GxpkZht12PeX/0MCGsy2XYdBo7D0Ekct4kwCU38RODkcU9P90uvr3+zObSTZuf6AQAAAABJRU5ErkJggg==\"","import { defineComponent as _defineComponent } from 'vue';\nimport { createElementVNode as _createElementVNode, toDisplayString as _toDisplayString, vShow as _vShow, withDirectives as _withDirectives, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, Fragment as _Fragment } from \"vue\";\nconst _hoisted_1 = {\n class: \"fail\"\n};\nconst _hoisted_2 = /*#__PURE__*/_createElementVNode(\"div\", {\n class: \"fail__img\"\n}, null, -1);\nconst _hoisted_3 = {\n class: \"fail__tips\"\n};\nconst _hoisted_4 = /*#__PURE__*/_createElementVNode(\"li\", null, \"1、请确保设备和网络正常运行;\", -1);\nconst _hoisted_5 = /*#__PURE__*/_createElementVNode(\"li\", null, \"2、更新设备固件和客户端为最新版后重试;\", -1);\nconst _hoisted_6 = /*#__PURE__*/_createElementVNode(\"li\", null, \"3、请联系设备厂商,确认该设备支持迅雷下载。\", -1);\nconst _hoisted_7 = {\n key: 0,\n class: \"fail-cover\"\n};\nconst _hoisted_8 = {\n class: \"fail-dialog\"\n};\nconst _hoisted_9 = {\n class: \"dialog__body\"\n};\nconst _hoisted_10 = /*#__PURE__*/_createElementVNode(\"h2\", null, \"错误信息\", -1);\nconst _hoisted_11 = {\n class: \"tips\"\n};\nconst _hoisted_12 = {\n class: \"dialog__footer\"\n};\nimport { computed, ref } from 'vue';\nimport { store } from '@remote/store';\nimport { msToTime, formatTime } from '@remote/utils';\nimport { getLocalValue } from '@remote/utils/index';\nimport copy from 'clipboard-copy';\nimport '@remote/assets/css/fail.scss';\nimport { useDeviceStore } from '@remote/store/device';\nexport default /*#__PURE__*/_defineComponent({\n __name: 'Fail',\n setup(__props) {\n const clickCount = ref(0);\n const showFailBtn = ref(false);\n const connectMessage = ref('');\n const showFailDialog = ref(false);\n const deviceStore = useDeviceStore();\n const connecting = computed(() => {\n return store.state.connecting;\n });\n const curDeviceRunner = computed(() => {\n return store.state.curDeviceRunner;\n });\n const tip = computed(() => {\n var _curDeviceRunner$valu, _curDeviceRunner$valu2, _curDeviceRunner$valu3;\n return connecting.value ? '检查设备中' : (_curDeviceRunner$valu = curDeviceRunner.value) !== null && _curDeviceRunner$valu !== void 0 && _curDeviceRunner$valu.id ? `当前设备(${(_curDeviceRunner$valu2 = (_curDeviceRunner$valu3 = curDeviceRunner.value) === null || _curDeviceRunner$valu3 === void 0 ? void 0 : _curDeviceRunner$valu3.name) !== null && _curDeviceRunner$valu2 !== void 0 ? _curDeviceRunner$valu2 : ''})已离线` : '未找到可远程下载的设备';\n });\n const tipBtn = computed(() => {\n return connecting.value ? '正在连接中' : '重新连接';\n });\n const lastTime = computed(() => {\n var _deviceStore$currentD, _device$updated_time;\n const device = (_deviceStore$currentD = deviceStore.currentDeviceRef) === null || _deviceStore$currentD === void 0 ? void 0 : _deviceStore$currentD.runnerTaskRef;\n const deviceLastUpdateTime = (_device$updated_time = device === null || device === void 0 ? void 0 : device.updated_time) !== null && _device$updated_time !== void 0 ? _device$updated_time : '';\n const localDeviceTime = device && deviceLastUpdateTime ? formatTime(deviceLastUpdateTime, 'MM-dd hh:mm') : '';\n const lastUpdateTimeValue = new Date(deviceLastUpdateTime).getTime();\n const since = new Date().getTime() - lastUpdateTimeValue;\n return device && deviceLastUpdateTime ? `4、当前设备最近活跃时间为: ${localDeviceTime} (${msToTime(since / 1000)}前)` : '';\n });\n const copyClose = () => {\n copy(connectMessage.value);\n showFailDialog.value = false;\n };\n const handleRetry = () => {\n clickCount.value++;\n if (clickCount.value >= 5) {\n location.reload(); // 如果用户点了5下,就给他reload一下页面。\n }\n\n if (connecting.value) return;\n store.dispatch('login');\n connectMessage.value = getLocalValue('connectMessage') && JSON.stringify(getLocalValue('connectMessage'));\n showFailBtn.value = !!connectMessage.value;\n };\n return (_ctx, _cache) => {\n return _openBlock(), _createElementBlock(_Fragment, null, [_createElementVNode(\"div\", _hoisted_1, [_hoisted_2, _createElementVNode(\"p\", null, _toDisplayString(tip.value), 1), _createElementVNode(\"div\", _hoisted_3, [_createElementVNode(\"ul\", null, [_hoisted_4, _hoisted_5, _hoisted_6, _withDirectives(_createElementVNode(\"li\", null, _toDisplayString(lastTime.value), 513), [[_vShow, lastTime.value]])])]), _createElementVNode(\"span\", {\n class: \"button-fail\",\n onClick: handleRetry\n }, _toDisplayString(tipBtn.value), 1), showFailBtn.value ? (_openBlock(), _createElementBlock(\"span\", {\n key: 0,\n class: \"button-fb\",\n onClick: _cache[0] || (_cache[0] = $event => showFailDialog.value = true)\n }, \"反馈错误信息\")) : _createCommentVNode(\"\", true)]), showFailDialog.value ? (_openBlock(), _createElementBlock(\"div\", _hoisted_7, [_createElementVNode(\"div\", _hoisted_8, [_createElementVNode(\"div\", _hoisted_9, [_hoisted_10, _createElementVNode(\"p\", _hoisted_11, [_createElementVNode(\"span\", null, _toDisplayString(connectMessage.value), 1)])]), _createElementVNode(\"div\", _hoisted_12, [_createElementVNode(\"a\", {\n href: \"javascript:;\",\n class: \"button-other\",\n onClick: _cache[1] || (_cache[1] = $event => showFailDialog.value = false)\n }, \" 关闭 \"), _createElementVNode(\"a\", {\n href: \"javascript:;\",\n onClick: copyClose\n }, \" 复制并关闭 \")])])])) : _createCommentVNode(\"\", true)], 64);\n };\n }\n});","/* unplugin-vue-components disabled */import script from \"./Fail.vue?vue&type=script&lang=ts&setup=true\"\nexport * from \"./Fail.vue?vue&type=script&lang=ts&setup=true\"\n\nconst __exports__ = script;\n\nexport default __exports__","import \"core-js/modules/es.array.push.js\";\nimport { defineComponent as _defineComponent } from 'vue';\nimport { toDisplayString as _toDisplayString, vShow as _vShow, createElementVNode as _createElementVNode, withDirectives as _withDirectives, createTextVNode as _createTextVNode, normalizeClass as _normalizeClass, withModifiers as _withModifiers, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\";\nconst _withScopeId = n => (_pushScopeId(\"data-v-37605826\"), n = n(), _popScopeId(), n);\nconst _hoisted_1 = {\n class: \"file-tab\"\n};\nconst _hoisted_2 = {\n class: \"file-tab-nav\"\n};\nconst _hoisted_3 = {\n class: \"file-tab-button\"\n};\nconst _hoisted_4 = /*#__PURE__*/_withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"qh-icon-new\"\n}, null, -1));\nconst _hoisted_5 = [_hoisted_4];\nconst _hoisted_6 = /*#__PURE__*/_withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"qh-icon-cloud\"\n}, null, -1));\nconst _hoisted_7 = [_hoisted_6];\nconst _hoisted_8 = /*#__PURE__*/_withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"qh-icon-moreandroid\"\n}, null, -1));\nconst _hoisted_9 = [_hoisted_8];\nconst _hoisted_10 = {\n key: 0,\n class: \"file-tab-more\"\n};\nconst _hoisted_11 = {\n key: 0,\n class: \"file-tab-option\"\n};\nconst _hoisted_12 = {\n href: \"javascript:;\"\n};\nimport { computed, ref, watch } from 'vue';\nimport { useStore } from 'vuex';\nimport { TASK_TYPE_IDS } from '@remote/constant';\nimport { useDeviceStore } from '@remote/store/device';\nimport router from '@remote/router';\nimport { stat } from '@remote/utils/stat';\nimport { newToast } from '@remote/utils';\nimport { openDialogScrapeHint } from '@remote/utils/dialog';\nimport { isTheDateToday } from '@shared/utils';\nexport default /*#__PURE__*/_defineComponent({\n __name: 'FileTabPlus',\n setup(__props) {\n const store = useStore();\n const deviceStore = useDeviceStore();\n const showMoreTab = ref(false);\n const tasks = computed(() => {\n return store.state.tasks;\n });\n const isSelect = computed(() => {\n return store.state.isSelect;\n });\n const selects = computed(() => {\n return store.state.selects;\n });\n const taskType = computed(() => {\n return store.state.taskType;\n });\n const curList = computed(() => {\n return store.getters.curList;\n });\n const all = computed(() => {\n return store.state.all;\n });\n const curAllSelect = computed(() => {\n return store.getters.curAllSelect;\n });\n const isLogin = computed(() => {\n return store.getters.isLogin;\n });\n const tasksNum = computed(() => {\n // return tasks.value.filter(id => this.all[id].phase !== 'PHASE_TYPE_ERROR').length\n const total = tasks.value.length > 0 ? tasks.value.length : '';\n return total;\n });\n const status = computed(() => {\n var _deviceStore$currentD;\n return ((_deviceStore$currentD = deviceStore.currentDeviceRef) === null || _deviceStore$currentD === void 0 ? void 0 : _deviceStore$currentD.runnerTaskRef.phase) === 'PHASE_TYPE_RUNNING';\n });\n const selectNum = computed(() => {\n return selects.value.length;\n });\n const downloadOrPause = (id, action, willToast) => {\n store.dispatch('actionTask', {\n id,\n action,\n willToast\n });\n };\n const handelAllTask = async type => {\n if (tasks.value.length <= 0) return;\n for (let i = 0; i < tasks.value.length; i++) {\n const task = tasks.value[i];\n const willToast = i === tasks.value.length - 1;\n await downloadOrPause(task, type, willToast);\n }\n };\n const handelActionTabClick = val => {\n switch (val) {\n case 'allStart':\n console.log('全部开始');\n handelAllTask('running');\n break;\n case 'allStop':\n console.log('全部暂停');\n handelAllTask('pause');\n break;\n default:\n break;\n }\n showMoreTab.value = false;\n };\n const handleSelect = () => {\n showMoreTab.value = false;\n if (curList.value.length === 0) return store.commit('toast', '暂无任务可以操作');\n store.commit('update', {\n isSelect: true\n });\n };\n const changeMoreTab = () => {\n if (!status.value) {\n newToast({\n message: '设备未连接'\n });\n return;\n }\n showMoreTab.value = !showMoreTab.value;\n };\n const handleCancel = () => {\n store.commit('update', {\n isSelect: false,\n selects: []\n });\n };\n const checkDialogScrapeHintShow = async () => {\n var _deviceStore$currentN, _deviceStore$currentN2;\n const deviceStore = useDeviceStore();\n const hasInitCinema = (_deviceStore$currentN = deviceStore.currentNFOInstance) === null || _deviceStore$currentN === void 0 ? void 0 : _deviceStore$currentN.hasInitCinema;\n const hasInitLocalState = (_deviceStore$currentN2 = deviceStore.currentNFOInstance) === null || _deviceStore$currentN2 === void 0 ? void 0 : _deviceStore$currentN2.hasInitLocalState;\n const todayTask = curList.value.map(i => all.value[i]).find(i => {\n return isTheDateToday(new Date(i.updated_time));\n });\n console.log('hasTodayTask', todayTask, 'hasInitCinema', hasInitCinema);\n if (todayTask && hasInitLocalState && !hasInitCinema) {\n var _deviceStore$currentD2, _deviceStore$currentD3;\n if (!((_deviceStore$currentD2 = deviceStore.currentDeviceRef) !== null && _deviceStore$currentD2 !== void 0 && _deviceStore$currentD2.util.isVersionSmallerThan('3.20.0')) && ((_deviceStore$currentD3 = deviceStore.currentDeviceRef) === null || _deviceStore$currentD3 === void 0 || (_deviceStore$currentD3 = _deviceStore$currentD3.baseConfig) === null || _deviceStore$currentD3 === void 0 || (_deviceStore$currentD3 = _deviceStore$currentD3.nfo_config) === null || _deviceStore$currentD3 === void 0 ? void 0 : _deviceStore$currentD3.is_disabled) === false) {\n var _deviceStore$currentD4, _deviceStore$currentD5, _deviceStore$currentD6;\n const uid = (_deviceStore$currentD4 = (_deviceStore$currentD5 = deviceStore.currentDeviceRef) === null || _deviceStore$currentD5 === void 0 || (_deviceStore$currentD5 = _deviceStore$currentD5.deviceInfoRef.user) === null || _deviceStore$currentD5 === void 0 ? void 0 : _deviceStore$currentD5.id) !== null && _deviceStore$currentD4 !== void 0 ? _deviceStore$currentD4 : '';\n const canShow = await ((_deviceStore$currentD6 = deviceStore.currentDeviceRef) === null || _deviceStore$currentD6 === void 0 ? void 0 : _deviceStore$currentD6.dialogManager.canDialogShow({\n uid,\n dialogID: 'SCRAPE_HINT'\n }));\n console.log('hasTodayTask canshow', canShow);\n if (canShow) {\n var _deviceStore$currentD7;\n (_deviceStore$currentD7 = deviceStore.currentDeviceRef) === null || _deviceStore$currentD7 === void 0 ? void 0 : _deviceStore$currentD7.dialogManager.dialogShow({\n uid,\n dialogID: 'SCRAPE_HINT'\n });\n openDialogScrapeHint({\n theme: 'light',\n scene: 'local'\n });\n }\n }\n }\n };\n const onTab = tab => {\n store.commit('update', {\n selects: [],\n taskType: TASK_TYPE_IDS[tab]\n });\n console.log('onTab', tab);\n if (tab > 1) {\n store.dispatch('getFiles', {\n type: TASK_TYPE_IDS[tab]\n });\n } else {\n store.dispatch('getTasks', {\n type: TASK_TYPE_IDS[tab]\n });\n }\n if (tab === 1) {\n checkDialogScrapeHintShow();\n }\n };\n const handleAllSel = () => {\n let list = [];\n if (!curAllSelect.value) {\n list = [...curList.value];\n }\n store.commit('update', {\n selects: list\n });\n };\n const callAppUpload = async () => {\n if (!isLogin.value) return;\n stat({\n action: 'create_task_btn_click',\n data: {\n position: 'add'\n }\n });\n if (!status.value) return store.commit('toast', '设备未连接');\n store.commit('update', {\n createFrom: 'add'\n });\n router.push({\n path: '/upload/',\n query: router.currentRoute.value.query\n });\n };\n const callAppDown = async () => {\n if (!isLogin.value) return;\n stat({\n action: 'getback_btn_click'\n });\n if (!status.value) return store.commit('toast', '设备未连接');\n router.push({\n path: '/files/',\n query: router.currentRoute.value.query\n });\n };\n watch(curList, list => {\n if (list && list.length === 0) handleCancel();\n });\n return (_ctx, _cache) => {\n return _openBlock(), _createElementBlock(\"nav\", _hoisted_1, [_createElementVNode(\"div\", _hoisted_2, [_createElementVNode(\"span\", {\n class: _normalizeClass({\n 'is-active': taskType.value === 'ing'\n }),\n onClick: _cache[0] || (_cache[0] = $event => onTab(0))\n }, [_createTextVNode(\"下载中 \"), _withDirectives(_createElementVNode(\"sup\", {\n class: \"file-tab__number\"\n }, _toDisplayString(tasksNum.value), 513), [[_vShow, status.value]])], 2), _createElementVNode(\"span\", {\n class: _normalizeClass({\n 'is-active': taskType.value === 'done' || taskType.value === 'bt'\n }),\n onClick: _cache[1] || (_cache[1] = $event => onTab(1))\n }, \"已完成\", 2), _createElementVNode(\"div\", _hoisted_3, [_createElementVNode(\"a\", {\n href: \"javascript:;\",\n onClick: callAppUpload,\n class: _normalizeClass([\"file__button\", {\n 'is-disabled': !status.value\n }])\n }, _hoisted_5, 2), _createElementVNode(\"a\", {\n href: \"javascript:;\",\n onClick: callAppDown,\n class: _normalizeClass([\"file__button\", {\n 'is-disabled': !status.value\n }])\n }, _hoisted_7, 2), _createElementVNode(\"a\", {\n href: \"javascript:;\",\n onClick: changeMoreTab,\n class: _normalizeClass([\"file__button\", {\n 'is-disabled': !status.value\n }])\n }, _hoisted_9, 2), showMoreTab.value ? (_openBlock(), _createElementBlock(\"div\", _hoisted_10, [_createElementVNode(\"div\", {\n onClick: _cache[2] || (_cache[2] = _withModifiers($event => handelActionTabClick('allStart'), [\"stop\"])),\n class: \"file-more-item\"\n }, \" 全部开始 \"), _createElementVNode(\"div\", {\n onClick: _cache[3] || (_cache[3] = _withModifiers($event => handelActionTabClick('allStop'), [\"stop\"])),\n class: \"file-more-item\"\n }, \" 全部暂停 \"), _createElementVNode(\"div\", {\n onClick: handleSelect,\n class: \"file-more-item\"\n }, \" 多选操作 \"), _createElementVNode(\"div\", {\n class: \"cancel\",\n onClick: _cache[4] || (_cache[4] = $event => showMoreTab.value = false)\n })])) : _createCommentVNode(\"\", true)])]), isSelect.value ? (_openBlock(), _createElementBlock(\"div\", _hoisted_11, [_createElementVNode(\"a\", {\n href: \"javascript:;\",\n onClick: handleCancel\n }, \"取消\"), _createElementVNode(\"a\", _hoisted_12, [_createTextVNode(\"已选择\"), _createElementVNode(\"span\", null, _toDisplayString(selectNum.value), 1), _createTextVNode(\"个\")]), _createElementVNode(\"a\", {\n href: \"javascript:;\",\n style: {\n \"color\": \"#3F85FF\"\n },\n onClick: handleAllSel\n }, _toDisplayString(curAllSelect.value ? '取消全选' : '全选'), 1)])) : _createCommentVNode(\"\", true)]);\n };\n }\n});","/* unplugin-vue-components disabled */import script from \"./FileTabPlus.vue?vue&type=script&lang=ts&setup=true\"\nexport * from \"./FileTabPlus.vue?vue&type=script&lang=ts&setup=true\"\n\nimport \"./FileTabPlus.vue?vue&type=style&index=0&id=37605826&lang=scss&scoped=true\"\n\nimport exportComponent from \"/var/static/node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.3.4_vue@3.3.4_webpack@4.46.0/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-37605826\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue';\nimport { createElementVNode as _createElementVNode, vShow as _vShow, withDirectives as _withDirectives, openBlock as _openBlock, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\";\nconst _withScopeId = n => (_pushScopeId(\"data-v-27da79ae\"), n = n(), _popScopeId(), n);\nconst _hoisted_1 = [\"src\"];\nconst _hoisted_2 = [\"src\"];\nconst _hoisted_3 = [\"src\"];\nimport P2PNormal from '@shared/assets/img/speedup/p2p-normal.png';\nimport P2PVip from '@shared/assets/img/speedup/p2p-vip.png';\nimport SuperClose from '@shared/assets/img/speedup/super-closed.png';\nimport SuperStarted from '@shared/assets/img/speedup/super-started.png';\nimport VipClosed from '@shared/assets/img/speedup/vip-closed.png';\nimport VipStarted from '@shared/assets/img/speedup/vip-started.png';\nimport VipStopped from '@shared/assets/img/speedup/vip-stopped.png';\nimport { openPopSpeedupDetail } from '@remote/utils/dialog';\nimport { computed } from 'vue';\nimport { stat } from '@remote/utils/stat';\nexport default /*#__PURE__*/_defineComponent({\n __name: 'SpeedUp',\n props: {\n speedUp: {\n type: Object,\n default: () => ({})\n },\n isVIP: {\n type: Boolean,\n default: false\n },\n isSVIP: {\n type: Boolean,\n default: false\n },\n // 是否为试用中\n isInTry: {\n type: Boolean,\n default: false\n },\n task: {\n type: Object,\n required: true\n },\n gcid: {\n type: String,\n default: ''\n },\n infoHash: {\n type: String,\n default: ''\n },\n url: {\n type: String,\n default: ''\n }\n },\n setup(__props) {\n const props = __props;\n /**\n * vip,super任意一个状态为starting,则状态没有获取完全,此时暂不展示组件。\n * */\n const isComponentShow = computed(() => {\n return !(props.speedUp.vip === 'starting' || props.speedUp.super === 'starting');\n });\n const checkDetail = () => {\n stat({\n action: 'downloading_speed_icon_click',\n data: {\n vip: props.speedUp.vip,\n super: props.speedUp.super,\n gcid: props.gcid,\n info_hash: props.infoHash,\n url: props.url\n }\n });\n openPopSpeedupDetail({\n task: props.task,\n speedUp: props.speedUp,\n isSVIP: props.isSVIP,\n isVIP: props.isVIP,\n isInTry: props.isInTry,\n gcid: props.gcid,\n infoHash: props.infoHash,\n url: props.url\n });\n };\n const icon = computed(() => {\n // 非会员只有一种状态。\n if (!props.isVIP && !props.isInTry) {\n return {\n p2p: P2PNormal,\n vip: VipClosed,\n super: SuperClose\n };\n }\n return {\n p2p: P2PVip,\n vip: props.speedUp.vip === 'stopped' ? VipStopped : props.speedUp.vip === 'started' ? VipStarted : VipClosed,\n super: props.speedUp.super === 'started' ? SuperStarted : SuperClose\n };\n });\n return (_ctx, _cache) => {\n return _withDirectives((_openBlock(), _createElementBlock(\"span\", {\n class: \"speed-up\",\n onClick: checkDetail\n }, [_createElementVNode(\"img\", {\n class: \"icon-img\",\n src: icon.value.p2p,\n alt: \"P2P加速状态\",\n draggable: \"false\"\n }, null, 8, _hoisted_1), _createElementVNode(\"img\", {\n class: \"icon-img\",\n src: icon.value.super,\n alt: \"超级通道加速状态\",\n draggable: \"false\"\n }, null, 8, _hoisted_2), _createElementVNode(\"img\", {\n class: \"icon-img\",\n src: icon.value.vip,\n alt: \"会员加速状态\",\n draggable: \"false\"\n }, null, 8, _hoisted_3)], 512)), [[_vShow, isComponentShow.value]]);\n };\n }\n});","/* unplugin-vue-components disabled */import script from \"./SpeedUp.vue?vue&type=script&lang=ts&setup=true\"\nexport * from \"./SpeedUp.vue?vue&type=script&lang=ts&setup=true\"\n\nimport \"./SpeedUp.vue?vue&type=style&index=0&id=27da79ae&lang=scss&scoped=true\"\n\nimport exportComponent from \"/var/static/node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.3.4_vue@3.3.4_webpack@4.46.0/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-27da79ae\"]])\n\nexport default __exports__","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, toDisplayString as _toDisplayString, normalizeStyle as _normalizeStyle, vShow as _vShow, normalizeClass as _normalizeClass, withDirectives as _withDirectives, resolveComponent as _resolveComponent, createBlock as _createBlock, withModifiers as _withModifiers, Fragment as _Fragment, createTextVNode as _createTextVNode, resolveDirective as _resolveDirective, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\";\nimport _imports_0 from '../assets/img/yunpan-icon@3x.png';\nconst _withScopeId = n => (_pushScopeId(\"data-v-558b8ab8\"), n = n(), _popScopeId(), n);\nconst _hoisted_1 = {\n class: \"file-item__pic\"\n};\nconst _hoisted_2 = [\"src\"];\nconst _hoisted_3 = {\n key: 0,\n class: \"file-item-tackback\",\n src: _imports_0,\n draggable: \"false\"\n};\nconst _hoisted_4 = {\n class: \"file-item__main\"\n};\nconst _hoisted_5 = {\n class: \"file-item__name\"\n};\nconst _hoisted_6 = {\n class: \"file-item__speed\"\n};\nconst _hoisted_7 = {\n key: 0,\n class: \"margin\"\n};\nconst _hoisted_8 = {\n style: {\n \"margin-left\": \"auto\"\n }\n};\nconst _hoisted_9 = {\n ref: \"speedUp\",\n class: \"add-speed\"\n};\nconst _hoisted_10 = {\n key: 0\n};\nconst _hoisted_11 = [\"src\"];\nconst _hoisted_12 = [\"src\"];\nconst _hoisted_13 = {\n class: \"file-item__option\"\n};\nexport function render(_ctx, _cache, $props, $setup, $data, $options) {\n var _ctx$file;\n const _component_SpeedUp = _resolveComponent(\"SpeedUp\");\n const _directive_longpress = _resolveDirective(\"longpress\");\n return _withDirectives((_openBlock(), _createElementBlock(\"div\", {\n class: _normalizeClass([\"file-item\", {\n 'is-unread': _ctx.unread,\n 'is-disabled': _ctx.isTaskDeleted\n }]),\n onClick: _cache[3] || (_cache[3] =\n //@ts-ignore\n (...args) => _ctx.handleSelect && _ctx.handleSelect(...args))\n }, [_createElementVNode(\"div\", _hoisted_1, [_createElementVNode(\"img\", {\n class: \"file-item-img\",\n src: _ctx.iconLink,\n alt: \"图片\",\n draggable: \"false\"\n }, null, 8, _hoisted_2), _ctx.file.type === 'user#download' ? (_openBlock(), _createElementBlock(\"img\", _hoisted_3)) : _createCommentVNode(\"\", true)]), _createElementVNode(\"article\", _hoisted_4, [_createElementVNode(\"p\", _hoisted_5, _toDisplayString(_ctx.file.file_name || _ctx.file.name), 1), _createElementVNode(\"section\", null, [_withDirectives(_createElementVNode(\"p\", {\n class: _normalizeClass([\"file-item__process\", `process-${_ctx.speedBackground}`])\n }, [_createElementVNode(\"b\", {\n style: _normalizeStyle({\n width: _ctx.file.progress + '%'\n })\n }, null, 4)], 2), [[_vShow, _ctx.phase !== 'PHASE_TYPE_COMPLETE']]), _createElementVNode(\"p\", _hoisted_6, [_withDirectives(_createElementVNode(\"span\", null, _toDisplayString(_ctx.parseTime(new Date(_ctx.file.created_time))), 513), [[_vShow, _ctx.taskType !== 'ing']]), _createElementVNode(\"span\", {\n class: _normalizeClass({\n 'margin': _ctx.taskType !== 'ing'\n })\n }, _toDisplayString(_ctx.isWarn ? _ctx.warnInfo : _ctx.size) + \" \" + _toDisplayString(_ctx.lastTime), 3), _ctx.isTaskDeleted ? (_openBlock(), _createElementBlock(\"span\", _hoisted_7, \"文件不存在\")) : _createCommentVNode(\"\", true), _createElementVNode(\"span\", _hoisted_8, [_createTextVNode(_toDisplayString(_ctx.speedTxt) + \" \", 1), _withDirectives(_createElementVNode(\"span\", _hoisted_9, [(_ctx$file = _ctx.file) !== null && _ctx$file !== void 0 && (_ctx$file = _ctx$file.params) !== null && _ctx$file !== void 0 && _ctx$file.speedup ? (_openBlock(), _createBlock(_component_SpeedUp, {\n key: 0,\n \"speed-up\": _ctx.taskSpeedUp,\n task: _ctx.file,\n \"is-v-i-p\": _ctx.isVip,\n \"is-s-v-i-p\": _ctx.isSuperVip,\n \"is-in-try\": _ctx.isInTrySpeed,\n gcid: _ctx.file.params.hash,\n \"info-hash\": _ctx.file.params.info_hash,\n url: _ctx.file.params.url\n }, null, 8, [\"speed-up\", \"task\", \"is-v-i-p\", \"is-s-v-i-p\", \"is-in-try\", \"gcid\", \"info-hash\", \"url\"])) : (_openBlock(), _createElementBlock(_Fragment, {\n key: 1\n }, [!_ctx.isAllTaskWithSensitiveResource && _ctx.speedupSpeed ? (_openBlock(), _createElementBlock(\"span\", _hoisted_10, _toDisplayString(_ctx.speedVip), 1)) : _createCommentVNode(\"\", true), _ctx.isTaskWithSensitiveResource ? (_openBlock(), _createElementBlock(\"span\", {\n key: 1,\n class: \"qh-icon-warn\",\n onClick: _cache[0] || (_cache[0] = _withModifiers(\n //@ts-ignore\n (...args) => _ctx.handleWarn && _ctx.handleWarn(...args), [\"stop\"]))\n })) : _createCommentVNode(\"\", true), _ctx.vipTeamJoined ? (_openBlock(), _createElementBlock(\"img\", {\n key: 2,\n src: _ctx.MeetIcon,\n class: \"huddle-icon\",\n draggable: \"false\",\n onClick: _cache[1] || (_cache[1] = _withModifiers($event => _ctx.store.commit('toast', '组队加速已开启'), [\"stop\"]))\n }, null, 8, _hoisted_11)) : _createCommentVNode(\"\", true), _ctx.svipJoined ? (_openBlock(), _createElementBlock(\"img\", {\n key: 3,\n src: _ctx.SpeedTackIcon,\n class: \"speed-lightning-icon\",\n draggable: \"false\",\n onClick: _cache[2] || (_cache[2] = _withModifiers($event => _ctx.store.commit('toast', '超级加速已开启'), [\"stop\"]))\n }, null, 8, _hoisted_12)) : _createCommentVNode(\"\", true)], 64))], 512), [[_vShow, _ctx.status === 'pause2' && _ctx.phase === 'PHASE_TYPE_RUNNING' && _ctx.file.type !== 'user#download']])])])])]), _withDirectives(_createElementVNode(\"div\", _hoisted_13, [_createElementVNode(\"a\", {\n href: \"javascript:;\",\n class: _normalizeClass(`qh-icon-${_ctx.status}`)\n }, null, 2)], 512), [[_vShow, _ctx.showCheckBtn]])], 2)), [[_directive_longpress, _ctx.handleSelectInLong]]);\n}","import { defineComponent } from 'vue';\nimport { formatSize, msToTime, isTruePlayFormat, checkIsJSON, parseTime, isMagnetURL, toast } from '@remote/utils';\nimport { mapState, mapGetters, useStore } from 'vuex';\nimport { USER_DOWNLOAD, USER_DOWNLOAD_URL, SPEC_TXT } from '@remote/constant';\nimport debounce from 'lodash/debounce';\nimport { getIconFromMineType } from '@remote/utils/static-icons';\nimport SpeedTackIcon from '@shared/assets/img/trying.png';\nimport MeetIcon from '@shared/assets/img/team.png';\nimport Icons from '@remote/utils/static-icons';\nimport SpeedUp from '@remote/components/SpeedUp.vue';\nimport { stat } from '@remote/utils/stat';\nimport { getExtensionFromFilename, categorizeByFileExtension } from '@shared/utils/file';\nimport { openPopBTTaskDetail } from '@remote/utils/dialog';\nimport { safeJSONParse } from '@shared/utils';\nimport { request } from '@remote/api/request';\nimport { useEnvStore } from '@remote/store/env';\nimport { useDeviceStore } from '@remote/store/device';\nconst MapPhase = {\n 'PHASE_TYPE_ERROR': 'restore2',\n 'PHASE_TYPE_PENDING': 'pause2',\n 'PHASE_TYPE_RUNNING': 'pause2',\n 'PHASE_TYPE_COMPLETE': 'check',\n 'pause': 'down2',\n 'running': 'pause2',\n 'delete': 'warn-nav'\n};\nconst MapSpec = {\n 'pause': 'PHASE_TYPE_PENDING',\n 'running': 'PHASE_TYPE_RUNNING',\n 'delete': 'PHASE_TYPE_ERROR'\n};\nconst MapSpecTxt = {\n 'pause': '已暂停',\n 'running': '等待中',\n 'delete': '已删除',\n 'PHASE_TYPE_PENDING': '等待中',\n 'PHASE_TYPE_ERROR': '',\n 'PHASE_TYPE_COMPLETE': ''\n};\nexport default defineComponent({\n name: 'FileItem',\n components: {\n SpeedUp\n },\n props: {\n id: {\n type: String,\n default: ''\n }\n },\n setup() {\n return {\n store: useStore()\n };\n },\n data() {\n return {\n unread: false,\n iShowHuddle: true,\n MeetIcon,\n SpeedTackIcon,\n isOpeningBTDetail: false\n };\n },\n computed: {\n ...mapState(['all', 'isSelect', 'taskType', 'tasks', 'tasksDone', 'selects', 'isShowVipPop', 'teamNumber', 'teamLeftTimes', 'huddleNum', 'teamTaskId', 'showLastCount', 'platform', 'isMiniProgram', 'files']),\n ...mapGetters(['curList', 'isVip', 'vipType', 'runningList', 'isYSvip', 'showVip', 'appCanPlay', 'isSuperVip']),\n vipTeamJoined() {\n return this.file.params.team_isjoined === 'true' && this.file.phase === 'PHASE_TYPE_RUNNING';\n },\n svipJoined() {\n // 超会加速时展示超会闪电图标\n return this.file.phase === 'PHASE_TYPE_RUNNING' && this.file.params.super_speedup_isjoined === 'true';\n },\n isInTrySpeed() {\n return this.$store.state.trySpeedStatus === 'TRYING';\n },\n iShowHuddlePop() {\n return this.id === this.teamTaskId && this.iShowHuddle && this.taskType === 'ing' && this.huddleNum && this.teamLeftTimes < 1 && !this.vipTeamJoined && this.showVip;\n },\n file() {\n return this.all[this.id];\n },\n isChecked() {\n return this.isSelect && this.selects.includes(this.id);\n },\n phase() {\n return this.file.phase;\n },\n spec() {\n const spec = (this.file.params.spec || '').match(/(delete|pause|running)/);\n return spec && this.phase !== 'PHASE_TYPE_ERROR' ? spec[0] : '';\n },\n specStatus() {\n const status = (this.file.params.status || '').match(/(delete|pause|running)/);\n return status && this.phase !== 'PHASE_TYPE_ERROR' ? status[0] : '';\n },\n status() {\n let specIcon = '';\n const isUpdating = this.spec && this.spec !== this.specStatus;\n if (this.file.updating || isUpdating) specIcon = 'loading';\n return this.isSelect || this.phase === 'PHASE_TYPE_COMPLETE' ? this.isChecked ? 'checked' : 'check' : specIcon || MapPhase[this.specStatus || this.phase];\n },\n taskSpeedUp() {\n try {\n return JSON.parse(this.file.params.speedup);\n } catch (e) {\n return {\n p2p: '',\n vip: '',\n super: ''\n };\n }\n },\n isWarn() {\n return this.phase === 'PHASE_TYPE_ERROR';\n },\n warnInfo() {\n var _this$file$params$err;\n if (checkIsJSON(this.file.params.error)) {\n var _safeJSONParse$error, _this$file;\n return (_safeJSONParse$error = safeJSONParse((_this$file = this.file) === null || _this$file === void 0 || (_this$file = _this$file.params) === null || _this$file === void 0 ? void 0 : _this$file.error).error) !== null && _safeJSONParse$error !== void 0 ? _safeJSONParse$error : '';\n }\n return (_this$file$params$err = this.file.params.error) !== null && _this$file$params$err !== void 0 ? _this$file$params$err : this.file.message;\n },\n size() {\n if (this.taskType === 'file' && this.file.kind === 'drive#folder') return '';\n return this.file.file_size !== '0' ? formatSize(this.file.file_size || Number(this.file.size)) : '未知大小';\n },\n progress() {\n return Number(this.file.progress || 0);\n },\n speed() {\n return Number(this.file.params.speed || 0);\n },\n speedupCount() {\n return Number(this.file.params.speedup_count);\n },\n outdated() {\n const now = Date.now();\n const d = now - new Date(this.file.updated_time).getTime();\n return d > 15 * 60 * 1000;\n },\n speedTxt() {\n const isUpdating = this.spec && this.spec !== this.specStatus;\n if (this.file.phase === 'PHASE_TYPE_COMPLETE') return '';\n if (this.file.updating || isUpdating) return `${SPEC_TXT[this.file.update_action || this.spec]}中`;\n const showSpeed = this.outdated ? '' : formatSize(this.speed) + '/s';\n return this.spec && this.spec !== 'running' ? MapSpecTxt[this.spec] : this.phase === 'PHASE_TYPE_RUNNING' ? showSpeed : MapSpecTxt[this.phase];\n },\n lastTime() {\n return this.speed > 0 && this.progress > 0 && this.phase === 'PHASE_TYPE_RUNNING' ? ' / 约' + msToTime(Number(this.file.file_size) * (100 - this.progress) * 0.01 / (this.speed + this.speedupSpeed)) : '';\n },\n speedBackground() {\n // return this.file.type === USER_DOWNLOAD_URL ? 2 : 1 // && this.status === 'pause1'\n return this.isVip || this.isInTrySpeed ? 2 : 1;\n },\n speedupSpeed() {\n return Number(this.file.params.speedup_speed || 0);\n },\n speedVip() {\n return this.isVip ? '(+' + formatSize(this.speedupSpeed) + '/s)' : '';\n },\n iShowlight() {\n return this.isVip && this.file.type === USER_DOWNLOAD && this.phase === 'PHASE_TYPE_RUNNING' && this.speedupSpeed !== 0 && this.isInTrySpeed;\n },\n isBt() {\n // TODO: 当前只能根据图标来判断\n // return this.file.icon_link.indexOf('636aabac9eee211de3beb7cfe72eb25538a88e39') > 0\n return isMagnetURL(this.file.params.url || '');\n },\n isFolder() {\n var _this$file$params$rea, _this$file$params$rea2;\n return ((_this$file$params$rea = this.file.params.real_path) !== null && _this$file$params$rea !== void 0 ? _this$file$params$rea : '').endsWith('/') || ((_this$file$params$rea2 = this.file.params.real_path) !== null && _this$file$params$rea2 !== void 0 ? _this$file$params$rea2 : '').endsWith('\\\\');\n },\n iconLink() {\n return this.isBt && Icons.bt || this.file.icon_link || getIconFromMineType(this.file.mime_type);\n },\n showCheckBtn() {\n // TODO: 文件未做编辑操作\n return ['ing', 'done'].includes(this.taskType);\n },\n total_file_count() {\n return this.file.params && this.file.params.total_file_count ? Number(this.file.params.total_file_count) : 0;\n },\n speedup_failed_count() {\n return this.file.params && this.file.params.speedup_failed_count ? Number(this.file.params.speedup_failed_count) : 0;\n },\n // 判断任务里面是否含有敏感资源\n isTaskWithSensitiveResource() {\n return this.total_file_count > 0 && this.speedup_failed_count > 0 && this.isVip;\n },\n isAllTaskWithSensitiveResource() {\n return this.isTaskWithSensitiveResource && this.total_file_count === this.speedup_failed_count;\n },\n /**\n * 任务对应的文件是否已经删除\n */\n isTaskDeleted() {\n var _this$file2;\n return ((_this$file2 = this.file) === null || _this$file2 === void 0 || (_this$file2 = _this$file2.params) === null || _this$file2 === void 0 ? void 0 : _this$file2.is_deleted) === 'true';\n }\n },\n watch: {\n progress(val) {\n if (val && val === 100) {\n this.store.commit('delete', this.id);\n }\n },\n phase(val, oVal) {\n if (val !== oVal && val === 'PHASE_TYPE_RUNNING' && this.huddleNum > 0 && this.file.type === USER_DOWNLOAD_URL && !this.isYSvip) {\n setTimeout(() => this.store.dispatch('checkHuddle', this.file), 1000);\n }\n },\n vipTeamJoined(val) {\n if (val && this.huddleNum > 0 && this.showLastCount && !this.isYSvip && this.teamLeftTimes > 0) {\n this.store.commit('toast', `任务组队成功,组队次数剩余${this.teamLeftTimes - 1}次`);\n this.store.commit('update', {\n showLastCount: false\n });\n }\n }\n },\n methods: {\n parseTime,\n lessHuddle() {\n const huddleNum = this.huddleNum - 1;\n this.store.commit('update', {\n huddleNum\n });\n localStorage.setItem('huddleNum', String(huddleNum));\n },\n skipHuddlePop() {\n this.store.commit('update', {\n isShowVipPop: true\n });\n this.lessHuddle();\n },\n handleWarn() {\n const msg = this.isAllTaskWithSensitiveResource ? '暂无法加速' : '部分子文件暂无法加速';\n this.store.commit('toast', msg);\n },\n huddleQuit() {\n this.iShowHuddle = false;\n this.lessHuddle();\n },\n async showFolder() {\n try {\n if (this.isOpeningBTDetail) return;\n this.isOpeningBTDetail = true;\n await this.store.dispatch('getFiles', {\n parent_id: this.file.file_id,\n name: this.file.name,\n with: this.taskType === 'ing' ? [`taskID.${this.file.id}`] : ''\n });\n // 旧版本套件适配:\n // v < 3.6 task不会返回file_id,不会弹窗,不用单独适配;\n // v > 3.6 && v < 3.7 task会返回file_id,前端会请求files接口,会带with参数,但是套件端会忽略with参数正常返回下载中已完成列表;但是弹窗后,浮层里的删除、添加(旧版本不支持,新版本支持)入口需要labels区分展示,\n if (this.files.length > 0) {\n await openPopBTTaskDetail({\n rootFileName: this.file.file_name,\n rootFileID: this.file.file_id,\n taskID: this.file.id\n });\n // this.store.commit('update', { showFilePop: true, filePopTaskID: this.file.id })\n } else {\n this.store.commit('update', {\n parentIds: []\n });\n if (this.file.phase === 'PHASE_TYPE_COMPLETE') {\n toast('该目录下无文件,请检查文件是否存在');\n } else if (['PHASE_TYPE_RUNNING', 'PHASE_TYPE_PAUSED'].includes(this.file.phase)) {\n toast('该任务尚未有完成下载的文件,请稍后再试');\n }\n }\n this.isOpeningBTDetail = false;\n } catch (error) {\n console.error(error);\n this.isOpeningBTDetail = false;\n }\n },\n formatSize,\n async handleSelect(e) {\n if (this.$refs.speedUp) {\n const el = this.$refs.speedUp;\n if (el.contains(e.target)) return;\n }\n if (this.isSelect) {\n this.store.commit('selTask', this.file.id);\n if (this.selects.length === 0) {\n this.store.commit('update', {\n isSelect: false\n });\n }\n } else if (e.target.nodeName === 'A') {\n this.handleFile();\n } else if (this.file.file_id) {\n // 这里原来是文件夹的的处理逻辑,现在不管是不是文件夹,都走这里,后面else分支用来兜底\n // if (this.platform === 'hiksemi') return this.handleOpenFile()\n if (this.isTaskDeleted) return;\n const deviceStore = useDeviceStore();\n if (this.taskType === 'done') {\n try {\n var _deviceStore$currentD, _this$file$params$inf, _this$file$params$url;\n const file = await ((_deviceStore$currentD = deviceStore.currentDeviceRef) === null || _deviceStore$currentD === void 0 ? void 0 : _deviceStore$currentD.deviceFetch('drive/v1/files/' + this.file.file_id, {}));\n this.$stat({\n action: 'completed_task_click',\n data: {\n task_type: 'btfolder',\n gcid: this.file.params.hash,\n info_hash: (_this$file$params$inf = this.file.params.info_hash) !== null && _this$file$params$inf !== void 0 ? _this$file$params$inf : '',\n url: (_this$file$params$url = this.file.params.url) !== null && _this$file$params$url !== void 0 ? _this$file$params$url : ''\n }\n });\n this.store.commit('update', {\n files: [],\n parentIds: []\n });\n // XLLite,单文件BT不会创建文件夹,而是直接创建文件\n // 判断出这种情况后,要走消费逻辑\n if ((file === null || file === void 0 ? void 0 : file.kind) === 'drive#file') {\n return this.store.dispatch('getFileInfo', {\n id: this.file.file_id,\n usage: 2,\n action_from: 'completed'\n }).catch(() => {\n toast('播放失败,请检查文件是否存在');\n });\n }\n if ((file === null || file === void 0 ? void 0 : file.kind) === 'drive#folder') {\n this.showFolder();\n }\n } catch (error) {\n toast('获取文件信息失败,请检查文件是否存在');\n }\n } else {\n // 下载中\n // XLLite,单文件BT不会创建文件夹,而是直接创建文件\n // 判断出这种情况后,要走消费逻辑\n try {\n if (this.store.state.curDeviceRunner.space === 'platform#pcxllite' && this.file.params.total_file_count === '1') {\n // 下载中\n const envStore = useEnvStore();\n const data = await request(`drive/v1/files/${this.file.file_id}`, {\n params: {\n space: envStore.space\n }\n });\n if (data.kind === 'drive#folder') {\n this.showFolder();\n }\n } else {\n this.showFolder();\n }\n } catch (err) {\n var _ref, _err$error_descriptio;\n toast((_ref = (_err$error_descriptio = err.error_description) !== null && _err$error_descriptio !== void 0 ? _err$error_descriptio : err.message) !== null && _ref !== void 0 ? _ref : '获取文件信息失败');\n }\n }\n } else {\n if (this.taskType === 'done') {\n var _this$file$params$inf2, _this$file$params$url2;\n this.$stat({\n action: 'completed_task_click',\n data: {\n task_type: 'file',\n gcid: this.file.params.hash,\n info_hash: (_this$file$params$inf2 = this.file.params.info_hash) !== null && _this$file$params$inf2 !== void 0 ? _this$file$params$inf2 : '',\n url: (_this$file$params$url2 = this.file.params.url) !== null && _this$file$params$url2 !== void 0 ? _this$file$params$url2 : ''\n }\n });\n }\n this.handleOpenFile();\n }\n },\n handleOpenFile: debounce(function () {\n var _this$file3, _this$file$name, _this$file4, _this$file$name2, _this$file5, _task$params, _task$params2, _task$params3, _task$file_name;\n if (this.taskType === 'ing' || this.isTaskDeleted) return;\n // if (this.appCanPlay) return\n const isVideo = (((_this$file3 = this.file) === null || _this$file3 === void 0 || (_this$file3 = _this$file3.mime_type) === null || _this$file3 === void 0 ? void 0 : _this$file3.includes('video')) || isTruePlayFormat((_this$file$name = (_this$file4 = this.file) === null || _this$file4 === void 0 ? void 0 : _this$file4.name) !== null && _this$file$name !== void 0 ? _this$file$name : '')) && !this.isBt;\n const task = this.file;\n stat({\n action: 'complete_file_play_btn_click',\n data: {\n tab: this.taskType === 'ing' ? 'downloading' : 'complete',\n type: categorizeByFileExtension(getExtensionFromFilename((_this$file$name2 = (_this$file5 = this.file) === null || _this$file5 === void 0 ? void 0 : _this$file5.name) !== null && _this$file$name2 !== void 0 ? _this$file$name2 : '')),\n gcid: task === null || task === void 0 || (_task$params = task.params) === null || _task$params === void 0 ? void 0 : _task$params.hash,\n info_hash: task === null || task === void 0 || (_task$params2 = task.params) === null || _task$params2 === void 0 ? void 0 : _task$params2.info_hash,\n url: task === null || task === void 0 || (_task$params3 = task.params) === null || _task$params3 === void 0 ? void 0 : _task$params3.url,\n task_name: task.name,\n task_size: task.file_size,\n file_name: task.name,\n file_size: task.file_size,\n file_extension: getExtensionFromFilename((_task$file_name = task.file_name) !== null && _task$file_name !== void 0 ? _task$file_name : '')\n }\n });\n this.store.dispatch('getFileInfo', {\n id: this.file.file_id,\n type: this.isBt ? 'bt' : '',\n usage: isVideo ? 2 : 0,\n theme: 'light',\n action_from: 'completed',\n scene: 'download_list'\n }).catch(() => {\n toast('播放失败,请检查文件是否存在');\n });\n }, 500, {\n leading: true,\n trailing: false\n }),\n handleSelectInLong() {\n // 暂时注释长按事件,因为此导致底部按钮需点击两次\n if (this.isSelect) return;\n this.store.commit('update', {\n isSelect: true\n });\n this.store.commit('selTask', this.file.id);\n },\n // 右侧按钮点击\n async handleFile() {\n if (this.phase === 'PHASE_TYPE_COMPLETE') {\n if (!this.isSelect) this.store.commit('update', {\n isSelect: true\n });\n this.store.commit('selTask', this.file.id);\n } else if (this.phase === 'PHASE_TYPE_ERROR') {\n var _this$file$params$inf3, _this$file$params$url3;\n // 重试\n this.$stat({\n action: 'downloading_refresh_btn_click',\n data: {\n gcid: this.file.params.hash,\n info_hash: (_this$file$params$inf3 = this.file.params.info_hash) !== null && _this$file$params$inf3 !== void 0 ? _this$file$params$inf3 : '',\n url: (_this$file$params$url3 = this.file.params.url) !== null && _this$file$params$url3 !== void 0 ? _this$file$params$url3 : ''\n }\n });\n await this.store.dispatch('delete', this.file.id);\n let type = USER_DOWNLOAD;\n let file = {\n name: this.file.name,\n size: this.file.file_size,\n file_extension: this.file.file_name.split('.').pop() || ''\n };\n console.log('===fileItem', this.file);\n if (this.file.type === 'user#download-url') {\n file.url = this.file.params.url;\n if (this.file.params.sub_file_index) {\n file.sub_file_index = this.file.params.sub_file_index;\n }\n type = USER_DOWNLOAD_URL;\n } else {\n file.id = this.file.file_id;\n }\n this.store.dispatch('download', {\n file,\n type,\n prevParams: {\n ...this.file.params,\n // 这六个参数不传\n spec: undefined,\n status: undefined,\n retry_times: undefined,\n retry_record: undefined,\n error: undefined,\n speedup: undefined,\n retry_from: this.file.id\n }\n });\n } else {\n // pause, running, delete\n // pending和error的直接调用删除,其他使用pathc更新状态\n if (this.spec === 'delete') return;\n const action = this.spec === 'pause' ? 'running' : 'pause';\n this.store.commit('clearTaskTimer');\n this.store.dispatch('actionTask', {\n id: this.file.id,\n action\n });\n }\n }\n }\n});","/* unplugin-vue-components disabled */import { render } from \"./FileItem.vue?vue&type=template&id=558b8ab8&scoped=true&ts=true\"\nimport script from \"./FileItem.vue?vue&type=script&lang=ts\"\nexport * from \"./FileItem.vue?vue&type=script&lang=ts\"\n\nimport \"./FileItem.vue?vue&type=style&index=0&id=558b8ab8&lang=scss&scoped=true\"\n\nimport exportComponent from \"/var/static/node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.3.4_vue@3.3.4_webpack@4.46.0/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-558b8ab8\"]])\n\nexport default __exports__","import { createElementVNode as _createElementVNode, normalizeClass as _normalizeClass, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\";\nconst _hoisted_1 = /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"qh-icon-link-nav\"\n}, null, -1);\nconst _hoisted_2 = /*#__PURE__*/_createElementVNode(\"p\", null, \"复制链接\", -1);\nconst _hoisted_3 = [_hoisted_1, _hoisted_2];\nconst _hoisted_4 = /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"qh-icon-delete-nav\"\n}, null, -1);\nconst _hoisted_5 = /*#__PURE__*/_createElementVNode(\"p\", null, \"删除\", -1);\nconst _hoisted_6 = [_hoisted_4, _hoisted_5];\nconst _hoisted_7 = /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"qh-icon-warn-nav\"\n}, null, -1);\nconst _hoisted_8 = /*#__PURE__*/_createElementVNode(\"p\", null, \"举报\", -1);\nconst _hoisted_9 = [_hoisted_7, _hoisted_8];\nexport function render(_ctx, _cache, $props, $setup, $data, $options) {\n return _openBlock(), _createElementBlock(\"footer\", {\n class: _normalizeClass({\n footer: true,\n isIos: _ctx.checkIsIos\n })\n }, [_createElementVNode(\"a\", {\n href: \"javascript:;\",\n class: _normalizeClass({\n 'is-disabled': _ctx.copyList.length === 0\n }),\n onClick: _cache[0] || (_cache[0] =\n //@ts-ignore\n (...args) => _ctx.handleCopy && _ctx.handleCopy(...args))\n }, _hoisted_3, 2), _createElementVNode(\"a\", {\n href: \"javascript:;\",\n class: _normalizeClass({\n 'is-disabled': _ctx.selects.length === 0\n }),\n onClick: _cache[1] || (_cache[1] =\n //@ts-ignore\n (...args) => _ctx.handleDel && _ctx.handleDel(...args))\n }, _hoisted_6, 2), _createElementVNode(\"a\", {\n href: \"javascript:;\",\n class: _normalizeClass({\n 'is-disabled': _ctx.num !== 1\n }),\n onClick: _cache[2] || (_cache[2] =\n //@ts-ignore\n (...args) => _ctx.handleReport && _ctx.handleReport(...args))\n }, _hoisted_9, 2)], 2);\n}","import { defineComponent } from 'vue';\nimport { mapState, useStore } from 'vuex';\nimport copy from 'clipboard-copy';\nimport { openInIframe } from '@remote/utils';\nimport { isAndroidNative as isAndroid, sendMessage, isIOSNative as isIOS } from '@xunlei/universal-native-api';\nexport default defineComponent({\n name: 'Footer',\n setup() {\n return {\n store: useStore()\n };\n },\n computed: {\n ...mapState(['all', 'selects', 'action', 'deleteCompletely', 'taskType']),\n num() {\n return this.selects.length;\n },\n currentId() {\n return this.selects[0];\n },\n curFile() {\n return this.all[this.currentId];\n },\n copyList() {\n return this.selects.map(id => this.all[id]).filter(v => v.type === 'user#download-url').map(v => v.params.url);\n },\n checkIsIos() {\n return !!isIOS;\n },\n /**\n * 是否选中的所有任务的文件都已被删除\n */\n isAllSelectedTaskDeleted() {\n return this.selects.every(i => {\n var _this$all$i;\n return ((_this$all$i = this.all[i]) === null || _this$all$i === void 0 || (_this$all$i = _this$all$i.params) === null || _this$all$i === void 0 ? void 0 : _this$all$i.is_deleted) === 'true';\n });\n }\n },\n watch: {\n action(val) {\n if (val === 'delete') this.handleDelDo();\n }\n },\n methods: {\n cancelSel() {\n this.store.commit('update', {\n isSelect: false,\n selects: []\n });\n },\n handleCopy() {\n console.log(this.copyList, this.copyList.join('\\n'));\n copy(this.copyList.join('\\n'));\n this.cancelSel();\n },\n handleDel() {\n this.store.commit('update', {\n deleteCompletely: false\n });\n const tip = this.isAllSelectedTaskDeleted ? '' : '同时删除设备文件';\n this.store.commit('dialog', {\n show: true,\n title: '确定要删除该任务吗?',\n tip,\n okTxt: '确定',\n cancelTxt: '取消',\n hasCheck: !this.isAllSelectedTaskDeleted,\n action: 'delete'\n });\n },\n async handleDelDo() {\n this.store.commit('dialog', {\n show: false\n });\n this.store.commit('update', {\n isSelect: false,\n action: '',\n deleteTaskList: this.selects\n });\n for (let i = 0; i < this.selects.length; i++) {\n var _task$name;\n const id = this.selects[i];\n const task = this.all[id];\n const isEmptyName = ['', undefined, null].includes(task === null || task === void 0 || (_task$name = task.name) === null || _task$name === void 0 ? void 0 : _task$name.trim());\n if (this.deleteCompletely && !isEmptyName) {\n await this.store.dispatch('actionTask', {\n id,\n action: 'delete',\n willRefresh: i === this.selects.length - 1,\n willCheck: true\n });\n } else {\n await this.store.dispatch('delete', id);\n }\n }\n if (!this.deleteCompletely) {\n const delStat = this.taskType === 'ing' ? 'downloading_delete_btn_click' : 'complete_delete_btn_click';\n const selectedTasks = this.selects.map(id => {\n const task = this.store.state.all[id];\n if (task) {\n var _task$params;\n return task === null || task === void 0 || (_task$params = task.params) === null || _task$params === void 0 ? void 0 : _task$params.hash;\n }\n return '';\n }).filter(Boolean);\n this.$stat({\n action: delStat,\n data: {\n if_delete_file: 0,\n gcid: selectedTasks.map(task => {\n var _task$params$hash;\n return (_task$params$hash = task.params.hash) !== null && _task$params$hash !== void 0 ? _task$params$hash : '';\n }),\n info_hash: selectedTasks.map(task => {\n var _task$params$info_has;\n return (_task$params$info_has = task.params.info_hash) !== null && _task$params$info_has !== void 0 ? _task$params$info_has : '';\n }),\n url: selectedTasks.map(task => {\n var _task$params$url;\n return (_task$params$url = task.params.url) !== null && _task$params$url !== void 0 ? _task$params$url : '';\n })\n }\n });\n }\n this.cancelSel();\n },\n handleReport() {\n const id = this.curFile.params.file_id || this.curFile.id;\n const gcid = this.curFile.params.guid || '';\n const name = this.curFile.file_name || this.curFile.name;\n const url = `https://sj-m-ssl.xunlei.com/h5/report?file_id=${id}&gcid=${gcid}&file_name=${encodeURIComponent(name)}`;\n console.log(this.curFile);\n console.log(url);\n // this.cancelSel()\n if (isAndroid) {\n sendMessage({\n platform: 'android',\n name: 'xlOpenUrl',\n params: {\n url,\n title: '',\n openType: 1,\n from: 'remote_control_h5'\n }\n }, {\n noCallback: true\n });\n } else if (isIOS) {\n sendMessage({\n platform: 'ios',\n name: 'xunleiQuery',\n params: {\n target: 'hybrid',\n action: 'openHybridWeb',\n params: {\n url,\n title: '',\n from: 'remote_control_h5'\n }\n }\n }, {\n noCallback: true\n });\n } else {\n // window.open(url, '_blank')\n openInIframe({\n url,\n title: '举报',\n showClose: false\n });\n }\n }\n }\n});","/* unplugin-vue-components disabled */import { render } from \"./Footer.vue?vue&type=template&id=46e7a50c&ts=true\"\nimport script from \"./Footer.vue?vue&type=script&lang=ts\"\nexport * from \"./Footer.vue?vue&type=script&lang=ts\"\n\nimport \"./Footer.vue?vue&type=style&index=0&id=46e7a50c&lang=scss\"\n\nimport exportComponent from \"/var/static/node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.3.4_vue@3.3.4_webpack@4.46.0/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { createElementVNode as _createElementVNode, toDisplayString as _toDisplayString, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\";\nconst _hoisted_1 = {\n class: \"empty\"\n};\nconst _hoisted_2 = /*#__PURE__*/_createElementVNode(\"div\", {\n class: \"empty__img\"\n}, null, -1);\nconst _hoisted_3 = /*#__PURE__*/_createElementVNode(\"p\", null, \"点击“+”或按钮添加链接,创建下载任务\", -1);\nexport function render(_ctx, _cache, $props, $setup, $data, $options) {\n return _openBlock(), _createElementBlock(\"div\", _hoisted_1, [_hoisted_2, _createElementVNode(\"h3\", null, \"暂无\" + _toDisplayString(_ctx.taskType === 'ing' ? '下载中' : '已完成') + \"任务\", 1), _hoisted_3, _createElementVNode(\"span\", {\n class: \"button-create\",\n onClick: _cache[0] || (_cache[0] =\n //@ts-ignore\n (...args) => _ctx.handleAdd && _ctx.handleAdd(...args))\n }, \"创建任务\")]);\n}","import \"core-js/modules/es.array.push.js\";\nimport { defineComponent } from 'vue';\nimport { mapState, useStore } from 'vuex';\nimport '../assets/css/empty.scss';\nexport default defineComponent({\n name: 'Empty',\n setup() {\n return {\n store: useStore()\n };\n },\n computed: {\n ...mapState(['taskType'])\n },\n methods: {\n handleAdd() {\n this.store.commit('update', {\n createFrom: 'create'\n });\n this.$stat({\n action: 'create_task_btn_click',\n data: {\n position: 'create'\n }\n });\n this.$router.push({\n path: '/upload/',\n query: this.$route.query\n });\n }\n }\n});","/* unplugin-vue-components disabled */import { render } from \"./Empty.vue?vue&type=template&id=4bf39734&ts=true\"\nimport script from \"./Empty.vue?vue&type=script&lang=ts\"\nexport * from \"./Empty.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"/var/static/node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.3.4_vue@3.3.4_webpack@4.46.0/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { normalizeStyle as _normalizeStyle, createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\";\nconst _withScopeId = n => (_pushScopeId(\"data-v-b8811530\"), n = n(), _popScopeId(), n);\nconst _hoisted_1 = {\n key: 0,\n class: \"td-progress-circle\"\n};\nconst _hoisted_2 = [\"viewBox\"];\nconst _hoisted_3 = [\"cx\", \"cy\", \"r\", \"stroke-width\"];\nconst _hoisted_4 = [\"cx\", \"cy\", \"r\", \"stroke-width\", \"stroke-linecap\"];\nexport function render(_ctx, _cache, $props, $setup, $data, $options) {\n return _openBlock(), _createElementBlock(\"div\", {\n class: \"td-progress\",\n style: _normalizeStyle($options.circleSize)\n }, [$props.type === 'circle' ? (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [(_openBlock(), _createElementBlock(\"svg\", {\n viewBox: $options.view,\n class: \"td-progress-circle__track\"\n }, [_createElementVNode(\"circle\", {\n class: \"td-progress-circle__track\",\n cx: $options.circleDistance,\n cy: $options.circleDistance,\n r: $options.radius,\n \"stroke-width\": $props.strokeWidth,\n style: _normalizeStyle({\n stroke: $props.outerColor\n }),\n fill: \"none\"\n }, null, 12, _hoisted_3), _createElementVNode(\"circle\", {\n class: \"td-progress-circle__path\",\n cx: $options.circleDistance,\n cy: $options.circleDistance,\n r: $options.radius,\n \"stroke-width\": $props.strokeWidth,\n \"stroke-linecap\": $props.linecap,\n style: _normalizeStyle($options.circlePathStyle),\n fill: \"none\"\n }, null, 12, _hoisted_4)], 8, _hoisted_2))])) : _createCommentVNode(\"\", true)], 4);\n}","export default {\n name: 'TdProgress',\n props: {\n type: {\n type: String,\n default: 'line',\n validator: val => ['line', 'circle'].includes(val)\n },\n color: String,\n height: Number,\n outerColor: String,\n textVisible: {\n type: Boolean,\n default: false\n },\n value: {\n type: [Number, String],\n default: 0\n },\n width: {\n type: Number,\n default: 120\n },\n strokeWidth: {\n type: Number,\n default: 6\n },\n linecap: {\n type: String,\n default: 'round'\n }\n },\n computed: {\n circleSize() {\n // 圆环大小\n return this.type === 'circle' ? {\n width: `${this.width}px`,\n height: `${this.height}px`\n } : {};\n },\n radius() {\n // 半径\n if (this.type === 'circle') {\n return this.width / 2 - this.strokeWidth;\n }\n return 0;\n },\n circleDistance() {\n // 圆环的位置\n const distance = this.radius + this.strokeWidth;\n return distance;\n },\n perimeter() {\n // 圆环周长\n return 2 * Math.PI * this.radius;\n },\n view() {\n // 视图大小\n const view = `0 0 ${this.width} ${this.width}`;\n return view;\n },\n circlePathStyle() {\n // 绘制圆环\n let color = this.color;\n if (this.value === 0) {\n color = 'transparent';\n }\n return {\n strokeDasharray: `${this.perimeter * (this.value / 100)}px, ${this.perimeter}px`,\n transform: 'rotate(-90deg)',\n stroke: color,\n transformOrigin: `${this.circleDistance}px ${this.circleDistance}px`,\n transition: 'stroke-dasharray 0.6s ease 0s, stroke 0.6s ease'\n };\n }\n }\n};","/* unplugin-vue-components disabled */import { render } from \"./TdProgress.vue?vue&type=template&id=b8811530&scoped=true\"\nimport script from \"./TdProgress.vue?vue&type=script&lang=js\"\nexport * from \"./TdProgress.vue?vue&type=script&lang=js\"\n\nimport \"./TdProgress.vue?vue&type=style&index=0&id=b8811530&scoped=true&lang=css\"\n\nimport exportComponent from \"/var/static/node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.3.4_vue@3.3.4_webpack@4.46.0/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-b8811530\"]])\n\nexport default __exports__","import { openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, resolveComponent as _resolveComponent, createVNode as _createVNode, createElementVNode as _createElementVNode, Fragment as _Fragment, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, withCtx as _withCtx, createBlock as _createBlock, normalizeStyle as _normalizeStyle, vShow as _vShow, withDirectives as _withDirectives } from \"vue\";\nconst _hoisted_1 = {\n class: \"try-wrapper\"\n};\nconst _hoisted_2 = {\n class: \"try-svip\"\n};\nconst _hoisted_3 = {\n class: \"try-svip__left\"\n};\nconst _hoisted_4 = {\n class: \"try-svip__progress\"\n};\nconst _hoisted_5 = [\"src\"];\nconst _hoisted_6 = [\"src\"];\nconst _hoisted_7 = {\n class: \"try-svip__center\"\n};\nconst _hoisted_8 = {\n class: \"try-svip__primary\"\n};\nconst _hoisted_9 = {\n key: 0,\n class: \"try-svip__secondary\"\n};\nconst _hoisted_10 = {\n key: 1,\n class: \"try-svip__secondary\"\n};\nconst _hoisted_11 = [\"src\"];\nconst _hoisted_12 = [\"src\"];\nconst _hoisted_13 = {\n class: \"try-svip__right\"\n};\nconst _hoisted_14 = /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"qh-icon-close\"\n}, null, -1);\nconst _hoisted_15 = [_hoisted_14];\nexport function render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_TdProgress = _resolveComponent(\"TdProgress\");\n const _component_swiper_slide = _resolveComponent(\"swiper-slide\");\n const _component_swiper = _resolveComponent(\"swiper\");\n return _withDirectives((_openBlock(), _createElementBlock(\"div\", _hoisted_1, [_createElementVNode(\"div\", _hoisted_2, [_createElementVNode(\"div\", _hoisted_3, [_createElementVNode(\"div\", _hoisted_4, [_ctx.statusRef === 'BEFORE_TRY' ? (_openBlock(), _createElementBlock(\"img\", {\n key: 0,\n class: \"try-svip__speed--before\",\n src: _ctx.speedIcon,\n draggable: \"false\"\n }, null, 8, _hoisted_5)) : (_openBlock(), _createElementBlock(_Fragment, {\n key: 1\n }, [_createVNode(_component_TdProgress, {\n type: \"circle\",\n color: \"#F1C37B\",\n \"outer-color\": \"#D5D9DE\",\n linecap: \"square\",\n value: _ctx.statusRef === 'TRYING' ? _ctx.tryTimeUsagePercentage : 100,\n width: 32,\n \"text-visible\": false,\n \"stroke-width\": 2\n }, null, 8, [\"value\"]), _createElementVNode(\"img\", {\n class: \"try-svip__speed\",\n src: _ctx.speedIcon,\n draggable: \"false\"\n }, null, 8, _hoisted_6)], 64))])]), _createElementVNode(\"div\", _hoisted_7, [_createElementVNode(\"span\", _hoisted_8, _toDisplayString(_ctx.primaryTitleRef), 1), _ctx.statusRef !== 'TRYING' ? (_openBlock(), _createElementBlock(\"span\", _hoisted_9, _toDisplayString(_ctx.secondaryTitleRef), 1)) : _createCommentVNode(\"\", true), _ctx.statusRef === 'TRYING' && (_ctx.teamTaskIDListRef.length > 0 || _ctx.superSpeedTaskIDListRef.length > 0) ? (_openBlock(), _createElementBlock(\"span\", _hoisted_10, [_createVNode(_component_swiper, {\n class: \"swiper\",\n direction: \"vertical\",\n autoplay: {\n delay: 3000\n },\n loop: \"\",\n modules: _ctx.modules\n }, {\n default: _withCtx(() => [_ctx.teamTaskIDListRef.length > 0 ? (_openBlock(), _createBlock(_component_swiper_slide, {\n key: 0\n }, {\n default: _withCtx(() => [_createElementVNode(\"img\", {\n src: _ctx.isNewVipPrivilege ? _ctx.teamIcon : _ctx.oldTeamIcon,\n draggable: \"false\"\n }, null, 8, _hoisted_11), _createTextVNode(\" \" + _toDisplayString(_ctx.isNewVipPrivilege ? '超级通道' : '组队加速') + \"任务: \" + _toDisplayString(_ctx.teamTaskIDListRef.length), 1)]),\n _: 1\n })) : _createCommentVNode(\"\", true), _ctx.superSpeedTaskIDListRef.length > 0 ? (_openBlock(), _createBlock(_component_swiper_slide, {\n key: 1\n }, {\n default: _withCtx(() => [_createElementVNode(\"img\", {\n src: _ctx.isNewVipPrivilege ? _ctx.tryingIcon : _ctx.oldTryingIcon,\n draggable: \"false\"\n }, null, 8, _hoisted_12), _createTextVNode(\" \" + _toDisplayString(_ctx.isNewVipPrivilege ? '会员加速' : '超级加速') + \" 任务: \" + _toDisplayString(_ctx.superSpeedTaskIDListRef.length), 1)]),\n _: 1\n })) : _createCommentVNode(\"\", true)]),\n _: 1\n }, 8, [\"modules\"])])) : _createCommentVNode(\"\", true)]), _createElementVNode(\"div\", _hoisted_13, [!(_ctx.statusRef !== 'BEFORE_TRY' && _ctx.platformPath === 'hik') ? (_openBlock(), _createElementBlock(\"div\", {\n key: 0,\n class: \"try-svip__open\",\n onClick: _cache[0] || (_cache[0] =\n //@ts-ignore\n (...args) => _ctx.onClick && _ctx.onClick(...args))\n }, _toDisplayString(_ctx.buttonTextRef), 1)) : _createCommentVNode(\"\", true), _createElementVNode(\"a\", {\n class: \"try-svip__close\",\n href: \"javascript:;\",\n onClick: _cache[1] || (_cache[1] =\n //@ts-ignore\n (...args) => _ctx.closeBanner && _ctx.closeBanner(...args)),\n style: _normalizeStyle({\n display: _ctx.statusRef === 'TRYING' ? 'none' : 'block'\n })\n }, _hoisted_15, 4)])])], 512)), [[_vShow, _ctx.isBannerVisibleRef]]);\n}","import \"core-js/modules/es.error.cause.js\";\nimport { TdProgress } from '@xunlei/thunder-ui-vue3/dist/Progress';\nimport { Navigation, Pagination, Scrollbar, A11y, Autoplay } from 'swiper';\nimport { Swiper, SwiperSlide } from 'swiper/vue/swiper-vue.js';\nimport '@xunlei/thunder-ui-vue3/dist/Progress/styles/Progress.css';\nimport '@xunlei/thunder-ui-vue3/dist/__base/styles/__base.css';\nimport 'swiper/swiper.min.css';\nimport 'swiper/modules/navigation/navigation.min.css';\nimport 'swiper/modules/pagination/pagination.min.css';\nimport 'swiper/modules/scrollbar/scrollbar.min.css';\nimport speedIcon from '@shared/assets/img/speed.png';\nimport teamIcon from '@shared/assets/img/speedup/super-started.png';\nimport tryingIcon from '@shared/assets/img/speedup/vip-started.png';\n// 老版本图标\nimport oldTeamIcon from '@shared/assets/img/team.png';\nimport oldTryingIcon from '@shared/assets/img/trying.png';\nimport { inject, defineComponent, computed } from 'vue';\nimport { useStore } from 'vuex';\nimport { TRY_SVIP_INJECTION_KEY } from '@remote/components/TrySVIPProvider.vue';\nimport { parseVersionToNumber } from '@shared/utils/index';\nimport { platformPath } from '@remote/platform';\nexport default defineComponent({\n components: {\n TdProgress,\n Swiper,\n SwiperSlide\n },\n setup() {\n const store = useStore();\n function injectStrict(key, fallback) {\n const resolved = inject(key, fallback);\n if (!resolved) {\n throw new Error(`Could not resolve ${key.description}`);\n }\n return resolved;\n }\n const injectedProps = injectStrict(TRY_SVIP_INJECTION_KEY);\n // 后续改成switch\n const onClick = () => {\n if (injectedProps.statusRef.value === 'BEFORE_TRY') {\n injectedProps.commitApplyTry();\n } else {\n store.dispatch('goVip', {\n type: 5,\n position: 'spack'\n });\n }\n };\n const isNewVipPrivilege = computed(() => {\n var _store$state$deviceIn, _store$state;\n const currentNumericVersion = parseVersionToNumber((_store$state$deviceIn = (_store$state = store.state) === null || _store$state === void 0 || (_store$state = _store$state.deviceInfoWatchData) === null || _store$state === void 0 ? void 0 : _store$state.client_version) !== null && _store$state$deviceIn !== void 0 ? _store$state$deviceIn : '0.0.0');\n const targetNumericVersion = parseVersionToNumber('3.4.0');\n return currentNumericVersion >= targetNumericVersion;\n });\n return {\n modules: [Navigation, Pagination, Scrollbar, A11y, Autoplay],\n speedIcon,\n teamIcon,\n tryingIcon,\n oldTeamIcon,\n oldTryingIcon,\n onClick,\n platformPath,\n isNewVipPrivilege,\n ...injectedProps\n };\n }\n});","/* unplugin-vue-components disabled */import { render } from \"./VipTryOut.vue?vue&type=template&id=4ab9f391&ts=true\"\nimport script from \"./VipTryOut.vue?vue&type=script&lang=ts\"\nexport * from \"./VipTryOut.vue?vue&type=script&lang=ts\"\n\nimport \"./VipTryOut.vue?vue&type=style&index=0&id=4ab9f391&lang=scss\"\n\nimport exportComponent from \"/var/static/node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.3.4_vue@3.3.4_webpack@4.46.0/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue';\nimport { createElementVNode as _createElementVNode, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, normalizeClass as _normalizeClass, openBlock as _openBlock, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\";\nconst _withScopeId = n => (_pushScopeId(\"data-v-453625d7\"), n = n(), _popScopeId(), n);\nconst _hoisted_1 = {\n class: \"download-disabled is-light\"\n};\nconst _hoisted_2 = {\n class: \"wrapper\"\n};\nconst _hoisted_3 = [\"src\"];\nconst _hoisted_4 = /*#__PURE__*/_withScopeId(() => /*#__PURE__*/_createElementVNode(\"p\", {\n class: \"title\"\n}, \" 远程遥控电脑下载、取回云盘文件 \", -1));\nconst _hoisted_5 = {\n class: \"desc\"\n};\nconst _hoisted_6 = /*#__PURE__*/_withScopeId(() => /*#__PURE__*/_createElementVNode(\"br\", null, null, -1));\nconst _hoisted_7 = [\"disabled\"];\nimport { store } from '@remote/store';\nimport { onMounted, computed, ref } from 'vue';\nimport StaticRemote from '@shared/assets/img/static-remote.png';\n// 这张动图比较大,有735KB,所以需要一张静态图先占位,保证展示效果\nimport DynamicRemote from '@shared/assets/img/remote.png';\nimport { updateAccessTaskType } from '@remote/api/base';\nimport { useDeviceStore } from '@remote/store/device';\nexport default /*#__PURE__*/_defineComponent({\n __name: 'DownloadUnavailable',\n setup(__props) {\n const imgSrc = ref(StaticRemote);\n const isOpening = ref(false);\n onMounted(() => {\n const img = new Image();\n img.src = DynamicRemote;\n img.onload = () => {\n imgSrc.value = DynamicRemote;\n };\n });\n const deviceName = computed(() => {\n const name = store.state.curDeviceRunner.file_name;\n if (name) {\n return `(${name})`;\n }\n return '';\n });\n const deviceStore = useDeviceStore();\n const open = async () => {\n if (!isOpening.value) {\n isOpening.value = true;\n await updateAccessTaskType(['user#download', 'user#download-url']);\n deviceStore.pollRunnerList(6);\n }\n };\n return (_ctx, _cache) => {\n return _openBlock(), _createElementBlock(\"div\", _hoisted_1, [_createElementVNode(\"div\", _hoisted_2, [_createElementVNode(\"img\", {\n src: imgSrc.value,\n draggable: \"false\"\n }, null, 8, _hoisted_3), _hoisted_4, _createElementVNode(\"p\", _hoisted_5, [_createTextVNode(\" 当前设备\" + _toDisplayString(deviceName.value), 1), _hoisted_6, _createTextVNode(\"未开启远程下载功能 \")]), _createElementVNode(\"button\", {\n class: _normalizeClass({\n 'button-base': true,\n 'primary-button': true,\n 'is-disabled': isOpening.value\n }),\n disabled: isOpening.value,\n onClick: open\n }, _toDisplayString(isOpening.value ? '开启中' : '立即开启'), 11, _hoisted_7)])]);\n };\n }\n});","/* unplugin-vue-components disabled */import script from \"./DownloadUnavailable.vue?vue&type=script&lang=ts&setup=true\"\nexport * from \"./DownloadUnavailable.vue?vue&type=script&lang=ts&setup=true\"\n\nimport \"./DownloadUnavailable.vue?vue&type=style&index=0&id=453625d7&lang=scss&scoped=true\"\n\nimport exportComponent from \"/var/static/node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.3.4_vue@3.3.4_webpack@4.46.0/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-453625d7\"]])\n\nexport default __exports__","import \"core-js/modules/es.array.reduce.js\";\nimport { defineComponent as _defineComponent } from 'vue';\nimport { unref as _unref, createElementVNode as _createElementVNode, toDisplayString as _toDisplayString, normalizeClass as _normalizeClass, normalizeStyle as _normalizeStyle, openBlock as _openBlock, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\";\nconst _withScopeId = n => (_pushScopeId(\"data-v-3734dc0f\"), n = n(), _popScopeId(), n);\nconst _hoisted_1 = [\"src\"];\nconst _hoisted_2 = {\n class: \"primary\"\n};\nconst _hoisted_3 = /*#__PURE__*/_withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", {\n class: \"secondary\"\n}, \" 下载速度 \", -1));\nconst _hoisted_4 = {\n class: \"primary\"\n};\nconst _hoisted_5 = /*#__PURE__*/_withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", {\n class: \"secondary\"\n}, \" 剩余流量 \", -1));\nconst _hoisted_6 = {\n class: \"primary\"\n};\nconst _hoisted_7 = /*#__PURE__*/_withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", {\n class: \"secondary\"\n}, \" 金豆数量 \", -1));\nimport BirdAwake from '@shared/assets/img/bird-awake.png';\nimport BirdSleep from '@shared/assets/img/bird-sleep.png';\nimport BirdGrowing from '@shared/assets/img/bird-growing.png';\nimport { formatSize } from '@shared/utils/bytes';\nimport { computed, ref, watch } from 'vue';\nimport { openPopGoldBeanInfo, openPopHighSpeedFlowPurchase } from '@remote/utils/dialog';\nimport { useDeviceStore } from '@remote/store/device';\nimport { onMounted } from 'vue';\nimport { useFlowStat } from '@remote/composable/stat';\nimport { store } from '@remote/store';\nimport { useGoldBeanStatStatus } from '@remote/composable/floating-bird';\nimport { useGoldBeanStat } from '@shared/composable/gold-beans';\nimport { stat } from '@remote/utils/stat';\nimport { useUserStore } from '@remote/store/user';\nconst DRAG_MOVE_THRESHOLD = 3;\nconst MAX_DIFF_Y = 56;\nexport default /*#__PURE__*/_defineComponent({\n __name: 'FloatingBird',\n props: {\n runningTaskList: {\n type: Array,\n required: true\n },\n pausedTaskList: {\n type: Array,\n required: true\n }\n },\n setup(__props) {\n const props = __props;\n const deviceStore = useDeviceStore();\n const isManualClickBird = ref(false);\n const haveTaskRunning = computed(() => {\n return props.runningTaskList.length > 0;\n });\n const haveTaskPaused = computed(() => {\n return props.pausedTaskList.length > 0;\n });\n const isSpeedShow = computed(() => {\n return isManualClickBird.value || haveTaskRunning.value; // || haveTaskPaused.value\n });\n\n const totalSpeed = computed(() => {\n if (haveTaskRunning.value) {\n const totalSpeedInByte = props.runningTaskList.reduce((acc, cur) => {\n var _cur$params$speed, _cur$params;\n return acc + Number((_cur$params$speed = (_cur$params = cur.params) === null || _cur$params === void 0 ? void 0 : _cur$params.speed) !== null && _cur$params$speed !== void 0 ? _cur$params$speed : 0);\n }, 0);\n return formatSize(totalSpeedInByte, {\n keep3DigitsMax: true,\n alternativeDefaultSizeMap: 'speed'\n }) + '/s';\n } else if (haveTaskPaused.value) {\n return '暂停中';\n } else {\n return '无任务';\n }\n });\n const {\n statClickFlow,\n statShowFlow,\n statClickBird,\n statShowBird\n } = useFlowStat();\n // const totalSpeed = ref(1024*1024*1024*10)\n const isFlowHidden = computed(() => {\n const isVip = Boolean(store.getters.isVip);\n return !isVip || !isManualClickBird.value;\n });\n const isGoldBeanEnabled = computed(() => {\n var _deviceStore$currentD;\n return !((_deviceStore$currentD = deviceStore.currentDeviceRef) !== null && _deviceStore$currentD !== void 0 && _deviceStore$currentD.util.hasLabel('withGoldbean'));\n });\n const isGoldBeanHidden = computed(() => {\n return isGoldBeanEnabled.value || !isManualClickBird.value;\n });\n const whichBird = computed(() => {\n var _deviceStore$currentD2;\n if (!isGoldBeanEnabled.value && ((_deviceStore$currentD2 = deviceStore.currentDeviceRef) === null || _deviceStore$currentD2 === void 0 || (_deviceStore$currentD2 = _deviceStore$currentD2.goldBeanManager.config) === null || _deviceStore$currentD2 === void 0 ? void 0 : _deviceStore$currentD2.status) === 'running') {\n return BirdGrowing;\n } else if (isSpeedShow.value) {\n return BirdAwake;\n } else {\n return BirdSleep;\n }\n });\n /**\n * 整个小鸟的dom元素\n */\n const bird = ref(null);\n /**\n * 可点击的流量区域\n */\n const flowArea = ref(null);\n /**\n * 可点击的金豆区域\n */\n const beanArea = ref(null);\n /**\n * 前一次拖动结束后的X坐标\n */\n const lastX = ref(0);\n /**\n * 前一次拖动结束后的Y坐标\n */\n const lastY = ref(0);\n /**\n * 拖动开始时的X坐标\n */\n const startX = ref(0);\n /**\n * 拖动开始时的Y坐标\n */\n const startY = ref(0);\n /**\n * 当前拖动离起点的X偏移量\n */\n const diffX = ref(0);\n /**\n * 当前拖动离起点的Y偏移量\n */\n const diffY = ref(0);\n /**\n * 是否在拖动后,吸附到屏幕边缘的过程中\n */\n const isAttaching = ref(false);\n /**\n * 当前吸附到屏幕左侧还是右侧\n */\n const attachSide = ref('left');\n /**\n * 本次拖动后,吸附到屏幕左侧还是右侧\n */\n const nextAttachSide = ref('right');\n /**\n * 拖动开始的时间戳\n */\n let touchStartTimestamp = 0;\n /**\n * touchstart 到 touchend 中间是否有 touchmove事件触发\n */\n const isDragMoveCalled = ref(false);\n /**\n * 禁用transition\n */\n let noTransition = ref(false);\n let dragStartTarget = null;\n let autoCloseTimer = null;\n const userInfo = ref(null);\n /**\n * toggle展示剩余流量\n */\n const toggleFlow = async () => {\n const isVip = Boolean(store.getters.isVip);\n statClickBird(isVip);\n isManualClickBird.value = !isManualClickBird.value;\n if (isManualClickBird.value) {\n var _deviceStore$currentD3;\n statShowFlow((_deviceStore$currentD3 = deviceStore.currentDeviceRef) === null || _deviceStore$currentD3 === void 0 ? void 0 : _deviceStore$currentD3.goldBeanManager.beans);\n // 展开3秒后自动关闭\n autoCloseTimer = window.setTimeout(() => {\n isManualClickBird.value = false;\n }, 3000);\n } else {\n // 关闭时清除自动关闭定时器\n if (autoCloseTimer) {\n window.clearTimeout(autoCloseTimer);\n autoCloseTimer = null;\n }\n }\n };\n /**\n * 是否正在拖动中\n */\n const isDragging = ref(false);\n let dragMoveCallCount = 0;\n const unifyClientXY = e => {\n if (e.touches) {\n return {\n x: e.touches[0].clientX,\n y: e.touches[0].clientY\n };\n }\n return {\n x: e.clientX,\n y: e.clientY\n };\n };\n /**\n * 拖动回调\n */\n const onDragMove = e => {\n // 防止拖动穿透到页面上\n e.stopPropagation();\n if (isDragging.value) {\n if (dragMoveCallCount > DRAG_MOVE_THRESHOLD && !isDragMoveCalled.value) {\n isDragMoveCalled.value = true;\n } else if (!isDragMoveCalled.value) {\n dragMoveCallCount++;\n }\n const {\n x,\n y\n } = unifyClientXY(e);\n // 计算偏移量\n diffX.value = x - startX.value + lastX.value;\n diffY.value = y - startY.value + lastY.value;\n // 如果超过屏幕中线,则吸附到对侧\n if (x > window.innerWidth / 2) {\n nextAttachSide.value = 'right';\n } else {\n nextAttachSide.value = 'left';\n }\n // console.log('onDragMove', e.touches[0].clientX - startX.value!, e.touches[0].clientY - startY.value!, lastX.value, lastY.value)\n }\n };\n\n const MIN_DIFF_Y = -document.body.clientHeight + 300;\n /**\n * 拖拽结束事件\n */\n const onDragEnd = e => {\n const dragEndReset = () => {\n // 状态reset\n startX.value = 0;\n startY.value = 0;\n touchStartTimestamp = 0;\n document.removeEventListener('touchmove', onDragMove);\n document.removeEventListener('mousemove', onDragMove);\n document.removeEventListener('touchend', onDragEnd);\n document.removeEventListener('mouseup', onDragEnd);\n };\n e.preventDefault();\n e.stopPropagation();\n isDragging.value = false;\n // 因为对touchstart做了preventDefault,所以要自己处理点击事件。\n // 触发touchstart 300ms内触发touchend,且touchmove没有调用过,视为点击\n if (!isDragMoveCalled.value) {\n if (Date.now() - touchStartTimestamp < 300) {\n var _flowArea$value, _beanArea$value;\n if ((_flowArea$value = flowArea.value) !== null && _flowArea$value !== void 0 && _flowArea$value.contains(dragStartTarget)) {\n statClickFlow();\n openPopHighSpeedFlowPurchase({\n userProfile: userInfo.value\n });\n } else if ((_beanArea$value = beanArea.value) !== null && _beanArea$value !== void 0 && _beanArea$value.contains(dragStartTarget)) {\n var _deviceStore$currentD4;\n const {\n statusRef\n } = useGoldBeanStatStatus();\n const {\n statBeansClick\n } = useGoldBeanStat(stat, (_deviceStore$currentD4 = deviceStore.currentDeviceRef.goldBeanManager) !== null && _deviceStore$currentD4 !== void 0 ? _deviceStore$currentD4 : {}, statusRef);\n statBeansClick();\n openPopGoldBeanInfo({});\n } else {\n toggleFlow();\n }\n } else {\n return;\n }\n } else {\n var _diffX$value, _diffY$value;\n isDragMoveCalled.value = false;\n // 储存最后位置信息\n lastX.value = (_diffX$value = diffX.value) !== null && _diffX$value !== void 0 ? _diffX$value : 0;\n lastY.value = (_diffY$value = diffY.value) !== null && _diffY$value !== void 0 ? _diffY$value : 0;\n /**\n * 开始吸附\n */\n isAttaching.value = true;\n /**\n * X轴吸附\n */\n if (bird.value && attachSide.value !== nextAttachSide.value) {\n if (nextAttachSide.value === 'left') {\n diffX.value = -(window.innerWidth - bird.value.clientWidth);\n } else {\n diffX.value = window.innerWidth - bird.value.clientWidth;\n }\n /**\n * Y轴吸附\n */\n if (lastY.value > MAX_DIFF_Y) {\n lastY.value = MAX_DIFF_Y;\n diffY.value = MAX_DIFF_Y;\n } else if (lastY.value < MIN_DIFF_Y) {\n lastY.value = MIN_DIFF_Y;\n diffY.value = MIN_DIFF_Y;\n }\n window.setTimeout(() => {\n isAttaching.value = false;\n noTransition.value = true;\n requestAnimationFrame(() => {\n diffX.value = 0;\n lastX.value = 0;\n attachSide.value = nextAttachSide.value;\n requestAnimationFrame(() => {\n noTransition.value = false;\n });\n });\n }, 300);\n } else {\n diffX.value = 0;\n lastX.value = 0;\n /**\n * Y轴吸附\n */\n if (lastY.value > MAX_DIFF_Y) {\n lastY.value = MAX_DIFF_Y;\n diffY.value = MAX_DIFF_Y;\n } else if (lastY.value < MIN_DIFF_Y) {\n lastY.value = MIN_DIFF_Y;\n diffY.value = MIN_DIFF_Y;\n }\n window.setTimeout(() => {\n isAttaching.value = false;\n }, 300);\n }\n }\n dragEndReset();\n };\n let startPointToBirdBottom = 0;\n const onDragStart = e => {\n e.preventDefault();\n touchStartTimestamp = Date.now();\n e.stopPropagation();\n isDragging.value = true;\n const {\n x,\n y\n } = unifyClientXY(e);\n startX.value = x;\n startY.value = y;\n if (bird.value) {\n startPointToBirdBottom = startY.value - (bird.value.getClientRects()[0].y + bird.value.clientHeight);\n }\n dragStartTarget = e.target;\n isDragMoveCalled.value = false;\n dragMoveCallCount = 0;\n // console.log('onDragStart', startX.value, startY.value, lastX.value, lastY.value, diffX.value, diffY.value)\n document.addEventListener('touchmove', onDragMove);\n document.addEventListener('mousemove', onDragMove);\n document.addEventListener('touchend', onDragEnd);\n document.addEventListener('mouseup', onDragEnd);\n };\n const userStore = useUserStore();\n const initBirdData = async () => {\n var _deviceStore$currentD5, _deviceStore$currentD6;\n await deviceStore.untilDeviceReady();\n (_deviceStore$currentD5 = deviceStore.currentDeviceRef) === null || _deviceStore$currentD5 === void 0 ? void 0 : _deviceStore$currentD5.flow.startPolling();\n if (!userStore.hasInit) {\n await userStore.getUser();\n }\n if ((_deviceStore$currentD6 = deviceStore.currentDeviceRef) !== null && _deviceStore$currentD6 !== void 0 && _deviceStore$currentD6.util.hasLabel('withGoldbean')) {\n var _deviceStore$currentD7;\n (_deviceStore$currentD7 = deviceStore.currentDeviceRef) === null || _deviceStore$currentD7 === void 0 ? void 0 : _deviceStore$currentD7.goldBeanManager.init(userStore.userID);\n }\n userInfo.value = userStore.user;\n };\n watch(() => {\n var _deviceStore$currentD8;\n return (_deviceStore$currentD8 = deviceStore.currentDeviceRef) === null || _deviceStore$currentD8 === void 0 || (_deviceStore$currentD8 = _deviceStore$currentD8.runnerTaskRef.params) === null || _deviceStore$currentD8 === void 0 ? void 0 : _deviceStore$currentD8.target;\n }, async val => {\n if (val) {\n initBirdData();\n }\n });\n onMounted(async () => {\n try {\n statShowBird();\n initBirdData();\n } catch (error) {\n console.error(error);\n }\n });\n return (_ctx, _cache) => {\n var _unref$currentDeviceR, _unref$currentDeviceR2, _unref$currentDeviceR3;\n return _openBlock(), _createElementBlock(\"div\", {\n class: _normalizeClass({\n 'floating-bird': true,\n 'is-attaching': isAttaching.value,\n 'is-dragging': isDragMoveCalled.value,\n 'attach-to-left': attachSide.value === 'left',\n 'attach-to-right': attachSide.value === 'right',\n 'no-transition': _unref(noTransition)\n }),\n draggable: \"false\",\n ref_key: \"bird\",\n ref: bird,\n style: _normalizeStyle({\n 'transform': `translate(${diffX.value}px, ${diffY.value}px)`\n }),\n onTouchstart: onDragStart,\n onMousedown: onDragStart\n }, [_createElementVNode(\"img\", {\n class: \"bird-img\",\n src: whichBird.value,\n draggable: \"false\"\n }, null, 8, _hoisted_1), _createElementVNode(\"div\", {\n class: _normalizeClass({\n 'bird-box': true,\n 'is-transparent': !isSpeedShow.value && isFlowHidden.value\n })\n }, [_createElementVNode(\"div\", {\n class: _normalizeClass({\n 'column': true,\n 'is-hidden': !isSpeedShow.value && isFlowHidden.value,\n 'hide-padding-right': isFlowHidden.value && isGoldBeanHidden.value\n })\n }, [_createElementVNode(\"div\", _hoisted_2, _toDisplayString(totalSpeed.value), 1), _hoisted_3], 2), _createElementVNode(\"div\", {\n class: _normalizeClass({\n 'column': true,\n 'is-hidden': isFlowHidden.value,\n 'hide-padding-right': isGoldBeanHidden.value\n }),\n ref_key: \"flowArea\",\n ref: flowArea\n }, [_createElementVNode(\"div\", _hoisted_4, _toDisplayString((_unref$currentDeviceR = _unref(deviceStore).currentDeviceRef) === null || _unref$currentDeviceR === void 0 ? void 0 : _unref$currentDeviceR.flow.remainFlow), 1), _hoisted_5], 2), _createElementVNode(\"div\", {\n class: _normalizeClass({\n 'column': true,\n 'is-hidden': isGoldBeanHidden.value,\n 'hide-padding-right': true\n }),\n ref_key: \"beanArea\",\n ref: beanArea\n }, [_createElementVNode(\"div\", _hoisted_6, _toDisplayString((_unref$currentDeviceR2 = (_unref$currentDeviceR3 = _unref(deviceStore).currentDeviceRef) === null || _unref$currentDeviceR3 === void 0 ? void 0 : _unref$currentDeviceR3.goldBeanManager.beans) !== null && _unref$currentDeviceR2 !== void 0 ? _unref$currentDeviceR2 : 0), 1), _hoisted_7], 2)], 2)], 38);\n };\n }\n});","/* unplugin-vue-components disabled */import script from \"./FloatingBird.vue?vue&type=script&lang=ts&setup=true\"\nexport * from \"./FloatingBird.vue?vue&type=script&lang=ts&setup=true\"\n\nimport \"./FloatingBird.vue?vue&type=style&index=0&id=3734dc0f&lang=scss&scoped=true\"\n\nimport exportComponent from \"/var/static/node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.3.4_vue@3.3.4_webpack@4.46.0/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-3734dc0f\"]])\n\nexport default __exports__","import { request } from '@remote/api/request'\n\n/**\n * 流量查询\n */\nexport const getFlowInfo = async () => {\n return request('/flow/v1/about', {\n params: {\n scene: 'DownloadUrl',\n },\n method: 'GET',\n })\n}","import \"core-js/modules/es.array.push.js\";\nimport { defineComponent as _defineComponent } from 'vue';\nimport { openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, renderList as _renderList, Fragment as _Fragment, createElementBlock as _createElementBlock, createElementVNode as _createElementVNode, unref as _unref, vShow as _vShow, resolveDirective as _resolveDirective, withDirectives as _withDirectives, createVNode as _createVNode, withModifiers as _withModifiers } from \"vue\";\nconst _hoisted_1 = {\n key: 1,\n class: \"file-list is-light hide-scrollbar disable-overscroll-y\"\n};\nconst _hoisted_2 = {\n class: \"loading-more\"\n};\nconst _hoisted_3 = /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"qh-icon-loading-small\"\n}, null, -1);\nconst _hoisted_4 = [_hoisted_3];\nconst _hoisted_5 = {\n key: 2,\n class: \"loading\"\n};\nconst _hoisted_6 = /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"qh-icon-loading-small\"\n}, null, -1);\nconst _hoisted_7 = [_hoisted_6];\nimport { computed, onMounted, ref, watch } from 'vue';\nimport { useStore } from 'vuex';\nimport FileTab from '@remote/components/FileTabPlus.vue';\nimport FileItem from '@remote/components/FileItem.vue';\nimport Footer from '@remote/components/Footer.vue';\nimport Fail from '@remote/components/Fail.vue';\nimport Empty from '@remote/components/Empty.vue';\nimport VipTryOut from '@remote/components/VipTryOut.vue';\nimport DownloadUnavailable from '@remote/components/DownloadUnavailable.vue';\nimport { STAND_AUTH_PROCESS_PATH_ENV, Title } from '@remote/constant';\nimport { useAuth } from '@remote/composable/auth';\nimport { useEnvStore } from '@remote/store/env';\nimport FloatingBird from '@remote/components/FloatingBird.vue';\nimport { router } from '@remote/router';\nimport { useHighSpeedFlow } from '@shared/composable/flow';\nimport { getFlowInfo } from '@remote/api/flow';\nimport RemoteDownloadGuide from '@remote/components/RemoteDownloadGuide.vue';\nimport { SECOND } from '@shared/constants/time';\nimport { useDeviceStore } from '@remote/store/device';\nimport { stat } from '@remote/utils/stat';\nimport { platformPath } from '@remote/platform';\nexport default /*#__PURE__*/_defineComponent({\n __name: 'index',\n setup(__props) {\n const store = useStore();\n const deviceStore = useDeviceStore();\n const action = computed(() => {\n return store.state.action;\n });\n const status = computed(() => {\n var _deviceStore$currentD;\n return ((_deviceStore$currentD = deviceStore.currentDeviceRef) === null || _deviceStore$currentD === void 0 ? void 0 : _deviceStore$currentD.runnerTaskRef.phase) === 'PHASE_TYPE_RUNNING';\n });\n const curTaskList = computed(() => {\n return store.getters.curList;\n });\n const labels = computed(() => {\n var _deviceStore$currentD2, _deviceStore$currentD3;\n return (_deviceStore$currentD2 = (_deviceStore$currentD3 = deviceStore.currentDeviceRef) === null || _deviceStore$currentD3 === void 0 ? void 0 : _deviceStore$currentD3.deviceInfoRef.labels) !== null && _deviceStore$currentD2 !== void 0 ? _deviceStore$currentD2 : [];\n });\n const isDownloadAvailable = computed(() => {\n return store.getters.isDownloadAvailable;\n });\n const isRemoteDownloadGuideShow = ref(false);\n const envStore = useEnvStore();\n const shouldRemoteDownloadGuideShow = computed(() => {\n // 请求过runner且确实没有runner,且环境是 Mac迅雷 / Android迅雷 / iOS迅雷\n // 需求文档 http://wiki.xunlei.cn/pages/viewpage.action?pageId=105298964\n return store.state.haveRequestedRunner // 请求过runner\n && deviceStore.deviceMap.size === 0 // 确实没有runner\n && !envStore.isInPC // 不在PC中\n && platformPath === ''; // 非厂商环境\n });\n // 首页展示什么\n const currentShowContent = computed(() => {\n // 未请求runner时\n if (!store.state.haveRequestedRunner) {\n // 需要Fail组件来展示连接中,后续可能把fail里面的connecting状态拆出来比较好\n return 'fail';\n } else {\n // 请求完runner\n if (isRemoteDownloadGuideShow.value) {\n // 没有runner的时候展示,因为存在没有runner变成有runner,仍然要展示的逻辑\n // 所以它优先级最高\n return 'remote-download-guide';\n } else if (!isDownloadAvailable.value) {\n return 'download-unavailable';\n } else {\n var _deviceStore$currentD4;\n if (((_deviceStore$currentD4 = deviceStore.currentDeviceRef) === null || _deviceStore$currentD4 === void 0 ? void 0 : _deviceStore$currentD4.runnerTaskRef.phase) === 'PHASE_TYPE_RUNNING') {\n // 当前runner是否连接正常\n return 'task';\n } else {\n return 'fail';\n }\n }\n }\n });\n watch(shouldRemoteDownloadGuideShow, (newVal, oldVal) => {\n if (newVal) {\n isRemoteDownloadGuideShow.value = true;\n }\n }, {\n immediate: true\n });\n const finishStartXLLite = () => {\n setTimeout(() => {\n isRemoteDownloadGuideShow.value = false;\n }, 3 * SECOND);\n };\n const isFloatBirdShow = computed(() => {\n return store.state.taskType === 'ing' && currentShowContent.value === 'task' && labels.value.includes('withHighSpeedFlowCtrl');\n });\n const curRunningTaskList = computed(() => {\n return store.getters.curList.map(id => store.state.all[id]).filter(i => i.phase === 'PHASE_TYPE_RUNNING');\n });\n const curPausedTaskList = computed(() => {\n return store.getters.curList.map(id => store.state.all[id]).filter(i => i.phase === 'PHASE_TYPE_PAUSED');\n });\n const taskType = computed(() => {\n return store.state.taskType;\n });\n const firstLoad = computed(() => {\n return store.state.firstLoadTasks[store.state.taskType];\n });\n const {\n remainFlow\n } = useHighSpeedFlow({\n getFlowInfo\n });\n watch(action, async val => {\n if (val === 'close') {\n store.dispatch('close');\n } else if (val === 'tip-guide') {\n store.commit('dialog', {\n show: false\n });\n } else if (val === 'deviceControl') {\n store.commit('dialog', {\n show: false\n });\n console.log('deviceControl - ', store.state.platform);\n /**\n * 判断厂商是否支持从远程登出设备上的登录态;\n * 如果不支持,只能让用户登出Remote端的登录态,client端登录态要从套件退出或者由厂商侧退出。\n */\n const {\n pathEnv\n } = useEnvStore();\n if (STAND_AUTH_PROCESS_PATH_ENV.includes(pathEnv)) {\n const {\n signOut\n } = useAuth();\n signOut();\n await store.dispatch('logout', true);\n } else {\n await store.dispatch('getRunner');\n router.push({\n path: '/me/',\n query: router.currentRoute.value.query\n });\n }\n }\n });\n watch(status, val => {\n if (val) {\n // 如果有下载链接就跳转到upload\n const query = router.currentRoute.value.query;\n if (query.taskLink) {\n const taskLink = query.taskLink;\n delete query.taskLink;\n router.push({\n path: '/upload/',\n query: {\n taskLink,\n ...query\n }\n });\n setTimeout(() => {\n router.push({\n path: router.currentRoute.value.path,\n query\n });\n }, 1000);\n }\n }\n });\n onMounted(async () => {\n document.title = Title;\n // openPopHighSpeedFlowPurchase({})\n let huddleTime = localStorage.getItem('huddleTime') || '';\n let huddleNum = Number(localStorage.getItem('huddleNum') || '3');\n if (huddleTime !== store.state.today) {\n huddleTime = store.state.today;\n localStorage.setItem('huddleTime', huddleTime);\n huddleNum = 3;\n localStorage.setItem('huddleNum', String(huddleNum));\n }\n store.commit('update', {\n huddleTime\n });\n });\n const loadMore = () => {\n if (store.state.loading) return;\n store.dispatch('getTasks', {\n page_token: store.state.nextPageToken,\n type: store.state.taskType\n });\n };\n return (_ctx, _cache) => {\n const _directive_observer = _resolveDirective(\"observer\");\n const _directive_see = _resolveDirective(\"see\");\n return _openBlock(), _createElementBlock(\"div\", {\n class: \"home\",\n onTouchmove: _cache[0] || (_cache[0] = _withModifiers(() => {}, [\"stop\"]))\n }, [['fail', 'task'].includes(currentShowContent.value) ? (_openBlock(), _createBlock(FileTab, {\n key: 0\n })) : _createCommentVNode(\"\", true), ['fail', 'task'].includes(currentShowContent.value) ? _withDirectives((_openBlock(), _createElementBlock(\"div\", _hoisted_1, [_createElementVNode(\"div\", null, [(_openBlock(true), _createElementBlock(_Fragment, null, _renderList(curTaskList.value, id => {\n return _openBlock(), _createBlock(FileItem, {\n id: id,\n key: id\n }, null, 8, [\"id\"]);\n }), 128))]), _withDirectives((_openBlock(), _createElementBlock(\"p\", _hoisted_2, _hoisted_4)), [[_vShow, _unref(store).state.nextPageToken], [_directive_observer, {\n show: loadMore\n }]])], 512)), [[_vShow, curTaskList.value.length > 0 && status.value]]) : _createCommentVNode(\"\", true), ['fail', 'task'].includes(currentShowContent.value) ? _withDirectives((_openBlock(), _createElementBlock(\"p\", _hoisted_5, _hoisted_7, 512)), [[_vShow, curTaskList.value.length === 0 && firstLoad.value && status.value]]) : _createCommentVNode(\"\", true), ['fail'].includes(currentShowContent.value) ? (_openBlock(), _createBlock(Fail, {\n key: 3\n })) : _createCommentVNode(\"\", true), ['task'].includes(currentShowContent.value) && curTaskList.value.length === 0 && !firstLoad.value && taskType.value !== 'file' ? (_openBlock(), _createBlock(Empty, {\n key: 4\n })) : _createCommentVNode(\"\", true), currentShowContent.value === 'download-unavailable' ? (_openBlock(), _createBlock(DownloadUnavailable, {\n key: 5\n })) : _createCommentVNode(\"\", true), currentShowContent.value === 'remote-download-guide' ? _withDirectives((_openBlock(), _createBlock(RemoteDownloadGuide, {\n key: 6,\n onDone: finishStartXLLite,\n from: \"download_no_device\"\n }, null, 512)), [[_directive_see, () => _unref(stat)({\n action: 'download_remote_avalible_page_show'\n })]]) : _createCommentVNode(\"\", true), status.value && taskType.value === 'ing' && curTaskList.value.length && _unref(store).getters.runnerConfig ? (_openBlock(), _createBlock(VipTryOut, {\n key: 7\n })) : _createCommentVNode(\"\", true), _unref(store).state.isSelect ? (_openBlock(), _createBlock(Footer, {\n key: 8\n })) : _createCommentVNode(\"\", true), _withDirectives(_createVNode(FloatingBird, {\n \"running-task-list\": curRunningTaskList.value,\n \"paused-task-list\": curPausedTaskList.value\n }, null, 8, [\"running-task-list\", \"paused-task-list\"]), [[_vShow, isFloatBirdShow.value]])], 32);\n };\n }\n});","/* unplugin-vue-components disabled */import script from \"./index.vue?vue&type=script&lang=ts&setup=true\"\nexport * from \"./index.vue?vue&type=script&lang=ts&setup=true\"\n\nimport \"./index.vue?vue&type=style&index=0&id=12748563&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","/* unplugin-vue-components disabled */export * from \"-!../../../../node_modules/.pnpm/unplugin@1.4.0/node_modules/unplugin/dist/webpack/loaders/transform.js?unpluginName=unplugin-vue-components!../../../../node_modules/.pnpm/mini-css-extract-plugin@0.9.0_webpack@4.46.0/node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/.pnpm/css-loader@3.6.0_webpack@4.46.0/node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.3.4_vue@3.3.4_webpack@4.46.0/node_modules/vue-loader/dist/stylePostLoader.js!../../../../node_modules/.pnpm/postcss-loader@3.0.0/node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/.pnpm/sass-loader@8.0.2_sass@1.65.1/node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/.pnpm/cache-loader@4.1.0_webpack@4.46.0/node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.3.4_vue@3.3.4_webpack@4.46.0/node_modules/vue-loader/dist/index.js??ref--1-1!./FileTabPlus.vue?vue&type=style&index=0&id=37605826&lang=scss&scoped=true\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABwAAAAcCAYAAAByDd+UAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAM1SURBVHgBvVbPTxNBFP5mdlsoSQvEXxdB41GPJho4cZCEO0HPHrwb/wCtfwBGz5p4VuKdxAsniHeXCycBPWmgJaHQ7u74ve3uup3u0koJX7Lp7kznffPefO/NUxgCd+umXDUYr1RRbp3CKQNaxttAaBR8dYrOkcLJdl21B9lSZ03OvTEV1UTVKcHBEAg6CEwNR1svVOv/CD8bZ2EX08EpSjgHhHjTwx+sqWAg4f26mXBLqCZhOy+4PiRxY6OuTgoJF+pmPChhGhcIv4LDbIjddIZhbO1gsiyDIWq+wiRGgGvQ8DWaEy3UsGLaSXhTwvltXKE4ojAaYEYrfMUICDSWaWiLstULDzG9sYbfMh4RiBqzSmSc9zAinABeSk7xCYe8Rx6K9LN6lFCQdJ/PTduQUvgU8gCSb21QCw3ecbyW/snAExs964QDaLmS1AV5tsnnsT3IRF81IfaTb5K/7SHroi9CwiFcrlQQ5MBwl0r1exdkyFR3Q/M88/3Ys5qQc1Nenk3h0mYsP7kdhV3keNfzLdoGHsgThniajPM9l9BnadTKZFIjg8Bg2zK+FWa8690JZhyNj0lo3QLRTbEOu4UVRWGPYW0mRvjb4Nk9kXcKpRFqrCdkTKEviAXGjTU5l+uhpEiudymnwnf+zMeGl2h4KZ5ajx6LLIZ3lk3djoRmDRq8ptu/UjILPMt1qUY5ZCKkOVkrNux1Ul+1z8puT4QKrxiaVRTtkqIwTj9ZuiGuFRv2+HEHHc2a1y5axNN9mTPhGY1nPN97fVM8c657XrRZFghfy02NAlCVH5h3i8A/dUqdRV5BIBkNLptMFbIhXFragiAnrAkUFSeGEtKcqiLYUw4eKV0sGOEQru7twLYAZ4EpEpGafoPcgMczXSzM0RgJR0QoF+TxGDoYRKoYXoP3qRGGj7fcsl2obYh3ySWc5uGdWRzs7uDqoNZC1EfpN2PCVX9AIyJpNyv9TbrvDOTOcluYwgXC6eAg29f0NVG32dfcKEWtxkhNlHimK2jaLWNum7jC/uZnt+UYqh+14VAP177hYG2YNjGLy2uELchNfYuX56FiQ1dCKdvqS2m8zmr1Y8hW/y8HRV3v0OhTzwAAAABJRU5ErkJggg==\"","/* unplugin-vue-components disabled */export * from \"-!../../../../node_modules/.pnpm/unplugin@1.4.0/node_modules/unplugin/dist/webpack/loaders/transform.js?unpluginName=unplugin-vue-components!../../../../node_modules/.pnpm/mini-css-extract-plugin@0.9.0_webpack@4.46.0/node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/.pnpm/css-loader@3.6.0_webpack@4.46.0/node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.3.4_vue@3.3.4_webpack@4.46.0/node_modules/vue-loader/dist/stylePostLoader.js!../../../../node_modules/.pnpm/postcss-loader@3.0.0/node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/.pnpm/sass-loader@8.0.2_sass@1.65.1/node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/.pnpm/cache-loader@4.1.0_webpack@4.46.0/node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.3.4_vue@3.3.4_webpack@4.46.0/node_modules/vue-loader/dist/index.js??ref--1-1!./FloatingBird.vue?vue&type=style&index=0&id=3734dc0f&lang=scss&scoped=true\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABwAAAAcCAYAAAByDd+UAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAOrSURBVHgBpVbNb9RGFH8z44/1st51ICu6qSpVKkoLyqXttVL5A8i1EtwbDq1UVa3ElR6R+iGk5tDeS6QeG/4ADj2Wcon4iIgEQrAiJLAbZ+312ONhnrNrzK5n18DvYFue5/fz+72PGQIVILfWG6EcLjCbNgiADYKybIGlIhVmkCZR6JDaC7LyzeE8X2Qm0Z3fT3DgSwSYBVV+DAS3wHpCTn+7/0aEcuuyxaFxijDTgbdARiwO7pGVy3wuIUYVs/iDXLYSJGGwLBPhmq57U2cDSuxBDA8WPv2+pyWUt37z4hr9SOsj4S4/8NcgFeezF5RsOMfbv8AMDIE9aBYkzglRxthqndFFFgfhUhL6Pyu9lieWurbbWqO23S1lxLKC/u2xvHT8nrPmxzqyYe/5+STw/yohQ3Qiv38NbUoJGWXcauWqZYSYN10lDl88X5NJ8oN6dEEPF210pETQOnLgs4GXUemXepJpcvbVl3RbXf0SoyV17YDIcrtR5gc51G3fkLvrjXg/0feZzCPrOicWL5SZYGQjFbRABZ/9e8Wl0BceVABh7D/dGmNsGypg8aTTMqIkrtMjZWdCCrEa7u2uKupRNcoGNcxfbW9hU6TShQrgUriUqoTqDLBgAHNTgO0215zF9iplxobp1I+iTpMvs1+Qcmn0TSkIB5vwO1c/n1zQ9hyhN1UeL07ZBv4/Ey66luddYIY1VWAUSqCm/2dlPUcZu15qO40OPxycLXmvkqcmATYnzIeP+cKHcH/32uiHMJ8NqArFRU0Loiq2qkpv4B0lLESP+a1UMIiUmYGhPCmdZX2e8asqfXvYRhoYeyLst6B2cqalbsK8htTVzNoce0/DvtH+5JIf3b8akVgdHabhM8P40/KOZ+MK5RRReK5oYNWPbY53ivigdy7hHKu4M+lImhC1v7jkZx0fxaxbA/Fh0YAQesNsNX8qlrZZd56IaNCRIs2kVRNms7gtmU3vOgTh/yIKvpYThMiR+c1fbK+fJiLJcokbbVkPZWtDtQkPen9k0bW8i1q7gg+Mzj713RY+5zPN4u2dGB6fwRbROcmiqlm+kbo/MkYlnWU3XrNJYgXv5bM2b3yy8hUfMvMRVABKq93hJzDoi4foe4oQgWePQS3dyYbBu0JFNhzED2ceosaQW39bvNZd1lTuXEiWBhZ/f6cY2UzCMQ7UscA2RacqMRYHVmPzTQ/Ck3h294p7LDY8aoBDbXU4juRRsSnZ1PmUiyg9HJhJD3t6nq+XwFy2gaYTmeEAAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,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\"","/* unplugin-vue-components disabled */export * from \"-!../../../../node_modules/.pnpm/unplugin@1.4.0/node_modules/unplugin/dist/webpack/loaders/transform.js?unpluginName=unplugin-vue-components!../../../../node_modules/.pnpm/mini-css-extract-plugin@0.9.0_webpack@4.46.0/node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/.pnpm/css-loader@3.6.0_webpack@4.46.0/node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.3.4_vue@3.3.4_webpack@4.46.0/node_modules/vue-loader/dist/stylePostLoader.js!../../../../node_modules/.pnpm/postcss-loader@3.0.0/node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/.pnpm/sass-loader@8.0.2_sass@1.65.1/node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/.pnpm/cache-loader@4.1.0_webpack@4.46.0/node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.3.4_vue@3.3.4_webpack@4.46.0/node_modules/vue-loader/dist/index.js??ref--1-1!./Footer.vue?vue&type=style&index=0&id=46e7a50c&lang=scss\"","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAMAAABg3Am1AAAA81BMVEUAAADlsm7ms2/ks2/frXDlsW/do2Tkr23gp2bntnHot3Trv3rnvXfgp2TirGnfpGPtw33puXTmtnLlsG3qvXniq2vouHPkr2vksG3gpmPmtG/uxYDqvXjltHDswHvkr2vkr2zepmTrvnndpGHksm/hqWjtxX/rw4Dfn2Dtw37qvXfpunXtwn7qwHvqvnrmtnXgqGbjr2zdoGDvx4HtvHffv4Dfv3DmtXLksW7ksG3pu3fntnLnt3PmtHHouXXirGrhqWfrwHvrvnnouHTkr2zjrmvfpmTqvXjmtHDeo2HswnzgqGXtxH7ms2/iq2juxoDepGICoxS1AAAAN3RSTlMA/v4gEE8g318v318f/t/fn5+PcEBA/v7v7+7f38+/v5+fkJCAgG8gEO/v79/fz8/Pr69/bxAQweocGAAAAa5JREFUSMfVktd2glAQRYcqatTY0nvvPdFLjYoREYP//zWZEXnlTh7dvJ69zhwA1pDPzv/yV2n6Dnyuj5I03efnq7dJkqSb3PjXZhzHSbJ/zcx3HgfxAJUrZv5sOCDiB15842k4zIwqK/9xZ0+GS4W1WDuybXuCoLIBcox73yYofyaP662R76+MyYG8oFNxR2T4JNjyxS3HcdwtHxUblQPp2sNeDwXHzVrssiTf3vO8HpILTcnaY2WuelHUc/BxR0hxgVZS+oqiRh62kOG6EsEQfURR5/NoddfWs1Z4USkkhVpU1cPtNKWpFRkXQggUyIjUVUulWjjjBEtyJZ9SMQqH4F1CIVSa4qHhuM3C/8MqCVSoY04t2V0guYsUPAwVKsH9OhTSRaMvyECo5AIk7KBB67P3tWfI8uXxdhjmH0U51EBGPRiP0clKWro0bwUBGeNQhGKnDVLM+m+QK6UyyLn8/iWDnFcd5JjfSOa0gcPpLDOCepeVN2qz2VI51oFFo/azNC6Bh/WD1Ga7XWbebCzIeDGByel0gcY5cDGnyK4FbCzMN0zgc/M2Pb+B9eMPh+FmiGi9tq8AAAAASUVORK5CYII=\"","/* unplugin-vue-components disabled */export * from \"-!../../../../node_modules/.pnpm/unplugin@1.4.0/node_modules/unplugin/dist/webpack/loaders/transform.js?unpluginName=unplugin-vue-components!../../../../node_modules/.pnpm/mini-css-extract-plugin@0.9.0_webpack@4.46.0/node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/.pnpm/css-loader@3.6.0_webpack@4.46.0/node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.3.4_vue@3.3.4_webpack@4.46.0/node_modules/vue-loader/dist/stylePostLoader.js!../../../../node_modules/.pnpm/postcss-loader@3.0.0/node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/.pnpm/sass-loader@8.0.2_sass@1.65.1/node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/.pnpm/cache-loader@4.1.0_webpack@4.46.0/node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.3.4_vue@3.3.4_webpack@4.46.0/node_modules/vue-loader/dist/index.js??ref--1-1!./VipTryOut.vue?vue&type=style&index=0&id=4ab9f391&lang=scss\"","import { toast, updateGlobalProperties } from '@remote/utils/index'\nimport { captureException } from '@sentry/vue'\nimport { paramsToObject } from '@shared/utils'\n/**\n * 定义一个接口:FactoryRequestFunction,用于使用厂商的接口,调用套件端接口。\n * 后续接入新厂商的时候,只需要根据这个接口实现请求函数即可。\n */\ninterface FactoryRequestFunction {\n (payload: API_DEVICE.FactoryRequestPayload): Promise\n}\n\ninterface DeviceAuthParams {\n //privilege=PLATFORM_XCLOUD&runner_space=&space=device_id%23d9ebf7685d30b57c8f64449ca694928e&user_code=AWMXCloZAXlx-qLu0g\n client_id?: string\n error_message?: string\n noActionBar?: 'true' | 'false'\n noStatusBar?: 'true' | 'false'\n platform?: 'huawei'\n plm?: 'hw'\n privilege?: string\n runner_space?: string\n space?: string\n user_code?: string\n}\n\n/**\n * 返回一个函数:使用华为和套件通信的机制,对套件发起请求。\n * 后续接入厂商,可以参考这个实现请求函数,复用认证流程。\n */\nconst useHuaweiRequest = (): FactoryRequestFunction => {\n const generateRequestID = () => {\n const timestamp = Date.now() // 当前时间戳\n const random = Math.floor(Math.random() * 1000000) // 一个6位随机数\n return `FUNC${timestamp}${random}`\n }\n if (window.hdc) { // 华为Android\n const requestFunction = (payload: API_DEVICE.FactoryRequestPayload): Promise => {\n return new Promise((resolve, reject) => {\n try {\n const requestID = generateRequestID()\n window[requestID] = (resp: string) => {\n try {\n const response: { code: number; data?: { response: unknown; pkgName: string; function: string } } = JSON.parse(resp)\n if (response.code === 0 && response?.data?.response) {\n resolve(response.data.response)\n return\n }\n reject(new Error('连接设备失败'))\n } catch (error) {\n reject(error)\n }\n }\n const stringifiedPayload = JSON.stringify(payload)\n console.log('payload', payload)\n window.hdc.getServiceData('com.xunlei.download', stringifiedPayload, requestID)\n } catch (error) {\n reject(error)\n }\n })\n }\n return requestFunction\n } else if (window?.webkit?.messageHandlers?.hdc) {\n // 华为 iOS\n const requestFunction = (payload: API_DEVICE.FactoryRequestPayload): Promise => {\n return new Promise((resolve, reject) => {\n try {\n const requestID = generateRequestID()\n window[requestID] = (resp: { result: { code: number; data?: { response: unknown; pkgName: string; function: string } }}) => {\n try {\n const response = resp.result\n if (response.code === 0 && response?.data?.response) {\n resolve(response.data.response)\n return\n }\n reject(new Error('连接设备失败'))\n } catch (error) {\n reject(error)\n }\n }\n // const stringifiedPayload = JSON.stringify(payload)\n console.log('payload', payload)\n window.webkit.messageHandlers.hdc.postMessage({\n method: 'getServiceData',\n callback: requestID,\n id: new Date().getTime(),\n data: {\n function: 'com.xunlei.download',\n body: payload,\n },\n })\n } catch (error) {\n reject(error)\n }\n })\n }\n return requestFunction\n }\n throw new Error('不在华为环境中: 没有找到hdc对象')\n}\n\n/**\n * 柯里化获取目前设备信息(绑定状态)\n */\nexport const curryGetDeviceStatus = (requestFunc: FactoryRequestFunction) => {\n return () => requestFunc({\n method: 'GET',\n path: '/device/status',\n }) as Promise\n}\n\n/**\n * 柯里化退出设备登录态\n */\nconst currySignOut = (requestFunc: FactoryRequestFunction) => {\n return (type?: 'relogin') => requestFunc({\n method: 'POST',\n path: '/auth/signout',\n type,\n }) as Promise<{}>\n}\n\n/**\n * 柯里化获取设备绑定链接\n */\nconst curryGetAuthLink = (requestFunc: FactoryRequestFunction) => {\n return () => requestFunc({\n method: 'GET',\n path: '/auth/login',\n }) as Promise<{ url?: string }>\n}\n\n/**\n * 柯里化获取入口链接\n */\nconst curryGetEntryLink = (requestFunc: FactoryRequestFunction) => {\n return () => requestFunc({\n method: 'GET',\n path: '/device/control',\n }) as Promise<{ url?: string }>\n}\n\n\n/**\n * 厂商认证流程\n */\nexport const useAuth = (factory = 'huawei') => {\n const mapFactoryToRequestComposable: Record FactoryRequestFunction> = {\n huawei: useHuaweiRequest,\n }\n\n const updateAuthStatus = async () => {\n if (mapFactoryToRequestComposable[factory]) {\n const curRequestFunction = mapFactoryToRequestComposable[factory]()\n const linkResp = await curryGetEntryLink(curRequestFunction)()\n console.log('获取控制链接并更新global上的全局属性:', linkResp)\n if (linkResp.url) {\n const query = paramsToObject((new URL(linkResp.url).searchParams))\n updateGlobalProperties(query)\n if (query?.error_message) {\n console.error('auth: error_message:', query.error_message)\n toast(query.error_message)\n }\n }\n }\n }\n /**\n * 认证,绑定迅雷账号和设备 \n */\n const auth = async () => {\n try {\n if (mapFactoryToRequestComposable[factory]) {\n const curRequestFunction = mapFactoryToRequestComposable[factory]()\n // window.signout = async () => {\n // await currySignOut(curRequestFunction)()\n // }\n const status = await curryGetDeviceStatus(curRequestFunction)()\n console.log('获取设备登录状态: ', status)\n if (status?.user?.id) {\n const linkResp = await curryGetEntryLink(curRequestFunction)()\n console.log('设备已登录,获取控制链接:', linkResp)\n if (linkResp.url) {\n const query = paramsToObject((new URL(linkResp.url).searchParams))\n updateGlobalProperties(query)\n if (query.error_message) {\n console.error('auth: error_message:', query.error_message)\n toast(query.error_message)\n }\n }\n return [true, status.user] as const // 未登录情况,这里ID应该为'',而不是在其他前端项目更常见的‘0’。因此这个判断是否登录应该是安全的。\n } \n const linkResp = await curryGetAuthLink(curRequestFunction)()\n console.log('设备未登录,获取登录链接:', linkResp)\n if (linkResp.url) {\n const authParams = paramsToObject((new URL(linkResp.url).searchParams)) as DeviceAuthParams\n updateGlobalProperties(authParams)\n return [false, authParams] as const\n }\n throw new Error('Auth: 没有获取到认证链接')\n }\n throw new Error('Auth: 没有匹配的厂商请求函数')\n } catch (error) {\n toast(`${error.message};请退出后重试`)\n captureException(error)\n console.error(error.message)\n throw new Error('auth failed.')\n }\n }\n\n /**\n * 解绑设备并重新登录 \n */\n const signOut = async (type?: 'relogin') => {\n if (mapFactoryToRequestComposable[factory]) {\n const curRequestFunction = mapFactoryToRequestComposable[factory]()\n await currySignOut(curRequestFunction)(type)\n }\n throw new Error('ReLogin: 没有匹配的厂商请求函数.')\n }\n\n return {\n auth,\n signOut,\n updateAuthStatus,\n }\n}\n","module.exports = __webpack_public_path__ + \"img/bird-growing.png\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABwAAAAcCAYAAAByDd+UAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAOmSURBVHgBrVbNbttGEJ794ZJURUuym7ZOUaBAA7cNfCnSB8gDNNcC9QPUhxYoihx6bHrMwSgKNIf6ARog1+QBHCDHGLkYSSzEQHKIhSRWZJkSJe5yudmlRYWhVpId5wMkkjvc+WY+zs4ughNA7dyoDtSwQVxcRQAuSEwyA0llKp0oTeKBj7wOWv2lN88Xmkn06N8lDvw8AsLgJIGB5AzYPvr21/apCNXONcahegERx4f3QEYsj3bR6jU+l9BkJYj4Yizb+0KL3RfwtPHd74dTCdWDv+vCw1/BB8QQyNOFgsRjQiOjYLWLJjOZ8ABJVYUzQBHUI5SFJlMHug9zeWn+AicLX6ORjEoky7zf+x/OAOq66yRg20Aw4aRmVHtkxnFGoL9bsRIRoi04I7DvN8f+JK4YjiwQ8zcq/fHLxNNS9MCQLpcdIUJuE0rv5M8qVYEU/E99GxRea2ZyFmA49KVN1csbVdFOJtcZxtuQpj+Uh1mluoldd6zAsHNQJtMK4f2JQLWCr+5dDzB0ZR0sQBjvgiW7Ill82LmipPpeW1rHPwhHwTZtPj/+1K/ROBEV/LZ2iowtW3bFZ7feuK0v5gdJL1oRw95/x3x2Qq5kgLH+oDYj8/zdUgDbxeyKENHgvCbbgJG0mLF923uIg0tN2dqMmfMwkyhzgkCF4ugo+6YKQY8FC1s5WRKFJrO8wELqV6wZGi4Ks4BQE5S6lJEodTnhw8vHw3hLX7YsZEaJ5iyX2HSC8uDgdfvq4ODl/ZxsIg5C7ppuNEGWRZZeMnPjTvvqxETNhR0GcXncX1za0MlvwhQQl+7y7uEkWZ6Fnus2ljbK4ylxIqzDDW2T3MbiJnHohsXUTIb8J70HrVhsIabOX2au1SdNI3wgB12YAlZbvOl4/pq+LVbnspLyio3M8arro6VixcGLQTfbLeIn/6wioY8OU2AtjnfRcoPaz9OWjYFyIHYv/LaTNe9YkJnN2qn4+7QSrOu1MVmBeozV62uzyIocGaHZIBWh0TxSf+mTNV0RN/Mxolsdq9XXy426DJNdvgmP1yHj5/YEPL84rRHkMBUcd15nBGxKcbwDFyUs+uztVlW0Hek9ywP5JXxA9IfpXvFcg4tGk3bfS/dszeDU0JkN++LZzENUDrVzi3GvtTKrcmdBkTRi/PM9tPrj/GNiEUZi15HLJyU2xWGqceG0B+EyXj2+HnwkaB1T8LGrD8exOi42LZtKJJdx2us7yeG5b/4I5/l6A1QujnowXf80AAAAAElFTkSuQmCC\"","/* unplugin-vue-components disabled */export * from \"-!../../../../../node_modules/.pnpm/unplugin@1.4.0/node_modules/unplugin/dist/webpack/loaders/transform.js?unpluginName=unplugin-vue-components!../../../../../node_modules/.pnpm/mini-css-extract-plugin@0.9.0_webpack@4.46.0/node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/.pnpm/css-loader@3.6.0_webpack@4.46.0/node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.3.4_vue@3.3.4_webpack@4.46.0/node_modules/vue-loader/dist/stylePostLoader.js!../../../../../node_modules/.pnpm/postcss-loader@3.0.0/node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/.pnpm/sass-loader@8.0.2_sass@1.65.1/node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/.pnpm/cache-loader@4.1.0_webpack@4.46.0/node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.3.4_vue@3.3.4_webpack@4.46.0/node_modules/vue-loader/dist/index.js??ref--1-1!./index.vue?vue&type=style&index=0&id=12748563&lang=scss\""],"sourceRoot":""}