@element-plus/nightly 0.0.20231108 → 0.0.20231109

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 (264) hide show
  1. package/dist/index.full.js +2 -2
  2. package/dist/index.full.min.js +2 -2
  3. package/dist/index.full.min.js.map +1 -1
  4. package/dist/index.full.min.mjs +2 -2
  5. package/dist/index.full.min.mjs.map +1 -1
  6. package/dist/index.full.mjs +2 -2
  7. package/dist/locale/af.js +1 -1
  8. package/dist/locale/af.min.js +1 -1
  9. package/dist/locale/af.min.mjs +1 -1
  10. package/dist/locale/af.mjs +1 -1
  11. package/dist/locale/ar.js +1 -1
  12. package/dist/locale/ar.min.js +1 -1
  13. package/dist/locale/ar.min.mjs +1 -1
  14. package/dist/locale/ar.mjs +1 -1
  15. package/dist/locale/az.js +1 -1
  16. package/dist/locale/az.min.js +1 -1
  17. package/dist/locale/az.min.mjs +1 -1
  18. package/dist/locale/az.mjs +1 -1
  19. package/dist/locale/bg.js +1 -1
  20. package/dist/locale/bg.min.js +1 -1
  21. package/dist/locale/bg.min.mjs +1 -1
  22. package/dist/locale/bg.mjs +1 -1
  23. package/dist/locale/bn.js +1 -1
  24. package/dist/locale/bn.min.js +1 -1
  25. package/dist/locale/bn.min.mjs +1 -1
  26. package/dist/locale/bn.mjs +1 -1
  27. package/dist/locale/ca.js +1 -1
  28. package/dist/locale/ca.min.js +1 -1
  29. package/dist/locale/ca.min.mjs +1 -1
  30. package/dist/locale/ca.mjs +1 -1
  31. package/dist/locale/ckb.js +1 -1
  32. package/dist/locale/ckb.min.js +1 -1
  33. package/dist/locale/ckb.min.mjs +1 -1
  34. package/dist/locale/ckb.mjs +1 -1
  35. package/dist/locale/cs.js +1 -1
  36. package/dist/locale/cs.min.js +1 -1
  37. package/dist/locale/cs.min.mjs +1 -1
  38. package/dist/locale/cs.mjs +1 -1
  39. package/dist/locale/da.js +1 -1
  40. package/dist/locale/da.min.js +1 -1
  41. package/dist/locale/da.min.mjs +1 -1
  42. package/dist/locale/da.mjs +1 -1
  43. package/dist/locale/de.js +1 -1
  44. package/dist/locale/de.min.js +1 -1
  45. package/dist/locale/de.min.mjs +1 -1
  46. package/dist/locale/de.mjs +1 -1
  47. package/dist/locale/el.js +1 -1
  48. package/dist/locale/el.min.js +1 -1
  49. package/dist/locale/el.min.mjs +1 -1
  50. package/dist/locale/el.mjs +1 -1
  51. package/dist/locale/en.js +1 -1
  52. package/dist/locale/en.min.js +1 -1
  53. package/dist/locale/en.min.mjs +1 -1
  54. package/dist/locale/en.mjs +1 -1
  55. package/dist/locale/eo.js +1 -1
  56. package/dist/locale/eo.min.js +1 -1
  57. package/dist/locale/eo.min.mjs +1 -1
  58. package/dist/locale/eo.mjs +1 -1
  59. package/dist/locale/es.js +1 -1
  60. package/dist/locale/es.min.js +1 -1
  61. package/dist/locale/es.min.mjs +1 -1
  62. package/dist/locale/es.mjs +1 -1
  63. package/dist/locale/et.js +1 -1
  64. package/dist/locale/et.min.js +1 -1
  65. package/dist/locale/et.min.mjs +1 -1
  66. package/dist/locale/et.mjs +1 -1
  67. package/dist/locale/eu.js +1 -1
  68. package/dist/locale/eu.min.js +1 -1
  69. package/dist/locale/eu.min.mjs +1 -1
  70. package/dist/locale/eu.mjs +1 -1
  71. package/dist/locale/fa.js +1 -1
  72. package/dist/locale/fa.min.js +1 -1
  73. package/dist/locale/fa.min.mjs +1 -1
  74. package/dist/locale/fa.mjs +1 -1
  75. package/dist/locale/fi.js +1 -1
  76. package/dist/locale/fi.min.js +1 -1
  77. package/dist/locale/fi.min.mjs +1 -1
  78. package/dist/locale/fi.mjs +1 -1
  79. package/dist/locale/fr.js +1 -1
  80. package/dist/locale/fr.min.js +1 -1
  81. package/dist/locale/fr.min.mjs +1 -1
  82. package/dist/locale/fr.mjs +1 -1
  83. package/dist/locale/he.js +1 -1
  84. package/dist/locale/he.min.js +1 -1
  85. package/dist/locale/he.min.mjs +1 -1
  86. package/dist/locale/he.mjs +1 -1
  87. package/dist/locale/hr.js +1 -1
  88. package/dist/locale/hr.min.js +1 -1
  89. package/dist/locale/hr.min.mjs +1 -1
  90. package/dist/locale/hr.mjs +1 -1
  91. package/dist/locale/hu.js +1 -1
  92. package/dist/locale/hu.min.js +1 -1
  93. package/dist/locale/hu.min.mjs +1 -1
  94. package/dist/locale/hu.mjs +1 -1
  95. package/dist/locale/hy-am.js +1 -1
  96. package/dist/locale/hy-am.min.js +1 -1
  97. package/dist/locale/hy-am.min.mjs +1 -1
  98. package/dist/locale/hy-am.mjs +1 -1
  99. package/dist/locale/id.js +1 -1
  100. package/dist/locale/id.min.js +1 -1
  101. package/dist/locale/id.min.mjs +1 -1
  102. package/dist/locale/id.mjs +1 -1
  103. package/dist/locale/it.js +1 -1
  104. package/dist/locale/it.min.js +1 -1
  105. package/dist/locale/it.min.mjs +1 -1
  106. package/dist/locale/it.mjs +1 -1
  107. package/dist/locale/ja.js +1 -1
  108. package/dist/locale/ja.min.js +1 -1
  109. package/dist/locale/ja.min.mjs +1 -1
  110. package/dist/locale/ja.mjs +1 -1
  111. package/dist/locale/kk.js +1 -1
  112. package/dist/locale/kk.min.js +1 -1
  113. package/dist/locale/kk.min.mjs +1 -1
  114. package/dist/locale/kk.mjs +1 -1
  115. package/dist/locale/km.js +1 -1
  116. package/dist/locale/km.min.js +1 -1
  117. package/dist/locale/km.min.mjs +1 -1
  118. package/dist/locale/km.mjs +1 -1
  119. package/dist/locale/ko.js +1 -1
  120. package/dist/locale/ko.min.js +1 -1
  121. package/dist/locale/ko.min.mjs +1 -1
  122. package/dist/locale/ko.mjs +1 -1
  123. package/dist/locale/ku.js +1 -1
  124. package/dist/locale/ku.min.js +1 -1
  125. package/dist/locale/ku.min.mjs +1 -1
  126. package/dist/locale/ku.mjs +1 -1
  127. package/dist/locale/ky.js +1 -1
  128. package/dist/locale/ky.min.js +1 -1
  129. package/dist/locale/ky.min.mjs +1 -1
  130. package/dist/locale/ky.mjs +1 -1
  131. package/dist/locale/lt.js +1 -1
  132. package/dist/locale/lt.min.js +1 -1
  133. package/dist/locale/lt.min.mjs +1 -1
  134. package/dist/locale/lt.mjs +1 -1
  135. package/dist/locale/lv.js +1 -1
  136. package/dist/locale/lv.min.js +1 -1
  137. package/dist/locale/lv.min.mjs +1 -1
  138. package/dist/locale/lv.mjs +1 -1
  139. package/dist/locale/mg.js +1 -1
  140. package/dist/locale/mg.min.js +1 -1
  141. package/dist/locale/mg.min.mjs +1 -1
  142. package/dist/locale/mg.mjs +1 -1
  143. package/dist/locale/mn.js +1 -1
  144. package/dist/locale/mn.min.js +1 -1
  145. package/dist/locale/mn.min.mjs +1 -1
  146. package/dist/locale/mn.mjs +1 -1
  147. package/dist/locale/nb-no.js +1 -1
  148. package/dist/locale/nb-no.min.js +1 -1
  149. package/dist/locale/nb-no.min.mjs +1 -1
  150. package/dist/locale/nb-no.mjs +1 -1
  151. package/dist/locale/nl.js +1 -1
  152. package/dist/locale/nl.min.js +1 -1
  153. package/dist/locale/nl.min.mjs +1 -1
  154. package/dist/locale/nl.mjs +1 -1
  155. package/dist/locale/pa.js +1 -1
  156. package/dist/locale/pa.min.js +1 -1
  157. package/dist/locale/pa.min.mjs +1 -1
  158. package/dist/locale/pa.mjs +1 -1
  159. package/dist/locale/pl.js +1 -1
  160. package/dist/locale/pl.min.js +1 -1
  161. package/dist/locale/pl.min.mjs +1 -1
  162. package/dist/locale/pl.mjs +1 -1
  163. package/dist/locale/pt-br.js +1 -1
  164. package/dist/locale/pt-br.min.js +1 -1
  165. package/dist/locale/pt-br.min.mjs +1 -1
  166. package/dist/locale/pt-br.mjs +1 -1
  167. package/dist/locale/pt.js +1 -1
  168. package/dist/locale/pt.min.js +1 -1
  169. package/dist/locale/pt.min.mjs +1 -1
  170. package/dist/locale/pt.mjs +1 -1
  171. package/dist/locale/ro.js +1 -1
  172. package/dist/locale/ro.min.js +1 -1
  173. package/dist/locale/ro.min.mjs +1 -1
  174. package/dist/locale/ro.mjs +1 -1
  175. package/dist/locale/ru.js +1 -1
  176. package/dist/locale/ru.min.js +1 -1
  177. package/dist/locale/ru.min.mjs +1 -1
  178. package/dist/locale/ru.mjs +1 -1
  179. package/dist/locale/sk.js +1 -1
  180. package/dist/locale/sk.min.js +1 -1
  181. package/dist/locale/sk.min.mjs +1 -1
  182. package/dist/locale/sk.mjs +1 -1
  183. package/dist/locale/sl.js +1 -1
  184. package/dist/locale/sl.min.js +1 -1
  185. package/dist/locale/sl.min.mjs +1 -1
  186. package/dist/locale/sl.mjs +1 -1
  187. package/dist/locale/sr.js +1 -1
  188. package/dist/locale/sr.min.js +1 -1
  189. package/dist/locale/sr.min.mjs +1 -1
  190. package/dist/locale/sr.mjs +1 -1
  191. package/dist/locale/sv.js +1 -1
  192. package/dist/locale/sv.min.js +1 -1
  193. package/dist/locale/sv.min.mjs +1 -1
  194. package/dist/locale/sv.mjs +1 -1
  195. package/dist/locale/sw.js +1 -1
  196. package/dist/locale/sw.min.js +1 -1
  197. package/dist/locale/sw.min.mjs +1 -1
  198. package/dist/locale/sw.mjs +1 -1
  199. package/dist/locale/ta.js +1 -1
  200. package/dist/locale/ta.min.js +1 -1
  201. package/dist/locale/ta.min.mjs +1 -1
  202. package/dist/locale/ta.mjs +1 -1
  203. package/dist/locale/th.js +1 -1
  204. package/dist/locale/th.min.js +1 -1
  205. package/dist/locale/th.min.mjs +1 -1
  206. package/dist/locale/th.mjs +1 -1
  207. package/dist/locale/tk.js +1 -1
  208. package/dist/locale/tk.min.js +1 -1
  209. package/dist/locale/tk.min.mjs +1 -1
  210. package/dist/locale/tk.mjs +1 -1
  211. package/dist/locale/tr.js +1 -1
  212. package/dist/locale/tr.min.js +1 -1
  213. package/dist/locale/tr.min.mjs +1 -1
  214. package/dist/locale/tr.mjs +1 -1
  215. package/dist/locale/ug-cn.js +1 -1
  216. package/dist/locale/ug-cn.min.js +1 -1
  217. package/dist/locale/ug-cn.min.mjs +1 -1
  218. package/dist/locale/ug-cn.mjs +1 -1
  219. package/dist/locale/uk.js +1 -1
  220. package/dist/locale/uk.min.js +1 -1
  221. package/dist/locale/uk.min.mjs +1 -1
  222. package/dist/locale/uk.mjs +1 -1
  223. package/dist/locale/uz-uz.js +1 -1
  224. package/dist/locale/uz-uz.min.js +1 -1
  225. package/dist/locale/uz-uz.min.mjs +1 -1
  226. package/dist/locale/uz-uz.mjs +1 -1
  227. package/dist/locale/vi.js +1 -1
  228. package/dist/locale/vi.min.js +1 -1
  229. package/dist/locale/vi.min.mjs +1 -1
  230. package/dist/locale/vi.mjs +1 -1
  231. package/dist/locale/zh-cn.js +1 -1
  232. package/dist/locale/zh-cn.min.js +1 -1
  233. package/dist/locale/zh-cn.min.mjs +1 -1
  234. package/dist/locale/zh-cn.mjs +1 -1
  235. package/dist/locale/zh-tw.js +1 -1
  236. package/dist/locale/zh-tw.min.js +1 -1
  237. package/dist/locale/zh-tw.min.mjs +1 -1
  238. package/dist/locale/zh-tw.mjs +1 -1
  239. package/es/components/index.mjs +1 -1
  240. package/es/components/transfer/index.mjs +2 -2
  241. package/es/components/transfer/src/composables/use-checked-change.mjs +1 -1
  242. package/es/components/transfer/src/transfer-panel.mjs +1 -1
  243. package/es/components/transfer/src/transfer.mjs +69 -160
  244. package/es/components/transfer/src/transfer.mjs.map +1 -1
  245. package/es/components/transfer/src/transfer2.mjs +160 -69
  246. package/es/components/transfer/src/transfer2.mjs.map +1 -1
  247. package/es/index.mjs +1 -1
  248. package/es/version.d.ts +1 -1
  249. package/es/version.mjs +1 -1
  250. package/es/version.mjs.map +1 -1
  251. package/lib/components/index.js +1 -1
  252. package/lib/components/transfer/index.js +2 -2
  253. package/lib/components/transfer/src/composables/use-checked-change.js +1 -1
  254. package/lib/components/transfer/src/transfer-panel.js +1 -1
  255. package/lib/components/transfer/src/transfer.js +73 -160
  256. package/lib/components/transfer/src/transfer.js.map +1 -1
  257. package/lib/components/transfer/src/transfer2.js +160 -73
  258. package/lib/components/transfer/src/transfer2.js.map +1 -1
  259. package/lib/index.js +1 -1
  260. package/lib/version.d.ts +1 -1
  261. package/lib/version.js +1 -1
  262. package/lib/version.js.map +1 -1
  263. package/package.json +1 -1
  264. package/web-types.json +1 -1
