vxe-pc-ui 4.16.4 → 4.16.6

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 (64) hide show
  1. package/dist/all.esm.js +50 -30
  2. package/dist/style.css +1 -1
  3. package/dist/style.min.css +1 -1
  4. package/es/icon/style.css +1 -1
  5. package/es/icon-picker/src/icon-picker.js +15 -17
  6. package/es/icon-picker/style.css +3 -8
  7. package/es/icon-picker/style.min.css +1 -1
  8. package/es/list/src/list.js +21 -9
  9. package/es/menu/style.css +4 -2
  10. package/es/menu/style.min.css +1 -1
  11. package/es/style.css +1 -1
  12. package/es/style.min.css +1 -1
  13. package/es/tree/src/tree.js +12 -2
  14. package/es/ui/index.js +1 -1
  15. package/es/ui/src/log.js +1 -1
  16. package/es/vxe-icon-picker/style.css +3 -8
  17. package/es/vxe-icon-picker/style.min.css +1 -1
  18. package/es/vxe-menu/style.css +4 -2
  19. package/es/vxe-menu/style.min.css +1 -1
  20. package/lib/icon/style/style.css +1 -1
  21. package/lib/icon/style/style.min.css +1 -1
  22. package/lib/icon-picker/src/icon-picker.js +39 -45
  23. package/lib/icon-picker/src/icon-picker.min.js +1 -1
  24. package/lib/icon-picker/style/style.css +3 -8
  25. package/lib/icon-picker/style/style.min.css +1 -1
  26. package/lib/index.umd.js +74 -58
  27. package/lib/index.umd.min.js +1 -1
  28. package/lib/list/src/list.js +21 -9
  29. package/lib/list/src/list.min.js +1 -1
  30. package/lib/menu/style/style.css +4 -2
  31. package/lib/menu/style/style.min.css +1 -1
  32. package/lib/style.css +1 -1
  33. package/lib/style.min.css +1 -1
  34. package/lib/tree/src/tree.js +12 -2
  35. package/lib/tree/src/tree.min.js +1 -1
  36. package/lib/ui/index.js +1 -1
  37. package/lib/ui/index.min.js +1 -1
  38. package/lib/ui/src/log.js +1 -1
  39. package/lib/ui/src/log.min.js +1 -1
  40. package/lib/vxe-icon-picker/style/style.css +3 -8
  41. package/lib/vxe-icon-picker/style/style.min.css +1 -1
  42. package/lib/vxe-menu/style/style.css +4 -2
  43. package/lib/vxe-menu/style/style.min.css +1 -1
  44. package/package.json +1 -1
  45. package/packages/icon-picker/src/icon-picker.ts +14 -16
  46. package/packages/list/src/list.ts +25 -13
  47. package/packages/tree/src/tree.ts +12 -2
  48. package/styles/components/icon-picker.scss +3 -8
  49. package/styles/components/menu.scss +4 -2
  50. package/types/components/icon-picker.d.ts +7 -3
  51. package/types/components/list.d.ts +12 -0
  52. package/types/components/tree.d.ts +12 -0
  53. /package/es/icon/{iconfont.1783654856324.ttf → iconfont.1783838735018.ttf} +0 -0
  54. /package/es/icon/{iconfont.1783654856324.woff → iconfont.1783838735018.woff} +0 -0
  55. /package/es/icon/{iconfont.1783654856324.woff2 → iconfont.1783838735018.woff2} +0 -0
  56. /package/es/{iconfont.1783654856324.ttf → iconfont.1783838735018.ttf} +0 -0
  57. /package/es/{iconfont.1783654856324.woff → iconfont.1783838735018.woff} +0 -0
  58. /package/es/{iconfont.1783654856324.woff2 → iconfont.1783838735018.woff2} +0 -0
  59. /package/lib/icon/style/{iconfont.1783654856324.ttf → iconfont.1783838735018.ttf} +0 -0
  60. /package/lib/icon/style/{iconfont.1783654856324.woff → iconfont.1783838735018.woff} +0 -0
  61. /package/lib/icon/style/{iconfont.1783654856324.woff2 → iconfont.1783838735018.woff2} +0 -0
  62. /package/lib/{iconfont.1783654856324.ttf → iconfont.1783838735018.ttf} +0 -0
  63. /package/lib/{iconfont.1783654856324.woff → iconfont.1783838735018.woff} +0 -0
  64. /package/lib/{iconfont.1783654856324.woff2 → iconfont.1783838735018.woff2} +0 -0
@@ -24,7 +24,7 @@ function createReactData() {
24
24
  isAniVisible: false,
25
25
  isActivated: false,
26
26
  searchValue: '',
27
- iconGroups: []
27
+ iconList: []
28
28
  };
29
29
  }
30
30
  function createInternalData() {
@@ -166,10 +166,11 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
166
166
  const {
167
167
  chunkSize,
168
168
  height,
169
+ chunkWidth,
169
170
  maxHeight
170
171
  } = popupOpts;
171
172
  const stys = {
172
- '--vxe-ui-icon-picker-item-width': `${100 / (chunkSize || 4)}%`
173
+ '--vxe-ui-icon-picker-item-width': chunkWidth ? (0, _dom.toCssUnit)(chunkWidth) : `${100 / (chunkSize || 4)}%`
173
174
  };
174
175
  if (height) {
175
176
  stys['--vxe-ui-icon-picker-panel-height'] = (0, _dom.toCssUnit)(height);
@@ -230,8 +231,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
230
231
  const btnTransfer = computeBtnTransfer.value;
231
232
  const popupOpts = computePopupOpts.value;
232
233
  const {
233
- width,
234
- transfer
234
+ width
235
235
  } = popupOpts;
236
236
  const handleStyle = () => {
237
237
  const ppObj = (0, _dom.updatePanelPlacement)(targetElem, panelElem, {
@@ -240,12 +240,12 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
240
240
  teleportTo: btnTransfer
241
241
  });
242
242
  const panelStyle = Object.assign(ppObj.style, {
243
- zIndex: panelIndex
243
+ zIndex: panelIndex,
244
+ minWidth: undefined
244
245
  });
245
246
  if (width) {
246
247
  Object.assign(panelStyle, {
247
- width: (0, _dom.toCssUnit)(width),
248
- minWidth: transfer ? undefined : (0, _dom.toCssUnit)(width)
248
+ width: (0, _dom.toCssUnit)(width)
249
249
  });
250
250
  }
251
251
  reactData.panelStyle = panelStyle;
@@ -305,10 +305,6 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
305
305
  const {
306
306
  filterMethod
307
307
  } = filterOpts;
308
- const popupOpts = computePopupOpts.value;
309
- const {
310
- chunkSize
311
- } = popupOpts;
312
308
  const iconList = computeIconList.value;
313
309
  let visibleList = iconList;
314
310
  if (searchValue) {
@@ -325,7 +321,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
325
321
  return item.title && `${item.title}`.toLowerCase().indexOf(searchTxt) > -1 || item.icon && `${item.icon}`.indexOf(searchTxt) > -1;
326
322
  });
327
323
  }
328
- reactData.iconGroups = _xeUtils.default.chunk(visibleList, chunkSize || 4);
324
+ reactData.iconList = visibleList;
329
325
  };
330
326
  const changeEvent = (evnt, selectValue) => {
331
327
  reactData.selectIcon = selectValue;
@@ -540,48 +536,46 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
540
536
  } = props;
541
537
  const {
542
538
  selectIcon,
543
- iconGroups
539
+ iconList
544
540
  } = reactData;
