vxe-pc-ui 4.6.36 → 4.6.38

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 (47) hide show
  1. package/es/icon/style.css +1 -1
  2. package/es/notice-bar/src/notice-bar.js +9 -2
  3. package/es/style.css +1 -1
  4. package/es/style.min.css +1 -1
  5. package/es/tabs/src/tabs.js +65 -34
  6. package/es/tabs/style.css +26 -18
  7. package/es/tabs/style.min.css +1 -1
  8. package/es/ui/index.js +1 -1
  9. package/es/ui/src/log.js +1 -1
  10. package/es/vxe-tabs/style.css +26 -18
  11. package/es/vxe-tabs/style.min.css +1 -1
  12. package/lib/icon/style/style.css +1 -1
  13. package/lib/icon/style/style.min.css +1 -1
  14. package/lib/index.umd.js +76 -35
  15. package/lib/index.umd.min.js +1 -1
  16. package/lib/notice-bar/src/notice-bar.js +8 -1
  17. package/lib/notice-bar/src/notice-bar.min.js +1 -1
  18. package/lib/style.css +1 -1
  19. package/lib/style.min.css +1 -1
  20. package/lib/tabs/src/tabs.js +66 -32
  21. package/lib/tabs/src/tabs.min.js +1 -1
  22. package/lib/tabs/style/style.css +26 -18
  23. package/lib/tabs/style/style.min.css +1 -1
  24. package/lib/ui/index.js +1 -1
  25. package/lib/ui/index.min.js +1 -1
  26. package/lib/ui/src/log.js +1 -1
  27. package/lib/ui/src/log.min.js +1 -1
  28. package/lib/vxe-tabs/style/style.css +26 -18
  29. package/lib/vxe-tabs/style/style.min.css +1 -1
  30. package/package.json +1 -1
  31. package/packages/notice-bar/src/notice-bar.ts +13 -3
  32. package/packages/tabs/src/tabs.ts +67 -34
  33. package/styles/components/tabs.scss +23 -12
  34. package/types/components/grid.d.ts +1 -0
  35. package/types/components/tabs.d.ts +11 -3
  36. /package/es/icon/{iconfont.1751108492990.ttf → iconfont.1751126433330.ttf} +0 -0
  37. /package/es/icon/{iconfont.1751108492990.woff → iconfont.1751126433330.woff} +0 -0
  38. /package/es/icon/{iconfont.1751108492990.woff2 → iconfont.1751126433330.woff2} +0 -0
  39. /package/es/{iconfont.1751108492990.ttf → iconfont.1751126433330.ttf} +0 -0
  40. /package/es/{iconfont.1751108492990.woff → iconfont.1751126433330.woff} +0 -0
  41. /package/es/{iconfont.1751108492990.woff2 → iconfont.1751126433330.woff2} +0 -0
  42. /package/lib/icon/style/{iconfont.1751108492990.ttf → iconfont.1751126433330.ttf} +0 -0
  43. /package/lib/icon/style/{iconfont.1751108492990.woff → iconfont.1751126433330.woff} +0 -0
  44. /package/lib/icon/style/{iconfont.1751108492990.woff2 → iconfont.1751126433330.woff2} +0 -0
  45. /package/lib/{iconfont.1751108492990.ttf → iconfont.1751126433330.ttf} +0 -0
  46. /package/lib/{iconfont.1751108492990.woff → iconfont.1751126433330.woff} +0 -0
  47. /package/lib/{iconfont.1751108492990.woff2 → iconfont.1751126433330.woff2} +0 -0
package/lib/index.umd.js CHANGED
@@ -4241,14 +4241,14 @@ function checkDynamic() {
4241
4241
  }
4242
4242
  ;// CONCATENATED MODULE: ./packages/ui/src/log.ts
4243
4243
 
4244
- const log_version = `ui v${"4.6.36"}`;
4244
+ const log_version = `ui v${"4.6.38"}`;
4245
4245
  const warnLog = log.create('warn', log_version);
4246
4246
  const errLog = log.create('error', log_version);
4247
4247
  ;// CONCATENATED MODULE: ./packages/ui/index.ts
4248
4248
 
4249
4249
 
4250
4250
 
4251
- const ui_version = "4.6.36";
4251
+ const ui_version = "4.6.38";
4252
4252
  index_esm_VxeUI.uiVersion = ui_version;
4253
4253
  index_esm_VxeUI.dynamicApp = dynamicApp;
