@gopowerteam/form-render 0.0.59 → 0.0.61

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,14 @@
1
+ import { DataRecord, FormItemRenderReturn } from '../../interfaces';
2
+
3
+ export declare function renderCurrencyItem<T = DataRecord>(options?: RenderCurrencyOptions): FormItemRenderReturn<T>;
4
+ export interface RenderCurrencyOptions {
5
+ placeholder?: string;
6
+ clearable?: boolean;
7
+ readonly?: boolean;
8
+ prefix?: string | (() => JSX.Element);
9
+ suffix?: string | (() => JSX.Element);
10
+ thousands?: boolean;
11
+ precision?: number;
12
+ inputUnit?: '分' | '元' | '万';
13
+ outputUnit?: '分' | '元' | '万';
14
+ }
@@ -0,0 +1,6 @@
1
+ import { DataRecord, FormItemRenderReturn } from '../../interfaces';
2
+
3
+ export declare function renderRenderItem<T = DataRecord>(renderer: RenderInputItemOptions<T>): FormItemRenderReturn<T>;
4
+ export interface RenderInputItemOptions<T> {
5
+ (record: T): JSX.Element;
6
+ }
@@ -0,0 +1,21 @@
1
+ import { DataRecord, FormItemRenderReturn } from '../../interfaces';
2
+ import { TreeProps } from '@arco-design/web-vue/es/tree/interface';
3
+ import { Ref } from 'vue';
4
+ import { TreeFieldNames, TreeNodeData } from '@arco-design/web-vue';
5
+
6
+ export declare function renderTreeSelectItem<T = DataRecord>(options: RenderTreeSelectItemOptions): FormItemRenderReturn<T>;
7
+ export type SelectOptions = TreeNodeData[];
8
+ export interface RenderTreeSelectItemOptions {
9
+ placeholder?: string;
10
+ clearable?: boolean;
11
+ searchable?: boolean;
12
+ fieldNames?: TreeFieldNames;
13
+ options: SelectOptions | (() => SelectOptions) | (() => Promise<SelectOptions>) | Ref<SelectOptions>;
14
+ multiple?: boolean;
15
+ maxTagCount?: number;
16
+ default?: string | number | boolean;
17
+ autoSumbit?: boolean;
18
+ cache?: boolean;
19
+ treeProps?: Partial<TreeProps>;
20
+ slots?: Partial<Record<'trigger' | 'prefix' | 'label' | 'header' | 'loader' | 'empty' | 'footer' | 'tree-slot-extra' | 'tree-slot-title' | 'tree-slot-icon' | 'tree-slot-switcher-icon', (data?: TreeNodeData) => JSX.Element>>;
21
+ }
@@ -1 +1 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const t=require("vue"),k=require("@arco-design/web-vue"),te=require("dayjs"),fe=require("./resolver.cjs"),me=Symbol("ArcoConfigProvider"),he="arco",ve="$arco",Y=e=>{var n,l,r;const a=t.getCurrentInstance(),u=t.inject(me,void 0);return`${(r=(l=u==null?void 0:u.prefixCls)!=null?l:(n=a==null?void 0:a.appContext.config.globalProperties[ve])==null?void 0:n.classPrefix)!=null?r:he}-${e}`},pe=Object.prototype.toString;function X(e){return pe.call(e)==="[object Number]"&&e===e}var K=(e,n)=>{for(const[l,r]of n)e[l]=r;return e};const ge=t.defineComponent({name:"IconDown",props:{size:{type:[Number,String]},strokeWidth:{type:Number,default:4},strokeLinecap:{type:String,default:"butt",validator:e=>["butt","round","square"].includes(e)},strokeLinejoin:{type:String,default:"miter",validator:e=>["arcs","bevel","miter","miter-clip","round"].includes(e)},rotate:Number,spin:Boolean},emits:{click:e=>!0},setup(e,{emit:n}){const l=Y("icon"),r=t.computed(()=>[l,`${l}-down`,{[`${l}-spin`]:e.spin}]),a=t.computed(()=>{const o={};return e.size&&(o.fontSize=X(e.size)?`${e.size}px`:e.size),e.rotate&&(o.transform=`rotate(${e.rotate}deg)`),o});return{cls:r,innerStyle:a,onClick:o=>{n("click",o)}}}}),ye=["stroke-width","stroke-linecap","stroke-linejoin"],be=t.createElementVNode("path",{d:"M39.6 17.443 24.043 33 8.487 17.443"},null,-1),ke=[be];function we(e,n,l,r,a,u){return t.openBlock(),t.createElementBlock("svg",{viewBox:"0 0 48 48",fill:"none",xmlns:"http://www.w3.org/2000/svg",stroke:"currentColor",class:t.normalizeClass(e.cls),style:t.normalizeStyle(e.innerStyle),"stroke-width":e.strokeWidth,"stroke-linecap":e.strokeLinecap,"stroke-linejoin":e.strokeLinejoin,onClick:n[0]||(n[0]=(...o)=>e.onClick&&e.onClick(...o))},ke,14,ye)}var W=K(ge,[["render",we]]);const Ce=Object.assign(W,{install:(e,n)=>{var l;const r=(l=n==null?void 0:n.iconPrefix)!=null?l:"";e.component(r+W.name,W)}}),Se=t.defineComponent({name:"IconUp",props:{size:{type:[Number,String]},strokeWidth:{type:Number,default:4},strokeLinecap:{type:String,default:"butt",validator:e=>["butt","round","square"].includes(e)},strokeLinejoin:{type:String,default:"miter",validator:e=>["arcs","bevel","miter","miter-clip","round"].includes(e)},rotate:Number,spin:Boolean},emits:{click:e=>!0},setup(e,{emit:n}){const l=Y("icon"),r=t.computed(()=>[l,`${l}-up`,{[`${l}-spin`]:e.spin}]),a=t.computed(()=>{const o={};return e.size&&(o.fontSize=X(e.size)?`${e.size}px`:e.size),e.rotate&&(o.transform=`rotate(${e.rotate}deg)`),o});return{cls:r,innerStyle:a,onClick:o=>{n("click",o)}}}}),xe=["stroke-width","stroke-linecap","stroke-linejoin"],Ve=t.createElementVNode("path",{d:"M39.6 30.557 24.043 15 8.487 30.557"},null,-1),Ne=[Ve];function $e(e,n,l,r,a,u){return t.openBlock(),t.createElementBlock("svg",{viewBox:"0 0 48 48",fill:"none",xmlns:"http://www.w3.org/2000/svg",stroke:"currentColor",class:t.normalizeClass(e.cls),style:t.normalizeStyle(e.innerStyle),"stroke-width":e.strokeWidth,"stroke-linecap":e.strokeLinecap,"stroke-linejoin":e.strokeLinejoin,onClick:n[0]||(n[0]=(...o)=>e.onClick&&e.onClick(...o))},Ne,14,xe)}var q=K(Se,[["render",$e]]);const Fe=Object.assign(q,{install:(e,n)=>{var l;const r=(l=n==null?void 0:n.iconPrefix)!=null?l:"";e.component(r+q.name,q)}}),Be=t.defineComponent({name:"IconSearch",props:{size:{type:[Number,String]},strokeWidth:{type:Number,default:4},strokeLinecap:{type:String,default:"butt",validator:e=>["butt","round","square"].includes(e)},strokeLinejoin:{type:String,default:"miter",validator:e=>["arcs","bevel","miter","miter-clip","round"].includes(e)},rotate:Number,spin:Boolean},emits:{click:e=>!0},setup(e,{emit:n}){const l=Y("icon"),r=t.computed(()=>[l,`${l}-search`,{[`${l}-spin`]:e.spin}]),a=t.computed(()=>{const o={};return e.size&&(o.fontSize=X(e.size)?`${e.size}px`:e.size),e.rotate&&(o.transform=`rotate(${e.rotate}deg)`),o});return{cls:r,innerStyle:a,onClick:o=>{n("click",o)}}}}),Ee=["stroke-width","stroke-linecap","stroke-linejoin"],Oe=t.createElementVNode("path",{d:"M33.072 33.071c6.248-6.248 6.248-16.379 0-22.627-6.249-6.249-16.38-6.249-22.628 0-6.248 6.248-6.248 16.379 0 22.627 6.248 6.248 16.38 6.248 22.628 0Zm0 0 8.485 8.485"},null,-1),Ie=[Oe];function _e(e,n,l,r,a,u){return t.openBlock(),t.createElementBlock("svg",{viewBox:"0 0 48 48",fill:"none",xmlns:"http://www.w3.org/2000/svg",stroke:"currentColor",class:t.normalizeClass(e.cls),style:t.normalizeStyle(e.innerStyle),"stroke-width":e.strokeWidth,"stroke-linecap":e.strokeLinecap,"stroke-linejoin":e.strokeLinejoin,onClick:n[0]||(n[0]=(...o)=>e.onClick&&e.onClick(...o))},Ie,14,Ee)}var G=K(Be,[["render",_e]]);const Me=Object.assign(G,{install:(e,n)=>{var l;const r=(l=n==null?void 0:n.iconPrefix)!=null?l:"";e.component(r+G.name,G)}}),A=Symbol("__MODAL__");function le(e){return t.getCurrentScope()?(t.onScopeDispose(e),!0):!1}function S(e){return typeof e=="function"?e():t.unref(e)}const ae=typeof window<"u"&&typeof document<"u";typeof WorkerGlobalScope<"u"&&globalThis instanceof WorkerGlobalScope;const Re=Object.prototype.toString,je=e=>Re.call(e)==="[object Object]",ze=()=>{};function Te(e){return t.getCurrentInstance()}function Le(e,n={}){if(!t.isRef(e))return t.toRefs(e);const l=Array.isArray(e.value)?Array.from({length:e.value.length}):{};for(const r in e.value)l[r]=t.customRef(()=>({get(){return e.value[r]},set(a){var u;if((u=S(n.replaceRef))==null||u)if(Array.isArray(e.value)){const o=[...e.value];o[r]=a,e.value=o}else{const o={...e.value,[r]:a};Object.setPrototypeOf(o,Object.getPrototypeOf(e.value)),e.value=o}else e.value[r]=a}}));return l}function Pe(e,n=!0,l){Te()?t.onMounted(e,l):n?e():t.nextTick(e)}function _(e){var n;const l=S(e);return(n=l==null?void 0:l.$el)!=null?n:l}const U=ae?window:void 0;function H(...e){let n,l,r,a;if(typeof e[0]=="string"||Array.isArray(e[0])?([l,r,a]=e,n=U):[n,l,r,a]=e,!n)return ze;Array.isArray(l)||(l=[l]),Array.isArray(r)||(r=[r]);const u=[],o=()=>{u.forEach(c=>c()),u.length=0},s=(c,i,d,v)=>(c.addEventListener(i,d,v),()=>c.removeEventListener(i,d,v)),b=t.watch(()=>[_(n),S(a)],([c,i])=>{if(o(),!c)return;const d=je(i)?{...i}:i;u.push(...l.flatMap(v=>r.map(h=>s(c,v,h,d))))},{immediate:!0,flush:"post"}),f=()=>{b(),o()};return le(f),f}function De(){const e=t.ref(!1),n=t.getCurrentInstance();return n&&t.onMounted(()=>{e.value=!0},n),e}function Ae(e){const n=De();return t.computed(()=>(n.value,!!e()))}function Ue(e,n={}){var l,r;const{pointerTypes:a,preventDefault:u,stopPropagation:o,exact:s,onMove:b,onEnd:f,onStart:c,initialValue:i,axis:d="both",draggingElement:v=U,containerElement:h,handle:w=e}=n,p=t.ref((l=S(i))!=null?l:{x:0,y:0}),x=t.ref(),B=y=>a?a.includes(y.pointerType):!0,V=y=>{S(u)&&y.preventDefault(),S(o)&&y.stopPropagation()},g=y=>{var E;if(S(n.disabled)||!B(y)||S(s)&&y.target!==S(e))return;const N=S(h),O=(E=N==null?void 0:N.getBoundingClientRect)==null?void 0:E.call(N),$=S(e).getBoundingClientRect(),T={x:y.clientX-(N?$.left-O.left+N.scrollLeft:$.left),y:y.clientY-(N?$.top-O.top+N.scrollTop:$.top)};(c==null?void 0:c(T,y))!==!1&&(x.value=T,V(y))},C=y=>{if(S(n.disabled)||!B(y)||!x.value)return;const E=S(h),N=S(e).getBoundingClientRect();let{x:O,y:$}=p.value;(d==="x"||d==="both")&&(O=y.clientX-x.value.x,E&&(O=Math.min(Math.max(0,O),E.scrollWidth-N.width))),(d==="y"||d==="both")&&($=y.clientY-x.value.y,E&&($=Math.min(Math.max(0,$),E.scrollHeight-N.height))),p.value={x:O,y:$},b==null||b(p.value,y),V(y)},I=y=>{S(n.disabled)||!B(y)||x.value&&(x.value=void 0,f==null||f(p.value,y),V(y))};if(ae){const y={capture:(r=n.capture)!=null?r:!0};H(w,"pointerdown",g,y),H(v,"pointermove",C,y),H(v,"pointerup",I,y)}return{...Le(p),position:p,isDragging:t.computed(()=>!!x.value),style:t.computed(()=>`left:${p.value.x}px;top:${p.value.y}px;`)}}function We(e,n,l={}){const{window:r=U,...a}=l;let u;const o=Ae(()=>r&&"ResizeObserver"in r),s=()=>{u&&(u.disconnect(),u=void 0)},b=t.computed(()=>Array.isArray(e)?e.map(i=>_(i)):[_(e)]),f=t.watch(b,i=>{if(s(),o.value&&r){u=new ResizeObserver(n);for(const d of i)d&&u.observe(d,a)}},{immediate:!0,flush:"post"}),c=()=>{s(),f()};return le(c),{isSupported:o,stop:c}}function M(e,n={width:0,height:0},l={}){const{window:r=U,box:a="content-box"}=l,u=t.computed(()=>{var i,d;return(d=(i=_(e))==null?void 0:i.namespaceURI)==null?void 0:d.includes("svg")}),o=t.ref(n.width),s=t.ref(n.height),{stop:b}=We(e,([i])=>{const d=a==="border-box"?i.borderBoxSize:a==="content-box"?i.contentBoxSize:i.devicePixelContentBoxSize;if(r&&u.value){const v=_(e);if(v){const h=r.getComputedStyle(v);o.value=Number.parseFloat(h.width),s.value=Number.parseFloat(h.height)}}else if(d){const v=Array.isArray(d)?d:[d];o.value=v.reduce((h,{inlineSize:w})=>h+w,0),s.value=v.reduce((h,{blockSize:w})=>h+w,0)}else o.value=i.contentRect.width,s.value=i.contentRect.height},l);Pe(()=>{const i=_(e);i&&(o.value="offsetWidth"in i?i.offsetWidth:n.width,s.value="offsetHeight"in i?i.offsetHeight:n.height)});const f=t.watch(()=>_(e),i=>{o.value=i?n.width:0,s.value=i?n.height:0});function c(){b(),f()}return{width:o,height:s,stop:c}}const qe=e=>(t.pushScopeId("data-v-a1713ed1"),e=e(),t.popScopeId(),e),Ge={class:"title text-16px font-bold"},He={class:"action"},Ye=["form"],Xe={key:2,class:"modal-loading"},Ke=qe(()=>t.createElementVNode("div",{class:"lds-ring"},[t.createElementVNode("div"),t.createElementVNode("div"),t.createElementVNode("div"),t.createElementVNode("div")],-1)),Je=[Ke],Qe={name:"ModalContainer",inheritAttrs:!0},Ze=t.defineComponent({...Qe,props:{id:{},form:{},component:{},componentProps:{},width:{},height:{},maxWidth:{},maxHeight:{default:90},sizes:{},size:{default:"middle"},fullscreen:{type:Boolean},title:{},header:{type:Boolean,default:!0},footer:{type:Boolean,default:!1},closeable:{type:Boolean,default:!0},esc:{type:Boolean,default:!1},maskClosable:{type:Boolean,default:!1},draggable:{type:Boolean,default:!1},mode:{default:"dialog"},position:{default:"right"},type:{},offset:{},backgroundColor:{},bodyStyle:{},submitText:{default:"确定"},cancelText:{default:"取消"},zIndex:{default:1e3}},emits:["submit"],setup(e,{expose:n,emit:l}){t.useCssVars(m=>({"1c652152":m.zIndex}));const r=e,a=l,u=t.inject(A),o=t.ref(!1);let s=0,b=0;const f=t.shallowRef(),c=t.shallowRef(),i=t.shallowRef(),d=t.shallowRef(),v=t.shallowRef(),h=t.shallowRef(),{height:w}=M(f);M(c);const{height:p}=M(i,void 0,{box:"border-box"}),{height:x}=M(d,void 0,{box:"border-box"}),{height:B}=M(v),{height:V}=M(h),{x:g,y:C}=Ue(i,{initialValue:{x:0,y:0}});function I(){u==null||u.close(r.id)}function y(m){return typeof m=="number"?`${m}px`:m}const E=t.computed(()=>{const m={};return r.mode==="dialog"&&(m.justifyContent="center"),r.mode==="drawer"&&(m.justifyContent={left:"flex-start",right:"flex-end",top:"flex-start",bottom:"flex-end"}[r.position],m.flexDirection={left:"row",right:"row",top:"column",bottom:"column"}[r.position]),m}),N=t.computed(()=>{const m={};return r.mode==="drawer"&&["top","bottom"].includes(r.position)?m.maxHeight=y(r.maxHeight):(m.width=y(r.sizes[r.size]),m.maxWidth=y(r.maxWidth)),r.width&&(m.width=y(r.width)),r.height&&(m.height=y(r.height)),r.fullscreen&&(m.maxWidth="unset",m.width="100%",m.position="fixed",m.top=0,m.left=0,m.bottom=0,m.right=0,m.borderRadius=0),r.draggable&&!r.fullscreen&&r.mode==="dialog"&&(m.transform=`translate3d(${g.value-s}px, ${C.value-b}px, 0px)`),r.mode==="drawer"&&(m.borderRadius=0,["left","right"].includes(r.position)?m.height="100%":m.width="100%"),r.offset&&r.mode==="dialog"&&(m.marginLeft=`${r.offset.x||0}px`,m.marginTop=`${r.offset.y||0}px`),r.backgroundColor&&(m.backgroundColor=r.backgroundColor),m}),O=t.computed(()=>{const m={};return r.draggable&&!r.fullscreen&&r.mode==="dialog"&&(m.cursor="move"),m}),$=t.computed(()=>{const m={},F=B.value+V.value+p.value+x.value,ee=Math.floor(w.value*(Number(y(r.maxHeight).replace("%",""))/100));return r.maxHeight&&(m.maxHeight=`${ee-F}px`),r.mode==="drawer"&&(m.maxHeight="unset",["left","right"].includes(r.position)&&(m.height=`${w.value-F}px`)),r.fullscreen&&(m.maxHeight="unset",m.height=`calc(100% - ${F}px)`),r.type!=="component"&&(m.padding="0"),r.bodyStyle&&Object.assign(m,r.bodyStyle),m});function T(){const m=c.value;if(r.form&&m){const F=m.querySelector(`form[name="${r.form}"]`);F&&F.dispatchEvent(new Event("submit"))}a("submit")}function ce(){u==null||u.close(r.id)}function ue(){window&&window.addEventListener("resize",()=>{t.triggerRef(f),t.triggerRef(c),c.value&&(s=c.value.offsetLeft,b=c.value.offsetTop)})}function ie(){if(r.closeable&&r.esc){const m=({key:F})=>{F==="Escape"&&(u==null||u.close(r.id),window.removeEventListener("keydown",m))};window.addEventListener("keydown",m)}}function de(){s=c.value.offsetLeft,b=c.value.offsetTop}t.onMounted(()=>{ie(),ue()}),t.onUnmounted(()=>{});function se(){return o.value=!0,()=>Z()}function Z(){o.value=!1}return n({showLoading:se,hideLoading:Z}),(m,F)=>(t.openBlock(),t.createElementBlock("div",{ref_key:"wrapperRef",ref:f,class:"modal-wrapper",style:t.normalizeStyle(E.value),onClick:F[0]||(F[0]=t.withModifiers(ee=>m.maskClosable&&I(),["self"]))},[t.createElementVNode("div",{ref_key:"contentRef",ref:c,class:t.normalizeClass(["modal-content",{[`${m.mode}-mode`]:!0,[`${m.position}-position`]:!0}]),style:t.normalizeStyle(N.value)},[m.header?(t.openBlock(),t.createElementBlock("div",{key:0,ref_key:"headerRef",ref:i,class:"modal-header",style:t.normalizeStyle(O.value),onMousedown:de},[t.createElementVNode("div",Ge,t.toDisplayString(m.title),1),t.createElementVNode("div",He,[m.closeable?(t.openBlock(),t.createElementBlock("div",{key:0,class:"i-icon-park-outline:close block cursor-pointer",onClick:I})):t.createCommentVNode("",!0)])],36)):t.createCommentVNode("",!0),t.createElementVNode("div",{id:"modal-header-slot",ref_key:"headerSlotRef",ref:v},null,512),t.createElementVNode("div",{class:"modal-body",style:t.normalizeStyle($.value)},[(t.openBlock(),t.createBlock(t.resolveDynamicComponent(m.component),t.normalizeProps(t.guardReactiveProps(m.componentProps)),null,16))],4),t.createElementVNode("div",{id:"modal-footer-slot",ref_key:"footerSlotRef",ref:h},null,512),m.footer?(t.openBlock(),t.createElementBlock("div",{key:1,ref_key:"footerRef",ref:d,class:"modal-footer space-x-2"},[t.createElementVNode("button",{class:"cancel-button",type:"button",onClick:ce},t.toDisplayString(m.cancelText),1),t.createElementVNode("button",{class:"submit-button",form:m.form,type:"submit",onClick:T},t.toDisplayString(m.submitText),9,Ye)],512)):t.createCommentVNode("",!0),o.value?(t.openBlock(),t.createElementBlock("div",Xe,Je)):t.createCommentVNode("",!0)],6)],4))}}),J=(e,n)=>{const l=e.__vccOpts||e;for(const[r,a]of n)l[r]=a;return l},et=J(Ze,[["__scopeId","data-v-a1713ed1"]]),tt={class:"modal-dialog"},rt={class:"dialog-body"},nt={class:"dialog-title"},lt={class:"dialog-content"},at=t.defineComponent({__name:"modal-dialog",props:{type:{},title:{},content:{},okText:{default:"确定"},cancelText:{default:"取消"},onOk:{},onCancel:{},footer:{}},setup(e){const n=e,l=oe(),r=t.computed(()=>n.title?n.title:{confirm:"提示",info:"提示",warning:"警告",error:"错误",success:"成功"}[n.type]);async function a(){n.onOk&&await n.onOk(),l.close()}async function u(){n.onCancel&&await n.onCancel(),l.close()}return(o,s)=>(t.openBlock(),t.createElementBlock("section",tt,[t.createElementVNode("div",rt,[t.createElementVNode("div",nt,t.toDisplayString(r.value),1),t.createElementVNode("div",lt,t.toDisplayString(o.content),1)]),t.createElementVNode("div",{class:"dialog-footer space-x-2",style:t.normalizeStyle(o.type==="confirm"?{"justify-content":"end"}:{"border-top":"none"})},[o.footer?(t.openBlock(),t.createBlock(t.resolveDynamicComponent(o.footer),{key:0})):(t.openBlock(),t.createElementBlock(t.Fragment,{key:1},[t.createElementVNode("button",{class:"submit-button",type:"submit",onClick:a},t.toDisplayString(o.okText),1),o.type==="confirm"?(t.openBlock(),t.createElementBlock("button",{key:0,class:"cancel-button",type:"button",onClick:u},t.toDisplayString(o.cancelText),1)):t.createCommentVNode("",!0)],64))],4)]))}}),ot=J(at,[["__scopeId","data-v-8326e5a5"]]),ct={key:0,class:"modal-teleport"},ut={name:"ModalProvider",inheritAttrs:!0},it=t.defineComponent({...ut,props:{appendToBody:{type:[Boolean,String],default:!1},sizes:{default:()=>({small:"50%",middle:"70%",large:"90%"})},maxWidth:{default:"90%"},maxHeight:{default:"90%"},offset:{default:()=>({x:0,y:0})}},setup(e,{expose:n}){const l=t.shallowRef([]),r=t.ref(!1),a=t.getCurrentInstance();function u(d,v={},h={}){const w=t.defineAsyncComponent(()=>Promise.resolve(typeof d=="string"?ot:d));typeof d=="string"&&(v.type=d,h.size="small",h.fullscreen=!1,h.mode="dialog",h.footer=!1,h.header=!1);const p=Math.random().toString(32).slice(2),x=Object.assign({zIndex:typeof d=="string"?1100:1e3},h),B=new Promise((V,g)=>{l.value.push({id:p,component:w,props:v||{},options:{...x,type:typeof d=="string"?d:"component"},resolve:V,reject:g,listeners:[]}),t.triggerRef(l)}).catch(V=>V==="CANCEL"?new Promise(()=>{}):Promise.reject(V));return Object.assign(B,{close:()=>o(p)})}function o(d,v){const h=l.value.findIndex(p=>p.id===d);if(h<0)return;const w=l.value[h];v===void 0?w==null||w.reject("CANCEL"):w==null||w.resolve(v),l.value.splice(h,1),t.triggerRef(l)}function s(){!l.value||l.value.length===0||(l.value.forEach(d=>{d==null||d.reject("CANCEL")}),l.value=[],t.triggerRef(l))}function b(d,v){const h=l.value.find(p=>p.id===d);if(!h)return;const w=h.listeners.find(p=>p.event===v);w&&w.callback({open:u,close:p=>o(h.id,p),closeAll:s,showLoading:()=>f(h.id),hideLoading:()=>c(h.id),confirm:p=>u("confirm",p),success:p=>u("success",p),error:p=>u("error",p),warning:p=>u("warning",p),info:p=>u("info",p)})}function f(d){if(!a)return;const[v]=a.refs[`modal-container_${d}`];if(v)return v.showLoading()}function c(d){if(!a)return;const[v]=a.refs[`modal-container_${d}`];if(v)return v.hideLoading()}function i(d,v,h){const w=l.value.find(p=>p.id===d);w&&w.listeners.push({event:v,callback:h})}return t.provide(A,{open:u,close:o,closeAll:s,addEventListener:i}),n({elements:l,open:u,close:o,closeAll:s}),t.onMounted(()=>{r.value=!0}),(d,v)=>(t.openBlock(),t.createElementBlock(t.Fragment,null,[t.renderSlot(d.$slots,"default",{},void 0,!0),r.value?(t.openBlock(),t.createElementBlock("div",ct,[(t.openBlock(),t.createBlock(t.Teleport,{disabled:!d.appendToBody,to:typeof d.appendToBody=="string"?d.appendToBody:"body"},[t.createVNode(t.TransitionGroup,{name:"modal-fade"},{default:t.withCtx(()=>[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(l.value,h=>(t.openBlock(),t.createBlock(et,t.mergeProps({id:h.id,key:h.id,ref_for:!0,ref:`modal-container_${h.id}`,component:h.component,"component-props":h.props,"max-height":d.maxHeight,"max-width":d.maxWidth,offset:d.offset,sizes:d.sizes},h.options,{onSubmit:()=>b(h.id,"submit")}),null,16,["id","component","component-props","max-height","max-width","offset","sizes","onSubmit"]))),128))]),_:1})],8,["disabled","to"]))])):t.createCommentVNode("",!0)],64))}}),dt=J(it,[["__scopeId","data-v-756481fe"]]);function P(e,n){var l,r;let a=e==null?void 0:e.parent;for(;a&&((l=a==null?void 0:a.type)==null?void 0:l.name)!==n;)a=a.parent;return((r=a==null?void 0:a.type)==null?void 0:r.name)===n?a:null}function oe(){const e=t.inject(A),n=t.getCurrentInstance();function l(r,a,u){if(!e)throw new Error("Not Found Modal Provider Component");return e.open(r,a,u)}return{open:l,close(r){var a;if(!e)throw new Error("Not Found Modal Provider Component");const u=P(n,"ModalContainer"),o=(a=u==null?void 0:u.props)==null?void 0:a.id;if(!o)throw new Error("Not Found Current Modal Container");e.close(o,r)},closeAll(){if(!e)throw new Error("Not Found Modal Provider Component");e.closeAll()},showLoading(){var r;if(!e)throw new Error("Not Found Modal Provider Component");const a=P(n,"ModalContainer");if(!((r=a==null?void 0:a.props)!=null&&r.id))throw new Error("Not Found Current Modal Container");a!=null&&a.exposed&&(a==null||a.exposed.showLoading())},hideLoading(){var r;if(!e)throw new Error("Not Found Modal Provider Component");const a=P(n,"ModalContainer");if(!((r=a==null?void 0:a.props)!=null&&r.id))throw new Error("Not Found Current Modal Container");a!=null&&a.exposed&&(a==null||a.exposed.hideLoading())},confirm(r){return this.open("confirm",r)},info(r){return this.open("info",r)},error(r){return this.open("error",r)},warning(r){return this.open("warning",r)},success(r){return this.open("success",r)}}}function st(e){var n;const l=t.inject(A),r=t.getCurrentInstance(),a=P(r,"ModalContainer"),u=(n=a==null?void 0:a.props)==null?void 0:n.id;l&&u&&l.addEventListener(u,"submit",e)}const re={id:Symbol("ID"),source:Symbol("Source")};function ft(e,n){const l=t.ref({});return e==null||e.forEach(a=>{let u=null;a.default&&(u=(typeof a.default=="function"?a.default():a.default)||null),n&&n[a.key]!==void 0&&(u=n[a.key]),l.value[a.key]=u}),[l,a=>{l.value=a}]}function mt(e){function n(l,r){return e!=null&&e.disabledDate?e.disabledDate(l,r):!1}return(l,r)=>{switch(e==null?void 0:e.type){case"week":return t.createVNode(k.WeekPicker,{modelValue:l[r.key],"onUpdate:modelValue":a=>l[r.key]=a,"disabled-date":n,format:e==null?void 0:e.labelFormat,"value-format":e==null?void 0:e.valueFormat},null);case"month":return t.createVNode(k.MonthPicker,{modelValue:l[r.key],"onUpdate:modelValue":a=>l[r.key]=a,"disabled-date":n,format:e==null?void 0:e.labelFormat,"value-format":e==null?void 0:e.valueFormat},null);case"quarter":return t.createVNode(k.QuarterPicker,{modelValue:l[r.key],"onUpdate:modelValue":a=>l[r.key]=a,"disabled-date":n,format:e==null?void 0:e.labelFormat,"value-format":e==null?void 0:e.valueFormat},null);case"year":return t.createVNode(k.YearPicker,{modelValue:l[r.key],"onUpdate:modelValue":a=>l[r.key]=a,"disabled-date":n,format:e==null?void 0:e.labelFormat,"value-format":e==null?void 0:e.valueFormat},null);case"date":default:return t.createVNode(k.DatePicker,{"disabled-input":!0,modelValue:l[r.key],"onUpdate:modelValue":a=>l[r.key]=a,"disabled-date":n,format:e==null?void 0:e.labelFormat,"value-format":e==null?void 0:e.valueFormat},null)}}}function ht(e){return(n,l)=>{switch(e==null?void 0:e.type){case"number":return t.createVNode(k.InputNumber,{modelValue:n[l.key],"onUpdate:modelValue":r=>n[l.key]=r,hideButton:!0,"read-only":e==null?void 0:e.readonly,placeholder:e==null?void 0:e.placeholder,allowClear:e==null?void 0:e.clearable},null);case"string":default:return t.createVNode(k.Input,{modelValue:n[l.key],"onUpdate:modelValue":r=>n[l.key]=r,placeholder:e==null?void 0:e.placeholder,readonly:e==null?void 0:e.readonly,allowClear:e==null?void 0:e.clearable},null)}}}typeof WorkerGlobalScope<"u"&&globalThis instanceof WorkerGlobalScope;function Q(e,n,l){const r=t.watch(e,(...a)=>(t.nextTick(()=>r()),n(...a)),l);return r}function vt(e){return typeof e=="function"||Object.prototype.toString.call(e)==="[object Object]"&&!t.isVNode(e)}const R=new WeakMap;function pt(){const e=t.ref(new Map);return[e,l=>e.value=l]}function gt(e){let n,l=!1;const[r,a]=pt(),u=f=>{if(e.onChange&&e.onChange(f),!e.autoSumbit||!n)return;let c=n;for(;c&&c.$el.tagName!=="FORM";)c=c.$parent;c&&c.$el&&c.$el.dispatchEvent(new Event("submit"))},o=(f,c)=>{const i=f();i instanceof Promise?i.then(c):c(i)},s=async()=>{const f=R.get(e.options);switch(typeof f){case"function":R.set(e.options,a);return;case"object":a(f);return}R.set(e.options,a),o(e.options,c=>{const i=R.get(e.options);R.set(e.options,c),i(c)})},b=()=>{o(e.options,f=>{a(f)})};switch(!0){case e.options instanceof Function:{e.cache!==!1?s():b();break}case t.isRef(e.options):{Q(()=>e.options,()=>{a(e.options.value)},{immediate:!0});break}default:r.value=e.options}return(f,c)=>{let i;return e.default&&!l&&(f[c.key]=e.default,l=!0),t.createVNode(k.Select,{ref:d=>n=d,multiple:e.multiple,modelValue:f[c.key],"onUpdate:modelValue":d=>f[c.key]=d,placeholder:e.placeholder,allowClear:e.clearable,allowSearch:e.searchable,"allow-create":e.createable,maxTagCount:e.maxTagCount??2,onChange:u},vt(i=Array.from(r.value.entries()).map(([d,v])=>t.createVNode(k.Option,{key:d,value:d,label:v},null)))?i:{default:()=>[i]})}}function yt(e){function n(){e!=null&&e.autoSumbit}return(l,r)=>(e!=null&&e.default&&(l[r.key]=e.default),t.createVNode(k.Switch,{modelValue:l[r.key],"onUpdate:modelValue":a=>l[r.key]=a,checkedText:(e==null?void 0:e.openLabel)??"是",uncheckedText:(e==null?void 0:e.closeLabel)??"否",checkedValue:(e==null?void 0:e.openValue)??!0,uncheckedValue:(e==null?void 0:e.closeValue)??!1,onChange:n},null))}function bt(e){return(n,l)=>{let r=[];function a(s){r=s}function u(s){if(s&&s.length===2){const[b,f]=s.sort(),c=te(b).startOf("days"),i=te(f).endOf("days");n[l.key]=[c.format((e==null?void 0:e.valueFormat)||"YYYY-MM-DD"),i.format((e==null?void 0:e.valueFormat)||"YYYY-MM-DD")]}}function o(s){return e!=null&&e.disabledDate?e.disabledDate(r.filter(Boolean),s):!1}return t.createVNode("div",null,[t.createVNode(k.RangePicker,{"disabled-input":!0,style:{width:"300px"},modelValue:n[l.key],"onUpdate:modelValue":s=>n[l.key]=s,onSelect:a,onChange:u,mode:e==null?void 0:e.type,allowClear:e==null?void 0:e.clearable,"disabled-date":o,format:e==null?void 0:e.labelFormat,"value-format":e==null?void 0:e.valueFormat},null)])}}function kt(e){return(n,l)=>t.createVNode(k.Textarea,{modelValue:n[l.key],"onUpdate:modelValue":r=>n[l.key]=r,placeholder:e==null?void 0:e.placeholder,autoSize:e==null?void 0:e.autosize,maxLength:e==null?void 0:e.maxLength},null)}const j=new WeakMap;function wt(){const e=t.ref([]);return[e,l=>e.value=l]}function Ct(e){let n,l=!1;const[r,a]=wt(),u=()=>{if(!e.autoSumbit||!n)return;let c=n;for(;c&&c.$el.tagName!=="FORM";)c=c.$parent;c&&c.$el&&c.$el.dispatchEvent(new Event("submit"))},o=(c,i)=>{const d=c();d instanceof Promise?d.then(i):i(d)},s=async()=>{const c=j.get(e.options);switch(typeof c){case"function":j.set(e.options,a);return;case"object":a(c);return}j.set(e.options,a),o(e.options,i=>{const d=j.get(e.options);j.set(e.options,i),d(i)})},b=()=>{o(e.options,c=>{a(c)})};switch(!0){case e.options instanceof Function:{e.cache!==!1?s():b();break}case t.isRef(e.options):{Q(e.options,()=>{a(e.options.value)},{immediate:!0});break}default:r.value=e.options}function f(c,i){var h;const d=((h=e.fieldNames)==null?void 0:h.title)||"title",v=i[d];return v?v.toLowerCase().includes(c.toLowerCase()):!1}return(c,i)=>(e.default&&!l&&(c[i.key]=e.default,l=!0),t.createVNode(k.TreeSelect,{ref:d=>n=d,multiple:e.multiple,modelValue:c[i.key],"onUpdate:modelValue":d=>c[i.key]=d,placeholder:e.placeholder,allowClear:e.clearable,allowSearch:e.searchable,maxTagCount:e.maxTagCount??2,onChange:u,filterTreeNode:f,data:r.value,fieldNames:e.fieldNames,treeProps:e.treeProps},{...e.slots}))}const z=new WeakMap;function St(){const e=t.ref([]);return[e,l=>e.value=l]}function xt(e){let n,l=!1;const[r,a]=St(),u=()=>{if(!e.autoSumbit||!n)return;let f=n;for(;f&&f.$el.tagName!=="FORM";)f=f.$parent;f&&f.$el&&f.$el.dispatchEvent(new Event("submit"))},o=(f,c)=>{const i=f();i instanceof Promise?i.then(c):c(i)},s=async()=>{const f=z.get(e.options);switch(typeof f){case"function":z.set(e.options,a);return;case"object":a(f);return}z.set(e.options,a),o(e.options,c=>{const i=z.get(e.options);z.set(e.options,c),i(c)})},b=()=>{o(e.options,f=>{a(f)})};switch(!0){case e.options instanceof Function:{e.cache!==!1?s():b();break}case t.isRef(e.options):{Q(e.options,()=>{a(e.options.value)},{immediate:!0});break}default:r.value=e.options}return(f,c)=>(e.default&&!l&&(f[c.key]=e.default,l=!0),t.createVNode(k.Cascader,{pathMode:e.pathMode,ref:i=>n=i,multiple:e.multiple,modelValue:f[c.key],"onUpdate:modelValue":i=>f[c.key]=i,placeholder:e.placeholder,allowClear:e.clearable,allowSearch:e.searchable,maxTagCount:e.maxTagCount??2,onChange:u,options:r.value},null))}function Vt(e){return n=>e(n)}const Nt={thousands:!0,inputUnit:"元",outputUnit:"元"},L={分:10**0,元:10**2,万:10**4};function $t(e){e={...Nt,...e||{}};const n=o=>{if(o==null)return;if((e==null?void 0:e.inputUnit)===(e==null?void 0:e.outputUnit))return o;const s=L[e.outputUnit]/L[e.inputUnit];return o*s},l=o=>{if(o==null)return;if((e==null?void 0:e.inputUnit)===(e==null?void 0:e.outputUnit))return o;const s=L[e.inputUnit]/L[e.outputUnit];return o*s},r=o=>{const s=o.split(".");return s[0]=s[0].replace(/\B(?=(\d{3})+(?!\d))/g,","),s.join(".")},a=o=>{const s=o;return e!=null&&e.thousands?r(s):s},u=o=>o.replace(/,/g,"");return(o,s)=>{const b=t.ref(n(o[s.key]));return t.watch(b,f=>{o[s.key]=l(f)}),t.createVNode(k.InputNumber,{modelValue:b.value,"onUpdate:modelValue":f=>b.value=f,formatter:a,parser:u,precision:e==null?void 0:e.precision,hideButton:!0,"read-only":e==null?void 0:e.readonly,placeholder:e==null?void 0:e.placeholder,allowClear:e==null?void 0:e.clearable},{prefix:(e==null?void 0:e.prefix)&&(()=>typeof(e==null?void 0:e.prefix)=="string"?t.createVNode("span",null,[e.prefix]):e.prefix()),suffix:()=>typeof(e==null?void 0:e.suffix)=="string"?t.createVNode("span",null,[e.suffix]):typeof(e==null?void 0:e.suffix)=="function"?e.suffix():e==null?void 0:e.inputUnit})}}function Ft(){return{input:ht,textarea:kt,select:gt,treeSelect:Ct,date:mt,switch:yt,dateRange:bt,render:Vt,cascader:xt,currency:$t}}function Bt(e,n){n.render||(n.render=r=>r.input());const l=n.render({...Ft()});return{default:()=>l(e,n)}}function Et(e,n){return t.h(k.FormItem,{field:n.key,label:n.title},Bt(e,n))}function Ot(e){return typeof e=="function"||Object.prototype.toString.call(e)==="[object Object]"&&!t.isVNode(e)}const It=t.defineComponent({props:{form:{type:Object,required:!0}},setup(e){const n=oe(),l=e.form.map(o=>({...o,collapsed:!1})),r=Array.from(new Set(l.map(o=>o.group).flat().filter(Boolean))),a=l.reduce((o,s)=>((s.group?[s.group].flat():["默认"]).forEach(b=>{let f=o.find(c=>c.group===b);f||(f={group:b,instance:void 0,form:[]},o.push(f)),f.form.push(s)}),o),[]).sort((o,s)=>o.group==="默认"?-1:s.group==="默认"?1:o.group>s.group?-1:1),u=t.ref("默认");return st(()=>{const o=a.find(s=>s.group===u.value);if(o&&o.instance){const s=o.instance.formSource;o.instance.validate().then(()=>{n.close(s)})}}),{formItems:l,groups:r,groupForms:a,activeTab:u}},render(){const e=this.groupForms.find(n=>n.group===this.activeTab);if(this.groups.length){let n;return t.createVNode(k.Tabs,{"active-key":this.activeTab,"onUpdate:active-key":l=>this.activeTab=l},Ot(n=this.groupForms.map(l=>t.createVNode(k.TabPane,{title:l.group,key:l.group},{default:()=>[t.createVNode(D,{form:l.form,ref:r=>l.instance=r},null)]})))?n:{default:()=>[n]})}else return t.createVNode(D,{form:this.formItems,ref:n=>e.instance=n},null)}});function ne(e){return typeof e=="function"||Object.prototype.toString.call(e)==="[object Object]"&&!t.isVNode(e)}const D=t.defineComponent({props:{form:{type:Object,required:!0},value:{type:Object,required:!1},layout:{type:String,required:!1,default:"horizontal"},columns:{type:Number,required:!1},modelValue:{type:Object,required:!1},minWidth:{type:Number,required:!1,default:400},name:{type:String,required:!1,default:`form-${Math.random().toString(32).slice(2)}`},id:{type:String,required:!1,default:`form-${Math.random().toString(32).slice(2)}`},collapsedMode:{type:String,required:!1,default:"append"},submitable:{type:Boolean,required:!1,default:!1},searchable:{type:Boolean,required:!1,default:!1},footer:{type:Boolean,required:!1,default:!1}},emits:["submit","cancel","update:model-value"],expose:["formSource","updateFormField","updateFormSource","reset","validate"],setup(e,{emit:n}){const l=t.ref(),[r,a]=ft(e.form,e.modelValue||e.value),u=t.ref(e.columns||0),o=t.ref(!0),s=t.ref(),b=()=>o.value=!o.value;t.provide(re.id,e.id),t.provide(re.source,r);const f=()=>{n("submit",r.value),n("update:model-value",r.value)},c=t.computed(()=>e.form.filter(g=>o.value?!g.collapsed:!0).filter(g=>{switch(!0){case typeof g.visiable=="boolean":return g.visiable;case typeof g.visiable=="function":return g.visiable(r.value);default:return!0}})),i=t.computed(()=>{if(!u.value)return 1;const g=c.value.reduce((C,I)=>C+((I==null?void 0:I.span)||1),0);return u.value-g%u.value}),d=t.computed(()=>e.form.reduce((g,C)=>(C.rule&&(g[C.key]=C.rule),g),{}));function v(){var C;if(e.columns)return;const g=(C=l.value)==null?void 0:C.$el;g&&(u.value=Math.max(Math.floor(g.offsetWidth/e.minWidth),1))}function h(){var C;const g=(C=l.value)==null?void 0:C.$el;g&&(g.id=e.id)}function w(){s.value.open(It,{form:e.form},{title:"高级搜索",footer:!0,submitText:"搜索"}).then(g=>{g&&(p(g),f())})}t.onMounted(()=>{v(),h()});function p(g){a({...r.value,...g||{}})}function x(g,C){r.value[g]=C,p({...r.value})}function B(){var g;(g=l.value)==null||g.resetFields()}function V(){var g;return(g=l.value)==null?void 0:g.validate()}return t.onMounted(()=>{window&&window.addEventListener("resize",v)}),{formSource:r,formInstance:l,formColumns:u,formRules:d,formCollspased:o,formActiosSpan:i,formItems:c,toggleFormCollapsed:b,updateFormField:x,updateFormSource:p,reset:B,validate:V,onSubmitSuccess:f,openCollapsedDialog:w,modalInstance:s}},render(){const e=()=>{const n=[],l=this.footer?{span:this.formColumns}:{span:this.formActiosSpan};if(this.searchable&&(n.push(t.createVNode(k.Button,{type:"primary",htmlType:"submit"},{default:()=>[t.createTextVNode("搜索")]})),n.push(t.createVNode(k.Button,{type:"secondary",onClick:()=>{var r;return(r=this.formInstance)==null?void 0:r.resetFields()}},{default:()=>[t.createTextVNode("重置")]}))),this.submitable&&(n.push(t.createVNode(k.Button,{type:"primary",htmlType:"submit"},{default:()=>[t.createTextVNode("提交")]})),n.push(t.createVNode(k.Button,{type:"secondary",onClick:()=>this.$emit("cancel")},{default:()=>[t.createTextVNode("取消")]}))),this.form.some(r=>!!r.collapsed)&&(this.collapsedMode==="append"&&n.push(t.createVNode(k.Button,{onClick:this.toggleFormCollapsed},{default:()=>this.formCollspased?"展开":"收起",icon:()=>this.formCollspased?t.createVNode(Ce,null,null):t.createVNode(Fe,null,null)})),this.collapsedMode==="dialog"&&n.push(t.createVNode(k.Button,{onClick:this.openCollapsedDialog},{default:()=>"高级搜索",icon:()=>t.createVNode(Me,null,null)}))),this.$slots.actions&&n.push(...this.$slots.actions()),n.length)return t.createVNode(k.GridItem,l,{default:()=>[t.createVNode(k.FormItem,{contentClass:this.footer?"form-footer":""},{default:()=>[t.createVNode(k.Space,null,ne(n)?n:{default:()=>[n]})]})]})};return t.createVNode("div",{class:"form-render"},[t.createVNode(dt,{ref:n=>this.modalInstance=n},{default:()=>[t.createVNode(k.Form,t.mergeProps({name:this.name},{labelAlign:"right",layout:this.$props.layout,rules:this.formRules,onSubmitSuccess:this.onSubmitSuccess,"auto-label-width":!0,ref:n=>this.formInstance=n,model:this.formSource}),{default:()=>[t.createVNode(k.Grid,{cols:this.formColumns,"col-gap":24,"rol-gap":10},{default:()=>[this.formItems.filter(()=>this.formColumns!==0).map(n=>{let l;return t.createVNode(k.GridItem,{span:n.span},ne(l=Et(this.formSource,n))?l:{default:()=>[l]})}),e()]})]})]})])}});function _t(e){return e}function Mt(e){const n=t.getCurrentInstance(),l=t.ref();function r(){var u,o;const a=(o=(u=n==null?void 0:n.proxy)==null?void 0:u.$refs)==null?void 0:o[e];a&&(l.value=a)}return t.onMounted(r),t.onUpdated(r),l}const Rt={install(e,n){e.component("FormRender",D)}};exports.FormRenderResolver=fe.FormRenderResolver;exports.FormRender=D;exports.default=Rt;exports.defineForm=_t;exports.useForm=Mt;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const t=require("vue"),k=require("@arco-design/web-vue"),te=require("dayjs"),fe=require("./resolver.cjs"),me=Symbol("ArcoConfigProvider"),he="arco",ve="$arco",Y=e=>{var n,l,r;const a=t.getCurrentInstance(),u=t.inject(me,void 0);return`${(r=(l=u==null?void 0:u.prefixCls)!=null?l:(n=a==null?void 0:a.appContext.config.globalProperties[ve])==null?void 0:n.classPrefix)!=null?r:he}-${e}`},pe=Object.prototype.toString;function X(e){return pe.call(e)==="[object Number]"&&e===e}var K=(e,n)=>{for(const[l,r]of n)e[l]=r;return e};const ge=t.defineComponent({name:"IconDown",props:{size:{type:[Number,String]},strokeWidth:{type:Number,default:4},strokeLinecap:{type:String,default:"butt",validator:e=>["butt","round","square"].includes(e)},strokeLinejoin:{type:String,default:"miter",validator:e=>["arcs","bevel","miter","miter-clip","round"].includes(e)},rotate:Number,spin:Boolean},emits:{click:e=>!0},setup(e,{emit:n}){const l=Y("icon"),r=t.computed(()=>[l,`${l}-down`,{[`${l}-spin`]:e.spin}]),a=t.computed(()=>{const o={};return e.size&&(o.fontSize=X(e.size)?`${e.size}px`:e.size),e.rotate&&(o.transform=`rotate(${e.rotate}deg)`),o});return{cls:r,innerStyle:a,onClick:o=>{n("click",o)}}}}),ye=["stroke-width","stroke-linecap","stroke-linejoin"],be=t.createElementVNode("path",{d:"M39.6 17.443 24.043 33 8.487 17.443"},null,-1),ke=[be];function we(e,n,l,r,a,u){return t.openBlock(),t.createElementBlock("svg",{viewBox:"0 0 48 48",fill:"none",xmlns:"http://www.w3.org/2000/svg",stroke:"currentColor",class:t.normalizeClass(e.cls),style:t.normalizeStyle(e.innerStyle),"stroke-width":e.strokeWidth,"stroke-linecap":e.strokeLinecap,"stroke-linejoin":e.strokeLinejoin,onClick:n[0]||(n[0]=(...o)=>e.onClick&&e.onClick(...o))},ke,14,ye)}var W=K(ge,[["render",we]]);const Ce=Object.assign(W,{install:(e,n)=>{var l;const r=(l=n==null?void 0:n.iconPrefix)!=null?l:"";e.component(r+W.name,W)}}),Se=t.defineComponent({name:"IconUp",props:{size:{type:[Number,String]},strokeWidth:{type:Number,default:4},strokeLinecap:{type:String,default:"butt",validator:e=>["butt","round","square"].includes(e)},strokeLinejoin:{type:String,default:"miter",validator:e=>["arcs","bevel","miter","miter-clip","round"].includes(e)},rotate:Number,spin:Boolean},emits:{click:e=>!0},setup(e,{emit:n}){const l=Y("icon"),r=t.computed(()=>[l,`${l}-up`,{[`${l}-spin`]:e.spin}]),a=t.computed(()=>{const o={};return e.size&&(o.fontSize=X(e.size)?`${e.size}px`:e.size),e.rotate&&(o.transform=`rotate(${e.rotate}deg)`),o});return{cls:r,innerStyle:a,onClick:o=>{n("click",o)}}}}),xe=["stroke-width","stroke-linecap","stroke-linejoin"],Ne=t.createElementVNode("path",{d:"M39.6 30.557 24.043 15 8.487 30.557"},null,-1),Ve=[Ne];function $e(e,n,l,r,a,u){return t.openBlock(),t.createElementBlock("svg",{viewBox:"0 0 48 48",fill:"none",xmlns:"http://www.w3.org/2000/svg",stroke:"currentColor",class:t.normalizeClass(e.cls),style:t.normalizeStyle(e.innerStyle),"stroke-width":e.strokeWidth,"stroke-linecap":e.strokeLinecap,"stroke-linejoin":e.strokeLinejoin,onClick:n[0]||(n[0]=(...o)=>e.onClick&&e.onClick(...o))},Ve,14,xe)}var q=K(Se,[["render",$e]]);const Fe=Object.assign(q,{install:(e,n)=>{var l;const r=(l=n==null?void 0:n.iconPrefix)!=null?l:"";e.component(r+q.name,q)}}),Be=t.defineComponent({name:"IconSearch",props:{size:{type:[Number,String]},strokeWidth:{type:Number,default:4},strokeLinecap:{type:String,default:"butt",validator:e=>["butt","round","square"].includes(e)},strokeLinejoin:{type:String,default:"miter",validator:e=>["arcs","bevel","miter","miter-clip","round"].includes(e)},rotate:Number,spin:Boolean},emits:{click:e=>!0},setup(e,{emit:n}){const l=Y("icon"),r=t.computed(()=>[l,`${l}-search`,{[`${l}-spin`]:e.spin}]),a=t.computed(()=>{const o={};return e.size&&(o.fontSize=X(e.size)?`${e.size}px`:e.size),e.rotate&&(o.transform=`rotate(${e.rotate}deg)`),o});return{cls:r,innerStyle:a,onClick:o=>{n("click",o)}}}}),Ee=["stroke-width","stroke-linecap","stroke-linejoin"],Oe=t.createElementVNode("path",{d:"M33.072 33.071c6.248-6.248 6.248-16.379 0-22.627-6.249-6.249-16.38-6.249-22.628 0-6.248 6.248-6.248 16.379 0 22.627 6.248 6.248 16.38 6.248 22.628 0Zm0 0 8.485 8.485"},null,-1),Ie=[Oe];function _e(e,n,l,r,a,u){return t.openBlock(),t.createElementBlock("svg",{viewBox:"0 0 48 48",fill:"none",xmlns:"http://www.w3.org/2000/svg",stroke:"currentColor",class:t.normalizeClass(e.cls),style:t.normalizeStyle(e.innerStyle),"stroke-width":e.strokeWidth,"stroke-linecap":e.strokeLinecap,"stroke-linejoin":e.strokeLinejoin,onClick:n[0]||(n[0]=(...o)=>e.onClick&&e.onClick(...o))},Ie,14,Ee)}var G=K(Be,[["render",_e]]);const Me=Object.assign(G,{install:(e,n)=>{var l;const r=(l=n==null?void 0:n.iconPrefix)!=null?l:"";e.component(r+G.name,G)}}),A=Symbol("__MODAL__");function le(e){return t.getCurrentScope()?(t.onScopeDispose(e),!0):!1}function S(e){return typeof e=="function"?e():t.unref(e)}const ae=typeof window<"u"&&typeof document<"u";typeof WorkerGlobalScope<"u"&&globalThis instanceof WorkerGlobalScope;const Re=Object.prototype.toString,je=e=>Re.call(e)==="[object Object]",ze=()=>{};function Te(e){return t.getCurrentInstance()}function Le(e,n={}){if(!t.isRef(e))return t.toRefs(e);const l=Array.isArray(e.value)?Array.from({length:e.value.length}):{};for(const r in e.value)l[r]=t.customRef(()=>({get(){return e.value[r]},set(a){var u;if((u=S(n.replaceRef))==null||u)if(Array.isArray(e.value)){const o=[...e.value];o[r]=a,e.value=o}else{const o={...e.value,[r]:a};Object.setPrototypeOf(o,Object.getPrototypeOf(e.value)),e.value=o}else e.value[r]=a}}));return l}function Pe(e,n=!0,l){Te()?t.onMounted(e,l):n?e():t.nextTick(e)}function _(e){var n;const l=S(e);return(n=l==null?void 0:l.$el)!=null?n:l}const U=ae?window:void 0;function H(...e){let n,l,r,a;if(typeof e[0]=="string"||Array.isArray(e[0])?([l,r,a]=e,n=U):[n,l,r,a]=e,!n)return ze;Array.isArray(l)||(l=[l]),Array.isArray(r)||(r=[r]);const u=[],o=()=>{u.forEach(c=>c()),u.length=0},s=(c,i,d,v)=>(c.addEventListener(i,d,v),()=>c.removeEventListener(i,d,v)),b=t.watch(()=>[_(n),S(a)],([c,i])=>{if(o(),!c)return;const d=je(i)?{...i}:i;u.push(...l.flatMap(v=>r.map(h=>s(c,v,h,d))))},{immediate:!0,flush:"post"}),f=()=>{b(),o()};return le(f),f}function De(){const e=t.ref(!1),n=t.getCurrentInstance();return n&&t.onMounted(()=>{e.value=!0},n),e}function Ae(e){const n=De();return t.computed(()=>(n.value,!!e()))}function Ue(e,n={}){var l,r;const{pointerTypes:a,preventDefault:u,stopPropagation:o,exact:s,onMove:b,onEnd:f,onStart:c,initialValue:i,axis:d="both",draggingElement:v=U,containerElement:h,handle:w=e}=n,p=t.ref((l=S(i))!=null?l:{x:0,y:0}),x=t.ref(),B=y=>a?a.includes(y.pointerType):!0,N=y=>{S(u)&&y.preventDefault(),S(o)&&y.stopPropagation()},g=y=>{var E;if(S(n.disabled)||!B(y)||S(s)&&y.target!==S(e))return;const V=S(h),O=(E=V==null?void 0:V.getBoundingClientRect)==null?void 0:E.call(V),$=S(e).getBoundingClientRect(),T={x:y.clientX-(V?$.left-O.left+V.scrollLeft:$.left),y:y.clientY-(V?$.top-O.top+V.scrollTop:$.top)};(c==null?void 0:c(T,y))!==!1&&(x.value=T,N(y))},C=y=>{if(S(n.disabled)||!B(y)||!x.value)return;const E=S(h),V=S(e).getBoundingClientRect();let{x:O,y:$}=p.value;(d==="x"||d==="both")&&(O=y.clientX-x.value.x,E&&(O=Math.min(Math.max(0,O),E.scrollWidth-V.width))),(d==="y"||d==="both")&&($=y.clientY-x.value.y,E&&($=Math.min(Math.max(0,$),E.scrollHeight-V.height))),p.value={x:O,y:$},b==null||b(p.value,y),N(y)},I=y=>{S(n.disabled)||!B(y)||x.value&&(x.value=void 0,f==null||f(p.value,y),N(y))};if(ae){const y={capture:(r=n.capture)!=null?r:!0};H(w,"pointerdown",g,y),H(v,"pointermove",C,y),H(v,"pointerup",I,y)}return{...Le(p),position:p,isDragging:t.computed(()=>!!x.value),style:t.computed(()=>`left:${p.value.x}px;top:${p.value.y}px;`)}}function We(e,n,l={}){const{window:r=U,...a}=l;let u;const o=Ae(()=>r&&"ResizeObserver"in r),s=()=>{u&&(u.disconnect(),u=void 0)},b=t.computed(()=>Array.isArray(e)?e.map(i=>_(i)):[_(e)]),f=t.watch(b,i=>{if(s(),o.value&&r){u=new ResizeObserver(n);for(const d of i)d&&u.observe(d,a)}},{immediate:!0,flush:"post"}),c=()=>{s(),f()};return le(c),{isSupported:o,stop:c}}function M(e,n={width:0,height:0},l={}){const{window:r=U,box:a="content-box"}=l,u=t.computed(()=>{var i,d;return(d=(i=_(e))==null?void 0:i.namespaceURI)==null?void 0:d.includes("svg")}),o=t.ref(n.width),s=t.ref(n.height),{stop:b}=We(e,([i])=>{const d=a==="border-box"?i.borderBoxSize:a==="content-box"?i.contentBoxSize:i.devicePixelContentBoxSize;if(r&&u.value){const v=_(e);if(v){const h=r.getComputedStyle(v);o.value=Number.parseFloat(h.width),s.value=Number.parseFloat(h.height)}}else if(d){const v=Array.isArray(d)?d:[d];o.value=v.reduce((h,{inlineSize:w})=>h+w,0),s.value=v.reduce((h,{blockSize:w})=>h+w,0)}else o.value=i.contentRect.width,s.value=i.contentRect.height},l);Pe(()=>{const i=_(e);i&&(o.value="offsetWidth"in i?i.offsetWidth:n.width,s.value="offsetHeight"in i?i.offsetHeight:n.height)});const f=t.watch(()=>_(e),i=>{o.value=i?n.width:0,s.value=i?n.height:0});function c(){b(),f()}return{width:o,height:s,stop:c}}const qe=e=>(t.pushScopeId("data-v-9a7af353"),e=e(),t.popScopeId(),e),Ge={class:"title text-16px font-bold"},He={class:"action"},Ye=["form"],Xe={key:2,class:"modal-loading"},Ke=qe(()=>t.createElementVNode("div",{class:"lds-ring"},[t.createElementVNode("div"),t.createElementVNode("div"),t.createElementVNode("div"),t.createElementVNode("div")],-1)),Je=[Ke],Qe={name:"ModalContainer",inheritAttrs:!0},Ze=t.defineComponent({...Qe,props:{id:{},form:{},component:{},componentProps:{},width:{},height:{},maxWidth:{},maxHeight:{default:90},sizes:{},size:{default:"middle"},fullscreen:{type:Boolean},title:{},header:{type:Boolean,default:!0},footer:{type:Boolean,default:!1},closeable:{type:Boolean,default:!0},esc:{type:Boolean,default:!1},maskClosable:{type:Boolean,default:!1},draggable:{type:Boolean,default:!1},mode:{default:"dialog"},position:{default:"right"},type:{},offset:{},backgroundColor:{},bodyStyle:{},submitText:{default:"确定"},cancelText:{default:"取消"},zIndex:{default:1e3}},emits:["submit"],setup(e,{expose:n,emit:l}){t.useCssVars(m=>({"5751bf6b":m.zIndex}));const r=e,a=l,u=t.inject(A),o=t.ref(!1);let s=0,b=0;const f=t.shallowRef(),c=t.shallowRef(),i=t.shallowRef(),d=t.shallowRef(),v=t.shallowRef(),h=t.shallowRef(),{height:w}=M(f),{height:p}=M(i,void 0,{box:"border-box"}),{height:x}=M(d,void 0,{box:"border-box"}),{height:B}=M(v),{height:N}=M(h),{x:g,y:C}=Ue(i,{initialValue:{x:0,y:0}});function I(){u==null||u.close(r.id)}function y(m){return typeof m=="number"?`${m}px`:m}const E=t.computed(()=>{const m={};return r.mode==="dialog"&&(m.justifyContent="center"),r.mode==="drawer"&&(m.justifyContent={left:"flex-start",right:"flex-end",top:"flex-start",bottom:"flex-end"}[r.position],m.flexDirection={left:"row",right:"row",top:"column",bottom:"column"}[r.position]),m}),V=t.computed(()=>{const m={};return r.mode==="drawer"&&["top","bottom"].includes(r.position)?m.maxHeight=y(r.maxHeight):(m.width=y(r.sizes[r.size]),m.maxWidth=y(r.maxWidth)),r.width&&(m.width=y(r.width)),r.height&&(m.height=y(r.height)),r.fullscreen&&(m.maxWidth="unset",m.width="100%",m.position="fixed",m.top=0,m.left=0,m.bottom=0,m.right=0,m.borderRadius=0),r.draggable&&!r.fullscreen&&r.mode==="dialog"&&(m.transform=`translate3d(${g.value-s}px, ${C.value-b}px, 0px)`),r.mode==="drawer"&&(m.borderRadius=0,["left","right"].includes(r.position)?m.height="100%":m.width="100%"),r.offset&&r.mode==="dialog"&&(m.marginLeft=`${r.offset.x||0}px`,m.marginTop=`${r.offset.y||0}px`),r.backgroundColor&&(m.backgroundColor=r.backgroundColor),m}),O=t.computed(()=>{const m={};return r.draggable&&!r.fullscreen&&r.mode==="dialog"&&(m.cursor="move"),m}),$=t.computed(()=>{const m={},F=B.value+N.value+p.value+x.value,ee=Math.floor(w.value*(Number(y(r.maxHeight).replace("%",""))/100));return r.maxHeight&&(m.maxHeight=`${ee-F}px`),r.mode==="drawer"&&(m.maxHeight="unset",["left","right"].includes(r.position)&&(m.height=`${w.value-F}px`)),r.fullscreen&&(m.maxHeight="unset",m.height=`calc(100% - ${F}px)`),r.type!=="component"&&(m.padding="0"),r.bodyStyle&&Object.assign(m,r.bodyStyle),m});function T(){const m=c.value;if(r.form&&m){const F=m.querySelector(`form[name="${r.form}"]`);F&&F.dispatchEvent(new Event("submit"))}a("submit")}function ce(){u==null||u.close(r.id)}function ue(){window&&window.addEventListener("resize",()=>{t.triggerRef(f),t.triggerRef(c),c.value&&(s=c.value.offsetLeft,b=c.value.offsetTop)})}function ie(){if(r.closeable&&r.esc){const m=({key:F})=>{F==="Escape"&&(u==null||u.close(r.id),window.removeEventListener("keydown",m))};window.addEventListener("keydown",m)}}function de(){s=c.value.offsetLeft,b=c.value.offsetTop}t.onMounted(()=>{ie(),ue()}),t.onUnmounted(()=>{});function se(){return o.value=!0,()=>Z()}function Z(){o.value=!1}return n({showLoading:se,hideLoading:Z}),(m,F)=>(t.openBlock(),t.createElementBlock("div",{ref_key:"wrapperRef",ref:f,class:"modal-wrapper",style:t.normalizeStyle(E.value),onClick:F[0]||(F[0]=t.withModifiers(ee=>m.maskClosable&&I(),["self"]))},[t.createElementVNode("div",{ref_key:"contentRef",ref:c,class:t.normalizeClass(["modal-content",{[`${m.mode}-mode`]:!0,[`${m.position}-position`]:!0}]),style:t.normalizeStyle(V.value)},[m.header?(t.openBlock(),t.createElementBlock("div",{key:0,ref_key:"headerRef",ref:i,class:"modal-header",style:t.normalizeStyle(O.value),onMousedown:de},[t.createElementVNode("div",Ge,t.toDisplayString(m.title),1),t.createElementVNode("div",He,[m.closeable?(t.openBlock(),t.createElementBlock("div",{key:0,class:"i-icon-park-outline:close block cursor-pointer",onClick:I})):t.createCommentVNode("",!0)])],36)):t.createCommentVNode("",!0),t.createElementVNode("div",{id:"modal-header-slot",ref_key:"headerSlotRef",ref:v},null,512),t.createElementVNode("div",{class:"modal-body",style:t.normalizeStyle($.value)},[(t.openBlock(),t.createBlock(t.resolveDynamicComponent(m.component),t.normalizeProps(t.guardReactiveProps(m.componentProps)),null,16))],4),t.createElementVNode("div",{id:"modal-footer-slot",ref_key:"footerSlotRef",ref:h},null,512),m.footer?(t.openBlock(),t.createElementBlock("div",{key:1,ref_key:"footerRef",ref:d,class:"modal-footer space-x-2"},[t.createElementVNode("button",{class:"cancel-button",type:"button",onClick:ce},t.toDisplayString(m.cancelText),1),t.createElementVNode("button",{class:"submit-button",form:m.form,type:"submit",onClick:T},t.toDisplayString(m.submitText),9,Ye)],512)):t.createCommentVNode("",!0),o.value?(t.openBlock(),t.createElementBlock("div",Xe,Je)):t.createCommentVNode("",!0)],6)],4))}}),J=(e,n)=>{const l=e.__vccOpts||e;for(const[r,a]of n)l[r]=a;return l},et=J(Ze,[["__scopeId","data-v-9a7af353"]]),tt={class:"modal-dialog"},rt={class:"dialog-body"},nt={class:"dialog-title"},lt={class:"dialog-content"},at=t.defineComponent({__name:"modal-dialog",props:{type:{},title:{},content:{},okText:{default:"确定"},cancelText:{default:"取消"},onOk:{},onCancel:{},footer:{}},setup(e){const n=e,l=oe(),r=t.computed(()=>n.title?n.title:{confirm:"提示",info:"提示",warning:"警告",error:"错误",success:"成功"}[n.type]);async function a(){n.onOk&&await n.onOk(),l.close()}async function u(){n.onCancel&&await n.onCancel(),l.close()}return(o,s)=>(t.openBlock(),t.createElementBlock("section",tt,[t.createElementVNode("div",rt,[t.createElementVNode("div",nt,t.toDisplayString(r.value),1),t.createElementVNode("div",lt,t.toDisplayString(o.content),1)]),t.createElementVNode("div",{class:"dialog-footer space-x-2",style:t.normalizeStyle(o.type==="confirm"?{"justify-content":"end"}:{"border-top":"none"})},[o.footer?(t.openBlock(),t.createBlock(t.resolveDynamicComponent(o.footer),{key:0})):(t.openBlock(),t.createElementBlock(t.Fragment,{key:1},[t.createElementVNode("button",{class:"submit-button",type:"submit",onClick:a},t.toDisplayString(o.okText),1),o.type==="confirm"?(t.openBlock(),t.createElementBlock("button",{key:0,class:"cancel-button",type:"button",onClick:u},t.toDisplayString(o.cancelText),1)):t.createCommentVNode("",!0)],64))],4)]))}}),ot=J(at,[["__scopeId","data-v-0c6b8db2"]]),ct={key:0,class:"modal-teleport"},ut={name:"ModalProvider",inheritAttrs:!0},it=t.defineComponent({...ut,props:{appendToBody:{type:[Boolean,String],default:!1},sizes:{default:()=>({small:"50%",middle:"70%",large:"90%"})},maxWidth:{default:"90%"},maxHeight:{default:"90%"},offset:{default:()=>({x:0,y:0})}},setup(e,{expose:n}){const l=t.shallowRef([]),r=t.ref(!1),a=t.getCurrentInstance();function u(d,v={},h={}){const w=t.defineAsyncComponent(()=>Promise.resolve(typeof d=="string"?ot:d));typeof d=="string"&&(v.type=d,h.size="small",h.fullscreen=!1,h.mode="dialog",h.footer=!1,h.header=!1);const p=Math.random().toString(32).slice(2),x=Object.assign({zIndex:typeof d=="string"?1100:1e3},h),B=new Promise((N,g)=>{l.value.push({id:p,component:w,props:v||{},options:{...x,type:typeof d=="string"?d:"component"},resolve:N,reject:g,listeners:[]}),t.triggerRef(l)}).catch(N=>N==="CANCEL"?new Promise(()=>{}):Promise.reject(N));return Object.assign(B,{close:()=>o(p)})}function o(d,v){const h=l.value.findIndex(p=>p.id===d);if(h<0)return;const w=l.value[h];v===void 0?w==null||w.reject("CANCEL"):w==null||w.resolve(v),l.value.splice(h,1),t.triggerRef(l)}function s(){!l.value||l.value.length===0||(l.value.forEach(d=>{d==null||d.reject("CANCEL")}),l.value=[],t.triggerRef(l))}function b(d,v){const h=l.value.find(p=>p.id===d);if(!h)return;const w=h.listeners.find(p=>p.event===v);w&&w.callback({open:u,close:p=>o(h.id,p),closeAll:s,showLoading:()=>f(h.id),hideLoading:()=>c(h.id),confirm:p=>u("confirm",p),success:p=>u("success",p),error:p=>u("error",p),warning:p=>u("warning",p),info:p=>u("info",p)})}function f(d){if(!a)return;const[v]=a.refs[`modal-container_${d}`];if(v)return v.showLoading()}function c(d){if(!a)return;const[v]=a.refs[`modal-container_${d}`];if(v)return v.hideLoading()}function i(d,v,h){const w=l.value.find(p=>p.id===d);w&&w.listeners.push({event:v,callback:h})}return t.provide(A,{open:u,close:o,closeAll:s,addEventListener:i}),n({elements:l,open:u,close:o,closeAll:s}),t.onMounted(()=>{r.value=!0}),(d,v)=>(t.openBlock(),t.createElementBlock(t.Fragment,null,[t.renderSlot(d.$slots,"default",{},void 0,!0),r.value?(t.openBlock(),t.createElementBlock("div",ct,[(t.openBlock(),t.createBlock(t.Teleport,{disabled:!d.appendToBody,to:typeof d.appendToBody=="string"?d.appendToBody:"body"},[t.createVNode(t.TransitionGroup,{name:"modal-fade"},{default:t.withCtx(()=>[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(l.value,h=>(t.openBlock(),t.createBlock(et,t.mergeProps({id:h.id,key:h.id,ref_for:!0,ref:`modal-container_${h.id}`,component:h.component,"component-props":h.props,"max-height":d.maxHeight,"max-width":d.maxWidth,offset:d.offset,sizes:d.sizes},h.options,{onSubmit:()=>b(h.id,"submit")}),null,16,["id","component","component-props","max-height","max-width","offset","sizes","onSubmit"]))),128))]),_:1})],8,["disabled","to"]))])):t.createCommentVNode("",!0)],64))}}),dt=J(it,[["__scopeId","data-v-756481fe"]]);function P(e,n){var l,r;let a=e==null?void 0:e.parent;for(;a&&((l=a==null?void 0:a.type)==null?void 0:l.name)!==n;)a=a.parent;return((r=a==null?void 0:a.type)==null?void 0:r.name)===n?a:null}function oe(){const e=t.inject(A),n=t.getCurrentInstance();function l(r,a,u){if(!e)throw new Error("Not Found Modal Provider Component");return e.open(r,a,u)}return{open:l,close(r){var a;if(!e)throw new Error("Not Found Modal Provider Component");const u=P(n,"ModalContainer"),o=(a=u==null?void 0:u.props)==null?void 0:a.id;if(!o)throw new Error("Not Found Current Modal Container");e.close(o,r)},closeAll(){if(!e)throw new Error("Not Found Modal Provider Component");e.closeAll()},showLoading(){var r;if(!e)throw new Error("Not Found Modal Provider Component");const a=P(n,"ModalContainer");if(!((r=a==null?void 0:a.props)!=null&&r.id))throw new Error("Not Found Current Modal Container");a!=null&&a.exposed&&(a==null||a.exposed.showLoading())},hideLoading(){var r;if(!e)throw new Error("Not Found Modal Provider Component");const a=P(n,"ModalContainer");if(!((r=a==null?void 0:a.props)!=null&&r.id))throw new Error("Not Found Current Modal Container");a!=null&&a.exposed&&(a==null||a.exposed.hideLoading())},confirm(r){return this.open("confirm",r)},info(r){return this.open("info",r)},error(r){return this.open("error",r)},warning(r){return this.open("warning",r)},success(r){return this.open("success",r)}}}function st(e){var n;const l=t.inject(A),r=t.getCurrentInstance(),a=P(r,"ModalContainer"),u=(n=a==null?void 0:a.props)==null?void 0:n.id;l&&u&&l.addEventListener(u,"submit",e)}const re={id:Symbol("ID"),source:Symbol("Source")};function ft(e,n){const l=t.ref({});return e==null||e.forEach(a=>{let u=null;a.default&&(u=(typeof a.default=="function"?a.default():a.default)||null),n&&n[a.key]!==void 0&&(u=n[a.key]),l.value[a.key]=u}),[l,a=>{l.value=a}]}function mt(e){function n(l,r){return e!=null&&e.disabledDate?e.disabledDate(l,r):!1}return(l,r)=>{switch(e==null?void 0:e.type){case"week":return t.createVNode(k.WeekPicker,{modelValue:l[r.key],"onUpdate:modelValue":a=>l[r.key]=a,"disabled-date":n,format:e==null?void 0:e.labelFormat,"value-format":e==null?void 0:e.valueFormat},null);case"month":return t.createVNode(k.MonthPicker,{modelValue:l[r.key],"onUpdate:modelValue":a=>l[r.key]=a,"disabled-date":n,format:e==null?void 0:e.labelFormat,"value-format":e==null?void 0:e.valueFormat},null);case"quarter":return t.createVNode(k.QuarterPicker,{modelValue:l[r.key],"onUpdate:modelValue":a=>l[r.key]=a,"disabled-date":n,format:e==null?void 0:e.labelFormat,"value-format":e==null?void 0:e.valueFormat},null);case"year":return t.createVNode(k.YearPicker,{modelValue:l[r.key],"onUpdate:modelValue":a=>l[r.key]=a,"disabled-date":n,format:e==null?void 0:e.labelFormat,"value-format":e==null?void 0:e.valueFormat},null);case"date":default:return t.createVNode(k.DatePicker,{"disabled-input":!0,modelValue:l[r.key],"onUpdate:modelValue":a=>l[r.key]=a,"disabled-date":n,format:e==null?void 0:e.labelFormat,"value-format":e==null?void 0:e.valueFormat},null)}}}function ht(e){return(n,l)=>{switch(e==null?void 0:e.type){case"number":return t.createVNode(k.InputNumber,{modelValue:n[l.key],"onUpdate:modelValue":r=>n[l.key]=r,hideButton:!0,"read-only":e==null?void 0:e.readonly,placeholder:e==null?void 0:e.placeholder,allowClear:e==null?void 0:e.clearable},null);case"string":default:return t.createVNode(k.Input,{modelValue:n[l.key],"onUpdate:modelValue":r=>n[l.key]=r,placeholder:e==null?void 0:e.placeholder,readonly:e==null?void 0:e.readonly,allowClear:e==null?void 0:e.clearable},null)}}}typeof WorkerGlobalScope<"u"&&globalThis instanceof WorkerGlobalScope;function Q(e,n,l){const r=t.watch(e,(...a)=>(t.nextTick(()=>r()),n(...a)),l);return r}function vt(e){return typeof e=="function"||Object.prototype.toString.call(e)==="[object Object]"&&!t.isVNode(e)}const R=new WeakMap;function pt(){const e=t.ref(new Map);return[e,l=>e.value=l]}function gt(e){let n,l=!1;const[r,a]=pt(),u=f=>{if(e.onChange&&e.onChange(f),!e.autoSumbit||!n)return;let c=n;for(;c&&c.$el.tagName!=="FORM";)c=c.$parent;c&&c.$el&&c.$el.dispatchEvent(new Event("submit"))},o=(f,c)=>{const i=f();i instanceof Promise?i.then(c):c(i)},s=async()=>{const f=R.get(e.options);switch(typeof f){case"function":R.set(e.options,a);return;case"object":a(f);return}R.set(e.options,a),o(e.options,c=>{const i=R.get(e.options);R.set(e.options,c),i(c)})},b=()=>{o(e.options,f=>{a(f)})};switch(!0){case e.options instanceof Function:{e.cache!==!1?s():b();break}case t.isRef(e.options):{Q(()=>e.options,()=>{a(e.options.value)},{immediate:!0});break}default:r.value=e.options}return(f,c)=>{let i;return e.default&&!l&&(f[c.key]=e.default,l=!0),t.createVNode(k.Select,{ref:d=>n=d,multiple:e.multiple,modelValue:f[c.key],"onUpdate:modelValue":d=>f[c.key]=d,placeholder:e.placeholder,allowClear:e.clearable,allowSearch:e.searchable,"allow-create":e.createable,maxTagCount:e.maxTagCount??2,onChange:u},vt(i=Array.from(r.value.entries()).map(([d,v])=>t.createVNode(k.Option,{key:d,value:d,label:v},null)))?i:{default:()=>[i]})}}function yt(e){function n(){e!=null&&e.autoSumbit}return(l,r)=>(e!=null&&e.default&&(l[r.key]=e.default),t.createVNode(k.Switch,{modelValue:l[r.key],"onUpdate:modelValue":a=>l[r.key]=a,checkedText:(e==null?void 0:e.openLabel)??"是",uncheckedText:(e==null?void 0:e.closeLabel)??"否",checkedValue:(e==null?void 0:e.openValue)??!0,uncheckedValue:(e==null?void 0:e.closeValue)??!1,onChange:n},null))}function bt(e){return(n,l)=>{let r=[];function a(s){r=s}function u(s){if(s&&s.length===2){const[b,f]=s.sort(),c=te(b).startOf("days"),i=te(f).endOf("days");n[l.key]=[c.format((e==null?void 0:e.valueFormat)||"YYYY-MM-DD"),i.format((e==null?void 0:e.valueFormat)||"YYYY-MM-DD")]}}function o(s){return e!=null&&e.disabledDate?e.disabledDate(r.filter(Boolean),s):!1}return t.createVNode("div",null,[t.createVNode(k.RangePicker,{"disabled-input":!0,style:{width:"300px"},modelValue:n[l.key],"onUpdate:modelValue":s=>n[l.key]=s,onSelect:a,onChange:u,mode:e==null?void 0:e.type,allowClear:e==null?void 0:e.clearable,"disabled-date":o,format:e==null?void 0:e.labelFormat,"value-format":e==null?void 0:e.valueFormat},null)])}}function kt(e){return(n,l)=>t.createVNode(k.Textarea,{modelValue:n[l.key],"onUpdate:modelValue":r=>n[l.key]=r,placeholder:e==null?void 0:e.placeholder,autoSize:e==null?void 0:e.autosize,maxLength:e==null?void 0:e.maxLength},null)}const j=new WeakMap;function wt(){const e=t.ref([]);return[e,l=>e.value=l]}function Ct(e){let n,l=!1;const[r,a]=wt(),u=()=>{if(!e.autoSumbit||!n)return;let c=n;for(;c&&c.$el.tagName!=="FORM";)c=c.$parent;c&&c.$el&&c.$el.dispatchEvent(new Event("submit"))},o=(c,i)=>{const d=c();d instanceof Promise?d.then(i):i(d)},s=async()=>{const c=j.get(e.options);switch(typeof c){case"function":j.set(e.options,a);return;case"object":a(c);return}j.set(e.options,a),o(e.options,i=>{const d=j.get(e.options);j.set(e.options,i),d(i)})},b=()=>{o(e.options,c=>{a(c)})};switch(!0){case e.options instanceof Function:{e.cache!==!1?s():b();break}case t.isRef(e.options):{Q(e.options,()=>{a(e.options.value)},{immediate:!0});break}default:r.value=e.options}function f(c,i){var h;const d=((h=e.fieldNames)==null?void 0:h.title)||"title",v=i[d];return v?v.toLowerCase().includes(c.toLowerCase()):!1}return(c,i)=>(e.default&&!l&&(c[i.key]=e.default,l=!0),t.createVNode(k.TreeSelect,{ref:d=>n=d,multiple:e.multiple,modelValue:c[i.key],"onUpdate:modelValue":d=>c[i.key]=d,placeholder:e.placeholder,allowClear:e.clearable,allowSearch:e.searchable,maxTagCount:e.maxTagCount??2,onChange:u,filterTreeNode:f,data:r.value,fieldNames:e.fieldNames,treeProps:e.treeProps},{...e.slots}))}const z=new WeakMap;function St(){const e=t.ref([]);return[e,l=>e.value=l]}function xt(e){let n,l=!1;const[r,a]=St(),u=()=>{if(!e.autoSumbit||!n)return;let f=n;for(;f&&f.$el.tagName!=="FORM";)f=f.$parent;f&&f.$el&&f.$el.dispatchEvent(new Event("submit"))},o=(f,c)=>{const i=f();i instanceof Promise?i.then(c):c(i)},s=async()=>{const f=z.get(e.options);switch(typeof f){case"function":z.set(e.options,a);return;case"object":a(f);return}z.set(e.options,a),o(e.options,c=>{const i=z.get(e.options);z.set(e.options,c),i(c)})},b=()=>{o(e.options,f=>{a(f)})};switch(!0){case e.options instanceof Function:{e.cache!==!1?s():b();break}case t.isRef(e.options):{Q(e.options,()=>{a(e.options.value)},{immediate:!0});break}default:r.value=e.options}return(f,c)=>(e.default&&!l&&(f[c.key]=e.default,l=!0),t.createVNode(k.Cascader,{pathMode:e.pathMode,ref:i=>n=i,multiple:e.multiple,modelValue:f[c.key],"onUpdate:modelValue":i=>f[c.key]=i,placeholder:e.placeholder,allowClear:e.clearable,allowSearch:e.searchable,maxTagCount:e.maxTagCount??2,onChange:u,options:r.value},null))}function Nt(e){return n=>e(n)}const Vt={thousands:!0,inputUnit:"元",outputUnit:"元"},L={分:10**0,元:10**2,万:10**4};function $t(e){e={...Vt,...e||{}};const n=o=>{if(o==null)return;if((e==null?void 0:e.inputUnit)===(e==null?void 0:e.outputUnit))return o;const s=L[e.outputUnit]/L[e.inputUnit];return o*s},l=o=>{if(o==null)return;if((e==null?void 0:e.inputUnit)===(e==null?void 0:e.outputUnit))return o;const s=L[e.inputUnit]/L[e.outputUnit];return o*s},r=o=>{const s=o.split(".");return s[0]=s[0].replace(/\B(?=(\d{3})+(?!\d))/g,","),s.join(".")},a=o=>{const s=o;return e!=null&&e.thousands?r(s):s},u=o=>o.replace(/,/g,"");return(o,s)=>{const b=t.ref(n(o[s.key]));return t.watch(b,f=>{o[s.key]=l(f)}),t.createVNode(k.InputNumber,{modelValue:b.value,"onUpdate:modelValue":f=>b.value=f,formatter:a,parser:u,precision:e==null?void 0:e.precision,hideButton:!0,"read-only":e==null?void 0:e.readonly,placeholder:e==null?void 0:e.placeholder,allowClear:e==null?void 0:e.clearable},{prefix:(e==null?void 0:e.prefix)&&(()=>typeof(e==null?void 0:e.prefix)=="string"?t.createVNode("span",null,[e.prefix]):e.prefix()),suffix:()=>typeof(e==null?void 0:e.suffix)=="string"?t.createVNode("span",null,[e.suffix]):typeof(e==null?void 0:e.suffix)=="function"?e.suffix():e==null?void 0:e.inputUnit})}}function Ft(){return{input:ht,textarea:kt,select:gt,treeSelect:Ct,date:mt,switch:yt,dateRange:bt,render:Nt,cascader:xt,currency:$t}}function Bt(e,n){n.render||(n.render=r=>r.input());const l=n.render({...Ft()});return{default:()=>l(e,n)}}function Et(e,n){return t.h(k.FormItem,{field:n.key,label:n.title},Bt(e,n))}function Ot(e){return typeof e=="function"||Object.prototype.toString.call(e)==="[object Object]"&&!t.isVNode(e)}const It=t.defineComponent({props:{form:{type:Object,required:!0}},setup(e){const n=oe(),l=e.form.map(o=>({...o,collapsed:!1})),r=Array.from(new Set(l.map(o=>o.group).flat().filter(Boolean))),a=l.reduce((o,s)=>((s.group?[s.group].flat():["默认"]).forEach(b=>{let f=o.find(c=>c.group===b);f||(f={group:b,instance:void 0,form:[]},o.push(f)),f.form.push(s)}),o),[]).sort((o,s)=>o.group==="默认"?-1:s.group==="默认"?1:o.group>s.group?-1:1),u=t.ref("默认");return st(()=>{const o=a.find(s=>s.group===u.value);if(o&&o.instance){const s=o.instance.formSource;o.instance.validate().then(()=>{n.close(s)})}}),{formItems:l,groups:r,groupForms:a,activeTab:u}},render(){const e=this.groupForms.find(n=>n.group===this.activeTab);if(this.groups.length){let n;return t.createVNode(k.Tabs,{"active-key":this.activeTab,"onUpdate:active-key":l=>this.activeTab=l},Ot(n=this.groupForms.map(l=>t.createVNode(k.TabPane,{title:l.group,key:l.group},{default:()=>[t.createVNode(D,{form:l.form,ref:r=>l.instance=r},null)]})))?n:{default:()=>[n]})}else return t.createVNode(D,{form:this.formItems,ref:n=>e.instance=n},null)}});function ne(e){return typeof e=="function"||Object.prototype.toString.call(e)==="[object Object]"&&!t.isVNode(e)}const D=t.defineComponent({props:{form:{type:Object,required:!0},value:{type:Object,required:!1},layout:{type:String,required:!1,default:"horizontal"},columns:{type:Number,required:!1},modelValue:{type:Object,required:!1},minWidth:{type:Number,required:!1,default:400},name:{type:String,required:!1,default:`form-${Math.random().toString(32).slice(2)}`},id:{type:String,required:!1,default:`form-${Math.random().toString(32).slice(2)}`},collapsedMode:{type:String,required:!1,default:"append"},submitable:{type:Boolean,required:!1,default:!1},searchable:{type:Boolean,required:!1,default:!1},footer:{type:Boolean,required:!1,default:!1}},emits:["submit","cancel","update:model-value"],expose:["formSource","updateFormField","updateFormSource","reset","validate"],setup(e,{emit:n}){const l=t.ref(),[r,a]=ft(e.form,e.modelValue||e.value),u=t.ref(e.columns||0),o=t.ref(!0),s=t.ref(),b=()=>o.value=!o.value;t.provide(re.id,e.id),t.provide(re.source,r);const f=()=>{n("submit",r.value),n("update:model-value",r.value)},c=t.computed(()=>e.form.filter(g=>o.value?!g.collapsed:!0).filter(g=>{switch(!0){case typeof g.visiable=="boolean":return g.visiable;case typeof g.visiable=="function":return g.visiable(r.value);default:return!0}})),i=t.computed(()=>{if(!u.value)return 1;const g=c.value.reduce((C,I)=>C+((I==null?void 0:I.span)||1),0);return u.value-g%u.value}),d=t.computed(()=>e.form.reduce((g,C)=>(C.rule&&(g[C.key]=C.rule),g),{}));function v(){var C;if(e.columns)return;const g=(C=l.value)==null?void 0:C.$el;g&&(u.value=Math.max(Math.floor(g.offsetWidth/e.minWidth),1))}function h(){var C;const g=(C=l.value)==null?void 0:C.$el;g&&(g.id=e.id)}function w(){s.value.open(It,{form:e.form},{title:"高级搜索",footer:!0,submitText:"搜索"}).then(g=>{g&&(p(g),f())})}t.onMounted(()=>{v(),h()});function p(g){a({...r.value,...g||{}})}function x(g,C){r.value[g]=C,p({...r.value})}function B(){var g;(g=l.value)==null||g.resetFields()}function N(){var g;return(g=l.value)==null?void 0:g.validate()}return t.onMounted(()=>{window&&window.addEventListener("resize",v)}),{formSource:r,formInstance:l,formColumns:u,formRules:d,formCollspased:o,formActiosSpan:i,formItems:c,toggleFormCollapsed:b,updateFormField:x,updateFormSource:p,reset:B,validate:N,onSubmitSuccess:f,openCollapsedDialog:w,modalInstance:s}},render(){const e=()=>{const n=[],l=this.footer?{span:this.formColumns}:{span:this.formActiosSpan};if(this.searchable&&(n.push(t.createVNode(k.Button,{type:"primary",htmlType:"submit"},{default:()=>[t.createTextVNode("搜索")]})),n.push(t.createVNode(k.Button,{type:"secondary",onClick:()=>{var r;return(r=this.formInstance)==null?void 0:r.resetFields()}},{default:()=>[t.createTextVNode("重置")]}))),this.submitable&&(n.push(t.createVNode(k.Button,{type:"primary",htmlType:"submit"},{default:()=>[t.createTextVNode("提交")]})),n.push(t.createVNode(k.Button,{type:"secondary",onClick:()=>this.$emit("cancel")},{default:()=>[t.createTextVNode("取消")]}))),this.form.some(r=>!!r.collapsed)&&(this.collapsedMode==="append"&&n.push(t.createVNode(k.Button,{onClick:this.toggleFormCollapsed},{default:()=>this.formCollspased?"展开":"收起",icon:()=>this.formCollspased?t.createVNode(Ce,null,null):t.createVNode(Fe,null,null)})),this.collapsedMode==="dialog"&&n.push(t.createVNode(k.Button,{onClick:this.openCollapsedDialog},{default:()=>"高级搜索",icon:()=>t.createVNode(Me,null,null)}))),this.$slots.actions&&n.push(...this.$slots.actions()),n.length)return t.createVNode(k.GridItem,l,{default:()=>[t.createVNode(k.FormItem,{contentClass:this.footer?"form-footer":""},{default:()=>[t.createVNode(k.Space,null,ne(n)?n:{default:()=>[n]})]})]})};return t.createVNode("div",{class:"form-render"},[t.createVNode(dt,{ref:n=>this.modalInstance=n},{default:()=>[t.createVNode(k.Form,t.mergeProps({name:this.name},{labelAlign:"right",layout:this.$props.layout,rules:this.formRules,onSubmitSuccess:this.onSubmitSuccess,"auto-label-width":!0,ref:n=>this.formInstance=n,model:this.formSource}),{default:()=>[t.createVNode(k.Grid,{cols:this.formColumns,"col-gap":24,"rol-gap":10},{default:()=>[this.formItems.filter(()=>this.formColumns!==0).map(n=>{let l;return t.createVNode(k.GridItem,{span:n.span},ne(l=Et(this.formSource,n))?l:{default:()=>[l]})}),e()]})]})]})])}});function _t(e){return e}function Mt(e){const n=t.getCurrentInstance(),l=t.ref();function r(){var u,o;const a=(o=(u=n==null?void 0:n.proxy)==null?void 0:u.$refs)==null?void 0:o[e];a&&(l.value=a)}return t.onMounted(r),t.onUpdated(r),l}const Rt={install(e,n){e.component("FormRender",D)}};exports.FormRenderResolver=fe.FormRenderResolver;exports.FormRender=D;exports.default=Rt;exports.defineForm=_t;exports.useForm=Mt;
@@ -0,0 +1,44 @@
1
+ import { FormItemRenders } from '../form-items';
2
+ import { FieldRule } from '@arco-design/web-vue';
3
+
4
+ /**
5
+ * 表单项配置
6
+ */
7
+ export interface FormItemOptions<T = Record<string, any>> {
8
+ key: keyof T | string;
9
+ title: string;
10
+ default?: any | (() => any) | (() => Promise<any>);
11
+ collapsed?: boolean;
12
+ group?: string | string[];
13
+ visiable?: boolean | ((record: T) => boolean);
14
+ span?: number;
15
+ rule?: FieldRule | FieldRule[];
16
+ render?: FormItemRender<T>;
17
+ }
18
+ export interface FormItemStringKeyOptions<T = Record<string, any>> extends FormItemOptions<T> {
19
+ key: string;
20
+ }
21
+ export interface FormItemTypeKeyOptions<T = Record<string, any>> extends FormItemOptions<T> {
22
+ key: keyof T;
23
+ }
24
+ /**
25
+ * 表单配置
26
+ */
27
+ export type FormItemsOptions<T = Record<string, any>> = Array<FormItemOptions<T>>;
28
+ export type FormItemsTypeKeyOptions<T = Record<string, any>> = FormItemTypeKeyOptions<T>[];
29
+ export type FormItemsStringKeyOptions<T = Record<string, any>> = FormItemStringKeyOptions<T>[];
30
+ /**
31
+ * Render函数
32
+ */
33
+ export interface FormItemRender<T = Record<string, any>> {
34
+ (render: FormItemRenderFun<T>): FormItemRenderReturn<T>;
35
+ }
36
+ export interface FormItemRenderReturn<T> {
37
+ (data: T, itemOptions: FormItemOptions<T>): JSX.Element;
38
+ }
39
+ /**
40
+ * Render函数模板
41
+ */
42
+ export type FormItemRenderFun<T> = ReturnType<typeof FormItemRenders<T>> & {
43
+ [key: string]: any;
44
+ };
@@ -0,0 +1,14 @@
1
+ import { DataRecord, FormItemRenderReturn } from '../../interfaces';
2
+
3
+ export declare function renderCurrencyItem<T = DataRecord>(options?: RenderCurrencyOptions): FormItemRenderReturn<T>;
4
+ export interface RenderCurrencyOptions {
5
+ placeholder?: string;
6
+ clearable?: boolean;
7
+ readonly?: boolean;
8
+ prefix?: string | (() => JSX.Element);
9
+ suffix?: string | (() => JSX.Element);
10
+ thousands?: boolean;
11
+ precision?: number;
12
+ inputUnit?: '分' | '元' | '万';
13
+ outputUnit?: '分' | '元' | '万';
14
+ }
@@ -0,0 +1,6 @@
1
+ import { DataRecord, FormItemRenderReturn } from '../../interfaces';
2
+
3
+ export declare function renderRenderItem<T = DataRecord>(renderer: RenderInputItemOptions<T>): FormItemRenderReturn<T>;
4
+ export interface RenderInputItemOptions<T> {
5
+ (record: T): JSX.Element;
6
+ }
@@ -0,0 +1,21 @@
1
+ import { DataRecord, FormItemRenderReturn } from '../../interfaces';
2
+ import { TreeProps } from '@arco-design/web-vue/es/tree/interface';
3
+ import { Ref } from 'vue';
4
+ import { TreeFieldNames, TreeNodeData } from '@arco-design/web-vue';
5
+
6
+ export declare function renderTreeSelectItem<T = DataRecord>(options: RenderTreeSelectItemOptions): FormItemRenderReturn<T>;
7
+ export type SelectOptions = TreeNodeData[];
8
+ export interface RenderTreeSelectItemOptions {
9
+ placeholder?: string;
10
+ clearable?: boolean;
11
+ searchable?: boolean;
12
+ fieldNames?: TreeFieldNames;
13
+ options: SelectOptions | (() => SelectOptions) | (() => Promise<SelectOptions>) | Ref<SelectOptions>;
14
+ multiple?: boolean;
15
+ maxTagCount?: number;
16
+ default?: string | number | boolean;
17
+ autoSumbit?: boolean;
18
+ cache?: boolean;
19
+ treeProps?: Partial<TreeProps>;
20
+ slots?: Partial<Record<'trigger' | 'prefix' | 'label' | 'header' | 'loader' | 'empty' | 'footer' | 'tree-slot-extra' | 'tree-slot-title' | 'tree-slot-icon' | 'tree-slot-switcher-icon', (data?: TreeNodeData) => JSX.Element>>;
21
+ }
package/dist/es/index.mjs CHANGED
@@ -1,4 +1,4 @@
1
- import { getCurrentInstance as U, inject as ne, defineComponent as R, computed as S, openBlock as C, createElementBlock as O, normalizeClass as le, normalizeStyle as N, createElementVNode as w, shallowRef as E, ref as x, provide as fe, onMounted as B, Fragment as me, renderSlot as Ae, createBlock as re, Teleport as De, createVNode as v, TransitionGroup as Be, withCtx as Ue, renderList as We, mergeProps as Oe, createCommentVNode as G, defineAsyncComponent as qe, triggerRef as K, useCssVars as Ge, onUnmounted as He, withModifiers as Ye, toDisplayString as A, resolveDynamicComponent as _e, normalizeProps as Xe, guardReactiveProps as Ke, watch as J, unref as Je, isRef as ae, toRefs as Qe, customRef as Ze, nextTick as Ie, getCurrentScope as et, onScopeDispose as tt, pushScopeId as rt, popScopeId as nt, isVNode as ve, h as lt, createTextVNode as Z, onUpdated as at } from "vue";
1
+ import { getCurrentInstance as U, inject as ne, defineComponent as R, computed as S, openBlock as C, createElementBlock as O, normalizeClass as le, normalizeStyle as V, createElementVNode as w, shallowRef as E, ref as x, provide as fe, onMounted as B, Fragment as me, renderSlot as Ae, createBlock as re, Teleport as De, createVNode as v, TransitionGroup as Be, withCtx as Ue, renderList as We, mergeProps as Oe, createCommentVNode as q, defineAsyncComponent as qe, triggerRef as K, useCssVars as Ge, onUnmounted as He, withModifiers as Ye, toDisplayString as A, resolveDynamicComponent as _e, normalizeProps as Xe, guardReactiveProps as Ke, watch as J, unref as Je, isRef as ae, toRefs as Qe, customRef as Ze, nextTick as Ie, getCurrentScope as et, onScopeDispose as tt, pushScopeId as rt, popScopeId as nt, isVNode as ve, h as lt, createTextVNode as Z, onUpdated as at } from "vue";
2
2
  import { DatePicker as ut, YearPicker as ot, QuarterPicker as ct, MonthPicker as it, WeekPicker as dt, Input as st, InputNumber as Me, Select as ft, Option as mt, Switch as ht, RangePicker as vt, Textarea as yt, TreeSelect as gt, Cascader as pt, FormItem as je, Tabs as bt, TabPane as kt, Form as wt, Grid as St, GridItem as Ce, Button as W, Space as Ct } from "@arco-design/web-vue";
