diff --git a/dist/css/chunk-2234305e.5a53243e.css b/dist/css/chunk-000055b2.8b7fdf83.css
similarity index 90%
rename from dist/css/chunk-2234305e.5a53243e.css
rename to dist/css/chunk-000055b2.8b7fdf83.css
index 8db983c..34872e7 100644
--- a/dist/css/chunk-2234305e.5a53243e.css
+++ b/dist/css/chunk-000055b2.8b7fdf83.css
@@ -1 +1 @@
-.vue-cropper[data-v-be5e5ddc]{position:relative;width:100%;height:100%;box-sizing:border-box;user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;direction:ltr;touch-action:none;text-align:left;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQAQMAAAAlPW0iAAAAA3NCSVQICAjb4U/gAAAABlBMVEXMzMz////TjRV2AAAACXBIWXMAAArrAAAK6wGCiw1aAAAAHHRFWHRTb2Z0d2FyZQBBZG9iZSBGaXJld29ya3MgQ1M26LyyjAAAABFJREFUCJlj+M/AgBVhF/0PAH6/D/HkDxOGAAAAAElFTkSuQmCC)}.cropper-box-canvas[data-v-be5e5ddc],.cropper-box[data-v-be5e5ddc],.cropper-crop-box[data-v-be5e5ddc],.cropper-drag-box[data-v-be5e5ddc],.cropper-face[data-v-be5e5ddc]{position:absolute;top:0;right:0;bottom:0;left:0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.cropper-box-canvas img[data-v-be5e5ddc]{position:relative;text-align:left;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;transform:none;max-width:none;max-height:none}.cropper-box[data-v-be5e5ddc]{overflow:hidden}.cropper-move[data-v-be5e5ddc]{cursor:move}.cropper-crop[data-v-be5e5ddc]{cursor:crosshair}.cropper-modal[data-v-be5e5ddc]{background:rgba(0,0,0,.5)}.cropper-view-box[data-v-be5e5ddc]{display:block;overflow:hidden;width:100%;height:100%;outline:1px solid #39f;outline-color:rgba(51,153,255,.7490196078431373)}.cropper-view-box[data-v-be5e5ddc],.cropper-view-box img[data-v-be5e5ddc]{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.cropper-view-box img[data-v-be5e5ddc]{text-align:left;max-width:none;max-height:none}.cropper-face[data-v-be5e5ddc]{top:0;left:0;background-color:#fff;opacity:.1}.crop-info[data-v-be5e5ddc]{position:absolute;left:0;min-width:65px;text-align:center;color:#fff;line-height:20px;background-color:rgba(0,0,0,.8);font-size:12px}.crop-line[data-v-be5e5ddc]{position:absolute;display:block;width:100%;height:100%;opacity:.1}.line-w[data-v-be5e5ddc]{top:-3px;left:0;height:5px;cursor:n-resize}.line-a[data-v-be5e5ddc]{top:0;left:-3px;width:5px;cursor:w-resize}.line-s[data-v-be5e5ddc]{bottom:-3px;left:0;height:5px;cursor:s-resize}.line-d[data-v-be5e5ddc]{top:0;right:-3px;width:5px;cursor:e-resize}.crop-point[data-v-be5e5ddc]{position:absolute;width:8px;height:8px;opacity:.75;background-color:#39f;border-radius:100%}.point1[data-v-be5e5ddc]{top:-4px;left:-4px;cursor:nw-resize}.point2[data-v-be5e5ddc]{top:-5px;left:50%;margin-left:-3px;cursor:n-resize}.point3[data-v-be5e5ddc]{top:-4px;right:-4px;cursor:ne-resize}.point4[data-v-be5e5ddc]{top:50%;left:-4px;margin-top:-3px;cursor:w-resize}.point5[data-v-be5e5ddc]{top:50%;right:-4px;margin-top:-3px;cursor:e-resize}.point6[data-v-be5e5ddc]{bottom:-5px;left:-4px;cursor:sw-resize}.point7[data-v-be5e5ddc]{bottom:-5px;left:50%;margin-left:-3px;cursor:s-resize}.point8[data-v-be5e5ddc]{bottom:-5px;right:-4px;cursor:se-resize}@media screen and (max-width:500px){.crop-point[data-v-be5e5ddc]{position:absolute;width:20px;height:20px;opacity:.45;background-color:#39f;border-radius:100%}.point1[data-v-be5e5ddc]{top:-10px;left:-10px}.point2[data-v-be5e5ddc],.point4[data-v-be5e5ddc],.point5[data-v-be5e5ddc],.point7[data-v-be5e5ddc]{display:none}.point3[data-v-be5e5ddc]{top:-10px;right:-10px}.point4[data-v-be5e5ddc]{top:0;left:0}.point6[data-v-be5e5ddc]{bottom:-10px;left:-10px}.point8[data-v-be5e5ddc]{bottom:-10px;right:-10px}}.cropper-content[data-v-901cf5cc]{display:flex;width:400px;height:400px;text-align:center}[data-v-901cf5cc] .el-button{margin-top:15px}.m-cropper[data-v-901cf5cc]{width:100%;height:500px;display:flex}.m-cropper .left[data-v-901cf5cc]{width:400px;margin-right:30px}.m-cropper .preview[data-v-901cf5cc]{width:200px;height:200px;margin-top:20px;overflow:hidden}
\ No newline at end of file
+.vue-cropper[data-v-be5e5ddc]{position:relative;width:100%;height:100%;box-sizing:border-box;user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;direction:ltr;touch-action:none;text-align:left;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQAQMAAAAlPW0iAAAAA3NCSVQICAjb4U/gAAAABlBMVEXMzMz////TjRV2AAAACXBIWXMAAArrAAAK6wGCiw1aAAAAHHRFWHRTb2Z0d2FyZQBBZG9iZSBGaXJld29ya3MgQ1M26LyyjAAAABFJREFUCJlj+M/AgBVhF/0PAH6/D/HkDxOGAAAAAElFTkSuQmCC)}.cropper-box-canvas[data-v-be5e5ddc],.cropper-box[data-v-be5e5ddc],.cropper-crop-box[data-v-be5e5ddc],.cropper-drag-box[data-v-be5e5ddc],.cropper-face[data-v-be5e5ddc]{position:absolute;top:0;right:0;bottom:0;left:0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.cropper-box-canvas img[data-v-be5e5ddc]{position:relative;text-align:left;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;transform:none;max-width:none;max-height:none}.cropper-box[data-v-be5e5ddc]{overflow:hidden}.cropper-move[data-v-be5e5ddc]{cursor:move}.cropper-crop[data-v-be5e5ddc]{cursor:crosshair}.cropper-modal[data-v-be5e5ddc]{background:rgba(0,0,0,.5)}.cropper-view-box[data-v-be5e5ddc]{display:block;overflow:hidden;width:100%;height:100%;outline:1px solid #39f;outline-color:rgba(51,153,255,.7490196078431373)}.cropper-view-box[data-v-be5e5ddc],.cropper-view-box img[data-v-be5e5ddc]{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.cropper-view-box img[data-v-be5e5ddc]{text-align:left;max-width:none;max-height:none}.cropper-face[data-v-be5e5ddc]{top:0;left:0;background-color:#fff;opacity:.1}.crop-info[data-v-be5e5ddc]{position:absolute;left:0;min-width:65px;text-align:center;color:#fff;line-height:20px;background-color:rgba(0,0,0,.8);font-size:12px}.crop-line[data-v-be5e5ddc]{position:absolute;display:block;width:100%;height:100%;opacity:.1}.line-w[data-v-be5e5ddc]{top:-3px;left:0;height:5px;cursor:n-resize}.line-a[data-v-be5e5ddc]{top:0;left:-3px;width:5px;cursor:w-resize}.line-s[data-v-be5e5ddc]{bottom:-3px;left:0;height:5px;cursor:s-resize}.line-d[data-v-be5e5ddc]{top:0;right:-3px;width:5px;cursor:e-resize}.crop-point[data-v-be5e5ddc]{position:absolute;width:8px;height:8px;opacity:.75;background-color:#39f;border-radius:100%}.point1[data-v-be5e5ddc]{top:-4px;left:-4px;cursor:nw-resize}.point2[data-v-be5e5ddc]{top:-5px;left:50%;margin-left:-3px;cursor:n-resize}.point3[data-v-be5e5ddc]{top:-4px;right:-4px;cursor:ne-resize}.point4[data-v-be5e5ddc]{top:50%;left:-4px;margin-top:-3px;cursor:w-resize}.point5[data-v-be5e5ddc]{top:50%;right:-4px;margin-top:-3px;cursor:e-resize}.point6[data-v-be5e5ddc]{bottom:-5px;left:-4px;cursor:sw-resize}.point7[data-v-be5e5ddc]{bottom:-5px;left:50%;margin-left:-3px;cursor:s-resize}.point8[data-v-be5e5ddc]{bottom:-5px;right:-4px;cursor:se-resize}@media screen and (max-width:500px){.crop-point[data-v-be5e5ddc]{position:absolute;width:20px;height:20px;opacity:.45;background-color:#39f;border-radius:100%}.point1[data-v-be5e5ddc]{top:-10px;left:-10px}.point2[data-v-be5e5ddc],.point4[data-v-be5e5ddc],.point5[data-v-be5e5ddc],.point7[data-v-be5e5ddc]{display:none}.point3[data-v-be5e5ddc]{top:-10px;right:-10px}.point4[data-v-be5e5ddc]{top:0;left:0}.point6[data-v-be5e5ddc]{bottom:-10px;left:-10px}.point8[data-v-be5e5ddc]{bottom:-10px;right:-10px}}.cropper-content[data-v-2ff088fd]{display:flex;width:400px;height:400px;text-align:center}[data-v-2ff088fd] .el-button{margin-top:15px}.m-cropper[data-v-2ff088fd]{width:100%;height:500px;display:flex}.m-cropper .left[data-v-2ff088fd]{width:400px;margin-right:30px}.m-cropper .preview[data-v-2ff088fd]{width:200px;height:200px;margin-top:20px;overflow:hidden}
\ No newline at end of file
diff --git a/dist/index.html b/dist/index.html
index 9c6a80e..fb58d21 100644
--- a/dist/index.html
+++ b/dist/index.html
@@ -1 +1 @@
-
admin3
\ No newline at end of file
+admin3
\ No newline at end of file
diff --git a/dist/js/app.6c35b76e.js b/dist/js/app.c41183c0.js
similarity index 98%
rename from dist/js/app.6c35b76e.js
rename to dist/js/app.c41183c0.js
index 14ed33d..59e5cc5 100644
--- a/dist/js/app.6c35b76e.js
+++ b/dist/js/app.c41183c0.js
@@ -1,2 +1,2 @@
-(function(e){function t(t){for(var c,o,i=t[0],u=t[1],l=t[2],s=0,f=[];s0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1?arguments[1]:void 0,c=e.filter((function(e){return!e.hidden&&(n.value=e,!0)}));return 1===c.length||0===c.length&&(n.value=Object(p["a"])(Object(p["a"])({},t),{},{path:"",noShowingChildren:!0}),!0)},r=function(e){return m(e)?e:m(t.basePath)?t.basePath:w.a.resolve(t.basePath,e)};return function(t,a){var i=Object(o["resolveComponent"])("el-icon"),u=Object(o["resolveComponent"])("el-menu-item"),l=Object(o["resolveComponent"])("sidebar-item",!0),s=Object(o["resolveComponent"])("el-sub-menu");return e.item.hidden?Object(o["createCommentVNode"])("",!0):(Object(o["openBlock"])(),Object(o["createElementBlock"])(o["Fragment"],{key:0},[c(e.item.children,e.item)?(Object(o["openBlock"])(),Object(o["createElementBlock"])(o["Fragment"],{key:0},[n.value.meta?(Object(o["openBlock"])(),Object(o["createBlock"])(v,{key:0,to:r(n.value.path)},{default:Object(o["withCtx"])((function(){return[Object(o["createVNode"])(u,{index:r(n.value.path)},{title:Object(o["withCtx"])((function(){return[Object(o["createTextVNode"])(Object(o["toDisplayString"])(n.value.meta&&n.value.meta.title),1)]})),default:Object(o["withCtx"])((function(){return[Object(o["createVNode"])(i,{size:20},{default:Object(o["withCtx"])((function(){var e;return[(Object(o["openBlock"])(),Object(o["createBlock"])(Object(o["resolveDynamicComponent"])(null===(e=n.value)||void 0===e?void 0:e.meta.icon)))]})),_:1})]})),_:1},8,["index"])]})),_:1},8,["to"])):Object(o["createCommentVNode"])("",!0)],64)):(Object(o["openBlock"])(),Object(o["createBlock"])(s,{key:1,index:r(e.item.path),"popper-append-to-body":""},{title:Object(o["withCtx"])((function(){return[Object(o["createVNode"])(i,{size:20},{default:Object(o["withCtx"])((function(){var t;return[(Object(o["openBlock"])(),Object(o["createBlock"])(Object(o["resolveDynamicComponent"])(null===(t=e.item.meta)||void 0===t?void 0:t.icon)))]})),_:1}),Object(o["createElementVNode"])("span",null,Object(o["toDisplayString"])(e.item.meta&&e.item.meta.title),1)]})),default:Object(o["withCtx"])((function(){return[(Object(o["openBlock"])(!0),Object(o["createElementBlock"])(o["Fragment"],null,Object(o["renderList"])(e.item.children,(function(e){return Object(o["openBlock"])(),Object(o["createBlock"])(l,{key:e.path,item:e,"base-path":r(e.path)},null,8,["item","base-path"])})),128))]})),_:1},8,["index"]))],64))}}});const C=g;var V=C,x=c("5502"),E=c("cf05"),y=c.n(E),_=["src"],B={key:1,class:"sidebar-title"},N=["src"],S={class:"sidebar-title"},T=Object(o["defineComponent"])({setup:function(e){var t=Object(x["b"])(),n=Object(o["ref"])("Vue Admin Perfect"),c=Object(o["computed"])((function(){return t.state.app.isCollapse}));return function(e,t){var r=Object(o["resolveComponent"])("router-link");return Object(o["openBlock"])(),Object(o["createElementBlock"])("div",{class:Object(o["normalizeClass"])(["sidebar-logo-container",{collapse:Object(o["unref"])(c)}])},[Object(o["createVNode"])(o["Transition"],{name:"sidebarLogoFade"},{default:Object(o["withCtx"])((function(){return[Object(o["unref"])(c)?(Object(o["openBlock"])(),Object(o["createBlock"])(r,{key:"collapse",class:"sidebar-logo-link",to:"/"},{default:Object(o["withCtx"])((function(){return[Object(o["unref"])(y.a)?(Object(o["openBlock"])(),Object(o["createElementBlock"])("img",{key:0,src:Object(o["unref"])(y.a),class:"sidebar-logo"},null,8,_)):(Object(o["openBlock"])(),Object(o["createElementBlock"])("h1",B,"Perfect "))]})),_:1})):(Object(o["openBlock"])(),Object(o["createBlock"])(r,{key:"expand",class:"sidebar-logo-link",to:"/"},{default:Object(o["withCtx"])((function(){return[Object(o["unref"])(y.a)?(Object(o["openBlock"])(),Object(o["createElementBlock"])("img",{key:0,src:Object(o["unref"])(y.a),class:"sidebar-logo"},null,8,N)):Object(o["createCommentVNode"])("",!0),Object(o["createElementVNode"])("h1",S,Object(o["toDisplayString"])(n.value),1)]})),_:1}))]})),_:1})],2)}}});c("daa0");const P=i()(T,[["__scopeId","data-v-5c19406b"]]);var F=P,I=Object(o["defineComponent"])({setup:function(e){var t=Object(x["b"])(),n=Object(f["c"])(),c=Object(o["computed"])((function(){return t.state.permission.routes})),r=Object(o["computed"])((function(){var e=n.meta,t=n.path;return e.activeMenu?e.activeMenu:t})),a=Object(o["computed"])((function(){return t.state.app.isCollapse}));return function(e,t){var n=Object(o["resolveComponent"])("el-menu"),i=Object(o["resolveComponent"])("el-scrollbar");return Object(o["openBlock"])(),Object(o["createElementBlock"])("div",null,[Object(o["createVNode"])(F,{collapse:Object(o["unref"])(a)},null,8,["collapse"]),Object(o["createVNode"])(i,{"wrap-class":"scrollbar-wrapper"},{default:Object(o["withCtx"])((function(){return[Object(o["createVNode"])(n,{"default-active":Object(o["unref"])(r),"active-text-color":"#ffd04b","background-color":"#304156","text-color":"#fff",class:"el-menu-vertical-demo",collapse:Object(o["unref"])(a)},{default:Object(o["withCtx"])((function(){return[(Object(o["openBlock"])(!0),Object(o["createElementBlock"])(o["Fragment"],null,Object(o["renderList"])(Object(o["unref"])(c),(function(e){return Object(o["openBlock"])(),Object(o["createBlock"])(V,{key:e.path,item:e,"base-path":e.path},null,8,["item","base-path"])})),128))]})),_:1},8,["default-active","collapse"])]})),_:1})])}}});c("e9e1");const D=I;var R=D,L=c("1da1"),A=(c("96cf"),c("b0c0"),{class:"dialog-footer"}),M=Object(o["createTextVNode"])("取消"),q=Object(o["createTextVNode"])("确定"),z=Object(o["defineComponent"])({setup:function(e,t){var n=t.expose,c=Object(o["ref"])(!1),r=function(){c.value=!0},a=Object(o["ref"])(""),i=Object(o["ref"])(),u=Object(o["reactive"])({name:"",mobile:"",password:""}),l=Object(o["reactive"])({password:[{required:!0,message:"请输入密码",trigger:"blur"}]}),s=function(e){e&&e.validate((function(e){if(!e)return console.log("error submit!"),!1;console.log("submit!")}))};return n({show:r}),function(e,t){var n=Object(o["resolveComponent"])("el-input"),r=Object(o["resolveComponent"])("el-form-item"),f=Object(o["resolveComponent"])("el-form"),d=Object(o["resolveComponent"])("el-button"),b=Object(o["resolveComponent"])("el-dialog");return Object(o["openBlock"])(),Object(o["createBlock"])(b,{modelValue:c.value,"onUpdate:modelValue":t[5]||(t[5]=function(e){return c.value=e}),title:"修改密码",width:"60%"},{footer:Object(o["withCtx"])((function(){return[Object(o["createElementVNode"])("span",A,[Object(o["createVNode"])(d,{onClick:t[3]||(t[3]=function(e){return c.value=!1})},{default:Object(o["withCtx"])((function(){return[M]})),_:1}),Object(o["createVNode"])(d,{type:"primary",onClick:t[4]||(t[4]=function(e){return s(i.value)})},{default:Object(o["withCtx"])((function(){return[q]})),_:1})])]})),default:Object(o["withCtx"])((function(){return[Object(o["createVNode"])(f,{ref_key:"ruleFormRef",ref:i,model:Object(o["unref"])(u),rules:Object(o["unref"])(l),"label-width":"120px",class:"demo-ruleForm",size:a.value},{default:Object(o["withCtx"])((function(){return[Object(o["createVNode"])(r,{label:"姓名"},{default:Object(o["withCtx"])((function(){return[Object(o["createVNode"])(n,{modelValue:Object(o["unref"])(u).name,"onUpdate:modelValue":t[0]||(t[0]=function(e){return Object(o["unref"])(u).name=e}),disabled:""},null,8,["modelValue"])]})),_:1}),Object(o["createVNode"])(r,{label:"手机号码"},{default:Object(o["withCtx"])((function(){return[Object(o["createVNode"])(n,{modelValue:Object(o["unref"])(u).mobile,"onUpdate:modelValue":t[1]||(t[1]=function(e){return Object(o["unref"])(u).mobile=e}),disabled:""},null,8,["modelValue"])]})),_:1}),Object(o["createVNode"])(r,{label:"修改密码",prop:"password"},{default:Object(o["withCtx"])((function(){return[Object(o["createVNode"])(n,{modelValue:Object(o["unref"])(u).password,"onUpdate:modelValue":t[2]||(t[2]=function(e){return Object(o["unref"])(u).password=e})},null,8,["modelValue"])]})),_:1})]})),_:1},8,["model","rules","size"])]})),_:1},8,["modelValue"])}}});c("1451");const W=i()(z,[["__scopeId","data-v-37da47ea"]]);var U=W,H=c("b85c"),K=c("2909"),J=(c("99af"),c("fb6a"),c("5319"),c("c740"),Object(o["defineComponent"])({setup:function(t){Object(o["ref"])(0);var n=Object(o["ref"])(),c=Object(o["computed"])((function(){return n.value.$refs.wrap})),r=function(){var t=e.wheelDelta||40*-e.deltaY,n=c.value;n.scrollLeft=n.scrollLeft+t/4};return Object(o["onMounted"])((function(){console.log("scrollContainer.value",n.value)})),function(e,t){var c=Object(o["resolveComponent"])("el-scrollbar");return Object(o["openBlock"])(),Object(o["createBlock"])(c,{ref_key:"scrollContainer",ref:n,vertical:!1,class:"scroll-container",onWheel:Object(o["withModifiers"])(r,["prevent"])},{default:Object(o["withCtx"])((function(){return[Object(o["renderSlot"])(e.$slots,"default")]})),_:3},8,["onWheel"])}}}));c("0405");const $=i()(J,[["__scopeId","data-v-2893f9b4"]]);var Y=$,G={class:"tags-view-container"},Q=Object(o["defineComponent"])({setup:function(e){var t=c("df7c"),n=Object(x["b"])(),r=Object(f["c"])(),a=Object(f["d"])(),i=Object(o["computed"])((function(){return n.state.permission.routes})),u=Object(o["computed"])((function(){return n.state.tagsView.visitedViews})),l=Object(o["ref"])([]);function s(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"/",c=[];return e.forEach((function(e){if(e.meta&&e.meta.affix){var o=t.resolve(n,e.path);c.push({fullPath:o,path:o,name:e.name,meta:Object(p["a"])({},e.meta)})}if(e.children){var r=s(e.children,e.path);r.length>=1&&(c=[].concat(Object(K["a"])(c),Object(K["a"])(r)))}})),c}var d=function(){var e=l.value=s(i.value);console.log("affixTags",l);var t,c=Object(H["a"])(e);try{for(c.s();!(t=c.n()).done;){var o=t.value;o.name&&n.dispatch("tagsView/addVisitedView",o)}}catch(r){c.e(r)}finally{c.f()}};var b=function(e){return e.path===r.path},m=function(e){return e.meta&&e.meta.affix},h=function(){var e=r.name;return e&&n.dispatch("tagsView/addView",r),!1};function O(e,t){var n=e.slice(-1)[0];n?a.push(n.fullPath):"home"===t.name?a.replace({path:"/redirect"+t.fullPath}):a.push("/")}var j=function(e){n.dispatch("tagsView/delView",e).then((function(t){var n=t.visitedViews;b(e)&&O(n,e)}))};return Object(o["onMounted"])((function(){d(),h(),Object(o["watch"])(r,(function(){h()}))})),function(e,t){var n=Object(o["resolveComponent"])("circle-close-filled"),c=Object(o["resolveComponent"])("el-icon"),r=Object(o["resolveComponent"])("router-link");return Object(o["openBlock"])(),Object(o["createElementBlock"])("div",G,[Object(o["createVNode"])(Y,{ref:"scrollPane",class:"tags-view-wrapper"},{default:Object(o["withCtx"])((function(){return[(Object(o["openBlock"])(!0),Object(o["createElementBlock"])(o["Fragment"],null,Object(o["renderList"])(Object(o["unref"])(u),(function(e){return Object(o["openBlock"])(),Object(o["createBlock"])(r,{ref_for:!0,ref:"tag",class:Object(o["normalizeClass"])([b(e)?"active":"","tags-view-item"]),key:e.path,to:{path:e.path,query:e.query,fullPath:e.fullPath},tag:"span"},{default:Object(o["withCtx"])((function(){return[Object(o["createTextVNode"])(Object(o["toDisplayString"])(e.title)+" ",1),m(e)?Object(o["createCommentVNode"])("",!0):(Object(o["openBlock"])(),Object(o["createBlock"])(c,{key:0,onClick:Object(o["withModifiers"])((function(t){return j(e)}),["prevent","stop"])},{default:Object(o["withCtx"])((function(){return[Object(o["createVNode"])(n)]})),_:2},1032,["onClick"]))]})),_:2},1032,["class","to"])})),128))]})),_:1},512)])}}});c("670d");const X=i()(Q,[["__scopeId","data-v-f8d00b58"]]);var Z=X,ee=c("3835"),te=[["requestFullscreen","exitFullscreen","fullscreenElement","fullscreenEnabled","fullscreenchange","fullscreenerror"],["webkitRequestFullscreen","webkitExitFullscreen","webkitFullscreenElement","webkitFullscreenEnabled","webkitfullscreenchange","webkitfullscreenerror"],["webkitRequestFullScreen","webkitCancelFullScreen","webkitCurrentFullScreenElement","webkitCancelFullScreen","webkitfullscreenchange","webkitfullscreenerror"],["mozRequestFullScreen","mozCancelFullScreen","mozFullScreenElement","mozFullScreenEnabled","mozfullscreenchange","mozfullscreenerror"],["msRequestFullscreen","msExitFullscreen","msFullscreenElement","msFullscreenEnabled","MSFullscreenChange","MSFullscreenError"]],ne=function(){var e,t=te[0],n={},c=Object(H["a"])(te);try{for(c.s();!(e=c.n()).done;){var o=e.value,r=null===o||void 0===o?void 0:o[1];if(r in document){var a,i=Object(H["a"])(o.entries());try{for(i.s();!(a=i.n()).done;){var u=Object(ee["a"])(a.value,2),l=u[0],s=u[1];n[t[l]]=s}}catch(f){i.e(f)}finally{i.f()}return n}}}catch(f){c.e(f)}finally{c.f()}return!1}(),ce={change:ne.fullscreenchange,error:ne.fullscreenerror},oe={request:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:document.documentElement,t=arguments.length>1?arguments[1]:void 0;return new Promise((function(n,c){var o=function e(){oe.off("change",e),n()};oe.on("change",o);var r=e[ne.requestFullscreen](t);r instanceof Promise&&r.then(o).catch(c)}))},exit:function(){return new Promise((function(e,t){if(oe.isFullscreen){var n=function t(){oe.off("change",t),e()};oe.on("change",n);var c=document[ne.exitFullscreen]();c instanceof Promise&&c.then(n).catch(t)}else e()}))},toggle:function(e,t){return oe.isFullscreen?oe.exit():oe.request(e,t)},onchange:function(e){oe.on("change",e)},onerror:function(e){oe.on("error",e)},on:function(e,t){var n=ce[e];n&&document.addEventListener(n,t,!1)},off:function(e,t){var n=ce[e];n&&document.removeEventListener(n,t,!1)},raw:ne};Object.defineProperties(oe,{isFullscreen:{get:function(){return Boolean(document[ne.fullscreenElement])}},element:{enumerable:!0,get:function(){var e;return null!==(e=document[ne.fullscreenElement])&&void 0!==e?e:void 0}},isEnabled:{enumerable:!0,get:function(){return Boolean(document[ne.fullscreenEnabled])}}}),ne||(oe={isEnabled:!1});var re=oe,ae=c("3ef4"),ie=Object(o["defineComponent"])({setup:function(e){var t=Object(o["ref"])(!1),n=function(){if(!re.isEnabled)return Object(ae["a"])({message:"你的浏览器不支持",type:"warning"}),!1;re.toggle()},c=function(){t.value=re.isFullscreen},r=function(){re.isEnabled&&re.on("change",c)},a=function(){re.isEnabled&&re.off("change",c)};return Object(o["onMounted"])((function(){r()})),Object(o["onBeforeUnmount"])((function(){a()})),function(e,t){var c=Object(o["resolveComponent"])("full-screen"),r=Object(o["resolveComponent"])("el-icon");return Object(o["openBlock"])(),Object(o["createBlock"])(r,{title:"全屏",onClick:Object(o["withModifiers"])(n,["stop"]),style:{"margin-right":"10px",cursor:"pointer"}},{default:Object(o["withCtx"])((function(){return[Object(o["createVNode"])(c)]})),_:1},8,["onClick"])}}});const ue=ie;var le=ue,se=c("c9a1"),fe={class:"header"},de={class:"right"},be={class:"el-dropdown-link"},pe=Object(o["createTextVNode"])("退出登录"),me=Object(o["createTextVNode"])("修改密码"),he=Object(o["defineComponent"])({setup:function(e){var t=Object(x["b"])(),n=Object(o["ref"])(),c=Object(f["d"])(),r=Object(o["computed"])((function(){return t.state.app.isCollapse})),a=Object(o["computed"])((function(){return t.state.user.userInfo})),i=function(){var e=Object(L["a"])(regeneratorRuntime.mark((function e(){return regeneratorRuntime.wrap((function(e){while(1)switch(e.prev=e.next){case 0:se["a"].confirm("确定退出登录吗?","退出登录",{confirmButtonText:"确定",cancelButtonText:"取消",type:"warning"}).then(Object(L["a"])(regeneratorRuntime.mark((function e(){return regeneratorRuntime.wrap((function(e){while(1)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,t.dispatch("user/logout");case 3:c.push({path:"/login"}),e.next=8;break;case 6:e.prev=6,e.t0=e["catch"](0);case 8:case"end":return e.stop()}}),e,null,[[0,6]])})))).catch((function(){}));case 1:case"end":return e.stop()}}),e)})));return function(){return e.apply(this,arguments)}}(),u=function(e){switch(e){case 1:i();break;case 2:n.value.show();break}},l=function(e){t.commit("app/SET_COLLAPSE",e)};return function(e,t){var c=Object(o["resolveComponent"])("expand"),i=Object(o["resolveComponent"])("el-icon"),s=Object(o["resolveComponent"])("fold"),f=Object(o["resolveComponent"])("arrow-down"),d=Object(o["resolveComponent"])("el-dropdown-item"),b=Object(o["resolveComponent"])("el-dropdown-menu"),p=Object(o["resolveComponent"])("el-dropdown");return Object(o["openBlock"])(),Object(o["createElementBlock"])("div",{class:"m-layout-header",style:Object(o["normalizeStyle"])({left:"".concat(Object(o["unref"])(r)?"56":"210","px")})},[Object(o["createElementVNode"])("div",fe,[Object(o["createElementVNode"])("div",null,[Object(o["unref"])(r)?(Object(o["openBlock"])(),Object(o["createBlock"])(i,{key:0,class:"icon",onClick:t[0]||(t[0]=function(e){return l(!1)})},{default:Object(o["withCtx"])((function(){return[Object(o["createVNode"])(c)]})),_:1})):(Object(o["openBlock"])(),Object(o["createBlock"])(i,{key:1,class:"icon",onClick:t[1]||(t[1]=function(e){return l(!0)})},{default:Object(o["withCtx"])((function(){return[Object(o["createVNode"])(s)]})),_:1}))]),Object(o["createElementVNode"])("div",de,[Object(o["createVNode"])(le),Object(o["createVNode"])(p,{onCommand:u},{dropdown:Object(o["withCtx"])((function(){return[Object(o["createVNode"])(b,null,{default:Object(o["withCtx"])((function(){return[Object(o["createVNode"])(d,{command:1},{default:Object(o["withCtx"])((function(){return[pe]})),_:1}),Object(o["createVNode"])(d,{command:2},{default:Object(o["withCtx"])((function(){return[me]})),_:1})]})),_:1})]})),default:Object(o["withCtx"])((function(){return[Object(o["createElementVNode"])("span",be,[Object(o["createTextVNode"])(Object(o["toDisplayString"])(Object(o["unref"])(a).username)+" ",1),Object(o["createVNode"])(i,{class:"el-icon--right"},{default:Object(o["withCtx"])((function(){return[Object(o["createVNode"])(f)]})),_:1})])]})),_:1})])]),Object(o["createVNode"])(Z),Object(o["createVNode"])(U,{ref_key:"person",ref:n},null,512)],4)}}});c("b0d7");const Oe=i()(he,[["__scopeId","data-v-96e07a22"]]);var je=Oe,ve={class:"app-main"};function ke(e,t){var n=Object(o["resolveComponent"])("router-view");return Object(o["openBlock"])(),Object(o["createElementBlock"])("section",ve,[Object(o["createVNode"])(n,null,{default:Object(o["withCtx"])((function(e){var t=e.Component;return[(Object(o["openBlock"])(),Object(o["createBlock"])(Object(o["resolveDynamicComponent"])(t)))]})),_:1})])}c("ef12");const we={},ge=i()(we,[["render",ke],["__scopeId","data-v-4137f49f"]]);var Ce=ge,Ve=Object(o["defineComponent"])({name:"layout",components:{Sidebar:R,UHeader:je,AppMain:Ce},setup:function(){var e=Object(x["b"])(),t=Object(o["computed"])((function(){return e.state.app.isCollapse}));return{isCollapse:t}}});c("a226");const xe=i()(Ve,[["render",b],["__scopeId","data-v-583891f3"]]);var Ee=xe,ye={path:"/charts",component:Ee,redirect:"noRedirect",name:"Charts",meta:{title:"图表",icon:"trend-charts"},children:[{path:"line",component:function(){return Promise.all([c.e("chunk-6f60c8f1"),c.e("chunk-6baa09d4")]).then(c.bind(null,"61a9"))},name:"line",meta:{title:"折现图",noCache:!0}},{path:"simple",component:function(){return Promise.all([c.e("chunk-6f60c8f1"),c.e("chunk-3203f382")]).then(c.bind(null,"8955"))},name:"charts-simple",meta:{title:"简单图表",noCache:!0}},{path:"complex",component:function(){return Promise.all([c.e("chunk-6f60c8f1"),c.e("chunk-170e4747")]).then(c.bind(null,"e6bb"))},name:"charts-complex",meta:{title:"复杂图表",noCache:!0}}]},_e=ye,Be={path:"/chat",component:Ee,redirect:"noRedirect",name:"chat",meta:{title:"聊天框",icon:"chat-square"},children:[{path:"index",component:function(){return c.e("chunk-378ee166").then(c.bind(null,"6f29"))},name:"chat",meta:{title:"聊天框",noCache:!0,icon:"chat-square"}}]},Ne=Be,Se={path:"/components",component:Ee,redirect:"noRedirect",name:"components",meta:{title:"组件",icon:"Histogram"},children:[{path:"editor",component:function(){return c.e("chunk-0375f012").then(c.bind(null,"8972"))},name:"editor",meta:{title:"富文本编辑器",noCache:!0}},{path:"mark-down",component:function(){return c.e("chunk-45459eaa").then(c.bind(null,"50a9"))},name:"mark-down",meta:{title:"markDown",noCache:!0}},{path:"form",component:function(){return c.e("chunk-2d217928").then(c.bind(null,"c6fe"))},name:"form",meta:{title:"表单",noCache:!0}}]},Te=Se,Pe={path:"/other",component:Ee,redirect:"noRedirect",name:"other",meta:{title:"其他",icon:"management"},children:[{path:"print",component:function(){return c.e("chunk-496def4a").then(c.bind(null,"35b9"))},name:"print",meta:{title:"打印",noCache:!0}},{path:"cropper",component:function(){return c.e("chunk-2234305e").then(c.bind(null,"1a2a"))},name:"cropper",meta:{title:"头像裁剪",noCache:!0}}]},Fe=Pe,Ie={path:"/external-link",component:Ee,redirect:"noRedirect",name:"external-link",children:[{path:"https://github.com/zouzhibin/vue-admin-perfect",name:"external",meta:{title:"外链",noCache:!0,icon:"link"}}]},De=Ie,Re=[{path:"/login",name:"Login",component:function(){return c.e("chunk-3850c398").then(c.bind(null,"9ed6"))}},{path:"/",name:"layout",component:Ee,redirect:"/home",children:[{path:"/home",component:function(){return c.e("chunk-62dbcb30").then(c.bind(null,"7abe"))},name:"home",meta:{title:"首页",icon:"film",affix:!0}}]}],Le=[_e,Ne,Te,Fe,De],Ae=Object(f["a"])({history:Object(f["b"])(),routes:Re}),Me=Ae;c("caad"),c("2532");var qe={routes:[],addRoutes:[]},ze={SET_ROUTES:function(e,t){e.addRoutes=t,e.routes=Re.concat(t),console.log("===============",e.routes)}},We={generateRoutes:function(e,t){var n=e.commit;return new Promise((function(e){n("SET_ROUTES",Le),e(Le)}))}},Ue={namespaced:!0,state:qe,mutations:ze,actions:We},He=Ue,Ke={isCollapse:!1},Je={SET_COLLAPSE:function(e,t){e.isCollapse=t}},$e={namespaced:!0,state:Ke,mutations:Je},Ye=$e;c("e9c4");function Ge(){return localStorage.TokenKey}function Qe(e){return localStorage.TokenKey=e}function Xe(){return localStorage.TokenKey=""}var Ze={token:Ge(),userInfo:localStorage.userInfo?JSON.parse(localStorage.userInfo):{}},et={SET_TOKEN:function(e,t){e.token=t},SET_INFO:function(e,t){localStorage.userInfo=JSON.stringify(t),e.userInfo=t}},tt={login:function(e,t){var n=e.commit;console.log("=========");var c=t.username;t.password;return new Promise((function(e,o){n("SET_TOKEN",c),n("SET_INFO",t),Qe(c),e(c)}))},logout:function(e){var t=e.commit;e.state,e.dispatch;return new Promise((function(e,n){Xe(),t("SET_TOKEN",""),t("SET_INFO",""),e(null)}))}},nt={namespaced:!0,state:Ze,actions:tt,mutations:et},ct=nt,ot=(c("a434"),{visitedViews:[],cachedViews:[]}),rt={ADD_VISITED_VIEW:function(e,t){e.visitedViews.some((function(e){return e.path===t.path}))||e.visitedViews.push(Object.assign({},t,{title:t.meta.title||"no-name"}))},ADD_CACHED_VIEW:function(e,t){e.cachedViews.includes(t.name)||t.meta.noCache||e.cachedViews.push(t.name)},DEL_VISITED_VIEW:function(e,t){var n,c=Object(H["a"])(e.visitedViews.entries());try{for(c.s();!(n=c.n()).done;){var o=Object(ee["a"])(n.value,2),r=o[0],a=o[1];if(a.path===t.path){e.visitedViews.splice(r,1);break}}}catch(i){c.e(i)}finally{c.f()}},DEL_CACHED_VIEW:function(e,t){var n=e.cachedViews.indexOf(t.name);n>-1&&e.cachedViews.splice(n,1)}},at={addView:function(e,t){var n=e.dispatch;n("addVisitedView",t)},addVisitedView:function(e,t){var n=e.commit;n("ADD_VISITED_VIEW",t)},delView:function(e,t){var n=e.dispatch,c=e.state;return new Promise((function(e){n("delVisitedView",t),n("delCachedView",t),e({visitedViews:Object(K["a"])(c.visitedViews),cachedViews:Object(K["a"])(c.cachedViews)})}))},delVisitedView:function(e,t){var n=e.commit,c=e.state;return new Promise((function(e){n("DEL_VISITED_VIEW",t),e(Object(K["a"])(c.visitedViews))}))},delCachedView:function(e,t){var n=e.commit,c=e.state;return new Promise((function(e){n("DEL_CACHED_VIEW",t),e(Object(K["a"])(c.cachedViews))}))}},it={namespaced:!0,state:ot,mutations:rt,actions:at},ut=it,lt={permission_routes:function(e){return e.permission.routes},isCollapse:function(e){return e.app.isCollapse},userInfo:function(e){return e.user.userInfo}},st=lt,ft=Object(x["a"])({state:{},mutations:{},actions:{},modules:{permission:He,app:Ye,user:ct,tagsView:ut},getters:st}),dt=c("323e"),bt=c.n(dt);c("a5d8");bt.a.configure({showSpinner:!1});var pt=["/login","/auth-redirect"],mt=!0;Me.beforeEach(function(){var e=Object(L["a"])(regeneratorRuntime.mark((function e(t,n,c){var o,r;return regeneratorRuntime.wrap((function(e){while(1)switch(e.prev=e.next){case 0:if(bt.a.start(),document.title=t.meta.title,o=Ge(),!o){e.next=28;break}if("/login"!==t.path){e.next=9;break}c({path:"/"}),bt.a.done(),e.next=26;break;case 9:if(e.prev=9,!mt){e.next=20;break}return e.next=13,ft.dispatch("permission/generateRoutes","roles");case 13:r=e.sent,console.log("accessRoutes==",r),mt=!1,r.forEach((function(e){return Me.addRoute(e)})),c(Object(p["a"])(Object(p["a"])({},t),{},{replace:!0})),e.next=21;break;case 20:c();case 21:e.next=26;break;case 23:e.prev=23,e.t0=e["catch"](9),c("/login?redirect=".concat(t.path));case 26:e.next=29;break;case 28:-1!==pt.indexOf(t.path)?c():(c("/login?redirect=".concat(t.path)),bt.a.done());case 29:case"end":return e.stop()}}),e,null,[[9,23]])})));return function(t,n,c){return e.apply(this,arguments)}}()),Me.afterEach((function(){bt.a.done()}));var ht=c("c3a1"),Ot=(c("7437"),c("c848")),jt=(c("b20f"),Object(o["createApp"])(s));Object.keys(Ot).forEach((function(e){"Menu"!==e?jt.component(e,Ot[e]):jt.component(e+"Icon",Ot[e])})),jt.use(ft).use(Me).use(ht["a"]).mount("#app")},cf05:function(e,t,n){e.exports=n.p+"img/logo.82b9c7a5.png"},daa0:function(e,t,n){"use strict";n("a3f8")},deb7:function(e,t,n){},e9e1:function(e,t,n){"use strict";n("f99d")},ef12:function(e,t,n){"use strict";n("98d3")},f99d:function(e,t,n){},fc5a:function(e,t,n){}});
-//# sourceMappingURL=app.6c35b76e.js.map
\ No newline at end of file
+(function(e){function t(t){for(var c,o,i=t[0],u=t[1],l=t[2],s=0,f=[];s0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1?arguments[1]:void 0,c=e.filter((function(e){return!e.hidden&&(n.value=e,!0)}));return 1===c.length||0===c.length&&(n.value=Object(p["a"])(Object(p["a"])({},t),{},{path:"",noShowingChildren:!0}),!0)},r=function(e){return m(e)?e:m(t.basePath)?t.basePath:w.a.resolve(t.basePath,e)};return function(t,a){var i=Object(o["resolveComponent"])("el-icon"),u=Object(o["resolveComponent"])("el-menu-item"),l=Object(o["resolveComponent"])("sidebar-item",!0),s=Object(o["resolveComponent"])("el-sub-menu");return e.item.hidden?Object(o["createCommentVNode"])("",!0):(Object(o["openBlock"])(),Object(o["createElementBlock"])(o["Fragment"],{key:0},[c(e.item.children,e.item)?(Object(o["openBlock"])(),Object(o["createElementBlock"])(o["Fragment"],{key:0},[n.value.meta?(Object(o["openBlock"])(),Object(o["createBlock"])(v,{key:0,to:r(n.value.path)},{default:Object(o["withCtx"])((function(){return[Object(o["createVNode"])(u,{index:r(n.value.path)},{title:Object(o["withCtx"])((function(){return[Object(o["createTextVNode"])(Object(o["toDisplayString"])(n.value.meta&&n.value.meta.title),1)]})),default:Object(o["withCtx"])((function(){return[Object(o["createVNode"])(i,{size:20},{default:Object(o["withCtx"])((function(){var e;return[(Object(o["openBlock"])(),Object(o["createBlock"])(Object(o["resolveDynamicComponent"])(null===(e=n.value)||void 0===e?void 0:e.meta.icon)))]})),_:1})]})),_:1},8,["index"])]})),_:1},8,["to"])):Object(o["createCommentVNode"])("",!0)],64)):(Object(o["openBlock"])(),Object(o["createBlock"])(s,{key:1,index:r(e.item.path),"popper-append-to-body":""},{title:Object(o["withCtx"])((function(){return[Object(o["createVNode"])(i,{size:20},{default:Object(o["withCtx"])((function(){var t;return[(Object(o["openBlock"])(),Object(o["createBlock"])(Object(o["resolveDynamicComponent"])(null===(t=e.item.meta)||void 0===t?void 0:t.icon)))]})),_:1}),Object(o["createElementVNode"])("span",null,Object(o["toDisplayString"])(e.item.meta&&e.item.meta.title),1)]})),default:Object(o["withCtx"])((function(){return[(Object(o["openBlock"])(!0),Object(o["createElementBlock"])(o["Fragment"],null,Object(o["renderList"])(e.item.children,(function(e){return Object(o["openBlock"])(),Object(o["createBlock"])(l,{key:e.path,item:e,"base-path":r(e.path)},null,8,["item","base-path"])})),128))]})),_:1},8,["index"]))],64))}}});const C=g;var V=C,x=c("5502"),E=c("cf05"),y=c.n(E),_=["src"],B={key:1,class:"sidebar-title"},N=["src"],S={class:"sidebar-title"},T=Object(o["defineComponent"])({setup:function(e){var t=Object(x["b"])(),n=Object(o["ref"])("Vue Admin Perfect"),c=Object(o["computed"])((function(){return t.state.app.isCollapse}));return function(e,t){var r=Object(o["resolveComponent"])("router-link");return Object(o["openBlock"])(),Object(o["createElementBlock"])("div",{class:Object(o["normalizeClass"])(["sidebar-logo-container",{collapse:Object(o["unref"])(c)}])},[Object(o["createVNode"])(o["Transition"],{name:"sidebarLogoFade"},{default:Object(o["withCtx"])((function(){return[Object(o["unref"])(c)?(Object(o["openBlock"])(),Object(o["createBlock"])(r,{key:"collapse",class:"sidebar-logo-link",to:"/"},{default:Object(o["withCtx"])((function(){return[Object(o["unref"])(y.a)?(Object(o["openBlock"])(),Object(o["createElementBlock"])("img",{key:0,src:Object(o["unref"])(y.a),class:"sidebar-logo"},null,8,_)):(Object(o["openBlock"])(),Object(o["createElementBlock"])("h1",B,"Perfect "))]})),_:1})):(Object(o["openBlock"])(),Object(o["createBlock"])(r,{key:"expand",class:"sidebar-logo-link",to:"/"},{default:Object(o["withCtx"])((function(){return[Object(o["unref"])(y.a)?(Object(o["openBlock"])(),Object(o["createElementBlock"])("img",{key:0,src:Object(o["unref"])(y.a),class:"sidebar-logo"},null,8,N)):Object(o["createCommentVNode"])("",!0),Object(o["createElementVNode"])("h1",S,Object(o["toDisplayString"])(n.value),1)]})),_:1}))]})),_:1})],2)}}});c("daa0");const P=i()(T,[["__scopeId","data-v-5c19406b"]]);var F=P,I=Object(o["defineComponent"])({setup:function(e){var t=Object(x["b"])(),n=Object(f["c"])(),c=Object(o["computed"])((function(){return t.state.permission.routes})),r=Object(o["computed"])((function(){var e=n.meta,t=n.path;return e.activeMenu?e.activeMenu:t})),a=Object(o["computed"])((function(){return t.state.app.isCollapse}));return function(e,t){var n=Object(o["resolveComponent"])("el-menu"),i=Object(o["resolveComponent"])("el-scrollbar");return Object(o["openBlock"])(),Object(o["createElementBlock"])("div",null,[Object(o["createVNode"])(F,{collapse:Object(o["unref"])(a)},null,8,["collapse"]),Object(o["createVNode"])(i,{"wrap-class":"scrollbar-wrapper"},{default:Object(o["withCtx"])((function(){return[Object(o["createVNode"])(n,{"default-active":Object(o["unref"])(r),"active-text-color":"#ffd04b","background-color":"#304156","text-color":"#fff",class:"el-menu-vertical-demo",collapse:Object(o["unref"])(a)},{default:Object(o["withCtx"])((function(){return[(Object(o["openBlock"])(!0),Object(o["createElementBlock"])(o["Fragment"],null,Object(o["renderList"])(Object(o["unref"])(c),(function(e){return Object(o["openBlock"])(),Object(o["createBlock"])(V,{key:e.path,item:e,"base-path":e.path},null,8,["item","base-path"])})),128))]})),_:1},8,["default-active","collapse"])]})),_:1})])}}});c("e9e1");const D=I;var R=D,L=c("1da1"),A=(c("96cf"),c("b0c0"),{class:"dialog-footer"}),M=Object(o["createTextVNode"])("取消"),q=Object(o["createTextVNode"])("确定"),z=Object(o["defineComponent"])({setup:function(e,t){var n=t.expose,c=Object(o["ref"])(!1),r=function(){c.value=!0},a=Object(o["ref"])(""),i=Object(o["ref"])(),u=Object(o["reactive"])({name:"",mobile:"",password:""}),l=Object(o["reactive"])({password:[{required:!0,message:"请输入密码",trigger:"blur"}]}),s=function(e){e&&e.validate((function(e){if(!e)return console.log("error submit!"),!1;console.log("submit!")}))};return n({show:r}),function(e,t){var n=Object(o["resolveComponent"])("el-input"),r=Object(o["resolveComponent"])("el-form-item"),f=Object(o["resolveComponent"])("el-form"),d=Object(o["resolveComponent"])("el-button"),b=Object(o["resolveComponent"])("el-dialog");return Object(o["openBlock"])(),Object(o["createBlock"])(b,{modelValue:c.value,"onUpdate:modelValue":t[5]||(t[5]=function(e){return c.value=e}),title:"修改密码",width:"60%"},{footer:Object(o["withCtx"])((function(){return[Object(o["createElementVNode"])("span",A,[Object(o["createVNode"])(d,{onClick:t[3]||(t[3]=function(e){return c.value=!1})},{default:Object(o["withCtx"])((function(){return[M]})),_:1}),Object(o["createVNode"])(d,{type:"primary",onClick:t[4]||(t[4]=function(e){return s(i.value)})},{default:Object(o["withCtx"])((function(){return[q]})),_:1})])]})),default:Object(o["withCtx"])((function(){return[Object(o["createVNode"])(f,{ref_key:"ruleFormRef",ref:i,model:Object(o["unref"])(u),rules:Object(o["unref"])(l),"label-width":"120px",class:"demo-ruleForm",size:a.value},{default:Object(o["withCtx"])((function(){return[Object(o["createVNode"])(r,{label:"姓名"},{default:Object(o["withCtx"])((function(){return[Object(o["createVNode"])(n,{modelValue:Object(o["unref"])(u).name,"onUpdate:modelValue":t[0]||(t[0]=function(e){return Object(o["unref"])(u).name=e}),disabled:""},null,8,["modelValue"])]})),_:1}),Object(o["createVNode"])(r,{label:"手机号码"},{default:Object(o["withCtx"])((function(){return[Object(o["createVNode"])(n,{modelValue:Object(o["unref"])(u).mobile,"onUpdate:modelValue":t[1]||(t[1]=function(e){return Object(o["unref"])(u).mobile=e}),disabled:""},null,8,["modelValue"])]})),_:1}),Object(o["createVNode"])(r,{label:"修改密码",prop:"password"},{default:Object(o["withCtx"])((function(){return[Object(o["createVNode"])(n,{modelValue:Object(o["unref"])(u).password,"onUpdate:modelValue":t[2]||(t[2]=function(e){return Object(o["unref"])(u).password=e})},null,8,["modelValue"])]})),_:1})]})),_:1},8,["model","rules","size"])]})),_:1},8,["modelValue"])}}});c("1451");const W=i()(z,[["__scopeId","data-v-37da47ea"]]);var U=W,H=c("b85c"),K=c("2909"),J=(c("99af"),c("fb6a"),c("5319"),c("c740"),Object(o["defineComponent"])({setup:function(t){Object(o["ref"])(0);var n=Object(o["ref"])(),c=Object(o["computed"])((function(){return n.value.$refs.wrap})),r=function(){var t=e.wheelDelta||40*-e.deltaY,n=c.value;n.scrollLeft=n.scrollLeft+t/4};return Object(o["onMounted"])((function(){console.log("scrollContainer.value",n.value)})),function(e,t){var c=Object(o["resolveComponent"])("el-scrollbar");return Object(o["openBlock"])(),Object(o["createBlock"])(c,{ref_key:"scrollContainer",ref:n,vertical:!1,class:"scroll-container",onWheel:Object(o["withModifiers"])(r,["prevent"])},{default:Object(o["withCtx"])((function(){return[Object(o["renderSlot"])(e.$slots,"default")]})),_:3},8,["onWheel"])}}}));c("0405");const $=i()(J,[["__scopeId","data-v-2893f9b4"]]);var Y=$,G={class:"tags-view-container"},Q=Object(o["defineComponent"])({setup:function(e){var t=c("df7c"),n=Object(x["b"])(),r=Object(f["c"])(),a=Object(f["d"])(),i=Object(o["computed"])((function(){return n.state.permission.routes})),u=Object(o["computed"])((function(){return n.state.tagsView.visitedViews})),l=Object(o["ref"])([]);function s(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"/",c=[];return e.forEach((function(e){if(e.meta&&e.meta.affix){var o=t.resolve(n,e.path);c.push({fullPath:o,path:o,name:e.name,meta:Object(p["a"])({},e.meta)})}if(e.children){var r=s(e.children,e.path);r.length>=1&&(c=[].concat(Object(K["a"])(c),Object(K["a"])(r)))}})),c}var d=function(){var e=l.value=s(i.value);console.log("affixTags",l);var t,c=Object(H["a"])(e);try{for(c.s();!(t=c.n()).done;){var o=t.value;o.name&&n.dispatch("tagsView/addVisitedView",o)}}catch(r){c.e(r)}finally{c.f()}};var b=function(e){return e.path===r.path},m=function(e){return e.meta&&e.meta.affix},h=function(){var e=r.name;return e&&n.dispatch("tagsView/addView",r),!1};function O(e,t){var n=e.slice(-1)[0];n?a.push(n.fullPath):"home"===t.name?a.replace({path:"/redirect"+t.fullPath}):a.push("/")}var j=function(e){n.dispatch("tagsView/delView",e).then((function(t){var n=t.visitedViews;b(e)&&O(n,e)}))};return Object(o["onMounted"])((function(){d(),h(),Object(o["watch"])(r,(function(){h()}))})),function(e,t){var n=Object(o["resolveComponent"])("circle-close-filled"),c=Object(o["resolveComponent"])("el-icon"),r=Object(o["resolveComponent"])("router-link");return Object(o["openBlock"])(),Object(o["createElementBlock"])("div",G,[Object(o["createVNode"])(Y,{ref:"scrollPane",class:"tags-view-wrapper"},{default:Object(o["withCtx"])((function(){return[(Object(o["openBlock"])(!0),Object(o["createElementBlock"])(o["Fragment"],null,Object(o["renderList"])(Object(o["unref"])(u),(function(e){return Object(o["openBlock"])(),Object(o["createBlock"])(r,{ref_for:!0,ref:"tag",class:Object(o["normalizeClass"])([b(e)?"active":"","tags-view-item"]),key:e.path,to:{path:e.path,query:e.query,fullPath:e.fullPath},tag:"span"},{default:Object(o["withCtx"])((function(){return[Object(o["createTextVNode"])(Object(o["toDisplayString"])(e.title)+" ",1),m(e)?Object(o["createCommentVNode"])("",!0):(Object(o["openBlock"])(),Object(o["createBlock"])(c,{key:0,onClick:Object(o["withModifiers"])((function(t){return j(e)}),["prevent","stop"])},{default:Object(o["withCtx"])((function(){return[Object(o["createVNode"])(n)]})),_:2},1032,["onClick"]))]})),_:2},1032,["class","to"])})),128))]})),_:1},512)])}}});c("670d");const X=i()(Q,[["__scopeId","data-v-f8d00b58"]]);var Z=X,ee=c("3835"),te=[["requestFullscreen","exitFullscreen","fullscreenElement","fullscreenEnabled","fullscreenchange","fullscreenerror"],["webkitRequestFullscreen","webkitExitFullscreen","webkitFullscreenElement","webkitFullscreenEnabled","webkitfullscreenchange","webkitfullscreenerror"],["webkitRequestFullScreen","webkitCancelFullScreen","webkitCurrentFullScreenElement","webkitCancelFullScreen","webkitfullscreenchange","webkitfullscreenerror"],["mozRequestFullScreen","mozCancelFullScreen","mozFullScreenElement","mozFullScreenEnabled","mozfullscreenchange","mozfullscreenerror"],["msRequestFullscreen","msExitFullscreen","msFullscreenElement","msFullscreenEnabled","MSFullscreenChange","MSFullscreenError"]],ne=function(){var e,t=te[0],n={},c=Object(H["a"])(te);try{for(c.s();!(e=c.n()).done;){var o=e.value,r=null===o||void 0===o?void 0:o[1];if(r in document){var a,i=Object(H["a"])(o.entries());try{for(i.s();!(a=i.n()).done;){var u=Object(ee["a"])(a.value,2),l=u[0],s=u[1];n[t[l]]=s}}catch(f){i.e(f)}finally{i.f()}return n}}}catch(f){c.e(f)}finally{c.f()}return!1}(),ce={change:ne.fullscreenchange,error:ne.fullscreenerror},oe={request:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:document.documentElement,t=arguments.length>1?arguments[1]:void 0;return new Promise((function(n,c){var o=function e(){oe.off("change",e),n()};oe.on("change",o);var r=e[ne.requestFullscreen](t);r instanceof Promise&&r.then(o).catch(c)}))},exit:function(){return new Promise((function(e,t){if(oe.isFullscreen){var n=function t(){oe.off("change",t),e()};oe.on("change",n);var c=document[ne.exitFullscreen]();c instanceof Promise&&c.then(n).catch(t)}else e()}))},toggle:function(e,t){return oe.isFullscreen?oe.exit():oe.request(e,t)},onchange:function(e){oe.on("change",e)},onerror:function(e){oe.on("error",e)},on:function(e,t){var n=ce[e];n&&document.addEventListener(n,t,!1)},off:function(e,t){var n=ce[e];n&&document.removeEventListener(n,t,!1)},raw:ne};Object.defineProperties(oe,{isFullscreen:{get:function(){return Boolean(document[ne.fullscreenElement])}},element:{enumerable:!0,get:function(){var e;return null!==(e=document[ne.fullscreenElement])&&void 0!==e?e:void 0}},isEnabled:{enumerable:!0,get:function(){return Boolean(document[ne.fullscreenEnabled])}}}),ne||(oe={isEnabled:!1});var re=oe,ae=c("3ef4"),ie=Object(o["defineComponent"])({setup:function(e){var t=Object(o["ref"])(!1),n=function(){if(!re.isEnabled)return Object(ae["a"])({message:"你的浏览器不支持",type:"warning"}),!1;re.toggle()},c=function(){t.value=re.isFullscreen},r=function(){re.isEnabled&&re.on("change",c)},a=function(){re.isEnabled&&re.off("change",c)};return Object(o["onMounted"])((function(){r()})),Object(o["onBeforeUnmount"])((function(){a()})),function(e,t){var c=Object(o["resolveComponent"])("full-screen"),r=Object(o["resolveComponent"])("el-icon");return Object(o["openBlock"])(),Object(o["createBlock"])(r,{title:"全屏",onClick:Object(o["withModifiers"])(n,["stop"]),style:{"margin-right":"10px",cursor:"pointer"}},{default:Object(o["withCtx"])((function(){return[Object(o["createVNode"])(c)]})),_:1},8,["onClick"])}}});const ue=ie;var le=ue,se=c("c9a1"),fe={class:"header"},de={class:"right"},be={class:"el-dropdown-link"},pe=Object(o["createTextVNode"])("退出登录"),me=Object(o["createTextVNode"])("修改密码"),he=Object(o["defineComponent"])({setup:function(e){var t=Object(x["b"])(),n=Object(o["ref"])(),c=Object(f["d"])(),r=Object(o["computed"])((function(){return t.state.app.isCollapse})),a=Object(o["computed"])((function(){return t.state.user.userInfo})),i=function(){var e=Object(L["a"])(regeneratorRuntime.mark((function e(){return regeneratorRuntime.wrap((function(e){while(1)switch(e.prev=e.next){case 0:se["a"].confirm("确定退出登录吗?","退出登录",{confirmButtonText:"确定",cancelButtonText:"取消",type:"warning"}).then(Object(L["a"])(regeneratorRuntime.mark((function e(){return regeneratorRuntime.wrap((function(e){while(1)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,t.dispatch("user/logout");case 3:c.push({path:"/login"}),e.next=8;break;case 6:e.prev=6,e.t0=e["catch"](0);case 8:case"end":return e.stop()}}),e,null,[[0,6]])})))).catch((function(){}));case 1:case"end":return e.stop()}}),e)})));return function(){return e.apply(this,arguments)}}(),u=function(e){switch(e){case 1:i();break;case 2:n.value.show();break}},l=function(e){t.commit("app/SET_COLLAPSE",e)};return function(e,t){var c=Object(o["resolveComponent"])("expand"),i=Object(o["resolveComponent"])("el-icon"),s=Object(o["resolveComponent"])("fold"),f=Object(o["resolveComponent"])("arrow-down"),d=Object(o["resolveComponent"])("el-dropdown-item"),b=Object(o["resolveComponent"])("el-dropdown-menu"),p=Object(o["resolveComponent"])("el-dropdown");return Object(o["openBlock"])(),Object(o["createElementBlock"])("div",{class:"m-layout-header",style:Object(o["normalizeStyle"])({left:"".concat(Object(o["unref"])(r)?"56":"210","px")})},[Object(o["createElementVNode"])("div",fe,[Object(o["createElementVNode"])("div",null,[Object(o["unref"])(r)?(Object(o["openBlock"])(),Object(o["createBlock"])(i,{key:0,class:"icon",onClick:t[0]||(t[0]=function(e){return l(!1)})},{default:Object(o["withCtx"])((function(){return[Object(o["createVNode"])(c)]})),_:1})):(Object(o["openBlock"])(),Object(o["createBlock"])(i,{key:1,class:"icon",onClick:t[1]||(t[1]=function(e){return l(!0)})},{default:Object(o["withCtx"])((function(){return[Object(o["createVNode"])(s)]})),_:1}))]),Object(o["createElementVNode"])("div",de,[Object(o["createVNode"])(le),Object(o["createVNode"])(p,{onCommand:u},{dropdown:Object(o["withCtx"])((function(){return[Object(o["createVNode"])(b,null,{default:Object(o["withCtx"])((function(){return[Object(o["createVNode"])(d,{command:1},{default:Object(o["withCtx"])((function(){return[pe]})),_:1}),Object(o["createVNode"])(d,{command:2},{default:Object(o["withCtx"])((function(){return[me]})),_:1})]})),_:1})]})),default:Object(o["withCtx"])((function(){return[Object(o["createElementVNode"])("span",be,[Object(o["createTextVNode"])(Object(o["toDisplayString"])(Object(o["unref"])(a).username)+" ",1),Object(o["createVNode"])(i,{class:"el-icon--right"},{default:Object(o["withCtx"])((function(){return[Object(o["createVNode"])(f)]})),_:1})])]})),_:1})])]),Object(o["createVNode"])(Z),Object(o["createVNode"])(U,{ref_key:"person",ref:n},null,512)],4)}}});c("b0d7");const Oe=i()(he,[["__scopeId","data-v-96e07a22"]]);var je=Oe,ve={class:"app-main"};function ke(e,t){var n=Object(o["resolveComponent"])("router-view");return Object(o["openBlock"])(),Object(o["createElementBlock"])("section",ve,[Object(o["createVNode"])(n,null,{default:Object(o["withCtx"])((function(e){var t=e.Component;return[(Object(o["openBlock"])(),Object(o["createBlock"])(Object(o["resolveDynamicComponent"])(t)))]})),_:1})])}c("ef12");const we={},ge=i()(we,[["render",ke],["__scopeId","data-v-4137f49f"]]);var Ce=ge,Ve=Object(o["defineComponent"])({name:"layout",components:{Sidebar:R,UHeader:je,AppMain:Ce},setup:function(){var e=Object(x["b"])(),t=Object(o["computed"])((function(){return e.state.app.isCollapse}));return{isCollapse:t}}});c("a226");const xe=i()(Ve,[["render",b],["__scopeId","data-v-583891f3"]]);var Ee=xe,ye={path:"/charts",component:Ee,redirect:"noRedirect",name:"Charts",meta:{title:"图表",icon:"trend-charts"},children:[{path:"line",component:function(){return Promise.all([c.e("chunk-6f60c8f1"),c.e("chunk-6baa09d4")]).then(c.bind(null,"61a9"))},name:"line",meta:{title:"折现图",noCache:!0}},{path:"simple",component:function(){return Promise.all([c.e("chunk-6f60c8f1"),c.e("chunk-3203f382")]).then(c.bind(null,"8955"))},name:"charts-simple",meta:{title:"简单图表",noCache:!0}},{path:"complex",component:function(){return Promise.all([c.e("chunk-6f60c8f1"),c.e("chunk-170e4747")]).then(c.bind(null,"e6bb"))},name:"charts-complex",meta:{title:"复杂图表",noCache:!0}}]},_e=ye,Be={path:"/chat",component:Ee,redirect:"noRedirect",name:"chat",meta:{title:"聊天框",icon:"chat-square"},children:[{path:"index",component:function(){return c.e("chunk-378ee166").then(c.bind(null,"6f29"))},name:"chat",meta:{title:"聊天框",noCache:!0,icon:"chat-square"}}]},Ne=Be,Se={path:"/components",component:Ee,redirect:"noRedirect",name:"components",meta:{title:"组件",icon:"Histogram"},children:[{path:"editor",component:function(){return c.e("chunk-0375f012").then(c.bind(null,"8972"))},name:"editor",meta:{title:"富文本编辑器",noCache:!0}},{path:"mark-down",component:function(){return c.e("chunk-45459eaa").then(c.bind(null,"50a9"))},name:"mark-down",meta:{title:"markDown",noCache:!0}},{path:"form",component:function(){return c.e("chunk-2d217928").then(c.bind(null,"c6fe"))},name:"form",meta:{title:"表单",noCache:!0}}]},Te=Se,Pe={path:"/other",component:Ee,redirect:"noRedirect",name:"other",meta:{title:"其他",icon:"management"},children:[{path:"print",component:function(){return c.e("chunk-496def4a").then(c.bind(null,"35b9"))},name:"print",meta:{title:"打印",noCache:!0}},{path:"cropper",component:function(){return c.e("chunk-000055b2").then(c.bind(null,"1a2a"))},name:"cropper",meta:{title:"头像裁剪",noCache:!0}}]},Fe=Pe,Ie={path:"/external-link",component:Ee,redirect:"noRedirect",name:"external-link",children:[{path:"https://github.com/zouzhibin/vue-admin-perfect",name:"external",meta:{title:"外链",noCache:!0,icon:"link"}}]},De=Ie,Re=[{path:"/login",name:"Login",component:function(){return c.e("chunk-3850c398").then(c.bind(null,"9ed6"))}},{path:"/",name:"layout",component:Ee,redirect:"/home",children:[{path:"/home",component:function(){return c.e("chunk-62dbcb30").then(c.bind(null,"7abe"))},name:"home",meta:{title:"首页",icon:"film",affix:!0}}]}],Le=[_e,Ne,Te,Fe,De],Ae=Object(f["a"])({history:Object(f["b"])(),routes:Re}),Me=Ae;c("caad"),c("2532");var qe={routes:[],addRoutes:[]},ze={SET_ROUTES:function(e,t){e.addRoutes=t,e.routes=Re.concat(t),console.log("===============",e.routes)}},We={generateRoutes:function(e,t){var n=e.commit;return new Promise((function(e){n("SET_ROUTES",Le),e(Le)}))}},Ue={namespaced:!0,state:qe,mutations:ze,actions:We},He=Ue,Ke={isCollapse:!1},Je={SET_COLLAPSE:function(e,t){e.isCollapse=t}},$e={namespaced:!0,state:Ke,mutations:Je},Ye=$e;c("e9c4");function Ge(){return localStorage.TokenKey}function Qe(e){return localStorage.TokenKey=e}function Xe(){return localStorage.TokenKey=""}var Ze={token:Ge(),userInfo:localStorage.userInfo?JSON.parse(localStorage.userInfo):{}},et={SET_TOKEN:function(e,t){e.token=t},SET_INFO:function(e,t){localStorage.userInfo=JSON.stringify(t),e.userInfo=t}},tt={login:function(e,t){var n=e.commit;console.log("=========");var c=t.username;t.password;return new Promise((function(e,o){n("SET_TOKEN",c),n("SET_INFO",t),Qe(c),e(c)}))},logout:function(e){var t=e.commit;e.state,e.dispatch;return new Promise((function(e,n){Xe(),t("SET_TOKEN",""),t("SET_INFO",""),e(null)}))}},nt={namespaced:!0,state:Ze,actions:tt,mutations:et},ct=nt,ot=(c("a434"),{visitedViews:[],cachedViews:[]}),rt={ADD_VISITED_VIEW:function(e,t){e.visitedViews.some((function(e){return e.path===t.path}))||e.visitedViews.push(Object.assign({},t,{title:t.meta.title||"no-name"}))},ADD_CACHED_VIEW:function(e,t){e.cachedViews.includes(t.name)||t.meta.noCache||e.cachedViews.push(t.name)},DEL_VISITED_VIEW:function(e,t){var n,c=Object(H["a"])(e.visitedViews.entries());try{for(c.s();!(n=c.n()).done;){var o=Object(ee["a"])(n.value,2),r=o[0],a=o[1];if(a.path===t.path){e.visitedViews.splice(r,1);break}}}catch(i){c.e(i)}finally{c.f()}},DEL_CACHED_VIEW:function(e,t){var n=e.cachedViews.indexOf(t.name);n>-1&&e.cachedViews.splice(n,1)}},at={addView:function(e,t){var n=e.dispatch;n("addVisitedView",t)},addVisitedView:function(e,t){var n=e.commit;n("ADD_VISITED_VIEW",t)},delView:function(e,t){var n=e.dispatch,c=e.state;return new Promise((function(e){n("delVisitedView",t),n("delCachedView",t),e({visitedViews:Object(K["a"])(c.visitedViews),cachedViews:Object(K["a"])(c.cachedViews)})}))},delVisitedView:function(e,t){var n=e.commit,c=e.state;return new Promise((function(e){n("DEL_VISITED_VIEW",t),e(Object(K["a"])(c.visitedViews))}))},delCachedView:function(e,t){var n=e.commit,c=e.state;return new Promise((function(e){n("DEL_CACHED_VIEW",t),e(Object(K["a"])(c.cachedViews))}))}},it={namespaced:!0,state:ot,mutations:rt,actions:at},ut=it,lt={permission_routes:function(e){return e.permission.routes},isCollapse:function(e){return e.app.isCollapse},userInfo:function(e){return e.user.userInfo}},st=lt,ft=Object(x["a"])({state:{},mutations:{},actions:{},modules:{permission:He,app:Ye,user:ct,tagsView:ut},getters:st}),dt=c("323e"),bt=c.n(dt);c("a5d8");bt.a.configure({showSpinner:!1});var pt=["/login","/auth-redirect"],mt=!0;Me.beforeEach(function(){var e=Object(L["a"])(regeneratorRuntime.mark((function e(t,n,c){var o,r;return regeneratorRuntime.wrap((function(e){while(1)switch(e.prev=e.next){case 0:if(bt.a.start(),document.title=t.meta.title,o=Ge(),!o){e.next=28;break}if("/login"!==t.path){e.next=9;break}c({path:"/"}),bt.a.done(),e.next=26;break;case 9:if(e.prev=9,!mt){e.next=20;break}return e.next=13,ft.dispatch("permission/generateRoutes","roles");case 13:r=e.sent,console.log("accessRoutes==",r),mt=!1,r.forEach((function(e){return Me.addRoute(e)})),c(Object(p["a"])(Object(p["a"])({},t),{},{replace:!0})),e.next=21;break;case 20:c();case 21:e.next=26;break;case 23:e.prev=23,e.t0=e["catch"](9),c("/login?redirect=".concat(t.path));case 26:e.next=29;break;case 28:-1!==pt.indexOf(t.path)?c():(c("/login?redirect=".concat(t.path)),bt.a.done());case 29:case"end":return e.stop()}}),e,null,[[9,23]])})));return function(t,n,c){return e.apply(this,arguments)}}()),Me.afterEach((function(){bt.a.done()}));var ht=c("c3a1"),Ot=(c("7437"),c("c848")),jt=(c("b20f"),Object(o["createApp"])(s));Object.keys(Ot).forEach((function(e){"Menu"!==e?jt.component(e,Ot[e]):jt.component(e+"Icon",Ot[e])})),jt.use(ft).use(Me).use(ht["a"]).mount("#app")},cf05:function(e,t,n){e.exports=n.p+"img/logo.82b9c7a5.png"},daa0:function(e,t,n){"use strict";n("a3f8")},deb7:function(e,t,n){},e9e1:function(e,t,n){"use strict";n("f99d")},ef12:function(e,t,n){"use strict";n("98d3")},f99d:function(e,t,n){},fc5a:function(e,t,n){}});
+//# sourceMappingURL=app.c41183c0.js.map
\ No newline at end of file
diff --git a/dist/js/app.6c35b76e.js.map b/dist/js/app.c41183c0.js.map
similarity index 62%
rename from dist/js/app.6c35b76e.js.map
rename to dist/js/app.c41183c0.js.map
index da9403a..4618145 100644
--- a/dist/js/app.6c35b76e.js.map
+++ b/dist/js/app.c41183c0.js.map
@@ -1 +1 @@
-{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/layout/components/TagsView/ScrollPane.vue?9111","webpack:///./src/layout/components/UHeader/Personal.vue?9709","webpack:///./src/App.vue?a44c","webpack:///./src/layout/components/TagsView/index.vue?0ef5","webpack:///./src/layout/index.vue?23af","webpack:///./src/layout/components/UHeader/index.vue?cfee","webpack:///./src/styles/index.scss?64ee","webpack:///./src/layout/components/Sidebar/Link.vue?24d1","webpack:///./src/App.vue","webpack:///./src/App.vue?6697","webpack:///./src/layout/index.vue?270b","webpack:///./src/utils/validate.js","webpack:///./src/layout/components/Sidebar/Link.vue","webpack:///./src/layout/components/Sidebar/Link.vue?0524","webpack:///./src/layout/components/Sidebar/SidebarItem.vue?802b","webpack:///./src/layout/components/Sidebar/SidebarItem.vue","webpack:///./src/layout/components/Sidebar/Logo.vue?c349","webpack:///./src/layout/components/Sidebar/Logo.vue","webpack:///./src/layout/components/Sidebar/index.vue?a1f5","webpack:///./src/layout/components/Sidebar/index.vue","webpack:///./src/layout/components/UHeader/Personal.vue?125c","webpack:///./src/layout/components/UHeader/Personal.vue","webpack:///./src/layout/components/TagsView/ScrollPane.vue?5136","webpack:///./src/layout/components/TagsView/ScrollPane.vue","webpack:///./src/layout/components/TagsView/index.vue?65ca","webpack:///./src/layout/components/TagsView/index.vue","webpack:///./src/components/u-screenfull/index.js","webpack:///./src/components/u-screenfull/index.vue?f24a","webpack:///./src/components/u-screenfull/index.vue","webpack:///./src/layout/components/UHeader/index.vue?2455","webpack:///./src/layout/components/UHeader/index.vue","webpack:///./src/layout/components/AppMain.vue","webpack:///./src/layout/components/AppMain.vue?02e1","webpack:///./src/layout/index.vue?17ba","webpack:///./src/layout/index.vue","webpack:///./src/router/modules/charts.ts","webpack:///./src/router/modules/chat.ts","webpack:///./src/router/modules/components.ts","webpack:///./src/router/modules/other.ts","webpack:///./src/router/modules/externalLink.ts","webpack:///./src/router/index.ts","webpack:///./src/store/modules/permission.ts","webpack:///./src/store/modules/app.ts","webpack:///./src/utils/auth.js","webpack:///./src/store/modules/user.ts","webpack:///./src/store/modules/tagsView.ts","webpack:///./src/store/getters.ts","webpack:///./src/store/index.ts","webpack:///./src/permission.js","webpack:///./src/main.ts","webpack:///./src/assets/logo.png","webpack:///./src/layout/components/Sidebar/Logo.vue?5a99","webpack:///./src/layout/components/Sidebar/index.vue?8c79","webpack:///./src/layout/components/AppMain.vue?f643"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","installedCssChunks","jsonpScriptSrc","p","exports","module","l","e","promises","cssChunks","Promise","resolve","reject","href","fullhref","existingLinkTags","document","getElementsByTagName","tag","dataHref","getAttribute","rel","existingStyleTags","linkTag","createElement","type","onload","onerror","event","request","target","src","err","Error","code","parentNode","removeChild","head","appendChild","then","installedChunkData","promise","onScriptComplete","script","charset","timeout","nc","setAttribute","error","clearTimeout","chunk","errorType","realSrc","message","name","undefined","setTimeout","all","m","c","d","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","oe","console","jsonpArray","window","oldJsonpFunction","slice","_createBlock","_component_router_view","Component","_resolveDynamicComponent","__exports__","render","_hoisted_1","class","_ctx","_cache","$props","$setup","$data","$options","_component_sidebar","_resolveComponent","_component_u_header","_component_app_main","_openBlock","_createElementBlock","_normalizeClass","hideSidebar","isCollapse","_createVNode","_createElementVNode","isExternal","path","test","_normalizeProps","_renderSlot","props","to","String","required","computed","this","methods","linkProps","_defineComponent","item","basePath","default","setup","__props","onlyOneChild","ref","hasOneShowingChild","children","parent","showingChildren","filter","hidden","noShowingChildren","resolvePath","routePath","_component_el_icon","_component_el_menu_item","_component_sidebar_item","_component_el_sub_menu","_createCommentVNode","_Fragment","meta","AppLink","_withCtx","index","title","_createTextVNode","_toDisplayString","size","icon","_","_renderList","child","_hoisted_2","_hoisted_3","_hoisted_4","store","useStore","state","app","_component_router_link","_unref","_Transition","logo","route","useRoute","permission_routes","permission","routes","activeMenu","_component_el_menu","_component_el_scrollbar","collapse","SidebarItem","expose","dialogVisible","show","formSize","ruleFormRef","ruleForm","reactive","mobile","password","rules","trigger","submitForm","formEl","validate","valid","log","_component_el_input","_component_el_form_item","_component_el_form","_component_el_button","_component_el_dialog","modelValue","$event","width","footer","onClick","ref_key","model","label","disabled","prop","scrollContainer","scrollWrapper","$refs","wrap","handleScroll","eventDelta","wheelDelta","deltaY","$scrollWrapper","scrollLeft","onMounted","vertical","onWheel","_withModifiers","$slots","require","router","useRouter","visitedViews","tagsView","affixTags","filterAffixTags","tags","forEach","affix","tagPath","fullPath","tempTags","initTags","affixTag","dispatch","isActive","rou","isAffix","addTags","toLastView","view","latestView","replace","closeSelectedTag","watch","_component_circle_close_filled","ScrollPane","ref_for","query","methodMap","nativeAPI","unprefixedMethods","returnValue","methodList","exitFullscreenMethod","entries","method","eventNameMap","change","fullscreenchange","fullscreenerror","screenfull","element","documentElement","options","onFullScreenEntered","off","on","returnPromise","requestFullscreen","catch","exit","isFullscreen","onFullScreenExit","exitFullscreen","toggle","onchange","callback","eventName","addEventListener","removeEventListener","raw","defineProperties","Boolean","fullscreenElement","isEnabled","fullscreenEnabled","click","ElMessage","init","destroy","onBeforeUnmount","_component_full_screen","style","_hoisted_5","person","userInfo","user","logOut","ElMessageBox","confirm","confirmButtonText","cancelButtonText","commandAction","handleCollapse","commit","_component_expand","_component_fold","_component_arrow_down","_component_el_dropdown_item","_component_el_dropdown_menu","_component_el_dropdown","_normalizeStyle","left","UScreenFull","onCommand","dropdown","command","username","TagViews","Personal","defineComponent","components","Sidebar","UHeader","AppMain","chartsRouter","component","Layout","redirect","noCache","componentsRouter","othersRouter","externalLink","constantRoutes","asyncRoutes","chatRouter","createRouter","history","createWebHashHistory","addRoutes","mutations","SET_ROUTES","concat","actions","generateRoutes","roles","namespaced","SET_COLLAPSE","getToken","localStorage","TokenKey","setToken","token","removeToken","JSON","parse","SET_TOKEN","SET_INFO","stringify","login","logout","cachedViews","ADD_VISITED_VIEW","some","v","assign","ADD_CACHED_VIEW","includes","DEL_VISITED_VIEW","DEL_CACHED_VIEW","indexOf","addView","addVisitedView","delView","delVisitedView","delCachedView","getters","createStore","NProgress","configure","showSpinner","whiteList","hasRoles","beforeEach","from","next","start","hasToken","done","accessRoutes","addRoute","afterEach","createApp","App","keys","ElIconsModules","use","ElementPlus","mount"],"mappings":"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","file":"js/app.6c35b76e.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded CSS chunks\n \tvar installedCssChunks = {\n \t\t\"app\": 0\n \t}\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"app\": 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// script path function\n \tfunction jsonpScriptSrc(chunkId) {\n \t\treturn __webpack_require__.p + \"js/\" + ({}[chunkId]||chunkId) + \".\" + {\"chunk-0375f012\":\"576712c3\",\"chunk-2234305e\":\"8f32d19b\",\"chunk-2d217928\":\"030f74ec\",\"chunk-378ee166\":\"5f385493\",\"chunk-3850c398\":\"0f3fb018\",\"chunk-45459eaa\":\"7db09f7b\",\"chunk-496def4a\":\"163ff0dc\",\"chunk-62dbcb30\":\"cc4ffa78\",\"chunk-6f60c8f1\":\"dd4246c1\",\"chunk-170e4747\":\"a630141d\",\"chunk-3203f382\":\"288b52e4\",\"chunk-6baa09d4\":\"4cafb58b\"}[chunkId] + \".js\"\n \t}\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tvar promises = [];\n\n\n \t\t// mini-css-extract-plugin CSS loading\n \t\tvar cssChunks = {\"chunk-2234305e\":1,\"chunk-378ee166\":1,\"chunk-3850c398\":1,\"chunk-45459eaa\":1,\"chunk-62dbcb30\":1,\"chunk-170e4747\":1,\"chunk-3203f382\":1,\"chunk-6baa09d4\":1};\n \t\tif(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);\n \t\telse if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {\n \t\t\tpromises.push(installedCssChunks[chunkId] = new Promise(function(resolve, reject) {\n \t\t\t\tvar href = \"css/\" + ({}[chunkId]||chunkId) + \".\" + {\"chunk-0375f012\":\"31d6cfe0\",\"chunk-2234305e\":\"5a53243e\",\"chunk-2d217928\":\"31d6cfe0\",\"chunk-378ee166\":\"ca18b920\",\"chunk-3850c398\":\"d676d2b0\",\"chunk-45459eaa\":\"b8a19145\",\"chunk-496def4a\":\"31d6cfe0\",\"chunk-62dbcb30\":\"2d86bcb5\",\"chunk-6f60c8f1\":\"31d6cfe0\",\"chunk-170e4747\":\"203a047d\",\"chunk-3203f382\":\"203a047d\",\"chunk-6baa09d4\":\"ad6a37a0\"}[chunkId] + \".css\";\n \t\t\t\tvar fullhref = __webpack_require__.p + href;\n \t\t\t\tvar existingLinkTags = document.getElementsByTagName(\"link\");\n \t\t\t\tfor(var i = 0; i < existingLinkTags.length; i++) {\n \t\t\t\t\tvar tag = existingLinkTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\") || tag.getAttribute(\"href\");\n \t\t\t\t\tif(tag.rel === \"stylesheet\" && (dataHref === href || dataHref === fullhref)) return resolve();\n \t\t\t\t}\n \t\t\t\tvar existingStyleTags = document.getElementsByTagName(\"style\");\n \t\t\t\tfor(var i = 0; i < existingStyleTags.length; i++) {\n \t\t\t\t\tvar tag = existingStyleTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\");\n \t\t\t\t\tif(dataHref === href || dataHref === fullhref) return resolve();\n \t\t\t\t}\n \t\t\t\tvar linkTag = document.createElement(\"link\");\n \t\t\t\tlinkTag.rel = \"stylesheet\";\n \t\t\t\tlinkTag.type = \"text/css\";\n \t\t\t\tlinkTag.onload = resolve;\n \t\t\t\tlinkTag.onerror = function(event) {\n \t\t\t\t\tvar request = event && event.target && event.target.src || fullhref;\n \t\t\t\t\tvar err = new Error(\"Loading CSS chunk \" + chunkId + \" failed.\\n(\" + request + \")\");\n \t\t\t\t\terr.code = \"CSS_CHUNK_LOAD_FAILED\";\n \t\t\t\t\terr.request = request;\n \t\t\t\t\tdelete installedCssChunks[chunkId]\n \t\t\t\t\tlinkTag.parentNode.removeChild(linkTag)\n \t\t\t\t\treject(err);\n \t\t\t\t};\n \t\t\t\tlinkTag.href = fullhref;\n\n \t\t\t\tvar head = document.getElementsByTagName(\"head\")[0];\n \t\t\t\thead.appendChild(linkTag);\n \t\t\t}).then(function() {\n \t\t\t\tinstalledCssChunks[chunkId] = 0;\n \t\t\t}));\n \t\t}\n\n \t\t// JSONP chunk loading for javascript\n\n \t\tvar installedChunkData = installedChunks[chunkId];\n \t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n \t\t\t// a Promise means \"currently loading\".\n \t\t\tif(installedChunkData) {\n \t\t\t\tpromises.push(installedChunkData[2]);\n \t\t\t} else {\n \t\t\t\t// setup Promise in chunk cache\n \t\t\t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t\t\t});\n \t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n \t\t\t\t// start chunk loading\n \t\t\t\tvar script = document.createElement('script');\n \t\t\t\tvar onScriptComplete;\n\n \t\t\t\tscript.charset = 'utf-8';\n \t\t\t\tscript.timeout = 120;\n \t\t\t\tif (__webpack_require__.nc) {\n \t\t\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t\t\t}\n \t\t\t\tscript.src = jsonpScriptSrc(chunkId);\n\n \t\t\t\t// create error before stack unwound to get useful stacktrace later\n \t\t\t\tvar error = new Error();\n \t\t\t\tonScriptComplete = function (event) {\n \t\t\t\t\t// avoid mem leaks in IE.\n \t\t\t\t\tscript.onerror = script.onload = null;\n \t\t\t\t\tclearTimeout(timeout);\n \t\t\t\t\tvar chunk = installedChunks[chunkId];\n \t\t\t\t\tif(chunk !== 0) {\n \t\t\t\t\t\tif(chunk) {\n \t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n \t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n \t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n \t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n \t\t\t\t\t\t\terror.type = errorType;\n \t\t\t\t\t\t\terror.request = realSrc;\n \t\t\t\t\t\t\tchunk[1](error);\n \t\t\t\t\t\t}\n \t\t\t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t\t\t}\n \t\t\t\t};\n \t\t\t\tvar timeout = setTimeout(function(){\n \t\t\t\t\tonScriptComplete({ type: 'timeout', target: script });\n \t\t\t\t}, 120000);\n \t\t\t\tscript.onerror = script.onload = onScriptComplete;\n \t\t\t\tdocument.head.appendChild(script);\n \t\t\t}\n \t\t}\n \t\treturn Promise.all(promises);\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([0,\"chunk-vendors\"]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./ScrollPane.vue?vue&type=style&index=0&id=2893f9b4&lang=scss&scoped=true\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./Personal.vue?vue&type=style&index=0&id=37da47ea&scoped=true&lang=css\"","export * from \"-!../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../node_modules/vue-loader-v16/dist/stylePostLoader.js!../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../node_modules/cache-loader/dist/cjs.js??ref--1-0!../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./App.vue?vue&type=style&index=0&id=2bce9270&lang=scss\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./index.vue?vue&type=style&index=0&id=f8d00b58&lang=scss&scoped=true\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./index.vue?vue&type=style&index=0&id=583891f3&lang=scss&scoped=true\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./index.vue?vue&type=style&index=0&id=96e07a22&lang=scss&scoped=true\"","// extracted by mini-css-extract-plugin\nmodule.exports = {\"menuText\":\"#bfcbd9\",\"menuActiveText\":\"#409eff\",\"subMenuActiveText\":\"#f4f4f5\",\"menuBg\":\"#304156\",\"menuHover\":\"#263445\",\"subMenuBg\":\"#1f2d3d\",\"subMenuHover\":\"#001528\",\"sideBarWidth\":\"210px\"};","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./Link.vue?vue&type=style&index=0&id=724252a3&lang=scss&scoped=true\"","\r\n \r\n \r\n \r\n\r\n\r\n\r\n","import { render } from \"./App.vue?vue&type=template&id=2bce9270\"\nconst script = {}\n\nimport \"./App.vue?vue&type=style&index=0&id=2bce9270&lang=scss\"\n\nimport exportComponent from \"F:\\\\2022\\\\cloude\\\\vue-admin-plus\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { resolveComponent as _resolveComponent, createVNode as _createVNode, createElementVNode as _createElementVNode, normalizeClass as _normalizeClass, openBlock as _openBlock, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-583891f3\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"main-container\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_sidebar = _resolveComponent(\"sidebar\")!\n const _component_u_header = _resolveComponent(\"u-header\")!\n const _component_app_main = _resolveComponent(\"app-main\")!\n\n return (_openBlock(), _createElementBlock(\"div\", {\n class: _normalizeClass([\"g-container-layout\", {hideSidebar:_ctx.isCollapse}])\n }, [\n _createVNode(_component_sidebar, {\n class: \"sidebar-container\",\n isCollapse: _ctx.isCollapse\n }, null, 8, [\"isCollapse\"]),\n _createElementVNode(\"div\", _hoisted_1, [\n _createVNode(_component_u_header),\n _createVNode(_component_app_main)\n ])\n ], 2))\n}","/**\r\n * Created by PanJiaChen on 16/11/18.\r\n */\r\n\r\n/**\r\n * @param {string} path\r\n * @returns {Boolean}\r\n */\r\nexport function isExternal(path) {\r\n return /^(https?:|mailto:|tel:)/.test(path)\r\n}\r\n\r\n/**\r\n * @param {string} str\r\n * @returns {Boolean}\r\n */\r\nexport function validUsername(str) {\r\n const valid_map = ['admin', 'editor']\r\n return valid_map.indexOf(str.trim()) >= 0\r\n}\r\n\r\n/**\r\n * @param {string} url\r\n * @returns {Boolean}\r\n */\r\nexport function validURL(url) {\r\n const reg = /^(https?|ftp):\\/\\/([a-zA-Z0-9.-]+(:[a-zA-Z0-9.&%$-]+)*@)*((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]?)(\\.(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])){3}|([a-zA-Z0-9-]+\\.)*[a-zA-Z0-9-]+\\.(com|edu|gov|int|mil|net|org|biz|arpa|info|name|pro|aero|coop|museum|[a-zA-Z]{2}))(:[0-9]+)*(\\/($|[a-zA-Z0-9.,?'\\\\+&%$#=~_-]+))*$/\r\n return reg.test(url)\r\n}\r\n\r\n/**\r\n * @param {string} str\r\n * @returns {Boolean}\r\n */\r\nexport function validLowerCase(str) {\r\n const reg = /^[a-z]+$/\r\n return reg.test(str)\r\n}\r\n\r\n/**\r\n * @param {string} str\r\n * @returns {Boolean}\r\n */\r\nexport function validUpperCase(str) {\r\n const reg = /^[A-Z]+$/\r\n return reg.test(str)\r\n}\r\n\r\n/**\r\n * @param {string} str\r\n * @returns {Boolean}\r\n */\r\nexport function validAlphabets(str) {\r\n const reg = /^[A-Za-z]+$/\r\n return reg.test(str)\r\n}\r\n\r\n/**\r\n * @param {string} email\r\n * @returns {Boolean}\r\n */\r\nexport function validEmail(email) {\r\n const reg = /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/\r\n return reg.test(email)\r\n}\r\n\r\n/**\r\n * @param {string} str\r\n * @returns {Boolean}\r\n */\r\nexport function isString(str) {\r\n if (typeof str === 'string' || str instanceof String) {\r\n return true\r\n }\r\n return false\r\n}\r\n\r\n/**\r\n * @param {Array} arg\r\n * @returns {Boolean}\r\n */\r\nexport function isArray(arg) {\r\n if (typeof Array.isArray === 'undefined') {\r\n return Object.prototype.toString.call(arg) === '[object Array]'\r\n }\r\n return Array.isArray(arg)\r\n}\r\n","\r\n \r\n \r\n \r\n\r\n\r\n\r\n\r\n\r\n","import { render } from \"./Link.vue?vue&type=template&id=724252a3&scoped=true\"\nimport script from \"./Link.vue?vue&type=script&lang=js\"\nexport * from \"./Link.vue?vue&type=script&lang=js\"\n\nimport \"./Link.vue?vue&type=style&index=0&id=724252a3&lang=scss&scoped=true\"\n\nimport exportComponent from \"F:\\\\2022\\\\cloude\\\\vue-admin-plus\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-724252a3\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { resolveDynamicComponent as _resolveDynamicComponent, openBlock as _openBlock, createBlock as _createBlock, resolveComponent as _resolveComponent, withCtx as _withCtx, createVNode as _createVNode, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, createCommentVNode as _createCommentVNode, Fragment as _Fragment, createElementBlock as _createElementBlock, createElementVNode as _createElementVNode, renderList as _renderList } from \"vue\"\n\nimport { isExternal } from '@/utils/validate.js'\r\nimport AppLink from './Link.vue'\r\nimport path from 'path'\r\nimport { ref,computed} from 'vue'\r\n\nexport default /*#__PURE__*/_defineComponent({\n props: {\r\n item:{\r\n type:Object,\r\n required: true\r\n },\r\n basePath: {\r\n type: String,\r\n default: ''\r\n }\r\n},\n setup(__props) {\n\nconst props = __props\n\r\n\r\n\r\nconst onlyOneChild = ref(null)\r\nconst hasOneShowingChild = (children = [], parent)=>{\r\n const showingChildren = children.filter(item => {\r\n // 过滤掉需要隐藏的菜单\r\n if (item.hidden) {\r\n return false\r\n } else {\r\n // 临时设置(如果只有一个显示子项,则将使用)\r\n onlyOneChild.value = item\r\n return true\r\n }\r\n })\r\n // 当只有一个子路由器时,默认情况下会显示该子路由器\r\n if (showingChildren.length === 1) {\r\n return true\r\n }\r\n // 如果没有要显示的子路由器,则显示父路由器\r\n if (showingChildren.length === 0) {\r\n onlyOneChild.value = { ... parent, path: '', noShowingChildren: true }\r\n return true\r\n }\r\n\r\n return false\r\n}\r\n\r\n\r\nconst resolvePath = (routePath)=>{\r\n if (isExternal(routePath)) {\r\n return routePath\r\n }\r\n if (isExternal(props.basePath)) {\r\n return props.basePath\r\n }\r\n return path.resolve(props.basePath, routePath)\r\n}\r\n\r\n\nreturn (_ctx: any,_cache: any) => {\n const _component_el_icon = _resolveComponent(\"el-icon\")!\n const _component_el_menu_item = _resolveComponent(\"el-menu-item\")!\n const _component_sidebar_item = _resolveComponent(\"sidebar-item\", true)!\n const _component_el_sub_menu = _resolveComponent(\"el-sub-menu\")!\n\n return (!__props.item.hidden)\n ? (_openBlock(), _createElementBlock(_Fragment, { key: 0 }, [\n (hasOneShowingChild(__props.item.children,__props.item))\n ? (_openBlock(), _createElementBlock(_Fragment, { key: 0 }, [\n (onlyOneChild.value.meta)\n ? (_openBlock(), _createBlock(AppLink, {\n key: 0,\n to: resolvePath(onlyOneChild.value.path)\n }, {\n default: _withCtx(() => [\n _createVNode(_component_el_menu_item, {\n index: resolvePath(onlyOneChild.value.path)\n }, {\n title: _withCtx(() => [\n _createTextVNode(_toDisplayString(onlyOneChild.value.meta&&onlyOneChild.value.meta.title), 1)\n ]),\n default: _withCtx(() => [\n _createVNode(_component_el_icon, { size: 20 }, {\n default: _withCtx(() => [\n (_openBlock(), _createBlock(_resolveDynamicComponent(onlyOneChild.value?.meta.icon)))\n ]),\n _: 1\n })\n ]),\n _: 1\n }, 8, [\"index\"])\n ]),\n _: 1\n }, 8, [\"to\"]))\n : _createCommentVNode(\"\", true)\n ], 64))\n : (_openBlock(), _createBlock(_component_el_sub_menu, {\n key: 1,\n index: resolvePath(__props.item.path),\n \"popper-append-to-body\": \"\"\n }, {\n title: _withCtx(() => [\n _createVNode(_component_el_icon, { size: 20 }, {\n default: _withCtx(() => [\n (_openBlock(), _createBlock(_resolveDynamicComponent(__props.item.meta?.icon)))\n ]),\n _: 1\n }),\n _createElementVNode(\"span\", null, _toDisplayString(__props.item.meta&&__props.item.meta.title), 1)\n ]),\n default: _withCtx(() => [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(__props.item.children, (child) => {\n return (_openBlock(), _createBlock(_component_sidebar_item, {\n key: child.path,\n item: child,\n \"base-path\": resolvePath(child.path)\n }, null, 8, [\"item\", \"base-path\"]))\n }), 128))\n ]),\n _: 1\n }, 8, [\"index\"]))\n ], 64))\n : _createCommentVNode(\"\", true)\n}\n}\n\n})","import script from \"./SidebarItem.vue?vue&type=script&lang=ts&setup=true\"\nexport * from \"./SidebarItem.vue?vue&type=script&lang=ts&setup=true\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, createBlock as _createBlock, toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, Transition as _Transition, createVNode as _createVNode, normalizeClass as _normalizeClass, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-5c19406b\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = [\"src\"]\nconst _hoisted_2 = {\n key: 1,\n class: \"sidebar-title\"\n}\nconst _hoisted_3 = [\"src\"]\nconst _hoisted_4 = { class: \"sidebar-title\" }\n\nimport {computed, reactive, ref} from \"vue\";\r\nimport { useStore } from 'vuex' // useStore ===vue2.0中的this.$store\r\nimport logo from '@/assets/logo.png'\r\n\r\n\nexport default /*#__PURE__*/_defineComponent({\n setup(__props) {\n\r\nconst store = useStore()\r\n// const logo = ref('@/assets/logo.png')\r\nconst title = ref('Vue Admin Perfect')\r\n\r\nconst isCollapse = computed(()=>{\r\n return store.state.app.isCollapse\r\n})\r\n\r\n\nreturn (_ctx: any,_cache: any) => {\n const _component_router_link = _resolveComponent(\"router-link\")!\n\n return (_openBlock(), _createElementBlock(\"div\", {\n class: _normalizeClass([\"sidebar-logo-container\", {'collapse':_unref(isCollapse)}])\n }, [\n _createVNode(_Transition, { name: \"sidebarLogoFade\" }, {\n default: _withCtx(() => [\n (_unref(isCollapse))\n ? (_openBlock(), _createBlock(_component_router_link, {\n key: \"collapse\",\n class: \"sidebar-logo-link\",\n to: \"/\"\n }, {\n default: _withCtx(() => [\n (_unref(logo))\n ? (_openBlock(), _createElementBlock(\"img\", {\n key: 0,\n src: _unref(logo),\n class: \"sidebar-logo\"\n }, null, 8, _hoisted_1))\n : (_openBlock(), _createElementBlock(\"h1\", _hoisted_2, \"Perfect \"))\n ]),\n _: 1\n }))\n : (_openBlock(), _createBlock(_component_router_link, {\n key: \"expand\",\n class: \"sidebar-logo-link\",\n to: \"/\"\n }, {\n default: _withCtx(() => [\n (_unref(logo))\n ? (_openBlock(), _createElementBlock(\"img\", {\n key: 0,\n src: _unref(logo),\n class: \"sidebar-logo\"\n }, null, 8, _hoisted_3))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"h1\", _hoisted_4, _toDisplayString(title.value), 1)\n ]),\n _: 1\n }))\n ]),\n _: 1\n })\n ], 2))\n}\n}\n\n})","import script from \"./Logo.vue?vue&type=script&lang=ts&setup=true\"\nexport * from \"./Logo.vue?vue&type=script&lang=ts&setup=true\"\n\nimport \"./Logo.vue?vue&type=style&index=0&id=5c19406b&lang=scss&scoped=true\"\n\nimport exportComponent from \"F:\\\\2022\\\\cloude\\\\vue-admin-plus\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-5c19406b\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, createVNode as _createVNode, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, createBlock as _createBlock, resolveComponent as _resolveComponent, withCtx as _withCtx } from \"vue\"\n\nimport SidebarItem from './SidebarItem.vue'\r\n import logo from './Logo.vue'\r\n import {useRoute} from 'vue-router'\r\n import { useStore,mapGetters } from 'vuex' // useStore ===vue2.0中的this.$store\r\n import { ref,computed } from 'vue'\r\n\r\n // 在setup中获取store\r\n \nexport default /*#__PURE__*/_defineComponent({\n setup(__props) {\n\r\n const store = useStore()\r\n const route = useRoute()\r\n\r\n\r\n // 获取路由\r\n const permission_routes = computed(()=>{\r\n return store.state.permission.routes\r\n })\r\n\r\n const activeMenu = computed(()=>{\r\n const { meta, path } = route\r\n // if set path, the sidebar will highlight the path you set\r\n if (meta.activeMenu) {\r\n return meta.activeMenu\r\n }\r\n return path\r\n })\r\n\r\n // 是否折叠\r\n const isCollapse = computed(()=>{\r\n return store.state.app.isCollapse\r\n })\r\n\nreturn (_ctx: any,_cache: any) => {\n const _component_el_menu = _resolveComponent(\"el-menu\")!\n const _component_el_scrollbar = _resolveComponent(\"el-scrollbar\")!\n\n return (_openBlock(), _createElementBlock(\"div\", null, [\n _createVNode(logo, { collapse: _unref(isCollapse) }, null, 8, [\"collapse\"]),\n _createVNode(_component_el_scrollbar, { \"wrap-class\": \"scrollbar-wrapper\" }, {\n default: _withCtx(() => [\n _createVNode(_component_el_menu, {\n \"default-active\": _unref(activeMenu),\n \"active-text-color\": \"#ffd04b\",\n \"background-color\": \"#304156\",\n \"text-color\": \"#fff\",\n class: \"el-menu-vertical-demo\",\n collapse: _unref(isCollapse)\n }, {\n default: _withCtx(() => [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(permission_routes), (route) => {\n return (_openBlock(), _createBlock(SidebarItem, {\n key: route.path,\n item: route,\n \"base-path\": route.path\n }, null, 8, [\"item\", \"base-path\"]))\n }), 128))\n ]),\n _: 1\n }, 8, [\"default-active\", \"collapse\"])\n ]),\n _: 1\n })\n ]))\n}\n}\n\n})","import script from \"./index.vue?vue&type=script&lang=ts&setup=true\"\nexport * from \"./index.vue?vue&type=script&lang=ts&setup=true\"\n\nimport \"./index.vue?vue&type=style&index=0&id=c618cba0&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, resolveComponent as _resolveComponent, createVNode as _createVNode, withCtx as _withCtx, createTextVNode as _createTextVNode, createElementVNode as _createElementVNode, openBlock as _openBlock, createBlock as _createBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-37da47ea\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"dialog-footer\" }\nconst _hoisted_2 = /*#__PURE__*/_createTextVNode(\"取消\")\nconst _hoisted_3 = /*#__PURE__*/_createTextVNode(\"确定\")\n\nimport { ref,reactive, } from 'vue'\r\n import { ElMessageBox } from 'element-plus'\r\n import type { ElForm } from 'element-plus'\r\n type FormInstance = InstanceType\r\n\r\n \nexport default /*#__PURE__*/_defineComponent({\n setup(__props, { expose }) {\n\r\n const dialogVisible = ref(false)\r\n const show = ()=>{\r\n dialogVisible.value = true\r\n }\r\n const hide = ()=>{\r\n dialogVisible.value = false\r\n }\r\n const formSize = ref('')\r\n const ruleFormRef = ref()\r\n const ruleForm = reactive({\r\n name: '',\r\n mobile: '',\r\n password: '',\r\n })\r\n const rules = reactive({\r\n password: [\r\n {\r\n required: true,\r\n message: '请输入密码',\r\n trigger: 'blur',\r\n },\r\n ],\r\n })\r\n const submitForm = (formEl: FormInstance | undefined) => {\r\n if (!formEl) return\r\n formEl.validate((valid) => {\r\n if (valid) {\r\n console.log('submit!')\r\n } else {\r\n console.log('error submit!')\r\n return false\r\n }\r\n })\r\n }\r\n\r\n const resetForm = (formEl: FormInstance | undefined) => {\r\n if (!formEl) return\r\n formEl.resetFields()\r\n }\r\n\r\n expose({\r\n show,\r\n })\r\n\nreturn (_ctx: any,_cache: any) => {\n const _component_el_input = _resolveComponent(\"el-input\")!\n const _component_el_form_item = _resolveComponent(\"el-form-item\")!\n const _component_el_form = _resolveComponent(\"el-form\")!\n const _component_el_button = _resolveComponent(\"el-button\")!\n const _component_el_dialog = _resolveComponent(\"el-dialog\")!\n\n return (_openBlock(), _createBlock(_component_el_dialog, {\n modelValue: dialogVisible.value,\n \"onUpdate:modelValue\": _cache[5] || (_cache[5] = ($event: any) => ((dialogVisible).value = $event)),\n title: \"修改密码\",\n width: \"60%\"\n }, {\n footer: _withCtx(() => [\n _createElementVNode(\"span\", _hoisted_1, [\n _createVNode(_component_el_button, {\n onClick: _cache[3] || (_cache[3] = ($event: any) => (dialogVisible.value = false))\n }, {\n default: _withCtx(() => [\n _hoisted_2\n ]),\n _: 1\n }),\n _createVNode(_component_el_button, {\n type: \"primary\",\n onClick: _cache[4] || (_cache[4] = ($event: any) => (submitForm(ruleFormRef.value)))\n }, {\n default: _withCtx(() => [\n _hoisted_3\n ]),\n _: 1\n })\n ])\n ]),\n default: _withCtx(() => [\n _createVNode(_component_el_form, {\n ref_key: \"ruleFormRef\",\n ref: ruleFormRef,\n model: _unref(ruleForm),\n rules: _unref(rules),\n \"label-width\": \"120px\",\n class: \"demo-ruleForm\",\n size: formSize.value\n }, {\n default: _withCtx(() => [\n _createVNode(_component_el_form_item, { label: \"姓名\" }, {\n default: _withCtx(() => [\n _createVNode(_component_el_input, {\n modelValue: _unref(ruleForm).name,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event: any) => ((_unref(ruleForm).name) = $event)),\n disabled: \"\"\n }, null, 8, [\"modelValue\"])\n ]),\n _: 1\n }),\n _createVNode(_component_el_form_item, { label: \"手机号码\" }, {\n default: _withCtx(() => [\n _createVNode(_component_el_input, {\n modelValue: _unref(ruleForm).mobile,\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = ($event: any) => ((_unref(ruleForm).mobile) = $event)),\n disabled: \"\"\n }, null, 8, [\"modelValue\"])\n ]),\n _: 1\n }),\n _createVNode(_component_el_form_item, {\n label: \"修改密码\",\n prop: \"password\"\n }, {\n default: _withCtx(() => [\n _createVNode(_component_el_input, {\n modelValue: _unref(ruleForm).password,\n \"onUpdate:modelValue\": _cache[2] || (_cache[2] = ($event: any) => ((_unref(ruleForm).password) = $event))\n }, null, 8, [\"modelValue\"])\n ]),\n _: 1\n })\n ]),\n _: 1\n }, 8, [\"model\", \"rules\", \"size\"])\n ]),\n _: 1\n }, 8, [\"modelValue\"]))\n}\n}\n\n})","import script from \"./Personal.vue?vue&type=script&lang=ts&setup=true\"\nexport * from \"./Personal.vue?vue&type=script&lang=ts&setup=true\"\n\nimport \"./Personal.vue?vue&type=style&index=0&id=37da47ea&scoped=true&lang=css\"\n\nimport exportComponent from \"F:\\\\2022\\\\cloude\\\\vue-admin-plus\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-37da47ea\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { renderSlot as _renderSlot, resolveComponent as _resolveComponent, withModifiers as _withModifiers, withCtx as _withCtx, openBlock as _openBlock, createBlock as _createBlock } from \"vue\"\n\nimport {computed, onMounted, ref,getCurrentInstance} from \"vue\";\n\n\nexport default /*#__PURE__*/_defineComponent({\n setup(__props) {\n\nconst tagAndTagSpacing = 4 // tagAndTagSpacing\n\nconst left = ref(0)\nconst scrollContainer = ref()\n\nconst scrollWrapper = computed(()=>{\n return scrollContainer.value.$refs.wrap\n})\n\nconst handleScroll = ()=>{\n const eventDelta = e.wheelDelta || -e.deltaY * 40\n const $scrollWrapper = scrollWrapper.value\n $scrollWrapper.scrollLeft = $scrollWrapper.scrollLeft + eventDelta / 4\n\n}\n\nconst moveToTarget = (currentTag)=>{\n const $container = scrollContainer.value.$el\n const $containerWidth = $container.offsetWidth\n const $scrollWrapper = scrollWrapper.value\n const _this = getCurrentInstance()\n const tagList = _this.parent.$refs.tag\n\n let firstTag = null\n let lastTag = null\n\n if (tagList.length > 0) {\n firstTag = tagList[0]\n lastTag = tagList[tagList.length - 1]\n }\n\n if (firstTag === currentTag) {\n $scrollWrapper.scrollLeft = 0\n } else if (lastTag === currentTag) {\n $scrollWrapper.scrollLeft = $scrollWrapper.scrollWidth - $containerWidth\n } else {\n // find preTag and nextTag\n const currentIndex = tagList.findIndex(item => item === currentTag)\n const prevTag = tagList[currentIndex - 1]\n const nextTag = tagList[currentIndex + 1]\n\n // the tag's offsetLeft after of nextTag\n const afterNextTagOffsetLeft = nextTag.$el.offsetLeft + nextTag.$el.offsetWidth + tagAndTagSpacing\n\n // the tag's offsetLeft before of prevTag\n const beforePrevTagOffsetLeft = prevTag.$el.offsetLeft - tagAndTagSpacing\n\n if (afterNextTagOffsetLeft > $scrollWrapper.scrollLeft + $containerWidth) {\n $scrollWrapper.scrollLeft = afterNextTagOffsetLeft - $containerWidth\n } else if (beforePrevTagOffsetLeft < $scrollWrapper.scrollLeft) {\n $scrollWrapper.scrollLeft = beforePrevTagOffsetLeft\n }\n }\n\n}\n\n\nonMounted(()=>{\n console.log('scrollContainer.value',scrollContainer.value)\n})\n\n\n// export default {\n// name: 'ScrollPane',\n// data() {\n// return {\n// left: 0\n// }\n// },\n// computed: {\n// scrollWrapper() {\n// return this.$refs.scrollContainer.$refs.wrap\n// }\n// },\n// mounted() {\n// this.scrollWrapper.addEventListener('scroll', this.emitScroll, true)\n// },\n// beforeDestroy() {\n// this.scrollWrapper.removeEventListener('scroll', this.emitScroll)\n// },\n// methods: {\n// handleScroll(e) {\n// const eventDelta = e.wheelDelta || -e.deltaY * 40\n// const $scrollWrapper = this.scrollWrapper\n// $scrollWrapper.scrollLeft = $scrollWrapper.scrollLeft + eventDelta / 4\n// },\n// emitScroll() {\n// this.$emit('scroll')\n// },\n// moveToTarget(currentTag) {\n// const $container = this.$refs.scrollContainer.$el\n// const $containerWidth = $container.offsetWidth\n// const $scrollWrapper = this.scrollWrapper\n// const tagList = this.$parent.$refs.tag\n//\n// let firstTag = null\n// let lastTag = null\n//\n// // find first tag and last tag\n// if (tagList.length > 0) {\n// firstTag = tagList[0]\n// lastTag = tagList[tagList.length - 1]\n// }\n//\n// if (firstTag === currentTag) {\n// $scrollWrapper.scrollLeft = 0\n// } else if (lastTag === currentTag) {\n// $scrollWrapper.scrollLeft = $scrollWrapper.scrollWidth - $containerWidth\n// } else {\n// // find preTag and nextTag\n// const currentIndex = tagList.findIndex(item => item === currentTag)\n// const prevTag = tagList[currentIndex - 1]\n// const nextTag = tagList[currentIndex + 1]\n//\n// // the tag's offsetLeft after of nextTag\n// const afterNextTagOffsetLeft = nextTag.$el.offsetLeft + nextTag.$el.offsetWidth + tagAndTagSpacing\n//\n// // the tag's offsetLeft before of prevTag\n// const beforePrevTagOffsetLeft = prevTag.$el.offsetLeft - tagAndTagSpacing\n//\n// if (afterNextTagOffsetLeft > $scrollWrapper.scrollLeft + $containerWidth) {\n// $scrollWrapper.scrollLeft = afterNextTagOffsetLeft - $containerWidth\n// } else if (beforePrevTagOffsetLeft < $scrollWrapper.scrollLeft) {\n// $scrollWrapper.scrollLeft = beforePrevTagOffsetLeft\n// }\n// }\n// }\n// }\n// }\n\nreturn (_ctx: any,_cache: any) => {\n const _component_el_scrollbar = _resolveComponent(\"el-scrollbar\")!\n\n return (_openBlock(), _createBlock(_component_el_scrollbar, {\n ref_key: \"scrollContainer\",\n ref: scrollContainer,\n vertical: false,\n class: \"scroll-container\",\n onWheel: _withModifiers(handleScroll, [\"prevent\"])\n }, {\n default: _withCtx(() => [\n _renderSlot(_ctx.$slots, \"default\")\n ]),\n _: 3\n }, 8, [\"onWheel\"]))\n}\n}\n\n})","import script from \"./ScrollPane.vue?vue&type=script&lang=ts&setup=true\"\nexport * from \"./ScrollPane.vue?vue&type=script&lang=ts&setup=true\"\n\nimport \"./ScrollPane.vue?vue&type=style&index=0&id=2893f9b4&lang=scss&scoped=true\"\n\nimport exportComponent from \"F:\\\\2022\\\\cloude\\\\vue-admin-plus\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-2893f9b4\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, toDisplayString as _toDisplayString, resolveComponent as _resolveComponent, createVNode as _createVNode, withModifiers as _withModifiers, withCtx as _withCtx, createBlock as _createBlock, createCommentVNode as _createCommentVNode, createTextVNode as _createTextVNode, normalizeClass as _normalizeClass, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-f8d00b58\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"tags-view-container\" }\n\nimport {computed, onMounted, reactive, ref, watch} from \"vue\";\r\n import ScrollPane from \"./ScrollPane.vue\";\r\n import { useStore } from 'vuex'\r\n import {useRoute,useRouter} from 'vue-router'\r\n \nexport default /*#__PURE__*/_defineComponent({\n setup(__props) {\n\r\n const path = require('path')\r\n const store = useStore()\r\n const route = useRoute()\r\n const router = useRouter()\r\n const routes = computed(()=>{\r\n return store.state.permission.routes\r\n })\r\n const visitedViews = computed(()=>{\r\n return store.state.tagsView.visitedViews\r\n })\r\n\r\n let affixTags = ref([])\r\n\r\n function filterAffixTags(routes, basePath = '/') {\r\n let tags = []\r\n routes.forEach(route => {\r\n if (route.meta && route.meta.affix) {\r\n const tagPath = path.resolve(basePath, route.path)\r\n tags.push({\r\n fullPath: tagPath,\r\n path: tagPath,\r\n name: route.name,\r\n meta: { ...route.meta }\r\n })\r\n }\r\n if (route.children) {\r\n const tempTags = filterAffixTags(route.children, route.path)\r\n if (tempTags.length >= 1) {\r\n tags = [...tags, ...tempTags]\r\n }\r\n }\r\n })\r\n return tags\r\n }\r\n\r\n const initTags = ()=>{\r\n let affixTag = affixTags.value = filterAffixTags(routes.value)\r\n console.log('affixTags',affixTags)\r\n for (const tag of affixTag) {\r\n if (tag.name) {\r\n store.dispatch('tagsView/addVisitedView', tag)\r\n }\r\n }\r\n }\r\n function handleScroll() {\r\n closeMenu()\r\n }\r\n\r\n const isActive = (rou)=> {\r\n return rou.path === route.path\r\n }\r\n const isAffix = (tag)=>{\r\n return tag.meta && tag.meta.affix\r\n }\r\n const addTags = ()=> {\r\n const { name } = route\r\n if (name) {\r\n store.dispatch('tagsView/addView', route)\r\n }\r\n return false\r\n }\r\n function toLastView(visitedViews, view) {\r\n const latestView = visitedViews.slice(-1)[0]\r\n if (latestView) {\r\n router.push(latestView.fullPath)\r\n } else {\r\n if (view.name === 'home') {\r\n router.replace({ path: '/redirect' + view.fullPath })\r\n } else {\r\n router.push('/')\r\n }\r\n }\r\n }\r\n\r\n const closeSelectedTag = (view)=>{\r\n store.dispatch('tagsView/delView', view).then(({ visitedViews }) => {\r\n if (isActive(view)) {\r\n toLastView(visitedViews, view)\r\n }\r\n })\r\n }\r\n\r\n onMounted(()=>{\r\n initTags()\r\n addTags()\r\n\r\n watch(route,()=>{\r\n addTags()\r\n })\r\n })\r\n\r\n\nreturn (_ctx: any,_cache: any) => {\n const _component_circle_close_filled = _resolveComponent(\"circle-close-filled\")!\n const _component_el_icon = _resolveComponent(\"el-icon\")!\n const _component_router_link = _resolveComponent(\"router-link\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(ScrollPane, {\n ref: \"scrollPane\",\n class: \"tags-view-wrapper\"\n }, {\n default: _withCtx(() => [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(visitedViews), (tag) => {\n return (_openBlock(), _createBlock(_component_router_link, {\n ref_for: true,\n ref: \"tag\",\n class: _normalizeClass([isActive(tag)?'active':'', \"tags-view-item\"]),\n key: tag.path,\n to: { path: tag.path, query: tag.query, fullPath: tag.fullPath },\n tag: \"span\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(tag.title) + \" \", 1),\n (!isAffix(tag))\n ? (_openBlock(), _createBlock(_component_el_icon, {\n key: 0,\n onClick: _withModifiers(($event: any) => (closeSelectedTag(tag)), [\"prevent\",\"stop\"])\n }, {\n default: _withCtx(() => [\n _createVNode(_component_circle_close_filled)\n ]),\n _: 2\n }, 1032, [\"onClick\"]))\n : _createCommentVNode(\"\", true)\n ]),\n _: 2\n }, 1032, [\"class\", \"to\"]))\n }), 128))\n ]),\n _: 1\n }, 512)\n ]))\n}\n}\n\n})","import script from \"./index.vue?vue&type=script&lang=ts&setup=true\"\nexport * from \"./index.vue?vue&type=script&lang=ts&setup=true\"\n\nimport \"./index.vue?vue&type=style&index=0&id=f8d00b58&lang=scss&scoped=true\"\n\nimport exportComponent from \"F:\\\\2022\\\\cloude\\\\vue-admin-plus\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-f8d00b58\"]])\n\nexport default __exports__","/* eslint-disable promise/prefer-await-to-then */\n\nconst methodMap = [\n\t[\n\t\t'requestFullscreen',\n\t\t'exitFullscreen',\n\t\t'fullscreenElement',\n\t\t'fullscreenEnabled',\n\t\t'fullscreenchange',\n\t\t'fullscreenerror',\n\t],\n\t// New WebKit\n\t[\n\t\t'webkitRequestFullscreen',\n\t\t'webkitExitFullscreen',\n\t\t'webkitFullscreenElement',\n\t\t'webkitFullscreenEnabled',\n\t\t'webkitfullscreenchange',\n\t\t'webkitfullscreenerror',\n\n\t],\n\t// Old WebKit\n\t[\n\t\t'webkitRequestFullScreen',\n\t\t'webkitCancelFullScreen',\n\t\t'webkitCurrentFullScreenElement',\n\t\t'webkitCancelFullScreen',\n\t\t'webkitfullscreenchange',\n\t\t'webkitfullscreenerror',\n\n\t],\n\t[\n\t\t'mozRequestFullScreen',\n\t\t'mozCancelFullScreen',\n\t\t'mozFullScreenElement',\n\t\t'mozFullScreenEnabled',\n\t\t'mozfullscreenchange',\n\t\t'mozfullscreenerror',\n\t],\n\t[\n\t\t'msRequestFullscreen',\n\t\t'msExitFullscreen',\n\t\t'msFullscreenElement',\n\t\t'msFullscreenEnabled',\n\t\t'MSFullscreenChange',\n\t\t'MSFullscreenError',\n\t],\n];\n\nconst nativeAPI = (() => {\n\tconst unprefixedMethods = methodMap[0];\n\tconst returnValue = {};\n\n\tfor (const methodList of methodMap) {\n\t\tconst exitFullscreenMethod = methodList?.[1];\n\t\tif (exitFullscreenMethod in document) {\n\t\t\tfor (const [index, method] of methodList.entries()) {\n\t\t\t\treturnValue[unprefixedMethods[index]] = method;\n\t\t\t}\n\n\t\t\treturn returnValue;\n\t\t}\n\t}\n\n\treturn false;\n})();\n\nconst eventNameMap = {\n\tchange: nativeAPI.fullscreenchange,\n\terror: nativeAPI.fullscreenerror,\n};\n\n// eslint-disable-next-line import/no-mutable-exports\nlet screenfull = {\n\t// eslint-disable-next-line default-param-last\n\trequest(element = document.documentElement, options) {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tconst onFullScreenEntered = () => {\n\t\t\t\tscreenfull.off('change', onFullScreenEntered);\n\t\t\t\tresolve();\n\t\t\t};\n\n\t\t\tscreenfull.on('change', onFullScreenEntered);\n\n\t\t\tconst returnPromise = element[nativeAPI.requestFullscreen](options);\n\n\t\t\tif (returnPromise instanceof Promise) {\n\t\t\t\treturnPromise.then(onFullScreenEntered).catch(reject);\n\t\t\t}\n\t\t});\n\t},\n\texit() {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tif (!screenfull.isFullscreen) {\n\t\t\t\tresolve();\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst onFullScreenExit = () => {\n\t\t\t\tscreenfull.off('change', onFullScreenExit);\n\t\t\t\tresolve();\n\t\t\t};\n\n\t\t\tscreenfull.on('change', onFullScreenExit);\n\n\t\t\tconst returnPromise = document[nativeAPI.exitFullscreen]();\n\n\t\t\tif (returnPromise instanceof Promise) {\n\t\t\t\treturnPromise.then(onFullScreenExit).catch(reject);\n\t\t\t}\n\t\t});\n\t},\n\ttoggle(element, options) {\n\t\treturn screenfull.isFullscreen ? screenfull.exit() : screenfull.request(element, options);\n\t},\n\tonchange(callback) {\n\t\tscreenfull.on('change', callback);\n\t},\n\tonerror(callback) {\n\t\tscreenfull.on('error', callback);\n\t},\n\ton(event, callback) {\n\t\tconst eventName = eventNameMap[event];\n\t\tif (eventName) {\n\t\t\tdocument.addEventListener(eventName, callback, false);\n\t\t}\n\t},\n\toff(event, callback) {\n\t\tconst eventName = eventNameMap[event];\n\t\tif (eventName) {\n\t\t\tdocument.removeEventListener(eventName, callback, false);\n\t\t}\n\t},\n\traw: nativeAPI,\n};\n\nObject.defineProperties(screenfull, {\n\tisFullscreen: {\n\t\tget: () => Boolean(document[nativeAPI.fullscreenElement]),\n\t},\n\telement: {\n\t\tenumerable: true,\n\t\tget: () => document[nativeAPI.fullscreenElement] ?? undefined,\n\t},\n\tisEnabled: {\n\t\tenumerable: true,\n\t\t// Coerce to boolean in case of old WebKit.\n\t\tget: () => Boolean(document[nativeAPI.fullscreenEnabled]),\n\t},\n});\n\nif (!nativeAPI) {\n\tscreenfull = {isEnabled: false};\n}\n\n\nexport default screenfull;\n","import { defineComponent as _defineComponent } from 'vue'\nimport { resolveComponent as _resolveComponent, createVNode as _createVNode, withModifiers as _withModifiers, withCtx as _withCtx, openBlock as _openBlock, createBlock as _createBlock } from \"vue\"\n\nimport screenfull from './index'\r\n import { ElMessage } from 'element-plus'\r\n import {onBeforeUnmount, onMounted, ref} from \"vue\";\r\n \nexport default /*#__PURE__*/_defineComponent({\n setup(__props) {\n\r\n let isFullscreen = ref(false)\r\n const click = ()=>{\r\n if (!screenfull.isEnabled) {\r\n ElMessage({\r\n message: '你的浏览器不支持',\r\n type: 'warning'\r\n })\r\n return false\r\n }\r\n screenfull.toggle()\r\n }\r\n const change = ()=>{\r\n isFullscreen.value = screenfull.isFullscreen\r\n }\r\n\r\n const init = ()=>{\r\n if (screenfull.isEnabled) {\r\n screenfull.on('change', change)\r\n }\r\n }\r\n\r\n const destroy = ()=>{\r\n if (screenfull.isEnabled) {\r\n screenfull.off('change', change)\r\n }\r\n }\r\n\r\n onMounted(()=>{\r\n init()\r\n })\r\n\r\n onBeforeUnmount(()=>{\r\n destroy()\r\n })\r\n\nreturn (_ctx: any,_cache: any) => {\n const _component_full_screen = _resolveComponent(\"full-screen\")!\n const _component_el_icon = _resolveComponent(\"el-icon\")!\n\n return (_openBlock(), _createBlock(_component_el_icon, {\n title: \"全屏\",\n onClick: _withModifiers(click, [\"stop\"]),\n style: {\"margin-right\":\"10px\",\"cursor\":\"pointer\"}\n }, {\n default: _withCtx(() => [\n _createVNode(_component_full_screen)\n ]),\n _: 1\n }, 8, [\"onClick\"]))\n}\n}\n\n})","import script from \"./index.vue?vue&type=script&lang=ts&setup=true\"\nexport * from \"./index.vue?vue&type=script&lang=ts&setup=true\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, resolveComponent as _resolveComponent, createVNode as _createVNode, withCtx as _withCtx, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, createElementVNode as _createElementVNode, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, normalizeStyle as _normalizeStyle, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-96e07a22\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"header\" }\nconst _hoisted_2 = { class: \"right\" }\nconst _hoisted_3 = { class: \"el-dropdown-link\" }\nconst _hoisted_4 = /*#__PURE__*/_createTextVNode(\"退出登录\")\nconst _hoisted_5 = /*#__PURE__*/_createTextVNode(\"修改密码\")\n\nimport Personal from './Personal.vue'\r\n import TagViews from '../TagsView/index.vue'\r\n import UScreenFull from '@/components/u-screenfull/index.vue'\r\n import {computed, ref,} from 'vue'\r\n import {useRouter} from 'vue-router'\r\n import { ElMessageBox, ElMessage } from 'element-plus'\r\n import {useStore} from \"vuex\";\r\n\r\n \nexport default /*#__PURE__*/_defineComponent({\n setup(__props) {\n\r\n const store = useStore()\r\n const person = ref()\r\n const router = useRouter()\r\n\r\n const isCollapse = computed(()=>{\r\n return store.state.app.isCollapse\r\n })\r\n\r\n const userInfo = computed(()=>{\r\n return store.state.user.userInfo\r\n })\r\n\r\n const logOut = async ()=>{\r\n ElMessageBox.confirm(\r\n '确定退出登录吗?',\r\n '退出登录',\r\n {\r\n confirmButtonText: '确定',\r\n cancelButtonText: '取消',\r\n type: 'warning',\r\n }\r\n )\r\n .then(async () => {\r\n try {\r\n await store.dispatch('user/logout')\r\n router.push({path:'/login'})\r\n }catch (e) {\r\n\r\n }\r\n })\r\n .catch(() => {\r\n\r\n })\r\n }\r\n\r\n const commandAction = (key:number)=>{\r\n switch (key){\r\n case 1:\r\n logOut()\r\n break;\r\n case 2:\r\n person.value.show()\r\n break;\r\n }\r\n }\r\n\r\n const handleCollapse = (type:boolean) => {\r\n store.commit('app/SET_COLLAPSE', type)\r\n }\r\n\nreturn (_ctx: any,_cache: any) => {\n const _component_expand = _resolveComponent(\"expand\")!\n const _component_el_icon = _resolveComponent(\"el-icon\")!\n const _component_fold = _resolveComponent(\"fold\")!\n const _component_arrow_down = _resolveComponent(\"arrow-down\")!\n const _component_el_dropdown_item = _resolveComponent(\"el-dropdown-item\")!\n const _component_el_dropdown_menu = _resolveComponent(\"el-dropdown-menu\")!\n const _component_el_dropdown = _resolveComponent(\"el-dropdown\")!\n\n return (_openBlock(), _createElementBlock(\"div\", {\n class: \"m-layout-header\",\n style: _normalizeStyle({left:`${_unref(isCollapse)?'56':'210'}px`})\n }, [\n _createElementVNode(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", null, [\n (_unref(isCollapse))\n ? (_openBlock(), _createBlock(_component_el_icon, {\n key: 0,\n class: \"icon\",\n onClick: _cache[0] || (_cache[0] = ($event: any) => (handleCollapse(false)))\n }, {\n default: _withCtx(() => [\n _createVNode(_component_expand)\n ]),\n _: 1\n }))\n : (_openBlock(), _createBlock(_component_el_icon, {\n key: 1,\n class: \"icon\",\n onClick: _cache[1] || (_cache[1] = ($event: any) => (handleCollapse(true)))\n }, {\n default: _withCtx(() => [\n _createVNode(_component_fold)\n ]),\n _: 1\n }))\n ]),\n _createElementVNode(\"div\", _hoisted_2, [\n _createVNode(UScreenFull),\n _createVNode(_component_el_dropdown, { onCommand: commandAction }, {\n dropdown: _withCtx(() => [\n _createVNode(_component_el_dropdown_menu, null, {\n default: _withCtx(() => [\n _createVNode(_component_el_dropdown_item, { command: 1 }, {\n default: _withCtx(() => [\n _hoisted_4\n ]),\n _: 1\n }),\n _createVNode(_component_el_dropdown_item, { command: 2 }, {\n default: _withCtx(() => [\n _hoisted_5\n ]),\n _: 1\n })\n ]),\n _: 1\n })\n ]),\n default: _withCtx(() => [\n _createElementVNode(\"span\", _hoisted_3, [\n _createTextVNode(_toDisplayString(_unref(userInfo).username) + \" \", 1),\n _createVNode(_component_el_icon, { class: \"el-icon--right\" }, {\n default: _withCtx(() => [\n _createVNode(_component_arrow_down)\n ]),\n _: 1\n })\n ])\n ]),\n _: 1\n })\n ])\n ]),\n _createVNode(TagViews),\n _createVNode(Personal, {\n ref_key: \"person\",\n ref: person\n }, null, 512)\n ], 4))\n}\n}\n\n})","import script from \"./index.vue?vue&type=script&lang=ts&setup=true\"\nexport * from \"./index.vue?vue&type=script&lang=ts&setup=true\"\n\nimport \"./index.vue?vue&type=style&index=0&id=96e07a22&lang=scss&scoped=true\"\n\nimport exportComponent from \"F:\\\\2022\\\\cloude\\\\vue-admin-plus\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-96e07a22\"]])\n\nexport default __exports__","\r\n \r\n\r\n\r\n\r\n\r\n\r\n","import { render } from \"./AppMain.vue?vue&type=template&id=4137f49f&scoped=true\"\nconst script = {}\n\nimport \"./AppMain.vue?vue&type=style&index=0&id=4137f49f&lang=scss&scoped=true\"\n\nimport exportComponent from \"F:\\\\2022\\\\cloude\\\\vue-admin-plus\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-4137f49f\"]])\n\nexport default __exports__","\r\n import {computed, defineComponent, ref} from 'vue';\r\n import Sidebar from './components/Sidebar/index.vue'\r\n import UHeader from './components/UHeader/index.vue'\r\n import AppMain from './components/AppMain.vue'\r\n\r\n import {useStore} from \"vuex\";\r\n\r\n export default defineComponent({\r\n name: 'layout',\r\n components: {\r\n Sidebar,\r\n UHeader,\r\n AppMain,\r\n },\r\n setup(){\r\n const store = useStore()\r\n // 是否折叠\r\n const isCollapse = computed(()=>{\r\n return store.state.app.isCollapse\r\n })\r\n return{\r\n isCollapse\r\n }\r\n }\r\n });\r\n","import { render } from \"./index.vue?vue&type=template&id=583891f3&scoped=true&ts=true\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\n\nimport \"./index.vue?vue&type=style&index=0&id=583891f3&lang=scss&scoped=true\"\n\nimport exportComponent from \"F:\\\\2022\\\\cloude\\\\vue-admin-plus\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-583891f3\"]])\n\nexport default __exports__","/** When your routing table is too long, you can split it into small modules**/\r\n\r\nimport Layout from \"@/layout/index.vue\";\r\n\r\nconst chartsRouter = {\r\n path: '/charts',\r\n component: Layout,\r\n redirect: 'noRedirect',\r\n name: 'Charts',\r\n meta: {\r\n title: '图表',\r\n icon: 'trend-charts'\r\n },\r\n children: [\r\n {\r\n path: 'line',\r\n component: () => import('@/views/charts/line.vue'),\r\n name: 'line',\r\n meta: { title: '折现图', noCache: true }\r\n },\r\n {\r\n path: 'simple',\r\n component: () => import('@/views/charts/simple.vue'),\r\n name: 'charts-simple',\r\n meta: { title: '简单图表', noCache: true }\r\n },\r\n {\r\n path: 'complex',\r\n component: () => import('@/views/charts/complex.vue'),\r\n name: 'charts-complex',\r\n meta: { title: '复杂图表', noCache: true }\r\n },\r\n ]\r\n}\r\n\r\nexport default chartsRouter\r\n","/** When your routing table is too long, you can split it into small modules**/\r\n\r\nimport Layout from \"@/layout/index.vue\";\r\n\r\nconst chartsRouter = {\r\n path: '/chat',\r\n component: Layout,\r\n redirect: 'noRedirect',\r\n name: 'chat',\r\n meta: {\r\n title: '聊天框',\r\n icon: 'chat-square'\r\n },\r\n children: [\r\n {\r\n path: 'index',\r\n component: () => import('@/views/chat/index.vue'),\r\n name: 'chat',\r\n meta: { title: '聊天框', noCache: true,icon: 'chat-square' }\r\n },\r\n ]\r\n}\r\n\r\nexport default chartsRouter\r\n","/** When your routing table is too long, you can split it into small modules**/\r\n\r\nimport Layout from \"@/layout/index.vue\";\r\n\r\nconst componentsRouter = {\r\n path: '/components',\r\n component: Layout,\r\n redirect: 'noRedirect',\r\n name: 'components',\r\n meta: {\r\n title: '组件',\r\n icon: 'Histogram'\r\n },\r\n children: [\r\n {\r\n path: 'editor',\r\n component: () => import('@/views/components-demo/editor.vue'),\r\n name: 'editor',\r\n meta: { title: '富文本编辑器', noCache: true }\r\n },\r\n {\r\n path: 'mark-down',\r\n component: () => import('@/views/components-demo/mark-down.vue'),\r\n name: 'mark-down',\r\n meta: { title: 'markDown', noCache: true }\r\n },\r\n {\r\n path: 'form',\r\n component: () => import('@/views/components-demo/form.vue'),\r\n name: 'form',\r\n meta: { title: '表单', noCache: true }\r\n },\r\n ]\r\n}\r\n\r\nexport default componentsRouter\r\n","/** When your routing table is too long, you can split it into small modules**/\r\n\r\nimport Layout from \"@/layout/index.vue\";\r\n\r\nconst othersRouter = {\r\n path: '/other',\r\n component: Layout,\r\n redirect: 'noRedirect',\r\n name: 'other',\r\n meta: {\r\n title: '其他',\r\n icon: 'management'\r\n },\r\n children: [\r\n {\r\n path: 'print',\r\n component: () => import('@/views/other/print.vue'),\r\n name: 'print',\r\n meta: { title: '打印', noCache: true }\r\n },\r\n {\r\n path: 'cropper',\r\n component: () => import('@/views/other/cropper/index.vue'),\r\n name: 'cropper',\r\n meta: { title: '头像裁剪', noCache: true }\r\n },\r\n\r\n ]\r\n}\r\n\r\nexport default othersRouter\r\n","/** When your routing table is too long, you can split it into small modules**/\r\n\r\nimport Layout from \"@/layout/index.vue\";\r\n\r\nconst externalLink = {\r\n path: '/external-link',\r\n component: Layout,\r\n redirect: 'noRedirect',\r\n name: 'external-link',\r\n children: [\r\n {\r\n path: 'https://github.com/zouzhibin/vue-admin-perfect',\r\n name: 'external',\r\n meta: { title: '外链', noCache: true , icon: 'link' }\r\n },\r\n ]\r\n}\r\n\r\nexport default externalLink\r\n","import { createRouter, createWebHistory, RouteRecordRaw,createWebHashHistory } from 'vue-router'\r\nimport Layout from \"@/layout/index.vue\";\r\n\r\n// 引入组件\r\nimport chartsRouter from './modules/charts'\r\nimport chatRouter from './modules/chat'\r\nimport componentsRouter from './modules/components'\r\nimport othersRouter from './modules/other'\r\nimport externalLink from './modules/externalLink'\r\n\r\nexport const constantRoutes: Array = [\r\n {\r\n path: '/login',\r\n name: 'Login',\r\n component: () => import('@/views/login/index.vue'),\r\n // hidden: true\r\n },\r\n {\r\n path: '/',\r\n name: 'layout',\r\n component: Layout,\r\n redirect: '/home',\r\n children: [\r\n {\r\n path: '/home',\r\n component: () => import('@/views/home/index.vue'),\r\n name: 'home',\r\n meta: { title: '首页', icon: 'film', affix: true }\r\n },\r\n ]\r\n },\r\n\r\n]\r\n\r\n// 异步组件\r\nexport const asyncRoutes = [\r\n chartsRouter,\r\n chatRouter,\r\n componentsRouter,\r\n othersRouter,\r\n externalLink\r\n]\r\n\r\n\r\nconst router = createRouter({\r\n // history: createWebHistory(process.env.BASE_URL), // history\r\n history: createWebHashHistory(), // hash\r\n routes:constantRoutes\r\n})\r\n\r\nexport default router\r\n","import {Module} from \"vuex\";\r\n\r\nimport { asyncRoutes, constantRoutes } from '@/router/index'\r\n/**\r\n * Use meta.role to determine if the current user has permission\r\n * @param roles\r\n * @param route\r\n */\r\nfunction hasPermission(roles, route) {\r\n if (route.meta && route.meta.roles) {\r\n return roles.some(role => route.meta.roles.includes(role))\r\n } else {\r\n return true\r\n }\r\n}\r\n\r\n/**\r\n * Filter asynchronous routing tables by recursion\r\n * @param routes asyncRoutes\r\n * @param roles\r\n */\r\nexport function filterAsyncRoutes(routes, roles) {\r\n const res = []\r\n\r\n routes.forEach(route => {\r\n const tmp = { ...route }\r\n if (hasPermission(roles, tmp)) {\r\n if (tmp.children) {\r\n tmp.children = filterAsyncRoutes(tmp.children, roles)\r\n }\r\n res.push(tmp)\r\n }\r\n })\r\n\r\n return res\r\n}\r\n\r\n\r\nconst state = {\r\n routes: [],\r\n addRoutes: []\r\n}\r\n\r\nconst mutations = {\r\n SET_ROUTES: (state, routes) => {\r\n state.addRoutes = routes\r\n state.routes = constantRoutes.concat(routes)\r\n\r\n console.log('===============',state.routes)\r\n }\r\n}\r\n\r\nconst actions = {\r\n generateRoutes({ commit }, roles) {\r\n return new Promise(resolve => {\r\n // let accessedRoutes\r\n // if (roles.includes('admin')) {\r\n // accessedRoutes = asyncRoutes || []\r\n // } else {\r\n // accessedRoutes = filterAsyncRoutes(asyncRoutes, roles)\r\n // }\r\n commit('SET_ROUTES', asyncRoutes)\r\n resolve(asyncRoutes)\r\n })\r\n }\r\n}\r\n\r\nconst permission:Module = {\r\n namespaced:true,\r\n state,\r\n mutations,\r\n actions\r\n}\r\n\r\nexport default permission\r\n","import {Module} from \"vuex\";\r\n\r\nconst state = {\r\n isCollapse: false,\r\n}\r\n\r\nconst mutations = {\r\n SET_COLLAPSE: (state, value) => {\r\n state.isCollapse = value\r\n }\r\n}\r\n\r\n\r\n\r\nconst app:Module = {\r\n namespaced:true,\r\n state,\r\n mutations,\r\n}\r\n\r\nexport default app\r\n","\r\nconst TokenKey = 'zb-token'\r\n\r\nexport function getToken() {\r\n return localStorage.TokenKey\r\n}\r\n\r\nexport function setToken(token) {\r\n return localStorage.TokenKey = token\r\n}\r\n\r\nexport function removeToken() {\r\n return localStorage.TokenKey =''\r\n}\r\n","import {Module} from \"vuex\";\r\nimport { getToken, setToken, removeToken } from '@/utils/auth'\r\nconst state = {\r\n token: getToken(),\r\n userInfo:localStorage.userInfo?JSON.parse(localStorage.userInfo):{}\r\n}\r\n\r\nconst mutations = {\r\n SET_TOKEN: (state, token) => {\r\n state.token = token\r\n },\r\n SET_INFO: (state, userInfo) => {\r\n localStorage.userInfo = JSON.stringify(userInfo)\r\n state.userInfo = userInfo\r\n },\r\n}\r\n\r\n\r\nconst actions = {\r\n // 登录\r\n login({ commit }, userInfo) {\r\n console.log('=========')\r\n const { username, password } = userInfo\r\n return new Promise((resolve, reject) => {\r\n commit('SET_TOKEN', username)\r\n commit('SET_INFO', userInfo)\r\n setToken(username)\r\n resolve(username)\r\n })\r\n },\r\n // 退出\r\n logout({ commit, state, dispatch }) {\r\n return new Promise((resolve, reject) => {\r\n removeToken()\r\n commit('SET_TOKEN', '')\r\n commit('SET_INFO', '')\r\n resolve(null)\r\n })\r\n },\r\n}\r\n\r\n\r\nconst user:Module = {\r\n namespaced:true,\r\n state,\r\n actions,\r\n mutations,\r\n}\r\n\r\nexport default user\r\n","import {Module} from \"vuex\";\r\n\r\nconst state = {\r\n visitedViews: [],\r\n cachedViews: []\r\n}\r\n\r\nconst mutations = {\r\n ADD_VISITED_VIEW: (state, view) => {\r\n if (state.visitedViews.some(v => v.path === view.path)) return\r\n state.visitedViews.push(\r\n Object.assign({}, view, {\r\n title: view.meta.title || 'no-name'\r\n })\r\n )\r\n },\r\n ADD_CACHED_VIEW: (state, view) => {\r\n if (state.cachedViews.includes(view.name)) return\r\n if (!view.meta.noCache) {\r\n state.cachedViews.push(view.name)\r\n }\r\n },\r\n DEL_VISITED_VIEW: (state, view) => {\r\n for (const [i, v] of state.visitedViews.entries()) {\r\n if (v.path === view.path) {\r\n state.visitedViews.splice(i, 1)\r\n break\r\n }\r\n }\r\n },\r\n DEL_CACHED_VIEW: (state, view) => {\r\n const index = state.cachedViews.indexOf(view.name)\r\n index > -1 && state.cachedViews.splice(index, 1)\r\n },\r\n\r\n}\r\n\r\nconst actions = {\r\n addView({ dispatch }, view) {\r\n dispatch('addVisitedView', view)\r\n // dispatch('addCachedView', view)\r\n },\r\n addVisitedView({ commit }, view) {\r\n commit('ADD_VISITED_VIEW', view)\r\n },\r\n delView({ dispatch, state }, view) {\r\n return new Promise(resolve => {\r\n dispatch('delVisitedView', view)\r\n dispatch('delCachedView', view)\r\n resolve({\r\n visitedViews: [...state.visitedViews],\r\n cachedViews: [...state.cachedViews]\r\n })\r\n })\r\n },\r\n delVisitedView({ commit, state }, view) {\r\n return new Promise(resolve => {\r\n commit('DEL_VISITED_VIEW', view)\r\n resolve([...state.visitedViews])\r\n })\r\n },\r\n delCachedView({ commit, state }, view) {\r\n return new Promise(resolve => {\r\n commit('DEL_CACHED_VIEW', view)\r\n resolve([...state.cachedViews])\r\n })\r\n },\r\n}\r\n\r\n\r\n\r\nconst tagsView:Module = {\r\n namespaced:true,\r\n state,\r\n mutations,\r\n actions\r\n}\r\n\r\nexport default tagsView\r\n","const getters = {\r\n permission_routes: state => state.permission.routes,\r\n isCollapse: state => state.app.isCollapse,\r\n userInfo: state => state.user.userInfo,\r\n\r\n}\r\nexport default getters\r\n","import { createStore } from 'vuex'\r\n\r\nimport permission from './modules/permission'\r\nimport app from './modules/app'\r\nimport user from './modules/user'\r\nimport tagsView from './modules/tagsView'\r\n\r\nimport getters from './getters'\r\n\r\nexport default createStore({\r\n state: {\r\n\r\n },\r\n mutations: {\r\n\r\n },\r\n actions: {\r\n },\r\n modules: {\r\n permission,\r\n app,\r\n user,\r\n tagsView\r\n },\r\n getters\r\n})\r\n","import router from './router/index'\r\nimport store from './store/index'\r\nimport NProgress from 'nprogress'\r\nimport 'nprogress/nprogress.css'\r\nimport { getToken } from '@/utils/auth'\r\n\r\nNProgress.configure({ showSpinner: false }) // NProgress Configuration\r\n\r\nconst whiteList = ['/login', '/auth-redirect'] // 设置白名单\r\n// 记录路由\r\nlet hasRoles = true\r\n\r\nrouter.beforeEach(async(to, from, next) => {\r\n // 开启进度条\r\n NProgress.start()\r\n\r\n // set page title\r\n document.title = to.meta.title\r\n\r\n // 确定用户是否已登录\r\n const hasToken = getToken()\r\n\r\n if (hasToken) {\r\n if (to.path === '/login') {\r\n // 如果已登录,请重定向到主页\r\n next({ path: '/' })\r\n NProgress.done()\r\n } else {\r\n try {\r\n // 路由添加进去了没有及时更新 需要重新进去一次拦截\r\n if(hasRoles){\r\n const accessRoutes = await store.dispatch('permission/generateRoutes', 'roles')\r\n console.log('accessRoutes==',accessRoutes)\r\n hasRoles = false\r\n accessRoutes.forEach(item => router.addRoute(item)) // 动态添加访问路由表\r\n next({ ...to, replace: true }) // // 这里相当于push到一个页面 不在进入路由拦截\r\n }else {\r\n next() // // 如果不传参数就会重新执行路由拦截,重新进到这里\r\n }\r\n } catch (error) {\r\n next(`/login?redirect=${to.path}`)\r\n }\r\n }\r\n }else{\r\n if (whiteList.indexOf(to.path) !== -1) {\r\n next()\r\n } else {\r\n next(`/login?redirect=${to.path}`)\r\n NProgress.done()\r\n }\r\n }\r\n})\r\n\r\nrouter.afterEach(() => {\r\n NProgress.done()\r\n})\r\n","import { createApp } from 'vue'\r\nimport App from './App.vue'\r\nimport router from './router'\r\nimport store from './store'\r\n\r\nimport './permission'\r\nimport ElementPlus from 'element-plus'\r\nimport 'element-plus/dist/index.css'\r\n\r\nconst app = createApp(App)\r\n\r\nimport * as ElIconsModules from '@element-plus/icons-vue'\r\n// 全局注册element-plus icon图标组件\r\nObject.keys(ElIconsModules).forEach((key) => {//循环遍历组件名称\r\n if (\"Menu\" !== key) {//如果不是图标组件不是Menu,就跳过,否则加上ICon的后缀\r\n app.component(key, ElIconsModules[key]);\r\n } else {\r\n app.component(key + \"Icon\", ElIconsModules[key]);\r\n }\r\n});\r\n\r\nimport '@/styles/index.scss' // global css\r\napp.use(store).use(router).use(ElementPlus).mount('#app')\r\n","module.exports = __webpack_public_path__ + \"img/logo.82b9c7a5.png\";","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./Logo.vue?vue&type=style&index=0&id=5c19406b&lang=scss&scoped=true\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./index.vue?vue&type=style&index=0&id=c618cba0&lang=scss\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./AppMain.vue?vue&type=style&index=0&id=4137f49f&lang=scss&scoped=true\""],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/layout/components/TagsView/ScrollPane.vue?9111","webpack:///./src/layout/components/UHeader/Personal.vue?9709","webpack:///./src/App.vue?a44c","webpack:///./src/layout/components/TagsView/index.vue?0ef5","webpack:///./src/layout/index.vue?23af","webpack:///./src/layout/components/UHeader/index.vue?cfee","webpack:///./src/styles/index.scss?64ee","webpack:///./src/layout/components/Sidebar/Link.vue?24d1","webpack:///./src/App.vue","webpack:///./src/App.vue?6697","webpack:///./src/layout/index.vue?270b","webpack:///./src/utils/validate.js","webpack:///./src/layout/components/Sidebar/Link.vue","webpack:///./src/layout/components/Sidebar/Link.vue?0524","webpack:///./src/layout/components/Sidebar/SidebarItem.vue?802b","webpack:///./src/layout/components/Sidebar/SidebarItem.vue","webpack:///./src/layout/components/Sidebar/Logo.vue?c349","webpack:///./src/layout/components/Sidebar/Logo.vue","webpack:///./src/layout/components/Sidebar/index.vue?a1f5","webpack:///./src/layout/components/Sidebar/index.vue","webpack:///./src/layout/components/UHeader/Personal.vue?125c","webpack:///./src/layout/components/UHeader/Personal.vue","webpack:///./src/layout/components/TagsView/ScrollPane.vue?5136","webpack:///./src/layout/components/TagsView/ScrollPane.vue","webpack:///./src/layout/components/TagsView/index.vue?65ca","webpack:///./src/layout/components/TagsView/index.vue","webpack:///./src/components/u-screenfull/index.js","webpack:///./src/components/u-screenfull/index.vue?f24a","webpack:///./src/components/u-screenfull/index.vue","webpack:///./src/layout/components/UHeader/index.vue?2455","webpack:///./src/layout/components/UHeader/index.vue","webpack:///./src/layout/components/AppMain.vue","webpack:///./src/layout/components/AppMain.vue?02e1","webpack:///./src/layout/index.vue?17ba","webpack:///./src/layout/index.vue","webpack:///./src/router/modules/charts.ts","webpack:///./src/router/modules/chat.ts","webpack:///./src/router/modules/components.ts","webpack:///./src/router/modules/other.ts","webpack:///./src/router/modules/externalLink.ts","webpack:///./src/router/index.ts","webpack:///./src/store/modules/permission.ts","webpack:///./src/store/modules/app.ts","webpack:///./src/utils/auth.js","webpack:///./src/store/modules/user.ts","webpack:///./src/store/modules/tagsView.ts","webpack:///./src/store/getters.ts","webpack:///./src/store/index.ts","webpack:///./src/permission.js","webpack:///./src/main.ts","webpack:///./src/assets/logo.png","webpack:///./src/layout/components/Sidebar/Logo.vue?5a99","webpack:///./src/layout/components/Sidebar/index.vue?8c79","webpack:///./src/layout/components/AppMain.vue?f643"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","installedCssChunks","jsonpScriptSrc","p","exports","module","l","e","promises","cssChunks","Promise","resolve","reject","href","fullhref","existingLinkTags","document","getElementsByTagName","tag","dataHref","getAttribute","rel","existingStyleTags","linkTag","createElement","type","onload","onerror","event","request","target","src","err","Error","code","parentNode","removeChild","head","appendChild","then","installedChunkData","promise","onScriptComplete","script","charset","timeout","nc","setAttribute","error","clearTimeout","chunk","errorType","realSrc","message","name","undefined","setTimeout","all","m","c","d","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","oe","console","jsonpArray","window","oldJsonpFunction","slice","_createBlock","_component_router_view","Component","_resolveDynamicComponent","__exports__","render","_hoisted_1","class","_ctx","_cache","$props","$setup","$data","$options","_component_sidebar","_resolveComponent","_component_u_header","_component_app_main","_openBlock","_createElementBlock","_normalizeClass","hideSidebar","isCollapse","_createVNode","_createElementVNode","isExternal","path","test","_normalizeProps","_renderSlot","props","to","String","required","computed","this","methods","linkProps","_defineComponent","item","basePath","default","setup","__props","onlyOneChild","ref","hasOneShowingChild","children","parent","showingChildren","filter","hidden","noShowingChildren","resolvePath","routePath","_component_el_icon","_component_el_menu_item","_component_sidebar_item","_component_el_sub_menu","_createCommentVNode","_Fragment","meta","AppLink","_withCtx","index","title","_createTextVNode","_toDisplayString","size","icon","_","_renderList","child","_hoisted_2","_hoisted_3","_hoisted_4","store","useStore","state","app","_component_router_link","_unref","_Transition","logo","route","useRoute","permission_routes","permission","routes","activeMenu","_component_el_menu","_component_el_scrollbar","collapse","SidebarItem","expose","dialogVisible","show","formSize","ruleFormRef","ruleForm","reactive","mobile","password","rules","trigger","submitForm","formEl","validate","valid","log","_component_el_input","_component_el_form_item","_component_el_form","_component_el_button","_component_el_dialog","modelValue","$event","width","footer","onClick","ref_key","model","label","disabled","prop","scrollContainer","scrollWrapper","$refs","wrap","handleScroll","eventDelta","wheelDelta","deltaY","$scrollWrapper","scrollLeft","onMounted","vertical","onWheel","_withModifiers","$slots","require","router","useRouter","visitedViews","tagsView","affixTags","filterAffixTags","tags","forEach","affix","tagPath","fullPath","tempTags","initTags","affixTag","dispatch","isActive","rou","isAffix","addTags","toLastView","view","latestView","replace","closeSelectedTag","watch","_component_circle_close_filled","ScrollPane","ref_for","query","methodMap","nativeAPI","unprefixedMethods","returnValue","methodList","exitFullscreenMethod","entries","method","eventNameMap","change","fullscreenchange","fullscreenerror","screenfull","element","documentElement","options","onFullScreenEntered","off","on","returnPromise","requestFullscreen","catch","exit","isFullscreen","onFullScreenExit","exitFullscreen","toggle","onchange","callback","eventName","addEventListener","removeEventListener","raw","defineProperties","Boolean","fullscreenElement","isEnabled","fullscreenEnabled","click","ElMessage","init","destroy","onBeforeUnmount","_component_full_screen","style","_hoisted_5","person","userInfo","user","logOut","ElMessageBox","confirm","confirmButtonText","cancelButtonText","commandAction","handleCollapse","commit","_component_expand","_component_fold","_component_arrow_down","_component_el_dropdown_item","_component_el_dropdown_menu","_component_el_dropdown","_normalizeStyle","left","UScreenFull","onCommand","dropdown","command","username","TagViews","Personal","defineComponent","components","Sidebar","UHeader","AppMain","chartsRouter","component","Layout","redirect","noCache","componentsRouter","othersRouter","externalLink","constantRoutes","asyncRoutes","chatRouter","createRouter","history","createWebHashHistory","addRoutes","mutations","SET_ROUTES","concat","actions","generateRoutes","roles","namespaced","SET_COLLAPSE","getToken","localStorage","TokenKey","setToken","token","removeToken","JSON","parse","SET_TOKEN","SET_INFO","stringify","login","logout","cachedViews","ADD_VISITED_VIEW","some","v","assign","ADD_CACHED_VIEW","includes","DEL_VISITED_VIEW","DEL_CACHED_VIEW","indexOf","addView","addVisitedView","delView","delVisitedView","delCachedView","getters","createStore","NProgress","configure","showSpinner","whiteList","hasRoles","beforeEach","from","next","start","hasToken","done","accessRoutes","addRoute","afterEach","createApp","App","keys","ElIconsModules","use","ElementPlus","mount"],"mappings":"aACE,SAASA,EAAqBC,GAQ7B,IAPA,IAMIC,EAAUC,EANVC,EAAWH,EAAK,GAChBI,EAAcJ,EAAK,GACnBK,EAAiBL,EAAK,GAIHM,EAAI,EAAGC,EAAW,GACpCD,EAAIH,EAASK,OAAQF,IACzBJ,EAAUC,EAASG,GAChBG,OAAOC,UAAUC,eAAeC,KAAKC,EAAiBX,IAAYW,EAAgBX,IACpFK,EAASO,KAAKD,EAAgBX,GAAS,IAExCW,EAAgBX,GAAW,EAE5B,IAAID,KAAYG,EACZK,OAAOC,UAAUC,eAAeC,KAAKR,EAAaH,KACpDc,EAAQd,GAAYG,EAAYH,IAG/Be,GAAqBA,EAAoBhB,GAE5C,MAAMO,EAASC,OACdD,EAASU,OAATV,GAOD,OAHAW,EAAgBJ,KAAKK,MAAMD,EAAiBb,GAAkB,IAGvDe,IAER,SAASA,IAER,IADA,IAAIC,EACIf,EAAI,EAAGA,EAAIY,EAAgBV,OAAQF,IAAK,CAG/C,IAFA,IAAIgB,EAAiBJ,EAAgBZ,GACjCiB,GAAY,EACRC,EAAI,EAAGA,EAAIF,EAAed,OAAQgB,IAAK,CAC9C,IAAIC,EAAQH,EAAeE,GACG,IAA3BX,EAAgBY,KAAcF,GAAY,GAE3CA,IACFL,EAAgBQ,OAAOpB,IAAK,GAC5Be,EAASM,EAAoBA,EAAoBC,EAAIN,EAAe,KAItE,OAAOD,EAIR,IAAIQ,EAAmB,GAGnBC,EAAqB,CACxB,IAAO,GAMJjB,EAAkB,CACrB,IAAO,GAGJK,EAAkB,GAGtB,SAASa,EAAe7B,GACvB,OAAOyB,EAAoBK,EAAI,OAAS,GAAG9B,IAAUA,GAAW,IAAM,CAAC,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,YAAYA,GAAW,MAIpa,SAASyB,EAAoB1B,GAG5B,GAAG4B,EAAiB5B,GACnB,OAAO4B,EAAiB5B,GAAUgC,QAGnC,IAAIC,EAASL,EAAiB5B,GAAY,CACzCK,EAAGL,EACHkC,GAAG,EACHF,QAAS,IAUV,OANAlB,EAAQd,GAAUW,KAAKsB,EAAOD,QAASC,EAAQA,EAAOD,QAASN,GAG/DO,EAAOC,GAAI,EAGJD,EAAOD,QAKfN,EAAoBS,EAAI,SAAuBlC,GAC9C,IAAImC,EAAW,GAIXC,EAAY,CAAC,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,GACpKR,EAAmB5B,GAAUmC,EAASvB,KAAKgB,EAAmB5B,IACzB,IAAhC4B,EAAmB5B,IAAkBoC,EAAUpC,IACtDmC,EAASvB,KAAKgB,EAAmB5B,GAAW,IAAIqC,SAAQ,SAASC,EAASC,GAIzE,IAHA,IAAIC,EAAO,QAAU,GAAGxC,IAAUA,GAAW,IAAM,CAAC,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,YAAYA,GAAW,OAC5YyC,EAAWhB,EAAoBK,EAAIU,EACnCE,EAAmBC,SAASC,qBAAqB,QAC7CxC,EAAI,EAAGA,EAAIsC,EAAiBpC,OAAQF,IAAK,CAChD,IAAIyC,EAAMH,EAAiBtC,GACvB0C,EAAWD,EAAIE,aAAa,cAAgBF,EAAIE,aAAa,QACjE,GAAe,eAAZF,EAAIG,MAAyBF,IAAaN,GAAQM,IAAaL,GAAW,OAAOH,IAErF,IAAIW,EAAoBN,SAASC,qBAAqB,SACtD,IAAQxC,EAAI,EAAGA,EAAI6C,EAAkB3C,OAAQF,IAAK,CAC7CyC,EAAMI,EAAkB7C,GACxB0C,EAAWD,EAAIE,aAAa,aAChC,GAAGD,IAAaN,GAAQM,IAAaL,EAAU,OAAOH,IAEvD,IAAIY,EAAUP,SAASQ,cAAc,QACrCD,EAAQF,IAAM,aACdE,EAAQE,KAAO,WACfF,EAAQG,OAASf,EACjBY,EAAQI,QAAU,SAASC,GAC1B,IAAIC,EAAUD,GAASA,EAAME,QAAUF,EAAME,OAAOC,KAAOjB,EACvDkB,EAAM,IAAIC,MAAM,qBAAuB5D,EAAU,cAAgBwD,EAAU,KAC/EG,EAAIE,KAAO,wBACXF,EAAIH,QAAUA,SACP5B,EAAmB5B,GAC1BkD,EAAQY,WAAWC,YAAYb,GAC/BX,EAAOoB,IAERT,EAAQV,KAAOC,EAEf,IAAIuB,EAAOrB,SAASC,qBAAqB,QAAQ,GACjDoB,EAAKC,YAAYf,MACfgB,MAAK,WACPtC,EAAmB5B,GAAW,MAMhC,IAAImE,EAAqBxD,EAAgBX,GACzC,GAA0B,IAAvBmE,EAGF,GAAGA,EACFhC,EAASvB,KAAKuD,EAAmB,QAC3B,CAEN,IAAIC,EAAU,IAAI/B,SAAQ,SAASC,EAASC,GAC3C4B,EAAqBxD,EAAgBX,GAAW,CAACsC,EAASC,MAE3DJ,EAASvB,KAAKuD,EAAmB,GAAKC,GAGtC,IACIC,EADAC,EAAS3B,SAASQ,cAAc,UAGpCmB,EAAOC,QAAU,QACjBD,EAAOE,QAAU,IACb/C,EAAoBgD,IACvBH,EAAOI,aAAa,QAASjD,EAAoBgD,IAElDH,EAAOZ,IAAM7B,EAAe7B,GAG5B,IAAI2E,EAAQ,IAAIf,MAChBS,EAAmB,SAAUd,GAE5Be,EAAOhB,QAAUgB,EAAOjB,OAAS,KACjCuB,aAAaJ,GACb,IAAIK,EAAQlE,EAAgBX,GAC5B,GAAa,IAAV6E,EAAa,CACf,GAAGA,EAAO,CACT,IAAIC,EAAYvB,IAAyB,SAAfA,EAAMH,KAAkB,UAAYG,EAAMH,MAChE2B,EAAUxB,GAASA,EAAME,QAAUF,EAAME,OAAOC,IACpDiB,EAAMK,QAAU,iBAAmBhF,EAAU,cAAgB8E,EAAY,KAAOC,EAAU,IAC1FJ,EAAMM,KAAO,iBACbN,EAAMvB,KAAO0B,EACbH,EAAMnB,QAAUuB,EAChBF,EAAM,GAAGF,GAEVhE,EAAgBX,QAAWkF,IAG7B,IAAIV,EAAUW,YAAW,WACxBd,EAAiB,CAAEjB,KAAM,UAAWK,OAAQa,MAC1C,MACHA,EAAOhB,QAAUgB,EAAOjB,OAASgB,EACjC1B,SAASqB,KAAKC,YAAYK,GAG5B,OAAOjC,QAAQ+C,IAAIjD,IAIpBV,EAAoB4D,EAAIxE,EAGxBY,EAAoB6D,EAAI3D,EAGxBF,EAAoB8D,EAAI,SAASxD,EAASkD,EAAMO,GAC3C/D,EAAoBgE,EAAE1D,EAASkD,IAClC1E,OAAOmF,eAAe3D,EAASkD,EAAM,CAAEU,YAAY,EAAMC,IAAKJ,KAKhE/D,EAAoBoE,EAAI,SAAS9D,GACX,qBAAX+D,QAA0BA,OAAOC,aAC1CxF,OAAOmF,eAAe3D,EAAS+D,OAAOC,YAAa,CAAEC,MAAO,WAE7DzF,OAAOmF,eAAe3D,EAAS,aAAc,CAAEiE,OAAO,KAQvDvE,EAAoBwE,EAAI,SAASD,EAAOE,GAEvC,GADU,EAAPA,IAAUF,EAAQvE,EAAoBuE,IAC/B,EAAPE,EAAU,OAAOF,EACpB,GAAW,EAAPE,GAA8B,kBAAVF,GAAsBA,GAASA,EAAMG,WAAY,OAAOH,EAChF,IAAII,EAAK7F,OAAO8F,OAAO,MAGvB,GAFA5E,EAAoBoE,EAAEO,GACtB7F,OAAOmF,eAAeU,EAAI,UAAW,CAAET,YAAY,EAAMK,MAAOA,IACtD,EAAPE,GAA4B,iBAATF,EAAmB,IAAI,IAAIM,KAAON,EAAOvE,EAAoB8D,EAAEa,EAAIE,EAAK,SAASA,GAAO,OAAON,EAAMM,IAAQC,KAAK,KAAMD,IAC9I,OAAOF,GAIR3E,EAAoB+E,EAAI,SAASxE,GAChC,IAAIwD,EAASxD,GAAUA,EAAOmE,WAC7B,WAAwB,OAAOnE,EAAO,YACtC,WAA8B,OAAOA,GAEtC,OADAP,EAAoB8D,EAAEC,EAAQ,IAAKA,GAC5BA,GAIR/D,EAAoBgE,EAAI,SAASgB,EAAQC,GAAY,OAAOnG,OAAOC,UAAUC,eAAeC,KAAK+F,EAAQC,IAGzGjF,EAAoBK,EAAI,GAGxBL,EAAoBkF,GAAK,SAAShD,GAA2B,MAApBiD,QAAQjC,MAAMhB,GAAYA,GAEnE,IAAIkD,EAAaC,OAAO,gBAAkBA,OAAO,iBAAmB,GAChEC,EAAmBF,EAAWjG,KAAK2F,KAAKM,GAC5CA,EAAWjG,KAAOf,EAClBgH,EAAaA,EAAWG,QACxB,IAAI,IAAI5G,EAAI,EAAGA,EAAIyG,EAAWvG,OAAQF,IAAKP,EAAqBgH,EAAWzG,IAC3E,IAAIU,EAAsBiG,EAI1B/F,EAAgBJ,KAAK,CAAC,EAAE,kBAEjBM,K,6EC1QT,W,kCCAA,W,oCCAA,W,oCCAA,W,+JCAA,W,yDCAA,W,qBCCAc,EAAOD,QAAU,CAAC,SAAW,UAAU,eAAiB,UAAU,kBAAoB,UAAU,OAAS,UAAU,UAAY,UAAU,UAAY,UAAU,aAAe,UAAU,aAAe,U,kCCDvM,W,yPCCEkF,yBAEcC,EAAA,M,8BADR,gBADiBC,EACjB,EADiBA,UACjB,MAD0B,2BAC1BF,yBAA4BG,qCAAZD,S,yCCDxB,MAAM7C,EAAS,GAKT+C,EAA2B,IAAgB/C,EAAQ,CAAC,CAAC,SAASgD,KAErD,Q,kCCLTC,EAAa,CAAEC,MAAO,kBAEtB,SAAUF,EAAOG,EAAUC,EAAYC,EAAYC,EAAYC,EAAWC,GAC9E,IAAMC,EAAqBC,8BAAkB,WACvCC,EAAsBD,8BAAkB,YACxCE,EAAsBF,8BAAkB,YAE9C,OAAQG,yBAAcC,gCAAoB,MAAO,CAC/CZ,MAAOa,4BAAgB,CAAC,qBAAsB,CAACC,YAAYb,EAAKc,eAC/D,CACDC,yBAAaT,EAAoB,CAC/BP,MAAO,oBACPe,WAAYd,EAAKc,YAChB,KAAM,EAAG,CAAC,eACbE,gCAAoB,MAAOlB,EAAY,CACrCiB,yBAAaP,GACbO,yBAAaN,MAEd,G,wDCbE,SAASQ,EAAWC,GACzB,MAAO,0BAA0BC,KAAKD,G,wDCRtC1B,yBAEYG,qCAFIU,QAAIe,4DAAUf,YAAUH,QAAE,C,8BACxC,iBAAQ,CAARmB,wBAAQrB,SAAA,kBAAAvC,GAAA,O,KADV,IAQa,OACb6D,MAAO,CACLC,GAAI,CACF5F,KAAM6F,OACNC,UAAU,IAGdC,SAAU,CACRT,WADQ,WAEN,OAAOA,EAAWU,KAAKJ,KAEzB5F,KAJQ,WAKN,OAAIgG,KAAKV,WACA,IAEF,gBAGXW,QAAS,CACPC,UADO,SACGN,GACR,OAAII,KAAKV,WACA,CACLlG,KAAMwG,EACNvF,OAAQ,SACRT,IAAK,YAGF,CACLgG,GAAIA,M,UC9BZ,MAAM,EAA2B,IAAgB,EAAQ,CAAC,CAAC,SAAS,GAAQ,CAAC,YAAY,qBAE1E,Q,qBCDaO,+BAAiB,CAC3CR,MAAO,CACPS,KAAK,CACHpG,KAAK7C,OACL2I,UAAU,GAEZO,SAAU,CACRrG,KAAM6F,OACNS,QAAS,KAGXC,MAX2C,SAWrCC,GAER,IAAMb,EAAQa,EAIRC,EAAeC,iBAAI,MACnBC,EAAqB,WAAyB,IAAxBC,EAAwB,uDAAb,GAAIC,EAAS,uCAC5CC,EAAkBF,EAASG,QAAO,SAAAX,GAEtC,OAAIA,EAAKY,SAIPP,EAAa7D,MAAQwD,GACd,MAIX,OAA+B,IAA3BU,EAAgB5J,QAIW,IAA3B4J,EAAgB5J,SAClBuJ,EAAa7D,MAAb,iCAA2BiE,GAA3B,IAAmCtB,KAAM,GAAI0B,mBAAmB,KACzD,IAOLC,EAAc,SAACC,GACnB,OAAI7B,EAAW6B,GACNA,EAEL7B,EAAWK,EAAMU,UACZV,EAAMU,SAERd,IAAKrG,QAAQyG,EAAMU,SAAUc,IAItC,OAAO,SAAC9C,EAAUC,GAChB,IAAM8C,EAAqBxC,8BAAkB,WACvCyC,EAA0BzC,8BAAkB,gBAC5C0C,EAA0B1C,8BAAkB,gBAAgB,GAC5D2C,EAAyB3C,8BAAkB,eAEjD,OAAS4B,EAAQJ,KAAKY,OAyDlBQ,gCAAoB,IAAI,IAxDvBzC,yBAAcC,gCAAoByC,cAAW,CAAEvE,IAAK,GAAK,CACvDyD,EAAmBH,EAAQJ,KAAKQ,SAASJ,EAAQJ,OAC7CrB,yBAAcC,gCAAoByC,cAAW,CAAEvE,IAAK,GAAK,CACvDuD,EAAa7D,MAAM8E,MACf3C,yBAAclB,yBAAa8D,EAAS,CACnCzE,IAAK,EACL0C,GAAIsB,EAAYT,EAAa7D,MAAM2C,OAClC,CACDe,QAASsB,sBAAS,iBAAM,CACtBxC,yBAAaiC,EAAyB,CACpCQ,MAAOX,EAAYT,EAAa7D,MAAM2C,OACrC,CACDuC,MAAOF,sBAAS,iBAAM,CACpBG,6BAAiBC,6BAAiBvB,EAAa7D,MAAM8E,MAAMjB,EAAa7D,MAAM8E,KAAKI,OAAQ,OAE7FxB,QAASsB,sBAAS,iBAAM,CACtBxC,yBAAagC,EAAoB,CAAEa,KAAM,IAAM,CAC7C3B,QAASsB,sBAAS,uBAAM,EACrB7C,yBAAclB,yBAAaG,qCAAwB,UAACyC,EAAa7D,aAAd,aAAC,EAAoB8E,KAAKQ,YAEhFC,EAAG,QAGPA,EAAG,GACF,EAAG,CAAC,cAETA,EAAG,GACF,EAAG,CAAC,QACPX,gCAAoB,IAAI,IAC3B,MACFzC,yBAAclB,yBAAa0D,EAAwB,CAClDrE,IAAK,EACL2E,MAAOX,EAAYV,EAAQJ,KAAKb,MAChC,wBAAyB,IACxB,CACDuC,MAAOF,sBAAS,iBAAM,CACpBxC,yBAAagC,EAAoB,CAAEa,KAAM,IAAM,CAC7C3B,QAASsB,sBAAS,uBAAM,EACrB7C,yBAAclB,yBAAaG,qCAAwB,UAACwC,EAAQJ,KAAKsB,YAAd,aAAC,EAAmBQ,YAE1EC,EAAG,IAEL9C,gCAAoB,OAAQ,KAAM2C,6BAAiBxB,EAAQJ,KAAKsB,MAAMlB,EAAQJ,KAAKsB,KAAKI,OAAQ,OAElGxB,QAASsB,sBAAS,iBAAM,EACrB7C,wBAAW,GAAOC,gCAAoByC,cAAW,KAAMW,wBAAY5B,EAAQJ,KAAKQ,UAAU,SAACyB,GAC1F,OAAQtD,yBAAclB,yBAAayD,EAAyB,CAC1DpE,IAAKmF,EAAM9C,KACXa,KAAMiC,EACN,YAAanB,EAAYmB,EAAM9C,OAC9B,KAAM,EAAG,CAAC,OAAQ,iBACnB,UAEN4C,EAAG,GACF,EAAG,CAAC,YACV,SCzHT,MAAM,EAAc,EAEL,Q,iCCDThE,EAAa,CAAC,OACdmE,EAAa,CACjBpF,IAAK,EACLkB,MAAO,iBAEHmE,EAAa,CAAC,OACdC,EAAa,CAAEpE,MAAO,iBAOA+B,+BAAiB,CAC3CI,MAD2C,SACrCC,GAER,IAAMiC,EAAQC,iBAERZ,EAAQpB,iBAAY,qBAEpBvB,EAAaY,uBAAS,WAC1B,OAAO0C,EAAME,MAAMC,IAAIzD,cAIzB,OAAO,SAACd,EAAUC,GAChB,IAAMuE,EAAyBjE,8BAAkB,eAEjD,OAAQG,yBAAcC,gCAAoB,MAAO,CAC/CZ,MAAOa,4BAAgB,CAAC,yBAA0B,CAAC,SAAW6D,mBAAO3D,OACpE,CACDC,yBAAa2D,gBAAa,CAAElH,KAAM,mBAAqB,CACrDyE,QAASsB,sBAAS,iBAAM,CACrBkB,mBAAO3D,IACHJ,yBAAclB,yBAAagF,EAAwB,CAClD3F,IAAK,WACLkB,MAAO,oBACPwB,GAAI,KACH,CACDU,QAASsB,sBAAS,iBAAM,CACrBkB,mBAAOE,MACHjE,yBAAcC,gCAAoB,MAAO,CACxC9B,IAAK,EACL5C,IAAKwI,mBAAOE,KACZ5E,MAAO,gBACN,KAAM,EAAGD,KACXY,yBAAcC,gCAAoB,KAAMsD,EAAY,iBAE3DH,EAAG,MAEJpD,yBAAclB,yBAAagF,EAAwB,CAClD3F,IAAK,SACLkB,MAAO,oBACPwB,GAAI,KACH,CACDU,QAASsB,sBAAS,iBAAM,CACrBkB,mBAAOE,MACHjE,yBAAcC,gCAAoB,MAAO,CACxC9B,IAAK,EACL5C,IAAKwI,mBAAOE,KACZ5E,MAAO,gBACN,KAAM,EAAGmE,IACZf,gCAAoB,IAAI,GAC5BnC,gCAAoB,KAAMmD,EAAYR,6BAAiBF,EAAMlF,OAAQ,OAEvEuF,EAAG,SAGXA,EAAG,KAEJ,O,UCpEL,MAAM,EAA2B,IAAgB,EAAQ,CAAC,CAAC,YAAY,qBAExD,QCGahC,+BAAiB,CAC3CI,MAD2C,SACrCC,GAEN,IAAMiC,EAAQC,iBACRO,EAAQC,iBAIRC,EAAoBpD,uBAAS,WACjC,OAAO0C,EAAME,MAAMS,WAAWC,UAG1BC,EAAavD,uBAAS,WAC1B,IAAQ2B,EAAeuB,EAAfvB,KAAMnC,EAAS0D,EAAT1D,KAEd,OAAImC,EAAK4B,WACA5B,EAAK4B,WAEP/D,KAIHJ,EAAaY,uBAAS,WAC1B,OAAO0C,EAAME,MAAMC,IAAIzD,cAG3B,OAAO,SAACd,EAAUC,GAChB,IAAMiF,EAAqB3E,8BAAkB,WACvC4E,EAA0B5E,8BAAkB,gBAElD,OAAQG,yBAAcC,gCAAoB,MAAO,KAAM,CACrDI,yBAAa4D,EAAM,CAAES,SAAUX,mBAAO3D,IAAe,KAAM,EAAG,CAAC,aAC/DC,yBAAaoE,EAAyB,CAAE,aAAc,qBAAuB,CAC3ElD,QAASsB,sBAAS,iBAAM,CACtBxC,yBAAamE,EAAoB,CAC/B,iBAAkBT,mBAAOQ,GACzB,oBAAqB,UACrB,mBAAoB,UACpB,aAAc,OACdlF,MAAO,wBACPqF,SAAUX,mBAAO3D,IAChB,CACDmB,QAASsB,sBAAS,iBAAM,EACrB7C,wBAAW,GAAOC,gCAAoByC,cAAW,KAAMW,wBAAYU,mBAAOK,IAAoB,SAACF,GAC9F,OAAQlE,yBAAclB,yBAAa6F,EAAa,CAC9CxG,IAAK+F,EAAM1D,KACXa,KAAM6C,EACN,YAAaA,EAAM1D,MAClB,KAAM,EAAG,CAAC,OAAQ,iBACnB,UAEN4C,EAAG,GACF,EAAG,CAAC,iBAAkB,iBAE3BA,EAAG,U,UC5DT,MAAM,EAAc,EAEL,Q,YCHThE,G,oBAAa,CAAEC,MAAO,kBACtBkE,EAA0BP,6BAAiB,MAC3CQ,EAA0BR,6BAAiB,MAQrB5B,+BAAiB,CAC3CI,MAD2C,SACrCC,EADqC,GAClB,IAARmD,EAAQ,EAARA,OAEXC,EAAgBlD,kBAAI,GACpBmD,EAAO,WACXD,EAAchH,OAAQ,GAKlBkH,EAAWpD,iBAAI,IACfqD,EAAcrD,mBACdsD,EAAWC,sBAAS,CACxBpI,KAAM,GACNqI,OAAQ,GACRC,SAAU,KAENC,EAAQH,sBAAS,CACrBE,SAAU,CACR,CACErE,UAAU,EACVlE,QAAS,QACTyI,QAAS,WAITC,EAAa,SAACC,GACbA,GACLA,EAAOC,UAAS,SAACC,GACf,IAAIA,EAIF,OADAjH,QAAQkH,IAAI,kBACL,EAHPlH,QAAQkH,IAAI,eAiBpB,OAJEf,EAAO,CACLE,SAGG,SAACxF,EAAUC,GAChB,IAAMqG,EAAsB/F,8BAAkB,YACxCgG,EAA0BhG,8BAAkB,gBAC5CiG,EAAqBjG,8BAAkB,WACvCkG,EAAuBlG,8BAAkB,aACzCmG,EAAuBnG,8BAAkB,aAE/C,OAAQG,yBAAclB,yBAAakH,EAAsB,CACvDC,WAAYpB,EAAchH,MAC1B,sBAAuB0B,EAAO,KAAOA,EAAO,GAAK,SAAC2G,GAAD,OAAmBrB,EAAehH,MAAQqI,IAC3FnD,MAAO,OACPoD,MAAO,OACN,CACDC,OAAQvD,sBAAS,iBAAM,CACrBvC,gCAAoB,OAAQlB,EAAY,CACtCiB,yBAAa0F,EAAsB,CACjCM,QAAS9G,EAAO,KAAOA,EAAO,GAAK,SAAC2G,GAAD,OAAkBrB,EAAchH,OAAQ,KAC1E,CACD0D,QAASsB,sBAAS,iBAAM,CACtBU,MAEFH,EAAG,IAEL/C,yBAAa0F,EAAsB,CACjC9K,KAAM,UACNoL,QAAS9G,EAAO,KAAOA,EAAO,GAAK,SAAC2G,GAAD,OAAkBX,EAAWP,EAAYnH,UAC3E,CACD0D,QAASsB,sBAAS,iBAAM,CACtBW,MAEFJ,EAAG,UAIT7B,QAASsB,sBAAS,iBAAM,CACtBxC,yBAAayF,EAAoB,CAC/BQ,QAAS,cACT3E,IAAKqD,EACLuB,MAAOxC,mBAAOkB,GACdI,MAAOtB,mBAAOsB,GACd,cAAe,QACfhG,MAAO,gBACP6D,KAAM6B,EAASlH,OACd,CACD0D,QAASsB,sBAAS,iBAAM,CACtBxC,yBAAawF,EAAyB,CAAEW,MAAO,MAAQ,CACrDjF,QAASsB,sBAAS,iBAAM,CACtBxC,yBAAauF,EAAqB,CAChCK,WAAYlC,mBAAOkB,GAAUnI,KAC7B,sBAAuByC,EAAO,KAAOA,EAAO,GAAK,SAAC2G,GAAD,OAAmBnC,mBAAOkB,GAAUnI,KAAQoJ,IAC7FO,SAAU,IACT,KAAM,EAAG,CAAC,mBAEfrD,EAAG,IAEL/C,yBAAawF,EAAyB,CAAEW,MAAO,QAAU,CACvDjF,QAASsB,sBAAS,iBAAM,CACtBxC,yBAAauF,EAAqB,CAChCK,WAAYlC,mBAAOkB,GAAUE,OAC7B,sBAAuB5F,EAAO,KAAOA,EAAO,GAAK,SAAC2G,GAAD,OAAmBnC,mBAAOkB,GAAUE,OAAUe,IAC/FO,SAAU,IACT,KAAM,EAAG,CAAC,mBAEfrD,EAAG,IAEL/C,yBAAawF,EAAyB,CACpCW,MAAO,OACPE,KAAM,YACL,CACDnF,QAASsB,sBAAS,iBAAM,CACtBxC,yBAAauF,EAAqB,CAChCK,WAAYlC,mBAAOkB,GAAUG,SAC7B,sBAAuB7F,EAAO,KAAOA,EAAO,GAAK,SAAC2G,GAAD,OAAmBnC,mBAAOkB,GAAUG,SAAYc,KAChG,KAAM,EAAG,CAAC,mBAEf9C,EAAG,QAGPA,EAAG,GACF,EAAG,CAAC,QAAS,QAAS,aAE3BA,EAAG,GACF,EAAG,CAAC,mB,UCzIT,MAAM,EAA2B,IAAgB,EAAQ,CAAC,CAAC,YAAY,qBAExD,Q,wBCFahC,G,wCAAAA,6BAAiB,CAC3CI,MAD2C,SACrCC,GAIKE,iBAAI,GAFjB,IAGMgF,EAAkBhF,mBAElBiF,EAAgB5F,uBAAS,WAC7B,OAAO2F,EAAgB9I,MAAMgJ,MAAMC,QAG/BC,EAAe,WACnB,IAAMC,EAAajN,EAAEkN,YAA0B,IAAXlN,EAAEmN,OAChCC,EAAiBP,EAAc/I,MACrCsJ,EAAeC,WAAaD,EAAeC,WAAaJ,EAAa,GAsHvE,OAzEAK,wBAAU,WACR5I,QAAQkH,IAAI,wBAAwBgB,EAAgB9I,UAwE/C,SAACyB,EAAUC,GAChB,IAAMkF,EAA0B5E,8BAAkB,gBAElD,OAAQG,yBAAclB,yBAAa2F,EAAyB,CAC1D6B,QAAS,kBACT3E,IAAKgF,EACLW,UAAU,EACVjI,MAAO,mBACPkI,QAASC,2BAAeT,EAAc,CAAC,aACtC,CACDxF,QAASsB,sBAAS,iBAAM,CACtBlC,wBAAYrB,EAAKmI,OAAQ,eAE3BrE,EAAG,GACF,EAAG,CAAC,iB,UCnJT,MAAM,EAA2B,IAAgB,EAAQ,CAAC,CAAC,YAAY,qBAExD,QCJThE,EAAa,CAAEC,MAAO,uBAOA+B,+BAAiB,CAC3CI,MAD2C,SACrCC,GAEN,IAAMjB,EAAOkH,EAAQ,QACfhE,EAAQC,iBACRO,EAAQC,iBACRwD,EAASC,iBACTtD,EAAStD,uBAAS,WACtB,OAAO0C,EAAME,MAAMS,WAAWC,UAE1BuD,EAAe7G,uBAAS,WAC5B,OAAO0C,EAAME,MAAMkE,SAASD,gBAG1BE,EAAYpG,iBAAI,IAEpB,SAASqG,EAAgB1D,GAAsB,IAAdhD,EAAc,uDAAH,IACtC2G,EAAO,GAkBX,OAjBA3D,EAAO4D,SAAQ,SAAAhE,GACb,GAAIA,EAAMvB,MAAQuB,EAAMvB,KAAKwF,MAAO,CAClC,IAAMC,EAAU5H,EAAKrG,QAAQmH,EAAU4C,EAAM1D,MAC7CyH,EAAKxP,KAAK,CACR4P,SAAUD,EACV5H,KAAM4H,EACNtL,KAAMoH,EAAMpH,KACZ6F,KAAM,kBAAKuB,EAAMvB,QAGrB,GAAIuB,EAAMrC,SAAU,CAClB,IAAMyG,EAAWN,EAAgB9D,EAAMrC,SAAUqC,EAAM1D,MACnD8H,EAASnQ,QAAU,IACrB8P,EAAO,GAAH,sBAAOA,GAAP,eAAgBK,SAInBL,EAGT,IAAMM,EAAW,WACf,IAAIC,EAAWT,EAAUlK,MAAQmK,EAAgB1D,EAAOzG,OACxDY,QAAQkH,IAAI,YAAYoC,GAFL,uBAGDS,GAHC,IAGnB,2BAA4B,KAAjB9N,EAAiB,QACtBA,EAAIoC,MACN4G,EAAM+E,SAAS,0BAA2B/N,IAL3B,gCAarB,IAAMgO,EAAW,SAACC,GAChB,OAAOA,EAAInI,OAAS0D,EAAM1D,MAEtBoI,EAAU,SAAClO,GACb,OAAOA,EAAIiI,MAAQjI,EAAIiI,KAAKwF,OAE1BU,EAAU,WACd,IAAQ/L,EAASoH,EAATpH,KAIR,OAHIA,GACF4G,EAAM+E,SAAS,mBAAoBvE,IAE9B,GAET,SAAS4E,EAAWjB,EAAckB,GAChC,IAAMC,EAAanB,EAAahJ,OAAO,GAAG,GACtCmK,EACFrB,EAAOlP,KAAKuQ,EAAWX,UAEL,SAAdU,EAAKjM,KACP6K,EAAOsB,QAAQ,CAAEzI,KAAM,YAAcuI,EAAKV,WAE1CV,EAAOlP,KAAK,KAKlB,IAAMyQ,EAAmB,SAACH,GACxBrF,EAAM+E,SAAS,mBAAoBM,GAAMhN,MAAK,YAAqB,IAAlB8L,EAAkB,EAAlBA,aAC3Ca,EAASK,IACXD,EAAWjB,EAAckB,OAejC,OAVE1B,wBAAU,WACRkB,IACAM,IAEAM,mBAAMjF,GAAM,WACV2E,UAKC,SAACvJ,EAAUC,GAChB,IAAM6J,EAAiCvJ,8BAAkB,uBACnDwC,EAAqBxC,8BAAkB,WACvCiE,EAAyBjE,8BAAkB,eAEjD,OAAQG,yBAAcC,gCAAoB,MAAOb,EAAY,CAC3DiB,yBAAagJ,EAAY,CACvB1H,IAAK,aACLtC,MAAO,qBACN,CACDkC,QAASsB,sBAAS,iBAAM,EACrB7C,wBAAW,GAAOC,gCAAoByC,cAAW,KAAMW,wBAAYU,mBAAO8D,IAAe,SAACnN,GACzF,OAAQsF,yBAAclB,yBAAagF,EAAwB,CACzDwF,SAAS,EACT3H,IAAK,MACLtC,MAAOa,4BAAgB,CAACwI,EAAShO,GAAK,SAAS,GAAI,mBACnDyD,IAAKzD,EAAI8F,KACTK,GAAI,CAAEL,KAAM9F,EAAI8F,KAAM+I,MAAO7O,EAAI6O,MAAOlB,SAAU3N,EAAI2N,UACtD3N,IAAK,QACJ,CACD6G,QAASsB,sBAAS,iBAAM,CACtBG,6BAAiBC,6BAAiBvI,EAAIqI,OAAS,IAAK,GAClD6F,EAAQlO,GAUN+H,gCAAoB,IAAI,IATvBzC,yBAAclB,yBAAauD,EAAoB,CAC9ClE,IAAK,EACLkI,QAASmB,4BAAe,SAACtB,GAAD,OAAkBgD,EAAiBxO,KAAO,CAAC,UAAU,UAC5E,CACD6G,QAASsB,sBAAS,iBAAM,CACtBxC,yBAAa+I,OAEfhG,EAAG,GACF,KAAM,CAAC,iBAGhBA,EAAG,GACF,KAAM,CAAC,QAAS,UACjB,UAENA,EAAG,GACF,W,UC3IP,MAAM,EAA2B,IAAgB,EAAQ,CAAC,CAAC,YAAY,qBAExD,Q,aCNToG,GAAY,CACjB,CACC,oBACA,iBACA,oBACA,oBACA,mBACA,mBAGD,CACC,0BACA,uBACA,0BACA,0BACA,yBACA,yBAID,CACC,0BACA,yBACA,iCACA,yBACA,yBACA,yBAGD,CACC,uBACA,sBACA,uBACA,uBACA,sBACA,sBAED,CACC,sBACA,mBACA,sBACA,sBACA,qBACA,sBAIIC,GAAa,WAClB,IADwB,EAClBC,EAAoBF,GAAU,GAC9BG,EAAc,GAFI,iBAICH,IAJD,IAIxB,2BAAoC,KAAzBI,EAAyB,QAC7BC,EAAoB,OAAGD,QAAH,IAAGA,OAAH,EAAGA,EAAa,GAC1C,GAAIC,KAAwBrP,SAAU,wBACPoP,EAAWE,WADJ,IACrC,2BAAoD,kCAAxChH,EAAwC,KAAjCiH,EAAiC,KACnDJ,EAAYD,EAAkB5G,IAAUiH,GAFJ,8BAKrC,OAAOJ,IAXe,8BAexB,OAAO,EAfW,GAkBbK,GAAe,CACpBC,OAAQR,GAAUS,iBAClB1N,MAAOiN,GAAUU,iBAIdC,GAAa,CAEhB/O,QAFgB,WAEqC,IAA7CgP,EAA6C,uDAAnC7P,SAAS8P,gBAAiBC,EAAS,uCACpD,OAAO,IAAIrQ,SAAQ,SAACC,EAASC,GAC5B,IAAMoQ,EAAsB,SAAtBA,IACLJ,GAAWK,IAAI,SAAUD,GACzBrQ,KAGDiQ,GAAWM,GAAG,SAAUF,GAExB,IAAMG,EAAgBN,EAAQZ,GAAUmB,mBAAmBL,GAEvDI,aAAyBzQ,SAC5ByQ,EAAc5O,KAAKyO,GAAqBK,MAAMzQ,OAIjD0Q,KAlBgB,WAmBf,OAAO,IAAI5Q,SAAQ,SAACC,EAASC,GAC5B,GAAKgQ,GAAWW,aAAhB,CAKA,IAAMC,EAAmB,SAAnBA,IACLZ,GAAWK,IAAI,SAAUO,GACzB7Q,KAGDiQ,GAAWM,GAAG,SAAUM,GAExB,IAAML,EAAgBnQ,SAASiP,GAAUwB,kBAErCN,aAAyBzQ,SAC5ByQ,EAAc5O,KAAKiP,GAAkBH,MAAMzQ,QAd3CD,QAkBH+Q,OAvCgB,SAuCTb,EAASE,GACf,OAAOH,GAAWW,aAAeX,GAAWU,OAASV,GAAW/O,QAAQgP,EAASE,IAElFY,SA1CgB,SA0CPC,GACRhB,GAAWM,GAAG,SAAUU,IAEzBjQ,QA7CgB,SA6CRiQ,GACPhB,GAAWM,GAAG,QAASU,IAExBV,GAhDgB,SAgDbtP,EAAOgQ,GACT,IAAMC,EAAYrB,GAAa5O,GAC3BiQ,GACH7Q,SAAS8Q,iBAAiBD,EAAWD,GAAU,IAGjDX,IAtDgB,SAsDZrP,EAAOgQ,GACV,IAAMC,EAAYrB,GAAa5O,GAC3BiQ,GACH7Q,SAAS+Q,oBAAoBF,EAAWD,GAAU,IAGpDI,IAAK/B,IAGNrR,OAAOqT,iBAAiBrB,GAAY,CACnCW,aAAc,CACbtN,IAAK,kBAAMiO,QAAQlR,SAASiP,GAAUkC,sBAEvCtB,QAAS,CACR7M,YAAY,EACZC,IAAK,kCAAMjD,SAASiP,GAAUkC,0BAAzB,aAA+C5O,IAErD6O,UAAW,CACVpO,YAAY,EAEZC,IAAK,kBAAMiO,QAAQlR,SAASiP,GAAUoC,wBAInCpC,KACJW,GAAa,CAACwB,WAAW,IAIXxB,U,aCrJahJ,gCAAiB,CAC3CI,MAD2C,SACrCC,GAEN,IAAIsJ,EAAepJ,kBAAI,GACjBmK,EAAQ,WACZ,IAAK1B,GAAWwB,UAKd,OAJAG,gBAAU,CACRlP,QAAS,WACT5B,KAAM,aAED,EAETmP,GAAWc,UAEPjB,EAAS,WACbc,EAAalN,MAAQuM,GAAWW,cAG5BiB,EAAO,WACP5B,GAAWwB,WACbxB,GAAWM,GAAG,SAAUT,IAItBgC,EAAU,WACV7B,GAAWwB,WACbxB,GAAWK,IAAI,SAAUR,IAY/B,OARE5C,wBAAU,WACR2E,OAGFE,8BAAgB,WACdD,OAGG,SAAC3M,EAAUC,GAChB,IAAM4M,EAAyBtM,8BAAkB,eAC3CwC,EAAqBxC,8BAAkB,WAE7C,OAAQG,yBAAclB,yBAAauD,EAAoB,CACrDU,MAAO,KACPsD,QAASmB,2BAAesE,EAAO,CAAC,SAChCM,MAAO,CAAC,eAAe,OAAO,OAAS,YACtC,CACD7K,QAASsB,sBAAS,iBAAM,CACtBxC,yBAAa8L,OAEf/I,EAAG,GACF,EAAG,CAAC,gBCvDT,MAAM,GAAc,GAEL,U,aCDThE,GAAa,CAAEC,MAAO,UACtBkE,GAAa,CAAElE,MAAO,SACtBmE,GAAa,CAAEnE,MAAO,oBACtBoE,GAA0BT,6BAAiB,QAC3CqJ,GAA0BrJ,6BAAiB,QAWrB5B,gCAAiB,CAC3CI,MAD2C,SACrCC,GAEN,IAAMiC,EAAQC,iBACR2I,EAAS3K,mBACTgG,EAASC,iBAETxH,EAAaY,uBAAS,WAC1B,OAAO0C,EAAME,MAAMC,IAAIzD,cAGnBmM,EAAWvL,uBAAS,WACxB,OAAO0C,EAAME,MAAM4I,KAAKD,YAGpBE,EAAM,yDAAG,8FACbC,QAAaC,QACT,WACA,OACA,CACEC,kBAAmB,KACnBC,iBAAkB,KAClB5R,KAAM,YAGPc,KATL,wCASU,uHAEI2H,EAAM+E,SAAS,eAFnB,OAGFd,EAAOlP,KAAK,CAAC+H,KAAK,WAHhB,2GAQLqK,OAAM,eAlBE,2CAAH,qDAuBNiC,EAAgB,SAAC3O,GACrB,OAAQA,GACN,KAAK,EACHsO,IACA,MACF,KAAK,EACHH,EAAOzO,MAAMiH,OACb,QAIAiI,EAAiB,SAAC9R,GACtByI,EAAMsJ,OAAO,mBAAoB/R,IAGrC,OAAO,SAACqE,EAAUC,GAChB,IAAM0N,EAAoBpN,8BAAkB,UACtCwC,EAAqBxC,8BAAkB,WACvCqN,EAAkBrN,8BAAkB,QACpCsN,EAAwBtN,8BAAkB,cAC1CuN,EAA8BvN,8BAAkB,oBAChDwN,EAA8BxN,8BAAkB,oBAChDyN,EAAyBzN,8BAAkB,eAEjD,OAAQG,yBAAcC,gCAAoB,MAAO,CAC/CZ,MAAO,kBACP+M,MAAOmB,4BAAgB,CAACC,KAAI,UAAIzJ,mBAAO3D,GAAY,KAAK,MAA5B,SAC3B,CACDE,gCAAoB,MAAOlB,GAAY,CACrCkB,gCAAoB,MAAO,KAAM,CAC9ByD,mBAAO3D,IACHJ,yBAAclB,yBAAauD,EAAoB,CAC9ClE,IAAK,EACLkB,MAAO,OACPgH,QAAS9G,EAAO,KAAOA,EAAO,GAAK,SAAC2G,GAAD,OAAkB6G,GAAe,MACnE,CACDxL,QAASsB,sBAAS,iBAAM,CACtBxC,yBAAa4M,OAEf7J,EAAG,MAEJpD,yBAAclB,yBAAauD,EAAoB,CAC9ClE,IAAK,EACLkB,MAAO,OACPgH,QAAS9G,EAAO,KAAOA,EAAO,GAAK,SAAC2G,GAAD,OAAkB6G,GAAe,MACnE,CACDxL,QAASsB,sBAAS,iBAAM,CACtBxC,yBAAa6M,OAEf9J,EAAG,OAGX9C,gCAAoB,MAAOiD,GAAY,CACrClD,yBAAaoN,IACbpN,yBAAaiN,EAAwB,CAAEI,UAAWZ,GAAiB,CACjEa,SAAU9K,sBAAS,iBAAM,CACvBxC,yBAAagN,EAA6B,KAAM,CAC9C9L,QAASsB,sBAAS,iBAAM,CACtBxC,yBAAa+M,EAA6B,CAAEQ,QAAS,GAAK,CACxDrM,QAASsB,sBAAS,iBAAM,CACtBY,OAEFL,EAAG,IAEL/C,yBAAa+M,EAA6B,CAAEQ,QAAS,GAAK,CACxDrM,QAASsB,sBAAS,iBAAM,CACtBwJ,OAEFjJ,EAAG,QAGPA,EAAG,QAGP7B,QAASsB,sBAAS,iBAAM,CACtBvC,gCAAoB,OAAQkD,GAAY,CACtCR,6BAAiBC,6BAAiBc,mBAAOwI,GAAUsB,UAAY,IAAK,GACpExN,yBAAagC,EAAoB,CAAEhD,MAAO,kBAAoB,CAC5DkC,QAASsB,sBAAS,iBAAM,CACtBxC,yBAAa8M,OAEf/J,EAAG,UAITA,EAAG,QAIT/C,yBAAayN,GACbzN,yBAAa0N,EAAU,CACrBzH,QAAS,SACT3E,IAAK2K,GACJ,KAAM,MACR,O,UCjJL,MAAM,GAA2B,IAAgB,GAAQ,CAAC,CAAC,YAAY,qBAExD,U,ICPJjN,MAAM,Y,oGAAfY,gCAIU,UAJV,GAIU,CAHRI,yBAEctB,EAAA,M,8BADV,gBADmBC,EACnB,EADmBA,UACnB,MAD4B,2BAC5BF,yBAA6BG,qCAAbD,S,kBCFxB,MAAM,GAAS,GAKT,GAA2B,IAAgB,GAAQ,CAAC,CAAC,SAAS,IAAQ,CAAC,YAAY,qBAE1E,UCAEgP,gCAAgB,CAC7BlR,KAAM,SACNmR,WAAY,CACVC,UACAC,WACAC,YAEF5M,MAP6B,WAQ3B,IAAMkC,EAAQC,iBAERvD,EAAaY,uBAAS,WAC1B,OAAO0C,EAAME,MAAMC,IAAIzD,cAEzB,MAAM,CACJA,iB,UCfR,MAAM,GAA2B,IAAgB,GAAQ,CAAC,CAAC,SAAS,GAAQ,CAAC,YAAY,qBAE1E,UCLTiO,GAAe,CACjB7N,KAAM,UACN8N,UAAWC,GACXC,SAAU,aACV1R,KAAM,SACN6F,KAAM,CACFI,MAAO,KACPI,KAAM,gBAEVtB,SAAU,CACN,CACIrB,KAAM,OACN8N,UAAW,kBAAM,sFACjBxR,KAAM,OACN6F,KAAM,CAAEI,MAAO,MAAO0L,SAAS,IAEnC,CACIjO,KAAM,SACN8N,UAAW,kBAAM,sFACjBxR,KAAM,gBACN6F,KAAM,CAAEI,MAAO,OAAQ0L,SAAS,IAEpC,CACIjO,KAAM,UACN8N,UAAW,kBAAM,sFACjBxR,KAAM,iBACN6F,KAAM,CAAEI,MAAO,OAAQ0L,SAAS,MAK7BJ,MC/BTA,GAAe,CACjB7N,KAAM,QACN8N,UAAWC,GACXC,SAAU,aACV1R,KAAM,OACN6F,KAAM,CACFI,MAAO,MACPI,KAAM,eAEVtB,SAAU,CACN,CACIrB,KAAM,QACN8N,UAAW,kBAAM,iDACjBxR,KAAM,OACN6F,KAAM,CAAEI,MAAO,MAAO0L,SAAS,EAAKtL,KAAM,kBAKvCkL,MCnBTK,GAAmB,CACrBlO,KAAM,cACN8N,UAAWC,GACXC,SAAU,aACV1R,KAAM,aACN6F,KAAM,CACFI,MAAO,KACPI,KAAM,aAEVtB,SAAU,CACN,CACIrB,KAAM,SACN8N,UAAW,kBAAM,iDACjBxR,KAAM,SACN6F,KAAM,CAAEI,MAAO,SAAU0L,SAAS,IAEtC,CACIjO,KAAM,YACN8N,UAAW,kBAAM,iDACjBxR,KAAM,YACN6F,KAAM,CAAEI,MAAO,WAAY0L,SAAS,IAExC,CACIjO,KAAM,OACN8N,UAAW,kBAAM,iDACjBxR,KAAM,OACN6F,KAAM,CAAEI,MAAO,KAAM0L,SAAS,MAK3BC,MC/BTC,GAAe,CACjBnO,KAAM,SACN8N,UAAWC,GACXC,SAAU,aACV1R,KAAM,QACN6F,KAAM,CACFI,MAAO,KACPI,KAAM,cAEVtB,SAAU,CACN,CACIrB,KAAM,QACN8N,UAAW,kBAAM,iDACjBxR,KAAM,QACN6F,KAAM,CAAEI,MAAO,KAAM0L,SAAS,IAElC,CACIjO,KAAM,UACN8N,UAAW,kBAAM,iDACjBxR,KAAM,UACN6F,KAAM,CAAEI,MAAO,OAAQ0L,SAAS,MAM7BE,MC1BTC,GAAe,CACjBpO,KAAM,iBACN8N,UAAWC,GACXC,SAAU,aACV1R,KAAM,gBACN+E,SAAU,CACN,CACIrB,KAAM,iDACN1D,KAAM,WACN6F,KAAM,CAAEI,MAAO,KAAM0L,SAAS,EAAOtL,KAAM,WAKxCyL,MCRFC,GAAwC,CACnD,CACErO,KAAM,SACN1D,KAAM,QACNwR,UAAW,kBAAM,kDAGnB,CACE9N,KAAM,IACN1D,KAAM,SACNwR,UAAWC,GACXC,SAAU,QACV3M,SAAU,CACR,CACErB,KAAM,QACN8N,UAAW,kBAAM,iDACjBxR,KAAM,OACN6F,KAAM,CAAEI,MAAO,KAAMI,KAAM,OAAQgF,OAAO,OAQrC2G,GAAc,CACzBT,GACAU,GACAL,GACAC,GACAC,IAIIjH,GAASqH,eAAa,CAE1BC,QAASC,iBACT5K,OAAOuK,KAGMlH,M,oBCZf,IAAM/D,GAAQ,CACVU,OAAQ,GACR6K,UAAW,IAGTC,GAAY,CACdC,WAAY,SAACzL,EAAOU,GAChBV,EAAMuL,UAAY7K,EAClBV,EAAMU,OAASuK,GAAeS,OAAOhL,GAErC7F,QAAQkH,IAAI,kBAAkB/B,EAAMU,UAItCiL,GAAU,CACZC,eADY,WACeC,GAAK,IAAfzC,EAAe,EAAfA,OACb,OAAO,IAAI9S,SAAQ,SAAAC,GAOf6S,EAAO,aAAc8B,IACrB3U,EAAQ2U,SAKdzK,GAA8B,CAChCqL,YAAW,EACX9L,SACAwL,aACAG,YAGWlL,MCxETT,GAAQ,CACVxD,YAAY,GAGVgP,GAAY,CACdO,aAAc,SAAC/L,EAAO/F,GAClB+F,EAAMxD,WAAavC,IAMrBgG,GAAuB,CACzB6L,YAAW,EACX9L,SACAwL,cAGWvL,M,UCjBR,SAAS+L,KACd,OAAOC,aAAaC,SAGf,SAASC,GAASC,GACvB,OAAOH,aAAaC,SAAWE,EAG1B,SAASC,KACd,OAAOJ,aAAaC,SAAU,GCVhC,IAAMlM,GAAQ,CACVoM,MAAOJ,KACPrD,SAASsD,aAAatD,SAAS2D,KAAKC,MAAMN,aAAatD,UAAU,IAG/D6C,GAAY,CACdgB,UAAW,SAACxM,EAAOoM,GACfpM,EAAMoM,MAAQA,GAElBK,SAAU,SAACzM,EAAO2I,GACdsD,aAAatD,SAAW2D,KAAKI,UAAU/D,GACvC3I,EAAM2I,SAAWA,IAKnBgD,GAAU,CAEZgB,MAFY,WAEMhE,GAAQ,IAAlBS,EAAkB,EAAlBA,OACJvO,QAAQkH,IAAI,aACZ,IAAQkI,EAAuBtB,EAAvBsB,SAAuBtB,EAAbnH,SAClB,OAAO,IAAIlL,SAAQ,SAACC,EAASC,GACzB4S,EAAO,YAAaa,GACpBb,EAAO,WAAYT,GACnBwD,GAASlC,GACT1T,EAAQ0T,OAIhB2C,OAbY,YAasB,IAAzBxD,EAAyB,EAAzBA,OAAyB,EAAjBpJ,MAAiB,EAAV6E,SACpB,OAAO,IAAIvO,SAAQ,SAACC,EAASC,GACzB6V,KACAjD,EAAO,YAAa,IACpBA,EAAO,WAAY,IACnB7S,EAAQ,WAMdqS,GAAwB,CAC1BkD,YAAW,EACX9L,SACA2L,WACAH,cAGW5C,MC/CT5I,I,UAAQ,CACViE,aAAc,GACd4I,YAAa,KAGXrB,GAAY,CACdsB,iBAAkB,SAAC9M,EAAOmF,GAClBnF,EAAMiE,aAAa8I,MAAK,SAAAC,GAAC,OAAIA,EAAEpQ,OAASuI,EAAKvI,SACjDoD,EAAMiE,aAAapP,KACfL,OAAOyY,OAAO,GAAI9H,EAAM,CACpBhG,MAAOgG,EAAKpG,KAAKI,OAAS,cAItC+N,gBAAiB,SAAClN,EAAOmF,GACjBnF,EAAM6M,YAAYM,SAAShI,EAAKjM,OAC/BiM,EAAKpG,KAAK8L,SACX7K,EAAM6M,YAAYhY,KAAKsQ,EAAKjM,OAGpCkU,iBAAkB,SAACpN,EAAOmF,GAAQ,uBACTnF,EAAMiE,aAAaiC,WADV,IAC9B,2BAAmD,kCAAvC7R,EAAuC,KAApC2Y,EAAoC,KAC/C,GAAIA,EAAEpQ,OAASuI,EAAKvI,KAAM,CACtBoD,EAAMiE,aAAaxO,OAAOpB,EAAG,GAC7B,QAJsB,gCAQlCgZ,gBAAiB,SAACrN,EAAOmF,GACrB,IAAMjG,EAAQc,EAAM6M,YAAYS,QAAQnI,EAAKjM,MAC7CgG,GAAS,GAAKc,EAAM6M,YAAYpX,OAAOyJ,EAAO,KAKhDyM,GAAU,CACZ4B,QADY,WACUpI,GAAI,IAAhBN,EAAgB,EAAhBA,SACNA,EAAS,iBAAkBM,IAG/BqI,eALY,WAKerI,GAAI,IAAdiE,EAAc,EAAdA,OACbA,EAAO,mBAAoBjE,IAE/BsI,QARY,WAQiBtI,GAAI,IAAvBN,EAAuB,EAAvBA,SAAU7E,EAAa,EAAbA,MAChB,OAAO,IAAI1J,SAAQ,SAAAC,GACfsO,EAAS,iBAAkBM,GAC3BN,EAAS,gBAAiBM,GAC1B5O,EAAQ,CACJ0N,aAAc,eAAIjE,EAAMiE,cACxB4I,YAAa,eAAI7M,EAAM6M,mBAInCa,eAlBY,WAkBsBvI,GAAI,IAArBiE,EAAqB,EAArBA,OAAQpJ,EAAa,EAAbA,MACrB,OAAO,IAAI1J,SAAQ,SAAAC,GACf6S,EAAO,mBAAoBjE,GAC3B5O,EAAQ,eAAIyJ,EAAMiE,mBAG1B0J,cAxBY,WAwBqBxI,GAAI,IAArBiE,EAAqB,EAArBA,OAAQpJ,EAAa,EAAbA,MACpB,OAAO,IAAI1J,SAAQ,SAAAC,GACf6S,EAAO,kBAAmBjE,GAC1B5O,EAAQ,eAAIyJ,EAAM6M,mBAOxB3I,GAA4B,CAC9B4H,YAAW,EACX9L,SACAwL,aACAG,YAGWzH,MC9ET0J,GAAU,CACdpN,kBAAmB,SAAAR,GAAK,OAAIA,EAAMS,WAAWC,QAC7ClE,WAAY,SAAAwD,GAAK,OAAIA,EAAMC,IAAIzD,YAC/BmM,SAAU,SAAA3I,GAAK,OAAIA,EAAM4I,KAAKD,WAGjBiF,MCGAC,kBAAY,CACzB7N,MAAO,GAGPwL,UAAW,GAGXG,QAAS,GAET7W,QAAS,CACP2L,cACAR,OACA2I,QACA1E,aAEF0J,a,kCClBFE,KAAUC,UAAU,CAAEC,aAAa,IAEnC,IAAMC,GAAY,CAAC,SAAU,kBAEzBC,IAAW,EAEfnK,GAAOoK,WAAP,yDAAkB,WAAMlR,EAAImR,EAAMC,GAAhB,4FAEhBP,KAAUQ,QAGV1X,SAASuI,MAAQlC,EAAG8B,KAAKI,MAGnBoP,EAAWvC,MAEbuC,EAVY,oBAWE,WAAZtR,EAAGL,KAXO,gBAaZyR,EAAK,CAAEzR,KAAM,MACdkR,KAAUU,OAdG,oCAkBHN,GAlBG,kCAmByBpO,GAAM+E,SAAS,4BAA6B,SAnBrE,QAmBI4J,EAnBJ,OAoBF5T,QAAQkH,IAAI,iBAAiB0M,GAC7BP,IAAW,EACXO,EAAanK,SAAQ,SAAA7G,GAAI,OAAIsG,GAAO2K,SAASjR,MAC7C4Q,EAAK,iCAAKpR,GAAN,IAAUoI,SAAS,KAvBrB,wBAyBFgJ,IAzBE,6DA4BRA,EAAK,mBAAD,OAAoBpR,EAAGL,OA5BnB,iCAgCwB,IAAhCqR,GAAUX,QAAQrQ,EAAGL,MACrByR,KAEAA,EAAK,mBAAD,OAAoBpR,EAAGL,OAC3BkR,KAAUU,QApCF,0DAAlB,2DAyCAzK,GAAO4K,WAAU,WACfb,KAAUU,U,0CC7CNvO,I,UAAM2O,uBAAUC,IAItBra,OAAOsa,KAAKC,IAAgBzK,SAAQ,SAAC/J,GAC7B,SAAWA,EACX0F,GAAIyK,UAAUnQ,EAAKwU,GAAexU,IAElC0F,GAAIyK,UAAUnQ,EAAM,OAAQwU,GAAexU,OAKnD0F,GAAI+O,IAAIlP,IAAOkP,IAAIjL,IAAQiL,IAAIC,SAAaC,MAAM,S,qBCtBlDjZ,EAAOD,QAAU,IAA0B,yB,kCCA3C,W,yDCAA,W,kCCAA,W","file":"js/app.c41183c0.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded CSS chunks\n \tvar installedCssChunks = {\n \t\t\"app\": 0\n \t}\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"app\": 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// script path function\n \tfunction jsonpScriptSrc(chunkId) {\n \t\treturn __webpack_require__.p + \"js/\" + ({}[chunkId]||chunkId) + \".\" + {\"chunk-000055b2\":\"8b8a6d20\",\"chunk-0375f012\":\"576712c3\",\"chunk-2d217928\":\"030f74ec\",\"chunk-378ee166\":\"5f385493\",\"chunk-3850c398\":\"0f3fb018\",\"chunk-45459eaa\":\"7db09f7b\",\"chunk-496def4a\":\"163ff0dc\",\"chunk-62dbcb30\":\"cc4ffa78\",\"chunk-6f60c8f1\":\"dd4246c1\",\"chunk-170e4747\":\"a630141d\",\"chunk-3203f382\":\"288b52e4\",\"chunk-6baa09d4\":\"4cafb58b\"}[chunkId] + \".js\"\n \t}\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tvar promises = [];\n\n\n \t\t// mini-css-extract-plugin CSS loading\n \t\tvar cssChunks = {\"chunk-000055b2\":1,\"chunk-378ee166\":1,\"chunk-3850c398\":1,\"chunk-45459eaa\":1,\"chunk-62dbcb30\":1,\"chunk-170e4747\":1,\"chunk-3203f382\":1,\"chunk-6baa09d4\":1};\n \t\tif(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);\n \t\telse if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {\n \t\t\tpromises.push(installedCssChunks[chunkId] = new Promise(function(resolve, reject) {\n \t\t\t\tvar href = \"css/\" + ({}[chunkId]||chunkId) + \".\" + {\"chunk-000055b2\":\"8b7fdf83\",\"chunk-0375f012\":\"31d6cfe0\",\"chunk-2d217928\":\"31d6cfe0\",\"chunk-378ee166\":\"ca18b920\",\"chunk-3850c398\":\"d676d2b0\",\"chunk-45459eaa\":\"b8a19145\",\"chunk-496def4a\":\"31d6cfe0\",\"chunk-62dbcb30\":\"2d86bcb5\",\"chunk-6f60c8f1\":\"31d6cfe0\",\"chunk-170e4747\":\"203a047d\",\"chunk-3203f382\":\"203a047d\",\"chunk-6baa09d4\":\"ad6a37a0\"}[chunkId] + \".css\";\n \t\t\t\tvar fullhref = __webpack_require__.p + href;\n \t\t\t\tvar existingLinkTags = document.getElementsByTagName(\"link\");\n \t\t\t\tfor(var i = 0; i < existingLinkTags.length; i++) {\n \t\t\t\t\tvar tag = existingLinkTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\") || tag.getAttribute(\"href\");\n \t\t\t\t\tif(tag.rel === \"stylesheet\" && (dataHref === href || dataHref === fullhref)) return resolve();\n \t\t\t\t}\n \t\t\t\tvar existingStyleTags = document.getElementsByTagName(\"style\");\n \t\t\t\tfor(var i = 0; i < existingStyleTags.length; i++) {\n \t\t\t\t\tvar tag = existingStyleTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\");\n \t\t\t\t\tif(dataHref === href || dataHref === fullhref) return resolve();\n \t\t\t\t}\n \t\t\t\tvar linkTag = document.createElement(\"link\");\n \t\t\t\tlinkTag.rel = \"stylesheet\";\n \t\t\t\tlinkTag.type = \"text/css\";\n \t\t\t\tlinkTag.onload = resolve;\n \t\t\t\tlinkTag.onerror = function(event) {\n \t\t\t\t\tvar request = event && event.target && event.target.src || fullhref;\n \t\t\t\t\tvar err = new Error(\"Loading CSS chunk \" + chunkId + \" failed.\\n(\" + request + \")\");\n \t\t\t\t\terr.code = \"CSS_CHUNK_LOAD_FAILED\";\n \t\t\t\t\terr.request = request;\n \t\t\t\t\tdelete installedCssChunks[chunkId]\n \t\t\t\t\tlinkTag.parentNode.removeChild(linkTag)\n \t\t\t\t\treject(err);\n \t\t\t\t};\n \t\t\t\tlinkTag.href = fullhref;\n\n \t\t\t\tvar head = document.getElementsByTagName(\"head\")[0];\n \t\t\t\thead.appendChild(linkTag);\n \t\t\t}).then(function() {\n \t\t\t\tinstalledCssChunks[chunkId] = 0;\n \t\t\t}));\n \t\t}\n\n \t\t// JSONP chunk loading for javascript\n\n \t\tvar installedChunkData = installedChunks[chunkId];\n \t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n \t\t\t// a Promise means \"currently loading\".\n \t\t\tif(installedChunkData) {\n \t\t\t\tpromises.push(installedChunkData[2]);\n \t\t\t} else {\n \t\t\t\t// setup Promise in chunk cache\n \t\t\t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t\t\t});\n \t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n \t\t\t\t// start chunk loading\n \t\t\t\tvar script = document.createElement('script');\n \t\t\t\tvar onScriptComplete;\n\n \t\t\t\tscript.charset = 'utf-8';\n \t\t\t\tscript.timeout = 120;\n \t\t\t\tif (__webpack_require__.nc) {\n \t\t\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t\t\t}\n \t\t\t\tscript.src = jsonpScriptSrc(chunkId);\n\n \t\t\t\t// create error before stack unwound to get useful stacktrace later\n \t\t\t\tvar error = new Error();\n \t\t\t\tonScriptComplete = function (event) {\n \t\t\t\t\t// avoid mem leaks in IE.\n \t\t\t\t\tscript.onerror = script.onload = null;\n \t\t\t\t\tclearTimeout(timeout);\n \t\t\t\t\tvar chunk = installedChunks[chunkId];\n \t\t\t\t\tif(chunk !== 0) {\n \t\t\t\t\t\tif(chunk) {\n \t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n \t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n \t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n \t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n \t\t\t\t\t\t\terror.type = errorType;\n \t\t\t\t\t\t\terror.request = realSrc;\n \t\t\t\t\t\t\tchunk[1](error);\n \t\t\t\t\t\t}\n \t\t\t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t\t\t}\n \t\t\t\t};\n \t\t\t\tvar timeout = setTimeout(function(){\n \t\t\t\t\tonScriptComplete({ type: 'timeout', target: script });\n \t\t\t\t}, 120000);\n \t\t\t\tscript.onerror = script.onload = onScriptComplete;\n \t\t\t\tdocument.head.appendChild(script);\n \t\t\t}\n \t\t}\n \t\treturn Promise.all(promises);\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([0,\"chunk-vendors\"]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./ScrollPane.vue?vue&type=style&index=0&id=2893f9b4&lang=scss&scoped=true\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./Personal.vue?vue&type=style&index=0&id=37da47ea&scoped=true&lang=css\"","export * from \"-!../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../node_modules/vue-loader-v16/dist/stylePostLoader.js!../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../node_modules/cache-loader/dist/cjs.js??ref--1-0!../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./App.vue?vue&type=style&index=0&id=2bce9270&lang=scss\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./index.vue?vue&type=style&index=0&id=f8d00b58&lang=scss&scoped=true\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./index.vue?vue&type=style&index=0&id=583891f3&lang=scss&scoped=true\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./index.vue?vue&type=style&index=0&id=96e07a22&lang=scss&scoped=true\"","// extracted by mini-css-extract-plugin\nmodule.exports = {\"menuText\":\"#bfcbd9\",\"menuActiveText\":\"#409eff\",\"subMenuActiveText\":\"#f4f4f5\",\"menuBg\":\"#304156\",\"menuHover\":\"#263445\",\"subMenuBg\":\"#1f2d3d\",\"subMenuHover\":\"#001528\",\"sideBarWidth\":\"210px\"};","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./Link.vue?vue&type=style&index=0&id=724252a3&lang=scss&scoped=true\"","\r\n \r\n \r\n \r\n\r\n\r\n\r\n","import { render } from \"./App.vue?vue&type=template&id=2bce9270\"\nconst script = {}\n\nimport \"./App.vue?vue&type=style&index=0&id=2bce9270&lang=scss\"\n\nimport exportComponent from \"F:\\\\2022\\\\cloude\\\\vue-admin-plus\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { resolveComponent as _resolveComponent, createVNode as _createVNode, createElementVNode as _createElementVNode, normalizeClass as _normalizeClass, openBlock as _openBlock, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-583891f3\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"main-container\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_sidebar = _resolveComponent(\"sidebar\")!\n const _component_u_header = _resolveComponent(\"u-header\")!\n const _component_app_main = _resolveComponent(\"app-main\")!\n\n return (_openBlock(), _createElementBlock(\"div\", {\n class: _normalizeClass([\"g-container-layout\", {hideSidebar:_ctx.isCollapse}])\n }, [\n _createVNode(_component_sidebar, {\n class: \"sidebar-container\",\n isCollapse: _ctx.isCollapse\n }, null, 8, [\"isCollapse\"]),\n _createElementVNode(\"div\", _hoisted_1, [\n _createVNode(_component_u_header),\n _createVNode(_component_app_main)\n ])\n ], 2))\n}","/**\r\n * Created by PanJiaChen on 16/11/18.\r\n */\r\n\r\n/**\r\n * @param {string} path\r\n * @returns {Boolean}\r\n */\r\nexport function isExternal(path) {\r\n return /^(https?:|mailto:|tel:)/.test(path)\r\n}\r\n\r\n/**\r\n * @param {string} str\r\n * @returns {Boolean}\r\n */\r\nexport function validUsername(str) {\r\n const valid_map = ['admin', 'editor']\r\n return valid_map.indexOf(str.trim()) >= 0\r\n}\r\n\r\n/**\r\n * @param {string} url\r\n * @returns {Boolean}\r\n */\r\nexport function validURL(url) {\r\n const reg = /^(https?|ftp):\\/\\/([a-zA-Z0-9.-]+(:[a-zA-Z0-9.&%$-]+)*@)*((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]?)(\\.(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])){3}|([a-zA-Z0-9-]+\\.)*[a-zA-Z0-9-]+\\.(com|edu|gov|int|mil|net|org|biz|arpa|info|name|pro|aero|coop|museum|[a-zA-Z]{2}))(:[0-9]+)*(\\/($|[a-zA-Z0-9.,?'\\\\+&%$#=~_-]+))*$/\r\n return reg.test(url)\r\n}\r\n\r\n/**\r\n * @param {string} str\r\n * @returns {Boolean}\r\n */\r\nexport function validLowerCase(str) {\r\n const reg = /^[a-z]+$/\r\n return reg.test(str)\r\n}\r\n\r\n/**\r\n * @param {string} str\r\n * @returns {Boolean}\r\n */\r\nexport function validUpperCase(str) {\r\n const reg = /^[A-Z]+$/\r\n return reg.test(str)\r\n}\r\n\r\n/**\r\n * @param {string} str\r\n * @returns {Boolean}\r\n */\r\nexport function validAlphabets(str) {\r\n const reg = /^[A-Za-z]+$/\r\n return reg.test(str)\r\n}\r\n\r\n/**\r\n * @param {string} email\r\n * @returns {Boolean}\r\n */\r\nexport function validEmail(email) {\r\n const reg = /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/\r\n return reg.test(email)\r\n}\r\n\r\n/**\r\n * @param {string} str\r\n * @returns {Boolean}\r\n */\r\nexport function isString(str) {\r\n if (typeof str === 'string' || str instanceof String) {\r\n return true\r\n }\r\n return false\r\n}\r\n\r\n/**\r\n * @param {Array} arg\r\n * @returns {Boolean}\r\n */\r\nexport function isArray(arg) {\r\n if (typeof Array.isArray === 'undefined') {\r\n return Object.prototype.toString.call(arg) === '[object Array]'\r\n }\r\n return Array.isArray(arg)\r\n}\r\n","\r\n \r\n \r\n \r\n\r\n\r\n\r\n\r\n\r\n","import { render } from \"./Link.vue?vue&type=template&id=724252a3&scoped=true\"\nimport script from \"./Link.vue?vue&type=script&lang=js\"\nexport * from \"./Link.vue?vue&type=script&lang=js\"\n\nimport \"./Link.vue?vue&type=style&index=0&id=724252a3&lang=scss&scoped=true\"\n\nimport exportComponent from \"F:\\\\2022\\\\cloude\\\\vue-admin-plus\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-724252a3\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { resolveDynamicComponent as _resolveDynamicComponent, openBlock as _openBlock, createBlock as _createBlock, resolveComponent as _resolveComponent, withCtx as _withCtx, createVNode as _createVNode, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, createCommentVNode as _createCommentVNode, Fragment as _Fragment, createElementBlock as _createElementBlock, createElementVNode as _createElementVNode, renderList as _renderList } from \"vue\"\n\nimport { isExternal } from '@/utils/validate.js'\r\nimport AppLink from './Link.vue'\r\nimport path from 'path'\r\nimport { ref,computed} from 'vue'\r\n\nexport default /*#__PURE__*/_defineComponent({\n props: {\r\n item:{\r\n type:Object,\r\n required: true\r\n },\r\n basePath: {\r\n type: String,\r\n default: ''\r\n }\r\n},\n setup(__props) {\n\nconst props = __props\n\r\n\r\n\r\nconst onlyOneChild = ref(null)\r\nconst hasOneShowingChild = (children = [], parent)=>{\r\n const showingChildren = children.filter(item => {\r\n // 过滤掉需要隐藏的菜单\r\n if (item.hidden) {\r\n return false\r\n } else {\r\n // 临时设置(如果只有一个显示子项,则将使用)\r\n onlyOneChild.value = item\r\n return true\r\n }\r\n })\r\n // 当只有一个子路由器时,默认情况下会显示该子路由器\r\n if (showingChildren.length === 1) {\r\n return true\r\n }\r\n // 如果没有要显示的子路由器,则显示父路由器\r\n if (showingChildren.length === 0) {\r\n onlyOneChild.value = { ... parent, path: '', noShowingChildren: true }\r\n return true\r\n }\r\n\r\n return false\r\n}\r\n\r\n\r\nconst resolvePath = (routePath)=>{\r\n if (isExternal(routePath)) {\r\n return routePath\r\n }\r\n if (isExternal(props.basePath)) {\r\n return props.basePath\r\n }\r\n return path.resolve(props.basePath, routePath)\r\n}\r\n\r\n\nreturn (_ctx: any,_cache: any) => {\n const _component_el_icon = _resolveComponent(\"el-icon\")!\n const _component_el_menu_item = _resolveComponent(\"el-menu-item\")!\n const _component_sidebar_item = _resolveComponent(\"sidebar-item\", true)!\n const _component_el_sub_menu = _resolveComponent(\"el-sub-menu\")!\n\n return (!__props.item.hidden)\n ? (_openBlock(), _createElementBlock(_Fragment, { key: 0 }, [\n (hasOneShowingChild(__props.item.children,__props.item))\n ? (_openBlock(), _createElementBlock(_Fragment, { key: 0 }, [\n (onlyOneChild.value.meta)\n ? (_openBlock(), _createBlock(AppLink, {\n key: 0,\n to: resolvePath(onlyOneChild.value.path)\n }, {\n default: _withCtx(() => [\n _createVNode(_component_el_menu_item, {\n index: resolvePath(onlyOneChild.value.path)\n }, {\n title: _withCtx(() => [\n _createTextVNode(_toDisplayString(onlyOneChild.value.meta&&onlyOneChild.value.meta.title), 1)\n ]),\n default: _withCtx(() => [\n _createVNode(_component_el_icon, { size: 20 }, {\n default: _withCtx(() => [\n (_openBlock(), _createBlock(_resolveDynamicComponent(onlyOneChild.value?.meta.icon)))\n ]),\n _: 1\n })\n ]),\n _: 1\n }, 8, [\"index\"])\n ]),\n _: 1\n }, 8, [\"to\"]))\n : _createCommentVNode(\"\", true)\n ], 64))\n : (_openBlock(), _createBlock(_component_el_sub_menu, {\n key: 1,\n index: resolvePath(__props.item.path),\n \"popper-append-to-body\": \"\"\n }, {\n title: _withCtx(() => [\n _createVNode(_component_el_icon, { size: 20 }, {\n default: _withCtx(() => [\n (_openBlock(), _createBlock(_resolveDynamicComponent(__props.item.meta?.icon)))\n ]),\n _: 1\n }),\n _createElementVNode(\"span\", null, _toDisplayString(__props.item.meta&&__props.item.meta.title), 1)\n ]),\n default: _withCtx(() => [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(__props.item.children, (child) => {\n return (_openBlock(), _createBlock(_component_sidebar_item, {\n key: child.path,\n item: child,\n \"base-path\": resolvePath(child.path)\n }, null, 8, [\"item\", \"base-path\"]))\n }), 128))\n ]),\n _: 1\n }, 8, [\"index\"]))\n ], 64))\n : _createCommentVNode(\"\", true)\n}\n}\n\n})","import script from \"./SidebarItem.vue?vue&type=script&lang=ts&setup=true\"\nexport * from \"./SidebarItem.vue?vue&type=script&lang=ts&setup=true\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, createBlock as _createBlock, toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, Transition as _Transition, createVNode as _createVNode, normalizeClass as _normalizeClass, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-5c19406b\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = [\"src\"]\nconst _hoisted_2 = {\n key: 1,\n class: \"sidebar-title\"\n}\nconst _hoisted_3 = [\"src\"]\nconst _hoisted_4 = { class: \"sidebar-title\" }\n\nimport {computed, reactive, ref} from \"vue\";\r\nimport { useStore } from 'vuex' // useStore ===vue2.0中的this.$store\r\nimport logo from '@/assets/logo.png'\r\n\r\n\nexport default /*#__PURE__*/_defineComponent({\n setup(__props) {\n\r\nconst store = useStore()\r\n// const logo = ref('@/assets/logo.png')\r\nconst title = ref('Vue Admin Perfect')\r\n\r\nconst isCollapse = computed(()=>{\r\n return store.state.app.isCollapse\r\n})\r\n\r\n\nreturn (_ctx: any,_cache: any) => {\n const _component_router_link = _resolveComponent(\"router-link\")!\n\n return (_openBlock(), _createElementBlock(\"div\", {\n class: _normalizeClass([\"sidebar-logo-container\", {'collapse':_unref(isCollapse)}])\n }, [\n _createVNode(_Transition, { name: \"sidebarLogoFade\" }, {\n default: _withCtx(() => [\n (_unref(isCollapse))\n ? (_openBlock(), _createBlock(_component_router_link, {\n key: \"collapse\",\n class: \"sidebar-logo-link\",\n to: \"/\"\n }, {\n default: _withCtx(() => [\n (_unref(logo))\n ? (_openBlock(), _createElementBlock(\"img\", {\n key: 0,\n src: _unref(logo),\n class: \"sidebar-logo\"\n }, null, 8, _hoisted_1))\n : (_openBlock(), _createElementBlock(\"h1\", _hoisted_2, \"Perfect \"))\n ]),\n _: 1\n }))\n : (_openBlock(), _createBlock(_component_router_link, {\n key: \"expand\",\n class: \"sidebar-logo-link\",\n to: \"/\"\n }, {\n default: _withCtx(() => [\n (_unref(logo))\n ? (_openBlock(), _createElementBlock(\"img\", {\n key: 0,\n src: _unref(logo),\n class: \"sidebar-logo\"\n }, null, 8, _hoisted_3))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"h1\", _hoisted_4, _toDisplayString(title.value), 1)\n ]),\n _: 1\n }))\n ]),\n _: 1\n })\n ], 2))\n}\n}\n\n})","import script from \"./Logo.vue?vue&type=script&lang=ts&setup=true\"\nexport * from \"./Logo.vue?vue&type=script&lang=ts&setup=true\"\n\nimport \"./Logo.vue?vue&type=style&index=0&id=5c19406b&lang=scss&scoped=true\"\n\nimport exportComponent from \"F:\\\\2022\\\\cloude\\\\vue-admin-plus\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-5c19406b\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, createVNode as _createVNode, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, createBlock as _createBlock, resolveComponent as _resolveComponent, withCtx as _withCtx } from \"vue\"\n\nimport SidebarItem from './SidebarItem.vue'\r\n import logo from './Logo.vue'\r\n import {useRoute} from 'vue-router'\r\n import { useStore,mapGetters } from 'vuex' // useStore ===vue2.0中的this.$store\r\n import { ref,computed } from 'vue'\r\n\r\n // 在setup中获取store\r\n \nexport default /*#__PURE__*/_defineComponent({\n setup(__props) {\n\r\n const store = useStore()\r\n const route = useRoute()\r\n\r\n\r\n // 获取路由\r\n const permission_routes = computed(()=>{\r\n return store.state.permission.routes\r\n })\r\n\r\n const activeMenu = computed(()=>{\r\n const { meta, path } = route\r\n // if set path, the sidebar will highlight the path you set\r\n if (meta.activeMenu) {\r\n return meta.activeMenu\r\n }\r\n return path\r\n })\r\n\r\n // 是否折叠\r\n const isCollapse = computed(()=>{\r\n return store.state.app.isCollapse\r\n })\r\n\nreturn (_ctx: any,_cache: any) => {\n const _component_el_menu = _resolveComponent(\"el-menu\")!\n const _component_el_scrollbar = _resolveComponent(\"el-scrollbar\")!\n\n return (_openBlock(), _createElementBlock(\"div\", null, [\n _createVNode(logo, { collapse: _unref(isCollapse) }, null, 8, [\"collapse\"]),\n _createVNode(_component_el_scrollbar, { \"wrap-class\": \"scrollbar-wrapper\" }, {\n default: _withCtx(() => [\n _createVNode(_component_el_menu, {\n \"default-active\": _unref(activeMenu),\n \"active-text-color\": \"#ffd04b\",\n \"background-color\": \"#304156\",\n \"text-color\": \"#fff\",\n class: \"el-menu-vertical-demo\",\n collapse: _unref(isCollapse)\n }, {\n default: _withCtx(() => [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(permission_routes), (route) => {\n return (_openBlock(), _createBlock(SidebarItem, {\n key: route.path,\n item: route,\n \"base-path\": route.path\n }, null, 8, [\"item\", \"base-path\"]))\n }), 128))\n ]),\n _: 1\n }, 8, [\"default-active\", \"collapse\"])\n ]),\n _: 1\n })\n ]))\n}\n}\n\n})","import script from \"./index.vue?vue&type=script&lang=ts&setup=true\"\nexport * from \"./index.vue?vue&type=script&lang=ts&setup=true\"\n\nimport \"./index.vue?vue&type=style&index=0&id=c618cba0&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, resolveComponent as _resolveComponent, createVNode as _createVNode, withCtx as _withCtx, createTextVNode as _createTextVNode, createElementVNode as _createElementVNode, openBlock as _openBlock, createBlock as _createBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-37da47ea\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"dialog-footer\" }\nconst _hoisted_2 = /*#__PURE__*/_createTextVNode(\"取消\")\nconst _hoisted_3 = /*#__PURE__*/_createTextVNode(\"确定\")\n\nimport { ref,reactive, } from 'vue'\r\n import { ElMessageBox } from 'element-plus'\r\n import type { ElForm } from 'element-plus'\r\n type FormInstance = InstanceType\r\n\r\n \nexport default /*#__PURE__*/_defineComponent({\n setup(__props, { expose }) {\n\r\n const dialogVisible = ref(false)\r\n const show = ()=>{\r\n dialogVisible.value = true\r\n }\r\n const hide = ()=>{\r\n dialogVisible.value = false\r\n }\r\n const formSize = ref('')\r\n const ruleFormRef = ref()\r\n const ruleForm = reactive({\r\n name: '',\r\n mobile: '',\r\n password: '',\r\n })\r\n const rules = reactive({\r\n password: [\r\n {\r\n required: true,\r\n message: '请输入密码',\r\n trigger: 'blur',\r\n },\r\n ],\r\n })\r\n const submitForm = (formEl: FormInstance | undefined) => {\r\n if (!formEl) return\r\n formEl.validate((valid) => {\r\n if (valid) {\r\n console.log('submit!')\r\n } else {\r\n console.log('error submit!')\r\n return false\r\n }\r\n })\r\n }\r\n\r\n const resetForm = (formEl: FormInstance | undefined) => {\r\n if (!formEl) return\r\n formEl.resetFields()\r\n }\r\n\r\n expose({\r\n show,\r\n })\r\n\nreturn (_ctx: any,_cache: any) => {\n const _component_el_input = _resolveComponent(\"el-input\")!\n const _component_el_form_item = _resolveComponent(\"el-form-item\")!\n const _component_el_form = _resolveComponent(\"el-form\")!\n const _component_el_button = _resolveComponent(\"el-button\")!\n const _component_el_dialog = _resolveComponent(\"el-dialog\")!\n\n return (_openBlock(), _createBlock(_component_el_dialog, {\n modelValue: dialogVisible.value,\n \"onUpdate:modelValue\": _cache[5] || (_cache[5] = ($event: any) => ((dialogVisible).value = $event)),\n title: \"修改密码\",\n width: \"60%\"\n }, {\n footer: _withCtx(() => [\n _createElementVNode(\"span\", _hoisted_1, [\n _createVNode(_component_el_button, {\n onClick: _cache[3] || (_cache[3] = ($event: any) => (dialogVisible.value = false))\n }, {\n default: _withCtx(() => [\n _hoisted_2\n ]),\n _: 1\n }),\n _createVNode(_component_el_button, {\n type: \"primary\",\n onClick: _cache[4] || (_cache[4] = ($event: any) => (submitForm(ruleFormRef.value)))\n }, {\n default: _withCtx(() => [\n _hoisted_3\n ]),\n _: 1\n })\n ])\n ]),\n default: _withCtx(() => [\n _createVNode(_component_el_form, {\n ref_key: \"ruleFormRef\",\n ref: ruleFormRef,\n model: _unref(ruleForm),\n rules: _unref(rules),\n \"label-width\": \"120px\",\n class: \"demo-ruleForm\",\n size: formSize.value\n }, {\n default: _withCtx(() => [\n _createVNode(_component_el_form_item, { label: \"姓名\" }, {\n default: _withCtx(() => [\n _createVNode(_component_el_input, {\n modelValue: _unref(ruleForm).name,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event: any) => ((_unref(ruleForm).name) = $event)),\n disabled: \"\"\n }, null, 8, [\"modelValue\"])\n ]),\n _: 1\n }),\n _createVNode(_component_el_form_item, { label: \"手机号码\" }, {\n default: _withCtx(() => [\n _createVNode(_component_el_input, {\n modelValue: _unref(ruleForm).mobile,\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = ($event: any) => ((_unref(ruleForm).mobile) = $event)),\n disabled: \"\"\n }, null, 8, [\"modelValue\"])\n ]),\n _: 1\n }),\n _createVNode(_component_el_form_item, {\n label: \"修改密码\",\n prop: \"password\"\n }, {\n default: _withCtx(() => [\n _createVNode(_component_el_input, {\n modelValue: _unref(ruleForm).password,\n \"onUpdate:modelValue\": _cache[2] || (_cache[2] = ($event: any) => ((_unref(ruleForm).password) = $event))\n }, null, 8, [\"modelValue\"])\n ]),\n _: 1\n })\n ]),\n _: 1\n }, 8, [\"model\", \"rules\", \"size\"])\n ]),\n _: 1\n }, 8, [\"modelValue\"]))\n}\n}\n\n})","import script from \"./Personal.vue?vue&type=script&lang=ts&setup=true\"\nexport * from \"./Personal.vue?vue&type=script&lang=ts&setup=true\"\n\nimport \"./Personal.vue?vue&type=style&index=0&id=37da47ea&scoped=true&lang=css\"\n\nimport exportComponent from \"F:\\\\2022\\\\cloude\\\\vue-admin-plus\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-37da47ea\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { renderSlot as _renderSlot, resolveComponent as _resolveComponent, withModifiers as _withModifiers, withCtx as _withCtx, openBlock as _openBlock, createBlock as _createBlock } from \"vue\"\n\nimport {computed, onMounted, ref,getCurrentInstance} from \"vue\";\r\n\r\n\nexport default /*#__PURE__*/_defineComponent({\n setup(__props) {\n\r\nconst tagAndTagSpacing = 4 // tagAndTagSpacing\r\n\r\nconst left = ref(0)\r\nconst scrollContainer = ref()\r\n\r\nconst scrollWrapper = computed(()=>{\r\n return scrollContainer.value.$refs.wrap\r\n})\r\n\r\nconst handleScroll = ()=>{\r\n const eventDelta = e.wheelDelta || -e.deltaY * 40\r\n const $scrollWrapper = scrollWrapper.value\r\n $scrollWrapper.scrollLeft = $scrollWrapper.scrollLeft + eventDelta / 4\r\n\r\n}\r\n\r\nconst moveToTarget = (currentTag)=>{\r\n const $container = scrollContainer.value.$el\r\n const $containerWidth = $container.offsetWidth\r\n const $scrollWrapper = scrollWrapper.value\r\n const _this = getCurrentInstance()\r\n const tagList = _this.parent.$refs.tag\r\n\r\n let firstTag = null\r\n let lastTag = null\r\n\r\n if (tagList.length > 0) {\r\n firstTag = tagList[0]\r\n lastTag = tagList[tagList.length - 1]\r\n }\r\n\r\n if (firstTag === currentTag) {\r\n $scrollWrapper.scrollLeft = 0\r\n } else if (lastTag === currentTag) {\r\n $scrollWrapper.scrollLeft = $scrollWrapper.scrollWidth - $containerWidth\r\n } else {\r\n // find preTag and nextTag\r\n const currentIndex = tagList.findIndex(item => item === currentTag)\r\n const prevTag = tagList[currentIndex - 1]\r\n const nextTag = tagList[currentIndex + 1]\r\n\r\n // the tag's offsetLeft after of nextTag\r\n const afterNextTagOffsetLeft = nextTag.$el.offsetLeft + nextTag.$el.offsetWidth + tagAndTagSpacing\r\n\r\n // the tag's offsetLeft before of prevTag\r\n const beforePrevTagOffsetLeft = prevTag.$el.offsetLeft - tagAndTagSpacing\r\n\r\n if (afterNextTagOffsetLeft > $scrollWrapper.scrollLeft + $containerWidth) {\r\n $scrollWrapper.scrollLeft = afterNextTagOffsetLeft - $containerWidth\r\n } else if (beforePrevTagOffsetLeft < $scrollWrapper.scrollLeft) {\r\n $scrollWrapper.scrollLeft = beforePrevTagOffsetLeft\r\n }\r\n }\r\n\r\n}\r\n\r\n\r\nonMounted(()=>{\r\n console.log('scrollContainer.value',scrollContainer.value)\r\n})\r\n\r\n\r\n// export default {\r\n// name: 'ScrollPane',\r\n// data() {\r\n// return {\r\n// left: 0\r\n// }\r\n// },\r\n// computed: {\r\n// scrollWrapper() {\r\n// return this.$refs.scrollContainer.$refs.wrap\r\n// }\r\n// },\r\n// mounted() {\r\n// this.scrollWrapper.addEventListener('scroll', this.emitScroll, true)\r\n// },\r\n// beforeDestroy() {\r\n// this.scrollWrapper.removeEventListener('scroll', this.emitScroll)\r\n// },\r\n// methods: {\r\n// handleScroll(e) {\r\n// const eventDelta = e.wheelDelta || -e.deltaY * 40\r\n// const $scrollWrapper = this.scrollWrapper\r\n// $scrollWrapper.scrollLeft = $scrollWrapper.scrollLeft + eventDelta / 4\r\n// },\r\n// emitScroll() {\r\n// this.$emit('scroll')\r\n// },\r\n// moveToTarget(currentTag) {\r\n// const $container = this.$refs.scrollContainer.$el\r\n// const $containerWidth = $container.offsetWidth\r\n// const $scrollWrapper = this.scrollWrapper\r\n// const tagList = this.$parent.$refs.tag\r\n//\r\n// let firstTag = null\r\n// let lastTag = null\r\n//\r\n// // find first tag and last tag\r\n// if (tagList.length > 0) {\r\n// firstTag = tagList[0]\r\n// lastTag = tagList[tagList.length - 1]\r\n// }\r\n//\r\n// if (firstTag === currentTag) {\r\n// $scrollWrapper.scrollLeft = 0\r\n// } else if (lastTag === currentTag) {\r\n// $scrollWrapper.scrollLeft = $scrollWrapper.scrollWidth - $containerWidth\r\n// } else {\r\n// // find preTag and nextTag\r\n// const currentIndex = tagList.findIndex(item => item === currentTag)\r\n// const prevTag = tagList[currentIndex - 1]\r\n// const nextTag = tagList[currentIndex + 1]\r\n//\r\n// // the tag's offsetLeft after of nextTag\r\n// const afterNextTagOffsetLeft = nextTag.$el.offsetLeft + nextTag.$el.offsetWidth + tagAndTagSpacing\r\n//\r\n// // the tag's offsetLeft before of prevTag\r\n// const beforePrevTagOffsetLeft = prevTag.$el.offsetLeft - tagAndTagSpacing\r\n//\r\n// if (afterNextTagOffsetLeft > $scrollWrapper.scrollLeft + $containerWidth) {\r\n// $scrollWrapper.scrollLeft = afterNextTagOffsetLeft - $containerWidth\r\n// } else if (beforePrevTagOffsetLeft < $scrollWrapper.scrollLeft) {\r\n// $scrollWrapper.scrollLeft = beforePrevTagOffsetLeft\r\n// }\r\n// }\r\n// }\r\n// }\r\n// }\r\n\nreturn (_ctx: any,_cache: any) => {\n const _component_el_scrollbar = _resolveComponent(\"el-scrollbar\")!\n\n return (_openBlock(), _createBlock(_component_el_scrollbar, {\n ref_key: \"scrollContainer\",\n ref: scrollContainer,\n vertical: false,\n class: \"scroll-container\",\n onWheel: _withModifiers(handleScroll, [\"prevent\"])\n }, {\n default: _withCtx(() => [\n _renderSlot(_ctx.$slots, \"default\")\n ]),\n _: 3\n }, 8, [\"onWheel\"]))\n}\n}\n\n})","import script from \"./ScrollPane.vue?vue&type=script&lang=ts&setup=true\"\nexport * from \"./ScrollPane.vue?vue&type=script&lang=ts&setup=true\"\n\nimport \"./ScrollPane.vue?vue&type=style&index=0&id=2893f9b4&lang=scss&scoped=true\"\n\nimport exportComponent from \"F:\\\\2022\\\\cloude\\\\vue-admin-plus\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-2893f9b4\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, toDisplayString as _toDisplayString, resolveComponent as _resolveComponent, createVNode as _createVNode, withModifiers as _withModifiers, withCtx as _withCtx, createBlock as _createBlock, createCommentVNode as _createCommentVNode, createTextVNode as _createTextVNode, normalizeClass as _normalizeClass, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-f8d00b58\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"tags-view-container\" }\n\nimport {computed, onMounted, reactive, ref, watch} from \"vue\";\r\n import ScrollPane from \"./ScrollPane.vue\";\r\n import { useStore } from 'vuex'\r\n import {useRoute,useRouter} from 'vue-router'\r\n \nexport default /*#__PURE__*/_defineComponent({\n setup(__props) {\n\r\n const path = require('path')\r\n const store = useStore()\r\n const route = useRoute()\r\n const router = useRouter()\r\n const routes = computed(()=>{\r\n return store.state.permission.routes\r\n })\r\n const visitedViews = computed(()=>{\r\n return store.state.tagsView.visitedViews\r\n })\r\n\r\n let affixTags = ref([])\r\n\r\n function filterAffixTags(routes, basePath = '/') {\r\n let tags = []\r\n routes.forEach(route => {\r\n if (route.meta && route.meta.affix) {\r\n const tagPath = path.resolve(basePath, route.path)\r\n tags.push({\r\n fullPath: tagPath,\r\n path: tagPath,\r\n name: route.name,\r\n meta: { ...route.meta }\r\n })\r\n }\r\n if (route.children) {\r\n const tempTags = filterAffixTags(route.children, route.path)\r\n if (tempTags.length >= 1) {\r\n tags = [...tags, ...tempTags]\r\n }\r\n }\r\n })\r\n return tags\r\n }\r\n\r\n const initTags = ()=>{\r\n let affixTag = affixTags.value = filterAffixTags(routes.value)\r\n console.log('affixTags',affixTags)\r\n for (const tag of affixTag) {\r\n if (tag.name) {\r\n store.dispatch('tagsView/addVisitedView', tag)\r\n }\r\n }\r\n }\r\n function handleScroll() {\r\n closeMenu()\r\n }\r\n\r\n const isActive = (rou)=> {\r\n return rou.path === route.path\r\n }\r\n const isAffix = (tag)=>{\r\n return tag.meta && tag.meta.affix\r\n }\r\n const addTags = ()=> {\r\n const { name } = route\r\n if (name) {\r\n store.dispatch('tagsView/addView', route)\r\n }\r\n return false\r\n }\r\n function toLastView(visitedViews, view) {\r\n const latestView = visitedViews.slice(-1)[0]\r\n if (latestView) {\r\n router.push(latestView.fullPath)\r\n } else {\r\n if (view.name === 'home') {\r\n router.replace({ path: '/redirect' + view.fullPath })\r\n } else {\r\n router.push('/')\r\n }\r\n }\r\n }\r\n\r\n const closeSelectedTag = (view)=>{\r\n store.dispatch('tagsView/delView', view).then(({ visitedViews }) => {\r\n if (isActive(view)) {\r\n toLastView(visitedViews, view)\r\n }\r\n })\r\n }\r\n\r\n onMounted(()=>{\r\n initTags()\r\n addTags()\r\n\r\n watch(route,()=>{\r\n addTags()\r\n })\r\n })\r\n\r\n\nreturn (_ctx: any,_cache: any) => {\n const _component_circle_close_filled = _resolveComponent(\"circle-close-filled\")!\n const _component_el_icon = _resolveComponent(\"el-icon\")!\n const _component_router_link = _resolveComponent(\"router-link\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(ScrollPane, {\n ref: \"scrollPane\",\n class: \"tags-view-wrapper\"\n }, {\n default: _withCtx(() => [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(visitedViews), (tag) => {\n return (_openBlock(), _createBlock(_component_router_link, {\n ref_for: true,\n ref: \"tag\",\n class: _normalizeClass([isActive(tag)?'active':'', \"tags-view-item\"]),\n key: tag.path,\n to: { path: tag.path, query: tag.query, fullPath: tag.fullPath },\n tag: \"span\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(tag.title) + \" \", 1),\n (!isAffix(tag))\n ? (_openBlock(), _createBlock(_component_el_icon, {\n key: 0,\n onClick: _withModifiers(($event: any) => (closeSelectedTag(tag)), [\"prevent\",\"stop\"])\n }, {\n default: _withCtx(() => [\n _createVNode(_component_circle_close_filled)\n ]),\n _: 2\n }, 1032, [\"onClick\"]))\n : _createCommentVNode(\"\", true)\n ]),\n _: 2\n }, 1032, [\"class\", \"to\"]))\n }), 128))\n ]),\n _: 1\n }, 512)\n ]))\n}\n}\n\n})","import script from \"./index.vue?vue&type=script&lang=ts&setup=true\"\nexport * from \"./index.vue?vue&type=script&lang=ts&setup=true\"\n\nimport \"./index.vue?vue&type=style&index=0&id=f8d00b58&lang=scss&scoped=true\"\n\nimport exportComponent from \"F:\\\\2022\\\\cloude\\\\vue-admin-plus\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-f8d00b58\"]])\n\nexport default __exports__","/* eslint-disable promise/prefer-await-to-then */\r\n\r\nconst methodMap = [\r\n\t[\r\n\t\t'requestFullscreen',\r\n\t\t'exitFullscreen',\r\n\t\t'fullscreenElement',\r\n\t\t'fullscreenEnabled',\r\n\t\t'fullscreenchange',\r\n\t\t'fullscreenerror',\r\n\t],\r\n\t// New WebKit\r\n\t[\r\n\t\t'webkitRequestFullscreen',\r\n\t\t'webkitExitFullscreen',\r\n\t\t'webkitFullscreenElement',\r\n\t\t'webkitFullscreenEnabled',\r\n\t\t'webkitfullscreenchange',\r\n\t\t'webkitfullscreenerror',\r\n\r\n\t],\r\n\t// Old WebKit\r\n\t[\r\n\t\t'webkitRequestFullScreen',\r\n\t\t'webkitCancelFullScreen',\r\n\t\t'webkitCurrentFullScreenElement',\r\n\t\t'webkitCancelFullScreen',\r\n\t\t'webkitfullscreenchange',\r\n\t\t'webkitfullscreenerror',\r\n\r\n\t],\r\n\t[\r\n\t\t'mozRequestFullScreen',\r\n\t\t'mozCancelFullScreen',\r\n\t\t'mozFullScreenElement',\r\n\t\t'mozFullScreenEnabled',\r\n\t\t'mozfullscreenchange',\r\n\t\t'mozfullscreenerror',\r\n\t],\r\n\t[\r\n\t\t'msRequestFullscreen',\r\n\t\t'msExitFullscreen',\r\n\t\t'msFullscreenElement',\r\n\t\t'msFullscreenEnabled',\r\n\t\t'MSFullscreenChange',\r\n\t\t'MSFullscreenError',\r\n\t],\r\n];\r\n\r\nconst nativeAPI = (() => {\r\n\tconst unprefixedMethods = methodMap[0];\r\n\tconst returnValue = {};\r\n\r\n\tfor (const methodList of methodMap) {\r\n\t\tconst exitFullscreenMethod = methodList?.[1];\r\n\t\tif (exitFullscreenMethod in document) {\r\n\t\t\tfor (const [index, method] of methodList.entries()) {\r\n\t\t\t\treturnValue[unprefixedMethods[index]] = method;\r\n\t\t\t}\r\n\r\n\t\t\treturn returnValue;\r\n\t\t}\r\n\t}\r\n\r\n\treturn false;\r\n})();\r\n\r\nconst eventNameMap = {\r\n\tchange: nativeAPI.fullscreenchange,\r\n\terror: nativeAPI.fullscreenerror,\r\n};\r\n\r\n// eslint-disable-next-line import/no-mutable-exports\r\nlet screenfull = {\r\n\t// eslint-disable-next-line default-param-last\r\n\trequest(element = document.documentElement, options) {\r\n\t\treturn new Promise((resolve, reject) => {\r\n\t\t\tconst onFullScreenEntered = () => {\r\n\t\t\t\tscreenfull.off('change', onFullScreenEntered);\r\n\t\t\t\tresolve();\r\n\t\t\t};\r\n\r\n\t\t\tscreenfull.on('change', onFullScreenEntered);\r\n\r\n\t\t\tconst returnPromise = element[nativeAPI.requestFullscreen](options);\r\n\r\n\t\t\tif (returnPromise instanceof Promise) {\r\n\t\t\t\treturnPromise.then(onFullScreenEntered).catch(reject);\r\n\t\t\t}\r\n\t\t});\r\n\t},\r\n\texit() {\r\n\t\treturn new Promise((resolve, reject) => {\r\n\t\t\tif (!screenfull.isFullscreen) {\r\n\t\t\t\tresolve();\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tconst onFullScreenExit = () => {\r\n\t\t\t\tscreenfull.off('change', onFullScreenExit);\r\n\t\t\t\tresolve();\r\n\t\t\t};\r\n\r\n\t\t\tscreenfull.on('change', onFullScreenExit);\r\n\r\n\t\t\tconst returnPromise = document[nativeAPI.exitFullscreen]();\r\n\r\n\t\t\tif (returnPromise instanceof Promise) {\r\n\t\t\t\treturnPromise.then(onFullScreenExit).catch(reject);\r\n\t\t\t}\r\n\t\t});\r\n\t},\r\n\ttoggle(element, options) {\r\n\t\treturn screenfull.isFullscreen ? screenfull.exit() : screenfull.request(element, options);\r\n\t},\r\n\tonchange(callback) {\r\n\t\tscreenfull.on('change', callback);\r\n\t},\r\n\tonerror(callback) {\r\n\t\tscreenfull.on('error', callback);\r\n\t},\r\n\ton(event, callback) {\r\n\t\tconst eventName = eventNameMap[event];\r\n\t\tif (eventName) {\r\n\t\t\tdocument.addEventListener(eventName, callback, false);\r\n\t\t}\r\n\t},\r\n\toff(event, callback) {\r\n\t\tconst eventName = eventNameMap[event];\r\n\t\tif (eventName) {\r\n\t\t\tdocument.removeEventListener(eventName, callback, false);\r\n\t\t}\r\n\t},\r\n\traw: nativeAPI,\r\n};\r\n\r\nObject.defineProperties(screenfull, {\r\n\tisFullscreen: {\r\n\t\tget: () => Boolean(document[nativeAPI.fullscreenElement]),\r\n\t},\r\n\telement: {\r\n\t\tenumerable: true,\r\n\t\tget: () => document[nativeAPI.fullscreenElement] ?? undefined,\r\n\t},\r\n\tisEnabled: {\r\n\t\tenumerable: true,\r\n\t\t// Coerce to boolean in case of old WebKit.\r\n\t\tget: () => Boolean(document[nativeAPI.fullscreenEnabled]),\r\n\t},\r\n});\r\n\r\nif (!nativeAPI) {\r\n\tscreenfull = {isEnabled: false};\r\n}\r\n\r\n\r\nexport default screenfull;\r\n","import { defineComponent as _defineComponent } from 'vue'\nimport { resolveComponent as _resolveComponent, createVNode as _createVNode, withModifiers as _withModifiers, withCtx as _withCtx, openBlock as _openBlock, createBlock as _createBlock } from \"vue\"\n\nimport screenfull from './index'\r\n import { ElMessage } from 'element-plus'\r\n import {onBeforeUnmount, onMounted, ref} from \"vue\";\r\n \nexport default /*#__PURE__*/_defineComponent({\n setup(__props) {\n\r\n let isFullscreen = ref(false)\r\n const click = ()=>{\r\n if (!screenfull.isEnabled) {\r\n ElMessage({\r\n message: '你的浏览器不支持',\r\n type: 'warning'\r\n })\r\n return false\r\n }\r\n screenfull.toggle()\r\n }\r\n const change = ()=>{\r\n isFullscreen.value = screenfull.isFullscreen\r\n }\r\n\r\n const init = ()=>{\r\n if (screenfull.isEnabled) {\r\n screenfull.on('change', change)\r\n }\r\n }\r\n\r\n const destroy = ()=>{\r\n if (screenfull.isEnabled) {\r\n screenfull.off('change', change)\r\n }\r\n }\r\n\r\n onMounted(()=>{\r\n init()\r\n })\r\n\r\n onBeforeUnmount(()=>{\r\n destroy()\r\n })\r\n\nreturn (_ctx: any,_cache: any) => {\n const _component_full_screen = _resolveComponent(\"full-screen\")!\n const _component_el_icon = _resolveComponent(\"el-icon\")!\n\n return (_openBlock(), _createBlock(_component_el_icon, {\n title: \"全屏\",\n onClick: _withModifiers(click, [\"stop\"]),\n style: {\"margin-right\":\"10px\",\"cursor\":\"pointer\"}\n }, {\n default: _withCtx(() => [\n _createVNode(_component_full_screen)\n ]),\n _: 1\n }, 8, [\"onClick\"]))\n}\n}\n\n})","import script from \"./index.vue?vue&type=script&lang=ts&setup=true\"\nexport * from \"./index.vue?vue&type=script&lang=ts&setup=true\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, resolveComponent as _resolveComponent, createVNode as _createVNode, withCtx as _withCtx, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, createElementVNode as _createElementVNode, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, normalizeStyle as _normalizeStyle, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-96e07a22\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"header\" }\nconst _hoisted_2 = { class: \"right\" }\nconst _hoisted_3 = { class: \"el-dropdown-link\" }\nconst _hoisted_4 = /*#__PURE__*/_createTextVNode(\"退出登录\")\nconst _hoisted_5 = /*#__PURE__*/_createTextVNode(\"修改密码\")\n\nimport Personal from './Personal.vue'\r\n import TagViews from '../TagsView/index.vue'\r\n import UScreenFull from '@/components/u-screenfull/index.vue'\r\n import {computed, ref,} from 'vue'\r\n import {useRouter} from 'vue-router'\r\n import { ElMessageBox, ElMessage } from 'element-plus'\r\n import {useStore} from \"vuex\";\r\n\r\n \nexport default /*#__PURE__*/_defineComponent({\n setup(__props) {\n\r\n const store = useStore()\r\n const person = ref()\r\n const router = useRouter()\r\n\r\n const isCollapse = computed(()=>{\r\n return store.state.app.isCollapse\r\n })\r\n\r\n const userInfo = computed(()=>{\r\n return store.state.user.userInfo\r\n })\r\n\r\n const logOut = async ()=>{\r\n ElMessageBox.confirm(\r\n '确定退出登录吗?',\r\n '退出登录',\r\n {\r\n confirmButtonText: '确定',\r\n cancelButtonText: '取消',\r\n type: 'warning',\r\n }\r\n )\r\n .then(async () => {\r\n try {\r\n await store.dispatch('user/logout')\r\n router.push({path:'/login'})\r\n }catch (e) {\r\n\r\n }\r\n })\r\n .catch(() => {\r\n\r\n })\r\n }\r\n\r\n const commandAction = (key:number)=>{\r\n switch (key){\r\n case 1:\r\n logOut()\r\n break;\r\n case 2:\r\n person.value.show()\r\n break;\r\n }\r\n }\r\n\r\n const handleCollapse = (type:boolean) => {\r\n store.commit('app/SET_COLLAPSE', type)\r\n }\r\n\nreturn (_ctx: any,_cache: any) => {\n const _component_expand = _resolveComponent(\"expand\")!\n const _component_el_icon = _resolveComponent(\"el-icon\")!\n const _component_fold = _resolveComponent(\"fold\")!\n const _component_arrow_down = _resolveComponent(\"arrow-down\")!\n const _component_el_dropdown_item = _resolveComponent(\"el-dropdown-item\")!\n const _component_el_dropdown_menu = _resolveComponent(\"el-dropdown-menu\")!\n const _component_el_dropdown = _resolveComponent(\"el-dropdown\")!\n\n return (_openBlock(), _createElementBlock(\"div\", {\n class: \"m-layout-header\",\n style: _normalizeStyle({left:`${_unref(isCollapse)?'56':'210'}px`})\n }, [\n _createElementVNode(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", null, [\n (_unref(isCollapse))\n ? (_openBlock(), _createBlock(_component_el_icon, {\n key: 0,\n class: \"icon\",\n onClick: _cache[0] || (_cache[0] = ($event: any) => (handleCollapse(false)))\n }, {\n default: _withCtx(() => [\n _createVNode(_component_expand)\n ]),\n _: 1\n }))\n : (_openBlock(), _createBlock(_component_el_icon, {\n key: 1,\n class: \"icon\",\n onClick: _cache[1] || (_cache[1] = ($event: any) => (handleCollapse(true)))\n }, {\n default: _withCtx(() => [\n _createVNode(_component_fold)\n ]),\n _: 1\n }))\n ]),\n _createElementVNode(\"div\", _hoisted_2, [\n _createVNode(UScreenFull),\n _createVNode(_component_el_dropdown, { onCommand: commandAction }, {\n dropdown: _withCtx(() => [\n _createVNode(_component_el_dropdown_menu, null, {\n default: _withCtx(() => [\n _createVNode(_component_el_dropdown_item, { command: 1 }, {\n default: _withCtx(() => [\n _hoisted_4\n ]),\n _: 1\n }),\n _createVNode(_component_el_dropdown_item, { command: 2 }, {\n default: _withCtx(() => [\n _hoisted_5\n ]),\n _: 1\n })\n ]),\n _: 1\n })\n ]),\n default: _withCtx(() => [\n _createElementVNode(\"span\", _hoisted_3, [\n _createTextVNode(_toDisplayString(_unref(userInfo).username) + \" \", 1),\n _createVNode(_component_el_icon, { class: \"el-icon--right\" }, {\n default: _withCtx(() => [\n _createVNode(_component_arrow_down)\n ]),\n _: 1\n })\n ])\n ]),\n _: 1\n })\n ])\n ]),\n _createVNode(TagViews),\n _createVNode(Personal, {\n ref_key: \"person\",\n ref: person\n }, null, 512)\n ], 4))\n}\n}\n\n})","import script from \"./index.vue?vue&type=script&lang=ts&setup=true\"\nexport * from \"./index.vue?vue&type=script&lang=ts&setup=true\"\n\nimport \"./index.vue?vue&type=style&index=0&id=96e07a22&lang=scss&scoped=true\"\n\nimport exportComponent from \"F:\\\\2022\\\\cloude\\\\vue-admin-plus\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-96e07a22\"]])\n\nexport default __exports__","\r\n \r\n\r\n\r\n\r\n\r\n\r\n","import { render } from \"./AppMain.vue?vue&type=template&id=4137f49f&scoped=true\"\nconst script = {}\n\nimport \"./AppMain.vue?vue&type=style&index=0&id=4137f49f&lang=scss&scoped=true\"\n\nimport exportComponent from \"F:\\\\2022\\\\cloude\\\\vue-admin-plus\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-4137f49f\"]])\n\nexport default __exports__","\r\n import {computed, defineComponent, ref} from 'vue';\r\n import Sidebar from './components/Sidebar/index.vue'\r\n import UHeader from './components/UHeader/index.vue'\r\n import AppMain from './components/AppMain.vue'\r\n\r\n import {useStore} from \"vuex\";\r\n\r\n export default defineComponent({\r\n name: 'layout',\r\n components: {\r\n Sidebar,\r\n UHeader,\r\n AppMain,\r\n },\r\n setup(){\r\n const store = useStore()\r\n // 是否折叠\r\n const isCollapse = computed(()=>{\r\n return store.state.app.isCollapse\r\n })\r\n return{\r\n isCollapse\r\n }\r\n }\r\n });\r\n","import { render } from \"./index.vue?vue&type=template&id=583891f3&scoped=true&ts=true\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\n\nimport \"./index.vue?vue&type=style&index=0&id=583891f3&lang=scss&scoped=true\"\n\nimport exportComponent from \"F:\\\\2022\\\\cloude\\\\vue-admin-plus\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-583891f3\"]])\n\nexport default __exports__","/** When your routing table is too long, you can split it into small modules**/\r\n\r\nimport Layout from \"@/layout/index.vue\";\r\n\r\nconst chartsRouter = {\r\n path: '/charts',\r\n component: Layout,\r\n redirect: 'noRedirect',\r\n name: 'Charts',\r\n meta: {\r\n title: '图表',\r\n icon: 'trend-charts'\r\n },\r\n children: [\r\n {\r\n path: 'line',\r\n component: () => import('@/views/charts/line.vue'),\r\n name: 'line',\r\n meta: { title: '折现图', noCache: true }\r\n },\r\n {\r\n path: 'simple',\r\n component: () => import('@/views/charts/simple.vue'),\r\n name: 'charts-simple',\r\n meta: { title: '简单图表', noCache: true }\r\n },\r\n {\r\n path: 'complex',\r\n component: () => import('@/views/charts/complex.vue'),\r\n name: 'charts-complex',\r\n meta: { title: '复杂图表', noCache: true }\r\n },\r\n ]\r\n}\r\n\r\nexport default chartsRouter\r\n","/** When your routing table is too long, you can split it into small modules**/\r\n\r\nimport Layout from \"@/layout/index.vue\";\r\n\r\nconst chartsRouter = {\r\n path: '/chat',\r\n component: Layout,\r\n redirect: 'noRedirect',\r\n name: 'chat',\r\n meta: {\r\n title: '聊天框',\r\n icon: 'chat-square'\r\n },\r\n children: [\r\n {\r\n path: 'index',\r\n component: () => import('@/views/chat/index.vue'),\r\n name: 'chat',\r\n meta: { title: '聊天框', noCache: true,icon: 'chat-square' }\r\n },\r\n ]\r\n}\r\n\r\nexport default chartsRouter\r\n","/** When your routing table is too long, you can split it into small modules**/\r\n\r\nimport Layout from \"@/layout/index.vue\";\r\n\r\nconst componentsRouter = {\r\n path: '/components',\r\n component: Layout,\r\n redirect: 'noRedirect',\r\n name: 'components',\r\n meta: {\r\n title: '组件',\r\n icon: 'Histogram'\r\n },\r\n children: [\r\n {\r\n path: 'editor',\r\n component: () => import('@/views/components-demo/editor.vue'),\r\n name: 'editor',\r\n meta: { title: '富文本编辑器', noCache: true }\r\n },\r\n {\r\n path: 'mark-down',\r\n component: () => import('@/views/components-demo/mark-down.vue'),\r\n name: 'mark-down',\r\n meta: { title: 'markDown', noCache: true }\r\n },\r\n {\r\n path: 'form',\r\n component: () => import('@/views/components-demo/form.vue'),\r\n name: 'form',\r\n meta: { title: '表单', noCache: true }\r\n },\r\n ]\r\n}\r\n\r\nexport default componentsRouter\r\n","/** When your routing table is too long, you can split it into small modules**/\r\n\r\nimport Layout from \"@/layout/index.vue\";\r\n\r\nconst othersRouter = {\r\n path: '/other',\r\n component: Layout,\r\n redirect: 'noRedirect',\r\n name: 'other',\r\n meta: {\r\n title: '其他',\r\n icon: 'management'\r\n },\r\n children: [\r\n {\r\n path: 'print',\r\n component: () => import('@/views/other/print.vue'),\r\n name: 'print',\r\n meta: { title: '打印', noCache: true }\r\n },\r\n {\r\n path: 'cropper',\r\n component: () => import('@/views/other/cropper/index.vue'),\r\n name: 'cropper',\r\n meta: { title: '头像裁剪', noCache: true }\r\n },\r\n\r\n ]\r\n}\r\n\r\nexport default othersRouter\r\n","/** When your routing table is too long, you can split it into small modules**/\r\n\r\nimport Layout from \"@/layout/index.vue\";\r\n\r\nconst externalLink = {\r\n path: '/external-link',\r\n component: Layout,\r\n redirect: 'noRedirect',\r\n name: 'external-link',\r\n children: [\r\n {\r\n path: 'https://github.com/zouzhibin/vue-admin-perfect',\r\n name: 'external',\r\n meta: { title: '外链', noCache: true , icon: 'link' }\r\n },\r\n ]\r\n}\r\n\r\nexport default externalLink\r\n","import { createRouter, createWebHistory, RouteRecordRaw,createWebHashHistory } from 'vue-router'\r\nimport Layout from \"@/layout/index.vue\";\r\n\r\n// 引入组件\r\nimport chartsRouter from './modules/charts'\r\nimport chatRouter from './modules/chat'\r\nimport componentsRouter from './modules/components'\r\nimport othersRouter from './modules/other'\r\nimport externalLink from './modules/externalLink'\r\n\r\nexport const constantRoutes: Array = [\r\n {\r\n path: '/login',\r\n name: 'Login',\r\n component: () => import('@/views/login/index.vue'),\r\n // hidden: true\r\n },\r\n {\r\n path: '/',\r\n name: 'layout',\r\n component: Layout,\r\n redirect: '/home',\r\n children: [\r\n {\r\n path: '/home',\r\n component: () => import('@/views/home/index.vue'),\r\n name: 'home',\r\n meta: { title: '首页', icon: 'film', affix: true }\r\n },\r\n ]\r\n },\r\n\r\n]\r\n\r\n// 异步组件\r\nexport const asyncRoutes = [\r\n chartsRouter,\r\n chatRouter,\r\n componentsRouter,\r\n othersRouter,\r\n externalLink\r\n]\r\n\r\n\r\nconst router = createRouter({\r\n // history: createWebHistory(process.env.BASE_URL), // history\r\n history: createWebHashHistory(), // hash\r\n routes:constantRoutes\r\n})\r\n\r\nexport default router\r\n","import {Module} from \"vuex\";\r\n\r\nimport { asyncRoutes, constantRoutes } from '@/router/index'\r\n/**\r\n * Use meta.role to determine if the current user has permission\r\n * @param roles\r\n * @param route\r\n */\r\nfunction hasPermission(roles, route) {\r\n if (route.meta && route.meta.roles) {\r\n return roles.some(role => route.meta.roles.includes(role))\r\n } else {\r\n return true\r\n }\r\n}\r\n\r\n/**\r\n * Filter asynchronous routing tables by recursion\r\n * @param routes asyncRoutes\r\n * @param roles\r\n */\r\nexport function filterAsyncRoutes(routes, roles) {\r\n const res = []\r\n\r\n routes.forEach(route => {\r\n const tmp = { ...route }\r\n if (hasPermission(roles, tmp)) {\r\n if (tmp.children) {\r\n tmp.children = filterAsyncRoutes(tmp.children, roles)\r\n }\r\n res.push(tmp)\r\n }\r\n })\r\n\r\n return res\r\n}\r\n\r\n\r\nconst state = {\r\n routes: [],\r\n addRoutes: []\r\n}\r\n\r\nconst mutations = {\r\n SET_ROUTES: (state, routes) => {\r\n state.addRoutes = routes\r\n state.routes = constantRoutes.concat(routes)\r\n\r\n console.log('===============',state.routes)\r\n }\r\n}\r\n\r\nconst actions = {\r\n generateRoutes({ commit }, roles) {\r\n return new Promise(resolve => {\r\n // let accessedRoutes\r\n // if (roles.includes('admin')) {\r\n // accessedRoutes = asyncRoutes || []\r\n // } else {\r\n // accessedRoutes = filterAsyncRoutes(asyncRoutes, roles)\r\n // }\r\n commit('SET_ROUTES', asyncRoutes)\r\n resolve(asyncRoutes)\r\n })\r\n }\r\n}\r\n\r\nconst permission:Module = {\r\n namespaced:true,\r\n state,\r\n mutations,\r\n actions\r\n}\r\n\r\nexport default permission\r\n","import {Module} from \"vuex\";\r\n\r\nconst state = {\r\n isCollapse: false,\r\n}\r\n\r\nconst mutations = {\r\n SET_COLLAPSE: (state, value) => {\r\n state.isCollapse = value\r\n }\r\n}\r\n\r\n\r\n\r\nconst app:Module = {\r\n namespaced:true,\r\n state,\r\n mutations,\r\n}\r\n\r\nexport default app\r\n","\r\nconst TokenKey = 'zb-token'\r\n\r\nexport function getToken() {\r\n return localStorage.TokenKey\r\n}\r\n\r\nexport function setToken(token) {\r\n return localStorage.TokenKey = token\r\n}\r\n\r\nexport function removeToken() {\r\n return localStorage.TokenKey =''\r\n}\r\n","import {Module} from \"vuex\";\r\nimport { getToken, setToken, removeToken } from '@/utils/auth'\r\nconst state = {\r\n token: getToken(),\r\n userInfo:localStorage.userInfo?JSON.parse(localStorage.userInfo):{}\r\n}\r\n\r\nconst mutations = {\r\n SET_TOKEN: (state, token) => {\r\n state.token = token\r\n },\r\n SET_INFO: (state, userInfo) => {\r\n localStorage.userInfo = JSON.stringify(userInfo)\r\n state.userInfo = userInfo\r\n },\r\n}\r\n\r\n\r\nconst actions = {\r\n // 登录\r\n login({ commit }, userInfo) {\r\n console.log('=========')\r\n const { username, password } = userInfo\r\n return new Promise((resolve, reject) => {\r\n commit('SET_TOKEN', username)\r\n commit('SET_INFO', userInfo)\r\n setToken(username)\r\n resolve(username)\r\n })\r\n },\r\n // 退出\r\n logout({ commit, state, dispatch }) {\r\n return new Promise((resolve, reject) => {\r\n removeToken()\r\n commit('SET_TOKEN', '')\r\n commit('SET_INFO', '')\r\n resolve(null)\r\n })\r\n },\r\n}\r\n\r\n\r\nconst user:Module = {\r\n namespaced:true,\r\n state,\r\n actions,\r\n mutations,\r\n}\r\n\r\nexport default user\r\n","import {Module} from \"vuex\";\r\n\r\nconst state = {\r\n visitedViews: [],\r\n cachedViews: []\r\n}\r\n\r\nconst mutations = {\r\n ADD_VISITED_VIEW: (state, view) => {\r\n if (state.visitedViews.some(v => v.path === view.path)) return\r\n state.visitedViews.push(\r\n Object.assign({}, view, {\r\n title: view.meta.title || 'no-name'\r\n })\r\n )\r\n },\r\n ADD_CACHED_VIEW: (state, view) => {\r\n if (state.cachedViews.includes(view.name)) return\r\n if (!view.meta.noCache) {\r\n state.cachedViews.push(view.name)\r\n }\r\n },\r\n DEL_VISITED_VIEW: (state, view) => {\r\n for (const [i, v] of state.visitedViews.entries()) {\r\n if (v.path === view.path) {\r\n state.visitedViews.splice(i, 1)\r\n break\r\n }\r\n }\r\n },\r\n DEL_CACHED_VIEW: (state, view) => {\r\n const index = state.cachedViews.indexOf(view.name)\r\n index > -1 && state.cachedViews.splice(index, 1)\r\n },\r\n\r\n}\r\n\r\nconst actions = {\r\n addView({ dispatch }, view) {\r\n dispatch('addVisitedView', view)\r\n // dispatch('addCachedView', view)\r\n },\r\n addVisitedView({ commit }, view) {\r\n commit('ADD_VISITED_VIEW', view)\r\n },\r\n delView({ dispatch, state }, view) {\r\n return new Promise(resolve => {\r\n dispatch('delVisitedView', view)\r\n dispatch('delCachedView', view)\r\n resolve({\r\n visitedViews: [...state.visitedViews],\r\n cachedViews: [...state.cachedViews]\r\n })\r\n })\r\n },\r\n delVisitedView({ commit, state }, view) {\r\n return new Promise(resolve => {\r\n commit('DEL_VISITED_VIEW', view)\r\n resolve([...state.visitedViews])\r\n })\r\n },\r\n delCachedView({ commit, state }, view) {\r\n return new Promise(resolve => {\r\n commit('DEL_CACHED_VIEW', view)\r\n resolve([...state.cachedViews])\r\n })\r\n },\r\n}\r\n\r\n\r\n\r\nconst tagsView:Module = {\r\n namespaced:true,\r\n state,\r\n mutations,\r\n actions\r\n}\r\n\r\nexport default tagsView\r\n","const getters = {\r\n permission_routes: state => state.permission.routes,\r\n isCollapse: state => state.app.isCollapse,\r\n userInfo: state => state.user.userInfo,\r\n\r\n}\r\nexport default getters\r\n","import { createStore } from 'vuex'\r\n\r\nimport permission from './modules/permission'\r\nimport app from './modules/app'\r\nimport user from './modules/user'\r\nimport tagsView from './modules/tagsView'\r\n\r\nimport getters from './getters'\r\n\r\nexport default createStore({\r\n state: {\r\n\r\n },\r\n mutations: {\r\n\r\n },\r\n actions: {\r\n },\r\n modules: {\r\n permission,\r\n app,\r\n user,\r\n tagsView\r\n },\r\n getters\r\n})\r\n","import router from './router/index'\r\nimport store from './store/index'\r\nimport NProgress from 'nprogress'\r\nimport 'nprogress/nprogress.css'\r\nimport { getToken } from '@/utils/auth'\r\n\r\nNProgress.configure({ showSpinner: false }) // NProgress Configuration\r\n\r\nconst whiteList = ['/login', '/auth-redirect'] // 设置白名单\r\n// 记录路由\r\nlet hasRoles = true\r\n\r\nrouter.beforeEach(async(to, from, next) => {\r\n // 开启进度条\r\n NProgress.start()\r\n\r\n // set page title\r\n document.title = to.meta.title\r\n\r\n // 确定用户是否已登录\r\n const hasToken = getToken()\r\n\r\n if (hasToken) {\r\n if (to.path === '/login') {\r\n // 如果已登录,请重定向到主页\r\n next({ path: '/' })\r\n NProgress.done()\r\n } else {\r\n try {\r\n // 路由添加进去了没有及时更新 需要重新进去一次拦截\r\n if(hasRoles){\r\n const accessRoutes = await store.dispatch('permission/generateRoutes', 'roles')\r\n console.log('accessRoutes==',accessRoutes)\r\n hasRoles = false\r\n accessRoutes.forEach(item => router.addRoute(item)) // 动态添加访问路由表\r\n next({ ...to, replace: true }) // // 这里相当于push到一个页面 不在进入路由拦截\r\n }else {\r\n next() // // 如果不传参数就会重新执行路由拦截,重新进到这里\r\n }\r\n } catch (error) {\r\n next(`/login?redirect=${to.path}`)\r\n }\r\n }\r\n }else{\r\n if (whiteList.indexOf(to.path) !== -1) {\r\n next()\r\n } else {\r\n next(`/login?redirect=${to.path}`)\r\n NProgress.done()\r\n }\r\n }\r\n})\r\n\r\nrouter.afterEach(() => {\r\n NProgress.done()\r\n})\r\n","import { createApp } from 'vue'\r\nimport App from './App.vue'\r\nimport router from './router'\r\nimport store from './store'\r\n\r\nimport './permission'\r\nimport ElementPlus from 'element-plus'\r\nimport 'element-plus/dist/index.css'\r\n\r\nconst app = createApp(App)\r\n\r\nimport * as ElIconsModules from '@element-plus/icons-vue'\r\n// 全局注册element-plus icon图标组件\r\nObject.keys(ElIconsModules).forEach((key) => {//循环遍历组件名称\r\n if (\"Menu\" !== key) {//如果不是图标组件不是Menu,就跳过,否则加上ICon的后缀\r\n app.component(key, ElIconsModules[key]);\r\n } else {\r\n app.component(key + \"Icon\", ElIconsModules[key]);\r\n }\r\n});\r\n\r\nimport '@/styles/index.scss' // global css\r\napp.use(store).use(router).use(ElementPlus).mount('#app')\r\n","module.exports = __webpack_public_path__ + \"img/logo.82b9c7a5.png\";","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./Logo.vue?vue&type=style&index=0&id=5c19406b&lang=scss&scoped=true\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./index.vue?vue&type=style&index=0&id=c618cba0&lang=scss\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./AppMain.vue?vue&type=style&index=0&id=4137f49f&lang=scss&scoped=true\""],"sourceRoot":""}
\ No newline at end of file
diff --git a/dist/js/chunk-2234305e.8f32d19b.js b/dist/js/chunk-000055b2.8b8a6d20.js
similarity index 57%
rename from dist/js/chunk-2234305e.8f32d19b.js
rename to dist/js/chunk-000055b2.8b8a6d20.js
index 935a9cb..a3f539d 100644
--- a/dist/js/chunk-2234305e.8f32d19b.js
+++ b/dist/js/chunk-000055b2.8b8a6d20.js
@@ -1,2 +1,2 @@
-(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-2234305e"],{"0d3b":function(e,t,i){var r=i("d039"),s=i("b622"),o=i("c430"),n=s("iterator");e.exports=!r((function(){var e=new URL("b?a=1&b=2&c=3","http://a"),t=e.searchParams,i="";return e.pathname="c%20d",t.forEach((function(e,r){t["delete"]("b"),i+=r+e})),o&&!e.toJSON||!t.sort||"http://a/c%20d?a=1&c=3"!==e.href||"3"!==t.get("c")||"a=1"!==String(new URLSearchParams("?a=1"))||!t[n]||"a"!==new URL("https://a@b").username||"b"!==new URLSearchParams(new URLSearchParams("a=b")).get("a")||"xn--e1aybc"!==new URL("http://тест").host||"#%D0%B1"!==new URL("http://a#б").hash||"a1c3"!==i||"x"!==new URL("http://x",void 0).host}))},"179a":function(e,t,i){},"17d15":function(e,t,i){e.exports=i.p+"img/cro.6ba28915.jpg"},"1a2a":function(e,t,i){"use strict";i.r(t);i("a4d3"),i("e01a"),i("d3b7"),i("d28b"),i("3ca3"),i("ddb0");function r(e){return r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},r(e)}i("2b3d"),i("9861"),i("b0c0"),i("ac1f"),i("00b4"),i("c7cd");var s=i("7a23");i("179a");const o={};function n(e){let t=null;return new Promise((i,r)=>{if(e.src)if(/^data\:/i.test(e.src))t=a(e.src),i(t);else if(/^blob\:/i.test(e.src)){var s=new FileReader;s.onload=function(e){t=e.target.result,i(t)},h(e.src,(function(e){s.readAsArrayBuffer(e)}))}else{var o=new XMLHttpRequest;o.onload=function(){if(200!=this.status&&0!==this.status)throw"Could not load image";t=o.response,i(t),o=null},o.open("GET",e.src,!0),o.responseType="arraybuffer",o.send(null)}else r("img error")})}function h(e,t){var i=new XMLHttpRequest;i.open("GET",e,!0),i.responseType="blob",i.onload=function(e){200!=this.status&&0!==this.status||t(this.response)},i.send()}function a(e){e=e.replace(/^data\:([^\;]+)\;base64,/gim,"");for(var t=atob(e),i=t.length,r=new ArrayBuffer(i),s=new Uint8Array(r),o=0;o=8&&(a=r+s)))),a)for(f=p.getUint16(a,o),u=0;unew Promise((t,i)=>{let r={};n(e).then(e=>{r.arrayBuffer=e,r.orientation=l(e),t(r)}).catch(e=>{i(e)})});var u=(e,t)=>{const i=e.__vccOpts||e;for(const[r,s]of t)i[r]=s;return i};const p=Object(s["defineComponent"])({data:function(){return{w:0,h:0,scale:1,x:0,y:0,loading:!0,trueWidth:0,trueHeight:0,move:!0,moveX:0,moveY:0,crop:!1,cropping:!1,cropW:0,cropH:0,cropOldW:0,cropOldH:0,canChangeX:!1,canChangeY:!1,changeCropTypeX:1,changeCropTypeY:1,cropX:0,cropY:0,cropChangeX:0,cropChangeY:0,cropOffsertX:0,cropOffsertY:0,support:"",touches:[],touchNow:!1,rotate:0,isIos:!1,orientation:0,imgs:"",coe:.2,scaling:!1,scalingSet:"",coeStatus:"",isCanShow:!0}},props:{img:{type:[String,Blob,null,File],default:""},outputSize:{type:Number,default:1},outputType:{type:String,default:"jpeg"},info:{type:Boolean,default:!0},canScale:{type:Boolean,default:!0},autoCrop:{type:Boolean,default:!1},autoCropWidth:{type:[Number,String],default:0},autoCropHeight:{type:[Number,String],default:0},fixed:{type:Boolean,default:!1},fixedNumber:{type:Array,default:()=>[1,1]},fixedBox:{type:Boolean,default:!1},full:{type:Boolean,default:!1},canMove:{type:Boolean,default:!0},canMoveBox:{type:Boolean,default:!0},original:{type:Boolean,default:!1},centerBox:{type:Boolean,default:!1},high:{type:Boolean,default:!0},infoTrue:{type:Boolean,default:!1},maxImgSize:{type:[Number,String],default:2e3},enlarge:{type:[Number,String],default:1},preW:{type:[Number,String],default:0},mode:{type:String,default:"contain"},limitMinSize:{type:[Number,Array,String],default:()=>10}},computed:{cropInfo(){let e={};if(e.top=this.cropOffsertY>21?"-21px":"0px",e.width=this.cropW>0?this.cropW:0,e.height=this.cropH>0?this.cropH:0,this.infoTrue){let t=1;this.high&&!this.full&&(t=window.devicePixelRatio),1!==this.enlarge&!this.full&&(t=Math.abs(Number(this.enlarge))),e.width=e.width*t,e.height=e.height*t,this.full&&(e.width=e.width/this.scale,e.height=e.height/this.scale)}return e.width=e.width.toFixed(0),e.height=e.height.toFixed(0),e},isIE(){const e=!!window.ActiveXObject||"ActiveXObject"in window;return e},passive(){return this.isIE?null:{passive:!1}}},watch:{img(){this.checkedImg()},imgs(e){""!==e&&this.reload()},cropW(){this.showPreview()},cropH(){this.showPreview()},cropOffsertX(){this.showPreview()},cropOffsertY(){this.showPreview()},scale(e,t){this.showPreview()},x(){this.showPreview()},y(){this.showPreview()},autoCrop(e){e&&this.goAutoCrop()},autoCropWidth(){this.autoCrop&&this.goAutoCrop()},autoCropHeight(){this.autoCrop&&this.goAutoCrop()},mode(){this.checkedImg()},rotate(){this.showPreview(),(this.autoCrop||this.cropW>0||this.cropH>0)&&this.goAutoCrop(this.cropW,this.cropH)}},methods:{getVersion(e){var t=navigator.userAgent.split(" "),i="";let r=0;const s=new RegExp(e,"i");for(var o=0;o=81)t=-1;else if(this.getVersion("safari")[0]>=605){const e=this.getVersion("version");e[0]>13&&e[1]>1&&(t=-1)}else{const e=navigator.userAgent.toLowerCase().match(/cpu iphone os (.*?) like mac os/);if(e){let i=e[1];i=i.split("_"),(i[0]>13||i[0]>=13&&i[1]>=4)&&(t=-1)}}let s=document.createElement("canvas"),o=s.getContext("2d");switch(o.save(),t){case 2:s.width=i,s.height=r,o.translate(i,0),o.scale(-1,1);break;case 3:s.width=i,s.height=r,o.translate(i/2,r/2),o.rotate(180*Math.PI/180),o.translate(-i/2,-r/2);break;case 4:s.width=i,s.height=r,o.translate(0,r),o.scale(1,-1);break;case 5:s.height=i,s.width=r,o.rotate(.5*Math.PI),o.scale(1,-1);break;case 6:s.width=r,s.height=i,o.translate(r/2,i/2),o.rotate(90*Math.PI/180),o.translate(-i/2,-r/2);break;case 7:s.height=i,s.width=r,o.rotate(.5*Math.PI),o.translate(i,-r),o.scale(-1,1);break;case 8:s.height=i,s.width=r,o.translate(r/2,i/2),o.rotate(-90*Math.PI/180),o.translate(-i/2,-r/2);break;default:s.width=i,s.height=r}o.drawImage(e,0,0,i,r),o.restore(),s.toBlob(e=>{let t=URL.createObjectURL(e);URL.revokeObjectURL(this.imgs),this.imgs=t},"image/"+this.outputType,1)},checkedImg(){if(null===this.img||""===this.img)return this.imgs="",void this.clearCrop();this.loading=!0,this.scale=1,this.rotate=0,this.clearCrop();let e=new Image;if(e.onload=()=>{if(""===this.img)return this.$emit("img-load","error"),!1;let t=e.width,i=e.height;o.getData(e).then(r=>{this.orientation=r.orientation||1;let s=Number(this.maxImgSize);!this.orientation&&ts&&(i=i/t*s,t=s),i>s&&(t=t/i*s,i=s),this.checkOrientationImage(e,this.orientation,t,i))})},e.onerror=()=>{this.$emit("img-load","error")},"data"!==this.img.substr(0,4)&&(e.crossOrigin=""),this.isIE){var t=new XMLHttpRequest;t.onload=function(){var t=URL.createObjectURL(this.response);e.src=t},t.open("GET",this.img,!0),t.responseType="blob",t.send()}else e.src=this.img},startMove(e){if(e.preventDefault(),this.move&&!this.crop){if(!this.canMove)return!1;this.moveX=("clientX"in e?e.clientX:e.touches[0].clientX)-this.x,this.moveY=("clientY"in e?e.clientY:e.touches[0].clientY)-this.y,e.touches?(window.addEventListener("touchmove",this.moveImg),window.addEventListener("touchend",this.leaveImg),2==e.touches.length&&(this.touches=e.touches,window.addEventListener("touchmove",this.touchScale),window.addEventListener("touchend",this.cancelTouchScale))):(window.addEventListener("mousemove",this.moveImg),window.addEventListener("mouseup",this.leaveImg)),this.$emit("imgMoving",{moving:!0,axis:this.getImgAxis()}),this.$emit("img-moving",{moving:!0,axis:this.getImgAxis()})}else this.cropping=!0,window.addEventListener("mousemove",this.createCrop),window.addEventListener("mouseup",this.endCrop),window.addEventListener("touchmove",this.createCrop),window.addEventListener("touchend",this.endCrop),this.cropOffsertX=e.offsetX?e.offsetX:e.touches[0].pageX-this.$refs.cropper.offsetLeft,this.cropOffsertY=e.offsetY?e.offsetY:e.touches[0].pageY-this.$refs.cropper.offsetTop,this.cropX="clientX"in e?e.clientX:e.touches[0].clientX,this.cropY="clientY"in e?e.clientY:e.touches[0].clientY,this.cropChangeX=this.cropOffsertX,this.cropChangeY=this.cropOffsertY,this.cropW=0,this.cropH=0},touchScale(e){e.preventDefault();let t=this.scale;var i={x:this.touches[0].clientX,y:this.touches[0].clientY},r={x:e.touches[0].clientX,y:e.touches[0].clientY},s={x:this.touches[1].clientX,y:this.touches[1].clientY},o={x:e.touches[1].clientX,y:e.touches[1].clientY},n=Math.sqrt(Math.pow(i.x-s.x,2)+Math.pow(i.y-s.y,2)),h=Math.sqrt(Math.pow(r.x-o.x,2)+Math.pow(r.y-o.y,2)),a=h-n,c=1;c=c/this.trueWidth>c/this.trueHeight?c/this.trueHeight:c/this.trueWidth,c=c>.1?.1:c;var l=c*a;if(!this.touchNow){if(this.touchNow=!0,a>0?t+=Math.abs(l):a<0&&t>Math.abs(l)&&(t-=Math.abs(l)),this.touches=e.touches,setTimeout(()=>{this.touchNow=!1},8),!this.checkoutImgAxis(this.x,this.y,t))return!1;this.scale=t}},cancelTouchScale(e){window.removeEventListener("touchmove",this.touchScale)},moveImg(e){if(e.preventDefault(),e.touches&&2===e.touches.length)return this.touches=e.touches,window.addEventListener("touchmove",this.touchScale),window.addEventListener("touchend",this.cancelTouchScale),window.removeEventListener("touchmove",this.moveImg),!1;let t,i,r="clientX"in e?e.clientX:e.touches[0].clientX,s="clientY"in e?e.clientY:e.touches[0].clientY;t=r-this.moveX,i=s-this.moveY,this.$nextTick(()=>{if(this.centerBox){let e,r,s,o,n=this.getImgAxis(t,i,this.scale),h=this.getCropAxis(),a=this.trueHeight*this.scale,c=this.trueWidth*this.scale;switch(this.rotate){case 1:case-1:case 3:case-3:e=this.cropOffsertX-this.trueWidth*(1-this.scale)/2+(a-c)/2,r=this.cropOffsertY-this.trueHeight*(1-this.scale)/2+(c-a)/2,s=e-a+this.cropW,o=r-c+this.cropH;break;default:e=this.cropOffsertX-this.trueWidth*(1-this.scale)/2,r=this.cropOffsertY-this.trueHeight*(1-this.scale)/2,s=e-c+this.cropW,o=r-a+this.cropH;break}n.x1>=h.x1&&(t=e),n.y1>=h.y1&&(i=r),n.x2<=h.x2&&(t=s),n.y2<=h.y2&&(i=o)}this.x=t,this.y=i,this.$emit("imgMoving",{moving:!0,axis:this.getImgAxis()}),this.$emit("img-moving",{moving:!0,axis:this.getImgAxis()})})},leaveImg(e){window.removeEventListener("mousemove",this.moveImg),window.removeEventListener("touchmove",this.moveImg),window.removeEventListener("mouseup",this.leaveImg),window.removeEventListener("touchend",this.leaveImg),this.$emit("imgMoving",{moving:!1,axis:this.getImgAxis()}),this.$emit("img-moving",{moving:!1,axis:this.getImgAxis()})},scaleImg(){this.canScale&&window.addEventListener(this.support,this.changeSize,this.passive)},cancelScale(){this.canScale&&window.removeEventListener(this.support,this.changeSize)},changeSize(e){e.preventDefault();let t=this.scale;var i=e.deltaY||e.wheelDelta,r=navigator.userAgent.indexOf("Firefox");i=r>0?30*i:i,this.isIE&&(i=-i);var s=this.coe;s=s/this.trueWidth>s/this.trueHeight?s/this.trueHeight:s/this.trueWidth;var o=s*i;o<0?t+=Math.abs(o):t>Math.abs(o)&&(t-=Math.abs(o));let n=o<0?"add":"reduce";if(n!==this.coeStatus&&(this.coeStatus=n,this.coe=.2),this.scaling||(this.scalingSet=setTimeout(()=>{this.scaling=!1,this.coe=this.coe+=.01},50)),this.scaling=!0,!this.checkoutImgAxis(this.x,this.y,t))return!1;this.scale=t},changeScale(e){let t=this.scale;e=e||1;var i=20;if(i=i/this.trueWidth>i/this.trueHeight?i/this.trueHeight:i/this.trueWidth,e*=i,e>0?t+=Math.abs(e):t>Math.abs(e)&&(t-=Math.abs(e)),!this.checkoutImgAxis(this.x,this.y,t))return!1;this.scale=t},createCrop(e){e.preventDefault();var t="clientX"in e?e.clientX:e.touches?e.touches[0].clientX:0,i="clientY"in e?e.clientY:e.touches?e.touches[0].clientY:0;this.$nextTick(()=>{var e=t-this.cropX,r=i-this.cropY;if(e>0?(this.cropW=e+this.cropChangeX>this.w?this.w-this.cropChangeX:e,this.cropOffsertX=this.cropChangeX):(this.cropW=this.w-this.cropChangeX+Math.abs(e)>this.w?this.cropChangeX:Math.abs(e),this.cropOffsertX=this.cropChangeX+e>0?this.cropChangeX+e:0),this.fixed){var s=this.cropW/this.fixedNumber[0]*this.fixedNumber[1];s+this.cropOffsertY>this.h?(this.cropH=this.h-this.cropOffsertY,this.cropW=this.cropH/this.fixedNumber[1]*this.fixedNumber[0],this.cropOffsertX=e>0?this.cropChangeX:this.cropChangeX-this.cropW):this.cropH=s,this.cropOffsertY=this.cropOffsertY}else r>0?(this.cropH=r+this.cropChangeY>this.h?this.h-this.cropChangeY:r,this.cropOffsertY=this.cropChangeY):(this.cropH=this.h-this.cropChangeY+Math.abs(r)>this.h?this.cropChangeY:Math.abs(r),this.cropOffsertY=this.cropChangeY+r>0?this.cropChangeY+r:0)})},changeCropSize(e,t,i,r,s){e.preventDefault(),window.addEventListener("mousemove",this.changeCropNow),window.addEventListener("mouseup",this.changeCropEnd),window.addEventListener("touchmove",this.changeCropNow),window.addEventListener("touchend",this.changeCropEnd),this.canChangeX=t,this.canChangeY=i,this.changeCropTypeX=r,this.changeCropTypeY=s,this.cropX="clientX"in e?e.clientX:e.touches[0].clientX,this.cropY="clientY"in e?e.clientY:e.touches[0].clientY,this.cropOldW=this.cropW,this.cropOldH=this.cropH,this.cropChangeX=this.cropOffsertX,this.cropChangeY=this.cropOffsertY,this.fixed&&this.canChangeX&&this.canChangeY&&(this.canChangeY=0),this.$emit("change-crop-size",{width:this.cropW,height:this.cropH})},changeCropNow(e){e.preventDefault();var t="clientX"in e?e.clientX:e.touches?e.touches[0].clientX:0,i="clientY"in e?e.clientY:e.touches?e.touches[0].clientY:0;let r=this.w,s=this.h,o=0,n=0;if(this.centerBox){let e=this.getImgAxis(),t=e.x2,i=e.y2;o=e.x1>0?e.x1:0,n=e.y1>0?e.y1:0,r>t&&(r=t),s>i&&(s=i)}this.$nextTick(()=>{var e=t-this.cropX,h=i-this.cropY;if(this.canChangeX&&(1===this.changeCropTypeX?this.cropOldW-e>0?(this.cropW=r-this.cropChangeX-e<=r-o?this.cropOldW-e:this.cropOldW+this.cropChangeX-o,this.cropOffsertX=r-this.cropChangeX-e<=r-o?this.cropChangeX+e:o):(this.cropW=Math.abs(e)+this.cropChangeX<=r?Math.abs(e)-this.cropOldW:r-this.cropOldW-this.cropChangeX,this.cropOffsertX=this.cropChangeX+this.cropOldW):2===this.changeCropTypeX&&(this.cropOldW+e>0?(this.cropW=this.cropOldW+e+this.cropOffsertX<=r?this.cropOldW+e:r-this.cropOffsertX,this.cropOffsertX=this.cropChangeX):(this.cropW=r-this.cropChangeX+Math.abs(e+this.cropOldW)<=r-o?Math.abs(e+this.cropOldW):this.cropChangeX-o,this.cropOffsertX=r-this.cropChangeX+Math.abs(e+this.cropOldW)<=r-o?this.cropChangeX-Math.abs(e+this.cropOldW):o))),this.canChangeY&&(1===this.changeCropTypeY?this.cropOldH-h>0?(this.cropH=s-this.cropChangeY-h<=s-n?this.cropOldH-h:this.cropOldH+this.cropChangeY-n,this.cropOffsertY=s-this.cropChangeY-h<=s-n?this.cropChangeY+h:n):(this.cropH=Math.abs(h)+this.cropChangeY<=s?Math.abs(h)-this.cropOldH:s-this.cropOldH-this.cropChangeY,this.cropOffsertY=this.cropChangeY+this.cropOldH):2===this.changeCropTypeY&&(this.cropOldH+h>0?(this.cropH=this.cropOldH+h+this.cropOffsertY<=s?this.cropOldH+h:s-this.cropOffsertY,this.cropOffsertY=this.cropChangeY):(this.cropH=s-this.cropChangeY+Math.abs(h+this.cropOldH)<=s-n?Math.abs(h+this.cropOldH):this.cropChangeY-n,this.cropOffsertY=s-this.cropChangeY+Math.abs(h+this.cropOldH)<=s-n?this.cropChangeY-Math.abs(h+this.cropOldH):n))),this.canChangeX&&this.fixed){var a=this.cropW/this.fixedNumber[0]*this.fixedNumber[1];a+this.cropOffsertY>s?(this.cropH=s-this.cropOffsertY,this.cropW=this.cropH/this.fixedNumber[1]*this.fixedNumber[0]):this.cropH=a}if(this.canChangeY&&this.fixed){var c=this.cropH/this.fixedNumber[1]*this.fixedNumber[0];c+this.cropOffsertX>r?(this.cropW=r-this.cropOffsertX,this.cropH=this.cropW/this.fixedNumber[0]*this.fixedNumber[1]):this.cropW=c}})},checkCropLimitSize(){let{cropW:e,cropH:t,limitMinSize:i}=this,r=new Array;return r=Array.isArray[i]?i:[i,i],e=parseFloat(r[0]),t=parseFloat(r[1]),[e,t]},changeCropEnd(e){window.removeEventListener("mousemove",this.changeCropNow),window.removeEventListener("mouseup",this.changeCropEnd),window.removeEventListener("touchmove",this.changeCropNow),window.removeEventListener("touchend",this.changeCropEnd)},endCrop(){0===this.cropW&&0===this.cropH&&(this.cropping=!1),window.removeEventListener("mousemove",this.createCrop),window.removeEventListener("mouseup",this.endCrop),window.removeEventListener("touchmove",this.createCrop),window.removeEventListener("touchend",this.endCrop)},startCrop(){this.crop=!0},stopCrop(){this.crop=!1},clearCrop(){this.cropping=!1,this.cropW=0,this.cropH=0},cropMove(e){if(e.preventDefault(),!this.canMoveBox)return this.crop=!1,this.startMove(e),!1;if(e.touches&&2===e.touches.length)return this.crop=!1,this.startMove(e),this.leaveCrop(),!1;window.addEventListener("mousemove",this.moveCrop),window.addEventListener("mouseup",this.leaveCrop),window.addEventListener("touchmove",this.moveCrop),window.addEventListener("touchend",this.leaveCrop);let t,i,r="clientX"in e?e.clientX:e.touches[0].clientX,s="clientY"in e?e.clientY:e.touches[0].clientY;t=r-this.cropOffsertX,i=s-this.cropOffsertY,this.cropX=t,this.cropY=i,this.$emit("cropMoving",{moving:!0,axis:this.getCropAxis()}),this.$emit("crop-moving",{moving:!0,axis:this.getCropAxis()})},moveCrop(e,t){let i=0,r=0;e&&(e.preventDefault(),i="clientX"in e?e.clientX:e.touches[0].clientX,r="clientY"in e?e.clientY:e.touches[0].clientY),this.$nextTick(()=>{let e,s,o=i-this.cropX,n=r-this.cropY;if(t&&(o=this.cropOffsertX,n=this.cropOffsertY),e=o<=0?0:o+this.cropW>this.w?this.w-this.cropW:o,s=n<=0?0:n+this.cropH>this.h?this.h-this.cropH:n,this.centerBox){let t=this.getImgAxis();e<=t.x1&&(e=t.x1),e+this.cropW>t.x2&&(e=t.x2-this.cropW),s<=t.y1&&(s=t.y1),s+this.cropH>t.y2&&(s=t.y2-this.cropH)}this.cropOffsertX=e,this.cropOffsertY=s,this.$emit("cropMoving",{moving:!0,axis:this.getCropAxis()}),this.$emit("crop-moving",{moving:!0,axis:this.getCropAxis()})})},getImgAxis(e,t,i){e=e||this.x,t=t||this.y,i=i||this.scale;let r={x1:0,x2:0,y1:0,y2:0},s=this.trueWidth*i,o=this.trueHeight*i;switch(this.rotate){case 0:r.x1=e+this.trueWidth*(1-i)/2,r.x2=r.x1+this.trueWidth*i,r.y1=t+this.trueHeight*(1-i)/2,r.y2=r.y1+this.trueHeight*i;break;case 1:case-1:case 3:case-3:r.x1=e+this.trueWidth*(1-i)/2+(s-o)/2,r.x2=r.x1+this.trueHeight*i,r.y1=t+this.trueHeight*(1-i)/2+(o-s)/2,r.y2=r.y1+this.trueWidth*i;break;default:r.x1=e+this.trueWidth*(1-i)/2,r.x2=r.x1+this.trueWidth*i,r.y1=t+this.trueHeight*(1-i)/2,r.y2=r.y1+this.trueHeight*i;break}return r},getCropAxis(){let e={x1:0,x2:0,y1:0,y2:0};return e.x1=this.cropOffsertX,e.x2=e.x1+this.cropW,e.y1=this.cropOffsertY,e.y2=e.y1+this.cropH,e},leaveCrop(e){window.removeEventListener("mousemove",this.moveCrop),window.removeEventListener("mouseup",this.leaveCrop),window.removeEventListener("touchmove",this.moveCrop),window.removeEventListener("touchend",this.leaveCrop),this.$emit("cropMoving",{moving:!1,axis:this.getCropAxis()}),this.$emit("crop-moving",{moving:!1,axis:this.getCropAxis()})},getCropChecked(e){let t=document.createElement("canvas"),i=new Image,r=this.rotate,s=this.trueWidth,o=this.trueHeight,n=this.cropOffsertX,h=this.cropOffsertY;i.onload=()=>{if(0!==this.cropW){let e=t.getContext("2d"),a=1;this.high&!this.full&&(a=window.devicePixelRatio),1!==this.enlarge&!this.full&&(a=Math.abs(Number(this.enlarge)));let l=this.cropW*a,u=this.cropH*a,p=s*this.scale*a,f=o*this.scale*a,d=(this.x-n+this.trueWidth*(1-this.scale)/2)*a,g=(this.y-h+this.trueHeight*(1-this.scale)/2)*a;switch(c(l,u),e.save(),r){case 0:this.full?(c(l/this.scale,u/this.scale),e.drawImage(i,d/this.scale,g/this.scale,p/this.scale,f/this.scale)):e.drawImage(i,d,g,p,f);break;case 1:case-3:this.full?(c(l/this.scale,u/this.scale),d=d/this.scale+(p/this.scale-f/this.scale)/2,g=g/this.scale+(f/this.scale-p/this.scale)/2,e.rotate(90*r*Math.PI/180),e.drawImage(i,g,-d-f/this.scale,p/this.scale,f/this.scale)):(d+=(p-f)/2,g+=(f-p)/2,e.rotate(90*r*Math.PI/180),e.drawImage(i,g,-d-f,p,f));break;case 2:case-2:this.full?(c(l/this.scale,u/this.scale),e.rotate(90*r*Math.PI/180),d/=this.scale,g/=this.scale,e.drawImage(i,-d-p/this.scale,-g-f/this.scale,p/this.scale,f/this.scale)):(e.rotate(90*r*Math.PI/180),e.drawImage(i,-d-p,-g-f,p,f));break;case 3:case-1:this.full?(c(l/this.scale,u/this.scale),d=d/this.scale+(p/this.scale-f/this.scale)/2,g=g/this.scale+(f/this.scale-p/this.scale)/2,e.rotate(90*r*Math.PI/180),e.drawImage(i,-g-p/this.scale,d,p/this.scale,f/this.scale)):(d+=(p-f)/2,g+=(f-p)/2,e.rotate(90*r*Math.PI/180),e.drawImage(i,-g-p,d,p,f));break;default:this.full?(c(l/this.scale,u/this.scale),e.drawImage(i,d/this.scale,g/this.scale,p/this.scale,f/this.scale)):e.drawImage(i,d,g,p,f)}e.restore()}else{let e=s*this.scale,n=o*this.scale,h=t.getContext("2d");switch(h.save(),r){case 0:c(e,n),h.drawImage(i,0,0,e,n);break;case 1:case-3:c(n,e),h.rotate(90*r*Math.PI/180),h.drawImage(i,0,-n,e,n);break;case 2:case-2:c(e,n),h.rotate(90*r*Math.PI/180),h.drawImage(i,-e,-n,e,n);break;case 3:case-1:c(n,e),h.rotate(90*r*Math.PI/180),h.drawImage(i,-e,0,e,n);break;default:c(e,n),h.drawImage(i,0,0,e,n)}h.restore()}e(t)};var a=this.img.substr(0,4);function c(e,i){t.width=Math.round(e),t.height=Math.round(i)}"data"!==a&&(i.crossOrigin="Anonymous"),i.src=this.imgs},getCropData(e){this.getCropChecked(t=>{e(t.toDataURL("image/"+this.outputType,this.outputSize))})},getCropBlob(e){this.getCropChecked(t=>{t.toBlob(t=>e(t),"image/"+this.outputType,this.outputSize)})},showPreview(){if(!this.isCanShow)return!1;this.isCanShow=!1,setTimeout(()=>{this.isCanShow=!0},16);let e=this.cropW,t=this.cropH,i=this.scale;var r={};r.div={width:e+"px",height:t+"px"};let s=(this.x-this.cropOffsertX)/i,o=(this.y-this.cropOffsertY)/i,n=0;r.w=e,r.h=t,r.url=this.imgs,r.img={width:this.trueWidth+"px",height:this.trueHeight+"px",transform:`scale(${i})translate3d(${s}px, ${o}px, ${n}px)rotateZ(${90*this.rotate}deg)`},r.html=`\n \n
\n

\n
\n
`,this.$emit("realTime",r),this.$emit("real-time",r)},reload(){let e=new Image;e.onload=()=>{this.w=parseFloat(window.getComputedStyle(this.$refs.cropper).width),this.h=parseFloat(window.getComputedStyle(this.$refs.cropper).height),this.trueWidth=e.width,this.trueHeight=e.height,this.original?this.scale=1:this.scale=this.checkedMode(),this.$nextTick(()=>{this.x=-(this.trueWidth-this.trueWidth*this.scale)/2+(this.w-this.trueWidth*this.scale)/2,this.y=-(this.trueHeight-this.trueHeight*this.scale)/2+(this.h-this.trueHeight*this.scale)/2,this.loading=!1,this.autoCrop&&this.goAutoCrop(),this.$emit("img-load","success"),this.$emit("imgLoad","success"),setTimeout(()=>{this.showPreview()},20)})},e.onerror=()=>{this.$emit("imgLoad","error"),this.$emit("img-load","error")},e.src=this.imgs},checkedMode(){let e=1,t=this.trueWidth,i=this.trueHeight;const r=this.mode.split(" ");switch(r[0]){case"contain":this.trueWidth>this.w&&(e=this.w/this.trueWidth),this.trueHeight*e>this.h&&(e=this.h/this.trueHeight);break;case"cover":t=this.w,e=t/this.trueWidth,i*=e,i0;let t=(e?this.trueHeight:this.trueWidth)*this.scale,s=(e?this.trueWidth:this.trueHeight)*this.scale;i=ti?i:s,o=o>r?r:o,this.fixed&&(o=s/this.fixedNumber[0]*this.fixedNumber[1]),o>this.h&&(o=this.h,s=o/this.fixedNumber[1]*this.fixedNumber[0]),this.changeCrop(s,o)},changeCrop(e,t){if(this.centerBox){let i=this.getImgAxis();e>i.x2-i.x1&&(e=i.x2-i.x1,t=e/this.fixedNumber[0]*this.fixedNumber[1]),t>i.y2-i.y1&&(t=i.y2-i.y1,e=t/this.fixedNumber[1]*this.fixedNumber[0])}this.cropW=e,this.cropH=t,this.checkCropLimitSize(),this.$nextTick(()=>{this.cropOffsertX=(this.w-this.cropW)/2,this.cropOffsertY=(this.h-this.cropH)/2,this.centerBox&&this.moveCrop(null,!0)})},refresh(){this.img,this.imgs="",this.scale=1,this.crop=!1,this.rotate=0,this.w=0,this.h=0,this.trueWidth=0,this.trueHeight=0,this.clearCrop(),this.$nextTick(()=>{this.checkedImg()})},rotateLeft(){this.rotate=this.rotate<=-3?0:this.rotate-1},rotateRight(){this.rotate=this.rotate>=3?0:this.rotate+1},rotateClear(){this.rotate=0},checkoutImgAxis(e,t,i){e=e||this.x,t=t||this.y,i=i||this.scale;let r=!0;if(this.centerBox){let s=this.getImgAxis(e,t,i),o=this.getCropAxis();s.x1>=o.x1&&(r=!1),s.x2<=o.x2&&(r=!1),s.y1>=o.y1&&(r=!1),s.y2<=o.y2&&(r=!1)}return r}},mounted(){this.support="onwheel"in document.createElement("div")?"wheel":void 0!==document.onmousewheel?"mousewheel":"DOMMouseScroll";let e=this;var t=navigator.userAgent;this.isIOS=!!t.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/),HTMLCanvasElement.prototype.toBlob||Object.defineProperty(HTMLCanvasElement.prototype,"toBlob",{value:function(t,i,r){for(var s=atob(this.toDataURL(i,r).split(",")[1]),o=s.length,n=new Uint8Array(o),h=0;he.scaleImg&&e.scaleImg(...t)),onMouseout:t[29]||(t[29]=(...t)=>e.cancelScale&&e.cancelScale(...t))},[e.imgs?(Object(s["openBlock"])(),Object(s["createElementBlock"])("div",f,[Object(s["withDirectives"])(Object(s["createElementVNode"])("div",{class:"cropper-box-canvas",style:Object(s["normalizeStyle"])({width:e.trueWidth+"px",height:e.trueHeight+"px",transform:"scale("+e.scale+","+e.scale+") translate3d("+e.x/e.scale+"px,"+e.y/e.scale+"px,0)rotateZ("+90*e.rotate+"deg)"})},[Object(s["createElementVNode"])("img",{src:e.imgs,alt:"cropper-img",ref:"cropperImg"},null,8,d)],4),[[s["vShow"],!e.loading]])])):Object(s["createCommentVNode"])("",!0),Object(s["createElementVNode"])("div",{class:Object(s["normalizeClass"])(["cropper-drag-box",{"cropper-move":e.move&&!e.crop,"cropper-crop":e.crop,"cropper-modal":e.cropping}]),onMousedown:t[0]||(t[0]=(...t)=>e.startMove&&e.startMove(...t)),onTouchstart:t[1]||(t[1]=(...t)=>e.startMove&&e.startMove(...t))},null,34),Object(s["withDirectives"])(Object(s["createElementVNode"])("div",{class:"cropper-crop-box",style:Object(s["normalizeStyle"])({width:e.cropW+"px",height:e.cropH+"px",transform:"translate3d("+e.cropOffsertX+"px,"+e.cropOffsertY+"px,0)"})},[Object(s["createElementVNode"])("span",g,[Object(s["createElementVNode"])("img",{style:Object(s["normalizeStyle"])({width:e.trueWidth+"px",height:e.trueHeight+"px",transform:"scale("+e.scale+","+e.scale+") translate3d("+(e.x-e.cropOffsertX)/e.scale+"px,"+(e.y-e.cropOffsertY)/e.scale+"px,0)rotateZ("+90*e.rotate+"deg)"}),src:e.imgs,alt:"cropper-img"},null,12,m)]),Object(s["createElementVNode"])("span",{class:"cropper-face cropper-move",onMousedown:t[2]||(t[2]=(...t)=>e.cropMove&&e.cropMove(...t)),onTouchstart:t[3]||(t[3]=(...t)=>e.cropMove&&e.cropMove(...t))},null,32),e.info?(Object(s["openBlock"])(),Object(s["createElementBlock"])("span",{key:0,class:"crop-info",style:Object(s["normalizeStyle"])({top:e.cropInfo.top})},Object(s["toDisplayString"])(e.cropInfo.width)+" × "+Object(s["toDisplayString"])(e.cropInfo.height),5)):Object(s["createCommentVNode"])("",!0),e.fixedBox?Object(s["createCommentVNode"])("",!0):(Object(s["openBlock"])(),Object(s["createElementBlock"])("span",v,[Object(s["createElementVNode"])("span",{class:"crop-line line-w",onMousedown:t[4]||(t[4]=t=>e.changeCropSize(t,!1,!0,0,1)),onTouchstart:t[5]||(t[5]=t=>e.changeCropSize(t,!1,!0,0,1))},null,32),Object(s["createElementVNode"])("span",{class:"crop-line line-a",onMousedown:t[6]||(t[6]=t=>e.changeCropSize(t,!0,!1,1,0)),onTouchstart:t[7]||(t[7]=t=>e.changeCropSize(t,!0,!1,1,0))},null,32),Object(s["createElementVNode"])("span",{class:"crop-line line-s",onMousedown:t[8]||(t[8]=t=>e.changeCropSize(t,!1,!0,0,2)),onTouchstart:t[9]||(t[9]=t=>e.changeCropSize(t,!1,!0,0,2))},null,32),Object(s["createElementVNode"])("span",{class:"crop-line line-d",onMousedown:t[10]||(t[10]=t=>e.changeCropSize(t,!0,!1,2,0)),onTouchstart:t[11]||(t[11]=t=>e.changeCropSize(t,!0,!1,2,0))},null,32),Object(s["createElementVNode"])("span",{class:"crop-point point1",onMousedown:t[12]||(t[12]=t=>e.changeCropSize(t,!0,!0,1,1)),onTouchstart:t[13]||(t[13]=t=>e.changeCropSize(t,!0,!0,1,1))},null,32),Object(s["createElementVNode"])("span",{class:"crop-point point2",onMousedown:t[14]||(t[14]=t=>e.changeCropSize(t,!1,!0,0,1)),onTouchstart:t[15]||(t[15]=t=>e.changeCropSize(t,!1,!0,0,1))},null,32),Object(s["createElementVNode"])("span",{class:"crop-point point3",onMousedown:t[16]||(t[16]=t=>e.changeCropSize(t,!0,!0,2,1)),onTouchstart:t[17]||(t[17]=t=>e.changeCropSize(t,!0,!0,2,1))},null,32),Object(s["createElementVNode"])("span",{class:"crop-point point4",onMousedown:t[18]||(t[18]=t=>e.changeCropSize(t,!0,!1,1,0)),onTouchstart:t[19]||(t[19]=t=>e.changeCropSize(t,!0,!1,1,0))},null,32),Object(s["createElementVNode"])("span",{class:"crop-point point5",onMousedown:t[20]||(t[20]=t=>e.changeCropSize(t,!0,!1,2,0)),onTouchstart:t[21]||(t[21]=t=>e.changeCropSize(t,!0,!1,2,0))},null,32),Object(s["createElementVNode"])("span",{class:"crop-point point6",onMousedown:t[22]||(t[22]=t=>e.changeCropSize(t,!0,!0,1,2)),onTouchstart:t[23]||(t[23]=t=>e.changeCropSize(t,!0,!0,1,2))},null,32),Object(s["createElementVNode"])("span",{class:"crop-point point7",onMousedown:t[24]||(t[24]=t=>e.changeCropSize(t,!1,!0,0,2)),onTouchstart:t[25]||(t[25]=t=>e.changeCropSize(t,!1,!0,0,2))},null,32),Object(s["createElementVNode"])("span",{class:"crop-point point8",onMousedown:t[26]||(t[26]=t=>e.changeCropSize(t,!0,!0,2,2)),onTouchstart:t[27]||(t[27]=t=>e.changeCropSize(t,!0,!0,2,2))},null,32)]))],4),[[s["vShow"],e.cropping]])],544)}var b=u(p,[["render",w],["__scopeId","data-v-be5e5ddc"]]);"undefined"!==typeof window&&window.Vue&&window.Vue.createApp({}).component("VueCropper",b);var x=i("17d15"),y=i.n(x),C=i("3ef4"),O=function(e){return Object(s["pushScopeId"])("data-v-901cf5cc"),e=e(),Object(s["popScopeId"])(),e},j={class:"m-cropper"},S={class:"left"},k={class:"cropper-content"},H=Object(s["createTextVNode"])("放大"),M=Object(s["createTextVNode"])("缩小"),L=Object(s["createTextVNode"])("向左旋转"),E=Object(s["createTextVNode"])("向右旋转"),X=Object(s["createTextVNode"])("清除"),Y=Object(s["createTextVNode"])("获取结果"),I=Object(s["createTextVNode"])("下载图片"),W=Object(s["createTextVNode"])("选择上传图片"),N=O((function(){return Object(s["createElementVNode"])("h4",{style:{"margin-top":"10px"}},"实时预览",-1)})),P=["src"],U=O((function(){return Object(s["createElementVNode"])("h4",{style:{"margin-top":"10px"}},"获取结果",-1)})),B={style:{background:"#ccc",width:"100px",height:"100px"}},R=["src"],A=Object(s["defineComponent"])({setup:function(e){var t=this,i=Object(s["ref"])(),o=Object(s["reactive"])({img:y.a,size:1,full:!1,outputType:"png",canMove:!0,fixed:!0,info:!0,outputSize:.8,fixedBox:!1,original:!1,canMoveBox:!0,autoCrop:!0,autoCropWidth:300,autoCropHeight:300,centerBox:!1,high:!0,max:99999,previews:{url:""},cropImg:""}),n=function(e){o.previews=e},h=function(e){i.value.changeScale(e)},a=function(){i.value.rotateLeft()},c=function(){i.value.rotateRight()},l=function(e){var r=document.createElement("a");r.download="demo","blob"===e?t.$refs.cropper.getCropBlob((function(e){r.href=window.URL.createObjectURL(e),r.click()})):i.value.getCropData((function(e){r.href=e,r.click()}))},u=function(){i.value.getCropData((function(e){o.cropImg=e}))},p=function(){o.img="",o.cropImg=""},f=function(e,t){return new Promise((function(t,i){var s=new FileReader,n=/\.jpg$|\.jpeg$|\.gif$|\.png$/i;s.readAsDataURL(e);var h=e.name;n.test(h)?s.onload=function(e){var i;i="object"===r(e.target.result)?window.URL.createObjectURL(new Blob([e.target.result])):e.target.result,t(e.target.result),o.imgSrc=i,o.img=i}:(C["a"].error("请上传图片"),i())}))};return function(e,t){var r=Object(s["resolveComponent"])("el-button"),d=Object(s["resolveComponent"])("el-upload");return Object(s["openBlock"])(),Object(s["createElementBlock"])("div",j,[Object(s["createElementVNode"])("div",S,[Object(s["createElementVNode"])("div",k,[Object(s["createVNode"])(Object(s["unref"])(b),{ref_key:"cropper",ref:i,img:Object(s["unref"])(o).img,"output-size":Object(s["unref"])(o).size,"output-type":Object(s["unref"])(o).outputType,info:!0,full:Object(s["unref"])(o).full,fixed:Object(s["unref"])(o).fixed,"fixed-number":Object(s["unref"])(o).fixedNumber,"can-move":Object(s["unref"])(o).canMove,"can-move-box":Object(s["unref"])(o).canMoveBox,autoCropWidth:Object(s["unref"])(o).autoCropWidth,autoCropHeight:Object(s["unref"])(o).autoCropHeight,"fixed-box":Object(s["unref"])(o).fixedBox,"auto-crop":Object(s["unref"])(o).autoCrop,"auto-crop-height":Object(s["unref"])(o).autoCropHeight,"center-box":Object(s["unref"])(o).centerBox,onRealTime:n},null,8,["img","output-size","output-type","full","fixed","fixed-number","can-move","can-move-box","autoCropWidth","autoCropHeight","fixed-box","auto-crop","auto-crop-height","center-box"])]),Object(s["createVNode"])(r,{type:"primary",onClick:t[0]||(t[0]=Object(s["withModifiers"])((function(e){return h(1)}),["prevent"]))},{default:Object(s["withCtx"])((function(){return[H]})),_:1}),Object(s["createVNode"])(r,{type:"primary",onClick:t[1]||(t[1]=Object(s["withModifiers"])((function(e){return h(-1)}),["prevent"]))},{default:Object(s["withCtx"])((function(){return[M]})),_:1}),Object(s["createVNode"])(r,{type:"primary",onClick:Object(s["withModifiers"])(a,["prevent"])},{default:Object(s["withCtx"])((function(){return[L]})),_:1},8,["onClick"]),Object(s["createVNode"])(r,{type:"primary",onClick:Object(s["withModifiers"])(c,["prevent"])},{default:Object(s["withCtx"])((function(){return[E]})),_:1},8,["onClick"]),Object(s["createVNode"])(r,{type:"primary",onClick:Object(s["withModifiers"])(p,["prevent"])},{default:Object(s["withCtx"])((function(){return[X]})),_:1},8,["onClick"]),Object(s["createVNode"])(r,{type:"primary",onClick:Object(s["withModifiers"])(u,["prevent"])},{default:Object(s["withCtx"])((function(){return[Y]})),_:1},8,["onClick"]),Object(s["createVNode"])(r,{type:"primary",onClick:t[2]||(t[2]=Object(s["withModifiers"])((function(e){return l("base64")}),["prevent"]))},{default:Object(s["withCtx"])((function(){return[I]})),_:1}),Object(s["createVNode"])(d,{class:"upload-demo","show-file-list":!1,action:"","before-upload":f},{default:Object(s["withCtx"])((function(){return[Object(s["createVNode"])(r,{type:"primary"},{default:Object(s["withCtx"])((function(){return[W]})),_:1})]})),_:1})]),Object(s["createElementVNode"])("div",null,[N,Object(s["createElementVNode"])("div",{class:"show-preview",style:Object(s["normalizeStyle"])({width:Object(s["unref"])(o).previews.w+"px",height:Object(s["unref"])(o).previews.h+"px",overflow:"hidden",margin:"5px"})},[Object(s["createElementVNode"])("div",{style:Object(s["normalizeStyle"])(Object(s["unref"])(o).previews.div)},[Object(s["createElementVNode"])("img",{src:Object(s["unref"])(o).previews.url,style:Object(s["normalizeStyle"])(Object(s["unref"])(o).previews.img)},null,12,P)],4)],4),U,Object(s["createElementVNode"])("div",B,[Object(s["unref"])(o).cropImg?(Object(s["openBlock"])(),Object(s["createElementBlock"])("img",{key:0,src:Object(s["unref"])(o).cropImg,style:{width:"100%",height:"100%"}},null,8,R)):Object(s["createCommentVNode"])("",!0)])])])}}}),T=(i("5ff5"),i("6b0d")),z=i.n(T);const V=z()(A,[["__scopeId","data-v-901cf5cc"]]);t["default"]=V},"21ba":function(e,t,i){},"2b3d":function(e,t,i){"use strict";i("3ca3");var r,s=i("23e7"),o=i("83ab"),n=i("0d3b"),h=i("da84"),a=i("0366"),c=i("e330"),l=i("37e8").f,u=i("6eeb"),p=i("19aa"),f=i("1a2d"),d=i("60da"),g=i("4df4"),m=i("4dae"),v=i("6547").codeAt,w=i("5fb2"),b=i("577e"),x=i("d44e"),y=i("d6d6"),C=i("9861"),O=i("69f3"),j=O.set,S=O.getterFor("URL"),k=C.URLSearchParams,H=C.getState,M=h.URL,L=h.TypeError,E=h.parseInt,X=Math.floor,Y=Math.pow,I=c("".charAt),W=c(/./.exec),N=c([].join),P=c(1..toString),U=c([].pop),B=c([].push),R=c("".replace),A=c([].shift),T=c("".split),z=c("".slice),V=c("".toLowerCase),$=c([].unshift),q="Invalid authority",D="Invalid scheme",F="Invalid host",_="Invalid port",J=/[a-z]/i,Z=/[\d+-.a-z]/i,G=/\d/,Q=/^0x/i,K=/^[0-7]+$/,ee=/^\d+$/,te=/^[\da-f]+$/i,ie=/[\0\t\n\r #%/:<>?@[\\\]^|]/,re=/[\0\t\n\r #/:<>?@[\\\]^|]/,se=/^[\u0000-\u0020]+|[\u0000-\u0020]+$/g,oe=/[\t\n\r]/g,ne=function(e){var t,i,r,s,o,n,h,a=T(e,".");if(a.length&&""==a[a.length-1]&&a.length--,t=a.length,t>4)return e;for(i=[],r=0;r1&&"0"==I(s,0)&&(o=W(Q,s)?16:8,s=z(s,8==o?1:2)),""===s)n=0;else{if(!W(10==o?ee:8==o?K:te,s))return e;n=E(s,o)}B(i,n)}for(r=0;r=Y(256,5-t))return null}else if(n>255)return null;for(h=U(i),r=0;r6)return;r=0;while(p()){if(s=null,r>0){if(!("."==p()&&r<4))return;u++}if(!W(G,p()))return;while(W(G,p())){if(o=E(p(),10),null===s)s=o;else{if(0==s)return;s=10*s+o}if(s>255)return;u++}a[c]=256*a[c]+s,r++,2!=r&&4!=r||c++}if(4!=r)return;break}if(":"==p()){if(u++,!p())return}else if(p())return;a[c++]=t}else{if(null!==l)return;u++,c++,l=c}}if(null!==l){n=c-l,c=7;while(0!=c&&n>0)h=a[c],a[c--]=a[l+n-1],a[l+--n]=h}else if(8!=c)return;return a},ae=function(e){for(var t=null,i=1,r=null,s=0,o=0;o<8;o++)0!==e[o]?(s>i&&(t=r,i=s),r=null,s=0):(null===r&&(r=o),++s);return s>i&&(t=r,i=s),t},ce=function(e){var t,i,r,s;if("number"==typeof e){for(t=[],i=0;i<4;i++)$(t,e%256),e=X(e/256);return N(t,".")}if("object"==typeof e){for(t="",r=ae(e),i=0;i<8;i++)s&&0===e[i]||(s&&(s=!1),r===i?(t+=i?":":"::",s=!0):(t+=P(e[i],16),i<7&&(t+=":")));return"["+t+"]"}return e},le={},ue=d({},le,{" ":1,'"':1,"<":1,">":1,"`":1}),pe=d({},ue,{"#":1,"?":1,"{":1,"}":1}),fe=d({},pe,{"/":1,":":1,";":1,"=":1,"@":1,"[":1,"\\":1,"]":1,"^":1,"|":1}),de=function(e,t){var i=v(e,0);return i>32&&i<127&&!f(t,e)?e:encodeURIComponent(e)},ge={ftp:21,file:null,http:80,https:443,ws:80,wss:443},me=function(e,t){var i;return 2==e.length&&W(J,I(e,0))&&(":"==(i=I(e,1))||!t&&"|"==i)},ve=function(e){var t;return e.length>1&&me(z(e,0,2))&&(2==e.length||"/"===(t=I(e,2))||"\\"===t||"?"===t||"#"===t)},we=function(e){return"."===e||"%2e"===V(e)},be=function(e){return e=V(e),".."===e||"%2e."===e||".%2e"===e||"%2e%2e"===e},xe={},ye={},Ce={},Oe={},je={},Se={},ke={},He={},Me={},Le={},Ee={},Xe={},Ye={},Ie={},We={},Ne={},Pe={},Ue={},Be={},Re={},Ae={},Te=function(e,t,i){var r,s,o,n=b(e);if(t){if(s=this.parse(n),s)throw L(s);this.searchParams=null}else{if(void 0!==i&&(r=new Te(i,!0)),s=this.parse(n,null,r),s)throw L(s);o=H(new k),o.bindURL(this),this.searchParams=o}};Te.prototype={type:"URL",parse:function(e,t,i){var s,o,n,h,a=this,c=t||xe,l=0,u="",p=!1,d=!1,v=!1;e=b(e),t||(a.scheme="",a.username="",a.password="",a.host=null,a.port=null,a.path=[],a.query=null,a.fragment=null,a.cannotBeABaseURL=!1,e=R(e,se,"")),e=R(e,oe,""),s=g(e);while(l<=s.length){switch(o=s[l],c){case xe:if(!o||!W(J,o)){if(t)return D;c=Ce;continue}u+=V(o),c=ye;break;case ye:if(o&&(W(Z,o)||"+"==o||"-"==o||"."==o))u+=V(o);else{if(":"!=o){if(t)return D;u="",c=Ce,l=0;continue}if(t&&(a.isSpecial()!=f(ge,u)||"file"==u&&(a.includesCredentials()||null!==a.port)||"file"==a.scheme&&!a.host))return;if(a.scheme=u,t)return void(a.isSpecial()&&ge[a.scheme]==a.port&&(a.port=null));u="","file"==a.scheme?c=Ie:a.isSpecial()&&i&&i.scheme==a.scheme?c=Oe:a.isSpecial()?c=He:"/"==s[l+1]?(c=je,l++):(a.cannotBeABaseURL=!0,B(a.path,""),c=Be)}break;case Ce:if(!i||i.cannotBeABaseURL&&"#"!=o)return D;if(i.cannotBeABaseURL&&"#"==o){a.scheme=i.scheme,a.path=m(i.path),a.query=i.query,a.fragment="",a.cannotBeABaseURL=!0,c=Ae;break}c="file"==i.scheme?Ie:Se;continue;case Oe:if("/"!=o||"/"!=s[l+1]){c=Se;continue}c=Me,l++;break;case je:if("/"==o){c=Le;break}c=Ue;continue;case Se:if(a.scheme=i.scheme,o==r)a.username=i.username,a.password=i.password,a.host=i.host,a.port=i.port,a.path=m(i.path),a.query=i.query;else if("/"==o||"\\"==o&&a.isSpecial())c=ke;else if("?"==o)a.username=i.username,a.password=i.password,a.host=i.host,a.port=i.port,a.path=m(i.path),a.query="",c=Re;else{if("#"!=o){a.username=i.username,a.password=i.password,a.host=i.host,a.port=i.port,a.path=m(i.path),a.path.length--,c=Ue;continue}a.username=i.username,a.password=i.password,a.host=i.host,a.port=i.port,a.path=m(i.path),a.query=i.query,a.fragment="",c=Ae}break;case ke:if(!a.isSpecial()||"/"!=o&&"\\"!=o){if("/"!=o){a.username=i.username,a.password=i.password,a.host=i.host,a.port=i.port,c=Ue;continue}c=Le}else c=Me;break;case He:if(c=Me,"/"!=o||"/"!=I(u,l+1))continue;l++;break;case Me:if("/"!=o&&"\\"!=o){c=Le;continue}break;case Le:if("@"==o){p&&(u="%40"+u),p=!0,n=g(u);for(var w=0;w65535)return _;a.port=a.isSpecial()&&C===ge[a.scheme]?null:C,u=""}if(t)return;c=Pe;continue}return _}u+=o;break;case Ie:if(a.scheme="file","/"==o||"\\"==o)c=We;else{if(!i||"file"!=i.scheme){c=Ue;continue}if(o==r)a.host=i.host,a.path=m(i.path),a.query=i.query;else if("?"==o)a.host=i.host,a.path=m(i.path),a.query="",c=Re;else{if("#"!=o){ve(N(m(s,l),""))||(a.host=i.host,a.path=m(i.path),a.shortenPath()),c=Ue;continue}a.host=i.host,a.path=m(i.path),a.query=i.query,a.fragment="",c=Ae}}break;case We:if("/"==o||"\\"==o){c=Ne;break}i&&"file"==i.scheme&&!ve(N(m(s,l),""))&&(me(i.path[0],!0)?B(a.path,i.path[0]):a.host=i.host),c=Ue;continue;case Ne:if(o==r||"/"==o||"\\"==o||"?"==o||"#"==o){if(!t&&me(u))c=Ue;else if(""==u){if(a.host="",t)return;c=Pe}else{if(h=a.parseHost(u),h)return h;if("localhost"==a.host&&(a.host=""),t)return;u="",c=Pe}continue}u+=o;break;case Pe:if(a.isSpecial()){if(c=Ue,"/"!=o&&"\\"!=o)continue}else if(t||"?"!=o)if(t||"#"!=o){if(o!=r&&(c=Ue,"/"!=o))continue}else a.fragment="",c=Ae;else a.query="",c=Re;break;case Ue:if(o==r||"/"==o||"\\"==o&&a.isSpecial()||!t&&("?"==o||"#"==o)){if(be(u)?(a.shortenPath(),"/"==o||"\\"==o&&a.isSpecial()||B(a.path,"")):we(u)?"/"==o||"\\"==o&&a.isSpecial()||B(a.path,""):("file"==a.scheme&&!a.path.length&&me(u)&&(a.host&&(a.host=""),u=I(u,0)+":"),B(a.path,u)),u="","file"==a.scheme&&(o==r||"?"==o||"#"==o))while(a.path.length>1&&""===a.path[0])A(a.path);"?"==o?(a.query="",c=Re):"#"==o&&(a.fragment="",c=Ae)}else u+=de(o,pe);break;case Be:"?"==o?(a.query="",c=Re):"#"==o?(a.fragment="",c=Ae):o!=r&&(a.path[0]+=de(o,le));break;case Re:t||"#"!=o?o!=r&&("'"==o&&a.isSpecial()?a.query+="%27":a.query+="#"==o?"%23":de(o,le)):(a.fragment="",c=Ae);break;case Ae:o!=r&&(a.fragment+=de(o,ue));break}l++}},parseHost:function(e){var t,i,r;if("["==I(e,0)){if("]"!=I(e,e.length-1))return F;if(t=he(z(e,1,-1)),!t)return F;this.host=t}else if(this.isSpecial()){if(e=w(e),W(ie,e))return F;if(t=ne(e),null===t)return F;this.host=t}else{if(W(re,e))return F;for(t="",i=g(e),r=0;r1?arguments[1]:void 0,r=j(t,new Te(e,!1,i));o||(t.href=r.serialize(),t.origin=r.getOrigin(),t.protocol=r.getProtocol(),t.username=r.getUsername(),t.password=r.getPassword(),t.host=r.getHost(),t.hostname=r.getHostname(),t.port=r.getPort(),t.pathname=r.getPathname(),t.search=r.getSearch(),t.searchParams=r.getSearchParams(),t.hash=r.getHash())},Ve=ze.prototype,$e=function(e,t){return{get:function(){return S(this)[e]()},set:t&&function(e){return S(this)[t](e)},configurable:!0,enumerable:!0}};if(o&&l(Ve,{href:$e("serialize","setHref"),origin:$e("getOrigin"),protocol:$e("getProtocol","setProtocol"),username:$e("getUsername","setUsername"),password:$e("getPassword","setPassword"),host:$e("getHost","setHost"),hostname:$e("getHostname","setHostname"),port:$e("getPort","setPort"),pathname:$e("getPathname","setPathname"),search:$e("getSearch","setSearch"),searchParams:$e("getSearchParams"),hash:$e("getHash","setHash")}),u(Ve,"toJSON",(function(){return S(this).serialize()}),{enumerable:!0}),u(Ve,"toString",(function(){return S(this).serialize()}),{enumerable:!0}),M){var qe=M.createObjectURL,De=M.revokeObjectURL;qe&&u(ze,"createObjectURL",a(qe,M)),De&&u(ze,"revokeObjectURL",a(De,M))}x(ze,"URL"),s({global:!0,forced:!n,sham:!o},{URL:ze})},"5fb2":function(e,t,i){"use strict";var r=i("da84"),s=i("e330"),o=2147483647,n=36,h=1,a=26,c=38,l=700,u=72,p=128,f="-",d=/[^\0-\u007E]/,g=/[.\u3002\uFF0E\uFF61]/g,m="Overflow: input needs wider integers to process",v=n-h,w=r.RangeError,b=s(g.exec),x=Math.floor,y=String.fromCharCode,C=s("".charCodeAt),O=s([].join),j=s([].push),S=s("".replace),k=s("".split),H=s("".toLowerCase),M=function(e){var t=[],i=0,r=e.length;while(i=55296&&s<=56319&&i>1,e+=x(e/t);while(e>v*a>>1)e=x(e/v),r+=n;return x(r+(v+1)*e/(e+c))},X=function(e){var t=[];e=M(e);var i,r,s=e.length,c=p,l=0,d=u;for(i=0;i=c&&rx((o-l)/C))throw w(m);for(l+=(b-c)*C,c=b,i=0;io)throw w(m);if(r==c){var S=l,k=n;while(1){var H=k<=d?h:k>=d+a?a:k-d;if(S"+a+""+t+">"}},9861:function(e,t,i){"use strict";i("e260");var r=i("23e7"),s=i("da84"),o=i("d066"),n=i("c65b"),h=i("e330"),a=i("0d3b"),c=i("6eeb"),l=i("e2cc"),u=i("d44e"),p=i("9ed3"),f=i("69f3"),d=i("19aa"),g=i("1626"),m=i("1a2d"),v=i("0366"),w=i("f5df"),b=i("825a"),x=i("861d"),y=i("577e"),C=i("7c73"),O=i("5c6c"),j=i("9a1f"),S=i("35a1"),k=i("d6d6"),H=i("b622"),M=i("addb"),L=H("iterator"),E="URLSearchParams",X=E+"Iterator",Y=f.set,I=f.getterFor(E),W=f.getterFor(X),N=o("fetch"),P=o("Request"),U=o("Headers"),B=P&&P.prototype,R=U&&U.prototype,A=s.RegExp,T=s.TypeError,z=s.decodeURIComponent,V=s.encodeURIComponent,$=h("".charAt),q=h([].join),D=h([].push),F=h("".replace),_=h([].shift),J=h([].splice),Z=h("".split),G=h("".slice),Q=/\+/g,K=Array(4),ee=function(e){return K[e-1]||(K[e-1]=A("((?:%[\\da-f]{2}){"+e+"})","gi"))},te=function(e){try{return z(e)}catch(t){return e}},ie=function(e){var t=F(e,Q," "),i=4;try{return z(t)}catch(r){while(i)t=F(t,ee(i--),te);return t}},re=/[!'()~]|%20/g,se={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+"},oe=function(e){return se[e]},ne=function(e){return F(V(e),re,oe)},he=p((function(e,t){Y(this,{type:X,iterator:j(I(e).entries),kind:t})}),"Iterator",(function(){var e=W(this),t=e.kind,i=e.iterator.next(),r=i.value;return i.done||(i.value="keys"===t?r.key:"values"===t?r.value:[r.key,r.value]),i}),!0),ae=function(e){this.entries=[],this.url=null,void 0!==e&&(x(e)?this.parseObject(e):this.parseQuery("string"==typeof e?"?"===$(e,0)?G(e,1):e:y(e)))};ae.prototype={type:E,bindURL:function(e){this.url=e,this.update()},parseObject:function(e){var t,i,r,s,o,h,a,c=S(e);if(c){t=j(e,c),i=t.next;while(!(r=n(i,t)).done){if(s=j(b(r.value)),o=s.next,(h=n(o,s)).done||(a=n(o,s)).done||!n(o,s).done)throw T("Expected sequence with length 2");D(this.entries,{key:y(h.value),value:y(a.value)})}}else for(var l in e)m(e,l)&&D(this.entries,{key:l,value:y(e[l])})},parseQuery:function(e){if(e){var t,i,r=Z(e,"&"),s=0;while(s0?arguments[0]:void 0;Y(this,new ae(e))},le=ce.prototype;if(l(le,{append:function(e,t){k(arguments.length,2);var i=I(this);D(i.entries,{key:y(e),value:y(t)}),i.updateURL()},delete:function(e){k(arguments.length,1);var t=I(this),i=t.entries,r=y(e),s=0;while(st.key?1:-1})),e.updateURL()},forEach:function(e){var t,i=I(this).entries,r=v(e,arguments.length>1?arguments[1]:void 0),s=0;while(s1?fe(arguments[1]):{})}}),g(P)){var de=function(e){return d(this,B),new P(e,arguments.length>1?fe(arguments[1]):{})};B.constructor=de,de.prototype=B,r({global:!0,forced:!0},{Request:de})}}e.exports={URLSearchParams:ce,getState:I}},addb:function(e,t,i){var r=i("4dae"),s=Math.floor,o=function(e,t){var i=e.length,a=s(i/2);return i<8?n(e,t):h(e,o(r(e,0,a),t),o(r(e,a),t),t)},n=function(e,t){var i,r,s=e.length,o=1;while(o0)e[r]=e[--r];r!==o++&&(e[r]=i)}return e},h=function(e,t,i,r){var s=t.length,o=i.length,n=0,h=0;while(n3}))}},c7cd:function(e,t,i){"use strict";var r=i("23e7"),s=i("857a"),o=i("af03");r({target:"String",proto:!0,forced:o("fixed")},{fixed:function(){return s(this,"tt","","")}})}}]);
-//# sourceMappingURL=chunk-2234305e.8f32d19b.js.map
\ No newline at end of file
+(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-000055b2"],{"0d3b":function(e,t,i){var r=i("d039"),s=i("b622"),o=i("c430"),n=s("iterator");e.exports=!r((function(){var e=new URL("b?a=1&b=2&c=3","http://a"),t=e.searchParams,i="";return e.pathname="c%20d",t.forEach((function(e,r){t["delete"]("b"),i+=r+e})),o&&!e.toJSON||!t.sort||"http://a/c%20d?a=1&c=3"!==e.href||"3"!==t.get("c")||"a=1"!==String(new URLSearchParams("?a=1"))||!t[n]||"a"!==new URL("https://a@b").username||"b"!==new URLSearchParams(new URLSearchParams("a=b")).get("a")||"xn--e1aybc"!==new URL("http://тест").host||"#%D0%B1"!==new URL("http://a#б").hash||"a1c3"!==i||"x"!==new URL("http://x",void 0).host}))},"179a":function(e,t,i){},"17d15":function(e,t,i){e.exports=i.p+"img/cro.6ba28915.jpg"},"1a2a":function(e,t,i){"use strict";i.r(t);i("a4d3"),i("e01a"),i("d3b7"),i("d28b"),i("3ca3"),i("ddb0");function r(e){return r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},r(e)}i("2b3d"),i("9861"),i("b0c0"),i("ac1f"),i("00b4"),i("c7cd");var s=i("7a23");i("179a");const o={};function n(e){let t=null;return new Promise((i,r)=>{if(e.src)if(/^data\:/i.test(e.src))t=a(e.src),i(t);else if(/^blob\:/i.test(e.src)){var s=new FileReader;s.onload=function(e){t=e.target.result,i(t)},h(e.src,(function(e){s.readAsArrayBuffer(e)}))}else{var o=new XMLHttpRequest;o.onload=function(){if(200!=this.status&&0!==this.status)throw"Could not load image";t=o.response,i(t),o=null},o.open("GET",e.src,!0),o.responseType="arraybuffer",o.send(null)}else r("img error")})}function h(e,t){var i=new XMLHttpRequest;i.open("GET",e,!0),i.responseType="blob",i.onload=function(e){200!=this.status&&0!==this.status||t(this.response)},i.send()}function a(e){e=e.replace(/^data\:([^\;]+)\;base64,/gim,"");for(var t=atob(e),i=t.length,r=new ArrayBuffer(i),s=new Uint8Array(r),o=0;o=8&&(a=r+s)))),a)for(f=p.getUint16(a,o),u=0;unew Promise((t,i)=>{let r={};n(e).then(e=>{r.arrayBuffer=e,r.orientation=l(e),t(r)}).catch(e=>{i(e)})});var u=(e,t)=>{const i=e.__vccOpts||e;for(const[r,s]of t)i[r]=s;return i};const p=Object(s["defineComponent"])({data:function(){return{w:0,h:0,scale:1,x:0,y:0,loading:!0,trueWidth:0,trueHeight:0,move:!0,moveX:0,moveY:0,crop:!1,cropping:!1,cropW:0,cropH:0,cropOldW:0,cropOldH:0,canChangeX:!1,canChangeY:!1,changeCropTypeX:1,changeCropTypeY:1,cropX:0,cropY:0,cropChangeX:0,cropChangeY:0,cropOffsertX:0,cropOffsertY:0,support:"",touches:[],touchNow:!1,rotate:0,isIos:!1,orientation:0,imgs:"",coe:.2,scaling:!1,scalingSet:"",coeStatus:"",isCanShow:!0}},props:{img:{type:[String,Blob,null,File],default:""},outputSize:{type:Number,default:1},outputType:{type:String,default:"jpeg"},info:{type:Boolean,default:!0},canScale:{type:Boolean,default:!0},autoCrop:{type:Boolean,default:!1},autoCropWidth:{type:[Number,String],default:0},autoCropHeight:{type:[Number,String],default:0},fixed:{type:Boolean,default:!1},fixedNumber:{type:Array,default:()=>[1,1]},fixedBox:{type:Boolean,default:!1},full:{type:Boolean,default:!1},canMove:{type:Boolean,default:!0},canMoveBox:{type:Boolean,default:!0},original:{type:Boolean,default:!1},centerBox:{type:Boolean,default:!1},high:{type:Boolean,default:!0},infoTrue:{type:Boolean,default:!1},maxImgSize:{type:[Number,String],default:2e3},enlarge:{type:[Number,String],default:1},preW:{type:[Number,String],default:0},mode:{type:String,default:"contain"},limitMinSize:{type:[Number,Array,String],default:()=>10}},computed:{cropInfo(){let e={};if(e.top=this.cropOffsertY>21?"-21px":"0px",e.width=this.cropW>0?this.cropW:0,e.height=this.cropH>0?this.cropH:0,this.infoTrue){let t=1;this.high&&!this.full&&(t=window.devicePixelRatio),1!==this.enlarge&!this.full&&(t=Math.abs(Number(this.enlarge))),e.width=e.width*t,e.height=e.height*t,this.full&&(e.width=e.width/this.scale,e.height=e.height/this.scale)}return e.width=e.width.toFixed(0),e.height=e.height.toFixed(0),e},isIE(){const e=!!window.ActiveXObject||"ActiveXObject"in window;return e},passive(){return this.isIE?null:{passive:!1}}},watch:{img(){this.checkedImg()},imgs(e){""!==e&&this.reload()},cropW(){this.showPreview()},cropH(){this.showPreview()},cropOffsertX(){this.showPreview()},cropOffsertY(){this.showPreview()},scale(e,t){this.showPreview()},x(){this.showPreview()},y(){this.showPreview()},autoCrop(e){e&&this.goAutoCrop()},autoCropWidth(){this.autoCrop&&this.goAutoCrop()},autoCropHeight(){this.autoCrop&&this.goAutoCrop()},mode(){this.checkedImg()},rotate(){this.showPreview(),(this.autoCrop||this.cropW>0||this.cropH>0)&&this.goAutoCrop(this.cropW,this.cropH)}},methods:{getVersion(e){var t=navigator.userAgent.split(" "),i="";let r=0;const s=new RegExp(e,"i");for(var o=0;o=81)t=-1;else if(this.getVersion("safari")[0]>=605){const e=this.getVersion("version");e[0]>13&&e[1]>1&&(t=-1)}else{const e=navigator.userAgent.toLowerCase().match(/cpu iphone os (.*?) like mac os/);if(e){let i=e[1];i=i.split("_"),(i[0]>13||i[0]>=13&&i[1]>=4)&&(t=-1)}}let s=document.createElement("canvas"),o=s.getContext("2d");switch(o.save(),t){case 2:s.width=i,s.height=r,o.translate(i,0),o.scale(-1,1);break;case 3:s.width=i,s.height=r,o.translate(i/2,r/2),o.rotate(180*Math.PI/180),o.translate(-i/2,-r/2);break;case 4:s.width=i,s.height=r,o.translate(0,r),o.scale(1,-1);break;case 5:s.height=i,s.width=r,o.rotate(.5*Math.PI),o.scale(1,-1);break;case 6:s.width=r,s.height=i,o.translate(r/2,i/2),o.rotate(90*Math.PI/180),o.translate(-i/2,-r/2);break;case 7:s.height=i,s.width=r,o.rotate(.5*Math.PI),o.translate(i,-r),o.scale(-1,1);break;case 8:s.height=i,s.width=r,o.translate(r/2,i/2),o.rotate(-90*Math.PI/180),o.translate(-i/2,-r/2);break;default:s.width=i,s.height=r}o.drawImage(e,0,0,i,r),o.restore(),s.toBlob(e=>{let t=URL.createObjectURL(e);URL.revokeObjectURL(this.imgs),this.imgs=t},"image/"+this.outputType,1)},checkedImg(){if(null===this.img||""===this.img)return this.imgs="",void this.clearCrop();this.loading=!0,this.scale=1,this.rotate=0,this.clearCrop();let e=new Image;if(e.onload=()=>{if(""===this.img)return this.$emit("img-load","error"),!1;let t=e.width,i=e.height;o.getData(e).then(r=>{this.orientation=r.orientation||1;let s=Number(this.maxImgSize);!this.orientation&&ts&&(i=i/t*s,t=s),i>s&&(t=t/i*s,i=s),this.checkOrientationImage(e,this.orientation,t,i))})},e.onerror=()=>{this.$emit("img-load","error")},"data"!==this.img.substr(0,4)&&(e.crossOrigin=""),this.isIE){var t=new XMLHttpRequest;t.onload=function(){var t=URL.createObjectURL(this.response);e.src=t},t.open("GET",this.img,!0),t.responseType="blob",t.send()}else e.src=this.img},startMove(e){if(e.preventDefault(),this.move&&!this.crop){if(!this.canMove)return!1;this.moveX=("clientX"in e?e.clientX:e.touches[0].clientX)-this.x,this.moveY=("clientY"in e?e.clientY:e.touches[0].clientY)-this.y,e.touches?(window.addEventListener("touchmove",this.moveImg),window.addEventListener("touchend",this.leaveImg),2==e.touches.length&&(this.touches=e.touches,window.addEventListener("touchmove",this.touchScale),window.addEventListener("touchend",this.cancelTouchScale))):(window.addEventListener("mousemove",this.moveImg),window.addEventListener("mouseup",this.leaveImg)),this.$emit("imgMoving",{moving:!0,axis:this.getImgAxis()}),this.$emit("img-moving",{moving:!0,axis:this.getImgAxis()})}else this.cropping=!0,window.addEventListener("mousemove",this.createCrop),window.addEventListener("mouseup",this.endCrop),window.addEventListener("touchmove",this.createCrop),window.addEventListener("touchend",this.endCrop),this.cropOffsertX=e.offsetX?e.offsetX:e.touches[0].pageX-this.$refs.cropper.offsetLeft,this.cropOffsertY=e.offsetY?e.offsetY:e.touches[0].pageY-this.$refs.cropper.offsetTop,this.cropX="clientX"in e?e.clientX:e.touches[0].clientX,this.cropY="clientY"in e?e.clientY:e.touches[0].clientY,this.cropChangeX=this.cropOffsertX,this.cropChangeY=this.cropOffsertY,this.cropW=0,this.cropH=0},touchScale(e){e.preventDefault();let t=this.scale;var i={x:this.touches[0].clientX,y:this.touches[0].clientY},r={x:e.touches[0].clientX,y:e.touches[0].clientY},s={x:this.touches[1].clientX,y:this.touches[1].clientY},o={x:e.touches[1].clientX,y:e.touches[1].clientY},n=Math.sqrt(Math.pow(i.x-s.x,2)+Math.pow(i.y-s.y,2)),h=Math.sqrt(Math.pow(r.x-o.x,2)+Math.pow(r.y-o.y,2)),a=h-n,c=1;c=c/this.trueWidth>c/this.trueHeight?c/this.trueHeight:c/this.trueWidth,c=c>.1?.1:c;var l=c*a;if(!this.touchNow){if(this.touchNow=!0,a>0?t+=Math.abs(l):a<0&&t>Math.abs(l)&&(t-=Math.abs(l)),this.touches=e.touches,setTimeout(()=>{this.touchNow=!1},8),!this.checkoutImgAxis(this.x,this.y,t))return!1;this.scale=t}},cancelTouchScale(e){window.removeEventListener("touchmove",this.touchScale)},moveImg(e){if(e.preventDefault(),e.touches&&2===e.touches.length)return this.touches=e.touches,window.addEventListener("touchmove",this.touchScale),window.addEventListener("touchend",this.cancelTouchScale),window.removeEventListener("touchmove",this.moveImg),!1;let t,i,r="clientX"in e?e.clientX:e.touches[0].clientX,s="clientY"in e?e.clientY:e.touches[0].clientY;t=r-this.moveX,i=s-this.moveY,this.$nextTick(()=>{if(this.centerBox){let e,r,s,o,n=this.getImgAxis(t,i,this.scale),h=this.getCropAxis(),a=this.trueHeight*this.scale,c=this.trueWidth*this.scale;switch(this.rotate){case 1:case-1:case 3:case-3:e=this.cropOffsertX-this.trueWidth*(1-this.scale)/2+(a-c)/2,r=this.cropOffsertY-this.trueHeight*(1-this.scale)/2+(c-a)/2,s=e-a+this.cropW,o=r-c+this.cropH;break;default:e=this.cropOffsertX-this.trueWidth*(1-this.scale)/2,r=this.cropOffsertY-this.trueHeight*(1-this.scale)/2,s=e-c+this.cropW,o=r-a+this.cropH;break}n.x1>=h.x1&&(t=e),n.y1>=h.y1&&(i=r),n.x2<=h.x2&&(t=s),n.y2<=h.y2&&(i=o)}this.x=t,this.y=i,this.$emit("imgMoving",{moving:!0,axis:this.getImgAxis()}),this.$emit("img-moving",{moving:!0,axis:this.getImgAxis()})})},leaveImg(e){window.removeEventListener("mousemove",this.moveImg),window.removeEventListener("touchmove",this.moveImg),window.removeEventListener("mouseup",this.leaveImg),window.removeEventListener("touchend",this.leaveImg),this.$emit("imgMoving",{moving:!1,axis:this.getImgAxis()}),this.$emit("img-moving",{moving:!1,axis:this.getImgAxis()})},scaleImg(){this.canScale&&window.addEventListener(this.support,this.changeSize,this.passive)},cancelScale(){this.canScale&&window.removeEventListener(this.support,this.changeSize)},changeSize(e){e.preventDefault();let t=this.scale;var i=e.deltaY||e.wheelDelta,r=navigator.userAgent.indexOf("Firefox");i=r>0?30*i:i,this.isIE&&(i=-i);var s=this.coe;s=s/this.trueWidth>s/this.trueHeight?s/this.trueHeight:s/this.trueWidth;var o=s*i;o<0?t+=Math.abs(o):t>Math.abs(o)&&(t-=Math.abs(o));let n=o<0?"add":"reduce";if(n!==this.coeStatus&&(this.coeStatus=n,this.coe=.2),this.scaling||(this.scalingSet=setTimeout(()=>{this.scaling=!1,this.coe=this.coe+=.01},50)),this.scaling=!0,!this.checkoutImgAxis(this.x,this.y,t))return!1;this.scale=t},changeScale(e){let t=this.scale;e=e||1;var i=20;if(i=i/this.trueWidth>i/this.trueHeight?i/this.trueHeight:i/this.trueWidth,e*=i,e>0?t+=Math.abs(e):t>Math.abs(e)&&(t-=Math.abs(e)),!this.checkoutImgAxis(this.x,this.y,t))return!1;this.scale=t},createCrop(e){e.preventDefault();var t="clientX"in e?e.clientX:e.touches?e.touches[0].clientX:0,i="clientY"in e?e.clientY:e.touches?e.touches[0].clientY:0;this.$nextTick(()=>{var e=t-this.cropX,r=i-this.cropY;if(e>0?(this.cropW=e+this.cropChangeX>this.w?this.w-this.cropChangeX:e,this.cropOffsertX=this.cropChangeX):(this.cropW=this.w-this.cropChangeX+Math.abs(e)>this.w?this.cropChangeX:Math.abs(e),this.cropOffsertX=this.cropChangeX+e>0?this.cropChangeX+e:0),this.fixed){var s=this.cropW/this.fixedNumber[0]*this.fixedNumber[1];s+this.cropOffsertY>this.h?(this.cropH=this.h-this.cropOffsertY,this.cropW=this.cropH/this.fixedNumber[1]*this.fixedNumber[0],this.cropOffsertX=e>0?this.cropChangeX:this.cropChangeX-this.cropW):this.cropH=s,this.cropOffsertY=this.cropOffsertY}else r>0?(this.cropH=r+this.cropChangeY>this.h?this.h-this.cropChangeY:r,this.cropOffsertY=this.cropChangeY):(this.cropH=this.h-this.cropChangeY+Math.abs(r)>this.h?this.cropChangeY:Math.abs(r),this.cropOffsertY=this.cropChangeY+r>0?this.cropChangeY+r:0)})},changeCropSize(e,t,i,r,s){e.preventDefault(),window.addEventListener("mousemove",this.changeCropNow),window.addEventListener("mouseup",this.changeCropEnd),window.addEventListener("touchmove",this.changeCropNow),window.addEventListener("touchend",this.changeCropEnd),this.canChangeX=t,this.canChangeY=i,this.changeCropTypeX=r,this.changeCropTypeY=s,this.cropX="clientX"in e?e.clientX:e.touches[0].clientX,this.cropY="clientY"in e?e.clientY:e.touches[0].clientY,this.cropOldW=this.cropW,this.cropOldH=this.cropH,this.cropChangeX=this.cropOffsertX,this.cropChangeY=this.cropOffsertY,this.fixed&&this.canChangeX&&this.canChangeY&&(this.canChangeY=0),this.$emit("change-crop-size",{width:this.cropW,height:this.cropH})},changeCropNow(e){e.preventDefault();var t="clientX"in e?e.clientX:e.touches?e.touches[0].clientX:0,i="clientY"in e?e.clientY:e.touches?e.touches[0].clientY:0;let r=this.w,s=this.h,o=0,n=0;if(this.centerBox){let e=this.getImgAxis(),t=e.x2,i=e.y2;o=e.x1>0?e.x1:0,n=e.y1>0?e.y1:0,r>t&&(r=t),s>i&&(s=i)}this.$nextTick(()=>{var e=t-this.cropX,h=i-this.cropY;if(this.canChangeX&&(1===this.changeCropTypeX?this.cropOldW-e>0?(this.cropW=r-this.cropChangeX-e<=r-o?this.cropOldW-e:this.cropOldW+this.cropChangeX-o,this.cropOffsertX=r-this.cropChangeX-e<=r-o?this.cropChangeX+e:o):(this.cropW=Math.abs(e)+this.cropChangeX<=r?Math.abs(e)-this.cropOldW:r-this.cropOldW-this.cropChangeX,this.cropOffsertX=this.cropChangeX+this.cropOldW):2===this.changeCropTypeX&&(this.cropOldW+e>0?(this.cropW=this.cropOldW+e+this.cropOffsertX<=r?this.cropOldW+e:r-this.cropOffsertX,this.cropOffsertX=this.cropChangeX):(this.cropW=r-this.cropChangeX+Math.abs(e+this.cropOldW)<=r-o?Math.abs(e+this.cropOldW):this.cropChangeX-o,this.cropOffsertX=r-this.cropChangeX+Math.abs(e+this.cropOldW)<=r-o?this.cropChangeX-Math.abs(e+this.cropOldW):o))),this.canChangeY&&(1===this.changeCropTypeY?this.cropOldH-h>0?(this.cropH=s-this.cropChangeY-h<=s-n?this.cropOldH-h:this.cropOldH+this.cropChangeY-n,this.cropOffsertY=s-this.cropChangeY-h<=s-n?this.cropChangeY+h:n):(this.cropH=Math.abs(h)+this.cropChangeY<=s?Math.abs(h)-this.cropOldH:s-this.cropOldH-this.cropChangeY,this.cropOffsertY=this.cropChangeY+this.cropOldH):2===this.changeCropTypeY&&(this.cropOldH+h>0?(this.cropH=this.cropOldH+h+this.cropOffsertY<=s?this.cropOldH+h:s-this.cropOffsertY,this.cropOffsertY=this.cropChangeY):(this.cropH=s-this.cropChangeY+Math.abs(h+this.cropOldH)<=s-n?Math.abs(h+this.cropOldH):this.cropChangeY-n,this.cropOffsertY=s-this.cropChangeY+Math.abs(h+this.cropOldH)<=s-n?this.cropChangeY-Math.abs(h+this.cropOldH):n))),this.canChangeX&&this.fixed){var a=this.cropW/this.fixedNumber[0]*this.fixedNumber[1];a+this.cropOffsertY>s?(this.cropH=s-this.cropOffsertY,this.cropW=this.cropH/this.fixedNumber[1]*this.fixedNumber[0]):this.cropH=a}if(this.canChangeY&&this.fixed){var c=this.cropH/this.fixedNumber[1]*this.fixedNumber[0];c+this.cropOffsertX>r?(this.cropW=r-this.cropOffsertX,this.cropH=this.cropW/this.fixedNumber[0]*this.fixedNumber[1]):this.cropW=c}})},checkCropLimitSize(){let{cropW:e,cropH:t,limitMinSize:i}=this,r=new Array;return r=Array.isArray[i]?i:[i,i],e=parseFloat(r[0]),t=parseFloat(r[1]),[e,t]},changeCropEnd(e){window.removeEventListener("mousemove",this.changeCropNow),window.removeEventListener("mouseup",this.changeCropEnd),window.removeEventListener("touchmove",this.changeCropNow),window.removeEventListener("touchend",this.changeCropEnd)},endCrop(){0===this.cropW&&0===this.cropH&&(this.cropping=!1),window.removeEventListener("mousemove",this.createCrop),window.removeEventListener("mouseup",this.endCrop),window.removeEventListener("touchmove",this.createCrop),window.removeEventListener("touchend",this.endCrop)},startCrop(){this.crop=!0},stopCrop(){this.crop=!1},clearCrop(){this.cropping=!1,this.cropW=0,this.cropH=0},cropMove(e){if(e.preventDefault(),!this.canMoveBox)return this.crop=!1,this.startMove(e),!1;if(e.touches&&2===e.touches.length)return this.crop=!1,this.startMove(e),this.leaveCrop(),!1;window.addEventListener("mousemove",this.moveCrop),window.addEventListener("mouseup",this.leaveCrop),window.addEventListener("touchmove",this.moveCrop),window.addEventListener("touchend",this.leaveCrop);let t,i,r="clientX"in e?e.clientX:e.touches[0].clientX,s="clientY"in e?e.clientY:e.touches[0].clientY;t=r-this.cropOffsertX,i=s-this.cropOffsertY,this.cropX=t,this.cropY=i,this.$emit("cropMoving",{moving:!0,axis:this.getCropAxis()}),this.$emit("crop-moving",{moving:!0,axis:this.getCropAxis()})},moveCrop(e,t){let i=0,r=0;e&&(e.preventDefault(),i="clientX"in e?e.clientX:e.touches[0].clientX,r="clientY"in e?e.clientY:e.touches[0].clientY),this.$nextTick(()=>{let e,s,o=i-this.cropX,n=r-this.cropY;if(t&&(o=this.cropOffsertX,n=this.cropOffsertY),e=o<=0?0:o+this.cropW>this.w?this.w-this.cropW:o,s=n<=0?0:n+this.cropH>this.h?this.h-this.cropH:n,this.centerBox){let t=this.getImgAxis();e<=t.x1&&(e=t.x1),e+this.cropW>t.x2&&(e=t.x2-this.cropW),s<=t.y1&&(s=t.y1),s+this.cropH>t.y2&&(s=t.y2-this.cropH)}this.cropOffsertX=e,this.cropOffsertY=s,this.$emit("cropMoving",{moving:!0,axis:this.getCropAxis()}),this.$emit("crop-moving",{moving:!0,axis:this.getCropAxis()})})},getImgAxis(e,t,i){e=e||this.x,t=t||this.y,i=i||this.scale;let r={x1:0,x2:0,y1:0,y2:0},s=this.trueWidth*i,o=this.trueHeight*i;switch(this.rotate){case 0:r.x1=e+this.trueWidth*(1-i)/2,r.x2=r.x1+this.trueWidth*i,r.y1=t+this.trueHeight*(1-i)/2,r.y2=r.y1+this.trueHeight*i;break;case 1:case-1:case 3:case-3:r.x1=e+this.trueWidth*(1-i)/2+(s-o)/2,r.x2=r.x1+this.trueHeight*i,r.y1=t+this.trueHeight*(1-i)/2+(o-s)/2,r.y2=r.y1+this.trueWidth*i;break;default:r.x1=e+this.trueWidth*(1-i)/2,r.x2=r.x1+this.trueWidth*i,r.y1=t+this.trueHeight*(1-i)/2,r.y2=r.y1+this.trueHeight*i;break}return r},getCropAxis(){let e={x1:0,x2:0,y1:0,y2:0};return e.x1=this.cropOffsertX,e.x2=e.x1+this.cropW,e.y1=this.cropOffsertY,e.y2=e.y1+this.cropH,e},leaveCrop(e){window.removeEventListener("mousemove",this.moveCrop),window.removeEventListener("mouseup",this.leaveCrop),window.removeEventListener("touchmove",this.moveCrop),window.removeEventListener("touchend",this.leaveCrop),this.$emit("cropMoving",{moving:!1,axis:this.getCropAxis()}),this.$emit("crop-moving",{moving:!1,axis:this.getCropAxis()})},getCropChecked(e){let t=document.createElement("canvas"),i=new Image,r=this.rotate,s=this.trueWidth,o=this.trueHeight,n=this.cropOffsertX,h=this.cropOffsertY;i.onload=()=>{if(0!==this.cropW){let e=t.getContext("2d"),a=1;this.high&!this.full&&(a=window.devicePixelRatio),1!==this.enlarge&!this.full&&(a=Math.abs(Number(this.enlarge)));let l=this.cropW*a,u=this.cropH*a,p=s*this.scale*a,f=o*this.scale*a,d=(this.x-n+this.trueWidth*(1-this.scale)/2)*a,g=(this.y-h+this.trueHeight*(1-this.scale)/2)*a;switch(c(l,u),e.save(),r){case 0:this.full?(c(l/this.scale,u/this.scale),e.drawImage(i,d/this.scale,g/this.scale,p/this.scale,f/this.scale)):e.drawImage(i,d,g,p,f);break;case 1:case-3:this.full?(c(l/this.scale,u/this.scale),d=d/this.scale+(p/this.scale-f/this.scale)/2,g=g/this.scale+(f/this.scale-p/this.scale)/2,e.rotate(90*r*Math.PI/180),e.drawImage(i,g,-d-f/this.scale,p/this.scale,f/this.scale)):(d+=(p-f)/2,g+=(f-p)/2,e.rotate(90*r*Math.PI/180),e.drawImage(i,g,-d-f,p,f));break;case 2:case-2:this.full?(c(l/this.scale,u/this.scale),e.rotate(90*r*Math.PI/180),d/=this.scale,g/=this.scale,e.drawImage(i,-d-p/this.scale,-g-f/this.scale,p/this.scale,f/this.scale)):(e.rotate(90*r*Math.PI/180),e.drawImage(i,-d-p,-g-f,p,f));break;case 3:case-1:this.full?(c(l/this.scale,u/this.scale),d=d/this.scale+(p/this.scale-f/this.scale)/2,g=g/this.scale+(f/this.scale-p/this.scale)/2,e.rotate(90*r*Math.PI/180),e.drawImage(i,-g-p/this.scale,d,p/this.scale,f/this.scale)):(d+=(p-f)/2,g+=(f-p)/2,e.rotate(90*r*Math.PI/180),e.drawImage(i,-g-p,d,p,f));break;default:this.full?(c(l/this.scale,u/this.scale),e.drawImage(i,d/this.scale,g/this.scale,p/this.scale,f/this.scale)):e.drawImage(i,d,g,p,f)}e.restore()}else{let e=s*this.scale,n=o*this.scale,h=t.getContext("2d");switch(h.save(),r){case 0:c(e,n),h.drawImage(i,0,0,e,n);break;case 1:case-3:c(n,e),h.rotate(90*r*Math.PI/180),h.drawImage(i,0,-n,e,n);break;case 2:case-2:c(e,n),h.rotate(90*r*Math.PI/180),h.drawImage(i,-e,-n,e,n);break;case 3:case-1:c(n,e),h.rotate(90*r*Math.PI/180),h.drawImage(i,-e,0,e,n);break;default:c(e,n),h.drawImage(i,0,0,e,n)}h.restore()}e(t)};var a=this.img.substr(0,4);function c(e,i){t.width=Math.round(e),t.height=Math.round(i)}"data"!==a&&(i.crossOrigin="Anonymous"),i.src=this.imgs},getCropData(e){this.getCropChecked(t=>{e(t.toDataURL("image/"+this.outputType,this.outputSize))})},getCropBlob(e){this.getCropChecked(t=>{t.toBlob(t=>e(t),"image/"+this.outputType,this.outputSize)})},showPreview(){if(!this.isCanShow)return!1;this.isCanShow=!1,setTimeout(()=>{this.isCanShow=!0},16);let e=this.cropW,t=this.cropH,i=this.scale;var r={};r.div={width:e+"px",height:t+"px"};let s=(this.x-this.cropOffsertX)/i,o=(this.y-this.cropOffsertY)/i,n=0;r.w=e,r.h=t,r.url=this.imgs,r.img={width:this.trueWidth+"px",height:this.trueHeight+"px",transform:`scale(${i})translate3d(${s}px, ${o}px, ${n}px)rotateZ(${90*this.rotate}deg)`},r.html=`\n \n
\n

\n
\n
`,this.$emit("realTime",r),this.$emit("real-time",r)},reload(){let e=new Image;e.onload=()=>{this.w=parseFloat(window.getComputedStyle(this.$refs.cropper).width),this.h=parseFloat(window.getComputedStyle(this.$refs.cropper).height),this.trueWidth=e.width,this.trueHeight=e.height,this.original?this.scale=1:this.scale=this.checkedMode(),this.$nextTick(()=>{this.x=-(this.trueWidth-this.trueWidth*this.scale)/2+(this.w-this.trueWidth*this.scale)/2,this.y=-(this.trueHeight-this.trueHeight*this.scale)/2+(this.h-this.trueHeight*this.scale)/2,this.loading=!1,this.autoCrop&&this.goAutoCrop(),this.$emit("img-load","success"),this.$emit("imgLoad","success"),setTimeout(()=>{this.showPreview()},20)})},e.onerror=()=>{this.$emit("imgLoad","error"),this.$emit("img-load","error")},e.src=this.imgs},checkedMode(){let e=1,t=this.trueWidth,i=this.trueHeight;const r=this.mode.split(" ");switch(r[0]){case"contain":this.trueWidth>this.w&&(e=this.w/this.trueWidth),this.trueHeight*e>this.h&&(e=this.h/this.trueHeight);break;case"cover":t=this.w,e=t/this.trueWidth,i*=e,i0;let t=(e?this.trueHeight:this.trueWidth)*this.scale,s=(e?this.trueWidth:this.trueHeight)*this.scale;i=ti?i:s,o=o>r?r:o,this.fixed&&(o=s/this.fixedNumber[0]*this.fixedNumber[1]),o>this.h&&(o=this.h,s=o/this.fixedNumber[1]*this.fixedNumber[0]),this.changeCrop(s,o)},changeCrop(e,t){if(this.centerBox){let i=this.getImgAxis();e>i.x2-i.x1&&(e=i.x2-i.x1,t=e/this.fixedNumber[0]*this.fixedNumber[1]),t>i.y2-i.y1&&(t=i.y2-i.y1,e=t/this.fixedNumber[1]*this.fixedNumber[0])}this.cropW=e,this.cropH=t,this.checkCropLimitSize(),this.$nextTick(()=>{this.cropOffsertX=(this.w-this.cropW)/2,this.cropOffsertY=(this.h-this.cropH)/2,this.centerBox&&this.moveCrop(null,!0)})},refresh(){this.img,this.imgs="",this.scale=1,this.crop=!1,this.rotate=0,this.w=0,this.h=0,this.trueWidth=0,this.trueHeight=0,this.clearCrop(),this.$nextTick(()=>{this.checkedImg()})},rotateLeft(){this.rotate=this.rotate<=-3?0:this.rotate-1},rotateRight(){this.rotate=this.rotate>=3?0:this.rotate+1},rotateClear(){this.rotate=0},checkoutImgAxis(e,t,i){e=e||this.x,t=t||this.y,i=i||this.scale;let r=!0;if(this.centerBox){let s=this.getImgAxis(e,t,i),o=this.getCropAxis();s.x1>=o.x1&&(r=!1),s.x2<=o.x2&&(r=!1),s.y1>=o.y1&&(r=!1),s.y2<=o.y2&&(r=!1)}return r}},mounted(){this.support="onwheel"in document.createElement("div")?"wheel":void 0!==document.onmousewheel?"mousewheel":"DOMMouseScroll";let e=this;var t=navigator.userAgent;this.isIOS=!!t.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/),HTMLCanvasElement.prototype.toBlob||Object.defineProperty(HTMLCanvasElement.prototype,"toBlob",{value:function(t,i,r){for(var s=atob(this.toDataURL(i,r).split(",")[1]),o=s.length,n=new Uint8Array(o),h=0;he.scaleImg&&e.scaleImg(...t)),onMouseout:t[29]||(t[29]=(...t)=>e.cancelScale&&e.cancelScale(...t))},[e.imgs?(Object(s["openBlock"])(),Object(s["createElementBlock"])("div",f,[Object(s["withDirectives"])(Object(s["createElementVNode"])("div",{class:"cropper-box-canvas",style:Object(s["normalizeStyle"])({width:e.trueWidth+"px",height:e.trueHeight+"px",transform:"scale("+e.scale+","+e.scale+") translate3d("+e.x/e.scale+"px,"+e.y/e.scale+"px,0)rotateZ("+90*e.rotate+"deg)"})},[Object(s["createElementVNode"])("img",{src:e.imgs,alt:"cropper-img",ref:"cropperImg"},null,8,d)],4),[[s["vShow"],!e.loading]])])):Object(s["createCommentVNode"])("",!0),Object(s["createElementVNode"])("div",{class:Object(s["normalizeClass"])(["cropper-drag-box",{"cropper-move":e.move&&!e.crop,"cropper-crop":e.crop,"cropper-modal":e.cropping}]),onMousedown:t[0]||(t[0]=(...t)=>e.startMove&&e.startMove(...t)),onTouchstart:t[1]||(t[1]=(...t)=>e.startMove&&e.startMove(...t))},null,34),Object(s["withDirectives"])(Object(s["createElementVNode"])("div",{class:"cropper-crop-box",style:Object(s["normalizeStyle"])({width:e.cropW+"px",height:e.cropH+"px",transform:"translate3d("+e.cropOffsertX+"px,"+e.cropOffsertY+"px,0)"})},[Object(s["createElementVNode"])("span",g,[Object(s["createElementVNode"])("img",{style:Object(s["normalizeStyle"])({width:e.trueWidth+"px",height:e.trueHeight+"px",transform:"scale("+e.scale+","+e.scale+") translate3d("+(e.x-e.cropOffsertX)/e.scale+"px,"+(e.y-e.cropOffsertY)/e.scale+"px,0)rotateZ("+90*e.rotate+"deg)"}),src:e.imgs,alt:"cropper-img"},null,12,m)]),Object(s["createElementVNode"])("span",{class:"cropper-face cropper-move",onMousedown:t[2]||(t[2]=(...t)=>e.cropMove&&e.cropMove(...t)),onTouchstart:t[3]||(t[3]=(...t)=>e.cropMove&&e.cropMove(...t))},null,32),e.info?(Object(s["openBlock"])(),Object(s["createElementBlock"])("span",{key:0,class:"crop-info",style:Object(s["normalizeStyle"])({top:e.cropInfo.top})},Object(s["toDisplayString"])(e.cropInfo.width)+" × "+Object(s["toDisplayString"])(e.cropInfo.height),5)):Object(s["createCommentVNode"])("",!0),e.fixedBox?Object(s["createCommentVNode"])("",!0):(Object(s["openBlock"])(),Object(s["createElementBlock"])("span",v,[Object(s["createElementVNode"])("span",{class:"crop-line line-w",onMousedown:t[4]||(t[4]=t=>e.changeCropSize(t,!1,!0,0,1)),onTouchstart:t[5]||(t[5]=t=>e.changeCropSize(t,!1,!0,0,1))},null,32),Object(s["createElementVNode"])("span",{class:"crop-line line-a",onMousedown:t[6]||(t[6]=t=>e.changeCropSize(t,!0,!1,1,0)),onTouchstart:t[7]||(t[7]=t=>e.changeCropSize(t,!0,!1,1,0))},null,32),Object(s["createElementVNode"])("span",{class:"crop-line line-s",onMousedown:t[8]||(t[8]=t=>e.changeCropSize(t,!1,!0,0,2)),onTouchstart:t[9]||(t[9]=t=>e.changeCropSize(t,!1,!0,0,2))},null,32),Object(s["createElementVNode"])("span",{class:"crop-line line-d",onMousedown:t[10]||(t[10]=t=>e.changeCropSize(t,!0,!1,2,0)),onTouchstart:t[11]||(t[11]=t=>e.changeCropSize(t,!0,!1,2,0))},null,32),Object(s["createElementVNode"])("span",{class:"crop-point point1",onMousedown:t[12]||(t[12]=t=>e.changeCropSize(t,!0,!0,1,1)),onTouchstart:t[13]||(t[13]=t=>e.changeCropSize(t,!0,!0,1,1))},null,32),Object(s["createElementVNode"])("span",{class:"crop-point point2",onMousedown:t[14]||(t[14]=t=>e.changeCropSize(t,!1,!0,0,1)),onTouchstart:t[15]||(t[15]=t=>e.changeCropSize(t,!1,!0,0,1))},null,32),Object(s["createElementVNode"])("span",{class:"crop-point point3",onMousedown:t[16]||(t[16]=t=>e.changeCropSize(t,!0,!0,2,1)),onTouchstart:t[17]||(t[17]=t=>e.changeCropSize(t,!0,!0,2,1))},null,32),Object(s["createElementVNode"])("span",{class:"crop-point point4",onMousedown:t[18]||(t[18]=t=>e.changeCropSize(t,!0,!1,1,0)),onTouchstart:t[19]||(t[19]=t=>e.changeCropSize(t,!0,!1,1,0))},null,32),Object(s["createElementVNode"])("span",{class:"crop-point point5",onMousedown:t[20]||(t[20]=t=>e.changeCropSize(t,!0,!1,2,0)),onTouchstart:t[21]||(t[21]=t=>e.changeCropSize(t,!0,!1,2,0))},null,32),Object(s["createElementVNode"])("span",{class:"crop-point point6",onMousedown:t[22]||(t[22]=t=>e.changeCropSize(t,!0,!0,1,2)),onTouchstart:t[23]||(t[23]=t=>e.changeCropSize(t,!0,!0,1,2))},null,32),Object(s["createElementVNode"])("span",{class:"crop-point point7",onMousedown:t[24]||(t[24]=t=>e.changeCropSize(t,!1,!0,0,2)),onTouchstart:t[25]||(t[25]=t=>e.changeCropSize(t,!1,!0,0,2))},null,32),Object(s["createElementVNode"])("span",{class:"crop-point point8",onMousedown:t[26]||(t[26]=t=>e.changeCropSize(t,!0,!0,2,2)),onTouchstart:t[27]||(t[27]=t=>e.changeCropSize(t,!0,!0,2,2))},null,32)]))],4),[[s["vShow"],e.cropping]])],544)}var b=u(p,[["render",w],["__scopeId","data-v-be5e5ddc"]]);"undefined"!==typeof window&&window.Vue&&window.Vue.createApp({}).component("VueCropper",b);var x=i("17d15"),y=i.n(x),C=i("3ef4"),O=function(e){return Object(s["pushScopeId"])("data-v-2ff088fd"),e=e(),Object(s["popScopeId"])(),e},j={class:"m-cropper"},S={class:"left"},k={class:"cropper-content"},H=Object(s["createTextVNode"])("放大"),M=Object(s["createTextVNode"])("缩小"),L=Object(s["createTextVNode"])("向左旋转"),E=Object(s["createTextVNode"])("向右旋转"),X=Object(s["createTextVNode"])("清除"),Y=Object(s["createTextVNode"])("获取结果"),I=Object(s["createTextVNode"])("下载图片"),W=Object(s["createTextVNode"])("选择上传图片"),N=O((function(){return Object(s["createElementVNode"])("h4",{style:{"margin-top":"10px"}},"实时预览",-1)})),P=["src"],U=O((function(){return Object(s["createElementVNode"])("h4",{style:{"margin-top":"10px"}},"获取结果",-1)})),B={style:{background:"#ccc",width:"100px",height:"100px"}},R=["src"],A=Object(s["defineComponent"])({setup:function(e){var t=this,i=Object(s["ref"])(),o=Object(s["ref"])(y.a),n=Object(s["reactive"])({img:y.a,size:1,full:!1,outputType:"png",canMove:!0,fixed:!0,info:!0,outputSize:.8,fixedBox:!1,original:!1,canMoveBox:!0,autoCrop:!0,autoCropWidth:300,autoCropHeight:300,centerBox:!1,high:!0,max:99999,previews:{url:""},cropImg:""}),h=function(e){n.previews=e},a=function(e){i.value.changeScale(e)},c=function(){i.value.rotateLeft()},l=function(){i.value.rotateRight()},u=function(e){var r=document.createElement("a");r.download="demo","blob"===e?t.$refs.cropper.getCropBlob((function(e){r.href=window.URL.createObjectURL(e),r.click()})):i.value.getCropData((function(e){r.href=e,r.click()}))},p=function(){i.value.getCropData((function(e){n.cropImg=e}))},f=function(){o.value="",n.cropImg=""},d=function(e,t){return new Promise((function(t,i){var s=new FileReader,h=/\.jpg$|\.jpeg$|\.gif$|\.png$/i;s.readAsDataURL(e);var a=e.name;h.test(a)?s.onload=function(e){var i;i="object"===r(e.target.result)?window.URL.createObjectURL(new Blob([e.target.result])):e.target.result,t(e.target.result),n.imgSrc=i,o.value=i}:(C["a"].error("请上传图片"),i())}))};return function(e,t){var r=Object(s["resolveComponent"])("el-button"),g=Object(s["resolveComponent"])("el-upload");return Object(s["openBlock"])(),Object(s["createElementBlock"])("div",j,[Object(s["createElementVNode"])("div",S,[Object(s["createElementVNode"])("div",k,[Object(s["createVNode"])(Object(s["unref"])(b),{ref_key:"cropper",ref:i,img:o.value,"output-size":Object(s["unref"])(n).size,"output-type":Object(s["unref"])(n).outputType,info:!0,full:Object(s["unref"])(n).full,fixed:Object(s["unref"])(n).fixed,"fixed-number":Object(s["unref"])(n).fixedNumber,"can-move":Object(s["unref"])(n).canMove,"can-move-box":Object(s["unref"])(n).canMoveBox,autoCropWidth:Object(s["unref"])(n).autoCropWidth,autoCropHeight:Object(s["unref"])(n).autoCropHeight,"fixed-box":Object(s["unref"])(n).fixedBox,"auto-crop":Object(s["unref"])(n).autoCrop,"auto-crop-height":Object(s["unref"])(n).autoCropHeight,"center-box":Object(s["unref"])(n).centerBox,onRealTime:h},null,8,["img","output-size","output-type","full","fixed","fixed-number","can-move","can-move-box","autoCropWidth","autoCropHeight","fixed-box","auto-crop","auto-crop-height","center-box"])]),Object(s["createVNode"])(r,{type:"primary",onClick:t[0]||(t[0]=Object(s["withModifiers"])((function(e){return a(1)}),["prevent"]))},{default:Object(s["withCtx"])((function(){return[H]})),_:1}),Object(s["createVNode"])(r,{type:"primary",onClick:t[1]||(t[1]=Object(s["withModifiers"])((function(e){return a(-1)}),["prevent"]))},{default:Object(s["withCtx"])((function(){return[M]})),_:1}),Object(s["createVNode"])(r,{type:"primary",onClick:Object(s["withModifiers"])(c,["prevent"])},{default:Object(s["withCtx"])((function(){return[L]})),_:1},8,["onClick"]),Object(s["createVNode"])(r,{type:"primary",onClick:Object(s["withModifiers"])(l,["prevent"])},{default:Object(s["withCtx"])((function(){return[E]})),_:1},8,["onClick"]),Object(s["createVNode"])(r,{type:"primary",onClick:Object(s["withModifiers"])(f,["prevent"])},{default:Object(s["withCtx"])((function(){return[X]})),_:1},8,["onClick"]),Object(s["createVNode"])(r,{type:"primary",onClick:Object(s["withModifiers"])(p,["prevent"])},{default:Object(s["withCtx"])((function(){return[Y]})),_:1},8,["onClick"]),Object(s["createVNode"])(r,{type:"primary",onClick:t[2]||(t[2]=Object(s["withModifiers"])((function(e){return u("base64")}),["prevent"]))},{default:Object(s["withCtx"])((function(){return[I]})),_:1}),Object(s["createVNode"])(g,{class:"upload-demo","show-file-list":!1,action:"","before-upload":d},{default:Object(s["withCtx"])((function(){return[Object(s["createVNode"])(r,{type:"primary"},{default:Object(s["withCtx"])((function(){return[W]})),_:1})]})),_:1})]),Object(s["createElementVNode"])("div",null,[N,Object(s["createElementVNode"])("div",{class:"show-preview",style:Object(s["normalizeStyle"])({width:Object(s["unref"])(n).previews.w+"px",height:Object(s["unref"])(n).previews.h+"px",overflow:"hidden",margin:"5px"})},[Object(s["createElementVNode"])("div",{style:Object(s["normalizeStyle"])(Object(s["unref"])(n).previews.div)},[Object(s["createElementVNode"])("img",{src:Object(s["unref"])(n).previews.url,style:Object(s["normalizeStyle"])(Object(s["unref"])(n).previews.img)},null,12,P)],4)],4),U,Object(s["createElementVNode"])("div",B,[Object(s["unref"])(n).cropImg?(Object(s["openBlock"])(),Object(s["createElementBlock"])("img",{key:0,src:Object(s["unref"])(n).cropImg,style:{width:"100%",height:"100%"}},null,8,R)):Object(s["createCommentVNode"])("",!0)])])])}}}),T=(i("e477"),i("6b0d")),z=i.n(T);const V=z()(A,[["__scopeId","data-v-2ff088fd"]]);t["default"]=V},"2b3d":function(e,t,i){"use strict";i("3ca3");var r,s=i("23e7"),o=i("83ab"),n=i("0d3b"),h=i("da84"),a=i("0366"),c=i("e330"),l=i("37e8").f,u=i("6eeb"),p=i("19aa"),f=i("1a2d"),d=i("60da"),g=i("4df4"),m=i("4dae"),v=i("6547").codeAt,w=i("5fb2"),b=i("577e"),x=i("d44e"),y=i("d6d6"),C=i("9861"),O=i("69f3"),j=O.set,S=O.getterFor("URL"),k=C.URLSearchParams,H=C.getState,M=h.URL,L=h.TypeError,E=h.parseInt,X=Math.floor,Y=Math.pow,I=c("".charAt),W=c(/./.exec),N=c([].join),P=c(1..toString),U=c([].pop),B=c([].push),R=c("".replace),A=c([].shift),T=c("".split),z=c("".slice),V=c("".toLowerCase),$=c([].unshift),q="Invalid authority",D="Invalid scheme",F="Invalid host",_="Invalid port",J=/[a-z]/i,Z=/[\d+-.a-z]/i,G=/\d/,Q=/^0x/i,K=/^[0-7]+$/,ee=/^\d+$/,te=/^[\da-f]+$/i,ie=/[\0\t\n\r #%/:<>?@[\\\]^|]/,re=/[\0\t\n\r #/:<>?@[\\\]^|]/,se=/^[\u0000-\u0020]+|[\u0000-\u0020]+$/g,oe=/[\t\n\r]/g,ne=function(e){var t,i,r,s,o,n,h,a=T(e,".");if(a.length&&""==a[a.length-1]&&a.length--,t=a.length,t>4)return e;for(i=[],r=0;r1&&"0"==I(s,0)&&(o=W(Q,s)?16:8,s=z(s,8==o?1:2)),""===s)n=0;else{if(!W(10==o?ee:8==o?K:te,s))return e;n=E(s,o)}B(i,n)}for(r=0;r=Y(256,5-t))return null}else if(n>255)return null;for(h=U(i),r=0;r6)return;r=0;while(p()){if(s=null,r>0){if(!("."==p()&&r<4))return;u++}if(!W(G,p()))return;while(W(G,p())){if(o=E(p(),10),null===s)s=o;else{if(0==s)return;s=10*s+o}if(s>255)return;u++}a[c]=256*a[c]+s,r++,2!=r&&4!=r||c++}if(4!=r)return;break}if(":"==p()){if(u++,!p())return}else if(p())return;a[c++]=t}else{if(null!==l)return;u++,c++,l=c}}if(null!==l){n=c-l,c=7;while(0!=c&&n>0)h=a[c],a[c--]=a[l+n-1],a[l+--n]=h}else if(8!=c)return;return a},ae=function(e){for(var t=null,i=1,r=null,s=0,o=0;o<8;o++)0!==e[o]?(s>i&&(t=r,i=s),r=null,s=0):(null===r&&(r=o),++s);return s>i&&(t=r,i=s),t},ce=function(e){var t,i,r,s;if("number"==typeof e){for(t=[],i=0;i<4;i++)$(t,e%256),e=X(e/256);return N(t,".")}if("object"==typeof e){for(t="",r=ae(e),i=0;i<8;i++)s&&0===e[i]||(s&&(s=!1),r===i?(t+=i?":":"::",s=!0):(t+=P(e[i],16),i<7&&(t+=":")));return"["+t+"]"}return e},le={},ue=d({},le,{" ":1,'"':1,"<":1,">":1,"`":1}),pe=d({},ue,{"#":1,"?":1,"{":1,"}":1}),fe=d({},pe,{"/":1,":":1,";":1,"=":1,"@":1,"[":1,"\\":1,"]":1,"^":1,"|":1}),de=function(e,t){var i=v(e,0);return i>32&&i<127&&!f(t,e)?e:encodeURIComponent(e)},ge={ftp:21,file:null,http:80,https:443,ws:80,wss:443},me=function(e,t){var i;return 2==e.length&&W(J,I(e,0))&&(":"==(i=I(e,1))||!t&&"|"==i)},ve=function(e){var t;return e.length>1&&me(z(e,0,2))&&(2==e.length||"/"===(t=I(e,2))||"\\"===t||"?"===t||"#"===t)},we=function(e){return"."===e||"%2e"===V(e)},be=function(e){return e=V(e),".."===e||"%2e."===e||".%2e"===e||"%2e%2e"===e},xe={},ye={},Ce={},Oe={},je={},Se={},ke={},He={},Me={},Le={},Ee={},Xe={},Ye={},Ie={},We={},Ne={},Pe={},Ue={},Be={},Re={},Ae={},Te=function(e,t,i){var r,s,o,n=b(e);if(t){if(s=this.parse(n),s)throw L(s);this.searchParams=null}else{if(void 0!==i&&(r=new Te(i,!0)),s=this.parse(n,null,r),s)throw L(s);o=H(new k),o.bindURL(this),this.searchParams=o}};Te.prototype={type:"URL",parse:function(e,t,i){var s,o,n,h,a=this,c=t||xe,l=0,u="",p=!1,d=!1,v=!1;e=b(e),t||(a.scheme="",a.username="",a.password="",a.host=null,a.port=null,a.path=[],a.query=null,a.fragment=null,a.cannotBeABaseURL=!1,e=R(e,se,"")),e=R(e,oe,""),s=g(e);while(l<=s.length){switch(o=s[l],c){case xe:if(!o||!W(J,o)){if(t)return D;c=Ce;continue}u+=V(o),c=ye;break;case ye:if(o&&(W(Z,o)||"+"==o||"-"==o||"."==o))u+=V(o);else{if(":"!=o){if(t)return D;u="",c=Ce,l=0;continue}if(t&&(a.isSpecial()!=f(ge,u)||"file"==u&&(a.includesCredentials()||null!==a.port)||"file"==a.scheme&&!a.host))return;if(a.scheme=u,t)return void(a.isSpecial()&&ge[a.scheme]==a.port&&(a.port=null));u="","file"==a.scheme?c=Ie:a.isSpecial()&&i&&i.scheme==a.scheme?c=Oe:a.isSpecial()?c=He:"/"==s[l+1]?(c=je,l++):(a.cannotBeABaseURL=!0,B(a.path,""),c=Be)}break;case Ce:if(!i||i.cannotBeABaseURL&&"#"!=o)return D;if(i.cannotBeABaseURL&&"#"==o){a.scheme=i.scheme,a.path=m(i.path),a.query=i.query,a.fragment="",a.cannotBeABaseURL=!0,c=Ae;break}c="file"==i.scheme?Ie:Se;continue;case Oe:if("/"!=o||"/"!=s[l+1]){c=Se;continue}c=Me,l++;break;case je:if("/"==o){c=Le;break}c=Ue;continue;case Se:if(a.scheme=i.scheme,o==r)a.username=i.username,a.password=i.password,a.host=i.host,a.port=i.port,a.path=m(i.path),a.query=i.query;else if("/"==o||"\\"==o&&a.isSpecial())c=ke;else if("?"==o)a.username=i.username,a.password=i.password,a.host=i.host,a.port=i.port,a.path=m(i.path),a.query="",c=Re;else{if("#"!=o){a.username=i.username,a.password=i.password,a.host=i.host,a.port=i.port,a.path=m(i.path),a.path.length--,c=Ue;continue}a.username=i.username,a.password=i.password,a.host=i.host,a.port=i.port,a.path=m(i.path),a.query=i.query,a.fragment="",c=Ae}break;case ke:if(!a.isSpecial()||"/"!=o&&"\\"!=o){if("/"!=o){a.username=i.username,a.password=i.password,a.host=i.host,a.port=i.port,c=Ue;continue}c=Le}else c=Me;break;case He:if(c=Me,"/"!=o||"/"!=I(u,l+1))continue;l++;break;case Me:if("/"!=o&&"\\"!=o){c=Le;continue}break;case Le:if("@"==o){p&&(u="%40"+u),p=!0,n=g(u);for(var w=0;w65535)return _;a.port=a.isSpecial()&&C===ge[a.scheme]?null:C,u=""}if(t)return;c=Pe;continue}return _}u+=o;break;case Ie:if(a.scheme="file","/"==o||"\\"==o)c=We;else{if(!i||"file"!=i.scheme){c=Ue;continue}if(o==r)a.host=i.host,a.path=m(i.path),a.query=i.query;else if("?"==o)a.host=i.host,a.path=m(i.path),a.query="",c=Re;else{if("#"!=o){ve(N(m(s,l),""))||(a.host=i.host,a.path=m(i.path),a.shortenPath()),c=Ue;continue}a.host=i.host,a.path=m(i.path),a.query=i.query,a.fragment="",c=Ae}}break;case We:if("/"==o||"\\"==o){c=Ne;break}i&&"file"==i.scheme&&!ve(N(m(s,l),""))&&(me(i.path[0],!0)?B(a.path,i.path[0]):a.host=i.host),c=Ue;continue;case Ne:if(o==r||"/"==o||"\\"==o||"?"==o||"#"==o){if(!t&&me(u))c=Ue;else if(""==u){if(a.host="",t)return;c=Pe}else{if(h=a.parseHost(u),h)return h;if("localhost"==a.host&&(a.host=""),t)return;u="",c=Pe}continue}u+=o;break;case Pe:if(a.isSpecial()){if(c=Ue,"/"!=o&&"\\"!=o)continue}else if(t||"?"!=o)if(t||"#"!=o){if(o!=r&&(c=Ue,"/"!=o))continue}else a.fragment="",c=Ae;else a.query="",c=Re;break;case Ue:if(o==r||"/"==o||"\\"==o&&a.isSpecial()||!t&&("?"==o||"#"==o)){if(be(u)?(a.shortenPath(),"/"==o||"\\"==o&&a.isSpecial()||B(a.path,"")):we(u)?"/"==o||"\\"==o&&a.isSpecial()||B(a.path,""):("file"==a.scheme&&!a.path.length&&me(u)&&(a.host&&(a.host=""),u=I(u,0)+":"),B(a.path,u)),u="","file"==a.scheme&&(o==r||"?"==o||"#"==o))while(a.path.length>1&&""===a.path[0])A(a.path);"?"==o?(a.query="",c=Re):"#"==o&&(a.fragment="",c=Ae)}else u+=de(o,pe);break;case Be:"?"==o?(a.query="",c=Re):"#"==o?(a.fragment="",c=Ae):o!=r&&(a.path[0]+=de(o,le));break;case Re:t||"#"!=o?o!=r&&("'"==o&&a.isSpecial()?a.query+="%27":a.query+="#"==o?"%23":de(o,le)):(a.fragment="",c=Ae);break;case Ae:o!=r&&(a.fragment+=de(o,ue));break}l++}},parseHost:function(e){var t,i,r;if("["==I(e,0)){if("]"!=I(e,e.length-1))return F;if(t=he(z(e,1,-1)),!t)return F;this.host=t}else if(this.isSpecial()){if(e=w(e),W(ie,e))return F;if(t=ne(e),null===t)return F;this.host=t}else{if(W(re,e))return F;for(t="",i=g(e),r=0;r1?arguments[1]:void 0,r=j(t,new Te(e,!1,i));o||(t.href=r.serialize(),t.origin=r.getOrigin(),t.protocol=r.getProtocol(),t.username=r.getUsername(),t.password=r.getPassword(),t.host=r.getHost(),t.hostname=r.getHostname(),t.port=r.getPort(),t.pathname=r.getPathname(),t.search=r.getSearch(),t.searchParams=r.getSearchParams(),t.hash=r.getHash())},Ve=ze.prototype,$e=function(e,t){return{get:function(){return S(this)[e]()},set:t&&function(e){return S(this)[t](e)},configurable:!0,enumerable:!0}};if(o&&l(Ve,{href:$e("serialize","setHref"),origin:$e("getOrigin"),protocol:$e("getProtocol","setProtocol"),username:$e("getUsername","setUsername"),password:$e("getPassword","setPassword"),host:$e("getHost","setHost"),hostname:$e("getHostname","setHostname"),port:$e("getPort","setPort"),pathname:$e("getPathname","setPathname"),search:$e("getSearch","setSearch"),searchParams:$e("getSearchParams"),hash:$e("getHash","setHash")}),u(Ve,"toJSON",(function(){return S(this).serialize()}),{enumerable:!0}),u(Ve,"toString",(function(){return S(this).serialize()}),{enumerable:!0}),M){var qe=M.createObjectURL,De=M.revokeObjectURL;qe&&u(ze,"createObjectURL",a(qe,M)),De&&u(ze,"revokeObjectURL",a(De,M))}x(ze,"URL"),s({global:!0,forced:!n,sham:!o},{URL:ze})},"5fb2":function(e,t,i){"use strict";var r=i("da84"),s=i("e330"),o=2147483647,n=36,h=1,a=26,c=38,l=700,u=72,p=128,f="-",d=/[^\0-\u007E]/,g=/[.\u3002\uFF0E\uFF61]/g,m="Overflow: input needs wider integers to process",v=n-h,w=r.RangeError,b=s(g.exec),x=Math.floor,y=String.fromCharCode,C=s("".charCodeAt),O=s([].join),j=s([].push),S=s("".replace),k=s("".split),H=s("".toLowerCase),M=function(e){var t=[],i=0,r=e.length;while(i=55296&&s<=56319&&i>1,e+=x(e/t);while(e>v*a>>1)e=x(e/v),r+=n;return x(r+(v+1)*e/(e+c))},X=function(e){var t=[];e=M(e);var i,r,s=e.length,c=p,l=0,d=u;for(i=0;i=c&&rx((o-l)/C))throw w(m);for(l+=(b-c)*C,c=b,i=0;io)throw w(m);if(r==c){var S=l,k=n;while(1){var H=k<=d?h:k>=d+a?a:k-d;if(S"+a+""+t+">"}},9861:function(e,t,i){"use strict";i("e260");var r=i("23e7"),s=i("da84"),o=i("d066"),n=i("c65b"),h=i("e330"),a=i("0d3b"),c=i("6eeb"),l=i("e2cc"),u=i("d44e"),p=i("9ed3"),f=i("69f3"),d=i("19aa"),g=i("1626"),m=i("1a2d"),v=i("0366"),w=i("f5df"),b=i("825a"),x=i("861d"),y=i("577e"),C=i("7c73"),O=i("5c6c"),j=i("9a1f"),S=i("35a1"),k=i("d6d6"),H=i("b622"),M=i("addb"),L=H("iterator"),E="URLSearchParams",X=E+"Iterator",Y=f.set,I=f.getterFor(E),W=f.getterFor(X),N=o("fetch"),P=o("Request"),U=o("Headers"),B=P&&P.prototype,R=U&&U.prototype,A=s.RegExp,T=s.TypeError,z=s.decodeURIComponent,V=s.encodeURIComponent,$=h("".charAt),q=h([].join),D=h([].push),F=h("".replace),_=h([].shift),J=h([].splice),Z=h("".split),G=h("".slice),Q=/\+/g,K=Array(4),ee=function(e){return K[e-1]||(K[e-1]=A("((?:%[\\da-f]{2}){"+e+"})","gi"))},te=function(e){try{return z(e)}catch(t){return e}},ie=function(e){var t=F(e,Q," "),i=4;try{return z(t)}catch(r){while(i)t=F(t,ee(i--),te);return t}},re=/[!'()~]|%20/g,se={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+"},oe=function(e){return se[e]},ne=function(e){return F(V(e),re,oe)},he=p((function(e,t){Y(this,{type:X,iterator:j(I(e).entries),kind:t})}),"Iterator",(function(){var e=W(this),t=e.kind,i=e.iterator.next(),r=i.value;return i.done||(i.value="keys"===t?r.key:"values"===t?r.value:[r.key,r.value]),i}),!0),ae=function(e){this.entries=[],this.url=null,void 0!==e&&(x(e)?this.parseObject(e):this.parseQuery("string"==typeof e?"?"===$(e,0)?G(e,1):e:y(e)))};ae.prototype={type:E,bindURL:function(e){this.url=e,this.update()},parseObject:function(e){var t,i,r,s,o,h,a,c=S(e);if(c){t=j(e,c),i=t.next;while(!(r=n(i,t)).done){if(s=j(b(r.value)),o=s.next,(h=n(o,s)).done||(a=n(o,s)).done||!n(o,s).done)throw T("Expected sequence with length 2");D(this.entries,{key:y(h.value),value:y(a.value)})}}else for(var l in e)m(e,l)&&D(this.entries,{key:l,value:y(e[l])})},parseQuery:function(e){if(e){var t,i,r=Z(e,"&"),s=0;while(s0?arguments[0]:void 0;Y(this,new ae(e))},le=ce.prototype;if(l(le,{append:function(e,t){k(arguments.length,2);var i=I(this);D(i.entries,{key:y(e),value:y(t)}),i.updateURL()},delete:function(e){k(arguments.length,1);var t=I(this),i=t.entries,r=y(e),s=0;while(st.key?1:-1})),e.updateURL()},forEach:function(e){var t,i=I(this).entries,r=v(e,arguments.length>1?arguments[1]:void 0),s=0;while(s1?fe(arguments[1]):{})}}),g(P)){var de=function(e){return d(this,B),new P(e,arguments.length>1?fe(arguments[1]):{})};B.constructor=de,de.prototype=B,r({global:!0,forced:!0},{Request:de})}}e.exports={URLSearchParams:ce,getState:I}},addb:function(e,t,i){var r=i("4dae"),s=Math.floor,o=function(e,t){var i=e.length,a=s(i/2);return i<8?n(e,t):h(e,o(r(e,0,a),t),o(r(e,a),t),t)},n=function(e,t){var i,r,s=e.length,o=1;while(o0)e[r]=e[--r];r!==o++&&(e[r]=i)}return e},h=function(e,t,i,r){var s=t.length,o=i.length,n=0,h=0;while(n3}))}},c6fb:function(e,t,i){},c7cd:function(e,t,i){"use strict";var r=i("23e7"),s=i("857a"),o=i("af03");r({target:"String",proto:!0,forced:o("fixed")},{fixed:function(){return s(this,"tt","","")}})},e477:function(e,t,i){"use strict";i("c6fb")}}]);
+//# sourceMappingURL=chunk-000055b2.8b8a6d20.js.map
\ No newline at end of file
diff --git a/dist/js/chunk-000055b2.8b8a6d20.js.map b/dist/js/chunk-000055b2.8b8a6d20.js.map
new file mode 100644
index 0000000..033a07a
--- /dev/null
+++ b/dist/js/chunk-000055b2.8b8a6d20.js.map
@@ -0,0 +1 @@
+{"version":3,"sources":["webpack:///./node_modules/core-js/internals/native-url.js","webpack:///./src/assets/image/cro.jpg","webpack:///./node_modules/@babel/runtime/helpers/esm/typeof.js","webpack:///./node_modules/vue-cropper/dist/vue-cropper.es.js","webpack:///./src/views/other/cropper/index.vue?bd42","webpack:///./src/views/other/cropper/index.vue","webpack:///./node_modules/core-js/modules/web.url.js","webpack:///./node_modules/core-js/internals/string-punycode-to-ascii.js","webpack:///./node_modules/core-js/internals/create-html.js","webpack:///./node_modules/core-js/modules/web.url-search-params.js","webpack:///./node_modules/core-js/internals/array-sort.js","webpack:///./node_modules/core-js/internals/string-html-forced.js","webpack:///./node_modules/core-js/modules/es.string.fixed.js","webpack:///./src/views/other/cropper/index.vue?5539"],"names":["fails","wellKnownSymbol","IS_PURE","ITERATOR","module","exports","url","URL","searchParams","result","pathname","forEach","value","key","toJSON","sort","href","get","String","URLSearchParams","username","host","hash","undefined","_typeof","obj","Symbol","iterator","constructor","prototype","Exif","getImageData","img","data","Promise","reslove","reject","src","test","base64ToArrayBuffer","fileReader","FileReader","onload","e","target","objectURLToBlob","blob","readAsArrayBuffer","http","XMLHttpRequest","this","status","response","open","responseType","send","callback","base64","replace","binary","atob","len","length","buffer","ArrayBuffer","view","Uint8Array","i","charCodeAt","getStringFromCharCode","dataView","start","str","fromCharCode","getUint8","getOrientation","arrayBuffer","orientation","exifIDCode","tiffOffset","firstIFDOffset","littleEndian","endianness","app1Start","ifdStart","offset","DataView","byteLength","getUint16","getUint32","getData","then","catch","error","_export_sfc","sfc","props","__vccOpts","val","_sfc_main","w","h","scale","x","y","loading","trueWidth","trueHeight","move","moveX","moveY","crop","cropping","cropW","cropH","cropOldW","cropOldH","canChangeX","canChangeY","changeCropTypeX","changeCropTypeY","cropX","cropY","cropChangeX","cropChangeY","cropOffsertX","cropOffsertY","support","touches","touchNow","rotate","isIos","imgs","coe","scaling","scalingSet","coeStatus","isCanShow","type","Blob","File","default","outputSize","Number","outputType","info","Boolean","canScale","autoCrop","autoCropWidth","autoCropHeight","fixed","fixedNumber","Array","fixedBox","full","canMove","canMoveBox","original","centerBox","high","infoTrue","maxImgSize","enlarge","preW","mode","limitMinSize","computed","top","width","height","dpr","window","devicePixelRatio","Math","abs","toFixed","isIE","ActiveXObject","passive","watch","checkedImg","reload","showPreview","oldVal","goAutoCrop","methods","name","arr","navigator","userAgent","split","chromeVersion","reg","RegExp","getVersion","safariVersion","toLowerCase","match","version","canvas","document","createElement","ctx","getContext","save","translate","PI","drawImage","restore","toBlob","createObjectURL","revokeObjectURL","clearCrop","Image","$emit","max","checkOrientationImage","onerror","substr","crossOrigin","xhr","preventDefault","clientX","clientY","addEventListener","moveImg","leaveImg","touchScale","cancelTouchScale","moving","axis","getImgAxis","createCrop","endCrop","offsetX","pageX","$refs","cropper","offsetLeft","offsetY","pageY","offsetTop","oldTouch1","newTouch1","oldTouch2","newTouch2","oldL","sqrt","pow","newL","cha","num","setTimeout","checkoutImgAxis","removeEventListener","changeX","changeY","nowX","nowY","$nextTick","maxLeft","maxTop","maxRight","maxBottom","cropAxis","getCropAxis","imgW","imgH","x1","y1","x2","y2","changeSize","change","deltaY","wheelDelta","isFirefox","indexOf","fw","fh","fixedHeight","typeW","typeH","changeCropNow","changeCropEnd","wrapperW","wrapperH","minX","minY","fixedWidth","limitMinNum","isArray","parseFloat","startMove","leaveCrop","moveCrop","newX","newY","isMove","cx","cy","cb","dx","dy","setCanvasSize","s","round","getCropChecked","toDataURL","div","transformX","transformY","transformZ","transform","html","getComputedStyle","checkedMode","search","scaleX","scaleY","strH","min","str2","cw","ch","maxWidth","maxHeight","switchWH","changeCrop","checkCropLimitSize","canGo","onmousewheel","that","u","isIOS","HTMLCanvasElement","Object","defineProperty","quality","binStr","cancelScale","_hoisted_1","class","_hoisted_2","_hoisted_3","_hoisted_4","_hoisted_5","_sfc_render","_ctx","_cache","$props","$setup","$data","$options","ref","onMouseover","args","scaleImg","onMouseout","style","alt","onMousedown","onTouchstart","cropMove","cropInfo","$event","changeCropSize","VueCropper","Vue","createApp","component","_withScopeId","n","_pushScopeId","_popScopeId","_createTextVNode","_hoisted_6","_hoisted_7","_hoisted_8","_hoisted_9","_hoisted_10","_hoisted_11","_hoisted_12","_createElementVNode","_hoisted_13","_hoisted_14","_hoisted_15","_hoisted_16","_defineComponent","setup","__props","imgSrc","cro","option","reactive","size","previews","cropImg","realTime","zoom","percent","changeScale","rotateLeft","rotateRight","down","aLink","download","getCropBlob","click","getCropData","cropImage","reset","beforeUpload","file","fileList","resolve","reader","readAsDataURL","ElMessage","_component_el_button","_resolveComponent","_component_el_upload","_openBlock","_createElementBlock","_createVNode","_unref","ref_key","onRealTime","onClick","_withModifiers","_withCtx","_","action","_normalizeStyle","_createCommentVNode","__exports__","EOF","$","DESCRIPTORS","USE_NATIVE_URL","global","bind","uncurryThis","defineProperties","f","redefine","anInstance","hasOwn","assign","arrayFrom","arraySlice","codeAt","toASCII","$toString","setToStringTag","validateArgumentsLength","URLSearchParamsModule","InternalStateModule","setInternalState","set","getInternalURLState","getterFor","getInternalSearchParamsState","getState","NativeURL","TypeError","parseInt","floor","charAt","exec","join","numberToString","toString","pop","push","shift","stringSlice","slice","unshift","INVALID_AUTHORITY","INVALID_SCHEME","INVALID_HOST","INVALID_PORT","ALPHA","ALPHANUMERIC","DIGIT","HEX_START","OCT","DEC","HEX","FORBIDDEN_HOST_CODE_POINT","FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT","LEADING_AND_TRAILING_C0_CONTROL_OR_SPACE","TAB_AND_NEW_LINE","parseIPv4","input","partsLength","numbers","index","part","radix","number","ipv4","parts","parseIPv6","numbersSeen","ipv4Piece","swaps","swap","address","pieceIndex","compress","pointer","chr","findLongestZeroSequence","ipv6","maxIndex","maxLength","currStart","currLength","serializeHost","ignore0","C0ControlPercentEncodeSet","fragmentPercentEncodeSet","pathPercentEncodeSet","userinfoPercentEncodeSet","percentEncode","code","encodeURIComponent","specialSchemes","ftp","https","ws","wss","isWindowsDriveLetter","string","normalized","second","startsWithWindowsDriveLetter","third","isSingleDot","segment","isDoubleDot","SCHEME_START","SCHEME","NO_SCHEME","SPECIAL_RELATIVE_OR_AUTHORITY","PATH_OR_AUTHORITY","RELATIVE","RELATIVE_SLASH","SPECIAL_AUTHORITY_SLASHES","SPECIAL_AUTHORITY_IGNORE_SLASHES","AUTHORITY","HOST","HOSTNAME","PORT","FILE","FILE_SLASH","FILE_HOST","PATH_START","PATH","CANNOT_BE_A_BASE_URL_PATH","QUERY","FRAGMENT","URLState","isBase","base","baseState","failure","urlString","parse","bindURL","stateOverride","codePoints","bufferCodePoints","state","seenAt","seenBracket","seenPasswordToken","scheme","password","port","path","query","fragment","cannotBeABaseURL","isSpecial","includesCredentials","codePoint","encodedCodePoints","parseHost","shortenPath","cannotHaveUsernamePasswordPort","pathSize","serialize","output","setHref","update","getOrigin","URLConstructor","origin","getProtocol","setProtocol","protocol","getUsername","setUsername","getPassword","setPassword","getHost","setHost","getHostname","setHostname","hostname","getPort","setPort","getPathname","setPathname","getSearch","setSearch","getSearchParams","facade","getHash","setHash","URLPrototype","arguments","accessorDescriptor","getter","setter","configurable","enumerable","nativeCreateObjectURL","nativeRevokeObjectURL","forced","sham","maxInt","tMin","tMax","skew","damp","initialBias","initialN","delimiter","regexNonASCII","regexSeparators","OVERFLOW_ERROR","baseMinusTMin","RangeError","ucs2decode","counter","extra","digitToBasic","digit","adapt","delta","numPoints","firstTime","k","encode","currentValue","inputLength","bias","basicLength","handledCPCount","m","handledCPCountPlusOne","q","t","qMinusT","baseMinusT","label","encoded","labels","requireObjectCoercible","quot","tag","attribute","S","p1","getBuiltIn","call","redefineAll","createIteratorConstructor","isCallable","classof","anObject","isObject","create","createPropertyDescriptor","getIterator","getIteratorMethod","arraySort","URL_SEARCH_PARAMS","URL_SEARCH_PARAMS_ITERATOR","getInternalParamsState","getInternalIteratorState","n$Fetch","N$Request","Headers","RequestPrototype","HeadersPrototype","decodeURIComponent","splice","plus","sequences","percentSequence","bytes","percentDecode","sequence","deserialize","it","find","replacements","replacer","URLSearchParamsIterator","params","kind","entries","step","next","entry","done","URLSearchParamsState","init","parseObject","parseQuery","object","entryIterator","entryNext","first","iteratorMethod","attributes","updateURL","URLSearchParamsConstructor","URLSearchParamsPrototype","append","getAll","has","found","a","b","boundFunction","keys","values","headersHas","headersSet","wrapRequestOptions","headers","body","fetch","RequestConstructor","Request","mergeSort","array","comparefn","middle","insertionSort","merge","element","j","left","right","llength","rlength","lindex","rindex","METHOD_NAME","createHTML","forcedStringHTMLMethod","proto"],"mappings":"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","file":"js/chunk-000055b2.8b8a6d20.js","sourcesContent":["var fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = !fails(function () {\n // eslint-disable-next-line unicorn/relative-url-style -- required for testing\n var url = new URL('b?a=1&b=2&c=3', 'http://a');\n var searchParams = url.searchParams;\n var result = '';\n url.pathname = 'c%20d';\n searchParams.forEach(function (value, key) {\n searchParams['delete']('b');\n result += key + value;\n });\n return (IS_PURE && !url.toJSON)\n || !searchParams.sort\n || url.href !== 'http://a/c%20d?a=1&c=3'\n || searchParams.get('c') !== '3'\n || String(new URLSearchParams('?a=1')) !== 'a=1'\n || !searchParams[ITERATOR]\n // throws in Edge\n || new URL('https://a@b').username !== 'a'\n || new URLSearchParams(new URLSearchParams('a=b')).get('a') !== 'b'\n // not punycoded in Edge\n || new URL('http://тест').host !== 'xn--e1aybc'\n // not escaped in Chrome 62-\n || new URL('http://a#б').hash !== '#%D0%B1'\n // fails in Chrome 66-\n || result !== 'a1c3'\n // throws in Safari\n || new URL('http://x', undefined).host !== 'x';\n});\n","module.exports = __webpack_public_path__ + \"img/cro.6ba28915.jpg\";","export default function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n}","import { defineComponent, openBlock, createElementBlock, withDirectives, createElementVNode, normalizeStyle, vShow, createCommentVNode, normalizeClass, toDisplayString } from \"vue\";\nconst Exif = {};\nExif.getData = (img) => new Promise((reslove, reject) => {\n let obj = {};\n getImageData(img).then((data) => {\n obj.arrayBuffer = data;\n obj.orientation = getOrientation(data);\n reslove(obj);\n }).catch((error) => {\n reject(error);\n });\n});\nfunction getImageData(img) {\n let data = null;\n return new Promise((reslove, reject) => {\n if (img.src) {\n if (/^data\\:/i.test(img.src)) {\n data = base64ToArrayBuffer(img.src);\n reslove(data);\n } else if (/^blob\\:/i.test(img.src)) {\n var fileReader = new FileReader();\n fileReader.onload = function(e) {\n data = e.target.result;\n reslove(data);\n };\n objectURLToBlob(img.src, function(blob) {\n fileReader.readAsArrayBuffer(blob);\n });\n } else {\n var http = new XMLHttpRequest();\n http.onload = function() {\n if (this.status == 200 || this.status === 0) {\n data = http.response;\n reslove(data);\n } else {\n throw \"Could not load image\";\n }\n http = null;\n };\n http.open(\"GET\", img.src, true);\n http.responseType = \"arraybuffer\";\n http.send(null);\n }\n } else {\n reject(\"img error\");\n }\n });\n}\nfunction objectURLToBlob(url, callback) {\n var http = new XMLHttpRequest();\n http.open(\"GET\", url, true);\n http.responseType = \"blob\";\n http.onload = function(e) {\n if (this.status == 200 || this.status === 0) {\n callback(this.response);\n }\n };\n http.send();\n}\nfunction base64ToArrayBuffer(base64) {\n base64 = base64.replace(/^data\\:([^\\;]+)\\;base64,/gmi, \"\");\n var binary = atob(base64);\n var len = binary.length;\n var buffer = new ArrayBuffer(len);\n var view = new Uint8Array(buffer);\n for (var i = 0; i < len; i++) {\n view[i] = binary.charCodeAt(i);\n }\n return buffer;\n}\nfunction getStringFromCharCode(dataView, start, length) {\n var str = \"\";\n var i;\n for (i = start, length += start; i < length; i++) {\n str += String.fromCharCode(dataView.getUint8(i));\n }\n return str;\n}\nfunction getOrientation(arrayBuffer) {\n var dataView = new DataView(arrayBuffer);\n var length = dataView.byteLength;\n var orientation;\n var exifIDCode;\n var tiffOffset;\n var firstIFDOffset;\n var littleEndian;\n var endianness;\n var app1Start;\n var ifdStart;\n var offset;\n var i;\n if (dataView.getUint8(0) === 255 && dataView.getUint8(1) === 216) {\n offset = 2;\n while (offset < length) {\n if (dataView.getUint8(offset) === 255 && dataView.getUint8(offset + 1) === 225) {\n app1Start = offset;\n break;\n }\n offset++;\n }\n }\n if (app1Start) {\n exifIDCode = app1Start + 4;\n tiffOffset = app1Start + 10;\n if (getStringFromCharCode(dataView, exifIDCode, 4) === \"Exif\") {\n endianness = dataView.getUint16(tiffOffset);\n littleEndian = endianness === 18761;\n if (littleEndian || endianness === 19789) {\n if (dataView.getUint16(tiffOffset + 2, littleEndian) === 42) {\n firstIFDOffset = dataView.getUint32(tiffOffset + 4, littleEndian);\n if (firstIFDOffset >= 8) {\n ifdStart = tiffOffset + firstIFDOffset;\n }\n }\n }\n }\n }\n if (ifdStart) {\n length = dataView.getUint16(ifdStart, littleEndian);\n for (i = 0; i < length; i++) {\n offset = ifdStart + i * 12 + 2;\n if (dataView.getUint16(offset, littleEndian) === 274) {\n offset += 8;\n orientation = dataView.getUint16(offset, littleEndian);\n break;\n }\n }\n }\n return orientation;\n}\nvar vueCropper_vue_vue_type_style_index_0_scoped_true_lang = \"\";\nvar _export_sfc = (sfc, props) => {\n const target = sfc.__vccOpts || sfc;\n for (const [key, val] of props) {\n target[key] = val;\n }\n return target;\n};\nconst _sfc_main = defineComponent({\n data: function() {\n return {\n w: 0,\n h: 0,\n scale: 1,\n x: 0,\n y: 0,\n loading: true,\n trueWidth: 0,\n trueHeight: 0,\n move: true,\n moveX: 0,\n moveY: 0,\n crop: false,\n cropping: false,\n cropW: 0,\n cropH: 0,\n cropOldW: 0,\n cropOldH: 0,\n canChangeX: false,\n canChangeY: false,\n changeCropTypeX: 1,\n changeCropTypeY: 1,\n cropX: 0,\n cropY: 0,\n cropChangeX: 0,\n cropChangeY: 0,\n cropOffsertX: 0,\n cropOffsertY: 0,\n support: \"\",\n touches: [],\n touchNow: false,\n rotate: 0,\n isIos: false,\n orientation: 0,\n imgs: \"\",\n coe: 0.2,\n scaling: false,\n scalingSet: \"\",\n coeStatus: \"\",\n isCanShow: true\n };\n },\n props: {\n img: {\n type: [String, Blob, null, File],\n default: \"\"\n },\n outputSize: {\n type: Number,\n default: 1\n },\n outputType: {\n type: String,\n default: \"jpeg\"\n },\n info: {\n type: Boolean,\n default: true\n },\n canScale: {\n type: Boolean,\n default: true\n },\n autoCrop: {\n type: Boolean,\n default: false\n },\n autoCropWidth: {\n type: [Number, String],\n default: 0\n },\n autoCropHeight: {\n type: [Number, String],\n default: 0\n },\n fixed: {\n type: Boolean,\n default: false\n },\n fixedNumber: {\n type: Array,\n default: () => {\n return [1, 1];\n }\n },\n fixedBox: {\n type: Boolean,\n default: false\n },\n full: {\n type: Boolean,\n default: false\n },\n canMove: {\n type: Boolean,\n default: true\n },\n canMoveBox: {\n type: Boolean,\n default: true\n },\n original: {\n type: Boolean,\n default: false\n },\n centerBox: {\n type: Boolean,\n default: false\n },\n high: {\n type: Boolean,\n default: true\n },\n infoTrue: {\n type: Boolean,\n default: false\n },\n maxImgSize: {\n type: [Number, String],\n default: 2e3\n },\n enlarge: {\n type: [Number, String],\n default: 1\n },\n preW: {\n type: [Number, String],\n default: 0\n },\n mode: {\n type: String,\n default: \"contain\"\n },\n limitMinSize: {\n type: [Number, Array, String],\n default: () => {\n return 10;\n }\n }\n },\n computed: {\n cropInfo() {\n let obj = {};\n obj.top = this.cropOffsertY > 21 ? \"-21px\" : \"0px\";\n obj.width = this.cropW > 0 ? this.cropW : 0;\n obj.height = this.cropH > 0 ? this.cropH : 0;\n if (this.infoTrue) {\n let dpr = 1;\n if (this.high && !this.full) {\n dpr = window.devicePixelRatio;\n }\n if (this.enlarge !== 1 & !this.full) {\n dpr = Math.abs(Number(this.enlarge));\n }\n obj.width = obj.width * dpr;\n obj.height = obj.height * dpr;\n if (this.full) {\n obj.width = obj.width / this.scale;\n obj.height = obj.height / this.scale;\n }\n }\n obj.width = obj.width.toFixed(0);\n obj.height = obj.height.toFixed(0);\n return obj;\n },\n isIE() {\n const isIE = !!window.ActiveXObject || \"ActiveXObject\" in window;\n return isIE;\n },\n passive() {\n return this.isIE ? null : {\n passive: false\n };\n }\n },\n watch: {\n img() {\n this.checkedImg();\n },\n imgs(val) {\n if (val === \"\") {\n return;\n }\n this.reload();\n },\n cropW() {\n this.showPreview();\n },\n cropH() {\n this.showPreview();\n },\n cropOffsertX() {\n this.showPreview();\n },\n cropOffsertY() {\n this.showPreview();\n },\n scale(val, oldVal) {\n this.showPreview();\n },\n x() {\n this.showPreview();\n },\n y() {\n this.showPreview();\n },\n autoCrop(val) {\n if (val) {\n this.goAutoCrop();\n }\n },\n autoCropWidth() {\n if (this.autoCrop) {\n this.goAutoCrop();\n }\n },\n autoCropHeight() {\n if (this.autoCrop) {\n this.goAutoCrop();\n }\n },\n mode() {\n this.checkedImg();\n },\n rotate() {\n this.showPreview();\n if (this.autoCrop) {\n this.goAutoCrop(this.cropW, this.cropH);\n } else {\n if (this.cropW > 0 || this.cropH > 0) {\n this.goAutoCrop(this.cropW, this.cropH);\n }\n }\n }\n },\n methods: {\n getVersion(name) {\n var arr = navigator.userAgent.split(\" \");\n var chromeVersion = \"\";\n let result = 0;\n const reg = new RegExp(name, \"i\");\n for (var i = 0; i < arr.length; i++) {\n if (reg.test(arr[i]))\n chromeVersion = arr[i];\n }\n if (chromeVersion) {\n result = chromeVersion.split(\"/\")[1].split(\".\");\n } else {\n result = [\"0\", \"0\", \"0\"];\n }\n return result;\n },\n checkOrientationImage(img, orientation, width, height) {\n if (this.getVersion(\"chrome\")[0] >= 81) {\n orientation = -1;\n } else {\n if (this.getVersion(\"safari\")[0] >= 605) {\n const safariVersion = this.getVersion(\"version\");\n if (safariVersion[0] > 13 && safariVersion[1] > 1) {\n orientation = -1;\n }\n } else {\n const isIos = navigator.userAgent.toLowerCase().match(/cpu iphone os (.*?) like mac os/);\n if (isIos) {\n let version = isIos[1];\n version = version.split(\"_\");\n if (version[0] > 13 || version[0] >= 13 && version[1] >= 4) {\n orientation = -1;\n }\n }\n }\n }\n let canvas = document.createElement(\"canvas\");\n let ctx = canvas.getContext(\"2d\");\n ctx.save();\n switch (orientation) {\n case 2:\n canvas.width = width;\n canvas.height = height;\n ctx.translate(width, 0);\n ctx.scale(-1, 1);\n break;\n case 3:\n canvas.width = width;\n canvas.height = height;\n ctx.translate(width / 2, height / 2);\n ctx.rotate(180 * Math.PI / 180);\n ctx.translate(-width / 2, -height / 2);\n break;\n case 4:\n canvas.width = width;\n canvas.height = height;\n ctx.translate(0, height);\n ctx.scale(1, -1);\n break;\n case 5:\n canvas.height = width;\n canvas.width = height;\n ctx.rotate(0.5 * Math.PI);\n ctx.scale(1, -1);\n break;\n case 6:\n canvas.width = height;\n canvas.height = width;\n ctx.translate(height / 2, width / 2);\n ctx.rotate(90 * Math.PI / 180);\n ctx.translate(-width / 2, -height / 2);\n break;\n case 7:\n canvas.height = width;\n canvas.width = height;\n ctx.rotate(0.5 * Math.PI);\n ctx.translate(width, -height);\n ctx.scale(-1, 1);\n break;\n case 8:\n canvas.height = width;\n canvas.width = height;\n ctx.translate(height / 2, width / 2);\n ctx.rotate(-90 * Math.PI / 180);\n ctx.translate(-width / 2, -height / 2);\n break;\n default:\n canvas.width = width;\n canvas.height = height;\n }\n ctx.drawImage(img, 0, 0, width, height);\n ctx.restore();\n canvas.toBlob((blob) => {\n let data = URL.createObjectURL(blob);\n URL.revokeObjectURL(this.imgs);\n this.imgs = data;\n }, \"image/\" + this.outputType, 1);\n },\n checkedImg() {\n if (this.img === null || this.img === \"\") {\n this.imgs = \"\";\n this.clearCrop();\n return;\n }\n this.loading = true;\n this.scale = 1;\n this.rotate = 0;\n this.clearCrop();\n let img = new Image();\n img.onload = () => {\n if (this.img === \"\") {\n this.$emit(\"img-load\", \"error\");\n return false;\n }\n let width = img.width;\n let height = img.height;\n Exif.getData(img).then((data) => {\n this.orientation = data.orientation || 1;\n let max = Number(this.maxImgSize);\n if (!this.orientation && width < max & height < max) {\n this.imgs = this.img;\n return;\n }\n if (width > max) {\n height = height / width * max;\n width = max;\n }\n if (height > max) {\n width = width / height * max;\n height = max;\n }\n this.checkOrientationImage(img, this.orientation, width, height);\n });\n };\n img.onerror = () => {\n this.$emit(\"img-load\", \"error\");\n };\n if (this.img.substr(0, 4) !== \"data\") {\n img.crossOrigin = \"\";\n }\n if (this.isIE) {\n var xhr = new XMLHttpRequest();\n xhr.onload = function() {\n var url = URL.createObjectURL(this.response);\n img.src = url;\n };\n xhr.open(\"GET\", this.img, true);\n xhr.responseType = \"blob\";\n xhr.send();\n } else {\n img.src = this.img;\n }\n },\n startMove(e) {\n e.preventDefault();\n if (this.move && !this.crop) {\n if (!this.canMove) {\n return false;\n }\n this.moveX = (\"clientX\" in e ? e.clientX : e.touches[0].clientX) - this.x;\n this.moveY = (\"clientY\" in e ? e.clientY : e.touches[0].clientY) - this.y;\n if (e.touches) {\n window.addEventListener(\"touchmove\", this.moveImg);\n window.addEventListener(\"touchend\", this.leaveImg);\n if (e.touches.length == 2) {\n this.touches = e.touches;\n window.addEventListener(\"touchmove\", this.touchScale);\n window.addEventListener(\"touchend\", this.cancelTouchScale);\n }\n } else {\n window.addEventListener(\"mousemove\", this.moveImg);\n window.addEventListener(\"mouseup\", this.leaveImg);\n }\n this.$emit(\"imgMoving\", {\n moving: true,\n axis: this.getImgAxis()\n });\n this.$emit(\"img-moving\", {\n moving: true,\n axis: this.getImgAxis()\n });\n } else {\n this.cropping = true;\n window.addEventListener(\"mousemove\", this.createCrop);\n window.addEventListener(\"mouseup\", this.endCrop);\n window.addEventListener(\"touchmove\", this.createCrop);\n window.addEventListener(\"touchend\", this.endCrop);\n this.cropOffsertX = e.offsetX ? e.offsetX : e.touches[0].pageX - this.$refs.cropper.offsetLeft;\n this.cropOffsertY = e.offsetY ? e.offsetY : e.touches[0].pageY - this.$refs.cropper.offsetTop;\n this.cropX = \"clientX\" in e ? e.clientX : e.touches[0].clientX;\n this.cropY = \"clientY\" in e ? e.clientY : e.touches[0].clientY;\n this.cropChangeX = this.cropOffsertX;\n this.cropChangeY = this.cropOffsertY;\n this.cropW = 0;\n this.cropH = 0;\n }\n },\n touchScale(e) {\n e.preventDefault();\n let scale = this.scale;\n var oldTouch1 = {\n x: this.touches[0].clientX,\n y: this.touches[0].clientY\n };\n var newTouch1 = {\n x: e.touches[0].clientX,\n y: e.touches[0].clientY\n };\n var oldTouch2 = {\n x: this.touches[1].clientX,\n y: this.touches[1].clientY\n };\n var newTouch2 = {\n x: e.touches[1].clientX,\n y: e.touches[1].clientY\n };\n var oldL = Math.sqrt(Math.pow(oldTouch1.x - oldTouch2.x, 2) + Math.pow(oldTouch1.y - oldTouch2.y, 2));\n var newL = Math.sqrt(Math.pow(newTouch1.x - newTouch2.x, 2) + Math.pow(newTouch1.y - newTouch2.y, 2));\n var cha = newL - oldL;\n var coe = 1;\n coe = coe / this.trueWidth > coe / this.trueHeight ? coe / this.trueHeight : coe / this.trueWidth;\n coe = coe > 0.1 ? 0.1 : coe;\n var num = coe * cha;\n if (!this.touchNow) {\n this.touchNow = true;\n if (cha > 0) {\n scale += Math.abs(num);\n } else if (cha < 0) {\n scale > Math.abs(num) ? scale -= Math.abs(num) : scale;\n }\n this.touches = e.touches;\n setTimeout(() => {\n this.touchNow = false;\n }, 8);\n if (!this.checkoutImgAxis(this.x, this.y, scale)) {\n return false;\n }\n this.scale = scale;\n }\n },\n cancelTouchScale(e) {\n window.removeEventListener(\"touchmove\", this.touchScale);\n },\n moveImg(e) {\n e.preventDefault();\n if (e.touches && e.touches.length === 2) {\n this.touches = e.touches;\n window.addEventListener(\"touchmove\", this.touchScale);\n window.addEventListener(\"touchend\", this.cancelTouchScale);\n window.removeEventListener(\"touchmove\", this.moveImg);\n return false;\n }\n let nowX = \"clientX\" in e ? e.clientX : e.touches[0].clientX;\n let nowY = \"clientY\" in e ? e.clientY : e.touches[0].clientY;\n let changeX, changeY;\n changeX = nowX - this.moveX;\n changeY = nowY - this.moveY;\n this.$nextTick(() => {\n if (this.centerBox) {\n let axis = this.getImgAxis(changeX, changeY, this.scale);\n let cropAxis = this.getCropAxis();\n let imgW = this.trueHeight * this.scale;\n let imgH = this.trueWidth * this.scale;\n let maxLeft, maxTop, maxRight, maxBottom;\n switch (this.rotate) {\n case 1:\n case -1:\n case 3:\n case -3:\n maxLeft = this.cropOffsertX - this.trueWidth * (1 - this.scale) / 2 + (imgW - imgH) / 2;\n maxTop = this.cropOffsertY - this.trueHeight * (1 - this.scale) / 2 + (imgH - imgW) / 2;\n maxRight = maxLeft - imgW + this.cropW;\n maxBottom = maxTop - imgH + this.cropH;\n break;\n default:\n maxLeft = this.cropOffsertX - this.trueWidth * (1 - this.scale) / 2;\n maxTop = this.cropOffsertY - this.trueHeight * (1 - this.scale) / 2;\n maxRight = maxLeft - imgH + this.cropW;\n maxBottom = maxTop - imgW + this.cropH;\n break;\n }\n if (axis.x1 >= cropAxis.x1) {\n changeX = maxLeft;\n }\n if (axis.y1 >= cropAxis.y1) {\n changeY = maxTop;\n }\n if (axis.x2 <= cropAxis.x2) {\n changeX = maxRight;\n }\n if (axis.y2 <= cropAxis.y2) {\n changeY = maxBottom;\n }\n }\n this.x = changeX;\n this.y = changeY;\n this.$emit(\"imgMoving\", {\n moving: true,\n axis: this.getImgAxis()\n });\n this.$emit(\"img-moving\", {\n moving: true,\n axis: this.getImgAxis()\n });\n });\n },\n leaveImg(e) {\n window.removeEventListener(\"mousemove\", this.moveImg);\n window.removeEventListener(\"touchmove\", this.moveImg);\n window.removeEventListener(\"mouseup\", this.leaveImg);\n window.removeEventListener(\"touchend\", this.leaveImg);\n this.$emit(\"imgMoving\", {\n moving: false,\n axis: this.getImgAxis()\n });\n this.$emit(\"img-moving\", {\n moving: false,\n axis: this.getImgAxis()\n });\n },\n scaleImg() {\n if (this.canScale) {\n window.addEventListener(this.support, this.changeSize, this.passive);\n }\n },\n cancelScale() {\n if (this.canScale) {\n window.removeEventListener(this.support, this.changeSize);\n }\n },\n changeSize(e) {\n e.preventDefault();\n let scale = this.scale;\n var change = e.deltaY || e.wheelDelta;\n var isFirefox = navigator.userAgent.indexOf(\"Firefox\");\n change = isFirefox > 0 ? change * 30 : change;\n if (this.isIE) {\n change = -change;\n }\n var coe = this.coe;\n coe = coe / this.trueWidth > coe / this.trueHeight ? coe / this.trueHeight : coe / this.trueWidth;\n var num = coe * change;\n num < 0 ? scale += Math.abs(num) : scale > Math.abs(num) ? scale -= Math.abs(num) : scale;\n let status = num < 0 ? \"add\" : \"reduce\";\n if (status !== this.coeStatus) {\n this.coeStatus = status;\n this.coe = 0.2;\n }\n if (!this.scaling) {\n this.scalingSet = setTimeout(() => {\n this.scaling = false;\n this.coe = this.coe += 0.01;\n }, 50);\n }\n this.scaling = true;\n if (!this.checkoutImgAxis(this.x, this.y, scale)) {\n return false;\n }\n this.scale = scale;\n },\n changeScale(num) {\n let scale = this.scale;\n num = num || 1;\n var coe = 20;\n coe = coe / this.trueWidth > coe / this.trueHeight ? coe / this.trueHeight : coe / this.trueWidth;\n num = num * coe;\n num > 0 ? scale += Math.abs(num) : scale > Math.abs(num) ? scale -= Math.abs(num) : scale;\n if (!this.checkoutImgAxis(this.x, this.y, scale)) {\n return false;\n }\n this.scale = scale;\n },\n createCrop(e) {\n e.preventDefault();\n var nowX = \"clientX\" in e ? e.clientX : e.touches ? e.touches[0].clientX : 0;\n var nowY = \"clientY\" in e ? e.clientY : e.touches ? e.touches[0].clientY : 0;\n this.$nextTick(() => {\n var fw = nowX - this.cropX;\n var fh = nowY - this.cropY;\n if (fw > 0) {\n this.cropW = fw + this.cropChangeX > this.w ? this.w - this.cropChangeX : fw;\n this.cropOffsertX = this.cropChangeX;\n } else {\n this.cropW = this.w - this.cropChangeX + Math.abs(fw) > this.w ? this.cropChangeX : Math.abs(fw);\n this.cropOffsertX = this.cropChangeX + fw > 0 ? this.cropChangeX + fw : 0;\n }\n if (!this.fixed) {\n if (fh > 0) {\n this.cropH = fh + this.cropChangeY > this.h ? this.h - this.cropChangeY : fh;\n this.cropOffsertY = this.cropChangeY;\n } else {\n this.cropH = this.h - this.cropChangeY + Math.abs(fh) > this.h ? this.cropChangeY : Math.abs(fh);\n this.cropOffsertY = this.cropChangeY + fh > 0 ? this.cropChangeY + fh : 0;\n }\n } else {\n var fixedHeight = this.cropW / this.fixedNumber[0] * this.fixedNumber[1];\n if (fixedHeight + this.cropOffsertY > this.h) {\n this.cropH = this.h - this.cropOffsertY;\n this.cropW = this.cropH / this.fixedNumber[1] * this.fixedNumber[0];\n if (fw > 0) {\n this.cropOffsertX = this.cropChangeX;\n } else {\n this.cropOffsertX = this.cropChangeX - this.cropW;\n }\n } else {\n this.cropH = fixedHeight;\n }\n this.cropOffsertY = this.cropOffsertY;\n }\n });\n },\n changeCropSize(e, w, h, typeW, typeH) {\n e.preventDefault();\n window.addEventListener(\"mousemove\", this.changeCropNow);\n window.addEventListener(\"mouseup\", this.changeCropEnd);\n window.addEventListener(\"touchmove\", this.changeCropNow);\n window.addEventListener(\"touchend\", this.changeCropEnd);\n this.canChangeX = w;\n this.canChangeY = h;\n this.changeCropTypeX = typeW;\n this.changeCropTypeY = typeH;\n this.cropX = \"clientX\" in e ? e.clientX : e.touches[0].clientX;\n this.cropY = \"clientY\" in e ? e.clientY : e.touches[0].clientY;\n this.cropOldW = this.cropW;\n this.cropOldH = this.cropH;\n this.cropChangeX = this.cropOffsertX;\n this.cropChangeY = this.cropOffsertY;\n if (this.fixed) {\n if (this.canChangeX && this.canChangeY) {\n this.canChangeY = 0;\n }\n }\n this.$emit(\"change-crop-size\", {\n width: this.cropW,\n height: this.cropH\n });\n },\n changeCropNow(e) {\n e.preventDefault();\n var nowX = \"clientX\" in e ? e.clientX : e.touches ? e.touches[0].clientX : 0;\n var nowY = \"clientY\" in e ? e.clientY : e.touches ? e.touches[0].clientY : 0;\n let wrapperW = this.w;\n let wrapperH = this.h;\n let minX = 0;\n let minY = 0;\n if (this.centerBox) {\n let axis = this.getImgAxis();\n let imgW = axis.x2;\n let imgH = axis.y2;\n minX = axis.x1 > 0 ? axis.x1 : 0;\n minY = axis.y1 > 0 ? axis.y1 : 0;\n if (wrapperW > imgW) {\n wrapperW = imgW;\n }\n if (wrapperH > imgH) {\n wrapperH = imgH;\n }\n }\n this.$nextTick(() => {\n var fw = nowX - this.cropX;\n var fh = nowY - this.cropY;\n if (this.canChangeX) {\n if (this.changeCropTypeX === 1) {\n if (this.cropOldW - fw > 0) {\n this.cropW = wrapperW - this.cropChangeX - fw <= wrapperW - minX ? this.cropOldW - fw : this.cropOldW + this.cropChangeX - minX;\n this.cropOffsertX = wrapperW - this.cropChangeX - fw <= wrapperW - minX ? this.cropChangeX + fw : minX;\n } else {\n this.cropW = Math.abs(fw) + this.cropChangeX <= wrapperW ? Math.abs(fw) - this.cropOldW : wrapperW - this.cropOldW - this.cropChangeX;\n this.cropOffsertX = this.cropChangeX + this.cropOldW;\n }\n } else if (this.changeCropTypeX === 2) {\n if (this.cropOldW + fw > 0) {\n this.cropW = this.cropOldW + fw + this.cropOffsertX <= wrapperW ? this.cropOldW + fw : wrapperW - this.cropOffsertX;\n this.cropOffsertX = this.cropChangeX;\n } else {\n this.cropW = wrapperW - this.cropChangeX + Math.abs(fw + this.cropOldW) <= wrapperW - minX ? Math.abs(fw + this.cropOldW) : this.cropChangeX - minX;\n this.cropOffsertX = wrapperW - this.cropChangeX + Math.abs(fw + this.cropOldW) <= wrapperW - minX ? this.cropChangeX - Math.abs(fw + this.cropOldW) : minX;\n }\n }\n }\n if (this.canChangeY) {\n if (this.changeCropTypeY === 1) {\n if (this.cropOldH - fh > 0) {\n this.cropH = wrapperH - this.cropChangeY - fh <= wrapperH - minY ? this.cropOldH - fh : this.cropOldH + this.cropChangeY - minY;\n this.cropOffsertY = wrapperH - this.cropChangeY - fh <= wrapperH - minY ? this.cropChangeY + fh : minY;\n } else {\n this.cropH = Math.abs(fh) + this.cropChangeY <= wrapperH ? Math.abs(fh) - this.cropOldH : wrapperH - this.cropOldH - this.cropChangeY;\n this.cropOffsertY = this.cropChangeY + this.cropOldH;\n }\n } else if (this.changeCropTypeY === 2) {\n if (this.cropOldH + fh > 0) {\n this.cropH = this.cropOldH + fh + this.cropOffsertY <= wrapperH ? this.cropOldH + fh : wrapperH - this.cropOffsertY;\n this.cropOffsertY = this.cropChangeY;\n } else {\n this.cropH = wrapperH - this.cropChangeY + Math.abs(fh + this.cropOldH) <= wrapperH - minY ? Math.abs(fh + this.cropOldH) : this.cropChangeY - minY;\n this.cropOffsertY = wrapperH - this.cropChangeY + Math.abs(fh + this.cropOldH) <= wrapperH - minY ? this.cropChangeY - Math.abs(fh + this.cropOldH) : minY;\n }\n }\n }\n if (this.canChangeX && this.fixed) {\n var fixedHeight = this.cropW / this.fixedNumber[0] * this.fixedNumber[1];\n if (fixedHeight + this.cropOffsertY > wrapperH) {\n this.cropH = wrapperH - this.cropOffsertY;\n this.cropW = this.cropH / this.fixedNumber[1] * this.fixedNumber[0];\n } else {\n this.cropH = fixedHeight;\n }\n }\n if (this.canChangeY && this.fixed) {\n var fixedWidth = this.cropH / this.fixedNumber[1] * this.fixedNumber[0];\n if (fixedWidth + this.cropOffsertX > wrapperW) {\n this.cropW = wrapperW - this.cropOffsertX;\n this.cropH = this.cropW / this.fixedNumber[0] * this.fixedNumber[1];\n } else {\n this.cropW = fixedWidth;\n }\n }\n });\n },\n checkCropLimitSize() {\n let { cropW, cropH, limitMinSize } = this;\n let limitMinNum = new Array();\n if (!Array.isArray[limitMinSize]) {\n limitMinNum = [limitMinSize, limitMinSize];\n } else {\n limitMinNum = limitMinSize;\n }\n cropW = parseFloat(limitMinNum[0]);\n cropH = parseFloat(limitMinNum[1]);\n return [cropW, cropH];\n },\n changeCropEnd(e) {\n window.removeEventListener(\"mousemove\", this.changeCropNow);\n window.removeEventListener(\"mouseup\", this.changeCropEnd);\n window.removeEventListener(\"touchmove\", this.changeCropNow);\n window.removeEventListener(\"touchend\", this.changeCropEnd);\n },\n endCrop() {\n if (this.cropW === 0 && this.cropH === 0) {\n this.cropping = false;\n }\n window.removeEventListener(\"mousemove\", this.createCrop);\n window.removeEventListener(\"mouseup\", this.endCrop);\n window.removeEventListener(\"touchmove\", this.createCrop);\n window.removeEventListener(\"touchend\", this.endCrop);\n },\n startCrop() {\n this.crop = true;\n },\n stopCrop() {\n this.crop = false;\n },\n clearCrop() {\n this.cropping = false;\n this.cropW = 0;\n this.cropH = 0;\n },\n cropMove(e) {\n e.preventDefault();\n if (!this.canMoveBox) {\n this.crop = false;\n this.startMove(e);\n return false;\n }\n if (e.touches && e.touches.length === 2) {\n this.crop = false;\n this.startMove(e);\n this.leaveCrop();\n return false;\n }\n window.addEventListener(\"mousemove\", this.moveCrop);\n window.addEventListener(\"mouseup\", this.leaveCrop);\n window.addEventListener(\"touchmove\", this.moveCrop);\n window.addEventListener(\"touchend\", this.leaveCrop);\n let x = \"clientX\" in e ? e.clientX : e.touches[0].clientX;\n let y = \"clientY\" in e ? e.clientY : e.touches[0].clientY;\n let newX, newY;\n newX = x - this.cropOffsertX;\n newY = y - this.cropOffsertY;\n this.cropX = newX;\n this.cropY = newY;\n this.$emit(\"cropMoving\", {\n moving: true,\n axis: this.getCropAxis()\n });\n this.$emit(\"crop-moving\", {\n moving: true,\n axis: this.getCropAxis()\n });\n },\n moveCrop(e, isMove) {\n let nowX = 0;\n let nowY = 0;\n if (e) {\n e.preventDefault();\n nowX = \"clientX\" in e ? e.clientX : e.touches[0].clientX;\n nowY = \"clientY\" in e ? e.clientY : e.touches[0].clientY;\n }\n this.$nextTick(() => {\n let cx, cy;\n let fw = nowX - this.cropX;\n let fh = nowY - this.cropY;\n if (isMove) {\n fw = this.cropOffsertX;\n fh = this.cropOffsertY;\n }\n if (fw <= 0) {\n cx = 0;\n } else if (fw + this.cropW > this.w) {\n cx = this.w - this.cropW;\n } else {\n cx = fw;\n }\n if (fh <= 0) {\n cy = 0;\n } else if (fh + this.cropH > this.h) {\n cy = this.h - this.cropH;\n } else {\n cy = fh;\n }\n if (this.centerBox) {\n let axis = this.getImgAxis();\n if (cx <= axis.x1) {\n cx = axis.x1;\n }\n if (cx + this.cropW > axis.x2) {\n cx = axis.x2 - this.cropW;\n }\n if (cy <= axis.y1) {\n cy = axis.y1;\n }\n if (cy + this.cropH > axis.y2) {\n cy = axis.y2 - this.cropH;\n }\n }\n this.cropOffsertX = cx;\n this.cropOffsertY = cy;\n this.$emit(\"cropMoving\", {\n moving: true,\n axis: this.getCropAxis()\n });\n this.$emit(\"crop-moving\", {\n moving: true,\n axis: this.getCropAxis()\n });\n });\n },\n getImgAxis(x, y, scale) {\n x = x || this.x;\n y = y || this.y;\n scale = scale || this.scale;\n let obj = {\n x1: 0,\n x2: 0,\n y1: 0,\n y2: 0\n };\n let imgW = this.trueWidth * scale;\n let imgH = this.trueHeight * scale;\n switch (this.rotate) {\n case 0:\n obj.x1 = x + this.trueWidth * (1 - scale) / 2;\n obj.x2 = obj.x1 + this.trueWidth * scale;\n obj.y1 = y + this.trueHeight * (1 - scale) / 2;\n obj.y2 = obj.y1 + this.trueHeight * scale;\n break;\n case 1:\n case -1:\n case 3:\n case -3:\n obj.x1 = x + this.trueWidth * (1 - scale) / 2 + (imgW - imgH) / 2;\n obj.x2 = obj.x1 + this.trueHeight * scale;\n obj.y1 = y + this.trueHeight * (1 - scale) / 2 + (imgH - imgW) / 2;\n obj.y2 = obj.y1 + this.trueWidth * scale;\n break;\n default:\n obj.x1 = x + this.trueWidth * (1 - scale) / 2;\n obj.x2 = obj.x1 + this.trueWidth * scale;\n obj.y1 = y + this.trueHeight * (1 - scale) / 2;\n obj.y2 = obj.y1 + this.trueHeight * scale;\n break;\n }\n return obj;\n },\n getCropAxis() {\n let obj = {\n x1: 0,\n x2: 0,\n y1: 0,\n y2: 0\n };\n obj.x1 = this.cropOffsertX;\n obj.x2 = obj.x1 + this.cropW;\n obj.y1 = this.cropOffsertY;\n obj.y2 = obj.y1 + this.cropH;\n return obj;\n },\n leaveCrop(e) {\n window.removeEventListener(\"mousemove\", this.moveCrop);\n window.removeEventListener(\"mouseup\", this.leaveCrop);\n window.removeEventListener(\"touchmove\", this.moveCrop);\n window.removeEventListener(\"touchend\", this.leaveCrop);\n this.$emit(\"cropMoving\", {\n moving: false,\n axis: this.getCropAxis()\n });\n this.$emit(\"crop-moving\", {\n moving: false,\n axis: this.getCropAxis()\n });\n },\n getCropChecked(cb) {\n let canvas = document.createElement(\"canvas\");\n let img = new Image();\n let rotate = this.rotate;\n let trueWidth = this.trueWidth;\n let trueHeight = this.trueHeight;\n let cropOffsertX = this.cropOffsertX;\n let cropOffsertY = this.cropOffsertY;\n img.onload = () => {\n if (this.cropW !== 0) {\n let ctx = canvas.getContext(\"2d\");\n let dpr = 1;\n if (this.high & !this.full) {\n dpr = window.devicePixelRatio;\n }\n if (this.enlarge !== 1 & !this.full) {\n dpr = Math.abs(Number(this.enlarge));\n }\n let width = this.cropW * dpr;\n let height = this.cropH * dpr;\n let imgW = trueWidth * this.scale * dpr;\n let imgH = trueHeight * this.scale * dpr;\n let dx = (this.x - cropOffsertX + this.trueWidth * (1 - this.scale) / 2) * dpr;\n let dy = (this.y - cropOffsertY + this.trueHeight * (1 - this.scale) / 2) * dpr;\n setCanvasSize(width, height);\n ctx.save();\n switch (rotate) {\n case 0:\n if (!this.full) {\n ctx.drawImage(img, dx, dy, imgW, imgH);\n } else {\n setCanvasSize(width / this.scale, height / this.scale);\n ctx.drawImage(img, dx / this.scale, dy / this.scale, imgW / this.scale, imgH / this.scale);\n }\n break;\n case 1:\n case -3:\n if (!this.full) {\n dx = dx + (imgW - imgH) / 2;\n dy = dy + (imgH - imgW) / 2;\n ctx.rotate(rotate * 90 * Math.PI / 180);\n ctx.drawImage(img, dy, -dx - imgH, imgW, imgH);\n } else {\n setCanvasSize(width / this.scale, height / this.scale);\n dx = dx / this.scale + (imgW / this.scale - imgH / this.scale) / 2;\n dy = dy / this.scale + (imgH / this.scale - imgW / this.scale) / 2;\n ctx.rotate(rotate * 90 * Math.PI / 180);\n ctx.drawImage(img, dy, -dx - imgH / this.scale, imgW / this.scale, imgH / this.scale);\n }\n break;\n case 2:\n case -2:\n if (!this.full) {\n ctx.rotate(rotate * 90 * Math.PI / 180);\n ctx.drawImage(img, -dx - imgW, -dy - imgH, imgW, imgH);\n } else {\n setCanvasSize(width / this.scale, height / this.scale);\n ctx.rotate(rotate * 90 * Math.PI / 180);\n dx = dx / this.scale;\n dy = dy / this.scale;\n ctx.drawImage(img, -dx - imgW / this.scale, -dy - imgH / this.scale, imgW / this.scale, imgH / this.scale);\n }\n break;\n case 3:\n case -1:\n if (!this.full) {\n dx = dx + (imgW - imgH) / 2;\n dy = dy + (imgH - imgW) / 2;\n ctx.rotate(rotate * 90 * Math.PI / 180);\n ctx.drawImage(img, -dy - imgW, dx, imgW, imgH);\n } else {\n setCanvasSize(width / this.scale, height / this.scale);\n dx = dx / this.scale + (imgW / this.scale - imgH / this.scale) / 2;\n dy = dy / this.scale + (imgH / this.scale - imgW / this.scale) / 2;\n ctx.rotate(rotate * 90 * Math.PI / 180);\n ctx.drawImage(img, -dy - imgW / this.scale, dx, imgW / this.scale, imgH / this.scale);\n }\n break;\n default:\n if (!this.full) {\n ctx.drawImage(img, dx, dy, imgW, imgH);\n } else {\n setCanvasSize(width / this.scale, height / this.scale);\n ctx.drawImage(img, dx / this.scale, dy / this.scale, imgW / this.scale, imgH / this.scale);\n }\n }\n ctx.restore();\n } else {\n let width = trueWidth * this.scale;\n let height = trueHeight * this.scale;\n let ctx = canvas.getContext(\"2d\");\n ctx.save();\n switch (rotate) {\n case 0:\n setCanvasSize(width, height);\n ctx.drawImage(img, 0, 0, width, height);\n break;\n case 1:\n case -3:\n setCanvasSize(height, width);\n ctx.rotate(rotate * 90 * Math.PI / 180);\n ctx.drawImage(img, 0, -height, width, height);\n break;\n case 2:\n case -2:\n setCanvasSize(width, height);\n ctx.rotate(rotate * 90 * Math.PI / 180);\n ctx.drawImage(img, -width, -height, width, height);\n break;\n case 3:\n case -1:\n setCanvasSize(height, width);\n ctx.rotate(rotate * 90 * Math.PI / 180);\n ctx.drawImage(img, -width, 0, width, height);\n break;\n default:\n setCanvasSize(width, height);\n ctx.drawImage(img, 0, 0, width, height);\n }\n ctx.restore();\n }\n cb(canvas);\n };\n var s = this.img.substr(0, 4);\n if (s !== \"data\") {\n img.crossOrigin = \"Anonymous\";\n }\n img.src = this.imgs;\n function setCanvasSize(width, height) {\n canvas.width = Math.round(width);\n canvas.height = Math.round(height);\n }\n },\n getCropData(cb) {\n this.getCropChecked((data) => {\n cb(data.toDataURL(\"image/\" + this.outputType, this.outputSize));\n });\n },\n getCropBlob(cb) {\n this.getCropChecked((data) => {\n data.toBlob((blob) => cb(blob), \"image/\" + this.outputType, this.outputSize);\n });\n },\n showPreview() {\n if (this.isCanShow) {\n this.isCanShow = false;\n setTimeout(() => {\n this.isCanShow = true;\n }, 16);\n } else {\n return false;\n }\n let w = this.cropW;\n let h = this.cropH;\n let scale = this.scale;\n var obj = {};\n obj.div = {\n width: `${w}px`,\n height: `${h}px`\n };\n let transformX = (this.x - this.cropOffsertX) / scale;\n let transformY = (this.y - this.cropOffsertY) / scale;\n let transformZ = 0;\n obj.w = w;\n obj.h = h;\n obj.url = this.imgs;\n obj.img = {\n width: `${this.trueWidth}px`,\n height: `${this.trueHeight}px`,\n transform: `scale(${scale})translate3d(${transformX}px, ${transformY}px, ${transformZ}px)rotateZ(${this.rotate * 90}deg)`\n };\n obj.html = `\n \n
\n

\n
\n
`;\n this.$emit(\"realTime\", obj);\n this.$emit(\"real-time\", obj);\n },\n reload() {\n let img = new Image();\n img.onload = () => {\n this.w = parseFloat(window.getComputedStyle(this.$refs.cropper).width);\n this.h = parseFloat(window.getComputedStyle(this.$refs.cropper).height);\n this.trueWidth = img.width;\n this.trueHeight = img.height;\n if (!this.original) {\n this.scale = this.checkedMode();\n } else {\n this.scale = 1;\n }\n this.$nextTick(() => {\n this.x = -(this.trueWidth - this.trueWidth * this.scale) / 2 + (this.w - this.trueWidth * this.scale) / 2;\n this.y = -(this.trueHeight - this.trueHeight * this.scale) / 2 + (this.h - this.trueHeight * this.scale) / 2;\n this.loading = false;\n if (this.autoCrop) {\n this.goAutoCrop();\n }\n this.$emit(\"img-load\", \"success\");\n this.$emit(\"imgLoad\", \"success\");\n setTimeout(() => {\n this.showPreview();\n }, 20);\n });\n };\n img.onerror = () => {\n this.$emit(\"imgLoad\", \"error\");\n this.$emit(\"img-load\", \"error\");\n };\n img.src = this.imgs;\n },\n checkedMode() {\n let scale = 1;\n let imgW = this.trueWidth;\n let imgH = this.trueHeight;\n const arr = this.mode.split(\" \");\n switch (arr[0]) {\n case \"contain\":\n if (this.trueWidth > this.w) {\n scale = this.w / this.trueWidth;\n }\n if (this.trueHeight * scale > this.h) {\n scale = this.h / this.trueHeight;\n }\n break;\n case \"cover\":\n imgW = this.w;\n scale = imgW / this.trueWidth;\n imgH = imgH * scale;\n if (imgH < this.h) {\n imgH = this.h;\n scale = imgH / this.trueHeight;\n }\n break;\n default:\n try {\n let str = arr[0];\n if (str.search(\"px\") !== -1) {\n str = str.replace(\"px\", \"\");\n imgW = parseFloat(str);\n const scaleX = imgW / this.trueWidth;\n let scaleY = 1;\n let strH = arr[1];\n if (strH.search(\"px\") !== -1) {\n strH = strH.replace(\"px\", \"\");\n imgH = parseFloat(strH);\n scaleY = imgH / this.trueHeight;\n }\n scale = Math.min(scaleX, scaleY);\n }\n if (str.search(\"%\") !== -1) {\n str = str.replace(\"%\", \"\");\n imgW = parseFloat(str) / 100 * this.w;\n scale = imgW / this.trueWidth;\n }\n if (arr.length === 2 && str === \"auto\") {\n let str2 = arr[1];\n if (str2.search(\"px\") !== -1) {\n str2 = str2.replace(\"px\", \"\");\n imgH = parseFloat(str2);\n scale = imgH / this.trueHeight;\n }\n if (str2.search(\"%\") !== -1) {\n str2 = str2.replace(\"%\", \"\");\n imgH = parseFloat(str2) / 100 * this.h;\n scale = imgH / this.trueHeight;\n }\n }\n } catch (error) {\n scale = 1;\n }\n }\n return scale;\n },\n goAutoCrop(cw, ch) {\n if (this.imgs === \"\" || this.imgs === null)\n return;\n this.clearCrop();\n this.cropping = true;\n let maxWidth = this.w;\n let maxHeight = this.h;\n if (this.centerBox) {\n const switchWH = Math.abs(this.rotate) % 2 > 0;\n let imgW = (switchWH ? this.trueHeight : this.trueWidth) * this.scale;\n let imgH = (switchWH ? this.trueWidth : this.trueHeight) * this.scale;\n maxWidth = imgW < maxWidth ? imgW : maxWidth;\n maxHeight = imgH < maxHeight ? imgH : maxHeight;\n }\n var w = cw ? cw : parseFloat(this.autoCropWidth);\n var h = ch ? ch : parseFloat(this.autoCropHeight);\n if (w === 0 || h === 0) {\n w = maxWidth * 0.8;\n h = maxHeight * 0.8;\n }\n w = w > maxWidth ? maxWidth : w;\n h = h > maxHeight ? maxHeight : h;\n if (this.fixed) {\n h = w / this.fixedNumber[0] * this.fixedNumber[1];\n }\n if (h > this.h) {\n h = this.h;\n w = h / this.fixedNumber[1] * this.fixedNumber[0];\n }\n this.changeCrop(w, h);\n },\n changeCrop(w, h) {\n if (this.centerBox) {\n let axis = this.getImgAxis();\n if (w > axis.x2 - axis.x1) {\n w = axis.x2 - axis.x1;\n h = w / this.fixedNumber[0] * this.fixedNumber[1];\n }\n if (h > axis.y2 - axis.y1) {\n h = axis.y2 - axis.y1;\n w = h / this.fixedNumber[1] * this.fixedNumber[0];\n }\n }\n this.cropW = w;\n this.cropH = h;\n this.checkCropLimitSize();\n this.$nextTick(() => {\n this.cropOffsertX = (this.w - this.cropW) / 2;\n this.cropOffsertY = (this.h - this.cropH) / 2;\n if (this.centerBox) {\n this.moveCrop(null, true);\n }\n });\n },\n refresh() {\n this.img;\n this.imgs = \"\";\n this.scale = 1;\n this.crop = false;\n this.rotate = 0;\n this.w = 0;\n this.h = 0;\n this.trueWidth = 0;\n this.trueHeight = 0;\n this.clearCrop();\n this.$nextTick(() => {\n this.checkedImg();\n });\n },\n rotateLeft() {\n this.rotate = this.rotate <= -3 ? 0 : this.rotate - 1;\n },\n rotateRight() {\n this.rotate = this.rotate >= 3 ? 0 : this.rotate + 1;\n },\n rotateClear() {\n this.rotate = 0;\n },\n checkoutImgAxis(x, y, scale) {\n x = x || this.x;\n y = y || this.y;\n scale = scale || this.scale;\n let canGo = true;\n if (this.centerBox) {\n let axis = this.getImgAxis(x, y, scale);\n let cropAxis = this.getCropAxis();\n if (axis.x1 >= cropAxis.x1) {\n canGo = false;\n }\n if (axis.x2 <= cropAxis.x2) {\n canGo = false;\n }\n if (axis.y1 >= cropAxis.y1) {\n canGo = false;\n }\n if (axis.y2 <= cropAxis.y2) {\n canGo = false;\n }\n }\n return canGo;\n }\n },\n mounted() {\n this.support = \"onwheel\" in document.createElement(\"div\") ? \"wheel\" : document.onmousewheel !== void 0 ? \"mousewheel\" : \"DOMMouseScroll\";\n let that = this;\n var u = navigator.userAgent;\n this.isIOS = !!u.match(/\\(i[^;]+;( U;)? CPU.+Mac OS X/);\n if (!HTMLCanvasElement.prototype.toBlob) {\n Object.defineProperty(HTMLCanvasElement.prototype, \"toBlob\", {\n value: function(callback, type, quality) {\n var binStr = atob(this.toDataURL(type, quality).split(\",\")[1]), len = binStr.length, arr = new Uint8Array(len);\n for (var i = 0; i < len; i++) {\n arr[i] = binStr.charCodeAt(i);\n }\n callback(new Blob([arr], { type: that.type || \"image/png\" }));\n }\n });\n }\n this.showPreview();\n this.checkedImg();\n },\n destroyed() {\n window.removeEventListener(\"mousemove\", this.moveCrop);\n window.removeEventListener(\"mouseup\", this.leaveCrop);\n window.removeEventListener(\"touchmove\", this.moveCrop);\n window.removeEventListener(\"touchend\", this.leaveCrop);\n this.cancelScale();\n }\n});\nconst _hoisted_1 = {\n key: 0,\n class: \"cropper-box\"\n};\nconst _hoisted_2 = [\"src\"];\nconst _hoisted_3 = { class: \"cropper-view-box\" };\nconst _hoisted_4 = [\"src\"];\nconst _hoisted_5 = { key: 1 };\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"div\", {\n class: \"vue-cropper\",\n ref: \"cropper\",\n onMouseover: _cache[28] || (_cache[28] = (...args) => _ctx.scaleImg && _ctx.scaleImg(...args)),\n onMouseout: _cache[29] || (_cache[29] = (...args) => _ctx.cancelScale && _ctx.cancelScale(...args))\n }, [\n _ctx.imgs ? (openBlock(), createElementBlock(\"div\", _hoisted_1, [\n withDirectives(createElementVNode(\"div\", {\n class: \"cropper-box-canvas\",\n style: normalizeStyle({\n \"width\": _ctx.trueWidth + \"px\",\n \"height\": _ctx.trueHeight + \"px\",\n \"transform\": \"scale(\" + _ctx.scale + \",\" + _ctx.scale + \") translate3d(\" + _ctx.x / _ctx.scale + \"px,\" + _ctx.y / _ctx.scale + \"px,0)rotateZ(\" + _ctx.rotate * 90 + \"deg)\"\n })\n }, [\n createElementVNode(\"img\", {\n src: _ctx.imgs,\n alt: \"cropper-img\",\n ref: \"cropperImg\"\n }, null, 8, _hoisted_2)\n ], 4), [\n [vShow, !_ctx.loading]\n ])\n ])) : createCommentVNode(\"\", true),\n createElementVNode(\"div\", {\n class: normalizeClass([\"cropper-drag-box\", { \"cropper-move\": _ctx.move && !_ctx.crop, \"cropper-crop\": _ctx.crop, \"cropper-modal\": _ctx.cropping }]),\n onMousedown: _cache[0] || (_cache[0] = (...args) => _ctx.startMove && _ctx.startMove(...args)),\n onTouchstart: _cache[1] || (_cache[1] = (...args) => _ctx.startMove && _ctx.startMove(...args))\n }, null, 34),\n withDirectives(createElementVNode(\"div\", {\n class: \"cropper-crop-box\",\n style: normalizeStyle({\n \"width\": _ctx.cropW + \"px\",\n \"height\": _ctx.cropH + \"px\",\n \"transform\": \"translate3d(\" + _ctx.cropOffsertX + \"px,\" + _ctx.cropOffsertY + \"px,0)\"\n })\n }, [\n createElementVNode(\"span\", _hoisted_3, [\n createElementVNode(\"img\", {\n style: normalizeStyle({\n \"width\": _ctx.trueWidth + \"px\",\n \"height\": _ctx.trueHeight + \"px\",\n \"transform\": \"scale(\" + _ctx.scale + \",\" + _ctx.scale + \") translate3d(\" + (_ctx.x - _ctx.cropOffsertX) / _ctx.scale + \"px,\" + (_ctx.y - _ctx.cropOffsertY) / _ctx.scale + \"px,0)rotateZ(\" + _ctx.rotate * 90 + \"deg)\"\n }),\n src: _ctx.imgs,\n alt: \"cropper-img\"\n }, null, 12, _hoisted_4)\n ]),\n createElementVNode(\"span\", {\n class: \"cropper-face cropper-move\",\n onMousedown: _cache[2] || (_cache[2] = (...args) => _ctx.cropMove && _ctx.cropMove(...args)),\n onTouchstart: _cache[3] || (_cache[3] = (...args) => _ctx.cropMove && _ctx.cropMove(...args))\n }, null, 32),\n _ctx.info ? (openBlock(), createElementBlock(\"span\", {\n key: 0,\n class: \"crop-info\",\n style: normalizeStyle({ \"top\": _ctx.cropInfo.top })\n }, toDisplayString(_ctx.cropInfo.width) + \" \\xD7 \" + toDisplayString(_ctx.cropInfo.height), 5)) : createCommentVNode(\"\", true),\n !_ctx.fixedBox ? (openBlock(), createElementBlock(\"span\", _hoisted_5, [\n createElementVNode(\"span\", {\n class: \"crop-line line-w\",\n onMousedown: _cache[4] || (_cache[4] = ($event) => _ctx.changeCropSize($event, false, true, 0, 1)),\n onTouchstart: _cache[5] || (_cache[5] = ($event) => _ctx.changeCropSize($event, false, true, 0, 1))\n }, null, 32),\n createElementVNode(\"span\", {\n class: \"crop-line line-a\",\n onMousedown: _cache[6] || (_cache[6] = ($event) => _ctx.changeCropSize($event, true, false, 1, 0)),\n onTouchstart: _cache[7] || (_cache[7] = ($event) => _ctx.changeCropSize($event, true, false, 1, 0))\n }, null, 32),\n createElementVNode(\"span\", {\n class: \"crop-line line-s\",\n onMousedown: _cache[8] || (_cache[8] = ($event) => _ctx.changeCropSize($event, false, true, 0, 2)),\n onTouchstart: _cache[9] || (_cache[9] = ($event) => _ctx.changeCropSize($event, false, true, 0, 2))\n }, null, 32),\n createElementVNode(\"span\", {\n class: \"crop-line line-d\",\n onMousedown: _cache[10] || (_cache[10] = ($event) => _ctx.changeCropSize($event, true, false, 2, 0)),\n onTouchstart: _cache[11] || (_cache[11] = ($event) => _ctx.changeCropSize($event, true, false, 2, 0))\n }, null, 32),\n createElementVNode(\"span\", {\n class: \"crop-point point1\",\n onMousedown: _cache[12] || (_cache[12] = ($event) => _ctx.changeCropSize($event, true, true, 1, 1)),\n onTouchstart: _cache[13] || (_cache[13] = ($event) => _ctx.changeCropSize($event, true, true, 1, 1))\n }, null, 32),\n createElementVNode(\"span\", {\n class: \"crop-point point2\",\n onMousedown: _cache[14] || (_cache[14] = ($event) => _ctx.changeCropSize($event, false, true, 0, 1)),\n onTouchstart: _cache[15] || (_cache[15] = ($event) => _ctx.changeCropSize($event, false, true, 0, 1))\n }, null, 32),\n createElementVNode(\"span\", {\n class: \"crop-point point3\",\n onMousedown: _cache[16] || (_cache[16] = ($event) => _ctx.changeCropSize($event, true, true, 2, 1)),\n onTouchstart: _cache[17] || (_cache[17] = ($event) => _ctx.changeCropSize($event, true, true, 2, 1))\n }, null, 32),\n createElementVNode(\"span\", {\n class: \"crop-point point4\",\n onMousedown: _cache[18] || (_cache[18] = ($event) => _ctx.changeCropSize($event, true, false, 1, 0)),\n onTouchstart: _cache[19] || (_cache[19] = ($event) => _ctx.changeCropSize($event, true, false, 1, 0))\n }, null, 32),\n createElementVNode(\"span\", {\n class: \"crop-point point5\",\n onMousedown: _cache[20] || (_cache[20] = ($event) => _ctx.changeCropSize($event, true, false, 2, 0)),\n onTouchstart: _cache[21] || (_cache[21] = ($event) => _ctx.changeCropSize($event, true, false, 2, 0))\n }, null, 32),\n createElementVNode(\"span\", {\n class: \"crop-point point6\",\n onMousedown: _cache[22] || (_cache[22] = ($event) => _ctx.changeCropSize($event, true, true, 1, 2)),\n onTouchstart: _cache[23] || (_cache[23] = ($event) => _ctx.changeCropSize($event, true, true, 1, 2))\n }, null, 32),\n createElementVNode(\"span\", {\n class: \"crop-point point7\",\n onMousedown: _cache[24] || (_cache[24] = ($event) => _ctx.changeCropSize($event, false, true, 0, 2)),\n onTouchstart: _cache[25] || (_cache[25] = ($event) => _ctx.changeCropSize($event, false, true, 0, 2))\n }, null, 32),\n createElementVNode(\"span\", {\n class: \"crop-point point8\",\n onMousedown: _cache[26] || (_cache[26] = ($event) => _ctx.changeCropSize($event, true, true, 2, 2)),\n onTouchstart: _cache[27] || (_cache[27] = ($event) => _ctx.changeCropSize($event, true, true, 2, 2))\n }, null, 32)\n ])) : createCommentVNode(\"\", true)\n ], 4), [\n [vShow, _ctx.cropping]\n ])\n ], 544);\n}\nvar VueCropper = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render], [\"__scopeId\", \"data-v-be5e5ddc\"]]);\nconst install = function(Vue) {\n Vue.component(\"VueCropper\", VueCropper);\n};\nif (typeof window !== \"undefined\" && window.Vue) {\n window.Vue.createApp({}).component(\"VueCropper\", VueCropper);\n}\nconst globalCropper = {\n version: \"1.0.3\",\n install,\n VueCropper\n};\nexport { VueCropper, globalCropper as default, globalCropper };\n","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, createVNode as _createVNode, createElementVNode as _createElementVNode, createTextVNode as _createTextVNode, resolveComponent as _resolveComponent, withModifiers as _withModifiers, withCtx as _withCtx, normalizeStyle as _normalizeStyle, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-2ff088fd\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"m-cropper\" }\nconst _hoisted_2 = { class: \"left\" }\nconst _hoisted_3 = { class: \"cropper-content\" }\nconst _hoisted_4 = /*#__PURE__*/_createTextVNode(\"放大\")\nconst _hoisted_5 = /*#__PURE__*/_createTextVNode(\"缩小\")\nconst _hoisted_6 = /*#__PURE__*/_createTextVNode(\"向左旋转\")\nconst _hoisted_7 = /*#__PURE__*/_createTextVNode(\"向右旋转\")\nconst _hoisted_8 = /*#__PURE__*/_createTextVNode(\"清除\")\nconst _hoisted_9 = /*#__PURE__*/_createTextVNode(\"获取结果\")\nconst _hoisted_10 = /*#__PURE__*/_createTextVNode(\"下载图片\")\nconst _hoisted_11 = /*#__PURE__*/_createTextVNode(\"选择上传图片\")\nconst _hoisted_12 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"h4\", { style: {\"margin-top\":\"10px\"} }, \"实时预览\", -1))\nconst _hoisted_13 = [\"src\"]\nconst _hoisted_14 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"h4\", { style: {\"margin-top\":\"10px\"} }, \"获取结果\", -1))\nconst _hoisted_15 = { style: {\"background\":\"#ccc\",\"width\":\"100px\",\"height\":\"100px\"} }\nconst _hoisted_16 = [\"src\"]\n\nimport 'vue-cropper/dist/index.css'\r\n import { VueCropper } from \"vue-cropper\";\r\n import cro from '@/assets/image/cro.jpg'\r\n // let imgSrc = require('@/assets/image/cro.jpg')\r\n import {reactive, ref} from 'vue'\r\n import { ElMessage, ElMessageBox } from 'element-plus'\r\n import type { UploadProps, UploadUserFile } from 'element-plus'\r\n \nexport default /*#__PURE__*/_defineComponent({\n setup(__props) {\n\r\n // http://github.xyxiao.cn/vue-cropper/example/\r\n // https://codepen.io/xyxiao001/pen/yLooYKg\r\n const cropper = ref()\r\n const imgSrc = ref(cro)\r\n const option = reactive({\r\n img: cro,\r\n size: 1,\r\n full: false, // 是否输出原图比例的截图\r\n outputType: 'png',\r\n canMove: true,\r\n fixed: true, // 是否开启截图框宽高固定比例\r\n info: true, // 裁剪框的大小信息\r\n outputSize: 0.8, // 裁剪生成图片的质量\r\n fixedBox: false, // 固定截图框大小 不允许改变\r\n original: false, // 上传图片按照原始比例渲染\r\n canMoveBox: true, // 截图框能否拖动\r\n autoCrop: true, // 是否默认生成截图框\r\n autoCropWidth: 300, // 默认生成截图框宽度\r\n autoCropHeight: 300, // 默认生成截图框高度\r\n // 只有自动截图开启 宽度高度才生效\r\n centerBox: false, // 截图框是否被限制在图片里面\r\n high: true,\r\n max: 99999,\r\n previews:{\r\n url:''\r\n },\r\n cropImg:''\r\n\r\n })\r\n\r\n const realTime = (data)=>{\r\n option.previews = data\r\n }\r\n\r\n const cropmove = (e)=>{\r\n // console.log('eeeeee',e)\r\n }\r\n\r\n const zoom = (percent)=> {\r\n cropper.value.changeScale(percent);\r\n }\r\n const rotateLeft = ()=> {\r\n cropper.value.rotateLeft();\r\n }\r\n const rotateRight = ()=> {\r\n cropper.value.rotateRight();\r\n }\r\n\r\n const move = (offsetX, offsetY)=>{\r\n cropper.value.move(offsetX, offsetY);\r\n }\r\n\r\n const down = (type)=>{\r\n // event.preventDefault()\r\n var aLink = document.createElement('a');\r\n aLink.download = 'demo';\r\n // 输出\r\n if (type === 'blob') {\r\n this.$refs.cropper.getCropBlob((data) => {\r\n // this.downImg = window.URL.createObjectURL(data);\r\n aLink.href = window.URL.createObjectURL(data);\r\n aLink.click();\r\n });\r\n } else {\r\n cropper.value.getCropData((data) => {\r\n // this.downImg = data;\r\n aLink.href = data;\r\n aLink.click();\r\n });\r\n }\r\n }\r\n\r\n const rotate = (deg)=> {\r\n cropper.value.rotate(deg);\r\n }\r\n\r\n const cropImage=()=>{\r\n cropper.value.getCropData(data=>{\r\n option.cropImg = data\r\n })\r\n }\r\n\r\n const reset = ()=> {\r\n imgSrc.value = ''\r\n option.cropImg=''\r\n }\r\n\r\n const beforeUpload = (file, fileList)=>{\r\n return new Promise((resolve, reject) => {\r\n var reader = new FileReader()\r\n // let res = !/\\.(gif|jpg|jpeg|png|bmp|GIF|JPG|PNG)$/\r\n let reg = (/\\.jpg$|\\.jpeg$|\\.gif$|\\.png$/i)\r\n reader.readAsDataURL(file)\r\n let name = file.name\r\n if(reg.test(name)){\r\n reader.onload = (e:FileReader)=>{\r\n let data;\r\n if (typeof e.target.result === 'object') {\r\n // 把Array Buffer转化为blob 如果是base64不需要\r\n data = window.URL.createObjectURL(new Blob([e.target.result]));\r\n } else {\r\n data = e.target.result;\r\n }\r\n resolve(e.target.result)\r\n option.imgSrc = data\r\n imgSrc.value = data\r\n }\r\n }else{\r\n ElMessage.error('请上传图片')\r\n reject()\r\n }\r\n })\r\n }\r\n\nreturn (_ctx: any,_cache: any) => {\n const _component_el_button = _resolveComponent(\"el-button\")!\n const _component_el_upload = _resolveComponent(\"el-upload\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, [\n _createVNode(_unref(VueCropper), {\n ref_key: \"cropper\",\n ref: cropper,\n img: imgSrc.value,\n \"output-size\": _unref(option).size,\n \"output-type\": _unref(option).outputType,\n info: true,\n full: _unref(option).full,\n fixed: _unref(option).fixed,\n \"fixed-number\": _unref(option).fixedNumber,\n \"can-move\": _unref(option).canMove,\n \"can-move-box\": _unref(option).canMoveBox,\n autoCropWidth: _unref(option).autoCropWidth,\n autoCropHeight: _unref(option).autoCropHeight,\n \"fixed-box\": _unref(option).fixedBox,\n \"auto-crop\": _unref(option).autoCrop,\n \"auto-crop-height\": _unref(option).autoCropHeight,\n \"center-box\": _unref(option).centerBox,\n onRealTime: realTime\n }, null, 8, [\"img\", \"output-size\", \"output-type\", \"full\", \"fixed\", \"fixed-number\", \"can-move\", \"can-move-box\", \"autoCropWidth\", \"autoCropHeight\", \"fixed-box\", \"auto-crop\", \"auto-crop-height\", \"center-box\"])\n ]),\n _createVNode(_component_el_button, {\n type: \"primary\",\n onClick: _cache[0] || (_cache[0] = _withModifiers(($event: any) => (zoom(1)), [\"prevent\"]))\n }, {\n default: _withCtx(() => [\n _hoisted_4\n ]),\n _: 1\n }),\n _createVNode(_component_el_button, {\n type: \"primary\",\n onClick: _cache[1] || (_cache[1] = _withModifiers(($event: any) => (zoom(-1)), [\"prevent\"]))\n }, {\n default: _withCtx(() => [\n _hoisted_5\n ]),\n _: 1\n }),\n _createVNode(_component_el_button, {\n type: \"primary\",\n onClick: _withModifiers(rotateLeft, [\"prevent\"])\n }, {\n default: _withCtx(() => [\n _hoisted_6\n ]),\n _: 1\n }, 8, [\"onClick\"]),\n _createVNode(_component_el_button, {\n type: \"primary\",\n onClick: _withModifiers(rotateRight, [\"prevent\"])\n }, {\n default: _withCtx(() => [\n _hoisted_7\n ]),\n _: 1\n }, 8, [\"onClick\"]),\n _createVNode(_component_el_button, {\n type: \"primary\",\n onClick: _withModifiers(reset, [\"prevent\"])\n }, {\n default: _withCtx(() => [\n _hoisted_8\n ]),\n _: 1\n }, 8, [\"onClick\"]),\n _createVNode(_component_el_button, {\n type: \"primary\",\n onClick: _withModifiers(cropImage, [\"prevent\"])\n }, {\n default: _withCtx(() => [\n _hoisted_9\n ]),\n _: 1\n }, 8, [\"onClick\"]),\n _createVNode(_component_el_button, {\n type: \"primary\",\n onClick: _cache[2] || (_cache[2] = _withModifiers(($event: any) => (down('base64')), [\"prevent\"]))\n }, {\n default: _withCtx(() => [\n _hoisted_10\n ]),\n _: 1\n }),\n _createVNode(_component_el_upload, {\n class: \"upload-demo\",\n \"show-file-list\": false,\n action: \"\",\n \"before-upload\": beforeUpload\n }, {\n default: _withCtx(() => [\n _createVNode(_component_el_button, { type: \"primary\" }, {\n default: _withCtx(() => [\n _hoisted_11\n ]),\n _: 1\n })\n ]),\n _: 1\n })\n ]),\n _createElementVNode(\"div\", null, [\n _hoisted_12,\n _createElementVNode(\"div\", {\n class: \"show-preview\",\n style: _normalizeStyle({'width': _unref(option).previews.w + 'px', 'height': _unref(option).previews.h + 'px', 'overflow': 'hidden', 'margin': '5px'})\n }, [\n _createElementVNode(\"div\", {\n style: _normalizeStyle(_unref(option).previews.div)\n }, [\n _createElementVNode(\"img\", {\n src: _unref(option).previews.url,\n style: _normalizeStyle(_unref(option).previews.img)\n }, null, 12, _hoisted_13)\n ], 4)\n ], 4),\n _hoisted_14,\n _createElementVNode(\"div\", _hoisted_15, [\n (_unref(option).cropImg)\n ? (_openBlock(), _createElementBlock(\"img\", {\n key: 0,\n src: _unref(option).cropImg,\n style: {\"width\":\"100%\",\"height\":\"100%\"}\n }, null, 8, _hoisted_16))\n : _createCommentVNode(\"\", true)\n ])\n ])\n ]))\n}\n}\n\n})","import script from \"./index.vue?vue&type=script&lang=ts&setup=true\"\nexport * from \"./index.vue?vue&type=script&lang=ts&setup=true\"\n\nimport \"./index.vue?vue&type=style&index=0&id=2ff088fd&lang=scss&scoped=true\"\n\nimport exportComponent from \"F:\\\\2022\\\\cloude\\\\vue-admin-plus\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-2ff088fd\"]])\n\nexport default __exports__","'use strict';\n// TODO: in core-js@4, move /modules/ dependencies to public entries for better optimization by tools like `preset-env`\nrequire('../modules/es.string.iterator');\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar USE_NATIVE_URL = require('../internals/native-url');\nvar global = require('../internals/global');\nvar bind = require('../internals/function-bind-context');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar defineProperties = require('../internals/object-define-properties').f;\nvar redefine = require('../internals/redefine');\nvar anInstance = require('../internals/an-instance');\nvar hasOwn = require('../internals/has-own-property');\nvar assign = require('../internals/object-assign');\nvar arrayFrom = require('../internals/array-from');\nvar arraySlice = require('../internals/array-slice-simple');\nvar codeAt = require('../internals/string-multibyte').codeAt;\nvar toASCII = require('../internals/string-punycode-to-ascii');\nvar $toString = require('../internals/to-string');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\nvar URLSearchParamsModule = require('../modules/web.url-search-params');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar setInternalState = InternalStateModule.set;\nvar getInternalURLState = InternalStateModule.getterFor('URL');\nvar URLSearchParams = URLSearchParamsModule.URLSearchParams;\nvar getInternalSearchParamsState = URLSearchParamsModule.getState;\n\nvar NativeURL = global.URL;\nvar TypeError = global.TypeError;\nvar parseInt = global.parseInt;\nvar floor = Math.floor;\nvar pow = Math.pow;\nvar charAt = uncurryThis(''.charAt);\nvar exec = uncurryThis(/./.exec);\nvar join = uncurryThis([].join);\nvar numberToString = uncurryThis(1.0.toString);\nvar pop = uncurryThis([].pop);\nvar push = uncurryThis([].push);\nvar replace = uncurryThis(''.replace);\nvar shift = uncurryThis([].shift);\nvar split = uncurryThis(''.split);\nvar stringSlice = uncurryThis(''.slice);\nvar toLowerCase = uncurryThis(''.toLowerCase);\nvar unshift = uncurryThis([].unshift);\n\nvar INVALID_AUTHORITY = 'Invalid authority';\nvar INVALID_SCHEME = 'Invalid scheme';\nvar INVALID_HOST = 'Invalid host';\nvar INVALID_PORT = 'Invalid port';\n\nvar ALPHA = /[a-z]/i;\n// eslint-disable-next-line regexp/no-obscure-range -- safe\nvar ALPHANUMERIC = /[\\d+-.a-z]/i;\nvar DIGIT = /\\d/;\nvar HEX_START = /^0x/i;\nvar OCT = /^[0-7]+$/;\nvar DEC = /^\\d+$/;\nvar HEX = /^[\\da-f]+$/i;\n/* eslint-disable regexp/no-control-character -- safe */\nvar FORBIDDEN_HOST_CODE_POINT = /[\\0\\t\\n\\r #%/:<>?@[\\\\\\]^|]/;\nvar FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT = /[\\0\\t\\n\\r #/:<>?@[\\\\\\]^|]/;\nvar LEADING_AND_TRAILING_C0_CONTROL_OR_SPACE = /^[\\u0000-\\u0020]+|[\\u0000-\\u0020]+$/g;\nvar TAB_AND_NEW_LINE = /[\\t\\n\\r]/g;\n/* eslint-enable regexp/no-control-character -- safe */\nvar EOF;\n\n// https://url.spec.whatwg.org/#ipv4-number-parser\nvar parseIPv4 = function (input) {\n var parts = split(input, '.');\n var partsLength, numbers, index, part, radix, number, ipv4;\n if (parts.length && parts[parts.length - 1] == '') {\n parts.length--;\n }\n partsLength = parts.length;\n if (partsLength > 4) return input;\n numbers = [];\n for (index = 0; index < partsLength; index++) {\n part = parts[index];\n if (part == '') return input;\n radix = 10;\n if (part.length > 1 && charAt(part, 0) == '0') {\n radix = exec(HEX_START, part) ? 16 : 8;\n part = stringSlice(part, radix == 8 ? 1 : 2);\n }\n if (part === '') {\n number = 0;\n } else {\n if (!exec(radix == 10 ? DEC : radix == 8 ? OCT : HEX, part)) return input;\n number = parseInt(part, radix);\n }\n push(numbers, number);\n }\n for (index = 0; index < partsLength; index++) {\n number = numbers[index];\n if (index == partsLength - 1) {\n if (number >= pow(256, 5 - partsLength)) return null;\n } else if (number > 255) return null;\n }\n ipv4 = pop(numbers);\n for (index = 0; index < numbers.length; index++) {\n ipv4 += numbers[index] * pow(256, 3 - index);\n }\n return ipv4;\n};\n\n// https://url.spec.whatwg.org/#concept-ipv6-parser\n// eslint-disable-next-line max-statements -- TODO\nvar parseIPv6 = function (input) {\n var address = [0, 0, 0, 0, 0, 0, 0, 0];\n var pieceIndex = 0;\n var compress = null;\n var pointer = 0;\n var value, length, numbersSeen, ipv4Piece, number, swaps, swap;\n\n var chr = function () {\n return charAt(input, pointer);\n };\n\n if (chr() == ':') {\n if (charAt(input, 1) != ':') return;\n pointer += 2;\n pieceIndex++;\n compress = pieceIndex;\n }\n while (chr()) {\n if (pieceIndex == 8) return;\n if (chr() == ':') {\n if (compress !== null) return;\n pointer++;\n pieceIndex++;\n compress = pieceIndex;\n continue;\n }\n value = length = 0;\n while (length < 4 && exec(HEX, chr())) {\n value = value * 16 + parseInt(chr(), 16);\n pointer++;\n length++;\n }\n if (chr() == '.') {\n if (length == 0) return;\n pointer -= length;\n if (pieceIndex > 6) return;\n numbersSeen = 0;\n while (chr()) {\n ipv4Piece = null;\n if (numbersSeen > 0) {\n if (chr() == '.' && numbersSeen < 4) pointer++;\n else return;\n }\n if (!exec(DIGIT, chr())) return;\n while (exec(DIGIT, chr())) {\n number = parseInt(chr(), 10);\n if (ipv4Piece === null) ipv4Piece = number;\n else if (ipv4Piece == 0) return;\n else ipv4Piece = ipv4Piece * 10 + number;\n if (ipv4Piece > 255) return;\n pointer++;\n }\n address[pieceIndex] = address[pieceIndex] * 256 + ipv4Piece;\n numbersSeen++;\n if (numbersSeen == 2 || numbersSeen == 4) pieceIndex++;\n }\n if (numbersSeen != 4) return;\n break;\n } else if (chr() == ':') {\n pointer++;\n if (!chr()) return;\n } else if (chr()) return;\n address[pieceIndex++] = value;\n }\n if (compress !== null) {\n swaps = pieceIndex - compress;\n pieceIndex = 7;\n while (pieceIndex != 0 && swaps > 0) {\n swap = address[pieceIndex];\n address[pieceIndex--] = address[compress + swaps - 1];\n address[compress + --swaps] = swap;\n }\n } else if (pieceIndex != 8) return;\n return address;\n};\n\nvar findLongestZeroSequence = function (ipv6) {\n var maxIndex = null;\n var maxLength = 1;\n var currStart = null;\n var currLength = 0;\n var index = 0;\n for (; index < 8; index++) {\n if (ipv6[index] !== 0) {\n if (currLength > maxLength) {\n maxIndex = currStart;\n maxLength = currLength;\n }\n currStart = null;\n currLength = 0;\n } else {\n if (currStart === null) currStart = index;\n ++currLength;\n }\n }\n if (currLength > maxLength) {\n maxIndex = currStart;\n maxLength = currLength;\n }\n return maxIndex;\n};\n\n// https://url.spec.whatwg.org/#host-serializing\nvar serializeHost = function (host) {\n var result, index, compress, ignore0;\n // ipv4\n if (typeof host == 'number') {\n result = [];\n for (index = 0; index < 4; index++) {\n unshift(result, host % 256);\n host = floor(host / 256);\n } return join(result, '.');\n // ipv6\n } else if (typeof host == 'object') {\n result = '';\n compress = findLongestZeroSequence(host);\n for (index = 0; index < 8; index++) {\n if (ignore0 && host[index] === 0) continue;\n if (ignore0) ignore0 = false;\n if (compress === index) {\n result += index ? ':' : '::';\n ignore0 = true;\n } else {\n result += numberToString(host[index], 16);\n if (index < 7) result += ':';\n }\n }\n return '[' + result + ']';\n } return host;\n};\n\nvar C0ControlPercentEncodeSet = {};\nvar fragmentPercentEncodeSet = assign({}, C0ControlPercentEncodeSet, {\n ' ': 1, '\"': 1, '<': 1, '>': 1, '`': 1\n});\nvar pathPercentEncodeSet = assign({}, fragmentPercentEncodeSet, {\n '#': 1, '?': 1, '{': 1, '}': 1\n});\nvar userinfoPercentEncodeSet = assign({}, pathPercentEncodeSet, {\n '/': 1, ':': 1, ';': 1, '=': 1, '@': 1, '[': 1, '\\\\': 1, ']': 1, '^': 1, '|': 1\n});\n\nvar percentEncode = function (chr, set) {\n var code = codeAt(chr, 0);\n return code > 0x20 && code < 0x7F && !hasOwn(set, chr) ? chr : encodeURIComponent(chr);\n};\n\n// https://url.spec.whatwg.org/#special-scheme\nvar specialSchemes = {\n ftp: 21,\n file: null,\n http: 80,\n https: 443,\n ws: 80,\n wss: 443\n};\n\n// https://url.spec.whatwg.org/#windows-drive-letter\nvar isWindowsDriveLetter = function (string, normalized) {\n var second;\n return string.length == 2 && exec(ALPHA, charAt(string, 0))\n && ((second = charAt(string, 1)) == ':' || (!normalized && second == '|'));\n};\n\n// https://url.spec.whatwg.org/#start-with-a-windows-drive-letter\nvar startsWithWindowsDriveLetter = function (string) {\n var third;\n return string.length > 1 && isWindowsDriveLetter(stringSlice(string, 0, 2)) && (\n string.length == 2 ||\n ((third = charAt(string, 2)) === '/' || third === '\\\\' || third === '?' || third === '#')\n );\n};\n\n// https://url.spec.whatwg.org/#single-dot-path-segment\nvar isSingleDot = function (segment) {\n return segment === '.' || toLowerCase(segment) === '%2e';\n};\n\n// https://url.spec.whatwg.org/#double-dot-path-segment\nvar isDoubleDot = function (segment) {\n segment = toLowerCase(segment);\n return segment === '..' || segment === '%2e.' || segment === '.%2e' || segment === '%2e%2e';\n};\n\n// States:\nvar SCHEME_START = {};\nvar SCHEME = {};\nvar NO_SCHEME = {};\nvar SPECIAL_RELATIVE_OR_AUTHORITY = {};\nvar PATH_OR_AUTHORITY = {};\nvar RELATIVE = {};\nvar RELATIVE_SLASH = {};\nvar SPECIAL_AUTHORITY_SLASHES = {};\nvar SPECIAL_AUTHORITY_IGNORE_SLASHES = {};\nvar AUTHORITY = {};\nvar HOST = {};\nvar HOSTNAME = {};\nvar PORT = {};\nvar FILE = {};\nvar FILE_SLASH = {};\nvar FILE_HOST = {};\nvar PATH_START = {};\nvar PATH = {};\nvar CANNOT_BE_A_BASE_URL_PATH = {};\nvar QUERY = {};\nvar FRAGMENT = {};\n\nvar URLState = function (url, isBase, base) {\n var urlString = $toString(url);\n var baseState, failure, searchParams;\n if (isBase) {\n failure = this.parse(urlString);\n if (failure) throw TypeError(failure);\n this.searchParams = null;\n } else {\n if (base !== undefined) baseState = new URLState(base, true);\n failure = this.parse(urlString, null, baseState);\n if (failure) throw TypeError(failure);\n searchParams = getInternalSearchParamsState(new URLSearchParams());\n searchParams.bindURL(this);\n this.searchParams = searchParams;\n }\n};\n\nURLState.prototype = {\n type: 'URL',\n // https://url.spec.whatwg.org/#url-parsing\n // eslint-disable-next-line max-statements -- TODO\n parse: function (input, stateOverride, base) {\n var url = this;\n var state = stateOverride || SCHEME_START;\n var pointer = 0;\n var buffer = '';\n var seenAt = false;\n var seenBracket = false;\n var seenPasswordToken = false;\n var codePoints, chr, bufferCodePoints, failure;\n\n input = $toString(input);\n\n if (!stateOverride) {\n url.scheme = '';\n url.username = '';\n url.password = '';\n url.host = null;\n url.port = null;\n url.path = [];\n url.query = null;\n url.fragment = null;\n url.cannotBeABaseURL = false;\n input = replace(input, LEADING_AND_TRAILING_C0_CONTROL_OR_SPACE, '');\n }\n\n input = replace(input, TAB_AND_NEW_LINE, '');\n\n codePoints = arrayFrom(input);\n\n while (pointer <= codePoints.length) {\n chr = codePoints[pointer];\n switch (state) {\n case SCHEME_START:\n if (chr && exec(ALPHA, chr)) {\n buffer += toLowerCase(chr);\n state = SCHEME;\n } else if (!stateOverride) {\n state = NO_SCHEME;\n continue;\n } else return INVALID_SCHEME;\n break;\n\n case SCHEME:\n if (chr && (exec(ALPHANUMERIC, chr) || chr == '+' || chr == '-' || chr == '.')) {\n buffer += toLowerCase(chr);\n } else if (chr == ':') {\n if (stateOverride && (\n (url.isSpecial() != hasOwn(specialSchemes, buffer)) ||\n (buffer == 'file' && (url.includesCredentials() || url.port !== null)) ||\n (url.scheme == 'file' && !url.host)\n )) return;\n url.scheme = buffer;\n if (stateOverride) {\n if (url.isSpecial() && specialSchemes[url.scheme] == url.port) url.port = null;\n return;\n }\n buffer = '';\n if (url.scheme == 'file') {\n state = FILE;\n } else if (url.isSpecial() && base && base.scheme == url.scheme) {\n state = SPECIAL_RELATIVE_OR_AUTHORITY;\n } else if (url.isSpecial()) {\n state = SPECIAL_AUTHORITY_SLASHES;\n } else if (codePoints[pointer + 1] == '/') {\n state = PATH_OR_AUTHORITY;\n pointer++;\n } else {\n url.cannotBeABaseURL = true;\n push(url.path, '');\n state = CANNOT_BE_A_BASE_URL_PATH;\n }\n } else if (!stateOverride) {\n buffer = '';\n state = NO_SCHEME;\n pointer = 0;\n continue;\n } else return INVALID_SCHEME;\n break;\n\n case NO_SCHEME:\n if (!base || (base.cannotBeABaseURL && chr != '#')) return INVALID_SCHEME;\n if (base.cannotBeABaseURL && chr == '#') {\n url.scheme = base.scheme;\n url.path = arraySlice(base.path);\n url.query = base.query;\n url.fragment = '';\n url.cannotBeABaseURL = true;\n state = FRAGMENT;\n break;\n }\n state = base.scheme == 'file' ? FILE : RELATIVE;\n continue;\n\n case SPECIAL_RELATIVE_OR_AUTHORITY:\n if (chr == '/' && codePoints[pointer + 1] == '/') {\n state = SPECIAL_AUTHORITY_IGNORE_SLASHES;\n pointer++;\n } else {\n state = RELATIVE;\n continue;\n } break;\n\n case PATH_OR_AUTHORITY:\n if (chr == '/') {\n state = AUTHORITY;\n break;\n } else {\n state = PATH;\n continue;\n }\n\n case RELATIVE:\n url.scheme = base.scheme;\n if (chr == EOF) {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n url.path = arraySlice(base.path);\n url.query = base.query;\n } else if (chr == '/' || (chr == '\\\\' && url.isSpecial())) {\n state = RELATIVE_SLASH;\n } else if (chr == '?') {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n url.path = arraySlice(base.path);\n url.query = '';\n state = QUERY;\n } else if (chr == '#') {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n url.path = arraySlice(base.path);\n url.query = base.query;\n url.fragment = '';\n state = FRAGMENT;\n } else {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n url.path = arraySlice(base.path);\n url.path.length--;\n state = PATH;\n continue;\n } break;\n\n case RELATIVE_SLASH:\n if (url.isSpecial() && (chr == '/' || chr == '\\\\')) {\n state = SPECIAL_AUTHORITY_IGNORE_SLASHES;\n } else if (chr == '/') {\n state = AUTHORITY;\n } else {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n state = PATH;\n continue;\n } break;\n\n case SPECIAL_AUTHORITY_SLASHES:\n state = SPECIAL_AUTHORITY_IGNORE_SLASHES;\n if (chr != '/' || charAt(buffer, pointer + 1) != '/') continue;\n pointer++;\n break;\n\n case SPECIAL_AUTHORITY_IGNORE_SLASHES:\n if (chr != '/' && chr != '\\\\') {\n state = AUTHORITY;\n continue;\n } break;\n\n case AUTHORITY:\n if (chr == '@') {\n if (seenAt) buffer = '%40' + buffer;\n seenAt = true;\n bufferCodePoints = arrayFrom(buffer);\n for (var i = 0; i < bufferCodePoints.length; i++) {\n var codePoint = bufferCodePoints[i];\n if (codePoint == ':' && !seenPasswordToken) {\n seenPasswordToken = true;\n continue;\n }\n var encodedCodePoints = percentEncode(codePoint, userinfoPercentEncodeSet);\n if (seenPasswordToken) url.password += encodedCodePoints;\n else url.username += encodedCodePoints;\n }\n buffer = '';\n } else if (\n chr == EOF || chr == '/' || chr == '?' || chr == '#' ||\n (chr == '\\\\' && url.isSpecial())\n ) {\n if (seenAt && buffer == '') return INVALID_AUTHORITY;\n pointer -= arrayFrom(buffer).length + 1;\n buffer = '';\n state = HOST;\n } else buffer += chr;\n break;\n\n case HOST:\n case HOSTNAME:\n if (stateOverride && url.scheme == 'file') {\n state = FILE_HOST;\n continue;\n } else if (chr == ':' && !seenBracket) {\n if (buffer == '') return INVALID_HOST;\n failure = url.parseHost(buffer);\n if (failure) return failure;\n buffer = '';\n state = PORT;\n if (stateOverride == HOSTNAME) return;\n } else if (\n chr == EOF || chr == '/' || chr == '?' || chr == '#' ||\n (chr == '\\\\' && url.isSpecial())\n ) {\n if (url.isSpecial() && buffer == '') return INVALID_HOST;\n if (stateOverride && buffer == '' && (url.includesCredentials() || url.port !== null)) return;\n failure = url.parseHost(buffer);\n if (failure) return failure;\n buffer = '';\n state = PATH_START;\n if (stateOverride) return;\n continue;\n } else {\n if (chr == '[') seenBracket = true;\n else if (chr == ']') seenBracket = false;\n buffer += chr;\n } break;\n\n case PORT:\n if (exec(DIGIT, chr)) {\n buffer += chr;\n } else if (\n chr == EOF || chr == '/' || chr == '?' || chr == '#' ||\n (chr == '\\\\' && url.isSpecial()) ||\n stateOverride\n ) {\n if (buffer != '') {\n var port = parseInt(buffer, 10);\n if (port > 0xFFFF) return INVALID_PORT;\n url.port = (url.isSpecial() && port === specialSchemes[url.scheme]) ? null : port;\n buffer = '';\n }\n if (stateOverride) return;\n state = PATH_START;\n continue;\n } else return INVALID_PORT;\n break;\n\n case FILE:\n url.scheme = 'file';\n if (chr == '/' || chr == '\\\\') state = FILE_SLASH;\n else if (base && base.scheme == 'file') {\n if (chr == EOF) {\n url.host = base.host;\n url.path = arraySlice(base.path);\n url.query = base.query;\n } else if (chr == '?') {\n url.host = base.host;\n url.path = arraySlice(base.path);\n url.query = '';\n state = QUERY;\n } else if (chr == '#') {\n url.host = base.host;\n url.path = arraySlice(base.path);\n url.query = base.query;\n url.fragment = '';\n state = FRAGMENT;\n } else {\n if (!startsWithWindowsDriveLetter(join(arraySlice(codePoints, pointer), ''))) {\n url.host = base.host;\n url.path = arraySlice(base.path);\n url.shortenPath();\n }\n state = PATH;\n continue;\n }\n } else {\n state = PATH;\n continue;\n } break;\n\n case FILE_SLASH:\n if (chr == '/' || chr == '\\\\') {\n state = FILE_HOST;\n break;\n }\n if (base && base.scheme == 'file' && !startsWithWindowsDriveLetter(join(arraySlice(codePoints, pointer), ''))) {\n if (isWindowsDriveLetter(base.path[0], true)) push(url.path, base.path[0]);\n else url.host = base.host;\n }\n state = PATH;\n continue;\n\n case FILE_HOST:\n if (chr == EOF || chr == '/' || chr == '\\\\' || chr == '?' || chr == '#') {\n if (!stateOverride && isWindowsDriveLetter(buffer)) {\n state = PATH;\n } else if (buffer == '') {\n url.host = '';\n if (stateOverride) return;\n state = PATH_START;\n } else {\n failure = url.parseHost(buffer);\n if (failure) return failure;\n if (url.host == 'localhost') url.host = '';\n if (stateOverride) return;\n buffer = '';\n state = PATH_START;\n } continue;\n } else buffer += chr;\n break;\n\n case PATH_START:\n if (url.isSpecial()) {\n state = PATH;\n if (chr != '/' && chr != '\\\\') continue;\n } else if (!stateOverride && chr == '?') {\n url.query = '';\n state = QUERY;\n } else if (!stateOverride && chr == '#') {\n url.fragment = '';\n state = FRAGMENT;\n } else if (chr != EOF) {\n state = PATH;\n if (chr != '/') continue;\n } break;\n\n case PATH:\n if (\n chr == EOF || chr == '/' ||\n (chr == '\\\\' && url.isSpecial()) ||\n (!stateOverride && (chr == '?' || chr == '#'))\n ) {\n if (isDoubleDot(buffer)) {\n url.shortenPath();\n if (chr != '/' && !(chr == '\\\\' && url.isSpecial())) {\n push(url.path, '');\n }\n } else if (isSingleDot(buffer)) {\n if (chr != '/' && !(chr == '\\\\' && url.isSpecial())) {\n push(url.path, '');\n }\n } else {\n if (url.scheme == 'file' && !url.path.length && isWindowsDriveLetter(buffer)) {\n if (url.host) url.host = '';\n buffer = charAt(buffer, 0) + ':'; // normalize windows drive letter\n }\n push(url.path, buffer);\n }\n buffer = '';\n if (url.scheme == 'file' && (chr == EOF || chr == '?' || chr == '#')) {\n while (url.path.length > 1 && url.path[0] === '') {\n shift(url.path);\n }\n }\n if (chr == '?') {\n url.query = '';\n state = QUERY;\n } else if (chr == '#') {\n url.fragment = '';\n state = FRAGMENT;\n }\n } else {\n buffer += percentEncode(chr, pathPercentEncodeSet);\n } break;\n\n case CANNOT_BE_A_BASE_URL_PATH:\n if (chr == '?') {\n url.query = '';\n state = QUERY;\n } else if (chr == '#') {\n url.fragment = '';\n state = FRAGMENT;\n } else if (chr != EOF) {\n url.path[0] += percentEncode(chr, C0ControlPercentEncodeSet);\n } break;\n\n case QUERY:\n if (!stateOverride && chr == '#') {\n url.fragment = '';\n state = FRAGMENT;\n } else if (chr != EOF) {\n if (chr == \"'\" && url.isSpecial()) url.query += '%27';\n else if (chr == '#') url.query += '%23';\n else url.query += percentEncode(chr, C0ControlPercentEncodeSet);\n } break;\n\n case FRAGMENT:\n if (chr != EOF) url.fragment += percentEncode(chr, fragmentPercentEncodeSet);\n break;\n }\n\n pointer++;\n }\n },\n // https://url.spec.whatwg.org/#host-parsing\n parseHost: function (input) {\n var result, codePoints, index;\n if (charAt(input, 0) == '[') {\n if (charAt(input, input.length - 1) != ']') return INVALID_HOST;\n result = parseIPv6(stringSlice(input, 1, -1));\n if (!result) return INVALID_HOST;\n this.host = result;\n // opaque host\n } else if (!this.isSpecial()) {\n if (exec(FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT, input)) return INVALID_HOST;\n result = '';\n codePoints = arrayFrom(input);\n for (index = 0; index < codePoints.length; index++) {\n result += percentEncode(codePoints[index], C0ControlPercentEncodeSet);\n }\n this.host = result;\n } else {\n input = toASCII(input);\n if (exec(FORBIDDEN_HOST_CODE_POINT, input)) return INVALID_HOST;\n result = parseIPv4(input);\n if (result === null) return INVALID_HOST;\n this.host = result;\n }\n },\n // https://url.spec.whatwg.org/#cannot-have-a-username-password-port\n cannotHaveUsernamePasswordPort: function () {\n return !this.host || this.cannotBeABaseURL || this.scheme == 'file';\n },\n // https://url.spec.whatwg.org/#include-credentials\n includesCredentials: function () {\n return this.username != '' || this.password != '';\n },\n // https://url.spec.whatwg.org/#is-special\n isSpecial: function () {\n return hasOwn(specialSchemes, this.scheme);\n },\n // https://url.spec.whatwg.org/#shorten-a-urls-path\n shortenPath: function () {\n var path = this.path;\n var pathSize = path.length;\n if (pathSize && (this.scheme != 'file' || pathSize != 1 || !isWindowsDriveLetter(path[0], true))) {\n path.length--;\n }\n },\n // https://url.spec.whatwg.org/#concept-url-serializer\n serialize: function () {\n var url = this;\n var scheme = url.scheme;\n var username = url.username;\n var password = url.password;\n var host = url.host;\n var port = url.port;\n var path = url.path;\n var query = url.query;\n var fragment = url.fragment;\n var output = scheme + ':';\n if (host !== null) {\n output += '//';\n if (url.includesCredentials()) {\n output += username + (password ? ':' + password : '') + '@';\n }\n output += serializeHost(host);\n if (port !== null) output += ':' + port;\n } else if (scheme == 'file') output += '//';\n output += url.cannotBeABaseURL ? path[0] : path.length ? '/' + join(path, '/') : '';\n if (query !== null) output += '?' + query;\n if (fragment !== null) output += '#' + fragment;\n return output;\n },\n // https://url.spec.whatwg.org/#dom-url-href\n setHref: function (href) {\n var failure = this.parse(href);\n if (failure) throw TypeError(failure);\n this.searchParams.update();\n },\n // https://url.spec.whatwg.org/#dom-url-origin\n getOrigin: function () {\n var scheme = this.scheme;\n var port = this.port;\n if (scheme == 'blob') try {\n return new URLConstructor(scheme.path[0]).origin;\n } catch (error) {\n return 'null';\n }\n if (scheme == 'file' || !this.isSpecial()) return 'null';\n return scheme + '://' + serializeHost(this.host) + (port !== null ? ':' + port : '');\n },\n // https://url.spec.whatwg.org/#dom-url-protocol\n getProtocol: function () {\n return this.scheme + ':';\n },\n setProtocol: function (protocol) {\n this.parse($toString(protocol) + ':', SCHEME_START);\n },\n // https://url.spec.whatwg.org/#dom-url-username\n getUsername: function () {\n return this.username;\n },\n setUsername: function (username) {\n var codePoints = arrayFrom($toString(username));\n if (this.cannotHaveUsernamePasswordPort()) return;\n this.username = '';\n for (var i = 0; i < codePoints.length; i++) {\n this.username += percentEncode(codePoints[i], userinfoPercentEncodeSet);\n }\n },\n // https://url.spec.whatwg.org/#dom-url-password\n getPassword: function () {\n return this.password;\n },\n setPassword: function (password) {\n var codePoints = arrayFrom($toString(password));\n if (this.cannotHaveUsernamePasswordPort()) return;\n this.password = '';\n for (var i = 0; i < codePoints.length; i++) {\n this.password += percentEncode(codePoints[i], userinfoPercentEncodeSet);\n }\n },\n // https://url.spec.whatwg.org/#dom-url-host\n getHost: function () {\n var host = this.host;\n var port = this.port;\n return host === null ? ''\n : port === null ? serializeHost(host)\n : serializeHost(host) + ':' + port;\n },\n setHost: function (host) {\n if (this.cannotBeABaseURL) return;\n this.parse(host, HOST);\n },\n // https://url.spec.whatwg.org/#dom-url-hostname\n getHostname: function () {\n var host = this.host;\n return host === null ? '' : serializeHost(host);\n },\n setHostname: function (hostname) {\n if (this.cannotBeABaseURL) return;\n this.parse(hostname, HOSTNAME);\n },\n // https://url.spec.whatwg.org/#dom-url-port\n getPort: function () {\n var port = this.port;\n return port === null ? '' : $toString(port);\n },\n setPort: function (port) {\n if (this.cannotHaveUsernamePasswordPort()) return;\n port = $toString(port);\n if (port == '') this.port = null;\n else this.parse(port, PORT);\n },\n // https://url.spec.whatwg.org/#dom-url-pathname\n getPathname: function () {\n var path = this.path;\n return this.cannotBeABaseURL ? path[0] : path.length ? '/' + join(path, '/') : '';\n },\n setPathname: function (pathname) {\n if (this.cannotBeABaseURL) return;\n this.path = [];\n this.parse(pathname, PATH_START);\n },\n // https://url.spec.whatwg.org/#dom-url-search\n getSearch: function () {\n var query = this.query;\n return query ? '?' + query : '';\n },\n setSearch: function (search) {\n search = $toString(search);\n if (search == '') {\n this.query = null;\n } else {\n if ('?' == charAt(search, 0)) search = stringSlice(search, 1);\n this.query = '';\n this.parse(search, QUERY);\n }\n this.searchParams.update();\n },\n // https://url.spec.whatwg.org/#dom-url-searchparams\n getSearchParams: function () {\n return this.searchParams.facade;\n },\n // https://url.spec.whatwg.org/#dom-url-hash\n getHash: function () {\n var fragment = this.fragment;\n return fragment ? '#' + fragment : '';\n },\n setHash: function (hash) {\n hash = $toString(hash);\n if (hash == '') {\n this.fragment = null;\n return;\n }\n if ('#' == charAt(hash, 0)) hash = stringSlice(hash, 1);\n this.fragment = '';\n this.parse(hash, FRAGMENT);\n },\n update: function () {\n this.query = this.searchParams.serialize() || null;\n }\n};\n\n// `URL` constructor\n// https://url.spec.whatwg.org/#url-class\nvar URLConstructor = function URL(url /* , base */) {\n var that = anInstance(this, URLPrototype);\n var base = validateArgumentsLength(arguments.length, 1) > 1 ? arguments[1] : undefined;\n var state = setInternalState(that, new URLState(url, false, base));\n if (!DESCRIPTORS) {\n that.href = state.serialize();\n that.origin = state.getOrigin();\n that.protocol = state.getProtocol();\n that.username = state.getUsername();\n that.password = state.getPassword();\n that.host = state.getHost();\n that.hostname = state.getHostname();\n that.port = state.getPort();\n that.pathname = state.getPathname();\n that.search = state.getSearch();\n that.searchParams = state.getSearchParams();\n that.hash = state.getHash();\n }\n};\n\nvar URLPrototype = URLConstructor.prototype;\n\nvar accessorDescriptor = function (getter, setter) {\n return {\n get: function () {\n return getInternalURLState(this)[getter]();\n },\n set: setter && function (value) {\n return getInternalURLState(this)[setter](value);\n },\n configurable: true,\n enumerable: true\n };\n};\n\nif (DESCRIPTORS) {\n defineProperties(URLPrototype, {\n // `URL.prototype.href` accessors pair\n // https://url.spec.whatwg.org/#dom-url-href\n href: accessorDescriptor('serialize', 'setHref'),\n // `URL.prototype.origin` getter\n // https://url.spec.whatwg.org/#dom-url-origin\n origin: accessorDescriptor('getOrigin'),\n // `URL.prototype.protocol` accessors pair\n // https://url.spec.whatwg.org/#dom-url-protocol\n protocol: accessorDescriptor('getProtocol', 'setProtocol'),\n // `URL.prototype.username` accessors pair\n // https://url.spec.whatwg.org/#dom-url-username\n username: accessorDescriptor('getUsername', 'setUsername'),\n // `URL.prototype.password` accessors pair\n // https://url.spec.whatwg.org/#dom-url-password\n password: accessorDescriptor('getPassword', 'setPassword'),\n // `URL.prototype.host` accessors pair\n // https://url.spec.whatwg.org/#dom-url-host\n host: accessorDescriptor('getHost', 'setHost'),\n // `URL.prototype.hostname` accessors pair\n // https://url.spec.whatwg.org/#dom-url-hostname\n hostname: accessorDescriptor('getHostname', 'setHostname'),\n // `URL.prototype.port` accessors pair\n // https://url.spec.whatwg.org/#dom-url-port\n port: accessorDescriptor('getPort', 'setPort'),\n // `URL.prototype.pathname` accessors pair\n // https://url.spec.whatwg.org/#dom-url-pathname\n pathname: accessorDescriptor('getPathname', 'setPathname'),\n // `URL.prototype.search` accessors pair\n // https://url.spec.whatwg.org/#dom-url-search\n search: accessorDescriptor('getSearch', 'setSearch'),\n // `URL.prototype.searchParams` getter\n // https://url.spec.whatwg.org/#dom-url-searchparams\n searchParams: accessorDescriptor('getSearchParams'),\n // `URL.prototype.hash` accessors pair\n // https://url.spec.whatwg.org/#dom-url-hash\n hash: accessorDescriptor('getHash', 'setHash')\n });\n}\n\n// `URL.prototype.toJSON` method\n// https://url.spec.whatwg.org/#dom-url-tojson\nredefine(URLPrototype, 'toJSON', function toJSON() {\n return getInternalURLState(this).serialize();\n}, { enumerable: true });\n\n// `URL.prototype.toString` method\n// https://url.spec.whatwg.org/#URL-stringification-behavior\nredefine(URLPrototype, 'toString', function toString() {\n return getInternalURLState(this).serialize();\n}, { enumerable: true });\n\nif (NativeURL) {\n var nativeCreateObjectURL = NativeURL.createObjectURL;\n var nativeRevokeObjectURL = NativeURL.revokeObjectURL;\n // `URL.createObjectURL` method\n // https://developer.mozilla.org/en-US/docs/Web/API/URL/createObjectURL\n if (nativeCreateObjectURL) redefine(URLConstructor, 'createObjectURL', bind(nativeCreateObjectURL, NativeURL));\n // `URL.revokeObjectURL` method\n // https://developer.mozilla.org/en-US/docs/Web/API/URL/revokeObjectURL\n if (nativeRevokeObjectURL) redefine(URLConstructor, 'revokeObjectURL', bind(nativeRevokeObjectURL, NativeURL));\n}\n\nsetToStringTag(URLConstructor, 'URL');\n\n$({ global: true, forced: !USE_NATIVE_URL, sham: !DESCRIPTORS }, {\n URL: URLConstructor\n});\n","'use strict';\n// based on https://github.com/bestiejs/punycode.js/blob/master/punycode.js\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar maxInt = 2147483647; // aka. 0x7FFFFFFF or 2^31-1\nvar base = 36;\nvar tMin = 1;\nvar tMax = 26;\nvar skew = 38;\nvar damp = 700;\nvar initialBias = 72;\nvar initialN = 128; // 0x80\nvar delimiter = '-'; // '\\x2D'\nvar regexNonASCII = /[^\\0-\\u007E]/; // non-ASCII chars\nvar regexSeparators = /[.\\u3002\\uFF0E\\uFF61]/g; // RFC 3490 separators\nvar OVERFLOW_ERROR = 'Overflow: input needs wider integers to process';\nvar baseMinusTMin = base - tMin;\n\nvar RangeError = global.RangeError;\nvar exec = uncurryThis(regexSeparators.exec);\nvar floor = Math.floor;\nvar fromCharCode = String.fromCharCode;\nvar charCodeAt = uncurryThis(''.charCodeAt);\nvar join = uncurryThis([].join);\nvar push = uncurryThis([].push);\nvar replace = uncurryThis(''.replace);\nvar split = uncurryThis(''.split);\nvar toLowerCase = uncurryThis(''.toLowerCase);\n\n/**\n * Creates an array containing the numeric code points of each Unicode\n * character in the string. While JavaScript uses UCS-2 internally,\n * this function will convert a pair of surrogate halves (each of which\n * UCS-2 exposes as separate characters) into a single code point,\n * matching UTF-16.\n */\nvar ucs2decode = function (string) {\n var output = [];\n var counter = 0;\n var length = string.length;\n while (counter < length) {\n var value = charCodeAt(string, counter++);\n if (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n // It's a high surrogate, and there is a next character.\n var extra = charCodeAt(string, counter++);\n if ((extra & 0xFC00) == 0xDC00) { // Low surrogate.\n push(output, ((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n } else {\n // It's an unmatched surrogate; only append this code unit, in case the\n // next code unit is the high surrogate of a surrogate pair.\n push(output, value);\n counter--;\n }\n } else {\n push(output, value);\n }\n }\n return output;\n};\n\n/**\n * Converts a digit/integer into a basic code point.\n */\nvar digitToBasic = function (digit) {\n // 0..25 map to ASCII a..z or A..Z\n // 26..35 map to ASCII 0..9\n return digit + 22 + 75 * (digit < 26);\n};\n\n/**\n * Bias adaptation function as per section 3.4 of RFC 3492.\n * https://tools.ietf.org/html/rfc3492#section-3.4\n */\nvar adapt = function (delta, numPoints, firstTime) {\n var k = 0;\n delta = firstTime ? floor(delta / damp) : delta >> 1;\n delta += floor(delta / numPoints);\n while (delta > baseMinusTMin * tMax >> 1) {\n delta = floor(delta / baseMinusTMin);\n k += base;\n }\n return floor(k + (baseMinusTMin + 1) * delta / (delta + skew));\n};\n\n/**\n * Converts a string of Unicode symbols (e.g. a domain name label) to a\n * Punycode string of ASCII-only symbols.\n */\nvar encode = function (input) {\n var output = [];\n\n // Convert the input in UCS-2 to an array of Unicode code points.\n input = ucs2decode(input);\n\n // Cache the length.\n var inputLength = input.length;\n\n // Initialize the state.\n var n = initialN;\n var delta = 0;\n var bias = initialBias;\n var i, currentValue;\n\n // Handle the basic code points.\n for (i = 0; i < input.length; i++) {\n currentValue = input[i];\n if (currentValue < 0x80) {\n push(output, fromCharCode(currentValue));\n }\n }\n\n var basicLength = output.length; // number of basic code points.\n var handledCPCount = basicLength; // number of code points that have been handled;\n\n // Finish the basic string with a delimiter unless it's empty.\n if (basicLength) {\n push(output, delimiter);\n }\n\n // Main encoding loop:\n while (handledCPCount < inputLength) {\n // All non-basic code points < n have been handled already. Find the next larger one:\n var m = maxInt;\n for (i = 0; i < input.length; i++) {\n currentValue = input[i];\n if (currentValue >= n && currentValue < m) {\n m = currentValue;\n }\n }\n\n // Increase `delta` enough to advance the decoder's state to , but guard against overflow.\n var handledCPCountPlusOne = handledCPCount + 1;\n if (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {\n throw RangeError(OVERFLOW_ERROR);\n }\n\n delta += (m - n) * handledCPCountPlusOne;\n n = m;\n\n for (i = 0; i < input.length; i++) {\n currentValue = input[i];\n if (currentValue < n && ++delta > maxInt) {\n throw RangeError(OVERFLOW_ERROR);\n }\n if (currentValue == n) {\n // Represent delta as a generalized variable-length integer.\n var q = delta;\n var k = base;\n while (true) {\n var t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n if (q < t) break;\n var qMinusT = q - t;\n var baseMinusT = base - t;\n push(output, fromCharCode(digitToBasic(t + qMinusT % baseMinusT)));\n q = floor(qMinusT / baseMinusT);\n k += base;\n }\n\n push(output, fromCharCode(digitToBasic(q)));\n bias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);\n delta = 0;\n handledCPCount++;\n }\n }\n\n delta++;\n n++;\n }\n return join(output, '');\n};\n\nmodule.exports = function (input) {\n var encoded = [];\n var labels = split(replace(toLowerCase(input), regexSeparators, '\\u002E'), '.');\n var i, label;\n for (i = 0; i < labels.length; i++) {\n label = labels[i];\n push(encoded, exec(regexNonASCII, label) ? 'xn--' + encode(label) : label);\n }\n return join(encoded, '.');\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar toString = require('../internals/to-string');\n\nvar quot = /\"/g;\nvar replace = uncurryThis(''.replace);\n\n// `CreateHTML` abstract operation\n// https://tc39.es/ecma262/#sec-createhtml\nmodule.exports = function (string, tag, attribute, value) {\n var S = toString(requireObjectCoercible(string));\n var p1 = '<' + tag;\n if (attribute !== '') p1 += ' ' + attribute + '=\"' + replace(toString(value), quot, '"') + '\"';\n return p1 + '>' + S + '' + tag + '>';\n};\n","'use strict';\n// TODO: in core-js@4, move /modules/ dependencies to public entries for better optimization by tools like `preset-env`\nrequire('../modules/es.array.iterator');\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar getBuiltIn = require('../internals/get-built-in');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar USE_NATIVE_URL = require('../internals/native-url');\nvar redefine = require('../internals/redefine');\nvar redefineAll = require('../internals/redefine-all');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar createIteratorConstructor = require('../internals/create-iterator-constructor');\nvar InternalStateModule = require('../internals/internal-state');\nvar anInstance = require('../internals/an-instance');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar bind = require('../internals/function-bind-context');\nvar classof = require('../internals/classof');\nvar anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar $toString = require('../internals/to-string');\nvar create = require('../internals/object-create');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar arraySort = require('../internals/array-sort');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar URL_SEARCH_PARAMS = 'URLSearchParams';\nvar URL_SEARCH_PARAMS_ITERATOR = URL_SEARCH_PARAMS + 'Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalParamsState = InternalStateModule.getterFor(URL_SEARCH_PARAMS);\nvar getInternalIteratorState = InternalStateModule.getterFor(URL_SEARCH_PARAMS_ITERATOR);\n\nvar n$Fetch = getBuiltIn('fetch');\nvar N$Request = getBuiltIn('Request');\nvar Headers = getBuiltIn('Headers');\nvar RequestPrototype = N$Request && N$Request.prototype;\nvar HeadersPrototype = Headers && Headers.prototype;\nvar RegExp = global.RegExp;\nvar TypeError = global.TypeError;\nvar decodeURIComponent = global.decodeURIComponent;\nvar encodeURIComponent = global.encodeURIComponent;\nvar charAt = uncurryThis(''.charAt);\nvar join = uncurryThis([].join);\nvar push = uncurryThis([].push);\nvar replace = uncurryThis(''.replace);\nvar shift = uncurryThis([].shift);\nvar splice = uncurryThis([].splice);\nvar split = uncurryThis(''.split);\nvar stringSlice = uncurryThis(''.slice);\n\nvar plus = /\\+/g;\nvar sequences = Array(4);\n\nvar percentSequence = function (bytes) {\n return sequences[bytes - 1] || (sequences[bytes - 1] = RegExp('((?:%[\\\\da-f]{2}){' + bytes + '})', 'gi'));\n};\n\nvar percentDecode = function (sequence) {\n try {\n return decodeURIComponent(sequence);\n } catch (error) {\n return sequence;\n }\n};\n\nvar deserialize = function (it) {\n var result = replace(it, plus, ' ');\n var bytes = 4;\n try {\n return decodeURIComponent(result);\n } catch (error) {\n while (bytes) {\n result = replace(result, percentSequence(bytes--), percentDecode);\n }\n return result;\n }\n};\n\nvar find = /[!'()~]|%20/g;\n\nvar replacements = {\n '!': '%21',\n \"'\": '%27',\n '(': '%28',\n ')': '%29',\n '~': '%7E',\n '%20': '+'\n};\n\nvar replacer = function (match) {\n return replacements[match];\n};\n\nvar serialize = function (it) {\n return replace(encodeURIComponent(it), find, replacer);\n};\n\nvar URLSearchParamsIterator = createIteratorConstructor(function Iterator(params, kind) {\n setInternalState(this, {\n type: URL_SEARCH_PARAMS_ITERATOR,\n iterator: getIterator(getInternalParamsState(params).entries),\n kind: kind\n });\n}, 'Iterator', function next() {\n var state = getInternalIteratorState(this);\n var kind = state.kind;\n var step = state.iterator.next();\n var entry = step.value;\n if (!step.done) {\n step.value = kind === 'keys' ? entry.key : kind === 'values' ? entry.value : [entry.key, entry.value];\n } return step;\n}, true);\n\nvar URLSearchParamsState = function (init) {\n this.entries = [];\n this.url = null;\n\n if (init !== undefined) {\n if (isObject(init)) this.parseObject(init);\n else this.parseQuery(typeof init == 'string' ? charAt(init, 0) === '?' ? stringSlice(init, 1) : init : $toString(init));\n }\n};\n\nURLSearchParamsState.prototype = {\n type: URL_SEARCH_PARAMS,\n bindURL: function (url) {\n this.url = url;\n this.update();\n },\n parseObject: function (object) {\n var iteratorMethod = getIteratorMethod(object);\n var iterator, next, step, entryIterator, entryNext, first, second;\n\n if (iteratorMethod) {\n iterator = getIterator(object, iteratorMethod);\n next = iterator.next;\n while (!(step = call(next, iterator)).done) {\n entryIterator = getIterator(anObject(step.value));\n entryNext = entryIterator.next;\n if (\n (first = call(entryNext, entryIterator)).done ||\n (second = call(entryNext, entryIterator)).done ||\n !call(entryNext, entryIterator).done\n ) throw TypeError('Expected sequence with length 2');\n push(this.entries, { key: $toString(first.value), value: $toString(second.value) });\n }\n } else for (var key in object) if (hasOwn(object, key)) {\n push(this.entries, { key: key, value: $toString(object[key]) });\n }\n },\n parseQuery: function (query) {\n if (query) {\n var attributes = split(query, '&');\n var index = 0;\n var attribute, entry;\n while (index < attributes.length) {\n attribute = attributes[index++];\n if (attribute.length) {\n entry = split(attribute, '=');\n push(this.entries, {\n key: deserialize(shift(entry)),\n value: deserialize(join(entry, '='))\n });\n }\n }\n }\n },\n serialize: function () {\n var entries = this.entries;\n var result = [];\n var index = 0;\n var entry;\n while (index < entries.length) {\n entry = entries[index++];\n push(result, serialize(entry.key) + '=' + serialize(entry.value));\n } return join(result, '&');\n },\n update: function () {\n this.entries.length = 0;\n this.parseQuery(this.url.query);\n },\n updateURL: function () {\n if (this.url) this.url.update();\n }\n};\n\n// `URLSearchParams` constructor\n// https://url.spec.whatwg.org/#interface-urlsearchparams\nvar URLSearchParamsConstructor = function URLSearchParams(/* init */) {\n anInstance(this, URLSearchParamsPrototype);\n var init = arguments.length > 0 ? arguments[0] : undefined;\n setInternalState(this, new URLSearchParamsState(init));\n};\n\nvar URLSearchParamsPrototype = URLSearchParamsConstructor.prototype;\n\nredefineAll(URLSearchParamsPrototype, {\n // `URLSearchParams.prototype.append` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-append\n append: function append(name, value) {\n validateArgumentsLength(arguments.length, 2);\n var state = getInternalParamsState(this);\n push(state.entries, { key: $toString(name), value: $toString(value) });\n state.updateURL();\n },\n // `URLSearchParams.prototype.delete` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-delete\n 'delete': function (name) {\n validateArgumentsLength(arguments.length, 1);\n var state = getInternalParamsState(this);\n var entries = state.entries;\n var key = $toString(name);\n var index = 0;\n while (index < entries.length) {\n if (entries[index].key === key) splice(entries, index, 1);\n else index++;\n }\n state.updateURL();\n },\n // `URLSearchParams.prototype.get` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-get\n get: function get(name) {\n validateArgumentsLength(arguments.length, 1);\n var entries = getInternalParamsState(this).entries;\n var key = $toString(name);\n var index = 0;\n for (; index < entries.length; index++) {\n if (entries[index].key === key) return entries[index].value;\n }\n return null;\n },\n // `URLSearchParams.prototype.getAll` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-getall\n getAll: function getAll(name) {\n validateArgumentsLength(arguments.length, 1);\n var entries = getInternalParamsState(this).entries;\n var key = $toString(name);\n var result = [];\n var index = 0;\n for (; index < entries.length; index++) {\n if (entries[index].key === key) push(result, entries[index].value);\n }\n return result;\n },\n // `URLSearchParams.prototype.has` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-has\n has: function has(name) {\n validateArgumentsLength(arguments.length, 1);\n var entries = getInternalParamsState(this).entries;\n var key = $toString(name);\n var index = 0;\n while (index < entries.length) {\n if (entries[index++].key === key) return true;\n }\n return false;\n },\n // `URLSearchParams.prototype.set` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-set\n set: function set(name, value) {\n validateArgumentsLength(arguments.length, 1);\n var state = getInternalParamsState(this);\n var entries = state.entries;\n var found = false;\n var key = $toString(name);\n var val = $toString(value);\n var index = 0;\n var entry;\n for (; index < entries.length; index++) {\n entry = entries[index];\n if (entry.key === key) {\n if (found) splice(entries, index--, 1);\n else {\n found = true;\n entry.value = val;\n }\n }\n }\n if (!found) push(entries, { key: key, value: val });\n state.updateURL();\n },\n // `URLSearchParams.prototype.sort` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-sort\n sort: function sort() {\n var state = getInternalParamsState(this);\n arraySort(state.entries, function (a, b) {\n return a.key > b.key ? 1 : -1;\n });\n state.updateURL();\n },\n // `URLSearchParams.prototype.forEach` method\n forEach: function forEach(callback /* , thisArg */) {\n var entries = getInternalParamsState(this).entries;\n var boundFunction = bind(callback, arguments.length > 1 ? arguments[1] : undefined);\n var index = 0;\n var entry;\n while (index < entries.length) {\n entry = entries[index++];\n boundFunction(entry.value, entry.key, this);\n }\n },\n // `URLSearchParams.prototype.keys` method\n keys: function keys() {\n return new URLSearchParamsIterator(this, 'keys');\n },\n // `URLSearchParams.prototype.values` method\n values: function values() {\n return new URLSearchParamsIterator(this, 'values');\n },\n // `URLSearchParams.prototype.entries` method\n entries: function entries() {\n return new URLSearchParamsIterator(this, 'entries');\n }\n}, { enumerable: true });\n\n// `URLSearchParams.prototype[@@iterator]` method\nredefine(URLSearchParamsPrototype, ITERATOR, URLSearchParamsPrototype.entries, { name: 'entries' });\n\n// `URLSearchParams.prototype.toString` method\n// https://url.spec.whatwg.org/#urlsearchparams-stringification-behavior\nredefine(URLSearchParamsPrototype, 'toString', function toString() {\n return getInternalParamsState(this).serialize();\n}, { enumerable: true });\n\nsetToStringTag(URLSearchParamsConstructor, URL_SEARCH_PARAMS);\n\n$({ global: true, forced: !USE_NATIVE_URL }, {\n URLSearchParams: URLSearchParamsConstructor\n});\n\n// Wrap `fetch` and `Request` for correct work with polyfilled `URLSearchParams`\nif (!USE_NATIVE_URL && isCallable(Headers)) {\n var headersHas = uncurryThis(HeadersPrototype.has);\n var headersSet = uncurryThis(HeadersPrototype.set);\n\n var wrapRequestOptions = function (init) {\n if (isObject(init)) {\n var body = init.body;\n var headers;\n if (classof(body) === URL_SEARCH_PARAMS) {\n headers = init.headers ? new Headers(init.headers) : new Headers();\n if (!headersHas(headers, 'content-type')) {\n headersSet(headers, 'content-type', 'application/x-www-form-urlencoded;charset=UTF-8');\n }\n return create(init, {\n body: createPropertyDescriptor(0, $toString(body)),\n headers: createPropertyDescriptor(0, headers)\n });\n }\n } return init;\n };\n\n if (isCallable(n$Fetch)) {\n $({ global: true, enumerable: true, forced: true }, {\n fetch: function fetch(input /* , init */) {\n return n$Fetch(input, arguments.length > 1 ? wrapRequestOptions(arguments[1]) : {});\n }\n });\n }\n\n if (isCallable(N$Request)) {\n var RequestConstructor = function Request(input /* , init */) {\n anInstance(this, RequestPrototype);\n return new N$Request(input, arguments.length > 1 ? wrapRequestOptions(arguments[1]) : {});\n };\n\n RequestPrototype.constructor = RequestConstructor;\n RequestConstructor.prototype = RequestPrototype;\n\n $({ global: true, forced: true }, {\n Request: RequestConstructor\n });\n }\n}\n\nmodule.exports = {\n URLSearchParams: URLSearchParamsConstructor,\n getState: getInternalParamsState\n};\n","var arraySlice = require('../internals/array-slice-simple');\n\nvar floor = Math.floor;\n\nvar mergeSort = function (array, comparefn) {\n var length = array.length;\n var middle = floor(length / 2);\n return length < 8 ? insertionSort(array, comparefn) : merge(\n array,\n mergeSort(arraySlice(array, 0, middle), comparefn),\n mergeSort(arraySlice(array, middle), comparefn),\n comparefn\n );\n};\n\nvar insertionSort = function (array, comparefn) {\n var length = array.length;\n var i = 1;\n var element, j;\n\n while (i < length) {\n j = i;\n element = array[i];\n while (j && comparefn(array[j - 1], element) > 0) {\n array[j] = array[--j];\n }\n if (j !== i++) array[j] = element;\n } return array;\n};\n\nvar merge = function (array, left, right, comparefn) {\n var llength = left.length;\n var rlength = right.length;\n var lindex = 0;\n var rindex = 0;\n\n while (lindex < llength || rindex < rlength) {\n array[lindex + rindex] = (lindex < llength && rindex < rlength)\n ? comparefn(left[lindex], right[rindex]) <= 0 ? left[lindex++] : right[rindex++]\n : lindex < llength ? left[lindex++] : right[rindex++];\n } return array;\n};\n\nmodule.exports = mergeSort;\n","var fails = require('../internals/fails');\n\n// check the existence of a method, lowercase\n// of a tag and escaping quotes in arguments\nmodule.exports = function (METHOD_NAME) {\n return fails(function () {\n var test = ''[METHOD_NAME]('\"');\n return test !== test.toLowerCase() || test.split('\"').length > 3;\n });\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.fixed` method\n// https://tc39.es/ecma262/#sec-string.prototype.fixed\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('fixed') }, {\n fixed: function fixed() {\n return createHTML(this, 'tt', '', '');\n }\n});\n","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./index.vue?vue&type=style&index=0&id=2ff088fd&lang=scss&scoped=true\""],"sourceRoot":""}
\ No newline at end of file
diff --git a/dist/js/chunk-2234305e.8f32d19b.js.map b/dist/js/chunk-2234305e.8f32d19b.js.map
deleted file mode 100644
index a2b4d19..0000000
--- a/dist/js/chunk-2234305e.8f32d19b.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["webpack:///./node_modules/core-js/internals/native-url.js","webpack:///./src/assets/image/cro.jpg","webpack:///./node_modules/@babel/runtime/helpers/esm/typeof.js","webpack:///./node_modules/vue-cropper/dist/vue-cropper.es.js","webpack:///./src/views/other/cropper/index.vue?bd42","webpack:///./src/views/other/cropper/index.vue","webpack:///./node_modules/core-js/modules/web.url.js","webpack:///./node_modules/core-js/internals/string-punycode-to-ascii.js","webpack:///./src/views/other/cropper/index.vue?e656","webpack:///./node_modules/core-js/internals/create-html.js","webpack:///./node_modules/core-js/modules/web.url-search-params.js","webpack:///./node_modules/core-js/internals/array-sort.js","webpack:///./node_modules/core-js/internals/string-html-forced.js","webpack:///./node_modules/core-js/modules/es.string.fixed.js"],"names":["fails","wellKnownSymbol","IS_PURE","ITERATOR","module","exports","url","URL","searchParams","result","pathname","forEach","value","key","toJSON","sort","href","get","String","URLSearchParams","username","host","hash","undefined","_typeof","obj","Symbol","iterator","constructor","prototype","Exif","getImageData","img","data","Promise","reslove","reject","src","test","base64ToArrayBuffer","fileReader","FileReader","onload","e","target","objectURLToBlob","blob","readAsArrayBuffer","http","XMLHttpRequest","this","status","response","open","responseType","send","callback","base64","replace","binary","atob","len","length","buffer","ArrayBuffer","view","Uint8Array","i","charCodeAt","getStringFromCharCode","dataView","start","str","fromCharCode","getUint8","getOrientation","arrayBuffer","orientation","exifIDCode","tiffOffset","firstIFDOffset","littleEndian","endianness","app1Start","ifdStart","offset","DataView","byteLength","getUint16","getUint32","getData","then","catch","error","_export_sfc","sfc","props","__vccOpts","val","_sfc_main","w","h","scale","x","y","loading","trueWidth","trueHeight","move","moveX","moveY","crop","cropping","cropW","cropH","cropOldW","cropOldH","canChangeX","canChangeY","changeCropTypeX","changeCropTypeY","cropX","cropY","cropChangeX","cropChangeY","cropOffsertX","cropOffsertY","support","touches","touchNow","rotate","isIos","imgs","coe","scaling","scalingSet","coeStatus","isCanShow","type","Blob","File","default","outputSize","Number","outputType","info","Boolean","canScale","autoCrop","autoCropWidth","autoCropHeight","fixed","fixedNumber","Array","fixedBox","full","canMove","canMoveBox","original","centerBox","high","infoTrue","maxImgSize","enlarge","preW","mode","limitMinSize","computed","top","width","height","dpr","window","devicePixelRatio","Math","abs","toFixed","isIE","ActiveXObject","passive","watch","checkedImg","reload","showPreview","oldVal","goAutoCrop","methods","name","arr","navigator","userAgent","split","chromeVersion","reg","RegExp","getVersion","safariVersion","toLowerCase","match","version","canvas","document","createElement","ctx","getContext","save","translate","PI","drawImage","restore","toBlob","createObjectURL","revokeObjectURL","clearCrop","Image","$emit","max","checkOrientationImage","onerror","substr","crossOrigin","xhr","preventDefault","clientX","clientY","addEventListener","moveImg","leaveImg","touchScale","cancelTouchScale","moving","axis","getImgAxis","createCrop","endCrop","offsetX","pageX","$refs","cropper","offsetLeft","offsetY","pageY","offsetTop","oldTouch1","newTouch1","oldTouch2","newTouch2","oldL","sqrt","pow","newL","cha","num","setTimeout","checkoutImgAxis","removeEventListener","changeX","changeY","nowX","nowY","$nextTick","maxLeft","maxTop","maxRight","maxBottom","cropAxis","getCropAxis","imgW","imgH","x1","y1","x2","y2","changeSize","change","deltaY","wheelDelta","isFirefox","indexOf","fw","fh","fixedHeight","typeW","typeH","changeCropNow","changeCropEnd","wrapperW","wrapperH","minX","minY","fixedWidth","limitMinNum","isArray","parseFloat","startMove","leaveCrop","moveCrop","newX","newY","isMove","cx","cy","cb","dx","dy","setCanvasSize","s","round","getCropChecked","toDataURL","div","transformX","transformY","transformZ","transform","html","getComputedStyle","checkedMode","search","scaleX","scaleY","strH","min","str2","cw","ch","maxWidth","maxHeight","switchWH","changeCrop","checkCropLimitSize","canGo","onmousewheel","that","u","isIOS","HTMLCanvasElement","Object","defineProperty","quality","binStr","cancelScale","_hoisted_1","class","_hoisted_2","_hoisted_3","_hoisted_4","_hoisted_5","_sfc_render","_ctx","_cache","$props","$setup","$data","$options","ref","onMouseover","args","scaleImg","onMouseout","style","alt","onMousedown","onTouchstart","cropMove","cropInfo","$event","changeCropSize","VueCropper","Vue","createApp","component","_withScopeId","n","_pushScopeId","_popScopeId","_createTextVNode","_hoisted_6","_hoisted_7","_hoisted_8","_hoisted_9","_hoisted_10","_hoisted_11","_hoisted_12","_createElementVNode","_hoisted_13","_hoisted_14","_hoisted_15","_hoisted_16","_defineComponent","setup","__props","option","reactive","imgSrc","size","previews","cropImg","realTime","zoom","percent","changeScale","rotateLeft","rotateRight","down","aLink","download","getCropBlob","click","getCropData","cropImage","reset","beforeUpload","file","fileList","resolve","reader","readAsDataURL","ElMessage","_component_el_button","_resolveComponent","_component_el_upload","_openBlock","_createElementBlock","_createVNode","_unref","ref_key","onRealTime","onClick","_withModifiers","_withCtx","_","action","_normalizeStyle","_createCommentVNode","__exports__","EOF","$","DESCRIPTORS","USE_NATIVE_URL","global","bind","uncurryThis","defineProperties","f","redefine","anInstance","hasOwn","assign","arrayFrom","arraySlice","codeAt","toASCII","$toString","setToStringTag","validateArgumentsLength","URLSearchParamsModule","InternalStateModule","setInternalState","set","getInternalURLState","getterFor","getInternalSearchParamsState","getState","NativeURL","TypeError","parseInt","floor","charAt","exec","join","numberToString","toString","pop","push","shift","stringSlice","slice","unshift","INVALID_AUTHORITY","INVALID_SCHEME","INVALID_HOST","INVALID_PORT","ALPHA","ALPHANUMERIC","DIGIT","HEX_START","OCT","DEC","HEX","FORBIDDEN_HOST_CODE_POINT","FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT","LEADING_AND_TRAILING_C0_CONTROL_OR_SPACE","TAB_AND_NEW_LINE","parseIPv4","input","partsLength","numbers","index","part","radix","number","ipv4","parts","parseIPv6","numbersSeen","ipv4Piece","swaps","swap","address","pieceIndex","compress","pointer","chr","findLongestZeroSequence","ipv6","maxIndex","maxLength","currStart","currLength","serializeHost","ignore0","C0ControlPercentEncodeSet","fragmentPercentEncodeSet","pathPercentEncodeSet","userinfoPercentEncodeSet","percentEncode","code","encodeURIComponent","specialSchemes","ftp","https","ws","wss","isWindowsDriveLetter","string","normalized","second","startsWithWindowsDriveLetter","third","isSingleDot","segment","isDoubleDot","SCHEME_START","SCHEME","NO_SCHEME","SPECIAL_RELATIVE_OR_AUTHORITY","PATH_OR_AUTHORITY","RELATIVE","RELATIVE_SLASH","SPECIAL_AUTHORITY_SLASHES","SPECIAL_AUTHORITY_IGNORE_SLASHES","AUTHORITY","HOST","HOSTNAME","PORT","FILE","FILE_SLASH","FILE_HOST","PATH_START","PATH","CANNOT_BE_A_BASE_URL_PATH","QUERY","FRAGMENT","URLState","isBase","base","baseState","failure","urlString","parse","bindURL","stateOverride","codePoints","bufferCodePoints","state","seenAt","seenBracket","seenPasswordToken","scheme","password","port","path","query","fragment","cannotBeABaseURL","isSpecial","includesCredentials","codePoint","encodedCodePoints","parseHost","shortenPath","cannotHaveUsernamePasswordPort","pathSize","serialize","output","setHref","update","getOrigin","URLConstructor","origin","getProtocol","setProtocol","protocol","getUsername","setUsername","getPassword","setPassword","getHost","setHost","getHostname","setHostname","hostname","getPort","setPort","getPathname","setPathname","getSearch","setSearch","getSearchParams","facade","getHash","setHash","URLPrototype","arguments","accessorDescriptor","getter","setter","configurable","enumerable","nativeCreateObjectURL","nativeRevokeObjectURL","forced","sham","maxInt","tMin","tMax","skew","damp","initialBias","initialN","delimiter","regexNonASCII","regexSeparators","OVERFLOW_ERROR","baseMinusTMin","RangeError","ucs2decode","counter","extra","digitToBasic","digit","adapt","delta","numPoints","firstTime","k","encode","currentValue","inputLength","bias","basicLength","handledCPCount","m","handledCPCountPlusOne","q","t","qMinusT","baseMinusT","label","encoded","labels","requireObjectCoercible","quot","tag","attribute","S","p1","getBuiltIn","call","redefineAll","createIteratorConstructor","isCallable","classof","anObject","isObject","create","createPropertyDescriptor","getIterator","getIteratorMethod","arraySort","URL_SEARCH_PARAMS","URL_SEARCH_PARAMS_ITERATOR","getInternalParamsState","getInternalIteratorState","n$Fetch","N$Request","Headers","RequestPrototype","HeadersPrototype","decodeURIComponent","splice","plus","sequences","percentSequence","bytes","percentDecode","sequence","deserialize","it","find","replacements","replacer","URLSearchParamsIterator","params","kind","entries","step","next","entry","done","URLSearchParamsState","init","parseObject","parseQuery","object","entryIterator","entryNext","first","iteratorMethod","attributes","updateURL","URLSearchParamsConstructor","URLSearchParamsPrototype","append","getAll","has","found","a","b","boundFunction","keys","values","headersHas","headersSet","wrapRequestOptions","headers","body","fetch","RequestConstructor","Request","mergeSort","array","comparefn","middle","insertionSort","merge","element","j","left","right","llength","rlength","lindex","rindex","METHOD_NAME","createHTML","forcedStringHTMLMethod","proto"],"mappings":"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","file":"js/chunk-2234305e.8f32d19b.js","sourcesContent":["var fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = !fails(function () {\n // eslint-disable-next-line unicorn/relative-url-style -- required for testing\n var url = new URL('b?a=1&b=2&c=3', 'http://a');\n var searchParams = url.searchParams;\n var result = '';\n url.pathname = 'c%20d';\n searchParams.forEach(function (value, key) {\n searchParams['delete']('b');\n result += key + value;\n });\n return (IS_PURE && !url.toJSON)\n || !searchParams.sort\n || url.href !== 'http://a/c%20d?a=1&c=3'\n || searchParams.get('c') !== '3'\n || String(new URLSearchParams('?a=1')) !== 'a=1'\n || !searchParams[ITERATOR]\n // throws in Edge\n || new URL('https://a@b').username !== 'a'\n || new URLSearchParams(new URLSearchParams('a=b')).get('a') !== 'b'\n // not punycoded in Edge\n || new URL('http://тест').host !== 'xn--e1aybc'\n // not escaped in Chrome 62-\n || new URL('http://a#б').hash !== '#%D0%B1'\n // fails in Chrome 66-\n || result !== 'a1c3'\n // throws in Safari\n || new URL('http://x', undefined).host !== 'x';\n});\n","module.exports = __webpack_public_path__ + \"img/cro.6ba28915.jpg\";","export default function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n}","import { defineComponent, openBlock, createElementBlock, withDirectives, createElementVNode, normalizeStyle, vShow, createCommentVNode, normalizeClass, toDisplayString } from \"vue\";\nconst Exif = {};\nExif.getData = (img) => new Promise((reslove, reject) => {\n let obj = {};\n getImageData(img).then((data) => {\n obj.arrayBuffer = data;\n obj.orientation = getOrientation(data);\n reslove(obj);\n }).catch((error) => {\n reject(error);\n });\n});\nfunction getImageData(img) {\n let data = null;\n return new Promise((reslove, reject) => {\n if (img.src) {\n if (/^data\\:/i.test(img.src)) {\n data = base64ToArrayBuffer(img.src);\n reslove(data);\n } else if (/^blob\\:/i.test(img.src)) {\n var fileReader = new FileReader();\n fileReader.onload = function(e) {\n data = e.target.result;\n reslove(data);\n };\n objectURLToBlob(img.src, function(blob) {\n fileReader.readAsArrayBuffer(blob);\n });\n } else {\n var http = new XMLHttpRequest();\n http.onload = function() {\n if (this.status == 200 || this.status === 0) {\n data = http.response;\n reslove(data);\n } else {\n throw \"Could not load image\";\n }\n http = null;\n };\n http.open(\"GET\", img.src, true);\n http.responseType = \"arraybuffer\";\n http.send(null);\n }\n } else {\n reject(\"img error\");\n }\n });\n}\nfunction objectURLToBlob(url, callback) {\n var http = new XMLHttpRequest();\n http.open(\"GET\", url, true);\n http.responseType = \"blob\";\n http.onload = function(e) {\n if (this.status == 200 || this.status === 0) {\n callback(this.response);\n }\n };\n http.send();\n}\nfunction base64ToArrayBuffer(base64) {\n base64 = base64.replace(/^data\\:([^\\;]+)\\;base64,/gmi, \"\");\n var binary = atob(base64);\n var len = binary.length;\n var buffer = new ArrayBuffer(len);\n var view = new Uint8Array(buffer);\n for (var i = 0; i < len; i++) {\n view[i] = binary.charCodeAt(i);\n }\n return buffer;\n}\nfunction getStringFromCharCode(dataView, start, length) {\n var str = \"\";\n var i;\n for (i = start, length += start; i < length; i++) {\n str += String.fromCharCode(dataView.getUint8(i));\n }\n return str;\n}\nfunction getOrientation(arrayBuffer) {\n var dataView = new DataView(arrayBuffer);\n var length = dataView.byteLength;\n var orientation;\n var exifIDCode;\n var tiffOffset;\n var firstIFDOffset;\n var littleEndian;\n var endianness;\n var app1Start;\n var ifdStart;\n var offset;\n var i;\n if (dataView.getUint8(0) === 255 && dataView.getUint8(1) === 216) {\n offset = 2;\n while (offset < length) {\n if (dataView.getUint8(offset) === 255 && dataView.getUint8(offset + 1) === 225) {\n app1Start = offset;\n break;\n }\n offset++;\n }\n }\n if (app1Start) {\n exifIDCode = app1Start + 4;\n tiffOffset = app1Start + 10;\n if (getStringFromCharCode(dataView, exifIDCode, 4) === \"Exif\") {\n endianness = dataView.getUint16(tiffOffset);\n littleEndian = endianness === 18761;\n if (littleEndian || endianness === 19789) {\n if (dataView.getUint16(tiffOffset + 2, littleEndian) === 42) {\n firstIFDOffset = dataView.getUint32(tiffOffset + 4, littleEndian);\n if (firstIFDOffset >= 8) {\n ifdStart = tiffOffset + firstIFDOffset;\n }\n }\n }\n }\n }\n if (ifdStart) {\n length = dataView.getUint16(ifdStart, littleEndian);\n for (i = 0; i < length; i++) {\n offset = ifdStart + i * 12 + 2;\n if (dataView.getUint16(offset, littleEndian) === 274) {\n offset += 8;\n orientation = dataView.getUint16(offset, littleEndian);\n break;\n }\n }\n }\n return orientation;\n}\nvar vueCropper_vue_vue_type_style_index_0_scoped_true_lang = \"\";\nvar _export_sfc = (sfc, props) => {\n const target = sfc.__vccOpts || sfc;\n for (const [key, val] of props) {\n target[key] = val;\n }\n return target;\n};\nconst _sfc_main = defineComponent({\n data: function() {\n return {\n w: 0,\n h: 0,\n scale: 1,\n x: 0,\n y: 0,\n loading: true,\n trueWidth: 0,\n trueHeight: 0,\n move: true,\n moveX: 0,\n moveY: 0,\n crop: false,\n cropping: false,\n cropW: 0,\n cropH: 0,\n cropOldW: 0,\n cropOldH: 0,\n canChangeX: false,\n canChangeY: false,\n changeCropTypeX: 1,\n changeCropTypeY: 1,\n cropX: 0,\n cropY: 0,\n cropChangeX: 0,\n cropChangeY: 0,\n cropOffsertX: 0,\n cropOffsertY: 0,\n support: \"\",\n touches: [],\n touchNow: false,\n rotate: 0,\n isIos: false,\n orientation: 0,\n imgs: \"\",\n coe: 0.2,\n scaling: false,\n scalingSet: \"\",\n coeStatus: \"\",\n isCanShow: true\n };\n },\n props: {\n img: {\n type: [String, Blob, null, File],\n default: \"\"\n },\n outputSize: {\n type: Number,\n default: 1\n },\n outputType: {\n type: String,\n default: \"jpeg\"\n },\n info: {\n type: Boolean,\n default: true\n },\n canScale: {\n type: Boolean,\n default: true\n },\n autoCrop: {\n type: Boolean,\n default: false\n },\n autoCropWidth: {\n type: [Number, String],\n default: 0\n },\n autoCropHeight: {\n type: [Number, String],\n default: 0\n },\n fixed: {\n type: Boolean,\n default: false\n },\n fixedNumber: {\n type: Array,\n default: () => {\n return [1, 1];\n }\n },\n fixedBox: {\n type: Boolean,\n default: false\n },\n full: {\n type: Boolean,\n default: false\n },\n canMove: {\n type: Boolean,\n default: true\n },\n canMoveBox: {\n type: Boolean,\n default: true\n },\n original: {\n type: Boolean,\n default: false\n },\n centerBox: {\n type: Boolean,\n default: false\n },\n high: {\n type: Boolean,\n default: true\n },\n infoTrue: {\n type: Boolean,\n default: false\n },\n maxImgSize: {\n type: [Number, String],\n default: 2e3\n },\n enlarge: {\n type: [Number, String],\n default: 1\n },\n preW: {\n type: [Number, String],\n default: 0\n },\n mode: {\n type: String,\n default: \"contain\"\n },\n limitMinSize: {\n type: [Number, Array, String],\n default: () => {\n return 10;\n }\n }\n },\n computed: {\n cropInfo() {\n let obj = {};\n obj.top = this.cropOffsertY > 21 ? \"-21px\" : \"0px\";\n obj.width = this.cropW > 0 ? this.cropW : 0;\n obj.height = this.cropH > 0 ? this.cropH : 0;\n if (this.infoTrue) {\n let dpr = 1;\n if (this.high && !this.full) {\n dpr = window.devicePixelRatio;\n }\n if (this.enlarge !== 1 & !this.full) {\n dpr = Math.abs(Number(this.enlarge));\n }\n obj.width = obj.width * dpr;\n obj.height = obj.height * dpr;\n if (this.full) {\n obj.width = obj.width / this.scale;\n obj.height = obj.height / this.scale;\n }\n }\n obj.width = obj.width.toFixed(0);\n obj.height = obj.height.toFixed(0);\n return obj;\n },\n isIE() {\n const isIE = !!window.ActiveXObject || \"ActiveXObject\" in window;\n return isIE;\n },\n passive() {\n return this.isIE ? null : {\n passive: false\n };\n }\n },\n watch: {\n img() {\n this.checkedImg();\n },\n imgs(val) {\n if (val === \"\") {\n return;\n }\n this.reload();\n },\n cropW() {\n this.showPreview();\n },\n cropH() {\n this.showPreview();\n },\n cropOffsertX() {\n this.showPreview();\n },\n cropOffsertY() {\n this.showPreview();\n },\n scale(val, oldVal) {\n this.showPreview();\n },\n x() {\n this.showPreview();\n },\n y() {\n this.showPreview();\n },\n autoCrop(val) {\n if (val) {\n this.goAutoCrop();\n }\n },\n autoCropWidth() {\n if (this.autoCrop) {\n this.goAutoCrop();\n }\n },\n autoCropHeight() {\n if (this.autoCrop) {\n this.goAutoCrop();\n }\n },\n mode() {\n this.checkedImg();\n },\n rotate() {\n this.showPreview();\n if (this.autoCrop) {\n this.goAutoCrop(this.cropW, this.cropH);\n } else {\n if (this.cropW > 0 || this.cropH > 0) {\n this.goAutoCrop(this.cropW, this.cropH);\n }\n }\n }\n },\n methods: {\n getVersion(name) {\n var arr = navigator.userAgent.split(\" \");\n var chromeVersion = \"\";\n let result = 0;\n const reg = new RegExp(name, \"i\");\n for (var i = 0; i < arr.length; i++) {\n if (reg.test(arr[i]))\n chromeVersion = arr[i];\n }\n if (chromeVersion) {\n result = chromeVersion.split(\"/\")[1].split(\".\");\n } else {\n result = [\"0\", \"0\", \"0\"];\n }\n return result;\n },\n checkOrientationImage(img, orientation, width, height) {\n if (this.getVersion(\"chrome\")[0] >= 81) {\n orientation = -1;\n } else {\n if (this.getVersion(\"safari\")[0] >= 605) {\n const safariVersion = this.getVersion(\"version\");\n if (safariVersion[0] > 13 && safariVersion[1] > 1) {\n orientation = -1;\n }\n } else {\n const isIos = navigator.userAgent.toLowerCase().match(/cpu iphone os (.*?) like mac os/);\n if (isIos) {\n let version = isIos[1];\n version = version.split(\"_\");\n if (version[0] > 13 || version[0] >= 13 && version[1] >= 4) {\n orientation = -1;\n }\n }\n }\n }\n let canvas = document.createElement(\"canvas\");\n let ctx = canvas.getContext(\"2d\");\n ctx.save();\n switch (orientation) {\n case 2:\n canvas.width = width;\n canvas.height = height;\n ctx.translate(width, 0);\n ctx.scale(-1, 1);\n break;\n case 3:\n canvas.width = width;\n canvas.height = height;\n ctx.translate(width / 2, height / 2);\n ctx.rotate(180 * Math.PI / 180);\n ctx.translate(-width / 2, -height / 2);\n break;\n case 4:\n canvas.width = width;\n canvas.height = height;\n ctx.translate(0, height);\n ctx.scale(1, -1);\n break;\n case 5:\n canvas.height = width;\n canvas.width = height;\n ctx.rotate(0.5 * Math.PI);\n ctx.scale(1, -1);\n break;\n case 6:\n canvas.width = height;\n canvas.height = width;\n ctx.translate(height / 2, width / 2);\n ctx.rotate(90 * Math.PI / 180);\n ctx.translate(-width / 2, -height / 2);\n break;\n case 7:\n canvas.height = width;\n canvas.width = height;\n ctx.rotate(0.5 * Math.PI);\n ctx.translate(width, -height);\n ctx.scale(-1, 1);\n break;\n case 8:\n canvas.height = width;\n canvas.width = height;\n ctx.translate(height / 2, width / 2);\n ctx.rotate(-90 * Math.PI / 180);\n ctx.translate(-width / 2, -height / 2);\n break;\n default:\n canvas.width = width;\n canvas.height = height;\n }\n ctx.drawImage(img, 0, 0, width, height);\n ctx.restore();\n canvas.toBlob((blob) => {\n let data = URL.createObjectURL(blob);\n URL.revokeObjectURL(this.imgs);\n this.imgs = data;\n }, \"image/\" + this.outputType, 1);\n },\n checkedImg() {\n if (this.img === null || this.img === \"\") {\n this.imgs = \"\";\n this.clearCrop();\n return;\n }\n this.loading = true;\n this.scale = 1;\n this.rotate = 0;\n this.clearCrop();\n let img = new Image();\n img.onload = () => {\n if (this.img === \"\") {\n this.$emit(\"img-load\", \"error\");\n return false;\n }\n let width = img.width;\n let height = img.height;\n Exif.getData(img).then((data) => {\n this.orientation = data.orientation || 1;\n let max = Number(this.maxImgSize);\n if (!this.orientation && width < max & height < max) {\n this.imgs = this.img;\n return;\n }\n if (width > max) {\n height = height / width * max;\n width = max;\n }\n if (height > max) {\n width = width / height * max;\n height = max;\n }\n this.checkOrientationImage(img, this.orientation, width, height);\n });\n };\n img.onerror = () => {\n this.$emit(\"img-load\", \"error\");\n };\n if (this.img.substr(0, 4) !== \"data\") {\n img.crossOrigin = \"\";\n }\n if (this.isIE) {\n var xhr = new XMLHttpRequest();\n xhr.onload = function() {\n var url = URL.createObjectURL(this.response);\n img.src = url;\n };\n xhr.open(\"GET\", this.img, true);\n xhr.responseType = \"blob\";\n xhr.send();\n } else {\n img.src = this.img;\n }\n },\n startMove(e) {\n e.preventDefault();\n if (this.move && !this.crop) {\n if (!this.canMove) {\n return false;\n }\n this.moveX = (\"clientX\" in e ? e.clientX : e.touches[0].clientX) - this.x;\n this.moveY = (\"clientY\" in e ? e.clientY : e.touches[0].clientY) - this.y;\n if (e.touches) {\n window.addEventListener(\"touchmove\", this.moveImg);\n window.addEventListener(\"touchend\", this.leaveImg);\n if (e.touches.length == 2) {\n this.touches = e.touches;\n window.addEventListener(\"touchmove\", this.touchScale);\n window.addEventListener(\"touchend\", this.cancelTouchScale);\n }\n } else {\n window.addEventListener(\"mousemove\", this.moveImg);\n window.addEventListener(\"mouseup\", this.leaveImg);\n }\n this.$emit(\"imgMoving\", {\n moving: true,\n axis: this.getImgAxis()\n });\n this.$emit(\"img-moving\", {\n moving: true,\n axis: this.getImgAxis()\n });\n } else {\n this.cropping = true;\n window.addEventListener(\"mousemove\", this.createCrop);\n window.addEventListener(\"mouseup\", this.endCrop);\n window.addEventListener(\"touchmove\", this.createCrop);\n window.addEventListener(\"touchend\", this.endCrop);\n this.cropOffsertX = e.offsetX ? e.offsetX : e.touches[0].pageX - this.$refs.cropper.offsetLeft;\n this.cropOffsertY = e.offsetY ? e.offsetY : e.touches[0].pageY - this.$refs.cropper.offsetTop;\n this.cropX = \"clientX\" in e ? e.clientX : e.touches[0].clientX;\n this.cropY = \"clientY\" in e ? e.clientY : e.touches[0].clientY;\n this.cropChangeX = this.cropOffsertX;\n this.cropChangeY = this.cropOffsertY;\n this.cropW = 0;\n this.cropH = 0;\n }\n },\n touchScale(e) {\n e.preventDefault();\n let scale = this.scale;\n var oldTouch1 = {\n x: this.touches[0].clientX,\n y: this.touches[0].clientY\n };\n var newTouch1 = {\n x: e.touches[0].clientX,\n y: e.touches[0].clientY\n };\n var oldTouch2 = {\n x: this.touches[1].clientX,\n y: this.touches[1].clientY\n };\n var newTouch2 = {\n x: e.touches[1].clientX,\n y: e.touches[1].clientY\n };\n var oldL = Math.sqrt(Math.pow(oldTouch1.x - oldTouch2.x, 2) + Math.pow(oldTouch1.y - oldTouch2.y, 2));\n var newL = Math.sqrt(Math.pow(newTouch1.x - newTouch2.x, 2) + Math.pow(newTouch1.y - newTouch2.y, 2));\n var cha = newL - oldL;\n var coe = 1;\n coe = coe / this.trueWidth > coe / this.trueHeight ? coe / this.trueHeight : coe / this.trueWidth;\n coe = coe > 0.1 ? 0.1 : coe;\n var num = coe * cha;\n if (!this.touchNow) {\n this.touchNow = true;\n if (cha > 0) {\n scale += Math.abs(num);\n } else if (cha < 0) {\n scale > Math.abs(num) ? scale -= Math.abs(num) : scale;\n }\n this.touches = e.touches;\n setTimeout(() => {\n this.touchNow = false;\n }, 8);\n if (!this.checkoutImgAxis(this.x, this.y, scale)) {\n return false;\n }\n this.scale = scale;\n }\n },\n cancelTouchScale(e) {\n window.removeEventListener(\"touchmove\", this.touchScale);\n },\n moveImg(e) {\n e.preventDefault();\n if (e.touches && e.touches.length === 2) {\n this.touches = e.touches;\n window.addEventListener(\"touchmove\", this.touchScale);\n window.addEventListener(\"touchend\", this.cancelTouchScale);\n window.removeEventListener(\"touchmove\", this.moveImg);\n return false;\n }\n let nowX = \"clientX\" in e ? e.clientX : e.touches[0].clientX;\n let nowY = \"clientY\" in e ? e.clientY : e.touches[0].clientY;\n let changeX, changeY;\n changeX = nowX - this.moveX;\n changeY = nowY - this.moveY;\n this.$nextTick(() => {\n if (this.centerBox) {\n let axis = this.getImgAxis(changeX, changeY, this.scale);\n let cropAxis = this.getCropAxis();\n let imgW = this.trueHeight * this.scale;\n let imgH = this.trueWidth * this.scale;\n let maxLeft, maxTop, maxRight, maxBottom;\n switch (this.rotate) {\n case 1:\n case -1:\n case 3:\n case -3:\n maxLeft = this.cropOffsertX - this.trueWidth * (1 - this.scale) / 2 + (imgW - imgH) / 2;\n maxTop = this.cropOffsertY - this.trueHeight * (1 - this.scale) / 2 + (imgH - imgW) / 2;\n maxRight = maxLeft - imgW + this.cropW;\n maxBottom = maxTop - imgH + this.cropH;\n break;\n default:\n maxLeft = this.cropOffsertX - this.trueWidth * (1 - this.scale) / 2;\n maxTop = this.cropOffsertY - this.trueHeight * (1 - this.scale) / 2;\n maxRight = maxLeft - imgH + this.cropW;\n maxBottom = maxTop - imgW + this.cropH;\n break;\n }\n if (axis.x1 >= cropAxis.x1) {\n changeX = maxLeft;\n }\n if (axis.y1 >= cropAxis.y1) {\n changeY = maxTop;\n }\n if (axis.x2 <= cropAxis.x2) {\n changeX = maxRight;\n }\n if (axis.y2 <= cropAxis.y2) {\n changeY = maxBottom;\n }\n }\n this.x = changeX;\n this.y = changeY;\n this.$emit(\"imgMoving\", {\n moving: true,\n axis: this.getImgAxis()\n });\n this.$emit(\"img-moving\", {\n moving: true,\n axis: this.getImgAxis()\n });\n });\n },\n leaveImg(e) {\n window.removeEventListener(\"mousemove\", this.moveImg);\n window.removeEventListener(\"touchmove\", this.moveImg);\n window.removeEventListener(\"mouseup\", this.leaveImg);\n window.removeEventListener(\"touchend\", this.leaveImg);\n this.$emit(\"imgMoving\", {\n moving: false,\n axis: this.getImgAxis()\n });\n this.$emit(\"img-moving\", {\n moving: false,\n axis: this.getImgAxis()\n });\n },\n scaleImg() {\n if (this.canScale) {\n window.addEventListener(this.support, this.changeSize, this.passive);\n }\n },\n cancelScale() {\n if (this.canScale) {\n window.removeEventListener(this.support, this.changeSize);\n }\n },\n changeSize(e) {\n e.preventDefault();\n let scale = this.scale;\n var change = e.deltaY || e.wheelDelta;\n var isFirefox = navigator.userAgent.indexOf(\"Firefox\");\n change = isFirefox > 0 ? change * 30 : change;\n if (this.isIE) {\n change = -change;\n }\n var coe = this.coe;\n coe = coe / this.trueWidth > coe / this.trueHeight ? coe / this.trueHeight : coe / this.trueWidth;\n var num = coe * change;\n num < 0 ? scale += Math.abs(num) : scale > Math.abs(num) ? scale -= Math.abs(num) : scale;\n let status = num < 0 ? \"add\" : \"reduce\";\n if (status !== this.coeStatus) {\n this.coeStatus = status;\n this.coe = 0.2;\n }\n if (!this.scaling) {\n this.scalingSet = setTimeout(() => {\n this.scaling = false;\n this.coe = this.coe += 0.01;\n }, 50);\n }\n this.scaling = true;\n if (!this.checkoutImgAxis(this.x, this.y, scale)) {\n return false;\n }\n this.scale = scale;\n },\n changeScale(num) {\n let scale = this.scale;\n num = num || 1;\n var coe = 20;\n coe = coe / this.trueWidth > coe / this.trueHeight ? coe / this.trueHeight : coe / this.trueWidth;\n num = num * coe;\n num > 0 ? scale += Math.abs(num) : scale > Math.abs(num) ? scale -= Math.abs(num) : scale;\n if (!this.checkoutImgAxis(this.x, this.y, scale)) {\n return false;\n }\n this.scale = scale;\n },\n createCrop(e) {\n e.preventDefault();\n var nowX = \"clientX\" in e ? e.clientX : e.touches ? e.touches[0].clientX : 0;\n var nowY = \"clientY\" in e ? e.clientY : e.touches ? e.touches[0].clientY : 0;\n this.$nextTick(() => {\n var fw = nowX - this.cropX;\n var fh = nowY - this.cropY;\n if (fw > 0) {\n this.cropW = fw + this.cropChangeX > this.w ? this.w - this.cropChangeX : fw;\n this.cropOffsertX = this.cropChangeX;\n } else {\n this.cropW = this.w - this.cropChangeX + Math.abs(fw) > this.w ? this.cropChangeX : Math.abs(fw);\n this.cropOffsertX = this.cropChangeX + fw > 0 ? this.cropChangeX + fw : 0;\n }\n if (!this.fixed) {\n if (fh > 0) {\n this.cropH = fh + this.cropChangeY > this.h ? this.h - this.cropChangeY : fh;\n this.cropOffsertY = this.cropChangeY;\n } else {\n this.cropH = this.h - this.cropChangeY + Math.abs(fh) > this.h ? this.cropChangeY : Math.abs(fh);\n this.cropOffsertY = this.cropChangeY + fh > 0 ? this.cropChangeY + fh : 0;\n }\n } else {\n var fixedHeight = this.cropW / this.fixedNumber[0] * this.fixedNumber[1];\n if (fixedHeight + this.cropOffsertY > this.h) {\n this.cropH = this.h - this.cropOffsertY;\n this.cropW = this.cropH / this.fixedNumber[1] * this.fixedNumber[0];\n if (fw > 0) {\n this.cropOffsertX = this.cropChangeX;\n } else {\n this.cropOffsertX = this.cropChangeX - this.cropW;\n }\n } else {\n this.cropH = fixedHeight;\n }\n this.cropOffsertY = this.cropOffsertY;\n }\n });\n },\n changeCropSize(e, w, h, typeW, typeH) {\n e.preventDefault();\n window.addEventListener(\"mousemove\", this.changeCropNow);\n window.addEventListener(\"mouseup\", this.changeCropEnd);\n window.addEventListener(\"touchmove\", this.changeCropNow);\n window.addEventListener(\"touchend\", this.changeCropEnd);\n this.canChangeX = w;\n this.canChangeY = h;\n this.changeCropTypeX = typeW;\n this.changeCropTypeY = typeH;\n this.cropX = \"clientX\" in e ? e.clientX : e.touches[0].clientX;\n this.cropY = \"clientY\" in e ? e.clientY : e.touches[0].clientY;\n this.cropOldW = this.cropW;\n this.cropOldH = this.cropH;\n this.cropChangeX = this.cropOffsertX;\n this.cropChangeY = this.cropOffsertY;\n if (this.fixed) {\n if (this.canChangeX && this.canChangeY) {\n this.canChangeY = 0;\n }\n }\n this.$emit(\"change-crop-size\", {\n width: this.cropW,\n height: this.cropH\n });\n },\n changeCropNow(e) {\n e.preventDefault();\n var nowX = \"clientX\" in e ? e.clientX : e.touches ? e.touches[0].clientX : 0;\n var nowY = \"clientY\" in e ? e.clientY : e.touches ? e.touches[0].clientY : 0;\n let wrapperW = this.w;\n let wrapperH = this.h;\n let minX = 0;\n let minY = 0;\n if (this.centerBox) {\n let axis = this.getImgAxis();\n let imgW = axis.x2;\n let imgH = axis.y2;\n minX = axis.x1 > 0 ? axis.x1 : 0;\n minY = axis.y1 > 0 ? axis.y1 : 0;\n if (wrapperW > imgW) {\n wrapperW = imgW;\n }\n if (wrapperH > imgH) {\n wrapperH = imgH;\n }\n }\n this.$nextTick(() => {\n var fw = nowX - this.cropX;\n var fh = nowY - this.cropY;\n if (this.canChangeX) {\n if (this.changeCropTypeX === 1) {\n if (this.cropOldW - fw > 0) {\n this.cropW = wrapperW - this.cropChangeX - fw <= wrapperW - minX ? this.cropOldW - fw : this.cropOldW + this.cropChangeX - minX;\n this.cropOffsertX = wrapperW - this.cropChangeX - fw <= wrapperW - minX ? this.cropChangeX + fw : minX;\n } else {\n this.cropW = Math.abs(fw) + this.cropChangeX <= wrapperW ? Math.abs(fw) - this.cropOldW : wrapperW - this.cropOldW - this.cropChangeX;\n this.cropOffsertX = this.cropChangeX + this.cropOldW;\n }\n } else if (this.changeCropTypeX === 2) {\n if (this.cropOldW + fw > 0) {\n this.cropW = this.cropOldW + fw + this.cropOffsertX <= wrapperW ? this.cropOldW + fw : wrapperW - this.cropOffsertX;\n this.cropOffsertX = this.cropChangeX;\n } else {\n this.cropW = wrapperW - this.cropChangeX + Math.abs(fw + this.cropOldW) <= wrapperW - minX ? Math.abs(fw + this.cropOldW) : this.cropChangeX - minX;\n this.cropOffsertX = wrapperW - this.cropChangeX + Math.abs(fw + this.cropOldW) <= wrapperW - minX ? this.cropChangeX - Math.abs(fw + this.cropOldW) : minX;\n }\n }\n }\n if (this.canChangeY) {\n if (this.changeCropTypeY === 1) {\n if (this.cropOldH - fh > 0) {\n this.cropH = wrapperH - this.cropChangeY - fh <= wrapperH - minY ? this.cropOldH - fh : this.cropOldH + this.cropChangeY - minY;\n this.cropOffsertY = wrapperH - this.cropChangeY - fh <= wrapperH - minY ? this.cropChangeY + fh : minY;\n } else {\n this.cropH = Math.abs(fh) + this.cropChangeY <= wrapperH ? Math.abs(fh) - this.cropOldH : wrapperH - this.cropOldH - this.cropChangeY;\n this.cropOffsertY = this.cropChangeY + this.cropOldH;\n }\n } else if (this.changeCropTypeY === 2) {\n if (this.cropOldH + fh > 0) {\n this.cropH = this.cropOldH + fh + this.cropOffsertY <= wrapperH ? this.cropOldH + fh : wrapperH - this.cropOffsertY;\n this.cropOffsertY = this.cropChangeY;\n } else {\n this.cropH = wrapperH - this.cropChangeY + Math.abs(fh + this.cropOldH) <= wrapperH - minY ? Math.abs(fh + this.cropOldH) : this.cropChangeY - minY;\n this.cropOffsertY = wrapperH - this.cropChangeY + Math.abs(fh + this.cropOldH) <= wrapperH - minY ? this.cropChangeY - Math.abs(fh + this.cropOldH) : minY;\n }\n }\n }\n if (this.canChangeX && this.fixed) {\n var fixedHeight = this.cropW / this.fixedNumber[0] * this.fixedNumber[1];\n if (fixedHeight + this.cropOffsertY > wrapperH) {\n this.cropH = wrapperH - this.cropOffsertY;\n this.cropW = this.cropH / this.fixedNumber[1] * this.fixedNumber[0];\n } else {\n this.cropH = fixedHeight;\n }\n }\n if (this.canChangeY && this.fixed) {\n var fixedWidth = this.cropH / this.fixedNumber[1] * this.fixedNumber[0];\n if (fixedWidth + this.cropOffsertX > wrapperW) {\n this.cropW = wrapperW - this.cropOffsertX;\n this.cropH = this.cropW / this.fixedNumber[0] * this.fixedNumber[1];\n } else {\n this.cropW = fixedWidth;\n }\n }\n });\n },\n checkCropLimitSize() {\n let { cropW, cropH, limitMinSize } = this;\n let limitMinNum = new Array();\n if (!Array.isArray[limitMinSize]) {\n limitMinNum = [limitMinSize, limitMinSize];\n } else {\n limitMinNum = limitMinSize;\n }\n cropW = parseFloat(limitMinNum[0]);\n cropH = parseFloat(limitMinNum[1]);\n return [cropW, cropH];\n },\n changeCropEnd(e) {\n window.removeEventListener(\"mousemove\", this.changeCropNow);\n window.removeEventListener(\"mouseup\", this.changeCropEnd);\n window.removeEventListener(\"touchmove\", this.changeCropNow);\n window.removeEventListener(\"touchend\", this.changeCropEnd);\n },\n endCrop() {\n if (this.cropW === 0 && this.cropH === 0) {\n this.cropping = false;\n }\n window.removeEventListener(\"mousemove\", this.createCrop);\n window.removeEventListener(\"mouseup\", this.endCrop);\n window.removeEventListener(\"touchmove\", this.createCrop);\n window.removeEventListener(\"touchend\", this.endCrop);\n },\n startCrop() {\n this.crop = true;\n },\n stopCrop() {\n this.crop = false;\n },\n clearCrop() {\n this.cropping = false;\n this.cropW = 0;\n this.cropH = 0;\n },\n cropMove(e) {\n e.preventDefault();\n if (!this.canMoveBox) {\n this.crop = false;\n this.startMove(e);\n return false;\n }\n if (e.touches && e.touches.length === 2) {\n this.crop = false;\n this.startMove(e);\n this.leaveCrop();\n return false;\n }\n window.addEventListener(\"mousemove\", this.moveCrop);\n window.addEventListener(\"mouseup\", this.leaveCrop);\n window.addEventListener(\"touchmove\", this.moveCrop);\n window.addEventListener(\"touchend\", this.leaveCrop);\n let x = \"clientX\" in e ? e.clientX : e.touches[0].clientX;\n let y = \"clientY\" in e ? e.clientY : e.touches[0].clientY;\n let newX, newY;\n newX = x - this.cropOffsertX;\n newY = y - this.cropOffsertY;\n this.cropX = newX;\n this.cropY = newY;\n this.$emit(\"cropMoving\", {\n moving: true,\n axis: this.getCropAxis()\n });\n this.$emit(\"crop-moving\", {\n moving: true,\n axis: this.getCropAxis()\n });\n },\n moveCrop(e, isMove) {\n let nowX = 0;\n let nowY = 0;\n if (e) {\n e.preventDefault();\n nowX = \"clientX\" in e ? e.clientX : e.touches[0].clientX;\n nowY = \"clientY\" in e ? e.clientY : e.touches[0].clientY;\n }\n this.$nextTick(() => {\n let cx, cy;\n let fw = nowX - this.cropX;\n let fh = nowY - this.cropY;\n if (isMove) {\n fw = this.cropOffsertX;\n fh = this.cropOffsertY;\n }\n if (fw <= 0) {\n cx = 0;\n } else if (fw + this.cropW > this.w) {\n cx = this.w - this.cropW;\n } else {\n cx = fw;\n }\n if (fh <= 0) {\n cy = 0;\n } else if (fh + this.cropH > this.h) {\n cy = this.h - this.cropH;\n } else {\n cy = fh;\n }\n if (this.centerBox) {\n let axis = this.getImgAxis();\n if (cx <= axis.x1) {\n cx = axis.x1;\n }\n if (cx + this.cropW > axis.x2) {\n cx = axis.x2 - this.cropW;\n }\n if (cy <= axis.y1) {\n cy = axis.y1;\n }\n if (cy + this.cropH > axis.y2) {\n cy = axis.y2 - this.cropH;\n }\n }\n this.cropOffsertX = cx;\n this.cropOffsertY = cy;\n this.$emit(\"cropMoving\", {\n moving: true,\n axis: this.getCropAxis()\n });\n this.$emit(\"crop-moving\", {\n moving: true,\n axis: this.getCropAxis()\n });\n });\n },\n getImgAxis(x, y, scale) {\n x = x || this.x;\n y = y || this.y;\n scale = scale || this.scale;\n let obj = {\n x1: 0,\n x2: 0,\n y1: 0,\n y2: 0\n };\n let imgW = this.trueWidth * scale;\n let imgH = this.trueHeight * scale;\n switch (this.rotate) {\n case 0:\n obj.x1 = x + this.trueWidth * (1 - scale) / 2;\n obj.x2 = obj.x1 + this.trueWidth * scale;\n obj.y1 = y + this.trueHeight * (1 - scale) / 2;\n obj.y2 = obj.y1 + this.trueHeight * scale;\n break;\n case 1:\n case -1:\n case 3:\n case -3:\n obj.x1 = x + this.trueWidth * (1 - scale) / 2 + (imgW - imgH) / 2;\n obj.x2 = obj.x1 + this.trueHeight * scale;\n obj.y1 = y + this.trueHeight * (1 - scale) / 2 + (imgH - imgW) / 2;\n obj.y2 = obj.y1 + this.trueWidth * scale;\n break;\n default:\n obj.x1 = x + this.trueWidth * (1 - scale) / 2;\n obj.x2 = obj.x1 + this.trueWidth * scale;\n obj.y1 = y + this.trueHeight * (1 - scale) / 2;\n obj.y2 = obj.y1 + this.trueHeight * scale;\n break;\n }\n return obj;\n },\n getCropAxis() {\n let obj = {\n x1: 0,\n x2: 0,\n y1: 0,\n y2: 0\n };\n obj.x1 = this.cropOffsertX;\n obj.x2 = obj.x1 + this.cropW;\n obj.y1 = this.cropOffsertY;\n obj.y2 = obj.y1 + this.cropH;\n return obj;\n },\n leaveCrop(e) {\n window.removeEventListener(\"mousemove\", this.moveCrop);\n window.removeEventListener(\"mouseup\", this.leaveCrop);\n window.removeEventListener(\"touchmove\", this.moveCrop);\n window.removeEventListener(\"touchend\", this.leaveCrop);\n this.$emit(\"cropMoving\", {\n moving: false,\n axis: this.getCropAxis()\n });\n this.$emit(\"crop-moving\", {\n moving: false,\n axis: this.getCropAxis()\n });\n },\n getCropChecked(cb) {\n let canvas = document.createElement(\"canvas\");\n let img = new Image();\n let rotate = this.rotate;\n let trueWidth = this.trueWidth;\n let trueHeight = this.trueHeight;\n let cropOffsertX = this.cropOffsertX;\n let cropOffsertY = this.cropOffsertY;\n img.onload = () => {\n if (this.cropW !== 0) {\n let ctx = canvas.getContext(\"2d\");\n let dpr = 1;\n if (this.high & !this.full) {\n dpr = window.devicePixelRatio;\n }\n if (this.enlarge !== 1 & !this.full) {\n dpr = Math.abs(Number(this.enlarge));\n }\n let width = this.cropW * dpr;\n let height = this.cropH * dpr;\n let imgW = trueWidth * this.scale * dpr;\n let imgH = trueHeight * this.scale * dpr;\n let dx = (this.x - cropOffsertX + this.trueWidth * (1 - this.scale) / 2) * dpr;\n let dy = (this.y - cropOffsertY + this.trueHeight * (1 - this.scale) / 2) * dpr;\n setCanvasSize(width, height);\n ctx.save();\n switch (rotate) {\n case 0:\n if (!this.full) {\n ctx.drawImage(img, dx, dy, imgW, imgH);\n } else {\n setCanvasSize(width / this.scale, height / this.scale);\n ctx.drawImage(img, dx / this.scale, dy / this.scale, imgW / this.scale, imgH / this.scale);\n }\n break;\n case 1:\n case -3:\n if (!this.full) {\n dx = dx + (imgW - imgH) / 2;\n dy = dy + (imgH - imgW) / 2;\n ctx.rotate(rotate * 90 * Math.PI / 180);\n ctx.drawImage(img, dy, -dx - imgH, imgW, imgH);\n } else {\n setCanvasSize(width / this.scale, height / this.scale);\n dx = dx / this.scale + (imgW / this.scale - imgH / this.scale) / 2;\n dy = dy / this.scale + (imgH / this.scale - imgW / this.scale) / 2;\n ctx.rotate(rotate * 90 * Math.PI / 180);\n ctx.drawImage(img, dy, -dx - imgH / this.scale, imgW / this.scale, imgH / this.scale);\n }\n break;\n case 2:\n case -2:\n if (!this.full) {\n ctx.rotate(rotate * 90 * Math.PI / 180);\n ctx.drawImage(img, -dx - imgW, -dy - imgH, imgW, imgH);\n } else {\n setCanvasSize(width / this.scale, height / this.scale);\n ctx.rotate(rotate * 90 * Math.PI / 180);\n dx = dx / this.scale;\n dy = dy / this.scale;\n ctx.drawImage(img, -dx - imgW / this.scale, -dy - imgH / this.scale, imgW / this.scale, imgH / this.scale);\n }\n break;\n case 3:\n case -1:\n if (!this.full) {\n dx = dx + (imgW - imgH) / 2;\n dy = dy + (imgH - imgW) / 2;\n ctx.rotate(rotate * 90 * Math.PI / 180);\n ctx.drawImage(img, -dy - imgW, dx, imgW, imgH);\n } else {\n setCanvasSize(width / this.scale, height / this.scale);\n dx = dx / this.scale + (imgW / this.scale - imgH / this.scale) / 2;\n dy = dy / this.scale + (imgH / this.scale - imgW / this.scale) / 2;\n ctx.rotate(rotate * 90 * Math.PI / 180);\n ctx.drawImage(img, -dy - imgW / this.scale, dx, imgW / this.scale, imgH / this.scale);\n }\n break;\n default:\n if (!this.full) {\n ctx.drawImage(img, dx, dy, imgW, imgH);\n } else {\n setCanvasSize(width / this.scale, height / this.scale);\n ctx.drawImage(img, dx / this.scale, dy / this.scale, imgW / this.scale, imgH / this.scale);\n }\n }\n ctx.restore();\n } else {\n let width = trueWidth * this.scale;\n let height = trueHeight * this.scale;\n let ctx = canvas.getContext(\"2d\");\n ctx.save();\n switch (rotate) {\n case 0:\n setCanvasSize(width, height);\n ctx.drawImage(img, 0, 0, width, height);\n break;\n case 1:\n case -3:\n setCanvasSize(height, width);\n ctx.rotate(rotate * 90 * Math.PI / 180);\n ctx.drawImage(img, 0, -height, width, height);\n break;\n case 2:\n case -2:\n setCanvasSize(width, height);\n ctx.rotate(rotate * 90 * Math.PI / 180);\n ctx.drawImage(img, -width, -height, width, height);\n break;\n case 3:\n case -1:\n setCanvasSize(height, width);\n ctx.rotate(rotate * 90 * Math.PI / 180);\n ctx.drawImage(img, -width, 0, width, height);\n break;\n default:\n setCanvasSize(width, height);\n ctx.drawImage(img, 0, 0, width, height);\n }\n ctx.restore();\n }\n cb(canvas);\n };\n var s = this.img.substr(0, 4);\n if (s !== \"data\") {\n img.crossOrigin = \"Anonymous\";\n }\n img.src = this.imgs;\n function setCanvasSize(width, height) {\n canvas.width = Math.round(width);\n canvas.height = Math.round(height);\n }\n },\n getCropData(cb) {\n this.getCropChecked((data) => {\n cb(data.toDataURL(\"image/\" + this.outputType, this.outputSize));\n });\n },\n getCropBlob(cb) {\n this.getCropChecked((data) => {\n data.toBlob((blob) => cb(blob), \"image/\" + this.outputType, this.outputSize);\n });\n },\n showPreview() {\n if (this.isCanShow) {\n this.isCanShow = false;\n setTimeout(() => {\n this.isCanShow = true;\n }, 16);\n } else {\n return false;\n }\n let w = this.cropW;\n let h = this.cropH;\n let scale = this.scale;\n var obj = {};\n obj.div = {\n width: `${w}px`,\n height: `${h}px`\n };\n let transformX = (this.x - this.cropOffsertX) / scale;\n let transformY = (this.y - this.cropOffsertY) / scale;\n let transformZ = 0;\n obj.w = w;\n obj.h = h;\n obj.url = this.imgs;\n obj.img = {\n width: `${this.trueWidth}px`,\n height: `${this.trueHeight}px`,\n transform: `scale(${scale})translate3d(${transformX}px, ${transformY}px, ${transformZ}px)rotateZ(${this.rotate * 90}deg)`\n };\n obj.html = `\n \n
\n

\n
\n
`;\n this.$emit(\"realTime\", obj);\n this.$emit(\"real-time\", obj);\n },\n reload() {\n let img = new Image();\n img.onload = () => {\n this.w = parseFloat(window.getComputedStyle(this.$refs.cropper).width);\n this.h = parseFloat(window.getComputedStyle(this.$refs.cropper).height);\n this.trueWidth = img.width;\n this.trueHeight = img.height;\n if (!this.original) {\n this.scale = this.checkedMode();\n } else {\n this.scale = 1;\n }\n this.$nextTick(() => {\n this.x = -(this.trueWidth - this.trueWidth * this.scale) / 2 + (this.w - this.trueWidth * this.scale) / 2;\n this.y = -(this.trueHeight - this.trueHeight * this.scale) / 2 + (this.h - this.trueHeight * this.scale) / 2;\n this.loading = false;\n if (this.autoCrop) {\n this.goAutoCrop();\n }\n this.$emit(\"img-load\", \"success\");\n this.$emit(\"imgLoad\", \"success\");\n setTimeout(() => {\n this.showPreview();\n }, 20);\n });\n };\n img.onerror = () => {\n this.$emit(\"imgLoad\", \"error\");\n this.$emit(\"img-load\", \"error\");\n };\n img.src = this.imgs;\n },\n checkedMode() {\n let scale = 1;\n let imgW = this.trueWidth;\n let imgH = this.trueHeight;\n const arr = this.mode.split(\" \");\n switch (arr[0]) {\n case \"contain\":\n if (this.trueWidth > this.w) {\n scale = this.w / this.trueWidth;\n }\n if (this.trueHeight * scale > this.h) {\n scale = this.h / this.trueHeight;\n }\n break;\n case \"cover\":\n imgW = this.w;\n scale = imgW / this.trueWidth;\n imgH = imgH * scale;\n if (imgH < this.h) {\n imgH = this.h;\n scale = imgH / this.trueHeight;\n }\n break;\n default:\n try {\n let str = arr[0];\n if (str.search(\"px\") !== -1) {\n str = str.replace(\"px\", \"\");\n imgW = parseFloat(str);\n const scaleX = imgW / this.trueWidth;\n let scaleY = 1;\n let strH = arr[1];\n if (strH.search(\"px\") !== -1) {\n strH = strH.replace(\"px\", \"\");\n imgH = parseFloat(strH);\n scaleY = imgH / this.trueHeight;\n }\n scale = Math.min(scaleX, scaleY);\n }\n if (str.search(\"%\") !== -1) {\n str = str.replace(\"%\", \"\");\n imgW = parseFloat(str) / 100 * this.w;\n scale = imgW / this.trueWidth;\n }\n if (arr.length === 2 && str === \"auto\") {\n let str2 = arr[1];\n if (str2.search(\"px\") !== -1) {\n str2 = str2.replace(\"px\", \"\");\n imgH = parseFloat(str2);\n scale = imgH / this.trueHeight;\n }\n if (str2.search(\"%\") !== -1) {\n str2 = str2.replace(\"%\", \"\");\n imgH = parseFloat(str2) / 100 * this.h;\n scale = imgH / this.trueHeight;\n }\n }\n } catch (error) {\n scale = 1;\n }\n }\n return scale;\n },\n goAutoCrop(cw, ch) {\n if (this.imgs === \"\" || this.imgs === null)\n return;\n this.clearCrop();\n this.cropping = true;\n let maxWidth = this.w;\n let maxHeight = this.h;\n if (this.centerBox) {\n const switchWH = Math.abs(this.rotate) % 2 > 0;\n let imgW = (switchWH ? this.trueHeight : this.trueWidth) * this.scale;\n let imgH = (switchWH ? this.trueWidth : this.trueHeight) * this.scale;\n maxWidth = imgW < maxWidth ? imgW : maxWidth;\n maxHeight = imgH < maxHeight ? imgH : maxHeight;\n }\n var w = cw ? cw : parseFloat(this.autoCropWidth);\n var h = ch ? ch : parseFloat(this.autoCropHeight);\n if (w === 0 || h === 0) {\n w = maxWidth * 0.8;\n h = maxHeight * 0.8;\n }\n w = w > maxWidth ? maxWidth : w;\n h = h > maxHeight ? maxHeight : h;\n if (this.fixed) {\n h = w / this.fixedNumber[0] * this.fixedNumber[1];\n }\n if (h > this.h) {\n h = this.h;\n w = h / this.fixedNumber[1] * this.fixedNumber[0];\n }\n this.changeCrop(w, h);\n },\n changeCrop(w, h) {\n if (this.centerBox) {\n let axis = this.getImgAxis();\n if (w > axis.x2 - axis.x1) {\n w = axis.x2 - axis.x1;\n h = w / this.fixedNumber[0] * this.fixedNumber[1];\n }\n if (h > axis.y2 - axis.y1) {\n h = axis.y2 - axis.y1;\n w = h / this.fixedNumber[1] * this.fixedNumber[0];\n }\n }\n this.cropW = w;\n this.cropH = h;\n this.checkCropLimitSize();\n this.$nextTick(() => {\n this.cropOffsertX = (this.w - this.cropW) / 2;\n this.cropOffsertY = (this.h - this.cropH) / 2;\n if (this.centerBox) {\n this.moveCrop(null, true);\n }\n });\n },\n refresh() {\n this.img;\n this.imgs = \"\";\n this.scale = 1;\n this.crop = false;\n this.rotate = 0;\n this.w = 0;\n this.h = 0;\n this.trueWidth = 0;\n this.trueHeight = 0;\n this.clearCrop();\n this.$nextTick(() => {\n this.checkedImg();\n });\n },\n rotateLeft() {\n this.rotate = this.rotate <= -3 ? 0 : this.rotate - 1;\n },\n rotateRight() {\n this.rotate = this.rotate >= 3 ? 0 : this.rotate + 1;\n },\n rotateClear() {\n this.rotate = 0;\n },\n checkoutImgAxis(x, y, scale) {\n x = x || this.x;\n y = y || this.y;\n scale = scale || this.scale;\n let canGo = true;\n if (this.centerBox) {\n let axis = this.getImgAxis(x, y, scale);\n let cropAxis = this.getCropAxis();\n if (axis.x1 >= cropAxis.x1) {\n canGo = false;\n }\n if (axis.x2 <= cropAxis.x2) {\n canGo = false;\n }\n if (axis.y1 >= cropAxis.y1) {\n canGo = false;\n }\n if (axis.y2 <= cropAxis.y2) {\n canGo = false;\n }\n }\n return canGo;\n }\n },\n mounted() {\n this.support = \"onwheel\" in document.createElement(\"div\") ? \"wheel\" : document.onmousewheel !== void 0 ? \"mousewheel\" : \"DOMMouseScroll\";\n let that = this;\n var u = navigator.userAgent;\n this.isIOS = !!u.match(/\\(i[^;]+;( U;)? CPU.+Mac OS X/);\n if (!HTMLCanvasElement.prototype.toBlob) {\n Object.defineProperty(HTMLCanvasElement.prototype, \"toBlob\", {\n value: function(callback, type, quality) {\n var binStr = atob(this.toDataURL(type, quality).split(\",\")[1]), len = binStr.length, arr = new Uint8Array(len);\n for (var i = 0; i < len; i++) {\n arr[i] = binStr.charCodeAt(i);\n }\n callback(new Blob([arr], { type: that.type || \"image/png\" }));\n }\n });\n }\n this.showPreview();\n this.checkedImg();\n },\n destroyed() {\n window.removeEventListener(\"mousemove\", this.moveCrop);\n window.removeEventListener(\"mouseup\", this.leaveCrop);\n window.removeEventListener(\"touchmove\", this.moveCrop);\n window.removeEventListener(\"touchend\", this.leaveCrop);\n this.cancelScale();\n }\n});\nconst _hoisted_1 = {\n key: 0,\n class: \"cropper-box\"\n};\nconst _hoisted_2 = [\"src\"];\nconst _hoisted_3 = { class: \"cropper-view-box\" };\nconst _hoisted_4 = [\"src\"];\nconst _hoisted_5 = { key: 1 };\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"div\", {\n class: \"vue-cropper\",\n ref: \"cropper\",\n onMouseover: _cache[28] || (_cache[28] = (...args) => _ctx.scaleImg && _ctx.scaleImg(...args)),\n onMouseout: _cache[29] || (_cache[29] = (...args) => _ctx.cancelScale && _ctx.cancelScale(...args))\n }, [\n _ctx.imgs ? (openBlock(), createElementBlock(\"div\", _hoisted_1, [\n withDirectives(createElementVNode(\"div\", {\n class: \"cropper-box-canvas\",\n style: normalizeStyle({\n \"width\": _ctx.trueWidth + \"px\",\n \"height\": _ctx.trueHeight + \"px\",\n \"transform\": \"scale(\" + _ctx.scale + \",\" + _ctx.scale + \") translate3d(\" + _ctx.x / _ctx.scale + \"px,\" + _ctx.y / _ctx.scale + \"px,0)rotateZ(\" + _ctx.rotate * 90 + \"deg)\"\n })\n }, [\n createElementVNode(\"img\", {\n src: _ctx.imgs,\n alt: \"cropper-img\",\n ref: \"cropperImg\"\n }, null, 8, _hoisted_2)\n ], 4), [\n [vShow, !_ctx.loading]\n ])\n ])) : createCommentVNode(\"\", true),\n createElementVNode(\"div\", {\n class: normalizeClass([\"cropper-drag-box\", { \"cropper-move\": _ctx.move && !_ctx.crop, \"cropper-crop\": _ctx.crop, \"cropper-modal\": _ctx.cropping }]),\n onMousedown: _cache[0] || (_cache[0] = (...args) => _ctx.startMove && _ctx.startMove(...args)),\n onTouchstart: _cache[1] || (_cache[1] = (...args) => _ctx.startMove && _ctx.startMove(...args))\n }, null, 34),\n withDirectives(createElementVNode(\"div\", {\n class: \"cropper-crop-box\",\n style: normalizeStyle({\n \"width\": _ctx.cropW + \"px\",\n \"height\": _ctx.cropH + \"px\",\n \"transform\": \"translate3d(\" + _ctx.cropOffsertX + \"px,\" + _ctx.cropOffsertY + \"px,0)\"\n })\n }, [\n createElementVNode(\"span\", _hoisted_3, [\n createElementVNode(\"img\", {\n style: normalizeStyle({\n \"width\": _ctx.trueWidth + \"px\",\n \"height\": _ctx.trueHeight + \"px\",\n \"transform\": \"scale(\" + _ctx.scale + \",\" + _ctx.scale + \") translate3d(\" + (_ctx.x - _ctx.cropOffsertX) / _ctx.scale + \"px,\" + (_ctx.y - _ctx.cropOffsertY) / _ctx.scale + \"px,0)rotateZ(\" + _ctx.rotate * 90 + \"deg)\"\n }),\n src: _ctx.imgs,\n alt: \"cropper-img\"\n }, null, 12, _hoisted_4)\n ]),\n createElementVNode(\"span\", {\n class: \"cropper-face cropper-move\",\n onMousedown: _cache[2] || (_cache[2] = (...args) => _ctx.cropMove && _ctx.cropMove(...args)),\n onTouchstart: _cache[3] || (_cache[3] = (...args) => _ctx.cropMove && _ctx.cropMove(...args))\n }, null, 32),\n _ctx.info ? (openBlock(), createElementBlock(\"span\", {\n key: 0,\n class: \"crop-info\",\n style: normalizeStyle({ \"top\": _ctx.cropInfo.top })\n }, toDisplayString(_ctx.cropInfo.width) + \" \\xD7 \" + toDisplayString(_ctx.cropInfo.height), 5)) : createCommentVNode(\"\", true),\n !_ctx.fixedBox ? (openBlock(), createElementBlock(\"span\", _hoisted_5, [\n createElementVNode(\"span\", {\n class: \"crop-line line-w\",\n onMousedown: _cache[4] || (_cache[4] = ($event) => _ctx.changeCropSize($event, false, true, 0, 1)),\n onTouchstart: _cache[5] || (_cache[5] = ($event) => _ctx.changeCropSize($event, false, true, 0, 1))\n }, null, 32),\n createElementVNode(\"span\", {\n class: \"crop-line line-a\",\n onMousedown: _cache[6] || (_cache[6] = ($event) => _ctx.changeCropSize($event, true, false, 1, 0)),\n onTouchstart: _cache[7] || (_cache[7] = ($event) => _ctx.changeCropSize($event, true, false, 1, 0))\n }, null, 32),\n createElementVNode(\"span\", {\n class: \"crop-line line-s\",\n onMousedown: _cache[8] || (_cache[8] = ($event) => _ctx.changeCropSize($event, false, true, 0, 2)),\n onTouchstart: _cache[9] || (_cache[9] = ($event) => _ctx.changeCropSize($event, false, true, 0, 2))\n }, null, 32),\n createElementVNode(\"span\", {\n class: \"crop-line line-d\",\n onMousedown: _cache[10] || (_cache[10] = ($event) => _ctx.changeCropSize($event, true, false, 2, 0)),\n onTouchstart: _cache[11] || (_cache[11] = ($event) => _ctx.changeCropSize($event, true, false, 2, 0))\n }, null, 32),\n createElementVNode(\"span\", {\n class: \"crop-point point1\",\n onMousedown: _cache[12] || (_cache[12] = ($event) => _ctx.changeCropSize($event, true, true, 1, 1)),\n onTouchstart: _cache[13] || (_cache[13] = ($event) => _ctx.changeCropSize($event, true, true, 1, 1))\n }, null, 32),\n createElementVNode(\"span\", {\n class: \"crop-point point2\",\n onMousedown: _cache[14] || (_cache[14] = ($event) => _ctx.changeCropSize($event, false, true, 0, 1)),\n onTouchstart: _cache[15] || (_cache[15] = ($event) => _ctx.changeCropSize($event, false, true, 0, 1))\n }, null, 32),\n createElementVNode(\"span\", {\n class: \"crop-point point3\",\n onMousedown: _cache[16] || (_cache[16] = ($event) => _ctx.changeCropSize($event, true, true, 2, 1)),\n onTouchstart: _cache[17] || (_cache[17] = ($event) => _ctx.changeCropSize($event, true, true, 2, 1))\n }, null, 32),\n createElementVNode(\"span\", {\n class: \"crop-point point4\",\n onMousedown: _cache[18] || (_cache[18] = ($event) => _ctx.changeCropSize($event, true, false, 1, 0)),\n onTouchstart: _cache[19] || (_cache[19] = ($event) => _ctx.changeCropSize($event, true, false, 1, 0))\n }, null, 32),\n createElementVNode(\"span\", {\n class: \"crop-point point5\",\n onMousedown: _cache[20] || (_cache[20] = ($event) => _ctx.changeCropSize($event, true, false, 2, 0)),\n onTouchstart: _cache[21] || (_cache[21] = ($event) => _ctx.changeCropSize($event, true, false, 2, 0))\n }, null, 32),\n createElementVNode(\"span\", {\n class: \"crop-point point6\",\n onMousedown: _cache[22] || (_cache[22] = ($event) => _ctx.changeCropSize($event, true, true, 1, 2)),\n onTouchstart: _cache[23] || (_cache[23] = ($event) => _ctx.changeCropSize($event, true, true, 1, 2))\n }, null, 32),\n createElementVNode(\"span\", {\n class: \"crop-point point7\",\n onMousedown: _cache[24] || (_cache[24] = ($event) => _ctx.changeCropSize($event, false, true, 0, 2)),\n onTouchstart: _cache[25] || (_cache[25] = ($event) => _ctx.changeCropSize($event, false, true, 0, 2))\n }, null, 32),\n createElementVNode(\"span\", {\n class: \"crop-point point8\",\n onMousedown: _cache[26] || (_cache[26] = ($event) => _ctx.changeCropSize($event, true, true, 2, 2)),\n onTouchstart: _cache[27] || (_cache[27] = ($event) => _ctx.changeCropSize($event, true, true, 2, 2))\n }, null, 32)\n ])) : createCommentVNode(\"\", true)\n ], 4), [\n [vShow, _ctx.cropping]\n ])\n ], 544);\n}\nvar VueCropper = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render], [\"__scopeId\", \"data-v-be5e5ddc\"]]);\nconst install = function(Vue) {\n Vue.component(\"VueCropper\", VueCropper);\n};\nif (typeof window !== \"undefined\" && window.Vue) {\n window.Vue.createApp({}).component(\"VueCropper\", VueCropper);\n}\nconst globalCropper = {\n version: \"1.0.3\",\n install,\n VueCropper\n};\nexport { VueCropper, globalCropper as default, globalCropper };\n","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, createVNode as _createVNode, createElementVNode as _createElementVNode, createTextVNode as _createTextVNode, resolveComponent as _resolveComponent, withModifiers as _withModifiers, withCtx as _withCtx, normalizeStyle as _normalizeStyle, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-901cf5cc\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"m-cropper\" }\nconst _hoisted_2 = { class: \"left\" }\nconst _hoisted_3 = { class: \"cropper-content\" }\nconst _hoisted_4 = /*#__PURE__*/_createTextVNode(\"放大\")\nconst _hoisted_5 = /*#__PURE__*/_createTextVNode(\"缩小\")\nconst _hoisted_6 = /*#__PURE__*/_createTextVNode(\"向左旋转\")\nconst _hoisted_7 = /*#__PURE__*/_createTextVNode(\"向右旋转\")\nconst _hoisted_8 = /*#__PURE__*/_createTextVNode(\"清除\")\nconst _hoisted_9 = /*#__PURE__*/_createTextVNode(\"获取结果\")\nconst _hoisted_10 = /*#__PURE__*/_createTextVNode(\"下载图片\")\nconst _hoisted_11 = /*#__PURE__*/_createTextVNode(\"选择上传图片\")\nconst _hoisted_12 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"h4\", { style: {\"margin-top\":\"10px\"} }, \"实时预览\", -1))\nconst _hoisted_13 = [\"src\"]\nconst _hoisted_14 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"h4\", { style: {\"margin-top\":\"10px\"} }, \"获取结果\", -1))\nconst _hoisted_15 = { style: {\"background\":\"#ccc\",\"width\":\"100px\",\"height\":\"100px\"} }\nconst _hoisted_16 = [\"src\"]\n\nimport 'vue-cropper/dist/index.css'\r\n import { VueCropper } from \"vue-cropper\";\r\n import imgSrc from '@/assets/image/cro.jpg'\r\n import {reactive, ref} from 'vue'\r\n import { ElMessage, ElMessageBox } from 'element-plus'\r\n import type { UploadProps, UploadUserFile } from 'element-plus'\r\n \nexport default /*#__PURE__*/_defineComponent({\n setup(__props) {\n\r\n // http://github.xyxiao.cn/vue-cropper/example/\r\n // https://codepen.io/xyxiao001/pen/yLooYKg\r\n const cropper = ref()\r\n const option = reactive({\r\n img: imgSrc,\r\n size: 1,\r\n full: false, // 是否输出原图比例的截图\r\n outputType: 'png',\r\n canMove: true,\r\n fixed: true, // 是否开启截图框宽高固定比例\r\n info: true, // 裁剪框的大小信息\r\n outputSize: 0.8, // 裁剪生成图片的质量\r\n fixedBox: false, // 固定截图框大小 不允许改变\r\n original: false, // 上传图片按照原始比例渲染\r\n canMoveBox: true, // 截图框能否拖动\r\n autoCrop: true, // 是否默认生成截图框\r\n autoCropWidth: 300, // 默认生成截图框宽度\r\n autoCropHeight: 300, // 默认生成截图框高度\r\n // 只有自动截图开启 宽度高度才生效\r\n centerBox: false, // 截图框是否被限制在图片里面\r\n high: true,\r\n max: 99999,\r\n previews:{\r\n url:''\r\n },\r\n cropImg:''\r\n\r\n })\r\n\r\n const realTime = (data)=>{\r\n option.previews = data\r\n }\r\n\r\n const cropmove = (e)=>{\r\n // console.log('eeeeee',e)\r\n }\r\n\r\n const zoom = (percent)=> {\r\n cropper.value.changeScale(percent);\r\n }\r\n const rotateLeft = ()=> {\r\n cropper.value.rotateLeft();\r\n }\r\n const rotateRight = ()=> {\r\n cropper.value.rotateRight();\r\n }\r\n\r\n const move = (offsetX, offsetY)=>{\r\n cropper.value.move(offsetX, offsetY);\r\n }\r\n\r\n const down = (type)=>{\r\n // event.preventDefault()\r\n var aLink = document.createElement('a');\r\n aLink.download = 'demo';\r\n // 输出\r\n if (type === 'blob') {\r\n this.$refs.cropper.getCropBlob((data) => {\r\n // this.downImg = window.URL.createObjectURL(data);\r\n aLink.href = window.URL.createObjectURL(data);\r\n aLink.click();\r\n });\r\n } else {\r\n cropper.value.getCropData((data) => {\r\n // this.downImg = data;\r\n aLink.href = data;\r\n aLink.click();\r\n });\r\n }\r\n }\r\n\r\n const rotate = (deg)=> {\r\n cropper.value.rotate(deg);\r\n }\r\n\r\n const cropImage=()=>{\r\n cropper.value.getCropData(data=>{\r\n option.cropImg = data\r\n })\r\n }\r\n\r\n const reset = ()=> {\r\n option.img = ''\r\n option.cropImg=''\r\n }\r\n\r\n const beforeUpload = (file, fileList)=>{\r\n return new Promise((resolve, reject) => {\r\n var reader = new FileReader()\r\n // let res = !/\\.(gif|jpg|jpeg|png|bmp|GIF|JPG|PNG)$/\r\n let reg = (/\\.jpg$|\\.jpeg$|\\.gif$|\\.png$/i)\r\n reader.readAsDataURL(file)\r\n let name = file.name\r\n if(reg.test(name)){\r\n reader.onload = (e:FileReader)=>{\r\n let data;\r\n if (typeof e.target.result === 'object') {\r\n // 把Array Buffer转化为blob 如果是base64不需要\r\n data = window.URL.createObjectURL(new Blob([e.target.result]));\r\n } else {\r\n data = e.target.result;\r\n }\r\n resolve(e.target.result)\r\n option.imgSrc = data\r\n option.img = data\r\n }\r\n }else{\r\n ElMessage.error('请上传图片')\r\n reject()\r\n }\r\n })\r\n }\r\n\nreturn (_ctx: any,_cache: any) => {\n const _component_el_button = _resolveComponent(\"el-button\")!\n const _component_el_upload = _resolveComponent(\"el-upload\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, [\n _createVNode(_unref(VueCropper), {\n ref_key: \"cropper\",\n ref: cropper,\n img: _unref(option).img,\n \"output-size\": _unref(option).size,\n \"output-type\": _unref(option).outputType,\n info: true,\n full: _unref(option).full,\n fixed: _unref(option).fixed,\n \"fixed-number\": _unref(option).fixedNumber,\n \"can-move\": _unref(option).canMove,\n \"can-move-box\": _unref(option).canMoveBox,\n autoCropWidth: _unref(option).autoCropWidth,\n autoCropHeight: _unref(option).autoCropHeight,\n \"fixed-box\": _unref(option).fixedBox,\n \"auto-crop\": _unref(option).autoCrop,\n \"auto-crop-height\": _unref(option).autoCropHeight,\n \"center-box\": _unref(option).centerBox,\n onRealTime: realTime\n }, null, 8, [\"img\", \"output-size\", \"output-type\", \"full\", \"fixed\", \"fixed-number\", \"can-move\", \"can-move-box\", \"autoCropWidth\", \"autoCropHeight\", \"fixed-box\", \"auto-crop\", \"auto-crop-height\", \"center-box\"])\n ]),\n _createVNode(_component_el_button, {\n type: \"primary\",\n onClick: _cache[0] || (_cache[0] = _withModifiers(($event: any) => (zoom(1)), [\"prevent\"]))\n }, {\n default: _withCtx(() => [\n _hoisted_4\n ]),\n _: 1\n }),\n _createVNode(_component_el_button, {\n type: \"primary\",\n onClick: _cache[1] || (_cache[1] = _withModifiers(($event: any) => (zoom(-1)), [\"prevent\"]))\n }, {\n default: _withCtx(() => [\n _hoisted_5\n ]),\n _: 1\n }),\n _createVNode(_component_el_button, {\n type: \"primary\",\n onClick: _withModifiers(rotateLeft, [\"prevent\"])\n }, {\n default: _withCtx(() => [\n _hoisted_6\n ]),\n _: 1\n }, 8, [\"onClick\"]),\n _createVNode(_component_el_button, {\n type: \"primary\",\n onClick: _withModifiers(rotateRight, [\"prevent\"])\n }, {\n default: _withCtx(() => [\n _hoisted_7\n ]),\n _: 1\n }, 8, [\"onClick\"]),\n _createVNode(_component_el_button, {\n type: \"primary\",\n onClick: _withModifiers(reset, [\"prevent\"])\n }, {\n default: _withCtx(() => [\n _hoisted_8\n ]),\n _: 1\n }, 8, [\"onClick\"]),\n _createVNode(_component_el_button, {\n type: \"primary\",\n onClick: _withModifiers(cropImage, [\"prevent\"])\n }, {\n default: _withCtx(() => [\n _hoisted_9\n ]),\n _: 1\n }, 8, [\"onClick\"]),\n _createVNode(_component_el_button, {\n type: \"primary\",\n onClick: _cache[2] || (_cache[2] = _withModifiers(($event: any) => (down('base64')), [\"prevent\"]))\n }, {\n default: _withCtx(() => [\n _hoisted_10\n ]),\n _: 1\n }),\n _createVNode(_component_el_upload, {\n class: \"upload-demo\",\n \"show-file-list\": false,\n action: \"\",\n \"before-upload\": beforeUpload\n }, {\n default: _withCtx(() => [\n _createVNode(_component_el_button, { type: \"primary\" }, {\n default: _withCtx(() => [\n _hoisted_11\n ]),\n _: 1\n })\n ]),\n _: 1\n })\n ]),\n _createElementVNode(\"div\", null, [\n _hoisted_12,\n _createElementVNode(\"div\", {\n class: \"show-preview\",\n style: _normalizeStyle({'width': _unref(option).previews.w + 'px', 'height': _unref(option).previews.h + 'px', 'overflow': 'hidden', 'margin': '5px'})\n }, [\n _createElementVNode(\"div\", {\n style: _normalizeStyle(_unref(option).previews.div)\n }, [\n _createElementVNode(\"img\", {\n src: _unref(option).previews.url,\n style: _normalizeStyle(_unref(option).previews.img)\n }, null, 12, _hoisted_13)\n ], 4)\n ], 4),\n _hoisted_14,\n _createElementVNode(\"div\", _hoisted_15, [\n (_unref(option).cropImg)\n ? (_openBlock(), _createElementBlock(\"img\", {\n key: 0,\n src: _unref(option).cropImg,\n style: {\"width\":\"100%\",\"height\":\"100%\"}\n }, null, 8, _hoisted_16))\n : _createCommentVNode(\"\", true)\n ])\n ])\n ]))\n}\n}\n\n})","import script from \"./index.vue?vue&type=script&lang=ts&setup=true\"\nexport * from \"./index.vue?vue&type=script&lang=ts&setup=true\"\n\nimport \"./index.vue?vue&type=style&index=0&id=901cf5cc&lang=scss&scoped=true\"\n\nimport exportComponent from \"F:\\\\2022\\\\cloude\\\\vue-admin-plus\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-901cf5cc\"]])\n\nexport default __exports__","'use strict';\n// TODO: in core-js@4, move /modules/ dependencies to public entries for better optimization by tools like `preset-env`\nrequire('../modules/es.string.iterator');\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar USE_NATIVE_URL = require('../internals/native-url');\nvar global = require('../internals/global');\nvar bind = require('../internals/function-bind-context');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar defineProperties = require('../internals/object-define-properties').f;\nvar redefine = require('../internals/redefine');\nvar anInstance = require('../internals/an-instance');\nvar hasOwn = require('../internals/has-own-property');\nvar assign = require('../internals/object-assign');\nvar arrayFrom = require('../internals/array-from');\nvar arraySlice = require('../internals/array-slice-simple');\nvar codeAt = require('../internals/string-multibyte').codeAt;\nvar toASCII = require('../internals/string-punycode-to-ascii');\nvar $toString = require('../internals/to-string');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\nvar URLSearchParamsModule = require('../modules/web.url-search-params');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar setInternalState = InternalStateModule.set;\nvar getInternalURLState = InternalStateModule.getterFor('URL');\nvar URLSearchParams = URLSearchParamsModule.URLSearchParams;\nvar getInternalSearchParamsState = URLSearchParamsModule.getState;\n\nvar NativeURL = global.URL;\nvar TypeError = global.TypeError;\nvar parseInt = global.parseInt;\nvar floor = Math.floor;\nvar pow = Math.pow;\nvar charAt = uncurryThis(''.charAt);\nvar exec = uncurryThis(/./.exec);\nvar join = uncurryThis([].join);\nvar numberToString = uncurryThis(1.0.toString);\nvar pop = uncurryThis([].pop);\nvar push = uncurryThis([].push);\nvar replace = uncurryThis(''.replace);\nvar shift = uncurryThis([].shift);\nvar split = uncurryThis(''.split);\nvar stringSlice = uncurryThis(''.slice);\nvar toLowerCase = uncurryThis(''.toLowerCase);\nvar unshift = uncurryThis([].unshift);\n\nvar INVALID_AUTHORITY = 'Invalid authority';\nvar INVALID_SCHEME = 'Invalid scheme';\nvar INVALID_HOST = 'Invalid host';\nvar INVALID_PORT = 'Invalid port';\n\nvar ALPHA = /[a-z]/i;\n// eslint-disable-next-line regexp/no-obscure-range -- safe\nvar ALPHANUMERIC = /[\\d+-.a-z]/i;\nvar DIGIT = /\\d/;\nvar HEX_START = /^0x/i;\nvar OCT = /^[0-7]+$/;\nvar DEC = /^\\d+$/;\nvar HEX = /^[\\da-f]+$/i;\n/* eslint-disable regexp/no-control-character -- safe */\nvar FORBIDDEN_HOST_CODE_POINT = /[\\0\\t\\n\\r #%/:<>?@[\\\\\\]^|]/;\nvar FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT = /[\\0\\t\\n\\r #/:<>?@[\\\\\\]^|]/;\nvar LEADING_AND_TRAILING_C0_CONTROL_OR_SPACE = /^[\\u0000-\\u0020]+|[\\u0000-\\u0020]+$/g;\nvar TAB_AND_NEW_LINE = /[\\t\\n\\r]/g;\n/* eslint-enable regexp/no-control-character -- safe */\nvar EOF;\n\n// https://url.spec.whatwg.org/#ipv4-number-parser\nvar parseIPv4 = function (input) {\n var parts = split(input, '.');\n var partsLength, numbers, index, part, radix, number, ipv4;\n if (parts.length && parts[parts.length - 1] == '') {\n parts.length--;\n }\n partsLength = parts.length;\n if (partsLength > 4) return input;\n numbers = [];\n for (index = 0; index < partsLength; index++) {\n part = parts[index];\n if (part == '') return input;\n radix = 10;\n if (part.length > 1 && charAt(part, 0) == '0') {\n radix = exec(HEX_START, part) ? 16 : 8;\n part = stringSlice(part, radix == 8 ? 1 : 2);\n }\n if (part === '') {\n number = 0;\n } else {\n if (!exec(radix == 10 ? DEC : radix == 8 ? OCT : HEX, part)) return input;\n number = parseInt(part, radix);\n }\n push(numbers, number);\n }\n for (index = 0; index < partsLength; index++) {\n number = numbers[index];\n if (index == partsLength - 1) {\n if (number >= pow(256, 5 - partsLength)) return null;\n } else if (number > 255) return null;\n }\n ipv4 = pop(numbers);\n for (index = 0; index < numbers.length; index++) {\n ipv4 += numbers[index] * pow(256, 3 - index);\n }\n return ipv4;\n};\n\n// https://url.spec.whatwg.org/#concept-ipv6-parser\n// eslint-disable-next-line max-statements -- TODO\nvar parseIPv6 = function (input) {\n var address = [0, 0, 0, 0, 0, 0, 0, 0];\n var pieceIndex = 0;\n var compress = null;\n var pointer = 0;\n var value, length, numbersSeen, ipv4Piece, number, swaps, swap;\n\n var chr = function () {\n return charAt(input, pointer);\n };\n\n if (chr() == ':') {\n if (charAt(input, 1) != ':') return;\n pointer += 2;\n pieceIndex++;\n compress = pieceIndex;\n }\n while (chr()) {\n if (pieceIndex == 8) return;\n if (chr() == ':') {\n if (compress !== null) return;\n pointer++;\n pieceIndex++;\n compress = pieceIndex;\n continue;\n }\n value = length = 0;\n while (length < 4 && exec(HEX, chr())) {\n value = value * 16 + parseInt(chr(), 16);\n pointer++;\n length++;\n }\n if (chr() == '.') {\n if (length == 0) return;\n pointer -= length;\n if (pieceIndex > 6) return;\n numbersSeen = 0;\n while (chr()) {\n ipv4Piece = null;\n if (numbersSeen > 0) {\n if (chr() == '.' && numbersSeen < 4) pointer++;\n else return;\n }\n if (!exec(DIGIT, chr())) return;\n while (exec(DIGIT, chr())) {\n number = parseInt(chr(), 10);\n if (ipv4Piece === null) ipv4Piece = number;\n else if (ipv4Piece == 0) return;\n else ipv4Piece = ipv4Piece * 10 + number;\n if (ipv4Piece > 255) return;\n pointer++;\n }\n address[pieceIndex] = address[pieceIndex] * 256 + ipv4Piece;\n numbersSeen++;\n if (numbersSeen == 2 || numbersSeen == 4) pieceIndex++;\n }\n if (numbersSeen != 4) return;\n break;\n } else if (chr() == ':') {\n pointer++;\n if (!chr()) return;\n } else if (chr()) return;\n address[pieceIndex++] = value;\n }\n if (compress !== null) {\n swaps = pieceIndex - compress;\n pieceIndex = 7;\n while (pieceIndex != 0 && swaps > 0) {\n swap = address[pieceIndex];\n address[pieceIndex--] = address[compress + swaps - 1];\n address[compress + --swaps] = swap;\n }\n } else if (pieceIndex != 8) return;\n return address;\n};\n\nvar findLongestZeroSequence = function (ipv6) {\n var maxIndex = null;\n var maxLength = 1;\n var currStart = null;\n var currLength = 0;\n var index = 0;\n for (; index < 8; index++) {\n if (ipv6[index] !== 0) {\n if (currLength > maxLength) {\n maxIndex = currStart;\n maxLength = currLength;\n }\n currStart = null;\n currLength = 0;\n } else {\n if (currStart === null) currStart = index;\n ++currLength;\n }\n }\n if (currLength > maxLength) {\n maxIndex = currStart;\n maxLength = currLength;\n }\n return maxIndex;\n};\n\n// https://url.spec.whatwg.org/#host-serializing\nvar serializeHost = function (host) {\n var result, index, compress, ignore0;\n // ipv4\n if (typeof host == 'number') {\n result = [];\n for (index = 0; index < 4; index++) {\n unshift(result, host % 256);\n host = floor(host / 256);\n } return join(result, '.');\n // ipv6\n } else if (typeof host == 'object') {\n result = '';\n compress = findLongestZeroSequence(host);\n for (index = 0; index < 8; index++) {\n if (ignore0 && host[index] === 0) continue;\n if (ignore0) ignore0 = false;\n if (compress === index) {\n result += index ? ':' : '::';\n ignore0 = true;\n } else {\n result += numberToString(host[index], 16);\n if (index < 7) result += ':';\n }\n }\n return '[' + result + ']';\n } return host;\n};\n\nvar C0ControlPercentEncodeSet = {};\nvar fragmentPercentEncodeSet = assign({}, C0ControlPercentEncodeSet, {\n ' ': 1, '\"': 1, '<': 1, '>': 1, '`': 1\n});\nvar pathPercentEncodeSet = assign({}, fragmentPercentEncodeSet, {\n '#': 1, '?': 1, '{': 1, '}': 1\n});\nvar userinfoPercentEncodeSet = assign({}, pathPercentEncodeSet, {\n '/': 1, ':': 1, ';': 1, '=': 1, '@': 1, '[': 1, '\\\\': 1, ']': 1, '^': 1, '|': 1\n});\n\nvar percentEncode = function (chr, set) {\n var code = codeAt(chr, 0);\n return code > 0x20 && code < 0x7F && !hasOwn(set, chr) ? chr : encodeURIComponent(chr);\n};\n\n// https://url.spec.whatwg.org/#special-scheme\nvar specialSchemes = {\n ftp: 21,\n file: null,\n http: 80,\n https: 443,\n ws: 80,\n wss: 443\n};\n\n// https://url.spec.whatwg.org/#windows-drive-letter\nvar isWindowsDriveLetter = function (string, normalized) {\n var second;\n return string.length == 2 && exec(ALPHA, charAt(string, 0))\n && ((second = charAt(string, 1)) == ':' || (!normalized && second == '|'));\n};\n\n// https://url.spec.whatwg.org/#start-with-a-windows-drive-letter\nvar startsWithWindowsDriveLetter = function (string) {\n var third;\n return string.length > 1 && isWindowsDriveLetter(stringSlice(string, 0, 2)) && (\n string.length == 2 ||\n ((third = charAt(string, 2)) === '/' || third === '\\\\' || third === '?' || third === '#')\n );\n};\n\n// https://url.spec.whatwg.org/#single-dot-path-segment\nvar isSingleDot = function (segment) {\n return segment === '.' || toLowerCase(segment) === '%2e';\n};\n\n// https://url.spec.whatwg.org/#double-dot-path-segment\nvar isDoubleDot = function (segment) {\n segment = toLowerCase(segment);\n return segment === '..' || segment === '%2e.' || segment === '.%2e' || segment === '%2e%2e';\n};\n\n// States:\nvar SCHEME_START = {};\nvar SCHEME = {};\nvar NO_SCHEME = {};\nvar SPECIAL_RELATIVE_OR_AUTHORITY = {};\nvar PATH_OR_AUTHORITY = {};\nvar RELATIVE = {};\nvar RELATIVE_SLASH = {};\nvar SPECIAL_AUTHORITY_SLASHES = {};\nvar SPECIAL_AUTHORITY_IGNORE_SLASHES = {};\nvar AUTHORITY = {};\nvar HOST = {};\nvar HOSTNAME = {};\nvar PORT = {};\nvar FILE = {};\nvar FILE_SLASH = {};\nvar FILE_HOST = {};\nvar PATH_START = {};\nvar PATH = {};\nvar CANNOT_BE_A_BASE_URL_PATH = {};\nvar QUERY = {};\nvar FRAGMENT = {};\n\nvar URLState = function (url, isBase, base) {\n var urlString = $toString(url);\n var baseState, failure, searchParams;\n if (isBase) {\n failure = this.parse(urlString);\n if (failure) throw TypeError(failure);\n this.searchParams = null;\n } else {\n if (base !== undefined) baseState = new URLState(base, true);\n failure = this.parse(urlString, null, baseState);\n if (failure) throw TypeError(failure);\n searchParams = getInternalSearchParamsState(new URLSearchParams());\n searchParams.bindURL(this);\n this.searchParams = searchParams;\n }\n};\n\nURLState.prototype = {\n type: 'URL',\n // https://url.spec.whatwg.org/#url-parsing\n // eslint-disable-next-line max-statements -- TODO\n parse: function (input, stateOverride, base) {\n var url = this;\n var state = stateOverride || SCHEME_START;\n var pointer = 0;\n var buffer = '';\n var seenAt = false;\n var seenBracket = false;\n var seenPasswordToken = false;\n var codePoints, chr, bufferCodePoints, failure;\n\n input = $toString(input);\n\n if (!stateOverride) {\n url.scheme = '';\n url.username = '';\n url.password = '';\n url.host = null;\n url.port = null;\n url.path = [];\n url.query = null;\n url.fragment = null;\n url.cannotBeABaseURL = false;\n input = replace(input, LEADING_AND_TRAILING_C0_CONTROL_OR_SPACE, '');\n }\n\n input = replace(input, TAB_AND_NEW_LINE, '');\n\n codePoints = arrayFrom(input);\n\n while (pointer <= codePoints.length) {\n chr = codePoints[pointer];\n switch (state) {\n case SCHEME_START:\n if (chr && exec(ALPHA, chr)) {\n buffer += toLowerCase(chr);\n state = SCHEME;\n } else if (!stateOverride) {\n state = NO_SCHEME;\n continue;\n } else return INVALID_SCHEME;\n break;\n\n case SCHEME:\n if (chr && (exec(ALPHANUMERIC, chr) || chr == '+' || chr == '-' || chr == '.')) {\n buffer += toLowerCase(chr);\n } else if (chr == ':') {\n if (stateOverride && (\n (url.isSpecial() != hasOwn(specialSchemes, buffer)) ||\n (buffer == 'file' && (url.includesCredentials() || url.port !== null)) ||\n (url.scheme == 'file' && !url.host)\n )) return;\n url.scheme = buffer;\n if (stateOverride) {\n if (url.isSpecial() && specialSchemes[url.scheme] == url.port) url.port = null;\n return;\n }\n buffer = '';\n if (url.scheme == 'file') {\n state = FILE;\n } else if (url.isSpecial() && base && base.scheme == url.scheme) {\n state = SPECIAL_RELATIVE_OR_AUTHORITY;\n } else if (url.isSpecial()) {\n state = SPECIAL_AUTHORITY_SLASHES;\n } else if (codePoints[pointer + 1] == '/') {\n state = PATH_OR_AUTHORITY;\n pointer++;\n } else {\n url.cannotBeABaseURL = true;\n push(url.path, '');\n state = CANNOT_BE_A_BASE_URL_PATH;\n }\n } else if (!stateOverride) {\n buffer = '';\n state = NO_SCHEME;\n pointer = 0;\n continue;\n } else return INVALID_SCHEME;\n break;\n\n case NO_SCHEME:\n if (!base || (base.cannotBeABaseURL && chr != '#')) return INVALID_SCHEME;\n if (base.cannotBeABaseURL && chr == '#') {\n url.scheme = base.scheme;\n url.path = arraySlice(base.path);\n url.query = base.query;\n url.fragment = '';\n url.cannotBeABaseURL = true;\n state = FRAGMENT;\n break;\n }\n state = base.scheme == 'file' ? FILE : RELATIVE;\n continue;\n\n case SPECIAL_RELATIVE_OR_AUTHORITY:\n if (chr == '/' && codePoints[pointer + 1] == '/') {\n state = SPECIAL_AUTHORITY_IGNORE_SLASHES;\n pointer++;\n } else {\n state = RELATIVE;\n continue;\n } break;\n\n case PATH_OR_AUTHORITY:\n if (chr == '/') {\n state = AUTHORITY;\n break;\n } else {\n state = PATH;\n continue;\n }\n\n case RELATIVE:\n url.scheme = base.scheme;\n if (chr == EOF) {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n url.path = arraySlice(base.path);\n url.query = base.query;\n } else if (chr == '/' || (chr == '\\\\' && url.isSpecial())) {\n state = RELATIVE_SLASH;\n } else if (chr == '?') {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n url.path = arraySlice(base.path);\n url.query = '';\n state = QUERY;\n } else if (chr == '#') {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n url.path = arraySlice(base.path);\n url.query = base.query;\n url.fragment = '';\n state = FRAGMENT;\n } else {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n url.path = arraySlice(base.path);\n url.path.length--;\n state = PATH;\n continue;\n } break;\n\n case RELATIVE_SLASH:\n if (url.isSpecial() && (chr == '/' || chr == '\\\\')) {\n state = SPECIAL_AUTHORITY_IGNORE_SLASHES;\n } else if (chr == '/') {\n state = AUTHORITY;\n } else {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n state = PATH;\n continue;\n } break;\n\n case SPECIAL_AUTHORITY_SLASHES:\n state = SPECIAL_AUTHORITY_IGNORE_SLASHES;\n if (chr != '/' || charAt(buffer, pointer + 1) != '/') continue;\n pointer++;\n break;\n\n case SPECIAL_AUTHORITY_IGNORE_SLASHES:\n if (chr != '/' && chr != '\\\\') {\n state = AUTHORITY;\n continue;\n } break;\n\n case AUTHORITY:\n if (chr == '@') {\n if (seenAt) buffer = '%40' + buffer;\n seenAt = true;\n bufferCodePoints = arrayFrom(buffer);\n for (var i = 0; i < bufferCodePoints.length; i++) {\n var codePoint = bufferCodePoints[i];\n if (codePoint == ':' && !seenPasswordToken) {\n seenPasswordToken = true;\n continue;\n }\n var encodedCodePoints = percentEncode(codePoint, userinfoPercentEncodeSet);\n if (seenPasswordToken) url.password += encodedCodePoints;\n else url.username += encodedCodePoints;\n }\n buffer = '';\n } else if (\n chr == EOF || chr == '/' || chr == '?' || chr == '#' ||\n (chr == '\\\\' && url.isSpecial())\n ) {\n if (seenAt && buffer == '') return INVALID_AUTHORITY;\n pointer -= arrayFrom(buffer).length + 1;\n buffer = '';\n state = HOST;\n } else buffer += chr;\n break;\n\n case HOST:\n case HOSTNAME:\n if (stateOverride && url.scheme == 'file') {\n state = FILE_HOST;\n continue;\n } else if (chr == ':' && !seenBracket) {\n if (buffer == '') return INVALID_HOST;\n failure = url.parseHost(buffer);\n if (failure) return failure;\n buffer = '';\n state = PORT;\n if (stateOverride == HOSTNAME) return;\n } else if (\n chr == EOF || chr == '/' || chr == '?' || chr == '#' ||\n (chr == '\\\\' && url.isSpecial())\n ) {\n if (url.isSpecial() && buffer == '') return INVALID_HOST;\n if (stateOverride && buffer == '' && (url.includesCredentials() || url.port !== null)) return;\n failure = url.parseHost(buffer);\n if (failure) return failure;\n buffer = '';\n state = PATH_START;\n if (stateOverride) return;\n continue;\n } else {\n if (chr == '[') seenBracket = true;\n else if (chr == ']') seenBracket = false;\n buffer += chr;\n } break;\n\n case PORT:\n if (exec(DIGIT, chr)) {\n buffer += chr;\n } else if (\n chr == EOF || chr == '/' || chr == '?' || chr == '#' ||\n (chr == '\\\\' && url.isSpecial()) ||\n stateOverride\n ) {\n if (buffer != '') {\n var port = parseInt(buffer, 10);\n if (port > 0xFFFF) return INVALID_PORT;\n url.port = (url.isSpecial() && port === specialSchemes[url.scheme]) ? null : port;\n buffer = '';\n }\n if (stateOverride) return;\n state = PATH_START;\n continue;\n } else return INVALID_PORT;\n break;\n\n case FILE:\n url.scheme = 'file';\n if (chr == '/' || chr == '\\\\') state = FILE_SLASH;\n else if (base && base.scheme == 'file') {\n if (chr == EOF) {\n url.host = base.host;\n url.path = arraySlice(base.path);\n url.query = base.query;\n } else if (chr == '?') {\n url.host = base.host;\n url.path = arraySlice(base.path);\n url.query = '';\n state = QUERY;\n } else if (chr == '#') {\n url.host = base.host;\n url.path = arraySlice(base.path);\n url.query = base.query;\n url.fragment = '';\n state = FRAGMENT;\n } else {\n if (!startsWithWindowsDriveLetter(join(arraySlice(codePoints, pointer), ''))) {\n url.host = base.host;\n url.path = arraySlice(base.path);\n url.shortenPath();\n }\n state = PATH;\n continue;\n }\n } else {\n state = PATH;\n continue;\n } break;\n\n case FILE_SLASH:\n if (chr == '/' || chr == '\\\\') {\n state = FILE_HOST;\n break;\n }\n if (base && base.scheme == 'file' && !startsWithWindowsDriveLetter(join(arraySlice(codePoints, pointer), ''))) {\n if (isWindowsDriveLetter(base.path[0], true)) push(url.path, base.path[0]);\n else url.host = base.host;\n }\n state = PATH;\n continue;\n\n case FILE_HOST:\n if (chr == EOF || chr == '/' || chr == '\\\\' || chr == '?' || chr == '#') {\n if (!stateOverride && isWindowsDriveLetter(buffer)) {\n state = PATH;\n } else if (buffer == '') {\n url.host = '';\n if (stateOverride) return;\n state = PATH_START;\n } else {\n failure = url.parseHost(buffer);\n if (failure) return failure;\n if (url.host == 'localhost') url.host = '';\n if (stateOverride) return;\n buffer = '';\n state = PATH_START;\n } continue;\n } else buffer += chr;\n break;\n\n case PATH_START:\n if (url.isSpecial()) {\n state = PATH;\n if (chr != '/' && chr != '\\\\') continue;\n } else if (!stateOverride && chr == '?') {\n url.query = '';\n state = QUERY;\n } else if (!stateOverride && chr == '#') {\n url.fragment = '';\n state = FRAGMENT;\n } else if (chr != EOF) {\n state = PATH;\n if (chr != '/') continue;\n } break;\n\n case PATH:\n if (\n chr == EOF || chr == '/' ||\n (chr == '\\\\' && url.isSpecial()) ||\n (!stateOverride && (chr == '?' || chr == '#'))\n ) {\n if (isDoubleDot(buffer)) {\n url.shortenPath();\n if (chr != '/' && !(chr == '\\\\' && url.isSpecial())) {\n push(url.path, '');\n }\n } else if (isSingleDot(buffer)) {\n if (chr != '/' && !(chr == '\\\\' && url.isSpecial())) {\n push(url.path, '');\n }\n } else {\n if (url.scheme == 'file' && !url.path.length && isWindowsDriveLetter(buffer)) {\n if (url.host) url.host = '';\n buffer = charAt(buffer, 0) + ':'; // normalize windows drive letter\n }\n push(url.path, buffer);\n }\n buffer = '';\n if (url.scheme == 'file' && (chr == EOF || chr == '?' || chr == '#')) {\n while (url.path.length > 1 && url.path[0] === '') {\n shift(url.path);\n }\n }\n if (chr == '?') {\n url.query = '';\n state = QUERY;\n } else if (chr == '#') {\n url.fragment = '';\n state = FRAGMENT;\n }\n } else {\n buffer += percentEncode(chr, pathPercentEncodeSet);\n } break;\n\n case CANNOT_BE_A_BASE_URL_PATH:\n if (chr == '?') {\n url.query = '';\n state = QUERY;\n } else if (chr == '#') {\n url.fragment = '';\n state = FRAGMENT;\n } else if (chr != EOF) {\n url.path[0] += percentEncode(chr, C0ControlPercentEncodeSet);\n } break;\n\n case QUERY:\n if (!stateOverride && chr == '#') {\n url.fragment = '';\n state = FRAGMENT;\n } else if (chr != EOF) {\n if (chr == \"'\" && url.isSpecial()) url.query += '%27';\n else if (chr == '#') url.query += '%23';\n else url.query += percentEncode(chr, C0ControlPercentEncodeSet);\n } break;\n\n case FRAGMENT:\n if (chr != EOF) url.fragment += percentEncode(chr, fragmentPercentEncodeSet);\n break;\n }\n\n pointer++;\n }\n },\n // https://url.spec.whatwg.org/#host-parsing\n parseHost: function (input) {\n var result, codePoints, index;\n if (charAt(input, 0) == '[') {\n if (charAt(input, input.length - 1) != ']') return INVALID_HOST;\n result = parseIPv6(stringSlice(input, 1, -1));\n if (!result) return INVALID_HOST;\n this.host = result;\n // opaque host\n } else if (!this.isSpecial()) {\n if (exec(FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT, input)) return INVALID_HOST;\n result = '';\n codePoints = arrayFrom(input);\n for (index = 0; index < codePoints.length; index++) {\n result += percentEncode(codePoints[index], C0ControlPercentEncodeSet);\n }\n this.host = result;\n } else {\n input = toASCII(input);\n if (exec(FORBIDDEN_HOST_CODE_POINT, input)) return INVALID_HOST;\n result = parseIPv4(input);\n if (result === null) return INVALID_HOST;\n this.host = result;\n }\n },\n // https://url.spec.whatwg.org/#cannot-have-a-username-password-port\n cannotHaveUsernamePasswordPort: function () {\n return !this.host || this.cannotBeABaseURL || this.scheme == 'file';\n },\n // https://url.spec.whatwg.org/#include-credentials\n includesCredentials: function () {\n return this.username != '' || this.password != '';\n },\n // https://url.spec.whatwg.org/#is-special\n isSpecial: function () {\n return hasOwn(specialSchemes, this.scheme);\n },\n // https://url.spec.whatwg.org/#shorten-a-urls-path\n shortenPath: function () {\n var path = this.path;\n var pathSize = path.length;\n if (pathSize && (this.scheme != 'file' || pathSize != 1 || !isWindowsDriveLetter(path[0], true))) {\n path.length--;\n }\n },\n // https://url.spec.whatwg.org/#concept-url-serializer\n serialize: function () {\n var url = this;\n var scheme = url.scheme;\n var username = url.username;\n var password = url.password;\n var host = url.host;\n var port = url.port;\n var path = url.path;\n var query = url.query;\n var fragment = url.fragment;\n var output = scheme + ':';\n if (host !== null) {\n output += '//';\n if (url.includesCredentials()) {\n output += username + (password ? ':' + password : '') + '@';\n }\n output += serializeHost(host);\n if (port !== null) output += ':' + port;\n } else if (scheme == 'file') output += '//';\n output += url.cannotBeABaseURL ? path[0] : path.length ? '/' + join(path, '/') : '';\n if (query !== null) output += '?' + query;\n if (fragment !== null) output += '#' + fragment;\n return output;\n },\n // https://url.spec.whatwg.org/#dom-url-href\n setHref: function (href) {\n var failure = this.parse(href);\n if (failure) throw TypeError(failure);\n this.searchParams.update();\n },\n // https://url.spec.whatwg.org/#dom-url-origin\n getOrigin: function () {\n var scheme = this.scheme;\n var port = this.port;\n if (scheme == 'blob') try {\n return new URLConstructor(scheme.path[0]).origin;\n } catch (error) {\n return 'null';\n }\n if (scheme == 'file' || !this.isSpecial()) return 'null';\n return scheme + '://' + serializeHost(this.host) + (port !== null ? ':' + port : '');\n },\n // https://url.spec.whatwg.org/#dom-url-protocol\n getProtocol: function () {\n return this.scheme + ':';\n },\n setProtocol: function (protocol) {\n this.parse($toString(protocol) + ':', SCHEME_START);\n },\n // https://url.spec.whatwg.org/#dom-url-username\n getUsername: function () {\n return this.username;\n },\n setUsername: function (username) {\n var codePoints = arrayFrom($toString(username));\n if (this.cannotHaveUsernamePasswordPort()) return;\n this.username = '';\n for (var i = 0; i < codePoints.length; i++) {\n this.username += percentEncode(codePoints[i], userinfoPercentEncodeSet);\n }\n },\n // https://url.spec.whatwg.org/#dom-url-password\n getPassword: function () {\n return this.password;\n },\n setPassword: function (password) {\n var codePoints = arrayFrom($toString(password));\n if (this.cannotHaveUsernamePasswordPort()) return;\n this.password = '';\n for (var i = 0; i < codePoints.length; i++) {\n this.password += percentEncode(codePoints[i], userinfoPercentEncodeSet);\n }\n },\n // https://url.spec.whatwg.org/#dom-url-host\n getHost: function () {\n var host = this.host;\n var port = this.port;\n return host === null ? ''\n : port === null ? serializeHost(host)\n : serializeHost(host) + ':' + port;\n },\n setHost: function (host) {\n if (this.cannotBeABaseURL) return;\n this.parse(host, HOST);\n },\n // https://url.spec.whatwg.org/#dom-url-hostname\n getHostname: function () {\n var host = this.host;\n return host === null ? '' : serializeHost(host);\n },\n setHostname: function (hostname) {\n if (this.cannotBeABaseURL) return;\n this.parse(hostname, HOSTNAME);\n },\n // https://url.spec.whatwg.org/#dom-url-port\n getPort: function () {\n var port = this.port;\n return port === null ? '' : $toString(port);\n },\n setPort: function (port) {\n if (this.cannotHaveUsernamePasswordPort()) return;\n port = $toString(port);\n if (port == '') this.port = null;\n else this.parse(port, PORT);\n },\n // https://url.spec.whatwg.org/#dom-url-pathname\n getPathname: function () {\n var path = this.path;\n return this.cannotBeABaseURL ? path[0] : path.length ? '/' + join(path, '/') : '';\n },\n setPathname: function (pathname) {\n if (this.cannotBeABaseURL) return;\n this.path = [];\n this.parse(pathname, PATH_START);\n },\n // https://url.spec.whatwg.org/#dom-url-search\n getSearch: function () {\n var query = this.query;\n return query ? '?' + query : '';\n },\n setSearch: function (search) {\n search = $toString(search);\n if (search == '') {\n this.query = null;\n } else {\n if ('?' == charAt(search, 0)) search = stringSlice(search, 1);\n this.query = '';\n this.parse(search, QUERY);\n }\n this.searchParams.update();\n },\n // https://url.spec.whatwg.org/#dom-url-searchparams\n getSearchParams: function () {\n return this.searchParams.facade;\n },\n // https://url.spec.whatwg.org/#dom-url-hash\n getHash: function () {\n var fragment = this.fragment;\n return fragment ? '#' + fragment : '';\n },\n setHash: function (hash) {\n hash = $toString(hash);\n if (hash == '') {\n this.fragment = null;\n return;\n }\n if ('#' == charAt(hash, 0)) hash = stringSlice(hash, 1);\n this.fragment = '';\n this.parse(hash, FRAGMENT);\n },\n update: function () {\n this.query = this.searchParams.serialize() || null;\n }\n};\n\n// `URL` constructor\n// https://url.spec.whatwg.org/#url-class\nvar URLConstructor = function URL(url /* , base */) {\n var that = anInstance(this, URLPrototype);\n var base = validateArgumentsLength(arguments.length, 1) > 1 ? arguments[1] : undefined;\n var state = setInternalState(that, new URLState(url, false, base));\n if (!DESCRIPTORS) {\n that.href = state.serialize();\n that.origin = state.getOrigin();\n that.protocol = state.getProtocol();\n that.username = state.getUsername();\n that.password = state.getPassword();\n that.host = state.getHost();\n that.hostname = state.getHostname();\n that.port = state.getPort();\n that.pathname = state.getPathname();\n that.search = state.getSearch();\n that.searchParams = state.getSearchParams();\n that.hash = state.getHash();\n }\n};\n\nvar URLPrototype = URLConstructor.prototype;\n\nvar accessorDescriptor = function (getter, setter) {\n return {\n get: function () {\n return getInternalURLState(this)[getter]();\n },\n set: setter && function (value) {\n return getInternalURLState(this)[setter](value);\n },\n configurable: true,\n enumerable: true\n };\n};\n\nif (DESCRIPTORS) {\n defineProperties(URLPrototype, {\n // `URL.prototype.href` accessors pair\n // https://url.spec.whatwg.org/#dom-url-href\n href: accessorDescriptor('serialize', 'setHref'),\n // `URL.prototype.origin` getter\n // https://url.spec.whatwg.org/#dom-url-origin\n origin: accessorDescriptor('getOrigin'),\n // `URL.prototype.protocol` accessors pair\n // https://url.spec.whatwg.org/#dom-url-protocol\n protocol: accessorDescriptor('getProtocol', 'setProtocol'),\n // `URL.prototype.username` accessors pair\n // https://url.spec.whatwg.org/#dom-url-username\n username: accessorDescriptor('getUsername', 'setUsername'),\n // `URL.prototype.password` accessors pair\n // https://url.spec.whatwg.org/#dom-url-password\n password: accessorDescriptor('getPassword', 'setPassword'),\n // `URL.prototype.host` accessors pair\n // https://url.spec.whatwg.org/#dom-url-host\n host: accessorDescriptor('getHost', 'setHost'),\n // `URL.prototype.hostname` accessors pair\n // https://url.spec.whatwg.org/#dom-url-hostname\n hostname: accessorDescriptor('getHostname', 'setHostname'),\n // `URL.prototype.port` accessors pair\n // https://url.spec.whatwg.org/#dom-url-port\n port: accessorDescriptor('getPort', 'setPort'),\n // `URL.prototype.pathname` accessors pair\n // https://url.spec.whatwg.org/#dom-url-pathname\n pathname: accessorDescriptor('getPathname', 'setPathname'),\n // `URL.prototype.search` accessors pair\n // https://url.spec.whatwg.org/#dom-url-search\n search: accessorDescriptor('getSearch', 'setSearch'),\n // `URL.prototype.searchParams` getter\n // https://url.spec.whatwg.org/#dom-url-searchparams\n searchParams: accessorDescriptor('getSearchParams'),\n // `URL.prototype.hash` accessors pair\n // https://url.spec.whatwg.org/#dom-url-hash\n hash: accessorDescriptor('getHash', 'setHash')\n });\n}\n\n// `URL.prototype.toJSON` method\n// https://url.spec.whatwg.org/#dom-url-tojson\nredefine(URLPrototype, 'toJSON', function toJSON() {\n return getInternalURLState(this).serialize();\n}, { enumerable: true });\n\n// `URL.prototype.toString` method\n// https://url.spec.whatwg.org/#URL-stringification-behavior\nredefine(URLPrototype, 'toString', function toString() {\n return getInternalURLState(this).serialize();\n}, { enumerable: true });\n\nif (NativeURL) {\n var nativeCreateObjectURL = NativeURL.createObjectURL;\n var nativeRevokeObjectURL = NativeURL.revokeObjectURL;\n // `URL.createObjectURL` method\n // https://developer.mozilla.org/en-US/docs/Web/API/URL/createObjectURL\n if (nativeCreateObjectURL) redefine(URLConstructor, 'createObjectURL', bind(nativeCreateObjectURL, NativeURL));\n // `URL.revokeObjectURL` method\n // https://developer.mozilla.org/en-US/docs/Web/API/URL/revokeObjectURL\n if (nativeRevokeObjectURL) redefine(URLConstructor, 'revokeObjectURL', bind(nativeRevokeObjectURL, NativeURL));\n}\n\nsetToStringTag(URLConstructor, 'URL');\n\n$({ global: true, forced: !USE_NATIVE_URL, sham: !DESCRIPTORS }, {\n URL: URLConstructor\n});\n","'use strict';\n// based on https://github.com/bestiejs/punycode.js/blob/master/punycode.js\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar maxInt = 2147483647; // aka. 0x7FFFFFFF or 2^31-1\nvar base = 36;\nvar tMin = 1;\nvar tMax = 26;\nvar skew = 38;\nvar damp = 700;\nvar initialBias = 72;\nvar initialN = 128; // 0x80\nvar delimiter = '-'; // '\\x2D'\nvar regexNonASCII = /[^\\0-\\u007E]/; // non-ASCII chars\nvar regexSeparators = /[.\\u3002\\uFF0E\\uFF61]/g; // RFC 3490 separators\nvar OVERFLOW_ERROR = 'Overflow: input needs wider integers to process';\nvar baseMinusTMin = base - tMin;\n\nvar RangeError = global.RangeError;\nvar exec = uncurryThis(regexSeparators.exec);\nvar floor = Math.floor;\nvar fromCharCode = String.fromCharCode;\nvar charCodeAt = uncurryThis(''.charCodeAt);\nvar join = uncurryThis([].join);\nvar push = uncurryThis([].push);\nvar replace = uncurryThis(''.replace);\nvar split = uncurryThis(''.split);\nvar toLowerCase = uncurryThis(''.toLowerCase);\n\n/**\n * Creates an array containing the numeric code points of each Unicode\n * character in the string. While JavaScript uses UCS-2 internally,\n * this function will convert a pair of surrogate halves (each of which\n * UCS-2 exposes as separate characters) into a single code point,\n * matching UTF-16.\n */\nvar ucs2decode = function (string) {\n var output = [];\n var counter = 0;\n var length = string.length;\n while (counter < length) {\n var value = charCodeAt(string, counter++);\n if (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n // It's a high surrogate, and there is a next character.\n var extra = charCodeAt(string, counter++);\n if ((extra & 0xFC00) == 0xDC00) { // Low surrogate.\n push(output, ((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n } else {\n // It's an unmatched surrogate; only append this code unit, in case the\n // next code unit is the high surrogate of a surrogate pair.\n push(output, value);\n counter--;\n }\n } else {\n push(output, value);\n }\n }\n return output;\n};\n\n/**\n * Converts a digit/integer into a basic code point.\n */\nvar digitToBasic = function (digit) {\n // 0..25 map to ASCII a..z or A..Z\n // 26..35 map to ASCII 0..9\n return digit + 22 + 75 * (digit < 26);\n};\n\n/**\n * Bias adaptation function as per section 3.4 of RFC 3492.\n * https://tools.ietf.org/html/rfc3492#section-3.4\n */\nvar adapt = function (delta, numPoints, firstTime) {\n var k = 0;\n delta = firstTime ? floor(delta / damp) : delta >> 1;\n delta += floor(delta / numPoints);\n while (delta > baseMinusTMin * tMax >> 1) {\n delta = floor(delta / baseMinusTMin);\n k += base;\n }\n return floor(k + (baseMinusTMin + 1) * delta / (delta + skew));\n};\n\n/**\n * Converts a string of Unicode symbols (e.g. a domain name label) to a\n * Punycode string of ASCII-only symbols.\n */\nvar encode = function (input) {\n var output = [];\n\n // Convert the input in UCS-2 to an array of Unicode code points.\n input = ucs2decode(input);\n\n // Cache the length.\n var inputLength = input.length;\n\n // Initialize the state.\n var n = initialN;\n var delta = 0;\n var bias = initialBias;\n var i, currentValue;\n\n // Handle the basic code points.\n for (i = 0; i < input.length; i++) {\n currentValue = input[i];\n if (currentValue < 0x80) {\n push(output, fromCharCode(currentValue));\n }\n }\n\n var basicLength = output.length; // number of basic code points.\n var handledCPCount = basicLength; // number of code points that have been handled;\n\n // Finish the basic string with a delimiter unless it's empty.\n if (basicLength) {\n push(output, delimiter);\n }\n\n // Main encoding loop:\n while (handledCPCount < inputLength) {\n // All non-basic code points < n have been handled already. Find the next larger one:\n var m = maxInt;\n for (i = 0; i < input.length; i++) {\n currentValue = input[i];\n if (currentValue >= n && currentValue < m) {\n m = currentValue;\n }\n }\n\n // Increase `delta` enough to advance the decoder's state to , but guard against overflow.\n var handledCPCountPlusOne = handledCPCount + 1;\n if (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {\n throw RangeError(OVERFLOW_ERROR);\n }\n\n delta += (m - n) * handledCPCountPlusOne;\n n = m;\n\n for (i = 0; i < input.length; i++) {\n currentValue = input[i];\n if (currentValue < n && ++delta > maxInt) {\n throw RangeError(OVERFLOW_ERROR);\n }\n if (currentValue == n) {\n // Represent delta as a generalized variable-length integer.\n var q = delta;\n var k = base;\n while (true) {\n var t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n if (q < t) break;\n var qMinusT = q - t;\n var baseMinusT = base - t;\n push(output, fromCharCode(digitToBasic(t + qMinusT % baseMinusT)));\n q = floor(qMinusT / baseMinusT);\n k += base;\n }\n\n push(output, fromCharCode(digitToBasic(q)));\n bias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);\n delta = 0;\n handledCPCount++;\n }\n }\n\n delta++;\n n++;\n }\n return join(output, '');\n};\n\nmodule.exports = function (input) {\n var encoded = [];\n var labels = split(replace(toLowerCase(input), regexSeparators, '\\u002E'), '.');\n var i, label;\n for (i = 0; i < labels.length; i++) {\n label = labels[i];\n push(encoded, exec(regexNonASCII, label) ? 'xn--' + encode(label) : label);\n }\n return join(encoded, '.');\n};\n","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./index.vue?vue&type=style&index=0&id=901cf5cc&lang=scss&scoped=true\"","var uncurryThis = require('../internals/function-uncurry-this');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar toString = require('../internals/to-string');\n\nvar quot = /\"/g;\nvar replace = uncurryThis(''.replace);\n\n// `CreateHTML` abstract operation\n// https://tc39.es/ecma262/#sec-createhtml\nmodule.exports = function (string, tag, attribute, value) {\n var S = toString(requireObjectCoercible(string));\n var p1 = '<' + tag;\n if (attribute !== '') p1 += ' ' + attribute + '=\"' + replace(toString(value), quot, '"') + '\"';\n return p1 + '>' + S + '' + tag + '>';\n};\n","'use strict';\n// TODO: in core-js@4, move /modules/ dependencies to public entries for better optimization by tools like `preset-env`\nrequire('../modules/es.array.iterator');\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar getBuiltIn = require('../internals/get-built-in');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar USE_NATIVE_URL = require('../internals/native-url');\nvar redefine = require('../internals/redefine');\nvar redefineAll = require('../internals/redefine-all');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar createIteratorConstructor = require('../internals/create-iterator-constructor');\nvar InternalStateModule = require('../internals/internal-state');\nvar anInstance = require('../internals/an-instance');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar bind = require('../internals/function-bind-context');\nvar classof = require('../internals/classof');\nvar anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar $toString = require('../internals/to-string');\nvar create = require('../internals/object-create');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar arraySort = require('../internals/array-sort');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar URL_SEARCH_PARAMS = 'URLSearchParams';\nvar URL_SEARCH_PARAMS_ITERATOR = URL_SEARCH_PARAMS + 'Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalParamsState = InternalStateModule.getterFor(URL_SEARCH_PARAMS);\nvar getInternalIteratorState = InternalStateModule.getterFor(URL_SEARCH_PARAMS_ITERATOR);\n\nvar n$Fetch = getBuiltIn('fetch');\nvar N$Request = getBuiltIn('Request');\nvar Headers = getBuiltIn('Headers');\nvar RequestPrototype = N$Request && N$Request.prototype;\nvar HeadersPrototype = Headers && Headers.prototype;\nvar RegExp = global.RegExp;\nvar TypeError = global.TypeError;\nvar decodeURIComponent = global.decodeURIComponent;\nvar encodeURIComponent = global.encodeURIComponent;\nvar charAt = uncurryThis(''.charAt);\nvar join = uncurryThis([].join);\nvar push = uncurryThis([].push);\nvar replace = uncurryThis(''.replace);\nvar shift = uncurryThis([].shift);\nvar splice = uncurryThis([].splice);\nvar split = uncurryThis(''.split);\nvar stringSlice = uncurryThis(''.slice);\n\nvar plus = /\\+/g;\nvar sequences = Array(4);\n\nvar percentSequence = function (bytes) {\n return sequences[bytes - 1] || (sequences[bytes - 1] = RegExp('((?:%[\\\\da-f]{2}){' + bytes + '})', 'gi'));\n};\n\nvar percentDecode = function (sequence) {\n try {\n return decodeURIComponent(sequence);\n } catch (error) {\n return sequence;\n }\n};\n\nvar deserialize = function (it) {\n var result = replace(it, plus, ' ');\n var bytes = 4;\n try {\n return decodeURIComponent(result);\n } catch (error) {\n while (bytes) {\n result = replace(result, percentSequence(bytes--), percentDecode);\n }\n return result;\n }\n};\n\nvar find = /[!'()~]|%20/g;\n\nvar replacements = {\n '!': '%21',\n \"'\": '%27',\n '(': '%28',\n ')': '%29',\n '~': '%7E',\n '%20': '+'\n};\n\nvar replacer = function (match) {\n return replacements[match];\n};\n\nvar serialize = function (it) {\n return replace(encodeURIComponent(it), find, replacer);\n};\n\nvar URLSearchParamsIterator = createIteratorConstructor(function Iterator(params, kind) {\n setInternalState(this, {\n type: URL_SEARCH_PARAMS_ITERATOR,\n iterator: getIterator(getInternalParamsState(params).entries),\n kind: kind\n });\n}, 'Iterator', function next() {\n var state = getInternalIteratorState(this);\n var kind = state.kind;\n var step = state.iterator.next();\n var entry = step.value;\n if (!step.done) {\n step.value = kind === 'keys' ? entry.key : kind === 'values' ? entry.value : [entry.key, entry.value];\n } return step;\n}, true);\n\nvar URLSearchParamsState = function (init) {\n this.entries = [];\n this.url = null;\n\n if (init !== undefined) {\n if (isObject(init)) this.parseObject(init);\n else this.parseQuery(typeof init == 'string' ? charAt(init, 0) === '?' ? stringSlice(init, 1) : init : $toString(init));\n }\n};\n\nURLSearchParamsState.prototype = {\n type: URL_SEARCH_PARAMS,\n bindURL: function (url) {\n this.url = url;\n this.update();\n },\n parseObject: function (object) {\n var iteratorMethod = getIteratorMethod(object);\n var iterator, next, step, entryIterator, entryNext, first, second;\n\n if (iteratorMethod) {\n iterator = getIterator(object, iteratorMethod);\n next = iterator.next;\n while (!(step = call(next, iterator)).done) {\n entryIterator = getIterator(anObject(step.value));\n entryNext = entryIterator.next;\n if (\n (first = call(entryNext, entryIterator)).done ||\n (second = call(entryNext, entryIterator)).done ||\n !call(entryNext, entryIterator).done\n ) throw TypeError('Expected sequence with length 2');\n push(this.entries, { key: $toString(first.value), value: $toString(second.value) });\n }\n } else for (var key in object) if (hasOwn(object, key)) {\n push(this.entries, { key: key, value: $toString(object[key]) });\n }\n },\n parseQuery: function (query) {\n if (query) {\n var attributes = split(query, '&');\n var index = 0;\n var attribute, entry;\n while (index < attributes.length) {\n attribute = attributes[index++];\n if (attribute.length) {\n entry = split(attribute, '=');\n push(this.entries, {\n key: deserialize(shift(entry)),\n value: deserialize(join(entry, '='))\n });\n }\n }\n }\n },\n serialize: function () {\n var entries = this.entries;\n var result = [];\n var index = 0;\n var entry;\n while (index < entries.length) {\n entry = entries[index++];\n push(result, serialize(entry.key) + '=' + serialize(entry.value));\n } return join(result, '&');\n },\n update: function () {\n this.entries.length = 0;\n this.parseQuery(this.url.query);\n },\n updateURL: function () {\n if (this.url) this.url.update();\n }\n};\n\n// `URLSearchParams` constructor\n// https://url.spec.whatwg.org/#interface-urlsearchparams\nvar URLSearchParamsConstructor = function URLSearchParams(/* init */) {\n anInstance(this, URLSearchParamsPrototype);\n var init = arguments.length > 0 ? arguments[0] : undefined;\n setInternalState(this, new URLSearchParamsState(init));\n};\n\nvar URLSearchParamsPrototype = URLSearchParamsConstructor.prototype;\n\nredefineAll(URLSearchParamsPrototype, {\n // `URLSearchParams.prototype.append` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-append\n append: function append(name, value) {\n validateArgumentsLength(arguments.length, 2);\n var state = getInternalParamsState(this);\n push(state.entries, { key: $toString(name), value: $toString(value) });\n state.updateURL();\n },\n // `URLSearchParams.prototype.delete` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-delete\n 'delete': function (name) {\n validateArgumentsLength(arguments.length, 1);\n var state = getInternalParamsState(this);\n var entries = state.entries;\n var key = $toString(name);\n var index = 0;\n while (index < entries.length) {\n if (entries[index].key === key) splice(entries, index, 1);\n else index++;\n }\n state.updateURL();\n },\n // `URLSearchParams.prototype.get` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-get\n get: function get(name) {\n validateArgumentsLength(arguments.length, 1);\n var entries = getInternalParamsState(this).entries;\n var key = $toString(name);\n var index = 0;\n for (; index < entries.length; index++) {\n if (entries[index].key === key) return entries[index].value;\n }\n return null;\n },\n // `URLSearchParams.prototype.getAll` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-getall\n getAll: function getAll(name) {\n validateArgumentsLength(arguments.length, 1);\n var entries = getInternalParamsState(this).entries;\n var key = $toString(name);\n var result = [];\n var index = 0;\n for (; index < entries.length; index++) {\n if (entries[index].key === key) push(result, entries[index].value);\n }\n return result;\n },\n // `URLSearchParams.prototype.has` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-has\n has: function has(name) {\n validateArgumentsLength(arguments.length, 1);\n var entries = getInternalParamsState(this).entries;\n var key = $toString(name);\n var index = 0;\n while (index < entries.length) {\n if (entries[index++].key === key) return true;\n }\n return false;\n },\n // `URLSearchParams.prototype.set` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-set\n set: function set(name, value) {\n validateArgumentsLength(arguments.length, 1);\n var state = getInternalParamsState(this);\n var entries = state.entries;\n var found = false;\n var key = $toString(name);\n var val = $toString(value);\n var index = 0;\n var entry;\n for (; index < entries.length; index++) {\n entry = entries[index];\n if (entry.key === key) {\n if (found) splice(entries, index--, 1);\n else {\n found = true;\n entry.value = val;\n }\n }\n }\n if (!found) push(entries, { key: key, value: val });\n state.updateURL();\n },\n // `URLSearchParams.prototype.sort` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-sort\n sort: function sort() {\n var state = getInternalParamsState(this);\n arraySort(state.entries, function (a, b) {\n return a.key > b.key ? 1 : -1;\n });\n state.updateURL();\n },\n // `URLSearchParams.prototype.forEach` method\n forEach: function forEach(callback /* , thisArg */) {\n var entries = getInternalParamsState(this).entries;\n var boundFunction = bind(callback, arguments.length > 1 ? arguments[1] : undefined);\n var index = 0;\n var entry;\n while (index < entries.length) {\n entry = entries[index++];\n boundFunction(entry.value, entry.key, this);\n }\n },\n // `URLSearchParams.prototype.keys` method\n keys: function keys() {\n return new URLSearchParamsIterator(this, 'keys');\n },\n // `URLSearchParams.prototype.values` method\n values: function values() {\n return new URLSearchParamsIterator(this, 'values');\n },\n // `URLSearchParams.prototype.entries` method\n entries: function entries() {\n return new URLSearchParamsIterator(this, 'entries');\n }\n}, { enumerable: true });\n\n// `URLSearchParams.prototype[@@iterator]` method\nredefine(URLSearchParamsPrototype, ITERATOR, URLSearchParamsPrototype.entries, { name: 'entries' });\n\n// `URLSearchParams.prototype.toString` method\n// https://url.spec.whatwg.org/#urlsearchparams-stringification-behavior\nredefine(URLSearchParamsPrototype, 'toString', function toString() {\n return getInternalParamsState(this).serialize();\n}, { enumerable: true });\n\nsetToStringTag(URLSearchParamsConstructor, URL_SEARCH_PARAMS);\n\n$({ global: true, forced: !USE_NATIVE_URL }, {\n URLSearchParams: URLSearchParamsConstructor\n});\n\n// Wrap `fetch` and `Request` for correct work with polyfilled `URLSearchParams`\nif (!USE_NATIVE_URL && isCallable(Headers)) {\n var headersHas = uncurryThis(HeadersPrototype.has);\n var headersSet = uncurryThis(HeadersPrototype.set);\n\n var wrapRequestOptions = function (init) {\n if (isObject(init)) {\n var body = init.body;\n var headers;\n if (classof(body) === URL_SEARCH_PARAMS) {\n headers = init.headers ? new Headers(init.headers) : new Headers();\n if (!headersHas(headers, 'content-type')) {\n headersSet(headers, 'content-type', 'application/x-www-form-urlencoded;charset=UTF-8');\n }\n return create(init, {\n body: createPropertyDescriptor(0, $toString(body)),\n headers: createPropertyDescriptor(0, headers)\n });\n }\n } return init;\n };\n\n if (isCallable(n$Fetch)) {\n $({ global: true, enumerable: true, forced: true }, {\n fetch: function fetch(input /* , init */) {\n return n$Fetch(input, arguments.length > 1 ? wrapRequestOptions(arguments[1]) : {});\n }\n });\n }\n\n if (isCallable(N$Request)) {\n var RequestConstructor = function Request(input /* , init */) {\n anInstance(this, RequestPrototype);\n return new N$Request(input, arguments.length > 1 ? wrapRequestOptions(arguments[1]) : {});\n };\n\n RequestPrototype.constructor = RequestConstructor;\n RequestConstructor.prototype = RequestPrototype;\n\n $({ global: true, forced: true }, {\n Request: RequestConstructor\n });\n }\n}\n\nmodule.exports = {\n URLSearchParams: URLSearchParamsConstructor,\n getState: getInternalParamsState\n};\n","var arraySlice = require('../internals/array-slice-simple');\n\nvar floor = Math.floor;\n\nvar mergeSort = function (array, comparefn) {\n var length = array.length;\n var middle = floor(length / 2);\n return length < 8 ? insertionSort(array, comparefn) : merge(\n array,\n mergeSort(arraySlice(array, 0, middle), comparefn),\n mergeSort(arraySlice(array, middle), comparefn),\n comparefn\n );\n};\n\nvar insertionSort = function (array, comparefn) {\n var length = array.length;\n var i = 1;\n var element, j;\n\n while (i < length) {\n j = i;\n element = array[i];\n while (j && comparefn(array[j - 1], element) > 0) {\n array[j] = array[--j];\n }\n if (j !== i++) array[j] = element;\n } return array;\n};\n\nvar merge = function (array, left, right, comparefn) {\n var llength = left.length;\n var rlength = right.length;\n var lindex = 0;\n var rindex = 0;\n\n while (lindex < llength || rindex < rlength) {\n array[lindex + rindex] = (lindex < llength && rindex < rlength)\n ? comparefn(left[lindex], right[rindex]) <= 0 ? left[lindex++] : right[rindex++]\n : lindex < llength ? left[lindex++] : right[rindex++];\n } return array;\n};\n\nmodule.exports = mergeSort;\n","var fails = require('../internals/fails');\n\n// check the existence of a method, lowercase\n// of a tag and escaping quotes in arguments\nmodule.exports = function (METHOD_NAME) {\n return fails(function () {\n var test = ''[METHOD_NAME]('\"');\n return test !== test.toLowerCase() || test.split('\"').length > 3;\n });\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.fixed` method\n// https://tc39.es/ecma262/#sec-string.prototype.fixed\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('fixed') }, {\n fixed: function fixed() {\n return createHTML(this, 'tt', '', '');\n }\n});\n"],"sourceRoot":""}
\ No newline at end of file
diff --git a/src/views/other/cropper/cropper.vue b/src/views/other/cropper/cropper.vue
index 785f9d1..a6616a6 100644
--- a/src/views/other/cropper/cropper.vue
+++ b/src/views/other/cropper/cropper.vue
@@ -164,7 +164,8 @@