545
- if (!iconGroups.length) {
541
+ if (!iconList.length) {
546
542
  return (0, _vue.h)('div', {
547
543
  class: 'vxe-ico-picker--empty-placeholder'
548
544
  }, (0, _ui.getI18n)('vxe.iconPicker.emptyText'));
549
545
  }
550
546
  return (0, _vue.h)('div', {
551
547
  class: 'vxe-ico-picker--list-wrapper'
552
- }, iconGroups.map(list => {
548
+ }, [(0, _vue.h)('div', {
549
+ class: 'vxe-ico-picker--list'
550
+ }, iconList.map(item => {
551
+ const {
552
+ iconRender
553
+ } = item;
554
+ const compConf = iconRender ? _ui.renderer.get(iconRender.name) : null;
555
+ const iconMethod = compConf ? compConf.renderIconPickerOptionIcon : null;
553
556
  return (0, _vue.h)('div', {
554
- class: 'vxe-ico-picker--list'
555
- }, list.map(item => {
556
- const {
557
- iconRender
558
- } = item;
559
- const compConf = iconRender ? _ui.renderer.get(iconRender.name) : null;
560
- const iconMethod = compConf ? compConf.renderIconPickerOptionIcon : null;
561
- return (0, _vue.h)('div', {
562
- class: ['vxe-ico-picker--item', {
563
- 'is--selected': selectIcon === item.icon
564
- }]
565
- }, [(0, _vue.h)('div', {
566
- class: 'vxe-ico-picker--item-inner',
567
- onClick(evnt) {
568
- const isDisabled = computeIsDisabled.value;
569
- if (!isDisabled) {
570
- handleClickIconEvent(evnt, item);
571
- }
557
+ class: ['vxe-ico-picker--item', {
558
+ 'is--selected': selectIcon === item.icon
559
+ }]
560
+ }, [(0, _vue.h)('div', {
561
+ class: 'vxe-ico-picker--item-inner',
562
+ onClick(evnt) {
563
+ const isDisabled = computeIsDisabled.value;
564
+ if (!isDisabled) {
565
+ handleClickIconEvent(evnt, item);
572
566
  }
573
- }, [(0, _vue.h)('div', {
574
- class: 'vxe-ico-picker--item-icon'
575
- }, iconMethod && iconRender ? (0, _vn.getSlotVNs)(iconMethod(iconRender, {
576
- $iconPicker: $xeIconPicker,
577
- option: item
578
- })) : [(0, _vue.h)('i', {
579
- class: item.icon || ''
580
- })]), showIconTitle ? (0, _vue.h)('div', {
581
- class: 'vxe-ico-picker--item-title'
582
- }, `${item.title || ''}`) : (0, _ui.renderEmptyElement)($xeIconPicker)])]);
583
- }));
584
- }));
567
+ }
568
+ }, [(0, _vue.h)('div', {
569
+ class: 'vxe-ico-picker--item-icon'
570
+ }, iconMethod && iconRender ? (0, _vn.getSlotVNs)(iconMethod(iconRender, {
571
+ $iconPicker: $xeIconPicker,
572
+ option: item
573
+ })) : [(0, _vue.h)('i', {
574
+ class: item.icon || ''
575
+ })]), showIconTitle ? (0, _vue.h)('div', {
576
+ class: 'vxe-ico-picker--item-title'
577
+ }, `${item.title || ''}`) : (0, _ui.renderEmptyElement)($xeIconPicker)])]);
578
+ }))]);
585
579
  };
