@robot-admin/naive-ui-components 0.13.1 → 0.13.2

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 (96) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/README.md +4 -0
  3. package/README_EN.md +4 -0
  4. package/dist/C_Login.css +76 -76
  5. package/dist/C_Login2.cjs +1 -1
  6. package/dist/C_Login2.js +1 -1
  7. package/dist/constants.d.cts +2 -2
  8. package/dist/constants.d.ts +2 -2
  9. package/dist/constants2.d.cts +3 -3
  10. package/dist/constants2.d.ts +3 -3
  11. package/dist/constants3.d.cts +3 -3
  12. package/dist/constants3.d.ts +3 -3
  13. package/dist/constants4.d.cts +7 -7
  14. package/dist/constants4.d.ts +7 -7
  15. package/dist/constants5.d.cts +4 -4
  16. package/dist/constants5.d.ts +4 -4
  17. package/dist/data.d.cts +5 -5
  18. package/dist/data.d.ts +5 -5
  19. package/dist/index.vue.d.cts +4 -4
  20. package/dist/index.vue.d.ts +4 -4
  21. package/dist/index10.vue.d.cts +5 -5
  22. package/dist/index10.vue.d.ts +2 -2
  23. package/dist/index11.vue.d.cts +2 -2
  24. package/dist/index11.vue.d.ts +6 -6
  25. package/dist/index12.vue.d.cts +6 -6
  26. package/dist/index12.vue.d.ts +2 -2
  27. package/dist/index13.vue.d.cts +2 -2
  28. package/dist/index13.vue.d.ts +5 -5
  29. package/dist/index14.vue.d.cts +5 -5
  30. package/dist/index14.vue.d.ts +5 -5
  31. package/dist/index15.vue.d.cts +5 -5
  32. package/dist/index15.vue.d.ts +1 -1
  33. package/dist/index16.vue.d.cts +1 -1
  34. package/dist/index16.vue.d.ts +10 -1
  35. package/dist/index17.vue.d.cts +10 -1
  36. package/dist/index17.vue.d.ts +4 -4
  37. package/dist/index18.vue.d.cts +4 -4
  38. package/dist/index19.vue.d.cts +1 -1
  39. package/dist/index19.vue.d.ts +1 -1
  40. package/dist/index2.vue.d.cts +2 -2
  41. package/dist/index2.vue.d.ts +2 -2
  42. package/dist/index20.vue.d.cts +2 -2
  43. package/dist/index20.vue.d.ts +2 -2
  44. package/dist/index21.vue.d.cts +2 -2
  45. package/dist/index21.vue.d.ts +2 -2
  46. package/dist/index22.vue.d.cts +1 -1
  47. package/dist/index22.vue.d.ts +1 -1
  48. package/dist/index24.vue.d.cts +3 -3
  49. package/dist/index24.vue.d.ts +3 -3
  50. package/dist/index26.vue.d.cts +3 -3
  51. package/dist/index26.vue.d.ts +3 -3
  52. package/dist/index27.vue.d.cts +1 -1
  53. package/dist/index27.vue.d.ts +1 -1
  54. package/dist/index3.vue.d.cts +3 -3
  55. package/dist/index3.vue.d.ts +3 -3
  56. package/dist/index6.vue.d.ts +1 -1
  57. package/dist/index7.vue.d.cts +1 -1
  58. package/dist/index8.vue.d.ts +4 -4
  59. package/dist/index9.vue.d.cts +4 -4
  60. package/dist/index9.vue.d.ts +5 -5
  61. package/dist/mapUtils.d.cts +4 -4
  62. package/dist/mapUtils.d.ts +4 -4
  63. package/dist/presets.d.cts +1 -1
  64. package/dist/presets.d.ts +1 -1
  65. package/dist/style.css +76 -76
  66. package/dist/useCalendarEvents.d.cts +1 -1
  67. package/dist/useCalendarEvents.d.ts +1 -1
  68. package/dist/useCollapsePanel.d.cts +5 -5
  69. package/dist/useCollapsePanel.d.ts +5 -5
  70. package/dist/useCropperCore.d.cts +11 -11
  71. package/dist/useCropperCore.d.ts +11 -11
  72. package/dist/useDraggableLayout.d.cts +5 -5
  73. package/dist/useDraggableLayout.d.ts +5 -5
  74. package/dist/useDynamicFormState.d.cts +2 -2
  75. package/dist/useDynamicFormState.d.ts +2 -2
  76. package/dist/useEdgeInteraction.d.cts +2 -2
  77. package/dist/useEdgeInteraction.d.ts +2 -2
  78. package/dist/useInfiniteScroll.d.cts +3 -3
  79. package/dist/useInfiniteScroll.d.ts +3 -3
  80. package/dist/useQRCode.d.cts +4 -4
  81. package/dist/useQRCode.d.ts +4 -4
  82. package/dist/useSearchState.d.cts +7 -7
  83. package/dist/useSearchState.d.ts +7 -7
  84. package/dist/useSignatureHistory.d.cts +4 -4
  85. package/dist/useSignatureHistory.d.ts +4 -4
  86. package/dist/useSplitResize.d.cts +5 -5
  87. package/dist/useSplitResize.d.ts +5 -5
  88. package/dist/useTimeSelection.d.cts +2 -2
  89. package/dist/useTimeSelection.d.ts +2 -2
  90. package/dist/useTreeOperations.d.cts +4 -4
  91. package/dist/useTreeOperations.d.ts +4 -4
  92. package/dist/useWorkflowValidation.d.cts +5 -5
  93. package/dist/useWorkflowValidation.d.ts +5 -5
  94. package/dist/verification.d.cts +3 -3
  95. package/dist/verification.d.ts +3 -3
  96. package/package.json +1 -1
