UNPKG

@aplus-frontend/ui

Version:

2 lines (1 loc) 6.08 kB
"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 L=require("../../utils/slot.js");require("../../config-provider/index.js");const b=require("lodash-unified"),U=require("../../utils/index.js"),j=require("../../hooks/useControllableValue.js"),E=require("../../config-provider/hooks/use-locale.js"),D=require("../../config-provider/hooks/use-namespace.js"),I=require("../ap-form.vue2.js");function W(l){return typeof l=="function"||Object.prototype.toString.call(l)==="[object Object]"&&!e.isVNode(l)}const A=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,i=e.ref(),d=e.ref(),r=e.ref(!1),{value:g,updateValue:c}=j.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}=E.useLocale(),{e:N,em:F}=D.useNamespace("ap-form-drawer-form"),O=e.computed(()=>[N("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(()=>i.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 V=L.getSingleVNode(p.trigger),w=V?e.cloneVNode(V,{onClick:()=>{c(!0)}}):null,P=e.computed(()=>{const t=[];if(n.submitter===!1)return null;if(n.showCancel){let o;t.push(e.createVNode(s.Button,{onClick:B,disabled:r.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:r.value,onClick:q}),{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:r.value,onClick:S}),{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 _(){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 q(){n.submitter!==!1&&(i.value?.resetFields(),n.submitter?.onReset?.())}async function S(){if(n.submitter!==!1)try{const t=await i.value?.validateFieldsReturnTransformed();n.submitter?.onSubmit?.(),r.value=!0;const o=n.onFinish?.(U.convertReactiveToRaw(t));if(n.submitTimeout&&o instanceof Promise){const m=setTimeout(()=>r.value=!1,n.submitTimeout);o.finally(()=>{clearTimeout(m),r.value=!1})}await o&&c(!1)}finally{r.value=!1}}function B(){e.unref(r)||c(!1)}function M(t){!t&&e.unref(r)||c(t)}return k({resetFields:async()=>{i.value?.resetFields()},clearValidate:t=>{i.value?.clearValidate(t)},validateFields:(t,o)=>i.value?.validateFields(t,o),getFieldsValue:t=>i.value?.getFieldsValue(t),validate:(t,o)=>i.value?.validate(t,o),scrollToField:(t,o={})=>{i.value?.scrollToField(t,o)},setFieldValue:(t,o)=>{i.value?.setFieldValue?.(t,o)},setFieldsValue:t=>{if(!i.value){d.value=t;return}i.value?.setFieldsValue?.(t)},getInternalInstance:t=>i.value?.getInternalInstance(t),getFieldsValueTransformed:t=>i.value?.getFieldsValueTransformed(t),validateFieldsReturnTransformed:t=>i.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,"onUpdate:open":M,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(P.value)))]),default:e.withCtx(()=>[e.createVNode(I.default,e.mergeProps({ref_key:"formRef",ref:i},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(O.value),onMousedown:e.withModifiers(_,["stop","prevent"])},null,34)):e.createCommentVNode("",!0)]),_:3},16,["open","width"]),e.unref(w)?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(e.unref(w)),{key:0})):e.createCommentVNode("",!0)],64))}});exports.default=A;