@robot-admin/naive-ui-components 0.9.1 → 0.9.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/C_ActionBar-BAcfOfRw.css.map +1 -0
- package/dist/C_ActionBar-DG2HW7t5.css.map +1 -0
- package/dist/C_ActionBar.css +47 -47
- package/dist/C_ActionBar.js.map +1 -1
- package/dist/C_ActionBar2.js +1 -1
- package/dist/C_ActionBar2.js.map +1 -1
- package/dist/{C_AntV-BY8jqqmi.css.map → C_AntV-D_jTK8oZ.css.map} +1 -1
- package/dist/{C_AntV-BbkHc-_a.css.map → C_AntV-DanTAq22.css.map} +1 -1
- package/dist/C_AntV.css +79 -79
- package/dist/C_AntV.js.map +1 -1
- package/dist/C_AntV2.js +3 -3
- package/dist/C_AntV2.js.map +1 -1
- package/dist/{C_AudioPlayer-DKRIGhi7.css.map → C_AudioPlayer-BnYIJXPD.css.map} +1 -1
- package/dist/{C_AudioPlayer-DlB6eNsa.css.map → C_AudioPlayer-ldTy9Y34.css.map} +1 -1
- package/dist/C_AudioPlayer.css +47 -47
- package/dist/C_AudioPlayer.js.map +1 -1
- package/dist/C_AudioPlayer2.js +1 -1
- package/dist/C_AudioPlayer2.js.map +1 -1
- package/dist/{C_AvatarGroup-D02zci-i.css.map → C_AvatarGroup-B9d-GJ9c.css.map} +1 -1
- package/dist/{C_AvatarGroup-DatHaUlY.css.map → C_AvatarGroup-SIzxuuZr.css.map} +1 -1
- package/dist/C_AvatarGroup.css +21 -21
- package/dist/C_AvatarGroup.js.map +1 -1
- package/dist/C_AvatarGroup2.js +1 -1
- package/dist/C_AvatarGroup2.js.map +1 -1
- package/dist/{C_Barcode-DYDRDe2O.css.map → C_Barcode-CAU2mFcx.css.map} +1 -1
- package/dist/{C_Barcode-muJdc_O4.css.map → C_Barcode-D2oJaEg3.css.map} +1 -1
- package/dist/C_Barcode.css +7 -7
- package/dist/C_Barcode.js.map +1 -1
- package/dist/C_Barcode2.js +1 -1
- package/dist/C_Barcode2.js.map +1 -1
- package/dist/C_Breadcrumb.js.map +1 -1
- package/dist/C_Breadcrumb2.js +1 -1
- package/dist/C_Breadcrumb2.js.map +1 -1
- package/dist/{C_Captcha-9_hk6VmY.css.map → C_Captcha-B3yrtG7t.css.map} +1 -1
- package/dist/{C_Captcha-MtASlJ0f.css.map → C_Captcha-D4hDdWDu.css.map} +1 -1
- package/dist/C_Captcha.css +19 -19
- package/dist/C_Captcha.js.map +1 -1
- package/dist/C_Captcha2.js +1 -1
- package/dist/C_Captcha2.js.map +1 -1
- package/dist/C_Cascade-BE7t1OX5.css.map +1 -0
- package/dist/C_Cascade-CpDiau1y.css.map +1 -0
- package/dist/C_Cascade.css +3 -3
- package/dist/C_Cascade.js.map +1 -1
- package/dist/C_Cascade2.js +1 -1
- package/dist/C_Cascade2.js.map +1 -1
- package/dist/{C_Chat-Csjz_BFw.css.map → C_Chat-CF1SU7mc.css.map} +1 -1
- package/dist/{C_Chat-DO1ZBA_0.css.map → C_Chat-DeUv6uuI.css.map} +1 -1
- package/dist/C_Chat.css +65 -65
- package/dist/C_Chat.js.map +1 -1
- package/dist/C_Chat2.js +1 -1
- package/dist/C_Chat2.js.map +1 -1
- package/dist/{C_City-Bam08Qv3.css.map → C_City-DdkX6u64.css.map} +1 -1
- package/dist/{C_City-Bb3W-KaN.css.map → C_City-iP-dIvui.css.map} +1 -1
- package/dist/C_City.css +29 -29
- package/dist/C_City.js.map +1 -1
- package/dist/C_City2.js +1 -1
- package/dist/C_City2.js.map +1 -1
- package/dist/C_Code-BWmJMNS7.css.map +1 -0
- package/dist/C_Code-k14vjgVl.css.map +1 -0
- package/dist/C_Code.css +3 -3
- package/dist/C_Code.js.map +1 -1
- package/dist/C_Code2.js +1 -1
- package/dist/C_Code2.js.map +1 -1
- package/dist/{C_CollapsePanel-CWkFCqNQ.css.map → C_CollapsePanel-BSKcWSmY.css.map} +1 -1
- package/dist/{C_CollapsePanel-pcVJA_4z.css.map → C_CollapsePanel-DRvRq8tB.css.map} +1 -1
- package/dist/C_CollapsePanel.css +35 -35
- package/dist/C_CollapsePanel.js.map +1 -1
- package/dist/C_CollapsePanel2.js +1 -1
- package/dist/C_CollapsePanel2.js.map +1 -1
- package/dist/{C_ContextMenu-B3Cgz_wJ.css.map → C_ContextMenu-Bn_uhJSo.css.map} +1 -1
- package/dist/{C_ContextMenu-u1LixF3_.css.map → C_ContextMenu-C9iuxG2n.css.map} +1 -1
- package/dist/C_ContextMenu.css +17 -17
- package/dist/C_ContextMenu.js.map +1 -1
- package/dist/C_ContextMenu2.js +1 -1
- package/dist/C_ContextMenu2.js.map +1 -1
- package/dist/{C_Cron-Civir5-I.css.map → C_Cron-BIQ2By9v.css.map} +1 -1
- package/dist/{C_Cron-iw3qpMsy.css.map → C_Cron-BNSAGD6A.css.map} +1 -1
- package/dist/C_Cron.css +57 -57
- package/dist/C_Cron.js.map +1 -1
- package/dist/C_Cron2.js +1 -1
- package/dist/C_Cron2.js.map +1 -1
- package/dist/C_Date.js.map +1 -1
- package/dist/C_Date2.js +1 -1
- package/dist/C_Date2.js.map +1 -1
- package/dist/{C_Draggable-BCjIvIwT.css.map → C_Draggable-BDAbk4s5.css.map} +1 -1
- package/dist/{C_Draggable-DwkSlCOS.css.map → C_Draggable-UhfDLXop.css.map} +1 -1
- package/dist/C_Draggable.css +46 -46
- package/dist/C_Draggable.js.map +1 -1
- package/dist/C_Draggable2.js +1 -1
- package/dist/C_Draggable2.js.map +1 -1
- package/dist/{C_Editor-BfjjYQ9B.css.map → C_Editor-CZOaChru.css.map} +1 -1
- package/dist/{C_Editor-Do2StvoJ.css.map → C_Editor-kJAQq5z6.css.map} +1 -1
- package/dist/C_Editor.css +14 -14
- package/dist/C_Editor.js.map +1 -1
- package/dist/C_Editor2.js +1 -1
- package/dist/C_Editor2.js.map +1 -1
- package/dist/{C_FilePreview-BhcbiXsV.css.map → C_FilePreview-Bs_omgJS.css.map} +1 -1
- package/dist/{C_FilePreview-DJudcIbW.css.map → C_FilePreview-DbwoyF2j.css.map} +1 -1
- package/dist/C_FilePreview.css +91 -91
- package/dist/C_FilePreview.js.map +1 -1
- package/dist/C_FilePreview2.js +1 -1
- package/dist/C_FilePreview2.js.map +1 -1
- package/dist/{C_Form-BtcAPIRi.css.map → C_Form-SCq-DZaZ.css.map} +1 -1
- package/dist/{C_Form-D_gwQ7hC.css.map → C_Form-mcd1nKvF.css.map} +1 -1
- package/dist/C_Form.css +223 -223
- package/dist/C_Form.js.map +1 -1
- package/dist/C_Form2.js +1 -1
- package/dist/C_Form2.js.map +1 -1
- package/dist/{C_FormSearch-Bi4XYjjk.css.map → C_FormSearch-C3F8peAY.css.map} +1 -1
- package/dist/{C_FormSearch-DUGOoX0u.css.map → C_FormSearch-qW56bJPo.css.map} +1 -1
- package/dist/C_FormSearch.css +45 -45
- package/dist/C_FormSearch.js.map +1 -1
- package/dist/C_FormSearch2.js +1 -1
- package/dist/C_FormSearch2.js.map +1 -1
- package/dist/{C_FormulaEditor-CJk3SSUJ.css.map → C_FormulaEditor-ChOvDbsZ.css.map} +1 -1
- package/dist/{C_FormulaEditor-Cy7mjfVO.css.map → C_FormulaEditor-mfiIUDY4.css.map} +1 -1
- package/dist/C_FormulaEditor.css +78 -78
- package/dist/C_FormulaEditor.js.map +1 -1
- package/dist/C_FormulaEditor2.js +1 -1
- package/dist/C_FormulaEditor2.js.map +1 -1
- package/dist/C_FullCalendar-C2nsqrgS.css.map +1 -0
- package/dist/C_FullCalendar-DdFtXVhy.css.map +1 -0
- package/dist/C_FullCalendar.css +2 -2
- package/dist/C_FullCalendar.js.map +1 -1
- package/dist/C_FullCalendar2.js +1 -1
- package/dist/C_FullCalendar2.js.map +1 -1
- package/dist/{C_GlobalSearch-B6wK3m3k.css.map → C_GlobalSearch-Dq4Wo01K.css.map} +1 -1
- package/dist/{C_GlobalSearch-DoPjldFm.css.map → C_GlobalSearch-RB7J43gu.css.map} +1 -1
- package/dist/C_GlobalSearch.css +112 -112
- package/dist/C_GlobalSearch.js.map +1 -1
- package/dist/C_GlobalSearch2.js +1 -1
- package/dist/C_GlobalSearch2.js.map +1 -1
- package/dist/C_Guide.js.map +1 -1
- package/dist/C_Guide2.js +1 -1
- package/dist/C_Guide2.js.map +1 -1
- package/dist/C_Icon.js.map +1 -1
- package/dist/C_Icon2.js.map +1 -1
- package/dist/{C_ImageCropper-BqZpkZfU.css.map → C_ImageCropper-CdTX2nxU.css.map} +1 -1
- package/dist/{C_ImageCropper-CylwGuzS.css.map → C_ImageCropper-ilOqPklJ.css.map} +1 -1
- package/dist/C_ImageCropper.css +23 -23
- package/dist/C_ImageCropper.js.map +1 -1
- package/dist/C_ImageCropper2.js +1 -1
- package/dist/C_ImageCropper2.js.map +1 -1
- package/dist/C_Language.js.map +1 -1
- package/dist/C_Language2.js +1 -1
- package/dist/C_Language2.js.map +1 -1
- package/dist/{C_Login-BkdnkBKX.css.map → C_Login-B3qYkLrN.css.map} +1 -1
- package/dist/{C_Login-VkMM6OJ2.css.map → C_Login-xMI1_ojE.css.map} +1 -1
- package/dist/C_Login.css +72 -72
- package/dist/C_Login.js.map +1 -1
- package/dist/C_Login2.js +1 -1
- package/dist/C_Login2.js.map +1 -1
- package/dist/{C_Map-DNnBcY70.css.map → C_Map-CWMMN58_.css.map} +1 -1
- package/dist/{C_Map-LEXIx6zM.css.map → C_Map-xSR2H-9o.css.map} +1 -1
- package/dist/C_Map.css +4 -4
- package/dist/C_Map.js.map +1 -1
- package/dist/C_Map2.js +1 -1
- package/dist/C_Map2.js.map +1 -1
- package/dist/{C_Markdown-DwmI0_0Q.css.map → C_Markdown-C7lTVJ1S.css.map} +1 -1
- package/dist/{C_Markdown-k0794RW0.css.map → C_Markdown-CZDm_baQ.css.map} +1 -1
- package/dist/C_Markdown.css +33 -33
- package/dist/C_Markdown.js.map +1 -1
- package/dist/C_Markdown2.js +1 -1
- package/dist/C_Markdown2.js.map +1 -1
- package/dist/C_Menu.js.map +1 -1
- package/dist/C_Menu2.js +1 -1
- package/dist/C_Menu2.js.map +1 -1
- package/dist/{C_NotificationCenter-DT6fQ79O.css.map → C_NotificationCenter-D7GGGWg7.css.map} +1 -1
- package/dist/{C_NotificationCenter-DbgBiyqB.css.map → C_NotificationCenter-SSmeHA45.css.map} +1 -1
- package/dist/C_NotificationCenter.css +89 -89
- package/dist/C_NotificationCenter.js.map +1 -1
- package/dist/C_NotificationCenter2.js +1 -1
- package/dist/C_NotificationCenter2.js.map +1 -1
- package/dist/C_OrgChart.js.map +1 -1
- package/dist/C_OrgChart2.js.map +1 -1
- package/dist/C_Progress.js.map +1 -1
- package/dist/C_Progress2.js +1 -1
- package/dist/C_Progress2.js.map +1 -1
- package/dist/{C_QRCode-CFNTda_1.css.map → C_QRCode-B_1lHUdx.css.map} +1 -1
- package/dist/{C_QRCode-CmWr9lK-.css.map → C_QRCode-CuQRYu0s.css.map} +1 -1
- package/dist/C_QRCode.css +9 -9
- package/dist/C_QRCode.js.map +1 -1
- package/dist/C_QRCode2.js +1 -1
- package/dist/C_QRCode2.js.map +1 -1
- package/dist/{C_Signature-BDx4ctsE.css.map → C_Signature-Bp-RBpAl.css.map} +1 -1
- package/dist/{C_Signature-Bz_uNbwv.css.map → C_Signature-Cb2VW1ok.css.map} +1 -1
- package/dist/C_Signature.css +15 -15
- package/dist/C_Signature.js.map +1 -1
- package/dist/C_Signature2.js +1 -1
- package/dist/C_Signature2.js.map +1 -1
- package/dist/C_Skeleton.js.map +1 -1
- package/dist/C_Skeleton2.js.map +1 -1
- package/dist/{C_SplitPane-BOwr1C7K.css.map → C_SplitPane-CgGWYsRE.css.map} +1 -1
- package/dist/{C_SplitPane-N-a_D-7F.css.map → C_SplitPane-DGf6WEeR.css.map} +1 -1
- package/dist/C_SplitPane.css +31 -31
- package/dist/C_SplitPane.js.map +1 -1
- package/dist/C_SplitPane2.js +1 -1
- package/dist/C_SplitPane2.js.map +1 -1
- package/dist/C_Steps-Buyg7Axn.css.map +1 -0
- package/dist/C_Steps-DNY91VbQ.css.map +1 -0
- package/dist/C_Steps.css +38 -38
- package/dist/C_Steps.js.map +1 -1
- package/dist/C_Steps2.js +1 -1
- package/dist/C_Steps2.js.map +1 -1
- package/dist/{C_Table-BcM5LqAM.css.map → C_Table--kbQaaBv.css.map} +1 -1
- package/dist/{C_Table-HATVoq1F.css.map → C_Table-D631kdXC.css.map} +1 -1
- package/dist/C_Table.css +104 -104
- package/dist/C_Table.js.map +1 -1
- package/dist/C_Table2.js +2 -2
- package/dist/C_Table2.js.map +1 -1
- package/dist/{C_TagsView-DX3LecK1.css.map → C_TagsView-COjGNM9h.css.map} +1 -1
- package/dist/{C_TagsView-DqOTa8bL.css.map → C_TagsView-zUDj9S06.css.map} +1 -1
- package/dist/C_TagsView.css +36 -36
- package/dist/C_TagsView.js.map +1 -1
- package/dist/C_TagsView2.js +1 -1
- package/dist/C_TagsView2.js.map +1 -1
- package/dist/C_Theme.js.map +1 -1
- package/dist/C_Theme2.js +1 -1
- package/dist/C_Theme2.js.map +1 -1
- package/dist/C_Time-BQ9PGy8B.css.map +1 -0
- package/dist/C_Time-CO73krC6.css.map +1 -0
- package/dist/C_Time.css +5 -5
- package/dist/C_Time.js.map +1 -1
- package/dist/C_Time2.js +1 -1
- package/dist/C_Time2.js.map +1 -1
- package/dist/{C_Timeline-BKkimrZx.css.map → C_Timeline-4rk0Dzgn.css.map} +1 -1
- package/dist/{C_Timeline-DTuSCX6p.css.map → C_Timeline-DdESmqwL.css.map} +1 -1
- package/dist/C_Timeline.css +45 -45
- package/dist/C_Timeline.js.map +1 -1
- package/dist/C_Timeline2.js +1 -1
- package/dist/C_Timeline2.js.map +1 -1
- package/dist/{C_Transfer-BOB6OBqS.css.map → C_Transfer-B-vjvhjI.css.map} +1 -1
- package/dist/{C_Transfer-Dpq7ezWC.css.map → C_Transfer-EzdHzZNv.css.map} +1 -1
- package/dist/C_Transfer.css +31 -31
- package/dist/C_Transfer.js.map +1 -1
- package/dist/C_Transfer2.js +1 -1
- package/dist/C_Transfer2.js.map +1 -1
- package/dist/{C_Tree-D98nX9qT.css.map → C_Tree-CsXgGfhn.css.map} +1 -1
- package/dist/{C_Tree-ulfm7b-P.css.map → C_Tree-P7eRpnOa.css.map} +1 -1
- package/dist/C_Tree.css +33 -33
- package/dist/C_Tree.js.map +1 -1
- package/dist/C_Tree2.js +1 -1
- package/dist/C_Tree2.js.map +1 -1
- package/dist/{C_Upload-BR9fg5r4.css.map → C_Upload-CHjiVVh7.css.map} +1 -1
- package/dist/{C_Upload-CPqf74Ea.css.map → C_Upload-DE3OLsZD.css.map} +1 -1
- package/dist/C_Upload.css +50 -50
- package/dist/C_Upload.js.map +1 -1
- package/dist/C_Upload2.js +2 -2
- package/dist/C_Upload2.js.map +1 -1
- package/dist/{C_VideoPlayer-4J96tKfK.css.map → C_VideoPlayer-CnaNOFtW.css.map} +1 -1
- package/dist/{C_VideoPlayer-D35seHkm.css.map → C_VideoPlayer-cnP88zNV.css.map} +1 -1
- package/dist/C_VideoPlayer.css +68 -68
- package/dist/C_VideoPlayer.js.map +1 -1
- package/dist/C_VideoPlayer2.js +3 -3
- package/dist/C_VideoPlayer2.js.map +1 -1
- package/dist/{C_VtableGantt-C2lxFmWg.css.map → C_VtableGantt-CZlJgvpC.css.map} +1 -1
- package/dist/{C_VtableGantt-Dwnkw_WL.css.map → C_VtableGantt-DKfQkql0.css.map} +1 -1
- package/dist/C_VtableGantt.css +15 -15
- package/dist/C_VtableGantt.js.map +1 -1
- package/dist/C_VtableGantt2.js +1 -1
- package/dist/C_VtableGantt2.js.map +1 -1
- package/dist/{C_WaterFall-C4HDqf-a.css.map → C_WaterFall-BJ_39ext.css.map} +1 -1
- package/dist/{C_WaterFall-HWB-gPON.css.map → C_WaterFall-cYc1vntE.css.map} +1 -1
- package/dist/C_WaterFall.css +16 -16
- package/dist/C_WaterFall.js.map +1 -1
- package/dist/C_WaterFall2.js +1 -1
- package/dist/C_WaterFall2.js.map +1 -1
- package/dist/{C_WorkFlow-2hJfvvTK.css.map → C_WorkFlow-BFzRGGhJ.css.map} +1 -1
- package/dist/{C_WorkFlow-DHoNjl8-.css.map → C_WorkFlow-DSyCOvRp.css.map} +1 -1
- package/dist/C_WorkFlow.css +193 -193
- package/dist/C_WorkFlow.js.map +1 -1
- package/dist/C_WorkFlow2.js +1 -1
- package/dist/C_WorkFlow2.js.map +1 -1
- package/dist/constants.d.ts +1 -1
- package/dist/constants2.d.ts +2 -2
- package/dist/constants3.d.ts +1 -1
- package/dist/constants4.d.ts +1 -1
- package/dist/constants5.d.ts +2 -2
- package/dist/data.d.ts +1 -1
- package/dist/index.vue.d.ts +2 -2
- package/dist/index11.vue.d.ts +2 -2
- package/dist/index12.vue.d.ts +1 -1
- package/dist/index13.vue.d.ts +2 -2
- package/dist/index14.vue.d.ts +3 -3
- package/dist/index15.vue.d.ts +6 -6
- package/dist/index17.vue.d.ts +1 -1
- package/dist/index18.vue.d.ts +2 -2
- package/dist/index2.vue.d.ts +6 -6
- package/dist/index20.vue.d.ts +1 -1
- package/dist/index21.vue.d.ts +2 -2
- package/dist/index22.vue.d.ts +2 -2
- package/dist/index24.vue.d.ts +1 -1
- package/dist/index26.vue.d.ts +3 -3
- package/dist/index27.vue.d.ts +1 -1
- package/dist/index28.vue.d.ts +2 -2
- package/dist/index3.vue.d.ts +2 -2
- package/dist/index4.vue.d.ts +2 -2
- package/dist/index6.vue.d.ts +3 -3
- package/dist/style.css +1991 -1991
- package/dist/useCalendarEvents.d.ts +1 -1
- package/dist/useCollapsePanel.d.ts +3 -3
- package/dist/useCropperCore.d.ts +4 -4
- package/dist/useDraggableLayout.d.ts +2 -2
- package/dist/useDynamicFormState.d.ts +13 -13
- package/dist/useEdgeInteraction.d.ts +1 -1
- package/dist/useInfiniteScroll.d.ts +3 -3
- package/dist/useModalEdit.d.ts +3 -3
- package/dist/useQRCode.d.ts +3 -3
- package/dist/useSignatureHistory.d.ts +1 -1
- package/dist/useSplitResize.d.ts +5 -5
- package/dist/useTimeSelection.d.ts +2 -2
- package/dist/useTreeOperations.d.ts +4 -4
- package/dist/useWorkflowValidation.d.ts +4 -4
- package/package.json +4 -7
- package/dist/C_ActionBar-DYG0Yf3A.css.map +0 -1
- package/dist/C_ActionBar-MAjRhqcI.css.map +0 -1
- package/dist/C_Cascade-Dq0S5Jkm.css.map +0 -1
- package/dist/C_Cascade-IUUHIh7r.css.map +0 -1
- package/dist/C_Code-BFi5xxnM.css.map +0 -1
- package/dist/C_Code-CZ7yfnri.css.map +0 -1
- package/dist/C_FullCalendar-BQA0OjGB.css.map +0 -1
- package/dist/C_FullCalendar-ChJUosAi.css.map +0 -1
- package/dist/C_Steps-Bk1krgiR.css.map +0 -1
- package/dist/C_Steps-Dn2CMpy1.css.map +0 -1
- package/dist/C_Time-BzyQVvTS.css.map +0 -1
- package/dist/C_Time-DmpKLQHc.css.map +0 -1
- package/dist/themes/glass-morphism.css +0 -1
package/dist/C_VideoPlayer2.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{t as e}from"./export-helper.js";import{
|
|
2
|
-
`),r=n.findIndex(e=>e.includes(`-->`));if(r===-1)continue;let[i,a]=n[r].split(`-->`);if(!i||!a)continue;let o=
|
|
3
|
-
`).replace(/<[^>]+>/g,``).trim();c&&t.push({start:o,end:s,text:c})}return t}function Q(e,t=[],n=v(0)){let i=v(null),a=v([...t]),o=v({}),s=v(!1),c=r(()=>{if(!i.value)return``;let e=o.value[i.value];if(!e?.length)return``;let t=n.value;return e.find(e=>t>=e.start&&t<e.end)?.text??``}),l=r(()=>a.value.length>0);async function u(e){if(o.value[e])return o.value[e];let t=a.value.find(t=>t.language===e);if(!t)return[];s.value=!0;try{let n=await fetch(t.src);if(!n.ok)return console.warn(`[C_VideoPlayer] 字幕加载失败: ${t.src} (${n.status})`),[];let r=ne(await n.text());return o.value[e]=r,r}catch(e){return console.warn(`[C_VideoPlayer] 字幕加载异常:`,e),[]}finally{s.value=!1}}async function d(){if(!a.value.length)return;let e=a.value.find(e=>e.default)??a.value[0];await u(e.language),i.value=e.language}async function f(e){if(!a.value.find(t=>t.language===e)){console.warn(`[C_VideoPlayer] 未找到字幕轨道: ${e}`);return}await u(e),i.value=e}function p(){i.value=null}function m(){if(i.value)p();else{let e=a.value.find(e=>e.default)??a.value[0];e&&f(e.language)}}return{activeLanguage:i,subtitleList:a,currentText:c,hasSubtitles:l,isLoading:s,initSubtitles:d,switchSubtitle:f,closeSubtitle:p,toggleSubtitle:m}}function re(e,t,n){let r=v(null),i=v(new Set),a=v(``),o=v(!1),s=v(!1);function c(){if(r.value||!n.value.length)return;let e=t.value,a=n.value.find(t=>!i.value.has(t.id)&&Math.abs(e-t.triggerTime)<1);a&&l(a)}function l(t){r.value=t,a.value=t.type===`multiple`?[]:``,o.value=!1,s.value=!1,e.value?.pause()}function u(){if(!r.value)return!1;let e=r.value,t=p(e,a.value);return s.value=t,o.value=!0,(t||!e.required)&&i.value.add(e.id),t}function d(){if(!r.value)return;let t=r.value;t.required&&!i.value.has(t.id)||(r.value=null,o.value=!1,a.value=``,e.value?.play())}function f(){r.value&&(a.value=r.value.type===`multiple`?[]:``,o.value=!1,s.value=!1)}function p(e,t){if(e.type===`multiple`){let n=Array.isArray(t)?[...t].sort():[t],r=Array.isArray(e.answer)?[...e.answer].sort():[e.answer];return n.length===r.length&&n.every((e,t)=>e===r[t])}return t===e.answer}return D(t,()=>{c()}),{activeQuiz:r,completedQuizIds:i,selectedAnswer:a,showResult:o,lastAnswerCorrect:s,submitAnswer:u,closeQuiz:d,retryQuiz:f}}function ie(e,t){let n=v(!1),r=null;function i(){!e.value||!t.value||(r=new IntersectionObserver(([e])=>{n.value=!e.isIntersecting},{threshold:.3}),r.observe(e.value))}function a(){r&&=(r.disconnect(),null),n.value=!1}function o(){e.value?.scrollIntoView({behavior:`smooth`,block:`center`})}function s(){n.value=!1,a()}return h(()=>{a()}),{isMiniMode:n,initObserver:i,destroyObserver:a,scrollToPlayer:o,closeMiniPlayer:s}}function ae(e,t,n={}){let{enabled:r=!0,onToggleFullscreen:i}=n,a={" ":(e,t)=>{e.preventDefault(),t.paused?t.play():t.pause()},ArrowLeft:(e,t)=>{e.preventDefault(),t.currentTime=Math.max(0,(t.currentTime??0)-5)},ArrowRight:(e,t)=>{e.preventDefault(),t.currentTime=Math.min(t.duration??0,(t.currentTime??0)+5)},ArrowUp:(e,t)=>{e.preventDefault(),t.volume=Math.min(1,(t.volume??0)+z)},ArrowDown:(e,t)=>{e.preventDefault(),t.volume=Math.max(0,(t.volume??0)-z)},f:e=>{e.preventDefault(),i?.()},F:e=>{e.preventDefault(),i?.()},m:(e,t)=>{e.preventDefault(),t.volume=t.volume>0?0:.75},M:(e,t)=>{e.preventDefault(),t.volume=t.volume>0?0:.75}};function o(t){if(!r)return;let n=e.value;if(!n)return;let i=t.target;if(i.tagName===`INPUT`||i.tagName===`TEXTAREA`||i.isContentEditable)return;let o=a[t.key];o?.(t,n)}function s(){r&&t.value?.addEventListener(`keydown`,o)}function c(){t.value?.removeEventListener(`keydown`,o)}return h(()=>{c()}),{startListening:s,stopListening:c}}function oe(e,t){function n(t,n){return{type:t,currentTime:e.currentTime??0,timestamp:Date.now(),payload:n}}function r(e,r){t(n(e,r))}let i=()=>r(`play`),a=()=>r(`pause`),o=()=>r(`ended`),s=()=>r(`seek`),c=()=>r(`error`),l=()=>r(`buffer`),u=e=>{r(`fullscreen`,{isFullscreen:e})},d=e=>{r(`quality_change`,e)},f=()=>{r(`speed_change`,{rate:e.playbackRate})};e.on(k.PLAY,i),e.on(k.PAUSE,a),e.on(k.ENDED,o),e.on(k.SEEKED,s),e.on(k.ERROR,c),e.on(k.WAITING,l),e.on(k.FULLSCREEN_CHANGE,u),e.on(k.DEFINITION_CHANGE,d),e.on(k.RATE_CHANGE,f);function p(){e.off(k.PLAY,i),e.off(k.PAUSE,a),e.off(k.ENDED,o),e.off(k.SEEKED,s),e.off(k.ERROR,c),e.off(k.WAITING,l),e.off(k.FULLSCREEN_CHANGE,u),e.off(k.DEFINITION_CHANGE,d),e.off(k.RATE_CHANGE,f)}return{report:r,destroy:p}}const se={key:0,class:`vp-control-bar`},ce={class:`vp-control-bar__left`},le={class:`vp-control-bar__center`},ue={class:`vp-control-bar__right`};var de=e(u({__name:`ControlBar`,props:{visible:{type:Boolean,default:!0}},setup(e){return(e,t)=>e.visible?(_(),o(`div`,se,[s(`div`,ce,[b(e.$slots,`left`,{},void 0,!0)]),s(`div`,le,[b(e.$slots,`center`,{},void 0,!0)]),s(`div`,ue,[b(e.$slots,`right`,{},void 0,!0)])])):a(`v-if`,!0)}}),[[`__scopeId`,`data-v-9c505c6a`]]);const fe={key:0,class:`vp-subtitle-overlay`},pe={class:`vp-subtitle-text`},me={key:0,class:`vp-subtitle-toggle`},he={class:`vp-subtitle-menu`},ge=[`onClick`];var _e=e(u({__name:`SubtitleOverlay`,props:{text:{},tracks:{},activeLanguage:{}},emits:[`switch`,`close`],setup(e){return(e,r)=>{let i=x(`NButton`),u=x(`NPopover`);return _(),o(t,null,[a(` 字幕文本 `),l(n,{name:`vp-subtitle-fade`},{default:O(()=>[e.text?(_(),o(`div`,fe,[s(`span`,pe,C(e.text),1)])):a(`v-if`,!0)]),_:1}),a(` 字幕切换按钮(叠加在播放器控制栏上方) `),e.tracks.length?(_(),o(`div`,me,[l(u,{trigger:`click`,placement:`top`,"show-arrow":!1},{trigger:O(()=>[l(i,{quaternary:``,size:`small`,class:p([`vp-subtitle-btn`,{"is-active":!!e.activeLanguage}])},{default:O(()=>r[1]||=[c(` 字幕 `,-1)]),_:1,__:[1]},8,[`class`])]),default:O(()=>[s(`div`,he,[s(`div`,{class:p([`vp-subtitle-menu__item`,{"is-active":!e.activeLanguage}]),onClick:r[0]||=t=>e.$emit(`close`)},` 关闭字幕 `,2),(_(!0),o(t,null,y(e.tracks,t=>(_(),o(`div`,{key:t.language,class:p([`vp-subtitle-menu__item`,{"is-active":e.activeLanguage===t.language}]),onClick:n=>e.$emit(`switch`,t.language)},C(t.label),11,ge))),128))])]),_:1})])):a(`v-if`,!0)],64)}}}),[[`__scopeId`,`data-v-a371e102`]]);const ve={key:0,class:`vp-chapter-markers`},ye={key:0,class:`vp-chapter-current`},be={class:`vp-chapter-index`},xe={class:`vp-chapter-title`},Se={class:`vp-chapter-list`},Ce=[`onClick`],we={class:`vp-chapter-item-index`},Te={class:`vp-chapter-item-title`},Ee={class:`vp-chapter-item-time`};var De=e(u({__name:`ChapterMarkers`,props:{chapters:{},currentChapter:{},currentIndex:{}},emits:[`goTo`],setup(e){function n(e){let t=Math.floor(e/60),n=Math.floor(e%60);return`${t.toString().padStart(2,`0`)}:${n.toString().padStart(2,`0`)}`}return(e,r)=>{let i=x(`NButton`),u=x(`NPopover`);return e.chapters.length?(_(),o(`div`,ve,[a(` 当前章节信息 `),e.currentChapter?(_(),o(`div`,ye,[s(`span`,be,C(e.currentIndex+1)+`/`+C(e.chapters.length),1),s(`span`,xe,C(e.currentChapter.title),1)])):a(`v-if`,!0),a(` 章节列表面板 `),l(u,{trigger:`click`,placement:`top-start`,"show-arrow":!1,style:{"max-height":`300px`,"overflow-y":`auto`}},{trigger:O(()=>[l(i,{quaternary:``,size:`small`,class:`vp-chapter-trigger`},{icon:O(()=>r[0]||=[s(`span`,{class:`vp-chapter-icon`},`☰`,-1)]),default:O(()=>[r[1]||=c(` 章节 `,-1)]),_:1,__:[1]})]),default:O(()=>[s(`div`,Se,[(_(!0),o(t,null,y(e.chapters,(t,r)=>(_(),o(`div`,{key:t.id,class:p([`vp-chapter-item`,{"is-active":t.id===e.currentChapter?.id}]),onClick:n=>e.$emit(`goTo`,t.id)},[s(`span`,we,C(r+1),1),s(`span`,Te,C(t.title),1),s(`span`,Ee,C(n(t.startTime)),1)],10,Ce))),128))])]),_:1})])):a(`v-if`,!0)}}}),[[`__scopeId`,`data-v-d8dd3c9e`]]);const Oe={class:`vp-bookmark-panel`},ke={class:`vp-bookmark-list`},Ae=[`onClick`],je={class:`vp-bookmark-note`};var Me=e(u({__name:`BookmarkPanel`,props:{bookmarks:{}},emits:[`add`,`remove`,`goTo`],setup(e,{emit:n}){let r=n;function u(){r(`add`,``)}function d(e){let t=Math.floor(e/60),n=Math.floor(e%60);return`${t.toString().padStart(2,`0`)}:${n.toString().padStart(2,`0`)}`}return(e,n)=>{let r=x(`NButton`),f=x(`NBadge`),p=x(`NPopover`);return _(),o(`div`,Oe,[a(` 添加书签按钮 `),l(r,{quaternary:``,size:`small`,class:`vp-bookmark-add-btn`,onClick:u},{icon:O(()=>n[0]||=[s(`span`,null,`🔖`,-1)]),default:O(()=>[n[1]||=c(` 书签 `,-1)]),_:1,__:[1]}),a(` 书签列表弹窗 `),e.bookmarks.length?(_(),i(p,{key:0,trigger:`click`,placement:`top-start`,"show-arrow":!1,style:{"max-height":`300px`,"overflow-y":`auto`}},{trigger:O(()=>[l(f,{value:e.bookmarks.length,max:99,type:`info`},{default:O(()=>[l(r,{quaternary:``,size:`small`,class:`vp-bookmark-list-btn`},{default:O(()=>n[2]||=[c(` 列表 `,-1)]),_:1,__:[2]})]),_:1},8,[`value`])]),default:O(()=>[s(`div`,ke,[(_(!0),o(t,null,y(e.bookmarks,t=>(_(),o(`div`,{key:t.id,class:`vp-bookmark-item`},[s(`span`,{class:`vp-bookmark-time`,onClick:n=>e.$emit(`goTo`,t.id)},C(d(t.time)),9,Ae),s(`span`,je,C(t.note||`无备注`),1),l(r,{quaternary:``,size:`tiny`,type:`error`,onClick:n=>e.$emit(`remove`,t.id)},{default:O(()=>n[3]||=[c(` ✕ `,-1)]),_:2,__:[3]},1032,[`onClick`])]))),128))])]),_:1})):a(`v-if`,!0)])}}}),[[`__scopeId`,`data-v-a72e126b`]]);const $={key:0,class:`vp-quiz-overlay`},Ne={class:`vp-quiz-card`},Pe={class:`vp-quiz-header`},Fe={class:`vp-quiz-type-tag`},Ie={class:`vp-quiz-title`},Le={class:`vp-quiz-options`},Re={class:`vp-quiz-actions`};var ze=e(u({__name:`QuizOverlay`,props:d({quiz:{},showResult:{type:Boolean,default:!1},isCorrect:{type:Boolean,default:!1}},{answer:{default:``},answerModifiers:{}}),emits:d([`submit`,`retry`,`close`],[`update:answer`]),setup(e){let u=e,d=v(``),f=v([]),m=E(e,`answer`),h=r(()=>({single:`单选题`,multiple:`多选题`,judge:`判断题`})[u.quiz?.type??`single`]??`单选题`),g=r(()=>u.quiz?.type===`multiple`?f.value.length>0:d.value!==``);return D(d,e=>{u.quiz?.type!==`multiple`&&(m.value=e)}),D(f,e=>{u.quiz?.type===`multiple`&&(m.value=[...e])}),D(()=>u.quiz?.id,()=>{d.value=``,f.value=[]}),(e,r)=>{let u=x(`NCheckbox`),m=x(`NCheckboxGroup`),v=x(`NRadio`),b=x(`NRadioGroup`),S=x(`NButton`);return _(),i(n,{name:`vp-quiz-fade`},{default:O(()=>[e.quiz?(_(),o(`div`,$,[s(`div`,Ne,[a(` 标题 `),s(`div`,Pe,[s(`span`,Fe,C(h.value),1),s(`h3`,Ie,C(e.quiz.title),1)]),a(` 选项 `),s(`div`,Le,[e.quiz.type===`multiple`?(_(),i(m,{key:0,value:f.value,"onUpdate:value":r[0]||=e=>f.value=e,disabled:e.showResult},{default:O(()=>[(_(!0),o(t,null,y(e.quiz.options,e=>(_(),o(`div`,{key:e.key,class:`vp-quiz-option`},[l(u,{value:e.key,label:`${e.key}. ${e.label}`},null,8,[`value`,`label`])]))),128))]),_:1},8,[`value`,`disabled`])):(_(),i(b,{key:1,value:d.value,"onUpdate:value":r[1]||=e=>d.value=e,disabled:e.showResult},{default:O(()=>[(_(!0),o(t,null,y(e.quiz.options,e=>(_(),o(`div`,{key:e.key,class:`vp-quiz-option`},[l(v,{value:e.key,label:`${e.key}. ${e.label}`},null,8,[`value`,`label`])]))),128))]),_:1},8,[`value`,`disabled`]))]),a(` 结果反馈 `),e.showResult?(_(),o(`div`,{key:0,class:p([`vp-quiz-result`,e.isCorrect?`is-correct`:`is-wrong`])},C(e.isCorrect?`✓ 回答正确!`:`✗ 回答错误,请重试`),3)):a(`v-if`,!0),a(` 操作按钮 `),s(`div`,Re,[e.showResult?(_(),o(t,{key:1},[!e.isCorrect&&e.quiz.required?(_(),i(S,{key:0,type:`warning`,onClick:r[3]||=t=>e.$emit(`retry`)},{default:O(()=>r[6]||=[c(` 重新作答 `,-1)]),_:1,__:[6]})):a(`v-if`,!0),e.isCorrect||!e.quiz.required?(_(),i(S,{key:1,type:`primary`,onClick:r[4]||=t=>e.$emit(`close`)},{default:O(()=>r[7]||=[c(` 继续学习 `,-1)]),_:1,__:[7]})):a(`v-if`,!0)],64)):(_(),i(S,{key:0,type:`primary`,disabled:!g.value,onClick:r[2]||=t=>e.$emit(`submit`)},{default:O(()=>r[5]||=[c(` 提交答案 `,-1)]),_:1,__:[5]},8,[`disabled`]))])])])):a(`v-if`,!0)]),_:1})}}}),[[`__scopeId`,`data-v-52d39a1b`]]),Be=e(u({__name:`WatermarkOverlay`,props:{visible:{type:Boolean,default:!0},text:{default:``},fontSize:{default:H.fontSize},color:{default:H.color},rotate:{default:H.rotate},gap:{default:H.gap}},setup(e){let n=e,i=r(()=>{let e=n.gap*n.gap;return Math.ceil(2073600/e)}),s=r(()=>({position:`absolute`,inset:0,overflow:`hidden`,pointerEvents:`none`,zIndex:50,display:`flex`,flexWrap:`wrap`,alignContent:`flex-start`,gap:`${n.gap}px`,padding:`${n.gap/2}px`})),c=r(()=>({fontSize:`${n.fontSize}px`,color:n.color,transform:`rotate(${n.rotate}deg)`,userSelect:`none`,whiteSpace:`nowrap`,lineHeight:1}));return(e,n)=>e.visible&&e.text?(_(),o(`div`,{key:0,class:`vp-watermark`,style:m(s.value)},[(_(!0),o(t,null,y(i.value,t=>(_(),o(`span`,{key:t,class:`vp-watermark-item`,style:m(c.value)},C(e.text),5))),128))],4)):a(`v-if`,!0)}}),[[`__scopeId`,`data-v-cc858332`]]),Ve=e(u({name:`C_VideoPlayer`,__name:`index`,props:{url:{},sourceType:{},width:{},height:{},poster:{},fluid:{type:Boolean},autoplay:{type:Boolean},autoplayMuted:{type:Boolean},loop:{type:Boolean},volume:{},startTime:{},playbackRates:{},defaultPlaybackRate:{},pip:{type:Boolean},fullscreen:{type:Boolean},cssFullscreen:{type:Boolean},miniPlayer:{type:Boolean},screenshot:{type:Boolean},keyboard:{type:Boolean},lang:{},qualityList:{},defaultQuality:{},chapters:{},subtitles:{},quizzes:{},bookmarks:{},thumbnail:{},onProgress:{type:Function},antiCheat:{},onAnalytics:{type:Function},playerOptions:{}},emits:[`ready`,`stateChange`,`timeUpdate`,`ended`,`error`,`qualityChange`,`rateChange`,`fullscreenChange`,`bookmarkChange`,`quizAnswer`,`chapterChange`,`progressUpdate`],setup(e,{expose:t,emit:n}){let c=e,u=n,d=W(c),{containerRef:m,playerRef:y,playerState:b,currentTime:x,duration:S,isFullscreen:C}=d,E=v(null),A=G(y),j=w(c,`url`),M=J(y,x,S,j,c.onProgress,c.antiCheat),N=ee(y,c.qualityList),P=r(()=>c.chapters??[]),F=Y(P,x,S,A.seek),I=X(j,x,A.seek,c.bookmarks),L=te(y,x,c.antiCheat),R=Q(y,c.subtitles,x),z=re(y,x,r(()=>c.quizzes??[])),B=ie(E,r(()=>c.miniPlayer??!1)),V=ae(y,E,{enabled:c.keyboard!==!1,onToggleFullscreen:()=>{y.value?.getFullscreen?.()}}),H=null;function U(e){I.addBookmark(e),u(`bookmarkChange`,I.bookmarks.value)}function K(){let e=z.submitAnswer(),t=z.activeQuiz.value;t&&u(`quizAnswer`,t.id,z.selectedAnswer.value,e)}function q(){z.closeQuiz()}return D(b,e=>{u(`stateChange`,e)}),D(C,e=>{u(`fullscreenChange`,e)}),D(()=>F.currentChapter.value,e=>{e&&u(`chapterChange`,e)}),g(async()=>{d.containerRef.value=m.value,await f(),await d.initPlayer();let e=y.value;if(!e)return;N.bindEvents(e),L.bindEvents(e),R.initSubtitles(),V.startListening(),B.initObserver();let t=M.restoreProgress();t>0&&c.startTime===void 0&&(e.currentTime=t),e.on(k.PLAY,()=>{M.onPlay()}),e.on(k.PAUSE,()=>{M.onPause()}),e.on(k.TIME_UPDATE,()=>{M.onTimeUpdate(),u(`timeUpdate`,x.value,S.value),u(`progressUpdate`,M.getProgressData())}),e.on(k.ENDED,()=>{u(`ended`),L.markAsWatched()}),e.on(k.ERROR,()=>{u(`error`,Error(`播放器错误`))}),e.on(k.READY,()=>{u(`ready`)}),e.on(k.AFTER_DEFINITION_CHANGE,e=>{u(`qualityChange`,e.to)}),e.on(k.RATE_CHANGE,e=>{u(`rateChange`,e)}),c.onAnalytics&&(H=oe(e,c.onAnalytics).destroy)}),h(()=>{H?.(),V.stopListening(),B.destroyObserver(),M.stopTracking(),d.destroyPlayer()}),t({play:A.play,pause:A.pause,seek:A.seek,setPlaybackRate:A.setPlaybackRate,setVolume:A.setVolume,switchQuality:N.switchQuality,getProgressData:M.getProgressData,destroy:d.destroyPlayer,getPlayerInstance:()=>y.value}),(e,t)=>(_(),o(`div`,{ref_key:`wrapperRef`,ref:E,class:p([`c-video-player`,{"is-mini":T(B).isMiniMode.value,"is-fullscreen":T(C)}]),tabindex:`0`},[a(` 播放器容器 `),s(`div`,{ref_key:`containerRef`,ref:m,class:`c-video-player__container`},null,512),a(` 动态水印 `),l(Be,{visible:T(L).showWatermark.value,text:T(L).watermarkText.value},null,8,[`visible`,`text`]),a(` 字幕渲染层 `),l(_e,{text:T(R).currentText.value,tracks:T(R).subtitleList.value,"active-language":T(R).activeLanguage.value,onSwitch:T(R).switchSubtitle,onClose:T(R).closeSubtitle},null,8,[`text`,`tracks`,`active-language`,`onSwitch`,`onClose`]),a(` 测验弹窗 `),c.quizzes?.length?(_(),i(ze,{key:0,answer:T(z).selectedAnswer.value,"onUpdate:answer":t[0]||=e=>T(z).selectedAnswer.value=e,quiz:T(z).activeQuiz.value,"show-result":T(z).showResult.value,"is-correct":T(z).lastAnswerCorrect.value,onSubmit:K,onRetry:t[1]||=e=>T(z).retryQuiz(),onClose:q},null,8,[`answer`,`quiz`,`show-result`,`is-correct`])):a(`v-if`,!0),a(` 扩展控制栏(xgplayer 自带控制栏外的扩展) `),l(de,{visible:!0},{left:O(()=>[a(` 章节标记 `),c.chapters?.length?(_(),i(De,{key:0,chapters:P.value,"current-chapter":T(F).currentChapter.value,"current-index":T(F).currentChapterIndex.value,onGoTo:T(F).goToChapter},null,8,[`chapters`,`current-chapter`,`current-index`,`onGoTo`])):a(`v-if`,!0)]),right:O(()=>[a(` 书签面板 `),l(Me,{bookmarks:T(I).bookmarks.value,onAdd:U,onRemove:T(I).removeBookmark,onGoTo:T(I).goToBookmark},null,8,[`bookmarks`,`onRemove`,`onGoTo`])]),_:1}),a(` 小窗关闭按钮 `),T(B).isMiniMode.value?(_(),o(`div`,{key:1,class:`c-video-player__mini-close`,onClick:t[2]||=e=>T(B).closeMiniPlayer()},` ✕ `)):a(`v-if`,!0),a(` 小窗点击回原位 `),T(B).isMiniMode.value?(_(),o(`div`,{key:2,class:`c-video-player__mini-back`,onClick:t[3]||=e=>T(B).scrollToPlayer()},` 回到原位 `)):a(`v-if`,!0)],2))}}),[[`__scopeId`,`data-v-31c52e44`]]);export{V as _,J as a,H as b,N as c,M as d,L as f,I as g,R as h,Y as i,j as l,F as m,Q as n,G as o,P as p,X as r,W as s,Ve as t,A as u,B as v,z as y};
|
|
1
|
+
import{t as e}from"./export-helper.js";import{NBadge as t,NButton as n,NCheckbox as r,NCheckboxGroup as i,NPopover as a,NRadio as o,NRadioGroup as s}from"naive-ui";import{Fragment as c,Transition as l,computed as u,createBlock as d,createCommentVNode as f,createElementBlock as p,createElementVNode as m,createTextVNode as h,createVNode as g,defineComponent as _,mergeModels as v,nextTick as y,normalizeClass as b,normalizeStyle as x,onBeforeUnmount as S,onMounted as C,openBlock as w,ref as T,renderList as E,renderSlot as D,resolveComponent as O,shallowRef as k,toDisplayString as A,toRef as ee,unref as j,useModel as M,watch as N,withCtx as P}from"vue";import{Events as F}from"xgplayer";import"xgplayer/dist/index.min.css";const I=[.5,.75,1,1.25,1.5,2,3],L=1,R=.75,z=3e4,B=5e3,V={"360p":`流畅 360P`,"480p":`标清 480P`,"720p":`高清 720P`,"1080p":`超清 1080P`,"1440p":`2K 1440P`,"4K":`4K 超高清`},H={".mp4":`mp4`,".m3u8":`hls`,".mpd":`dash`,".flv":`flv`},U={SPACE:`播放/暂停`,ARROW_LEFT:`快退 5 秒`,ARROW_RIGHT:`快进 5 秒`,ARROW_UP:`音量增加 10%`,ARROW_DOWN:`音量减少 10%`,F:`全屏/退出全屏`,M:`静音/取消静音`,ESC:`退出全屏`},W=5,G=.1,K=`c_video_player_`,q={VOLUME:`${K}volume`,PLAYBACK_RATE:`${K}playback_rate`,PROGRESS:`${K}progress_`,BOOKMARKS:`${K}bookmarks_`},J={fontSize:14,color:`rgba(150, 150, 150, 0.15)`,rotate:-25,gap:120};function te(e){try{let{pathname:t}=new URL(e,location.href);return H[t.slice(t.lastIndexOf(`.`)).toLowerCase()]??`mp4`}catch{return`mp4`}}function Y(e){let t=T(null),n=k(null),r=T(`idle`),i=T(0),a=T(0),o=T(!1);function s(){return{el:t.value,url:e.url,width:e.width??`100%`,height:e.height??`100%`,fluid:e.fluid!==!1,fitVideoSize:`fixWidth`,poster:e.poster??``,playsinline:!0,videoAttributes:{crossOrigin:`anonymous`},lang:e.lang??`zh-cn`,inactive:3e3}}function c(){return{autoplay:e.autoplay??!1,autoplayMuted:e.autoplayMuted??!1,loop:e.loop??!1,volume:e.volume??R,startTime:e.startTime??0,defaultPlaybackRate:e.defaultPlaybackRate??1,playbackRate:e.playbackRates?{list:e.playbackRates.map(e=>e)}:!0}}function l(){return{pip:e.pip!==!1,screenShot:e.screenshot??!1,mini:e.miniPlayer??!1,fullscreen:e.fullscreen!==!1,cssFullscreen:e.cssFullscreen!==!1,keyShortcut:e.keyboard!==!1}}function u(t){e.thumbnail&&(t.thumbnail={urls:e.thumbnail.urls,pic_num:e.thumbnail.picNum,col:e.thumbnail.col,row:e.thumbnail.row,width:e.thumbnail.width,height:e.thumbnail.height}),e.qualityList?.length&&(t.definition={list:e.qualityList.map(e=>({url:e.url,definition:e.label,text:{zh:e.label,en:e.label},bitrate:e.bitrate})),defaultDefinition:e.defaultQuality??e.qualityList[0].label}),e.playerOptions&&Object.assign(t,e.playerOptions)}function d(){let t=e.sourceType??te(e.url),n={...s(),...c(),...l()};return u(n),n.__sourceType=t,n}async function f(){if(!t.value)return;r.value=`loading`;let e=d(),s=e.__sourceType;delete e.__sourceType;let c;if(s===`hls`){let{default:e}=await import(`xgplayer-hls`);c=e}else{let{default:e}=await import(`xgplayer`);c=e}let l=new c(e);n.value=l,l.on(F.READY,()=>{r.value=`ready`}),l.on(F.PLAY,()=>{r.value=`playing`}),l.on(F.PAUSE,()=>{r.value=`paused`}),l.on(F.ENDED,()=>{r.value=`ended`}),l.on(F.ERROR,()=>{r.value=`error`}),l.on(F.TIME_UPDATE,()=>{i.value=l.currentTime??0,a.value=l.duration??0}),l.on(F.DURATION_CHANGE,()=>{a.value=l.duration??0}),l.on(F.FULLSCREEN_CHANGE,e=>{o.value=e})}function p(){let e=n.value;e&&(e.destroy(),n.value=null),r.value=`idle`,i.value=0,a.value=0}return S(()=>{p()}),{containerRef:t,playerRef:n,playerState:r,currentTime:i,duration:a,isFullscreen:o,initPlayer:f,destroyPlayer:p}}function X(e){let t=T(ne()),n=T(re()),r=T(!1);function i(){e.value?.play()}function a(){e.value?.pause()}function o(){let t=e.value;t&&(t.paused?t.play():t.pause())}function s(t){let n=e.value;n&&(n.currentTime=Math.max(0,Math.min(t,n.duration??0)))}function c(n){let i=e.value;if(!i)return;let a=Math.max(0,Math.min(1,n));i.volume=a,t.value=a,r.value=a===0,localStorage.setItem(q.VOLUME,String(a))}function l(){let n=e.value;n&&(r.value?c(t.value>0?t.value:.5):(n.volume=0,r.value=!0))}function u(t){let r=e.value;r&&(r.playbackRate=t,n.value=t,localStorage.setItem(q.PLAYBACK_RATE,String(t)))}function d(){let i=e.value;i&&(i.volume=t.value,i.playbackRate=n.value,r.value=t.value===0)}return N(e,e=>{e&&d()}),{volume:t,playbackRate:n,isMuted:r,play:i,pause:a,togglePlay:o,seek:s,setVolume:c,toggleMute:l,setPlaybackRate:u}}function ne(){let e=localStorage.getItem(q.VOLUME);if(e!==null){let t=parseFloat(e);if(!isNaN(t)&&t>=0&&t<=1)return t}return .75}function re(){let e=localStorage.getItem(q.PLAYBACK_RATE);if(e!==null){let t=parseFloat(e);if(!isNaN(t)&&t>0)return t}return 1}function Z(e,t,n,r,i,a){let o=T(0),s=T(0),c=0,l=!1,u=null,d=null;function f(){return q.PROGRESS+encodeURIComponent(r.value)}function p(){try{let e=localStorage.getItem(f());if(e){let t=JSON.parse(e);return o.value=t.watchedDuration??0,s.value=t.completionPercent??0,t.currentTime??0}}catch{}return 0}function m(){return{currentTime:t.value,duration:n.value,watchedDuration:o.value,completionPercent:s.value,updatedAt:Date.now()}}function h(){try{localStorage.setItem(f(),JSON.stringify(m()))}catch{}}function g(){let e=m();i?.(e),h()}function _(){if(!l)return;let e=performance.now();if(c>0){let t=(e-c)/1e3;t>0&&t<5&&(o.value+=t)}c=e,n.value>0&&(s.value=Math.min(100,Math.round(o.value/n.value*100)))}function v(){let e=a?.heartbeatInterval??z;u=setInterval(()=>{l&&a?.onHeartbeat?.(m())},e)}function y(){d=setInterval(()=>{l&&g()},B)}function b(){let e=m();if(h(),i)try{navigator.sendBeacon?.(`/api/video/progress`,JSON.stringify(e))}catch{}}function x(){if(document.hidden)_(),g(),l=!1;else{let t=e.value;t&&!t.paused&&(l=!0,c=performance.now())}}function C(){v(),y(),window.addEventListener(`beforeunload`,b),document.addEventListener(`visibilitychange`,x)}function w(){l=!1,u&&=(clearInterval(u),null),d&&=(clearInterval(d),null),window.removeEventListener(`beforeunload`,b),document.removeEventListener(`visibilitychange`,x),h()}function E(){l=!0,c=performance.now()}function D(){_(),l=!1,c=0,h()}function O(){_()}return N(e,e=>{e&&C()}),S(()=>{w()}),{watchedDuration:o,completionPercent:s,getProgressData:m,restoreProgress:p,saveProgress:h,startTracking:C,stopTracking:w,onPlay:E,onPause:D,onTimeUpdate:O}}function ie(e,t=[]){let n=T(null),r=T(!1);function i(e){e.on(F.AFTER_DEFINITION_CHANGE,e=>{n.value=e.to,r.value=!1}),e.on(F.BEFORE_DEFINITION_CHANGE,()=>{r.value=!0})}function a(n){let i=e.value;if(!i||!t.length)return;let a=t.find(e=>e.label===n);if(!a){console.warn(`[C_VideoPlayer] 未找到清晰度: ${n}`);return}r.value=!0,i.changeDefinition?.({url:a.url,definition:a.label,text:{zh:a.label,en:a.label},bitrate:a.bitrate})}return{currentQuality:n,isSwitching:r,switchQuality:a,bindEvents:i}}function Q(e,t,n,r){let i=u(()=>{if(!e.value.length)return null;let n=t.value;return e.value.find(e=>n>=e.startTime&&n<e.endTime)??null}),a=u(()=>i.value?e.value.findIndex(e=>e.id===i.value.id):-1),o=u(()=>!n.value||!e.value.length?[]:e.value.map(e=>({...e,startPercent:e.startTime/n.value*100,endPercent:e.endTime/n.value*100,widthPercent:(e.endTime-e.startTime)/n.value*100})));function s(t){let n=e.value.find(e=>e.id===t);n&&r(n.startTime)}function c(){let t=a.value;t>0&&r(e.value[t-1].startTime)}function l(){let t=a.value;t>=0&&t<e.value.length-1&&r(e.value[t+1].startTime)}return{currentChapter:i,currentChapterIndex:a,chapterMarkers:o,goToChapter:s,prevChapter:c,nextChapter:l}}function $(e,t,n,r=[]){let i=T([...r]);function a(){return q.BOOKMARKS+encodeURIComponent(e.value)}function o(){try{let e=localStorage.getItem(a());if(e){let t=JSON.parse(e);Array.isArray(t)&&(i.value=t)}}catch{}}function s(){try{localStorage.setItem(a(),JSON.stringify(i.value))}catch{}}function c(){i.value.sort((e,t)=>e.time-t.time)}function l(e=``){let n={id:`bm_${Date.now()}_${Math.random().toString(36).slice(2,8)}`,time:t.value,note:e,createdAt:Date.now()};return i.value.push(n),c(),s(),n}function u(e){let t=i.value.findIndex(t=>t.id===e);t!==-1&&(i.value.splice(t,1),s())}function d(e,t){let n=i.value.find(t=>t.id===e);n&&(n.note=t,s())}function f(e){let t=i.value.find(t=>t.id===e);t&&n(t.time)}function p(){i.value=[],s()}return r.length||o(),{bookmarks:i,addBookmark:l,removeBookmark:u,updateBookmark:d,goToBookmark:f,clearBookmarks:p}}function ae(e,t,n){let r=T(0),i=T(!0),a=T(!1),o=T(n?.watermark??!1),s=T(n?.watermarkText??``);function c(e){e>r.value&&(r.value=e)}function l(e){!n?.preventSeekOnFirstWatch||!i.value||(e.currentTime??0)>r.value+2&&(e.currentTime=r.value)}function u(){if(!n?.focusDetection)return;let t=e.value;t&&(document.hidden?(a.value=!0,t.paused||t.pause()):a.value=!1)}function d(e){n?.preventSeekOnFirstWatch&&e.on(F.SEEKING,()=>l(e)),e.on(F.TIME_UPDATE,()=>{c(t.value)}),n?.focusDetection&&document.addEventListener(`visibilitychange`,u)}function f(){i.value=!1}function p(e){s.value=e}return S(()=>{document.removeEventListener(`visibilitychange`,u)}),{maxWatchedTime:r,isFirstWatch:i,isBlurred:a,showWatermark:o,watermarkText:s,bindEvents:d,markAsWatched:f,setWatermarkText:p}}function oe(e){let t=e.trim().split(`:`);return t.length===3?Number(t[0])*3600+Number(t[1])*60+Number(t[2]):Number(t[0])*60+Number(t[1])}function se(e){let t=[],n=e.trim().split(/\n\s*\n/);for(let e of n){let n=e.trim().split(`
|
|
2
|
+
`),r=n.findIndex(e=>e.includes(`-->`));if(r===-1)continue;let[i,a]=n[r].split(`-->`);if(!i||!a)continue;let o=oe(i),s=oe(a.split(/\s/)[0]),c=n.slice(r+1).join(`
|
|
3
|
+
`).replace(/<[^>]+>/g,``).trim();c&&t.push({start:o,end:s,text:c})}return t}function ce(e,t=[],n=T(0)){let r=T(null),i=T([...t]),a=T({}),o=T(!1),s=u(()=>{if(!r.value)return``;let e=a.value[r.value];if(!e?.length)return``;let t=n.value;return e.find(e=>t>=e.start&&t<e.end)?.text??``}),c=u(()=>i.value.length>0);async function l(e){if(a.value[e])return a.value[e];let t=i.value.find(t=>t.language===e);if(!t)return[];o.value=!0;try{let n=await fetch(t.src);if(!n.ok)return console.warn(`[C_VideoPlayer] 字幕加载失败: ${t.src} (${n.status})`),[];let r=se(await n.text());return a.value[e]=r,r}catch(e){return console.warn(`[C_VideoPlayer] 字幕加载异常:`,e),[]}finally{o.value=!1}}async function d(){if(!i.value.length)return;let e=i.value.find(e=>e.default)??i.value[0];await l(e.language),r.value=e.language}async function f(e){if(!i.value.find(t=>t.language===e)){console.warn(`[C_VideoPlayer] 未找到字幕轨道: ${e}`);return}await l(e),r.value=e}function p(){r.value=null}function m(){if(r.value)p();else{let e=i.value.find(e=>e.default)??i.value[0];e&&f(e.language)}}return{activeLanguage:r,subtitleList:i,currentText:s,hasSubtitles:c,isLoading:o,initSubtitles:d,switchSubtitle:f,closeSubtitle:p,toggleSubtitle:m}}function le(e,t,n){let r=T(null),i=T(new Set),a=T(``),o=T(!1),s=T(!1);function c(){if(r.value||!n.value.length)return;let e=t.value,a=n.value.find(t=>!i.value.has(t.id)&&Math.abs(e-t.triggerTime)<1);a&&l(a)}function l(t){r.value=t,a.value=t.type===`multiple`?[]:``,o.value=!1,s.value=!1,e.value?.pause()}function u(){if(!r.value)return!1;let e=r.value,t=p(e,a.value);return s.value=t,o.value=!0,(t||!e.required)&&i.value.add(e.id),t}function d(){if(!r.value)return;let t=r.value;t.required&&!i.value.has(t.id)||(r.value=null,o.value=!1,a.value=``,e.value?.play())}function f(){r.value&&(a.value=r.value.type===`multiple`?[]:``,o.value=!1,s.value=!1)}function p(e,t){if(e.type===`multiple`){let n=Array.isArray(t)?[...t].sort():[t],r=Array.isArray(e.answer)?[...e.answer].sort():[e.answer];return n.length===r.length&&n.every((e,t)=>e===r[t])}return t===e.answer}return N(t,()=>{c()}),{activeQuiz:r,completedQuizIds:i,selectedAnswer:a,showResult:o,lastAnswerCorrect:s,submitAnswer:u,closeQuiz:d,retryQuiz:f}}function ue(e,t){let n=T(!1),r=null;function i(){!e.value||!t.value||(r=new IntersectionObserver(([e])=>{n.value=!e.isIntersecting},{threshold:.3}),r.observe(e.value))}function a(){r&&=(r.disconnect(),null),n.value=!1}function o(){e.value?.scrollIntoView({behavior:`smooth`,block:`center`})}function s(){n.value=!1,a()}return S(()=>{a()}),{isMiniMode:n,initObserver:i,destroyObserver:a,scrollToPlayer:o,closeMiniPlayer:s}}function de(e,t,n={}){let{enabled:r=!0,onToggleFullscreen:i}=n,a={" ":(e,t)=>{e.preventDefault(),t.paused?t.play():t.pause()},ArrowLeft:(e,t)=>{e.preventDefault(),t.currentTime=Math.max(0,(t.currentTime??0)-5)},ArrowRight:(e,t)=>{e.preventDefault(),t.currentTime=Math.min(t.duration??0,(t.currentTime??0)+5)},ArrowUp:(e,t)=>{e.preventDefault(),t.volume=Math.min(1,(t.volume??0)+G)},ArrowDown:(e,t)=>{e.preventDefault(),t.volume=Math.max(0,(t.volume??0)-G)},f:e=>{e.preventDefault(),i?.()},F:e=>{e.preventDefault(),i?.()},m:(e,t)=>{e.preventDefault(),t.volume=t.volume>0?0:.75},M:(e,t)=>{e.preventDefault(),t.volume=t.volume>0?0:.75}};function o(t){if(!r)return;let n=e.value;if(!n)return;let i=t.target;if(i.tagName===`INPUT`||i.tagName===`TEXTAREA`||i.isContentEditable)return;let o=a[t.key];o?.(t,n)}function s(){r&&t.value?.addEventListener(`keydown`,o)}function c(){t.value?.removeEventListener(`keydown`,o)}return S(()=>{c()}),{startListening:s,stopListening:c}}function fe(e,t){function n(t,n){return{type:t,currentTime:e.currentTime??0,timestamp:Date.now(),payload:n}}function r(e,r){t(n(e,r))}let i=()=>r(`play`),a=()=>r(`pause`),o=()=>r(`ended`),s=()=>r(`seek`),c=()=>r(`error`),l=()=>r(`buffer`),u=e=>{r(`fullscreen`,{isFullscreen:e})},d=e=>{r(`quality_change`,e)},f=()=>{r(`speed_change`,{rate:e.playbackRate})};e.on(F.PLAY,i),e.on(F.PAUSE,a),e.on(F.ENDED,o),e.on(F.SEEKED,s),e.on(F.ERROR,c),e.on(F.WAITING,l),e.on(F.FULLSCREEN_CHANGE,u),e.on(F.DEFINITION_CHANGE,d),e.on(F.RATE_CHANGE,f);function p(){e.off(F.PLAY,i),e.off(F.PAUSE,a),e.off(F.ENDED,o),e.off(F.SEEKED,s),e.off(F.ERROR,c),e.off(F.WAITING,l),e.off(F.FULLSCREEN_CHANGE,u),e.off(F.DEFINITION_CHANGE,d),e.off(F.RATE_CHANGE,f)}return{report:r,destroy:p}}const pe={key:0,class:`vp-control-bar`},me={class:`vp-control-bar__left`},he={class:`vp-control-bar__center`},ge={class:`vp-control-bar__right`};var _e=e(_({__name:`ControlBar`,props:{visible:{type:Boolean,default:!0}},setup(e){return(e,t)=>e.visible?(w(),p(`div`,pe,[m(`div`,me,[D(e.$slots,`left`,{},void 0,!0)]),m(`div`,he,[D(e.$slots,`center`,{},void 0,!0)]),m(`div`,ge,[D(e.$slots,`right`,{},void 0,!0)])])):f(`v-if`,!0)}}),[[`__scopeId`,`data-v-ea44a973`]]);const ve={key:0,class:`vp-subtitle-overlay`},ye={class:`vp-subtitle-text`},be={key:0,class:`vp-subtitle-toggle`},xe={class:`vp-subtitle-menu`},Se=[`onClick`];var Ce=e(_({__name:`SubtitleOverlay`,props:{text:{},tracks:{},activeLanguage:{}},emits:[`switch`,`close`],setup(e){return(e,t)=>{let r=n,i=a;return w(),p(c,null,[f(` 字幕文本 `),g(l,{name:`vp-subtitle-fade`},{default:P(()=>[e.text?(w(),p(`div`,ve,[m(`span`,ye,A(e.text),1)])):f(`v-if`,!0)]),_:1}),f(` 字幕切换按钮(叠加在播放器控制栏上方) `),e.tracks.length?(w(),p(`div`,be,[g(i,{trigger:`click`,placement:`top`,"show-arrow":!1},{trigger:P(()=>[g(r,{quaternary:``,size:`small`,class:b([`vp-subtitle-btn`,{"is-active":!!e.activeLanguage}])},{default:P(()=>t[1]||=[h(` 字幕 `,-1)]),_:1,__:[1]},8,[`class`])]),default:P(()=>[m(`div`,xe,[m(`div`,{class:b([`vp-subtitle-menu__item`,{"is-active":!e.activeLanguage}]),onClick:t[0]||=t=>e.$emit(`close`)},` 关闭字幕 `,2),(w(!0),p(c,null,E(e.tracks,t=>(w(),p(`div`,{key:t.language,class:b([`vp-subtitle-menu__item`,{"is-active":e.activeLanguage===t.language}]),onClick:n=>e.$emit(`switch`,t.language)},A(t.label),11,Se))),128))])]),_:1})])):f(`v-if`,!0)],64)}}}),[[`__scopeId`,`data-v-1069c4da`]]);const we={key:0,class:`vp-chapter-markers`},Te={key:0,class:`vp-chapter-current`},Ee={class:`vp-chapter-index`},De={class:`vp-chapter-title`},Oe={class:`vp-chapter-list`},ke=[`onClick`],Ae={class:`vp-chapter-item-index`},je={class:`vp-chapter-item-title`},Me={class:`vp-chapter-item-time`};var Ne=e(_({__name:`ChapterMarkers`,props:{chapters:{},currentChapter:{},currentIndex:{}},emits:[`goTo`],setup(e){function t(e){let t=Math.floor(e/60),n=Math.floor(e%60);return`${t.toString().padStart(2,`0`)}:${n.toString().padStart(2,`0`)}`}return(e,r)=>{let i=n,o=a;return e.chapters.length?(w(),p(`div`,we,[f(` 当前章节信息 `),e.currentChapter?(w(),p(`div`,Te,[m(`span`,Ee,A(e.currentIndex+1)+`/`+A(e.chapters.length),1),m(`span`,De,A(e.currentChapter.title),1)])):f(`v-if`,!0),f(` 章节列表面板 `),g(o,{trigger:`click`,placement:`top-start`,"show-arrow":!1,style:{"max-height":`300px`,"overflow-y":`auto`}},{trigger:P(()=>[g(i,{quaternary:``,size:`small`,class:`vp-chapter-trigger`},{icon:P(()=>r[0]||=[m(`span`,{class:`vp-chapter-icon`},`☰`,-1)]),default:P(()=>[r[1]||=h(` 章节 `,-1)]),_:1,__:[1]})]),default:P(()=>[m(`div`,Oe,[(w(!0),p(c,null,E(e.chapters,(n,r)=>(w(),p(`div`,{key:n.id,class:b([`vp-chapter-item`,{"is-active":n.id===e.currentChapter?.id}]),onClick:t=>e.$emit(`goTo`,n.id)},[m(`span`,Ae,A(r+1),1),m(`span`,je,A(n.title),1),m(`span`,Me,A(t(n.startTime)),1)],10,ke))),128))])]),_:1})])):f(`v-if`,!0)}}}),[[`__scopeId`,`data-v-3218c0f1`]]);const Pe={class:`vp-bookmark-panel`},Fe={class:`vp-bookmark-list`},Ie=[`onClick`],Le={class:`vp-bookmark-note`};var Re=e(_({__name:`BookmarkPanel`,props:{bookmarks:{}},emits:[`add`,`remove`,`goTo`],setup(e,{emit:r}){let i=r;function o(){i(`add`,``)}function s(e){let t=Math.floor(e/60),n=Math.floor(e%60);return`${t.toString().padStart(2,`0`)}:${n.toString().padStart(2,`0`)}`}return(e,r)=>{let i=n,l=t,u=a;return w(),p(`div`,Pe,[f(` 添加书签按钮 `),g(i,{quaternary:``,size:`small`,class:`vp-bookmark-add-btn`,onClick:o},{icon:P(()=>r[0]||=[m(`span`,null,`🔖`,-1)]),default:P(()=>[r[1]||=h(` 书签 `,-1)]),_:1,__:[1]}),f(` 书签列表弹窗 `),e.bookmarks.length?(w(),d(u,{key:0,trigger:`click`,placement:`top-start`,"show-arrow":!1,style:{"max-height":`300px`,"overflow-y":`auto`}},{trigger:P(()=>[g(l,{value:e.bookmarks.length,max:99,type:`info`},{default:P(()=>[g(i,{quaternary:``,size:`small`,class:`vp-bookmark-list-btn`},{default:P(()=>r[2]||=[h(` 列表 `,-1)]),_:1,__:[2]})]),_:1},8,[`value`])]),default:P(()=>[m(`div`,Fe,[(w(!0),p(c,null,E(e.bookmarks,t=>(w(),p(`div`,{key:t.id,class:`vp-bookmark-item`},[m(`span`,{class:`vp-bookmark-time`,onClick:n=>e.$emit(`goTo`,t.id)},A(s(t.time)),9,Ie),m(`span`,Le,A(t.note||`无备注`),1),g(i,{quaternary:``,size:`tiny`,type:`error`,onClick:n=>e.$emit(`remove`,t.id)},{default:P(()=>r[3]||=[h(` ✕ `,-1)]),_:2,__:[3]},1032,[`onClick`])]))),128))])]),_:1})):f(`v-if`,!0)])}}}),[[`__scopeId`,`data-v-c353e3d6`]]);const ze={key:0,class:`vp-quiz-overlay`},Be={class:`vp-quiz-card`},Ve={class:`vp-quiz-header`},He={class:`vp-quiz-type-tag`},Ue={class:`vp-quiz-title`},We={class:`vp-quiz-options`},Ge={class:`vp-quiz-actions`};var Ke=e(_({__name:`QuizOverlay`,props:v({quiz:{},showResult:{type:Boolean,default:!1},isCorrect:{type:Boolean,default:!1}},{answer:{default:``},answerModifiers:{}}),emits:v([`submit`,`retry`,`close`],[`update:answer`]),setup(e){let t=e,a=T(``),_=T([]),v=M(e,`answer`),y=u(()=>({single:`单选题`,multiple:`多选题`,judge:`判断题`})[t.quiz?.type??`single`]??`单选题`),x=u(()=>t.quiz?.type===`multiple`?_.value.length>0:a.value!==``);return N(a,e=>{t.quiz?.type!==`multiple`&&(v.value=e)}),N(_,e=>{t.quiz?.type===`multiple`&&(v.value=[...e])}),N(()=>t.quiz?.id,()=>{a.value=``,_.value=[]}),(e,t)=>{let u=r,v=i,S=o,C=s,T=n;return w(),d(l,{name:`vp-quiz-fade`},{default:P(()=>[e.quiz?(w(),p(`div`,ze,[m(`div`,Be,[f(` 标题 `),m(`div`,Ve,[m(`span`,He,A(y.value),1),m(`h3`,Ue,A(e.quiz.title),1)]),f(` 选项 `),m(`div`,We,[e.quiz.type===`multiple`?(w(),d(v,{key:0,value:_.value,"onUpdate:value":t[0]||=e=>_.value=e,disabled:e.showResult},{default:P(()=>[(w(!0),p(c,null,E(e.quiz.options,e=>(w(),p(`div`,{key:e.key,class:`vp-quiz-option`},[g(u,{value:e.key,label:`${e.key}. ${e.label}`},null,8,[`value`,`label`])]))),128))]),_:1},8,[`value`,`disabled`])):(w(),d(C,{key:1,value:a.value,"onUpdate:value":t[1]||=e=>a.value=e,disabled:e.showResult},{default:P(()=>[(w(!0),p(c,null,E(e.quiz.options,e=>(w(),p(`div`,{key:e.key,class:`vp-quiz-option`},[g(S,{value:e.key,label:`${e.key}. ${e.label}`},null,8,[`value`,`label`])]))),128))]),_:1},8,[`value`,`disabled`]))]),f(` 结果反馈 `),e.showResult?(w(),p(`div`,{key:0,class:b([`vp-quiz-result`,e.isCorrect?`is-correct`:`is-wrong`])},A(e.isCorrect?`✓ 回答正确!`:`✗ 回答错误,请重试`),3)):f(`v-if`,!0),f(` 操作按钮 `),m(`div`,Ge,[e.showResult?(w(),p(c,{key:1},[!e.isCorrect&&e.quiz.required?(w(),d(T,{key:0,type:`warning`,onClick:t[3]||=t=>e.$emit(`retry`)},{default:P(()=>t[6]||=[h(` 重新作答 `,-1)]),_:1,__:[6]})):f(`v-if`,!0),e.isCorrect||!e.quiz.required?(w(),d(T,{key:1,type:`primary`,onClick:t[4]||=t=>e.$emit(`close`)},{default:P(()=>t[7]||=[h(` 继续学习 `,-1)]),_:1,__:[7]})):f(`v-if`,!0)],64)):(w(),d(T,{key:0,type:`primary`,disabled:!x.value,onClick:t[2]||=t=>e.$emit(`submit`)},{default:P(()=>t[5]||=[h(` 提交答案 `,-1)]),_:1,__:[5]},8,[`disabled`]))])])])):f(`v-if`,!0)]),_:1})}}}),[[`__scopeId`,`data-v-a8cd8fbf`]]),qe=e(_({__name:`WatermarkOverlay`,props:{visible:{type:Boolean,default:!0},text:{default:``},fontSize:{default:J.fontSize},color:{default:J.color},rotate:{default:J.rotate},gap:{default:J.gap}},setup(e){let t=e,n=u(()=>{let e=t.gap*t.gap;return Math.ceil(2073600/e)}),r=u(()=>({position:`absolute`,inset:0,overflow:`hidden`,pointerEvents:`none`,zIndex:50,display:`flex`,flexWrap:`wrap`,alignContent:`flex-start`,gap:`${t.gap}px`,padding:`${t.gap/2}px`})),i=u(()=>({fontSize:`${t.fontSize}px`,color:t.color,transform:`rotate(${t.rotate}deg)`,userSelect:`none`,whiteSpace:`nowrap`,lineHeight:1}));return(e,t)=>e.visible&&e.text?(w(),p(`div`,{key:0,class:`vp-watermark`,style:x(r.value)},[(w(!0),p(c,null,E(n.value,t=>(w(),p(`span`,{key:t,class:`vp-watermark-item`,style:x(i.value)},A(e.text),5))),128))],4)):f(`v-if`,!0)}}),[[`__scopeId`,`data-v-6928c31a`]]),Je=e(_({name:`C_VideoPlayer`,__name:`index`,props:{url:{},sourceType:{},width:{},height:{},poster:{},fluid:{type:Boolean},autoplay:{type:Boolean},autoplayMuted:{type:Boolean},loop:{type:Boolean},volume:{},startTime:{},playbackRates:{},defaultPlaybackRate:{},pip:{type:Boolean},fullscreen:{type:Boolean},cssFullscreen:{type:Boolean},miniPlayer:{type:Boolean},screenshot:{type:Boolean},keyboard:{type:Boolean},lang:{},qualityList:{},defaultQuality:{},chapters:{},subtitles:{},quizzes:{},bookmarks:{},thumbnail:{},onProgress:{type:Function},antiCheat:{},onAnalytics:{type:Function},playerOptions:{}},emits:[`ready`,`stateChange`,`timeUpdate`,`ended`,`error`,`qualityChange`,`rateChange`,`fullscreenChange`,`bookmarkChange`,`quizAnswer`,`chapterChange`,`progressUpdate`],setup(e,{expose:t,emit:n}){let r=e,i=n,a=Y(r),{containerRef:o,playerRef:s,playerState:c,currentTime:l,duration:h,isFullscreen:_}=a,v=T(null),x=X(s),E=ee(r,`url`),D=Z(s,l,h,E,r.onProgress,r.antiCheat),O=ie(s,r.qualityList),k=u(()=>r.chapters??[]),A=Q(k,l,h,x.seek),M=$(E,l,x.seek,r.bookmarks),I=ae(s,l,r.antiCheat),L=ce(s,r.subtitles,l),R=le(s,l,u(()=>r.quizzes??[])),z=ue(v,u(()=>r.miniPlayer??!1)),B=de(s,v,{enabled:r.keyboard!==!1,onToggleFullscreen:()=>{s.value?.getFullscreen?.()}}),V=null;function H(e){M.addBookmark(e),i(`bookmarkChange`,M.bookmarks.value)}function U(){let e=R.submitAnswer(),t=R.activeQuiz.value;t&&i(`quizAnswer`,t.id,R.selectedAnswer.value,e)}function W(){R.closeQuiz()}return N(c,e=>{i(`stateChange`,e)}),N(_,e=>{i(`fullscreenChange`,e)}),N(()=>A.currentChapter.value,e=>{e&&i(`chapterChange`,e)}),C(async()=>{a.containerRef.value=o.value,await y(),await a.initPlayer();let e=s.value;if(!e)return;O.bindEvents(e),I.bindEvents(e),L.initSubtitles(),B.startListening(),z.initObserver();let t=D.restoreProgress();t>0&&r.startTime===void 0&&(e.currentTime=t),e.on(F.PLAY,()=>{D.onPlay()}),e.on(F.PAUSE,()=>{D.onPause()}),e.on(F.TIME_UPDATE,()=>{D.onTimeUpdate(),i(`timeUpdate`,l.value,h.value),i(`progressUpdate`,D.getProgressData())}),e.on(F.ENDED,()=>{i(`ended`),I.markAsWatched()}),e.on(F.ERROR,()=>{i(`error`,Error(`播放器错误`))}),e.on(F.READY,()=>{i(`ready`)}),e.on(F.AFTER_DEFINITION_CHANGE,e=>{i(`qualityChange`,e.to)}),e.on(F.RATE_CHANGE,e=>{i(`rateChange`,e)}),r.onAnalytics&&(V=fe(e,r.onAnalytics).destroy)}),S(()=>{V?.(),B.stopListening(),z.destroyObserver(),D.stopTracking(),a.destroyPlayer()}),t({play:x.play,pause:x.pause,seek:x.seek,setPlaybackRate:x.setPlaybackRate,setVolume:x.setVolume,switchQuality:O.switchQuality,getProgressData:D.getProgressData,destroy:a.destroyPlayer,getPlayerInstance:()=>s.value}),(e,t)=>(w(),p(`div`,{ref_key:`wrapperRef`,ref:v,class:b([`c-video-player`,{"is-mini":j(z).isMiniMode.value,"is-fullscreen":j(_)}]),tabindex:`0`},[f(` 播放器容器 `),m(`div`,{ref_key:`containerRef`,ref:o,class:`c-video-player__container`},null,512),f(` 动态水印 `),g(qe,{visible:j(I).showWatermark.value,text:j(I).watermarkText.value},null,8,[`visible`,`text`]),f(` 字幕渲染层 `),g(Ce,{text:j(L).currentText.value,tracks:j(L).subtitleList.value,"active-language":j(L).activeLanguage.value,onSwitch:j(L).switchSubtitle,onClose:j(L).closeSubtitle},null,8,[`text`,`tracks`,`active-language`,`onSwitch`,`onClose`]),f(` 测验弹窗 `),r.quizzes?.length?(w(),d(Ke,{key:0,answer:j(R).selectedAnswer.value,"onUpdate:answer":t[0]||=e=>j(R).selectedAnswer.value=e,quiz:j(R).activeQuiz.value,"show-result":j(R).showResult.value,"is-correct":j(R).lastAnswerCorrect.value,onSubmit:U,onRetry:t[1]||=e=>j(R).retryQuiz(),onClose:W},null,8,[`answer`,`quiz`,`show-result`,`is-correct`])):f(`v-if`,!0),f(` 扩展控制栏(xgplayer 自带控制栏外的扩展) `),g(_e,{visible:!0},{left:P(()=>[f(` 章节标记 `),r.chapters?.length?(w(),d(Ne,{key:0,chapters:k.value,"current-chapter":j(A).currentChapter.value,"current-index":j(A).currentChapterIndex.value,onGoTo:j(A).goToChapter},null,8,[`chapters`,`current-chapter`,`current-index`,`onGoTo`])):f(`v-if`,!0)]),right:P(()=>[f(` 书签面板 `),g(Re,{bookmarks:j(M).bookmarks.value,onAdd:H,onRemove:j(M).removeBookmark,onGoTo:j(M).goToBookmark},null,8,[`bookmarks`,`onRemove`,`onGoTo`])]),_:1}),f(` 小窗关闭按钮 `),j(z).isMiniMode.value?(w(),p(`div`,{key:1,class:`c-video-player__mini-close`,onClick:t[2]||=e=>j(z).closeMiniPlayer()},` ✕ `)):f(`v-if`,!0),f(` 小窗点击回原位 `),j(z).isMiniMode.value?(w(),p(`div`,{key:2,class:`c-video-player__mini-back`,onClick:t[3]||=e=>j(z).scrollToPlayer()},` 回到原位 `)):f(`v-if`,!0)],2))}}),[[`__scopeId`,`data-v-aa85a210`]]);export{q as _,Z as a,J as b,z as c,R as d,U as f,H as g,W as h,Q as i,L as l,V as m,ce as n,X as o,B as p,$ as r,Y as s,Je as t,I as u,K as v,G as y};
|
|
4
4
|
//# sourceMappingURL=C_VideoPlayer2.js.map
|