@robot-admin/naive-ui-components 0.24.2 → 0.24.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 (102) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/README.md +4 -2
  3. package/README_EN.md +4 -2
  4. package/SECURITY.md +12 -2
  5. package/dist/C_AntV2.cjs +1 -1
  6. package/dist/C_AntV2.js +3 -3
  7. package/dist/C_Form.base.css +40 -40
  8. package/dist/C_Form.css +40 -40
  9. package/dist/C_Map2.cjs +1 -1
  10. package/dist/C_Map2.js +1 -1
  11. package/dist/C_Table.base.css +150 -150
  12. package/dist/C_Table.css +110 -110
  13. package/dist/C_Table2.cjs +2 -2
  14. package/dist/C_Table2.js +2 -2
  15. package/dist/C_Upload2.cjs +1 -1
  16. package/dist/C_Upload2.js +1 -1
  17. package/dist/C_VideoPlayer.css +30 -20
  18. package/dist/C_VideoPlayer2.cjs +2 -2
  19. package/dist/C_VideoPlayer2.js +3 -3
  20. package/dist/Steps.cjs +1 -1
  21. package/dist/Steps.js +1 -1
  22. package/dist/Tabs.cjs +1 -1
  23. package/dist/Tabs.js +1 -1
  24. package/dist/constants2.d.cts +3 -3
  25. package/dist/constants2.d.ts +3 -3
  26. package/dist/constants3.d.cts +4 -4
  27. package/dist/constants3.d.ts +4 -4
  28. package/dist/data2.cjs +1 -1
  29. package/dist/data2.d.cts +4 -4
  30. package/dist/data2.d.ts +4 -4
  31. package/dist/data2.js +1 -1
  32. package/dist/helpers.cjs +1 -1
  33. package/dist/helpers.js +1 -1
  34. package/dist/index.cjs +1 -1
  35. package/dist/index.js +1 -1
  36. package/dist/index.vue.d.cts +1 -1
  37. package/dist/index.vue.d.ts +1 -1
  38. package/dist/index10.vue.d.cts +3 -3
  39. package/dist/index10.vue.d.ts +2 -2
  40. package/dist/index11.vue.d.cts +2 -2
  41. package/dist/index15.vue.d.ts +5 -5
  42. package/dist/index16.vue.d.cts +5 -5
  43. package/dist/index16.vue.d.ts +1 -1
  44. package/dist/index17.vue.d.cts +1 -1
  45. package/dist/index17.vue.d.ts +2 -2
  46. package/dist/index18.vue.d.cts +2 -2
  47. package/dist/index18.vue.d.ts +1 -1
  48. package/dist/index19.vue.d.cts +1 -1
  49. package/dist/index19.vue.d.ts +1 -1
  50. package/dist/index2.vue.d.cts +1 -1
  51. package/dist/index2.vue.d.ts +1 -1
  52. package/dist/index20.vue.d.cts +1 -1
  53. package/dist/index22.vue.d.ts +1 -1
  54. package/dist/index23.vue.d.cts +1 -1
  55. package/dist/index23.vue.d.ts +2 -2
  56. package/dist/index24.vue.d.cts +1 -1
  57. package/dist/index24.vue.d.ts +1 -1
  58. package/dist/index26.vue.d.cts +2 -2
  59. package/dist/index26.vue.d.ts +2 -2
  60. package/dist/index29.vue.d.cts +2 -2
  61. package/dist/index29.vue.d.ts +2 -2
  62. package/dist/index3.vue.d.cts +3 -3
  63. package/dist/index3.vue.d.ts +3 -3
  64. package/dist/index5.vue.d.cts +2 -2
  65. package/dist/index7.vue.d.ts +2 -2
  66. package/dist/index8.vue.d.cts +2 -2
  67. package/dist/index9.vue.d.ts +3 -3
  68. package/dist/mapUtils.d.cts +1 -1
  69. package/dist/mapUtils.d.ts +1 -1
  70. package/dist/presets.d.cts +1 -1
  71. package/dist/presets.d.ts +1 -1
  72. package/dist/serializeSearch.cjs +1 -1
  73. package/dist/serializeSearch.js +1 -1
  74. package/dist/style.css +180 -170
  75. package/dist/useCalendarEvents.d.cts +1 -1
  76. package/dist/useCalendarEvents.d.ts +1 -1
  77. package/dist/useCollapsePanel.d.cts +3 -3
  78. package/dist/useCollapsePanel.d.ts +3 -3
  79. package/dist/useCropperCore.d.cts +6 -6
  80. package/dist/useCropperCore.d.ts +6 -6
  81. package/dist/useDictionary.cjs +1 -1
  82. package/dist/useDictionary.js +1 -1
  83. package/dist/useDynamicFormState.d.cts +10 -10
  84. package/dist/useDynamicFormState.d.ts +10 -10
  85. package/dist/useEdgeInteraction.d.cts +1 -1
  86. package/dist/useEdgeInteraction.d.ts +1 -1
  87. package/dist/useFullscreen.d.cts +2 -2
  88. package/dist/useFullscreen.d.ts +2 -2
  89. package/dist/useQRCode.d.cts +3 -3
  90. package/dist/useQRCode.d.ts +3 -3
  91. package/dist/useSignatureHistory.d.cts +3 -3
  92. package/dist/useSignatureHistory.d.ts +3 -3
  93. package/dist/useSplitResize.d.cts +5 -5
  94. package/dist/useSplitResize.d.ts +5 -5
  95. package/dist/useWorkflowValidation.d.cts +32 -32
  96. package/dist/useWorkflowValidation.d.ts +32 -32
  97. package/dist/verification.d.cts +4 -4
  98. package/dist/verification.d.ts +4 -4
  99. package/docs/engineering.en.md +1 -1
  100. package/docs/engineering.md +1 -1
  101. package/docs/stability-review-20261031.md +46 -0
  102. package/package.json +4 -2
