vxe-pc-ui 4.10.10 → 4.10.11

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 (115) hide show
  1. package/es/components.js +6 -0
  2. package/es/icon/style.css +1 -1
  3. package/es/split/index.js +2 -2
  4. package/es/split/style.css +79 -79
  5. package/es/split/style.min.css +1 -1
  6. package/es/split-pane/index.js +2 -2
  7. package/es/splitter/index.js +12 -0
  8. package/es/{split/src/split-pane.js → splitter/src/splitter-panel.js} +15 -15
  9. package/es/{split/src/split.js → splitter/src/splitter.js} +137 -68
  10. package/es/splitter/src/util.js +17 -0
  11. package/es/splitter/style.css +288 -0
  12. package/es/splitter/style.min.css +1 -0
  13. package/es/splitter-panel/index.js +12 -0
  14. package/es/splitter-panel/style.css +0 -0
  15. package/es/splitter-panel/style.min.css +0 -0
  16. package/es/style.css +1 -1
  17. package/es/style.min.css +1 -1
  18. package/es/ui/index.js +3 -3
  19. package/es/ui/src/log.js +1 -1
  20. package/es/vxe-split/style.css +79 -79
  21. package/es/vxe-split/style.min.css +1 -1
  22. package/es/vxe-splitter/index.js +3 -0
  23. package/es/vxe-splitter/style.css +288 -0
  24. package/es/vxe-splitter/style.min.css +1 -0
  25. package/es/vxe-splitter-panel/index.js +3 -0
  26. package/es/vxe-splitter-panel/style.css +0 -0
  27. package/es/vxe-splitter-panel/style.min.css +0 -0
  28. package/lib/components.js +25 -1
  29. package/lib/components.min.js +1 -1
  30. package/lib/icon/style/style.css +1 -1
  31. package/lib/icon/style/style.min.css +1 -1
  32. package/lib/index.umd.js +231 -115
  33. package/lib/index.umd.min.js +1 -1
  34. package/lib/split/index.js +4 -4
  35. package/lib/split/index.min.js +1 -1
  36. package/lib/split/style/style.css +79 -79
  37. package/lib/split/style/style.min.css +1 -1
  38. package/lib/split-pane/index.js +5 -5
  39. package/lib/split-pane/index.min.js +1 -1
  40. package/lib/splitter/index.js +19 -0
  41. package/lib/splitter/index.min.js +1 -0
  42. package/lib/{split/src/split-pane.js → splitter/src/splitter-panel.js} +14 -14
  43. package/lib/splitter/src/splitter-panel.min.js +1 -0
  44. package/lib/{split/src/split.js → splitter/src/splitter.js} +150 -72
  45. package/lib/splitter/src/splitter.min.js +1 -0
  46. package/lib/{split → splitter}/src/util.js +8 -8
  47. package/lib/splitter/src/util.min.js +1 -0
  48. package/lib/splitter/style/index.js +1 -0
  49. package/lib/splitter/style/style.css +288 -0
  50. package/lib/splitter/style/style.min.css +1 -0
  51. package/lib/splitter-panel/index.js +19 -0
  52. package/lib/splitter-panel/index.min.js +1 -0
  53. package/lib/splitter-panel/style/index.js +1 -0
  54. package/lib/splitter-panel/style/style.css +0 -0
  55. package/lib/splitter-panel/style/style.min.css +0 -0
  56. package/lib/style.css +1 -1
  57. package/lib/style.min.css +1 -1
  58. package/lib/ui/index.js +3 -3
  59. package/lib/ui/index.min.js +1 -1
  60. package/lib/ui/src/log.js +1 -1
  61. package/lib/ui/src/log.min.js +1 -1
  62. package/lib/vxe-split/style/style.css +79 -79
  63. package/lib/vxe-split/style/style.min.css +1 -1
  64. package/lib/vxe-splitter/index.js +22 -0
  65. package/lib/vxe-splitter/index.min.js +1 -0
  66. package/lib/vxe-splitter/style/index.js +1 -0
  67. package/lib/vxe-splitter/style/style.css +288 -0
  68. package/lib/vxe-splitter/style/style.min.css +1 -0
  69. package/lib/vxe-splitter-panel/index.js +22 -0
  70. package/lib/vxe-splitter-panel/index.min.js +1 -0
  71. package/lib/vxe-splitter-panel/style/index.js +1 -0
  72. package/lib/vxe-splitter-panel/style/style.css +0 -0
  73. package/lib/vxe-splitter-panel/style/style.min.css +0 -0
  74. package/package.json +1 -1
  75. package/packages/components.ts +6 -0
  76. package/packages/split/index.ts +2 -2
  77. package/packages/split-pane/index.ts +2 -2
  78. package/packages/splitter/index.ts +16 -0
  79. package/packages/splitter/src/splitter-panel.ts +145 -0
  80. package/packages/{split/src/split.ts → splitter/src/splitter.ts} +168 -96
  81. package/packages/splitter/src/util.ts +21 -0
  82. package/packages/splitter-panel/index.ts +16 -0
  83. package/packages/ui/index.ts +2 -2
  84. package/styles/components/split.scss +1 -317
  85. package/styles/components/splitter-panel.scss +0 -0
  86. package/styles/components/splitter.scss +317 -0
  87. package/styles/theme/base.scss +6 -6
  88. package/styles/theme/dark.scss +3 -3
  89. package/styles/theme/light.scss +3 -3
  90. package/styles/variable.scss +3 -3
  91. package/types/all.d.ts +6 -0
  92. package/types/components/split-pane.d.ts +42 -14
  93. package/types/components/split.d.ts +54 -18
  94. package/types/components/splitter-panel.d.ts +105 -0
  95. package/types/components/splitter.d.ts +288 -0
  96. package/types/ui/global-config.d.ts +4 -0
  97. package/types/ui/global-icon.d.ts +1 -1
  98. package/es/split/src/util.js +0 -17
  99. package/lib/split/src/split-pane.min.js +0 -1
  100. package/lib/split/src/split.min.js +0 -1
  101. package/lib/split/src/util.min.js +0 -1
  102. package/packages/split/src/split-pane.ts +0 -145
  103. package/packages/split/src/util.ts +0 -21
  104. /package/es/icon/{iconfont.1761298747069.ttf → iconfont.1761614052122.ttf} +0 -0
  105. /package/es/icon/{iconfont.1761298747069.woff → iconfont.1761614052122.woff} +0 -0
  106. /package/es/icon/{iconfont.1761298747069.woff2 → iconfont.1761614052122.woff2} +0 -0
  107. /package/es/{iconfont.1761298747069.ttf → iconfont.1761614052122.ttf} +0 -0
  108. /package/es/{iconfont.1761298747069.woff → iconfont.1761614052122.woff} +0 -0
  109. /package/es/{iconfont.1761298747069.woff2 → iconfont.1761614052122.woff2} +0 -0
  110. /package/lib/icon/style/{iconfont.1761298747069.ttf → iconfont.1761614052122.ttf} +0 -0
  111. /package/lib/icon/style/{iconfont.1761298747069.woff → iconfont.1761614052122.woff} +0 -0
  112. /package/lib/icon/style/{iconfont.1761298747069.woff2 → iconfont.1761614052122.woff2} +0 -0
  113. /package/lib/{iconfont.1761298747069.ttf → iconfont.1761614052122.ttf} +0 -0
  114. /package/lib/{iconfont.1761298747069.woff → iconfont.1761614052122.woff} +0 -0
  115. /package/lib/{iconfont.1761298747069.woff2 → iconfont.1761614052122.woff2} +0 -0