package/dist/C_Login2.js CHANGED
@@ -1 +1 @@
1
- import{t as e}from"./C_Icon2.js";import{t}from"./export-helper.js";import{t as n}from"./C_Captcha2.js";import{i as r,r as i,t as a}from"./storage.js";import{t as ee}from"./C_QRCode2.js";import{Fragment as o,computed as s,createBlock as c,createCommentVNode as l,createElementBlock as u,createElementVNode as d,createTextVNode as f,createVNode as p,defineComponent as m,onMounted as h,onUnmounted as g,openBlock as _,reactive as v,ref as y,renderList as te,renderSlot as ne,resolveComponent as re,toDisplayString as b,vShow as x,watch as ie,withCtx as S,withDirectives as C,withKeys as w}from"vue";import{NButton as ae,NCheckbox as oe,NDivider as se,NForm as ce,NFormItem as le,NInput as ue,NText as de,NTooltip as fe}from"naive-ui";const T=[{key:`github`,label:`GitHub`,icon:`mdi:github`},{key:`wechat`,label:`微信`,icon:`mdi:wechat`},{key:`qq`,label:`QQ`,icon:`mdi:qqchat`}],E={passwordLogin:!0,captchaLogin:!0,qrcodeLogin:!0,socialLogin:!0,register:!0,captchaVerify:!0,rememberMe:!0,forgotPassword:!0},pe={class:`c-login-panel`},me={class:`c-login__header`},he={key:0,class:`c-login__logo`},ge={class:`c-login__title`},_e={key:0,class:`c-login__subtitle`},ve={key:1,class:`c-login__subtitle c-login__subtitle--register`},ye={key:0,class:`c-login__aux-row`},be={class:`c-login__code-row`},xe={key:0,class:`c-login__captcha-wrap`},Se={key:3,class:`c-login__qr-panel`},Ce={class:`c-login__qr-frame`},we={key:1,class:`c-login__qr-placeholder`},Te={key:2,class:`c-login__qr-scan-line`},Ee={class:`c-login__qr-hint`},De={class:`c-login__code-row`},Oe={key:7,class:`c-login__mode-switch`},ke={class:`c-login__social-row`},Ae={key:9,class:`c-login__register-row`};var D=t(m({__name:`index`,props:{title:{default:`欢迎回来`},subtitle:{},logoIcon:{},features:{},socialProviders:{},qrcodeUrl:{},storageKey:{default:`c_login_remember`},loading:{type:Boolean,default:!1},defaultUsername:{default:``},defaultPassword:{default:``},captchaVerifier:{},captchaProvider:{default:`puzzle-captcha`},captchaChallengeUrl:{},requireCaptchaServerVerification:{type:Boolean,default:!1},captchaVerificationTimeout:{default:1e4}},emits:[`submit`,`captcha-submit`,`send-code`,`social-login`,`forgot-password`,`qrcode-refresh`,`register-submit`,`register-send-code`,`captcha-visible-change`],setup(t,{expose:m,emit:re}){let D=(e,t)=>{let n=globalThis.$t;return n?.(e,t,`robot_admin`)??t},O=(e,t,n)=>[{required:!0,message:`${e}不能为空`,trigger:`blur`},{validator:(e,n)=>!n||typeof n==`string`&&t.test(n),message:n,trigger:`blur`}],k=/^(?:(?:\+|00)86)?1[3-9]\d{9}$/,je=/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[a-zA-Z\d@$!%*?&]{6,20}$/,A=t,j=re,M=s(()=>({...A,features:{...E,...A.features},socialProviders:A.socialProviders??T})),N=s(()=>M.value.features),Me=s(()=>M.value.socialProviders),P=y(`password`),F=y(null),I=v({username:A.defaultUsername??``,password:A.defaultPassword??``}),Ne={username:[{required:!0,message:D(`cl_username_rule`,`请输入用户名`),trigger:`blur`}],password:[{required:!0,message:D(`cl_password_rule`,`请输入密码`),trigger:`blur`}]},L=y(!1);ie([L,()=>I.username],([e])=>{e?r(A.storageKey,{username:I.username}):i(A.storageKey)}),h(()=>{let e=a(A.storageKey);typeof e?.username==`string`&&(I.username=e.username,L.value=!0)});let R=async()=>{try{await F.value?.validate()}catch{return}j(`submit`,{...I,...W.value?{captchaToken:G.value,captchaTimestamp:K.value,captchaType:q.value,captchaVerifiedBy:J.value}:{}})},z=y(null),B=v({account:``,code:``}),V=y(0),H=null,Pe={account:O(`手机号`,k,`手机号格式错误`),code:[{required:!0,message:D(`cl_code_rule`,`请输入验证码`),trigger:`blur`}]},U=y(),W=y(!1),G=y(``),K=y(0),q=y(`puzzle-captcha`),J=y(),Fe=e=>{W.value=!0,G.value=e.token,K.value=e.timestamp,q.value=e.type,J.value=e.verifiedBy},Ie=()=>{W.value=!1},Le=e=>{W.value=e,e||(G.value=``,K.value=0,q.value=`puzzle-captcha`,J.value=void 0)},Re=()=>{W.value=!1,G.value=``,K.value=0,q.value=`puzzle-captcha`,J.value=void 0,U.value?.reset()},Y=async()=>{try{await z.value?.validate()}catch{return}N.value.captchaVerify&&!W.value||j(`captcha-submit`,{...B})},ze=()=>{let e=B.account.trim();V.value>0||!k.test(e)||(j(`send-code`,e),H&&=(clearInterval(H),null),V.value=60,H=setInterval(()=>{V.value--,V.value<=0&&(clearInterval(H),H=null)},1e3))},X=s(()=>A.qrcodeUrl?.trim()??``),Be=()=>{j(`qrcode-refresh`)},Ve=y(null),Z=v({phone:``,code:``,password:``,confirmPassword:``}),Q=y(0),$=null,He={phone:O(`手机号`,k,`手机号格式错误`),code:[{required:!0,message:D(`cl_code_rule`,`请输入验证码`),trigger:`blur`}],password:O(`密码`,je,`密码必须包含大小写字母和数字,长度6-20位`),confirmPassword:[{required:!0,message:D(`cl_confirm_pw_rule`,`请再次输入密码`),trigger:`blur`},{validator:(e,t)=>t===Z.password?!0:Error(D(`cl_pw_mismatch`,`两次密码输入不一致`)),trigger:`blur`}]},Ue=()=>{let e=Z.phone.trim();Q.value>0||!k.test(e)||(j(`register-send-code`,e),$&&=(clearInterval($),null),Q.value=60,$=setInterval(()=>{Q.value--,Q.value<=0&&(clearInterval($),$=null)},1e3))},We=async()=>{try{await Ve.value?.validate()}catch{return}j(`register-submit`,{...Z})};return g(()=>{H&&=(clearInterval(H),null),$&&=(clearInterval($),null)}),m({resetCaptcha:Re}),(t,r)=>{let i=ue,a=le,s=oe,m=de,h=ce,g=ae,v=se,y=fe;return _(),u(`div`,pe,[l(` ===== Logo / 标题区 ===== `),d(`div`,me,[ne(t.$slots,`logo`,{},()=>[M.value.logoIcon?(_(),u(`div`,he,[p(e,{name:M.value.logoIcon,size:36,class:`c-login__logo-icon`},null,8,[`name`])])):l(`v-if`,!0)],!0),d(`h2`,ge,b(M.value.title),1),M.value.subtitle&&P.value!==`register`?(_(),u(`p`,_e,b(M.value.subtitle),1)):l(`v-if`,!0),l(` 注册视图的副标题 `),P.value===`register`?(_(),u(`p`,ve,b(D(`cl_register`,`注册账号`)),1)):l(`v-if`,!0)]),l(` ===== 密码登录表单(默认视图) ===== `),C(p(h,{ref_key:`passwordFormRef`,ref:F,model:I,rules:Ne,class:`c-login__form`},{default:S(()=>[p(a,{path:`username`,class:`c-login__form-item`},{default:S(()=>[p(i,{value:I.username,"onUpdate:value":r[0]||=e=>I.username=e,placeholder:D(`cl_username_ph`,`请输入用户名`),clearable:``},{prefix:S(()=>[p(e,{name:`mdi:account-outline`,size:16,class:`c-login__input-icon`})]),_:1},8,[`value`,`placeholder`])]),_:1}),p(a,{path:`password`,class:`c-login__form-item`},{default:S(()=>[p(i,{value:I.password,"onUpdate:value":r[1]||=e=>I.password=e,type:`password`,"show-password-on":`click`,placeholder:D(`cl_password_ph`,`请输入密码`),clearable:``,onKeyup:w(R,[`enter`])},{prefix:S(()=>[p(e,{name:`mdi:lock-outline`,size:16,class:`c-login__input-icon`})]),_:1},8,[`value`,`placeholder`])]),_:1}),l(` 记住我 + 忘记密码 `),N.value.rememberMe||N.value.forgotPassword?(_(),u(`div`,ye,[N.value.rememberMe?(_(),c(s,{key:0,checked:L.value,"onUpdate:checked":r[2]||=e=>L.value=e,class:`c-login__remember`},{default:S(()=>[f(b(D(`cl_remember`,`记住我`)),1)]),_:1},8,[`checked`])):l(`v-if`,!0),N.value.forgotPassword?(_(),c(m,{key:1,class:`c-login__forgot`,onClick:r[3]||=e=>j(`forgot-password`)},{default:S(()=>[f(b(D(`cl_forgot`,`忘记密码?`)),1)]),_:1})):l(`v-if`,!0)])):l(`v-if`,!0)]),_:1},8,[`model`]),[[x,P.value===`password`]]),l(` ===== 验证码登录表单 ===== `),C(p(h,{ref_key:`captchaFormRef`,ref:z,model:B,rules:Pe,class:`c-login__form`},{default:S(()=>[p(a,{path:`account`,class:`c-login__form-item`},{default:S(()=>[p(i,{value:B.account,"onUpdate:value":r[4]||=e=>B.account=e,placeholder:D(`cl_phone_ph`,`请输入手机号`),clearable:``,maxlength:`11`},{prefix:S(()=>[p(e,{name:`mdi:cellphone`,size:16,class:`c-login__input-icon`})]),_:1},8,[`value`,`placeholder`])]),_:1}),p(a,{path:`code`,class:`c-login__form-item`},{default:S(()=>[d(`div`,be,[p(i,{value:B.code,"onUpdate:value":r[5]||=e=>B.code=e,placeholder:D(`cl_code_ph`,`请输入验证码`),clearable:``,class:`c-login__code-input`,onKeyup:w(Y,[`enter`])},{prefix:S(()=>[p(e,{name:`mdi:shield-key-outline`,size:16,class:`c-login__input-icon`})]),_:1},8,[`value`,`placeholder`]),p(g,{disabled:V.value>0||!B.account,class:`c-login__send-code-btn`,onClick:ze},{default:S(()=>[f(b(V.value>0?`${V.value}s ${D(`cl_resend`,`后重发`)}`:D(`cl_get_code`,`获取验证码`)),1)]),_:1},8,[`disabled`])])]),_:1})]),_:1},8,[`model`]),[[x,P.value===`captcha`]]),l(` ===== 人机验证拼图(仅密码登录模式) ===== `),N.value.captchaVerify&&P.value===`password`?(_(),u(`div`,xe,[p(n,{ref_key:`captchaRef`,ref:U,theme:`dark`,provider:A.captchaProvider,"challenge-url":A.captchaChallengeUrl,verifier:A.captchaVerifier,"require-server-verification":A.requireCaptchaServerVerification,"verification-timeout":A.captchaVerificationTimeout,onSuccess:Fe,onFail:Ie,onChange:Le,onVisibleChange:r[6]||=e=>j(`captcha-visible-change`,e)},null,8,[`provider`,`challenge-url`,`verifier`,`require-server-verification`,`verification-timeout`])])):l(`v-if`,!0),l(` ===== 登录按钮(密码和验证码模式) ===== `),P.value===`password`||P.value===`captcha`?(_(),c(g,{key:1,type:`primary`,block:``,loading:A.loading,disabled:P.value===`password`&&N.value.captchaVerify&&!W.value,class:`c-login__submit-btn`,onClick:r[7]||=e=>P.value===`password`?R():Y()},{default:S(()=>[f(b(P.value===`password`&&N.value.captchaVerify&&!W.value?D(`cl_verify_first`,`请先完成人机验证`):D(`cl_login_btn`,`登 录`)),1)]),_:1},8,[`loading`,`disabled`])):l(`v-if`,!0),l(` ===== 返回按钮(验证码子视图) ===== `),P.value===`captcha`?(_(),c(g,{key:2,block:``,class:`c-login__back-btn`,onClick:r[8]||=e=>P.value=`password`},{default:S(()=>[f(b(D(`cl_back`,`返回`)),1)]),_:1})):l(`v-if`,!0),l(` ===== 扫码登录面板 ===== `),P.value===`qrcode`?(_(),u(`div`,Se,[d(`div`,Ce,[X.value?(_(),c(ee,{key:0,value:X.value,size:148,margin:1,"show-border":!1,color:`#ffffff`,"bg-color":`#000000`,"error-correction-level":`M`},null,8,[`value`])):(_(),u(`div`,we,b(D(`cl_qr_missing`,`请配置二维码地址`)),1)),X.value?(_(),u(`div`,Te)):l(`v-if`,!0),r[18]||=d(`div`,{class:`c-login__qr-corner c-login__qr-corner--tl`},null,-1),r[19]||=d(`div`,{class:`c-login__qr-corner c-login__qr-corner--tr`},null,-1),r[20]||=d(`div`,{class:`c-login__qr-corner c-login__qr-corner--bl`},null,-1),r[21]||=d(`div`,{class:`c-login__qr-corner c-login__qr-corner--br`},null,-1)]),d(`p`,Ee,[p(e,{name:`mdi:cellphone-check`,size:13}),f(` `+b(D(`cl_qr_hint`,`打开手机扫码后点击「确认」即可登录`)),1)]),p(g,{text:``,size:`tiny`,class:`c-login__qr-refresh`,onClick:Be},{icon:S(()=>[p(e,{name:`mdi:refresh`,size:12})]),default:S(()=>[f(` `+b(D(`cl_qr_refresh`,`二维码已失效?点击刷新`)),1)]),_:1})])):l(`v-if`,!0),l(` ===== 返回按钮(扫码子视图,在二维码下方) ===== `),P.value===`qrcode`?(_(),c(g,{key:4,block:``,class:`c-login__back-btn`,onClick:r[9]||=e=>P.value=`password`},{default:S(()=>[f(b(D(`cl_back`,`返回`)),1)]),_:1})):l(`v-if`,!0),l(` ===== 注册表单 ===== `),C(p(h,{ref_key:`registerFormRef`,ref:Ve,model:Z,rules:He,class:`c-login__form`},{default:S(()=>[p(a,{path:`phone`,class:`c-login__form-item`},{default:S(()=>[p(i,{value:Z.phone,"onUpdate:value":r[10]||=e=>Z.phone=e,placeholder:D(`cl_phone_ph`,`请输入手机号`),clearable:``,maxlength:`11`},{prefix:S(()=>[p(e,{name:`mdi:cellphone`,size:16,class:`c-login__input-icon`})]),_:1},8,[`value`,`placeholder`])]),_:1}),p(a,{path:`code`,class:`c-login__form-item`},{default:S(()=>[d(`div`,De,[p(i,{value:Z.code,"onUpdate:value":r[11]||=e=>Z.code=e,placeholder:D(`cl_code_ph`,`请输入验证码`),clearable:``,class:`c-login__code-input`},{prefix:S(()=>[p(e,{name:`mdi:shield-key-outline`,size:16,class:`c-login__input-icon`})]),_:1},8,[`value`,`placeholder`]),p(g,{disabled:Q.value>0||!Z.phone,class:`c-login__send-code-btn`,onClick:Ue},{default:S(()=>[f(b(Q.value>0?`${Q.value}s ${D(`cl_resend`,`后重发`)}`:D(`cl_get_code`,`获取验证码`)),1)]),_:1},8,[`disabled`])])]),_:1}),p(a,{path:`password`,class:`c-login__form-item`},{default:S(()=>[p(i,{value:Z.password,"onUpdate:value":r[12]||=e=>Z.password=e,type:`password`,"show-password-on":`click`,placeholder:D(`cl_password_ph`,`请输入密码`)},{prefix:S(()=>[p(e,{name:`mdi:lock-outline`,size:16,class:`c-login__input-icon`})]),_:1},8,[`value`,`placeholder`])]),_:1}),p(a,{path:`confirmPassword`,class:`c-login__form-item`},{default:S(()=>[p(i,{value:Z.confirmPassword,"onUpdate:value":r[13]||=e=>Z.confirmPassword=e,type:`password`,"show-password-on":`click`,placeholder:D(`cl_confirm_pw_ph`,`请再次输入密码`),onKeyup:w(We,[`enter`])},{prefix:S(()=>[p(e,{name:`mdi:lock-check-outline`,size:16,class:`c-login__input-icon`})]),_:1},8,[`value`,`placeholder`])]),_:1})]),_:1},8,[`model`]),[[x,P.value===`register`]]),l(` ===== 注册确认按钮 ===== `),P.value===`register`?(_(),c(g,{key:5,type:`primary`,block:``,loading:A.loading,class:`c-login__submit-btn`,onClick:We},{default:S(()=>[f(b(D(`cl_confirm`,`确认`)),1)]),_:1},8,[`loading`])):l(`v-if`,!0),l(` ===== 注册视图返回按钮 ===== `),P.value===`register`?(_(),c(g,{key:6,block:``,class:`c-login__back-btn`,onClick:r[14]||=e=>P.value=`password`},{default:S(()=>[f(b(D(`cl_back`,`返回`)),1)]),_:1})):l(`v-if`,!0),l(` ===== 登录方式切换(仅密码登录默认视图显示) ===== `),P.value===`password`&&(N.value.captchaLogin||N.value.qrcodeLogin)?(_(),u(`div`,Oe,[N.value.captchaLogin?(_(),c(g,{key:0,class:`c-login__mode-btn`,size:`small`,onClick:r[15]||=e=>P.value=`captcha`},{default:S(()=>[f(b(D(`cl_captcha_login`,`验证码登录`)),1)]),_:1})):l(`v-if`,!0),N.value.qrcodeLogin?(_(),c(g,{key:1,class:`c-login__mode-btn`,size:`small`,onClick:r[16]||=e=>P.value=`qrcode`},{default:S(()=>[f(b(D(`cl_qr_login`,`扫码登录`)),1)]),_:1})):l(`v-if`,!0)])):l(`v-if`,!0),l(` ===== 其他登录方式(仅密码登录默认视图显示) ===== `),P.value===`password`&&N.value.socialLogin&&Me.value.length?(_(),u(o,{key:8},[p(v,{class:`c-login__divider`},{default:S(()=>[f(b(D(`cl_social_login`,`其他账号登录`)),1)]),_:1}),d(`div`,ke,[(_(!0),u(o,null,te(Me.value,t=>(_(),c(y,{key:t.key,trigger:`hover`,placement:`top`},{trigger:S(()=>[p(g,{circle:``,class:`c-login__social-btn`,onClick:e=>j(`social-login`,t.key)},{icon:S(()=>[p(e,{name:t.icon,size:16},null,8,[`name`])]),_:2},1032,[`onClick`])]),default:S(()=>[f(` `+b(t.label),1)]),_:2},1024))),128))])],64)):l(`v-if`,!0),l(` ===== 注册入口(仅密码登录默认视图显示) ===== `),P.value===`password`&&N.value.register?(_(),u(`div`,Ae,[p(m,{class:`c-login__register-hint`},{default:S(()=>[f(b(D(`cl_no_account`,`还没有账号?`)),1)]),_:1}),p(m,{class:`c-login__register-link`,onClick:r[17]||=e=>P.value=`register`},{default:S(()=>[f(b(D(`cl_register`,`注册账号`)),1)]),_:1})])):l(`v-if`,!0)])}}}),[[`__scopeId`,`data-v-73103033`]]);export{E as n,T as r,D as t};
1
+ import{t as e}from"./C_Icon2.js";import{t}from"./export-helper.js";import{t as n}from"./C_Captcha2.js";import{i as r,r as i,t as a}from"./storage.js";import{t as ee}from"./C_QRCode2.js";import{Fragment as o,computed as s,createBlock as c,createCommentVNode as l,createElementBlock as u,createElementVNode as d,createTextVNode as f,createVNode as p,defineComponent as m,onMounted as h,onUnmounted as g,openBlock as _,reactive as v,ref as y,renderList as te,renderSlot as ne,resolveComponent as re,toDisplayString as b,vShow as x,watch as ie,withCtx as S,withDirectives as C,withKeys as w}from"vue";import{NButton as ae,NCheckbox as oe,NDivider as se,NForm as ce,NFormItem as le,NInput as ue,NText as de,NTooltip as fe}from"naive-ui";const T=[{key:`github`,label:`GitHub`,icon:`mdi:github`},{key:`wechat`,label:`微信`,icon:`mdi:wechat`},{key:`qq`,label:`QQ`,icon:`mdi:qqchat`}],E={passwordLogin:!0,captchaLogin:!0,qrcodeLogin:!0,socialLogin:!0,register:!0,captchaVerify:!0,rememberMe:!0,forgotPassword:!0},pe={class:`c-login-panel`},me={class:`c-login__header`},he={key:0,class:`c-login__logo`},ge={class:`c-login__title`},_e={key:0,class:`c-login__subtitle`},ve={key:1,class:`c-login__subtitle c-login__subtitle--register`},ye={key:0,class:`c-login__aux-row`},be={class:`c-login__code-row`},xe={key:0,class:`c-login__captcha-wrap`},Se={key:3,class:`c-login__qr-panel`},Ce={class:`c-login__qr-frame`},we={key:1,class:`c-login__qr-placeholder`},Te={key:2,class:`c-login__qr-scan-line`},Ee={class:`c-login__qr-hint`},De={class:`c-login__code-row`},Oe={key:7,class:`c-login__mode-switch`},ke={class:`c-login__social-row`},Ae={key:9,class:`c-login__register-row`};var D=t(m({__name:`index`,props:{title:{default:`欢迎回来`},subtitle:{},logoIcon:{},features:{},socialProviders:{},qrcodeUrl:{},storageKey:{default:`c_login_remember`},loading:{type:Boolean,default:!1},submitDisabled:{type:Boolean},defaultUsername:{default:``},defaultPassword:{default:``},captchaVerifier:{},captchaProvider:{default:`puzzle-captcha`},captchaChallengeUrl:{},requireCaptchaServerVerification:{type:Boolean,default:!1},captchaVerificationTimeout:{default:1e4}},emits:[`submit`,`captcha-submit`,`send-code`,`social-login`,`forgot-password`,`qrcode-refresh`,`register-submit`,`register-send-code`,`captcha-visible-change`,`username-change`],setup(t,{expose:m,emit:re}){let D=(e,t)=>{let n=globalThis.$t;return n?.(e,t,`robot_admin`)??t},O=(e,t,n)=>[{required:!0,message:`${e}不能为空`,trigger:`blur`},{validator:(e,n)=>!n||typeof n==`string`&&t.test(n),message:n,trigger:`blur`}],k=/^(?:(?:\+|00)86)?1[3-9]\d{9}$/,je=/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[a-zA-Z\d@$!%*?&]{6,20}$/,A=t,j=re,M=s(()=>({...A,features:{...E,...A.features},socialProviders:A.socialProviders??T})),N=s(()=>M.value.features),P=s(()=>M.value.socialProviders),F=y(`password`),I=y(null),L=v({username:A.defaultUsername??``,password:A.defaultPassword??``}),Me={username:[{required:!0,message:D(`cl_username_rule`,`请输入用户名`),trigger:`blur`}],password:[{required:!0,message:D(`cl_password_rule`,`请输入密码`),trigger:`blur`}]};ie(()=>L.username,e=>j(`username-change`,e),{immediate:!0,flush:`sync`});let R=y(!1);ie([R,()=>L.username],([e])=>{e?r(A.storageKey,{username:L.username}):i(A.storageKey)}),h(()=>{let e=a(A.storageKey);typeof e?.username==`string`&&(L.username=e.username,R.value=!0)});let z=async()=>{if(!(A.loading||A.submitDisabled||N.value.captchaVerify&&!G.value)){try{await I.value?.validate()}catch{return}A.loading||A.submitDisabled||N.value.captchaVerify&&!G.value||j(`submit`,{...L,...G.value?{captchaToken:K.value,captchaTimestamp:q.value,captchaType:J.value,captchaVerifiedBy:Y.value}:{}})}},B=y(null),V=v({account:``,code:``}),H=y(0),U=null,Ne={account:O(`手机号`,k,`手机号格式错误`),code:[{required:!0,message:D(`cl_code_rule`,`请输入验证码`),trigger:`blur`}]},W=y(),G=y(!1),K=y(``),q=y(0),J=y(`puzzle-captcha`),Y=y(),Pe=e=>{G.value=!0,K.value=e.token,q.value=e.timestamp,J.value=e.type,Y.value=e.verifiedBy},Fe=()=>{G.value=!1},Ie=e=>{G.value=e,e||(K.value=``,q.value=0,J.value=`puzzle-captcha`,Y.value=void 0)},Le=()=>{G.value=!1,K.value=``,q.value=0,J.value=`puzzle-captcha`,Y.value=void 0,W.value?.reset()},Re=async()=>{if(!(A.loading||A.submitDisabled)){try{await B.value?.validate()}catch{return}N.value.captchaVerify&&!G.value||j(`captcha-submit`,{...V})}},ze=()=>{let e=V.account.trim();H.value>0||!k.test(e)||(j(`send-code`,e),U&&=(clearInterval(U),null),H.value=60,U=setInterval(()=>{H.value--,H.value<=0&&(clearInterval(U),U=null)},1e3))},X=s(()=>A.qrcodeUrl?.trim()??``),Be=()=>{j(`qrcode-refresh`)},Ve=y(null),Z=v({phone:``,code:``,password:``,confirmPassword:``}),Q=y(0),$=null,He={phone:O(`手机号`,k,`手机号格式错误`),code:[{required:!0,message:D(`cl_code_rule`,`请输入验证码`),trigger:`blur`}],password:O(`密码`,je,`密码必须包含大小写字母和数字,长度6-20位`),confirmPassword:[{required:!0,message:D(`cl_confirm_pw_rule`,`请再次输入密码`),trigger:`blur`},{validator:(e,t)=>t===Z.password?!0:Error(D(`cl_pw_mismatch`,`两次密码输入不一致`)),trigger:`blur`}]},Ue=()=>{let e=Z.phone.trim();Q.value>0||!k.test(e)||(j(`register-send-code`,e),$&&=(clearInterval($),null),Q.value=60,$=setInterval(()=>{Q.value--,Q.value<=0&&(clearInterval($),$=null)},1e3))},We=async()=>{try{await Ve.value?.validate()}catch{return}j(`register-submit`,{...Z})};return g(()=>{U&&=(clearInterval(U),null),$&&=(clearInterval($),null)}),m({resetCaptcha:Le}),(t,r)=>{let i=ue,a=le,s=oe,m=de,h=ce,g=ae,v=se,y=fe;return _(),u(`div`,pe,[l(` ===== Logo / 标题区 ===== `),d(`div`,me,[ne(t.$slots,`logo`,{},()=>[M.value.logoIcon?(_(),u(`div`,he,[p(e,{name:M.value.logoIcon,size:36,class:`c-login__logo-icon`},null,8,[`name`])])):l(`v-if`,!0)],!0),d(`h2`,ge,b(M.value.title),1),M.value.subtitle&&F.value!==`register`?(_(),u(`p`,_e,b(M.value.subtitle),1)):l(`v-if`,!0),l(` 注册视图的副标题 `),F.value===`register`?(_(),u(`p`,ve,b(D(`cl_register`,`注册账号`)),1)):l(`v-if`,!0)]),l(` ===== 密码登录表单(默认视图) ===== `),C(p(h,{ref_key:`passwordFormRef`,ref:I,model:L,rules:Me,class:`c-login__form`},{default:S(()=>[p(a,{path:`username`,class:`c-login__form-item`},{default:S(()=>[p(i,{value:L.username,"onUpdate:value":r[0]||=e=>L.username=e,disabled:A.loading,placeholder:D(`cl_username_ph`,`请输入用户名`),clearable:``},{prefix:S(()=>[p(e,{name:`mdi:account-outline`,size:16,class:`c-login__input-icon`})]),_:1},8,[`value`,`disabled`,`placeholder`])]),_:1}),p(a,{path:`password`,class:`c-login__form-item`},{default:S(()=>[p(i,{value:L.password,"onUpdate:value":r[1]||=e=>L.password=e,disabled:A.loading,type:`password`,"show-password-on":`click`,placeholder:D(`cl_password_ph`,`请输入密码`),clearable:``,onKeyup:w(z,[`enter`])},{prefix:S(()=>[p(e,{name:`mdi:lock-outline`,size:16,class:`c-login__input-icon`})]),_:1},8,[`value`,`disabled`,`placeholder`])]),_:1}),l(` 宿主扩展字段只获得账号与忙碌状态,不暴露密码。 `),ne(t.$slots,`password-fields`,{username:L.username,loading:A.loading},void 0,!0),l(` 记住我 + 忘记密码 `),N.value.rememberMe||N.value.forgotPassword?(_(),u(`div`,ye,[N.value.rememberMe?(_(),c(s,{key:0,checked:R.value,"onUpdate:checked":r[2]||=e=>R.value=e,class:`c-login__remember`},{default:S(()=>[f(b(D(`cl_remember`,`记住我`)),1)]),_:1},8,[`checked`])):l(`v-if`,!0),N.value.forgotPassword?(_(),c(m,{key:1,class:`c-login__forgot`,onClick:r[3]||=e=>j(`forgot-password`)},{default:S(()=>[f(b(D(`cl_forgot`,`忘记密码?`)),1)]),_:1})):l(`v-if`,!0)])):l(`v-if`,!0)]),_:3},8,[`model`]),[[x,F.value===`password`]]),l(` ===== 验证码登录表单 ===== `),C(p(h,{ref_key:`captchaFormRef`,ref:B,model:V,rules:Ne,class:`c-login__form`},{default:S(()=>[p(a,{path:`account`,class:`c-login__form-item`},{default:S(()=>[p(i,{value:V.account,"onUpdate:value":r[4]||=e=>V.account=e,placeholder:D(`cl_phone_ph`,`请输入手机号`),clearable:``,maxlength:`11`},{prefix:S(()=>[p(e,{name:`mdi:cellphone`,size:16,class:`c-login__input-icon`})]),_:1},8,[`value`,`placeholder`])]),_:1}),p(a,{path:`code`,class:`c-login__form-item`},{default:S(()=>[d(`div`,be,[p(i,{value:V.code,"onUpdate:value":r[5]||=e=>V.code=e,placeholder:D(`cl_code_ph`,`请输入验证码`),clearable:``,class:`c-login__code-input`,onKeyup:w(Re,[`enter`])},{prefix:S(()=>[p(e,{name:`mdi:shield-key-outline`,size:16,class:`c-login__input-icon`})]),_:1},8,[`value`,`placeholder`]),p(g,{disabled:H.value>0||!V.account,class:`c-login__send-code-btn`,onClick:ze},{default:S(()=>[f(b(H.value>0?`${H.value}s ${D(`cl_resend`,`后重发`)}`:D(`cl_get_code`,`获取验证码`)),1)]),_:1},8,[`disabled`])])]),_:1})]),_:1},8,[`model`]),[[x,F.value===`captcha`]]),l(` ===== 人机验证拼图(仅密码登录模式) ===== `),N.value.captchaVerify&&F.value===`password`?(_(),u(`div`,xe,[p(n,{ref_key:`captchaRef`,ref:W,theme:`dark`,provider:A.captchaProvider,"challenge-url":A.captchaChallengeUrl,verifier:A.captchaVerifier,"require-server-verification":A.requireCaptchaServerVerification,"verification-timeout":A.captchaVerificationTimeout,onSuccess:Pe,onFail:Fe,onChange:Ie,onVisibleChange:r[6]||=e=>j(`captcha-visible-change`,e)},null,8,[`provider`,`challenge-url`,`verifier`,`require-server-verification`,`verification-timeout`])])):l(`v-if`,!0),l(` ===== 登录按钮(密码和验证码模式) ===== `),F.value===`password`||F.value===`captcha`?(_(),c(g,{key:1,type:`primary`,block:``,loading:A.loading,disabled:A.loading||A.submitDisabled||F.value===`password`&&N.value.captchaVerify&&!G.value,class:`c-login__submit-btn`,onClick:r[7]||=e=>F.value===`password`?z():Re()},{default:S(()=>[f(b(F.value===`password`&&N.value.captchaVerify&&!G.value?D(`cl_verify_first`,`请先完成人机验证`):D(`cl_login_btn`,`登 录`)),1)]),_:1},8,[`loading`,`disabled`])):l(`v-if`,!0),l(` ===== 返回按钮(验证码子视图) ===== `),F.value===`captcha`?(_(),c(g,{key:2,block:``,class:`c-login__back-btn`,onClick:r[8]||=e=>F.value=`password`},{default:S(()=>[f(b(D(`cl_back`,`返回`)),1)]),_:1})):l(`v-if`,!0),l(` ===== 扫码登录面板 ===== `),F.value===`qrcode`?(_(),u(`div`,Se,[d(`div`,Ce,[X.value?(_(),c(ee,{key:0,value:X.value,size:148,margin:1,"show-border":!1,color:`#ffffff`,"bg-color":`#000000`,"error-correction-level":`M`},null,8,[`value`])):(_(),u(`div`,we,b(D(`cl_qr_missing`,`请配置二维码地址`)),1)),X.value?(_(),u(`div`,Te)):l(`v-if`,!0),r[18]||=d(`div`,{class:`c-login__qr-corner c-login__qr-corner--tl`},null,-1),r[19]||=d(`div`,{class:`c-login__qr-corner c-login__qr-corner--tr`},null,-1),r[20]||=d(`div`,{class:`c-login__qr-corner c-login__qr-corner--bl`},null,-1),r[21]||=d(`div`,{class:`c-login__qr-corner c-login__qr-corner--br`},null,-1)]),d(`p`,Ee,[p(e,{name:`mdi:cellphone-check`,size:13}),f(` `+b(D(`cl_qr_hint`,`打开手机扫码后点击「确认」即可登录`)),1)]),p(g,{text:``,size:`tiny`,class:`c-login__qr-refresh`,onClick:Be},{icon:S(()=>[p(e,{name:`mdi:refresh`,size:12})]),default:S(()=>[f(` `+b(D(`cl_qr_refresh`,`二维码已失效?点击刷新`)),1)]),_:1})])):l(`v-if`,!0),l(` ===== 返回按钮(扫码子视图,在二维码下方) ===== `),F.value===`qrcode`?(_(),c(g,{key:4,block:``,class:`c-login__back-btn`,onClick:r[9]||=e=>F.value=`password`},{default:S(()=>[f(b(D(`cl_back`,`返回`)),1)]),_:1})):l(`v-if`,!0),l(` ===== 注册表单 ===== `),C(p(h,{ref_key:`registerFormRef`,ref:Ve,model:Z,rules:He,class:`c-login__form`},{default:S(()=>[p(a,{path:`phone`,class:`c-login__form-item`},{default:S(()=>[p(i,{value:Z.phone,"onUpdate:value":r[10]||=e=>Z.phone=e,placeholder:D(`cl_phone_ph`,`请输入手机号`),clearable:``,maxlength:`11`},{prefix:S(()=>[p(e,{name:`mdi:cellphone`,size:16,class:`c-login__input-icon`})]),_:1},8,[`value`,`placeholder`])]),_:1}),p(a,{path:`code`,class:`c-login__form-item`},{default:S(()=>[d(`div`,De,[p(i,{value:Z.code,"onUpdate:value":r[11]||=e=>Z.code=e,placeholder:D(`cl_code_ph`,`请输入验证码`),clearable:``,class:`c-login__code-input`},{prefix:S(()=>[p(e,{name:`mdi:shield-key-outline`,size:16,class:`c-login__input-icon`})]),_:1},8,[`value`,`placeholder`]),p(g,{disabled:Q.value>0||!Z.phone,class:`c-login__send-code-btn`,onClick:Ue},{default:S(()=>[f(b(Q.value>0?`${Q.value}s ${D(`cl_resend`,`后重发`)}`:D(`cl_get_code`,`获取验证码`)),1)]),_:1},8,[`disabled`])])]),_:1}),p(a,{path:`password`,class:`c-login__form-item`},{default:S(()=>[p(i,{value:Z.password,"onUpdate:value":r[12]||=e=>Z.password=e,type:`password`,"show-password-on":`click`,placeholder:D(`cl_password_ph`,`请输入密码`)},{prefix:S(()=>[p(e,{name:`mdi:lock-outline`,size:16,class:`c-login__input-icon`})]),_:1},8,[`value`,`placeholder`])]),_:1}),p(a,{path:`confirmPassword`,class:`c-login__form-item`},{default:S(()=>[p(i,{value:Z.confirmPassword,"onUpdate:value":r[13]||=e=>Z.confirmPassword=e,type:`password`,"show-password-on":`click`,placeholder:D(`cl_confirm_pw_ph`,`请再次输入密码`),onKeyup:w(We,[`enter`])},{prefix:S(()=>[p(e,{name:`mdi:lock-check-outline`,size:16,class:`c-login__input-icon`})]),_:1},8,[`value`,`placeholder`])]),_:1})]),_:1},8,[`model`]),[[x,F.value===`register`]]),l(` ===== 注册确认按钮 ===== `),F.value===`register`?(_(),c(g,{key:5,type:`primary`,block:``,loading:A.loading,class:`c-login__submit-btn`,onClick:We},{default:S(()=>[f(b(D(`cl_confirm`,`确认`)),1)]),_:1},8,[`loading`])):l(`v-if`,!0),l(` ===== 注册视图返回按钮 ===== `),F.value===`register`?(_(),c(g,{key:6,block:``,class:`c-login__back-btn`,onClick:r[14]||=e=>F.value=`password`},{default:S(()=>[f(b(D(`cl_back`,`返回`)),1)]),_:1})):l(`v-if`,!0),l(` ===== 登录方式切换(仅密码登录默认视图显示) ===== `),F.value===`password`&&(N.value.captchaLogin||N.value.qrcodeLogin)?(_(),u(`div`,Oe,[N.value.captchaLogin?(_(),c(g,{key:0,class:`c-login__mode-btn`,size:`small`,onClick:r[15]||=e=>F.value=`captcha`},{default:S(()=>[f(b(D(`cl_captcha_login`,`验证码登录`)),1)]),_:1})):l(`v-if`,!0),N.value.qrcodeLogin?(_(),c(g,{key:1,class:`c-login__mode-btn`,size:`small`,onClick:r[16]||=e=>F.value=`qrcode`},{default:S(()=>[f(b(D(`cl_qr_login`,`扫码登录`)),1)]),_:1})):l(`v-if`,!0)])):l(`v-if`,!0),l(` ===== 其他登录方式(仅密码登录默认视图显示) ===== `),F.value===`password`&&N.value.socialLogin&&P.value.length?(_(),u(o,{key:8},[p(v,{class:`c-login__divider`},{default:S(()=>[f(b(D(`cl_social_login`,`其他账号登录`)),1)]),_:1}),d(`div`,ke,[(_(!0),u(o,null,te(P.value,t=>(_(),c(y,{key:t.key,trigger:`hover`,placement:`top`},{trigger:S(()=>[p(g,{circle:``,class:`c-login__social-btn`,onClick:e=>j(`social-login`,t.key)},{icon:S(()=>[p(e,{name:t.icon,size:16},null,8,[`name`])]),_:2},1032,[`onClick`])]),default:S(()=>[f(` `+b(t.label),1)]),_:2},1024))),128))])],64)):l(`v-if`,!0),l(` ===== 注册入口(仅密码登录默认视图显示) ===== `),F.value===`password`&&N.value.register?(_(),u(`div`,Ae,[p(m,{class:`c-login__register-hint`},{default:S(()=>[f(b(D(`cl_no_account`,`还没有账号?`)),1)]),_:1}),p(m,{class:`c-login__register-link`,onClick:r[17]||=e=>F.value=`register`},{default:S(()=>[f(b(D(`cl_register`,`注册账号`)),1)]),_:1})])):l(`v-if`,!0)])}}}),[[`__scopeId`,`data-v-8a92d34b`]]);export{E as n,T as r,D as t};
@@ -118,13 +118,13 @@ declare const __VLS_export: vue.DefineComponent<CronProps, {
118
118
  "onUpdate:modelValue"?: ((value: string) => any) | undefined;
119
119
  "onValidation-change"?: ((result: CronValidation) => any) | undefined;
120
120
  }>, {
121
- modelValue: string;
121
+ height: string | number;
122
122
  disabled: boolean;
123
+ modelValue: string;
123
124
  previewCount: number;
124
125
  showTemplates: boolean;
125
126
  showPreview: boolean;
126
127
  showSecond: boolean;
127
- height: string | number;
128
128
  }, {}, {}, {}, string, vue.ComponentProvideOptions, false, {}, any>;