package/dist/Steps.cjs CHANGED
@@ -1 +1 @@
1
- require(`./chunk.cjs`);const e=require(`./C_Icon2.cjs`),t=require(`./export-helper.cjs`);let n=require(`vue`),r=require(`naive-ui`);const i={class:`c-form-steps`},a={key:0,class:`single-panel`},o={key:0,class:`step-header`},s={class:`step-title`},c={key:0,class:`step-description`},l={class:`step-form-items`},u={class:`steps-actions`},d=(0,n.defineComponent)({__name:`index`,props:{controlSize:{},formItems:{},layoutConfig:{default:()=>({})},options:{default:()=>[]},beforeStepChange:{},validateStep:{},submitting:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1}},emits:[`step-change`,`step-before-change`,`step-validate`],setup(t,{expose:d,emit:f}){let p=t,m=f,h=(0,n.ref)(0),g=(0,n.ref)(!1),_=!1,v=(0,n.reactive)({}),y=(0,n.computed)(()=>{let e=p.layoutConfig?.steps||{};return{steps:e.steps||[],vertical:e.vertical||!1,size:e.size||`medium`,showStepHeader:e.showStepHeader!==!1,validateBeforeNext:e.validateBeforeNext||!1,prevButtonText:e.prevButtonText||`上一步`,nextButtonText:e.nextButtonText||`下一步`,defaultStep:e.defaultStep||0}}),b=(0,n.computed)(()=>y.value.steps.length>0),x=(0,n.computed)(()=>{if(!b.value)return[];let e=new Map;return y.value.steps.forEach(t=>{e.set(t.key,[])}),p.formItems.forEach((t,n)=>{let r=(p.options?.[n])?.layout?.step||y.value.steps[0]?.key||`default`;e.has(r)||e.set(r,[]),e.get(r).push(t)}),y.value.steps.map(t=>({config:t,items:e.get(t.key)||[]})).filter(e=>e.items.length>0)}),S=(0,n.computed)(()=>{for(let e=0;e<=h.value;e++)if(v[e]===!1)return`error`;return`process`}),C=(0,n.computed)(()=>h.value===0),w=(0,n.computed)(()=>h.value===x.value.length-1),T=(e,t)=>{if(e.key!=null)return String(e.key);let n=e.props;return n?.path?n.path:`step-item-${t}`},E=async()=>{let e=x.value[h.value]?.config.key;if(!e||_)return!1;try{let t=p.validateStep?await p.validateStep(h.value,e):!0;return _||x.value[h.value]?.config.key!==e?!1:(m(`step-validate`,h.value),v[h.value]=t,t)}catch{return v[h.value]=!1,!1}},D=(e,t)=>_||x.value[h.value]?.config.key!==e||!x.value.some(e=>e.config.key===t&&!e.config.disabled),O=async(e,t=!1,n=()=>!0)=>{if(_||g.value||p.submitting||p.disabled||!n()||e<0||e>=x.value.length)return!1;if(e===h.value)return!0;let r=x.value[h.value]?.config.key,i=x.value[e].config.key;if(!r||D(r,i))return!1;try{return g.value=!0,t&&y.value.validateBeforeNext&&!await E()||D(r,i)||!n()||await p.beforeStepChange?.(h.value,e)===!1||D(r,i)||!n()?!1:(m(`step-before-change`,h.value,e),h.value=x.value.findIndex(e=>e.config.key===i),m(`step-change`,h.value,x.value[h.value].config.key),!0)}catch{return!1}finally{g.value=!1}},k=async()=>{await O(h.value+1,!0)},A=()=>{O(h.value-1)},j=async e=>{x.value[e]?.config.disabled||await O(e,e>h.value)},M=()=>{if(!b.value||x.value.length===0)return;let{defaultStep:e}=y.value;h.value=e>=0&&e<x.value.length&&!x.value[e]?.config.disabled?e:0};return(0,n.watch)((0,n.computed)(()=>y.value.steps.map(e=>e.key).join(`,`)),()=>{M()}),(0,n.watch)(()=>x.value.map(e=>e.config.key),(e,t)=>{let n=t[h.value],r=e.indexOf(n);h.value=r>=0?r:Math.max(0,Math.min(h.value,e.length-1)),Object.keys(v).forEach(e=>{delete v[Number(e)]})}),(0,n.onMounted)(()=>{M()}),(0,n.onScopeDispose)(()=>{_=!0}),d({revealField:async(e,t=()=>!0)=>{if(!b.value)return t();let n=p.formItems.findIndex(t=>t.props?.path===e);if(n<0)return!1;let r=p.options[n]?.layout?.step||y.value.steps[0]?.key,i=x.value.findIndex(e=>e.config.key===r);return i<0||x.value[i].config.disabled?!1:O(i,i>h.value,t)},nextStep:k,previousStep:A,goToStep:j,validateCurrentStep:E,currentStep:(0,n.readonly)(h),totalSteps:(0,n.computed)(()=>x.value.length)}),(d,f)=>{let p=r.NStep,m=r.NSteps,_=r.NCard,v=r.NButton,E=r.NSpace;return(0,n.openBlock)(),(0,n.createElementBlock)(`div`,i,[(0,n.createCommentVNode)(` 无步骤配置时的单一面板模式 `),b.value?((0,n.openBlock)(),(0,n.createElementBlock)(n.Fragment,{key:1},[(0,n.createCommentVNode)(` 有步骤配置时的分步骤模式 `),(0,n.createElementVNode)(`div`,{class:(0,n.normalizeClass)([`steps-container`,{"is-vertical":y.value.vertical}])},[(0,n.createCommentVNode)(` 步骤指示器 `),(0,n.createVNode)(m,{current:h.value+1,status:S.value,size:y.value.size,vertical:y.value.vertical,class:`steps-indicator`},{default:(0,n.withCtx)(()=>[((0,n.openBlock)(!0),(0,n.createElementBlock)(n.Fragment,null,(0,n.renderList)(x.value,e=>((0,n.openBlock)(),(0,n.createBlock)(p,{key:e.config.key,title:e.config.title,description:e.config.description,disabled:e.config.disabled||g.value||t.submitting||t.disabled},null,8,[`title`,`description`,`disabled`]))),128))]),_:1},8,[`current`,`status`,`size`,`vertical`]),(0,n.createCommentVNode)(` 步骤内容区域 `),(0,n.createVNode)(_,{class:`steps-content`,bordered:!1},{default:(0,n.withCtx)(()=>[((0,n.openBlock)(!0),(0,n.createElementBlock)(n.Fragment,null,(0,n.renderList)(x.value,(e,t)=>(0,n.withDirectives)(((0,n.openBlock)(),(0,n.createElementBlock)(`div`,{key:e.config.key,class:`step-panel`},[(0,n.createCommentVNode)(` 步骤标题和描述 `),y.value.showStepHeader?((0,n.openBlock)(),(0,n.createElementBlock)(`div`,o,[(0,n.createElementVNode)(`h3`,s,(0,n.toDisplayString)(e.config.title),1),e.config.description?((0,n.openBlock)(),(0,n.createElementBlock)(`p`,c,(0,n.toDisplayString)(e.config.description),1)):(0,n.createCommentVNode)(`v-if`,!0)])):(0,n.createCommentVNode)(`v-if`,!0),(0,n.createCommentVNode)(` 步骤内的表单项 `),(0,n.createElementVNode)(`div`,l,[((0,n.openBlock)(!0),(0,n.createElementBlock)(n.Fragment,null,(0,n.renderList)(e.items,(e,t)=>((0,n.openBlock)(),(0,n.createBlock)((0,n.resolveDynamicComponent)(e),{key:T(e,t)}))),128))])])),[[n.vShow,h.value===t]])),128))]),_:1}),(0,n.createCommentVNode)(` 步骤操作按钮 `),(0,n.createElementVNode)(`div`,u,[(0,n.createVNode)(E,{justify:`space-between`},{default:(0,n.withCtx)(()=>[h.value>0?((0,n.openBlock)(),(0,n.createBlock)(v,{key:0,size:t.controlSize,disabled:g.value||t.submitting||t.disabled,onClick:A},{default:(0,n.withCtx)(()=>[(0,n.createVNode)(e.t,{name:`mdi:chevron-left-first`,size:16,style:{"margin-right":`4px`}}),(0,n.createTextVNode)(` `+(0,n.toDisplayString)(y.value.prevButtonText),1)]),_:1},8,[`size`,`disabled`])):(0,n.createCommentVNode)(`v-if`,!0),f[0]||=(0,n.createElementVNode)(`div`,null,null,-1),(0,n.createVNode)(E,null,{default:(0,n.withCtx)(()=>[h.value<x.value.length-1?((0,n.openBlock)(),(0,n.createBlock)(v,{key:0,size:t.controlSize,type:`primary`,loading:g.value,disabled:t.submitting||t.disabled,onClick:k},{default:(0,n.withCtx)(()=>[(0,n.createTextVNode)((0,n.toDisplayString)(y.value.nextButtonText)+` `,1),(0,n.createVNode)(e.t,{name:`mdi:chevron-right-last`,size:16,style:{"margin-left":`4px`}})]),_:1},8,[`size`,`loading`,`disabled`])):(0,n.createCommentVNode)(`v-if`,!0),(0,n.renderSlot)(d.$slots,`step-actions`,{currentStep:h.value,totalSteps:x.value.length,isFirstStep:C.value,isLastStep:w.value,nextStep:k,previousStep:A,goToStep:j},void 0,!0)]),_:3})]),_:3})])],2)],2112)):((0,n.openBlock)(),(0,n.createElementBlock)(`div`,a,[((0,n.openBlock)(!0),(0,n.createElementBlock)(n.Fragment,null,(0,n.renderList)(t.formItems,(e,t)=>((0,n.openBlock)(),(0,n.createBlock)((0,n.resolveDynamicComponent)(e),{key:T(e,t)}))),128))]))])}}});var f=t.t(d,[[`__scopeId`,`data-v-52fc924a`]]);exports.default=f;
1
+ require(`./chunk.cjs`);const e=require(`./C_Icon2.cjs`),t=require(`./export-helper.cjs`);let n=require(`vue`),r=require(`naive-ui`);const i={class:`c-form-steps`},a={key:0,class:`single-panel`},o={key:0,class:`step-header`},s={class:`step-title`},c={key:0,class:`step-description`},l={class:`step-form-items`},u={class:`steps-actions`},d=(0,n.defineComponent)({__name:`index`,props:{controlSize:{},formItems:{},layoutConfig:{default:()=>({})},options:{default:()=>[]},beforeStepChange:{},validateStep:{},submitting:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1}},emits:[`step-change`,`step-before-change`,`step-validate`],setup(t,{expose:d,emit:f}){let p=t,m=f,h=(0,n.ref)(0),g=(0,n.ref)(!1),_=!1,v=0,y=(0,n.reactive)({}),b=(0,n.computed)(()=>{let e=p.layoutConfig?.steps||{};return{steps:e.steps||[],vertical:e.vertical||!1,size:e.size||`medium`,showStepHeader:e.showStepHeader!==!1,validateBeforeNext:e.validateBeforeNext||!1,prevButtonText:e.prevButtonText||`上一步`,nextButtonText:e.nextButtonText||`下一步`,defaultStep:e.defaultStep||0}}),x=(0,n.computed)(()=>b.value.steps.length>0),S=(0,n.computed)(()=>{if(!x.value)return[];let e=new Map;return b.value.steps.forEach(t=>{e.set(t.key,[])}),p.formItems.forEach((t,n)=>{let r=(p.options?.[n])?.layout?.step||b.value.steps[0]?.key||`default`;e.has(r)||e.set(r,[]),e.get(r).push(t)}),b.value.steps.map(t=>({config:t,items:e.get(t.key)||[]})).filter(e=>e.items.length>0)}),C=(0,n.computed)(()=>{for(let e=0;e<=h.value;e++)if(y[e]===!1)return`error`;return`process`}),w=(0,n.computed)(()=>h.value===0),T=(0,n.computed)(()=>h.value===S.value.length-1),E=(e,t)=>{if(e.key!=null)return String(e.key);let n=e.props;return n?.path?n.path:`step-item-${t}`},D=async()=>{let e=S.value[h.value]?.config.key,t=++v;if(!e||_)return!1;let n=()=>!_&&t===v&&S.value[h.value]?.config.key===e;try{let t=p.validateStep?await p.validateStep(h.value,e):!0;return n()?(m(`step-validate`,h.value),y[h.value]=t,t):!1}catch{return n()&&(y[h.value]=!1),!1}},O=(e,t)=>_||S.value[h.value]?.config.key!==e||!S.value.some(e=>e.config.key===t&&!e.config.disabled),k=async(e,t=!1,n=()=>!0)=>{if(_||g.value||p.submitting||p.disabled||!n()||e<0||e>=S.value.length)return!1;if(e===h.value)return!0;let r=S.value[h.value]?.config.key,i=S.value[e].config.key;if(!r||O(r,i))return!1;try{return g.value=!0,t&&b.value.validateBeforeNext&&!await D()||O(r,i)||!n()||await p.beforeStepChange?.(h.value,e)===!1||O(r,i)||!n()?!1:(m(`step-before-change`,h.value,e),h.value=S.value.findIndex(e=>e.config.key===i),m(`step-change`,h.value,S.value[h.value].config.key),!0)}catch{return!1}finally{g.value=!1}},A=async()=>{await k(h.value+1,!0)},j=()=>{k(h.value-1)},M=async e=>{S.value[e]?.config.disabled||await k(e,e>h.value)},N=()=>{if(!x.value||S.value.length===0)return;let{defaultStep:e}=b.value;h.value=e>=0&&e<S.value.length&&!S.value[e]?.config.disabled?e:0};return(0,n.watch)((0,n.computed)(()=>b.value.steps.map(e=>e.key).join(`,`)),()=>{N()}),(0,n.watch)(()=>S.value.map(e=>e.config.key),(e,t)=>{let n=t[h.value],r=e.indexOf(n);h.value=r>=0?r:Math.max(0,Math.min(h.value,e.length-1)),Object.keys(y).forEach(e=>{delete y[Number(e)]})}),(0,n.onMounted)(()=>{N()}),(0,n.onScopeDispose)(()=>{_=!0}),(0,n.watch)(()=>S.value[h.value]?.config.key,()=>v++,{flush:`sync`}),d({revealField:async(e,t=()=>!0)=>{if(!x.value)return t();let n=p.formItems.findIndex(t=>t.props?.path===e);if(n<0)return!1;let r=p.options[n]?.layout?.step||b.value.steps[0]?.key,i=S.value.findIndex(e=>e.config.key===r);return i<0||S.value[i].config.disabled?!1:k(i,i>h.value,t)},nextStep:A,previousStep:j,goToStep:M,validateCurrentStep:D,currentStep:(0,n.readonly)(h),totalSteps:(0,n.computed)(()=>S.value.length)}),(d,f)=>{let p=r.NStep,m=r.NSteps,_=r.NCard,v=r.NButton,y=r.NSpace;return(0,n.openBlock)(),(0,n.createElementBlock)(`div`,i,[(0,n.createCommentVNode)(` 无步骤配置时的单一面板模式 `),x.value?((0,n.openBlock)(),(0,n.createElementBlock)(n.Fragment,{key:1},[(0,n.createCommentVNode)(` 有步骤配置时的分步骤模式 `),(0,n.createElementVNode)(`div`,{class:(0,n.normalizeClass)([`steps-container`,{"is-vertical":b.value.vertical}])},[(0,n.createCommentVNode)(` 步骤指示器 `),(0,n.createVNode)(m,{current:h.value+1,status:C.value,size:b.value.size,vertical:b.value.vertical,class:`steps-indicator`},{default:(0,n.withCtx)(()=>[((0,n.openBlock)(!0),(0,n.createElementBlock)(n.Fragment,null,(0,n.renderList)(S.value,e=>((0,n.openBlock)(),(0,n.createBlock)(p,{key:e.config.key,title:e.config.title,description:e.config.description,disabled:e.config.disabled||g.value||t.submitting||t.disabled},null,8,[`title`,`description`,`disabled`]))),128))]),_:1},8,[`current`,`status`,`size`,`vertical`]),(0,n.createCommentVNode)(` 步骤内容区域 `),(0,n.createVNode)(_,{class:`steps-content`,bordered:!1},{default:(0,n.withCtx)(()=>[((0,n.openBlock)(!0),(0,n.createElementBlock)(n.Fragment,null,(0,n.renderList)(S.value,(e,t)=>(0,n.withDirectives)(((0,n.openBlock)(),(0,n.createElementBlock)(`div`,{key:e.config.key,class:`step-panel`},[(0,n.createCommentVNode)(` 步骤标题和描述 `),b.value.showStepHeader?((0,n.openBlock)(),(0,n.createElementBlock)(`div`,o,[(0,n.createElementVNode)(`h3`,s,(0,n.toDisplayString)(e.config.title),1),e.config.description?((0,n.openBlock)(),(0,n.createElementBlock)(`p`,c,(0,n.toDisplayString)(e.config.description),1)):(0,n.createCommentVNode)(`v-if`,!0)])):(0,n.createCommentVNode)(`v-if`,!0),(0,n.createCommentVNode)(` 步骤内的表单项 `),(0,n.createElementVNode)(`div`,l,[((0,n.openBlock)(!0),(0,n.createElementBlock)(n.Fragment,null,(0,n.renderList)(e.items,(e,t)=>((0,n.openBlock)(),(0,n.createBlock)((0,n.resolveDynamicComponent)(e),{key:E(e,t)}))),128))])])),[[n.vShow,h.value===t]])),128))]),_:1}),(0,n.createCommentVNode)(` 步骤操作按钮 `),(0,n.createElementVNode)(`div`,u,[(0,n.createVNode)(y,{justify:`space-between`},{default:(0,n.withCtx)(()=>[h.value>0?((0,n.openBlock)(),(0,n.createBlock)(v,{key:0,size:t.controlSize,disabled:g.value||t.submitting||t.disabled,onClick:j},{default:(0,n.withCtx)(()=>[(0,n.createVNode)(e.t,{name:`mdi:chevron-left-first`,size:16,style:{"margin-right":`4px`}}),(0,n.createTextVNode)(` `+(0,n.toDisplayString)(b.value.prevButtonText),1)]),_:1},8,[`size`,`disabled`])):(0,n.createCommentVNode)(`v-if`,!0),f[0]||=(0,n.createElementVNode)(`div`,null,null,-1),(0,n.createVNode)(y,null,{default:(0,n.withCtx)(()=>[h.value<S.value.length-1?((0,n.openBlock)(),(0,n.createBlock)(v,{key:0,size:t.controlSize,type:`primary`,loading:g.value,disabled:t.submitting||t.disabled,onClick:A},{default:(0,n.withCtx)(()=>[(0,n.createTextVNode)((0,n.toDisplayString)(b.value.nextButtonText)+` `,1),(0,n.createVNode)(e.t,{name:`mdi:chevron-right-last`,size:16,style:{"margin-left":`4px`}})]),_:1},8,[`size`,`loading`,`disabled`])):(0,n.createCommentVNode)(`v-if`,!0),(0,n.renderSlot)(d.$slots,`step-actions`,{currentStep:h.value,totalSteps:S.value.length,isFirstStep:w.value,isLastStep:T.value,nextStep:A,previousStep:j,goToStep:M},void 0,!0)]),_:3})]),_:3})])],2)],2112)):((0,n.openBlock)(),(0,n.createElementBlock)(`div`,a,[((0,n.openBlock)(!0),(0,n.createElementBlock)(n.Fragment,null,(0,n.renderList)(t.formItems,(e,t)=>((0,n.openBlock)(),(0,n.createBlock)((0,n.resolveDynamicComponent)(e),{key:E(e,t)}))),128))]))])}}});var f=t.t(d,[[`__scopeId`,`data-v-c3e3e8d7`]]);exports.default=f;
package/dist/Steps.js CHANGED
@@ -1 +1 @@
1
- import{t as e}from"./C_Icon2.js";import{t}from"./export-helper.js";import{Fragment as n,computed as r,createBlock as i,createCommentVNode as a,createElementBlock as o,createElementVNode as s,createTextVNode as c,createVNode as l,defineComponent as u,normalizeClass as d,onMounted as f,onScopeDispose as p,openBlock as m,reactive as h,readonly as g,ref as _,renderList as v,renderSlot as ee,resolveComponent as y,resolveDynamicComponent as b,toDisplayString as x,vShow as S,watch as C,withCtx as w,withDirectives as T}from"vue";import{NButton as E,NCard as D,NSpace as O,NStep as k,NSteps as A}from"naive-ui";const j={class:`c-form-steps`},M={key:0,class:`single-panel`},N={key:0,class:`step-header`},te={class:`step-title`},ne={key:0,class:`step-description`},re={class:`step-form-items`},ie={class:`steps-actions`};var P=t(u({__name:`index`,props:{controlSize:{},formItems:{},layoutConfig:{default:()=>({})},options:{default:()=>[]},beforeStepChange:{},validateStep:{},submitting:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1}},emits:[`step-change`,`step-before-change`,`step-validate`],setup(t,{expose:u,emit:y}){let P=t,F=y,I=_(0),L=_(!1),R=!1,z=h({}),B=r(()=>{let e=P.layoutConfig?.steps||{};return{steps:e.steps||[],vertical:e.vertical||!1,size:e.size||`medium`,showStepHeader:e.showStepHeader!==!1,validateBeforeNext:e.validateBeforeNext||!1,prevButtonText:e.prevButtonText||`上一步`,nextButtonText:e.nextButtonText||`下一步`,defaultStep:e.defaultStep||0}}),V=r(()=>B.value.steps.length>0),H=r(()=>{if(!V.value)return[];let e=new Map;return B.value.steps.forEach(t=>{e.set(t.key,[])}),P.formItems.forEach((t,n)=>{let r=(P.options?.[n])?.layout?.step||B.value.steps[0]?.key||`default`;e.has(r)||e.set(r,[]),e.get(r).push(t)}),B.value.steps.map(t=>({config:t,items:e.get(t.key)||[]})).filter(e=>e.items.length>0)}),U=r(()=>{for(let e=0;e<=I.value;e++)if(z[e]===!1)return`error`;return`process`}),W=r(()=>I.value===0),G=r(()=>I.value===H.value.length-1),K=(e,t)=>{if(e.key!=null)return String(e.key);let n=e.props;return n?.path?n.path:`step-item-${t}`},q=async()=>{let e=H.value[I.value]?.config.key;if(!e||R)return!1;try{let t=P.validateStep?await P.validateStep(I.value,e):!0;return R||H.value[I.value]?.config.key!==e?!1:(F(`step-validate`,I.value),z[I.value]=t,t)}catch{return z[I.value]=!1,!1}},J=(e,t)=>R||H.value[I.value]?.config.key!==e||!H.value.some(e=>e.config.key===t&&!e.config.disabled),Y=async(e,t=!1,n=()=>!0)=>{if(R||L.value||P.submitting||P.disabled||!n()||e<0||e>=H.value.length)return!1;if(e===I.value)return!0;let r=H.value[I.value]?.config.key,i=H.value[e].config.key;if(!r||J(r,i))return!1;try{return L.value=!0,t&&B.value.validateBeforeNext&&!await q()||J(r,i)||!n()||await P.beforeStepChange?.(I.value,e)===!1||J(r,i)||!n()?!1:(F(`step-before-change`,I.value,e),I.value=H.value.findIndex(e=>e.config.key===i),F(`step-change`,I.value,H.value[I.value].config.key),!0)}catch{return!1}finally{L.value=!1}},X=async()=>{await Y(I.value+1,!0)},Z=()=>{Y(I.value-1)},Q=async e=>{H.value[e]?.config.disabled||await Y(e,e>I.value)},$=()=>{if(!V.value||H.value.length===0)return;let{defaultStep:e}=B.value;I.value=e>=0&&e<H.value.length&&!H.value[e]?.config.disabled?e:0};return C(r(()=>B.value.steps.map(e=>e.key).join(`,`)),()=>{$()}),C(()=>H.value.map(e=>e.config.key),(e,t)=>{let n=t[I.value],r=e.indexOf(n);I.value=r>=0?r:Math.max(0,Math.min(I.value,e.length-1)),Object.keys(z).forEach(e=>{delete z[Number(e)]})}),f(()=>{$()}),p(()=>{R=!0}),u({revealField:async(e,t=()=>!0)=>{if(!V.value)return t();let n=P.formItems.findIndex(t=>t.props?.path===e);if(n<0)return!1;let r=P.options[n]?.layout?.step||B.value.steps[0]?.key,i=H.value.findIndex(e=>e.config.key===r);return i<0||H.value[i].config.disabled?!1:Y(i,i>I.value,t)},nextStep:X,previousStep:Z,goToStep:Q,validateCurrentStep:q,currentStep:g(I),totalSteps:r(()=>H.value.length)}),(r,u)=>{let f=k,p=A,h=D,g=E,_=O;return m(),o(`div`,j,[a(` 无步骤配置时的单一面板模式 `),V.value?(m(),o(n,{key:1},[a(` 有步骤配置时的分步骤模式 `),s(`div`,{class:d([`steps-container`,{"is-vertical":B.value.vertical}])},[a(` 步骤指示器 `),l(p,{current:I.value+1,status:U.value,size:B.value.size,vertical:B.value.vertical,class:`steps-indicator`},{default:w(()=>[(m(!0),o(n,null,v(H.value,e=>(m(),i(f,{key:e.config.key,title:e.config.title,description:e.config.description,disabled:e.config.disabled||L.value||t.submitting||t.disabled},null,8,[`title`,`description`,`disabled`]))),128))]),_:1},8,[`current`,`status`,`size`,`vertical`]),a(` 步骤内容区域 `),l(h,{class:`steps-content`,bordered:!1},{default:w(()=>[(m(!0),o(n,null,v(H.value,(e,t)=>T((m(),o(`div`,{key:e.config.key,class:`step-panel`},[a(` 步骤标题和描述 `),B.value.showStepHeader?(m(),o(`div`,N,[s(`h3`,te,x(e.config.title),1),e.config.description?(m(),o(`p`,ne,x(e.config.description),1)):a(`v-if`,!0)])):a(`v-if`,!0),a(` 步骤内的表单项 `),s(`div`,re,[(m(!0),o(n,null,v(e.items,(e,t)=>(m(),i(b(e),{key:K(e,t)}))),128))])])),[[S,I.value===t]])),128))]),_:1}),a(` 步骤操作按钮 `),s(`div`,ie,[l(_,{justify:`space-between`},{default:w(()=>[I.value>0?(m(),i(g,{key:0,size:t.controlSize,disabled:L.value||t.submitting||t.disabled,onClick:Z},{default:w(()=>[l(e,{name:`mdi:chevron-left-first`,size:16,style:{"margin-right":`4px`}}),c(` `+x(B.value.prevButtonText),1)]),_:1},8,[`size`,`disabled`])):a(`v-if`,!0),u[0]||=s(`div`,null,null,-1),l(_,null,{default:w(()=>[I.value<H.value.length-1?(m(),i(g,{key:0,size:t.controlSize,type:`primary`,loading:L.value,disabled:t.submitting||t.disabled,onClick:X},{default:w(()=>[c(x(B.value.nextButtonText)+` `,1),l(e,{name:`mdi:chevron-right-last`,size:16,style:{"margin-left":`4px`}})]),_:1},8,[`size`,`loading`,`disabled`])):a(`v-if`,!0),ee(r.$slots,`step-actions`,{currentStep:I.value,totalSteps:H.value.length,isFirstStep:W.value,isLastStep:G.value,nextStep:X,previousStep:Z,goToStep:Q},void 0,!0)]),_:3})]),_:3})])],2)],2112)):(m(),o(`div`,M,[(m(!0),o(n,null,v(t.formItems,(e,t)=>(m(),i(b(e),{key:K(e,t)}))),128))]))])}}}),[[`__scopeId`,`data-v-52fc924a`]]);export{P as default};
1
+ import{t as e}from"./C_Icon2.js";import{t}from"./export-helper.js";import{Fragment as n,computed as r,createBlock as i,createCommentVNode as a,createElementBlock as o,createElementVNode as s,createTextVNode as c,createVNode as l,defineComponent as u,normalizeClass as d,onMounted as f,onScopeDispose as p,openBlock as m,reactive as h,readonly as g,ref as _,renderList as v,renderSlot as ee,resolveComponent as y,resolveDynamicComponent as b,toDisplayString as x,vShow as te,watch as S,withCtx as C,withDirectives as w}from"vue";import{NButton as T,NCard as E,NSpace as D,NStep as O,NSteps as k}from"naive-ui";const A={class:`c-form-steps`},j={key:0,class:`single-panel`},M={key:0,class:`step-header`},ne={class:`step-title`},re={key:0,class:`step-description`},ie={class:`step-form-items`},ae={class:`steps-actions`};var N=t(u({__name:`index`,props:{controlSize:{},formItems:{},layoutConfig:{default:()=>({})},options:{default:()=>[]},beforeStepChange:{},validateStep:{},submitting:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1}},emits:[`step-change`,`step-before-change`,`step-validate`],setup(t,{expose:u,emit:y}){let N=t,P=y,F=_(0),I=_(!1),L=!1,R=0,z=h({}),B=r(()=>{let e=N.layoutConfig?.steps||{};return{steps:e.steps||[],vertical:e.vertical||!1,size:e.size||`medium`,showStepHeader:e.showStepHeader!==!1,validateBeforeNext:e.validateBeforeNext||!1,prevButtonText:e.prevButtonText||`上一步`,nextButtonText:e.nextButtonText||`下一步`,defaultStep:e.defaultStep||0}}),V=r(()=>B.value.steps.length>0),H=r(()=>{if(!V.value)return[];let e=new Map;return B.value.steps.forEach(t=>{e.set(t.key,[])}),N.formItems.forEach((t,n)=>{let r=(N.options?.[n])?.layout?.step||B.value.steps[0]?.key||`default`;e.has(r)||e.set(r,[]),e.get(r).push(t)}),B.value.steps.map(t=>({config:t,items:e.get(t.key)||[]})).filter(e=>e.items.length>0)}),U=r(()=>{for(let e=0;e<=F.value;e++)if(z[e]===!1)return`error`;return`process`}),W=r(()=>F.value===0),G=r(()=>F.value===H.value.length-1),K=(e,t)=>{if(e.key!=null)return String(e.key);let n=e.props;return n?.path?n.path:`step-item-${t}`},q=async()=>{let e=H.value[F.value]?.config.key,t=++R;if(!e||L)return!1;let n=()=>!L&&t===R&&H.value[F.value]?.config.key===e;try{let t=N.validateStep?await N.validateStep(F.value,e):!0;return n()?(P(`step-validate`,F.value),z[F.value]=t,t):!1}catch{return n()&&(z[F.value]=!1),!1}},J=(e,t)=>L||H.value[F.value]?.config.key!==e||!H.value.some(e=>e.config.key===t&&!e.config.disabled),Y=async(e,t=!1,n=()=>!0)=>{if(L||I.value||N.submitting||N.disabled||!n()||e<0||e>=H.value.length)return!1;if(e===F.value)return!0;let r=H.value[F.value]?.config.key,i=H.value[e].config.key;if(!r||J(r,i))return!1;try{return I.value=!0,t&&B.value.validateBeforeNext&&!await q()||J(r,i)||!n()||await N.beforeStepChange?.(F.value,e)===!1||J(r,i)||!n()?!1:(P(`step-before-change`,F.value,e),F.value=H.value.findIndex(e=>e.config.key===i),P(`step-change`,F.value,H.value[F.value].config.key),!0)}catch{return!1}finally{I.value=!1}},X=async()=>{await Y(F.value+1,!0)},Z=()=>{Y(F.value-1)},Q=async e=>{H.value[e]?.config.disabled||await Y(e,e>F.value)},$=()=>{if(!V.value||H.value.length===0)return;let{defaultStep:e}=B.value;F.value=e>=0&&e<H.value.length&&!H.value[e]?.config.disabled?e:0};return S(r(()=>B.value.steps.map(e=>e.key).join(`,`)),()=>{$()}),S(()=>H.value.map(e=>e.config.key),(e,t)=>{let n=t[F.value],r=e.indexOf(n);F.value=r>=0?r:Math.max(0,Math.min(F.value,e.length-1)),Object.keys(z).forEach(e=>{delete z[Number(e)]})}),f(()=>{$()}),p(()=>{L=!0}),S(()=>H.value[F.value]?.config.key,()=>R++,{flush:`sync`}),u({revealField:async(e,t=()=>!0)=>{if(!V.value)return t();let n=N.formItems.findIndex(t=>t.props?.path===e);if(n<0)return!1;let r=N.options[n]?.layout?.step||B.value.steps[0]?.key,i=H.value.findIndex(e=>e.config.key===r);return i<0||H.value[i].config.disabled?!1:Y(i,i>F.value,t)},nextStep:X,previousStep:Z,goToStep:Q,validateCurrentStep:q,currentStep:g(F),totalSteps:r(()=>H.value.length)}),(r,u)=>{let f=O,p=k,h=E,g=T,_=D;return m(),o(`div`,A,[a(` 无步骤配置时的单一面板模式 `),V.value?(m(),o(n,{key:1},[a(` 有步骤配置时的分步骤模式 `),s(`div`,{class:d([`steps-container`,{"is-vertical":B.value.vertical}])},[a(` 步骤指示器 `),l(p,{current:F.value+1,status:U.value,size:B.value.size,vertical:B.value.vertical,class:`steps-indicator`},{default:C(()=>[(m(!0),o(n,null,v(H.value,e=>(m(),i(f,{key:e.config.key,title:e.config.title,description:e.config.description,disabled:e.config.disabled||I.value||t.submitting||t.disabled},null,8,[`title`,`description`,`disabled`]))),128))]),_:1},8,[`current`,`status`,`size`,`vertical`]),a(` 步骤内容区域 `),l(h,{class:`steps-content`,bordered:!1},{default:C(()=>[(m(!0),o(n,null,v(H.value,(e,t)=>w((m(),o(`div`,{key:e.config.key,class:`step-panel`},[a(` 步骤标题和描述 `),B.value.showStepHeader?(m(),o(`div`,M,[s(`h3`,ne,x(e.config.title),1),e.config.description?(m(),o(`p`,re,x(e.config.description),1)):a(`v-if`,!0)])):a(`v-if`,!0),a(` 步骤内的表单项 `),s(`div`,ie,[(m(!0),o(n,null,v(e.items,(e,t)=>(m(),i(b(e),{key:K(e,t)}))),128))])])),[[te,F.value===t]])),128))]),_:1}),a(` 步骤操作按钮 `),s(`div`,ae,[l(_,{justify:`space-between`},{default:C(()=>[F.value>0?(m(),i(g,{key:0,size:t.controlSize,disabled:I.value||t.submitting||t.disabled,onClick:Z},{default:C(()=>[l(e,{name:`mdi:chevron-left-first`,size:16,style:{"margin-right":`4px`}}),c(` `+x(B.value.prevButtonText),1)]),_:1},8,[`size`,`disabled`])):a(`v-if`,!0),u[0]||=s(`div`,null,null,-1),l(_,null,{default:C(()=>[F.value<H.value.length-1?(m(),i(g,{key:0,size:t.controlSize,type:`primary`,loading:I.value,disabled:t.submitting||t.disabled,onClick:X},{default:C(()=>[c(x(B.value.nextButtonText)+` `,1),l(e,{name:`mdi:chevron-right-last`,size:16,style:{"margin-left":`4px`}})]),_:1},8,[`size`,`loading`,`disabled`])):a(`v-if`,!0),ee(r.$slots,`step-actions`,{currentStep:F.value,totalSteps:H.value.length,isFirstStep:W.value,isLastStep:G.value,nextStep:X,previousStep:Z,goToStep:Q},void 0,!0)]),_:3})]),_:3})])],2)],2112)):(m(),o(`div`,j,[(m(!0),o(n,null,v(t.formItems,(e,t)=>(m(),i(b(e),{key:K(e,t)}))),128))]))])}}}),[[`__scopeId`,`data-v-c3e3e8d7`]]);export{N as default};
package/dist/Tabs.cjs CHANGED
@@ -1 +1 @@
1
- require(`./chunk.cjs`);const e=require(`./C_Icon2.cjs`),t=require(`./export-helper.cjs`);let n=require(`vue`),r=require(`naive-ui`);const i={class:`c-form-tabs`},a={key:0,class:`single-panel`},o={class:`tabs-container`},s={key:0,class:`tab-header`},c={class:`tab-description`},l={class:`tab-form-items`},u={key:0,class:`tabs-actions`},d=(0,n.defineComponent)({__name:`index`,props:{controlSize:{},formItems:{},layoutConfig:{default:()=>({})},options:{default:()=>[]},beforeTabChange:{},validateTab:{}},emits:[`tab-change`,`tab-before-change`,`tab-validate`,`tab-close`,`tab-add`],setup(t,{expose:d,emit:f}){let p=t,m=f,h=(0,n.ref)(``),g=(0,n.ref)(!1),_=!1,v=(0,n.reactive)({}),y=()=>({tabs:[],type:`line`,size:`medium`,placement:`top`,animated:!0,closable:!1,addable:!1,showTabHeader:!0,showActions:!1,showCount:!1,validateBeforeSwitch:!1,defaultTab:``}),b=(0,n.computed)(()=>{let e=y(),t=p.layoutConfig?.tabs||{};return{...e,...t}}),x=(0,n.computed)(()=>b.value.tabs.length>0),S=(0,n.computed)(()=>{if(!x.value)return[];let e=new Map;return b.value.tabs.forEach(t=>{e.set(t.key,[])}),p.formItems.forEach((t,n)=>{let r=(p.options?.[n])?.layout?.tab||b.value.tabs[0]?.key||`default`;e.has(r)||e.set(r,[]),e.get(r).push(t)}),b.value.tabs.map(t=>({config:t,items:e.get(t.key)||[]}))}),C=(e,t)=>{if(e.key!=null)return String(e.key);let n=e.props;return n?.path?String(n.path):`tab-item-${t}`},w=async()=>{if(!h.value)return!0;try{let e=p.validateTab?await p.validateTab(h.value):!0;return m(`tab-validate`,h.value),v[h.value]=e,e}catch{return v[h.value]=!1,!1}},T=e=>S.value.find(t=>t.config.key===e&&!t.config.disabled),E=(e,t)=>!_&&h.value===e&&t(),D=(e,t,n)=>E(e,n)&&!!T(t),O=async(e,t,n)=>{if(b.value.validateBeforeSwitch&&e&&!await w()||!E(e,n))return!1;if(e){if(await p.beforeTabChange?.(e,t)===!1||!E(e,n))return!1;m(`tab-before-change`,e,t)}return!0},k=async(e,t=()=>!0)=>{let n=h.value;if(g.value||!E(n,t))return!1;if(!e||e===h.value)return!0;if(!T(e))return!1;try{return g.value=!0,!await O(n,e,t)||!D(n,e,t)?!1:(h.value=e,m(`tab-change`,e,S.value.findIndex(t=>t.config.key===e)),!0)}catch{return!1}finally{g.value=!1}},A=e=>{k(e)},j=e=>{m(`tab-close`,e)},M=()=>{m(`tab-add`)},N=()=>{if(!x.value||S.value.length===0){h.value=``;return}let{defaultTab:e}=b.value,t=S.value.find(t=>t.config.key===e&&!t.config.disabled)?.config.key||S.value.find(e=>!e.config.disabled)?.config.key;t&&t!==h.value&&(h.value=t,(0,n.nextTick)(()=>{let e=S.value.findIndex(e=>e.config.key===t);e>=0&&m(`tab-change`,t,e)}))};return(0,n.onMounted)(()=>{N()}),(0,n.onScopeDispose)(()=>{_=!0}),(0,n.watch)((0,n.computed)(()=>b.value.tabs.map(e=>e.key).join(`,`)),()=>{b.value.tabs.some(e=>e.key===h.value)||N()}),(0,n.watch)(()=>b.value.defaultTab,e=>{e&&e!==h.value&&k(e)}),d({revealField:async(e,t=()=>!0)=>{if(!x.value)return t();let n=p.options.find(t=>t.prop===e)?.layout?.tab||b.value.tabs[0]?.key,r=S.value.find(e=>e.config.key===n);return!r||r.config.disabled?!1:k(r.config.key,t)},switchToTab:k,validateCurrentTab:w,currentTab:(0,n.readonly)(h),totalTabs:(0,n.computed)(()=>S.value.length),tabsWithItems:(0,n.readonly)(S)}),(d,f)=>{let p=r.NBadge,m=r.NSpace,_=r.NEmpty,v=r.NTabPane,y=r.NTabs,T=r.NButton;return(0,n.openBlock)(),(0,n.createElementBlock)(`div`,i,[(0,n.createCommentVNode)(` 无标签配置时的单一面板模式 `),x.value?((0,n.openBlock)(),(0,n.createElementBlock)(n.Fragment,{key:1},[(0,n.createCommentVNode)(` 有标签配置时的分标签模式 `),(0,n.createElementVNode)(`div`,o,[(0,n.createVNode)(y,{value:h.value,type:b.value.type,size:b.value.size,placement:b.value.placement,animated:b.value.animated,closable:b.value.closable,addable:b.value.addable,class:`form-tabs`,"onUpdate:value":A,onClose:j,onAdd:M},{default:(0,n.withCtx)(()=>[((0,n.openBlock)(!0),(0,n.createElementBlock)(n.Fragment,null,(0,n.renderList)(S.value,t=>((0,n.openBlock)(),(0,n.createBlock)(v,{key:t.config.key,name:t.config.key,tab:t.config.title,disabled:t.config.disabled||g.value,closable:t.config.closable,"display-directive":`show`},{tab:(0,n.withCtx)(()=>[(0,n.createVNode)(m,{align:`center`,size:8},{default:(0,n.withCtx)(()=>[t.config.icon?((0,n.openBlock)(),(0,n.createBlock)(e.t,{key:0,name:t.config.icon,size:16,class:`tab-icon`},null,8,[`name`])):(0,n.createCommentVNode)(`v-if`,!0),(0,n.createElementVNode)(`span`,null,(0,n.toDisplayString)(t.config.title),1),b.value.showCount?((0,n.openBlock)(),(0,n.createBlock)(p,{key:1,value:t.items.length,max:99,show:t.items.length>0,type:`info`},null,8,[`value`,`show`])):(0,n.createCommentVNode)(`v-if`,!0)]),_:2},1024)]),default:(0,n.withCtx)(()=>[b.value.showTabHeader&&t.config.description?((0,n.openBlock)(),(0,n.createElementBlock)(`div`,s,[(0,n.createElementVNode)(`p`,c,(0,n.toDisplayString)(t.config.description),1)])):(0,n.createCommentVNode)(`v-if`,!0),(0,n.createElementVNode)(`div`,l,[((0,n.openBlock)(!0),(0,n.createElementBlock)(n.Fragment,null,(0,n.renderList)(t.items,(e,t)=>((0,n.openBlock)(),(0,n.createBlock)((0,n.resolveDynamicComponent)(e),{key:C(e,t)}))),128))]),t.items.length===0?((0,n.openBlock)(),(0,n.createBlock)(_,{key:1,description:`暂无表单项`,class:`tab-empty`})):(0,n.createCommentVNode)(`v-if`,!0)]),_:2},1032,[`name`,`tab`,`disabled`,`closable`]))),128))]),_:1},8,[`value`,`type`,`size`,`placement`,`animated`,`closable`,`addable`]),(0,n.createCommentVNode)(` 标签页操作按钮 `),b.value.showActions?((0,n.openBlock)(),(0,n.createElementBlock)(`div`,u,[(0,n.createVNode)(m,{justify:`space-between`},{default:(0,n.withCtx)(()=>[(0,n.createVNode)(m,null,{default:(0,n.withCtx)(()=>[b.value.validateBeforeSwitch?((0,n.openBlock)(),(0,n.createBlock)(T,{key:0,type:`primary`,size:t.controlSize??`small`,onClick:w},{default:(0,n.withCtx)(()=>[(0,n.createVNode)(e.t,{name:`carbon:star-check`,size:14,style:{"margin-right":`4px`}}),f[0]||=(0,n.createTextVNode)(` 验证当前标签 `,-1)]),_:1},8,[`size`])):(0,n.createCommentVNode)(`v-if`,!0)]),_:1}),(0,n.createVNode)(m,null,{default:(0,n.withCtx)(()=>[(0,n.renderSlot)(d.$slots,`tab-actions`,{currentTab:h.value,totalTabs:S.value.length,validateTab:w,switchToTab:k},void 0,!0)]),_:3})]),_:3})])):(0,n.createCommentVNode)(`v-if`,!0)])],2112)):((0,n.openBlock)(),(0,n.createElementBlock)(`div`,a,[((0,n.openBlock)(!0),(0,n.createElementBlock)(n.Fragment,null,(0,n.renderList)(t.formItems,(e,t)=>((0,n.openBlock)(),(0,n.createBlock)((0,n.resolveDynamicComponent)(e),{key:C(e,t)}))),128))]))])}}});var f=t.t(d,[[`__scopeId`,`data-v-a597a3d1`]]);exports.default=f;
1
+ require(`./chunk.cjs`);const e=require(`./C_Icon2.cjs`),t=require(`./export-helper.cjs`);let n=require(`vue`),r=require(`naive-ui`);const i={class:`c-form-tabs`},a={key:0,class:`single-panel`},o={class:`tabs-container`},s={key:0,class:`tab-header`},c={class:`tab-description`},l={class:`tab-form-items`},u={key:0,class:`tabs-actions`},d=(0,n.defineComponent)({__name:`index`,props:{controlSize:{},formItems:{},layoutConfig:{default:()=>({})},options:{default:()=>[]},beforeTabChange:{},validateTab:{}},emits:[`tab-change`,`tab-before-change`,`tab-validate`,`tab-close`,`tab-add`],setup(t,{expose:d,emit:f}){let p=t,m=f,h=(0,n.ref)(``),g=(0,n.ref)(!1),_=!1,v=0,y=()=>({tabs:[],type:`line`,size:`medium`,placement:`top`,animated:!0,closable:!1,addable:!1,showTabHeader:!0,showActions:!1,showCount:!1,validateBeforeSwitch:!1,defaultTab:``}),b=(0,n.computed)(()=>{let e=y(),t=p.layoutConfig?.tabs||{};return{...e,...t}}),x=(0,n.computed)(()=>b.value.tabs.length>0),S=(0,n.computed)(()=>{if(!x.value)return[];let e=new Map;return b.value.tabs.forEach(t=>{e.set(t.key,[])}),p.formItems.forEach((t,n)=>{let r=(p.options?.[n])?.layout?.tab||b.value.tabs[0]?.key||`default`;e.has(r)||e.set(r,[]),e.get(r).push(t)}),b.value.tabs.map(t=>({config:t,items:e.get(t.key)||[]}))}),C=(e,t)=>{if(e.key!=null)return String(e.key);let n=e.props;return n?.path?String(n.path):`tab-item-${t}`},w=async()=>{let e=h.value,t=++v;if(_)return!1;if(!e)return!0;let n=()=>!_&&t===v&&h.value===e;try{let t=p.validateTab?await p.validateTab(e):!0;return n()?(m(`tab-validate`,e),t):!1}catch{return!1}},T=e=>S.value.find(t=>t.config.key===e&&!t.config.disabled),E=(e,t)=>!_&&h.value===e&&t(),D=(e,t,n)=>E(e,n)&&!!T(t),O=async(e,t,n)=>{if(b.value.validateBeforeSwitch&&e&&!await w()||!E(e,n))return!1;if(e){if(await p.beforeTabChange?.(e,t)===!1||!E(e,n))return!1;m(`tab-before-change`,e,t)}return!0},k=async(e,t=()=>!0)=>{let n=h.value;if(g.value||!E(n,t))return!1;if(!e||e===h.value)return!0;if(!T(e))return!1;try{return g.value=!0,!await O(n,e,t)||!D(n,e,t)?!1:(h.value=e,m(`tab-change`,e,S.value.findIndex(t=>t.config.key===e)),!0)}catch{return!1}finally{g.value=!1}},A=e=>{k(e)},j=e=>{m(`tab-close`,e)},M=()=>{m(`tab-add`)},N=()=>{if(!x.value||S.value.length===0){h.value=``;return}let{defaultTab:e}=b.value,t=S.value.find(t=>t.config.key===e&&!t.config.disabled)?.config.key||S.value.find(e=>!e.config.disabled)?.config.key;t&&t!==h.value&&(h.value=t,(0,n.nextTick)(()=>{let e=S.value.findIndex(e=>e.config.key===t);e>=0&&m(`tab-change`,t,e)}))};return(0,n.onMounted)(()=>{N()}),(0,n.onScopeDispose)(()=>{_=!0}),(0,n.watch)(h,()=>v++,{flush:`sync`}),(0,n.watch)((0,n.computed)(()=>b.value.tabs.map(e=>e.key).join(`,`)),()=>{b.value.tabs.some(e=>e.key===h.value)||N()}),(0,n.watch)(()=>b.value.defaultTab,e=>{e&&e!==h.value&&k(e)}),d({revealField:async(e,t=()=>!0)=>{if(!x.value)return t();let n=p.options.find(t=>t.prop===e)?.layout?.tab||b.value.tabs[0]?.key,r=S.value.find(e=>e.config.key===n);return!r||r.config.disabled?!1:k(r.config.key,t)},switchToTab:k,validateCurrentTab:w,currentTab:(0,n.readonly)(h),totalTabs:(0,n.computed)(()=>S.value.length),tabsWithItems:(0,n.readonly)(S)}),(d,f)=>{let p=r.NBadge,m=r.NSpace,_=r.NEmpty,v=r.NTabPane,y=r.NTabs,T=r.NButton;return(0,n.openBlock)(),(0,n.createElementBlock)(`div`,i,[(0,n.createCommentVNode)(` 无标签配置时的单一面板模式 `),x.value?((0,n.openBlock)(),(0,n.createElementBlock)(n.Fragment,{key:1},[(0,n.createCommentVNode)(` 有标签配置时的分标签模式 `),(0,n.createElementVNode)(`div`,o,[(0,n.createVNode)(y,{value:h.value,type:b.value.type,size:b.value.size,placement:b.value.placement,animated:b.value.animated,closable:b.value.closable,addable:b.value.addable,class:`form-tabs`,"onUpdate:value":A,onClose:j,onAdd:M},{default:(0,n.withCtx)(()=>[((0,n.openBlock)(!0),(0,n.createElementBlock)(n.Fragment,null,(0,n.renderList)(S.value,t=>((0,n.openBlock)(),(0,n.createBlock)(v,{key:t.config.key,name:t.config.key,tab:t.config.title,disabled:t.config.disabled||g.value,closable:t.config.closable,"display-directive":`show`},{tab:(0,n.withCtx)(()=>[(0,n.createVNode)(m,{align:`center`,size:8},{default:(0,n.withCtx)(()=>[t.config.icon?((0,n.openBlock)(),(0,n.createBlock)(e.t,{key:0,name:t.config.icon,size:16,class:`tab-icon`},null,8,[`name`])):(0,n.createCommentVNode)(`v-if`,!0),(0,n.createElementVNode)(`span`,null,(0,n.toDisplayString)(t.config.title),1),b.value.showCount?((0,n.openBlock)(),(0,n.createBlock)(p,{key:1,value:t.items.length,max:99,show:t.items.length>0,type:`info`},null,8,[`value`,`show`])):(0,n.createCommentVNode)(`v-if`,!0)]),_:2},1024)]),default:(0,n.withCtx)(()=>[b.value.showTabHeader&&t.config.description?((0,n.openBlock)(),(0,n.createElementBlock)(`div`,s,[(0,n.createElementVNode)(`p`,c,(0,n.toDisplayString)(t.config.description),1)])):(0,n.createCommentVNode)(`v-if`,!0),(0,n.createElementVNode)(`div`,l,[((0,n.openBlock)(!0),(0,n.createElementBlock)(n.Fragment,null,(0,n.renderList)(t.items,(e,t)=>((0,n.openBlock)(),(0,n.createBlock)((0,n.resolveDynamicComponent)(e),{key:C(e,t)}))),128))]),t.items.length===0?((0,n.openBlock)(),(0,n.createBlock)(_,{key:1,description:`暂无表单项`,class:`tab-empty`})):(0,n.createCommentVNode)(`v-if`,!0)]),_:2},1032,[`name`,`tab`,`disabled`,`closable`]))),128))]),_:1},8,[`value`,`type`,`size`,`placement`,`animated`,`closable`,`addable`]),(0,n.createCommentVNode)(` 标签页操作按钮 `),b.value.showActions?((0,n.openBlock)(),(0,n.createElementBlock)(`div`,u,[(0,n.createVNode)(m,{justify:`space-between`},{default:(0,n.withCtx)(()=>[(0,n.createVNode)(m,null,{default:(0,n.withCtx)(()=>[b.value.validateBeforeSwitch?((0,n.openBlock)(),(0,n.createBlock)(T,{key:0,type:`primary`,size:t.controlSize??`small`,onClick:w},{default:(0,n.withCtx)(()=>[(0,n.createVNode)(e.t,{name:`carbon:star-check`,size:14,style:{"margin-right":`4px`}}),f[0]||=(0,n.createTextVNode)(` 验证当前标签 `,-1)]),_:1},8,[`size`])):(0,n.createCommentVNode)(`v-if`,!0)]),_:1}),(0,n.createVNode)(m,null,{default:(0,n.withCtx)(()=>[(0,n.renderSlot)(d.$slots,`tab-actions`,{currentTab:h.value,totalTabs:S.value.length,validateTab:w,switchToTab:k},void 0,!0)]),_:3})]),_:3})])):(0,n.createCommentVNode)(`v-if`,!0)])],2112)):((0,n.openBlock)(),(0,n.createElementBlock)(`div`,a,[((0,n.openBlock)(!0),(0,n.createElementBlock)(n.Fragment,null,(0,n.renderList)(t.formItems,(e,t)=>((0,n.openBlock)(),(0,n.createBlock)((0,n.resolveDynamicComponent)(e),{key:C(e,t)}))),128))]))])}}});var f=t.t(d,[[`__scopeId`,`data-v-7c7a9bd4`]]);exports.default=f;
package/dist/Tabs.js CHANGED
@@ -1 +1 @@
1
- import{t as e}from"./C_Icon2.js";import{t}from"./export-helper.js";import{Fragment as n,computed as r,createBlock as i,createCommentVNode as a,createElementBlock as o,createElementVNode as s,createTextVNode as c,createVNode as l,defineComponent as u,nextTick as d,onMounted as f,onScopeDispose as p,openBlock as m,reactive as h,readonly as g,ref as _,renderList as v,renderSlot as y,resolveComponent as b,resolveDynamicComponent as x,toDisplayString as S,watch as C,withCtx as w}from"vue";import{NBadge as T,NButton as E,NEmpty as ee,NSpace as D,NTabPane as O,NTabs as k}from"naive-ui";const A={class:`c-form-tabs`},j={key:0,class:`single-panel`},M={class:`tabs-container`},N={key:0,class:`tab-header`},P={class:`tab-description`},F={class:`tab-form-items`},I={key:0,class:`tabs-actions`};var L=t(u({__name:`index`,props:{controlSize:{},formItems:{},layoutConfig:{default:()=>({})},options:{default:()=>[]},beforeTabChange:{},validateTab:{}},emits:[`tab-change`,`tab-before-change`,`tab-validate`,`tab-close`,`tab-add`],setup(t,{expose:u,emit:b}){let L=t,R=b,z=_(``),B=_(!1),V=!1,H=h({}),U=()=>({tabs:[],type:`line`,size:`medium`,placement:`top`,animated:!0,closable:!1,addable:!1,showTabHeader:!0,showActions:!1,showCount:!1,validateBeforeSwitch:!1,defaultTab:``}),W=r(()=>{let e=U(),t=L.layoutConfig?.tabs||{};return{...e,...t}}),G=r(()=>W.value.tabs.length>0),K=r(()=>{if(!G.value)return[];let e=new Map;return W.value.tabs.forEach(t=>{e.set(t.key,[])}),L.formItems.forEach((t,n)=>{let r=(L.options?.[n])?.layout?.tab||W.value.tabs[0]?.key||`default`;e.has(r)||e.set(r,[]),e.get(r).push(t)}),W.value.tabs.map(t=>({config:t,items:e.get(t.key)||[]}))}),q=(e,t)=>{if(e.key!=null)return String(e.key);let n=e.props;return n?.path?String(n.path):`tab-item-${t}`},J=async()=>{if(!z.value)return!0;try{let e=L.validateTab?await L.validateTab(z.value):!0;return R(`tab-validate`,z.value),H[z.value]=e,e}catch{return H[z.value]=!1,!1}},Y=e=>K.value.find(t=>t.config.key===e&&!t.config.disabled),X=(e,t)=>!V&&z.value===e&&t(),Z=(e,t,n)=>X(e,n)&&!!Y(t),te=async(e,t,n)=>{if(W.value.validateBeforeSwitch&&e&&!await J()||!X(e,n))return!1;if(e){if(await L.beforeTabChange?.(e,t)===!1||!X(e,n))return!1;R(`tab-before-change`,e,t)}return!0},Q=async(e,t=()=>!0)=>{let n=z.value;if(B.value||!X(n,t))return!1;if(!e||e===z.value)return!0;if(!Y(e))return!1;try{return B.value=!0,!await te(n,e,t)||!Z(n,e,t)?!1:(z.value=e,R(`tab-change`,e,K.value.findIndex(t=>t.config.key===e)),!0)}catch{return!1}finally{B.value=!1}},ne=e=>{Q(e)},re=e=>{R(`tab-close`,e)},ie=()=>{R(`tab-add`)},$=()=>{if(!G.value||K.value.length===0){z.value=``;return}let{defaultTab:e}=W.value,t=K.value.find(t=>t.config.key===e&&!t.config.disabled)?.config.key||K.value.find(e=>!e.config.disabled)?.config.key;t&&t!==z.value&&(z.value=t,d(()=>{let e=K.value.findIndex(e=>e.config.key===t);e>=0&&R(`tab-change`,t,e)}))};return f(()=>{$()}),p(()=>{V=!0}),C(r(()=>W.value.tabs.map(e=>e.key).join(`,`)),()=>{W.value.tabs.some(e=>e.key===z.value)||$()}),C(()=>W.value.defaultTab,e=>{e&&e!==z.value&&Q(e)}),u({revealField:async(e,t=()=>!0)=>{if(!G.value)return t();let n=L.options.find(t=>t.prop===e)?.layout?.tab||W.value.tabs[0]?.key,r=K.value.find(e=>e.config.key===n);return!r||r.config.disabled?!1:Q(r.config.key,t)},switchToTab:Q,validateCurrentTab:J,currentTab:g(z),totalTabs:r(()=>K.value.length),tabsWithItems:g(K)}),(r,u)=>{let d=T,f=D,p=ee,h=O,g=k,_=E;return m(),o(`div`,A,[a(` 无标签配置时的单一面板模式 `),G.value?(m(),o(n,{key:1},[a(` 有标签配置时的分标签模式 `),s(`div`,M,[l(g,{value:z.value,type:W.value.type,size:W.value.size,placement:W.value.placement,animated:W.value.animated,closable:W.value.closable,addable:W.value.addable,class:`form-tabs`,"onUpdate:value":ne,onClose:re,onAdd:ie},{default:w(()=>[(m(!0),o(n,null,v(K.value,t=>(m(),i(h,{key:t.config.key,name:t.config.key,tab:t.config.title,disabled:t.config.disabled||B.value,closable:t.config.closable,"display-directive":`show`},{tab:w(()=>[l(f,{align:`center`,size:8},{default:w(()=>[t.config.icon?(m(),i(e,{key:0,name:t.config.icon,size:16,class:`tab-icon`},null,8,[`name`])):a(`v-if`,!0),s(`span`,null,S(t.config.title),1),W.value.showCount?(m(),i(d,{key:1,value:t.items.length,max:99,show:t.items.length>0,type:`info`},null,8,[`value`,`show`])):a(`v-if`,!0)]),_:2},1024)]),default:w(()=>[W.value.showTabHeader&&t.config.description?(m(),o(`div`,N,[s(`p`,P,S(t.config.description),1)])):a(`v-if`,!0),s(`div`,F,[(m(!0),o(n,null,v(t.items,(e,t)=>(m(),i(x(e),{key:q(e,t)}))),128))]),t.items.length===0?(m(),i(p,{key:1,description:`暂无表单项`,class:`tab-empty`})):a(`v-if`,!0)]),_:2},1032,[`name`,`tab`,`disabled`,`closable`]))),128))]),_:1},8,[`value`,`type`,`size`,`placement`,`animated`,`closable`,`addable`]),a(` 标签页操作按钮 `),W.value.showActions?(m(),o(`div`,I,[l(f,{justify:`space-between`},{default:w(()=>[l(f,null,{default:w(()=>[W.value.validateBeforeSwitch?(m(),i(_,{key:0,type:`primary`,size:t.controlSize??`small`,onClick:J},{default:w(()=>[l(e,{name:`carbon:star-check`,size:14,style:{"margin-right":`4px`}}),u[0]||=c(` 验证当前标签 `,-1)]),_:1},8,[`size`])):a(`v-if`,!0)]),_:1}),l(f,null,{default:w(()=>[y(r.$slots,`tab-actions`,{currentTab:z.value,totalTabs:K.value.length,validateTab:J,switchToTab:Q},void 0,!0)]),_:3})]),_:3})])):a(`v-if`,!0)])],2112)):(m(),o(`div`,j,[(m(!0),o(n,null,v(t.formItems,(e,t)=>(m(),i(x(e),{key:q(e,t)}))),128))]))])}}}),[[`__scopeId`,`data-v-a597a3d1`]]);export{L as default};
1
+ import{t as e}from"./C_Icon2.js";import{t}from"./export-helper.js";import{Fragment as n,computed as r,createBlock as i,createCommentVNode as a,createElementBlock as o,createElementVNode as s,createTextVNode as c,createVNode as l,defineComponent as u,nextTick as d,onMounted as f,onScopeDispose as p,openBlock as m,readonly as h,ref as g,renderList as _,renderSlot as v,resolveComponent as y,resolveDynamicComponent as b,toDisplayString as x,watch as S,withCtx as C}from"vue";import{NBadge as w,NButton as T,NEmpty as E,NSpace as D,NTabPane as O,NTabs as ee}from"naive-ui";const k={class:`c-form-tabs`},A={key:0,class:`single-panel`},j={class:`tabs-container`},M={key:0,class:`tab-header`},N={class:`tab-description`},P={class:`tab-form-items`},F={key:0,class:`tabs-actions`};var I=t(u({__name:`index`,props:{controlSize:{},formItems:{},layoutConfig:{default:()=>({})},options:{default:()=>[]},beforeTabChange:{},validateTab:{}},emits:[`tab-change`,`tab-before-change`,`tab-validate`,`tab-close`,`tab-add`],setup(t,{expose:u,emit:y}){let I=t,L=y,R=g(``),z=g(!1),B=!1,V=0,H=()=>({tabs:[],type:`line`,size:`medium`,placement:`top`,animated:!0,closable:!1,addable:!1,showTabHeader:!0,showActions:!1,showCount:!1,validateBeforeSwitch:!1,defaultTab:``}),U=r(()=>{let e=H(),t=I.layoutConfig?.tabs||{};return{...e,...t}}),W=r(()=>U.value.tabs.length>0),G=r(()=>{if(!W.value)return[];let e=new Map;return U.value.tabs.forEach(t=>{e.set(t.key,[])}),I.formItems.forEach((t,n)=>{let r=(I.options?.[n])?.layout?.tab||U.value.tabs[0]?.key||`default`;e.has(r)||e.set(r,[]),e.get(r).push(t)}),U.value.tabs.map(t=>({config:t,items:e.get(t.key)||[]}))}),K=(e,t)=>{if(e.key!=null)return String(e.key);let n=e.props;return n?.path?String(n.path):`tab-item-${t}`},q=async()=>{let e=R.value,t=++V;if(B)return!1;if(!e)return!0;let n=()=>!B&&t===V&&R.value===e;try{let t=I.validateTab?await I.validateTab(e):!0;return n()?(L(`tab-validate`,e),t):!1}catch{return!1}},J=e=>G.value.find(t=>t.config.key===e&&!t.config.disabled),Y=(e,t)=>!B&&R.value===e&&t(),X=(e,t,n)=>Y(e,n)&&!!J(t),Z=async(e,t,n)=>{if(U.value.validateBeforeSwitch&&e&&!await q()||!Y(e,n))return!1;if(e){if(await I.beforeTabChange?.(e,t)===!1||!Y(e,n))return!1;L(`tab-before-change`,e,t)}return!0},Q=async(e,t=()=>!0)=>{let n=R.value;if(z.value||!Y(n,t))return!1;if(!e||e===R.value)return!0;if(!J(e))return!1;try{return z.value=!0,!await Z(n,e,t)||!X(n,e,t)?!1:(R.value=e,L(`tab-change`,e,G.value.findIndex(t=>t.config.key===e)),!0)}catch{return!1}finally{z.value=!1}},te=e=>{Q(e)},ne=e=>{L(`tab-close`,e)},re=()=>{L(`tab-add`)},$=()=>{if(!W.value||G.value.length===0){R.value=``;return}let{defaultTab:e}=U.value,t=G.value.find(t=>t.config.key===e&&!t.config.disabled)?.config.key||G.value.find(e=>!e.config.disabled)?.config.key;t&&t!==R.value&&(R.value=t,d(()=>{let e=G.value.findIndex(e=>e.config.key===t);e>=0&&L(`tab-change`,t,e)}))};return f(()=>{$()}),p(()=>{B=!0}),S(R,()=>V++,{flush:`sync`}),S(r(()=>U.value.tabs.map(e=>e.key).join(`,`)),()=>{U.value.tabs.some(e=>e.key===R.value)||$()}),S(()=>U.value.defaultTab,e=>{e&&e!==R.value&&Q(e)}),u({revealField:async(e,t=()=>!0)=>{if(!W.value)return t();let n=I.options.find(t=>t.prop===e)?.layout?.tab||U.value.tabs[0]?.key,r=G.value.find(e=>e.config.key===n);return!r||r.config.disabled?!1:Q(r.config.key,t)},switchToTab:Q,validateCurrentTab:q,currentTab:h(R),totalTabs:r(()=>G.value.length),tabsWithItems:h(G)}),(r,u)=>{let d=w,f=D,p=E,h=O,g=ee,y=T;return m(),o(`div`,k,[a(` 无标签配置时的单一面板模式 `),W.value?(m(),o(n,{key:1},[a(` 有标签配置时的分标签模式 `),s(`div`,j,[l(g,{value:R.value,type:U.value.type,size:U.value.size,placement:U.value.placement,animated:U.value.animated,closable:U.value.closable,addable:U.value.addable,class:`form-tabs`,"onUpdate:value":te,onClose:ne,onAdd:re},{default:C(()=>[(m(!0),o(n,null,_(G.value,t=>(m(),i(h,{key:t.config.key,name:t.config.key,tab:t.config.title,disabled:t.config.disabled||z.value,closable:t.config.closable,"display-directive":`show`},{tab:C(()=>[l(f,{align:`center`,size:8},{default:C(()=>[t.config.icon?(m(),i(e,{key:0,name:t.config.icon,size:16,class:`tab-icon`},null,8,[`name`])):a(`v-if`,!0),s(`span`,null,x(t.config.title),1),U.value.showCount?(m(),i(d,{key:1,value:t.items.length,max:99,show:t.items.length>0,type:`info`},null,8,[`value`,`show`])):a(`v-if`,!0)]),_:2},1024)]),default:C(()=>[U.value.showTabHeader&&t.config.description?(m(),o(`div`,M,[s(`p`,N,x(t.config.description),1)])):a(`v-if`,!0),s(`div`,P,[(m(!0),o(n,null,_(t.items,(e,t)=>(m(),i(b(e),{key:K(e,t)}))),128))]),t.items.length===0?(m(),i(p,{key:1,description:`暂无表单项`,class:`tab-empty`})):a(`v-if`,!0)]),_:2},1032,[`name`,`tab`,`disabled`,`closable`]))),128))]),_:1},8,[`value`,`type`,`size`,`placement`,`animated`,`closable`,`addable`]),a(` 标签页操作按钮 `),U.value.showActions?(m(),o(`div`,F,[l(f,{justify:`space-between`},{default:C(()=>[l(f,null,{default:C(()=>[U.value.validateBeforeSwitch?(m(),i(y,{key:0,type:`primary`,size:t.controlSize??`small`,onClick:q},{default:C(()=>[l(e,{name:`carbon:star-check`,size:14,style:{"margin-right":`4px`}}),u[0]||=c(` 验证当前标签 `,-1)]),_:1},8,[`size`])):a(`v-if`,!0)]),_:1}),l(f,null,{default:C(()=>[v(r.$slots,`tab-actions`,{currentTab:R.value,totalTabs:G.value.length,validateTab:q,switchToTab:Q},void 0,!0)]),_:3})]),_:3})])):a(`v-if`,!0)])],2112)):(m(),o(`div`,A,[(m(!0),o(n,null,_(t.formItems,(e,t)=>(m(),i(b(e),{key:K(e,t)}))),128))]))])}}}),[[`__scopeId`,`data-v-7c7a9bd4`]]);export{I as default};
@@ -199,29 +199,29 @@ declare const __VLS_base: vue.DefineComponent<UploadProps, UploadExpose, {}, {},
199
199
  change: (fileList: UploadFileItem[]) => any;