586
580
  const renderIconView = () => {
587
581
  const {
@@ -1 +1 @@
1
- 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"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function createReactData(){return{initialized:!1,selectIcon:"",panelIndex:0,panelStyle:{},panelPlacement:null,visiblePanel:!1,isAniVisible:!1,isActivated:!1,searchValue:"",iconGroups:[]}}function createInternalData(){return{fullList:[]}}var _default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeIconPicker",props:{modelValue:String,placeholder:String,clearable:Boolean,size:{type:String,default:()=>(0,_ui.getConfig)().iconPicker.size||(0,_ui.getConfig)().size},className:[String,Function],popupClassName:[String,Function],showIconTitle:{type:Boolean,default:()=>(0,_ui.getConfig)().iconPicker.showIconTitle},readonly:{type:Boolean,default:null},disabled:{type:Boolean,default:null},filterable:{type:Boolean,default:()=>(0,_ui.getConfig)().iconPicker.filterable},filterConfig:Object,icons:Array,placement:String,popupConfig:Object,transfer:{type:Boolean,default:null}},emits:["update:modelValue","change","clear","click"],setup(f,e){let t=e.emit,l=(0,_vue.inject)("$xeModal",null),n=(0,_vue.inject)("$xeDrawer",null),a=(0,_vue.inject)("$xeTable",null),u=(0,_vue.inject)("$xeForm",null),r=(0,_vue.inject)("xeFormItemInfo",null);var i=_xeUtils.default.uniqueId();let g=(0,_ui.useSize)(f).computeSize,m=(0,_vue.reactive)(createReactData()),c=createInternalData(),h=(0,_vue.ref)(),x=(0,_vue.ref)(),b=(0,_vue.ref)(),E=(0,_vue.ref)(),o={refElem:h},k={xID:i,props:f,context:e,reactData:m,getRefMaps:()=>o};let P=(0,_vue.computed)(()=>{var e=f.readonly;return null===e?!!u&&u.props.readonly:e}),I=(0,_vue.computed)(()=>{var e=f.disabled;return null===e?!!u&&u.props.disabled:e}),C=(0,_vue.computed)(()=>{var e=f.transfer,i=A.value;if(_xeUtils.default.isBoolean(i.transfer))return i.transfer;if(null===e){i=(0,_ui.getConfig)().iconPicker.transfer;if(_xeUtils.default.isBoolean(i))return i;if(a||l||n||u)return!0}return e}),y=(0,_vue.computed)(()=>{var e=f.placeholder;return(e=e||(0,_ui.getConfig)().select.placeholder)?(0,_utils.getFuncText)(e):(0,_ui.getI18n)("vxe.base.pleaseSelect")}),T=(0,_vue.computed)(()=>{var{chunkSize:e,height:i,maxHeight:l}=A.value,e={"--vxe-ui-icon-picker-item-width":100/(e||4)+"%"};return i&&(e["--vxe-ui-icon-picker-panel-height"]=(0,_dom.toCssUnit)(i)),l&&(e["--vxe-ui-icon-picker-panel-max-height"]=(0,_dom.toCssUnit)(l)),e}),s=(0,_vue.computed)(()=>{let e=f.icons;return(e=e&&e.length?e:(0,_ui.getConfig)().iconPicker.icons||[]).map(e=>_xeUtils.default.isString(e)?{title:e,icon:"vxe-icon-"+(""+(e||"")).replace(/^vxe-icon-/,"")}:{title:""+(e.title||""),icon:e.icon||"",iconRender:e.iconRender})}),v=(0,_vue.computed)(()=>Object.assign({},(0,_ui.getConfig)().iconPicker.filterConfig,f.filterConfig)),A=(0,_vue.computed)(()=>Object.assign({},(0,_ui.getConfig)().iconPicker.popupConfig,f.popupConfig)),V=(0,_vue.computed)(()=>{let i=m.selectIcon;var e=s.value;return i?e.find(e=>e.icon===i):null}),d=()=>{m.panelIndex<(0,_utils.getLastZIndex)()&&(m.panelIndex=(0,_utils.nextZIndex)())},_=()=>{let l=f.placement,t=m.panelIndex,n=h.value,a=b.value,u=C.value,r=A.value,{width:c,transfer:o}=r;var e=()=>{var e=(0,_dom.updatePanelPlacement)(n,a,{placement:r.placement||l,defaultPlacement:r.defaultPlacement,teleportTo:u}),i=Object.assign(e.style,{zIndex:t});c&&Object.assign(i,{width:(0,_dom.toCssUnit)(c),minWidth:o?void 0:(0,_dom.toCssUnit)(c)}),m.panelStyle=i,m.panelPlacement=e.placement};return e(),(0,_vue.nextTick)().then(e)},p=()=>{var e=c.hpTimeout;I.value||(e&&(clearTimeout(e),c.hpTimeout=void 0),m.initialized||(m.initialized=!0),m.isActivated=!0,m.isAniVisible=!0,setTimeout(()=>{m.visiblePanel=!0,U(),_()},10),d(),_())},S=()=>{m.visiblePanel=!1,c.hpTimeout=setTimeout(()=>{m.isAniVisible=!1},350)},U=()=>{f.filterable&&(0,_vue.nextTick)(()=>{var e=E.value;e&&e.focus()})},N=()=>{let l=f.modelValue;var e=m.searchValue;let t=v.value.filterMethod;var i=A.value.chunkSize,n=s.value;let a=n;if(e){let i=(""+e).toLowerCase();a=n.filter(e=>t?t({option:e,value:l,searchValue:i,$iconPicker:k}):e.title&&-1<(""+e.title).toLowerCase().indexOf(i)||e.icon&&-1<(""+e.icon).indexOf(i))}m.iconGroups=_xeUtils.default.chunk(a,i||4)},O=(e,i)=>{(m.selectIcon=i)!==f.modelValue&&(t("update:modelValue",i),L("change",{value:i},e),u)&&r&&u.triggerItemEvent(e,r.itemConfig.field,i)},B=()=>{I.value||m.visiblePanel||p()},D=()=>{m.isActivated=!1},w=(e,i)=>{O(e,i),L("clear",{value:i},e)},K=(e,i)=>{w(i,null),S()},z=e=>{e.preventDefault(),(m.visiblePanel?S:p)()},j=e=>{z(e),L("click",{},e)},q=e=>{var i=m.visiblePanel;I.value||i&&(i=b.value,((0,_dom.getEventTargetNode)(e,i).flag?_:S)())},$=e=>{var i,l,t=m.visiblePanel;I.value||(i=h.value,l=b.value,m.isActivated=(0,_dom.getEventTargetNode)(e,i).flag||(0,_dom.getEventTargetNode)(e,l).flag,t&&!m.isActivated&&S())},G=e=>{var i,l,t,n,a,u,r,c=f.clearable,o=m.visiblePanel;I.value||(i=_ui.globalEvents.hasKey(e,_ui.GLOBAL_EVENT_KEYS.TAB),l=_ui.globalEvents.hasKey(e,_ui.GLOBAL_EVENT_KEYS.ENTER),t=_ui.globalEvents.hasKey(e,_ui.GLOBAL_EVENT_KEYS.ESCAPE),n=_ui.globalEvents.hasKey(e,_ui.GLOBAL_EVENT_KEYS.ARROW_UP),a=_ui.globalEvents.hasKey(e,_ui.GLOBAL_EVENT_KEYS.ARROW_DOWN),u=_ui.globalEvents.hasKey(e,_ui.GLOBAL_EVENT_KEYS.DELETE),r=_ui.globalEvents.hasKey(e,_ui.GLOBAL_EVENT_KEYS.SPACEBAR),i&&(m.isActivated=!1),o?t||i?S():l?(e.preventDefault(),e.stopPropagation()):(n||a||r)&&e.preventDefault():(n||a||l||r)&&m.isActivated&&(e.preventDefault(),p()),m.isActivated&&u&&c&&w(e,null))},F=()=>{var{visiblePanel:e,isActivated:i}=m;e&&S(),i&&(m.isActivated=!1),(e||i)&&(e=x.value)&&e.blur()},L=(e,i,l)=>{t(e,(0,_ui.createEvent)(l,{$iconPicker:k},i))},Y=(i={dispatchEvent:L,isPanelVisible(){return m.visiblePanel},togglePanel(){return(m.visiblePanel?S:p)(),(0,_vue.nextTick)()},hidePanel(){return m.visiblePanel&&S(),(0,_vue.nextTick)()},showPanel(){return m.visiblePanel||p(),(0,_vue.nextTick)()},focus(){var e=x.value;return m.isActivated=!0,e&&e.blur(),(0,_vue.nextTick)()},blur(){var e=x.value;return e&&e.blur(),(m.isActivated=!1,_vue.nextTick)()}},(e,i)=>{i=i.icon;O(e,i),S()}),M=e=>{m.searchValue=e},W=()=>{m.isActivated=!0};let R=_xeUtils.default.debounce(()=>{N()},350,{trailing:!0});Object.assign(k,i);return m.selectIcon=""+(f.modelValue||""),N(),(0,_vue.watch)(()=>f.modelValue,e=>{m.selectIcon=""+(e||"")}),(0,_vue.watch)(s,()=>{N()}),(0,_vue.onMounted)(()=>{_ui.globalEvents.on(k,"mousewheel",q),_ui.globalEvents.on(k,"mousedown",$),_ui.globalEvents.on(k,"keydown",G),_ui.globalEvents.on(k,"blur",F)}),(0,_vue.onBeforeUnmount)(()=>{_ui.globalEvents.off(k,"mousewheel"),_ui.globalEvents.off(k,"mousedown"),_ui.globalEvents.off(k,"keydown"),_ui.globalEvents.off(k,"blur"),_xeUtils.default.assign(m,createReactData()),_xeUtils.default.assign(c,createInternalData())}),(0,_vue.provide)("$xeIconPicker",k),k.renderVN=()=>{var{className:e,clearable:i,filterable:l}=f,{initialized:t,isActivated:n,isAniVisible:a,visiblePanel:u,selectIcon:r}=m,c=g.value,o=I.value,s=C.value,v=P.value,d=y.value,_=T.value,p=A.value.className||f.popupClassName;return v?(0,_vue.h)("div",{ref:h,class:["vxe-ico-picker--readonly",e]},[(0,_vue.h)("i",{class:r})]):(0,_vue.h)("div",{ref:h,class:["vxe-ico-picker",e?_xeUtils.default.isFunction(e)?e({$iconPicker:k}):e:"",{["size--"+c]:c,"show--clear":i&&!o&&!!r,"is--visible":u,"is--disabled":o,"is--active":n}]},[(0,_vue.h)("div",{class:"vxe-ico-picker--inner",onClick:j},[(0,_vue.h)("input",{ref:x,class:"vxe-ico-picker--input",onFocus:B,onBlur:D}),r?(()=>{var e=m.selectIcon,i=V.value;if(i){var l=i.iconRender,t=l?_ui.renderer.get(l.name):null,t=t?t.renderIconPickerOptionIcon:null;if(t&&l)return(0,_vue.h)("div",{key:"inc",class:"vxe-ico-picker--icon"},(0,_vn.getSlotVNs)(t(l,{$iconPicker:k,option:i})))}return(0,_vue.h)("div",{key:"ind",class:"vxe-ico-picker--icon"},[(0,_vue.h)("i",{class:e})])})():(0,_vue.h)("div",{class:"vxe-ico-picker--placeholder"},d),(0,_vue.h)("div",{class:"vxe-ico-picker--suffix"},[(0,_vue.h)("div",{class:"vxe-ico-picker--clear-icon",onClick:K},[(0,_vue.h)("i",{class:(0,_ui.getIcon)().INPUT_CLEAR})]),(0,_vue.h)("div",{class:"vxe-ico-picker--suffix-icon"},[(0,_vue.h)("i",{class:u?(0,_ui.getIcon)().ICON_PICKER_OPEN:(0,_ui.getIcon)().ICON_PICKER_CLOSE})])])]),(0,_vue.h)(_vue.Teleport,{to:"body",disabled:!s||!t},[(0,_vue.h)("div",{ref:b,class:["vxe-table--ignore-clear vxe-ico-picker--panel",p?_xeUtils.default.isFunction(p)?p({$iconPicker:k}):p:"",{["size--"+c]:c,"is--transfer":s,"ani--leave":a,"ani--enter":u}],placement:m.panelPlacement,style:m.panelStyle},[t&&(u||a)?(0,_vue.h)("div",{class:"vxe-ico-picker--panel-wrapper",style:_},[l?(0,_vue.h)("div",{class:"vxe-ico-picker--panel-search"},[(0,_vue.h)(_input.default,{ref:E,class:"vxe-ico-picker-search--input",modelValue:m.searchValue,type:"text",clearable:!0,disabled:!1,readonly:!1,placeholder:(0,_ui.getI18n)("vxe.iconPicker.search"),prefixIcon:(0,_ui.getIcon)().INPUT_SEARCH,"onUpdate:modelValue":M,onFocus:W,onChange:R,onSearch:R})]):(0,_ui.renderEmptyElement)(k),(()=>{let t=f.showIconTitle,{selectIcon:n,iconGroups:e}=m;return e.length?(0,_vue.h)("div",{class:"vxe-ico-picker--list-wrapper"},e.map(e=>(0,_vue.h)("div",{class:"vxe-ico-picker--list"},e.map(i=>{var e=i.iconRender,l=e?_ui.renderer.get(e.name):null,l=l?l.renderIconPickerOptionIcon:null;return(0,_vue.h)("div",{class:["vxe-ico-picker--item",{"is--selected":n===i.icon}]},[(0,_vue.h)("div",{class:"vxe-ico-picker--item-inner",onClick(e){I.value||Y(e,i)}},[(0,_vue.h)("div",{class:"vxe-ico-picker--item-icon"},l&&e?(0,_vn.getSlotVNs)(l(e,{$iconPicker:k,option:i})):[(0,_vue.h)("i",{class:i.icon||""})]),t?(0,_vue.h)("div",{class:"vxe-ico-picker--item-title"},""+(i.title||"")):(0,_ui.renderEmptyElement)(k)])])})))):(0,_vue.h)("div",{class:"vxe-ico-picker--empty-placeholder"},(0,_ui.getI18n)("vxe.iconPicker.emptyText"))})()]):(0,_ui.renderEmptyElement)(k)])])])},k},render(){return this.renderVN()}});
1
+ 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"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function createReactData(){return{initialized:!1,selectIcon:"",panelIndex:0,panelStyle:{},panelPlacement:null,visiblePanel:!1,isAniVisible:!1,isActivated:!1,searchValue:"",iconList:[]}}function createInternalData(){return{fullList:[]}}var _default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeIconPicker",props:{modelValue:String,placeholder:String,clearable:Boolean,size:{type:String,default:()=>(0,_ui.getConfig)().iconPicker.size||(0,_ui.getConfig)().size},className:[String,Function],popupClassName:[String,Function],showIconTitle:{type:Boolean,default:()=>(0,_ui.getConfig)().iconPicker.showIconTitle},readonly:{type:Boolean,default:null},disabled:{type:Boolean,default:null},filterable:{type:Boolean,default:()=>(0,_ui.getConfig)().iconPicker.filterable},filterConfig:Object,icons:Array,placement:String,popupConfig:Object,transfer:{type:Boolean,default:null}},emits:["update:modelValue","change","clear","click"],setup(f,e){let t=e.emit,l=(0,_vue.inject)("$xeModal",null),n=(0,_vue.inject)("$xeDrawer",null),a=(0,_vue.inject)("$xeTable",null),u=(0,_vue.inject)("$xeForm",null),r=(0,_vue.inject)("xeFormItemInfo",null);var i=_xeUtils.default.uniqueId();let g=(0,_ui.useSize)(f).computeSize,m=(0,_vue.reactive)(createReactData()),c=createInternalData(),h=(0,_vue.ref)(),x=(0,_vue.ref)(),b=(0,_vue.ref)(),E=(0,_vue.ref)(),o={refElem:h},k={xID:i,props:f,context:e,reactData:m,getRefMaps:()=>o};let P=(0,_vue.computed)(()=>{var e=f.readonly;return null===e?!!u&&u.props.readonly:e}),I=(0,_vue.computed)(()=>{var e=f.disabled;return null===e?!!u&&u.props.disabled:e}),C=(0,_vue.computed)(()=>{var e=f.transfer,i=A.value;if(_xeUtils.default.isBoolean(i.transfer))return i.transfer;if(null===e){i=(0,_ui.getConfig)().iconPicker.transfer;if(_xeUtils.default.isBoolean(i))return i;if(a||l||n||u)return!0}return e}),y=(0,_vue.computed)(()=>{var e=f.placeholder;return(e=e||(0,_ui.getConfig)().select.placeholder)?(0,_utils.getFuncText)(e):(0,_ui.getI18n)("vxe.base.pleaseSelect")}),T=(0,_vue.computed)(()=>{var{chunkSize:e,height:i,chunkWidth:l,maxHeight:t}=A.value,l={"--vxe-ui-icon-picker-item-width":l?(0,_dom.toCssUnit)(l):100/(e||4)+"%"};return i&&(l["--vxe-ui-icon-picker-panel-height"]=(0,_dom.toCssUnit)(i)),t&&(l["--vxe-ui-icon-picker-panel-max-height"]=(0,_dom.toCssUnit)(t)),l}),s=(0,_vue.computed)(()=>{let e=f.icons;return(e=e&&e.length?e:(0,_ui.getConfig)().iconPicker.icons||[]).map(e=>_xeUtils.default.isString(e)?{title:e,icon:"vxe-icon-"+(""+(e||"")).replace(/^vxe-icon-/,"")}:{title:""+(e.title||""),icon:e.icon||"",iconRender:e.iconRender})}),v=(0,_vue.computed)(()=>Object.assign({},(0,_ui.getConfig)().iconPicker.filterConfig,f.filterConfig)),A=(0,_vue.computed)(()=>Object.assign({},(0,_ui.getConfig)().iconPicker.popupConfig,f.popupConfig)),V=(0,_vue.computed)(()=>{let i=m.selectIcon;var e=s.value;return i?e.find(e=>e.icon===i):null}),d=()=>{m.panelIndex<(0,_utils.getLastZIndex)()&&(m.panelIndex=(0,_utils.nextZIndex)())},_=()=>{let l=f.placement,t=m.panelIndex,n=h.value,a=b.value,u=C.value,r=A.value,c=r.width;var e=()=>{var e=(0,_dom.updatePanelPlacement)(n,a,{placement:r.placement||l,defaultPlacement:r.defaultPlacement,teleportTo:u}),i=Object.assign(e.style,{zIndex:t,minWidth:void 0});c&&Object.assign(i,{width:(0,_dom.toCssUnit)(c)}),m.panelStyle=i,m.panelPlacement=e.placement};return e(),(0,_vue.nextTick)().then(e)},p=()=>{var e=c.hpTimeout;I.value||(e&&(clearTimeout(e),c.hpTimeout=void 0),m.initialized||(m.initialized=!0),m.isActivated=!0,m.isAniVisible=!0,setTimeout(()=>{m.visiblePanel=!0,B(),_()},10),d(),_())},S=()=>{m.visiblePanel=!1,c.hpTimeout=setTimeout(()=>{m.isAniVisible=!1},350)},B=()=>{f.filterable&&(0,_vue.nextTick)(()=>{var e=E.value;e&&e.focus()})},N=()=>{let l=f.modelValue;var e=m.searchValue;let t=v.value.filterMethod;var n=s.value;let a=n;if(e){let i=(""+e).toLowerCase();a=n.filter(e=>t?t({option:e,value:l,searchValue:i,$iconPicker:k}):e.title&&-1<(""+e.title).toLowerCase().indexOf(i)||e.icon&&-1<(""+e.icon).indexOf(i))}m.iconList=a},O=(e,i)=>{(m.selectIcon=i)!==f.modelValue&&(t("update:modelValue",i),w("change",{value:i},e),u)&&r&&u.triggerItemEvent(e,r.itemConfig.field,i)},U=()=>{I.value||m.visiblePanel||p()},D=()=>{m.isActivated=!1},L=(e,i)=>{O(e,i),w("clear",{value:i},e)},K=(e,i)=>{L(i,null),S()},j=e=>{e.preventDefault(),(m.visiblePanel?S:p)()},z=e=>{j(e),w("click",{},e)},q=e=>{var i=m.visiblePanel;I.value||i&&(i=b.value,((0,_dom.getEventTargetNode)(e,i).flag?_:S)())},$=e=>{var i,l,t=m.visiblePanel;I.value||(i=h.value,l=b.value,m.isActivated=(0,_dom.getEventTargetNode)(e,i).flag||(0,_dom.getEventTargetNode)(e,l).flag,t&&!m.isActivated&&S())},F=e=>{var i,l,t,n,a,u,r,c=f.clearable,o=m.visiblePanel;I.value||(i=_ui.globalEvents.hasKey(e,_ui.GLOBAL_EVENT_KEYS.TAB),l=_ui.globalEvents.hasKey(e,_ui.GLOBAL_EVENT_KEYS.ENTER),t=_ui.globalEvents.hasKey(e,_ui.GLOBAL_EVENT_KEYS.ESCAPE),n=_ui.globalEvents.hasKey(e,_ui.GLOBAL_EVENT_KEYS.ARROW_UP),a=_ui.globalEvents.hasKey(e,_ui.GLOBAL_EVENT_KEYS.ARROW_DOWN),u=_ui.globalEvents.hasKey(e,_ui.GLOBAL_EVENT_KEYS.DELETE),r=_ui.globalEvents.hasKey(e,_ui.GLOBAL_EVENT_KEYS.SPACEBAR),i&&(m.isActivated=!1),o?t||i?S():l?(e.preventDefault(),e.stopPropagation()):(n||a||r)&&e.preventDefault():(n||a||l||r)&&m.isActivated&&(e.preventDefault(),p()),m.isActivated&&u&&c&&L(e,null))},G=()=>{var{visiblePanel:e,isActivated:i}=m;e&&S(),i&&(m.isActivated=!1),(e||i)&&(e=x.value)&&e.blur()},w=(e,i,l)=>{t(e,(0,_ui.createEvent)(l,{$iconPicker:k},i))},Y=(i={dispatchEvent:w,isPanelVisible(){return m.visiblePanel},togglePanel(){return(m.visiblePanel?S:p)(),(0,_vue.nextTick)()},hidePanel(){return m.visiblePanel&&S(),(0,_vue.nextTick)()},showPanel(){return m.visiblePanel||p(),(0,_vue.nextTick)()},focus(){var e=x.value;return m.isActivated=!0,e&&e.blur(),(0,_vue.nextTick)()},blur(){var e=x.value;return e&&e.blur(),(m.isActivated=!1,_vue.nextTick)()}},(e,i)=>{i=i.icon;O(e,i),S()}),M=e=>{m.searchValue=e},W=()=>{m.isActivated=!0};let R=_xeUtils.default.debounce(()=>{N()},350,{trailing:!0});Object.assign(k,i);return m.selectIcon=""+(f.modelValue||""),N(),(0,_vue.watch)(()=>f.modelValue,e=>{m.selectIcon=""+(e||"")}),(0,_vue.watch)(s,()=>{N()}),(0,_vue.onMounted)(()=>{_ui.globalEvents.on(k,"mousewheel",q),_ui.globalEvents.on(k,"mousedown",$),_ui.globalEvents.on(k,"keydown",F),_ui.globalEvents.on(k,"blur",G)}),(0,_vue.onBeforeUnmount)(()=>{_ui.globalEvents.off(k,"mousewheel"),_ui.globalEvents.off(k,"mousedown"),_ui.globalEvents.off(k,"keydown"),_ui.globalEvents.off(k,"blur"),_xeUtils.default.assign(m,createReactData()),_xeUtils.default.assign(c,createInternalData())}),(0,_vue.provide)("$xeIconPicker",k),k.renderVN=()=>{var{className:e,clearable:i,filterable:l}=f,{initialized:t,isActivated:n,isAniVisible:a,visiblePanel:u,selectIcon:r}=m,c=g.value,o=I.value,s=C.value,v=P.value,d=y.value,_=T.value,p=A.value.className||f.popupClassName;return v?(0,_vue.h)("div",{ref:h,class:["vxe-ico-picker--readonly",e]},[(0,_vue.h)("i",{class:r})]):(0,_vue.h)("div",{ref:h,class:["vxe-ico-picker",e?_xeUtils.default.isFunction(e)?e({$iconPicker:k}):e:"",{["size--"+c]:c,"show--clear":i&&!o&&!!r,"is--visible":u,"is--disabled":o,"is--active":n}]},[(0,_vue.h)("div",{class:"vxe-ico-picker--inner",onClick:z},[(0,_vue.h)("input",{ref:x,class:"vxe-ico-picker--input",onFocus:U,onBlur:D}),r?(()=>{var e=m.selectIcon,i=V.value;if(i){var l=i.iconRender,t=l?_ui.renderer.get(l.name):null,t=t?t.renderIconPickerOptionIcon:null;if(t&&l)return(0,_vue.h)("div",{key:"inc",class:"vxe-ico-picker--icon"},(0,_vn.getSlotVNs)(t(l,{$iconPicker:k,option:i})))}return(0,_vue.h)("div",{key:"ind",class:"vxe-ico-picker--icon"},[(0,_vue.h)("i",{class:e})])})():(0,_vue.h)("div",{class:"vxe-ico-picker--placeholder"},d),(0,_vue.h)("div",{class:"vxe-ico-picker--suffix"},[(0,_vue.h)("div",{class:"vxe-ico-picker--clear-icon",onClick:K},[(0,_vue.h)("i",{class:(0,_ui.getIcon)().INPUT_CLEAR})]),(0,_vue.h)("div",{class:"vxe-ico-picker--suffix-icon"},[(0,_vue.h)("i",{class:u?(0,_ui.getIcon)().ICON_PICKER_OPEN:(0,_ui.getIcon)().ICON_PICKER_CLOSE})])])]),(0,_vue.h)(_vue.Teleport,{to:"body",disabled:!s||!t},[(0,_vue.h)("div",{ref:b,class:["vxe-table--ignore-clear vxe-ico-picker--panel",p?_xeUtils.default.isFunction(p)?p({$iconPicker:k}):p:"",{["size--"+c]:c,"is--transfer":s,"ani--leave":a,"ani--enter":u}],placement:m.panelPlacement,style:m.panelStyle},[t&&(u||a)?(0,_vue.h)("div",{class:"vxe-ico-picker--panel-wrapper",style:_},[l?(0,_vue.h)("div",{class:"vxe-ico-picker--panel-search"},[(0,_vue.h)(_input.default,{ref:E,class:"vxe-ico-picker-search--input",modelValue:m.searchValue,type:"text",clearable:!0,disabled:!1,readonly:!1,placeholder:(0,_ui.getI18n)("vxe.iconPicker.search"),prefixIcon:(0,_ui.getIcon)().INPUT_SEARCH,"onUpdate:modelValue":M,onFocus:W,onChange:R,onSearch:R})]):(0,_ui.renderEmptyElement)(k),(()=>{let t=f.showIconTitle,{selectIcon:n,iconList:e}=m;return e.length?(0,_vue.h)("div",{class:"vxe-ico-picker--list-wrapper"},[(0,_vue.h)("div",{class:"vxe-ico-picker--list"},e.map(i=>{var e=i.iconRender,l=e?_ui.renderer.get(e.name):null,l=l?l.renderIconPickerOptionIcon:null;return(0,_vue.h)("div",{class:["vxe-ico-picker--item",{"is--selected":n===i.icon}]},[(0,_vue.h)("div",{class:"vxe-ico-picker--item-inner",onClick(e){I.value||Y(e,i)}},[(0,_vue.h)("div",{class:"vxe-ico-picker--item-icon"},l&&e?(0,_vn.getSlotVNs)(l(e,{$iconPicker:k,option:i})):[(0,_vue.h)("i",{class:i.icon||""})]),t?(0,_vue.h)("div",{class:"vxe-ico-picker--item-title"},""+(i.title||"")):(0,_ui.renderEmptyElement)(k)])])}))]):(0,_vue.h)("div",{class:"vxe-ico-picker--empty-placeholder"},(0,_ui.getI18n)("vxe.iconPicker.emptyText"))})()]):(0,_ui.renderEmptyElement)(k)])])])},k},render(){return this.renderVN()}});
@@ -121,12 +121,6 @@
121
121
  color: var(--vxe-ui-font-primary-color);
