@shwfed/config 2.4.0 → 2.5.0

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 (315) hide show
  1. package/dist/mcp.mjs +128 -27
  2. package/dist/module.json +1 -1
  3. package/dist/preview/assets/{config-Bxkq2ZRm.js → config-BkytEQN5.js} +1 -1
  4. package/dist/preview/assets/{config-BdFIFUa_.js → config-CK011_jJ.js} +1 -1
  5. package/dist/preview/assets/{config-BcQQl4v6.js → config-C_bBX0wD.js} +1 -1
  6. package/dist/preview/assets/{config-CHHX7vhb.js → config-Cbn8o9BY.js} +1 -1
  7. package/dist/preview/assets/{config-CZ0f5xdI.js → config-DYL6kHr3.js} +1 -1
  8. package/dist/preview/assets/{config-Ddh8pxIi.js → config-Dx0zHfGt.js} +1 -1
  9. package/dist/preview/assets/{config-D9xGgFnF.js → config-E-DM6b5t.js} +1 -1
  10. package/dist/preview/assets/{config-C32yfrlg.js → config-PjseWUbC.js} +1 -1
  11. package/dist/preview/assets/{config-Bi9F-Jdh.js → config-dwcdYHd4.js} +1 -1
  12. package/dist/preview/assets/{definition.vue_vue_type_script_setup_true_lang-C_cjxvm1.js → definition.vue_vue_type_script_setup_true_lang-uJFJXxli.js} +1 -1
  13. package/dist/preview/assets/index-7MVXgV5n.css +1 -0
  14. package/dist/preview/assets/index-CmPiZG_4.js +1 -0
  15. package/dist/preview/assets/index-x-77enex.js +668 -0
  16. package/dist/preview/assets/runtime-BRMGkqSr.js +1 -0
  17. package/dist/preview/assets/runtime-CHLboM_z.js +1 -0
  18. package/dist/preview/assets/runtime-CeHdesjP.js +1 -0
  19. package/dist/preview/assets/runtime-D4_9FCLy.js +1 -0
  20. package/dist/preview/assets/runtime-DHBTDws7.js +1 -0
  21. package/dist/preview/assets/runtime-DJHpCLnr.js +1 -0
  22. package/dist/preview/assets/runtime-DKq86fZU.js +1 -0
  23. package/dist/preview/assets/runtime-DjpjaNec.js +1 -0
  24. package/dist/preview/assets/runtime-ZQryOEKm.js +1 -0
  25. package/dist/preview/index.html +2 -2
  26. package/dist/runtime/components/actions/buttons/2026-04-18/com.shwfed.actions.button.http.request.json/runtime.vue +7 -4
  27. package/dist/runtime/components/actions/buttons/2026-04-18/com.shwfed.actions.button.http.request.json.confirm/runtime.vue +6 -0
  28. package/dist/runtime/components/config/blocks/2026-05-06/com.shwfed.block.table/schema.d.ts +1 -1
  29. package/dist/runtime/components/form/ValidationRulesField.d.vue.ts +16 -0
  30. package/dist/runtime/components/form/ValidationRulesField.vue +207 -0
  31. package/dist/runtime/components/form/ValidationRulesField.vue.d.ts +16 -0
  32. package/dist/runtime/components/form/fields/2026-04-22/com.shwfed.form.field.markdown/config.d.vue.ts +24 -0
  33. package/dist/runtime/components/form/fields/2026-04-22/com.shwfed.form.field.markdown/config.vue.d.ts +24 -0
  34. package/dist/runtime/components/form/fields/2026-04-22/com.shwfed.form.field.markdown/schema.d.ts +18 -0
  35. package/dist/runtime/components/form/fields/2026-04-22/com.shwfed.form.field.text/config.d.vue.ts +24 -0
  36. package/dist/runtime/components/form/fields/2026-04-22/com.shwfed.form.field.text/config.vue +38 -0
  37. package/dist/runtime/components/form/fields/2026-04-22/com.shwfed.form.field.text/config.vue.d.ts +24 -0
  38. package/dist/runtime/components/form/fields/2026-04-22/com.shwfed.form.field.text/runtime.vue +18 -2
  39. package/dist/runtime/components/form/fields/2026-04-22/com.shwfed.form.field.text/schema.d.ts +18 -0
  40. package/dist/runtime/components/form/fields/2026-04-22/com.shwfed.form.field.textarea/config.d.vue.ts +24 -0
  41. package/dist/runtime/components/form/fields/2026-04-22/com.shwfed.form.field.textarea/config.vue +38 -0
  42. package/dist/runtime/components/form/fields/2026-04-22/com.shwfed.form.field.textarea/config.vue.d.ts +24 -0
  43. package/dist/runtime/components/form/fields/2026-04-22/com.shwfed.form.field.textarea/runtime.vue +18 -2
  44. package/dist/runtime/components/form/fields/2026-04-22/com.shwfed.form.field.textarea/schema.d.ts +18 -0
  45. package/dist/runtime/components/form/fields/2026-04-24/com.shwfed.form.field.actions/config.d.vue.ts +24 -0
  46. package/dist/runtime/components/form/fields/2026-04-24/com.shwfed.form.field.actions/config.vue.d.ts +24 -0
  47. package/dist/runtime/components/form/fields/2026-04-24/com.shwfed.form.field.actions/schema.d.ts +18 -0
  48. package/dist/runtime/components/form/fields/2026-04-24/com.shwfed.form.field.combobox.single/config.d.vue.ts +24 -0
  49. package/dist/runtime/components/form/fields/2026-04-24/com.shwfed.form.field.combobox.single/config.vue.d.ts +24 -0
  50. package/dist/runtime/components/form/fields/2026-04-24/com.shwfed.form.field.combobox.single/schema.d.ts +18 -0
  51. package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.date/config.d.vue.ts +24 -0
  52. package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.date/config.vue +38 -0
  53. package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.date/config.vue.d.ts +24 -0
  54. package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.date/runtime.vue +18 -2
  55. package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.date/schema.d.ts +18 -0
  56. package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.daterange/config.d.vue.ts +24 -0
  57. package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.daterange/config.vue +38 -0
  58. package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.daterange/config.vue.d.ts +24 -0
  59. package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.daterange/runtime.vue +18 -2
  60. package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.daterange/schema.d.ts +18 -0
  61. package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.datetime/config.d.vue.ts +24 -0
  62. package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.datetime/config.vue +38 -0
  63. package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.datetime/config.vue.d.ts +24 -0
  64. package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.datetime/runtime.vue +18 -2
  65. package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.datetime/schema.d.ts +18 -0
  66. package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.datetimerange/config.d.vue.ts +24 -0
  67. package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.datetimerange/config.vue +38 -0
  68. package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.datetimerange/config.vue.d.ts +24 -0
  69. package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.datetimerange/runtime.vue +18 -2
  70. package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.datetimerange/schema.d.ts +18 -0
  71. package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.time/config.d.vue.ts +24 -0
  72. package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.time/config.vue +38 -0
  73. package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.time/config.vue.d.ts +24 -0
  74. package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.time/runtime.vue +18 -2
  75. package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.time/schema.d.ts +18 -0
  76. package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.timerange/config.d.vue.ts +24 -0
  77. package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.timerange/config.vue +38 -0
  78. package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.timerange/config.vue.d.ts +24 -0
  79. package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.timerange/runtime.vue +18 -2
  80. package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.timerange/schema.d.ts +18 -0
  81. package/dist/runtime/components/form/fields/2026-04-28/com.shwfed.form.field.number/config.d.vue.ts +24 -0
  82. package/dist/runtime/components/form/fields/2026-04-28/com.shwfed.form.field.number/config.vue +38 -0
  83. package/dist/runtime/components/form/fields/2026-04-28/com.shwfed.form.field.number/config.vue.d.ts +24 -0
  84. package/dist/runtime/components/form/fields/2026-04-28/com.shwfed.form.field.number/runtime.vue +18 -2
  85. package/dist/runtime/components/form/fields/2026-04-28/com.shwfed.form.field.number/schema.d.ts +18 -0
  86. package/dist/runtime/components/form/fields/2026-04-28/com.shwfed.form.field.numberrange/config.d.vue.ts +24 -0
  87. package/dist/runtime/components/form/fields/2026-04-28/com.shwfed.form.field.numberrange/config.vue +38 -0
  88. package/dist/runtime/components/form/fields/2026-04-28/com.shwfed.form.field.numberrange/config.vue.d.ts +24 -0
  89. package/dist/runtime/components/form/fields/2026-04-28/com.shwfed.form.field.numberrange/runtime.vue +18 -2
  90. package/dist/runtime/components/form/fields/2026-04-28/com.shwfed.form.field.numberrange/schema.d.ts +18 -0
  91. package/dist/runtime/components/form/fields/2026-04-28/com.shwfed.form.field.switch/config.d.vue.ts +24 -0
  92. package/dist/runtime/components/form/fields/2026-04-28/com.shwfed.form.field.switch/config.vue +38 -0
  93. package/dist/runtime/components/form/fields/2026-04-28/com.shwfed.form.field.switch/config.vue.d.ts +24 -0
  94. package/dist/runtime/components/form/fields/2026-04-28/com.shwfed.form.field.switch/runtime.vue +18 -2
  95. package/dist/runtime/components/form/fields/2026-04-28/com.shwfed.form.field.switch/schema.d.ts +18 -0
  96. package/dist/runtime/components/form/fields/2026-04-29/com.shwfed.form.field.combobox.single/config.d.vue.ts +24 -0
  97. package/dist/runtime/components/form/fields/2026-04-29/com.shwfed.form.field.combobox.single/config.vue.d.ts +24 -0
  98. package/dist/runtime/components/form/fields/2026-04-29/com.shwfed.form.field.combobox.single/schema.d.ts +18 -0
  99. package/dist/runtime/components/form/fields/2026-05-12/com.shwfed.form.field.upload/config.d.vue.ts +24 -0
  100. package/dist/runtime/components/form/fields/2026-05-12/com.shwfed.form.field.upload/config.vue +38 -0
  101. package/dist/runtime/components/form/fields/2026-05-12/com.shwfed.form.field.upload/config.vue.d.ts +24 -0
  102. package/dist/runtime/components/form/fields/2026-05-12/com.shwfed.form.field.upload/runtime.vue +18 -2
  103. package/dist/runtime/components/form/fields/2026-05-12/com.shwfed.form.field.upload/schema.d.ts +18 -0
  104. package/dist/runtime/components/form/fields/2026-05-13/com.shwfed.form.field.combobox.single.remote/config.d.vue.ts +24 -0
  105. package/dist/runtime/components/form/fields/2026-05-13/com.shwfed.form.field.combobox.single.remote/config.vue +38 -0
  106. package/dist/runtime/components/form/fields/2026-05-13/com.shwfed.form.field.combobox.single.remote/config.vue.d.ts +24 -0
  107. package/dist/runtime/components/form/fields/2026-05-13/com.shwfed.form.field.combobox.single.remote/runtime.vue +18 -2
  108. package/dist/runtime/components/form/fields/2026-05-13/com.shwfed.form.field.combobox.single.remote/schema.d.ts +18 -0
  109. package/dist/runtime/components/form/fields/2026-05-13/com.shwfed.form.field.list/config.d.vue.ts +24 -0
  110. package/dist/runtime/components/form/fields/2026-05-13/com.shwfed.form.field.list/config.vue +38 -0
  111. package/dist/runtime/components/form/fields/2026-05-13/com.shwfed.form.field.list/config.vue.d.ts +24 -0
  112. package/dist/runtime/components/form/fields/2026-05-13/com.shwfed.form.field.list/runtime.vue +18 -2
  113. package/dist/runtime/components/form/fields/2026-05-13/com.shwfed.form.field.list/schema.d.ts +30 -0
  114. package/dist/runtime/components/form/fields/2026-05-17/com.shwfed.form.field.checkbox.group/config.d.vue.ts +24 -0
  115. package/dist/runtime/components/form/fields/2026-05-17/com.shwfed.form.field.checkbox.group/config.vue +38 -0
  116. package/dist/runtime/components/form/fields/2026-05-17/com.shwfed.form.field.checkbox.group/config.vue.d.ts +24 -0
  117. package/dist/runtime/components/form/fields/2026-05-17/com.shwfed.form.field.checkbox.group/runtime.vue +18 -2
  118. package/dist/runtime/components/form/fields/2026-05-17/com.shwfed.form.field.checkbox.group/schema.d.ts +18 -0
  119. package/dist/runtime/components/form/fields/2026-05-17/com.shwfed.form.field.radio.group/config.d.vue.ts +24 -0
  120. package/dist/runtime/components/form/fields/2026-05-17/com.shwfed.form.field.radio.group/config.vue +38 -0
  121. package/dist/runtime/components/form/fields/2026-05-17/com.shwfed.form.field.radio.group/config.vue.d.ts +24 -0
  122. package/dist/runtime/components/form/fields/2026-05-17/com.shwfed.form.field.radio.group/runtime.vue +18 -2
  123. package/dist/runtime/components/form/fields/2026-05-17/com.shwfed.form.field.radio.group/schema.d.ts +18 -0
  124. package/dist/runtime/components/form/fields/2026-05-18/com.shwfed.form.field.table/config.d.vue.ts +24 -0
  125. package/dist/runtime/components/form/fields/2026-05-18/com.shwfed.form.field.table/config.vue +51 -9
  126. package/dist/runtime/components/form/fields/2026-05-18/com.shwfed.form.field.table/config.vue.d.ts +24 -0
  127. package/dist/runtime/components/form/fields/2026-05-18/com.shwfed.form.field.table/runtime.vue +22 -2
  128. package/dist/runtime/components/form/fields/2026-05-18/com.shwfed.form.field.table/schema.d.ts +18 -0
  129. package/dist/runtime/components/form/fields/2026-05-20/com.shwfed.form.field.collapsible/runtime.vue +26 -0
  130. package/dist/runtime/components/form/fields/2026-05-23/com.shwfed.form.field.tree.multi/config.d.vue.ts +24 -0
  131. package/dist/runtime/components/form/fields/2026-05-23/com.shwfed.form.field.tree.multi/config.vue.d.ts +24 -0
  132. package/dist/runtime/components/form/fields/2026-05-23/com.shwfed.form.field.tree.multi/schema.d.ts +18 -0
  133. package/dist/runtime/components/form/fields/2026-05-24/com.shwfed.form.field.month/config.d.vue.ts +24 -0
  134. package/dist/runtime/components/form/fields/2026-05-24/com.shwfed.form.field.month/config.vue +38 -0
  135. package/dist/runtime/components/form/fields/2026-05-24/com.shwfed.form.field.month/config.vue.d.ts +24 -0
  136. package/dist/runtime/components/form/fields/2026-05-24/com.shwfed.form.field.month/runtime.vue +18 -2
  137. package/dist/runtime/components/form/fields/2026-05-24/com.shwfed.form.field.month/schema.d.ts +18 -0
  138. package/dist/runtime/components/form/fields/2026-05-24/com.shwfed.form.field.monthrange/config.d.vue.ts +24 -0
  139. package/dist/runtime/components/form/fields/2026-05-24/com.shwfed.form.field.monthrange/config.vue +38 -0
  140. package/dist/runtime/components/form/fields/2026-05-24/com.shwfed.form.field.monthrange/config.vue.d.ts +24 -0
  141. package/dist/runtime/components/form/fields/2026-05-24/com.shwfed.form.field.monthrange/runtime.vue +18 -2
  142. package/dist/runtime/components/form/fields/2026-05-24/com.shwfed.form.field.monthrange/schema.d.ts +18 -0
  143. package/dist/runtime/components/form/fields/2026-05-25/com.shwfed.form.field.combobox.multi/config.d.vue.ts +24 -0
  144. package/dist/runtime/components/form/fields/2026-05-25/com.shwfed.form.field.combobox.multi/config.vue.d.ts +24 -0
  145. package/dist/runtime/components/form/fields/2026-05-25/com.shwfed.form.field.combobox.multi/schema.d.ts +18 -0
  146. package/dist/runtime/components/form/fields/2026-05-26/com.shwfed.form.field.tree.combobox.multi/config.d.vue.ts +24 -0
  147. package/dist/runtime/components/form/fields/2026-05-26/com.shwfed.form.field.tree.combobox.multi/config.vue.d.ts +24 -0
  148. package/dist/runtime/components/form/fields/2026-05-26/com.shwfed.form.field.tree.combobox.multi/schema.d.ts +18 -0
  149. package/dist/runtime/components/form/fields/2026-05-26/com.shwfed.form.field.tree.combobox.single/config.d.vue.ts +24 -0
  150. package/dist/runtime/components/form/fields/2026-05-26/com.shwfed.form.field.tree.combobox.single/config.vue.d.ts +24 -0
  151. package/dist/runtime/components/form/fields/2026-05-26/com.shwfed.form.field.tree.combobox.single/schema.d.ts +18 -0
  152. package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.combobox.multi/config.d.vue.ts +24 -0
  153. package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.combobox.multi/config.vue +38 -0
  154. package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.combobox.multi/config.vue.d.ts +24 -0
  155. package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.combobox.multi/runtime.vue +18 -2
  156. package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.combobox.multi/schema.d.ts +18 -0
  157. package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.combobox.single/config.d.vue.ts +24 -0
  158. package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.combobox.single/config.vue +38 -0
  159. package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.combobox.single/config.vue.d.ts +24 -0
  160. package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.combobox.single/runtime.vue +18 -2
  161. package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.combobox.single/schema.d.ts +18 -0
  162. package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.tree.combobox.multi/config.d.vue.ts +24 -0
  163. package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.tree.combobox.multi/config.vue +38 -0
  164. package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.tree.combobox.multi/config.vue.d.ts +24 -0
  165. package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.tree.combobox.multi/runtime.vue +18 -2
  166. package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.tree.combobox.multi/schema.d.ts +18 -0
  167. package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.tree.combobox.single/config.d.vue.ts +24 -0
  168. package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.tree.combobox.single/config.vue +38 -0
  169. package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.tree.combobox.single/config.vue.d.ts +24 -0
  170. package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.tree.combobox.single/runtime.vue +18 -2
  171. package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.tree.combobox.single/schema.d.ts +18 -0
  172. package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.tree.multi/config.d.vue.ts +24 -0
  173. package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.tree.multi/config.vue +38 -0
  174. package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.tree.multi/config.vue.d.ts +24 -0
  175. package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.tree.multi/runtime.vue +18 -2
  176. package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.tree.multi/schema.d.ts +18 -0
  177. package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.tree.single/config.d.vue.ts +24 -0
  178. package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.tree.single/config.vue +38 -0
  179. package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.tree.single/config.vue.d.ts +24 -0
  180. package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.tree.single/runtime.vue +18 -2
  181. package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.tree.single/schema.d.ts +18 -0
  182. package/dist/runtime/components/form/index.d.vue.ts +1 -0
  183. package/dist/runtime/components/form/index.vue +14 -18
  184. package/dist/runtime/components/form/index.vue.d.ts +1 -0
  185. package/dist/runtime/components/form/schema.d.ts +2 -10
  186. package/dist/runtime/components/form/schema.js +2 -5
  187. package/dist/runtime/components/form/utils/cel-scope.d.ts +12 -3
  188. package/dist/runtime/components/form/utils/cel-scope.js +17 -18
  189. package/dist/runtime/components/form/utils/common.d.ts +42 -0
  190. package/dist/runtime/components/form/utils/common.js +40 -2
  191. package/dist/runtime/components/form/utils/form-vars.d.ts +19 -0
  192. package/dist/runtime/components/form/utils/form-vars.js +5 -0
  193. package/dist/runtime/components/form/utils/validation.d.ts +85 -0
  194. package/dist/runtime/components/form/utils/validation.js +113 -0
  195. package/dist/runtime/components/table/columns/2026-04-14/com.shwfed.table.column.date/config.vue +20 -8
  196. package/dist/runtime/components/table/columns/2026-04-14/com.shwfed.table.column.date/schema.d.ts +1 -0
  197. package/dist/runtime/components/table/columns/2026-04-14/com.shwfed.table.column.icon/config.vue +20 -8
  198. package/dist/runtime/components/table/columns/2026-04-14/com.shwfed.table.column.icon/schema.d.ts +1 -0
  199. package/dist/runtime/components/table/columns/2026-04-14/com.shwfed.table.column.number/config.vue +20 -8
  200. package/dist/runtime/components/table/columns/2026-04-14/com.shwfed.table.column.number/schema.d.ts +1 -0
  201. package/dist/runtime/components/table/columns/2026-04-14/com.shwfed.table.column.text/config.vue +20 -8
  202. package/dist/runtime/components/table/columns/2026-04-14/com.shwfed.table.column.text/schema.d.ts +1 -0
  203. package/dist/runtime/components/table/columns/2026-05-13/com.shwfed.table.column.switch/config.vue +20 -8
  204. package/dist/runtime/components/table/columns/2026-05-13/com.shwfed.table.column.switch/schema.d.ts +1 -0
  205. package/dist/runtime/components/table/columns/2026-05-13/com.shwfed.table.column.switch.remote/config.vue +20 -8
  206. package/dist/runtime/components/table/columns/2026-05-13/com.shwfed.table.column.switch.remote/schema.d.ts +1 -0
  207. package/dist/runtime/components/table/columns/2026-05-20/com.shwfed.table.column.combobox-single/config.d.vue.ts +2 -0
  208. package/dist/runtime/components/table/columns/2026-05-20/com.shwfed.table.column.combobox-single/config.vue +20 -8
  209. package/dist/runtime/components/table/columns/2026-05-20/com.shwfed.table.column.combobox-single/config.vue.d.ts +2 -0
  210. package/dist/runtime/components/table/columns/2026-05-20/com.shwfed.table.column.combobox-single/schema.d.ts +1 -0
  211. package/dist/runtime/components/table/columns/2026-05-20/com.shwfed.table.column.number-input/config.vue +20 -7
  212. package/dist/runtime/components/table/columns/2026-05-20/com.shwfed.table.column.number-input/schema.d.ts +1 -0
  213. package/dist/runtime/components/table/columns/2026-05-20/com.shwfed.table.column.switch/config.vue +20 -8
  214. package/dist/runtime/components/table/columns/2026-05-20/com.shwfed.table.column.switch/schema.d.ts +1 -0
  215. package/dist/runtime/components/table/columns/2026-05-20/com.shwfed.table.column.switch.local/config.vue +20 -8
  216. package/dist/runtime/components/table/columns/2026-05-20/com.shwfed.table.column.switch.local/schema.d.ts +1 -0
  217. package/dist/runtime/components/table/columns/2026-05-20/com.shwfed.table.column.text-input/config.vue +20 -8
  218. package/dist/runtime/components/table/columns/2026-05-20/com.shwfed.table.column.text-input/schema.d.ts +1 -0
  219. package/dist/runtime/components/table/columns/2026-05-24/com.shwfed.table.column.combobox-single.remote.options-remote/config.d.vue.ts +2 -0
  220. package/dist/runtime/components/table/columns/2026-05-24/com.shwfed.table.column.combobox-single.remote.options-remote/config.vue +20 -8
  221. package/dist/runtime/components/table/columns/2026-05-24/com.shwfed.table.column.combobox-single.remote.options-remote/config.vue.d.ts +2 -0
  222. package/dist/runtime/components/table/columns/2026-05-24/com.shwfed.table.column.combobox-single.remote.options-remote/schema.d.ts +1 -0
  223. package/dist/runtime/components/table/columns/2026-05-24/com.shwfed.table.column.combobox-single.remote.options-static/config.d.vue.ts +2 -0
  224. package/dist/runtime/components/table/columns/2026-05-24/com.shwfed.table.column.combobox-single.remote.options-static/config.vue +20 -8
  225. package/dist/runtime/components/table/columns/2026-05-24/com.shwfed.table.column.combobox-single.remote.options-static/config.vue.d.ts +2 -0
  226. package/dist/runtime/components/table/columns/2026-05-24/com.shwfed.table.column.combobox-single.remote.options-static/schema.d.ts +1 -0
  227. package/dist/runtime/components/table/columns/2026-05-25/com.shwfed.table.column.combobox-multi/config.d.vue.ts +2 -0
  228. package/dist/runtime/components/table/columns/2026-05-25/com.shwfed.table.column.combobox-multi/config.vue +20 -8
  229. package/dist/runtime/components/table/columns/2026-05-25/com.shwfed.table.column.combobox-multi/config.vue.d.ts +2 -0
  230. package/dist/runtime/components/table/columns/2026-05-25/com.shwfed.table.column.combobox-multi/schema.d.ts +1 -0
  231. package/dist/runtime/components/table/columns/2026-05-25/com.shwfed.table.column.combobox-multi.remote.options-remote/config.d.vue.ts +2 -0
  232. package/dist/runtime/components/table/columns/2026-05-25/com.shwfed.table.column.combobox-multi.remote.options-remote/config.vue +20 -8
  233. package/dist/runtime/components/table/columns/2026-05-25/com.shwfed.table.column.combobox-multi.remote.options-remote/config.vue.d.ts +2 -0
  234. package/dist/runtime/components/table/columns/2026-05-25/com.shwfed.table.column.combobox-multi.remote.options-remote/schema.d.ts +1 -0
  235. package/dist/runtime/components/table/columns/2026-05-25/com.shwfed.table.column.combobox-multi.remote.options-static/config.d.vue.ts +2 -0
  236. package/dist/runtime/components/table/columns/2026-05-25/com.shwfed.table.column.combobox-multi.remote.options-static/config.vue +20 -8
  237. package/dist/runtime/components/table/columns/2026-05-25/com.shwfed.table.column.combobox-multi.remote.options-static/config.vue.d.ts +2 -0
  238. package/dist/runtime/components/table/columns/2026-05-25/com.shwfed.table.column.combobox-multi.remote.options-static/schema.d.ts +1 -0
  239. package/dist/runtime/components/table/columns/2026-05-26/com.shwfed.table.column.combobox-multi/config.d.vue.ts +2 -0
  240. package/dist/runtime/components/table/columns/2026-05-26/com.shwfed.table.column.combobox-multi/config.vue +20 -8
  241. package/dist/runtime/components/table/columns/2026-05-26/com.shwfed.table.column.combobox-multi/config.vue.d.ts +2 -0
  242. package/dist/runtime/components/table/columns/2026-05-26/com.shwfed.table.column.combobox-multi/schema.d.ts +1 -0
  243. package/dist/runtime/components/table/columns/2026-05-26/com.shwfed.table.column.combobox-multi.remote/config.d.vue.ts +2 -0
  244. package/dist/runtime/components/table/columns/2026-05-26/com.shwfed.table.column.combobox-multi.remote/config.vue +20 -8
  245. package/dist/runtime/components/table/columns/2026-05-26/com.shwfed.table.column.combobox-multi.remote/config.vue.d.ts +2 -0
  246. package/dist/runtime/components/table/columns/2026-05-26/com.shwfed.table.column.combobox-multi.remote/schema.d.ts +1 -0
  247. package/dist/runtime/components/table/columns/2026-05-26/com.shwfed.table.column.combobox-single/config.d.vue.ts +2 -0
  248. package/dist/runtime/components/table/columns/2026-05-26/com.shwfed.table.column.combobox-single/config.vue +20 -8
  249. package/dist/runtime/components/table/columns/2026-05-26/com.shwfed.table.column.combobox-single/config.vue.d.ts +2 -0
  250. package/dist/runtime/components/table/columns/2026-05-26/com.shwfed.table.column.combobox-single/schema.d.ts +1 -0
  251. package/dist/runtime/components/table/columns/2026-05-26/com.shwfed.table.column.combobox-single.remote/config.d.vue.ts +2 -0
  252. package/dist/runtime/components/table/columns/2026-05-26/com.shwfed.table.column.combobox-single.remote/config.vue +20 -8
  253. package/dist/runtime/components/table/columns/2026-05-26/com.shwfed.table.column.combobox-single.remote/config.vue.d.ts +2 -0
  254. package/dist/runtime/components/table/columns/2026-05-26/com.shwfed.table.column.combobox-single.remote/schema.d.ts +1 -0
  255. package/dist/runtime/components/table/columns/2026-05-27/com.shwfed.table.column.tree-combobox-multi/config.d.vue.ts +2 -0
  256. package/dist/runtime/components/table/columns/2026-05-27/com.shwfed.table.column.tree-combobox-multi/config.vue +20 -7
  257. package/dist/runtime/components/table/columns/2026-05-27/com.shwfed.table.column.tree-combobox-multi/config.vue.d.ts +2 -0
  258. package/dist/runtime/components/table/columns/2026-05-27/com.shwfed.table.column.tree-combobox-multi/schema.d.ts +1 -0
  259. package/dist/runtime/components/table/columns/2026-05-27/com.shwfed.table.column.tree-combobox-single/config.d.vue.ts +2 -0
  260. package/dist/runtime/components/table/columns/2026-05-27/com.shwfed.table.column.tree-combobox-single/config.vue +20 -7
  261. package/dist/runtime/components/table/columns/2026-05-27/com.shwfed.table.column.tree-combobox-single/config.vue.d.ts +2 -0
  262. package/dist/runtime/components/table/columns/2026-05-27/com.shwfed.table.column.tree-combobox-single/schema.d.ts +1 -0
  263. package/dist/runtime/components/table/columns/2026-05-28/com.shwfed.table.column.combobox-multi/config.d.vue.ts +2 -0
  264. package/dist/runtime/components/table/columns/2026-05-28/com.shwfed.table.column.combobox-multi/config.vue +20 -8
  265. package/dist/runtime/components/table/columns/2026-05-28/com.shwfed.table.column.combobox-multi/config.vue.d.ts +2 -0
  266. package/dist/runtime/components/table/columns/2026-05-28/com.shwfed.table.column.combobox-multi/schema.d.ts +1 -0
  267. package/dist/runtime/components/table/columns/2026-05-28/com.shwfed.table.column.combobox-multi/schema.js +2 -1
  268. package/dist/runtime/components/table/columns/2026-05-28/com.shwfed.table.column.combobox-single/config.d.vue.ts +2 -0
  269. package/dist/runtime/components/table/columns/2026-05-28/com.shwfed.table.column.combobox-single/config.vue +20 -8
  270. package/dist/runtime/components/table/columns/2026-05-28/com.shwfed.table.column.combobox-single/config.vue.d.ts +2 -0
  271. package/dist/runtime/components/table/columns/2026-05-28/com.shwfed.table.column.combobox-single/schema.d.ts +1 -0
  272. package/dist/runtime/components/table/columns/2026-05-28/com.shwfed.table.column.combobox-single/schema.js +2 -1
  273. package/dist/runtime/components/table/columns/2026-05-28/com.shwfed.table.column.tree-combobox-multi/config.d.vue.ts +2 -0
  274. package/dist/runtime/components/table/columns/2026-05-28/com.shwfed.table.column.tree-combobox-multi/config.vue +20 -7
  275. package/dist/runtime/components/table/columns/2026-05-28/com.shwfed.table.column.tree-combobox-multi/config.vue.d.ts +2 -0
  276. package/dist/runtime/components/table/columns/2026-05-28/com.shwfed.table.column.tree-combobox-multi/schema.d.ts +1 -0
  277. package/dist/runtime/components/table/columns/2026-05-28/com.shwfed.table.column.tree-combobox-single/config.d.vue.ts +2 -0
  278. package/dist/runtime/components/table/columns/2026-05-28/com.shwfed.table.column.tree-combobox-single/config.vue +20 -7
  279. package/dist/runtime/components/table/columns/2026-05-28/com.shwfed.table.column.tree-combobox-single/config.vue.d.ts +2 -0
  280. package/dist/runtime/components/table/columns/2026-05-28/com.shwfed.table.column.tree-combobox-single/schema.d.ts +1 -0
  281. package/dist/runtime/components/table/config.d.vue.ts +4 -2
  282. package/dist/runtime/components/table/config.vue +25 -45
  283. package/dist/runtime/components/table/config.vue.d.ts +4 -2
  284. package/dist/runtime/components/table/index.vue +22 -2
  285. package/dist/runtime/components/table/schema.d.ts +4 -2
  286. package/dist/runtime/components/table/schema.js +69 -13
  287. package/dist/runtime/components/table/utils/shared.d.ts +2 -0
  288. package/dist/runtime/components/table/utils/shared.js +12 -4
  289. package/dist/runtime/components/ui/field/FieldError.vue +1 -1
  290. package/dist/runtime/components/ui/field/FieldMessages.d.vue.ts +9 -0
  291. package/dist/runtime/components/ui/field/FieldMessages.vue +21 -0
  292. package/dist/runtime/components/ui/field/FieldMessages.vue.d.ts +9 -0
  293. package/dist/runtime/components/ui/field/FieldWarning.d.vue.ts +20 -0
  294. package/dist/runtime/components/ui/field/FieldWarning.vue +51 -0
  295. package/dist/runtime/components/ui/field/FieldWarning.vue.d.ts +20 -0
  296. package/dist/runtime/components/ui/field/index.d.ts +2 -0
  297. package/dist/runtime/components/ui/field/index.js +10 -4
  298. package/dist/runtime/components/ui/locale/Locale.d.vue.ts +2 -0
  299. package/dist/runtime/components/ui/locale/Locale.vue +165 -155
  300. package/dist/runtime/components/ui/locale/Locale.vue.d.ts +2 -0
  301. package/dist/runtime/share/form-validate.d.ts +18 -0
  302. package/dist/runtime/share/form-validate.js +8 -0
  303. package/package.json +1 -1
  304. package/dist/preview/assets/index-BqOX70Hd.css +0 -1
  305. package/dist/preview/assets/index-D-VR1i8D.js +0 -659
  306. package/dist/preview/assets/index-ihZGlPdX.js +0 -1
  307. package/dist/preview/assets/runtime-Bn8mqeDH.js +0 -1
  308. package/dist/preview/assets/runtime-Cc_Wk3o-.js +0 -1
  309. package/dist/preview/assets/runtime-CttAjIgg.js +0 -1
  310. package/dist/preview/assets/runtime-Cx4f2UTl.js +0 -1
  311. package/dist/preview/assets/runtime-D1dESjXR.js +0 -1
  312. package/dist/preview/assets/runtime-DIEP1Xbh.js +0 -1
  313. package/dist/preview/assets/runtime-DKceWuBx.js +0 -1
  314. package/dist/preview/assets/runtime-Dhid9O5c.js +0 -1
  315. package/dist/preview/assets/runtime-YMiqi6WY.js +0 -1