@@ -2,169 +2,82 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var vue = require('vue');
5
+ var lodashUnified = require('lodash-unified');
6
6
  require('../../../utils/index.js');
7
- require('../../../hooks/index.js');
8
- var index$2 = require('../../button/index.js');
9
- var index$3 = require('../../icon/index.js');
10
- require('../../form/index.js');
11
- var iconsVue = require('@element-plus/icons-vue');
12
- var transfer = require('./transfer2.js');
13
- require('./composables/index.js');
14
- var transferPanel = require('./transfer-panel2.js');
15
- var pluginVue_exportHelper = require('../../../_virtual/plugin-vue_export-helper.js');
16
- var index = require('../../../hooks/use-locale/index.js');
17
- var index$1 = require('../../../hooks/use-namespace/index.js');
18
- var useFormItem = require('../../form/src/hooks/use-form-item.js');
19
- var usePropsAlias = require('./composables/use-props-alias.js');
20
- var useComputedData = require('./composables/use-computed-data.js');
21
- var useCheckedChange = require('./composables/use-checked-change.js');
22
- var useMove = require('./composables/use-move.js');
23
- var error = require('../../../utils/error.js');
24
- var types = require('../../../utils/types.js');
7
+ require('../../../constants/index.js');
8
+ var runtime = require('../../../utils/vue/props/runtime.js');
9
+ var typescript = require('../../../utils/typescript.js');
10
+ var shared = require('@vue/shared');
11
+ var event = require('../../../constants/event.js');
25
12
 