122
122
  }
123
123
 
124
- .vxe-ico-picker--all-list {
125
- display: flex;
126
- flex-direction: row;
127
- flex-wrap: wrap;
128
- }
129
-
130
124
  .vxe-ico-picker--list-wrapper {
131
125
  overflow-x: hidden;
132
126
  overflow-y: auto;
@@ -138,13 +132,13 @@
138
132
  .vxe-ico-picker--list {
139
133
  display: flex;
140
134
  flex-direction: row;
135
+ flex-wrap: wrap;
141
136
  }
142
137
 
143
138
  .vxe-ico-picker--item {
144
139
  display: flex;
145
140
  flex-direction: column;
146
- min-width: 4.8em;
147
- width: var(--vxe-ui-icon-picker-item-width, 4.8em);
141
+ width: var(--vxe-ui-icon-picker-item-width, 25%);
148
142
  padding: var(--vxe-ui-layout-padding-half);
149
143
  }
150
144
  .vxe-ico-picker--item .vxe-ico-picker--item-inner {
@@ -208,6 +202,7 @@
208
202
  font-size: var(--vxe-ui-ico-picker-current-font-size);
209
203
  color: var(--vxe-ui-font-color);
210
204
  text-align: left;
205
+ width: 20em;
211
206
  }
212
207
  .vxe-ico-picker--panel:not(.is--transfer) {
213
208
  min-width: 100%;
@@ -1 +1 @@
1
- .vxe-ico-picker,.vxe-ico-picker--panel{--vxe-ui-ico-picker-current-font-size:var(--vxe-ui-font-size-default);--vxe-ui-ico-picker-current-height:var(--vxe-ui-input-height-default)}.vxe-ico-picker--panel.size--medium,.vxe-ico-picker.size--medium{--vxe-ui-ico-picker-current-font-size:var(--vxe-ui-font-size-medium);--vxe-ui-ico-picker-current-height:var(--vxe-ui-input-height-medium)}.vxe-ico-picker--panel.size--small,.vxe-ico-picker.size--small{--vxe-ui-ico-picker-current-font-size:var(--vxe-ui-font-size-small);--vxe-ui-ico-picker-current-height:var(--vxe-ui-input-height-small)}.vxe-ico-picker--panel.size--mini,.vxe-ico-picker.size--mini{--vxe-ui-ico-picker-current-font-size:var(--vxe-ui-font-size-mini);--vxe-ui-ico-picker-current-height:var(--vxe-ui-input-height-mini)}.vxe-ico-picker{position:relative;display:inline-block;font-size:var(--vxe-ui-ico-picker-current-font-size);color:var(--vxe-ui-font-color);width:100px;border:1px solid var(--vxe-ui-input-border-color);border-radius:var(--vxe-ui-base-border-radius);background-color:var(--vxe-ui-layout-background-color);height:var(--vxe-ui-ico-picker-current-height);line-height:var(--vxe-ui-ico-picker-current-height)}.vxe-ico-picker.is--disabled{background-color:var(--vxe-ui-input-disabled-background-color);color:var(--vxe-ui-font-disabled-color);cursor:no-drop}.vxe-ico-picker.show--clear:hover .vxe-ico-picker--clear-icon{display:block}.vxe-ico-picker.is--active{border-color:var(--vxe-ui-font-primary-color)}.vxe-ico-picker--inner{display:flex;flex-direction:row;width:100%;padding:0 .5em}.vxe-ico-picker--input{position:absolute;z-index:-1;width:1px;height:1px;outline:0;border:0}.vxe-ico-picker--icon{flex-grow:1;display:inline-flex;flex-direction:row;align-items:center;justify-content:left;padding:0 .5em}.vxe-ico-picker--icon>svg{max-width:1em;max-height:1em;vertical-align:middle}.vxe-ico-picker--placeholder{flex-grow:1;color:var(--vxe-ui-input-placeholder-color);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vxe-ico-picker--suffix{display:flex;flex-direction:row;flex-shrink:0;color:var(--vxe-ui-input-placeholder-color);cursor:pointer}.vxe-ico-picker--suffix .vxe-ico-picker--suffix-icon>i{display:inline-block;transition:transform .2s ease-in-out}.vxe-ico-picker--panel-search{display:block;flex-shrink:0;padding:var(--vxe-ui-layout-padding-default)}.vxe-ico-picker--panel-search .vxe-ico-picker-search--input{width:100%}.vxe-ico-picker--readonly{color:var(--vxe-ui-font-color);display:inline-flex}.vxe-ico-picker--clear-icon{display:none;padding-right:.5em;height:100%;color:var(--vxe-ui-input-placeholder-color);cursor:pointer}.vxe-ico-picker--clear-icon:hover{color:var(--vxe-ui-font-color)}.vxe-ico-picker--clear-icon:active{color:var(--vxe-ui-font-primary-color)}.vxe-ico-picker--all-list{display:flex;flex-direction:row;flex-wrap:wrap}.vxe-ico-picker--list-wrapper{overflow-x:hidden;overflow-y:auto;height:var(--vxe-ui-icon-picker-panel-height);max-height:var(--vxe-ui-icon-picker-panel-max-height,var(--vxe-ui-icon-picker-panel-height,22.3em));padding:var(--vxe-ui-layout-padding-qtr)}.vxe-ico-picker--list{display:flex;flex-direction:row}.vxe-ico-picker--item{display:flex;flex-direction:column;min-width:4.8em;width:var(--vxe-ui-icon-picker-item-width,4.8em);padding:var(--vxe-ui-layout-padding-half)}.vxe-ico-picker--item .vxe-ico-picker--item-inner{padding:.2em;border:1px solid var(--vxe-ui-input-border-color);border-radius:var(--vxe-ui-base-border-radius);cursor:pointer}.vxe-ico-picker--item .vxe-ico-picker--item-inner:hover{background-color:var(--vxe-ui-base-hover-background-color)}.vxe-ico-picker--item.is--selected .vxe-ico-picker--item-inner{color:var(--vxe-ui-font-primary-color);border-color:var(--vxe-ui-font-primary-color)}.vxe-ico-picker--item-icon{flex-grow:1;display:flex;flex-direction:row;align-items:center;justify-content:center;height:1.5em;font-size:var(--vxe-ui-icon-picker-panel-icon-font-size)}.vxe-ico-picker--item-icon>svg{max-width:1em;max-height:1em;vertical-align:middle}.vxe-ico-picker--item-title{padding:0 .2em;line-height:1.3em;flex-shrink:0;text-align:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.9em}.vxe-ico-picker--item-icon,.vxe-ico-picker--item-title{width:100%}.vxe-ico-picker--panel-wrapper{position:relative;border-radius:var(--vxe-ui-base-border-radius);border:1px solid var(--vxe-ui-base-popup-border-color);box-shadow:var(--vxe-ui-base-popup-box-shadow);background-color:var(--vxe-ui-layout-background-color)}.vxe-ico-picker--panel{display:none;position:absolute;left:0;padding:4px 0;font-size:var(--vxe-ui-ico-picker-current-font-size);color:var(--vxe-ui-font-color);text-align:left}.vxe-ico-picker--panel:not(.is--transfer){min-width:100%}.vxe-ico-picker--panel.is--transfer{position:fixed}.vxe-ico-picker--panel.ani--leave{display:block;opacity:0;transform:scaleY(.5);transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1);transform-origin:center top;backface-visibility:hidden}.vxe-ico-picker--panel.ani--leave[placement=top]{transform-origin:center bottom}.vxe-ico-picker--panel.ani--enter{opacity:1;transform:scaleY(1)}.vxe-ico-picker--empty-placeholder{display:flex;flex-direction:row;align-items:center;justify-content:center;padding:0 .6em;text-align:center;min-height:4em}
1
+ .vxe-ico-picker,.vxe-ico-picker--panel{--vxe-ui-ico-picker-current-font-size:var(--vxe-ui-font-size-default);--vxe-ui-ico-picker-current-height:var(--vxe-ui-input-height-default)}.vxe-ico-picker--panel.size--medium,.vxe-ico-picker.size--medium{--vxe-ui-ico-picker-current-font-size:var(--vxe-ui-font-size-medium);--vxe-ui-ico-picker-current-height:var(--vxe-ui-input-height-medium)}.vxe-ico-picker--panel.size--small,.vxe-ico-picker.size--small{--vxe-ui-ico-picker-current-font-size:var(--vxe-ui-font-size-small);--vxe-ui-ico-picker-current-height:var(--vxe-ui-input-height-small)}.vxe-ico-picker--panel.size--mini,.vxe-ico-picker.size--mini{--vxe-ui-ico-picker-current-font-size:var(--vxe-ui-font-size-mini);--vxe-ui-ico-picker-current-height:var(--vxe-ui-input-height-mini)}.vxe-ico-picker{position:relative;display:inline-block;font-size:var(--vxe-ui-ico-picker-current-font-size);color:var(--vxe-ui-font-color);width:100px;border:1px solid var(--vxe-ui-input-border-color);border-radius:var(--vxe-ui-base-border-radius);background-color:var(--vxe-ui-layout-background-color);height:var(--vxe-ui-ico-picker-current-height);line-height:var(--vxe-ui-ico-picker-current-height)}.vxe-ico-picker.is--disabled{background-color:var(--vxe-ui-input-disabled-background-color);color:var(--vxe-ui-font-disabled-color);cursor:no-drop}.vxe-ico-picker.show--clear:hover .vxe-ico-picker--clear-icon{display:block}.vxe-ico-picker.is--active{border-color:var(--vxe-ui-font-primary-color)}.vxe-ico-picker--inner{display:flex;flex-direction:row;width:100%;padding:0 .5em}.vxe-ico-picker--input{position:absolute;z-index:-1;width:1px;height:1px;outline:0;border:0}.vxe-ico-picker--icon{flex-grow:1;display:inline-flex;flex-direction:row;align-items:center;justify-content:left;padding:0 .5em}.vxe-ico-picker--icon>svg{max-width:1em;max-height:1em;vertical-align:middle}.vxe-ico-picker--placeholder{flex-grow:1;color:var(--vxe-ui-input-placeholder-color);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vxe-ico-picker--suffix{display:flex;flex-direction:row;flex-shrink:0;color:var(--vxe-ui-input-placeholder-color);cursor:pointer}.vxe-ico-picker--suffix .vxe-ico-picker--suffix-icon>i{display:inline-block;transition:transform .2s ease-in-out}.vxe-ico-picker--panel-search{display:block;flex-shrink:0;padding:var(--vxe-ui-layout-padding-default)}.vxe-ico-picker--panel-search .vxe-ico-picker-search--input{width:100%}.vxe-ico-picker--readonly{color:var(--vxe-ui-font-color);display:inline-flex}.vxe-ico-picker--clear-icon{display:none;padding-right:.5em;height:100%;color:var(--vxe-ui-input-placeholder-color);cursor:pointer}.vxe-ico-picker--clear-icon:hover{color:var(--vxe-ui-font-color)}.vxe-ico-picker--clear-icon:active{color:var(--vxe-ui-font-primary-color)}.vxe-ico-picker--list-wrapper{overflow-x:hidden;overflow-y:auto;height:var(--vxe-ui-icon-picker-panel-height);max-height:var(--vxe-ui-icon-picker-panel-max-height,var(--vxe-ui-icon-picker-panel-height,22.3em));padding:var(--vxe-ui-layout-padding-qtr)}.vxe-ico-picker--list{display:flex;flex-direction:row;flex-wrap:wrap}.vxe-ico-picker--item{display:flex;flex-direction:column;width:var(--vxe-ui-icon-picker-item-width,25%);padding:var(--vxe-ui-layout-padding-half)}.vxe-ico-picker--item .vxe-ico-picker--item-inner{padding:.2em;border:1px solid var(--vxe-ui-input-border-color);border-radius:var(--vxe-ui-base-border-radius);cursor:pointer}.vxe-ico-picker--item .vxe-ico-picker--item-inner:hover{background-color:var(--vxe-ui-base-hover-background-color)}.vxe-ico-picker--item.is--selected .vxe-ico-picker--item-inner{color:var(--vxe-ui-font-primary-color);border-color:var(--vxe-ui-font-primary-color)}.vxe-ico-picker--item-icon{flex-grow:1;display:flex;flex-direction:row;align-items:center;justify-content:center;height:1.5em;font-size:var(--vxe-ui-icon-picker-panel-icon-font-size)}.vxe-ico-picker--item-icon>svg{max-width:1em;max-height:1em;vertical-align:middle}.vxe-ico-picker--item-title{padding:0 .2em;line-height:1.3em;flex-shrink:0;text-align:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.9em}.vxe-ico-picker--item-icon,.vxe-ico-picker--item-title{width:100%}.vxe-ico-picker--panel-wrapper{position:relative;border-radius:var(--vxe-ui-base-border-radius);border:1px solid var(--vxe-ui-base-popup-border-color);box-shadow:var(--vxe-ui-base-popup-box-shadow);background-color:var(--vxe-ui-layout-background-color)}.vxe-ico-picker--panel{display:none;position:absolute;left:0;padding:4px 0;font-size:var(--vxe-ui-ico-picker-current-font-size);color:var(--vxe-ui-font-color);text-align:left;width:20em}.vxe-ico-picker--panel:not(.is--transfer){min-width:100%}.vxe-ico-picker--panel.is--transfer{position:fixed}.vxe-ico-picker--panel.ani--leave{display:block;opacity:0;transform:scaleY(.5);transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1);transform-origin:center top;backface-visibility:hidden}.vxe-ico-picker--panel.ani--leave[placement=top]{transform-origin:center bottom}.vxe-ico-picker--panel.ani--enter{opacity:1;transform:scaleY(1)}.vxe-ico-picker--empty-placeholder{display:flex;flex-direction:row;align-items:center;justify-content:center;padding:0 .6em;text-align:center;min-height:4em}
package/lib/index.umd.js CHANGED
@@ -4657,7 +4657,7 @@ function checkDynamic() {
4657
4657
  const {
4658
4658
  log: log_log
4659
4659
  } = VxeUI;
4660
- const uiVersion = `ui v${"4.16.4"}`;
4660
+ const uiVersion = `ui v${"4.16.6"}`;
4661
4661
  function createComponentLog(name) {
4662
4662
  const tableVersion = VxeUI.tableVersion ? `table v${VxeUI.tableVersion}` : '';
4663
4663
  const ganttVersion = VxeUI.ganttVersion ? `gantt v${VxeUI.ganttVersion}` : '';
@@ -4675,7 +4675,7 @@ const errLog = log_log.create('error', uiVersion);
4675
4675
 
4676
4676
 
4677
4677
 
4678
- const ui_version = "4.16.4";
4678
+ const ui_version = "4.16.6";
4679
4679
  VxeUI.uiVersion = ui_version;
4680
4680
  VxeUI.dynamicApp = dynamicApp;
4681
4681
  function config(options) {
@@ -12524,7 +12524,12 @@ let crossListDragRowObj = null;
12524
12524
  const el = refElem.value;
12525
12525
  if (el) {
12526
12526
  const parentEl = el.parentElement;
12527
- reactData.parentHeight = parentEl ? parentEl.clientHeight : 0;
12527
+ let parentHeight = 0;
12528
+ if (parentEl) {
12529
+ const parentStyle = getComputedStyle(parentEl);
12530
+ parentHeight = parentEl.clientHeight - Math.ceil(external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().toNumber(parentStyle.paddingLeft) + external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().toNumber(parentStyle.paddingRight));
12531
+ }
12532
+ reactData.parentHeight = parentHeight;
12528
12533
  updateHeight();
12529
12534
  if (el.clientWidth && el.clientHeight) {
12530
12535
  return computeScrollLoad();
@@ -13318,7 +13323,7 @@ let crossListDragRowObj = null;
13318
13323
  emitCheckboxMode(value);
13319
13324
  return updateCheckboxStatus();
13320
13325
  };
13321
- const getCheckboxRows = () => {
13326
+ const getCheckboxRecords = () => {
13322
13327
  const {
13323
13328
  updateCheckboxFlag
13324
13329
  } = reactData;
@@ -13738,7 +13743,8 @@ let crossListDragRowObj = null;
13738
13743
  clearRadioRow,
13739
13744
  setCheckboxRow,
13740
13745
  setCheckboxRowByKey,
13741
- getCheckboxRows,
13746
+ getCheckboxRecords,
13747
+ getCheckboxRows: getCheckboxRecords,
13742
13748
  getCheckboxRowKeys,
13743
13749
  clearCheckboxRow,
13744
13750
  setAllCheckboxRow,
@@ -13850,6 +13856,12 @@ let crossListDragRowObj = null;
13850
13856
  isRemoveByRow(row) {
13851
13857
  const rowid = getRowId(row);
13852
13858
  return !!reactData.removeRowFlag && !!internalData.removeRowMaps[rowid];
13859
+ },
13860
+ getRecordset() {
13861
+ return {
13862
+ insertRecords: $xeList.getInsertRecords(),
13863
+ removeRecords: $xeList.getRemoveRecords()
13864
+ };
13853
13865
  }
13854
13866
  };
13855
13867
  const listPrivateMethods = {
@@ -14216,6 +14228,12 @@ let crossListDragRowObj = null;
14216
14228
  isCheckboxChecked = !!(updateCheckboxFlag && selectCheckboxMaps[rowid]);
14217
14229
  }
14218
14230
  const ctVNs = [];
14231
+ if (showRadio) {
14232
+ ctVNs.push(renderRadio(row, rowid, isRadioChecked));
14233
+ }
14234
+ if (showCheckbox) {
14235
+ ctVNs.push(renderCheckbox(row, rowid, isCheckboxChecked));
14236
+ }
14219
14237
  let isDragDisabled = false;
14220
14238
  if (isDrag && keyField && (!visibleMethod || visibleMethod(rowParams))) {
14221
14239
  const handleOns = {};
@@ -14238,12 +14256,6 @@ let crossListDragRowObj = null;
14238
14256
  class: icon || getIcon().LIST_DRAG
14239
14257
  })])]));
14240
14258
  }
