@weitutech/by-components 1.2.14 → 1.2.16

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.
@@ -78445,8 +78445,8 @@ var table_component = normalizeComponent(
78445
78445
  )
78446
78446
 
78447
78447
  /* harmony default export */ var table = (table_component.exports);
78448
- ;// ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"185687ec-vue-loader-template"}!./node_modules/babel-loader/lib/index.js??clonedRuleSet-82.use[1]!./node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!./node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/components/form/form.vue?vue&type=template&id=1fc1d18e&scoped=true
78449
- var formvue_type_template_id_1fc1d18e_scoped_true_render = function render() {
78448
+ ;// ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"185687ec-vue-loader-template"}!./node_modules/babel-loader/lib/index.js??clonedRuleSet-82.use[1]!./node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!./node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/components/form/form.vue?vue&type=template&id=04cd7112&scoped=true
78449
+ var formvue_type_template_id_04cd7112_scoped_true_render = function render() {
78450
78450
  var _vm = this,
78451
78451
  _c = _vm._self._c;
78452
78452
  return _c('div', {
@@ -78586,6 +78586,7 @@ var formvue_type_template_id_1fc1d18e_scoped_true_render = function render() {
78586
78586
  "options": item.options || [],
78587
78587
  "loadOptions": item.loadOptions,
78588
78588
  "hiddenAllOptions": item.hiddenAllOptions,
78589
+ "hiddenGroupTitle": item.hiddenGroupTitle || false,
78589
78590
  "multiple": item.multiple,
78590
78591
  "reserveKeyword": item.reserveKeyword !== false,
78591
78592
  "placeholder": item.placeholder,
@@ -78836,7 +78837,7 @@ var formvue_type_template_id_1fc1d18e_scoped_true_render = function render() {
78836
78837
  staticClass: "footer"
78837
78838
  }, [_vm._t("footer")], 2)], 1);
78838
78839
  };
78839
- var formvue_type_template_id_1fc1d18e_scoped_true_staticRenderFns = [];
78840
+ var formvue_type_template_id_04cd7112_scoped_true_staticRenderFns = [];
78840
78841
 
78841
78842
  ;// ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"185687ec-vue-loader-template"}!./node_modules/babel-loader/lib/index.js??clonedRuleSet-82.use[1]!./node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!./node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/components/form/comps/pair-number-input.vue?vue&type=template&id=604235f6
78842
78843
  var pair_number_inputvue_type_template_id_604235f6_render = function render() {
@@ -79328,8 +79329,8 @@ var custom_date_picker_component = normalizeComponent(
79328
79329
  )
79329
79330
 
79330
79331
  /* harmony default export */ var custom_date_picker = (custom_date_picker_component.exports);
79331
- ;// ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"185687ec-vue-loader-template"}!./node_modules/babel-loader/lib/index.js??clonedRuleSet-82.use[1]!./node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!./node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/components/common-selector/ByCommonSelector.vue?vue&type=template&id=781ea1a3
79332
- var ByCommonSelectorvue_type_template_id_781ea1a3_render = function render() {
79332
+ ;// ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"185687ec-vue-loader-template"}!./node_modules/babel-loader/lib/index.js??clonedRuleSet-82.use[1]!./node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!./node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/components/common-selector/ByCommonSelector.vue?vue&type=template&id=2ab5dba2
79333
+ var ByCommonSelectorvue_type_template_id_2ab5dba2_render = function render() {
79333
79334
  var _vm = this,
79334
79335
  _c = _vm._self._c;
79335
79336
  return _c('div', {
@@ -79348,7 +79349,8 @@ var ByCommonSelectorvue_type_template_id_781ea1a3_render = function render() {
79348
79349
  "size": _vm.size,
79349
79350
  "multiple": _vm.multiple,
79350
79351
  "collapse-tags": _vm.multiple,
79351
- "loading": _vm.loading
79352
+ "loading": _vm.loading,
79353
+ "popper-class": _vm.selectPopperClass
79352
79354
  },
79353
79355
  on: {
79354
79356
  "change": _vm.selected
@@ -79360,7 +79362,26 @@ var ByCommonSelectorvue_type_template_id_781ea1a3_render = function render() {
79360
79362
  },
79361
79363
  expression: "selectedValue"
79362
79364
  }
79363
- }, 'el-select', _vm.$attrs, false), _vm._l(_vm.localOptions, function (item) {
79365
+ }, 'el-select', _vm.$attrs, false), [_vm.isSelectGrouped ? _vm._l(_vm.groupedSelectOptions, function (group) {
79366
+ return _c('el-option-group', {
79367
+ key: group.title,
79368
+ class: {
79369
+ 'by_select-group--hidden-title': _vm.hiddenGroupTitle
79370
+ },
79371
+ attrs: {
79372
+ "label": _vm.hiddenGroupTitle ? '' : group.title
79373
+ }
79374
+ }, _vm._l(group.items, function (item) {
79375
+ return _c('el-option', {
79376
+ key: item.id,
79377
+ attrs: {
79378
+ "label": item.name,
79379
+ "value": item.id,
79380
+ "disabled": item.status === 0
79381
+ }
79382
+ });
79383
+ }), 1);
79384
+ }) : _vm._l(_vm.localOptions, function (item) {
79364
79385
  return _c('el-option', {
79365
79386
  key: item.id,
79366
79387
  attrs: {
@@ -79369,7 +79390,7 @@ var ByCommonSelectorvue_type_template_id_781ea1a3_render = function render() {
79369
79390
  "disabled": item.status === 0
79370
79391
  }
79371
79392
  });
79372
- }), 1), _vm.showSelectBatchInput && _vm.multiple ? _c('el-popover', {
79393
+ })], 2), _vm.showSelectBatchInput && _vm.multiple ? _c('el-popover', {
79373
79394
  attrs: {
79374
79395
  "placement": "bottom-start",
79375
79396
  "width": _vm.selectBatchInputPopoverWidth,
@@ -79921,7 +79942,7 @@ var ByCommonSelectorvue_type_template_id_781ea1a3_render = function render() {
79921
79942
  }
79922
79943
  }, [_vm._v(" 加载中... ")]) : _vm._e()], 2);
79923
79944
  };
79924
- var ByCommonSelectorvue_type_template_id_781ea1a3_staticRenderFns = [];
79945
+ var ByCommonSelectorvue_type_template_id_2ab5dba2_staticRenderFns = [];
79925
79946
 
79926
79947
  ;// ./node_modules/pinyin-pro/dist/index.mjs
79927
79948
 
@@ -90215,6 +90236,7 @@ function segment(word, options) {
90215
90236
 
90216
90237
 
90217
90238
 
90239
+
90218
90240
  //拼音库,用于搜索栏生成A~Z字母
90219
90241
 
90220
90242
 
@@ -90242,7 +90264,8 @@ const allOptionsNames = ['全部', '全选', '所有', '全部选项', 'All', 'a
90242
90264
  default: 'select'
90243
90265
  },
90244
90266
  /**
90245
- * 选项数据,格式:[{id: 1, name: '选项1', initial: 'A', status: 1}]
90267
+ * 选项数据,格式:[{id: 1, name: '选项1', initial: 'A', status: 1, groupTitle: '分组名'}]
90268
+ * select 模式下,当每一项都配置了 groupTitle 时,将按 groupTitle 分组展示
90246
90269
  * 如果loadOptions存在,则options无效
90247
90270
  */
90248
90271
  options: {
@@ -90501,6 +90524,15 @@ const allOptionsNames = ['全部', '全选', '所有', '全部选项', 'All', 'a
90501
90524
  selectBatchInputPopoverWidth: {
90502
90525
  type: [String, Number],
90503
90526
  default: '300'
90527
+ },
90528
+ // ********************************** select 类型分组展示相关 **********************************
90529
+ /**
90530
+ * select 类型下是否隐藏分组标题
90531
+ * 注意:仅在所有选项都配置了 groupTitle 时生效;隐藏后组与组之间以分割线分隔
90532
+ */
90533
+ hiddenGroupTitle: {
90534
+ type: Boolean,
90535
+ default: false
90504
90536
  }
90505
90537
  },
90506
90538
  data() {
@@ -90594,6 +90626,46 @@ const allOptionsNames = ['全部', '全选', '所有', '全部选项', 'All', 'a
90594
90626
  // 标准化后的 enhancedAllOptions(将 value/label 转为 id/name)
90595
90627
  normalizedEnhancedAllOptions() {
90596
90628
  return this.normalizeOptions(this.enhancedAllOptions || []);
90629
+ },
90630
+ // select 模式下是否按 groupTitle 分组展示(需每一项都配置非空 groupTitle)
90631
+ isSelectGrouped() {
90632
+ if (this.type !== 'select' || this.localOptions.length === 0) {
90633
+ return false;
90634
+ }
90635
+ return this.localOptions.every(item => item.groupTitle != null && item.groupTitle !== '');
90636
+ },
90637
+ // select 模式下的分组选项(按 groupTitle 首次出现顺序)
90638
+ groupedSelectOptions() {
90639
+ if (!this.isSelectGrouped) {
90640
+ return [];
90641
+ }
90642
+ const groupMap = new Map();
90643
+ const groups = [];
90644
+ this.localOptions.forEach(item => {
90645
+ const title = item.groupTitle;
90646
+ if (!groupMap.has(title)) {
90647
+ const group = {
90648
+ title,
90649
+ items: []
90650
+ };
90651
+ groupMap.set(title, group);
90652
+ groups.push(group);
90653
+ }
90654
+ groupMap.get(title).items.push(item);
90655
+ });
90656
+ return groups;
90657
+ },
90658
+ // select 下拉面板 class(合并外部传入的 popper-class)
90659
+ selectPopperClass() {
90660
+ const classes = [];
90661
+ const attrClass = this.$attrs['popper-class'] || this.$attrs.popperClass;
90662
+ if (attrClass) {
90663
+ classes.push(attrClass);
90664
+ }
90665
+ if (this.isSelectGrouped && this.hiddenGroupTitle) {
90666
+ classes.push('by_common-selector-select--hidden-group-title');
90667
+ }
90668
+ return classes.join(' ');
90597
90669
  }
90598
90670
  },
90599
90671
  watch: {
@@ -91452,8 +91524,8 @@ const allOptionsNames = ['全部', '全选', '所有', '全部选项', 'All', 'a
91452
91524
  ;
91453
91525
  var ByCommonSelector_component = normalizeComponent(
91454
91526
  common_selector_ByCommonSelectorvue_type_script_lang_js,
91455
- ByCommonSelectorvue_type_template_id_781ea1a3_render,
91456
- ByCommonSelectorvue_type_template_id_781ea1a3_staticRenderFns,
91527
+ ByCommonSelectorvue_type_template_id_2ab5dba2_render,
91528
+ ByCommonSelectorvue_type_template_id_2ab5dba2_staticRenderFns,
91457
91529
  false,
91458
91530
  null,
91459
91531
  null,
@@ -92922,10 +92994,10 @@ var ByCommonInput_component = normalizeComponent(
92922
92994
  });
92923
92995
  ;// ./src/components/form/form.vue?vue&type=script&lang=js
92924
92996
  /* harmony default export */ var form_formvue_type_script_lang_js = (formvue_type_script_lang_js);
92925
- ;// ./node_modules/@vue/cli-service/node_modules/mini-css-extract-plugin/dist/loader.js??clonedRuleSet-64.use[0]!./node_modules/@vue/cli-service/node_modules/css-loader/dist/cjs.js??clonedRuleSet-64.use[1]!./node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/loaders/stylePostLoader.js!./node_modules/@vue/cli-service/node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-64.use[2]!./node_modules/sass-loader/dist/cjs.js??clonedRuleSet-64.use[3]!./node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!./node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/components/form/form.vue?vue&type=style&index=0&id=1fc1d18e&prod&lang=scss&scoped=true
92997
+ ;// ./node_modules/@vue/cli-service/node_modules/mini-css-extract-plugin/dist/loader.js??clonedRuleSet-64.use[0]!./node_modules/@vue/cli-service/node_modules/css-loader/dist/cjs.js??clonedRuleSet-64.use[1]!./node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/loaders/stylePostLoader.js!./node_modules/@vue/cli-service/node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-64.use[2]!./node_modules/sass-loader/dist/cjs.js??clonedRuleSet-64.use[3]!./node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!./node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/components/form/form.vue?vue&type=style&index=0&id=04cd7112&prod&lang=scss&scoped=true
92926
92998
  // extracted by mini-css-extract-plugin
92927
92999
 
92928
- ;// ./src/components/form/form.vue?vue&type=style&index=0&id=1fc1d18e&prod&lang=scss&scoped=true
93000
+ ;// ./src/components/form/form.vue?vue&type=style&index=0&id=04cd7112&prod&lang=scss&scoped=true
92929
93001
 
92930
93002
  ;// ./src/components/form/form.vue
92931
93003
 
@@ -92938,11 +93010,11 @@ var ByCommonInput_component = normalizeComponent(
92938
93010
 
92939
93011
  var form_component = normalizeComponent(
92940
93012
  form_formvue_type_script_lang_js,
92941
- formvue_type_template_id_1fc1d18e_scoped_true_render,
92942
- formvue_type_template_id_1fc1d18e_scoped_true_staticRenderFns,
93013
+ formvue_type_template_id_04cd7112_scoped_true_render,
93014
+ formvue_type_template_id_04cd7112_scoped_true_staticRenderFns,
92943
93015
  false,
92944
93016
  null,
92945
- "1fc1d18e",
93017
+ "04cd7112",
92946
93018
  null
92947
93019
 
92948
93020
  )
@@ -101691,8 +101763,8 @@ var ByCardView_component = normalizeComponent(
101691
101763
  )
101692
101764
 
101693
101765
  /* harmony default export */ var ByCardView = (ByCardView_component.exports);
101694
- ;// ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"185687ec-vue-loader-template"}!./node_modules/babel-loader/lib/index.js??clonedRuleSet-82.use[1]!./node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!./node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/components/card-selector/ByCardSelector.vue?vue&type=template&id=681372fb
101695
- var ByCardSelectorvue_type_template_id_681372fb_render = function render() {
101766
+ ;// ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"185687ec-vue-loader-template"}!./node_modules/babel-loader/lib/index.js??clonedRuleSet-82.use[1]!./node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!./node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/components/card-selector/ByCardSelector.vue?vue&type=template&id=4f6402cc
101767
+ var ByCardSelectorvue_type_template_id_4f6402cc_render = function render() {
101696
101768
  var _vm = this,
101697
101769
  _c = _vm._self._c;
101698
101770
  return _c('div', {
@@ -101713,7 +101785,8 @@ var ByCardSelectorvue_type_template_id_681372fb_render = function render() {
101713
101785
  class: {
101714
101786
  'is-selected': _vm.isSelected(item),
101715
101787
  'is-disabled': _vm.isItemDisabled(item),
101716
- 'is-focusable': !_vm.isItemDisabled(item)
101788
+ 'is-focusable': !_vm.isItemDisabled(item),
101789
+ 'by-card-selector__card--title-only': _vm.isTitleOnlyCard(item)
101717
101790
  },
101718
101791
  attrs: {
101719
101792
  "role": "option",
@@ -101737,7 +101810,7 @@ var ByCardSelectorvue_type_template_id_681372fb_render = function render() {
101737
101810
  "index": index,
101738
101811
  "selected": _vm.isSelected(item),
101739
101812
  "disabled": _vm.isItemDisabled(item)
101740
- }) : _c('div', {
101813
+ }) : [_c('div', {
101741
101814
  staticClass: "by-card-selector__card-inner"
101742
101815
  }, [_vm.hasIconArea(item) ? _c('div', {
101743
101816
  staticClass: "by-card-selector__icon-wrap"
@@ -101798,14 +101871,14 @@ var ByCardSelectorvue_type_template_id_681372fb_render = function render() {
101798
101871
  "type": "info",
101799
101872
  "effect": "plain"
101800
101873
  }
101801
- }, [_vm._v(" +" + _vm._s(_vm.tagOverflowCount(item)) + " ")]) : _vm._e()], 2) : _vm._e()]), _vm.showCheckmark ? _c('div', {
101874
+ }, [_vm._v(" +" + _vm._s(_vm.tagOverflowCount(item)) + " ")]) : _vm._e()], 2) : _vm._e()])]), _vm.showCheckmark && _vm.isSelected(item) ? _c('div', {
101802
101875
  staticClass: "by-card-selector__check",
101803
101876
  attrs: {
101804
101877
  "aria-hidden": "true"
101805
101878
  }
101806
- }, [_vm.isSelected(item) ? _c('i', {
101879
+ }, [_c('i', {
101807
101880
  staticClass: "el-icon-check by-card-selector__check-icon"
101808
- }) : _vm._e()]) : _vm._e()])], 2);
101881
+ })]) : _vm._e()]], 2);
101809
101882
  }), _vm.hasGroupTooltip ? _c('div', {
101810
101883
  staticClass: "by-card-selector__suffix",
101811
101884
  attrs: {
@@ -101828,7 +101901,7 @@ var ByCardSelectorvue_type_template_id_681372fb_render = function render() {
101828
101901
  staticClass: "el-icon-question"
101829
101902
  })])])], 1) : _vm._e()], 2);
