@schemx/vue 1.0.0-next.2 → 1.0.0-next.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 (88) hide show
  1. package/README.md +292 -293
  2. package/dist/analyze.html +1 -1
  3. package/dist/bridge/fieldBridge.d.ts +10 -0
  4. package/dist/bridge/fieldBridge.d.ts.map +1 -0
  5. package/dist/bridge/formBridge.d.ts +13 -0
  6. package/dist/bridge/formBridge.d.ts.map +1 -0
  7. package/dist/bridge/formInstance.d.ts +18 -0
  8. package/dist/bridge/formInstance.d.ts.map +1 -0
  9. package/dist/bridge/helpers.d.ts +39 -0
  10. package/dist/bridge/helpers.d.ts.map +1 -0
  11. package/dist/bridge/index.d.ts +13 -0
  12. package/dist/bridge/index.d.ts.map +1 -0
  13. package/dist/bridge/types.d.ts +69 -0
  14. package/dist/bridge/types.d.ts.map +1 -0
  15. package/dist/bridge/viewSchemaBridge.d.ts +5 -0
  16. package/dist/bridge/viewSchemaBridge.d.ts.map +1 -0
  17. package/dist/components/Button/index.vue.d.ts +30 -0
  18. package/dist/components/Button/index.vue.d.ts.map +1 -0
  19. package/dist/components/Button/types.d.ts.map +1 -1
  20. package/dist/components/ConfigProvider/index.d.ts +68 -0
  21. package/dist/components/ConfigProvider/index.d.ts.map +1 -0
  22. package/dist/components/Dynamic/index.d.ts +30 -0
  23. package/dist/components/Dynamic/index.d.ts.map +1 -0
  24. package/dist/components/Field/index.d.ts +47 -0
  25. package/dist/components/Field/index.d.ts.map +1 -0
  26. package/dist/components/Field/slot.d.ts +40 -0
  27. package/dist/components/Field/slot.d.ts.map +1 -0
  28. package/dist/components/Group/index.d.ts +46 -0
  29. package/dist/components/Group/index.d.ts.map +1 -0
  30. package/dist/components/Group/slot.d.ts +34 -0
  31. package/dist/components/Group/slot.d.ts.map +1 -0
  32. package/dist/config/index.d.ts +2 -0
  33. package/dist/config/index.d.ts.map +1 -1
  34. package/dist/config/providerConfig.d.ts +15 -0
  35. package/dist/config/providerConfig.d.ts.map +1 -0
  36. package/dist/config/vueConfig.d.ts +12 -0
  37. package/dist/config/vueConfig.d.ts.map +1 -0
  38. package/dist/form.d.ts +2 -2
  39. package/dist/form.d.ts.map +1 -1
  40. package/dist/hocs/withRemoteOptions.d.ts.map +1 -1
  41. package/dist/hooks/index.d.ts +3 -3
  42. package/dist/hooks/index.d.ts.map +1 -1
  43. package/dist/hooks/provideFieldContext.d.ts +2 -2
  44. package/dist/hooks/provideFormContext.d.ts +13 -46
  45. package/dist/hooks/provideFormContext.d.ts.map +1 -1
  46. package/dist/hooks/useDictionary.d.ts.map +1 -1
  47. package/dist/hooks/useField.d.ts +1 -1
  48. package/dist/hooks/useField.d.ts.map +1 -1
  49. package/dist/hooks/useForm.d.ts +3 -3
  50. package/dist/hooks/useForm.d.ts.map +1 -1
  51. package/dist/hooks/useFormSelector.d.ts +4 -0
  52. package/dist/hooks/useFormSelector.d.ts.map +1 -1
  53. package/dist/hooks/useViewSchemas.d.ts +2 -34
  54. package/dist/hooks/useViewSchemas.d.ts.map +1 -1
  55. package/dist/hooks/useWatch.d.ts.map +1 -1
  56. package/dist/index.cjs +1 -1
  57. package/dist/index.cjs.map +1 -1
  58. package/dist/index.d.ts +5 -6
  59. package/dist/index.d.ts.map +1 -1
  60. package/dist/index.mjs +923 -557
  61. package/dist/index.mjs.map +1 -1
  62. package/dist/style.css +1 -1
  63. package/dist/types/dictionary.d.ts +1 -1
  64. package/dist/types/dictionary.d.ts.map +1 -1
  65. package/dist/types/field.d.ts +38 -2
  66. package/dist/types/field.d.ts.map +1 -1
  67. package/dist/types/form.d.ts +11 -7
  68. package/dist/types/form.d.ts.map +1 -1
  69. package/dist/types/index.d.ts +4 -4
  70. package/dist/types/index.d.ts.map +1 -1
  71. package/dist/utils/helpers.d.ts +4 -0
  72. package/dist/utils/helpers.d.ts.map +1 -1
  73. package/dist/utils/index.d.ts +2 -0
  74. package/dist/utils/index.d.ts.map +1 -1
  75. package/dist/utils/presetRuleProvider.d.ts +16 -0
  76. package/dist/utils/presetRuleProvider.d.ts.map +1 -0
  77. package/dist/utils/rendererProvider.d.ts.map +1 -1
  78. package/package.json +3 -3
  79. package/dist/components/FormGroup/index.d.ts +0 -16
  80. package/dist/components/FormGroup/index.d.ts.map +0 -1
  81. package/dist/components/FormItem/index.d.ts +0 -22
  82. package/dist/components/FormItem/index.d.ts.map +0 -1
  83. package/dist/components/FormItem/slot.d.ts +0 -48
  84. package/dist/components/FormItem/slot.d.ts.map +0 -1
  85. package/dist/formBridge.d.ts +0 -188
  86. package/dist/formBridge.d.ts.map +0 -1
  87. package/dist/utils/rulesProvider.d.ts +0 -16
  88. package/dist/utils/rulesProvider.d.ts.map +0 -1