3
3
  import xe from "dayjs";
4
4
  import { FormRenderResolver as Qr } from "./resolver.mjs";
@@ -68,7 +68,7 @@ function Lt(e, r, n, t, l, o) {
68
68
  xmlns: "http://www.w3.org/2000/svg",
69
69
  stroke: "currentColor",
70
70
  class: le(e.cls),
71
- style: N(e.innerStyle),
71
+ style: V(e.innerStyle),
72
72
  "stroke-width": e.strokeWidth,
73
73
  "stroke-linecap": e.strokeLinecap,
74
74
  "stroke-linejoin": e.strokeLinejoin,
@@ -125,9 +125,9 @@ const Tt = Object.assign(ce, {
125
125
  }
126
126
  };
127
127
  }
128
- }), Pt = ["stroke-width", "stroke-linecap", "stroke-linejoin"], Vt = /* @__PURE__ */ w("path", {
128
+ }), Nt = ["stroke-width", "stroke-linecap", "stroke-linejoin"], Pt = /* @__PURE__ */ w("path", {
129
129
  d: "M39.6 30.557 24.043 15 8.487 30.557"
130
- }, null, -1), Nt = [Vt];
130
+ }, null, -1), Vt = [Pt];
131
131
  function Rt(e, r, n, t, l, o) {
132
132
  return C(), O("svg", {
133
133
  viewBox: "0 0 48 48",
@@ -135,12 +135,12 @@ function Rt(e, r, n, t, l, o) {
135
135
  xmlns: "http://www.w3.org/2000/svg",
136
136
  stroke: "currentColor",
137
137
  class: le(e.cls),
138
- style: N(e.innerStyle),
138
+ style: V(e.innerStyle),
139
139
  "stroke-width": e.strokeWidth,
140
140
  "stroke-linecap": e.strokeLinecap,
141
141
  "stroke-linejoin": e.strokeLinejoin,
142
142
  onClick: r[0] || (r[0] = (...a) => e.onClick && e.onClick(...a))
143
- }, Nt, 14, Pt);
143
+ }, Vt, 14, Nt);
144
144
  }
