@robot-admin/naive-ui-components 0.10.2 → 0.11.0
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/CHANGELOG.md +111 -94
- package/LICENSE +21 -21
- package/README.md +463 -315
- package/README_EN.md +404 -0
- package/SECURITY.md +23 -0
- package/dist/C_ActionBar.cjs +1 -1
- package/dist/C_ActionBar.css +46 -48
- package/dist/C_ActionBar.d.cts +1 -1
- package/dist/C_ActionBar.js +1 -1
- package/dist/C_ActionBar2.cjs +1 -0
- package/dist/C_ActionBar2.js +1 -2
- package/dist/C_AntV.cjs +1 -1
- package/dist/C_AntV.css +3 -3
- package/dist/C_AntV.d.cts +1 -1
- package/dist/C_AntV.js +1 -1
- package/dist/C_AntV2.cjs +4 -0
- package/dist/C_AntV2.js +3 -4
- package/dist/C_AudioPlayer.cjs +1 -1
- package/dist/C_AudioPlayer.css +15 -7
- package/dist/C_AudioPlayer.d.cts +1 -1
- package/dist/C_AudioPlayer.js +1 -1
- package/dist/C_AudioPlayer2.cjs +1 -0
- package/dist/C_AudioPlayer2.js +1 -2
- package/dist/C_AvatarGroup.cjs +1 -1
- package/dist/C_AvatarGroup.css +15 -7
- package/dist/C_AvatarGroup.d.cts +1 -1
- package/dist/C_AvatarGroup2.cjs +1 -0
- package/dist/C_AvatarGroup2.js +1 -2
- package/dist/C_Barcode.cjs +1 -1
- package/dist/C_Barcode.css +0 -2
- package/dist/C_Barcode.d.cts +1 -1
- package/dist/C_Barcode2.cjs +1 -0
- package/dist/C_Barcode2.js +1 -2
- package/dist/C_Breadcrumb.cjs +1 -1
- package/dist/C_Breadcrumb.css +0 -2
- package/dist/C_Breadcrumb.d.cts +2 -2
- package/dist/C_Breadcrumb.d.ts +1 -1
- package/dist/C_Breadcrumb.js +1 -1
- package/dist/C_Breadcrumb2.cjs +1 -0
- package/dist/C_Breadcrumb2.js +1 -2
- package/dist/C_Captcha.cjs +1 -1
- package/dist/C_Captcha.css +46 -21
- package/dist/C_Captcha.d.cts +3 -2
- package/dist/C_Captcha.d.ts +3 -2
- package/dist/C_Captcha.js +1 -1
- package/dist/C_Captcha2.cjs +1 -0
- package/dist/C_Captcha2.js +1 -2
- package/dist/C_Cascade.cjs +1 -1
- package/dist/C_Cascade.css +0 -2
- package/dist/C_Cascade.d.cts +1 -1
- package/dist/C_Cascade.d.ts +1 -1
- package/dist/C_Cascade2.cjs +1 -0
- package/dist/C_Cascade2.js +1 -2
- package/dist/C_Chat.cjs +1 -1
- package/dist/C_Chat.css +0 -2
- package/dist/C_Chat.d.cts +1 -1
- package/dist/C_Chat.d.ts +1 -1
- package/dist/C_Chat.js +1 -1
- package/dist/C_Chat2.cjs +1 -0
- package/dist/C_Chat2.js +1 -2
- package/dist/C_City.cjs +1 -1
- package/dist/C_City.css +28 -30
- package/dist/C_City.d.cts +1 -1
- package/dist/C_City.d.ts +1 -1
- package/dist/C_City2.cjs +1 -0
- package/dist/C_City2.js +1 -2
- package/dist/C_Code.cjs +1 -1
- package/dist/C_Code.css +241 -4
- package/dist/C_Code.d.cts +1 -1
- package/dist/C_Code.d.ts +1 -1
- package/dist/C_Code.js +1 -1
- package/dist/C_Code2.cjs +1 -0
- package/dist/C_Code2.js +1 -2
- package/dist/C_CollapsePanel.cjs +1 -1
- package/dist/C_CollapsePanel.css +12 -6
- package/dist/C_CollapsePanel.d.cts +1 -1
- package/dist/C_CollapsePanel.js +1 -1
- package/dist/C_CollapsePanel2.cjs +1 -0
- package/dist/C_CollapsePanel2.js +1 -2
- package/dist/C_ContextMenu.cjs +1 -1
- package/dist/C_ContextMenu.css +16 -18
- package/dist/C_ContextMenu.d.cts +1 -1
- package/dist/C_ContextMenu.d.ts +1 -1
- package/dist/C_ContextMenu.js +1 -1
- package/dist/C_ContextMenu2.cjs +1 -0
- package/dist/C_ContextMenu2.js +1 -2
- package/dist/C_Cron.cjs +1 -1
- package/dist/C_Cron.css +18 -8
- package/dist/C_Cron.d.cts +1 -1
- package/dist/C_Cron.js +1 -1
- package/dist/C_Cron2.cjs +1 -0
- package/dist/C_Cron2.js +1 -2
- package/dist/C_Date.cjs +1 -1
- package/dist/C_Date.css +1 -0
- package/dist/C_Date.d.cts +2 -2
- package/dist/C_Date.d.ts +2 -2
- package/dist/C_Date2.cjs +1 -0
- package/dist/C_Date2.js +1 -2
- package/dist/C_Draggable.cjs +1 -1
- package/dist/C_Draggable.css +9 -5
- package/dist/C_Draggable.d.cts +1 -1
- package/dist/C_Draggable2.cjs +1 -0
- package/dist/C_Draggable2.js +1 -2
- package/dist/C_Editor.cjs +1 -1
- package/dist/C_Editor.css +80 -67
- package/dist/C_Editor.d.cts +1 -1
- package/dist/C_Editor.d.ts +1 -1
- package/dist/C_Editor2.cjs +1 -0
- package/dist/C_Editor2.js +1 -2
- package/dist/C_FilePreview.cjs +1 -1
- package/dist/C_FilePreview.css +0 -2
- package/dist/C_FilePreview.d.cts +1 -1
- package/dist/C_FilePreview.js +1 -1
- package/dist/C_FilePreview2.cjs +1 -0
- package/dist/C_FilePreview2.js +1 -2
- package/dist/C_Form.base.css +980 -0
- package/dist/C_Form.cjs +1 -1
- package/dist/C_Form.css +256 -155
- package/dist/C_Form.d.cts +2 -2
- package/dist/C_Form.d.ts +2 -2
- package/dist/C_Form.js +1 -1
- package/dist/C_Form2.cjs +1 -0
- package/dist/C_Form2.js +1 -2
- package/dist/C_FormSearch.cjs +1 -1
- package/dist/C_FormSearch.css +47 -47
- package/dist/C_FormSearch.d.cts +2 -2
- package/dist/C_FormSearch.d.ts +2 -2
- package/dist/C_FormSearch2.cjs +1 -0
- package/dist/C_FormSearch2.js +1 -2
- package/dist/C_FormulaEditor.cjs +1 -1
- package/dist/C_FormulaEditor.css +64 -38
- package/dist/C_FormulaEditor.d.cts +1 -1
- package/dist/C_FormulaEditor.js +1 -1
- package/dist/C_FormulaEditor2.cjs +2 -0
- package/dist/C_FormulaEditor2.js +2 -2
- package/dist/C_FullCalendar.cjs +1 -1
- package/dist/C_FullCalendar.css +0 -2
- package/dist/C_FullCalendar.d.cts +1 -1
- package/dist/C_FullCalendar2.cjs +1 -0
- package/dist/C_FullCalendar2.js +1 -2
- package/dist/C_GlobalSearch.cjs +1 -1
- package/dist/C_GlobalSearch.css +111 -113
- package/dist/C_GlobalSearch.d.cts +1 -1
- package/dist/C_GlobalSearch2.cjs +1 -0
- package/dist/C_GlobalSearch2.js +1 -2
- package/dist/C_Guide.cjs +1 -1
- package/dist/C_Guide.css +1 -0
- package/dist/C_Guide.d.cts +1 -1
- package/dist/C_Guide.d.ts +1 -1
- package/dist/C_Guide.js +1 -1
- package/dist/C_Guide2.cjs +1 -0
- package/dist/C_Guide2.js +1 -2
- package/dist/C_Icon.cjs +1 -1
- package/dist/C_Icon.css +58 -0
- package/dist/C_Icon.d.cts +1 -1
- package/dist/C_Icon.d.ts +1 -1
- package/dist/C_Icon2.cjs +1 -0
- package/dist/C_Icon2.js +1 -2
- package/dist/C_ImageCropper.cjs +1 -1
- package/dist/C_ImageCropper.css +0 -2
- package/dist/C_ImageCropper.d.cts +1 -1
- package/dist/C_ImageCropper.js +1 -1
- package/dist/C_ImageCropper2.cjs +1 -0
- package/dist/C_ImageCropper2.js +1 -2
- package/dist/C_Language.cjs +1 -1
- package/dist/C_Language.css +1 -0
- package/dist/C_Language.d.cts +1 -1
- package/dist/C_Language.d.ts +1 -1
- package/dist/C_Language.js +1 -1
- package/dist/C_Language2.cjs +1 -0
- package/dist/C_Language2.js +1 -2
- package/dist/C_Login.cjs +1 -1
- package/dist/C_Login.css +92 -76
- package/dist/C_Login.d.cts +1 -1
- package/dist/C_Login.d.ts +1 -1
- package/dist/C_Login.js +1 -1
- package/dist/C_Login2.cjs +1 -0
- package/dist/C_Login2.js +1 -2
- package/dist/C_Map.cjs +1 -1
- package/dist/C_Map.css +665 -5
- package/dist/C_Map.d.cts +1 -1
- package/dist/C_Map2.cjs +1 -0
- package/dist/C_Map2.js +1 -2
- package/dist/C_Markdown.cjs +1 -1
- package/dist/C_Markdown.css +940 -35
- package/dist/C_Markdown.d.cts +1 -1
- package/dist/C_Markdown.d.ts +1 -1
- package/dist/C_Markdown2.cjs +1 -0
- package/dist/C_Markdown2.js +1 -2
- package/dist/C_Menu.cjs +1 -1
- package/dist/C_Menu.css +1 -0
- package/dist/C_Menu.d.cts +3 -3
- package/dist/C_Menu.d.ts +3 -3
- package/dist/C_Menu2.cjs +1 -0
- package/dist/C_Menu2.js +1 -2
- package/dist/C_NotificationCenter.cjs +1 -1
- package/dist/C_NotificationCenter.css +95 -47
- package/dist/C_NotificationCenter.d.cts +1 -1
- package/dist/C_NotificationCenter.js +1 -1
- package/dist/C_NotificationCenter2.cjs +1 -0
- package/dist/C_NotificationCenter2.js +1 -2
- package/dist/C_OrgChart.cjs +1 -1
- package/dist/C_OrgChart.css +6 -4
- package/dist/C_OrgChart.d.cts +1 -1
- package/dist/C_OrgChart.d.ts +1 -1
- package/dist/C_OrgChart2.cjs +1 -0
- package/dist/C_OrgChart2.js +1 -2
- package/dist/C_Progress.cjs +1 -1
- package/dist/C_Progress.css +1 -0
- package/dist/C_Progress.d.cts +1 -1
- package/dist/C_Progress.d.ts +1 -1
- package/dist/C_Progress2.cjs +1 -0
- package/dist/C_Progress2.js +1 -2
- package/dist/C_QRCode.cjs +1 -1
- package/dist/C_QRCode.css +8 -10
- package/dist/C_QRCode.d.cts +1 -1
- package/dist/C_QRCode2.cjs +1 -0
- package/dist/C_QRCode2.js +1 -2
- package/dist/C_Signature.cjs +1 -1
- package/dist/C_Signature.css +0 -2
- package/dist/C_Signature.d.cts +1 -1
- package/dist/C_Signature.js +1 -1
- package/dist/C_Signature2.cjs +1 -0
- package/dist/C_Signature2.js +1 -2
- package/dist/C_Skeleton.cjs +1 -1
- package/dist/C_Skeleton.css +0 -2
- package/dist/C_Skeleton.d.cts +1 -1
- package/dist/C_Skeleton.d.ts +1 -1
- package/dist/C_Skeleton2.cjs +1 -0
- package/dist/C_Skeleton2.js +1 -2
- package/dist/C_SplitPane.cjs +1 -1
- package/dist/C_SplitPane.css +27 -11
- package/dist/C_SplitPane.d.cts +1 -1
- package/dist/C_SplitPane.js +1 -1
- package/dist/C_SplitPane2.cjs +1 -0
- package/dist/C_SplitPane2.js +1 -2
- package/dist/C_Steps.cjs +1 -1
- package/dist/C_Steps.css +37 -39
- package/dist/C_Steps.d.cts +1 -1
- package/dist/C_Steps.d.ts +1 -1
- package/dist/C_Steps2.cjs +1 -0
- package/dist/C_Steps2.js +1 -2
- package/dist/C_Table.base.css +1588 -0
- package/dist/C_Table.cjs +1 -1
- package/dist/C_Table.css +1202 -112
- package/dist/C_Table.d.cts +2 -2
- package/dist/C_Table.d.ts +11 -2
- package/dist/C_Table.js +1 -1
- package/dist/C_TagsView.cjs +1 -1
- package/dist/C_TagsView.css +44 -40
- package/dist/C_TagsView.d.cts +2 -2
- package/dist/C_TagsView.d.ts +2 -2
- package/dist/C_TagsView.js +1 -1
- package/dist/C_TagsView2.cjs +1 -0
- package/dist/C_TagsView2.js +1 -2
- package/dist/C_Theme.cjs +1 -1
- package/dist/C_Theme.css +1 -0
- package/dist/C_Theme.d.cts +1 -1
- package/dist/C_Theme.d.ts +1 -1
- package/dist/C_Theme.js +1 -1
- package/dist/C_Theme2.cjs +1 -0
- package/dist/C_Theme2.js +1 -2
- package/dist/C_Time.cjs +1 -1
- package/dist/C_Time.css +0 -2
- package/dist/C_Time.d.cts +2 -2
- package/dist/C_Time.d.ts +2 -2
- package/dist/C_Time2.cjs +1 -0
- package/dist/C_Time2.js +1 -2
- package/dist/C_Timeline.cjs +1 -1
- package/dist/C_Timeline.css +44 -46
- package/dist/C_Timeline.d.cts +1 -1
- package/dist/C_Timeline.js +1 -1
- package/dist/C_Timeline2.cjs +1 -0
- package/dist/C_Timeline2.js +1 -2
- package/dist/C_Transfer.cjs +1 -1
- package/dist/C_Transfer.css +21 -9
- package/dist/C_Transfer.d.cts +1 -1
- package/dist/C_Transfer.js +1 -1
- package/dist/C_Transfer2.cjs +1 -0
- package/dist/C_Transfer2.js +1 -2
- package/dist/C_Tree.cjs +1 -1
- package/dist/C_Tree.css +0 -2
- package/dist/C_Tree.d.cts +1 -1
- package/dist/C_Tree.js +1 -1
- package/dist/C_Tree2.cjs +1 -0
- package/dist/C_Tree2.js +1 -2
- package/dist/C_Upload.cjs +1 -1
- package/dist/C_Upload.css +17 -17
- package/dist/C_Upload.d.cts +1 -1
- package/dist/C_Upload.js +1 -1
- package/dist/C_Upload2.cjs +1 -0
- package/dist/C_Upload2.js +1 -25
- package/dist/C_VideoPlayer.cjs +1 -1
- package/dist/C_VideoPlayer.css +35 -24
- package/dist/C_VideoPlayer.d.cts +2 -2
- package/dist/C_VideoPlayer.d.ts +2 -2
- package/dist/C_VideoPlayer.js +1 -1
- package/dist/C_VideoPlayer2.cjs +3 -0
- package/dist/C_VideoPlayer2.js +3 -4
- package/dist/C_VtableGantt.cjs +1 -1
- package/dist/C_VtableGantt.css +15 -7
- package/dist/C_VtableGantt.d.cts +1 -1
- package/dist/C_VtableGantt.d.ts +1 -1
- package/dist/C_VtableGantt.js +1 -1
- package/dist/C_VtableGantt2.cjs +1 -0
- package/dist/C_VtableGantt2.js +1 -2
- package/dist/C_WaterFall.cjs +1 -1
- package/dist/C_WaterFall.css +15 -17
- package/dist/C_WaterFall.d.cts +1 -1
- package/dist/C_WaterFall2.cjs +1 -0
- package/dist/C_WaterFall2.js +1 -2
- package/dist/C_WorkFlow.cjs +1 -1
- package/dist/C_WorkFlow.css +257 -197
- package/dist/C_WorkFlow.d.cts +1 -1
- package/dist/C_WorkFlow.js +1 -1
- package/dist/C_WorkFlow2.cjs +1 -0
- package/dist/C_WorkFlow2.js +1 -2
- package/dist/city.cjs +1 -0
- package/dist/city.js +1 -2
- package/dist/config.cjs +1 -0
- package/dist/config.d.cts +33 -0
- package/dist/config.d.ts +33 -0
- package/dist/config.js +1 -0
- package/dist/constants.d.cts +272 -0
- package/dist/constants.d.ts +2 -3
- package/dist/constants2.d.cts +177 -0
- package/dist/constants2.d.ts +3 -4
- package/dist/constants3.d.cts +479 -0
- package/dist/constants3.d.ts +16 -12
- package/dist/constants4.d.cts +420 -0
- package/dist/constants4.d.ts +27 -37
- package/dist/constants5.d.cts +491 -0
- package/dist/constants5.d.ts +20 -4
- package/dist/data.cjs +1 -0
- package/dist/data.d.cts +67 -0
- package/dist/data.d.ts +12 -12
- package/dist/data.js +1 -0
- package/dist/export-helper.cjs +1 -0
- package/dist/helpers.cjs +1 -0
- package/dist/helpers.js +1 -0
- package/dist/html.cjs +1 -0
- package/dist/html.js +1 -0
- package/dist/images/marker-icon-2x.png +0 -0
- package/dist/images/marker-icon.png +0 -0
- package/dist/images/marker-shadow.png +0 -0
- package/dist/index.cjs +1 -2
- package/dist/index.d.cts +60 -99
- package/dist/index.d.ts +75 -164
- package/dist/index.js +1 -2
- package/dist/index.vue.d.cts +79 -0
- package/dist/index.vue.d.ts +3 -4
- package/dist/index10.vue.d.cts +47 -0
- package/dist/index10.vue.d.ts +80 -40
- package/dist/index11.vue.d.cts +88 -0
- package/dist/index11.vue.d.ts +68 -78
- package/dist/index12.vue.d.cts +79 -0
- package/dist/index12.vue.d.ts +49 -45
- package/dist/index13.vue.d.cts +64 -0
- package/dist/index13.vue.d.ts +99 -34
- package/dist/index14.vue.d.cts +106 -0
- package/dist/index14.vue.d.ts +82 -99
- package/dist/index15.vue.d.cts +91 -0
- package/dist/index15.vue.d.ts +25 -83
- package/dist/index16.vue.d.cts +34 -0
- package/dist/index16.vue.d.ts +113 -24
- package/dist/index17.vue.d.cts +124 -0
- package/dist/index17.vue.d.ts +76 -110
- package/dist/index18.vue.d.cts +83 -0
- package/dist/index18.vue.d.ts +67 -73
- package/dist/index19.vue.d.cts +101 -0
- package/dist/index19.vue.d.ts +93 -59
- package/dist/index2.vue.d.cts +82 -0
- package/dist/index2.vue.d.ts +7 -8
- package/dist/index20.vue.d.cts +54 -0
- package/dist/index20.vue.d.ts +40 -88
- package/dist/index21.vue.d.cts +103 -0
- package/dist/index21.vue.d.ts +89 -41
- package/dist/index22.vue.d.cts +45 -0
- package/dist/index22.vue.d.ts +37 -96
- package/dist/index23.vue.d.cts +19 -0
- package/dist/index23.vue.d.ts +8 -35
- package/dist/{index28.vue.d.ts → index24.vue.d.cts} +4 -5
- package/dist/index24.vue.d.ts +650 -86
- package/dist/index25.vue.d.cts +96 -0
- package/dist/index25.vue.d.ts +86 -10
- package/dist/index26.vue.d.cts +111 -0
- package/dist/index26.vue.d.ts +4 -5
- package/dist/index27.vue.d.cts +80 -0
- package/dist/index27.vue.d.ts +2 -3
- package/dist/index3.vue.d.cts +87 -0
- package/dist/index3.vue.d.ts +4 -5
- package/dist/index4.vue.d.cts +37 -0
- package/dist/index4.vue.d.ts +6 -7
- package/dist/index5.vue.d.cts +133 -0
- package/dist/index5.vue.d.ts +2 -3
- package/dist/index6.vue.d.cts +29 -0
- package/dist/index6.vue.d.ts +25 -38
- package/dist/index7.vue.d.cts +32 -0
- package/dist/index7.vue.d.ts +117 -23
- package/dist/index8.vue.d.cts +127 -0
- package/dist/index8.vue.d.ts +17 -111
- package/dist/index9.vue.d.cts +34 -0
- package/dist/index9.vue.d.ts +38 -26
- package/dist/public.d.ts +166 -0
- package/dist/resolver.cjs +1 -2
- package/dist/resolver.d.cts +6 -4
- package/dist/resolver.d.ts +6 -4
- package/dist/resolver.js +1 -2
- package/dist/storage.cjs +1 -0
- package/dist/storage.js +1 -2
- package/dist/style.css +9864 -7702
- package/dist/types.d.cts +107 -0
- package/dist/types.d.ts +52 -102
- package/dist/types2.d.cts +58 -0
- package/dist/useCalendarEvents.d.cts +150 -0
- package/dist/useCalendarEvents.d.ts +3 -4
- package/dist/useCollapsePanel.d.cts +133 -0
- package/dist/useCollapsePanel.d.ts +2 -3
- package/dist/useCropperCore.d.cts +104 -0
- package/dist/useCropperCore.d.ts +11 -9
- package/dist/useDraggableLayout.d.cts +196 -0
- package/dist/useDraggableLayout.d.ts +17 -15
- package/dist/useDynamicFormState.d.cts +749 -0
- package/dist/useDynamicFormState.d.ts +234 -112
- package/dist/useEdgeInteraction.d.cts +324 -0
- package/dist/useEdgeInteraction.d.ts +6 -7
- package/dist/useFullscreen.d.cts +165 -0
- package/dist/useFullscreen.d.ts +1 -2
- package/dist/useGlobalSearch.d.cts +110 -0
- package/dist/useGlobalSearch.d.ts +17 -9
- package/dist/useInfiniteScroll.d.cts +177 -0
- package/dist/useInfiniteScroll.d.ts +13 -5
- package/dist/useQRCode.d.cts +89 -0
- package/dist/useQRCode.d.ts +5 -3
- package/dist/useSearchState.d.cts +871 -0
- package/dist/useSearchState.d.ts +830 -30
- package/dist/useSignatureHistory.d.cts +197 -0
- package/dist/useSignatureHistory.d.ts +10 -5
- package/dist/useSplitResize.d.cts +157 -0
- package/dist/useSplitResize.d.ts +3 -4
- package/dist/useTableQuery.cjs +3 -0
- package/dist/{useModalEdit.d.ts → useTableQuery.d.cts} +624 -211
- package/dist/useTableQuery.d.ts +1721 -0
- package/dist/useTableQuery.js +3 -0
- package/dist/useTimeSelection.d.cts +116 -0
- package/dist/useTimeSelection.d.ts +20 -9
- package/dist/useTreeOperations.d.cts +185 -0
- package/dist/useTreeOperations.d.ts +13 -11
- package/dist/useWorkflowValidation.d.cts +1051 -0
- package/dist/useWorkflowValidation.d.ts +62 -63
- package/dist/verification.d.cts +58 -0
- package/dist/verification.d.ts +58 -0
- package/package.json +102 -69
- package/dist/C_ActionBar-BAcfOfRw.css.map +0 -1
- package/dist/C_ActionBar-DG2HW7t5.css.map +0 -1
- package/dist/C_ActionBar.js.map +0 -1
- package/dist/C_ActionBar2.js.map +0 -1
- package/dist/C_AntV-D_jTK8oZ.css.map +0 -1
- package/dist/C_AntV-DanTAq22.css.map +0 -1
- package/dist/C_AntV.js.map +0 -1
- package/dist/C_AntV2.js.map +0 -1
- package/dist/C_AudioPlayer-BnYIJXPD.css.map +0 -1
- package/dist/C_AudioPlayer-Cj4lUdZo.css.map +0 -1
- package/dist/C_AudioPlayer.js.map +0 -1
- package/dist/C_AudioPlayer2.js.map +0 -1
- package/dist/C_AvatarGroup-B9d-GJ9c.css.map +0 -1
- package/dist/C_AvatarGroup-D3PwsKME.css.map +0 -1
- package/dist/C_AvatarGroup.js.map +0 -1
- package/dist/C_AvatarGroup2.js.map +0 -1
- package/dist/C_Barcode-CAU2mFcx.css.map +0 -1
- package/dist/C_Barcode-D2oJaEg3.css.map +0 -1
- package/dist/C_Barcode.js.map +0 -1
- package/dist/C_Barcode2.js.map +0 -1
- package/dist/C_Breadcrumb-BiH0d9AI.css.map +0 -1
- package/dist/C_Breadcrumb-DOcLt9uX.css.map +0 -1
- package/dist/C_Breadcrumb.js.map +0 -1
- package/dist/C_Breadcrumb2.js.map +0 -1
- package/dist/C_Captcha-B3yrtG7t.css.map +0 -1
- package/dist/C_Captcha-D4hDdWDu.css.map +0 -1
- package/dist/C_Captcha.js.map +0 -1
- package/dist/C_Captcha2.js.map +0 -1
- package/dist/C_Cascade-CmCrLVft.css.map +0 -1
- package/dist/C_Cascade-U6A5AJJb.css.map +0 -1
- package/dist/C_Cascade.js.map +0 -1
- package/dist/C_Cascade2.js.map +0 -1
- package/dist/C_Chat-DeUv6uuI.css.map +0 -1
- package/dist/C_Chat-DwatUQqu.css.map +0 -1
- package/dist/C_Chat.js.map +0 -1
- package/dist/C_Chat2.js.map +0 -1
- package/dist/C_City-DdkX6u64.css.map +0 -1
- package/dist/C_City-iP-dIvui.css.map +0 -1
- package/dist/C_City.js.map +0 -1
- package/dist/C_City2.js.map +0 -1
- package/dist/C_Code-BWmJMNS7.css.map +0 -1
- package/dist/C_Code-k14vjgVl.css.map +0 -1
- package/dist/C_Code.js.map +0 -1
- package/dist/C_Code2.js.map +0 -1
- package/dist/C_CollapsePanel-BSKcWSmY.css.map +0 -1
- package/dist/C_CollapsePanel-DRvRq8tB.css.map +0 -1
- package/dist/C_CollapsePanel.js.map +0 -1
- package/dist/C_CollapsePanel2.js.map +0 -1
- package/dist/C_ContextMenu-C9iuxG2n.css.map +0 -1
- package/dist/C_ContextMenu-CD0iaSju.css.map +0 -1
- package/dist/C_ContextMenu.js.map +0 -1
- package/dist/C_ContextMenu2.js.map +0 -1
- package/dist/C_Cron-BIQ2By9v.css.map +0 -1
- package/dist/C_Cron-BNSAGD6A.css.map +0 -1
- package/dist/C_Cron.js.map +0 -1
- package/dist/C_Cron2.js.map +0 -1
- package/dist/C_Date.js.map +0 -1
- package/dist/C_Date2.js.map +0 -1
- package/dist/C_Draggable-BDAbk4s5.css.map +0 -1
- package/dist/C_Draggable-UhfDLXop.css.map +0 -1
- package/dist/C_Draggable.js.map +0 -1
- package/dist/C_Draggable2.js.map +0 -1
- package/dist/C_Editor-CZOaChru.css.map +0 -1
- package/dist/C_Editor-kJAQq5z6.css.map +0 -1
- package/dist/C_Editor.js.map +0 -1
- package/dist/C_Editor2.js.map +0 -1
- package/dist/C_FilePreview-Bs_omgJS.css.map +0 -1
- package/dist/C_FilePreview-DbwoyF2j.css.map +0 -1
- package/dist/C_FilePreview.js.map +0 -1
- package/dist/C_FilePreview2.js.map +0 -1
- package/dist/C_Form-B_2ql62V.css.map +0 -1
- package/dist/C_Form-CX-7xsz3.css.map +0 -1
- package/dist/C_Form.js.map +0 -1
- package/dist/C_Form2.js.map +0 -1
- package/dist/C_FormSearch-C3F8peAY.css.map +0 -1
- package/dist/C_FormSearch-qW56bJPo.css.map +0 -1
- package/dist/C_FormSearch.js.map +0 -1
- package/dist/C_FormSearch2.js.map +0 -1
- package/dist/C_FormulaEditor-ChOvDbsZ.css.map +0 -1
- package/dist/C_FormulaEditor-mfiIUDY4.css.map +0 -1
- package/dist/C_FormulaEditor.js.map +0 -1
- package/dist/C_FormulaEditor2.js.map +0 -1
- package/dist/C_FullCalendar-C2nsqrgS.css.map +0 -1
- package/dist/C_FullCalendar-DdFtXVhy.css.map +0 -1
- package/dist/C_FullCalendar.js.map +0 -1
- package/dist/C_FullCalendar2.js.map +0 -1
- package/dist/C_GlobalSearch-Dq4Wo01K.css.map +0 -1
- package/dist/C_GlobalSearch-RB7J43gu.css.map +0 -1
- package/dist/C_GlobalSearch.js.map +0 -1
- package/dist/C_GlobalSearch2.js.map +0 -1
- package/dist/C_Guide.js.map +0 -1
- package/dist/C_Guide2.js.map +0 -1
- package/dist/C_Icon.js.map +0 -1
- package/dist/C_Icon2.js.map +0 -1
- package/dist/C_ImageCropper-CdTX2nxU.css.map +0 -1
- package/dist/C_ImageCropper-ilOqPklJ.css.map +0 -1
- package/dist/C_ImageCropper.js.map +0 -1
- package/dist/C_ImageCropper2.js.map +0 -1
- package/dist/C_Language.js.map +0 -1
- package/dist/C_Language2.js.map +0 -1
- package/dist/C_Login-BrQBs_m4.css.map +0 -1
- package/dist/C_Login-xMI1_ojE.css.map +0 -1
- package/dist/C_Login.js.map +0 -1
- package/dist/C_Login2.js.map +0 -1
- package/dist/C_Map-CWMMN58_.css.map +0 -1
- package/dist/C_Map-xSR2H-9o.css.map +0 -1
- package/dist/C_Map.js.map +0 -1
- package/dist/C_Map2.js.map +0 -1
- package/dist/C_Markdown-C7lTVJ1S.css.map +0 -1
- package/dist/C_Markdown-CZDm_baQ.css.map +0 -1
- package/dist/C_Markdown.js.map +0 -1
- package/dist/C_Markdown2.js.map +0 -1
- package/dist/C_Menu.js.map +0 -1
- package/dist/C_Menu2.js.map +0 -1
- package/dist/C_NotificationCenter-D7GGGWg7.css.map +0 -1
- package/dist/C_NotificationCenter-SSmeHA45.css.map +0 -1
- package/dist/C_NotificationCenter.js.map +0 -1
- package/dist/C_NotificationCenter2.js.map +0 -1
- package/dist/C_OrgChart-BXEp4i4w.css.map +0 -1
- package/dist/C_OrgChart-DqBufOv5.css.map +0 -1
- package/dist/C_OrgChart.js.map +0 -1
- package/dist/C_OrgChart2.js.map +0 -1
- package/dist/C_Progress.js.map +0 -1
- package/dist/C_Progress2.js.map +0 -1
- package/dist/C_QRCode-B_1lHUdx.css.map +0 -1
- package/dist/C_QRCode-CuQRYu0s.css.map +0 -1
- package/dist/C_QRCode.js.map +0 -1
- package/dist/C_QRCode2.js.map +0 -1
- package/dist/C_Signature-Bp-RBpAl.css.map +0 -1
- package/dist/C_Signature-Cb2VW1ok.css.map +0 -1
- package/dist/C_Signature.js.map +0 -1
- package/dist/C_Signature2.js.map +0 -1
- package/dist/C_Skeleton-BJoFYwrF.css.map +0 -1
- package/dist/C_Skeleton-Djsjw8XY.css.map +0 -1
- package/dist/C_Skeleton.js.map +0 -1
- package/dist/C_Skeleton2.js.map +0 -1
- package/dist/C_SplitPane-CgGWYsRE.css.map +0 -1
- package/dist/C_SplitPane-DGf6WEeR.css.map +0 -1
- package/dist/C_SplitPane.js.map +0 -1
- package/dist/C_SplitPane2.js.map +0 -1
- package/dist/C_Steps-27Exh7PM.css.map +0 -1
- package/dist/C_Steps-DU9ZsFrs.css.map +0 -1
- package/dist/C_Steps.js.map +0 -1
- package/dist/C_Steps2.js.map +0 -1
- package/dist/C_Table--kbQaaBv.css.map +0 -1
- package/dist/C_Table-D631kdXC.css.map +0 -1
- package/dist/C_Table.js.map +0 -1
- package/dist/C_Table2.js +0 -4
- package/dist/C_Table2.js.map +0 -1
- package/dist/C_TagsView-DtGtYhBH.css.map +0 -1
- package/dist/C_TagsView-s1dnSJAV.css.map +0 -1
- package/dist/C_TagsView.js.map +0 -1
- package/dist/C_TagsView2.js.map +0 -1
- package/dist/C_Theme.js.map +0 -1
- package/dist/C_Theme2.js.map +0 -1
- package/dist/C_Time-BQ9PGy8B.css.map +0 -1
- package/dist/C_Time-CO73krC6.css.map +0 -1
- package/dist/C_Time.js.map +0 -1
- package/dist/C_Time2.js.map +0 -1
- package/dist/C_Timeline-DdESmqwL.css.map +0 -1
- package/dist/C_Timeline-irQcO-b7.css.map +0 -1
- package/dist/C_Timeline.js.map +0 -1
- package/dist/C_Timeline2.js.map +0 -1
- package/dist/C_Transfer-11y3k-WD.css.map +0 -1
- package/dist/C_Transfer-EzdHzZNv.css.map +0 -1
- package/dist/C_Transfer.js.map +0 -1
- package/dist/C_Transfer2.js.map +0 -1
- package/dist/C_Tree-CsXgGfhn.css.map +0 -1
- package/dist/C_Tree-P7eRpnOa.css.map +0 -1
- package/dist/C_Tree.js.map +0 -1
- package/dist/C_Tree2.js.map +0 -1
- package/dist/C_Upload-CHjiVVh7.css.map +0 -1
- package/dist/C_Upload-DE3OLsZD.css.map +0 -1
- package/dist/C_Upload.js.map +0 -1
- package/dist/C_Upload2.js.map +0 -1
- package/dist/C_VideoPlayer-CnaNOFtW.css.map +0 -1
- package/dist/C_VideoPlayer-cnP88zNV.css.map +0 -1
- package/dist/C_VideoPlayer.js.map +0 -1
- package/dist/C_VideoPlayer2.js.map +0 -1
- package/dist/C_VtableGantt-CZlJgvpC.css.map +0 -1
- package/dist/C_VtableGantt-DKfQkql0.css.map +0 -1
- package/dist/C_VtableGantt.js.map +0 -1
- package/dist/C_VtableGantt2.js.map +0 -1
- package/dist/C_WaterFall-BJ_39ext.css.map +0 -1
- package/dist/C_WaterFall-cYc1vntE.css.map +0 -1
- package/dist/C_WaterFall.js.map +0 -1
- package/dist/C_WaterFall2.js.map +0 -1
- package/dist/C_WorkFlow-BFzRGGhJ.css.map +0 -1
- package/dist/C_WorkFlow-DSyCOvRp.css.map +0 -1
- package/dist/C_WorkFlow.js.map +0 -1
- package/dist/C_WorkFlow2.js.map +0 -1
- package/dist/city.js.map +0 -1
- package/dist/index.cjs.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/index2.d.ts +0 -120
- package/dist/resolver.cjs.map +0 -1
- package/dist/resolver.js.map +0 -1
- package/dist/storage.js.map +0 -1
- /package/dist/{chunk.js → chunk.cjs} +0 -0
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
require(`./chunk.cjs`);const e=require(`./export-helper.cjs`),t=require(`./storage.cjs`);let n=require(`vue`),r=require(`naive-ui`);const i=[.5,.75,1,1.25,1.5,2,3],a=.75,o=3e4,s=5e3,c={"360p":`流畅 360P`,"480p":`标清 480P`,"720p":`高清 720P`,"1080p":`超清 1080P`,"1440p":`2K 1440P`,"4K":`4K 超高清`},l={".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:`退出全屏`},d=.1,f=`c_video_player_`,p={VOLUME:`${f}volume`,PLAYBACK_RATE:`${f}playback_rate`,PROGRESS:`${f}progress_`,BOOKMARKS:`${f}bookmarks_`},m={READY:`ready`,PLAY:`play`,PAUSE:`pause`,ENDED:`ended`,ERROR:`error`,SEEKING:`seeking`,SEEKED:`seeked`,TIME_UPDATE:`timeupdate`,WAITING:`waiting`,DURATION_CHANGE:`durationchange`,RATE_CHANGE:`ratechange`,FULLSCREEN_CHANGE:`fullscreen_change`,DEFINITION_CHANGE:`definition_change`,BEFORE_DEFINITION_CHANGE:`before_definition_change`,AFTER_DEFINITION_CHANGE:`after_definition_change`},h={fontSize:14,color:`rgba(150, 150, 150, 0.15)`,rotate:-25,gap:120};function g(e){try{let{pathname:t}=new URL(e,location.href);return l[t.slice(t.lastIndexOf(`.`)).toLowerCase()]??`mp4`}catch{return`mp4`}}function _(e){let t=(0,n.ref)(null),r=(0,n.shallowRef)(null),i=(0,n.ref)(`idle`),o=(0,n.ref)(0),s=(0,n.ref)(0),c=(0,n.ref)(!1);function l(){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 u(){return{autoplay:e.autoplay??!1,autoplayMuted:e.autoplayMuted??!1,loop:e.loop??!1,volume:e.volume??a,startTime:e.startTime??0,defaultPlaybackRate:e.defaultPlaybackRate??1,playbackRate:e.playbackRates?{list:e.playbackRates.map(e=>e)}:!0}}function d(){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 f(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 p(){let t=e.sourceType??g(e.url),n={...l(),...u(),...d()};return f(n),n.__sourceType=t,n}async function h(){if(!t.value)return;i.value=`loading`;let e=p(),n=e.__sourceType;delete e.__sourceType;let a;if(n===`hls`){let{default:e}=await import(`xgplayer-hls`);a=e}else{let{default:e}=await import(`xgplayer`);a=e}let l=new a(e);r.value=l,l.on(m.READY,()=>{i.value=`ready`}),l.on(m.PLAY,()=>{i.value=`playing`}),l.on(m.PAUSE,()=>{i.value=`paused`}),l.on(m.ENDED,()=>{i.value=`ended`}),l.on(m.ERROR,()=>{i.value=`error`}),l.on(m.TIME_UPDATE,()=>{o.value=l.currentTime??0,s.value=l.duration??0}),l.on(m.DURATION_CHANGE,()=>{s.value=l.duration??0}),l.on(m.FULLSCREEN_CHANGE,e=>{c.value=e})}function _(){let e=r.value;e&&(e.destroy(),r.value=null),i.value=`idle`,o.value=0,s.value=0}return(0,n.onBeforeUnmount)(()=>{_()}),{containerRef:t,playerRef:r,playerState:i,currentTime:o,duration:s,isFullscreen:c,initPlayer:h,destroyPlayer:_}}function v(e){let r=(0,n.ref)(y()),i=(0,n.ref)(b()),a=(0,n.ref)(!1);function o(){e.value?.play()}function s(){e.value?.pause()}function c(){let t=e.value;t&&(t.paused?t.play():t.pause())}function l(t){let n=e.value;n&&(n.currentTime=Math.max(0,Math.min(t,n.duration??0)))}function u(n){let i=e.value;if(!i)return;let o=Math.max(0,Math.min(1,n));i.volume=o,r.value=o,a.value=o===0,t.i(p.VOLUME,o)}function d(){let t=e.value;t&&(a.value?u(r.value>0?r.value:.5):(t.volume=0,a.value=!0))}function f(n){let r=e.value;r&&(r.playbackRate=n,i.value=n,t.i(p.PLAYBACK_RATE,n))}function m(){let t=e.value;t&&(t.volume=r.value,t.playbackRate=i.value,a.value=r.value===0)}return(0,n.watch)(e,e=>{e&&m()}),{volume:r,playbackRate:i,isMuted:a,play:o,pause:s,togglePlay:c,seek:l,setVolume:u,toggleMute:d,setPlaybackRate:f}}function y(){let e=Number(t.t(p.VOLUME));return Number.isFinite(e)&&e>=0&&e<=1?e:.75}function b(){let e=Number(t.t(p.PLAYBACK_RATE));return Number.isFinite(e)&&e>0?e:1}function x(e,r,i,a,c,l){let u=(0,n.ref)(0),d=(0,n.ref)(0),f=0,m=!1,h=null,g=null;function _(){return p.PROGRESS+encodeURIComponent(a.value)}function v(){let e=t.t(_());return!e||typeof e!=`object`?0:(u.value=S(e.watchedDuration),d.value=Math.min(100,S(e.completionPercent)),S(e.currentTime))}function y(){return{currentTime:r.value,duration:i.value,watchedDuration:u.value,completionPercent:d.value,updatedAt:Date.now()}}function b(){t.i(_(),y())}function x(e,t){if(e)try{Promise.resolve(e(t)).catch(()=>void 0)}catch{}}function C(){x(c,y()),b()}function w(){if(!m)return;let e=performance.now();if(f>0){let t=(e-f)/1e3;t>0&&t<5&&(u.value+=t)}f=e,i.value>0&&(d.value=Math.min(100,Math.round(u.value/i.value*100)))}function T(){let e=l?.heartbeatInterval??o;h=setInterval(()=>{m&&x(l?.onHeartbeat,y())},e)}function E(){g=setInterval(()=>{m&&C()},s)}function D(){let e=y();b(),x(c,e)}function O(){if(document.hidden)w(),C(),m=!1;else{let t=e.value;t&&!t.paused&&(m=!0,f=performance.now())}}function k(){j(),T(),E(),window.addEventListener(`beforeunload`,D),document.addEventListener(`visibilitychange`,O)}function A(){m=!1,j(),b()}function j(){h&&=(clearInterval(h),null),g&&=(clearInterval(g),null),window.removeEventListener(`beforeunload`,D),document.removeEventListener(`visibilitychange`,O)}function M(){m=!0,f=performance.now()}function N(){w(),m=!1,f=0,b()}function P(){w()}return(0,n.watch)(e,e=>{e?k():j()}),(0,n.onBeforeUnmount)(()=>{A()}),{watchedDuration:u,completionPercent:d,getProgressData:y,restoreProgress:v,saveProgress:b,startTracking:k,stopTracking:A,onPlay:M,onPause:N,onTimeUpdate:P}}function S(e){let t=Number(e);return Number.isFinite(t)&&t>=0?t:0}function C(e,t=[]){let r=(0,n.ref)(null),i=(0,n.ref)(!1);function a(e){e.on(m.AFTER_DEFINITION_CHANGE,e=>{r.value=e.to,i.value=!1}),e.on(m.BEFORE_DEFINITION_CHANGE,()=>{i.value=!0})}function o(n){let r=e.value;if(!r||!t.length)return;let a=t.find(e=>e.label===n);if(!a){console.warn(`[C_VideoPlayer] 未找到清晰度: ${n}`);return}i.value=!0,r.changeDefinition?.({url:a.url,definition:a.label,text:{zh:a.label,en:a.label},bitrate:a.bitrate})}return{currentQuality:r,isSwitching:i,switchQuality:o,bindEvents:a}}function w(e,t,r,i){let a=(0,n.computed)(()=>{if(!e.value.length)return null;let n=t.value;return e.value.find(e=>n>=e.startTime&&n<e.endTime)??null}),o=(0,n.computed)(()=>a.value?e.value.findIndex(e=>e.id===a.value.id):-1),s=(0,n.computed)(()=>!r.value||!e.value.length?[]:e.value.map(e=>({...e,startPercent:e.startTime/r.value*100,endPercent:e.endTime/r.value*100,widthPercent:(e.endTime-e.startTime)/r.value*100})));function c(t){let n=e.value.find(e=>e.id===t);n&&i(n.startTime)}function l(){let t=o.value;t>0&&i(e.value[t-1].startTime)}function u(){let t=o.value;t>=0&&t<e.value.length-1&&i(e.value[t+1].startTime)}return{currentChapter:a,currentChapterIndex:o,chapterMarkers:s,goToChapter:c,prevChapter:l,nextChapter:u}}function T(e,r,i,a=[]){let o=(0,n.ref)([...a]);function s(){return p.BOOKMARKS+encodeURIComponent(e.value)}function c(){let e=t.t(s());Array.isArray(e)&&(o.value=e.filter(e=>typeof e==`object`&&!!e&&typeof e.id==`string`&&typeof e.time==`number`&&Number.isFinite(e.time)&&typeof e.note==`string`&&typeof e.createdAt==`number`),u())}function l(){t.i(s(),o.value)}function u(){o.value.sort((e,t)=>e.time-t.time)}function d(e=``){let t={id:typeof crypto<`u`&&`randomUUID`in crypto?`bm_${crypto.randomUUID()}`:`bm_${Date.now()}_${o.value.length}`,time:r.value,note:e,createdAt:Date.now()};return o.value.push(t),u(),l(),t}function f(e){let t=o.value.findIndex(t=>t.id===e);t!==-1&&(o.value.splice(t,1),l())}function m(e,t){let n=o.value.find(t=>t.id===e);n&&(n.note=t,l())}function h(e){let t=o.value.find(t=>t.id===e);t&&i(t.time)}function g(){o.value=[],l()}return a.length||c(),{bookmarks:o,addBookmark:d,removeBookmark:f,updateBookmark:m,goToBookmark:h,clearBookmarks:g}}function E(e,t,r){let i=(0,n.ref)(0),a=(0,n.ref)(!0),o=(0,n.ref)(!1),s=(0,n.ref)(r?.watermark??!1),c=(0,n.ref)(r?.watermarkText??``);function l(e){e>i.value&&(i.value=e)}function u(e){!r?.preventSeekOnFirstWatch||!a.value||(e.currentTime??0)>i.value+2&&(e.currentTime=i.value)}function d(){if(!r?.focusDetection)return;let t=e.value;t&&(document.hidden?(o.value=!0,t.paused||t.pause()):o.value=!1)}function f(e){r?.preventSeekOnFirstWatch&&e.on(m.SEEKING,()=>u(e)),e.on(m.TIME_UPDATE,()=>{l(t.value)}),r?.focusDetection&&document.addEventListener(`visibilitychange`,d)}function p(){a.value=!1}function h(e){c.value=e}return(0,n.onBeforeUnmount)(()=>{document.removeEventListener(`visibilitychange`,d)}),{maxWatchedTime:i,isFirstWatch:a,isBlurred:o,showWatermark:s,watermarkText:c,bindEvents:f,markAsWatched:p,setWatermarkText:h}}function D(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 O(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=D(i),s=D(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 k(e,t=[],r=(0,n.ref)(0)){let i=(0,n.ref)(null),a=(0,n.ref)([...t]),o=(0,n.ref)({}),s=(0,n.ref)(!1),c=(0,n.computed)(()=>{if(!i.value)return``;let e=o.value[i.value];if(!e?.length)return``;let t=r.value;return e.find(e=>t>=e.start&&t<e.end)?.text??``}),l=(0,n.computed)(()=>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=O(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 A(e,t,r){let i=(0,n.ref)(null),a=(0,n.ref)(new Set),o=(0,n.ref)(``),s=(0,n.ref)(!1),c=(0,n.ref)(!1);function l(){if(i.value||!r.value.length)return;let e=t.value,n=r.value.find(t=>!a.value.has(t.id)&&Math.abs(e-t.triggerTime)<1);n&&u(n)}function u(t){i.value=t,o.value=t.type===`multiple`?[]:``,s.value=!1,c.value=!1,e.value?.pause()}function d(){if(!i.value)return!1;let e=i.value,t=m(e,o.value);return c.value=t,s.value=!0,(t||!e.required)&&a.value.add(e.id),t}function f(){if(!i.value)return;let t=i.value;t.required&&!a.value.has(t.id)||(i.value=null,s.value=!1,o.value=``,e.value?.play())}function p(){i.value&&(o.value=i.value.type===`multiple`?[]:``,s.value=!1,c.value=!1)}function m(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(0,n.watch)(t,()=>{l()}),{activeQuiz:i,completedQuizIds:a,selectedAnswer:o,showResult:s,lastAnswerCorrect:c,submitAnswer:d,closeQuiz:f,retryQuiz:p}}function j(e,t){let r=(0,n.ref)(!1),i=null;function a(){!e.value||!t.value||(i=new IntersectionObserver(([e])=>{r.value=!e.isIntersecting},{threshold:.3}),i.observe(e.value))}function o(){i&&=(i.disconnect(),null),r.value=!1}function s(){e.value?.scrollIntoView({behavior:`smooth`,block:`center`})}function c(){r.value=!1,o()}return(0,n.onBeforeUnmount)(()=>{o()}),{isMiniMode:r,initObserver:a,destroyObserver:o,scrollToPlayer:s,closeMiniPlayer:c}}function M(e,t,r={}){let{enabled:i=!0,onToggleFullscreen:a}=r,o={" ":(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)+d)},ArrowDown:(e,t)=>{e.preventDefault(),t.volume=Math.max(0,(t.volume??0)-d)},f:e=>{e.preventDefault(),a?.()},F:e=>{e.preventDefault(),a?.()},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 s(t){if(!i)return;let n=e.value;if(!n)return;let r=t.target;if(r.tagName===`INPUT`||r.tagName===`TEXTAREA`||r.isContentEditable)return;let a=o[t.key];a?.(t,n)}function c(){i&&t.value?.addEventListener(`keydown`,s)}function l(){t.value?.removeEventListener(`keydown`,s)}return(0,n.onBeforeUnmount)(()=>{l()}),{startListening:c,stopListening:l}}function N(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(m.PLAY,i),e.on(m.PAUSE,a),e.on(m.ENDED,o),e.on(m.SEEKED,s),e.on(m.ERROR,c),e.on(m.WAITING,l),e.on(m.FULLSCREEN_CHANGE,u),e.on(m.DEFINITION_CHANGE,d),e.on(m.RATE_CHANGE,f);function p(){e.off(m.PLAY,i),e.off(m.PAUSE,a),e.off(m.ENDED,o),e.off(m.SEEKED,s),e.off(m.ERROR,c),e.off(m.WAITING,l),e.off(m.FULLSCREEN_CHANGE,u),e.off(m.DEFINITION_CHANGE,d),e.off(m.RATE_CHANGE,f)}return{report:r,destroy:p}}const P={key:0,class:`vp-control-bar`},F={class:`vp-control-bar__left`},I={class:`vp-control-bar__center`},L={class:`vp-control-bar__right`},R=(0,n.defineComponent)({__name:`ControlBar`,props:{visible:{type:Boolean,default:!0}},setup(e){return(t,r)=>e.visible?((0,n.openBlock)(),(0,n.createElementBlock)(`div`,P,[(0,n.createElementVNode)(`div`,F,[(0,n.renderSlot)(t.$slots,`left`,{},void 0,!0)]),(0,n.createElementVNode)(`div`,I,[(0,n.renderSlot)(t.$slots,`center`,{},void 0,!0)]),(0,n.createElementVNode)(`div`,L,[(0,n.renderSlot)(t.$slots,`right`,{},void 0,!0)])])):(0,n.createCommentVNode)(`v-if`,!0)}});var ee=e.t(R,[[`__scopeId`,`data-v-ea44a973`]]);const z={key:0,class:`vp-subtitle-overlay`},B={class:`vp-subtitle-text`},V={key:0,class:`vp-subtitle-toggle`},H={class:`vp-subtitle-menu`},te=[`onClick`],U=(0,n.defineComponent)({__name:`SubtitleOverlay`,props:{text:{},tracks:{},activeLanguage:{}},emits:[`switch`,`close`],setup(e){return(t,i)=>{let a=r.NButton,o=r.NPopover;return(0,n.openBlock)(),(0,n.createElementBlock)(n.Fragment,null,[(0,n.createCommentVNode)(` 字幕文本 `),(0,n.createVNode)(n.Transition,{name:`vp-subtitle-fade`},{default:(0,n.withCtx)(()=>[e.text?((0,n.openBlock)(),(0,n.createElementBlock)(`div`,z,[(0,n.createElementVNode)(`span`,B,(0,n.toDisplayString)(e.text),1)])):(0,n.createCommentVNode)(`v-if`,!0)]),_:1}),(0,n.createCommentVNode)(` 字幕切换按钮(叠加在播放器控制栏上方) `),e.tracks.length?((0,n.openBlock)(),(0,n.createElementBlock)(`div`,V,[(0,n.createVNode)(o,{trigger:`click`,placement:`top`,"show-arrow":!1},{trigger:(0,n.withCtx)(()=>[(0,n.createVNode)(a,{quaternary:``,size:`small`,class:(0,n.normalizeClass)([`vp-subtitle-btn`,{"is-active":!!e.activeLanguage}])},{default:(0,n.withCtx)(()=>[...i[1]||=[(0,n.createTextVNode)(` 字幕 `,-1)]]),_:1},8,[`class`])]),default:(0,n.withCtx)(()=>[(0,n.createElementVNode)(`div`,H,[(0,n.createElementVNode)(`div`,{class:(0,n.normalizeClass)([`vp-subtitle-menu__item`,{"is-active":!e.activeLanguage}]),onClick:i[0]||=e=>t.$emit(`close`)},` 关闭字幕 `,2),((0,n.openBlock)(!0),(0,n.createElementBlock)(n.Fragment,null,(0,n.renderList)(e.tracks,r=>((0,n.openBlock)(),(0,n.createElementBlock)(`div`,{key:r.language,class:(0,n.normalizeClass)([`vp-subtitle-menu__item`,{"is-active":e.activeLanguage===r.language}]),onClick:e=>t.$emit(`switch`,r.language)},(0,n.toDisplayString)(r.label),11,te))),128))])]),_:1})])):(0,n.createCommentVNode)(`v-if`,!0)],64)}}});var W=e.t(U,[[`__scopeId`,`data-v-1069c4da`]]);const G={key:0,class:`vp-chapter-markers`},K={key:0,class:`vp-chapter-current`},q={class:`vp-chapter-index`},J={class:`vp-chapter-title`},Y={class:`vp-chapter-list`},X=[`onClick`],Z={class:`vp-chapter-item-index`},Q={class:`vp-chapter-item-title`},ne={class:`vp-chapter-item-time`},re=(0,n.defineComponent)({__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(i,a)=>{let o=r.NButton,s=r.NPopover;return e.chapters.length?((0,n.openBlock)(),(0,n.createElementBlock)(`div`,G,[(0,n.createCommentVNode)(` 当前章节信息 `),e.currentChapter?((0,n.openBlock)(),(0,n.createElementBlock)(`div`,K,[(0,n.createElementVNode)(`span`,q,(0,n.toDisplayString)(e.currentIndex+1)+`/`+(0,n.toDisplayString)(e.chapters.length),1),(0,n.createElementVNode)(`span`,J,(0,n.toDisplayString)(e.currentChapter.title),1)])):(0,n.createCommentVNode)(`v-if`,!0),(0,n.createCommentVNode)(` 章节列表面板 `),(0,n.createVNode)(s,{trigger:`click`,placement:`top-start`,"show-arrow":!1,style:{"max-height":`300px`,"overflow-y":`auto`}},{trigger:(0,n.withCtx)(()=>[(0,n.createVNode)(o,{quaternary:``,size:`small`,class:`vp-chapter-trigger`},{icon:(0,n.withCtx)(()=>[...a[0]||=[(0,n.createElementVNode)(`span`,{class:`vp-chapter-icon`},`☰`,-1)]]),default:(0,n.withCtx)(()=>[a[1]||=(0,n.createTextVNode)(` 章节 `,-1)]),_:1})]),default:(0,n.withCtx)(()=>[(0,n.createElementVNode)(`div`,Y,[((0,n.openBlock)(!0),(0,n.createElementBlock)(n.Fragment,null,(0,n.renderList)(e.chapters,(r,a)=>((0,n.openBlock)(),(0,n.createElementBlock)(`div`,{key:r.id,class:(0,n.normalizeClass)([`vp-chapter-item`,{"is-active":r.id===e.currentChapter?.id}]),onClick:e=>i.$emit(`goTo`,r.id)},[(0,n.createElementVNode)(`span`,Z,(0,n.toDisplayString)(a+1),1),(0,n.createElementVNode)(`span`,Q,(0,n.toDisplayString)(r.title),1),(0,n.createElementVNode)(`span`,ne,(0,n.toDisplayString)(t(r.startTime)),1)],10,X))),128))])]),_:1})])):(0,n.createCommentVNode)(`v-if`,!0)}}});var ie=e.t(re,[[`__scopeId`,`data-v-3218c0f1`]]);const ae={class:`vp-bookmark-panel`},oe={class:`vp-bookmark-list`},se=[`aria-label`,`onClick`],ce={class:`vp-bookmark-note`},le=(0,n.defineComponent)({__name:`BookmarkPanel`,props:{bookmarks:{}},emits:[`add`,`remove`,`goTo`],setup(e,{emit:t}){let i=t;function a(){i(`add`,``)}function o(e){let t=Math.floor(e/60),n=Math.floor(e%60);return`${t.toString().padStart(2,`0`)}:${n.toString().padStart(2,`0`)}`}return(t,i)=>{let s=r.NButton,c=r.NBadge,l=r.NPopover;return(0,n.openBlock)(),(0,n.createElementBlock)(`div`,ae,[(0,n.createCommentVNode)(` 添加书签按钮 `),(0,n.createVNode)(s,{quaternary:``,size:`small`,class:`vp-bookmark-add-btn`,onClick:a},{icon:(0,n.withCtx)(()=>[...i[0]||=[(0,n.createElementVNode)(`span`,null,`🔖`,-1)]]),default:(0,n.withCtx)(()=>[i[1]||=(0,n.createTextVNode)(` 书签 `,-1)]),_:1}),(0,n.createCommentVNode)(` 书签列表弹窗 `),e.bookmarks.length?((0,n.openBlock)(),(0,n.createBlock)(l,{key:0,trigger:`click`,placement:`top-start`,"show-arrow":!1,style:{"max-height":`300px`,"overflow-y":`auto`}},{trigger:(0,n.withCtx)(()=>[(0,n.createVNode)(c,{value:e.bookmarks.length,max:99,type:`info`},{default:(0,n.withCtx)(()=>[(0,n.createVNode)(s,{quaternary:``,size:`small`,class:`vp-bookmark-list-btn`},{default:(0,n.withCtx)(()=>[...i[2]||=[(0,n.createTextVNode)(` 列表 `,-1)]]),_:1})]),_:1},8,[`value`])]),default:(0,n.withCtx)(()=>[(0,n.createElementVNode)(`div`,oe,[((0,n.openBlock)(!0),(0,n.createElementBlock)(n.Fragment,null,(0,n.renderList)(e.bookmarks,e=>((0,n.openBlock)(),(0,n.createElementBlock)(`div`,{key:e.id,class:`vp-bookmark-item`},[(0,n.createElementVNode)(`button`,{type:`button`,class:`vp-bookmark-time`,"aria-label":`跳转到 ${o(e.time)}`,onClick:n=>t.$emit(`goTo`,e.id)},(0,n.toDisplayString)(o(e.time)),9,se),(0,n.createElementVNode)(`span`,ce,(0,n.toDisplayString)(e.note||`无备注`),1),(0,n.createVNode)(s,{quaternary:``,size:`tiny`,type:`error`,onClick:n=>t.$emit(`remove`,e.id)},{default:(0,n.withCtx)(()=>[...i[3]||=[(0,n.createTextVNode)(` ✕ `,-1)]]),_:1},8,[`onClick`])]))),128))])]),_:1})):(0,n.createCommentVNode)(`v-if`,!0)])}}});var ue=e.t(le,[[`__scopeId`,`data-v-9578e4e4`]]);const de={key:0,class:`vp-quiz-overlay`},fe={class:`vp-quiz-card`},pe={class:`vp-quiz-header`},$={class:`vp-quiz-type-tag`},me={class:`vp-quiz-title`},he={class:`vp-quiz-options`},ge={class:`vp-quiz-actions`},_e=(0,n.defineComponent)({__name:`QuizOverlay`,props:(0,n.mergeModels)({quiz:{},showResult:{type:Boolean,default:!1},isCorrect:{type:Boolean,default:!1}},{answer:{default:``},answerModifiers:{}}),emits:(0,n.mergeModels)([`submit`,`retry`,`close`],[`update:answer`]),setup(e){let t=e,i=(0,n.ref)(``),a=(0,n.ref)([]),o=(0,n.useModel)(e,`answer`),s=(0,n.computed)(()=>({single:`单选题`,multiple:`多选题`,judge:`判断题`})[t.quiz?.type??`single`]??`单选题`),c=(0,n.computed)(()=>t.quiz?.type===`multiple`?a.value.length>0:i.value!==``);return(0,n.watch)(i,e=>{t.quiz?.type!==`multiple`&&(o.value=e)}),(0,n.watch)(a,e=>{t.quiz?.type===`multiple`&&(o.value=[...e])}),(0,n.watch)(()=>t.quiz?.id,()=>{i.value=``,a.value=[]}),(t,o)=>{let l=r.NCheckbox,u=r.NCheckboxGroup,d=r.NRadio,f=r.NRadioGroup,p=r.NButton;return(0,n.openBlock)(),(0,n.createBlock)(n.Transition,{name:`vp-quiz-fade`},{default:(0,n.withCtx)(()=>[e.quiz?((0,n.openBlock)(),(0,n.createElementBlock)(`div`,de,[(0,n.createElementVNode)(`div`,fe,[(0,n.createCommentVNode)(` 标题 `),(0,n.createElementVNode)(`div`,pe,[(0,n.createElementVNode)(`span`,$,(0,n.toDisplayString)(s.value),1),(0,n.createElementVNode)(`h3`,me,(0,n.toDisplayString)(e.quiz.title),1)]),(0,n.createCommentVNode)(` 选项 `),(0,n.createElementVNode)(`div`,he,[e.quiz.type===`multiple`?((0,n.openBlock)(),(0,n.createBlock)(u,{key:0,value:a.value,"onUpdate:value":o[0]||=e=>a.value=e,disabled:e.showResult},{default:(0,n.withCtx)(()=>[((0,n.openBlock)(!0),(0,n.createElementBlock)(n.Fragment,null,(0,n.renderList)(e.quiz.options,e=>((0,n.openBlock)(),(0,n.createElementBlock)(`div`,{key:e.key,class:`vp-quiz-option`},[(0,n.createVNode)(l,{value:e.key,label:`${e.key}. ${e.label}`},null,8,[`value`,`label`])]))),128))]),_:1},8,[`value`,`disabled`])):((0,n.openBlock)(),(0,n.createBlock)(f,{key:1,value:i.value,"onUpdate:value":o[1]||=e=>i.value=e,disabled:e.showResult},{default:(0,n.withCtx)(()=>[((0,n.openBlock)(!0),(0,n.createElementBlock)(n.Fragment,null,(0,n.renderList)(e.quiz.options,e=>((0,n.openBlock)(),(0,n.createElementBlock)(`div`,{key:e.key,class:`vp-quiz-option`},[(0,n.createVNode)(d,{value:e.key,label:`${e.key}. ${e.label}`},null,8,[`value`,`label`])]))),128))]),_:1},8,[`value`,`disabled`]))]),(0,n.createCommentVNode)(` 结果反馈 `),e.showResult?((0,n.openBlock)(),(0,n.createElementBlock)(`div`,{key:0,class:(0,n.normalizeClass)([`vp-quiz-result`,e.isCorrect?`is-correct`:`is-wrong`])},(0,n.toDisplayString)(e.isCorrect?`✓ 回答正确!`:`✗ 回答错误,请重试`),3)):(0,n.createCommentVNode)(`v-if`,!0),(0,n.createCommentVNode)(` 操作按钮 `),(0,n.createElementVNode)(`div`,ge,[e.showResult?((0,n.openBlock)(),(0,n.createElementBlock)(n.Fragment,{key:1},[!e.isCorrect&&e.quiz.required?((0,n.openBlock)(),(0,n.createBlock)(p,{key:0,type:`warning`,onClick:o[3]||=e=>t.$emit(`retry`)},{default:(0,n.withCtx)(()=>[...o[6]||=[(0,n.createTextVNode)(` 重新作答 `,-1)]]),_:1})):(0,n.createCommentVNode)(`v-if`,!0),e.isCorrect||!e.quiz.required?((0,n.openBlock)(),(0,n.createBlock)(p,{key:1,type:`primary`,onClick:o[4]||=e=>t.$emit(`close`)},{default:(0,n.withCtx)(()=>[...o[7]||=[(0,n.createTextVNode)(` 继续学习 `,-1)]]),_:1})):(0,n.createCommentVNode)(`v-if`,!0)],64)):((0,n.openBlock)(),(0,n.createBlock)(p,{key:0,type:`primary`,disabled:!c.value,onClick:o[2]||=e=>t.$emit(`submit`)},{default:(0,n.withCtx)(()=>[...o[5]||=[(0,n.createTextVNode)(` 提交答案 `,-1)]]),_:1},8,[`disabled`]))])])])):(0,n.createCommentVNode)(`v-if`,!0)]),_:1})}}});var ve=e.t(_e,[[`__scopeId`,`data-v-a8cd8fbf`]]);const ye=(0,n.defineComponent)({__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 t=e,r=(0,n.computed)(()=>{let e=t.gap*t.gap;return Math.ceil(2073600/e)}),i=(0,n.computed)(()=>({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`})),a=(0,n.computed)(()=>({fontSize:`${t.fontSize}px`,color:t.color,transform:`rotate(${t.rotate}deg)`,userSelect:`none`,whiteSpace:`nowrap`,lineHeight:1}));return(t,o)=>e.visible&&e.text?((0,n.openBlock)(),(0,n.createElementBlock)(`div`,{key:0,class:`vp-watermark`,style:(0,n.normalizeStyle)(i.value)},[((0,n.openBlock)(!0),(0,n.createElementBlock)(n.Fragment,null,(0,n.renderList)(r.value,t=>((0,n.openBlock)(),(0,n.createElementBlock)(`span`,{key:t,class:`vp-watermark-item`,style:(0,n.normalizeStyle)(a.value)},(0,n.toDisplayString)(e.text),5))),128))],4)):(0,n.createCommentVNode)(`v-if`,!0)}});var be=e.t(ye,[[`__scopeId`,`data-v-6928c31a`]]);const xe=(0,n.defineComponent)({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:r}){let i=e,a=r,o=_(i),{containerRef:s,playerRef:c,playerState:l,currentTime:u,duration:d,isFullscreen:f}=o,p=(0,n.ref)(null),h=v(c),g=(0,n.toRef)(i,`url`),y=x(c,u,d,g,i.onProgress,i.antiCheat),b=C(c,i.qualityList),S=(0,n.computed)(()=>i.chapters??[]),D=w(S,u,d,h.seek),O=T(g,u,h.seek,i.bookmarks),P=E(c,u,i.antiCheat),F=k(c,i.subtitles,u),I=A(c,u,(0,n.computed)(()=>i.quizzes??[])),L=j(p,(0,n.computed)(()=>i.miniPlayer??!1)),R=M(c,p,{enabled:i.keyboard!==!1,onToggleFullscreen:()=>{c.value?.getFullscreen?.()}}),z=null;function B(e){O.addBookmark(e),a(`bookmarkChange`,O.bookmarks.value)}function V(){let e=I.submitAnswer(),t=I.activeQuiz.value;t&&a(`quizAnswer`,t.id,I.selectedAnswer.value,e)}function H(){I.closeQuiz()}return(0,n.watch)(l,e=>{a(`stateChange`,e)}),(0,n.watch)(f,e=>{a(`fullscreenChange`,e)}),(0,n.watch)(()=>D.currentChapter.value,e=>{e&&a(`chapterChange`,e)}),(0,n.onMounted)(async()=>{o.containerRef.value=s.value,await(0,n.nextTick)(),await o.initPlayer();let e=c.value;if(!e)return;b.bindEvents(e),P.bindEvents(e),F.initSubtitles(),R.startListening(),L.initObserver();let t=y.restoreProgress();t>0&&i.startTime===void 0&&(e.currentTime=t),e.on(m.PLAY,()=>{y.onPlay()}),e.on(m.PAUSE,()=>{y.onPause()}),e.on(m.TIME_UPDATE,()=>{y.onTimeUpdate(),a(`timeUpdate`,u.value,d.value),a(`progressUpdate`,y.getProgressData())}),e.on(m.ENDED,()=>{a(`ended`),P.markAsWatched()}),e.on(m.ERROR,()=>{a(`error`,Error(`播放器错误`))}),e.on(m.READY,()=>{a(`ready`)}),e.on(m.AFTER_DEFINITION_CHANGE,e=>{a(`qualityChange`,e.to)}),e.on(m.RATE_CHANGE,e=>{a(`rateChange`,e)}),i.onAnalytics&&(z=N(e,i.onAnalytics).destroy)}),(0,n.onBeforeUnmount)(()=>{z?.(),R.stopListening(),L.destroyObserver(),y.stopTracking(),o.destroyPlayer()}),t({play:h.play,pause:h.pause,seek:h.seek,setPlaybackRate:h.setPlaybackRate,setVolume:h.setVolume,switchQuality:b.switchQuality,getProgressData:y.getProgressData,destroy:o.destroyPlayer,getPlayerInstance:()=>c.value}),(e,t)=>((0,n.openBlock)(),(0,n.createElementBlock)(`div`,{ref_key:`wrapperRef`,ref:p,class:(0,n.normalizeClass)([`c-video-player`,{"is-mini":(0,n.unref)(L).isMiniMode.value,"is-fullscreen":(0,n.unref)(f)}]),tabindex:`0`},[(0,n.createCommentVNode)(` 播放器容器 `),(0,n.createElementVNode)(`div`,{ref_key:`containerRef`,ref:s,class:`c-video-player__container`},null,512),(0,n.createCommentVNode)(` 动态水印 `),(0,n.createVNode)(be,{visible:(0,n.unref)(P).showWatermark.value,text:(0,n.unref)(P).watermarkText.value},null,8,[`visible`,`text`]),(0,n.createCommentVNode)(` 字幕渲染层 `),(0,n.createVNode)(W,{text:(0,n.unref)(F).currentText.value,tracks:(0,n.unref)(F).subtitleList.value,"active-language":(0,n.unref)(F).activeLanguage.value,onSwitch:(0,n.unref)(F).switchSubtitle,onClose:(0,n.unref)(F).closeSubtitle},null,8,[`text`,`tracks`,`active-language`,`onSwitch`,`onClose`]),(0,n.createCommentVNode)(` 测验弹窗 `),i.quizzes?.length?((0,n.openBlock)(),(0,n.createBlock)(ve,{key:0,answer:(0,n.unref)(I).selectedAnswer.value,"onUpdate:answer":t[0]||=e=>(0,n.unref)(I).selectedAnswer.value=e,quiz:(0,n.unref)(I).activeQuiz.value,"show-result":(0,n.unref)(I).showResult.value,"is-correct":(0,n.unref)(I).lastAnswerCorrect.value,onSubmit:V,onRetry:t[1]||=e=>(0,n.unref)(I).retryQuiz(),onClose:H},null,8,[`answer`,`quiz`,`show-result`,`is-correct`])):(0,n.createCommentVNode)(`v-if`,!0),(0,n.createCommentVNode)(` 扩展控制栏(xgplayer 自带控制栏外的扩展) `),(0,n.createVNode)(ee,{visible:!0},{left:(0,n.withCtx)(()=>[(0,n.createCommentVNode)(` 章节标记 `),i.chapters?.length?((0,n.openBlock)(),(0,n.createBlock)(ie,{key:0,chapters:S.value,"current-chapter":(0,n.unref)(D).currentChapter.value,"current-index":(0,n.unref)(D).currentChapterIndex.value,onGoTo:(0,n.unref)(D).goToChapter},null,8,[`chapters`,`current-chapter`,`current-index`,`onGoTo`])):(0,n.createCommentVNode)(`v-if`,!0)]),right:(0,n.withCtx)(()=>[(0,n.createCommentVNode)(` 书签面板 `),(0,n.createVNode)(ue,{bookmarks:(0,n.unref)(O).bookmarks.value,onAdd:B,onRemove:(0,n.unref)(O).removeBookmark,onGoTo:(0,n.unref)(O).goToBookmark},null,8,[`bookmarks`,`onRemove`,`onGoTo`])]),_:1}),(0,n.createCommentVNode)(` 小窗关闭按钮 `),(0,n.unref)(L).isMiniMode.value?((0,n.openBlock)(),(0,n.createElementBlock)(`div`,{key:1,class:`c-video-player__mini-close`,onClick:t[2]||=e=>(0,n.unref)(L).closeMiniPlayer()},` ✕ `)):(0,n.createCommentVNode)(`v-if`,!0),(0,n.createCommentVNode)(` 小窗点击回原位 `),(0,n.unref)(L).isMiniMode.value?((0,n.openBlock)(),(0,n.createElementBlock)(`div`,{key:2,class:`c-video-player__mini-back`,onClick:t[3]||=e=>(0,n.unref)(L).scrollToPlayer()},` 回到原位 `)):(0,n.createCommentVNode)(`v-if`,!0)],2))}});var Se=e.t(xe,[[`__scopeId`,`data-v-4e6370ca`]]);Object.defineProperty(exports,`_`,{enumerable:!0,get:function(){return p}}),Object.defineProperty(exports,`a`,{enumerable:!0,get:function(){return x}}),Object.defineProperty(exports,`b`,{enumerable:!0,get:function(){return h}}),Object.defineProperty(exports,`c`,{enumerable:!0,get:function(){return o}}),Object.defineProperty(exports,`d`,{enumerable:!0,get:function(){return a}}),Object.defineProperty(exports,`f`,{enumerable:!0,get:function(){return u}}),Object.defineProperty(exports,`g`,{enumerable:!0,get:function(){return l}}),Object.defineProperty(exports,`h`,{enumerable:!0,get:function(){return 5}}),Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return w}}),Object.defineProperty(exports,`l`,{enumerable:!0,get:function(){return 1}}),Object.defineProperty(exports,`m`,{enumerable:!0,get:function(){return c}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return k}}),Object.defineProperty(exports,`o`,{enumerable:!0,get:function(){return v}}),Object.defineProperty(exports,`p`,{enumerable:!0,get:function(){return s}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return T}}),Object.defineProperty(exports,`s`,{enumerable:!0,get:function(){return _}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return Se}}),Object.defineProperty(exports,`u`,{enumerable:!0,get:function(){return i}}),Object.defineProperty(exports,`v`,{enumerable:!0,get:function(){return f}}),Object.defineProperty(exports,`x`,{enumerable:!0,get:function(){return m}}),Object.defineProperty(exports,`y`,{enumerable:!0,get:function(){return d}});
|
package/dist/C_VideoPlayer2.js
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
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 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
|
-
//# sourceMappingURL=C_VideoPlayer2.js.map
|
|
1
|
+
import{t as e}from"./export-helper.js";import{i as t,t as n}from"./storage.js";import{Fragment as r,Transition as i,computed as a,createBlock as o,createCommentVNode as s,createElementBlock as c,createElementVNode as l,createTextVNode as u,createVNode as d,defineComponent as f,mergeModels as p,nextTick as m,normalizeClass as h,normalizeStyle as g,onBeforeUnmount as _,onMounted as v,openBlock as y,ref as b,renderList as x,renderSlot as S,resolveComponent as C,shallowRef as w,toDisplayString as T,toRef as E,unref as D,useModel as O,watch as k,withCtx as A}from"vue";import{NBadge as j,NButton as M,NCheckbox as N,NCheckboxGroup as P,NPopover as F,NRadio as I,NRadioGroup as L}from"naive-ui";const R=[.5,.75,1,1.25,1.5,2,3],z=1,B=.75,V=3e4,H=5e3,ee={"360p":`流畅 360P`,"480p":`标清 480P`,"720p":`高清 720P`,"1080p":`超清 1080P`,"1440p":`2K 1440P`,"4K":`4K 超高清`},U={".mp4":`mp4`,".m3u8":`hls`,".mpd":`dash`,".flv":`flv`},te={SPACE:`播放/暂停`,ARROW_LEFT:`快退 5 秒`,ARROW_RIGHT:`快进 5 秒`,ARROW_UP:`音量增加 10%`,ARROW_DOWN:`音量减少 10%`,F:`全屏/退出全屏`,M:`静音/取消静音`,ESC:`退出全屏`},ne=5,W=.1,G=`c_video_player_`,K={VOLUME:`${G}volume`,PLAYBACK_RATE:`${G}playback_rate`,PROGRESS:`${G}progress_`,BOOKMARKS:`${G}bookmarks_`},q={READY:`ready`,PLAY:`play`,PAUSE:`pause`,ENDED:`ended`,ERROR:`error`,SEEKING:`seeking`,SEEKED:`seeked`,TIME_UPDATE:`timeupdate`,WAITING:`waiting`,DURATION_CHANGE:`durationchange`,RATE_CHANGE:`ratechange`,FULLSCREEN_CHANGE:`fullscreen_change`,DEFINITION_CHANGE:`definition_change`,BEFORE_DEFINITION_CHANGE:`before_definition_change`,AFTER_DEFINITION_CHANGE:`after_definition_change`},J={fontSize:14,color:`rgba(150, 150, 150, 0.15)`,rotate:-25,gap:120};function re(e){try{let{pathname:t}=new URL(e,location.href);return U[t.slice(t.lastIndexOf(`.`)).toLowerCase()]??`mp4`}catch{return`mp4`}}function Y(e){let t=b(null),n=w(null),r=b(`idle`),i=b(0),a=b(0),o=b(!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??B,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??re(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(q.READY,()=>{r.value=`ready`}),l.on(q.PLAY,()=>{r.value=`playing`}),l.on(q.PAUSE,()=>{r.value=`paused`}),l.on(q.ENDED,()=>{r.value=`ended`}),l.on(q.ERROR,()=>{r.value=`error`}),l.on(q.TIME_UPDATE,()=>{i.value=l.currentTime??0,a.value=l.duration??0}),l.on(q.DURATION_CHANGE,()=>{a.value=l.duration??0}),l.on(q.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 _(()=>{p()}),{containerRef:t,playerRef:n,playerState:r,currentTime:i,duration:a,isFullscreen:o,initPlayer:f,destroyPlayer:p}}function X(e){let n=b(ie()),r=b(ae()),i=b(!1);function a(){e.value?.play()}function o(){e.value?.pause()}function s(){let t=e.value;t&&(t.paused?t.play():t.pause())}function c(t){let n=e.value;n&&(n.currentTime=Math.max(0,Math.min(t,n.duration??0)))}function l(r){let a=e.value;if(!a)return;let o=Math.max(0,Math.min(1,r));a.volume=o,n.value=o,i.value=o===0,t(K.VOLUME,o)}function u(){let t=e.value;t&&(i.value?l(n.value>0?n.value:.5):(t.volume=0,i.value=!0))}function d(n){let i=e.value;i&&(i.playbackRate=n,r.value=n,t(K.PLAYBACK_RATE,n))}function f(){let t=e.value;t&&(t.volume=n.value,t.playbackRate=r.value,i.value=n.value===0)}return k(e,e=>{e&&f()}),{volume:n,playbackRate:r,isMuted:i,play:a,pause:o,togglePlay:s,seek:c,setVolume:l,toggleMute:u,setPlaybackRate:d}}function ie(){let e=Number(n(K.VOLUME));return Number.isFinite(e)&&e>=0&&e<=1?e:.75}function ae(){let e=Number(n(K.PLAYBACK_RATE));return Number.isFinite(e)&&e>0?e:1}function Z(e,r,i,a,o,s){let c=b(0),l=b(0),u=0,d=!1,f=null,p=null;function m(){return K.PROGRESS+encodeURIComponent(a.value)}function h(){let e=n(m());return!e||typeof e!=`object`?0:(c.value=Q(e.watchedDuration),l.value=Math.min(100,Q(e.completionPercent)),Q(e.currentTime))}function g(){return{currentTime:r.value,duration:i.value,watchedDuration:c.value,completionPercent:l.value,updatedAt:Date.now()}}function v(){t(m(),g())}function y(e,t){if(e)try{Promise.resolve(e(t)).catch(()=>void 0)}catch{}}function x(){y(o,g()),v()}function S(){if(!d)return;let e=performance.now();if(u>0){let t=(e-u)/1e3;t>0&&t<5&&(c.value+=t)}u=e,i.value>0&&(l.value=Math.min(100,Math.round(c.value/i.value*100)))}function C(){let e=s?.heartbeatInterval??V;f=setInterval(()=>{d&&y(s?.onHeartbeat,g())},e)}function w(){p=setInterval(()=>{d&&x()},H)}function T(){let e=g();v(),y(o,e)}function E(){if(document.hidden)S(),x(),d=!1;else{let t=e.value;t&&!t.paused&&(d=!0,u=performance.now())}}function D(){A(),C(),w(),window.addEventListener(`beforeunload`,T),document.addEventListener(`visibilitychange`,E)}function O(){d=!1,A(),v()}function A(){f&&=(clearInterval(f),null),p&&=(clearInterval(p),null),window.removeEventListener(`beforeunload`,T),document.removeEventListener(`visibilitychange`,E)}function j(){d=!0,u=performance.now()}function M(){S(),d=!1,u=0,v()}function N(){S()}return k(e,e=>{e?D():A()}),_(()=>{O()}),{watchedDuration:c,completionPercent:l,getProgressData:g,restoreProgress:h,saveProgress:v,startTracking:D,stopTracking:O,onPlay:j,onPause:M,onTimeUpdate:N}}function Q(e){let t=Number(e);return Number.isFinite(t)&&t>=0?t:0}function oe(e,t=[]){let n=b(null),r=b(!1);function i(e){e.on(q.AFTER_DEFINITION_CHANGE,e=>{n.value=e.to,r.value=!1}),e.on(q.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 $(e,t,n,r){let i=a(()=>{if(!e.value.length)return null;let n=t.value;return e.value.find(e=>n>=e.startTime&&n<e.endTime)??null}),o=a(()=>i.value?e.value.findIndex(e=>e.id===i.value.id):-1),s=a(()=>!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 c(t){let n=e.value.find(e=>e.id===t);n&&r(n.startTime)}function l(){let t=o.value;t>0&&r(e.value[t-1].startTime)}function u(){let t=o.value;t>=0&&t<e.value.length-1&&r(e.value[t+1].startTime)}return{currentChapter:i,currentChapterIndex:o,chapterMarkers:s,goToChapter:c,prevChapter:l,nextChapter:u}}function se(e,r,i,a=[]){let o=b([...a]);function s(){return K.BOOKMARKS+encodeURIComponent(e.value)}function c(){let e=n(s());Array.isArray(e)&&(o.value=e.filter(e=>typeof e==`object`&&!!e&&typeof e.id==`string`&&typeof e.time==`number`&&Number.isFinite(e.time)&&typeof e.note==`string`&&typeof e.createdAt==`number`),u())}function l(){t(s(),o.value)}function u(){o.value.sort((e,t)=>e.time-t.time)}function d(e=``){let t={id:typeof crypto<`u`&&`randomUUID`in crypto?`bm_${crypto.randomUUID()}`:`bm_${Date.now()}_${o.value.length}`,time:r.value,note:e,createdAt:Date.now()};return o.value.push(t),u(),l(),t}function f(e){let t=o.value.findIndex(t=>t.id===e);t!==-1&&(o.value.splice(t,1),l())}function p(e,t){let n=o.value.find(t=>t.id===e);n&&(n.note=t,l())}function m(e){let t=o.value.find(t=>t.id===e);t&&i(t.time)}function h(){o.value=[],l()}return a.length||c(),{bookmarks:o,addBookmark:d,removeBookmark:f,updateBookmark:p,goToBookmark:m,clearBookmarks:h}}function ce(e,t,n){let r=b(0),i=b(!0),a=b(!1),o=b(n?.watermark??!1),s=b(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(q.SEEKING,()=>l(e)),e.on(q.TIME_UPDATE,()=>{c(t.value)}),n?.focusDetection&&document.addEventListener(`visibilitychange`,u)}function f(){i.value=!1}function p(e){s.value=e}return _(()=>{document.removeEventListener(`visibilitychange`,u)}),{maxWatchedTime:r,isFirstWatch:i,isBlurred:a,showWatermark:o,watermarkText:s,bindEvents:d,markAsWatched:f,setWatermarkText:p}}function le(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 ue(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=le(i),s=le(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 de(e,t=[],n=b(0)){let r=b(null),i=b([...t]),o=b({}),s=b(!1),c=a(()=>{if(!r.value)return``;let e=o.value[r.value];if(!e?.length)return``;let t=n.value;return e.find(e=>t>=e.start&&t<e.end)?.text??``}),l=a(()=>i.value.length>0);async function u(e){if(o.value[e])return o.value[e];let t=i.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=ue(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(!i.value.length)return;let e=i.value.find(e=>e.default)??i.value[0];await u(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 u(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:c,hasSubtitles:l,isLoading:s,initSubtitles:d,switchSubtitle:f,closeSubtitle:p,toggleSubtitle:m}}function fe(e,t,n){let r=b(null),i=b(new Set),a=b(``),o=b(!1),s=b(!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 k(t,()=>{c()}),{activeQuiz:r,completedQuizIds:i,selectedAnswer:a,showResult:o,lastAnswerCorrect:s,submitAnswer:u,closeQuiz:d,retryQuiz:f}}function pe(e,t){let n=b(!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 _(()=>{a()}),{isMiniMode:n,initObserver:i,destroyObserver:a,scrollToPlayer:o,closeMiniPlayer:s}}function me(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)+W)},ArrowDown:(e,t)=>{e.preventDefault(),t.volume=Math.max(0,(t.volume??0)-W)},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 _(()=>{c()}),{startListening:s,stopListening:c}}function he(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(q.PLAY,i),e.on(q.PAUSE,a),e.on(q.ENDED,o),e.on(q.SEEKED,s),e.on(q.ERROR,c),e.on(q.WAITING,l),e.on(q.FULLSCREEN_CHANGE,u),e.on(q.DEFINITION_CHANGE,d),e.on(q.RATE_CHANGE,f);function p(){e.off(q.PLAY,i),e.off(q.PAUSE,a),e.off(q.ENDED,o),e.off(q.SEEKED,s),e.off(q.ERROR,c),e.off(q.WAITING,l),e.off(q.FULLSCREEN_CHANGE,u),e.off(q.DEFINITION_CHANGE,d),e.off(q.RATE_CHANGE,f)}return{report:r,destroy:p}}const ge={key:0,class:`vp-control-bar`},_e={class:`vp-control-bar__left`},ve={class:`vp-control-bar__center`},ye={class:`vp-control-bar__right`};var be=e(f({__name:`ControlBar`,props:{visible:{type:Boolean,default:!0}},setup(e){return(t,n)=>e.visible?(y(),c(`div`,ge,[l(`div`,_e,[S(t.$slots,`left`,{},void 0,!0)]),l(`div`,ve,[S(t.$slots,`center`,{},void 0,!0)]),l(`div`,ye,[S(t.$slots,`right`,{},void 0,!0)])])):s(`v-if`,!0)}}),[[`__scopeId`,`data-v-ea44a973`]]);const xe={key:0,class:`vp-subtitle-overlay`},Se={class:`vp-subtitle-text`},Ce={key:0,class:`vp-subtitle-toggle`},we={class:`vp-subtitle-menu`},Te=[`onClick`];var Ee=e(f({__name:`SubtitleOverlay`,props:{text:{},tracks:{},activeLanguage:{}},emits:[`switch`,`close`],setup(e){return(t,n)=>{let a=M,o=F;return y(),c(r,null,[s(` 字幕文本 `),d(i,{name:`vp-subtitle-fade`},{default:A(()=>[e.text?(y(),c(`div`,xe,[l(`span`,Se,T(e.text),1)])):s(`v-if`,!0)]),_:1}),s(` 字幕切换按钮(叠加在播放器控制栏上方) `),e.tracks.length?(y(),c(`div`,Ce,[d(o,{trigger:`click`,placement:`top`,"show-arrow":!1},{trigger:A(()=>[d(a,{quaternary:``,size:`small`,class:h([`vp-subtitle-btn`,{"is-active":!!e.activeLanguage}])},{default:A(()=>[...n[1]||=[u(` 字幕 `,-1)]]),_:1},8,[`class`])]),default:A(()=>[l(`div`,we,[l(`div`,{class:h([`vp-subtitle-menu__item`,{"is-active":!e.activeLanguage}]),onClick:n[0]||=e=>t.$emit(`close`)},` 关闭字幕 `,2),(y(!0),c(r,null,x(e.tracks,n=>(y(),c(`div`,{key:n.language,class:h([`vp-subtitle-menu__item`,{"is-active":e.activeLanguage===n.language}]),onClick:e=>t.$emit(`switch`,n.language)},T(n.label),11,Te))),128))])]),_:1})])):s(`v-if`,!0)],64)}}}),[[`__scopeId`,`data-v-1069c4da`]]);const De={key:0,class:`vp-chapter-markers`},Oe={key:0,class:`vp-chapter-current`},ke={class:`vp-chapter-index`},Ae={class:`vp-chapter-title`},je={class:`vp-chapter-list`},Me=[`onClick`],Ne={class:`vp-chapter-item-index`},Pe={class:`vp-chapter-item-title`},Fe={class:`vp-chapter-item-time`};var Ie=e(f({__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(n,i)=>{let a=M,o=F;return e.chapters.length?(y(),c(`div`,De,[s(` 当前章节信息 `),e.currentChapter?(y(),c(`div`,Oe,[l(`span`,ke,T(e.currentIndex+1)+`/`+T(e.chapters.length),1),l(`span`,Ae,T(e.currentChapter.title),1)])):s(`v-if`,!0),s(` 章节列表面板 `),d(o,{trigger:`click`,placement:`top-start`,"show-arrow":!1,style:{"max-height":`300px`,"overflow-y":`auto`}},{trigger:A(()=>[d(a,{quaternary:``,size:`small`,class:`vp-chapter-trigger`},{icon:A(()=>[...i[0]||=[l(`span`,{class:`vp-chapter-icon`},`☰`,-1)]]),default:A(()=>[i[1]||=u(` 章节 `,-1)]),_:1})]),default:A(()=>[l(`div`,je,[(y(!0),c(r,null,x(e.chapters,(r,i)=>(y(),c(`div`,{key:r.id,class:h([`vp-chapter-item`,{"is-active":r.id===e.currentChapter?.id}]),onClick:e=>n.$emit(`goTo`,r.id)},[l(`span`,Ne,T(i+1),1),l(`span`,Pe,T(r.title),1),l(`span`,Fe,T(t(r.startTime)),1)],10,Me))),128))])]),_:1})])):s(`v-if`,!0)}}}),[[`__scopeId`,`data-v-3218c0f1`]]);const Le={class:`vp-bookmark-panel`},Re={class:`vp-bookmark-list`},ze=[`aria-label`,`onClick`],Be={class:`vp-bookmark-note`};var Ve=e(f({__name:`BookmarkPanel`,props:{bookmarks:{}},emits:[`add`,`remove`,`goTo`],setup(e,{emit:t}){let n=t;function i(){n(`add`,``)}function a(e){let t=Math.floor(e/60),n=Math.floor(e%60);return`${t.toString().padStart(2,`0`)}:${n.toString().padStart(2,`0`)}`}return(t,n)=>{let f=M,p=j,m=F;return y(),c(`div`,Le,[s(` 添加书签按钮 `),d(f,{quaternary:``,size:`small`,class:`vp-bookmark-add-btn`,onClick:i},{icon:A(()=>[...n[0]||=[l(`span`,null,`🔖`,-1)]]),default:A(()=>[n[1]||=u(` 书签 `,-1)]),_:1}),s(` 书签列表弹窗 `),e.bookmarks.length?(y(),o(m,{key:0,trigger:`click`,placement:`top-start`,"show-arrow":!1,style:{"max-height":`300px`,"overflow-y":`auto`}},{trigger:A(()=>[d(p,{value:e.bookmarks.length,max:99,type:`info`},{default:A(()=>[d(f,{quaternary:``,size:`small`,class:`vp-bookmark-list-btn`},{default:A(()=>[...n[2]||=[u(` 列表 `,-1)]]),_:1})]),_:1},8,[`value`])]),default:A(()=>[l(`div`,Re,[(y(!0),c(r,null,x(e.bookmarks,e=>(y(),c(`div`,{key:e.id,class:`vp-bookmark-item`},[l(`button`,{type:`button`,class:`vp-bookmark-time`,"aria-label":`跳转到 ${a(e.time)}`,onClick:n=>t.$emit(`goTo`,e.id)},T(a(e.time)),9,ze),l(`span`,Be,T(e.note||`无备注`),1),d(f,{quaternary:``,size:`tiny`,type:`error`,onClick:n=>t.$emit(`remove`,e.id)},{default:A(()=>[...n[3]||=[u(` ✕ `,-1)]]),_:1},8,[`onClick`])]))),128))])]),_:1})):s(`v-if`,!0)])}}}),[[`__scopeId`,`data-v-9578e4e4`]]);const He={key:0,class:`vp-quiz-overlay`},Ue={class:`vp-quiz-card`},We={class:`vp-quiz-header`},Ge={class:`vp-quiz-type-tag`},Ke={class:`vp-quiz-title`},qe={class:`vp-quiz-options`},Je={class:`vp-quiz-actions`};var Ye=e(f({__name:`QuizOverlay`,props:p({quiz:{},showResult:{type:Boolean,default:!1},isCorrect:{type:Boolean,default:!1}},{answer:{default:``},answerModifiers:{}}),emits:p([`submit`,`retry`,`close`],[`update:answer`]),setup(e){let t=e,n=b(``),f=b([]),p=O(e,`answer`),m=a(()=>({single:`单选题`,multiple:`多选题`,judge:`判断题`})[t.quiz?.type??`single`]??`单选题`),g=a(()=>t.quiz?.type===`multiple`?f.value.length>0:n.value!==``);return k(n,e=>{t.quiz?.type!==`multiple`&&(p.value=e)}),k(f,e=>{t.quiz?.type===`multiple`&&(p.value=[...e])}),k(()=>t.quiz?.id,()=>{n.value=``,f.value=[]}),(t,a)=>{let p=N,_=P,v=I,b=L,S=M;return y(),o(i,{name:`vp-quiz-fade`},{default:A(()=>[e.quiz?(y(),c(`div`,He,[l(`div`,Ue,[s(` 标题 `),l(`div`,We,[l(`span`,Ge,T(m.value),1),l(`h3`,Ke,T(e.quiz.title),1)]),s(` 选项 `),l(`div`,qe,[e.quiz.type===`multiple`?(y(),o(_,{key:0,value:f.value,"onUpdate:value":a[0]||=e=>f.value=e,disabled:e.showResult},{default:A(()=>[(y(!0),c(r,null,x(e.quiz.options,e=>(y(),c(`div`,{key:e.key,class:`vp-quiz-option`},[d(p,{value:e.key,label:`${e.key}. ${e.label}`},null,8,[`value`,`label`])]))),128))]),_:1},8,[`value`,`disabled`])):(y(),o(b,{key:1,value:n.value,"onUpdate:value":a[1]||=e=>n.value=e,disabled:e.showResult},{default:A(()=>[(y(!0),c(r,null,x(e.quiz.options,e=>(y(),c(`div`,{key:e.key,class:`vp-quiz-option`},[d(v,{value:e.key,label:`${e.key}. ${e.label}`},null,8,[`value`,`label`])]))),128))]),_:1},8,[`value`,`disabled`]))]),s(` 结果反馈 `),e.showResult?(y(),c(`div`,{key:0,class:h([`vp-quiz-result`,e.isCorrect?`is-correct`:`is-wrong`])},T(e.isCorrect?`✓ 回答正确!`:`✗ 回答错误,请重试`),3)):s(`v-if`,!0),s(` 操作按钮 `),l(`div`,Je,[e.showResult?(y(),c(r,{key:1},[!e.isCorrect&&e.quiz.required?(y(),o(S,{key:0,type:`warning`,onClick:a[3]||=e=>t.$emit(`retry`)},{default:A(()=>[...a[6]||=[u(` 重新作答 `,-1)]]),_:1})):s(`v-if`,!0),e.isCorrect||!e.quiz.required?(y(),o(S,{key:1,type:`primary`,onClick:a[4]||=e=>t.$emit(`close`)},{default:A(()=>[...a[7]||=[u(` 继续学习 `,-1)]]),_:1})):s(`v-if`,!0)],64)):(y(),o(S,{key:0,type:`primary`,disabled:!g.value,onClick:a[2]||=e=>t.$emit(`submit`)},{default:A(()=>[...a[5]||=[u(` 提交答案 `,-1)]]),_:1},8,[`disabled`]))])])])):s(`v-if`,!0)]),_:1})}}}),[[`__scopeId`,`data-v-a8cd8fbf`]]),Xe=e(f({__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=a(()=>{let e=t.gap*t.gap;return Math.ceil(2073600/e)}),i=a(()=>({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`})),o=a(()=>({fontSize:`${t.fontSize}px`,color:t.color,transform:`rotate(${t.rotate}deg)`,userSelect:`none`,whiteSpace:`nowrap`,lineHeight:1}));return(t,a)=>e.visible&&e.text?(y(),c(`div`,{key:0,class:`vp-watermark`,style:g(i.value)},[(y(!0),c(r,null,x(n.value,t=>(y(),c(`span`,{key:t,class:`vp-watermark-item`,style:g(o.value)},T(e.text),5))),128))],4)):s(`v-if`,!0)}}),[[`__scopeId`,`data-v-6928c31a`]]),Ze=e(f({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,u=Y(r),{containerRef:f,playerRef:p,playerState:g,currentTime:x,duration:S,isFullscreen:C}=u,w=b(null),T=X(p),O=E(r,`url`),j=Z(p,x,S,O,r.onProgress,r.antiCheat),M=oe(p,r.qualityList),N=a(()=>r.chapters??[]),P=$(N,x,S,T.seek),F=se(O,x,T.seek,r.bookmarks),I=ce(p,x,r.antiCheat),L=de(p,r.subtitles,x),R=fe(p,x,a(()=>r.quizzes??[])),z=pe(w,a(()=>r.miniPlayer??!1)),B=me(p,w,{enabled:r.keyboard!==!1,onToggleFullscreen:()=>{p.value?.getFullscreen?.()}}),V=null;function H(e){F.addBookmark(e),i(`bookmarkChange`,F.bookmarks.value)}function ee(){let e=R.submitAnswer(),t=R.activeQuiz.value;t&&i(`quizAnswer`,t.id,R.selectedAnswer.value,e)}function U(){R.closeQuiz()}return k(g,e=>{i(`stateChange`,e)}),k(C,e=>{i(`fullscreenChange`,e)}),k(()=>P.currentChapter.value,e=>{e&&i(`chapterChange`,e)}),v(async()=>{u.containerRef.value=f.value,await m(),await u.initPlayer();let e=p.value;if(!e)return;M.bindEvents(e),I.bindEvents(e),L.initSubtitles(),B.startListening(),z.initObserver();let t=j.restoreProgress();t>0&&r.startTime===void 0&&(e.currentTime=t),e.on(q.PLAY,()=>{j.onPlay()}),e.on(q.PAUSE,()=>{j.onPause()}),e.on(q.TIME_UPDATE,()=>{j.onTimeUpdate(),i(`timeUpdate`,x.value,S.value),i(`progressUpdate`,j.getProgressData())}),e.on(q.ENDED,()=>{i(`ended`),I.markAsWatched()}),e.on(q.ERROR,()=>{i(`error`,Error(`播放器错误`))}),e.on(q.READY,()=>{i(`ready`)}),e.on(q.AFTER_DEFINITION_CHANGE,e=>{i(`qualityChange`,e.to)}),e.on(q.RATE_CHANGE,e=>{i(`rateChange`,e)}),r.onAnalytics&&(V=he(e,r.onAnalytics).destroy)}),_(()=>{V?.(),B.stopListening(),z.destroyObserver(),j.stopTracking(),u.destroyPlayer()}),t({play:T.play,pause:T.pause,seek:T.seek,setPlaybackRate:T.setPlaybackRate,setVolume:T.setVolume,switchQuality:M.switchQuality,getProgressData:j.getProgressData,destroy:u.destroyPlayer,getPlayerInstance:()=>p.value}),(e,t)=>(y(),c(`div`,{ref_key:`wrapperRef`,ref:w,class:h([`c-video-player`,{"is-mini":D(z).isMiniMode.value,"is-fullscreen":D(C)}]),tabindex:`0`},[s(` 播放器容器 `),l(`div`,{ref_key:`containerRef`,ref:f,class:`c-video-player__container`},null,512),s(` 动态水印 `),d(Xe,{visible:D(I).showWatermark.value,text:D(I).watermarkText.value},null,8,[`visible`,`text`]),s(` 字幕渲染层 `),d(Ee,{text:D(L).currentText.value,tracks:D(L).subtitleList.value,"active-language":D(L).activeLanguage.value,onSwitch:D(L).switchSubtitle,onClose:D(L).closeSubtitle},null,8,[`text`,`tracks`,`active-language`,`onSwitch`,`onClose`]),s(` 测验弹窗 `),r.quizzes?.length?(y(),o(Ye,{key:0,answer:D(R).selectedAnswer.value,"onUpdate:answer":t[0]||=e=>D(R).selectedAnswer.value=e,quiz:D(R).activeQuiz.value,"show-result":D(R).showResult.value,"is-correct":D(R).lastAnswerCorrect.value,onSubmit:ee,onRetry:t[1]||=e=>D(R).retryQuiz(),onClose:U},null,8,[`answer`,`quiz`,`show-result`,`is-correct`])):s(`v-if`,!0),s(` 扩展控制栏(xgplayer 自带控制栏外的扩展) `),d(be,{visible:!0},{left:A(()=>[s(` 章节标记 `),r.chapters?.length?(y(),o(Ie,{key:0,chapters:N.value,"current-chapter":D(P).currentChapter.value,"current-index":D(P).currentChapterIndex.value,onGoTo:D(P).goToChapter},null,8,[`chapters`,`current-chapter`,`current-index`,`onGoTo`])):s(`v-if`,!0)]),right:A(()=>[s(` 书签面板 `),d(Ve,{bookmarks:D(F).bookmarks.value,onAdd:H,onRemove:D(F).removeBookmark,onGoTo:D(F).goToBookmark},null,8,[`bookmarks`,`onRemove`,`onGoTo`])]),_:1}),s(` 小窗关闭按钮 `),D(z).isMiniMode.value?(y(),c(`div`,{key:1,class:`c-video-player__mini-close`,onClick:t[2]||=e=>D(z).closeMiniPlayer()},` ✕ `)):s(`v-if`,!0),s(` 小窗点击回原位 `),D(z).isMiniMode.value?(y(),c(`div`,{key:2,class:`c-video-player__mini-back`,onClick:t[3]||=e=>D(z).scrollToPlayer()},` 回到原位 `)):s(`v-if`,!0)],2))}}),[[`__scopeId`,`data-v-4e6370ca`]]);export{K as _,Z as a,J as b,V as c,B as d,te as f,U as g,ne as h,$ as i,z as l,ee as m,de as n,X as o,H as p,se as r,Y as s,Ze as t,R as u,G as v,q as x,W as y};
|
package/dist/C_VtableGantt.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`./
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`}),require(`./C_Icon2.cjs`);const e=require(`./C_VtableGantt2.cjs`);exports.C_VtableGantt=e.t,exports.ganttPresetConfigs=e.n;
|
package/dist/C_VtableGantt.css
CHANGED
|
@@ -33,16 +33,14 @@
|
|
|
33
33
|
min-height: 400px;
|
|
34
34
|
overflow: hidden;
|
|
35
35
|
/* 确保甘特图组件完全填充容器 */
|
|
36
|
-
/* 确保甘特图内部组件正确填充 */
|
|
37
|
-
/* 防止内部表格自动调整高度 */
|
|
38
|
-
/* 防止拖动时底部色块闪烁 */
|
|
39
|
-
/* 针对拖动元素的优化 */
|
|
40
|
-
/* 防止拖动时底部区域的重绘闪烁 */
|
|
41
36
|
}
|
|
42
37
|
.c-vtable-gantt-wrapper .gantt-container[data-v-1fc4d705] > * {
|
|
43
38
|
width: 100%;
|
|
44
39
|
height: 100%;
|
|
45
40
|
}
|
|
41
|
+
.c-vtable-gantt-wrapper .gantt-container[data-v-1fc4d705] {
|
|
42
|
+
/* 确保甘特图内部组件正确填充 */
|
|
43
|
+
}
|
|
46
44
|
.c-vtable-gantt-wrapper .gantt-container[data-v-1fc4d705] .vtable-gantt {
|
|
47
45
|
width: 100% !important;
|
|
48
46
|
height: 100% !important;
|
|
@@ -53,16 +51,25 @@
|
|
|
53
51
|
transform: translateZ(0);
|
|
54
52
|
-webkit-font-smoothing: subpixel-antialiased;
|
|
55
53
|
}
|
|
54
|
+
.c-vtable-gantt-wrapper .gantt-container[data-v-1fc4d705] {
|
|
55
|
+
/* 防止内部表格自动调整高度 */
|
|
56
|
+
}
|
|
56
57
|
.c-vtable-gantt-wrapper .gantt-container[data-v-1fc4d705] .vtable-gantt-table {
|
|
57
58
|
height: 100% !important;
|
|
58
59
|
box-sizing: border-box;
|
|
59
60
|
}
|
|
61
|
+
.c-vtable-gantt-wrapper .gantt-container[data-v-1fc4d705] {
|
|
62
|
+
/* 防止拖动时底部色块闪烁 */
|
|
63
|
+
}
|
|
60
64
|
.c-vtable-gantt-wrapper .gantt-container[data-v-1fc4d705] .vtable-gantt-chart {
|
|
61
65
|
position: relative;
|
|
62
66
|
overflow: hidden;
|
|
63
67
|
will-change: transform;
|
|
64
68
|
transform: translateZ(0);
|
|
65
69
|
}
|
|
70
|
+
.c-vtable-gantt-wrapper .gantt-container[data-v-1fc4d705] {
|
|
71
|
+
/* 针对拖动元素的优化 */
|
|
72
|
+
}
|
|
66
73
|
.c-vtable-gantt-wrapper .gantt-container[data-v-1fc4d705] .vtable-gantt-task {
|
|
67
74
|
backface-visibility: hidden;
|
|
68
75
|
transform: translateZ(0);
|
|
@@ -71,6 +78,9 @@
|
|
|
71
78
|
z-index: 1000;
|
|
72
79
|
pointer-events: none;
|
|
73
80
|
}
|
|
81
|
+
.c-vtable-gantt-wrapper .gantt-container[data-v-1fc4d705] {
|
|
82
|
+
/* 防止拖动时底部区域的重绘闪烁 */
|
|
83
|
+
}
|
|
74
84
|
.c-vtable-gantt-wrapper .gantt-container[data-v-1fc4d705] .vtable-gantt-chart-container {
|
|
75
85
|
position: relative;
|
|
76
86
|
overflow: hidden;
|
|
@@ -85,5 +95,3 @@
|
|
|
85
95
|
background: transparent;
|
|
86
96
|
pointer-events: none;
|
|
87
97
|
}
|
|
88
|
-
|
|
89
|
-
/*# sourceMappingURL=C_VtableGantt-CZlJgvpC.css.map*/
|
package/dist/C_VtableGantt.d.cts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { a as presetConfigs, i as GanttTask, n as GanttOptions, r as GanttPreset, t as _default } from "./
|
|
1
|
+
import { a as presetConfigs, i as GanttTask, n as GanttOptions, r as GanttPreset, t as _default } from "./index24.vue.cjs";
|
|
2
2
|
export { _default as C_VtableGantt, type GanttOptions, type GanttPreset, type GanttTask, presetConfigs as ganttPresetConfigs };
|
package/dist/C_VtableGantt.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { a as presetConfigs, i as GanttTask, n as GanttOptions, r as GanttPreset, t as _default } from "./
|
|
1
|
+
import { a as presetConfigs, i as GanttTask, n as GanttOptions, r as GanttPreset, t as _default } from "./index24.vue.js";
|
|
2
2
|
export { _default as C_VtableGantt, type GanttOptions, type GanttPreset, type GanttTask, presetConfigs as ganttPresetConfigs };
|
package/dist/C_VtableGantt.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{n as e,t}from"./C_VtableGantt2.js";export{t as C_VtableGantt,e as ganttPresetConfigs};
|
|
1
|
+
import"./C_Icon2.js";import{n as e,t}from"./C_VtableGantt2.js";export{t as C_VtableGantt,e as ganttPresetConfigs};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
require(`./chunk.cjs`);const e=require(`./C_Icon2.cjs`),t=require(`./export-helper.cjs`);let n=require(`vue`),r=require(`naive-ui`);const i={headerStyle:{borderColor:`rgba(128, 128, 128, 0.2)`,borderLineWidth:1,fontSize:14,fontWeight:`bold`},bodyStyle:{borderColor:`rgba(128, 128, 128, 0.2)`,borderLineWidth:[1,0,1,0],fontSize:13}},a={basic:{overscrollBehavior:`none`,headerRowHeight:40,rowHeight:40,taskListTable:{columns:[{field:`title`,title:`任务名称`,width:220,tree:!0},{field:`start`,title:`开始时间`,width:120},{field:`end`,title:`结束时间`,width:120},{field:`progress`,title:`进度`,width:80}],tableWidth:420,minTableWidth:300,theme:i},frame:{outerFrameStyle:{borderLineWidth:1,borderColor:`#e1e4e8`,cornerRadius:6},verticalSplitLineMoveable:!0,verticalSplitLine:{lineColor:`#e1e4e8`,lineWidth:2}},grid:{verticalLine:{lineWidth:1,lineColor:`rgba(128, 128, 128, 0.2)`},horizontalLine:{lineWidth:1,lineColor:`rgba(128, 128, 128, 0.2)`}},taskBar:{startDateField:`start`,endDateField:`end`,progressField:`progress`,moveable:!0,resizable:!0,labelText:`{title}`,labelTextStyle:{fontSize:12,textAlign:`left`},barStyle:{width:18,barColor:`#1890ff`,completedBarColor:`#52c41a`,cornerRadius:4,borderLineWidth:0},milestoneStyle:{borderColor:`#fa8c16`,borderLineWidth:1,fillColor:`#ffd666`,width:12}},timelineHeader:{colWidth:60,horizontalLine:{lineWidth:1,lineColor:`rgba(128, 128, 128, 0.2)`},verticalLine:{lineWidth:1,lineColor:`rgba(128, 128, 128, 0.2)`},scales:[{unit:`week`,step:1,format:e=>`第${e.dateIndex}周`,style:{fontSize:12,fontWeight:`bold`}},{unit:`day`,step:1,format:e=>`${e.dateIndex}`,style:{fontSize:11}}]},scrollStyle:{scrollRailColor:`rgba(246,246,246,0.5)`,visible:`scrolling`,width:6,scrollSliderCornerRadius:2,scrollSliderColor:`#1890ff`}},project:{overscrollBehavior:`none`,headerRowHeight:40,rowHeight:40,taskListTable:{columns:[{field:`title`,title:`任务名称`,width:200,tree:!0,editor:`input`},{field:`start`,title:`开始时间`,width:120,editor:`date-input`},{field:`end`,title:`结束时间`,width:120,editor:`date-input`},{field:`priority`,title:`优先级`,width:80,editor:`input`},{field:`progress`,title:`进度%`,width:80,editor:`input`}],tableWidth:480,minTableWidth:350,maxTableWidth:800,theme:i,hierarchyExpandLevel:2},frame:{outerFrameStyle:{borderLineWidth:2,borderColor:`#e1e4e8`,cornerRadius:8},verticalSplitLineMoveable:!0,verticalSplitLine:{lineColor:`#e1e4e8`,lineWidth:3}},grid:{verticalLine:{lineWidth:1,lineColor:`rgba(128, 128, 128, 0.2)`},horizontalLine:{lineWidth:1,lineColor:`rgba(128, 128, 128, 0.2)`}},taskBar:{startDateField:`start`,endDateField:`end`,progressField:`progress`,moveable:!0,resizable:!0,hoverBarStyle:{barOverlayColor:`rgba(24, 144, 255, 0.3)`},labelText:`{title} {progress}%`,labelTextStyle:{fontSize:12,textAlign:`left`,textOverflow:`ellipsis`},barStyle:{width:20,barColor:`#1890ff`,completedBarColor:`#52c41a`,cornerRadius:6,borderLineWidth:0}},timelineHeader:{colWidth:60,horizontalLine:{lineWidth:1,lineColor:`rgba(128, 128, 128, 0.2)`},verticalLine:{lineWidth:1,lineColor:`rgba(128, 128, 128, 0.2)`},scales:[{unit:`week`,step:1,startOfWeek:`monday`,format:e=>`第${e.dateIndex}周`,style:{fontSize:13,fontWeight:`bold`,textAlign:`center`}},{unit:`day`,step:1,format:e=>`${e.dateIndex}`,style:{fontSize:11,textAlign:`center`}}]},rowSeriesNumber:{title:`序号`,dragOrder:!0,headerStyle:{borderColor:`rgba(128, 128, 128, 0.2)`},style:{borderColor:`rgba(128, 128, 128, 0.2)`}},scrollStyle:{scrollRailColor:`rgba(246,246,246,0.5)`,visible:`scrolling`,width:6,scrollSliderCornerRadius:2,scrollSliderColor:`#1890ff`}},timeline:{overscrollBehavior:`none`,headerRowHeight:45,rowHeight:40,taskListTable:{columns:[{field:`title`,title:`事件名称`,width:250,tree:!0},{field:`start`,title:`时间`,width:150}],tableWidth:400,minTableWidth:300,theme:{headerStyle:{...i.headerStyle},bodyStyle:i.bodyStyle}},frame:{outerFrameStyle:{borderLineWidth:1,borderColor:`rgba(128, 128, 128, 0.3)`,cornerRadius:4},verticalSplitLineMoveable:!0},grid:{verticalLine:{lineWidth:1,lineColor:`rgba(128, 128, 128, 0.2)`},horizontalLine:{lineWidth:1,lineColor:`rgba(128, 128, 128, 0.2)`}},taskBar:{startDateField:`start`,endDateField:`end`,progressField:`progress`,moveable:!0,resizable:!0,labelText:`{title}`,labelTextStyle:{fontSize:12,textAlign:`left`},barStyle:{width:22,barColor:`#722ed1`,completedBarColor:`#b37feb`,cornerRadius:8,borderLineWidth:0}},timelineHeader:{colWidth:60,scales:[{unit:`month`,step:1,format:e=>`${e.dateIndex}月`,style:{fontSize:13,fontWeight:`bold`}},{unit:`day`,step:1,format:e=>`${e.dateIndex}`,style:{fontSize:11}}]},scrollStyle:{scrollRailColor:`rgba(246,246,246,0.5)`,visible:`scrolling`,width:6,scrollSliderCornerRadius:2,scrollSliderColor:`#1890ff`}},milestone:{overscrollBehavior:`none`,headerRowHeight:40,rowHeight:38,taskListTable:{columns:[{field:`title`,title:`里程碑`,width:200,tree:!0},{field:`start`,title:`目标日期`,width:120},{field:`priority`,title:`重要性`,width:100}],tableWidth:400,minTableWidth:300,theme:{headerStyle:{...i.headerStyle,borderColor:`#ffa940`},bodyStyle:{...i.bodyStyle,borderColor:`#ffa940`}}},frame:{outerFrameStyle:{borderLineWidth:2,borderColor:`#ffa940`,cornerRadius:6},verticalSplitLineMoveable:!0},grid:{verticalLine:{lineWidth:1,lineColor:`rgba(255, 168, 64, 0.3)`},horizontalLine:{lineWidth:1,lineColor:`rgba(255, 168, 64, 0.3)`}},taskBar:{startDateField:`start`,endDateField:`start`,labelText:`{title}`,labelTextStyle:{fontSize:12,fontWeight:`bold`},barStyle:{width:0,barColor:`transparent`},milestoneStyle:{borderColor:`#fa8c16`,borderLineWidth:2,fillColor:`#ffd666`,width:16}},timelineHeader:{colWidth:80,scales:[{unit:`month`,step:1,format:e=>`${e.dateIndex}月`,style:{fontSize:13,fontWeight:`bold`}},{unit:`week`,step:1,format:e=>`第${e.dateIndex}周`,style:{fontSize:11}}]},scrollStyle:{scrollRailColor:`rgba(246,246,246,0.5)`,visible:`scrolling`,width:6,scrollSliderCornerRadius:2,scrollSliderColor:`#1890ff`}},official:{overscrollBehavior:`none`,headerRowHeight:40,rowHeight:40,taskListTable:{columns:[{field:`title`,title:`title`,width:180,sort:!0,tree:!0,editor:`input`},{field:`start`,title:`start`,width:120,sort:!0,editor:`date-input`},{field:`end`,title:`end`,width:120,sort:!0,editor:`date-input`},{field:`priority`,title:`priority`,width:80,sort:!0,editor:`input`},{field:`progress`,title:`progress`,width:80,sort:!0,editor:`input`}],tableWidth:460,minTableWidth:350,maxTableWidth:800,theme:{headerStyle:{...i.headerStyle,fontSize:18,color:`red`},bodyStyle:{...i.bodyStyle,fontSize:16,color:`#4D4D4D`}},hierarchyExpandLevel:2},frame:{outerFrameStyle:{borderLineWidth:2,borderColor:`#e1e4e8`,cornerRadius:8},verticalSplitLineMoveable:!0,verticalSplitLine:{lineColor:`#e1e4e8`,lineWidth:3},horizontalSplitLine:{lineColor:`#e1e4e8`,lineWidth:3}},grid:{verticalLine:{lineWidth:1,lineColor:`rgba(128, 128, 128, 0.2)`},horizontalLine:{lineWidth:1,lineColor:`rgba(128, 128, 128, 0.2)`}},taskBar:{startDateField:`start`,endDateField:`end`,progressField:`progress`,moveable:!0,resizable:!0,hoverBarStyle:{barOverlayColor:`rgba(99, 144, 0, 0.4)`},labelText:`{title} {progress}%`,labelTextStyle:{fontSize:16,textAlign:`left`,textOverflow:`ellipsis`},barStyle:{width:20,barColor:`#ee8800`,completedBarColor:`#91e8e0`,cornerRadius:8,borderLineWidth:1,borderColor:`black`},milestoneStyle:{borderColor:`red`,borderLineWidth:1,fillColor:`green`,width:15}},timelineHeader:{backgroundColor:`#EEF1F5`,colWidth:60,horizontalLine:{lineWidth:1,lineColor:`#e1e4e8`},verticalLine:{lineWidth:1,lineColor:`#e1e4e8`},scales:[{unit:`week`,step:1,startOfWeek:`sunday`,format:e=>`Week ${e.dateIndex}`,style:{fontSize:20,fontWeight:`bold`,color:`white`,strokeColor:`black`,textAlign:`right`,textBaseline:`bottom`,textStick:!0}},{unit:`day`,step:1,format:e=>e.dateIndex.toString(),style:{fontSize:20,fontWeight:`bold`,color:`white`,strokeColor:`black`,textAlign:`right`,textBaseline:`bottom`}}]},markLine:[{date:`2024-07-28`,style:{lineWidth:1,lineColor:`blue`,lineDash:[8,4]}},{date:`2024-08-17`,style:{lineWidth:2,lineColor:`red`,lineDash:[8,4]}}],rowSeriesNumber:{title:`行号`,dragOrder:!0,headerStyle:{borderColor:`rgba(128, 128, 128, 0.2)`},style:{borderColor:`rgba(128, 128, 128, 0.2)`}},scrollStyle:{scrollRailColor:`rgba(246,246,246,0.5)`,visible:`scrolling`,width:6,scrollSliderCornerRadius:2,scrollSliderColor:`#1890ff`}}},o={class:`c-vtable-gantt-wrapper`},s={key:0,class:`gantt-toolbar`},c={class:`toolbar-left`},l={class:`gantt-title`},u={class:`toolbar-right`},d=(0,n.defineComponent)({name:`C_VtableGantt`,__name:`index`,props:{data:{default:()=>[]},options:{default:()=>({})},preset:{default:`basic`},height:{default:`600px`},title:{default:``},showToolbar:{type:Boolean,default:!0},showFullscreenButton:{type:Boolean,default:!0},theme:{default:`light`}},emits:[`ganttCreated`,`taskClick`,`taskChange`],setup(t,{expose:i,emit:d}){let f=t,p=d,m=(0,n.ref)(),h=(0,n.ref)(),g=(0,n.ref)(!1),_=(0,n.computed)(()=>typeof f.height==`number`?`${f.height}px`:f.height),v=(e,t,n=new WeakMap)=>y(e)?y(t)?n.has(t)?n.get(t):x(e,t,n):e:t,y=e=>typeof e==`object`&&!!e,b=e=>e instanceof Date||e instanceof RegExp,x=(e,t,n)=>{let r=Array.isArray(e)?[...e]:{...e};n.set(t,r);for(let i in t){if(!t.hasOwnProperty(i))continue;let a=t[i];r[i]=y(a)&&!Array.isArray(a)&&!b(a)?v(e[i]||{},a,n):a}return r},S=e=>e.map(e=>({...e,title:e.title||`任务${e.id}`,children:e.children?S(e.children):void 0})),C=e=>({underlayBackgroundColor:e?`#1e1e1e`:`#ffffff`,timelineHeaderBg:e?`#2d2d2d`:`#EEF1F5`,gridBg:e?`#1e1e1e`:`#ffffff`,lineColor:e?`rgba(255, 255, 255, 0.1)`:`rgba(128, 128, 128, 0.2)`,textColor:e?`#ffffff`:`#000000`}),w=(e,t)=>({...e,backgroundColor:t.timelineHeaderBg,horizontalLine:{...e?.horizontalLine,lineColor:t.lineColor},verticalLine:{...e?.verticalLine,lineColor:t.lineColor},scales:e?.scales?.map(e=>({...e,style:{...e.style,color:t.textColor}}))}),T=(e,t)=>({...e,backgroundColor:t.gridBg,horizontalLine:{...e?.horizontalLine,lineColor:t.lineColor},verticalLine:{...e?.verticalLine,lineColor:t.lineColor}}),E=(e,t,n,r)=>({...e,records:t,underlayBackgroundColor:r.underlayBackgroundColor,taskListTable:{...e.taskListTable,theme:n},timelineHeader:w(e.timelineHeader,r),grid:T(e.grid,r)}),D=e=>{e.on(`click_cell`,e=>{let{record:t,event:n}=e||{};t&&p(`taskClick`,t,n)}),e.on(`change_data`,e=>{let{record:t,changes:n}=e||{};t&&n&&p(`taskChange`,t,n)})},O=async()=>{if(m.value)try{let{Gantt:e}=await import(`@visactor/vtable-gantt`),{themes:t}=await import(`@visactor/vtable`),n=f.theme===`dark`,r=v(a[f.preset]||a.basic,f.options),i=S(f.data||[]);h.value&&h.value.release();let o=E(r,i,n?t.DARK:t.DEFAULT,C(n));h.value=new e(m.value,o),D(h.value),p(`ganttCreated`,h.value)}catch(e){console.error(`甘特图初始化失败:`,e)}},k=async()=>{if(m.value)try{document.fullscreenElement?(await document.exitFullscreen(),g.value=!1):(await m.value.requestFullscreen(),g.value=!0),setTimeout(()=>h.value?.resize?.(),100)}catch(e){console.warn(`全屏切换失败:`,e),g.value=!g.value,(0,n.nextTick)(()=>h.value?.resize?.())}},A=()=>{g.value=!!document.fullscreenElement,(0,n.nextTick)(()=>h.value?.resize?.())},j=e=>{if(h.value&&e)try{h.value.setRecords(S(e))}catch(e){console.warn(`更新数据失败:`,e)}},M=e=>{if(h.value&&e)try{h.value.updateOption(e)}catch(e){console.warn(`更新配置失败:`,e)}},N=()=>{if(h.value)try{h.value.release()}catch(e){console.warn(`销毁甘特图失败:`,e)}finally{h.value=void 0}};return(0,n.watch)(()=>f.data,e=>{e&&h.value&&j(e)},{deep:!0}),(0,n.watch)(()=>[f.options,f.preset],()=>(0,n.nextTick)(()=>O()),{deep:!0}),(0,n.watch)(()=>f.theme,()=>(0,n.nextTick)(()=>O())),(0,n.onMounted)(()=>{document.addEventListener(`fullscreenchange`,A),(0,n.nextTick)(()=>setTimeout(()=>O(),100))}),(0,n.onUnmounted)(()=>{document.removeEventListener(`fullscreenchange`,A),N()}),i({ganttInstance:h,updateData:j,updateOptions:M,toggleFullscreen:k}),(i,a)=>((0,n.openBlock)(),(0,n.createElementBlock)(`div`,o,[t.showToolbar?((0,n.openBlock)(),(0,n.createElementBlock)(`div`,s,[(0,n.createElementVNode)(`div`,c,[(0,n.createElementVNode)(`span`,l,(0,n.toDisplayString)(t.title||`甘特图`),1)]),(0,n.createElementVNode)(`div`,u,[t.showFullscreenButton?((0,n.openBlock)(),(0,n.createBlock)((0,n.unref)(r.NButton),{key:0,size:`small`,onClick:k},{icon:(0,n.withCtx)(()=>[(0,n.createVNode)(e.t,{name:g.value?`carbon:minimize`:`carbon:maximize`,size:16,color:`currentColor`},null,8,[`name`])]),default:(0,n.withCtx)(()=>[(0,n.createTextVNode)(` `+(0,n.toDisplayString)(g.value?`退出全屏`:`全屏`),1)]),_:1})):(0,n.createCommentVNode)(`v-if`,!0)])])):(0,n.createCommentVNode)(`v-if`,!0),(0,n.createElementVNode)(`div`,{ref_key:`ganttContainerRef`,ref:m,class:`gantt-container`,style:(0,n.normalizeStyle)({height:_.value})},null,4)]))}});var f=t.t(d,[[`__scopeId`,`data-v-1fc4d705`]]);Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return a}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return f}});
|
package/dist/C_VtableGantt2.js
CHANGED
|
@@ -1,2 +1 @@
|
|
|
1
|
-
import{t as e}from"./C_Icon2.js";import{t}from"./export-helper.js";import{NButton as n}from"naive-ui";import{computed as r,createBlock as i,createCommentVNode as a,createElementBlock as o,createElementVNode as s,createTextVNode as c,createVNode as l,defineComponent as u,nextTick as d,normalizeStyle as f,onMounted as p,onUnmounted as m,openBlock as h,ref as g,toDisplayString as _,unref as v,watch as y,withCtx as b}from"vue";const x={headerStyle:{borderColor:`rgba(128, 128, 128, 0.2)`,borderLineWidth:1,fontSize:14,fontWeight:`bold`},bodyStyle:{borderColor:`rgba(128, 128, 128, 0.2)`,borderLineWidth:[1,0,1,0],fontSize:13}},S={basic:{overscrollBehavior:`none`,headerRowHeight:40,rowHeight:40,taskListTable:{columns:[{field:`title`,title:`任务名称`,width:220,tree:!0},{field:`start`,title:`开始时间`,width:120},{field:`end`,title:`结束时间`,width:120},{field:`progress`,title:`进度`,width:80}],tableWidth:420,minTableWidth:300,theme:x},frame:{outerFrameStyle:{borderLineWidth:1,borderColor:`#e1e4e8`,cornerRadius:6},verticalSplitLineMoveable:!0,verticalSplitLine:{lineColor:`#e1e4e8`,lineWidth:2}},grid:{verticalLine:{lineWidth:1,lineColor:`rgba(128, 128, 128, 0.2)`},horizontalLine:{lineWidth:1,lineColor:`rgba(128, 128, 128, 0.2)`}},taskBar:{startDateField:`start`,endDateField:`end`,progressField:`progress`,moveable:!0,resizable:!0,labelText:`{title}`,labelTextStyle:{fontSize:12,textAlign:`left`},barStyle:{width:18,barColor:`#1890ff`,completedBarColor:`#52c41a`,cornerRadius:4,borderLineWidth:0},milestoneStyle:{borderColor:`#fa8c16`,borderLineWidth:1,fillColor:`#ffd666`,width:12}},timelineHeader:{colWidth:60,horizontalLine:{lineWidth:1,lineColor:`rgba(128, 128, 128, 0.2)`},verticalLine:{lineWidth:1,lineColor:`rgba(128, 128, 128, 0.2)`},scales:[{unit:`week`,step:1,format:e=>`第${e.dateIndex}周`,style:{fontSize:12,fontWeight:`bold`}},{unit:`day`,step:1,format:e=>`${e.dateIndex}`,style:{fontSize:11}}]},scrollStyle:{scrollRailColor:`rgba(246,246,246,0.5)`,visible:`scrolling`,width:6,scrollSliderCornerRadius:2,scrollSliderColor:`#1890ff`}},project:{overscrollBehavior:`none`,headerRowHeight:40,rowHeight:40,taskListTable:{columns:[{field:`title`,title:`任务名称`,width:200,tree:!0,editor:`input`},{field:`start`,title:`开始时间`,width:120,editor:`date-input`},{field:`end`,title:`结束时间`,width:120,editor:`date-input`},{field:`priority`,title:`优先级`,width:80,editor:`input`},{field:`progress`,title:`进度%`,width:80,editor:`input`}],tableWidth:480,minTableWidth:350,maxTableWidth:800,theme:x,hierarchyExpandLevel:2},frame:{outerFrameStyle:{borderLineWidth:2,borderColor:`#e1e4e8`,cornerRadius:8},verticalSplitLineMoveable:!0,verticalSplitLine:{lineColor:`#e1e4e8`,lineWidth:3}},grid:{verticalLine:{lineWidth:1,lineColor:`rgba(128, 128, 128, 0.2)`},horizontalLine:{lineWidth:1,lineColor:`rgba(128, 128, 128, 0.2)`}},taskBar:{startDateField:`start`,endDateField:`end`,progressField:`progress`,moveable:!0,resizable:!0,hoverBarStyle:{barOverlayColor:`rgba(24, 144, 255, 0.3)`},labelText:`{title} {progress}%`,labelTextStyle:{fontSize:12,textAlign:`left`,textOverflow:`ellipsis`},barStyle:{width:20,barColor:`#1890ff`,completedBarColor:`#52c41a`,cornerRadius:6,borderLineWidth:0}},timelineHeader:{colWidth:60,horizontalLine:{lineWidth:1,lineColor:`rgba(128, 128, 128, 0.2)`},verticalLine:{lineWidth:1,lineColor:`rgba(128, 128, 128, 0.2)`},scales:[{unit:`week`,step:1,startOfWeek:`monday`,format:e=>`第${e.dateIndex}周`,style:{fontSize:13,fontWeight:`bold`,textAlign:`center`}},{unit:`day`,step:1,format:e=>`${e.dateIndex}`,style:{fontSize:11,textAlign:`center`}}]},rowSeriesNumber:{title:`序号`,dragOrder:!0,headerStyle:{borderColor:`rgba(128, 128, 128, 0.2)`},style:{borderColor:`rgba(128, 128, 128, 0.2)`}},scrollStyle:{scrollRailColor:`rgba(246,246,246,0.5)`,visible:`scrolling`,width:6,scrollSliderCornerRadius:2,scrollSliderColor:`#1890ff`}},timeline:{overscrollBehavior:`none`,headerRowHeight:45,rowHeight:40,taskListTable:{columns:[{field:`title`,title:`事件名称`,width:250,tree:!0},{field:`start`,title:`时间`,width:150}],tableWidth:400,minTableWidth:300,theme:{headerStyle:{...x.headerStyle},bodyStyle:x.bodyStyle}},frame:{outerFrameStyle:{borderLineWidth:1,borderColor:`rgba(128, 128, 128, 0.3)`,cornerRadius:4},verticalSplitLineMoveable:!0},grid:{verticalLine:{lineWidth:1,lineColor:`rgba(128, 128, 128, 0.2)`},horizontalLine:{lineWidth:1,lineColor:`rgba(128, 128, 128, 0.2)`}},taskBar:{startDateField:`start`,endDateField:`end`,progressField:`progress`,moveable:!0,resizable:!0,labelText:`{title}`,labelTextStyle:{fontSize:12,textAlign:`left`},barStyle:{width:22,barColor:`#722ed1`,completedBarColor:`#b37feb`,cornerRadius:8,borderLineWidth:0}},timelineHeader:{colWidth:60,scales:[{unit:`month`,step:1,format:e=>`${e.dateIndex}月`,style:{fontSize:13,fontWeight:`bold`}},{unit:`day`,step:1,format:e=>`${e.dateIndex}`,style:{fontSize:11}}]},scrollStyle:{scrollRailColor:`rgba(246,246,246,0.5)`,visible:`scrolling`,width:6,scrollSliderCornerRadius:2,scrollSliderColor:`#1890ff`}},milestone:{overscrollBehavior:`none`,headerRowHeight:40,rowHeight:38,taskListTable:{columns:[{field:`title`,title:`里程碑`,width:200,tree:!0},{field:`start`,title:`目标日期`,width:120},{field:`priority`,title:`重要性`,width:100}],tableWidth:400,minTableWidth:300,theme:{headerStyle:{...x.headerStyle,borderColor:`#ffa940`},bodyStyle:{...x.bodyStyle,borderColor:`#ffa940`}}},frame:{outerFrameStyle:{borderLineWidth:2,borderColor:`#ffa940`,cornerRadius:6},verticalSplitLineMoveable:!0},grid:{verticalLine:{lineWidth:1,lineColor:`rgba(255, 168, 64, 0.3)`},horizontalLine:{lineWidth:1,lineColor:`rgba(255, 168, 64, 0.3)`}},taskBar:{startDateField:`start`,endDateField:`start`,labelText:`{title}`,labelTextStyle:{fontSize:12,fontWeight:`bold`},barStyle:{width:0,barColor:`transparent`},milestoneStyle:{borderColor:`#fa8c16`,borderLineWidth:2,fillColor:`#ffd666`,width:16}},timelineHeader:{colWidth:80,scales:[{unit:`month`,step:1,format:e=>`${e.dateIndex}月`,style:{fontSize:13,fontWeight:`bold`}},{unit:`week`,step:1,format:e=>`第${e.dateIndex}周`,style:{fontSize:11}}]},scrollStyle:{scrollRailColor:`rgba(246,246,246,0.5)`,visible:`scrolling`,width:6,scrollSliderCornerRadius:2,scrollSliderColor:`#1890ff`}},official:{overscrollBehavior:`none`,headerRowHeight:40,rowHeight:40,taskListTable:{columns:[{field:`title`,title:`title`,width:180,sort:!0,tree:!0,editor:`input`},{field:`start`,title:`start`,width:120,sort:!0,editor:`date-input`},{field:`end`,title:`end`,width:120,sort:!0,editor:`date-input`},{field:`priority`,title:`priority`,width:80,sort:!0,editor:`input`},{field:`progress`,title:`progress`,width:80,sort:!0,editor:`input`}],tableWidth:460,minTableWidth:350,maxTableWidth:800,theme:{headerStyle:{...x.headerStyle,fontSize:18,color:`red`},bodyStyle:{...x.bodyStyle,fontSize:16,color:`#4D4D4D`}},hierarchyExpandLevel:2},frame:{outerFrameStyle:{borderLineWidth:2,borderColor:`#e1e4e8`,cornerRadius:8},verticalSplitLineMoveable:!0,verticalSplitLine:{lineColor:`#e1e4e8`,lineWidth:3},horizontalSplitLine:{lineColor:`#e1e4e8`,lineWidth:3}},grid:{verticalLine:{lineWidth:1,lineColor:`rgba(128, 128, 128, 0.2)`},horizontalLine:{lineWidth:1,lineColor:`rgba(128, 128, 128, 0.2)`}},taskBar:{startDateField:`start`,endDateField:`end`,progressField:`progress`,moveable:!0,resizable:!0,hoverBarStyle:{barOverlayColor:`rgba(99, 144, 0, 0.4)`},labelText:`{title} {progress}%`,labelTextStyle:{fontSize:16,textAlign:`left`,textOverflow:`ellipsis`},barStyle:{width:20,barColor:`#ee8800`,completedBarColor:`#91e8e0`,cornerRadius:8,borderLineWidth:1,borderColor:`black`},milestoneStyle:{borderColor:`red`,borderLineWidth:1,fillColor:`green`,width:15}},timelineHeader:{backgroundColor:`#EEF1F5`,colWidth:60,horizontalLine:{lineWidth:1,lineColor:`#e1e4e8`},verticalLine:{lineWidth:1,lineColor:`#e1e4e8`},scales:[{unit:`week`,step:1,startOfWeek:`sunday`,format:e=>`Week ${e.dateIndex}`,style:{fontSize:20,fontWeight:`bold`,color:`white`,strokeColor:`black`,textAlign:`right`,textBaseline:`bottom`,textStick:!0}},{unit:`day`,step:1,format:e=>e.dateIndex.toString(),style:{fontSize:20,fontWeight:`bold`,color:`white`,strokeColor:`black`,textAlign:`right`,textBaseline:`bottom`}}]},markLine:[{date:`2024-07-28`,style:{lineWidth:1,lineColor:`blue`,lineDash:[8,4]}},{date:`2024-08-17`,style:{lineWidth:2,lineColor:`red`,lineDash:[8,4]}}],rowSeriesNumber:{title:`行号`,dragOrder:!0,headerStyle:{borderColor:`rgba(128, 128, 128, 0.2)`},style:{borderColor:`rgba(128, 128, 128, 0.2)`}},scrollStyle:{scrollRailColor:`rgba(246,246,246,0.5)`,visible:`scrolling`,width:6,scrollSliderCornerRadius:2,scrollSliderColor:`#1890ff`}}},C={class:`c-vtable-gantt-wrapper`},w={key:0,class:`gantt-toolbar`},T={class:`toolbar-left`},E={class:`gantt-title`},D={class:`toolbar-right`};var O=t(u({name:`C_VtableGantt`,__name:`index`,props:{data:{default:()=>[]},options:{default:()=>({})},preset:{default:`basic`},height:{default:`600px`},title:{default:``},showToolbar:{type:Boolean,default:!0},showFullscreenButton:{type:Boolean,default:!0},theme:{default:`light`}},emits:[`ganttCreated`,`taskClick`,`taskChange`],setup(t,{expose:u,emit:x}){let O=t,k=x,A=g(),j=g(),M=g(!1),N=r(()=>typeof O.height==`number`?`${O.height}px`:O.height),P=(e,t,n=new WeakMap)=>F(e)?F(t)?n.has(t)?n.get(t):L(e,t,n):e:t,F=e=>typeof e==`object`&&!!e,I=e=>e instanceof Date||e instanceof RegExp,L=(e,t,n)=>{let r=Array.isArray(e)?[...e]:{...e};n.set(t,r);for(let i in t){if(!t.hasOwnProperty(i))continue;let a=t[i];r[i]=F(a)&&!Array.isArray(a)&&!I(a)?P(e[i]||{},a,n):a}return r},R=e=>e.map(e=>({...e,title:e.title||`任务${e.id}`,children:e.children?R(e.children):void 0})),z=e=>({underlayBackgroundColor:e?`#1e1e1e`:`#ffffff`,timelineHeaderBg:e?`#2d2d2d`:`#EEF1F5`,gridBg:e?`#1e1e1e`:`#ffffff`,lineColor:e?`rgba(255, 255, 255, 0.1)`:`rgba(128, 128, 128, 0.2)`,textColor:e?`#ffffff`:`#000000`}),B=(e,t)=>({...e,backgroundColor:t.timelineHeaderBg,horizontalLine:{...e?.horizontalLine,lineColor:t.lineColor},verticalLine:{...e?.verticalLine,lineColor:t.lineColor},scales:e?.scales?.map(e=>({...e,style:{...e.style,color:t.textColor}}))}),V=(e,t)=>({...e,backgroundColor:t.gridBg,horizontalLine:{...e?.horizontalLine,lineColor:t.lineColor},verticalLine:{...e?.verticalLine,lineColor:t.lineColor}}),H=(e,t,n,r)=>({...e,records:t,underlayBackgroundColor:r.underlayBackgroundColor,taskListTable:{...e.taskListTable,theme:n},timelineHeader:B(e.timelineHeader,r),grid:V(e.grid,r)}),U=e=>{e.on(`click_cell`,e=>{let{record:t,event:n}=e||{};t&&k(`taskClick`,t,n)}),e.on(`change_data`,e=>{let{record:t,changes:n}=e||{};t&&n&&k(`taskChange`,t,n)})},W=async()=>{if(A.value)try{let{Gantt:e}=await import(`@visactor/vtable-gantt`),{themes:t}=await import(`@visactor/vtable`),n=O.theme===`dark`,r=P(S[O.preset]||S.basic,O.options),i=R(O.data||[]);j.value&&j.value.release();let a=H(r,i,n?t.DARK:t.DEFAULT,z(n));j.value=new e(A.value,a),U(j.value),k(`ganttCreated`,j.value)}catch(e){console.error(`甘特图初始化失败:`,e)}},G=async()=>{if(A.value)try{document.fullscreenElement?(await document.exitFullscreen(),M.value=!1):(await A.value.requestFullscreen(),M.value=!0),setTimeout(()=>j.value?.resize?.(),100)}catch(e){console.warn(`全屏切换失败:`,e),M.value=!M.value,d(()=>j.value?.resize?.())}},K=()=>{M.value=!!document.fullscreenElement,d(()=>j.value?.resize?.())},q=e=>{if(j.value&&e)try{j.value.setRecords(R(e))}catch(e){console.warn(`更新数据失败:`,e)}},J=e=>{if(j.value&&e)try{j.value.updateOption(e)}catch(e){console.warn(`更新配置失败:`,e)}},Y=()=>{if(j.value)try{j.value.release()}catch(e){console.warn(`销毁甘特图失败:`,e)}finally{j.value=void 0}};return y(()=>O.data,e=>{e&&j.value&&q(e)},{deep:!0}),y(()=>[O.options,O.preset],()=>d(()=>W()),{deep:!0}),y(()=>O.theme,()=>d(()=>W())),p(()=>{document.addEventListener(`fullscreenchange`,K),d(()=>setTimeout(()=>W(),100))}),m(()=>{document.removeEventListener(`fullscreenchange`,K),Y()}),u({ganttInstance:j,updateData:q,updateOptions:J,toggleFullscreen:G}),(t,r)=>(h(),o(`div`,C,[t.showToolbar?(h(),o(`div`,w,[s(`div`,T,[s(`span`,E,_(t.title||`甘特图`),1)]),s(`div`,D,[t.showFullscreenButton?(h(),i(v(n),{key:0,size:`small`,onClick:G},{icon:b(()=>[l(e,{name:M.value?`carbon:minimize`:`carbon:maximize`,size:16,color:`currentColor`},null,8,[`name`])]),default:b(()=>[c(` `+_(M.value?`退出全屏`:`全屏`),1)]),_:1})):a(`v-if`,!0)])])):a(`v-if`,!0),s(`div`,{ref_key:`ganttContainerRef`,ref:A,class:`gantt-container`,style:f({height:N.value})},null,4)]))}}),[[`__scopeId`,`data-v-1fc4d705`]]);export{S as n,O as t};
|
|
2
|
-
//# sourceMappingURL=C_VtableGantt2.js.map
|
|
1
|
+
import{t as e}from"./C_Icon2.js";import{t}from"./export-helper.js";import{computed as n,createBlock as r,createCommentVNode as i,createElementBlock as a,createElementVNode as o,createTextVNode as s,createVNode as c,defineComponent as l,nextTick as u,normalizeStyle as d,onMounted as f,onUnmounted as p,openBlock as m,ref as h,toDisplayString as g,unref as _,watch as v,withCtx as y}from"vue";import{NButton as b}from"naive-ui";const x={headerStyle:{borderColor:`rgba(128, 128, 128, 0.2)`,borderLineWidth:1,fontSize:14,fontWeight:`bold`},bodyStyle:{borderColor:`rgba(128, 128, 128, 0.2)`,borderLineWidth:[1,0,1,0],fontSize:13}},S={basic:{overscrollBehavior:`none`,headerRowHeight:40,rowHeight:40,taskListTable:{columns:[{field:`title`,title:`任务名称`,width:220,tree:!0},{field:`start`,title:`开始时间`,width:120},{field:`end`,title:`结束时间`,width:120},{field:`progress`,title:`进度`,width:80}],tableWidth:420,minTableWidth:300,theme:x},frame:{outerFrameStyle:{borderLineWidth:1,borderColor:`#e1e4e8`,cornerRadius:6},verticalSplitLineMoveable:!0,verticalSplitLine:{lineColor:`#e1e4e8`,lineWidth:2}},grid:{verticalLine:{lineWidth:1,lineColor:`rgba(128, 128, 128, 0.2)`},horizontalLine:{lineWidth:1,lineColor:`rgba(128, 128, 128, 0.2)`}},taskBar:{startDateField:`start`,endDateField:`end`,progressField:`progress`,moveable:!0,resizable:!0,labelText:`{title}`,labelTextStyle:{fontSize:12,textAlign:`left`},barStyle:{width:18,barColor:`#1890ff`,completedBarColor:`#52c41a`,cornerRadius:4,borderLineWidth:0},milestoneStyle:{borderColor:`#fa8c16`,borderLineWidth:1,fillColor:`#ffd666`,width:12}},timelineHeader:{colWidth:60,horizontalLine:{lineWidth:1,lineColor:`rgba(128, 128, 128, 0.2)`},verticalLine:{lineWidth:1,lineColor:`rgba(128, 128, 128, 0.2)`},scales:[{unit:`week`,step:1,format:e=>`第${e.dateIndex}周`,style:{fontSize:12,fontWeight:`bold`}},{unit:`day`,step:1,format:e=>`${e.dateIndex}`,style:{fontSize:11}}]},scrollStyle:{scrollRailColor:`rgba(246,246,246,0.5)`,visible:`scrolling`,width:6,scrollSliderCornerRadius:2,scrollSliderColor:`#1890ff`}},project:{overscrollBehavior:`none`,headerRowHeight:40,rowHeight:40,taskListTable:{columns:[{field:`title`,title:`任务名称`,width:200,tree:!0,editor:`input`},{field:`start`,title:`开始时间`,width:120,editor:`date-input`},{field:`end`,title:`结束时间`,width:120,editor:`date-input`},{field:`priority`,title:`优先级`,width:80,editor:`input`},{field:`progress`,title:`进度%`,width:80,editor:`input`}],tableWidth:480,minTableWidth:350,maxTableWidth:800,theme:x,hierarchyExpandLevel:2},frame:{outerFrameStyle:{borderLineWidth:2,borderColor:`#e1e4e8`,cornerRadius:8},verticalSplitLineMoveable:!0,verticalSplitLine:{lineColor:`#e1e4e8`,lineWidth:3}},grid:{verticalLine:{lineWidth:1,lineColor:`rgba(128, 128, 128, 0.2)`},horizontalLine:{lineWidth:1,lineColor:`rgba(128, 128, 128, 0.2)`}},taskBar:{startDateField:`start`,endDateField:`end`,progressField:`progress`,moveable:!0,resizable:!0,hoverBarStyle:{barOverlayColor:`rgba(24, 144, 255, 0.3)`},labelText:`{title} {progress}%`,labelTextStyle:{fontSize:12,textAlign:`left`,textOverflow:`ellipsis`},barStyle:{width:20,barColor:`#1890ff`,completedBarColor:`#52c41a`,cornerRadius:6,borderLineWidth:0}},timelineHeader:{colWidth:60,horizontalLine:{lineWidth:1,lineColor:`rgba(128, 128, 128, 0.2)`},verticalLine:{lineWidth:1,lineColor:`rgba(128, 128, 128, 0.2)`},scales:[{unit:`week`,step:1,startOfWeek:`monday`,format:e=>`第${e.dateIndex}周`,style:{fontSize:13,fontWeight:`bold`,textAlign:`center`}},{unit:`day`,step:1,format:e=>`${e.dateIndex}`,style:{fontSize:11,textAlign:`center`}}]},rowSeriesNumber:{title:`序号`,dragOrder:!0,headerStyle:{borderColor:`rgba(128, 128, 128, 0.2)`},style:{borderColor:`rgba(128, 128, 128, 0.2)`}},scrollStyle:{scrollRailColor:`rgba(246,246,246,0.5)`,visible:`scrolling`,width:6,scrollSliderCornerRadius:2,scrollSliderColor:`#1890ff`}},timeline:{overscrollBehavior:`none`,headerRowHeight:45,rowHeight:40,taskListTable:{columns:[{field:`title`,title:`事件名称`,width:250,tree:!0},{field:`start`,title:`时间`,width:150}],tableWidth:400,minTableWidth:300,theme:{headerStyle:{...x.headerStyle},bodyStyle:x.bodyStyle}},frame:{outerFrameStyle:{borderLineWidth:1,borderColor:`rgba(128, 128, 128, 0.3)`,cornerRadius:4},verticalSplitLineMoveable:!0},grid:{verticalLine:{lineWidth:1,lineColor:`rgba(128, 128, 128, 0.2)`},horizontalLine:{lineWidth:1,lineColor:`rgba(128, 128, 128, 0.2)`}},taskBar:{startDateField:`start`,endDateField:`end`,progressField:`progress`,moveable:!0,resizable:!0,labelText:`{title}`,labelTextStyle:{fontSize:12,textAlign:`left`},barStyle:{width:22,barColor:`#722ed1`,completedBarColor:`#b37feb`,cornerRadius:8,borderLineWidth:0}},timelineHeader:{colWidth:60,scales:[{unit:`month`,step:1,format:e=>`${e.dateIndex}月`,style:{fontSize:13,fontWeight:`bold`}},{unit:`day`,step:1,format:e=>`${e.dateIndex}`,style:{fontSize:11}}]},scrollStyle:{scrollRailColor:`rgba(246,246,246,0.5)`,visible:`scrolling`,width:6,scrollSliderCornerRadius:2,scrollSliderColor:`#1890ff`}},milestone:{overscrollBehavior:`none`,headerRowHeight:40,rowHeight:38,taskListTable:{columns:[{field:`title`,title:`里程碑`,width:200,tree:!0},{field:`start`,title:`目标日期`,width:120},{field:`priority`,title:`重要性`,width:100}],tableWidth:400,minTableWidth:300,theme:{headerStyle:{...x.headerStyle,borderColor:`#ffa940`},bodyStyle:{...x.bodyStyle,borderColor:`#ffa940`}}},frame:{outerFrameStyle:{borderLineWidth:2,borderColor:`#ffa940`,cornerRadius:6},verticalSplitLineMoveable:!0},grid:{verticalLine:{lineWidth:1,lineColor:`rgba(255, 168, 64, 0.3)`},horizontalLine:{lineWidth:1,lineColor:`rgba(255, 168, 64, 0.3)`}},taskBar:{startDateField:`start`,endDateField:`start`,labelText:`{title}`,labelTextStyle:{fontSize:12,fontWeight:`bold`},barStyle:{width:0,barColor:`transparent`},milestoneStyle:{borderColor:`#fa8c16`,borderLineWidth:2,fillColor:`#ffd666`,width:16}},timelineHeader:{colWidth:80,scales:[{unit:`month`,step:1,format:e=>`${e.dateIndex}月`,style:{fontSize:13,fontWeight:`bold`}},{unit:`week`,step:1,format:e=>`第${e.dateIndex}周`,style:{fontSize:11}}]},scrollStyle:{scrollRailColor:`rgba(246,246,246,0.5)`,visible:`scrolling`,width:6,scrollSliderCornerRadius:2,scrollSliderColor:`#1890ff`}},official:{overscrollBehavior:`none`,headerRowHeight:40,rowHeight:40,taskListTable:{columns:[{field:`title`,title:`title`,width:180,sort:!0,tree:!0,editor:`input`},{field:`start`,title:`start`,width:120,sort:!0,editor:`date-input`},{field:`end`,title:`end`,width:120,sort:!0,editor:`date-input`},{field:`priority`,title:`priority`,width:80,sort:!0,editor:`input`},{field:`progress`,title:`progress`,width:80,sort:!0,editor:`input`}],tableWidth:460,minTableWidth:350,maxTableWidth:800,theme:{headerStyle:{...x.headerStyle,fontSize:18,color:`red`},bodyStyle:{...x.bodyStyle,fontSize:16,color:`#4D4D4D`}},hierarchyExpandLevel:2},frame:{outerFrameStyle:{borderLineWidth:2,borderColor:`#e1e4e8`,cornerRadius:8},verticalSplitLineMoveable:!0,verticalSplitLine:{lineColor:`#e1e4e8`,lineWidth:3},horizontalSplitLine:{lineColor:`#e1e4e8`,lineWidth:3}},grid:{verticalLine:{lineWidth:1,lineColor:`rgba(128, 128, 128, 0.2)`},horizontalLine:{lineWidth:1,lineColor:`rgba(128, 128, 128, 0.2)`}},taskBar:{startDateField:`start`,endDateField:`end`,progressField:`progress`,moveable:!0,resizable:!0,hoverBarStyle:{barOverlayColor:`rgba(99, 144, 0, 0.4)`},labelText:`{title} {progress}%`,labelTextStyle:{fontSize:16,textAlign:`left`,textOverflow:`ellipsis`},barStyle:{width:20,barColor:`#ee8800`,completedBarColor:`#91e8e0`,cornerRadius:8,borderLineWidth:1,borderColor:`black`},milestoneStyle:{borderColor:`red`,borderLineWidth:1,fillColor:`green`,width:15}},timelineHeader:{backgroundColor:`#EEF1F5`,colWidth:60,horizontalLine:{lineWidth:1,lineColor:`#e1e4e8`},verticalLine:{lineWidth:1,lineColor:`#e1e4e8`},scales:[{unit:`week`,step:1,startOfWeek:`sunday`,format:e=>`Week ${e.dateIndex}`,style:{fontSize:20,fontWeight:`bold`,color:`white`,strokeColor:`black`,textAlign:`right`,textBaseline:`bottom`,textStick:!0}},{unit:`day`,step:1,format:e=>e.dateIndex.toString(),style:{fontSize:20,fontWeight:`bold`,color:`white`,strokeColor:`black`,textAlign:`right`,textBaseline:`bottom`}}]},markLine:[{date:`2024-07-28`,style:{lineWidth:1,lineColor:`blue`,lineDash:[8,4]}},{date:`2024-08-17`,style:{lineWidth:2,lineColor:`red`,lineDash:[8,4]}}],rowSeriesNumber:{title:`行号`,dragOrder:!0,headerStyle:{borderColor:`rgba(128, 128, 128, 0.2)`},style:{borderColor:`rgba(128, 128, 128, 0.2)`}},scrollStyle:{scrollRailColor:`rgba(246,246,246,0.5)`,visible:`scrolling`,width:6,scrollSliderCornerRadius:2,scrollSliderColor:`#1890ff`}}},C={class:`c-vtable-gantt-wrapper`},w={key:0,class:`gantt-toolbar`},T={class:`toolbar-left`},E={class:`gantt-title`},D={class:`toolbar-right`};var O=t(l({name:`C_VtableGantt`,__name:`index`,props:{data:{default:()=>[]},options:{default:()=>({})},preset:{default:`basic`},height:{default:`600px`},title:{default:``},showToolbar:{type:Boolean,default:!0},showFullscreenButton:{type:Boolean,default:!0},theme:{default:`light`}},emits:[`ganttCreated`,`taskClick`,`taskChange`],setup(t,{expose:l,emit:x}){let O=t,k=x,A=h(),j=h(),M=h(!1),N=n(()=>typeof O.height==`number`?`${O.height}px`:O.height),P=(e,t,n=new WeakMap)=>F(e)?F(t)?n.has(t)?n.get(t):L(e,t,n):e:t,F=e=>typeof e==`object`&&!!e,I=e=>e instanceof Date||e instanceof RegExp,L=(e,t,n)=>{let r=Array.isArray(e)?[...e]:{...e};n.set(t,r);for(let i in t){if(!t.hasOwnProperty(i))continue;let a=t[i];r[i]=F(a)&&!Array.isArray(a)&&!I(a)?P(e[i]||{},a,n):a}return r},R=e=>e.map(e=>({...e,title:e.title||`任务${e.id}`,children:e.children?R(e.children):void 0})),z=e=>({underlayBackgroundColor:e?`#1e1e1e`:`#ffffff`,timelineHeaderBg:e?`#2d2d2d`:`#EEF1F5`,gridBg:e?`#1e1e1e`:`#ffffff`,lineColor:e?`rgba(255, 255, 255, 0.1)`:`rgba(128, 128, 128, 0.2)`,textColor:e?`#ffffff`:`#000000`}),B=(e,t)=>({...e,backgroundColor:t.timelineHeaderBg,horizontalLine:{...e?.horizontalLine,lineColor:t.lineColor},verticalLine:{...e?.verticalLine,lineColor:t.lineColor},scales:e?.scales?.map(e=>({...e,style:{...e.style,color:t.textColor}}))}),V=(e,t)=>({...e,backgroundColor:t.gridBg,horizontalLine:{...e?.horizontalLine,lineColor:t.lineColor},verticalLine:{...e?.verticalLine,lineColor:t.lineColor}}),H=(e,t,n,r)=>({...e,records:t,underlayBackgroundColor:r.underlayBackgroundColor,taskListTable:{...e.taskListTable,theme:n},timelineHeader:B(e.timelineHeader,r),grid:V(e.grid,r)}),U=e=>{e.on(`click_cell`,e=>{let{record:t,event:n}=e||{};t&&k(`taskClick`,t,n)}),e.on(`change_data`,e=>{let{record:t,changes:n}=e||{};t&&n&&k(`taskChange`,t,n)})},W=async()=>{if(A.value)try{let{Gantt:e}=await import(`@visactor/vtable-gantt`),{themes:t}=await import(`@visactor/vtable`),n=O.theme===`dark`,r=P(S[O.preset]||S.basic,O.options),i=R(O.data||[]);j.value&&j.value.release();let a=H(r,i,n?t.DARK:t.DEFAULT,z(n));j.value=new e(A.value,a),U(j.value),k(`ganttCreated`,j.value)}catch(e){console.error(`甘特图初始化失败:`,e)}},G=async()=>{if(A.value)try{document.fullscreenElement?(await document.exitFullscreen(),M.value=!1):(await A.value.requestFullscreen(),M.value=!0),setTimeout(()=>j.value?.resize?.(),100)}catch(e){console.warn(`全屏切换失败:`,e),M.value=!M.value,u(()=>j.value?.resize?.())}},K=()=>{M.value=!!document.fullscreenElement,u(()=>j.value?.resize?.())},q=e=>{if(j.value&&e)try{j.value.setRecords(R(e))}catch(e){console.warn(`更新数据失败:`,e)}},J=e=>{if(j.value&&e)try{j.value.updateOption(e)}catch(e){console.warn(`更新配置失败:`,e)}},Y=()=>{if(j.value)try{j.value.release()}catch(e){console.warn(`销毁甘特图失败:`,e)}finally{j.value=void 0}};return v(()=>O.data,e=>{e&&j.value&&q(e)},{deep:!0}),v(()=>[O.options,O.preset],()=>u(()=>W()),{deep:!0}),v(()=>O.theme,()=>u(()=>W())),f(()=>{document.addEventListener(`fullscreenchange`,K),u(()=>setTimeout(()=>W(),100))}),p(()=>{document.removeEventListener(`fullscreenchange`,K),Y()}),l({ganttInstance:j,updateData:q,updateOptions:J,toggleFullscreen:G}),(n,l)=>(m(),a(`div`,C,[t.showToolbar?(m(),a(`div`,w,[o(`div`,T,[o(`span`,E,g(t.title||`甘特图`),1)]),o(`div`,D,[t.showFullscreenButton?(m(),r(_(b),{key:0,size:`small`,onClick:G},{icon:y(()=>[c(e,{name:M.value?`carbon:minimize`:`carbon:maximize`,size:16,color:`currentColor`},null,8,[`name`])]),default:y(()=>[s(` `+g(M.value?`退出全屏`:`全屏`),1)]),_:1})):i(`v-if`,!0)])])):i(`v-if`,!0),o(`div`,{ref_key:`ganttContainerRef`,ref:A,class:`gantt-container`,style:d({height:N.value})},null,4)]))}}),[[`__scopeId`,`data-v-1fc4d705`]]);export{S as n,O as t};
|
package/dist/C_WaterFall.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`./
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`./C_WaterFall2.cjs`);exports.C_WaterFall=e.t,exports.DEFAULT_ANIMATION_DURATION=e.a,exports.DEFAULT_BREAKPOINTS=e.o,exports.DEFAULT_GAP=e.s,exports.DEFAULT_SKELETON_COUNT=e.c,exports.INFINITE_SCROLL_THRESHOLD=e.l,exports.SKELETON_HEIGHT_RANGE=e.u,exports.useInfiniteScroll=e.n,exports.useResponsiveColumns=e.i,exports.useWaterFallLayout=e.r;
|
package/dist/C_WaterFall.css
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
/* unplugin-vue-components disabled */.c-waterfall[data-v-
|
|
1
|
+
/* unplugin-vue-components disabled */.c-waterfall[data-v-e5b37410] {
|
|
2
2
|
width: 100%;
|
|
3
3
|
}
|
|
4
|
-
.waterfall__body[data-v-
|
|
4
|
+
.waterfall__body[data-v-e5b37410] {
|
|
5
5
|
overflow: hidden;
|
|
6
6
|
}
|
|
7
|
-
.waterfall__item[data-v-
|
|
7
|
+
.waterfall__item[data-v-e5b37410] {
|
|
8
8
|
cursor: pointer;
|
|
9
9
|
}
|
|
10
|
-
.waterfall__card[data-v-
|
|
10
|
+
.waterfall__card[data-v-e5b37410] {
|
|
11
11
|
overflow: hidden;
|
|
12
12
|
border-radius: 8px;
|
|
13
13
|
border: 1px solid var(--border-color);
|
|
@@ -15,36 +15,36 @@
|
|
|
15
15
|
box-shadow: 0 1px 4px rgba(0, 0, 0, 0.04);
|
|
16
16
|
transition: box-shadow 0.2s ease, transform 0.2s ease;
|
|
17
17
|
}
|
|
18
|
-
.waterfall__card[data-v-
|
|
18
|
+
.waterfall__card[data-v-e5b37410]:hover {
|
|
19
19
|
box-shadow: 0 4px 16px rgba(0, 0, 0, 0.1);
|
|
20
20
|
transform: translateY(-2px);
|
|
21
21
|
}
|
|
22
|
-
.waterfall__image[data-v-
|
|
22
|
+
.waterfall__image[data-v-e5b37410] {
|
|
23
23
|
display: block;
|
|
24
24
|
width: 100%;
|
|
25
25
|
object-fit: cover;
|
|
26
26
|
background: var(--body-color);
|
|
27
27
|
}
|
|
28
|
-
.waterfall__title[data-v-
|
|
28
|
+
.waterfall__title[data-v-e5b37410] {
|
|
29
29
|
padding: 10px 12px;
|
|
30
30
|
font-size: 13px;
|
|
31
31
|
line-height: 1.5;
|
|
32
32
|
color: var(--text-color-1);
|
|
33
33
|
word-break: break-all;
|
|
34
34
|
}
|
|
35
|
-
.waterfall__skeleton[data-v-
|
|
35
|
+
.waterfall__skeleton[data-v-e5b37410] {
|
|
36
36
|
overflow: hidden;
|
|
37
37
|
border-radius: 8px;
|
|
38
38
|
}
|
|
39
|
-
.waterfall__skeleton-inner[data-v-
|
|
39
|
+
.waterfall__skeleton-inner[data-v-e5b37410] {
|
|
40
40
|
width: 100%;
|
|
41
41
|
height: 100%;
|
|
42
42
|
border-radius: 8px;
|
|
43
43
|
background: linear-gradient(90deg, var(--body-color) 25%, color-mix(in srgb, var(--body-color) 80%, var(--border-color)) 37%, var(--body-color) 63%);
|
|
44
44
|
background-size: 400% 100%;
|
|
45
|
-
animation: shimmer-
|
|
45
|
+
animation: shimmer-e5b37410 1.4s ease infinite;
|
|
46
46
|
}
|
|
47
|
-
@keyframes shimmer-
|
|
47
|
+
@keyframes shimmer-e5b37410 {
|
|
48
48
|
0% {
|
|
49
49
|
background-position: 100% 50%;
|
|
50
50
|
}
|
|
@@ -52,22 +52,20 @@
|
|
|
52
52
|
background-position: 0 50%;
|
|
53
53
|
}
|
|
54
54
|
}
|
|
55
|
-
.waterfall__footer[data-v-
|
|
55
|
+
.waterfall__footer[data-v-e5b37410] {
|
|
56
56
|
padding: 24px 0;
|
|
57
57
|
text-align: center;
|
|
58
58
|
}
|
|
59
|
-
.waterfall__sentinel[data-v-
|
|
59
|
+
.waterfall__sentinel[data-v-e5b37410] {
|
|
60
60
|
height: 1px;
|
|
61
61
|
}
|
|
62
|
-
.waterfall__status[data-v-
|
|
62
|
+
.waterfall__status[data-v-e5b37410] {
|
|
63
63
|
display: inline-flex;
|
|
64
64
|
gap: 8px;
|
|
65
65
|
align-items: center;
|
|
66
66
|
font-size: 13px;
|
|
67
67
|
color: var(--text-color-3);
|
|
68
68
|
}
|
|
69
|
-
.waterfall__status--done[data-v-
|
|
69
|
+
.waterfall__status--done[data-v-e5b37410] {
|
|
70
70
|
color: var(--text-color-4);
|
|
71
71
|
}
|
|
72
|
-
|
|
73
|
-
/*# sourceMappingURL=C_WaterFall-BJ_39ext.css.map*/
|
package/dist/C_WaterFall.d.cts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { _ as WaterFallLayoutItem, a as DEFAULT_BREAKPOINTS, c as INFINITE_SCROLL_THRESHOLD, d as InfiniteScrollStatus, f as WaterFallBreakpoint, g as WaterFallItem, h as WaterFallExpose, i as DEFAULT_ANIMATION_DURATION, l as SKELETON_HEIGHT_RANGE, m as WaterFallEmits, n as useWaterFallLayout, o as DEFAULT_GAP, p as WaterFallColumn, r as useResponsiveColumns, s as DEFAULT_SKELETON_COUNT, t as useInfiniteScroll, u as _default, v as WaterFallProps } from "./useInfiniteScroll.
|
|
1
|
+
import { _ as WaterFallLayoutItem, a as DEFAULT_BREAKPOINTS, c as INFINITE_SCROLL_THRESHOLD, d as InfiniteScrollStatus, f as WaterFallBreakpoint, g as WaterFallItem, h as WaterFallExpose, i as DEFAULT_ANIMATION_DURATION, l as SKELETON_HEIGHT_RANGE, m as WaterFallEmits, n as useWaterFallLayout, o as DEFAULT_GAP, p as WaterFallColumn, r as useResponsiveColumns, s as DEFAULT_SKELETON_COUNT, t as useInfiniteScroll, u as _default, v as WaterFallProps } from "./useInfiniteScroll.cjs";
|
|
2
2
|
export { _default as C_WaterFall, DEFAULT_ANIMATION_DURATION, DEFAULT_BREAKPOINTS, DEFAULT_GAP, DEFAULT_SKELETON_COUNT, INFINITE_SCROLL_THRESHOLD, type InfiniteScrollStatus, SKELETON_HEIGHT_RANGE, type WaterFallBreakpoint, type WaterFallColumn, type WaterFallEmits, type WaterFallExpose, type WaterFallItem, type WaterFallLayoutItem, type WaterFallProps, useInfiniteScroll, useResponsiveColumns, useWaterFallLayout };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
require(`./chunk.cjs`);const e=require(`./export-helper.cjs`);let t=require(`vue`),n=require(`naive-ui`);const r=[{minWidth:1600,columns:6},{minWidth:1200,columns:5},{minWidth:992,columns:4},{minWidth:768,columns:3},{minWidth:480,columns:2},{minWidth:0,columns:1}],i=[180,360];function a(e,n,i){let a=(0,t.ref)(4),o=(0,t.ref)(0);function s(e){if(n?.value&&n.value>0)return n.value;let t=[...i?.value?.length?i.value:r].sort((e,t)=>t.minWidth-e.minWidth);for(let n of t)if(e>=n.minWidth)return n.columns;return 1}let c=null;function l(){let t=e.value;if(!t)return;c=new ResizeObserver(e=>{for(let t of e){let{width:e}=t.contentRect;o.value=e,a.value=s(e)}}),c.observe(t);let n=t.getBoundingClientRect();o.value=n.width,a.value=s(n.width)}function u(){c?.disconnect(),c=null}return(0,t.onMounted)(l),(0,t.onBeforeUnmount)(u),(0,t.watch)(e,()=>{u(),l()}),(0,t.watch)([()=>n?.value,()=>i?.value],()=>{o.value>0&&(a.value=s(o.value))}),{columns:(0,t.readonly)(a),containerWidth:(0,t.readonly)(o)}}function o(e,n,r,i){let a=(0,t.ref)([]),o=(0,t.ref)(0),s=new Map;function c(e,t){s.set(e,t)}function l(){let t=n.value,c=r.value,l=i.value??16;if(t<=0||c<=0||e.value.length===0){a.value=[],o.value=0;return}let u=(c-(t-1)*l)/t,d=Array.from({length:t},(e,t)=>({index:t,height:0})),f=[];for(let t of e.value){let e=d.reduce((e,t)=>t.height<e.height?t:e),n=s.get(t.id)||(t.width>0?t.height/t.width*u:u),r=e.index*(u+l),i=e.height;f.push({item:t,columnIndex:e.index,x:r,y:i,width:u,height:n}),e.height=i+n+l}a.value=f,o.value=Math.max(...d.map(e=>e.height))-l}return(0,t.watch)([e,()=>e.value.length,n,r,i],l,{immediate:!0}),{layoutItems:(0,t.readonly)(a),containerHeight:(0,t.readonly)(o),cacheImageHeight:c,relayout:l}}function s(e,n,r,i,a){let o=(0,t.ref)(`idle`),s=null;function c(e){e[0]?.isIntersecting&&(!n.value||r.value||i.value||(o.value=`loading`,a()))}function l(){let t=e.value;!t||!n.value||(s=new IntersectionObserver(c,{rootMargin:`200px 0px`}),s.observe(t))}function u(){s?.disconnect(),s=null}return(0,t.watch)([r,i],()=>{i.value?o.value=`no-more`:r.value?o.value=`loading`:o.value=`idle`}),(0,t.onMounted)(l),(0,t.onBeforeUnmount)(u),(0,t.watch)([e,n],()=>{u(),l()}),{status:(0,t.readonly)(o)}}const c=[`onClick`],l={class:`waterfall__card`},u=[`src`,`alt`,`loading`,`onLoad`,`onError`],d={key:0,class:`waterfall__title`},f={key:0,class:`waterfall__footer`},p={key:0,class:`waterfall__status`},m={key:1,class:`waterfall__status waterfall__status--done`},h=(0,t.defineComponent)({name:`C_WaterFall`,__name:`index`,props:{items:{},columns:{default:void 0},gap:{default:16},lazy:{type:Boolean,default:!0},infinite:{type:Boolean,default:!1},skeleton:{type:Boolean,default:!0},skeletonCount:{default:8},animationDuration:{default:300},breakpoints:{default:void 0},loading:{type:Boolean,default:!1},noMore:{type:Boolean,default:!1}},emits:[`load-more`,`item-click`,`image-loaded`,`image-error`],setup(e,{expose:r,emit:h}){let g=e,_=h,v=(0,t.ref)(),y=(0,t.ref)(),{columns:b,containerWidth:x}=a(v,(0,t.computed)(()=>g.columns),(0,t.computed)(()=>g.breakpoints)),{layoutItems:S,containerHeight:C,cacheImageHeight:w,relayout:T}=o((0,t.computed)(()=>g.items),b,x,(0,t.computed)(()=>g.gap)),E=(0,t.computed)(()=>g.skeleton&&g.loading&&S.value.length===0),D=(0,t.computed)(()=>{let e=b.value,t=x.value,n=g.gap;if(e<=0||t<=0)return[];let r=(t-(e-1)*n)/e,a=g.skeletonCount??8,o=Array(e).fill(0),s=[];for(let e=0;e<a;e++){let e=o.indexOf(Math.min(...o)),t=i[0]+Math.random()*(i[1]-i[0]);s.push({x:e*(r+n),y:o[e],width:r,height:t}),o[e]+=t+n}return s}),O=(0,t.computed)(()=>D.value.length===0?0:Math.max(...D.value.map(e=>e.y+e.height))),k=(0,t.computed)(()=>E.value?O.value:C.value),{status:A}=s(y,(0,t.computed)(()=>g.infinite),(0,t.computed)(()=>g.loading),(0,t.computed)(()=>g.noMore),()=>_(`load-more`));function j(e,t){let n=t.target;if(n.naturalHeight&&n.naturalWidth){let t=n.naturalHeight/n.naturalWidth*e.width;w(e.item.id,t)}_(`image-loaded`,e.item)}function M(e){_(`image-error`,e.item)}function N(){v.value?.scrollIntoView({behavior:`smooth`,block:`start`})}return r({relayout:T,scrollToTop:N,getColumns:()=>b.value,getContainerHeight:()=>C.value}),(e,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{ref_key:`containerRef`,ref:v,class:`c-waterfall`},[(0,t.createElementVNode)(`div`,{class:`waterfall__body`,style:(0,t.normalizeStyle)({height:`${k.value}px`,position:`relative`})},[E.value?((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,{key:0},(0,t.renderList)(D.value,(n,i)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:`sk-${i}`,class:`waterfall__skeleton`,style:(0,t.normalizeStyle)({position:`absolute`,left:`${n.x}px`,top:`${n.y}px`,width:`${n.width}px`,height:`${n.height}px`,transition:`all ${g.animationDuration??(0,t.unref)(300)}ms ease`})},[(0,t.renderSlot)(e.$slots,`skeleton`,{},()=>[r[0]||=(0,t.createElementVNode)(`div`,{class:`waterfall__skeleton-inner`},null,-1)],!0)],4))),128)):(0,t.createCommentVNode)(`v-if`,!0),((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)((0,t.unref)(S),(n,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:n.item.id,class:`waterfall__item`,style:(0,t.normalizeStyle)({position:`absolute`,left:`${n.x}px`,top:`${n.y}px`,width:`${n.width}px`,transition:`all ${g.animationDuration??(0,t.unref)(300)}ms ease`}),onClick:e=>_(`item-click`,n.item,r)},[(0,t.renderSlot)(e.$slots,`item`,{item:n.item,index:r,width:n.width,height:n.height},()=>[(0,t.createElementVNode)(`div`,l,[(0,t.createElementVNode)(`img`,{src:n.item.src,alt:n.item.title||``,loading:g.lazy?`lazy`:`eager`,class:`waterfall__image`,style:(0,t.normalizeStyle)({height:`${n.height}px`}),onLoad:e=>j(n,e),onError:e=>M(n)},null,44,u),n.item.title?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,d,(0,t.toDisplayString)(n.item.title),1)):(0,t.createCommentVNode)(`v-if`,!0)])],!0)],12,c))),128))],4),g.infinite?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,f,[(0,t.createElementVNode)(`div`,{ref_key:`sentinelRef`,ref:y,class:`waterfall__sentinel`},null,512),(0,t.renderSlot)(e.$slots,`footer`,{status:(0,t.unref)(A)},()=>[g.loading?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,p,[(0,t.createVNode)((0,t.unref)(n.NSpin),{size:`small`}),r[1]||=(0,t.createElementVNode)(`span`,null,`加载中…`,-1)])):g.noMore?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,m,` 没有更多了 `)):(0,t.createCommentVNode)(`v-if`,!0)],!0)])):(0,t.createCommentVNode)(`v-if`,!0)],512))}});var g=e.t(h,[[`__scopeId`,`data-v-e5b37410`]]);Object.defineProperty(exports,`a`,{enumerable:!0,get:function(){return 300}}),Object.defineProperty(exports,`c`,{enumerable:!0,get:function(){return 8}}),Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return a}}),Object.defineProperty(exports,`l`,{enumerable:!0,get:function(){return 200}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return s}}),Object.defineProperty(exports,`o`,{enumerable:!0,get:function(){return r}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return o}}),Object.defineProperty(exports,`s`,{enumerable:!0,get:function(){return 16}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return g}}),Object.defineProperty(exports,`u`,{enumerable:!0,get:function(){return i}});
|
package/dist/C_WaterFall2.js
CHANGED
|
@@ -1,2 +1 @@
|
|
|
1
|
-
import{t as e}from"./export-helper.js";import{
|
|
2
|
-
//# sourceMappingURL=C_WaterFall2.js.map
|
|
1
|
+
import{t as e}from"./export-helper.js";import{Fragment as t,computed as n,createCommentVNode as r,createElementBlock as i,createElementVNode as a,createVNode as o,defineComponent as s,normalizeStyle as c,onBeforeUnmount as l,onMounted as u,openBlock as d,readonly as f,ref as p,renderList as m,renderSlot as h,toDisplayString as g,unref as _,watch as v}from"vue";import{NSpin as y}from"naive-ui";const b=16,x=300,S=8,C=200,w=[{minWidth:1600,columns:6},{minWidth:1200,columns:5},{minWidth:992,columns:4},{minWidth:768,columns:3},{minWidth:480,columns:2},{minWidth:0,columns:1}],T=[180,360];function E(e,t,n){let r=p(4),i=p(0);function a(e){if(t?.value&&t.value>0)return t.value;let r=[...n?.value?.length?n.value:w].sort((e,t)=>t.minWidth-e.minWidth);for(let t of r)if(e>=t.minWidth)return t.columns;return 1}let o=null;function s(){let t=e.value;if(!t)return;o=new ResizeObserver(e=>{for(let t of e){let{width:e}=t.contentRect;i.value=e,r.value=a(e)}}),o.observe(t);let n=t.getBoundingClientRect();i.value=n.width,r.value=a(n.width)}function c(){o?.disconnect(),o=null}return u(s),l(c),v(e,()=>{c(),s()}),v([()=>t?.value,()=>n?.value],()=>{i.value>0&&(r.value=a(i.value))}),{columns:f(r),containerWidth:f(i)}}function D(e,t,n,r){let i=p([]),a=p(0),o=new Map;function s(e,t){o.set(e,t)}function c(){let s=t.value,c=n.value,l=r.value??16;if(s<=0||c<=0||e.value.length===0){i.value=[],a.value=0;return}let u=(c-(s-1)*l)/s,d=Array.from({length:s},(e,t)=>({index:t,height:0})),f=[];for(let t of e.value){let e=d.reduce((e,t)=>t.height<e.height?t:e),n=o.get(t.id)||(t.width>0?t.height/t.width*u:u),r=e.index*(u+l),i=e.height;f.push({item:t,columnIndex:e.index,x:r,y:i,width:u,height:n}),e.height=i+n+l}i.value=f,a.value=Math.max(...d.map(e=>e.height))-l}return v([e,()=>e.value.length,t,n,r],c,{immediate:!0}),{layoutItems:f(i),containerHeight:f(a),cacheImageHeight:s,relayout:c}}function O(e,t,n,r,i){let a=p(`idle`),o=null;function s(e){e[0]?.isIntersecting&&(!t.value||n.value||r.value||(a.value=`loading`,i()))}function c(){let n=e.value;!n||!t.value||(o=new IntersectionObserver(s,{rootMargin:`200px 0px`}),o.observe(n))}function d(){o?.disconnect(),o=null}return v([n,r],()=>{r.value?a.value=`no-more`:n.value?a.value=`loading`:a.value=`idle`}),u(c),l(d),v([e,t],()=>{d(),c()}),{status:f(a)}}const k=[`onClick`],A={class:`waterfall__card`},j=[`src`,`alt`,`loading`,`onLoad`,`onError`],M={key:0,class:`waterfall__title`},N={key:0,class:`waterfall__footer`},P={key:0,class:`waterfall__status`},F={key:1,class:`waterfall__status waterfall__status--done`};var I=e(s({name:`C_WaterFall`,__name:`index`,props:{items:{},columns:{default:void 0},gap:{default:16},lazy:{type:Boolean,default:!0},infinite:{type:Boolean,default:!1},skeleton:{type:Boolean,default:!0},skeletonCount:{default:8},animationDuration:{default:300},breakpoints:{default:void 0},loading:{type:Boolean,default:!1},noMore:{type:Boolean,default:!1}},emits:[`load-more`,`item-click`,`image-loaded`,`image-error`],setup(e,{expose:s,emit:l}){let u=e,f=l,v=p(),b=p(),{columns:x,containerWidth:S}=E(v,n(()=>u.columns),n(()=>u.breakpoints)),{layoutItems:C,containerHeight:w,cacheImageHeight:I,relayout:L}=D(n(()=>u.items),x,S,n(()=>u.gap)),R=n(()=>u.skeleton&&u.loading&&C.value.length===0),z=n(()=>{let e=x.value,t=S.value,n=u.gap;if(e<=0||t<=0)return[];let r=(t-(e-1)*n)/e,i=u.skeletonCount??8,a=Array(e).fill(0),o=[];for(let e=0;e<i;e++){let e=a.indexOf(Math.min(...a)),t=T[0]+Math.random()*(T[1]-T[0]);o.push({x:e*(r+n),y:a[e],width:r,height:t}),a[e]+=t+n}return o}),B=n(()=>z.value.length===0?0:Math.max(...z.value.map(e=>e.y+e.height))),V=n(()=>R.value?B.value:w.value),{status:H}=O(b,n(()=>u.infinite),n(()=>u.loading),n(()=>u.noMore),()=>f(`load-more`));function U(e,t){let n=t.target;if(n.naturalHeight&&n.naturalWidth){let t=n.naturalHeight/n.naturalWidth*e.width;I(e.item.id,t)}f(`image-loaded`,e.item)}function W(e){f(`image-error`,e.item)}function G(){v.value?.scrollIntoView({behavior:`smooth`,block:`start`})}return s({relayout:L,scrollToTop:G,getColumns:()=>x.value,getContainerHeight:()=>w.value}),(e,n)=>(d(),i(`div`,{ref_key:`containerRef`,ref:v,class:`c-waterfall`},[a(`div`,{class:`waterfall__body`,style:c({height:`${V.value}px`,position:`relative`})},[R.value?(d(!0),i(t,{key:0},m(z.value,(t,r)=>(d(),i(`div`,{key:`sk-${r}`,class:`waterfall__skeleton`,style:c({position:`absolute`,left:`${t.x}px`,top:`${t.y}px`,width:`${t.width}px`,height:`${t.height}px`,transition:`all ${u.animationDuration??_(300)}ms ease`})},[h(e.$slots,`skeleton`,{},()=>[n[0]||=a(`div`,{class:`waterfall__skeleton-inner`},null,-1)],!0)],4))),128)):r(`v-if`,!0),(d(!0),i(t,null,m(_(C),(t,n)=>(d(),i(`div`,{key:t.item.id,class:`waterfall__item`,style:c({position:`absolute`,left:`${t.x}px`,top:`${t.y}px`,width:`${t.width}px`,transition:`all ${u.animationDuration??_(300)}ms ease`}),onClick:e=>f(`item-click`,t.item,n)},[h(e.$slots,`item`,{item:t.item,index:n,width:t.width,height:t.height},()=>[a(`div`,A,[a(`img`,{src:t.item.src,alt:t.item.title||``,loading:u.lazy?`lazy`:`eager`,class:`waterfall__image`,style:c({height:`${t.height}px`}),onLoad:e=>U(t,e),onError:e=>W(t)},null,44,j),t.item.title?(d(),i(`div`,M,g(t.item.title),1)):r(`v-if`,!0)])],!0)],12,k))),128))],4),u.infinite?(d(),i(`div`,N,[a(`div`,{ref_key:`sentinelRef`,ref:b,class:`waterfall__sentinel`},null,512),h(e.$slots,`footer`,{status:_(H)},()=>[u.loading?(d(),i(`div`,P,[o(_(y),{size:`small`}),n[1]||=a(`span`,null,`加载中…`,-1)])):u.noMore?(d(),i(`div`,F,` 没有更多了 `)):r(`v-if`,!0)],!0)])):r(`v-if`,!0)],512))}}),[[`__scopeId`,`data-v-e5b37410`]]);export{x as a,S as c,E as i,C as l,O as n,w as o,D as r,b as s,I as t,T as u};
|
package/dist/C_WorkFlow.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`./
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`}),require(`./C_Icon2.cjs`);const e=require(`./C_WorkFlow2.cjs`);exports.C_WorkFlow=e.t,exports.useWorkflowNodes=e.i,exports.useWorkflowPreview=e.n,exports.useWorkflowValidation=e.r;
|