ll-plus 2.3.2 → 2.3.4

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 (232) hide show
  1. package/es/components/advanced-filtering/index.d.ts +303 -303
  2. package/es/components/advanced-filtering/src/advanced-filtering.vue.d.ts +154 -154
  3. package/es/components/advanced-filtering/src/components/advanced-filtering-params.vue.d.ts +145 -145
  4. package/es/components/advanced-filtering/src/components/advanced-filtering-tags.vue.d.ts +4 -4
  5. package/es/components/api-component/index.d.ts +36 -36
  6. package/es/components/api-component/src/api-component.vue.d.ts +36 -36
  7. package/es/components/api-component/src/components/api-modal.vue.d.ts +6 -6
  8. package/es/components/api-component/src/components/api-url.vue.d.ts +7 -7
  9. package/es/components/api-component/src/components/click-input.vue.d.ts +12 -12
  10. package/es/components/api-component/src/components/params-table-row.vue.d.ts +18 -18
  11. package/es/components/api-component/src/components/params-table.vue.d.ts +22 -22
  12. package/es/components/api-component/src/config/api-component.d.ts +1 -1
  13. package/es/components/api-component/src/config/api-modal.d.ts +1 -1
  14. package/es/components/api-component/src/config/click-input.d.ts +1 -1
  15. package/es/components/button/index.d.ts +1 -1
  16. package/es/components/button/src/button.vue.d.ts +1 -1
  17. package/es/components/checkbox/index.d.ts +217 -217
  18. package/es/components/checkbox/src/checkbox-group.vue.d.ts +217 -217
  19. package/es/components/checkbox/src/checkbox.d.ts +56 -56
  20. package/es/components/code-editor/index.d.ts +2 -2
  21. package/es/components/code-editor/src/code-editor.vue.d.ts +2 -2
  22. package/es/components/drawer/index.d.ts +11 -11
  23. package/es/components/drawer/src/components/second-confirmation/index.d.ts +8 -8
  24. package/es/components/drawer/src/components/second-confirmation/src/second-confirmation.vue.d.ts +8 -8
  25. package/es/components/drawer/src/drawer.vue.d.ts +11 -11
  26. package/es/components/easy-cron/index.d.ts +86 -86
  27. package/es/components/easy-cron/src/components/easy-cron-inner.vue.d.ts +79 -79
  28. package/es/components/easy-cron/src/components/easy-cron-modal.vue.d.ts +79 -79
  29. package/es/components/easy-cron/src/easy-cron.vue.d.ts +86 -86
  30. package/es/components/form/index.d.ts +142 -142
  31. package/es/components/form/src/config/form.d.ts +56 -56
  32. package/es/components/form/src/form.vue.d.ts +142 -142
  33. package/es/components/icon-base/index.d.ts +1 -1
  34. package/es/components/icon-base/src/icon-base.vue.d.ts +1 -1
  35. package/es/components/input/index.d.ts +31 -31
  36. package/es/components/input/src/input.vue.d.ts +31 -31
  37. package/es/components/key-value/index.d.ts +14322 -8
  38. package/es/components/key-value/src/components/key-value-item.vue.d.ts +4544 -0
  39. package/es/components/key-value/src/components/key-value-item.vue2.mjs +25 -21
  40. package/es/components/key-value/src/components/key-value-item.vue2.mjs.map +1 -1
  41. package/es/components/key-value/src/config/key-value-item.d.ts +24 -0
  42. package/es/components/key-value/src/config/key-value-item.mjs +12 -0
  43. package/es/components/key-value/src/config/key-value-item.mjs.map +1 -1
  44. package/es/components/key-value/src/config/key-value.d.ts +1 -0
  45. package/es/components/key-value/src/config/key-value.mjs +4 -0
  46. package/es/components/key-value/src/config/key-value.mjs.map +1 -1
  47. package/es/components/key-value/src/key-value.vue.d.ts +14322 -8
  48. package/es/components/key-value/src/key-value.vue2.mjs +15 -2
  49. package/es/components/key-value/src/key-value.vue2.mjs.map +1 -1
  50. package/es/components/modal/index.d.ts +5 -5
  51. package/es/components/modal/src/modal.vue.d.ts +5 -5
  52. package/es/components/number-range/index.d.ts +2 -2
  53. package/es/components/number-range/src/number-range.vue.d.ts +2 -2
  54. package/es/components/operate-icon/index.d.ts +3 -3
  55. package/es/components/operate-icon/src/operate-icon.vue.d.ts +3 -3
  56. package/es/components/select/index.d.ts +11 -11
  57. package/es/components/select/src/select.vue.d.ts +11 -11
  58. package/es/components/table/index.d.ts +6 -6
  59. package/es/components/table/src/components/main-table.vue.d.ts +2 -2
  60. package/es/components/table/src/components/main-table.vue2.mjs +18 -1
  61. package/es/components/table/src/components/main-table.vue2.mjs.map +1 -1
  62. package/es/components/table/src/config/table.d.ts +2 -2
  63. package/es/components/table/src/table.vue.d.ts +6 -6
  64. package/es/components/table/src/table.vue2.mjs +14 -0
  65. package/es/components/table/src/table.vue2.mjs.map +1 -1
  66. package/es/components/textarea/index.d.ts +5 -5
  67. package/es/components/textarea/src/textarea.vue.d.ts +5 -5
  68. package/es/components/tooltip/index.d.ts +4 -4
  69. package/es/components/tooltip/src/tooltip.d.ts +1 -1
  70. package/es/components/tooltip/src/tooltip.vue.d.ts +4 -4
  71. package/es/components/tree/index.d.ts +2 -2
  72. package/es/components/tree/src/tree.vue.d.ts +2 -2
  73. package/es/components/tree-search/index.d.ts +17 -17
  74. package/es/components/tree-search/src/config/tree-search.d.ts +4 -4
  75. package/es/components/tree-search/src/tree-search.vue.d.ts +17 -17
  76. package/es/components/upload-drag/index.d.ts +6 -6
  77. package/es/components/upload-drag/src/upload-drag.vue.d.ts +6 -6
  78. package/es/components/uri-input/index.d.ts +2 -2
  79. package/es/components/uri-input/src/uri-input.vue.d.ts +2 -2
  80. package/index.full.js +87 -23
  81. package/index.full.min.js +14 -14
  82. package/index.full.min.js.map +1 -1
  83. package/index.full.min.mjs +19 -19
  84. package/index.full.min.mjs.map +1 -1
  85. package/index.full.mjs +87 -23
  86. package/lib/components/advanced-filtering/index.d.ts +303 -303
  87. package/lib/components/advanced-filtering/src/advanced-filtering.vue.d.ts +154 -154
  88. package/lib/components/advanced-filtering/src/components/advanced-filtering-params.vue.d.ts +145 -145
  89. package/lib/components/advanced-filtering/src/components/advanced-filtering-tags.vue.d.ts +4 -4
  90. package/lib/components/api-component/index.d.ts +36 -36
  91. package/lib/components/api-component/src/api-component.vue.d.ts +36 -36
  92. package/lib/components/api-component/src/components/api-modal.vue.d.ts +6 -6
  93. package/lib/components/api-component/src/components/api-url.vue.d.ts +7 -7
  94. package/lib/components/api-component/src/components/click-input.vue.d.ts +12 -12
  95. package/lib/components/api-component/src/components/params-table-row.vue.d.ts +18 -18
  96. package/lib/components/api-component/src/components/params-table.vue.d.ts +22 -22
  97. package/lib/components/api-component/src/config/api-component.d.ts +1 -1
  98. package/lib/components/api-component/src/config/api-modal.d.ts +1 -1
  99. package/lib/components/api-component/src/config/click-input.d.ts +1 -1
  100. package/lib/components/button/index.d.ts +1 -1
  101. package/lib/components/button/src/button.vue.d.ts +1 -1
  102. package/lib/components/checkbox/index.d.ts +217 -217
  103. package/lib/components/checkbox/src/checkbox-group.vue.d.ts +217 -217
  104. package/lib/components/checkbox/src/checkbox.d.ts +56 -56
  105. package/lib/components/code-editor/index.d.ts +2 -2
  106. package/lib/components/code-editor/src/code-editor.vue.d.ts +2 -2
  107. package/lib/components/drawer/index.d.ts +11 -11
  108. package/lib/components/drawer/src/components/second-confirmation/index.d.ts +8 -8
  109. package/lib/components/drawer/src/components/second-confirmation/src/second-confirmation.vue.d.ts +8 -8
  110. package/lib/components/drawer/src/drawer.vue.d.ts +11 -11
  111. package/lib/components/easy-cron/index.d.ts +86 -86
  112. package/lib/components/easy-cron/src/components/easy-cron-inner.vue.d.ts +79 -79
  113. package/lib/components/easy-cron/src/components/easy-cron-modal.vue.d.ts +79 -79
  114. package/lib/components/easy-cron/src/easy-cron.vue.d.ts +86 -86
  115. package/lib/components/form/index.d.ts +142 -142
  116. package/lib/components/form/src/config/form.d.ts +56 -56
  117. package/lib/components/form/src/form.vue.d.ts +142 -142
  118. package/lib/components/icon-base/index.d.ts +1 -1
  119. package/lib/components/icon-base/src/icon-base.vue.d.ts +1 -1
  120. package/lib/components/input/index.d.ts +31 -31
  121. package/lib/components/input/src/input.vue.d.ts +31 -31
  122. package/lib/components/key-value/index.d.ts +14322 -8
  123. package/lib/components/key-value/src/components/key-value-item.vue.d.ts +4544 -0
  124. package/lib/components/key-value/src/components/key-value-item.vue2.js +24 -20
  125. package/lib/components/key-value/src/components/key-value-item.vue2.js.map +1 -1
  126. package/lib/components/key-value/src/config/key-value-item.d.ts +24 -0
  127. package/lib/components/key-value/src/config/key-value-item.js +12 -0
  128. package/lib/components/key-value/src/config/key-value-item.js.map +1 -1
  129. package/lib/components/key-value/src/config/key-value.d.ts +1 -0
  130. package/lib/components/key-value/src/config/key-value.js +4 -0
  131. package/lib/components/key-value/src/config/key-value.js.map +1 -1
  132. package/lib/components/key-value/src/key-value.vue.d.ts +14322 -8
  133. package/lib/components/key-value/src/key-value.vue2.js +15 -2
  134. package/lib/components/key-value/src/key-value.vue2.js.map +1 -1
  135. package/lib/components/modal/index.d.ts +5 -5
  136. package/lib/components/modal/src/modal.vue.d.ts +5 -5
  137. package/lib/components/number-range/index.d.ts +2 -2
  138. package/lib/components/number-range/src/number-range.vue.d.ts +2 -2
  139. package/lib/components/operate-icon/index.d.ts +3 -3
  140. package/lib/components/operate-icon/src/operate-icon.vue.d.ts +3 -3
  141. package/lib/components/select/index.d.ts +11 -11
  142. package/lib/components/select/src/select.vue.d.ts +11 -11
  143. package/lib/components/table/index.d.ts +6 -6
  144. package/lib/components/table/src/components/main-table.vue.d.ts +2 -2
  145. package/lib/components/table/src/components/main-table.vue2.js +18 -1
  146. package/lib/components/table/src/components/main-table.vue2.js.map +1 -1
  147. package/lib/components/table/src/config/table.d.ts +2 -2
  148. package/lib/components/table/src/table.vue.d.ts +6 -6
  149. package/lib/components/table/src/table.vue2.js +14 -0
  150. package/lib/components/table/src/table.vue2.js.map +1 -1
  151. package/lib/components/textarea/index.d.ts +5 -5
  152. package/lib/components/textarea/src/textarea.vue.d.ts +5 -5
  153. package/lib/components/tooltip/index.d.ts +4 -4
  154. package/lib/components/tooltip/src/tooltip.d.ts +1 -1
  155. package/lib/components/tooltip/src/tooltip.vue.d.ts +4 -4
  156. package/lib/components/tree/index.d.ts +2 -2
  157. package/lib/components/tree/src/tree.vue.d.ts +2 -2
  158. package/lib/components/tree-search/index.d.ts +17 -17
  159. package/lib/components/tree-search/src/config/tree-search.d.ts +4 -4
  160. package/lib/components/tree-search/src/tree-search.vue.d.ts +17 -17
  161. package/lib/components/upload-drag/index.d.ts +6 -6
  162. package/lib/components/upload-drag/src/upload-drag.vue.d.ts +6 -6
  163. package/lib/components/uri-input/index.d.ts +2 -2
  164. package/lib/components/uri-input/src/uri-input.vue.d.ts +2 -2
  165. package/package.json +1 -1
  166. package/types/packages/components/advanced-filtering/index.d.ts +303 -303
  167. package/types/packages/components/advanced-filtering/src/advanced-filtering.vue.d.ts +154 -154
  168. package/types/packages/components/advanced-filtering/src/components/advanced-filtering-params.vue.d.ts +145 -145
  169. package/types/packages/components/advanced-filtering/src/components/advanced-filtering-tags.vue.d.ts +4 -4
  170. package/types/packages/components/api-component/index.d.ts +36 -36
  171. package/types/packages/components/api-component/src/api-component.vue.d.ts +36 -36
  172. package/types/packages/components/api-component/src/components/api-modal.vue.d.ts +6 -6
  173. package/types/packages/components/api-component/src/components/api-url.vue.d.ts +7 -7
  174. package/types/packages/components/api-component/src/components/click-input.vue.d.ts +12 -12
  175. package/types/packages/components/api-component/src/components/params-table-row.vue.d.ts +18 -18
  176. package/types/packages/components/api-component/src/components/params-table.vue.d.ts +22 -22
  177. package/types/packages/components/api-component/src/config/api-component.d.ts +1 -1
  178. package/types/packages/components/api-component/src/config/api-modal.d.ts +1 -1
  179. package/types/packages/components/api-component/src/config/click-input.d.ts +1 -1
  180. package/types/packages/components/button/index.d.ts +1 -1
  181. package/types/packages/components/button/src/button.vue.d.ts +1 -1
  182. package/types/packages/components/checkbox/index.d.ts +217 -217
  183. package/types/packages/components/checkbox/src/checkbox-group.vue.d.ts +217 -217
  184. package/types/packages/components/checkbox/src/checkbox.d.ts +56 -56
  185. package/types/packages/components/code-editor/index.d.ts +2 -2
  186. package/types/packages/components/code-editor/src/code-editor.vue.d.ts +2 -2
  187. package/types/packages/components/drawer/index.d.ts +11 -11
  188. package/types/packages/components/drawer/src/components/second-confirmation/index.d.ts +8 -8
  189. package/types/packages/components/drawer/src/components/second-confirmation/src/second-confirmation.vue.d.ts +8 -8
  190. package/types/packages/components/drawer/src/drawer.vue.d.ts +11 -11
  191. package/types/packages/components/easy-cron/index.d.ts +86 -86
  192. package/types/packages/components/easy-cron/src/components/easy-cron-inner.vue.d.ts +79 -79
  193. package/types/packages/components/easy-cron/src/components/easy-cron-modal.vue.d.ts +79 -79
  194. package/types/packages/components/easy-cron/src/easy-cron.vue.d.ts +86 -86
  195. package/types/packages/components/form/index.d.ts +142 -142
  196. package/types/packages/components/form/src/config/form.d.ts +56 -56
  197. package/types/packages/components/form/src/form.vue.d.ts +142 -142
  198. package/types/packages/components/icon-base/index.d.ts +1 -1
  199. package/types/packages/components/icon-base/src/icon-base.vue.d.ts +1 -1
  200. package/types/packages/components/input/index.d.ts +31 -31
  201. package/types/packages/components/input/src/input.vue.d.ts +31 -31
  202. package/types/packages/components/key-value/index.d.ts +14322 -8
  203. package/types/packages/components/key-value/src/components/key-value-item.vue.d.ts +4544 -0
  204. package/types/packages/components/key-value/src/config/key-value-item.d.ts +24 -0
  205. package/types/packages/components/key-value/src/config/key-value.d.ts +1 -0
  206. package/types/packages/components/key-value/src/key-value.vue.d.ts +14322 -8
  207. package/types/packages/components/modal/index.d.ts +5 -5
  208. package/types/packages/components/modal/src/modal.vue.d.ts +5 -5
  209. package/types/packages/components/number-range/index.d.ts +2 -2
  210. package/types/packages/components/number-range/src/number-range.vue.d.ts +2 -2
  211. package/types/packages/components/operate-icon/index.d.ts +3 -3
  212. package/types/packages/components/operate-icon/src/operate-icon.vue.d.ts +3 -3
  213. package/types/packages/components/select/index.d.ts +11 -11
  214. package/types/packages/components/select/src/select.vue.d.ts +11 -11
  215. package/types/packages/components/table/index.d.ts +6 -6
  216. package/types/packages/components/table/src/components/main-table.vue.d.ts +2 -2
  217. package/types/packages/components/table/src/config/table.d.ts +2 -2
  218. package/types/packages/components/table/src/table.vue.d.ts +6 -6
  219. package/types/packages/components/textarea/index.d.ts +5 -5
  220. package/types/packages/components/textarea/src/textarea.vue.d.ts +5 -5
  221. package/types/packages/components/tooltip/index.d.ts +4 -4
  222. package/types/packages/components/tooltip/src/tooltip.d.ts +1 -1
  223. package/types/packages/components/tooltip/src/tooltip.vue.d.ts +4 -4
  224. package/types/packages/components/tree/index.d.ts +2 -2
  225. package/types/packages/components/tree/src/tree.vue.d.ts +2 -2
  226. package/types/packages/components/tree-search/index.d.ts +17 -17
  227. package/types/packages/components/tree-search/src/config/tree-search.d.ts +4 -4
  228. package/types/packages/components/tree-search/src/tree-search.vue.d.ts +17 -17
  229. package/types/packages/components/upload-drag/index.d.ts +6 -6
  230. package/types/packages/components/upload-drag/src/upload-drag.vue.d.ts +6 -6
  231. package/types/packages/components/uri-input/index.d.ts +2 -2
  232. package/types/packages/components/uri-input/src/uri-input.vue.d.ts +2 -2