@@ -5,6 +5,7 @@ import { Button } from "../../../../ui/button";
5
5
  import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger } from "../../../../ui/dropdown-menu";
6
6
  import { ExpressionEditor } from "../../../../ui/expression-editor";
7
7
  import DerivedValueEditor from "../../../DerivedValueEditor.vue";
8
+ import ValidationRulesField from "../../../ValidationRulesField.vue";
8
9
  import { Field, FieldLabel } from "../../../../ui/field";
9
10
  import { InputGroup, InputGroupAddon, InputGroupButton, InputGroupInput, InputGroupNumberField } from "../../../../ui/input-group";
10
11
  import { Locale as LocaleField } from "../../../../ui/locale";
@@ -343,6 +344,26 @@ function setItemTooltip(index, tooltip) {
343
344
  </Field>
344
345
 
345
346
  <div class="grid grid-cols-3 gap-3">
347
+ <Field orientation="vertical">
348
+ <FieldLabel class="text-xs text-zinc-500">
349
+ <template #tooltip>
350
+ <Markdown
351
+ :source="fieldDescription('required') ?? '\u8FD4\u56DE `true` \u65F6\u663E\u793A\u5FC5\u586B\u661F\u53F7\u5E76\u8981\u6C42\u975E\u7A7A'"
352
+ block
353
+ class="prose prose-sm prose-zinc"
354
+ />
355
+ </template>
356
+ {{ fieldTitle("required") }}
357
+ </FieldLabel>
358
+ <ExpressionEditor
359
+ :model-value="value.required ?? ''"
360
+ placeholder="例:form.type == 'company'"
361
+ result-type="bool"
362
+ class="min-h-10"
363
+ @update:model-value="(v) => value = { ...value, required: v.length > 0 ? v : void 0 }"
364
+ />
365
+ </Field>
366
+
346
367
  <Field orientation="vertical">
347
368
  <FieldLabel class="text-xs text-zinc-500">
348
369
  <template #tooltip>
@@ -422,5 +443,22 @@ function setItemTooltip(index, tooltip) {
422
443
  @update:model-value="(v) => value = { ...value, derived: v }"
423
444
  />
424
445
  </Field>
446
+
447
+ <Field orientation="vertical">
448
+ <FieldLabel class="text-xs text-zinc-500">
449
+ <template #tooltip>
450
+ <Markdown
451
+ :source="fieldDescription('validations')"
452
+ block
453
+ class="prose prose-sm prose-zinc"
454
+ />
455
+ </template>
456
+ {{ fieldTitle("validations") }}
457
+ </FieldLabel>
458
+ <ValidationRulesField
459
+ :model-value="value.validations"
460
+ @update:model-value="(v) => value = { ...value, validations: v.length > 0 ? v : void 0 }"
461
+ />
462
+ </Field>
425
463
  </div>
426
464
  </template>
@@ -22,6 +22,7 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
22
22
  readonly locale: "en" | "ja" | "ko";
23
23
  readonly message: string;
24
24
  }[]] | undefined;
