icarys-form-create-vant 1.0.2 → 1.0.4

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.
Files changed (113) hide show
  1. package/README.md +3 -3
  2. package/dist/index.js +3 -3
  3. package/dist/index.min.js +3 -3
  4. package/package.json +8 -5
  5. package/src/components/common/subform/LICENSE +21 -0
  6. package/src/components/common/subform/README.md +6 -0
  7. package/src/components/common/subform/package.json +48 -0
  8. package/src/components/common/subform/src/component.jsx +75 -0
  9. package/src/components/common/subform/src/index.js +3 -0
  10. package/src/components/common/wangeditor/LICENSE +21 -0
  11. package/src/components/common/wangeditor/README.md +14 -0
  12. package/src/components/common/wangeditor/package-lock.json +114 -0
  13. package/src/components/common/wangeditor/package.json +52 -0
  14. package/src/components/common/wangeditor/src/component.jsx +74 -0
  15. package/src/components/common/wangeditor/src/index.js +3 -0
  16. package/src/core/LICENSE +21 -0
  17. package/src/core/README.md +120 -0
  18. package/src/core/babel.config.js +13 -0
  19. package/src/core/bili.config.js +34 -0
  20. package/src/core/package-lock.json +13 -0
  21. package/src/core/package.json +61 -0
  22. package/src/core/src/components/formCreate.js +287 -0
  23. package/src/core/src/components/fragment.js +12 -0
  24. package/src/core/src/factory/context.js +264 -0
  25. package/src/core/src/factory/creator.js +63 -0
  26. package/src/core/src/factory/maker.js +17 -0
  27. package/src/core/src/factory/manager.js +87 -0
  28. package/src/core/src/factory/node.js +89 -0
  29. package/src/core/src/factory/parser.js +28 -0
  30. package/src/core/src/frame/api.js +691 -0
  31. package/src/core/src/frame/attrs.js +12 -0
  32. package/src/core/src/frame/dataDriver.js +76 -0
  33. package/src/core/src/frame/fetch.js +128 -0
  34. package/src/core/src/frame/index.js +792 -0
  35. package/src/core/src/frame/language.js +50 -0
  36. package/src/core/src/frame/provider.js +297 -0
  37. package/src/core/src/frame/util.js +311 -0
  38. package/src/core/src/handler/context.js +573 -0
  39. package/src/core/src/handler/effect.js +122 -0
  40. package/src/core/src/handler/index.js +143 -0
  41. package/src/core/src/handler/inject.js +199 -0
  42. package/src/core/src/handler/input.js +199 -0
  43. package/src/core/src/handler/lifecycle.js +55 -0
  44. package/src/core/src/handler/loader.js +375 -0
  45. package/src/core/src/handler/page.js +46 -0
  46. package/src/core/src/handler/render.js +29 -0
  47. package/src/core/src/index.js +12 -0
  48. package/src/core/src/parser/html.js +17 -0
  49. package/src/core/src/render/cache.js +47 -0
  50. package/src/core/src/render/index.js +33 -0
  51. package/src/core/src/render/render.js +418 -0
  52. package/src/core/types/index.d.ts +842 -0
  53. package/src/index.js +5 -0
  54. package/src/utils/LICENSE +21 -0
  55. package/src/utils/README.md +24 -0
  56. package/src/utils/lib/console.js +16 -0
  57. package/src/utils/lib/debounce.js +9 -0
  58. package/src/utils/lib/deepextend.js +51 -0
  59. package/src/utils/lib/deepset.js +14 -0
  60. package/src/utils/lib/extend.js +20 -0
  61. package/src/utils/lib/index.js +14 -0
  62. package/src/utils/lib/json.js +90 -0
  63. package/src/utils/lib/mergeprops.js +62 -0
  64. package/src/utils/lib/mitt.js +43 -0
  65. package/src/utils/lib/modify.js +8 -0
  66. package/src/utils/lib/slot.js +8 -0
  67. package/src/utils/lib/toarray.js +5 -0
  68. package/src/utils/lib/tocase.js +11 -0
  69. package/src/utils/lib/todate.js +10 -0
  70. package/src/utils/lib/toline.js +10 -0
  71. package/src/utils/lib/topromise.js +10 -0
  72. package/src/utils/lib/tostring.js +7 -0
  73. package/src/utils/lib/type.js +45 -0
  74. package/src/utils/lib/unique.js +6 -0
  75. package/src/utils/package.json +32 -0
  76. package/src/vant/LICENSE +21 -0
  77. package/src/vant/README.md +137 -0
  78. package/src/vant/auto-import.d.ts +5 -0
  79. package/src/vant/auto-import.js +50 -0
  80. package/src/vant/babel.config.js +10 -0
  81. package/src/vant/bili.config.js +40 -0
  82. package/src/vant/examples/App.vue +96 -0
  83. package/src/vant/examples/main.js +13 -0
  84. package/src/vant/examples/rule.js +366 -0
  85. package/src/vant/package-lock.json +11367 -0
  86. package/src/vant/package.json +83 -0
  87. package/src/vant/public/index.html +14 -0
  88. package/src/vant/src/components/calendar.jsx +128 -0
  89. package/src/vant/src/components/cascader.jsx +120 -0
  90. package/src/vant/src/components/checkbox.jsx +38 -0
  91. package/src/vant/src/components/datePicker.jsx +87 -0
  92. package/src/vant/src/components/group.jsx +384 -0
  93. package/src/vant/src/components/icon/IconWarning.vue +12 -0
  94. package/src/vant/src/components/index.js +26 -0
  95. package/src/vant/src/components/radio.jsx +38 -0
  96. package/src/vant/src/components/select.jsx +81 -0
  97. package/src/vant/src/components/timePicker.jsx +76 -0
  98. package/src/vant/src/components/uploader.jsx +99 -0
  99. package/src/vant/src/core/alias.js +31 -0
  100. package/src/vant/src/core/api.js +135 -0
  101. package/src/vant/src/core/config.js +35 -0
  102. package/src/vant/src/core/index.js +45 -0
  103. package/src/vant/src/core/manager.js +282 -0
  104. package/src/vant/src/core/provider.js +63 -0
  105. package/src/vant/src/core/utils.js +15 -0
  106. package/src/vant/src/index.js +13 -0
  107. package/src/vant/src/parsers/hidden.js +12 -0
  108. package/src/vant/src/parsers/index.js +59 -0
  109. package/src/vant/src/parsers/row.js +10 -0
  110. package/src/vant/src/style/index.css +495 -0
  111. package/src/vant/types/config.d.ts +99 -0
  112. package/src/vant/types/index.d.ts +27 -0
  113. package/src/vant/vue.config.js +21 -0
package/dist/index.min.js CHANGED
@@ -1,8 +1,8 @@
1
1
  /*!
2
- * icarys-form-create-vant v1.0.2
3
- * (c) 2024 icarys
2
+ * icarys-form-create-vant v1.0.4
3
+ * (c) 2024 lvyanrui
4
4
  * Github https://github.com/your-username/icarys-form-create-vant
5
5
  * Released under the MIT License.
6
6
  */
7
- !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@form-create/component-subform/dist/index"),require("vue"),require("@form-create/utils/lib/type"),require("dayjs"),require("@form-create/utils/lib/toarray"),require("@form-create/utils/lib/deepextend"),require("@form-create/utils/lib/extend"),require("@form-create/utils"),require("@form-create/core/src/index"),require("@form-create/utils/lib/mergeprops"),require("vant"),require("@form-create/core/src/frame/util"),require("@form-create/utils/lib/debounce"),require("@form-create/utils/lib/toline"),require("@form-create/utils/lib/console"),require("@form-create/utils/lib/tocase"),require("@form-create/utils/lib/json"),require("@form-create/utils/lib/modify"),require("@form-create/utils/lib/unique"),require("@form-create/utils/lib/tostring"),require("@form-create/utils/lib/deepset"),require("@form-create/utils/lib/mitt")):"function"==typeof define&&define.amd?define(["exports","@form-create/component-subform/dist/index","vue","@form-create/utils/lib/type","dayjs","@form-create/utils/lib/toarray","@form-create/utils/lib/deepextend","@form-create/utils/lib/extend","@form-create/utils","@form-create/core/src/index","@form-create/utils/lib/mergeprops","vant","@form-create/core/src/frame/util","@form-create/utils/lib/debounce","@form-create/utils/lib/toline","@form-create/utils/lib/console","@form-create/utils/lib/tocase","@form-create/utils/lib/json","@form-create/utils/lib/modify","@form-create/utils/lib/unique","@form-create/utils/lib/tostring","@form-create/utils/lib/deepset","@form-create/utils/lib/mitt"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).icarysFormCreateVant={},e.subForm,e.Vue,e.is$1,e.dayjs,e.toArray$1,e.deepExtend$1,e.extend$1,e.utils,e.FormCreateFactory$1,e.mergeProps,e.vant,e.util,e.debounce$1,e.toLine$1,e.console$1,e.toCase,e.json,e.modify,e.unique$1,e.toString$1,e.deepSet$1,e.Mitt)}(this,(function(e,t,r,n,i,o,a,s,l,u,c,d,p,f,m,g,v,y,b,_,x,$,w){"use strict";function k(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var C=k(t),S=k(n),V=k(i),F=k(o),D=k(a),O=k(s),R=k(u),j=k(c),E=k(f),A=k(m),P=k(v),N=k(_),T=k(x),I=k($),B=k(w);function L(){return(L=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)({}).hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e}).apply(null,arguments)}var q=r.defineComponent({name:"fcCalendar",inheritAttrs:!1,props:{placeholder:String,formCreateInject:Object,disabled:Boolean,clearable:Boolean,type:String,modelValue:[String,Array],minDate:[String,Date],maxDate:[String,Date]},emits:["update:modelValue","change","fc.el"],setup(e,t){const i=r.ref(!1),o=r.toRef(e,"modelValue"),a=r.toRef(e,"formCreateInject"),s=r.ref(o.value);r.watch(()=>o.value,e=>{s.value=e});const l=e=>V.default(e).format("YYYY-MM-DD"),u=e=>V.default(e).toDate(),c=r.computed(()=>{const e=o.value;return Array.isArray(e)?e.map(u):e?u(e):null}),d=r.computed(()=>({minDate:e.minDate?V.default(e.minDate).toDate():void 0,maxDate:e.maxDate?V.default(e.maxDate).toDate():void 0})),p=e=>{Array.isArray(e)?s.value=e.map(l):s.value=e?l(e):e},h=()=>{t.emit("update:modelValue",s.value),t.emit("change",s.value)},f={range:()=>s.value.length?s.value.join(" - "):"",multiple:()=>s.value.length?a.value.t("selectedData",{length:s.value.length})||`选择了 ${s.value.length} 个日期`:""};return{show:i,inputValue:s,defaultDate:c,dateRange:d,open(){e.disabled||(i.value=!0)},confirm(e){p(e),i.value=!1,h()},getStrValue:()=>s.value?n.hasProperty(f,e.type)?f[e.type]():s.value||"":"",clear(e){e.stopPropagation();const t=Array.isArray(s.value)?[]:"";p(t),h()}}},render(){return h("div",{class:"_fc-calendar"},h("van-field",{ref:"el",placeholder:this.placeholder,readonly:!0,disabled:this.$props.disabled,onClick:this.open,"model-value":this.getStrValue(),isLink:!0,border:!1,"v-slots":{"right-icon":()=>this.$props.clearable&&!S.default.empty(this.inputValue)?h("i",{class:"van-badge__wrapper van-icon van-icon-clear van-field__clear",onClick:this.clear}):void 0}}),h("van-calendar",L({},this.$attrs,this.dateRange,{show:this.show,"onUpdate:show":e=>this.show=e,type:this.type,onConfirm:this.confirm,defaultDate:this.defaultDate})))},mounted(){this.$emit("fc.el",this.$refs.el)}});const M=e=>e&&Array.isArray(e)?e.map(e=>{const t={...e};return void 0!==t.label&&void 0===t.text&&(t.text=t.label),t.children&&Array.isArray(t.children)&&(t.children=M(t.children)),t}):[];var U=r.defineComponent({name:"fcCascader",inheritAttrs:!1,props:{placeholder:String,disabled:Boolean,clearable:Boolean,fieldNames:Object,modelValue:[String,Number],options:Array,minDate:[String,Date],maxDate:[String,Date]},emits:["update:modelValue","fc.el","change"],setup(e,t){const n=r.ref(!1),i=r.toRef(e,"modelValue"),o=r.toRef(e,"fieldNames",{}),a=r.computed(()=>{var t;return null!=o&&null!==(t=o.value)&&void 0!==t&&t.text?e.options||[]:M(e.options||[])}),s=(e,t,r)=>{for(let n=0;n<e.length;n++){if(e[n][o.value.value||"value"]===t)return[...r,e[n]];if(e[n][o.value.children||"children"]){const i=s(e[n][o.value.children||"children"],t,[...r,e[n]]);if(i)return i}}},l=e=>{if(null==e||""===e)return"";const t=s(a.value,e,[]);return t?t.map(e=>e[o.value.text||"text"]).join(" / "):e},u=r.ref(l(i.value));r.watch(()=>i.value,e=>{u.value=l(e)}),r.watch(()=>a.value,()=>{null!=i.value&&""!==i.value&&(u.value=l(i.value))},{deep:!0});const c=e=>{t.emit("update:modelValue",e),t.emit("change",e)};return{show:n,inputValue:u,options:a,open(){e.disabled||(n.value=!0)},confirm({selectedOptions:e,value:t}){u.value=e.map(e=>e[o.value.text||"text"]).join(" / "),n.value=!1,c(t)},clear(e){e.stopPropagation(),u.value="",c("")}}},render(){return h("div",{class:"_fc-cascader"},h("van-field",{ref:"el",placeholder:this.placeholder,readonly:!0,disabled:this.$props.disabled,onClick:this.open,"model-value":this.inputValue,border:!1,isLink:!0,"v-slots":{"right-icon":()=>this.$props.clearable&&this.inputValue?h("i",{class:"van-badge__wrapper van-icon van-icon-clear van-field__clear",onClick:this.clear}):void 0}}),h("van-popup",{show:this.show,"onUpdate:show":e=>this.show=e,round:!0,position:"bottom"},h("van-cascader",L({},this.$attrs,{modelValue:this.modelValue,fieldNames:this.fieldNames,options:this.options,onClose:()=>this.show=!1,onFinish:this.confirm}))))},mounted(){this.$emit("fc.el",this.$refs.el)}});var J=r.defineComponent({name:"fcCheckbox",inheritAttrs:!1,props:{modelValue:Array,options:Array},emits:["update:modelValue","change"],setup(e,t){const n=r.toRef(e,"modelValue",[]);return{options:r.toRef(e,"options"),modelValue:n,onInput(e){t.emit("update:modelValue",e),t.emit("change",e)}}},render(){return h("van-checkbox-group",L({direction:"horizontal"},this.$attrs,{modelValue:Array.isArray(this.modelValue)?this.modelValue:[],onUpdateModelValue:this.onInput}),(this.options||[]).map(e=>{const t={...e},{text:r,value:n}=e;return delete t.text,delete t.value,h("van-checkbox",L({name:n,shape:"square"},t),r||e.label||n)}))}});var G=r.defineComponent({name:"fcSelect",inheritAttrs:!1,props:{disabled:Boolean,placeholder:String,columnsFieldNames:Object,modelValue:[String,Number,Boolean],options:Array},emits:["update:modelValue","fc.el","change"],setup(e,t){const n=r.ref(!1),i=r.toRef(e,"modelValue"),o=r.toRef(e,"columnsFieldNames",{}),a=r.computed(()=>{var t;return null!=o&&null!==(t=o.value)&&void 0!==t&&t.text?e.options||[]:M(e.options||[])}),s=r.computed(()=>{if(null==i.value||""===i.value)return"";for(let e=0;e<(a.value||[]).length;e++)if(a.value[e][o.value.value||"value"]===i.value)return a.value[e][o.value.text||"text"];return i.value});return{show:n,inputValue:s,options:a,open(){e.disabled||(n.value=!0)},confirm({selectedValues:e}){var r;r=e[0],t.emit("update:modelValue",r),t.emit("change",r),n.value=!1}}},render(){return h("div",{class:"_fc-select"},h("van-field",{ref:"el",placeholder:this.placeholder,readonly:!0,disabled:this.$props.disabled,onClick:this.open,"model-value":this.inputValue,isLink:!0}),h("van-popup",{show:this.show,"onUpdate:show":e=>this.show=e,round:!0,position:"bottom"},h("van-picker",L({},this.$attrs,{modelValue:[this.modelValue],columnsFieldNames:this.columnsFieldNames,columns:this.options,onCancel:()=>this.show=!1,onConfirm:this.confirm}))))},mounted(){this.$emit("fc.el",this.$refs.el)}});function z(e,t){return"object"==typeof e?e:{url:e,is_string:!0,name:W(e),uid:t}}function H(e){return{...e,file:e,value:e}}function W(e){return(""+e).split("/").pop()}var K=r.defineComponent({name:"fcUploader",inheritAttrs:!1,props:{formCreateInject:Object,modelValue:[Array,String,Object],afterRead:Function,action:String,headers:Object,method:String,data:Object,uploadName:String,onSuccess:Function,onError:Function,maxCount:Number},emits:["update:modelValue","delete"],setup(e,t){const n=r.toRef(e,"afterRead"),i=r.toRef(e,"modelValue",[]),o=r.ref(F.default(i.value).map(z).map(H));r.watch(()=>i.value,e=>{o.value=F.default(e).map(z).map(H)});const a=()=>{let r=o.value.map(e=>e.is_string?e.url:e.value||e.url).filter(e=>void 0!==e);t.emit("update:modelValue",1===e.maxCount?r[0]||"":r)};return{fileList:o,modelValue:i,onDelete(e){a(),t.emit("delete",e)},uploadFile(t){if(t.status="uploading",n.value)return n.value(t);{const r=e.data||{};r[e.uploadName||"file"]=t.file,e.formCreateInject.api.fetch({action:e.action,dataType:"formData",source:"upload",headers:e.headers||{},method:e.method||"post",data:r}).then(r=>{t.status="success",e.onSuccess&&e.onSuccess(r,t),a()}).catch(r=>{t.status="failed",t.message=this.formCreateInject.t("uploadFail")||"上传失败",e.onError&&e.onError(r,t)})}}}},render(){return h("van-uploader",L({},this.$attrs,{"model-value":this.fileList,maxCount:this.maxCount,"onUpdate:model-value":e=>this.fileList=e,afterRead:this.uploadFile,onDelete:this.onDelete,"v-slots":this.$slots}))}});var X=r.defineComponent({name:"fcRadio",inheritAttrs:!1,props:{modelValue:[String,Number,Boolean],options:Array},emits:["update:modelValue","change"],setup(e,t){const n=r.toRef(e,"modelValue",[]);return{options:r.toRef(e,"options"),modelValue:n,onInput(e){t.emit("update:modelValue",e),t.emit("change",e)}}},render(){return h("van-radio-group",L({direction:"horizontal"},this.$attrs,{modelValue:this.modelValue,onUpdateModelValue:this.onInput}),(this.options||[]).map(e=>{const t={...e},{text:r,value:n}=e;return delete t.text,delete t.value,h("van-radio",L({name:n},t),r||e.label||n)}))}});var Y=r.defineComponent({name:"fcDatePicker",inheritAttrs:!1,props:{disabled:Boolean,clearable:Boolean,placeholder:String,modelValue:[String,Number],minDate:[String,Date],maxDate:[String,Date]},emits:["update:modelValue","fc.el","change"],setup(e,t){const n=r.ref(!1),i=r.toRef(e,"modelValue"),o=r.computed(()=>null==i.value||""===i.value?[]:i.value.split("-")),a=r.computed(()=>({minDate:e.minDate?V.default(e.minDate).toDate():void 0,maxDate:e.maxDate?V.default(e.maxDate).toDate():void 0})),s=e=>{t.emit("update:modelValue",e),t.emit("change",e)};return{show:n,formValue:o,dateRange:a,open(){e.disabled||(n.value=!0)},confirm({selectedValues:e}){s(e.join("-")),n.value=!1},clear(e){e.stopPropagation(),s("")}}},render(){return h("div",{class:"_fc-date-picker"},h("van-field",{ref:"el",placeholder:this.placeholder,readonly:!0,disabled:this.$props.disabled,onClick:this.open,"model-value":this.modelValue,border:!1,isLink:!0,"v-slots":{"right-icon":()=>this.$props.clearable&&this.modelValue?h("i",{class:"van-badge__wrapper van-icon van-icon-clear van-field__clear",onClick:this.clear}):void 0}}),h("van-popup",{show:this.show,"onUpdate:show":e=>this.show=e,round:!0,position:"bottom"},h("van-date-picker",L({columnsType:["year","month","day"]},this.$attrs,this.dateRange,{modelValue:this.formValue,onConfirm:this.confirm,onCancel:()=>this.show=!1}))))},mounted(){this.$emit("fc.el",this.$refs.el)}});var Z=r.defineComponent({name:"fcTimePicker",inheritAttrs:!1,props:{disabled:Boolean,clearable:Boolean,placeholder:String,modelValue:[String,Number]},emits:["update:modelValue","fc.el","change"],setup(e,t){const n=r.ref(!1),i=r.toRef(e,"modelValue"),o=r.computed(()=>null==i.value||""===i.value?[]:i.value.split(":")),a=e=>{t.emit("update:modelValue",e),t.emit("change",e)};return{show:n,formValue:o,open(){e.disabled||(n.value=!0)},confirm({selectedValues:e}){a(e.join(":")),n.value=!1},clear(e){e.stopPropagation(),a("")}}},render(){return h("div",{class:"_fc-time-picker"},h("van-field",{ref:"el",placeholder:this.placeholder,readonly:!0,disabled:this.$props.disabled,onClick:this.open,"model-value":this.modelValue,border:!1,isLink:!0,"v-slots":{"right-icon":()=>this.$props.clearable&&this.modelValue?h("i",{class:"van-badge__wrapper van-icon van-icon-clear van-field__clear",onClick:this.clear}):void 0}}),h("van-popup",{show:this.show,"onUpdate:show":e=>this.show=e,round:!0,position:"bottom"},h("van-time-picker",L({columnsType:["hour","minute"]},this.$attrs,{modelValue:this.formValue,onConfirm:this.confirm,onCancel:()=>this.show=!1}))))},mounted(){this.$emit("fc.el",this.$refs.el)}});var Q=r.defineComponent({name:"fcGroup",props:{field:String,rule:Array,expand:Number,options:Object,button:{type:Boolean,default:!0},max:{type:Number,default:0},min:{type:Number,default:0},modelValue:{type:Array,default:()=>[]},defaultValue:Object,sortBtn:{type:Boolean,default:!1},disabled:{type:Boolean,default:void 0},title:{type:[String,Function],default:null},type:{type:String,default:"default"},onBeforeRemove:{type:Function,default:()=>{}},onBeforeAdd:{type:Function,default:()=>{}},formCreateInject:Object,parse:Function},data(){return{len:0,cacheRule:{},cacheValue:{},sort:[],form:r.markRaw(this.formCreateInject.form.$form())}},emits:["update:modelValue","change","itemMounted","remove","add"],watch:{rule:{handler(e,t){Object.keys(this.cacheRule).forEach(r=>{const n=this.cacheRule[r];if(n.$f){const r=n.$f.formData();if(e===t)n.$f.deferSyncValue(()=>{D.default(n.rule,e),n.$f.setValue(r)},!0);else{const t=n.$f.formData();n.$f.once("reloading",()=>{n.$f.setValue(t)}),n.rule=a.deepCopy(e)}}})},deep:!0},expand(e){let t=e-this.modelValue.length;t>0&&this.expandRule(t)},modelValue:{handler(e){e=e||[];let t=this.sort,r=t.length,n=r-e.length;if(n<0){for(let t=n;t<0;t++)this.addRule(e.length+t,!0);for(let n=0;n<r;n++)this.setValue(t[n],e[n])}else{if(n>0)for(let e=0;e<n;e++)this.removeRule(t[r-e-1]);e.forEach((r,n)=>{this.setValue(t[n],e[n])})}},deep:!0}},methods:{_value(e){return e&&n.hasProperty(e,this.field)?e[this.field]:e},cache(e,t){this.cacheValue[e]=JSON.stringify(t)},input(e){this.$emit("update:modelValue",e),this.$emit("change",e)},formData(e,t){const r=this.cacheRule,n=this.sort;if(n.filter(e=>r[e]&&r[e].$f).length!==n.length)return;const i=n.map(r=>{const n=e===r?t:{...this.cacheRule[r].$f.form},i=this.field?n[this.field]||null:n;return this.cache(r,i),i});this.input(i)},setValue(e,t){const r=this.field;r&&(t={[r]:this._value(t)}),this.cacheValue[e]!==JSON.stringify(r?t[r]:t)&&(this.cacheRule[e].$f&&this.cacheRule[e].$f.coverValue(t),this.cache(e,t))},addRule(e,t){const n=this.formCreateInject.form.copyRules(this.rule||[]),i=this.options?{...this.options}:{submitBtn:!1,resetBtn:!1};if(this.defaultValue){i.formData||(i.formData={});const e=a.deepCopy(this.defaultValue);O.default(i.formData,this.field?{[this.field]:e}:e)}this.parse&&this.parse({rule:n,options:i,index:this.sort.length}),this.cacheRule[++this.len]={rule:n,options:i},this.sort=Object.keys(this.cacheRule),t&&r.nextTick(()=>this.$emit("add",n,Object.keys(this.cacheRule).length-1))},add$f(e,t,n){this.cacheRule[t].$f=n,r.nextTick(()=>{this.$emit("itemMounted",n,Object.keys(this.cacheRule).indexOf(t))})},removeRule(e,t){const n=Object.keys(this.cacheRule).indexOf(e);delete this.cacheRule[e],delete this.cacheValue[e],this.sort=Object.keys(this.cacheRule),t&&r.nextTick(()=>this.$emit("remove",n))},add(e){if(this.disabled||!1===this.onBeforeAdd(this.modelValue))return;const t=[...this.modelValue];t.push(this.defaultValue?a.deepCopy(this.defaultValue):this.field?null:{}),this.input(t)},del(e,t){if(this.disabled)return;const r=()=>{this.removeRule(t,!0);const r=[...this.modelValue];r.splice(e,1),this.input(r)};l.toPromise(this.onBeforeRemove(this.modelValue,e)).then(e=>{!1!==e&&r()})},addIcon(e){return h("div",{class:"_fc-m-group-btn _fc-m-group-plus-minus",onClick:this.add})},delIcon(e,t){return h("div",{class:"_fc-m-group-btn _fc-m-group-plus-minus _fc-m-group-minus",onClick:()=>this.del(e,t)})},sortUpIcon(e){return h("div",{class:"_fc-m-group-btn _fc-m-group-arrow _fc-m-group-up",onClick:()=>this.changeSort(e,-1)})},sortDownIcon(e){return h("div",{class:"_fc-m-group-btn _fc-m-group-arrow _fc-m-group-down",onClick:()=>this.changeSort(e,1)})},changeSort(e,t){const r=this.sort[e];this.sort[e]=this.sort[e+t],this.sort[e+t]=r,this.formCreateInject.subForm(this.sort.map(e=>this.cacheRule[e].$f)),this.formData(0)},sortIcon(e,t){const r=e>0,n=e<t-1;return r||n?r&&n?h("div",{class:"_fc-m-group-btn _fc-m-group-sort"},h("div",{class:"_fc-m-group-sort-up",onClick:()=>this.changeSort(e,-1)}),h("div",{class:"_fc-m-group-sort-down",onClick:()=>this.changeSort(e,1)})):r?this.sortUpIcon(e):n?this.sortDownIcon(e):void 0:null},makeIcon(e,t,r){if(this.$slots.button)return this.$slots.button({total:e,index:t,vm:this,key:r,del:()=>this.del(t,r),add:this.add});const n=[];if((!this.max||e<this.max)&&e===t+1&&n.push(this.addIcon(r)),e>this.min&&n.push(this.delIcon(t,r)),this.sortBtn){const r=this.sortIcon(t,e);r&&n.push(r)}return n},expandRule(e){for(let t=0;t<e;t++)this.modelValue.push(this.field?null:{});this.input([...this.modelValue])},getTitle(e,t){return"function"==typeof this.title?this.title(e,this.modelValue[e],t):"string"==typeof this.title&&this.title.replace("{index}",e+1)}},created(){const e=(this.expand||0)-this.modelValue.length;for(let e=0;e<this.modelValue.length;e++)this.addRule(e);e>0&&this.expandRule(e)},render(){const e=this.sort,t=this.button,r=this.form,n=this.disabled,i="card"===this.type,o=0===e.length?this.$slots.default?this.$slots.default({vm:this,add:this.add}):h("div",{key:"a_def",class:"_fc-m-group-plus-minus _fc-m-group-add fc-clock",onClick:this.add}):e.map((o,a)=>{const{rule:s,options:l}=this.cacheRule[o],u=t&&!n?this.makeIcon(e.length,a,o):[],c=this.getTitle(a,o);return i?h("div",{class:"_fc-m-group-container",key:o},h("div",{class:"_fc-m-group-header"},!1===c?h("div",{class:"_fc-m-group-idx"},a+1):null,!1!==c?h("div",{class:"_fc-m-group-title"},c):null,h("div",{class:"_fc-m-group-handle fc-clock"},u.length?u:null)),h("div",{class:"_fc-m-group-content"},h(r,{key:o,disabled:n,"onUpdate:modelValue":e=>this.formData(o,e),"onUpdate:api":e=>this.add$f(a,o,e),inFor:!0,modelValue:this.field?{[this.field]:this._value(this.modelValue[a])}:this.modelValue[a],rule:s,option:l,extendOption:!0}))):h("div",{class:"_fc-m-group-container",key:o},h(r,{key:o,disabled:n,"onUpdate:modelValue":e=>this.formData(o,e),"onUpdate:api":e=>this.add$f(a,o,e),inFor:!0,modelValue:this.field?{[this.field]:this._value(this.modelValue[a])}:this.modelValue[a],rule:s,option:l,extendOption:!0}),h("div",{class:"_fc-m-group-idx"},a+1),u.length?h("div",{class:"_fc-m-group-handle fc-clock"},u):null)});return h("div",{key:"con",class:"_fc-m-group "+(n?"_fc-m-group-disabled":"")+(i?" _fc-m-group-card":"")},o)}}),ee={name:"IconWarning"};const te={class:"icon",viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"};ee.render=function(e,t,n,i,o,a){return r.openBlock(),r.createElementBlock("svg",te,[...t[0]||(t[0]=[r.createElementVNode("path",{fill:"currentColor",d:"M512 64a448 448 0 110 896 448 448 0 010-896zm0 832a384 384 0 000-768 384 384 0 000 768zm48-176a48 48 0 11-96 0 48 48 0 0196 0zm-48-464a32 32 0 0132 32v288a32 32 0 01-64 0V288a32 32 0 0132-32z"},null,-1)])])};var re=[C.default,ee,q,U,J,X,G,Y,Z,Q,K];var ne=[{name:"hidden",maker:{hidden:(e,t)=>u.creatorFactory("hidden")("",e,t)},render:()=>[]},{name:"FcRow",render:(e,t)=>t.vNode.col({props:{span:24}},{default:()=>[t.vNode.row(t.prop,e)]})},{name:"cascader",mergeProp(e){const t=e.prop.props;n.hasProperty(t,"options")||(t.options=e.prop.options||[])}},{name:"checkbox",mergeProp(e){const t=e.prop.props;n.hasProperty(t,"options")||(t.options=e.prop.options||[])}},{name:"radio",mergeProp(e){const t=e.prop.props;n.hasProperty(t,"options")||(t.options=e.prop.options||[])}},{name:"select",mergeProp(e){const t=e.prop.props;n.hasProperty(t,"options")||(t.options=e.prop.options||[])}},{name:"textarea",mergeProp(e){let{props:t}=e.prop;t.type="textarea"}}];var ie={button:"van-button",icon:"van-icon",slider:"van-slider",stepper:"van-stepper",inputNumber:"van-stepper",rate:"van-rate",uploader:"fc-uploader",upload:"fc-uploader",cell:"van-cell",timePicker:"fc-time-picker",datePicker:"fc-date-picker",switch:"van-switch",select:"fc-select",cascader:"fc-cascader",calendar:"fc-calendar",checkbox:"fc-checkbox",radio:"fc-radio",input:"van-field",textarea:"van-field",field:"van-field",formItem:"van-field",form:"van-form",col:"van-col",row:"van-row",group:"fc-group",array:"fc-group",object:"fc-sub-form",subForm:"fc-sub-form"};function oe(e,t){n.hasProperty(e,t)&&S.default.String(e[t])&&(e[t]={[t]:e[t],show:!0})}function ae(e){return!1===e}function se(e){const t={...e};return delete t.children,t}var le={validate(){const e=this.form();return e?e.validate():new Promise(e=>e())},validateField(e){return new Promise((t,r)=>{const n=this.form();n?n.validate(e).then(t).catch(r):t()})},clearValidateState(e){const t=this.form();if(t)return t.resetValidation(e.id)},tidyOptions:e=>(["submitBtn","resetBtn","row","info","wrap","col","title"].forEach(t=>{!function(e,t){n.hasProperty(e,t)&&!S.default.Object(e[t])&&(e[t]={show:!!e[t]})}(e,t)}),e),tidyRule:({prop:e})=>(oe(e,"title"),oe(e,"info"),e.validate&&e.validate.forEach(e=>{S.default.String(e.pattern)&&(e.pattern=new RegExp(e.pattern))}),e),mergeProp(e){const t={info:{icon:!0},title:{},col:{span:24},wrap:{}};["info","wrap","col","title"].forEach(r=>{e.prop[r]=j.default([this.options[r]||{},e.prop[r]||{}],t[r])})},getDefaultOptions:()=>({form:{required:"auto",labelAlign:"right",inputAlign:"right"},row:{show:!0,gutter:0},submitBtn:{type:"primary",loading:!1,disabled:!1,block:!0,innerText:"",size:"small",show:!0,col:void 0,click:void 0},resetBtn:{type:"default",loading:!1,disabled:!1,block:!0,innerText:"",size:"small",show:!1,col:void 0,click:void 0}}),adapterValidate:(e,t)=>("change"===e.trigger?e.trigger="onChange":"blur"===e.trigger&&(e.trigger="onBlur"),e.validator=r=>new Promise(n=>t(r,t=>{e.message=t,t?n(!1):n()})),e),update(){const e=this.options.form;this.rule={props:{...e},on:{submit:e=>{e.preventDefault()}},style:e.style,type:"form"}},beforeRender(){const{key:e,ref:t}=this,r=this.options.form;O.default(this.rule,{key:e,ref:t,class:[r.className,r.class,"form-create-m",this.$handle.preview?"is-preview":""]})},render(e){return e.slotLen()&&!this.$handle.preview&&e.setSlot(void 0,()=>this.makeFormBtn()),this.$r(this.rule,ae(this.options.row.show)?e.getSlots():[this.makeRow(e)])},makeWrap(e,t){const r=e.prop,n=`${this.key}${e.key}`,i=r.col,o=this.isTitle(r)&&!1!==r.wrap.title,{col:a}=this.rule.props,s=r.wrap.class;delete r.wrap.class,delete r.wrap.title;const l=ae(r.wrap.show)?t:this.$r(j.default([r.wrap,{props:{modelValue:e.rule.value,label:o?r.title.title:void 0,...se(r.wrap||{}),name:e.id,rules:e.injectValidate()},class:this.$render.mergeClass(s||r.className,"fc-form-item"),key:n+"fi",ref:e.wrapRef,type:"formItem"}]),{input:()=>t,...o?{label:()=>this.makeInfo(r,n,e)}:{}});return ae(a)||ae(i.show)?l:this.makeCol(r,n,[l])},isTitle(e){if(!1===this.options.form.title)return!1;const t=e.title;return!(!t.title&&!t.native||ae(t.show))},makeInfo(e,t,r){var n,i;const o={...e.title},a={...e.info},s=this.getSlot("title"),l=[s?s({title:null===(n=r.refRule)||void 0===n||null===(n=n.__$title)||void 0===n?void 0:n.value,rule:r.rule,options:this.options}):null===(i=r.refRule)||void 0===i||null===(i=i.__$title)||void 0===i?void 0:i.value],u=!ae(a.show)&&(a.info||a.native)&&!ae(a.icon);u&&l["left"!==a.align?"unshift":"push"](this.$r({type:!0===a.icon?"icon-warning":a.icon,style:"width:1em;"}));const c=j.default([o,{props:se(o),key:t+"tit",class:"fc-form-title",type:o.type||"span",on:{click:(...e)=>{var t;u&&a.info&&d.showNotify({type:"warning",message:null===(t=r.refRule)||void 0===t||null===(t=t.__$info)||void 0===t?void 0:t.value,duration:1e3});this.$handle.targetHook(r,"titleClick",{args:e})}}}]);return delete c.props.show,delete c.props.title,delete c.props.native,this.$r(c,l)},makeCol(e,t,r){const n=e.col;return this.$r({class:this.$render.mergeClass(n.class,"fc-form-col"),type:"col",props:n||{span:24},key:t+"col"},r)},makeRow(e){const t=this.options.row||{};return this.$r({type:"row",props:t,class:this.$render.mergeClass(t.class,"fc-form-row"),key:this.key+"row"},e)},makeFormBtn(){let e=[];if(ae(this.options.submitBtn.show)||e.push(this.makeSubmitBtn()),ae(this.options.resetBtn.show)||e.push(this.makeResetBtn()),e.length)return this.$r({type:"cell",class:"fc-form-cell fc-form-footer",key:this.key+"fb"},e)},makeResetBtn(){const e={...this.options.resetBtn},t=e.innerText||this.$handle.api.t("reset")||"重置";return delete e.innerText,delete e.click,delete e.col,delete e.show,this.$r({type:"button",props:e,class:"fc-reset-btn",style:{width:e.width},on:{click:()=>{const e=this.$handle.api;this.options.resetBtn.click?this.options.resetBtn.click(e):e.resetFields()}},key:this.key+"b2"},[t])},makeSubmitBtn(){const e={...this.options.submitBtn},t=e.innerText||this.$handle.api.t("submit")||"提交";return delete e.innerText,delete e.click,delete e.col,delete e.show,this.$r({type:"button",props:e,class:"fc-submit-btn",style:{width:e.width},on:{click:()=>{const e=this.$handle.api;this.options.submitBtn.click?this.options.submitBtn.click(e):e.submit().catch(()=>{})}},key:this.key+"b1"},[t])}};function ue(e,t){return S.default.Boolean(e)?e={show:e}:S.default.Undef(e)||S.default.Object(e)||(e={show:t}),e}function ce(e,t){return{formEl:()=>t.$manager.form(),wrapEl(e){const r=t.getFieldCtx(e);if(r)return t.vm.refs[r.wrapRef]},validate:r=>new Promise((n,i)=>{const o=e.children,a=[t.$manager.validate()];o.filter(e=>!e.isScope).forEach(e=>{a.push(e.validate())}),Promise.all(a).then(()=>{n(!0),r&&r(!0)}).catch(n=>{i(n),r&&r(n),t.vm.emit("validate-fail",n,{api:e}),t.emitEvent("validate-fail",n,{api:e})})}),validateField:(r,n)=>new Promise((i,o)=>{const a=t.getFieldCtx(r);if(!a)return;const s=t.subForm[a.id],l=[t.$manager.validateField(a.id)];F.default(s).filter(e=>!e.isScope).forEach(e=>{l.push(e.validate())}),Promise.all(l).then(()=>{i(null),n&&n(null)}).catch(i=>{o(i),n&&n(i),t.vm.emit("validate-field-fail",i,{field:r,api:e})})}),clearValidateState(r,n=!0){e.helper.tidyFields(r).forEach(e=>{n&&this.clearSubValidateState(e),t.getCtxs(e).forEach(e=>{t.$manager.clearValidateState(e)})})},clearSubValidateState(r){e.helper.tidyFields(r).forEach(e=>{t.getCtxs(e).forEach(e=>{const r=t.subForm[e.id];r&&(Array.isArray(r)?r.forEach(e=>{e.clearValidateState()}):r&&r.clearValidateState())})})},btn:{loading:(t=!0)=>{e.submitBtnProps({loading:!!t})},disabled:(t=!0)=>{e.submitBtnProps({disabled:!!t})},show:(t=!0)=>{e.submitBtnProps({show:!!t})}},resetBtn:{loading:(t=!0)=>{e.resetBtnProps({loading:!!t})},disabled:(t=!0)=>{e.resetBtnProps({disabled:!!t})},show:(t=!0)=>{e.resetBtnProps({show:!!t})}},submitBtnProps:(r={})=>{let n=ue(t.options.submitBtn,!0);O.default(n,r),t.options.submitBtn=n,e.refreshOptions()},resetBtnProps:(r={})=>{let n=ue(t.options.resetBtn,!1);O.default(n,r),t.options.resetBtn=n,e.refreshOptions()},submit:(r,n)=>new Promise((i,o)=>{(!1===t.options.validateOnSubmit?Promise.resolve():e.validate()).then(()=>{let n=e.formData();t.beforeSubmit(n).then(()=>{S.default.Function(r)&&p.invoke(()=>r(n,e)),S.default.Function(t.options.onSubmit)&&p.invoke(()=>t.options.onSubmit(n,e)),t.vm.emit("submit",n,e),i(n)}).catch(e=>{})}).catch((...t)=>{S.default.Function(n)&&p.invoke(()=>n(e,...t)),o(...t)})})}}!function(e,t){void 0===t&&(t={});var r=t.insertAt;if(e&&"undefined"!=typeof document){var n=document.head||document.getElementsByTagName("head")[0],i=document.createElement("style");i.type="text/css","top"===r&&n.firstChild?n.insertBefore(i,n.firstChild):n.appendChild(i),i.styleSheet?i.styleSheet.cssText=e:i.appendChild(document.createTextNode(e))}}('.form-create-m {\n width: 100%;\n}\n\n.form-create-m.is-preview .fc-clock, .form-create-m .fc-none {\n display: none !important;\n}\n\n.form-create-m .fc-form-item:after {\n content: \' \' !important;\n display: block !important;\n}\n\n.form-create-m .fc-form-item .van-cell:not(.fc-form-item):after {\n display: none !important;\n}\n\n.form-create-m .fc-form-item .van-cell:not(.fc-form-item) {\n padding: 0;\n}\n\n.form-create-m .fc-form-item .fc-form-item {\n padding-left: 0;\n padding-right: 0;\n --van-padding-md: 0;\n}\n\n.form-create-m .fc-reset-btn {\n margin-top: 12px;\n}\n\n.form-create-m .fc-form-title {\n display: inline-flex;\n align-items: center;\n}\n\n.form-create-m.is-preview .van-field__label--required:before {\n display: none;\n}\n\n._fc-m-group{\n display: flex;\n align-items: flex-end;\n min-height: 38px;\n justify-content: center;\n flex-direction: column;\n width: 100%;\n}\n\n._fc-m-group-disabled ._fc-m-group-btn, ._fc-m-group-disabled ._fc-m-group-add{\n cursor: not-allowed;\n}\n\n._fc-m-group-handle {\n display: flex;\n flex-direction: row;\n position: absolute;\n bottom: -15px;\n right: 30px;\n border-radius: 15px;\n border: 1px dashed #d9d9d9;\n padding: 3px 8px;\n background-color: #ffffff;\n transform: scale(1.1);\n}\n\n._fc-m-group-btn{\n cursor: pointer;\n}\n\n._fc-m-group-idx {\n position: absolute;\n bottom: -15px;\n left: 10px;\n width: 30px;\n height: 30px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: #eee;\n border-radius: 15px;\n font-weight: 700;\n}\n\n._fc-m-group-handle ._fc-m-group-btn + ._fc-m-group-btn {\n margin-left: 7px;\n}\n\n._fc-m-group-container{\n position: relative;\n display: flex;\n flex-direction: column;\n border: 1px dashed #d9d9d9;\n border-radius: 5px;\n margin-bottom: 25px;\n padding: 5px 5px 25px;\n width: 100%;\n box-sizing: border-box;\n}\n\n._fc-m-group-arrow {\n position: relative;\n width: 20px;\n height: 20px;\n}\n\n._fc-m-group-arrow::before {\n content: "";\n position: absolute;\n top: 8px;\n left: 5px;\n width: 9px;\n height: 9px;\n border-left: 2px solid #999;\n border-top: 2px solid #999;\n}\n._fc-m-group-arrow::before {\n transform: rotate(45deg);\n}\n\n._fc-m-group-arrow._fc-m-group-down {\n transform: rotate(180deg);\n}\n\n._fc-m-group-plus-minus {\n width: 20px;\n height: 20px;\n position: relative;\n cursor: pointer;\n}\n\n._fc-m-group-plus-minus::before,\n._fc-m-group-plus-minus::after {\n content: "";\n position: absolute;\n top: 50%;\n left: 50%;\n width: 60%;\n height: 2px;\n background-color: #409eff;\n transform: translate(-50%, -50%);\n}\n\n._fc-m-group-plus-minus::before {\n transform: translate(-50%, -50%) rotate(90deg);\n}\n\n._fc-m-group-plus-minus._fc-m-group-minus::before {\n display: none;\n}\n._fc-m-group-plus-minus._fc-m-group-minus::after {\n background-color: #f56c6c;\n}\n\n._fc-m-group-add{\n cursor: pointer;\n width: 25px;\n height: 25px;\n border: 1px solid rgb(64 158 255 / 50%);\n border-radius: 15px;\n transform: scale(1.1);\n}\n\n._fc-m-group-add._fc-m-group-plus-minus::before, ._fc-m-group-add._fc-m-group-plus-minus::after {\n width: 50%;\n}\n\n/* ===== Card 类型样式 ===== */\n/* 主容器 */\n._fc-m-group._fc-m-group-card {\n display: flex;\n flex-direction: column;\n width: 100%;\n gap: 16px;\n}\n\n/* 禁用状态 */\n._fc-m-group._fc-m-group-card._fc-m-group-disabled ._fc-m-group-btn,\n._fc-m-group._fc-m-group-card._fc-m-group-disabled ._fc-m-group-add {\n cursor: not-allowed;\n opacity: 0.5;\n}\n\n/* 卡片容器 */\n._fc-m-group._fc-m-group-card ._fc-m-group-container {\n position: relative;\n background: #ffffff;\n border: 1px solid #f0f0f0;\n border-radius: 6px;\n overflow: hidden;\n display: flex;\n flex-direction: column;\n padding: 0;\n margin: 0;\n}\n\n/* 卡片头部 */\n._fc-m-group._fc-m-group-card ._fc-m-group-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 16px 20px 12px;\n border-bottom: 1px solid #f0f0f0;\n background: #fafafa;\n}\n\n/* 序号标签 */\n._fc-m-group._fc-m-group-card ._fc-m-group-idx {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 24px;\n height: 24px;\n background: #f0f0f0;\n color: #666666;\n border-radius: 6px;\n font-size: 12px;\n font-weight: 500;\n margin-right: 12px;\n flex-shrink: 0;\n position: static;\n border: 1px solid #e0e0e0;\n}\n\n/* 标题区域 */\n._fc-m-group._fc-m-group-card ._fc-m-group-title {\n flex: 1;\n font-size: 14px;\n font-weight: 500;\n color: rgba(0, 0, 0, 0.85);\n line-height: 1.5715;\n text-align: left;\n}\n\n/* 操作按钮组 - 头部右侧 */\n._fc-m-group._fc-m-group-card ._fc-m-group-handle {\n display: flex;\n align-items: center;\n gap: 4px;\n margin-left: 12px;\n flex-shrink: 0;\n position: static;\n bottom: auto;\n right: auto;\n border-radius: 0;\n border: none;\n padding: 0;\n background-color: transparent;\n flex-direction: row;\n transform: none;\n}\n\n/* 按钮基础样式 */\n._fc-m-group._fc-m-group-card ._fc-m-group-btn {\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 24px;\n height: 24px;\n border-radius: 4px;\n border: 1px solid #d9d9d9;\n background: #ffffff;\n color: rgba(0, 0, 0, 0.45);\n position: relative;\n}\n\n._fc-m-group._fc-m-group-card ._fc-m-group-btn:hover {\n color: #1890ff;\n border-color: #1890ff;\n background: #f0f8ff;\n}\n\n._fc-m-group._fc-m-group-card ._fc-m-group-btn:active {\n color: #096dd9;\n border-color: #096dd9;\n}\n\n/* 箭头按钮 */\n._fc-m-group._fc-m-group-card ._fc-m-group-arrow {\n position: relative;\n}\n\n._fc-m-group._fc-m-group-card ._fc-m-group-arrow::before {\n content: "";\n position: absolute;\n top: 50%;\n left: 50%;\n width: 5px;\n height: 5px;\n border-left: 1px solid currentColor;\n border-top: 1px solid currentColor;\n transform: translate(-50%, -50%) rotate(45deg);\n}\n\n._fc-m-group._fc-m-group-card ._fc-m-group-arrow._fc-m-group-down {\n transform: rotate(180deg);\n}\n\n/* 合并的上下箭头按钮 */\n._fc-m-group._fc-m-group-card ._fc-m-group-sort {\n position: relative;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n height: 24px;\n}\n\n._fc-m-group._fc-m-group-card ._fc-m-group-sort::before,\n._fc-m-group._fc-m-group-card ._fc-m-group-sort::after {\n content: "";\n position: absolute;\n left: 50%;\n width: 4px;\n height: 4px;\n border-left: 1px solid currentColor;\n border-top: 1px solid currentColor;\n transform: translateX(-50%);\n}\n\n._fc-m-group._fc-m-group-card ._fc-m-group-sort::before {\n top: 6px;\n transform: translateX(-50%) rotate(45deg);\n}\n\n._fc-m-group._fc-m-group-card ._fc-m-group-sort::after {\n bottom: 6px;\n transform: translateX(-50%) rotate(225deg);\n}\n\n/* 合并按钮的上下点击区域 */\n._fc-m-group._fc-m-group-card ._fc-m-group-sort-up,\n._fc-m-group._fc-m-group-card ._fc-m-group-sort-down {\n position: absolute;\n left: 0;\n right: 0;\n height: 12px;\n cursor: pointer;\n z-index: 1;\n}\n\n._fc-m-group._fc-m-group-card ._fc-m-group-sort-up {\n top: 0;\n}\n\n._fc-m-group._fc-m-group-card ._fc-m-group-sort-down {\n bottom: 0;\n}\n\n._fc-m-group._fc-m-group-card ._fc-m-group-sort-up:hover,\n._fc-m-group._fc-m-group-card ._fc-m-group-sort-down:hover {\n background: rgba(24, 144, 255, 0.1);\n}\n\n/* 加减按钮 */\n._fc-m-group._fc-m-group-card ._fc-m-group-plus-minus {\n position: relative;\n background: #409eff;\n border-color: #409eff;\n color: white;\n width: 24px;\n height: 24px;\n border-radius: 4px;\n}\n\n._fc-m-group._fc-m-group-card ._fc-m-group-plus-minus:hover {\n background: #66b1ff;\n border-color: #66b1ff;\n color: white;\n}\n\n._fc-m-group._fc-m-group-card ._fc-m-group-plus-minus::before,\n._fc-m-group._fc-m-group-card ._fc-m-group-plus-minus::after {\n content: "";\n position: absolute;\n top: 50%;\n left: 50%;\n width: 8px;\n height: 1px;\n background-color: currentColor;\n transform: translate(-50%, -50%);\n}\n\n._fc-m-group._fc-m-group-card ._fc-m-group-plus-minus::before {\n transform: translate(-50%, -50%) rotate(90deg);\n}\n\n._fc-m-group._fc-m-group-card ._fc-m-group-plus-minus._fc-m-group-minus {\n background: #f56c6c;\n border-color: #f56c6c;\n}\n\n._fc-m-group._fc-m-group-card ._fc-m-group-plus-minus._fc-m-group-minus:hover {\n background: #f78989;\n border-color: #f78989;\n}\n\n._fc-m-group._fc-m-group-card ._fc-m-group-plus-minus._fc-m-group-minus::before {\n display: none;\n}\n\n/* 表单内容区域 */\n._fc-m-group._fc-m-group-card ._fc-m-group-content {\n padding: 20px;\n}\n\n/* 添加按钮 - 与加号按钮风格一致 */\n._fc-m-group._fc-m-group-card ._fc-m-group-add {\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 24px;\n height: 24px;\n border-radius: 4px;\n border: 1px solid #d9d9d9;\n background: #ffffff;\n color: rgba(0, 0, 0, 0.45);\n position: relative;\n transform: none;\n}\n\n._fc-m-group._fc-m-group-card ._fc-m-group-add:hover {\n color: #409eff;\n border-color: #409eff;\n background: #f0f8ff;\n}\n\n._fc-m-group._fc-m-group-card ._fc-m-group-add._fc-m-group-plus-minus {\n width: 24px;\n height: 24px;\n background: #409eff;\n border-color: #409eff;\n color: white;\n}\n\n._fc-m-group._fc-m-group-card ._fc-m-group-add._fc-m-group-plus-minus:hover {\n background: #66b1ff;\n border-color: #66b1ff;\n color: white;\n}\n\n._fc-m-group._fc-m-group-card ._fc-m-group-add._fc-m-group-plus-minus::before,\n._fc-m-group._fc-m-group-card ._fc-m-group-add._fc-m-group-plus-minus::after {\n content: "";\n position: absolute;\n top: 50%;\n left: 50%;\n width: 8px;\n height: 1px;\n background-color: currentColor;\n transform: translate(-50%, -50%);\n}\n\n._fc-m-group._fc-m-group-card ._fc-m-group-add._fc-m-group-plus-minus::before {\n transform: translate(-50%, -50%) rotate(90deg);\n}\n\n/* 空状态样式 */\n._fc-m-group._fc-m-group-card ._fc-m-group-empty {\n text-align: center;\n padding: 40px 20px;\n color: rgba(0, 0, 0, 0.45);\n font-size: 14px;\n}\n\n/* 响应式设计 */\n@media (max-width: 768px) {\n ._fc-m-group._fc-m-group-card ._fc-m-group-container {\n margin: 0 -8px;\n border-radius: 0;\n border-left: none;\n border-right: none;\n }\n\n ._fc-m-group._fc-m-group-card ._fc-m-group-header {\n padding: 12px 16px 8px;\n }\n\n ._fc-m-group._fc-m-group-card ._fc-m-group-content {\n padding: 16px;\n }\n\n ._fc-m-group._fc-m-group-card ._fc-m-group-handle {\n gap: 2px;\n }\n\n ._fc-m-group._fc-m-group-card ._fc-m-group-btn {\n width: 22px;\n height: 22px;\n }\n}\n\n\n');const de={name:"required",load(e,t,r){const n=function(e){return S.default.Boolean(e)?{required:e}:S.default.String(e)?{message:e}:S.default.Undef(e)?{required:!1}:S.default.Function(e)?{validator:e}:S.default.Object(e)?e:{}}(e.getValue());let i=void 0;if(!1===n.required)e.clearProp(),r.clearValidateState([t.field]);else{const o={required:!0,validator:e=>(a(),!S.default.empty(e)),trigger:["onChange","onSubmit"],...n},a=()=>{var e;const a=null===(e=t.__fc__.refRule.__$title)||void 0===e?void 0:e.value;if(i!==a)if(i=a,n.message){const e=n.message.match(/^\{\{\s*\$t\.(.+)\s*\}\}$/);e&&(o.message=r.t(e[1],{title:a}))}else o.message=r.t("required",{title:a})||a+("en"===r.getLocale()?" is required":"不能为空")};a(),e.getProp().validate=[o]}r.sync(t)},watch(...e){de.load(...e)}};function pe(e){e.componentAlias(ie),re.forEach(t=>{e.component(t.name,t)}),e.register(de),ne.forEach(t=>{e.parser(t)}),d.Field.props&&(d.Field.props.modelValue={type:[String,Number,Array,Object,Boolean,Function],default:""})}const he=R.default({ui:"process.env.UI",version:'"1.0.2"',manager:le,extendApi:ce,install:pe,isMobile:!0,attrs:{normal:["col","wrap"],key:["title","info"]}});"undefined"!=typeof window&&(window.formCreateMobile=he),he.maker;const fe=["type","slot","ignore","emitPrefix","value","name","native","hidden","display","inject","options","emit","link","prefix","suffix","update","sync","optionsTo","key","slotUpdate","computed","preview","component","cache","modelEmit"],me=["validate","children","control"],ge=["effect","deep","renderSlots"];function ve(){return[...fe,...c.normalMerge,...c.toArrayMerge,...c.functionalMerge,...me,...ge]}function ye(e,t){return{value:e,enumerable:!1,configurable:!1,writable:!!t}}function be(e,t){return _e([e],t||!1)[0]}function _e(e,t){return D.default([],[...e],t||!1)}function xe(e,t){return j.default(Array.isArray(t)?t:[t],e,{array:me,normal:ge}),e}function $e(e){const t=S.default.Function(e.getRule)?e.getRule():e;return t.type||(t.type="input"),t}function we(e,t){Object.defineProperties(e,Object.keys(t).reduce((e,r)=>(e[r]={get:()=>t[r]()},e),{}))}function ke(e){return e.__fc__||(e.__origin__?e.__origin__.__fc__:null)}function Ce(e,t){try{t=e()}catch(e){g.logError(e)}return t}function Se(){const e={},t=e=>e||"default";return{setSlot(r,n){r=t(r),!n||Array.isArray(n)&&n.length||(e[r]||(e[r]=[]),e[r].push(n))},getSlot(r,n){r=t(r);const i=[];return(e[r]||[]).forEach(e=>{if(Array.isArray(e))i.push(...e);else if(S.default.Function(e)){const t=e(...n||[]);Array.isArray(t)?i.push(...t):i.push(t)}else S.default.Undef(e)||i.push(e)}),i},getSlots(){const t={};return Object.keys(e).forEach(e=>{t[e]=(...t)=>this.getSlot(e,t)}),t},slotLen:r=>(r=t(r),e[r]?e[r].length:0),mergeBag(e){if(!e)return this;const t=S.default.Function(e.getSlots)?e.getSlots():e;return Array.isArray(e)||r.isVNode(e)?this.setSlot(void 0,()=>e):Object.keys(t).forEach(e=>{this.setSlot(e,t[e])}),this}}}function Ve(e){const t={...e.props||{}};return Object.keys(e.on||{}).forEach(r=>{r.indexOf("-")>0&&(r=P.default(r));const n="on"+m.upper(r);Array.isArray(t[n])?t[n]=[...t[n],e.on[r]]:t[n]?t[n]=[t[n],e.on[r]]:t[n]=e.on[r]}),t.key=e.key,t.ref=e.ref,t.class=e.class,t.id=e.id,t.style=e.style,t.slot&&delete t.slot,t}function Fe(e,t){return Object.setPrototypeOf(e,t),e}const De=(e,t)=>"string"==typeof e?String(t):"number"==typeof e?Number(t):t,Oe={"==":(e,t)=>JSON.stringify(e)===JSON.stringify(De(e,t)),"!=":(e,t)=>!Oe["=="](e,t),">":(e,t)=>e>t,">=":(e,t)=>e>=t,"<":(e,t)=>e<t,"<=":(e,t)=>e<=t,on:(e,t)=>e&&e.indexOf&&e.indexOf(De(e[0],t))>-1,notOn:(e,t)=>!Oe.on(e,t),in:(e,t)=>t&&t.indexOf&&t.indexOf(e)>-1,notIn:(e,t)=>!Oe.in(e,t),between:(e,t)=>e>t[0]&&e<t[1],notBetween:(e,t)=>e<t[0]||e>t[1],empty:e=>S.default.empty(e),notEmpty:e=>!S.default.empty(e),pattern:(e,t)=>new RegExp(t,"g").test(e)};function Re(e,t){return(Array.isArray(t)?t:(t||"").split(".")).forEach(t=>{null!=e&&(e=e[t])}),e}function je(e){let t=e.split("."),r=[],n="";return t.forEach((e,t)=>{0===t?n=e:n+="."+e,r.push(n)}),r.join(" && ")}const Ee=(e,t)=>{if(e&&e!==t)return e.props.formCreateInject?e.props.formCreateInject:e.parent?Ee(e.parent,t):void 0};function Ae(e,t,n){return r.defineComponent({name:"FormCreate"+(e.isMobile?"Mobile":""),components:t,directives:n,props:{rule:{type:Array,required:!0,default:()=>[]},option:{type:Object,default:()=>({})},extendOption:Boolean,driver:[String,Object],modelValue:Object,disabled:{type:Boolean,default:void 0},preview:{type:Boolean,default:void 0},index:[String,Number],api:Object,locale:[String,Object],t:Function,name:String,subForm:{type:Boolean,default:!0},inFor:Boolean},emits:["update:api","update:modelValue","mounted","submit","reset","change","emit-event","control","remove-rule","remove-field","sync","reload","repeat-field","update","validate-field-fail","validate-fail","created"],render(){return this.fc.render()},setup(t){const n=r.getCurrentInstance();r.provide("parentFC",n);const i=r.inject("parentFC",null);let o=i;if(i)for(;o.setupState.parent;)o=o.setupState.parent;else o=n;const{rule:a,modelValue:s,subForm:l,inFor:u}=r.toRefs(t),c=r.reactive({ctxInject:{},destroyed:!1,isShow:!0,unique:1,renderRule:[...a.value||[]],updateValue:JSON.stringify(s.value||{})}),d=new e(n),p=d.api(),h=u.value;let f=null;r.onBeforeMount(()=>{r.watchEffect(()=>{let e="";const r=t.option&&t.option.globalClass||{};Object.keys(r).forEach(t=>{let n="";r[t].style&&Object.keys(r[t].style).forEach(e=>{n+=A.default(e)+":"+r[t].style[e]+";"}),r[t].content&&(n+=r[t].content+";"),n&&(e+=`.${t}{${n}}`)}),t.option&&t.option.style&&(e+=t.option.style),f||(f=document.createElement("style"),f.type="text/css",document.head.appendChild(f)),f.innerHTML=e||""})});const m=E.default(()=>{d.bus.$emit("$loadData.$topForm")},100),g=E.default((function(){d.bus.$emit("$loadData.$scopeForm")}),100),v=E.default(()=>{d.bus.$emit("$loadData.$form")},100),b=e=>{d.bus.$emit("change-$form."+e)};return r.onMounted(()=>{i&&(p.top.bus.$on("$loadData.$form",m),p.top.bus.$on("change",b)),p!==p.scope&&p.scope.bus.$on("$loadData.$scopeForm",g),d.mounted()}),r.onBeforeUnmount(()=>{i&&(p.top.bus.$off("$loadData.$form",m),p.top.bus.$off("change",b)),p!==p.scope&&p.scope.bus.$off("$loadData.$scopeForm",g),(()=>{const e=Ee(n,i);if(e)if(h){const t=F.default(e.getSubForm()),r=t.indexOf(p);r>-1&&t.splice(r,1)}else e.subForm()})(),c.destroyed=!0,d.unmount(),f&&(f.parentNode||f.parentElement)&&document.head.removeChild(f)}),r.onUpdated(()=>{d.updated()}),(()=>{if(i){const e=Ee(n,i);if(e){let t;h?(t=F.default(e.getSubForm()),t.push(p)):t=p,e.subForm(t)}}})(),r.watch(()=>t.option,()=>{d.initOptions(),p.refresh()},{deep:!0,flush:"sync"}),r.watch(()=>[...a.value],e=>{d.$handle.isBreakWatch()||e.length===c.renderRule.length&&e.every(e=>c.renderRule.indexOf(e)>-1)||(d.$handle.updateAppendData(),d.$handle.reloadRule(a.value),n.setupState.renderRule())}),r.watch(()=>[t.disabled,t.preview],()=>{p.refresh()}),r.watch(s,e=>{y.toJson(e||{})!==c.updateValue&&(p.config.forceCoverValue?p.coverValue(e||{}):p.setValue(e||{}))},{deep:!0,flush:"post"}),r.watch(()=>t.index,()=>{p.coverValue({}),d.$handle.updateAppendData(),r.nextTick(()=>{r.nextTick(()=>{p.clearValidateState()})})},{flush:"sync"}),{fc:r.markRaw(d),parent:i?r.markRaw(i):i,top:r.markRaw(o),fapi:r.markRaw(p),...r.toRefs(c),getGroupInject:()=>Ee(n,i),refresh(){++c.unique},renderRule(){c.renderRule=[...a.value||[]]},updateValue(e){if(c.destroyed)return;const t=y.toJson(e);c.updateValue!==t&&(c.updateValue=t,n.emit("update:modelValue",e),r.nextTick(()=>{v(),i?l.value||g():(m(),g())}))}}},created(){const e=r.getCurrentInstance();e.emit("update:api",e.setupState.fapi),e.setupState.fc.init()}})}function Pe(e,t){return(r,n,i,o={})=>{const a=new Ne(e,r,n,i,o);return t&&(S.default.Function(t)?t(a):a.props(t)),a}}function Ne(e,t,r,n,i){this._data=O.default({props:{},on:{},options:[],children:[],hidden:!1,display:!0,value:void 0},{type:e,title:t,field:r,value:n,props:i||{}}),this.event=this.on}function Te(e){e.forEach(e=>{Ne.prototype[e]=function(t){return xe(this._data,{[e]:arguments.length<2?t:{[t]:arguments[1]}}),this}})}O.default(Ne.prototype,{getRule(){return this._data},setProp(e,t){return b.$set(this._data,e,t),this},modelField(e){return this._data.modelField=e,this},_clone(){const e=new this.constructor;return e._data=be(this._data),e}}),Te(ve());const Ie=Pe("");function Be(e,t,r){let n=Ie("",t);return n._data.type=e,n._data.title=r,n}function Le(){return{create:Be,factory:Pe}}function qe(e){const t=e.responseText||e.response;if(!t)return t;try{return JSON.parse(t)}catch(e){return t}}function Me(e){if("undefined"==typeof XMLHttpRequest)return;const t=new XMLHttpRequest;let r,n=e.action||"";if(t.upload&&e.onProgress&&t.upload.addEventListener("progress",t=>{t.percent=t.total>0?t.loaded/t.total*100:0,e.onProgress(t)}),e.query){const t=S.default.String(e.query)?e.query:Object.keys(e.query).reduce((t,r)=>(t[r]=null===e.query[r]||void 0===e.query[r]?"":e.query[r],t),{}),r=new URLSearchParams(t).toString();r&&(n.includes("?")?n+="&"+r:n+="?"+r)}t.onerror=function(t){e.onError(t)},t.onload=function(){if(t.status<200||t.status>=300)return e.onError(function(e,t,r){const n=`fail to ${e} ${r.status}'`,i=new Error(n);return i.status=r.status,i.url=e,i}(n,0,t),qe(t));e.onSuccess(qe(t))},t.open(e.method||"get",n,!0),(e.data||e.file)&&(e.file||"json"!==(e.dataType||"").toLowerCase()?(r=new FormData,Object.keys(e.data||{}).map(t=>{r.append(t,e.data[t])})):(r=JSON.stringify(e.data||{}),t.setRequestHeader("content-type","application/json"))),e.file&&r.append(e.filename,e.file,e.file.name),e.withCredentials&&"withCredentials"in t&&(t.withCredentials=!0);const i=e.headers||{};Object.keys(i).forEach(e=>{null!=i[e]&&t.setRequestHeader(e,i[e])}),t.send(r)}function Ue(e,t,r){return new Promise((n,i)=>{(t||Me)({...e,onSuccess(t){let i=e=>e;const o=y.parseFn(e.parse);S.default.Function(o)?i=o:o&&S.default.String(o)&&(i=e=>Re(e,o)),l.toPromise(i(t,e.targetRule,r)).then(e=>{n(e)})},onError(e){i(e)}})})}function Je(e){return a.deepCopy(e)}let Ge=1;function ze(e){O.default(this,{$handle:e,fc:e.fc,vm:e.vm,$manager:e.$manager,vNode:new e.fc.CreateNode(e),force:!1,tmpInput:null,id:Ge++}),we(this,{options:()=>e.options,sort:()=>e.sort}),this.initCache(),this.initRender()}!function(e){O.default(e.prototype,{initCache(){this.clearCacheAll()},clearCache(e){e.rule.cache||(this.cache[e.id]?((!0===this.cache[e.id].use||this.cache[e.id].parent)&&this.$handle.refresh(),this.cache[e.id].parent&&this.clearCache(this.cache[e.id].parent),this.cache[e.id]=null):e.parent&&this.clearCache(e.parent))},clearCacheAll(){this.cache={}},setCache(e,t,r){this.cache[e.id]={vnode:t,use:!1,parent:r,slot:e.rule.slot}},getCache(e){const t=this.cache[e.id];if(t)return t.use=!0,t.vnode}})}(ze),function(e){O.default(e.prototype,{initRender(){this.cacheConfig={}},getTypeSlot(e){const t=r=>{if(r){let n=void 0;return e.rule.field&&(n=r.slots["field-"+l.toLine(e.rule.field)]||r.slots["field-"+e.rule.field]),n||(n=r.slots["type-"+l.toLine(e.type)]||r.slots["type-"+e.type]),n||t(r.setupState.parent)}};return t(this.vm)},render(){if(!this.vm.setupState.isShow)return;this.$manager.beforeRender();const e=Se();return this.sort.forEach(t=>{this.renderSlot(e,this.$handle.ctxs[t])}),this.$manager.render(e)},renderSlot(e,t,r){if(this.isFragment(t)){t.initProp(),this.mergeGlobal(t),t.initNone();const r=this.renderChildren(t.loadChildrenPending(),t),n=r.default;n&&e.setSlot(t.rule.slot,()=>n()),delete r.default,e.mergeBag(r)}else e.setSlot(t.rule.slot,this.renderCtx(t,r))},mergeGlobal(e){this.$handle.options.global&&(this.cacheConfig[e.trueType]||(this.cacheConfig[e.trueType]=r.computed(()=>{const t=this.$handle.options.global;return xe({},[t["*"]||t.default||{},t[e.originType]||t[e.type]||t[e.type]||{}])})),e.prop=xe({},[this.cacheConfig[e.trueType].value,e.prop]))},setOptions(e){const t=e.loadPending({key:"options",origin:e.prop.options,def:[]});e.prop.options=t,e.prop.optionsTo&&t&&l.deepSet(e.prop,e.prop.optionsTo,t)},deepSet(e){const t=e.prop.deep;t&&Object.keys(t).sort((e,t)=>e.length<t.length?-1:1).forEach(r=>{l.deepSet(e.prop,r,t[r])})},parseSide:(e,t)=>S.default.Object(e)?xe({props:{formCreateInject:t.prop.props.formCreateInject}},e):e,renderSides(e,t,r){const n=t[r?"rule":"prop"];return[this.renderRule(this.parseSide(n.prefix,t)),e,this.renderRule(this.parseSide(n.suffix,t))]},renderId(e,t){const r=this.$handle["field"===t?"fieldCtx":"nameCtx"][e];return r?r.map(e=>this.renderCtx(e,e.parent)):void 0},renderCtx(e,t){try{if("hidden"===e.type)return;const r=e.rule;if(this.force||!this.cache[e.id]||this.cache[e.id].slot!==r.slot){let n;e.initProp(),this.mergeGlobal(e),e.initNone(),this.$manager.tidyRule(e),this.deepSet(e),this.setOptions(e),this.ctxProp(e);let i=e.prop;i.preview=!!(null!=i.preview?i.preview:this.$handle.preview),i.props.formCreateInject=this.injectProp(e);let o=!1!==i.cache;const a=i.preview;if(i.hidden)return void this.setCache(e,void 0,t);n=(...n)=>{const l={rule:r,prop:i,preview:a,api:this.$handle.api,model:i.model||{},slotValue:n};n.length&&r.slotUpdate&&Ce(()=>r.slotUpdate(l));let u={};const c=e.loadChildrenPending();e.parser.renderChildren?u=e.parser.renderChildren(c,e):!1!==e.parser.loadChildren&&(u=this.renderChildren(c,e)),Object.keys(i.renderSlots||{}).forEach(t=>{u[t]=(...r)=>{if(S.default.Function(i.renderSlots[t]))return Ce(()=>i.renderSlots[t](...r));const n=this.parseSide(i.renderSlots[t],e);return this.renderRule(n)}});const d=this.getTypeSlot(e);let p;return d?(l.children=u,p=d(l)):p=a?e.parser.preview(s.copy(u),e):e.parser.render(s.copy(u),e),p=this.renderSides(p,e),!e.input&&S.default.Undef(i.native)||!0===i.native||(this.fc.targetFormDriver("updateWrap",e),p=this.$manager.makeWrap(e,p)),e.none&&(p=Array.isArray(p)?p.map(e=>e&&e.__v_isVNode?this.none(e):e):this.none(p)),o&&this.setCache(e,()=>this.stable(p),t),p},this.setCache(e,n,t)}return(...t)=>{const r=this.getCache(e);if(r)return r(...t);if(this.cache[e.id])return;const n=this.renderCtx(e,e.parent);return n?n():void 0}}catch(e){return void console.error(e)}},none(e){if(e)return e.props.class=this.mergeClass(e.props.class,"fc-none"),e},mergeClass:(e,t)=>Array.isArray(e)?(e.push(t),e):e?[e,t]:t,stable(e){return(Array.isArray(e)?e:[e]).forEach(e=>{e&&e.__v_isVNode&&e.children&&"object"==typeof e.children&&(e.children.$stable=!0,this.stable(e.children))}),e},getModelField(e){return e.prop.modelField||e.parser.modelField||this.fc.modelFields[this.vNode.aliasMap[e.type]]||this.fc.modelFields[e.type]||this.fc.modelFields[e.originType]||"modelValue"},isFragment:e=>"fragment"===e.type||"template"===e.type,injectProp(e){const t=this.vm.setupState;t.ctxInject[e.id]||(t.ctxInject[e.id]={api:this.$handle.api,form:this.fc.create,subForm:t=>{this.$handle.addSubForm(e,t)},getSubForm:()=>this.$handle.subForm[e.id],slots:()=>this.vm.setupState.top.slots,getWrap:()=>this.vm.refs[e.wrapRef],options:[],children:[],preview:!1,id:e.id,field:e.field,rule:e.rule,input:e.input,t:(...e)=>this.$handle.api.t(...e),updateValue:t=>{this.$handle.onUpdateValue(e,t)}});const r=t.ctxInject[e.id];return O.default(r,{preview:e.prop.preview,options:e.prop.options,children:e.loadChildrenPending()}),r},ctxProp(e){const{ref:t,key:r,rule:n}=e;this.$manager.mergeProp(e),e.parser.mergeProp(e);const i=[{ref:t,key:n.key||r+"fc",slot:void 0,on:{vnodeMounted:t=>{t.el.__rule__=e.rule,this.onMounted(e,t.el)},"fc.updateValue":t=>{this.$handle.onUpdateValue(e,t)},"fc.el":t=>{e.exportEl=t,t&&((t.$el||t).__rule__=e.rule)}}}];if(e.input){const t=this.tmpInput;!0===this.vm.props.disabled&&(e.prop.props.disabled=!0);const r=this.getModelField(e),n={callback:r=>{t&&t(e.field,r,e.rule),this.onInput(e,r)},modelField:r,value:this.$handle.getFormData(e)};i.push({on:{["update:"+r]:n.callback,...e.prop.modelEmit?{[e.prop.modelEmit]:()=>this.onEmitInput(e)}:{}},props:{[r]:n.value}}),e.prop.model=n}return j.default(i,e.prop),e.prop},onMounted(e,t){e.el=this.vm.refs[e.ref]||t,e.parser.mounted(e),this.$handle.effect(e,"mounted"),this.$handle.targetHook(e,"mounted")},onInput(e,t){e.prop.modelEmit?this.$handle.onBaseInput(e,t):this.$handle.onInput(e,t)},onEmitInput(e){this.$handle.setValue(e,e.parser.toValue(e.modelValue,e),e.modelValue)},renderChildren(e,t){if(!S.default.trueArray(e))return{};const n=Se();return e.map(i=>{if(i)return S.default.String(i)||S.default.Number(i)?n.setSlot(null,""+i):i.__fc__?this.renderSlot(n,i.__fc__,t):void(i.type&&r.nextTick(()=>{this.$handle.loadChildren(e,t),this.$handle.refresh()}))}),n.getSlots()},defaultRender(e,t){const r=e.prop;return r.component?"string"==typeof r.component?this.vNode.make(r.component,r,t):this.vNode.makeComponent(r.component,r,t):this.vNode[e.type]?this.vNode[e.type](r,t):this.vNode[e.originType]?this.vNode[e.originType](r,t):this.vNode.make(v.lower(r.type),r,t)},createChildrenVnodes(e,t,r){this.force=!1!==r,this.tmpInput=t;const n=this.renderChildren(e.rule.children,e);return this.force=!1,this.tmpInput=null,n},createRuleVnode(e,t,r){this.force=!1!==r,this.tmpInput=t;const n=Se();return this.renderSlot(n,e,e.parent),this.force=!1,this.tmpInput=null,n.getSlots()},renderRule(e,t,r){if(!e)return;if(S.default.String(e)||S.default.Number(e))return""+e;let n;if(r)n=e.type;else if(n=e.is,e.type){n=P.default(e.type);const t=this.vNode.aliasMap[n];t&&(n=P.default(t))}if(!n)return;const i=Se();S.default.trueArray(e.children)&&e.children.forEach(e=>{e&&i.setSlot(null==e?void 0:e.slot,()=>this.renderRule(e))});const o={...e};return delete o.type,delete o.is,this.vNode.make(n,o,i.mergeBag(t).getSlots())}})}(ze);const He=["hook:updated","hook:mounted"];function We(e,t,n){const i=N.default(),o=!!t.field;var s;O.default(this,{id:i,ref:i,wrapRef:i+"fi",rule:t,origin:t.__origin__||t,name:t.name,pending:{},none:!1,watch:[],linkOn:[],root:[],ctrlRule:[],children:[],parent:null,group:t.subRule?this:null,cacheConfig:null,prop:{...t},computed:{},payload:{},refRule:{},input:o,el:void 0,exportEl:void 0,defaultValue:o?a.deepCopy(n):void 0,field:t.field||void 0}),this.updateKey(),s=this,Object.defineProperties(s.origin,{__fc__:ye(r.markRaw(s),!0)}),s.rule!==s.origin&&Object.defineProperties(s.rule,{__fc__:ye(r.markRaw(s),!0)}),this.update(e,!0)}function Ke(e,t){for(let r=0;r<e.ctrlRule.length;r++){const n=e.ctrlRule[r];if(n.children===t)return n}}function Xe(e){return!!e.rule.__ctrl}function Ye(e,t){return"function"==typeof t?""+t:t}O.default(We.prototype,{getParentGroup(){let e=this.parent;for(;e;){if(e.group)return e;e=e.parent}},loadChildrenPending(){const e=this.rule.children||[];return Array.isArray(e)?e:this.loadPending({key:"children",origin:e,def:[],onLoad:e=>{this.$handle&&this.$handle.loadChildren(e,this)},onUpdate:(e,t)=>{this.$handle&&(e===t?this.$handle.loadChildren(e,this):this.$handle.updateChildren(this,e,t))},onReload:e=>{this.$handle?this.$handle.updateChildren(this,[],e):delete this.pending.children}})},loadPending(e){const{key:t,origin:r,def:n,onLoad:i,onReload:o,onUpdate:a}=e;if(this.pending[t]&&this.pending[t].origin===r)return this.getPending(t,n);delete this.pending[t];let s=r;if(S.default.Function(r)){let e=Ce(()=>r({rule:this.rule,api:this.$api,update:e=>{const i=e||n,o=this.getPending(t,n);this.setPending(t,r,i),a&&a(i,o)},reload:()=>{const e=this.getPending(t,n);delete this.pending[t],o&&o(e),this.$api&&this.$api.sync(this.rule)}}));e&&S.default.Function(e.then)?(e.then(e=>{const o=e||n;this.setPending(t,r,o),i&&i(o),this.$api&&this.$api.sync(this.rule)}).catch(e=>{console.error(e)}),s=n,this.setPending(t,r,s)):(s=e||n,this.setPending(t,r,s),i&&i(s))}return s},getPending(e,t){return this.pending[e]&&this.pending[e].value||t},setPending(e,t,n){this.pending[e]={origin:t,value:r.reactive(n)}},effectData(e){return this.payload[e]||(this.payload[e]={}),this.payload[e]},clearEffectData(e){void 0===e?this.payload={}:delete this.payload[e]},updateKey(e){this.key=N.default(),e&&this.parent&&this.parent.updateKey(e)},updateType(){this.originType=this.rule.type,this.type=P.default(this.rule.type),this.trueType=this.$handle.getType(this.originType)},setParser(e){this.parser=e,e.init(this)},initProp(){var e;const t={...this.rule};delete t.children,delete t.validate,this.prop=xe({},[t,...Object.keys(this.payload).map(e=>this.payload[e]),this.computed]),this.prop.validate=[...(null===(e=this.refRule)||void 0===e||null===(e=e.__$validate)||void 0===e?void 0:e.value)||[],...this.prop.validate||[]]},initNone(){this.none=!(S.default.Undef(this.prop.display)||this.prop.display)},hasHidden(){return!!this.rule.hidden||!!this.parent&&this.parent.hasHidden()},injectValidate(){return this.prop.validate},check(e){return this.vm===e.vm},unwatch(){this.watch.forEach(e=>e()),this.watch=[],Object.keys(this.refRule).forEach(e=>{0!==e.indexOf("__$")&&delete this.refRule[e]})},unlink(){this.linkOn.forEach(e=>e()),this.linkOn=[]},link(){this.unlink(),this.$handle.appendLink(this)},watchTo(){this.$handle.watchCtx(this)},delete(){this.unwatch(),this.unlink(),this.rmCtrl(),this.parent&&this.parent.children.splice(this.parent.children.indexOf(this)>>>0,1),O.default(this,{deleted:!0,computed:{},parent:null,children:[],cacheConfig:null,none:!1})},rmCtrl(){this.ctrlRule.forEach(e=>e.__fc__&&e.__fc__.rm()),this.ctrlRule=[]},rm(){const e=()=>{let e=this.root.indexOf(this.origin);e>-1&&(this.root.splice(e,1),this.$handle&&this.$handle.refresh())};this.deleted?e():this.$handle.noWatch(()=>{this.$handle.deferSyncValue(()=>{this.rmCtrl(),e(),this.$handle.rmCtx(this),O.default(this,{root:[]})},this.input)})},update(e,t){O.default(this,{deleted:!1,$handle:e,$render:e.$render,$api:e.api,vm:e.vm,vNode:e.$render.vNode,updated:!1,cacheValue:this.rule.value}),!t&&this.unwatch(),this.watchTo(),this.link(),this.updateType()}});const Ze={init(e){},toFormValue:(e,t)=>e,toValue:(e,t)=>e,mounted(e){},render:(e,t)=>t.$handle.fc.renderDriver&&t.$handle.fc.renderDriver.defaultRender?t.$handle.fc.renderDriver.defaultRender(t,e):t.$render.defaultRender(t,e),preview(e,t){return t.$handle.fc.renderDriver&&t.$handle.fc.renderDriver.defaultPreview?t.$handle.fc.renderDriver.defaultPreview(t,e):this.render(e,t)},mergeProp(e){}},Qe=["field","value","vm","template","name","config","control","inject","sync","payload","optionsTo","update","slotUpdate","computed","component","cache"],et=Symbol("oldValue");function tt(e){we(this,{options:()=>e.options.value||{},bus:()=>e.bus,preview:()=>null!=e.vm.props.preview?e.vm.props.preview:e.vm.setupState.parent&&null!=e.vm.setupState.parent.props.preview?e.vm.setupState.parent.props.preview:e.options.value.preview||!1}),O.default(this,{fc:e,vm:e.vm,watching:!1,loading:!1,reloading:!1,noWatchFn:null,deferSyncFn:null,isMounted:!1,formData:r.reactive({}),subRuleData:r.reactive({}),subForm:{},form:r.reactive({}),appendData:{},ignoreFields:[],providers:{},cycleLoad:null,loadedId:1,nextTick:null,changeStatus:!1,pageEnd:!0,nextReload:()=>{this.lifecycle("reload")}}),this.initData(e.rules),this.$manager=new e.manager(this),this.$render=new ze(this),this.api=e.extendApiFn.reduce((e,t)=>{const r=Ce(()=>t(e,this));return r&&r!==e&&O.default(e,r),e},function(e){function t(t){return S.default.Undef(t)?t=e.fields():Array.isArray(t)||(t=[t]),t}function i(t,r,n){S.default.Undef(t)?t=Object.keys({...e.fieldCtx,...e.nameCtx}):Array.isArray(t)||(t=[t]),t.forEach(t=>{const i=e.fieldCtx[t]||e.nameCtx[t];i&&i.forEach(t=>{b.$set(t.rule,r,n),e.$render.clearCache(t)})})}function o(){const t=e.subForm;return Object.keys(t).reduce((e,r)=>{const n=t[r];return n?(Array.isArray(n)?e.push(...n):e.push(n),e):e},[])}const s={get isScope(){return!1===e.vm.props.subForm},get isPreview(){return e.preview},get config(){return e.options},set config(t){e.fc.options.value=t},get options(){return e.options},set options(t){e.fc.options.value=t},get form(){return e.form},get rule(){return e.rules},get parent(){return e.vm.setupState.parent&&e.vm.setupState.parent.setupState.fapi},get top(){return s.parent?s.parent.top:s},get scope(){let t=e.vm;for(;t&&t.setupState.fapi;){if(!t.props.subForm)return t.setupState.fapi;t=t.setupState.parent}return s.top},get children(){return o()},get siblings(){const t=e.vm.setupState.getGroupInject();if(t){const e=t.getSubForm();if(Array.isArray(e))return[...e]}},get index(){const e=s.siblings;if(e){const t=e.indexOf(s);return t>-1?t:void 0}},get formulas(){return{...e.fc.formulas}},formData(r){if(null==r||"boolean"==typeof r){const t={};return Object.keys(e.form).forEach(n=>{!0!==r&&-1!==e.ignoreFields.indexOf(n)||(t[n]=Je(e.form[n]))}),t}return t(r).reduce((e,t)=>(e[t]=s.getValue(t),e),{})},getValue(t){const r=e.getFieldCtx(t);return r?Je(r.rule.value):!1!==e.options.appendValue&&n.hasProperty(e.appendData,t)?Je(e.appendData[t]):void 0},coverValue(t){const r={...t||{}};e.deferSyncValue(()=>{e.appendData={},s.fields().forEach(i=>{const o=e.fieldCtx[i];if(o){const e=n.hasProperty(t,i);o.forEach(r=>{r.rule.value=e?t[i]:void 0}),delete r[i]}}),O.default(e.appendData,r)},!0)},setValue(t){let r=t;arguments.length>=2&&(r={[t]:arguments[1]}),e.deferSyncValue(()=>{Object.keys(r).forEach(t=>{const n=e.fieldCtx[t];if(!n)return e.appendData[t]=r[t];n.forEach(e=>{e.rule.value=r[t]})})},!0)},removeField(t){const r=e.getCtx(t);return e.deferSyncValue(()=>{e.getCtxs(t).forEach(e=>{e.rm()})},!0),r?r.origin:void 0},removeRule(e){const t=e&&ke(e);if(t)return t.rm(),t.origin},fields:()=>e.fields(),append:(t,r,n)=>{let i,o=e.sort.length-1;const a=e.getCtx(r);if(a)if(n){if(i=a.getPending("children",a.rule.children),!Array.isArray(i))return;o=a.rule.children.length-1}else o=a.root.indexOf(a.origin),i=a.root;else i=e.rules;i.splice(o+1,0,t)},prepend:(t,r,n)=>{let i,o=0;const a=e.getCtx(r);if(a)if(n){if(i=a.getPending("children",a.rule.children),!Array.isArray(i))return}else o=a.root.indexOf(a.origin),i=a.root;else i=e.rules;i.splice(o,0,t)},hidden(t,r){i(r,"hidden",!!t),e.refresh()},hiddenStatus(t){const r=e.getCtx(t);if(r)return!!r.rule.hidden},display(t,r){i(r,"display",!!t),e.refresh()},displayStatus(t){const r=e.getCtx(t);if(r)return!!r.rule.display},disabled(r,n){t(n).forEach(t=>{e.getCtxs(t).forEach(e=>{b.$set(e.rule.props,"disabled",!!r)})}),e.refresh()},all:t=>Object.keys(e.ctxs).map(r=>{const n=e.ctxs[r];return t?n.origin:n.rule}),model:t=>e.fields().reduce((r,n)=>{const i=e.fieldCtx[n][0];return r[n]=t?i.origin:i.rule,r},{}),component:t=>Object.keys(e.nameCtx).reduce((r,n)=>{const i=e.nameCtx[n].map(e=>t?e.origin:e.rule);return r[n]=1===i.length?i[0]:i,r},{}),bind:()=>s.form,reload:t=>{e.reloadRule(t)},updateOptions(t){e.fc.updateOptions(t),s.refresh()},onSubmit(e){s.updateOptions({onSubmit:e})},sync:t=>{if(Array.isArray(t))return void t.forEach(e=>s.sync(e));let r=S.default.Object(t)?ke(t):e.getCtxs(t);r&&(r=Array.isArray(r)?r:[r],r.forEach(t=>{if(!t.deleted){const r=e.subForm[t.id];r&&(Array.isArray(r)?r.forEach(e=>{e.refresh()}):r&&r.refresh()),e.$render.clearCache(t)}}),e.refresh())},refresh:()=>{o().forEach(e=>{e.refresh()}),e.$render.clearCacheAll(),e.refresh()},refreshOptions(){e.$manager.updateOptions(e.options),s.refresh()},hideForm:t=>{e.vm.setupState.isShow=!t},changeStatus:()=>e.changeStatus,clearChangeStatus:()=>{e.changeStatus=!1},updateRule(t,r){e.getCtxs(t).forEach(e=>{O.default(e.rule,r)})},updateRules(e){Object.keys(e).forEach(t=>{s.updateRule(t,e[t])})},mergeRule:(t,r)=>{e.getCtxs(t).forEach(e=>{xe(e.rule,r)})},mergeRules(e){Object.keys(e).forEach(t=>{s.mergeRule(t,e[t])})},getRule:(t,r)=>{const n=e.getCtx(t);if(n)return r?n.origin:n.rule},findType(t,r){let n=void 0;return Object.keys(e.ctxs).forEach(i=>{const o=e.ctxs[i];o.rule.type===t&&(n=r?o.origin:o.rule)}),n},findTypes(t,r){let n=[];return Object.keys(e.ctxs).forEach(i=>{const o=e.ctxs[i];o.rule.type===t&&n.push(r?o.origin:o.rule)}),n},getRenderRule:t=>{const r=e.getCtx(t);if(r)return r.prop},getRefRule:t=>{const r=e.getCtxs(t);if(r){const e=r.map(e=>e.rule);return 1===e.length?e[0]:e}},setEffect(t,r,i){const o=e.getCtx(t);o&&r&&("$"===r[0]&&(r=r.substr(1)),n.hasProperty(o.rule,"$"+r)&&b.$set(o.rule,"$"+r,i),n.hasProperty(o.rule,"effect")||(o.rule.effect={}),b.$set(o.rule.effect,r,i))},clearEffectData(t,r){const n=e.getCtx(t);n&&(r&&"$"===r[0]&&(r=r.substr(1)),n.clearEffectData(r),s.sync(t))},updateValidate(e,t,r){r?s.mergeRule(e,{validate:t}):i(e,"validate",t)},updateValidates(e,t){Object.keys(e).forEach(r=>{s.updateValidate(r,e[r],t)})},refreshValidate(){s.refresh()},resetFields(n){t(n).forEach(t=>{e.getCtxs(t).forEach(t=>{e.$render.clearCache(t),t.rule.value=Je(t.defaultValue)})}),r.nextTick(()=>{r.nextTick(()=>{r.nextTick(()=>{s.clearValidateState(n)})})}),null==n&&(S.default.Function(e.options.onReset)&&Ce(()=>e.options.onReset(s)),e.vm.emit("reset",s))},method(e,t){const r=s.el(e);if(!r||!r[t])throw new Error(g.format("err",t+" 方法不存在"));return(...e)=>r[t](...e)},exec:(e,t,...r)=>Ce(()=>s.method(e,t)(...r)),toJson:e=>y.toJson(s.rule,e),trigger(e,t,...r){const n=s.el(e);n&&n.$emit(t,...r)},el(t){const r=e.getCtx(t);if(r)return r.el||e.vm.refs[r.ref]},closeModal:t=>{e.bus.$emit("fc:closeModal:"+t)},getSubForm(t){const r=e.getCtx(t);return r?e.subForm[r.id]:void 0},getChildrenRuleList(t){const r="object"==typeof t,n=r?ke(t):e.getCtx(t),i=n?n.rule:r?t:s.getRule(t);if(!i)return[];const o=[];var a;return(a=n?n.loadChildrenPending():i.children)&&a.forEach(e=>{"object"==typeof e&&(e.field&&o.push(e),o.push(...s.getChildrenRuleList(e)))}),o},getParentRule:t=>("object"==typeof t?ke(t):e.getCtx(t)).parent.rule,getParentSubRule(t){const r="object"==typeof t?ke(t):e.getCtx(t);if(r){const e=r.getParentGroup();if(e)return e.rule}},getChildrenFormData:(e,t)=>s.getChildrenRuleList(e).reduce((e,r)=>(!0===r.ignore&&!0!==t||(e[r.field]=Je(r.value)),e),{}),setChildrenFormData(t,r,i){const o=s.getChildrenRuleList(t);e.deferSyncValue(()=>{o.forEach(e=>{n.hasProperty(r,e.field)?e.value=r[e.field]:i&&(e.value=void 0)})})},getGlobalEvent(e){let t=s.options.globalEvent[e];if(t)return"object"==typeof t&&(t=t.handle),y.parseFn(t)},getGlobalData:t=>new Promise((r,n)=>{let i=s.options.globalData[t];i?"fetch"===i.type?s.fetch(i).then(e=>{r(e)}).catch(n):r(i.data):r(e.fc.loadData[t])}),emitGlobalEvent(t,...r){const n=s.getGlobalEvent(t);if(n){const t=e.getInjectData({},void 0);return t.args=[...r],r.unshift(t),n.apply(null,r)}},setGlobalData(e,t){s.setData("$globalData."+e,t)},setGlobalVar(e,t){s.setData("$var."+e,t)},renderRule(t,r,n){const i="object"==typeof t?ke(t):e.getCtx(t);return i?e.$render.createRuleVnode(i,r,n):void 0},renderChildren(t,r,n){const i="object"==typeof t?ke(t):e.getCtx(t);return i?e.$render.createChildrenVnodes(i,r,n):void 0},nextTick(t){e.bus.$once("next-tick",t),e.refresh()},nextRefresh(t){e.nextRefresh(),t&&Ce(t)},deferSyncValue(t,r){e.deferSyncValue(t,r)},emit(t,...r){e.vm.emitsOptions&&!e.vm.emitsOptions[t]&&(e.vm.emitsOptions[t]=null),e.vm.emit(t,...r)},bus:e.bus,getCurrentFormRule(){var t;return null===(t=e.vm.setupState.getGroupInject())||void 0===t?void 0:t.rule},fetch:t=>new Promise((r,n)=>{t=a.deepCopy(t),t=e.loadFetchVar(t);const i=e=>{Ce(()=>t.onError&&t.onError(e)),n(e)};e.beforeFetch(t).then(()=>Ue(t,e.fc.create.fetch,s).then(e=>{Ce(()=>t.onSuccess&&t.onSuccess(e)),r(e)}).catch(e=>{i(e)})).catch(e=>{i(e)})}),watchFetch:(t,r,n,i)=>e.fc.watchLoadData((o,l)=>{let u=a.deepCopy(t);if(u=e.loadFetchVar(u,o),i&&!1===i(u,l))return;const c=e=>{Ce(()=>u.onError&&u.onError(e)),n&&n(e)};e.beforeFetch(u).then(()=>Ue(u,e.fc.create.fetch,s).then(e=>{Ce(()=>u.onSuccess&&u.onSuccess(e)),r&&r(e,l)}).catch(e=>{c(e)})).catch(e=>{c(e)})},null==t.wait?1e3:t.wait),getData:(t,r)=>e.fc.get?e.fc.get(t,r):e.fc.getLoadData(t,r),watchData:t=>e.fc.watchLoadData((e,r)=>{Ce(()=>t(e,r))}),setData:(t,r,n)=>e.fc.setData(t,r,n),refreshData:t=>e.fc.refreshData(t),t:(t,r)=>e.fc.t(t,r),getLocale:()=>e.fc.getLocale(),helper:{tidyFields:t,props:i}};return["on","once","off"].forEach(t=>{s[t]=function(...r){e.bus["$"+t](...r)}}),s.changeValue=s.changeField=s.setValue,s}(this))}O.default(tt.prototype,{initData(e){O.default(this,{ctxs:{},fieldCtx:{},nameCtx:{},sort:[],rules:e})},init(){this.updateAppendData(),this.useProvider(),this.usePage(),this.loadRule(),this.$manager.__init(),this.lifecycle("created")},updateAppendData(){this.appendData={...a.deepCopy(this.options.formData||{}),...this.fc.vm.props.modelValue||{},...this.appendData}},isBreakWatch(){return this.loading||this.noWatchFn||this.reloading},globalBeforeFetch(e){return new Promise((t,r)=>{const n=this.options.beforeFetch&&Ce(()=>this.options.beforeFetch(e,{api:this.api}));n&&S.default.Function(n.then)?n.then(t).catch(r):t()})},beforeFetch(e){return new Promise((t,r)=>{const n=e&&e.beforeFetch&&Ce(()=>e.beforeFetch(e,{api:this.api}));n&&S.default.Function(n.then)?n.then(t).catch(r):!1===n?r():t()}).then(()=>this.globalBeforeFetch(e))},beforeSubmit(e){return new Promise((t,r)=>{const n=this.options.beforeSubmit&&Ce(()=>this.options.beforeSubmit(e,{api:this.api}));n&&S.default.Function(n.then)?n.then(t).catch(r):!1===n?r():t()})}}),function(e){O.default(e.prototype,{parseInjectEvent(e,t){const r=e.inject||this.options.injectEvent;return this.parseEventLst(e,t,r)},parseEventLst(e,t,r,n){return Object.keys(t).forEach(i=>{const o=this.parseEvent(e,t[i],r,n);o&&(t[i]=o)}),t},parseEvent(e,t,r,n){if(S.default.Function(t)&&(!1!==r&&!S.default.Undef(r)||t.__inject))return this.inject(e,t,r);if(!n&&Array.isArray(t)&&t[0]&&(S.default.String(t[0])||S.default.Function(t[0])))return this.parseEventLst(e,t,r,!0);if(S.default.String(t)){const n=y.parseFn(t);if(n&&t!==n)return n.__inject?this.parseEvent(e,n,r,!0):n}},parseEmit(e){let t={},r=e.rule,{emitPrefix:n,field:i,name:o,inject:a}=r,s=r.emit||[];return S.default.trueArray(s)&&s.forEach(e=>{if(!e)return;let s,l=n||i||o;if(S.default.Object(e)&&(s=e.inject,l=(e=e.name).prefix||l),l){const n=A.default(`${l}-${e}`),i=(...e)=>{this.vm.emitsOptions&&!this.vm.emitsOptions[n]&&(this.vm.emitsOptions[n]=null),this.vm.emit(n,...e),this.vm.emit("emit-event",n,...e),this.bus.$emit(n,...e)};if(i.__emit=!0,s||!1!==a){let n=s||a||this.options.injectEvent;t[P.default(e)]=S.default.Undef(n)?i:this.inject(r,i,n)}else t[P.default(e)]=i}}),e.computed.on=t,t},getInjectData(e,t){const r=e.__fc__&&e.__fc__.$api,n=e.__fc__&&e.__fc__.$handle.vm||this.vm,{option:i,rule:o}=n.props;return{$f:r||this.api,api:r||this.api,rule:o,self:e.__origin__,option:i,inject:t}},inject(e,t,r){if(t.__origin){if(this.watching&&!this.loading)return t;t=t.__origin}const n=this,i=function(...i){const o=n.getInjectData(e,r);return o.args=[...i],i.unshift(o),t.apply(this,i)};return i.__origin=t,i.__json=t.__json,i},loadStrVar(e,t,r){if(e&&"string"==typeof e&&e.indexOf("{{")>-1&&e.indexOf("}}")>-1){const i=e,o=function(e){const t=/{{\s*(.*?)\s*}}/g;let r;const n={};for(;null!==(r=t.exec(e));)r[1]&&(n[r[1]]=!0);return Object.keys(n)}(e),a=e=>{let i,o=!1;if(r&&0===e.indexOf("$form.")){const a=e.split(".");a.shift(),n.hasProperty(r.value,a[0])&&(o=!0,i=t?t({id:"$form."+a[0]+"_"+r.rule.__fc__.id,getValue:()=>Re(r.value,a)}):Re(r.value,a))}return o||(i=t?t(e):this.fc.getLoadData(e)),i},s=e=>{const t=[];e.forEach(e=>{e.key?t.push(e.key):e.children&&t.push(s(e.children))});let r=!1;return t.forEach((e,n)=>{null==e||0!==e.indexOf("'")&&0!==e.indexOf('"')||(t[n]=e.slice(1,-1),r=!0)}),1!==t.length||!r&&isNaN(Number(t[0]))?a(t.join(".")):t[0]};let l;if(o.forEach(t=>{const r=t.split("||"),n=r[0].trim();if(n){const i=(r[1]||"").trim(),o=function e(t){const r=[];let n="",i=0;for(let o=0;o<t.length;o++){const a=t[o];"["===a?(0===i&&n&&(r.push({type:"key",value:n}),n=""),i++,n+=a):"]"===a?(i--,n+=a,0===i&&(r.push({type:"bracket",value:e(n.slice(1,-1))}),n="")):"."===a&&0===i?n&&(r.push({type:"key",value:n}),n=""):n+=a}return n&&r.push({type:"key",value:n}),r.map(e=>"key"===e.type?{key:e.value}:{children:e.value})}(n);let a=Ce(()=>s(o));(null==a||""===a)&&r.length>1&&(a=i),l=a,e=e.replaceAll(`{{${t}}}`,null==a?"":a)}}),1===o.length&&i===`{{${o[0]}}}`)return l}return e},loadFetchVar(e,t,r){let n;r&&r.__fc__&&(n=r.__fc__.getParentGroup());const i=e=>this.loadStrVar(e,t,n?{rule:r,value:this.subRuleData[n.id]||{}}:null);return e.action=i(e.action||""),["headers","data","query"].forEach(t=>{if(e[t]){const r=Array.isArray(e[t])?[]:{};Object.keys(e[t]).forEach(n=>{r[i(n)]=i(e[t][n])}),e[t]=r}}),e}})}(tt),function(e){O.default(e.prototype,{usePage(){const e=this.options.page;if(!e)return;let t=25,r=(n=this.rules).length<31?31:Math.ceil(n.length/3);var n;S.default.Object(e)&&(e.first&&(t=parseInt(e.first,10)||t),e.limit&&(r=parseInt(e.limit,10)||r)),O.default(this,{first:t,limit:r,pageEnd:this.rules.length<=t}),this.bus.$on("page-end",()=>this.vm.emit("page-end",this.api)),this.pageLoad()},pageLoad(){const e=()=>{this.pageEnd?(this.bus.$off(He,e),this.bus.$emit("page-end")):(this.first+=this.limit,this.pageEnd=this.rules.length<=this.first,this.loadRule(),this.refresh())};this.bus.$on(He,e)}})}(tt),function(e){O.default(e.prototype,{clearNextTick(){this.nextTick&&clearTimeout(this.nextTick),this.nextTick=null},bindNextTick(e){this.clearNextTick(),this.nextTick=setTimeout(()=>{e(),this.nextTick=null},10)},render(){return++this.loadedId,this.vm.setupState.unique>0?this.$render.render():(this.vm.setupState.unique=1,[])}})}(tt),function(e){O.default(e.prototype,{nextRefresh(e){const t=this.loadedId;r.nextTick(()=>{t===this.loadedId&&(e?e():this.refresh())})},parseRule(e){const t=$e(e);return Object.defineProperties(t,{__origin__:ye(e,!0)}),function(e){const t={props:{},on:{},options:[],children:[],hidden:!1,display:!0,value:void 0};Object.keys(t).forEach(r=>{n.hasProperty(e,r)||(e[r]=t[r])})}(t),this.appendValue(t),[t,t.prefix,t.suffix].forEach(e=>{e&&this.loadFn(e,t)}),this.loadCtrl(t),t.update&&(t.update=y.parseFn(t.update)),t},loadFn(e,t){["on","props","deep"].forEach(r=>{e[r]&&this.parseInjectEvent(t,e[r])})},loadCtrl(e){e.control&&e.control.forEach(e=>{e.handle&&(e.handle=y.parseFn(e.handle))})},syncProp(e){const t=e.rule;S.default.trueArray(t.sync)&&j.default([{on:t.sync.reduce((e,r)=>(e["object"==typeof r&&r.event||"update:"+r]=e=>{t.props["object"==typeof r&&r.prop||r]=e,this.vm.emit("sync",r,e,t,this.fapi)},e),{})}],e.computed)},loadRule(){this.cycleLoad=!1,this.loading=!0,this.pageEnd&&this.bus.$emit("load-start"),this.deferSyncValue(()=>{if(this._loadRule(this.rules),this.loading=!1,this.cycleLoad&&this.pageEnd)return this.loadRule();this.syncForm(),this.pageEnd&&this.bus.$emit("load-end"),this.vm.setupState.renderRule()})},loadChildren(e,t){if(this.cycleLoad=!1,this.loading=!0,this.bus.$emit("load-start"),this._loadRule(e,t),this.loading=!1,this.cycleLoad)return this.loadRule();this.syncForm(),this.bus.$emit("load-end"),this.$render.clearCache(t)},_loadRule(e,t){const r=t=>{let n=e[t-1];if(!n||!n.__fc__)return t>0?r(t-1):-1;let i=this.sort.indexOf(n.__fc__.id);return i>-1?i:r(t-1)},n=(e,t)=>{S.default.trueArray(e)&&this._loadRule(e,t)},i=e.map((i,o)=>{if(t&&!S.default.Object(i))return;if(!this.pageEnd&&!t&&o>=this.first)return;if(i.__fc__&&i.__fc__.root===e&&this.ctxs[i.__fc__.id])return n(i.__fc__.loadChildrenPending(),i.__fc__),i.__fc__;let a=$e(i);const s=()=>!(!a.field||!this.fieldCtx[a.field]||this.fieldCtx[a.field][0]===i.__fc__);let l;this.fc.targetFormDriver("loadRule",{rule:a,api:this.api},this.fc),this.ruleEffect(a,"init",{repeat:s()}),s()&&this.vm.emit("repeat-field",i,this.api);let u=!1,c=!!i.__fc__,d=a.value;if(c)if(l=i.__fc__,d=l.defaultValue,l.deleted){if(Xe(l))return;l.update(this)}else if(!l.check(this)){if(Xe(l))return;e[o]=i=i._clone?i._clone():y.parseJson(y.toJson(i)),l=null,u=!0}if(l)l.originType!==l.rule.type&&l.updateType(),this.bindParser(l),this.appendValue(l.rule),l.parent&&l.parent!==t&&this.rmSubRuleData(l);else{const e=this.parseRule(i);l=new We(this,e,d),this.bindParser(l)}this.parseEmit(l),this.syncProp(l),l.parent=t||null,l.root=e,this.setCtx(l),u||c||(this.effect(l,"load"),this.targetHook(l,"load")),this.effect(l,"created");const p=l.loadChildrenPending();if(!1===l.parser.loadChildren||n(p,l),!t){const e=r(o);e>-1||!o?this.sort.splice(e+1,0,l.id):this.sort.push(l.id)}const h=l.rule;return l.updated||(l.updated=!0,S.default.Function(h.update)&&this.bus.$once("load-end",()=>{this.refreshUpdate(l,h.value,"init")}),this.effect(l,"loaded")),this.refreshControl(l)&&(this.cycleLoad=!0),l}).filter(e=>!!e);t&&(t.children=i)},refreshControl(e){return e.input&&e.rule.control&&this.useCtrl(e)},useCtrl(e){const t=function(e){const t=e.rule.control||[];return S.default.Object(t)?[t]:t}(e),n=[],i=this.api;if(!t.length)return!1;for(let r=0;r<t.length;r++){const o=t[r],a=o.handle||function(e){return(Oe[o.condition||"=="]||Oe["=="])(e,o.value)};if(!S.default.trueArray(o.rule))continue;const s={...o,valid:Ce(()=>a(e.rule.value,i)),ctrl:Ke(e,o.rule),isHidden:S.default.String(o.rule[0])};s.valid&&s.ctrl||!s.valid&&!s.ctrl&&!s.isHidden||n.push(s)}if(!n.length)return!1;const o=[];let a=!1;return this.deferSyncValue(()=>{n.reverse().forEach(({isHidden:t,valid:r,rule:n,prepend:s,append:l,child:u,ctrl:c,method:d})=>{if(t)return r?e.ctrlRule.push({__ctrl:!0,children:n,valid:r}):c&&e.ctrlRule.splice(e.ctrlRule.indexOf(c)>>>0,1),void o[r?"push":"unshift"](()=>{"disabled"===d||"enabled"===d?this.api.disabled(!r,n):"display"===d||"show"===d?this.api.display(r,n):"required"===d?(n.forEach(e=>{this.api.setEffect(e,"required",r)}),r||this.api.clearValidateState(n)):this.api.hidden(!r,n)});if(r){a=!0;const t={type:"fragment",native:!0,__ctrl:!0,children:n};e.ctrlRule.push(t),this.bus.$once("load-start",()=>{s?i.prepend(t,s,u):l||u?i.append(t,l||e.id,u):e.root.splice(e.root.indexOf(e.origin)+1,0,t)})}else{e.ctrlRule.splice(e.ctrlRule.indexOf(c),1);const t=ke(c);t&&t.rm()}})}),o.length&&(this.loading?o.length&&this.bus.$once("load-end",()=>{o.forEach(e=>e())}):o.length&&r.nextTick(()=>{o.forEach(e=>e())})),this.vm.emit("control",e.origin,this.api),this.effect(e,"control"),a},reloadRule(e){return this._reloadRule(e)},_reloadRule(e){e||(e=this.rules);const t={...this.ctxs};this.clearNextTick(),this.initData(e),this.fc.rules=e,this.deferSyncValue(()=>{this.bus.$once("load-end",()=>{Object.keys(t).filter(e=>void 0===this.ctxs[e]).forEach(e=>this.rmCtx(t[e])),this.$render.clearCacheAll()}),this.reloading=!0,this.loadRule(),this.reloading=!1,this.refresh(),this.bus.$emit("reloading",this.api)}),this.bus.$off("next-tick",this.nextReload),this.bus.$once("next-tick",this.nextReload),this.bus.$emit("update",this.api)},refresh(){this.vm.setupState.refresh()}})}(tt),function(e){O.default(e.prototype,{setValue(e,t,n,i){e.deleted||(e.rule.value=t,this.changeStatus=!0,this.nextRefresh(),this.$render.clearCache(e),this.setFormData(e,n),this.syncValue(),this.valueChange(e,t),this.vm.emit("change",e.field,t,e.origin,this.api,i||!1),this.effect(e,"value"),this.targetHook(e,"value",{value:t}),this.emitEvent("change",e.field,t,{rule:e.origin,api:this.api,setFlag:i||!1}),i&&r.nextTick(()=>{r.nextTick(()=>{r.nextTick(()=>{this.api.clearValidateState(e.id)})})}),this.$manager.fieldChange(e,t,n,i))},onInput(e,t){let r;e.input&&(this.isQuote(e,r=e.parser.toValue(t,e))||this.isChange(e,t))&&this.setValue(e,r,t)},onUpdateValue(e,t){this.deferSyncValue(()=>{const r=e.getParentGroup(),i=r?this.subRuleData[r.id]:null,o={};Object.keys(t||{}).forEach(e=>{i&&n.hasProperty(i,e)?o[e]=t[e]:n.hasProperty(this.api.form,e)?this.api.form[e]=t[e]:this.api.top!==this.api&&n.hasProperty(this.api.top.form,e)&&(this.api.top.form[e]=t[e])}),Object.keys(o).length&&this.api.setChildrenFormData(r.rule,o)})},onBaseInput(e,t){this.setFormData(e,t),e.modelValue=t,this.nextRefresh(),this.$render.clearCache(e)},setFormData(e,t){e.modelValue=t;const r=e.getParentGroup();r&&(this.subRuleData[r.id]||(this.subRuleData[r.id]={}),this.subRuleData[r.id][e.field]=e.rule.value),b.$set(this.formData,e.id,t)},rmSubRuleData(e){const t=e.getParentGroup();t&&this.subRuleData[t.id]&&delete this.subRuleData[t.id][e.field]},getFormData(e){return this.formData[e.id]},syncForm(){const e=r.reactive({}),t=this.fields(),n=[];!1!==this.options.appendValue&&Object.keys(this.appendData).reduce((e,n)=>(-1===t.indexOf(n)&&(e[n]=r.toRef(this.appendData,n)),e),e),t.reduce((e,t)=>{let i=(this.fieldCtx[t]||[]).filter(e=>!this.isIgnore(e))[0];return i||(i=this.fieldCtx[t][0],n.push(t)),e[t]=r.toRef(i.rule,"value"),e},e),this.form=e,this.ignoreFields=n,this.syncValue()},isIgnore(e){return!0===e.rule.ignore||("hidden"===e.rule.ignore||this.options.ignoreHiddenFields)&&e.hasHidden()},appendValue(e){(e.field&&n.hasProperty(this.appendData,e.field)||S.default.Undef(e.value)&&this.options.forceCoverValue)&&(e.value=this.appendData[e.field],delete this.appendData[e.field])},addSubForm(e,t){this.subForm[e.id]=t},deferSyncValue(e,t){this.deferSyncFn||(this.deferSyncFn=e),this.deferSyncFn.sync||(this.deferSyncFn.sync=t),Ce(e),this.deferSyncFn===e&&(this.deferSyncFn=null,e.sync&&this.syncForm())},syncValue(){if(this.deferSyncFn)return this.deferSyncFn.sync=!0;const e={};Object.keys(this.form).forEach(t=>{-1===this.ignoreFields.indexOf(t)&&(e[t]=this.form[t])}),this.vm.setupState.updateValue(e)},isChange(e,t){return JSON.stringify(this.getFormData(e),Ye)!==JSON.stringify(t,Ye)},isQuote:(e,t)=>(t instanceof Function||S.default.Object(t)||Array.isArray(t))&&t===e.rule.value,refreshUpdate(e,t,r,n){if(S.default.Function(e.rule.update)){const i=Ce(()=>e.rule.update(t,e.origin,this.api,{origin:r||"change",linkField:n}));if(void 0===i)return;e.rule.hidden=!0===i}},valueChange(e,t){this.refreshRule(e,t),this.bus.$emit("change-"+e.field,t)},refreshRule(e,t,r,n){this.refreshControl(e)&&(this.$render.clearCacheAll(),this.loadRule(),this.bus.$emit("update",this.api),this.refresh()),this.refreshUpdate(e,t,r,n)},appendLink(e){const t=e.rule.link;S.default.trueArray(t)&&t.forEach(t=>{const r=()=>this.refreshRule(e,e.rule.value,"link",t);this.bus.$on("change-"+t,r),e.linkOn.push(()=>this.bus.$off("change-"+t,r))})},fields(){return Object.keys(this.fieldCtx)}})}(tt),function(e){O.default(e.prototype,{getCtx(e){return this.getFieldCtx(e)||this.getNameCtx(e)[0]||this.ctxs[e]},getCtxs(e){return this.fieldCtx[e]||this.nameCtx[e]||(this.ctxs[e]?[this.ctxs[e]]:[])},setIdCtx(e,t,r){const n=r+"Ctx";this[n][t]?this[n][t].push(e):this[n][t]=[e]},rmIdCtx(e,t,r){const n=r+"Ctx",i=this[n][t];if(!i)return!1;const o=i.splice(i.indexOf(e)>>>0,1).length>0;return i.length||delete this[n][t],o},getFieldCtx(e){return(this.fieldCtx[e]||[])[0]},getNameCtx(e){return this.nameCtx[e]||[]},setCtx(e){let{id:t,field:r,name:n,rule:i}=e;this.ctxs[t]=e,n&&this.setIdCtx(e,n,"name"),e.input&&(this.setIdCtx(e,r,"field"),this.setFormData(e,e.parser.toFormValue(i.value,e)),this.isMounted&&!this.reloading&&this.vm.emit("change",e.field,i.value,e.origin,this.api,!1,!0))},getParser(e){const t=this.fc.parsers,r=this.fc.renderDriver;if(r){const t=r.parsers||{},n=t[e.originType]||t[P.default(e.type)]||t[e.trueType];if(n)return n}return t[e.originType]||t[P.default(e.type)]||t[e.trueType]||Ze},bindParser(e){e.setParser(this.getParser(e))},getType(e){const t=this.fc.CreateNode.aliasMap,r=t[e]||t[P.default(e)]||e;return P.default(r)},noWatch(e){this.noWatchFn||(this.noWatchFn=e),Ce(e),this.noWatchFn===e&&(this.noWatchFn=null)},watchCtx(e){if(ve().filter(e=>"_"!==e[0]&&"$"!==e[0]&&-1===Qe.indexOf(e)).forEach(t=>{const n=r.toRef(e.rule,t),i="children"===t;e.refRule[t]=n,e.watch.push(r.watch(i?()=>S.default.Function(n.value)?n.value:[...n.value||[]]:()=>n.value,(o,a)=>{let s=n.value;if(!this.isBreakWatch()){if(i&&!1===e.parser.loadChildren)return this.$render.clearCache(e),void this.nextRefresh();if(this.watching=!0,r.nextTick(()=>{this.targetHook(e,"watch",{key:t,oldValue:a,newValue:s})}),"hidden"===t&&Boolean(s)!==Boolean(a)&&(this.$render.clearCacheAll(),r.nextTick(()=>{this.targetHook(e,"hidden",{value:s})})),"ignore"===t&&e.input||"hidden"===t&&("hidden"===e.rule.ignore||this.options.ignoreHiddenFields))this.syncForm();else{if("link"===t)return void e.link();["props","on","deep"].indexOf(t)>-1?(this.parseInjectEvent(e.rule,s||{}),"props"===t&&e.input&&this.setFormData(e,e.parser.toFormValue(e.rule.value,e))):"emit"===t?this.parseEmit(e):["prefix","suffix"].indexOf(t)>-1?s&&this.loadFn(s,e.rule):"type"===t?(e.updateType(),this.bindParser(e)):i&&(S.default.Function(a)&&(a=e.getPending("children",[])),S.default.Function(s)&&(s=e.loadChildrenPending()),this.updateChildren(e,s,a))}this.$render.clearCache(e),this.refresh(),this.watching=!1}},{deep:!i,sync:i}))}),e.refRule.__$title=r.computed(()=>{let t=("object"==typeof e.rule.title?e.rule.title.title:e.rule.title)||"";if(t){const e=t.match(/^\{\{\s*\$t\.(.+)\s*\}\}$/);e&&(t=this.api.t(e[1]))}return t}),e.refRule.__$info=r.computed(()=>{let t=("object"==typeof e.rule.info?e.rule.info.info:e.rule.info)||"";if(t){const e=t.match(/^\{\{\s*\$t\.(.+)\s*\}\}$/);e&&(t=this.api.t(e[1]))}return t}),e.refRule.__$validate=r.computed(()=>{const t=t=>{const r=t.match(/^\{\{\s*\$t\.(.+)\s*\}\}$/);var n;return r?this.api.t(r[1],{title:null===(n=e.refRule)||void 0===n||null===(n=n.__$title)||void 0===n?void 0:n.value}):t};return F.default(e.rule.validate).map(r=>{const n={...r};if(n.message&&(n.message=t(n.message)),S.default.Function(n.validator)){const t=e;n.validator=function(...e){return r.validator.call({that:this,id:t.id,field:t.field,rule:t.rule,api:t.$handle.api},...e)}}if(n.adapter){if("object"==typeof n.error){const e={...n.error};Object.keys(e).forEach(r=>{e[r]=t(e[r])}),n.error=e}return this.adapterValidate(n,e)}return n})}),e.input){const t=r.toRef(e.rule,"value");e.watch.push(r.watch(()=>t.value,()=>{let r=e.parser.toFormValue(t.value,e);this.isChange(e,r)&&this.setValue(e,t.value,r,!0)}))}this.bus.$once("load-end",()=>{let t=e.rule.computed;t&&("object"!=typeof t&&(t={value:t}),Object.keys(t).forEach(n=>{const i=r.computed(()=>{const r=t[n];if(!r)return;const i=this.compute(e,r);return(r.linkage||r.linkageVariable)&&i===et?et:i}),o=t=>{"value"===n?this.onInput(e,t):"$"===n[0]?this.api.setEffect(e.id,n,t):l.deepSet(e.rule,n,t)};("value"===n?[void 0,null,""].indexOf(e.rule.value)>-1:i.value!==Re(e.rule,n))&&o(i.value),e.watch.push(r.watch(i,e=>{e!==et&&setTimeout(()=>{o(e)})},{deep:!0}))}))}),this.watchEffect(e)},adapterValidate(e,t){return this.$manager.adapterValidate({required:e.required,message:e.message,trigger:e.trigger},(r,n)=>{if(!1===(e.beforeValidate&&Ce(()=>e.beforeValidate({value:r,api:this.api,validate:e,rule:t.rule}))))n();else{const i=this.validator(t,r,e);if(i){let r="";"object"==typeof e.error&&(r=e.error[i]||e.error.default),r||"string"!=typeof e.message||(r=e.message),r||(r=this.getValidateMessage(t,{key:i,rule:e[i]})),n(r)}else if(e.validator){const t=e.validator&&Ce(()=>e.validator(r,n));t&&S.default.Function(t.then)&&t.then(()=>n()).catch(e=>n(e))}else n()}})},getValidateMessage(e,t){var r;const n=Array.isArray(t.rule)?t.rule.join(","):""+t.rule;return this.api.t("required"===t.key?t.key:"validate."+t.key,{[t.key]:n,title:null===(r=e.refRule)||void 0===r||null===(r=r.__$title)||void 0===r?void 0:r.value})},validator(e,t,r){if(S.default.empty(t))return r.required?"required":void 0;for(const[n,i]of Object.entries(r))switch(n){case"len":case"maxLen":case"minLen":const r=e=>"len"===n?e===i:"maxLen"===n?e<=i:e>=i;if(Array.isArray(t)){if(!r(t.length))return n}else{if("object"==typeof t)return n;if(!r((""+t).length))return n}break;case"pattern":if(!("string"==typeof i?new RegExp(i):i).test(""+t))return n;break;case"uppercase":if(i&&("string"!=typeof t||!/^[A-Z]*$/.test(t)))return n;break;case"lowercase":if(i&&("string"!=typeof t||!/^[a-z]*$/.test(t)))return n;break;case"min":case"max":case"positive":case"negative":case"integer":case"number":const o=Number(t);if(Number.isNaN(o))return n;if("min"===n&&o<i)return n;if("max"===n&&o>i)return n;if("positive"===n&&o<=0)return n;if("negative"===n&&o>=0)return n;if("integer"===n&&!Number.isInteger(o))return n;break;case"equal":if(t!==i)return n;break;case"enum":if(Array.isArray(i)&&!i.includes(t))return n;break;case"hasKeys":if("object"!=typeof t||Array.isArray(i)&&i.some(e=>!(e in t)))return n;break;case"email":if(!/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/.test(""+t))return n;break;case"url":if(!new RegExp("^(?!mailto:)(?:(?:http|https|ftp)://)(?:\\S+(?::\\S*)?@)?(?:(?:(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}(?:\\.(?:[0-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))|(?:(?:[a-z\\u00a1-\\uffff0-9]+-?)*[a-z\\u00a1-\\uffff0-9]+)(?:\\.(?:[a-z\\u00a1-\\uffff0-9]+-?)*[a-z\\u00a1-\\uffff0-9]+)*(?:\\.(?:[a-z\\u00a1-\\uffff]{2,})))|localhost)(?::\\d{2,5})?(?:(/|\\?|#)[^\\s]*)?$","i").test(""+t))return n;break;case"ip":if(!/^(2(5[0-5]{1}|[0-4]\d{1})|[0-1]?\d{1,2})(\.(2(5[0-5]{1}|[0-4]\d{1})|[0-1]?\d{1,2})){3}$/.test(""+t))return n;break;case"phone":if(!/^(?:(?:\+|00)86)?1[3-9]\d{9}$/.test(""+t))return n;break;case"computed":if(!this.compute(e,i))return n}},compute(e,t){let r;if("object"==typeof t){const r=e.getParentGroup(),n=t=>{if(t=Array.isArray(t)?{mode:"AND",group:t}:t,!S.default.trueArray(t.group))return!0;const i="OR"===t.mode;let o=!0;for(let a=0;a<t.group.length;a++){const s=t.group[a];let l,u=null,c=null;if(s.variable)c=this.fc.getLoadData(s.variable);else if(s.field)u=je(s.field||"");else if(!s.mode)return!0;let d=s.compare;if(d&&(d=je(d||"")),l=s.mode?n(s):!!Oe[s.condition]&&(S.default.Function(s.handler)?Ce(()=>s.handler(this.api,e.rule)):Ce(()=>new Function("$condition","$variableVal","$val","$form","$scope","$group","$rule",`with($form){with($scope){with(this){with($group){ return $condition['${s.condition}'](${s.variable?"$variableVal":u}, ${d||"$val"}); }}}}`).call(this.api.form,Oe,c,s.value,this.api.top.form,this.api.top===this.api.scope?{}:this.api.scope.form,r&&this.subRuleData[r.id]||{},e.rule))),i&&l)return!0;i||(o=o&&l)}return!i&&o};let i=n(t);return i=!0===t.invert?!i:i,t.linkage?i?Ce(()=>this.computeValue(t.linkage,e,r),void 0):et:t.linkageVariable?i?Ce(()=>this.fc.getLoadData(t.linkageVariable),void 0):et:i}if(S.default.Function(t))r=()=>t(this.api.form,this.api,e.rule);else{const n=e.getParentGroup();r=()=>this.computeValue(t,e,n)}return Ce(r,void 0)},computeValue(e,t,r){const n=this,i=Object.keys(this.fc.formulas).reduce((e,r)=>(e[r]=function(...e){return n.fc.formulas[r].call({that:this,rule:t.rule,api:n.api,fc:n.fc},...e)},e),{});return Ce(()=>new Function("$formulas","$form","$scope","$group","$rule","$api",`with($form){with($scope){with(this){with($group){with($formulas){ return ${e} }}}}}`).call(this.api.form,i,this.api.top.form,this.api.top===this.api.scope?{}:this.api.scope.form,r&&this.subRuleData[r.id]||{},t.rule,this.api),void 0)},updateChildren(e,t,r){this.deferSyncValue(()=>{r&&r.forEach(r=>{-1===(t||[]).indexOf(r)&&r&&!S.default.String(r)&&r.__fc__&&r.__fc__.parent===e&&this.rmCtx(r.__fc__)}),S.default.trueArray(t)&&(this.loadChildren(t,e),this.bus.$emit("update",this.api))})},rmSub(e){S.default.trueArray(e)&&e.forEach(e=>{e&&e.__fc__&&this.rmCtx(e.__fc__)})},rmCtx(e){if(e.deleted)return;const{id:t,field:r,input:i,name:o}=e;b.$del(this.ctxs,t),b.$del(this.formData,t),b.$del(this.subForm,t),b.$del(this.vm.setupState.ctxInject,t);const a=e.getParentGroup();a&&this.subRuleData[a.id]&&b.$del(this.subRuleData[a.id],r),e.group&&b.$del(this.subRuleData,t),i&&this.rmIdCtx(e,r,"field"),o&&this.rmIdCtx(e,o,"name"),i&&!n.hasProperty(this.fieldCtx,r)&&b.$del(this.form,r),this.deferSyncValue(()=>{if(!this.reloading){if(!1!==e.parser.loadChildren){const t=e.getPending("children",e.rule.children);S.default.trueArray(t)&&t.forEach(e=>e&&e.__fc__&&this.rmCtx(e.__fc__))}e.root===this.rules&&this.vm.setupState.renderRule()}},i);const s=this.sort.indexOf(t);return s>-1&&this.sort.splice(s,1),this.$render.clearCache(e),e.delete(),this.effect(e,"deleted"),this.targetHook(e,"deleted"),i&&!this.fieldCtx[r]&&this.vm.emit("remove-field",r,e.rule,this.api),e.rule.__ctrl||this.vm.emit("remove-rule",e.rule,this.api),e}})}(tt),function(e){O.default(e.prototype,{mounted(){const e=()=>{this.isMounted=!0,this.lifecycle("mounted")};this.pageEnd?e():this.bus.$once("page-end",e)},lifecycle(e){this.fc.targetFormDriver(e,this.api,this.fc),this.vm.emit(e,this.api),this.emitEvent(e,this.api)},emitEvent(e,...t){const r=this.options[e]||this.options[P.default("on-"+e)];if(r){const e=y.parseFn(r);S.default.Function(e)&&Ce(()=>e(...t))}this.bus.$emit(e,...t)},targetHook(e,t,r){var n;let i=(t,n)=>{t&&(t=Array.isArray(t)?t:[t]).forEach(t=>{Ce(()=>t({args:Object.values(r||{}),...r||{},self:e.rule,rule:e.rule,parent:null==n?void 0:n.rule,$f:this.api,api:this.api,option:this.vm.props.option}))})};i(null===(n=e.prop)||void 0===n||null===(n=n.hook)||void 0===n?void 0:n[t]);let o="deep"+m.upper(t),a=e.parent;for(;a;){var s;i(null===(s=a.prop)||void 0===s||null===(s=s.hook)||void 0===s?void 0:s[o],a),a=a.parent}}})}(tt),function(e){O.default(e.prototype,{useProvider(){const e=this.fc.providers;Object.keys(e).forEach(t=>{let r=e[t];S.default.Function(r)&&(r=r(this.fc)),r._c=function(e){const t=e.components;if(Array.isArray(t)){const e=function(e){return e.filter((function(e,t,r){return r.indexOf(e,0)===t}))}(t.filter(e=>"*"!==e));return!!e.length&&e}return!!S.default.String(t)&&[t]}(r),this.onEffect(r,t),this.providers[t]=r})},onEffect(e,t){const r=[];(e._c||["*"]).forEach(n=>{const i="*"===n?"*":this.getType(n);r.indexOf(i)>-1||(r.push(i),this.bus.$on(`p:${t||e.name}:${i}:${e.input?1:0}`,(t,r)=>{e[t]&&e[t](...r)}))}),e._used=r},watchEffect(e){let t={required:()=>{var t;return(n.hasProperty(e.rule,"$required")?e.rule.$required:null===(t=e.rule)||void 0===t||null===(t=t.effect)||void 0===t?void 0:t.required)||!1}};Object.keys(e.rule.effect||{}).forEach(r=>{t[r]=()=>e.rule.effect[r]}),Object.keys(e.rule).forEach(r=>{"$"===r[0]&&(t[r.substr(1)]=()=>e.rule[r])}),Object.keys(t).forEach(n=>{e.watch.push(r.watch(t[n],t=>{this.effect(e,"watch",{[n]:t})},{deep:!0}))})},ruleEffect(e,t,r){this.emitEffect({rule:e,input:!!e.field,type:this.getType(e.type)},t,r)},effect(e,t,r){this.emitEffect({rule:e.rule,input:e.input,type:e.trueType,ctx:e,custom:r},t)},getEffect:(e,t)=>n.hasProperty(e,"$"+t)?e["$"+t]:n.hasProperty(e,"effect")&&n.hasProperty(e.effect,t)?e.effect[t]:void 0,emitEffect({ctx:e,rule:t,input:r,type:n,custom:i},o,a){if(!n||["fcFragment","fragment"].indexOf(n)>-1)return;const s=i||Object.keys(t).reduce((e,r)=>("$"===r[0]&&(e[r.substr(1)]=t[r]),e),{...t.effect||{}});Object.keys(s).forEach(i=>{const l=this.providers[i];if(!l||l.input&&!r)return;let u;if(l._c){if(!(l._used.indexOf(n)>-1))return;u=n}else u="*";const c={value:s[i],getValue:()=>this.getEffect(t,i),...a||{}};e&&(c.getProp=()=>e.effectData(i),c.clearProp=()=>e.clearEffectData(i),c.mergeProp=e=>xe(c.getProp(),[e]),c.id=e.id),this.bus.$emit(`p:${i}:${u}:${l.input?1:0}`,o,[c,t,this.api])})}})}(tt);var rt=r.defineComponent({name:"fcFragment",inheritAttrs:!1,props:["vnode"],render(){return this.vnode}});function nt(e,t){let n=e.directives;return n?(Array.isArray(n)||(n=[n]),r.withDirectives(t,n.reduce((e,t)=>e.concat(function(e){return Object.keys(e).map(t=>{const n=e[t],i=r.resolveDirective(t);if(i)return[i,n.value,n.arg,n.modifiers]}).filter(e=>!!e)}(t)),[]))):t}function it(e){class t extends ot{}return Object.assign(t.prototype,e),t}function ot(e){O.default(this,{$handle:e,vm:e.vm,options:{},ref:"fcForm",mergeOptionsRule:{normal:["form","row","info","submitBtn","resetBtn"]}}),this.updateKey(),this.init()}O.default(ot.prototype,{__init(){this.$render=this.$handle.$render,this.$r=(...e)=>this.$render.renderRule(...e)},updateKey(){this.key=N.default()},init(){},update(){},beforeRender(){},form(){return this.vm.refs[this.ref]},adapterValidate:(e,t)=>(e.validator=(e,r,n)=>t(r,n),e),getSlot(e){const t=r=>{if(r){let n=r.slots[e];return n||t(r.setupState.parent)}};return t(this.vm)},mergeOptions(e,t){return j.default(e.map(e=>this.tidyOptions(e)),t,this.mergeOptionsRule)},updateOptions(e){this.$handle.fc.targetFormDriver("updateOptions",e,{handle:this.$handle,api:this.$handle.api}),this.options=this.mergeOptions([e],this.getDefaultOptions()),this.update()},tidyOptions:e=>e,tidyRule(e){},mergeProp(e){},getDefaultOptions:()=>({}),fieldChange(e,t,r,n){},render(e){}});const at={name:"componentValidate",load(e,t,r){let n=e.getValue();if(n&&!1!==n.method){S.default.Object(n)||(n={method:n});const i=n.method,o={...n,validator(...n){const o=ke(t);if(o)return r.exec(o.id,S.default.String(i)?i:"formCreateValidate",...n,{attr:e,rule:t,api:r})}};delete o.method,e.getProp().validate=[o]}else e.clearProp(),r.clearValidateState([t.field])},watch(...e){at.load(...e)}};var st={fetch:function(e){function t(t,i,o){let s=t.value;r.deleted(t),S.default.Function(s)&&(s=s(i,o)),s=function(e){return S.default.String(e)&&(e={action:e,to:"options"}),e}(s);const u=r=>{void 0===r?t.clearProp():I.default(t.getProp(),s.to||"options",r),null!=r&&s&&s.key&&e.$handle.options.globalData[s.key]&&e.fetchCache.set(e.$handle.options.globalData[s.key],{status:!0,data:r}),o.sync(i)};if(!s||!s.action&&!s.key)return void u(void 0);s=a.deepCopy(s),s.to||(s.to="options");const c=s.onError,d=()=>{if(!t.getValue())return t.clearProp(),o.sync(i),!0};r._fn[t.id]=e.watchLoadData(E.default((p,h)=>{if(h&&!1===s.watch)return r._fn[t.id]();if(s.key){e.targetRule=i;const t=p("$globalData."+s.key);if(delete e.targetRule,t){if(d())return;u(t)}return}const f=e.$handle.loadFetchVar(a.deepCopy(s),p,i),m={headers:{},...f,onSuccess(e,t){if(d())return;let r=e=>t?e:n.hasProperty(e,"data")?e.data:e;const a=y.parseFn(f.parse);S.default.Function(a)?r=a:a&&S.default.String(a)&&(r=e=>Re(e,a)),l.toPromise(r(e,i,o)).then(e=>{u(e)})},onError(e){u(void 0),d()||(c||(e=>g.err(e.message||"fetch fail "+f.action)))(e,i,o)}};e.$handle.beforeFetch(m,{rule:i,api:o}).then(()=>{S.default.Function(f.action)?l.toPromise(f.action(i,o)).then(e=>{m.onSuccess(e,!0)}).catch(e=>{m.onError(e)}):Ce(()=>e.create.fetch(m,{inject:t,rule:i,api:o}))}).catch(e=>{})},s.wait||600))}const r={name:"fetch",_fn:[],loaded(...e){t(...e)},watch(...e){t(...e)},deleted(e){this._fn[e.id]&&(this._fn[e.id](),delete this._fn[e.id]),e.clearProp()}};return r},loadData:function(e){const t={name:"loadData",_fn:[],loaded(t,n,i){this.deleted(t),r.nextTick(()=>{let r=F.default(t.getValue());const o=[];r.forEach(r=>{if(r&&(r.attr||r.template)){let s=o=>{let s,l;n&&n.__fc__&&(s=n.__fc__.getParentGroup()),l=r.template?e.$handle.loadStrVar(r.template,o,s?{rule:n,value:e.$handle.subRuleData[s.id]||{}}:null):r.handler&&S.default.Function(r.handler)?r.handler(o,n,i):e.$handle.loadStrVar(`{{${r.attr}}}`,o,s?{rule:n,value:e.$handle.subRuleData[s.id]||{}}:null),null!=l&&""!==l||null==r.default||(l=r.default),!1!==r.copy&&(l=a.deepCopy(l));const u=r.modify?n:t.getProp();"child"===r.to?u.children?u.children[0]=l:u.children=[l]:I.default(u,r.to||"options",l),i.sync(n)},l=e=>s(e);const u=e.watchLoadData(l);s=E.default(s,r.wait||300),!1!==r.watch?o.push(u):u()}}),this._fn[t.id]=o})},deleted(e){this._fn[e.id]&&(this._fn[e.id].forEach(e=>{e()}),delete this._fn[e.id]),e.clearProp()}};return t.watch=t.loaded,t},t:function(e){const t={name:"t",_fn:[],loaded(t,r,n){this.deleted(t);let i=t.getValue()||{};const o=[];Object.keys(i).forEach(a=>{const s=i[a];if(s){const i="object"==typeof s;let l=o=>{let l=e.t(i?s.attr:s,i?s.params:null,o);const u=i&&s.modify?r:t.getProp();"child"===a?u.children?u.children[0]=l:u.children=[l]:I.default(u,a,l),n.sync(r)},u=e=>l(e);const c=e.watchLoadData(u);l=E.default(l,s.wait||300),!1!==s.watch?o.push(c):c()}}),this._fn[t.id]=o},deleted(e){this._fn[e.id]&&(this._fn[e.id].forEach(e=>{e()}),delete this._fn[e.id]),e.clearProp()}};return t.watch=t.loaded,t},componentValidate:at};var lt={name:"html",loadChildren:!1,render:(e,t)=>(t.prop.props.innerHTML=e.default(),t.vNode.make(t.prop.props.tag||"div",t.prop)),renderChildren:e=>({default:()=>e.filter(e=>S.default.String(e)).join("")})};function ut(e){e+="=";const t=decodeURIComponent(document.cookie).split(";");for(let r=0;r<t.length;r++){let n=t[r];for(;" "===n.charAt(0);)n=n.substring(1);if(0===n.indexOf(e)){n=n.substring(e.length,n.length);try{return JSON.parse(n)}catch(e){return n}}}return null}function ct(e){const t=localStorage.getItem(e);if(t)try{return JSON.parse(t)}catch(e){return t}return null}function dt(e){const t=sessionStorage.getItem(e);if(t)try{return JSON.parse(t)}catch(e){return t}return null}function pt(e,t){if(!t)return null;const r=t.split(".");let n=e(r.shift());return r.length?null==n?null:Re(n,r):n}function ht(e){return pt(ut,e)}function ft(e){return pt(ct,e)}function mt(e){return pt(dt,e)}var gt={en:{required:"{title} is required",validate:{url:"{title} is not a valid url",email:"{title} is not a valid email",ip:"{title} {title} is not a valid ip",phone:"{title} {title} is not a valid phone",pattern:"{title} does not match pattern {pattern}",uppercase:"{title} must be all uppercase",lowercase:"{title} must be all lowercased",positive:"{title} is not a positive number",negative:"{title} is not a negative number",equal:"{title} is not equal to {equal}",min:"{title} cannot be less than {min}",max:"{title} cannot be greater than {max}",enum:"{title} must be one of {enum}",hasKeys:"{title} does not contain required fields {hasKeys}",minLen:"{title} must be at least {minLen}",maxLen:"{title} cannot be longer than {maxLen}",len:"{title} must be exactly {len}",integer:"{title} is not an integer",number:"{title} is not an number"}},"zh-cn":{required:"{title}不能为空",validate:{url:"{title}不是有效的 url 地址",email:"{title}不是有效的邮箱地址",ip:"{title}不是有效的 IP 地址",phone:"{title}不是正确的手机号",pattern:"{title}必须匹配 {pattern}",uppercase:"{title}必须全大写",lowercase:"{title}必须全小写",positive:"{title}不是正数",negative:"{title}不是负数",equal:"{title}必须等于 {equal}",min:"{title}必须大于等于 {min}",max:"{title}必须小于等于 {max}",enum:"{title}必须是 {enum} 之一",hasKeys:"{title}必须包含 {hasKeys} 字段",minLen:"{title}长度必须大于 {minLen}",maxLen:"{title}长度必须小于 {maxLen}",len:"{title}长度必须为 {len}",integer:"{title}必须为整数",number:"{title}必须为数字"}}};function vt(e,t){let r;return 2===arguments.length?(r=arguments[1],t=r[e]):r=arguments[2],{id:t,prop:r}}function yt(){return vt("name",...arguments)}let bt=1;const _t={},xt=Symbol("defValue");const $t={type:(e,t)=>Object.prototype.toString.call(e)==="[object "+t+"]",Undef:e=>null==e,Element:e=>"object"==typeof e&&null!==e&&1===e.nodeType&&!$t.Object(e),trueArray:e=>Array.isArray(e)&&e.length>0,Function(e){const t=this.getType(e);return"Function"===t||"AsyncFunction"===t},getType(e){const t=Object.prototype.toString.call(e);return/^\[object (.*)\]$/.exec(t)[1]},empty:e=>null==e||(!(!Array.isArray(e)||!Array.isArray(e)||e.length)||"string"==typeof e&&!e)};function wt(e,t,r){e[t]=r}function kt(e,t={},r){let n=!1;for(let i in t)if(Object.prototype.hasOwnProperty.call(t,i)){let o=t[i];if((n=Array.isArray(o))||$t.Object(o)){let t=void 0===e[i];if(n)n=!1,t&&wt(e,i,[]);else if(o._clone&&void 0!==r){if(!r){wt(e,i,o._clone());continue}o=o.getRule(),t&&wt(e,i,{})}else t&&wt(e,i,{});e[i]=kt(e[i],o,r)}else wt(e,i,o),$t.Undef(o)||($t.Undef(o.__json)||(e[i].__json=o.__json),$t.Undef(o.__origin)||(e[i].__origin=o.__origin))}return void 0!==r&&Array.isArray(e)?e.filter(e=>!e||!e.__ctrl):e}["Date","Object","String","Boolean","Array","Number"].forEach(e=>{$t[e]=function(t){return $t.type(t,e)}});const Ct=Object.assign||function(e){for(let t,r=1;r<arguments.length;r++)for(let n in t=arguments[r],t)Object.prototype.hasOwnProperty.call(t,n)&&wt(e,n,t[n]);return e};function St(e,t){console.error(function(e,t,r){return`[form-create ${e}]: ${t}`+(r?"\n\nrule: "+JSON.stringify(r.getRule?r.getRule():r):"")}("err",e,t))}const Vt="[[FORM-CREATE-PREFIX-",Ft="-FORM-CREATE-SUFFIX]]";function Dt(e){return new Function("return "+e)()}let Ot=0;e.$del=function(e,t){delete e[t]},e.$set=wt,e.copy=function(e){return"object"!=typeof e||null===e?e:e instanceof Array?[...e]:{...e}},e.debounce=function(e,t){var r=null;return function(...n){null!==r&&clearTimeout(r),r=setTimeout(()=>e.call(this,...n),t)}},e.deepCopy=function(e){return kt({},{value:e}).value},e.deepExtend=kt,e.deepExtendArgs=function(e,...t){return t.forEach(t=>{e=kt(e,t)}),e},e.deepSet=function(e,t,r){let n,i=e;return(t||"").split(".").forEach(e=>{n&&(i[n]&&"object"==typeof i[n]||(i[n]={}),i=i[n]),n=e}),i[n]=r,i},e.extend=function(){return Ct.apply(this,arguments)},e.formCreate=function e(t){const i={[rt.name]:rt},o={},u={},c={},d={},p=[],h=[],f=[t.extendApi],m={...st},g=Le();let v={global:{}};const b=!0===t.isMobile,_=r.reactive({$mobile:b}),x=function(){const e={};function t(e){this.vm=e.vm,this.handle=e}return O.default(t.prototype,{make(e,t,r){return nt(t,this.h(e,Ve(t),r))},makeComponent(e,t,n){try{return nt(t,r.createVNode(e,Ve(t),n))}catch(e){return console.error(e),r.createVNode("")}},h(e,t,n){const i=(this.vm||r.getCurrentInstance()).appContext.config.isNativeTag(e),o=this.handle.fc.prop.components[e];!o&&i&&delete t.formCreateInject;try{return r.createVNode(o||(i?e:r.resolveComponent(e)),t,n)}catch(e){return console.error(e),r.createVNode("")}},aliasMap:e}),O.default(t,{aliasMap:e,alias(t,r){e[t]=r},use(r){Object.keys(r).forEach(n=>{const i=A.default(n),o=T.default(n).toLocaleLowerCase(),a=r[n];t.alias(n,a),[n,i,o].forEach(r=>{t.prototype[r]=function(t,i){return this.make(e[n]||r,t,i)}})})}}),t}(),$={},w={};function k(e){const t=_t[e];return Array.isArray(t)?t.map(e=>e.api()):t?t.api():void 0}function C(e){p.push(e)}function V(){const e=yt(...arguments);e.id&&e.prop&&(u[e.id]=e.prop)}function F(){const e=yt(...arguments);e.id&&e.prop&&(m[e.id]=S.default.Function(e.prop)?e.prop:{...e.prop,name:e.id})}function D(e){x.use(e)}function R(e){if(0===arguments.length)return Ze;if("string"==typeof e&&1===arguments.length)return o[P.default(e)];const t=yt(...arguments);if(!t.id||!t.prop)return Ze;const r=P.default(t.id),n=t.prop,i=!0===n.merge?o[r]:void 0;o[r]=Fe(n,i||Ze),g[r]=Pe(r),n.maker&&O.default(g,n.maker)}function j(e,t){let r;if(S.default.String(e)){if(r=e,void 0===t)return i[r]}else r=e.displayName||e.name,t=e;if(!r||!t)return;const n=P.default(r);i[r]=t,i[n]=t,delete x.aliasMap[r],delete x.aliasMap[n],delete o[r],delete o[n],t.formCreateParser&&R(r,t.formCreateParser)}function I(){return Ae(ee,i,u)}function L(){return rt}function q(e,t){return S.default.Function(e.install)?e.install(M,t):S.default.Function(e)&&e(M,t),this}function M(e,t){let n=function(e,t){const n=I();return r.createApp({data:()=>r.reactive({rule:e,option:t}),render(){return r.h(n,{ref:"fc",...this.$data})}})}(e,t||{});p.forEach(e=>{Ce(()=>e(M,n))});const i=document.createElement("div");((null==t?void 0:t.el)||document.body).appendChild(i);return n.mount(i).$refs.fc.fapi}function U(r){let n={...t};return r?n.inherit={components:i,parsers:o,directives:u,modelFields:c,providers:m,useApps:p,maker:g,formulas:$,loadData:_}:delete n.inherit,e(n)}function J(e,t){c[e]=t}function G(e,t){$[e]=t}function z(e,t){const r=d[e]||{},n=r.parsers||{};t.parsers&&Object.keys(t.parsers).forEach(e=>{n[e]=Fe(t.parsers[e],Ze)}),t.name=e,d[e]={...r,...t,parsers:n}}function H(e){e&&Object.keys(_t).forEach(t=>{(Array.isArray(_t[t])?_t[t]:[_t[t]]).forEach(t=>{t.bus.$emit("$loadData."+e)})})}function W(e,t){l.deepSet(_,e,t),H(e)}function K(e,t){const r=(...e)=>Ce(()=>t(...e));r._driver=!0,W(e,r)}function X(e,t){const r=(e||"").split(".");e=r.shift();const i=r.join(".");if(n.hasProperty(_,e)||(_[e]=xt),_[e]!==xt){let n=_[e];return n&&n._driver?n=n(i):r.length&&(n=Re(n,r)),null==n||""===n?t:n}return t}function Y(e){f.push(e)}function Z(e){delete _[e],H(e)}function Q(e,t){h.push({name:e,callback:t})}function ee(e){O.default(this,{id:bt++,create:M,vm:e,manager:it(t.manager),parsers:o,providers:m,modelFields:c,formulas:$,isMobile:b,rules:e.props.rule,name:e.props.name||N.default(),inFor:e.props.inFor,prop:{components:i,directives:u},get:null,drivers:d,renderDriver:null,refreshData:H,loadData:_,CreateNode:x,bus:new B.default,unwatch:[],options:r.ref({}),extendApiFn:f,fetchCache:new WeakMap,tmpData:r.reactive({})}),h.forEach(e=>{this.bus.$on(e.name,e.callback)}),r.nextTick(()=>{r.watch(this.options,()=>{this.$handle.$manager.updateOptions(this.options.value),this.api().refresh()},{deep:!0})}),O.default(e.appContext.components,i),O.default(e.appContext.directives,u),this.$handle=new tt(this),this.name&&(this.inFor?(_t[this.name]||(_t[this.name]=[]),_t[this.name].push(this)):_t[this.name]=this)}function te(e){O.default(e,{version:t.version,ui:t.ui,isMobile:b,extendApi:Y,getData:X,setDataDriver:K,setData:W,removeData:Z,refreshData:H,maker:g,component:j,directive:V,setModelField:J,setFormula:G,setDriver:z,register:F,$vnode:L,parser:R,use:q,factory:U,componentAlias:D,copyRule:be,copyRules:_e,mergeRule:xe,fetch:Me,$form:I,parseFn:y.parseFn,parseJson:y.parseJson,toJson:y.toJson,useApp:C,getApi:k,on:Q})}var re;if(function(e){const t=e.key||[],r=e.array||[],n=e.normal||[];fe.push(...t),me.push(...r),ge.push(...n),Te([...t,...r,...n])}(t.attrs||{}),Fe(M,w),ee.isMobile=b,O.default(ee.prototype,{init(){this.isSub()&&this.unwatch.push(r.watch(()=>this.vm.setupState.parent.setupState.fc.options.value,()=>{this.initOptions(),this.$handle.api.refresh()},{deep:!0,flush:"sync"})),this.vm.props.driver&&(this.renderDriver="object"==typeof this.vm.props.driver?this.vm.props.driver:this.drivers[this.vm.props.driver]),!this.renderDriver&&this.vm.setupState.parent&&(this.renderDriver=this.vm.setupState.parent.setupState.fc.renderDriver),this.renderDriver||(this.renderDriver=this.drivers.default),this.initOptions(),this.$handle.init()},targetFormDriver(e,...t){if(this.bus.$emit(e,...t),this.renderDriver&&this.renderDriver[e])return Ce(()=>this.renderDriver[e](...t))},t(e,t,r){let n=r?r("$t."+e):this.globalLanguageDriver(e);return null==n&&(n=""),n&&t&&Object.keys(t).forEach(e=>{const r=new RegExp(`{${e}}`,"g");n=n.replace(r,t[e])}),n},globalDataDriver(e){let t=e.split(".");const r=t.shift(),n=this.options.value.globalData&&this.options.value.globalData[r];if(n){if("static"===n.type)return Re(n.data,t);{let e;const i=this.fetchCache.get(n);if(i){if(i.status&&(e=Re(i.data,t)),!i.loading)return e;i.loading=!1,this.fetchCache.set(n,i)}else this.fetchCache.set(n,{status:!1});const o=E.default(()=>{u();const e=this.fetchCache.get(n);this.options.value.globalData&&-1!==Object.values(this.options.value.globalData).indexOf(n)?(e&&(e.loading=!0,this.fetchCache.set(n,e)),this.bus.$emit("$loadData.$globalData."+r)):this.fetchCache.delete(n)},n.wait||600),a=e=>{this.fetchCache.set(n,{status:!0,data:e}),this.bus.$emit("$loadData.$globalData."+r)},l=(e,t)=>{if(t&&!1===n.watch)return u();if(t)return void o();const r=this.$handle.loadFetchVar(s.copy(n),e);r.targetRule=this.targetRule,this.$handle.api.fetch(r).then(e=>{a(e)}).catch(e=>{a(null)})},u=this.watchLoadData(l);return!1===n.watch&&u(),this.unwatch.push(u),e}}},getLocale(){let e=this.vm.setupState.top.props.locale;return e&&"object"==typeof e?e.name:"string"==typeof e?e:"zh-cn"},globalLanguageDriver(e){let t=this.vm.setupState.top.props.t,r=this.vm.setupState.top.props.locale,n=void 0;if(t&&(n=Ce(()=>t(e))),null==n&&r&&"object"==typeof r&&(n=Re(r,e)),null==n){const t=this.options.value.language||{},r=this.getLocale();n=Re(t[r]||{},e),null==n&&(n=Re(gt[r]||{},e))}return n},globalVarDriver(e){let t=e.split(".");const r=t.shift(),n=this.options.value.globalVariable&&this.options.value.globalVariable[r];if(n){const e=S.default.Function(n)?n:y.parseFn(n.handle);if(e){return Re(e((...e)=>this.$handle.api.getData(...e),this.$handle.api),t)}}},setData(e,t,r){r?W(e,t):(l.deepSet(this.vm.setupState.top.setupState.fc.tmpData,e,t),this.bus.$emit("$loadData."+e))},getLoadData(e,t){let r=null;if(null!=e){let t=e.split(".");const n=t.shift();if(r=Re(this.vm.setupState.top.setupState.fc.tmpData,e),null!=r)return r;if("$topForm"===n)r=this.$handle.api.top.formData(!0);else if("$scopeForm"===n)r=this.$handle.api.scope.formData(!0);else if("$form"===n)r=this.$handle.api.formData(!0);else if("$options"===n)r=this.options.value;else if("$globalData"===n)r=this.globalDataDriver(t.join(".")),t=[];else if("$var"===n)r=this.globalVarDriver(t.join(".")),t=[];else if("$locale"===n)r=this.getLocale(),t=[];else if("$t"===n)r=this.globalLanguageDriver(t.join(".")),t=[];else{if("$preview"===n)return this.$handle.preview;r=X(e),t=[]}r&&t.length&&(r=Re(r,t))}return null==r||""===r?t:r},watchLoadData(e,t){let n={};const i=t=>{this.get||(this.get=o),Ce(()=>{e(o,t)}),this.get===o&&(this.get=void 0)},o=(e,o)=>{let a;if("object"==typeof e&&(a=e.getValue,e=e.id),n[e])return n[e].val;const s=r.computed(()=>a?a():this.getLoadData(e,o)),l=e.split("."),u=l.shift(),c=l.shift()||"",d=E.default(()=>{const t=a?a():this.getLoadData(e,o);n[e]&&((t instanceof Function||S.default.Object(t)||Array.isArray(t))&&t===n[e].val||JSON.stringify(t)!==JSON.stringify(n[e].val))&&(n[e].val=t,i(!0))},t||0),p=r.watch(s,e=>{d()});return this.bus.$on("$loadData."+u,d),c&&this.bus.$on("$loadData."+u+"."+c,d),n[e]={fn:()=>{this.bus.$off("$loadData."+u,d),c&&this.bus.$off("$loadData."+u+"."+c,d),p()},val:s.value},s.value};i(!1);const a=()=>{Object.keys(n).forEach(e=>n[e].fn()),n={}};return this.unwatch.push(a),a},isSub(){return this.vm.setupState.parent&&this.vm.props.extendOption},initOptions(){this.options.value={};let e={formData:{},submitBtn:{},resetBtn:{},globalEvent:{},globalData:{},...a.deepCopy(v)};const t=this.isSub();t&&(e=this.mergeOptions(e,this.vm.setupState.parent.setupState.fc.options.value||{},!0)),e=this.mergeOptions(e,this.vm.props.option);const r=this.api();this.targetFormDriver("initOptions",e,{api:r,isSubForm:t}),this.updateOptions(e)},mergeOptions(e,t,r){return t={...t||{}},r&&["page","onSubmit","onReset","onCreated","onChange","onMounted","mounted","onReload","reload","formData","el","globalClass","style"].forEach(e=>{delete t[e]}),t.global&&(e.global=function(e,t){return e?(Object.keys(t||{}).forEach(r=>{t[r]&&(e[r]=xe(e[r]||{},t[r]))}),e):t}(e.global,t.global),delete t.global),this.$handle.$manager.mergeOptions([t],e),e},updateOptions(e){this.options.value=this.mergeOptions(this.options.value,e),this.$handle.$manager.updateOptions(this.options.value),this.bus.$emit("$loadData.$options")},api(){return this.$handle.api},render(){return this.$handle.render()},mounted(){this.$handle.mounted()},unmount(){if(this.name)if(this.inFor){const e=_t[this.name].indexOf(this);_t[this.name].splice(e,1)}else delete _t[this.name];h.forEach(e=>{this.bus.$off(e.name,e.callback)}),this.tmpData={},this.unwatch.forEach(e=>e()),this.unwatch=[],this.$handle.reloadRule([])},updated(){this.$handle.bindNextTick(()=>this.bus.$emit("next-tick",this.$handle.api))}}),te(w),re=w,O.default(re,{create:M,install(e,r){v={...v,...r||{}};const n=`_installedFormCreate${b?"Mobile":""}_${t.ui}`;if(!0===e[n])return;e[n]=!0;const i=function(e,t={}){return M(e,t)};te(i),e.config.globalProperties.$formCreate=i;const o=I();e.component(o.name,o),p.forEach(t=>{Ce(()=>t(re,e))})}}),K("$cookie",ht),K("$localStorage",ft),K("$sessionStorage",mt),x.use({fragment:"fcFragment"}),t.install&&M.use(t),C((e,t)=>{t.mixin({props:["formCreateInject"]})}),R(lt),t.inherit){const e=t.inherit;e.components&&O.default(i,e.components),e.parsers&&O.default(o,e.parsers),e.directives&&O.default(u,e.directives),e.modelFields&&O.default(c,e.modelFields),e.providers&&O.default(m,e.providers),e.useApps&&O.default(p,e.useApps),e.maker&&O.default(g,e.maker),e.loadData&&O.default(_,e.loadData),e.formulas&&O.default($,e.formulas)}const ne=I();return Fe(ne,w),Object.defineProperties(ne,{fetch:{get:()=>w.fetch,set(e){w.fetch=e}}}),ne.util=w,ne},e.formCreateMobile=he,e.getSlot=function(e,t){return Object.keys(e).reduce((r,n)=>(t&&-1!==t.indexOf(n)||(r[n]=e[n]),r),{})},e.is=$t,e.parseJson=function(e,t){return JSON.parse(e,(function(e,r){return $t.Undef(r)||!r.indexOf?r:function(e,t){if(e&&$t.String(e)&&e.length>4){let r=e.trim(),n=!1;try{if(r.indexOf(Ft)>0&&0===r.indexOf(Vt))r=r.replace(Ft,"").replace(Vt,""),n=!0;else if(0===r.indexOf("$FN:"))r=r.substring(4),n=!0;else if(0===r.indexOf("$EXEC:"))r=r.substring(6),n=!0;else{if(0===r.indexOf("$GLOBAL:")){const t=r.substring(8);return r=function(...e){const r=e[0].api.getGlobalEvent(t);if(r)return r.call(this,...e)},r.__json=e,r.__inject=!0,r}if(0===r.indexOf("$FNX:"))return r=Dt("function($inject){\n"+r.substring(5)+"\n}"),r.__json=e,r.__inject=!0,r;(t||0!==r.indexOf("function ")||"function "===r)&&(t||0!==r.indexOf("function(")||"function("===r)||(n=!0)}if(!n)return e;let i;try{i=Dt(r)}catch(e){i=Dt("function "+r)}return i.__json=e,i}catch(e){return void St(`解析失败:${r}\n\nerr: ${e}`)}}return e}(r,t)}))},e.toArray=function(e){return Array.isArray(e)?e:[null,void 0,""].indexOf(e)>-1?[]:[e]},e.toDate=function(e){if($t.Date(e))return e;{let t=new Date(e);return"Invalid Date"===t.toString()?e:t}},e.toJson=function(e,t){return JSON.stringify(kt(Array.isArray(e)?[]:{},e,!0),(function(e,t){if(!t||!0!==t._isVue){if("function"!=typeof t)return t;if(t.__json)return t.__json;if(t.__origin&&(t=t.__origin),!t.__emit)return Vt+t+Ft}}),t)},e.toLine=function(e){let t=e.replace(/([A-Z])/g,"-$1").toLocaleLowerCase();return 0===t.indexOf("-")&&(t=t.substr(1)),t},e.toPromise=function(e){return function(e){return e&&"object"==typeof e&&"function"==typeof e.then}(e)?e:Promise.resolve(e)},e.toString=function(e){return null==e?"":"object"==typeof e?JSON.stringify(e,null,2):String(e)},e.uniqueId=function(){const e=370+ ++Ot;return"F"+Math.random().toString(36).substr(3,3)+Number(""+Date.now()).toString(36)+e.toString(36)+"c"},Object.defineProperty(e,"__esModule",{value:!0})}));
7
+ !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@form-create/component-subform/dist/index"),require("vue"),require("@form-create/utils/lib/type"),require("dayjs"),require("@form-create/utils/lib/toarray"),require("@form-create/utils/lib/deepextend"),require("@form-create/utils/lib/extend"),require("@form-create/utils"),require("@form-create/core/src/index"),require("@form-create/utils/lib/mergeprops"),require("vant"),require("@form-create/core/src/frame/util"),require("@form-create/utils/lib/debounce"),require("@form-create/utils/lib/toline"),require("@form-create/utils/lib/console"),require("@form-create/utils/lib/tocase"),require("@form-create/utils/lib/json"),require("@form-create/utils/lib/modify"),require("@form-create/utils/lib/unique"),require("@form-create/utils/lib/tostring"),require("@form-create/utils/lib/deepset"),require("@form-create/utils/lib/mitt")):"function"==typeof define&&define.amd?define(["exports","@form-create/component-subform/dist/index","vue","@form-create/utils/lib/type","dayjs","@form-create/utils/lib/toarray","@form-create/utils/lib/deepextend","@form-create/utils/lib/extend","@form-create/utils","@form-create/core/src/index","@form-create/utils/lib/mergeprops","vant","@form-create/core/src/frame/util","@form-create/utils/lib/debounce","@form-create/utils/lib/toline","@form-create/utils/lib/console","@form-create/utils/lib/tocase","@form-create/utils/lib/json","@form-create/utils/lib/modify","@form-create/utils/lib/unique","@form-create/utils/lib/tostring","@form-create/utils/lib/deepset","@form-create/utils/lib/mitt"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).icarysFormCreateVant={},e.subForm,e.Vue,e.is$1,e.dayjs,e.toArray$1,e.deepExtend$1,e.extend$1,e.utils,e.FormCreateFactory$1,e.mergeProps,e.vant,e.util,e.debounce$1,e.toLine$1,e.console$1,e.toCase,e.json,e.modify,e.unique$1,e.toString$1,e.deepSet$1,e.Mitt)}(this,(function(e,t,r,n,i,o,a,s,l,u,c,d,p,f,m,g,v,y,b,_,x,$,w){"use strict";function k(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var C=k(t),S=k(n),V=k(i),F=k(o),D=k(a),O=k(s),R=k(u),j=k(c),E=k(f),A=k(m),P=k(v),N=k(_),T=k(x),I=k($),B=k(w);function L(){return(L=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)({}).hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e}).apply(null,arguments)}var q=r.defineComponent({name:"fcCalendar",inheritAttrs:!1,props:{placeholder:String,formCreateInject:Object,disabled:Boolean,clearable:Boolean,type:String,modelValue:[String,Array],minDate:[String,Date],maxDate:[String,Date]},emits:["update:modelValue","change","fc.el"],setup(e,t){const i=r.ref(!1),o=r.toRef(e,"modelValue"),a=r.toRef(e,"formCreateInject"),s=r.ref(o.value);r.watch(()=>o.value,e=>{s.value=e});const l=e=>V.default(e).format("YYYY-MM-DD"),u=e=>V.default(e).toDate(),c=r.computed(()=>{const e=o.value;return Array.isArray(e)?e.map(u):e?u(e):null}),d=r.computed(()=>({minDate:e.minDate?V.default(e.minDate).toDate():void 0,maxDate:e.maxDate?V.default(e.maxDate).toDate():void 0})),p=e=>{Array.isArray(e)?s.value=e.map(l):s.value=e?l(e):e},h=()=>{t.emit("update:modelValue",s.value),t.emit("change",s.value)},f={range:()=>s.value.length?s.value.join(" - "):"",multiple:()=>s.value.length?a.value.t("selectedData",{length:s.value.length})||`选择了 ${s.value.length} 个日期`:""};return{show:i,inputValue:s,defaultDate:c,dateRange:d,open(){e.disabled||(i.value=!0)},confirm(e){p(e),i.value=!1,h()},getStrValue:()=>s.value?n.hasProperty(f,e.type)?f[e.type]():s.value||"":"",clear(e){e.stopPropagation();const t=Array.isArray(s.value)?[]:"";p(t),h()}}},render(){return h("div",{class:"_fc-calendar"},h("van-field",{ref:"el",placeholder:this.placeholder,readonly:!0,disabled:this.$props.disabled,onClick:this.open,"model-value":this.getStrValue(),isLink:!0,border:!1,"v-slots":{"right-icon":()=>this.$props.clearable&&!S.default.empty(this.inputValue)?h("i",{class:"van-badge__wrapper van-icon van-icon-clear van-field__clear",onClick:this.clear}):void 0}}),h("van-calendar",L({},this.$attrs,this.dateRange,{show:this.show,"onUpdate:show":e=>this.show=e,type:this.type,onConfirm:this.confirm,defaultDate:this.defaultDate})))},mounted(){this.$emit("fc.el",this.$refs.el)}});const M=e=>e&&Array.isArray(e)?e.map(e=>{const t={...e};return void 0!==t.label&&void 0===t.text&&(t.text=t.label),t.children&&Array.isArray(t.children)&&(t.children=M(t.children)),t}):[];var U=r.defineComponent({name:"fcCascader",inheritAttrs:!1,props:{placeholder:String,disabled:Boolean,clearable:Boolean,fieldNames:Object,modelValue:[String,Number],options:Array,minDate:[String,Date],maxDate:[String,Date]},emits:["update:modelValue","fc.el","change"],setup(e,t){const n=r.ref(!1),i=r.toRef(e,"modelValue"),o=r.toRef(e,"fieldNames",{}),a=r.computed(()=>{var t;return null!=o&&null!==(t=o.value)&&void 0!==t&&t.text?e.options||[]:M(e.options||[])}),s=(e,t,r)=>{for(let n=0;n<e.length;n++){if(e[n][o.value.value||"value"]===t)return[...r,e[n]];if(e[n][o.value.children||"children"]){const i=s(e[n][o.value.children||"children"],t,[...r,e[n]]);if(i)return i}}},l=e=>{if(null==e||""===e)return"";const t=s(a.value,e,[]);return t?t.map(e=>e[o.value.text||"text"]).join(" / "):e},u=r.ref(l(i.value));r.watch(()=>i.value,e=>{u.value=l(e)}),r.watch(()=>a.value,()=>{null!=i.value&&""!==i.value&&(u.value=l(i.value))},{deep:!0});const c=e=>{t.emit("update:modelValue",e),t.emit("change",e)};return{show:n,inputValue:u,options:a,open(){e.disabled||(n.value=!0)},confirm({selectedOptions:e,value:t}){u.value=e.map(e=>e[o.value.text||"text"]).join(" / "),n.value=!1,c(t)},clear(e){e.stopPropagation(),u.value="",c("")}}},render(){return h("div",{class:"_fc-cascader"},h("van-field",{ref:"el",placeholder:this.placeholder,readonly:!0,disabled:this.$props.disabled,onClick:this.open,"model-value":this.inputValue,border:!1,isLink:!0,"v-slots":{"right-icon":()=>this.$props.clearable&&this.inputValue?h("i",{class:"van-badge__wrapper van-icon van-icon-clear van-field__clear",onClick:this.clear}):void 0}}),h("van-popup",{show:this.show,"onUpdate:show":e=>this.show=e,round:!0,position:"bottom"},h("van-cascader",L({},this.$attrs,{modelValue:this.modelValue,fieldNames:this.fieldNames,options:this.options,onClose:()=>this.show=!1,onFinish:this.confirm}))))},mounted(){this.$emit("fc.el",this.$refs.el)}});var J=r.defineComponent({name:"fcCheckbox",inheritAttrs:!1,props:{modelValue:Array,options:Array},emits:["update:modelValue","change"],setup(e,t){const n=r.toRef(e,"modelValue",[]);return{options:r.toRef(e,"options"),modelValue:n,onInput(e){t.emit("update:modelValue",e),t.emit("change",e)}}},render(){return h("van-checkbox-group",L({direction:"horizontal"},this.$attrs,{modelValue:Array.isArray(this.modelValue)?this.modelValue:[],onUpdateModelValue:this.onInput}),(this.options||[]).map(e=>{const t={...e},{text:r,value:n}=e;return delete t.text,delete t.value,h("van-checkbox",L({name:n,shape:"square"},t),r||e.label||n)}))}});var G=r.defineComponent({name:"fcSelect",inheritAttrs:!1,props:{disabled:Boolean,placeholder:String,columnsFieldNames:Object,modelValue:[String,Number,Boolean],options:Array},emits:["update:modelValue","fc.el","change"],setup(e,t){const n=r.ref(!1),i=r.toRef(e,"modelValue"),o=r.toRef(e,"columnsFieldNames",{}),a=r.computed(()=>{var t;return null!=o&&null!==(t=o.value)&&void 0!==t&&t.text?e.options||[]:M(e.options||[])}),s=r.computed(()=>{if(null==i.value||""===i.value)return"";for(let e=0;e<(a.value||[]).length;e++)if(a.value[e][o.value.value||"value"]===i.value)return a.value[e][o.value.text||"text"];return i.value});return{show:n,inputValue:s,options:a,open(){e.disabled||(n.value=!0)},confirm({selectedValues:e}){var r;r=e[0],t.emit("update:modelValue",r),t.emit("change",r),n.value=!1}}},render(){return h("div",{class:"_fc-select"},h("van-field",{ref:"el",placeholder:this.placeholder,readonly:!0,disabled:this.$props.disabled,onClick:this.open,"model-value":this.inputValue,isLink:!0}),h("van-popup",{show:this.show,"onUpdate:show":e=>this.show=e,round:!0,position:"bottom"},h("van-picker",L({},this.$attrs,{modelValue:[this.modelValue],columnsFieldNames:this.columnsFieldNames,columns:this.options,onCancel:()=>this.show=!1,onConfirm:this.confirm}))))},mounted(){this.$emit("fc.el",this.$refs.el)}});function z(e,t){return"object"==typeof e?e:{url:e,is_string:!0,name:W(e),uid:t}}function H(e){return{...e,file:e,value:e}}function W(e){return(""+e).split("/").pop()}var K=r.defineComponent({name:"fcUploader",inheritAttrs:!1,props:{formCreateInject:Object,modelValue:[Array,String,Object],afterRead:Function,action:String,headers:Object,method:String,data:Object,uploadName:String,onSuccess:Function,onError:Function,maxCount:Number},emits:["update:modelValue","delete"],setup(e,t){const n=r.toRef(e,"afterRead"),i=r.toRef(e,"modelValue",[]),o=r.ref(F.default(i.value).map(z).map(H));r.watch(()=>i.value,e=>{o.value=F.default(e).map(z).map(H)});const a=()=>{let r=o.value.map(e=>e.is_string?e.url:e.value||e.url).filter(e=>void 0!==e);t.emit("update:modelValue",1===e.maxCount?r[0]||"":r)};return{fileList:o,modelValue:i,onDelete(e){a(),t.emit("delete",e)},uploadFile(t){if(t.status="uploading",n.value)return n.value(t);{const r=e.data||{};r[e.uploadName||"file"]=t.file,e.formCreateInject.api.fetch({action:e.action,dataType:"formData",source:"upload",headers:e.headers||{},method:e.method||"post",data:r}).then(r=>{t.status="success",e.onSuccess&&e.onSuccess(r,t),a()}).catch(r=>{t.status="failed",t.message=this.formCreateInject.t("uploadFail")||"上传失败",e.onError&&e.onError(r,t)})}}}},render(){return h("van-uploader",L({},this.$attrs,{"model-value":this.fileList,maxCount:this.maxCount,"onUpdate:model-value":e=>this.fileList=e,afterRead:this.uploadFile,onDelete:this.onDelete,"v-slots":this.$slots}))}});var X=r.defineComponent({name:"fcRadio",inheritAttrs:!1,props:{modelValue:[String,Number,Boolean],options:Array},emits:["update:modelValue","change"],setup(e,t){const n=r.toRef(e,"modelValue",[]);return{options:r.toRef(e,"options"),modelValue:n,onInput(e){t.emit("update:modelValue",e),t.emit("change",e)}}},render(){return h("van-radio-group",L({direction:"horizontal"},this.$attrs,{modelValue:this.modelValue,onUpdateModelValue:this.onInput}),(this.options||[]).map(e=>{const t={...e},{text:r,value:n}=e;return delete t.text,delete t.value,h("van-radio",L({name:n},t),r||e.label||n)}))}});var Y=r.defineComponent({name:"fcDatePicker",inheritAttrs:!1,props:{disabled:Boolean,clearable:Boolean,placeholder:String,modelValue:[String,Number],minDate:[String,Date],maxDate:[String,Date]},emits:["update:modelValue","fc.el","change"],setup(e,t){const n=r.ref(!1),i=r.toRef(e,"modelValue"),o=r.computed(()=>null==i.value||""===i.value?[]:i.value.split("-")),a=r.computed(()=>({minDate:e.minDate?V.default(e.minDate).toDate():void 0,maxDate:e.maxDate?V.default(e.maxDate).toDate():void 0})),s=e=>{t.emit("update:modelValue",e),t.emit("change",e)};return{show:n,formValue:o,dateRange:a,open(){e.disabled||(n.value=!0)},confirm({selectedValues:e}){s(e.join("-")),n.value=!1},clear(e){e.stopPropagation(),s("")}}},render(){return h("div",{class:"_fc-date-picker"},h("van-field",{ref:"el",placeholder:this.placeholder,readonly:!0,disabled:this.$props.disabled,onClick:this.open,"model-value":this.modelValue,border:!1,isLink:!0,"v-slots":{"right-icon":()=>this.$props.clearable&&this.modelValue?h("i",{class:"van-badge__wrapper van-icon van-icon-clear van-field__clear",onClick:this.clear}):void 0}}),h("van-popup",{show:this.show,"onUpdate:show":e=>this.show=e,round:!0,position:"bottom"},h("van-date-picker",L({columnsType:["year","month","day"]},this.$attrs,this.dateRange,{modelValue:this.formValue,onConfirm:this.confirm,onCancel:()=>this.show=!1}))))},mounted(){this.$emit("fc.el",this.$refs.el)}});var Z=r.defineComponent({name:"fcTimePicker",inheritAttrs:!1,props:{disabled:Boolean,clearable:Boolean,placeholder:String,modelValue:[String,Number]},emits:["update:modelValue","fc.el","change"],setup(e,t){const n=r.ref(!1),i=r.toRef(e,"modelValue"),o=r.computed(()=>null==i.value||""===i.value?[]:i.value.split(":")),a=e=>{t.emit("update:modelValue",e),t.emit("change",e)};return{show:n,formValue:o,open(){e.disabled||(n.value=!0)},confirm({selectedValues:e}){a(e.join(":")),n.value=!1},clear(e){e.stopPropagation(),a("")}}},render(){return h("div",{class:"_fc-time-picker"},h("van-field",{ref:"el",placeholder:this.placeholder,readonly:!0,disabled:this.$props.disabled,onClick:this.open,"model-value":this.modelValue,border:!1,isLink:!0,"v-slots":{"right-icon":()=>this.$props.clearable&&this.modelValue?h("i",{class:"van-badge__wrapper van-icon van-icon-clear van-field__clear",onClick:this.clear}):void 0}}),h("van-popup",{show:this.show,"onUpdate:show":e=>this.show=e,round:!0,position:"bottom"},h("van-time-picker",L({columnsType:["hour","minute"]},this.$attrs,{modelValue:this.formValue,onConfirm:this.confirm,onCancel:()=>this.show=!1}))))},mounted(){this.$emit("fc.el",this.$refs.el)}});var Q=r.defineComponent({name:"fcGroup",props:{field:String,rule:Array,expand:Number,options:Object,button:{type:Boolean,default:!0},max:{type:Number,default:0},min:{type:Number,default:0},modelValue:{type:Array,default:()=>[]},defaultValue:Object,sortBtn:{type:Boolean,default:!1},disabled:{type:Boolean,default:void 0},title:{type:[String,Function],default:null},type:{type:String,default:"default"},onBeforeRemove:{type:Function,default:()=>{}},onBeforeAdd:{type:Function,default:()=>{}},formCreateInject:Object,parse:Function},data(){return{len:0,cacheRule:{},cacheValue:{},sort:[],form:r.markRaw(this.formCreateInject.form.$form())}},emits:["update:modelValue","change","itemMounted","remove","add"],watch:{rule:{handler(e,t){Object.keys(this.cacheRule).forEach(r=>{const n=this.cacheRule[r];if(n.$f){const r=n.$f.formData();if(e===t)n.$f.deferSyncValue(()=>{D.default(n.rule,e),n.$f.setValue(r)},!0);else{const t=n.$f.formData();n.$f.once("reloading",()=>{n.$f.setValue(t)}),n.rule=a.deepCopy(e)}}})},deep:!0},expand(e){let t=e-this.modelValue.length;t>0&&this.expandRule(t)},modelValue:{handler(e){e=e||[];let t=this.sort,r=t.length,n=r-e.length;if(n<0){for(let t=n;t<0;t++)this.addRule(e.length+t,!0);for(let n=0;n<r;n++)this.setValue(t[n],e[n])}else{if(n>0)for(let e=0;e<n;e++)this.removeRule(t[r-e-1]);e.forEach((r,n)=>{this.setValue(t[n],e[n])})}},deep:!0}},methods:{_value(e){return e&&n.hasProperty(e,this.field)?e[this.field]:e},cache(e,t){this.cacheValue[e]=JSON.stringify(t)},input(e){this.$emit("update:modelValue",e),this.$emit("change",e)},formData(e,t){const r=this.cacheRule,n=this.sort;if(n.filter(e=>r[e]&&r[e].$f).length!==n.length)return;const i=n.map(r=>{const n=e===r?t:{...this.cacheRule[r].$f.form},i=this.field?n[this.field]||null:n;return this.cache(r,i),i});this.input(i)},setValue(e,t){const r=this.field;r&&(t={[r]:this._value(t)}),this.cacheValue[e]!==JSON.stringify(r?t[r]:t)&&(this.cacheRule[e].$f&&this.cacheRule[e].$f.coverValue(t),this.cache(e,t))},addRule(e,t){const n=this.formCreateInject.form.copyRules(this.rule||[]),i=this.options?{...this.options}:{submitBtn:!1,resetBtn:!1};if(this.defaultValue){i.formData||(i.formData={});const e=a.deepCopy(this.defaultValue);O.default(i.formData,this.field?{[this.field]:e}:e)}this.parse&&this.parse({rule:n,options:i,index:this.sort.length}),this.cacheRule[++this.len]={rule:n,options:i},this.sort=Object.keys(this.cacheRule),t&&r.nextTick(()=>this.$emit("add",n,Object.keys(this.cacheRule).length-1))},add$f(e,t,n){this.cacheRule[t].$f=n,r.nextTick(()=>{this.$emit("itemMounted",n,Object.keys(this.cacheRule).indexOf(t))})},removeRule(e,t){const n=Object.keys(this.cacheRule).indexOf(e);delete this.cacheRule[e],delete this.cacheValue[e],this.sort=Object.keys(this.cacheRule),t&&r.nextTick(()=>this.$emit("remove",n))},add(e){if(this.disabled||!1===this.onBeforeAdd(this.modelValue))return;const t=[...this.modelValue];t.push(this.defaultValue?a.deepCopy(this.defaultValue):this.field?null:{}),this.input(t)},del(e,t){if(this.disabled)return;const r=()=>{this.removeRule(t,!0);const r=[...this.modelValue];r.splice(e,1),this.input(r)};l.toPromise(this.onBeforeRemove(this.modelValue,e)).then(e=>{!1!==e&&r()})},addIcon(e){return h("div",{class:"_fc-m-group-btn _fc-m-group-plus-minus",onClick:this.add})},delIcon(e,t){return h("div",{class:"_fc-m-group-btn _fc-m-group-plus-minus _fc-m-group-minus",onClick:()=>this.del(e,t)})},sortUpIcon(e){return h("div",{class:"_fc-m-group-btn _fc-m-group-arrow _fc-m-group-up",onClick:()=>this.changeSort(e,-1)})},sortDownIcon(e){return h("div",{class:"_fc-m-group-btn _fc-m-group-arrow _fc-m-group-down",onClick:()=>this.changeSort(e,1)})},changeSort(e,t){const r=this.sort[e];this.sort[e]=this.sort[e+t],this.sort[e+t]=r,this.formCreateInject.subForm(this.sort.map(e=>this.cacheRule[e].$f)),this.formData(0)},sortIcon(e,t){const r=e>0,n=e<t-1;return r||n?r&&n?h("div",{class:"_fc-m-group-btn _fc-m-group-sort"},h("div",{class:"_fc-m-group-sort-up",onClick:()=>this.changeSort(e,-1)}),h("div",{class:"_fc-m-group-sort-down",onClick:()=>this.changeSort(e,1)})):r?this.sortUpIcon(e):n?this.sortDownIcon(e):void 0:null},makeIcon(e,t,r){if(this.$slots.button)return this.$slots.button({total:e,index:t,vm:this,key:r,del:()=>this.del(t,r),add:this.add});const n=[];if((!this.max||e<this.max)&&e===t+1&&n.push(this.addIcon(r)),e>this.min&&n.push(this.delIcon(t,r)),this.sortBtn){const r=this.sortIcon(t,e);r&&n.push(r)}return n},expandRule(e){for(let t=0;t<e;t++)this.modelValue.push(this.field?null:{});this.input([...this.modelValue])},getTitle(e,t){return"function"==typeof this.title?this.title(e,this.modelValue[e],t):"string"==typeof this.title&&this.title.replace("{index}",e+1)}},created(){const e=(this.expand||0)-this.modelValue.length;for(let e=0;e<this.modelValue.length;e++)this.addRule(e);e>0&&this.expandRule(e)},render(){const e=this.sort,t=this.button,r=this.form,n=this.disabled,i="card"===this.type,o=0===e.length?this.$slots.default?this.$slots.default({vm:this,add:this.add}):h("div",{key:"a_def",class:"_fc-m-group-plus-minus _fc-m-group-add fc-clock",onClick:this.add}):e.map((o,a)=>{const{rule:s,options:l}=this.cacheRule[o],u=t&&!n?this.makeIcon(e.length,a,o):[],c=this.getTitle(a,o);return i?h("div",{class:"_fc-m-group-container",key:o},h("div",{class:"_fc-m-group-header"},!1===c?h("div",{class:"_fc-m-group-idx"},a+1):null,!1!==c?h("div",{class:"_fc-m-group-title"},c):null,h("div",{class:"_fc-m-group-handle fc-clock"},u.length?u:null)),h("div",{class:"_fc-m-group-content"},h(r,{key:o,disabled:n,"onUpdate:modelValue":e=>this.formData(o,e),"onUpdate:api":e=>this.add$f(a,o,e),inFor:!0,modelValue:this.field?{[this.field]:this._value(this.modelValue[a])}:this.modelValue[a],rule:s,option:l,extendOption:!0}))):h("div",{class:"_fc-m-group-container",key:o},h(r,{key:o,disabled:n,"onUpdate:modelValue":e=>this.formData(o,e),"onUpdate:api":e=>this.add$f(a,o,e),inFor:!0,modelValue:this.field?{[this.field]:this._value(this.modelValue[a])}:this.modelValue[a],rule:s,option:l,extendOption:!0}),h("div",{class:"_fc-m-group-idx"},a+1),u.length?h("div",{class:"_fc-m-group-handle fc-clock"},u):null)});return h("div",{key:"con",class:"_fc-m-group "+(n?"_fc-m-group-disabled":"")+(i?" _fc-m-group-card":"")},o)}}),ee={name:"IconWarning"};const te={class:"icon",viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg"};ee.render=function(e,t,n,i,o,a){return r.openBlock(),r.createElementBlock("svg",te,[...t[0]||(t[0]=[r.createElementVNode("path",{fill:"currentColor",d:"M512 64a448 448 0 110 896 448 448 0 010-896zm0 832a384 384 0 000-768 384 384 0 000 768zm48-176a48 48 0 11-96 0 48 48 0 0196 0zm-48-464a32 32 0 0132 32v288a32 32 0 01-64 0V288a32 32 0 0132-32z"},null,-1)])])};var re=[C.default,ee,q,U,J,X,G,Y,Z,Q,K];var ne=[{name:"hidden",maker:{hidden:(e,t)=>u.creatorFactory("hidden")("",e,t)},render:()=>[]},{name:"FcRow",render:(e,t)=>t.vNode.col({props:{span:24}},{default:()=>[t.vNode.row(t.prop,e)]})},{name:"cascader",mergeProp(e){const t=e.prop.props;n.hasProperty(t,"options")||(t.options=e.prop.options||[])}},{name:"checkbox",mergeProp(e){const t=e.prop.props;n.hasProperty(t,"options")||(t.options=e.prop.options||[])}},{name:"radio",mergeProp(e){const t=e.prop.props;n.hasProperty(t,"options")||(t.options=e.prop.options||[])}},{name:"select",mergeProp(e){const t=e.prop.props;n.hasProperty(t,"options")||(t.options=e.prop.options||[])}},{name:"textarea",mergeProp(e){let{props:t}=e.prop;t.type="textarea"}}];var ie={button:"van-button",icon:"van-icon",slider:"van-slider",stepper:"van-stepper",inputNumber:"van-stepper",rate:"van-rate",uploader:"fc-uploader",upload:"fc-uploader",cell:"van-cell",timePicker:"fc-time-picker",datePicker:"fc-date-picker",switch:"van-switch",select:"fc-select",cascader:"fc-cascader",calendar:"fc-calendar",checkbox:"fc-checkbox",radio:"fc-radio",input:"van-field",textarea:"van-field",field:"van-field",formItem:"van-field",form:"van-form",col:"van-col",row:"van-row",group:"fc-group",array:"fc-group",object:"fc-sub-form",subForm:"fc-sub-form"};function oe(e,t){n.hasProperty(e,t)&&S.default.String(e[t])&&(e[t]={[t]:e[t],show:!0})}function ae(e){return!1===e}function se(e){const t={...e};return delete t.children,t}var le={validate(){const e=this.form();return e?e.validate():new Promise(e=>e())},validateField(e){return new Promise((t,r)=>{const n=this.form();n?n.validate(e).then(t).catch(r):t()})},clearValidateState(e){const t=this.form();if(t)return t.resetValidation(e.id)},tidyOptions:e=>(["submitBtn","resetBtn","row","info","wrap","col","title"].forEach(t=>{!function(e,t){n.hasProperty(e,t)&&!S.default.Object(e[t])&&(e[t]={show:!!e[t]})}(e,t)}),e),tidyRule:({prop:e})=>(oe(e,"title"),oe(e,"info"),e.validate&&e.validate.forEach(e=>{S.default.String(e.pattern)&&(e.pattern=new RegExp(e.pattern))}),e),mergeProp(e){const t={info:{icon:!0},title:{},col:{span:24},wrap:{}};["info","wrap","col","title"].forEach(r=>{e.prop[r]=j.default([this.options[r]||{},e.prop[r]||{}],t[r])})},getDefaultOptions:()=>({form:{required:"auto",labelAlign:"right",inputAlign:"right"},row:{show:!0,gutter:0},submitBtn:{type:"primary",loading:!1,disabled:!1,block:!0,innerText:"",size:"small",show:!0,col:void 0,click:void 0},resetBtn:{type:"default",loading:!1,disabled:!1,block:!0,innerText:"",size:"small",show:!1,col:void 0,click:void 0}}),adapterValidate:(e,t)=>("change"===e.trigger?e.trigger="onChange":"blur"===e.trigger&&(e.trigger="onBlur"),e.validator=r=>new Promise(n=>t(r,t=>{e.message=t,t?n(!1):n()})),e),update(){const e=this.options.form;this.rule={props:{...e},on:{submit:e=>{e.preventDefault()}},style:e.style,type:"form"}},beforeRender(){const{key:e,ref:t}=this,r=this.options.form;O.default(this.rule,{key:e,ref:t,class:[r.className,r.class,"form-create-m",this.$handle.preview?"is-preview":""]})},render(e){return e.slotLen()&&!this.$handle.preview&&e.setSlot(void 0,()=>this.makeFormBtn()),this.$r(this.rule,ae(this.options.row.show)?e.getSlots():[this.makeRow(e)])},makeWrap(e,t){const r=e.prop,n=`${this.key}${e.key}`,i=r.col,o=this.isTitle(r)&&!1!==r.wrap.title,{col:a}=this.rule.props,s=r.wrap.class;delete r.wrap.class,delete r.wrap.title;const l=ae(r.wrap.show)?t:this.$r(j.default([r.wrap,{props:{modelValue:e.rule.value,label:o?r.title.title:void 0,...se(r.wrap||{}),name:e.id,rules:e.injectValidate()},class:this.$render.mergeClass(s||r.className,"fc-form-item"),key:n+"fi",ref:e.wrapRef,type:"formItem"}]),{input:()=>t,...o?{label:()=>this.makeInfo(r,n,e)}:{}});return ae(a)||ae(i.show)?l:this.makeCol(r,n,[l])},isTitle(e){if(!1===this.options.form.title)return!1;const t=e.title;return!(!t.title&&!t.native||ae(t.show))},makeInfo(e,t,r){var n,i;const o={...e.title},a={...e.info},s=this.getSlot("title"),l=[s?s({title:null===(n=r.refRule)||void 0===n||null===(n=n.__$title)||void 0===n?void 0:n.value,rule:r.rule,options:this.options}):null===(i=r.refRule)||void 0===i||null===(i=i.__$title)||void 0===i?void 0:i.value],u=!ae(a.show)&&(a.info||a.native)&&!ae(a.icon);u&&l["left"!==a.align?"unshift":"push"](this.$r({type:!0===a.icon?"icon-warning":a.icon,style:"width:1em;"}));const c=j.default([o,{props:se(o),key:t+"tit",class:"fc-form-title",type:o.type||"span",on:{click:(...e)=>{var t;u&&a.info&&d.showNotify({type:"warning",message:null===(t=r.refRule)||void 0===t||null===(t=t.__$info)||void 0===t?void 0:t.value,duration:1e3});this.$handle.targetHook(r,"titleClick",{args:e})}}}]);return delete c.props.show,delete c.props.title,delete c.props.native,this.$r(c,l)},makeCol(e,t,r){const n=e.col;return this.$r({class:this.$render.mergeClass(n.class,"fc-form-col"),type:"col",props:n||{span:24},key:t+"col"},r)},makeRow(e){const t=this.options.row||{};return this.$r({type:"row",props:t,class:this.$render.mergeClass(t.class,"fc-form-row"),key:this.key+"row"},e)},makeFormBtn(){let e=[];if(ae(this.options.submitBtn.show)||e.push(this.makeSubmitBtn()),ae(this.options.resetBtn.show)||e.push(this.makeResetBtn()),e.length)return this.$r({type:"cell",class:"fc-form-cell fc-form-footer",key:this.key+"fb"},e)},makeResetBtn(){const e={...this.options.resetBtn},t=e.innerText||this.$handle.api.t("reset")||"重置";return delete e.innerText,delete e.click,delete e.col,delete e.show,this.$r({type:"button",props:e,class:"fc-reset-btn",style:{width:e.width},on:{click:()=>{const e=this.$handle.api;this.options.resetBtn.click?this.options.resetBtn.click(e):e.resetFields()}},key:this.key+"b2"},[t])},makeSubmitBtn(){const e={...this.options.submitBtn},t=e.innerText||this.$handle.api.t("submit")||"提交";return delete e.innerText,delete e.click,delete e.col,delete e.show,this.$r({type:"button",props:e,class:"fc-submit-btn",style:{width:e.width},on:{click:()=>{const e=this.$handle.api;this.options.submitBtn.click?this.options.submitBtn.click(e):e.submit().catch(()=>{})}},key:this.key+"b1"},[t])}};function ue(e,t){return S.default.Boolean(e)?e={show:e}:S.default.Undef(e)||S.default.Object(e)||(e={show:t}),e}function ce(e,t){return{formEl:()=>t.$manager.form(),wrapEl(e){const r=t.getFieldCtx(e);if(r)return t.vm.refs[r.wrapRef]},validate:r=>new Promise((n,i)=>{const o=e.children,a=[t.$manager.validate()];o.filter(e=>!e.isScope).forEach(e=>{a.push(e.validate())}),Promise.all(a).then(()=>{n(!0),r&&r(!0)}).catch(n=>{i(n),r&&r(n),t.vm.emit("validate-fail",n,{api:e}),t.emitEvent("validate-fail",n,{api:e})})}),validateField:(r,n)=>new Promise((i,o)=>{const a=t.getFieldCtx(r);if(!a)return;const s=t.subForm[a.id],l=[t.$manager.validateField(a.id)];F.default(s).filter(e=>!e.isScope).forEach(e=>{l.push(e.validate())}),Promise.all(l).then(()=>{i(null),n&&n(null)}).catch(i=>{o(i),n&&n(i),t.vm.emit("validate-field-fail",i,{field:r,api:e})})}),clearValidateState(r,n=!0){e.helper.tidyFields(r).forEach(e=>{n&&this.clearSubValidateState(e),t.getCtxs(e).forEach(e=>{t.$manager.clearValidateState(e)})})},clearSubValidateState(r){e.helper.tidyFields(r).forEach(e=>{t.getCtxs(e).forEach(e=>{const r=t.subForm[e.id];r&&(Array.isArray(r)?r.forEach(e=>{e.clearValidateState()}):r&&r.clearValidateState())})})},btn:{loading:(t=!0)=>{e.submitBtnProps({loading:!!t})},disabled:(t=!0)=>{e.submitBtnProps({disabled:!!t})},show:(t=!0)=>{e.submitBtnProps({show:!!t})}},resetBtn:{loading:(t=!0)=>{e.resetBtnProps({loading:!!t})},disabled:(t=!0)=>{e.resetBtnProps({disabled:!!t})},show:(t=!0)=>{e.resetBtnProps({show:!!t})}},submitBtnProps:(r={})=>{let n=ue(t.options.submitBtn,!0);O.default(n,r),t.options.submitBtn=n,e.refreshOptions()},resetBtnProps:(r={})=>{let n=ue(t.options.resetBtn,!1);O.default(n,r),t.options.resetBtn=n,e.refreshOptions()},submit:(r,n)=>new Promise((i,o)=>{(!1===t.options.validateOnSubmit?Promise.resolve():e.validate()).then(()=>{let n=e.formData();t.beforeSubmit(n).then(()=>{S.default.Function(r)&&p.invoke(()=>r(n,e)),S.default.Function(t.options.onSubmit)&&p.invoke(()=>t.options.onSubmit(n,e)),t.vm.emit("submit",n,e),i(n)}).catch(e=>{})}).catch((...t)=>{S.default.Function(n)&&p.invoke(()=>n(e,...t)),o(...t)})})}}!function(e,t){void 0===t&&(t={});var r=t.insertAt;if(e&&"undefined"!=typeof document){var n=document.head||document.getElementsByTagName("head")[0],i=document.createElement("style");i.type="text/css","top"===r&&n.firstChild?n.insertBefore(i,n.firstChild):n.appendChild(i),i.styleSheet?i.styleSheet.cssText=e:i.appendChild(document.createTextNode(e))}}('.form-create-m {\n width: 100%;\n}\n\n.form-create-m.is-preview .fc-clock, .form-create-m .fc-none {\n display: none !important;\n}\n\n.form-create-m .fc-form-item:after {\n content: \' \' !important;\n display: block !important;\n}\n\n.form-create-m .fc-form-item .van-cell:not(.fc-form-item):after {\n display: none !important;\n}\n\n.form-create-m .fc-form-item .van-cell:not(.fc-form-item) {\n padding: 0;\n}\n\n.form-create-m .fc-form-item .fc-form-item {\n padding-left: 0;\n padding-right: 0;\n --van-padding-md: 0;\n}\n\n.form-create-m .fc-reset-btn {\n margin-top: 12px;\n}\n\n.form-create-m .fc-form-title {\n display: inline-flex;\n align-items: center;\n}\n\n.form-create-m.is-preview .van-field__label--required:before {\n display: none;\n}\n\n._fc-m-group{\n display: flex;\n align-items: flex-end;\n min-height: 38px;\n justify-content: center;\n flex-direction: column;\n width: 100%;\n}\n\n._fc-m-group-disabled ._fc-m-group-btn, ._fc-m-group-disabled ._fc-m-group-add{\n cursor: not-allowed;\n}\n\n._fc-m-group-handle {\n display: flex;\n flex-direction: row;\n position: absolute;\n bottom: -15px;\n right: 30px;\n border-radius: 15px;\n border: 1px dashed #d9d9d9;\n padding: 3px 8px;\n background-color: #ffffff;\n transform: scale(1.1);\n}\n\n._fc-m-group-btn{\n cursor: pointer;\n}\n\n._fc-m-group-idx {\n position: absolute;\n bottom: -15px;\n left: 10px;\n width: 30px;\n height: 30px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: #eee;\n border-radius: 15px;\n font-weight: 700;\n}\n\n._fc-m-group-handle ._fc-m-group-btn + ._fc-m-group-btn {\n margin-left: 7px;\n}\n\n._fc-m-group-container{\n position: relative;\n display: flex;\n flex-direction: column;\n border: 1px dashed #d9d9d9;\n border-radius: 5px;\n margin-bottom: 25px;\n padding: 5px 5px 25px;\n width: 100%;\n box-sizing: border-box;\n}\n\n._fc-m-group-arrow {\n position: relative;\n width: 20px;\n height: 20px;\n}\n\n._fc-m-group-arrow::before {\n content: "";\n position: absolute;\n top: 8px;\n left: 5px;\n width: 9px;\n height: 9px;\n border-left: 2px solid #999;\n border-top: 2px solid #999;\n}\n._fc-m-group-arrow::before {\n transform: rotate(45deg);\n}\n\n._fc-m-group-arrow._fc-m-group-down {\n transform: rotate(180deg);\n}\n\n._fc-m-group-plus-minus {\n width: 20px;\n height: 20px;\n position: relative;\n cursor: pointer;\n}\n\n._fc-m-group-plus-minus::before,\n._fc-m-group-plus-minus::after {\n content: "";\n position: absolute;\n top: 50%;\n left: 50%;\n width: 60%;\n height: 2px;\n background-color: #409eff;\n transform: translate(-50%, -50%);\n}\n\n._fc-m-group-plus-minus::before {\n transform: translate(-50%, -50%) rotate(90deg);\n}\n\n._fc-m-group-plus-minus._fc-m-group-minus::before {\n display: none;\n}\n._fc-m-group-plus-minus._fc-m-group-minus::after {\n background-color: #f56c6c;\n}\n\n._fc-m-group-add{\n cursor: pointer;\n width: 25px;\n height: 25px;\n border: 1px solid rgb(64 158 255 / 50%);\n border-radius: 15px;\n transform: scale(1.1);\n}\n\n._fc-m-group-add._fc-m-group-plus-minus::before, ._fc-m-group-add._fc-m-group-plus-minus::after {\n width: 50%;\n}\n\n/* ===== Card 类型样式 ===== */\n/* 主容器 */\n._fc-m-group._fc-m-group-card {\n display: flex;\n flex-direction: column;\n width: 100%;\n gap: 16px;\n}\n\n/* 禁用状态 */\n._fc-m-group._fc-m-group-card._fc-m-group-disabled ._fc-m-group-btn,\n._fc-m-group._fc-m-group-card._fc-m-group-disabled ._fc-m-group-add {\n cursor: not-allowed;\n opacity: 0.5;\n}\n\n/* 卡片容器 */\n._fc-m-group._fc-m-group-card ._fc-m-group-container {\n position: relative;\n background: #ffffff;\n border: 1px solid #f0f0f0;\n border-radius: 6px;\n overflow: hidden;\n display: flex;\n flex-direction: column;\n padding: 0;\n margin: 0;\n}\n\n/* 卡片头部 */\n._fc-m-group._fc-m-group-card ._fc-m-group-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 16px 20px 12px;\n border-bottom: 1px solid #f0f0f0;\n background: #fafafa;\n}\n\n/* 序号标签 */\n._fc-m-group._fc-m-group-card ._fc-m-group-idx {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 24px;\n height: 24px;\n background: #f0f0f0;\n color: #666666;\n border-radius: 6px;\n font-size: 12px;\n font-weight: 500;\n margin-right: 12px;\n flex-shrink: 0;\n position: static;\n border: 1px solid #e0e0e0;\n}\n\n/* 标题区域 */\n._fc-m-group._fc-m-group-card ._fc-m-group-title {\n flex: 1;\n font-size: 14px;\n font-weight: 500;\n color: rgba(0, 0, 0, 0.85);\n line-height: 1.5715;\n text-align: left;\n}\n\n/* 操作按钮组 - 头部右侧 */\n._fc-m-group._fc-m-group-card ._fc-m-group-handle {\n display: flex;\n align-items: center;\n gap: 4px;\n margin-left: 12px;\n flex-shrink: 0;\n position: static;\n bottom: auto;\n right: auto;\n border-radius: 0;\n border: none;\n padding: 0;\n background-color: transparent;\n flex-direction: row;\n transform: none;\n}\n\n/* 按钮基础样式 */\n._fc-m-group._fc-m-group-card ._fc-m-group-btn {\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 24px;\n height: 24px;\n border-radius: 4px;\n border: 1px solid #d9d9d9;\n background: #ffffff;\n color: rgba(0, 0, 0, 0.45);\n position: relative;\n}\n\n._fc-m-group._fc-m-group-card ._fc-m-group-btn:hover {\n color: #1890ff;\n border-color: #1890ff;\n background: #f0f8ff;\n}\n\n._fc-m-group._fc-m-group-card ._fc-m-group-btn:active {\n color: #096dd9;\n border-color: #096dd9;\n}\n\n/* 箭头按钮 */\n._fc-m-group._fc-m-group-card ._fc-m-group-arrow {\n position: relative;\n}\n\n._fc-m-group._fc-m-group-card ._fc-m-group-arrow::before {\n content: "";\n position: absolute;\n top: 50%;\n left: 50%;\n width: 5px;\n height: 5px;\n border-left: 1px solid currentColor;\n border-top: 1px solid currentColor;\n transform: translate(-50%, -50%) rotate(45deg);\n}\n\n._fc-m-group._fc-m-group-card ._fc-m-group-arrow._fc-m-group-down {\n transform: rotate(180deg);\n}\n\n/* 合并的上下箭头按钮 */\n._fc-m-group._fc-m-group-card ._fc-m-group-sort {\n position: relative;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n height: 24px;\n}\n\n._fc-m-group._fc-m-group-card ._fc-m-group-sort::before,\n._fc-m-group._fc-m-group-card ._fc-m-group-sort::after {\n content: "";\n position: absolute;\n left: 50%;\n width: 4px;\n height: 4px;\n border-left: 1px solid currentColor;\n border-top: 1px solid currentColor;\n transform: translateX(-50%);\n}\n\n._fc-m-group._fc-m-group-card ._fc-m-group-sort::before {\n top: 6px;\n transform: translateX(-50%) rotate(45deg);\n}\n\n._fc-m-group._fc-m-group-card ._fc-m-group-sort::after {\n bottom: 6px;\n transform: translateX(-50%) rotate(225deg);\n}\n\n/* 合并按钮的上下点击区域 */\n._fc-m-group._fc-m-group-card ._fc-m-group-sort-up,\n._fc-m-group._fc-m-group-card ._fc-m-group-sort-down {\n position: absolute;\n left: 0;\n right: 0;\n height: 12px;\n cursor: pointer;\n z-index: 1;\n}\n\n._fc-m-group._fc-m-group-card ._fc-m-group-sort-up {\n top: 0;\n}\n\n._fc-m-group._fc-m-group-card ._fc-m-group-sort-down {\n bottom: 0;\n}\n\n._fc-m-group._fc-m-group-card ._fc-m-group-sort-up:hover,\n._fc-m-group._fc-m-group-card ._fc-m-group-sort-down:hover {\n background: rgba(24, 144, 255, 0.1);\n}\n\n/* 加减按钮 */\n._fc-m-group._fc-m-group-card ._fc-m-group-plus-minus {\n position: relative;\n background: #409eff;\n border-color: #409eff;\n color: white;\n width: 24px;\n height: 24px;\n border-radius: 4px;\n}\n\n._fc-m-group._fc-m-group-card ._fc-m-group-plus-minus:hover {\n background: #66b1ff;\n border-color: #66b1ff;\n color: white;\n}\n\n._fc-m-group._fc-m-group-card ._fc-m-group-plus-minus::before,\n._fc-m-group._fc-m-group-card ._fc-m-group-plus-minus::after {\n content: "";\n position: absolute;\n top: 50%;\n left: 50%;\n width: 8px;\n height: 1px;\n background-color: currentColor;\n transform: translate(-50%, -50%);\n}\n\n._fc-m-group._fc-m-group-card ._fc-m-group-plus-minus::before {\n transform: translate(-50%, -50%) rotate(90deg);\n}\n\n._fc-m-group._fc-m-group-card ._fc-m-group-plus-minus._fc-m-group-minus {\n background: #f56c6c;\n border-color: #f56c6c;\n}\n\n._fc-m-group._fc-m-group-card ._fc-m-group-plus-minus._fc-m-group-minus:hover {\n background: #f78989;\n border-color: #f78989;\n}\n\n._fc-m-group._fc-m-group-card ._fc-m-group-plus-minus._fc-m-group-minus::before {\n display: none;\n}\n\n/* 表单内容区域 */\n._fc-m-group._fc-m-group-card ._fc-m-group-content {\n padding: 20px;\n}\n\n/* 添加按钮 - 与加号按钮风格一致 */\n._fc-m-group._fc-m-group-card ._fc-m-group-add {\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 24px;\n height: 24px;\n border-radius: 4px;\n border: 1px solid #d9d9d9;\n background: #ffffff;\n color: rgba(0, 0, 0, 0.45);\n position: relative;\n transform: none;\n}\n\n._fc-m-group._fc-m-group-card ._fc-m-group-add:hover {\n color: #409eff;\n border-color: #409eff;\n background: #f0f8ff;\n}\n\n._fc-m-group._fc-m-group-card ._fc-m-group-add._fc-m-group-plus-minus {\n width: 24px;\n height: 24px;\n background: #409eff;\n border-color: #409eff;\n color: white;\n}\n\n._fc-m-group._fc-m-group-card ._fc-m-group-add._fc-m-group-plus-minus:hover {\n background: #66b1ff;\n border-color: #66b1ff;\n color: white;\n}\n\n._fc-m-group._fc-m-group-card ._fc-m-group-add._fc-m-group-plus-minus::before,\n._fc-m-group._fc-m-group-card ._fc-m-group-add._fc-m-group-plus-minus::after {\n content: "";\n position: absolute;\n top: 50%;\n left: 50%;\n width: 8px;\n height: 1px;\n background-color: currentColor;\n transform: translate(-50%, -50%);\n}\n\n._fc-m-group._fc-m-group-card ._fc-m-group-add._fc-m-group-plus-minus::before {\n transform: translate(-50%, -50%) rotate(90deg);\n}\n\n/* 空状态样式 */\n._fc-m-group._fc-m-group-card ._fc-m-group-empty {\n text-align: center;\n padding: 40px 20px;\n color: rgba(0, 0, 0, 0.45);\n font-size: 14px;\n}\n\n/* 响应式设计 */\n@media (max-width: 768px) {\n ._fc-m-group._fc-m-group-card ._fc-m-group-container {\n margin: 0 -8px;\n border-radius: 0;\n border-left: none;\n border-right: none;\n }\n\n ._fc-m-group._fc-m-group-card ._fc-m-group-header {\n padding: 12px 16px 8px;\n }\n\n ._fc-m-group._fc-m-group-card ._fc-m-group-content {\n padding: 16px;\n }\n\n ._fc-m-group._fc-m-group-card ._fc-m-group-handle {\n gap: 2px;\n }\n\n ._fc-m-group._fc-m-group-card ._fc-m-group-btn {\n width: 22px;\n height: 22px;\n }\n}\n\n\n');const de={name:"required",load(e,t,r){const n=function(e){return S.default.Boolean(e)?{required:e}:S.default.String(e)?{message:e}:S.default.Undef(e)?{required:!1}:S.default.Function(e)?{validator:e}:S.default.Object(e)?e:{}}(e.getValue());let i=void 0;if(!1===n.required)e.clearProp(),r.clearValidateState([t.field]);else{const o={required:!0,validator:e=>(a(),!S.default.empty(e)),trigger:["onChange","onSubmit"],...n},a=()=>{var e;const a=null===(e=t.__fc__.refRule.__$title)||void 0===e?void 0:e.value;if(i!==a)if(i=a,n.message){const e=n.message.match(/^\{\{\s*\$t\.(.+)\s*\}\}$/);e&&(o.message=r.t(e[1],{title:a}))}else o.message=r.t("required",{title:a})||a+("en"===r.getLocale()?" is required":"不能为空")};a(),e.getProp().validate=[o]}r.sync(t)},watch(...e){de.load(...e)}};function pe(e){e.componentAlias(ie),re.forEach(t=>{e.component(t.name,t)}),e.register(de),ne.forEach(t=>{e.parser(t)}),d.Field.props&&(d.Field.props.modelValue={type:[String,Number,Array,Object,Boolean,Function],default:""})}const he=R.default({ui:"process.env.UI",version:'"1.0.4"',manager:le,extendApi:ce,install:pe,isMobile:!0,attrs:{normal:["col","wrap"],key:["title","info"]}});"undefined"!=typeof window&&(window.formCreateMobile=he),he.maker;const fe=["type","slot","ignore","emitPrefix","value","name","native","hidden","display","inject","options","emit","link","prefix","suffix","update","sync","optionsTo","key","slotUpdate","computed","preview","component","cache","modelEmit"],me=["validate","children","control"],ge=["effect","deep","renderSlots"];function ve(){return[...fe,...c.normalMerge,...c.toArrayMerge,...c.functionalMerge,...me,...ge]}function ye(e,t){return{value:e,enumerable:!1,configurable:!1,writable:!!t}}function be(e,t){return _e([e],t||!1)[0]}function _e(e,t){return D.default([],[...e],t||!1)}function xe(e,t){return j.default(Array.isArray(t)?t:[t],e,{array:me,normal:ge}),e}function $e(e){const t=S.default.Function(e.getRule)?e.getRule():e;return t.type||(t.type="input"),t}function we(e,t){Object.defineProperties(e,Object.keys(t).reduce((e,r)=>(e[r]={get:()=>t[r]()},e),{}))}function ke(e){return e.__fc__||(e.__origin__?e.__origin__.__fc__:null)}function Ce(e,t){try{t=e()}catch(e){g.logError(e)}return t}function Se(){const e={},t=e=>e||"default";return{setSlot(r,n){r=t(r),!n||Array.isArray(n)&&n.length||(e[r]||(e[r]=[]),e[r].push(n))},getSlot(r,n){r=t(r);const i=[];return(e[r]||[]).forEach(e=>{if(Array.isArray(e))i.push(...e);else if(S.default.Function(e)){const t=e(...n||[]);Array.isArray(t)?i.push(...t):i.push(t)}else S.default.Undef(e)||i.push(e)}),i},getSlots(){const t={};return Object.keys(e).forEach(e=>{t[e]=(...t)=>this.getSlot(e,t)}),t},slotLen:r=>(r=t(r),e[r]?e[r].length:0),mergeBag(e){if(!e)return this;const t=S.default.Function(e.getSlots)?e.getSlots():e;return Array.isArray(e)||r.isVNode(e)?this.setSlot(void 0,()=>e):Object.keys(t).forEach(e=>{this.setSlot(e,t[e])}),this}}}function Ve(e){const t={...e.props||{}};return Object.keys(e.on||{}).forEach(r=>{r.indexOf("-")>0&&(r=P.default(r));const n="on"+m.upper(r);Array.isArray(t[n])?t[n]=[...t[n],e.on[r]]:t[n]?t[n]=[t[n],e.on[r]]:t[n]=e.on[r]}),t.key=e.key,t.ref=e.ref,t.class=e.class,t.id=e.id,t.style=e.style,t.slot&&delete t.slot,t}function Fe(e,t){return Object.setPrototypeOf(e,t),e}const De=(e,t)=>"string"==typeof e?String(t):"number"==typeof e?Number(t):t,Oe={"==":(e,t)=>JSON.stringify(e)===JSON.stringify(De(e,t)),"!=":(e,t)=>!Oe["=="](e,t),">":(e,t)=>e>t,">=":(e,t)=>e>=t,"<":(e,t)=>e<t,"<=":(e,t)=>e<=t,on:(e,t)=>e&&e.indexOf&&e.indexOf(De(e[0],t))>-1,notOn:(e,t)=>!Oe.on(e,t),in:(e,t)=>t&&t.indexOf&&t.indexOf(e)>-1,notIn:(e,t)=>!Oe.in(e,t),between:(e,t)=>e>t[0]&&e<t[1],notBetween:(e,t)=>e<t[0]||e>t[1],empty:e=>S.default.empty(e),notEmpty:e=>!S.default.empty(e),pattern:(e,t)=>new RegExp(t,"g").test(e)};function Re(e,t){return(Array.isArray(t)?t:(t||"").split(".")).forEach(t=>{null!=e&&(e=e[t])}),e}function je(e){let t=e.split("."),r=[],n="";return t.forEach((e,t)=>{0===t?n=e:n+="."+e,r.push(n)}),r.join(" && ")}const Ee=(e,t)=>{if(e&&e!==t)return e.props.formCreateInject?e.props.formCreateInject:e.parent?Ee(e.parent,t):void 0};function Ae(e,t,n){return r.defineComponent({name:"FormCreate"+(e.isMobile?"Mobile":""),components:t,directives:n,props:{rule:{type:Array,required:!0,default:()=>[]},option:{type:Object,default:()=>({})},extendOption:Boolean,driver:[String,Object],modelValue:Object,disabled:{type:Boolean,default:void 0},preview:{type:Boolean,default:void 0},index:[String,Number],api:Object,locale:[String,Object],t:Function,name:String,subForm:{type:Boolean,default:!0},inFor:Boolean},emits:["update:api","update:modelValue","mounted","submit","reset","change","emit-event","control","remove-rule","remove-field","sync","reload","repeat-field","update","validate-field-fail","validate-fail","created"],render(){return this.fc.render()},setup(t){const n=r.getCurrentInstance();r.provide("parentFC",n);const i=r.inject("parentFC",null);let o=i;if(i)for(;o.setupState.parent;)o=o.setupState.parent;else o=n;const{rule:a,modelValue:s,subForm:l,inFor:u}=r.toRefs(t),c=r.reactive({ctxInject:{},destroyed:!1,isShow:!0,unique:1,renderRule:[...a.value||[]],updateValue:JSON.stringify(s.value||{})}),d=new e(n),p=d.api(),h=u.value;let f=null;r.onBeforeMount(()=>{r.watchEffect(()=>{let e="";const r=t.option&&t.option.globalClass||{};Object.keys(r).forEach(t=>{let n="";r[t].style&&Object.keys(r[t].style).forEach(e=>{n+=A.default(e)+":"+r[t].style[e]+";"}),r[t].content&&(n+=r[t].content+";"),n&&(e+=`.${t}{${n}}`)}),t.option&&t.option.style&&(e+=t.option.style),f||(f=document.createElement("style"),f.type="text/css",document.head.appendChild(f)),f.innerHTML=e||""})});const m=E.default(()=>{d.bus.$emit("$loadData.$topForm")},100),g=E.default((function(){d.bus.$emit("$loadData.$scopeForm")}),100),v=E.default(()=>{d.bus.$emit("$loadData.$form")},100),b=e=>{d.bus.$emit("change-$form."+e)};return r.onMounted(()=>{i&&(p.top.bus.$on("$loadData.$form",m),p.top.bus.$on("change",b)),p!==p.scope&&p.scope.bus.$on("$loadData.$scopeForm",g),d.mounted()}),r.onBeforeUnmount(()=>{i&&(p.top.bus.$off("$loadData.$form",m),p.top.bus.$off("change",b)),p!==p.scope&&p.scope.bus.$off("$loadData.$scopeForm",g),(()=>{const e=Ee(n,i);if(e)if(h){const t=F.default(e.getSubForm()),r=t.indexOf(p);r>-1&&t.splice(r,1)}else e.subForm()})(),c.destroyed=!0,d.unmount(),f&&(f.parentNode||f.parentElement)&&document.head.removeChild(f)}),r.onUpdated(()=>{d.updated()}),(()=>{if(i){const e=Ee(n,i);if(e){let t;h?(t=F.default(e.getSubForm()),t.push(p)):t=p,e.subForm(t)}}})(),r.watch(()=>t.option,()=>{d.initOptions(),p.refresh()},{deep:!0,flush:"sync"}),r.watch(()=>[...a.value],e=>{d.$handle.isBreakWatch()||e.length===c.renderRule.length&&e.every(e=>c.renderRule.indexOf(e)>-1)||(d.$handle.updateAppendData(),d.$handle.reloadRule(a.value),n.setupState.renderRule())}),r.watch(()=>[t.disabled,t.preview],()=>{p.refresh()}),r.watch(s,e=>{y.toJson(e||{})!==c.updateValue&&(p.config.forceCoverValue?p.coverValue(e||{}):p.setValue(e||{}))},{deep:!0,flush:"post"}),r.watch(()=>t.index,()=>{p.coverValue({}),d.$handle.updateAppendData(),r.nextTick(()=>{r.nextTick(()=>{p.clearValidateState()})})},{flush:"sync"}),{fc:r.markRaw(d),parent:i?r.markRaw(i):i,top:r.markRaw(o),fapi:r.markRaw(p),...r.toRefs(c),getGroupInject:()=>Ee(n,i),refresh(){++c.unique},renderRule(){c.renderRule=[...a.value||[]]},updateValue(e){if(c.destroyed)return;const t=y.toJson(e);c.updateValue!==t&&(c.updateValue=t,n.emit("update:modelValue",e),r.nextTick(()=>{v(),i?l.value||g():(m(),g())}))}}},created(){const e=r.getCurrentInstance();e.emit("update:api",e.setupState.fapi),e.setupState.fc.init()}})}function Pe(e,t){return(r,n,i,o={})=>{const a=new Ne(e,r,n,i,o);return t&&(S.default.Function(t)?t(a):a.props(t)),a}}function Ne(e,t,r,n,i){this._data=O.default({props:{},on:{},options:[],children:[],hidden:!1,display:!0,value:void 0},{type:e,title:t,field:r,value:n,props:i||{}}),this.event=this.on}function Te(e){e.forEach(e=>{Ne.prototype[e]=function(t){return xe(this._data,{[e]:arguments.length<2?t:{[t]:arguments[1]}}),this}})}O.default(Ne.prototype,{getRule(){return this._data},setProp(e,t){return b.$set(this._data,e,t),this},modelField(e){return this._data.modelField=e,this},_clone(){const e=new this.constructor;return e._data=be(this._data),e}}),Te(ve());const Ie=Pe("");function Be(e,t,r){let n=Ie("",t);return n._data.type=e,n._data.title=r,n}function Le(){return{create:Be,factory:Pe}}function qe(e){const t=e.responseText||e.response;if(!t)return t;try{return JSON.parse(t)}catch(e){return t}}function Me(e){if("undefined"==typeof XMLHttpRequest)return;const t=new XMLHttpRequest;let r,n=e.action||"";if(t.upload&&e.onProgress&&t.upload.addEventListener("progress",t=>{t.percent=t.total>0?t.loaded/t.total*100:0,e.onProgress(t)}),e.query){const t=S.default.String(e.query)?e.query:Object.keys(e.query).reduce((t,r)=>(t[r]=null===e.query[r]||void 0===e.query[r]?"":e.query[r],t),{}),r=new URLSearchParams(t).toString();r&&(n.includes("?")?n+="&"+r:n+="?"+r)}t.onerror=function(t){e.onError(t)},t.onload=function(){if(t.status<200||t.status>=300)return e.onError(function(e,t,r){const n=`fail to ${e} ${r.status}'`,i=new Error(n);return i.status=r.status,i.url=e,i}(n,0,t),qe(t));e.onSuccess(qe(t))},t.open(e.method||"get",n,!0),(e.data||e.file)&&(e.file||"json"!==(e.dataType||"").toLowerCase()?(r=new FormData,Object.keys(e.data||{}).map(t=>{r.append(t,e.data[t])})):(r=JSON.stringify(e.data||{}),t.setRequestHeader("content-type","application/json"))),e.file&&r.append(e.filename,e.file,e.file.name),e.withCredentials&&"withCredentials"in t&&(t.withCredentials=!0);const i=e.headers||{};Object.keys(i).forEach(e=>{null!=i[e]&&t.setRequestHeader(e,i[e])}),t.send(r)}function Ue(e,t,r){return new Promise((n,i)=>{(t||Me)({...e,onSuccess(t){let i=e=>e;const o=y.parseFn(e.parse);S.default.Function(o)?i=o:o&&S.default.String(o)&&(i=e=>Re(e,o)),l.toPromise(i(t,e.targetRule,r)).then(e=>{n(e)})},onError(e){i(e)}})})}function Je(e){return a.deepCopy(e)}let Ge=1;function ze(e){O.default(this,{$handle:e,fc:e.fc,vm:e.vm,$manager:e.$manager,vNode:new e.fc.CreateNode(e),force:!1,tmpInput:null,id:Ge++}),we(this,{options:()=>e.options,sort:()=>e.sort}),this.initCache(),this.initRender()}!function(e){O.default(e.prototype,{initCache(){this.clearCacheAll()},clearCache(e){e.rule.cache||(this.cache[e.id]?((!0===this.cache[e.id].use||this.cache[e.id].parent)&&this.$handle.refresh(),this.cache[e.id].parent&&this.clearCache(this.cache[e.id].parent),this.cache[e.id]=null):e.parent&&this.clearCache(e.parent))},clearCacheAll(){this.cache={}},setCache(e,t,r){this.cache[e.id]={vnode:t,use:!1,parent:r,slot:e.rule.slot}},getCache(e){const t=this.cache[e.id];if(t)return t.use=!0,t.vnode}})}(ze),function(e){O.default(e.prototype,{initRender(){this.cacheConfig={}},getTypeSlot(e){const t=r=>{if(r){let n=void 0;return e.rule.field&&(n=r.slots["field-"+l.toLine(e.rule.field)]||r.slots["field-"+e.rule.field]),n||(n=r.slots["type-"+l.toLine(e.type)]||r.slots["type-"+e.type]),n||t(r.setupState.parent)}};return t(this.vm)},render(){if(!this.vm.setupState.isShow)return;this.$manager.beforeRender();const e=Se();return this.sort.forEach(t=>{this.renderSlot(e,this.$handle.ctxs[t])}),this.$manager.render(e)},renderSlot(e,t,r){if(this.isFragment(t)){t.initProp(),this.mergeGlobal(t),t.initNone();const r=this.renderChildren(t.loadChildrenPending(),t),n=r.default;n&&e.setSlot(t.rule.slot,()=>n()),delete r.default,e.mergeBag(r)}else e.setSlot(t.rule.slot,this.renderCtx(t,r))},mergeGlobal(e){this.$handle.options.global&&(this.cacheConfig[e.trueType]||(this.cacheConfig[e.trueType]=r.computed(()=>{const t=this.$handle.options.global;return xe({},[t["*"]||t.default||{},t[e.originType]||t[e.type]||t[e.type]||{}])})),e.prop=xe({},[this.cacheConfig[e.trueType].value,e.prop]))},setOptions(e){const t=e.loadPending({key:"options",origin:e.prop.options,def:[]});e.prop.options=t,e.prop.optionsTo&&t&&l.deepSet(e.prop,e.prop.optionsTo,t)},deepSet(e){const t=e.prop.deep;t&&Object.keys(t).sort((e,t)=>e.length<t.length?-1:1).forEach(r=>{l.deepSet(e.prop,r,t[r])})},parseSide:(e,t)=>S.default.Object(e)?xe({props:{formCreateInject:t.prop.props.formCreateInject}},e):e,renderSides(e,t,r){const n=t[r?"rule":"prop"];return[this.renderRule(this.parseSide(n.prefix,t)),e,this.renderRule(this.parseSide(n.suffix,t))]},renderId(e,t){const r=this.$handle["field"===t?"fieldCtx":"nameCtx"][e];return r?r.map(e=>this.renderCtx(e,e.parent)):void 0},renderCtx(e,t){try{if("hidden"===e.type)return;const r=e.rule;if(this.force||!this.cache[e.id]||this.cache[e.id].slot!==r.slot){let n;e.initProp(),this.mergeGlobal(e),e.initNone(),this.$manager.tidyRule(e),this.deepSet(e),this.setOptions(e),this.ctxProp(e);let i=e.prop;i.preview=!!(null!=i.preview?i.preview:this.$handle.preview),i.props.formCreateInject=this.injectProp(e);let o=!1!==i.cache;const a=i.preview;if(i.hidden)return void this.setCache(e,void 0,t);n=(...n)=>{const l={rule:r,prop:i,preview:a,api:this.$handle.api,model:i.model||{},slotValue:n};n.length&&r.slotUpdate&&Ce(()=>r.slotUpdate(l));let u={};const c=e.loadChildrenPending();e.parser.renderChildren?u=e.parser.renderChildren(c,e):!1!==e.parser.loadChildren&&(u=this.renderChildren(c,e)),Object.keys(i.renderSlots||{}).forEach(t=>{u[t]=(...r)=>{if(S.default.Function(i.renderSlots[t]))return Ce(()=>i.renderSlots[t](...r));const n=this.parseSide(i.renderSlots[t],e);return this.renderRule(n)}});const d=this.getTypeSlot(e);let p;return d?(l.children=u,p=d(l)):p=a?e.parser.preview(s.copy(u),e):e.parser.render(s.copy(u),e),p=this.renderSides(p,e),!e.input&&S.default.Undef(i.native)||!0===i.native||(this.fc.targetFormDriver("updateWrap",e),p=this.$manager.makeWrap(e,p)),e.none&&(p=Array.isArray(p)?p.map(e=>e&&e.__v_isVNode?this.none(e):e):this.none(p)),o&&this.setCache(e,()=>this.stable(p),t),p},this.setCache(e,n,t)}return(...t)=>{const r=this.getCache(e);if(r)return r(...t);if(this.cache[e.id])return;const n=this.renderCtx(e,e.parent);return n?n():void 0}}catch(e){return void console.error(e)}},none(e){if(e)return e.props.class=this.mergeClass(e.props.class,"fc-none"),e},mergeClass:(e,t)=>Array.isArray(e)?(e.push(t),e):e?[e,t]:t,stable(e){return(Array.isArray(e)?e:[e]).forEach(e=>{e&&e.__v_isVNode&&e.children&&"object"==typeof e.children&&(e.children.$stable=!0,this.stable(e.children))}),e},getModelField(e){return e.prop.modelField||e.parser.modelField||this.fc.modelFields[this.vNode.aliasMap[e.type]]||this.fc.modelFields[e.type]||this.fc.modelFields[e.originType]||"modelValue"},isFragment:e=>"fragment"===e.type||"template"===e.type,injectProp(e){const t=this.vm.setupState;t.ctxInject[e.id]||(t.ctxInject[e.id]={api:this.$handle.api,form:this.fc.create,subForm:t=>{this.$handle.addSubForm(e,t)},getSubForm:()=>this.$handle.subForm[e.id],slots:()=>this.vm.setupState.top.slots,getWrap:()=>this.vm.refs[e.wrapRef],options:[],children:[],preview:!1,id:e.id,field:e.field,rule:e.rule,input:e.input,t:(...e)=>this.$handle.api.t(...e),updateValue:t=>{this.$handle.onUpdateValue(e,t)}});const r=t.ctxInject[e.id];return O.default(r,{preview:e.prop.preview,options:e.prop.options,children:e.loadChildrenPending()}),r},ctxProp(e){const{ref:t,key:r,rule:n}=e;this.$manager.mergeProp(e),e.parser.mergeProp(e);const i=[{ref:t,key:n.key||r+"fc",slot:void 0,on:{vnodeMounted:t=>{t.el.__rule__=e.rule,this.onMounted(e,t.el)},"fc.updateValue":t=>{this.$handle.onUpdateValue(e,t)},"fc.el":t=>{e.exportEl=t,t&&((t.$el||t).__rule__=e.rule)}}}];if(e.input){const t=this.tmpInput;!0===this.vm.props.disabled&&(e.prop.props.disabled=!0);const r=this.getModelField(e),n={callback:r=>{t&&t(e.field,r,e.rule),this.onInput(e,r)},modelField:r,value:this.$handle.getFormData(e)};i.push({on:{["update:"+r]:n.callback,...e.prop.modelEmit?{[e.prop.modelEmit]:()=>this.onEmitInput(e)}:{}},props:{[r]:n.value}}),e.prop.model=n}return j.default(i,e.prop),e.prop},onMounted(e,t){e.el=this.vm.refs[e.ref]||t,e.parser.mounted(e),this.$handle.effect(e,"mounted"),this.$handle.targetHook(e,"mounted")},onInput(e,t){e.prop.modelEmit?this.$handle.onBaseInput(e,t):this.$handle.onInput(e,t)},onEmitInput(e){this.$handle.setValue(e,e.parser.toValue(e.modelValue,e),e.modelValue)},renderChildren(e,t){if(!S.default.trueArray(e))return{};const n=Se();return e.map(i=>{if(i)return S.default.String(i)||S.default.Number(i)?n.setSlot(null,""+i):i.__fc__?this.renderSlot(n,i.__fc__,t):void(i.type&&r.nextTick(()=>{this.$handle.loadChildren(e,t),this.$handle.refresh()}))}),n.getSlots()},defaultRender(e,t){const r=e.prop;return r.component?"string"==typeof r.component?this.vNode.make(r.component,r,t):this.vNode.makeComponent(r.component,r,t):this.vNode[e.type]?this.vNode[e.type](r,t):this.vNode[e.originType]?this.vNode[e.originType](r,t):this.vNode.make(v.lower(r.type),r,t)},createChildrenVnodes(e,t,r){this.force=!1!==r,this.tmpInput=t;const n=this.renderChildren(e.rule.children,e);return this.force=!1,this.tmpInput=null,n},createRuleVnode(e,t,r){this.force=!1!==r,this.tmpInput=t;const n=Se();return this.renderSlot(n,e,e.parent),this.force=!1,this.tmpInput=null,n.getSlots()},renderRule(e,t,r){if(!e)return;if(S.default.String(e)||S.default.Number(e))return""+e;let n;if(r)n=e.type;else if(n=e.is,e.type){n=P.default(e.type);const t=this.vNode.aliasMap[n];t&&(n=P.default(t))}if(!n)return;const i=Se();S.default.trueArray(e.children)&&e.children.forEach(e=>{e&&i.setSlot(null==e?void 0:e.slot,()=>this.renderRule(e))});const o={...e};return delete o.type,delete o.is,this.vNode.make(n,o,i.mergeBag(t).getSlots())}})}(ze);const He=["hook:updated","hook:mounted"];function We(e,t,n){const i=N.default(),o=!!t.field;var s;O.default(this,{id:i,ref:i,wrapRef:i+"fi",rule:t,origin:t.__origin__||t,name:t.name,pending:{},none:!1,watch:[],linkOn:[],root:[],ctrlRule:[],children:[],parent:null,group:t.subRule?this:null,cacheConfig:null,prop:{...t},computed:{},payload:{},refRule:{},input:o,el:void 0,exportEl:void 0,defaultValue:o?a.deepCopy(n):void 0,field:t.field||void 0}),this.updateKey(),s=this,Object.defineProperties(s.origin,{__fc__:ye(r.markRaw(s),!0)}),s.rule!==s.origin&&Object.defineProperties(s.rule,{__fc__:ye(r.markRaw(s),!0)}),this.update(e,!0)}function Ke(e,t){for(let r=0;r<e.ctrlRule.length;r++){const n=e.ctrlRule[r];if(n.children===t)return n}}function Xe(e){return!!e.rule.__ctrl}function Ye(e,t){return"function"==typeof t?""+t:t}O.default(We.prototype,{getParentGroup(){let e=this.parent;for(;e;){if(e.group)return e;e=e.parent}},loadChildrenPending(){const e=this.rule.children||[];return Array.isArray(e)?e:this.loadPending({key:"children",origin:e,def:[],onLoad:e=>{this.$handle&&this.$handle.loadChildren(e,this)},onUpdate:(e,t)=>{this.$handle&&(e===t?this.$handle.loadChildren(e,this):this.$handle.updateChildren(this,e,t))},onReload:e=>{this.$handle?this.$handle.updateChildren(this,[],e):delete this.pending.children}})},loadPending(e){const{key:t,origin:r,def:n,onLoad:i,onReload:o,onUpdate:a}=e;if(this.pending[t]&&this.pending[t].origin===r)return this.getPending(t,n);delete this.pending[t];let s=r;if(S.default.Function(r)){let e=Ce(()=>r({rule:this.rule,api:this.$api,update:e=>{const i=e||n,o=this.getPending(t,n);this.setPending(t,r,i),a&&a(i,o)},reload:()=>{const e=this.getPending(t,n);delete this.pending[t],o&&o(e),this.$api&&this.$api.sync(this.rule)}}));e&&S.default.Function(e.then)?(e.then(e=>{const o=e||n;this.setPending(t,r,o),i&&i(o),this.$api&&this.$api.sync(this.rule)}).catch(e=>{console.error(e)}),s=n,this.setPending(t,r,s)):(s=e||n,this.setPending(t,r,s),i&&i(s))}return s},getPending(e,t){return this.pending[e]&&this.pending[e].value||t},setPending(e,t,n){this.pending[e]={origin:t,value:r.reactive(n)}},effectData(e){return this.payload[e]||(this.payload[e]={}),this.payload[e]},clearEffectData(e){void 0===e?this.payload={}:delete this.payload[e]},updateKey(e){this.key=N.default(),e&&this.parent&&this.parent.updateKey(e)},updateType(){this.originType=this.rule.type,this.type=P.default(this.rule.type),this.trueType=this.$handle.getType(this.originType)},setParser(e){this.parser=e,e.init(this)},initProp(){var e;const t={...this.rule};delete t.children,delete t.validate,this.prop=xe({},[t,...Object.keys(this.payload).map(e=>this.payload[e]),this.computed]),this.prop.validate=[...(null===(e=this.refRule)||void 0===e||null===(e=e.__$validate)||void 0===e?void 0:e.value)||[],...this.prop.validate||[]]},initNone(){this.none=!(S.default.Undef(this.prop.display)||this.prop.display)},hasHidden(){return!!this.rule.hidden||!!this.parent&&this.parent.hasHidden()},injectValidate(){return this.prop.validate},check(e){return this.vm===e.vm},unwatch(){this.watch.forEach(e=>e()),this.watch=[],Object.keys(this.refRule).forEach(e=>{0!==e.indexOf("__$")&&delete this.refRule[e]})},unlink(){this.linkOn.forEach(e=>e()),this.linkOn=[]},link(){this.unlink(),this.$handle.appendLink(this)},watchTo(){this.$handle.watchCtx(this)},delete(){this.unwatch(),this.unlink(),this.rmCtrl(),this.parent&&this.parent.children.splice(this.parent.children.indexOf(this)>>>0,1),O.default(this,{deleted:!0,computed:{},parent:null,children:[],cacheConfig:null,none:!1})},rmCtrl(){this.ctrlRule.forEach(e=>e.__fc__&&e.__fc__.rm()),this.ctrlRule=[]},rm(){const e=()=>{let e=this.root.indexOf(this.origin);e>-1&&(this.root.splice(e,1),this.$handle&&this.$handle.refresh())};this.deleted?e():this.$handle.noWatch(()=>{this.$handle.deferSyncValue(()=>{this.rmCtrl(),e(),this.$handle.rmCtx(this),O.default(this,{root:[]})},this.input)})},update(e,t){O.default(this,{deleted:!1,$handle:e,$render:e.$render,$api:e.api,vm:e.vm,vNode:e.$render.vNode,updated:!1,cacheValue:this.rule.value}),!t&&this.unwatch(),this.watchTo(),this.link(),this.updateType()}});const Ze={init(e){},toFormValue:(e,t)=>e,toValue:(e,t)=>e,mounted(e){},render:(e,t)=>t.$handle.fc.renderDriver&&t.$handle.fc.renderDriver.defaultRender?t.$handle.fc.renderDriver.defaultRender(t,e):t.$render.defaultRender(t,e),preview(e,t){return t.$handle.fc.renderDriver&&t.$handle.fc.renderDriver.defaultPreview?t.$handle.fc.renderDriver.defaultPreview(t,e):this.render(e,t)},mergeProp(e){}},Qe=["field","value","vm","template","name","config","control","inject","sync","payload","optionsTo","update","slotUpdate","computed","component","cache"],et=Symbol("oldValue");function tt(e){we(this,{options:()=>e.options.value||{},bus:()=>e.bus,preview:()=>null!=e.vm.props.preview?e.vm.props.preview:e.vm.setupState.parent&&null!=e.vm.setupState.parent.props.preview?e.vm.setupState.parent.props.preview:e.options.value.preview||!1}),O.default(this,{fc:e,vm:e.vm,watching:!1,loading:!1,reloading:!1,noWatchFn:null,deferSyncFn:null,isMounted:!1,formData:r.reactive({}),subRuleData:r.reactive({}),subForm:{},form:r.reactive({}),appendData:{},ignoreFields:[],providers:{},cycleLoad:null,loadedId:1,nextTick:null,changeStatus:!1,pageEnd:!0,nextReload:()=>{this.lifecycle("reload")}}),this.initData(e.rules),this.$manager=new e.manager(this),this.$render=new ze(this),this.api=e.extendApiFn.reduce((e,t)=>{const r=Ce(()=>t(e,this));return r&&r!==e&&O.default(e,r),e},function(e){function t(t){return S.default.Undef(t)?t=e.fields():Array.isArray(t)||(t=[t]),t}function i(t,r,n){S.default.Undef(t)?t=Object.keys({...e.fieldCtx,...e.nameCtx}):Array.isArray(t)||(t=[t]),t.forEach(t=>{const i=e.fieldCtx[t]||e.nameCtx[t];i&&i.forEach(t=>{b.$set(t.rule,r,n),e.$render.clearCache(t)})})}function o(){const t=e.subForm;return Object.keys(t).reduce((e,r)=>{const n=t[r];return n?(Array.isArray(n)?e.push(...n):e.push(n),e):e},[])}const s={get isScope(){return!1===e.vm.props.subForm},get isPreview(){return e.preview},get config(){return e.options},set config(t){e.fc.options.value=t},get options(){return e.options},set options(t){e.fc.options.value=t},get form(){return e.form},get rule(){return e.rules},get parent(){return e.vm.setupState.parent&&e.vm.setupState.parent.setupState.fapi},get top(){return s.parent?s.parent.top:s},get scope(){let t=e.vm;for(;t&&t.setupState.fapi;){if(!t.props.subForm)return t.setupState.fapi;t=t.setupState.parent}return s.top},get children(){return o()},get siblings(){const t=e.vm.setupState.getGroupInject();if(t){const e=t.getSubForm();if(Array.isArray(e))return[...e]}},get index(){const e=s.siblings;if(e){const t=e.indexOf(s);return t>-1?t:void 0}},get formulas(){return{...e.fc.formulas}},formData(r){if(null==r||"boolean"==typeof r){const t={};return Object.keys(e.form).forEach(n=>{!0!==r&&-1!==e.ignoreFields.indexOf(n)||(t[n]=Je(e.form[n]))}),t}return t(r).reduce((e,t)=>(e[t]=s.getValue(t),e),{})},getValue(t){const r=e.getFieldCtx(t);return r?Je(r.rule.value):!1!==e.options.appendValue&&n.hasProperty(e.appendData,t)?Je(e.appendData[t]):void 0},coverValue(t){const r={...t||{}};e.deferSyncValue(()=>{e.appendData={},s.fields().forEach(i=>{const o=e.fieldCtx[i];if(o){const e=n.hasProperty(t,i);o.forEach(r=>{r.rule.value=e?t[i]:void 0}),delete r[i]}}),O.default(e.appendData,r)},!0)},setValue(t){let r=t;arguments.length>=2&&(r={[t]:arguments[1]}),e.deferSyncValue(()=>{Object.keys(r).forEach(t=>{const n=e.fieldCtx[t];if(!n)return e.appendData[t]=r[t];n.forEach(e=>{e.rule.value=r[t]})})},!0)},removeField(t){const r=e.getCtx(t);return e.deferSyncValue(()=>{e.getCtxs(t).forEach(e=>{e.rm()})},!0),r?r.origin:void 0},removeRule(e){const t=e&&ke(e);if(t)return t.rm(),t.origin},fields:()=>e.fields(),append:(t,r,n)=>{let i,o=e.sort.length-1;const a=e.getCtx(r);if(a)if(n){if(i=a.getPending("children",a.rule.children),!Array.isArray(i))return;o=a.rule.children.length-1}else o=a.root.indexOf(a.origin),i=a.root;else i=e.rules;i.splice(o+1,0,t)},prepend:(t,r,n)=>{let i,o=0;const a=e.getCtx(r);if(a)if(n){if(i=a.getPending("children",a.rule.children),!Array.isArray(i))return}else o=a.root.indexOf(a.origin),i=a.root;else i=e.rules;i.splice(o,0,t)},hidden(t,r){i(r,"hidden",!!t),e.refresh()},hiddenStatus(t){const r=e.getCtx(t);if(r)return!!r.rule.hidden},display(t,r){i(r,"display",!!t),e.refresh()},displayStatus(t){const r=e.getCtx(t);if(r)return!!r.rule.display},disabled(r,n){t(n).forEach(t=>{e.getCtxs(t).forEach(e=>{b.$set(e.rule.props,"disabled",!!r)})}),e.refresh()},all:t=>Object.keys(e.ctxs).map(r=>{const n=e.ctxs[r];return t?n.origin:n.rule}),model:t=>e.fields().reduce((r,n)=>{const i=e.fieldCtx[n][0];return r[n]=t?i.origin:i.rule,r},{}),component:t=>Object.keys(e.nameCtx).reduce((r,n)=>{const i=e.nameCtx[n].map(e=>t?e.origin:e.rule);return r[n]=1===i.length?i[0]:i,r},{}),bind:()=>s.form,reload:t=>{e.reloadRule(t)},updateOptions(t){e.fc.updateOptions(t),s.refresh()},onSubmit(e){s.updateOptions({onSubmit:e})},sync:t=>{if(Array.isArray(t))return void t.forEach(e=>s.sync(e));let r=S.default.Object(t)?ke(t):e.getCtxs(t);r&&(r=Array.isArray(r)?r:[r],r.forEach(t=>{if(!t.deleted){const r=e.subForm[t.id];r&&(Array.isArray(r)?r.forEach(e=>{e.refresh()}):r&&r.refresh()),e.$render.clearCache(t)}}),e.refresh())},refresh:()=>{o().forEach(e=>{e.refresh()}),e.$render.clearCacheAll(),e.refresh()},refreshOptions(){e.$manager.updateOptions(e.options),s.refresh()},hideForm:t=>{e.vm.setupState.isShow=!t},changeStatus:()=>e.changeStatus,clearChangeStatus:()=>{e.changeStatus=!1},updateRule(t,r){e.getCtxs(t).forEach(e=>{O.default(e.rule,r)})},updateRules(e){Object.keys(e).forEach(t=>{s.updateRule(t,e[t])})},mergeRule:(t,r)=>{e.getCtxs(t).forEach(e=>{xe(e.rule,r)})},mergeRules(e){Object.keys(e).forEach(t=>{s.mergeRule(t,e[t])})},getRule:(t,r)=>{const n=e.getCtx(t);if(n)return r?n.origin:n.rule},findType(t,r){let n=void 0;return Object.keys(e.ctxs).forEach(i=>{const o=e.ctxs[i];o.rule.type===t&&(n=r?o.origin:o.rule)}),n},findTypes(t,r){let n=[];return Object.keys(e.ctxs).forEach(i=>{const o=e.ctxs[i];o.rule.type===t&&n.push(r?o.origin:o.rule)}),n},getRenderRule:t=>{const r=e.getCtx(t);if(r)return r.prop},getRefRule:t=>{const r=e.getCtxs(t);if(r){const e=r.map(e=>e.rule);return 1===e.length?e[0]:e}},setEffect(t,r,i){const o=e.getCtx(t);o&&r&&("$"===r[0]&&(r=r.substr(1)),n.hasProperty(o.rule,"$"+r)&&b.$set(o.rule,"$"+r,i),n.hasProperty(o.rule,"effect")||(o.rule.effect={}),b.$set(o.rule.effect,r,i))},clearEffectData(t,r){const n=e.getCtx(t);n&&(r&&"$"===r[0]&&(r=r.substr(1)),n.clearEffectData(r),s.sync(t))},updateValidate(e,t,r){r?s.mergeRule(e,{validate:t}):i(e,"validate",t)},updateValidates(e,t){Object.keys(e).forEach(r=>{s.updateValidate(r,e[r],t)})},refreshValidate(){s.refresh()},resetFields(n){t(n).forEach(t=>{e.getCtxs(t).forEach(t=>{e.$render.clearCache(t),t.rule.value=Je(t.defaultValue)})}),r.nextTick(()=>{r.nextTick(()=>{r.nextTick(()=>{s.clearValidateState(n)})})}),null==n&&(S.default.Function(e.options.onReset)&&Ce(()=>e.options.onReset(s)),e.vm.emit("reset",s))},method(e,t){const r=s.el(e);if(!r||!r[t])throw new Error(g.format("err",t+" 方法不存在"));return(...e)=>r[t](...e)},exec:(e,t,...r)=>Ce(()=>s.method(e,t)(...r)),toJson:e=>y.toJson(s.rule,e),trigger(e,t,...r){const n=s.el(e);n&&n.$emit(t,...r)},el(t){const r=e.getCtx(t);if(r)return r.el||e.vm.refs[r.ref]},closeModal:t=>{e.bus.$emit("fc:closeModal:"+t)},getSubForm(t){const r=e.getCtx(t);return r?e.subForm[r.id]:void 0},getChildrenRuleList(t){const r="object"==typeof t,n=r?ke(t):e.getCtx(t),i=n?n.rule:r?t:s.getRule(t);if(!i)return[];const o=[];var a;return(a=n?n.loadChildrenPending():i.children)&&a.forEach(e=>{"object"==typeof e&&(e.field&&o.push(e),o.push(...s.getChildrenRuleList(e)))}),o},getParentRule:t=>("object"==typeof t?ke(t):e.getCtx(t)).parent.rule,getParentSubRule(t){const r="object"==typeof t?ke(t):e.getCtx(t);if(r){const e=r.getParentGroup();if(e)return e.rule}},getChildrenFormData:(e,t)=>s.getChildrenRuleList(e).reduce((e,r)=>(!0===r.ignore&&!0!==t||(e[r.field]=Je(r.value)),e),{}),setChildrenFormData(t,r,i){const o=s.getChildrenRuleList(t);e.deferSyncValue(()=>{o.forEach(e=>{n.hasProperty(r,e.field)?e.value=r[e.field]:i&&(e.value=void 0)})})},getGlobalEvent(e){let t=s.options.globalEvent[e];if(t)return"object"==typeof t&&(t=t.handle),y.parseFn(t)},getGlobalData:t=>new Promise((r,n)=>{let i=s.options.globalData[t];i?"fetch"===i.type?s.fetch(i).then(e=>{r(e)}).catch(n):r(i.data):r(e.fc.loadData[t])}),emitGlobalEvent(t,...r){const n=s.getGlobalEvent(t);if(n){const t=e.getInjectData({},void 0);return t.args=[...r],r.unshift(t),n.apply(null,r)}},setGlobalData(e,t){s.setData("$globalData."+e,t)},setGlobalVar(e,t){s.setData("$var."+e,t)},renderRule(t,r,n){const i="object"==typeof t?ke(t):e.getCtx(t);return i?e.$render.createRuleVnode(i,r,n):void 0},renderChildren(t,r,n){const i="object"==typeof t?ke(t):e.getCtx(t);return i?e.$render.createChildrenVnodes(i,r,n):void 0},nextTick(t){e.bus.$once("next-tick",t),e.refresh()},nextRefresh(t){e.nextRefresh(),t&&Ce(t)},deferSyncValue(t,r){e.deferSyncValue(t,r)},emit(t,...r){e.vm.emitsOptions&&!e.vm.emitsOptions[t]&&(e.vm.emitsOptions[t]=null),e.vm.emit(t,...r)},bus:e.bus,getCurrentFormRule(){var t;return null===(t=e.vm.setupState.getGroupInject())||void 0===t?void 0:t.rule},fetch:t=>new Promise((r,n)=>{t=a.deepCopy(t),t=e.loadFetchVar(t);const i=e=>{Ce(()=>t.onError&&t.onError(e)),n(e)};e.beforeFetch(t).then(()=>Ue(t,e.fc.create.fetch,s).then(e=>{Ce(()=>t.onSuccess&&t.onSuccess(e)),r(e)}).catch(e=>{i(e)})).catch(e=>{i(e)})}),watchFetch:(t,r,n,i)=>e.fc.watchLoadData((o,l)=>{let u=a.deepCopy(t);if(u=e.loadFetchVar(u,o),i&&!1===i(u,l))return;const c=e=>{Ce(()=>u.onError&&u.onError(e)),n&&n(e)};e.beforeFetch(u).then(()=>Ue(u,e.fc.create.fetch,s).then(e=>{Ce(()=>u.onSuccess&&u.onSuccess(e)),r&&r(e,l)}).catch(e=>{c(e)})).catch(e=>{c(e)})},null==t.wait?1e3:t.wait),getData:(t,r)=>e.fc.get?e.fc.get(t,r):e.fc.getLoadData(t,r),watchData:t=>e.fc.watchLoadData((e,r)=>{Ce(()=>t(e,r))}),setData:(t,r,n)=>e.fc.setData(t,r,n),refreshData:t=>e.fc.refreshData(t),t:(t,r)=>e.fc.t(t,r),getLocale:()=>e.fc.getLocale(),helper:{tidyFields:t,props:i}};return["on","once","off"].forEach(t=>{s[t]=function(...r){e.bus["$"+t](...r)}}),s.changeValue=s.changeField=s.setValue,s}(this))}O.default(tt.prototype,{initData(e){O.default(this,{ctxs:{},fieldCtx:{},nameCtx:{},sort:[],rules:e})},init(){this.updateAppendData(),this.useProvider(),this.usePage(),this.loadRule(),this.$manager.__init(),this.lifecycle("created")},updateAppendData(){this.appendData={...a.deepCopy(this.options.formData||{}),...this.fc.vm.props.modelValue||{},...this.appendData}},isBreakWatch(){return this.loading||this.noWatchFn||this.reloading},globalBeforeFetch(e){return new Promise((t,r)=>{const n=this.options.beforeFetch&&Ce(()=>this.options.beforeFetch(e,{api:this.api}));n&&S.default.Function(n.then)?n.then(t).catch(r):t()})},beforeFetch(e){return new Promise((t,r)=>{const n=e&&e.beforeFetch&&Ce(()=>e.beforeFetch(e,{api:this.api}));n&&S.default.Function(n.then)?n.then(t).catch(r):!1===n?r():t()}).then(()=>this.globalBeforeFetch(e))},beforeSubmit(e){return new Promise((t,r)=>{const n=this.options.beforeSubmit&&Ce(()=>this.options.beforeSubmit(e,{api:this.api}));n&&S.default.Function(n.then)?n.then(t).catch(r):!1===n?r():t()})}}),function(e){O.default(e.prototype,{parseInjectEvent(e,t){const r=e.inject||this.options.injectEvent;return this.parseEventLst(e,t,r)},parseEventLst(e,t,r,n){return Object.keys(t).forEach(i=>{const o=this.parseEvent(e,t[i],r,n);o&&(t[i]=o)}),t},parseEvent(e,t,r,n){if(S.default.Function(t)&&(!1!==r&&!S.default.Undef(r)||t.__inject))return this.inject(e,t,r);if(!n&&Array.isArray(t)&&t[0]&&(S.default.String(t[0])||S.default.Function(t[0])))return this.parseEventLst(e,t,r,!0);if(S.default.String(t)){const n=y.parseFn(t);if(n&&t!==n)return n.__inject?this.parseEvent(e,n,r,!0):n}},parseEmit(e){let t={},r=e.rule,{emitPrefix:n,field:i,name:o,inject:a}=r,s=r.emit||[];return S.default.trueArray(s)&&s.forEach(e=>{if(!e)return;let s,l=n||i||o;if(S.default.Object(e)&&(s=e.inject,l=(e=e.name).prefix||l),l){const n=A.default(`${l}-${e}`),i=(...e)=>{this.vm.emitsOptions&&!this.vm.emitsOptions[n]&&(this.vm.emitsOptions[n]=null),this.vm.emit(n,...e),this.vm.emit("emit-event",n,...e),this.bus.$emit(n,...e)};if(i.__emit=!0,s||!1!==a){let n=s||a||this.options.injectEvent;t[P.default(e)]=S.default.Undef(n)?i:this.inject(r,i,n)}else t[P.default(e)]=i}}),e.computed.on=t,t},getInjectData(e,t){const r=e.__fc__&&e.__fc__.$api,n=e.__fc__&&e.__fc__.$handle.vm||this.vm,{option:i,rule:o}=n.props;return{$f:r||this.api,api:r||this.api,rule:o,self:e.__origin__,option:i,inject:t}},inject(e,t,r){if(t.__origin){if(this.watching&&!this.loading)return t;t=t.__origin}const n=this,i=function(...i){const o=n.getInjectData(e,r);return o.args=[...i],i.unshift(o),t.apply(this,i)};return i.__origin=t,i.__json=t.__json,i},loadStrVar(e,t,r){if(e&&"string"==typeof e&&e.indexOf("{{")>-1&&e.indexOf("}}")>-1){const i=e,o=function(e){const t=/{{\s*(.*?)\s*}}/g;let r;const n={};for(;null!==(r=t.exec(e));)r[1]&&(n[r[1]]=!0);return Object.keys(n)}(e),a=e=>{let i,o=!1;if(r&&0===e.indexOf("$form.")){const a=e.split(".");a.shift(),n.hasProperty(r.value,a[0])&&(o=!0,i=t?t({id:"$form."+a[0]+"_"+r.rule.__fc__.id,getValue:()=>Re(r.value,a)}):Re(r.value,a))}return o||(i=t?t(e):this.fc.getLoadData(e)),i},s=e=>{const t=[];e.forEach(e=>{e.key?t.push(e.key):e.children&&t.push(s(e.children))});let r=!1;return t.forEach((e,n)=>{null==e||0!==e.indexOf("'")&&0!==e.indexOf('"')||(t[n]=e.slice(1,-1),r=!0)}),1!==t.length||!r&&isNaN(Number(t[0]))?a(t.join(".")):t[0]};let l;if(o.forEach(t=>{const r=t.split("||"),n=r[0].trim();if(n){const i=(r[1]||"").trim(),o=function e(t){const r=[];let n="",i=0;for(let o=0;o<t.length;o++){const a=t[o];"["===a?(0===i&&n&&(r.push({type:"key",value:n}),n=""),i++,n+=a):"]"===a?(i--,n+=a,0===i&&(r.push({type:"bracket",value:e(n.slice(1,-1))}),n="")):"."===a&&0===i?n&&(r.push({type:"key",value:n}),n=""):n+=a}return n&&r.push({type:"key",value:n}),r.map(e=>"key"===e.type?{key:e.value}:{children:e.value})}(n);let a=Ce(()=>s(o));(null==a||""===a)&&r.length>1&&(a=i),l=a,e=e.replaceAll(`{{${t}}}`,null==a?"":a)}}),1===o.length&&i===`{{${o[0]}}}`)return l}return e},loadFetchVar(e,t,r){let n;r&&r.__fc__&&(n=r.__fc__.getParentGroup());const i=e=>this.loadStrVar(e,t,n?{rule:r,value:this.subRuleData[n.id]||{}}:null);return e.action=i(e.action||""),["headers","data","query"].forEach(t=>{if(e[t]){const r=Array.isArray(e[t])?[]:{};Object.keys(e[t]).forEach(n=>{r[i(n)]=i(e[t][n])}),e[t]=r}}),e}})}(tt),function(e){O.default(e.prototype,{usePage(){const e=this.options.page;if(!e)return;let t=25,r=(n=this.rules).length<31?31:Math.ceil(n.length/3);var n;S.default.Object(e)&&(e.first&&(t=parseInt(e.first,10)||t),e.limit&&(r=parseInt(e.limit,10)||r)),O.default(this,{first:t,limit:r,pageEnd:this.rules.length<=t}),this.bus.$on("page-end",()=>this.vm.emit("page-end",this.api)),this.pageLoad()},pageLoad(){const e=()=>{this.pageEnd?(this.bus.$off(He,e),this.bus.$emit("page-end")):(this.first+=this.limit,this.pageEnd=this.rules.length<=this.first,this.loadRule(),this.refresh())};this.bus.$on(He,e)}})}(tt),function(e){O.default(e.prototype,{clearNextTick(){this.nextTick&&clearTimeout(this.nextTick),this.nextTick=null},bindNextTick(e){this.clearNextTick(),this.nextTick=setTimeout(()=>{e(),this.nextTick=null},10)},render(){return++this.loadedId,this.vm.setupState.unique>0?this.$render.render():(this.vm.setupState.unique=1,[])}})}(tt),function(e){O.default(e.prototype,{nextRefresh(e){const t=this.loadedId;r.nextTick(()=>{t===this.loadedId&&(e?e():this.refresh())})},parseRule(e){const t=$e(e);return Object.defineProperties(t,{__origin__:ye(e,!0)}),function(e){const t={props:{},on:{},options:[],children:[],hidden:!1,display:!0,value:void 0};Object.keys(t).forEach(r=>{n.hasProperty(e,r)||(e[r]=t[r])})}(t),this.appendValue(t),[t,t.prefix,t.suffix].forEach(e=>{e&&this.loadFn(e,t)}),this.loadCtrl(t),t.update&&(t.update=y.parseFn(t.update)),t},loadFn(e,t){["on","props","deep"].forEach(r=>{e[r]&&this.parseInjectEvent(t,e[r])})},loadCtrl(e){e.control&&e.control.forEach(e=>{e.handle&&(e.handle=y.parseFn(e.handle))})},syncProp(e){const t=e.rule;S.default.trueArray(t.sync)&&j.default([{on:t.sync.reduce((e,r)=>(e["object"==typeof r&&r.event||"update:"+r]=e=>{t.props["object"==typeof r&&r.prop||r]=e,this.vm.emit("sync",r,e,t,this.fapi)},e),{})}],e.computed)},loadRule(){this.cycleLoad=!1,this.loading=!0,this.pageEnd&&this.bus.$emit("load-start"),this.deferSyncValue(()=>{if(this._loadRule(this.rules),this.loading=!1,this.cycleLoad&&this.pageEnd)return this.loadRule();this.syncForm(),this.pageEnd&&this.bus.$emit("load-end"),this.vm.setupState.renderRule()})},loadChildren(e,t){if(this.cycleLoad=!1,this.loading=!0,this.bus.$emit("load-start"),this._loadRule(e,t),this.loading=!1,this.cycleLoad)return this.loadRule();this.syncForm(),this.bus.$emit("load-end"),this.$render.clearCache(t)},_loadRule(e,t){const r=t=>{let n=e[t-1];if(!n||!n.__fc__)return t>0?r(t-1):-1;let i=this.sort.indexOf(n.__fc__.id);return i>-1?i:r(t-1)},n=(e,t)=>{S.default.trueArray(e)&&this._loadRule(e,t)},i=e.map((i,o)=>{if(t&&!S.default.Object(i))return;if(!this.pageEnd&&!t&&o>=this.first)return;if(i.__fc__&&i.__fc__.root===e&&this.ctxs[i.__fc__.id])return n(i.__fc__.loadChildrenPending(),i.__fc__),i.__fc__;let a=$e(i);const s=()=>!(!a.field||!this.fieldCtx[a.field]||this.fieldCtx[a.field][0]===i.__fc__);let l;this.fc.targetFormDriver("loadRule",{rule:a,api:this.api},this.fc),this.ruleEffect(a,"init",{repeat:s()}),s()&&this.vm.emit("repeat-field",i,this.api);let u=!1,c=!!i.__fc__,d=a.value;if(c)if(l=i.__fc__,d=l.defaultValue,l.deleted){if(Xe(l))return;l.update(this)}else if(!l.check(this)){if(Xe(l))return;e[o]=i=i._clone?i._clone():y.parseJson(y.toJson(i)),l=null,u=!0}if(l)l.originType!==l.rule.type&&l.updateType(),this.bindParser(l),this.appendValue(l.rule),l.parent&&l.parent!==t&&this.rmSubRuleData(l);else{const e=this.parseRule(i);l=new We(this,e,d),this.bindParser(l)}this.parseEmit(l),this.syncProp(l),l.parent=t||null,l.root=e,this.setCtx(l),u||c||(this.effect(l,"load"),this.targetHook(l,"load")),this.effect(l,"created");const p=l.loadChildrenPending();if(!1===l.parser.loadChildren||n(p,l),!t){const e=r(o);e>-1||!o?this.sort.splice(e+1,0,l.id):this.sort.push(l.id)}const h=l.rule;return l.updated||(l.updated=!0,S.default.Function(h.update)&&this.bus.$once("load-end",()=>{this.refreshUpdate(l,h.value,"init")}),this.effect(l,"loaded")),this.refreshControl(l)&&(this.cycleLoad=!0),l}).filter(e=>!!e);t&&(t.children=i)},refreshControl(e){return e.input&&e.rule.control&&this.useCtrl(e)},useCtrl(e){const t=function(e){const t=e.rule.control||[];return S.default.Object(t)?[t]:t}(e),n=[],i=this.api;if(!t.length)return!1;for(let r=0;r<t.length;r++){const o=t[r],a=o.handle||function(e){return(Oe[o.condition||"=="]||Oe["=="])(e,o.value)};if(!S.default.trueArray(o.rule))continue;const s={...o,valid:Ce(()=>a(e.rule.value,i)),ctrl:Ke(e,o.rule),isHidden:S.default.String(o.rule[0])};s.valid&&s.ctrl||!s.valid&&!s.ctrl&&!s.isHidden||n.push(s)}if(!n.length)return!1;const o=[];let a=!1;return this.deferSyncValue(()=>{n.reverse().forEach(({isHidden:t,valid:r,rule:n,prepend:s,append:l,child:u,ctrl:c,method:d})=>{if(t)return r?e.ctrlRule.push({__ctrl:!0,children:n,valid:r}):c&&e.ctrlRule.splice(e.ctrlRule.indexOf(c)>>>0,1),void o[r?"push":"unshift"](()=>{"disabled"===d||"enabled"===d?this.api.disabled(!r,n):"display"===d||"show"===d?this.api.display(r,n):"required"===d?(n.forEach(e=>{this.api.setEffect(e,"required",r)}),r||this.api.clearValidateState(n)):this.api.hidden(!r,n)});if(r){a=!0;const t={type:"fragment",native:!0,__ctrl:!0,children:n};e.ctrlRule.push(t),this.bus.$once("load-start",()=>{s?i.prepend(t,s,u):l||u?i.append(t,l||e.id,u):e.root.splice(e.root.indexOf(e.origin)+1,0,t)})}else{e.ctrlRule.splice(e.ctrlRule.indexOf(c),1);const t=ke(c);t&&t.rm()}})}),o.length&&(this.loading?o.length&&this.bus.$once("load-end",()=>{o.forEach(e=>e())}):o.length&&r.nextTick(()=>{o.forEach(e=>e())})),this.vm.emit("control",e.origin,this.api),this.effect(e,"control"),a},reloadRule(e){return this._reloadRule(e)},_reloadRule(e){e||(e=this.rules);const t={...this.ctxs};this.clearNextTick(),this.initData(e),this.fc.rules=e,this.deferSyncValue(()=>{this.bus.$once("load-end",()=>{Object.keys(t).filter(e=>void 0===this.ctxs[e]).forEach(e=>this.rmCtx(t[e])),this.$render.clearCacheAll()}),this.reloading=!0,this.loadRule(),this.reloading=!1,this.refresh(),this.bus.$emit("reloading",this.api)}),this.bus.$off("next-tick",this.nextReload),this.bus.$once("next-tick",this.nextReload),this.bus.$emit("update",this.api)},refresh(){this.vm.setupState.refresh()}})}(tt),function(e){O.default(e.prototype,{setValue(e,t,n,i){e.deleted||(e.rule.value=t,this.changeStatus=!0,this.nextRefresh(),this.$render.clearCache(e),this.setFormData(e,n),this.syncValue(),this.valueChange(e,t),this.vm.emit("change",e.field,t,e.origin,this.api,i||!1),this.effect(e,"value"),this.targetHook(e,"value",{value:t}),this.emitEvent("change",e.field,t,{rule:e.origin,api:this.api,setFlag:i||!1}),i&&r.nextTick(()=>{r.nextTick(()=>{r.nextTick(()=>{this.api.clearValidateState(e.id)})})}),this.$manager.fieldChange(e,t,n,i))},onInput(e,t){let r;e.input&&(this.isQuote(e,r=e.parser.toValue(t,e))||this.isChange(e,t))&&this.setValue(e,r,t)},onUpdateValue(e,t){this.deferSyncValue(()=>{const r=e.getParentGroup(),i=r?this.subRuleData[r.id]:null,o={};Object.keys(t||{}).forEach(e=>{i&&n.hasProperty(i,e)?o[e]=t[e]:n.hasProperty(this.api.form,e)?this.api.form[e]=t[e]:this.api.top!==this.api&&n.hasProperty(this.api.top.form,e)&&(this.api.top.form[e]=t[e])}),Object.keys(o).length&&this.api.setChildrenFormData(r.rule,o)})},onBaseInput(e,t){this.setFormData(e,t),e.modelValue=t,this.nextRefresh(),this.$render.clearCache(e)},setFormData(e,t){e.modelValue=t;const r=e.getParentGroup();r&&(this.subRuleData[r.id]||(this.subRuleData[r.id]={}),this.subRuleData[r.id][e.field]=e.rule.value),b.$set(this.formData,e.id,t)},rmSubRuleData(e){const t=e.getParentGroup();t&&this.subRuleData[t.id]&&delete this.subRuleData[t.id][e.field]},getFormData(e){return this.formData[e.id]},syncForm(){const e=r.reactive({}),t=this.fields(),n=[];!1!==this.options.appendValue&&Object.keys(this.appendData).reduce((e,n)=>(-1===t.indexOf(n)&&(e[n]=r.toRef(this.appendData,n)),e),e),t.reduce((e,t)=>{let i=(this.fieldCtx[t]||[]).filter(e=>!this.isIgnore(e))[0];return i||(i=this.fieldCtx[t][0],n.push(t)),e[t]=r.toRef(i.rule,"value"),e},e),this.form=e,this.ignoreFields=n,this.syncValue()},isIgnore(e){return!0===e.rule.ignore||("hidden"===e.rule.ignore||this.options.ignoreHiddenFields)&&e.hasHidden()},appendValue(e){(e.field&&n.hasProperty(this.appendData,e.field)||S.default.Undef(e.value)&&this.options.forceCoverValue)&&(e.value=this.appendData[e.field],delete this.appendData[e.field])},addSubForm(e,t){this.subForm[e.id]=t},deferSyncValue(e,t){this.deferSyncFn||(this.deferSyncFn=e),this.deferSyncFn.sync||(this.deferSyncFn.sync=t),Ce(e),this.deferSyncFn===e&&(this.deferSyncFn=null,e.sync&&this.syncForm())},syncValue(){if(this.deferSyncFn)return this.deferSyncFn.sync=!0;const e={};Object.keys(this.form).forEach(t=>{-1===this.ignoreFields.indexOf(t)&&(e[t]=this.form[t])}),this.vm.setupState.updateValue(e)},isChange(e,t){return JSON.stringify(this.getFormData(e),Ye)!==JSON.stringify(t,Ye)},isQuote:(e,t)=>(t instanceof Function||S.default.Object(t)||Array.isArray(t))&&t===e.rule.value,refreshUpdate(e,t,r,n){if(S.default.Function(e.rule.update)){const i=Ce(()=>e.rule.update(t,e.origin,this.api,{origin:r||"change",linkField:n}));if(void 0===i)return;e.rule.hidden=!0===i}},valueChange(e,t){this.refreshRule(e,t),this.bus.$emit("change-"+e.field,t)},refreshRule(e,t,r,n){this.refreshControl(e)&&(this.$render.clearCacheAll(),this.loadRule(),this.bus.$emit("update",this.api),this.refresh()),this.refreshUpdate(e,t,r,n)},appendLink(e){const t=e.rule.link;S.default.trueArray(t)&&t.forEach(t=>{const r=()=>this.refreshRule(e,e.rule.value,"link",t);this.bus.$on("change-"+t,r),e.linkOn.push(()=>this.bus.$off("change-"+t,r))})},fields(){return Object.keys(this.fieldCtx)}})}(tt),function(e){O.default(e.prototype,{getCtx(e){return this.getFieldCtx(e)||this.getNameCtx(e)[0]||this.ctxs[e]},getCtxs(e){return this.fieldCtx[e]||this.nameCtx[e]||(this.ctxs[e]?[this.ctxs[e]]:[])},setIdCtx(e,t,r){const n=r+"Ctx";this[n][t]?this[n][t].push(e):this[n][t]=[e]},rmIdCtx(e,t,r){const n=r+"Ctx",i=this[n][t];if(!i)return!1;const o=i.splice(i.indexOf(e)>>>0,1).length>0;return i.length||delete this[n][t],o},getFieldCtx(e){return(this.fieldCtx[e]||[])[0]},getNameCtx(e){return this.nameCtx[e]||[]},setCtx(e){let{id:t,field:r,name:n,rule:i}=e;this.ctxs[t]=e,n&&this.setIdCtx(e,n,"name"),e.input&&(this.setIdCtx(e,r,"field"),this.setFormData(e,e.parser.toFormValue(i.value,e)),this.isMounted&&!this.reloading&&this.vm.emit("change",e.field,i.value,e.origin,this.api,!1,!0))},getParser(e){const t=this.fc.parsers,r=this.fc.renderDriver;if(r){const t=r.parsers||{},n=t[e.originType]||t[P.default(e.type)]||t[e.trueType];if(n)return n}return t[e.originType]||t[P.default(e.type)]||t[e.trueType]||Ze},bindParser(e){e.setParser(this.getParser(e))},getType(e){const t=this.fc.CreateNode.aliasMap,r=t[e]||t[P.default(e)]||e;return P.default(r)},noWatch(e){this.noWatchFn||(this.noWatchFn=e),Ce(e),this.noWatchFn===e&&(this.noWatchFn=null)},watchCtx(e){if(ve().filter(e=>"_"!==e[0]&&"$"!==e[0]&&-1===Qe.indexOf(e)).forEach(t=>{const n=r.toRef(e.rule,t),i="children"===t;e.refRule[t]=n,e.watch.push(r.watch(i?()=>S.default.Function(n.value)?n.value:[...n.value||[]]:()=>n.value,(o,a)=>{let s=n.value;if(!this.isBreakWatch()){if(i&&!1===e.parser.loadChildren)return this.$render.clearCache(e),void this.nextRefresh();if(this.watching=!0,r.nextTick(()=>{this.targetHook(e,"watch",{key:t,oldValue:a,newValue:s})}),"hidden"===t&&Boolean(s)!==Boolean(a)&&(this.$render.clearCacheAll(),r.nextTick(()=>{this.targetHook(e,"hidden",{value:s})})),"ignore"===t&&e.input||"hidden"===t&&("hidden"===e.rule.ignore||this.options.ignoreHiddenFields))this.syncForm();else{if("link"===t)return void e.link();["props","on","deep"].indexOf(t)>-1?(this.parseInjectEvent(e.rule,s||{}),"props"===t&&e.input&&this.setFormData(e,e.parser.toFormValue(e.rule.value,e))):"emit"===t?this.parseEmit(e):["prefix","suffix"].indexOf(t)>-1?s&&this.loadFn(s,e.rule):"type"===t?(e.updateType(),this.bindParser(e)):i&&(S.default.Function(a)&&(a=e.getPending("children",[])),S.default.Function(s)&&(s=e.loadChildrenPending()),this.updateChildren(e,s,a))}this.$render.clearCache(e),this.refresh(),this.watching=!1}},{deep:!i,sync:i}))}),e.refRule.__$title=r.computed(()=>{let t=("object"==typeof e.rule.title?e.rule.title.title:e.rule.title)||"";if(t){const e=t.match(/^\{\{\s*\$t\.(.+)\s*\}\}$/);e&&(t=this.api.t(e[1]))}return t}),e.refRule.__$info=r.computed(()=>{let t=("object"==typeof e.rule.info?e.rule.info.info:e.rule.info)||"";if(t){const e=t.match(/^\{\{\s*\$t\.(.+)\s*\}\}$/);e&&(t=this.api.t(e[1]))}return t}),e.refRule.__$validate=r.computed(()=>{const t=t=>{const r=t.match(/^\{\{\s*\$t\.(.+)\s*\}\}$/);var n;return r?this.api.t(r[1],{title:null===(n=e.refRule)||void 0===n||null===(n=n.__$title)||void 0===n?void 0:n.value}):t};return F.default(e.rule.validate).map(r=>{const n={...r};if(n.message&&(n.message=t(n.message)),S.default.Function(n.validator)){const t=e;n.validator=function(...e){return r.validator.call({that:this,id:t.id,field:t.field,rule:t.rule,api:t.$handle.api},...e)}}if(n.adapter){if("object"==typeof n.error){const e={...n.error};Object.keys(e).forEach(r=>{e[r]=t(e[r])}),n.error=e}return this.adapterValidate(n,e)}return n})}),e.input){const t=r.toRef(e.rule,"value");e.watch.push(r.watch(()=>t.value,()=>{let r=e.parser.toFormValue(t.value,e);this.isChange(e,r)&&this.setValue(e,t.value,r,!0)}))}this.bus.$once("load-end",()=>{let t=e.rule.computed;t&&("object"!=typeof t&&(t={value:t}),Object.keys(t).forEach(n=>{const i=r.computed(()=>{const r=t[n];if(!r)return;const i=this.compute(e,r);return(r.linkage||r.linkageVariable)&&i===et?et:i}),o=t=>{"value"===n?this.onInput(e,t):"$"===n[0]?this.api.setEffect(e.id,n,t):l.deepSet(e.rule,n,t)};("value"===n?[void 0,null,""].indexOf(e.rule.value)>-1:i.value!==Re(e.rule,n))&&o(i.value),e.watch.push(r.watch(i,e=>{e!==et&&setTimeout(()=>{o(e)})},{deep:!0}))}))}),this.watchEffect(e)},adapterValidate(e,t){return this.$manager.adapterValidate({required:e.required,message:e.message,trigger:e.trigger},(r,n)=>{if(!1===(e.beforeValidate&&Ce(()=>e.beforeValidate({value:r,api:this.api,validate:e,rule:t.rule}))))n();else{const i=this.validator(t,r,e);if(i){let r="";"object"==typeof e.error&&(r=e.error[i]||e.error.default),r||"string"!=typeof e.message||(r=e.message),r||(r=this.getValidateMessage(t,{key:i,rule:e[i]})),n(r)}else if(e.validator){const t=e.validator&&Ce(()=>e.validator(r,n));t&&S.default.Function(t.then)&&t.then(()=>n()).catch(e=>n(e))}else n()}})},getValidateMessage(e,t){var r;const n=Array.isArray(t.rule)?t.rule.join(","):""+t.rule;return this.api.t("required"===t.key?t.key:"validate."+t.key,{[t.key]:n,title:null===(r=e.refRule)||void 0===r||null===(r=r.__$title)||void 0===r?void 0:r.value})},validator(e,t,r){if(S.default.empty(t))return r.required?"required":void 0;for(const[n,i]of Object.entries(r))switch(n){case"len":case"maxLen":case"minLen":const r=e=>"len"===n?e===i:"maxLen"===n?e<=i:e>=i;if(Array.isArray(t)){if(!r(t.length))return n}else{if("object"==typeof t)return n;if(!r((""+t).length))return n}break;case"pattern":if(!("string"==typeof i?new RegExp(i):i).test(""+t))return n;break;case"uppercase":if(i&&("string"!=typeof t||!/^[A-Z]*$/.test(t)))return n;break;case"lowercase":if(i&&("string"!=typeof t||!/^[a-z]*$/.test(t)))return n;break;case"min":case"max":case"positive":case"negative":case"integer":case"number":const o=Number(t);if(Number.isNaN(o))return n;if("min"===n&&o<i)return n;if("max"===n&&o>i)return n;if("positive"===n&&o<=0)return n;if("negative"===n&&o>=0)return n;if("integer"===n&&!Number.isInteger(o))return n;break;case"equal":if(t!==i)return n;break;case"enum":if(Array.isArray(i)&&!i.includes(t))return n;break;case"hasKeys":if("object"!=typeof t||Array.isArray(i)&&i.some(e=>!(e in t)))return n;break;case"email":if(!/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/.test(""+t))return n;break;case"url":if(!new RegExp("^(?!mailto:)(?:(?:http|https|ftp)://)(?:\\S+(?::\\S*)?@)?(?:(?:(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}(?:\\.(?:[0-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))|(?:(?:[a-z\\u00a1-\\uffff0-9]+-?)*[a-z\\u00a1-\\uffff0-9]+)(?:\\.(?:[a-z\\u00a1-\\uffff0-9]+-?)*[a-z\\u00a1-\\uffff0-9]+)*(?:\\.(?:[a-z\\u00a1-\\uffff]{2,})))|localhost)(?::\\d{2,5})?(?:(/|\\?|#)[^\\s]*)?$","i").test(""+t))return n;break;case"ip":if(!/^(2(5[0-5]{1}|[0-4]\d{1})|[0-1]?\d{1,2})(\.(2(5[0-5]{1}|[0-4]\d{1})|[0-1]?\d{1,2})){3}$/.test(""+t))return n;break;case"phone":if(!/^(?:(?:\+|00)86)?1[3-9]\d{9}$/.test(""+t))return n;break;case"computed":if(!this.compute(e,i))return n}},compute(e,t){let r;if("object"==typeof t){const r=e.getParentGroup(),n=t=>{if(t=Array.isArray(t)?{mode:"AND",group:t}:t,!S.default.trueArray(t.group))return!0;const i="OR"===t.mode;let o=!0;for(let a=0;a<t.group.length;a++){const s=t.group[a];let l,u=null,c=null;if(s.variable)c=this.fc.getLoadData(s.variable);else if(s.field)u=je(s.field||"");else if(!s.mode)return!0;let d=s.compare;if(d&&(d=je(d||"")),l=s.mode?n(s):!!Oe[s.condition]&&(S.default.Function(s.handler)?Ce(()=>s.handler(this.api,e.rule)):Ce(()=>new Function("$condition","$variableVal","$val","$form","$scope","$group","$rule",`with($form){with($scope){with(this){with($group){ return $condition['${s.condition}'](${s.variable?"$variableVal":u}, ${d||"$val"}); }}}}`).call(this.api.form,Oe,c,s.value,this.api.top.form,this.api.top===this.api.scope?{}:this.api.scope.form,r&&this.subRuleData[r.id]||{},e.rule))),i&&l)return!0;i||(o=o&&l)}return!i&&o};let i=n(t);return i=!0===t.invert?!i:i,t.linkage?i?Ce(()=>this.computeValue(t.linkage,e,r),void 0):et:t.linkageVariable?i?Ce(()=>this.fc.getLoadData(t.linkageVariable),void 0):et:i}if(S.default.Function(t))r=()=>t(this.api.form,this.api,e.rule);else{const n=e.getParentGroup();r=()=>this.computeValue(t,e,n)}return Ce(r,void 0)},computeValue(e,t,r){const n=this,i=Object.keys(this.fc.formulas).reduce((e,r)=>(e[r]=function(...e){return n.fc.formulas[r].call({that:this,rule:t.rule,api:n.api,fc:n.fc},...e)},e),{});return Ce(()=>new Function("$formulas","$form","$scope","$group","$rule","$api",`with($form){with($scope){with(this){with($group){with($formulas){ return ${e} }}}}}`).call(this.api.form,i,this.api.top.form,this.api.top===this.api.scope?{}:this.api.scope.form,r&&this.subRuleData[r.id]||{},t.rule,this.api),void 0)},updateChildren(e,t,r){this.deferSyncValue(()=>{r&&r.forEach(r=>{-1===(t||[]).indexOf(r)&&r&&!S.default.String(r)&&r.__fc__&&r.__fc__.parent===e&&this.rmCtx(r.__fc__)}),S.default.trueArray(t)&&(this.loadChildren(t,e),this.bus.$emit("update",this.api))})},rmSub(e){S.default.trueArray(e)&&e.forEach(e=>{e&&e.__fc__&&this.rmCtx(e.__fc__)})},rmCtx(e){if(e.deleted)return;const{id:t,field:r,input:i,name:o}=e;b.$del(this.ctxs,t),b.$del(this.formData,t),b.$del(this.subForm,t),b.$del(this.vm.setupState.ctxInject,t);const a=e.getParentGroup();a&&this.subRuleData[a.id]&&b.$del(this.subRuleData[a.id],r),e.group&&b.$del(this.subRuleData,t),i&&this.rmIdCtx(e,r,"field"),o&&this.rmIdCtx(e,o,"name"),i&&!n.hasProperty(this.fieldCtx,r)&&b.$del(this.form,r),this.deferSyncValue(()=>{if(!this.reloading){if(!1!==e.parser.loadChildren){const t=e.getPending("children",e.rule.children);S.default.trueArray(t)&&t.forEach(e=>e&&e.__fc__&&this.rmCtx(e.__fc__))}e.root===this.rules&&this.vm.setupState.renderRule()}},i);const s=this.sort.indexOf(t);return s>-1&&this.sort.splice(s,1),this.$render.clearCache(e),e.delete(),this.effect(e,"deleted"),this.targetHook(e,"deleted"),i&&!this.fieldCtx[r]&&this.vm.emit("remove-field",r,e.rule,this.api),e.rule.__ctrl||this.vm.emit("remove-rule",e.rule,this.api),e}})}(tt),function(e){O.default(e.prototype,{mounted(){const e=()=>{this.isMounted=!0,this.lifecycle("mounted")};this.pageEnd?e():this.bus.$once("page-end",e)},lifecycle(e){this.fc.targetFormDriver(e,this.api,this.fc),this.vm.emit(e,this.api),this.emitEvent(e,this.api)},emitEvent(e,...t){const r=this.options[e]||this.options[P.default("on-"+e)];if(r){const e=y.parseFn(r);S.default.Function(e)&&Ce(()=>e(...t))}this.bus.$emit(e,...t)},targetHook(e,t,r){var n;let i=(t,n)=>{t&&(t=Array.isArray(t)?t:[t]).forEach(t=>{Ce(()=>t({args:Object.values(r||{}),...r||{},self:e.rule,rule:e.rule,parent:null==n?void 0:n.rule,$f:this.api,api:this.api,option:this.vm.props.option}))})};i(null===(n=e.prop)||void 0===n||null===(n=n.hook)||void 0===n?void 0:n[t]);let o="deep"+m.upper(t),a=e.parent;for(;a;){var s;i(null===(s=a.prop)||void 0===s||null===(s=s.hook)||void 0===s?void 0:s[o],a),a=a.parent}}})}(tt),function(e){O.default(e.prototype,{useProvider(){const e=this.fc.providers;Object.keys(e).forEach(t=>{let r=e[t];S.default.Function(r)&&(r=r(this.fc)),r._c=function(e){const t=e.components;if(Array.isArray(t)){const e=function(e){return e.filter((function(e,t,r){return r.indexOf(e,0)===t}))}(t.filter(e=>"*"!==e));return!!e.length&&e}return!!S.default.String(t)&&[t]}(r),this.onEffect(r,t),this.providers[t]=r})},onEffect(e,t){const r=[];(e._c||["*"]).forEach(n=>{const i="*"===n?"*":this.getType(n);r.indexOf(i)>-1||(r.push(i),this.bus.$on(`p:${t||e.name}:${i}:${e.input?1:0}`,(t,r)=>{e[t]&&e[t](...r)}))}),e._used=r},watchEffect(e){let t={required:()=>{var t;return(n.hasProperty(e.rule,"$required")?e.rule.$required:null===(t=e.rule)||void 0===t||null===(t=t.effect)||void 0===t?void 0:t.required)||!1}};Object.keys(e.rule.effect||{}).forEach(r=>{t[r]=()=>e.rule.effect[r]}),Object.keys(e.rule).forEach(r=>{"$"===r[0]&&(t[r.substr(1)]=()=>e.rule[r])}),Object.keys(t).forEach(n=>{e.watch.push(r.watch(t[n],t=>{this.effect(e,"watch",{[n]:t})},{deep:!0}))})},ruleEffect(e,t,r){this.emitEffect({rule:e,input:!!e.field,type:this.getType(e.type)},t,r)},effect(e,t,r){this.emitEffect({rule:e.rule,input:e.input,type:e.trueType,ctx:e,custom:r},t)},getEffect:(e,t)=>n.hasProperty(e,"$"+t)?e["$"+t]:n.hasProperty(e,"effect")&&n.hasProperty(e.effect,t)?e.effect[t]:void 0,emitEffect({ctx:e,rule:t,input:r,type:n,custom:i},o,a){if(!n||["fcFragment","fragment"].indexOf(n)>-1)return;const s=i||Object.keys(t).reduce((e,r)=>("$"===r[0]&&(e[r.substr(1)]=t[r]),e),{...t.effect||{}});Object.keys(s).forEach(i=>{const l=this.providers[i];if(!l||l.input&&!r)return;let u;if(l._c){if(!(l._used.indexOf(n)>-1))return;u=n}else u="*";const c={value:s[i],getValue:()=>this.getEffect(t,i),...a||{}};e&&(c.getProp=()=>e.effectData(i),c.clearProp=()=>e.clearEffectData(i),c.mergeProp=e=>xe(c.getProp(),[e]),c.id=e.id),this.bus.$emit(`p:${i}:${u}:${l.input?1:0}`,o,[c,t,this.api])})}})}(tt);var rt=r.defineComponent({name:"fcFragment",inheritAttrs:!1,props:["vnode"],render(){return this.vnode}});function nt(e,t){let n=e.directives;return n?(Array.isArray(n)||(n=[n]),r.withDirectives(t,n.reduce((e,t)=>e.concat(function(e){return Object.keys(e).map(t=>{const n=e[t],i=r.resolveDirective(t);if(i)return[i,n.value,n.arg,n.modifiers]}).filter(e=>!!e)}(t)),[]))):t}function it(e){class t extends ot{}return Object.assign(t.prototype,e),t}function ot(e){O.default(this,{$handle:e,vm:e.vm,options:{},ref:"fcForm",mergeOptionsRule:{normal:["form","row","info","submitBtn","resetBtn"]}}),this.updateKey(),this.init()}O.default(ot.prototype,{__init(){this.$render=this.$handle.$render,this.$r=(...e)=>this.$render.renderRule(...e)},updateKey(){this.key=N.default()},init(){},update(){},beforeRender(){},form(){return this.vm.refs[this.ref]},adapterValidate:(e,t)=>(e.validator=(e,r,n)=>t(r,n),e),getSlot(e){const t=r=>{if(r){let n=r.slots[e];return n||t(r.setupState.parent)}};return t(this.vm)},mergeOptions(e,t){return j.default(e.map(e=>this.tidyOptions(e)),t,this.mergeOptionsRule)},updateOptions(e){this.$handle.fc.targetFormDriver("updateOptions",e,{handle:this.$handle,api:this.$handle.api}),this.options=this.mergeOptions([e],this.getDefaultOptions()),this.update()},tidyOptions:e=>e,tidyRule(e){},mergeProp(e){},getDefaultOptions:()=>({}),fieldChange(e,t,r,n){},render(e){}});const at={name:"componentValidate",load(e,t,r){let n=e.getValue();if(n&&!1!==n.method){S.default.Object(n)||(n={method:n});const i=n.method,o={...n,validator(...n){const o=ke(t);if(o)return r.exec(o.id,S.default.String(i)?i:"formCreateValidate",...n,{attr:e,rule:t,api:r})}};delete o.method,e.getProp().validate=[o]}else e.clearProp(),r.clearValidateState([t.field])},watch(...e){at.load(...e)}};var st={fetch:function(e){function t(t,i,o){let s=t.value;r.deleted(t),S.default.Function(s)&&(s=s(i,o)),s=function(e){return S.default.String(e)&&(e={action:e,to:"options"}),e}(s);const u=r=>{void 0===r?t.clearProp():I.default(t.getProp(),s.to||"options",r),null!=r&&s&&s.key&&e.$handle.options.globalData[s.key]&&e.fetchCache.set(e.$handle.options.globalData[s.key],{status:!0,data:r}),o.sync(i)};if(!s||!s.action&&!s.key)return void u(void 0);s=a.deepCopy(s),s.to||(s.to="options");const c=s.onError,d=()=>{if(!t.getValue())return t.clearProp(),o.sync(i),!0};r._fn[t.id]=e.watchLoadData(E.default((p,h)=>{if(h&&!1===s.watch)return r._fn[t.id]();if(s.key){e.targetRule=i;const t=p("$globalData."+s.key);if(delete e.targetRule,t){if(d())return;u(t)}return}const f=e.$handle.loadFetchVar(a.deepCopy(s),p,i),m={headers:{},...f,onSuccess(e,t){if(d())return;let r=e=>t?e:n.hasProperty(e,"data")?e.data:e;const a=y.parseFn(f.parse);S.default.Function(a)?r=a:a&&S.default.String(a)&&(r=e=>Re(e,a)),l.toPromise(r(e,i,o)).then(e=>{u(e)})},onError(e){u(void 0),d()||(c||(e=>g.err(e.message||"fetch fail "+f.action)))(e,i,o)}};e.$handle.beforeFetch(m,{rule:i,api:o}).then(()=>{S.default.Function(f.action)?l.toPromise(f.action(i,o)).then(e=>{m.onSuccess(e,!0)}).catch(e=>{m.onError(e)}):Ce(()=>e.create.fetch(m,{inject:t,rule:i,api:o}))}).catch(e=>{})},s.wait||600))}const r={name:"fetch",_fn:[],loaded(...e){t(...e)},watch(...e){t(...e)},deleted(e){this._fn[e.id]&&(this._fn[e.id](),delete this._fn[e.id]),e.clearProp()}};return r},loadData:function(e){const t={name:"loadData",_fn:[],loaded(t,n,i){this.deleted(t),r.nextTick(()=>{let r=F.default(t.getValue());const o=[];r.forEach(r=>{if(r&&(r.attr||r.template)){let s=o=>{let s,l;n&&n.__fc__&&(s=n.__fc__.getParentGroup()),l=r.template?e.$handle.loadStrVar(r.template,o,s?{rule:n,value:e.$handle.subRuleData[s.id]||{}}:null):r.handler&&S.default.Function(r.handler)?r.handler(o,n,i):e.$handle.loadStrVar(`{{${r.attr}}}`,o,s?{rule:n,value:e.$handle.subRuleData[s.id]||{}}:null),null!=l&&""!==l||null==r.default||(l=r.default),!1!==r.copy&&(l=a.deepCopy(l));const u=r.modify?n:t.getProp();"child"===r.to?u.children?u.children[0]=l:u.children=[l]:I.default(u,r.to||"options",l),i.sync(n)},l=e=>s(e);const u=e.watchLoadData(l);s=E.default(s,r.wait||300),!1!==r.watch?o.push(u):u()}}),this._fn[t.id]=o})},deleted(e){this._fn[e.id]&&(this._fn[e.id].forEach(e=>{e()}),delete this._fn[e.id]),e.clearProp()}};return t.watch=t.loaded,t},t:function(e){const t={name:"t",_fn:[],loaded(t,r,n){this.deleted(t);let i=t.getValue()||{};const o=[];Object.keys(i).forEach(a=>{const s=i[a];if(s){const i="object"==typeof s;let l=o=>{let l=e.t(i?s.attr:s,i?s.params:null,o);const u=i&&s.modify?r:t.getProp();"child"===a?u.children?u.children[0]=l:u.children=[l]:I.default(u,a,l),n.sync(r)},u=e=>l(e);const c=e.watchLoadData(u);l=E.default(l,s.wait||300),!1!==s.watch?o.push(c):c()}}),this._fn[t.id]=o},deleted(e){this._fn[e.id]&&(this._fn[e.id].forEach(e=>{e()}),delete this._fn[e.id]),e.clearProp()}};return t.watch=t.loaded,t},componentValidate:at};var lt={name:"html",loadChildren:!1,render:(e,t)=>(t.prop.props.innerHTML=e.default(),t.vNode.make(t.prop.props.tag||"div",t.prop)),renderChildren:e=>({default:()=>e.filter(e=>S.default.String(e)).join("")})};function ut(e){e+="=";const t=decodeURIComponent(document.cookie).split(";");for(let r=0;r<t.length;r++){let n=t[r];for(;" "===n.charAt(0);)n=n.substring(1);if(0===n.indexOf(e)){n=n.substring(e.length,n.length);try{return JSON.parse(n)}catch(e){return n}}}return null}function ct(e){const t=localStorage.getItem(e);if(t)try{return JSON.parse(t)}catch(e){return t}return null}function dt(e){const t=sessionStorage.getItem(e);if(t)try{return JSON.parse(t)}catch(e){return t}return null}function pt(e,t){if(!t)return null;const r=t.split(".");let n=e(r.shift());return r.length?null==n?null:Re(n,r):n}function ht(e){return pt(ut,e)}function ft(e){return pt(ct,e)}function mt(e){return pt(dt,e)}var gt={en:{required:"{title} is required",validate:{url:"{title} is not a valid url",email:"{title} is not a valid email",ip:"{title} {title} is not a valid ip",phone:"{title} {title} is not a valid phone",pattern:"{title} does not match pattern {pattern}",uppercase:"{title} must be all uppercase",lowercase:"{title} must be all lowercased",positive:"{title} is not a positive number",negative:"{title} is not a negative number",equal:"{title} is not equal to {equal}",min:"{title} cannot be less than {min}",max:"{title} cannot be greater than {max}",enum:"{title} must be one of {enum}",hasKeys:"{title} does not contain required fields {hasKeys}",minLen:"{title} must be at least {minLen}",maxLen:"{title} cannot be longer than {maxLen}",len:"{title} must be exactly {len}",integer:"{title} is not an integer",number:"{title} is not an number"}},"zh-cn":{required:"{title}不能为空",validate:{url:"{title}不是有效的 url 地址",email:"{title}不是有效的邮箱地址",ip:"{title}不是有效的 IP 地址",phone:"{title}不是正确的手机号",pattern:"{title}必须匹配 {pattern}",uppercase:"{title}必须全大写",lowercase:"{title}必须全小写",positive:"{title}不是正数",negative:"{title}不是负数",equal:"{title}必须等于 {equal}",min:"{title}必须大于等于 {min}",max:"{title}必须小于等于 {max}",enum:"{title}必须是 {enum} 之一",hasKeys:"{title}必须包含 {hasKeys} 字段",minLen:"{title}长度必须大于 {minLen}",maxLen:"{title}长度必须小于 {maxLen}",len:"{title}长度必须为 {len}",integer:"{title}必须为整数",number:"{title}必须为数字"}}};function vt(e,t){let r;return 2===arguments.length?(r=arguments[1],t=r[e]):r=arguments[2],{id:t,prop:r}}function yt(){return vt("name",...arguments)}let bt=1;const _t={},xt=Symbol("defValue");const $t={type:(e,t)=>Object.prototype.toString.call(e)==="[object "+t+"]",Undef:e=>null==e,Element:e=>"object"==typeof e&&null!==e&&1===e.nodeType&&!$t.Object(e),trueArray:e=>Array.isArray(e)&&e.length>0,Function(e){const t=this.getType(e);return"Function"===t||"AsyncFunction"===t},getType(e){const t=Object.prototype.toString.call(e);return/^\[object (.*)\]$/.exec(t)[1]},empty:e=>null==e||(!(!Array.isArray(e)||!Array.isArray(e)||e.length)||"string"==typeof e&&!e)};function wt(e,t,r){e[t]=r}function kt(e,t={},r){let n=!1;for(let i in t)if(Object.prototype.hasOwnProperty.call(t,i)){let o=t[i];if((n=Array.isArray(o))||$t.Object(o)){let t=void 0===e[i];if(n)n=!1,t&&wt(e,i,[]);else if(o._clone&&void 0!==r){if(!r){wt(e,i,o._clone());continue}o=o.getRule(),t&&wt(e,i,{})}else t&&wt(e,i,{});e[i]=kt(e[i],o,r)}else wt(e,i,o),$t.Undef(o)||($t.Undef(o.__json)||(e[i].__json=o.__json),$t.Undef(o.__origin)||(e[i].__origin=o.__origin))}return void 0!==r&&Array.isArray(e)?e.filter(e=>!e||!e.__ctrl):e}["Date","Object","String","Boolean","Array","Number"].forEach(e=>{$t[e]=function(t){return $t.type(t,e)}});const Ct=Object.assign||function(e){for(let t,r=1;r<arguments.length;r++)for(let n in t=arguments[r],t)Object.prototype.hasOwnProperty.call(t,n)&&wt(e,n,t[n]);return e};function St(e,t){console.error(function(e,t,r){return`[form-create ${e}]: ${t}`+(r?"\n\nrule: "+JSON.stringify(r.getRule?r.getRule():r):"")}("err",e,t))}const Vt="[[FORM-CREATE-PREFIX-",Ft="-FORM-CREATE-SUFFIX]]";function Dt(e){return new Function("return "+e)()}let Ot=0;e.$del=function(e,t){delete e[t]},e.$set=wt,e.copy=function(e){return"object"!=typeof e||null===e?e:e instanceof Array?[...e]:{...e}},e.debounce=function(e,t){var r=null;return function(...n){null!==r&&clearTimeout(r),r=setTimeout(()=>e.call(this,...n),t)}},e.deepCopy=function(e){return kt({},{value:e}).value},e.deepExtend=kt,e.deepExtendArgs=function(e,...t){return t.forEach(t=>{e=kt(e,t)}),e},e.deepSet=function(e,t,r){let n,i=e;return(t||"").split(".").forEach(e=>{n&&(i[n]&&"object"==typeof i[n]||(i[n]={}),i=i[n]),n=e}),i[n]=r,i},e.extend=function(){return Ct.apply(this,arguments)},e.formCreate=function e(t){const i={[rt.name]:rt},o={},u={},c={},d={},p=[],h=[],f=[t.extendApi],m={...st},g=Le();let v={global:{}};const b=!0===t.isMobile,_=r.reactive({$mobile:b}),x=function(){const e={};function t(e){this.vm=e.vm,this.handle=e}return O.default(t.prototype,{make(e,t,r){return nt(t,this.h(e,Ve(t),r))},makeComponent(e,t,n){try{return nt(t,r.createVNode(e,Ve(t),n))}catch(e){return console.error(e),r.createVNode("")}},h(e,t,n){const i=(this.vm||r.getCurrentInstance()).appContext.config.isNativeTag(e),o=this.handle.fc.prop.components[e];!o&&i&&delete t.formCreateInject;try{return r.createVNode(o||(i?e:r.resolveComponent(e)),t,n)}catch(e){return console.error(e),r.createVNode("")}},aliasMap:e}),O.default(t,{aliasMap:e,alias(t,r){e[t]=r},use(r){Object.keys(r).forEach(n=>{const i=A.default(n),o=T.default(n).toLocaleLowerCase(),a=r[n];t.alias(n,a),[n,i,o].forEach(r=>{t.prototype[r]=function(t,i){return this.make(e[n]||r,t,i)}})})}}),t}(),$={},w={};function k(e){const t=_t[e];return Array.isArray(t)?t.map(e=>e.api()):t?t.api():void 0}function C(e){p.push(e)}function V(){const e=yt(...arguments);e.id&&e.prop&&(u[e.id]=e.prop)}function F(){const e=yt(...arguments);e.id&&e.prop&&(m[e.id]=S.default.Function(e.prop)?e.prop:{...e.prop,name:e.id})}function D(e){x.use(e)}function R(e){if(0===arguments.length)return Ze;if("string"==typeof e&&1===arguments.length)return o[P.default(e)];const t=yt(...arguments);if(!t.id||!t.prop)return Ze;const r=P.default(t.id),n=t.prop,i=!0===n.merge?o[r]:void 0;o[r]=Fe(n,i||Ze),g[r]=Pe(r),n.maker&&O.default(g,n.maker)}function j(e,t){let r;if(S.default.String(e)){if(r=e,void 0===t)return i[r]}else r=e.displayName||e.name,t=e;if(!r||!t)return;const n=P.default(r);i[r]=t,i[n]=t,delete x.aliasMap[r],delete x.aliasMap[n],delete o[r],delete o[n],t.formCreateParser&&R(r,t.formCreateParser)}function I(){return Ae(ee,i,u)}function L(){return rt}function q(e,t){return S.default.Function(e.install)?e.install(M,t):S.default.Function(e)&&e(M,t),this}function M(e,t){let n=function(e,t){const n=I();return r.createApp({data:()=>r.reactive({rule:e,option:t}),render(){return r.h(n,{ref:"fc",...this.$data})}})}(e,t||{});p.forEach(e=>{Ce(()=>e(M,n))});const i=document.createElement("div");((null==t?void 0:t.el)||document.body).appendChild(i);return n.mount(i).$refs.fc.fapi}function U(r){let n={...t};return r?n.inherit={components:i,parsers:o,directives:u,modelFields:c,providers:m,useApps:p,maker:g,formulas:$,loadData:_}:delete n.inherit,e(n)}function J(e,t){c[e]=t}function G(e,t){$[e]=t}function z(e,t){const r=d[e]||{},n=r.parsers||{};t.parsers&&Object.keys(t.parsers).forEach(e=>{n[e]=Fe(t.parsers[e],Ze)}),t.name=e,d[e]={...r,...t,parsers:n}}function H(e){e&&Object.keys(_t).forEach(t=>{(Array.isArray(_t[t])?_t[t]:[_t[t]]).forEach(t=>{t.bus.$emit("$loadData."+e)})})}function W(e,t){l.deepSet(_,e,t),H(e)}function K(e,t){const r=(...e)=>Ce(()=>t(...e));r._driver=!0,W(e,r)}function X(e,t){const r=(e||"").split(".");e=r.shift();const i=r.join(".");if(n.hasProperty(_,e)||(_[e]=xt),_[e]!==xt){let n=_[e];return n&&n._driver?n=n(i):r.length&&(n=Re(n,r)),null==n||""===n?t:n}return t}function Y(e){f.push(e)}function Z(e){delete _[e],H(e)}function Q(e,t){h.push({name:e,callback:t})}function ee(e){O.default(this,{id:bt++,create:M,vm:e,manager:it(t.manager),parsers:o,providers:m,modelFields:c,formulas:$,isMobile:b,rules:e.props.rule,name:e.props.name||N.default(),inFor:e.props.inFor,prop:{components:i,directives:u},get:null,drivers:d,renderDriver:null,refreshData:H,loadData:_,CreateNode:x,bus:new B.default,unwatch:[],options:r.ref({}),extendApiFn:f,fetchCache:new WeakMap,tmpData:r.reactive({})}),h.forEach(e=>{this.bus.$on(e.name,e.callback)}),r.nextTick(()=>{r.watch(this.options,()=>{this.$handle.$manager.updateOptions(this.options.value),this.api().refresh()},{deep:!0})}),O.default(e.appContext.components,i),O.default(e.appContext.directives,u),this.$handle=new tt(this),this.name&&(this.inFor?(_t[this.name]||(_t[this.name]=[]),_t[this.name].push(this)):_t[this.name]=this)}function te(e){O.default(e,{version:t.version,ui:t.ui,isMobile:b,extendApi:Y,getData:X,setDataDriver:K,setData:W,removeData:Z,refreshData:H,maker:g,component:j,directive:V,setModelField:J,setFormula:G,setDriver:z,register:F,$vnode:L,parser:R,use:q,factory:U,componentAlias:D,copyRule:be,copyRules:_e,mergeRule:xe,fetch:Me,$form:I,parseFn:y.parseFn,parseJson:y.parseJson,toJson:y.toJson,useApp:C,getApi:k,on:Q})}var re;if(function(e){const t=e.key||[],r=e.array||[],n=e.normal||[];fe.push(...t),me.push(...r),ge.push(...n),Te([...t,...r,...n])}(t.attrs||{}),Fe(M,w),ee.isMobile=b,O.default(ee.prototype,{init(){this.isSub()&&this.unwatch.push(r.watch(()=>this.vm.setupState.parent.setupState.fc.options.value,()=>{this.initOptions(),this.$handle.api.refresh()},{deep:!0,flush:"sync"})),this.vm.props.driver&&(this.renderDriver="object"==typeof this.vm.props.driver?this.vm.props.driver:this.drivers[this.vm.props.driver]),!this.renderDriver&&this.vm.setupState.parent&&(this.renderDriver=this.vm.setupState.parent.setupState.fc.renderDriver),this.renderDriver||(this.renderDriver=this.drivers.default),this.initOptions(),this.$handle.init()},targetFormDriver(e,...t){if(this.bus.$emit(e,...t),this.renderDriver&&this.renderDriver[e])return Ce(()=>this.renderDriver[e](...t))},t(e,t,r){let n=r?r("$t."+e):this.globalLanguageDriver(e);return null==n&&(n=""),n&&t&&Object.keys(t).forEach(e=>{const r=new RegExp(`{${e}}`,"g");n=n.replace(r,t[e])}),n},globalDataDriver(e){let t=e.split(".");const r=t.shift(),n=this.options.value.globalData&&this.options.value.globalData[r];if(n){if("static"===n.type)return Re(n.data,t);{let e;const i=this.fetchCache.get(n);if(i){if(i.status&&(e=Re(i.data,t)),!i.loading)return e;i.loading=!1,this.fetchCache.set(n,i)}else this.fetchCache.set(n,{status:!1});const o=E.default(()=>{u();const e=this.fetchCache.get(n);this.options.value.globalData&&-1!==Object.values(this.options.value.globalData).indexOf(n)?(e&&(e.loading=!0,this.fetchCache.set(n,e)),this.bus.$emit("$loadData.$globalData."+r)):this.fetchCache.delete(n)},n.wait||600),a=e=>{this.fetchCache.set(n,{status:!0,data:e}),this.bus.$emit("$loadData.$globalData."+r)},l=(e,t)=>{if(t&&!1===n.watch)return u();if(t)return void o();const r=this.$handle.loadFetchVar(s.copy(n),e);r.targetRule=this.targetRule,this.$handle.api.fetch(r).then(e=>{a(e)}).catch(e=>{a(null)})},u=this.watchLoadData(l);return!1===n.watch&&u(),this.unwatch.push(u),e}}},getLocale(){let e=this.vm.setupState.top.props.locale;return e&&"object"==typeof e?e.name:"string"==typeof e?e:"zh-cn"},globalLanguageDriver(e){let t=this.vm.setupState.top.props.t,r=this.vm.setupState.top.props.locale,n=void 0;if(t&&(n=Ce(()=>t(e))),null==n&&r&&"object"==typeof r&&(n=Re(r,e)),null==n){const t=this.options.value.language||{},r=this.getLocale();n=Re(t[r]||{},e),null==n&&(n=Re(gt[r]||{},e))}return n},globalVarDriver(e){let t=e.split(".");const r=t.shift(),n=this.options.value.globalVariable&&this.options.value.globalVariable[r];if(n){const e=S.default.Function(n)?n:y.parseFn(n.handle);if(e){return Re(e((...e)=>this.$handle.api.getData(...e),this.$handle.api),t)}}},setData(e,t,r){r?W(e,t):(l.deepSet(this.vm.setupState.top.setupState.fc.tmpData,e,t),this.bus.$emit("$loadData."+e))},getLoadData(e,t){let r=null;if(null!=e){let t=e.split(".");const n=t.shift();if(r=Re(this.vm.setupState.top.setupState.fc.tmpData,e),null!=r)return r;if("$topForm"===n)r=this.$handle.api.top.formData(!0);else if("$scopeForm"===n)r=this.$handle.api.scope.formData(!0);else if("$form"===n)r=this.$handle.api.formData(!0);else if("$options"===n)r=this.options.value;else if("$globalData"===n)r=this.globalDataDriver(t.join(".")),t=[];else if("$var"===n)r=this.globalVarDriver(t.join(".")),t=[];else if("$locale"===n)r=this.getLocale(),t=[];else if("$t"===n)r=this.globalLanguageDriver(t.join(".")),t=[];else{if("$preview"===n)return this.$handle.preview;r=X(e),t=[]}r&&t.length&&(r=Re(r,t))}return null==r||""===r?t:r},watchLoadData(e,t){let n={};const i=t=>{this.get||(this.get=o),Ce(()=>{e(o,t)}),this.get===o&&(this.get=void 0)},o=(e,o)=>{let a;if("object"==typeof e&&(a=e.getValue,e=e.id),n[e])return n[e].val;const s=r.computed(()=>a?a():this.getLoadData(e,o)),l=e.split("."),u=l.shift(),c=l.shift()||"",d=E.default(()=>{const t=a?a():this.getLoadData(e,o);n[e]&&((t instanceof Function||S.default.Object(t)||Array.isArray(t))&&t===n[e].val||JSON.stringify(t)!==JSON.stringify(n[e].val))&&(n[e].val=t,i(!0))},t||0),p=r.watch(s,e=>{d()});return this.bus.$on("$loadData."+u,d),c&&this.bus.$on("$loadData."+u+"."+c,d),n[e]={fn:()=>{this.bus.$off("$loadData."+u,d),c&&this.bus.$off("$loadData."+u+"."+c,d),p()},val:s.value},s.value};i(!1);const a=()=>{Object.keys(n).forEach(e=>n[e].fn()),n={}};return this.unwatch.push(a),a},isSub(){return this.vm.setupState.parent&&this.vm.props.extendOption},initOptions(){this.options.value={};let e={formData:{},submitBtn:{},resetBtn:{},globalEvent:{},globalData:{},...a.deepCopy(v)};const t=this.isSub();t&&(e=this.mergeOptions(e,this.vm.setupState.parent.setupState.fc.options.value||{},!0)),e=this.mergeOptions(e,this.vm.props.option);const r=this.api();this.targetFormDriver("initOptions",e,{api:r,isSubForm:t}),this.updateOptions(e)},mergeOptions(e,t,r){return t={...t||{}},r&&["page","onSubmit","onReset","onCreated","onChange","onMounted","mounted","onReload","reload","formData","el","globalClass","style"].forEach(e=>{delete t[e]}),t.global&&(e.global=function(e,t){return e?(Object.keys(t||{}).forEach(r=>{t[r]&&(e[r]=xe(e[r]||{},t[r]))}),e):t}(e.global,t.global),delete t.global),this.$handle.$manager.mergeOptions([t],e),e},updateOptions(e){this.options.value=this.mergeOptions(this.options.value,e),this.$handle.$manager.updateOptions(this.options.value),this.bus.$emit("$loadData.$options")},api(){return this.$handle.api},render(){return this.$handle.render()},mounted(){this.$handle.mounted()},unmount(){if(this.name)if(this.inFor){const e=_t[this.name].indexOf(this);_t[this.name].splice(e,1)}else delete _t[this.name];h.forEach(e=>{this.bus.$off(e.name,e.callback)}),this.tmpData={},this.unwatch.forEach(e=>e()),this.unwatch=[],this.$handle.reloadRule([])},updated(){this.$handle.bindNextTick(()=>this.bus.$emit("next-tick",this.$handle.api))}}),te(w),re=w,O.default(re,{create:M,install(e,r){v={...v,...r||{}};const n=`_installedFormCreate${b?"Mobile":""}_${t.ui}`;if(!0===e[n])return;e[n]=!0;const i=function(e,t={}){return M(e,t)};te(i),e.config.globalProperties.$formCreate=i;const o=I();e.component(o.name,o),p.forEach(t=>{Ce(()=>t(re,e))})}}),K("$cookie",ht),K("$localStorage",ft),K("$sessionStorage",mt),x.use({fragment:"fcFragment"}),t.install&&M.use(t),C((e,t)=>{t.mixin({props:["formCreateInject"]})}),R(lt),t.inherit){const e=t.inherit;e.components&&O.default(i,e.components),e.parsers&&O.default(o,e.parsers),e.directives&&O.default(u,e.directives),e.modelFields&&O.default(c,e.modelFields),e.providers&&O.default(m,e.providers),e.useApps&&O.default(p,e.useApps),e.maker&&O.default(g,e.maker),e.loadData&&O.default(_,e.loadData),e.formulas&&O.default($,e.formulas)}const ne=I();return Fe(ne,w),Object.defineProperties(ne,{fetch:{get:()=>w.fetch,set(e){w.fetch=e}}}),ne.util=w,ne},e.formCreateMobile=he,e.getSlot=function(e,t){return Object.keys(e).reduce((r,n)=>(t&&-1!==t.indexOf(n)||(r[n]=e[n]),r),{})},e.is=$t,e.parseJson=function(e,t){return JSON.parse(e,(function(e,r){return $t.Undef(r)||!r.indexOf?r:function(e,t){if(e&&$t.String(e)&&e.length>4){let r=e.trim(),n=!1;try{if(r.indexOf(Ft)>0&&0===r.indexOf(Vt))r=r.replace(Ft,"").replace(Vt,""),n=!0;else if(0===r.indexOf("$FN:"))r=r.substring(4),n=!0;else if(0===r.indexOf("$EXEC:"))r=r.substring(6),n=!0;else{if(0===r.indexOf("$GLOBAL:")){const t=r.substring(8);return r=function(...e){const r=e[0].api.getGlobalEvent(t);if(r)return r.call(this,...e)},r.__json=e,r.__inject=!0,r}if(0===r.indexOf("$FNX:"))return r=Dt("function($inject){\n"+r.substring(5)+"\n}"),r.__json=e,r.__inject=!0,r;(t||0!==r.indexOf("function ")||"function "===r)&&(t||0!==r.indexOf("function(")||"function("===r)||(n=!0)}if(!n)return e;let i;try{i=Dt(r)}catch(e){i=Dt("function "+r)}return i.__json=e,i}catch(e){return void St(`解析失败:${r}\n\nerr: ${e}`)}}return e}(r,t)}))},e.toArray=function(e){return Array.isArray(e)?e:[null,void 0,""].indexOf(e)>-1?[]:[e]},e.toDate=function(e){if($t.Date(e))return e;{let t=new Date(e);return"Invalid Date"===t.toString()?e:t}},e.toJson=function(e,t){return JSON.stringify(kt(Array.isArray(e)?[]:{},e,!0),(function(e,t){if(!t||!0!==t._isVue){if("function"!=typeof t)return t;if(t.__json)return t.__json;if(t.__origin&&(t=t.__origin),!t.__emit)return Vt+t+Ft}}),t)},e.toLine=function(e){let t=e.replace(/([A-Z])/g,"-$1").toLocaleLowerCase();return 0===t.indexOf("-")&&(t=t.substr(1)),t},e.toPromise=function(e){return function(e){return e&&"object"==typeof e&&"function"==typeof e.then}(e)?e:Promise.resolve(e)},e.toString=function(e){return null==e?"":"object"==typeof e?JSON.stringify(e,null,2):String(e)},e.uniqueId=function(){const e=370+ ++Ot;return"F"+Math.random().toString(36).substr(3,3)+Number(""+Date.now()).toString(36)+e.toString(36)+"c"},Object.defineProperty(e,"__esModule",{value:!0})}));
8
8
  //# sourceMappingURL=index.min.js.map