ele-admin-plus 1.4.0 → 1.4.1-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (315) hide show
  1. package/es/ele-admin-layout/components/layout-skeleton.d.ts +9 -3
  2. package/es/ele-admin-layout/components/layout-skeleton.js +9 -3
  3. package/es/ele-admin-layout/components/layout-tabs.d.ts +7 -2
  4. package/es/ele-admin-layout/components/layout-tabs.js +9 -4
  5. package/es/ele-admin-layout/index.js +23 -18
  6. package/es/ele-alert/index.js +7 -8
  7. package/es/ele-app/el.d.ts +3 -1
  8. package/es/ele-app/plus.d.ts +12 -41
  9. package/es/ele-app/plusx.d.ts +40 -0
  10. package/es/ele-app/style/overwrite/date-picker/index.scss +1 -1
  11. package/es/ele-autocomplete/index.d.ts +265 -47
  12. package/es/ele-autocomplete/props.d.ts +124 -22
  13. package/es/ele-avatar-group/types.d.ts +1 -1
  14. package/es/ele-backtop/index.js +7 -8
  15. package/es/ele-basic-select/components/select-view.d.ts +129 -0
  16. package/es/ele-basic-select/components/select-view.js +272 -0
  17. package/es/ele-basic-select/index.d.ts +13 -23
  18. package/es/ele-basic-select/index.js +108 -247
  19. package/es/ele-basic-select/props.d.ts +8 -2
  20. package/es/ele-basic-select/props.js +7 -1
  21. package/es/ele-basic-select/types.d.ts +21 -0
  22. package/es/ele-basic-select/util.js +6 -1
  23. package/es/ele-bottom-bar/index.js +6 -6
  24. package/es/ele-breadcrumb/types.d.ts +1 -1
  25. package/es/ele-cascader/index.d.ts +17 -19
  26. package/es/ele-cascader/props.d.ts +4 -5
  27. package/es/ele-check-card/types.d.ts +1 -1
  28. package/es/ele-checkbox-group/index.d.ts +1 -1
  29. package/es/ele-config-provider/components/receiver-view.js +91 -80
  30. package/es/ele-config-provider/receiver.d.ts +2 -0
  31. package/es/ele-config-provider/receiver.js +8 -1
  32. package/es/ele-cropper/index.d.ts +1 -3
  33. package/es/ele-cropper-modal/index.d.ts +1 -1
  34. package/es/ele-crud/components/page-side.js +1 -4
  35. package/es/ele-crud/types.d.ts +1 -1
  36. package/es/ele-crud/util.d.ts +1 -1
  37. package/es/ele-crud-builder/components/body-header.d.ts +1 -1
  38. package/es/ele-crud-builder/components/code-generator.d.ts +1 -1
  39. package/es/ele-crud-builder/components/code-preview.d.ts +1 -1
  40. package/es/ele-crud-builder/components/form-design-modal.d.ts +1 -1
  41. package/es/ele-crud-builder/components/import-modal.d.ts +1 -1
  42. package/es/ele-crud-builder/components/page-config.d.ts +1 -1
  43. package/es/ele-crud-builder/components/template-list.d.ts +1 -1
  44. package/es/ele-crud-builder/index.d.ts +3 -3
  45. package/es/ele-crud-builder/index.js +1 -1
  46. package/es/ele-crud-builder/props.d.ts +2 -1
  47. package/es/ele-crud-builder/types.d.ts +1 -1
  48. package/es/ele-crud-builder/util.js +2 -2
  49. package/es/ele-data-table/index.d.ts +38 -44
  50. package/es/ele-data-table/index.js +6 -3
  51. package/es/ele-data-table/props.d.ts +39 -45
  52. package/es/ele-drawer/index.d.ts +2 -2
  53. package/es/ele-drawer/index.js +4 -3
  54. package/es/ele-drawer/props.d.ts +6 -0
  55. package/es/ele-drawer/props.js +5 -1
  56. package/es/ele-dropdown/components/pro-dropdown.d.ts +28 -28
  57. package/es/ele-dropdown/index.d.ts +30 -30
  58. package/es/ele-dropdown/props.d.ts +12 -12
  59. package/es/ele-dropdown/types.d.ts +1 -1
  60. package/es/ele-edit-tag/index.d.ts +1 -1
  61. package/es/ele-ellipsis/props.d.ts +1 -1
  62. package/es/ele-file-list/components/file-grid.d.ts +1 -1
  63. package/es/ele-file-list/components/file-table.d.ts +1 -1
  64. package/es/ele-file-list/icons.js +10 -1
  65. package/es/ele-file-list/types.d.ts +1 -1
  66. package/es/ele-icon-select/index.d.ts +5 -1
  67. package/es/ele-icon-select/index.js +3 -1
  68. package/es/ele-icon-select/props.d.ts +7 -2
  69. package/es/ele-icon-select/props.js +4 -0
  70. package/es/ele-image-viewer/index.d.ts +2 -16
  71. package/es/ele-image-viewer/index.js +13 -15
  72. package/es/ele-image-viewer/props.d.ts +1 -8
  73. package/es/ele-loading/index.js +6 -6
  74. package/es/ele-map-picker/index.d.ts +2 -4
  75. package/es/ele-mention/index.d.ts +29 -8
  76. package/es/ele-mention/props.d.ts +9 -0
  77. package/es/ele-menus/types.d.ts +2 -0
  78. package/es/ele-menus/util.js +1 -1
  79. package/es/ele-modal/index.d.ts +4 -4
  80. package/es/ele-modal/index.js +3 -2
  81. package/es/ele-popconfirm/index.d.ts +95 -96
  82. package/es/ele-popconfirm/index.js +6 -21
  83. package/es/ele-popconfirm/props.d.ts +32 -32
  84. package/es/ele-popover/index.d.ts +72 -72
  85. package/es/ele-printer/index.d.ts +2 -2
  86. package/es/ele-printer/index.js +7 -7
  87. package/es/ele-pro-form/components/render-util.d.ts +2 -2
  88. package/es/ele-pro-form/index.d.ts +7 -2
  89. package/es/ele-pro-form/props.d.ts +3 -1
  90. package/es/ele-pro-form-builder/components/body-form.d.ts +1 -1
  91. package/es/ele-pro-form-builder/components/body-header.d.ts +1 -1
  92. package/es/ele-pro-form-builder/components/code-generator.d.ts +1 -1
  93. package/es/ele-pro-form-builder/components/code-preview.d.ts +1 -1
  94. package/es/ele-pro-form-builder/components/config-form.d.ts +1 -1
  95. package/es/ele-pro-form-builder/components/import-modal.d.ts +1 -1
  96. package/es/ele-pro-form-builder/components/preview-modal.d.ts +1 -1
  97. package/es/ele-pro-form-builder/components/props-form.d.ts +1 -1
  98. package/es/ele-pro-form-builder/components/table-util.js +3 -0
  99. package/es/ele-pro-form-builder/components/template-list.d.ts +1 -1
  100. package/es/ele-pro-form-builder/index.d.ts +1 -1
  101. package/es/ele-pro-form-builder/props.d.ts +2 -1
  102. package/es/ele-pro-form-builder/types.d.ts +1 -1
  103. package/es/ele-pro-layout/index.d.ts +29 -29
  104. package/es/ele-pro-layout/props.d.ts +12 -12
  105. package/es/ele-pro-layout/style/index.scss +0 -2
  106. package/es/ele-pro-layout/types.d.ts +2 -0
  107. package/es/ele-pro-table/components/table-tools.d.ts +1 -1
  108. package/es/ele-pro-table/components/tool-export.d.ts +2 -2
  109. package/es/ele-pro-table/components/tool-print.d.ts +1 -1
  110. package/es/ele-pro-table/index.d.ts +40 -46
  111. package/es/ele-pro-table/index.js +11 -16
  112. package/es/ele-pro-table/props.d.ts +18 -21
  113. package/es/ele-pro-table/style/css-var.scss +4 -0
  114. package/es/ele-pro-table/style/index.scss +2 -2
  115. package/es/ele-radio-group/index.d.ts +2 -2
  116. package/es/ele-segmented/index.d.ts +2 -2
  117. package/es/ele-segmented/props.d.ts +1 -1
  118. package/es/ele-segmented/style/index.scss +1 -0
  119. package/es/ele-select/index.d.ts +12 -12
  120. package/es/ele-select/props.d.ts +2 -2
  121. package/es/ele-select/props.js +2 -2
  122. package/es/ele-select-tree/index.d.ts +10 -10
  123. package/es/ele-select-tree/props.d.ts +2 -2
  124. package/es/ele-select-tree/props.js +2 -2
  125. package/es/ele-steps/types.d.ts +1 -1
  126. package/es/ele-tab-bar/index.d.ts +4 -2
  127. package/es/ele-tab-bar/index.js +1 -0
  128. package/es/ele-tab-bar/props.d.ts +3 -1
  129. package/es/ele-tab-bar/props.js +4 -2
  130. package/es/ele-tab-bar/style/index.scss +1 -0
  131. package/es/ele-table-select/props.d.ts +2 -2
  132. package/es/ele-table-select/props.js +1 -1
  133. package/es/ele-tabs/index.d.ts +16 -12
  134. package/es/ele-tabs/style/index.scss +1 -0
  135. package/es/ele-tabs/types.d.ts +1 -1
  136. package/es/ele-timeline/types.d.ts +3 -3
  137. package/es/ele-tooltip/index.d.ts +53 -53
  138. package/es/ele-tour/index.js +7 -7
  139. package/es/ele-transfer/index.d.ts +1 -1
  140. package/es/ele-tree-select/index.d.ts +2 -2
  141. package/es/ele-tree-select/props.d.ts +1 -1
  142. package/es/ele-upload-list/components/list-item.d.ts +3 -0
  143. package/es/ele-upload-list/components/list-item.js +1 -0
  144. package/es/ele-upload-list/types.d.ts +1 -1
  145. package/es/ele-virtual-table/index.d.ts +38 -44
  146. package/es/ele-virtual-table/props.d.ts +19 -22
  147. package/es/ele-watermark/index.js +9 -6
  148. package/es/ele-watermark/util.d.ts +2 -0
  149. package/es/ele-watermark/util.js +10 -3
  150. package/es/style/themes/default.scss +6 -0
  151. package/es/style/themes/rounded.scss +3 -0
  152. package/es/style/themes/transparent.scss +3 -0
  153. package/es/utils/common.d.ts +10 -0
  154. package/es/utils/common.js +10 -0
  155. package/es/utils/core.d.ts +6 -0
  156. package/es/utils/core.js +10 -1
  157. package/es/utils/menu-util.js +1 -0
  158. package/lib/ele-admin-layout/components/layout-skeleton.cjs +9 -3
  159. package/lib/ele-admin-layout/components/layout-skeleton.d.ts +9 -3
  160. package/lib/ele-admin-layout/components/layout-tabs.cjs +9 -4
  161. package/lib/ele-admin-layout/components/layout-tabs.d.ts +7 -2
  162. package/lib/ele-admin-layout/index.cjs +23 -18
  163. package/lib/ele-alert/index.cjs +6 -7
  164. package/lib/ele-app/el.d.ts +3 -1
  165. package/lib/ele-app/plus.d.ts +12 -41
  166. package/lib/ele-app/plusx.d.ts +40 -0
  167. package/lib/ele-app/style/overwrite/date-picker/index.scss +1 -1
  168. package/lib/ele-autocomplete/index.d.ts +265 -47
  169. package/lib/ele-autocomplete/props.d.ts +124 -22
  170. package/lib/ele-avatar-group/types.d.ts +1 -1
  171. package/lib/ele-backtop/index.cjs +6 -7
  172. package/lib/ele-basic-select/components/select-view.cjs +271 -0
  173. package/lib/ele-basic-select/components/select-view.d.ts +129 -0
  174. package/lib/ele-basic-select/index.cjs +107 -246
  175. package/lib/ele-basic-select/index.d.ts +13 -23
  176. package/lib/ele-basic-select/props.cjs +7 -1
  177. package/lib/ele-basic-select/props.d.ts +8 -2
  178. package/lib/ele-basic-select/types.d.ts +21 -0
  179. package/lib/ele-basic-select/util.cjs +6 -1
  180. package/lib/ele-bottom-bar/index.cjs +5 -5
  181. package/lib/ele-breadcrumb/types.d.ts +1 -1
  182. package/lib/ele-cascader/index.d.ts +17 -19
  183. package/lib/ele-cascader/props.d.ts +4 -5
  184. package/lib/ele-check-card/types.d.ts +1 -1
  185. package/lib/ele-checkbox-group/index.d.ts +1 -1
  186. package/lib/ele-config-provider/components/receiver-view.cjs +2 -2
  187. package/lib/ele-config-provider/receiver.cjs +10 -1
  188. package/lib/ele-config-provider/receiver.d.ts +2 -0
  189. package/lib/ele-cropper/index.d.ts +1 -3
  190. package/lib/ele-cropper-modal/index.d.ts +1 -1
  191. package/lib/ele-crud/components/page-side.cjs +1 -4
  192. package/lib/ele-crud/types.d.ts +1 -1
  193. package/lib/ele-crud/util.d.ts +1 -1
  194. package/lib/ele-crud-builder/components/body-header.d.ts +1 -1
  195. package/lib/ele-crud-builder/components/code-generator.d.ts +1 -1
  196. package/lib/ele-crud-builder/components/code-preview.d.ts +1 -1
  197. package/lib/ele-crud-builder/components/form-design-modal.d.ts +1 -1
  198. package/lib/ele-crud-builder/components/import-modal.d.ts +1 -1
  199. package/lib/ele-crud-builder/components/page-config.d.ts +1 -1
  200. package/lib/ele-crud-builder/components/template-list.d.ts +1 -1
  201. package/lib/ele-crud-builder/index.cjs +1 -1
  202. package/lib/ele-crud-builder/index.d.ts +3 -3
  203. package/lib/ele-crud-builder/props.d.ts +2 -1
  204. package/lib/ele-crud-builder/types.d.ts +1 -1
  205. package/lib/ele-crud-builder/util.cjs +2 -2
  206. package/lib/ele-data-table/index.cjs +6 -3
  207. package/lib/ele-data-table/index.d.ts +38 -44
  208. package/lib/ele-data-table/props.d.ts +39 -45
  209. package/lib/ele-drawer/index.cjs +14 -13
  210. package/lib/ele-drawer/index.d.ts +2 -2
  211. package/lib/ele-drawer/props.cjs +4 -0
  212. package/lib/ele-drawer/props.d.ts +6 -0
  213. package/lib/ele-dropdown/components/pro-dropdown.d.ts +28 -28
  214. package/lib/ele-dropdown/index.d.ts +30 -30
  215. package/lib/ele-dropdown/props.d.ts +12 -12
  216. package/lib/ele-dropdown/types.d.ts +1 -1
  217. package/lib/ele-edit-tag/index.d.ts +1 -1
  218. package/lib/ele-ellipsis/props.d.ts +1 -1
  219. package/lib/ele-file-list/components/file-grid.d.ts +1 -1
  220. package/lib/ele-file-list/components/file-table.d.ts +1 -1
  221. package/lib/ele-file-list/icons.cjs +10 -1
  222. package/lib/ele-file-list/types.d.ts +1 -1
  223. package/lib/ele-icon-select/index.cjs +3 -1
  224. package/lib/ele-icon-select/index.d.ts +5 -1
  225. package/lib/ele-icon-select/props.cjs +4 -0
  226. package/lib/ele-icon-select/props.d.ts +7 -2
  227. package/lib/ele-image-viewer/index.cjs +12 -14
  228. package/lib/ele-image-viewer/index.d.ts +2 -16
  229. package/lib/ele-image-viewer/props.d.ts +1 -8
  230. package/lib/ele-loading/index.cjs +5 -5
  231. package/lib/ele-map-picker/index.d.ts +2 -4
  232. package/lib/ele-mention/index.d.ts +29 -8
  233. package/lib/ele-mention/props.d.ts +9 -0
  234. package/lib/ele-menus/types.d.ts +2 -0
  235. package/lib/ele-menus/util.cjs +1 -1
  236. package/lib/ele-modal/index.cjs +35 -34
  237. package/lib/ele-modal/index.d.ts +4 -4
  238. package/lib/ele-popconfirm/index.cjs +5 -20
  239. package/lib/ele-popconfirm/index.d.ts +95 -96
  240. package/lib/ele-popconfirm/props.d.ts +32 -32
  241. package/lib/ele-popover/index.d.ts +72 -72
  242. package/lib/ele-printer/index.cjs +6 -6
  243. package/lib/ele-printer/index.d.ts +2 -2
  244. package/lib/ele-pro-form/components/render-util.d.ts +2 -2
  245. package/lib/ele-pro-form/index.d.ts +7 -2
  246. package/lib/ele-pro-form/props.d.ts +3 -1
  247. package/lib/ele-pro-form-builder/components/body-form.d.ts +1 -1
  248. package/lib/ele-pro-form-builder/components/body-header.d.ts +1 -1
  249. package/lib/ele-pro-form-builder/components/code-generator.d.ts +1 -1
  250. package/lib/ele-pro-form-builder/components/code-preview.d.ts +1 -1
  251. package/lib/ele-pro-form-builder/components/config-form.d.ts +1 -1
  252. package/lib/ele-pro-form-builder/components/import-modal.d.ts +1 -1
  253. package/lib/ele-pro-form-builder/components/preview-modal.d.ts +1 -1
  254. package/lib/ele-pro-form-builder/components/props-form.d.ts +1 -1
  255. package/lib/ele-pro-form-builder/components/table-util.cjs +3 -0
  256. package/lib/ele-pro-form-builder/components/template-list.d.ts +1 -1
  257. package/lib/ele-pro-form-builder/index.d.ts +1 -1
  258. package/lib/ele-pro-form-builder/props.d.ts +2 -1
  259. package/lib/ele-pro-form-builder/types.d.ts +1 -1
  260. package/lib/ele-pro-layout/index.d.ts +29 -29
  261. package/lib/ele-pro-layout/props.d.ts +12 -12
  262. package/lib/ele-pro-layout/style/index.scss +0 -2
  263. package/lib/ele-pro-layout/types.d.ts +2 -0
  264. package/lib/ele-pro-table/components/table-tools.d.ts +1 -1
  265. package/lib/ele-pro-table/components/tool-export.d.ts +2 -2
  266. package/lib/ele-pro-table/components/tool-print.d.ts +1 -1
  267. package/lib/ele-pro-table/index.cjs +10 -15
  268. package/lib/ele-pro-table/index.d.ts +40 -46
  269. package/lib/ele-pro-table/props.d.ts +18 -21
  270. package/lib/ele-pro-table/style/css-var.scss +4 -0
  271. package/lib/ele-pro-table/style/index.scss +2 -2
  272. package/lib/ele-radio-group/index.d.ts +2 -2
  273. package/lib/ele-segmented/index.d.ts +2 -2
  274. package/lib/ele-segmented/props.d.ts +1 -1
  275. package/lib/ele-segmented/style/index.scss +1 -0
  276. package/lib/ele-select/index.d.ts +12 -12
  277. package/lib/ele-select/props.cjs +1 -1
  278. package/lib/ele-select/props.d.ts +2 -2
  279. package/lib/ele-select-tree/index.d.ts +10 -10
  280. package/lib/ele-select-tree/props.cjs +1 -1
  281. package/lib/ele-select-tree/props.d.ts +2 -2
  282. package/lib/ele-steps/types.d.ts +1 -1
  283. package/lib/ele-tab-bar/index.cjs +1 -0
  284. package/lib/ele-tab-bar/index.d.ts +4 -2
  285. package/lib/ele-tab-bar/props.cjs +4 -2
  286. package/lib/ele-tab-bar/props.d.ts +3 -1
  287. package/lib/ele-tab-bar/style/index.scss +1 -0
  288. package/lib/ele-table-select/props.cjs +1 -1
  289. package/lib/ele-table-select/props.d.ts +2 -2
  290. package/lib/ele-tabs/index.d.ts +16 -12
  291. package/lib/ele-tabs/style/index.scss +1 -0
  292. package/lib/ele-tabs/types.d.ts +1 -1
  293. package/lib/ele-timeline/types.d.ts +3 -3
  294. package/lib/ele-tooltip/index.d.ts +53 -53
  295. package/lib/ele-tour/index.cjs +6 -6
  296. package/lib/ele-transfer/index.d.ts +1 -1
  297. package/lib/ele-tree-select/index.d.ts +2 -2
  298. package/lib/ele-tree-select/props.d.ts +1 -1
  299. package/lib/ele-upload-list/components/list-item.cjs +1 -0
  300. package/lib/ele-upload-list/components/list-item.d.ts +3 -0
  301. package/lib/ele-upload-list/types.d.ts +1 -1
  302. package/lib/ele-virtual-table/index.d.ts +38 -44
  303. package/lib/ele-virtual-table/props.d.ts +19 -22
  304. package/lib/ele-watermark/index.cjs +7 -4
  305. package/lib/ele-watermark/util.cjs +12 -3
  306. package/lib/ele-watermark/util.d.ts +2 -0
  307. package/lib/style/themes/default.scss +6 -0
  308. package/lib/style/themes/rounded.scss +3 -0
  309. package/lib/style/themes/transparent.scss +3 -0
  310. package/lib/utils/common.cjs +10 -0
  311. package/lib/utils/common.d.ts +10 -0
  312. package/lib/utils/core.cjs +10 -1
  313. package/lib/utils/core.d.ts +6 -0
  314. package/lib/utils/menu-util.cjs +1 -0
  315. package/package.json +3 -2
