el-plus 0.0.111 → 0.0.113

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 (34) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/dist/index.full.js +37 -22
  3. package/dist/index.full.min.js +4 -4
  4. package/dist/index.full.min.js.map +1 -1
  5. package/dist/index.full.min.mjs +4 -4
  6. package/dist/index.full.min.mjs.map +1 -1
  7. package/dist/index.full.mjs +37 -22
  8. package/es/components/date-picker-range/src/date-picker-range.vue2.mjs +4 -0
  9. package/es/components/date-picker-range/src/date-picker-range.vue2.mjs.map +1 -1
  10. package/es/components/select/index.d.ts +15 -14
  11. package/es/components/select/src/select.d.ts +4 -0
  12. package/es/components/select/src/select.mjs +5 -0
  13. package/es/components/select/src/select.mjs.map +1 -1
  14. package/es/components/select/src/select.vue.d.ts +9 -8
  15. package/es/components/select/src/select.vue2.mjs +4 -7
  16. package/es/components/select/src/select.vue2.mjs.map +1 -1
  17. package/es/components/select/src/use-select.d.ts +2 -2
  18. package/es/components/select/src/use-select.mjs +22 -13
  19. package/es/components/select/src/use-select.mjs.map +1 -1
  20. package/es/package.json.mjs +1 -1
  21. package/lib/components/date-picker-range/src/date-picker-range.vue2.js +4 -0
  22. package/lib/components/date-picker-range/src/date-picker-range.vue2.js.map +1 -1
  23. package/lib/components/select/index.d.ts +15 -14
  24. package/lib/components/select/src/select.d.ts +4 -0
  25. package/lib/components/select/src/select.js +5 -0
  26. package/lib/components/select/src/select.js.map +1 -1
  27. package/lib/components/select/src/select.vue.d.ts +9 -8
  28. package/lib/components/select/src/select.vue2.js +4 -7
  29. package/lib/components/select/src/select.vue2.js.map +1 -1
  30. package/lib/components/select/src/use-select.d.ts +2 -2
  31. package/lib/components/select/src/use-select.js +22 -13
  32. package/lib/components/select/src/use-select.js.map +1 -1
  33. package/lib/package.json.js +1 -1
  34. package/package.json +1 -1
@@ -1,5 +1,9 @@
1
1
  export declare const EpSelect: {
2
2
  new (...args: any[]): import("vue").CreateComponentPublicInstanceWithMixins<Readonly<import("vue").ExtractPropTypes<{
3
+ desc: {
4
+ type: StringConstructor;
5
+ default: string;
6
+ };
3
7
  disabledOption: {
4
8
  type: import("vue").PropType<(item: import("./src/select").SelectOption) => boolean>;
5
9
  default: () => boolean;
@@ -147,9 +151,6 @@ export declare const EpSelect: {
147
151
  __epPropKey: true;
148
152
  };
149
153
  props: import("element-plus/es/utils/index.js").EpPropFinalized<(new (...args: any[]) => import("element-plus/es/components/select-v2/src/useProps.js").Props) | (() => import("element-plus/es/components/select-v2/src/useProps.js").Props) | ((new (...args: any[]) => import("element-plus/es/components/select-v2/src/useProps.js").Props) | (() => import("element-plus/es/components/select-v2/src/useProps.js").Props))[], unknown, unknown, () => Required<import("element-plus/es/components/select-v2/src/useProps.js").Props>, boolean>;
150
- desc: {
151
- type: import("vue").PropType<string>;
152
- };
153
154
  }>> & Readonly<{
154
155
  onClear?: (() => any) | undefined;
155
156
  onBlur?: ((evt: FocusEvent) => any) | undefined;
@@ -162,7 +163,6 @@ export declare const EpSelect: {
162
163
  }) => any) | undefined;
163
164
  "onRemove-tag"?: ((val: unknown) => any) | undefined;
164
165
  "onVisible-change"?: ((visible: boolean) => any) | undefined;
165
- "onUpdate:desc"?: ((value: string | undefined) => any) | undefined;
166
166
  }>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
167
167
  clear: () => void;
168
168
  blur: (evt: FocusEvent) => void;
@@ -175,8 +175,8 @@ export declare const EpSelect: {
175
175
  }) => void;
176
176
  "remove-tag": (val: unknown) => void;
177
177
  "visible-change": (visible: boolean) => void;
