vue-devui 1.6.14 → 1.6.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.
Files changed (75) hide show
  1. package/auto-complete/index.es.js +60 -42
  2. package/auto-complete/index.umd.js +13 -13
  3. package/breadcrumb/index.es.js +57 -39
  4. package/breadcrumb/index.umd.js +1 -1
  5. package/category-search/index.es.js +93 -44
  6. package/category-search/index.umd.js +21 -21
  7. package/checkbox/index.es.js +60 -42
  8. package/checkbox/index.umd.js +18 -18
  9. package/code-review/index.es.js +60 -42
  10. package/code-review/index.umd.js +20 -20
  11. package/data-grid/index.es.js +60 -42
  12. package/data-grid/index.umd.js +15 -15
  13. package/date-picker-pro/index.es.js +60 -42
  14. package/date-picker-pro/index.umd.js +13 -13
  15. package/dropdown/index.es.js +57 -39
  16. package/dropdown/index.umd.js +1 -1
  17. package/editable-select/index.es.js +66 -43
  18. package/editable-select/index.umd.js +10 -10
  19. package/editor-md/index.es.js +69 -44
  20. package/editor-md/index.umd.js +28 -28
  21. package/form/index.es.js +60 -42
  22. package/form/index.umd.js +17 -17
  23. package/input/index.es.js +59 -41
  24. package/input/index.umd.js +20 -20
  25. package/input-number/index.es.js +60 -42
  26. package/input-number/index.umd.js +19 -19
  27. package/mention/index.es.js +60 -42
  28. package/mention/index.umd.js +17 -17
  29. package/message/index.es.js +13 -13
  30. package/message/index.umd.js +1 -1
  31. package/modal/index.es.js +57 -39
  32. package/modal/index.umd.js +2 -2
  33. package/overlay/index.es.js +58 -40
  34. package/overlay/index.umd.js +1 -1
  35. package/package.json +3 -2
  36. package/pagination/index.es.js +77 -59
  37. package/pagination/index.umd.js +18 -18
  38. package/pagination/style.css +1 -1
  39. package/popover/index.es.js +60 -42
  40. package/popover/index.umd.js +15 -15
  41. package/radio/index.es.js +60 -42
  42. package/radio/index.umd.js +16 -16
  43. package/search/index.es.js +60 -42
  44. package/search/index.umd.js +16 -16
  45. package/select/index.es.js +77 -59
  46. package/select/index.umd.js +20 -20
  47. package/select/style.css +1 -1
  48. package/splitter/index.es.js +60 -42
  49. package/splitter/index.umd.js +14 -14
  50. package/style.css +1 -1
  51. package/switch/index.es.js +60 -42
  52. package/switch/index.umd.js +17 -17
  53. package/table/index.es.js +59 -41
  54. package/table/index.umd.js +16 -16
  55. package/textarea/index.es.js +60 -42
  56. package/textarea/index.umd.js +19 -19
  57. package/time-picker/index.es.js +59 -41
  58. package/time-picker/index.umd.js +14 -14
  59. package/time-select/index.es.js +77 -59
  60. package/time-select/index.umd.js +18 -18
  61. package/time-select/style.css +1 -1
  62. package/tooltip/index.es.js +60 -42
  63. package/tooltip/index.umd.js +15 -15
  64. package/tree/index.es.js +59 -41
  65. package/tree/index.umd.js +14 -14
  66. package/types/category-search/src/category-search-types.d.ts +5 -0
  67. package/types/editable-select/src/editable-select-types.d.ts +3 -0
  68. package/types/overlay/src/flexible-overlay/flexible-overlay-types.d.ts +5 -6
  69. package/types/overlay/src/flexible-overlay/index.d.ts +9 -0
  70. package/types/overlay/src/flexible-overlay/use-flexible-overlay.d.ts +11 -2
  71. package/types/select/src/composables/use-select-content.d.ts +21 -2
  72. package/types/select/src/select-types.d.ts +7 -44
  73. package/types/select/src/use-select.d.ts +26 -2
  74. package/vue-devui.es.js +138 -77
  75. package/vue-devui.umd.js +74 -74
@@ -29,9 +29,9 @@ var __objRest = (source, exclude) => {
29
29
  }
30
30
  return target;
31
31
  };
32
- import { defineComponent, watch, provide, reactive, toRefs, createVNode, onUnmounted, Transition, mergeProps, ref, unref, nextTick, withModifiers, Comment, Text, h, Fragment, inject, withDirectives, cloneVNode, computed, onMounted, Teleport, createTextVNode, onBeforeUnmount, resolveDynamicComponent, getCurrentInstance, shallowRef, resolveDirective } from "vue";
32
+ import { defineComponent, watch, provide, reactive, toRefs, createVNode, onUnmounted, Transition, mergeProps, ref, computed, unref, nextTick, withModifiers, Comment, Text, h, Fragment, inject, withDirectives, cloneVNode, onMounted, Teleport, createTextVNode, onBeforeUnmount, resolveDynamicComponent, getCurrentInstance, shallowRef, resolveDirective } from "vue";
33
33
  import "clipboard";
