@gopowerteam/form-render 0.0.29 → 0.0.31

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,16 @@
1
+ import { type CascaderOption } from '@arco-design/web-vue';
2
+ import { type Ref } from 'vue';
3
+ import type { DataRecord, FormItemOptions } from '../../interfaces';
4
+ export declare function renderCascaderItem<T = DataRecord>(options: RenderCascaderItemOptions): (data: T, form: FormItemOptions<T>) => import("vue/jsx-runtime").JSX.Element;
5
+ export type SelectOptions = CascaderOption[];
6
+ export interface RenderCascaderItemOptions {
7
+ placeholder?: string;
8
+ clearable?: boolean;
9
+ searchable?: boolean;
10
+ options: SelectOptions | (() => SelectOptions) | (() => Promise<SelectOptions>) | Ref<SelectOptions>;
11
+ multiple?: boolean;
12
+ maxTagCount?: number;
13
+ default?: string | number | boolean;
14
+ autoSumbit?: boolean;
15
+ cache?: boolean;
16
+ }
@@ -7,4 +7,5 @@ export declare function FormItemRenders<T>(): {
7
7
  switch: (options?: import("./switch").RenderSwitchItemOptions | undefined) => (data: T, form: import("..").FormItemOptions<Record<string, any>>) => import("vue/jsx-runtime").JSX.Element;
8
8
  dateRange: (options?: import("./date-range").RenderDateRangeItemOptions | undefined) => (data: T, form: import("..").FormItemOptions<T>) => import("vue/jsx-runtime").JSX.Element;
9
9
  render: (renderer: import("./render").RenderInputItemOptions<T>) => (data: T) => JSX.Element;
10
+ cascader: (options: import("./cascader").RenderCascaderItemOptions) => (data: T, form: import("..").FormItemOptions<T>) => import("vue/jsx-runtime").JSX.Element;
10
11
  };
