@shwfed/config 1.1.5 → 2.0.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.
Files changed (286) hide show
  1. package/dist/module.d.mts +2 -19
  2. package/dist/module.json +1 -1
  3. package/dist/module.mjs +15 -34
  4. package/dist/runtime/components/actions/buttons/2026-04-18/com.shwfed.actions.button.http.request.json/config.d.vue.ts +36 -4
  5. package/dist/runtime/components/actions/buttons/2026-04-18/com.shwfed.actions.button.http.request.json/config.vue +45 -8
  6. package/dist/runtime/components/actions/buttons/2026-04-18/com.shwfed.actions.button.http.request.json/config.vue.d.ts +36 -4
  7. package/dist/runtime/components/actions/buttons/2026-04-18/com.shwfed.actions.button.http.request.json/runtime.vue +15 -9
  8. package/dist/runtime/components/actions/buttons/2026-04-18/com.shwfed.actions.button.http.request.json/schema.d.ts +17 -1
  9. package/dist/runtime/components/actions/buttons/2026-04-18/com.shwfed.actions.button.http.request.json/schema.js +23 -4
  10. package/dist/runtime/components/actions/buttons/2026-04-18/com.shwfed.actions.button.http.request.json.confirm/config.d.vue.ts +36 -4
  11. package/dist/runtime/components/actions/buttons/2026-04-18/com.shwfed.actions.button.http.request.json.confirm/config.vue +39 -5
  12. package/dist/runtime/components/actions/buttons/2026-04-18/com.shwfed.actions.button.http.request.json.confirm/config.vue.d.ts +36 -4
  13. package/dist/runtime/components/actions/buttons/2026-04-18/com.shwfed.actions.button.http.request.json.confirm/runtime.vue +15 -9
  14. package/dist/runtime/components/actions/buttons/2026-04-18/com.shwfed.actions.button.http.request.json.confirm/schema.d.ts +17 -1
  15. package/dist/runtime/components/actions/buttons/2026-04-18/com.shwfed.actions.button.http.request.json.confirm/schema.js +23 -5
  16. package/dist/runtime/components/actions/buttons/2026-04-18/com.shwfed.actions.button.prototype/config.vue +1 -0
  17. package/dist/runtime/components/actions/buttons/2026-04-21/com.shwfed.actions.button.navigation/config.d.vue.ts +2 -2
  18. package/dist/runtime/components/actions/buttons/2026-04-21/com.shwfed.actions.button.navigation/config.vue.d.ts +2 -2
  19. package/dist/runtime/components/actions/buttons/2026-04-21/com.shwfed.actions.button.navigation/runtime.vue +2 -3
  20. package/dist/runtime/components/actions/buttons/2026-05-11/com.shwfed.actions.button.modal.layout/config.d.vue.ts +1 -1
  21. package/dist/runtime/components/actions/buttons/2026-05-11/com.shwfed.actions.button.modal.layout/config.vue +44 -10
  22. package/dist/runtime/components/actions/buttons/2026-05-11/com.shwfed.actions.button.modal.layout/config.vue.d.ts +1 -1
  23. package/dist/runtime/components/actions/buttons/2026-05-11/com.shwfed.actions.button.modal.layout/runtime.vue +24 -7
  24. package/dist/runtime/components/actions/buttons/2026-05-11/com.shwfed.actions.button.modal.layout/schema.d.ts +6 -1
  25. package/dist/runtime/components/actions/buttons/2026-05-11/com.shwfed.actions.button.modal.layout/schema.js +6 -3
  26. package/dist/runtime/components/actions/buttons/{2026-04-27/com.shwfed.actions.button.table.reset → 2026-05-15/com.shwfed.actions.button.event.dispatch}/config.d.vue.ts +13 -5
  27. package/dist/runtime/components/actions/buttons/2026-05-15/com.shwfed.actions.button.event.dispatch/config.vue +32 -0
  28. package/dist/runtime/components/actions/buttons/{2026-04-27/com.shwfed.actions.button.table.reset → 2026-05-15/com.shwfed.actions.button.event.dispatch}/config.vue.d.ts +13 -5
  29. package/dist/runtime/components/actions/buttons/{2026-04-27/com.shwfed.actions.button.table.search → 2026-05-15/com.shwfed.actions.button.event.dispatch}/runtime.vue +5 -7
  30. package/dist/runtime/components/actions/buttons/2026-05-15/com.shwfed.actions.button.event.dispatch/schema.d.ts +17 -0
  31. package/dist/runtime/components/actions/buttons/2026-05-15/com.shwfed.actions.button.event.dispatch/schema.js +18 -0
  32. package/dist/runtime/components/actions/components/group.vue +2 -3
  33. package/dist/runtime/components/actions/components/triggers-field.d.vue.ts +17 -0
  34. package/dist/runtime/components/actions/components/triggers-field.vue +209 -0
  35. package/dist/runtime/components/actions/components/triggers-field.vue.d.ts +17 -0
  36. package/dist/runtime/components/actions/config.vue +51 -1
  37. package/dist/runtime/components/actions/schema.d.ts +4 -0
  38. package/dist/runtime/components/actions/schema.js +6 -0
  39. package/dist/runtime/components/actions/utils/resolve.d.ts +25 -1
  40. package/dist/runtime/components/actions/utils/resolve.js +37 -9
  41. package/dist/runtime/components/app.vue +1 -1
  42. package/dist/runtime/components/block-layout-editor/index.vue +11 -11
  43. package/dist/runtime/components/block-layout-editor/sidebar.vue +0 -4
  44. package/dist/runtime/components/config/blocks/2026-05-06/com.shwfed.block.form/config.d.vue.ts +2 -0
  45. package/dist/runtime/components/config/blocks/2026-05-06/com.shwfed.block.form/config.vue.d.ts +2 -0
  46. package/dist/runtime/components/config/blocks/2026-05-06/com.shwfed.block.form/runtime.d.vue.ts +2 -0
  47. package/dist/runtime/components/config/blocks/2026-05-06/com.shwfed.block.form/runtime.vue.d.ts +2 -0
  48. package/dist/runtime/components/config/blocks/2026-05-06/com.shwfed.block.form/schema.d.ts +2 -0
  49. package/dist/runtime/components/config/blocks/2026-05-06/com.shwfed.block.table/config.d.vue.ts +6 -0
  50. package/dist/runtime/components/config/blocks/2026-05-06/com.shwfed.block.table/config.vue.d.ts +6 -0
  51. package/dist/runtime/components/config/blocks/2026-05-06/com.shwfed.block.table/runtime.d.vue.ts +6 -0
  52. package/dist/runtime/components/config/blocks/2026-05-06/com.shwfed.block.table/runtime.vue.d.ts +6 -0
  53. package/dist/runtime/components/config/blocks/2026-05-06/com.shwfed.block.table/schema.d.ts +7 -0
  54. package/dist/runtime/components/config/blocks/2026-05-06/com.shwfed.block.tabs/config.d.vue.ts +1 -1
  55. package/dist/runtime/components/config/blocks/2026-05-06/com.shwfed.block.tabs/config.vue +16 -2
  56. package/dist/runtime/components/config/blocks/2026-05-06/com.shwfed.block.tabs/config.vue.d.ts +1 -1
  57. package/dist/runtime/components/config/blocks/2026-05-06/com.shwfed.block.tabs/runtime.vue +1 -0
  58. package/dist/runtime/components/config/blocks/2026-05-06/com.shwfed.block.tabs/schema.d.ts +18 -9
  59. package/dist/runtime/components/config/blocks/2026-05-06/com.shwfed.block.tabs/schema.js +8 -4
  60. package/dist/runtime/components/config/blocks/2026-05-17/com.shwfed.block.chart.line/config.d.vue.ts +77 -0
  61. package/dist/runtime/components/config/blocks/2026-05-17/com.shwfed.block.chart.line/config.vue +535 -0
  62. package/dist/runtime/components/config/blocks/2026-05-17/com.shwfed.block.chart.line/config.vue.d.ts +77 -0
  63. package/dist/runtime/components/config/blocks/2026-05-17/com.shwfed.block.chart.line/runtime.d.vue.ts +77 -0
  64. package/dist/runtime/components/config/blocks/2026-05-17/com.shwfed.block.chart.line/runtime.vue +233 -0
  65. package/dist/runtime/components/config/blocks/2026-05-17/com.shwfed.block.chart.line/runtime.vue.d.ts +77 -0
  66. package/dist/runtime/components/config/blocks/2026-05-17/com.shwfed.block.chart.line/schema.d.ts +134 -0
  67. package/dist/runtime/components/config/blocks/2026-05-17/com.shwfed.block.chart.line/schema.js +142 -0
  68. package/dist/runtime/components/config/index.vue +1 -1
  69. package/dist/runtime/components/config/use-editor.js +4 -3
  70. package/dist/runtime/components/form/DerivedValueEditor.d.vue.ts +19 -0
  71. package/dist/runtime/components/form/DerivedValueEditor.vue +77 -0
  72. package/dist/runtime/components/form/DerivedValueEditor.vue.d.ts +19 -0
  73. package/dist/runtime/components/form/config.vue +58 -24
  74. package/dist/runtime/components/form/fields/2026-04-22/com.shwfed.form.field.text/config.d.vue.ts +8 -0
  75. package/dist/runtime/components/form/fields/2026-04-22/com.shwfed.form.field.text/config.vue +21 -0
  76. package/dist/runtime/components/form/fields/2026-04-22/com.shwfed.form.field.text/config.vue.d.ts +8 -0
  77. package/dist/runtime/components/form/fields/2026-04-22/com.shwfed.form.field.text/runtime.vue +29 -31
  78. package/dist/runtime/components/form/fields/2026-04-22/com.shwfed.form.field.text/schema.d.ts +4 -0
  79. package/dist/runtime/components/form/fields/2026-04-22/com.shwfed.form.field.text/schema.js +3 -2
  80. package/dist/runtime/components/form/fields/2026-04-22/com.shwfed.form.field.textarea/config.d.vue.ts +8 -0
  81. package/dist/runtime/components/form/fields/2026-04-22/com.shwfed.form.field.textarea/config.vue +21 -0
  82. package/dist/runtime/components/form/fields/2026-04-22/com.shwfed.form.field.textarea/config.vue.d.ts +8 -0
  83. package/dist/runtime/components/form/fields/2026-04-22/com.shwfed.form.field.textarea/runtime.vue +24 -26
  84. package/dist/runtime/components/form/fields/2026-04-22/com.shwfed.form.field.textarea/schema.d.ts +4 -0
  85. package/dist/runtime/components/form/fields/2026-04-22/com.shwfed.form.field.textarea/schema.js +3 -2
  86. package/dist/runtime/components/form/fields/2026-04-24/com.shwfed.form.field.combobox.single/config.d.vue.ts +10 -2
  87. package/dist/runtime/components/form/fields/2026-04-24/com.shwfed.form.field.combobox.single/config.vue +21 -0
  88. package/dist/runtime/components/form/fields/2026-04-24/com.shwfed.form.field.combobox.single/config.vue.d.ts +10 -2
  89. package/dist/runtime/components/form/fields/2026-04-24/com.shwfed.form.field.combobox.single/runtime.vue +15 -7
  90. package/dist/runtime/components/form/fields/2026-04-24/com.shwfed.form.field.combobox.single/schema.d.ts +4 -0
  91. package/dist/runtime/components/form/fields/2026-04-24/com.shwfed.form.field.combobox.single/schema.js +2 -1
  92. package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.date/config.d.vue.ts +10 -2
  93. package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.date/config.vue +21 -0
  94. package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.date/config.vue.d.ts +10 -2
  95. package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.date/runtime.vue +14 -6
  96. package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.date/schema.d.ts +4 -0
  97. package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.date/schema.js +2 -1
  98. package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.daterange/config.d.vue.ts +10 -2
  99. package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.daterange/config.vue +21 -0
  100. package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.daterange/config.vue.d.ts +10 -2
  101. package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.daterange/runtime.vue +14 -6
  102. package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.daterange/schema.d.ts +4 -0
  103. package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.daterange/schema.js +2 -1
  104. package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.datetime/config.d.vue.ts +12 -4
  105. package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.datetime/config.vue +21 -0
  106. package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.datetime/config.vue.d.ts +12 -4
  107. package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.datetime/runtime.vue +14 -6
  108. package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.datetime/schema.d.ts +4 -0
  109. package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.datetime/schema.js +2 -1
  110. package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.datetimerange/config.d.vue.ts +12 -4
  111. package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.datetimerange/config.vue +21 -0
  112. package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.datetimerange/config.vue.d.ts +12 -4
  113. package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.datetimerange/runtime.vue +14 -6
  114. package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.datetimerange/schema.d.ts +4 -0
  115. package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.datetimerange/schema.js +2 -1
  116. package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.time/config.d.vue.ts +12 -4
  117. package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.time/config.vue +21 -0
  118. package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.time/config.vue.d.ts +12 -4
  119. package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.time/runtime.vue +14 -6
  120. package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.time/schema.d.ts +4 -0
  121. package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.time/schema.js +2 -1
  122. package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.timerange/config.d.vue.ts +12 -4
  123. package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.timerange/config.vue +21 -0
  124. package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.timerange/config.vue.d.ts +12 -4
  125. package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.timerange/runtime.vue +14 -6
  126. package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.timerange/schema.d.ts +4 -0
  127. package/dist/runtime/components/form/fields/2026-04-27/com.shwfed.form.field.timerange/schema.js +2 -1
  128. package/dist/runtime/components/form/fields/2026-04-28/com.shwfed.form.field.number/config.d.vue.ts +8 -0
  129. package/dist/runtime/components/form/fields/2026-04-28/com.shwfed.form.field.number/config.vue +21 -0
  130. package/dist/runtime/components/form/fields/2026-04-28/com.shwfed.form.field.number/config.vue.d.ts +8 -0
  131. package/dist/runtime/components/form/fields/2026-04-28/com.shwfed.form.field.number/runtime.vue +37 -38
  132. package/dist/runtime/components/form/fields/2026-04-28/com.shwfed.form.field.number/schema.d.ts +4 -0
  133. package/dist/runtime/components/form/fields/2026-04-28/com.shwfed.form.field.number/schema.js +2 -1
  134. package/dist/runtime/components/form/fields/2026-04-28/com.shwfed.form.field.numberrange/config.d.vue.ts +10 -2
  135. package/dist/runtime/components/form/fields/2026-04-28/com.shwfed.form.field.numberrange/config.vue +21 -0
  136. package/dist/runtime/components/form/fields/2026-04-28/com.shwfed.form.field.numberrange/config.vue.d.ts +10 -2
  137. package/dist/runtime/components/form/fields/2026-04-28/com.shwfed.form.field.numberrange/runtime.vue +33 -22
  138. package/dist/runtime/components/form/fields/2026-04-28/com.shwfed.form.field.numberrange/schema.d.ts +4 -0
  139. package/dist/runtime/components/form/fields/2026-04-28/com.shwfed.form.field.numberrange/schema.js +2 -1
  140. package/dist/runtime/components/form/fields/2026-04-28/com.shwfed.form.field.switch/config.d.vue.ts +8 -0
  141. package/dist/runtime/components/form/fields/2026-04-28/com.shwfed.form.field.switch/config.vue +21 -0
  142. package/dist/runtime/components/form/fields/2026-04-28/com.shwfed.form.field.switch/config.vue.d.ts +8 -0
  143. package/dist/runtime/components/form/fields/2026-04-28/com.shwfed.form.field.switch/runtime.vue +14 -6
  144. package/dist/runtime/components/form/fields/2026-04-28/com.shwfed.form.field.switch/schema.d.ts +4 -0
  145. package/dist/runtime/components/form/fields/2026-04-28/com.shwfed.form.field.switch/schema.js +3 -2
  146. package/dist/runtime/components/form/fields/2026-04-29/com.shwfed.form.field.combobox.single/config.d.vue.ts +8 -0
  147. package/dist/runtime/components/form/fields/2026-04-29/com.shwfed.form.field.combobox.single/config.vue +21 -0
  148. package/dist/runtime/components/form/fields/2026-04-29/com.shwfed.form.field.combobox.single/config.vue.d.ts +8 -0
  149. package/dist/runtime/components/form/fields/2026-04-29/com.shwfed.form.field.combobox.single/runtime.vue +14 -7
  150. package/dist/runtime/components/form/fields/2026-04-29/com.shwfed.form.field.combobox.single/schema.d.ts +4 -0
  151. package/dist/runtime/components/form/fields/2026-04-29/com.shwfed.form.field.combobox.single/schema.js +2 -1
  152. package/dist/runtime/components/form/fields/2026-05-12/com.shwfed.form.field.upload/config.vue +1 -0
  153. package/dist/runtime/components/form/fields/2026-05-12/com.shwfed.form.field.upload/runtime.vue +13 -8
  154. package/dist/runtime/components/form/fields/2026-05-13/com.shwfed.form.field.combobox.single.remote/config.d.vue.ts +10 -2
  155. package/dist/runtime/components/form/fields/2026-05-13/com.shwfed.form.field.combobox.single.remote/config.vue +25 -1
  156. package/dist/runtime/components/form/fields/2026-05-13/com.shwfed.form.field.combobox.single.remote/config.vue.d.ts +10 -2
  157. package/dist/runtime/components/form/fields/2026-05-13/com.shwfed.form.field.combobox.single.remote/runtime.vue +102 -44
  158. package/dist/runtime/components/form/fields/2026-05-13/com.shwfed.form.field.combobox.single.remote/schema.d.ts +14 -0
  159. package/dist/runtime/components/form/fields/2026-05-13/com.shwfed.form.field.combobox.single.remote/schema.js +14 -5
  160. package/dist/runtime/components/form/fields/2026-05-13/com.shwfed.form.field.list/config.vue +1 -0
  161. package/dist/runtime/components/form/fields/2026-05-13/com.shwfed.form.field.list/row.vue +22 -5
  162. package/dist/runtime/components/form/fields/2026-05-13/com.shwfed.form.field.list/runtime.vue +7 -4
  163. package/dist/runtime/components/form/fields/2026-05-13/com.shwfed.form.field.list/schema.js +7 -1
  164. package/dist/runtime/components/form/fields/2026-05-17/com.shwfed.form.field.checkbox.group/config.d.vue.ts +113 -0
  165. package/dist/runtime/components/form/fields/2026-05-17/com.shwfed.form.field.checkbox.group/config.vue +426 -0
  166. package/dist/runtime/components/form/fields/2026-05-17/com.shwfed.form.field.checkbox.group/config.vue.d.ts +113 -0
  167. package/dist/runtime/components/{actions/buttons/2026-04-27/com.shwfed.actions.button.table.search → form/fields/2026-05-17/com.shwfed.form.field.checkbox.group}/runtime.d.vue.ts +1 -1
  168. package/dist/runtime/components/form/fields/2026-05-17/com.shwfed.form.field.checkbox.group/runtime.vue +176 -0
  169. package/dist/runtime/components/{actions/buttons/2026-04-27/com.shwfed.actions.button.table.search → form/fields/2026-05-17/com.shwfed.form.field.checkbox.group}/runtime.vue.d.ts +1 -1
  170. package/dist/runtime/components/form/fields/2026-05-17/com.shwfed.form.field.checkbox.group/schema.d.ts +121 -0
  171. package/dist/runtime/components/form/fields/2026-05-17/com.shwfed.form.field.checkbox.group/schema.js +78 -0
  172. package/dist/runtime/components/form/fields/2026-05-17/com.shwfed.form.field.radio.group/config.d.vue.ts +113 -0
  173. package/dist/runtime/components/form/fields/2026-05-17/com.shwfed.form.field.radio.group/config.vue +426 -0
  174. package/dist/runtime/components/form/fields/2026-05-17/com.shwfed.form.field.radio.group/config.vue.d.ts +113 -0
  175. package/dist/runtime/components/form/fields/2026-05-17/com.shwfed.form.field.radio.group/runtime.d.vue.ts +8 -0
  176. package/dist/runtime/components/form/fields/2026-05-17/com.shwfed.form.field.radio.group/runtime.vue +159 -0
  177. package/dist/runtime/components/form/fields/2026-05-17/com.shwfed.form.field.radio.group/runtime.vue.d.ts +8 -0
  178. package/dist/runtime/components/form/fields/2026-05-17/com.shwfed.form.field.radio.group/schema.d.ts +121 -0
  179. package/dist/runtime/components/form/fields/2026-05-17/com.shwfed.form.field.radio.group/schema.js +78 -0
  180. package/dist/runtime/components/form/index.d.vue.ts +6 -0
  181. package/dist/runtime/components/form/index.vue +41 -6
  182. package/dist/runtime/components/form/index.vue.d.ts +6 -0
  183. package/dist/runtime/components/form/schema.d.ts +5 -1
  184. package/dist/runtime/components/form/schema.js +13 -1
  185. package/dist/runtime/components/form/unit-config.d.vue.ts +0 -3
  186. package/dist/runtime/components/form/unit-config.vue +4 -10
  187. package/dist/runtime/components/form/unit-config.vue.d.ts +0 -3
  188. package/dist/runtime/components/form/utils/commit-bus.d.ts +26 -0
  189. package/dist/runtime/components/form/utils/commit-bus.js +27 -0
  190. package/dist/runtime/components/form/utils/common.d.ts +27 -0
  191. package/dist/runtime/components/form/utils/common.js +31 -0
  192. package/dist/runtime/components/form/utils/derived.d.ts +72 -0
  193. package/dist/runtime/components/form/utils/derived.js +116 -0
  194. package/dist/runtime/components/form/utils/field-value.d.ts +35 -0
  195. package/dist/runtime/components/form/utils/field-value.js +40 -0
  196. package/dist/runtime/components/form/utils/history.d.ts +36 -0
  197. package/dist/runtime/components/form/utils/history.js +74 -0
  198. package/dist/runtime/components/form/utils/readonly.d.ts +8 -0
  199. package/dist/runtime/components/form/utils/readonly.js +9 -0
  200. package/dist/runtime/components/form/utils/state.d.ts +27 -1
  201. package/dist/runtime/components/form/utils/state.js +16 -8
  202. package/dist/runtime/components/table/ai/columns-button.vue +3 -4
  203. package/dist/runtime/components/table/ai/data-source-button.vue +3 -4
  204. package/dist/runtime/components/table/columns/2026-04-14/com.shwfed.table.column.icon/runtime.vue +2 -3
  205. package/dist/runtime/components/table/columns/2026-04-14/com.shwfed.table.column.markdown/runtime.vue +2 -3
  206. package/dist/runtime/components/table/columns/2026-04-14/com.shwfed.table.column.select/runtime.vue +2 -3
  207. package/dist/runtime/components/table/columns/2026-04-14/com.shwfed.table.column.text/runtime.vue +2 -3
  208. package/dist/runtime/components/table/columns/2026-05-13/com.shwfed.table.column.switch/runtime.vue +11 -6
  209. package/dist/runtime/components/table/config.vue +46 -2
  210. package/dist/runtime/components/table/index.d.vue.ts +4 -0
  211. package/dist/runtime/components/table/index.vue +28 -22
  212. package/dist/runtime/components/table/index.vue.d.ts +4 -0
  213. package/dist/runtime/components/table/schema.d.ts +33 -0
  214. package/dist/runtime/components/table/schema.js +21 -0
  215. package/dist/runtime/components/table/utils/instance.d.ts +2 -0
  216. package/dist/runtime/components/table/utils/instance.js +8 -0
  217. package/dist/runtime/components/ui/date-picker/DatePickerInput.vue +2 -2
  218. package/dist/runtime/components/ui/date-picker/DatePickerTimeInput.vue +2 -2
  219. package/dist/runtime/components/ui/date-range-picker/DateRangePickerInput.vue +2 -2
  220. package/dist/runtime/components/ui/date-range-picker/DateRangePickerTimeInput.vue +2 -2
  221. package/dist/runtime/components/ui/expression-editor/ExpressionEditor.d.vue.ts +13 -1
  222. package/dist/runtime/components/ui/expression-editor/ExpressionEditor.vue +11 -3
  223. package/dist/runtime/components/ui/expression-editor/ExpressionEditor.vue.d.ts +13 -1
  224. package/dist/runtime/components/ui/locale/Locale.vue +2 -2
  225. package/dist/runtime/components/ui/radio-group/RadioGroup.d.vue.ts +22 -0
  226. package/dist/runtime/components/ui/radio-group/RadioGroup.vue +32 -0
  227. package/dist/runtime/components/ui/radio-group/RadioGroup.vue.d.ts +22 -0
  228. package/dist/runtime/components/ui/radio-group/RadioGroupItem.d.vue.ts +8 -0
  229. package/dist/runtime/components/ui/radio-group/RadioGroupItem.vue +36 -0
  230. package/dist/runtime/components/ui/radio-group/RadioGroupItem.vue.d.ts +8 -0
  231. package/dist/runtime/components/ui/radio-group/index.d.ts +2 -0
  232. package/dist/runtime/components/ui/radio-group/index.js +2 -0
  233. package/dist/runtime/composables/useOverlay.d.ts +1 -5
  234. package/dist/runtime/composables/useOverlay.js +4 -3
  235. package/dist/runtime/composables/useTranslateLocale.js +1 -2
  236. package/dist/runtime/share/event-bus.d.ts +118 -0
  237. package/dist/runtime/share/event-bus.js +55 -0
  238. package/dist/runtime/share/expression.d.ts +7 -0
  239. package/dist/runtime/share/expression.js +3 -1
  240. package/dist/runtime/share/layout.d.ts +1 -0
  241. package/dist/runtime/share/layout.js +3 -2
  242. package/dist/runtime/share/slot-renderer.vue +6 -4
  243. package/dist/runtime/{plugins → utils}/ai/cel-prompt.d.ts +1 -1
  244. package/dist/runtime/{plugins → utils}/ai/index.d.ts +1 -6
  245. package/dist/runtime/{plugins → utils}/ai/index.js +5 -14
  246. package/dist/runtime/utils/cel.d.ts +5 -0
  247. package/dist/runtime/utils/cel.js +42 -0
  248. package/dist/runtime/vendor/cel-js/CLAUDE.md +8 -2
  249. package/dist/runtime/vendor/cel-js/PROMPT.md +35 -10
  250. package/dist/runtime/vendor/cel-js/lib/functions.js +63 -1
  251. package/dist/runtime/vendor/cel-js/lib/http-builder.d.ts +35 -0
  252. package/dist/runtime/{plugins/http/builder.js → vendor/cel-js/lib/http-builder.js} +25 -23
  253. package/dist/runtime/vendor/cel-js/lib/http-builtins.d.ts +9 -10
  254. package/dist/runtime/vendor/cel-js/lib/http-builtins.js +53 -13
  255. package/dist/types.d.mts +7 -1
  256. package/package.json +1 -1
  257. package/dist/runtime/components/actions/buttons/2026-04-27/com.shwfed.actions.button.table.reset/config.vue +0 -10
  258. package/dist/runtime/components/actions/buttons/2026-04-27/com.shwfed.actions.button.table.reset/runtime.vue +0 -25
  259. package/dist/runtime/components/actions/buttons/2026-04-27/com.shwfed.actions.button.table.reset/schema.d.ts +0 -13
  260. package/dist/runtime/components/actions/buttons/2026-04-27/com.shwfed.actions.button.table.reset/schema.js +0 -16
  261. package/dist/runtime/components/actions/buttons/2026-04-27/com.shwfed.actions.button.table.search/config.d.vue.ts +0 -17
  262. package/dist/runtime/components/actions/buttons/2026-04-27/com.shwfed.actions.button.table.search/config.vue +0 -10
  263. package/dist/runtime/components/actions/buttons/2026-04-27/com.shwfed.actions.button.table.search/config.vue.d.ts +0 -17
  264. package/dist/runtime/components/actions/buttons/2026-04-27/com.shwfed.actions.button.table.search/schema.d.ts +0 -13
  265. package/dist/runtime/components/actions/buttons/2026-04-27/com.shwfed.actions.button.table.search/schema.js +0 -16
  266. package/dist/runtime/components/table/utils/host.d.ts +0 -9
  267. package/dist/runtime/components/table/utils/host.js +0 -8
  268. package/dist/runtime/composables/useCel.d.ts +0 -16
  269. package/dist/runtime/composables/useCel.js +0 -8
  270. package/dist/runtime/middleware/token.d.ts +0 -2
  271. package/dist/runtime/middleware/token.js +0 -20
  272. package/dist/runtime/plugins/cel/http.d.ts +0 -8
  273. package/dist/runtime/plugins/cel/http.js +0 -49
  274. package/dist/runtime/plugins/cel/index.d.ts +0 -9
  275. package/dist/runtime/plugins/cel/index.js +0 -59
  276. package/dist/runtime/plugins/http/builder.d.ts +0 -14
  277. package/dist/runtime/plugins/http/index.d.ts +0 -19
  278. package/dist/runtime/plugins/http/index.js +0 -35
  279. package/dist/runtime/plugins/toast/index.d.ts +0 -108
  280. package/dist/runtime/plugins/toast/index.js +0 -10
  281. package/dist/runtime/types.d.ts +0 -25
  282. /package/dist/runtime/components/actions/buttons/{2026-04-27/com.shwfed.actions.button.table.reset → 2026-05-15/com.shwfed.actions.button.event.dispatch}/runtime.d.vue.ts +0 -0
  283. /package/dist/runtime/components/actions/buttons/{2026-04-27/com.shwfed.actions.button.table.reset → 2026-05-15/com.shwfed.actions.button.event.dispatch}/runtime.vue.d.ts +0 -0
  284. /package/dist/runtime/{plugins → utils}/ai/cel-prompt.js +0 -0
  285. /package/dist/runtime/{plugins/cel/context.d.ts → utils/cel-context.d.ts} +0 -0
  286. /package/dist/runtime/{plugins/cel/context.js → utils/cel-context.js} +0 -0