4254
4254
  function config(options) {
@@ -22546,6 +22546,8 @@ const ViewItemComponent = defineVxeComponent({
22546
22546
 
22547
22547
 
22548
22548
 
22549
+
22550
+ const scrollbarOffsetSize = 20;
22549
22551
  /* harmony default export */ var tabs = (defineVxeComponent({
22550
22552
  name: 'VxeTabs',
22551
22553
  props: {
@@ -22565,6 +22567,10 @@ const ViewItemComponent = defineVxeComponent({
22565
22567
  default: () => getConfig().tabs.position
22566
22568
  },
22567
22569
  showClose: Boolean,
22570
+ showBody: {
22571
+ type: Boolean,
22572
+ default: true
22573
+ },
22568
22574
  padding: {
22569
22575
  type: Boolean,
22570
22576
  default: () => getConfig().tabs.padding
@@ -22597,6 +22603,7 @@ const ViewItemComponent = defineVxeComponent({
22597
22603
  lintWidth: 0,
22598
22604
  lintHeight: 0,
22599
22605
  scrollbarWidth: 0,
22606
+ scrollbarHeight: 0,
22600
22607
  isTabOver: false,
22601
22608
  resizeFlag: 1,
22602
22609
  cacheTabMaps: {}
@@ -22671,6 +22678,9 @@ const ViewItemComponent = defineVxeComponent({
22671
22678
  } = reactData;
22672
22679
  return staticTabs.filter(item => handleFilterTab(item));
22673
22680
  });
22681
+ const computeParentTabsResizeFlag = (0,external_commonjs_vue_commonjs2_vue_root_Vue_.computed)(() => {
22682
+ return $xeParentTabs ? $xeParentTabs.reactData.resizeFlag : null;
22683
+ });
22674
22684
  const computeMaps = {};
22675
22685
  const $xeTabs = {
22676
22686
  xID,
@@ -22746,7 +22756,8 @@ const ViewItemComponent = defineVxeComponent({
22746
22756
  let lintHeight = 0;
22747
22757
  let lintLeft = 0;
22748
22758
  let lintTop = 0;
22749
- let scrollbarWidth = 0;
22759
+ let sBarWidth = 0;
22760
+ let sBarHeight = 0;
22750
22761
  let isOver = false;
22751
22762
  if (headerWrapperEl) {
22752
22763
  const index = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().findIndexOf(tabStaticOptions.length ? tabStaticOptions : tabOptions, item => item.name === activeName);
@@ -22754,11 +22765,13 @@ const ViewItemComponent = defineVxeComponent({
22754
22765
  children,
22755
22766
  offsetWidth,
22756
22767
  scrollWidth,
22768
+ offsetHeight,
22757
22769
  scrollHeight,
22758
22770
  clientWidth,
22759
22771
  clientHeight
22760
22772
  } = headerWrapperEl;
22761
- scrollbarWidth = offsetWidth - clientWidth;
22773
+ sBarWidth = offsetWidth - clientWidth;
22774
+ sBarHeight = offsetHeight - clientHeight;
22762
22775
  if (lrPosition) {
22763
22776
  isOver = scrollHeight !== clientHeight;
22764
22777
  if (index > -1) {
@@ -22787,7 +22800,7 @@ const ViewItemComponent = defineVxeComponent({
22787
22800
  if (tabEl) {
22788
22801
  const tabWidth = tabEl.clientWidth;
22789
22802
  if (tabType === 'card') {
22790
- lintWidth = tabWidth;
22803
+ lintWidth = tabWidth + 1;
22791
22804
  lintLeft = tabEl.offsetLeft;
22792
22805
  } else if (tabType === 'border-card') {
22793
22806
  lintWidth = tabWidth;
@@ -22800,7 +22813,8 @@ const ViewItemComponent = defineVxeComponent({
22800
22813
  }
22801
22814
  }
22802
22815
  }
22803
- reactData.scrollbarWidth = scrollbarWidth;
22816
+ reactData.scrollbarWidth = sBarWidth;
22817
+ reactData.scrollbarHeight = sBarHeight;
22804
22818
  reactData.lintLeft = lintLeft;
22805
22819
  reactData.lintTop = lintTop;
22806
22820
  reactData.lintWidth = lintWidth;
@@ -22941,6 +22955,9 @@ const ViewItemComponent = defineVxeComponent({
22941
22955
  const cacheItem = name ? cacheTabMaps[`${name}`] : null;
22942
22956
  if (cacheItem) {
22943
22957
  if (queryMethod) {
22958
+ if (cacheItem.loading) {
22959
+ return;
22960
+ }
22944
22961
  cacheItem.loading = true;
22945
22962
  Promise.resolve(queryMethod({
22946
22963
  $tabs: $xeTabs,
@@ -23189,6 +23206,7 @@ const ViewItemComponent = defineVxeComponent({
23189
23206
  const {
23190
23207
  activeName,
23191
23208
  scrollbarWidth,
23209
+ scrollbarHeight,
23192
23210
  isTabOver,
23193
23211
  cacheTabMaps
23194
23212
  } = reactData;
@@ -23220,9 +23238,13 @@ const ViewItemComponent = defineVxeComponent({
23220
23238
  }, [(0,external_commonjs_vue_commonjs2_vue_root_Vue_.h)('div', {
23221
23239
  ref: refHeadWrapperElem,
23222
23240
  class: 'vxe-tabs-header--item-wrapper',
23223
- style: lrPosition && scrollbarWidth ? {
23224
- marginRight: `-${scrollbarWidth}px`
23225
- } : undefined,
23241
+ style: lrPosition ? {
23242
+ marginRight: `-${scrollbarWidth + scrollbarOffsetSize}px`,
23243
+ paddingRight: `${scrollbarOffsetSize}px`
23244
+ } : {
23245
+ marginBottom: `-${scrollbarHeight + scrollbarOffsetSize}px`,
23246
+ paddingBottom: `${scrollbarOffsetSize}px`
23247
+ },
23226
23248
  onScroll: checkScrolling
23227
23249
  }, tabList.map((item, index) => {
23228
23250
  const {
@@ -23271,7 +23293,9 @@ const ViewItemComponent = defineVxeComponent({
23271
23293
  title
23272
23294
  }) : `${title}`)]), (isEnableConf(refreshConfig) || refreshOpts.enabled) && (refreshVisibleMethod ? refreshVisibleMethod(params) : true) ? (0,external_commonjs_vue_commonjs2_vue_root_Vue_.h)('div', {
23273
23295
  class: ['vxe-tabs-header--refresh-btn', {
23274
- 'is--active': isActive
23296
+ 'is--active': isActive,
23297
+ 'is--loading': isLoading,
23298
+ 'is--disabled': isLoading
23275
23299
  }],
23276
23300
  onClick(evnt) {
23277
23301
  handleRefreshTabEvent(evnt, item);
@@ -23317,8 +23341,7 @@ const ViewItemComponent = defineVxeComponent({
23317
23341
  return name && initNames.includes(name) ? (0,external_commonjs_vue_commonjs2_vue_root_Vue_.h)('div', {
23318
23342
  key: `${name}`,
23319
23343
  class: ['vxe-tabs-pane--item', {
23320
- 'is--visible': activeName === name,
23321
- 'has--content': !!defaultSlot
23344
+ 'is--visible': activeName === name
23322
23345
  }]
23323
23346
  }, defaultSlot ? callSlot(defaultSlot, {
23324
23347
  name
@@ -23331,40 +23354,56 @@ const ViewItemComponent = defineVxeComponent({
23331
23354
  const {
23332
23355
  activeName
23333
23356
  } = reactData;
23334
- const activeDefaultTab = tabList.find(item => item.name === activeName);
23335
23357
  if (destroyOnClose) {
23336
- return [activeDefaultTab ? renderTabPane(activeDefaultTab) : renderEmptyElement($xeTabs)];
23358
+ const activeTab = tabList.find(item => item.name === activeName);
23359
+ return [activeTab ? renderTabPane(activeTab) : renderEmptyElement($xeTabs)];
23337
23360
  }
23338
23361
  return tabList.map(item => renderTabPane(item));
23339
23362
  };
23340
23363
  const rendetTabBody = tabList => {
23341
23364
  const {
23342
23365
  height,
23343
- padding
23366
+ padding,
23367
+ showBody
23344
23368
  } = props;
23345
23369
  const {
23346
- activeName
23370
+ activeName,
23371
+ cacheTabMaps
23347
23372
  } = reactData;
23348
23373
  const tabType = computeTabType.value;
23349
23374
  const tabPosition = computeTabPosition.value;
23350
- const topSlot = slots.top;
23375
+ const refreshOpts = computeRefreshOpts.value;
23376
+ const {
23377
+ showLoading
23378
+ } = refreshOpts;
23379
+ const headerpSlot = slots.header;
23351
23380
  const footerSlot = slots.footer;
23381
+ if (!showBody) {
23382
+ return renderEmptyElement($xeTabs);
23383
+ }
23384
+ const cacheItem = activeName ? cacheTabMaps[`${activeName}`] : null;
23385
+ const isLoading = cacheItem ? cacheItem.loading : false;
23352
23386
  const defParams = {
23353
23387
  name: activeName
23354
23388
  };
23355
23389
  return (0,external_commonjs_vue_commonjs2_vue_root_Vue_.h)('div', {
23356
23390
  key: 'tb',
23357
- class: ['vxe-tabs-pane--wrapper', `type--${tabType}`, `pos--${tabPosition}`]
23358
- }, [topSlot ? (0,external_commonjs_vue_commonjs2_vue_root_Vue_.h)('div', {
23359
- class: 'vxe-tabs-pane--top'
23360
- }, callSlot(topSlot, defParams)) : renderEmptyElement($xeTabs), (0,external_commonjs_vue_commonjs2_vue_root_Vue_.h)('div', {
23391
+ class: ['vxe-tabs-pane--wrapper', `type--${tabType}`, `pos--${tabPosition}`, {
23392
+ 'is--content': showBody
23393
+ }]
23394
+ }, [headerpSlot ? (0,external_commonjs_vue_commonjs2_vue_root_Vue_.h)('div', {
23395
+ class: 'vxe-tabs-pane--header'
23396
+ }, callSlot(headerpSlot, defParams)) : renderEmptyElement($xeTabs), (0,external_commonjs_vue_commonjs2_vue_root_Vue_.h)('div', {
23361
23397
  class: ['vxe-tabs-pane--body', `type--${tabType}`, `pos--${tabPosition}`, {
23362
23398
  'is--padding': padding,
23363
23399
  'is--height': height
23364
23400
  }]
23365
23401
  }, renderTabContent(tabList)), footerSlot ? (0,external_commonjs_vue_commonjs2_vue_root_Vue_.h)('div', {
23366
23402
  class: 'vxe-tabs-pane--footer'
23367
- }, callSlot(footerSlot, defParams)) : renderEmptyElement($xeTabs)]);
23403
+ }, callSlot(footerSlot, defParams)) : renderEmptyElement($xeTabs), showLoading && isLoading ? renderEmptyElement($xeTabs) : (0,external_commonjs_vue_commonjs2_vue_root_Vue_.h)(src_loading, {
23404
+ class: 'vxe-tabs--loading',
23405
+ modelValue: isLoading
23406
+ })]);
23368
23407
  };
23369
23408
  const renderVN = () => {
23370
23409
  const {
@@ -23403,7 +23442,7 @@ const ViewItemComponent = defineVxeComponent({
23403
23442
  }, vns);
23404
23443
  };
23405
23444
  (0,external_commonjs_vue_commonjs2_vue_root_Vue_.watch)(() => props.position, () => {
23406
- updateTabStyle();
23445
+ reactData.resizeFlag++;
23407
23446
  });
23408
23447
  (0,external_commonjs_vue_commonjs2_vue_root_Vue_.watch)(() => props.modelValue, val => {
23409
23448
  addInitName(val, null);
@@ -23411,9 +23450,6 @@ const ViewItemComponent = defineVxeComponent({
23411
23450
  });
23412
23451
  (0,external_commonjs_vue_commonjs2_vue_root_Vue_.watch)(() => reactData.activeName, val => {
23413
23452
  scrollToTab(val);
23414
- (0,external_commonjs_vue_commonjs2_vue_root_Vue_.nextTick)(() => {
23415
- reactData.resizeFlag++;
23416
- });
23417
23453
  });
23418
23454
  const optsFlag = (0,external_commonjs_vue_commonjs2_vue_root_Vue_.ref)(0);
23419
23455
  (0,external_commonjs_vue_commonjs2_vue_root_Vue_.watch)(() => props.options ? props.options.length : -1, () => {
@@ -23424,7 +23460,7 @@ const ViewItemComponent = defineVxeComponent({
23424
23460
  });
23425
23461
  (0,external_commonjs_vue_commonjs2_vue_root_Vue_.watch)(optsFlag, () => {
23426
23462
  initDefaultName(props.options);
23427
- updateTabStyle();
23463
+ reactData.resizeFlag++;
23428
23464
  });
23429
23465
  const stFlag = (0,external_commonjs_vue_commonjs2_vue_root_Vue_.ref)(0);
23430
23466
  (0,external_commonjs_vue_commonjs2_vue_root_Vue_.watch)(() => reactData.staticTabs ? reactData.staticTabs.length : -1, () => {
@@ -23435,21 +23471,19 @@ const ViewItemComponent = defineVxeComponent({
23435
23471
  });
23436
23472
  (0,external_commonjs_vue_commonjs2_vue_root_Vue_.watch)(stFlag, () => {
23437
23473
  initDefaultName(reactData.staticTabs);
23438
- updateTabStyle();
23474
+ reactData.resizeFlag++;
23475
+ });
23476
+ (0,external_commonjs_vue_commonjs2_vue_root_Vue_.watch)(computeParentTabsResizeFlag, () => {
23477
+ reactData.resizeFlag++;
23439
23478
  });
23440
- if ($xeParentTabs) {
23441
- (0,external_commonjs_vue_commonjs2_vue_root_Vue_.watch)(() => $xeParentTabs ? $xeParentTabs.reactData.resizeFlag : null, () => {
23442
- reactData.resizeFlag++;
23443
- });
23444
- }
23445
23479
  (0,external_commonjs_vue_commonjs2_vue_root_Vue_.watch)(() => reactData.resizeFlag, () => {
23446
23480
  (0,external_commonjs_vue_commonjs2_vue_root_Vue_.nextTick)(() => {
23447
23481
  updateTabStyle();
23448
23482
  });
23449
23483
  });
23450
23484
  (0,external_commonjs_vue_commonjs2_vue_root_Vue_.onMounted)(() => {
23451
- globalEvents.on($xeTabs, 'resize', updateTabStyle);
23452
23485
  updateTabStyle();
23486
+ globalEvents.on($xeTabs, 'resize', updateTabStyle);
23453
23487
  });
23454
23488
  (0,external_commonjs_vue_commonjs2_vue_root_Vue_.onUnmounted)(() => {
23455
23489
  globalEvents.off($xeTabs, 'resize');
@@ -45263,6 +45297,7 @@ const Modal = VxeModal;
45263
45297
  slots,
45264
45298
  emit
45265
45299
  } = context;
45300
+ const $xeTabs = (0,external_commonjs_vue_commonjs2_vue_root_Vue_.inject)('$xeTabs', null);
45266
45301
  const xID = external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().uniqueId();
45267
45302
  const {
45268
45303
  computeSize
@@ -45281,6 +45316,9 @@ const Modal = VxeModal;
45281
45316
  } = props;
45282
45317
  return `${content || ''}`;
45283
45318
  });
45319
+ const computeTabsResizeFlag = (0,external_commonjs_vue_commonjs2_vue_root_Vue_.computed)(() => {
45320
+ return $xeTabs ? $xeTabs.reactData.resizeFlag : null;
45321
+ });
45284
45322
  const computeMaps = {};
45285
45323
  const $xeNoticeBar = {
45286
45324
  xID,
@@ -45350,7 +45388,9 @@ const Modal = VxeModal;
45350
45388
  class: 'vxe-notice-bar--suffix'
45351
45389
  }, suffixSlot({})) : renderEmptyElement($xeNoticeBar)]);
45352
45390
  };
45353
- $xeNoticeBar.renderVN = renderVN;
45391
+ (0,external_commonjs_vue_commonjs2_vue_root_Vue_.watch)(computeTabsResizeFlag, () => {
45392
+ updateAnimationStyle();
45393
+ });
45354
45394
  (0,external_commonjs_vue_commonjs2_vue_root_Vue_.onMounted)(() => {
45355
45395
  globalEvents.on($xeNoticeBar, 'resize', updateAnimationStyle);
45356
45396
  updateAnimationStyle();
@@ -45358,6 +45398,7 @@ const Modal = VxeModal;
45358
45398
  (0,external_commonjs_vue_commonjs2_vue_root_Vue_.onBeforeUnmount)(() => {
45359
45399
  globalEvents.off($xeNoticeBar, 'resize');
45360
45400
  });
45401
+ $xeNoticeBar.renderVN = renderVN;
45361
45402
  return $xeNoticeBar;
45362
45403
  },
45363
45404
  render() {