@@ -1 +1 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const a=require("vue"),i=require("@arco-design/web-vue"),C=require("dayjs"),_=require("./resolver.cjs");const j=Symbol("ArcoConfigProvider"),D="arco",T="$arco",N=e=>{var r,l,t;const n=a.getCurrentInstance(),d=a.inject(j,void 0),u=(t=(l=d==null?void 0:d.prefixCls)!=null?l:(r=n==null?void 0:n.appContext.config.globalProperties[T])==null?void 0:r.classPrefix)!=null?t:D;return e?`${u}-${e}`:u},M=Object.prototype.toString;function w(e){return M.call(e)==="[object Number]"&&e===e}var x=(e,r)=>{for(const[l,t]of r)e[l]=t;return e};const P=a.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:r}){const l=N("icon"),t=a.computed(()=>[l,`${l}-down`,{[`${l}-spin`]:e.spin}]),n=a.computed(()=>{const u={};return e.size&&(u.fontSize=w(e.size)?`${e.size}px`:e.size),e.rotate&&(u.transform=`rotate(${e.rotate}deg)`),u});return{cls:t,innerStyle:n,onClick:u=>{r("click",u)}}}}),R=["stroke-width","stroke-linecap","stroke-linejoin"],z=a.createElementVNode("path",{d:"M39.6 17.443 24.043 33 8.487 17.443"},null,-1),L=[z];function B(e,r,l,t,n,d){return a.openBlock(),a.createElementBlock("svg",{viewBox:"0 0 48 48",fill:"none",xmlns:"http://www.w3.org/2000/svg",stroke:"currentColor",class:a.normalizeClass(e.cls),style:a.normalizeStyle(e.innerStyle),"stroke-width":e.strokeWidth,"stroke-linecap":e.strokeLinecap,"stroke-linejoin":e.strokeLinejoin,onClick:r[0]||(r[0]=(...u)=>e.onClick&&e.onClick(...u))},L,14,R)}var g=x(P,[["render",B]]);const q=Object.assign(g,{install:(e,r)=>{var l;const t=(l=r==null?void 0:r.iconPrefix)!=null?l:"";e.component(t+g.name,g)}}),U=a.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:r}){const l=N("icon"),t=a.computed(()=>[l,`${l}-up`,{[`${l}-spin`]:e.spin}]),n=a.computed(()=>{const u={};return e.size&&(u.fontSize=w(e.size)?`${e.size}px`:e.size),e.rotate&&(u.transform=`rotate(${e.rotate}deg)`),u});return{cls:t,innerStyle:n,onClick:u=>{r("click",u)}}}}),E=["stroke-width","stroke-linecap","stroke-linejoin"],W=a.createElementVNode("path",{d:"M39.6 30.557 24.043 15 8.487 30.557"},null,-1),A=[W];function Y(e,r,l,t,n,d){return a.openBlock(),a.createElementBlock("svg",{viewBox:"0 0 48 48",fill:"none",xmlns:"http://www.w3.org/2000/svg",stroke:"currentColor",class:a.normalizeClass(e.cls),style:a.normalizeStyle(e.innerStyle),"stroke-width":e.strokeWidth,"stroke-linecap":e.strokeLinecap,"stroke-linejoin":e.strokeLinejoin,onClick:r[0]||(r[0]=(...u)=>e.onClick&&e.onClick(...u))},A,14,E)}var V=x(U,[["render",Y]]);const G=Object.assign(V,{install:(e,r)=>{var l;const t=(l=r==null?void 0:r.iconPrefix)!=null?l:"";e.component(t+V.name,V)}}),$={id:Symbol("ID"),source:Symbol("Source")};function p(e,r){const l=a.ref({});return e==null||e.forEach(n=>{let d=null;n.default&&(d=(typeof n.default=="function"?n.default():n.default)||null),r&&r[n.key]!==void 0&&(d=r[n.key]),l.value[n.key]=d}),[l,n=>{l.value=n}]}function K(e){function r(l,t){return e!=null&&e.disabledDate?e.disabledDate(l,t):!1}return(l,t)=>{switch(e==null?void 0:e.type){case"week":return a.createVNode(i.WeekPicker,{modelValue:l[t.key],"onUpdate:modelValue":n=>l[t.key]=n,"disabled-date":r,format:e==null?void 0:e.labelFormat,"value-format":e==null?void 0:e.valueFormat},null);case"month":return a.createVNode(i.MonthPicker,{modelValue:l[t.key],"onUpdate:modelValue":n=>l[t.key]=n,"disabled-date":r,format:e==null?void 0:e.labelFormat,"value-format":e==null?void 0:e.valueFormat},null);case"quarter":return a.createVNode(i.QuarterPicker,{modelValue:l[t.key],"onUpdate:modelValue":n=>l[t.key]=n,"disabled-date":r,format:e==null?void 0:e.labelFormat,"value-format":e==null?void 0:e.valueFormat},null);case"year":return a.createVNode(i.YearPicker,{modelValue:l[t.key],"onUpdate:modelValue":n=>l[t.key]=n,"disabled-date":r,format:e==null?void 0:e.labelFormat,"value-format":e==null?void 0:e.valueFormat},null);case"date":default:return a.createVNode(i.DatePicker,{"disabled-input":!0,modelValue:l[t.key],"onUpdate:modelValue":n=>l[t.key]=n,"disabled-date":r,format:e==null?void 0:e.labelFormat,"value-format":e==null?void 0:e.valueFormat},null)}}}function Q(e){return(r,l)=>{switch(e==null?void 0:e.type){case"number":return a.createVNode(i.InputNumber,{modelValue:r[l.key],"onUpdate:modelValue":t=>r[l.key]=t,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 a.createVNode(i.Input,{modelValue:r[l.key],"onUpdate:modelValue":t=>r[l.key]=t,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 O(e,r,l){const t=a.watch(e,(...n)=>(a.nextTick(()=>t()),r(...n)),l);return t}function X(e){return typeof e=="function"||Object.prototype.toString.call(e)==="[object Object]"&&!a.isVNode(e)}const b=new WeakMap;function H(){const e=a.ref(new Map);return[e,l=>e.value=l]}function J(e){console.log("开始渲染Select:");let r,l=!1;const[t,n]=H(),d=()=>{if(!e.autoSumbit||!r)return;let s=r;for(;s&&s.$el.tagName!=="FORM";)s=s.$parent;s&&s.$el&&s.$el.dispatchEvent(new Event("submit"))},u=(s,c)=>{const o=s();o instanceof Promise?o.then(c):c(o)},h=async()=>{const s=b.get(e.options);switch(console.log("当前缓存值:",s),typeof s){case"function":console.log("检测到缓存正在请求中"),console.log("更新缓存"),b.set(e.options,n);return;case"object":console.log("检测到缓存数据完成"),n(s);return}console.log("未检测到缓存开始进行请求"),b.set(e.options,n),u(e.options,c=>{const o=b.get(e.options);b.set(e.options,c),o(c)})},k=()=>{u(e.options,s=>{n(s)})};switch(!0){case e.options instanceof Function:{e.cache!==!1?(console.log("缓存开启"),h()):(console.log("缓存关闭"),k());break}case a.isRef(e.options):{O(e.options,()=>{n(e.options.value)},{immediate:!0});break}default:t.value=e.options}return(s,c)=>{let o;return e.default&&!l&&(s[c.key]=e.default,l=!0),a.createVNode(i.Select,{ref:f=>r=f,multiple:e.multiple,modelValue:s[c.key],"onUpdate:modelValue":f=>s[c.key]=f,placeholder:e.placeholder,allowClear:e.clearable,allowSearch:e.searchable,maxTagCount:e.maxTagCount??2,onChange:d},X(o=Array.from(t.value.entries()).map(([f,m])=>a.createVNode(i.Option,{key:f,value:f,label:m},null)))?o:{default:()=>[o]})}}function Z(e){function r(){e!=null&&e.autoSumbit}return(l,t)=>(e!=null&&e.default&&(l[t.key]=e.default),a.createVNode(i.Switch,{modelValue:l[t.key],"onUpdate:modelValue":n=>l[t.key]=n,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:r},null))}function ee(e){return(r,l)=>{let t=[];function n(h){t=h}function d(h){if(h&&h.length===2){const[k,s]=h.sort(),c=C(k).startOf("days"),o=C(s).endOf("days");r[l.key]=[c.format((e==null?void 0:e.valueFormat)||"YYYY-MM-DD"),o.format((e==null?void 0:e.valueFormat)||"YYYY-MM-DD")]}}function u(h){return e!=null&&e.disabledDate?e.disabledDate(t,h):!1}return a.createVNode("div",null,[a.createVNode(i.RangePicker,{"disabled-input":!0,style:{width:"300px"},modelValue:r[l.key],"onUpdate:modelValue":h=>r[l.key]=h,onSelect:n,onChange:d,mode:e==null?void 0:e.type,allowClear:e==null?void 0:e.clearable,"disabled-date":u,format:e==null?void 0:e.labelFormat,"value-format":e==null?void 0:e.valueFormat},null)])}}function te(e){return(r,l)=>a.createVNode(i.Textarea,{modelValue:r[l.key],"onUpdate:modelValue":t=>r[l.key]=t,placeholder:e==null?void 0:e.placeholder,autoSize:e==null?void 0:e.autosize,maxLength:e==null?void 0:e.maxLength},null)}const v=new WeakMap;function re(){const e=a.ref([]);return[e,l=>e.value=l]}function le(e){console.log("开始渲染SelectTree:");let r,l=!1;const[t,n]=re(),d=()=>{if(!e.autoSumbit||!r)return;let c=r;for(;c&&c.$el.tagName!=="FORM";)c=c.$parent;c&&c.$el&&c.$el.dispatchEvent(new Event("submit"))},u=(c,o)=>{const f=c();f instanceof Promise?f.then(o):o(f)},h=async()=>{const c=v.get(e.options);switch(console.log("当前缓存值:",c),typeof c){case"function":console.log("检测到缓存正在请求中"),console.log("更新缓存"),v.set(e.options,n);return;case"object":console.log("检测到缓存数据完成"),n(c);return}console.log("未检测到缓存开始进行请求"),v.set(e.options,n),u(e.options,o=>{const f=v.get(e.options);v.set(e.options,o),f(o)})},k=()=>{u(e.options,c=>{n(c)})};switch(!0){case e.options instanceof Function:{e.cache!==!1?(console.log("缓存开启"),h()):(console.log("缓存关闭"),k());break}case a.isRef(e.options):{O(e.options,()=>{n(e.options.value)},{immediate:!0});break}default:t.value=e.options}function s(c,o){var y;const f=((y=e.fieldNames)==null?void 0:y.title)||"title",m=o[f];return m?m.toLowerCase().includes(c.toLowerCase()):!1}return(c,o)=>(e.default&&!l&&(c[o.key]=e.default,l=!0),a.createVNode(i.TreeSelect,{ref:f=>r=f,multiple:e.multiple,modelValue:c[o.key],"onUpdate:modelValue":f=>c[o.key]=f,placeholder:e.placeholder,allowClear:e.clearable,allowSearch:e.searchable,maxTagCount:e.maxTagCount??2,onChange:d,filterTreeNode:s,data:t.value,fieldNames:e.fieldNames},null))}function ae(e){return r=>e(r)}function ne(){return{input:Q,textarea:te,select:J,treeSelect:le,date:K,switch:Z,dateRange:ee,render:ae}}function ce(e,r){r.render||(r.render=t=>t.input());const l=r.render({...ne()});return{default:()=>l(e,r)}}function ue(e,r){return a.h(i.FormItem,{field:r.key,label:r.title},ce(e,r))}function F(e){return typeof e=="function"||Object.prototype.toString.call(e)==="[object Object]"&&!a.isVNode(e)}const I=a.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:320},name:{type:String,required:!1,default:"form"},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"],setup(e){const r=Math.random().toString(32).slice(2).toUpperCase(),l=a.ref(),[t,n]=p(e.form,e.modelValue||e.value),d=a.ref(e.columns||0),u=a.ref(!0),h=()=>u.value=!u.value;a.provide($.id,r),a.provide($.source,t);const k=a.computed(()=>{if(!d.value)return 1;const m=e.form.reduce((y,S)=>y+((S==null?void 0:S.span)||1),0);return d.value-m%d.value}),s=a.computed(()=>e.form.reduce((m,y)=>(y.rule&&(m[y.key]=y.rule),m),{}));function c(){var y;if(e.columns)return;const m=(y=l.value)==null?void 0:y.$el;m&&(d.value=Math.floor(m.offsetWidth/e.minWidth))}a.onMounted(()=>{c()});function o(m,y){t.value[m]=y,n({...t})}function f(){var m;(m=l.value)==null||m.resetFields()}return window.addEventListener("resize",c),{formId:r,formSource:t,formInstance:l,formColumns:d,formRules:s,formCollspased:u,formActiosSpan:k,toggleFormCollapsed:h,updateFormField:o,updateFormSource:n,reset:f}},render(){const e=()=>{this.$emit("submit",this.formSource),this.$emit("update:model-value",this.formSource)},r=()=>{const t=[],n=this.footer?{span:this.formColumns}:{span:this.formActiosSpan};if(this.searchable&&(t.push(a.createVNode(i.Button,{type:"primary",htmlType:"submit"},{default:()=>[a.createTextVNode("搜索")]})),t.push(a.createVNode(i.Button,{type:"secondary",onClick:()=>{var d;return(d=this.formInstance)==null?void 0:d.resetFields()}},{default:()=>[a.createTextVNode("重置")]}))),this.submitable&&(t.push(a.createVNode(i.Button,{type:"primary",htmlType:"submit"},{default:()=>[a.createTextVNode("提交")]})),t.push(a.createVNode(i.Button,{type:"secondary",onClick:()=>this.$emit("cancel")},{default:()=>[a.createTextVNode("取消")]}))),this.form.some(d=>!!d.collapsed)&&t.push(a.createVNode(i.Button,{onClick:this.toggleFormCollapsed},{default:()=>this.formCollspased?"展开":"收起",icon:()=>this.formCollspased?a.createVNode(q,null,null):a.createVNode(G,null,null)})),this.$slots.actions&&t.push(...this.$slots.actions()),t.length)return a.createVNode(i.GridItem,n,{default:()=>[a.createVNode(i.FormItem,{hideLabel:!0,contentClass:this.footer?"form-footer":""},{default:()=>[a.createVNode(i.Space,null,F(t)?t:{default:()=>[t]})]})]})},l=this.form.filter(t=>this.formCollspased?!t.collapsed:!0).filter(t=>{switch(!0){case typeof t.visiable=="boolean":return t.visiable;case typeof t.visiable=="function":return t.visiable(this.formSource);default:return!0}});return a.createVNode("div",{class:"form-render"},[a.createVNode(i.Form,a.mergeProps({layout:this.$props.layout,rules:this.formRules,onSubmitSuccess:e},{name:this.name},{"auto-label-width":!0,ref:t=>this.formInstance=t,model:this.formSource}),{default:()=>[a.createVNode(i.Grid,{cols:this.formColumns,"col-gap":10,"rol-gap":10},{default:()=>[l.filter(()=>this.formColumns!==0).map(t=>{let n;return a.createVNode(i.GridItem,{span:t.span},F(n=ue(this.formSource,t))?n:{default:()=>[n]})}),r()]})]})])}});function de(e){return e}function oe(e){const r=a.getCurrentInstance(),l=a.ref();function t(){var d,u;const n=(u=(d=r==null?void 0:r.proxy)==null?void 0:d.$refs)==null?void 0:u[e];n&&(l.value=n)}return a.onMounted(t),a.onUpdated(t),l}const se={install(e,r){e.component("FormRender",I)}};exports.FormRenderResolver=_.FormRenderResolver;exports.FormRender=I;exports.default=se;exports.defineForm=de;exports.useForm=oe;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const a=require("vue"),i=require("@arco-design/web-vue"),F=require("dayjs"),D=require("./resolver.cjs");const _=Symbol("ArcoConfigProvider"),T="arco",p="$arco",x=e=>{var r,l,t;const n=a.getCurrentInstance(),o=a.inject(_,void 0),d=(t=(l=o==null?void 0:o.prefixCls)!=null?l:(r=n==null?void 0:n.appContext.config.globalProperties[p])==null?void 0:r.classPrefix)!=null?t:T;return e?`${d}-${e}`:d},M=Object.prototype.toString;function O(e){return M.call(e)==="[object Number]"&&e===e}var I=(e,r)=>{for(const[l,t]of r)e[l]=t;return e};const R=a.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:r}){const l=x("icon"),t=a.computed(()=>[l,`${l}-down`,{[`${l}-spin`]:e.spin}]),n=a.computed(()=>{const d={};return e.size&&(d.fontSize=O(e.size)?`${e.size}px`:e.size),e.rotate&&(d.transform=`rotate(${e.rotate}deg)`),d});return{cls:t,innerStyle:n,onClick:d=>{r("click",d)}}}}),P=["stroke-width","stroke-linecap","stroke-linejoin"],z=a.createElementVNode("path",{d:"M39.6 17.443 24.043 33 8.487 17.443"},null,-1),L=[z];function B(e,r,l,t,n,o){return a.openBlock(),a.createElementBlock("svg",{viewBox:"0 0 48 48",fill:"none",xmlns:"http://www.w3.org/2000/svg",stroke:"currentColor",class:a.normalizeClass(e.cls),style:a.normalizeStyle(e.innerStyle),"stroke-width":e.strokeWidth,"stroke-linecap":e.strokeLinecap,"stroke-linejoin":e.strokeLinejoin,onClick:r[0]||(r[0]=(...d)=>e.onClick&&e.onClick(...d))},L,14,P)}var C=I(R,[["render",B]]);const U=Object.assign(C,{install:(e,r)=>{var l;const t=(l=r==null?void 0:r.iconPrefix)!=null?l:"";e.component(t+C.name,C)}}),q=a.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:r}){const l=x("icon"),t=a.computed(()=>[l,`${l}-up`,{[`${l}-spin`]:e.spin}]),n=a.computed(()=>{const d={};return e.size&&(d.fontSize=O(e.size)?`${e.size}px`:e.size),e.rotate&&(d.transform=`rotate(${e.rotate}deg)`),d});return{cls:t,innerStyle:n,onClick:d=>{r("click",d)}}}}),E=["stroke-width","stroke-linecap","stroke-linejoin"],W=a.createElementVNode("path",{d:"M39.6 30.557 24.043 15 8.487 30.557"},null,-1),A=[W];function Y(e,r,l,t,n,o){return a.openBlock(),a.createElementBlock("svg",{viewBox:"0 0 48 48",fill:"none",xmlns:"http://www.w3.org/2000/svg",stroke:"currentColor",class:a.normalizeClass(e.cls),style:a.normalizeStyle(e.innerStyle),"stroke-width":e.strokeWidth,"stroke-linecap":e.strokeLinecap,"stroke-linejoin":e.strokeLinejoin,onClick:r[0]||(r[0]=(...d)=>e.onClick&&e.onClick(...d))},A,14,E)}var $=I(q,[["render",Y]]);const G=Object.assign($,{install:(e,r)=>{var l;const t=(l=r==null?void 0:r.iconPrefix)!=null?l:"";e.component(t+$.name,$)}}),w={id:Symbol("ID"),source:Symbol("Source")};function K(e,r){const l=a.ref({});return e==null||e.forEach(n=>{let o=null;n.default&&(o=(typeof n.default=="function"?n.default():n.default)||null),r&&r[n.key]!==void 0&&(o=r[n.key]),l.value[n.key]=o}),[l,n=>{l.value=n}]}function Q(e){function r(l,t){return e!=null&&e.disabledDate?e.disabledDate(l,t):!1}return(l,t)=>{switch(e==null?void 0:e.type){case"week":return a.createVNode(i.WeekPicker,{modelValue:l[t.key],"onUpdate:modelValue":n=>l[t.key]=n,"disabled-date":r,format:e==null?void 0:e.labelFormat,"value-format":e==null?void 0:e.valueFormat},null);case"month":return a.createVNode(i.MonthPicker,{modelValue:l[t.key],"onUpdate:modelValue":n=>l[t.key]=n,"disabled-date":r,format:e==null?void 0:e.labelFormat,"value-format":e==null?void 0:e.valueFormat},null);case"quarter":return a.createVNode(i.QuarterPicker,{modelValue:l[t.key],"onUpdate:modelValue":n=>l[t.key]=n,"disabled-date":r,format:e==null?void 0:e.labelFormat,"value-format":e==null?void 0:e.valueFormat},null);case"year":return a.createVNode(i.YearPicker,{modelValue:l[t.key],"onUpdate:modelValue":n=>l[t.key]=n,"disabled-date":r,format:e==null?void 0:e.labelFormat,"value-format":e==null?void 0:e.valueFormat},null);case"date":default:return a.createVNode(i.DatePicker,{"disabled-input":!0,modelValue:l[t.key],"onUpdate:modelValue":n=>l[t.key]=n,"disabled-date":r,format:e==null?void 0:e.labelFormat,"value-format":e==null?void 0:e.valueFormat},null)}}}function X(e){return(r,l)=>{switch(e==null?void 0:e.type){case"number":return a.createVNode(i.InputNumber,{modelValue:r[l.key],"onUpdate:modelValue":t=>r[l.key]=t,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 a.createVNode(i.Input,{modelValue:r[l.key],"onUpdate:modelValue":t=>r[l.key]=t,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 V(e,r,l){const t=a.watch(e,(...n)=>(a.nextTick(()=>t()),r(...n)),l);return t}function H(e){return typeof e=="function"||Object.prototype.toString.call(e)==="[object Object]"&&!a.isVNode(e)}const k=new WeakMap;function J(){const e=a.ref(new Map);return[e,l=>e.value=l]}function Z(e){let r,l=!1;const[t,n]=J(),o=()=>{if(!e.autoSumbit||!r)return;let c=r;for(;c&&c.$el.tagName!=="FORM";)c=c.$parent;c&&c.$el&&c.$el.dispatchEvent(new Event("submit"))},d=(c,u)=>{const s=c();s instanceof Promise?s.then(u):u(s)},m=async()=>{const c=k.get(e.options);switch(typeof c){case"function":k.set(e.options,n);return;case"object":n(c);return}k.set(e.options,n),d(e.options,u=>{const s=k.get(e.options);k.set(e.options,u),s(u)})},b=()=>{d(e.options,c=>{n(c)})};switch(!0){case e.options instanceof Function:{e.cache!==!1?m():b();break}case a.isRef(e.options):{V(e.options,()=>{n(e.options.value)},{immediate:!0});break}default:t.value=e.options}return(c,u)=>{let s;return e.default&&!l&&(c[u.key]=e.default,l=!0),a.createVNode(i.Select,{ref:f=>r=f,multiple:e.multiple,modelValue:c[u.key],"onUpdate:modelValue":f=>c[u.key]=f,placeholder:e.placeholder,allowClear:e.clearable,allowSearch:e.searchable,maxTagCount:e.maxTagCount??2,onChange:o},H(s=Array.from(t.value.entries()).map(([f,h])=>a.createVNode(i.Option,{key:f,value:f,label:h},null)))?s:{default:()=>[s]})}}function ee(e){function r(){e!=null&&e.autoSumbit}return(l,t)=>(e!=null&&e.default&&(l[t.key]=e.default),a.createVNode(i.Switch,{modelValue:l[t.key],"onUpdate:modelValue":n=>l[t.key]=n,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:r},null))}function te(e){return(r,l)=>{let t=[];function n(m){t=m}function o(m){if(m&&m.length===2){const[b,c]=m.sort(),u=F(b).startOf("days"),s=F(c).endOf("days");r[l.key]=[u.format((e==null?void 0:e.valueFormat)||"YYYY-MM-DD"),s.format((e==null?void 0:e.valueFormat)||"YYYY-MM-DD")]}}function d(m){return e!=null&&e.disabledDate?e.disabledDate(t,m):!1}return a.createVNode("div",null,[a.createVNode(i.RangePicker,{"disabled-input":!0,style:{width:"300px"},modelValue:r[l.key],"onUpdate:modelValue":m=>r[l.key]=m,onSelect:n,onChange:o,mode:e==null?void 0:e.type,allowClear:e==null?void 0:e.clearable,"disabled-date":d,format:e==null?void 0:e.labelFormat,"value-format":e==null?void 0:e.valueFormat},null)])}}function re(e){return(r,l)=>a.createVNode(i.Textarea,{modelValue:r[l.key],"onUpdate:modelValue":t=>r[l.key]=t,placeholder:e==null?void 0:e.placeholder,autoSize:e==null?void 0:e.autosize,maxLength:e==null?void 0:e.maxLength},null)}const S=new WeakMap;function le(){const e=a.ref([]);return[e,l=>e.value=l]}function ae(e){let r,l=!1;const[t,n]=le(),o=()=>{if(!e.autoSumbit||!r)return;let u=r;for(;u&&u.$el.tagName!=="FORM";)u=u.$parent;u&&u.$el&&u.$el.dispatchEvent(new Event("submit"))},d=(u,s)=>{const f=u();f instanceof Promise?f.then(s):s(f)},m=async()=>{const u=S.get(e.options);switch(typeof u){case"function":S.set(e.options,n);return;case"object":n(u);return}S.set(e.options,n),d(e.options,s=>{const f=S.get(e.options);S.set(e.options,s),f(s)})},b=()=>{d(e.options,u=>{n(u)})};switch(!0){case e.options instanceof Function:{e.cache!==!1?m():b();break}case a.isRef(e.options):{V(e.options,()=>{n(e.options.value)},{immediate:!0});break}default:t.value=e.options}function c(u,s){var y;const f=((y=e.fieldNames)==null?void 0:y.title)||"title",h=s[f];return h?h.toLowerCase().includes(u.toLowerCase()):!1}return(u,s)=>(e.default&&!l&&(u[s.key]=e.default,l=!0),a.createVNode(i.TreeSelect,{ref:f=>r=f,multiple:e.multiple,modelValue:u[s.key],"onUpdate:modelValue":f=>u[s.key]=f,placeholder:e.placeholder,allowClear:e.clearable,allowSearch:e.searchable,maxTagCount:e.maxTagCount??2,onChange:o,filterTreeNode:c,data:t.value,fieldNames:e.fieldNames},null))}const v=new WeakMap;function ne(){const e=a.ref([]);return[e,l=>e.value=l]}function ue(e){let r,l=!1;const[t,n]=ne(),o=()=>{if(!e.autoSumbit||!r)return;let c=r;for(;c&&c.$el.tagName!=="FORM";)c=c.$parent;c&&c.$el&&c.$el.dispatchEvent(new Event("submit"))},d=(c,u)=>{const s=c();s instanceof Promise?s.then(u):u(s)},m=async()=>{const c=v.get(e.options);switch(typeof c){case"function":v.set(e.options,n);return;case"object":n(c);return}v.set(e.options,n),d(e.options,u=>{const s=v.get(e.options);v.set(e.options,u),s(u)})},b=()=>{d(e.options,c=>{n(c)})};switch(!0){case e.options instanceof Function:{e.cache!==!1?m():b();break}case a.isRef(e.options):{V(e.options,()=>{n(e.options.value)},{immediate:!0});break}default:t.value=e.options}return(c,u)=>(e.default&&!l&&(c[u.key]=e.default,l=!0),a.createVNode(i.Cascader,{ref:s=>r=s,multiple:e.multiple,modelValue:c[u.key],"onUpdate:modelValue":s=>c[u.key]=s,placeholder:e.placeholder,allowClear:e.clearable,allowSearch:e.searchable,maxTagCount:e.maxTagCount??2,onChange:o,options:t.value},null))}function ce(e){return r=>e(r)}function de(){return{input:X,textarea:re,select:Z,treeSelect:ae,date:Q,switch:ee,dateRange:te,render:ce,cascader:ue}}function se(e,r){r.render||(r.render=t=>t.input());const l=r.render({...de()});return{default:()=>l(e,r)}}function oe(e,r){return a.h(i.FormItem,{field:r.key,label:r.title},se(e,r))}function N(e){return typeof e=="function"||Object.prototype.toString.call(e)==="[object Object]"&&!a.isVNode(e)}const j=a.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:320},name:{type:String,required:!1,default:"form"},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"],setup(e){const r=Math.random().toString(32).slice(2).toUpperCase(),l=a.ref(),[t,n]=K(e.form,e.modelValue||e.value),o=a.ref(e.columns||0),d=a.ref(!0),m=()=>d.value=!d.value;a.provide(w.id,r),a.provide(w.source,t);const b=a.computed(()=>{if(!o.value)return 1;const h=e.form.reduce((y,g)=>y+((g==null?void 0:g.span)||1),0);return o.value-h%o.value}),c=a.computed(()=>e.form.reduce((h,y)=>(y.rule&&(h[y.key]=y.rule),h),{}));function u(){var y;if(e.columns)return;const h=(y=l.value)==null?void 0:y.$el;h&&(o.value=Math.floor(h.offsetWidth/e.minWidth))}a.onMounted(()=>{u()});function s(h,y){t.value[h]=y,n({...t})}function f(){var h;(h=l.value)==null||h.resetFields()}return window.addEventListener("resize",u),{formId:r,formSource:t,formInstance:l,formColumns:o,formRules:c,formCollspased:d,formActiosSpan:b,toggleFormCollapsed:m,updateFormField:s,updateFormSource:n,reset:f}},render(){const e=()=>{this.$emit("submit",this.formSource),this.$emit("update:model-value",this.formSource)},r=()=>{const t=[],n=this.footer?{span:this.formColumns}:{span:this.formActiosSpan};if(this.searchable&&(t.push(a.createVNode(i.Button,{type:"primary",htmlType:"submit"},{default:()=>[a.createTextVNode("搜索")]})),t.push(a.createVNode(i.Button,{type:"secondary",onClick:()=>{var o;return(o=this.formInstance)==null?void 0:o.resetFields()}},{default:()=>[a.createTextVNode("重置")]}))),this.submitable&&(t.push(a.createVNode(i.Button,{type:"primary",htmlType:"submit"},{default:()=>[a.createTextVNode("提交")]})),t.push(a.createVNode(i.Button,{type:"secondary",onClick:()=>this.$emit("cancel")},{default:()=>[a.createTextVNode("取消")]}))),this.form.some(o=>!!o.collapsed)&&t.push(a.createVNode(i.Button,{onClick:this.toggleFormCollapsed},{default:()=>this.formCollspased?"展开":"收起",icon:()=>this.formCollspased?a.createVNode(U,null,null):a.createVNode(G,null,null)})),this.$slots.actions&&t.push(...this.$slots.actions()),t.length)return a.createVNode(i.GridItem,n,{default:()=>[a.createVNode(i.FormItem,{hideLabel:!0,contentClass:this.footer?"form-footer":""},{default:()=>[a.createVNode(i.Space,null,N(t)?t:{default:()=>[t]})]})]})},l=this.form.filter(t=>this.formCollspased?!t.collapsed:!0).filter(t=>{switch(!0){case typeof t.visiable=="boolean":return t.visiable;case typeof t.visiable=="function":return t.visiable(this.formSource);default:return!0}});return a.createVNode("div",{class:"form-render"},[a.createVNode(i.Form,a.mergeProps({name:this.name},{labelAlign:"left",layout:this.$props.layout,rules:this.formRules,onSubmitSuccess:e,"auto-label-width":!0,ref:t=>this.formInstance=t,model:this.formSource}),{default:()=>[a.createVNode(i.Grid,{cols:this.formColumns,"col-gap":24,"rol-gap":10},{default:()=>[l.filter(()=>this.formColumns!==0).map(t=>{let n;return a.createVNode(i.GridItem,{span:t.span},N(n=oe(this.formSource,t))?n:{default:()=>[n]})}),r()]})]})])}});function ie(e){return e}function fe(e){const r=a.getCurrentInstance(),l=a.ref();function t(){var o,d;const n=(d=(o=r==null?void 0:r.proxy)==null?void 0:o.$refs)==null?void 0:d[e];n&&(l.value=n)}return a.onMounted(t),a.onUpdated(t),l}const me={install(e,r){e.component("FormRender",j)}};exports.FormRenderResolver=D.FormRenderResolver;exports.FormRender=j;exports.default=me;exports.defineForm=ie;exports.useForm=fe;
@@ -0,0 +1,16 @@
1
+ import { type CascaderOption } from '@arco-design/web-vue';
2
+ import { type Ref } from 'vue';
3
+ import type { DataRecord, FormItemOptions } from '../../interfaces';
4
+ export declare function renderCascaderItem<T = DataRecord>(options: RenderCascaderItemOptions): (data: T, form: FormItemOptions<T>) => import("vue/jsx-runtime").JSX.Element;
5
+ export type SelectOptions = CascaderOption[];
6
+ export interface RenderCascaderItemOptions {
7
+ placeholder?: string;
8
+ clearable?: boolean;
9
+ searchable?: boolean;
10
+ options: SelectOptions | (() => SelectOptions) | (() => Promise<SelectOptions>) | Ref<SelectOptions>;
11
+ multiple?: boolean;
12
+ maxTagCount?: number;
13
+ default?: string | number | boolean;
14
+ autoSumbit?: boolean;
15
+ cache?: boolean;
16
+ }
@@ -7,4 +7,5 @@ export declare function FormItemRenders<T>(): {
7
7
  switch: (options?: import("./switch").RenderSwitchItemOptions | undefined) => (data: T, form: import("..").FormItemOptions<Record<string, any>>) => import("vue/jsx-runtime").JSX.Element;
8
8
  dateRange: (options?: import("./date-range").RenderDateRangeItemOptions | undefined) => (data: T, form: import("..").FormItemOptions<T>) => import("vue/jsx-runtime").JSX.Element;
9
9
  render: (renderer: import("./render").RenderInputItemOptions<T>) => (data: T) => JSX.Element;
10
+ cascader: (options: import("./cascader").RenderCascaderItemOptions) => (data: T, form: import("..").FormItemOptions<T>) => import("vue/jsx-runtime").JSX.Element;
10
11
  };