@@ -5,7 +5,7 @@ const index = require("../icons/index");
5
5
  const common = require("../utils/common");
6
6
  const props = require("./props");
7
7
  const _sfc_main = /* @__PURE__ */ vue.defineComponent({
8
- ...{ name: "EleBacktop" },
8
+ ...{ name: "EleBacktop", inheritAttrs: false },
9
9
  __name: "index",
10
10
  props: props.backtopProps,
11
11
  emits: props.backtopEmits,
@@ -68,15 +68,14 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
68
68
  return (_ctx, _cache) => {
69
69
  return vue.openBlock(), vue.createBlock(vue.Transition, { name: _ctx.transitionName }, {
70
70
  default: vue.withCtx(() => [
71
- visible.value ? (vue.openBlock(), vue.createElementBlock("div", {
72
- key: 0,
71
+ visible.value ? (vue.openBlock(), vue.createElementBlock("div", vue.mergeProps({ key: 0 }, _ctx.$attrs, {
73
72
  class: "ele-backtop",
74
- style: vue.normalizeStyle({
73
+ style: {
75
74
  bottom: typeof _ctx.bottom === "number" ? `${_ctx.bottom}px` : _ctx.bottom,
76
75
  right: typeof _ctx.right === "number" ? `${_ctx.right}px` : _ctx.right
77
- }),
76
+ },
78
77
  onClick: handleClick
79
- }, [
78
+ }), [
80
79
  vue.renderSlot(_ctx.$slots, "default", {}, () => [
81
80
  vue.createVNode(vue.unref(elementPlus.ElIcon), null, {
82
81
  default: vue.withCtx(() => [
@@ -85,7 +84,7 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
85
84
  _: 1
86
85
  })
87
86
  ])
88
- ], 4)) : vue.createCommentVNode("", true)
87
+ ], 16)) : vue.createCommentVNode("", true)
89
88
  ]),
90
89
  _: 3
91
90
  }, 8, ["name"]);
@@ -0,0 +1,271 @@
1
+ "use strict";
2
+ const vue = require("vue");
3
+ const elementPlus = require("element-plus");
4
+ const index = require("../../icons/index");
5
+ const props = require("../props");
6
+ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
7
+ ...{ name: "SelectView" },
8
+ __name: "select-view",
9
+ props: props.basicSelectProps,
10
+ emits: {
11
+ ...props.basicSelectEmits,
12
+ /** 输入框点击事件 */
13
+ inputClick: (_e) => true
14
+ },
15
+ setup(__props, { expose: __expose, emit: __emit }) {
16
+ const props2 = __props;
17
+ const emit = __emit;
18
+ const inputRef = vue.ref(null);
19
+ const searchRef = vue.ref(null);
20
+ const inputValue = vue.ref(
21
+ props2.multiple || !props2.selectedLabel ? "" : props2.selectedLabel
22
+ );
23
+ const searchValue = vue.ref("");
24
+ const isEmpty = vue.computed(() => {
25
+ if (!props2.multiple) {
26
+ return props2.value == null || props2.value === "";
27
+ }
28
+ return !Array.isArray(props2.value) || !props2.value.length;
29
+ });
30
+ const inputPlaceholder = vue.computed(() => {
31
+ const str = isEmpty.value && props2.placeholder ? props2.placeholder : "";
32
+ if (!props2.filterable || !props2.visible || props2.multiple) {
33
+ return str;
34
+ }
35
+ return props2.selectedLabel || str;
36
+ });
37
+ const isCollapse = vue.computed(() => {
38
+ return typeof props2.maxTagCount === "number" && props2.selected != null && props2.selected.length > props2.maxTagCount;
39
+ });
40
+ const currentTags = vue.computed(() => {
41
+ if (!isCollapse.value || isEmpty.value || props2.selected == null) {
42
+ return props2.selected || [];
43
+ }
44
+ return props2.selected.slice(0, props2.maxTagCount);
45
+ });
46
+ const omittedTags = vue.computed(() => {
47
+ if (!isCollapse.value || isEmpty.value || props2.selected == null) {
48
+ return [];
49
+ }
50
+ return props2.selected.slice(props2.maxTagCount);
51
+ });
52
+ const omittedSize = vue.computed(() => {
53
+ if (isEmpty.value || props2.maxTagCount == null || props2.maxTagCount < 0) {
54
+ return 0;
55
+ }
56
+ return props2.value.length - props2.maxTagCount;
57
+ });
58
+ const focusSearchInput = () => {
59
+ const input = props2.multiple ? searchRef.value : inputRef.value;
60
+ input && input.focus();
61
+ vue.nextTick(() => {
62
+ input && input.focus();
63
+ });
64
+ };
65
+ const updateSearchValue = (modelValue) => {
66
+ if (props2.filterable && props2.visible && props2.multiple) {
67
+ searchValue.value = modelValue;
68
+ emit("filterChange", modelValue);
69
+ }
70
+ };
71
+ const updateInputValue = (modelValue) => {
72
+ if (props2.filterable && props2.visible && !props2.multiple) {
73
+ inputValue.value = modelValue;
74
+ emit("filterChange", modelValue);
75
+ }
76
+ };
77
+ const updateVisible = (visible) => {
78
+ emit("update:visible", visible);
79
+ };
80
+ const handleTagClose = (item) => {
81
+ if (!props2.disabled) {
82
+ emit("removeTag", item);
83
+ }
84
+ };
85
+ const handleClear = () => {
86
+ emit("clear");
87
+ };
88
+ const handleInputClick = (e) => {
89
+ emit("inputClick", e);
90
+ };
91
+ const handleInputFocus = (e) => {
92
+ if (props2.automaticDropdown && !props2.visible) {
93
+ updateVisible(true);
94
+ }
95
+ emit("focus", e);
96
+ };
97
+ const handleInputBlur = (e) => {
98
+ emit("blur", e);
99
+ };
100
+ const handleInputEsc = (e) => {
101
+ if (!props2.disabled && props2.visible) {
102
+ e.stopPropagation();
103
+ e.preventDefault();
104
+ updateVisible(false);
105
+ }
106
+ };
107
+ vue.watch(
108
+ () => props2.selectedLabel,
109
+ (label) => {
110
+ if (!props2.filterable || !props2.visible) {
111
+ inputValue.value = props2.multiple || !label ? "" : label;
112
+ }
113
+ }
114
+ );
115
+ vue.watch(
116
+ () => props2.visible,
117
+ (visible) => {
118
+ if (props2.filterable) {
119
+ if (props2.multiple) {
120
+ searchValue.value = "";
121
+ if (visible) {
122
+ focusSearchInput();
123
+ }
124
+ } else {
125
+ const label = props2.selectedLabel;
126
+ inputValue.value = visible || !label ? "" : label;
127
+ }
128
+ }
129
+ }
130
+ );
131
+ __expose({
132
+ inputRef,
133
+ searchRef,
134
+ currentTags,
135
+ omittedTags,
136
+ omittedSize,
137
+ focusSearchInput,
138
+ updateSearchValue,
139
+ updateInputValue
140
+ });
141
+ return (_ctx, _cache) => {
142
+ return vue.openBlock(), vue.createElementBlock("div", {
143
+ class: vue.normalizeClass([
144
+ "ele-select",
145
+ _ctx.selectClass,
146
+ { "is-empty": isEmpty.value },
147
+ { "is-multiple": _ctx.multiple },
148
+ { "is-disabled": _ctx.disabled },
149
+ { "is-filterable": _ctx.filterable },
150
+ { "is-small": _ctx.size === "small" },
151
+ { "is-large": _ctx.size === "large" },
152
+ { "is-opened": _ctx.visible }
153
+ ]),
154
+ style: vue.normalizeStyle(_ctx.selectStyle)
155
+ }, [
156
+ vue.createVNode(vue.unref(elementPlus.ElInput), {
157
+ ref_key: "inputRef",
158
+ ref: inputRef,
159
+ size: _ctx.size,
160
+ disabled: _ctx.disabled,
161
+ validateEvent: false,
162
+ modelValue: inputValue.value,
163
+ placeholder: _ctx.filterable && _ctx.multiple && _ctx.visible ? "" : inputPlaceholder.value,
164
+ readonly: !(_ctx.filterable && !_ctx.multiple),
165
+ style: vue.normalizeStyle(_ctx.inputStyle),
166
+ "onUpdate:modelValue": updateInputValue,
167
+ onClick: handleInputClick,
168
+ onFocus: handleInputFocus,
169
+ onBlur: handleInputBlur,
170
+ onKeydown: vue.withKeys(handleInputEsc, ["esc"])
171
+ }, vue.createSlots({
172
+ suffix: vue.withCtx(() => [
173
+ _ctx.clearable && !_ctx.disabled && !isEmpty.value ? (vue.openBlock(), vue.createBlock(vue.unref(elementPlus.ElIcon), {
174
+ key: 0,
175
+ class: "ele-select-clear el-input__icon",
176
+ onClick: vue.withModifiers(handleClear, ["stop"])
177
+ }, {
178
+ default: vue.withCtx(() => [
179
+ vue.renderSlot(_ctx.$slots, "clearIcon", {}, () => [
180
+ vue.createVNode(vue.unref(index.CloseCircleFilled))
181
+ ])
182
+ ]),
183
+ _: 3
184
+ })) : vue.createCommentVNode("", true),
185
+ vue.createVNode(vue.unref(elementPlus.ElIcon), { class: "ele-select-arrow el-input__icon" }, {
186
+ default: vue.withCtx(() => [
187
+ vue.renderSlot(_ctx.$slots, "suffixIcon", { visible: _ctx.visible }, () => [
188
+ vue.createVNode(vue.unref(index.ArrowDown))
189
+ ])
190
+ ]),
191
+ _: 3
192
+ })
193
+ ]),
194
+ _: 2
195
+ }, [
196
+ _ctx.$slots.prefix ? {
197
+ name: "prefix",
198
+ fn: vue.withCtx(() => [
199
+ vue.renderSlot(_ctx.$slots, "prefix")
200
+ ]),
201
+ key: "0"
202
+ } : void 0
203
+ ]), 1032, ["size", "disabled", "modelValue", "placeholder", "readonly", "style"]),
204
+ _ctx.multiple ? (vue.openBlock(), vue.createElementBlock("div", {
205
+ key: 0,
206
+ class: "ele-select-tags",
207
+ style: vue.normalizeStyle(_ctx.selectTagsStyle)
208
+ }, [
209
+ (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(currentTags.value, (item, index2) => {
210
+ return vue.openBlock(), vue.createBlock(vue.unref(elementPlus.ElTag), {
211
+ key: index2 + "-" + item.value,
212
+ size: _ctx.size,
213
+ type: _ctx.tagType,
214
+ closable: !_ctx.disabled,
215
+ disableTransitions: true,
216
+ title: item.label,
217
+ onClose: ($event) => handleTagClose(item)
218
+ }, {
219
+ default: vue.withCtx(() => [
220
+ item.label && _ctx.maxTagTextLength && item.label.length > _ctx.maxTagTextLength ? (vue.openBlock(), vue.createElementBlock(vue.Fragment, { key: 0 }, [
221
+ vue.createTextVNode(vue.toDisplayString(item.label.slice(0, _ctx.maxTagTextLength)) + "... ", 1)
222
+ ], 64)) : (vue.openBlock(), vue.createElementBlock(vue.Fragment, { key: 1 }, [
223
+ vue.createTextVNode(vue.toDisplayString(item.label), 1)
224
+ ], 64))
225
+ ]),
226
+ _: 2
227
+ }, 1032, ["size", "type", "closable", "title", "onClose"]);
228
+ }), 128)),
229
+ isCollapse.value ? (vue.openBlock(), vue.createBlock(vue.unref(elementPlus.ElTag), {
230
+ key: 0,
231
+ size: _ctx.size,
232
+ type: _ctx.tagType,
233
+ disableTransitions: true
234
+ }, {
235
+ default: vue.withCtx(() => [
236
+ vue.renderSlot(_ctx.$slots, "maxTagPlaceholder", {
237
+ omittedValues: omittedTags.value,
238
+ omittedSize: omittedSize.value
239
+ }, () => [
240
+ vue.createTextVNode(" +" + vue.toDisplayString(omittedSize.value), 1)
241
+ ])
242
+ ]),
243
+ _: 3
244
+ }, 8, ["size", "type"])) : vue.createCommentVNode("", true),
245
+ !_ctx.disabled && _ctx.filterable ? (vue.openBlock(), vue.createBlock(vue.unref(elementPlus.ElTag), {
246
+ key: 1,
247
+ size: _ctx.size,
248
+ disableTransitions: true,
249
+ class: "ele-select-search"
250
+ }, {
251
+ default: vue.withCtx(() => [
252
+ vue.createVNode(vue.unref(elementPlus.ElInput), {
253
+ ref_key: "searchRef",
254
+ ref: searchRef,
255
+ size: _ctx.size,
256
+ validateEvent: false,
257
+ modelValue: searchValue.value,
258
+ placeholder: inputPlaceholder.value,
259
+ "onUpdate:modelValue": updateSearchValue,
260
+ onKeydown: vue.withKeys(handleInputEsc, ["esc"])
261
+ }, null, 8, ["size", "modelValue", "placeholder"])
262
+ ]),
263
+ _: 1
264
+ }, 8, ["size"])) : vue.createCommentVNode("", true)
265
+ ], 4)) : vue.createCommentVNode("", true),
266
+ vue.renderSlot(_ctx.$slots, "default")
267
+ ], 6);
268
+ };
269
+ }
270
+ });
271
+ module.exports = _sfc_main;
@@ -0,0 +1,129 @@
1
+ import { ElInputInstance } from '../../ele-app/el';
2
+ import { SelectedItem } from '../types';
3
+
4
+ declare function __VLS_template(): {
5
+ prefix?(_: {}): any;
6
+ clearIcon?(_: {}): any;
7
+ suffixIcon?(_: {
8
+ visible: boolean;
9
+ }): any;
10
+ maxTagPlaceholder?(_: {
11
+ omittedValues: SelectedItem[];
12
+ omittedSize: number;
13
+ }): any;
14
+ default?(_: {}): any;
15
+ };
16
+ declare const __VLS_component: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
17
+ value: {
18
+ type: import('vue').PropType<import('../types').SelectValue>;
19
+ default: () => null;
20
+ };
21
+ multiple: BooleanConstructor;
22
+ disabled: BooleanConstructor;
23
+ size: import('vue').PropType<import('../../ele-app/el').ElInputProps["size"]>;
24
+ clearable: BooleanConstructor;
25
+ placeholder: StringConstructor;
26
+ selectedLabel: StringConstructor;
27
+ selected: import('vue').PropType<SelectedItem[]>;
28
+ maxTagCount: NumberConstructor;
29
+ maxTagTextLength: NumberConstructor;
30
+ tagType: import('vue').PropType<import('../../ele-app/el').ElTagProps["type"]>;
31
+ automaticDropdown: BooleanConstructor;
32
+ filterable: BooleanConstructor;
33
+ visible: BooleanConstructor;
34
+ teleported: BooleanConstructor;
35
+ persistent: BooleanConstructor;
36
+ placement: import('vue').PropType<import('../../ele-app/plus').EleTooltipProps["placement"]>;
37
+ transition: {
38
+ type: StringConstructor;
39
+ default: string;
40
+ };
41
+ popperOptions: import('vue').PropType<import('../../ele-app/plus').EleTooltipProps["popperOptions"]>;
42
+ popperClass: StringConstructor;
43
+ popperWidth: (StringConstructor | NumberConstructor)[];
44
+ selectClass: StringConstructor;
45
+ selectStyle: import('vue').PropType<import('../../ele-app/types').StyleValue>;
46
+ inputStyle: import('vue').PropType<import('../../ele-app/types').StyleValue>;
47
+ selectTagsStyle: import('vue').PropType<import('../../ele-app/types').StyleValue>;
48
+ popperType: import('vue').PropType<import('../types').PopperType>;
49
+ popperProps: import('vue').PropType<import('../types').PopperProps>;
50
+ popperSlots: ObjectConstructor;
51
+ }>, {
52
+ inputRef: import('vue').Ref<ElInputInstance, ElInputInstance>;
53
+ searchRef: import('vue').Ref<ElInputInstance, ElInputInstance>;
54
+ currentTags: import('vue').ComputedRef<SelectedItem[]>;
55
+ omittedTags: import('vue').ComputedRef<SelectedItem[]>;
56
+ omittedSize: import('vue').ComputedRef<number>;
57
+ focusSearchInput: () => void;
58
+ updateSearchValue: (modelValue: string) => void;
59
+ updateInputValue: (modelValue: string) => void;
60
+ }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
61
+ clear: () => void;
62
+ focus: (_e: FocusEvent) => void;
63
+ blur: (_e: FocusEvent) => void;
64
+ "update:visible": (_visible: boolean) => void;
65
+ filterChange: (_value: string) => void;
66
+ removeTag: (_item: SelectedItem) => void;
67
+ inputClick: (_e: MouseEvent) => void;
68
+ }, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
69
+ value: {
70
+ type: import('vue').PropType<import('../types').SelectValue>;
71
+ default: () => null;
72
+ };
73
+ multiple: BooleanConstructor;
74
+ disabled: BooleanConstructor;
75
+ size: import('vue').PropType<import('../../ele-app/el').ElInputProps["size"]>;
76
+ clearable: BooleanConstructor;
77
+ placeholder: StringConstructor;
78
+ selectedLabel: StringConstructor;
79
+ selected: import('vue').PropType<SelectedItem[]>;
80
+ maxTagCount: NumberConstructor;
81
+ maxTagTextLength: NumberConstructor;
82
+ tagType: import('vue').PropType<import('../../ele-app/el').ElTagProps["type"]>;
83
+ automaticDropdown: BooleanConstructor;
84
+ filterable: BooleanConstructor;
85
+ visible: BooleanConstructor;
86
+ teleported: BooleanConstructor;
87
+ persistent: BooleanConstructor;
88
+ placement: import('vue').PropType<import('../../ele-app/plus').EleTooltipProps["placement"]>;
89
+ transition: {
90
+ type: StringConstructor;
91
+ default: string;
92
+ };
93
+ popperOptions: import('vue').PropType<import('../../ele-app/plus').EleTooltipProps["popperOptions"]>;
94
+ popperClass: StringConstructor;
95
+ popperWidth: (StringConstructor | NumberConstructor)[];
96
+ selectClass: StringConstructor;
97
+ selectStyle: import('vue').PropType<import('../../ele-app/types').StyleValue>;
98
+ inputStyle: import('vue').PropType<import('../../ele-app/types').StyleValue>;
99
+ selectTagsStyle: import('vue').PropType<import('../../ele-app/types').StyleValue>;
100
+ popperType: import('vue').PropType<import('../types').PopperType>;
101
+ popperProps: import('vue').PropType<import('../types').PopperProps>;
102
+ popperSlots: ObjectConstructor;
103
+ }>> & Readonly<{
104
+ onClear?: (() => any) | undefined;
105
+ onFocus?: ((_e: FocusEvent) => any) | undefined;
106
+ onBlur?: ((_e: FocusEvent) => any) | undefined;
107
+ "onUpdate:visible"?: ((_visible: boolean) => any) | undefined;
108
+ onFilterChange?: ((_value: string) => any) | undefined;
109
+ onRemoveTag?: ((_item: SelectedItem) => any) | undefined;
110
+ onInputClick?: ((_e: MouseEvent) => any) | undefined;
111
+ }>, {
112
+ value: import('../types').SelectValue;
113
+ teleported: boolean;
114
+ disabled: boolean;
115
+ clearable: boolean;
116
+ filterable: boolean;
117
+ persistent: boolean;
118
+ visible: boolean;
119
+ transition: string;
120
+ automaticDropdown: boolean;
121
+ multiple: boolean;
122
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
123
+ declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, ReturnType<typeof __VLS_template>>;
124
+ export default _default;
125
+ type __VLS_WithTemplateSlots<T, S> = T & {
126
+ new (): {
127
+ $slots: S;
128
+ };
129
+ };