25
+ readonly required?: string | undefined;
25
26
  readonly displayName?: string | undefined;
26
27
  readonly compatibilityDate: "2026-05-17";
27
28
  readonly items: readonly {
@@ -54,6 +55,17 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
54
55
  readonly mode: "formula" | "prefill";
55
56
  readonly expression: string;
56
57
  } | undefined;
58
+ readonly validations?: readonly {
59
+ readonly message: readonly [{
60
+ readonly locale: "zh";
61
+ readonly message: string;
62
+ }, ...{
63
+ readonly locale: "en" | "ja" | "ko";
64
+ readonly message: string;
65
+ }[]];
66
+ readonly warning?: boolean | undefined;
67
+ readonly when: string;
68
+ }[] | undefined;
57
69
  }) => any;
58
70
  }, string, import("vue").PublicProps, Readonly<__VLS_ModelProps> & Readonly<{
59
71
  "onUpdate:modelValue"?: ((value: {
@@ -75,6 +87,7 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
75
87
  readonly locale: "en" | "ja" | "ko";
76
88
  readonly message: string;
77
89
  }[]] | undefined;
90
+ readonly required?: string | undefined;
78
91
  readonly displayName?: string | undefined;
79
92
  readonly compatibilityDate: "2026-05-17";
80
93
  readonly items: readonly {
@@ -107,6 +120,17 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
107
120
  readonly mode: "formula" | "prefill";
108
121
  readonly expression: string;
109
122
  } | undefined;
123
+ readonly validations?: readonly {
124
+ readonly message: readonly [{
125
+ readonly locale: "zh";
126
+ readonly message: string;
127
+ }, ...{
128
+ readonly locale: "en" | "ja" | "ko";
129
+ readonly message: string;
130
+ }[]];
131
+ readonly warning?: boolean | undefined;
132
+ readonly when: string;
133
+ }[] | undefined;
110
134
  }) => any) | undefined;