26
- const _hoisted_1 = { key: 0 };
27
- const _hoisted_2 = { key: 0 };
28
- const __default__ = vue.defineComponent({
29
- name: "ElTransfer"
30
- });
31
- const _sfc_main = /* @__PURE__ */ vue.defineComponent({
32
- ...__default__,
33
- props: transfer.transferProps,
34
- emits: transfer.transferEmits,
35
- setup(__props, { expose, emit }) {
36
- const props = __props;
37
- const slots = vue.useSlots();
38
- const { t } = index.useLocale();
39
- const ns = index$1.useNamespace("transfer");
40
- const { formItem } = useFormItem.useFormItem();
41
- const checkedState = vue.reactive({
42
- leftChecked: [],
43
- rightChecked: []
44
- });
45
- const propsAlias = usePropsAlias.usePropsAlias(props);
46
- const { sourceData, targetData } = useComputedData.useComputedData(props);
47
- const { onSourceCheckedChange, onTargetCheckedChange } = useCheckedChange.useCheckedChange(checkedState, emit);
48
- const { addToLeft, addToRight } = useMove.useMove(props, checkedState, emit);
49
- const leftPanel = vue.ref();
50
- const rightPanel = vue.ref();
51
- const clearQuery = (which) => {
52
- switch (which) {
53
- case "left":
54
- leftPanel.value.query = "";
55
- break;
56
- case "right":
57
- rightPanel.value.query = "";
58
- break;
59
- }
60
- };
61
- const hasButtonTexts = vue.computed(() => props.buttonTexts.length === 2);
62
- const leftPanelTitle = vue.computed(() => props.titles[0] || t("el.transfer.titles.0"));
63
- const rightPanelTitle = vue.computed(() => props.titles[1] || t("el.transfer.titles.1"));
64
- const panelFilterPlaceholder = vue.computed(() => props.filterPlaceholder || t("el.transfer.filterPlaceholder"));
65
- vue.watch(() => props.modelValue, () => {
66
- var _a;
67
- if (props.validateEvent) {
68
- (_a = formItem == null ? void 0 : formItem.validate) == null ? void 0 : _a.call(formItem, "change").catch((err) => error.debugWarn(err));
69
- }
70
- });
71
- const optionRender = vue.computed(() => (option) => {
72
- if (props.renderContent)
73
- return props.renderContent(vue.h, option);
74
- if (slots.default)
75
- return slots.default({ option });
76
- return vue.h("span", option[propsAlias.value.label] || option[propsAlias.value.key]);
77
- });
78
- expose({
79
- clearQuery,
80
- leftPanel,
81
- rightPanel
82
- });
83
- return (_ctx, _cache) => {
84
- return vue.openBlock(), vue.createElementBlock("div", {
85
- class: vue.normalizeClass(vue.unref(ns).b())
86
- }, [
87
- vue.createVNode(transferPanel["default"], {
88
- ref_key: "leftPanel",
89
- ref: leftPanel,
90
- data: vue.unref(sourceData),
91
- "option-render": vue.unref(optionRender),
92
- placeholder: vue.unref(panelFilterPlaceholder),
93
- title: vue.unref(leftPanelTitle),
94
- filterable: _ctx.filterable,
95
- format: _ctx.format,
96
- "filter-method": _ctx.filterMethod,
97
- "default-checked": _ctx.leftDefaultChecked,
98
- props: props.props,
99
- onCheckedChange: vue.unref(onSourceCheckedChange)
100
- }, {
101
- default: vue.withCtx(() => [
102
- vue.renderSlot(_ctx.$slots, "left-footer")
103
- ]),
104
- _: 3
105
- }, 8, ["data", "option-render", "placeholder", "title", "filterable", "format", "filter-method", "default-checked", "props", "onCheckedChange"]),
106
- vue.createElementVNode("div", {
107
- class: vue.normalizeClass(vue.unref(ns).e("buttons"))
108
- }, [
109
- vue.createVNode(vue.unref(index$2.ElButton), {
110
- type: "primary",
111
- class: vue.normalizeClass([vue.unref(ns).e("button"), vue.unref(ns).is("with-texts", vue.unref(hasButtonTexts))]),
112
- disabled: vue.unref(types.isEmpty)(checkedState.rightChecked),
113
- onClick: vue.unref(addToLeft)
114
- }, {
115
- default: vue.withCtx(() => [
116
- vue.createVNode(vue.unref(index$3.ElIcon), null, {
117
- default: vue.withCtx(() => [
118
- vue.createVNode(vue.unref(iconsVue.ArrowLeft))
119
- ]),
120
- _: 1
121
- }),
122
- !vue.unref(types.isUndefined)(_ctx.buttonTexts[0]) ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_1, vue.toDisplayString(_ctx.buttonTexts[0]), 1)) : vue.createCommentVNode("v-if", true)
123
- ]),
124
- _: 1
125
- }, 8, ["class", "disabled", "onClick"]),
126
- vue.createVNode(vue.unref(index$2.ElButton), {
127
- type: "primary",
128
- class: vue.normalizeClass([vue.unref(ns).e("button"), vue.unref(ns).is("with-texts", vue.unref(hasButtonTexts))]),
129
- disabled: vue.unref(types.isEmpty)(checkedState.leftChecked),
130
- onClick: vue.unref(addToRight)
131
- }, {
132
- default: vue.withCtx(() => [
133
- !vue.unref(types.isUndefined)(_ctx.buttonTexts[1]) ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_2, vue.toDisplayString(_ctx.buttonTexts[1]), 1)) : vue.createCommentVNode("v-if", true),
134
- vue.createVNode(vue.unref(index$3.ElIcon), null, {
135
- default: vue.withCtx(() => [
136
- vue.createVNode(vue.unref(iconsVue.ArrowRight))
137
- ]),
138
- _: 1
139
- })
140
- ]),
141
- _: 1
142
- }, 8, ["class", "disabled", "onClick"])
143
- ], 2),
144
- vue.createVNode(transferPanel["default"], {
145
- ref_key: "rightPanel",
146
- ref: rightPanel,
147
- data: vue.unref(targetData),
148
- "option-render": vue.unref(optionRender),
149
- placeholder: vue.unref(panelFilterPlaceholder),
150
- filterable: _ctx.filterable,
151
- format: _ctx.format,
152
- "filter-method": _ctx.filterMethod,
153
- title: vue.unref(rightPanelTitle),
154
- "default-checked": _ctx.rightDefaultChecked,
155
- props: props.props,
156
- onCheckedChange: vue.unref(onTargetCheckedChange)
157
- }, {
158
- default: vue.withCtx(() => [
159
- vue.renderSlot(_ctx.$slots, "right-footer")
160
- ]),
161
- _: 3
162
- }, 8, ["data", "option-render", "placeholder", "filterable", "format", "filter-method", "title", "default-checked", "props", "onCheckedChange"])
163
- ], 2);
164
- };
13
+ const LEFT_CHECK_CHANGE_EVENT = "left-check-change";
14
+ const RIGHT_CHECK_CHANGE_EVENT = "right-check-change";
15
+ const transferProps = runtime.buildProps({
16
+ data: {
17
+ type: runtime.definePropType(Array),
18
+ default: () => []
19
+ },
20
+ titles: {
21
+ type: runtime.definePropType(Array),
22
+ default: () => []
23
+ },
24
+ buttonTexts: {
25
+ type: runtime.definePropType(Array),
26
+ default: () => []
27
+ },
28
+ filterPlaceholder: String,
29
+ filterMethod: {
30
+ type: runtime.definePropType(Function)
31
+ },
32
+ leftDefaultChecked: {
33
+ type: runtime.definePropType(Array),
34
+ default: () => []
35
+ },
36
+ rightDefaultChecked: {
37
+ type: runtime.definePropType(Array),
38
+ default: () => []
39
+ },
40
+ renderContent: {
41
+ type: runtime.definePropType(Function)
42
+ },
43
+ modelValue: {
44
+ type: runtime.definePropType(Array),
45
+ default: () => []
46
+ },
47
+ format: {
48
+ type: runtime.definePropType(Object),
49
+ default: () => ({})
50
+ },
51
+ filterable: Boolean,
52
+ props: {
53
+ type: runtime.definePropType(Object),
54
+ default: () => typescript.mutable({
55
+ label: "label",
56
+ key: "key",
57
+ disabled: "disabled"
58
+ })
59
+ },
60
+ targetOrder: {
61
+ type: String,
62
+ values: ["original", "push", "unshift"],
63
+ default: "original"
64
+ },
65
+ validateEvent: {
66
+ type: Boolean,
67
+ default: true
165
68
  }
166
69
  });
