@shwfed/config 2.3.29 → 2.4.1
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.
- package/dist/mcp.mjs +47 -9
- package/dist/module.json +1 -1
- package/dist/preview/assets/{config-Diuyh0Ex.js → config-BovRv7Mw.js} +1 -1
- package/dist/preview/assets/{config-rpX_Mc6I.js → config-ByTxMBcK.js} +1 -1
- package/dist/preview/assets/{config-DhsbcNzx.js → config-C7xYpB3N.js} +1 -1
- package/dist/preview/assets/{config-CZOeZ8ty.js → config-CH9wsYX8.js} +1 -1
- package/dist/preview/assets/{config-aK67Rsw5.js → config-Ch5dL5lp.js} +1 -1
- package/dist/preview/assets/{config-Bl80ye-i.js → config-D50Rl2n_.js} +1 -1
- package/dist/preview/assets/{config-BJzUh1_G.js → config-DiwVK32V.js} +1 -1
- package/dist/preview/assets/{config-6IiXCmyu.js → config-EKVeWrbS.js} +1 -1
- package/dist/preview/assets/{config-DaZD4ZSa.js → config-Q86AhjHq.js} +1 -1
- package/dist/preview/assets/{definition.vue_vue_type_script_setup_true_lang-C_jU8d47.js → definition.vue_vue_type_script_setup_true_lang-D8NPPbjZ.js} +1 -1
- package/dist/preview/assets/index-65eB1l4r.css +1 -0
- package/dist/preview/assets/index-CIrlYN0M.js +1 -0
- package/dist/preview/assets/index-DUDlWaQI.js +661 -0
- package/dist/preview/assets/runtime-BP7zXnyG.js +1 -0
- package/dist/preview/assets/runtime-BQSwNpLC.js +1 -0
- package/dist/preview/assets/runtime-BwR_BbTu.js +1 -0
- package/dist/preview/assets/runtime-Ch3JIgUQ.js +1 -0
- package/dist/preview/assets/runtime-CjvZcU7X.js +1 -0
- package/dist/preview/assets/runtime-Cunk4vOs.js +1 -0
- package/dist/preview/assets/runtime-D34aQN00.js +1 -0
- package/dist/preview/assets/runtime-a9TOQRwD.js +1 -0
- package/dist/preview/assets/runtime-aPt-bW3F.js +1 -0
- package/dist/preview/index.html +2 -2
- package/dist/runtime/components/actions/buttons/2026-04-18/com.shwfed.actions.button.http.request.json/runtime.vue +7 -4
- package/dist/runtime/components/actions/buttons/2026-04-18/com.shwfed.actions.button.http.request.json.confirm/runtime.vue +6 -0
- package/dist/runtime/components/config/blocks/2026-05-06/com.shwfed.block.form/config.d.vue.ts +2 -0
- package/dist/runtime/components/config/blocks/2026-05-06/com.shwfed.block.form/config.vue.d.ts +2 -0
- package/dist/runtime/components/config/blocks/2026-05-06/com.shwfed.block.form/runtime.d.vue.ts +2 -0
- package/dist/runtime/components/config/blocks/2026-05-06/com.shwfed.block.form/runtime.vue.d.ts +2 -0
- package/dist/runtime/components/config/blocks/2026-05-06/com.shwfed.block.form/schema.d.ts +2 -0
- package/dist/runtime/components/config/blocks/2026-05-06/com.shwfed.block.table/config.d.vue.ts +2 -0
- package/dist/runtime/components/config/blocks/2026-05-06/com.shwfed.block.table/config.vue.d.ts +2 -0
- package/dist/runtime/components/config/blocks/2026-05-06/com.shwfed.block.table/runtime.d.vue.ts +2 -0
- package/dist/runtime/components/config/blocks/2026-05-06/com.shwfed.block.table/runtime.vue.d.ts +2 -0
- package/dist/runtime/components/config/blocks/2026-05-06/com.shwfed.block.table/schema.d.ts +3 -0
- package/dist/runtime/components/form/ValidationRulesField.d.vue.ts +16 -0
- package/dist/runtime/components/form/ValidationRulesField.vue +207 -0
- package/dist/runtime/components/form/ValidationRulesField.vue.d.ts +16 -0
- package/dist/runtime/components/form/config.vue +32 -0
- package/dist/runtime/components/form/fields/2026-04-22/com.shwfed.form.field.markdown/config.d.vue.ts +24 -0
- package/dist/runtime/components/form/fields/2026-04-22/com.shwfed.form.field.markdown/config.vue.d.ts +24 -0
- package/dist/runtime/components/form/fields/2026-04-22/com.shwfed.form.field.markdown/schema.d.ts +18 -0
- package/dist/runtime/components/form/fields/2026-04-22/com.shwfed.form.field.text/config.d.vue.ts +24 -0
- package/dist/runtime/components/form/fields/2026-04-22/com.shwfed.form.field.text/config.vue +38 -0
- package/dist/runtime/components/form/fields/2026-04-22/com.shwfed.form.field.text/config.vue.d.ts +24 -0
- package/dist/runtime/components/form/fields/2026-04-22/com.shwfed.form.field.text/runtime.vue +18 -2
- package/dist/runtime/components/form/fields/2026-04-22/com.shwfed.form.field.text/schema.d.ts +18 -0
- package/dist/runtime/components/form/fields/2026-04-22/com.shwfed.form.field.textarea/config.d.vue.ts +24 -0
- package/dist/runtime/components/form/fields/2026-04-22/com.shwfed.form.field.textarea/config.vue +38 -0
- package/dist/runtime/components/form/fields/2026-04-22/com.shwfed.form.field.textarea/config.vue.d.ts +24 -0
- package/dist/runtime/components/form/fields/2026-04-22/com.shwfed.form.field.textarea/runtime.vue +18 -2
- package/dist/runtime/components/form/fields/2026-04-22/com.shwfed.form.field.textarea/schema.d.ts +18 -0
- package/dist/runtime/components/form/fields/2026-04-24/com.shwfed.form.field.actions/config.d.vue.ts +24 -0
- package/dist/runtime/components/form/fields/2026-04-24/com.shwfed.form.field.actions/config.vue.d.ts +24 -0
- package/dist/runtime/components/form/fields/2026-04-24/com.shwfed.form.field.actions/schema.d.ts +18 -0
- package/dist/runtime/components/form/fields/2026-04-24/com.shwfed.form.field.combobox.single/config.d.vue.ts +24 -0
- package/dist/runtime/components/form/fields/2026-04-24/com.shwfed.form.field.combobox.single/config.vue.d.ts +24 -0
- package/dist/runtime/components/form/fields/2026-04-24/com.shwfed.form.field.combobox.single/schema.d.ts +18 -0
- package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.date/config.d.vue.ts +24 -0
- package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.date/config.vue +38 -0
- package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.date/config.vue.d.ts +24 -0
- package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.date/runtime.vue +18 -2
- package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.date/schema.d.ts +18 -0
- package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.daterange/config.d.vue.ts +24 -0
- package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.daterange/config.vue +38 -0
- package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.daterange/config.vue.d.ts +24 -0
- package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.daterange/runtime.vue +18 -2
- package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.daterange/schema.d.ts +18 -0
- package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.datetime/config.d.vue.ts +24 -0
- package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.datetime/config.vue +38 -0
- package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.datetime/config.vue.d.ts +24 -0
- package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.datetime/runtime.vue +18 -2
- package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.datetime/schema.d.ts +18 -0
- package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.datetimerange/config.d.vue.ts +24 -0
- package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.datetimerange/config.vue +38 -0
- package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.datetimerange/config.vue.d.ts +24 -0
- package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.datetimerange/runtime.vue +18 -2
- package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.datetimerange/schema.d.ts +18 -0
- package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.time/config.d.vue.ts +24 -0
- package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.time/config.vue +38 -0
- package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.time/config.vue.d.ts +24 -0
- package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.time/runtime.vue +18 -2
- package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.time/schema.d.ts +18 -0
- package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.timerange/config.d.vue.ts +24 -0
- package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.timerange/config.vue +38 -0
- package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.timerange/config.vue.d.ts +24 -0
- package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.timerange/runtime.vue +18 -2
- package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.timerange/schema.d.ts +18 -0
- package/dist/runtime/components/form/fields/2026-04-28/com.shwfed.form.field.number/config.d.vue.ts +24 -0
- package/dist/runtime/components/form/fields/2026-04-28/com.shwfed.form.field.number/config.vue +38 -0
- package/dist/runtime/components/form/fields/2026-04-28/com.shwfed.form.field.number/config.vue.d.ts +24 -0
- package/dist/runtime/components/form/fields/2026-04-28/com.shwfed.form.field.number/runtime.vue +18 -2
- package/dist/runtime/components/form/fields/2026-04-28/com.shwfed.form.field.number/schema.d.ts +18 -0
- package/dist/runtime/components/form/fields/2026-04-28/com.shwfed.form.field.numberrange/config.d.vue.ts +24 -0
- package/dist/runtime/components/form/fields/2026-04-28/com.shwfed.form.field.numberrange/config.vue +38 -0
- package/dist/runtime/components/form/fields/2026-04-28/com.shwfed.form.field.numberrange/config.vue.d.ts +24 -0
- package/dist/runtime/components/form/fields/2026-04-28/com.shwfed.form.field.numberrange/runtime.vue +18 -2
- package/dist/runtime/components/form/fields/2026-04-28/com.shwfed.form.field.numberrange/schema.d.ts +18 -0
- package/dist/runtime/components/form/fields/2026-04-28/com.shwfed.form.field.switch/config.d.vue.ts +24 -0
- package/dist/runtime/components/form/fields/2026-04-28/com.shwfed.form.field.switch/config.vue +38 -0
- package/dist/runtime/components/form/fields/2026-04-28/com.shwfed.form.field.switch/config.vue.d.ts +24 -0
- package/dist/runtime/components/form/fields/2026-04-28/com.shwfed.form.field.switch/runtime.vue +18 -2
- package/dist/runtime/components/form/fields/2026-04-28/com.shwfed.form.field.switch/schema.d.ts +18 -0
- package/dist/runtime/components/form/fields/2026-04-29/com.shwfed.form.field.combobox.single/config.d.vue.ts +24 -0
- package/dist/runtime/components/form/fields/2026-04-29/com.shwfed.form.field.combobox.single/config.vue.d.ts +24 -0
- package/dist/runtime/components/form/fields/2026-04-29/com.shwfed.form.field.combobox.single/schema.d.ts +18 -0
- package/dist/runtime/components/form/fields/2026-05-12/com.shwfed.form.field.upload/config.d.vue.ts +24 -0
- package/dist/runtime/components/form/fields/2026-05-12/com.shwfed.form.field.upload/config.vue +38 -0
- package/dist/runtime/components/form/fields/2026-05-12/com.shwfed.form.field.upload/config.vue.d.ts +24 -0
- package/dist/runtime/components/form/fields/2026-05-12/com.shwfed.form.field.upload/runtime.vue +18 -2
- package/dist/runtime/components/form/fields/2026-05-12/com.shwfed.form.field.upload/schema.d.ts +18 -0
- package/dist/runtime/components/form/fields/2026-05-13/com.shwfed.form.field.combobox.single.remote/config.d.vue.ts +24 -0
- package/dist/runtime/components/form/fields/2026-05-13/com.shwfed.form.field.combobox.single.remote/config.vue +38 -0
- package/dist/runtime/components/form/fields/2026-05-13/com.shwfed.form.field.combobox.single.remote/config.vue.d.ts +24 -0
- package/dist/runtime/components/form/fields/2026-05-13/com.shwfed.form.field.combobox.single.remote/runtime.vue +18 -2
- package/dist/runtime/components/form/fields/2026-05-13/com.shwfed.form.field.combobox.single.remote/schema.d.ts +18 -0
- package/dist/runtime/components/form/fields/2026-05-13/com.shwfed.form.field.list/config.d.vue.ts +24 -0
- package/dist/runtime/components/form/fields/2026-05-13/com.shwfed.form.field.list/config.vue +38 -0
- package/dist/runtime/components/form/fields/2026-05-13/com.shwfed.form.field.list/config.vue.d.ts +24 -0
- package/dist/runtime/components/form/fields/2026-05-13/com.shwfed.form.field.list/runtime.vue +18 -2
- package/dist/runtime/components/form/fields/2026-05-13/com.shwfed.form.field.list/schema.d.ts +30 -0
- package/dist/runtime/components/form/fields/2026-05-17/com.shwfed.form.field.checkbox.group/config.d.vue.ts +24 -0
- package/dist/runtime/components/form/fields/2026-05-17/com.shwfed.form.field.checkbox.group/config.vue +38 -0
- package/dist/runtime/components/form/fields/2026-05-17/com.shwfed.form.field.checkbox.group/config.vue.d.ts +24 -0
- package/dist/runtime/components/form/fields/2026-05-17/com.shwfed.form.field.checkbox.group/runtime.vue +18 -2
- package/dist/runtime/components/form/fields/2026-05-17/com.shwfed.form.field.checkbox.group/schema.d.ts +18 -0
- package/dist/runtime/components/form/fields/2026-05-17/com.shwfed.form.field.radio.group/config.d.vue.ts +24 -0
- package/dist/runtime/components/form/fields/2026-05-17/com.shwfed.form.field.radio.group/config.vue +38 -0
- package/dist/runtime/components/form/fields/2026-05-17/com.shwfed.form.field.radio.group/config.vue.d.ts +24 -0
- package/dist/runtime/components/form/fields/2026-05-17/com.shwfed.form.field.radio.group/runtime.vue +18 -2
- package/dist/runtime/components/form/fields/2026-05-17/com.shwfed.form.field.radio.group/schema.d.ts +18 -0
- package/dist/runtime/components/form/fields/2026-05-18/com.shwfed.form.field.table/config.d.vue.ts +24 -0
- package/dist/runtime/components/form/fields/2026-05-18/com.shwfed.form.field.table/config.vue +51 -9
- package/dist/runtime/components/form/fields/2026-05-18/com.shwfed.form.field.table/config.vue.d.ts +24 -0
- package/dist/runtime/components/form/fields/2026-05-18/com.shwfed.form.field.table/runtime.vue +22 -2
- package/dist/runtime/components/form/fields/2026-05-18/com.shwfed.form.field.table/schema.d.ts +18 -0
- package/dist/runtime/components/form/fields/2026-05-20/com.shwfed.form.field.collapsible/runtime.vue +26 -0
- package/dist/runtime/components/form/fields/2026-05-23/com.shwfed.form.field.tree.multi/config.d.vue.ts +24 -0
- package/dist/runtime/components/form/fields/2026-05-23/com.shwfed.form.field.tree.multi/config.vue.d.ts +24 -0
- package/dist/runtime/components/form/fields/2026-05-23/com.shwfed.form.field.tree.multi/schema.d.ts +18 -0
- package/dist/runtime/components/form/fields/2026-05-24/com.shwfed.form.field.month/config.d.vue.ts +24 -0
- package/dist/runtime/components/form/fields/2026-05-24/com.shwfed.form.field.month/config.vue +38 -0
- package/dist/runtime/components/form/fields/2026-05-24/com.shwfed.form.field.month/config.vue.d.ts +24 -0
- package/dist/runtime/components/form/fields/2026-05-24/com.shwfed.form.field.month/runtime.vue +18 -2
- package/dist/runtime/components/form/fields/2026-05-24/com.shwfed.form.field.month/schema.d.ts +18 -0
- package/dist/runtime/components/form/fields/2026-05-24/com.shwfed.form.field.monthrange/config.d.vue.ts +24 -0
- package/dist/runtime/components/form/fields/2026-05-24/com.shwfed.form.field.monthrange/config.vue +38 -0
- package/dist/runtime/components/form/fields/2026-05-24/com.shwfed.form.field.monthrange/config.vue.d.ts +24 -0
- package/dist/runtime/components/form/fields/2026-05-24/com.shwfed.form.field.monthrange/runtime.vue +18 -2
- package/dist/runtime/components/form/fields/2026-05-24/com.shwfed.form.field.monthrange/schema.d.ts +18 -0
- package/dist/runtime/components/form/fields/2026-05-25/com.shwfed.form.field.combobox.multi/config.d.vue.ts +24 -0
- package/dist/runtime/components/form/fields/2026-05-25/com.shwfed.form.field.combobox.multi/config.vue.d.ts +24 -0
- package/dist/runtime/components/form/fields/2026-05-25/com.shwfed.form.field.combobox.multi/schema.d.ts +18 -0
- package/dist/runtime/components/form/fields/2026-05-26/com.shwfed.form.field.tree.combobox.multi/config.d.vue.ts +24 -0
- package/dist/runtime/components/form/fields/2026-05-26/com.shwfed.form.field.tree.combobox.multi/config.vue.d.ts +24 -0
- package/dist/runtime/components/form/fields/2026-05-26/com.shwfed.form.field.tree.combobox.multi/schema.d.ts +18 -0
- package/dist/runtime/components/form/fields/2026-05-26/com.shwfed.form.field.tree.combobox.single/config.d.vue.ts +24 -0
- package/dist/runtime/components/form/fields/2026-05-26/com.shwfed.form.field.tree.combobox.single/config.vue.d.ts +24 -0
- package/dist/runtime/components/form/fields/2026-05-26/com.shwfed.form.field.tree.combobox.single/schema.d.ts +18 -0
- package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.combobox.multi/config.d.vue.ts +24 -0
- package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.combobox.multi/config.vue +38 -0
- package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.combobox.multi/config.vue.d.ts +24 -0
- package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.combobox.multi/runtime.vue +18 -2
- package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.combobox.multi/schema.d.ts +18 -0
- package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.combobox.single/config.d.vue.ts +24 -0
- package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.combobox.single/config.vue +38 -0
- package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.combobox.single/config.vue.d.ts +24 -0
- package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.combobox.single/runtime.vue +18 -2
- package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.combobox.single/schema.d.ts +18 -0
- package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.tree.combobox.multi/config.d.vue.ts +24 -0
- package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.tree.combobox.multi/config.vue +38 -0
- package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.tree.combobox.multi/config.vue.d.ts +24 -0
- package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.tree.combobox.multi/runtime.vue +18 -2
- package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.tree.combobox.multi/schema.d.ts +18 -0
- package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.tree.combobox.single/config.d.vue.ts +24 -0
- package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.tree.combobox.single/config.vue +38 -0
- package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.tree.combobox.single/config.vue.d.ts +24 -0
- package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.tree.combobox.single/runtime.vue +18 -2
- package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.tree.combobox.single/schema.d.ts +18 -0
- package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.tree.multi/config.d.vue.ts +24 -0
- package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.tree.multi/config.vue +38 -0
- package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.tree.multi/config.vue.d.ts +24 -0
- package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.tree.multi/runtime.vue +18 -2
- package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.tree.multi/schema.d.ts +18 -0
- package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.tree.single/config.d.vue.ts +24 -0
- package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.tree.single/config.vue +38 -0
- package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.tree.single/config.vue.d.ts +24 -0
- package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.tree.single/runtime.vue +18 -2
- package/dist/runtime/components/form/fields/2026-05-28/com.shwfed.form.field.tree.single/schema.d.ts +18 -0
- package/dist/runtime/components/form/index.d.vue.ts +1 -0
- package/dist/runtime/components/form/index.vue +16 -5
- package/dist/runtime/components/form/index.vue.d.ts +1 -0
- package/dist/runtime/components/form/schema.d.ts +4 -0
- package/dist/runtime/components/form/schema.js +6 -2
- package/dist/runtime/components/form/utils/common.d.ts +42 -0
- package/dist/runtime/components/form/utils/common.js +40 -2
- package/dist/runtime/components/form/utils/validation.d.ts +85 -0
- package/dist/runtime/components/form/utils/validation.js +113 -0
- package/dist/runtime/components/table/columns/2026-04-14/com.shwfed.table.column.select/config.vue +0 -22
- package/dist/runtime/components/table/columns/2026-04-14/com.shwfed.table.column.select/header.vue +3 -15
- package/dist/runtime/components/table/columns/2026-04-14/com.shwfed.table.column.select/schema.d.ts +0 -1
- package/dist/runtime/components/table/columns/2026-04-14/com.shwfed.table.column.select/schema.js +0 -4
- package/dist/runtime/components/table/config.d.vue.ts +4 -2
- package/dist/runtime/components/table/config.vue +59 -52
- package/dist/runtime/components/table/config.vue.d.ts +4 -2
- package/dist/runtime/components/table/schema.d.ts +4 -0
- package/dist/runtime/components/table/utils/shared.js +2 -2
- package/dist/runtime/components/ui/field/FieldError.vue +1 -1
- package/dist/runtime/components/ui/field/FieldMessages.d.vue.ts +9 -0
- package/dist/runtime/components/ui/field/FieldMessages.vue +21 -0
- package/dist/runtime/components/ui/field/FieldMessages.vue.d.ts +9 -0
- package/dist/runtime/components/ui/field/FieldWarning.d.vue.ts +20 -0
- package/dist/runtime/components/ui/field/FieldWarning.vue +51 -0
- package/dist/runtime/components/ui/field/FieldWarning.vue.d.ts +20 -0
- package/dist/runtime/components/ui/field/index.d.ts +2 -0
- package/dist/runtime/components/ui/field/index.js +10 -4
- package/dist/runtime/components/ui/locale/Locale.d.vue.ts +2 -0
- package/dist/runtime/components/ui/locale/Locale.vue +165 -155
- package/dist/runtime/components/ui/locale/Locale.vue.d.ts +2 -0
- package/dist/runtime/share/form-validate.d.ts +18 -0
- package/dist/runtime/share/form-validate.js +8 -0
- package/package.json +1 -1
- package/dist/preview/assets/index-2eQR4s3q.css +0 -1
- package/dist/preview/assets/index-DEF3_MKr.js +0 -659
- package/dist/preview/assets/index-Df-thth9.js +0 -1
- package/dist/preview/assets/runtime-3p1K6te5.js +0 -1
- package/dist/preview/assets/runtime-BcLnafic.js +0 -1
- package/dist/preview/assets/runtime-CSaV-359.js +0 -1
- package/dist/preview/assets/runtime-CjR8Vi5N.js +0 -1
- package/dist/preview/assets/runtime-D_fJCKX_.js +0 -1
- package/dist/preview/assets/runtime-DpeCgGEG.js +0 -1
- package/dist/preview/assets/runtime-K2a1x0TJ.js +0 -1
- package/dist/preview/assets/runtime-g9Zu3VNQ.js +0 -1
- package/dist/preview/assets/runtime-jTnh_6Dm.js +0 -1
|
@@ -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-28";
|
|
27
28
|
readonly orientation?: "vertical" | "floating" | undefined;
|
|
@@ -79,6 +80,17 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
|
|
|
79
80
|
readonly keywords?: readonly string[] | undefined;
|
|
80
81
|
}[];
|
|
81
82
|
};
|
|
83
|
+
readonly validations?: readonly {
|
|
84
|
+
readonly message: readonly [{
|
|
85
|
+
readonly locale: "zh";
|
|
86
|
+
readonly message: string;
|
|
87
|
+
}, ...{
|
|
88
|
+
readonly locale: "en" | "ja" | "ko";
|
|
89
|
+
readonly message: string;
|
|
90
|
+
}[]];
|
|
91
|
+
readonly warning?: boolean | undefined;
|
|
92
|
+
readonly when: string;
|
|
93
|
+
}[] | undefined;
|
|
82
94
|
}) => any;
|
|
83
95
|
}, string, import("vue").PublicProps, Readonly<__VLS_ModelProps> & Readonly<{
|
|
84
96
|
"onUpdate:modelValue"?: ((value: {
|
|
@@ -100,6 +112,7 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
|
|
|
100
112
|
readonly locale: "en" | "ja" | "ko";
|
|
101
113
|
readonly message: string;
|
|
102
114
|
}[]] | undefined;
|
|
115
|
+
readonly required?: string | undefined;
|
|
103
116
|
readonly displayName?: string | undefined;
|
|
104
117
|
readonly compatibilityDate: "2026-05-28";
|
|
105
118
|
readonly orientation?: "vertical" | "floating" | undefined;
|
|
@@ -157,6 +170,17 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
|
|
|
157
170
|
readonly keywords?: readonly string[] | undefined;
|
|
158
171
|
}[];
|
|
159
172
|
};
|
|
173
|
+
readonly validations?: readonly {
|
|
174
|
+
readonly message: readonly [{
|
|
175
|
+
readonly locale: "zh";
|
|
176
|
+
readonly message: string;
|
|
177
|
+
}, ...{
|
|
178
|
+
readonly locale: "en" | "ja" | "ko";
|
|
179
|
+
readonly message: string;
|
|
180
|
+
}[]];
|
|
181
|
+
readonly warning?: boolean | undefined;
|
|
182
|
+
readonly when: string;
|
|
183
|
+
}[] | undefined;
|
|
160
184
|
}) => any) | undefined;
|
|
161
185
|
}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
162
186
|
declare const _default: typeof __VLS_export;
|
|
@@ -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";
|
|
@@ -662,6 +663,26 @@ function setItemKeywords(index, text) {
|
|
|
662
663
|
</Field>
|
|
663
664
|
|
|
664
665
|
<div class="grid grid-cols-3 gap-3">
|
|
666
|
+
<Field orientation="vertical">
|
|
667
|
+
<FieldLabel class="text-xs text-zinc-500">
|
|
668
|
+
<template #tooltip>
|
|
669
|
+
<Markdown
|
|
670
|
+
:source="fieldDescription('required') ?? '\u8FD4\u56DE `true` \u65F6\u663E\u793A\u5FC5\u586B\u661F\u53F7\u5E76\u8981\u6C42\u975E\u7A7A'"
|
|
671
|
+
block
|
|
672
|
+
class="prose prose-sm prose-zinc"
|
|
673
|
+
/>
|
|
674
|
+
</template>
|
|
675
|
+
{{ fieldTitle("required") }}
|
|
676
|
+
</FieldLabel>
|
|
677
|
+
<ExpressionEditor
|
|
678
|
+
:model-value="value.required ?? ''"
|
|
679
|
+
placeholder="例:form.type == 'company'"
|
|
680
|
+
result-type="bool"
|
|
681
|
+
class="min-h-10"
|
|
682
|
+
@update:model-value="(v) => value = { ...value, required: v.length > 0 ? v : void 0 }"
|
|
683
|
+
/>
|
|
684
|
+
</Field>
|
|
685
|
+
|
|
665
686
|
<Field orientation="vertical">
|
|
666
687
|
<FieldLabel class="text-xs text-zinc-500">
|
|
667
688
|
<template #tooltip>
|
|
@@ -741,5 +762,22 @@ function setItemKeywords(index, text) {
|
|
|
741
762
|
@update:model-value="(v) => value = { ...value, derived: v }"
|
|
742
763
|
/>
|
|
743
764
|
</Field>
|
|
765
|
+
|
|
766
|
+
<Field orientation="vertical">
|
|
767
|
+
<FieldLabel class="text-xs text-zinc-500">
|
|
768
|
+
<template #tooltip>
|
|
769
|
+
<Markdown
|
|
770
|
+
:source="fieldDescription('validations')"
|
|
771
|
+
block
|
|
772
|
+
class="prose prose-sm prose-zinc"
|
|
773
|
+
/>
|
|
774
|
+
</template>
|
|
775
|
+
{{ fieldTitle("validations") }}
|
|
776
|
+
</FieldLabel>
|
|
777
|
+
<ValidationRulesField
|
|
778
|
+
:model-value="value.validations"
|
|
779
|
+
@update:model-value="(v) => value = { ...value, validations: v.length > 0 ? v : void 0 }"
|
|
780
|
+
/>
|
|
781
|
+
</Field>
|
|
744
782
|
</div>
|
|
745
783
|
</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-28";
|
|
27
28
|
readonly orientation?: "vertical" | "floating" | undefined;
|
|
@@ -79,6 +80,17 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
|
|
|
79
80
|
readonly keywords?: readonly string[] | undefined;
|
|
80
81
|
}[];
|
|
81
82
|
};
|
|
83
|
+
readonly validations?: readonly {
|
|
84
|
+
readonly message: readonly [{
|
|
85
|
+
readonly locale: "zh";
|
|
86
|
+
readonly message: string;
|
|
87
|
+
}, ...{
|
|
88
|
+
readonly locale: "en" | "ja" | "ko";
|
|
89
|
+
readonly message: string;
|
|
90
|
+
}[]];
|
|
91
|
+
readonly warning?: boolean | undefined;
|
|
92
|
+
readonly when: string;
|
|
93
|
+
}[] | undefined;
|
|
82
94
|
}) => any;
|
|
83
95
|
}, string, import("vue").PublicProps, Readonly<__VLS_ModelProps> & Readonly<{
|
|
84
96
|
"onUpdate:modelValue"?: ((value: {
|
|
@@ -100,6 +112,7 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
|
|
|
100
112
|
readonly locale: "en" | "ja" | "ko";
|
|
101
113
|
readonly message: string;
|
|
102
114
|
}[]] | undefined;
|
|
115
|
+
readonly required?: string | undefined;
|
|
103
116
|
readonly displayName?: string | undefined;
|
|
104
117
|
readonly compatibilityDate: "2026-05-28";
|
|
105
118
|
readonly orientation?: "vertical" | "floating" | undefined;
|
|
@@ -157,6 +170,17 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
|
|
|
157
170
|
readonly keywords?: readonly string[] | undefined;
|
|
158
171
|
}[];
|
|
159
172
|
};
|
|
173
|
+
readonly validations?: readonly {
|
|
174
|
+
readonly message: readonly [{
|
|
175
|
+
readonly locale: "zh";
|
|
176
|
+
readonly message: string;
|
|
177
|
+
}, ...{
|
|
178
|
+
readonly locale: "en" | "ja" | "ko";
|
|
179
|
+
readonly message: string;
|
|
180
|
+
}[]];
|
|
181
|
+
readonly warning?: boolean | undefined;
|
|
182
|
+
readonly when: string;
|
|
183
|
+
}[] | undefined;
|
|
160
184
|
}) => any) | undefined;
|
|
161
185
|
}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
162
186
|
declare const _default: typeof __VLS_export;
|
|
@@ -17,13 +17,14 @@ import {
|
|
|
17
17
|
CommandItem,
|
|
18
18
|
CommandList
|
|
19
19
|
} from "../../../../ui/command";
|
|
20
|
-
import { Field, FieldLabel } from "../../../../ui/field";
|
|
20
|
+
import { Field, FieldLabel, FieldMessages } from "../../../../ui/field";
|
|
21
21
|
import { InputGroup, InputGroupAddon, InputGroupButton, InputGroupInput } from "../../../../ui/input-group";
|
|
22
22
|
import { Markdown } from "../../../../ui/markdown";
|
|
23
23
|
import { Popover, PopoverAnchor, PopoverContent, PopoverTrigger } from "../../../../ui/popover";
|
|
24
24
|
import { DEFAULT_FIELD_ORIENTATION } from "../../../utils/common";
|
|
25
25
|
import { useFormReadonly } from "../../../utils/readonly";
|
|
26
26
|
import { useFormState } from "../../../utils/state";
|
|
27
|
+
import { useFieldValidation } from "../../../utils/validation";
|
|
27
28
|
defineOptions({ name: "ShwfedComboboxSingleFieldRuntime" });
|
|
28
29
|
const props = defineProps({
|
|
29
30
|
fieldId: { type: String, required: true },
|
|
@@ -77,6 +78,12 @@ const isReadonly = computed(
|
|
|
77
78
|
() => props.config.readonly != null ? evalBool(props.config.readonly, "readonly") : formReadonly.value
|
|
78
79
|
);
|
|
79
80
|
const effectiveReadonly = computed(() => isReadonly.value || props.config.derived?.mode === "formula");
|
|
81
|
+
const { isRequired, errors, warnings, visible } = useFieldValidation({
|
|
82
|
+
fieldId: () => props.fieldId,
|
|
83
|
+
config: () => props.config,
|
|
84
|
+
$cel,
|
|
85
|
+
locale: () => locale.value
|
|
86
|
+
});
|
|
80
87
|
const isStatic = computed(() => props.config.options.kind === "static");
|
|
81
88
|
function safeInterpolate(tpl, ctx) {
|
|
82
89
|
try {
|
|
@@ -287,7 +294,11 @@ const anyHasTooltip = computed(
|
|
|
287
294
|
class="prose prose-xs prose-zinc"
|
|
288
295
|
/>
|
|
289
296
|
</template>
|
|
290
|
-
{{ labelText }}
|
|
297
|
+
{{ labelText }}<span
|
|
298
|
+
v-if="isRequired"
|
|
299
|
+
aria-hidden="true"
|
|
300
|
+
class="text-red-600"
|
|
301
|
+
> *</span>
|
|
291
302
|
</FieldLabel>
|
|
292
303
|
<div
|
|
293
304
|
v-if="effectiveReadonly"
|
|
@@ -398,5 +409,10 @@ const anyHasTooltip = computed(
|
|
|
398
409
|
</Command>
|
|
399
410
|
</PopoverContent>
|
|
400
411
|
</Popover>
|
|
412
|
+
<FieldMessages
|
|
413
|
+
v-if="visible"
|
|
414
|
+
:errors="errors"
|
|
415
|
+
:warnings="warnings"
|
|
416
|
+
/>
|
|
401
417
|
</Field>
|
|
402
418
|
</template>
|
|
@@ -255,6 +255,24 @@ export declare function schema(configure: (env: Environment) => void): Schema.St
|
|
|
255
255
|
id: Schema.refine<string, typeof Schema.String>;
|
|
256
256
|
displayName: Schema.optional<Schema.SchemaClass<string, string, never>>;
|
|
257
257
|
hidden: Schema.optional<Schema.Schema<string, string, never>>;
|
|
258
|
+
required: Schema.optional<Schema.Schema<string, string, never>>;
|
|
259
|
+
validations: Schema.optional<Schema.Array$<Schema.Struct<{
|
|
260
|
+
when: Schema.Schema<string, string, never>;
|
|
261
|
+
warning: Schema.optional<Schema.SchemaClass<boolean, boolean, never>>;
|
|
262
|
+
message: Schema.refine<readonly [{
|
|
263
|
+
readonly locale: "zh";
|
|
264
|
+
readonly message: string;
|
|
265
|
+
}, ...{
|
|
266
|
+
readonly locale: "en" | "ja" | "ko";
|
|
267
|
+
readonly message: string;
|
|
268
|
+
}[]], Schema.TupleType<readonly [Schema.Struct<{
|
|
269
|
+
locale: Schema.Literal<["zh"]>;
|
|
270
|
+
message: Schema.SchemaClass<string, string, never>;
|
|
271
|
+
}>], [Schema.Struct<{
|
|
272
|
+
locale: Schema.Literal<["ja", "en", "ko"]>;
|
|
273
|
+
message: Schema.SchemaClass<string, string, never>;
|
|
274
|
+
}>]>>;
|
|
275
|
+
}>>>;
|
|
258
276
|
type: Schema.Literal<["com.shwfed.form.field.combobox.single"]>;
|
|
259
277
|
compatibilityDate: Schema.Literal<["2026-05-28"]>;
|
|
260
278
|
}>;
|
|
@@ -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-28";
|
|
27
28
|
readonly orientation?: "vertical" | "floating" | undefined;
|
|
@@ -54,6 +55,17 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
|
|
|
54
55
|
}[]];
|
|
55
56
|
readonly expandAll: boolean;
|
|
56
57
|
readonly cascade: "independent" | "cascade-down" | "cascade-both";
|
|
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
|
readonly nodeTooltip?: readonly [{
|
|
58
70
|
readonly locale: "zh";
|
|
59
71
|
readonly message: string;
|
|
@@ -83,6 +95,7 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
|
|
|
83
95
|
readonly locale: "en" | "ja" | "ko";
|
|
84
96
|
readonly message: string;
|
|
85
97
|
}[]] | undefined;
|
|
98
|
+
readonly required?: string | undefined;
|
|
86
99
|
readonly displayName?: string | undefined;
|
|
87
100
|
readonly compatibilityDate: "2026-05-28";
|
|
88
101
|
readonly orientation?: "vertical" | "floating" | undefined;
|
|
@@ -115,6 +128,17 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
|
|
|
115
128
|
}[]];
|
|
116
129
|
readonly expandAll: boolean;
|
|
117
130
|
readonly cascade: "independent" | "cascade-down" | "cascade-both";
|
|
131
|
+
readonly validations?: readonly {
|
|
132
|
+
readonly message: readonly [{
|
|
133
|
+
readonly locale: "zh";
|
|
134
|
+
readonly message: string;
|
|
135
|
+
}, ...{
|
|
136
|
+
readonly locale: "en" | "ja" | "ko";
|
|
137
|
+
readonly message: string;
|
|
138
|
+
}[]];
|
|
139
|
+
readonly warning?: boolean | undefined;
|
|
140
|
+
readonly when: string;
|
|
141
|
+
}[] | undefined;
|
|
118
142
|
readonly nodeTooltip?: readonly [{
|
|
119
143
|
readonly locale: "zh";
|
|
120
144
|
readonly message: string;
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
import { computed, ref, watch } from "vue";
|
|
3
3
|
import { ExpressionEditor } from "../../../../ui/expression-editor";
|
|
4
4
|
import DerivedValueEditor from "../../../DerivedValueEditor.vue";
|
|
5
|
+
import ValidationRulesField from "../../../ValidationRulesField.vue";
|
|
5
6
|
import { Field, FieldLabel } from "../../../../ui/field";
|
|
6
7
|
import { InputGroup, InputGroupInput } from "../../../../ui/input-group";
|
|
7
8
|
import { Locale as LocaleField } from "../../../../ui/locale";
|
|
@@ -535,6 +536,26 @@ function setOptionalExpression(key, next) {
|
|
|
535
536
|
|
|
536
537
|
<!-- 通用: 隐藏 / 禁用 / 只读 + 派生值 -->
|
|
537
538
|
<div class="grid grid-cols-3 gap-3">
|
|
539
|
+
<Field orientation="vertical">
|
|
540
|
+
<FieldLabel class="text-xs text-zinc-500">
|
|
541
|
+
<template #tooltip>
|
|
542
|
+
<Markdown
|
|
543
|
+
:source="fieldDescription('required') ?? '\u8FD4\u56DE `true` \u65F6\u663E\u793A\u5FC5\u586B\u661F\u53F7\u5E76\u8981\u6C42\u975E\u7A7A'"
|
|
544
|
+
block
|
|
545
|
+
class="prose prose-sm prose-zinc"
|
|
546
|
+
/>
|
|
547
|
+
</template>
|
|
548
|
+
{{ fieldTitle("required") }}
|
|
549
|
+
</FieldLabel>
|
|
550
|
+
<ExpressionEditor
|
|
551
|
+
:model-value="value.required ?? ''"
|
|
552
|
+
placeholder="例:form.type == 'company'"
|
|
553
|
+
result-type="bool"
|
|
554
|
+
class="min-h-10"
|
|
555
|
+
@update:model-value="(v) => value = { ...value, required: v.length > 0 ? v : void 0 }"
|
|
556
|
+
/>
|
|
557
|
+
</Field>
|
|
558
|
+
|
|
538
559
|
<Field orientation="vertical">
|
|
539
560
|
<FieldLabel class="text-xs text-zinc-500">
|
|
540
561
|
<template #tooltip>
|
|
@@ -614,5 +635,22 @@ function setOptionalExpression(key, next) {
|
|
|
614
635
|
@update:model-value="(v) => value = { ...value, derived: v }"
|
|
615
636
|
/>
|
|
616
637
|
</Field>
|
|
638
|
+
|
|
639
|
+
<Field orientation="vertical">
|
|
640
|
+
<FieldLabel class="text-xs text-zinc-500">
|
|
641
|
+
<template #tooltip>
|
|
642
|
+
<Markdown
|
|
643
|
+
:source="fieldDescription('validations')"
|
|
644
|
+
block
|
|
645
|
+
class="prose prose-sm prose-zinc"
|
|
646
|
+
/>
|
|
647
|
+
</template>
|
|
648
|
+
{{ fieldTitle("validations") }}
|
|
649
|
+
</FieldLabel>
|
|
650
|
+
<ValidationRulesField
|
|
651
|
+
:model-value="value.validations"
|
|
652
|
+
@update:model-value="(v) => value = { ...value, validations: v.length > 0 ? v : void 0 }"
|
|
653
|
+
/>
|
|
654
|
+
</Field>
|
|
617
655
|
</div>
|
|
618
656
|
</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-28";
|
|
27
28
|
readonly orientation?: "vertical" | "floating" | undefined;
|
|
@@ -54,6 +55,17 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
|
|
|
54
55
|
}[]];
|
|
55
56
|
readonly expandAll: boolean;
|
|
56
57
|
readonly cascade: "independent" | "cascade-down" | "cascade-both";
|
|
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
|
readonly nodeTooltip?: readonly [{
|
|
58
70
|
readonly locale: "zh";
|
|
59
71
|
readonly message: string;
|
|
@@ -83,6 +95,7 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
|
|
|
83
95
|
readonly locale: "en" | "ja" | "ko";
|
|
84
96
|
readonly message: string;
|
|
85
97
|
}[]] | undefined;
|
|
98
|
+
readonly required?: string | undefined;
|
|
86
99
|
readonly displayName?: string | undefined;
|
|
87
100
|
readonly compatibilityDate: "2026-05-28";
|
|
88
101
|
readonly orientation?: "vertical" | "floating" | undefined;
|
|
@@ -115,6 +128,17 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
|
|
|
115
128
|
}[]];
|
|
116
129
|
readonly expandAll: boolean;
|
|
117
130
|
readonly cascade: "independent" | "cascade-down" | "cascade-both";
|
|
131
|
+
readonly validations?: readonly {
|
|
132
|
+
readonly message: readonly [{
|
|
133
|
+
readonly locale: "zh";
|
|
134
|
+
readonly message: string;
|
|
135
|
+
}, ...{
|
|
136
|
+
readonly locale: "en" | "ja" | "ko";
|
|
137
|
+
readonly message: string;
|
|
138
|
+
}[]];
|
|
139
|
+
readonly warning?: boolean | undefined;
|
|
140
|
+
readonly when: string;
|
|
141
|
+
}[] | undefined;
|
|
118
142
|
readonly nodeTooltip?: readonly [{
|
|
119
143
|
readonly locale: "zh";
|
|
120
144
|
readonly message: string;
|
|
@@ -7,7 +7,7 @@ import { useI18n } from "vue-i18n";
|
|
|
7
7
|
import { cel as _rawCel } from "../../../../../utils/cel";
|
|
8
8
|
import { celBindings, injectCELContext } from "../../../../../utils/cel-context";
|
|
9
9
|
import { getLocalizedText } from "../../../../../share/locale";
|
|
10
|
-
import { Field, FieldLabel } from "../../../../ui/field";
|
|
10
|
+
import { Field, FieldLabel, FieldMessages } from "../../../../ui/field";
|
|
11
11
|
import { InputGroup, InputGroupAddon, InputGroupButton, InputGroupInput } from "../../../../ui/input-group";
|
|
12
12
|
import { Markdown } from "../../../../ui/markdown";
|
|
13
13
|
import { Popover, PopoverAnchor, PopoverContent, PopoverTrigger } from "../../../../ui/popover";
|
|
@@ -17,6 +17,7 @@ import { interpolateMarkdown } from "../../../../table/utils/runtime";
|
|
|
17
17
|
import { DEFAULT_FIELD_ORIENTATION } from "../../../utils/common";
|
|
18
18
|
import { useFormReadonly } from "../../../utils/readonly";
|
|
19
19
|
import { useFormState } from "../../../utils/state";
|
|
20
|
+
import { useFieldValidation } from "../../../utils/validation";
|
|
20
21
|
import {
|
|
21
22
|
findWrappedPath,
|
|
22
23
|
getWrappedChildren,
|
|
@@ -84,6 +85,12 @@ const isReadonly = computed(
|
|
|
84
85
|
() => props.config.readonly != null ? evalBool(props.config.readonly, "readonly") : formReadonly.value
|
|
85
86
|
);
|
|
86
87
|
const effectiveReadonly = computed(() => isReadonly.value || props.config.derived?.mode === "formula");
|
|
88
|
+
const { isRequired, errors, warnings, visible } = useFieldValidation({
|
|
89
|
+
fieldId: () => props.fieldId,
|
|
90
|
+
config: () => props.config,
|
|
91
|
+
$cel,
|
|
92
|
+
locale: () => locale.value
|
|
93
|
+
});
|
|
87
94
|
const uncontrolled = ref([]);
|
|
88
95
|
const model = computed({
|
|
89
96
|
get: () => {
|
|
@@ -334,7 +341,11 @@ const hoveredTooltip = computed(() => {
|
|
|
334
341
|
class="prose prose-xs prose-zinc"
|
|
335
342
|
/>
|
|
336
343
|
</template>
|
|
337
|
-
{{ labelText }}
|
|
344
|
+
{{ labelText }}<span
|
|
345
|
+
v-if="isRequired"
|
|
346
|
+
aria-hidden="true"
|
|
347
|
+
class="text-red-600"
|
|
348
|
+
> *</span>
|
|
338
349
|
</FieldLabel>
|
|
339
350
|
|
|
340
351
|
<div
|
|
@@ -497,5 +508,10 @@ const hoveredTooltip = computed(() => {
|
|
|
497
508
|
</div>
|
|
498
509
|
</PopoverContent>
|
|
499
510
|
</Popover>
|
|
511
|
+
<FieldMessages
|
|
512
|
+
v-if="visible"
|
|
513
|
+
:errors="errors"
|
|
514
|
+
:warnings="warnings"
|
|
515
|
+
/>
|
|
500
516
|
</Field>
|
|
501
517
|
</template>
|
|
@@ -90,6 +90,24 @@ export declare function schema(configure: (env: Environment) => void): Schema.St
|
|
|
90
90
|
id: Schema.refine<string, typeof Schema.String>;
|
|
91
91
|
displayName: Schema.optional<Schema.SchemaClass<string, string, never>>;
|
|
92
92
|
hidden: Schema.optional<Schema.Schema<string, string, never>>;
|
|
93
|
+
required: Schema.optional<Schema.Schema<string, string, never>>;
|
|
94
|
+
validations: Schema.optional<Schema.Array$<Schema.Struct<{
|
|
95
|
+
when: Schema.Schema<string, string, never>;
|
|
96
|
+
warning: Schema.optional<Schema.SchemaClass<boolean, boolean, never>>;
|
|
97
|
+
message: Schema.refine<readonly [{
|
|
98
|
+
readonly locale: "zh";
|
|
99
|
+
readonly message: string;
|
|
100
|
+
}, ...{
|
|
101
|
+
readonly locale: "en" | "ja" | "ko";
|
|
102
|
+
readonly message: string;
|
|
103
|
+
}[]], Schema.TupleType<readonly [Schema.Struct<{
|
|
104
|
+
locale: Schema.Literal<["zh"]>;
|
|
105
|
+
message: Schema.SchemaClass<string, string, never>;
|
|
106
|
+
}>], [Schema.Struct<{
|
|
107
|
+
locale: Schema.Literal<["ja", "en", "ko"]>;
|
|
108
|
+
message: Schema.SchemaClass<string, string, never>;
|
|
109
|
+
}>]>>;
|
|
110
|
+
}>>>;
|
|
93
111
|
type: Schema.Literal<["com.shwfed.form.field.tree.combobox.multi"]>;
|
|
94
112
|
compatibilityDate: Schema.Literal<["2026-05-28"]>;
|
|
95
113
|
}>;
|
|
@@ -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-28";
|
|
27
28
|
readonly orientation?: "vertical" | "floating" | undefined;
|
|
@@ -53,6 +54,17 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
|
|
|
53
54
|
readonly message: string;
|
|
54
55
|
}[]];
|
|
55
56
|
readonly expandAll: boolean;
|
|
57
|
+
readonly validations?: readonly {
|
|
58
|
+
readonly message: readonly [{
|
|
59
|
+
readonly locale: "zh";
|
|
60
|
+
readonly message: string;
|
|
61
|
+
}, ...{
|
|
62
|
+
readonly locale: "en" | "ja" | "ko";
|
|
63
|
+
readonly message: string;
|
|
64
|
+
}[]];
|
|
65
|
+
readonly warning?: boolean | undefined;
|
|
66
|
+
readonly when: string;
|
|
67
|
+
}[] | undefined;
|
|
56
68
|
readonly nodeTooltip?: readonly [{
|
|
57
69
|
readonly locale: "zh";
|
|
58
70
|
readonly message: string;
|
|
@@ -82,6 +94,7 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
|
|
|
82
94
|
readonly locale: "en" | "ja" | "ko";
|
|
83
95
|
readonly message: string;
|
|
84
96
|
}[]] | undefined;
|
|
97
|
+
readonly required?: string | undefined;
|
|
85
98
|
readonly displayName?: string | undefined;
|
|
86
99
|
readonly compatibilityDate: "2026-05-28";
|
|
87
100
|
readonly orientation?: "vertical" | "floating" | undefined;
|
|
@@ -113,6 +126,17 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
|
|
|
113
126
|
readonly message: string;
|
|
114
127
|
}[]];
|
|
115
128
|
readonly expandAll: boolean;
|
|
129
|
+
readonly validations?: readonly {
|
|
130
|
+
readonly message: readonly [{
|
|
131
|
+
readonly locale: "zh";
|
|
132
|
+
readonly message: string;
|
|
133
|
+
}, ...{
|
|
134
|
+
readonly locale: "en" | "ja" | "ko";
|
|
135
|
+
readonly message: string;
|
|
136
|
+
}[]];
|
|
137
|
+
readonly warning?: boolean | undefined;
|
|
138
|
+
readonly when: string;
|
|
139
|
+
}[] | undefined;
|
|
116
140
|
readonly nodeTooltip?: readonly [{
|
|
117
141
|
readonly locale: "zh";
|
|
118
142
|
readonly message: string;
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
import { computed } from "vue";
|
|
3
3
|
import { ExpressionEditor } from "../../../../ui/expression-editor";
|
|
4
4
|
import DerivedValueEditor from "../../../DerivedValueEditor.vue";
|
|
5
|
+
import ValidationRulesField from "../../../ValidationRulesField.vue";
|
|
5
6
|
import { Field, FieldLabel } from "../../../../ui/field";
|
|
6
7
|
import { InputGroup, InputGroupInput } from "../../../../ui/input-group";
|
|
7
8
|
import { Locale as LocaleField } from "../../../../ui/locale";
|
|
@@ -467,6 +468,26 @@ function setOptionalExpression(key, next) {
|
|
|
467
468
|
|
|
468
469
|
<!-- 通用: 隐藏 / 禁用 / 只读 + 派生值 -->
|
|
469
470
|
<div class="grid grid-cols-3 gap-3">
|
|
471
|
+
<Field orientation="vertical">
|
|
472
|
+
<FieldLabel class="text-xs text-zinc-500">
|
|
473
|
+
<template #tooltip>
|
|
474
|
+
<Markdown
|
|
475
|
+
:source="fieldDescription('required') ?? '\u8FD4\u56DE `true` \u65F6\u663E\u793A\u5FC5\u586B\u661F\u53F7\u5E76\u8981\u6C42\u975E\u7A7A'"
|
|
476
|
+
block
|
|
477
|
+
class="prose prose-sm prose-zinc"
|
|
478
|
+
/>
|
|
479
|
+
</template>
|
|
480
|
+
{{ fieldTitle("required") }}
|
|
481
|
+
</FieldLabel>
|
|
482
|
+
<ExpressionEditor
|
|
483
|
+
:model-value="value.required ?? ''"
|
|
484
|
+
placeholder="例:form.type == 'company'"
|
|
485
|
+
result-type="bool"
|
|
486
|
+
class="min-h-10"
|
|
487
|
+
@update:model-value="(v) => value = { ...value, required: v.length > 0 ? v : void 0 }"
|
|
488
|
+
/>
|
|
489
|
+
</Field>
|
|
490
|
+
|
|
470
491
|
<Field orientation="vertical">
|
|
471
492
|
<FieldLabel class="text-xs text-zinc-500">
|
|
472
493
|
<template #tooltip>
|
|
@@ -546,5 +567,22 @@ function setOptionalExpression(key, next) {
|
|
|
546
567
|
@update:model-value="(v) => value = { ...value, derived: v }"
|
|
547
568
|
/>
|
|
548
569
|
</Field>
|
|
570
|
+
|
|
571
|
+
<Field orientation="vertical">
|
|
572
|
+
<FieldLabel class="text-xs text-zinc-500">
|
|
573
|
+
<template #tooltip>
|
|
574
|
+
<Markdown
|
|
575
|
+
:source="fieldDescription('validations')"
|
|
576
|
+
block
|
|
577
|
+
class="prose prose-sm prose-zinc"
|
|
578
|
+
/>
|
|
579
|
+
</template>
|
|
580
|
+
{{ fieldTitle("validations") }}
|
|
581
|
+
</FieldLabel>
|
|
582
|
+
<ValidationRulesField
|
|
583
|
+
:model-value="value.validations"
|
|
584
|
+
@update:model-value="(v) => value = { ...value, validations: v.length > 0 ? v : void 0 }"
|
|
585
|
+
/>
|
|
586
|
+
</Field>
|
|
549
587
|
</div>
|
|
550
588
|
</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-28";
|
|
27
28
|
readonly orientation?: "vertical" | "floating" | undefined;
|
|
@@ -53,6 +54,17 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
|
|
|
53
54
|
readonly message: string;
|
|
54
55
|
}[]];
|
|
55
56
|
readonly expandAll: boolean;
|
|
57
|
+
readonly validations?: readonly {
|
|
58
|
+
readonly message: readonly [{
|
|
59
|
+
readonly locale: "zh";
|
|
60
|
+
readonly message: string;
|
|
61
|
+
}, ...{
|
|
62
|
+
readonly locale: "en" | "ja" | "ko";
|
|
63
|
+
readonly message: string;
|
|
64
|
+
}[]];
|
|
65
|
+
readonly warning?: boolean | undefined;
|
|
66
|
+
readonly when: string;
|
|
67
|
+
}[] | undefined;
|
|
56
68
|
readonly nodeTooltip?: readonly [{
|
|
57
69
|
readonly locale: "zh";
|
|
58
70
|
readonly message: string;
|
|
@@ -82,6 +94,7 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
|
|
|
82
94
|
readonly locale: "en" | "ja" | "ko";
|
|
83
95
|
readonly message: string;
|
|
84
96
|
}[]] | undefined;
|
|
97
|
+
readonly required?: string | undefined;
|
|
85
98
|
readonly displayName?: string | undefined;
|
|
86
99
|
readonly compatibilityDate: "2026-05-28";
|
|
87
100
|
readonly orientation?: "vertical" | "floating" | undefined;
|
|
@@ -113,6 +126,17 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
|
|
|
113
126
|
readonly message: string;
|
|
114
127
|
}[]];
|
|
115
128
|
readonly expandAll: boolean;
|
|
129
|
+
readonly validations?: readonly {
|
|
130
|
+
readonly message: readonly [{
|
|
131
|
+
readonly locale: "zh";
|
|
132
|
+
readonly message: string;
|
|
133
|
+
}, ...{
|
|
134
|
+
readonly locale: "en" | "ja" | "ko";
|
|
135
|
+
readonly message: string;
|
|
136
|
+
}[]];
|
|
137
|
+
readonly warning?: boolean | undefined;
|
|
138
|
+
readonly when: string;
|
|
139
|
+
}[] | undefined;
|
|
116
140
|
readonly nodeTooltip?: readonly [{
|
|
117
141
|
readonly locale: "zh";
|
|
118
142
|
readonly message: string;
|