vxe-pc-ui 4.6.4 → 4.6.5

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 (130) hide show
  1. package/es/button/src/button.js +20 -73
  2. package/es/button/style.css +24 -2
  3. package/es/button/style.min.css +1 -1
  4. package/es/color-picker/src/color-picker.js +19 -72
  5. package/es/color-picker/style.css +15 -0
  6. package/es/color-picker/style.min.css +1 -1
  7. package/es/date-picker/src/date-picker.js +19 -74
  8. package/es/date-picker/style.css +3 -2
  9. package/es/date-picker/style.min.css +1 -1
  10. package/es/date-range-picker/src/date-range-picker.js +24 -79
  11. package/es/date-range-picker/style.css +3 -2
  12. package/es/date-range-picker/style.min.css +1 -1
  13. package/es/icon/style.css +1 -1
  14. package/es/pulldown/src/pulldown.js +19 -74
  15. package/es/pulldown/style.css +0 -4
  16. package/es/pulldown/style.min.css +1 -1
  17. package/es/select/src/select.js +19 -72
  18. package/es/style.css +1 -1
  19. package/es/style.min.css +1 -1
  20. package/es/table-select/src/table-select.js +19 -72
  21. package/es/table-select/style.css +0 -1
  22. package/es/table-select/style.min.css +1 -1
  23. package/es/tree-select/src/tree-select.js +19 -72
  24. package/es/tree-select/style.css +0 -1
  25. package/es/tree-select/style.min.css +1 -1
  26. package/es/ui/index.js +1 -1
  27. package/es/ui/src/dom.js +92 -0
  28. package/es/ui/src/log.js +1 -1
  29. package/es/vxe-button/style.css +24 -2
  30. package/es/vxe-button/style.min.css +1 -1
  31. package/es/vxe-color-picker/style.css +15 -0
  32. package/es/vxe-color-picker/style.min.css +1 -1
  33. package/es/vxe-date-picker/style.css +3 -2
  34. package/es/vxe-date-picker/style.min.css +1 -1
  35. package/es/vxe-date-range-picker/style.css +3 -2
  36. package/es/vxe-date-range-picker/style.min.css +1 -1
  37. package/es/vxe-pulldown/style.css +0 -4
  38. package/es/vxe-pulldown/style.min.css +1 -1
  39. package/es/vxe-table-select/style.css +0 -1
  40. package/es/vxe-table-select/style.min.css +1 -1
  41. package/es/vxe-tree-select/style.css +0 -1
  42. package/es/vxe-tree-select/style.min.css +1 -1
  43. package/lib/button/src/button.js +23 -79
  44. package/lib/button/src/button.min.js +1 -1
  45. package/lib/button/style/style.css +24 -2
  46. package/lib/button/style/style.min.css +1 -1
  47. package/lib/color-picker/src/color-picker.js +22 -77
  48. package/lib/color-picker/src/color-picker.min.js +1 -1
  49. package/lib/color-picker/style/style.css +15 -0
  50. package/lib/color-picker/style/style.min.css +1 -1
  51. package/lib/date-picker/src/date-picker.js +22 -79
  52. package/lib/date-picker/src/date-picker.min.js +1 -1
  53. package/lib/date-picker/style/style.css +3 -2
  54. package/lib/date-picker/style/style.min.css +1 -1
  55. package/lib/date-range-picker/src/date-range-picker.js +26 -83
  56. package/lib/date-range-picker/src/date-range-picker.min.js +1 -1
  57. package/lib/date-range-picker/style/style.css +3 -2
  58. package/lib/date-range-picker/style/style.min.css +1 -1
  59. package/lib/icon/style/style.css +1 -1
  60. package/lib/icon/style/style.min.css +1 -1
  61. package/lib/index.umd.js +279 -631
  62. package/lib/index.umd.min.js +1 -1
  63. package/lib/pulldown/src/pulldown.js +22 -80
  64. package/lib/pulldown/src/pulldown.min.js +1 -1
  65. package/lib/pulldown/style/style.css +0 -4
  66. package/lib/pulldown/style/style.min.css +1 -1
  67. package/lib/select/src/select.js +22 -77
  68. package/lib/select/src/select.min.js +1 -1
  69. package/lib/style.css +1 -1
  70. package/lib/style.min.css +1 -1
  71. package/lib/table-select/src/table-select.js +22 -77
  72. package/lib/table-select/src/table-select.min.js +1 -1
  73. package/lib/table-select/style/style.css +0 -1
  74. package/lib/table-select/style/style.min.css +1 -1
  75. package/lib/tree-select/src/tree-select.js +22 -77
  76. package/lib/tree-select/src/tree-select.min.js +1 -1
  77. package/lib/tree-select/style/style.css +0 -1
  78. package/lib/tree-select/style/style.min.css +1 -1
  79. package/lib/ui/index.js +1 -1
  80. package/lib/ui/index.min.js +1 -1
  81. package/lib/ui/src/dom.js +97 -0
  82. package/lib/ui/src/dom.min.js +1 -1
  83. package/lib/ui/src/log.js +1 -1
  84. package/lib/ui/src/log.min.js +1 -1
  85. package/lib/vxe-button/style/style.css +24 -2
  86. package/lib/vxe-button/style/style.min.css +1 -1
  87. package/lib/vxe-color-picker/style/style.css +15 -0
  88. package/lib/vxe-color-picker/style/style.min.css +1 -1
  89. package/lib/vxe-date-picker/style/style.css +3 -2
  90. package/lib/vxe-date-picker/style/style.min.css +1 -1
  91. package/lib/vxe-date-range-picker/style/style.css +3 -2
  92. package/lib/vxe-date-range-picker/style/style.min.css +1 -1
  93. package/lib/vxe-pulldown/style/style.css +0 -4
  94. package/lib/vxe-pulldown/style/style.min.css +1 -1
  95. package/lib/vxe-table-select/style/style.css +0 -1
  96. package/lib/vxe-table-select/style/style.min.css +1 -1
  97. package/lib/vxe-tree-select/style/style.css +0 -1
  98. package/lib/vxe-tree-select/style/style.min.css +1 -1
  99. package/package.json +1 -1
  100. package/packages/button/src/button.ts +20 -70
  101. package/packages/color-picker/src/color-picker.ts +19 -69
  102. package/packages/date-picker/src/date-picker.ts +20 -72
  103. package/packages/date-range-picker/src/date-range-picker.ts +24 -76
  104. package/packages/pulldown/src/pulldown.ts +20 -72
  105. package/packages/select/src/select.ts +19 -69
  106. package/packages/table-select/src/table-select.ts +19 -69
  107. package/packages/tree-select/src/tree-select.ts +19 -69
  108. package/packages/ui/src/dom.ts +95 -0
  109. package/styles/components/button.scss +3 -20
  110. package/styles/components/color-picker.scss +2 -27
  111. package/styles/components/date-picker.scss +2 -34
  112. package/styles/components/date-range-picker.scss +2 -34
  113. package/styles/components/pulldown.scss +2 -41
  114. package/styles/components/select.scss +2 -35
  115. package/styles/components/table-select.scss +2 -36
  116. package/styles/components/tree-select.scss +2 -36
  117. package/styles/helpers/placement.scss +39 -0
  118. package/types/components/table.d.ts +51 -0
  119. /package/es/icon/{iconfont.1747024965925.ttf → iconfont.1747094595378.ttf} +0 -0
  120. /package/es/icon/{iconfont.1747024965925.woff → iconfont.1747094595378.woff} +0 -0
  121. /package/es/icon/{iconfont.1747024965925.woff2 → iconfont.1747094595378.woff2} +0 -0
  122. /package/es/{iconfont.1747024965925.ttf → iconfont.1747094595378.ttf} +0 -0
  123. /package/es/{iconfont.1747024965925.woff → iconfont.1747094595378.woff} +0 -0
  124. /package/es/{iconfont.1747024965925.woff2 → iconfont.1747094595378.woff2} +0 -0
  125. /package/lib/icon/style/{iconfont.1747024965925.ttf → iconfont.1747094595378.ttf} +0 -0
  126. /package/lib/icon/style/{iconfont.1747024965925.woff → iconfont.1747094595378.woff} +0 -0
  127. /package/lib/icon/style/{iconfont.1747024965925.woff2 → iconfont.1747094595378.woff2} +0 -0
  128. /package/lib/{iconfont.1747024965925.ttf → iconfont.1747094595378.ttf} +0 -0
  129. /package/lib/{iconfont.1747024965925.woff → iconfont.1747094595378.woff} +0 -0
  130. /package/lib/{iconfont.1747024965925.woff2 → iconfont.1747094595378.woff2} +0 -0
