@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
|
@@ -39,8 +39,8 @@ export function FormUnit(configure) {
|
|
|
39
39
|
}
|
|
40
40
|
export function registerFormVariablesIfAbsent(env) {
|
|
41
41
|
const declared = new Set(env.getDefinitions().variables.map((v) => v.name));
|
|
42
|
-
if (!declared.has("now")) env.registerVariable("now", "Date", { description: "\u5F53\u524D\u65E5\u671F/\u65F6\u95F4" });
|
|
43
|
-
if (!declared.has("form")) env.registerVariable("form", "dyn", { description: "\u5F53\u524D\u8868\u5355\u72B6\u6001" });
|
|
42
|
+
if (!declared.has("now")) env.registerVariable("now", "Date", { label: "\u5F53\u524D\u65F6\u95F4", description: "\u5F53\u524D\u65E5\u671F/\u65F6\u95F4" });
|
|
43
|
+
if (!declared.has("form")) env.registerVariable("form", "dyn", { label: "\u8868\u5355\u503C", description: "\u5F53\u524D\u8868\u5355\u72B6\u6001" });
|
|
44
44
|
}
|
|
45
45
|
export function FormConfig(configure) {
|
|
46
46
|
const formConfigure = (env) => {
|
|
@@ -105,6 +105,10 @@ export function FormConfig(configure) {
|
|
|
105
105
|
字段自身的「只读条件」会**覆盖**这里:未配置只读条件的字段跟随本表达式,配置了的以字段自己的结果为准(可在只读表单中单独放开某个字段)。
|
|
106
106
|
`
|
|
107
107
|
})),
|
|
108
|
+
style: Schema.optional(Schema.String).annotations({
|
|
109
|
+
title: "\u5BB9\u5668\u6837\u5F0F",
|
|
110
|
+
description: "\u5E94\u7528\u5728\u8868\u5355\u6700\u5916\u5C42\u5BB9\u5668\u4E0A\u7684 CSS \u6837\u5F0F\u5B57\u7B26\u4E32"
|
|
111
|
+
}),
|
|
108
112
|
...unitFields(formConfigure)
|
|
109
113
|
}).pipe(Schema.filter(unitPlacementsFilter)).annotations({
|
|
110
114
|
title: "FormConfig",
|
|
@@ -1,9 +1,51 @@
|
|
|
1
1
|
import { Schema } from 'effect';
|
|
2
2
|
import type { Environment } from '../../../vendor/cel-js/lib/index.js';
|
|
3
|
+
/**
|
|
4
|
+
* One field-owned validation rule. Extracted so the config editor
|
|
5
|
+
* (`ValidationRulesField`) can read the `when` / `message` `@title` +
|
|
6
|
+
* `@description` straight off this struct — single source of truth, no
|
|
7
|
+
* duplicated label/tooltip copy. `configure` only shapes the CEL environment;
|
|
8
|
+
* the annotations are static, so a no-op `configure` is fine for metadata.
|
|
9
|
+
*/
|
|
10
|
+
export declare function validationRuleStruct(configure: (env: Environment) => void): Schema.Struct<{
|
|
11
|
+
when: Schema.Schema<string, string, never>;
|
|
12
|
+
warning: Schema.optional<Schema.SchemaClass<boolean, boolean, never>>;
|
|
13
|
+
message: Schema.refine<readonly [{
|
|
14
|
+
readonly locale: "zh";
|
|
15
|
+
readonly message: string;
|
|
16
|
+
}, ...{
|
|
17
|
+
readonly locale: "en" | "ja" | "ko";
|
|
18
|
+
readonly message: string;
|
|
19
|
+
}[]], Schema.TupleType<readonly [Schema.Struct<{
|
|
20
|
+
locale: Schema.Literal<["zh"]>;
|
|
21
|
+
message: Schema.SchemaClass<string, string, never>;
|
|
22
|
+
}>], [Schema.Struct<{
|
|
23
|
+
locale: Schema.Literal<["ja", "en", "ko"]>;
|
|
24
|
+
message: Schema.SchemaClass<string, string, never>;
|
|
25
|
+
}>]>>;
|
|
26
|
+
}>;
|
|
3
27
|
export declare function commonFieldFields(configure: (env: Environment) => void): {
|
|
4
28
|
id: Schema.refine<string, typeof Schema.String>;
|
|
5
29
|
displayName: Schema.optional<Schema.SchemaClass<string, string, never>>;
|
|
6
30
|
hidden: Schema.optional<Schema.Schema<string, string, never>>;
|
|
31
|
+
required: Schema.optional<Schema.Schema<string, string, never>>;
|
|
32
|
+
validations: Schema.optional<Schema.Array$<Schema.Struct<{
|
|
33
|
+
when: Schema.Schema<string, string, never>;
|
|
34
|
+
warning: Schema.optional<Schema.SchemaClass<boolean, boolean, never>>;
|
|
35
|
+
message: Schema.refine<readonly [{
|
|
36
|
+
readonly locale: "zh";
|
|
37
|
+
readonly message: string;
|
|
38
|
+
}, ...{
|
|
39
|
+
readonly locale: "en" | "ja" | "ko";
|
|
40
|
+
readonly message: string;
|
|
41
|
+
}[]], Schema.TupleType<readonly [Schema.Struct<{
|
|
42
|
+
locale: Schema.Literal<["zh"]>;
|
|
43
|
+
message: Schema.SchemaClass<string, string, never>;
|
|
44
|
+
}>], [Schema.Struct<{
|
|
45
|
+
locale: Schema.Literal<["ja", "en", "ko"]>;
|
|
46
|
+
message: Schema.SchemaClass<string, string, never>;
|
|
47
|
+
}>]>>;
|
|
48
|
+
}>>>;
|
|
7
49
|
};
|
|
8
50
|
export declare const FIELD_ORIENTATIONS: readonly ["vertical", "floating"];
|
|
9
51
|
export type FieldOrientation = typeof FIELD_ORIENTATIONS[number];
|
|
@@ -1,6 +1,27 @@
|
|
|
1
1
|
import { Schema } from "effect";
|
|
2
|
-
import { Expression } from "../../../share/expression.js";
|
|
2
|
+
import { Expression, LocaleMarkdown } from "../../../share/expression.js";
|
|
3
3
|
import { md } from "../../../share/markdown.js";
|
|
4
|
+
export function validationRuleStruct(configure) {
|
|
5
|
+
const CelBool = Expression({ configure, resultType: "bool" });
|
|
6
|
+
return Schema.Struct({
|
|
7
|
+
when: CelBool.annotations({
|
|
8
|
+
title: "\u89C4\u5219",
|
|
9
|
+
description: md`
|
|
10
|
+
返回 \`true\` 时视为校验**未**通过,返回 \`false\` 视为通过
|
|
11
|
+
`
|
|
12
|
+
}),
|
|
13
|
+
// Severity toggle. Off (default / absent) ⇒ error: standard blocks submit
|
|
14
|
+
// and reds the field. On ⇒ warning: yellow hint only, never blocks submit.
|
|
15
|
+
warning: Schema.optional(Schema.Boolean.annotations({
|
|
16
|
+
title: "\u4EC5\u8B66\u544A",
|
|
17
|
+
description: "\u5F00\u542F\u540E\u8BE5\u89C4\u5219\u4EC5\u9EC4\u8272\u63D0\u793A\u3001\u4E0D\u963B\u6B62\u63D0\u4EA4"
|
|
18
|
+
})),
|
|
19
|
+
message: LocaleMarkdown({ configure }).annotations({
|
|
20
|
+
title: "\u6D88\u606F",
|
|
21
|
+
description: "\u6821\u9A8C\u672A\u901A\u8FC7\u65F6\u5C55\u793A\u7684\u672C\u5730\u5316\u6D88\u606F\uFF0C\u652F\u6301 inline Markdown \u4E0E `{{ \u8868\u8FBE\u5F0F }}` \u63D2\u503C"
|
|
22
|
+
})
|
|
23
|
+
});
|
|
24
|
+
}
|
|
4
25
|
export function commonFieldFields(configure) {
|
|
5
26
|
const CelBool = Expression({ configure, resultType: "bool" });
|
|
6
27
|
return {
|
|
@@ -12,7 +33,24 @@ export function commonFieldFields(configure) {
|
|
|
12
33
|
hidden: Schema.optional(CelBool.annotations({
|
|
13
34
|
title: "\u9690\u85CF\u6761\u4EF6",
|
|
14
35
|
description: "\u8FD4\u56DE `true` \u65F6\u5B57\u6BB5\u5728\u6240\u6709\u5E03\u5C40\u4E2D\u90FD\u4E0D\u6E32\u67D3"
|
|
15
|
-
}))
|
|
36
|
+
})),
|
|
37
|
+
// Required marker + non-empty check share one expression — no drift
|
|
38
|
+
// between the star the user sees and the rule that gates submit.
|
|
39
|
+
required: Schema.optional(CelBool.annotations({
|
|
40
|
+
title: "\u5FC5\u586B\u6761\u4EF6",
|
|
41
|
+
description: "\u8FD4\u56DE `true` \u65F6\u663E\u793A\u5FC5\u586B\u661F\u53F7\u5E76\u8981\u6C42\u975E\u7A7A\uFF0C\u7559\u7A7A\u8868\u793A\u4E0D\u5FC5\u586B"
|
|
42
|
+
})),
|
|
43
|
+
// Field-owned rules. `when` returns a bool — `true` triggers the rule; the
|
|
44
|
+
// per-rule `warning` switch picks the severity (error by default, warning
|
|
45
|
+
// when on). The message is a localized Markdown template with `{{ 表达式 }}`
|
|
46
|
+
// interpolation. Cross-field rules read `form.*` and live on the field where
|
|
47
|
+
// the error should appear.
|
|
48
|
+
validations: Schema.optional(
|
|
49
|
+
Schema.Array(validationRuleStruct(configure)).annotations({
|
|
50
|
+
title: "\u6821\u9A8C\u89C4\u5219",
|
|
51
|
+
description: "\u53CD\u9988\u6D88\u606F\u5C06\u6309\u7167\u6821\u9A8C\u89C4\u5219\u5217\u8868\u987A\u5E8F\u5C55\u793A"
|
|
52
|
+
})
|
|
53
|
+
)
|
|
16
54
|
};
|
|
17
55
|
}
|
|
18
56
|
export const FIELD_ORIENTATIONS = ["vertical", "floating"];
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import { Effect } from 'effect';
|
|
2
|
+
import type { ComputedRef, Ref } from 'vue';
|
|
3
|
+
import { type LocaleValue } from '../../../share/locale.js';
|
|
4
|
+
export type Severity = 'error' | 'warning';
|
|
5
|
+
export type FieldValidationResult = {
|
|
6
|
+
severity: Severity;
|
|
7
|
+
/** Already i18n-resolved and `{{ }}`-interpolated — ready to render. */
|
|
8
|
+
message: string;
|
|
9
|
+
/** Index in the field's `validations[]`; `-1` for the implicit required rule. */
|
|
10
|
+
ruleIndex: number;
|
|
11
|
+
};
|
|
12
|
+
/** The slice of a field's config the validation engine reads. */
|
|
13
|
+
export type ValidatableConfig = {
|
|
14
|
+
required?: string;
|
|
15
|
+
validations?: ReadonlyArray<{
|
|
16
|
+
when: string;
|
|
17
|
+
warning?: boolean;
|
|
18
|
+
message: LocaleValue;
|
|
19
|
+
}>;
|
|
20
|
+
binding?: string | readonly [string, string];
|
|
21
|
+
};
|
|
22
|
+
type Registration = () => ReadonlyArray<FieldValidationResult>;
|
|
23
|
+
export type ValidationProvider = {
|
|
24
|
+
/**
|
|
25
|
+
* Global reveal gate. Errors on a pristine field stay hidden until that
|
|
26
|
+
* field's binding is dirtied (first blur) or `reveal()` flips this true.
|
|
27
|
+
* Once true it never retracts during the form's life — only a full unmount
|
|
28
|
+
* resets it. `undo`/`redo` do not touch it (they roll back state, not the
|
|
29
|
+
* gate).
|
|
30
|
+
*/
|
|
31
|
+
revealed: Ref<boolean>;
|
|
32
|
+
reveal: () => void;
|
|
33
|
+
/** Register a mounted field's id + live results thunk; returns an unregister fn. */
|
|
34
|
+
register: (fieldId: () => string, results: Registration) => () => void;
|
|
35
|
+
/**
|
|
36
|
+
* Drain pending drafts, await the seed and derived-value settlement, then
|
|
37
|
+
* read every registered field's results. `true` ⇒ no `error`-severity
|
|
38
|
+
* result anywhere. Always calls `reveal()` so the failing fields surface.
|
|
39
|
+
*/
|
|
40
|
+
validate: () => Promise<boolean>;
|
|
41
|
+
/** Union of results across the given field ids — used by collapsible aggregation. */
|
|
42
|
+
resultsFor: (fieldIds: ReadonlyArray<string>) => ReadonlyArray<FieldValidationResult>;
|
|
43
|
+
};
|
|
44
|
+
export type ValidationHost = {
|
|
45
|
+
/** Drain pending field commits (the form's commit bus). */
|
|
46
|
+
flush: () => void;
|
|
47
|
+
/** Resolves once the initial seed has landed. */
|
|
48
|
+
seeded: Promise<void>;
|
|
49
|
+
/** Resolves once every derived value — cascades included — has settled. */
|
|
50
|
+
settled: () => Promise<void>;
|
|
51
|
+
};
|
|
52
|
+
/**
|
|
53
|
+
* Provide the form-wide validation registry. Called once at the top-level form
|
|
54
|
+
* host, after the commit bus / quiescence are available; nested list rows
|
|
55
|
+
* inherit it through `inject`, so every field in the form — at any nesting
|
|
56
|
+
* depth — registers into this single provider.
|
|
57
|
+
*/
|
|
58
|
+
export declare function provideValidation(host: ValidationHost): ValidationProvider;
|
|
59
|
+
/**
|
|
60
|
+
* Inject the form's validation provider. Returns `undefined` when used outside
|
|
61
|
+
* a `<Form>` host (e.g. a submit button placed on a bare page) — callers treat
|
|
62
|
+
* that as "no validation".
|
|
63
|
+
*/
|
|
64
|
+
export declare function useValidationProvider(): ValidationProvider | undefined;
|
|
65
|
+
/**
|
|
66
|
+
* Field-level validation. Called inside an input field's `runtime.vue`. Reads
|
|
67
|
+
* the field's `required` / `validations` config, evaluates them synchronously
|
|
68
|
+
* against the field's CEL context (`form`, plus a list row's `item`/`index`),
|
|
69
|
+
* registers the live results into the form-wide provider for as long as the
|
|
70
|
+
* field is mounted, and returns the bits the field renders: the required star,
|
|
71
|
+
* the error/warning message lists, and the dirty-gated `visible` flag.
|
|
72
|
+
*/
|
|
73
|
+
export declare function useFieldValidation(options: {
|
|
74
|
+
fieldId: () => string;
|
|
75
|
+
config: () => ValidatableConfig;
|
|
76
|
+
$cel: <T>(expression: string, context?: Record<string, unknown>) => Effect.Effect<T, any>;
|
|
77
|
+
/** Current i18n locale, for resolving the message `Locale`. */
|
|
78
|
+
locale: () => string;
|
|
79
|
+
}): {
|
|
80
|
+
isRequired: ComputedRef<boolean>;
|
|
81
|
+
errors: ComputedRef<ReadonlyArray<string>>;
|
|
82
|
+
warnings: ComputedRef<ReadonlyArray<string>>;
|
|
83
|
+
visible: ComputedRef<boolean>;
|
|
84
|
+
};
|
|
85
|
+
export {};
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
import { Effect } from "effect";
|
|
2
|
+
import { computed, inject, nextTick, onScopeDispose, provide, ref } from "vue";
|
|
3
|
+
import { getLocalizedText } from "../../../share/locale.js";
|
|
4
|
+
import { interpolate } from "../../../utils/interpolate.js";
|
|
5
|
+
import { useFormState } from "./state.js";
|
|
6
|
+
const VALIDATION_KEY = Symbol("shwfed-form-validation");
|
|
7
|
+
export function provideValidation(host) {
|
|
8
|
+
const revealed = ref(false);
|
|
9
|
+
const entries = /* @__PURE__ */ new Map();
|
|
10
|
+
function union() {
|
|
11
|
+
const out = [];
|
|
12
|
+
for (const entry of entries.values()) out.push(...entry.results());
|
|
13
|
+
return out;
|
|
14
|
+
}
|
|
15
|
+
const provider = {
|
|
16
|
+
revealed,
|
|
17
|
+
reveal: () => {
|
|
18
|
+
revealed.value = true;
|
|
19
|
+
},
|
|
20
|
+
register: (fieldId, results) => {
|
|
21
|
+
const token = Symbol("field");
|
|
22
|
+
entries.set(token, { fieldId, results });
|
|
23
|
+
return () => {
|
|
24
|
+
entries.delete(token);
|
|
25
|
+
};
|
|
26
|
+
},
|
|
27
|
+
async validate() {
|
|
28
|
+
host.flush();
|
|
29
|
+
await host.seeded;
|
|
30
|
+
await host.settled();
|
|
31
|
+
await nextTick();
|
|
32
|
+
const results = union();
|
|
33
|
+
provider.reveal();
|
|
34
|
+
return results.every((r) => r.severity !== "error");
|
|
35
|
+
},
|
|
36
|
+
resultsFor(fieldIds) {
|
|
37
|
+
const wanted = new Set(fieldIds);
|
|
38
|
+
const out = [];
|
|
39
|
+
for (const entry of entries.values()) {
|
|
40
|
+
if (wanted.has(entry.fieldId())) out.push(...entry.results());
|
|
41
|
+
}
|
|
42
|
+
return out;
|
|
43
|
+
}
|
|
44
|
+
};
|
|
45
|
+
provide(VALIDATION_KEY, provider);
|
|
46
|
+
return provider;
|
|
47
|
+
}
|
|
48
|
+
export function useValidationProvider() {
|
|
49
|
+
return inject(VALIDATION_KEY, void 0);
|
|
50
|
+
}
|
|
51
|
+
const DEFAULT_REQUIRED_MESSAGE = {
|
|
52
|
+
zh: "\u8BF7\u586B\u5199\u6B64\u5B57\u6BB5",
|
|
53
|
+
ja: "\u3053\u306E\u9805\u76EE\u3092\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044",
|
|
54
|
+
en: "Please fill in this field",
|
|
55
|
+
ko: "\uC774 \uD56D\uBAA9\uC744 \uC785\uB825\uD574 \uC8FC\uC138\uC694"
|
|
56
|
+
};
|
|
57
|
+
function defaultRequiredMessage(locale) {
|
|
58
|
+
return DEFAULT_REQUIRED_MESSAGE[locale] ?? DEFAULT_REQUIRED_MESSAGE.zh;
|
|
59
|
+
}
|
|
60
|
+
function isEmptyValue(value) {
|
|
61
|
+
return value == null || value === "" || Array.isArray(value) && value.length === 0;
|
|
62
|
+
}
|
|
63
|
+
export function useFieldValidation(options) {
|
|
64
|
+
const { getAt, dirty } = useFormState();
|
|
65
|
+
const provider = useValidationProvider();
|
|
66
|
+
function evalBool(expression) {
|
|
67
|
+
if (!expression) return false;
|
|
68
|
+
try {
|
|
69
|
+
return Effect.runSync(options.$cel(expression));
|
|
70
|
+
} catch {
|
|
71
|
+
return false;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
const isRequired = computed(() => evalBool(options.config().required));
|
|
75
|
+
function resolveMessage(message) {
|
|
76
|
+
const template = getLocalizedText(message, options.locale()) ?? "";
|
|
77
|
+
if (!template) return "";
|
|
78
|
+
return interpolate(template, (expression) => {
|
|
79
|
+
try {
|
|
80
|
+
const out = Effect.runSync(options.$cel(expression));
|
|
81
|
+
return out == null ? "" : String(out);
|
|
82
|
+
} catch {
|
|
83
|
+
return "";
|
|
84
|
+
}
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
const results = computed(() => {
|
|
88
|
+
const config = options.config();
|
|
89
|
+
const out = [];
|
|
90
|
+
if (typeof config.binding === "string" && isRequired.value && isEmptyValue(getAt(config.binding))) {
|
|
91
|
+
out.push({ severity: "error", message: defaultRequiredMessage(options.locale()), ruleIndex: -1 });
|
|
92
|
+
}
|
|
93
|
+
const rules = config.validations ?? [];
|
|
94
|
+
rules.forEach((rule, ruleIndex) => {
|
|
95
|
+
if (!evalBool(rule.when)) return;
|
|
96
|
+
const severity = rule.warning ? "warning" : "error";
|
|
97
|
+
out.push({ severity, message: resolveMessage(rule.message), ruleIndex });
|
|
98
|
+
});
|
|
99
|
+
return out;
|
|
100
|
+
});
|
|
101
|
+
if (provider) {
|
|
102
|
+
const unregister = provider.register(options.fieldId, () => results.value);
|
|
103
|
+
onScopeDispose(unregister);
|
|
104
|
+
}
|
|
105
|
+
const errors = computed(() => results.value.filter((r) => r.severity === "error").map((r) => r.message));
|
|
106
|
+
const warnings = computed(() => results.value.filter((r) => r.severity === "warning").map((r) => r.message));
|
|
107
|
+
const visible = computed(() => {
|
|
108
|
+
if (provider?.revealed.value) return true;
|
|
109
|
+
const binding = options.config().binding;
|
|
110
|
+
return typeof binding === "string" && dirty.value.has(binding);
|
|
111
|
+
});
|
|
112
|
+
return { isRequired, errors, warnings, visible };
|
|
113
|
+
}
|
package/dist/runtime/components/table/columns/2026-04-14/com.shwfed.table.column.select/config.vue
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
<script setup>
|
|
2
|
-
import { Switch } from "../../../../ui/switch";
|
|
3
2
|
import { Separator } from "../../../../ui/separator";
|
|
4
3
|
import { Field, FieldLabel } from "../../../../ui/field";
|
|
5
4
|
import { ExpressionEditor } from "../../../../ui/expression-editor";
|
|
@@ -68,27 +67,6 @@ function updateOptionalString(key, next) {
|
|
|
68
67
|
</SelectContent>
|
|
69
68
|
</Select>
|
|
70
69
|
</Field>
|
|
71
|
-
<Field orientation="vertical">
|
|
72
|
-
<FieldLabel class="text-xs text-zinc-500">
|
|
73
|
-
<template
|
|
74
|
-
v-if="fieldDescription('crossPage')"
|
|
75
|
-
#tooltip
|
|
76
|
-
>
|
|
77
|
-
<Markdown
|
|
78
|
-
:source="fieldDescription('crossPage')"
|
|
79
|
-
block
|
|
80
|
-
class="prose prose-sm prose-zinc"
|
|
81
|
-
/>
|
|
82
|
-
</template>
|
|
83
|
-
{{ fieldTitle("crossPage") }}
|
|
84
|
-
</FieldLabel>
|
|
85
|
-
<div class="flex h-9 items-center">
|
|
86
|
-
<Switch
|
|
87
|
-
:model-value="value.crossPage ?? false"
|
|
88
|
-
@update:model-value="(v) => value.crossPage = v"
|
|
89
|
-
/>
|
|
90
|
-
</div>
|
|
91
|
-
</Field>
|
|
92
70
|
</div>
|
|
93
71
|
<Separator />
|
|
94
72
|
<div class="grid grid-cols-2 gap-x-6 gap-y-4">
|
package/dist/runtime/components/table/columns/2026-04-14/com.shwfed.table.column.select/header.vue
CHANGED
|
@@ -11,36 +11,24 @@ const { t } = useI18n({
|
|
|
11
11
|
inheritLocale: true,
|
|
12
12
|
messages: {
|
|
13
13
|
zh: {
|
|
14
|
-
"select-all-rows-on-page": "\u9009\u62E9\u5F53\u524D\u9875\u5168\u90E8\u884C",
|
|
15
14
|
"select-all-rows": "\u9009\u62E9\u5168\u90E8\u884C"
|
|
16
15
|
},
|
|
17
16
|
en: {
|
|
18
|
-
"select-all-rows-on-page": "Select all rows on page",
|
|
19
17
|
"select-all-rows": "Select all rows"
|
|
20
18
|
},
|
|
21
19
|
ja: {
|
|
22
|
-
"select-all-rows-on-page": "\u73FE\u5728\u306E\u30DA\u30FC\u30B8\u306E\u3059\u3079\u3066\u306E\u884C\u3092\u9078\u629E",
|
|
23
20
|
"select-all-rows": "\u3059\u3079\u3066\u306E\u884C\u3092\u9078\u629E"
|
|
24
21
|
}
|
|
25
22
|
}
|
|
26
23
|
});
|
|
27
24
|
const table = computed(() => props.ctx.table);
|
|
28
|
-
const crossPage = computed(() => props.column.crossPage ?? false);
|
|
29
25
|
const hidden = computed(() => props.column.mode === "radio");
|
|
30
|
-
const indeterminate = computed(
|
|
31
|
-
|
|
32
|
-
);
|
|
33
|
-
const checked = computed(
|
|
34
|
-
() => crossPage.value ? table.value.getIsAllPageRowsSelected() : table.value.getIsAllRowsSelected()
|
|
35
|
-
);
|
|
26
|
+
const indeterminate = computed(() => table.value.getIsSomeRowsSelected());
|
|
27
|
+
const checked = computed(() => table.value.getIsAllRowsSelected());
|
|
36
28
|
const modelValue = computed(
|
|
37
29
|
() => checked.value ? true : indeterminate.value ? "indeterminate" : false
|
|
38
30
|
);
|
|
39
31
|
function onUpdate(value) {
|
|
40
|
-
if (crossPage.value) {
|
|
41
|
-
table.value.toggleAllPageRowsSelected(value === true);
|
|
42
|
-
return;
|
|
43
|
-
}
|
|
44
32
|
table.value.toggleAllRowsSelected(value === true);
|
|
45
33
|
}
|
|
46
34
|
</script>
|
|
@@ -52,7 +40,7 @@ function onUpdate(value) {
|
|
|
52
40
|
>
|
|
53
41
|
<Checkbox
|
|
54
42
|
:model-value="modelValue"
|
|
55
|
-
:aria-label="
|
|
43
|
+
:aria-label="t('select-all-rows')"
|
|
56
44
|
class="w-4 h-4 bg-white"
|
|
57
45
|
@update:model-value="onUpdate"
|
|
58
46
|
/>
|
package/dist/runtime/components/table/columns/2026-04-14/com.shwfed.table.column.select/schema.d.ts
CHANGED
|
@@ -11,7 +11,6 @@ export declare function schema(configure: (env: Environment) => void): Schema.St
|
|
|
11
11
|
mode: Schema.optionalWith<Schema.Literal<["radio", "checkbox"]>, {
|
|
12
12
|
default: () => "checkbox";
|
|
13
13
|
}>;
|
|
14
|
-
crossPage: Schema.optional<Schema.SchemaClass<boolean, boolean, never>>;
|
|
15
14
|
enableRowSelection: Schema.optional<Schema.Schema<string, string, never>>;
|
|
16
15
|
enableMultiRowSelection: Schema.optional<Schema.Schema<string, string, never>>;
|
|
17
16
|
id: Schema.refine<string, typeof Schema.String>;
|
package/dist/runtime/components/table/columns/2026-04-14/com.shwfed.table.column.select/schema.js
CHANGED
|
@@ -25,10 +25,6 @@ export function schema(configure) {
|
|
|
25
25
|
title: "\u6A21\u5F0F",
|
|
26
26
|
description: "\u9009\u62E9\u6A21\u5F0F\uFF0Cradio \u4E3A\u5355\u9009\uFF0Ccheckbox \u4E3A\u591A\u9009"
|
|
27
27
|
}), { default: () => "checkbox" }),
|
|
28
|
-
crossPage: Schema.optional(Schema.Boolean.annotations({
|
|
29
|
-
title: "\u8BB0\u5FC6\u9009\u4E2D\u9879",
|
|
30
|
-
description: "\u662F\u5426\u652F\u6301\u8DE8\u9875\u9009\u62E9"
|
|
31
|
-
})),
|
|
32
28
|
enableRowSelection: Schema.optional(CelRowSelectionPredicate).annotations({
|
|
33
29
|
title: "\u884C\u53EF\u9009\u4E2D",
|
|
34
30
|
description: "\u884C\u662F\u5426\u53EF\u9009\u4E2D\u7684 CEL \u8868\u8FBE\u5F0F"
|
|
@@ -9,9 +9,11 @@ type __VLS_ModelProps = {
|
|
|
9
9
|
modelValue: AnyRecord;
|
|
10
10
|
};
|
|
11
11
|
type __VLS_PublicProps = __VLS_Props & __VLS_ModelProps;
|
|
12
|
-
declare var __VLS_219: {};
|
|
12
|
+
declare var __VLS_219: {}, __VLS_221: {};
|
|
13
13
|
type __VLS_Slots = {} & {
|
|
14
|
-
'general-extra'?: (props: typeof __VLS_219) => any;
|
|
14
|
+
'general-grid-extra'?: (props: typeof __VLS_219) => any;
|
|
15
|
+
} & {
|
|
16
|
+
'general-extra'?: (props: typeof __VLS_221) => any;
|
|
15
17
|
};
|
|
16
18
|
declare const __VLS_base: import("vue").DefineComponent<__VLS_PublicProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
17
19
|
"update:modelValue": (value: AnyRecord) => any;
|
|
@@ -1263,61 +1263,68 @@ const tableQueryValue = computed({
|
|
|
1263
1263
|
v-if="selectedGeneral"
|
|
1264
1264
|
class="space-y-5"
|
|
1265
1265
|
>
|
|
1266
|
-
<
|
|
1267
|
-
|
|
1268
|
-
|
|
1269
|
-
|
|
1270
|
-
|
|
1271
|
-
<
|
|
1272
|
-
|
|
1273
|
-
|
|
1274
|
-
|
|
1275
|
-
|
|
1276
|
-
|
|
1277
|
-
|
|
1278
|
-
|
|
1266
|
+
<div class="grid grid-cols-2 gap-x-6 gap-y-4">
|
|
1267
|
+
<Field
|
|
1268
|
+
v-if="!hideDisplayName"
|
|
1269
|
+
orientation="vertical"
|
|
1270
|
+
>
|
|
1271
|
+
<FieldLabel class="text-xs text-zinc-500">
|
|
1272
|
+
<template
|
|
1273
|
+
v-if="generalFieldDescription('displayName')"
|
|
1274
|
+
#tooltip
|
|
1275
|
+
>
|
|
1276
|
+
<Markdown
|
|
1277
|
+
:source="generalFieldDescription('displayName')"
|
|
1278
|
+
block
|
|
1279
|
+
class="prose prose-sm prose-zinc"
|
|
1280
|
+
/>
|
|
1281
|
+
</template>
|
|
1282
|
+
{{ generalFieldTitle("displayName") }}
|
|
1283
|
+
</FieldLabel>
|
|
1284
|
+
<InputGroup>
|
|
1285
|
+
<InputGroupInput
|
|
1286
|
+
:model-value="editingGeneralConfig.displayName ?? ''"
|
|
1287
|
+
placeholder="例:订单列表"
|
|
1288
|
+
@update:model-value="setGeneralDisplayName"
|
|
1279
1289
|
/>
|
|
1280
|
-
</
|
|
1281
|
-
|
|
1282
|
-
</FieldLabel>
|
|
1283
|
-
<InputGroup>
|
|
1284
|
-
<InputGroupInput
|
|
1285
|
-
:model-value="editingGeneralConfig.displayName ?? ''"
|
|
1286
|
-
placeholder="例:订单列表"
|
|
1287
|
-
@update:model-value="setGeneralDisplayName"
|
|
1288
|
-
/>
|
|
1289
|
-
</InputGroup>
|
|
1290
|
-
</Field>
|
|
1290
|
+
</InputGroup>
|
|
1291
|
+
</Field>
|
|
1291
1292
|
|
|
1292
|
-
|
|
1293
|
-
|
|
1294
|
-
|
|
1295
|
-
|
|
1296
|
-
|
|
1297
|
-
|
|
1298
|
-
|
|
1299
|
-
|
|
1300
|
-
|
|
1301
|
-
|
|
1293
|
+
<Field orientation="vertical">
|
|
1294
|
+
<FieldLabel class="text-xs text-zinc-500">
|
|
1295
|
+
<template
|
|
1296
|
+
v-if="generalFieldDescription('rowKey')"
|
|
1297
|
+
#tooltip
|
|
1298
|
+
>
|
|
1299
|
+
<Markdown
|
|
1300
|
+
:source="generalFieldDescription('rowKey')"
|
|
1301
|
+
block
|
|
1302
|
+
class="prose prose-sm prose-zinc"
|
|
1303
|
+
/>
|
|
1304
|
+
</template>
|
|
1305
|
+
{{ generalFieldTitle("rowKey") }}
|
|
1306
|
+
</FieldLabel>
|
|
1307
|
+
<RowKeyCELContext>
|
|
1308
|
+
<ExpressionEditor
|
|
1309
|
+
:model-value="editingGeneralConfig.rowKey ?? ''"
|
|
1310
|
+
placeholder="如 row.id"
|
|
1311
|
+
result-type="string"
|
|
1312
|
+
@update:model-value="(v) => updateGeneralOptionalString('rowKey', v)"
|
|
1302
1313
|
/>
|
|
1303
|
-
</
|
|
1304
|
-
|
|
1305
|
-
|
|
1306
|
-
|
|
1307
|
-
|
|
1308
|
-
|
|
1309
|
-
|
|
1310
|
-
|
|
1311
|
-
|
|
1312
|
-
|
|
1313
|
-
|
|
1314
|
-
|
|
1315
|
-
|
|
1316
|
-
|
|
1317
|
-
>
|
|
1318
|
-
{{ getError("rowKey") }}
|
|
1319
|
-
</p>
|
|
1320
|
-
</Field>
|
|
1314
|
+
</RowKeyCELContext>
|
|
1315
|
+
<p
|
|
1316
|
+
v-if="getError('rowKey')"
|
|
1317
|
+
class="text-xs text-red-500"
|
|
1318
|
+
>
|
|
1319
|
+
{{ getError("rowKey") }}
|
|
1320
|
+
</p>
|
|
1321
|
+
</Field>
|
|
1322
|
+
|
|
1323
|
+
<!-- Host slot inside the general grid: a wrapping editor (e.g. the
|
|
1324
|
+
`table` form field, which hides 内部名称) drops a field into
|
|
1325
|
+
the cell next to 行唯一标识 so the two sit on one row. -->
|
|
1326
|
+
<slot name="general-grid-extra" />
|
|
1327
|
+
</div>
|
|
1321
1328
|
|
|
1322
1329
|
<!-- Host extension slot: a wrapping editor (e.g. the `table` form
|
|
1323
1330
|
field config) injects its own fields into the general pane. -->
|
|
@@ -9,9 +9,11 @@ type __VLS_ModelProps = {
|
|
|
9
9
|
modelValue: AnyRecord;
|
|
10
10
|
};
|
|
11
11
|
type __VLS_PublicProps = __VLS_Props & __VLS_ModelProps;
|
|
12
|
-
declare var __VLS_219: {};
|
|
12
|
+
declare var __VLS_219: {}, __VLS_221: {};
|
|
13
13
|
type __VLS_Slots = {} & {
|
|
14
|
-
'general-extra'?: (props: typeof __VLS_219) => any;
|
|
14
|
+
'general-grid-extra'?: (props: typeof __VLS_219) => any;
|
|
15
|
+
} & {
|
|
16
|
+
'general-extra'?: (props: typeof __VLS_221) => any;
|
|
15
17
|
};
|
|
16
18
|
declare const __VLS_base: import("vue").DefineComponent<__VLS_PublicProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
17
19
|
"update:modelValue": (value: AnyRecord) => any;
|
|
@@ -132,6 +132,7 @@ export declare function TableConfig(configure: (env: Environment) => void): Sche
|
|
|
132
132
|
}[]] | undefined;
|
|
133
133
|
}[];
|
|
134
134
|
readonly query?: {
|
|
135
|
+
readonly style?: string | undefined;
|
|
135
136
|
readonly initial?: {
|
|
136
137
|
readonly data: string;
|
|
137
138
|
readonly request?: string | undefined;
|
|
@@ -436,6 +437,7 @@ export declare function TableConfig(configure: (env: Environment) => void): Sche
|
|
|
436
437
|
}, never>>;
|
|
437
438
|
}>>;
|
|
438
439
|
query: Schema.optional<Schema.refine<{
|
|
440
|
+
readonly style?: string | undefined;
|
|
439
441
|
readonly initial?: {
|
|
440
442
|
readonly data: string;
|
|
441
443
|
readonly request?: string | undefined;
|
|
@@ -502,6 +504,7 @@ export declare function TableConfig(configure: (env: Environment) => void): Sche
|
|
|
502
504
|
data: Schema.Schema<string, string, never>;
|
|
503
505
|
}>>>;
|
|
504
506
|
readonly: Schema.optional<Schema.Schema<string, string, never>>;
|
|
507
|
+
style: Schema.optional<typeof Schema.String>;
|
|
505
508
|
}>>>;
|
|
506
509
|
rowKey: Schema.optional<Schema.Schema<string, string, never>>;
|
|
507
510
|
cellStyle: Schema.optional<Schema.Schema<string, string, never>>;
|
|
@@ -571,6 +574,7 @@ export declare function createTableConfig(body: Omit<Schema.Schema.Type<ReturnTy
|
|
|
571
574
|
}[]] | undefined;
|
|
572
575
|
}[];
|
|
573
576
|
query?: {
|
|
577
|
+
readonly style?: string | undefined;
|
|
574
578
|
readonly initial?: {
|
|
575
579
|
readonly data: string;
|
|
576
580
|
readonly request?: string | undefined;
|
|
@@ -84,10 +84,10 @@ export function editableHeader(titleText) {
|
|
|
84
84
|
export function registerRowVariablesIfAbsent(env) {
|
|
85
85
|
const declared = new Set(env.getDefinitions().variables.map((v) => v.name));
|
|
86
86
|
if (!declared.has("row")) {
|
|
87
|
-
env.registerVariable("row", "dyn", { description: "\u5F53\u524D\u884C\u6570\u636E" });
|
|
87
|
+
env.registerVariable("row", "dyn", { label: "\u5F53\u524D\u884C", description: "\u5F53\u524D\u884C\u6570\u636E" });
|
|
88
88
|
}
|
|
89
89
|
if (!declared.has("index")) {
|
|
90
|
-
env.registerVariable("index", "number", { description: "\u884C\u7D22\u5F15" });
|
|
90
|
+
env.registerVariable("index", "number", { label: "\u884C\u5E8F\u53F7", description: "\u884C\u7D22\u5F15" });
|
|
91
91
|
}
|
|
92
92
|
}
|
|
93
93
|
function configureWithRow(configure) {
|
|
@@ -28,7 +28,7 @@ const content = computed(() => {
|
|
|
28
28
|
v-if="$slots.default || content"
|
|
29
29
|
role="alert"
|
|
30
30
|
data-slot="field-error"
|
|
31
|
-
:class="cn('
|
|
31
|
+
:class="cn('max-w-full pt-0.25 text-red-600 text-xs leading-tight font-normal', props.class)"
|
|
32
32
|
>
|
|
33
33
|
<slot v-if="$slots.default" />
|
|
34
34
|
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { HTMLAttributes } from 'vue';
|
|
2
|
+
type __VLS_Props = {
|
|
3
|
+
class?: HTMLAttributes['class'];
|
|
4
|
+
errors?: ReadonlyArray<string>;
|
|
5
|
+
warnings?: ReadonlyArray<string>;
|
|
6
|
+
};
|
|
7
|
+
declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
8
|
+
declare const _default: typeof __VLS_export;
|
|
9
|
+
export default _default;
|