145
145
  var ie = /* @__PURE__ */ pe(zt, [["render", Rt]]);
146
146
  const Et = Object.assign(ie, {
@@ -202,7 +202,7 @@ function Wt(e, r, n, t, l, o) {
202
202
  xmlns: "http://www.w3.org/2000/svg",
203
203
  stroke: "currentColor",
204
204
  class: le(e.cls),
205
- style: N(e.innerStyle),
205
+ style: V(e.innerStyle),
206
206
  "stroke-width": e.strokeWidth,
207
207
  "stroke-linecap": e.strokeLinecap,
208
208
  "stroke-linejoin": e.strokeLinejoin,
@@ -320,26 +320,26 @@ function er(e, r = {}) {
320
320
  var z;
321
321
  if (F(r.disabled) || !T(p) || F(d) && p.target !== F(e))
322
322
  return;
323
- const M = F(m), P = (z = M == null ? void 0 : M.getBoundingClientRect) == null ? void 0 : z.call(M), j = F(e).getBoundingClientRect(), Q = {
324
- x: p.clientX - (M ? j.left - P.left + M.scrollLeft : j.left),
325
- y: p.clientY - (M ? j.top - P.top + M.scrollTop : j.top)
323
+ const M = F(m), N = (z = M == null ? void 0 : M.getBoundingClientRect) == null ? void 0 : z.call(M), j = F(e).getBoundingClientRect(), Q = {
324
+ x: p.clientX - (M ? j.left - N.left + M.scrollLeft : j.left),
325
+ y: p.clientY - (M ? j.top - N.top + M.scrollTop : j.top)
326
326
  };
327
327
  (u == null ? void 0 : u(Q, p)) !== !1 && (_.value = Q, I(p));
328
328
  }, $ = (p) => {
329
329
  if (F(r.disabled) || !T(p) || !_.value)
330
330
  return;
331
331
  const z = F(m), M = F(e).getBoundingClientRect();
332
- let { x: P, y: j } = y.value;
333
- (i === "x" || i === "both") && (P = p.clientX - _.value.x, z && (P = Math.min(Math.max(0, P), z.scrollWidth - M.width))), (i === "y" || i === "both") && (j = p.clientY - _.value.y, z && (j = Math.min(Math.max(0, j), z.scrollHeight - M.height))), y.value = {
334
- x: P,
332
+ let { x: N, y: j } = y.value;
333
+ (i === "x" || i === "both") && (N = p.clientX - _.value.x, z && (N = Math.min(Math.max(0, N), z.scrollWidth - M.width))), (i === "y" || i === "both") && (j = p.clientY - _.value.y, z && (j = Math.min(Math.max(0, j), z.scrollHeight - M.height))), y.value = {
334
+ x: N,
335
335
  y: j
336
336
  }, b == null || b(y.value, p), I(p);
337
- }, V = (p) => {
337
+ }, P = (p) => {
338
338
  F(r.disabled) || !T(p) || _.value && (_.value = void 0, s == null || s(y.value, p), I(p));
339
339
  };
340
340
  if (Te) {
341
341
  const p = { capture: (t = r.capture) != null ? t : !0 };
342
- se(k, "pointerdown", g, p), se(h, "pointermove", $, p), se(h, "pointerup", V, p);
342
+ se(k, "pointerdown", g, p), se(h, "pointermove", $, p), se(h, "pointerup", P, p);
343
343
  }
344
344
  return {
345
345
  ...Kt(y),
@@ -373,7 +373,7 @@ function tr(e, r, n = {}) {
373
373
  stop: u
374
374
  };
375
375
  }
376
- function q(e, r = { width: 0, height: 0 }, n = {}) {
376
+ function G(e, r = { width: 0, height: 0 }, n = {}) {
377
377
  const { window: t = oe, box: l = "content-box" } = n, o = S(() => {
378
378
  var c, i;
379
379
  return (i = (c = D(e)) == null ? void 0 : c.namespaceURI) == null ? void 0 : i.includes("svg");
@@ -414,7 +414,7 @@ function q(e, r = { width: 0, height: 0 }, n = {}) {
414
414
  stop: u
415
415
  };
416
416
  }
417
- const rr = (e) => (rt("data-v-a1713ed1"), e = e(), nt(), e), nr = { class: "title text-16px font-bold" }, lr = { class: "action" }, ar = ["form"], ur = {
417
+ const rr = (e) => (rt("data-v-9a7af353"), e = e(), nt(), e), nr = { class: "title text-16px font-bold" }, lr = { class: "action" }, ar = ["form"], ur = {
418
418
  key: 2,
419
419
  class: "modal-loading"
420
420
  }, or = /* @__PURE__ */ rr(() => /* @__PURE__ */ w("div", { class: "lds-ring" }, [
@@ -461,16 +461,14 @@ const rr = (e) => (rt("data-v-a1713ed1"), e = e(), nt(), e), nr = { class: "titl
461
461
  emits: ["submit"],
462
462
  setup(e, { expose: r, emit: n }) {
463
463
  Ge((f) => ({
464
- "1c652152": f.zIndex
464
+ "5751bf6b": f.zIndex
465
465
  }));
466
466
  const t = e, l = n, o = ne(ue), a = x(!1);
467
467
  let d = 0, b = 0;
468
- const s = E(), u = E(), c = E(), i = E(), h = E(), m = E(), { height: k } = q(s);
469
- q(u);
470
- const { height: y } = q(c, void 0, { box: "border-box" }), { height: _ } = q(i, void 0, { box: "border-box" }), { height: T } = q(h), { height: I } = q(m), { x: g, y: $ } = er(c, {
468
+ const s = E(), u = E(), c = E(), i = E(), h = E(), m = E(), { height: k } = G(s), { height: y } = G(c, void 0, { box: "border-box" }), { height: _ } = G(i, void 0, { box: "border-box" }), { height: T } = G(h), { height: I } = G(m), { x: g, y: $ } = er(c, {
471
469
  initialValue: { x: 0, y: 0 }
472
470
  });
473
- function V() {
471
+ function P() {
474
472
  o == null || o.close(t.id);
475
473
  }
476
474
  function p(f) {
@@ -492,7 +490,7 @@ const rr = (e) => (rt("data-v-a1713ed1"), e = e(), nt(), e), nr = { class: "titl
492
490
  }), M = S(() => {
493
491
  const f = {};
494
492
  return t.mode === "drawer" && ["top", "bottom"].includes(t.position) ? f.maxHeight = p(t.maxHeight) : (f.width = p(t.sizes[t.size]), f.maxWidth = p(t.maxWidth)), t.width && (f.width = p(t.width)), t.height && (f.height = p(t.height)), t.fullscreen && (f.maxWidth = "unset", f.width = "100%", f.position = "fixed", f.top = 0, f.left = 0, f.bottom = 0, f.right = 0, f.borderRadius = 0), t.draggable && !t.fullscreen && t.mode === "dialog" && (f.transform = `translate3d(${g.value - d}px, ${$.value - b}px, 0px)`), t.mode === "drawer" && (f.borderRadius = 0, ["left", "right"].includes(t.position) ? f.height = "100%" : f.width = "100%"), t.offset && t.mode === "dialog" && (f.marginLeft = `${t.offset.x || 0}px`, f.marginTop = `${t.offset.y || 0}px`), t.backgroundColor && (f.backgroundColor = t.backgroundColor), f;
495
- }), P = S(() => {
493
+ }), N = S(() => {
496
494
  const f = {};
497
495
  return t.draggable && !t.fullscreen && t.mode === "dialog" && (f.cursor = "move"), f;
498
496
  }), j = S(() => {
@@ -507,15 +505,15 @@ const rr = (e) => (rt("data-v-a1713ed1"), e = e(), nt(), e), nr = { class: "titl
507
505
  }
508
506
  l("submit");
509
507
  }
510
- function Pe() {
508
+ function Ne() {
511
509
  o == null || o.close(t.id);
512
510
  }
513
- function Ve() {
511
+ function Pe() {
514
512
  window && window.addEventListener("resize", () => {
515
513
  K(s), K(u), u.value && (d = u.value.offsetLeft, b = u.value.offsetTop);
516
514
  });
517
515
  }
518
- function Ne() {
516
+ function Ve() {
519
517
  if (t.closeable && t.esc) {
520
518
  const f = ({ key: L }) => {
521
519
  L === "Escape" && (o == null || o.close(t.id), window.removeEventListener("keydown", f));
@@ -527,7 +525,7 @@ const rr = (e) => (rt("data-v-a1713ed1"), e = e(), nt(), e), nr = { class: "titl
527
525
  d = u.value.offsetLeft, b = u.value.offsetTop;
528
526
  }
529
527
  B(() => {
530
- Ne(), Ve();
528
+ Ve(), Pe();
531
529
  }), He(() => {
532
530
  });
533
531
  function Ee() {
@@ -543,21 +541,21 @@ const rr = (e) => (rt("data-v-a1713ed1"), e = e(), nt(), e), nr = { class: "titl
543
541
  ref_key: "wrapperRef",
544
542
  ref: s,
545
543
  class: "modal-wrapper",
546
- style: N(z.value),
547
- onClick: L[0] || (L[0] = Ye((Se) => f.maskClosable && V(), ["self"]))
544
+ style: V(z.value),
545
+ onClick: L[0] || (L[0] = Ye((Se) => f.maskClosable && P(), ["self"]))
548
546
  }, [
549
547
  w("div", {
550
548
  ref_key: "contentRef",
551
549
  ref: u,
552
550
  class: le(["modal-content", { [`${f.mode}-mode`]: !0, [`${f.position}-position`]: !0 }]),
553
- style: N(M.value)
551
+ style: V(M.value)
554
552
  }, [
555
553
  f.header ? (C(), O("div", {
556
554
  key: 0,
557
555
  ref_key: "headerRef",
558
556
  ref: c,
559
557
  class: "modal-header",
560
- style: N(P.value),
558
+ style: V(N.value),
561
559
  onMousedown: Re
562
560
  }, [
563
561
  w("div", nr, A(f.title), 1),
@@ -565,10 +563,10 @@ const rr = (e) => (rt("data-v-a1713ed1"), e = e(), nt(), e), nr = { class: "titl
565
563
  f.closeable ? (C(), O("div", {
566
564
  key: 0,
567
565
  class: "i-icon-park-outline:close block cursor-pointer",
568
- onClick: V
569
- })) : G("", !0)
566
+ onClick: P
567
+ })) : q("", !0)
570
568
  ])
571
- ], 36)) : G("", !0),
569
+ ], 36)) : q("", !0),
572
570
  w("div", {
573
571
  id: "modal-header-slot",
574
572
  ref_key: "headerSlotRef",
@@ -576,7 +574,7 @@ const rr = (e) => (rt("data-v-a1713ed1"), e = e(), nt(), e), nr = { class: "titl
576
574
  }, null, 512),
577
575
  w("div", {
578
576
  class: "modal-body",
579
- style: N(j.value)
577
+ style: V(j.value)
580
578
  }, [
581
579
  (C(), re(_e(f.component), Xe(Ke(f.componentProps)), null, 16))
582
580
  ], 4),
@@ -594,7 +592,7 @@ const rr = (e) => (rt("data-v-a1713ed1"), e = e(), nt(), e), nr = { class: "titl
594
592
  w("button", {
595
593
  class: "cancel-button",
596
594
  type: "button",
597
- onClick: Pe
595
+ onClick: Ne
598
596
  }, A(f.cancelText), 1),
599
597
  w("button", {
600
598
  class: "submit-button",
@@ -602,8 +600,8 @@ const rr = (e) => (rt("data-v-a1713ed1"), e = e(), nt(), e), nr = { class: "titl
602
600
  type: "submit",
603
601
  onClick: Q
604
602
  }, A(f.submitText), 9, ar)
605
- ], 512)) : G("", !0),
606
- a.value ? (C(), O("div", ur, cr)) : G("", !0)
603
+ ], 512)) : q("", !0),
604
+ a.value ? (C(), O("div", ur, cr)) : q("", !0)
607
605
  ], 6)
608
606
  ], 4));
609
607
  }
@@ -612,7 +610,7 @@ const rr = (e) => (rt("data-v-a1713ed1"), e = e(), nt(), e), nr = { class: "titl
612
610
  for (const [t, l] of r)
613
611
  n[t] = l;
614
612
  return n;
615
- }, sr = /* @__PURE__ */ be(dr, [["__scopeId", "data-v-a1713ed1"]]), fr = { class: "modal-dialog" }, mr = { class: "dialog-body" }, hr = { class: "dialog-title" }, vr = { class: "dialog-content" }, yr = /* @__PURE__ */ R({
613
+ }, sr = /* @__PURE__ */ be(dr, [["__scopeId", "data-v-9a7af353"]]), fr = { class: "modal-dialog" }, mr = { class: "dialog-body" }, hr = { class: "dialog-title" }, vr = { class: "dialog-content" }, yr = /* @__PURE__ */ R({
616
614
  __name: "modal-dialog",
617
615
  props: {
618
616
  type: {},
@@ -645,7 +643,7 @@ const rr = (e) => (rt("data-v-a1713ed1"), e = e(), nt(), e), nr = { class: "titl
645
643
  ]),
646
644
  w("div", {
647
645
  class: "dialog-footer space-x-2",
648
- style: N(a.type === "confirm" ? { "justify-content": "end" } : { "border-top": "none" })
646
+ style: V(a.type === "confirm" ? { "justify-content": "end" } : { "border-top": "none" })
649
647
  }, [
650
648
  a.footer ? (C(), re(_e(a.footer), { key: 0 })) : (C(), O(me, { key: 1 }, [
651
649
  w("button", {
@@ -658,12 +656,12 @@ const rr = (e) => (rt("data-v-a1713ed1"), e = e(), nt(), e), nr = { class: "titl
658
656
  class: "cancel-button",
659
657
  type: "button",
660
658
  onClick: o
661
- }, A(a.cancelText), 1)) : G("", !0)
659
+ }, A(a.cancelText), 1)) : q("", !0)
662
660
  ], 64))
663
661
  ], 4)
664
662
  ]));
665
663
  }
666
- }), gr = /* @__PURE__ */ be(yr, [["__scopeId", "data-v-8326e5a5"]]), pr = {
664
+ }), gr = /* @__PURE__ */ be(yr, [["__scopeId", "data-v-0c6b8db2"]]), pr = {
667
665
  key: 0,
668
666
  class: "modal-teleport"
669
667
  }, br = {
@@ -800,7 +798,7 @@ const rr = (e) => (rt("data-v-a1713ed1"), e = e(), nt(), e), nr = { class: "titl
800
798
  _: 1
801
799
  })
802
800
  ], 8, ["disabled", "to"]))
803
- ])) : G("", !0)
801
+ ])) : q("", !0)
804
802
  ], 64));