167
- var Transfer = /* @__PURE__ */ pluginVue_exportHelper["default"](_sfc_main, [["__file", "/home/runner/work/element-plus/element-plus/packages/components/transfer/src/transfer.vue"]]);
70
+ const transferCheckedChangeFn = (value, movedKeys) => [value, movedKeys].every(shared.isArray) || shared.isArray(value) && lodashUnified.isNil(movedKeys);
71
+ const transferEmits = {
72
+ [event.CHANGE_EVENT]: (value, direction, movedKeys) => [value, movedKeys].every(shared.isArray) && ["left", "right"].includes(direction),
73
+ [event.UPDATE_MODEL_EVENT]: (value) => shared.isArray(value),
74
+ [LEFT_CHECK_CHANGE_EVENT]: transferCheckedChangeFn,
75
+ [RIGHT_CHECK_CHANGE_EVENT]: transferCheckedChangeFn
76
+ };
168
77
 
169
- exports["default"] = Transfer;
78
+ exports.LEFT_CHECK_CHANGE_EVENT = LEFT_CHECK_CHANGE_EVENT;
79
+ exports.RIGHT_CHECK_CHANGE_EVENT = RIGHT_CHECK_CHANGE_EVENT;
80
+ exports.transferCheckedChangeFn = transferCheckedChangeFn;
81
+ exports.transferEmits = transferEmits;
82
+ exports.transferProps = transferProps;
170
83
  //# sourceMappingURL=transfer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"transfer.js","sources":["../../../../../../packages/components/transfer/src/transfer.vue"],"sourcesContent":["<template>\n <div :class=\"ns.b()\">\n <transfer-panel\n ref=\"leftPanel\"\n :data=\"sourceData\"\n :option-render=\"optionRender\"\n :placeholder=\"panelFilterPlaceholder\"\n :title=\"leftPanelTitle\"\n :filterable=\"filterable\"\n :format=\"format\"\n :filter-method=\"filterMethod\"\n :default-checked=\"leftDefaultChecked\"\n :props=\"props.props\"\n @checked-change=\"onSourceCheckedChange\"\n >\n <slot name=\"left-footer\" />\n </transfer-panel>\n <div :class=\"ns.e('buttons')\">\n <el-button\n type=\"primary\"\n :class=\"[ns.e('button'), ns.is('with-texts', hasButtonTexts)]\"\n :disabled=\"isEmpty(checkedState.rightChecked)\"\n @click=\"addToLeft\"\n >\n <el-icon><arrow-left /></el-icon>\n <span v-if=\"!isUndefined(buttonTexts[0])\">{{ buttonTexts[0] }}</span>\n </el-button>\n <el-button\n type=\"primary\"\n :class=\"[ns.e('button'), ns.is('with-texts', hasButtonTexts)]\"\n :disabled=\"isEmpty(checkedState.leftChecked)\"\n @click=\"addToRight\"\n >\n <span v-if=\"!isUndefined(buttonTexts[1])\">{{ buttonTexts[1] }}</span>\n <el-icon><arrow-right /></el-icon>\n </el-button>\n </div>\n <transfer-panel\n ref=\"rightPanel\"\n :data=\"targetData\"\n :option-render=\"optionRender\"\n :placeholder=\"panelFilterPlaceholder\"\n :filterable=\"filterable\"\n :format=\"format\"\n :filter-method=\"filterMethod\"\n :title=\"rightPanelTitle\"\n :default-checked=\"rightDefaultChecked\"\n :props=\"props.props\"\n @checked-change=\"onTargetCheckedChange\"\n >\n <slot name=\"right-footer\" />\n </transfer-panel>\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport { computed, h, reactive, ref, useSlots, watch } from 'vue'\nimport { debugWarn, isEmpty, isUndefined } from '@element-plus/utils'\nimport { useLocale, useNamespace } from '@element-plus/hooks'\nimport { ElButton } from '@element-plus/components/button'\nimport { ElIcon } from '@element-plus/components/icon'\nimport { useFormItem } from '@element-plus/components/form'\nimport { ArrowLeft, ArrowRight } from '@element-plus/icons-vue'\nimport { transferEmits, transferProps } from './transfer'\nimport {\n useCheckedChange,\n useComputedData,\n useMove,\n usePropsAlias,\n} from './composables'\nimport TransferPanel from './transfer-panel.vue'\n\nimport type {\n TransferCheckedState,\n TransferDataItem,\n TransferDirection,\n} from './transfer'\nimport type { TransferPanelInstance } from './transfer-panel'\n\ndefineOptions({\n name: 'ElTransfer',\n})\n\nconst props = defineProps(transferProps)\nconst emit = defineEmits(transferEmits)\nconst slots = useSlots()\n\nconst { t } = useLocale()\nconst ns = useNamespace('transfer')\nconst { formItem } = useFormItem()\n\nconst checkedState = reactive<TransferCheckedState>({\n leftChecked: [],\n rightChecked: [],\n})\n\nconst propsAlias = usePropsAlias(props)\n\nconst { sourceData, targetData } = useComputedData(props)\n\nconst { onSourceCheckedChange, onTargetCheckedChange } = useCheckedChange(\n checkedState,\n emit\n)\n\nconst { addToLeft, addToRight } = useMove(props, checkedState, emit)\n\nconst leftPanel = ref<TransferPanelInstance>()\nconst rightPanel = ref<TransferPanelInstance>()\n\nconst clearQuery = (which: TransferDirection) => {\n switch (which) {\n case 'left':\n leftPanel.value!.query = ''\n break\n case 'right':\n rightPanel.value!.query = ''\n break\n }\n}\n\nconst hasButtonTexts = computed(() => props.buttonTexts.length === 2)\n\nconst leftPanelTitle = computed(\n () => props.titles[0] || t('el.transfer.titles.0')\n)\n\nconst rightPanelTitle = computed(\n () => props.titles[1] || t('el.transfer.titles.1')\n)\n\nconst panelFilterPlaceholder = computed(\n () => props.filterPlaceholder || t('el.transfer.filterPlaceholder')\n)\n\nwatch(\n () => props.modelValue,\n () => {\n if (props.validateEvent) {\n formItem?.validate?.('change').catch((err) => debugWarn(err))\n }\n }\n)\n\nconst optionRender = computed(() => (option: TransferDataItem) => {\n if (props.renderContent) return props.renderContent(h, option)\n\n if (slots.default) return slots.default({ option })\n\n return h(\n 'span',\n option[propsAlias.value.label] || option[propsAlias.value.key]\n )\n})\n\ndefineExpose({\n /** @description clear the filter keyword of a certain panel */\n clearQuery,\n /** @description left panel ref */\n leftPanel,\n /** @description left panel ref */\n rightPanel,\n})\n</script>\n"],"names":["useSlots","useLocale","useNamespace","useFormItem","reactive","usePropsAlias","useComputedData","useCheckedChange","useMove","ref","computed","watch","debugWarn","h"],"mappings":"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"}
