{"version":3,"sources":["webpack:///./src/views/cinema/index.vue?7333","webpack:///./src/components/cinema/CinemaHeader.vue?37de","webpack:///./src/components/Fail.vue","webpack:///./src/components/Fail.vue?276e","webpack:///./src/components/cinema/CinemaListItem.vue?9958","webpack:///./src/components/cinema/CinemaRecentPlayItem.vue","webpack:///./src/components/cinema/CinemaRecentPlayItem.vue?18cb","webpack:///./src/components/cinema/CinemaRecentPlay.vue","webpack:///./src/components/cinema/CinemaRecentPlay.vue?b1a5","webpack:///./src/components/cinema/CinemaFolderShortcut.vue","webpack:///./src/components/cinema/CinemaFolderShortcut.vue?76cf","webpack:///./src/components/cinema/CinemaEmpty.vue","webpack:///./src/components/cinema/CinemaEmpty.vue?e503","webpack:///./src/components/cinema/CinemaSlideIndex.vue","webpack:///./src/components/cinema/CinemaSlideIndex.vue?3e43","webpack:///./src/components/cinema/CinemaSlideMovie.vue","webpack:///./src/components/cinema/CinemaSlideMovie.vue?6352","webpack:///./src/components/cinema/CinemaSlideTVSeries.vue","webpack:///./src/components/cinema/CinemaSlideTVSeries.vue?b6e4","webpack:///./src/components/cinema/CinemaListItem.vue","webpack:///./src/components/cinema/CinemaListItem.vue?b630","webpack:///./src/components/cinema/CinemaSlideOther.vue","webpack:///./src/components/cinema/CinemaSlideOther.vue?f549","webpack:///./src/composable/home.ts","webpack:///./src/components/cinema/CinemaHeader.vue","webpack:///./src/components/cinema/CinemaHeader.vue?d232","webpack:///./src/views/cinema/index.vue","webpack:///./src/views/cinema/index.vue?6403","webpack:///./src/components/cinema/CinemaRecentPlay.vue?1f3f","webpack:///./src/components/cinema/CinemaRecentPlayItem.vue?83c8","webpack:////var/static/node_modules/.pnpm/nanoid@3.3.6/node_modules/nanoid/url-alphabet/index.js","webpack:////var/static/node_modules/.pnpm/nanoid@3.3.6/node_modules/nanoid/index.browser.js","webpack:///./src/api/flowhub.ts","webpack:///./src/components/cinema/CinemaFolderShortcut.vue?78c0","webpack:///./src/components/cinema/CinemaEmpty.vue?a5a2","webpack:////var/static/shared/assets/img/empty-box.png"],"names":["_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__","props","nfo","type","Object","required","colorScheme","Math","floor","random","getNFOName","lastPlayEpisode","progress","isPosterShow","nfoInstance","nfoName","_props$nfo$scrape_res","scrape_result","join","trim","nfoYear","_props$nfo$scrape_res2","_props$nfo$scrape_res7","_props$nfo$scrape_res3","_props$nfo$scrape_res5","_props$nfo$scrape_res4","_props$nfo$scrape_res6","season","dramas","length","year","handleClick","async","_props$nfo$video_info","_ref","_Number","_scrapeResult$dramas","scrapeResult","stat","action","data","home_module","scraper_name","trans_name","origin_name","video_info","file_name","scraper_type","episode_num","Number","episode_nums","from","leading","trailing","_nfo$value$scrape_res","_nfo$value$scrape_res2","_nfo$value$scrape_res3","_nfo$value$scrape_res4","_nfo$value$scrape_res5","args","src","poster_horizontal","poster_vertical","title","draggable","style","width","String","default","list","containerNodeRef","onWheel","e","preventDefault","scrollLeft","deltaY","_props$list","ref_key","ref","record","_record$scrape_result","CinemaRecentPlayItem","_withScopeId","n","role","containerInnerNodeRef","isScrollLeftShow","isScrollRightShow","scrollRight","observe","unobserve","getFolderName","path","_deviceStore$currentD2","pathSeparator","deviceInfoRef","path_separator","checkFileStillExist","_deviceStore$currentD3","deviceFetch","folder","file_id","error","_deviceStore$currentD4","message","indexShortCut","remove","silence","onShortcutClicked","result","_getFolderName","_folder$config$mount_","_folder$config","router","push","query","currentRoute","origin","config","mount_path","parent_id","action_from","filter","trashed","eq","phase","mime_type","prefix","onLongPressed","_getFolderName2","_fs$config","console","log","res","fs","options","danger","body","checker","checkerDefaultState","buttonDirection","center","button","text","_deviceStore$currentD5","_deviceStore$currentD6","isChecked","method","_deviceStore$currentD7","untilDeviceReady","initList","_unref$currentDeviceR","_directive_longpress","height","folderList","_folder$config2","_hoisted_13","_hoisted_14","_hoisted_15","_hoisted_16","_hoisted_17","_hoisted_18","_hoisted_19","_hoisted_20","_hoisted_21","_hoisted_22","hasListInit","Boolean","trackers","_flowHubInstance$slot","slotResult","slots","reportShowURL","Array","isArray","_trackers$value$find","url","find","tracker","event","reportClickURL","_trackers$value$find2","guideAssets","_flowHubInstance$slot2","native","assets","_guideAssets$value","image","_guideAssets$value2","img","desc","_guideAssets$value3","cta","_guideAssets$value4","onSettingSource","reportFlowHub","onImpression","isShow","isExplainShow","show","showExplain","_unref$currentNFOInst","_unref$currentNFOInst2","_title$value","_desc$value","_image$value","_cta$value","_unref$currentNFOInst3","_directive_see","currentNFOInstance","isScraping","hasInitLocalState","hasInitCinema","oneKeyConfigScrape","onTouchstart","isShowing","indexMovieCollection","_deviceStore$currentN","_deviceStore$currentN2","movieList","slice","indexTVCollection","_deviceStore$currentN3","_deviceStore$currentN4","tvList","first10RecentPlay","_deviceStore$currentN5","_deviceStore$currentN6","playRecordList","isShortCutShow","_indexShortCut$value","_indexShortCut$value2","isCinemaIndexFolderEnabled","isCinemaIndexFolderShow","refreshRecentPlay","_deviceStore$currentN7","document","hidden","refreshPlayRecord","addEventListener","removeEventListener","isAllCollectionEmpty","_deviceStore$currentN8","_deviceStore$currentN9","hasMovieListInit","hasTVListInit","_deviceStore$currentN10","if_content_blank","page","status","if_have_main_page_file","CinemaEmpty","CinemaFolderShortcut","nfos","_unref$currentNFOInst4","_unref$currentNFOInst5","_unref$currentNFOInst6","_directive_observer","item","_item$video_info","isMovieListEnd","loadMovieNFOList","isTvListEnd","loadTvNFOList","clickFrom","imgNodeRef","loadFallback","reduceFilename","filename","replace","_name","short_name","_props$nfo$video_info2","_scrapeResult$dramas$","_scrapeResult$dramas2","tab_type","tele_episode_num","_props$nfo$video_info3","usage","theme","scene","error_description","refreshAllList","labels","getOriginStatName","_store$state$deviceIn","_props$nfo$video_info5","separator","deviceInfoWatchData","_props$nfo$video_info4","real_path","split","modifyTime","_props$nfo$video_info6","_props$nfo$video_info7","date","mod_time","toLocaleString","fileSize","_props$nfo$video_info8","file_size","menuClickStat","clickid","_props$nfo$scrape_res8","_props$nfo$scrape_res9","_props$nfo$scrape_res10","_props$nfo$scrape_res11","_props$nfo$scrape_res12","click_id","movie_episode_num","onLongPress","_props$nfo$scrape_res13","isModifyNFOEnabled","includes","menu","confirmDeleteNFO","_props$nfo$scrape_res14","_props$nfo$scrape_res15","modifyingDramas","_props$nfo$scrape_re","_props$nfo$scrape_re2","onContextmenu","onError","otherList","_unref2","_unref$currentNFOInst7","hasOtherListInit","CinemaListItem","isOtherListEnd","loadOtherNFOList","useGoHome","isApp","computed","isMiniProgram","isNative","isAndroid","isIOS","self","top","goHome","routeName","back","slides","currentSlideIndex","headerVersionWithoutSearch","emits","emit","statSearchEntryClick","isIndexFolderBubbleShow","selectTab","index","refreshFolderList","getIsCinemaIndexShow","syncHasInitCinema","createMenu","util","hasLabel","hideBubble","unwatch","val","oldVal","immediate","openMenu","_deviceStore$currentD8","_deviceStore$currentD9","_deviceStore$currentD10","_deviceStore$currentD11","_deviceStore$currentD12","createScrapeTask","commit","add","toggleCinemaIndexShow","onSearchClick","_deviceStore$currentD13","_deviceStore$currentD14","_deviceStore$currentD15","_deviceStore$currentD16","_deviceStore$currentD17","initMenu","uid","user","canShow","dialogManager","canDialogShow","dialogID","_deviceStore$currentD18","dialogShow","slide","component","CinemaSlideIndex","CinemaSlideMovie","CinemaSlideTVSeries","CinemaSlideOther","headerRef","isOffline","target","checkDialogScrapeHintShow","isVersionSmallerThan","_store$state$user","userID","setTimeout","storage","getItem","setItem","handleAliDriveAuthCallback","aliDriveAuthCode","getAvailableFSType","authCode","template","availableFS","i","untilWatchReady","preset","hasInit","dirs","if_scraper_initial","CinemaHeader","Fail","nanoid","size","crypto","getRandomValues","Uint8Array","reduce","byte","toString","toUpperCase","FlowHub","constructor","availableSlotParams","POSITION_CINEMA_EMPTY","accept_source","accept_landing_type","accept_style","accept_event","hosts","host","this","slot","useEnvStore","axios","post","headers","xbaseConfig","clientId","global","deviceID","reactive","params","startsWith","get","catch","flowHubInstance","module","exports"],"mappings":"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","file":"js/chunk-8bae8cca.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!./index.vue?vue&type=style&index=0&id=a3645108&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!./CinemaHeader.vue?vue&type=style&index=0&id=31ff0ff4&lang=scss\"","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!./CinemaListItem.vue?vue&type=style&index=0&id=0f683715&lang=scss\"","import { defineComponent as _defineComponent } from 'vue';\nimport { openBlock as _openBlock, createElementBlock as _createElementBlock, unref as _unref, createElementVNode as _createElementVNode, normalizeStyle as _normalizeStyle, normalizeClass as _normalizeClass, toDisplayString as _toDisplayString } from \"vue\";\nconst _hoisted_1 = [\"src\", \"title\"];\nconst _hoisted_2 = {\n key: 1,\n class: \"fallback-icon\"\n};\nconst _hoisted_3 = {\n class: \"img-frame\"\n};\nconst _hoisted_4 = [\"src\"];\nconst _hoisted_5 = {\n class: \"info\"\n};\nconst _hoisted_6 = {\n class: \"name single-line-text\"\n};\nconst _hoisted_7 = {\n class: \"season\"\n};\nimport { useCinemaName, usePlayRecordNFO } from '@shared/composable/cinema';\nimport { computed, ref } from 'vue';\nimport { openPopCinemaDetail } from '@remote/utils/dialog';\nimport { useDeviceStore } from '@remote/store/device';\nimport debounce from 'lodash/debounce';\nimport fallbackIcon from '@shared/assets/img/cinema-fallback-icon.png';\nimport { stat } from '@remote/utils/stat';\nexport default /*#__PURE__*/_defineComponent({\n __name: 'CinemaRecentPlayItem',\n props: {\n nfo: {\n type: Object,\n required: true\n }\n },\n setup(__props) {\n const props = __props;\n const colorScheme = ref(Math.floor(Math.random() * 5));\n const {\n getNFOName\n } = useCinemaName();\n const deviceStore = useDeviceStore();\n const nfo = computed(() => props.nfo);\n const {\n lastPlayEpisode,\n progress\n } = usePlayRecordNFO(nfo);\n const isPosterShow = computed(() => {\n var _deviceStore$currentD;\n return (_deviceStore$currentD = deviceStore.currentDeviceRef) === null || _deviceStore$currentD === void 0 || (_deviceStore$currentD = _deviceStore$currentD.nfoInstance) === null || _deviceStore$currentD === void 0 ? void 0 : _deviceStore$currentD.isPosterShow;\n });\n const nfoName = computed(() => {\n var _props$nfo$scrape_res;\n if (((_props$nfo$scrape_res = props.nfo.scrape_result) === null || _props$nfo$scrape_res === void 0 ? void 0 : _props$nfo$scrape_res.class) === 'tv' && lastPlayEpisode.value) {\n return [getNFOName(props.nfo), lastPlayEpisode.value].join('·').trim();\n }\n return getNFOName(props.nfo);\n });\n const nfoYear = computed(() => {\n var _props$nfo$scrape_res2, _props$nfo$scrape_res7;\n if (((_props$nfo$scrape_res2 = props.nfo.scrape_result) === null || _props$nfo$scrape_res2 === void 0 ? void 0 : _props$nfo$scrape_res2.class) === 'tv') {\n var _props$nfo$scrape_res3, _props$nfo$scrape_res5;\n // 电视剧\n if (props.nfo.scrape_result.season && (_props$nfo$scrape_res3 = props.nfo.scrape_result.dramas) !== null && _props$nfo$scrape_res3 !== void 0 && _props$nfo$scrape_res3.length) {\n var _props$nfo$scrape_res4;\n // 有季和集信息\n return `${props.nfo.scrape_result.year} | 第${props.nfo.scrape_result.season}季·共${(_props$nfo$scrape_res4 = props.nfo.scrape_result.dramas) === null || _props$nfo$scrape_res4 === void 0 ? void 0 : _props$nfo$scrape_res4.length}集`;\n }\n if ((_props$nfo$scrape_res5 = props.nfo.scrape_result.dramas) !== null && _props$nfo$scrape_res5 !== void 0 && _props$nfo$scrape_res5.length) {\n var _props$nfo$scrape_res6;\n return `${props.nfo.scrape_result.year} | 共${(_props$nfo$scrape_res6 = props.nfo.scrape_result.dramas) === null || _props$nfo$scrape_res6 === void 0 ? void 0 : _props$nfo$scrape_res6.length}集`;\n }\n return `${props.nfo.scrape_result.year}`;\n }\n return `${(_props$nfo$scrape_res7 = props.nfo.scrape_result) === null || _props$nfo$scrape_res7 === void 0 ? void 0 : _props$nfo$scrape_res7.year}`;\n });\n const handleClick = debounce(async () => {\n var _props$nfo$video_info, _ref, _Number, _scrapeResult$dramas;\n const scrapeResult = props.nfo.scrape_result;\n stat({\n action: 'cinema_video_card_click',\n data: {\n home_module: 'recently_played',\n scraper_name: scrapeResult === null || scrapeResult === void 0 ? void 0 : scrapeResult.trans_name,\n origin_name: (_props$nfo$video_info = props.nfo.video_info) === null || _props$nfo$video_info === void 0 ? void 0 : _props$nfo$video_info.file_name,\n scraper_type: scrapeResult === null || scrapeResult === void 0 ? void 0 : scrapeResult.class,\n episode_num: (_ref = (_Number = Number(scrapeResult === null || scrapeResult === void 0 ? void 0 : scrapeResult.episode_nums)) !== null && _Number !== void 0 ? _Number : scrapeResult === null || scrapeResult === void 0 || (_scrapeResult$dramas = scrapeResult.dramas) === null || _scrapeResult$dramas === void 0 ? void 0 : _scrapeResult$dramas.length) !== null && _ref !== void 0 ? _ref : 1\n }\n });\n openPopCinemaDetail({\n nfo: props.nfo,\n from: 'home_recently_played'\n });\n }, 500, {\n leading: true,\n trailing: false\n });\n return (_ctx, _cache) => {\n var _nfo$value$scrape_res, _nfo$value$scrape_res2, _nfo$value$scrape_res3, _nfo$value$scrape_res4, _nfo$value$scrape_res5;\n return _openBlock(), _createElementBlock(\"li\", {\n class: \"record\",\n key: (_nfo$value$scrape_res = nfo.value.scrape_result) === null || _nfo$value$scrape_res === void 0 ? void 0 : _nfo$value$scrape_res.id,\n onClick: _cache[0] || (_cache[0] =\n //@ts-ignore\n (...args) => _unref(handleClick) && _unref(handleClick)(...args))\n }, [_createElementVNode(\"div\", {\n class: _normalizeClass(['img-wrap', `scheme-${colorScheme.value}`])\n }, [isPosterShow.value ? (_openBlock(), _createElementBlock(\"img\", {\n key: 0,\n src: (_nfo$value$scrape_res2 = (_nfo$value$scrape_res3 = nfo.value.scrape_result) === null || _nfo$value$scrape_res3 === void 0 ? void 0 : _nfo$value$scrape_res3.poster_horizontal) !== null && _nfo$value$scrape_res2 !== void 0 ? _nfo$value$scrape_res2 : (_nfo$value$scrape_res4 = nfo.value.scrape_result) === null || _nfo$value$scrape_res4 === void 0 ? void 0 : _nfo$value$scrape_res4.poster_vertical,\n title: (_nfo$value$scrape_res5 = nfo.value.scrape_result) === null || _nfo$value$scrape_res5 === void 0 ? void 0 : _nfo$value$scrape_res5.trans_name,\n draggable: \"false\"\n }, null, 8, _hoisted_1)) : (_openBlock(), _createElementBlock(\"div\", _hoisted_2, [_createElementVNode(\"div\", _hoisted_3, [_createElementVNode(\"img\", {\n src: _unref(fallbackIcon),\n draggable: \"false\"\n }, null, 8, _hoisted_4)])])), _createElementVNode(\"div\", {\n class: \"progress\",\n style: _normalizeStyle({\n width: `${_unref(progress)}%`\n })\n }, null, 4)], 2), _createElementVNode(\"div\", _hoisted_5, [_createElementVNode(\"span\", _hoisted_6, _toDisplayString(nfoName.value), 1), _createElementVNode(\"span\", _hoisted_7, _toDisplayString(nfoYear.value), 1)])]);\n };\n }\n});","/* unplugin-vue-components disabled */import script from \"./CinemaRecentPlayItem.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./CinemaRecentPlayItem.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./CinemaRecentPlayItem.vue?vue&type=style&index=0&id=619a7606&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue';\nimport { toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, createBlock as _createBlock, vShow as _vShow, withDirectives as _withDirectives } from \"vue\";\nconst _hoisted_1 = {\n class: \"cinema__record\"\n};\nconst _hoisted_2 = {\n class: \"record-list\"\n};\nimport { ref } from 'vue';\nimport CinemaRecentPlayItem from '@remote/components/cinema/CinemaRecentPlayItem.vue';\nexport default /*#__PURE__*/_defineComponent({\n __name: 'CinemaRecentPlay',\n props: {\n title: {\n type: String,\n default: '最近观看'\n },\n list: {\n type: Object,\n required: true\n }\n },\n setup(__props) {\n const props = __props;\n const containerNodeRef = ref(null);\n const containerInnerNodeRef = ref(null);\n const onWheel = e => {\n e.preventDefault();\n if (containerNodeRef.value) {\n containerNodeRef.value.scrollLeft += e.deltaY;\n }\n };\n return (_ctx, _cache) => {\n var _props$list;\n return _withDirectives((_openBlock(), _createElementBlock(\"div\", _hoisted_1, [_createElementVNode(\"h2\", null, _toDisplayString(props.title), 1), _createElementVNode(\"div\", {\n class: \"record-container hide-scrollbar\",\n ref_key: \"containerNodeRef\",\n ref: containerNodeRef,\n onWheel: onWheel\n }, [_createElementVNode(\"ul\", _hoisted_2, [(_openBlock(true), _createElementBlock(_Fragment, null, _renderList(__props.list, record => {\n var _record$scrape_result;\n return _openBlock(), _createBlock(CinemaRecentPlayItem, {\n nfo: record,\n key: (_record$scrape_result = record.scrape_result) === null || _record$scrape_result === void 0 ? void 0 : _record$scrape_result.id\n }, null, 8, [\"nfo\"]);\n }), 128))])], 544)], 512)), [[_vShow, ((_props$list = props.list) === null || _props$list === void 0 ? void 0 : _props$list.length) > 0]]);\n };\n }\n});","/* unplugin-vue-components disabled */import script from \"./CinemaRecentPlay.vue?vue&type=script&lang=ts&setup=true\"\nexport * from \"./CinemaRecentPlay.vue?vue&type=script&lang=ts&setup=true\"\n\nimport \"./CinemaRecentPlay.vue?vue&type=style&index=0&id=9273951e&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","import \"core-js/modules/es.array.push.js\";\nimport { defineComponent as _defineComponent } from 'vue';\nimport { createElementVNode as _createElementVNode, unref as _unref, createVNode as _createVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, renderList as _renderList, Fragment as _Fragment, toDisplayString as _toDisplayString, resolveDirective as _resolveDirective, withDirectives as _withDirectives, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\";\nconst _withScopeId = n => (_pushScopeId(\"data-v-3b356fc6\"), n = n(), _popScopeId(), n);\nconst _hoisted_1 = {\n class: \"cinema_folder_shortcut\"\n};\nconst _hoisted_2 = /*#__PURE__*/_withScopeId(() => /*#__PURE__*/_createElementVNode(\"h2\", {\n class: \"title\"\n}, \" 常用文件夹 \", -1));\nconst _hoisted_3 = {\n key: 0,\n class: \"move left\"\n};\nconst _hoisted_4 = [\"onClick\"];\nconst _hoisted_5 = {\n class: \"folder-card\"\n};\nconst _hoisted_6 = [\"src\"];\nconst _hoisted_7 = [\"title\"];\nconst _hoisted_8 = {\n key: 1,\n role: \"button\",\n class: \"move right\"\n};\nimport { useDeviceStore } from '@remote/store/device';\nimport Folder from '@shared/assets/img/cinema-empty.png';\nimport { openDialogCommon, openPopMenu } from '@remote/utils/dialog';\nimport { getFolderNameFromPath } from '@shared/utils/file';\nimport { onMounted, ref, watch } from 'vue';\nimport router from '@remote/router';\nimport { useScrollCollection } from '@shared/composable/cinema';\nimport { IconPageLeft } from '@xunlei/thunder-icon-vue';\nimport { newToast } from '@remote/utils';\nexport default /*#__PURE__*/_defineComponent({\n __name: 'CinemaFolderShortcut',\n setup(__props) {\n const deviceStore = useDeviceStore();\n const containerNodeRef = ref(null);\n const containerInnerNodeRef = ref(null);\n const {\n isScrollLeftShow,\n isScrollRightShow,\n scrollLeft,\n scrollRight,\n observe,\n unobserve\n } = useScrollCollection(containerNodeRef, containerInnerNodeRef);\n const getFolderName = (path = '') => {\n var _deviceStore$currentD, _deviceStore$currentD2;\n const pathSeparator = (_deviceStore$currentD = (_deviceStore$currentD2 = deviceStore.currentDeviceRef) === null || _deviceStore$currentD2 === void 0 ? void 0 : _deviceStore$currentD2.deviceInfoRef.path_separator) !== null && _deviceStore$currentD !== void 0 ? _deviceStore$currentD : '/';\n return getFolderNameFromPath(path, pathSeparator);\n };\n const checkFileStillExist = async folder => {\n try {\n var _deviceStore$currentD3;\n await ((_deviceStore$currentD3 = deviceStore.currentDeviceRef) === null || _deviceStore$currentD3 === void 0 ? void 0 : _deviceStore$currentD3.deviceFetch(`drive/v1/files/${folder.file_id}`, {}));\n return true;\n } catch (error) {\n if (error.error === 'file_not_found') {\n var _deviceStore$currentD4;\n newToast({\n type: 'error',\n message: '原路径已失效,将移除该文件夹'\n });\n (_deviceStore$currentD4 = deviceStore.currentDeviceRef) === null || _deviceStore$currentD4 === void 0 ? void 0 : _deviceStore$currentD4.indexShortCut.remove(folder.id, {\n silence: true\n });\n return false;\n }\n return true;\n }\n };\n const onShortcutClicked = async folder => {\n if (!folder.file_id) return;\n const result = await checkFileStillExist(folder);\n if (result) {\n var _getFolderName, _folder$config$mount_, _folder$config;\n router.push({\n path: '/local-files',\n query: {\n ...router.currentRoute.value.query,\n origin: JSON.stringify({\n title: (_getFolderName = getFolderName((_folder$config$mount_ = (_folder$config = folder.config) === null || _folder$config === void 0 ? void 0 : _folder$config.mount_path) !== null && _folder$config$mount_ !== void 0 ? _folder$config$mount_ : '')) !== null && _getFolderName !== void 0 ? _getFolderName : '',\n parent_id: folder.file_id,\n action_from: 'main_page_file',\n filter: JSON.stringify({\n trashed: {\n eq: false\n },\n phase: {\n eq: 'PHASE_TYPE_COMPLETE'\n },\n mime_type: {\n prefix: ['folder', 'video/']\n }\n })\n })\n }\n });\n }\n };\n const onLongPressed = async fs => {\n var _getFolderName2, _fs$config;\n console.log('onLongPressed');\n const res = await openPopMenu({\n title: (_getFolderName2 = getFolderName((_fs$config = fs.config) === null || _fs$config === void 0 ? void 0 : _fs$config.mount_path)) !== null && _getFolderName2 !== void 0 ? _getFolderName2 : '',\n options: ['打开文件夹', '删除', '取消'],\n danger: [1]\n });\n if (res === '打开文件夹') {\n onShortcutClicked(fs);\n }\n if (res === '删除') {\n const res = await openDialogCommon({\n title: '温馨提示',\n body: '确定删除所选文件夹么?',\n checker: '同时删除本地文件',\n checkerDefaultState: false,\n buttonDirection: 'horizontal',\n center: true,\n button: [{\n text: '确定',\n value: 'confirm',\n danger: true\n }, {\n text: '取消',\n value: 'cancel'\n }]\n });\n if (res.result === 'confirm') {\n var _deviceStore$currentD5;\n (_deviceStore$currentD5 = deviceStore.currentDeviceRef) === null || _deviceStore$currentD5 === void 0 ? void 0 : _deviceStore$currentD5.indexShortCut.remove(fs.id);\n newToast({\n type: 'success',\n message: '删除成功'\n });\n if (res.isChecked) {\n var _deviceStore$currentD6;\n await ((_deviceStore$currentD6 = deviceStore.currentDeviceRef) === null || _deviceStore$currentD6 === void 0 ? void 0 : _deviceStore$currentD6.deviceFetch(`drive/v1/files/${fs.file_id}`, {\n method: 'DELETE'\n }));\n }\n }\n }\n };\n watch(containerInnerNodeRef, res => {\n if (res) {\n observe();\n } else {\n unobserve();\n }\n });\n onMounted(async () => {\n var _deviceStore$currentD7;\n await deviceStore.untilDeviceReady();\n (_deviceStore$currentD7 = deviceStore.currentDeviceRef) === null || _deviceStore$currentD7 === void 0 ? void 0 : _deviceStore$currentD7.indexShortCut.initList();\n });\n return (_ctx, _cache) => {\n var _unref$currentDeviceR;\n const _directive_longpress = _resolveDirective(\"longpress\");\n return _openBlock(), _createElementBlock(\"div\", _hoisted_1, [_hoisted_2, _createElementVNode(\"ul\", {\n class: \"folder_list hide-scrollbar\",\n ref_key: \"containerNodeRef\",\n ref: containerNodeRef\n }, [_unref(isScrollLeftShow) ? (_openBlock(), _createElementBlock(\"div\", _hoisted_3, [_createElementVNode(\"span\", {\n role: \"button\",\n class: \"click-area\",\n onClick: _cache[0] || (_cache[0] =\n //@ts-ignore\n (...args) => _unref(scrollLeft) && _unref(scrollLeft)(...args))\n }, [_createVNode(_unref(IconPageLeft), {\n width: \"24\",\n height: \"24\"\n })])])) : _createCommentVNode(\"\", true), _createElementVNode(\"div\", {\n class: \"container__inner\",\n ref_key: \"containerInnerNodeRef\",\n ref: containerInnerNodeRef\n }, [(_openBlock(true), _createElementBlock(_Fragment, null, _renderList((_unref$currentDeviceR = _unref(deviceStore).currentDeviceRef) === null || _unref$currentDeviceR === void 0 ? void 0 : _unref$currentDeviceR.indexShortCut.folderList, folder => {\n var _folder$config2;\n return _withDirectives((_openBlock(), _createElementBlock(\"li\", {\n class: \"folder\",\n key: folder.id,\n onClick: $event => onShortcutClicked(folder)\n }, [_createElementVNode(\"div\", _hoisted_5, [_createElementVNode(\"img\", {\n src: _unref(Folder),\n draggable: \"false\",\n class: \"folder-img\"\n }, null, 8, _hoisted_6)]), _createElementVNode(\"span\", {\n class: \"folder-name single-line-text\",\n title: folder.config.mount_path\n }, _toDisplayString(getFolderName((_folder$config2 = folder.config) === null || _folder$config2 === void 0 ? void 0 : _folder$config2.mount_path)), 9, _hoisted_7)], 8, _hoisted_4)), [[_directive_longpress, () => onLongPressed(folder)]]);\n }), 128))], 512), _unref(isScrollRightShow) ? (_openBlock(), _createElementBlock(\"div\", _hoisted_8, [_createElementVNode(\"span\", {\n class: \"click-area\",\n role: \"button\",\n onClick: _cache[1] || (_cache[1] =\n //@ts-ignore\n (...args) => _unref(scrollRight) && _unref(scrollRight)(...args))\n }, [_createVNode(_unref(IconPageLeft), {\n width: \"24\",\n height: \"24\"\n })])])) : _createCommentVNode(\"\", true)], 512)]);\n };\n }\n});","/* unplugin-vue-components disabled */import script from \"./CinemaFolderShortcut.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./CinemaFolderShortcut.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./CinemaFolderShortcut.vue?vue&type=style&index=0&id=3b356fc6&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-3b356fc6\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue';\nimport { unref as _unref, createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, resolveDirective as _resolveDirective, withDirectives as _withDirectives, createVNode as _createVNode, vShow as _vShow, withModifiers as _withModifiers, Fragment as _Fragment } from \"vue\";\nconst _hoisted_1 = {\n class: \"cinema__empty\"\n};\nconst _hoisted_2 = {\n class: \"cinema__empty-content\"\n};\nconst _hoisted_3 = {\n key: 0,\n class: \"loading\"\n};\nconst _hoisted_4 = [\"src\"];\nconst _hoisted_5 = /*#__PURE__*/_createElementVNode(\"h2\", null, \"资源匹配中...\", -1);\nconst _hoisted_6 = /*#__PURE__*/_createElementVNode(\"p\", null, \"首次可能需要3~5分钟\", -1);\nconst _hoisted_7 = {\n key: 0,\n class: \"flowhub\"\n};\nconst _hoisted_8 = [\"src\"];\nconst _hoisted_9 = {\n class: \"button-box\"\n};\nconst _hoisted_10 = {\n class: \"tips\"\n};\nconst _hoisted_11 = {\n key: 1,\n class: \"default\"\n};\nconst _hoisted_12 = [\"src\"];\nconst _hoisted_13 = /*#__PURE__*/_createElementVNode(\"h2\", null, \"暂无资源\", -1);\nconst _hoisted_14 = /*#__PURE__*/_createElementVNode(\"p\", null, \"将设备上的视频添加到个人片库,可帮您在公开网络上检索媒体信息\", -1);\nconst _hoisted_15 = {\n class: \"button-box\"\n};\nconst _hoisted_16 = {\n class: \"tips\"\n};\nconst _hoisted_17 = {\n key: 2,\n class: \"no-resource\"\n};\nconst _hoisted_18 = [\"src\"];\nconst _hoisted_19 = /*#__PURE__*/_createElementVNode(\"h2\", null, \"暂未匹配到结果\", -1);\nconst _hoisted_20 = /*#__PURE__*/_createElementVNode(\"p\", null, \"请尝试手动选择其他路径或添加视频到现有路径中后从右上角菜单中选择刷新\", -1);\nconst _hoisted_21 = {\n key: 3,\n class: \"loading-layout\"\n};\nconst _hoisted_22 = {\n class: \"loading-area\"\n};\nimport empty from '@shared/assets/img/cinema-empty.png';\nimport emptyBox from '@shared/assets/img/empty-box.png';\nimport { useDeviceStore } from '@remote/store/device';\nimport { IconLoading2, IconHelp } from '@xunlei/thunder-icon-vue';\nimport { openCinemaSourceSetting } from '@remote/utils/dialog';\nimport { flowHubInstance } from '@remote/api/flowhub';\nimport { computed } from 'vue';\nimport { useToggleTips } from '@shared/composable/base';\nimport { stat } from '@remote/utils/stat';\nexport default /*#__PURE__*/_defineComponent({\n __name: 'CinemaEmpty',\n props: {\n hasListInit: {\n type: Boolean,\n default: false\n }\n },\n setup(__props) {\n const props = __props;\n const deviceStore = useDeviceStore();\n const trackers = computed(() => {\n var _flowHubInstance$slot;\n return (_flowHubInstance$slot = flowHubInstance.slotResult.value['POSITION_CINEMA_EMPTY']) === null || _flowHubInstance$slot === void 0 || (_flowHubInstance$slot = _flowHubInstance$slot.slots) === null || _flowHubInstance$slot === void 0 || (_flowHubInstance$slot = _flowHubInstance$slot[0]) === null || _flowHubInstance$slot === void 0 ? void 0 : _flowHubInstance$slot.trackers;\n });\n const reportShowURL = computed(() => {\n if (Array.isArray(trackers.value)) {\n var _trackers$value$find;\n const url = (_trackers$value$find = trackers.value.find(tracker => tracker.event === 'EVENT_IMPRESSION')) === null || _trackers$value$find === void 0 ? void 0 : _trackers$value$find.url;\n if (url) {\n return url;\n }\n }\n return null;\n });\n const reportClickURL = computed(() => {\n if (Array.isArray(trackers.value)) {\n var _trackers$value$find2;\n const url = (_trackers$value$find2 = trackers.value.find(tracker => tracker.event === 'EVENT_CLICK')) === null || _trackers$value$find2 === void 0 ? void 0 : _trackers$value$find2.url;\n if (url) return url;\n }\n return null;\n });\n const guideAssets = computed(() => {\n var _flowHubInstance$slot2;\n return (_flowHubInstance$slot2 = flowHubInstance.slotResult.value['POSITION_CINEMA_EMPTY']) === null || _flowHubInstance$slot2 === void 0 || (_flowHubInstance$slot2 = _flowHubInstance$slot2.slots) === null || _flowHubInstance$slot2 === void 0 || (_flowHubInstance$slot2 = _flowHubInstance$slot2[0]) === null || _flowHubInstance$slot2 === void 0 || (_flowHubInstance$slot2 = _flowHubInstance$slot2.native) === null || _flowHubInstance$slot2 === void 0 ? void 0 : _flowHubInstance$slot2.assets;\n });\n const title = computed(() => {\n var _guideAssets$value;\n return (_guideAssets$value = guideAssets.value) === null || _guideAssets$value === void 0 || (_guideAssets$value = _guideAssets$value.title) === null || _guideAssets$value === void 0 || (_guideAssets$value = _guideAssets$value.text) === null || _guideAssets$value === void 0 ? void 0 : _guideAssets$value.value;\n });\n const image = computed(() => {\n var _guideAssets$value2;\n return (_guideAssets$value2 = guideAssets.value) === null || _guideAssets$value2 === void 0 || (_guideAssets$value2 = _guideAssets$value2.image) === null || _guideAssets$value2 === void 0 || (_guideAssets$value2 = _guideAssets$value2.img) === null || _guideAssets$value2 === void 0 ? void 0 : _guideAssets$value2.url;\n });\n const desc = computed(() => {\n var _guideAssets$value3;\n return (_guideAssets$value3 = guideAssets.value) === null || _guideAssets$value3 === void 0 || (_guideAssets$value3 = _guideAssets$value3.desc) === null || _guideAssets$value3 === void 0 || (_guideAssets$value3 = _guideAssets$value3.text) === null || _guideAssets$value3 === void 0 ? void 0 : _guideAssets$value3.value;\n });\n const cta = computed(() => {\n var _guideAssets$value4;\n return (_guideAssets$value4 = guideAssets.value) === null || _guideAssets$value4 === void 0 || (_guideAssets$value4 = _guideAssets$value4.cta) === null || _guideAssets$value4 === void 0 || (_guideAssets$value4 = _guideAssets$value4.text) === null || _guideAssets$value4 === void 0 ? void 0 : _guideAssets$value4.value;\n });\n const onSettingSource = () => {\n if (reportClickURL.value) {\n flowHubInstance.reportFlowHub(reportClickURL.value, {});\n }\n openCinemaSourceSetting({\n from: 'blank_channel'\n });\n };\n const onImpression = () => {\n if (reportShowURL.value) {\n flowHubInstance.reportFlowHub(reportShowURL.value, {});\n }\n };\n const {\n isShow: isExplainShow,\n show: showExplain\n } = useToggleTips();\n return (_ctx, _cache) => {\n var _unref$currentNFOInst, _unref$currentNFOInst2, _title$value, _desc$value, _image$value, _cta$value, _unref$currentNFOInst3;\n const _directive_see = _resolveDirective(\"see\");\n return _openBlock(), _createElementBlock(\"div\", _hoisted_1, [_createElementVNode(\"div\", _hoisted_2, [(_unref$currentNFOInst = _unref(deviceStore).currentNFOInstance) !== null && _unref$currentNFOInst !== void 0 && _unref$currentNFOInst.isScraping ? (_openBlock(), _createElementBlock(\"div\", _hoisted_3, [_createElementVNode(\"img\", {\n src: _unref(empty),\n draggable: \"false\"\n }, null, 8, _hoisted_4), _hoisted_5, _hoisted_6])) : (_unref$currentNFOInst2 = _unref(deviceStore).currentNFOInstance) !== null && _unref$currentNFOInst2 !== void 0 && _unref$currentNFOInst2.hasInitLocalState && !_unref(deviceStore).currentNFOInstance.hasInitCinema ? (_openBlock(), _createElementBlock(_Fragment, {\n key: 1\n }, [guideAssets.value ? _withDirectives((_openBlock(), _createElementBlock(\"div\", _hoisted_7, [_createElementVNode(\"h2\", null, _toDisplayString((_title$value = title.value) !== null && _title$value !== void 0 ? _title$value : '暂无资源'), 1), _createElementVNode(\"p\", null, _toDisplayString((_desc$value = desc.value) !== null && _desc$value !== void 0 ? _desc$value : '将设备上的视频添加到个人片库,可帮您在公开网络上检索媒体信息'), 1), _createElementVNode(\"img\", {\n src: (_image$value = image.value) !== null && _image$value !== void 0 ? _image$value : _unref(empty),\n draggable: \"false\"\n }, null, 8, _hoisted_8), _createElementVNode(\"div\", _hoisted_9, [_createElementVNode(\"button\", {\n class: \"button-base\",\n onClick: onSettingSource\n }, _toDisplayString((_cta$value = cta.value) !== null && _cta$value !== void 0 ? _cta$value : '手动选择'), 1), _withDirectives((_openBlock(), _createElementBlock(\"button\", {\n class: \"button-base primary-button\",\n onClick: _cache[0] || (_cache[0] = $event => {\n _unref(stat)({\n action: 'one_click_configuration_button_click'\n });\n _unref(deviceStore).currentNFOInstance.oneKeyConfigScrape();\n })\n }, [_createTextVNode(\" 一键配置 \")])), [[_directive_see, () => _unref(stat)({\n action: 'one_click_configuration_button_show'\n })]])]), _createElementVNode(\"span\", {\n class: \"one-key-explain\",\n onClick: _cache[1] || (_cache[1] = _withModifiers($event => _unref(showExplain)('click'), [\"stop\"])),\n onTouchstart: _cache[2] || (_cache[2] = _withModifiers($event => _unref(showExplain)('touch'), [\"stop\"]))\n }, [_createVNode(_unref(IconHelp), {\n width: \"16\",\n height: \"16\"\n }), _createTextVNode(\"配置说明 \"), _withDirectives(_createElementVNode(\"span\", _hoisted_10, \" 选择「一键配置」会默认选择云盘缓存 & 迅雷下载 & 历史下载路径文件夹 目录下的视频进行匹配。您也可以手动选择其他文件夹。 \", 512), [[_vShow, _unref(isExplainShow)]])], 32)])), [[_directive_see, onImpression]]) : (_openBlock(), _createElementBlock(\"div\", _hoisted_11, [_createElementVNode(\"img\", {\n src: _unref(empty),\n draggable: \"false\"\n }, null, 8, _hoisted_12), _hoisted_13, _hoisted_14, _createElementVNode(\"div\", _hoisted_15, [_createElementVNode(\"button\", {\n class: \"button-base\",\n onClick: onSettingSource\n }, \" 手动选择 \"), _withDirectives((_openBlock(), _createElementBlock(\"button\", {\n class: \"button-base primary-button\",\n onClick: _cache[3] || (_cache[3] = $event => {\n _unref(stat)({\n action: 'one_click_configuration_button_click'\n });\n _unref(deviceStore).currentNFOInstance.oneKeyConfigScrape();\n })\n }, [_createTextVNode(\" 一键配置 \")])), [[_directive_see, () => _unref(stat)({\n action: 'one_click_configuration_button_show'\n })]])]), _createElementVNode(\"span\", {\n class: \"one-key-explain\",\n onClick: _cache[4] || (_cache[4] = $event => _unref(showExplain)('click')),\n onTouchstart: _cache[5] || (_cache[5] = $event => _unref(showExplain)('touch'))\n }, [_createVNode(_unref(IconHelp), {\n width: \"16\",\n height: \"16\"\n }), _createTextVNode(\"配置说明 \"), _withDirectives(_createElementVNode(\"span\", _hoisted_16, \" 选择「一键配置」会默认选择云盘缓存 & 迅雷下载 & 历史下载路径文件夹 目录下的视频进行匹配。您也可以手动选择其他文件夹。 \", 512), [[_vShow, _unref(isExplainShow)]])], 32)]))], 64)) : (_unref$currentNFOInst3 = _unref(deviceStore).currentNFOInstance) !== null && _unref$currentNFOInst3 !== void 0 && _unref$currentNFOInst3.hasInitLocalState && props.hasListInit ? _withDirectives((_openBlock(), _createElementBlock(\"div\", _hoisted_17, [_createElementVNode(\"img\", {\n src: _unref(emptyBox),\n draggable: \"false\"\n }, null, 8, _hoisted_18), _hoisted_19, _hoisted_20, _createElementVNode(\"button\", {\n class: \"button-base primary-button\",\n onClick: onSettingSource\n }, \" 手动选择 \")])), [[_directive_see, () => _unref(stat)({\n action: 'local_empty_page_show'\n })]]) : (_openBlock(), _createElementBlock(\"div\", _hoisted_21, [_createElementVNode(\"div\", _hoisted_22, [_createVNode(_unref(IconLoading2), {\n width: \"28\",\n height: \"28\",\n class: \"loading-spin\"\n }), _createTextVNode(\" 加载资源中 \")])]))])]);\n };\n }\n});","/* unplugin-vue-components disabled */import script from \"./CinemaEmpty.vue?vue&type=script&lang=ts&setup=true\"\nexport * from \"./CinemaEmpty.vue?vue&type=script&lang=ts&setup=true\"\n\nimport \"./CinemaEmpty.vue?vue&type=style&index=0&id=0a2eb77e&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue';\nimport { openBlock as _openBlock, createBlock as _createBlock, createVNode as _createVNode, vShow as _vShow, withDirectives as _withDirectives, Fragment as _Fragment, createElementBlock as _createElementBlock } from \"vue\";\nconst _hoisted_1 = {\n class: \"cinema-slide__content index hide-scrollbar\"\n};\nimport Collection from '@remote/components/cinema/CinemaCollection.vue';\nimport RecentPlay from '@remote/components/cinema/CinemaRecentPlay.vue';\nimport CinemaFolderShortcut from '@remote/components/cinema/CinemaFolderShortcut.vue';\nimport { computed, onBeforeUnmount, onMounted, watch } from 'vue';\nimport { useDeviceStore } from '@remote/store/device';\nimport CinemaEmpty from '@remote/components/cinema/CinemaEmpty.vue';\nimport { stat } from '@remote/utils/stat';\nexport default /*#__PURE__*/_defineComponent({\n __name: 'CinemaSlideIndex',\n props: {\n isShowing: {\n type: Boolean,\n default: false\n }\n },\n setup(__props) {\n const props = __props;\n const deviceStore = useDeviceStore();\n const indexMovieCollection = computed(() => {\n var _deviceStore$currentN, _deviceStore$currentN2;\n return (_deviceStore$currentN = (_deviceStore$currentN2 = deviceStore.currentNFOInstance) === null || _deviceStore$currentN2 === void 0 ? void 0 : _deviceStore$currentN2.movieList.slice(0, 30)) !== null && _deviceStore$currentN !== void 0 ? _deviceStore$currentN : [];\n });\n const indexTVCollection = computed(() => {\n var _deviceStore$currentN3, _deviceStore$currentN4;\n return (_deviceStore$currentN3 = (_deviceStore$currentN4 = deviceStore.currentNFOInstance) === null || _deviceStore$currentN4 === void 0 ? void 0 : _deviceStore$currentN4.tvList.slice(0, 30)) !== null && _deviceStore$currentN3 !== void 0 ? _deviceStore$currentN3 : [];\n });\n const first10RecentPlay = computed(() => {\n var _deviceStore$currentN5, _deviceStore$currentN6;\n return (_deviceStore$currentN5 = deviceStore === null || deviceStore === void 0 || (_deviceStore$currentN6 = deviceStore.currentNFOInstance) === null || _deviceStore$currentN6 === void 0 ? void 0 : _deviceStore$currentN6.playRecordList) !== null && _deviceStore$currentN5 !== void 0 ? _deviceStore$currentN5 : [];\n });\n const indexShortCut = computed(() => {\n var _deviceStore$currentD;\n return (_deviceStore$currentD = deviceStore.currentDeviceRef) === null || _deviceStore$currentD === void 0 ? void 0 : _deviceStore$currentD.indexShortCut;\n });\n const isShortCutShow = computed(() => {\n var _indexShortCut$value, _indexShortCut$value2;\n return ((_indexShortCut$value = indexShortCut.value) === null || _indexShortCut$value === void 0 ? void 0 : _indexShortCut$value.isCinemaIndexFolderEnabled) && ((_indexShortCut$value2 = indexShortCut.value) === null || _indexShortCut$value2 === void 0 ? void 0 : _indexShortCut$value2.isCinemaIndexFolderShow) && indexShortCut.value.folderList.length > 0;\n });\n const refreshRecentPlay = async () => {\n if (!document.hidden) {\n var _deviceStore$currentN7;\n await (deviceStore === null || deviceStore === void 0 || (_deviceStore$currentN7 = deviceStore.currentNFOInstance) === null || _deviceStore$currentN7 === void 0 ? void 0 : _deviceStore$currentN7.refreshPlayRecord());\n }\n };\n onMounted(() => {\n document.addEventListener('visibilitychange', refreshRecentPlay);\n });\n onBeforeUnmount(() => {\n document.removeEventListener('visibilitychange', refreshRecentPlay);\n });\n const isAllCollectionEmpty = computed(() => {\n return indexMovieCollection.value.length === 0 && indexTVCollection.value.length === 0;\n });\n const hasInitCinema = computed(() => {\n var _deviceStore$currentN8;\n return (_deviceStore$currentN8 = deviceStore.currentNFOInstance) === null || _deviceStore$currentN8 === void 0 ? void 0 : _deviceStore$currentN8.hasInitCinema;\n });\n const hasListInit = computed(() => {\n var _deviceStore$currentN9;\n return !isAllCollectionEmpty.value || ((_deviceStore$currentN9 = deviceStore.currentNFOInstance) === null || _deviceStore$currentN9 === void 0 ? void 0 : _deviceStore$currentN9.hasMovieListInit) && deviceStore.currentNFOInstance.hasTVListInit;\n });\n watch(() => props.isShowing, () => {\n if (props.isShowing) {\n var _deviceStore$currentN10, _deviceStore$currentD2, _deviceStore$currentD3;\n stat({\n action: 'cinema_channel_show',\n data: {\n if_content_blank: isAllCollectionEmpty.value ? 1 : 0,\n page: 'main_page',\n status: (_deviceStore$currentN10 = deviceStore.currentNFOInstance) !== null && _deviceStore$currentN10 !== void 0 && _deviceStore$currentN10.isScraping ? 1 : 0,\n if_have_main_page_file: ((_deviceStore$currentD2 = deviceStore === null || deviceStore === void 0 || (_deviceStore$currentD3 = deviceStore.currentDeviceRef) === null || _deviceStore$currentD3 === void 0 ? void 0 : _deviceStore$currentD3.indexShortCut.folderList.length) !== null && _deviceStore$currentD2 !== void 0 ? _deviceStore$currentD2 : 0 > 0) ? 1 : 0\n }\n });\n }\n });\n return (_ctx, _cache) => {\n return _openBlock(), _createElementBlock(\"div\", _hoisted_1, [!hasInitCinema.value || isAllCollectionEmpty.value && !isShortCutShow.value ? (_openBlock(), _createBlock(CinemaEmpty, {\n key: 0,\n \"has-list-init\": hasListInit.value\n }, null, 8, [\"has-list-init\"])) : (_openBlock(), _createElementBlock(_Fragment, {\n key: 1\n }, [_createVNode(RecentPlay, {\n title: \"最近播放\",\n list: first10RecentPlay.value\n }, null, 8, [\"list\"]), _withDirectives(_createVNode(CinemaFolderShortcut, null, null, 512), [[_vShow, isShortCutShow.value]]), _createVNode(Collection, {\n title: \"最近添加的电影\",\n nfos: indexMovieCollection.value,\n from: \"home_recently_added_movie\"\n }, null, 8, [\"nfos\"]), _createVNode(Collection, {\n title: \"最近添加的电视剧\",\n nfos: indexTVCollection.value,\n from: \"home_recently_added_tele\"\n }, null, 8, [\"nfos\"])], 64))]);\n };\n }\n});","/* unplugin-vue-components disabled */import script from \"./CinemaSlideIndex.vue?vue&type=script&lang=ts&setup=true\"\nexport * from \"./CinemaSlideIndex.vue?vue&type=script&lang=ts&setup=true\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue';\nimport { unref as _unref, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, renderList as _renderList, Fragment as _Fragment, createElementBlock as _createElementBlock, resolveDirective as _resolveDirective, withDirectives as _withDirectives } from \"vue\";\nconst _hoisted_1 = {\n class: \"cinema-slide__content movie hide-scrollbar\"\n};\nconst _hoisted_2 = {\n key: 1,\n class: \"wrapper\"\n};\nconst _hoisted_3 = {\n key: 0,\n class: \"loading\"\n};\nimport Card from '@remote/components/cinema/CinemaCard.vue';\nimport { useDeviceStore } from '@remote/store/device';\nimport CinemaEmpty from '@remote/components/cinema/CinemaEmpty.vue';\nimport { stat } from '@remote/utils/stat';\nimport { watch } from 'vue';\nexport default /*#__PURE__*/_defineComponent({\n __name: 'CinemaSlideMovie',\n props: {\n isShowing: {\n type: Boolean,\n default: false\n }\n },\n setup(__props) {\n const props = __props;\n const deviceStore = useDeviceStore();\n watch(() => props.isShowing, () => {\n if (props.isShowing) {\n var _deviceStore$currentN, _deviceStore$currentN2;\n stat({\n action: 'cinema_channel_show',\n data: {\n if_content_blank: ((_deviceStore$currentN = deviceStore.currentNFOInstance) === null || _deviceStore$currentN === void 0 ? void 0 : _deviceStore$currentN.movieList.length) === 0 ? 1 : 0,\n page: 'movie',\n status: (_deviceStore$currentN2 = deviceStore.currentNFOInstance) !== null && _deviceStore$currentN2 !== void 0 && _deviceStore$currentN2.isScraping ? 1 : 0\n }\n });\n }\n });\n return (_ctx, _cache) => {\n var _unref$currentNFOInst, _unref$currentNFOInst2, _unref$currentNFOInst4, _unref$currentNFOInst5, _unref$currentNFOInst6;\n const _directive_observer = _resolveDirective(\"observer\");\n return _openBlock(), _createElementBlock(\"div\", _hoisted_1, [((_unref$currentNFOInst = _unref(deviceStore).currentNFOInstance) === null || _unref$currentNFOInst === void 0 ? void 0 : _unref$currentNFOInst.movieList.length) === 0 ? (_openBlock(), _createBlock(CinemaEmpty, {\n key: 0,\n \"has-list-init\": _unref(deviceStore).currentNFOInstance.hasMovieListInit\n }, null, 8, [\"has-list-init\"])) : (_openBlock(), _createElementBlock(\"div\", _hoisted_2, [(_openBlock(true), _createElementBlock(_Fragment, null, _renderList((_unref$currentNFOInst2 = _unref(deviceStore).currentNFOInstance) === null || _unref$currentNFOInst2 === void 0 ? void 0 : _unref$currentNFOInst2.movieList, item => {\n var _item$video_info, _unref$currentNFOInst3;\n return _openBlock(), _createBlock(Card, {\n key: (_item$video_info = item.video_info) === null || _item$video_info === void 0 ? void 0 : _item$video_info.file_id,\n nfo: item,\n \"is-poster-show\": (_unref$currentNFOInst3 = _unref(deviceStore).currentNFOInstance) === null || _unref$currentNFOInst3 === void 0 ? void 0 : _unref$currentNFOInst3.isPosterShow,\n \"click-from\": \"movie\",\n from: \"movie\"\n }, null, 8, [\"nfo\", \"is-poster-show\"]);\n }), 128)), !((_unref$currentNFOInst4 = _unref(deviceStore).currentNFOInstance) !== null && _unref$currentNFOInst4 !== void 0 && _unref$currentNFOInst4.isMovieListEnd) && !((_unref$currentNFOInst5 = _unref(deviceStore).currentNFOInstance) !== null && _unref$currentNFOInst5 !== void 0 && _unref$currentNFOInst5.isScraping) ? _withDirectives((_openBlock(), _createElementBlock(\"div\", _hoisted_3, null, 512)), [[_directive_observer, {\n show: (_unref$currentNFOInst6 = _unref(deviceStore).currentNFOInstance) === null || _unref$currentNFOInst6 === void 0 ? void 0 : _unref$currentNFOInst6.loadMovieNFOList\n }]]) : _createCommentVNode(\"\", true)]))]);\n };\n }\n});","/* unplugin-vue-components disabled */import script from \"./CinemaSlideMovie.vue?vue&type=script&lang=ts&setup=true\"\nexport * from \"./CinemaSlideMovie.vue?vue&type=script&lang=ts&setup=true\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue';\nimport { unref as _unref, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, renderList as _renderList, Fragment as _Fragment, createElementBlock as _createElementBlock, resolveDirective as _resolveDirective, withDirectives as _withDirectives } from \"vue\";\nconst _hoisted_1 = {\n class: \"cinema-slide__content tv hide-scrollbar\"\n};\nconst _hoisted_2 = {\n key: 1,\n class: \"wrapper\"\n};\nconst _hoisted_3 = {\n key: 0,\n class: \"loading\"\n};\nimport Card from '@remote/components/cinema/CinemaCard.vue';\nimport { useDeviceStore } from '@remote/store/device';\nimport CinemaEmpty from '@remote/components/cinema/CinemaEmpty.vue';\nimport { stat } from '@remote/utils/stat';\nimport { watch } from 'vue';\nexport default /*#__PURE__*/_defineComponent({\n __name: 'CinemaSlideTVSeries',\n props: {\n isShowing: {\n type: Boolean,\n default: false\n }\n },\n setup(__props) {\n const props = __props;\n const deviceStore = useDeviceStore();\n watch(() => props.isShowing, () => {\n if (props.isShowing) {\n var _deviceStore$currentN, _deviceStore$currentN2;\n stat({\n action: 'cinema_channel_show',\n data: {\n if_content_blank: ((_deviceStore$currentN = deviceStore.currentNFOInstance) === null || _deviceStore$currentN === void 0 ? void 0 : _deviceStore$currentN.tvList.length) === 0 ? 1 : 0,\n page: 'tv',\n status: (_deviceStore$currentN2 = deviceStore.currentNFOInstance) !== null && _deviceStore$currentN2 !== void 0 && _deviceStore$currentN2.isScraping ? 1 : 0\n }\n });\n }\n });\n return (_ctx, _cache) => {\n var _unref$currentNFOInst, _unref$currentNFOInst2, _unref$currentNFOInst4, _unref$currentNFOInst5, _unref$currentNFOInst6;\n const _directive_observer = _resolveDirective(\"observer\");\n return _openBlock(), _createElementBlock(\"div\", _hoisted_1, [((_unref$currentNFOInst = _unref(deviceStore).currentNFOInstance) === null || _unref$currentNFOInst === void 0 ? void 0 : _unref$currentNFOInst.tvList.length) === 0 ? (_openBlock(), _createBlock(CinemaEmpty, {\n key: 0,\n \"has-list-init\": _unref(deviceStore).currentNFOInstance.hasTVListInit\n }, null, 8, [\"has-list-init\"])) : (_openBlock(), _createElementBlock(\"div\", _hoisted_2, [(_openBlock(true), _createElementBlock(_Fragment, null, _renderList((_unref$currentNFOInst2 = _unref(deviceStore).currentNFOInstance) === null || _unref$currentNFOInst2 === void 0 ? void 0 : _unref$currentNFOInst2.tvList, item => {\n var _item$video_info, _unref$currentNFOInst3;\n return _openBlock(), _createBlock(Card, {\n key: (_item$video_info = item.video_info) === null || _item$video_info === void 0 ? void 0 : _item$video_info.file_id,\n nfo: item,\n \"is-poster-show\": (_unref$currentNFOInst3 = _unref(deviceStore).currentNFOInstance) === null || _unref$currentNFOInst3 === void 0 ? void 0 : _unref$currentNFOInst3.isPosterShow,\n \"click-from\": \"tele\",\n from: \"tele\"\n }, null, 8, [\"nfo\", \"is-poster-show\"]);\n }), 128)), !((_unref$currentNFOInst4 = _unref(deviceStore).currentNFOInstance) !== null && _unref$currentNFOInst4 !== void 0 && _unref$currentNFOInst4.isTvListEnd) && !((_unref$currentNFOInst5 = _unref(deviceStore).currentNFOInstance) !== null && _unref$currentNFOInst5 !== void 0 && _unref$currentNFOInst5.isScraping) ? _withDirectives((_openBlock(), _createElementBlock(\"div\", _hoisted_3, null, 512)), [[_directive_observer, {\n show: (_unref$currentNFOInst6 = _unref(deviceStore).currentNFOInstance) === null || _unref$currentNFOInst6 === void 0 ? void 0 : _unref$currentNFOInst6.loadTvNFOList\n }]]) : _createCommentVNode(\"\", true)]))]);\n };\n }\n});","/* unplugin-vue-components disabled */import script from \"./CinemaSlideTVSeries.vue?vue&type=script&lang=ts&setup=true\"\nexport * from \"./CinemaSlideTVSeries.vue?vue&type=script&lang=ts&setup=true\"\n\nconst __exports__ = script;\n\nexport default __exports__","import \"core-js/modules/es.array.push.js\";\nimport { defineComponent as _defineComponent } from 'vue';\nimport { createElementVNode as _createElementVNode, toDisplayString as _toDisplayString, normalizeClass as _normalizeClass, unref as _unref, resolveDirective as _resolveDirective, openBlock as _openBlock, createElementBlock as _createElementBlock, withDirectives as _withDirectives } from \"vue\";\nconst _hoisted_1 = {\n class: \"cinema__list-item-alternative\"\n};\nconst _hoisted_2 = {\n class: \"icon\"\n};\nconst _hoisted_3 = [\"src\"];\nconst _hoisted_4 = {\n class: /*#__PURE__*/_normalizeClass({\n 'cinema__list-item-info': true\n })\n};\nimport { computed, ref } from 'vue';\nimport { openCinemaSeries, openPopMenu, openPopModifyNFO } from '@remote/utils/dialog';\nimport fallback from '@shared/assets/img/cinema-fallback-icon.png';\nimport { store } from '@remote/store';\nimport { stat } from '@remote/utils/stat';\nimport { openPopCinemaFeedback } from '@remote/utils/dialog';\nimport { useDeviceStore } from '@remote/store/device';\nimport { toast } from '@remote/utils';\nimport debounce from 'lodash/debounce';\nimport { formatSize } from '@shared/utils/bytes';\nimport { SECOND } from '@shared/constants/time';\nexport default /*#__PURE__*/_defineComponent({\n __name: 'CinemaListItem',\n props: {\n nfo: {\n type: Object,\n required: true\n },\n clickFrom: {\n type: String,\n default: ''\n }\n },\n setup(__props) {\n const props = __props;\n const imgNodeRef = ref(null);\n const deviceStore = useDeviceStore();\n const loadFallback = () => {\n if (imgNodeRef.value) {\n imgNodeRef.value.src = fallback;\n }\n };\n const nfoClass = computed(() => {\n var _props$nfo$scrape_res;\n return (_props$nfo$scrape_res = props.nfo.scrape_result) === null || _props$nfo$scrape_res === void 0 ? void 0 : _props$nfo$scrape_res.class;\n });\n const reduceFilename = filename => {\n return filename.replace(/([【].*?)(www\\.[a-zA-Z0-9.]+)(.*?|】\\])|(www\\.[a-zA-Z0-9.]+)/, '...');\n };\n const nfoName = computed(() => {\n var _props$nfo$scrape_res2, _props$nfo$scrape_res4, _name;\n let name;\n if ((_props$nfo$scrape_res2 = props.nfo.scrape_result) !== null && _props$nfo$scrape_res2 !== void 0 && _props$nfo$scrape_res2.short_name) {\n var _props$nfo$scrape_res3;\n // 如果有short_name,优先使用short_name\n name = (_props$nfo$scrape_res3 = props.nfo.scrape_result) === null || _props$nfo$scrape_res3 === void 0 ? void 0 : _props$nfo$scrape_res3.short_name;\n } else if (((_props$nfo$scrape_res4 = props.nfo.scrape_result) === null || _props$nfo$scrape_res4 === void 0 ? void 0 : _props$nfo$scrape_res4.class) !== 'other') {\n var _props$nfo$scrape_res5;\n // 如果分类不是其他(刮削有结果),使用刮削出来的中文名\n name = (_props$nfo$scrape_res5 = props.nfo.scrape_result) === null || _props$nfo$scrape_res5 === void 0 ? void 0 : _props$nfo$scrape_res5.trans_name;\n } else {\n var _props$nfo$video_info;\n // 如果分类是其他(刮削没有结果),使用文件本身的名字\n name = (_props$nfo$video_info = props.nfo.video_info) === null || _props$nfo$video_info === void 0 ? void 0 : _props$nfo$video_info.file_name;\n }\n return reduceFilename((_name = name) !== null && _name !== void 0 ? _name : ''); // 对要展示的名字进行缩略\n });\n\n const handleClick = debounce(async () => {\n var _props$nfo$video_info2, _scrapeResult$dramas, _scrapeResult$dramas$, _scrapeResult$dramas2;\n const scrapeResult = props.nfo.scrape_result;\n stat({\n action: 'cinema_video_card_click',\n data: {\n tab_type: props.clickFrom,\n scraper_name: scrapeResult === null || scrapeResult === void 0 ? void 0 : scrapeResult.trans_name,\n origin_name: (_props$nfo$video_info2 = props.nfo.video_info) === null || _props$nfo$video_info2 === void 0 ? void 0 : _props$nfo$video_info2.file_name,\n scraper_type: scrapeResult === null || scrapeResult === void 0 ? void 0 : scrapeResult.class,\n tele_episode_num: ((_scrapeResult$dramas = scrapeResult === null || scrapeResult === void 0 ? void 0 : scrapeResult.dramas) !== null && _scrapeResult$dramas !== void 0 ? _scrapeResult$dramas : []).length\n }\n });\n if ((scrapeResult === null || scrapeResult === void 0 ? void 0 : scrapeResult.class) === 'tv' || (scrapeResult === null || scrapeResult === void 0 ? void 0 : scrapeResult.class) === 'movie' && ((_scrapeResult$dramas$ = (_scrapeResult$dramas2 = scrapeResult.dramas) === null || _scrapeResult$dramas2 === void 0 ? void 0 : _scrapeResult$dramas2.length) !== null && _scrapeResult$dramas$ !== void 0 ? _scrapeResult$dramas$ : 1) > 1) {\n // 如果是连续剧,展示右侧栏\n openCinemaSeries({\n nfo: props.nfo\n });\n } else {\n // 如果不是连续剧,直接播放\n try {\n var _props$nfo$video_info3;\n await store.dispatch('getFileInfo', {\n id: (_props$nfo$video_info3 = props.nfo.video_info) === null || _props$nfo$video_info3 === void 0 ? void 0 : _props$nfo$video_info3.file_id,\n usage: 2,\n theme: 'dark',\n scene: 'nfo',\n action_from: 'cinema'\n });\n } catch (error) {\n if (error.error === 'file_not_found' || error.error_description === 'file_not_found' || error.error === 'not_found') {\n var _deviceStore$currentN;\n (_deviceStore$currentN = deviceStore.currentNFOInstance) === null || _deviceStore$currentN === void 0 ? void 0 : _deviceStore$currentN.refreshAllList();\n }\n toast('播放失败,请检查文件是否存在');\n }\n }\n }, 500, {\n leading: true,\n trailing: false\n });\n const labels = computed(() => {\n var _deviceStore$currentD, _deviceStore$currentD2;\n return (_deviceStore$currentD = (_deviceStore$currentD2 = deviceStore.currentDeviceRef) === null || _deviceStore$currentD2 === void 0 ? void 0 : _deviceStore$currentD2.deviceInfoRef.labels) !== null && _deviceStore$currentD !== void 0 ? _deviceStore$currentD : [];\n });\n const getOriginStatName = () => {\n var _store$state$deviceIn, _props$nfo$scrape_res6, _props$nfo$video_info5;\n const separator = (_store$state$deviceIn = store.state.deviceInfoWatchData.path_separator) !== null && _store$state$deviceIn !== void 0 ? _store$state$deviceIn : '/';\n if (((_props$nfo$scrape_res6 = props.nfo.scrape_result) === null || _props$nfo$scrape_res6 === void 0 ? void 0 : _props$nfo$scrape_res6.class) === 'tv') {\n var _props$nfo$video_info4;\n return (_props$nfo$video_info4 = props.nfo.video_info) === null || _props$nfo$video_info4 === void 0 ? void 0 : _props$nfo$video_info4.real_path.split(separator).slice(-2).join(separator);\n }\n return (_props$nfo$video_info5 = props.nfo.video_info) === null || _props$nfo$video_info5 === void 0 ? void 0 : _props$nfo$video_info5.file_name;\n };\n const modifyTime = computed(() => {\n var _props$nfo$video_info6, _props$nfo$video_info7;\n const date = new Date(((_props$nfo$video_info6 = (_props$nfo$video_info7 = props.nfo.video_info) === null || _props$nfo$video_info7 === void 0 ? void 0 : _props$nfo$video_info7.mod_time) !== null && _props$nfo$video_info6 !== void 0 ? _props$nfo$video_info6 : 0) * SECOND);\n return date.toLocaleString();\n });\n const fileSize = computed(() => {\n var _props$nfo$video_info8;\n return formatSize((_props$nfo$video_info8 = props.nfo.video_info) === null || _props$nfo$video_info8 === void 0 ? void 0 : _props$nfo$video_info8.file_size);\n });\n const menuClickStat = clickid => {\n var _props$nfo$scrape_res7, _props$nfo$scrape_res8, _ref, _props$nfo$scrape_res9, _props$nfo$scrape_res10, _props$nfo$scrape_res11, _props$nfo$scrape_res12;\n stat({\n action: 'cinema_video_option_click',\n data: {\n click_id: clickid,\n scraper_name: (_props$nfo$scrape_res7 = props.nfo.scrape_result) === null || _props$nfo$scrape_res7 === void 0 ? void 0 : _props$nfo$scrape_res7.trans_name,\n origin_name: getOriginStatName(),\n movie_episode_num: ((_props$nfo$scrape_res8 = props.nfo.scrape_result) === null || _props$nfo$scrape_res8 === void 0 ? void 0 : _props$nfo$scrape_res8.class) === 'movie' ? (_ref = (_props$nfo$scrape_res9 = props.nfo.scrape_result.dramas) !== null && _props$nfo$scrape_res9 !== void 0 ? _props$nfo$scrape_res9 : []) === null || _ref === void 0 ? void 0 : _ref.length : 'not_movie',\n tele_episode_num: ((_props$nfo$scrape_res10 = props.nfo.scrape_result) === null || _props$nfo$scrape_res10 === void 0 ? void 0 : _props$nfo$scrape_res10.class) === 'tv' ? ((_props$nfo$scrape_res11 = (_props$nfo$scrape_res12 = props.nfo.scrape_result) === null || _props$nfo$scrape_res12 === void 0 ? void 0 : _props$nfo$scrape_res12.dramas) !== null && _props$nfo$scrape_res11 !== void 0 ? _props$nfo$scrape_res11 : []).length : 'not_tv'\n }\n });\n };\n const onLongPress = async () => {\n try {\n var _props$nfo$scrape_res13;\n const isModifyNFOEnabled = labels.value.includes('withUserResetScrapeResult');\n const menu = ['删除'];\n if (isModifyNFOEnabled) menu.push('修改信息');\n if (((_props$nfo$scrape_res13 = props.nfo.scrape_result) === null || _props$nfo$scrape_res13 === void 0 ? void 0 : _props$nfo$scrape_res13.class) !== 'other') menu.push('错误反馈');\n const res = await openPopMenu({\n options: menu\n });\n if (res === '删除') {\n var _deviceStore$currentN2;\n menuClickStat('delete');\n await ((_deviceStore$currentN2 = deviceStore.currentNFOInstance) === null || _deviceStore$currentN2 === void 0 ? void 0 : _deviceStore$currentN2.confirmDeleteNFO(props.nfo));\n } else if (res === '错误反馈') {\n menuClickStat('feedback_error');\n openPopCinemaFeedback({\n nfo: props.nfo\n });\n } else if (res === '修改信息') {\n var _props$nfo$scrape_res14, _props$nfo$scrape_res15;\n menuClickStat('modify');\n let modifyingDramas = (_props$nfo$scrape_res14 = (_props$nfo$scrape_res15 = props.nfo.scrape_result) === null || _props$nfo$scrape_res15 === void 0 ? void 0 : _props$nfo$scrape_res15.dramas) !== null && _props$nfo$scrape_res14 !== void 0 ? _props$nfo$scrape_res14 : [];\n if (modifyingDramas.length === 0 && props.nfo.video_info) {\n // 如果单集,且dramas为空,把video_info放进来\n modifyingDramas.push(props.nfo.video_info);\n }\n openPopModifyNFO({\n nfo: props.nfo,\n modifyingDramas\n });\n }\n } catch (error) {\n console.error(error);\n toast(error.message || error.error || '未知错误');\n }\n };\n return (_ctx, _cache) => {\n var _props$nfo$scrape_re, _props$nfo$scrape_re2;\n const _directive_longpress = _resolveDirective(\"longpress\");\n return _withDirectives((_openBlock(), _createElementBlock(\"div\", {\n class: \"cinema__list-item\",\n onClick: _cache[0] || (_cache[0] =\n //@ts-ignore\n (...args) => _unref(handleClick) && _unref(handleClick)(...args)),\n onContextmenu: _cache[1] || (_cache[1] = e => {\n e.preventDefault();\n })\n }, [_createElementVNode(\"div\", _hoisted_1, [_createElementVNode(\"div\", _hoisted_2, [_createElementVNode(\"img\", {\n ref_key: \"imgNodeRef\",\n ref: imgNodeRef,\n src: (_props$nfo$scrape_re = (_props$nfo$scrape_re2 = __props.nfo.scrape_result) === null || _props$nfo$scrape_re2 === void 0 ? void 0 : _props$nfo$scrape_re2.poster_vertical) !== null && _props$nfo$scrape_re !== void 0 ? _props$nfo$scrape_re : '',\n draggable: \"false\",\n onError: loadFallback\n }, null, 40, _hoisted_3)])]), _createElementVNode(\"div\", _hoisted_4, [_createElementVNode(\"h3\", null, _toDisplayString(nfoName.value), 1), _createElementVNode(\"p\", null, _toDisplayString(modifyTime.value) + \" \" + _toDisplayString(fileSize.value), 1)])], 32)), [[_directive_longpress, onLongPress]]);\n };\n }\n});","/* unplugin-vue-components disabled */import script from \"./CinemaListItem.vue?vue&type=script&lang=ts&setup=true\"\nexport * from \"./CinemaListItem.vue?vue&type=script&lang=ts&setup=true\"\n\nimport \"./CinemaListItem.vue?vue&type=style&index=0&id=0f683715&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue';\nimport { unref as _unref, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, renderList as _renderList, Fragment as _Fragment, createElementBlock as _createElementBlock, createVNode as _createVNode, createTextVNode as _createTextVNode, resolveDirective as _resolveDirective, withDirectives as _withDirectives } from \"vue\";\nconst _hoisted_1 = {\n class: \"cinema-slide__content other hide-scrollbar\"\n};\nconst _hoisted_2 = {\n key: 1,\n class: \"wrapper\"\n};\nconst _hoisted_3 = {\n key: 0,\n class: \"loading\"\n};\nconst _hoisted_4 = {\n key: 1,\n class: \"loading\"\n};\nimport { useDeviceStore } from '@remote/store/device';\nimport CinemaListItem from '@remote/components/cinema/CinemaListItem.vue';\nimport CinemaEmpty from '@remote/components/cinema/CinemaEmpty.vue';\nimport { IconLoading2 } from '@xunlei/thunder-icon-vue';\nimport { stat } from '@remote/utils/stat';\nimport { watch } from 'vue';\nexport default /*#__PURE__*/_defineComponent({\n __name: 'CinemaSlideOther',\n props: {\n isShowing: {\n type: Boolean,\n default: false\n }\n },\n setup(__props) {\n const props = __props;\n const deviceStore = useDeviceStore();\n watch(() => props.isShowing, () => {\n if (props.isShowing) {\n var _deviceStore$currentN, _deviceStore$currentN2;\n stat({\n action: 'cinema_channel_show',\n data: {\n if_content_blank: ((_deviceStore$currentN = deviceStore.currentNFOInstance) === null || _deviceStore$currentN === void 0 ? void 0 : _deviceStore$currentN.otherList.length) === 0 ? 1 : 0,\n page: 'other',\n status: (_deviceStore$currentN2 = deviceStore.currentNFOInstance) !== null && _deviceStore$currentN2 !== void 0 && _deviceStore$currentN2.isScraping ? 1 : 0\n }\n });\n }\n });\n return (_ctx, _cache) => {\n var _unref$currentNFOInst, _unref$currentNFOInst2, _unref$currentNFOInst3, _unref$currentNFOInst4, _unref$currentNFOInst5, _unref$currentNFOInst6, _unref2, _unref$currentNFOInst7;\n const _directive_observer = _resolveDirective(\"observer\");\n return _openBlock(), _createElementBlock(\"div\", _hoisted_1, [((_unref$currentNFOInst = _unref(deviceStore).currentNFOInstance) === null || _unref$currentNFOInst === void 0 ? void 0 : _unref$currentNFOInst.otherList.length) === 0 ? (_openBlock(), _createBlock(CinemaEmpty, {\n key: 0,\n \"has-list-init\": _unref(deviceStore).currentNFOInstance.hasOtherListInit\n }, null, 8, [\"has-list-init\"])) : (_openBlock(), _createElementBlock(\"div\", _hoisted_2, [(_openBlock(true), _createElementBlock(_Fragment, null, _renderList((_unref$currentNFOInst2 = _unref(deviceStore).currentNFOInstance) === null || _unref$currentNFOInst2 === void 0 ? void 0 : _unref$currentNFOInst2.otherList, item => {\n var _item$video_info;\n return _openBlock(), _createBlock(CinemaListItem, {\n key: (_item$video_info = item.video_info) === null || _item$video_info === void 0 ? void 0 : _item$video_info.file_id,\n nfo: item,\n \"click-from\": \"other\"\n }, null, 8, [\"nfo\"]);\n }), 128)), !((_unref$currentNFOInst3 = _unref(deviceStore).currentNFOInstance) !== null && _unref$currentNFOInst3 !== void 0 && _unref$currentNFOInst3.isOtherListEnd) && !((_unref$currentNFOInst4 = _unref(deviceStore).currentNFOInstance) !== null && _unref$currentNFOInst4 !== void 0 && _unref$currentNFOInst4.isScraping) ? _withDirectives((_openBlock(), _createElementBlock(\"div\", _hoisted_3, [_createVNode(_unref(IconLoading2), {\n width: \"16\",\n height: \"16\"\n }), _createTextVNode(\" 加载中... \")])), [[_directive_observer, {\n show: (_unref$currentNFOInst5 = _unref(deviceStore).currentNFOInstance) === null || _unref$currentNFOInst5 === void 0 ? void 0 : _unref$currentNFOInst5.loadOtherNFOList\n }]]) : _createCommentVNode(\"\", true), ((_unref$currentNFOInst6 = (_unref2 = _unref(deviceStore)) === null || _unref2 === void 0 || (_unref2 = _unref2.currentNFOInstance) === null || _unref2 === void 0 || (_unref2 = _unref2.otherList) === null || _unref2 === void 0 ? void 0 : _unref2.length) !== null && _unref$currentNFOInst6 !== void 0 ? _unref$currentNFOInst6 : 0) >= 30 && (_unref$currentNFOInst7 = _unref(deviceStore).currentNFOInstance) !== null && _unref$currentNFOInst7 !== void 0 && _unref$currentNFOInst7.isOtherListEnd ? (_openBlock(), _createElementBlock(\"div\", _hoisted_4, \" 没有更多了~ \")) : _createCommentVNode(\"\", true)]))]);\n };\n }\n});","/* unplugin-vue-components disabled */import script from \"./CinemaSlideOther.vue?vue&type=script&lang=ts&setup=true\"\nexport * from \"./CinemaSlideOther.vue?vue&type=script&lang=ts&setup=true\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { computed } from 'vue'\nimport { store } from '@remote/store'\nimport router from '@remote/router'\nimport { isAndroidNative as isAndroid, isIOSNative as isIOS } from '@xunlei/universal-native-api'\n\nexport const useGoHome = () => {\n\n const isApp = computed(() => {\n return store.state.isApp\n })\n\n const isMiniProgram = computed(() => {\n return store.state.isMiniProgram\n })\n\n const isNative = computed(() => {\n return (isAndroid || isIOS || isApp.value || isMiniProgram.value ) && self === top // self === top 为true说明不在iframe中\n })\n\n const goHome = () => {\n const routeName = String(router.currentRoute.value.name)\n if (!isNative.value) return\n if (!['home', 'login', 'me', 'plugin', 'cinema'].includes(routeName)) {\n // 这个分支我暂时没看懂,但是先不动它,怕出问题。\n router.back()\n } else {\n store.dispatch('close')\n }\n }\n\n return {\n isNative,\n goHome,\n }\n}","import \"core-js/modules/es.array.push.js\";\nimport { defineComponent as _defineComponent } from 'vue';\nimport { unref as _unref, openBlock as _openBlock, createBlock as _createBlock, createElementVNode as _createElementVNode, renderList as _renderList, Fragment as _Fragment, createElementBlock as _createElementBlock, toDisplayString as _toDisplayString, normalizeClass as _normalizeClass, createVNode as _createVNode, createTextVNode as _createTextVNode, vShow as _vShow, withDirectives as _withDirectives } from \"vue\";\nconst _hoisted_1 = {\n class: /*#__PURE__*/_normalizeClass({\n 'cinema__header': true,\n 'header-padding': true\n })\n};\nconst _hoisted_2 = {\n key: 0,\n class: \"cinema__header-single-row\"\n};\nconst _hoisted_3 = {\n class: \"cinema__header-tabs\"\n};\nconst _hoisted_4 = [\"onClick\"];\nconst _hoisted_5 = /*#__PURE__*/_createElementVNode(\"span\", {\n class: \"spot\"\n}, null, -1);\nconst _hoisted_6 = /*#__PURE__*/_createElementVNode(\"span\", {\n class: \"spot\"\n}, null, -1);\nconst _hoisted_7 = /*#__PURE__*/_createElementVNode(\"span\", {\n class: \"spot\"\n}, null, -1);\nconst _hoisted_8 = [_hoisted_5, _hoisted_6, _hoisted_7];\nconst _hoisted_9 = {\n class: \"cinema__header-double-row-1 bg-white\"\n};\nconst _hoisted_10 = {\n class: \"cinema__header-double-row-2\"\n};\nconst _hoisted_11 = {\n class: \"cinema__header-tabs\"\n};\nconst _hoisted_12 = [\"onClick\"];\nconst _hoisted_13 = /*#__PURE__*/_createElementVNode(\"span\", {\n class: \"spot\"\n}, null, -1);\nconst _hoisted_14 = /*#__PURE__*/_createElementVNode(\"span\", {\n class: \"spot\"\n}, null, -1);\nconst _hoisted_15 = /*#__PURE__*/_createElementVNode(\"span\", {\n class: \"spot\"\n}, null, -1);\nconst _hoisted_16 = /*#__PURE__*/_createElementVNode(\"p\", null, \"首页可添加文件夹了,快试试吧~\", -1);\nconst _hoisted_17 = [_hoisted_16];\nimport { onMounted, ref, watch } from 'vue';\nimport { openPopMenu, openPopCinemaSearch, openCinemaSourceSetting } from '@remote/utils/dialog';\nimport { IconHome, IconXunlei, IconSearch } from '@xunlei/thunder-icon-vue';\nimport { useGoHome } from '@remote/composable/home';\nimport { useDeviceStore } from '@remote/store/device';\nimport { store } from '@remote/store';\nimport { stat } from '@remote/utils/stat';\nimport router from '@remote/router';\nimport { useCinemaSearchStat } from '@shared/composable/cinema';\nexport default /*#__PURE__*/_defineComponent({\n __name: 'CinemaHeader',\n props: {\n slides: {\n type: Array,\n required: true\n },\n currentSlideIndex: {\n type: Number,\n default: 0\n },\n headerVersionWithoutSearch: {\n type: Boolean,\n default: false\n }\n },\n emits: ['update:currentSlideIndex'],\n setup(__props, {\n emit\n }) {\n const props = __props;\n const deviceStore = useDeviceStore();\n const {\n statSearchEntryClick\n } = useCinemaSearchStat(stat);\n const {\n goHome,\n isNative\n } = useGoHome();\n const isIndexFolderBubbleShow = ref(false);\n const selectTab = index => {\n var _deviceStore$currentN;\n stat({\n action: 'cinema_tab_click',\n data: {\n click_id: props.slides[index].stat\n }\n });\n (_deviceStore$currentN = deviceStore.currentNFOInstance) === null || _deviceStore$currentN === void 0 ? void 0 : _deviceStore$currentN.selectTab(props.slides[index].id);\n if (index === 0) {\n var _deviceStore$currentD, _deviceStore$currentN2;\n if ((_deviceStore$currentD = deviceStore.currentDeviceRef) !== null && _deviceStore$currentD !== void 0 && _deviceStore$currentD.indexShortCut.isCinemaIndexFolderEnabled) {\n var _deviceStore$currentD2, _deviceStore$currentD3;\n (_deviceStore$currentD2 = deviceStore.currentDeviceRef) === null || _deviceStore$currentD2 === void 0 ? void 0 : _deviceStore$currentD2.indexShortCut.refreshFolderList();\n (_deviceStore$currentD3 = deviceStore.currentDeviceRef) === null || _deviceStore$currentD3 === void 0 ? void 0 : _deviceStore$currentD3.indexShortCut.getIsCinemaIndexShow();\n }\n (_deviceStore$currentN2 = deviceStore.currentNFOInstance) === null || _deviceStore$currentN2 === void 0 ? void 0 : _deviceStore$currentN2.syncHasInitCinema();\n }\n emit('update:currentSlideIndex', index);\n };\n const createMenu = async () => {\n var _deviceStore$currentD4, _deviceStore$currentD5, _deviceStore$currentN3, _deviceStore$currentD6;\n const menu = ['刷新', '来源管理'];\n if ((_deviceStore$currentD4 = deviceStore.currentDeviceRef) !== null && _deviceStore$currentD4 !== void 0 && _deviceStore$currentD4.util.hasLabel('withVFS')) {\n menu.push('文件源');\n } else if ((_deviceStore$currentD5 = deviceStore.currentDeviceRef) !== null && _deviceStore$currentD5 !== void 0 && _deviceStore$currentD5.util.hasLabel('withSyncDriveFile')) {\n menu.push('本地文件');\n }\n if ((_deviceStore$currentN3 = deviceStore.currentNFOInstance) !== null && _deviceStore$currentN3 !== void 0 && _deviceStore$currentN3.hasInitCinema && (_deviceStore$currentD6 = deviceStore.currentDeviceRef) !== null && _deviceStore$currentD6 !== void 0 && _deviceStore$currentD6.indexShortCut.isCinemaIndexFolderEnabled) {\n menu.push('添加首页文件夹');\n const folderList = deviceStore.currentDeviceRef.indexShortCut.folderList;\n if (folderList && folderList.length > 0) {\n var _deviceStore$currentD7;\n menu.push((_deviceStore$currentD7 = deviceStore.currentDeviceRef) !== null && _deviceStore$currentD7 !== void 0 && _deviceStore$currentD7.indexShortCut.isCinemaIndexFolderShow ? '隐藏首页文件夹' : '显示首页文件夹');\n }\n }\n return menu;\n };\n const hideBubble = () => {\n if (isIndexFolderBubbleShow.value) {\n isIndexFolderBubbleShow.value = false;\n }\n };\n const unwatch = watch(() => {\n var _deviceStore$currentN4;\n return (_deviceStore$currentN4 = deviceStore.currentNFOInstance) === null || _deviceStore$currentN4 === void 0 ? void 0 : _deviceStore$currentN4.hasInitCinema;\n }, (val, oldVal) => {\n if (oldVal === false && val === true) {\n hideBubble();\n unwatch();\n }\n }, {\n immediate: true\n });\n const openMenu = async () => {\n var _deviceStore$currentN5, _deviceStore$currentD8, _deviceStore$currentD9, _deviceStore$currentD10, _deviceStore$currentD11, _deviceStore$currentD12;\n hideBubble();\n const menu = await createMenu();\n stat({\n action: 'more_option_show'\n });\n const result = await openPopMenu({\n options: menu\n });\n switch (result) {\n case '刷新':\n (_deviceStore$currentN5 = deviceStore.currentNFOInstance) === null || _deviceStore$currentN5 === void 0 ? void 0 : _deviceStore$currentN5.createScrapeTask('manual_btn_click');\n (_deviceStore$currentD8 = deviceStore.currentDeviceRef) === null || _deviceStore$currentD8 === void 0 ? void 0 : _deviceStore$currentD8.indexShortCut.refreshFolderList();\n (_deviceStore$currentD9 = deviceStore.currentDeviceRef) === null || _deviceStore$currentD9 === void 0 ? void 0 : _deviceStore$currentD9.indexShortCut.getIsCinemaIndexShow();\n store.commit('toast', '正在刷新,刷新完毕会自动更新列表');\n stat({\n action: 'cinema_tab_click',\n data: {\n click_id: 'refresh'\n }\n });\n break;\n case '来源管理':\n openCinemaSourceSetting({\n from: 'source_setting'\n });\n stat({\n action: 'cinema_tab_click',\n data: {\n click_id: 'source_setting'\n }\n });\n break;\n case '本地文件':\n router.push({\n path: '/local-files/',\n query: router.currentRoute.value.query\n });\n stat({\n action: 'cinema_tab_click',\n data: {\n click_id: 'local_file'\n }\n });\n break;\n case '文件源':\n router.push({\n path: '/sources/',\n query: router.currentRoute.value.query\n });\n stat({\n action: 'cinema_tab_click',\n data: {\n click_id: 'file_source'\n }\n });\n break;\n case '添加首页文件夹':\n stat({\n action: 'cinema_tab_click',\n data: {\n click_id: 'main_page_file_add'\n }\n });\n (_deviceStore$currentD10 = deviceStore.currentDeviceRef) === null || _deviceStore$currentD10 === void 0 ? void 0 : _deviceStore$currentD10.indexShortCut.add();\n break;\n case '显示首页文件夹':\n stat({\n action: 'cinema_tab_click',\n data: {\n click_id: 'main_page_file_show'\n }\n });\n (_deviceStore$currentD11 = deviceStore.currentDeviceRef) === null || _deviceStore$currentD11 === void 0 ? void 0 : _deviceStore$currentD11.indexShortCut.toggleCinemaIndexShow();\n break;\n case '隐藏首页文件夹':\n stat({\n action: 'cinema_tab_click',\n data: {\n click_id: 'main_page_file_hide'\n }\n });\n (_deviceStore$currentD12 = deviceStore.currentDeviceRef) === null || _deviceStore$currentD12 === void 0 ? void 0 : _deviceStore$currentD12.indexShortCut.toggleCinemaIndexShow();\n break;\n }\n };\n const onSearchClick = () => {\n openPopCinemaSearch({});\n statSearchEntryClick();\n };\n onMounted(async () => {\n var _deviceStore$currentD13;\n if ((_deviceStore$currentD13 = deviceStore.currentDeviceRef) !== null && _deviceStore$currentD13 !== void 0 && _deviceStore$currentD13.indexShortCut.isCinemaIndexFolderEnabled) {\n var _deviceStore$currentD14, _deviceStore$currentD15, _deviceStore$currentD16, _deviceStore$currentD17;\n (_deviceStore$currentD14 = deviceStore.currentDeviceRef) === null || _deviceStore$currentD14 === void 0 ? void 0 : _deviceStore$currentD14.indexShortCut.initMenu();\n const uid = (_deviceStore$currentD15 = (_deviceStore$currentD16 = deviceStore.currentDeviceRef.deviceInfoRef.user) === null || _deviceStore$currentD16 === void 0 ? void 0 : _deviceStore$currentD16.id) !== null && _deviceStore$currentD15 !== void 0 ? _deviceStore$currentD15 : '';\n const canShow = await ((_deviceStore$currentD17 = deviceStore.currentDeviceRef) === null || _deviceStore$currentD17 === void 0 ? void 0 : _deviceStore$currentD17.dialogManager.canDialogShow({\n uid,\n dialogID: 'INDEX_FOLDER_BUBBLE'\n }));\n if (canShow) {\n var _deviceStore$currentD18;\n isIndexFolderBubbleShow.value = true;\n stat({\n action: 'local_main_page_file_pop_show'\n });\n (_deviceStore$currentD18 = deviceStore.currentDeviceRef) === null || _deviceStore$currentD18 === void 0 ? void 0 : _deviceStore$currentD18.dialogManager.dialogShow({\n uid,\n dialogID: 'INDEX_FOLDER_BUBBLE'\n });\n }\n }\n });\n return (_ctx, _cache) => {\n var _unref$currentNFOInst, _unref$currentNFOInst2;\n return _openBlock(), _createElementBlock(\"header\", _hoisted_1, [__props.headerVersionWithoutSearch ? (_openBlock(), _createElementBlock(\"div\", _hoisted_2, [_createElementVNode(\"button\", {\n class: \"cinema__header-home\",\n onClick: _cache[0] || (_cache[0] =\n //@ts-ignore\n (...args) => _unref(goHome) && _unref(goHome)(...args))\n }, [_unref(isNative) ? (_openBlock(), _createBlock(_unref(IconHome), {\n key: 0,\n width: \"36\",\n height: \"36\"\n })) : (_openBlock(), _createBlock(_unref(IconXunlei), {\n key: 1,\n width: \"24\",\n height: \"24\"\n }))]), _createElementVNode(\"div\", _hoisted_3, [(_openBlock(true), _createElementBlock(_Fragment, null, _renderList(__props.slides, (slide, index) => {\n return _openBlock(), _createElementBlock(\"span\", {\n class: _normalizeClass({\n 'tab': true,\n 'is-active': index === __props.currentSlideIndex\n }),\n key: slide.title,\n onClick: $event => selectTab(index)\n }, _toDisplayString(slide.title), 11, _hoisted_4);\n }), 128))]), _createElementVNode(\"div\", {\n class: _normalizeClass({\n 'cinema__header-more': true,\n 'is-animate': (_unref$currentNFOInst = _unref(deviceStore).currentNFOInstance) === null || _unref$currentNFOInst === void 0 ? void 0 : _unref$currentNFOInst.isScraping\n }),\n onClick: openMenu\n }, _hoisted_8, 2)])) : (_openBlock(), _createElementBlock(_Fragment, {\n key: 1\n }, [_createElementVNode(\"div\", _hoisted_9, [_createElementVNode(\"button\", {\n class: \"cinema__header-home\",\n onClick: _cache[1] || (_cache[1] =\n //@ts-ignore\n (...args) => _unref(goHome) && _unref(goHome)(...args))\n }, [_unref(isNative) ? (_openBlock(), _createBlock(_unref(IconHome), {\n key: 0,\n width: \"36\",\n height: \"36\"\n })) : (_openBlock(), _createBlock(_unref(IconXunlei), {\n key: 1,\n width: \"24\",\n height: \"24\"\n }))]), _createElementVNode(\"div\", {\n class: \"cinema__header-search\",\n onClick: onSearchClick\n }, [_createVNode(_unref(IconSearch), {\n width: \"16px\",\n height: \"16px\"\n }), _createTextVNode(\" 输入影片名称 \")])]), _createElementVNode(\"div\", _hoisted_10, [_createElementVNode(\"div\", _hoisted_11, [(_openBlock(true), _createElementBlock(_Fragment, null, _renderList(__props.slides, (slide, index) => {\n return _openBlock(), _createElementBlock(\"span\", {\n class: _normalizeClass({\n 'tab': true,\n 'is-active': index === __props.currentSlideIndex\n }),\n key: slide.title,\n onClick: $event => selectTab(index)\n }, _toDisplayString(slide.title), 11, _hoisted_12);\n }), 128))]), _createElementVNode(\"div\", {\n class: _normalizeClass({\n 'cinema__header-more': true,\n 'is-animate': (_unref$currentNFOInst2 = _unref(deviceStore).currentNFOInstance) === null || _unref$currentNFOInst2 === void 0 ? void 0 : _unref$currentNFOInst2.isScraping\n }),\n onClick: openMenu\n }, [_hoisted_13, _hoisted_14, _hoisted_15, _withDirectives(_createElementVNode(\"div\", {\n class: \"index-folder-bubble\",\n onClick: hideBubble\n }, _hoisted_17, 512), [[_vShow, isIndexFolderBubbleShow.value]])], 2)])], 64))]);\n };\n }\n});","/* unplugin-vue-components disabled */import script from \"./CinemaHeader.vue?vue&type=script&lang=ts&setup=true\"\nexport * from \"./CinemaHeader.vue?vue&type=script&lang=ts&setup=true\"\n\nimport \"./CinemaHeader.vue?vue&type=style&index=0&id=31ff0ff4&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue';\nimport { unref as _unref, createVNode as _createVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, renderList as _renderList, Fragment as _Fragment, resolveDynamicComponent as _resolveDynamicComponent, normalizeStyle as _normalizeStyle, normalizeClass as _normalizeClass } from \"vue\";\nconst _hoisted_1 = {\n key: 0,\n class: \"cinema__slides-wrapper single\"\n};\nimport { useDeviceStore } from '@remote/store/device';\n// import { Swiper, SwiperSlide } from 'swiper/vue/swiper-vue'\nimport CinemaSlideIndex from '@remote/components/cinema/CinemaSlideIndex.vue';\nimport CinemaSlideMovie from '@remote/components/cinema/CinemaSlideMovie.vue';\nimport CinemaSlideTVSeries from '@remote/components/cinema/CinemaSlideTVSeries.vue';\nimport CinemaSlideOther from '@remote/components/cinema/CinemaSlideOther.vue';\nimport CinemaHeader from '@remote/components/cinema/CinemaHeader.vue';\nimport 'swiper/swiper.min.css';\nimport { ref, onMounted, watch, computed } from 'vue';\nimport { openCinemaTutorial, openDialogScrapeHint, openPopFileSourceAliDrive } from '@remote/utils/dialog';\nimport { getNFODirs } from '@remote/api/nfo';\nimport { stat } from '@remote/utils/stat';\nimport Fail from '@remote/components/Fail.vue';\nimport { store } from '@remote/store';\nimport { isAndroidNative } from '@xunlei/universal-native-api';\nexport default /*#__PURE__*/_defineComponent({\n __name: 'index',\n setup(__props) {\n const deviceStore = useDeviceStore();\n const slides = [{\n id: 'INDEX',\n title: '首页',\n component: CinemaSlideIndex,\n stat: 'home'\n }, {\n id: 'MOVIE',\n title: '电影',\n component: CinemaSlideMovie,\n stat: 'movie'\n }, {\n id: 'TV_SERIES',\n title: '电视剧',\n component: CinemaSlideTVSeries,\n stat: 'tele'\n }, {\n id: 'OTHER',\n title: '其他',\n component: CinemaSlideOther,\n stat: 'other'\n }];\n const currentSlideIndex = ref(0);\n const headerRef = ref(null);\n // const headerVersionWithoutSearch = ref(false)\n const headerVersionWithoutSearch = computed(() => {\n var _deviceStore$currentD;\n return !((_deviceStore$currentD = deviceStore.currentDeviceRef) !== null && _deviceStore$currentD !== void 0 && _deviceStore$currentD.util.hasLabel('withNFOSearch'));\n });\n const isOffline = computed(() => {\n var _deviceStore$currentD2;\n return ((_deviceStore$currentD2 = deviceStore.currentDeviceRef) === null || _deviceStore$currentD2 === void 0 ? void 0 : _deviceStore$currentD2.runnerTaskRef.phase) !== 'PHASE_TYPE_RUNNING';\n });\n const target = computed(() => {\n var _store$state$deviceIn;\n return (_store$state$deviceIn = store.state.deviceInfoWatchData) === null || _store$state$deviceIn === void 0 ? void 0 : _store$state$deviceIn.target;\n });\n watch(target, async (val, oldVal) => {\n if (val && oldVal) {\n var _deviceStore$currentN, _deviceStore$currentN2;\n (_deviceStore$currentN = deviceStore.currentNFOInstance) === null || _deviceStore$currentN === void 0 ? void 0 : _deviceStore$currentN.refreshAllList();\n (_deviceStore$currentN2 = deviceStore.currentNFOInstance) === null || _deviceStore$currentN2 === void 0 ? void 0 : _deviceStore$currentN2.refreshPlayRecord();\n }\n });\n const checkDialogScrapeHintShow = async () => {\n var _deviceStore$currentN3, _deviceStore$currentN4;\n const hasInitCinema = (_deviceStore$currentN3 = deviceStore.currentNFOInstance) === null || _deviceStore$currentN3 === void 0 ? void 0 : _deviceStore$currentN3.hasInitCinema;\n const hasInitLocalState = (_deviceStore$currentN4 = deviceStore.currentNFOInstance) === null || _deviceStore$currentN4 === void 0 ? void 0 : _deviceStore$currentN4.hasInitLocalState;\n if (hasInitLocalState && !hasInitCinema) {\n var _deviceStore$currentD3;\n if (!((_deviceStore$currentD3 = deviceStore.currentDeviceRef) !== null && _deviceStore$currentD3 !== void 0 && _deviceStore$currentD3.util.isVersionSmallerThan('3.20.0'))) {\n var _deviceStore$currentD4, _deviceStore$currentD5, _deviceStore$currentD6;\n const uid = (_deviceStore$currentD4 = (_deviceStore$currentD5 = deviceStore.currentDeviceRef) === null || _deviceStore$currentD5 === void 0 || (_deviceStore$currentD5 = _deviceStore$currentD5.deviceInfoRef.user) === null || _deviceStore$currentD5 === void 0 ? void 0 : _deviceStore$currentD5.id) !== null && _deviceStore$currentD4 !== void 0 ? _deviceStore$currentD4 : '';\n const canShow = await ((_deviceStore$currentD6 = deviceStore.currentDeviceRef) === null || _deviceStore$currentD6 === void 0 ? void 0 : _deviceStore$currentD6.dialogManager.canDialogShow({\n uid,\n dialogID: 'SCRAPE_HINT'\n }));\n if (canShow) {\n var _deviceStore$currentD7;\n (_deviceStore$currentD7 = deviceStore.currentDeviceRef) === null || _deviceStore$currentD7 === void 0 ? void 0 : _deviceStore$currentD7.dialogManager.dialogShow({\n uid,\n dialogID: 'SCRAPE_HINT'\n });\n openDialogScrapeHint({\n theme: 'dark',\n scene: 'local'\n });\n }\n }\n }\n };\n const unwatch = watch(() => {\n var _deviceStore$currentN5, _deviceStore$currentN6;\n return ((_deviceStore$currentN5 = deviceStore.currentNFOInstance) === null || _deviceStore$currentN5 === void 0 ? void 0 : _deviceStore$currentN5.movieList.length) && ((_deviceStore$currentN6 = deviceStore.currentNFOInstance) === null || _deviceStore$currentN6 === void 0 ? void 0 : _deviceStore$currentN6.tvList.length);\n }, async val => {\n var _deviceStore$currentD8;\n if ((_deviceStore$currentD8 = deviceStore.currentDeviceRef) !== null && _deviceStore$currentD8 !== void 0 && _deviceStore$currentD8.util.isVersionSmallerThan('3.9.0')) {\n return;\n }\n if (val) {\n var _store$state$user, _deviceStore$currentD9;\n const userID = (_store$state$user = store.state.user) === null || _store$state$user === void 0 ? void 0 : _store$state$user.userID;\n setTimeout(() => {\n unwatch();\n }, 0);\n const res = await ((_deviceStore$currentD9 = deviceStore.currentDeviceRef) === null || _deviceStore$currentD9 === void 0 ? void 0 : _deviceStore$currentD9.storage.getItem(`${userID}#cinemaTutorial`));\n if (!res) {\n var _deviceStore$currentD10;\n openCinemaTutorial({});\n (_deviceStore$currentD10 = deviceStore.currentDeviceRef) === null || _deviceStore$currentD10 === void 0 ? void 0 : _deviceStore$currentD10.storage.setItem(`${userID}#cinemaTutorial`, 'shown');\n }\n }\n }, {\n immediate: true\n });\n const handleAliDriveAuthCallback = async () => {\n var _deviceStore$currentD11;\n const aliDriveAuthCode = (_deviceStore$currentD11 = deviceStore.currentDeviceRef) === null || _deviceStore$currentD11 === void 0 ? void 0 : _deviceStore$currentD11.fs.aliDriveAuthCode;\n if (aliDriveAuthCode && deviceStore.currentDeviceRef) {\n var _deviceStore$currentD12, _deviceStore$currentD13;\n await ((_deviceStore$currentD12 = deviceStore.currentDeviceRef) === null || _deviceStore$currentD12 === void 0 ? void 0 : _deviceStore$currentD12.fs.getAvailableFSType());\n console.log('即将处理阿里云授权流程', aliDriveAuthCode);\n deviceStore.currentDeviceRef.fs.aliDriveAuthCode = ''; // reset 防重入\n openPopFileSourceAliDrive({\n authCode: aliDriveAuthCode,\n config: {},\n template: (_deviceStore$currentD13 = deviceStore.currentDeviceRef) === null || _deviceStore$currentD13 === void 0 ? void 0 : _deviceStore$currentD13.fs.availableFS.find(i => i.type === 'alidrive')\n });\n }\n };\n onMounted(async () => {\n var _deviceStore$currentD14, _deviceStore$currentN7, _deviceStore$currentN8;\n document.title = '个人片库';\n await deviceStore.untilDeviceReady();\n await ((_deviceStore$currentD14 = deviceStore.currentDeviceRef) === null || _deviceStore$currentD14 === void 0 ? void 0 : _deviceStore$currentD14.untilWatchReady()), (_deviceStore$currentN7 = deviceStore.currentNFOInstance) === null || _deviceStore$currentN7 === void 0 ? void 0 : _deviceStore$currentN7.refreshAllList();\n (_deviceStore$currentN8 = deviceStore.currentNFOInstance) === null || _deviceStore$currentN8 === void 0 ? void 0 : _deviceStore$currentN8.refreshPlayRecord();\n const result = await getNFODirs({\n preset: false\n });\n let hasInit = false;\n if (Array.isArray(result.dirs) && result.dirs.length > 0) {\n hasInit = true;\n }\n stat({\n action: 'cinema_channel_enter',\n data: {\n if_scraper_initial: hasInit ? 1 : 0\n }\n });\n // 处理阿里云认证完成后的回调\n handleAliDriveAuthCallback();\n checkDialogScrapeHintShow();\n });\n return (_ctx, _cache) => {\n return _openBlock(), _createElementBlock(\"div\", {\n class: _normalizeClass({\n 'cinema__content': true,\n 'is-dark': true,\n 'without-nfo-search': headerVersionWithoutSearch.value,\n 'is-android-sl': _unref(isAndroidNative)\n })\n }, [_createVNode(CinemaHeader, {\n ref_key: \"headerRef\",\n ref: headerRef,\n slides: slides,\n \"header-version-without-search\": headerVersionWithoutSearch.value,\n currentSlideIndex: currentSlideIndex.value,\n \"onUpdate:currentSlideIndex\": _cache[0] || (_cache[0] = $event => currentSlideIndex.value = $event)\n }, null, 8, [\"header-version-without-search\", \"currentSlideIndex\"]), isOffline.value ? (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [_createVNode(Fail)])) : (_openBlock(), _createElementBlock(\"div\", {\n key: 1,\n class: \"cinema__slides-wrapper\",\n style: _normalizeStyle({\n 'transform': `translateX(calc(-${currentSlideIndex.value} * 25%))`\n })\n }, [(_openBlock(), _createElementBlock(_Fragment, null, _renderList(slides, (item, index) => {\n return _createVNode(_resolveDynamicComponent(item.component), {\n key: index,\n \"is-showing\": currentSlideIndex.value === index\n }, null, 8, [\"is-showing\"]);\n }), 64))], 4))], 2);\n };\n }\n});","/* unplugin-vue-components disabled */import script from \"./index.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./index.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./index.vue?vue&type=style&index=0&id=a3645108&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","/* unplugin-vue-components disabled */export * from \"-!../../../../../node_modules/.pnpm/unplugin@1.4.0/node_modules/unplugin/dist/webpack/loaders/transform.js?unpluginName=unplugin-vue-components!../../../../../node_modules/.pnpm/mini-css-extract-plugin@0.9.0_webpack@4.46.0/node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/.pnpm/css-loader@3.6.0_webpack@4.46.0/node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.3.4_vue@3.3.4_webpack@4.46.0/node_modules/vue-loader/dist/stylePostLoader.js!../../../../../node_modules/.pnpm/postcss-loader@3.0.0/node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/.pnpm/sass-loader@8.0.2_sass@1.65.1/node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/.pnpm/cache-loader@4.1.0_webpack@4.46.0/node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.3.4_vue@3.3.4_webpack@4.46.0/node_modules/vue-loader/dist/index.js??ref--1-1!./CinemaRecentPlay.vue?vue&type=style&index=0&id=9273951e&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!./CinemaRecentPlayItem.vue?vue&type=style&index=0&id=619a7606&lang=scss\"","let urlAlphabet =\n 'useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict'\nexport { urlAlphabet }\n","import { urlAlphabet } from './url-alphabet/index.js'\nlet random = bytes => crypto.getRandomValues(new Uint8Array(bytes))\nlet customRandom = (alphabet, defaultSize, getRandom) => {\n let mask = (2 << (Math.log(alphabet.length - 1) / Math.LN2)) - 1\n let step = -~((1.6 * mask * defaultSize) / alphabet.length)\n return (size = defaultSize) => {\n let id = ''\n while (true) {\n let bytes = getRandom(step)\n let j = step\n while (j--) {\n id += alphabet[bytes[j] & mask] || ''\n if (id.length === size) return id\n }\n }\n }\n}\nlet customAlphabet = (alphabet, size = 21) =>\n customRandom(alphabet, size, random)\nlet nanoid = (size = 21) =>\n crypto.getRandomValues(new Uint8Array(size)).reduce((id, byte) => {\n byte &= 63\n if (byte < 36) {\n id += byte.toString(36)\n } else if (byte < 62) {\n id += (byte - 26).toString(36).toUpperCase()\n } else if (byte > 62) {\n id += '-'\n } else {\n id += '_'\n }\n return id\n }, '')\nexport { nanoid, customAlphabet, customRandom, urlAlphabet, random }\n","import { store } from '@remote/store'\nimport axios from 'axios'\nimport { nanoid } from 'nanoid'\nimport pkg from '../../package.json'\nimport { xbaseConfig } from '@remote/api/config'\nimport { reactive, ref } from 'vue'\nimport { useEnvStore } from '@remote/store/env'\nimport global from '@remote/store/constantStore'\n\n/**\n * 全局单例\n */\nexport class FlowHub {\n availableSlotParams = {\n POSITION_CINEMA_EMPTY: {\n // 后需更改为md5值,保证长度的一致性\n id: `${nanoid()}`,\n slots: [\n {\n id: 'nas_remote_personalmovie_middle_banner',\n accept_source: ['native'],\n accept_landing_type: ['LANDING_CALL_APP'],\n accept_style: [\n 'image_above_text_below',\n ],\n accept_event: ['EVENT_IMPRESSION', 'EVENT_CLICK'],\n },\n ],\n },\n }\n\n // TODO: type\n slotResult = ref>({})\n\n hosts = ['https://api-shoulei-ssl.xunlei.com', 'https://test-api-shoulei-ssl.xunlei.com']\n \n host = this.hosts[0]\n\n async getFlowHubSlots (slot: (keyof FlowHub['availableSlotParams'])) {\n const envStore = useEnvStore()\n const result = await axios.post(`${this.host}/flowhub/v1/slots:batchGet`, {\n ...this.availableSlotParams[slot],\n }, {\n headers: {\n // 'user-id': store.state.user?.userID ?? '',\n 'x-client-id': xbaseConfig.clientId,\n 'x-peer-id': store.state.curDeviceRunner.target,\n 'x-device-id': global.deviceID,\n },\n })\n if (result.data) {\n this.slotResult.value[slot] = reactive(result.data)\n }\n }\n\n async reportFlowHub (url: string, params?: Record) {\n // 测试环境兼容\n if (location.href.startsWith('https') && url.startsWith('http://test.api-shoulei-ssl.xunlei.com')) {\n url = url.replace('http://test.api-shoulei-ssl.xunlei.com', 'https://test-api-shoulei-ssl.xunlei.com')\n }\n axios.get(url, {\n headers: {\n // 'user-id': store.state.user?.userID ?? '',\n 'x-client-id': xbaseConfig.clientId,\n 'x-peer-id': store.state.curDeviceRunner.target,\n 'x-device-id': global.deviceID,\n },\n params,\n }).catch()\n }\n}\n\nexport const flowHubInstance = new FlowHub()","/* 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!./CinemaFolderShortcut.vue?vue&type=style&index=0&id=3b356fc6&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!./CinemaEmpty.vue?vue&type=style&index=0&id=0a2eb77e&lang=scss\"","module.exports = __webpack_public_path__ + \"img/empty-box.png\";"],"sourceRoot":""}