200
200
  success: (file: UploadFileItem, response: unknown) => any;
201
201
  error: (file: UploadFileItem, error: Error) => any;
202
- remove: (file: UploadFileItem) => any;
203
202
  progress: (file: UploadFileItem, percent: number) => any;
203
+ remove: (file: UploadFileItem) => any;
204
204
  finish: (fileList: UploadFileItem[]) => any;
205
205
  exceed: (files: File[], fileList: UploadFileItem[]) => any;
206
206
  }, string, vue.PublicProps, Readonly<UploadProps> & Readonly<{
207
207
  onChange?: ((fileList: UploadFileItem[]) => any) | undefined;
208
208
  onSuccess?: ((file: UploadFileItem, response: unknown) => any) | undefined;
209
209
  onError?: ((file: UploadFileItem, error: Error) => any) | undefined;
210
- onRemove?: ((file: UploadFileItem) => any) | undefined;
211
210
  onProgress?: ((file: UploadFileItem, percent: number) => any) | undefined;
211
+ onRemove?: ((file: UploadFileItem) => any) | undefined;
212
212
  onFinish?: ((fileList: UploadFileItem[]) => any) | undefined;
213
213
  onExceed?: ((files: File[], fileList: UploadFileItem[]) => any) | undefined;
214
214
  }>, {
215
215
  disabled: boolean;
216
216
  multiple: boolean;
217
217
  data: Record<string, unknown>;
218
- draggable: boolean;
219
218
  action: string;
220
219
  headers: Record<string, string>;
221
220
  directory: boolean;
222
221
  accept: string;
223
222
  maxSize: number;
224
223
  maxCount: number;
224
+ draggable: boolean;
225
225
  pasteable: boolean;
226
226
  chunked: boolean;
227
227
  chunkSize: number;
@@ -199,29 +199,29 @@ declare const __VLS_base: vue.DefineComponent<UploadProps, UploadExpose, {}, {},
199
199
  change: (fileList: UploadFileItem[]) => any;
200
200
  success: (file: UploadFileItem, response: unknown) => any;
201
201
  error: (file: UploadFileItem, error: Error) => any;
202
- remove: (file: UploadFileItem) => any;
203
202
  progress: (file: UploadFileItem, percent: number) => any;
203
+ remove: (file: UploadFileItem) => any;
204
204
  finish: (fileList: UploadFileItem[]) => any;
205
205
  exceed: (files: File[], fileList: UploadFileItem[]) => any;
206
206
  }, string, vue.PublicProps, Readonly<UploadProps> & Readonly<{
207
207
  onChange?: ((fileList: UploadFileItem[]) => any) | undefined;
208
208
  onSuccess?: ((file: UploadFileItem, response: unknown) => any) | undefined;
209
209
  onError?: ((file: UploadFileItem, error: Error) => any) | undefined;
210
- onRemove?: ((file: UploadFileItem) => any) | undefined;
211
210
  onProgress?: ((file: UploadFileItem, percent: number) => any) | undefined;
211
+ onRemove?: ((file: UploadFileItem) => any) | undefined;
212
212
  onFinish?: ((fileList: UploadFileItem[]) => any) | undefined;
213
213
  onExceed?: ((files: File[], fileList: UploadFileItem[]) => any) | undefined;
214
214
  }>, {
215
215
  disabled: boolean;
216
216
  multiple: boolean;
217
217
  data: Record<string, unknown>;
218
- draggable: boolean;
219
218
  action: string;
220
219
  headers: Record<string, string>;
221
220
  directory: boolean;
222
221
  accept: string;
223
222
  maxSize: number;
224
223
  maxCount: number;
224
+ draggable: boolean;
225
225
  pasteable: boolean;
226
226
  chunked: boolean;
227
227
  chunkSize: number;
@@ -231,23 +231,23 @@ interface NotificationCenterExpose {
231
231
  type __VLS_Slots = NotificationCenterSlots;
232
232
  declare const __VLS_base: vue.DefineComponent<NotificationCenterProps, NotificationCenterExpose, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
233
233
  delete: (ids: string[]) => any;
234
- read: (ids: string[]) => any;
235
234
  itemClick: (message: NotificationMessage) => any;
235
+ navigate: (url: string) => any;
236
+ read: (ids: string[]) => any;
236
237
  allRead: (category?: NotificationCategory | undefined) => any;
237
238
  unreadChange: (count: number) => any;
238
239
  wsStatusChange: (status: WSConnectionStatus) => any;
239
240
  newMessage: (message: NotificationMessage) => any;
240
- navigate: (url: string) => any;
241
241
  viewAll: () => any;
242
242
  }, string, vue.PublicProps, Readonly<NotificationCenterProps> & Readonly<{
243
243
  onDelete?: ((ids: string[]) => any) | undefined;
244
- onRead?: ((ids: string[]) => any) | undefined;
245
244
  onItemClick?: ((message: NotificationMessage) => any) | undefined;
245
+ onNavigate?: ((url: string) => any) | undefined;
246
+ onRead?: ((ids: string[]) => any) | undefined;
246
247
  onAllRead?: ((category?: NotificationCategory | undefined) => any) | undefined;
247
248
  onUnreadChange?: ((count: number) => any) | undefined;
248
249
  onWsStatusChange?: ((status: WSConnectionStatus) => any) | undefined;
249
250
  onNewMessage?: ((message: NotificationMessage) => any) | undefined;
250
- onNavigate?: ((url: string) => any) | undefined;
251
251
  onViewAll?: (() => any) | undefined;
252
252
  }>, {
253
253
  pageSize: number;
@@ -231,23 +231,23 @@ interface NotificationCenterExpose {
231
231
  type __VLS_Slots = NotificationCenterSlots;
232
232
  declare const __VLS_base: vue.DefineComponent<NotificationCenterProps, NotificationCenterExpose, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
233
233
  delete: (ids: string[]) => any;
234
- read: (ids: string[]) => any;
235
234
  itemClick: (message: NotificationMessage) => any;
235
+ navigate: (url: string) => any;
236
+ read: (ids: string[]) => any;
236
237
  allRead: (category?: NotificationCategory | undefined) => any;
237
238
  unreadChange: (count: number) => any;
238
239
  wsStatusChange: (status: WSConnectionStatus) => any;
239
240
  newMessage: (message: NotificationMessage) => any;
240
- navigate: (url: string) => any;
241
241
  viewAll: () => any;
242
242
  }, string, vue.PublicProps, Readonly<NotificationCenterProps> & Readonly<{
243
243
  onDelete?: ((ids: string[]) => any) | undefined;
244
- onRead?: ((ids: string[]) => any) | undefined;
245
244
  onItemClick?: ((message: NotificationMessage) => any) | undefined;
245
+ onNavigate?: ((url: string) => any) | undefined;
246
+ onRead?: ((ids: string[]) => any) | undefined;
246
247
  onAllRead?: ((category?: NotificationCategory | undefined) => any) | undefined;
247
248
  onUnreadChange?: ((count: number) => any) | undefined;
248
249
  onWsStatusChange?: ((status: WSConnectionStatus) => any) | undefined;
249
250
  onNewMessage?: ((message: NotificationMessage) => any) | undefined;
250
- onNavigate?: ((url: string) => any) | undefined;
251
251
  onViewAll?: (() => any) | undefined;
252
252
  }>, {
253
253
  pageSize: number;
package/dist/data2.cjs CHANGED
@@ -1 +1 @@
1
- require(`./chunk.cjs`);let e=require(`vue`);const t=new Set([`__proto__`,`prototype`,`constructor`]);function n(e){let n=e.replace(/\[([^\]]+)\]/g,`.$1`).split(`.`).map(e=>e.trim().replace(/^['"]|['"]$/g,``)).filter(Boolean);if(n.length===0)throw TypeError(`Data path cannot be empty`);if(n.some(e=>t.has(e)))throw TypeError(`Unsafe data path: ${e}`);return n}function r(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return!0;let r=e;for(let e of n(t)){if(typeof r!=`object`||!r||!Object.prototype.hasOwnProperty.call(r,e))return!1;r=r[e]}return!0}function i(e,t){return Object.prototype.hasOwnProperty.call(e,t)?e[t]:n(t).reduce((e,t)=>{if(!(typeof e!=`object`||!e))return e[t]},e)}function a(e,t,r){if(Object.prototype.hasOwnProperty.call(e,t)){e[t]=r;return}let i=n(t),a=e;i.forEach((e,t)=>{if(t===i.length-1){a[e]=r;return}let n=a[e];(typeof n!=`object`||!n)&&(a[e]=/^\d+$/.test(i[t+1])?[]:{}),a=a[e]})}function o(e,t){if(Object.prototype.hasOwnProperty.call(e,t)){delete e[t];return}let r=n(t),i=r.pop();if(!i)return;let a=r.reduce((e,t)=>{if(!(typeof e!=`object`||!e))return e[t]},e);a&&typeof a==`object`&&delete a[i]}function s(t){return(0,e.isProxy)(t)?(0,e.toRaw)(t):t}function c(e,t){let n=s(e);if(typeof n!=`object`||!n)return n;if(t.has(n))return t.get(n);if(n instanceof Date)return new Date(n.getTime());if(n instanceof RegExp)return new RegExp(n);if(n instanceof ArrayBuffer)return n.slice(0);if(Array.isArray(n)){let e=[];return t.set(n,e),n.forEach(n=>e.push(c(n,t))),e}if(n instanceof Map){let e=new Map;return t.set(n,e),n.forEach((n,r)=>{e.set(c(r,t),c(n,t))}),e}if(n instanceof Set){let e=new Set;return t.set(n,e),n.forEach(n=>e.add(c(n,t))),e}let r=Object.getPrototypeOf(n);if(r!==Object.prototype&&r!==null)return n;let i={};return t.set(n,i),Reflect.ownKeys(n).forEach(e=>{typeof e==`string`&&(i[e]=c(n[e],t))}),i}function l(e){let t=s(e);if(typeof structuredClone==`function`)try{return structuredClone(t)}catch{}return c(t,new WeakMap)}const u=e=>typeof e==`object`&&!!e;function d(e,t){let n=e.additions.length;if(t())return!0;for(;e.additions.length>n;){let[t,n]=e.additions.pop();e.pairs.get(t)?.delete(n)}return!1}function f(e,t,n,r){return n.has(e)&&g(t,n.get(e),r)}function p(e,t,n){if(e.size!==t.size)return!1;let r=new Set,i;for(let[a,o]of e){if(!u(a)){if(!f(a,o,t,n))return!1;continue}if(!r.has(a)&&d(n,()=>f(a,o,t,n))){r.add(a);continue}i??=[...t].filter(e=>u(e[0]));let e=i.find(([e,t])=>e!==a&&!r.has(e)&&d(n,()=>g(a,e,n)&&g(o,t,n)));if(!e)return!1;r.add(e[0])}return!0}function m(e,t,n){if(e.size!==t.size)return!1;let r=new Set,i;for(let a of e){if(!u(a)){if(!t.has(a))return!1;continue}if(!r.has(a)&&t.has(a)){r.add(a);continue}i??=[...t].filter(u);let e=i.find(e=>!r.has(e)&&d(n,()=>g(a,e,n)));if(!e)return!1;r.add(e)}return!0}function h(e,t,n){let r=n.pairs.get(e);if(r?.has(t))return!0;if(r||(r=new WeakSet,n.pairs.set(e,r)),r.add(t),n.additions.push([e,t]),e instanceof Date||t instanceof Date)return e instanceof Date&&t instanceof Date&&e.getTime()===t.getTime();if(e instanceof RegExp||t instanceof RegExp)return e instanceof RegExp&&t instanceof RegExp&&e.source===t.source&&e.flags===t.flags;if(Array.isArray(e)||Array.isArray(t))return Array.isArray(e)&&Array.isArray(t)&&e.length===t.length&&e.every((e,r)=>g(e,t[r],n));if(e instanceof Map||t instanceof Map)return!(e instanceof Map)||!(t instanceof Map)?!1:p(e,t,n);if(e instanceof Set||t instanceof Set)return!(e instanceof Set)||!(t instanceof Set)?!1:m(e,t,n);let i=Object.keys(e),a=Object.keys(t);return i.length===a.length?i.every(r=>Object.prototype.hasOwnProperty.call(t,r)&&g(e[r],t[r],n)):!1}function g(e,t,n){let r=s(e),i=s(t);return Object.is(r,i)?!0:r===null||i===null||typeof r!=`object`||typeof i!=`object`?!1:h(r,i,n)}function _(e,t){return g(e,t,{pairs:new WeakMap,additions:[]})}function v(e,t){let n=l(t);Object.keys(e).forEach(t=>{Object.prototype.hasOwnProperty.call(n,t)||delete e[t]}),Object.assign(e,n)}Object.defineProperty(exports,`a`,{enumerable:!0,get:function(){return _}}),Object.defineProperty(exports,`c`,{enumerable:!0,get:function(){return a}}),Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return r}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return o}}),Object.defineProperty(exports,`o`,{enumerable:!0,get:function(){return n}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return i}}),Object.defineProperty(exports,`s`,{enumerable:!0,get:function(){return v}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return l}});
1
+ require(`./chunk.cjs`);let e=require(`vue`);const t=new Set([`__proto__`,`prototype`,`constructor`]);function n(e,t){return Reflect.has(e,t),Object.prototype.hasOwnProperty.call(e,t)}function r(e,t){return typeof e==`object`&&e&&n(e,t)?e[t]:void 0}function i(e){let n=e.replace(/\[([^\]]+)\]/g,`.$1`).split(`.`).map(e=>e.trim().replace(/^['"]|['"]$/g,``)).filter(Boolean);if(n.length===0)throw TypeError(`Data path cannot be empty`);if(n.some(e=>t.has(e)))throw TypeError(`Unsafe data path: ${e}`);return n}function a(e,t){if(n(e,t))return!0;let r=e;for(let e of i(t)){if(typeof r!=`object`||!r||!n(r,e))return!1;r=r[e]}return!0}function o(e,t){return n(e,t)?e[t]:i(t).reduce(r,e)}function s(e,t,n){if(Object.prototype.hasOwnProperty.call(e,t)){e[t]=n;return}let a=i(t),o=e;a.forEach((e,t)=>{if(t===a.length-1){o[e]=n;return}let i=r(o,e);(typeof i!=`object`||!i)&&(o[e]=/^\d+$/.test(a[t+1])?[]:{}),o=o[e]})}function c(e,t){if(Object.prototype.hasOwnProperty.call(e,t)){delete e[t];return}let n=i(t),a=n.pop();if(!a)return;let o=n.reduce(r,e);o&&typeof o==`object`&&delete o[a]}function l(t){return(0,e.isProxy)(t)?(0,e.toRaw)(t):t}function u(e,t){let n=l(e);if(typeof n!=`object`||!n)return n;if(t.has(n))return t.get(n);if(n instanceof Date)return new Date(n.getTime());if(n instanceof RegExp)return new RegExp(n);if(n instanceof ArrayBuffer)return n.slice(0);if(Array.isArray(n)){let e=[];return e.length=n.length,t.set(n,e),n.forEach((n,r)=>{e[r]=u(n,t)}),e}if(n instanceof Map){let e=new Map;return t.set(n,e),n.forEach((n,r)=>{e.set(u(r,t),u(n,t))}),e}if(n instanceof Set){let e=new Set;return t.set(n,e),n.forEach(n=>e.add(u(n,t))),e}let r=Object.getPrototypeOf(n);if(r!==Object.prototype&&r!==null)return n;let i={};return t.set(n,i),Reflect.ownKeys(n).forEach(e=>{if(typeof e==`string`){let r=u(n[e],t);e===`__proto__`?Object.defineProperty(i,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):i[e]=r}}),i}function d(e){let t=l(e);if(typeof structuredClone==`function`)try{return structuredClone(t)}catch{}return u(t,new WeakMap)}const f=e=>typeof e==`object`&&!!e;function p(e,t){let n=e.additions.length;if(t())return!0;for(;e.additions.length>n;){let[t,n]=e.additions.pop();e.pairs.get(t)?.delete(n)}return!1}function m(e,t,n,r){return n.has(e)&&v(t,n.get(e),r)}function h(e,t,n){if(e.size!==t.size)return!1;let r=new Set,i;for(let[a,o]of e){if(!f(a)){if(!m(a,o,t,n))return!1;continue}if(!r.has(a)&&p(n,()=>m(a,o,t,n))){r.add(a);continue}i??=[...t].filter(e=>f(e[0]));let e=i.find(([e,t])=>e!==a&&!r.has(e)&&p(n,()=>v(a,e,n)&&v(o,t,n)));if(!e)return!1;r.add(e[0])}return!0}function g(e,t,n){if(e.size!==t.size)return!1;let r=new Set,i;for(let a of e){if(!f(a)){if(!t.has(a))return!1;continue}if(!r.has(a)&&t.has(a)){r.add(a);continue}i??=[...t].filter(f);let e=i.find(e=>!r.has(e)&&p(n,()=>v(a,e,n)));if(!e)return!1;r.add(e)}return!0}function _(e,t,n){let r=n.pairs.get(e);if(r?.has(t))return!0;if(r||(r=new WeakSet,n.pairs.set(e,r)),r.add(t),n.additions.push([e,t]),e instanceof Date||t instanceof Date)return e instanceof Date&&t instanceof Date&&e.getTime()===t.getTime();if(e instanceof RegExp||t instanceof RegExp)return e instanceof RegExp&&t instanceof RegExp&&e.source===t.source&&e.flags===t.flags;if(Array.isArray(e)||Array.isArray(t)){if(!Array.isArray(e)||!Array.isArray(t)||e.length!==t.length)return!1;for(let r=0;r<e.length;r++)if(!v(e[r],t[r],n))return!1;return!0}if(e instanceof Map||t instanceof Map)return!(e instanceof Map)||!(t instanceof Map)?!1:h(e,t,n);if(e instanceof Set||t instanceof Set)return!(e instanceof Set)||!(t instanceof Set)?!1:g(e,t,n);let i=Object.keys(e),a=Object.keys(t);return i.length===a.length?i.every(r=>Object.prototype.hasOwnProperty.call(t,r)&&v(e[r],t[r],n)):!1}function v(e,t,n){let r=l(e),i=l(t);return Object.is(r,i)?!0:r===null||i===null||typeof r!=`object`||typeof i!=`object`?!1:_(r,i,n)}function y(e,t){return v(e,t,{pairs:new WeakMap,additions:[]})}function b(e,t){let n=d(t);Object.keys(e).forEach(t=>{Object.prototype.hasOwnProperty.call(n,t)||delete e[t]}),Object.assign(e,n)}Object.defineProperty(exports,`a`,{enumerable:!0,get:function(){return y}}),Object.defineProperty(exports,`c`,{enumerable:!0,get:function(){return s}}),Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return a}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return c}}),Object.defineProperty(exports,`o`,{enumerable:!0,get:function(){return i}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return o}}),Object.defineProperty(exports,`s`,{enumerable:!0,get:function(){return b}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return d}});
package/dist/data2.d.cts CHANGED
@@ -65,27 +65,27 @@ type __VLS_Slots = {} & { [K in NonNullable<typeof __VLS_37>]?: (props: typeof _
65
65
  declare const __VLS_base: vue.DefineComponent<CTabsProps, {
66
66
  activeValue: vue.WritableComputedRef<TabsValue | null, TabsValue | null>;
67
67
  }, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {} & {
68
+ add: () => any;
68
69
  "update:modelValue": (value: TabsValue) => any;
69
70
  change: (value: TabsValue, item: TabsItem | undefined) => any;
70
- add: () => any;
71
71
  close: (value: TabsValue) => any;
72
72
  }, string, vue.PublicProps, Readonly<CTabsProps> & Readonly<{
73
+ onAdd?: (() => any) | undefined;
73
74
  "onUpdate:modelValue"?: ((value: TabsValue) => any) | undefined;
74
75
  onChange?: ((value: TabsValue, item: TabsItem | undefined) => any) | undefined;
75
- onAdd?: (() => any) | undefined;
76
76
  onClose?: ((value: TabsValue) => any) | undefined;
77
77
  }>, {
78
+ size: TabsSize;
78
79
  modelValue: TabsValue | null;
79
80
  type: TabsType;
80
- size: TabsSize;
81
81
  defaultValue: TabsValue | null;
82
82
  placement: TabsPlacement;
83
83
  displayDirective: TabsDisplayDirective;
84
84
  items: readonly TabsItem[];
85
85
  animated: boolean;
86
86
  justifyContent: TabsJustifyContent;
87
- closable: boolean;
88
87
  addable: boolean;
88
+ closable: boolean;
89
89
  tabsOnly: boolean;
90
90
  paneClass: string;
91
91
  paneStyle: string | vue.CSSProperties;
package/dist/data2.d.ts CHANGED
@@ -65,27 +65,27 @@ type __VLS_Slots = {} & { [K in NonNullable<typeof __VLS_37>]?: (props: typeof _
65
65
  declare const __VLS_base: vue.DefineComponent<CTabsProps, {
66
66
  activeValue: vue.WritableComputedRef<TabsValue | null, TabsValue | null>;
67
67
  }, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {} & {
68
+ add: () => any;
68
69
  "update:modelValue": (value: TabsValue) => any;
69
70
  change: (value: TabsValue, item: TabsItem | undefined) => any;
70
- add: () => any;
71
71
  close: (value: TabsValue) => any;
72
72
  }, string, vue.PublicProps, Readonly<CTabsProps> & Readonly<{
73
+ onAdd?: (() => any) | undefined;
73
74
  "onUpdate:modelValue"?: ((value: TabsValue) => any) | undefined;
74
75
  onChange?: ((value: TabsValue, item: TabsItem | undefined) => any) | undefined;
75
- onAdd?: (() => any) | undefined;
76
76
  onClose?: ((value: TabsValue) => any) | undefined;
77
77
  }>, {
78
+ size: TabsSize;
78
79
  modelValue: TabsValue | null;
79
80
  type: TabsType;
80
- size: TabsSize;
81
81
  defaultValue: TabsValue | null;
82
82
  placement: TabsPlacement;
83
83
  displayDirective: TabsDisplayDirective;
84
84
  items: readonly TabsItem[];
85
85
  animated: boolean;
86
86
  justifyContent: TabsJustifyContent;
87
- closable: boolean;
88
87
  addable: boolean;
88
+ closable: boolean;
89
89
  tabsOnly: boolean;
90
90
  paneClass: string;
91
91
  paneStyle: string | vue.CSSProperties;
package/dist/data2.js CHANGED
@@ -1 +1 @@
1
- import{isProxy as e,toRaw as t}from"vue";const n=new Set([`__proto__`,`prototype`,`constructor`]);function r(e){let t=e.replace(/\[([^\]]+)\]/g,`.$1`).split(`.`).map(e=>e.trim().replace(/^['"]|['"]$/g,``)).filter(Boolean);if(t.length===0)throw TypeError(`Data path cannot be empty`);if(t.some(e=>n.has(e)))throw TypeError(`Unsafe data path: ${e}`);return t}function i(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return!0;let n=e;for(let e of r(t)){if(typeof n!=`object`||!n||!Object.prototype.hasOwnProperty.call(n,e))return!1;n=n[e]}return!0}function a(e,t){return Object.prototype.hasOwnProperty.call(e,t)?e[t]:r(t).reduce((e,t)=>{if(!(typeof e!=`object`||!e))return e[t]},e)}function o(e,t,n){if(Object.prototype.hasOwnProperty.call(e,t)){e[t]=n;return}let i=r(t),a=e;i.forEach((e,t)=>{if(t===i.length-1){a[e]=n;return}let r=a[e];(typeof r!=`object`||!r)&&(a[e]=/^\d+$/.test(i[t+1])?[]:{}),a=a[e]})}function s(e,t){if(Object.prototype.hasOwnProperty.call(e,t)){delete e[t];return}let n=r(t),i=n.pop();if(!i)return;let a=n.reduce((e,t)=>{if(!(typeof e!=`object`||!e))return e[t]},e);a&&typeof a==`object`&&delete a[i]}function c(n){return e(n)?t(n):n}function l(e,t){let n=c(e);if(typeof n!=`object`||!n)return n;if(t.has(n))return t.get(n);if(n instanceof Date)return new Date(n.getTime());if(n instanceof RegExp)return new RegExp(n);if(n instanceof ArrayBuffer)return n.slice(0);if(Array.isArray(n)){let e=[];return t.set(n,e),n.forEach(n=>e.push(l(n,t))),e}if(n instanceof Map){let e=new Map;return t.set(n,e),n.forEach((n,r)=>{e.set(l(r,t),l(n,t))}),e}if(n instanceof Set){let e=new Set;return t.set(n,e),n.forEach(n=>e.add(l(n,t))),e}let r=Object.getPrototypeOf(n);if(r!==Object.prototype&&r!==null)return n;let i={};return t.set(n,i),Reflect.ownKeys(n).forEach(e=>{typeof e==`string`&&(i[e]=l(n[e],t))}),i}function u(e){let t=c(e);if(typeof structuredClone==`function`)try{return structuredClone(t)}catch{}return l(t,new WeakMap)}const d=e=>typeof e==`object`&&!!e;function f(e,t){let n=e.additions.length;if(t())return!0;for(;e.additions.length>n;){let[t,n]=e.additions.pop();e.pairs.get(t)?.delete(n)}return!1}function p(e,t,n,r){return n.has(e)&&_(t,n.get(e),r)}function m(e,t,n){if(e.size!==t.size)return!1;let r=new Set,i;for(let[a,o]of e){if(!d(a)){if(!p(a,o,t,n))return!1;continue}if(!r.has(a)&&f(n,()=>p(a,o,t,n))){r.add(a);continue}i??=[...t].filter(e=>d(e[0]));let e=i.find(([e,t])=>e!==a&&!r.has(e)&&f(n,()=>_(a,e,n)&&_(o,t,n)));if(!e)return!1;r.add(e[0])}return!0}function h(e,t,n){if(e.size!==t.size)return!1;let r=new Set,i;for(let a of e){if(!d(a)){if(!t.has(a))return!1;continue}if(!r.has(a)&&t.has(a)){r.add(a);continue}i??=[...t].filter(d);let e=i.find(e=>!r.has(e)&&f(n,()=>_(a,e,n)));if(!e)return!1;r.add(e)}return!0}function g(e,t,n){let r=n.pairs.get(e);if(r?.has(t))return!0;if(r||(r=new WeakSet,n.pairs.set(e,r)),r.add(t),n.additions.push([e,t]),e instanceof Date||t instanceof Date)return e instanceof Date&&t instanceof Date&&e.getTime()===t.getTime();if(e instanceof RegExp||t instanceof RegExp)return e instanceof RegExp&&t instanceof RegExp&&e.source===t.source&&e.flags===t.flags;if(Array.isArray(e)||Array.isArray(t))return Array.isArray(e)&&Array.isArray(t)&&e.length===t.length&&e.every((e,r)=>_(e,t[r],n));if(e instanceof Map||t instanceof Map)return!(e instanceof Map)||!(t instanceof Map)?!1:m(e,t,n);if(e instanceof Set||t instanceof Set)return!(e instanceof Set)||!(t instanceof Set)?!1:h(e,t,n);let i=Object.keys(e),a=Object.keys(t);return i.length===a.length?i.every(r=>Object.prototype.hasOwnProperty.call(t,r)&&_(e[r],t[r],n)):!1}function _(e,t,n){let r=c(e),i=c(t);return Object.is(r,i)?!0:r===null||i===null||typeof r!=`object`||typeof i!=`object`?!1:g(r,i,n)}function v(e,t){return _(e,t,{pairs:new WeakMap,additions:[]})}function y(e,t){let n=u(t);Object.keys(e).forEach(t=>{Object.prototype.hasOwnProperty.call(n,t)||delete e[t]}),Object.assign(e,n)}export{v as a,o as c,i,s as n,r as o,a as r,y as s,u as t};
1
+ import{isProxy as e,toRaw as t}from"vue";const n=new Set([`__proto__`,`prototype`,`constructor`]);function r(e,t){return Reflect.has(e,t),Object.prototype.hasOwnProperty.call(e,t)}function i(e,t){return typeof e==`object`&&e&&r(e,t)?e[t]:void 0}function a(e){let t=e.replace(/\[([^\]]+)\]/g,`.$1`).split(`.`).map(e=>e.trim().replace(/^['"]|['"]$/g,``)).filter(Boolean);if(t.length===0)throw TypeError(`Data path cannot be empty`);if(t.some(e=>n.has(e)))throw TypeError(`Unsafe data path: ${e}`);return t}function o(e,t){if(r(e,t))return!0;let n=e;for(let e of a(t)){if(typeof n!=`object`||!n||!r(n,e))return!1;n=n[e]}return!0}function s(e,t){return r(e,t)?e[t]:a(t).reduce(i,e)}function c(e,t,n){if(Object.prototype.hasOwnProperty.call(e,t)){e[t]=n;return}let r=a(t),o=e;r.forEach((e,t)=>{if(t===r.length-1){o[e]=n;return}let a=i(o,e);(typeof a!=`object`||!a)&&(o[e]=/^\d+$/.test(r[t+1])?[]:{}),o=o[e]})}function l(e,t){if(Object.prototype.hasOwnProperty.call(e,t)){delete e[t];return}let n=a(t),r=n.pop();if(!r)return;let o=n.reduce(i,e);o&&typeof o==`object`&&delete o[r]}function u(n){return e(n)?t(n):n}function d(e,t){let n=u(e);if(typeof n!=`object`||!n)return n;if(t.has(n))return t.get(n);if(n instanceof Date)return new Date(n.getTime());if(n instanceof RegExp)return new RegExp(n);if(n instanceof ArrayBuffer)return n.slice(0);if(Array.isArray(n)){let e=[];return e.length=n.length,t.set(n,e),n.forEach((n,r)=>{e[r]=d(n,t)}),e}if(n instanceof Map){let e=new Map;return t.set(n,e),n.forEach((n,r)=>{e.set(d(r,t),d(n,t))}),e}if(n instanceof Set){let e=new Set;return t.set(n,e),n.forEach(n=>e.add(d(n,t))),e}let r=Object.getPrototypeOf(n);if(r!==Object.prototype&&r!==null)return n;let i={};return t.set(n,i),Reflect.ownKeys(n).forEach(e=>{if(typeof e==`string`){let r=d(n[e],t);e===`__proto__`?Object.defineProperty(i,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):i[e]=r}}),i}function f(e){let t=u(e);if(typeof structuredClone==`function`)try{return structuredClone(t)}catch{}return d(t,new WeakMap)}const p=e=>typeof e==`object`&&!!e;function m(e,t){let n=e.additions.length;if(t())return!0;for(;e.additions.length>n;){let[t,n]=e.additions.pop();e.pairs.get(t)?.delete(n)}return!1}function h(e,t,n,r){return n.has(e)&&y(t,n.get(e),r)}function g(e,t,n){if(e.size!==t.size)return!1;let r=new Set,i;for(let[a,o]of e){if(!p(a)){if(!h(a,o,t,n))return!1;continue}if(!r.has(a)&&m(n,()=>h(a,o,t,n))){r.add(a);continue}i??=[...t].filter(e=>p(e[0]));let e=i.find(([e,t])=>e!==a&&!r.has(e)&&m(n,()=>y(a,e,n)&&y(o,t,n)));if(!e)return!1;r.add(e[0])}return!0}function _(e,t,n){if(e.size!==t.size)return!1;let r=new Set,i;for(let a of e){if(!p(a)){if(!t.has(a))return!1;continue}if(!r.has(a)&&t.has(a)){r.add(a);continue}i??=[...t].filter(p);let e=i.find(e=>!r.has(e)&&m(n,()=>y(a,e,n)));if(!e)return!1;r.add(e)}return!0}function v(e,t,n){let r=n.pairs.get(e);if(r?.has(t))return!0;if(r||(r=new WeakSet,n.pairs.set(e,r)),r.add(t),n.additions.push([e,t]),e instanceof Date||t instanceof Date)return e instanceof Date&&t instanceof Date&&e.getTime()===t.getTime();if(e instanceof RegExp||t instanceof RegExp)return e instanceof RegExp&&t instanceof RegExp&&e.source===t.source&&e.flags===t.flags;if(Array.isArray(e)||Array.isArray(t)){if(!Array.isArray(e)||!Array.isArray(t)||e.length!==t.length)return!1;for(let r=0;r<e.length;r++)if(!y(e[r],t[r],n))return!1;return!0}if(e instanceof Map||t instanceof Map)return!(e instanceof Map)||!(t instanceof Map)?!1:g(e,t,n);if(e instanceof Set||t instanceof Set)return!(e instanceof Set)||!(t instanceof Set)?!1:_(e,t,n);let i=Object.keys(e),a=Object.keys(t);return i.length===a.length?i.every(r=>Object.prototype.hasOwnProperty.call(t,r)&&y(e[r],t[r],n)):!1}function y(e,t,n){let r=u(e),i=u(t);return Object.is(r,i)?!0:r===null||i===null||typeof r!=`object`||typeof i!=`object`?!1:v(r,i,n)}function b(e,t){return y(e,t,{pairs:new WeakMap,additions:[]})}function x(e,t){let n=f(t);Object.keys(e).forEach(t=>{Object.prototype.hasOwnProperty.call(n,t)||delete e[t]}),Object.assign(e,n)}export{b as a,c,o as i,l as n,a as o,s as r,x as s,f as t};
package/dist/helpers.cjs CHANGED
@@ -1 +1 @@
1
- require(`./chunk.cjs`);const e=require(`./density.cjs`),t=require(`./dictionary.cjs`),n=require(`./data2.cjs`),r=require(`./useComponentLocale.cjs`),i=require(`./feedback.cjs`),a=require(`./C_Icon2.cjs`),o=require(`./export-helper.cjs`),s=require(`./useFormConfig.cjs`),c=require(`./useGridWidth.cjs`),l=require(`./useDictionary.cjs`),u=require(`./formValidation.cjs`);let d=require(`vue`),f=require(`naive-ui`);function p(e,t){if(Reflect.has(e,t)&&Object.prototype.hasOwnProperty.call(e,t))return(0,d.isReactive)(e);let r=e;for(let e of n.o(t)){if(!r||typeof r!=`object`||!(0,d.isReactive)(r))return!1;r=r[e]}return!0}function m(e,t=new Set){if(typeof e!=`object`||!e||t.has(e))return!0;t.add(e);let n=(0,d.isReactive)(e);return e instanceof Map?(e.forEach((e,r)=>{n=m(r,t)&&n,n=m(e,t)&&n}),n):e instanceof Set?(e.forEach(e=>{n=m(e,t)&&n}),n):(Object.values(e).forEach(e=>{n=m(e,t)&&n}),n)}function h(e,t){let r=(0,d.shallowRef)({}),i=new Map,a=(0,d.isReactive)(e);function o(){let n=new Set(t?(0,d.toValue)(t):[...Object.keys(r.value),...Object.keys(e)]);for(let e of i.keys())n.has(e)||i.delete(e);return n}let s=(0,d.computed)(()=>{for(let e of o())if(u(e))return!0;return!1});function c(){let e=[];for(let t of o())u(t)&&e.push(t);return e}function l(e){return f(e)}function u(t){if(!a)return f(t);let o=i.get(t);return o||(o=(0,d.computed)(()=>{let i=n.r(e,t),a=p(e,t);return{cacheable:m(i)&&a,dirty:!n.a(n.r(r.value,t),i)}}),i.set(t,o)),o.value.cacheable?o.value.dirty:f(t)}function f(t){let i=n.r(e,t);return m(i),!n.a(n.r(r.value,t),i)}function h(){r.value=n.t(e)}function g(){return n.t(r.value)}return{isDirty:s,getChangedFields:c,isFieldDirty:l,markAsClean:h,getCleanModel:g}}const g={input:``,textarea:``,editor:``,select:null,datePicker:null,daterange:null,timePicker:null,cascader:null,colorPicker:null,checkbox:[],upload:[],radio:``,inputNumber:null,slider:null,rate:null,switch:!1};function _(e){return n.t((e.value===void 0?g[e.type]:e.value)??null)}function v(e){let t=new Set;e.forEach((e,n)=>{if(!e.prop?.trim())throw TypeError(`[C_Form] options[${n}].prop 不能为空`);if(t.has(e.prop))throw TypeError(`[C_Form] 字段 prop 重复: ${e.prop}`);t.add(e.prop)})}function y(e,t,a,o,s,c){let f=(0,d.reactive)(n.t(s?.value??(t.value.mode===`edit`?t.value.initialValues:void 0)??{})),p=(0,d.reactive)({}),m=new Map,g=(0,d.ref)({}),y=(0,d.ref)({}),b=(0,d.ref)({}),x=(0,d.ref)(!1),S=new Map,C=!1,w,T=new Map,E=new Map,D=new Map,O=new Map,k=new Set,A=!1,j=!1,M=0,N=i.t(()=>t.value.feedback),{t:P}=r.t(()=>t.value.locale),{isDirty:F,getChangedFields:ee,isFieldDirty:te,markAsClean:I,getCleanModel:ne}=h(f,()=>e.value.map(e=>e.prop));function L(e,n,r){if(!C)try{t.value.onError?t.value.onError(e,{source:n,field:r}):N.error(e instanceof Error?e.message:String(e),e)}catch{}}let R=l.t(()=>new Map(e.value.filter(e=>e.dictionary!==void 0&&e.children===void 0&&!e.asyncOptions).map(e=>[e.prop,e.dictionary])),{onError:(e,t)=>L(e,`async-options`,t)});function z(e,t){if(!(C||!t))try{N[e](t)}catch{}}let B=(0,d.computed)(()=>e.value.filter(e=>{if(e.show===!1)return!1;if(!e.showWhen)return!0;try{return e.showWhen(f)}catch(t){return L(t,`callback`,e.prop),!1}}));function re(){j=!0;let e=++M;(0,d.nextTick)(()=>{e===M&&(j=!1)})}function V(){return n.t(f)}function ie(t){let r=t?n.t(t):{};return e.value.forEach(e=>{n.i(r,e.prop)||n.c(r,e.prop,_(e))}),r}function H(e){try{let t=u.n(e.rulesWhen?e.rulesWhen(f):e.rules);if(S.delete(e.prop),e.required&&!t.some(e=>e.required)){let n=e.label||e.prop;t.unshift(u.t(n,P(`form.required`,{label:n})))}if(e.crossFieldValidator){let n=e.crossFieldValidator;t.push({async validator(){let e=await n(f);if(e)throw Error(e)},trigger:[`change`,`blur`]})}if(t.length===0){delete p[e.prop];return}p[e.prop]=t.map(t=>({...t,key:e.prop}))}catch(t){delete p[e.prop],S.set(e.prop,t),L(t,`callback`,e.prop)}}function ae(){e.value.forEach(e=>{(e.rulesWhen||e.crossFieldValidator)&&H(e)})}function oe(e){k.forEach(r=>{e.has(r)||(m.delete(r),delete p[r],S.delete(r),G(r),D.delete(r),t.value.preserveRemovedFields||n.n(f,r))})}function se(t=!1){try{v(e.value);let r=V(),i=new Set(e.value.map(e=>e.prop));oe(i),e.value.forEach(e=>{n.i(f,e.prop)||n.c(f,e.prop,_(e)),H(e),ce(e)}),k=i,X(W(r),!1),t&&(0,d.nextTick)(I)}catch(e){throw L(e,`initialize`),e}}function U(e){let t=V();re(),n.s(f,ie(e)),X(W(t),!1)}function W(t){return[...new Set([...Object.keys(t),...Object.keys(f),...e.value.map(e=>e.prop)])].filter(e=>!n.a(n.r(t,e),n.r(f,e)))}function G(e){E.get(e)?.abort(),E.delete(e),T.delete(e),O.delete(e),delete g.value[e],delete y.value[e],delete b.value[e]}function ce(e){if(D.get(e.prop)!==e.asyncOptions){if(G(e.prop),!e.asyncOptions){D.delete(e.prop);return}D.set(e.prop,e.asyncOptions),K(e,`initialize`)}}function K(e,t){if(C)return;let n=O.get(e.prop),r={item:e,reason:n?.reason===`initialize`?n.reason:t};O.set(e.prop,r),(0,d.nextTick)(()=>{O.get(e.prop)===r&&(O.delete(e.prop),ue(r.item,r.reason))})}function q(e,t,n){return C||n.signal.aborted||T.get(e)!==t||E.get(e)!==n}function le(e){return!C&&!!e.asyncOptions&&D.get(e.prop)===e.asyncOptions}async function ue(e,t){if(!le(e))return;let{prop:r}=e,i=(T.get(r)??0)+1;T.set(r,i),E.get(r)?.abort();let a=new AbortController;E.set(r,a),y.value[r]=!0,delete b.value[r];try{let o=await e.asyncOptions(V(),{field:r,reason:t,signal:a.signal});if(q(r,i,a))return;if(!Array.isArray(o))throw TypeError(`[C_Form] ${r}.asyncOptions 必须返回数组`);g.value[r]=n.t([...o])}catch(e){if(q(r,i,a))return;b.value[r]=e,L(e,`async-options`,r)}finally{T.get(r)===i&&E.get(r)===a&&(y.value[r]=!1,E.delete(r))}}async function J(t){let n=e.value.filter(e=>e.asyncOptions&&(!t||e.prop===t)),r=e.value.filter(e=>e.dictionary!==void 0&&e.children===void 0&&!e.asyncOptions&&(!t||e.prop===t));if(t&&n.length===0&&r.length===0)throw Error(`[C_Form] 未找到异步选项字段: ${t}`);await Promise.all([...n.map(e=>(O.delete(e.prop),ue(e,`manual`))),...r.map(e=>R.reload(e.prop))])}function Y(){let t=e.value.filter(e=>e.valueWhen),r=new Set;if(t.length===0)return[];for(let e=0;e<=t.length;e+=1){let e=!1;for(let i of t)try{let t=i.valueWhen?.(f);t!==void 0&&!n.a(n.r(f,i.prop),t)&&(n.c(f,i.prop,n.t(t)),r.add(i.prop),e=!0)}catch(e){L(e,`callback`,i.prop)}if(!e)return[...r]}return L(Error(`[C_Form] valueWhen 存在循环依赖,已停止继续计算`),`callback`),[...r]}function de(t){let r=t.map(e=>n.o(e).join(`.`));return e.value.filter(e=>!e.asyncOptions||!e.dependsOn?!1:(Array.isArray(e.dependsOn)?e.dependsOn:[e.dependsOn]).some(e=>{let t=n.o(e).join(`.`);return r.some(e=>e===t||e.startsWith(`${t}.`)||t.startsWith(`${e}.`))}))}function X(e,n=!0){let r=[...new Set([...e,...Y()])];ae(),de(r).forEach(e=>{K(e,`dependency`)}),n&&t.value.validateOnChange&&(0,d.nextTick)(()=>{C||Z(r).catch(()=>void 0)})}function fe(e){X([e])}function pe(e,t){t?m.set(e,t):m.delete(e)}async function me(){if(c?.value===!1)throw Error(`[C_Form] 布局尚未加载完成`);if(!a.value)throw Error(`[C_Form] 表单引用不存在`);try{let e=B.value.find(e=>S.has(e.prop));if(e)throw S.get(e.prop);if(await a.value.validate(),C)throw Error(`[C_Form] 表单已卸载`);o(`validate-success`,V())}catch(e){throw C||o(`validate-error`,e),e}}async function Z(e){if(c?.value===!1)throw Error(`[C_Form] 布局尚未加载完成`);if(!a.value)throw Error(`[C_Form] 表单引用不存在`);let t=[...new Set(Array.isArray(e)?e:[e])],n=t.find(e=>S.has(e));if(n)throw S.get(n);let r=[],i=t.flatMap(e=>{let t=m.get(e);return t?[t.validate()]:(r.push(e),[])});r.length>0&&i.push(a.value.validate(void 0,e=>r.includes(String(e.key??``))));let o=(await Promise.allSettled(i)).filter(e=>e.status===`rejected`).map(e=>e.reason);if(o.length>0)throw o}function he(e){if(!e){a.value?.restoreValidation();return}(Array.isArray(e)?e:[e]).forEach(e=>m.get(e)?.restoreValidation())}async function Q(e){let t=B.value.filter(e).map(e=>e.prop);if(t.length===0)return!0;try{return await Z(t),!0}catch{return!1}}function ge(e){let n=typeof e==`string`?e:t.value.steps?.steps?.[e]?.key;return n?Q(e=>e.layout?.step===n):Promise.resolve(!0)}function _e(e){return Q(t=>t.layout?.tab===e)}function ve(){return Q(e=>!!e.layout?.dynamic)}function ye(e){return Q(t=>t.layout?.group===e)}function be(e){Object.entries(n.t(e)).forEach(([e,t])=>{n.c(f,e,t)}),X(Object.keys(e))}function $(){let e=V();n.s(f,ne()),he(),X(W(e),!1),z(`info`,t.value.resetSuccessText)}async function xe(e,t,r=!1){n.c(f,e,n.t(t)),fe(e),r&&await Z(e)}function Se(e){return n.t(n.r(f,e))}async function Ce(e,t=!1){be(e),t&&await Z(Object.keys(e))}function we(){return C||c?.value===!1||x.value||t.value.disabled||t.value.readonly}function Te(e,r,i){return!C&&!e.signal.aborted&&c?.value!==!1&&!t.value.disabled&&!t.value.readonly&&i!==null&&a.value===i&&n.a(f,r)}async function Ee(){if(we())return!1;let e=V(),n=a.value,r=new AbortController;w=r,x.value=!0;try{if(await me(),!Te(r,e,n))return!1;let i={model:e,form:n};try{await t.value.onSubmit?.(i,{signal:r.signal})}catch(e){return r.signal.aborted||L(e,`submit`),!1}return r.signal.aborted?!1:(o(`submit`,i),z(`success`,t.value.submitSuccessText),!0)}catch{return!1}finally{w===r&&(w=void 0),x.value=!1}}function De(){se(!0);let e=s?.value??(t.value.mode===`edit`?t.value.initialValues:void 0);e&&U(e),(0,d.nextTick)(I)}return(0,d.watch)(e,()=>{let e=!A;e&&re(),se(e),A=!0},{deep:!0,immediate:!0}),s&&(0,d.watch)(s,e=>{e!==void 0&&!n.a(f,e)&&U(e)},{deep:!0,immediate:!0}),(0,d.watch)(()=>[t.value.mode,t.value.initialValues],([e,t])=>{s?.value!==void 0||e!==`edit`||!t||(U(t),(0,d.nextTick)(I))},{deep:!0}),(0,d.watch)(f,e=>{j||o(`update:modelValue`,n.t(e))},{deep:!0,flush:`post`}),(0,d.onScopeDispose)(()=>{C=!0,w?.abort(),E.forEach(e=>e.abort()),E.clear(),O.clear(),m.clear()}),{formModel:f,formRules:p,visibleOptions:B,initialize:De,handleFieldChange:fe,setFormItemRef:pe,getFormItemElement:e=>{let t=m.get(e)?.$el;return t?.nodeType===1?t:null},validate:me,validateField:Z,validateStep:ge,validateTab:_e,validateDynamicFields:ve,validateCustomGroup:ye,clearValidation:he,getModel:V,setFields:be,resetFields:$,setFieldValue:xe,getFieldValue:Se,setFieldsValue:Ce,submit:Ee,handleSubmit:Ee,handleReset:$,isSubmitting:x,isDirty:F,getChangedFields:ee,isFieldDirty:te,markAsClean:I,asyncOptionsCache:g,asyncLoadingMap:y,asyncErrorMap:b,getDictionaryOptions:R.getOptions,isDictionaryLoading:R.isLoading,reloadOptions:J}}function b(e,t){return e.matches(`:disabled`)||`disabled`in e&&e.disabled===!0||`readOnly`in e&&e.readOnly===!0||!t&&e.getAttribute(`tabindex`)===`-1`}function x(e){if(e.hidden||e.getAttribute(`aria-hidden`)===`true`||e.hasAttribute(`inert`)||e.getAttribute(`aria-disabled`)===`true`||e.getAttribute(`aria-readonly`)===`true`)return!0;let t=e.ownerDocument.defaultView?.getComputedStyle(e);return t?t.display===`none`||t.visibility===`hidden`||t.visibility===`collapse`:!1}function S(e,t=!1){if(!e.isConnected||typeof e.focus!=`function`||b(e,t))return!1;for(let t=e;t;t=t.parentElement)if(x(t))return!1;return!0}function C(e,t,n){if(!e||!S(e,n))return!1;(t??e).scrollIntoView?.({block:`nearest`,inline:`nearest`}),e.focus({preventScroll:!0});let r=e.ownerDocument.activeElement;return!!r&&(r===e||e.contains(r))}async function w(e,t,n,r){return e.focusTarget?e.focusTarget({field:e.prop,element:t,model:n,signal:r}):[...t?.querySelectorAll(`input:not([type="hidden"]),textarea,select,button,[tabindex],[contenteditable="true"]`)??[]].find(e=>S(e))}function T(e){let t=0,n=!1,r=!1,i,a=Promise.resolve(),o=()=>{let e=++t,n=i;return i=void 0,n?.abort(),e},s=t=>{let n=e.fields().find(e=>e.prop===t);if(!n||n.layout?.hidden)return;let r=e.access(n);return r.disabled||r.readonly?void 0:n},c=e=>n&&!r&&e===t,l=(t,n)=>{try{e.onError?.(t,n)}catch{}};return(0,d.onMounted)(()=>{n=!0}),(0,d.onActivated)(()=>{n=!0}),(0,d.onDeactivated)(()=>{n=!1,o()}),(0,d.onScopeDispose)(()=>{r=!0,n=!1,o()}),(0,d.watch)(e.layoutType,o),async t=>{let n=o();if(!c(n))return!1;let r=new AbortController;i=r;let u=()=>c(n)&&!r.signal.aborted,f=a.then(async()=>{if(await(0,d.nextTick)(),!u()||!s(t))return!1;let n=e.layout.value?.revealField;return n&&!await n(t,u)?!1:(await(0,d.nextTick)(),u()&&!!s(t))});a=f.catch(()=>!1);try{if(!await f)return!1;let n=s(t);if(!n)return!1;let i=e.getElement(t),a=await w(n,i,e.model,r.signal);if(!u()||s(t)!==n)return!1;let o=C(a,i,!!n.focusTarget);return u()&&o}catch(e){return u()&&l(e,t),!1}}}function E(e,t,n){let r=e.inputProps,i=r&&typeof r==`object`&&!Array.isArray(r)?r:{};return{...e,...n===`compact`&&e.showButton===void 0?{showButton:!1}:{},inputProps:{role:`spinbutton`,inputmode:e.precision===0?`numeric`:`decimal`,"aria-label":t.label,"aria-valuenow":Number.isFinite(e.value)?e.value:void 0,"aria-valuemin":e.min??void 0,"aria-valuemax":e.max??void 0,...i}}}const D=Symbol(`c-form-renderer-registry`);function O(e={}){let t=(0,d.shallowReactive)(new Map),n={get:e=>t.get(e)?.renderer,register:(e,n)=>{if(!e.trim())throw TypeError(`[C_Form] renderer type 不能为空`);if(typeof n!=`function`)throw TypeError(`[C_Form] renderer ${e} 必须是函数`);let r={renderer:n};return t.set(e,r),()=>t.get(e)===r&&t.delete(e)},unregister:(e,n)=>{let r=t.get(e);return!r||n&&r.renderer!==n?!1:t.delete(e)}};return Object.entries(e).forEach(([e,t])=>{n.register(e,t)}),n}function k(e,t,n){return e===void 0?t:typeof e==`function`?e(n):e}function A(e){return{input:t=>(0,d.h)(e.NInput,{...t}),textarea:t=>(0,d.h)(e.NInput,{...t,type:`textarea`}),inputNumber:(t,n,r)=>(0,d.h)(e.NInputNumber,E(t,n,r.density)),switch:t=>(0,d.h)(e.NSwitch,{...t}),slider:t=>(0,d.h)(e.NSlider,{...t}),rate:t=>(0,d.h)(e.NRate,{...t}),datePicker:t=>(0,d.h)(e.NDatePicker,{...t}),daterange:t=>(0,d.h)(e.NDatePicker,{...t,type:`daterange`}),timePicker:t=>(0,d.h)(e.NTimePicker,{...t}),cascader:t=>(0,d.h)(e.NCascader,{...t}),colorPicker:t=>(0,d.h)(e.NColorPicker,{...t}),select:(t,n)=>(0,d.h)(e.NSelect,{...t,options:n.children?.map(e=>({...e}))||[]}),checkbox:(t,n)=>(0,d.h)(e.NCheckboxGroup,{...t},{default:()=>(0,d.h)(e.NSpace,{},{default:()=>n.children?.map(t=>(0,d.h)(e.NCheckbox,{value:t.value,label:t.label,disabled:t.disabled,key:String(t.value)}))||[]})}),radio:(t,n)=>(0,d.h)(e.NRadioGroup,{...t},{default:()=>(0,d.h)(e.NSpace,{},{default:()=>n.children?.map(t=>(0,d.h)(e.NRadio,{value:t.value,disabled:t.disabled,key:String(t.value)},{default:()=>t.label}))||[]})}),upload:(t,n,r,i)=>{let a={...t},{value:o}=a,s=a[`onUpdate:value`];return delete a.value,delete a[`onUpdate:value`],(0,d.h)(e.NUpload,{...a,fileList:Array.isArray(o)?o:[],"onUpdate:fileList":e=>s?.(e)},{default:()=>i.slots?.uploadClick?.()||(0,d.h)(e.NButton,{type:`primary`,size:n.attrs?.size??r.size,disabled:a.disabled===!0},{default:()=>`选择文件`}),tip:()=>i.slots?.uploadTip?.()||null})},editor:(t,n)=>{let r={...t},{value:i}=r,a=r[`onUpdate:value`];return delete r.value,delete r[`onUpdate:value`],(0,d.h)(e.C_Editor,{...r,editorId:`editor-${n.prop}`,modelValue:typeof i==`string`?i:``,"onUpdate:modelValue":e=>a?.(e)})}}}const j=O();function M(e,t){return j.register(e,t)}function N(e,t){return j.unregister(e,t)}const P=new Set([`select`,`checkbox`,`radio`,`cascader`]),F=new Set([`input`,`textarea`,`inputNumber`,`select`,`checkbox`,`radio`,`switch`,`datePicker`,`daterange`,`timePicker`,`cascader`,`colorPicker`]),ee=new Set([`input`,`textarea`,`inputNumber`,`rate`,`editor`]);function te(e){let{formModel:r,visibleOptions:i,config:a,handleFieldChange:o,componentMap:s,instanceSlots:c,asyncOptionsCache:l,asyncLoadingMap:u,renderers:f,setFormItemRef:p,onError:m}=e,h=s,g=A(h),_=(0,d.getCurrentInstance)()?(0,d.inject)(D,void 0):void 0,v=e.registry??_??j,y=e=>f?.value?.[e]??v.get(e)??g[e],b=e=>{let t=k(e.disabled,a.value.disabled,r),i=k(e.readonly,a.value.readonly,r),s=ee.has(e.type),c={...F.has(e.type)?{size:e.attrs?.size??a.value.size}:{},value:n.r(r,e.prop),"onUpdate:value":t=>{k(e.disabled,a.value.disabled,r)||k(e.readonly,a.value.readonly,r)||(n.c(r,e.prop,t),o(e.prop))},disabled:t||i&&!s,readonly:i||e.type===`rate`&&t};return e.type===`textarea`&&(c.type=`textarea`),e.placeholder&&(c.placeholder=e.placeholder),c};function x(t){let n=t.children??[];return Object.prototype.hasOwnProperty.call(l.value,t.prop)?l.value[t.prop]??[]:t.children!==void 0||t.asyncOptions?n:e.getDictionaryOptions?.(t.prop).map(e=>({...e}))??[]}function S(e){return P.has(e.type)?{...e,children:x(e)}:e}function C(t,n){return t.type===`select`&&(u.value[t.prop]||e.isDictionaryLoading?.(t.prop))&&(n.loading=!0),n}function w(e,t){return e.dictionary!==void 0&&e.children===void 0&&!e.asyncOptions&&P.has(e.type)&&t===g[e.type]}function T(e,n){let r=e[`onUpdate:value`];e.value=t.r(e.value),e[`onUpdate:value`]=e=>{let n=t.n(e);Array.isArray(r)?r.forEach(e=>e(n)):r?.(n)},n.children=t.o(n.children??[]),e.options=n.children,e.fallbackOption=e=>({value:e,label:String(t.n(e)??``)})}let E=e=>{try{let t=S(e),n=y(t.type);if(!n)return m?.(TypeError(`[C_Form] 未支持的组件类型: ${t.type}`),t.prop),null;let r=C(t,(0,d.mergeProps)(t.attrs??{},b(t)));return w(e,n)&&T(r,t),n(r,t,a.value,{slots:c,components:h})}catch(t){return m?.(t,e.prop),null}};function O(e){if(e.label)return e.help?(0,d.h)(`span`,{style:`display:inline-flex;align-items:center;gap:4px`},[e.label,(0,d.h)(h.NTooltip,{trigger:`hover`},{trigger:()=>(0,d.h)(`span`,{style:`cursor:help;opacity:0.5;font-size:14px`,textContent:`ⓘ`}),default:()=>e.help})]):e.label}return{renderFormItem:E,formItems:(0,d.computed)(()=>i.value.map(e=>{let t=!!(e.required||e.rules?.some(e=>e.required)),n=O(e);return(0,d.h)(h.NFormItem,{label:typeof n==`string`?n:void 0,path:e.prop,class:`c-form-field`,key:e.prop,required:t,ref:t=>p?.(e.prop,t)},{...typeof n!=`string`&&n?{label:()=>n}:{},default:()=>E(e)})})),getBaseProps:b}}const I={class:`c-form-default`},ne=(0,d.defineComponent)({__name:`index`,props:{formItems:{},layoutConfig:{},options:{}},setup(e){return(t,n)=>((0,d.openBlock)(),(0,d.createElementBlock)(`div`,I,[((0,d.openBlock)(!0),(0,d.createElementBlock)(d.Fragment,null,(0,d.renderList)(e.formItems,(e,t)=>((0,d.openBlock)(),(0,d.createBlock)((0,d.resolveDynamicComponent)(e),{key:e.key??t}))),128))]))}});var L=o.t(ne,[[`__scopeId`,`data-v-4313de0c`]]);const R=(0,d.defineComponent)({__name:`index`,props:{formItems:{},layoutConfig:{default:()=>({})},options:{default:()=>[]}},setup(e){let t=e,n=(0,d.computed)(()=>t.layoutConfig?.inline?.itemWidth??280),r=(0,d.computed)(()=>t.layoutConfig?.inline?.gap??16),i=(0,d.computed)(()=>t.layoutConfig?.inline?.rowGap??16),a=(0,d.computed)(()=>t.layoutConfig?.inline?.align??`center`),o=(0,d.computed)(()=>{switch(a.value){case`start`:return`flex-start`;case`end`:return`flex-end`;default:return a.value}}),s=(0,d.computed)(()=>{switch(a.value){case`start`:return`flex-start`;case`end`:return`flex-end`;case`center`:return`center`;default:return`flex-start`}}),c=(0,d.computed)(()=>({display:`flex`,flexWrap:t.layoutConfig?.inline?.wrap??`wrap`,alignItems:o.value,justifyContent:s.value,gap:`${i.value}px ${r.value}px`,width:`100%`})),l=(e,t)=>{if(e.key!=null)return String(e.key);let n=e.props;return n?.path?n.path:`form-item-${t}`},u=e=>{let r=t.options?.[e]?.layout,i={width:`${n.value}px`,flexShrink:0,display:`flex`,flexDirection:`column`};return r?.width!==void 0&&(i.width=typeof r.width==`number`?`${r.width}px`:r.width),r?.style&&Object.assign(i,r.style),i};return(t,n)=>((0,d.openBlock)(),(0,d.createElementBlock)(`div`,{class:`c-form-inline`,style:(0,d.normalizeStyle)(c.value)},[((0,d.openBlock)(!0),(0,d.createElementBlock)(d.Fragment,null,(0,d.renderList)(e.formItems,(e,t)=>((0,d.openBlock)(),(0,d.createElementBlock)(`div`,{key:l(e,t),class:`c-form-inline-item`,style:(0,d.normalizeStyle)(u(t))},[((0,d.openBlock)(),(0,d.createBlock)((0,d.resolveDynamicComponent)(e)))],4))),128))],4))}});var z=o.t(R,[[`__scopeId`,`data-v-711f6c00`]]);const B={class:`config-header`},re={class:`config-controls`},V={class:`config-label`},ie={class:`item-wrapper`},H=(0,d.defineComponent)({__name:`index`,props:{controlSize:{},formItems:{},layoutConfig:{default:()=>({})},options:{default:()=>[]}},setup(e,{expose:t}){let n=e,r=(0,d.reactive)({cols:24,gutter:16,responsive:!0}),i=(0,d.computed)(()=>n.layoutConfig?.grid||{}),o=(0,d.computed)(()=>i.value.showConfigPanel),s=(0,d.computed)(()=>i.value.showStats),l=(0,d.computed)(()=>({cols:o.value?r.cols:i.value.cols??24,gutter:o.value?r.gutter:i.value.gutter??16,responsive:o.value?r.responsive:i.value.responsive??!0})),u=(0,d.ref)(null),p=c.t(u,()=>l.value.responsive),m=(0,d.computed)(()=>{let e=i.value.minItemWidth;return l.value.responsive&&typeof e==`number`&&Number.isFinite(e)&&e>0?e:0}),h=(0,d.computed)(()=>{let e=i.value.xGap??l.value.gutter;return l.value.responsive&&p.value>0?Math.min(e,p.value/Math.max(1,l.value.cols)):e}),g=(0,d.computed)(()=>({cols:l.value.cols,xGap:h.value,yGap:i.value.yGap??i.value.yGutter??l.value.gutter,responsive:l.value.responsive?`screen`:`self`})),_=(0,d.computed)(()=>[{key:`cols`,label:`列数`,component:f.NInputNumber,value:r.cols,update:e=>{typeof e==`number`&&(r.cols=e)},props:{min:1,max:48,size:n.controlSize??`small`}},{key:`gutter`,label:`间距`,component:f.NInputNumber,value:r.gutter,update:e=>{typeof e==`number`&&(r.gutter=e)},props:{min:0,max:48,size:n.controlSize??`small`}},{key:`responsive`,label:`响应式`,component:f.NSwitch,value:r.responsive,update:e=>{typeof e==`boolean`&&(r.responsive=e)},props:{size:n.controlSize??`small`}}]),v=(0,d.computed)(()=>`列数: ${l.value.cols} | 间距: ${l.value.gutter}px | 项目: ${n.formItems.length}个`),y=(e,t)=>String(e.key)||e.props?.path||`grid-item-${t}`,b=(e,t)=>{let r=n.options?.[e]?.layout;return r?.[t]??r?.grid?.[t]},x=()=>{let{cols:e}=l.value;if(m.value&&p.value>0){let t=Math.max(1,Math.min(e,Math.floor((p.value+h.value)/(m.value+h.value))));return Math.ceil(e/t)}return e<=12?e:e<=24?12:8},S=e=>{if(!m.value||p.value<=0)return e;let{cols:t}=l.value,n=Math.ceil(t*(m.value+h.value)/(p.value+h.value));return Math.min(t,Math.max(e,n))},C=e=>{let t=b(e,`span`),n=b(e,`offset`),r=b(e,`suffix`);return{span:typeof t==`number`&&t>0&&t<=l.value.cols?S(t):x(),offset:typeof n==`number`&&n>=0&&n<l.value.cols?n:0,suffix:!!r}};return(0,d.watch)(i,e=>{e.cols!==void 0&&(r.cols=e.cols),e.gutter!==void 0&&(r.gutter=e.gutter),e.responsive!==void 0&&(r.responsive=e.responsive)},{immediate:!0}),t({updateGridConfig:e=>Object.assign(r,e),getCurrentConfig:()=>({...l.value}),getGridInfo:()=>({...l.value,itemCount:n.formItems.length})}),(t,n)=>{let r=f.NCard,i=f.NGridItem,c=f.NGrid,l=f.NAlert;return(0,d.openBlock)(),(0,d.createElementBlock)(`div`,{ref_key:`rootRef`,ref:u,class:`c-grid-layout`},[(0,d.createCommentVNode)(` 配置面板 `),o.value?((0,d.openBlock)(),(0,d.createBlock)(r,{key:0,size:e.controlSize??`small`,bordered:!1,class:`config-panel`},{header:(0,d.withCtx)(()=>[(0,d.createElementVNode)(`div`,B,[(0,d.createVNode)(a.t,{name:`mdi:view-grid`,size:18}),n[0]||=(0,d.createElementVNode)(`span`,null,`网格配置`,-1)])]),default:(0,d.withCtx)(()=>[(0,d.createElementVNode)(`div`,re,[((0,d.openBlock)(!0),(0,d.createElementBlock)(d.Fragment,null,(0,d.renderList)(_.value,e=>((0,d.openBlock)(),(0,d.createElementBlock)(`div`,{key:e.key,class:`config-item`},[(0,d.createElementVNode)(`span`,V,(0,d.toDisplayString)(e.label)+`:`,1),((0,d.openBlock)(),(0,d.createBlock)((0,d.resolveDynamicComponent)(e.component),(0,d.mergeProps)({value:e.value},{ref_for:!0},e.props,{"onUpdate:value":e.update}),null,16,[`value`,`onUpdate:value`]))]))),128))])]),_:1},8,[`size`])):(0,d.createCommentVNode)(`v-if`,!0),(0,d.createCommentVNode)(` 网格容器 `),(0,d.createVNode)(c,(0,d.mergeProps)(g.value,{class:`grid-container`}),{default:(0,d.withCtx)(()=>[((0,d.openBlock)(!0),(0,d.createElementBlock)(d.Fragment,null,(0,d.renderList)(e.formItems,(e,t)=>((0,d.openBlock)(),(0,d.createBlock)(i,(0,d.mergeProps)({key:y(e,t)},{ref_for:!0},C(t),{class:`grid-item`}),{default:(0,d.withCtx)(()=>[(0,d.createElementVNode)(`div`,ie,[((0,d.openBlock)(),(0,d.createBlock)((0,d.resolveDynamicComponent)(e)))])]),_:2},1040))),128))]),_:1},16),(0,d.createCommentVNode)(` 统计信息 `),s.value?((0,d.openBlock)(),(0,d.createBlock)(l,{key:1,type:`info`,"show-icon":!1,size:`small`,class:`grid-stats`},{header:(0,d.withCtx)(()=>[(0,d.createVNode)(a.t,{name:`mdi:information-outline`,size:16}),n[1]||=(0,d.createTextVNode)(` 网格信息 `,-1)]),default:(0,d.withCtx)(()=>[(0,d.createTextVNode)(` `+(0,d.toDisplayString)(v.value),1)]),_:1})):(0,d.createCommentVNode)(`v-if`,!0)],512)}}});var ae=o.t(H,[[`__scopeId`,`data-v-185a44af`]]);const oe=[`default`,`inline`,`grid`],se={NFormItem:f.NFormItem,NInput:f.NInput,NInputNumber:f.NInputNumber,NSwitch:f.NSwitch,NSelect:f.NSelect,NCheckboxGroup:f.NCheckboxGroup,NCheckbox:f.NCheckbox,NRadioGroup:f.NRadioGroup,NRadio:f.NRadio,NButton:f.NButton,NSpace:f.NSpace,NTooltip:f.NTooltip,NSlider:(0,d.defineAsyncComponent)(()=>Promise.resolve().then(()=>require(`./slider.cjs`))),NRate:(0,d.defineAsyncComponent)(()=>Promise.resolve().then(()=>require(`./rate.cjs`))),NDatePicker:(0,d.defineAsyncComponent)(()=>Promise.resolve().then(()=>require(`./date-picker.cjs`))),NTimePicker:(0,d.defineAsyncComponent)(()=>Promise.resolve().then(()=>require(`./time-picker.cjs`))),NCascader:(0,d.defineAsyncComponent)(()=>Promise.resolve().then(()=>require(`./cascader.cjs`))),NColorPicker:(0,d.defineAsyncComponent)(()=>Promise.resolve().then(()=>require(`./color-picker.cjs`))),NUpload:(0,d.defineAsyncComponent)(()=>Promise.resolve().then(()=>require(`./upload.cjs`))),C_Editor:(0,d.defineAsyncComponent)(()=>Promise.resolve().then(()=>require(`./C_Editor.cjs`)).then(e=>e.C_Editor))},U={default:L,inline:z,grid:ae,card:(0,d.defineAsyncComponent)(()=>Promise.resolve().then(()=>require(`./Card.cjs`))),tabs:(0,d.defineAsyncComponent)(()=>Promise.resolve().then(()=>require(`./Tabs.cjs`))),steps:(0,d.defineAsyncComponent)(()=>Promise.resolve().then(()=>require(`./Steps.cjs`))),dynamic:(0,d.defineAsyncComponent)(()=>Promise.resolve().then(()=>require(`./Dynamic.cjs`))),custom:(0,d.defineAsyncComponent)(()=>Promise.resolve().then(()=>require(`./Custom.cjs`)))},W=(0,d.defineComponent)({name:`C_Form`,__name:`index`,props:{options:{},modelValue:{},config:{default:()=>({})},renderers:{}},emits:[`submit`,`update:modelValue`,`validate-success`,`validate-error`],setup(t,{expose:n,emit:i}){let a=t,o=i,c=s.o(),l=(0,d.useAttrs)(),u=(0,d.computed)(()=>s.r(a.config,c)),p=(0,d.computed)(()=>{let{size:e}=l;return s.i({...u.value,...e===`small`||e===`medium`||e===`large`?{size:e}:{}})}),m=(0,d.computed)(()=>u.value.density!==void 0),h=(0,d.computed)(()=>e.t(p.value.density)),g=(0,d.computed)(()=>{if(!m.value)return;let{gap:e,rowGap:t,padding:n,formItemGap:r}=h.value;return{"--c-form-gap":`${e}px`,"--c-form-row-gap":`${t}px`,"--c-form-padding":`${n}px`,"--c-form-item-gap":`${r}px`}}),{t:_}=r.t(()=>p.value.locale),v=(0,d.ref)(null),b=(0,d.ref)(null),x=(0,d.computed)(()=>oe.includes(p.value.layout)||b.value===p.value.layout),{formModel:S,formRules:C,visibleOptions:w,initialize:E,handleFieldChange:D,validate:O,validateField:k,validateStep:A,validateTab:j,validateDynamicFields:M,validateCustomGroup:N,clearValidation:P,getModel:F,setFields:ee,resetFields:I,setFieldValue:ne,getFieldValue:L,setFieldsValue:R,handleSubmit:z,handleReset:B,isDirty:re,getChangedFields:V,isFieldDirty:ie,markAsClean:H,asyncOptionsCache:ae,asyncLoadingMap:W,asyncErrorMap:G,getDictionaryOptions:ce,isDictionaryLoading:K,reloadOptions:q,setFormItemRef:le,getFormItemElement:ue,isSubmitting:J,submit:Y}=y((0,d.computed)(()=>a.options),p,v,o,(0,d.computed)(()=>a.modelValue),x),de=(0,d.computed)(()=>S),X=()=>F(),fe=(0,d.computed)(()=>({form:v.value,model:de.value,validate:O,validateField:k,reset:I,setFields:ee,getModel:X,clearValidation:P,submit:Y,reloadOptions:q,submitting:J.value})),pe=(0,d.getCurrentInstance)(),me=()=>Object.keys(pe?.slots??{}).filter(e=>![`action`,`action-extra`,`step-actions`].includes(e)),{formItems:Z,getBaseProps:he}=te({formModel:S,visibleOptions:w,config:p,handleFieldChange:D,componentMap:se,instanceSlots:pe?.slots,asyncOptionsCache:ae,asyncLoadingMap:W,renderers:(0,d.computed)(()=>a.renderers),getDictionaryOptions:ce,isDictionaryLoading:K,setFormItemRef:le,onError:(e,t)=>p.value.onError?.(e,{source:`render`,field:t})}),Q=(0,d.shallowRef)(null),ge=T({layout:Q,layoutType:()=>p.value.layout,fields:()=>w.value,model:S,getElement:ue,access:he,onError:(e,t)=>p.value.onError?.(e,{source:`callback`,field:t})}),_e=(0,d.computed)(()=>U[p.value.layout]||U.default),ve=(0,d.computed)(()=>{let e=p.value,t={type:e.layout,grid:e.grid,inline:e.inline,card:e.card,tabs:e.tabs,steps:e.steps,dynamic:e.dynamic,custom:e.custom};if(!m.value)return t;let{gap:n,rowGap:r}=h.value;return{...t,grid:{gutter:n,yGutter:e.grid?.gutter??r,...e.grid},inline:{gap:n,rowGap:r,...e.inline},card:{spacing:n,...e.card},tabs:{size:e.size,...e.tabs},steps:{size:e.size===`small`?`small`:`medium`,...e.steps},dynamic:{...e.dynamic,grid:{gutter:n,...e.dynamic?.grid}}}}),ye=(0,d.computed)(()=>s.a(p.value)),be=(0,d.computed)(()=>{let{layout:e}=p.value;return{...e===`steps`?{beforeStepChange:De,validateStep:Oe,submitting:J.value,disabled:p.value.disabled||p.value.readonly}:e===`tabs`?{beforeTabChange:we,validateTab:Te}:{},controlSize:m.value?p.value.size:void 0,onVnodeMounted:()=>{b.value=e}}}),$=(e,...t)=>{let n=p.value[e];if(typeof n==`function`)try{let e=n(...t);e instanceof Promise&&e.catch(e=>p.value.onError?.(e,{source:`callback`}))}catch(e){p.value.onError?.(e,{source:`callback`})}},xe=e=>{p.value.onFieldsChange?.(e)},Se=e=>{o(`validate-success`,e)},Ce=e=>{o(`validate-error`,e)},we=async(e,t)=>{try{return await p.value.onTabBeforeChange?.(e,t)!==!1}catch(e){return p.value.onError?.(e,{source:`callback`}),!1}},Te=async e=>{let t=await j(e);return t&&p.value.onTabValidate?.(e),t},Ee=(e,t)=>{p.value.onStepChange?.(e,t)},De=async(e,t)=>{try{return await p.value.onStepBeforeChange?.(e,t)!==!1}catch(e){return p.value.onError?.(e,{source:`callback`}),!1}},Oe=async(e,t)=>{try{return await A(t)?(p.value.onStepValidate?.(e),!0):!1}catch{return!1}};return n({validate:O,revealField:ge,validateField:k,validateStep:A,validateTab:j,validateDynamicFields:M,validateCustomGroup:N,clearValidation:P,getModel:F,setFields:ee,resetFields:I,setFieldValue:ne,getFieldValue:L,setFieldsValue:R,formRef:v,formModel:S,initialize:E,layoutType:(0,d.computed)(()=>p.value.layout),shouldShowDefaultActions:ye,isDirty:re,getChangedFields:V,isFieldDirty:ie,markAsClean:H,asyncLoadingMap:W,asyncErrorMap:G,reloadOptions:q,isSubmitting:J,submit:Y}),(e,t)=>((0,d.openBlock)(),(0,d.createBlock)((0,d.unref)(f.NForm),(0,d.mergeProps)({ref_key:`formRef`,ref:v,class:[`c-form`,m.value&&`c-form--${p.value.density}`],style:g.value,model:(0,d.unref)(S),rules:(0,d.unref)(C),"validate-on-rule-change":!1,"label-placement":p.value.labelPlacement,"label-width":p.value.labelWidth,size:p.value.size,disabled:p.value.disabled,readonly:p.value.readonly},e.$attrs,{onSubmit:(0,d.withModifiers)((0,d.unref)(Y),[`prevent`])}),{default:(0,d.withCtx)(()=>[(0,d.createCommentVNode)(` 布局组件渲染 `),((0,d.openBlock)(),(0,d.createBlock)((0,d.resolveDynamicComponent)(_e.value),(0,d.mergeProps)({ref_key:`layoutRef`,ref:Q,key:p.value.layout,"form-items":(0,d.unref)(Z),"layout-config":ve.value,options:(0,d.unref)(w),"form-data":(0,d.unref)(S)},be.value,{onTabChange:t[0]||=(e,t)=>$(`onTabChange`,e,t),onStepChange:Ee,onFieldAdd:t[1]||=e=>$(`onFieldAdd`,e),onFieldRemove:t[2]||=e=>$(`onFieldRemove`,e),onFieldToggle:t[3]||=(e,t)=>$(`onFieldToggle`,e,t),onFieldsClear:t[4]||=e=>$(`onFieldsClear`),onRenderModeChange:t[5]||=e=>$(`onRenderModeChange`,e),onGroupToggle:t[6]||=(e,t)=>$(`onGroupToggle`,e,t),onGroupReset:t[7]||=e=>$(`onGroupReset`,e),onValidateSuccess:Se,onValidateError:Ce,onFieldsChange:xe}),(0,d.createSlots)({"step-actions":(0,d.withCtx)(t=>[(0,d.renderSlot)(e.$slots,`step-actions`,(0,d.mergeProps)(t,{submit:(0,d.unref)(Y),submitting:(0,d.unref)(J)}),()=>[t.isLastStep&&p.value.showActions?((0,d.openBlock)(),(0,d.createBlock)((0,d.unref)(f.NButton),{key:0,type:`primary`,size:p.value.size,loading:(0,d.unref)(J)||!x.value,disabled:!x.value||(0,d.unref)(J)||p.value.disabled||p.value.readonly,onClick:(0,d.unref)(Y)},{default:(0,d.withCtx)(()=>[(0,d.createTextVNode)((0,d.toDisplayString)(p.value.submitText||(0,d.unref)(_)(`common.submit`)),1)]),_:1},8,[`size`,`loading`,`disabled`,`onClick`])):(0,d.createCommentVNode)(`v-if`,!0)],!0)]),_:2},[(0,d.renderList)(me(),t=>({name:t,fn:(0,d.withCtx)(n=>[(0,d.renderSlot)(e.$slots,t,(0,d.normalizeProps)((0,d.guardReactiveProps)(n)),void 0,!0)])}))]),1040,[`form-items`,`layout-config`,`options`,`form-data`])),(0,d.createCommentVNode)(` 表单操作按钮区域(只在特定布局中显示) `),ye.value?((0,d.openBlock)(),(0,d.createBlock)((0,d.unref)(f.NFormItem),{key:0,class:`c-form-actions`,"show-feedback":!1},{default:(0,d.withCtx)(()=>[(0,d.renderSlot)(e.$slots,`action`,(0,d.normalizeProps)((0,d.guardReactiveProps)(fe.value)),()=>[(0,d.createVNode)((0,d.unref)(f.NSpace),{justify:`end`,size:m.value?h.value.gap:void 0,style:{width:`100%`}},{default:(0,d.withCtx)(()=>[(0,d.createVNode)((0,d.unref)(f.NButton),{size:p.value.size,disabled:!x.value||(0,d.unref)(J)||p.value.disabled||p.value.readonly,onClick:(0,d.unref)(B)},{default:(0,d.withCtx)(()=>[(0,d.createTextVNode)((0,d.toDisplayString)(p.value.resetText||(0,d.unref)(_)(`common.reset`)),1)]),_:1},8,[`size`,`disabled`,`onClick`]),(0,d.renderSlot)(e.$slots,`action-extra`,(0,d.normalizeProps)((0,d.guardReactiveProps)(fe.value)),void 0,!0),(0,d.createVNode)((0,d.unref)(f.NButton),{type:`primary`,size:p.value.size,loading:(0,d.unref)(J)||!x.value,disabled:!x.value||(0,d.unref)(J)||p.value.disabled||p.value.readonly,onClick:(0,d.unref)(z)},{default:(0,d.withCtx)(()=>[(0,d.createTextVNode)((0,d.toDisplayString)(p.value.submitText||(0,d.unref)(_)(`common.submit`)),1)]),_:1},8,[`size`,`loading`,`disabled`,`onClick`])]),_:3},8,[`size`])],!0)]),_:3})):(0,d.createCommentVNode)(`v-if`,!0)]),_:3},16,[`class`,`style`,`model`,`rules`,`label-placement`,`label-width`,`size`,`disabled`,`readonly`,`onSubmit`]))}});var G=o.t(W,[[`__scopeId`,`data-v-12ebc552`]]);function ce(e){return e}function K(e){return e}function q(e){let t=(0,d.shallowRef)(n.t(e.initialValues)),r=(0,d.shallowRef)(null);return{model:t,formRef:r,bindings:(0,d.computed)(()=>({modelValue:t.value,options:(0,d.toValue)(e.options),config:(0,d.toValue)(e.config),"onUpdate:modelValue":e=>{t.value=n.t(e)}})),validate:async()=>{if(!r.value)throw Error(`C_Form is not mounted`);await r.value.validate()},submit:()=>r.value?.submit()??Promise.resolve(!1),reset:()=>{r.value?(r.value.resetFields(),t.value=n.t(r.value.getModel())):t.value=n.t(e.initialValues)},getValues:()=>n.t(r.value?.getModel()??t.value),setValues:async(e,i=!1)=>{r.value?(await r.value.setFieldsValue(e,i),t.value=n.t(r.value.getModel())):t.value={...t.value,...n.t(e)}}}}Object.defineProperty(exports,`a`,{enumerable:!0,get:function(){return D}}),Object.defineProperty(exports,`c`,{enumerable:!0,get:function(){return N}}),Object.defineProperty(exports,`d`,{enumerable:!0,get:function(){return h}}),Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return G}}),Object.defineProperty(exports,`l`,{enumerable:!0,get:function(){return te}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return ce}}),Object.defineProperty(exports,`o`,{enumerable:!0,get:function(){return O}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return q}}),Object.defineProperty(exports,`s`,{enumerable:!0,get:function(){return M}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return K}}),Object.defineProperty(exports,`u`,{enumerable:!0,get:function(){return y}});
1
+ require(`./chunk.cjs`);const e=require(`./density.cjs`),t=require(`./dictionary.cjs`),n=require(`./data2.cjs`),r=require(`./useComponentLocale.cjs`),i=require(`./feedback.cjs`),a=require(`./C_Icon2.cjs`),o=require(`./export-helper.cjs`),s=require(`./useFormConfig.cjs`),c=require(`./useGridWidth.cjs`),l=require(`./useDictionary.cjs`),u=require(`./formValidation.cjs`);let d=require(`vue`),f=require(`naive-ui`);function p(e,t){if(Reflect.has(e,t)&&Object.prototype.hasOwnProperty.call(e,t))return(0,d.isReactive)(e);let r=e;for(let e of n.o(t)){if(!r||typeof r!=`object`||!(0,d.isReactive)(r))return!1;r=r[e]}return!0}function m(e,t=new Set){if(typeof e!=`object`||!e||t.has(e))return!0;t.add(e);let n=(0,d.isReactive)(e);if(Array.isArray(e)){for(let r of e)n=m(r,t)&&n;return n}return e instanceof Map?(e.forEach((e,r)=>{n=m(r,t)&&n,n=m(e,t)&&n}),n):e instanceof Set?(e.forEach(e=>{n=m(e,t)&&n}),n):(Object.values(e).forEach(e=>{n=m(e,t)&&n}),n)}function h(e,t){let r=(0,d.shallowRef)({}),i=new Map,a=(0,d.isReactive)(e);function o(){let n=new Set(t?(0,d.toValue)(t):[...Object.keys(r.value),...Object.keys(e)]);for(let e of i.keys())n.has(e)||i.delete(e);return n}let s=(0,d.computed)(()=>{for(let e of o())if(u(e))return!0;return!1});function c(){let e=[];for(let t of o())u(t)&&e.push(t);return e}function l(e){return f(e)}function u(t){if(!a)return f(t);let o=i.get(t);return o||(o=(0,d.computed)(()=>{let i=n.r(e,t),a=p(e,t);return{cacheable:m(i)&&a,dirty:!n.a(n.r(r.value,t),i)}}),i.set(t,o)),o.value.cacheable?o.value.dirty:f(t)}function f(t){let i=n.r(e,t);return m(i),!n.a(n.r(r.value,t),i)}function h(){r.value=n.t(e)}function g(){return n.t(r.value)}return{isDirty:s,getChangedFields:c,isFieldDirty:l,markAsClean:h,getCleanModel:g}}const g={input:``,textarea:``,editor:``,select:null,datePicker:null,daterange:null,timePicker:null,cascader:null,colorPicker:null,checkbox:[],upload:[],radio:``,inputNumber:null,slider:null,rate:null,switch:!1};function _(e){return n.t((e.value===void 0?g[e.type]:e.value)??null)}function v(e){let t=new Set;e.forEach((e,n)=>{if(!e.prop?.trim())throw TypeError(`[C_Form] options[${n}].prop 不能为空`);if(t.has(e.prop))throw TypeError(`[C_Form] 字段 prop 重复: ${e.prop}`);t.add(e.prop)})}function y(e,t,a,o,s,c){let f=(0,d.reactive)(n.t(s?.value??(t.value.mode===`edit`?t.value.initialValues:void 0)??{})),p=(0,d.reactive)({}),m=new Map,g=(0,d.ref)({}),y=(0,d.ref)({}),b=(0,d.ref)({}),x=(0,d.ref)(!1),S=new Map,C=!1,w,T=new Map,E=new Map,D=new Map,O=new Map,k=new Set,A=!1,j=!1,M=0,N=i.t(()=>t.value.feedback),{t:P}=r.t(()=>t.value.locale),{isDirty:F,getChangedFields:ee,isFieldDirty:te,markAsClean:I,getCleanModel:ne}=h(f,()=>e.value.map(e=>e.prop));function L(e,n,r){if(!C)try{t.value.onError?t.value.onError(e,{source:n,field:r}):N.error(e instanceof Error?e.message:String(e),e)}catch{}}let R=l.t(()=>new Map(e.value.filter(e=>e.dictionary!==void 0&&e.children===void 0&&!e.asyncOptions).map(e=>[e.prop,e.dictionary])),{onError:(e,t)=>L(e,`async-options`,t)});function z(e,t){if(!(C||!t))try{N[e](t)}catch{}}let B=(0,d.computed)(()=>e.value.filter(e=>{if(e.show===!1)return!1;if(!e.showWhen)return!0;try{return e.showWhen(f)}catch(t){return L(t,`callback`,e.prop),!1}}));function re(){j=!0;let e=++M;(0,d.nextTick)(()=>{e===M&&(j=!1)})}function V(){return n.t(f)}function ie(t){let r=t?n.t(t):{};return e.value.forEach(e=>{n.i(r,e.prop)||n.c(r,e.prop,_(e))}),r}function H(e){try{let t=u.n(e.rulesWhen?e.rulesWhen(f):e.rules);if(S.delete(e.prop),e.required&&!t.some(e=>e.required)){let n=e.label||e.prop;t.unshift(u.t(n,P(`form.required`,{label:n})))}if(e.crossFieldValidator){let n=e.crossFieldValidator;t.push({async validator(){let e=await n(f);if(e)throw Error(e)},trigger:[`change`,`blur`]})}if(t.length===0){delete p[e.prop];return}p[e.prop]=t.map(t=>({...t,key:e.prop}))}catch(t){delete p[e.prop],S.set(e.prop,t),L(t,`callback`,e.prop)}}function ae(){e.value.forEach(e=>{(e.rulesWhen||e.crossFieldValidator)&&H(e)})}function oe(e){k.forEach(r=>{e.has(r)||(m.delete(r),delete p[r],S.delete(r),G(r),D.delete(r),t.value.preserveRemovedFields||n.n(f,r))})}function se(t=!1){try{v(e.value);let r=V(),i=new Set(e.value.map(e=>e.prop));oe(i),e.value.forEach(e=>{n.i(f,e.prop)||n.c(f,e.prop,_(e)),H(e),ce(e)}),k=i,X(W(r),!1),t&&(0,d.nextTick)(I)}catch(e){throw L(e,`initialize`),e}}function U(e){let t=V();re(),n.s(f,ie(e)),X(W(t),!1)}function W(t){return[...new Set([...Object.keys(t),...Object.keys(f),...e.value.map(e=>e.prop)])].filter(e=>!n.a(n.r(t,e),n.r(f,e)))}function G(e){E.get(e)?.abort(),E.delete(e),T.delete(e),O.delete(e),delete g.value[e],delete y.value[e],delete b.value[e]}function ce(e){if(D.get(e.prop)!==e.asyncOptions){if(G(e.prop),!e.asyncOptions){D.delete(e.prop);return}D.set(e.prop,e.asyncOptions),K(e,`initialize`)}}function K(e,t){if(C)return;let n=O.get(e.prop),r={item:e,reason:n?.reason===`initialize`?n.reason:t};O.set(e.prop,r),(0,d.nextTick)(()=>{O.get(e.prop)===r&&(O.delete(e.prop),ue(r.item,r.reason))})}function q(e,t,n){return C||n.signal.aborted||T.get(e)!==t||E.get(e)!==n}function le(e){return!C&&!!e.asyncOptions&&D.get(e.prop)===e.asyncOptions}async function ue(e,t){if(!le(e))return;let{prop:r}=e,i=(T.get(r)??0)+1;T.set(r,i),E.get(r)?.abort();let a=new AbortController;E.set(r,a),y.value[r]=!0,delete b.value[r];try{let o=await e.asyncOptions(V(),{field:r,reason:t,signal:a.signal});if(q(r,i,a))return;if(!Array.isArray(o))throw TypeError(`[C_Form] ${r}.asyncOptions 必须返回数组`);g.value[r]=n.t([...o])}catch(e){if(q(r,i,a))return;b.value[r]=e,L(e,`async-options`,r)}finally{T.get(r)===i&&E.get(r)===a&&(y.value[r]=!1,E.delete(r))}}async function J(t){let n=e.value.filter(e=>e.asyncOptions&&(!t||e.prop===t)),r=e.value.filter(e=>e.dictionary!==void 0&&e.children===void 0&&!e.asyncOptions&&(!t||e.prop===t));if(t&&n.length===0&&r.length===0)throw Error(`[C_Form] 未找到异步选项字段: ${t}`);await Promise.all([...n.map(e=>(O.delete(e.prop),ue(e,`manual`))),...r.map(e=>R.reload(e.prop))])}function Y(){let t=e.value.filter(e=>e.valueWhen),r=new Set;if(t.length===0)return[];for(let e=0;e<=t.length;e+=1){let e=!1;for(let i of t)try{let t=i.valueWhen?.(f);t!==void 0&&!n.a(n.r(f,i.prop),t)&&(n.c(f,i.prop,n.t(t)),r.add(i.prop),e=!0)}catch(e){L(e,`callback`,i.prop)}if(!e)return[...r]}return L(Error(`[C_Form] valueWhen 存在循环依赖,已停止继续计算`),`callback`),[...r]}function de(t){let r=t.map(e=>n.o(e).join(`.`));return e.value.filter(e=>!e.asyncOptions||!e.dependsOn?!1:(Array.isArray(e.dependsOn)?e.dependsOn:[e.dependsOn]).some(e=>{let t=n.o(e).join(`.`);return r.some(e=>e===t||e.startsWith(`${t}.`)||t.startsWith(`${e}.`))}))}function X(e,n=!0){let r=[...new Set([...e,...Y()])];ae(),de(r).forEach(e=>{K(e,`dependency`)}),n&&t.value.validateOnChange&&(0,d.nextTick)(()=>{C||Z(r).catch(()=>void 0)})}function fe(e){X([e])}function pe(e,t){t?m.set(e,t):m.delete(e)}async function me(){if(c?.value===!1)throw Error(`[C_Form] 布局尚未加载完成`);if(!a.value)throw Error(`[C_Form] 表单引用不存在`);try{let e=B.value.find(e=>S.has(e.prop));if(e)throw S.get(e.prop);if(await a.value.validate(),C)throw Error(`[C_Form] 表单已卸载`);o(`validate-success`,V())}catch(e){throw C||o(`validate-error`,e),e}}async function Z(e){if(c?.value===!1)throw Error(`[C_Form] 布局尚未加载完成`);if(!a.value)throw Error(`[C_Form] 表单引用不存在`);let t=[...new Set(Array.isArray(e)?e:[e])],n=t.find(e=>S.has(e));if(n)throw S.get(n);let r=[],i=t.flatMap(e=>{let t=m.get(e);return t?[t.validate()]:(r.push(e),[])});r.length>0&&i.push(a.value.validate(void 0,e=>r.includes(String(e.key??``))));let o=(await Promise.allSettled(i)).filter(e=>e.status===`rejected`).map(e=>e.reason);if(o.length>0)throw o}function he(e){if(!e){a.value?.restoreValidation();return}(Array.isArray(e)?e:[e]).forEach(e=>m.get(e)?.restoreValidation())}async function Q(e){let t=B.value.filter(e).map(e=>e.prop);if(t.length===0)return!0;try{return await Z(t),!0}catch{return!1}}function ge(e){let n=typeof e==`string`?e:t.value.steps?.steps?.[e]?.key;return n?Q(e=>e.layout?.step===n):Promise.resolve(!0)}function _e(e){return Q(t=>t.layout?.tab===e)}function ve(){return Q(e=>!!e.layout?.dynamic)}function ye(e){return Q(t=>t.layout?.group===e)}function be(e){Object.entries(n.t(e)).forEach(([e,t])=>{n.c(f,e,t)}),X(Object.keys(e))}function $(){let e=V();n.s(f,ne()),he(),X(W(e),!1),z(`info`,t.value.resetSuccessText)}async function xe(e,t,r=!1){n.c(f,e,n.t(t)),fe(e),r&&await Z(e)}function Se(e){return n.t(n.r(f,e))}async function Ce(e,t=!1){be(e),t&&await Z(Object.keys(e))}function we(){return C||c?.value===!1||x.value||t.value.disabled||t.value.readonly}function Te(e,r,i){return!C&&!e.signal.aborted&&c?.value!==!1&&!t.value.disabled&&!t.value.readonly&&i!==null&&a.value===i&&n.a(f,r)}async function Ee(){if(we())return!1;let e=V(),n=a.value,r=new AbortController;w=r,x.value=!0;try{if(await me(),!Te(r,e,n))return!1;let i={model:e,form:n};try{await t.value.onSubmit?.(i,{signal:r.signal})}catch(e){return r.signal.aborted||L(e,`submit`),!1}return r.signal.aborted?!1:(o(`submit`,i),z(`success`,t.value.submitSuccessText),!0)}catch{return!1}finally{w===r&&(w=void 0),x.value=!1}}function De(){se(!0);let e=s?.value??(t.value.mode===`edit`?t.value.initialValues:void 0);e&&U(e),(0,d.nextTick)(I)}return(0,d.watch)(e,()=>{let e=!A;e&&re(),se(e),A=!0},{deep:!0,immediate:!0}),s&&(0,d.watch)(s,e=>{e!==void 0&&!n.a(f,e)&&U(e)},{deep:!0,immediate:!0}),(0,d.watch)(()=>[t.value.mode,t.value.initialValues],([e,t])=>{s?.value!==void 0||e!==`edit`||!t||(U(t),(0,d.nextTick)(I))},{deep:!0}),(0,d.watch)(f,e=>{j||o(`update:modelValue`,n.t(e))},{deep:!0,flush:`post`}),(0,d.onScopeDispose)(()=>{C=!0,w?.abort(),E.forEach(e=>e.abort()),E.clear(),O.clear(),m.clear()}),{formModel:f,formRules:p,visibleOptions:B,initialize:De,handleFieldChange:fe,setFormItemRef:pe,getFormItemElement:e=>{let t=m.get(e)?.$el;return t?.nodeType===1?t:null},validate:me,validateField:Z,validateStep:ge,validateTab:_e,validateDynamicFields:ve,validateCustomGroup:ye,clearValidation:he,getModel:V,setFields:be,resetFields:$,setFieldValue:xe,getFieldValue:Se,setFieldsValue:Ce,submit:Ee,handleSubmit:Ee,handleReset:$,isSubmitting:x,isDirty:F,getChangedFields:ee,isFieldDirty:te,markAsClean:I,asyncOptionsCache:g,asyncLoadingMap:y,asyncErrorMap:b,getDictionaryOptions:R.getOptions,isDictionaryLoading:R.isLoading,reloadOptions:J}}function b(e,t){return e.matches(`:disabled`)||`disabled`in e&&e.disabled===!0||`readOnly`in e&&e.readOnly===!0||!t&&e.getAttribute(`tabindex`)===`-1`}function x(e){if(e.hidden||e.getAttribute(`aria-hidden`)===`true`||e.hasAttribute(`inert`)||e.getAttribute(`aria-disabled`)===`true`||e.getAttribute(`aria-readonly`)===`true`)return!0;let t=e.ownerDocument.defaultView?.getComputedStyle(e);return t?t.display===`none`||t.visibility===`hidden`||t.visibility===`collapse`:!1}function S(e,t=!1){if(!e.isConnected||typeof e.focus!=`function`||b(e,t))return!1;for(let t=e;t;t=t.parentElement)if(x(t))return!1;return!0}function C(e,t,n){if(!e||!S(e,n))return!1;(t??e).scrollIntoView?.({block:`nearest`,inline:`nearest`}),e.focus({preventScroll:!0});let r=e.ownerDocument.activeElement;return!!r&&(r===e||e.contains(r))}async function w(e,t,n,r){return e.focusTarget?e.focusTarget({field:e.prop,element:t,model:n,signal:r}):[...t?.querySelectorAll(`input:not([type="hidden"]),textarea,select,button,[tabindex],[contenteditable="true"]`)??[]].find(e=>S(e))}function T(e){let t=0,n=!1,r=!1,i,a=Promise.resolve(),o=()=>{let e=++t,n=i;return i=void 0,n?.abort(),e},s=t=>{let n=e.fields().find(e=>e.prop===t);if(!n||n.layout?.hidden)return;let r=e.access(n);return r.disabled||r.readonly?void 0:n},c=e=>n&&!r&&e===t,l=(t,n)=>{try{e.onError?.(t,n)}catch{}};return(0,d.onMounted)(()=>{n=!0}),(0,d.onActivated)(()=>{n=!0}),(0,d.onDeactivated)(()=>{n=!1,o()}),(0,d.onScopeDispose)(()=>{r=!0,n=!1,o()}),(0,d.watch)(e.layoutType,o),async t=>{let n=o();if(!c(n))return!1;let r=new AbortController;i=r;let u=()=>c(n)&&!r.signal.aborted,f=a.then(async()=>{if(await(0,d.nextTick)(),!u()||!s(t))return!1;let n=e.layout.value?.revealField;return n&&!await n(t,u)?!1:(await(0,d.nextTick)(),u()&&!!s(t))});a=f.catch(()=>!1);try{if(!await f)return!1;let n=s(t);if(!n)return!1;let i=e.getElement(t),a=await w(n,i,e.model,r.signal);if(!u()||s(t)!==n)return!1;let o=C(a,i,!!n.focusTarget);return u()&&o}catch(e){return u()&&l(e,t),!1}}}function E(e,t,n){let r=e.inputProps,i=r&&typeof r==`object`&&!Array.isArray(r)?r:{};return{...e,...n===`compact`&&e.showButton===void 0?{showButton:!1}:{},inputProps:{role:`spinbutton`,inputmode:e.precision===0?`numeric`:`decimal`,"aria-label":t.label,"aria-valuenow":Number.isFinite(e.value)?e.value:void 0,"aria-valuemin":e.min??void 0,"aria-valuemax":e.max??void 0,...i}}}const D=Symbol(`c-form-renderer-registry`);function O(e={}){let t=(0,d.shallowReactive)(new Map),n={get:e=>t.get(e)?.renderer,register:(e,n)=>{if(!e.trim())throw TypeError(`[C_Form] renderer type 不能为空`);if(typeof n!=`function`)throw TypeError(`[C_Form] renderer ${e} 必须是函数`);let r={renderer:n};return t.set(e,r),()=>t.get(e)===r&&t.delete(e)},unregister:(e,n)=>{let r=t.get(e);return!r||n&&r.renderer!==n?!1:t.delete(e)}};return Object.entries(e).forEach(([e,t])=>{n.register(e,t)}),n}function k(e,t,n){return e===void 0?t:typeof e==`function`?e(n):e}function A(e){return{input:t=>(0,d.h)(e.NInput,{...t}),textarea:t=>(0,d.h)(e.NInput,{...t,type:`textarea`}),inputNumber:(t,n,r)=>(0,d.h)(e.NInputNumber,E(t,n,r.density)),switch:t=>(0,d.h)(e.NSwitch,{...t}),slider:t=>(0,d.h)(e.NSlider,{...t}),rate:t=>(0,d.h)(e.NRate,{...t}),datePicker:t=>(0,d.h)(e.NDatePicker,{...t}),daterange:t=>(0,d.h)(e.NDatePicker,{...t,type:`daterange`}),timePicker:t=>(0,d.h)(e.NTimePicker,{...t}),cascader:t=>(0,d.h)(e.NCascader,{...t}),colorPicker:t=>(0,d.h)(e.NColorPicker,{...t}),select:(t,n)=>(0,d.h)(e.NSelect,{...t,options:n.children?.map(e=>({...e}))||[]}),checkbox:(t,n)=>(0,d.h)(e.NCheckboxGroup,{...t},{default:()=>(0,d.h)(e.NSpace,{},{default:()=>n.children?.map(t=>(0,d.h)(e.NCheckbox,{value:t.value,label:t.label,disabled:t.disabled,key:String(t.value)}))||[]})}),radio:(t,n)=>(0,d.h)(e.NRadioGroup,{...t},{default:()=>(0,d.h)(e.NSpace,{},{default:()=>n.children?.map(t=>(0,d.h)(e.NRadio,{value:t.value,disabled:t.disabled,key:String(t.value)},{default:()=>t.label}))||[]})}),upload:(t,n,r,i)=>{let a={...t},{value:o}=a,s=a[`onUpdate:value`];return delete a.value,delete a[`onUpdate:value`],(0,d.h)(e.NUpload,{...a,fileList:Array.isArray(o)?o:[],"onUpdate:fileList":e=>s?.(e)},{default:()=>i.slots?.uploadClick?.()||(0,d.h)(e.NButton,{type:`primary`,size:n.attrs?.size??r.size,disabled:a.disabled===!0},{default:()=>`选择文件`}),tip:()=>i.slots?.uploadTip?.()||null})},editor:(t,n)=>{let r={...t},{value:i}=r,a=r[`onUpdate:value`];return delete r.value,delete r[`onUpdate:value`],(0,d.h)(e.C_Editor,{...r,editorId:`editor-${n.prop}`,modelValue:typeof i==`string`?i:``,"onUpdate:modelValue":e=>a?.(e)})}}}const j=O();function M(e,t){return j.register(e,t)}function N(e,t){return j.unregister(e,t)}const P=new Set([`select`,`checkbox`,`radio`,`cascader`]),F=new Set([`input`,`textarea`,`inputNumber`,`select`,`checkbox`,`radio`,`switch`,`datePicker`,`daterange`,`timePicker`,`cascader`,`colorPicker`]),ee=new Set([`input`,`textarea`,`inputNumber`,`rate`,`editor`]);function te(e){let{formModel:r,visibleOptions:i,config:a,handleFieldChange:o,componentMap:s,instanceSlots:c,asyncOptionsCache:l,asyncLoadingMap:u,renderers:f,setFormItemRef:p,onError:m}=e,h=s,g=A(h),_=(0,d.getCurrentInstance)()?(0,d.inject)(D,void 0):void 0,v=e.registry??_??j,y=e=>f?.value?.[e]??v.get(e)??g[e],b=e=>{let t=k(e.disabled,a.value.disabled,r),i=k(e.readonly,a.value.readonly,r),s=ee.has(e.type),c={...F.has(e.type)?{size:e.attrs?.size??a.value.size}:{},value:n.r(r,e.prop),"onUpdate:value":t=>{k(e.disabled,a.value.disabled,r)||k(e.readonly,a.value.readonly,r)||(n.c(r,e.prop,t),o(e.prop))},disabled:t||i&&!s,readonly:i||e.type===`rate`&&t};return e.type===`textarea`&&(c.type=`textarea`),e.placeholder&&(c.placeholder=e.placeholder),c};function x(t){let n=t.children??[];return Object.prototype.hasOwnProperty.call(l.value,t.prop)?l.value[t.prop]??[]:t.children!==void 0||t.asyncOptions?n:e.getDictionaryOptions?.(t.prop).map(e=>({...e}))??[]}function S(e){return P.has(e.type)?{...e,children:x(e)}:e}function C(t,n){return t.type===`select`&&(u.value[t.prop]||e.isDictionaryLoading?.(t.prop))&&(n.loading=!0),n}function w(e,t){return e.dictionary!==void 0&&e.children===void 0&&!e.asyncOptions&&P.has(e.type)&&t===g[e.type]}function T(e,n){let r=e[`onUpdate:value`];e.value=t.r(e.value),e[`onUpdate:value`]=e=>{let n=t.n(e);Array.isArray(r)?r.forEach(e=>e(n)):r?.(n)},n.children=t.o(n.children??[]),e.options=n.children,e.fallbackOption=e=>({value:e,label:String(t.n(e)??``)})}let E=e=>{try{let t=S(e),n=y(t.type);if(!n)return m?.(TypeError(`[C_Form] 未支持的组件类型: ${t.type}`),t.prop),null;let r=C(t,(0,d.mergeProps)(t.attrs??{},b(t)));return w(e,n)&&T(r,t),n(r,t,a.value,{slots:c,components:h})}catch(t){return m?.(t,e.prop),null}};function O(e){if(e.label)return e.help?(0,d.h)(`span`,{style:`display:inline-flex;align-items:center;gap:4px`},[e.label,(0,d.h)(h.NTooltip,{trigger:`hover`},{trigger:()=>(0,d.h)(`span`,{style:`cursor:help;opacity:0.5;font-size:14px`,textContent:`ⓘ`}),default:()=>e.help})]):e.label}return{renderFormItem:E,formItems:(0,d.computed)(()=>i.value.map(e=>{let t=!!(e.required||e.rules?.some(e=>e.required)),n=O(e);return(0,d.h)(h.NFormItem,{label:typeof n==`string`?n:void 0,path:e.prop,class:`c-form-field`,key:e.prop,required:t,ref:t=>p?.(e.prop,t)},{...typeof n!=`string`&&n?{label:()=>n}:{},default:()=>E(e)})})),getBaseProps:b}}const I={class:`c-form-default`},ne=(0,d.defineComponent)({__name:`index`,props:{formItems:{},layoutConfig:{},options:{}},setup(e){return(t,n)=>((0,d.openBlock)(),(0,d.createElementBlock)(`div`,I,[((0,d.openBlock)(!0),(0,d.createElementBlock)(d.Fragment,null,(0,d.renderList)(e.formItems,(e,t)=>((0,d.openBlock)(),(0,d.createBlock)((0,d.resolveDynamicComponent)(e),{key:e.key??t}))),128))]))}});var L=o.t(ne,[[`__scopeId`,`data-v-4313de0c`]]);const R=(0,d.defineComponent)({__name:`index`,props:{formItems:{},layoutConfig:{default:()=>({})},options:{default:()=>[]}},setup(e){let t=e,n=(0,d.computed)(()=>t.layoutConfig?.inline?.itemWidth??280),r=(0,d.computed)(()=>t.layoutConfig?.inline?.gap??16),i=(0,d.computed)(()=>t.layoutConfig?.inline?.rowGap??16),a=(0,d.computed)(()=>t.layoutConfig?.inline?.align??`center`),o=(0,d.computed)(()=>{switch(a.value){case`start`:return`flex-start`;case`end`:return`flex-end`;default:return a.value}}),s=(0,d.computed)(()=>{switch(a.value){case`start`:return`flex-start`;case`end`:return`flex-end`;case`center`:return`center`;default:return`flex-start`}}),c=(0,d.computed)(()=>({display:`flex`,flexWrap:t.layoutConfig?.inline?.wrap??`wrap`,alignItems:o.value,justifyContent:s.value,gap:`${i.value}px ${r.value}px`,width:`100%`})),l=(e,t)=>{if(e.key!=null)return String(e.key);let n=e.props;return n?.path?n.path:`form-item-${t}`},u=e=>{let r=t.options?.[e]?.layout,i={width:`${n.value}px`,flexShrink:0,display:`flex`,flexDirection:`column`};return r?.width!==void 0&&(i.width=typeof r.width==`number`?`${r.width}px`:r.width),r?.style&&Object.assign(i,r.style),i};return(t,n)=>((0,d.openBlock)(),(0,d.createElementBlock)(`div`,{class:`c-form-inline`,style:(0,d.normalizeStyle)(c.value)},[((0,d.openBlock)(!0),(0,d.createElementBlock)(d.Fragment,null,(0,d.renderList)(e.formItems,(e,t)=>((0,d.openBlock)(),(0,d.createElementBlock)(`div`,{key:l(e,t),class:`c-form-inline-item`,style:(0,d.normalizeStyle)(u(t))},[((0,d.openBlock)(),(0,d.createBlock)((0,d.resolveDynamicComponent)(e)))],4))),128))],4))}});var z=o.t(R,[[`__scopeId`,`data-v-711f6c00`]]);const B={class:`config-header`},re={class:`config-controls`},V={class:`config-label`},ie={class:`item-wrapper`},H=(0,d.defineComponent)({__name:`index`,props:{controlSize:{},formItems:{},layoutConfig:{default:()=>({})},options:{default:()=>[]}},setup(e,{expose:t}){let n=e,r=(0,d.reactive)({cols:24,gutter:16,responsive:!0}),i=(0,d.computed)(()=>n.layoutConfig?.grid||{}),o=(0,d.computed)(()=>i.value.showConfigPanel),s=(0,d.computed)(()=>i.value.showStats),l=(0,d.computed)(()=>({cols:o.value?r.cols:i.value.cols??24,gutter:o.value?r.gutter:i.value.gutter??16,responsive:o.value?r.responsive:i.value.responsive??!0})),u=(0,d.ref)(null),p=c.t(u,()=>l.value.responsive),m=(0,d.computed)(()=>{let e=i.value.minItemWidth;return l.value.responsive&&typeof e==`number`&&Number.isFinite(e)&&e>0?e:0}),h=(0,d.computed)(()=>{let e=i.value.xGap??l.value.gutter;return l.value.responsive&&p.value>0?Math.min(e,p.value/Math.max(1,l.value.cols)):e}),g=(0,d.computed)(()=>({cols:l.value.cols,xGap:h.value,yGap:i.value.yGap??i.value.yGutter??l.value.gutter,responsive:l.value.responsive?`screen`:`self`})),_=(0,d.computed)(()=>[{key:`cols`,label:`列数`,component:f.NInputNumber,value:r.cols,update:e=>{typeof e==`number`&&(r.cols=e)},props:{min:1,max:48,size:n.controlSize??`small`}},{key:`gutter`,label:`间距`,component:f.NInputNumber,value:r.gutter,update:e=>{typeof e==`number`&&(r.gutter=e)},props:{min:0,max:48,size:n.controlSize??`small`}},{key:`responsive`,label:`响应式`,component:f.NSwitch,value:r.responsive,update:e=>{typeof e==`boolean`&&(r.responsive=e)},props:{size:n.controlSize??`small`}}]),v=(0,d.computed)(()=>`列数: ${l.value.cols} | 间距: ${l.value.gutter}px | 项目: ${n.formItems.length}个`),y=(e,t)=>String(e.key)||e.props?.path||`grid-item-${t}`,b=(e,t)=>{let r=n.options?.[e]?.layout;return r?.[t]??r?.grid?.[t]},x=()=>{let{cols:e}=l.value;if(m.value&&p.value>0){let t=Math.max(1,Math.min(e,Math.floor((p.value+h.value)/(m.value+h.value))));return Math.ceil(e/t)}return e<=12?e:e<=24?12:8},S=e=>{if(!m.value||p.value<=0)return e;let{cols:t}=l.value,n=Math.ceil(t*(m.value+h.value)/(p.value+h.value));return Math.min(t,Math.max(e,n))},C=e=>{let t=b(e,`span`),n=b(e,`offset`),r=b(e,`suffix`);return{span:typeof t==`number`&&t>0&&t<=l.value.cols?S(t):x(),offset:typeof n==`number`&&n>=0&&n<l.value.cols?n:0,suffix:!!r}};return(0,d.watch)(i,e=>{e.cols!==void 0&&(r.cols=e.cols),e.gutter!==void 0&&(r.gutter=e.gutter),e.responsive!==void 0&&(r.responsive=e.responsive)},{immediate:!0}),t({updateGridConfig:e=>Object.assign(r,e),getCurrentConfig:()=>({...l.value}),getGridInfo:()=>({...l.value,itemCount:n.formItems.length})}),(t,n)=>{let r=f.NCard,i=f.NGridItem,c=f.NGrid,l=f.NAlert;return(0,d.openBlock)(),(0,d.createElementBlock)(`div`,{ref_key:`rootRef`,ref:u,class:`c-grid-layout`},[(0,d.createCommentVNode)(` 配置面板 `),o.value?((0,d.openBlock)(),(0,d.createBlock)(r,{key:0,size:e.controlSize??`small`,bordered:!1,class:`config-panel`},{header:(0,d.withCtx)(()=>[(0,d.createElementVNode)(`div`,B,[(0,d.createVNode)(a.t,{name:`mdi:view-grid`,size:18}),n[0]||=(0,d.createElementVNode)(`span`,null,`网格配置`,-1)])]),default:(0,d.withCtx)(()=>[(0,d.createElementVNode)(`div`,re,[((0,d.openBlock)(!0),(0,d.createElementBlock)(d.Fragment,null,(0,d.renderList)(_.value,e=>((0,d.openBlock)(),(0,d.createElementBlock)(`div`,{key:e.key,class:`config-item`},[(0,d.createElementVNode)(`span`,V,(0,d.toDisplayString)(e.label)+`:`,1),((0,d.openBlock)(),(0,d.createBlock)((0,d.resolveDynamicComponent)(e.component),(0,d.mergeProps)({value:e.value},{ref_for:!0},e.props,{"onUpdate:value":e.update}),null,16,[`value`,`onUpdate:value`]))]))),128))])]),_:1},8,[`size`])):(0,d.createCommentVNode)(`v-if`,!0),(0,d.createCommentVNode)(` 网格容器 `),(0,d.createVNode)(c,(0,d.mergeProps)(g.value,{class:`grid-container`}),{default:(0,d.withCtx)(()=>[((0,d.openBlock)(!0),(0,d.createElementBlock)(d.Fragment,null,(0,d.renderList)(e.formItems,(e,t)=>((0,d.openBlock)(),(0,d.createBlock)(i,(0,d.mergeProps)({key:y(e,t)},{ref_for:!0},C(t),{class:`grid-item`}),{default:(0,d.withCtx)(()=>[(0,d.createElementVNode)(`div`,ie,[((0,d.openBlock)(),(0,d.createBlock)((0,d.resolveDynamicComponent)(e)))])]),_:2},1040))),128))]),_:1},16),(0,d.createCommentVNode)(` 统计信息 `),s.value?((0,d.openBlock)(),(0,d.createBlock)(l,{key:1,type:`info`,"show-icon":!1,size:`small`,class:`grid-stats`},{header:(0,d.withCtx)(()=>[(0,d.createVNode)(a.t,{name:`mdi:information-outline`,size:16}),n[1]||=(0,d.createTextVNode)(` 网格信息 `,-1)]),default:(0,d.withCtx)(()=>[(0,d.createTextVNode)(` `+(0,d.toDisplayString)(v.value),1)]),_:1})):(0,d.createCommentVNode)(`v-if`,!0)],512)}}});var ae=o.t(H,[[`__scopeId`,`data-v-185a44af`]]);const oe=[`default`,`inline`,`grid`],se={NFormItem:f.NFormItem,NInput:f.NInput,NInputNumber:f.NInputNumber,NSwitch:f.NSwitch,NSelect:f.NSelect,NCheckboxGroup:f.NCheckboxGroup,NCheckbox:f.NCheckbox,NRadioGroup:f.NRadioGroup,NRadio:f.NRadio,NButton:f.NButton,NSpace:f.NSpace,NTooltip:f.NTooltip,NSlider:(0,d.defineAsyncComponent)(()=>Promise.resolve().then(()=>require(`./slider.cjs`))),NRate:(0,d.defineAsyncComponent)(()=>Promise.resolve().then(()=>require(`./rate.cjs`))),NDatePicker:(0,d.defineAsyncComponent)(()=>Promise.resolve().then(()=>require(`./date-picker.cjs`))),NTimePicker:(0,d.defineAsyncComponent)(()=>Promise.resolve().then(()=>require(`./time-picker.cjs`))),NCascader:(0,d.defineAsyncComponent)(()=>Promise.resolve().then(()=>require(`./cascader.cjs`))),NColorPicker:(0,d.defineAsyncComponent)(()=>Promise.resolve().then(()=>require(`./color-picker.cjs`))),NUpload:(0,d.defineAsyncComponent)(()=>Promise.resolve().then(()=>require(`./upload.cjs`))),C_Editor:(0,d.defineAsyncComponent)(()=>Promise.resolve().then(()=>require(`./C_Editor.cjs`)).then(e=>e.C_Editor))},U={default:L,inline:z,grid:ae,card:(0,d.defineAsyncComponent)(()=>Promise.resolve().then(()=>require(`./Card.cjs`))),tabs:(0,d.defineAsyncComponent)(()=>Promise.resolve().then(()=>require(`./Tabs.cjs`))),steps:(0,d.defineAsyncComponent)(()=>Promise.resolve().then(()=>require(`./Steps.cjs`))),dynamic:(0,d.defineAsyncComponent)(()=>Promise.resolve().then(()=>require(`./Dynamic.cjs`))),custom:(0,d.defineAsyncComponent)(()=>Promise.resolve().then(()=>require(`./Custom.cjs`)))},W=(0,d.defineComponent)({name:`C_Form`,__name:`index`,props:{options:{},modelValue:{},config:{default:()=>({})},renderers:{}},emits:[`submit`,`update:modelValue`,`validate-success`,`validate-error`],setup(t,{expose:n,emit:i}){let a=t,o=i,c=s.o(),l=(0,d.useAttrs)(),u=(0,d.computed)(()=>s.r(a.config,c)),p=(0,d.computed)(()=>{let{size:e}=l;return s.i({...u.value,...e===`small`||e===`medium`||e===`large`?{size:e}:{}})}),m=(0,d.computed)(()=>u.value.density!==void 0),h=(0,d.computed)(()=>e.t(p.value.density)),g=(0,d.computed)(()=>{if(!m.value)return;let{gap:e,rowGap:t,padding:n,formItemGap:r}=h.value;return{"--c-form-gap":`${e}px`,"--c-form-row-gap":`${t}px`,"--c-form-padding":`${n}px`,"--c-form-item-gap":`${r}px`}}),{t:_}=r.t(()=>p.value.locale),v=(0,d.ref)(null),b=(0,d.ref)(null),x=(0,d.computed)(()=>oe.includes(p.value.layout)||b.value===p.value.layout),{formModel:S,formRules:C,visibleOptions:w,initialize:E,handleFieldChange:D,validate:O,validateField:k,validateStep:A,validateTab:j,validateDynamicFields:M,validateCustomGroup:N,clearValidation:P,getModel:F,setFields:ee,resetFields:I,setFieldValue:ne,getFieldValue:L,setFieldsValue:R,handleSubmit:z,handleReset:B,isDirty:re,getChangedFields:V,isFieldDirty:ie,markAsClean:H,asyncOptionsCache:ae,asyncLoadingMap:W,asyncErrorMap:G,getDictionaryOptions:ce,isDictionaryLoading:K,reloadOptions:q,setFormItemRef:le,getFormItemElement:ue,isSubmitting:J,submit:Y}=y((0,d.computed)(()=>a.options),p,v,o,(0,d.computed)(()=>a.modelValue),x),de=(0,d.computed)(()=>S),X=()=>F(),fe=(0,d.computed)(()=>({form:v.value,model:de.value,validate:O,validateField:k,reset:I,setFields:ee,getModel:X,clearValidation:P,submit:Y,reloadOptions:q,submitting:J.value})),pe=(0,d.getCurrentInstance)(),me=()=>Object.keys(pe?.slots??{}).filter(e=>![`action`,`action-extra`,`step-actions`].includes(e)),{formItems:Z,getBaseProps:he}=te({formModel:S,visibleOptions:w,config:p,handleFieldChange:D,componentMap:se,instanceSlots:pe?.slots,asyncOptionsCache:ae,asyncLoadingMap:W,renderers:(0,d.computed)(()=>a.renderers),getDictionaryOptions:ce,isDictionaryLoading:K,setFormItemRef:le,onError:(e,t)=>p.value.onError?.(e,{source:`render`,field:t})}),Q=(0,d.shallowRef)(null),ge=T({layout:Q,layoutType:()=>p.value.layout,fields:()=>w.value,model:S,getElement:ue,access:he,onError:(e,t)=>p.value.onError?.(e,{source:`callback`,field:t})}),_e=(0,d.computed)(()=>U[p.value.layout]||U.default),ve=(0,d.computed)(()=>{let e=p.value,t={type:e.layout,grid:e.grid,inline:e.inline,card:e.card,tabs:e.tabs,steps:e.steps,dynamic:e.dynamic,custom:e.custom};if(!m.value)return t;let{gap:n,rowGap:r}=h.value;return{...t,grid:{gutter:n,yGutter:e.grid?.gutter??r,...e.grid},inline:{gap:n,rowGap:r,...e.inline},card:{spacing:n,...e.card},tabs:{size:e.size,...e.tabs},steps:{size:e.size===`small`?`small`:`medium`,...e.steps},dynamic:{...e.dynamic,grid:{gutter:n,...e.dynamic?.grid}}}}),ye=(0,d.computed)(()=>s.a(p.value)),be=(0,d.computed)(()=>{let{layout:e}=p.value;return{...e===`steps`?{beforeStepChange:De,validateStep:Oe,submitting:J.value,disabled:p.value.disabled||p.value.readonly}:e===`tabs`?{beforeTabChange:we,validateTab:Te}:{},controlSize:m.value?p.value.size:void 0,onVnodeMounted:()=>{b.value=e}}}),$=(e,...t)=>{let n=p.value[e];if(typeof n==`function`)try{let e=n(...t);e instanceof Promise&&e.catch(e=>p.value.onError?.(e,{source:`callback`}))}catch(e){p.value.onError?.(e,{source:`callback`})}},xe=e=>{p.value.onFieldsChange?.(e)},Se=e=>{o(`validate-success`,e)},Ce=e=>{o(`validate-error`,e)},we=async(e,t)=>{try{return await p.value.onTabBeforeChange?.(e,t)!==!1}catch(e){return p.value.onError?.(e,{source:`callback`}),!1}},Te=async e=>{let t=await j(e);return t&&p.value.onTabValidate?.(e),t},Ee=(e,t)=>{p.value.onStepChange?.(e,t)},De=async(e,t)=>{try{return await p.value.onStepBeforeChange?.(e,t)!==!1}catch(e){return p.value.onError?.(e,{source:`callback`}),!1}},Oe=async(e,t)=>{try{return await A(t)?(p.value.onStepValidate?.(e),!0):!1}catch{return!1}};return n({validate:O,revealField:ge,validateField:k,validateStep:A,validateTab:j,validateDynamicFields:M,validateCustomGroup:N,clearValidation:P,getModel:F,setFields:ee,resetFields:I,setFieldValue:ne,getFieldValue:L,setFieldsValue:R,formRef:v,formModel:S,initialize:E,layoutType:(0,d.computed)(()=>p.value.layout),shouldShowDefaultActions:ye,isDirty:re,getChangedFields:V,isFieldDirty:ie,markAsClean:H,asyncLoadingMap:W,asyncErrorMap:G,reloadOptions:q,isSubmitting:J,submit:Y}),(e,t)=>((0,d.openBlock)(),(0,d.createBlock)((0,d.unref)(f.NForm),(0,d.mergeProps)({ref_key:`formRef`,ref:v,class:[`c-form`,m.value&&`c-form--${p.value.density}`],style:g.value,model:(0,d.unref)(S),rules:(0,d.unref)(C),"validate-on-rule-change":!1,"label-placement":p.value.labelPlacement,"label-width":p.value.labelWidth,size:p.value.size,disabled:p.value.disabled,readonly:p.value.readonly},e.$attrs,{onSubmit:(0,d.withModifiers)((0,d.unref)(Y),[`prevent`])}),{default:(0,d.withCtx)(()=>[(0,d.createCommentVNode)(` 布局组件渲染 `),((0,d.openBlock)(),(0,d.createBlock)((0,d.resolveDynamicComponent)(_e.value),(0,d.mergeProps)({ref_key:`layoutRef`,ref:Q,key:p.value.layout,"form-items":(0,d.unref)(Z),"layout-config":ve.value,options:(0,d.unref)(w),"form-data":(0,d.unref)(S)},be.value,{onTabChange:t[0]||=(e,t)=>$(`onTabChange`,e,t),onStepChange:Ee,onFieldAdd:t[1]||=e=>$(`onFieldAdd`,e),onFieldRemove:t[2]||=e=>$(`onFieldRemove`,e),onFieldToggle:t[3]||=(e,t)=>$(`onFieldToggle`,e,t),onFieldsClear:t[4]||=e=>$(`onFieldsClear`),onRenderModeChange:t[5]||=e=>$(`onRenderModeChange`,e),onGroupToggle:t[6]||=(e,t)=>$(`onGroupToggle`,e,t),onGroupReset:t[7]||=e=>$(`onGroupReset`,e),onValidateSuccess:Se,onValidateError:Ce,onFieldsChange:xe}),(0,d.createSlots)({"step-actions":(0,d.withCtx)(t=>[(0,d.renderSlot)(e.$slots,`step-actions`,(0,d.mergeProps)(t,{submit:(0,d.unref)(Y),submitting:(0,d.unref)(J)}),()=>[t.isLastStep&&p.value.showActions?((0,d.openBlock)(),(0,d.createBlock)((0,d.unref)(f.NButton),{key:0,type:`primary`,size:p.value.size,loading:(0,d.unref)(J)||!x.value,disabled:!x.value||(0,d.unref)(J)||p.value.disabled||p.value.readonly,onClick:(0,d.unref)(Y)},{default:(0,d.withCtx)(()=>[(0,d.createTextVNode)((0,d.toDisplayString)(p.value.submitText||(0,d.unref)(_)(`common.submit`)),1)]),_:1},8,[`size`,`loading`,`disabled`,`onClick`])):(0,d.createCommentVNode)(`v-if`,!0)],!0)]),_:2},[(0,d.renderList)(me(),t=>({name:t,fn:(0,d.withCtx)(n=>[(0,d.renderSlot)(e.$slots,t,(0,d.normalizeProps)((0,d.guardReactiveProps)(n)),void 0,!0)])}))]),1040,[`form-items`,`layout-config`,`options`,`form-data`])),(0,d.createCommentVNode)(` 表单操作按钮区域(只在特定布局中显示) `),ye.value?((0,d.openBlock)(),(0,d.createBlock)((0,d.unref)(f.NFormItem),{key:0,class:`c-form-actions`,"show-feedback":!1},{default:(0,d.withCtx)(()=>[(0,d.renderSlot)(e.$slots,`action`,(0,d.normalizeProps)((0,d.guardReactiveProps)(fe.value)),()=>[(0,d.createVNode)((0,d.unref)(f.NSpace),{justify:`end`,size:m.value?h.value.gap:void 0,style:{width:`100%`}},{default:(0,d.withCtx)(()=>[(0,d.createVNode)((0,d.unref)(f.NButton),{size:p.value.size,disabled:!x.value||(0,d.unref)(J)||p.value.disabled||p.value.readonly,onClick:(0,d.unref)(B)},{default:(0,d.withCtx)(()=>[(0,d.createTextVNode)((0,d.toDisplayString)(p.value.resetText||(0,d.unref)(_)(`common.reset`)),1)]),_:1},8,[`size`,`disabled`,`onClick`]),(0,d.renderSlot)(e.$slots,`action-extra`,(0,d.normalizeProps)((0,d.guardReactiveProps)(fe.value)),void 0,!0),(0,d.createVNode)((0,d.unref)(f.NButton),{type:`primary`,size:p.value.size,loading:(0,d.unref)(J)||!x.value,disabled:!x.value||(0,d.unref)(J)||p.value.disabled||p.value.readonly,onClick:(0,d.unref)(z)},{default:(0,d.withCtx)(()=>[(0,d.createTextVNode)((0,d.toDisplayString)(p.value.submitText||(0,d.unref)(_)(`common.submit`)),1)]),_:1},8,[`size`,`loading`,`disabled`,`onClick`])]),_:3},8,[`size`])],!0)]),_:3})):(0,d.createCommentVNode)(`v-if`,!0)]),_:3},16,[`class`,`style`,`model`,`rules`,`label-placement`,`label-width`,`size`,`disabled`,`readonly`,`onSubmit`]))}});var G=o.t(W,[[`__scopeId`,`data-v-12ebc552`]]);function ce(e){return e}function K(e){return e}function q(e){let t=(0,d.shallowRef)(n.t(e.initialValues)),r=(0,d.shallowRef)(null);return{model:t,formRef:r,bindings:(0,d.computed)(()=>({modelValue:t.value,options:(0,d.toValue)(e.options),config:(0,d.toValue)(e.config),"onUpdate:modelValue":e=>{t.value=n.t(e)}})),validate:async()=>{if(!r.value)throw Error(`C_Form is not mounted`);await r.value.validate()},submit:()=>r.value?.submit()??Promise.resolve(!1),reset:()=>{r.value?(r.value.resetFields(),t.value=n.t(r.value.getModel())):t.value=n.t(e.initialValues)},getValues:()=>n.t(r.value?.getModel()??t.value),setValues:async(e,i=!1)=>{r.value?(await r.value.setFieldsValue(e,i),t.value=n.t(r.value.getModel())):t.value={...t.value,...n.t(e)}}}}Object.defineProperty(exports,`a`,{enumerable:!0,get:function(){return D}}),Object.defineProperty(exports,`c`,{enumerable:!0,get:function(){return N}}),Object.defineProperty(exports,`d`,{enumerable:!0,get:function(){return h}}),Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return G}}),Object.defineProperty(exports,`l`,{enumerable:!0,get:function(){return te}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return ce}}),Object.defineProperty(exports,`o`,{enumerable:!0,get:function(){return O}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return q}}),Object.defineProperty(exports,`s`,{enumerable:!0,get:function(){return M}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return K}}),Object.defineProperty(exports,`u`,{enumerable:!0,get:function(){return y}});