xkit-editor 2.0.0-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (479) hide show
  1. package/lib/index.d.ts +2 -0
  2. package/lib/packages/editor/env.d.ts +7 -0
  3. package/lib/packages/editor/src/component-configs/__tests__/config.test.d.ts +2 -0
  4. package/lib/packages/editor/src/component-configs/__tests__/config.test.d.ts.map +1 -0
  5. package/lib/packages/editor/src/component-configs/__tests__/group.test.d.ts +2 -0
  6. package/lib/packages/editor/src/component-configs/__tests__/group.test.d.ts.map +1 -0
  7. package/lib/packages/editor/src/component-configs/cascader.d.ts +3 -0
  8. package/lib/packages/editor/src/component-configs/cascader.d.ts.map +1 -0
  9. package/lib/packages/editor/src/component-configs/checkbox.d.ts +4 -0
  10. package/lib/packages/editor/src/component-configs/checkbox.d.ts.map +1 -0
  11. package/lib/packages/editor/src/component-configs/common-props.d.ts +16 -0
  12. package/lib/packages/editor/src/component-configs/common-props.d.ts.map +1 -0
  13. package/lib/packages/editor/src/component-configs/date-picker.d.ts +3 -0
  14. package/lib/packages/editor/src/component-configs/date-picker.d.ts.map +1 -0
  15. package/lib/packages/editor/src/component-configs/date-range-picker.d.ts +4 -0
  16. package/lib/packages/editor/src/component-configs/date-range-picker.d.ts.map +1 -0
  17. package/lib/packages/editor/src/component-configs/group.d.ts +3 -0
  18. package/lib/packages/editor/src/component-configs/group.d.ts.map +1 -0
  19. package/lib/packages/editor/src/component-configs/icon-select.d.ts +3 -0
  20. package/lib/packages/editor/src/component-configs/icon-select.d.ts.map +1 -0
  21. package/lib/packages/editor/src/component-configs/input-array.d.ts +4 -0
  22. package/lib/packages/editor/src/component-configs/input-array.d.ts.map +1 -0
  23. package/lib/packages/editor/src/component-configs/input-number-range.d.ts +3 -0
  24. package/lib/packages/editor/src/component-configs/input-number-range.d.ts.map +1 -0
  25. package/lib/packages/editor/src/component-configs/input-number.d.ts +3 -0
  26. package/lib/packages/editor/src/component-configs/input-number.d.ts.map +1 -0
  27. package/lib/packages/editor/src/component-configs/input-table.d.ts +3 -0
  28. package/lib/packages/editor/src/component-configs/input-table.d.ts.map +1 -0
  29. package/lib/packages/editor/src/component-configs/input-upload.d.ts +3 -0
  30. package/lib/packages/editor/src/component-configs/input-upload.d.ts.map +1 -0
  31. package/lib/packages/editor/src/component-configs/input.d.ts +3 -0
  32. package/lib/packages/editor/src/component-configs/input.d.ts.map +1 -0
  33. package/lib/packages/editor/src/component-configs/layout-sections.d.ts +11 -0
  34. package/lib/packages/editor/src/component-configs/layout-sections.d.ts.map +1 -0
  35. package/lib/packages/editor/src/component-configs/options-config.d.ts +3 -0
  36. package/lib/packages/editor/src/component-configs/options-config.d.ts.map +1 -0
  37. package/lib/packages/editor/src/component-configs/radio.d.ts +3 -0
  38. package/lib/packages/editor/src/component-configs/radio.d.ts.map +1 -0
  39. package/lib/packages/editor/src/component-configs/select.d.ts +3 -0
  40. package/lib/packages/editor/src/component-configs/select.d.ts.map +1 -0
  41. package/lib/packages/editor/src/component-configs/switch.d.ts +3 -0
  42. package/lib/packages/editor/src/component-configs/switch.d.ts.map +1 -0
  43. package/lib/packages/editor/src/component-configs/textarea.d.ts +3 -0
  44. package/lib/packages/editor/src/component-configs/textarea.d.ts.map +1 -0
  45. package/lib/packages/editor/src/component-configs/types.d.ts +33 -0
  46. package/lib/packages/editor/src/component-configs/types.d.ts.map +1 -0
  47. package/lib/packages/editor/src/components/condition-editor.vue.d.ts +19 -0
  48. package/lib/packages/editor/src/components/condition-editor.vue.d.ts.map +1 -0
  49. package/lib/packages/editor/src/components/design-renderers/input-array-design.vue.d.ts +17 -0
  50. package/lib/packages/editor/src/components/design-renderers/input-array-design.vue.d.ts.map +1 -0
  51. package/lib/packages/editor/src/components/design-renderers/input-table-design.vue.d.ts +15 -0
  52. package/lib/packages/editor/src/components/design-renderers/input-table-design.vue.d.ts.map +1 -0
  53. package/lib/packages/editor/src/components/form-item-layout-editor.vue.d.ts +14 -0
  54. package/lib/packages/editor/src/components/form-item-layout-editor.vue.d.ts.map +1 -0
  55. package/lib/packages/editor/src/components/form-item-span-editor.vue.d.ts +18 -0
  56. package/lib/packages/editor/src/components/form-item-span-editor.vue.d.ts.map +1 -0
  57. package/lib/packages/editor/src/components/form-layout-editor.vue.d.ts +21 -0
  58. package/lib/packages/editor/src/components/form-layout-editor.vue.d.ts.map +1 -0
  59. package/lib/packages/editor/src/components/group-title-color-select.vue.d.ts +10 -0
  60. package/lib/packages/editor/src/components/group-title-color-select.vue.d.ts.map +1 -0
  61. package/lib/packages/editor/src/components/group-title-style-picker.vue.d.ts +10 -0
  62. package/lib/packages/editor/src/components/group-title-style-picker.vue.d.ts.map +1 -0
  63. package/lib/packages/editor/src/components/input-number-range-binding-editor.vue.d.ts +25 -0
  64. package/lib/packages/editor/src/components/input-number-range-binding-editor.vue.d.ts.map +1 -0
  65. package/lib/packages/editor/src/components/input-table-default-rows-editor.vue.d.ts +11 -0
  66. package/lib/packages/editor/src/components/input-table-default-rows-editor.vue.d.ts.map +1 -0
  67. package/lib/packages/editor/src/components/input-table-operation-editor.vue.d.ts +11 -0
  68. package/lib/packages/editor/src/components/input-table-operation-editor.vue.d.ts.map +1 -0
  69. package/lib/packages/editor/src/components/json-code-editor.vue.d.ts +18 -0
  70. package/lib/packages/editor/src/components/json-code-editor.vue.d.ts.map +1 -0
  71. package/lib/packages/editor/src/components/object-section-editor.vue.d.ts +23 -0
  72. package/lib/packages/editor/src/components/object-section-editor.vue.d.ts.map +1 -0
  73. package/lib/packages/editor/src/components/options/default-dict-options-panel.vue.d.ts +10 -0
  74. package/lib/packages/editor/src/components/options/default-dict-options-panel.vue.d.ts.map +1 -0
  75. package/lib/packages/editor/src/components/options/options-editor.vue.d.ts +12 -0
  76. package/lib/packages/editor/src/components/options/options-editor.vue.d.ts.map +1 -0
  77. package/lib/packages/editor/src/components/validation-rules-editor.vue.d.ts +12 -0
  78. package/lib/packages/editor/src/components/validation-rules-editor.vue.d.ts.map +1 -0
  79. package/lib/packages/editor/src/config.d.ts +8 -0
  80. package/lib/packages/editor/src/config.d.ts.map +1 -0
  81. package/lib/packages/editor/src/editor-item-wrapper.vue.d.ts +39 -0
  82. package/lib/packages/editor/src/editor-item-wrapper.vue.d.ts.map +1 -0
  83. package/lib/packages/editor/src/group-title-styles.d.ts +9 -0
  84. package/lib/packages/editor/src/group-title-styles.d.ts.map +1 -0
  85. package/lib/packages/editor/src/index.d.ts +7 -0
  86. package/lib/packages/editor/src/index.d.ts.map +1 -0
  87. package/lib/packages/editor/src/option-sources.d.ts +10 -0
  88. package/lib/packages/editor/src/option-sources.d.ts.map +1 -0
  89. package/lib/packages/editor/src/root-configs.d.ts +12 -0
  90. package/lib/packages/editor/src/root-configs.d.ts.map +1 -0
  91. package/lib/packages/editor/src/shims-vue.d.ts +5 -0
  92. package/lib/packages/editor/src/utils/__tests__/component-replace.test.d.ts +2 -0
  93. package/lib/packages/editor/src/utils/__tests__/component-replace.test.d.ts.map +1 -0
  94. package/lib/packages/editor/src/utils/__tests__/editor-schema.test.d.ts +2 -0
  95. package/lib/packages/editor/src/utils/__tests__/editor-schema.test.d.ts.map +1 -0
  96. package/lib/packages/editor/src/utils/__tests__/form-item-width.test.d.ts +2 -0
  97. package/lib/packages/editor/src/utils/__tests__/form-item-width.test.d.ts.map +1 -0
  98. package/lib/packages/editor/src/utils/__tests__/group-drag-path.test.d.ts +2 -0
  99. package/lib/packages/editor/src/utils/__tests__/group-drag-path.test.d.ts.map +1 -0
  100. package/lib/packages/editor/src/utils/__tests__/record-field.test.d.ts +2 -0
  101. package/lib/packages/editor/src/utils/__tests__/record-field.test.d.ts.map +1 -0
  102. package/lib/packages/editor/src/utils/component-replace.d.ts +8 -0
  103. package/lib/packages/editor/src/utils/component-replace.d.ts.map +1 -0
  104. package/lib/packages/editor/src/utils/editor-schema.d.ts +28 -0
  105. package/lib/packages/editor/src/utils/editor-schema.d.ts.map +1 -0
  106. package/lib/packages/editor/src/utils/form-item-width.d.ts +6 -0
  107. package/lib/packages/editor/src/utils/form-item-width.d.ts.map +1 -0
  108. package/lib/packages/editor/src/utils/local-dict-center.d.ts +11 -0
  109. package/lib/packages/editor/src/utils/local-dict-center.d.ts.map +1 -0
  110. package/lib/packages/editor/src/utils/record-field.d.ts +7 -0
  111. package/lib/packages/editor/src/utils/record-field.d.ts.map +1 -0
  112. package/lib/packages/editor/src/validation-rules.d.ts +10 -0
  113. package/lib/packages/editor/src/validation-rules.d.ts.map +1 -0
  114. package/lib/packages/editor/src/x-editor.vue.d.ts +107 -0
  115. package/lib/packages/editor/src/x-editor.vue.d.ts.map +1 -0
  116. package/lib/packages/ui/src/assets/icon-add-circle-fill.vue.d.ts +3 -0
  117. package/lib/packages/ui/src/assets/icon-add-circle-fill.vue.d.ts.map +1 -0
  118. package/lib/packages/ui/src/assets/icon-close-line.vue.d.ts +3 -0
  119. package/lib/packages/ui/src/assets/icon-close-line.vue.d.ts.map +1 -0
  120. package/lib/packages/ui/src/assets/icon-drag.vue.d.ts +3 -0
  121. package/lib/packages/ui/src/assets/icon-drag.vue.d.ts.map +1 -0
  122. package/lib/packages/ui/src/assets/icon-minus-circle.vue.d.ts +3 -0
  123. package/lib/packages/ui/src/assets/icon-minus-circle.vue.d.ts.map +1 -0
  124. package/lib/packages/ui/src/components/_public/form-item-cols.vue.d.ts +17 -0
  125. package/lib/packages/ui/src/components/_public/form-item-cols.vue.d.ts.map +1 -0
  126. package/lib/packages/ui/src/components/button/type.d.ts +85 -0
  127. package/lib/packages/ui/src/components/button/type.d.ts.map +1 -0
  128. package/lib/packages/ui/src/components/cascader/index.vue.d.ts +66 -0
  129. package/lib/packages/ui/src/components/cascader/index.vue.d.ts.map +1 -0
  130. package/lib/packages/ui/src/components/cascader/type.d.ts +125 -0
  131. package/lib/packages/ui/src/components/cascader/type.d.ts.map +1 -0
  132. package/lib/packages/ui/src/components/checkbox/index.vue.d.ts +30 -0
  133. package/lib/packages/ui/src/components/checkbox/index.vue.d.ts.map +1 -0
  134. package/lib/packages/ui/src/components/checkbox/type.d.ts +36 -0
  135. package/lib/packages/ui/src/components/checkbox/type.d.ts.map +1 -0
  136. package/lib/packages/ui/src/components/checkboxes/index.vue.d.ts +42 -0
  137. package/lib/packages/ui/src/components/checkboxes/index.vue.d.ts.map +1 -0
  138. package/lib/packages/ui/src/components/checkboxes/type.d.ts +56 -0
  139. package/lib/packages/ui/src/components/checkboxes/type.d.ts.map +1 -0
  140. package/lib/packages/ui/src/components/component/index.d.ts +7 -0
  141. package/lib/packages/ui/src/components/component/index.d.ts.map +1 -0
  142. package/lib/packages/ui/src/components/condition-builder/condition-node.vue.d.ts +32 -0
  143. package/lib/packages/ui/src/components/condition-builder/condition-node.vue.d.ts.map +1 -0
  144. package/lib/packages/ui/src/components/condition-builder/group-bracket.vue.d.ts +19 -0
  145. package/lib/packages/ui/src/components/condition-builder/group-bracket.vue.d.ts.map +1 -0
  146. package/lib/packages/ui/src/components/condition-builder/group-indent.vue.d.ts +19 -0
  147. package/lib/packages/ui/src/components/condition-builder/group-indent.vue.d.ts.map +1 -0
  148. package/lib/packages/ui/src/components/condition-builder/index.vue.d.ts +160 -0
  149. package/lib/packages/ui/src/components/condition-builder/index.vue.d.ts.map +1 -0
  150. package/lib/packages/ui/src/components/condition-builder/type.d.ts +88 -0
  151. package/lib/packages/ui/src/components/condition-builder/type.d.ts.map +1 -0
  152. package/lib/packages/ui/src/components/crud/action-type.d.ts +80 -0
  153. package/lib/packages/ui/src/components/crud/action-type.d.ts.map +1 -0
  154. package/lib/packages/ui/src/components/crud/index.vue.d.ts +78 -0
  155. package/lib/packages/ui/src/components/crud/index.vue.d.ts.map +1 -0
  156. package/lib/packages/ui/src/components/crud/multi-action.vue.d.ts +8 -0
  157. package/lib/packages/ui/src/components/crud/multi-action.vue.d.ts.map +1 -0
  158. package/lib/packages/ui/src/components/crud/single-action.vue.d.ts +7 -0
  159. package/lib/packages/ui/src/components/crud/single-action.vue.d.ts.map +1 -0
  160. package/lib/packages/ui/src/components/crud/type.d.ts +171 -0
  161. package/lib/packages/ui/src/components/crud/type.d.ts.map +1 -0
  162. package/lib/packages/ui/src/components/crud-form/index.vue.d.ts +22 -0
  163. package/lib/packages/ui/src/components/crud-form/index.vue.d.ts.map +1 -0
  164. package/lib/packages/ui/src/components/crud-form/type.d.ts +65 -0
  165. package/lib/packages/ui/src/components/crud-form/type.d.ts.map +1 -0
  166. package/lib/packages/ui/src/components/date-picker/index.vue.d.ts +35 -0
  167. package/lib/packages/ui/src/components/date-picker/index.vue.d.ts.map +1 -0
  168. package/lib/packages/ui/src/components/date-picker/type.d.ts +139 -0
  169. package/lib/packages/ui/src/components/date-picker/type.d.ts.map +1 -0
  170. package/lib/packages/ui/src/components/date-range-picker/index.vue.d.ts +15 -0
  171. package/lib/packages/ui/src/components/date-range-picker/index.vue.d.ts.map +1 -0
  172. package/lib/packages/ui/src/components/date-range-picker/type.d.ts +137 -0
  173. package/lib/packages/ui/src/components/date-range-picker/type.d.ts.map +1 -0
  174. package/lib/packages/ui/src/components/date-range-picker-v2/index.vue.d.ts +22 -0
  175. package/lib/packages/ui/src/components/date-range-picker-v2/index.vue.d.ts.map +1 -0
  176. package/lib/packages/ui/src/components/date-range-picker-v2/type.d.ts +37 -0
  177. package/lib/packages/ui/src/components/date-range-picker-v2/type.d.ts.map +1 -0
  178. package/lib/packages/ui/src/components/description/index.vue.d.ts +28 -0
  179. package/lib/packages/ui/src/components/description/index.vue.d.ts.map +1 -0
  180. package/lib/packages/ui/src/components/description/type.d.ts +120 -0
  181. package/lib/packages/ui/src/components/description/type.d.ts.map +1 -0
  182. package/lib/packages/ui/src/components/dialog/type.d.ts +100 -0
  183. package/lib/packages/ui/src/components/dialog/type.d.ts.map +1 -0
  184. package/lib/packages/ui/src/components/dropdown/type.d.ts +62 -0
  185. package/lib/packages/ui/src/components/dropdown/type.d.ts.map +1 -0
  186. package/lib/packages/ui/src/components/ellipsis/index.vue.d.ts +34 -0
  187. package/lib/packages/ui/src/components/ellipsis/index.vue.d.ts.map +1 -0
  188. package/lib/packages/ui/src/components/ellipsis/type.d.ts +26 -0
  189. package/lib/packages/ui/src/components/ellipsis/type.d.ts.map +1 -0
  190. package/lib/packages/ui/src/components/event-menu/index.vue.d.ts +25 -0
  191. package/lib/packages/ui/src/components/event-menu/index.vue.d.ts.map +1 -0
  192. package/lib/packages/ui/src/components/form/form-item.type.d.ts +304 -0
  193. package/lib/packages/ui/src/components/form/form-item.type.d.ts.map +1 -0
  194. package/lib/packages/ui/src/components/form/form-item.vue.d.ts +50 -0
  195. package/lib/packages/ui/src/components/form/form-item.vue.d.ts.map +1 -0
  196. package/lib/packages/ui/src/components/form/form-layout-renderer.vue.d.ts +71 -0
  197. package/lib/packages/ui/src/components/form/form-layout-renderer.vue.d.ts.map +1 -0
  198. package/lib/packages/ui/src/components/form/index.vue.d.ts +220 -0
  199. package/lib/packages/ui/src/components/form/index.vue.d.ts.map +1 -0
  200. package/lib/packages/ui/src/components/form/query-form.d.ts +4 -0
  201. package/lib/packages/ui/src/components/form/query-form.d.ts.map +1 -0
  202. package/lib/packages/ui/src/components/form/type.d.ts +312 -0
  203. package/lib/packages/ui/src/components/form/type.d.ts.map +1 -0
  204. package/lib/packages/ui/src/components/group/group-item.vue.d.ts +9 -0
  205. package/lib/packages/ui/src/components/group/group-item.vue.d.ts.map +1 -0
  206. package/lib/packages/ui/src/components/group/index.vue.d.ts +24 -0
  207. package/lib/packages/ui/src/components/group/index.vue.d.ts.map +1 -0
  208. package/lib/packages/ui/src/components/group/type.d.ts +119 -0
  209. package/lib/packages/ui/src/components/group/type.d.ts.map +1 -0
  210. package/lib/packages/ui/src/components/icon-select/__tests__/icon-sources.test.d.ts +2 -0
  211. package/lib/packages/ui/src/components/icon-select/__tests__/icon-sources.test.d.ts.map +1 -0
  212. package/lib/packages/ui/src/components/icon-select/icon-parser.vue.d.ts +41 -0
  213. package/lib/packages/ui/src/components/icon-select/icon-parser.vue.d.ts.map +1 -0
  214. package/lib/packages/ui/src/components/icon-select/icon-sources.d.ts +22 -0
  215. package/lib/packages/ui/src/components/icon-select/icon-sources.d.ts.map +1 -0
  216. package/lib/packages/ui/src/components/icon-select/index.vue.d.ts +15 -0
  217. package/lib/packages/ui/src/components/icon-select/index.vue.d.ts.map +1 -0
  218. package/lib/packages/ui/src/components/icon-select/type.d.ts +24 -0
  219. package/lib/packages/ui/src/components/icon-select/type.d.ts.map +1 -0
  220. package/lib/packages/ui/src/components/index.d.ts +107 -0
  221. package/lib/packages/ui/src/components/index.d.ts.map +1 -0
  222. package/lib/packages/ui/src/components/input/index.vue.d.ts +20 -0
  223. package/lib/packages/ui/src/components/input/index.vue.d.ts.map +1 -0
  224. package/lib/packages/ui/src/components/input/type.d.ts +121 -0
  225. package/lib/packages/ui/src/components/input/type.d.ts.map +1 -0
  226. package/lib/packages/ui/src/components/input-array/__tests__/layout.test.d.ts +2 -0
  227. package/lib/packages/ui/src/components/input-array/__tests__/layout.test.d.ts.map +1 -0
  228. package/lib/packages/ui/src/components/input-array/index.vue.d.ts +28 -0
  229. package/lib/packages/ui/src/components/input-array/index.vue.d.ts.map +1 -0
  230. package/lib/packages/ui/src/components/input-array/layout.d.ts +11 -0
  231. package/lib/packages/ui/src/components/input-array/layout.d.ts.map +1 -0
  232. package/lib/packages/ui/src/components/input-array/type.d.ts +89 -0
  233. package/lib/packages/ui/src/components/input-array/type.d.ts.map +1 -0
  234. package/lib/packages/ui/src/components/input-collapse/index.vue.d.ts +7 -0
  235. package/lib/packages/ui/src/components/input-collapse/index.vue.d.ts.map +1 -0
  236. package/lib/packages/ui/src/components/input-collapse/type.d.ts +50 -0
  237. package/lib/packages/ui/src/components/input-collapse/type.d.ts.map +1 -0
  238. package/lib/packages/ui/src/components/input-linked/index.vue.d.ts +13 -0
  239. package/lib/packages/ui/src/components/input-linked/index.vue.d.ts.map +1 -0
  240. package/lib/packages/ui/src/components/input-linked/type.d.ts +32 -0
  241. package/lib/packages/ui/src/components/input-linked/type.d.ts.map +1 -0
  242. package/lib/packages/ui/src/components/input-number/index.vue.d.ts +29 -0
  243. package/lib/packages/ui/src/components/input-number/index.vue.d.ts.map +1 -0
  244. package/lib/packages/ui/src/components/input-number/type.d.ts +57 -0
  245. package/lib/packages/ui/src/components/input-number/type.d.ts.map +1 -0
  246. package/lib/packages/ui/src/components/input-number-range/index.vue.d.ts +28 -0
  247. package/lib/packages/ui/src/components/input-number-range/index.vue.d.ts.map +1 -0
  248. package/lib/packages/ui/src/components/input-number-range/type.d.ts +49 -0
  249. package/lib/packages/ui/src/components/input-number-range/type.d.ts.map +1 -0
  250. package/lib/packages/ui/src/components/input-table/index.vue.d.ts +25 -0
  251. package/lib/packages/ui/src/components/input-table/index.vue.d.ts.map +1 -0
  252. package/lib/packages/ui/src/components/input-table/type.d.ts +37 -0
  253. package/lib/packages/ui/src/components/input-table/type.d.ts.map +1 -0
  254. package/lib/packages/ui/src/components/input-upload/index.vue.d.ts +11 -0
  255. package/lib/packages/ui/src/components/input-upload/index.vue.d.ts.map +1 -0
  256. package/lib/packages/ui/src/components/input-upload/type.d.ts +59 -0
  257. package/lib/packages/ui/src/components/input-upload/type.d.ts.map +1 -0
  258. package/lib/packages/ui/src/components/json/index.vue.d.ts +10 -0
  259. package/lib/packages/ui/src/components/json/index.vue.d.ts.map +1 -0
  260. package/lib/packages/ui/src/components/link/index.vue.d.ts +21 -0
  261. package/lib/packages/ui/src/components/link/index.vue.d.ts.map +1 -0
  262. package/lib/packages/ui/src/components/link/type.d.ts +28 -0
  263. package/lib/packages/ui/src/components/link/type.d.ts.map +1 -0
  264. package/lib/packages/ui/src/components/radios/index.vue.d.ts +42 -0
  265. package/lib/packages/ui/src/components/radios/index.vue.d.ts.map +1 -0
  266. package/lib/packages/ui/src/components/radios/type.d.ts +36 -0
  267. package/lib/packages/ui/src/components/radios/type.d.ts.map +1 -0
  268. package/lib/packages/ui/src/components/search-bar/index.vue.d.ts +37 -0
  269. package/lib/packages/ui/src/components/search-bar/index.vue.d.ts.map +1 -0
  270. package/lib/packages/ui/src/components/select/index.vue.d.ts +48 -0
  271. package/lib/packages/ui/src/components/select/index.vue.d.ts.map +1 -0
  272. package/lib/packages/ui/src/components/select/type.d.ts +222 -0
  273. package/lib/packages/ui/src/components/select/type.d.ts.map +1 -0
  274. package/lib/packages/ui/src/components/static/options-viewer.vue.d.ts +16 -0
  275. package/lib/packages/ui/src/components/static/options-viewer.vue.d.ts.map +1 -0
  276. package/lib/packages/ui/src/components/static/rich-text-viewer.vue.d.ts +8 -0
  277. package/lib/packages/ui/src/components/static/rich-text-viewer.vue.d.ts.map +1 -0
  278. package/lib/packages/ui/src/components/static/textarea-viewer.vue.d.ts +6 -0
  279. package/lib/packages/ui/src/components/static/textarea-viewer.vue.d.ts.map +1 -0
  280. package/lib/packages/ui/src/components/switch/index.vue.d.ts +38 -0
  281. package/lib/packages/ui/src/components/switch/index.vue.d.ts.map +1 -0
  282. package/lib/packages/ui/src/components/switch/type.d.ts +72 -0
  283. package/lib/packages/ui/src/components/switch/type.d.ts.map +1 -0
  284. package/lib/packages/ui/src/components/table/index.vue.d.ts +1317 -0
  285. package/lib/packages/ui/src/components/table/index.vue.d.ts.map +1 -0
  286. package/lib/packages/ui/src/components/table/table-column.vue.d.ts +44 -0
  287. package/lib/packages/ui/src/components/table/table-column.vue.d.ts.map +1 -0
  288. package/lib/packages/ui/src/components/table/type.d.ts +306 -0
  289. package/lib/packages/ui/src/components/table/type.d.ts.map +1 -0
  290. package/lib/packages/ui/src/components/table-select/const.d.ts +14 -0
  291. package/lib/packages/ui/src/components/table-select/const.d.ts.map +1 -0
  292. package/lib/packages/ui/src/components/table-select/index.vue.d.ts +21871 -0
  293. package/lib/packages/ui/src/components/table-select/index.vue.d.ts.map +1 -0
  294. package/lib/packages/ui/src/components/table-select/table-selector-main.vue.d.ts +4795 -0
  295. package/lib/packages/ui/src/components/table-select/table-selector-main.vue.d.ts.map +1 -0
  296. package/lib/packages/ui/src/components/table-select/type.d.ts +71 -0
  297. package/lib/packages/ui/src/components/table-select/type.d.ts.map +1 -0
  298. package/lib/packages/ui/src/components/tabs/index.vue.d.ts +6 -0
  299. package/lib/packages/ui/src/components/tabs/index.vue.d.ts.map +1 -0
  300. package/lib/packages/ui/src/components/tabs/type.d.ts +23 -0
  301. package/lib/packages/ui/src/components/tabs/type.d.ts.map +1 -0
  302. package/lib/packages/ui/src/components/text/index.vue.d.ts +7 -0
  303. package/lib/packages/ui/src/components/text/index.vue.d.ts.map +1 -0
  304. package/lib/packages/ui/src/components/text/type.d.ts +7 -0
  305. package/lib/packages/ui/src/components/text/type.d.ts.map +1 -0
  306. package/lib/packages/ui/src/components/textarea/type.d.ts +79 -0
  307. package/lib/packages/ui/src/components/textarea/type.d.ts.map +1 -0
  308. package/lib/packages/ui/src/components/toolbar/index.vue.d.ts +15 -0
  309. package/lib/packages/ui/src/components/toolbar/index.vue.d.ts.map +1 -0
  310. package/lib/packages/ui/src/components/transitions/TransitionHeight.vue.d.ts +30 -0
  311. package/lib/packages/ui/src/components/transitions/TransitionHeight.vue.d.ts.map +1 -0
  312. package/lib/packages/ui/src/components/tree/index.vue.d.ts +17 -0
  313. package/lib/packages/ui/src/components/tree/index.vue.d.ts.map +1 -0
  314. package/lib/packages/ui/src/components/tree/tree-node.vue.d.ts +8 -0
  315. package/lib/packages/ui/src/components/tree/tree-node.vue.d.ts.map +1 -0
  316. package/lib/packages/ui/src/components/tree/tree-state.d.ts +35 -0
  317. package/lib/packages/ui/src/components/tree/tree-state.d.ts.map +1 -0
  318. package/lib/packages/ui/src/components/tree/type.d.ts +50 -0
  319. package/lib/packages/ui/src/components/tree/type.d.ts.map +1 -0
  320. package/lib/packages/ui/src/components/tree-select/index.vue.d.ts +94 -0
  321. package/lib/packages/ui/src/components/tree-select/index.vue.d.ts.map +1 -0
  322. package/lib/packages/ui/src/components/tree-select/type.d.ts +156 -0
  323. package/lib/packages/ui/src/components/tree-select/type.d.ts.map +1 -0
  324. package/lib/packages/ui/src/components/tree-select-crud/index.vue.d.ts +3102 -0
  325. package/lib/packages/ui/src/components/tree-select-crud/index.vue.d.ts.map +1 -0
  326. package/lib/packages/ui/src/components/tree-select-crud/type.d.ts +88 -0
  327. package/lib/packages/ui/src/components/tree-select-crud/type.d.ts.map +1 -0
  328. package/lib/packages/ui/src/components/upload/index.vue.d.ts +54 -0
  329. package/lib/packages/ui/src/components/upload/index.vue.d.ts.map +1 -0
  330. package/lib/packages/ui/src/composables/__tests__/use-option-static.test.d.ts +2 -0
  331. package/lib/packages/ui/src/composables/__tests__/use-option-static.test.d.ts.map +1 -0
  332. package/lib/packages/ui/src/composables/index.d.ts +3 -0
  333. package/lib/packages/ui/src/composables/index.d.ts.map +1 -0
  334. package/lib/packages/ui/src/composables/use-action.d.ts +21 -0
  335. package/lib/packages/ui/src/composables/use-action.d.ts.map +1 -0
  336. package/lib/packages/ui/src/composables/use-component.d.ts +74 -0
  337. package/lib/packages/ui/src/composables/use-component.d.ts.map +1 -0
  338. package/lib/packages/ui/src/composables/use-config.d.ts +76 -0
  339. package/lib/packages/ui/src/composables/use-config.d.ts.map +1 -0
  340. package/lib/packages/ui/src/composables/use-draggable.d.ts +22 -0
  341. package/lib/packages/ui/src/composables/use-draggable.d.ts.map +1 -0
  342. package/lib/packages/ui/src/composables/use-input-array.d.ts +45 -0
  343. package/lib/packages/ui/src/composables/use-input-array.d.ts.map +1 -0
  344. package/lib/packages/ui/src/composables/use-label.d.ts +2 -0
  345. package/lib/packages/ui/src/composables/use-label.d.ts.map +1 -0
  346. package/lib/packages/ui/src/composables/use-loading.d.ts +6 -0
  347. package/lib/packages/ui/src/composables/use-loading.d.ts.map +1 -0
  348. package/lib/packages/ui/src/composables/use-option-static.d.ts +51 -0
  349. package/lib/packages/ui/src/composables/use-option-static.d.ts.map +1 -0
  350. package/lib/packages/ui/src/composables/use-options.d.ts +66 -0
  351. package/lib/packages/ui/src/composables/use-options.d.ts.map +1 -0
  352. package/lib/packages/ui/src/composables/use-paging.d.ts +134 -0
  353. package/lib/packages/ui/src/composables/use-paging.d.ts.map +1 -0
  354. package/lib/packages/ui/src/composables/use-scaffold.d.ts +54 -0
  355. package/lib/packages/ui/src/composables/use-scaffold.d.ts.map +1 -0
  356. package/lib/packages/ui/src/composables/use-toggle.d.ts +11 -0
  357. package/lib/packages/ui/src/composables/use-toggle.d.ts.map +1 -0
  358. package/lib/packages/ui/src/composables/use-tree-static-path.d.ts +45 -0
  359. package/lib/packages/ui/src/composables/use-tree-static-path.d.ts.map +1 -0
  360. package/lib/packages/ui/src/composables/use-visible.d.ts +11 -0
  361. package/lib/packages/ui/src/composables/use-visible.d.ts.map +1 -0
  362. package/lib/packages/ui/src/config/layout.d.ts +9 -0
  363. package/lib/packages/ui/src/config/layout.d.ts.map +1 -0
  364. package/lib/packages/ui/src/constants/injection.d.ts +11 -0
  365. package/lib/packages/ui/src/constants/injection.d.ts.map +1 -0
  366. package/lib/packages/ui/src/directives/highlight.d.ts +7 -0
  367. package/lib/packages/ui/src/directives/highlight.d.ts.map +1 -0
  368. package/lib/packages/ui/src/directives/index.d.ts +2 -0
  369. package/lib/packages/ui/src/directives/index.d.ts.map +1 -0
  370. package/lib/packages/ui/src/index.d.ts +59 -0
  371. package/lib/packages/ui/src/index.d.ts.map +1 -0
  372. package/lib/packages/ui/src/types/api.d.ts +8 -0
  373. package/lib/packages/ui/src/types/api.d.ts.map +1 -0
  374. package/lib/packages/ui/src/types/base.d.ts +306 -0
  375. package/lib/packages/ui/src/types/base.d.ts.map +1 -0
  376. package/lib/packages/ui/src/types/form.d.ts +82 -0
  377. package/lib/packages/ui/src/types/form.d.ts.map +1 -0
  378. package/lib/packages/ui/src/types/index.d.ts +6 -0
  379. package/lib/packages/ui/src/types/index.d.ts.map +1 -0
  380. package/lib/packages/ui/src/types/option.d.ts +115 -0
  381. package/lib/packages/ui/src/types/option.d.ts.map +1 -0
  382. package/lib/packages/ui/src/types/pagination.d.ts +35 -0
  383. package/lib/packages/ui/src/types/pagination.d.ts.map +1 -0
  384. package/lib/packages/ui/src/types/table.d.ts +34 -0
  385. package/lib/packages/ui/src/types/table.d.ts.map +1 -0
  386. package/lib/packages/ui/src/types/util.d.ts +6 -0
  387. package/lib/packages/ui/src/types/util.d.ts.map +1 -0
  388. package/lib/packages/ui/src/utils/__tests__/condition.test.d.ts +2 -0
  389. package/lib/packages/ui/src/utils/__tests__/condition.test.d.ts.map +1 -0
  390. package/lib/packages/ui/src/utils/__tests__/editor-container.test.d.ts +2 -0
  391. package/lib/packages/ui/src/utils/__tests__/editor-container.test.d.ts.map +1 -0
  392. package/lib/packages/ui/src/utils/__tests__/form.test.d.ts +2 -0
  393. package/lib/packages/ui/src/utils/__tests__/form.test.d.ts.map +1 -0
  394. package/lib/packages/ui/src/utils/__tests__/tree.test.d.ts +2 -0
  395. package/lib/packages/ui/src/utils/__tests__/tree.test.d.ts.map +1 -0
  396. package/lib/packages/ui/src/utils/common.d.ts +13 -0
  397. package/lib/packages/ui/src/utils/common.d.ts.map +1 -0
  398. package/lib/packages/ui/src/utils/computed-state-manager.d.ts +3 -0
  399. package/lib/packages/ui/src/utils/computed-state-manager.d.ts.map +1 -0
  400. package/lib/packages/ui/src/utils/condition.d.ts +4 -0
  401. package/lib/packages/ui/src/utils/condition.d.ts.map +1 -0
  402. package/lib/packages/ui/src/utils/editor-container.d.ts +25 -0
  403. package/lib/packages/ui/src/utils/editor-container.d.ts.map +1 -0
  404. package/lib/packages/ui/src/utils/form-item.d.ts +23 -0
  405. package/lib/packages/ui/src/utils/form-item.d.ts.map +1 -0
  406. package/lib/packages/ui/src/utils/form.d.ts +75 -0
  407. package/lib/packages/ui/src/utils/form.d.ts.map +1 -0
  408. package/lib/packages/ui/src/utils/id.d.ts +24 -0
  409. package/lib/packages/ui/src/utils/id.d.ts.map +1 -0
  410. package/lib/packages/ui/src/utils/options.d.ts +14 -0
  411. package/lib/packages/ui/src/utils/options.d.ts.map +1 -0
  412. package/lib/packages/ui/src/utils/reactive.d.ts +13 -0
  413. package/lib/packages/ui/src/utils/reactive.d.ts.map +1 -0
  414. package/lib/packages/ui/src/utils/style.d.ts +5 -0
  415. package/lib/packages/ui/src/utils/style.d.ts.map +1 -0
  416. package/lib/packages/ui/src/utils/tree.d.ts +51 -0
  417. package/lib/packages/ui/src/utils/tree.d.ts.map +1 -0
  418. package/lib/xkit-editor.css +2 -0
  419. package/lib/xkit-editor.js +78741 -0
  420. package/lib/xkit-editor.umd.cjs +99 -0
  421. package/package.json +50 -0
  422. package/src/component-configs/__tests__/config.test.ts +288 -0
  423. package/src/component-configs/__tests__/group.test.ts +104 -0
  424. package/src/component-configs/cascader.ts +20 -0
  425. package/src/component-configs/checkbox.ts +43 -0
  426. package/src/component-configs/common-props.ts +130 -0
  427. package/src/component-configs/date-picker.ts +153 -0
  428. package/src/component-configs/date-range-picker.ts +185 -0
  429. package/src/component-configs/group.ts +196 -0
  430. package/src/component-configs/icon-select.ts +56 -0
  431. package/src/component-configs/input-array.ts +184 -0
  432. package/src/component-configs/input-number-range.ts +143 -0
  433. package/src/component-configs/input-number.ts +111 -0
  434. package/src/component-configs/input-table.ts +191 -0
  435. package/src/component-configs/input-upload.ts +123 -0
  436. package/src/component-configs/input.ts +48 -0
  437. package/src/component-configs/layout-sections.ts +546 -0
  438. package/src/component-configs/options-config.ts +12 -0
  439. package/src/component-configs/radio.ts +26 -0
  440. package/src/component-configs/select.ts +42 -0
  441. package/src/component-configs/switch.ts +19 -0
  442. package/src/component-configs/textarea.ts +84 -0
  443. package/src/component-configs/types.ts +37 -0
  444. package/src/components/condition-editor.vue +641 -0
  445. package/src/components/design-renderers/input-array-design.vue +283 -0
  446. package/src/components/design-renderers/input-table-design.vue +311 -0
  447. package/src/components/form-item-layout-editor.vue +291 -0
  448. package/src/components/form-item-span-editor.vue +328 -0
  449. package/src/components/form-layout-editor.vue +263 -0
  450. package/src/components/group-title-color-select.vue +75 -0
  451. package/src/components/group-title-style-picker.vue +125 -0
  452. package/src/components/input-number-range-binding-editor.vue +226 -0
  453. package/src/components/input-table-default-rows-editor.vue +147 -0
  454. package/src/components/input-table-operation-editor.vue +168 -0
  455. package/src/components/json-code-editor.vue +219 -0
  456. package/src/components/object-section-editor.vue +342 -0
  457. package/src/components/options/default-dict-options-panel.vue +197 -0
  458. package/src/components/options/options-editor.vue +161 -0
  459. package/src/components/table-columns-editor.vue +353 -0
  460. package/src/components/validation-rules-editor.vue +321 -0
  461. package/src/config.ts +51 -0
  462. package/src/editor-item-wrapper.vue +254 -0
  463. package/src/group-title-styles.ts +82 -0
  464. package/src/index.ts +6 -0
  465. package/src/option-sources.ts +45 -0
  466. package/src/root-configs.ts +278 -0
  467. package/src/shims-vue.d.ts +5 -0
  468. package/src/utils/__tests__/component-replace.test.ts +129 -0
  469. package/src/utils/__tests__/editor-schema.test.ts +429 -0
  470. package/src/utils/__tests__/form-item-width.test.ts +53 -0
  471. package/src/utils/__tests__/group-drag-path.test.ts +84 -0
  472. package/src/utils/__tests__/record-field.test.ts +34 -0
  473. package/src/utils/component-replace.ts +67 -0
  474. package/src/utils/editor-schema.ts +374 -0
  475. package/src/utils/form-item-width.ts +40 -0
  476. package/src/utils/local-dict-center.ts +81 -0
  477. package/src/utils/record-field.ts +30 -0
  478. package/src/validation-rules.ts +104 -0
  479. package/src/x-editor.vue +1300 -0