package/lib/index.umd.js CHANGED
@@ -4213,14 +4213,14 @@ function checkDynamic() {
4213
4213
  }
4214
4214
  ;// CONCATENATED MODULE: ./packages/ui/src/log.ts
4215
4215
 
4216
- const log_version = `ui v${"4.6.4"}`;
4216
+ const log_version = `ui v${"4.6.5"}`;
4217
4217
  const warnLog = log.create('warn', log_version);
4218
4218
  const errLog = log.create('error', log_version);
4219
4219
  ;// CONCATENATED MODULE: ./packages/ui/index.ts
4220
4220
 
4221
4221
 
4222
4222
 
4223
- const ui_version = "4.6.4";
4223
+ const ui_version = "4.6.5";
4224
4224
  index_esm_VxeUI.uiVersion = ui_version;
4225
4225
  index_esm_VxeUI.dynamicApp = dynamicApp;
4226
4226
  function config(options) {
@@ -5071,6 +5071,102 @@ function dom_triggerEvent(targetElem, type) {
5071
5071
  function isNodeElement(elem) {
5072
5072
  return elem && elem.nodeType === 1;
5073
5073
  }
5074
+ function updatePanelPlacement(targetElem, panelElem, options) {
5075
+ const {
5076
+ placement,
5077
+ teleportTo,
5078
+ marginSize
5079
+ } = Object.assign({
5080
+ teleportTo: false,
5081
+ marginSize: 5
5082
+ }, options);
5083
+ let panelPlacement = 'bottom';
5084
+ let top = '';
5085
+ let bottom = '';
5086
+ let left = '';
5087
+ const right = '';
5088
+ let minWidth = '';
5089
+ const stys = {};
5090
+ if (panelElem && targetElem) {
5091
+ const documentElement = document.documentElement;
5092
+ const bodyElem = document.body;
5093
+ const targetHeight = targetElem.offsetHeight;
5094
+ const panelHeight = panelElem.offsetHeight;
5095
+ const panelWidth = panelElem.offsetWidth;
5096
+ const bounding = targetElem.getBoundingClientRect();
5097
+ const boundingTop = bounding.top;
5098
+ const boundingLeft = bounding.left;
5099
+ const visibleHeight = documentElement.clientHeight || bodyElem.clientHeight;
5100
+ const visibleWidth = documentElement.clientWidth || bodyElem.clientWidth;
5101
+ minWidth = targetElem.offsetWidth;
5102
+ if (teleportTo) {
5103
+ left = boundingLeft;
5104
+ top = boundingTop + targetHeight;
5105
+ if (placement === 'top') {
5106
+ panelPlacement = 'top';
5107
+ top = boundingTop - panelHeight;
5108
+ } else if (!placement) {
5109
+ // 如果下面不够放,则向上
5110
+ if (top + panelHeight + marginSize > visibleHeight) {
5111
+ panelPlacement = 'top';
5112
+ top = boundingTop - panelHeight;
5113
+ }
5114
+ // 如果上面不够放,则向下(优先)
5115
+ if (top < marginSize) {
5116
+ panelPlacement = 'bottom';
5117
+ top = boundingTop + targetHeight;
5118
+ }
5119
+ }
5120
+ // 如果溢出右边
5121
+ if (left + panelWidth + marginSize > visibleWidth) {
5122
+ left -= left + panelWidth + marginSize - visibleWidth;
5123
+ }
5124
+ // 如果溢出左边
5125
+ if (left < marginSize) {
5126
+ left = marginSize;
5127
+ }
5128
+ } else {
5129
+ if (placement === 'top') {
5130
+ panelPlacement = 'top';
5131
+ bottom = targetHeight;
5132
+ } else if (!placement) {
5133
+ // 如果下面不够放,则向上
5134
+ top = targetHeight;
5135
+ if (boundingTop + targetHeight + panelHeight > visibleHeight) {
5136
+ // 如果上面不够放,则向下(优先)
5137
+ if (boundingTop - targetHeight - panelHeight > marginSize) {
5138
+ panelPlacement = 'top';
5139
+ top = '';
5140
+ bottom = targetHeight;
5141
+ }
5142
+ }
5143
+ }
5144
+ }
5145
+ if (external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isNumber(top)) {
5146
+ stys.top = toCssUnit(top);
5147
+ }
5148
+ if (external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isNumber(bottom)) {
5149
+ stys.bottom = toCssUnit(bottom);
5150
+ }
5151
+ if (external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isNumber(left)) {
5152
+ stys.left = toCssUnit(left);
5153
+ }
5154
+ if (external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isNumber(right)) {
5155
+ stys.right = toCssUnit(right);
5156
+ }
5157
+ if (external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isNumber(minWidth)) {
5158
+ stys.minWidth = toCssUnit(minWidth);
5159
+ }
5160
+ }
5161
+ return {
5162
+ top: top || 0,
5163
+ bottom: bottom || 0,
5164
+ left: left || 0,
5165
+ right: right || 0,
5166
+ style: stys,
5167
+ placement: panelPlacement
5168
+ };
5169
+ }
5074
5170
  ;// CONCATENATED MODULE: ./packages/anchor/src/util.ts
5075
5171
 
5076
5172
  function assembleAnchorLink($xeAnchor, elem, linkConfig, $xeParentAnchorLink) {
@@ -6590,85 +6686,28 @@ function handleBooleanDefaultValue(value) {
6590
6686
  }
6591
6687
  };
6592
6688
  const updatePlacement = () => {
6593
- return (0,external_commonjs_vue_commonjs2_vue_root_Vue_.nextTick)().then(() => {
6594
- const {
6595
- placement
6596
- } = props;
6597
- const {
6598
- panelIndex
6599
- } = reactData;
6600
- const targetElem = refButton.value;
6601
- const panelElem = refBtnPanel.value;
6602
- const btnTransfer = computeBtnTransfer.value;
6603
- if (panelElem && targetElem) {
6604
- const targetHeight = targetElem.offsetHeight;
6605
- const targetWidth = targetElem.offsetWidth;
6606
- const panelHeight = panelElem.offsetHeight;
6607
- const panelWidth = panelElem.offsetWidth;
6608
- const marginSize = 5;
6609
- const panelStyle = {
6610
- zIndex: panelIndex
6611
- };
6612
- const {
6613
- top,
6614
- left,
6615
- boundingTop,
6616
- visibleHeight,
6617
- visibleWidth
6618
- } = getAbsolutePos(targetElem);
6619
- let panelPlacement = 'bottom';
6620
- if (btnTransfer) {
6621
- let btnLeft = left + targetWidth - panelWidth;
6622
- let btnTop = top + targetHeight;
6623
- if (placement === 'top') {
6624
- panelPlacement = 'top';
6625
- btnTop = top - panelHeight;
6626
- } else if (!placement) {
6627
- // 如果下面不够放,则向上
6628
- if (boundingTop + targetHeight + panelHeight + marginSize > visibleHeight) {
6629
- panelPlacement = 'top';
6630
- btnTop = top - panelHeight;
6631
- }
6632
- // 如果上面不够放,则向下(优先)
6633
- if (btnTop < marginSize) {
6634
- panelPlacement = 'bottom';
6635
- btnTop = top + targetHeight;
6636
- }
6637
- }
6638
- // 如果溢出右边
6639
- if (btnLeft + panelWidth + marginSize > visibleWidth) {
6640
- btnLeft -= btnLeft + panelWidth + marginSize - visibleWidth;
6641
- }
6642
- // 如果溢出左边
6643
- if (btnLeft < marginSize) {
6644
- btnLeft = marginSize;
6645
- }
6646
- Object.assign(panelStyle, {
6647
- left: `${btnLeft}px`,
6648
- right: 'auto',
6649
- top: `${btnTop}px`,
6650
- minWidth: `${targetWidth}px`
6651
- });
6652
- } else {
6653
- if (placement === 'top') {
6654
- panelPlacement = 'top';
6655
- panelStyle.bottom = `${targetHeight}px`;
6656
- } else if (!placement) {
6657
- // 如果下面不够放,则向上
6658
- if (boundingTop + targetHeight + panelHeight > visibleHeight) {
6659
- // 如果上面不够放,则向下(优先)
6660
- if (boundingTop - targetHeight - panelHeight > marginSize) {
6661
- panelPlacement = 'top';
6662
- panelStyle.bottom = `${targetHeight}px`;
6663
- }
6664
- }
6665
- }
6666
- }
6667
- reactData.panelStyle = panelStyle;
6668
- reactData.panelPlacement = panelPlacement;
6669
- return (0,external_commonjs_vue_commonjs2_vue_root_Vue_.nextTick)();
6670
- }
6671
- });
6689
+ const {
6690
+ placement
6691
+ } = props;
6692
+ const {
6693
+ panelIndex
6694
+ } = reactData;
6695
+ const targetElem = refButton.value;
6696
+ const panelElem = refBtnPanel.value;
6697
+ const btnTransfer = computeBtnTransfer.value;
6698
+ const handleStyle = () => {
6699
+ const ppObj = updatePanelPlacement(targetElem, panelElem, {
6700
+ placement,
6701
+ teleportTo: btnTransfer
6702
+ });
6703
+ const panelStyle = Object.assign(ppObj.style, {
6704
+ zIndex: panelIndex
6705
+ });
6706
+ reactData.panelStyle = panelStyle;
6707
+ reactData.panelPlacement = ppObj.placement;
6708
+ };
6709
+ handleStyle();
6710
+ return (0,external_commonjs_vue_commonjs2_vue_root_Vue_.nextTick)().then(handleStyle);
6672
6711
  };
6673
6712
  const clickEvent = evnt => {
6674
6713
  if ($xeButtonGroup) {
@@ -7014,6 +7053,7 @@ function handleBooleanDefaultValue(value) {
7014
7053
  $button: $xeButton
7015
7054
  }) : popupClassName : '', {
7016
7055
  [`size--${vSize}`]: vSize,
7056
+ 'is--transfer': btnTransfer,
7017
7057
  'ani--leave': isAniVisible,
7018
7058
  'ani--enter': visiblePanel
7019
7059
  }],
@@ -13499,83 +13539,28 @@ function toFloatValueFixed(inputValue, digitsValue) {
13499
13539
  }
13500
13540
  };
13501
13541
  const updatePlacement = () => {
13502
- return (0,external_commonjs_vue_commonjs2_vue_root_Vue_.nextTick)().then(() => {
13503
- const {
13504
- placement
13505
- } = props;
13506
- const {
13507
- panelIndex
13508
- } = reactData;
13509
- const el = refElem.value;
13510
- const panelElem = refOptionPanel.value;
13511
- const btnTransfer = computeBtnTransfer.value;
13512
- if (panelElem && el) {
13513
- const targetHeight = el.offsetHeight;
13514
- const targetWidth = el.offsetWidth;
13515
- const panelHeight = panelElem.offsetHeight;
13516
- const panelWidth = panelElem.offsetWidth;
13517
- const marginSize = 5;
13518
- const panelStyle = {
13519
- zIndex: panelIndex
13520
- };
13521
- const {
13522
- boundingTop,
13523
- boundingLeft,
13524
- visibleHeight,
13525
- visibleWidth
13526
- } = getAbsolutePos(el);
13527
- let panelPlacement = 'bottom';
13528
- if (btnTransfer) {
13529
- let left = boundingLeft;
13530
- let top = boundingTop + targetHeight;
13531
- if (placement === 'top') {
13532
- panelPlacement = 'top';
13533
- top = boundingTop - panelHeight;
13534
- } else if (!placement) {
13535
- // 如果下面不够放,则向上
13536
- if (top + panelHeight + marginSize > visibleHeight) {
13537
- panelPlacement = 'top';
13538
- top = boundingTop - panelHeight;
13539
- }
13540
- // 如果上面不够放,则向下(优先)
13541
- if (top < marginSize) {
13542
- panelPlacement = 'bottom';
13543
- top = boundingTop + targetHeight;
13544
- }
13545
- }
13546
- // 如果溢出右边
13547
- if (left + panelWidth + marginSize > visibleWidth) {
13548
- left -= left + panelWidth + marginSize - visibleWidth;
13549
- }
13550
- // 如果溢出左边
13551
- if (left < marginSize) {
13552
- left = marginSize;
13553
- }
13554
- Object.assign(panelStyle, {
13555
- left: `${left}px`,
13556
- top: `${top}px`,
13557
- minWidth: `${targetWidth}px`
13558
- });
13559
- } else {
13560
- if (placement === 'top') {
13561
- panelPlacement = 'top';
13562
- panelStyle.bottom = `${targetHeight}px`;
13563
- } else if (!placement) {
13564
- // 如果下面不够放,则向上
13565
- if (boundingTop + targetHeight + panelHeight > visibleHeight) {
13566
- // 如果上面不够放,则向下(优先)
13567
- if (boundingTop - targetHeight - panelHeight > marginSize) {
13568
- panelPlacement = 'top';
13569
- panelStyle.bottom = `${targetHeight}px`;
13570
- }
13571
- }
13572
- }
13573
- }
13574
- reactData.panelStyle = panelStyle;
13575
- reactData.panelPlacement = panelPlacement;
13576
- return (0,external_commonjs_vue_commonjs2_vue_root_Vue_.nextTick)();
13577
- }
13578
- });
13542
+ const {
13543
+ placement
13544
+ } = props;
13545
+ const {
13546
+ panelIndex
13547
+ } = reactData;
13548
+ const targetElem = refElem.value;
13549
+ const panelElem = refOptionPanel.value;
13550
+ const btnTransfer = computeBtnTransfer.value;
13551
+ const handleStyle = () => {
13552
+ const ppObj = updatePanelPlacement(targetElem, panelElem, {
13553
+ placement,
13554
+ teleportTo: btnTransfer
13555
+ });
13556
+ const panelStyle = Object.assign(ppObj.style, {
13557
+ zIndex: panelIndex
13558
+ });
13559
+ reactData.panelStyle = panelStyle;
13560
+ reactData.panelPlacement = ppObj.placement;
13561
+ };
13562
+ handleStyle();
13563
+ return (0,external_commonjs_vue_commonjs2_vue_root_Vue_.nextTick)().then(handleStyle);
13579
13564
  };
13580
13565
  const showOptionPanel = () => {
13581
13566
  const {
@@ -16809,85 +16794,28 @@ const DatePanel = VxeDatePanel;
16809
16794
  }
16810
16795
  };
16811
16796
  const updatePlacement = () => {
16812
- return (0,external_commonjs_vue_commonjs2_vue_root_Vue_.nextTick)().then(() => {
16813
- const {
16814
- placement
16815
- } = props;
16816
- const {
16817
- panelIndex
16818
- } = reactData;
16819
- const targetElem = refInputTarget.value;
16820
- const panelElem = refInputPanel.value;
16821
- const btnTransfer = computeBtnTransfer.value;
16822
- if (targetElem && panelElem) {
16823
- const targetHeight = targetElem.offsetHeight;
16824
- const targetWidth = targetElem.offsetWidth;
16825
- const panelHeight = panelElem.offsetHeight;
16826
- const panelWidth = panelElem.offsetWidth;
16827
- const marginSize = 5;
16828
- const panelStyle = {
16829
- zIndex: panelIndex
16830
- };
16831
- const {
16832
- boundingTop,
16833
- boundingLeft,
16834
- visibleHeight,
16835
- visibleWidth
16836
- } = getAbsolutePos(targetElem);
16837
- let panelPlacement = 'bottom';
16838
- if (btnTransfer) {
16839
- let left = boundingLeft;
16840
- let top = boundingTop + targetHeight;
16841
- if (placement === 'top') {
16842
- panelPlacement = 'top';
16843
- top = boundingTop - panelHeight;
16844
- } else if (!placement) {
16845
- // 如果下面不够放,则向上
16846
- if (top + panelHeight + marginSize > visibleHeight) {
16847
- panelPlacement = 'top';
16848
- top = boundingTop - panelHeight;
16849
- }
16850
- // 如果上面不够放,则向下(优先)
16851
- if (top < marginSize) {
16852
- panelPlacement = 'bottom';
16853
- top = boundingTop + targetHeight;
16854
- }
16855
- }
16856
- // 如果溢出右边
16857
- if (left + panelWidth + marginSize > visibleWidth) {
16858
- left -= left + panelWidth + marginSize - visibleWidth;
16859
- }
16860
- // 如果溢出左边
16861
- if (left < marginSize) {
16862
- left = marginSize;
16863
- }
16864
- Object.assign(panelStyle, {
16865
- left: `${left}px`,
16866
- top: `${top}px`,
16867
- minWidth: `${targetWidth}px`
16868
- });
16869
- } else {
16870
- if (placement === 'top') {
16871
- panelPlacement = 'top';
16872
- panelStyle.bottom = `${targetHeight}px`;
16873
- } else if (!placement) {
16874
- // 如果下面不够放,则向上
16875
- panelStyle.top = `${targetHeight}px`;
16876
- if (boundingTop + targetHeight + panelHeight > visibleHeight) {
16877
- // 如果上面不够放,则向下(优先)
16878
- if (boundingTop - targetHeight - panelHeight > marginSize) {
16879
- panelPlacement = 'top';
16880
- panelStyle.top = '';
16881
- panelStyle.bottom = `${targetHeight}px`;
16882
- }
16883
- }
16884
- }
16885
- }
16886
- reactData.panelStyle = panelStyle;
16887
- reactData.panelPlacement = panelPlacement;
16888
- return (0,external_commonjs_vue_commonjs2_vue_root_Vue_.nextTick)();
16889
- }
16890
- });
16797
+ const {
16798
+ placement
16799
+ } = props;
16800
+ const {
16801
+ panelIndex
16802
+ } = reactData;
16803
+ const targetElem = refInputTarget.value;
16804
+ const panelElem = refInputPanel.value;
16805
+ const btnTransfer = computeBtnTransfer.value;
16806
+ const handleStyle = () => {
16807
+ const ppObj = updatePanelPlacement(targetElem, panelElem, {
16808
+ placement,
16809
+ teleportTo: btnTransfer
16810
+ });
16811
+ const panelStyle = Object.assign(ppObj.style, {
16812
+ zIndex: panelIndex
16813
+ });
16814
+ reactData.panelStyle = panelStyle;
16815
+ reactData.panelPlacement = ppObj.placement;
16816
+ };
16817
+ handleStyle();
16818
+ return (0,external_commonjs_vue_commonjs2_vue_root_Vue_.nextTick)().then(handleStyle);
16891
16819
  };
16892
16820
  const showPanel = () => {
16893
16821
  const {
@@ -17521,7 +17449,7 @@ const DatePicker = VxeDatePicker;
17521
17449
  if (globalPlaceholder) {
17522
17450
  return getFuncText(globalPlaceholder);
17523
17451
  }
17524
- return i18n_getI18n('vxe.base.pleaseSelect');
17452
+ return i18n_getI18n('vxe.dateRangePicker.pleaseRange');
17525
17453
  });
17526
17454
  const computeInpImmediate = (0,external_commonjs_vue_commonjs2_vue_root_Vue_.computed)(() => {
17527
17455
  const {
@@ -17867,11 +17795,11 @@ const DatePicker = VxeDatePicker;
17867
17795
  if ($startDatePanel && $endDatePanel) {
17868
17796
  const startValue = $startDatePanel.getModelValue();
17869
17797
  const endValue = $endDatePanel.getModelValue();
17870
- if (startValue && endValue) {
17798
+ if (startValue && !endValue || !startValue && endValue) {
17799
+ handleChange('', '', evnt);
17800
+ } else {
17871
17801
  $startDatePanel.confirmByEvent(evnt);
17872
17802
  $endDatePanel.confirmByEvent(evnt);
17873
- } else {
17874
- handleChange('', '', evnt);
17875
17803
  }
17876
17804
  }
17877
17805
  hidePanel();
@@ -17976,85 +17904,28 @@ const DatePicker = VxeDatePicker;
17976
17904
  }
17977
17905
  };
17978
17906
  const updatePlacement = () => {
17979
- return (0,external_commonjs_vue_commonjs2_vue_root_Vue_.nextTick)().then(() => {
17980
- const {
17981
- placement
17982
- } = props;
17983
- const {
17984
- panelIndex
17985
- } = reactData;
17986
- const targetElem = refInputTarget.value;
17987
- const panelElem = refInputPanel.value;
17988
- const btnTransfer = computeBtnTransfer.value;
17989
- if (targetElem && panelElem) {
17990
- const targetHeight = targetElem.offsetHeight;
17991
- const targetWidth = targetElem.offsetWidth;
17992
- const panelHeight = panelElem.offsetHeight;
17993
- const panelWidth = panelElem.offsetWidth;
17994
- const marginSize = 5;
17995
- const panelStyle = {
17996
- zIndex: panelIndex
17997
- };
17998
- const {
17999
- boundingTop,
18000
- boundingLeft,
18001
- visibleHeight,
18002
- visibleWidth
18003
- } = getAbsolutePos(targetElem);
18004
- let panelPlacement = 'bottom';
18005
- if (btnTransfer) {
18006
- let left = boundingLeft;
18007
- let top = boundingTop + targetHeight;
18008
- if (placement === 'top') {
18009
- panelPlacement = 'top';
18010
- top = boundingTop - panelHeight;
18011
- } else if (!placement) {
18012
- // 如果下面不够放,则向上
18013
- if (top + panelHeight + marginSize > visibleHeight) {
18014
- panelPlacement = 'top';
18015
- top = boundingTop - panelHeight;
18016
- }
18017
- // 如果上面不够放,则向下(优先)
18018
- if (top < marginSize) {
18019
- panelPlacement = 'bottom';
18020
- top = boundingTop + targetHeight;
18021
- }
18022
- }
18023
- // 如果溢出右边
18024
- if (left + panelWidth + marginSize > visibleWidth) {
18025
- left -= left + panelWidth + marginSize - visibleWidth;
18026
- }
18027
- // 如果溢出左边
18028
- if (left < marginSize) {
18029
- left = marginSize;
18030
- }
18031
- Object.assign(panelStyle, {
18032
- left: `${left}px`,
18033
- top: `${top}px`,
18034
- minWidth: `${targetWidth}px`
18035
- });
18036
- } else {
18037
- if (placement === 'top') {
18038
- panelPlacement = 'top';
18039
- panelStyle.bottom = `${targetHeight}px`;
18040
- } else if (!placement) {
18041
- // 如果下面不够放,则向上
18042
- panelStyle.top = `${targetHeight}px`;
18043
- if (boundingTop + targetHeight + panelHeight > visibleHeight) {
18044
- // 如果上面不够放,则向下(优先)
18045
- if (boundingTop - targetHeight - panelHeight > marginSize) {
18046
- panelPlacement = 'top';
18047
- panelStyle.top = '';
18048
- panelStyle.bottom = `${targetHeight}px`;
18049
- }
18050
- }
18051
- }
18052
- }
18053
- reactData.panelStyle = panelStyle;
18054
- reactData.panelPlacement = panelPlacement;
18055
- return (0,external_commonjs_vue_commonjs2_vue_root_Vue_.nextTick)();
18056
- }
18057
- });
17907
+ const {
17908
+ placement
17909
+ } = props;
17910
+ const {
17911
+ panelIndex
17912
+ } = reactData;
17913
+ const targetElem = refInputTarget.value;
17914
+ const panelElem = refInputPanel.value;
17915
+ const btnTransfer = computeBtnTransfer.value;
17916
+ const handleStyle = () => {
17917
+ const ppObj = updatePanelPlacement(targetElem, panelElem, {
17918
+ placement,
17919
+ teleportTo: btnTransfer
17920
+ });
17921
+ const panelStyle = Object.assign(ppObj.style, {
17922
+ zIndex: panelIndex
17923
+ });
17924
+ reactData.panelStyle = panelStyle;
17925
+ reactData.panelPlacement = ppObj.placement;
17926
+ };
17927
+ handleStyle();
17928
+ return (0,external_commonjs_vue_commonjs2_vue_root_Vue_.nextTick)().then(handleStyle);
18058
17929
  };
18059
17930
  const showPanel = () => {
18060
17931
  const {
@@ -26444,83 +26315,28 @@ function getOptUniqueId() {
26444
26315
  }
26445
26316
  };
26446
26317
  const updatePlacement = () => {
26447
- return (0,external_commonjs_vue_commonjs2_vue_root_Vue_.nextTick)().then(() => {
26448
- const {
26449
- placement
26450
- } = props;
26451
- const {
26452
- panelIndex
26453
- } = reactData;
26454
- const el = refElem.value;
26455
- const panelElem = refOptionPanel.value;
26456
- const btnTransfer = computeBtnTransfer.value;
26457
- if (panelElem && el) {
26458
- const targetHeight = el.offsetHeight;
26459
- const targetWidth = el.offsetWidth;
26460
- const panelHeight = panelElem.offsetHeight;
26461
- const panelWidth = panelElem.offsetWidth;
26462
- const marginSize = 5;
26463
- const panelStyle = {
26464
- zIndex: panelIndex
26465
- };
26466
- const {
26467
- boundingTop,
26468
- boundingLeft,
26469
- visibleHeight,
26470
- visibleWidth
26471
- } = getAbsolutePos(el);
26472
- let panelPlacement = 'bottom';
26473
- if (btnTransfer) {
26474
- let left = boundingLeft;
26475
- let top = boundingTop + targetHeight;
26476
- if (placement === 'top') {
26477
- panelPlacement = 'top';
26478
- top = boundingTop - panelHeight;
26479
- } else if (!placement) {
26480
- // 如果下面不够放,则向上
26481
- if (top + panelHeight + marginSize > visibleHeight) {
26482
- panelPlacement = 'top';
26483
- top = boundingTop - panelHeight;
26484
- }
26485
- // 如果上面不够放,则向下(优先)
26486
- if (top < marginSize) {
26487
- panelPlacement = 'bottom';
26488
- top = boundingTop + targetHeight;
26489
- }
26490
- }
26491
- // 如果溢出右边
26492
- if (left + panelWidth + marginSize > visibleWidth) {
26493
- left -= left + panelWidth + marginSize - visibleWidth;
26494
- }
26495
- // 如果溢出左边
26496
- if (left < marginSize) {
26497
- left = marginSize;
26498
- }
26499
- Object.assign(panelStyle, {
26500
- left: `${left}px`,
26501
- top: `${top}px`,
26502
- minWidth: `${targetWidth}px`
26503
- });
26504
- } else {
26505
- if (placement === 'top') {
26506
- panelPlacement = 'top';
26507
- panelStyle.bottom = `${targetHeight}px`;
26508
- } else if (!placement) {
26509
- // 如果下面不够放,则向上
26510
- if (boundingTop + targetHeight + panelHeight > visibleHeight) {
26511
- // 如果上面不够放,则向下(优先)
26512
- if (boundingTop - targetHeight - panelHeight > marginSize) {
26513
- panelPlacement = 'top';
26514
- panelStyle.bottom = `${targetHeight}px`;
26515
- }
26516
- }
26517
- }
26518
- }
26519
- reactData.panelStyle = panelStyle;
26520
- reactData.panelPlacement = panelPlacement;
26521
- return (0,external_commonjs_vue_commonjs2_vue_root_Vue_.nextTick)();
26522
- }
26523
- });
26318
+ const {
26319
+ placement
26320
+ } = props;
26321
+ const {
26322
+ panelIndex
26323
+ } = reactData;
26324
+ const targetElem = refElem.value;
26325
+ const panelElem = refOptionPanel.value;
26326
+ const btnTransfer = computeBtnTransfer.value;
26327
+ const handleStyle = () => {
26328
+ const ppObj = updatePanelPlacement(targetElem, panelElem, {
26329
+ placement,
26330
+ teleportTo: btnTransfer
26331
+ });
26332
+ const panelStyle = Object.assign(ppObj.style, {
26333
+ zIndex: panelIndex
26334
+ });
26335
+ reactData.panelStyle = panelStyle;
26336
+ reactData.panelPlacement = ppObj.placement;
26337
+ };
26338
+ handleStyle();
26339
+ return (0,external_commonjs_vue_commonjs2_vue_root_Vue_.nextTick)().then(handleStyle);
26524
26340
  };
26525
26341
  const showOptionPanel = () => {
26526
26342
  const {
@@ -35255,83 +35071,28 @@ function tree_select_getOptUniqueId() {
35255
35071
  }
35256
35072
  };
35257
35073
  const updatePlacement = () => {
35258
- return (0,external_commonjs_vue_commonjs2_vue_root_Vue_.nextTick)().then(() => {
35259
- const {
35260
- placement
35261
- } = props;
35262
- const {
35263
- panelIndex
35264
- } = reactData;
35265
- const el = refElem.value;
35266
- const panelElem = refOptionPanel.value;
35267
- const btnTransfer = computeBtnTransfer.value;
35268
- if (panelElem && el) {
35269
- const targetHeight = el.offsetHeight;
35270
- const targetWidth = el.offsetWidth;
35271
- const panelHeight = panelElem.offsetHeight;
35272
- const panelWidth = panelElem.offsetWidth;
35273
- const marginSize = 5;
35274
- const panelStyle = {
35275
- zIndex: panelIndex
35276
- };
35277
- const {
35278
- boundingTop,
35279
- boundingLeft,
35280
- visibleHeight,
35281
- visibleWidth
35282
- } = getAbsolutePos(el);
35283
- let panelPlacement = 'bottom';
35284
- if (btnTransfer) {
35285
- let left = boundingLeft;
35286
- let top = boundingTop + targetHeight;
35287
- if (placement === 'top') {
35288
- panelPlacement = 'top';
35289
- top = boundingTop - panelHeight;
35290
- } else if (!placement) {
35291
- // 如果下面不够放,则向上
35292
- if (top + panelHeight + marginSize > visibleHeight) {
35293
- panelPlacement = 'top';
35294
- top = boundingTop - panelHeight;
35295
- }
35296
- // 如果上面不够放,则向下(优先)
35297
- if (top < marginSize) {
35298
- panelPlacement = 'bottom';
35299
- top = boundingTop + targetHeight;
35300
- }
35301
- }
35302
- // 如果溢出右边
35303
- if (left + panelWidth + marginSize > visibleWidth) {
35304
- left -= left + panelWidth + marginSize - visibleWidth;
35305
- }
35306
- // 如果溢出左边
35307
- if (left < marginSize) {
35308
- left = marginSize;
35309
- }
35310
- Object.assign(panelStyle, {
35311
- left: `${left}px`,
35312
- top: `${top}px`,
35313
- minWidth: `${targetWidth}px`
35314
- });
35315
- } else {
35316
- if (placement === 'top') {
35317
- panelPlacement = 'top';
35318
- panelStyle.bottom = `${targetHeight}px`;
35319
- } else if (!placement) {
35320
- // 如果下面不够放,则向上
35321
- if (boundingTop + targetHeight + panelHeight > visibleHeight) {
35322
- // 如果上面不够放,则向下(优先)
35323
- if (boundingTop - targetHeight - panelHeight > marginSize) {
35324
- panelPlacement = 'top';
35325
- panelStyle.bottom = `${targetHeight}px`;
35326
- }
35327
- }
35328
- }
35329
- }
35330
- reactData.panelStyle = panelStyle;
35331
- reactData.panelPlacement = panelPlacement;
35332
- return (0,external_commonjs_vue_commonjs2_vue_root_Vue_.nextTick)();
35333
- }
35334
- });
35074
+ const {
35075
+ placement
35076
+ } = props;
35077
+ const {
35078
+ panelIndex
35079
+ } = reactData;
35080
+ const targetElem = refElem.value;
35081
+ const panelElem = refOptionPanel.value;
35082
+ const btnTransfer = computeBtnTransfer.value;
35083
+ const handleStyle = () => {
35084
+ const ppObj = updatePanelPlacement(targetElem, panelElem, {
35085
+ placement,
35086
+ teleportTo: btnTransfer
35087
+ });
35088
+ const panelStyle = Object.assign(ppObj.style, {
35089
+ zIndex: panelIndex
35090
+ });
35091
+ reactData.panelStyle = panelStyle;
35092
+ reactData.panelPlacement = ppObj.placement;
35093
+ };
35094
+ handleStyle();
35095
+ return (0,external_commonjs_vue_commonjs2_vue_root_Vue_.nextTick)().then(handleStyle);
35335
35096
  };
35336
35097
  const showOptionPanel = () => {
35337
35098
  const {
@@ -46684,86 +46445,28 @@ const Print = VxePrint;
46684
46445
  * 手动更新位置
46685
46446
  */
46686
46447
  const updatePlacement = () => {
46687
- return (0,external_commonjs_vue_commonjs2_vue_root_Vue_.nextTick)().then(() => {
46688
- const {
46689
- placement
46690
- } = props;
46691
- const {
46692
- panelIndex,
46693
- visiblePanel
46694
- } = reactData;
46695
- const btnTransfer = computeBtnTransfer.value;
46696
- if (visiblePanel) {
46697
- const targetElem = refPulldownContent.value;
46698
- const panelElem = refPulldownPanel.value;
46699
- if (panelElem && targetElem) {
46700
- const targetHeight = targetElem.offsetHeight;
46701
- const targetWidth = targetElem.offsetWidth;
46702
- const panelHeight = panelElem.offsetHeight;
46703
- const panelWidth = panelElem.offsetWidth;
46704
- const marginSize = 5;
46705
- const panelStyle = {
46706
- zIndex: panelIndex
46707
- };
46708
- const {
46709
- boundingTop,
46710
- boundingLeft,
46711
- visibleHeight,
46712
- visibleWidth
46713
- } = getAbsolutePos(targetElem);
46714
- let panelPlacement = 'bottom';
46715
- if (btnTransfer) {
46716
- let left = boundingLeft;
46717
- let top = boundingTop + targetHeight;
46718
- if (placement === 'top') {
46719
- panelPlacement = 'top';
46720
- top = boundingTop - panelHeight;
46721
- } else if (!placement) {
46722
- // 如果下面不够放,则向上
46723
- if (top + panelHeight + marginSize > visibleHeight) {
46724
- panelPlacement = 'top';
46725
- top = boundingTop - panelHeight;
46726
- }
46727
- // 如果上面不够放,则向下(优先)
46728
- if (top < marginSize) {
46729
- panelPlacement = 'bottom';
46730
- top = boundingTop + targetHeight;
46731
- }
46732
- }
46733
- // 如果溢出右边
46734
- if (left + panelWidth + marginSize > visibleWidth) {
46735
- left -= left + panelWidth + marginSize - visibleWidth;
46736
- }
46737
- // 如果溢出左边
46738
- if (left < marginSize) {
46739
- left = marginSize;
46740
- }
46741
- Object.assign(panelStyle, {
46742
- left: `${left}px`,
46743
- top: `${top}px`,
46744
- minWidth: `${targetWidth}px`
46745
- });
46746
- } else {
46747
- if (placement === 'top') {
46748
- panelPlacement = 'top';
46749
- panelStyle.bottom = `${targetHeight}px`;
46750
- } else if (!placement) {
46751
- // 如果下面不够放,则向上
46752
- if (boundingTop + targetHeight + panelHeight > visibleHeight) {
46753
- // 如果上面不够放,则向下(优先)
46754
- if (boundingTop - targetHeight - panelHeight > marginSize) {
46755
- panelPlacement = 'top';
46756
- panelStyle.bottom = `${targetHeight}px`;
46757
- }
46758
- }
46759
- }
46760
- }
46761
- reactData.panelStyle = panelStyle;
46762
- reactData.panelPlacement = panelPlacement;
46763
- }
46764
- }
46765
- return (0,external_commonjs_vue_commonjs2_vue_root_Vue_.nextTick)();
46766
- });
46448
+ const {
46449
+ placement
46450
+ } = props;
46451
+ const {
46452
+ panelIndex
46453
+ } = reactData;
46454
+ const targetElem = refPulldownContent.value;
46455
+ const panelElem = refPulldownPanel.value;
46456
+ const btnTransfer = computeBtnTransfer.value;
46457
+ const handleStyle = () => {
46458
+ const ppObj = updatePanelPlacement(targetElem, panelElem, {
46459
+ placement,
46460
+ teleportTo: btnTransfer
46461
+ });
46462
+ const panelStyle = Object.assign(ppObj.style, {
46463
+ zIndex: panelIndex
46464
+ });
46465
+ reactData.panelStyle = panelStyle;
46466
+ reactData.panelPlacement = ppObj.placement;
46467
+ };
46468
+ handleStyle();
46469
+ return (0,external_commonjs_vue_commonjs2_vue_root_Vue_.nextTick)().then(handleStyle);
46767
46470
  };
46768
46471
  /**
46769
46472
  * 显示下拉面板
@@ -48497,83 +48200,28 @@ function getRowUniqueId() {
48497
48200
  }
48498
48201
  };
48499
48202
  const updatePlacement = () => {
48500
- return (0,external_commonjs_vue_commonjs2_vue_root_Vue_.nextTick)().then(() => {
48501
- const {
48502
- placement
48503
- } = props;
48504
- const {
48505
- panelIndex
48506
- } = reactData;
48507
- const el = refElem.value;
48508
- const panelElem = refOptionPanel.value;
48509
- const btnTransfer = computeBtnTransfer.value;
48510
- if (panelElem && el) {
48511
- const targetHeight = el.offsetHeight;
48512
- const targetWidth = el.offsetWidth;
48513
- const panelHeight = panelElem.offsetHeight;
48514
- const panelWidth = panelElem.offsetWidth;
48515
- const marginSize = 5;
48516
- const panelStyle = {
48517
- zIndex: panelIndex
48518
- };
48519
- const {
48520
- boundingTop,
48521
- boundingLeft,
48522
- visibleHeight,
48523
- visibleWidth
48524
- } = getAbsolutePos(el);
48525
- let panelPlacement = 'bottom';
48526
- if (btnTransfer) {
48527
- let left = boundingLeft;
48528
- let top = boundingTop + targetHeight;
48529
- if (placement === 'top') {
48530
- panelPlacement = 'top';
48531
- top = boundingTop - panelHeight;
48532
- } else if (!placement) {
48533
- // 如果下面不够放,则向上
48534
- if (top + panelHeight + marginSize > visibleHeight) {
48535
- panelPlacement = 'top';
48536
- top = boundingTop - panelHeight;
48537
- }
48538
- // 如果上面不够放,则向下(优先)
48539
- if (top < marginSize) {
48540
- panelPlacement = 'bottom';
48541
- top = boundingTop + targetHeight;
48542
- }
48543
- }
48544
- // 如果溢出右边
48545
- if (left + panelWidth + marginSize > visibleWidth) {
48546
- left -= left + panelWidth + marginSize - visibleWidth;
48547
- }
48548
- // 如果溢出左边
48549
- if (left < marginSize) {
48550
- left = marginSize;
48551
- }
48552
- Object.assign(panelStyle, {
48553
- left: `${left}px`,
48554
- top: `${top}px`,
48555
- minWidth: `${targetWidth}px`
48556
- });
48557
- } else {
48558
- if (placement === 'top') {
48559
- panelPlacement = 'top';
48560
- panelStyle.bottom = `${targetHeight}px`;
48561
- } else if (!placement) {
48562
- // 如果下面不够放,则向上
48563
- if (boundingTop + targetHeight + panelHeight > visibleHeight) {
48564
- // 如果上面不够放,则向下(优先)
48565
- if (boundingTop - targetHeight - panelHeight > marginSize) {
48566
- panelPlacement = 'top';
48567
- panelStyle.bottom = `${targetHeight}px`;
48568
- }
48569
- }
48570
- }
48571
- }
48572
- reactData.panelStyle = panelStyle;
48573
- reactData.panelPlacement = panelPlacement;
48574
- return (0,external_commonjs_vue_commonjs2_vue_root_Vue_.nextTick)();
48575
- }
48576
- });
48203
+ const {
48204
+ placement
48205
+ } = props;
48206
+ const {
48207
+ panelIndex
48208
+ } = reactData;
48209
+ const targetElem = refElem.value;
48210
+ const panelElem = refOptionPanel.value;
48211
+ const btnTransfer = computeBtnTransfer.value;
48212
+ const handleStyle = () => {
48213
+ const ppObj = updatePanelPlacement(targetElem, panelElem, {
48214
+ placement,
48215
+ teleportTo: btnTransfer
48216
+ });
48217
+ const panelStyle = Object.assign(ppObj.style, {
48218
+ zIndex: panelIndex
48219
+ });
48220
+ reactData.panelStyle = panelStyle;
48221
+ reactData.panelPlacement = ppObj.placement;
48222
+ };
48223
+ handleStyle();
48224
+ return (0,external_commonjs_vue_commonjs2_vue_root_Vue_.nextTick)().then(handleStyle);
48577
48225
  };
48578
48226
  const showOptionPanel = () => {
48579
48227
  const {