vxe-pc-ui 4.9.12 → 4.9.14

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 (53) hide show
  1. package/README.md +1 -0
  2. package/es/form/src/form.js +13 -3
  3. package/es/icon/style.css +1 -1
  4. package/es/radio/src/button.js +26 -13
  5. package/es/radio/src/group.js +3 -3
  6. package/es/radio/src/radio.js +26 -13
  7. package/es/select/src/select.js +0 -1
  8. package/es/style.css +1 -1
  9. package/es/style.min.css +1 -1
  10. package/es/ui/index.js +1 -1
  11. package/es/ui/src/log.js +1 -1
  12. package/lib/form/src/form.js +13 -3
  13. package/lib/form/src/form.min.js +1 -1
  14. package/lib/icon/style/style.css +1 -1
  15. package/lib/icon/style/style.min.css +1 -1
  16. package/lib/index.umd.js +92 -37
  17. package/lib/index.umd.min.js +1 -1
  18. package/lib/radio/src/button.js +36 -14
  19. package/lib/radio/src/button.min.js +1 -1
  20. package/lib/radio/src/group.js +4 -3
  21. package/lib/radio/src/group.min.js +1 -1
  22. package/lib/radio/src/radio.js +37 -14
  23. package/lib/radio/src/radio.min.js +1 -1
  24. package/lib/select/src/select.js +0 -1
  25. package/lib/select/src/select.min.js +1 -1
  26. package/lib/style.css +1 -1
  27. package/lib/style.min.css +1 -1
  28. package/lib/ui/index.js +1 -1
  29. package/lib/ui/index.min.js +1 -1
  30. package/lib/ui/src/log.js +1 -1
  31. package/lib/ui/src/log.min.js +1 -1
  32. package/package.json +1 -1
  33. package/packages/form/src/form.ts +14 -3
  34. package/packages/radio/src/button.ts +28 -14
  35. package/packages/radio/src/group.ts +3 -3
  36. package/packages/radio/src/radio.ts +28 -14
  37. package/packages/select/src/select.ts +0 -1
  38. package/types/components/form-design.d.ts +2 -0
  39. package/types/components/radio-button.d.ts +12 -2
  40. package/types/components/radio-group.d.ts +9 -2
  41. package/types/components/radio.d.ts +7 -1
  42. /package/es/icon/{iconfont.1756734893425.ttf → iconfont.1756870596899.ttf} +0 -0
  43. /package/es/icon/{iconfont.1756734893425.woff → iconfont.1756870596899.woff} +0 -0
  44. /package/es/icon/{iconfont.1756734893425.woff2 → iconfont.1756870596899.woff2} +0 -0
  45. /package/es/{iconfont.1756734893425.ttf → iconfont.1756870596899.ttf} +0 -0
  46. /package/es/{iconfont.1756734893425.woff → iconfont.1756870596899.woff} +0 -0
  47. /package/es/{iconfont.1756734893425.woff2 → iconfont.1756870596899.woff2} +0 -0
  48. /package/lib/icon/style/{iconfont.1756734893425.ttf → iconfont.1756870596899.ttf} +0 -0
  49. /package/lib/icon/style/{iconfont.1756734893425.woff → iconfont.1756870596899.woff} +0 -0
  50. /package/lib/icon/style/{iconfont.1756734893425.woff2 → iconfont.1756870596899.woff2} +0 -0
  51. /package/lib/{iconfont.1756734893425.ttf → iconfont.1756870596899.ttf} +0 -0
  52. /package/lib/{iconfont.1756734893425.woff → iconfont.1756870596899.woff} +0 -0
  53. /package/lib/{iconfont.1756734893425.woff2 → iconfont.1756870596899.woff2} +0 -0
@@ -14,9 +14,9 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
14
14
  name: 'VxeRadioButton',
15
15
  props: {
16
16
  modelValue: [String, Number, Boolean],
17
- label: {
17
+ checkedValue: {
18
18
  type: [String, Number, Boolean],
19
- default: null
19
+ default: undefined
20
20
  },
21
21
  title: [String, Number],
22
22
  content: [String, Number],
@@ -31,6 +31,13 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
31
31
  size: {
32
32
  type: String,
33
33
  default: () => (0, _ui.getConfig)().radioButton.size || (0, _ui.getConfig)().size
34
+ },
35
+ /**
36
+ * 已废弃,被 checkedValue 替换
37
+ */
38
+ label: {
39
+ type: [String, Number, Boolean],
40
+ default: null
34
41
  }
35
42
  },
36
43
  emits: ['update:modelValue', 'change'],
@@ -75,9 +82,11 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
75
82
  });
76
83
  const computeChecked = (0, _vue.computed)(() => {
77
84
  const {
78
- label
85
+ label,
86
+ checkedValue
79
87
  } = props;
80
- return $xeRadioGroup ? $xeRadioGroup.props.modelValue === label : props.modelValue === label;
88
+ const radioValue = _xeUtils.default.isUndefined(checkedValue) ? label : checkedValue;
89
+ return $xeRadioGroup ? $xeRadioGroup.props.modelValue === radioValue : props.modelValue === radioValue;
81
90
  });