178
- "update:desc": (value: string | undefined) => void;
179
178
  }, import("vue").PublicProps, {
179
+ desc: string;
180
180
  loading: boolean;
181
181
  offset: number;
182
182
  placement: import("element-plus/es/utils/index.js").EpPropMergeType<(new (...args: any[]) => "left" | "right" | "top" | "bottom" | "auto" | "auto-start" | "auto-end" | "top-start" | "top-end" | "bottom-start" | "bottom-end" | "right-start" | "right-end" | "left-start" | "left-end") | (() => import("element-plus").Placement) | ((new (...args: any[]) => "left" | "right" | "top" | "bottom" | "auto" | "auto-start" | "auto-end" | "top-start" | "top-end" | "bottom-start" | "bottom-end" | "right-start" | "right-end" | "left-start" | "left-end") | (() => import("element-plus").Placement))[], import("element-plus").Placement, unknown>;
@@ -223,6 +223,10 @@ export declare const EpSelect: {
223
223
  M: {};
224
224
  Defaults: {};
225
225
  }, Readonly<import("vue").ExtractPropTypes<{
226
+ desc: {
227
+ type: StringConstructor;
228
+ default: string;
229
+ };
226
230
  disabledOption: {
227
231
  type: import("vue").PropType<(item: import("./src/select").SelectOption) => boolean>;
228
232
  default: () => boolean;
@@ -370,9 +374,6 @@ export declare const EpSelect: {
370
374
  __epPropKey: true;
371
375
  };
372
376
  props: import("element-plus/es/utils/index.js").EpPropFinalized<(new (...args: any[]) => import("element-plus/es/components/select-v2/src/useProps.js").Props) | (() => import("element-plus/es/components/select-v2/src/useProps.js").Props) | ((new (...args: any[]) => import("element-plus/es/components/select-v2/src/useProps.js").Props) | (() => import("element-plus/es/components/select-v2/src/useProps.js").Props))[], unknown, unknown, () => Required<import("element-plus/es/components/select-v2/src/useProps.js").Props>, boolean>;
373
- desc: {
374
- type: import("vue").PropType<string>;
375
- };
376
377
  }>> & Readonly<{
377
378
  onClear?: (() => any) | undefined;
378
379
  onBlur?: ((evt: FocusEvent) => any) | undefined;
@@ -385,8 +386,8 @@ export declare const EpSelect: {
385
386
  }) => any) | undefined;
386
387
  "onRemove-tag"?: ((val: unknown) => any) | undefined;
387
388
  "onVisible-change"?: ((visible: boolean) => any) | undefined;
388
- "onUpdate:desc"?: ((value: string | undefined) => any) | undefined;
389
389
  }>, {}, {}, {}, {}, {
390
+ desc: string;
390
391
  loading: boolean;
391
392
  offset: number;
392
393
  placement: import("element-plus/es/utils/index.js").EpPropMergeType<(new (...args: any[]) => "left" | "right" | "top" | "bottom" | "auto" | "auto-start" | "auto-end" | "top-start" | "top-end" | "bottom-start" | "bottom-end" | "right-start" | "right-end" | "left-start" | "left-end") | (() => import("element-plus").Placement) | ((new (...args: any[]) => "left" | "right" | "top" | "bottom" | "auto" | "auto-start" | "auto-end" | "top-start" | "top-end" | "bottom-start" | "bottom-end" | "right-start" | "right-end" | "left-start" | "left-end") | (() => import("element-plus").Placement))[], import("element-plus").Placement, unknown>;
@@ -430,6 +431,10 @@ export declare const EpSelect: {
430
431
  __isTeleport?: never;
431
432
  __isSuspense?: never;
432
433
  } & import("vue").ComponentOptionsBase<Readonly<import("vue").ExtractPropTypes<{
434
+ desc: {
435
+ type: StringConstructor;
436
+ default: string;
437
+ };
433
438
  disabledOption: {
434
439
  type: import("vue").PropType<(item: import("./src/select").SelectOption) => boolean>;
435
440
  default: () => boolean;
@@ -577,9 +582,6 @@ export declare const EpSelect: {
577
582
  __epPropKey: true;
578
583
  };
579
584
  props: import("element-plus/es/utils/index.js").EpPropFinalized<(new (...args: any[]) => import("element-plus/es/components/select-v2/src/useProps.js").Props) | (() => import("element-plus/es/components/select-v2/src/useProps.js").Props) | ((new (...args: any[]) => import("element-plus/es/components/select-v2/src/useProps.js").Props) | (() => import("element-plus/es/components/select-v2/src/useProps.js").Props))[], unknown, unknown, () => Required<import("element-plus/es/components/select-v2/src/useProps.js").Props>, boolean>;
580
- desc: {
581
- type: import("vue").PropType<string>;
582
- };
583
585
  }>> & Readonly<{
584
586
  onClear?: (() => any) | undefined;
585
587
  onBlur?: ((evt: FocusEvent) => any) | undefined;
@@ -592,7 +594,6 @@ export declare const EpSelect: {
592
594
  }) => any) | undefined;
593
595
  "onRemove-tag"?: ((val: unknown) => any) | undefined;
594
596
  "onVisible-change"?: ((visible: boolean) => any) | undefined;
595
- "onUpdate:desc"?: ((value: string | undefined) => any) | undefined;
596
597
  }>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
597
598
  clear: () => void;
598
599
  blur: (evt: FocusEvent) => void;
@@ -605,8 +606,8 @@ export declare const EpSelect: {
605
606
  }) => void;
606
607
  "remove-tag": (val: unknown) => void;
607
608
  "visible-change": (visible: boolean) => void;