14241
- if (showRadio) {
14242
- ctVNs.push(renderRadio(row, rowid, isRadioChecked));
14243
- }
14244
- if (showCheckbox) {
14245
- ctVNs.push(renderCheckbox(row, rowid, isCheckboxChecked));
14246
- }
14247
14259
  ctVNs.push((0,external_commonjs_vue_commonjs2_vue_root_Vue_.h)('div', {
14248
14260
  key: 'ct5',
14249
14261
  class: 'vxe-list--row-content'
@@ -33549,7 +33561,7 @@ function icon_picker_createReactData() {
33549
33561
  isAniVisible: false,
33550
33562
  isActivated: false,
33551
33563
  searchValue: '',
33552
- iconGroups: []
33564
+ iconList: []
33553
33565
  };
33554
33566
  }
33555
33567
  function icon_picker_createInternalData() {
@@ -33691,10 +33703,11 @@ function icon_picker_createInternalData() {
33691
33703
  const {
33692
33704
  chunkSize,
33693
33705
  height,
33706
+ chunkWidth,
33694
33707
  maxHeight
33695
33708
  } = popupOpts;
33696
33709
  const stys = {
33697
- '--vxe-ui-icon-picker-item-width': `${100 / (chunkSize || 4)}%`
33710
+ '--vxe-ui-icon-picker-item-width': chunkWidth ? toCssUnit(chunkWidth) : `${100 / (chunkSize || 4)}%`
33698
33711
  };
33699
33712
  if (height) {
33700
33713
  stys['--vxe-ui-icon-picker-panel-height'] = toCssUnit(height);
@@ -33755,8 +33768,7 @@ function icon_picker_createInternalData() {
33755
33768
  const btnTransfer = computeBtnTransfer.value;
33756
33769
  const popupOpts = computePopupOpts.value;
33757
33770
  const {
33758
- width,
33759
- transfer
33771
+ width
33760
33772
  } = popupOpts;
33761
33773
  const handleStyle = () => {
33762
33774
  const ppObj = updatePanelPlacement(targetElem, panelElem, {
@@ -33765,12 +33777,12 @@ function icon_picker_createInternalData() {
33765
33777
  teleportTo: btnTransfer
33766
33778
  });
33767
33779
  const panelStyle = Object.assign(ppObj.style, {
33768
- zIndex: panelIndex
33780
+ zIndex: panelIndex,
33781
+ minWidth: undefined
33769
33782
  });
33770
33783
  if (width) {
33771
33784
  Object.assign(panelStyle, {
33772
- width: toCssUnit(width),
33773
- minWidth: transfer ? undefined : toCssUnit(width)
33785
+ width: toCssUnit(width)
33774
33786
  });
33775
33787
  }
33776
33788
  reactData.panelStyle = panelStyle;
@@ -33830,10 +33842,6 @@ function icon_picker_createInternalData() {
33830
33842
  const {
33831
33843
  filterMethod
33832
33844
  } = filterOpts;
33833
- const popupOpts = computePopupOpts.value;
33834
- const {
33835
- chunkSize
33836
- } = popupOpts;
33837
33845
  const iconList = computeIconList.value;
33838
33846
  let visibleList = iconList;
33839
33847
  if (searchValue) {
@@ -33850,7 +33858,7 @@ function icon_picker_createInternalData() {
33850
33858
  return item.title && `${item.title}`.toLowerCase().indexOf(searchTxt) > -1 || item.icon && `${item.icon}`.indexOf(searchTxt) > -1;
33851
33859
  });
33852
33860
  }
33853
- reactData.iconGroups = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().chunk(visibleList, chunkSize || 4);
33861
+ reactData.iconList = visibleList;
33854
33862
  };
33855
33863
  const changeEvent = (evnt, selectValue) => {
33856
33864
  reactData.selectIcon = selectValue;
@@ -34065,48 +34073,46 @@ function icon_picker_createInternalData() {
34065
34073
  } = props;
34066
34074
  const {
34067
34075
  selectIcon,
34068
- iconGroups
34076
+ iconList
34069
34077
  } = reactData;
34070
- if (!iconGroups.length) {
34078
+ if (!iconList.length) {
34071
34079
  return (0,external_commonjs_vue_commonjs2_vue_root_Vue_.h)('div', {
34072
34080
  class: 'vxe-ico-picker--empty-placeholder'
34073
34081
  }, getI18n('vxe.iconPicker.emptyText'));
34074
34082
  }
34075
34083
  return (0,external_commonjs_vue_commonjs2_vue_root_Vue_.h)('div', {
34076
34084
  class: 'vxe-ico-picker--list-wrapper'
34077
- }, iconGroups.map(list => {
34085
+ }, [(0,external_commonjs_vue_commonjs2_vue_root_Vue_.h)('div', {
34086
+ class: 'vxe-ico-picker--list'
34087
+ }, iconList.map(item => {
34088
+ const {
34089
+ iconRender
34090
+ } = item;
34091
+ const compConf = iconRender ? renderer.get(iconRender.name) : null;
34092
+ const iconMethod = compConf ? compConf.renderIconPickerOptionIcon : null;
34078
34093
  return (0,external_commonjs_vue_commonjs2_vue_root_Vue_.h)('div', {
34079
- class: 'vxe-ico-picker--list'
34080
- }, list.map(item => {
34081
- const {
34082
- iconRender
34083
- } = item;
34084
- const compConf = iconRender ? renderer.get(iconRender.name) : null;
34085
- const iconMethod = compConf ? compConf.renderIconPickerOptionIcon : null;
34086
- return (0,external_commonjs_vue_commonjs2_vue_root_Vue_.h)('div', {
34087
- class: ['vxe-ico-picker--item', {
34088
- 'is--selected': selectIcon === item.icon
34089
- }]
34090
- }, [(0,external_commonjs_vue_commonjs2_vue_root_Vue_.h)('div', {
34091
- class: 'vxe-ico-picker--item-inner',
34092
- onClick(evnt) {
34093
- const isDisabled = computeIsDisabled.value;
34094
- if (!isDisabled) {
34095
- handleClickIconEvent(evnt, item);
34096
- }
34094
+ class: ['vxe-ico-picker--item', {
34095
+ 'is--selected': selectIcon === item.icon
34096
+ }]
34097
+ }, [(0,external_commonjs_vue_commonjs2_vue_root_Vue_.h)('div', {
34098
+ class: 'vxe-ico-picker--item-inner',
34099
+ onClick(evnt) {
34100
+ const isDisabled = computeIsDisabled.value;
34101
+ if (!isDisabled) {
34102
+ handleClickIconEvent(evnt, item);
34097
34103
  }
34098
- }, [(0,external_commonjs_vue_commonjs2_vue_root_Vue_.h)('div', {
34099
- class: 'vxe-ico-picker--item-icon'
34100
- }, iconMethod && iconRender ? vn_getSlotVNs(iconMethod(iconRender, {
34101
- $iconPicker: $xeIconPicker,
34102
- option: item
34103
- })) : [(0,external_commonjs_vue_commonjs2_vue_root_Vue_.h)('i', {
34104
- class: item.icon || ''
34105
- })]), showIconTitle ? (0,external_commonjs_vue_commonjs2_vue_root_Vue_.h)('div', {
34106
- class: 'vxe-ico-picker--item-title'
34107
- }, `${item.title || ''}`) : renderEmptyElement($xeIconPicker)])]);
34108
- }));
34109
- }));
34104
+ }
34105
+ }, [(0,external_commonjs_vue_commonjs2_vue_root_Vue_.h)('div', {
34106
+ class: 'vxe-ico-picker--item-icon'
34107
+ }, iconMethod && iconRender ? vn_getSlotVNs(iconMethod(iconRender, {
34108
+ $iconPicker: $xeIconPicker,
34109
+ option: item
34110
+ })) : [(0,external_commonjs_vue_commonjs2_vue_root_Vue_.h)('i', {
34111
+ class: item.icon || ''
34112
+ })]), showIconTitle ? (0,external_commonjs_vue_commonjs2_vue_root_Vue_.h)('div', {
34113
+ class: 'vxe-ico-picker--item-title'
34114
+ }, `${item.title || ''}`) : renderEmptyElement($xeIconPicker)])]);
34115
+ }))]);
34110
34116
  };
34111
34117
  const renderIconView = () => {
34112
34118
  const {
@@ -51653,6 +51659,9 @@ let crossTreeDragNodeObj = null;
51653
51659
  return nodeKeys;
51654
51660
  },
51655
51661
  getCheckboxNodes() {
51662
+ return $xeTree.getCheckboxRecords();
51663
+ },
51664
+ getCheckboxRecords() {
51656
51665
  const {
51657
51666
  nodeMaps,
51658
51667
  selectCheckboxMaps
@@ -52141,7 +52150,13 @@ let crossTreeDragNodeObj = null;
52141
52150
  const nodeid = getNodeId(node);
52142
52151
  return !!reactData.removeNodeFlag && !!internalData.removeNodeMaps[nodeid];
52143
52152
  },
52144
- closeTooltip
52153
+ closeTooltip,
52154
+ getRecordset() {
52155
+ return {
52156
+ insertRecords: $xeTree.getInsertRecords(),
52157
+ removeRecords: $xeTree.getRemoveRecords()
52158
+ };
52159
+ }
52145
52160
  };
52146
52161
  const handleNodeDragEndClearStatus = () => {
52147
52162
  clearNodeDragData();
@@ -53216,7 +53231,7 @@ let crossTreeDragNodeObj = null;
53216
53231
  }
53217
53232
  }, iconSlot ? vn_getSlotVNs(iconSlot(nParams)) : [(0,external_commonjs_vue_commonjs2_vue_root_Vue_.h)('i', {
53218
53233
  class: isLazyLoading ? iconLoaded || tree_getIcon().TREE_NODE_LOADED : isExpand ? iconOpen || tree_getIcon().TREE_NODE_OPEN : iconClose || tree_getIcon().TREE_NODE_CLOSE
53219
- })])] : []), renderDragIcon(node, nodeid), renderRadio(node, nodeid, isExistChild, nLevel, isRadioChecked), renderCheckbox(node, nodeid, isExistChild, nLevel, isCheckboxChecked, isIndeterminate), (0,external_commonjs_vue_commonjs2_vue_root_Vue_.h)('div', {
53234
+ })])] : []), renderRadio(node, nodeid, isExistChild, nLevel, isRadioChecked), renderCheckbox(node, nodeid, isExistChild, nLevel, isCheckboxChecked, isIndeterminate), renderDragIcon(node, nodeid), (0,external_commonjs_vue_commonjs2_vue_root_Vue_.h)('div', {
53220
53235
  class: 'vxe-tree--node-item-inner'
53221
53236
  }, [(0,external_commonjs_vue_commonjs2_vue_root_Vue_.h)('div', {
53222
53237
  class: 'vxe-tree--node-item-wrapper'
@@ -53499,6 +53514,7 @@ let crossTreeDragNodeObj = null;
53499
53514
  }
53500
53515
  internalData.resizeObserver = resizeObserver;
53501
53516
  }
53517
+ recalculate();
53502
53518
  globalEvents.on($xeTree, 'resize', handleGlobalResizeEvent);
53503
53519
  });
53504
53520
  (0,external_commonjs_vue_commonjs2_vue_root_Vue_.onBeforeUnmount)(() => {