1
+ {"version":3,"file":"transfer.js","sources":["../../../../../../packages/components/transfer/src/transfer.ts"],"sourcesContent":["import { isNil } from 'lodash-unified'\nimport {\n buildProps,\n definePropType,\n isArray,\n mutable,\n} from '@element-plus/utils'\nimport { CHANGE_EVENT, UPDATE_MODEL_EVENT } from '@element-plus/constants'\n\nimport type { ExtractPropTypes, h as H, VNode } from 'vue'\nimport type Transfer from './transfer.vue'\n\nexport type TransferKey = string | number\nexport type TransferDirection = 'left' | 'right'\n\nexport type TransferDataItem = Record<string, any>\n\nexport type renderContent = (\n h: typeof H,\n option: TransferDataItem\n) => VNode | VNode[]\n\nexport interface TransferFormat {\n noChecked?: string\n hasChecked?: string\n}\n\nexport interface TransferPropsAlias {\n label?: string\n key?: string\n disabled?: string\n}\n\nexport interface TransferCheckedState {\n leftChecked: TransferKey[]\n rightChecked: TransferKey[]\n}\n\nexport const LEFT_CHECK_CHANGE_EVENT = 'left-check-change'\nexport const RIGHT_CHECK_CHANGE_EVENT = 'right-check-change'\n\nexport const transferProps = buildProps({\n /**\n * @description data source\n */\n data: {\n type: definePropType<TransferDataItem[]>(Array),\n default: () => [],\n },\n /**\n * @description custom list titles\n */\n titles: {\n type: definePropType<[string, string]>(Array),\n default: () => [],\n },\n /**\n * @description custom button texts\n */\n buttonTexts: {\n type: definePropType<[string, string]>(Array),\n default: () => [],\n },\n /**\n * @description placeholder for the filter input\n */\n filterPlaceholder: String,\n /**\n * @description custom filter method\n */\n filterMethod: {\n type: definePropType<(query: string, item: TransferDataItem) => boolean>(\n Function\n ),\n },\n /**\n * @description key array of initially checked data items of the left list\n */\n leftDefaultChecked: {\n type: definePropType<TransferKey[]>(Array),\n default: () => [],\n },\n /**\n * @description key array of initially checked data items of the right list\n */\n rightDefaultChecked: {\n type: definePropType<TransferKey[]>(Array),\n default: () => [],\n },\n /**\n * @description custom render function for data items\n */\n renderContent: {\n type: definePropType<renderContent>(Function),\n },\n /**\n * @description binding value\n */\n modelValue: {\n type: definePropType<TransferKey[]>(Array),\n default: () => [],\n },\n /**\n * @description texts for checking status in list header\n */\n format: {\n type: definePropType<TransferFormat>(Object),\n default: () => ({}),\n },\n /**\n * @description whether Transfer is filterable\n */\n filterable: Boolean,\n /**\n * @description prop aliases for data source\n */\n props: {\n type: definePropType<TransferPropsAlias>(Object),\n default: () =>\n mutable({\n label: 'label',\n key: 'key',\n disabled: 'disabled',\n } as const),\n },\n /**\n * @description order strategy for elements in the target list. If set to `original`, the elements will keep the same order as the data source. If set to `push`, the newly added elements will be pushed to the bottom. If set to `unshift`, the newly added elements will be inserted on the top\n */\n targetOrder: {\n type: String,\n values: ['original', 'push', 'unshift'],\n default: 'original',\n },\n /**\n * @description whether to trigger form validation\n */\n validateEvent: {\n type: Boolean,\n default: true,\n },\n} as const)\nexport type TransferProps = ExtractPropTypes<typeof transferProps>\n\nexport const transferCheckedChangeFn = (\n value: TransferKey[],\n movedKeys?: TransferKey[]\n) => [value, movedKeys].every(isArray) || (isArray(value) && isNil(movedKeys))\n\nexport const transferEmits = {\n [CHANGE_EVENT]: (\n value: TransferKey[],\n direction: TransferDirection,\n movedKeys: TransferKey[]\n ) =>\n [value, movedKeys].every(isArray) && ['left', 'right'].includes(direction),\n [UPDATE_MODEL_EVENT]: (value: TransferKey[]) => isArray(value),\n [LEFT_CHECK_CHANGE_EVENT]: transferCheckedChangeFn,\n [RIGHT_CHECK_CHANGE_EVENT]: transferCheckedChangeFn,\n}\nexport type TransferEmits = typeof transferEmits\n\nexport type TransferInstance = InstanceType<typeof Transfer>\n"],"names":["buildProps","definePropType","mutable","isArray","isNil","CHANGE_EVENT","UPDATE_MODEL_EVENT"],"mappings":";;;;;;;;;;;;AAQY,MAAC,uBAAuB,GAAG,oBAAoB;AAC/C,MAAC,wBAAwB,GAAG,qBAAqB;AACjD,MAAC,aAAa,GAAGA,kBAAU,CAAC;AACxC,EAAE,IAAI,EAAE;AACR,IAAI,IAAI,EAAEC,sBAAc,CAAC,KAAK,CAAC;AAC/B,IAAI,OAAO,EAAE,MAAM,EAAE;AACrB,GAAG;AACH,EAAE,MAAM,EAAE;AACV,IAAI,IAAI,EAAEA,sBAAc,CAAC,KAAK,CAAC;AAC/B,IAAI,OAAO,EAAE,MAAM,EAAE;AACrB,GAAG;AACH,EAAE,WAAW,EAAE;AACf,IAAI,IAAI,EAAEA,sBAAc,CAAC,KAAK,CAAC;AAC/B,IAAI,OAAO,EAAE,MAAM,EAAE;AACrB,GAAG;AACH,EAAE,iBAAiB,EAAE,MAAM;AAC3B,EAAE,YAAY,EAAE;AAChB,IAAI,IAAI,EAAEA,sBAAc,CAAC,QAAQ,CAAC;AAClC,GAAG;AACH,EAAE,kBAAkB,EAAE;AACtB,IAAI,IAAI,EAAEA,sBAAc,CAAC,KAAK,CAAC;AAC/B,IAAI,OAAO,EAAE,MAAM,EAAE;AACrB,GAAG;AACH,EAAE,mBAAmB,EAAE;AACvB,IAAI,IAAI,EAAEA,sBAAc,CAAC,KAAK,CAAC;AAC/B,IAAI,OAAO,EAAE,MAAM,EAAE;AACrB,GAAG;AACH,EAAE,aAAa,EAAE;AACjB,IAAI,IAAI,EAAEA,sBAAc,CAAC,QAAQ,CAAC;AAClC,GAAG;AACH,EAAE,UAAU,EAAE;AACd,IAAI,IAAI,EAAEA,sBAAc,CAAC,KAAK,CAAC;AAC/B,IAAI,OAAO,EAAE,MAAM,EAAE;AACrB,GAAG;AACH,EAAE,MAAM,EAAE;AACV,IAAI,IAAI,EAAEA,sBAAc,CAAC,MAAM,CAAC;AAChC,IAAI,OAAO,EAAE,OAAO,EAAE,CAAC;AACvB,GAAG;AACH,EAAE,UAAU,EAAE,OAAO;AACrB,EAAE,KAAK,EAAE;AACT,IAAI,IAAI,EAAEA,sBAAc,CAAC,MAAM,CAAC;AAChC,IAAI,OAAO,EAAE,MAAMC,kBAAO,CAAC;AAC3B,MAAM,KAAK,EAAE,OAAO;AACpB,MAAM,GAAG,EAAE,KAAK;AAChB,MAAM,QAAQ,EAAE,UAAU;AAC1B,KAAK,CAAC;AACN,GAAG;AACH,EAAE,WAAW,EAAE;AACf,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,MAAM,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,CAAC;AAC3C,IAAI,OAAO,EAAE,UAAU;AACvB,GAAG;AACH,EAAE,aAAa,EAAE;AACjB,IAAI,IAAI,EAAE,OAAO;AACjB,IAAI,OAAO,EAAE,IAAI;AACjB,GAAG;AACH,CAAC,EAAE;AACS,MAAC,uBAAuB,GAAG,CAAC,KAAK,EAAE,SAAS,KAAK,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,KAAK,CAACC,cAAO,CAAC,IAAIA,cAAO,CAAC,KAAK,CAAC,IAAIC,mBAAK,CAAC,SAAS,EAAE;AACzH,MAAC,aAAa,GAAG;AAC7B,EAAE,CAACC,kBAAY,GAAG,CAAC,KAAK,EAAE,SAAS,EAAE,SAAS,KAAK,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,KAAK,CAACF,cAAO,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC;AAC7H,EAAE,CAACG,wBAAkB,GAAG,CAAC,KAAK,KAAKH,cAAO,CAAC,KAAK,CAAC;AACjD,EAAE,CAAC,uBAAuB,GAAG,uBAAuB;AACpD,EAAE,CAAC,wBAAwB,GAAG,uBAAuB;AACrD;;;;;;;;"}
@@ -2,82 +2,169 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var lodashUnified = require('lodash-unified');
5
+ var vue = require('vue');
6
6
  require('../../../utils/index.js');
7
- require('../../../constants/index.js');
8
- var runtime = require('../../../utils/vue/props/runtime.js');
9
- var typescript = require('../../../utils/typescript.js');
10
- var shared = require('@vue/shared');
11
- var event = require('../../../constants/event.js');
7
+ require('../../../hooks/index.js');
8
+ var index$2 = require('../../button/index.js');
9
+ var index$3 = require('../../icon/index.js');
10
+ require('../../form/index.js');
11
+ var iconsVue = require('@element-plus/icons-vue');
12
+ var transfer = require('./transfer.js');
13
+ require('./composables/index.js');
14
+ var transferPanel = require('./transfer-panel2.js');
15
+ var pluginVue_exportHelper = require('../../../_virtual/plugin-vue_export-helper.js');
16
+ var index = require('../../../hooks/use-locale/index.js');
17
+ var index$1 = require('../../../hooks/use-namespace/index.js');
18
+ var useFormItem = require('../../form/src/hooks/use-form-item.js');
19
+ var usePropsAlias = require('./composables/use-props-alias.js');
20
+ var useComputedData = require('./composables/use-computed-data.js');
21
+ var useCheckedChange = require('./composables/use-checked-change.js');
22
+ var useMove = require('./composables/use-move.js');
23
+ var error = require('../../../utils/error.js');
24
+ var types = require('../../../utils/types.js');
12
25
 