@@ -2,7 +2,7 @@ import { defineComponent, useAttrs, ref, computed, watch, nextTick, resolveCompo
2
2
  import { isEmpty } from 'lodash-es';
3
3
  import '../../../../utils/index.mjs';
4
4
  import '../config/index.mjs';
5
- import { keyValueItemProps, keyValueItemEmits, typeRules, formColumns, formOptions } from '../config/key-value-item.mjs';
5
+ import { keyValueItemProps, keyValueItemEmits, formColumns, formOptions } from '../config/key-value-item.mjs';
6
6
  import { createNamespace } from '../../../../utils/create-namespace.mjs';
7
7
 
8
8
  "use strict";
@@ -13,26 +13,19 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
13
13
  __name: "key-value-item",
14
14
  props: keyValueItemProps,
15
15
  emits: keyValueItemEmits,
16
- setup(__props, { emit: __emit }) {
16
+ setup(__props, { expose: __expose, emit: __emit }) {
17
17
  const props = __props;
18
18
  const emits = __emit;
19
19
  const attrs = useAttrs();
20
20
  const bem = createNamespace("key-value");
21
21
  const innerValue = ref(props.value);
22
+ const form = ref();
22
23
  const getKeyType = computed(() => {
23
- const option = attrs["key-type"] || {
24
- type: "input",
25
- placeholder: "\u8BF7\u8F93\u5165",
26
- rule: typeRules || []
27
- };
24
+ const option = props.keyType;
28
25
  return option;
29
26
  });
30
27
  const getValueType = computed(() => {
31
- let option = attrs["value-type"] || {
32
- type: "input",
33
- placeholder: "\u8BF7\u8F93\u5165",
34
- rule: []
35
- };
28
+ let option = props.valueType;
36
29
  if (innerValue.value["key"] && !isEmpty(props.keyValueTypeDict)) {
37
30
  option = props.keyValueTypeDict[innerValue.value["key"]];
38
31
  }
@@ -51,7 +44,13 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
51
44
  emits("delete");
52
45
  };
53
46
  const handleChange = () => {
54
- innerValue.value["value"] = "";
47
+ innerValue.value["value"] = null;
48
+ };
49
+ const validate = async () => {
50
+ return await form.value?.validate();
51
+ };
52
+ const resetFields = async () => {
53
+ return await form.value?.resetFields();
55
54
  };
56
55
  watch(
57
56
  innerValue,
@@ -69,6 +68,10 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
69
68
  deep: true
70
69
  }
71
70
  );
71
+ __expose({
72
+ validate,
73
+ resetFields
74
+ });
72
75
  return (_ctx, _cache) => {
73
76
  const _component_ll_select = resolveComponent("ll-select");
74
77
  const _component_ll_form_item = resolveComponent("ll-form-item");
@@ -77,7 +80,8 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
77
80
  const _component_a_popconfirm = resolveComponent("a-popconfirm");
78
81
  const _component_ll_form = resolveComponent("ll-form");
79
82
  return openBlock(), createBlock(_component_ll_form, {
80
- ref: "form",
83
+ ref_key: "form",
84
+ ref: form,
81
85
  "form-columns": unref(formColumns),
82
86
  "form-data": props.value,
83
87
  "form-options": unref(formOptions)
@@ -90,7 +94,7 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
90
94
  class: normalizeClass(unref(bem).e("item"))
91
95
  },
92
96
  [
93
- unref(attrs)["key-value-type"] !== "single" ? (openBlock(), createElementBlock(
97
+ props.keyValueType !== "single" ? (openBlock(), createElementBlock(
94
98
  "div",
95
99
  {
96
100
  key: 0,
@@ -102,16 +106,16 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
102
106
  "label-col": {
103
107
  span: 24
104
108
  },
105
- rules: getKeyType.value.role,
109
+ rules: getKeyType.value.rules || [],
106
110
  name: "key"
107
111
  }, {
108
112
  default: withCtx(() => [
109
113
  renderSlot(_ctx.$slots, "key", {}, () => [
110
- !unref(isEmpty)(unref(attrs)["key-types"]) ? (openBlock(), createBlock(_component_ll_select, {
114
+ !unref(isEmpty)(props.keyTypes) ? (openBlock(), createBlock(_component_ll_select, {
111
115
  key: 0,
112
116
  value: innerValue.value["key"],
113
117
  "onUpdate:value": _cache[0] || (_cache[0] = ($event) => innerValue.value["key"] = $event),
114
- options: unref(attrs)["key-types"],
118
+ options: props.keyTypes,
115
119
  disabled: getKeyDisabled.value,
116
120
  placeholder: "\u8BF7\u9009\u62E9",
117
121
  "allow-clear": "",
@@ -145,7 +149,7 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
145
149
  2
146
150
  /* CLASS */
147
151
  )) : createCommentVNode("v-if", true),
148
- unref(attrs)["key-value-type"] !== "single" ? (openBlock(), createElementBlock(
152
+ props.keyValueType !== "single" ? (openBlock(), createElementBlock(
149
153
  "div",
150
154
  {
151
155
  key: 1,
@@ -173,7 +177,7 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
173
177
  "label-col": {
174
178
  span: 24
175
179
  },
176
- rule: getValueType.value.rule || {},
180
+ rules: getValueType.value.rules || [],
177
181
  name: "value"
178
182
  }, {
179
183
  default: withCtx(() => [
@@ -200,7 +204,7 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
200
204
  ]),
201
205
  _: 3
202
206
  /* FORWARDED */
203
- }, 8, ["label", "rule"])
207
+ }, 8, ["label", "rules"])
204
208
  ],
205
209
  2
206
210
  /* CLASS */
@@ -1 +1 @@
1
- {"version":3,"file":"key-value-item.vue2.mjs","sources":["../../../../../../packages/components/key-value/src/components/key-value-item.vue"],"sourcesContent":["<template>\n <ll-form\n ref=\"form\"\n :form-columns=\"formColumns\"\n :form-data=\"props.value\"\n :form-options=\"formOptions\"\n >\n <template #formItem=\"{ item }\">\n <template v-if=\"item.key === 'other'\">\n <div :class=\"bem.e('item')\">\n <div\n v-if=\"attrs['key-value-type'] !== 'single'\"\n :class=\"bem.m('left')\"\n >\n <ll-form-item\n :label=\"attrs['key-label']\"\n :label-col=\"{\n span: 24\n }\"\n :rules=\"getKeyType.role\"\n name=\"key\"\n >\n <slot name=\"key\">\n <ll-select\n v-if=\"!isEmpty(attrs['key-types'])\"\n v-model:value=\"innerValue['key']\"\n :options=\"attrs['key-types']\"\n :disabled=\"getKeyDisabled\"\n placeholder=\"请选择\"\n allow-clear\n @change=\"handleChange\"\n />\n <component\n :is=\"`ll-${getKeyType.type}`\"\n v-else\n v-model:value=\"innerValue['key']\"\n v-bind=\"getKeyType\"\n :disabled=\"getKeyDisabled\"\n style=\"width: 100%\"\n >\n <template\n v-for=\"_item in Object.keys($slots)\"\n :key=\"_item\"\n #[_item]=\"data\"\n >\n <slot\n :name=\"_item\"\n v-bind=\"data || {}\"\n content=\"key\"\n ></slot>\n </template>\n </component>\n </slot>\n </ll-form-item>\n </div>\n\n <div\n v-if=\"attrs['key-value-type'] !== 'single'\"\n :class=\"bem.m('separator')\"\n :style=\"{\n 'margin-top':\n !!attrs['key-label'] || !!attrs['value-label'] ? '26px' : '0px'\n }\"\n >\n <slot name=\"separator\">~</slot>\n </div>\n\n <div :class=\"bem.m('right')\">\n <ll-form-item\n :label=\"attrs['value-label']\"\n :label-col=\"{\n span: 24\n }\"\n :rule=\"getValueType.rule || {}\"\n name=\"value\"\n >\n <slot name=\"value-warapper\" v-bind=\"getValueType\">\n <component\n :is=\"`ll-${getValueType.type}`\"\n v-model:value=\"innerValue['value']\"\n :disabled=\"getValueDisabled\"\n style=\"width: 100%\"\n v-bind=\"getValueType\"\n >\n <template\n v-for=\"_item in Object.keys($slots)\"\n :key=\"_item\"\n #[_item]=\"data\"\n >\n <slot\n :name=\"_item\"\n v-bind=\"data || {}\"\n content=\"value\"\n ></slot>\n </template>\n </component>\n </slot>\n </ll-form-item>\n </div>\n\n <a-popconfirm\n title=\"你确定要移除吗?\"\n ok-text=\"确认\"\n cancel-text=\"取消\"\n placement=\"topRight\"\n :overlay-class-name=\"bem.m('popconfirm')\"\n :get-popup-container=\"(trigger: Element) => trigger.parentNode\"\n destroy-tooltip-on-hide\n @confirm=\"handleDelete\"\n >\n <div\n v-if=\"props.showDelete\"\n :class=\"bem.m('delete')\"\n :style=\"{\n 'margin-top':\n !!attrs['key-label'] || !!attrs['value-label']\n ? '26px'\n : '0px'\n }\"\n >\n <ll-button type=\"link\" :disabled=\"getDeleteDisabled\">\n <slot name=\"delete-icon\">\n <ll-icon icon-name=\"icon-remove\" class=\"delete\" />\n </slot>\n </ll-button>\n </div>\n </a-popconfirm>\n </div>\n </template>\n </template>\n </ll-form>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref, computed, useAttrs, watch, nextTick } from 'vue'\nimport { isEmpty } from 'lodash-es'\nimport { createNamespace } from '@ll-plus/utils'\nimport {\n typeRules,\n keyValueItemProps,\n keyValueItemEmits,\n formColumns,\n formOptions\n} from '../config'\nimport { type FormColumn } from '@ll-plus/components'\n\ndefineOptions({\n name: 'LlKeyValueItem'\n})\n\nconst props = defineProps(keyValueItemProps)\nconst emits = defineEmits(keyValueItemEmits)\n\nconst attrs = useAttrs()\nconst bem = createNamespace('key-value')\nconst innerValue = ref(props.value)\n\nconst getKeyType = computed<FormColumn>(() => {\n const option = attrs['key-type'] || {\n type: 'input',\n placeholder: '请输入',\n rule: typeRules || []\n }\n return option\n})\nconst getValueType = computed<FormColumn>(() => {\n let option = attrs['value-type'] || {\n type: 'input',\n placeholder: '请输入',\n rule: []\n }\n if (innerValue.value['key'] && !isEmpty(props.keyValueTypeDict)) {\n option = props.keyValueTypeDict[innerValue.value['key']]\n }\n return option\n})\n\nconst getKeyDisabled = computed(() => {\n return (\n props.disabledKey?.includes(props.idx) ||\n props.disabled ||\n getKeyType.value?.disabled\n )\n})\n\nconst getValueDisabled = computed(() => {\n return (\n props.disabledValue?.includes(props.idx) ||\n props.disabled ||\n getValueType.value?.disabled\n )\n})\n\nconst getDeleteDisabled = computed(() => {\n return props.disabledDelete?.includes(props.idx) || props.disabled\n})\n\nconst handleDelete = () => {\n emits('delete')\n}\n\nconst handleChange = () => {\n innerValue.value['value'] = ''\n}\n\nwatch(\n innerValue,\n async val => {\n await nextTick().then(() => {\n try {\n emits('update:value', val)\n emits('change')\n } catch (error) {\n console.error(error)\n }\n })\n },\n {\n deep: true\n }\n)\n</script>\n\n<style scoped></style>\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAsJA,IAAA,MAAM,KAAQ,GAAA,OAAA,CAAA;AACd,IAAA,MAAM,KAAQ,GAAA,MAAA,CAAA;AAEd,IAAA,MAAM,QAAQ,QAAS,EAAA,CAAA;AACvB,IAAM,MAAA,GAAA,GAAM,gBAAgB,WAAW,CAAA,CAAA;AACvC,IAAM,MAAA,UAAA,GAAa,GAAI,CAAA,KAAA,CAAM,KAAK,CAAA,CAAA;AAElC,IAAM,MAAA,UAAA,GAAa,SAAqB,MAAM;AAC5C,MAAM,MAAA,MAAA,GAAS,KAAM,CAAA,UAAU,CAAK,IAAA;AAAA,QAClC,IAAM,EAAA,OAAA;AAAA,QACN,WAAa,EAAA,oBAAA;AAAA,QACb,IAAA,EAAM,aAAa,EAAC;AAAA,OACtB,CAAA;AACA,MAAO,OAAA,MAAA,CAAA;AAAA,KACR,CAAA,CAAA;AACD,IAAM,MAAA,YAAA,GAAe,SAAqB,MAAM;AAC9C,MAAI,IAAA,MAAA,GAAS,KAAM,CAAA,YAAY,CAAK,IAAA;AAAA,QAClC,IAAM,EAAA,OAAA;AAAA,QACN,WAAa,EAAA,oBAAA;AAAA,QACb,MAAM,EAAC;AAAA,OACT,CAAA;AACA,MAAI,IAAA,UAAA,CAAW,MAAM,KAAK,CAAA,IAAK,CAAC,OAAQ,CAAA,KAAA,CAAM,gBAAgB,CAAG,EAAA;AAC/D,QAAA,MAAA,GAAS,KAAM,CAAA,gBAAA,CAAiB,UAAW,CAAA,KAAA,CAAM,KAAK,CAAC,CAAA,CAAA;AAAA,OACzD;AACA,MAAO,OAAA,MAAA,CAAA;AAAA,KACR,CAAA,CAAA;AAED,IAAM,MAAA,cAAA,GAAiB,SAAS,MAAM;AACpC,MACE,OAAA,KAAA,CAAM,aAAa,QAAS,CAAA,KAAA,CAAM,GAAG,CACrC,IAAA,KAAA,CAAM,QACN,IAAA,UAAA,CAAW,KAAO,EAAA,QAAA,CAAA;AAAA,KAErB,CAAA,CAAA;AAED,IAAM,MAAA,gBAAA,GAAmB,SAAS,MAAM;AACtC,MACE,OAAA,KAAA,CAAM,eAAe,QAAS,CAAA,KAAA,CAAM,GAAG,CACvC,IAAA,KAAA,CAAM,QACN,IAAA,YAAA,CAAa,KAAO,EAAA,QAAA,CAAA;AAAA,KAEvB,CAAA,CAAA;AAED,IAAM,MAAA,iBAAA,GAAoB,SAAS,MAAM;AACvC,MAAA,OAAO,MAAM,cAAgB,EAAA,QAAA,CAAS,KAAM,CAAA,GAAG,KAAK,KAAM,CAAA,QAAA,CAAA;AAAA,KAC3D,CAAA,CAAA;AAED,IAAA,MAAM,eAAe,MAAM;AACzB,MAAA,KAAA,CAAM,QAAQ,CAAA,CAAA;AAAA,KAChB,CAAA;AAEA,IAAA,MAAM,eAAe,MAAM;AACzB,MAAW,UAAA,CAAA,KAAA,CAAM,OAAO,CAAI,GAAA,EAAA,CAAA;AAAA,KAC9B,CAAA;AAEA,IAAA,KAAA;AAAA,MACE,UAAA;AAAA,MACA,OAAM,GAAO,KAAA;AACX,QAAM,MAAA,QAAA,EAAW,CAAA,IAAA,CAAK,MAAM;AAC1B,UAAI,IAAA;AACF,YAAA,KAAA,CAAM,gBAAgB,GAAG,CAAA,CAAA;AACzB,YAAA,KAAA,CAAM,QAAQ,CAAA,CAAA;AAAA,mBACP,KAAO,EAAA;AACd,YAAA,OAAA,CAAQ,MAAM,KAAK,CAAA,CAAA;AAAA,WACrB;AAAA,SACD,CAAA,CAAA;AAAA,OACH;AAAA,MACA;AAAA,QACE,IAAM,EAAA,IAAA;AAAA,OACR;AAAA,KACF,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"key-value-item.vue2.mjs","sources":["../../../../../../packages/components/key-value/src/components/key-value-item.vue"],"sourcesContent":["<template>\n <ll-form\n ref=\"form\"\n :form-columns=\"formColumns\"\n :form-data=\"props.value\"\n :form-options=\"formOptions\"\n >\n <template #formItem=\"{ item }\">\n <template v-if=\"item.key === 'other'\">\n <div :class=\"bem.e('item')\">\n <div v-if=\"props.keyValueType !== 'single'\" :class=\"bem.m('left')\">\n <ll-form-item\n :label=\"attrs['key-label']\"\n :label-col=\"{\n span: 24\n }\"\n :rules=\"getKeyType.rules || []\"\n name=\"key\"\n >\n <slot name=\"key\">\n <ll-select\n v-if=\"!isEmpty(props.keyTypes)\"\n v-model:value=\"innerValue['key']\"\n :options=\"props.keyTypes\"\n :disabled=\"getKeyDisabled\"\n placeholder=\"请选择\"\n allow-clear\n @change=\"handleChange\"\n />\n <component\n :is=\"`ll-${getKeyType.type}`\"\n v-else\n v-model:value=\"innerValue['key']\"\n v-bind=\"getKeyType\"\n :disabled=\"getKeyDisabled\"\n style=\"width: 100%\"\n >\n <template\n v-for=\"_item in Object.keys($slots)\"\n :key=\"_item\"\n #[_item]=\"data\"\n >\n <slot\n :name=\"_item\"\n v-bind=\"data || {}\"\n content=\"key\"\n ></slot>\n </template>\n </component>\n </slot>\n </ll-form-item>\n </div>\n\n <div\n v-if=\"props.keyValueType !== 'single'\"\n :class=\"bem.m('separator')\"\n :style=\"{\n 'margin-top':\n !!attrs['key-label'] || !!attrs['value-label'] ? '26px' : '0px'\n }\"\n >\n <slot name=\"separator\">~</slot>\n </div>\n\n <div :class=\"bem.m('right')\">\n <ll-form-item\n :label=\"attrs['value-label']\"\n :label-col=\"{\n span: 24\n }\"\n :rules=\"getValueType.rules || []\"\n name=\"value\"\n >\n <slot name=\"value-warapper\" v-bind=\"getValueType\">\n <component\n :is=\"`ll-${getValueType.type}`\"\n v-model:value=\"innerValue['value']\"\n :disabled=\"getValueDisabled\"\n style=\"width: 100%\"\n v-bind=\"getValueType\"\n >\n <template\n v-for=\"_item in Object.keys($slots)\"\n :key=\"_item\"\n #[_item]=\"data\"\n >\n <slot\n :name=\"_item\"\n v-bind=\"data || {}\"\n content=\"value\"\n ></slot>\n </template>\n </component>\n </slot>\n </ll-form-item>\n </div>\n\n <a-popconfirm\n title=\"你确定要移除吗?\"\n ok-text=\"确认\"\n cancel-text=\"取消\"\n placement=\"topRight\"\n :overlay-class-name=\"bem.m('popconfirm')\"\n :get-popup-container=\"(trigger: Element) => trigger.parentNode\"\n destroy-tooltip-on-hide\n @confirm=\"handleDelete\"\n >\n <div\n v-if=\"props.showDelete\"\n :class=\"bem.m('delete')\"\n :style=\"{\n 'margin-top':\n !!attrs['key-label'] || !!attrs['value-label']\n ? '26px'\n : '0px'\n }\"\n >\n <ll-button type=\"link\" :disabled=\"getDeleteDisabled\">\n <slot name=\"delete-icon\">\n <ll-icon icon-name=\"icon-remove\" class=\"delete\" />\n </slot>\n </ll-button>\n </div>\n </a-popconfirm>\n </div>\n </template>\n </template>\n </ll-form>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref, computed, useAttrs, watch, nextTick } from 'vue'\nimport { isEmpty } from 'lodash-es'\nimport { createNamespace } from '@ll-plus/utils'\nimport type { FormInstance } from '@ll-plus/components'\nimport {\n keyValueItemProps,\n keyValueItemEmits,\n formColumns,\n formOptions\n} from '../config'\nimport { type FormColumn } from '@ll-plus/components'\n\ndefineOptions({\n name: 'LlKeyValueItem'\n})\n\nconst props = defineProps(keyValueItemProps)\nconst emits = defineEmits(keyValueItemEmits)\n\nconst attrs = useAttrs()\nconst bem = createNamespace('key-value')\nconst innerValue = ref(props.value)\n\nconst form = ref<FormInstance | null>()\n\nconst getKeyType = computed<FormColumn>(() => {\n const option = props.keyType\n return option\n})\nconst getValueType = computed<FormColumn>(() => {\n let option = props.valueType\n if (innerValue.value['key'] && !isEmpty(props.keyValueTypeDict)) {\n option = props.keyValueTypeDict[innerValue.value['key']]\n }\n return option\n})\n\nconst getKeyDisabled = computed(() => {\n return (\n props.disabledKey?.includes(props.idx) ||\n props.disabled ||\n getKeyType.value?.disabled\n )\n})\n\nconst getValueDisabled = computed(() => {\n return (\n props.disabledValue?.includes(props.idx) ||\n props.disabled ||\n getValueType.value?.disabled\n )\n})\n\nconst getDeleteDisabled = computed(() => {\n return props.disabledDelete?.includes(props.idx) || props.disabled\n})\n\nconst handleDelete = () => {\n emits('delete')\n}\n\nconst handleChange = () => {\n innerValue.value['value'] = null\n}\n\nconst validate = async () => {\n return await form.value?.validate()\n}\n\nconst resetFields = async () => {\n return await form.value?.resetFields()\n}\n\nwatch(\n innerValue,\n async val => {\n await nextTick().then(() => {\n try {\n emits('update:value', val)\n emits('change')\n } catch (error) {\n console.error(error)\n }\n })\n },\n {\n deep: true\n }\n)\n\ndefineExpose({\n validate,\n resetFields\n})\n</script>\n\n<style scoped></style>\n"],"names":[],"mappings":"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"}
@@ -262,6 +262,30 @@ export declare const keyValueItemProps: {
262
262
  readonly validator: ((val: unknown) => boolean) | undefined;
263
263
  __epPropKey: true;
264
264
  };
265
+ readonly keyValueType: {
266
+ readonly type: import("vue").PropType<import("ll-plus/es/utils").EpPropMergeType<(new (...args: any[]) => "single" | "doubt") | (() => "single" | "doubt") | ((new (...args: any[]) => "single" | "doubt") | (() => "single" | "doubt"))[], unknown, unknown>>;
267
+ readonly required: false;
268
+ readonly validator: ((val: unknown) => boolean) | undefined;
269
+ __epPropKey: true;
270
+ };
271
+ readonly keyType: {
272
+ readonly type: import("vue").PropType<any>;
273
+ readonly required: false;
274
+ readonly validator: ((val: unknown) => boolean) | undefined;
275
+ __epPropKey: true;
276
+ };
277
+ readonly keyTypes: {
278
+ readonly type: import("vue").PropType<KeyType[]>;
279
+ readonly required: false;
280
+ readonly validator: ((val: unknown) => boolean) | undefined;
281
+ __epPropKey: true;
282
+ };
283
+ readonly valueType: {
284
+ readonly type: import("vue").PropType<any>;
285
+ readonly required: false;
286
+ readonly validator: ((val: unknown) => boolean) | undefined;
287
+ __epPropKey: true;
288
+ };
265
289
  readonly value: import("ll-plus/es/utils").EpPropFinalized<(new (...args: any[]) => KeyValueItem) | (() => KeyValueItem) | ((new (...args: any[]) => KeyValueItem) | (() => KeyValueItem))[], unknown, unknown, () => {
266
290
  key: string;
267
291
  value: string;
@@ -40,6 +40,18 @@ const keyValueItemProps = buildProps({
40
40
  disabledDelete: {
41
41
  type: definePropType(Array)
42
42
  },
43
+ keyValueType: {
44
+ type: definePropType(String)
45
+ },
46
+ keyType: {
47
+ type: definePropType(Object)
48
+ },
49
+ keyTypes: {
50
+ type: definePropType(Array)
51
+ },
52
+ valueType: {
53
+ type: definePropType(Object)
54
+ },
43
55
  value: {
44
56
  type: definePropType(Object),
45
57
  default: () => ({
@@ -1 +1 @@
1
- {"version":3,"file":"key-value-item.mjs","sources":["../../../../../../packages/components/key-value/src/config/key-value-item.ts"],"sourcesContent":["import { buildProps, definePropType } from '@ll-plus/utils'\nimport type { FormProps } from 'ant-design-vue'\n\nexport const typeRules = [\n {\n trigger: ['blur', 'change'],\n message: '此字段是必需的',\n validator: async (_rule: any, value: any) => {\n if (!value) {\n return Promise.reject(new Error('此字段是必需的'))\n } else {\n return Promise.resolve()\n }\n }\n }\n]\nexport const formOptions = {\n layout: 'horizontal',\n labelAlign: 'left'\n} as FormProps\n\nexport const formColumns = [\n {\n key: 'other',\n labelCol: {\n span: 24\n }\n }\n]\n\nexport interface KeyValueItem {\n key: any | null\n value: any | null\n}\n\nexport const keyValueItemProps = buildProps({\n disabled: {\n type: Boolean\n },\n disabledValue: {\n type: definePropType<number[]>(Array)\n },\n disabledKey: {\n type: definePropType<number[]>(Array)\n },\n disabledDelete: {\n type: definePropType<number[]>(Array)\n },\n value: {\n type: definePropType<KeyValueItem>(Object),\n default: () => ({\n key: '',\n value: ''\n })\n },\n idx: {\n type: Number,\n required: true\n },\n keyValueTypeDict: {\n type: Object,\n default: () => ({})\n },\n showDelete: {\n type: Boolean,\n default: true\n }\n} as const)\n\nexport const keyValueItemEmits = {\n delete: () => true,\n change: () => true,\n 'update:value': (value: KeyValueItem) => !!value\n}\n"],"names":[],"mappings":";;;;AAGO,MAAM,SAAY,GAAA;AAAA,EACvB;AAAA,IACE,OAAA,EAAS,CAAC,MAAA,EAAQ,QAAQ,CAAA;AAAA,IAC1B,OAAS,EAAA,4CAAA;AAAA,IACT,SAAA,EAAW,OAAO,KAAA,EAAY,KAAe,KAAA;AAC3C,MAAA,IAAI,CAAC,KAAO,EAAA;AACV,QAAA,OAAO,OAAQ,CAAA,MAAA,CAAO,IAAI,KAAA,CAAM,4CAAS,CAAC,CAAA,CAAA;AAAA,OACrC,MAAA;AACL,QAAA,OAAO,QAAQ,OAAQ,EAAA,CAAA;AAAA,OACzB;AAAA,KACF;AAAA,GACF;AACF,EAAA;AACO,MAAM,WAAc,GAAA;AAAA,EACzB,MAAQ,EAAA,YAAA;AAAA,EACR,UAAY,EAAA,MAAA;AACd,EAAA;AAEO,MAAM,WAAc,GAAA;AAAA,EACzB;AAAA,IACE,GAAK,EAAA,OAAA;AAAA,IACL,QAAU,EAAA;AAAA,MACR,IAAM,EAAA,EAAA;AAAA,KACR;AAAA,GACF;AACF,EAAA;AAOO,MAAM,oBAAoB,UAAW,CAAA;AAAA,EAC1C,QAAU,EAAA;AAAA,IACR,IAAM,EAAA,OAAA;AAAA,GACR;AAAA,EACA,aAAe,EAAA;AAAA,IACb,IAAA,EAAM,eAAyB,KAAK,CAAA;AAAA,GACtC;AAAA,EACA,WAAa,EAAA;AAAA,IACX,IAAA,EAAM,eAAyB,KAAK,CAAA;AAAA,GACtC;AAAA,EACA,cAAgB,EAAA;AAAA,IACd,IAAA,EAAM,eAAyB,KAAK,CAAA;AAAA,GACtC;AAAA,EACA,KAAO,EAAA;AAAA,IACL,IAAA,EAAM,eAA6B,MAAM,CAAA;AAAA,IACzC,SAAS,OAAO;AAAA,MACd,GAAK,EAAA,EAAA;AAAA,MACL,KAAO,EAAA,EAAA;AAAA,KACT,CAAA;AAAA,GACF;AAAA,EACA,GAAK,EAAA;AAAA,IACH,IAAM,EAAA,MAAA;AAAA,IACN,QAAU,EAAA,IAAA;AAAA,GACZ;AAAA,EACA,gBAAkB,EAAA;AAAA,IAChB,IAAM,EAAA,MAAA;AAAA,IACN,OAAA,EAAS,OAAO,EAAC,CAAA;AAAA,GACnB;AAAA,EACA,UAAY,EAAA;AAAA,IACV,IAAM,EAAA,OAAA;AAAA,IACN,OAAS,EAAA,IAAA;AAAA,GACX;AACF,CAAU,EAAA;AAEH,MAAM,iBAAoB,GAAA;AAAA,EAC/B,QAAQ,MAAM,IAAA;AAAA,EACd,QAAQ,MAAM,IAAA;AAAA,EACd,cAAgB,EAAA,CAAC,KAAwB,KAAA,CAAC,CAAC,KAAA;AAC7C;;;;"}
1
+ {"version":3,"file":"key-value-item.mjs","sources":["../../../../../../packages/components/key-value/src/config/key-value-item.ts"],"sourcesContent":["import { buildProps, definePropType } from '@ll-plus/utils'\nimport type { FormProps } from 'ant-design-vue'\nimport type { FormColumn } from '@ll-plus/components'\n\nexport const typeRules = [\n {\n trigger: ['blur', 'change'],\n message: '此字段是必需的',\n validator: async (_rule: any, value: any) => {\n if (!value) {\n return Promise.reject(new Error('此字段是必需的'))\n } else {\n return Promise.resolve()\n }\n }\n }\n]\nexport const formOptions = {\n layout: 'horizontal',\n labelAlign: 'left'\n} as FormProps\n\nexport const formColumns = [\n {\n key: 'other',\n labelCol: {\n span: 24\n }\n }\n]\n\nexport interface KeyValueItem {\n key: any | null\n value: any | null\n}\n\nexport const keyValueItemProps = buildProps({\n disabled: {\n type: Boolean\n },\n disabledValue: {\n type: definePropType<number[]>(Array)\n },\n disabledKey: {\n type: definePropType<number[]>(Array)\n },\n disabledDelete: {\n type: definePropType<number[]>(Array)\n },\n keyValueType: {\n type: definePropType<'single' | 'doubt'>(String)\n },\n keyType: {\n type: definePropType<FormColumn>(Object)\n },\n keyTypes: {\n type: definePropType<KeyType[]>(Array)\n },\n valueType: {\n type: definePropType<FormColumn>(Object)\n },\n value: {\n type: definePropType<KeyValueItem>(Object),\n default: () => ({\n key: '',\n value: ''\n })\n },\n idx: {\n type: Number,\n required: true\n },\n keyValueTypeDict: {\n type: Object,\n default: () => ({})\n },\n showDelete: {\n type: Boolean,\n default: true\n }\n} as const)\n\nexport const keyValueItemEmits = {\n delete: () => true,\n change: () => true,\n 'update:value': (value: KeyValueItem) => !!value\n}\n"],"names":[],"mappings":";;;;AAIO,MAAM,SAAY,GAAA;AAAA,EACvB;AAAA,IACE,OAAA,EAAS,CAAC,MAAA,EAAQ,QAAQ,CAAA;AAAA,IAC1B,OAAS,EAAA,4CAAA;AAAA,IACT,SAAA,EAAW,OAAO,KAAA,EAAY,KAAe,KAAA;AAC3C,MAAA,IAAI,CAAC,KAAO,EAAA;AACV,QAAA,OAAO,OAAQ,CAAA,MAAA,CAAO,IAAI,KAAA,CAAM,4CAAS,CAAC,CAAA,CAAA;AAAA,OACrC,MAAA;AACL,QAAA,OAAO,QAAQ,OAAQ,EAAA,CAAA;AAAA,OACzB;AAAA,KACF;AAAA,GACF;AACF,EAAA;AACO,MAAM,WAAc,GAAA;AAAA,EACzB,MAAQ,EAAA,YAAA;AAAA,EACR,UAAY,EAAA,MAAA;AACd,EAAA;AAEO,MAAM,WAAc,GAAA;AAAA,EACzB;AAAA,IACE,GAAK,EAAA,OAAA;AAAA,IACL,QAAU,EAAA;AAAA,MACR,IAAM,EAAA,EAAA;AAAA,KACR;AAAA,GACF;AACF,EAAA;AAOO,MAAM,oBAAoB,UAAW,CAAA;AAAA,EAC1C,QAAU,EAAA;AAAA,IACR,IAAM,EAAA,OAAA;AAAA,GACR;AAAA,EACA,aAAe,EAAA;AAAA,IACb,IAAA,EAAM,eAAyB,KAAK,CAAA;AAAA,GACtC;AAAA,EACA,WAAa,EAAA;AAAA,IACX,IAAA,EAAM,eAAyB,KAAK,CAAA;AAAA,GACtC;AAAA,EACA,cAAgB,EAAA;AAAA,IACd,IAAA,EAAM,eAAyB,KAAK,CAAA;AAAA,GACtC;AAAA,EACA,YAAc,EAAA;AAAA,IACZ,IAAA,EAAM,eAAmC,MAAM,CAAA;AAAA,GACjD;AAAA,EACA,OAAS,EAAA;AAAA,IACP,IAAA,EAAM,eAA2B,MAAM,CAAA;AAAA,GACzC;AAAA,EACA,QAAU,EAAA;AAAA,IACR,IAAA,EAAM,eAA0B,KAAK,CAAA;AAAA,GACvC;AAAA,EACA,SAAW,EAAA;AAAA,IACT,IAAA,EAAM,eAA2B,MAAM,CAAA;AAAA,GACzC;AAAA,EACA,KAAO,EAAA;AAAA,IACL,IAAA,EAAM,eAA6B,MAAM,CAAA;AAAA,IACzC,SAAS,OAAO;AAAA,MACd,GAAK,EAAA,EAAA;AAAA,MACL,KAAO,EAAA,EAAA;AAAA,KACT,CAAA;AAAA,GACF;AAAA,EACA,GAAK,EAAA;AAAA,IACH,IAAM,EAAA,MAAA;AAAA,IACN,QAAU,EAAA,IAAA;AAAA,GACZ;AAAA,EACA,gBAAkB,EAAA;AAAA,IAChB,IAAM,EAAA,MAAA;AAAA,IACN,OAAA,EAAS,OAAO,EAAC,CAAA;AAAA,GACnB;AAAA,EACA,UAAY,EAAA;AAAA,IACV,IAAM,EAAA,OAAA;AAAA,IACN,OAAS,EAAA,IAAA;AAAA,GACX;AACF,CAAU,EAAA;AAEH,MAAM,iBAAoB,GAAA;AAAA,EAC/B,QAAQ,MAAM,IAAA;AAAA,EACd,QAAQ,MAAM,IAAA;AAAA,EACd,cAAgB,EAAA,CAAC,KAAwB,KAAA,CAAC,CAAC,KAAA;AAC7C;;;;"}
@@ -52,6 +52,7 @@ export declare const keyValueProps: {
52
52
  readonly disabledKey: import("ll-plus/es/utils").EpPropFinalized<(new (...args: any[]) => number[]) | (() => number[]) | ((new (...args: any[]) => number[]) | (() => number[]))[], unknown, unknown, () => never[], boolean>;
53
53
  readonly disabledDelete: import("ll-plus/es/utils").EpPropFinalized<(new (...args: any[]) => number[]) | (() => number[]) | ((new (...args: any[]) => number[]) | (() => number[]))[], unknown, unknown, () => never[], boolean>;
54
54
  readonly disabledAdd: import("ll-plus/es/utils").EpPropFinalized<BooleanConstructor, unknown, unknown, false, boolean>;
55
+ readonly validate: import("ll-plus/es/utils").EpPropFinalized<BooleanConstructor, unknown, unknown, false, boolean>;
55
56
  };
56
57
  export interface KeyValueAddEmits {
57
58
  index: number;
@@ -68,6 +68,10 @@ const keyValueProps = buildProps({
68
68
  disabledAdd: {
69
69
  type: Boolean,
70
70
  default: false
71
+ },
72
+ validate: {
73
+ type: Boolean,
74
+ default: false
71
75
  }
72
76
  });
73
77
  const keyValueEmits = {
@@ -1 +1 @@
1
- {"version":3,"file":"key-value.mjs","sources":["../../../../../../packages/components/key-value/src/config/key-value.ts"],"sourcesContent":["import { buildProps, definePropType } from '@ll-plus/utils'\n\nimport type { ExtractPropTypes } from 'vue'\nimport { type FormColumn } from '@ll-plus/components'\nimport type { KeyValueItem } from './key-value-item'\nimport type KeyValue from '../key-value.vue'\n\nexport interface KeyType {\n label: string\n value: string\n option: FormColumn\n}\n\ntype KeyValueType = 'single' | 'doubt'\n\nexport const getKeyValueItem = () => ({\n key: null,\n value: null\n})\n\nexport const keyValueProps = buildProps({\n value: {\n type: definePropType<KeyValueItem[]>(Array),\n default: () => [{ key: '', value: '' }]\n },\n loading: {\n type: Boolean,\n default: false\n },\n disabled: {\n type: Boolean,\n default: false\n },\n keyLabel: {\n type: String,\n default: ''\n },\n valueLabel: {\n type: String,\n default: ''\n },\n addText: {\n type: String,\n default: '添加'\n },\n keyValueType: {\n type: definePropType<KeyValueType>(String),\n default: 'doubt'\n },\n keyType: {\n type: definePropType<FormColumn>(Object),\n default: () => ({\n type: 'input',\n placeholder: '请输入key'\n })\n },\n keyTypes: {\n type: definePropType<KeyType[]>(Array),\n default: () => []\n },\n valueType: {\n type: definePropType<FormColumn>(Object),\n default: () => ({\n type: 'input',\n placeholder: '请输入value'\n })\n },\n disabledValue: {\n type: definePropType<number[]>(Array),\n default: () => []\n },\n disabledKey: {\n type: definePropType<number[]>(Array),\n default: () => []\n },\n disabledDelete: {\n type: definePropType<number[]>(Array),\n default: () => []\n },\n disabledAdd: {\n type: Boolean,\n default: false\n }\n} as const)\n\nexport interface KeyValueAddEmits {\n index: number\n item: KeyValueItem\n value: KeyValueItem[]\n}\n\nexport const keyValueEmits = {\n change: (value: KeyValueItem[]) => !!value,\n add: (params: KeyValueAddEmits) => !!params,\n delete: (index: number) => typeof index === 'number',\n 'update:value': (value: KeyValueItem[]) => !!value\n}\n\n// props\nexport type KeyValueProps = ExtractPropTypes<typeof keyValueProps>\n// emits\nexport type KeyValueEmits = typeof keyValueEmits\n// instance\nexport type KeyValueInstance = InstanceType<typeof KeyValue>\n"],"names":[],"mappings":";;;;AAeO,MAAM,kBAAkB,OAAO;AAAA,EACpC,GAAK,EAAA,IAAA;AAAA,EACL,KAAO,EAAA,IAAA;AACT,CAAA,EAAA;AAEO,MAAM,gBAAgB,UAAW,CAAA;AAAA,EACtC,KAAO,EAAA;AAAA,IACL,IAAA,EAAM,eAA+B,KAAK,CAAA;AAAA,IAC1C,OAAA,EAAS,MAAM,CAAC,EAAE,KAAK,EAAI,EAAA,KAAA,EAAO,IAAI,CAAA;AAAA,GACxC;AAAA,EACA,OAAS,EAAA;AAAA,IACP,IAAM,EAAA,OAAA;AAAA,IACN,OAAS,EAAA,KAAA;AAAA,GACX;AAAA,EACA,QAAU,EAAA;AAAA,IACR,IAAM,EAAA,OAAA;AAAA,IACN,OAAS,EAAA,KAAA;AAAA,GACX;AAAA,EACA,QAAU,EAAA;AAAA,IACR,IAAM,EAAA,MAAA;AAAA,IACN,OAAS,EAAA,EAAA;AAAA,GACX;AAAA,EACA,UAAY,EAAA;AAAA,IACV,IAAM,EAAA,MAAA;AAAA,IACN,OAAS,EAAA,EAAA;AAAA,GACX;AAAA,EACA,OAAS,EAAA;AAAA,IACP,IAAM,EAAA,MAAA;AAAA,IACN,OAAS,EAAA,cAAA;AAAA,GACX;AAAA,EACA,YAAc,EAAA;AAAA,IACZ,IAAA,EAAM,eAA6B,MAAM,CAAA;AAAA,IACzC,OAAS,EAAA,OAAA;AAAA,GACX;AAAA,EACA,OAAS,EAAA;AAAA,IACP,IAAA,EAAM,eAA2B,MAAM,CAAA;AAAA,IACvC,SAAS,OAAO;AAAA,MACd,IAAM,EAAA,OAAA;AAAA,MACN,WAAa,EAAA,uBAAA;AAAA,KACf,CAAA;AAAA,GACF;AAAA,EACA,QAAU,EAAA;AAAA,IACR,IAAA,EAAM,eAA0B,KAAK,CAAA;AAAA,IACrC,OAAA,EAAS,MAAM,EAAC;AAAA,GAClB;AAAA,EACA,SAAW,EAAA;AAAA,IACT,IAAA,EAAM,eAA2B,MAAM,CAAA;AAAA,IACvC,SAAS,OAAO;AAAA,MACd,IAAM,EAAA,OAAA;AAAA,MACN,WAAa,EAAA,yBAAA;AAAA,KACf,CAAA;AAAA,GACF;AAAA,EACA,aAAe,EAAA;AAAA,IACb,IAAA,EAAM,eAAyB,KAAK,CAAA;AAAA,IACpC,OAAA,EAAS,MAAM,EAAC;AAAA,GAClB;AAAA,EACA,WAAa,EAAA;AAAA,IACX,IAAA,EAAM,eAAyB,KAAK,CAAA;AAAA,IACpC,OAAA,EAAS,MAAM,EAAC;AAAA,GAClB;AAAA,EACA,cAAgB,EAAA;AAAA,IACd,IAAA,EAAM,eAAyB,KAAK,CAAA;AAAA,IACpC,OAAA,EAAS,MAAM,EAAC;AAAA,GAClB;AAAA,EACA,WAAa,EAAA;AAAA,IACX,IAAM,EAAA,OAAA;AAAA,IACN,OAAS,EAAA,KAAA;AAAA,GACX;AACF,CAAU,EAAA;AAQH,MAAM,aAAgB,GAAA;AAAA,EAC3B,MAAQ,EAAA,CAAC,KAA0B,KAAA,CAAC,CAAC,KAAA;AAAA,EACrC,GAAK,EAAA,CAAC,MAA6B,KAAA,CAAC,CAAC,MAAA;AAAA,EACrC,MAAQ,EAAA,CAAC,KAAkB,KAAA,OAAO,KAAU,KAAA,QAAA;AAAA,EAC5C,cAAgB,EAAA,CAAC,KAA0B,KAAA,CAAC,CAAC,KAAA;AAC/C;;;;"}
1
+ {"version":3,"file":"key-value.mjs","sources":["../../../../../../packages/components/key-value/src/config/key-value.ts"],"sourcesContent":["import { buildProps, definePropType } from '@ll-plus/utils'\n\nimport type { ExtractPropTypes } from 'vue'\nimport { type FormColumn } from '@ll-plus/components'\nimport type { KeyValueItem } from './key-value-item'\nimport type KeyValue from '../key-value.vue'\n\nexport interface KeyType {\n label: string\n value: string\n option: FormColumn\n}\n\ntype KeyValueType = 'single' | 'doubt'\n\nexport const getKeyValueItem = () => ({\n key: null,\n value: null\n})\n\nexport const keyValueProps = buildProps({\n value: {\n type: definePropType<KeyValueItem[]>(Array),\n default: () => [{ key: '', value: '' }]\n },\n loading: {\n type: Boolean,\n default: false\n },\n disabled: {\n type: Boolean,\n default: false\n },\n keyLabel: {\n type: String,\n default: ''\n },\n valueLabel: {\n type: String,\n default: ''\n },\n addText: {\n type: String,\n default: '添加'\n },\n keyValueType: {\n type: definePropType<KeyValueType>(String),\n default: 'doubt'\n },\n keyType: {\n type: definePropType<FormColumn>(Object),\n default: () => ({\n type: 'input',\n placeholder: '请输入key'\n })\n },\n keyTypes: {\n type: definePropType<KeyType[]>(Array),\n default: () => []\n },\n valueType: {\n type: definePropType<FormColumn>(Object),\n default: () => ({\n type: 'input',\n placeholder: '请输入value'\n })\n },\n disabledValue: {\n type: definePropType<number[]>(Array),\n default: () => []\n },\n disabledKey: {\n type: definePropType<number[]>(Array),\n default: () => []\n },\n disabledDelete: {\n type: definePropType<number[]>(Array),\n default: () => []\n },\n disabledAdd: {\n type: Boolean,\n default: false\n },\n validate: {\n type: Boolean,\n default: false\n }\n} as const)\n\nexport interface KeyValueAddEmits {\n index: number\n item: KeyValueItem\n value: KeyValueItem[]\n}\n\nexport const keyValueEmits = {\n change: (value: KeyValueItem[]) => !!value,\n add: (params: KeyValueAddEmits) => !!params,\n delete: (index: number) => typeof index === 'number',\n 'update:value': (value: KeyValueItem[]) => !!value\n}\n\n// props\nexport type KeyValueProps = ExtractPropTypes<typeof keyValueProps>\n// emits\nexport type KeyValueEmits = typeof keyValueEmits\n// instance\nexport type KeyValueInstance = InstanceType<typeof KeyValue>\n"],"names":[],"mappings":";;;;AAeO,MAAM,kBAAkB,OAAO;AAAA,EACpC,GAAK,EAAA,IAAA;AAAA,EACL,KAAO,EAAA,IAAA;AACT,CAAA,EAAA;AAEO,MAAM,gBAAgB,UAAW,CAAA;AAAA,EACtC,KAAO,EAAA;AAAA,IACL,IAAA,EAAM,eAA+B,KAAK,CAAA;AAAA,IAC1C,OAAA,EAAS,MAAM,CAAC,EAAE,KAAK,EAAI,EAAA,KAAA,EAAO,IAAI,CAAA;AAAA,GACxC;AAAA,EACA,OAAS,EAAA;AAAA,IACP,IAAM,EAAA,OAAA;AAAA,IACN,OAAS,EAAA,KAAA;AAAA,GACX;AAAA,EACA,QAAU,EAAA;AAAA,IACR,IAAM,EAAA,OAAA;AAAA,IACN,OAAS,EAAA,KAAA;AAAA,GACX;AAAA,EACA,QAAU,EAAA;AAAA,IACR,IAAM,EAAA,MAAA;AAAA,IACN,OAAS,EAAA,EAAA;AAAA,GACX;AAAA,EACA,UAAY,EAAA;AAAA,IACV,IAAM,EAAA,MAAA;AAAA,IACN,OAAS,EAAA,EAAA;AAAA,GACX;AAAA,EACA,OAAS,EAAA;AAAA,IACP,IAAM,EAAA,MAAA;AAAA,IACN,OAAS,EAAA,cAAA;AAAA,GACX;AAAA,EACA,YAAc,EAAA;AAAA,IACZ,IAAA,EAAM,eAA6B,MAAM,CAAA;AAAA,IACzC,OAAS,EAAA,OAAA;AAAA,GACX;AAAA,EACA,OAAS,EAAA;AAAA,IACP,IAAA,EAAM,eAA2B,MAAM,CAAA;AAAA,IACvC,SAAS,OAAO;AAAA,MACd,IAAM,EAAA,OAAA;AAAA,MACN,WAAa,EAAA,uBAAA;AAAA,KACf,CAAA;AAAA,GACF;AAAA,EACA,QAAU,EAAA;AAAA,IACR,IAAA,EAAM,eAA0B,KAAK,CAAA;AAAA,IACrC,OAAA,EAAS,MAAM,EAAC;AAAA,GAClB;AAAA,EACA,SAAW,EAAA;AAAA,IACT,IAAA,EAAM,eAA2B,MAAM,CAAA;AAAA,IACvC,SAAS,OAAO;AAAA,MACd,IAAM,EAAA,OAAA;AAAA,MACN,WAAa,EAAA,yBAAA;AAAA,KACf,CAAA;AAAA,GACF;AAAA,EACA,aAAe,EAAA;AAAA,IACb,IAAA,EAAM,eAAyB,KAAK,CAAA;AAAA,IACpC,OAAA,EAAS,MAAM,EAAC;AAAA,GAClB;AAAA,EACA,WAAa,EAAA;AAAA,IACX,IAAA,EAAM,eAAyB,KAAK,CAAA;AAAA,IACpC,OAAA,EAAS,MAAM,EAAC;AAAA,GAClB;AAAA,EACA,cAAgB,EAAA;AAAA,IACd,IAAA,EAAM,eAAyB,KAAK,CAAA;AAAA,IACpC,OAAA,EAAS,MAAM,EAAC;AAAA,GAClB;AAAA,EACA,WAAa,EAAA;AAAA,IACX,IAAM,EAAA,OAAA;AAAA,IACN,OAAS,EAAA,KAAA;AAAA,GACX;AAAA,EACA,QAAU,EAAA;AAAA,IACR,IAAM,EAAA,OAAA;AAAA,IACN,OAAS,EAAA,KAAA;AAAA,GACX;AACF,CAAU,EAAA;AAQH,MAAM,aAAgB,GAAA;AAAA,EAC3B,MAAQ,EAAA,CAAC,KAA0B,KAAA,CAAC,CAAC,KAAA;AAAA,EACrC,GAAK,EAAA,CAAC,MAA6B,KAAA,CAAC,CAAC,MAAA;AAAA,EACrC,MAAQ,EAAA,CAAC,KAAkB,KAAA,OAAO,KAAU,KAAA,QAAA;AAAA,EAC5C,cAAgB,EAAA,CAAC,KAA0B,KAAA,CAAC,CAAC,KAAA;AAC/C;;;;"}