@@ -4,6 +4,7 @@ import { computed } from "vue";
4
4
  import { format as formatDate } from "date-fns";
5
5
  import { Button } from "../../../../ui/button";
6
6
  import { ExpressionEditor } from "../../../../ui/expression-editor";
7
+ import DerivedValueEditor from "../../../DerivedValueEditor.vue";
7
8
  import { Field, FieldLabel } from "../../../../ui/field";
8
9
  import { InputGroup, InputGroupAddon, InputGroupButton, InputGroupInput, InputGroupText } from "../../../../ui/input-group";
9
10
  import { Locale as LocaleField } from "../../../../ui/locale";
@@ -240,6 +241,7 @@ const valueFormatExample = computed(() => previewFormat(value.value.valueFormat
240
241
  {{ fieldTitle("tooltip") }}
241
242
  </FieldLabel>
242
243
  <LocaleField
244
+ markdown
243
245
  :model-value="value.tooltip"
244
246
  @update:model-value="(v) => value = { ...value, tooltip: v }"
245
247
  />
@@ -550,5 +552,24 @@ const valueFormatExample = computed(() => previewFormat(value.value.valueFormat
550
552
  />
551
553
  </Field>
552
554
  </div>
555
+
556
+ <Field orientation="vertical">
557
+ <FieldLabel class="text-xs text-zinc-500">
558
+ <template #tooltip>
559
+ <Markdown
560
+ :source="fieldDescription('derived')"
561
+ block
562
+ class="prose prose-sm prose-zinc"
563
+ />
564
+ </template>
565
+ {{ fieldTitle("derived") }}
566
+ </FieldLabel>
567
+ <DerivedValueEditor
568
+ :model-value="value.derived"
569
+ result-type="string"
570
+ placeholder="例:form.createdAt"
571
+ @update:model-value="(v) => value = { ...value, derived: v }"
572
+ />
573
+ </Field>
553
574
  </div>
554
575
  </template>
@@ -33,11 +33,15 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
33
33
  readonly message: string;
34
34
  }[]] | undefined;
35
35
  readonly readonly?: string | undefined;
36
+ readonly binding?: string | undefined;
37
+ readonly derived?: {
38
+ readonly mode: "formula" | "prefill";
39
+ readonly expression: string;
40
+ } | undefined;
36
41
  readonly format?: string | undefined;
37
42
  readonly hourCycle?: 12 | 24 | undefined;
38
43
  readonly valueFormat?: string | undefined;
39
- readonly timeGranularity?: "second" | "minute" | "hour" | undefined;
40
- readonly binding?: string | undefined;
44
+ readonly timeGranularity?: "hour" | "minute" | "second" | undefined;
41
45
  readonly presets?: readonly {
42
46
  readonly label: readonly [{
43
47
  readonly locale: "zh";
@@ -81,11 +85,15 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
81
85
  readonly message: string;
82
86
  }[]] | undefined;
83
87
  readonly readonly?: string | undefined;
88
+ readonly binding?: string | undefined;
89
+ readonly derived?: {
90
+ readonly mode: "formula" | "prefill";
91
+ readonly expression: string;
92
+ } | undefined;
84
93
  readonly format?: string | undefined;
85
94
  readonly hourCycle?: 12 | 24 | undefined;
86
95
  readonly valueFormat?: string | undefined;
87
- readonly timeGranularity?: "second" | "minute" | "hour" | undefined;
88
- readonly binding?: string | undefined;
96
+ readonly timeGranularity?: "hour" | "minute" | "second" | undefined;
89
97
  readonly presets?: readonly {
90
98
  readonly label: readonly [{
91
99
  readonly locale: "zh";
@@ -1,14 +1,16 @@
1
1
  <script setup>
2
- import { useNuxtApp } from "#app";
3
2
  import { format as formatDate } from "date-fns";
4
3
  import { Effect } from "effect";
5
4
  import { computed, ref } from "vue";
6
5
  import { useI18n } from "vue-i18n";
7
- import { celBindings, injectCELContext } from "../../../../../plugins/cel/context";
6
+ import { cel as _rawCel } from "../../../../../utils/cel";
7
+ import { celBindings, injectCELContext } from "../../../../../utils/cel-context";
8
8
  import { getLocalizedText } from "../../../../../share/locale";
9
9
  import { DATE_PICKER_DEFAULT_FORMATS, DatePicker } from "../../../../ui/date-picker";
10
10
  import { Field, FieldLabel } from "../../../../ui/field";
11
+ import { Markdown } from "../../../../ui/markdown";
11
12
  import { DEFAULT_FIELD_ORIENTATION } from "../../../utils/common";
13
+ import { useFormReadonly } from "../../../utils/readonly";
12
14
  import { useFormState } from "../../../utils/state";
13
15
  defineOptions({ name: "ShwfedDateTimeFieldRuntime" });
14
16
  const props = defineProps({
@@ -17,7 +19,6 @@ const props = defineProps({
17
19
  });
18
20
  const { locale } = useI18n();
19
21
  const { state, getAt, setAt } = useFormState();
20
- const { $cel: _rawCel } = useNuxtApp();
21
22
  const inherited = injectCELContext();
22
23
  const $cel = (expression, context) => _rawCel(expression, { ...celBindings(inherited), ...context });
23
24
  const labelText = computed(() => getLocalizedText(props.config.label, locale.value));
@@ -37,7 +38,11 @@ function evalBool(expression, label) {
37
38
  }
38
39
  }
39
40
  const isDisabled = computed(() => evalBool(props.config.disabled, "disabled"));
40
- const isReadonly = computed(() => evalBool(props.config.readonly, "readonly"));
41
+ const formReadonly = useFormReadonly();
42
+ const isReadonly = computed(
43
+ () => props.config.readonly != null ? evalBool(props.config.readonly, "readonly") : formReadonly.value
44
+ );
45
+ const effectiveReadonly = computed(() => isReadonly.value || props.config.derived?.mode === "formula");
41
46
  const resolvedValueFormat = computed(
42
47
  () => props.config.valueFormat ?? DATE_PICKER_DEFAULT_FORMATS.datetime.value
43
48
  );
@@ -90,12 +95,15 @@ const model = computed({
90
95
  v-if="tooltipText"
91
96
  #tooltip
92
97
  >
93
- {{ tooltipText }}
98
+ <Markdown
99
+ :source="tooltipText"
100
+ class="prose prose-xs prose-zinc"
101
+ />
94
102
  </template>
95
103
  {{ labelText }}
96
104
  </FieldLabel>
97
105
  <div
98
- v-if="isReadonly"
106
+ v-if="effectiveReadonly"
99
107
  class="min-h-9 py-1.5 text-sm text-zinc-700"
100
108
  >
101
109
  {{ model || "\u2014" }}
@@ -63,6 +63,10 @@ export declare function schema(configure: (env: Environment) => void): Schema.St
63
63
  binding: Schema.optional<Schema.refine<string, typeof Schema.String>>;
64
64
  disabled: Schema.optional<Schema.Schema<string, string, never>>;
65
65
  readonly: Schema.optional<Schema.Schema<string, string, never>>;
66
+ derived: Schema.optional<Schema.Struct<{
67
+ mode: Schema.Literal<["formula", "prefill"]>;
68
+ expression: Schema.Schema<string, string, never>;
69
+ }>>;
66
70
  format: Schema.optional<Schema.refine<string, typeof Schema.String>>;
67
71
  valueFormat: Schema.optional<Schema.refine<string, typeof Schema.String>>;
68
72
  timeGranularity: Schema.optional<Schema.Literal<["hour", "minute", "second"]>>;
@@ -1,7 +1,7 @@
1
1
  import { Schema } from "effect";
2
2
  import { Expression } from "../../../../../share/expression.js";
3
3
  import { Locale } from "../../../../../share/locale.js";
4
- import { commonFieldFields, FieldOrientationSchema } from "../../../utils/common.js";
4
+ import { commonFieldFields, derivedField, FieldOrientationSchema } from "../../../utils/common.js";
5
5
  export const type = "com.shwfed.form.field.datetime";
6
6
  export const compatibilityDate = "2026-04-27";
7
7
  export const metadata = {
@@ -68,6 +68,7 @@ export function schema(configure) {
68
68
  title: "\u53EA\u8BFB\u6761\u4EF6",
69
69
  description: "\u8FD4\u56DE `true` \u65F6\u4EC5\u4EE5\u7EAF\u6587\u672C\u5C55\u793A\u5F53\u524D\u503C"
70
70
  })),
71
+ derived: derivedField(configure, "string"),
71
72
  format: Schema.optional(Schema.String.pipe(Schema.minLength(1)).annotations({
72
73
  title: "\u5C55\u793A\u683C\u5F0F",
73
74
  description: "\u8F93\u5165\u6846\u4E2D\u5C55\u793A\u65E5\u671F\u65F6\u95F4\u7684 `date-fns` \u683C\u5F0F\u4E32\uFF1B\u7559\u7A7A\u65F6\u4F7F\u7528\u9ED8\u8BA4 `yyyy-MM-dd HH:mm:ss`"
@@ -26,11 +26,16 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
26
26
  readonly compatibilityDate: "2026-04-27";
27
27
  readonly orientation?: "vertical" | "floating" | undefined;
28
28
  readonly readonly?: string | undefined;
29
+ readonly binding?: string | readonly [string, string] | undefined;
30
+ readonly derived?: {
31
+ readonly mode: "formula" | "prefill";
32
+ readonly expression: string;
33
+ } | undefined;
29
34
  readonly format?: string | undefined;
30
35
  readonly numberOfMonths?: number | undefined;
31
36
  readonly hourCycle?: 12 | 24 | undefined;
32
37
  readonly valueFormat?: string | undefined;
33
- readonly timeGranularity?: "second" | "minute" | "hour" | undefined;
38
+ readonly timeGranularity?: "hour" | "minute" | "second" | undefined;
34
39
  readonly rangeSeparatorIcon?: string | undefined;
35
40
  readonly startPlaceholder?: readonly [{
36
41
  readonly locale: "zh";
@@ -46,7 +51,6 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
46
51
  readonly locale: "en" | "ja" | "ko";
47
52
  readonly message: string;
48
53
  }[]] | undefined;
49
- readonly binding?: string | readonly [string, string] | undefined;
50
54
  readonly presets?: readonly {
51
55
  readonly label: readonly [{
52
56
  readonly locale: "zh";
@@ -84,11 +88,16 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
84
88
  readonly compatibilityDate: "2026-04-27";
85
89
  readonly orientation?: "vertical" | "floating" | undefined;
86
90
  readonly readonly?: string | undefined;
91
+ readonly binding?: string | readonly [string, string] | undefined;
92
+ readonly derived?: {
93
+ readonly mode: "formula" | "prefill";
94
+ readonly expression: string;
95
+ } | undefined;
87
96
  readonly format?: string | undefined;
88
97
  readonly numberOfMonths?: number | undefined;
89
98
  readonly hourCycle?: 12 | 24 | undefined;
90
99
  readonly valueFormat?: string | undefined;
91
- readonly timeGranularity?: "second" | "minute" | "hour" | undefined;
100
+ readonly timeGranularity?: "hour" | "minute" | "second" | undefined;
92
101
  readonly rangeSeparatorIcon?: string | undefined;
93
102
  readonly startPlaceholder?: readonly [{
94
103
  readonly locale: "zh";
@@ -104,7 +113,6 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
104
113
  readonly locale: "en" | "ja" | "ko";
105
114
  readonly message: string;
106
115
  }[]] | undefined;
107
- readonly binding?: string | readonly [string, string] | undefined;
108
116
  readonly presets?: readonly {
109
117
  readonly label: readonly [{
110
118
  readonly locale: "zh";
@@ -4,6 +4,7 @@ import { computed } from "vue";
4
4
  import { format as formatDate } from "date-fns";
5
5
  import { Button } from "../../../../ui/button";
6
6
  import { ExpressionEditor } from "../../../../ui/expression-editor";
7
+ import DerivedValueEditor from "../../../DerivedValueEditor.vue";
7
8
  import { Field, FieldLabel } from "../../../../ui/field";
8
9
  import { IconPicker } from "../../../../ui/icon-picker";
9
10
  import { InputGroup, InputGroupAddon, InputGroupButton, InputGroupInput, InputGroupNumberField, InputGroupText } from "../../../../ui/input-group";
@@ -317,6 +318,7 @@ const valueFormatExample = computed(() => previewFormat(value.value.valueFormat
317
318
  {{ fieldTitle("tooltip") }}
318
319
  </FieldLabel>
319
320
  <LocaleField
321
+ markdown
320
322
  :model-value="value.tooltip"
321
323
  @update:model-value="(v) => value = { ...value, tooltip: v }"
322
324
  />
@@ -733,5 +735,24 @@ const valueFormatExample = computed(() => previewFormat(value.value.valueFormat
733
735
  />
734
736
  </Field>
735
737
  </div>
738
+
739
+ <Field orientation="vertical">
740
+ <FieldLabel class="text-xs text-zinc-500">
741
+ <template #tooltip>
742
+ <Markdown
743
+ :source="fieldDescription('derived')"
744
+ block
745
+ class="prose prose-sm prose-zinc"
746
+ />
747
+ </template>
748
+ {{ fieldTitle("derived") }}
749
+ </FieldLabel>
750
+ <DerivedValueEditor
751
+ :model-value="value.derived"
752
+ result-type="dyn"
753
+ placeholder="例:[form.from, form.to]"
754
+ @update:model-value="(v) => value = { ...value, derived: v }"
755
+ />
756
+ </Field>
736
757
  </div>
737
758
  </template>
@@ -26,11 +26,16 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
26
26
  readonly compatibilityDate: "2026-04-27";
27
27
  readonly orientation?: "vertical" | "floating" | undefined;
28
28
  readonly readonly?: string | undefined;
29
+ readonly binding?: string | readonly [string, string] | undefined;
30
+ readonly derived?: {
31
+ readonly mode: "formula" | "prefill";
32
+ readonly expression: string;
33
+ } | undefined;
29
34
  readonly format?: string | undefined;
30
35
  readonly numberOfMonths?: number | undefined;
31
36
  readonly hourCycle?: 12 | 24 | undefined;
32
37
  readonly valueFormat?: string | undefined;
33
- readonly timeGranularity?: "second" | "minute" | "hour" | undefined;
38
+ readonly timeGranularity?: "hour" | "minute" | "second" | undefined;
34
39
  readonly rangeSeparatorIcon?: string | undefined;
35
40
  readonly startPlaceholder?: readonly [{
36
41
  readonly locale: "zh";
@@ -46,7 +51,6 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
46
51
  readonly locale: "en" | "ja" | "ko";
47
52
  readonly message: string;
48
53
  }[]] | undefined;
49
- readonly binding?: string | readonly [string, string] | undefined;
50
54
  readonly presets?: readonly {
51
55
  readonly label: readonly [{
52
56
  readonly locale: "zh";
@@ -84,11 +88,16 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
84
88
  readonly compatibilityDate: "2026-04-27";
85
89
  readonly orientation?: "vertical" | "floating" | undefined;
86
90
  readonly readonly?: string | undefined;
91
+ readonly binding?: string | readonly [string, string] | undefined;
92
+ readonly derived?: {
93
+ readonly mode: "formula" | "prefill";
94
+ readonly expression: string;
95
+ } | undefined;
87
96
  readonly format?: string | undefined;
88
97
  readonly numberOfMonths?: number | undefined;
89
98
  readonly hourCycle?: 12 | 24 | undefined;
90
99
  readonly valueFormat?: string | undefined;
91
- readonly timeGranularity?: "second" | "minute" | "hour" | undefined;
100
+ readonly timeGranularity?: "hour" | "minute" | "second" | undefined;
92
101
  readonly rangeSeparatorIcon?: string | undefined;
93
102
  readonly startPlaceholder?: readonly [{
94
103
  readonly locale: "zh";
@@ -104,7 +113,6 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
104
113
  readonly locale: "en" | "ja" | "ko";
105
114
  readonly message: string;
106
115
  }[]] | undefined;
107
- readonly binding?: string | readonly [string, string] | undefined;
108
116
  readonly presets?: readonly {
109
117
  readonly label: readonly [{
110
118
  readonly locale: "zh";
@@ -1,14 +1,16 @@
1
1
  <script setup>
2
- import { useNuxtApp } from "#app";
3
2
  import { format as formatDate } from "date-fns";
4
3
  import { Effect } from "effect";
5
4
  import { computed, ref } from "vue";
6
5
  import { useI18n } from "vue-i18n";
7
- import { celBindings, injectCELContext } from "../../../../../plugins/cel/context";
6
+ import { cel as _rawCel } from "../../../../../utils/cel";
7
+ import { celBindings, injectCELContext } from "../../../../../utils/cel-context";
8
8
  import { getLocalizedText } from "../../../../../share/locale";
9
9
  import { DATE_RANGE_PICKER_DEFAULT_FORMATS, DateRangePicker } from "../../../../ui/date-range-picker";
10
10
  import { Field, FieldLabel } from "../../../../ui/field";
11
+ import { Markdown } from "../../../../ui/markdown";
11
12
  import { DEFAULT_FIELD_ORIENTATION } from "../../../utils/common";
13
+ import { useFormReadonly } from "../../../utils/readonly";
12
14
  import { useFormState } from "../../../utils/state";
13
15
  defineOptions({ name: "ShwfedDateTimeRangeFieldRuntime" });
14
16
  const props = defineProps({
@@ -17,7 +19,6 @@ const props = defineProps({
17
19
  });
18
20
  const { locale } = useI18n();
19
21
  const { state, getAt, setAt } = useFormState();
20
- const { $cel: _rawCel } = useNuxtApp();
21
22
  const inherited = injectCELContext();
22
23
  const $cel = (expression, context) => _rawCel(expression, { ...celBindings(inherited), ...context });
23
24
  const labelText = computed(() => getLocalizedText(props.config.label, locale.value));
@@ -40,7 +41,11 @@ function evalBool(expression, label) {
40
41
  }
41
42
  }
42
43
  const isDisabled = computed(() => evalBool(props.config.disabled, "disabled"));
43
- const isReadonly = computed(() => evalBool(props.config.readonly, "readonly"));
44
+ const formReadonly = useFormReadonly();
45
+ const isReadonly = computed(
46
+ () => props.config.readonly != null ? evalBool(props.config.readonly, "readonly") : formReadonly.value
47
+ );
48
+ const effectiveReadonly = computed(() => isReadonly.value || props.config.derived?.mode === "formula");
44
49
  const resolvedValueFormat = computed(
45
50
  () => props.config.valueFormat ?? DATE_RANGE_PICKER_DEFAULT_FORMATS.datetimerange.value
46
51
  );
@@ -120,12 +125,15 @@ const readonlyText = computed(() => {
120
125
  v-if="tooltipText"
121
126
  #tooltip
122
127
  >
123
- {{ tooltipText }}
128
+ <Markdown
129
+ :source="tooltipText"
130
+ class="prose prose-xs prose-zinc"
131
+ />
124
132
  </template>
125
133
  {{ labelText }}
126
134
  </FieldLabel>
127
135
  <div
128
- v-if="isReadonly"
136
+ v-if="effectiveReadonly"
129
137
  class="min-h-9 py-1.5 text-sm text-zinc-700"
130
138
  >
131
139
  {{ readonlyText }}
@@ -71,6 +71,10 @@ export declare function schema(configure: (env: Environment) => void): Schema.St
71
71
  binding: Schema.optional<Schema.Union<[Schema.filter<typeof Schema.String>, Schema.filter<Schema.Tuple2<Schema.filter<typeof Schema.String>, Schema.filter<typeof Schema.String>>>]>>;
72
72
  disabled: Schema.optional<Schema.Schema<string, string, never>>;
73
73
  readonly: Schema.optional<Schema.Schema<string, string, never>>;
74
+ derived: Schema.optional<Schema.Struct<{
75
+ mode: Schema.Literal<["formula", "prefill"]>;
76
+ expression: Schema.Schema<string, string, never>;
77
+ }>>;
74
78
  format: Schema.optional<Schema.refine<string, typeof Schema.String>>;
75
79
  valueFormat: Schema.optional<Schema.refine<string, typeof Schema.String>>;
76
80
  rangeSeparatorIcon: Schema.optional<Schema.refine<string, typeof Schema.String>>;
@@ -1,7 +1,7 @@
1
1
  import { Schema } from "effect";
2
2
  import { Expression } from "../../../../../share/expression.js";
3
3
  import { Locale } from "../../../../../share/locale.js";
4
- import { commonFieldFields, FieldOrientationSchema } from "../../../utils/common.js";
4
+ import { commonFieldFields, derivedField, FieldOrientationSchema } from "../../../utils/common.js";
5
5
  export const type = "com.shwfed.form.field.datetimerange";
6
6
  export const compatibilityDate = "2026-04-27";
7
7
  const BindingPath = Schema.String.pipe(Schema.minLength(1));
@@ -83,6 +83,7 @@ export function schema(configure) {
83
83
  title: "\u53EA\u8BFB\u6761\u4EF6",
84
84
  description: "\u8FD4\u56DE `true` \u65F6\u4EC5\u4EE5\u7EAF\u6587\u672C\u5C55\u793A\u5F53\u524D\u503C"
85
85
  })),
86
+ derived: derivedField(configure, "dyn"),
86
87
  format: Schema.optional(Schema.String.pipe(Schema.minLength(1)).annotations({
87
88
  title: "\u5C55\u793A\u683C\u5F0F",
88
89
  description: "\u8F93\u5165\u6846\u4E2D\u5C55\u793A\u65E5\u671F\u65F6\u95F4\u7684 `date-fns` \u683C\u5F0F\u4E32\uFF1B\u7559\u7A7A\u65F6\u4F7F\u7528\u9ED8\u8BA4 `yyyy-MM-dd HH:mm:ss`"
@@ -26,10 +26,14 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
26
26
  readonly compatibilityDate: "2026-04-27";
27
27
  readonly orientation?: "vertical" | "floating" | undefined;
28
28
  readonly readonly?: string | undefined;
29
+ readonly binding?: string | undefined;
30
+ readonly derived?: {
31
+ readonly mode: "formula" | "prefill";
32
+ readonly expression: string;
33
+ } | undefined;
29
34
  readonly hourCycle?: 12 | 24 | undefined;
30
35
  readonly valueFormat?: string | undefined;
31
- readonly timeGranularity?: "second" | "minute" | "hour" | undefined;
32
- readonly binding?: string | undefined;
36
+ readonly timeGranularity?: "hour" | "minute" | "second" | undefined;
33
37
  }) => any;
34
38
  }, string, import("vue").PublicProps, Readonly<__VLS_ModelProps> & Readonly<{
35
39
  "onUpdate:modelValue"?: ((value: {
@@ -55,10 +59,14 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
55
59
  readonly compatibilityDate: "2026-04-27";
56
60
  readonly orientation?: "vertical" | "floating" | undefined;
57
61
  readonly readonly?: string | undefined;
62
+ readonly binding?: string | undefined;
63
+ readonly derived?: {
64
+ readonly mode: "formula" | "prefill";
65
+ readonly expression: string;
66
+ } | undefined;
58
67
  readonly hourCycle?: 12 | 24 | undefined;
59
68
  readonly valueFormat?: string | undefined;
60
- readonly timeGranularity?: "second" | "minute" | "hour" | undefined;
61
- readonly binding?: string | undefined;
69
+ readonly timeGranularity?: "hour" | "minute" | "second" | undefined;
62
70
  }) => any) | undefined;
63
71
  }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
64
72
  declare const _default: typeof __VLS_export;
@@ -2,6 +2,7 @@
2
2
  import { computed } from "vue";
3
3
  import { format as formatDate } from "date-fns";
4
4
  import { ExpressionEditor } from "../../../../ui/expression-editor";
5
+ import DerivedValueEditor from "../../../DerivedValueEditor.vue";
5
6
  import { Field, FieldLabel } from "../../../../ui/field";
6
7
  import { InputGroup, InputGroupAddon, InputGroupInput, InputGroupText } from "../../../../ui/input-group";
7
8
  import { Locale as LocaleField } from "../../../../ui/locale";
@@ -165,6 +166,7 @@ const valueFormatExample = computed(() => {
165
166
  {{ fieldTitle("tooltip") }}
166
167
  </FieldLabel>
167
168
  <LocaleField
169
+ markdown
168
170
  :model-value="value.tooltip"
169
171
  @update:model-value="(v) => value = { ...value, tooltip: v }"
170
172
  />
@@ -357,5 +359,24 @@ const valueFormatExample = computed(() => {
357
359
  />
358
360
  </Field>
359
361
  </div>
362
+
363
+ <Field orientation="vertical">
364
+ <FieldLabel class="text-xs text-zinc-500">
365
+ <template #tooltip>
366
+ <Markdown
367
+ :source="fieldDescription('derived')"
368
+ block
369
+ class="prose prose-sm prose-zinc"
370
+ />
371
+ </template>
372
+ {{ fieldTitle("derived") }}
373
+ </FieldLabel>
374
+ <DerivedValueEditor
375
+ :model-value="value.derived"
376
+ result-type="string"
377
+ placeholder="例:form.startTime"
378
+ @update:model-value="(v) => value = { ...value, derived: v }"
379
+ />
380
+ </Field>
360
381
  </div>
361
382
  </template>
@@ -26,10 +26,14 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
26
26
  readonly compatibilityDate: "2026-04-27";
27
27
  readonly orientation?: "vertical" | "floating" | undefined;
28
28
  readonly readonly?: string | undefined;
29
+ readonly binding?: string | undefined;
30
+ readonly derived?: {
31
+ readonly mode: "formula" | "prefill";
32
+ readonly expression: string;
33
+ } | undefined;
29
34
  readonly hourCycle?: 12 | 24 | undefined;
30
35
  readonly valueFormat?: string | undefined;
31
- readonly timeGranularity?: "second" | "minute" | "hour" | undefined;
32
- readonly binding?: string | undefined;
36
+ readonly timeGranularity?: "hour" | "minute" | "second" | undefined;
33
37
  }) => any;
34
38
  }, string, import("vue").PublicProps, Readonly<__VLS_ModelProps> & Readonly<{
35
39
  "onUpdate:modelValue"?: ((value: {
@@ -55,10 +59,14 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
55
59
  readonly compatibilityDate: "2026-04-27";
56
60
  readonly orientation?: "vertical" | "floating" | undefined;
57
61
  readonly readonly?: string | undefined;
62
+ readonly binding?: string | undefined;
63
+ readonly derived?: {
64
+ readonly mode: "formula" | "prefill";
65
+ readonly expression: string;
66
+ } | undefined;
58
67
  readonly hourCycle?: 12 | 24 | undefined;
59
68
  readonly valueFormat?: string | undefined;
60
- readonly timeGranularity?: "second" | "minute" | "hour" | undefined;
61
- readonly binding?: string | undefined;
69
+ readonly timeGranularity?: "hour" | "minute" | "second" | undefined;
62
70
  }) => any) | undefined;
63
71
  }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
64
72
  declare const _default: typeof __VLS_export;
@@ -1,13 +1,15 @@
1
1
  <script setup>
2
- import { useNuxtApp } from "#app";
3
2
  import { Effect } from "effect";
4
3
  import { computed, ref } from "vue";
5
4
  import { useI18n } from "vue-i18n";
6
- import { celBindings, injectCELContext } from "../../../../../plugins/cel/context";
5
+ import { cel as _rawCel } from "../../../../../utils/cel";
6
+ import { celBindings, injectCELContext } from "../../../../../utils/cel-context";
7
7
  import { getLocalizedText } from "../../../../../share/locale";
8
8
  import { DatePicker } from "../../../../ui/date-picker";
9
9
  import { Field, FieldLabel } from "../../../../ui/field";
10
+ import { Markdown } from "../../../../ui/markdown";
10
11
  import { DEFAULT_FIELD_ORIENTATION } from "../../../utils/common";
12
+ import { useFormReadonly } from "../../../utils/readonly";
11
13
  import { useFormState } from "../../../utils/state";
12
14
  defineOptions({ name: "ShwfedTimeFieldRuntime" });
13
15
  const props = defineProps({
@@ -16,7 +18,6 @@ const props = defineProps({
16
18
  });
17
19
  const { locale } = useI18n();
18
20
  const { state, getAt, setAt } = useFormState();
19
- const { $cel: _rawCel } = useNuxtApp();
20
21
  const inherited = injectCELContext();
21
22
  const $cel = (expression, context) => _rawCel(expression, { ...celBindings(inherited), ...context });
22
23
  const labelText = computed(() => getLocalizedText(props.config.label, locale.value));
@@ -33,7 +34,11 @@ function evalBool(expression, label) {
33
34
  }
34
35
  }
35
36
  const isDisabled = computed(() => evalBool(props.config.disabled, "disabled"));
36
- const isReadonly = computed(() => evalBool(props.config.readonly, "readonly"));
37
+ const formReadonly = useFormReadonly();
38
+ const isReadonly = computed(
39
+ () => props.config.readonly != null ? evalBool(props.config.readonly, "readonly") : formReadonly.value
40
+ );
41
+ const effectiveReadonly = computed(() => isReadonly.value || props.config.derived?.mode === "formula");
37
42
  const uncontrolled = ref(void 0);
38
43
  const model = computed({
39
44
  get: () => {
@@ -67,12 +72,15 @@ const model = computed({
67
72
  v-if="tooltipText"
68
73
  #tooltip
69
74
  >
70
- {{ tooltipText }}
75
+ <Markdown
76
+ :source="tooltipText"
77
+ class="prose prose-xs prose-zinc"
78
+ />
71
79
  </template>
72
80
  {{ labelText }}
73
81
  </FieldLabel>
74
82
  <div
75
- v-if="isReadonly"
83
+ v-if="effectiveReadonly"
76
84
  class="min-h-9 py-1.5 text-sm text-zinc-700"
77
85
  >
78
86
  {{ model || "\u2014" }}
@@ -45,6 +45,10 @@ export declare function schema(configure: (env: Environment) => void): Schema.St
45
45
  binding: Schema.optional<Schema.refine<string, typeof Schema.String>>;
46
46
  disabled: Schema.optional<Schema.Schema<string, string, never>>;
47
47
  readonly: Schema.optional<Schema.Schema<string, string, never>>;
48
+ derived: Schema.optional<Schema.Struct<{
49
+ mode: Schema.Literal<["formula", "prefill"]>;
50
+ expression: Schema.Schema<string, string, never>;
51
+ }>>;
48
52
  valueFormat: Schema.optional<Schema.refine<string, typeof Schema.String>>;
49
53
  timeGranularity: Schema.optional<Schema.Literal<["hour", "minute", "second"]>>;
50
54
  hourCycle: Schema.optional<Schema.Literal<[12, 24]>>;
@@ -1,7 +1,7 @@
1
1
  import { Schema } from "effect";
2
2
  import { Expression } from "../../../../../share/expression.js";
3
3
  import { Locale } from "../../../../../share/locale.js";
4
- import { commonFieldFields, FieldOrientationSchema } from "../../../utils/common.js";
4
+ import { commonFieldFields, derivedField, FieldOrientationSchema } from "../../../utils/common.js";
5
5
  export const type = "com.shwfed.form.field.time";
6
6
  export const compatibilityDate = "2026-04-27";
7
7
  export const metadata = {
@@ -47,6 +47,7 @@ export function schema(configure) {
47
47
  title: "\u53EA\u8BFB\u6761\u4EF6",
48
48
  description: "\u8FD4\u56DE `true` \u65F6\u4EC5\u4EE5\u7EAF\u6587\u672C\u5C55\u793A\u5F53\u524D\u503C"
49
49
  })),
50
+ derived: derivedField(configure, "string"),
50
51
  valueFormat: Schema.optional(Schema.String.pipe(Schema.minLength(1)).annotations({
51
52
  title: "\u5B58\u50A8\u683C\u5F0F",
52
53
  description: "\u5199\u5165\u8868\u5355\u72B6\u6001\u7684 `date-fns` \u683C\u5F0F\u4E32\uFF1B\u7559\u7A7A\u65F6\u4F7F\u7528\u9ED8\u8BA4 `HH:mm:ss`"
@@ -26,11 +26,15 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
26
26
  readonly compatibilityDate: "2026-04-27";
27
27
  readonly orientation?: "vertical" | "floating" | undefined;
28
28
  readonly readonly?: string | undefined;
29
+ readonly binding?: string | readonly [string, string] | undefined;
30
+ readonly derived?: {
31
+ readonly mode: "formula" | "prefill";
32
+ readonly expression: string;
33
+ } | undefined;
29
34
  readonly hourCycle?: 12 | 24 | undefined;
30
35
  readonly valueFormat?: string | undefined;
31
- readonly timeGranularity?: "second" | "minute" | "hour" | undefined;
36
+ readonly timeGranularity?: "hour" | "minute" | "second" | undefined;
32
37
  readonly rangeSeparatorIcon?: string | undefined;
33
- readonly binding?: string | readonly [string, string] | undefined;
34
38
  }) => any;
35
39
  }, string, import("vue").PublicProps, Readonly<__VLS_ModelProps> & Readonly<{
36
40
  "onUpdate:modelValue"?: ((value: {
@@ -56,11 +60,15 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {},
56
60
  readonly compatibilityDate: "2026-04-27";
57
61
  readonly orientation?: "vertical" | "floating" | undefined;
58
62
  readonly readonly?: string | undefined;
63
+ readonly binding?: string | readonly [string, string] | undefined;
64
+ readonly derived?: {
65
+ readonly mode: "formula" | "prefill";
66
+ readonly expression: string;
67
+ } | undefined;
59
68
  readonly hourCycle?: 12 | 24 | undefined;
60
69
  readonly valueFormat?: string | undefined;
61
- readonly timeGranularity?: "second" | "minute" | "hour" | undefined;
70
+ readonly timeGranularity?: "hour" | "minute" | "second" | undefined;
62
71
  readonly rangeSeparatorIcon?: string | undefined;
63
- readonly binding?: string | readonly [string, string] | undefined;
64
72
  }) => any) | undefined;
65
73
  }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
66
74
  declare const _default: typeof __VLS_export;