13
- const LEFT_CHECK_CHANGE_EVENT = "left-check-change";
14
- const RIGHT_CHECK_CHANGE_EVENT = "right-check-change";
15
- const transferProps = runtime.buildProps({
16
- data: {
17
- type: runtime.definePropType(Array),
18
- default: () => []
19
- },
20
- titles: {
21
- type: runtime.definePropType(Array),
22
- default: () => []
23
- },
24
- buttonTexts: {
25
- type: runtime.definePropType(Array),
26
- default: () => []
27
- },
28
- filterPlaceholder: String,
29
- filterMethod: {
30
- type: runtime.definePropType(Function)
31
- },
32
- leftDefaultChecked: {
33
- type: runtime.definePropType(Array),
34
- default: () => []
35
- },
36
- rightDefaultChecked: {
37
- type: runtime.definePropType(Array),
38
- default: () => []
39
- },
40
- renderContent: {
41
- type: runtime.definePropType(Function)
42
- },
43
- modelValue: {
44
- type: runtime.definePropType(Array),
45
- default: () => []
46
- },
47
- format: {
48
- type: runtime.definePropType(Object),
49
- default: () => ({})
50
- },
51
- filterable: Boolean,
52
- props: {
53
- type: runtime.definePropType(Object),
54
- default: () => typescript.mutable({
55
- label: "label",
56
- key: "key",
57
- disabled: "disabled"
58
- })
59
- },
60
- targetOrder: {
61
- type: String,
62
- values: ["original", "push", "unshift"],
63
- default: "original"
64
- },
65
- validateEvent: {
66
- type: Boolean,
67
- default: true
26
+ const _hoisted_1 = { key: 0 };
27
+ const _hoisted_2 = { key: 0 };
28
+ const __default__ = vue.defineComponent({
29
+ name: "ElTransfer"
30
+ });
31
+ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
32
+ ...__default__,
33
+ props: transfer.transferProps,
34
+ emits: transfer.transferEmits,
35
+ setup(__props, { expose, emit }) {
36
+ const props = __props;
37
+ const slots = vue.useSlots();
38
+ const { t } = index.useLocale();
39
+ const ns = index$1.useNamespace("transfer");
40
+ const { formItem } = useFormItem.useFormItem();
41
+ const checkedState = vue.reactive({
42
+ leftChecked: [],
43
+ rightChecked: []
44
+ });
45
+ const propsAlias = usePropsAlias.usePropsAlias(props);
46
+ const { sourceData, targetData } = useComputedData.useComputedData(props);
47
+ const { onSourceCheckedChange, onTargetCheckedChange } = useCheckedChange.useCheckedChange(checkedState, emit);
48
+ const { addToLeft, addToRight } = useMove.useMove(props, checkedState, emit);
49
+ const leftPanel = vue.ref();
50
+ const rightPanel = vue.ref();
51
+ const clearQuery = (which) => {
52
+ switch (which) {
53
+ case "left":
54
+ leftPanel.value.query = "";
55
+ break;
56
+ case "right":
57
+ rightPanel.value.query = "";
58
+ break;
59
+ }
60
+ };
61
+ const hasButtonTexts = vue.computed(() => props.buttonTexts.length === 2);
62
+ const leftPanelTitle = vue.computed(() => props.titles[0] || t("el.transfer.titles.0"));
63
+ const rightPanelTitle = vue.computed(() => props.titles[1] || t("el.transfer.titles.1"));
64
+ const panelFilterPlaceholder = vue.computed(() => props.filterPlaceholder || t("el.transfer.filterPlaceholder"));
65
+ vue.watch(() => props.modelValue, () => {
66
+ var _a;
67
+ if (props.validateEvent) {
68
+ (_a = formItem == null ? void 0 : formItem.validate) == null ? void 0 : _a.call(formItem, "change").catch((err) => error.debugWarn(err));
69
+ }
70
+ });
71
+ const optionRender = vue.computed(() => (option) => {
72
+ if (props.renderContent)
73
+ return props.renderContent(vue.h, option);
74
+ if (slots.default)
75
+ return slots.default({ option });
76
+ return vue.h("span", option[propsAlias.value.label] || option[propsAlias.value.key]);
77
+ });
78
+ expose({
79
+ clearQuery,
80
+ leftPanel,
81
+ rightPanel
82
+ });
83
+ return (_ctx, _cache) => {
84
+ return vue.openBlock(), vue.createElementBlock("div", {
85
+ class: vue.normalizeClass(vue.unref(ns).b())
86
+ }, [
87
+ vue.createVNode(transferPanel["default"], {
88
+ ref_key: "leftPanel",
89
+ ref: leftPanel,
90
+ data: vue.unref(sourceData),
91
+ "option-render": vue.unref(optionRender),
92
+ placeholder: vue.unref(panelFilterPlaceholder),
93
+ title: vue.unref(leftPanelTitle),
94
+ filterable: _ctx.filterable,
95
+ format: _ctx.format,
96
+ "filter-method": _ctx.filterMethod,
97
+ "default-checked": _ctx.leftDefaultChecked,
98
+ props: props.props,
99
+ onCheckedChange: vue.unref(onSourceCheckedChange)
100
+ }, {
101
+ default: vue.withCtx(() => [
102
+ vue.renderSlot(_ctx.$slots, "left-footer")
103
+ ]),
104
+ _: 3
105
+ }, 8, ["data", "option-render", "placeholder", "title", "filterable", "format", "filter-method", "default-checked", "props", "onCheckedChange"]),
106
+ vue.createElementVNode("div", {
107
+ class: vue.normalizeClass(vue.unref(ns).e("buttons"))
108
+ }, [
109
+ vue.createVNode(vue.unref(index$2.ElButton), {
110
+ type: "primary",
111
+ class: vue.normalizeClass([vue.unref(ns).e("button"), vue.unref(ns).is("with-texts", vue.unref(hasButtonTexts))]),
112
+ disabled: vue.unref(types.isEmpty)(checkedState.rightChecked),
113
+ onClick: vue.unref(addToLeft)
114
+ }, {
115
+ default: vue.withCtx(() => [
116
+ vue.createVNode(vue.unref(index$3.ElIcon), null, {
117
+ default: vue.withCtx(() => [
118
+ vue.createVNode(vue.unref(iconsVue.ArrowLeft))
119
+ ]),
120
+ _: 1
121
+ }),
122
+ !vue.unref(types.isUndefined)(_ctx.buttonTexts[0]) ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_1, vue.toDisplayString(_ctx.buttonTexts[0]), 1)) : vue.createCommentVNode("v-if", true)
123
+ ]),
124
+ _: 1
125
+ }, 8, ["class", "disabled", "onClick"]),
126
+ vue.createVNode(vue.unref(index$2.ElButton), {
127
+ type: "primary",
128
+ class: vue.normalizeClass([vue.unref(ns).e("button"), vue.unref(ns).is("with-texts", vue.unref(hasButtonTexts))]),
129
+ disabled: vue.unref(types.isEmpty)(checkedState.leftChecked),
130
+ onClick: vue.unref(addToRight)
131
+ }, {
132
+ default: vue.withCtx(() => [
133
+ !vue.unref(types.isUndefined)(_ctx.buttonTexts[1]) ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_2, vue.toDisplayString(_ctx.buttonTexts[1]), 1)) : vue.createCommentVNode("v-if", true),
134
+ vue.createVNode(vue.unref(index$3.ElIcon), null, {
135
+ default: vue.withCtx(() => [
136
+ vue.createVNode(vue.unref(iconsVue.ArrowRight))
137
+ ]),
138
+ _: 1
139
+ })
140
+ ]),
141
+ _: 1
142
+ }, 8, ["class", "disabled", "onClick"])
143
+ ], 2),
144
+ vue.createVNode(transferPanel["default"], {
145
+ ref_key: "rightPanel",
146
+ ref: rightPanel,
147
+ data: vue.unref(targetData),
148
+ "option-render": vue.unref(optionRender),
149
+ placeholder: vue.unref(panelFilterPlaceholder),
150
+ filterable: _ctx.filterable,
151
+ format: _ctx.format,
152
+ "filter-method": _ctx.filterMethod,
153
+ title: vue.unref(rightPanelTitle),
154
+ "default-checked": _ctx.rightDefaultChecked,
155
+ props: props.props,
156
+ onCheckedChange: vue.unref(onTargetCheckedChange)
157
+ }, {
158
+ default: vue.withCtx(() => [
159
+ vue.renderSlot(_ctx.$slots, "right-footer")
160
+ ]),
161
+ _: 3
162
+ }, 8, ["data", "option-render", "placeholder", "filterable", "format", "filter-method", "title", "default-checked", "props", "onCheckedChange"])
163
+ ], 2);
164
+ };
68
165
  }
