bkui-vue 0.0.1-beta.176 → 0.0.1-beta.179

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.
package/dist/index.esm.js CHANGED
@@ -11130,6 +11130,9 @@ const ClickOutside = {
11130
11130
  nodeList$1.delete(el);
11131
11131
  }
11132
11132
  };
11133
+ ClickOutside.install = (app) => {
11134
+ app.directive("bkTooltips", ClickOutside);
11135
+ };
11133
11136
  const nodeList = /* @__PURE__ */ new Map();
11134
11137
  const tooltips = {
11135
11138
  beforeMount(el, binding) {
@@ -11315,6 +11318,16 @@ const createInstance = (el, binding) => {
11315
11318
  handleMouseLeave
11316
11319
  }
11317
11320
  });
11321
+ const destroyInstance = (element) => {
11322
+ var _a, _b;
11323
+ handleMouseLeave();
11324
+ (_a = element != null ? element : el) == null ? void 0 : _a.removeEventListener("mouseenter", handleMouseEnter);
11325
+ (_b = element != null ? element : el) == null ? void 0 : _b.removeEventListener("mouseleave", handleMouseLeave);
11326
+ };
11327
+ return {
11328
+ destroyInstance,
11329
+ instance
11330
+ };
11318
11331
  };
11319
11332
  const ellipsis = {
11320
11333
  mounted(el, binding) {
@@ -11405,7 +11418,8 @@ const PopoverProps = __spreadValues({
11405
11418
  autoPlacement: PropTypes.bool.def(false),
11406
11419
  autoVisibility: PropTypes.bool.def(true),
11407
11420
  disableOutsideClick: PropTypes.bool.def(false),
11408
- disableTransform: PropTypes.bool.def(false)
11421
+ disableTransform: PropTypes.bool.def(false),
11422
+ reference: PropTypes.object.def(null)
11409
11423
  }, EventProps$1);
11410
11424
  var Reference = defineComponent({
11411
11425
  name: "PopReference",
@@ -13181,11 +13195,15 @@ var Component$p = defineComponent({
13181
13195
  theme,
13182
13196
  disableTeleport
13183
13197
  } = props2;
13184
- const refReference = ref();
13198
+ const {
13199
+ reference: reference2
13200
+ } = toRefs(props2);
13201
+ const refDefaultReference = ref();
13185
13202
  const refContent = ref();
13186
13203
  const refArrow = ref();
13187
13204
  const refRoot = ref();
13188
13205
  const isFullscreen = ref(false);
13206
+ const refReference = computed(() => reference2.value || refDefaultReference.value);
13189
13207
  const {
13190
13208
  showPopover,
13191
13209
  hidePopover,
@@ -13229,7 +13247,7 @@ var Component$p = defineComponent({
13229
13247
  return {
13230
13248
  boundary,
13231
13249
  arrow: props2.arrow,
13232
- refReference,
13250
+ refDefaultReference,
13233
13251
  refContent,
13234
13252
  refArrow,
13235
13253
  content,
@@ -13246,7 +13264,7 @@ var Component$p = defineComponent({
13246
13264
  "ref": "refRoot"
13247
13265
  }, {
13248
13266
  default: () => [createVNode(Reference, {
13249
- "ref": "refReference"
13267
+ "ref": "refDefaultReference"
13250
13268
  }, {
13251
13269
  default: () => {
13252
13270
  var _a, _b, _c;
@@ -14846,8 +14864,10 @@ var SelectTagInput = defineComponent({
14846
14864
  watch(modelValue, () => {
14847
14865
  value.value = modelValue.value;
14848
14866
  });
14849
- watch(selected, () => {
14867
+ watch([selected, collapseTags], () => {
14850
14868
  calcOverflow();
14869
+ }, {
14870
+ flush: "post"
14851
14871
  });
14852
14872
  const handleRemoveTag = (val) => {
14853
14873
  emit("remove", val);
@@ -14923,7 +14943,7 @@ var SelectTagInput = defineComponent({
14923
14943
  "closable": true,
14924
14944
  "theme": this.tagTheme,
14925
14945
  "style": {
14926
- display: this.overflowTagIndex && index2 >= this.overflowTagIndex ? "none" : ""
14946
+ display: this.collapseTags && this.overflowTagIndex && index2 >= this.overflowTagIndex ? "none" : ""
14927
14947
  },
14928
14948
  "onClose": () => this.handleRemoveTag(item.value)
14929
14949
  }, {
@@ -14968,6 +14988,7 @@ var Component$i = defineComponent({
14968
14988
  tagTheme: PropTypes.theme(["success", "info", "warning", "danger"]).def(""),
14969
14989
  behavior: PropTypes.oneOf(["normal", "simplicity"]).def("normal"),
14970
14990
  collapseTags: PropTypes.bool.def(false),
14991
+ autoHeight: PropTypes.bool.def(true),
14971
14992
  noDataText: PropTypes.string.def("\u65E0\u6570\u636E"),
14972
14993
  noMatchText: PropTypes.string.def("\u65E0\u5339\u914D\u6570\u636E"),
14973
14994
  loadingText: PropTypes.string.def("\u52A0\u8F7D\u4E2D..."),
@@ -15011,7 +15032,10 @@ var Component$i = defineComponent({
15011
15032
  showSelectAll,
15012
15033
  scrollHeight,
15013
15034
  list,
15014
- displayKey
15035
+ displayKey,
15036
+ collapseTags,
15037
+ autoHeight,
15038
+ popoverOptions
15015
15039
  } = toRefs(props2);
15016
15040
  const formItem = useFormItem();
15017
15041
  const inputRef = ref();
@@ -15020,6 +15044,7 @@ var Component$i = defineComponent({
15020
15044
  const searchRef = ref();
15021
15045
  const selectTagInputRef = ref();
15022
15046
  const virtualRenderRef = ref();
15047
+ const popoverRef = ref();
15023
15048
  const optionsMap = ref(/* @__PURE__ */ new Map());
15024
15049
  const options = computed(() => [...optionsMap.value.values()]);
15025
15050
  const groupsMap = ref(/* @__PURE__ */ new Map());
@@ -15038,6 +15063,10 @@ var Component$i = defineComponent({
15038
15063
  }, {
15039
15064
  deep: true
15040
15065
  });
15066
+ watch(selected, () => {
15067
+ var _a;
15068
+ (_a = popoverRef.value) == null ? void 0 : _a.updatePopover(null, popoverConfig.value);
15069
+ });
15041
15070
  const filterList = computed(() => isRemoteSearch.value ? list.value : list.value.filter((item) => {
15042
15071
  var _a;
15043
15072
  return (_a = toLowerCase(String(item[displayKey.value]))) == null ? void 0 : _a.includes(searchKey.value);
@@ -15075,6 +15104,17 @@ var Component$i = defineComponent({
15075
15104
  }
15076
15105
  return "";
15077
15106
  });
15107
+ const isCollapseTags = computed(() => autoHeight.value ? collapseTags.value && !isPopoverShow.value : collapseTags.value);
15108
+ const popoverConfig = computed(() => lodash.exports.merge({
15109
+ theme: "light bk-select-popover",
15110
+ trigger: "manual",
15111
+ width: popperWidth.value,
15112
+ arrow: false,
15113
+ placement: "bottom-start",
15114
+ isShow: isPopoverShow.value,
15115
+ reference: selectTagInputRef.value,
15116
+ offset: 6
15117
+ }, popoverOptions.value));
15078
15118
  const {
15079
15119
  register,
15080
15120
  unregister
@@ -15377,6 +15417,7 @@ var Component$i = defineComponent({
15377
15417
  searchRef,
15378
15418
  selectTagInputRef,
15379
15419
  virtualRenderRef,
15420
+ popoverRef,
15380
15421
  searchLoading,
15381
15422
  isOptionsEmpty,
15382
15423
  isSearchEmpty,
@@ -15388,6 +15429,8 @@ var Component$i = defineComponent({
15388
15429
  isShowSelectAll,
15389
15430
  virtualHeight,
15390
15431
  filterList,
15432
+ isCollapseTags,
15433
+ popoverConfig,
15391
15434
  setHover,
15392
15435
  cancelHover,
15393
15436
  handleFocus,
@@ -15417,15 +15460,6 @@ var Component$i = defineComponent({
15417
15460
  [this.size]: true,
15418
15461
  [this.behavior]: true
15419
15462
  });
15420
- const basePopoverOptions = {
15421
- theme: "light bk-select-popover",
15422
- trigger: "manual",
15423
- width: this.popperWidth,
15424
- arrow: false,
15425
- placement: "bottom-start",
15426
- isShow: this.isPopoverShow
15427
- };
15428
- const popoverOptions = lodash.exports.merge(basePopoverOptions, this.popoverOptions);
15429
15463
  const suffixIcon = () => {
15430
15464
  if (this.loading) {
15431
15465
  return createVNode(BkLoading, {
@@ -15459,7 +15493,7 @@ var Component$i = defineComponent({
15459
15493
  "filterable": this.isInput,
15460
15494
  "disabled": this.isDisabled,
15461
15495
  "onRemove": this.handleDeleteTag,
15462
- "collapseTags": this.collapseTags,
15496
+ "collapseTags": this.isCollapseTags,
15463
15497
  "onEnter": this.handleInputEnter
15464
15498
  }, {
15465
15499
  prefix: () => {
@@ -15494,6 +15528,9 @@ var Component$i = defineComponent({
15494
15528
  };
15495
15529
  const renderSelectTrigger = () => createVNode("div", {
15496
15530
  "class": "bk-select-trigger",
15531
+ "style": {
15532
+ height: this.autoHeight && this.collapseTags ? "32px" : ""
15533
+ },
15497
15534
  "ref": "triggerRef",
15498
15535
  "onClick": this.handleTogglePopover,
15499
15536
  "onMouseenter": this.setHover,
@@ -15567,8 +15604,9 @@ var Component$i = defineComponent({
15567
15604
  };
15568
15605
  return createVNode("div", {
15569
15606
  "class": selectClass
15570
- }, [createVNode(BkPopover2, mergeProps(popoverOptions, {
15571
- "onClickoutside": this.handleClickOutside
15607
+ }, [createVNode(BkPopover2, mergeProps(this.popoverConfig, {
15608
+ "onClickoutside": this.handleClickOutside,
15609
+ "ref": "popoverRef"
15572
15610
  }), {
15573
15611
  default: () => renderSelectTrigger(),
15574
15612
  content: () => renderSelectContent()
@@ -16015,8 +16053,9 @@ const IColumnType = {
16015
16053
  width: PropTypes.oneOfType([PropTypes.number.def(void 0), PropTypes.string.def("auto")]),
16016
16054
  minWidth: PropTypes.oneOfType([PropTypes.number.def(void 0), PropTypes.string.def("auto")]).def(),
16017
16055
  showOverflowTooltip: PropTypes.oneOfType([PropTypes.bool, PropTypes.shape({
16018
- content: PropTypes.string,
16019
- disabled: PropTypes.bool
16056
+ content: PropTypes.string.def(""),
16057
+ disabled: PropTypes.bool.def(false),
16058
+ watchCellResize: PropTypes.bool.def(true)
16020
16059
  })]).def(false),
16021
16060
  type: PropTypes.commonType(["selection", "index", "expand", "none"], "columnType").def("none"),
16022
16061
  resizable: PropTypes.bool.def(true),
@@ -16887,6 +16926,8 @@ var TableCell = defineComponent({
16887
16926
  const {
16888
16927
  showOverflowTooltip = false
16889
16928
  } = props2.column || {};
16929
+ let observerIns = null;
16930
+ let bkEllipsisIns = null;
16890
16931
  const resolveTooltipOption = () => {
16891
16932
  let disabled = true;
16892
16933
  let content = refRoot.value.innerText;
@@ -16905,17 +16946,42 @@ var TableCell = defineComponent({
16905
16946
  content
16906
16947
  };
16907
16948
  };
16949
+ const resolveOverflowTooltip = () => {
16950
+ if (!refRoot.value) {
16951
+ return;
16952
+ }
16953
+ const textWidth = getElementTextWidth(refRoot.value);
16954
+ const cellWidth = refRoot.value.clientWidth;
16955
+ isTipsEnabled.value = textWidth > cellWidth;
16956
+ if (isTipsEnabled.value) {
16957
+ const bindings = ref(resolveTooltipOption());
16958
+ if (bkEllipsisIns === null) {
16959
+ bkEllipsisIns = createInstance(refRoot.value, bindings);
16960
+ }
16961
+ } else {
16962
+ bkEllipsisIns == null ? void 0 : bkEllipsisIns.destroyInstance(refRoot.value);
16963
+ bkEllipsisIns = null;
16964
+ }
16965
+ };
16908
16966
  onMounted(() => {
16909
- if (props2.column.showOverflowTooltip) {
16910
- const textWidth = getElementTextWidth(refRoot.value);
16911
- const cellWidth = refRoot.value.clientWidth;
16912
- isTipsEnabled.value = textWidth > cellWidth;
16913
- if (isTipsEnabled.value) {
16914
- const bindings = ref(resolveTooltipOption());
16915
- createInstance(refRoot.value, bindings);
16967
+ var _a;
16968
+ const {
16969
+ disabled
16970
+ } = resolveTooltipOption();
16971
+ if (!disabled) {
16972
+ resolveOverflowTooltip();
16973
+ if (((_a = props2.column.showOverflowTooltip) == null ? void 0 : _a.watchCellResize) !== false) {
16974
+ observerIns = observerResize(refRoot.value, () => {
16975
+ resolveOverflowTooltip();
16976
+ }, 60, true);
16977
+ observerIns.start();
16916
16978
  }
16917
16979
  }
16918
16980
  });
16981
+ onBeforeUnmount(() => {
16982
+ observerIns.stop();
16983
+ bkEllipsisIns == null ? void 0 : bkEllipsisIns.destroyInstance(refRoot.value);
16984
+ });
16919
16985
  return () => {
16920
16986
  var _a;
16921
16987
  return createVNode("div", {