608
- "update:desc": (value: string | undefined) => void;
609
609
  }, string, {
610
+ desc: string;
610
611
  loading: boolean;
611
612
  offset: number;
612
613
  placement: import("element-plus/es/utils/index.js").EpPropMergeType<(new (...args: any[]) => "left" | "right" | "top" | "bottom" | "auto" | "auto-start" | "auto-end" | "top-start" | "top-end" | "bottom-start" | "bottom-end" | "right-start" | "right-end" | "left-start" | "left-end") | (() => import("element-plus").Placement) | ((new (...args: any[]) => "left" | "right" | "top" | "bottom" | "auto" | "auto-start" | "auto-end" | "top-start" | "top-end" | "bottom-start" | "bottom-end" | "right-start" | "right-end" | "left-start" | "left-end") | (() => import("element-plus").Placement))[], import("element-plus").Placement, unknown>;
@@ -115,6 +115,10 @@ export declare const inheritSelectProps: {
115
115
  readonly props: import("element-plus/es/utils").EpPropFinalized<(new (...args: any[]) => import("element-plus/es/components/select-v2/src/useProps").Props) | (() => import("element-plus/es/components/select-v2/src/useProps").Props) | ((new (...args: any[]) => import("element-plus/es/components/select-v2/src/useProps").Props) | (() => import("element-plus/es/components/select-v2/src/useProps").Props))[], unknown, unknown, () => Required<import("element-plus/es/components/select-v2/src/useProps").Props>, boolean>;
116
116
  };
117
117
  export declare const selectProps: {
118
+ readonly desc: {
119
+ type: StringConstructor;
120
+ default: string;
121
+ };
118
122
  readonly disabledOption: {
119
123
  type: PropType<(item: SelectOption) => boolean>;
120
124
  default: () => boolean;
@@ -12,6 +12,11 @@ const inheritSelectProps = {
12
12
  };
13
13
  const expandSelectProps = {
14
14
  ...props.apiProps,
15
+ // 回显文本:异步 value 到达时,用 desc 构造占位项(只读)
16
+ desc: {
17
+ type: String,
18
+ default: ""
19
+ },
15
20
  disabledOption: {
16
21
  type: Function,
17
22
  default: () => false
@@ -1 +1 @@
1
- {"version":3,"file":"select.js","sources":["../../../../../../packages/components/select/src/select.ts"],"sourcesContent":["import type { ExtractPropTypes, PropType, ExtractPublicPropTypes } from 'vue'\nimport {\n selectProps as elSelectProps,\n selectEmits as elSelectEmits,\n type SelectProps as ElSelectProps,\n} from 'element-plus'\nimport { apiProps } from '@el-plus/utils/props'\n\nexport type SelectOption = NonNullable<ElSelectProps['options']>[number]\nexport const inheritSelectProps = {\n ...elSelectProps,\n clearable: {\n ...elSelectProps.clearable,\n default: true,\n },\n} as const\nconst expandSelectProps = {\n ...apiProps,\n disabledOption: {\n type: Function as PropType<(item: SelectOption) => boolean>,\n default: () => false,\n },\n labelKey: {\n type: String,\n default: 'label',\n },\n valueKey: {\n type: String,\n default: 'value',\n },\n formatLabel: {\n type: Function as PropType<(item: SelectOption) => string>,\n },\n // api模式生效\n lazy: Boolean,\n // option是否同时展示code label, 默认值展示label, 传string展示指定字段\n codeInLabel: {\n type: [String, Boolean] as PropType<boolean | string>,\n },\n}\nexport const selectProps = {\n ...inheritSelectProps,\n ...expandSelectProps,\n} as const\nexport const expandSelectPropsKeys = Object.keys(expandSelectProps)\n\nexport type SelectProps = ExtractPropTypes<typeof selectProps>\nexport type SelectPropsPublic = ExtractPublicPropTypes<typeof selectProps>\n\n/* eslint-disable @typescript-eslint/no-unused-vars */\nexport const selectEmits = {\n ...elSelectEmits,\n change: (\n value: SelectProps['modelValue'],\n item?: SelectOption | SelectOption[],\n ) => true,\n}\n/* eslint-enable @typescript-eslint/no-unused-vars */\nexport type SelectEmits = typeof selectEmits\nexport const selectEmitsKeys = Object.keys(selectEmits)\n"],"names":["elSelectProps","apiProps","elSelectEmits"],"mappings":";;;;;AASO,MAAM,kBAAA,GAAqB;AAAA,EAChC,GAAGA,uBAAA;AAAA,EACH,SAAA,EAAW;AAAA,IACT,GAAGA,uBAAA,CAAc,SAAA;AAAA,IACjB,OAAA,EAAS;AAAA;AAEb;AACA,MAAM,iBAAA,GAAoB;AAAA,EACxB,GAAGC,cAAA;AAAA,EACH,cAAA,EAAgB;AAAA,IACd,IAAA,EAAM,QAAA;AAAA,IACN,SAAS,MAAM;AAAA,GACjB;AAAA,EACA,QAAA,EAAU;AAAA,IACR,IAAA,EAAM,MAAA;AAAA,IACN,OAAA,EAAS;AAAA,GACX;AAAA,EACA,QAAA,EAAU;AAAA,IACR,IAAA,EAAM,MAAA;AAAA,IACN,OAAA,EAAS;AAAA,GACX;AAAA,EACA,WAAA,EAAa;AAAA,IACX,IAAA,EAAM;AAAA,GACR;AAAA;AAAA,EAEA,IAAA,EAAM,OAAA;AAAA;AAAA,EAEN,WAAA,EAAa;AAAA,IACX,IAAA,EAAM,CAAC,MAAA,EAAQ,OAAO;AAAA;AAE1B,CAAA;AACO,MAAM,WAAA,GAAc;AAAA,EACzB,GAAG,kBAAA;AAAA,EACH,GAAG;AACL;AACO,MAAM,qBAAA,GAAwB,MAAA,CAAO,IAAA,CAAK,iBAAiB;AAM3D,MAAM,WAAA,GAAc;AAAA,EACzB,GAAGC,uBAAA;AAAA,EACH,MAAA,EAAQ,CACN,KAAA,EACA,IAAA,KACG;AACP;AAGO,MAAM,eAAA,GAAkB,MAAA,CAAO,IAAA,CAAK,WAAW;;;;;;;;"}
1
+ {"version":3,"file":"select.js","sources":["../../../../../../packages/components/select/src/select.ts"],"sourcesContent":["import type { ExtractPropTypes, PropType, ExtractPublicPropTypes } from 'vue'\nimport {\n selectProps as elSelectProps,\n selectEmits as elSelectEmits,\n type SelectProps as ElSelectProps,\n} from 'element-plus'\nimport { apiProps } from '@el-plus/utils/props'\n\nexport type SelectOption = NonNullable<ElSelectProps['options']>[number]\nexport const inheritSelectProps = {\n ...elSelectProps,\n clearable: {\n ...elSelectProps.clearable,\n default: true,\n },\n} as const\nconst expandSelectProps = {\n ...apiProps,\n // 回显文本:异步 value 到达时,用 desc 构造占位项(只读)\n desc: {\n type: String,\n default: '',\n },\n disabledOption: {\n type: Function as PropType<(item: SelectOption) => boolean>,\n default: () => false,\n },\n labelKey: {\n type: String,\n default: 'label',\n },\n valueKey: {\n type: String,\n default: 'value',\n },\n formatLabel: {\n type: Function as PropType<(item: SelectOption) => string>,\n },\n // api模式生效\n lazy: Boolean,\n // option是否同时展示code label, 默认值展示label, 传string展示指定字段\n codeInLabel: {\n type: [String, Boolean] as PropType<boolean | string>,\n },\n}\nexport const selectProps = {\n ...inheritSelectProps,\n ...expandSelectProps,\n} as const\nexport const expandSelectPropsKeys = Object.keys(expandSelectProps)\n\nexport type SelectProps = ExtractPropTypes<typeof selectProps>\nexport type SelectPropsPublic = ExtractPublicPropTypes<typeof selectProps>\n\n/* eslint-disable @typescript-eslint/no-unused-vars */\nexport const selectEmits = {\n ...elSelectEmits,\n change: (\n value: SelectProps['modelValue'],\n item?: SelectOption | SelectOption[],\n ) => true,\n}\n/* eslint-enable @typescript-eslint/no-unused-vars */\nexport type SelectEmits = typeof selectEmits\nexport const selectEmitsKeys = Object.keys(selectEmits)\n"],"names":["elSelectProps","apiProps","elSelectEmits"],"mappings":";;;;;AASO,MAAM,kBAAA,GAAqB;AAAA,EAChC,GAAGA,uBAAA;AAAA,EACH,SAAA,EAAW;AAAA,IACT,GAAGA,uBAAA,CAAc,SAAA;AAAA,IACjB,OAAA,EAAS;AAAA;AAEb;AACA,MAAM,iBAAA,GAAoB;AAAA,EACxB,GAAGC,cAAA;AAAA;AAAA,EAEH,IAAA,EAAM;AAAA,IACJ,IAAA,EAAM,MAAA;AAAA,IACN,OAAA,EAAS;AAAA,GACX;AAAA,EACA,cAAA,EAAgB;AAAA,IACd,IAAA,EAAM,QAAA;AAAA,IACN,SAAS,MAAM;AAAA,GACjB;AAAA,EACA,QAAA,EAAU;AAAA,IACR,IAAA,EAAM,MAAA;AAAA,IACN,OAAA,EAAS;AAAA,GACX;AAAA,EACA,QAAA,EAAU;AAAA,IACR,IAAA,EAAM,MAAA;AAAA,IACN,OAAA,EAAS;AAAA,GACX;AAAA,EACA,WAAA,EAAa;AAAA,IACX,IAAA,EAAM;AAAA,GACR;AAAA;AAAA,EAEA,IAAA,EAAM,OAAA;AAAA;AAAA,EAEN,WAAA,EAAa;AAAA,IACX,IAAA,EAAM,CAAC,MAAA,EAAQ,OAAO;AAAA;AAE1B,CAAA;AACO,MAAM,WAAA,GAAc;AAAA,EACzB,GAAG,kBAAA;AAAA,EACH,GAAG;AACL;AACO,MAAM,qBAAA,GAAwB,MAAA,CAAO,IAAA,CAAK,iBAAiB;AAM3D,MAAM,WAAA,GAAc;AAAA,EACzB,GAAGC,uBAAA;AAAA,EACH,MAAA,EAAQ,CACN,KAAA,EACA,IAAA,KACG;AACP;AAGO,MAAM,eAAA,GAAkB,MAAA,CAAO,IAAA,CAAK,WAAW;;;;;;;;"}
@@ -7,6 +7,10 @@ type __VLS_Slots = {} & {
7
7
  option?: (props: typeof __VLS_14) => any;
8
8
  };
9
9
  declare const __VLS_base: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
10
+ desc: {
11
+ type: StringConstructor;
12
+ default: string;
13
+ };
10
14
  disabledOption: {
11
15
  type: import("vue").PropType<(item: import("./select").SelectOption) => boolean>;
12
16
  default: () => boolean;
@@ -154,9 +158,6 @@ declare const __VLS_base: import("vue").DefineComponent<import("vue").ExtractPro
154
158
  __epPropKey: true;
155
159
  };
156
160
  props: import("element-plus/es/utils").EpPropFinalized<(new (...args: any[]) => import("element-plus/es/components/select-v2/src/useProps").Props) | (() => import("element-plus/es/components/select-v2/src/useProps").Props) | ((new (...args: any[]) => import("element-plus/es/components/select-v2/src/useProps").Props) | (() => import("element-plus/es/components/select-v2/src/useProps").Props))[], unknown, unknown, () => Required<import("element-plus/es/components/select-v2/src/useProps").Props>, boolean>;
157
- desc: {
158
- type: import("vue").PropType<string>;
159
- };
160
161
  }>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
161
162
  clear: () => void;
162
163
  blur: (evt: FocusEvent) => void;
@@ -169,8 +170,11 @@ declare const __VLS_base: import("vue").DefineComponent<import("vue").ExtractPro
169
170
  }) => void;
170
171
  "remove-tag": (val: unknown) => void;
171
172
  "visible-change": (visible: boolean) => void;
172
- "update:desc": (value: string | undefined) => void;
173
173
  }, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
174
+ desc: {
175
+ type: StringConstructor;
176
+ default: string;
177
+ };
174
178
  disabledOption: {
175
179
  type: import("vue").PropType<(item: import("./select").SelectOption) => boolean>;
176
180
  default: () => boolean;
@@ -318,9 +322,6 @@ declare const __VLS_base: import("vue").DefineComponent<import("vue").ExtractPro
318
322
  __epPropKey: true;
319
323
  };
320
324
  props: import("element-plus/es/utils").EpPropFinalized<(new (...args: any[]) => import("element-plus/es/components/select-v2/src/useProps").Props) | (() => import("element-plus/es/components/select-v2/src/useProps").Props) | ((new (...args: any[]) => import("element-plus/es/components/select-v2/src/useProps").Props) | (() => import("element-plus/es/components/select-v2/src/useProps").Props))[], unknown, unknown, () => Required<import("element-plus/es/components/select-v2/src/useProps").Props>, boolean>;
321
- desc: {
322
- type: import("vue").PropType<string>;
323
- };
324
325
  }>> & Readonly<{
325
326
  onClear?: (() => any) | undefined;
326
327
  onBlur?: ((evt: FocusEvent) => any) | undefined;
@@ -333,8 +334,8 @@ declare const __VLS_base: import("vue").DefineComponent<import("vue").ExtractPro
333
334
  }) => any) | undefined;