111
135
  }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
112
136
  declare const _default: typeof __VLS_export;
@@ -7,8 +7,9 @@ import { celBindings, injectCELContext } from "../../../../../utils/cel-context"
7
7
  import { interpolateMarkdown } from "../../../../table/utils/runtime";
8
8
  import { getLocalizedText } from "../../../../../share/locale";
9
9
  import { RadioGroup, RadioGroupItem } from "../../../../ui/radio-group";
10
- import { Field, FieldLabel } from "../../../../ui/field";
10
+ import { Field, FieldLabel, FieldMessages } from "../../../../ui/field";
11
11
  import { Markdown } from "../../../../ui/markdown";
12
+ import { useFieldValidation } from "../../../utils/validation";
12
13
  import { useFormReadonly } from "../../../utils/readonly";
13
14
  import { useFormState } from "../../../utils/state";
14
15
  defineOptions({ name: "ShwfedRadioGroupFieldRuntime" });
@@ -40,6 +41,12 @@ function evalBool(expression, label) {
40
41
  return false;
41
42
  }
42
43
  }
44
+ const { isRequired, errors, warnings, visible } = useFieldValidation({
45
+ fieldId: () => props.fieldId,
46
+ config: () => props.config,
47
+ $cel,
48
+ locale: () => locale.value
49
+ });
43
50
  const isDisabled = computed(() => evalBool(props.config.disabled, "disabled"));
