@@ -70,7 +70,7 @@ export default defineComponent({
70
70
const tabsWrapperRef = ref < HTMLDivElement > ( ) ;
71
71
const tabListRef = ref < HTMLDivElement > ( ) ;
72
72
const operationsRef = ref < { $el : HTMLDivElement } > ( ) ;
73
- const innerAddButtonRef = ref < HTMLButtonElement > ( ) ;
73
+ const innerAddButtonRef = ref ( ) ;
74
74
const [ setRef , btnRefs ] = useRefs ( ) ;
75
75
const tabPositionTopOrBottom = computed (
76
76
( ) => props . tabPosition === 'top' || props . tabPosition === 'bottom' ,
@@ -89,8 +89,6 @@ export default defineComponent({
89
89
90
90
const [ wrapperScrollWidth , setWrapperScrollWidth ] = useState < number > ( 0 ) ;
91
91
const [ wrapperScrollHeight , setWrapperScrollHeight ] = useState < number > ( 0 ) ;
92
- const [ wrapperContentWidth , setWrapperContentWidth ] = useState < number > ( 0 ) ;
93
- const [ wrapperContentHeight , setWrapperContentHeight ] = useState < number > ( 0 ) ;
94
92
const [ wrapperWidth , setWrapperWidth ] = useState < number > ( null ) ;
95
93
const [ wrapperHeight , setWrapperHeight ] = useState < number > ( null ) ;
96
94
const [ addWidth , setAddWidth ] = useState < number > ( 0 ) ;
@@ -232,25 +230,24 @@ export default defineComponent({
232
230
let basicSize : number ;
233
231
let tabContentSize : number ;
234
232
let addSize : number ;
235
-
233
+ const tabOffsetsValue = tabOffsets . value ;
236
234
if ( [ 'top' , 'bottom' ] . includes ( props . tabPosition ) ) {
237
235
unit = 'width' ;
238
236
basicSize = wrapperWidth . value ;
239
- tabContentSize = wrapperContentWidth . value ;
237
+ tabContentSize = wrapperScrollWidth . value ;
240
238
addSize = addWidth . value ;
241
239
position = props . rtl ? 'right' : 'left' ;
242
240
transformSize = Math . abs ( transformLeft . value ) ;
243
241
} else {
244
242
unit = 'height' ;
245
243
basicSize = wrapperHeight . value ;
246
- tabContentSize = wrapperContentHeight . value ;
244
+ tabContentSize = wrapperScrollWidth . value ;
247
245
addSize = addHeight . value ;
248
246
position = 'top' ;
249
247
transformSize = - transformTop . value ;
250
248
}
251
-
252
249
let mergedBasicSize = basicSize ;
253
- if ( tabContentSize + addSize > basicSize ) {
250
+ if ( tabContentSize + addSize > basicSize && tabContentSize < basicSize ) {
254
251
mergedBasicSize = basicSize - addSize ;
255
252
}
256
253
@@ -262,15 +259,15 @@ export default defineComponent({
262
259
const len = tabsVal . length ;
263
260
let endIndex = len ;
264
261
for ( let i = 0 ; i < len ; i += 1 ) {
265
- const offset = tabOffsets . value . get ( tabsVal [ i ] . key ) || DEFAULT_SIZE ;
262
+ const offset = tabOffsetsValue . get ( tabsVal [ i ] . key ) || DEFAULT_SIZE ;
266
263
if ( offset [ position ] + offset [ unit ] > transformSize + mergedBasicSize ) {
267
264
endIndex = i - 1 ;
268
265
break ;
269
266
}
270
267
}
271
268
let startIndex = 0 ;
272
269
for ( let i = len - 1 ; i >= 0 ; i -= 1 ) {
273
- const offset = tabOffsets . value . get ( tabsVal [ i ] . key ) || DEFAULT_SIZE ;
270
+ const offset = tabOffsetsValue . get ( tabsVal [ i ] . key ) || DEFAULT_SIZE ;
274
271
if ( offset [ position ] < transformSize ) {
275
272
startIndex = i + 1 ;
276
273
break ;
@@ -284,11 +281,9 @@ export default defineComponent({
284
281
// Update wrapper records
285
282
const offsetWidth = tabsWrapperRef . value ?. offsetWidth || 0 ;
286
283
const offsetHeight = tabsWrapperRef . value ?. offsetHeight || 0 ;
287
- const newAddWidth = innerAddButtonRef . value ?. offsetWidth || 0 ;
288
- const newAddHeight = innerAddButtonRef . value ?. offsetHeight || 0 ;
289
- const newOperationWidth = operationsRef . value ?. $el . offsetWidth || 0 ;
290
- const newOperationHeight = operationsRef . value ?. $el . offsetHeight || 0 ;
291
-
284
+ const addDom = innerAddButtonRef . value ?. $el || { } ;
285
+ const newAddWidth = addDom . offsetWidth || 0 ;
286
+ const newAddHeight = addDom . offsetHeight || 0 ;
292
287
setWrapperWidth ( offsetWidth ) ;
293
288
setWrapperHeight ( offsetHeight ) ;
294
289
setAddWidth ( newAddWidth ) ;
@@ -300,14 +295,6 @@ export default defineComponent({
300
295
setWrapperScrollWidth ( newWrapperScrollWidth ) ;
301
296
setWrapperScrollHeight ( newWrapperScrollHeight ) ;
302
297
303
- const isOperationHidden = operationsRef . value ?. $el . className . includes (
304
- operationsHiddenClassName . value ,
305
- ) ;
306
- setWrapperContentWidth ( newWrapperScrollWidth - ( isOperationHidden ? 0 : newOperationWidth ) ) ;
307
- setWrapperContentHeight (
308
- newWrapperScrollHeight - ( isOperationHidden ? 0 : newOperationHeight ) ,
309
- ) ;
310
-
311
298
// Update buttons records
312
299
setTabSizes ( ( ) => {
313
300
const newSizes : TabSizeMap = new Map ( ) ;
@@ -475,7 +462,6 @@ export default defineComponent({
475
462
} ) ;
476
463
return (
477
464
< div
478
- ref = { ref }
479
465
role = "tablist"
480
466
class = { classNames ( `${ pre } -nav` , className ) }
481
467
style = { style }
0 commit comments