69
166
  });
70
- const transferCheckedChangeFn = (value, movedKeys) => [value, movedKeys].every(shared.isArray) || shared.isArray(value) && lodashUnified.isNil(movedKeys);
71
- const transferEmits = {
72
- [event.CHANGE_EVENT]: (value, direction, movedKeys) => [value, movedKeys].every(shared.isArray) && ["left", "right"].includes(direction),
73
- [event.UPDATE_MODEL_EVENT]: (value) => shared.isArray(value),
74
- [LEFT_CHECK_CHANGE_EVENT]: transferCheckedChangeFn,
75
- [RIGHT_CHECK_CHANGE_EVENT]: transferCheckedChangeFn
76
- };
167
+ var Transfer = /* @__PURE__ */ pluginVue_exportHelper["default"](_sfc_main, [["__file", "/home/runner/work/element-plus/element-plus/packages/components/transfer/src/transfer.vue"]]);
77
168
 
78
- exports.LEFT_CHECK_CHANGE_EVENT = LEFT_CHECK_CHANGE_EVENT;
79
- exports.RIGHT_CHECK_CHANGE_EVENT = RIGHT_CHECK_CHANGE_EVENT;
80
- exports.transferCheckedChangeFn = transferCheckedChangeFn;
81
- exports.transferEmits = transferEmits;
82
- exports.transferProps = transferProps;
169
+ exports["default"] = Transfer;
83
170
  //# sourceMappingURL=transfer2.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"transfer2.js","sources":["../../../../../../packages/components/transfer/src/transfer.ts"],"sourcesContent":["import { isNil } from 'lodash-unified'\nimport {\n buildProps,\n definePropType,\n isArray,\n mutable,\n} from '@element-plus/utils'\nimport { CHANGE_EVENT, UPDATE_MODEL_EVENT } from '@element-plus/constants'\n\nimport type { ExtractPropTypes, h as H, VNode } from 'vue'\nimport type Transfer from './transfer.vue'\n\nexport type TransferKey = string | number\nexport type TransferDirection = 'left' | 'right'\n\nexport type TransferDataItem = Record<string, any>\n\nexport type renderContent = (\n h: typeof H,\n option: TransferDataItem\n) => VNode | VNode[]\n\nexport interface TransferFormat {\n noChecked?: string\n hasChecked?: string\n}\n\nexport interface TransferPropsAlias {\n label?: string\n key?: string\n disabled?: string\n}\n\nexport interface TransferCheckedState {\n leftChecked: TransferKey[]\n rightChecked: TransferKey[]\n}\n\nexport const LEFT_CHECK_CHANGE_EVENT = 'left-check-change'\nexport const RIGHT_CHECK_CHANGE_EVENT = 'right-check-change'\n\nexport const transferProps = buildProps({\n /**\n * @description data source\n */\n data: {\n type: definePropType<TransferDataItem[]>(Array),\n default: () => [],\n },\n /**\n * @description custom list titles\n */\n titles: {\n type: definePropType<[string, string]>(Array),\n default: () => [],\n },\n /**\n * @description custom button texts\n */\n buttonTexts: {\n type: definePropType<[string, string]>(Array),\n default: () => [],\n },\n /**\n * @description placeholder for the filter input\n */\n filterPlaceholder: String,\n /**\n * @description custom filter method\n */\n filterMethod: {\n type: definePropType<(query: string, item: TransferDataItem) => boolean>(\n Function\n ),\n },\n /**\n * @description key array of initially checked data items of the left list\n */\n leftDefaultChecked: {\n type: definePropType<TransferKey[]>(Array),\n default: () => [],\n },\n /**\n * @description key array of initially checked data items of the right list\n */\n rightDefaultChecked: {\n type: definePropType<TransferKey[]>(Array),\n default: () => [],\n },\n /**\n * @description custom render function for data items\n */\n renderContent: {\n type: definePropType<renderContent>(Function),\n },\n /**\n * @description binding value\n */\n modelValue: {\n type: definePropType<TransferKey[]>(Array),\n default: () => [],\n },\n /**\n * @description texts for checking status in list header\n */\n format: {\n type: definePropType<TransferFormat>(Object),\n default: () => ({}),\n },\n /**\n * @description whether Transfer is filterable\n */\n filterable: Boolean,\n /**\n * @description prop aliases for data source\n */\n props: {\n type: definePropType<TransferPropsAlias>(Object),\n default: () =>\n mutable({\n label: 'label',\n key: 'key',\n disabled: 'disabled',\n } as const),\n },\n /**\n * @description order strategy for elements in the target list. If set to `original`, the elements will keep the same order as the data source. If set to `push`, the newly added elements will be pushed to the bottom. If set to `unshift`, the newly added elements will be inserted on the top\n */\n targetOrder: {\n type: String,\n values: ['original', 'push', 'unshift'],\n default: 'original',\n },\n /**\n * @description whether to trigger form validation\n */\n validateEvent: {\n type: Boolean,\n default: true,\n },\n} as const)\nexport type TransferProps = ExtractPropTypes<typeof transferProps>\n\nexport const transferCheckedChangeFn = (\n value: TransferKey[],\n movedKeys?: TransferKey[]\n) => [value, movedKeys].every(isArray) || (isArray(value) && isNil(movedKeys))\n\nexport const transferEmits = {\n [CHANGE_EVENT]: (\n value: TransferKey[],\n direction: TransferDirection,\n movedKeys: TransferKey[]\n ) =>\n [value, movedKeys].every(isArray) && ['left', 'right'].includes(direction),\n [UPDATE_MODEL_EVENT]: (value: TransferKey[]) => isArray(value),\n [LEFT_CHECK_CHANGE_EVENT]: transferCheckedChangeFn,\n [RIGHT_CHECK_CHANGE_EVENT]: transferCheckedChangeFn,\n}\nexport type TransferEmits = typeof transferEmits\n\nexport type TransferInstance = InstanceType<typeof Transfer>\n"],"names":["buildProps","definePropType","mutable","isArray","isNil","CHANGE_EVENT","UPDATE_MODEL_EVENT"],"mappings":";;;;;;;;;;;;AAQY,MAAC,uBAAuB,GAAG,oBAAoB;AAC/C,MAAC,wBAAwB,GAAG,qBAAqB;AACjD,MAAC,aAAa,GAAGA,kBAAU,CAAC;AACxC,EAAE,IAAI,EAAE;AACR,IAAI,IAAI,EAAEC,sBAAc,CAAC,KAAK,CAAC;AAC/B,IAAI,OAAO,EAAE,MAAM,EAAE;AACrB,GAAG;AACH,EAAE,MAAM,EAAE;AACV,IAAI,IAAI,EAAEA,sBAAc,CAAC,KAAK,CAAC;AAC/B,IAAI,OAAO,EAAE,MAAM,EAAE;AACrB,GAAG;AACH,EAAE,WAAW,EAAE;AACf,IAAI,IAAI,EAAEA,sBAAc,CAAC,KAAK,CAAC;AAC/B,IAAI,OAAO,EAAE,MAAM,EAAE;AACrB,GAAG;AACH,EAAE,iBAAiB,EAAE,MAAM;AAC3B,EAAE,YAAY,EAAE;AAChB,IAAI,IAAI,EAAEA,sBAAc,CAAC,QAAQ,CAAC;AAClC,GAAG;AACH,EAAE,kBAAkB,EAAE;AACtB,IAAI,IAAI,EAAEA,sBAAc,CAAC,KAAK,CAAC;AAC/B,IAAI,OAAO,EAAE,MAAM,EAAE;AACrB,GAAG;AACH,EAAE,mBAAmB,EAAE;AACvB,IAAI,IAAI,EAAEA,sBAAc,CAAC,KAAK,CAAC;AAC/B,IAAI,OAAO,EAAE,MAAM,EAAE;AACrB,GAAG;AACH,EAAE,aAAa,EAAE;AACjB,IAAI,IAAI,EAAEA,sBAAc,CAAC,QAAQ,CAAC;AAClC,GAAG;AACH,EAAE,UAAU,EAAE;AACd,IAAI,IAAI,EAAEA,sBAAc,CAAC,KAAK,CAAC;AAC/B,IAAI,OAAO,EAAE,MAAM,EAAE;AACrB,GAAG;AACH,EAAE,MAAM,EAAE;AACV,IAAI,IAAI,EAAEA,sBAAc,CAAC,MAAM,CAAC;AAChC,IAAI,OAAO,EAAE,OAAO,EAAE,CAAC;AACvB,GAAG;AACH,EAAE,UAAU,EAAE,OAAO;AACrB,EAAE,KAAK,EAAE;AACT,IAAI,IAAI,EAAEA,sBAAc,CAAC,MAAM,CAAC;AAChC,IAAI,OAAO,EAAE,MAAMC,kBAAO,CAAC;AAC3B,MAAM,KAAK,EAAE,OAAO;AACpB,MAAM,GAAG,EAAE,KAAK;AAChB,MAAM,QAAQ,EAAE,UAAU;AAC1B,KAAK,CAAC;AACN,GAAG;AACH,EAAE,WAAW,EAAE;AACf,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,MAAM,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,CAAC;AAC3C,IAAI,OAAO,EAAE,UAAU;AACvB,GAAG;AACH,EAAE,aAAa,EAAE;AACjB,IAAI,IAAI,EAAE,OAAO;AACjB,IAAI,OAAO,EAAE,IAAI;AACjB,GAAG;AACH,CAAC,EAAE;AACS,MAAC,uBAAuB,GAAG,CAAC,KAAK,EAAE,SAAS,KAAK,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,KAAK,CAACC,cAAO,CAAC,IAAIA,cAAO,CAAC,KAAK,CAAC,IAAIC,mBAAK,CAAC,SAAS,EAAE;AACzH,MAAC,aAAa,GAAG;AAC7B,EAAE,CAACC,kBAAY,GAAG,CAAC,KAAK,EAAE,SAAS,EAAE,SAAS,KAAK,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,KAAK,CAACF,cAAO,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC;AAC7H,EAAE,CAACG,wBAAkB,GAAG,CAAC,KAAK,KAAKH,cAAO,CAAC,KAAK,CAAC;AACjD,EAAE,CAAC,uBAAuB,GAAG,uBAAuB;AACpD,EAAE,CAAC,wBAAwB,GAAG,uBAAuB;AACrD;;;;;;;;"}
