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, renderSlot, useSlots } 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, renderSlot, useSlots } 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 switchProps = {
36
36
  modelValue: {
37
37
  type: [String, Number, Boolean],
@@ -4022,7 +4022,7 @@ var lodash = { exports: {} };
4022
4022
  var delay = baseRest(function(func, wait, args) {
4023
4023
  return baseDelay(func, toNumber(wait) || 0, args);
4024
4024
  });
4025
- function flip(func) {
4025
+ function flip2(func) {
4026
4026
  return createWrap(func, WRAP_FLIP_FLAG);
4027
4027
  }
4028
4028
  function memoize(func, resolver) {
@@ -5146,7 +5146,7 @@ var lodash = { exports: {} };
5146
5146
  lodash2.flatten = flatten;
5147
5147
  lodash2.flattenDeep = flattenDeep;
5148
5148
  lodash2.flattenDepth = flattenDepth;
5149
- lodash2.flip = flip;
5149
+ lodash2.flip = flip2;
5150
5150
  lodash2.flow = flow;
5151
5151
  lodash2.flowRight = flowRight;
5152
5152
  lodash2.fromPairs = fromPairs;
@@ -5852,18 +5852,12 @@ const flexibleOverlayProps = {
5852
5852
  clickEventBubble: {
5853
5853
  type: Boolean,
5854
5854
  default: false
5855
+ },
5856
+ fitOriginWidth: {
5857
+ type: Boolean,
5858
+ default: false
5855
5859
  }
5856
5860
  };
5857
- function getScrollParent(element) {
5858
- const overflowRegex = /(auto|scroll|hidden)/;
5859
- for (let parent = element; parent = parent.parentElement; parent.parentElement !== document.body) {
5860
- const style = window.getComputedStyle(parent);
5861
- if (overflowRegex.test(style.overflow + style.overflowX + style.overflowY)) {
5862
- return parent;
5863
- }
5864
- }
5865
- return window;
5866
- }
5867
5861
  function adjustArrowPosition(isArrowCenter, point, placement, originRect) {
5868
5862
  let { x, y } = point;
5869
5863
  if (!isArrowCenter) {
@@ -5884,9 +5878,18 @@ function adjustArrowPosition(isArrowCenter, point, placement, originRect) {
5884
5878
  return { x, y };
5885
5879
  }
5886
5880
  function useOverlay(props, emit) {
5881
+ const { fitOriginWidth, position, showArrow } = toRefs(props);
5887
5882
  const overlayRef = ref();
5888
5883
  const arrowRef = ref();
5889
- let originParent = null;
5884
+ const overlayWidth = ref(0);
5885
+ let originObserver;
5886
+ const styles = computed(() => {
5887
+ if (fitOriginWidth.value) {
5888
+ return { width: overlayWidth.value + "px" };
5889
+ } else {
5890
+ return {};
5891
+ }
5892
+ });
5890
5893
  const updateArrowPosition = (arrowEl, placement, point, overlayEl) => {
5891
5894
  const { x, y } = adjustArrowPosition(props.isArrowCenter, point, placement, overlayEl.getBoundingClientRect());
5892
5895
  const staticSide = {
@@ -5907,54 +5910,67 @@ function useOverlay(props, emit) {
5907
5910
  const hostEl = props.origin;
5908
5911
  const overlayEl = unref(overlayRef.value);
5909
5912
  const arrowEl = unref(arrowRef.value);
5910
- const middleware = [
5911
- offset(props.offset),
5912
- autoPlacement({
5913
- alignment: props.align,
5914
- allowedPlacements: props.position
5915
- })
5916
- ];
5917
- props.showArrow && middleware.push(arrow({ element: arrowEl }));
5918
- props.shiftOffset !== void 0 && middleware.push(shift());
5919
- if (!overlayEl) {
5920
- return;
5913
+ const [mainPosition, ...fallbackPosition] = position.value;
5914
+ const middleware = [offset(props.offset)];
5915
+ middleware.push(fallbackPosition.length ? flip({ fallbackPlacements: fallbackPosition }) : flip());
5916
+ if (showArrow.value) {
5917
+ middleware.push(arrow({ element: arrowRef.value }));
5921
5918
  }
5922
5919
  const { x, y, placement, middlewareData } = await computePosition(hostEl, overlayEl, {
5923
5920
  strategy: "fixed",
5921
+ placement: mainPosition,
5924
5922
  middleware
5925
5923
  });
5926
5924
  let applyX = x;
5927
5925
  let applyY = y;
5928
- if (props.shiftOffset !== void 0) {
5929
- const { x: shiftX, y: shiftY } = middlewareData.shift;
5930
- shiftX < 0 && (applyX -= props.shiftOffset);
5931
- shiftX > 0 && (applyX += props.shiftOffset);
5932
- shiftY < 0 && (applyY -= props.shiftOffset);
5933
- shiftY > 0 && (applyY += props.shiftOffset);
5934
- }
5935
5926
  emit("positionChange", placement);
5936
5927
  Object.assign(overlayEl.style, { top: `${applyY}px`, left: `${applyX}px` });
5937
5928
  props.showArrow && updateArrowPosition(arrowEl, placement, middlewareData.arrow, overlayEl);
5938
5929
  };
5930
+ const scrollCallback = (e) => {
5931
+ var _a, _b;
5932
+ const scrollElement = e.target;
5933
+ if (scrollElement == null ? void 0 : scrollElement.contains((_b = (_a = props.origin) == null ? void 0 : _a.$el) != null ? _b : props.origin)) {
5934
+ updatePosition();
5935
+ }
5936
+ };
5937
+ const updateWidth = (originEl) => {
5938
+ overlayWidth.value = originEl.getBoundingClientRect().width;
5939
+ updatePosition();
5940
+ };
5941
+ const observeOrigin = () => {
5942
+ var _a, _b;
5943
+ if (fitOriginWidth.value && typeof window !== "undefined") {
5944
+ const originEl = (_b = (_a = props.origin) == null ? void 0 : _a.$el) != null ? _b : props.origin;
5945
+ if (originEl) {
5946
+ originObserver = new window.ResizeObserver(() => updateWidth(originEl));
5947
+ originObserver.observe(originEl);
5948
+ }
5949
+ }
5950
+ };
5951
+ const unobserveOrigin = () => {
5952
+ var _a, _b;
5953
+ const originEl = (_b = (_a = props.origin) == null ? void 0 : _a.$el) != null ? _b : props.origin;
5954
+ originEl && (originObserver == null ? void 0 : originObserver.unobserve(originEl));
5955
+ };
5939
5956
  watch(() => props.modelValue, () => {
5940
5957
  if (props.modelValue && props.origin) {
5941
- originParent = getScrollParent(props.origin);
5942
5958
  nextTick(updatePosition);
5943
- originParent == null ? void 0 : originParent.addEventListener("scroll", updatePosition);
5944
- originParent !== window && window.addEventListener("scroll", updatePosition);
5959
+ window.addEventListener("scroll", scrollCallback, true);
5945
5960
  window.addEventListener("resize", updatePosition);
5961
+ observeOrigin();
5946
5962
  } else {
5947
- originParent == null ? void 0 : originParent.removeEventListener("scroll", updatePosition);
5948
- originParent !== window && window.removeEventListener("scroll", updatePosition);
5963
+ window.removeEventListener("scroll", scrollCallback, true);
5949
5964
  window.removeEventListener("resize", updatePosition);
5965
+ unobserveOrigin();
5950
5966
  }
5951
5967
  });
5952
5968
  onUnmounted(() => {
5953
- originParent == null ? void 0 : originParent.removeEventListener("scroll", updatePosition);
5954
- originParent !== window && window.removeEventListener("scroll", updatePosition);
5969
+ window.removeEventListener("scroll", scrollCallback, true);
5955
5970
  window.removeEventListener("resize", updatePosition);
5971
+ unobserveOrigin();
5956
5972
  });
5957
- return { arrowRef, overlayRef, updatePosition };
5973
+ return { arrowRef, overlayRef, styles, updatePosition };
5958
5974
  }
5959
5975
  var flexibleOverlay = "";
5960
5976
  const FlexibleOverlay = defineComponent({
@@ -5975,6 +5991,7 @@ const FlexibleOverlay = defineComponent({
5975
5991
  const {
5976
5992
  arrowRef,
5977
5993
  overlayRef,
5994
+ styles,
5978
5995
  updatePosition
5979
5996
  } = useOverlay(props, emit);
5980
5997
  expose({
@@ -5984,7 +6001,8 @@ const FlexibleOverlay = defineComponent({
5984
6001
  var _a;
5985
6002
  return props.modelValue && createVNode("div", mergeProps({
5986
6003
  "ref": overlayRef,
5987
- "class": ns2.b()
6004
+ "class": ns2.b(),
6005
+ "style": styles.value
5988
6006
  }, attrs, {
5989
6007
  "onClick": withModifiers(() => ({}), [clickEventBubble.value ? "" : "stop"]),
5990
6008
  "onPointerup": withModifiers(() => ({}), ["stop"])