805
803
  }
806
804
  }), wr = /* @__PURE__ */ be(kr, [["__scopeId", "data-v-756481fe"]]);
@@ -1179,7 +1177,7 @@ function zr() {
1179
1177
  const e = x([]);
1180
1178
  return [e, (n) => e.value = n];
1181
1179
  }
1182
- function Pr(e) {
1180
+ function Nr(e) {
1183
1181
  let r, n = !1;
1184
1182
  const [t, l] = zr(), o = () => {
1185
1183
  if (!e.autoSumbit || !r)
@@ -1240,10 +1238,10 @@ function Pr(e) {
1240
1238
  options: t.value
1241
1239
  }, null));
1242
1240
  }
1243
- function Vr(e) {
1241
+ function Pr(e) {
1244
1242
  return (r) => e(r);
1245
1243
  }
1246
- const Nr = {
1244
+ const Vr = {
1247
1245
  thousands: !0,
1248
1246
  inputUnit: "元",
1249
1247
  outputUnit: "元"
@@ -1254,7 +1252,7 @@ const Nr = {
1254
1252
  };
1255
1253
  function Rr(e) {
1256
1254
  e = {
1257
- ...Nr,
1255
+ ...Vr,
1258
1256
  ...e || {}
1259
1257
  };
1260
1258
  const r = (a) => {
@@ -1307,8 +1305,8 @@ function Er() {
1307
1305
  date: xr,
1308
1306
  switch: Ir,
1309
1307
  dateRange: Mr,
1310
- render: Vr,
1311
- cascader: Pr,
1308
+ render: Pr,
1309
+ cascader: Nr,
1312
1310
  currency: Rr
1313
1311
  };
1314
1312
  }
@@ -1472,7 +1470,7 @@ const he = /* @__PURE__ */ R({
1472
1470
  })), c = S(() => {
1473
1471
  if (!o.value)
1474
1472
  return 1;
1475
- const g = u.value.reduce(($, V) => $ + ((V == null ? void 0 : V.span) || 1), 0);
1473
+ const g = u.value.reduce(($, P) => $ + ((P == null ? void 0 : P.span) || 1), 0);
1476
1474
  return o.value - g % o.value;
1477
1475
  }), i = S(() => e.form.reduce((g, $) => ($.rule && (g[$.key] = $.rule), g), {}));
1478
1476
  function h() {
@@ -0,0 +1,44 @@
1
+ import { FormItemRenders } from '../form-items';
2
+ import { FieldRule } from '@arco-design/web-vue';
3
+
4
+ /**
5
+ * 表单项配置
6
+ */
7
+ export interface FormItemOptions<T = Record<string, any>> {
8
+ key: keyof T | string;
9
+ title: string;
10
+ default?: any | (() => any) | (() => Promise<any>);
11
+ collapsed?: boolean;
12
+ group?: string | string[];
13
+ visiable?: boolean | ((record: T) => boolean);
14
+ span?: number;
15
+ rule?: FieldRule | FieldRule[];
16
+ render?: FormItemRender<T>;
17
+ }
18
+ export interface FormItemStringKeyOptions<T = Record<string, any>> extends FormItemOptions<T> {
19
+ key: string;
20
+ }
21
+ export interface FormItemTypeKeyOptions<T = Record<string, any>> extends FormItemOptions<T> {
22
+ key: keyof T;
23
+ }
24
+ /**
25
+ * 表单配置
26
+ */
27
+ export type FormItemsOptions<T = Record<string, any>> = Array<FormItemOptions<T>>;
28
+ export type FormItemsTypeKeyOptions<T = Record<string, any>> = FormItemTypeKeyOptions<T>[];
29
+ export type FormItemsStringKeyOptions<T = Record<string, any>> = FormItemStringKeyOptions<T>[];
30
+ /**
31
+ * Render函数
32
+ */
33
+ export interface FormItemRender<T = Record<string, any>> {
34
+ (render: FormItemRenderFun<T>): FormItemRenderReturn<T>;
35
+ }
36
+ export interface FormItemRenderReturn<T> {
37
+ (data: T, itemOptions: FormItemOptions<T>): JSX.Element;
38
+ }
39
+ /**
40
+ * Render函数模板
41
+ */
42
+ export type FormItemRenderFun<T> = ReturnType<typeof FormItemRenders<T>> & {
43
+ [key: string]: any;
44
+ };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@gopowerteam/form-render",
3
3
  "type": "module",
4
- "version": "0.0.59",
4
+ "version": "0.0.61",
5
5
  "author": {
6
6
  "name": "zhuchentong",
7
7
  "email": "2037630@gmail.com"
@@ -50,7 +50,7 @@
50
50
  "peerDependencies": {
51
51
  "vue": "^3.0.0",
52
52
  "@arco-design/web-vue": "^2.52.1",
53
- "@gopowerteam/modal-render": "^0.0.38"
53
+ "@gopowerteam/modal-render": "^0.0.40"
54
54
  },
55
55
  "devDependencies": {
56
56
  "@arco-design/web-vue": "^2.55.1",