334
335
  "onRemove-tag"?: ((val: unknown) => any) | undefined;
335
336
  "onVisible-change"?: ((visible: boolean) => any) | undefined;
336
- "onUpdate:desc"?: ((value: string | undefined) => any) | undefined;
337
337
  }>, {
338
+ desc: string;
338
339
  loading: boolean;
339
340
  offset: number;
340
341
  placement: import("element-plus/es/utils").EpPropMergeType<(new (...args: any[]) => "left" | "right" | "top" | "bottom" | "auto" | "auto-start" | "auto-end" | "top-start" | "top-end" | "bottom-start" | "bottom-end" | "right-start" | "right-end" | "left-start" | "left-end") | (() => import("element-plus").Placement) | ((new (...args: any[]) => "left" | "right" | "top" | "bottom" | "auto" | "auto-start" | "auto-end" | "top-start" | "top-end" | "bottom-start" | "bottom-end" | "right-start" | "right-end" | "left-start" | "left-end") | (() => import("element-plus").Placement))[], import("element-plus").Placement, unknown>;
@@ -16,11 +16,9 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
16
16
  __name: "select",
17
17
  props: /* @__PURE__ */ vue.mergeModels(select.selectProps, {
18
18
  "modelValue": {},
19
- "modelModifiers": {},
20
- "desc": {},
21
- "descModifiers": {}
19
+ "modelModifiers": {}
22
20
  }),
23
- emits: /* @__PURE__ */ vue.mergeModels(select.selectEmits, ["update:modelValue", "update:desc"]),
21
+ emits: /* @__PURE__ */ vue.mergeModels(select.selectEmits, ["update:modelValue"]),
24
22
  setup(__props, { emit: __emit }) {
25
23
  const bem$1 = bem.createNameSpace("select");
26
24
  const props$1 = __props;
@@ -30,7 +28,6 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
30
28
  });