@@ -0,0 +1,283 @@
1
+ <template>
2
+ <div class="x-input-array__editor" :style="rootStyle">
3
+ <div class="x-input-array__editor-row">
4
+ <span v-if="draggable" class="x-input-array__editor-drag">
5
+ <i class="ri-draggable"></i>
6
+ </span>
7
+ <div
8
+ class="x-input-array__editor-items"
9
+ :class="{
10
+ 'is-layout-enabled': useLayout,
11
+ 'is-editor-empty-drop-zone': editorItems.length === 0
12
+ }"
13
+ :style="editorItemsStyle"
14
+ :data-editor-drop-path="getEditorPathAttr(getEditorItemsContainerPath())"
15
+ >
16
+ <component
17
+ v-for="item in editorItems"
18
+ :key="item._id"
19
+ :is="wrapperComponent || 'div'"
20
+ v-bind="getEditorItemWrapperProps(item)"
21
+ >
22
+ <component :is="renderEditorFormItem(item)" />
23
+ </component>
24
+ </div>
25
+ <div v-if="showRowActions" class="x-input-array__editor-actions">
26
+ <span v-if="showInlineAddButton && addable !== false" class="x-input-array__editor-action is-add">
27
+ <i class="ri-add-circle-fill"></i>
28
+ </span>
29
+ <span v-if="deletable !== false" class="x-input-array__editor-action">
30
+ <i class="ri-close-circle-line"></i>
31
+ </span>
32
+ </div>
33
+ </div>
34
+ <div v-if="showFooterAddButton" class="x-input-array__editor-footer">
35
+ <button class="x-input-array__editor-add" type="button">新增</button>
36
+ </div>
37
+ </div>
38
+ </template>
39
+
40
+ <script setup lang="ts">
41
+ import { computed, h, inject, ref, useSlots } from 'vue'
42
+ import FormItem from '@/components/form/form-item.vue'
43
+ import type { XFormItem } from '@/components/form/type'
44
+ import type { XInputArrayBase } from '@/components/input-array/type'
45
+ import { getFormItemRuntimeId, type IdValue } from '@/utils/id'
46
+ import {
47
+ getEditorChildContainerPath,
48
+ getEditorChildItemPath,
49
+ getEditorPathAttr,
50
+ resolveEditorContainerMeta,
51
+ type XEditorContainerMeta
52
+ } from '@/utils/editor-container'
53
+
54
+ type EditorInputArrayItem = NonNullable<XInputArrayBase['items']>[number] & {
55
+ _id: IdValue
56
+ }
57
+
58
+ const props = withDefaults(defineProps<XInputArrayBase & XEditorContainerMeta & {
59
+ item?: XFormItem
60
+ formProps?: any
61
+ rowData?: Record<string, any>
62
+ }>(), {
63
+ items: () => [],
64
+ addable: true,
65
+ deletable: true,
66
+ useScaffoldValue: true,
67
+ showInlineAddButton: true
68
+ })
69
+
70
+ const slots = useSlots()
71
+ const wrapperComponent = inject<any>('wrapperComponent', '')
72
+ const emitCustomEvent = inject<(event: any) => void>('emitCustomEvent', () => { })
73
+ const editorMeta = computed(() => resolveEditorContainerMeta(props, {}))
74
+ const parentEditorId = computed(() => editorMeta.value.__editorId ?? editorMeta.value._id)
75
+ const parentEditorPath = computed(() => editorMeta.value.editorPath)
76
+ const editorRowData = ref({})
77
+
78
+ const getEditorItemsContainerPath = () => getEditorChildContainerPath(parentEditorPath.value, 'items')
79
+
80
+ const editorItems = computed<EditorInputArrayItem[]>(() => {
81
+ return (props.items ?? []).map((item) => ({
82
+ ...item,
83
+ _id: getFormItemRuntimeId(item as any)
84
+ })) as EditorInputArrayItem[]
85
+ })
86
+
87
+ const showRowActions = computed(() => props.addable !== false || props.deletable !== false)
88
+ const isStyleRecord = (value: XInputArrayBase['style']): value is Record<string, any> => Boolean(value && typeof value === 'object' && !Array.isArray(value))
89
+ const rootStyle = computed(() => {
90
+ if (!props.useLayout) return props.style
91
+ if (!props.style) return { width: '100%' }
92
+ if (isStyleRecord(props.style)) {
93
+ return {
94
+ width: '100%',
95
+ ...props.style
96
+ }
97
+ }
98
+ return props.style
99
+ })
100
+ const layoutDefaultSpan = computed(() => clampSpan(props.layout?.col?.span ?? 24))
101
+ const layoutGap = computed(() => toCssSize(props.layout?.row?.gutter ?? 8))
102
+ const editorItemsStyle = computed(() => (props.useLayout ? { gap: layoutGap.value } : undefined))
103
+
104
+ const getEditorItemPath = (item: EditorInputArrayItem) => {
105
+ const index = editorItems.value.findIndex((formItem) => formItem._id === item._id)
106
+ return getEditorChildItemPath(getEditorItemsContainerPath(), index)
107
+ }
108
+
109
+ const clampSpan = (value: unknown) => {
110
+ const numericValue = Number(value)
111
+ if (!Number.isFinite(numericValue)) return 24
112
+ return Math.min(24, Math.max(1, Math.round(numericValue)))
113
+ }
114
+
115
+ const toCssSize = (value: unknown) => {
116
+ if (typeof value === 'number') return `${value}px`
117
+ if (typeof value === 'string' && /^\d+(\.\d+)?$/.test(value.trim())) return `${value.trim()}px`
118
+ return typeof value === 'string' ? value : undefined
119
+ }
120
+
121
+ const getEditorItemSpan = (item: EditorInputArrayItem) => clampSpan(item.span ?? layoutDefaultSpan.value)
122
+
123
+ const getEditorItemStyle = (item: EditorInputArrayItem) => {
124
+ if (!props.useLayout) return undefined
125
+ return {
126
+ gridColumn: `span ${getEditorItemSpan(item)}`
127
+ }
128
+ }
129
+
130
+ const getEditorItemWrapperProps = (item: EditorInputArrayItem) => {
131
+ const baseProps = {
132
+ class: 'x-input-array__editor-item',
133
+ style: getEditorItemStyle(item),
134
+ 'data-editor-item-path': getEditorPathAttr(getEditorItemPath(item))
135
+ }
136
+ if (!wrapperComponent) return baseProps
137
+ return {
138
+ ...baseProps,
139
+ item,
140
+ rowData: editorRowData.value,
141
+ static: props.static,
142
+ emitCustomEvent,
143
+ editorPath: getEditorItemPath(item),
144
+ parentEditorId: parentEditorId.value,
145
+ tag: 'array-item'
146
+ }
147
+ }
148
+
149
+ const hasStyleWidth = (style: unknown) => Boolean(style && typeof style === 'object' && !Array.isArray(style) && (style as Record<string, any>).width !== undefined)
150
+
151
+ const getEditorRenderItem = (item: EditorInputArrayItem) => {
152
+ if (props.useLayout || hasStyleWidth(item.style)) return item
153
+ return {
154
+ ...item,
155
+ style: {
156
+ width: '200px',
157
+ ...((item.style && typeof item.style === 'object' && !Array.isArray(item.style) ? item.style : {}) as Record<string, any>)
158
+ }
159
+ }
160
+ }
161
+
162
+ const renderEditorFormItem = (item: EditorInputArrayItem) => {
163
+ return h(
164
+ FormItem,
165
+ {
166
+ item: getEditorRenderItem(item) as XFormItem,
167
+ formProps: props,
168
+ rowData: editorRowData.value,
169
+ static: props.static,
170
+ propPrefix: props.name ? `${props.name}[0]` : undefined,
171
+ editorPath: getEditorItemPath(item)
172
+ },
173
+ {
174
+ ...slots
175
+ }
176
+ )
177
+ }
178
+ </script>
179
+
180
+ <style lang="scss" scoped>
181
+ .x-input-array__editor {
182
+ padding: 10px;
183
+ border: 1px solid var(--el-border-color-lighter);
184
+ border-radius: 4px;
185
+ background: var(--el-fill-color-blank);
186
+ }
187
+
188
+ .x-input-array__editor-row {
189
+ display: flex;
190
+ align-items: center;
191
+ gap: 8px;
192
+ min-height: 54px;
193
+ }
194
+
195
+ .x-input-array__editor-drag {
196
+ flex: none;
197
+ color: var(--el-text-color-placeholder);
198
+ line-height: 1;
199
+ }
200
+
201
+ .x-input-array__editor-items {
202
+ flex: 1;
203
+ min-width: 0;
204
+ display: flex;
205
+ align-items: center;
206
+ gap: 8px;
207
+
208
+ &.is-layout-enabled {
209
+ display: grid;
210
+ grid-template-columns: repeat(24, minmax(0, 1fr));
211
+ align-items: start;
212
+ }
213
+
214
+ &.is-editor-empty-drop-zone {
215
+ min-height: 48px;
216
+ border: 1px dashed var(--el-border-color);
217
+ border-radius: 4px;
218
+ justify-content: center;
219
+
220
+ &::before {
221
+ content: '拖拽组件作为数组子项';
222
+ color: var(--el-text-color-placeholder);
223
+ font-size: 13px;
224
+ pointer-events: none;
225
+ }
226
+ }
227
+ }
228
+
229
+ .x-input-array__editor-item {
230
+ position: relative;
231
+ flex: 1 1 160px;
232
+ min-width: 120px;
233
+ margin-bottom: 0;
234
+
235
+ &.editor-item-wrapper {
236
+ padding: 6px;
237
+ margin-bottom: 0;
238
+ }
239
+
240
+ :deep(.el-form-item) {
241
+ margin-bottom: 0;
242
+ }
243
+ }
244
+
245
+ .x-input-array__editor-items.is-layout-enabled .x-input-array__editor-item {
246
+ min-width: 0;
247
+ }
248
+
249
+ .x-input-array__editor-actions {
250
+ flex: none;
251
+ display: flex;
252
+ align-items: center;
253
+ gap: 4px;
254
+ }
255
+
256
+ .x-input-array__editor-action {
257
+ width: 20px;
258
+ height: 20px;
259
+ display: inline-flex;
260
+ align-items: center;
261
+ justify-content: center;
262
+ color: var(--el-text-color-placeholder);
263
+ line-height: 1;
264
+
265
+ &.is-add {
266
+ color: var(--el-color-primary);
267
+ }
268
+ }
269
+
270
+ .x-input-array__editor-footer {
271
+ margin-top: 12px;
272
+ }
273
+
274
+ .x-input-array__editor-add {
275
+ height: 28px;
276
+ padding: 0 12px;
277
+ border: 1px solid var(--el-color-primary);
278
+ border-radius: 4px;
279
+ color: var(--el-color-primary);
280
+ background: var(--el-fill-color-blank);
281
+ font-size: 12px;
282
+ }
283
+ </style>
@@ -0,0 +1,311 @@
1
+ <template>
2
+ <div class="x-input-table__editor">
3
+ <div class="x-input-table__editor-scroll">
4
+ <div
5
+ class="x-input-table__editor-columns"
6
+ :class="{ 'is-editor-empty-drop-zone': editorNormalColumns.length === 0 }"
7
+ :data-editor-drop-path="getEditorPathAttr(getEditorItemsContainerPath())"
8
+ >
9
+ <component
10
+ v-for="item in editorNormalColumns"
11
+ :key="item._id"
12
+ :is="wrapperComponent || 'div'"
13
+ v-bind="getEditorColumnWrapperProps(item)"
14
+ >
15
+ <div class="x-input-table__editor-th" :style="getEditorColumnHeaderStyle(item)">{{ getEditorColumnTitle(item) }}</div>
16
+ <div class="x-input-table__editor-td" :style="getEditorColumnBodyStyle(item)">
17
+ <component :is="renderEditorFormItem(item)" />
18
+ </div>
19
+ </component>
20
+ </div>
21
+ <div
22
+ v-if="editorOperationColumn"
23
+ class="x-input-table__editor-column x-input-table__editor-column--operation"
24
+ :style="getEditorColumnStyle(editorOperationColumn)"
25
+ >
26
+ <div class="x-input-table__editor-th" :style="getEditorColumnHeaderStyle(editorOperationColumn)">{{ getEditorColumnTitle(editorOperationColumn) }}</div>
27
+ <div class="x-input-table__editor-td x-input-table__editor-operation-cell" :style="getEditorColumnBodyStyle(editorOperationColumn)">
28
+ <span
29
+ v-for="action in editorOperationActions"
30
+ :key="action"
31
+ class="x-input-table__editor-operation-action"
32
+ >
33
+ {{ getEditorOperationActionLabel(action) }}
34
+ </span>
35
+ </div>
36
+ </div>
37
+ </div>
38
+ </div>
39
+ </template>
40
+
41
+ <script setup lang="ts">
42
+ import { computed, h, inject, ref, useSlots } from 'vue'
43
+ import FormItem from '@/components/form/form-item.vue'
44
+ import type { XFormItem } from '@/components/form/type'
45
+ import type { XInputTableBase } from '@/components/input-table/type'
46
+ import { getFormItemRuntimeId, type IdValue } from '@/utils/id'
47
+ import {
48
+ getEditorChildContainerPath,
49
+ getEditorChildItemPath,
50
+ getEditorPathAttr,
51
+ resolveEditorContainerMeta,
52
+ type XEditorContainerMeta
53
+ } from '@/utils/editor-container'
54
+
55
+ type EditorInputTableColumn = NonNullable<XInputTableBase['items']>[number] & {
56
+ _id: IdValue
57
+ }
58
+
59
+ const props = withDefaults(defineProps<XInputTableBase & XEditorContainerMeta & {
60
+ item?: XFormItem
61
+ formProps?: any
62
+ rowData?: Record<string, any>
63
+ }>(), {
64
+ items: () => [],
65
+ addable: true,
66
+ deletable: true
67
+ })
68
+
69
+ const slots = useSlots()
70
+ const wrapperComponent = inject<any>('wrapperComponent', '')
71
+ const emitCustomEvent = inject<(event: any) => void>('emitCustomEvent', () => { })
72
+ const editorMeta = computed(() => resolveEditorContainerMeta(props, {}))
73
+ const parentEditorId = computed(() => editorMeta.value.__editorId ?? editorMeta.value._id)
74
+ const parentEditorPath = computed(() => editorMeta.value.editorPath)
75
+ const getEditorItemsContainerPath = () => getEditorChildContainerPath(parentEditorPath.value, 'items')
76
+
77
+ const editorColumnsWithId = computed<EditorInputTableColumn[]>(() => {
78
+ return (props.items ?? []).map((item) => ({
79
+ ...item,
80
+ _id: getFormItemRuntimeId(item as any)
81
+ })) as EditorInputTableColumn[]
82
+ })
83
+ const editorNormalColumns = computed(() => editorColumnsWithId.value.filter((item) => item.type !== 'operation'))
84
+ const editorOperationColumn = computed(() => editorColumnsWithId.value.find((item) => item.type === 'operation'))
85
+ const editorRowData = ref({})
86
+
87
+ const getEditorColumnTitle = (item: EditorInputTableColumn) => {
88
+ return (typeof item.label === 'string' && item.label) || item.name || item.type || '列'
89
+ }
90
+
91
+ const getEditorColumnStyle = (item: EditorInputTableColumn) => {
92
+ const width = Number(item.width) || 180
93
+ return {
94
+ flexBasis: `${width}px`
95
+ }
96
+ }
97
+
98
+ const getEditorAlignJustifyContent = (align?: string) => {
99
+ if (align === 'left') return 'flex-start'
100
+ if (align === 'right') return 'flex-end'
101
+ if (align === 'center') return 'center'
102
+ return undefined
103
+ }
104
+
105
+ const getEditorColumnHeaderStyle = (item: EditorInputTableColumn) => {
106
+ const justifyContent = getEditorAlignJustifyContent((item as any).headerAlign || (item as any).align)
107
+ return justifyContent ? { justifyContent } : undefined
108
+ }
109
+
110
+ const getEditorColumnBodyStyle = (item: EditorInputTableColumn) => {
111
+ const justifyContent = getEditorAlignJustifyContent((item as any).align)
112
+ return justifyContent ? { justifyContent } : undefined
113
+ }
114
+
115
+ const editorOperationActions = computed(() => {
116
+ const actions = editorOperationColumn.value?.actions
117
+ return Array.isArray(actions) ? actions.map((item: any) => (typeof item === 'string' ? item : item?.action)).filter(Boolean) : []
118
+ })
119
+
120
+ const getEditorOperationActionLabel = (action: string) => {
121
+ if (action === 'add') return '新增'
122
+ if (action === 'delete') return '删除'
123
+ if (action === 'add-child') return '新增子项'
124
+ return action
125
+ }
126
+
127
+ const getEditorColumnPath = (item: EditorInputTableColumn) => {
128
+ const index = editorColumnsWithId.value.findIndex((column) => column._id === item._id)
129
+ return getEditorChildItemPath(getEditorItemsContainerPath(), index)
130
+ }
131
+
132
+ const getEditorColumnWrapperProps = (item: EditorInputTableColumn) => {
133
+ const baseProps = {
134
+ class: 'x-input-table__editor-column',
135
+ style: getEditorColumnStyle(item),
136
+ 'data-editor-item-path': getEditorPathAttr(getEditorColumnPath(item))
137
+ }
138
+ if (!wrapperComponent) return baseProps
139
+ return {
140
+ ...baseProps,
141
+ item,
142
+ rowData: editorRowData.value,
143
+ static: props.static,
144
+ emitCustomEvent,
145
+ editorPath: getEditorColumnPath(item),
146
+ parentEditorId: parentEditorId.value,
147
+ tag: 'table-column'
148
+ }
149
+ }
150
+
151
+ const renderEditorFormItem = (item: EditorInputTableColumn) => {
152
+ return h(
153
+ FormItem,
154
+ {
155
+ item: item as XFormItem,
156
+ formProps: props,
157
+ rowData: editorRowData.value,
158
+ static: props.static,
159
+ noLabel: true,
160
+ editorPath: getEditorColumnPath(item)
161
+ },
162
+ {
163
+ ...slots
164
+ }
165
+ )
166
+ }
167
+ </script>
168
+
169
+ <style lang="scss" scoped>
170
+ .x-input-table__editor {
171
+ border: 1px solid var(--el-table-border-color, var(--el-border-color-lighter));
172
+ border-radius: 4px;
173
+ background: var(--el-fill-color-blank);
174
+ overflow: hidden;
175
+ }
176
+
177
+ .x-input-table__editor-scroll {
178
+ min-height: 92px;
179
+ display: flex;
180
+ align-items: stretch;
181
+ overflow-x: auto;
182
+ overflow-y: hidden;
183
+ }
184
+
185
+ .x-input-table__editor-columns {
186
+ display: flex;
187
+ align-items: stretch;
188
+ min-width: 0;
189
+
190
+ &.is-editor-empty-drop-zone {
191
+ flex: 1 0 240px;
192
+ min-height: 92px;
193
+ border: 1px dashed var(--el-border-color);
194
+ border-radius: 4px;
195
+ justify-content: center;
196
+ align-items: center;
197
+
198
+ &::before {
199
+ content: '拖拽普通组件作为表格列';
200
+ color: var(--el-text-color-placeholder);
201
+ font-size: 13px;
202
+ pointer-events: none;
203
+ }
204
+ }
205
+ }
206
+
207
+ .x-input-table__editor-column {
208
+ position: relative;
209
+ flex: 0 0 180px;
210
+ min-width: 0;
211
+ border: 0;
212
+ border-right: 1px solid var(--el-table-border-color, var(--el-border-color-lighter));
213
+ border-radius: 0;
214
+ background: var(--el-fill-color-blank);
215
+
216
+ &.editor-item-wrapper {
217
+ padding: 0;
218
+ margin-bottom: 0;
219
+ border: 0;
220
+ border-right: 1px solid var(--el-table-border-color, var(--el-border-color-lighter));
221
+ border-radius: 0;
222
+ background: var(--el-fill-color-blank);
223
+ }
224
+
225
+ &.editor-item-wrapper.is-active {
226
+ z-index: 2;
227
+ outline: none;
228
+ border-right-color: transparent;
229
+
230
+ &::after {
231
+ content: '';
232
+ position: absolute;
233
+ inset: 0;
234
+ z-index: 10;
235
+ border: 2px solid var(--el-color-primary);
236
+ pointer-events: none;
237
+ }
238
+ }
239
+
240
+ &:first-child {
241
+ border-top-left-radius: 0;
242
+ border-bottom-left-radius: 0;
243
+ }
244
+
245
+ &:last-child {
246
+ border-top-right-radius: 0;
247
+ border-bottom-right-radius: 0;
248
+ }
249
+ }
250
+
251
+ .x-input-table__editor-column--operation {
252
+ border-left: 0;
253
+ background: var(--el-fill-color-blank);
254
+ }
255
+
256
+ .x-input-table__editor-th {
257
+ min-height: 36px;
258
+ padding: 8px 10px;
259
+ display: flex;
260
+ align-items: center;
261
+ justify-content: center;
262
+ border-bottom: 1px solid var(--el-table-border-color, var(--el-border-color-lighter));
263
+ color: var(--el-text-color-primary);
264
+ font-size: 13px;
265
+ font-weight: 600;
266
+ background: var(--el-table-header-bg-color, var(--el-fill-color-light));
267
+ white-space: nowrap;
268
+ overflow: hidden;
269
+ text-overflow: ellipsis;
270
+ }
271
+
272
+ .x-input-table__editor-td {
273
+ min-height: 56px;
274
+ padding: 8px;
275
+ display: flex;
276
+ align-items: center;
277
+ justify-content: center;
278
+ }
279
+
280
+ .x-input-table__editor-td :deep(.el-form-item) {
281
+ width: 100%;
282
+ padding: 0 !important;
283
+ }
284
+
285
+ .x-input-table__editor-column :deep(.editor-item-content) {
286
+ height: 100%;
287
+ }
288
+
289
+ .x-input-table__editor-column.editor-item-wrapper :deep(.editor-item-actions) {
290
+ top: 0;
291
+ right: 0;
292
+ bottom: auto;
293
+ border-radius: 0 0 0 2px;
294
+ }
295
+
296
+ .x-input-table__editor-operation-cell {
297
+ gap: 6px;
298
+ flex-wrap: wrap;
299
+ }
300
+
301
+ .x-input-table__editor-operation-action {
302
+ color: var(--el-color-primary);
303
+ font-size: 12px;
304
+ line-height: 1;
305
+ }
306
+
307
+ .x-input-table__editor-operation-action + .x-input-table__editor-operation-action {
308
+ padding-left: 6px;
309
+ border-left: 1px solid var(--el-border-color);
310
+ }
311
+ </style>