44
51
  const formReadonly = useFormReadonly();
45
52
  const isReadonly = computed(
@@ -111,7 +118,11 @@ const readonlyText = computed(() => {
111
118
  class="prose prose-xs prose-zinc"
112
119
  />
113
120
  </template>
114
- {{ labelText }}
121
+ {{ labelText }}<span
122
+ v-if="isRequired"
123
+ aria-hidden="true"
124
+ class="text-red-600"
125
+ > *</span>
115
126
  </FieldLabel>
116
127
  <div
117
128
  v-if="effectiveReadonly"
@@ -155,5 +166,10 @@ const readonlyText = computed(() => {
155
166
  </span>
156
167
  </label>
157
168
  </RadioGroup>
169
+ <FieldMessages
170
+ v-if="visible"
171
+ :errors="errors"
172
+ :warnings="warnings"
173
+ />
158
174
  </Field>
159
175
  </template>
@@ -115,6 +115,24 @@ export declare function schema(configure: (env: Environment) => void): Schema.St
115
115
  id: Schema.refine<string, typeof Schema.String>;
116
116
  displayName: Schema.optional<Schema.SchemaClass<string, string, never>>;
117
117
  hidden: Schema.optional<Schema.Schema<string, string, never>>;
118
+ required: Schema.optional<Schema.Schema<string, string, never>>;
119
+ validations: Schema.optional<Schema.Array$<Schema.Struct<{
120
+ when: Schema.Schema<string, string, never>;
121
+ warning: Schema.optional<Schema.SchemaClass<boolean, boolean, never>>;
122
+ message: Schema.refine<readonly [{
123
+ readonly locale: "zh";
124
+ readonly message: string;
125
+ }, ...{
126
+ readonly locale: "en" | "ja" | "ko";
127
+ readonly message: string;
128
+ }[]], Schema.TupleType<readonly [Schema.Struct<{
129
+ locale: Schema.Literal<["zh"]>;
130
+ message: Schema.SchemaClass<string, string, never>;
131
+ }>], [Schema.Struct<{
132
+ locale: Schema.Literal<["ja", "en", "ko"]>;
133
+ message: Schema.SchemaClass<string, string, never>;
134
+ }>]>>;
135
+ }>>>;
118
136
  type: Schema.Literal<["com.shwfed.form.field.radio.group"]>;
119
137
  compatibilityDate: Schema.Literal<["2026-05-17"]>;
120
138
  }>;
@@ -61,9 +61,21 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
61
61
  readonly locale: "en" | "ja" | "ko";
62
62
  readonly message: string;
63
63
  }[]] | undefined;
64
+ readonly required?: string | undefined;
64
65
  readonly displayName?: string | undefined;
65
66
  readonly compatibilityDate: "2026-05-18";
66
67
  readonly binding?: string | undefined;
68
+ readonly validations?: readonly {
69
+ readonly message: readonly [{
70
+ readonly locale: "zh";
71
+ readonly message: string;
72
+ }, ...{
73
+ readonly locale: "en" | "ja" | "ko";
74
+ readonly message: string;
75
+ }[]];
76
+ readonly warning?: boolean | undefined;
77
+ readonly when: string;
78
+ }[] | undefined;
67
79
  }) => any;