1
+ {"version":3,"file":"transfer2.js","sources":["../../../../../../packages/components/transfer/src/transfer.vue"],"sourcesContent":["<template>\n <div :class=\"ns.b()\">\n <transfer-panel\n ref=\"leftPanel\"\n :data=\"sourceData\"\n :option-render=\"optionRender\"\n :placeholder=\"panelFilterPlaceholder\"\n :title=\"leftPanelTitle\"\n :filterable=\"filterable\"\n :format=\"format\"\n :filter-method=\"filterMethod\"\n :default-checked=\"leftDefaultChecked\"\n :props=\"props.props\"\n @checked-change=\"onSourceCheckedChange\"\n >\n <slot name=\"left-footer\" />\n </transfer-panel>\n <div :class=\"ns.e('buttons')\">\n <el-button\n type=\"primary\"\n :class=\"[ns.e('button'), ns.is('with-texts', hasButtonTexts)]\"\n :disabled=\"isEmpty(checkedState.rightChecked)\"\n @click=\"addToLeft\"\n >\n <el-icon><arrow-left /></el-icon>\n <span v-if=\"!isUndefined(buttonTexts[0])\">{{ buttonTexts[0] }}</span>\n </el-button>\n <el-button\n type=\"primary\"\n :class=\"[ns.e('button'), ns.is('with-texts', hasButtonTexts)]\"\n :disabled=\"isEmpty(checkedState.leftChecked)\"\n @click=\"addToRight\"\n >\n <span v-if=\"!isUndefined(buttonTexts[1])\">{{ buttonTexts[1] }}</span>\n <el-icon><arrow-right /></el-icon>\n </el-button>\n </div>\n <transfer-panel\n ref=\"rightPanel\"\n :data=\"targetData\"\n :option-render=\"optionRender\"\n :placeholder=\"panelFilterPlaceholder\"\n :filterable=\"filterable\"\n :format=\"format\"\n :filter-method=\"filterMethod\"\n :title=\"rightPanelTitle\"\n :default-checked=\"rightDefaultChecked\"\n :props=\"props.props\"\n @checked-change=\"onTargetCheckedChange\"\n >\n <slot name=\"right-footer\" />\n </transfer-panel>\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport { computed, h, reactive, ref, useSlots, watch } from 'vue'\nimport { debugWarn, isEmpty, isUndefined } from '@element-plus/utils'\nimport { useLocale, useNamespace } from '@element-plus/hooks'\nimport { ElButton } from '@element-plus/components/button'\nimport { ElIcon } from '@element-plus/components/icon'\nimport { useFormItem } from '@element-plus/components/form'\nimport { ArrowLeft, ArrowRight } from '@element-plus/icons-vue'\nimport { transferEmits, transferProps } from './transfer'\nimport {\n useCheckedChange,\n useComputedData,\n useMove,\n usePropsAlias,\n} from './composables'\nimport TransferPanel from './transfer-panel.vue'\n\nimport type {\n TransferCheckedState,\n TransferDataItem,\n TransferDirection,\n} from './transfer'\nimport type { TransferPanelInstance } from './transfer-panel'\n\ndefineOptions({\n name: 'ElTransfer',\n})\n\nconst props = defineProps(transferProps)\nconst emit = defineEmits(transferEmits)\nconst slots = useSlots()\n\nconst { t } = useLocale()\nconst ns = useNamespace('transfer')\nconst { formItem } = useFormItem()\n\nconst checkedState = reactive<TransferCheckedState>({\n leftChecked: [],\n rightChecked: [],\n})\n\nconst propsAlias = usePropsAlias(props)\n\nconst { sourceData, targetData } = useComputedData(props)\n\nconst { onSourceCheckedChange, onTargetCheckedChange } = useCheckedChange(\n checkedState,\n emit\n)\n\nconst { addToLeft, addToRight } = useMove(props, checkedState, emit)\n\nconst leftPanel = ref<TransferPanelInstance>()\nconst rightPanel = ref<TransferPanelInstance>()\n\nconst clearQuery = (which: TransferDirection) => {\n switch (which) {\n case 'left':\n leftPanel.value!.query = ''\n break\n case 'right':\n rightPanel.value!.query = ''\n break\n }\n}\n\nconst hasButtonTexts = computed(() => props.buttonTexts.length === 2)\n\nconst leftPanelTitle = computed(\n () => props.titles[0] || t('el.transfer.titles.0')\n)\n\nconst rightPanelTitle = computed(\n () => props.titles[1] || t('el.transfer.titles.1')\n)\n\nconst panelFilterPlaceholder = computed(\n () => props.filterPlaceholder || t('el.transfer.filterPlaceholder')\n)\n\nwatch(\n () => props.modelValue,\n () => {\n if (props.validateEvent) {\n formItem?.validate?.('change').catch((err) => debugWarn(err))\n }\n }\n)\n\nconst optionRender = computed(() => (option: TransferDataItem) => {\n if (props.renderContent) return props.renderContent(h, option)\n\n if (slots.default) return slots.default({ option })\n\n return h(\n 'span',\n option[propsAlias.value.label] || option[propsAlias.value.key]\n )\n})\n\ndefineExpose({\n /** @description clear the filter keyword of a certain panel */\n clearQuery,\n /** @description left panel ref */\n leftPanel,\n /** @description left panel ref */\n rightPanel,\n})\n</script>\n"],"names":["useSlots","useLocale","useNamespace","useFormItem","reactive","usePropsAlias","useComputedData","useCheckedChange","useMove","ref","computed","watch","debugWarn","h"],"mappings":"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"}