82
91
  const radioButtonMethods = {
83
92
  dispatchEvent(type, params, evnt) {
@@ -88,48 +97,61 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
88
97
  };
89
98
  const radioButtonPrivateMethods = {};
90
99
  Object.assign($xeRadioButton, radioButtonMethods, radioButtonPrivateMethods);
91
- const handleValue = (label, evnt) => {
100
+ const handleValue = (checkedValue, evnt) => {
92
101
  if ($xeRadioGroup) {
93
102
  $xeRadioGroup.handleChecked({
94
- label
103
+ label: checkedValue,
104
+ checkedValue
95
105
  }, evnt);
96
106
  } else {
97
- emit('update:modelValue', label);
107
+ emit('update:modelValue', checkedValue);
98
108
  radioButtonMethods.dispatchEvent('change', {
99
- value: label,
100
- label
109
+ value: checkedValue,
110
+ label: checkedValue
101
111
  }, evnt);
102
112
  // 自动更新校验状态
103
113
  if ($xeForm && formItemInfo) {
104
- $xeForm.triggerItemEvent(evnt, formItemInfo.itemConfig.field, label);
114
+ $xeForm.triggerItemEvent(evnt, formItemInfo.itemConfig.field, checkedValue);
105
115
  }
106
116
  }
107
117
  };
108
118
  const changeEvent = evnt => {
109
119
  const isDisabled = computeIsDisabled.value;
110
120
  if (!isDisabled) {
111
- handleValue(props.label, evnt);
121
+ const {
122
+ label,
123
+ checkedValue
124
+ } = props;
125
+ const radioValue = _xeUtils.default.isUndefined(checkedValue) ? label : checkedValue;
126
+ handleValue(radioValue, evnt);
112
127
  }
113
128
  };
114
129
  const clickEvent = evnt => {
115
130
  const isDisabled = computeIsDisabled.value;
116
131
  const isStrict = computeStrict.value;
117
132
  if (!isDisabled && !isStrict) {
118
- if (props.label === ($xeRadioGroup ? $xeRadioGroup.props.modelValue : props.modelValue)) {
133
+ const {
134
+ label,
135
+ checkedValue
136
+ } = props;
137
+ const radioValue = _xeUtils.default.isUndefined(checkedValue) ? label : checkedValue;
138
+ if (radioValue === ($xeRadioGroup ? $xeRadioGroup.props.modelValue : props.modelValue)) {
119
139
  handleValue(null, evnt);
120
140
  }
121
141
  }
122
142
  };
123
143
  const renderVN = () => {
124
144
  const {
125
- label
145
+ label,
146
+ checkedValue
126
147
  } = props;
148
+ const radioValue = _xeUtils.default.isUndefined(checkedValue) ? label : checkedValue;
127
149
  const vSize = computeSize.value;
128
150
  const isDisabled = computeIsDisabled.value;
129
151
  const name = computeName.value;
130
152
  const isChecked = computeChecked.value;
131
153
  return (0, _vue.h)('label', {
132
- key: label,
154
+ key: radioValue,
133
155
  class: ['vxe-radio vxe-radio--button', {
134
156
  [`size--${vSize}`]: vSize,
135
157
  'is--disabled': isDisabled
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_comp=require("../../ui/src/comp"),_xeUtils=_interopRequireDefault(require("xe-utils")),_utils=require("../../ui/src/utils"),_ui=require("../../ui");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}var _default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeRadioButton",props:{modelValue:[String,Number,Boolean],label:{type:[String,Number,Boolean],default:null},title:[String,Number],content:[String,Number],disabled:{type:Boolean,default:null},strict:{type:Boolean,default:()=>(0,_ui.getConfig)().radioButton.strict},size:{type:String,default:()=>(0,_ui.getConfig)().radioButton.size||(0,_ui.getConfig)().size}},emits:["update:modelValue","change"],setup(i,e){const{slots:r,emit:l}=e,u=(0,_vue.inject)("$xeForm",null),a=(0,_vue.inject)("xeFormItemInfo",null),o=(0,_vue.inject)("$xeRadioGroup",null);var t=_xeUtils.default.uniqueId(),n=(0,_vue.reactive)({});const d=(0,_ui.useSize)(i)["computeSize"],s={xID:t,props:i,context:e,reactData:n},c=(0,_vue.computed)(()=>{var e,t=i["disabled"];if(null===t&&o)return e=o.getComputeMaps()["computeIsDisabled"],e.value;return t}),p=(0,_vue.computed)(()=>o?o.name:null),v=(0,_vue.computed)(()=>(o?o.props:i).strict),m=(0,_vue.computed)(()=>{var e=i["label"];return o?o.props.modelValue===e:i.modelValue===e}),_={dispatchEvent(e,t,u){l(e,(0,_ui.createEvent)(u,{$radioButton:s},t))}};Object.assign(s,_,{});const f=(e,t)=>{o?o.handleChecked({label:e},t):(l("update:modelValue",e),_.dispatchEvent("change",{value:e,label:e},t),u&&a&&u.triggerItemEvent(t,a.itemConfig.field,e))},b=e=>{c.value||f(i.label,e)},g=e=>{var t=c.value,u=v.value;t||u||i.label===(o?o.props:i).modelValue&&f(null,e)};t=()=>{var e=i["label"],t=d.value,u=c.value,l=p.value,a=m.value;return(0,_vue.h)("label",{key:e,class:["vxe-radio vxe-radio--button",{["size--"+t]:t,"is--disabled":u}],title:i.title},[(0,_vue.h)("input",{class:"vxe-radio--input",type:"radio",name:l,checked:a,disabled:u,onChange:b,onClick:g}),(0,_vue.h)("span",{class:"vxe-radio--label"},r.default?r.default({}):(0,_utils.getFuncText)(i.content))])};return s.renderVN=t}});
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_comp=require("../../ui/src/comp"),_xeUtils=_interopRequireDefault(require("xe-utils")),_utils=require("../../ui/src/utils"),_ui=require("../../ui");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}var _default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeRadioButton",props:{modelValue:[String,Number,Boolean],checkedValue:{type:[String,Number,Boolean],default:void 0},title:[String,Number],content:[String,Number],disabled:{type:Boolean,default:null},strict:{type:Boolean,default:()=>(0,_ui.getConfig)().radioButton.strict},size:{type:String,default:()=>(0,_ui.getConfig)().radioButton.size||(0,_ui.getConfig)().size},label:{type:[String,Number,Boolean],default:null}},emits:["update:modelValue","change"],setup(i,e){const{slots:n,emit:l}=e,u=(0,_vue.inject)("$xeForm",null),a=(0,_vue.inject)("xeFormItemInfo",null),r=(0,_vue.inject)("$xeRadioGroup",null);var t=_xeUtils.default.uniqueId(),o=(0,_vue.reactive)({});const d=(0,_ui.useSize)(i)["computeSize"],s={xID:t,props:i,context:e,reactData:o},c=(0,_vue.computed)(()=>{var e,t=i["disabled"];if(null===t&&r)return e=r.getComputeMaps()["computeIsDisabled"],e.value;return t}),p=(0,_vue.computed)(()=>r?r.name:null),v=(0,_vue.computed)(()=>(r?r.props:i).strict),_=(0,_vue.computed)(()=>{var{label:e,checkedValue:t}=i,e=_xeUtils.default.isUndefined(t)?e:t;return r?r.props.modelValue===e:i.modelValue===e}),f={dispatchEvent(e,t,u){l(e,(0,_ui.createEvent)(u,{$radioButton:s},t))}};Object.assign(s,f,{});const m=(e,t)=>{r?r.handleChecked({label:e,checkedValue:e},t):(l("update:modelValue",e),f.dispatchEvent("change",{value:e,label:e},t),u&&a&&u.triggerItemEvent(t,a.itemConfig.field,e))},b=e=>{var t,u;c.value||({label:u,checkedValue:t}=i,u=_xeUtils.default.isUndefined(t)?u:t,m(u,e))},x=e=>{var t=c.value,u=v.value;t||u||({label:t,checkedValue:u}=i,(_xeUtils.default.isUndefined(u)?t:u)===(r?r.props:i).modelValue&&m(null,e))};t=()=>{var{label:e,checkedValue:t}=i,e=_xeUtils.default.isUndefined(t)?e:t,t=d.value,u=c.value,l=p.value,a=_.value;return(0,_vue.h)("label",{key:e,class:["vxe-radio vxe-radio--button",{["size--"+t]:t,"is--disabled":u}],title:i.title},[(0,_vue.h)("input",{class:"vxe-radio--input",type:"radio",name:l,checked:a,disabled:u,onChange:b,onClick:x}),(0,_vue.h)("span",{class:"vxe-radio--label"},n.default?n.default({}):(0,_utils.getFuncText)(i.content))])};return s.renderVN=t}});
@@ -92,11 +92,12 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
92
92
  };
93
93
  const radioGroupPrivateMethods = {
94
94
  handleChecked(params, evnt) {
95
- const value = params.label;
95
+ const value = params.checkedValue;
96
96
  emit('update:modelValue', value);
97
97
  dispatchEvent('change', {
98
98
  value,
99
- label: value
99
+ label: value,
100
+ checkedValue: value
100
101
  }, evnt);
101
102
  // 自动更新校验状态
102
103
  if ($xeForm && formItemInfo) {
@@ -123,7 +124,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
123
124
  }, defaultSlot ? defaultSlot({}) : options ? options.map(item => {
124
125
  return (0, _vue.h)(btnComp, {
125
126
  key: item[valueField],
126
- label: item[valueField],
127
+ checkedValue: item[valueField],
127
128
  content: item[labelField],
128
129
  disabled: item[disabledField]
129
130
  });
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_comp=require("../../ui/src/comp"),_xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../ui"),_radio=_interopRequireDefault(require("./radio")),_button=_interopRequireDefault(require("./button"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}var _default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeRadioGroup",props:{modelValue:[String,Number,Boolean],disabled:{type:Boolean,default:null},type:String,options:Array,optionProps:Object,strict:{type:Boolean,default:()=>(0,_ui.getConfig)().radioGroup.strict},size:{type:String,default:()=>(0,_ui.getConfig)().radioGroup.size||(0,_ui.getConfig)().size}},emits:["update:modelValue","change"],setup(n,e){const{slots:d,emit:r}=e,u=(0,_vue.inject)("$xeForm",null),o=(0,_vue.inject)("xeFormItemInfo",null);var t=_xeUtils.default.uniqueId();const p=(0,_ui.useSize)(n)["computeSize"];var i=(0,_vue.reactive)({});const a={computeIsDisabled:(0,_vue.computed)(()=>{var e=n["disabled"];return null===e?!!u&&(u.props.readonly||u.props.disabled):e})},l={xID:t,props:n,context:e,reactData:i,name:_xeUtils.default.uniqueId("xe_group_"),getComputeMaps:()=>a},s=(0,_vue.computed)(()=>Object.assign({},n.optionProps)),v=(0,_vue.computed)(()=>{return s.value.label||"label"}),_=(0,_vue.computed)(()=>{return s.value.value||"value"}),c=(0,_vue.computed)(()=>{return s.value.disabled||"disabled"}),m=(e,t,u)=>{r(e,(0,_ui.createEvent)(u,{$radioGroup:l},t))};t={dispatchEvent:m};Object.assign(l,t,{handleChecked(e,t){e=e.label;r("update:modelValue",e),m("change",{value:e,label:e},t),u&&o&&u.triggerItemEvent(t,o.itemConfig.field,e)}});return(0,_vue.provide)("$xeRadioGroup",l),l.renderVN=()=>{var{options:e,type:t}=n,u=p.value,r=d.default;const o=_.value,i=v.value,a=c.value,l=("button"===t?_button:_radio).default;return(0,_vue.h)("div",{class:["vxe-radio-group",{["size--"+u]:u}]},r?r({}):e?e.map(e=>(0,_vue.h)(l,{key:e[o],label:e[o],content:e[i],disabled:e[a]})):[])},l},render(){return this.renderVN()}});
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_comp=require("../../ui/src/comp"),_xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../ui"),_radio=_interopRequireDefault(require("./radio")),_button=_interopRequireDefault(require("./button"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}var _default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeRadioGroup",props:{modelValue:[String,Number,Boolean],disabled:{type:Boolean,default:null},type:String,options:Array,optionProps:Object,strict:{type:Boolean,default:()=>(0,_ui.getConfig)().radioGroup.strict},size:{type:String,default:()=>(0,_ui.getConfig)().radioGroup.size||(0,_ui.getConfig)().size}},emits:["update:modelValue","change"],setup(n,e){const{slots:d,emit:r}=e,u=(0,_vue.inject)("$xeForm",null),o=(0,_vue.inject)("xeFormItemInfo",null);var t=_xeUtils.default.uniqueId();const p=(0,_ui.useSize)(n)["computeSize"];var i=(0,_vue.reactive)({});const a={computeIsDisabled:(0,_vue.computed)(()=>{var e=n["disabled"];return null===e?!!u&&(u.props.readonly||u.props.disabled):e})},l={xID:t,props:n,context:e,reactData:i,name:_xeUtils.default.uniqueId("xe_group_"),getComputeMaps:()=>a},s=(0,_vue.computed)(()=>Object.assign({},n.optionProps)),c=(0,_vue.computed)(()=>{return s.value.label||"label"}),v=(0,_vue.computed)(()=>{return s.value.value||"value"}),_=(0,_vue.computed)(()=>{return s.value.disabled||"disabled"}),m=(e,t,u)=>{r(e,(0,_ui.createEvent)(u,{$radioGroup:l},t))};t={dispatchEvent:m};Object.assign(l,t,{handleChecked(e,t){e=e.checkedValue;r("update:modelValue",e),m("change",{value:e,label:e,checkedValue:e},t),u&&o&&u.triggerItemEvent(t,o.itemConfig.field,e)}});return(0,_vue.provide)("$xeRadioGroup",l),l.renderVN=()=>{var{options:e,type:t}=n,u=p.value,r=d.default;const o=v.value,i=c.value,a=_.value,l=("button"===t?_button:_radio).default;return(0,_vue.h)("div",{class:["vxe-radio-group",{["size--"+u]:u}]},r?r({}):e?e.map(e=>(0,_vue.h)(l,{key:e[o],checkedValue:e[o],content:e[i],disabled:e[a]})):[])},l},render(){return this.renderVN()}});
@@ -14,9 +14,9 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
14
14
  name: 'VxeRadio',
15
15
  props: {
16
16
  modelValue: [String, Number, Boolean],
17
- label: {
17
+ checkedValue: {
18
18
  type: [String, Number, Boolean],
19
- default: null
19
+ default: undefined
20
20
  },
21
21
  title: [String, Number],
22
22
  content: [String, Number],
@@ -32,6 +32,13 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
32
32
  size: {
33
33
  type: String,
34
34
  default: () => (0, _ui.getConfig)().radio.size || (0, _ui.getConfig)().size
35
+ },
36
+ /**
37
+ * 已废弃,被 checkedValue 替换
38
+ */
39
+ label: {
40
+ type: [String, Number, Boolean],
41
+ default: null
35
42
  }
36
43
  },
37
44
  emits: ['update:modelValue', 'change'],
@@ -76,38 +83,52 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
76
83
  });
77
84
  const computeChecked = (0, _vue.computed)(() => {
78
85
  const {
79
- label
86
+ label,
87
+ checkedValue
80
88
  } = props;
81
- return $xeRadioGroup ? $xeRadioGroup.props.modelValue === label : props.modelValue === label;
89
+ const radioValue = _xeUtils.default.isUndefined(checkedValue) ? label : checkedValue;
90
+ return $xeRadioGroup ? $xeRadioGroup.props.modelValue === radioValue : props.modelValue === radioValue;
82
91
  });
83
- const handleValue = (label, evnt) => {
92
+ const handleValue = (checkedValue, evnt) => {
84
93
  if ($xeRadioGroup) {
85
94
  $xeRadioGroup.handleChecked({
86
- label
95
+ label: checkedValue,
96
+ checkedValue
87
97
  }, evnt);
88
98
  } else {
89
- emit('update:modelValue', label);
99
+ emit('update:modelValue', checkedValue);
90
100
  dispatchEvent('change', {
91
- value: label,
92
- label
101
+ value: checkedValue,
102
+ label: checkedValue,
103
+ checkedValue
93
104
  }, evnt);
94
105
  // 自动更新校验状态
95
106
  if ($xeForm && formItemInfo) {
96
- $xeForm.triggerItemEvent(evnt, formItemInfo.itemConfig.field, label);
107
+ $xeForm.triggerItemEvent(evnt, formItemInfo.itemConfig.field, checkedValue);
97
108
  }
98
109
  }
99
110
  };
100
111
  const changeEvent = evnt => {
101
112
  const isDisabled = computeIsDisabled.value;
102
113
  if (!isDisabled) {
103
- handleValue(props.label, evnt);
114
+ const {
115
+ label,
116
+ checkedValue
117
+ } = props;
118
+ const radioValue = _xeUtils.default.isUndefined(checkedValue) ? label : checkedValue;
119
+ handleValue(radioValue, evnt);
104
120
  }
105
121
  };
106
122
  const clickEvent = evnt => {
107
123
  const isDisabled = computeIsDisabled.value;
108
124
  const isStrict = computeStrict.value;
109
125
  if (!isDisabled && !isStrict) {
110
- if (props.label === ($xeRadioGroup ? $xeRadioGroup.props.modelValue : props.modelValue)) {
126
+ const {
127
+ label,
128
+ checkedValue
129
+ } = props;
130
+ const radioValue = _xeUtils.default.isUndefined(checkedValue) ? label : checkedValue;
131
+ if (radioValue === ($xeRadioGroup ? $xeRadioGroup.props.modelValue : props.modelValue)) {
111
132
  handleValue(null, evnt);
112
133
  }
113
134
  }
@@ -124,14 +145,16 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
124
145
  Object.assign($xeRadio, radioMethods, radioPrivateMethods);
125
146
  const renderVN = () => {
126
147
  const {
127
- label
148
+ label,
149
+ checkedValue
128
150
  } = props;
151
+ const radioValue = _xeUtils.default.isUndefined(checkedValue) ? label : checkedValue;
129
152
  const vSize = computeSize.value;
130
153
  const isDisabled = computeIsDisabled.value;
131
154
  const name = computeName.value;
132
155
  const isChecked = computeChecked.value;
133
156
  return (0, _vue.h)('label', {
134
- key: label,
157
+ key: radioValue,
135
158
  class: ['vxe-radio vxe-radio--default', {
136
159
  [`size--${vSize}`]: vSize,
137
160
  'is--checked': isChecked,
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_comp=require("../../ui/src/comp"),_xeUtils=_interopRequireDefault(require("xe-utils")),_utils=require("../../ui/src/utils"),_ui=require("../../ui");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}var _default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeRadio",props:{modelValue:[String,Number,Boolean],label:{type:[String,Number,Boolean],default:null},title:[String,Number],content:[String,Number],disabled:{type:Boolean,default:null},name:String,strict:{type:Boolean,default:()=>(0,_ui.getConfig)().radio.strict},size:{type:String,default:()=>(0,_ui.getConfig)().radio.size||(0,_ui.getConfig)().size}},emits:["update:modelValue","change"],setup(i,e){const{slots:r,emit:l}=e,u=(0,_vue.inject)("$xeForm",null),a=(0,_vue.inject)("xeFormItemInfo",null),n=(0,_vue.inject)("$xeRadioGroup",null);var t=_xeUtils.default.uniqueId(),o=(0,_vue.reactive)({});const d={xID:t,props:i,context:e,reactData:o},s=(0,_ui.useSize)(i)["computeSize"],c=(0,_vue.computed)(()=>{var e,t=i["disabled"];if(null===t&&n)return e=n.getComputeMaps()["computeIsDisabled"],e.value;return t}),p=(0,_vue.computed)(()=>(n||i).name),v=(0,_vue.computed)(()=>(n?n.props:i).strict),_=(0,_vue.computed)(()=>{var e=i["label"];return n?n.props.modelValue===e:i.modelValue===e}),m=(e,t)=>{n?n.handleChecked({label:e},t):(l("update:modelValue",e),b("change",{value:e,label:e},t),u&&a&&u.triggerItemEvent(t,a.itemConfig.field,e))},f=e=>{c.value||m(i.label,e)},g=e=>{var t=c.value,u=v.value;t||u||i.label===(n?n.props:i).modelValue&&m(null,e)},b=(e,t,u)=>{l(e,(0,_ui.createEvent)(u,{$radio:d},t))};t={dispatchEvent:b};Object.assign(d,t,{});return d.renderVN=()=>{var e=i["label"],t=s.value,u=c.value,l=p.value,a=_.value;return(0,_vue.h)("label",{key:e,class:["vxe-radio vxe-radio--default",{["size--"+t]:t,"is--checked":a,"is--disabled":u}],title:i.title},[(0,_vue.h)("input",{class:"vxe-radio--input",type:"radio",name:l,checked:a,disabled:u,onChange:f,onClick:g}),(0,_vue.h)("span",{class:["vxe-radio--icon",a?(0,_ui.getIcon)().RADIO_CHECKED:u?(0,_ui.getIcon)().RADIO_DISABLED_UNCHECKED:(0,_ui.getIcon)().RADIO_UNCHECKED]}),(0,_vue.h)("span",{class:"vxe-radio--label"},r.default?r.default({}):(0,_utils.getFuncText)(i.content))])},d},render(){return this.renderVN()}});
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_comp=require("../../ui/src/comp"),_xeUtils=_interopRequireDefault(require("xe-utils")),_utils=require("../../ui/src/utils"),_ui=require("../../ui");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}var _default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeRadio",props:{modelValue:[String,Number,Boolean],checkedValue:{type:[String,Number,Boolean],default:void 0},title:[String,Number],content:[String,Number],disabled:{type:Boolean,default:null},name:String,strict:{type:Boolean,default:()=>(0,_ui.getConfig)().radio.strict},size:{type:String,default:()=>(0,_ui.getConfig)().radio.size||(0,_ui.getConfig)().size},label:{type:[String,Number,Boolean],default:null}},emits:["update:modelValue","change"],setup(i,e){const{slots:r,emit:l}=e,u=(0,_vue.inject)("$xeForm",null),a=(0,_vue.inject)("xeFormItemInfo",null),n=(0,_vue.inject)("$xeRadioGroup",null);var t=_xeUtils.default.uniqueId(),d=(0,_vue.reactive)({});const o={xID:t,props:i,context:e,reactData:d},s=(0,_ui.useSize)(i)["computeSize"],c=(0,_vue.computed)(()=>{var e,t=i["disabled"];if(null===t&&n)return e=n.getComputeMaps()["computeIsDisabled"],e.value;return t}),p=(0,_vue.computed)(()=>(n||i).name),v=(0,_vue.computed)(()=>(n?n.props:i).strict),_=(0,_vue.computed)(()=>{var{label:e,checkedValue:t}=i,e=_xeUtils.default.isUndefined(t)?e:t;return n?n.props.modelValue===e:i.modelValue===e}),f=(e,t)=>{n?n.handleChecked({label:e,checkedValue:e},t):(l("update:modelValue",e),x("change",{value:e,label:e,checkedValue:e},t),u&&a&&u.triggerItemEvent(t,a.itemConfig.field,e))},m=e=>{var t,u;c.value||({label:u,checkedValue:t}=i,u=_xeUtils.default.isUndefined(t)?u:t,f(u,e))},g=e=>{var t=c.value,u=v.value;t||u||({label:t,checkedValue:u}=i,(_xeUtils.default.isUndefined(u)?t:u)===(n?n.props:i).modelValue&&f(null,e))},x=(e,t,u)=>{l(e,(0,_ui.createEvent)(u,{$radio:o},t))};t={dispatchEvent:x};Object.assign(o,t,{});return o.renderVN=()=>{var{label:e,checkedValue:t}=i,e=_xeUtils.default.isUndefined(t)?e:t,t=s.value,u=c.value,l=p.value,a=_.value;return(0,_vue.h)("label",{key:e,class:["vxe-radio vxe-radio--default",{["size--"+t]:t,"is--checked":a,"is--disabled":u}],title:i.title},[(0,_vue.h)("input",{class:"vxe-radio--input",type:"radio",name:l,checked:a,disabled:u,onChange:m,onClick:g}),(0,_vue.h)("span",{class:["vxe-radio--icon",a?(0,_ui.getIcon)().RADIO_CHECKED:u?(0,_ui.getIcon)().RADIO_DISABLED_UNCHECKED:(0,_ui.getIcon)().RADIO_UNCHECKED]}),(0,_vue.h)("span",{class:"vxe-radio--label"},r.default?r.default({}):(0,_utils.getFuncText)(i.content))])},o},render(){return this.renderVN()}});
@@ -581,7 +581,6 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
581
581
  dispatchEvent('all-change', {
582
582
  value: multipleValue
583
583
  }, $event);
584
- hideOptionPanel();
585
584
  }
586
585
  };
587
586
  const clearCheckedPanelEvent = params => {
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_comp=require("../../ui/src/comp"),_xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../ui"),_dom=require("../../ui/src/dom"),_utils=require("../../ui/src/utils"),_vn=require("../../ui/src/vn"),_input=_interopRequireDefault(require("../../input/src/input")),_button=_interopRequireDefault(require("../../button/src/button"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function isOptionVisible(e){return!1!==e.visible}function getOptUniqueId(){return _xeUtils.default.uniqueId("opt_")}function createInternalData(){return{synchData:[],fullData:[],afterVisibleList:[],optAddMaps:{},optGroupKeyMaps:{},optFullValMaps:{},remoteValMaps:{},lastScrollLeft:0,lastScrollTop:0,scrollYStore:{startIndex:0,endIndex:0,visibleSize:0,offsetSize:0,rowHeight:0},lastScrollTime:0,hpTimeout:void 0}}var _default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeSelect",props:{modelValue:[String,Number,Boolean,Array],defaultConfig:Object,clearable:Boolean,placeholder:String,readonly:{type:Boolean,default:null},loading:Boolean,disabled:{type:Boolean,default:null},multiple:Boolean,multiCharOverflow:{type:[Number,String],default:()=>(0,_ui.getConfig)().select.multiCharOverflow},prefixIcon:String,allowCreate:{type:Boolean,default:()=>(0,_ui.getConfig)().select.allowCreate},placement:String,options:Array,optionProps:Object,optionGroups:Array,optionGroupProps:Object,optionConfig:Object,className:[String,Function],popupClassName:[String,Function],max:{type:[String,Number],default:null},size:{type:String,default:()=>(0,_ui.getConfig)().select.size||(0,_ui.getConfig)().size},filterable:Boolean,filterMethod:Function,remote:Boolean,remoteConfig:Object,emptyText:String,showTotalButoon:{type:Boolean,default:()=>(0,_ui.getConfig)().select.showTotalButoon},showCheckedButoon:{type:Boolean,default:()=>(0,_ui.getConfig)().select.showCheckedButoon},showClearButton:{type:Boolean,default:()=>(0,_ui.getConfig)().select.showClearButton},transfer:{type:Boolean,default:null},virtualYConfig:Object,scrollY:Object,remoteMethod:Function,optionId:{type:String,default:()=>(0,_ui.getConfig)().select.optionId},optionKey:Boolean},emits:["update:modelValue","change","all-change","clear","blur","focus","click","scroll","visible-change"],setup(C,e){const{slots:L,emit:a}=e,b=(0,_vue.inject)("$xeModal",null),T=(0,_vue.inject)("$xeDrawer",null),E=(0,_vue.inject)("$xeTable",null),i=(0,_vue.inject)("$xeForm",null),o=(0,_vue.inject)("xeFormItemInfo",null);var t=_xeUtils.default.uniqueId();const I=(0,_vue.ref)(),O=(0,_vue.ref)(),P=(0,_vue.ref)(),w=(0,_vue.ref)(),A=(0,_vue.ref)(),U=(0,_vue.ref)(),Y=(0,_ui.useSize)(C)["computeSize"],k=(0,_vue.reactive)({initialized:!1,scrollYLoad:!1,bodyHeight:0,topSpaceHeight:0,optList:[],staticOptions:[],reactFlag:0,currentOption:null,searchValue:"",searchLoading:!1,panelIndex:0,panelStyle:{},panelPlacement:null,triggerFocusPanel:!1,visiblePanel:!1,isAniVisible:!1,isActivated:!1}),S=createInternalData(),y={refElem:I},M={xID:t,props:C,context:e,reactData:k,internalData:S,getRefMaps:()=>y},q=(0,_vue.computed)(()=>{var e=C["readonly"];return null===e?!!i&&i.props.readonly:e}),N=(0,_vue.computed)(()=>{var e=C["disabled"];return null===e?!!i&&i.props.disabled:e}),B=(0,_vue.computed)(()=>{var e=C["transfer"];if(null===e){var t=(0,_ui.getConfig)().select.transfer;if(_xeUtils.default.isBoolean(t))return t;if(E||b||T||i)return!0}return e}),H=(0,_vue.computed)(()=>{var e=C["placeholder"];return(e=e||(0,_ui.getConfig)().select.placeholder)?(0,_utils.getFuncText)(e):(0,_ui.getI18n)("vxe.base.pleaseSelect")}),j=(0,_vue.computed)(()=>Object.assign({},C.defaultConfig)),z=(0,_vue.computed)(()=>Object.assign({},C.optionProps)),K=(0,_vue.computed)(()=>Object.assign({},C.optionGroupProps)),c=(0,_vue.computed)(()=>{return z.value.label||"label"}),V=(0,_vue.computed)(()=>{return z.value.value||"value"}),$=(0,_vue.computed)(()=>{return K.value.label||"label"}),G=(0,_vue.computed)(()=>{return K.value.options||"options"}),R=(0,_vue.computed)(()=>{var e=C["modelValue"];return te(e)}),W=(0,_vue.computed)(()=>Object.assign({},(0,_ui.getConfig)().select.virtualYConfig||(0,_ui.getConfig)().select.scrollY,C.virtualYConfig||C.scrollY)),X=(0,_vue.computed)(()=>Object.assign({},(0,_ui.getConfig)().select.remoteConfig,C.remoteConfig)),Z=(0,_vue.computed)(()=>Object.assign({},(0,_ui.getConfig)().select.optionConfig,C.optionConfig)),J=(0,_vue.computed)(()=>_xeUtils.default.toNumber(C.multiCharOverflow)),Q=(0,_vue.computed)(()=>{const{modelValue:e,remote:t,multiple:l}=C;var a,i=k["reactFlag"];const o=J.value;return _xeUtils.default.eqNull(e)?"":(a=_xeUtils.default.isArray(e)?e:[e],(t&&i?a.map(e=>le(e)):a.map(e=>{e=ae(e);return l&&0<o&&e.length>o?e.substring(0,o)+"...":e})).join(", "))}),D=(e,t)=>e&&(_xeUtils.default.isString(e)&&(e=L[e]||null),_xeUtils.default.isFunction(e))?(0,_vn.getSlotVNs)(e(t)):[],r=(e,t,l)=>{a(e,(0,_ui.createEvent)(l,{$select:M},t))},ee=e=>{a("update:modelValue",e)},_=()=>{return Z.value.keyField||C.optionId||"_X_OPTION_KEY"},F=e=>{e=e[_()];return e?encodeURIComponent(e):""},te=e=>{var{multiple:t,max:l}=C;return!(!t||!l)&&(_xeUtils.default.isArray(e)?e.length:_xeUtils.default.eqNull(e)?0:1)>=_xeUtils.default.toNumber(l)},le=e=>{var{remoteValMaps:t,optFullValMaps:l}=S,a=c.value,t=t[e]||l[e],l=t?t.item:null;return _xeUtils.default.toValueString(l?l[a]:e)},ae=e=>{var t=S["optFullValMaps"],l=c.value,t=k.reactFlag?t[e]:null;return t?t.item[l]:_xeUtils.default.toValueString(e)},g=()=>{const{modelValue:t,filterable:e,filterMethod:l}=C,a=k["searchValue"],{fullData:i,optFullValMaps:o}=S,n=c.value,s=V.value,r=(""+(a||"")).toLowerCase();let u=[];return(u=e&&l?i.filter(e=>isOptionVisible(e)&&l({$select:M,group:null,option:e,searchValue:a,value:t})):e?i.filter(e=>isOptionVisible(e)&&(!r||-1<(""+(e[n]||e[s])).toLowerCase().indexOf(r))):i.filter(isOptionVisible)).forEach((e,t)=>{e=o[e[s]];e&&(e._index=t)}),S.afterVisibleList=u,(0,_vue.nextTick)()},ie=e=>{e&&(k.currentOption=e)},s=()=>{const l=C["placement"],a=k["panelIndex"],i=I.value,o=A.value,n=B.value;var e=()=>{var e=(0,_dom.updatePanelPlacement)(i,o,{placement:l,teleportTo:n}),t=Object.assign(e.style,{zIndex:a});k.panelStyle=t,k.panelPlacement=e.placement};return e(),(0,_vue.nextTick)().then(e)},v=()=>{var{loading:e,filterable:t,remote:l}=C,{fullData:a,hpTimeout:i}=S,o=N.value,n=X.value;e||o||(i&&(clearTimeout(i),S.hpTimeout=void 0),k.initialized||(k.initialized=!0),k.isActivated=!0,k.isAniVisible=!0,t&&(l&&n.enabled&&n.autoLoad&&!a.length?Te:(g(),f))(),setTimeout(()=>{k.visiblePanel=!0,C.filterable&&(0,_vue.nextTick)(()=>{var e=P.value;e&&e.focus()});x().then(()=>m())},10),setTimeout(()=>{x().then(()=>m())},100),k.panelIndex<(0,_utils.getLastZIndex)()&&(k.panelIndex=(0,_utils.nextZIndex)()),s(),r("visible-change",{visible:!0},null))},d=()=>{k.searchValue="",k.searchLoading=!1,k.visiblePanel=!1,S.hpTimeout=setTimeout(()=>{k.isAniVisible=!1},350),r("visible-change",{visible:!1},null)},u=(e,t,l)=>{ee(t),t!==C.modelValue&&(r("change",{value:t,option:l},e),i)&&o&&i.triggerItemEvent(e,o.itemConfig.field,t)},p=(e,t)=>{S.remoteValMaps={},u(e,t,null),r("clear",{value:t},e)},oe=e=>{e=e.$event;p(e,null),d()},ne=e=>{var e=e["$event"],{modelValue:t,multiple:l,max:a}=C,i=k["optList"],o=V.value;if(l){var n=_xeUtils.default.eqNull(t)?[]:_xeUtils.default.isArray(t)?t:[t];for(let e=0;e<i.length;e++){const s=i[e][o];if(te(n)){_ui.VxeUI&&_ui.VxeUI.modal.message({content:(0,_ui.getI18n)("vxe.select.overSizeErr",[a]),status:"warning"});break}n.some(e=>e===s)||n.push(s)}u(e,n,i[0]),r("all-change",{value:n},e),d()}},se=e=>{e=e.$event;p(e,null),d()},re=(t,l)=>{var{modelValue:a,multiple:e}=C,i=S["remoteValMaps"];const o=l[V.value];var n=i[o];if(k.visiblePanel){if(n?n.item=l:i[o]={key:F(l),item:l,_index:-1},e){let e=[];n=_xeUtils.default.eqNull(a)?[]:_xeUtils.default.isArray(a)?a:[a],i=_xeUtils.default.findIndexOf(n,e=>e===o);e=-1===i?n.concat([o]):n.filter(e=>e!==o),u(t,e,l)}else u(t,o,l),d();k.reactFlag++}},ue=e=>{var t=k["visiblePanel"];N.value||t&&(t=A.value,((0,_dom.getEventTargetNode)(e,t).flag?s:d)())},ce=e=>{var t,l,a=k["visiblePanel"];N.value||(t=I.value,l=A.value,k.isActivated=(0,_dom.getEventTargetNode)(e,t).flag||(0,_dom.getEventTargetNode)(e,l).flag,a&&!k.isActivated&&d())},h=e=>{var t=e.disabled,e=F(e);return!t&&!Pe(e)},ve=(e,t)=>{var l=C["allowCreate"],a=k["optList"],{optFullValMaps:i,optAddMaps:o,afterVisibleList:n}=S,s=V.value;let r=n,u=0;if(l&&a.length&&(n=a[0],o[l=F(n)])&&(u=1,r=[o[l]].concat(r)),!e)if(t)for(let e=0;e<r.length;e++){var c=r[e];if(h(c))return c}else for(let e=r.length-1;0<=e;e--){var v=r[e];if(h(v))return v}let d=0;a=e?i[e[s]]:null;if(-1<(d=a?a._index+u:d))if(t)for(let e=d+1;e<=r.length-1;e++){var p=r[e];if(h(p))return p}else if(0<d)for(let e=d-1;0<=e;e--){var f=r[e];if(h(f))return f}return null},de=t=>{var e=C["clearable"],{visiblePanel:l,currentOption:a}=k;if(!N.value){var i=_ui.globalEvents.hasKey(t,_ui.GLOBAL_EVENT_KEYS.TAB),o=_ui.globalEvents.hasKey(t,_ui.GLOBAL_EVENT_KEYS.ENTER),n=_ui.globalEvents.hasKey(t,_ui.GLOBAL_EVENT_KEYS.ESCAPE),s=_ui.globalEvents.hasKey(t,_ui.GLOBAL_EVENT_KEYS.ARROW_UP),r=_ui.globalEvents.hasKey(t,_ui.GLOBAL_EVENT_KEYS.ARROW_DOWN),u=_ui.globalEvents.hasKey(t,_ui.GLOBAL_EVENT_KEYS.DELETE);if(i&&(k.isActivated=!1),l){if(n||i)d();else if(o)a&&(t.preventDefault(),t.stopPropagation(),re(t,a));else if(s||r){t.preventDefault();let e=ve(a,r);(e=e||ve(null,r))&&(ie(e),((e,t)=>{const{scrollYLoad:l}=k,{optFullValMaps:a,scrollYStore:i}=S,o=V.value,n=a[e[o]];if(n){const s=n.key;const r=n._index;if(r>-1){const u=w.value;const c=A.value;if(!c)return;const v=c.querySelector(`[optid='${s}']`);if(u)if(v){const d=u.offsetHeight;const p=1;if(t){if(v.offsetTop+v.offsetHeight-u.scrollTop>d)u.scrollTop=v.offsetTop+v.offsetHeight-d;else if(v.offsetTop+p<u.scrollTop||v.offsetTop+p>u.scrollTop+u.clientHeight)u.scrollTop=v.offsetTop-p}else if(v.offsetTop+p<u.scrollTop||v.offsetTop+p>u.scrollTop+u.clientHeight)u.scrollTop=v.offsetTop-p;else if(v.offsetTop+v.offsetHeight-u.scrollTop>d)u.scrollTop=v.offsetTop+v.offsetHeight-d}else if(l)if(t)u.scrollTop=r*i.rowHeight-u.clientHeight+i.rowHeight;else u.scrollTop=r*i.rowHeight}}})(e,r))}}else(s||r||o)&&k.isActivated&&(t.preventDefault(),v());k.isActivated&&u&&e&&p(t,null)}},pe=()=>{var{visiblePanel:e,isActivated:t}=k;e&&d(),t&&(k.isActivated=!1),(e||t)&&(e=O.value)&&e.blur()},fe=()=>{var e=k["visiblePanel"];e&&s()},_e=e=>{N.value||k.visiblePanel||(k.triggerFocusPanel=!0,v(),setTimeout(()=>{k.triggerFocusPanel=!1},500)),r("focus",{},e)},ge=e=>{ye(e),r("click",{triggerButton:!1,visible:k.visiblePanel},e)},he=e=>{k.isActivated=!1,r("blur",{},e)},me=e=>{ye(e),r("click",{triggerButton:!0,visible:k.visiblePanel},e)},xe=e=>{k.searchValue=e},be=()=>{k.isActivated=!0},Te=()=>{var{modelValue:e,remote:t,remoteMethod:l}=C,a=k["searchValue"],i=X.value,l=i.queryMethod||l;t&&l&&i.enabled?(k.searchLoading=!0,Promise.resolve(l({$select:M,searchValue:a,value:e})).then(()=>(0,_vue.nextTick)()).catch(()=>(0,_vue.nextTick)()).finally(()=>{k.searchLoading=!1,g(),f()})):(g(),f())},Ee=_xeUtils.default.debounce(Te,350,{trailing:!0}),ye=e=>{e=e.$event;e.preventDefault(),k.triggerFocusPanel?k.triggerFocusPanel=!1:(k.visiblePanel?d:v)()},Se=()=>{var e=k["scrollYLoad"],{scrollYStore:t,afterVisibleList:l}=S;k.bodyHeight=e?l.length*t.rowHeight:0,k.topSpaceHeight=e?Math.max(t.startIndex*t.rowHeight,0):0},Ve=()=>{var{filterable:e,allowCreate:t}=C;const{scrollYLoad:l,searchValue:a}=k;var{optAddMaps:i,scrollYStore:o,afterVisibleList:n}=S;const s=c.value;var r=V.value,o=l?n.slice(o.startIndex,o.endIndex):n.slice(0);return e&&t&&a&&(o.some(e=>e[s]===a)||(n=i[a]||(0,_vue.reactive)({[_()]:a,[s]:a,[r]:a}),i[a]=n,o.unshift(n))),k.optList=o,(0,_vue.nextTick)()},f=()=>{Ve(),Se()},Ce=()=>(0,_vue.nextTick)().then(()=>{var e=k["scrollYLoad"],t=S["scrollYStore"],l=U.value,a=W.value;let i=0,o;(o=l?o||l.children[0]:o)&&(i=o.offsetHeight),i=Math.max(20,i),t.rowHeight=i,(e?(l=w.value,e=Math.max(8,l?Math.ceil(l.clientHeight/i):0),l=Math.max(0,Math.min(2,_xeUtils.default.toNumber(a.oSize))),t.offsetSize=l,t.visibleSize=e,t.endIndex=Math.max(t.startIndex,e+l,t.endIndex),f):Se)()}),Le=(e,t)=>{var l=w.value;return l&&(_xeUtils.default.isNumber(e)&&(l.scrollLeft=e),_xeUtils.default.isNumber(t))&&(l.scrollTop=t),k.scrollYLoad?new Promise(e=>{setTimeout(()=>{(0,_vue.nextTick)(()=>{e()})},50)}):(0,_vue.nextTick)()},m=()=>{const{lastScrollLeft:e,lastScrollTop:t}=S;return n().then(()=>{if(e||t)return S.lastScrollLeft=0,S.lastScrollTop=0,Le(e,t)})},x=()=>{var e=I.value;return e&&e.clientWidth&&e.clientHeight?Ce():Promise.resolve()},Ie=e=>{var t=S["scrollYStore"],{startIndex:l,endIndex:a,visibleSize:i,offsetSize:o,rowHeight:n}=t,e=e.target.scrollTop,e=Math.floor(e/n),n=Math.max(0,e-1-o),o=e+i+o;!(e<=l||a-i-1<=e)||l===n&&a===o||(t.startIndex=n,t.endIndex=o,f())},Oe=e=>{var t=e.target,l=t.scrollTop,t=t.scrollLeft,a=t!==S.lastScrollLeft,i=l!==S.lastScrollTop;S.lastScrollTop=l,S.lastScrollLeft=t,k.scrollYLoad&&Ie(e),S.lastScrollTime=Date.now(),r("scroll",{scrollLeft:t,scrollTop:l,isX:a,isY:i},e)},l=e=>{{var t=e||[];const s=G.value,r=V.value,u=_(),c={},v={},d=[],p=e=>{d.push(e);let t=F(e);t||(t=getOptUniqueId(),e[u]=t),v[e[r]]={key:t,item:e,_index:-1}};t.forEach(e=>{p(e),e[s]&&(c[e[u]]=e)[s].forEach(p)}),S.fullData=d,S.optGroupKeyMaps=c,S.optFullValMaps=v,k.reactFlag++,g()}var{isLoaded:t,fullData:l,scrollYStore:a}=S,i=j.value,o=W.value;const n=V.value;if(Object.assign(a,{startIndex:0,endIndex:1,visibleSize:0}),S.synchData=e||[],k.scrollYLoad=!!o.enabled&&-1<o.gt&&(0===o.gt||o.gt<=l.length),Ve(),!t){a=i["selectMode"];if(0<e.length&&_xeUtils.default.eqNull(C.modelValue)){if("first"===a||"last"===a){const f=_xeUtils.default[a](e);f&&(0,_vue.nextTick)(()=>{_xeUtils.default.eqNull(C.modelValue)&&ee(f[n])})}S.isLoaded=!0}}return Ce().then(()=>{m()})},n=()=>{var e=w.value;return e&&(e.scrollTop=0,e.scrollLeft=0),S.lastScrollTop=0,(S.lastScrollLeft=0,_vue.nextTick)()},Pe=e=>{var t=S["optGroupKeyMaps"];return!!t[e]};t={dispatchEvent:r,loadData:l,reloadData(e){return S.isLoaded=!1,n(),l(e)},isPanelVisible(){return k.visiblePanel},togglePanel(){return(k.visiblePanel?d:v)(),(0,_vue.nextTick)()},hidePanel(){return k.visiblePanel&&d(),(0,_vue.nextTick)()},showPanel(){return k.visiblePanel||v(),(0,_vue.nextTick)()},refreshOption(){return g(),f(),(0,_vue.nextTick)()},focus(){var e=O.value;return e&&e.blur(),k.isActivated=!0,(0,_vue.nextTick)()},blur(){var e=O.value;return e&&e.blur(),(k.isActivated=!1,_vue.nextTick)()},recalculate:x,clearScroll:n};Object.assign(M,t);const we=e=>{const{allowCreate:f,optionKey:_,modelValue:g}=C,h=k["currentOption"],m=S["optAddMaps"];var t=Z.value;const x=c.value,b=V.value,T=$.value,E=t["useKey"],y=L.option;return e.map((t,e)=>{var{slots:l,className:a}=t,i=F(t),o=t[b];const n=Pe(i);var s=!(!f||!m[i]),r=!s&&(_xeUtils.default.isArray(g)?-1<g.indexOf(o):g===o),u=s||!n||isOptionVisible(t);const c=!s&&(v=r,!!t.disabled||!(!R.value||v));var v=l?l.default:null,l={option:t,group:n?t:null,$select:M};let d="",p=[];return p=y?D(y,l):v?D(v,l):d=(0,_utils.getFuncText)(t[n?T:x]||o),u?(0,_vue.h)("div",{key:E||_?i:e,class:["vxe-select-option",a?_xeUtils.default.isFunction(a)?a(l):a:"",{"vxe-select-optgroup":n,"is--disabled":c,"is--selected":r,"is--add":s,"is--hover":h&&F(h)===i}],optid:i,title:d||null,onMousedown:e=>{0===e.button&&e.stopPropagation()},onClick:e=>{c||n||re(e,t)},onMouseenter:()=>{var e;c||n||(e=S.lastScrollTime)&&Date.now()<e+250||ie(t)}},f?[(0,_vue.h)("span",{key:1,class:"vxe-select-option--label"},p),s?(0,_vue.h)("span",{key:2,class:"vxe-select-option--add-icon"},[(0,_vue.h)("i",{class:(0,_ui.getIcon)().SELECT_ADD_OPTION})]):(0,_ui.renderEmptyElement)(M)]:p):(0,_ui.renderEmptyElement)(M)})};return(0,_vue.watch)(()=>k.staticOptions,e=>{l(e)}),(0,_vue.watch)(()=>C.options,e=>{l(e||[])}),(0,_vue.watch)(()=>C.optionGroups,e=>{l(e||[])}),(0,_vue.onMounted)(()=>{(0,_vue.nextTick)(()=>{var{options:e,optionGroups:t}=C;t?l(t):e&&l(e)}),_ui.globalEvents.on(M,"mousewheel",ue),_ui.globalEvents.on(M,"mousedown",ce),_ui.globalEvents.on(M,"keydown",de),_ui.globalEvents.on(M,"blur",pe),_ui.globalEvents.on(M,"resize",fe)}),(0,_vue.onUnmounted)(()=>{_ui.globalEvents.off(M,"mousewheel"),_ui.globalEvents.off(M,"mousedown"),_ui.globalEvents.off(M,"keydown"),_ui.globalEvents.off(M,"blur"),_ui.globalEvents.off(M,"resize"),_xeUtils.default.assign(S,createInternalData())}),(0,_vue.provide)("$xeSelect",M),M.renderVN=()=>{var{modelValue:e,className:t,popupClassName:l,multiple:a,loading:i,filterable:o,showTotalButoon:n,showCheckedButoon:s,showClearButton:r}=C,{initialized:u,isActivated:c,isAniVisible:v,optList:d,visiblePanel:p,bodyHeight:f,topSpaceHeight:_}=k,g=Y.value,h=N.value,m=Q.value,x=B.value,b=q.value,T=H.value,E=L.default,y=L.header,S=L.footer;const V=L.prefix;return b?(0,_vue.h)("div",{ref:I,class:["vxe-select--readonly",t]},[(0,_vue.h)("div",{class:"vxe-select-slots",ref:"hideOption"},E?E({}):[]),(0,_vue.h)("span",{class:"vxe-select-label"},m)]):(b=_xeUtils.default.eqNull(e)?[]:_xeUtils.default.isArray(e)?e:[e],(0,_vue.h)("div",{ref:I,class:["vxe-select",t?_xeUtils.default.isFunction(t)?t({$select:M}):t:"",{["size--"+g]:g,"is--visible":p,"is--disabled":h,"is--filter":o,"is--loading":i,"is--active":c}]},[(0,_vue.h)("div",{class:"vxe-select-slots",ref:"hideOption"},E?E({}):[]),(0,_vue.h)(_input.default,{ref:O,clearable:C.clearable,placeholder:T,readonly:!0,disabled:h,type:"text",prefixIcon:C.prefixIcon,suffixIcon:i?(0,_ui.getIcon)().SELECT_LOADED:p?(0,_ui.getIcon)().SELECT_OPEN:(0,_ui.getIcon)().SELECT_CLOSE,autoFocus:!1,title:m,modelValue:m,onClear:oe,onClick:ge,onFocus:_e,onBlur:he,onSuffixClick:me},V?{prefix:()=>V({})}:{}),(0,_vue.h)(_vue.Teleport,{to:"body",disabled:!x||!u},[(0,_vue.h)("div",{ref:A,class:["vxe-table--ignore-clear vxe-select--panel",l?_xeUtils.default.isFunction(l)?l({$select:M}):l:"",{["size--"+g]:g,"is--transfer":x,"ani--leave":!i&&v,"ani--enter":!i&&p}],placement:k.panelPlacement,style:k.panelStyle},u&&(p||v)?[(0,_vue.h)("div",{class:"vxe-select--panel-wrapper"},[o?(0,_vue.h)("div",{class:"vxe-select--panel-search"},[(0,_vue.h)(_input.default,{ref:P,class:"vxe-select-search--input",modelValue:k.searchValue,type:"text",clearable:!0,disabled:!1,readonly:!1,placeholder:(0,_ui.getI18n)("vxe.select.search"),prefixIcon:(0,_ui.getIcon)().INPUT_SEARCH,"onUpdate:modelValue":xe,onFocus:be,onChange:Ee,onSearch:Ee})]):(0,_ui.renderEmptyElement)(M),n||s&&a||r||y?(0,_vue.h)("div",{class:"vxe-select--panel-header"},y?D(y,{}):[(0,_vue.h)("div",{class:"vxe-select--header-button"},[n?(0,_vue.h)("div",{class:"vxe-select--header-total"},(0,_ui.getI18n)("vxe.select.total",[b.length,d.length])):(0,_ui.renderEmptyElement)(M),(0,_vue.h)("div",{class:"vxe-select--header-btns"},[s&&a?(0,_vue.h)(_button.default,{content:(0,_ui.getI18n)("vxe.select.allChecked"),mode:"text",onClick:ne}):(0,_ui.renderEmptyElement)(M),r?(0,_vue.h)(_button.default,{content:(0,_ui.getI18n)("vxe.select.clear"),mode:"text",onClick:se}):(0,_ui.renderEmptyElement)(M)])])]):(0,_ui.renderEmptyElement)(M),(0,_vue.h)("div",{class:"vxe-select--panel-body"},[(0,_vue.h)("div",{ref:w,class:"vxe-select-option--wrapper",onScroll:Oe},[(0,_vue.h)("div",{class:"vxe-select--y-space",style:{height:f?f+"px":""}}),(0,_vue.h)("div",{ref:U,class:"vxe-select--body",style:{transform:`translateY(${_}px)`}},(()=>{var{optList:e,searchLoading:t}=k;return t?[(0,_vue.h)("div",{class:"vxe-select--search-loading"},[(0,_vue.h)("i",{class:["vxe-select--search-icon",(0,_ui.getIcon)().SELECT_LOADED]}),(0,_vue.h)("span",{class:"vxe-select--search-text"},(0,_ui.getI18n)("vxe.select.loadingText"))])]:e.length?we(e):[(0,_vue.h)("div",{class:"vxe-select--empty-placeholder"},C.emptyText||(0,_ui.getI18n)("vxe.select.emptyText"))]})())])]),S?(0,_vue.h)("div",{class:"vxe-select--panel-footer"},D(S,{})):(0,_ui.renderEmptyElement)(M)])]:[])])]))},M},render(){return this.renderVN()}});
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_comp=require("../../ui/src/comp"),_xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../ui"),_dom=require("../../ui/src/dom"),_utils=require("../../ui/src/utils"),_vn=require("../../ui/src/vn"),_input=_interopRequireDefault(require("../../input/src/input")),_button=_interopRequireDefault(require("../../button/src/button"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function isOptionVisible(e){return!1!==e.visible}function getOptUniqueId(){return _xeUtils.default.uniqueId("opt_")}function createInternalData(){return{synchData:[],fullData:[],afterVisibleList:[],optAddMaps:{},optGroupKeyMaps:{},optFullValMaps:{},remoteValMaps:{},lastScrollLeft:0,lastScrollTop:0,scrollYStore:{startIndex:0,endIndex:0,visibleSize:0,offsetSize:0,rowHeight:0},lastScrollTime:0,hpTimeout:void 0}}var _default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeSelect",props:{modelValue:[String,Number,Boolean,Array],defaultConfig:Object,clearable:Boolean,placeholder:String,readonly:{type:Boolean,default:null},loading:Boolean,disabled:{type:Boolean,default:null},multiple:Boolean,multiCharOverflow:{type:[Number,String],default:()=>(0,_ui.getConfig)().select.multiCharOverflow},prefixIcon:String,allowCreate:{type:Boolean,default:()=>(0,_ui.getConfig)().select.allowCreate},placement:String,options:Array,optionProps:Object,optionGroups:Array,optionGroupProps:Object,optionConfig:Object,className:[String,Function],popupClassName:[String,Function],max:{type:[String,Number],default:null},size:{type:String,default:()=>(0,_ui.getConfig)().select.size||(0,_ui.getConfig)().size},filterable:Boolean,filterMethod:Function,remote:Boolean,remoteConfig:Object,emptyText:String,showTotalButoon:{type:Boolean,default:()=>(0,_ui.getConfig)().select.showTotalButoon},showCheckedButoon:{type:Boolean,default:()=>(0,_ui.getConfig)().select.showCheckedButoon},showClearButton:{type:Boolean,default:()=>(0,_ui.getConfig)().select.showClearButton},transfer:{type:Boolean,default:null},virtualYConfig:Object,scrollY:Object,remoteMethod:Function,optionId:{type:String,default:()=>(0,_ui.getConfig)().select.optionId},optionKey:Boolean},emits:["update:modelValue","change","all-change","clear","blur","focus","click","scroll","visible-change"],setup(C,e){const{slots:L,emit:a}=e,b=(0,_vue.inject)("$xeModal",null),T=(0,_vue.inject)("$xeDrawer",null),E=(0,_vue.inject)("$xeTable",null),i=(0,_vue.inject)("$xeForm",null),o=(0,_vue.inject)("xeFormItemInfo",null);var t=_xeUtils.default.uniqueId();const I=(0,_vue.ref)(),O=(0,_vue.ref)(),P=(0,_vue.ref)(),w=(0,_vue.ref)(),A=(0,_vue.ref)(),U=(0,_vue.ref)(),Y=(0,_ui.useSize)(C)["computeSize"],k=(0,_vue.reactive)({initialized:!1,scrollYLoad:!1,bodyHeight:0,topSpaceHeight:0,optList:[],staticOptions:[],reactFlag:0,currentOption:null,searchValue:"",searchLoading:!1,panelIndex:0,panelStyle:{},panelPlacement:null,triggerFocusPanel:!1,visiblePanel:!1,isAniVisible:!1,isActivated:!1}),S=createInternalData(),y={refElem:I},M={xID:t,props:C,context:e,reactData:k,internalData:S,getRefMaps:()=>y},q=(0,_vue.computed)(()=>{var e=C["readonly"];return null===e?!!i&&i.props.readonly:e}),N=(0,_vue.computed)(()=>{var e=C["disabled"];return null===e?!!i&&i.props.disabled:e}),B=(0,_vue.computed)(()=>{var e=C["transfer"];if(null===e){var t=(0,_ui.getConfig)().select.transfer;if(_xeUtils.default.isBoolean(t))return t;if(E||b||T||i)return!0}return e}),H=(0,_vue.computed)(()=>{var e=C["placeholder"];return(e=e||(0,_ui.getConfig)().select.placeholder)?(0,_utils.getFuncText)(e):(0,_ui.getI18n)("vxe.base.pleaseSelect")}),j=(0,_vue.computed)(()=>Object.assign({},C.defaultConfig)),z=(0,_vue.computed)(()=>Object.assign({},C.optionProps)),K=(0,_vue.computed)(()=>Object.assign({},C.optionGroupProps)),c=(0,_vue.computed)(()=>{return z.value.label||"label"}),V=(0,_vue.computed)(()=>{return z.value.value||"value"}),$=(0,_vue.computed)(()=>{return K.value.label||"label"}),G=(0,_vue.computed)(()=>{return K.value.options||"options"}),R=(0,_vue.computed)(()=>{var e=C["modelValue"];return te(e)}),W=(0,_vue.computed)(()=>Object.assign({},(0,_ui.getConfig)().select.virtualYConfig||(0,_ui.getConfig)().select.scrollY,C.virtualYConfig||C.scrollY)),X=(0,_vue.computed)(()=>Object.assign({},(0,_ui.getConfig)().select.remoteConfig,C.remoteConfig)),Z=(0,_vue.computed)(()=>Object.assign({},(0,_ui.getConfig)().select.optionConfig,C.optionConfig)),J=(0,_vue.computed)(()=>_xeUtils.default.toNumber(C.multiCharOverflow)),Q=(0,_vue.computed)(()=>{const{modelValue:e,remote:t,multiple:l}=C;var a,i=k["reactFlag"];const o=J.value;return _xeUtils.default.eqNull(e)?"":(a=_xeUtils.default.isArray(e)?e:[e],(t&&i?a.map(e=>le(e)):a.map(e=>{e=ae(e);return l&&0<o&&e.length>o?e.substring(0,o)+"...":e})).join(", "))}),D=(e,t)=>e&&(_xeUtils.default.isString(e)&&(e=L[e]||null),_xeUtils.default.isFunction(e))?(0,_vn.getSlotVNs)(e(t)):[],r=(e,t,l)=>{a(e,(0,_ui.createEvent)(l,{$select:M},t))},ee=e=>{a("update:modelValue",e)},_=()=>{return Z.value.keyField||C.optionId||"_X_OPTION_KEY"},F=e=>{e=e[_()];return e?encodeURIComponent(e):""},te=e=>{var{multiple:t,max:l}=C;return!(!t||!l)&&(_xeUtils.default.isArray(e)?e.length:_xeUtils.default.eqNull(e)?0:1)>=_xeUtils.default.toNumber(l)},le=e=>{var{remoteValMaps:t,optFullValMaps:l}=S,a=c.value,t=t[e]||l[e],l=t?t.item:null;return _xeUtils.default.toValueString(l?l[a]:e)},ae=e=>{var t=S["optFullValMaps"],l=c.value,t=k.reactFlag?t[e]:null;return t?t.item[l]:_xeUtils.default.toValueString(e)},g=()=>{const{modelValue:t,filterable:e,filterMethod:l}=C,a=k["searchValue"],{fullData:i,optFullValMaps:o}=S,n=c.value,s=V.value,r=(""+(a||"")).toLowerCase();let u=[];return(u=e&&l?i.filter(e=>isOptionVisible(e)&&l({$select:M,group:null,option:e,searchValue:a,value:t})):e?i.filter(e=>isOptionVisible(e)&&(!r||-1<(""+(e[n]||e[s])).toLowerCase().indexOf(r))):i.filter(isOptionVisible)).forEach((e,t)=>{e=o[e[s]];e&&(e._index=t)}),S.afterVisibleList=u,(0,_vue.nextTick)()},ie=e=>{e&&(k.currentOption=e)},s=()=>{const l=C["placement"],a=k["panelIndex"],i=I.value,o=A.value,n=B.value;var e=()=>{var e=(0,_dom.updatePanelPlacement)(i,o,{placement:l,teleportTo:n}),t=Object.assign(e.style,{zIndex:a});k.panelStyle=t,k.panelPlacement=e.placement};return e(),(0,_vue.nextTick)().then(e)},v=()=>{var{loading:e,filterable:t,remote:l}=C,{fullData:a,hpTimeout:i}=S,o=N.value,n=X.value;e||o||(i&&(clearTimeout(i),S.hpTimeout=void 0),k.initialized||(k.initialized=!0),k.isActivated=!0,k.isAniVisible=!0,t&&(l&&n.enabled&&n.autoLoad&&!a.length?Te:(g(),f))(),setTimeout(()=>{k.visiblePanel=!0,C.filterable&&(0,_vue.nextTick)(()=>{var e=P.value;e&&e.focus()});x().then(()=>m())},10),setTimeout(()=>{x().then(()=>m())},100),k.panelIndex<(0,_utils.getLastZIndex)()&&(k.panelIndex=(0,_utils.nextZIndex)()),s(),r("visible-change",{visible:!0},null))},d=()=>{k.searchValue="",k.searchLoading=!1,k.visiblePanel=!1,S.hpTimeout=setTimeout(()=>{k.isAniVisible=!1},350),r("visible-change",{visible:!1},null)},u=(e,t,l)=>{ee(t),t!==C.modelValue&&(r("change",{value:t,option:l},e),i)&&o&&i.triggerItemEvent(e,o.itemConfig.field,t)},p=(e,t)=>{S.remoteValMaps={},u(e,t,null),r("clear",{value:t},e)},oe=e=>{e=e.$event;p(e,null),d()},ne=e=>{var e=e["$event"],{modelValue:t,multiple:l,max:a}=C,i=k["optList"],o=V.value;if(l){var n=_xeUtils.default.eqNull(t)?[]:_xeUtils.default.isArray(t)?t:[t];for(let e=0;e<i.length;e++){const s=i[e][o];if(te(n)){_ui.VxeUI&&_ui.VxeUI.modal.message({content:(0,_ui.getI18n)("vxe.select.overSizeErr",[a]),status:"warning"});break}n.some(e=>e===s)||n.push(s)}u(e,n,i[0]),r("all-change",{value:n},e)}},se=e=>{e=e.$event;p(e,null),d()},re=(t,l)=>{var{modelValue:a,multiple:e}=C,i=S["remoteValMaps"];const o=l[V.value];var n=i[o];if(k.visiblePanel){if(n?n.item=l:i[o]={key:F(l),item:l,_index:-1},e){let e=[];n=_xeUtils.default.eqNull(a)?[]:_xeUtils.default.isArray(a)?a:[a],i=_xeUtils.default.findIndexOf(n,e=>e===o);e=-1===i?n.concat([o]):n.filter(e=>e!==o),u(t,e,l)}else u(t,o,l),d();k.reactFlag++}},ue=e=>{var t=k["visiblePanel"];N.value||t&&(t=A.value,((0,_dom.getEventTargetNode)(e,t).flag?s:d)())},ce=e=>{var t,l,a=k["visiblePanel"];N.value||(t=I.value,l=A.value,k.isActivated=(0,_dom.getEventTargetNode)(e,t).flag||(0,_dom.getEventTargetNode)(e,l).flag,a&&!k.isActivated&&d())},h=e=>{var t=e.disabled,e=F(e);return!t&&!Pe(e)},ve=(e,t)=>{var l=C["allowCreate"],a=k["optList"],{optFullValMaps:i,optAddMaps:o,afterVisibleList:n}=S,s=V.value;let r=n,u=0;if(l&&a.length&&(n=a[0],o[l=F(n)])&&(u=1,r=[o[l]].concat(r)),!e)if(t)for(let e=0;e<r.length;e++){var c=r[e];if(h(c))return c}else for(let e=r.length-1;0<=e;e--){var v=r[e];if(h(v))return v}let d=0;a=e?i[e[s]]:null;if(-1<(d=a?a._index+u:d))if(t)for(let e=d+1;e<=r.length-1;e++){var p=r[e];if(h(p))return p}else if(0<d)for(let e=d-1;0<=e;e--){var f=r[e];if(h(f))return f}return null},de=t=>{var e=C["clearable"],{visiblePanel:l,currentOption:a}=k;if(!N.value){var i=_ui.globalEvents.hasKey(t,_ui.GLOBAL_EVENT_KEYS.TAB),o=_ui.globalEvents.hasKey(t,_ui.GLOBAL_EVENT_KEYS.ENTER),n=_ui.globalEvents.hasKey(t,_ui.GLOBAL_EVENT_KEYS.ESCAPE),s=_ui.globalEvents.hasKey(t,_ui.GLOBAL_EVENT_KEYS.ARROW_UP),r=_ui.globalEvents.hasKey(t,_ui.GLOBAL_EVENT_KEYS.ARROW_DOWN),u=_ui.globalEvents.hasKey(t,_ui.GLOBAL_EVENT_KEYS.DELETE);if(i&&(k.isActivated=!1),l){if(n||i)d();else if(o)a&&(t.preventDefault(),t.stopPropagation(),re(t,a));else if(s||r){t.preventDefault();let e=ve(a,r);(e=e||ve(null,r))&&(ie(e),((e,t)=>{const{scrollYLoad:l}=k,{optFullValMaps:a,scrollYStore:i}=S,o=V.value,n=a[e[o]];if(n){const s=n.key;const r=n._index;if(r>-1){const u=w.value;const c=A.value;if(!c)return;const v=c.querySelector(`[optid='${s}']`);if(u)if(v){const d=u.offsetHeight;const p=1;if(t){if(v.offsetTop+v.offsetHeight-u.scrollTop>d)u.scrollTop=v.offsetTop+v.offsetHeight-d;else if(v.offsetTop+p<u.scrollTop||v.offsetTop+p>u.scrollTop+u.clientHeight)u.scrollTop=v.offsetTop-p}else if(v.offsetTop+p<u.scrollTop||v.offsetTop+p>u.scrollTop+u.clientHeight)u.scrollTop=v.offsetTop-p;else if(v.offsetTop+v.offsetHeight-u.scrollTop>d)u.scrollTop=v.offsetTop+v.offsetHeight-d}else if(l)if(t)u.scrollTop=r*i.rowHeight-u.clientHeight+i.rowHeight;else u.scrollTop=r*i.rowHeight}}})(e,r))}}else(s||r||o)&&k.isActivated&&(t.preventDefault(),v());k.isActivated&&u&&e&&p(t,null)}},pe=()=>{var{visiblePanel:e,isActivated:t}=k;e&&d(),t&&(k.isActivated=!1),(e||t)&&(e=O.value)&&e.blur()},fe=()=>{var e=k["visiblePanel"];e&&s()},_e=e=>{N.value||k.visiblePanel||(k.triggerFocusPanel=!0,v(),setTimeout(()=>{k.triggerFocusPanel=!1},500)),r("focus",{},e)},ge=e=>{ye(e),r("click",{triggerButton:!1,visible:k.visiblePanel},e)},he=e=>{k.isActivated=!1,r("blur",{},e)},me=e=>{ye(e),r("click",{triggerButton:!0,visible:k.visiblePanel},e)},xe=e=>{k.searchValue=e},be=()=>{k.isActivated=!0},Te=()=>{var{modelValue:e,remote:t,remoteMethod:l}=C,a=k["searchValue"],i=X.value,l=i.queryMethod||l;t&&l&&i.enabled?(k.searchLoading=!0,Promise.resolve(l({$select:M,searchValue:a,value:e})).then(()=>(0,_vue.nextTick)()).catch(()=>(0,_vue.nextTick)()).finally(()=>{k.searchLoading=!1,g(),f()})):(g(),f())},Ee=_xeUtils.default.debounce(Te,350,{trailing:!0}),ye=e=>{e=e.$event;e.preventDefault(),k.triggerFocusPanel?k.triggerFocusPanel=!1:(k.visiblePanel?d:v)()},Se=()=>{var e=k["scrollYLoad"],{scrollYStore:t,afterVisibleList:l}=S;k.bodyHeight=e?l.length*t.rowHeight:0,k.topSpaceHeight=e?Math.max(t.startIndex*t.rowHeight,0):0},Ve=()=>{var{filterable:e,allowCreate:t}=C;const{scrollYLoad:l,searchValue:a}=k;var{optAddMaps:i,scrollYStore:o,afterVisibleList:n}=S;const s=c.value;var r=V.value,o=l?n.slice(o.startIndex,o.endIndex):n.slice(0);return e&&t&&a&&(o.some(e=>e[s]===a)||(n=i[a]||(0,_vue.reactive)({[_()]:a,[s]:a,[r]:a}),i[a]=n,o.unshift(n))),k.optList=o,(0,_vue.nextTick)()},f=()=>{Ve(),Se()},Ce=()=>(0,_vue.nextTick)().then(()=>{var e=k["scrollYLoad"],t=S["scrollYStore"],l=U.value,a=W.value;let i=0,o;(o=l?o||l.children[0]:o)&&(i=o.offsetHeight),i=Math.max(20,i),t.rowHeight=i,(e?(l=w.value,e=Math.max(8,l?Math.ceil(l.clientHeight/i):0),l=Math.max(0,Math.min(2,_xeUtils.default.toNumber(a.oSize))),t.offsetSize=l,t.visibleSize=e,t.endIndex=Math.max(t.startIndex,e+l,t.endIndex),f):Se)()}),Le=(e,t)=>{var l=w.value;return l&&(_xeUtils.default.isNumber(e)&&(l.scrollLeft=e),_xeUtils.default.isNumber(t))&&(l.scrollTop=t),k.scrollYLoad?new Promise(e=>{setTimeout(()=>{(0,_vue.nextTick)(()=>{e()})},50)}):(0,_vue.nextTick)()},m=()=>{const{lastScrollLeft:e,lastScrollTop:t}=S;return n().then(()=>{if(e||t)return S.lastScrollLeft=0,S.lastScrollTop=0,Le(e,t)})},x=()=>{var e=I.value;return e&&e.clientWidth&&e.clientHeight?Ce():Promise.resolve()},Ie=e=>{var t=S["scrollYStore"],{startIndex:l,endIndex:a,visibleSize:i,offsetSize:o,rowHeight:n}=t,e=e.target.scrollTop,e=Math.floor(e/n),n=Math.max(0,e-1-o),o=e+i+o;!(e<=l||a-i-1<=e)||l===n&&a===o||(t.startIndex=n,t.endIndex=o,f())},Oe=e=>{var t=e.target,l=t.scrollTop,t=t.scrollLeft,a=t!==S.lastScrollLeft,i=l!==S.lastScrollTop;S.lastScrollTop=l,S.lastScrollLeft=t,k.scrollYLoad&&Ie(e),S.lastScrollTime=Date.now(),r("scroll",{scrollLeft:t,scrollTop:l,isX:a,isY:i},e)},l=e=>{{var t=e||[];const s=G.value,r=V.value,u=_(),c={},v={},d=[],p=e=>{d.push(e);let t=F(e);t||(t=getOptUniqueId(),e[u]=t),v[e[r]]={key:t,item:e,_index:-1}};t.forEach(e=>{p(e),e[s]&&(c[e[u]]=e)[s].forEach(p)}),S.fullData=d,S.optGroupKeyMaps=c,S.optFullValMaps=v,k.reactFlag++,g()}var{isLoaded:t,fullData:l,scrollYStore:a}=S,i=j.value,o=W.value;const n=V.value;if(Object.assign(a,{startIndex:0,endIndex:1,visibleSize:0}),S.synchData=e||[],k.scrollYLoad=!!o.enabled&&-1<o.gt&&(0===o.gt||o.gt<=l.length),Ve(),!t){a=i["selectMode"];if(0<e.length&&_xeUtils.default.eqNull(C.modelValue)){if("first"===a||"last"===a){const f=_xeUtils.default[a](e);f&&(0,_vue.nextTick)(()=>{_xeUtils.default.eqNull(C.modelValue)&&ee(f[n])})}S.isLoaded=!0}}return Ce().then(()=>{m()})},n=()=>{var e=w.value;return e&&(e.scrollTop=0,e.scrollLeft=0),S.lastScrollTop=0,(S.lastScrollLeft=0,_vue.nextTick)()},Pe=e=>{var t=S["optGroupKeyMaps"];return!!t[e]};t={dispatchEvent:r,loadData:l,reloadData(e){return S.isLoaded=!1,n(),l(e)},isPanelVisible(){return k.visiblePanel},togglePanel(){return(k.visiblePanel?d:v)(),(0,_vue.nextTick)()},hidePanel(){return k.visiblePanel&&d(),(0,_vue.nextTick)()},showPanel(){return k.visiblePanel||v(),(0,_vue.nextTick)()},refreshOption(){return g(),f(),(0,_vue.nextTick)()},focus(){var e=O.value;return e&&e.blur(),k.isActivated=!0,(0,_vue.nextTick)()},blur(){var e=O.value;return e&&e.blur(),(k.isActivated=!1,_vue.nextTick)()},recalculate:x,clearScroll:n};Object.assign(M,t);const we=e=>{const{allowCreate:f,optionKey:_,modelValue:g}=C,h=k["currentOption"],m=S["optAddMaps"];var t=Z.value;const x=c.value,b=V.value,T=$.value,E=t["useKey"],y=L.option;return e.map((t,e)=>{var{slots:l,className:a}=t,i=F(t),o=t[b];const n=Pe(i);var s=!(!f||!m[i]),r=!s&&(_xeUtils.default.isArray(g)?-1<g.indexOf(o):g===o),u=s||!n||isOptionVisible(t);const c=!s&&(v=r,!!t.disabled||!(!R.value||v));var v=l?l.default:null,l={option:t,group:n?t:null,$select:M};let d="",p=[];return p=y?D(y,l):v?D(v,l):d=(0,_utils.getFuncText)(t[n?T:x]||o),u?(0,_vue.h)("div",{key:E||_?i:e,class:["vxe-select-option",a?_xeUtils.default.isFunction(a)?a(l):a:"",{"vxe-select-optgroup":n,"is--disabled":c,"is--selected":r,"is--add":s,"is--hover":h&&F(h)===i}],optid:i,title:d||null,onMousedown:e=>{0===e.button&&e.stopPropagation()},onClick:e=>{c||n||re(e,t)},onMouseenter:()=>{var e;c||n||(e=S.lastScrollTime)&&Date.now()<e+250||ie(t)}},f?[(0,_vue.h)("span",{key:1,class:"vxe-select-option--label"},p),s?(0,_vue.h)("span",{key:2,class:"vxe-select-option--add-icon"},[(0,_vue.h)("i",{class:(0,_ui.getIcon)().SELECT_ADD_OPTION})]):(0,_ui.renderEmptyElement)(M)]:p):(0,_ui.renderEmptyElement)(M)})};return(0,_vue.watch)(()=>k.staticOptions,e=>{l(e)}),(0,_vue.watch)(()=>C.options,e=>{l(e||[])}),(0,_vue.watch)(()=>C.optionGroups,e=>{l(e||[])}),(0,_vue.onMounted)(()=>{(0,_vue.nextTick)(()=>{var{options:e,optionGroups:t}=C;t?l(t):e&&l(e)}),_ui.globalEvents.on(M,"mousewheel",ue),_ui.globalEvents.on(M,"mousedown",ce),_ui.globalEvents.on(M,"keydown",de),_ui.globalEvents.on(M,"blur",pe),_ui.globalEvents.on(M,"resize",fe)}),(0,_vue.onUnmounted)(()=>{_ui.globalEvents.off(M,"mousewheel"),_ui.globalEvents.off(M,"mousedown"),_ui.globalEvents.off(M,"keydown"),_ui.globalEvents.off(M,"blur"),_ui.globalEvents.off(M,"resize"),_xeUtils.default.assign(S,createInternalData())}),(0,_vue.provide)("$xeSelect",M),M.renderVN=()=>{var{modelValue:e,className:t,popupClassName:l,multiple:a,loading:i,filterable:o,showTotalButoon:n,showCheckedButoon:s,showClearButton:r}=C,{initialized:u,isActivated:c,isAniVisible:v,optList:d,visiblePanel:p,bodyHeight:f,topSpaceHeight:_}=k,g=Y.value,h=N.value,m=Q.value,x=B.value,b=q.value,T=H.value,E=L.default,y=L.header,S=L.footer;const V=L.prefix;return b?(0,_vue.h)("div",{ref:I,class:["vxe-select--readonly",t]},[(0,_vue.h)("div",{class:"vxe-select-slots",ref:"hideOption"},E?E({}):[]),(0,_vue.h)("span",{class:"vxe-select-label"},m)]):(b=_xeUtils.default.eqNull(e)?[]:_xeUtils.default.isArray(e)?e:[e],(0,_vue.h)("div",{ref:I,class:["vxe-select",t?_xeUtils.default.isFunction(t)?t({$select:M}):t:"",{["size--"+g]:g,"is--visible":p,"is--disabled":h,"is--filter":o,"is--loading":i,"is--active":c}]},[(0,_vue.h)("div",{class:"vxe-select-slots",ref:"hideOption"},E?E({}):[]),(0,_vue.h)(_input.default,{ref:O,clearable:C.clearable,placeholder:T,readonly:!0,disabled:h,type:"text",prefixIcon:C.prefixIcon,suffixIcon:i?(0,_ui.getIcon)().SELECT_LOADED:p?(0,_ui.getIcon)().SELECT_OPEN:(0,_ui.getIcon)().SELECT_CLOSE,autoFocus:!1,title:m,modelValue:m,onClear:oe,onClick:ge,onFocus:_e,onBlur:he,onSuffixClick:me},V?{prefix:()=>V({})}:{}),(0,_vue.h)(_vue.Teleport,{to:"body",disabled:!x||!u},[(0,_vue.h)("div",{ref:A,class:["vxe-table--ignore-clear vxe-select--panel",l?_xeUtils.default.isFunction(l)?l({$select:M}):l:"",{["size--"+g]:g,"is--transfer":x,"ani--leave":!i&&v,"ani--enter":!i&&p}],placement:k.panelPlacement,style:k.panelStyle},u&&(p||v)?[(0,_vue.h)("div",{class:"vxe-select--panel-wrapper"},[o?(0,_vue.h)("div",{class:"vxe-select--panel-search"},[(0,_vue.h)(_input.default,{ref:P,class:"vxe-select-search--input",modelValue:k.searchValue,type:"text",clearable:!0,disabled:!1,readonly:!1,placeholder:(0,_ui.getI18n)("vxe.select.search"),prefixIcon:(0,_ui.getIcon)().INPUT_SEARCH,"onUpdate:modelValue":xe,onFocus:be,onChange:Ee,onSearch:Ee})]):(0,_ui.renderEmptyElement)(M),n||s&&a||r||y?(0,_vue.h)("div",{class:"vxe-select--panel-header"},y?D(y,{}):[(0,_vue.h)("div",{class:"vxe-select--header-button"},[n?(0,_vue.h)("div",{class:"vxe-select--header-total"},(0,_ui.getI18n)("vxe.select.total",[b.length,d.length])):(0,_ui.renderEmptyElement)(M),(0,_vue.h)("div",{class:"vxe-select--header-btns"},[s&&a?(0,_vue.h)(_button.default,{content:(0,_ui.getI18n)("vxe.select.allChecked"),mode:"text",onClick:ne}):(0,_ui.renderEmptyElement)(M),r?(0,_vue.h)(_button.default,{content:(0,_ui.getI18n)("vxe.select.clear"),mode:"text",onClick:se}):(0,_ui.renderEmptyElement)(M)])])]):(0,_ui.renderEmptyElement)(M),(0,_vue.h)("div",{class:"vxe-select--panel-body"},[(0,_vue.h)("div",{ref:w,class:"vxe-select-option--wrapper",onScroll:Oe},[(0,_vue.h)("div",{class:"vxe-select--y-space",style:{height:f?f+"px":""}}),(0,_vue.h)("div",{ref:U,class:"vxe-select--body",style:{transform:`translateY(${_}px)`}},(()=>{var{optList:e,searchLoading:t}=k;return t?[(0,_vue.h)("div",{class:"vxe-select--search-loading"},[(0,_vue.h)("i",{class:["vxe-select--search-icon",(0,_ui.getIcon)().SELECT_LOADED]}),(0,_vue.h)("span",{class:"vxe-select--search-text"},(0,_ui.getI18n)("vxe.select.loadingText"))])]:e.length?we(e):[(0,_vue.h)("div",{class:"vxe-select--empty-placeholder"},C.emptyText||(0,_ui.getI18n)("vxe.select.emptyText"))]})())])]),S?(0,_vue.h)("div",{class:"vxe-select--panel-footer"},D(S,{})):(0,_ui.renderEmptyElement)(M)])]:[])])]))},M},render(){return this.renderVN()}});