34
- import { offset, autoPlacement, arrow, shift, computePosition } from "@floating-ui/dom";
34
+ import { offset, flip, arrow, computePosition } from "@floating-ui/dom";
35
35
  const searchProps = {
36
36
  size: {
37
37
  type: String
@@ -4045,7 +4045,7 @@ var lodash = { exports: {} };
4045
4045
  var delay = baseRest(function(func, wait, args) {
4046
4046
  return baseDelay(func, toNumber(wait) || 0, args);
4047
4047
  });
4048
- function flip(func) {
4048
+ function flip2(func) {
4049
4049
  return createWrap(func, WRAP_FLIP_FLAG);
4050
4050
  }
4051
4051
  function memoize(func, resolver) {
@@ -5169,7 +5169,7 @@ var lodash = { exports: {} };
5169
5169
  lodash2.flatten = flatten;
5170
5170
  lodash2.flattenDeep = flattenDeep;
5171
5171
  lodash2.flattenDepth = flattenDepth;
5172
- lodash2.flip = flip;
5172
+ lodash2.flip = flip2;
5173
5173
  lodash2.flow = flow;
5174
5174
  lodash2.flowRight = flowRight;
5175
5175
  lodash2.fromPairs = fromPairs;
@@ -5875,18 +5875,12 @@ const flexibleOverlayProps = {
5875
5875
  clickEventBubble: {
5876
5876
  type: Boolean,
5877
5877
  default: false
5878
+ },
5879
+ fitOriginWidth: {
5880
+ type: Boolean,
5881
+ default: false
5878
5882
  }
5879
5883
  };
5880
- function getScrollParent(element) {
5881
- const overflowRegex = /(auto|scroll|hidden)/;
5882
- for (let parent = element; parent = parent.parentElement; parent.parentElement !== document.body) {
5883
- const style = window.getComputedStyle(parent);
5884
- if (overflowRegex.test(style.overflow + style.overflowX + style.overflowY)) {
5885
- return parent;
5886
- }
5887
- }
5888
- return window;
5889
- }
5890
5884
  function adjustArrowPosition(isArrowCenter, point, placement, originRect) {
5891
5885
  let { x, y } = point;
5892
5886
  if (!isArrowCenter) {
@@ -5907,9 +5901,18 @@ function adjustArrowPosition(isArrowCenter, point, placement, originRect) {
5907
5901
  return { x, y };
5908
5902
  }
5909
5903
  function useOverlay(props, emit) {
5904
+ const { fitOriginWidth, position, showArrow } = toRefs(props);
5910
5905
  const overlayRef = ref();
5911
5906
  const arrowRef = ref();
5912
- let originParent = null;
5907
+ const overlayWidth = ref(0);
5908
+ let originObserver;
5909
+ const styles = computed(() => {
5910
+ if (fitOriginWidth.value) {
5911
+ return { width: overlayWidth.value + "px" };
5912
+ } else {
5913
+ return {};
5914
+ }
5915
+ });
5913
5916
  const updateArrowPosition = (arrowEl, placement, point, overlayEl) => {
5914
5917
  const { x, y } = adjustArrowPosition(props.isArrowCenter, point, placement, overlayEl.getBoundingClientRect());
5915
5918
  const staticSide = {
@@ -5930,54 +5933,67 @@ function useOverlay(props, emit) {
5930
5933
  const hostEl = props.origin;
5931
5934
  const overlayEl = unref(overlayRef.value);
5932
5935
  const arrowEl = unref(arrowRef.value);
5933
- const middleware = [
5934
- offset(props.offset),
5935
- autoPlacement({
5936
- alignment: props.align,
5937
- allowedPlacements: props.position
5938
- })
5939
- ];
5940
- props.showArrow && middleware.push(arrow({ element: arrowEl }));
5941
- props.shiftOffset !== void 0 && middleware.push(shift());
5942
- if (!overlayEl) {
5943
- return;
5936
+ const [mainPosition, ...fallbackPosition] = position.value;
5937
+ const middleware = [offset(props.offset)];
5938
+ middleware.push(fallbackPosition.length ? flip({ fallbackPlacements: fallbackPosition }) : flip());
5939
+ if (showArrow.value) {
5940
+ middleware.push(arrow({ element: arrowRef.value }));
5944
5941
  }
5945
5942
  const { x, y, placement, middlewareData } = await computePosition(hostEl, overlayEl, {
5946
5943
  strategy: "fixed",
5944
+ placement: mainPosition,
5947
5945
  middleware
5948
5946
  });
5949
5947
  let applyX = x;
5950
5948
  let applyY = y;
5951
- if (props.shiftOffset !== void 0) {
5952
- const { x: shiftX, y: shiftY } = middlewareData.shift;
5953
- shiftX < 0 && (applyX -= props.shiftOffset);
5954
- shiftX > 0 && (applyX += props.shiftOffset);
5955
- shiftY < 0 && (applyY -= props.shiftOffset);
5956
- shiftY > 0 && (applyY += props.shiftOffset);
5957
- }
5958
5949
  emit("positionChange", placement);
5959
5950
  Object.assign(overlayEl.style, { top: `${applyY}px`, left: `${applyX}px` });
5960
5951
  props.showArrow && updateArrowPosition(arrowEl, placement, middlewareData.arrow, overlayEl);
5961
5952
  };
5953
+ const scrollCallback = (e) => {
5954
+ var _a, _b;
5955
+ const scrollElement = e.target;
5956
+ if (scrollElement == null ? void 0 : scrollElement.contains((_b = (_a = props.origin) == null ? void 0 : _a.$el) != null ? _b : props.origin)) {
5957
+ updatePosition();
5958
+ }
5959
+ };
5960
+ const updateWidth = (originEl) => {
5961
+ overlayWidth.value = originEl.getBoundingClientRect().width;
5962
+ updatePosition();
5963
+ };
5964
+ const observeOrigin = () => {
5965
+ var _a, _b;
5966
+ if (fitOriginWidth.value && typeof window !== "undefined") {
5967
+ const originEl = (_b = (_a = props.origin) == null ? void 0 : _a.$el) != null ? _b : props.origin;
5968
+ if (originEl) {
5969
+ originObserver = new window.ResizeObserver(() => updateWidth(originEl));
5970
+ originObserver.observe(originEl);
5971
+ }
5972
+ }
5973
+ };
5974
+ const unobserveOrigin = () => {
5975
+ var _a, _b;
5976
+ const originEl = (_b = (_a = props.origin) == null ? void 0 : _a.$el) != null ? _b : props.origin;
5977
+ originEl && (originObserver == null ? void 0 : originObserver.unobserve(originEl));
5978
+ };
5962
5979
  watch(() => props.modelValue, () => {
5963
5980
  if (props.modelValue && props.origin) {
5964
- originParent = getScrollParent(props.origin);
5965
5981
  nextTick(updatePosition);
5966
- originParent == null ? void 0 : originParent.addEventListener("scroll", updatePosition);
5967
- originParent !== window && window.addEventListener("scroll", updatePosition);
5982
+ window.addEventListener("scroll", scrollCallback, true);
5968
5983
  window.addEventListener("resize", updatePosition);
5984
+ observeOrigin();
5969
5985
  } else {
5970
- originParent == null ? void 0 : originParent.removeEventListener("scroll", updatePosition);
5971
- originParent !== window && window.removeEventListener("scroll", updatePosition);
5986
+ window.removeEventListener("scroll", scrollCallback, true);
5972
5987
  window.removeEventListener("resize", updatePosition);
5988
+ unobserveOrigin();
5973
5989
  }
5974
5990
  });
5975
5991
  onUnmounted(() => {
5976
- originParent == null ? void 0 : originParent.removeEventListener("scroll", updatePosition);
5977
- originParent !== window && window.removeEventListener("scroll", updatePosition);
5992
+ window.removeEventListener("scroll", scrollCallback, true);
5978
5993
  window.removeEventListener("resize", updatePosition);
5994
+ unobserveOrigin();
5979
5995
  });
5980
- return { arrowRef, overlayRef, updatePosition };
5996
+ return { arrowRef, overlayRef, styles, updatePosition };
5981
5997
  }
5982
5998
  var flexibleOverlay = "";
5983
5999
  const FlexibleOverlay = defineComponent({
@@ -5998,6 +6014,7 @@ const FlexibleOverlay = defineComponent({
5998
6014
  const {
5999
6015
  arrowRef,
6000
6016
  overlayRef,
6017
+ styles,
6001
6018
  updatePosition
6002
6019
  } = useOverlay(props, emit);
6003
6020
  expose({
@@ -6007,7 +6024,8 @@ const FlexibleOverlay = defineComponent({
6007
6024
  var _a;
6008
6025
  return props.modelValue && createVNode("div", mergeProps({
6009
6026
  "ref": overlayRef,
6010
- "class": ns2.b()
6027
+ "class": ns2.b(),
6028
+ "style": styles.value
6011
6029
  }, attrs, {
6012
6030
  "onClick": withModifiers(() => ({}), [clickEventBubble.value ? "" : "stop"]),
6013
6031
  "onPointerup": withModifiers(() => ({}), ["stop"])