@@ -1,17 +0,0 @@
1
- import XEUtils from 'xe-utils';
2
- export function assembleSplitItem($xeSplit, elem, paneConfig) {
3
- const staticItems = $xeSplit.reactData.staticItems;
4
- const parentElem = elem.parentNode;
5
- if (parentElem) {
6
- staticItems.splice(XEUtils.arrayIndexOf(parentElem.children, elem), 0, paneConfig);
7
- $xeSplit.reactData.staticItems = staticItems.slice(0);
8
- }
9
- }
10
- export function destroySplitItem($xeSplit, paneConfig) {
11
- const staticItems = $xeSplit.reactData.staticItems;
12
- const index = XEUtils.findIndexOf(staticItems, item => item.id === paneConfig.id);
13
- if (index > -1) {
14
- staticItems.splice(index, 1);
15
- }
16
- $xeSplit.reactData.staticItems = staticItems.slice(0);
17
- }
@@ -1 +0,0 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_comp=require("../../ui/src/comp"),_ui=require("../../ui"),_util=require("./util"),_xeUtils=_interopRequireDefault(require("xe-utils"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}var _default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeSplitPane",props:{name:[Number,String],width:[Number,String],height:[Number,String],minWidth:{type:[Number,String],default:()=>null},minHeight:{type:[Number,String],default:()=>null},showAction:Boolean},emits:[],setup(e,t){const{emit:r,slots:i}=t;var n=_xeUtils.default.uniqueId();const u=(0,_vue.inject)("$xeSplit",null),a=(0,_vue.ref)(),h=(0,_vue.reactive)({id:n,name:e.name,width:e.width,height:e.height,minWidth:e.minWidth,minHeight:e.minHeight,showAction:e.showAction,isExpand:!0,renderWidth:0,resizeWidth:0,foldWidth:0,renderHeight:0,resizeHeight:0,foldHeight:0,slots:i});var o=(0,_vue.reactive)({});const d={},l={refElem:a},s={xID:n,props:e,context:t,reactData:o,internalData:{},getRefMaps:()=>l,getComputeMaps:()=>d};Object.assign(s,{dispatchEvent:(e,t,i)=>{r(e,(0,_ui.createEvent)(i,{$splitPane:s},t))}},{});return(0,_vue.watch)(()=>e.name,e=>{h.name=e}),(0,_vue.watch)(()=>e.width,e=>{h.width=e}),(0,_vue.watch)(()=>e.height,e=>{h.height=e}),(0,_vue.watch)(()=>e.minWidth,e=>{h.minWidth=e}),(0,_vue.watch)(()=>e.minHeight,e=>{h.minHeight=e}),(0,_vue.watch)(()=>e.showAction,e=>{h.showAction=e}),(0,_vue.onMounted)(()=>{var e=a.value;u&&e&&(0,_util.assembleSplitItem)(u,e,h)}),(0,_vue.onUnmounted)(()=>{u&&(0,_util.destroySplitItem)(u,h)}),(0,_vue.provide)("$xeSplitItem",s),s.renderVN=()=>(0,_vue.h)("div",{ref:a}),s},render(){return this.renderVN()}});
@@ -1 +0,0 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_comp=require("../../ui/src/comp"),_ui=require("../../ui"),_vn=require("../../ui/src/vn"),_dom=require("../../ui/src/dom"),_utils=require("../../ui/src/utils"),_log=require("../../ui/src/log"),_xeUtils=_interopRequireDefault(require("xe-utils"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}var _default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeSplit",props:{width:[Number,String],height:[Number,String],vertical:{type:Boolean,default:()=>(0,_ui.getConfig)().split.vertical},border:{type:Boolean,default:()=>(0,_ui.getConfig)().split.border},padding:{type:Boolean,default:()=>(0,_ui.getConfig)().split.padding},resize:{type:Boolean,default:()=>(0,_ui.getConfig)().split.resize},items:Array,itemConfig:Object,barConfig:Object,resizeConfig:Object,actionConfig:Object,size:{type:String,default:()=>(0,_ui.getConfig)().split.size||(0,_ui.getConfig)().size}},emits:["action-dblclick","action-click","toggle-expand","resize-start","resize-drag","resize-end"],setup(c,e){const{emit:s,slots:a}=e;var t=_xeUtils.default.uniqueId();const A=(0,_vue.ref)(),g=(0,_vue.ref)(),M=(0,_vue.ref)(),d=(0,_ui.useSize)(c)["computeSize"],P=(0,_vue.reactive)({staticItems:[],itemList:[],barWidth:0,barHeight:0}),p={wrapperWidth:0,wrapperHeight:0},D=(0,_vue.computed)(()=>Object.assign({},(0,_ui.getConfig)().split.itemConfig,c.itemConfig)),l=(0,_vue.computed)(()=>Object.assign({},(0,_ui.getConfig)().split.barConfig,c.barConfig)),q=(0,_vue.computed)(()=>Object.assign({},(0,_ui.getConfig)().split.resizeConfig,c.resizeConfig)),u=(0,_vue.computed)(()=>Object.assign({},(0,_ui.getConfig)().split.actionConfig,c.actionConfig)),h=(0,_vue.computed)(()=>P.itemList.filter(e=>e.isExpand)),v=(0,_vue.computed)(()=>{var e=c["vertical"];const r=[];let o=0,a=0;return P.itemList.forEach(e?e=>{var{renderHeight:t,resizeHeight:i,foldHeight:s,isExpand:l,height:n}=e,l=l?s||i||t:0;n||r.push(e),o+=l}:e=>{var{renderWidth:t,resizeWidth:i,foldWidth:s,isExpand:l,width:n}=e,l=l?s||i||t:0;n||r.push(e),a+=l}),{autoItems:r,heightCount:o,heightRatio:o/100,widthCount:a,widthRatio:a/100}}),f=(0,_vue.computed)(()=>{var{width:e,height:t}=l.value,i={};return t&&(i.height=(0,_dom.toCssUnit)(t)),e&&(i.width=(0,_dom.toCssUnit)(e)),i}),i={computeItemOpts:D,computeBarOpts:l,computeActionOpts:u},n={refElem:A},m={xID:t,props:c,context:e,reactData:P,internalData:p,getRefMaps:()=>n,getComputeMaps:()=>i},j=(e,t,i)=>{s(e,(0,_ui.createEvent)(i,{$split:m},t))},H=(e,t)=>e&&(_xeUtils.default.isString(e)&&(e=a[e]||null),_xeUtils.default.isFunction(e))?(0,_vn.getSlotVNs)(e(t)):[],_=(e,t,i)=>{var s=c["vertical"],l="SPLIT_TOP_ACTION",n="SPLIT_BOTTOM_ACTION",r="SPLIT_LEFT_ACTION",o="SPLIT_RIGHT_ACTION";let a="";return(a=s?i?t.isExpand?n:l:e.isExpand?l:n:i?t.isExpand?o:r:e.isExpand?r:o)?(0,_ui.getIcon)()[a]:""};const r=(e,t)=>{var i=P["staticItems"],{showPrevButton:s,showNextButton:l}=u.value;const n={isExpand:!0,renderWidth:0,resizeWidth:0,foldWidth:0,renderHeight:0,resizeHeight:0,foldHeight:0};return P.itemList=e.map(e=>(e.showAction&&(0,_log.warnLog)("vxe.error.removeProp",["[split] show-action"]),e.slots&&_xeUtils.default.each(e.slots,e=>{_xeUtils.default.isFunction(e)||a[e]||(0,_log.errLog)("vxe.error.notSlot",["[split] "+e])}),Object.assign({},t?null:n,e,t?n:null,{id:_xeUtils.default.uniqueId()}))),i.length&&(0,_log.errLog)("vxe.error.errConflicts",["<vxe-split-pane ...>","items"]),(s||l)&&2<P.itemList.length&&(0,_log.errLog)("vxe.error.errConflicts",["action-config.showPrevButton | action-config.showNextButton","Only supports 2 item"]),R()},o=e=>r(e||[],!1);const R=()=>(0,_vue.nextTick)().then(()=>{var e=c["vertical"],t=P["itemList"],i=A.value,s=g.value;if(i){var l=i.clientWidth,i=i.clientHeight;if(l&&i){s&&(P.barWidth=s.offsetWidth,P.barHeight=s.offsetHeight);const n=l-(e?0:P.barWidth*(t.length-1)),r=i-(e?P.barHeight*(t.length-1):0);s=D.value;const o=_xeUtils.default.toNumber(s.minWidth),a=_xeUtils.default.toNumber(s.minHeight),d=[];if(e){let s=0;if(t.forEach(e=>{var t=e["height"];let i=0;t?(i=(0,_dom.isScale)(t)?r*_xeUtils.default.toNumber(t)/100:_xeUtils.default.toNumber(t),e.renderHeight=i):d.push(e),s+=i}),d.length){const u=(r-s)/d.length;d.forEach(e=>{e.renderHeight=Math.max(_xeUtils.default.toNumber((0,_utils.getGlobalDefaultConfig)(e.minHeight,a)),u)})}}else{let s=0;if(t.forEach(e=>{var t=e["width"];let i=0;t?(i=(0,_dom.isScale)(t)?n*_xeUtils.default.toNumber(t)/100:_xeUtils.default.toNumber(t),e.renderWidth=i):d.push(e),s+=i}),d.length){const h=(n-s)/d.length;d.forEach(e=>{e.renderWidth=Math.max(_xeUtils.default.toNumber((0,_utils.getGlobalDefaultConfig)(e.minWidth,o)),h)})}}p.wrapperWidth=n,p.wrapperHeight=r}}}),x=e=>{const{resize:t,vertical:g}=c;var i=P["itemList"];if(t){e.preventDefault();var s=e.currentTarget,l=s.parentElement;const f=A.value;if(f){const m=l.previousElementSibling,_=l.nextElementSibling;if(m&&_){const n=m.getAttribute("itemid"),r=_.getAttribute("itemid"),x=i.find(e=>e.id===n),b=i.find(e=>e.id===r);if(x&&b){const z=f.getBoundingClientRect();l=s.getBoundingClientRect();const E=M.value,C=E?E.children[0]:null;i=D.value;const w=q.value["immediate"];var s=_xeUtils.default.toNumber(i.minWidth),i=_xeUtils.default.toNumber(i.minHeight),p=Math.ceil(l.width-(e.clientX-l.left)),l=Math.ceil(e.clientY-l.top);const y=m.offsetWidth,H=_.offsetWidth;var v=_xeUtils.default.toNumber(x?(0,_utils.getGlobalDefaultConfig)(x.minWidth,s):s),s=_xeUtils.default.toNumber(b?(0,_utils.getGlobalDefaultConfig)(b.minWidth,s):s);const W=m.offsetLeft+v-p,I=_.offsetLeft+_.offsetWidth-s-p,U=e.clientX-z.left;let n=-1,r=0,o=0,a=U;const L=m.offsetHeight,N=_.offsetHeight;v=_xeUtils.default.toNumber(x?(0,_utils.getGlobalDefaultConfig)(x.minHeight,i):i),s=_xeUtils.default.toNumber(b?(0,_utils.getGlobalDefaultConfig)(b.minHeight,i):i);const S=m.offsetTop+v+l,B=_.offsetTop+_.offsetHeight-s+l,T=e.clientY-z.top;let d=-1,u=0,h=0,c=T;const O=i=>{if(E){var s=C?C.children[0]:null,l=C?C.children[1]:null;if(g){let e=0,t=(s&&(d<0?s.style.display="none":(s.textContent=Math.floor(u)+"px",s.style.display="block",e=s.offsetWidth)),l&&(d<0?(l.textContent=Math.floor(h)+"px",l.style.display="block",e=l.offsetWidth):l.style.display="none"),Math.max(1,i.clientX-z.left-e/2));t>z.width-e-1&&(t=z.width-e-1),E.style.left="0",E.style.top=c+"px",C&&(C.style.left=t+"px")}else{let e=0,t=(s&&(n<0?s.style.display="none":(s.textContent=Math.floor(r)+"px",s.style.display="block",e=s.offsetHeight)),l&&(n<0?(l.textContent=Math.floor(o)+"px",l.style.display="block",e=l.offsetHeight):l.style.display="none"),Math.max(1,i.clientY-z.top-e/2));t>z.height-e-1&&(t=z.height-e-1),E.style.top="0",E.style.left=a+"px",C&&(C.style.top=t+"px")}}},k=e=>{g?((c=(c=e.clientY-z.top)<S?S:c)>B&&(c=B),d=c-T,u=L+d,h=N-d):((a=(a=e.clientX-z.left)<W?W:a)>I&&(a=I),n=a-U,r=y+n,o=H-n),w&&(g?(m.style.height=(0,_dom.toCssUnit)(u),_.style.height=(0,_dom.toCssUnit)(h)):(m.style.width=(0,_dom.toCssUnit)(r),_.style.width=(0,_dom.toCssUnit)(o))),E&&O(e),j("resize-drag",{prevItem:x,nextItem:b,offsetHeight:d,offsetWidth:n},e)};document.onmousemove=e=>{e.preventDefault(),k(e)},document.onmouseup=e=>{document.onmousemove=null,document.onmouseup=null,E&&(E.style.display=""),g?(x.resizeHeight=u,b.resizeHeight=h):(x.resizeWidth=r,b.resizeWidth=o),(0,_dom.removeClass)(f,"is--drag"),j("resize-end",{prevItem:x,nextItem:b,offsetHeight:d,offsetWidth:n},e),R()},E&&(E.style.display="block",O(e)),k(e),(0,_dom.addClass)(f,"is--drag"),j("resize-start",{prevItem:x,nextItem:b},e)}}}}},b=(e,t,i,s)=>{var l=c["vertical"];let n=!1,r=t;s?(r=i,n=!i.isExpand,i.isExpand=n):(n=!t.isExpand,t.isExpand=n),l?t.isExpand&&i.isExpand?(t.foldHeight=0,i.foldHeight=0):t.isExpand?(i.foldHeight=0,t.foldHeight=(t.resizeHeight||t.renderHeight)+(i.resizeHeight||i.renderHeight)):(t.foldHeight=0,i.foldHeight=(t.resizeHeight||t.renderHeight)+(i.resizeHeight||i.renderHeight)):t.isExpand&&i.isExpand?(t.foldWidth=0,i.foldWidth=0):t.isExpand?(i.foldWidth=0,t.foldWidth=(t.resizeWidth||t.renderWidth)+(i.resizeWidth||i.renderWidth)):(t.foldWidth=0,i.foldWidth=(t.resizeWidth||t.renderWidth)+(i.resizeWidth||i.renderWidth)),j("toggle-expand",{prevItem:t,nextItem:i,expanded:n,item:r},e),R()},z=e=>{var t=P["itemList"],i=u.value,s=e.currentTarget.parentElement.parentElement;const l=s.previousElementSibling.getAttribute("itemid");var n=t.find(e=>e.id===l);const r=s.nextElementSibling.getAttribute("itemid");s=t.find(e=>e.id===r);"dblclick"===i.trigger&&n&&s&&s.isExpand&&b(e,n,s,!1),j("action-dblclick",{prevItem:n,nextItem:s},e)},E=e=>{var t=P["itemList"],i=u.value,s=e.currentTarget.parentElement.parentElement;const l=s.previousElementSibling.getAttribute("itemid");var n=t.find(e=>e.id===l);const r=s.nextElementSibling.getAttribute("itemid");s=t.find(e=>e.id===r);"dblclick"!==i.trigger&&n&&s&&s.isExpand&&b(e,n,s,!1),j("action-click",{prevItem:n,nextItem:s},e)},C=e=>{var t=P["itemList"],i=u.value,s=e.currentTarget.parentElement.parentElement;const l=s.previousElementSibling.getAttribute("itemid");var n=t.find(e=>e.id===l);const r=s.nextElementSibling.getAttribute("itemid");s=t.find(e=>e.id===r);"dblclick"===i.trigger&&n&&s&&n.isExpand&&b(e,n,s,!0),j("action-dblclick",{prevItem:n,nextItem:s},e)},w=e=>{var t=P["itemList"],i=u.value,s=e.currentTarget.parentElement.parentElement;const l=s.previousElementSibling.getAttribute("itemid");var n=t.find(e=>e.id===l);const r=s.nextElementSibling.getAttribute("itemid");s=t.find(e=>e.id===r);"dblclick"!==i.trigger&&n&&s&&n.isExpand&&b(e,n,s,!0),j("action-click",{prevItem:n,nextItem:s},e)},y=()=>{R()};t={dispatchEvent:j,recalculate:R,reset:()=>{var e=P["itemList"];return e.forEach(e=>{e.isExpand=!0,e.foldHeight=0,e.foldWidth=0,e.resizeHeight=0,e.resizeWidth=0}),(0,_vue.nextTick)()},loadItem:o,reloadItem:e=>r(e||[],!0)};Object.assign(m,t,{});const U=(e,t)=>{var{border:i,resize:s,vertical:l}=c,n=P["itemList"],r=f.value,o=u.value,a=o["direction"],d=_xeUtils.default.isBoolean(o.showPrevButton)?o.showPrevButton:n.some(e=>e.showAction),o=_xeUtils.default.isBoolean(o.showNextButton)?o.showNextButton:"next"===a&&n.some(e=>e.showAction),a=q.value["immediate"];return(0,_vue.h)("div",{class:["vxe-split-pane-handle",l?"is--vertical":"is--horizontal",a?"is-resize--immediate":"is-resize--lazy",{"is--resize":s,"is--border":i}]},[(0,_vue.h)("div",{class:"vxe-split-pane-handle-bar",style:r,onMousedown:x}),2===n.length?(0,_vue.h)("div",{class:"vxe-split-pane-action-btn-wrapper"},[d&&t.isExpand?(0,_vue.h)("div",{class:"vxe-split-pane-action-btn",onDblclick:z,onClick:E},[(0,_vue.h)("i",{class:_(e,t,!1)})]):(0,_ui.renderEmptyElement)(m),o&&e.isExpand?(0,_vue.h)("div",{class:"vxe-split-pane-action-btn",onDblclick:C,onClick:w},[(0,_vue.h)("i",{class:_(e,t,!0)})]):(0,_ui.renderEmptyElement)(m)]):(0,_ui.renderEmptyElement)(m)])};const W=(0,_vue.ref)(0);(0,_vue.watch)(()=>c.items?c.items.length:-1,()=>{W.value++}),(0,_vue.watch)(()=>c.items,()=>{W.value++}),(0,_vue.watch)(W,()=>{o(c.items||[])}),(0,_vue.watch)(()=>P.staticItems,e=>{var{showPrevButton:t,showNextButton:i}=u.value;c.items&&c.items.length&&(0,_log.errLog)("vxe.error.errConflicts",["<vxe-split-pane ...>","items"]),P.itemList=e||[],(t||i)&&2<P.itemList.length&&(0,_log.errLog)("vxe.error.modelConflicts",["[split] action-config.showPrevButton | action-config.showNextButton","<vxe-split-pane ...> Only supports 2 panel"]),P.itemList.forEach(e=>{e.showAction&&(0,_log.warnLog)("vxe.error.removeProp",["[split] showAction"])}),R()});let I;return(0,_vue.onMounted)(()=>{(0,_vue.nextTick)(()=>{R()});var e=A.value,e=(e&&(I=_ui.globalResize.create(()=>{R()})).observe(e),u.value);e.direction&&(0,_log.errLog)("vxe.error.delProp",["[split] action-config.direction","action-config.showPrevButton | action-config.showNextButton"]),_ui.globalEvents.on(m,"resize",y)}),(0,_vue.onUnmounted)(()=>{I&&I.disconnect(),_ui.globalEvents.off(m,"resize")}),(0,_vue.onActivated)(()=>{R()}),c.items&&o(c.items),(0,_vue.provide)("$xeSplit",m),m.renderVN=()=>{var{vertical:e,width:t,height:i}=c,s=d.value,{immediate:l,showTip:n}=q.value,r=a.default,o={};return i&&(o.height=(0,_dom.toCssUnit)(i)),t&&(o.width=(0,_dom.toCssUnit)(t)),(0,_vue.h)("div",{ref:A,class:["vxe-split",e?"is--vertical":"is--horizontal",l?"is-resize--immediate":"is-resize--lazy",{["size--"+s]:s}],style:o},[(0,_vue.h)("div",{class:"vxe-split-slots"},r?r({}):[]),(()=>{const{border:f,padding:m,resize:_,vertical:x}=c,b=P["itemList"],z=d.value;const E=q.value["immediate"],C=h.value,w=v.value["autoItems"],y=[];return b.forEach((e,t)=>{var{id:i,name:s,slots:l,renderHeight:n,resizeHeight:r,foldHeight:o,renderWidth:a,resizeWidth:d,foldWidth:u,isExpand:h}=e,t=b[t+1],l=l?l.default:null,c={};let g=h?u||d||a:0,p=h?o||r||n:0,v=(1===w.length&&(x?e.height||(p=0):e.width||(g=0)),!0);x?p&&1<C.length&&(v=!1,c.height=(0,_dom.toCssUnit)(p)):g&&1<C.length&&(v=!1,c.width=(0,_dom.toCssUnit)(g)),y.push((0,_vue.h)("div",{itemid:i,class:["vxe-split-pane",x?"is--vertical":"is--horizontal",E?"is-resize--immediate":"is-resize--lazy",{["size--"+z]:z,"is--resize":_,"is--padding":m,"is--border":f,"is--height":p,"is--width":g,"is--visible":h,"is--hidden":!h,"is--fill":h&&v}],style:c},[(0,_vue.h)("div",{itemid:i,class:"vxe-split-pane--wrapper"},[(0,_vue.h)("div",{class:"vxe-split-pane--inner"},l?H(l,{name:s,isExpand:h}):[])])])),t&&y.push(U(e,t))}),(0,_vue.h)("div",{class:"vxe-split-wrapper"},y)})(),(0,_vue.h)("div",{ref:M,class:["vxe-split--resizable-split-tip",e?"is--vertical":"is--horizontal",l?"is-resize--immediate":"is-resize--lazy"]},n?[(0,_vue.h)("div",{class:"vxe-split--resizable-split-tip-number"},[(0,_vue.h)("div",{class:"vxe-split--resizable-split-number-prev"}),(0,_vue.h)("div",{class:"vxe-split--resizable-split-number-next"})])]:[]),(0,_vue.h)("div",{class:"vxe-split--render-vars"},[(0,_vue.h)("div",{ref:g,class:"vxe-split--handle-bar-info"})])])},m},render(){return this.renderVN()}});
@@ -1 +0,0 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.assembleSplitItem=assembleSplitItem,exports.destroySplitItem=destroySplitItem;var _xeUtils=_interopRequireDefault(require("xe-utils"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function assembleSplitItem(e,t,i){var s=e.reactData.staticItems,a=t.parentNode;a&&(s.splice(_xeUtils.default.arrayIndexOf(a.children,t),0,i),e.reactData.staticItems=s.slice(0))}function destroySplitItem(e,t){var i=e.reactData.staticItems,s=_xeUtils.default.findIndexOf(i,e=>e.id===t.id);-1<s&&i.splice(s,1),e.reactData.staticItems=i.slice(0)}
@@ -1,145 +0,0 @@
1
- import { PropType, ref, h, reactive, watch, provide, inject, onMounted, onUnmounted } from 'vue'
2
- import { defineVxeComponent } from '../../ui/src/comp'
3
- import { createEvent } from '../../ui'
4
- import { assembleSplitItem, destroySplitItem } from './util'
5
- import XEUtils from 'xe-utils'
6
-
7
- import type { SplitItemReactData, VxeSplitPanePropTypes, SplitItemPrivateRef, SplitItemInternalData, SplitItemMethods, VxeSplitPanePrivateComputed, SplitItemPrivateMethods, VxeSplitPaneEmits, VxeSplitPaneConstructor, ValueOf, VxeSplitDefines, VxeSplitPanePrivateMethods, VxeSplitConstructor, VxeSplitPrivateMethods } from '../../../types'
8
-
9
- export default defineVxeComponent({
10
- name: 'VxeSplitPane',
11
- props: {
12
- name: [Number, String] as PropType<VxeSplitPanePropTypes.Name>,
13
- width: [Number, String] as PropType<VxeSplitPanePropTypes.Width>,
14
- height: [Number, String] as PropType<VxeSplitPanePropTypes.Height>,
15
- minWidth: {
16
- type: [Number, String] as PropType<VxeSplitPanePropTypes.MinWidth>,
17
- default: () => null
18
- },
19
- minHeight: {
20
- type: [Number, String] as PropType<VxeSplitPanePropTypes.MinHeight>,
21
- default: () => null
22
- },
23
-
24
- // 已废弃
25
- showAction: Boolean as PropType<VxeSplitPanePropTypes.ShowAction>
26
- },
27
- emits: [
28
- ] as VxeSplitPaneEmits,
29
- setup (props, context) {
30
- const { emit, slots } = context
31
-
32
- const xID = XEUtils.uniqueId()
33
-
34
- const $xeSplit = inject<(VxeSplitConstructor & VxeSplitPrivateMethods) | null>('$xeSplit', null)
35
-
36
- const refElem = ref<HTMLDivElement>()
37
-
38
- const paneConfig = reactive<VxeSplitDefines.PaneConfig>({
39
- id: xID,
40
- name: props.name,
41
- width: props.width,
42
- height: props.height,
43
- minWidth: props.minWidth,
44
- minHeight: props.minHeight,
45
- showAction: props.showAction,
46
- isExpand: true,
47
- renderWidth: 0,
48
- resizeWidth: 0,
49
- foldWidth: 0,
50
- renderHeight: 0,
51
- resizeHeight: 0,
52
- foldHeight: 0,
53
- slots: slots
54
- })
55
-
56
- const reactData = reactive<SplitItemReactData>({
57
- })
58
-
59
- const internalData: SplitItemInternalData = {
60
- }
61
-
62
- const computeMaps: VxeSplitPanePrivateComputed = {
63
- }
64
-
65
- const refMaps: SplitItemPrivateRef = {
66
- refElem
67
- }
68
-
69
- const $xeSplitItem = {
70
- xID,
71
- props,
72
- context,
73
- reactData,
74
- internalData,
75
-
76
- getRefMaps: () => refMaps,
77
- getComputeMaps: () => computeMaps
78
- } as unknown as VxeSplitPaneConstructor & VxeSplitPanePrivateMethods
79
-
80
- const dispatchEvent = (type: ValueOf<VxeSplitPaneEmits>, params: Record<string, any>, evnt: Event | null) => {
81
- emit(type, createEvent(evnt, { $splitPane: $xeSplitItem }, params))
82
- }
83
-
84
- const splitPaneMethods: SplitItemMethods = {
85
- dispatchEvent
86
- }
87
-
88
- const splitPanePrivateMethods: SplitItemPrivateMethods = {
89
- }
90
-
91
- Object.assign($xeSplitItem, splitPaneMethods, splitPanePrivateMethods)
92
-
93
- const renderVN = () => {
94
- return h('div', {
95
- ref: refElem
96
- })
97
- }
98
-
99
- watch(() => props.name, (val) => {
100
- paneConfig.name = val
101
- })
102
-
103
- watch(() => props.width, (val) => {
104
- paneConfig.width = val
105
- })
106
-
107
- watch(() => props.height, (val) => {
108
- paneConfig.height = val
109
- })
110
-
111
- watch(() => props.minWidth, (val) => {
112
- paneConfig.minWidth = val
113
- })
114
-
115
- watch(() => props.minHeight, (val) => {
116
- paneConfig.minHeight = val
117
- })
118
-
119
- watch(() => props.showAction, (val) => {
120
- paneConfig.showAction = val
121
- })
122
-
123
- onMounted(() => {
124
- const elem = refElem.value
125
- if ($xeSplit && elem) {
126
- assembleSplitItem($xeSplit, elem, paneConfig)
127
- }
128
- })
129
-
130
- onUnmounted(() => {
131
- if ($xeSplit) {
132
- destroySplitItem($xeSplit, paneConfig)
133
- }
134
- })
135
-
136
- provide('$xeSplitItem', $xeSplitItem)
137
-
138
- $xeSplitItem.renderVN = renderVN
139
-
140
- return $xeSplitItem
141
- },
142
- render () {
143
- return this.renderVN()
144
- }
145
- })
@@ -1,21 +0,0 @@
1
- import XEUtils from 'xe-utils'
2
-
3
- import type { VxeSplitConstructor, VxeSplitPrivateMethods, VxeSplitDefines } from '../../../types'
4
-
5
- export function assembleSplitItem ($xeSplit: VxeSplitConstructor & VxeSplitPrivateMethods, elem: HTMLElement, paneConfig: VxeSplitDefines.PaneConfig) {
6
- const staticItems = $xeSplit.reactData.staticItems
7
- const parentElem = elem.parentNode
8
- if (parentElem) {
9
- staticItems.splice(XEUtils.arrayIndexOf(parentElem.children, elem), 0, paneConfig)
10
- $xeSplit.reactData.staticItems = staticItems.slice(0)
11
- }
12
- }
13
-
14
- export function destroySplitItem ($xeSplit: VxeSplitConstructor & VxeSplitPrivateMethods, paneConfig: VxeSplitDefines.PaneConfig) {
15
- const staticItems = $xeSplit.reactData.staticItems
16
- const index = XEUtils.findIndexOf(staticItems, item => item.id === paneConfig.id)
17
- if (index > -1) {
18
- staticItems.splice(index, 1)
19
- }
20
- $xeSplit.reactData.staticItems = staticItems.slice(0)
21
- }