68
80
  }, string, import("vue").PublicProps, Readonly<__VLS_ModelProps> & Readonly<{
69
81
  "onUpdate:modelValue"?: ((value: {
@@ -124,9 +136,21 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
124
136
  readonly locale: "en" | "ja" | "ko";
125
137
  readonly message: string;
126
138
  }[]] | undefined;
139
+ readonly required?: string | undefined;
127
140
  readonly displayName?: string | undefined;
128
141
  readonly compatibilityDate: "2026-05-18";
129
142
  readonly binding?: string | undefined;
143
+ readonly validations?: readonly {
144
+ readonly message: readonly [{
145
+ readonly locale: "zh";
146
+ readonly message: string;
147
+ }, ...{
148
+ readonly locale: "en" | "ja" | "ko";
149
+ readonly message: string;
150
+ }[]];
151
+ readonly warning?: boolean | undefined;
152
+ readonly when: string;
153
+ }[] | undefined;
130
154
  }) => any) | undefined;
131
155
  }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
132
156
  declare const _default: typeof __VLS_export;
@@ -1,6 +1,7 @@
1
1
  <script setup>
2
2
  import { computed, defineAsyncComponent, inject, onBeforeUnmount, onMounted } from "vue";
3
3
  import { ExpressionEditor } from "../../../../ui/expression-editor";
4
+ import ValidationRulesField from "../../../ValidationRulesField.vue";
4
5
  import { Field, FieldLabel } from "../../../../ui/field";
5
6
  import { InputGroup, InputGroupInput } from "../../../../ui/input-group";
6
7
  import { Locale as LocaleField } from "../../../../ui/locale";
