@class-kit/vue 0.1.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 +6 -0
- package/LICENSE +3 -0
- package/README.md +86 -0
- package/dist/components/affix.cjs +132 -0
- package/dist/components/affix.cjs.map +1 -0
- package/dist/components/affix.d.ts +2 -0
- package/dist/components/affix.d.ts.map +1 -0
- package/dist/components/affix.js +130 -0
- package/dist/components/affix.js.map +1 -0
- package/dist/components/backtop.cjs +180 -0
- package/dist/components/backtop.cjs.map +1 -0
- package/dist/components/backtop.d.ts +2 -0
- package/dist/components/backtop.d.ts.map +1 -0
- package/dist/components/backtop.js +178 -0
- package/dist/components/backtop.js.map +1 -0
- package/dist/components/badge.cjs +84 -0
- package/dist/components/badge.cjs.map +1 -0
- package/dist/components/badge.d.ts +2 -0
- package/dist/components/badge.d.ts.map +1 -0
- package/dist/components/badge.js +82 -0
- package/dist/components/badge.js.map +1 -0
- package/dist/components/barcode.cjs +122 -0
- package/dist/components/barcode.cjs.map +1 -0
- package/dist/components/barcode.d.ts +2 -0
- package/dist/components/barcode.d.ts.map +1 -0
- package/dist/components/barcode.js +120 -0
- package/dist/components/barcode.js.map +1 -0
- package/dist/components/breadcrumb.cjs +76 -0
- package/dist/components/breadcrumb.cjs.map +1 -0
- package/dist/components/breadcrumb.d.ts +2 -0
- package/dist/components/breadcrumb.d.ts.map +1 -0
- package/dist/components/breadcrumb.js +74 -0
- package/dist/components/breadcrumb.js.map +1 -0
- package/dist/components/button.cjs +104 -0
- package/dist/components/button.cjs.map +1 -0
- package/dist/components/button.d.ts +2 -0
- package/dist/components/button.d.ts.map +1 -0
- package/dist/components/button.js +102 -0
- package/dist/components/button.js.map +1 -0
- package/dist/components/calendar.cjs +173 -0
- package/dist/components/calendar.cjs.map +1 -0
- package/dist/components/calendar.d.ts +2 -0
- package/dist/components/calendar.d.ts.map +1 -0
- package/dist/components/calendar.js +171 -0
- package/dist/components/calendar.js.map +1 -0
- package/dist/components/canvas-editor.cjs +450 -0
- package/dist/components/canvas-editor.cjs.map +1 -0
- package/dist/components/canvas-editor.d.ts +2 -0
- package/dist/components/canvas-editor.d.ts.map +1 -0
- package/dist/components/canvas-editor.js +448 -0
- package/dist/components/canvas-editor.js.map +1 -0
- package/dist/components/canvas-image.cjs +124 -0
- package/dist/components/canvas-image.cjs.map +1 -0
- package/dist/components/canvas-image.d.ts +2 -0
- package/dist/components/canvas-image.d.ts.map +1 -0
- package/dist/components/canvas-image.js +122 -0
- package/dist/components/canvas-image.js.map +1 -0
- package/dist/components/chat-virtual-list.cjs +625 -0
- package/dist/components/chat-virtual-list.cjs.map +1 -0
- package/dist/components/chat-virtual-list.d.ts +2 -0
- package/dist/components/chat-virtual-list.d.ts.map +1 -0
- package/dist/components/chat-virtual-list.js +623 -0
- package/dist/components/chat-virtual-list.js.map +1 -0
- package/dist/components/checkbox.cjs +195 -0
- package/dist/components/checkbox.cjs.map +1 -0
- package/dist/components/checkbox.d.ts +2 -0
- package/dist/components/checkbox.d.ts.map +1 -0
- package/dist/components/checkbox.js +193 -0
- package/dist/components/checkbox.js.map +1 -0
- package/dist/components/checked.cjs +196 -0
- package/dist/components/checked.cjs.map +1 -0
- package/dist/components/checked.d.ts +2 -0
- package/dist/components/checked.d.ts.map +1 -0
- package/dist/components/checked.js +194 -0
- package/dist/components/checked.js.map +1 -0
- package/dist/components/color-picker.cjs +364 -0
- package/dist/components/color-picker.cjs.map +1 -0
- package/dist/components/color-picker.d.ts +2 -0
- package/dist/components/color-picker.d.ts.map +1 -0
- package/dist/components/color-picker.js +362 -0
- package/dist/components/color-picker.js.map +1 -0
- package/dist/components/comic-reader.cjs +166 -0
- package/dist/components/comic-reader.cjs.map +1 -0
- package/dist/components/comic-reader.d.ts +2 -0
- package/dist/components/comic-reader.d.ts.map +1 -0
- package/dist/components/comic-reader.js +164 -0
- package/dist/components/comic-reader.js.map +1 -0
- package/dist/components/config-provider.cjs +55 -0
- package/dist/components/config-provider.cjs.map +1 -0
- package/dist/components/config-provider.d.ts +2 -0
- package/dist/components/config-provider.d.ts.map +1 -0
- package/dist/components/config-provider.js +53 -0
- package/dist/components/config-provider.js.map +1 -0
- package/dist/components/config-table.cjs +697 -0
- package/dist/components/config-table.cjs.map +1 -0
- package/dist/components/config-table.d.ts +2 -0
- package/dist/components/config-table.d.ts.map +1 -0
- package/dist/components/config-table.js +695 -0
- package/dist/components/config-table.js.map +1 -0
- package/dist/components/countdown.cjs +122 -0
- package/dist/components/countdown.cjs.map +1 -0
- package/dist/components/countdown.d.ts +2 -0
- package/dist/components/countdown.d.ts.map +1 -0
- package/dist/components/countdown.js +120 -0
- package/dist/components/countdown.js.map +1 -0
- package/dist/components/danmaku.cjs +116 -0
- package/dist/components/danmaku.cjs.map +1 -0
- package/dist/components/danmaku.d.ts +2 -0
- package/dist/components/danmaku.d.ts.map +1 -0
- package/dist/components/danmaku.js +114 -0
- package/dist/components/danmaku.js.map +1 -0
- package/dist/components/date-picker.cjs +350 -0
- package/dist/components/date-picker.cjs.map +1 -0
- package/dist/components/date-picker.d.ts +2 -0
- package/dist/components/date-picker.d.ts.map +1 -0
- package/dist/components/date-picker.js +348 -0
- package/dist/components/date-picker.js.map +1 -0
- package/dist/components/date-range-picker.cjs +428 -0
- package/dist/components/date-range-picker.cjs.map +1 -0
- package/dist/components/date-range-picker.d.ts +2 -0
- package/dist/components/date-range-picker.d.ts.map +1 -0
- package/dist/components/date-range-picker.js +426 -0
- package/dist/components/date-range-picker.js.map +1 -0
- package/dist/components/design-effect.cjs +121 -0
- package/dist/components/design-effect.cjs.map +1 -0
- package/dist/components/design-effect.d.ts +2 -0
- package/dist/components/design-effect.d.ts.map +1 -0
- package/dist/components/design-effect.js +119 -0
- package/dist/components/design-effect.js.map +1 -0
- package/dist/components/drag-drop-board.cjs +399 -0
- package/dist/components/drag-drop-board.cjs.map +1 -0
- package/dist/components/drag-drop-board.d.ts +2 -0
- package/dist/components/drag-drop-board.d.ts.map +1 -0
- package/dist/components/drag-drop-board.js +397 -0
- package/dist/components/drag-drop-board.js.map +1 -0
- package/dist/components/draggable.cjs +193 -0
- package/dist/components/draggable.cjs.map +1 -0
- package/dist/components/draggable.d.ts +2 -0
- package/dist/components/draggable.d.ts.map +1 -0
- package/dist/components/draggable.js +191 -0
- package/dist/components/draggable.js.map +1 -0
- package/dist/components/ellipsis-text.cjs +176 -0
- package/dist/components/ellipsis-text.cjs.map +1 -0
- package/dist/components/ellipsis-text.d.ts +2 -0
- package/dist/components/ellipsis-text.d.ts.map +1 -0
- package/dist/components/ellipsis-text.js +174 -0
- package/dist/components/ellipsis-text.js.map +1 -0
- package/dist/components/empty.cjs +124 -0
- package/dist/components/empty.cjs.map +1 -0
- package/dist/components/empty.d.ts +2 -0
- package/dist/components/empty.d.ts.map +1 -0
- package/dist/components/empty.js +122 -0
- package/dist/components/empty.js.map +1 -0
- package/dist/components/field.cjs +265 -0
- package/dist/components/field.cjs.map +1 -0
- package/dist/components/field.d.ts +2 -0
- package/dist/components/field.d.ts.map +1 -0
- package/dist/components/field.js +263 -0
- package/dist/components/field.js.map +1 -0
- package/dist/components/file-preview.cjs +392 -0
- package/dist/components/file-preview.cjs.map +1 -0
- package/dist/components/file-preview.d.ts +3 -0
- package/dist/components/file-preview.d.ts.map +1 -0
- package/dist/components/file-preview.js +390 -0
- package/dist/components/file-preview.js.map +1 -0
- package/dist/components/floating-ball.cjs +203 -0
- package/dist/components/floating-ball.cjs.map +1 -0
- package/dist/components/floating-ball.d.ts +2 -0
- package/dist/components/floating-ball.d.ts.map +1 -0
- package/dist/components/floating-ball.js +201 -0
- package/dist/components/floating-ball.js.map +1 -0
- package/dist/components/form.cjs +146 -0
- package/dist/components/form.cjs.map +1 -0
- package/dist/components/form.d.ts +3 -0
- package/dist/components/form.d.ts.map +1 -0
- package/dist/components/form.js +141 -0
- package/dist/components/form.js.map +1 -0
- package/dist/components/gradient-text.cjs +103 -0
- package/dist/components/gradient-text.cjs.map +1 -0
- package/dist/components/gradient-text.d.ts +2 -0
- package/dist/components/gradient-text.d.ts.map +1 -0
- package/dist/components/gradient-text.js +101 -0
- package/dist/components/gradient-text.js.map +1 -0
- package/dist/components/input.cjs +264 -0
- package/dist/components/input.cjs.map +1 -0
- package/dist/components/input.d.ts +2 -0
- package/dist/components/input.d.ts.map +1 -0
- package/dist/components/input.js +262 -0
- package/dist/components/input.js.map +1 -0
- package/dist/components/lazy-image.cjs +203 -0
- package/dist/components/lazy-image.cjs.map +1 -0
- package/dist/components/lazy-image.d.ts +3 -0
- package/dist/components/lazy-image.d.ts.map +1 -0
- package/dist/components/lazy-image.js +201 -0
- package/dist/components/lazy-image.js.map +1 -0
- package/dist/components/live-room.cjs +644 -0
- package/dist/components/live-room.cjs.map +1 -0
- package/dist/components/live-room.d.ts +2 -0
- package/dist/components/live-room.d.ts.map +1 -0
- package/dist/components/live-room.js +642 -0
- package/dist/components/live-room.js.map +1 -0
- package/dist/components/loading.cjs +105 -0
- package/dist/components/loading.cjs.map +1 -0
- package/dist/components/loading.d.ts +2 -0
- package/dist/components/loading.d.ts.map +1 -0
- package/dist/components/loading.js +103 -0
- package/dist/components/loading.js.map +1 -0
- package/dist/components/marquee.cjs +267 -0
- package/dist/components/marquee.cjs.map +1 -0
- package/dist/components/marquee.d.ts +2 -0
- package/dist/components/marquee.d.ts.map +1 -0
- package/dist/components/marquee.js +265 -0
- package/dist/components/marquee.js.map +1 -0
- package/dist/components/masonry-virtual-list.cjs +241 -0
- package/dist/components/masonry-virtual-list.cjs.map +1 -0
- package/dist/components/masonry-virtual-list.d.ts +2 -0
- package/dist/components/masonry-virtual-list.d.ts.map +1 -0
- package/dist/components/masonry-virtual-list.js +239 -0
- package/dist/components/masonry-virtual-list.js.map +1 -0
- package/dist/components/modal.cjs +337 -0
- package/dist/components/modal.cjs.map +1 -0
- package/dist/components/modal.d.ts +2 -0
- package/dist/components/modal.d.ts.map +1 -0
- package/dist/components/modal.js +335 -0
- package/dist/components/modal.js.map +1 -0
- package/dist/components/multi-column-picker.cjs +284 -0
- package/dist/components/multi-column-picker.cjs.map +1 -0
- package/dist/components/multi-column-picker.d.ts +2 -0
- package/dist/components/multi-column-picker.d.ts.map +1 -0
- package/dist/components/multi-column-picker.js +282 -0
- package/dist/components/multi-column-picker.js.map +1 -0
- package/dist/components/novel-reader.cjs +401 -0
- package/dist/components/novel-reader.cjs.map +1 -0
- package/dist/components/novel-reader.d.ts +2 -0
- package/dist/components/novel-reader.d.ts.map +1 -0
- package/dist/components/novel-reader.js +399 -0
- package/dist/components/novel-reader.js.map +1 -0
- package/dist/components/number-input.cjs +399 -0
- package/dist/components/number-input.cjs.map +1 -0
- package/dist/components/number-input.d.ts +2 -0
- package/dist/components/number-input.d.ts.map +1 -0
- package/dist/components/number-input.js +397 -0
- package/dist/components/number-input.js.map +1 -0
- package/dist/components/pagination.cjs +144 -0
- package/dist/components/pagination.cjs.map +1 -0
- package/dist/components/pagination.d.ts +2 -0
- package/dist/components/pagination.d.ts.map +1 -0
- package/dist/components/pagination.js +142 -0
- package/dist/components/pagination.js.map +1 -0
- package/dist/components/password-input.cjs +344 -0
- package/dist/components/password-input.cjs.map +1 -0
- package/dist/components/password-input.d.ts +2 -0
- package/dist/components/password-input.d.ts.map +1 -0
- package/dist/components/password-input.js +342 -0
- package/dist/components/password-input.js.map +1 -0
- package/dist/components/popconfirm.cjs +198 -0
- package/dist/components/popconfirm.cjs.map +1 -0
- package/dist/components/popconfirm.d.ts +2 -0
- package/dist/components/popconfirm.d.ts.map +1 -0
- package/dist/components/popconfirm.js +196 -0
- package/dist/components/popconfirm.js.map +1 -0
- package/dist/components/popup.cjs +391 -0
- package/dist/components/popup.cjs.map +1 -0
- package/dist/components/popup.d.ts +2 -0
- package/dist/components/popup.d.ts.map +1 -0
- package/dist/components/popup.js +389 -0
- package/dist/components/popup.js.map +1 -0
- package/dist/components/progress-bar.cjs +276 -0
- package/dist/components/progress-bar.cjs.map +1 -0
- package/dist/components/progress-bar.d.ts +2 -0
- package/dist/components/progress-bar.d.ts.map +1 -0
- package/dist/components/progress-bar.js +274 -0
- package/dist/components/progress-bar.js.map +1 -0
- package/dist/components/qr-code.cjs +144 -0
- package/dist/components/qr-code.cjs.map +1 -0
- package/dist/components/qr-code.d.ts +2 -0
- package/dist/components/qr-code.d.ts.map +1 -0
- package/dist/components/qr-code.js +142 -0
- package/dist/components/qr-code.js.map +1 -0
- package/dist/components/radio-group.cjs +210 -0
- package/dist/components/radio-group.cjs.map +1 -0
- package/dist/components/radio-group.d.ts +3 -0
- package/dist/components/radio-group.d.ts.map +1 -0
- package/dist/components/radio-group.js +208 -0
- package/dist/components/radio-group.js.map +1 -0
- package/dist/components/rating.cjs +251 -0
- package/dist/components/rating.cjs.map +1 -0
- package/dist/components/rating.d.ts +2 -0
- package/dist/components/rating.d.ts.map +1 -0
- package/dist/components/rating.js +249 -0
- package/dist/components/rating.js.map +1 -0
- package/dist/components/rolling-number.cjs +99 -0
- package/dist/components/rolling-number.cjs.map +1 -0
- package/dist/components/rolling-number.d.ts +2 -0
- package/dist/components/rolling-number.d.ts.map +1 -0
- package/dist/components/rolling-number.js +97 -0
- package/dist/components/rolling-number.js.map +1 -0
- package/dist/components/select.cjs +475 -0
- package/dist/components/select.cjs.map +1 -0
- package/dist/components/select.d.ts +3 -0
- package/dist/components/select.d.ts.map +1 -0
- package/dist/components/select.js +473 -0
- package/dist/components/select.js.map +1 -0
- package/dist/components/signature.cjs +372 -0
- package/dist/components/signature.cjs.map +1 -0
- package/dist/components/signature.d.ts +2 -0
- package/dist/components/signature.d.ts.map +1 -0
- package/dist/components/signature.js +370 -0
- package/dist/components/signature.js.map +1 -0
- package/dist/components/skeleton.cjs +102 -0
- package/dist/components/skeleton.cjs.map +1 -0
- package/dist/components/skeleton.d.ts +2 -0
- package/dist/components/skeleton.d.ts.map +1 -0
- package/dist/components/skeleton.js +100 -0
- package/dist/components/skeleton.js.map +1 -0
- package/dist/components/slide-captcha.cjs +418 -0
- package/dist/components/slide-captcha.cjs.map +1 -0
- package/dist/components/slide-captcha.d.ts +2 -0
- package/dist/components/slide-captcha.d.ts.map +1 -0
- package/dist/components/slide-captcha.js +416 -0
- package/dist/components/slide-captcha.js.map +1 -0
- package/dist/components/swiper.cjs +441 -0
- package/dist/components/swiper.cjs.map +1 -0
- package/dist/components/swiper.d.ts +2 -0
- package/dist/components/swiper.d.ts.map +1 -0
- package/dist/components/swiper.js +439 -0
- package/dist/components/swiper.js.map +1 -0
- package/dist/components/switch.cjs +214 -0
- package/dist/components/switch.cjs.map +1 -0
- package/dist/components/switch.d.ts +2 -0
- package/dist/components/switch.d.ts.map +1 -0
- package/dist/components/switch.js +212 -0
- package/dist/components/switch.js.map +1 -0
- package/dist/components/table.cjs +695 -0
- package/dist/components/table.cjs.map +1 -0
- package/dist/components/table.d.ts +2 -0
- package/dist/components/table.d.ts.map +1 -0
- package/dist/components/table.js +693 -0
- package/dist/components/table.js.map +1 -0
- package/dist/components/tabs.cjs +330 -0
- package/dist/components/tabs.cjs.map +1 -0
- package/dist/components/tabs.d.ts +3 -0
- package/dist/components/tabs.d.ts.map +1 -0
- package/dist/components/tabs.js +328 -0
- package/dist/components/tabs.js.map +1 -0
- package/dist/components/tag.cjs +151 -0
- package/dist/components/tag.cjs.map +1 -0
- package/dist/components/tag.d.ts +2 -0
- package/dist/components/tag.d.ts.map +1 -0
- package/dist/components/tag.js +149 -0
- package/dist/components/tag.js.map +1 -0
- package/dist/components/textarea.cjs +266 -0
- package/dist/components/textarea.cjs.map +1 -0
- package/dist/components/textarea.d.ts +2 -0
- package/dist/components/textarea.d.ts.map +1 -0
- package/dist/components/textarea.js +264 -0
- package/dist/components/textarea.js.map +1 -0
- package/dist/components/tilt-card.cjs +221 -0
- package/dist/components/tilt-card.cjs.map +1 -0
- package/dist/components/tilt-card.d.ts +2 -0
- package/dist/components/tilt-card.d.ts.map +1 -0
- package/dist/components/tilt-card.js +219 -0
- package/dist/components/tilt-card.js.map +1 -0
- package/dist/components/timeline.cjs +87 -0
- package/dist/components/timeline.cjs.map +1 -0
- package/dist/components/timeline.d.ts +2 -0
- package/dist/components/timeline.d.ts.map +1 -0
- package/dist/components/timeline.js +85 -0
- package/dist/components/timeline.js.map +1 -0
- package/dist/components/toast.cjs +186 -0
- package/dist/components/toast.cjs.map +1 -0
- package/dist/components/toast.d.ts +2 -0
- package/dist/components/toast.d.ts.map +1 -0
- package/dist/components/toast.js +183 -0
- package/dist/components/toast.js.map +1 -0
- package/dist/components/tooltip.cjs +210 -0
- package/dist/components/tooltip.cjs.map +1 -0
- package/dist/components/tooltip.d.ts +2 -0
- package/dist/components/tooltip.d.ts.map +1 -0
- package/dist/components/tooltip.js +208 -0
- package/dist/components/tooltip.js.map +1 -0
- package/dist/components/typewriter-text.cjs +180 -0
- package/dist/components/typewriter-text.cjs.map +1 -0
- package/dist/components/typewriter-text.d.ts +2 -0
- package/dist/components/typewriter-text.d.ts.map +1 -0
- package/dist/components/typewriter-text.js +178 -0
- package/dist/components/typewriter-text.js.map +1 -0
- package/dist/components/upload.cjs +273 -0
- package/dist/components/upload.cjs.map +1 -0
- package/dist/components/upload.d.ts +2 -0
- package/dist/components/upload.d.ts.map +1 -0
- package/dist/components/upload.js +271 -0
- package/dist/components/upload.js.map +1 -0
- package/dist/components/verification-code.cjs +242 -0
- package/dist/components/verification-code.cjs.map +1 -0
- package/dist/components/verification-code.d.ts +2 -0
- package/dist/components/verification-code.d.ts.map +1 -0
- package/dist/components/verification-code.js +240 -0
- package/dist/components/verification-code.js.map +1 -0
- package/dist/components/video-detail-transition.cjs +637 -0
- package/dist/components/video-detail-transition.cjs.map +1 -0
- package/dist/components/video-detail-transition.d.ts +2 -0
- package/dist/components/video-detail-transition.d.ts.map +1 -0
- package/dist/components/video-detail-transition.js +635 -0
- package/dist/components/video-detail-transition.js.map +1 -0
- package/dist/components/video-player.cjs +384 -0
- package/dist/components/video-player.cjs.map +1 -0
- package/dist/components/video-player.d.ts +2 -0
- package/dist/components/video-player.d.ts.map +1 -0
- package/dist/components/video-player.js +382 -0
- package/dist/components/video-player.js.map +1 -0
- package/dist/components/virtual-list.cjs +503 -0
- package/dist/components/virtual-list.cjs.map +1 -0
- package/dist/components/virtual-list.d.ts +2 -0
- package/dist/components/virtual-list.d.ts.map +1 -0
- package/dist/components/virtual-list.js +501 -0
- package/dist/components/virtual-list.js.map +1 -0
- package/dist/components/virtual-select.cjs +538 -0
- package/dist/components/virtual-select.cjs.map +1 -0
- package/dist/components/virtual-select.d.ts +3 -0
- package/dist/components/virtual-select.d.ts.map +1 -0
- package/dist/components/virtual-select.js +536 -0
- package/dist/components/virtual-select.js.map +1 -0
- package/dist/components/virtual-table.cjs +696 -0
- package/dist/components/virtual-table.cjs.map +1 -0
- package/dist/components/virtual-table.d.ts +2 -0
- package/dist/components/virtual-table.d.ts.map +1 -0
- package/dist/components/virtual-table.js +694 -0
- package/dist/components/virtual-table.js.map +1 -0
- package/dist/import-transform-BiXH181o.js +144 -0
- package/dist/import-transform-BiXH181o.js.map +1 -0
- package/dist/import-transform-DLby8nRN.js +142 -0
- package/dist/import-transform-DLby8nRN.js.map +1 -0
- package/dist/import-transform.d.ts +6 -0
- package/dist/import-transform.d.ts.map +1 -0
- package/dist/index.cjs +11361 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.ts +6649 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +11070 -0
- package/dist/index.js.map +1 -0
- package/dist/styles/base.css +455 -0
- package/dist/styles/components/affix.css +15 -0
- package/dist/styles/components/backtop.css +67 -0
- package/dist/styles/components/badge.css +33 -0
- package/dist/styles/components/barcode.css +33 -0
- package/dist/styles/components/breadcrumb.css +15 -0
- package/dist/styles/components/button.css +156 -0
- package/dist/styles/components/calendar.css +174 -0
- package/dist/styles/components/canvas-editor.css +327 -0
- package/dist/styles/components/canvas-image.css +40 -0
- package/dist/styles/components/chat-virtual-list.css +108 -0
- package/dist/styles/components/checkbox.css +318 -0
- package/dist/styles/components/checked.css +318 -0
- package/dist/styles/components/color-picker.css +377 -0
- package/dist/styles/components/comic-reader.css +135 -0
- package/dist/styles/components/config-provider.css +12 -0
- package/dist/styles/components/config-table.css +458 -0
- package/dist/styles/components/countdown.css +14 -0
- package/dist/styles/components/danmaku.css +56 -0
- package/dist/styles/components/date-picker.css +381 -0
- package/dist/styles/components/date-range-picker.css +454 -0
- package/dist/styles/components/design-effect.css +285 -0
- package/dist/styles/components/drag-drop-board.css +87 -0
- package/dist/styles/components/draggable.css +37 -0
- package/dist/styles/components/ellipsis-text.css +59 -0
- package/dist/styles/components/empty.css +168 -0
- package/dist/styles/components/field.css +221 -0
- package/dist/styles/components/file-preview.css +216 -0
- package/dist/styles/components/floating-ball.css +33 -0
- package/dist/styles/components/form.css +221 -0
- package/dist/styles/components/gradient-text.css +54 -0
- package/dist/styles/components/input.css +221 -0
- package/dist/styles/components/lazy-image.css +79 -0
- package/dist/styles/components/live-room.css +226 -0
- package/dist/styles/components/loading.css +98 -0
- package/dist/styles/components/marquee.css +281 -0
- package/dist/styles/components/masonry-virtual-list.css +29 -0
- package/dist/styles/components/modal.css +164 -0
- package/dist/styles/components/multi-column-picker.css +97 -0
- package/dist/styles/components/novel-reader.css +1163 -0
- package/dist/styles/components/number-input.css +221 -0
- package/dist/styles/components/pagination.css +43 -0
- package/dist/styles/components/password-input.css +289 -0
- package/dist/styles/components/popconfirm.css +156 -0
- package/dist/styles/components/popup.css +216 -0
- package/dist/styles/components/progress-bar.css +79 -0
- package/dist/styles/components/qr-code.css +62 -0
- package/dist/styles/components/radio-group.css +318 -0
- package/dist/styles/components/rating.css +260 -0
- package/dist/styles/components/rolling-number.css +37 -0
- package/dist/styles/components/select.css +342 -0
- package/dist/styles/components/signature.css +286 -0
- package/dist/styles/components/skeleton.css +70 -0
- package/dist/styles/components/slide-captcha.css +420 -0
- package/dist/styles/components/swiper.css +199 -0
- package/dist/styles/components/switch.css +294 -0
- package/dist/styles/components/table.css +458 -0
- package/dist/styles/components/tabs.css +156 -0
- package/dist/styles/components/tag.css +90 -0
- package/dist/styles/components/textarea.css +204 -0
- package/dist/styles/components/tilt-card.css +114 -0
- package/dist/styles/components/timeline.css +116 -0
- package/dist/styles/components/toast.css +204 -0
- package/dist/styles/components/tooltip.css +137 -0
- package/dist/styles/components/typewriter-text.css +95 -0
- package/dist/styles/components/upload.css +246 -0
- package/dist/styles/components/verification-code.css +240 -0
- package/dist/styles/components/video-detail-transition.css +169 -0
- package/dist/styles/components/video-player.css +93 -0
- package/dist/styles/components/virtual-list.css +206 -0
- package/dist/styles/components/virtual-select.css +472 -0
- package/dist/styles/components/virtual-table.css +458 -0
- package/dist/styles/components.css +8377 -0
- package/dist/styles/themes/amber.css +19 -0
- package/dist/styles/themes/emerald.css +19 -0
- package/dist/styles/themes/liquid-glass.css +55 -0
- package/dist/styles/themes/minimal.css +19 -0
- package/dist/styles/themes/rose.css +19 -0
- package/dist/styles/themes/sky.css +19 -0
- package/dist/styles/themes/violet.css +19 -0
- package/dist/styles.css +8377 -0
- package/dist/vite.cjs +27 -0
- package/dist/vite.cjs.map +1 -0
- package/dist/vite.d.ts +11 -0
- package/dist/vite.d.ts.map +1 -0
- package/dist/vite.js +22 -0
- package/dist/vite.js.map +1 -0
- package/dist/webpack-loader.cjs +18 -0
- package/dist/webpack-loader.cjs.map +1 -0
- package/dist/webpack-loader.d.ts +9 -0
- package/dist/webpack-loader.d.ts.map +1 -0
- package/dist/webpack-loader.js +14 -0
- package/dist/webpack-loader.js.map +1 -0
- package/dist/webpack.cjs +45 -0
- package/dist/webpack.cjs.map +1 -0
- package/dist/webpack.d.ts +21 -0
- package/dist/webpack.d.ts.map +1 -0
- package/dist/webpack.js +38 -0
- package/dist/webpack.js.map +1 -0
- package/package.json +104 -0
|
@@ -0,0 +1,263 @@
|
|
|
1
|
+
import { defineComponent, ref, watch, h, inject, shallowRef, onMounted, onBeforeUnmount } from 'vue';
|
|
2
|
+
import { getClassComponentsLocale, configureClassComponents } from '@class-kit/core';
|
|
3
|
+
|
|
4
|
+
const formSymbol = /*#__PURE__*/ Symbol("ClassComponentsForm");
|
|
5
|
+
const formInteractivitySymbol = /*#__PURE__*/ Symbol("ClassComponentsFormInteractivity");
|
|
6
|
+
const classIconPaths = {
|
|
7
|
+
chevronDown: ["M6 9l6 6 6-6"],
|
|
8
|
+
chevronLeft: ["M15 18l-6-6 6-6"],
|
|
9
|
+
chevronRight: ["M9 18l6-6-6-6"],
|
|
10
|
+
chevronUp: ["M18 15l-6-6-6 6"],
|
|
11
|
+
check: ["M20 6 9 17l-5-5"],
|
|
12
|
+
settings: [
|
|
13
|
+
"M12 15.5A3.5 3.5 0 1 0 12 8a3.5 3.5 0 0 0 0 7.5Z",
|
|
14
|
+
"M19.4 15a1.8 1.8 0 0 0 .36 1.98l.04.04a2.18 2.18 0 0 1-3.08 3.08l-.04-.04a1.8 1.8 0 0 0-1.98-.36 1.8 1.8 0 0 0-1 1.62V21a2.2 2.2 0 0 1-4.4 0v-.06a1.8 1.8 0 0 0-1-1.62 1.8 1.8 0 0 0-1.98.36l-.04.04A2.18 2.18 0 0 1 3.2 16.64l.04-.04A1.8 1.8 0 0 0 3.6 14.6a1.8 1.8 0 0 0-1.62-1H2a2.2 2.2 0 0 1 0-4.4h.06a1.8 1.8 0 0 0 1.62-1 1.8 1.8 0 0 0-.36-1.98l-.04-.04A2.18 2.18 0 0 1 6.36 3.1l.04.04a1.8 1.8 0 0 0 1.98.36h.08A1.8 1.8 0 0 0 9.4 1.88V1.8a2.2 2.2 0 0 1 4.4 0v.06a1.8 1.8 0 0 0 1 1.62 1.8 1.8 0 0 0 1.98-.36l.04-.04A2.18 2.18 0 0 1 19.9 6.16l-.04.04a1.8 1.8 0 0 0-.36 1.98v.08a1.8 1.8 0 0 0 1.62.94h.08a2.2 2.2 0 0 1 0 4.4h-.06A1.8 1.8 0 0 0 19.4 15Z",
|
|
15
|
+
],
|
|
16
|
+
star: [
|
|
17
|
+
"M12 2l3.09 6.26 6.91 1-5 4.87 1.18 6.87L12 17.77 5.82 21 7 14.13l-5-4.87 6.91-1L12 2Z",
|
|
18
|
+
],
|
|
19
|
+
x: ["M18 6 6 18", "M6 6l12 12"],
|
|
20
|
+
};
|
|
21
|
+
function classIcon(name, className = "cc-icon") {
|
|
22
|
+
return h("svg", {
|
|
23
|
+
"aria-hidden": "true",
|
|
24
|
+
class: className,
|
|
25
|
+
fill: "none",
|
|
26
|
+
focusable: "false",
|
|
27
|
+
viewBox: "0 0 24 24",
|
|
28
|
+
}, classIconPaths[name].map((d) => h("path", {
|
|
29
|
+
d,
|
|
30
|
+
"stroke-linecap": "round",
|
|
31
|
+
"stroke-linejoin": "round",
|
|
32
|
+
"stroke-width": 2,
|
|
33
|
+
stroke: "currentColor",
|
|
34
|
+
})));
|
|
35
|
+
}
|
|
36
|
+
function resolveClassKitThemeName(theme) {
|
|
37
|
+
if (typeof theme === "string")
|
|
38
|
+
return theme;
|
|
39
|
+
return theme?.name ?? "minimal";
|
|
40
|
+
}
|
|
41
|
+
defineComponent({
|
|
42
|
+
name: "ClassConfigProvider",
|
|
43
|
+
props: {
|
|
44
|
+
class: {
|
|
45
|
+
type: String,
|
|
46
|
+
default: "",
|
|
47
|
+
},
|
|
48
|
+
locale: {
|
|
49
|
+
type: Object,
|
|
50
|
+
default: undefined,
|
|
51
|
+
},
|
|
52
|
+
style: {
|
|
53
|
+
type: [String, Object, Array],
|
|
54
|
+
default: undefined,
|
|
55
|
+
},
|
|
56
|
+
theme: {
|
|
57
|
+
type: [String, Object],
|
|
58
|
+
default: "minimal",
|
|
59
|
+
},
|
|
60
|
+
},
|
|
61
|
+
setup(props, { slots }) {
|
|
62
|
+
const version = ref(0);
|
|
63
|
+
const applyConfig = () => {
|
|
64
|
+
configureClassComponents({
|
|
65
|
+
locale: props.locale,
|
|
66
|
+
theme: props.theme,
|
|
67
|
+
});
|
|
68
|
+
version.value += 1;
|
|
69
|
+
};
|
|
70
|
+
watch(() => [props.locale, props.theme], applyConfig, {
|
|
71
|
+
deep: true,
|
|
72
|
+
immediate: true,
|
|
73
|
+
});
|
|
74
|
+
return () => h("div", {
|
|
75
|
+
class: ["cc-config-provider", props.class].filter(Boolean),
|
|
76
|
+
"data-cc-theme": resolveClassKitThemeName(props.theme),
|
|
77
|
+
style: props.style,
|
|
78
|
+
}, [
|
|
79
|
+
h("div", { key: version.value, class: "cc-config-provider__content" }, slots.default?.()),
|
|
80
|
+
]);
|
|
81
|
+
},
|
|
82
|
+
});
|
|
83
|
+
function optionalBooleanProp() {
|
|
84
|
+
return { type: Boolean, default: undefined };
|
|
85
|
+
}
|
|
86
|
+
function useFormInteractivity() {
|
|
87
|
+
return inject(formInteractivitySymbol, {
|
|
88
|
+
disabled: ref(false),
|
|
89
|
+
readOnly: ref(false),
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
function resolveFieldInteractivity(form, disabled, readOnly) {
|
|
93
|
+
const resolvedDisabled = disabled ?? form.disabled.value;
|
|
94
|
+
return {
|
|
95
|
+
disabled: resolvedDisabled,
|
|
96
|
+
readOnly: !resolvedDisabled && (readOnly ?? form.readOnly.value),
|
|
97
|
+
};
|
|
98
|
+
}
|
|
99
|
+
function createEmptyFormState() {
|
|
100
|
+
return {
|
|
101
|
+
dirty: false,
|
|
102
|
+
errors: {},
|
|
103
|
+
fields: {},
|
|
104
|
+
submitCount: 0,
|
|
105
|
+
submitted: false,
|
|
106
|
+
submitting: false,
|
|
107
|
+
touched: false,
|
|
108
|
+
valid: true,
|
|
109
|
+
validating: false,
|
|
110
|
+
values: {},
|
|
111
|
+
};
|
|
112
|
+
}
|
|
113
|
+
function useOptionalField(name, options = {}) {
|
|
114
|
+
const form = inject(formSymbol, null);
|
|
115
|
+
const state = shallowRef(form?.getState() ?? createEmptyFormState());
|
|
116
|
+
const value = ref((name ? form?.getValue(name) : undefined) ?? options.initialValue ?? "");
|
|
117
|
+
let unsubscribeForm;
|
|
118
|
+
let unsubscribeField;
|
|
119
|
+
onMounted(() => {
|
|
120
|
+
if (!form || !name)
|
|
121
|
+
return;
|
|
122
|
+
unsubscribeForm = form.subscribe((nextState) => {
|
|
123
|
+
state.value = nextState;
|
|
124
|
+
});
|
|
125
|
+
unsubscribeField = form.registerField(name, options);
|
|
126
|
+
value.value = (form.getValue(name) ?? "");
|
|
127
|
+
});
|
|
128
|
+
onBeforeUnmount(() => {
|
|
129
|
+
unsubscribeField?.();
|
|
130
|
+
unsubscribeForm?.();
|
|
131
|
+
});
|
|
132
|
+
watch(() => (name ? state.value.fields[name]?.value : undefined), (nextValue) => {
|
|
133
|
+
if (!form || !name)
|
|
134
|
+
return;
|
|
135
|
+
value.value = (nextValue ?? "");
|
|
136
|
+
});
|
|
137
|
+
return {
|
|
138
|
+
value,
|
|
139
|
+
state,
|
|
140
|
+
setValue: async (nextValue) => {
|
|
141
|
+
if (form && name)
|
|
142
|
+
await form.setValue(name, nextValue);
|
|
143
|
+
else
|
|
144
|
+
value.value = nextValue;
|
|
145
|
+
},
|
|
146
|
+
blur: async () => {
|
|
147
|
+
if (form && name)
|
|
148
|
+
await form.blur(name);
|
|
149
|
+
},
|
|
150
|
+
};
|
|
151
|
+
}
|
|
152
|
+
function renderError(errors, errorId) {
|
|
153
|
+
return errors.length > 0
|
|
154
|
+
? h("span", { class: "cc-field__error", id: errorId, role: "alert" }, errors[0])
|
|
155
|
+
: null;
|
|
156
|
+
}
|
|
157
|
+
const ClassInput = /*#__PURE__*/ defineComponent({
|
|
158
|
+
name: "ClassInput",
|
|
159
|
+
inheritAttrs: false,
|
|
160
|
+
props: {
|
|
161
|
+
name: String,
|
|
162
|
+
label: String,
|
|
163
|
+
type: {
|
|
164
|
+
type: String,
|
|
165
|
+
default: "text",
|
|
166
|
+
},
|
|
167
|
+
placeholder: String,
|
|
168
|
+
clearable: {
|
|
169
|
+
type: Boolean,
|
|
170
|
+
default: true,
|
|
171
|
+
},
|
|
172
|
+
clearIcon: {
|
|
173
|
+
type: null,
|
|
174
|
+
default: () => classIcon("x"),
|
|
175
|
+
},
|
|
176
|
+
clearLabel: {
|
|
177
|
+
type: String,
|
|
178
|
+
default: () => getClassComponentsLocale().inputClearLabel,
|
|
179
|
+
},
|
|
180
|
+
disabled: optionalBooleanProp(),
|
|
181
|
+
readOnly: optionalBooleanProp(),
|
|
182
|
+
readonly: optionalBooleanProp(),
|
|
183
|
+
fieldClass: {
|
|
184
|
+
type: String,
|
|
185
|
+
default: "cc-field",
|
|
186
|
+
},
|
|
187
|
+
labelClass: {
|
|
188
|
+
type: String,
|
|
189
|
+
default: "cc-field__label",
|
|
190
|
+
},
|
|
191
|
+
controlClass: {
|
|
192
|
+
type: String,
|
|
193
|
+
default: "cc-field__control",
|
|
194
|
+
},
|
|
195
|
+
rules: Array,
|
|
196
|
+
},
|
|
197
|
+
setup(props, { attrs }) {
|
|
198
|
+
const formInteractivity = useFormInteractivity();
|
|
199
|
+
const field = useOptionalField(props.name, {
|
|
200
|
+
rules: props.rules,
|
|
201
|
+
});
|
|
202
|
+
return () => {
|
|
203
|
+
const fieldState = props.name
|
|
204
|
+
? field.state.value.fields[props.name]
|
|
205
|
+
: undefined;
|
|
206
|
+
const errors = fieldState?.errors ?? [];
|
|
207
|
+
const invalid = errors.length > 0;
|
|
208
|
+
const errorId = `${props.name}-error`;
|
|
209
|
+
const interactivity = resolveFieldInteractivity(formInteractivity, props.disabled, props.readOnly ?? props.readonly);
|
|
210
|
+
const canClear = props.clearable &&
|
|
211
|
+
field.value.value !== "" &&
|
|
212
|
+
!interactivity.disabled &&
|
|
213
|
+
!interactivity.readOnly;
|
|
214
|
+
return h("div", {
|
|
215
|
+
class: props.fieldClass,
|
|
216
|
+
"data-disabled": interactivity.disabled,
|
|
217
|
+
"data-readonly": interactivity.readOnly,
|
|
218
|
+
}, [
|
|
219
|
+
props.label
|
|
220
|
+
? h("span", { class: props.labelClass, id: `${props.name}-label` }, props.label)
|
|
221
|
+
: null,
|
|
222
|
+
h("span", { class: "cc-field__control-wrap" }, [
|
|
223
|
+
h("input", {
|
|
224
|
+
...attrs,
|
|
225
|
+
"aria-describedby": invalid ? errorId : undefined,
|
|
226
|
+
"aria-invalid": invalid,
|
|
227
|
+
class: [
|
|
228
|
+
props.controlClass,
|
|
229
|
+
canClear ? "cc-field__control--clearable" : "",
|
|
230
|
+
],
|
|
231
|
+
"data-readonly": interactivity.readOnly,
|
|
232
|
+
disabled: interactivity.disabled,
|
|
233
|
+
name: props.name,
|
|
234
|
+
placeholder: props.placeholder,
|
|
235
|
+
readonly: interactivity.readOnly,
|
|
236
|
+
type: props.type,
|
|
237
|
+
value: field.value.value,
|
|
238
|
+
onBlur: () => void field.blur(),
|
|
239
|
+
onInput: (event) => {
|
|
240
|
+
if (interactivity.readOnly)
|
|
241
|
+
return;
|
|
242
|
+
const target = event.target;
|
|
243
|
+
void field.setValue(target.value);
|
|
244
|
+
},
|
|
245
|
+
}),
|
|
246
|
+
canClear
|
|
247
|
+
? h("button", {
|
|
248
|
+
"aria-label": props.clearLabel,
|
|
249
|
+
class: "cc-field__clear",
|
|
250
|
+
type: "button",
|
|
251
|
+
onClick: () => void field.setValue(""),
|
|
252
|
+
}, props.clearIcon)
|
|
253
|
+
: null,
|
|
254
|
+
]),
|
|
255
|
+
renderError(errors, errorId),
|
|
256
|
+
]);
|
|
257
|
+
};
|
|
258
|
+
},
|
|
259
|
+
});
|
|
260
|
+
const ClassField = ClassInput;
|
|
261
|
+
|
|
262
|
+
export { ClassField };
|
|
263
|
+
//# sourceMappingURL=field.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"field.js","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,392 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var vue = require('vue');
|
|
4
|
+
var core = require('@class-kit/core');
|
|
5
|
+
|
|
6
|
+
function resolveClassKitThemeName(theme) {
|
|
7
|
+
if (typeof theme === "string")
|
|
8
|
+
return theme;
|
|
9
|
+
return theme?.name ?? "minimal";
|
|
10
|
+
}
|
|
11
|
+
vue.defineComponent({
|
|
12
|
+
name: "ClassConfigProvider",
|
|
13
|
+
props: {
|
|
14
|
+
class: {
|
|
15
|
+
type: String,
|
|
16
|
+
default: "",
|
|
17
|
+
},
|
|
18
|
+
locale: {
|
|
19
|
+
type: Object,
|
|
20
|
+
default: undefined,
|
|
21
|
+
},
|
|
22
|
+
style: {
|
|
23
|
+
type: [String, Object, Array],
|
|
24
|
+
default: undefined,
|
|
25
|
+
},
|
|
26
|
+
theme: {
|
|
27
|
+
type: [String, Object],
|
|
28
|
+
default: "minimal",
|
|
29
|
+
},
|
|
30
|
+
},
|
|
31
|
+
setup(props, { slots }) {
|
|
32
|
+
const version = vue.ref(0);
|
|
33
|
+
const applyConfig = () => {
|
|
34
|
+
core.configureClassComponents({
|
|
35
|
+
locale: props.locale,
|
|
36
|
+
theme: props.theme,
|
|
37
|
+
});
|
|
38
|
+
version.value += 1;
|
|
39
|
+
};
|
|
40
|
+
vue.watch(() => [props.locale, props.theme], applyConfig, {
|
|
41
|
+
deep: true,
|
|
42
|
+
immediate: true,
|
|
43
|
+
});
|
|
44
|
+
return () => vue.h("div", {
|
|
45
|
+
class: ["cc-config-provider", props.class].filter(Boolean),
|
|
46
|
+
"data-cc-theme": resolveClassKitThemeName(props.theme),
|
|
47
|
+
style: props.style,
|
|
48
|
+
}, [
|
|
49
|
+
vue.h("div", { key: version.value, class: "cc-config-provider__content" }, slots.default?.()),
|
|
50
|
+
]);
|
|
51
|
+
},
|
|
52
|
+
});
|
|
53
|
+
async function importOptionalLibrary(name) {
|
|
54
|
+
try {
|
|
55
|
+
return await new Function("name", "return import(name)")(name);
|
|
56
|
+
}
|
|
57
|
+
catch {
|
|
58
|
+
return null;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
function getGlobalLibrary(name) {
|
|
62
|
+
const record = globalThis;
|
|
63
|
+
return record[name] ?? null;
|
|
64
|
+
}
|
|
65
|
+
async function renderExcelFileWithExternalLibrary(file) {
|
|
66
|
+
const xlsx = getGlobalLibrary("XLSX") ?? (await importOptionalLibrary("xlsx"));
|
|
67
|
+
if (!xlsx)
|
|
68
|
+
throw new Error("Excel local preview requires xlsx. Install it or load it from CDN.");
|
|
69
|
+
const workbook = xlsx.read(await file.arrayBuffer(), { type: "array" });
|
|
70
|
+
const sheetName = workbook.SheetNames?.[0];
|
|
71
|
+
const sheet = sheetName ? workbook.Sheets[sheetName] : undefined;
|
|
72
|
+
if (!sheet)
|
|
73
|
+
return '<div class="cc-file-preview__local-empty">Empty workbook</div>';
|
|
74
|
+
return xlsx.utils.sheet_to_html(sheet, { editable: false });
|
|
75
|
+
}
|
|
76
|
+
async function renderWordFileWithExternalLibrary(file) {
|
|
77
|
+
const mammoth = getGlobalLibrary("mammoth") ?? (await importOptionalLibrary("mammoth"));
|
|
78
|
+
if (!mammoth)
|
|
79
|
+
throw new Error("Word local preview requires mammoth. Install it or load it from CDN.");
|
|
80
|
+
const result = await mammoth.convertToHtml({
|
|
81
|
+
arrayBuffer: await file.arrayBuffer(),
|
|
82
|
+
});
|
|
83
|
+
return (result.value ||
|
|
84
|
+
'<div class="cc-file-preview__local-empty">Empty document</div>');
|
|
85
|
+
}
|
|
86
|
+
const ClassFilePreview = /*#__PURE__*/ vue.defineComponent({
|
|
87
|
+
name: "ClassFilePreview",
|
|
88
|
+
inheritAttrs: false,
|
|
89
|
+
props: {
|
|
90
|
+
src: { type: String, default: "" },
|
|
91
|
+
currentPage: Number,
|
|
92
|
+
file: Object,
|
|
93
|
+
fileName: String,
|
|
94
|
+
height: { type: [Number, String], default: 520 },
|
|
95
|
+
localUnsupportedText: String,
|
|
96
|
+
pageCount: Number,
|
|
97
|
+
renderLocalExcel: Function,
|
|
98
|
+
renderLocalPpt: Function,
|
|
99
|
+
renderLocalWord: Function,
|
|
100
|
+
title: String,
|
|
101
|
+
type: String,
|
|
102
|
+
viewerBaseUrl: String,
|
|
103
|
+
className: { type: String, default: "cc-file-preview" },
|
|
104
|
+
},
|
|
105
|
+
emits: ["pageChange", "update:currentPage"],
|
|
106
|
+
setup(props, { attrs, emit }) {
|
|
107
|
+
const innerPage = vue.ref(props.currentPage ?? 1);
|
|
108
|
+
const objectUrl = vue.ref("");
|
|
109
|
+
const localContent = vue.ref("");
|
|
110
|
+
const localError = vue.ref("");
|
|
111
|
+
const previewLoading = vue.ref(true);
|
|
112
|
+
let previewLoadingTimer;
|
|
113
|
+
const showPreviewLoading = () => {
|
|
114
|
+
previewLoading.value = true;
|
|
115
|
+
if (previewLoadingTimer)
|
|
116
|
+
clearTimeout(previewLoadingTimer);
|
|
117
|
+
previewLoadingTimer = setTimeout(() => {
|
|
118
|
+
previewLoading.value = false;
|
|
119
|
+
}, 900);
|
|
120
|
+
};
|
|
121
|
+
const hidePreviewLoading = (delay = 140) => {
|
|
122
|
+
if (previewLoadingTimer)
|
|
123
|
+
clearTimeout(previewLoadingTimer);
|
|
124
|
+
previewLoadingTimer = setTimeout(() => {
|
|
125
|
+
previewLoading.value = false;
|
|
126
|
+
}, delay);
|
|
127
|
+
};
|
|
128
|
+
vue.watch(() => props.file, (file, _oldFile, onCleanup) => {
|
|
129
|
+
if (objectUrl.value) {
|
|
130
|
+
URL.revokeObjectURL(objectUrl.value);
|
|
131
|
+
objectUrl.value = "";
|
|
132
|
+
}
|
|
133
|
+
if (!file)
|
|
134
|
+
return;
|
|
135
|
+
const nextUrl = URL.createObjectURL(file);
|
|
136
|
+
objectUrl.value = nextUrl;
|
|
137
|
+
onCleanup(() => URL.revokeObjectURL(nextUrl));
|
|
138
|
+
}, { immediate: true });
|
|
139
|
+
vue.watch(() => props.currentPage, (value) => {
|
|
140
|
+
if (typeof value === "number")
|
|
141
|
+
innerPage.value = value;
|
|
142
|
+
showPreviewLoading();
|
|
143
|
+
});
|
|
144
|
+
vue.watch(() => [
|
|
145
|
+
props.src,
|
|
146
|
+
props.fileName,
|
|
147
|
+
props.pageCount,
|
|
148
|
+
props.type,
|
|
149
|
+
props.viewerBaseUrl,
|
|
150
|
+
props.file,
|
|
151
|
+
], showPreviewLoading);
|
|
152
|
+
vue.watch(() => [
|
|
153
|
+
props.file,
|
|
154
|
+
props.type,
|
|
155
|
+
props.fileName,
|
|
156
|
+
props.renderLocalExcel,
|
|
157
|
+
props.renderLocalPpt,
|
|
158
|
+
props.renderLocalWord,
|
|
159
|
+
], async () => {
|
|
160
|
+
const file = props.file;
|
|
161
|
+
if (!file) {
|
|
162
|
+
localContent.value = "";
|
|
163
|
+
localError.value = "";
|
|
164
|
+
return;
|
|
165
|
+
}
|
|
166
|
+
const state = new core.FilePreviewController({
|
|
167
|
+
currentPage: props.currentPage ?? innerPage.value,
|
|
168
|
+
fileName: props.fileName ?? file.name,
|
|
169
|
+
pageCount: props.pageCount,
|
|
170
|
+
src: objectUrl.value || props.src || "",
|
|
171
|
+
type: props.type,
|
|
172
|
+
viewerBaseUrl: props.viewerBaseUrl,
|
|
173
|
+
}).getState();
|
|
174
|
+
if (state.type !== "excel" &&
|
|
175
|
+
state.type !== "ppt" &&
|
|
176
|
+
state.type !== "word") {
|
|
177
|
+
localContent.value = "";
|
|
178
|
+
localError.value = "";
|
|
179
|
+
return;
|
|
180
|
+
}
|
|
181
|
+
showPreviewLoading();
|
|
182
|
+
localContent.value = "";
|
|
183
|
+
localError.value = "";
|
|
184
|
+
try {
|
|
185
|
+
const renderer = state.type === "excel"
|
|
186
|
+
? (props.renderLocalExcel ?? renderExcelFileWithExternalLibrary)
|
|
187
|
+
: state.type === "word"
|
|
188
|
+
? (props.renderLocalWord ?? renderWordFileWithExternalLibrary)
|
|
189
|
+
: props.renderLocalPpt;
|
|
190
|
+
if (!renderer)
|
|
191
|
+
throw new Error("PPT/PPTX 本地预览需要传入 renderLocalPpt,或先转换成 PDF 文件后按 PDF 预览。");
|
|
192
|
+
localContent.value = await renderer(file, state);
|
|
193
|
+
hidePreviewLoading();
|
|
194
|
+
}
|
|
195
|
+
catch (error) {
|
|
196
|
+
localError.value =
|
|
197
|
+
error instanceof Error ? error.message : String(error);
|
|
198
|
+
previewLoading.value = false;
|
|
199
|
+
}
|
|
200
|
+
}, { immediate: true });
|
|
201
|
+
vue.onMounted(showPreviewLoading);
|
|
202
|
+
vue.onBeforeUnmount(() => {
|
|
203
|
+
if (previewLoadingTimer)
|
|
204
|
+
clearTimeout(previewLoadingTimer);
|
|
205
|
+
if (objectUrl.value)
|
|
206
|
+
URL.revokeObjectURL(objectUrl.value);
|
|
207
|
+
});
|
|
208
|
+
return () => {
|
|
209
|
+
const activePage = props.currentPage ?? innerPage.value;
|
|
210
|
+
const controller = new core.FilePreviewController({
|
|
211
|
+
currentPage: activePage,
|
|
212
|
+
fileName: props.fileName ?? props.file?.name,
|
|
213
|
+
pageCount: props.pageCount,
|
|
214
|
+
src: objectUrl.value || props.src || "",
|
|
215
|
+
type: props.type,
|
|
216
|
+
viewerBaseUrl: props.viewerBaseUrl,
|
|
217
|
+
});
|
|
218
|
+
const state = controller.getState();
|
|
219
|
+
const isLocalOfficeFile = Boolean(props.file &&
|
|
220
|
+
(state.type === "excel" ||
|
|
221
|
+
state.type === "ppt" ||
|
|
222
|
+
state.type === "word"));
|
|
223
|
+
const commitPage = (page) => {
|
|
224
|
+
showPreviewLoading();
|
|
225
|
+
const next = controller.goTo(page);
|
|
226
|
+
if (props.currentPage === undefined)
|
|
227
|
+
innerPage.value = next.currentPage;
|
|
228
|
+
emit("update:currentPage", next.currentPage);
|
|
229
|
+
emit("pageChange", next.currentPage);
|
|
230
|
+
};
|
|
231
|
+
const canPage = state.mode === "pdf" && Boolean(state.pageCount && state.pageCount > 1);
|
|
232
|
+
const canPrevious = canPage && state.currentPage > 1;
|
|
233
|
+
const canNext = canPage &&
|
|
234
|
+
state.pageCount !== undefined &&
|
|
235
|
+
state.currentPage < state.pageCount;
|
|
236
|
+
const inheritedStyle = attrs.style;
|
|
237
|
+
return vue.h("div", {
|
|
238
|
+
...attrs,
|
|
239
|
+
class: props.className,
|
|
240
|
+
"data-mode": state.mode,
|
|
241
|
+
"data-type": state.type,
|
|
242
|
+
style: [
|
|
243
|
+
inheritedStyle,
|
|
244
|
+
{
|
|
245
|
+
"--cc-file-preview-height": typeof props.height === "number"
|
|
246
|
+
? `${props.height}px`
|
|
247
|
+
: props.height,
|
|
248
|
+
},
|
|
249
|
+
],
|
|
250
|
+
}, [
|
|
251
|
+
vue.h("div", { class: "cc-file-preview__toolbar" }, [
|
|
252
|
+
vue.h("div", { class: "cc-file-preview__meta" }, [
|
|
253
|
+
vue.h("span", { class: "cc-file-preview__badge" }, state.type.toUpperCase()),
|
|
254
|
+
vue.h("strong", null, props.title ?? state.title),
|
|
255
|
+
vue.h("small", null, state.mode === "office"
|
|
256
|
+
? "Office viewer"
|
|
257
|
+
: state.mode === "pdf"
|
|
258
|
+
? "PDF preview"
|
|
259
|
+
: "Unsupported file"),
|
|
260
|
+
]),
|
|
261
|
+
vue.h("div", { class: "cc-file-preview__actions" }, [
|
|
262
|
+
canPage
|
|
263
|
+
? vue.h("span", { class: "cc-file-preview__pager" }, [
|
|
264
|
+
vue.h("button", {
|
|
265
|
+
disabled: !canPrevious,
|
|
266
|
+
type: "button",
|
|
267
|
+
onClick: () => commitPage(state.currentPage - 1),
|
|
268
|
+
}, "上一页"),
|
|
269
|
+
vue.h("span", null, `${state.currentPage} / ${state.pageCount}`),
|
|
270
|
+
vue.h("button", {
|
|
271
|
+
disabled: !canNext,
|
|
272
|
+
type: "button",
|
|
273
|
+
onClick: () => commitPage(state.currentPage + 1),
|
|
274
|
+
}, "下一页"),
|
|
275
|
+
])
|
|
276
|
+
: null,
|
|
277
|
+
state.src
|
|
278
|
+
? vue.h("a", { href: state.src, rel: "noreferrer", target: "_blank" }, "打开源文件")
|
|
279
|
+
: null,
|
|
280
|
+
]),
|
|
281
|
+
]),
|
|
282
|
+
vue.h("div", {
|
|
283
|
+
class: "cc-file-preview__body",
|
|
284
|
+
"data-loading": state.mode !== "unsupported" && previewLoading.value,
|
|
285
|
+
}, [
|
|
286
|
+
state.mode === "unsupported" || !state.src
|
|
287
|
+
? vue.h("div", { class: "cc-file-preview__empty" }, [
|
|
288
|
+
vue.h("strong", null, "暂不支持预览该文件"),
|
|
289
|
+
vue.h("span", null, "请检查文件类型,或通过“打开源文件”在新窗口查看。"),
|
|
290
|
+
])
|
|
291
|
+
: isLocalOfficeFile
|
|
292
|
+
? vue.h("div", { class: "cc-file-preview__local" }, [
|
|
293
|
+
localError.value
|
|
294
|
+
? vue.h("div", { class: "cc-file-preview__empty" }, [
|
|
295
|
+
vue.h("strong", null, "本地预览依赖未就绪"),
|
|
296
|
+
vue.h("span", null, props.localUnsupportedText ?? localError.value),
|
|
297
|
+
])
|
|
298
|
+
: vue.h("div", {
|
|
299
|
+
class: "cc-file-preview__local-html",
|
|
300
|
+
innerHTML: localContent.value,
|
|
301
|
+
}),
|
|
302
|
+
vue.h("div", {
|
|
303
|
+
"aria-hidden": "true",
|
|
304
|
+
class: "cc-file-preview__skeleton",
|
|
305
|
+
}, [
|
|
306
|
+
vue.h(ClassLoading, {
|
|
307
|
+
className: "cc-loading cc-file-preview__loading",
|
|
308
|
+
text: core.getClassComponentsLocale().loadingText,
|
|
309
|
+
}),
|
|
310
|
+
]),
|
|
311
|
+
])
|
|
312
|
+
: [
|
|
313
|
+
vue.h("iframe", {
|
|
314
|
+
class: "cc-file-preview__frame",
|
|
315
|
+
key: state.previewUrl,
|
|
316
|
+
src: state.previewUrl,
|
|
317
|
+
title: props.title ?? state.title,
|
|
318
|
+
onLoad: () => hidePreviewLoading(),
|
|
319
|
+
}),
|
|
320
|
+
vue.h("div", {
|
|
321
|
+
"aria-hidden": "true",
|
|
322
|
+
class: "cc-file-preview__skeleton",
|
|
323
|
+
}, [
|
|
324
|
+
vue.h(ClassLoading, {
|
|
325
|
+
className: "cc-loading cc-file-preview__loading",
|
|
326
|
+
text: core.getClassComponentsLocale().loadingText,
|
|
327
|
+
}),
|
|
328
|
+
]),
|
|
329
|
+
],
|
|
330
|
+
]),
|
|
331
|
+
state.mode === "office"
|
|
332
|
+
? vue.h("p", { class: "cc-file-preview__hint" }, props.file
|
|
333
|
+
? "本地 Word/Excel 预览依赖用户项目安装或外链加载 mammoth/xlsx;PPT/PPTX 建议转换成 PDF 或传入自定义 renderLocalPpt。"
|
|
334
|
+
: "Word、Excel、PPT 预览依赖在线 viewer,文件地址需要可被 viewer 服务访问;组件不内置第三方解析库。")
|
|
335
|
+
: null,
|
|
336
|
+
]);
|
|
337
|
+
};
|
|
338
|
+
},
|
|
339
|
+
});
|
|
340
|
+
function renderDefaultLoadingIndicator() {
|
|
341
|
+
return vue.h("svg", {
|
|
342
|
+
class: "cc-loading__bolt",
|
|
343
|
+
focusable: "false",
|
|
344
|
+
viewBox: "0 0 96 96",
|
|
345
|
+
}, [
|
|
346
|
+
vue.h("ellipse", {
|
|
347
|
+
class: "cc-loading__bolt-shadow",
|
|
348
|
+
cx: "51",
|
|
349
|
+
cy: "74",
|
|
350
|
+
rx: "28",
|
|
351
|
+
ry: "8",
|
|
352
|
+
}),
|
|
353
|
+
vue.h("path", {
|
|
354
|
+
class: "cc-loading__bolt-side",
|
|
355
|
+
d: "M54 8 26 48h20L34 82l39-46H51L65 8Z",
|
|
356
|
+
}),
|
|
357
|
+
vue.h("path", {
|
|
358
|
+
class: "cc-loading__bolt-face",
|
|
359
|
+
d: "M48 6 20 46h20L28 80l39-46H45L59 6Z",
|
|
360
|
+
}),
|
|
361
|
+
vue.h("path", {
|
|
362
|
+
class: "cc-loading__bolt-highlight",
|
|
363
|
+
d: "M48 14 31 39h17L39 62l18-24H43l10-24Z",
|
|
364
|
+
}),
|
|
365
|
+
]);
|
|
366
|
+
}
|
|
367
|
+
const ClassLoading = /*#__PURE__*/ vue.defineComponent({
|
|
368
|
+
name: "ClassLoading",
|
|
369
|
+
props: {
|
|
370
|
+
className: String,
|
|
371
|
+
text: {
|
|
372
|
+
type: String,
|
|
373
|
+
default: () => core.getClassComponentsLocale().loadingText,
|
|
374
|
+
},
|
|
375
|
+
},
|
|
376
|
+
setup(props, { attrs, slots }) {
|
|
377
|
+
return () => vue.h("div", {
|
|
378
|
+
...attrs,
|
|
379
|
+
"aria-live": "polite",
|
|
380
|
+
class: ["cc-loading", props.className],
|
|
381
|
+
role: "status",
|
|
382
|
+
}, [
|
|
383
|
+
vue.h("span", { "aria-hidden": "true", class: "cc-loading__indicator" }, slots.indicator?.() ?? renderDefaultLoadingIndicator()),
|
|
384
|
+
props.text
|
|
385
|
+
? vue.h("span", { class: "cc-loading__text" }, props.text)
|
|
386
|
+
: null,
|
|
387
|
+
]);
|
|
388
|
+
},
|
|
389
|
+
});
|
|
390
|
+
|
|
391
|
+
exports.ClassFilePreview = ClassFilePreview;
|
|
392
|
+
//# sourceMappingURL=file-preview.cjs.map
|