31
29
  const { customOptions, loadOptions, expandAttrs } = useSelect.useSelect(props$1, emit);
32
30
  const value = vue.useModel(__props, "modelValue");
33
- const desc = vue.useModel(__props, "desc");
34
31
  const customAttrs = vue.computed(() => {
35
32
  return {
36
33
  ...props.prepareProps(props$1, ["modelValue", "desc", ...select.expandSelectPropsKeys]),
@@ -38,11 +35,11 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
38
35
  ...expandAttrs.value
39
36
  };
40
37
  });
41
- loadOptions(value.value, desc.value);
38
+ loadOptions();
42
39
  vue.watch(
43
40
  () => props$1.options,
44
41
  () => {
45
- loadOptions(value.value, desc.value);
42
+ loadOptions();
46
43
  },
47
44
  {
48
45
  deep: true
@@ -1 +1 @@
1
- {"version":3,"file":"select.vue2.js","sources":["../../../../../../packages/components/select/src/select.vue"],"sourcesContent":["<template>\n <el-select\n v-model=\"value\"\n :class=\"`${bem.b()} ${prepareClassNames()}`\"\n v-bind=\"customAttrs\"\n :style=\"{\n ...prepareStyles(),\n }\"\n >\n <el-option\n v-for=\"item in customOptions\"\n :key=\"item[valueKey]\"\n :class=\"bem.e('option')\"\n :label=\"\n item.formatLabel\n ? item.formatLabel(item)\n : formatLabel\n ? formatLabel(item)\n : item[labelKey]\n \"\n :value=\"item[valueKey]\"\n :disabled=\"disabledOption(item)\"\n >\n <slot name=\"option\" :item=\"item\">\n <template v-if=\"codeInLabel || codeInLabel === ''\">\n <span style=\"float: left\">{{ item[labelKey] }}</span>\n <span\n style=\"\n float: right;\n color: var(--el-text-color-secondary);\n font-size: 13px;\n \"\n >\n {{\n item[\n typeof codeInLabel === 'string' && codeInLabel\n ? codeInLabel\n : valueKey\n ]\n }}\n </span>\n </template>\n </slot>\n </el-option>\n <template v-for=\"name in slots\" #[name]=\"scope\">\n <slot :name=\"name\" v-bind=\"scope\" />\n </template>\n </el-select>\n</template>\n<script setup lang=\"ts\">\nimport { computed, useSlots, watch } from 'vue'\nimport {\n selectProps,\n selectEmits,\n expandSelectPropsKeys,\n selectEmitsKeys,\n} from './select'\nimport type { SelectProps, SelectEmits } from './select'\nimport {\n prepareProps,\n prepareEvents,\n prepareClassNames,\n prepareStyles,\n} from '@el-plus/utils/props'\nimport { useSelect } from './use-select'\nimport { createNameSpace } from '@el-plus/utils/bem'\ndefineOptions({\n name: 'EpSelect',\n inheritAttrs: false,\n})\nconst bem = createNameSpace('select')\nconst props = defineProps(selectProps)\nconst emit = defineEmits(selectEmits)\nconst slots = computed(() => {\n return Object.keys(useSlots())\n})\n\nconst { customOptions, loadOptions, expandAttrs } = useSelect(props, emit)\nconst value = defineModel<SelectProps['modelValue']>()\nconst desc = defineModel<string>('desc')\nconst customAttrs = computed(() => {\n return {\n ...prepareProps(props, ['modelValue', 'desc', ...expandSelectPropsKeys]),\n ...prepareEvents<SelectEmits>(emit, selectEmitsKeys),\n ...expandAttrs.value,\n }\n})\nloadOptions(value.value, desc.value)\nwatch(\n () => props.options,\n () => {\n loadOptions(value.value, desc.value)\n },\n {\n deep: true,\n },\n)\n</script>\n"],"names":["bem","createNameSpace","props","computed","useSlots","useSelect","_useModel","prepareProps","expandSelectPropsKeys","prepareEvents","selectEmitsKeys","watch","_openBlock","_createBlock","_mergeProps","_unref","prepareClassNames","prepareStyles","_createElementBlock","_Fragment","_renderList","valueKey","_normalizeClass","formatLabel","labelKey","disabledOption","_renderSlot","codeInLabel","_createElementVNode","_toDisplayString","_withCtx","_normalizeProps","_guardReactiveProps"],"mappings":"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"}
1
+ {"version":3,"file":"select.vue2.js","sources":["../../../../../../packages/components/select/src/select.vue"],"sourcesContent":["<template>\n <el-select\n v-model=\"value\"\n :class=\"`${bem.b()} ${prepareClassNames()}`\"\n v-bind=\"customAttrs\"\n :style=\"{\n ...prepareStyles(),\n }\"\n >\n <el-option\n v-for=\"item in customOptions\"\n :key=\"item[valueKey]\"\n :class=\"bem.e('option')\"\n :label=\"\n item.formatLabel\n ? item.formatLabel(item)\n : formatLabel\n ? formatLabel(item)\n : item[labelKey]\n \"\n :value=\"item[valueKey]\"\n :disabled=\"disabledOption(item)\"\n >\n <slot name=\"option\" :item=\"item\">\n <template v-if=\"codeInLabel || codeInLabel === ''\">\n <span style=\"float: left\">{{ item[labelKey] }}</span>\n <span\n style=\"\n float: right;\n color: var(--el-text-color-secondary);\n font-size: 13px;\n \"\n >\n {{\n item[\n typeof codeInLabel === 'string' && codeInLabel\n ? codeInLabel\n : valueKey\n ]\n }}\n </span>\n </template>\n </slot>\n </el-option>\n <template v-for=\"name in slots\" #[name]=\"scope\">\n <slot :name=\"name\" v-bind=\"scope\" />\n </template>\n </el-select>\n</template>\n<script setup lang=\"ts\">\nimport { computed, useSlots, watch } from 'vue'\nimport {\n selectProps,\n selectEmits,\n expandSelectPropsKeys,\n selectEmitsKeys,\n} from './select'\nimport type { SelectProps, SelectEmits } from './select'\nimport {\n prepareProps,\n prepareEvents,\n prepareClassNames,\n prepareStyles,\n} from '@el-plus/utils/props'\nimport { useSelect } from './use-select'\nimport { createNameSpace } from '@el-plus/utils/bem'\ndefineOptions({\n name: 'EpSelect',\n inheritAttrs: false,\n})\nconst bem = createNameSpace('select')\nconst props = defineProps(selectProps)\nconst emit = defineEmits(selectEmits)\nconst slots = computed(() => {\n return Object.keys(useSlots())\n})\n\nconst { customOptions, loadOptions, expandAttrs } = useSelect(props, emit)\nconst value = defineModel<SelectProps['modelValue']>()\nconst customAttrs = computed(() => {\n return {\n ...prepareProps(props, ['modelValue', 'desc', ...expandSelectPropsKeys]),\n ...prepareEvents<SelectEmits>(emit, selectEmitsKeys),\n ...expandAttrs.value,\n }\n})\n// 回显由 echoOption computed 自动处理,这里只负责加载选项\nloadOptions()\nwatch(\n () => props.options,\n () => {\n loadOptions()\n },\n {\n deep: true,\n },\n)\n</script>\n"],"names":["bem","createNameSpace","props","computed","useSlots","useSelect","_useModel","prepareProps","expandSelectPropsKeys","prepareEvents","selectEmitsKeys","watch","_openBlock","_createBlock","_mergeProps","_unref","prepareClassNames","prepareStyles","_createElementBlock","_Fragment","_renderList","valueKey","_normalizeClass","formatLabel","labelKey","disabledOption","_renderSlot","codeInLabel","_createElementVNode","_toDisplayString","_withCtx","_normalizeProps","_guardReactiveProps"],"mappings":"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"}
@@ -1,8 +1,8 @@
1
1
  import type { SetupContext } from 'vue';
2
2
  import type { SelectProps, SelectEmits } from './select';
3
3
  export declare function useSelect(props: SelectProps, emit: SetupContext<SelectEmits>['emit']): {
4
- customOptions: import("vue").Ref<Record<string, any>[], Record<string, any>[]>;
5
- loadOptions: (value: SelectProps["modelValue"], desc: string | undefined) => void;
4
+ customOptions: import("vue").ComputedRef<Record<string, any>[]>;
5
+ loadOptions: () => void;
6
6
  expandAttrs: import("vue").ComputedRef<{
7
7
  loading: boolean | undefined;
8
8
  remoteMethod: (query: string) => void;
@@ -5,6 +5,7 @@ var useRequest = require('../../../hooks/use-request.js');
5
5
 
6
6
  function useSelect(props, emit) {
7
7
  let hasLoaded = false;
8
+ const loadedOptions = vue.ref([]);
8
9
  const { loading, requestFn } = useRequest.useRequest({
9
10
  api: props.api,
10
11
  method: props.method,
@@ -16,12 +17,12 @@ function useSelect(props, emit) {
16
17
  hooks: {
17
18
  success(data) {
18
19
  if (Array.isArray(data)) {
19
- customOptions.value = data;
20
+ loadedOptions.value = data;
20
21
  } else if (data && typeof data === "object") {
21
22
  const rawData = data;
22
- customOptions.value = rawData?.list || rawData?.data || [];
23
+ loadedOptions.value = rawData?.list || rawData?.data || [];
23
24
  } else {
24
- customOptions.value = [];
25
+ loadedOptions.value = [];
25
26
  }
26
27
  hasLoaded = true;
27
28
  },
@@ -30,22 +31,30 @@ function useSelect(props, emit) {
30
31
  }
31
32
  }
32
33
  });
33
- const customOptions = vue.ref([]);
34
- const loadOptions = (value, desc) => {
35
- if ((value || value === 0) && desc) {
36
- customOptions.value = [
37
- {
38
- [props.labelKey]: desc,
39
- [props.valueKey]: value
40
- }
41
- ];
34
+ const echoOption = vue.computed(() => {
35
+ const v = props.modelValue;
36
+ const d = props.desc;
37
+ if ((v || v === 0) && d) {
38
+ const exists = loadedOptions.value.some(
39
+ (item) => item[props.valueKey] === v
40
+ );
41
+ if (!exists) {
42
+ return [{ [props.labelKey]: d, [props.valueKey]: v }];
43
+ }
42
44
  }
45
+ return [];
46
+ });
47
+ const customOptions = vue.computed(() => [
48
+ ...echoOption.value,
49
+ ...loadedOptions.value
50
+ ]);
51
+ const loadOptions = () => {
43
52
  if (props.api) {
44
53
  if (!props.lazy && !props.remote) {
45
54
  requestFn();
46
55
  }
47
56
  } else if (props.options?.length) {
48
- customOptions.value = props.options;
57
+ loadedOptions.value = props.options;
49
58
  }
50
59
  };
51
60
  const getSelectItem = (value) => {
@@ -1 +1 @@
1
- {"version":3,"file":"use-select.js","sources":["../../../../../../packages/components/select/src/use-select.ts"],"sourcesContent":["import { ref ,computed} from 'vue'\nimport type { SetupContext } from 'vue'\nimport { useRequest } from '@el-plus/hooks/use-request'\nimport type { SelectProps, SelectOption, SelectEmits } from './select'\nexport function useSelect(\n props: SelectProps,\n emit: SetupContext<SelectEmits>['emit'],\n) {\n let hasLoaded = false\n const { loading, requestFn } = useRequest({\n api: props.api,\n method: props.method,\n reqData: props.reqData,\n reqParams: props.reqParams,\n reqBefore: props.reqBefore,\n reqAfter: props.reqAfter,\n cancelToken: props.remote,\n hooks: {\n success(data) {\n type OptionArr = SelectOption[]\n interface OptionObj {\n list?: OptionArr\n data?: OptionArr\n }\n if (Array.isArray(data)) {\n customOptions.value = data as OptionArr\n } else if (data && typeof data === 'object') {\n const rawData = data as OptionObj\n customOptions.value = rawData?.list || rawData?.data || []\n } else {\n customOptions.value = []\n }\n hasLoaded = true\n },\n fail(error) {\n console.error(error)\n },\n },\n })\n // 下拉列表\n const customOptions = ref<SelectOption[]>([]) // 下拉列表\n // 加载下拉列表\n const loadOptions = (\n value: SelectProps['modelValue'],\n desc: string | undefined,\n ) => {\n if ((value || value === 0) && desc) {\n customOptions.value = [\n {\n [props.labelKey]: desc,\n [props.valueKey]: value,\n },\n ]\n }\n if (props.api) {\n if (!props.lazy && !props.remote) {\n requestFn!()\n }\n } else if (props.options?.length) {\n customOptions.value = props.options\n }\n }\n // 获取选中项\n const getSelectItem = (value: SelectProps['modelValue']) => {\n if (Array.isArray(value)) {\n if (!customOptions.value) return []\n return customOptions.value.filter((item: SelectOption) => {\n return value.indexOf(item[props.valueKey]) > -1\n })\n }\n if (!customOptions.value) return {}\n return (\n customOptions.value.find((item: SelectOption) => {\n return item[props.valueKey] === value\n }) || {}\n )\n }\n const expandAttrs = computed(() => {\n return {\n loading: props.loading || loading?.value,\n remoteMethod: (query: string) => {\n if (!query) return\n requestFn!({\n $searchValue: query,\n })\n },\n onChange(value: SelectProps['modelValue']) {\n emit('change', value, getSelectItem(value))\n },\n onVisibleChange(visible: boolean) {\n if (props.api && props.lazy && visible && !hasLoaded && !props.remote) {\n requestFn!()\n }\n emit('visible-change', visible)\n },\n }\n })\n return {\n customOptions,\n loadOptions,\n expandAttrs,\n }\n}\n"],"names":["useRequest","ref","computed"],"mappings":"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"}
1
+ {"version":3,"file":"use-select.js","sources":["../../../../../../packages/components/select/src/use-select.ts"],"sourcesContent":["import { ref ,computed} from 'vue'\nimport type { SetupContext } from 'vue'\nimport { useRequest } from '@el-plus/hooks/use-request'\nimport type { SelectProps, SelectOption, SelectEmits } from './select'\nexport function useSelect(\n props: SelectProps,\n emit: SetupContext<SelectEmits>['emit'],\n) {\n let hasLoaded = false\n // 已加载的选项(api 请求结果 / props.options / 搜索结果)\n const loadedOptions = ref<SelectOption[]>([])\n const { loading, requestFn } = useRequest({\n api: props.api,\n method: props.method,\n reqData: props.reqData,\n reqParams: props.reqParams,\n reqBefore: props.reqBefore,\n reqAfter: props.reqAfter,\n cancelToken: props.remote,\n hooks: {\n success(data) {\n type OptionArr = SelectOption[]\n interface OptionObj {\n list?: OptionArr\n data?: OptionArr\n }\n if (Array.isArray(data)) {\n loadedOptions.value = data as OptionArr\n } else if (data && typeof data === 'object') {\n const rawData = data as OptionObj\n loadedOptions.value = rawData?.list || rawData?.data || []\n } else {\n loadedOptions.value = []\n }\n hasLoaded = true\n },\n fail(error) {\n console.error(error)\n },\n },\n })\n // 回显占位项:value/desc 存在且不在已加载列表中时,补充一项\n // 由 computed 自动响应 value/desc/loadedOptions 的变化,无需 watch\n const echoOption = computed<SelectOption[]>(() => {\n const v = props.modelValue\n const d = props.desc\n if ((v || v === 0) && d) {\n const exists = loadedOptions.value.some(\n (item: SelectOption) => item[props.valueKey] === v,\n )\n if (!exists) {\n return [{ [props.labelKey]: d, [props.valueKey]: v }]\n }\n }\n return []\n })\n // 最终下拉项 = 回显占位 + 已加载\n const customOptions = computed<SelectOption[]>(() => [\n ...echoOption.value,\n ...loadedOptions.value,\n ])\n // 加载下拉列表(只负责加载,不处理回显)\n const loadOptions = () => {\n if (props.api) {\n if (!props.lazy && !props.remote) {\n requestFn!()\n }\n } else if (props.options?.length) {\n loadedOptions.value = props.options\n }\n }\n // 获取选中项\n const getSelectItem = (value: SelectProps['modelValue']) => {\n if (Array.isArray(value)) {\n if (!customOptions.value) return []\n return customOptions.value.filter((item: SelectOption) => {\n return value.indexOf(item[props.valueKey]) > -1\n })\n }\n if (!customOptions.value) return {}\n return (\n customOptions.value.find((item: SelectOption) => {\n return item[props.valueKey] === value\n }) || {}\n )\n }\n const expandAttrs = computed(() => {\n return {\n loading: props.loading || loading?.value,\n remoteMethod: (query: string) => {\n if (!query) return\n requestFn!({\n $searchValue: query,\n })\n },\n onChange(value: SelectProps['modelValue']) {\n emit('change', value, getSelectItem(value))\n },\n onVisibleChange(visible: boolean) {\n if (props.api && props.lazy && visible && !hasLoaded && !props.remote) {\n requestFn!()\n }\n emit('visible-change', visible)\n },\n }\n })\n return {\n customOptions,\n loadOptions,\n expandAttrs,\n }\n}\n"],"names":["ref","useRequest","computed"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var version = "0.0.111";
3
+ var version = "0.0.113";
4
4
 
5
5
  exports.version = version;
6
6
  //# sourceMappingURL=package.json.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "el-plus",
3
- "version": "0.0.111",
3
+ "version": "0.0.113",
4
4
  "description": "pro base on element-plus",
5
5
  "module": "./es/index.mjs",
6
6
  "keywords": [