package/dist/style.css CHANGED
@@ -1 +1 @@
1
- :root{--schemx-primary-color: #2f6bff;--schemx-primary-color-light: #eaf2ff;--schemx-text-color: #323233;--schemx-text-color-secondary: #666666;--schemx-text-color-placeholder: #c8c9cc;--schemx-readonly-color: #969799;--schemx-disabled-color: #c8c9cc;--schemx-disabled-opacity: .6;--schemx-background-color: #ffffff;--schemx-background-color-light: #f3f4f6;--schemx-border-color: #ebedf0;--schemx-danger-color: #ee0a24;--schemx-success-color: #07c160;--schemx-warning-color: #ff976a;--schemx-padding-base: 4px;--schemx-padding-xs: 8px;--schemx-padding-sm: 12px;--schemx-padding-md: 16px;--schemx-padding-lg: 24px;--schemx-font-size-xs: 10px;--schemx-font-size-sm: 12px;--schemx-font-size-md: 14px;--schemx-font-size-lg: 16px;--schemx-border-radius-xs: 2px;--schemx-border-radius-sm: 4px;--schemx-border-radius-md: 8px;--schemx-border-radius-lg: 12px;--schemx-form-padding-bottom: 15px;--schemx-schemas-padding-inline: 6px;--schemx-item-gap: 16px;--schemx-item-line-height: 1.6;--schemx-item-error-line-height: 1.5714285714285714;--schemx-item-label-color: #666666;--schemx-item-label-top-gap: 4px;--schemx-item-content-padding-inline: 6px;--schemx-item-required-gap: 2px;--schemx-item-error-gap: 6px;--schemx-content-align: right;--schemx-error-align: right;--schemx-group-arrow-size: 5px;--schemx-group-arrow-duration: .2s}.schemx-item-wrapper{position:relative;background-color:var(--schemx-background-color)}.schemx-item-wrapper--first{border-top-left-radius:var(--schemx-border-radius-md);border-top-right-radius:var(--schemx-border-radius-md)}.schemx-item-wrapper--last{border-bottom-left-radius:var(--schemx-border-radius-md);border-bottom-right-radius:var(--schemx-border-radius-md)}.is-disabled{opacity:.65}.is-readonly{opacity:1}.schemx-item{display:flex;align-items:flex-start;justify-content:space-between;padding-inline:var(--schemx-padding-md);padding-block:var(--schemx-padding-md);line-height:var(--schemx-item-line-height);gap:var(--schemx-item-gap)}.schemx-item:after{position:absolute;box-sizing:border-box;content:" ";pointer-events:none;right:var(--schemx-padding-md);bottom:0;left:var(--schemx-padding-md);border-bottom:1px solid var(--schemx-border-color);transform:scaleY(.5)}.schemx-item-wrapper--last .schemx-item:after{display:none}.schemx-item--label-left{flex-direction:row}.schemx-item--label-right{flex-direction:row-reverse}.schemx-item--label-right .schemx-item__label{margin-right:0;margin-left:var(--schemx-padding-xs)}.schemx-item--label-top{flex-direction:column}.schemx-item--label-top .schemx-item__label{margin-right:0;margin-bottom:var(--schemx-item-label-top-gap);width:auto}.schemx-item__label{position:relative;display:flex;align-items:center;flex-shrink:0;color:var(--schemx-item-label-color);font-size:var(--schemx-font-size-md);margin-right:var(--schemx-padding-xs);line-height:var(--schemx-item-line-height)}.schemx-item__required{color:var(--schemx-danger-color);margin-right:var(--schemx-item-required-gap);position:absolute;top:2px;left:-8px}.schemx-item__content{flex:1;min-width:0;max-width:70%;padding:0 var(--schemx-item-content-padding-inline)}.schemx-item__control{text-align:var(--schemx-content-align)}.schemx-item__control .schemx-renderer{width:100%}.schemx-item__error{color:var(--schemx-danger-color);font-size:var(--schemx-font-size-sm);text-align:var(--schemx-error-align, right);line-height:var(--schemx-item-error-line-height);margin-top:var(--schemx-item-error-gap)}.schemx-item--label-top>.schemx-item__content{box-sizing:border-box;width:100%;max-width:none}.schemx-group{margin-bottom:var(--schemx-padding-sm);background-color:var(--schemx-background-color);padding:var(--schemx-padding-base) var(--schemx-padding-md);border-radius:var(--schemx-border-radius-md)}.schemx-group__header{display:flex;align-items:center;justify-content:space-between;padding-block:var(--schemx-padding-sm);-webkit-user-select:none;user-select:none}.schemx-group__header--clickable{cursor:pointer}.schemx-group__title{font-size:var(--schemx-font-size-lg);font-weight:500;color:var(--schemx-text-color)}.schemx-group__arrow{display:inline-block;width:0;height:0;border-left:var(--schemx-group-arrow-size) solid transparent;border-right:var(--schemx-group-arrow-size) solid transparent;border-bottom:var(--schemx-group-arrow-size) solid var(--schemx-text-color-secondary);transition:transform var(--schemx-group-arrow-duration) ease}.schemx-group__arrow--down{transform:rotate(180deg)}.schemx-group__body>.schemx-item-wrapper:last-child .schemx-item:after{display:none}.schemx-group__body>.schemx-item-wrapper>.schemx-item{padding-inline:var(--schemx-padding-xs)}.schemx{box-sizing:border-box;padding-bottom:var(--schemx-form-padding-bottom)}.schemx-actions{display:flex;align-items:center;justify-content:flex-end;gap:var(--schemx-padding-sm);padding:var(--schemx-padding-md) var(--schemx-schemas-padding-inline) 0}.schemx-schemas{background-color:var(--schemx-background-color);padding:var(--schemx-padding-md) var(--schemx-schemas-padding-inline);border-radius:var(--schemx-border-radius-lg)}.schemx-schemas-title{display:flex;align-items:center;padding-left:var(--schemx-padding-md);padding-bottom:var(--schemx-padding-xs)}.schemx-schemas-title-icon{margin-right:var(--schemx-padding-xs)}.schemx-schemas-title-label{font-size:var(--schemx-font-size-md);color:var(--schemx-text-color)}.schemx-renderer-readonly{color:var(--schemx-readonly-color);cursor:default}.schemx-button{box-sizing:content-box;flex:1;display:inline-flex;align-items:center;justify-content:center;gap:var(--schemx-padding-xs);min-width:72px;height:24px;padding:var(--schemx-padding-xs) var(--schemx-padding-md);border:1px solid var(--schemx-border-color);border-radius:var(--schemx-border-radius-sm);background:var(--schemx-background-color);color:var(--schemx-text-color);cursor:pointer;transition:border-color .15s ease,background-color .15s ease,color .15s ease,transform .1s ease}.schemx-button:not(:disabled):hover{opacity:.8}.schemx-button:not(:disabled):active{transform:scale(.98)}.schemx-button--small{min-width:56px;height:20px;padding:var(--schemx-padding-base) var(--schemx-padding-sm);font-size:var(--schemx-font-size-sm)}.schemx-button--large{min-width:88px;height:28px;padding:var(--schemx-padding-sm) var(--schemx-padding-lg);font-size:var(--schemx-font-size-lg)}.schemx-button__loading{display:inline-block;border-radius:50%;vertical-align:-.15em;animation:schemx-button-loading .8s linear infinite}.schemx-actions-button--submit{border-color:var(--schemx-primary-color);background:var(--schemx-primary-color);color:#fff}.schemx-actions-button--submit:not(:disabled):hover{filter:brightness(.92);color:#fff}.schemx-button:disabled{cursor:not-allowed;opacity:var(--schemx-disabled-opacity)}@keyframes schemx-button-loading{to{transform:rotate(360deg)}}
1
+ :root{--schemx-primary-color: #2f6bff;--schemx-primary-color-light: #eaf2ff;--schemx-text-color: #323233;--schemx-text-color-secondary: #666666;--schemx-text-color-placeholder: #c8c9cc;--schemx-readonly-color: #969799;--schemx-disabled-color: #c8c9cc;--schemx-disabled-opacity: .6;--schemx-background-color: #ffffff;--schemx-background-color-light: #f3f4f6;--schemx-border-color: #ebedf0;--schemx-danger-color: #ee0a24;--schemx-success-color: #07c160;--schemx-warning-color: #ff976a;--schemx-padding-base: 4px;--schemx-padding-xs: 8px;--schemx-padding-sm: 12px;--schemx-padding-md: 16px;--schemx-padding-lg: 24px;--schemx-font-size-xs: 10px;--schemx-font-size-sm: 12px;--schemx-font-size-md: 14px;--schemx-font-size-lg: 16px;--schemx-border-radius-xs: 2px;--schemx-border-radius-sm: 4px;--schemx-border-radius-md: 8px;--schemx-border-radius-lg: 12px;--schemx-form-padding-bottom: 15px;--schemx-schemas-padding-inline: 6px;--schemx-field-gap: 16px;--schemx-field-line-height: 1.6;--schemx-field-error-line-height: 1.5714285714285714;--schemx-field-label-color: #666666;--schemx-field-label-top-gap: 4px;--schemx-field-content-padding-inline: 6px;--schemx-field-required-gap: 2px;--schemx-field-error-gap: 6px;--schemx-content-align: right;--schemx-error-align: right;--schemx-group-arrow-size: 5px;--schemx-group-arrow-duration: .2s}.schemx-field-wrapper{position:relative;background-color:var(--schemx-background-color)}.schemx-field-wrapper--first{border-top-left-radius:var(--schemx-border-radius-md);border-top-right-radius:var(--schemx-border-radius-md)}.schemx-field-wrapper--last{border-bottom-left-radius:var(--schemx-border-radius-md);border-bottom-right-radius:var(--schemx-border-radius-md);margin-bottom:var(--schemx-padding-sm)}.schemx>.schemx-field-wrapper--last:last-child,.schemx>.schemx-field-wrapper--last:has(+.schemx-actions){margin-bottom:0}.is-disabled{opacity:.65}.is-readonly{opacity:1}.schemx-field{display:flex;align-items:flex-start;justify-content:space-between;padding-inline:var(--schemx-padding-md);padding-block:var(--schemx-padding-md);line-height:var(--schemx-field-line-height);gap:var(--schemx-field-gap)}.schemx-field:after{position:absolute;box-sizing:border-box;content:" ";pointer-events:none;right:var(--schemx-padding-md);bottom:0;left:var(--schemx-padding-md);border-bottom:1px solid var(--schemx-border-color);transform:scaleY(.5)}.schemx-field-wrapper--last .schemx-field:after{display:none}.schemx-field--label-left{flex-direction:row}.schemx-field--label-right{flex-direction:row-reverse}.schemx-field--label-right .schemx-field__label{margin-right:0;margin-left:var(--schemx-padding-xs)}.schemx-field--label-top{flex-direction:column}.schemx-field--label-top .schemx-field__label{margin-right:0;margin-bottom:var(--schemx-field-label-top-gap);width:auto}.schemx-field__label{position:relative;display:flex;align-items:center;flex-shrink:0;color:var(--schemx-field-label-color);font-size:var(--schemx-font-size-md);margin-right:var(--schemx-padding-xs);line-height:var(--schemx-field-line-height)}.schemx-field__required{color:var(--schemx-danger-color);margin-right:var(--schemx-field-required-gap);position:absolute;top:2px;left:-8px}.schemx-field__content{flex:1;min-width:0;max-width:70%}.schemx-field__control{text-align:var(--schemx-content-align)}.schemx-field__control .schemx-renderer{width:100%}.schemx-field__error{color:var(--schemx-danger-color);font-size:var(--schemx-font-size-sm);text-align:var(--schemx-error-align, right);line-height:var(--schemx-field-error-line-height);margin-top:var(--schemx-field-error-gap)}.schemx-field--label-top>.schemx-field__content{box-sizing:border-box;width:100%;max-width:none}.schemx-group-wrapper{position:relative;margin-bottom:var(--schemx-padding-sm);background-color:var(--schemx-background-color);padding:var(--schemx-padding-base) var(--schemx-padding-md);border-radius:var(--schemx-border-radius-md)}.schemx>.schemx-group-wrapper:last-child,.schemx>.schemx-group-wrapper:has(+.schemx-actions){margin-bottom:0}.schemx-group__header{display:flex;align-items:center;justify-content:space-between;padding-block:var(--schemx-padding-sm);-webkit-user-select:none;user-select:none}.schemx-group__header--clickable{cursor:pointer}.schemx-group__title{font-size:var(--schemx-font-size-lg);font-weight:500;color:var(--schemx-text-color)}.schemx-group__arrow{display:inline-block;width:0;height:0;border-left:var(--schemx-group-arrow-size) solid transparent;border-right:var(--schemx-group-arrow-size) solid transparent;border-bottom:var(--schemx-group-arrow-size) solid var(--schemx-text-color-secondary);transition:transform var(--schemx-group-arrow-duration) ease}.schemx-group__arrow--down{transform:rotate(180deg)}.schemx-group__body>.schemx-field-wrapper:last-child .schemx-field:after{display:none}.schemx-group__body>.schemx-field-wrapper>.schemx-field{padding-inline:var(--schemx-padding-xs)}.schemx{box-sizing:border-box;padding-bottom:var(--schemx-form-padding-bottom)}.schemx-actions{display:flex;align-items:center;justify-content:flex-end;gap:var(--schemx-padding-sm);padding:var(--schemx-padding-md) 0}.schemx-schemas{background-color:var(--schemx-background-color);padding:var(--schemx-padding-md) var(--schemx-schemas-padding-inline);border-radius:var(--schemx-border-radius-lg)}.schemx-schemas-title{display:flex;align-items:center;padding-left:var(--schemx-padding-md);padding-bottom:var(--schemx-padding-xs)}.schemx-schemas-title-icon{margin-right:var(--schemx-padding-xs)}.schemx-schemas-title-label{font-size:var(--schemx-font-size-md);color:var(--schemx-text-color)}.schemx-renderer-readonly{color:var(--schemx-readonly-color);cursor:default}.schemx-button{box-sizing:content-box;flex:1;display:inline-flex;align-items:center;justify-content:center;gap:var(--schemx-padding-xs);min-width:72px;height:24px;padding:var(--schemx-padding-xs) var(--schemx-padding-md);border:1px solid var(--schemx-border-color);border-radius:var(--schemx-border-radius-sm);background:var(--schemx-background-color);color:var(--schemx-text-color);cursor:pointer;transition:border-color .15s ease,background-color .15s ease,color .15s ease,transform .1s ease}.schemx-button:not(:disabled):hover{opacity:.8}.schemx-button:not(:disabled):active{transform:scale(.98)}.schemx-button--small{min-width:56px;height:20px;padding:var(--schemx-padding-base) var(--schemx-padding-sm);font-size:var(--schemx-font-size-sm)}.schemx-button--large{min-width:88px;height:28px;padding:var(--schemx-padding-sm) var(--schemx-padding-lg);font-size:var(--schemx-font-size-lg)}.schemx-button__loading{display:inline-block;border-radius:50%;vertical-align:-.15em;animation:schemx-button-loading .8s linear infinite}.schemx-actions-button--submit{border-color:var(--schemx-primary-color);background:var(--schemx-primary-color);color:#fff}.schemx-actions-button--submit:not(:disabled):hover{filter:brightness(.92);color:#fff}.schemx-button:disabled{cursor:not-allowed;opacity:var(--schemx-disabled-opacity)}@keyframes schemx-button-loading{to{transform:rotate(360deg)}}
@@ -57,7 +57,7 @@ export interface SchemxDictionary<TValues extends Values = Values, TResponse = u
57
57
  * }
58
58
  * ```
59
59
  */
60
- api: (values: TValues, form: SchemxInstance<TValues>) => TResponse | Promise<TResponse>;
60
+ api: (values: TValues, form: SchemxInstance<TValues>, signal?: AbortSignal) => TResponse | Promise<TResponse>;
61
61
  /**
62
62
  * 响应数据格式化函数
63
63
  *
@@ -1 +1 @@
1
- {"version":3,"file":"dictionary.d.ts","sourceRoot":"","sources":["../../src/types/dictionary.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AAE/D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,MAAM,WAAW,gBAAgB,CAC/B,OAAO,SAAS,MAAM,GAAG,MAAM,EAC/B,SAAS,GAAG,OAAO,EACnB,OAAO,GAAG,OAAO;IAEjB;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,GAAG,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,CAAC,OAAO,CAAC,KAAK,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC,CAAA;IAEvF;;;;;;;;OAQG;IACH,SAAS,CAAC,EAAE,CACV,GAAG,EAAE,OAAO,CAAC,SAAS,CAAC,EACvB,IAAI,EAAE,cAAc,CAAC,OAAO,CAAC,KAC1B,OAAO,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAAA;IAEnC;;;;;OAKG;IACH,SAAS,CAAC,EAAE,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAA;IAE/B;;;;;;;;;;OAUG;IACH,WAAW,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,OAAO,CAAA;IAE1C;;;;;OAKG;IACH,SAAS,CAAC,EAAE,OAAO,CAAA;IAEnB;;;;;;;OAOG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAE3B,yBAAyB;IACzB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,yBAAyB;IACzB,aAAa,CAAC,EAAE,MAAM,CAAA;IAEtB,aAAa;IACb,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,cAAc,CAAC,OAAO,CAAC,KAAK,IAAI,CAAA;IAE/D;;;;OAIG;IACH,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,cAAc,CAAC,OAAO,CAAC,KAAK,IAAI,CAAA;IAEpE;;;;;OAKG;IACH,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,CAAC,OAAO,CAAC,KAAK,IAAI,CAAA;CACxE;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,MAAM,oBAAoB,CAAC,MAAM,EAAE,OAAO,SAAS,MAAM,GAAG,MAAM,IAAI,MAAM,GAAG;IACnF,IAAI,CAAC,EAAE,gBAAgB,CAAC,OAAO,CAAC,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAA;CACpE,CAAA"}
1
+ {"version":3,"file":"dictionary.d.ts","sourceRoot":"","sources":["../../src/types/dictionary.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AAE/D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,MAAM,WAAW,gBAAgB,CAC/B,OAAO,SAAS,MAAM,GAAG,MAAM,EAC/B,SAAS,GAAG,OAAO,EACnB,OAAO,GAAG,OAAO;IAEjB;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,GAAG,EAAE,CACH,MAAM,EAAE,OAAO,EACf,IAAI,EAAE,cAAc,CAAC,OAAO,CAAC,EAC7B,MAAM,CAAC,EAAE,WAAW,KACjB,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC,CAAA;IAEnC;;;;;;;;OAQG;IACH,SAAS,CAAC,EAAE,CACV,GAAG,EAAE,OAAO,CAAC,SAAS,CAAC,EACvB,IAAI,EAAE,cAAc,CAAC,OAAO,CAAC,KAC1B,OAAO,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAAA;IAEnC;;;;;OAKG;IACH,SAAS,CAAC,EAAE,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAA;IAE/B;;;;;;;;;;OAUG;IACH,WAAW,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,OAAO,CAAA;IAE1C;;;;;OAKG;IACH,SAAS,CAAC,EAAE,OAAO,CAAA;IAEnB;;;;;;;OAOG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAE3B,yBAAyB;IACzB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,yBAAyB;IACzB,aAAa,CAAC,EAAE,MAAM,CAAA;IAEtB,aAAa;IACb,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,cAAc,CAAC,OAAO,CAAC,KAAK,IAAI,CAAA;IAE/D;;;;OAIG;IACH,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,cAAc,CAAC,OAAO,CAAC,KAAK,IAAI,CAAA;IAEpE;;;;;OAKG;IACH,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,CAAC,OAAO,CAAC,KAAK,IAAI,CAAA;CACxE;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,MAAM,oBAAoB,CAAC,MAAM,EAAE,OAAO,SAAS,MAAM,GAAG,MAAM,IAAI,MAAM,GAAG;IACnF,IAAI,CAAC,EAAE,gBAAgB,CAAC,OAAO,CAAC,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAA;CACpE,CAAA"}
@@ -1,5 +1,5 @@
1
- import { ComputedRef, Ref } from 'vue';
2
- import { FieldValue, NamePath, SchemxFieldInstance, Values } from '@schemx/core';
1
+ import { ComputedRef, Ref, VNodeChild } from 'vue';
2
+ import { FieldValue, NamePath, SchemxComponentProps, SchemxFieldInstance, SchemxInstance, SchemxViewFieldSchema, SchemxViewGroupSchema, Values } from '@schemx/core';
3
3
  /**
4
4
  * Vue 层字段控制器实例
5
5
  *
@@ -31,4 +31,40 @@ export interface FieldInstance<TValues extends Values = Values> extends SchemxFi
31
31
  */
32
32
  pending: ComputedRef<boolean>;
33
33
  }
34
+ /** 字段区域 Slot 共用的上下文参数。 */
35
+ export interface SchemxFieldSlotProps<TValues extends Values = Values> {
36
+ /** 当前字段完整的已解析 ViewSchema。 */
37
+ schema: SchemxViewFieldSchema<TValues>;
38
+ /** 当前 Renderer 的完整运行时 Props。 */
39
+ componentProps: SchemxComponentProps<TValues>;
40
+ /** 当前字段值。 */
41
+ value: FieldValue<TValues, NamePath<TValues>> | undefined;
42
+ /** 当前字段控制器。 */
43
+ field: FieldInstance<TValues>;
44
+ /** 当前表单实例。 */
45
+ form: SchemxInstance<TValues>;
46
+ }
47
+ /** 字段内容 Slot 额外获得的默认 Renderer VNode。 */
48
+ export interface SchemxFieldContentSlotProps<TValues extends Values = Values> extends SchemxFieldSlotProps<TValues> {
49
+ columnElement: VNodeChild;
50
+ }
51
+ /** 字段错误 Slot 额外获得的当前错误列表。 */
52
+ export interface SchemxFieldErrorSlotProps<TValues extends Values = Values> extends SchemxFieldSlotProps<TValues> {
53
+ errors: readonly string[];
54
+ }
55
+ /** 分组区域 Slot 共用的上下文参数。 */
56
+ export interface SchemxGroupSlotProps<TValues extends Values = Values> {
57
+ /** 当前分组完整的已解析 ViewSchema。 */
58
+ schema: SchemxViewGroupSchema<TValues>;
59
+ /** 当前是否收起。 */
60
+ collapsed: boolean;
61
+ /** 当前分组是否可收起。 */
62
+ collapsible: boolean;
63
+ /** 当前分组是否禁用。 */
64
+ disabled: boolean;
65
+ /** 当前分组是否只读。 */
66
+ readonly: boolean;
67
+ /** 切换分组收起状态。禁用或不可折叠时无效果。 */
68
+ toggle: () => void;
69
+ }
34
70
  //# sourceMappingURL=field.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"field.d.ts","sourceRoot":"","sources":["../../src/types/field.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,KAAK,CAAA;AAE3C,OAAO,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,mBAAmB,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AAErF;;;;;;;;GAQG;AACH,MAAM,WAAW,aAAa,CAC5B,OAAO,SAAS,MAAM,GAAG,MAAM,CAC/B,SAAQ,mBAAmB,CAAC,OAAO,CAAC;IACpC;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAA;IAChC;;OAEG;IACH,KAAK,EAAE,GAAG,CAAC,UAAU,CAAC,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC,CAAA;IAC9D;;OAEG;IACH,KAAK,EAAE,WAAW,CAAC,OAAO,CAAC,CAAA;IAC3B;;OAEG;IACH,MAAM,EAAE,WAAW,CAAC,SAAS,MAAM,EAAE,CAAC,CAAA;IACtC;;OAEG;IACH,OAAO,EAAE,WAAW,CAAC,OAAO,CAAC,CAAA;CAC9B"}
1
+ {"version":3,"file":"field.d.ts","sourceRoot":"","sources":["../../src/types/field.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,GAAG,EAAE,UAAU,EAAE,MAAM,KAAK,CAAA;AAEvD,OAAO,KAAK,EACV,UAAU,EACV,QAAQ,EACR,oBAAoB,EACpB,mBAAmB,EACnB,cAAc,EACd,qBAAqB,EACrB,qBAAqB,EACrB,MAAM,EACP,MAAM,cAAc,CAAA;AAErB;;;;;;;;GAQG;AACH,MAAM,WAAW,aAAa,CAC5B,OAAO,SAAS,MAAM,GAAG,MAAM,CAC/B,SAAQ,mBAAmB,CAAC,OAAO,CAAC;IACpC;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAA;IAChC;;OAEG;IACH,KAAK,EAAE,GAAG,CAAC,UAAU,CAAC,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC,CAAA;IAC9D;;OAEG;IACH,KAAK,EAAE,WAAW,CAAC,OAAO,CAAC,CAAA;IAC3B;;OAEG;IACH,MAAM,EAAE,WAAW,CAAC,SAAS,MAAM,EAAE,CAAC,CAAA;IACtC;;OAEG;IACH,OAAO,EAAE,WAAW,CAAC,OAAO,CAAC,CAAA;CAC9B;AAED,0BAA0B;AAC1B,MAAM,WAAW,oBAAoB,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM;IACnE,6BAA6B;IAC7B,MAAM,EAAE,qBAAqB,CAAC,OAAO,CAAC,CAAA;IACtC,gCAAgC;IAChC,cAAc,EAAE,oBAAoB,CAAC,OAAO,CAAC,CAAA;IAC7C,aAAa;IACb,KAAK,EAAE,UAAU,CAAC,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC,GAAG,SAAS,CAAA;IACzD,eAAe;IACf,KAAK,EAAE,aAAa,CAAC,OAAO,CAAC,CAAA;IAC7B,cAAc;IACd,IAAI,EAAE,cAAc,CAAC,OAAO,CAAC,CAAA;CAC9B;AAED,wCAAwC;AACxC,MAAM,WAAW,2BAA2B,CAC1C,OAAO,SAAS,MAAM,GAAG,MAAM,CAC/B,SAAQ,oBAAoB,CAAC,OAAO,CAAC;IACrC,aAAa,EAAE,UAAU,CAAA;CAC1B;AAED,6BAA6B;AAC7B,MAAM,WAAW,yBAAyB,CACxC,OAAO,SAAS,MAAM,GAAG,MAAM,CAC/B,SAAQ,oBAAoB,CAAC,OAAO,CAAC;IACrC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAA;CAC1B;AAED,0BAA0B;AAC1B,MAAM,WAAW,oBAAoB,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM;IACnE,6BAA6B;IAC7B,MAAM,EAAE,qBAAqB,CAAC,OAAO,CAAC,CAAA;IACtC,cAAc;IACd,SAAS,EAAE,OAAO,CAAA;IAClB,iBAAiB;IACjB,WAAW,EAAE,OAAO,CAAA;IACpB,gBAAgB;IAChB,QAAQ,EAAE,OAAO,CAAA;IACjB,gBAAgB;IAChB,QAAQ,EAAE,OAAO,CAAA;IACjB,4BAA4B;IAC5B,MAAM,EAAE,MAAM,IAAI,CAAA;CACnB"}
@@ -1,6 +1,6 @@
1
- import { StyleValue } from 'vue';
2
- import { DefinedFieldValue, FormCallbackOptions, FormLifecycleOptions, NamePath, RequiredRule, SchemxConfig, SchemxInstance, SchemxSchemasInput, ValidationTrigger, Values } from '@schemx/core';
1
+ import { ClassValue, StyleValue } from 'vue';
3
2
  import { SchemxButtonProps } from '../components/Button';
3
+ import { DefinedFieldValue, FormCallbackOptions, FormLifecycleOptions, FormPerformanceOptions, NamePath, RequiredConfig, SchemxConfig, SchemxFieldRulesMap, SchemxInstance, SchemxSchemasInput, ValidationTrigger, Values } from '@schemx/core';
4
4
  /**
5
5
  * Vue 需要在编译 `defineProps` 时直接读取 Props 的字段列表。
6
6
  *
@@ -9,7 +9,7 @@ import { SchemxButtonProps } from '../components/Button';
9
9
  * 让运行时 Props 推导可静态解析,同时避免把这些配置误判为 fallthrough attrs。
10
10
  */
11
11
  interface SchemxFormSchemaConfigProps<TValues extends Values = Values> {
12
- required?: RequiredRule<DefinedFieldValue<TValues, NamePath<TValues>>>;
12
+ required?: RequiredConfig<DefinedFieldValue<TValues, NamePath<TValues>>>;
13
13
  readonly?: boolean;
14
14
  disabled?: boolean;
15
15
  visible?: boolean;
@@ -46,11 +46,15 @@ export type SchemxFormAction = boolean | SchemxFormActionConfig;
46
46
  *
47
47
  * @typeParam TValues - 表单值类型
48
48
  */
49
- export interface SchemxFormProps<TValues extends Values = Values> extends Omit<SchemxConfig<TValues>, "schemaConfig">, FormCallbackOptions<TValues>, FormLifecycleOptions<TValues>, SchemxFormSchemaConfigProps<TValues> {
49
+ export interface SchemxFormProps<TValues extends Values = Values> extends Omit<SchemxConfig<TValues>, "schemaConfig">, FormCallbackOptions<TValues>, FormLifecycleOptions<TValues>, FormPerformanceOptions, SchemxFormSchemaConfigProps<TValues> {
50
50
  /**
51
51
  * 初始 Schema 列表。
52
52
  */
53
53
  schemas?: SchemxSchemasInput<TValues>;
54
+ /**
55
+ * 按字段路径配置的字段规则兜底。
56
+ */
57
+ fieldRules?: SchemxFieldRulesMap<TValues>;
54
58
  /**
55
59
  * Store 使用的初始表单值。
56
60
  */
@@ -68,17 +72,17 @@ export interface SchemxFormProps<TValues extends Values = Values> extends Omit<S
68
72
  */
69
73
  loading?: boolean;
70
74
  /**
71
- * 提交按钮配置;未提供时不渲染。
75
+ * 提交按钮配置;默认显示,设为 false 时隐藏。
72
76
  */
73
77
  submitter?: SchemxFormAction;
74
78
  /**
75
- * 重置按钮配置;未提供时不渲染。
79
+ * 重置按钮配置;默认显示,设为 false 时隐藏。
76
80
  */
77
81
  resetter?: SchemxFormAction;
78
82
  /**
79
83
  * 自定义 CSS 类名
80
84
  */
81
- class?: string;
85
+ class?: ClassValue;
82
86
  /**
83
87
  * 自定义内联样式
84
88
  */
@@ -1 +1 @@
1
- {"version":3,"file":"form.d.ts","sourceRoot":"","sources":["../../src/types/form.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,KAAK,CAAA;AAErC,OAAO,KAAK,EACV,iBAAiB,EACjB,mBAAmB,EACnB,oBAAoB,EACpB,QAAQ,EACR,YAAY,EACZ,YAAY,EACZ,cAAc,EACd,kBAAkB,EAClB,iBAAiB,EACjB,MAAM,EACP,MAAM,cAAc,CAAA;AACrB,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAA;AAE7D;;;;;;GAMG;AACH,UAAU,2BAA2B,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM;IACnE,QAAQ,CAAC,EAAE,YAAY,CAAC,iBAAiB,CAAC,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;IACtE,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,UAAU,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAA;IACxC,aAAa,CAAC,EAAE,MAAM,GAAG,KAAK,GAAG,OAAO,CAAA;IACxC,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,YAAY,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAA;IAC1C,iBAAiB,CAAC,EAAE,iBAAiB,GAAG,iBAAiB,EAAE,CAAA;IAC3D,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,gBAAgB,CAAC,EAAE,OAAO,CAAA;CAC3B;AAED;;;;GAIG;AACH,MAAM,WAAW,sBAAsB;IACrC;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAA;IACb;;OAEG;IACH,WAAW,CAAC,EAAE,IAAI,CAAC,iBAAiB,EAAE,MAAM,GAAG,SAAS,CAAC,CAAA;CAC1D;AAED;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG,OAAO,GAAG,sBAAsB,CAAA;AAE/D;;;;GAIG;AACH,MAAM,WAAW,eAAe,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM,CAC9D,SACE,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,cAAc,CAAC,EAC3C,mBAAmB,CAAC,OAAO,CAAC,EAC5B,oBAAoB,CAAC,OAAO,CAAC,EAC7B,2BAA2B,CAAC,OAAO,CAAC;IACtC;;OAEG;IACH,OAAO,CAAC,EAAE,kBAAkB,CAAC,OAAO,CAAC,CAAA;IAErC;;OAEG;IACH,aAAa,CAAC,EAAE,OAAO,CAAA;IAEvB;;OAEG;IACH,UAAU,CAAC,EAAE,OAAO,CAAA;IAEpB;;OAEG;IACH,IAAI,CAAC,EAAE,cAAc,CAAC,OAAO,CAAC,CAAA;IAE9B;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAA;IAEjB;;OAEG;IACH,SAAS,CAAC,EAAE,gBAAgB,CAAA;IAE5B;;OAEG;IACH,QAAQ,CAAC,EAAE,gBAAgB,CAAA;IAE3B;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAA;IAEd;;OAEG;IACH,KAAK,CAAC,EAAE,UAAU,CAAA;CACnB"}
1
+ {"version":3,"file":"form.d.ts","sourceRoot":"","sources":["../../src/types/form.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,KAAK,CAAA;AAEjD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAA;AAC7D,OAAO,KAAK,EACV,iBAAiB,EACjB,mBAAmB,EACnB,oBAAoB,EACpB,sBAAsB,EACtB,QAAQ,EACR,cAAc,EACd,YAAY,EACZ,mBAAmB,EACnB,cAAc,EACd,kBAAkB,EAClB,iBAAiB,EACjB,MAAM,EACP,MAAM,cAAc,CAAA;AAErB;;;;;;GAMG;AACH,UAAU,2BAA2B,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM;IACnE,QAAQ,CAAC,EAAE,cAAc,CAAC,iBAAiB,CAAC,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;IACxE,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,UAAU,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAA;IACxC,aAAa,CAAC,EAAE,MAAM,GAAG,KAAK,GAAG,OAAO,CAAA;IACxC,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,YAAY,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAA;IAC1C,iBAAiB,CAAC,EAAE,iBAAiB,GAAG,iBAAiB,EAAE,CAAA;IAC3D,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,gBAAgB,CAAC,EAAE,OAAO,CAAA;CAC3B;AAED;;;;GAIG;AACH,MAAM,WAAW,sBAAsB;IACrC;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAA;IACb;;OAEG;IACH,WAAW,CAAC,EAAE,IAAI,CAAC,iBAAiB,EAAE,MAAM,GAAG,SAAS,CAAC,CAAA;CAC1D;AAED;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG,OAAO,GAAG,sBAAsB,CAAA;AAE/D;;;;GAIG;AACH,MAAM,WAAW,eAAe,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM,CAC9D,SACE,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,cAAc,CAAC,EAC3C,mBAAmB,CAAC,OAAO,CAAC,EAC5B,oBAAoB,CAAC,OAAO,CAAC,EAC7B,sBAAsB,EACtB,2BAA2B,CAAC,OAAO,CAAC;IACtC;;OAEG;IACH,OAAO,CAAC,EAAE,kBAAkB,CAAC,OAAO,CAAC,CAAA;IAErC;;OAEG;IACH,UAAU,CAAC,EAAE,mBAAmB,CAAC,OAAO,CAAC,CAAA;IAEzC;;OAEG;IACH,aAAa,CAAC,EAAE,OAAO,CAAA;IAEvB;;OAEG;IACH,UAAU,CAAC,EAAE,OAAO,CAAA;IAEpB;;OAEG;IACH,IAAI,CAAC,EAAE,cAAc,CAAC,OAAO,CAAC,CAAA;IAE9B;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAA;IAEjB;;OAEG;IACH,SAAS,CAAC,EAAE,gBAAgB,CAAA;IAE5B;;OAEG;IACH,QAAQ,CAAC,EAAE,gBAAgB,CAAA;IAE3B;;OAEG;IACH,KAAK,CAAC,EAAE,UAAU,CAAA;IAElB;;OAEG;IACH,KAAK,CAAC,EAAE,UAAU,CAAA;CACnB"}
@@ -1,15 +1,15 @@
1
1
  import { StyleValue } from 'vue';
2
2
  declare module "@schemx/core" {
3
3
  interface SchemxFieldDefinition {
4
- /** 追加到表单项容器元素上的自定义 CSS 类名。 */
4
+ /** 追加到 Field 外层容器元素上的自定义 CSS 类名。 */
5
5
  class?: string;
6
- /** 应用到表单项容器元素上的自定义内联样式。 */
6
+ /** 应用到 Field 外层容器元素上的自定义内联样式。 */
7
7
  style?: StyleValue;
8
8
  }
9
9
  interface SchemxGroupFieldDefinition {
10
- /** 追加到 Group 根元素上的自定义 CSS 类名。 */
10
+ /** 追加到 Group 外层容器元素上的自定义 CSS 类名。 */
11
11
  class?: string;
12
- /** 应用到 Group 根元素上的自定义内联样式。 */
12
+ /** 应用到 Group 外层容器元素上的自定义内联样式。 */
13
13
  style?: StyleValue;
14
14
  }
15
15
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,KAAK,CAAA;AAErC,OAAO,QAAQ,cAAc,CAAC;IAC5B,UAAU,qBAAqB;QAC7B,8BAA8B;QAC9B,KAAK,CAAC,EAAE,MAAM,CAAA;QAEd,2BAA2B;QAC3B,KAAK,CAAC,EAAE,UAAU,CAAA;KACnB;IAED,UAAU,0BAA0B;QAClC,iCAAiC;QACjC,KAAK,CAAC,EAAE,MAAM,CAAA;QAEd,8BAA8B;QAC9B,KAAK,CAAC,EAAE,UAAU,CAAA;KACnB;CACF;AAED,cAAc,cAAc,CAAA;AAE5B,cAAc,QAAQ,CAAA;AAEtB,cAAc,SAAS,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,KAAK,CAAA;AAErC,OAAO,QAAQ,cAAc,CAAC;IAC5B,UAAU,qBAAqB;QAC7B,oCAAoC;QACpC,KAAK,CAAC,EAAE,MAAM,CAAA;QAEd,iCAAiC;QACjC,KAAK,CAAC,EAAE,UAAU,CAAA;KACnB;IAED,UAAU,0BAA0B;QAClC,oCAAoC;QACpC,KAAK,CAAC,EAAE,MAAM,CAAA;QAEd,iCAAiC;QACjC,KAAK,CAAC,EAAE,UAAU,CAAA;KACnB;CACF;AAED,cAAc,cAAc,CAAA;AAE5B,cAAc,QAAQ,CAAA;AAEtB,cAAc,SAAS,CAAA"}
@@ -22,4 +22,8 @@ export declare function getSectionPosition<TItem extends SchemxViewSchema>(list:
22
22
  isFirst: boolean;
23
23
  isLast: boolean;
24
24
  };
25
+ /** 将 NamePath 转换为整体字段与 Renderer 子插槽使用的键。 */
26
+ export declare function normalizeNameKey(name: unknown): string;
27
+ /** 将分组 key 转换为可用于 DOM ID 的安全字符串。 */
28
+ export declare function normalizeId(key: string): string;
25
29
  //# sourceMappingURL=helpers.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../src/utils/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAElE;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,SAAS,gBAAgB,EAC/D,IAAI,EAAE,KAAK,EAAE,EACb,UAAU,EAAE,MAAM;;;;EA2BnB"}
1
+ {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../src/utils/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAElE;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,SAAS,gBAAgB,EAC/D,IAAI,EAAE,KAAK,EAAE,EACb,UAAU,EAAE,MAAM;;;;EA2BnB;AAED,4CAA4C;AAC5C,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,CAMtD;AAED,oCAAoC;AACpC,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAE/C"}
@@ -9,5 +9,7 @@ export { type DependencieEntry, resolveDependencie, batchResolveDependencie, } f
9
9
  export { type TriggerConfig, type NormalizedTrigger, shouldValidateOn, mergeTrigger, } from './validation';
10
10
  /** 插槽工具 */
11
11
  export { resolveSlot, extractChildSlots } from './slot';
12
+ /** 通用渲染辅助 */
13
+ export { getSectionPosition, normalizeId, normalizeNameKey } from './helpers';
12
14
  export { diff } from './diff';
13
15
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,aAAa;AACb,OAAO,EACL,KAAK,gBAAgB,EACrB,kBAAkB,EAClB,uBAAuB,GACxB,MAAM,WAAW,CAAA;AAElB,aAAa;AACb,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,iBAAiB,EACtB,gBAAgB,EAChB,YAAY,GACb,MAAM,cAAc,CAAA;AAErB,WAAW;AACX,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,QAAQ,CAAA;AAEvD,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,aAAa;AACb,OAAO,EACL,KAAK,gBAAgB,EACrB,kBAAkB,EAClB,uBAAuB,GACxB,MAAM,WAAW,CAAA;AAElB,aAAa;AACb,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,iBAAiB,EACtB,gBAAgB,EAChB,YAAY,GACb,MAAM,cAAc,CAAA;AAErB,WAAW;AACX,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,QAAQ,CAAA;AAEvD,aAAa;AACb,OAAO,EAAE,kBAAkB,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAA;AAE7E,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA"}
@@ -0,0 +1,16 @@
1
+ import { PresetRuleRegistry } from '@schemx/core';
2
+ /**
3
+ * 全局预设规则注册实例
4
+ *
5
+ * @example
6
+ * ```ts
7
+ * // 注册自定义规则
8
+ * import { presetRuleRegistry } from '@schemx/vue'
9
+ * presetRuleRegistry.register('phone', phoneRule)
10
+ *
11
+ * // useForm 内部自动使用
12
+ * // props 传入的 presetRuleRegistry 优先级更高
13
+ * ```
14
+ */
15
+ export declare const presetRuleRegistry: PresetRuleRegistry;
16
+ //# sourceMappingURL=presetRuleProvider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"presetRuleProvider.d.ts","sourceRoot":"","sources":["../../src/utils/presetRuleProvider.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAA4B,KAAK,kBAAkB,EAAE,MAAM,cAAc,CAAA;AAEhF;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,kBAAkB,EAAE,kBAA+C,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"rendererProvider.d.ts","sourceRoot":"","sources":["../../src/utils/rendererProvider.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAEL,KAAK,gBAAgB,EACtB,MAAM,sBAAsB,CAAA;AAE7B,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAA;AAErD;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,gBAAgB,EAAE,gBAAgB,CAAC,iBAAiB,CACb,CAAA"}
1
+ {"version":3,"file":"rendererProvider.d.ts","sourceRoot":"","sources":["../../src/utils/rendererProvider.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAA0B,KAAK,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AAEpF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAA;AAErD;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,gBAAgB,EAAE,gBAAgB,CAAC,iBAAiB,CACb,CAAA"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "type": "module",
3
3
  "name": "@schemx/vue",
4
- "version": "1.0.0-next.2",
4
+ "version": "1.0.0-next.4",
5
5
  "description": "基于 JSON Schema 配置的 Vue 3 动态表单引擎(UI 无关核心)",
6
6
  "keywords": [
7
7
  "schemx",
@@ -48,7 +48,7 @@
48
48
  ],
49
49
  "peerDependencies": {
50
50
  "vue": "^3.0.0",
51
- "@schemx/core": "1.0.0-next.2"
51
+ "@schemx/core": "1.0.0-next.4"
52
52
  },
53
53
  "dependencies": {
54
54
  "classnames": "^2.5.1",
@@ -61,7 +61,7 @@
61
61
  "vue": "^3.4.0",
62
62
  "vue-tsc": "^3.3.9",
63
63
  "zod": "^4.3.6",
64
- "@schemx/core": "1.0.0-next.2"
64
+ "@schemx/core": "1.0.0-next.4"
65
65
  },
66
66
  "scripts": {
67
67
  "build": "pnpm run type-check && vite build",
@@ -1,16 +0,0 @@
1
- import { SchemxViewGroupSchema, Values } from '@schemx/core';
2
- /**
3
- * FormGroup Props
4
- *
5
- * @typeParam TValues - 表单值类型
6
- */
7
- export interface SchemxGroupProps<TValues extends Values = Values> {
8
- schema: SchemxViewGroupSchema<TValues>;
9
- }
10
- declare const FormGroup: import('vue').DefineSetupFnComponent<{
11
- schema: SchemxViewGroupSchema;
12
- }, {}, {}, {
13
- schema: SchemxViewGroupSchema;
14
- } & {}, import('vue').PublicProps>;
15
- export default FormGroup;
16
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/FormGroup/index.tsx"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AASH,OAAO,KAAK,EAAE,qBAAqB,EAAoB,MAAM,EAAE,MAAM,cAAc,CAAA;AAEnF;;;;GAIG;AACH,MAAM,WAAW,gBAAgB,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM;IAC/D,MAAM,EAAE,qBAAqB,CAAC,OAAO,CAAC,CAAA;CACvC;AAED,QAAA,MAAM,SAAS;;;;kCAuId,CAAA;AAED,eAAe,SAAS,CAAA"}
@@ -1,22 +0,0 @@
1
- import { PropType, VNodeChild } from 'vue';
2
- /**
3
- * FormItem 属性。
4
- *
5
- * 提供待渲染的原始 ViewSchema;具体字段或分组类型由组件内部运行时收窄。
6
- */
7
- export interface SchemxItemProps {
8
- schema: unknown;
9
- }
10
- declare const FormItem: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
11
- schema: {
12
- type: PropType<unknown>;
13
- required: true;
14
- };
15
- }>, () => VNodeChild, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
16
- schema: {
17
- type: PropType<unknown>;
18
- required: true;
19
- };
20
- }>> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
21
- export default FormItem;
22
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/FormItem/index.tsx"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,EAAgC,QAAQ,EAAE,MAAM,KAAK,CAAA;AAC5D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,KAAK,CAAA;AA6BrC;;;;GAIG;AACH,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,OAAO,CAAA;CAChB;AAED,QAAA,MAAM,QAAQ;;cAKQ,QAAQ,CAAC,OAAO,CAAC;;;UAYxB,UAAU;;cAZH,QAAQ,CAAC,OAAO,CAAC;;;iGAsBrC,CAAA;AAsLF,eAAe,QAAQ,CAAA"}