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
package/form/index.es.js CHANGED
@@ -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 } 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 } 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 formProps = {
36
36
  data: {
37
37
  type: Object,
@@ -3989,7 +3989,7 @@ var lodash = { exports: {} };
3989
3989
  var delay = baseRest(function(func, wait, args) {
3990
3990
  return baseDelay(func, toNumber(wait) || 0, args);
3991
3991
  });
3992
- function flip(func) {
3992
+ function flip2(func) {
3993
3993
  return createWrap(func, WRAP_FLIP_FLAG);
3994
3994
  }
3995
3995
  function memoize(func, resolver) {
@@ -5113,7 +5113,7 @@ var lodash = { exports: {} };
5113
5113
  lodash2.flatten = flatten;
5114
5114
  lodash2.flattenDeep = flattenDeep;
5115
5115
  lodash2.flattenDepth = flattenDepth;
5116
- lodash2.flip = flip;
5116
+ lodash2.flip = flip2;
5117
5117
  lodash2.flow = flow;
5118
5118
  lodash2.flowRight = flowRight;
5119
5119
  lodash2.fromPairs = fromPairs;
@@ -5819,18 +5819,12 @@ const flexibleOverlayProps = {
5819
5819
  clickEventBubble: {
5820
5820
  type: Boolean,
5821
5821
  default: false
5822
+ },
5823
+ fitOriginWidth: {
5824
+ type: Boolean,
5825
+ default: false
5822
5826
  }
5823
5827
  };
5824
- function getScrollParent(element) {
5825
- const overflowRegex = /(auto|scroll|hidden)/;
5826
- for (let parent = element; parent = parent.parentElement; parent.parentElement !== document.body) {
5827
- const style = window.getComputedStyle(parent);
5828
- if (overflowRegex.test(style.overflow + style.overflowX + style.overflowY)) {
5829
- return parent;
5830
- }
5831
- }
5832
- return window;
5833
- }
5834
5828
  function adjustArrowPosition(isArrowCenter, point, placement, originRect) {
5835
5829
  let { x, y } = point;
5836
5830
  if (!isArrowCenter) {
@@ -5851,9 +5845,18 @@ function adjustArrowPosition(isArrowCenter, point, placement, originRect) {
5851
5845
  return { x, y };
5852
5846
  }
5853
5847
  function useOverlay(props, emit) {
5848
+ const { fitOriginWidth, position, showArrow } = toRefs(props);
5854
5849
  const overlayRef = ref();
5855
5850
  const arrowRef = ref();
5856
- let originParent = null;
5851
+ const overlayWidth = ref(0);
5852
+ let originObserver;
5853
+ const styles = computed(() => {
5854
+ if (fitOriginWidth.value) {
5855
+ return { width: overlayWidth.value + "px" };
5856
+ } else {
5857
+ return {};
5858
+ }
5859
+ });
5857
5860
  const updateArrowPosition = (arrowEl, placement, point, overlayEl) => {
5858
5861
  const { x, y } = adjustArrowPosition(props.isArrowCenter, point, placement, overlayEl.getBoundingClientRect());
5859
5862
  const staticSide = {
@@ -5874,54 +5877,67 @@ function useOverlay(props, emit) {
5874
5877
  const hostEl = props.origin;
5875
5878
  const overlayEl = unref(overlayRef.value);
5876
5879
  const arrowEl = unref(arrowRef.value);
5877
- const middleware = [
5878
- offset(props.offset),
5879
- autoPlacement({
5880
- alignment: props.align,
5881
- allowedPlacements: props.position
5882
- })
5883
- ];
5884
- props.showArrow && middleware.push(arrow({ element: arrowEl }));
5885
- props.shiftOffset !== void 0 && middleware.push(shift());
5886
- if (!overlayEl) {
5887
- return;
5880
+ const [mainPosition, ...fallbackPosition] = position.value;
5881
+ const middleware = [offset(props.offset)];
5882
+ middleware.push(fallbackPosition.length ? flip({ fallbackPlacements: fallbackPosition }) : flip());
5883
+ if (showArrow.value) {
5884
+ middleware.push(arrow({ element: arrowRef.value }));
5888
5885
  }
5889
5886
  const { x, y, placement, middlewareData } = await computePosition(hostEl, overlayEl, {
5890
5887
  strategy: "fixed",
5888
+ placement: mainPosition,
5891
5889
  middleware
5892
5890
  });
5893
5891
  let applyX = x;
5894
5892
  let applyY = y;
5895
- if (props.shiftOffset !== void 0) {
5896
- const { x: shiftX, y: shiftY } = middlewareData.shift;
5897
- shiftX < 0 && (applyX -= props.shiftOffset);
5898
- shiftX > 0 && (applyX += props.shiftOffset);
5899
- shiftY < 0 && (applyY -= props.shiftOffset);
5900
- shiftY > 0 && (applyY += props.shiftOffset);
5901
- }
5902
5893
  emit("positionChange", placement);
5903
5894
  Object.assign(overlayEl.style, { top: `${applyY}px`, left: `${applyX}px` });
5904
5895
  props.showArrow && updateArrowPosition(arrowEl, placement, middlewareData.arrow, overlayEl);
5905
5896
  };
5897
+ const scrollCallback = (e) => {
5898
+ var _a, _b;
5899
+ const scrollElement = e.target;
5900
+ if (scrollElement == null ? void 0 : scrollElement.contains((_b = (_a = props.origin) == null ? void 0 : _a.$el) != null ? _b : props.origin)) {
5901
+ updatePosition();
5902
+ }
5903
+ };
5904
+ const updateWidth = (originEl) => {
5905
+ overlayWidth.value = originEl.getBoundingClientRect().width;
5906
+ updatePosition();
5907
+ };
5908
+ const observeOrigin = () => {
5909
+ var _a, _b;
5910
+ if (fitOriginWidth.value && typeof window !== "undefined") {
5911
+ const originEl = (_b = (_a = props.origin) == null ? void 0 : _a.$el) != null ? _b : props.origin;
5912
+ if (originEl) {
5913
+ originObserver = new window.ResizeObserver(() => updateWidth(originEl));
5914
+ originObserver.observe(originEl);
5915
+ }
5916
+ }
5917
+ };
5918
+ const unobserveOrigin = () => {
5919
+ var _a, _b;
5920
+ const originEl = (_b = (_a = props.origin) == null ? void 0 : _a.$el) != null ? _b : props.origin;
5921
+ originEl && (originObserver == null ? void 0 : originObserver.unobserve(originEl));
5922
+ };
5906
5923
  watch(() => props.modelValue, () => {
5907
5924
  if (props.modelValue && props.origin) {
5908
- originParent = getScrollParent(props.origin);
5909
5925
  nextTick(updatePosition);
5910
- originParent == null ? void 0 : originParent.addEventListener("scroll", updatePosition);
5911
- originParent !== window && window.addEventListener("scroll", updatePosition);
5926
+ window.addEventListener("scroll", scrollCallback, true);
5912
5927
  window.addEventListener("resize", updatePosition);
5928
+ observeOrigin();
5913
5929
  } else {
5914
- originParent == null ? void 0 : originParent.removeEventListener("scroll", updatePosition);
5915
- originParent !== window && window.removeEventListener("scroll", updatePosition);
5930
+ window.removeEventListener("scroll", scrollCallback, true);
5916
5931
  window.removeEventListener("resize", updatePosition);
5932
+ unobserveOrigin();
5917
5933
  }
5918
5934
  });
5919
5935
  onUnmounted(() => {
5920
- originParent == null ? void 0 : originParent.removeEventListener("scroll", updatePosition);
5921
- originParent !== window && window.removeEventListener("scroll", updatePosition);
5936
+ window.removeEventListener("scroll", scrollCallback, true);
5922
5937
  window.removeEventListener("resize", updatePosition);
5938
+ unobserveOrigin();
5923
5939
  });
5924
- return { arrowRef, overlayRef, updatePosition };
5940
+ return { arrowRef, overlayRef, styles, updatePosition };
5925
5941
  }
5926
5942
  var flexibleOverlay = "";
5927
5943
  const FlexibleOverlay = defineComponent({
@@ -5942,6 +5958,7 @@ const FlexibleOverlay = defineComponent({
5942
5958
  const {
5943
5959
  arrowRef,
5944
5960
  overlayRef,
5961
+ styles,
5945
5962
  updatePosition
5946
5963
  } = useOverlay(props, emit);
5947
5964
  expose({
@@ -5951,7 +5968,8 @@ const FlexibleOverlay = defineComponent({
5951
5968
  var _a;
5952
5969
  return props.modelValue && createVNode("div", mergeProps({
5953
5970
  "ref": overlayRef,
5954
- "class": ns2.b()
5971
+ "class": ns2.b(),
5972
+ "style": styles.value
5955
5973
  }, attrs, {
5956
5974
  "onClick": withModifiers(() => ({}), [clickEventBubble.value ? "" : "stop"]),
5957
5975
  "onPointerup": withModifiers(() => ({}), ["stop"])