@@ -59,7 +60,7 @@ const bindingText = computed({
59
60
  hide-display-name
60
61
  hide-data-source
61
62
  >
62
- <template #general-extra>
63
+ <template #general-grid-extra>
63
64
  <Field orientation="vertical">
64
65
  <FieldLabel class="text-xs text-zinc-500">
65
66
  <template
@@ -82,7 +83,9 @@ const bindingText = computed({
82
83
  />
83
84
  </InputGroup>
84
85
  </Field>
86
+ </template>
85
87
 
88
+ <template #general-extra>
86
89
  <div class="grid grid-cols-2 gap-3">
87
90
  <Field orientation="vertical">
88
91
  <FieldLabel class="text-xs text-zinc-500">
@@ -126,23 +129,62 @@ const bindingText = computed({
126
129
  </Field>
127
130
  </div>
128
131
 
132
+ <div class="grid grid-cols-2 gap-3">
133
+ <Field orientation="vertical">
134
+ <FieldLabel class="text-xs text-zinc-500">
135
+ <template #tooltip>
136
+ <Markdown
137
+ :source="fieldDescription('required') ?? '\u8FD4\u56DE `true` \u65F6\u663E\u793A\u5FC5\u586B\u661F\u53F7\u5E76\u8981\u6C42\u975E\u7A7A'"
138
+ block
139
+ class="prose prose-sm prose-zinc"
140
+ />
141
+ </template>
142
+ {{ fieldTitle("required") }}
143
+ </FieldLabel>
144
+ <ExpressionEditor
145
+ :model-value="value.required ?? ''"
146
+ placeholder="例:form.type == 'company'"
147
+ result-type="bool"
148
+ class="min-h-10"
149
+ @update:model-value="(v) => value = { ...value, required: v.length > 0 ? v : void 0 }"
150
+ />
151
+ </Field>
152
+
153
+ <Field orientation="vertical">
154
+ <FieldLabel class="text-xs text-zinc-500">
155
+ <template #tooltip>
156
+ <Markdown
157
+ :source="fieldDescription('hidden') ?? '\u8FD4\u56DE `true` \u65F6\u5B57\u6BB5\u5728\u6240\u6709\u5E03\u5C40\u4E2D\u90FD\u4E0D\u6E32\u67D3'"
158
+ block
159
+ class="prose prose-sm prose-zinc"
160
+ />
161
+ </template>
162
+ {{ fieldTitle("hidden") }}
163
+ </FieldLabel>
164
+ <ExpressionEditor
165
+ :model-value="value.hidden ?? ''"
166
+ placeholder="例:form.role == 'guest'"
167
+ result-type="bool"
168
+ class="min-h-10"
169
+ @update:model-value="(v) => value = { ...value, hidden: v.length > 0 ? v : void 0 }"
170
+ />
171
+ </Field>
172
+ </div>
173
+
129
174
  <Field orientation="vertical">
130
175
  <FieldLabel class="text-xs text-zinc-500">
131
176
  <template #tooltip>
132
177
  <Markdown
133
- :source="fieldDescription('hidden') ?? '\u8FD4\u56DE `true` \u65F6\u5B57\u6BB5\u5728\u6240\u6709\u5E03\u5C40\u4E2D\u90FD\u4E0D\u6E32\u67D3'"
178
+ :source="fieldDescription('validations')"
134
179
  block
135
180
  class="prose prose-sm prose-zinc"
136
181
  />
137
182
  </template>
138
- {{ fieldTitle("hidden") }}
183
+ {{ fieldTitle("validations") }}
139
184
  </FieldLabel>
140
- <ExpressionEditor
141
- :model-value="value.hidden ?? ''"
142
- placeholder="例:form.role == 'guest'"
143
- result-type="bool"
144
- class="min-h-10"
145
- @update:model-value="(v) => value = { ...value, hidden: v.length > 0 ? v : void 0 }"
185
+ <ValidationRulesField
186
+ :model-value="value.validations"
187
+ @update:model-value="(v) => value = { ...value, validations: v.length > 0 ? v : void 0 }"
146
188
  />
147
189
  </Field>
148
190
  </template>
@@ -61,9 +61,21 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
61
61
  readonly locale: "en" | "ja" | "ko";
62
62
  readonly message: string;
63
63
  }[]] | undefined;
64
+ readonly required?: string | undefined;
64
65
  readonly displayName?: string | undefined;
65
66
  readonly compatibilityDate: "2026-05-18";
66
67
  readonly binding?: string | undefined;
68
+ readonly validations?: readonly {
69
+ readonly message: readonly [{
70
+ readonly locale: "zh";
71
+ readonly message: string;
72
+ }, ...{
73
+ readonly locale: "en" | "ja" | "ko";
74
+ readonly message: string;
75
+ }[]];
76
+ readonly warning?: boolean | undefined;
77
+ readonly when: string;
78
+ }[] | undefined;
67
79
  }) => any;
68
80
  }, string, import("vue").PublicProps, Readonly<__VLS_ModelProps> & Readonly<{
69
81
  "onUpdate:modelValue"?: ((value: {
@@ -124,9 +136,21 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
124
136
  readonly locale: "en" | "ja" | "ko";
125
137
  readonly message: string;
126
138
  }[]] | undefined;
139
+ readonly required?: string | undefined;
127
140
  readonly displayName?: string | undefined;
128
141
  readonly compatibilityDate: "2026-05-18";
129
142
  readonly binding?: string | undefined;
143
+ readonly validations?: readonly {
144
+ readonly message: readonly [{
145
+ readonly locale: "zh";
146
+ readonly message: string;
147
+ }, ...{
148
+ readonly locale: "en" | "ja" | "ko";
149
+ readonly message: string;
150
+ }[]];
151
+ readonly warning?: boolean | undefined;
152
+ readonly when: string;
153
+ }[] | undefined;
130
154
  }) => any) | undefined;
131
155
  }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
132
156
  declare const _default: typeof __VLS_export;
@@ -1,9 +1,12 @@
1
1
  <script setup>
2
2
  import { computed, defineAsyncComponent } from "vue";
3
3
  import { useI18n } from "vue-i18n";
4
+ import { cel as _rawCel } from "../../../../../utils/cel";
5
+ import { celBindings, injectCELContext } from "../../../../../utils/cel-context";
4
6
  import { getLocalizedText } from "../../../../../share/locale";
5
- import { Field, FieldLabel } from "../../../../ui/field";
7
+ import { Field, FieldLabel, FieldMessages } from "../../../../ui/field";
6
8
  import { Markdown } from "../../../../ui/markdown";
9
+ import { useFieldValidation } from "../../../utils/validation";
7
10
  import { useFormState } from "../../../utils/state";
8
11
  defineOptions({ name: "ShwfedTableFieldRuntime" });
9
12
  const ShwfedTable = defineAsyncComponent(() => import("../../../../table/index.vue"));
@@ -13,6 +16,14 @@ const props = defineProps({
13
16
  });
14
17
  const { locale } = useI18n();
15
18
  const formState = useFormState();
19
+ const inherited = injectCELContext();
20
+ const $cel = (expression, context) => _rawCel(expression, { ...celBindings(inherited), ...context });
21
+ const { isRequired, errors, warnings, visible } = useFieldValidation({
22
+ fieldId: () => props.fieldId,
23
+ config: () => props.config,
24
+ $cel,
25
+ locale: () => locale.value
26
+ });
16
27
  const labelText = computed(() => getLocalizedText(props.config.label, locale.value));
