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 { createVNode, defineComponent, watch, provide, reactive, toRefs, onUnmounted, Transition, mergeProps, ref, unref, nextTick, withModifiers, Comment, Text, h, Fragment, inject, withDirectives, cloneVNode, computed, onMounted, Teleport, createTextVNode, onBeforeUnmount } from "vue";
32
+ import { createVNode, defineComponent, watch, provide, reactive, toRefs, 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 inputNumberProps = {
36
36
  placeholder: {
37
37
  type: String
@@ -4095,7 +4095,7 @@ var lodash = { exports: {} };
4095
4095
  var delay = baseRest(function(func, wait, args) {
4096
4096
  return baseDelay(func, toNumber(wait) || 0, args);
4097
4097
  });
4098
- function flip(func) {
4098
+ function flip2(func) {
4099
4099
  return createWrap(func, WRAP_FLIP_FLAG);
4100
4100
  }
4101
4101
  function memoize(func, resolver) {
@@ -5219,7 +5219,7 @@ var lodash = { exports: {} };
5219
5219
  lodash2.flatten = flatten;
5220
5220
  lodash2.flattenDeep = flattenDeep;
5221
5221
  lodash2.flattenDepth = flattenDepth;
5222
- lodash2.flip = flip;
5222
+ lodash2.flip = flip2;
5223
5223
  lodash2.flow = flow;
5224
5224
  lodash2.flowRight = flowRight;
5225
5225
  lodash2.fromPairs = fromPairs;
@@ -5902,18 +5902,12 @@ const flexibleOverlayProps = {
5902
5902
  clickEventBubble: {
5903
5903
  type: Boolean,
5904
5904
  default: false
5905
+ },
5906
+ fitOriginWidth: {
5907
+ type: Boolean,
5908
+ default: false
5905
5909
  }
5906
5910
  };
5907
- function getScrollParent(element) {
5908
- const overflowRegex = /(auto|scroll|hidden)/;
5909
- for (let parent = element; parent = parent.parentElement; parent.parentElement !== document.body) {
5910
- const style = window.getComputedStyle(parent);
5911
- if (overflowRegex.test(style.overflow + style.overflowX + style.overflowY)) {
5912
- return parent;
5913
- }
5914
- }
5915
- return window;
5916
- }
5917
5911
  function adjustArrowPosition(isArrowCenter, point, placement, originRect) {
5918
5912
  let { x, y } = point;
5919
5913
  if (!isArrowCenter) {
@@ -5934,9 +5928,18 @@ function adjustArrowPosition(isArrowCenter, point, placement, originRect) {
5934
5928
  return { x, y };
5935
5929
  }
5936
5930
  function useOverlay(props, emit) {
5931
+ const { fitOriginWidth, position, showArrow } = toRefs(props);
5937
5932
  const overlayRef = ref();
5938
5933
  const arrowRef = ref();
5939
- let originParent = null;
5934
+ const overlayWidth = ref(0);
5935
+ let originObserver;
5936
+ const styles = computed(() => {
5937
+ if (fitOriginWidth.value) {
5938
+ return { width: overlayWidth.value + "px" };
5939
+ } else {
5940
+ return {};
5941
+ }
5942
+ });
5940
5943
  const updateArrowPosition = (arrowEl, placement, point, overlayEl) => {
5941
5944
  const { x, y } = adjustArrowPosition(props.isArrowCenter, point, placement, overlayEl.getBoundingClientRect());
5942
5945
  const staticSide = {
@@ -5957,54 +5960,67 @@ function useOverlay(props, emit) {
5957
5960
  const hostEl = props.origin;
5958
5961
  const overlayEl = unref(overlayRef.value);
5959
5962
  const arrowEl = unref(arrowRef.value);
5960
- const middleware = [
5961
- offset(props.offset),
5962
- autoPlacement({
5963
- alignment: props.align,
5964
- allowedPlacements: props.position
5965
- })
5966
- ];
5967
- props.showArrow && middleware.push(arrow({ element: arrowEl }));
5968
- props.shiftOffset !== void 0 && middleware.push(shift());
5969
- if (!overlayEl) {
5970
- return;
5963
+ const [mainPosition, ...fallbackPosition] = position.value;
5964
+ const middleware = [offset(props.offset)];
5965
+ middleware.push(fallbackPosition.length ? flip({ fallbackPlacements: fallbackPosition }) : flip());
5966
+ if (showArrow.value) {
5967
+ middleware.push(arrow({ element: arrowRef.value }));
5971
5968
  }
5972
5969
  const { x, y, placement, middlewareData } = await computePosition(hostEl, overlayEl, {
5973
5970
  strategy: "fixed",
5971
+ placement: mainPosition,
5974
5972
  middleware
5975
5973
  });
5976
5974
  let applyX = x;
5977
5975
  let applyY = y;
5978
- if (props.shiftOffset !== void 0) {
5979
- const { x: shiftX, y: shiftY } = middlewareData.shift;
5980
- shiftX < 0 && (applyX -= props.shiftOffset);
5981
- shiftX > 0 && (applyX += props.shiftOffset);
5982
- shiftY < 0 && (applyY -= props.shiftOffset);
5983
- shiftY > 0 && (applyY += props.shiftOffset);
5984
- }
5985
5976
  emit("positionChange", placement);
5986
5977
  Object.assign(overlayEl.style, { top: `${applyY}px`, left: `${applyX}px` });
5987
5978
  props.showArrow && updateArrowPosition(arrowEl, placement, middlewareData.arrow, overlayEl);
5988
5979
  };
5980
+ const scrollCallback = (e) => {
5981
+ var _a, _b;
5982
+ const scrollElement = e.target;
5983
+ if (scrollElement == null ? void 0 : scrollElement.contains((_b = (_a = props.origin) == null ? void 0 : _a.$el) != null ? _b : props.origin)) {
5984
+ updatePosition();
5985
+ }
5986
+ };
5987
+ const updateWidth = (originEl) => {
5988
+ overlayWidth.value = originEl.getBoundingClientRect().width;
5989
+ updatePosition();
5990
+ };
5991
+ const observeOrigin = () => {
5992
+ var _a, _b;
5993
+ if (fitOriginWidth.value && typeof window !== "undefined") {
5994
+ const originEl = (_b = (_a = props.origin) == null ? void 0 : _a.$el) != null ? _b : props.origin;
5995
+ if (originEl) {
5996
+ originObserver = new window.ResizeObserver(() => updateWidth(originEl));
5997
+ originObserver.observe(originEl);
5998
+ }
5999
+ }
6000
+ };
6001
+ const unobserveOrigin = () => {
6002
+ var _a, _b;
6003
+ const originEl = (_b = (_a = props.origin) == null ? void 0 : _a.$el) != null ? _b : props.origin;
6004
+ originEl && (originObserver == null ? void 0 : originObserver.unobserve(originEl));
6005
+ };
5989
6006
  watch(() => props.modelValue, () => {
5990
6007
  if (props.modelValue && props.origin) {
5991
- originParent = getScrollParent(props.origin);
5992
6008
  nextTick(updatePosition);
5993
- originParent == null ? void 0 : originParent.addEventListener("scroll", updatePosition);
5994
- originParent !== window && window.addEventListener("scroll", updatePosition);
6009
+ window.addEventListener("scroll", scrollCallback, true);
5995
6010
  window.addEventListener("resize", updatePosition);
6011
+ observeOrigin();
5996
6012
  } else {
5997
- originParent == null ? void 0 : originParent.removeEventListener("scroll", updatePosition);
5998
- originParent !== window && window.removeEventListener("scroll", updatePosition);
6013
+ window.removeEventListener("scroll", scrollCallback, true);
5999
6014
  window.removeEventListener("resize", updatePosition);
6015
+ unobserveOrigin();
6000
6016
  }
6001
6017
  });
6002
6018
  onUnmounted(() => {
6003
- originParent == null ? void 0 : originParent.removeEventListener("scroll", updatePosition);
6004
- originParent !== window && window.removeEventListener("scroll", updatePosition);
6019
+ window.removeEventListener("scroll", scrollCallback, true);
6005
6020
  window.removeEventListener("resize", updatePosition);
6021
+ unobserveOrigin();
6006
6022
  });
6007
- return { arrowRef, overlayRef, updatePosition };
6023
+ return { arrowRef, overlayRef, styles, updatePosition };
6008
6024
  }
6009
6025
  var flexibleOverlay = "";
6010
6026
  const FlexibleOverlay = defineComponent({
@@ -6025,6 +6041,7 @@ const FlexibleOverlay = defineComponent({
6025
6041
  const {
6026
6042
  arrowRef,
6027
6043
  overlayRef,
6044
+ styles,
6028
6045
  updatePosition
6029
6046
  } = useOverlay(props, emit);
6030
6047
  expose({
@@ -6034,7 +6051,8 @@ const FlexibleOverlay = defineComponent({
6034
6051
  var _a;
6035
6052
  return props.modelValue && createVNode("div", mergeProps({
6036
6053
  "ref": overlayRef,
6037
- "class": ns2.b()
6054
+ "class": ns2.b(),
6055
+ "style": styles.value
6038
6056
  }, attrs, {
6039
6057
  "onClick": withModifiers(() => ({}), [clickEventBubble.value ? "" : "stop"]),
6040
6058
  "onPointerup": withModifiers(() => ({}), ["stop"])