101830
101903
  };
101831
- var ByCardSelectorvue_type_template_id_681372fb_staticRenderFns = [];
101904
+ var ByCardSelectorvue_type_template_id_4f6402cc_staticRenderFns = [];
101832
101905
 
101833
101906
  ;// ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-82.use[1]!./node_modules/cache-loader/dist/cjs.js??ruleSet[0].use[0]!./node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/components/card-selector/ByCardSelector.vue?vue&type=script&lang=js
101834
101907
 
@@ -101952,7 +102025,7 @@ const VALUE_FALLBACK_FIELD = 'id';
101952
102025
  type: [String, Number],
101953
102026
  default: ''
101954
102027
  },
101955
- /** 是否在卡片右侧展示圆形打钩选中指示,默认展示;如不需要可显式设为 false */
102028
+ /** 是否在选中卡片右上角展示角标打钩,默认展示;未选中时不占位;如不需要可显式设为 false */
101956
102029
  showCheckmark: {
101957
102030
  type: Boolean,
101958
102031
  default: true
@@ -102104,6 +102177,11 @@ const VALUE_FALLBACK_FIELD = 'id';
102104
102177
  hasIconArea(item) {
102105
102178
  return Boolean(this.rawIcon(item)) || this.hasIconSlot;
102106
102179
  },
102180
+ /** 仅标题卡片:无图标、描述、标签、单项 tooltip,角标自动缩小尺寸 */
102181
+ isTitleOnlyCard(item) {
102182
+ if (this.hasCardSlot) return false;
102183
+ return !this.hasIconArea(item) && !this.optionDescription(item) && !this.rawTags(item).length && !this.optionTooltip(item);
102184
+ },
102107
102185
  iconFallbackLetter(item) {
102108
102186
  const t = this.optionLabel(item);
102109
102187
  return t ? t.trim().charAt(0).toUpperCase() : '?';
@@ -102235,8 +102313,8 @@ const VALUE_FALLBACK_FIELD = 'id';
102235
102313
  ;
102236
102314
  var ByCardSelector_component = normalizeComponent(
102237
102315
  card_selector_ByCardSelectorvue_type_script_lang_js,
102238
- ByCardSelectorvue_type_template_id_681372fb_render,
102239
- ByCardSelectorvue_type_template_id_681372fb_staticRenderFns,
102316
+ ByCardSelectorvue_type_template_id_4f6402cc_render,
102317
+ ByCardSelectorvue_type_template_id_4f6402cc_staticRenderFns,
102240
102318
  false,
102241
102319
  null,
102242
102320
  null,
@@ -102841,6 +102919,22 @@ var ByTabsvue_type_template_id_8c36e07e_scoped_true_staticRenderFns = [];
102841
102919
 
102842
102920
 
102843
102921
 
102922
+ /**
102923
+ * 为 by-tab-pane 的 variant="subtle" 动态生成 tab 样式。
102924
+ *
102925
+ * 背景:
102926
+ * - el-tabs 的 tab 项由 Element UI 内部渲染,无法直接给单个 .el-tabs__item 挂自定义 class
102927
+ * - 若用 JS 改 class,Vue / el-tabs 重渲染时会覆盖,导致 subtle tab 闪烁
102928
+ *
102929
+ * 方案:
102930
+ * - ByTabPane 向 ByTabs 注册 { name, variant }
102931
+ * - 本模块按 name 生成 CSS,选择器命中 el-tabs 自带的 #tab-{name}
102932
+ * - ByTabs 将结果写入 <style data-by-tabs-variant> 注入 document.head
102933
+ *
102934
+ * 样式分两套:默认盒状 tab、type="line" 下划线 tab(buildDefaultSubtleStyles / buildLineSubtleStyles)
102935
+ */
102936
+
102937
+ /** 转义 tab name,避免特殊字符破坏 CSS 选择器 */
102844
102938
  function escapeTabName(name) {
102845
102939
  const value = String(name);
102846
102940
  if (typeof CSS !== 'undefined' && typeof CSS.escape === 'function') {
@@ -102848,10 +102942,19 @@ function escapeTabName(name) {
102848
102942
  }
102849
102943
  return value.replace(/[^a-zA-Z0-9_-]/g, '\\$&');
102850
102944
  }
102945
+
102946
+ /**
102947
+ * 拼接 subtle tab 的 CSS 选择器
102948
+ * @param {string[]} names - tab 的 name 列表
102949
+ * @param {string} suffix - 伪类/状态后缀,如 ':hover'、'.is-active'
102950
+ * @param {boolean} line - 是否为 type="line" 模式
102951
+ */
102851
102952
  function buildSelector(names, suffix = '', line = false) {
102852
102953
  const root = line ? '.by-tabs.by-tabs--line' : '.by-tabs';
102853
102954
  return names.map(name => `${root} .el-tabs__item#tab-${escapeTabName(name)}${suffix}`).join(',\n');
102854
102955
  }
102956
+
102957
+ /** 默认模式下的 subtle tab:更小、置灰、圆角胶囊(如定向监管的项目 tab) */
102855
102958
  function buildDefaultSubtleStyles(subtleNames) {
102856
102959
  const base = buildSelector(subtleNames);
102857
102960
  const hover = buildSelector(subtleNames, ':hover');
@@ -102888,6 +102991,8 @@ ${active} {
102888
102991
  }
102889
102992
  `;
102890
102993
  }
102994
+
102995
+ /** line 模式下的 subtle tab:透明底 + 下划线选中,尺寸与 line 主 tab 协调 */
102891
102996
  function buildLineSubtleStyles(subtleNames) {
102892
102997
  const base = buildSelector(subtleNames, '', true);
102893
102998
  const hover = buildSelector(subtleNames, ':hover', true);
@@ -102926,6 +103031,13 @@ ${activeAfter} {
102926
103031
  }
102927
103032
  `;
102928
103033
  }
103034
+
103035
+ /**
103036
+ * 根据已注册的 pane variant 生成 subtle 样式字符串
103037
+ * @param {Record<string, string>} paneVariants - { [tabName]: 'default' | 'subtle' }
103038
+ * @param {{ line?: boolean }} options - line 为 true 时使用下划线风格
103039
+ * @returns {string} 可注入 <style> 的 CSS,无 subtle tab 时返回空字符串
103040
+ */
102929
103041
  function buildVariantTabStyles(paneVariants = {}, options = {}) {
102930
103042
  const subtleNames = Object.entries(paneVariants).filter(([, variant]) => variant === 'subtle').map(([name]) => name);
102931
103043
  if (!subtleNames.length) return '';