{"version":3,"sources":["webpack:///./src/components/FileTabPlus.vue?bf4c","webpack:////var/static/shared/assets/img/trying.png","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:///./src/components/DownloadUnavailable.vue?727d","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/FileItem.vue?8c13","webpack:///./src/components/FloatingBird.vue?4f68","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?3e64","webpack:///./src/components/FileItem.vue","webpack:///./src/components/FileItem.vue?8492","webpack:///./src/components/Footer.vue?ac1e","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:////var/static/shared/assets/img/speedup/p2p-normal.png","webpack:///./src/views/home/index.vue?d3bb","webpack:////var/static/shared/assets/img/speedup/vip-started.png","webpack:////var/static/shared/assets/img/bird-awake.png","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/components/Footer.vue?d56b","webpack:///./src/composable/auth.ts","webpack:////var/static/shared/assets/img/bird-growing.png","webpack:////var/static/shared/assets/img/speedup/p2p-vip.png"],"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","util","isVersionSmallerThan","_deviceStore$currentD3","_deviceStore$currentD4","_deviceStore$currentD5","uid","deviceInfoRef","user","canShow","dialogManager","canDialogShow","dialogID","_deviceStore$currentD6","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","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","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","onDragEnd","dragEndReset","document","removeEventListener","preventDefault","_diffX$value","_diffY$value","clientWidth","requestAnimationFrame","_flowArea$value","_beanArea$value","userProfile","statBeansClick","startPointToBirdBottom","onDragStart","getClientRects","clientHeight","addEventListener","userStore","initBirdData","_deviceStore$currentD7","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","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","body","curryGetDeviceStatus","requestFunc","currySignOut","curryGetAuthLink","curryGetEntryLink","useAuth","factory","mapFactoryToRequestComposable","huawei","updateAuthStatus","curRequestFunction","linkResp","fromEntries","URL","searchParams","updateGlobalProperties","error_message","toast","auth","_status$user","authParams","captureException"],"mappings":"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","file":"js/chunk-f6cea214.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!./FileTabPlus.vue?vue&type=style&index=0&id=af33f508&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==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAYAAAGWB6gOAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAJKADAAQAAAABAAAAJAAAAAAqDuP8AAAGyklEQVRYCb1YaWwVVRT+Xve+Fqy0pAVcEBFTCQEEQVwoUiQRBDUgoIJhKTES5I+oQIgGREEQFzBGpCBBJeyBsqgRhVZEqU1BwVSlKlKhlO7ba0tpx/PNzJ3OzJtXagze5L6z3nPPXc49Zx5gNk3TjircR0QYFxSDMIwaM9YjicSI19GNUNdMe03TSBxZhGKLaR/u8/m6U0CbCdJ36Vp2DTLC+DN6FVIIS2sR5qNGWR3CJq5B8u3dcNntV6bOoLrbFnlsnJmOc1Z9NSNXGPZp9sQ5RFJJl8nPLiKZ2VoN4fojBiTOBRK65weXbflAU0CmAcxfGbVGeqH0CXaBsrRVmMPtAhNPFcer6fiQEArUK+APd20PEbZ5H6MLoToe4mKkSF+iINZKiP9arF1SKyOtK41/S2sh4VZWPP1MaPa9L9Fp5w+IJz7gJjSdLELUkYW4KOQx8qwpOXLFfq1OWSCkXG1BuOBFZNibujGuzdWtckusFdsH2fA8MTDeRredkkwfatPt+l74jWK0RbntiA2lPXY1kuubjJtM3rPpqJ48FAElt8EMbtBa+6YQr2/Uiu1nouSZchtHr9RaFW2HNHRGMXbnaVVuA7zKbt7efK3SzeNVWqhczC5ATGoPXFZ0uhk4pDd9g7hFO5BAfPxANBAGNfEoS3nVeEW7sHinFiDd0GxcQ86+aIfBI3/bca1K6RPSoHX8wrhOaP3GB80UmlEoJ6aHl2XIritGxwi9Tjovobsdk8ET3cyQtBibIJ1vCKP9qHRGvr5HXoOCPBLlLFEc7KVs4z0qXuXa6P+0RzlibIoypm62Z0AqpXagZUx/yEUxKKrbGWwXDZetYJAjQhCeUFDbngv/+4fAK6G3uGi0HngeJYq2Qb4U3RkiRdL1Z03B/L+0Ul7C0lrtouLN3aw1PrDcO85EJ4FLC7orC7Yhcfr9qEmKR6uaee00VLS2whdoajsgJRP4qtojncdkxCe7qRm+Ib3aYk4NiIqENmY1UlT2VXyBAx3vLJeTdUKrVMshJM+ezBRvR64j3s44POIM4waEiGzb9NPuRe3GbHSysX4KMqSEHx5G/MEfEatoLrlVrxyAvLOI7tMdzUomcAsNGblEEOb/EcuN5H2sEDErDxjvzyffGrNfbjFyUsF5RL3zJCqUIbnhu8LskbxuBsrnpKOGCptmo2xQTzQq5a8WoDgmAiipQfgXLxnVjCnLI1QhslTwDFPgAG9+hs7zHzKMOwQmIY7olZAV/XIaOSLr7aXcDk+vDyi3Nlss86Vzlh/tWBAR81m1UrE8UgxC8W6ngHvsPBOX7cYzYuCgW+ZpyK1EWowzuGdKHyo9KKyE59U48XHpG70m9xoQ0iFxgJO+It3zML2MdZDHY1giDtLZoBbkkDjCp2yf9H97EYKMX4VRKPJx4ph17tS3LhEJcWapAKbaa+0Mp+McBeacpPVm7ZAIOpIU1TiUy0u6/TjiCi4g8vdLiIwIh3ZzIq6kytMyZRjqrvfrNbulfxXEKiN1h8SZUNEQZGfr9/B/8LWRoZid0vui4bYUNNPQmRJEHjqNWFUpzhmF6klDPKvEILvC0OsS1uEsTtZ4abh5L+9GQs4viE2MR8tHs1HaOdZ7F6oD8M3agK5ltQhPS0XDksdQ5bYVgp5Hh/hdNyyEApgJt8rR7DsBf2W9Ee5vTEb50FuDE57dhmSGqPlbkEheQhxaJC0Fnrgb9f5o70WYY7+jQ7ztfpNhAaacmZlIOlsqn38+aFLBBh4Wo31ScMVS6gDy20VE7D8Jf5YsSFzx9eqK5swMlIVZt9dhJECHjgqrl4MtxHPy1XaqCNH9bkDT2qfbUpdbLzMb8SrdTZXEm5GGOreOouduRpfTfyO6v3yavTvV0+YfDPt8NcAOiyoQQfrOW7yPprDEkNvHKPxwAaJbrDJIcYFBpq1z5SHH5nOHWDCfku5IBwekalhlJvy5D6J64l1GtOzNR+zbnxuFAI9ycE805f2JGE7btweafj6PaOJs04ejZvp9qCcuH65++YDV68cXxqJqbP+gUocvdz8V9sxTfNIdrbYBvhe3owsrjt7JcvazUEaF2kbhbzP4jgEmIRVe47LHURllLjFjA5JkRyP5tbVyEio6eUdnBvOddbVkpzryHeyYn8eydA8SsuUpoGDkHQgsfgTVIS6sY6yLsL5CLIeoIE5xTZ9KZy3yf7QcmeQpe6J1OKQ8EMd41vzSu1aO0RHWQ47Eyvk9HaJANfMoFwt9tY8/NSQUZJG6TJzIDaVA/lUdcg8WBxmVo6SnSWcBmyxd/59OIP/y4ZcXv9izpR8SBzqaNkQd+AdTFea+bySQCQAAAABJRU5ErkJggg==\"","/* 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=\"","/* 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=5ad958ac&lang=scss&scoped=true\"","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__","/* 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=00079646&lang=scss&scoped=true\"","/* 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=30f22199&lang=scss&scoped=true\"","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-af33f508\"), 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;\n if (!((_deviceStore$currentD2 = deviceStore.currentDeviceRef) !== null && _deviceStore$currentD2 !== void 0 && _deviceStore$currentD2.util.isVersionSmallerThan('3.20.0'))) {\n var _deviceStore$currentD3, _deviceStore$currentD4, _deviceStore$currentD5;\n const uid = (_deviceStore$currentD3 = (_deviceStore$currentD4 = deviceStore.currentDeviceRef) === null || _deviceStore$currentD4 === void 0 || (_deviceStore$currentD4 = _deviceStore$currentD4.deviceInfoRef.user) === null || _deviceStore$currentD4 === void 0 ? void 0 : _deviceStore$currentD4.id) !== null && _deviceStore$currentD3 !== void 0 ? _deviceStore$currentD3 : '';\n const canShow = await ((_deviceStore$currentD5 = deviceStore.currentDeviceRef) === null || _deviceStore$currentD5 === void 0 ? void 0 : _deviceStore$currentD5.dialogManager.canDialogShow({\n uid,\n dialogID: 'SCRAPE_HINT'\n }));\n console.log('hasTodayTask canshow', canShow);\n if (canShow) {\n var _deviceStore$currentD6;\n (_deviceStore$currentD6 = deviceStore.currentDeviceRef) === null || _deviceStore$currentD6 === void 0 ? void 0 : _deviceStore$currentD6.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=af33f508&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-af33f508\"]])\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-00079646\"), 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=00079646&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=00079646&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-00079646\"]])\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 const id = this.selects[i];\n if (this.deleteCompletely) {\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=054dec74&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=054dec74&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-5ad958ac\"), 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';\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 open = async () => {\n if (!isOpening.value) {\n isOpening.value = true;\n await updateAccessTaskType(['user#download', 'user#download-url']);\n await store.dispatch('getRunner');\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=5ad958ac&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-5ad958ac\"]])\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-30f22199\"), 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;\n/**\n * 拖拽结束事件\n */\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 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 }\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 }\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=30f22199&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-30f22199\"]])\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 } from \"vue\";\nconst _hoisted_1 = {\n class: \"home\"\n};\nconst _hoisted_2 = {\n key: 1,\n class: \"file-list is-light hide-scrollbar\"\n};\nconst _hoisted_3 = {\n class: \"loading-more\"\n};\nconst _hoisted_4 = /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"qh-icon-loading-small\"\n}, null, -1);\nconst _hoisted_5 = [_hoisted_4];\nconst _hoisted_6 = {\n key: 2,\n class: \"loading\"\n};\nconst _hoisted_7 = /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"qh-icon-loading-small\"\n}, null, -1);\nconst _hoisted_8 = [_hoisted_7];\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 { isNativeApp } from '@remote/utils';\nimport { useDeviceStore } from '@remote/store/device';\nimport { stat } from '@remote/utils/stat';\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 || isNativeApp()); // 不在PC或者厂商App中\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\", _hoisted_1, [['fail', 'task'].includes(currentShowContent.value) ? (_openBlock(), _createBlock(FileTab, {\n key: 0\n })) : _createCommentVNode(\"\", true), ['fail', 'task'].includes(currentShowContent.value) ? _withDirectives((_openBlock(), _createElementBlock(\"div\", _hoisted_2, [_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_3, _hoisted_5)), [[_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_6, _hoisted_8, 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]])]);\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=3370bb4f&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","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!./index.vue?vue&type=style&index=0&id=3370bb4f&lang=scss\"","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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\"","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\"","/* 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=054dec74&lang=scss\"","import { toast, updateGlobalProperties } from '@remote/utils/index'\nimport { captureException } from '@sentry/vue'\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 = Object.fromEntries((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 = Object.fromEntries((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 = Object.fromEntries((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\""],"sourceRoot":""}