129
129
  declare const _default: typeof __VLS_export;
130
130
  //#endregion
@@ -118,13 +118,13 @@ declare const __VLS_export: vue.DefineComponent<CronProps, {
118
118
  "onUpdate:modelValue"?: ((value: string) => any) | undefined;
119
119
  "onValidation-change"?: ((result: CronValidation) => any) | undefined;
120
120
  }>, {
121
- modelValue: string;
121
+ height: string | number;
122
122
  disabled: boolean;
123
+ modelValue: string;
123
124
  previewCount: number;
124
125
  showTemplates: boolean;
125
126
  showPreview: boolean;
126
127
  showSecond: boolean;
127
- height: string | number;
128
128
  }, {}, {}, {}, string, vue.ComponentProvideOptions, false, {}, any>;
129
129
  declare const _default: typeof __VLS_export;
130
130
  //#endregion
@@ -120,11 +120,11 @@ declare const __VLS_export: vue.DefineComponent<FormulaEditorProps, FormulaEdito
120
120
  "onUpdate:modelValue"?: ((value: string) => any) | undefined;
121
121
  "onValidation-change"?: ((result: FormulaValidation) => any) | undefined;
122
122
  }>, {
123
- placeholder: string;
124
- modelValue: string;
123
+ height: string | number;
125
124
  disabled: boolean;
125
+ modelValue: string;
126
126
  showPreview: boolean;
127
- height: string | number;
127
+ placeholder: string;
128
128
  variables: FormulaVariable[];
129
129
  functions: FormulaFunction[];
130
130
  sampleData: Record<string, number | string | boolean>;
@@ -120,11 +120,11 @@ declare const __VLS_export: vue.DefineComponent<FormulaEditorProps, FormulaEdito
120
120
  "onUpdate:modelValue"?: ((value: string) => any) | undefined;
121
121
  "onValidation-change"?: ((result: FormulaValidation) => any) | undefined;
122
122
  }>, {
123
- placeholder: string;
124
- modelValue: string;
123
+ height: string | number;
125
124
  disabled: boolean;
125
+ modelValue: string;
126
126
  showPreview: boolean;
127
- height: string | number;
127
+ placeholder: string;
128
128
  variables: FormulaVariable[];
129
129
  functions: FormulaFunction[];
130
130
  sampleData: Record<string, number | string | boolean>;
@@ -155,8 +155,8 @@ interface NotificationCenterExpose {
155
155
  //#region src/components/C_NotificationCenter/index.vue.d.ts
156
156
  declare const __VLS_export: vue.DefineComponent<NotificationCenterProps, NotificationCenterExpose, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
157
157
  delete: (ids: string[]) => any;
158
- read: (ids: string[]) => any;
159
158
  itemClick: (message: NotificationMessage) => any;
159
+ read: (ids: string[]) => any;
160
160
  allRead: (category?: NotificationCategory | undefined) => any;
161
161
  unreadChange: (count: number) => any;
162
162
  wsStatusChange: (status: WSConnectionStatus) => any;
@@ -164,8 +164,8 @@ declare const __VLS_export: vue.DefineComponent<NotificationCenterProps, Notific
164
164
  navigate: (url: string) => any;
165
165
  }, string, vue.PublicProps, Readonly<NotificationCenterProps> & Readonly<{
166
166
  onDelete?: ((ids: string[]) => any) | undefined;
167
- onRead?: ((ids: string[]) => any) | undefined;
168
167
  onItemClick?: ((message: NotificationMessage) => any) | undefined;
168
+ onRead?: ((ids: string[]) => any) | undefined;
169
169
  onAllRead?: ((category?: NotificationCategory | undefined) => any) | undefined;
170
170
  onUnreadChange?: ((count: number) => any) | undefined;
171
171
  onWsStatusChange?: ((status: WSConnectionStatus) => any) | undefined;
@@ -225,7 +225,7 @@ declare function useNotificationCore(props: NotificationCenterProps, events?: No
225
225
  actionText?: string | undefined;
226
226
  extra?: Record<string, unknown> | undefined;
227
227
  }[]>;
228
- activeCategory: vue.Ref<"all" | NotificationCategory, "all" | NotificationCategory>;
228
+ activeCategory: vue.Ref<NotificationCategory | "all", NotificationCategory | "all">;
229
229
  loading: vue.Ref<boolean, boolean>;
230
230
  total: vue.Ref<number, number>;
231
231
  page: vue.Ref<number, number>;
@@ -155,8 +155,8 @@ interface NotificationCenterExpose {
155
155
  //#region src/components/C_NotificationCenter/index.vue.d.ts
156
156
  declare const __VLS_export: vue.DefineComponent<NotificationCenterProps, NotificationCenterExpose, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
157
157
  delete: (ids: string[]) => any;
158
- read: (ids: string[]) => any;
159
158
  itemClick: (message: NotificationMessage) => any;
159
+ read: (ids: string[]) => any;
160
160
  allRead: (category?: NotificationCategory | undefined) => any;
161
161
  unreadChange: (count: number) => any;
162
162
  wsStatusChange: (status: WSConnectionStatus) => any;
@@ -164,8 +164,8 @@ declare const __VLS_export: vue.DefineComponent<NotificationCenterProps, Notific
164
164
  navigate: (url: string) => any;
165
165
  }, string, vue.PublicProps, Readonly<NotificationCenterProps> & Readonly<{
166
166
  onDelete?: ((ids: string[]) => any) | undefined;
167
- onRead?: ((ids: string[]) => any) | undefined;
168
167
  onItemClick?: ((message: NotificationMessage) => any) | undefined;
168
+ onRead?: ((ids: string[]) => any) | undefined;
169
169
  onAllRead?: ((category?: NotificationCategory | undefined) => any) | undefined;
170
170
  onUnreadChange?: ((count: number) => any) | undefined;
171
171
  onWsStatusChange?: ((status: WSConnectionStatus) => any) | undefined;
@@ -225,7 +225,7 @@ declare function useNotificationCore(props: NotificationCenterProps, events?: No
225
225
  actionText?: string | undefined;
226
226
  extra?: Record<string, unknown> | undefined;
227
227
  }[]>;
228
- activeCategory: vue.Ref<"all" | NotificationCategory, "all" | NotificationCategory>;
228
+ activeCategory: vue.Ref<NotificationCategory | "all", NotificationCategory | "all">;
229
229
  loading: vue.Ref<boolean, boolean>;
230
230
  total: vue.Ref<number, number>;
231
231
  page: vue.Ref<number, number>;
@@ -196,31 +196,31 @@ type __VLS_Slots = {} & {
196
196
  area?: (props: typeof __VLS_11) => any;
197
197
  };
198
198
  declare const __VLS_base: vue.DefineComponent<UploadProps, UploadExpose, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
199
- change: (fileList: UploadFileItem[]) => any;
200
- progress: (file: UploadFileItem, percent: number) => any;
201
199
  error: (file: UploadFileItem, error: Error) => any;
200
+ progress: (file: UploadFileItem, percent: number) => any;
201
+ change: (fileList: UploadFileItem[]) => any;
202
202
  success: (file: UploadFileItem, response: unknown) => any;
203
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
- onChange?: ((fileList: UploadFileItem[]) => any) | undefined;
208
- onProgress?: ((file: UploadFileItem, percent: number) => any) | undefined;
209
207
  onError?: ((file: UploadFileItem, error: Error) => any) | undefined;
208
+ onProgress?: ((file: UploadFileItem, percent: number) => any) | undefined;
209
+ onChange?: ((fileList: UploadFileItem[]) => any) | undefined;
210
210
  onSuccess?: ((file: UploadFileItem, response: unknown) => any) | undefined;
211
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
+ data: Record<string, unknown>;
215
216
  disabled: boolean;
217
+ multiple: boolean;
216
218
  draggable: boolean;
217
219
  action: string;
218
- data: Record<string, unknown>;
219
- maxSize: number;
220
220
  headers: Record<string, string>;
221
- multiple: boolean;
222
221
  directory: boolean;
223
222
  accept: string;
223
+ maxSize: number;
224
224
  maxCount: number;
225
225
  pasteable: boolean;
226
226
  chunked: boolean;
@@ -196,31 +196,31 @@ type __VLS_Slots = {} & {
196
196
  area?: (props: typeof __VLS_11) => any;
197
197
  };
198
198
  declare const __VLS_base: vue.DefineComponent<UploadProps, UploadExpose, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
199
- change: (fileList: UploadFileItem[]) => any;
200
- progress: (file: UploadFileItem, percent: number) => any;
201
199
  error: (file: UploadFileItem, error: Error) => any;
200
+ progress: (file: UploadFileItem, percent: number) => any;
201
+ change: (fileList: UploadFileItem[]) => any;
202
202
  success: (file: UploadFileItem, response: unknown) => any;
203
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
- onChange?: ((fileList: UploadFileItem[]) => any) | undefined;
208
- onProgress?: ((file: UploadFileItem, percent: number) => any) | undefined;
209
207
  onError?: ((file: UploadFileItem, error: Error) => any) | undefined;
208
+ onProgress?: ((file: UploadFileItem, percent: number) => any) | undefined;
209
+ onChange?: ((fileList: UploadFileItem[]) => any) | undefined;
210
210
  onSuccess?: ((file: UploadFileItem, response: unknown) => any) | undefined;
211
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
+ data: Record<string, unknown>;
215
216
  disabled: boolean;
217
+ multiple: boolean;
216
218
  draggable: boolean;
217
219
  action: string;
218
- data: Record<string, unknown>;
219
- maxSize: number;
220
220
  headers: Record<string, string>;
221
- multiple: boolean;
222
221
  directory: boolean;
223
222
  accept: string;
223
+ maxSize: number;
224
224
  maxCount: number;
225
225
  pasteable: boolean;
226
226
  chunked: boolean;
@@ -258,11 +258,11 @@ type PlayerInstance = InstanceType<typeof xgplayer.default>;
258
258
  //#endregion
259
259
  //#region src/components/C_VideoPlayer/index.vue.d.ts
260
260
  declare const __VLS_export: vue.DefineComponent<VideoPlayerProps, VideoPlayerExpose, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
261
- ready: () => any;
262
261
  error: (error: Error) => any;
262
+ ready: () => any;
263
+ ended: () => any;
263
264
  stateChange: (state: PlayerState) => any;
264
265
  timeUpdate: (currentTime: number, duration: number) => any;
265
- ended: () => any;
266
266
  qualityChange: (quality: QualityLevel) => any;
267
267
  rateChange: (rate: number) => any;
268
268
  fullscreenChange: (isFullscreen: boolean) => any;
@@ -271,11 +271,11 @@ declare const __VLS_export: vue.DefineComponent<VideoPlayerProps, VideoPlayerExp
271
271
  chapterChange: (chapter: Chapter) => any;
272
272
  progressUpdate: (data: ProgressData) => any;
273
273
  }, string, vue.PublicProps, Readonly<VideoPlayerProps> & Readonly<{
274
- onReady?: (() => any) | undefined;
275
274
  onError?: ((error: Error) => any) | undefined;
275
+ onReady?: (() => any) | undefined;
276
+ onEnded?: (() => any) | undefined;
276
277
  onStateChange?: ((state: PlayerState) => any) | undefined;
277
278
  onTimeUpdate?: ((currentTime: number, duration: number) => any) | undefined;
278
- onEnded?: (() => any) | undefined;
279
279
  onQualityChange?: ((quality: QualityLevel) => any) | undefined;
280
280
  onRateChange?: ((rate: number) => any) | undefined;
281
281
  onFullscreenChange?: ((isFullscreen: boolean) => any) | undefined;
@@ -258,11 +258,11 @@ type PlayerInstance = InstanceType<typeof xgplayer.default>;
258
258
  //#endregion
259
259
  //#region src/components/C_VideoPlayer/index.vue.d.ts
260
260
  declare const __VLS_export: vue.DefineComponent<VideoPlayerProps, VideoPlayerExpose, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
261
- ready: () => any;
262
261
  error: (error: Error) => any;
262
+ ready: () => any;
263
+ ended: () => any;
263
264
  stateChange: (state: PlayerState) => any;
264
265
  timeUpdate: (currentTime: number, duration: number) => any;
265
- ended: () => any;
266
266
  qualityChange: (quality: QualityLevel) => any;
267
267
  rateChange: (rate: number) => any;
268
268
  fullscreenChange: (isFullscreen: boolean) => any;
@@ -271,11 +271,11 @@ declare const __VLS_export: vue.DefineComponent<VideoPlayerProps, VideoPlayerExp
271
271
  chapterChange: (chapter: Chapter) => any;
272
272
  progressUpdate: (data: ProgressData) => any;
273
273
  }, string, vue.PublicProps, Readonly<VideoPlayerProps> & Readonly<{
274
- onReady?: (() => any) | undefined;
275
274
  onError?: ((error: Error) => any) | undefined;
275
+ onReady?: (() => any) | undefined;
276
+ onEnded?: (() => any) | undefined;
276
277
  onStateChange?: ((state: PlayerState) => any) | undefined;
277
278
  onTimeUpdate?: ((currentTime: number, duration: number) => any) | undefined;
278
- onEnded?: (() => any) | undefined;
279
279
  onQualityChange?: ((quality: QualityLevel) => any) | undefined;
280
280
  onRateChange?: ((rate: number) => any) | undefined;
281
281
  onFullscreenChange?: ((isFullscreen: boolean) => any) | undefined;
package/dist/data.d.cts CHANGED
@@ -75,16 +75,16 @@ declare const __VLS_base: vue.DefineComponent<CTabsProps, {
75
75
  "onUpdate:modelValue"?: ((value: TabsValue) => any) | undefined;
76
76
  onClose?: ((value: TabsValue) => any) | undefined;
77
77
  }>, {
78
- size: TabsSize;
79
- items: readonly TabsItem[];
80
78
  type: TabsType;
79
+ size: TabsSize;
81
80
  modelValue: TabsValue | null;
82
- justifyContent: TabsJustifyContent;
83
- closable: boolean;
84
- displayDirective: TabsDisplayDirective;
81
+ items: readonly TabsItem[];
85
82
  defaultValue: TabsValue | null;
86
83
  placement: TabsPlacement;
84
+ displayDirective: TabsDisplayDirective;
87
85
  animated: boolean;
86
+ justifyContent: TabsJustifyContent;
87
+ closable: boolean;
88
88
  addable: boolean;
89
89
  tabsOnly: boolean;
90
90
  paneClass: string;
package/dist/data.d.ts CHANGED
@@ -75,16 +75,16 @@ declare const __VLS_base: vue.DefineComponent<CTabsProps, {
75
75
  "onUpdate:modelValue"?: ((value: TabsValue) => any) | undefined;
76
76
  onClose?: ((value: TabsValue) => any) | undefined;
77
77
  }>, {
78
- size: TabsSize;
79
- items: readonly TabsItem[];
80
78
  type: TabsType;
79
+ size: TabsSize;
81
80
  modelValue: TabsValue | null;
82
- justifyContent: TabsJustifyContent;
83
- closable: boolean;
84
- displayDirective: TabsDisplayDirective;
81
+ items: readonly TabsItem[];
85
82
  defaultValue: TabsValue | null;
86
83
  placement: TabsPlacement;
84
+ displayDirective: TabsDisplayDirective;
87
85
  animated: boolean;
86
+ justifyContent: TabsJustifyContent;
87
+ closable: boolean;
88
88
  addable: boolean;
89
89
  tabsOnly: boolean;
90
90
  paneClass: string;
@@ -62,22 +62,22 @@ type __VLS_Props = {
62
62
  declare const __VLS_export: vue.DefineComponent<__VLS_Props, {}, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
63
63
  error: (error: unknown) => any;
64
64
  ended: (index: number) => any;
65
- play: (index: number) => any;
66
65
  pause: () => any;
66
+ play: (index: number) => any;
67
67
  modeChange: (mode: string) => any;
68
68
  }, string, vue.PublicProps, Readonly<__VLS_Props> & Readonly<{
69
69
  onError?: ((error: unknown) => any) | undefined;
70
70
  onEnded?: ((index: number) => any) | undefined;
71
- onPlay?: ((index: number) => any) | undefined;
72
71
  onPause?: (() => any) | undefined;
72
+ onPlay?: ((index: number) => any) | undefined;
73
73
  onModeChange?: ((mode: string) => any) | undefined;
74
74
  }>, {
75
- mode: "list" | "loop" | "single" | "shuffle";
75
+ mode: "single" | "list" | "loop" | "shuffle";
76
76
  theme: "default" | "minimal";
77
- autoplay: boolean;
78
77
  initialIndex: number;
79
78
  showPlaylist: boolean;
80
79
  showCover: boolean;
80
+ autoplay: boolean;
81
81
  }, {}, {}, {}, string, vue.ComponentProvideOptions, false, {}, any>;
82
82
  declare const _default: typeof __VLS_export;
83
83
  //#endregion
@@ -62,22 +62,22 @@ type __VLS_Props = {
62
62
  declare const __VLS_export: vue.DefineComponent<__VLS_Props, {}, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
63
63
  error: (error: unknown) => any;
64
64
  ended: (index: number) => any;
65
- play: (index: number) => any;
66
65
  pause: () => any;
66
+ play: (index: number) => any;
67
67
  modeChange: (mode: string) => any;
68
68
  }, string, vue.PublicProps, Readonly<__VLS_Props> & Readonly<{
69
69
  onError?: ((error: unknown) => any) | undefined;
70
70
  onEnded?: ((index: number) => any) | undefined;
71
- onPlay?: ((index: number) => any) | undefined;
72
71
  onPause?: (() => any) | undefined;
72
+ onPlay?: ((index: number) => any) | undefined;
73
73
  onModeChange?: ((mode: string) => any) | undefined;
74
74
  }>, {
75
- mode: "list" | "loop" | "single" | "shuffle";
75
+ mode: "single" | "list" | "loop" | "shuffle";
76
76
  theme: "default" | "minimal";
77
- autoplay: boolean;
78
77
  initialIndex: number;
79
78
  showPlaylist: boolean;
80
79
  showCover: boolean;
80
+ autoplay: boolean;
81
81
  }, {}, {}, {}, string, vue.ComponentProvideOptions, false, {}, any>;
82
82
  declare const _default: typeof __VLS_export;
83
83
  //#endregion
@@ -61,22 +61,22 @@ declare const __VLS_export: vue.DefineComponent<ContextMenuProps, {
61
61
  close: () => void; /** 当前是否可见 */
62
62
  visible: vue.ComputedRef<boolean>;
63
63
  }, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {} & {
64
- close: () => any;
65
- select: (item: ContextMenuItem) => any;
66
64
  open: (position: {
67
65
  x: number;
68
66
  y: number;
69
67
  }) => any;
68
+ close: () => any;
69
+ select: (item: ContextMenuItem) => any;
70
70
  }, string, vue.PublicProps, Readonly<ContextMenuProps> & Readonly<{
71
- onClose?: (() => any) | undefined;
72
- onSelect?: ((item: ContextMenuItem) => any) | undefined;
73
71
  onOpen?: ((position: {
74
72
  x: number;
75
73
  y: number;
76
74
  }) => any) | undefined;
75
+ onClose?: (() => any) | undefined;
76
+ onSelect?: ((item: ContextMenuItem) => any) | undefined;
77
77
  }>, {
78
- items: ContextMenuItem[];
79
78
  disabled: boolean;
79
+ items: ContextMenuItem[];
80
80
  zIndex: number;
81
81
  minWidth: number;
82
82
  maxWidth: number;
@@ -59,11 +59,11 @@ declare const __VLS_export: vue.DefineComponent<DateProps, DateExpose, {}, {}, {
59
59
  "onUpdate:dateTimeRange"?: ((value: DateRangeValue) => any) | undefined;
60
60
  "onUpdate:smartRange"?: ((value: DateRangeValue) => any) | undefined;
61
61
  }>, {
62
- placeholder: string;
63
62
  mode: DatePickerMode;
63
+ disabled: boolean;
64
+ placeholder: string;
64
65
  startPlaceholder: string;
65
66
  endPlaceholder: string;
66
- disabled: boolean;
67
67
  disabledBeforeToday: boolean;
68
68
  disabledAfterToday: boolean;
69
69
  startDateProps: Record<string, unknown>;
@@ -59,11 +59,11 @@ declare const __VLS_export: vue.DefineComponent<DateProps, DateExpose, {}, {}, {
59
59
  "onUpdate:dateTimeRange"?: ((value: DateRangeValue) => any) | undefined;
60
60
  "onUpdate:smartRange"?: ((value: DateRangeValue) => any) | undefined;
61
61
  }>, {
62
- placeholder: string;
63
62
  mode: DatePickerMode;
63
+ disabled: boolean;
64
+ placeholder: string;
64
65
  startPlaceholder: string;
65
66
  endPlaceholder: string;
66
- disabled: boolean;
67
67
  disabledBeforeToday: boolean;
68
68
  disabledAfterToday: boolean;
69
69
  startDateProps: Record<string, unknown>;
@@ -42,22 +42,22 @@ declare const __VLS_export: vue.DefineComponent<Props, {
42
42
  } | null>>;
43
43
  isInitialized: Readonly<vue.Ref<boolean, boolean>>;
44
44
  }, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {} & {
45
- "update:modelValue": (value: string) => any;
46
45
  error: (error: Error) => any;
46
+ "update:modelValue": (value: string) => any;
47
47
  "editor-mounted": (editor: EditorInstance) => any;
48
48
  "editor-change": (html: string) => any;
49
49
  }, string, vue.PublicProps, Readonly<Props> & Readonly<{
50
- "onUpdate:modelValue"?: ((value: string) => any) | undefined;
51
50
  onError?: ((error: Error) => any) | undefined;
51
+ "onUpdate:modelValue"?: ((value: string) => any) | undefined;
52
52
  "onEditor-mounted"?: ((editor: EditorInstance) => any) | undefined;
53
53
  "onEditor-change"?: ((html: string) => any) | undefined;
54
54
  }>, {
55
- placeholder: string;
56
- modelValue: string;
57
- disabled: boolean;
58
55
  height: number;
59
- readonly: boolean;
60
56
  theme: "light" | "dark";
57
+ disabled: boolean;
58
+ readonly: boolean;
59
+ modelValue: string;
60
+ placeholder: string;
61
61
  }, {}, {}, {}, string, vue.ComponentProvideOptions, false, {}, any>;
62
62
  declare const _default: typeof __VLS_export;
63
63
  //#endregion
@@ -42,22 +42,22 @@ declare const __VLS_export: vue.DefineComponent<Props, {
42
42
  } | null>>;
43
43
  isInitialized: Readonly<vue.Ref<boolean, boolean>>;
44
44
  }, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {} & {
45
- "update:modelValue": (value: string) => any;
46
45
  error: (error: Error) => any;
46
+ "update:modelValue": (value: string) => any;
47
47
  "editor-mounted": (editor: EditorInstance) => any;
48
48
  "editor-change": (html: string) => any;
49
49
  }, string, vue.PublicProps, Readonly<Props> & Readonly<{
50
- "onUpdate:modelValue"?: ((value: string) => any) | undefined;
51
50
  onError?: ((error: Error) => any) | undefined;
51
+ "onUpdate:modelValue"?: ((value: string) => any) | undefined;
52
52
  "onEditor-mounted"?: ((editor: EditorInstance) => any) | undefined;
53
53
  "onEditor-change"?: ((html: string) => any) | undefined;
54
54
  }>, {
55
- placeholder: string;
56
- modelValue: string;
57
- disabled: boolean;
58
55
  height: number;
59
- readonly: boolean;
60
56
  theme: "light" | "dark";
57
+ disabled: boolean;
58
+ readonly: boolean;
59
+ modelValue: string;
60
+ placeholder: string;
61
61
  }, {}, {}, {}, string, vue.ComponentProvideOptions, false, {}, any>;
62
62
  declare const _default: typeof __VLS_export;
63
63
  //#endregion
@@ -38,8 +38,8 @@ interface FormModalEmits<T extends object = FormRecord> {
38
38
  //#region src/components/C_FormModal/index.vue.d.ts
39
39
  declare const __VLS_export: <T extends object = FormRecord>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_exposed?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
40
40
  props: vue.PublicProps & __VLS_PrettifyLocal<FormModalProps<T> & {
41
- onSubmit?: ((payload: SubmitEventPayload<T>, saved: boolean) => any) | undefined;
42
41
  onClose?: (() => any) | undefined;
42
+ onSubmit?: ((payload: SubmitEventPayload<T>, saved: boolean) => any) | undefined;
43
43
  }> & (typeof globalThis extends {
44
44
  __VLS_PROPS_FALLBACK: infer P;
45
45
  } ? P : {});
@@ -48,7 +48,7 @@ declare const __VLS_export: <T extends object = FormRecord>(__VLS_props: NonNull
48
48
  slots: {
49
49
  [x: string]: ((props: any) => any) | undefined;
50
50
  };
51
- emit: ((evt: "submit", payload: SubmitEventPayload<T>, saved: boolean) => void) & ((evt: "close") => void);
51
+ emit: ((evt: "close") => void) & ((evt: "submit", payload: SubmitEventPayload<T>, saved: boolean) => void);
52
52
  }>) => vue.VNode & {
53
53
  __ctx?: NonNullable<Awaited<typeof __VLS_setup>>;
54
54
  };
@@ -38,8 +38,8 @@ interface FormModalEmits<T extends object = FormRecord> {
38
38
  //#region src/components/C_FormModal/index.vue.d.ts
39
39
  declare const __VLS_export: <T extends object = FormRecord>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_exposed?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
40
40
  props: vue.PublicProps & __VLS_PrettifyLocal<FormModalProps<T> & {
41
- onSubmit?: ((payload: SubmitEventPayload<T>, saved: boolean) => any) | undefined;
42
41
  onClose?: (() => any) | undefined;
42
+ onSubmit?: ((payload: SubmitEventPayload<T>, saved: boolean) => any) | undefined;
43
43
  }> & (typeof globalThis extends {
44
44
  __VLS_PROPS_FALLBACK: infer P;
45
45
  } ? P : {});
@@ -48,7 +48,7 @@ declare const __VLS_export: <T extends object = FormRecord>(__VLS_props: NonNull
48
48
  slots: {
49
49
  [x: string]: ((props: any) => any) | undefined;
50
50
  };
51
- emit: ((evt: "submit", payload: SubmitEventPayload<T>, saved: boolean) => void) & ((evt: "close") => void);
51
+ emit: ((evt: "close") => void) & ((evt: "submit", payload: SubmitEventPayload<T>, saved: boolean) => void);
52
52
  }>) => vue.VNode & {
53
53
  __ctx?: NonNullable<Awaited<typeof __VLS_setup>>;
54
54
  };
@@ -97,22 +97,22 @@ declare const __VLS_export: vue.DefineComponent<GuideProps, {
97
97
  resetCompleted: () => void;
98
98
  isCompleted: () => boolean;
99
99
  }, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
100
- close: (currentStep: number) => any;
101
- start: () => any;
102
100
  error: (error: unknown) => any;
101
+ start: () => any;
102
+ close: (currentStep: number) => any;
103
103
  complete: () => any;
104
104
  skip: (currentStep: number) => any;
105
105
  "step-change": (stepIndex: number, step: GuideStep) => any;
106
106
  }, string, vue.PublicProps, Readonly<GuideProps> & Readonly<{
107
- onClose?: ((currentStep: number) => any) | undefined;
108
- onStart?: (() => any) | undefined;
109
107
  onError?: ((error: unknown) => any) | undefined;
108
+ onStart?: (() => any) | undefined;
109
+ onClose?: ((currentStep: number) => any) | undefined;
110
110
  onComplete?: (() => any) | undefined;
111
111
  onSkip?: ((currentStep: number) => any) | undefined;
112
112
  "onStep-change"?: ((stepIndex: number, step: GuideStep) => any) | undefined;
113
113
  }>, {
114
- steps: GuideStep[];
115
114
  keyboard: boolean;
115
+ steps: GuideStep[];
116
116
  doneBtnText: string;
117
117
  nextBtnText: string;
118
118
  prevBtnText: string;