vue-devui 1.0.0-alpha.4 → 1.0.0-beta.10
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/accordion/index.d.ts +7 -0
- package/accordion/index.es.js +237 -1
- package/accordion/index.umd.js +1 -1
- package/accordion/style.css +1 -1
- package/alert/index.d.ts +7 -0
- package/alert/index.es.js +175 -1
- package/alert/index.umd.js +1 -1
- package/alert/style.css +1 -1
- package/anchor/index.d.ts +7 -0
- package/anchor/index.es.js +263 -1
- package/anchor/index.umd.js +1 -1
- package/avatar/index.d.ts +7 -0
- package/avatar/index.es.js +301 -1
- package/avatar/index.umd.js +1 -1
- package/back-top/index.d.ts +7 -0
- package/back-top/index.es.js +128 -0
- package/back-top/index.umd.js +1 -0
- package/back-top/package.json +7 -0
- package/back-top/style.css +1 -0
- package/badge/index.d.ts +7 -0
- package/badge/index.es.js +95 -1
- package/badge/index.umd.js +1 -1
- package/breadcrumb/index.d.ts +7 -0
- package/breadcrumb/index.es.js +127 -1
- package/breadcrumb/index.umd.js +1 -1
- package/breadcrumb/style.css +1 -1
- package/button/index.d.ts +7 -0
- package/button/index.es.js +190 -1
- package/button/index.umd.js +1 -1
- package/card/index.d.ts +7 -0
- package/card/index.es.js +61 -1
- package/card/index.umd.js +1 -1
- package/carousel/index.d.ts +7 -0
- package/carousel/index.es.js +329 -1
- package/carousel/index.umd.js +1 -1
- package/cascader/index.d.ts +7 -0
- package/cascader/index.es.js +1343 -1
- package/cascader/index.umd.js +1 -1
- package/cascader/style.css +1 -1
- package/checkbox/index.d.ts +7 -0
- package/checkbox/index.es.js +377 -1
- package/checkbox/index.umd.js +1 -1
- package/comment/index.d.ts +7 -0
- package/comment/index.es.js +85 -0
- package/comment/index.umd.js +1 -0
- package/comment/package.json +7 -0
- package/comment/style.css +1 -0
- package/countdown/index.d.ts +7 -0
- package/countdown/index.es.js +176 -0
- package/countdown/index.umd.js +1 -0
- package/countdown/package.json +7 -0
- package/countdown/style.css +1 -0
- package/date-picker/index.d.ts +7 -0
- package/date-picker/index.es.js +1172 -1
- package/date-picker/index.umd.js +1 -1
- package/date-picker/style.css +1 -1
- package/dragdrop/index.d.ts +7 -0
- package/dragdrop/index.es.js +32 -0
- package/dragdrop/index.umd.js +1 -0
- package/dragdrop/package.json +7 -0
- package/drawer/index.d.ts +7 -0
- package/drawer/index.es.js +288 -0
- package/drawer/index.umd.js +1 -0
- package/drawer/package.json +7 -0
- package/drawer/style.css +1 -0
- package/dropdown/index.d.ts +7 -0
- package/dropdown/index.es.js +527 -0
- package/dropdown/index.umd.js +1 -0
- package/dropdown/package.json +7 -0
- package/dropdown/style.css +1 -0
- package/editable-select/index.d.ts +7 -0
- package/editable-select/index.es.js +5793 -1
- package/editable-select/index.umd.js +27 -1
- package/editable-select/style.css +1 -1
- package/form/index.d.ts +7 -0
- package/form/index.es.js +2244 -0
- package/form/index.umd.js +1 -0
- package/form/package.json +7 -0
- package/form/style.css +1 -0
- package/fullscreen/index.d.ts +7 -0
- package/fullscreen/index.es.js +163 -1
- package/fullscreen/index.umd.js +1 -1
- package/gantt/index.d.ts +7 -0
- package/gantt/index.es.js +535 -0
- package/gantt/index.umd.js +1 -0
- package/gantt/package.json +7 -0
- package/gantt/style.css +1 -0
- package/grid/index.d.ts +7 -0
- package/grid/index.es.js +269 -0
- package/grid/index.umd.js +1 -0
- package/grid/package.json +7 -0
- package/grid/style.css +1 -0
- package/icon/index.d.ts +7 -0
- package/icon/index.es.js +75 -1
- package/icon/index.umd.js +1 -1
- package/image-preview/index.d.ts +7 -0
- package/image-preview/index.es.js +480 -1
- package/image-preview/index.umd.js +1 -1
- package/image-preview/style.css +1 -1
- package/index.d.ts +7 -0
- package/input/index.d.ts +7 -0
- package/input/index.es.js +190 -1
- package/input/index.umd.js +1 -1
- package/input-icon/index.d.ts +7 -0
- package/input-icon/index.es.js +332 -0
- package/input-icon/index.umd.js +1 -0
- package/input-icon/package.json +7 -0
- package/input-icon/style.css +1 -0
- package/input-number/index.d.ts +7 -0
- package/input-number/index.es.js +240 -1
- package/input-number/index.umd.js +1 -1
- package/input-number/style.css +1 -1
- package/layout/index.d.ts +7 -0
- package/layout/index.es.js +100 -0
- package/layout/index.umd.js +1 -0
- package/layout/package.json +7 -0
- package/layout/style.css +1 -0
- package/loading/index.d.ts +7 -0
- package/loading/index.es.js +256 -1
- package/loading/index.umd.js +1 -1
- package/modal/index.d.ts +7 -0
- package/modal/index.es.js +1027 -1
- package/modal/index.umd.js +1 -1
- package/modal/style.css +1 -1
- package/nav-sprite/index.d.ts +7 -0
- package/nav-sprite/index.es.js +742 -0
- package/nav-sprite/index.umd.js +1 -0
- package/nav-sprite/package.json +7 -0
- package/nuxt/components/Accordion.js +3 -0
- package/nuxt/components/Alert.js +3 -0
- package/nuxt/components/Anchor.js +3 -0
- package/nuxt/components/Aside.js +3 -0
- package/nuxt/components/Avatar.js +3 -0
- package/nuxt/components/BackTop.js +3 -0
- package/nuxt/components/Badge.js +3 -0
- package/nuxt/components/Breadcrumb.js +3 -0
- package/nuxt/components/Button.js +3 -0
- package/nuxt/components/Card.js +3 -0
- package/nuxt/components/Carousel.js +3 -0
- package/nuxt/components/Cascader.js +3 -0
- package/nuxt/components/Checkbox.js +3 -0
- package/nuxt/components/Col.js +3 -0
- package/nuxt/components/Column.js +3 -0
- package/nuxt/components/Comment.js +3 -0
- package/nuxt/components/Content.js +3 -0
- package/nuxt/components/Countdown.js +3 -0
- package/nuxt/components/DatePicker.js +3 -0
- package/nuxt/components/Drawer.js +3 -0
- package/nuxt/components/Dropdown.js +3 -0
- package/nuxt/components/EditableSelect.js +3 -0
- package/nuxt/components/FixedOverlay.js +3 -0
- package/nuxt/components/FlexibleOverlay.js +3 -0
- package/nuxt/components/Footer.js +3 -0
- package/nuxt/components/Form.js +3 -0
- package/nuxt/components/FormControl.js +3 -0
- package/nuxt/components/FormItem.js +3 -0
- package/nuxt/components/FormLabel.js +3 -0
- package/nuxt/components/FormOperation.js +3 -0
- package/nuxt/components/Fullscreen.js +3 -0
- package/nuxt/components/Gantt.js +3 -0
- package/nuxt/components/Header.js +3 -0
- package/nuxt/components/Icon.js +2 -0
- package/nuxt/components/ImagePreviewService.js +3 -0
- package/nuxt/components/Input.js +3 -0
- package/nuxt/components/InputIcon.js +3 -0
- package/nuxt/components/InputNumber.js +3 -0
- package/nuxt/components/Layout.js +3 -0
- package/nuxt/components/Loading.js +3 -0
- package/nuxt/components/LoadingService.js +3 -0
- package/nuxt/components/Modal.js +3 -0
- package/nuxt/components/MultiUpload.js +3 -0
- package/nuxt/components/NavSprite.js +2 -0
- package/nuxt/components/Pagination.js +3 -0
- package/nuxt/components/Panel.js +3 -0
- package/nuxt/components/Popover.js +3 -0
- package/nuxt/components/Progress.js +3 -0
- package/nuxt/components/QuadrantDiagram.js +3 -0
- package/nuxt/components/Radio.js +3 -0
- package/nuxt/components/RadioGroup.js +3 -0
- package/nuxt/components/Rate.js +3 -0
- package/nuxt/components/ReadTip.js +3 -0
- package/nuxt/components/Result.js +3 -0
- package/nuxt/components/Row.js +3 -0
- package/nuxt/components/Search.js +3 -0
- package/nuxt/components/Select.js +3 -0
- package/nuxt/components/Skeleton.js +3 -0
- package/nuxt/components/SkeletonItem.js +3 -0
- package/nuxt/components/Slider.js +3 -0
- package/nuxt/components/Splitter.js +3 -0
- package/nuxt/components/Statistic.js +3 -0
- package/nuxt/components/Status.js +3 -0
- package/nuxt/components/StepsGuide.js +3 -0
- package/nuxt/components/StickSlider.js +3 -0
- package/nuxt/components/Sticky.js +2 -0
- package/nuxt/components/Switch.js +3 -0
- package/nuxt/components/Table.js +3 -0
- package/nuxt/components/Tabs.js +3 -0
- package/nuxt/components/Tag.js +3 -0
- package/nuxt/components/TagInput.js +3 -0
- package/nuxt/components/Textarea.js +3 -0
- package/nuxt/components/TimeAxis.js +3 -0
- package/nuxt/components/TimeAxisItem.js +3 -0
- package/nuxt/components/TimePicker.js +3 -0
- package/nuxt/components/Toast.js +3 -0
- package/nuxt/components/ToastService.js +3 -0
- package/nuxt/components/Tooltip.js +3 -0
- package/nuxt/components/Transfer.js +3 -0
- package/nuxt/components/Tree.js +3 -0
- package/nuxt/components/TreeSelect.js +3 -0
- package/nuxt/components/Upload.js +3 -0
- package/nuxt/components/buttonProps.js +3 -0
- package/nuxt/index.js +13 -0
- package/overlay/index.d.ts +7 -0
- package/overlay/index.es.js +368 -1
- package/overlay/index.umd.js +1 -1
- package/overlay/style.css +1 -1
- package/package.json +8 -33
- package/pagination/index.d.ts +7 -0
- package/pagination/index.es.js +642 -1
- package/pagination/index.umd.js +1 -1
- package/panel/index.d.ts +7 -0
- package/panel/index.es.js +205 -1
- package/panel/index.umd.js +1 -1
- package/panel/style.css +1 -1
- package/popover/index.d.ts +7 -0
- package/popover/index.es.js +236 -1
- package/popover/index.umd.js +1 -1
- package/popover/style.css +1 -1
- package/progress/index.d.ts +7 -0
- package/progress/index.es.js +153 -1
- package/progress/index.umd.js +3 -1
- package/quadrant-diagram/index.d.ts +7 -0
- package/quadrant-diagram/index.es.js +489 -1
- package/quadrant-diagram/index.umd.js +1 -1
- package/radio/index.d.ts +7 -0
- package/radio/index.es.js +225 -1
- package/radio/index.umd.js +1 -1
- package/rate/index.d.ts +7 -0
- package/rate/index.es.js +220 -1
- package/rate/index.umd.js +1 -1
- package/read-tip/index.d.ts +7 -0
- package/read-tip/index.es.js +258 -0
- package/read-tip/index.umd.js +1 -0
- package/read-tip/package.json +7 -0
- package/read-tip/style.css +1 -0
- package/result/index.d.ts +7 -0
- package/result/index.es.js +119 -0
- package/result/index.umd.js +1 -0
- package/result/package.json +7 -0
- package/result/style.css +1 -0
- package/ripple/index.d.ts +7 -0
- package/ripple/index.es.js +181 -1
- package/ripple/index.umd.js +1 -1
- package/search/index.d.ts +7 -0
- package/search/index.es.js +543 -1
- package/search/index.umd.js +1 -1
- package/select/index.d.ts +7 -0
- package/select/index.es.js +706 -1
- package/select/index.umd.js +1 -1
- package/skeleton/index.d.ts +7 -0
- package/skeleton/index.es.js +297 -1
- package/skeleton/index.umd.js +1 -1
- package/skeleton/style.css +1 -1
- package/slider/index.d.ts +7 -0
- package/slider/index.es.js +199 -1
- package/slider/index.umd.js +1 -1
- package/slider/style.css +1 -1
- package/splitter/index.d.ts +7 -0
- package/splitter/index.es.js +636 -1
- package/splitter/index.umd.js +1 -1
- package/statistic/index.d.ts +7 -0
- package/statistic/index.es.js +280 -0
- package/statistic/index.umd.js +1 -0
- package/statistic/package.json +7 -0
- package/statistic/style.css +1 -0
- package/status/index.d.ts +7 -0
- package/status/index.es.js +42 -1
- package/status/index.umd.js +1 -1
- package/steps-guide/index.d.ts +7 -0
- package/steps-guide/index.es.js +239 -1
- package/steps-guide/index.umd.js +1 -1
- package/steps-guide/style.css +1 -1
- package/sticky/index.d.ts +7 -0
- package/sticky/index.es.js +197 -1
- package/sticky/index.umd.js +1 -1
- package/style.css +1 -1
- package/switch/index.d.ts +7 -0
- package/switch/index.es.js +100 -1
- package/switch/index.umd.js +1 -1
- package/switch/style.css +1 -1
- package/table/index.d.ts +7 -0
- package/table/index.es.js +1626 -1
- package/table/index.umd.js +1 -1
- package/table/style.css +1 -1
- package/tabs/index.d.ts +7 -0
- package/tabs/index.es.js +195 -1
- package/tabs/index.umd.js +1 -1
- package/tabs/style.css +1 -1
- package/tag/index.d.ts +7 -0
- package/tag/index.es.js +131 -0
- package/tag/index.umd.js +1 -0
- package/tag/package.json +7 -0
- package/tag/style.css +1 -0
- package/tag-input/index.d.ts +7 -0
- package/tag-input/index.es.js +329 -1
- package/tag-input/index.umd.js +1 -1
- package/textarea/index.d.ts +7 -0
- package/textarea/index.es.js +132 -0
- package/textarea/index.umd.js +1 -0
- package/textarea/package.json +7 -0
- package/textarea/style.css +1 -0
- package/time-axis/index.d.ts +7 -0
- package/time-axis/index.es.js +299 -0
- package/time-axis/index.umd.js +1 -0
- package/time-axis/package.json +7 -0
- package/time-axis/style.css +1 -0
- package/time-picker/index.d.ts +7 -0
- package/time-picker/index.es.js +1053 -1
- package/time-picker/index.umd.js +1 -1
- package/time-picker/style.css +1 -1
- package/toast/index.d.ts +7 -0
- package/toast/index.es.js +2060 -1
- package/toast/index.umd.js +1 -1
- package/toast/style.css +1 -1
- package/tooltip/index.d.ts +7 -0
- package/tooltip/index.es.js +171 -1
- package/tooltip/index.umd.js +1 -1
- package/transfer/index.d.ts +7 -0
- package/transfer/index.es.js +1725 -1
- package/transfer/index.umd.js +1 -1
- package/transfer/style.css +1 -1
- package/tree/index.d.ts +7 -0
- package/tree/index.es.js +907 -1
- package/tree/index.umd.js +1 -1
- package/tree/style.css +1 -1
- package/tree-select/index.d.ts +7 -0
- package/tree-select/index.es.js +528 -0
- package/tree-select/index.umd.js +1 -0
- package/tree-select/package.json +7 -0
- package/tree-select/style.css +1 -0
- package/upload/index.d.ts +7 -0
- package/upload/index.es.js +3179 -1
- package/upload/index.umd.js +1 -1
- package/upload/style.css +1 -1
- package/vue-devui.es.js +27755 -1
- package/vue-devui.umd.js +29 -1
|
@@ -1 +1,480 @@
|
|
|
1
|
-
var e=Object.defineProperty,t=("undefined"!=typeof require&&require,(t,o,i)=>(((t,o,i)=>{o in t?e(t,o,{enumerable:!0,configurable:!0,writable:!0,value:i}):t[o]=i})(t,"symbol"!=typeof o?o+"":o,i),i));import{defineComponent as o,ref as i,computed as s,onMounted as l,createVNode as n,createTextVNode as r,createApp as h}from"vue";const a={url:{type:String,default:""},previewUrlList:{type:Array,default:()=>[]}};class u{constructor(e,o={}){t(this,"el"),t(this,"oTransformX",0),t(this,"oTransformY",0),t(this,"transformX"),t(this,"transformY"),t(this,"zoom"),t(this,"rotate"),t(this,"STEP",.25),t(this,"MIN_SCALE",.2),t(this,"MAX_SCALE",2.5),t(this,"TRANSFORMX",0),t(this,"TRANSFORMY",0),t(this,"ZOOM",1),t(this,"ROTATE",0),this.el=e,this.transformX=o.transformX||this.TRANSFORMX,this.transformY=o.transformY||this.TRANSFORMY,this.zoom=o.zoom||this.ZOOM,this.rotate=o.rotate||this.ROTATE,this.handleDefaultDraggable(),this.onDraggable(),this.onMouseWheel()}handleDefaultDraggable(){document.body.ondragstart=()=>(window.event.returnValue=!1,!1)}onDraggable(){this.el.onmousedown=e=>{const t=e.clientX,o=e.clientY;document.onmousemove=e=>{const i=e.clientX-t,s=e.clientY-o;this.transformX=this.oTransformX+i,this.transformY=this.oTransformY+s,this.el.style.cursor="grabbing",this.setPosition()}},document.onmouseup=()=>{document.onmousemove=null,this.oTransformX=this.transformX,this.oTransformY=this.transformY,this.el.style.cursor="grab"}}onMouseWheel(){const e=this.throttle(this.setMouseWheel,100);this.el.onmousewheel=t=>{const o=-t.wheelDelta||t.deltaY||t.detail;e(o)}}throttle(e,t){let o=null;return(...i)=>{o||setTimeout((()=>{o=null,e.apply(this,i)}),t)}}setMouseWheel(e){if(e<0){if(this.zoom>=this.MAX_SCALE)return void(this.el.style.cursor="not-allowed");this.el.style.cursor="zoom-in",this.setZoomIn(this.STEP)}else{if(this.zoom<=this.MIN_SCALE)return void(this.el.style.cursor="not-allowed");this.el.style.cursor="zoom-out",this.setZoomOut(this.STEP)}this.setPosition()}setZoomIn(e=this.STEP){this.zoom=Math.min(this.MAX_SCALE,this.zoom+e),this.setPosition()}setZoomOut(e=this.STEP){this.zoom=Math.max(this.MIN_SCALE,this.zoom-e),this.setPosition()}setZoomBest(){this.reset(),this.setPosition()}setZoomOriginal(){this.reset(),this.setPosition()}setRotate(){this.rotate+=.25,this.setPosition()}reset(){this.transformX=this.TRANSFORMX,this.transformY=this.TRANSFORMY,this.zoom=this.ZOOM}setPosition(){this.el.style.transform=`translate(${this.transformX}px, ${this.transformY}px) scale(${this.zoom}) rotate(${this.rotate}turn)`}}var d=o({name:"DImagePreview",props:a,emits:[],setup(e){let t=null;const o=i(0),h=s((()=>e.previewUrlList[o.value]));function a(){o.value=o.value<=0?e.previewUrlList.length-1:o.value-1}function d(){o.value=o.value>=e.previewUrlList.length-1?0:o.value+1}function f(){v.close()}function m(){t.setZoomIn()}function c(){t.setZoomOut()}function L(){t.setRotate()}function g(){t.setZoomBest()}function p(){t.setZoomOriginal()}return l((()=>{o.value=e.previewUrlList.findIndex((t=>t===e.url)),function(){const e=document.querySelector(".devui-image-preview-main-image");t=new u(e)}()})),()=>n("div",{class:"devui-image-preview"},[n("img",{class:"devui-image-preview-main-image",src:h.value},null),n("button",{class:"devui-image-preview-close-btn",onClick:f},[n("svg",{width:"16px",height:"16px",viewBox:"0 0 16 16",version:"1.1"},[n("g",{stroke:"none","stroke-width":"1",fill:"none","fill-rule":"evenodd"},[n("polygon",{fill:"#293040","fill-rule":"nonzero",points:"8 6.58578644 12.2426407 2.34314575 13.6568542 3.75735931 9.41421356 8 13.6568542 12.2426407 12.2426407 13.6568542 8 9.41421356 3.75735931 13.6568542 2.34314575 12.2426407 6.58578644 8 2.34314575 3.75735931 3.75735931 2.34314575"},null)])])]),n("button",{class:"devui-image-preview-arrow-left",onClick:a},[n("svg",{width:"18px",height:"18px",viewBox:"0 0 16 16",version:"1.1"},[n("g",{stroke:"none","stroke-width":"1",fill:"none","fill-rule":"evenodd"},[n("polygon",{fill:"#293040","fill-rule":"nonzero",points:"10.7071068 12.2928932 9.29289322 13.7071068 3.58578644 8 9.29289322 2.29289322 10.7071068 3.70710678 6.41421356 8"},null)])])]),n("button",{class:"devui-image-preview-arrow-right",onClick:d},[n("svg",{width:"18px",height:"18px",viewBox:"0 0 16 16",version:"1.1"},[n("g",{stroke:"none","stroke-width":"1",fill:"none","fill-rule":"evenodd"},[n("polygon",{fill:"#293040","fill-rule":"nonzero",transform:"translate(8.146447, 8.000000) scale(-1, 1) translate(-8.146447, -8.000000) ",points:"11.7071068 12.2928932 10.2928932 13.7071068 4.58578644 8 10.2928932 2.29289322 11.7071068 3.70710678 7.41421356 8"},null)])])]),n("div",{class:"devui-image-preview-toolbar"},[n("button",{onClick:m},[n("svg",{width:"18px",height:"18px",viewBox:"0 0 16 16"},[n("g",{stroke:"none","stroke-width":"1",fill:"none","fill-rule":"evenodd"},[n("g",{fill:"#293040","fill-rule":"nonzero"},[n("path",{d:"M6,6 L6,4 L8,4 L8,6 L10,6 L10,8 L8,8 L8,10 L6,10 L6,8 L4,8 L4,6 L6,6 Z M12.6063847,11.1921711 L15.6568542,14.2426407 L14.2426407,15.6568542 L11.1921711,12.6063847 C10.0235906,13.4815965 8.5723351,14 7,14 C3.13400675,14 0,10.8659932 0,7 C0,3.13400675 3.13400675,0 7,0 C10.8659932,0 14,3.13400675 14,7 C14,8.5723351 13.4815965,10.0235906 12.6063847,11.1921711 L12.6063847,11.1921711 Z M7,12 C9.76142375,12 12,9.76142375 12,7 C12,4.23857625 9.76142375,2 7,2 C4.23857625,2 2,4.23857625 2,7 C2,9.76142375 4.23857625,12 7,12 Z"},null)])])])]),n("button",{onClick:c},[n("svg",{width:"18px",height:"18px",viewBox:"0 0 16 16"},[n("g",{stroke:"none","stroke-width":"1",fill:"none","fill-rule":"evenodd"},[n("g",{fill:"#293040","fill-rule":"nonzero"},[n("path",{d:"M12.6063847,11.1921711 L15.6568542,14.2426407 L14.2426407,15.6568542 L11.1921711,12.6063847 C10.0235906,13.4815965 8.5723351,14 7,14 C3.13400675,14 0,10.8659932 0,7 C0,3.13400675 3.13400675,0 7,0 C10.8659932,0 14,3.13400675 14,7 C14,8.5723351 13.4815965,10.0235906 12.6063847,11.1921711 L12.6063847,11.1921711 Z M7,12 C9.76142375,12 12,9.76142375 12,7 C12,4.23857625 9.76142375,2 7,2 C4.23857625,2 2,4.23857625 2,7 C2,9.76142375 4.23857625,12 7,12 Z M4,6 L10,6 L10,8 L4,8 L4,6 Z"},null)])])])]),n("button",{onClick:L},[n("svg",{width:"18px",height:"18px",viewBox:"0 0 16 16",version:"1.1"},[n("g",{stroke:"none","stroke-width":"1",fill:"none","fill-rule":"evenodd"},[n("path",{d:"M7.5,3.02242151 L7.5,4 L4.5,2 L7.5,0 L7.5,1.01640228 C7.66526181,1.00552468 7.83198572,1 8,1 C12.1421356,1 15.5,4.35786438 15.5,8.5 C15.5,12.6421356 12.1421356,16 8,16 C3.85786438,16 0.5,12.6421356 0.5,8.5 C0.5,6.9828355 0.950484514,5.5708873 1.72499011,4.39061882 L3.42173231,5.4510827 C2.83944149,6.32371289 2.5,7.37221604 2.5,8.5 C2.5,11.5375661 4.96243388,14 8,14 C11.0375661,14 13.5,11.5375661 13.5,8.5 C13.5,5.46243388 11.0375661,3 8,3 C7.83145515,3 7.66468102,3.00758131 7.5,3.02242151 Z M8,11 C6.61928813,11 5.5,9.88071187 5.5,8.5 C5.5,7.11928813 6.61928813,6 8,6 C9.38071187,6 10.5,7.11928813 10.5,8.5 C10.5,9.88071187 9.38071187,11 8,11 Z M8,10 C8.82842712,10 9.5,9.32842712 9.5,8.5 C9.5,7.67157288 8.82842712,7 8,7 C7.17157288,7 6.5,7.67157288 6.5,8.5 C6.5,9.32842712 7.17157288,10 8,10 Z",fill:"#293040"},null)])])]),n("button",{onClick:a},[n("svg",{width:"16px",height:"16px",viewBox:"0 0 16 16",version:"1.1"},[n("g",{stroke:"none","stroke-width":"1",fill:"none","fill-rule":"evenodd"},[n("polygon",{fill:"#293040","fill-rule":"nonzero",points:"10.7071068 12.2928932 9.29289322 13.7071068 3.58578644 8 9.29289322 2.29289322 10.7071068 3.70710678 6.41421356 8"},null)])])]),n("span",{class:"devui-image-preview-index"},[o.value+1,r(":"),e.previewUrlList.length]),n("button",{class:"devui-next",onClick:d},[n("svg",{width:"16px",height:"16px",viewBox:"0 0 16 16",version:"1.1"},[n("g",{stroke:"none","stroke-width":"1",fill:"none","fill-rule":"evenodd"},[n("polygon",{fill:"#293040","fill-rule":"nonzero",transform:"translate(8.146447, 8.000000) scale(-1, 1) translate(-8.146447, -8.000000) ",points:"11.7071068 12.2928932 10.2928932 13.7071068 4.58578644 8 10.2928932 2.29289322 11.7071068 3.70710678 7.41421356 8"},null)])])]),n("button",{onClick:g},[n("svg",{width:"18px",height:"18px",viewBox:"0 0 16 16"},[n("g",{stroke:"none","stroke-width":"1",fill:"none","fill-rule":"evenodd"},[n("path",{d:"M16,16 L11.429,16 L11.429,15 L14.456,15 L11.006,11.226 L11.652,10.519 L15.086,14.275 L15.086,11 L16,11 L16,16 Z M15.164,1.544 L12.009,4.994 L11.418,4.348 L14.558,0.914 L11.82,0.914 L11.82,0 L16,0 L16,4.571 L15.164,4.571 L15.164,1.544 Z M5,15 L5,16 L0,16 L0,11 L1,11 L1,14.275 L4.756,10.519 L5.463,11.226 L1.689,15 L5,15 Z M4.365,4.994 L0.914,1.544 L0.914,4.571 L3.41060513e-13,4.571 L3.41060513e-13,0 L4.571,0 L4.571,0.914 L1.578,0.914 L5.011,4.348 L4.365,4.994 Z",fill:"#293040","fill-rule":"nonzero"},null)])])]),n("button",{onClick:p},[n("span",null,[r("1:1")])])])])}});class v{static open(e){this.$body=document.body,this.$div=document.createElement("div"),this.$overflow=this.$body.style.overflow,this.$body.appendChild(this.$div),function(e){return h(d,e)}(e).mount(this.$div),this.$body.style.setProperty("overflow","hidden","important")}static close(){var e;null==(e=this.$body)||e.style.setProperty("overflow",this.$overflow),this.$overflow=null,this.$div&&this.$body.removeChild(this.$div),this.$body=null,this.$div=null}}function f(e,t){v.open({url:e,previewUrlList:t})}function m(){v.close()}function c(e){return[...e.querySelectorAll("img")].map((e=>e.getAttribute("src")))}function L(e){e.addEventListener("click",(t=>{var o;t.stopPropagation();const i=t.target;if("img"===(null==(o=null==i?void 0:i.nodeName)?void 0:o.toLowerCase())){const t=c(e);f(i.getAttribute("src"),t)}}))}t(v,"$body",null),t(v,"$div",null),t(v,"$overflow","");var g={mounted(e,t){if(!t.value)return L(e);const{custom:o,disableDefault:i}=t.value;o instanceof Object&&(o.open=()=>{const t=c(e);f(null==t?void 0:t[0],t)},o.close=()=>m()),i||L(e)},unmounted(){m()}},p={title:"ImagePreview 图片预览",category:"数据展示",install(e){e.directive("d-image-preview",g),e.config.globalProperties.$imagePreviewService=v}};export{g as ImagePreviewDirective,v as ImagePreviewService,p as default};
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
3
|
+
var __publicField = (obj, key, value) => {
|
|
4
|
+
__defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
5
|
+
return value;
|
|
6
|
+
};
|
|
7
|
+
import { defineComponent, ref, computed, onMounted, onUnmounted, createVNode, Fragment, createTextVNode, createApp } from "vue";
|
|
8
|
+
var imagePreview$1 = "";
|
|
9
|
+
const imagePreviewProps = {
|
|
10
|
+
url: {
|
|
11
|
+
type: String,
|
|
12
|
+
default: "",
|
|
13
|
+
required: true
|
|
14
|
+
},
|
|
15
|
+
previewUrlList: {
|
|
16
|
+
type: Array,
|
|
17
|
+
default: () => [],
|
|
18
|
+
required: true
|
|
19
|
+
},
|
|
20
|
+
zIndex: {
|
|
21
|
+
type: Number,
|
|
22
|
+
required: false
|
|
23
|
+
},
|
|
24
|
+
backDropZIndex: {
|
|
25
|
+
type: Number,
|
|
26
|
+
required: false
|
|
27
|
+
}
|
|
28
|
+
};
|
|
29
|
+
class Transform {
|
|
30
|
+
constructor(el, options = {}) {
|
|
31
|
+
__publicField(this, "el");
|
|
32
|
+
__publicField(this, "oTransformX", 0);
|
|
33
|
+
__publicField(this, "oTransformY", 0);
|
|
34
|
+
__publicField(this, "transformX");
|
|
35
|
+
__publicField(this, "transformY");
|
|
36
|
+
__publicField(this, "zoom");
|
|
37
|
+
__publicField(this, "rotate");
|
|
38
|
+
__publicField(this, "STEP", 0.25);
|
|
39
|
+
__publicField(this, "MIN_SCALE", 0.2);
|
|
40
|
+
__publicField(this, "MAX_SCALE", 2.5);
|
|
41
|
+
__publicField(this, "TRANSFORMX", 0);
|
|
42
|
+
__publicField(this, "TRANSFORMY", 0);
|
|
43
|
+
__publicField(this, "ZOOM", 1);
|
|
44
|
+
__publicField(this, "ROTATE", 0);
|
|
45
|
+
this.el = el;
|
|
46
|
+
this.transformX = options.transformX || this.TRANSFORMX;
|
|
47
|
+
this.transformY = options.transformY || this.TRANSFORMY;
|
|
48
|
+
this.zoom = options.zoom || this.ZOOM;
|
|
49
|
+
this.rotate = options.rotate || this.ROTATE;
|
|
50
|
+
this.handleDefaultDraggable();
|
|
51
|
+
this.onDraggable();
|
|
52
|
+
this.onMouseWheel();
|
|
53
|
+
}
|
|
54
|
+
handleDefaultDraggable() {
|
|
55
|
+
document.body.ondragstart = () => {
|
|
56
|
+
window.event.returnValue = false;
|
|
57
|
+
return false;
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
onDraggable() {
|
|
61
|
+
this.el.onmousedown = (e) => {
|
|
62
|
+
const ox = e.clientX;
|
|
63
|
+
const oy = e.clientY;
|
|
64
|
+
document.onmousemove = (e1) => {
|
|
65
|
+
const disX = e1.clientX - ox;
|
|
66
|
+
const disY = e1.clientY - oy;
|
|
67
|
+
this.transformX = this.oTransformX + disX;
|
|
68
|
+
this.transformY = this.oTransformY + disY;
|
|
69
|
+
this.el.style.cursor = "grabbing";
|
|
70
|
+
this.setPosition();
|
|
71
|
+
};
|
|
72
|
+
};
|
|
73
|
+
document.onmouseup = () => {
|
|
74
|
+
document.onmousemove = null;
|
|
75
|
+
this.oTransformX = this.transformX;
|
|
76
|
+
this.oTransformY = this.transformY;
|
|
77
|
+
this.el.style.cursor = "grab";
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
onMouseWheel() {
|
|
81
|
+
const handleWheel = this.throttle(this.setMouseWheel, 100);
|
|
82
|
+
this.el.onmousewheel = (e) => {
|
|
83
|
+
const value = -e.wheelDelta || e.deltaY || e.detail;
|
|
84
|
+
handleWheel(value);
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
throttle(fn, t) {
|
|
88
|
+
let timer = null;
|
|
89
|
+
return (...args) => {
|
|
90
|
+
if (!timer) {
|
|
91
|
+
setTimeout(() => {
|
|
92
|
+
timer = null;
|
|
93
|
+
fn.apply(this, args);
|
|
94
|
+
}, t);
|
|
95
|
+
}
|
|
96
|
+
};
|
|
97
|
+
}
|
|
98
|
+
setMouseWheel(value) {
|
|
99
|
+
if (value < 0) {
|
|
100
|
+
if (this.zoom >= this.MAX_SCALE) {
|
|
101
|
+
this.el.style.cursor = "not-allowed";
|
|
102
|
+
return;
|
|
103
|
+
}
|
|
104
|
+
this.el.style.cursor = "zoom-in";
|
|
105
|
+
this.setZoomIn(this.STEP);
|
|
106
|
+
} else {
|
|
107
|
+
if (this.zoom <= this.MIN_SCALE) {
|
|
108
|
+
this.el.style.cursor = "not-allowed";
|
|
109
|
+
return;
|
|
110
|
+
}
|
|
111
|
+
this.el.style.cursor = "zoom-out";
|
|
112
|
+
this.setZoomOut(this.STEP);
|
|
113
|
+
}
|
|
114
|
+
this.setPosition();
|
|
115
|
+
}
|
|
116
|
+
setZoomIn(step = this.STEP) {
|
|
117
|
+
this.zoom = Math.min(this.MAX_SCALE, this.zoom + step);
|
|
118
|
+
this.setPosition();
|
|
119
|
+
}
|
|
120
|
+
setZoomOut(step = this.STEP) {
|
|
121
|
+
this.zoom = Math.max(this.MIN_SCALE, this.zoom - step);
|
|
122
|
+
this.setPosition();
|
|
123
|
+
}
|
|
124
|
+
setZoomBest() {
|
|
125
|
+
this.reset();
|
|
126
|
+
this.setPosition();
|
|
127
|
+
}
|
|
128
|
+
setZoomOriginal() {
|
|
129
|
+
this.reset();
|
|
130
|
+
this.setPosition();
|
|
131
|
+
}
|
|
132
|
+
setRotate() {
|
|
133
|
+
this.rotate += 0.25;
|
|
134
|
+
this.setPosition();
|
|
135
|
+
}
|
|
136
|
+
reset() {
|
|
137
|
+
this.transformX = this.TRANSFORMX;
|
|
138
|
+
this.transformY = this.TRANSFORMY;
|
|
139
|
+
this.zoom = this.ZOOM;
|
|
140
|
+
}
|
|
141
|
+
setPosition() {
|
|
142
|
+
this.el.style.transform = `translate(${this.transformX}px, ${this.transformY}px) scale(${this.zoom}) rotate(${this.rotate}turn)`;
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
var imagePreview = defineComponent({
|
|
146
|
+
name: "DImagePreview",
|
|
147
|
+
props: imagePreviewProps,
|
|
148
|
+
emits: [],
|
|
149
|
+
setup(props) {
|
|
150
|
+
let transform = null;
|
|
151
|
+
const index2 = ref(0);
|
|
152
|
+
const url = computed(() => props.previewUrlList[index2.value]);
|
|
153
|
+
const imageStyle = props.zIndex ? {
|
|
154
|
+
zIndex: props.zIndex
|
|
155
|
+
} : {};
|
|
156
|
+
const bgStyle = props.backDropZIndex ? {
|
|
157
|
+
zIndex: props.backDropZIndex
|
|
158
|
+
} : {};
|
|
159
|
+
function initTransform() {
|
|
160
|
+
const imageElement = document.querySelector(".devui-image-preview-main-image");
|
|
161
|
+
transform = new Transform(imageElement);
|
|
162
|
+
}
|
|
163
|
+
function initIndex() {
|
|
164
|
+
index2.value = props.previewUrlList.findIndex((curUrl) => curUrl === props.url);
|
|
165
|
+
}
|
|
166
|
+
function onPrev() {
|
|
167
|
+
index2.value = index2.value <= 0 ? props.previewUrlList.length - 1 : index2.value - 1;
|
|
168
|
+
}
|
|
169
|
+
function onNext() {
|
|
170
|
+
index2.value = index2.value >= props.previewUrlList.length - 1 ? 0 : index2.value + 1;
|
|
171
|
+
}
|
|
172
|
+
function onClose() {
|
|
173
|
+
ImagePreviewService.close();
|
|
174
|
+
}
|
|
175
|
+
function onZoomIn() {
|
|
176
|
+
transform.setZoomIn();
|
|
177
|
+
}
|
|
178
|
+
function onZoomOut() {
|
|
179
|
+
transform.setZoomOut();
|
|
180
|
+
}
|
|
181
|
+
function onRotate() {
|
|
182
|
+
transform.setRotate();
|
|
183
|
+
}
|
|
184
|
+
function onZoomBest() {
|
|
185
|
+
transform.setZoomBest();
|
|
186
|
+
}
|
|
187
|
+
function onZoomOriginal() {
|
|
188
|
+
transform.setZoomOriginal();
|
|
189
|
+
}
|
|
190
|
+
function onKeyDown(event) {
|
|
191
|
+
if (event.defaultPrevented)
|
|
192
|
+
return;
|
|
193
|
+
if (event.code == "Escape") {
|
|
194
|
+
onClose();
|
|
195
|
+
} else if (event.code == "ArrowLeft") {
|
|
196
|
+
onPrev();
|
|
197
|
+
} else if (event.code == "ArrowRight") {
|
|
198
|
+
onNext();
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
function initKeyboard() {
|
|
202
|
+
document.addEventListener("keydown", onKeyDown, false);
|
|
203
|
+
}
|
|
204
|
+
function unKeyBoard() {
|
|
205
|
+
document.removeEventListener("keydown", onKeyDown, false);
|
|
206
|
+
}
|
|
207
|
+
onMounted(() => {
|
|
208
|
+
initIndex();
|
|
209
|
+
initTransform();
|
|
210
|
+
initKeyboard();
|
|
211
|
+
});
|
|
212
|
+
onUnmounted(() => {
|
|
213
|
+
unKeyBoard();
|
|
214
|
+
});
|
|
215
|
+
return () => {
|
|
216
|
+
return createVNode(Fragment, null, [createVNode("div", {
|
|
217
|
+
"class": "devui-image-preview",
|
|
218
|
+
"style": imageStyle
|
|
219
|
+
}, [createVNode("img", {
|
|
220
|
+
"class": "devui-image-preview-main-image",
|
|
221
|
+
"src": url.value
|
|
222
|
+
}, null), createVNode("button", {
|
|
223
|
+
"class": "devui-image-preview-close-btn",
|
|
224
|
+
"onClick": onClose
|
|
225
|
+
}, [createVNode("svg", {
|
|
226
|
+
"width": "16px",
|
|
227
|
+
"height": "16px",
|
|
228
|
+
"viewBox": "0 0 16 16",
|
|
229
|
+
"version": "1.1"
|
|
230
|
+
}, [createVNode("g", {
|
|
231
|
+
"stroke": "none",
|
|
232
|
+
"stroke-width": "1",
|
|
233
|
+
"fill": "none",
|
|
234
|
+
"fill-rule": "evenodd"
|
|
235
|
+
}, [createVNode("polygon", {
|
|
236
|
+
"fill": "#293040",
|
|
237
|
+
"fill-rule": "nonzero",
|
|
238
|
+
"points": "8 6.58578644 12.2426407 2.34314575 13.6568542 3.75735931 9.41421356 8 13.6568542 12.2426407 12.2426407 13.6568542 8 9.41421356 3.75735931 13.6568542 2.34314575 12.2426407 6.58578644 8 2.34314575 3.75735931 3.75735931 2.34314575"
|
|
239
|
+
}, null)])])]), createVNode("button", {
|
|
240
|
+
"class": "devui-image-preview-arrow-left",
|
|
241
|
+
"onClick": onPrev
|
|
242
|
+
}, [createVNode("svg", {
|
|
243
|
+
"width": "18px",
|
|
244
|
+
"height": "18px",
|
|
245
|
+
"viewBox": "0 0 16 16",
|
|
246
|
+
"version": "1.1"
|
|
247
|
+
}, [createVNode("g", {
|
|
248
|
+
"stroke": "none",
|
|
249
|
+
"stroke-width": "1",
|
|
250
|
+
"fill": "none",
|
|
251
|
+
"fill-rule": "evenodd"
|
|
252
|
+
}, [createVNode("polygon", {
|
|
253
|
+
"fill": "#293040",
|
|
254
|
+
"fill-rule": "nonzero",
|
|
255
|
+
"points": "10.7071068 12.2928932 9.29289322 13.7071068 3.58578644 8 9.29289322 2.29289322 10.7071068 3.70710678 6.41421356 8"
|
|
256
|
+
}, null)])])]), createVNode("button", {
|
|
257
|
+
"class": "devui-image-preview-arrow-right",
|
|
258
|
+
"onClick": onNext
|
|
259
|
+
}, [createVNode("svg", {
|
|
260
|
+
"width": "18px",
|
|
261
|
+
"height": "18px",
|
|
262
|
+
"viewBox": "0 0 16 16",
|
|
263
|
+
"version": "1.1"
|
|
264
|
+
}, [createVNode("g", {
|
|
265
|
+
"stroke": "none",
|
|
266
|
+
"stroke-width": "1",
|
|
267
|
+
"fill": "none",
|
|
268
|
+
"fill-rule": "evenodd"
|
|
269
|
+
}, [createVNode("polygon", {
|
|
270
|
+
"fill": "#293040",
|
|
271
|
+
"fill-rule": "nonzero",
|
|
272
|
+
"transform": "translate(8.146447, 8.000000) scale(-1, 1) translate(-8.146447, -8.000000) ",
|
|
273
|
+
"points": "11.7071068 12.2928932 10.2928932 13.7071068 4.58578644 8 10.2928932 2.29289322 11.7071068 3.70710678 7.41421356 8"
|
|
274
|
+
}, null)])])]), createVNode("div", {
|
|
275
|
+
"class": "devui-image-preview-toolbar"
|
|
276
|
+
}, [createVNode("button", {
|
|
277
|
+
"onClick": onZoomIn
|
|
278
|
+
}, [createVNode("svg", {
|
|
279
|
+
"width": "18px",
|
|
280
|
+
"height": "18px",
|
|
281
|
+
"viewBox": "0 0 16 16"
|
|
282
|
+
}, [createVNode("g", {
|
|
283
|
+
"stroke": "none",
|
|
284
|
+
"stroke-width": "1",
|
|
285
|
+
"fill": "none",
|
|
286
|
+
"fill-rule": "evenodd"
|
|
287
|
+
}, [createVNode("g", {
|
|
288
|
+
"fill": "#293040",
|
|
289
|
+
"fill-rule": "nonzero"
|
|
290
|
+
}, [createVNode("path", {
|
|
291
|
+
"d": "M6,6 L6,4 L8,4 L8,6 L10,6 L10,8 L8,8 L8,10 L6,10 L6,8 L4,8 L4,6 L6,6 Z M12.6063847,11.1921711 L15.6568542,14.2426407 L14.2426407,15.6568542 L11.1921711,12.6063847 C10.0235906,13.4815965 8.5723351,14 7,14 C3.13400675,14 0,10.8659932 0,7 C0,3.13400675 3.13400675,0 7,0 C10.8659932,0 14,3.13400675 14,7 C14,8.5723351 13.4815965,10.0235906 12.6063847,11.1921711 L12.6063847,11.1921711 Z M7,12 C9.76142375,12 12,9.76142375 12,7 C12,4.23857625 9.76142375,2 7,2 C4.23857625,2 2,4.23857625 2,7 C2,9.76142375 4.23857625,12 7,12 Z"
|
|
292
|
+
}, null)])])])]), createVNode("button", {
|
|
293
|
+
"onClick": onZoomOut
|
|
294
|
+
}, [createVNode("svg", {
|
|
295
|
+
"width": "18px",
|
|
296
|
+
"height": "18px",
|
|
297
|
+
"viewBox": "0 0 16 16"
|
|
298
|
+
}, [createVNode("g", {
|
|
299
|
+
"stroke": "none",
|
|
300
|
+
"stroke-width": "1",
|
|
301
|
+
"fill": "none",
|
|
302
|
+
"fill-rule": "evenodd"
|
|
303
|
+
}, [createVNode("g", {
|
|
304
|
+
"fill": "#293040",
|
|
305
|
+
"fill-rule": "nonzero"
|
|
306
|
+
}, [createVNode("path", {
|
|
307
|
+
"d": "M12.6063847,11.1921711 L15.6568542,14.2426407 L14.2426407,15.6568542 L11.1921711,12.6063847 C10.0235906,13.4815965 8.5723351,14 7,14 C3.13400675,14 0,10.8659932 0,7 C0,3.13400675 3.13400675,0 7,0 C10.8659932,0 14,3.13400675 14,7 C14,8.5723351 13.4815965,10.0235906 12.6063847,11.1921711 L12.6063847,11.1921711 Z M7,12 C9.76142375,12 12,9.76142375 12,7 C12,4.23857625 9.76142375,2 7,2 C4.23857625,2 2,4.23857625 2,7 C2,9.76142375 4.23857625,12 7,12 Z M4,6 L10,6 L10,8 L4,8 L4,6 Z"
|
|
308
|
+
}, null)])])])]), createVNode("button", {
|
|
309
|
+
"onClick": onRotate
|
|
310
|
+
}, [createVNode("svg", {
|
|
311
|
+
"width": "18px",
|
|
312
|
+
"height": "18px",
|
|
313
|
+
"viewBox": "0 0 16 16",
|
|
314
|
+
"version": "1.1"
|
|
315
|
+
}, [createVNode("g", {
|
|
316
|
+
"stroke": "none",
|
|
317
|
+
"stroke-width": "1",
|
|
318
|
+
"fill": "none",
|
|
319
|
+
"fill-rule": "evenodd"
|
|
320
|
+
}, [createVNode("path", {
|
|
321
|
+
"d": "M7.5,3.02242151 L7.5,4 L4.5,2 L7.5,0 L7.5,1.01640228 C7.66526181,1.00552468 7.83198572,1 8,1 C12.1421356,1 15.5,4.35786438 15.5,8.5 C15.5,12.6421356 12.1421356,16 8,16 C3.85786438,16 0.5,12.6421356 0.5,8.5 C0.5,6.9828355 0.950484514,5.5708873 1.72499011,4.39061882 L3.42173231,5.4510827 C2.83944149,6.32371289 2.5,7.37221604 2.5,8.5 C2.5,11.5375661 4.96243388,14 8,14 C11.0375661,14 13.5,11.5375661 13.5,8.5 C13.5,5.46243388 11.0375661,3 8,3 C7.83145515,3 7.66468102,3.00758131 7.5,3.02242151 Z M8,11 C6.61928813,11 5.5,9.88071187 5.5,8.5 C5.5,7.11928813 6.61928813,6 8,6 C9.38071187,6 10.5,7.11928813 10.5,8.5 C10.5,9.88071187 9.38071187,11 8,11 Z M8,10 C8.82842712,10 9.5,9.32842712 9.5,8.5 C9.5,7.67157288 8.82842712,7 8,7 C7.17157288,7 6.5,7.67157288 6.5,8.5 C6.5,9.32842712 7.17157288,10 8,10 Z",
|
|
322
|
+
"fill": "#293040"
|
|
323
|
+
}, null)])])]), createVNode("button", {
|
|
324
|
+
"onClick": onPrev
|
|
325
|
+
}, [createVNode("svg", {
|
|
326
|
+
"width": "16px",
|
|
327
|
+
"height": "16px",
|
|
328
|
+
"viewBox": "0 0 16 16",
|
|
329
|
+
"version": "1.1"
|
|
330
|
+
}, [createVNode("g", {
|
|
331
|
+
"stroke": "none",
|
|
332
|
+
"stroke-width": "1",
|
|
333
|
+
"fill": "none",
|
|
334
|
+
"fill-rule": "evenodd"
|
|
335
|
+
}, [createVNode("polygon", {
|
|
336
|
+
"fill": "#293040",
|
|
337
|
+
"fill-rule": "nonzero",
|
|
338
|
+
"points": "10.7071068 12.2928932 9.29289322 13.7071068 3.58578644 8 9.29289322 2.29289322 10.7071068 3.70710678 6.41421356 8"
|
|
339
|
+
}, null)])])]), createVNode("span", {
|
|
340
|
+
"class": "devui-image-preview-index"
|
|
341
|
+
}, [index2.value + 1, createTextVNode(":"), props.previewUrlList.length]), createVNode("button", {
|
|
342
|
+
"class": "devui-next",
|
|
343
|
+
"onClick": onNext
|
|
344
|
+
}, [createVNode("svg", {
|
|
345
|
+
"width": "16px",
|
|
346
|
+
"height": "16px",
|
|
347
|
+
"viewBox": "0 0 16 16",
|
|
348
|
+
"version": "1.1"
|
|
349
|
+
}, [createVNode("g", {
|
|
350
|
+
"stroke": "none",
|
|
351
|
+
"stroke-width": "1",
|
|
352
|
+
"fill": "none",
|
|
353
|
+
"fill-rule": "evenodd"
|
|
354
|
+
}, [createVNode("polygon", {
|
|
355
|
+
"fill": "#293040",
|
|
356
|
+
"fill-rule": "nonzero",
|
|
357
|
+
"transform": "translate(8.146447, 8.000000) scale(-1, 1) translate(-8.146447, -8.000000) ",
|
|
358
|
+
"points": "11.7071068 12.2928932 10.2928932 13.7071068 4.58578644 8 10.2928932 2.29289322 11.7071068 3.70710678 7.41421356 8"
|
|
359
|
+
}, null)])])]), createVNode("button", {
|
|
360
|
+
"onClick": onZoomBest
|
|
361
|
+
}, [createVNode("svg", {
|
|
362
|
+
"width": "18px",
|
|
363
|
+
"height": "18px",
|
|
364
|
+
"viewBox": "0 0 16 16"
|
|
365
|
+
}, [createVNode("g", {
|
|
366
|
+
"stroke": "none",
|
|
367
|
+
"stroke-width": "1",
|
|
368
|
+
"fill": "none",
|
|
369
|
+
"fill-rule": "evenodd"
|
|
370
|
+
}, [createVNode("path", {
|
|
371
|
+
"d": "M16,16 L11.429,16 L11.429,15 L14.456,15 L11.006,11.226 L11.652,10.519 L15.086,14.275 L15.086,11 L16,11 L16,16 Z M15.164,1.544 L12.009,4.994 L11.418,4.348 L14.558,0.914 L11.82,0.914 L11.82,0 L16,0 L16,4.571 L15.164,4.571 L15.164,1.544 Z M5,15 L5,16 L0,16 L0,11 L1,11 L1,14.275 L4.756,10.519 L5.463,11.226 L1.689,15 L5,15 Z M4.365,4.994 L0.914,1.544 L0.914,4.571 L3.41060513e-13,4.571 L3.41060513e-13,0 L4.571,0 L4.571,0.914 L1.578,0.914 L5.011,4.348 L4.365,4.994 Z",
|
|
372
|
+
"fill": "#293040",
|
|
373
|
+
"fill-rule": "nonzero"
|
|
374
|
+
}, null)])])]), createVNode("button", {
|
|
375
|
+
"onClick": onZoomOriginal
|
|
376
|
+
}, [createVNode("span", null, [createTextVNode("1:1")])])])]), createVNode("div", {
|
|
377
|
+
"class": "devui-image-preview-bg",
|
|
378
|
+
"style": bgStyle
|
|
379
|
+
}, null)]);
|
|
380
|
+
};
|
|
381
|
+
}
|
|
382
|
+
});
|
|
383
|
+
function createComponent(props) {
|
|
384
|
+
return createApp(imagePreview, props);
|
|
385
|
+
}
|
|
386
|
+
class ImagePreviewService {
|
|
387
|
+
static open(props) {
|
|
388
|
+
this.$body = document.body;
|
|
389
|
+
this.$div = document.createElement("div");
|
|
390
|
+
this.$overflow = this.$body.style.overflow;
|
|
391
|
+
this.$body.appendChild(this.$div);
|
|
392
|
+
createComponent(props).mount(this.$div);
|
|
393
|
+
this.$body.style.setProperty("overflow", "hidden", "important");
|
|
394
|
+
}
|
|
395
|
+
static close() {
|
|
396
|
+
var _a;
|
|
397
|
+
(_a = this.$body) == null ? void 0 : _a.style.setProperty("overflow", this.$overflow);
|
|
398
|
+
this.$overflow = null;
|
|
399
|
+
this.$div && this.$body.removeChild(this.$div);
|
|
400
|
+
this.$body = null;
|
|
401
|
+
this.$div = null;
|
|
402
|
+
}
|
|
403
|
+
}
|
|
404
|
+
__publicField(ImagePreviewService, "$body", null);
|
|
405
|
+
__publicField(ImagePreviewService, "$div", null);
|
|
406
|
+
__publicField(ImagePreviewService, "$overflow", "");
|
|
407
|
+
function mountedPreviewImages(props) {
|
|
408
|
+
ImagePreviewService.open({
|
|
409
|
+
url: props.url,
|
|
410
|
+
previewUrlList: props.previewUrlList,
|
|
411
|
+
zIndex: props.zIndex,
|
|
412
|
+
backDropZIndex: props.backDropZIndex
|
|
413
|
+
});
|
|
414
|
+
}
|
|
415
|
+
function unmountedPreviewImages() {
|
|
416
|
+
ImagePreviewService.close();
|
|
417
|
+
}
|
|
418
|
+
function getImgByEl(el) {
|
|
419
|
+
const urlList = [...el.querySelectorAll("img")].map((item) => item.getAttribute("src"));
|
|
420
|
+
return urlList;
|
|
421
|
+
}
|
|
422
|
+
function handleImgByEl(el) {
|
|
423
|
+
el.addEventListener("click", (e) => {
|
|
424
|
+
var _a;
|
|
425
|
+
e.stopPropagation();
|
|
426
|
+
const target = e.target;
|
|
427
|
+
if (((_a = target == null ? void 0 : target.nodeName) == null ? void 0 : _a.toLowerCase()) === "img") {
|
|
428
|
+
const urlList = getImgByEl(el);
|
|
429
|
+
const url = target.getAttribute("src");
|
|
430
|
+
mountedPreviewImages({
|
|
431
|
+
url,
|
|
432
|
+
previewUrlList: urlList,
|
|
433
|
+
zIndex: el == null ? void 0 : el.zIndex,
|
|
434
|
+
backDropZIndex: el == null ? void 0 : el.backDropZIndex
|
|
435
|
+
});
|
|
436
|
+
}
|
|
437
|
+
});
|
|
438
|
+
}
|
|
439
|
+
var ImagePreviewDirective = {
|
|
440
|
+
mounted(el, binding) {
|
|
441
|
+
if (!binding.value) {
|
|
442
|
+
return handleImgByEl(el);
|
|
443
|
+
}
|
|
444
|
+
const { custom, disableDefault } = binding.value;
|
|
445
|
+
if (custom instanceof Object) {
|
|
446
|
+
custom.open = () => {
|
|
447
|
+
const urlList = getImgByEl(el);
|
|
448
|
+
mountedPreviewImages({
|
|
449
|
+
url: urlList == null ? void 0 : urlList[0],
|
|
450
|
+
previewUrlList: urlList,
|
|
451
|
+
zIndex: el == null ? void 0 : el.zIndex,
|
|
452
|
+
backDropZIndex: el == null ? void 0 : el.backDropZIndex
|
|
453
|
+
});
|
|
454
|
+
};
|
|
455
|
+
custom.close = () => unmountedPreviewImages();
|
|
456
|
+
}
|
|
457
|
+
if (disableDefault) {
|
|
458
|
+
return;
|
|
459
|
+
}
|
|
460
|
+
handleImgByEl(el);
|
|
461
|
+
},
|
|
462
|
+
unmounted() {
|
|
463
|
+
unmountedPreviewImages();
|
|
464
|
+
},
|
|
465
|
+
updated(el, binding) {
|
|
466
|
+
var _a, _b;
|
|
467
|
+
el.zIndex = (_a = binding.value) == null ? void 0 : _a.zIndex;
|
|
468
|
+
el.backDropZIndex = (_b = binding.value) == null ? void 0 : _b.backDropZIndex;
|
|
469
|
+
}
|
|
470
|
+
};
|
|
471
|
+
var index = {
|
|
472
|
+
title: "ImagePreview \u56FE\u7247\u9884\u89C8",
|
|
473
|
+
category: "\u6570\u636E\u5C55\u793A",
|
|
474
|
+
status: "100%",
|
|
475
|
+
install(app) {
|
|
476
|
+
app.directive("d-image-preview", ImagePreviewDirective);
|
|
477
|
+
app.config.globalProperties.$imagePreviewService = ImagePreviewService;
|
|
478
|
+
}
|
|
479
|
+
};
|
|
480
|
+
export { ImagePreviewDirective, ImagePreviewService, index as default };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
var __defProp=Object.defineProperty,__defNormalProp=(e,t,o)=>t in e?__defProp(e,t,{enumerable:!0,configurable:!0,writable:!0,value:o}):e[t]=o,__require="undefined"!=typeof require?require:e=>{throw new Error('Dynamic require of "'+e+'" is not supported')},__publicField=(e,t,o)=>(__defNormalProp(e,"symbol"!=typeof t?t+"":t,o),o);!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("vue")):"function"==typeof define&&define.amd?define(["exports","vue"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).index={},e.Vue)}(this,(function(e,t){"use strict";const o={url:{type:String,default:""},previewUrlList:{type:Array,default:()=>[]}};class i{constructor(e,t={}){__publicField(this,"el"),__publicField(this,"oTransformX",0),__publicField(this,"oTransformY",0),__publicField(this,"transformX"),__publicField(this,"transformY"),__publicField(this,"zoom"),__publicField(this,"rotate"),__publicField(this,"STEP",.25),__publicField(this,"MIN_SCALE",.2),__publicField(this,"MAX_SCALE",2.5),__publicField(this,"TRANSFORMX",0),__publicField(this,"TRANSFORMY",0),__publicField(this,"ZOOM",1),__publicField(this,"ROTATE",0),this.el=e,this.transformX=t.transformX||this.TRANSFORMX,this.transformY=t.transformY||this.TRANSFORMY,this.zoom=t.zoom||this.ZOOM,this.rotate=t.rotate||this.ROTATE,this.handleDefaultDraggable(),this.onDraggable(),this.onMouseWheel()}handleDefaultDraggable(){document.body.ondragstart=()=>(window.event.returnValue=!1,!1)}onDraggable(){this.el.onmousedown=e=>{const t=e.clientX,o=e.clientY;document.onmousemove=e=>{const i=e.clientX-t,l=e.clientY-o;this.transformX=this.oTransformX+i,this.transformY=this.oTransformY+l,this.el.style.cursor="grabbing",this.setPosition()}},document.onmouseup=()=>{document.onmousemove=null,this.oTransformX=this.transformX,this.oTransformY=this.transformY,this.el.style.cursor="grab"}}onMouseWheel(){const e=this.throttle(this.setMouseWheel,100);this.el.onmousewheel=t=>{const o=-t.wheelDelta||t.deltaY||t.detail;e(o)}}throttle(e,t){let o=null;return(...i)=>{o||setTimeout((()=>{o=null,e.apply(this,i)}),t)}}setMouseWheel(e){if(e<0){if(this.zoom>=this.MAX_SCALE)return void(this.el.style.cursor="not-allowed");this.el.style.cursor="zoom-in",this.setZoomIn(this.STEP)}else{if(this.zoom<=this.MIN_SCALE)return void(this.el.style.cursor="not-allowed");this.el.style.cursor="zoom-out",this.setZoomOut(this.STEP)}this.setPosition()}setZoomIn(e=this.STEP){this.zoom=Math.min(this.MAX_SCALE,this.zoom+e),this.setPosition()}setZoomOut(e=this.STEP){this.zoom=Math.max(this.MIN_SCALE,this.zoom-e),this.setPosition()}setZoomBest(){this.reset(),this.setPosition()}setZoomOriginal(){this.reset(),this.setPosition()}setRotate(){this.rotate+=.25,this.setPosition()}reset(){this.transformX=this.TRANSFORMX,this.transformY=this.TRANSFORMY,this.zoom=this.ZOOM}setPosition(){this.el.style.transform=`translate(${this.transformX}px, ${this.transformY}px) scale(${this.zoom}) rotate(${this.rotate}turn)`}}var l=t.defineComponent({name:"DImagePreview",props:o,emits:[],setup(e){let o=null;const l=t.ref(0),s=t.computed((()=>e.previewUrlList[l.value]));function n(){l.value=l.value<=0?e.previewUrlList.length-1:l.value-1}function a(){l.value=l.value>=e.previewUrlList.length-1?0:l.value+1}function d(){r.close()}function u(){o.setZoomIn()}function c(){o.setZoomOut()}function h(){o.setRotate()}function f(){o.setZoomBest()}function v(){o.setZoomOriginal()}return t.onMounted((()=>{l.value=e.previewUrlList.findIndex((t=>t===e.url)),function(){const e=document.querySelector(".devui-image-preview-main-image");o=new i(e)}()})),()=>t.createVNode("div",{class:"devui-image-preview"},[t.createVNode("img",{class:"devui-image-preview-main-image",src:s.value},null),t.createVNode("button",{class:"devui-image-preview-close-btn",onClick:d},[t.createVNode("svg",{width:"16px",height:"16px",viewBox:"0 0 16 16",version:"1.1"},[t.createVNode("g",{stroke:"none","stroke-width":"1",fill:"none","fill-rule":"evenodd"},[t.createVNode("polygon",{fill:"#293040","fill-rule":"nonzero",points:"8 6.58578644 12.2426407 2.34314575 13.6568542 3.75735931 9.41421356 8 13.6568542 12.2426407 12.2426407 13.6568542 8 9.41421356 3.75735931 13.6568542 2.34314575 12.2426407 6.58578644 8 2.34314575 3.75735931 3.75735931 2.34314575"},null)])])]),t.createVNode("button",{class:"devui-image-preview-arrow-left",onClick:n},[t.createVNode("svg",{width:"18px",height:"18px",viewBox:"0 0 16 16",version:"1.1"},[t.createVNode("g",{stroke:"none","stroke-width":"1",fill:"none","fill-rule":"evenodd"},[t.createVNode("polygon",{fill:"#293040","fill-rule":"nonzero",points:"10.7071068 12.2928932 9.29289322 13.7071068 3.58578644 8 9.29289322 2.29289322 10.7071068 3.70710678 6.41421356 8"},null)])])]),t.createVNode("button",{class:"devui-image-preview-arrow-right",onClick:a},[t.createVNode("svg",{width:"18px",height:"18px",viewBox:"0 0 16 16",version:"1.1"},[t.createVNode("g",{stroke:"none","stroke-width":"1",fill:"none","fill-rule":"evenodd"},[t.createVNode("polygon",{fill:"#293040","fill-rule":"nonzero",transform:"translate(8.146447, 8.000000) scale(-1, 1) translate(-8.146447, -8.000000) ",points:"11.7071068 12.2928932 10.2928932 13.7071068 4.58578644 8 10.2928932 2.29289322 11.7071068 3.70710678 7.41421356 8"},null)])])]),t.createVNode("div",{class:"devui-image-preview-toolbar"},[t.createVNode("button",{onClick:u},[t.createVNode("svg",{width:"18px",height:"18px",viewBox:"0 0 16 16"},[t.createVNode("g",{stroke:"none","stroke-width":"1",fill:"none","fill-rule":"evenodd"},[t.createVNode("g",{fill:"#293040","fill-rule":"nonzero"},[t.createVNode("path",{d:"M6,6 L6,4 L8,4 L8,6 L10,6 L10,8 L8,8 L8,10 L6,10 L6,8 L4,8 L4,6 L6,6 Z M12.6063847,11.1921711 L15.6568542,14.2426407 L14.2426407,15.6568542 L11.1921711,12.6063847 C10.0235906,13.4815965 8.5723351,14 7,14 C3.13400675,14 0,10.8659932 0,7 C0,3.13400675 3.13400675,0 7,0 C10.8659932,0 14,3.13400675 14,7 C14,8.5723351 13.4815965,10.0235906 12.6063847,11.1921711 L12.6063847,11.1921711 Z M7,12 C9.76142375,12 12,9.76142375 12,7 C12,4.23857625 9.76142375,2 7,2 C4.23857625,2 2,4.23857625 2,7 C2,9.76142375 4.23857625,12 7,12 Z"},null)])])])]),t.createVNode("button",{onClick:c},[t.createVNode("svg",{width:"18px",height:"18px",viewBox:"0 0 16 16"},[t.createVNode("g",{stroke:"none","stroke-width":"1",fill:"none","fill-rule":"evenodd"},[t.createVNode("g",{fill:"#293040","fill-rule":"nonzero"},[t.createVNode("path",{d:"M12.6063847,11.1921711 L15.6568542,14.2426407 L14.2426407,15.6568542 L11.1921711,12.6063847 C10.0235906,13.4815965 8.5723351,14 7,14 C3.13400675,14 0,10.8659932 0,7 C0,3.13400675 3.13400675,0 7,0 C10.8659932,0 14,3.13400675 14,7 C14,8.5723351 13.4815965,10.0235906 12.6063847,11.1921711 L12.6063847,11.1921711 Z M7,12 C9.76142375,12 12,9.76142375 12,7 C12,4.23857625 9.76142375,2 7,2 C4.23857625,2 2,4.23857625 2,7 C2,9.76142375 4.23857625,12 7,12 Z M4,6 L10,6 L10,8 L4,8 L4,6 Z"},null)])])])]),t.createVNode("button",{onClick:h},[t.createVNode("svg",{width:"18px",height:"18px",viewBox:"0 0 16 16",version:"1.1"},[t.createVNode("g",{stroke:"none","stroke-width":"1",fill:"none","fill-rule":"evenodd"},[t.createVNode("path",{d:"M7.5,3.02242151 L7.5,4 L4.5,2 L7.5,0 L7.5,1.01640228 C7.66526181,1.00552468 7.83198572,1 8,1 C12.1421356,1 15.5,4.35786438 15.5,8.5 C15.5,12.6421356 12.1421356,16 8,16 C3.85786438,16 0.5,12.6421356 0.5,8.5 C0.5,6.9828355 0.950484514,5.5708873 1.72499011,4.39061882 L3.42173231,5.4510827 C2.83944149,6.32371289 2.5,7.37221604 2.5,8.5 C2.5,11.5375661 4.96243388,14 8,14 C11.0375661,14 13.5,11.5375661 13.5,8.5 C13.5,5.46243388 11.0375661,3 8,3 C7.83145515,3 7.66468102,3.00758131 7.5,3.02242151 Z M8,11 C6.61928813,11 5.5,9.88071187 5.5,8.5 C5.5,7.11928813 6.61928813,6 8,6 C9.38071187,6 10.5,7.11928813 10.5,8.5 C10.5,9.88071187 9.38071187,11 8,11 Z M8,10 C8.82842712,10 9.5,9.32842712 9.5,8.5 C9.5,7.67157288 8.82842712,7 8,7 C7.17157288,7 6.5,7.67157288 6.5,8.5 C6.5,9.32842712 7.17157288,10 8,10 Z",fill:"#293040"},null)])])]),t.createVNode("button",{onClick:n},[t.createVNode("svg",{width:"16px",height:"16px",viewBox:"0 0 16 16",version:"1.1"},[t.createVNode("g",{stroke:"none","stroke-width":"1",fill:"none","fill-rule":"evenodd"},[t.createVNode("polygon",{fill:"#293040","fill-rule":"nonzero",points:"10.7071068 12.2928932 9.29289322 13.7071068 3.58578644 8 9.29289322 2.29289322 10.7071068 3.70710678 6.41421356 8"},null)])])]),t.createVNode("span",{class:"devui-image-preview-index"},[l.value+1,t.createTextVNode(":"),e.previewUrlList.length]),t.createVNode("button",{class:"devui-next",onClick:a},[t.createVNode("svg",{width:"16px",height:"16px",viewBox:"0 0 16 16",version:"1.1"},[t.createVNode("g",{stroke:"none","stroke-width":"1",fill:"none","fill-rule":"evenodd"},[t.createVNode("polygon",{fill:"#293040","fill-rule":"nonzero",transform:"translate(8.146447, 8.000000) scale(-1, 1) translate(-8.146447, -8.000000) ",points:"11.7071068 12.2928932 10.2928932 13.7071068 4.58578644 8 10.2928932 2.29289322 11.7071068 3.70710678 7.41421356 8"},null)])])]),t.createVNode("button",{onClick:f},[t.createVNode("svg",{width:"18px",height:"18px",viewBox:"0 0 16 16"},[t.createVNode("g",{stroke:"none","stroke-width":"1",fill:"none","fill-rule":"evenodd"},[t.createVNode("path",{d:"M16,16 L11.429,16 L11.429,15 L14.456,15 L11.006,11.226 L11.652,10.519 L15.086,14.275 L15.086,11 L16,11 L16,16 Z M15.164,1.544 L12.009,4.994 L11.418,4.348 L14.558,0.914 L11.82,0.914 L11.82,0 L16,0 L16,4.571 L15.164,4.571 L15.164,1.544 Z M5,15 L5,16 L0,16 L0,11 L1,11 L1,14.275 L4.756,10.519 L5.463,11.226 L1.689,15 L5,15 Z M4.365,4.994 L0.914,1.544 L0.914,4.571 L3.41060513e-13,4.571 L3.41060513e-13,0 L4.571,0 L4.571,0.914 L1.578,0.914 L5.011,4.348 L4.365,4.994 Z",fill:"#293040","fill-rule":"nonzero"},null)])])]),t.createVNode("button",{onClick:v},[t.createVNode("span",null,[t.createTextVNode("1:1")])])])])}});class r{static open(e){this.$body=document.body,this.$div=document.createElement("div"),this.$overflow=this.$body.style.overflow,this.$body.appendChild(this.$div),function(e){return t.createApp(l,e)}(e).mount(this.$div),this.$body.style.setProperty("overflow","hidden","important")}static close(){var e;null==(e=this.$body)||e.style.setProperty("overflow",this.$overflow),this.$overflow=null,this.$div&&this.$body.removeChild(this.$div),this.$body=null,this.$div=null}}function s(e,t){r.open({url:e,previewUrlList:t})}function n(){r.close()}function a(e){return[...e.querySelectorAll("img")].map((e=>e.getAttribute("src")))}function d(e){e.addEventListener("click",(t=>{var o;t.stopPropagation();const i=t.target;if("img"===(null==(o=null==i?void 0:i.nodeName)?void 0:o.toLowerCase())){const t=a(e);s(i.getAttribute("src"),t)}}))}__publicField(r,"$body",null),__publicField(r,"$div",null),__publicField(r,"$overflow","");var u={mounted(e,t){if(!t.value)return d(e);const{custom:o,disableDefault:i}=t.value;o instanceof Object&&(o.open=()=>{const t=a(e);s(null==t?void 0:t[0],t)},o.close=()=>n()),i||d(e)},unmounted(){n()}},c={title:"ImagePreview 图片预览",category:"数据展示",install(e){e.directive("d-image-preview",u),e.config.globalProperties.$imagePreviewService=r}};e.ImagePreviewDirective=u,e.ImagePreviewService=r,e.default=c,Object.defineProperty(e,"__esModule",{value:!0}),e[Symbol.toStringTag]="Module"}));
|
|
1
|
+
var S=Object.defineProperty;var D=(r,e,c)=>e in r?S(r,e,{enumerable:!0,configurable:!0,writable:!0,value:c}):r[e]=c;var n=(r,e,c)=>(D(r,typeof e!="symbol"?e+"":e,c),c);(function(r,e){typeof exports=="object"&&typeof module!="undefined"?e(exports,require("vue")):typeof define=="function"&&define.amd?define(["exports","vue"],e):(r=typeof globalThis!="undefined"?globalThis:r||self,e(r.index={},r.Vue))})(this,function(r,e){"use strict";var c="";const C={url:{type:String,default:"",required:!0},previewUrlList:{type:Array,default:()=>[],required:!0},zIndex:{type:Number,required:!1},backDropZIndex:{type:Number,required:!1}};class y{constructor(o,i={}){n(this,"el");n(this,"oTransformX",0);n(this,"oTransformY",0);n(this,"transformX");n(this,"transformY");n(this,"zoom");n(this,"rotate");n(this,"STEP",.25);n(this,"MIN_SCALE",.2);n(this,"MAX_SCALE",2.5);n(this,"TRANSFORMX",0);n(this,"TRANSFORMY",0);n(this,"ZOOM",1);n(this,"ROTATE",0);this.el=o,this.transformX=i.transformX||this.TRANSFORMX,this.transformY=i.transformY||this.TRANSFORMY,this.zoom=i.zoom||this.ZOOM,this.rotate=i.rotate||this.ROTATE,this.handleDefaultDraggable(),this.onDraggable(),this.onMouseWheel()}handleDefaultDraggable(){document.body.ondragstart=()=>(window.event.returnValue=!1,!1)}onDraggable(){this.el.onmousedown=o=>{const i=o.clientX,s=o.clientY;document.onmousemove=l=>{const h=l.clientX-i,u=l.clientY-s;this.transformX=this.oTransformX+h,this.transformY=this.oTransformY+u,this.el.style.cursor="grabbing",this.setPosition()}},document.onmouseup=()=>{document.onmousemove=null,this.oTransformX=this.transformX,this.oTransformY=this.transformY,this.el.style.cursor="grab"}}onMouseWheel(){const o=this.throttle(this.setMouseWheel,100);this.el.onmousewheel=i=>{const s=-i.wheelDelta||i.deltaY||i.detail;o(s)}}throttle(o,i){let s=null;return(...l)=>{s||setTimeout(()=>{s=null,o.apply(this,l)},i)}}setMouseWheel(o){if(o<0){if(this.zoom>=this.MAX_SCALE){this.el.style.cursor="not-allowed";return}this.el.style.cursor="zoom-in",this.setZoomIn(this.STEP)}else{if(this.zoom<=this.MIN_SCALE){this.el.style.cursor="not-allowed";return}this.el.style.cursor="zoom-out",this.setZoomOut(this.STEP)}this.setPosition()}setZoomIn(o=this.STEP){this.zoom=Math.min(this.MAX_SCALE,this.zoom+o),this.setPosition()}setZoomOut(o=this.STEP){this.zoom=Math.max(this.MIN_SCALE,this.zoom-o),this.setPosition()}setZoomBest(){this.reset(),this.setPosition()}setZoomOriginal(){this.reset(),this.setPosition()}setRotate(){this.rotate+=.25,this.setPosition()}reset(){this.transformX=this.TRANSFORMX,this.transformY=this.TRANSFORMY,this.zoom=this.ZOOM}setPosition(){this.el.style.transform=`translate(${this.transformX}px, ${this.transformY}px) scale(${this.zoom}) rotate(${this.rotate}turn)`}}var b=e.defineComponent({name:"DImagePreview",props:C,emits:[],setup(t){let o=null;const i=e.ref(0),s=e.computed(()=>t.previewUrlList[i.value]),l=t.zIndex?{zIndex:t.zIndex}:{},h=t.backDropZIndex?{zIndex:t.backDropZIndex}:{};function u(){const d=document.querySelector(".devui-image-preview-main-image");o=new y(d)}function Z(){i.value=t.previewUrlList.findIndex(d=>d===t.url)}function f(){i.value=i.value<=0?t.previewUrlList.length-1:i.value-1}function m(){i.value=i.value>=t.previewUrlList.length-1?0:i.value+1}function x(){a.close()}function I(){o.setZoomIn()}function M(){o.setZoomOut()}function z(){o.setRotate()}function P(){o.setZoomBest()}function T(){o.setZoomOriginal()}function N(d){d.defaultPrevented||(d.code=="Escape"?x():d.code=="ArrowLeft"?f():d.code=="ArrowRight"&&m())}function A(){document.addEventListener("keydown",N,!1)}function $(){document.removeEventListener("keydown",N,!1)}return e.onMounted(()=>{Z(),u(),A()}),e.onUnmounted(()=>{$()}),()=>e.createVNode(e.Fragment,null,[e.createVNode("div",{class:"devui-image-preview",style:l},[e.createVNode("img",{class:"devui-image-preview-main-image",src:s.value},null),e.createVNode("button",{class:"devui-image-preview-close-btn",onClick:x},[e.createVNode("svg",{width:"16px",height:"16px",viewBox:"0 0 16 16",version:"1.1"},[e.createVNode("g",{stroke:"none","stroke-width":"1",fill:"none","fill-rule":"evenodd"},[e.createVNode("polygon",{fill:"#293040","fill-rule":"nonzero",points:"8 6.58578644 12.2426407 2.34314575 13.6568542 3.75735931 9.41421356 8 13.6568542 12.2426407 12.2426407 13.6568542 8 9.41421356 3.75735931 13.6568542 2.34314575 12.2426407 6.58578644 8 2.34314575 3.75735931 3.75735931 2.34314575"},null)])])]),e.createVNode("button",{class:"devui-image-preview-arrow-left",onClick:f},[e.createVNode("svg",{width:"18px",height:"18px",viewBox:"0 0 16 16",version:"1.1"},[e.createVNode("g",{stroke:"none","stroke-width":"1",fill:"none","fill-rule":"evenodd"},[e.createVNode("polygon",{fill:"#293040","fill-rule":"nonzero",points:"10.7071068 12.2928932 9.29289322 13.7071068 3.58578644 8 9.29289322 2.29289322 10.7071068 3.70710678 6.41421356 8"},null)])])]),e.createVNode("button",{class:"devui-image-preview-arrow-right",onClick:m},[e.createVNode("svg",{width:"18px",height:"18px",viewBox:"0 0 16 16",version:"1.1"},[e.createVNode("g",{stroke:"none","stroke-width":"1",fill:"none","fill-rule":"evenodd"},[e.createVNode("polygon",{fill:"#293040","fill-rule":"nonzero",transform:"translate(8.146447, 8.000000) scale(-1, 1) translate(-8.146447, -8.000000) ",points:"11.7071068 12.2928932 10.2928932 13.7071068 4.58578644 8 10.2928932 2.29289322 11.7071068 3.70710678 7.41421356 8"},null)])])]),e.createVNode("div",{class:"devui-image-preview-toolbar"},[e.createVNode("button",{onClick:I},[e.createVNode("svg",{width:"18px",height:"18px",viewBox:"0 0 16 16"},[e.createVNode("g",{stroke:"none","stroke-width":"1",fill:"none","fill-rule":"evenodd"},[e.createVNode("g",{fill:"#293040","fill-rule":"nonzero"},[e.createVNode("path",{d:"M6,6 L6,4 L8,4 L8,6 L10,6 L10,8 L8,8 L8,10 L6,10 L6,8 L4,8 L4,6 L6,6 Z M12.6063847,11.1921711 L15.6568542,14.2426407 L14.2426407,15.6568542 L11.1921711,12.6063847 C10.0235906,13.4815965 8.5723351,14 7,14 C3.13400675,14 0,10.8659932 0,7 C0,3.13400675 3.13400675,0 7,0 C10.8659932,0 14,3.13400675 14,7 C14,8.5723351 13.4815965,10.0235906 12.6063847,11.1921711 L12.6063847,11.1921711 Z M7,12 C9.76142375,12 12,9.76142375 12,7 C12,4.23857625 9.76142375,2 7,2 C4.23857625,2 2,4.23857625 2,7 C2,9.76142375 4.23857625,12 7,12 Z"},null)])])])]),e.createVNode("button",{onClick:M},[e.createVNode("svg",{width:"18px",height:"18px",viewBox:"0 0 16 16"},[e.createVNode("g",{stroke:"none","stroke-width":"1",fill:"none","fill-rule":"evenodd"},[e.createVNode("g",{fill:"#293040","fill-rule":"nonzero"},[e.createVNode("path",{d:"M12.6063847,11.1921711 L15.6568542,14.2426407 L14.2426407,15.6568542 L11.1921711,12.6063847 C10.0235906,13.4815965 8.5723351,14 7,14 C3.13400675,14 0,10.8659932 0,7 C0,3.13400675 3.13400675,0 7,0 C10.8659932,0 14,3.13400675 14,7 C14,8.5723351 13.4815965,10.0235906 12.6063847,11.1921711 L12.6063847,11.1921711 Z M7,12 C9.76142375,12 12,9.76142375 12,7 C12,4.23857625 9.76142375,2 7,2 C4.23857625,2 2,4.23857625 2,7 C2,9.76142375 4.23857625,12 7,12 Z M4,6 L10,6 L10,8 L4,8 L4,6 Z"},null)])])])]),e.createVNode("button",{onClick:z},[e.createVNode("svg",{width:"18px",height:"18px",viewBox:"0 0 16 16",version:"1.1"},[e.createVNode("g",{stroke:"none","stroke-width":"1",fill:"none","fill-rule":"evenodd"},[e.createVNode("path",{d:"M7.5,3.02242151 L7.5,4 L4.5,2 L7.5,0 L7.5,1.01640228 C7.66526181,1.00552468 7.83198572,1 8,1 C12.1421356,1 15.5,4.35786438 15.5,8.5 C15.5,12.6421356 12.1421356,16 8,16 C3.85786438,16 0.5,12.6421356 0.5,8.5 C0.5,6.9828355 0.950484514,5.5708873 1.72499011,4.39061882 L3.42173231,5.4510827 C2.83944149,6.32371289 2.5,7.37221604 2.5,8.5 C2.5,11.5375661 4.96243388,14 8,14 C11.0375661,14 13.5,11.5375661 13.5,8.5 C13.5,5.46243388 11.0375661,3 8,3 C7.83145515,3 7.66468102,3.00758131 7.5,3.02242151 Z M8,11 C6.61928813,11 5.5,9.88071187 5.5,8.5 C5.5,7.11928813 6.61928813,6 8,6 C9.38071187,6 10.5,7.11928813 10.5,8.5 C10.5,9.88071187 9.38071187,11 8,11 Z M8,10 C8.82842712,10 9.5,9.32842712 9.5,8.5 C9.5,7.67157288 8.82842712,7 8,7 C7.17157288,7 6.5,7.67157288 6.5,8.5 C6.5,9.32842712 7.17157288,10 8,10 Z",fill:"#293040"},null)])])]),e.createVNode("button",{onClick:f},[e.createVNode("svg",{width:"16px",height:"16px",viewBox:"0 0 16 16",version:"1.1"},[e.createVNode("g",{stroke:"none","stroke-width":"1",fill:"none","fill-rule":"evenodd"},[e.createVNode("polygon",{fill:"#293040","fill-rule":"nonzero",points:"10.7071068 12.2928932 9.29289322 13.7071068 3.58578644 8 9.29289322 2.29289322 10.7071068 3.70710678 6.41421356 8"},null)])])]),e.createVNode("span",{class:"devui-image-preview-index"},[i.value+1,e.createTextVNode(":"),t.previewUrlList.length]),e.createVNode("button",{class:"devui-next",onClick:m},[e.createVNode("svg",{width:"16px",height:"16px",viewBox:"0 0 16 16",version:"1.1"},[e.createVNode("g",{stroke:"none","stroke-width":"1",fill:"none","fill-rule":"evenodd"},[e.createVNode("polygon",{fill:"#293040","fill-rule":"nonzero",transform:"translate(8.146447, 8.000000) scale(-1, 1) translate(-8.146447, -8.000000) ",points:"11.7071068 12.2928932 10.2928932 13.7071068 4.58578644 8 10.2928932 2.29289322 11.7071068 3.70710678 7.41421356 8"},null)])])]),e.createVNode("button",{onClick:P},[e.createVNode("svg",{width:"18px",height:"18px",viewBox:"0 0 16 16"},[e.createVNode("g",{stroke:"none","stroke-width":"1",fill:"none","fill-rule":"evenodd"},[e.createVNode("path",{d:"M16,16 L11.429,16 L11.429,15 L14.456,15 L11.006,11.226 L11.652,10.519 L15.086,14.275 L15.086,11 L16,11 L16,16 Z M15.164,1.544 L12.009,4.994 L11.418,4.348 L14.558,0.914 L11.82,0.914 L11.82,0 L16,0 L16,4.571 L15.164,4.571 L15.164,1.544 Z M5,15 L5,16 L0,16 L0,11 L1,11 L1,14.275 L4.756,10.519 L5.463,11.226 L1.689,15 L5,15 Z M4.365,4.994 L0.914,1.544 L0.914,4.571 L3.41060513e-13,4.571 L3.41060513e-13,0 L4.571,0 L4.571,0.914 L1.578,0.914 L5.011,4.348 L4.365,4.994 Z",fill:"#293040","fill-rule":"nonzero"},null)])])]),e.createVNode("button",{onClick:T},[e.createVNode("span",null,[e.createTextVNode("1:1")])])])]),e.createVNode("div",{class:"devui-image-preview-bg",style:h},null)])}});function V(t){return e.createApp(b,t)}class a{static open(o){this.$body=document.body,this.$div=document.createElement("div"),this.$overflow=this.$body.style.overflow,this.$body.appendChild(this.$div),V(o).mount(this.$div),this.$body.style.setProperty("overflow","hidden","important")}static close(){var o;(o=this.$body)==null||o.style.setProperty("overflow",this.$overflow),this.$overflow=null,this.$div&&this.$body.removeChild(this.$div),this.$body=null,this.$div=null}}n(a,"$body",null),n(a,"$div",null),n(a,"$overflow","");function g(t){a.open({url:t.url,previewUrlList:t.previewUrlList,zIndex:t.zIndex,backDropZIndex:t.backDropZIndex})}function L(){a.close()}function w(t){return[...t.querySelectorAll("img")].map(i=>i.getAttribute("src"))}function p(t){t.addEventListener("click",o=>{var s;o.stopPropagation();const i=o.target;if(((s=i==null?void 0:i.nodeName)==null?void 0:s.toLowerCase())==="img"){const l=w(t),h=i.getAttribute("src");g({url:h,previewUrlList:l,zIndex:t==null?void 0:t.zIndex,backDropZIndex:t==null?void 0:t.backDropZIndex})}})}var v={mounted(t,o){if(!o.value)return p(t);const{custom:i,disableDefault:s}=o.value;i instanceof Object&&(i.open=()=>{const l=w(t);g({url:l==null?void 0:l[0],previewUrlList:l,zIndex:t==null?void 0:t.zIndex,backDropZIndex:t==null?void 0:t.backDropZIndex})},i.close=()=>L()),!s&&p(t)},unmounted(){L()},updated(t,o){var i,s;t.zIndex=(i=o.value)==null?void 0:i.zIndex,t.backDropZIndex=(s=o.value)==null?void 0:s.backDropZIndex}},k={title:"ImagePreview \u56FE\u7247\u9884\u89C8",category:"\u6570\u636E\u5C55\u793A",status:"100%",install(t){t.directive("d-image-preview",v),t.config.globalProperties.$imagePreviewService=a}};r.ImagePreviewDirective=v,r.ImagePreviewService=a,r.default=k,Object.defineProperty(r,"__esModule",{value:!0}),r[Symbol.toStringTag]="Module"});
|
package/image-preview/style.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
.devui-image-preview{position:fixed;left:0;top:0;right:0;bottom:0;z-index:calc(var(--devui-z-index-modal, 1050)
|
|
1
|
+
.devui-image-preview{position:fixed;left:0;top:0;right:0;bottom:0;z-index:calc(var(--devui-z-index-modal, 1050));display:flex;align-items:center;justify-content:center;overflow:hidden}.devui-image-preview svg,.devui-image-preview polygon,.devui-image-preview g,.devui-image-preview path{fill:var(--devui-icon-text, #252b3a)}.devui-image-preview-main-image{width:auto;height:auto;max-width:90%;max-height:90%;margin-top:-20px;cursor:grab}.devui-image-preview-close-btn{position:fixed;z-index:var(--devui-z-index-modal, 1050);cursor:pointer;width:36px;height:36px;border-radius:50%;background:var(--devui-highlight-overlay, rgba(255, 255, 255, .8));box-shadow:var(--devui-shadow-length-base, 0 1px 4px 0) var(--devui-light-shadow, rgba(0, 0, 0, .1));display:inline-flex;align-items:center;justify-content:center;top:15px;right:20px}.devui-image-preview-close-btn:hover{background:var(--devui-area, #f8f8f8)}.devui-image-preview-close-btn svg{width:38px;height:18px}.devui-image-preview-arrow-left{position:fixed;z-index:var(--devui-z-index-modal, 1050);cursor:pointer;width:36px;height:36px;border-radius:50%;background:var(--devui-highlight-overlay, rgba(255, 255, 255, .8));box-shadow:var(--devui-shadow-length-base, 0 1px 4px 0) var(--devui-light-shadow, rgba(0, 0, 0, .1));display:inline-flex;align-items:center;justify-content:center;top:50%;left:20px;transform:translateY(-50%)}.devui-image-preview-arrow-left:hover{background:var(--devui-area, #f8f8f8)}.devui-image-preview-arrow-left svg{width:38px;height:18px}.devui-image-preview-arrow-right{position:fixed;z-index:var(--devui-z-index-modal, 1050);cursor:pointer;width:36px;height:36px;border-radius:50%;background:var(--devui-highlight-overlay, rgba(255, 255, 255, .8));box-shadow:var(--devui-shadow-length-base, 0 1px 4px 0) var(--devui-light-shadow, rgba(0, 0, 0, .1));display:inline-flex;align-items:center;justify-content:center;top:50%;right:20px;transform:translateY(-50%)}.devui-image-preview-arrow-right:hover{background:var(--devui-area, #f8f8f8)}.devui-image-preview-arrow-right svg{width:38px;height:18px}.devui-image-preview-toolbar{position:fixed;bottom:0;left:0;width:100%;height:50px;display:flex;align-items:center;justify-content:center;background:var(--devui-highlight-overlay, rgba(255, 255, 255, .8));box-shadow:var(--devui-shadow-fullscreen-overlay, 0 8px 40px 0) var(--devui-light-shadow, rgba(0, 0, 0, .1))}.devui-image-preview-toolbar button{display:inline-flex;width:24px;height:24px;align-items:center;justify-content:center;color:var(--devui-text, #252b3a)}.devui-image-preview-toolbar .devui-image-preview-index{display:inline-flex;width:100px;justify-content:center;align-items:center;cursor:pointer}.devui-image-preview-toolbar>:not(:first-child){margin-left:20px}.devui-image-preview-bg{position:fixed;left:0;top:0;right:0;bottom:0;z-index:calc(var(--devui-z-index-modal, 1050) - 1);background:var(--devui-shadow, rgba(0, 0, 0, .2));border-radius:var(--devui-border-radius, 2px);box-shadow:var(--devui-shadow-fullscreen-overlay, 0 8px 40px 0) var(--devui-shadow, rgba(0, 0, 0, .2))}
|
package/index.d.ts
ADDED