17
28
  const tooltipText = computed(
18
29
  () => props.config.tooltip ? getLocalizedText(props.config.tooltip, locale.value) : void 0
@@ -52,12 +63,21 @@ const rowsModel = computed({
52
63
  class="prose prose-xs prose-zinc"
53
64
  />
54
65
  </template>
55
- {{ labelText }}
66
+ {{ labelText }}<span
67
+ v-if="isRequired"
68
+ aria-hidden="true"
69
+ class="text-red-600"
70
+ > *</span>
56
71
  </FieldLabel>
57
72
 
58
73
  <ShwfedTable
59
74
  v-model:rows="rowsModel"
60
75
  :config="tableConfig"
61
76
  />
77
+ <FieldMessages
78
+ v-if="visible"
79
+ :errors="errors"
80
+ :warnings="warnings"
81
+ />
62
82
  </Field>
63
83
  </template>
@@ -107,6 +107,24 @@ export declare function schema(configure: (env: Environment) => void): Schema.St
107
107
  id: Schema.refine<string, typeof Schema.String>;
108
108
  displayName: Schema.optional<Schema.SchemaClass<string, string, never>>;
109
109
  hidden: Schema.optional<Schema.Schema<string, string, never>>;
110
+ required: Schema.optional<Schema.Schema<string, string, never>>;
111
+ validations: Schema.optional<Schema.Array$<Schema.Struct<{
112
+ when: Schema.Schema<string, string, never>;
113
+ warning: Schema.optional<Schema.SchemaClass<boolean, boolean, never>>;
114
+ message: Schema.refine<readonly [{
115
+ readonly locale: "zh";
116
+ readonly message: string;
117
+ }, ...{
118
+ readonly locale: "en" | "ja" | "ko";
119
+ readonly message: string;
120
+ }[]], Schema.TupleType<readonly [Schema.Struct<{
121
+ locale: Schema.Literal<["zh"]>;
122
+ message: Schema.SchemaClass<string, string, never>;
123
+ }>], [Schema.Struct<{
124
+ locale: Schema.Literal<["ja", "en", "ko"]>;
125
+ message: Schema.SchemaClass<string, string, never>;
126
+ }>]>>;
127
+ }>>>;
110
128
  type: Schema.Literal<["com.shwfed.form.field.table"]>;
111
129
  compatibilityDate: Schema.Literal<["2026-05-18"]>;
112
130
  }>;
@@ -10,6 +10,7 @@ import { interpolate } from "../../../../../utils/interpolate";
10
10
  import { InputGroupButton } from "../../../../ui/input-group";
11
11
  import { Markdown } from "../../../../ui/markdown";
12
12
  import FormUnitRenderer from "../../../FormUnitRenderer.vue";
13
+ import { useValidationProvider } from "../../../utils/validation";
13
14
  defineOptions({ name: "ShwfedCollapsibleFieldRuntime" });
14
15
  const props = defineProps({
15
16
  fieldId: { type: String, required: true },
@@ -51,6 +52,21 @@ function isHidden(field) {
51
52
  return false;
52
53
  }
53
54
  }
55
+ const validation = useValidationProvider();
56
+ function collectFieldIds(fields) {
57
+ const ids = [];
58
+ for (const field of fields) {
59
+ ids.push(field.id);
60
+ const unit = field.unit;
61
+ if (unit?.fields) ids.push(...collectFieldIds(unit.fields));
62
+ }
63
+ return ids;
64
+ }
65
+ const childResults = computed(
66
+ () => validation?.revealed.value ? validation.resultsFor(collectFieldIds(props.config.unit.fields)) : []
67
+ );
68
+ const errorCount = computed(() => childResults.value.filter((r) => r.severity === "error").length);
69
+ const warningCount = computed(() => childResults.value.filter((r) => r.severity === "warning").length);
54
70
  </script>
55
71
 
56
72
  <template>
@@ -85,6 +101,16 @@ function isHidden(field) {
85
101
  class="prose prose-sm prose-zinc max-w-none"
86
102
  />
87
103
  </div>
104
+ <span
105
+ v-if="errorCount > 0"
106
+ data-slot="collapsible-error-count"
107
+ class="shrink-0 text-xs text-red-600"
108
+ >{{ errorCount }} 个错误</span>
109
+ <span
110
+ v-else-if="warningCount > 0"
111
+ data-slot="collapsible-warning-count"
112
+ class="shrink-0 text-xs text-amber-600"
113
+ >{{ warningCount }} 个警告</span>
88
114
  </div>
89
115
 
90
116
  <!-- `v-show` (not `v-if`) so children stay mounted while collapsed:
@@ -33,6 +33,7 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
33
33
  readonly locale: "en" | "ja" | "ko";
34
34
  readonly message: string;
35
35
  }[]] | undefined;
36
+ readonly required?: string | undefined;
36
37
  readonly displayName?: string | undefined;
37
38
  readonly compatibilityDate: "2026-05-23";
38
39
  readonly readonly?: string | undefined;
@@ -56,6 +57,17 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
56
57
  }[]];
57
58
  readonly expandAll: boolean;
58
59
  readonly cascade: "independent" | "cascade-down" | "cascade-both";
60
+ readonly validations?: readonly {
61
+ readonly message: readonly [{
62
+ readonly locale: "zh";
63
+ readonly message: string;
64
+ }, ...{
65
+ readonly locale: "en" | "ja" | "ko";
66
+ readonly message: string;
67
+ }[]];
68
+ readonly warning?: boolean | undefined;
69
+ readonly when: string;
70
+ }[] | undefined;
59
71
  readonly nodeTooltip?: readonly [{
60
72
  readonly locale: "zh";
61
73
  readonly message: string;
@@ -96,6 +108,7 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
96
108
  readonly locale: "en" | "ja" | "ko";
97
109
  readonly message: string;
98
110
  }[]] | undefined;
111
+ readonly required?: string | undefined;
99
112
  readonly displayName?: string | undefined;
100
113
  readonly compatibilityDate: "2026-05-23";
101
114
  readonly readonly?: string | undefined;
@@ -119,6 +132,17 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
119
132
  }[]];
120
133
  readonly expandAll: boolean;
121
134
  readonly cascade: "independent" | "cascade-down" | "cascade-both";
135
+ readonly validations?: readonly {
136
+ readonly message: readonly [{
137
+ readonly locale: "zh";
138
+ readonly message: string;
139
+ }, ...{
140
+ readonly locale: "en" | "ja" | "ko";
141
+ readonly message: string;
142
+ }[]];
143
+ readonly warning?: boolean | undefined;
144
+ readonly when: string;
145
+ }[] | undefined;
122
146
  readonly nodeTooltip?: readonly [{
123
147
  readonly locale: "zh";
124
148
  readonly message: string;
@@ -33,6 +33,7 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
33
33
  readonly locale: "en" | "ja" | "ko";
34
34
  readonly message: string;
35
35
  }[]] | undefined;
36
+ readonly required?: string | undefined;
36
37
  readonly displayName?: string | undefined;
37
38
  readonly compatibilityDate: "2026-05-23";
38
39
  readonly readonly?: string | undefined;
@@ -56,6 +57,17 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
56
57
  }[]];
57
58
  readonly expandAll: boolean;
58
59
  readonly cascade: "independent" | "cascade-down" | "cascade-both";
60
+ readonly validations?: readonly {
61
+ readonly message: readonly [{
62
+ readonly locale: "zh";
63
+ readonly message: string;
64
+ }, ...{
65
+ readonly locale: "en" | "ja" | "ko";
66
+ readonly message: string;
67
+ }[]];
68
+ readonly warning?: boolean | undefined;
69
+ readonly when: string;
70
+ }[] | undefined;
59
71
  readonly nodeTooltip?: readonly [{
60
72
  readonly locale: "zh";
61
73
  readonly message: string;
@@ -96,6 +108,7 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
96
108
  readonly locale: "en" | "ja" | "ko";
97
109
  readonly message: string;
98
110
  }[]] | undefined;
111
+ readonly required?: string | undefined;
99
112
  readonly displayName?: string | undefined;
100
113
  readonly compatibilityDate: "2026-05-23";
101
114
  readonly readonly?: string | undefined;
@@ -119,6 +132,17 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
119
132
  }[]];
120
133
  readonly expandAll: boolean;
121
134
  readonly cascade: "independent" | "cascade-down" | "cascade-both";
135
+ readonly validations?: readonly {
136
+ readonly message: readonly [{
137
+ readonly locale: "zh";
138
+ readonly message: string;
139
+ }, ...{
140
+ readonly locale: "en" | "ja" | "ko";
141
+ readonly message: string;
142
+ }[]];
143
+ readonly warning?: boolean | undefined;
144
+ readonly when: string;
145
+ }[] | undefined;
122
146
  readonly nodeTooltip?: readonly [{
123
147
  readonly locale: "zh";
124
148
  readonly message: string;
@@ -92,6 +92,24 @@ export declare function schema(configure: (env: Environment) => void): Schema.St
92
92
  id: Schema.refine<string, typeof Schema.String>;
93
93
  displayName: Schema.optional<Schema.SchemaClass<string, string, never>>;
94
94
  hidden: Schema.optional<Schema.Schema<string, string, never>>;
95
+ required: Schema.optional<Schema.Schema<string, string, never>>;
96
+ validations: Schema.optional<Schema.Array$<Schema.Struct<{
97
+ when: Schema.Schema<string, string, never>;
98
+ warning: Schema.optional<Schema.SchemaClass<boolean, boolean, never>>;
99
+ message: Schema.refine<readonly [{
100
+ readonly locale: "zh";
101
+ readonly message: string;
102
+ }, ...{
103
+ readonly locale: "en" | "ja" | "ko";
104
+ readonly message: string;
105
+ }[]], Schema.TupleType<readonly [Schema.Struct<{
106
+ locale: Schema.Literal<["zh"]>;
107
+ message: Schema.SchemaClass<string, string, never>;
108
+ }>], [Schema.Struct<{
109
+ locale: Schema.Literal<["ja", "en", "ko"]>;
110
+ message: Schema.SchemaClass<string, string, never>;
111
+ }>]>>;
112
+ }>>>;
95
113
  type: Schema.Literal<["com.shwfed.form.field.tree.multi"]>;
96
114
  compatibilityDate: Schema.Literal<["2026-05-23"]>;
97
115
  }>;