@aplus-frontend/ui
Version:
2 lines (1 loc) • 6.2 kB
JavaScript
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),s=require("@aplus-frontend/antdv");require("../ap-form.vue.js");require("../../hooks/index.js");const j=require("../../utils/slot.js");require("../../config-provider/index.js");const b=require("lodash-unified"),E=require("../../utils/index.js"),I=require("../style/drawer-form.js"),D=require("../../hooks/useControllableValue.js"),A=require("../../config-provider/hooks/use-locale.js"),$=require("../../config-provider/hooks/use-namespace.js"),X=require("../ap-form.vue2.js");function W(l){return typeof l=="function"||Object.prototype.toString.call(l)==="[object Object]"&&!e.isVNode(l)}const G=e.defineComponent({name:"ApFormDrawerForm",__name:"index",props:{layout:{default:"horizontal"},labelCol:{},wrapperCol:{},colon:{type:Boolean,default:!0},labelAlign:{default:"right"},labelWrap:{type:Boolean},prefixCls:{},requiredMark:{},hideRequiredMark:{type:Boolean,default:!1},rules:{},validateMessages:{},validateOnRuleChange:{type:Boolean,default:!0},scrollToFirstError:{},onSubmit:{},name:{},validateTrigger:{default:"change"},size:{},disabled:{type:Boolean},onFieldsChange:{},onFinishFailed:{},onValidate:{},variant:{},initialValues:{},onValuesChange:{},syncToUrl:{type:[Boolean,Function]},syncToUrlPriority:{type:Boolean},open:{type:Boolean,default:void 0},"onUpdate:open":{},drawerProps:{default:()=>({})},title:{},width:{default:378},onFinish:{},submitter:{type:[Boolean,Object],default:()=>({resetButtonProps:!1})},showCancel:{type:Boolean,default:!0},submitTimeout:{},resize:{type:[Object,Boolean],default:!1}},emits:["update:open"],setup(l,{expose:k,emit:x}){const n=l,p=e.useSlots(),R=x,r=e.ref(),d=e.ref(),i=e.ref(!1),{value:g,updateValue:c}=D.useControllableValue(n,R,{valuePropName:"open",defaultValue:!1}),a=e.computed(()=>{const t={onResize:()=>{},minWidth:300,maxWidth:window.innerWidth*.8,resizeOnOpen:!0};return b.isBoolean(n.resize)?n.resize?t:{}:{minWidth:n.resize?.minWidth??t.minWidth,maxWidth:n.resize?.maxWidth??t.maxWidth,onResize:n.resize?.onResize??t.onResize,resizeOnOpen:b.isUndefined(n.resize?.resizeOnOpen)?t.onResize:n.resize.resizeOnOpen}}),u=e.ref(y()),{t:v}=A.useLocale(),N=I.default("ap-form-drawer-form"),{b:O,e:P,em:F}=$.useNamespace("ap-form-drawer-form"),_=e.computed(()=>[P("resize-bar"),{[F("resize-bar","min-disabled")]:e.unref(u)===e.unref(a).minWidth},{[F("resize-bar","max-disabled")]:e.unref(u)===e.unref(a).maxWidth}]);e.watch(()=>r.value,t=>{t&&d.value&&(t.setFieldsValue?.(d.value),d.value=void 0)}),e.watch(()=>e.unref(g),t=>{t&&e.unref(a)?.resizeOnOpen&&(u.value=y())});function y(){const t=e.unref(a)?.minWidth;return!t||t&&t<n.width?n.width:t}const w=j.getSingleVNode(p.trigger),V=w?e.cloneVNode(w,{onClick:()=>{c(!0)}}):null,q=e.computed(()=>{const t=[];if(n.submitter===!1)return null;if(n.showCancel){let o;t.push(e.createVNode(s.Button,{onClick:B,disabled:i.value},W(o=v("ap.common.cancelText"))?o:{default:()=>[o]}))}return n.submitter?.resetButtonProps!==!1&&t.push(e.createVNode(s.Button,e.mergeProps(n.submitter?.resetButtonProps||{},{key:"submit",disabled:i.value,onClick:M}),{default:()=>[n.submitter?.resetText||v("ap.common.resetText")]})),n.submitter?.submitButtonProps!==!1&&t.push(e.createVNode(s.Button,e.mergeProps({type:"primary",key:"submit"},n.submitter?.submitButtonProps||{},{loading:i.value,onClick:L}),{default:()=>[n.submitter?.submitText||v("ap.common.okText")]})),e.createVNode(s.Flex,{justify:"flex-end"},{default:()=>[p.submitter?p.submitter(t):e.createVNode(s.Space,null,W(t)?t:{default:()=>[t]})]})});function S(){a.value?.onResize?.(),document.addEventListener("mousemove",C),document.addEventListener("mouseup",z)}function C(t){const o=e.unref(a),f=(document.body.offsetWidth||1e3)-(t.clientX-document.body.offsetLeft),m=o?.minWidth??(n.width||800),T=o?.maxWidth??window.innerWidth*.8;let h=f;f<m&&(h=m),f>T&&(h=T),u.value=h}function z(){document.removeEventListener("mousemove",C),document.removeEventListener("mouseup",z)}function M(){n.submitter!==!1&&(r.value?.resetFields(),n.submitter?.onReset?.())}async function L(){if(n.submitter!==!1)try{const t=await r.value?.validateFieldsReturnTransformed();n.submitter?.onSubmit?.(),i.value=!0;const o=n.onFinish?.(E.convertReactiveToRaw(t));if(n.submitTimeout&&o instanceof Promise){const m=setTimeout(()=>i.value=!1,n.submitTimeout);o.finally(()=>{clearTimeout(m),i.value=!1})}await o&&c(!1)}finally{i.value=!1}}function B(){e.unref(i)||c(!1)}function U(t){!t&&e.unref(i)||c(t)}return k({resetFields:async()=>{r.value?.resetFields()},clearValidate:t=>{r.value?.clearValidate(t)},validateFields:(t,o)=>r.value?.validateFields(t,o),getFieldsValue:t=>r.value?.getFieldsValue(t),validate:(t,o)=>r.value?.validate(t,o),scrollToField:(t,o={})=>{r.value?.scrollToField(t,o)},setFieldValue:(t,o)=>{r.value?.setFieldValue?.(t,o)},setFieldsValue:t=>{if(!r.value){d.value=t;return}r.value?.setFieldsValue?.(t)},getInternalInstance:t=>r.value?.getInternalInstance(t),getFieldsValueTransformed:t=>r.value?.getFieldsValueTransformed(t),validateFieldsReturnTransformed:t=>r.value?.validateFieldsReturnTransformed(t)}),(t,o)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createVNode(e.unref(s.Drawer),e.mergeProps(t.drawerProps,{open:e.unref(g),width:u.value,class:[e.unref(O)(),e.unref(N)],"onUpdate:open":U,onCancel:B}),{title:e.withCtx(()=>[e.renderSlot(t.$slots,"title",{},()=>[e.createTextVNode(e.toDisplayString(n.title),1)])]),footer:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(q.value)))]),default:e.withCtx(()=>[e.createVNode(X.default,e.mergeProps({ref_key:"formRef",ref:r},e.unref(b.omit)(n,["drawerProps","open","onUpdate:open","title","width","onFinish","submitter"])),{default:e.withCtx(()=>[e.renderSlot(t.$slots,"default")]),_:3},16),t.resize?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(_.value),onMousedown:e.withModifiers(S,["stop","prevent"])},null,34)):e.createCommentVNode("",!0)]),_:3},16,["open","width","class"]),e.unref(V)?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(e.unref(V)),{key:0})):e.createCommentVNode("",!0)],64))}});exports.default=G;