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, toRef } 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, toRef } 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 commonProps = {
36
36
  name: {
37
37
  type: String,
@@ -4099,7 +4099,7 @@ var lodash = { exports: {} };
4099
4099
  var delay = baseRest(function(func, wait, args) {
4100
4100
  return baseDelay(func, toNumber(wait) || 0, args);
4101
4101
  });
4102
- function flip(func) {
4102
+ function flip2(func) {
4103
4103
  return createWrap(func, WRAP_FLIP_FLAG);
4104
4104
  }
4105
4105
  function memoize(func, resolver) {
@@ -5223,7 +5223,7 @@ var lodash = { exports: {} };
5223
5223
  lodash2.flatten = flatten;
5224
5224
  lodash2.flattenDeep = flattenDeep;
5225
5225
  lodash2.flattenDepth = flattenDepth;
5226
- lodash2.flip = flip;
5226
+ lodash2.flip = flip2;
5227
5227
  lodash2.flow = flow;
5228
5228
  lodash2.flowRight = flowRight;
5229
5229
  lodash2.fromPairs = fromPairs;
@@ -5929,18 +5929,12 @@ const flexibleOverlayProps = {
5929
5929
  clickEventBubble: {
5930
5930
  type: Boolean,
5931
5931
  default: false
5932
+ },
5933
+ fitOriginWidth: {
5934
+ type: Boolean,
5935
+ default: false
5932
5936
  }
5933
5937
  };
5934
- function getScrollParent(element) {
5935
- const overflowRegex = /(auto|scroll|hidden)/;
5936
- for (let parent = element; parent = parent.parentElement; parent.parentElement !== document.body) {
5937
- const style = window.getComputedStyle(parent);
5938
- if (overflowRegex.test(style.overflow + style.overflowX + style.overflowY)) {
5939
- return parent;
5940
- }
5941
- }
5942
- return window;
5943
- }
5944
5938
  function adjustArrowPosition(isArrowCenter, point, placement, originRect) {
5945
5939
  let { x, y } = point;
5946
5940
  if (!isArrowCenter) {
@@ -5961,9 +5955,18 @@ function adjustArrowPosition(isArrowCenter, point, placement, originRect) {
5961
5955
  return { x, y };
5962
5956
  }
5963
5957
  function useOverlay(props, emit) {
5958
+ const { fitOriginWidth, position, showArrow } = toRefs(props);
5964
5959
  const overlayRef = ref();
5965
5960
  const arrowRef = ref();
5966
- let originParent = null;
5961
+ const overlayWidth = ref(0);
5962
+ let originObserver;
5963
+ const styles = computed(() => {
5964
+ if (fitOriginWidth.value) {
5965
+ return { width: overlayWidth.value + "px" };
5966
+ } else {
5967
+ return {};
5968
+ }
5969
+ });
5967
5970
  const updateArrowPosition = (arrowEl, placement, point, overlayEl) => {
5968
5971
  const { x, y } = adjustArrowPosition(props.isArrowCenter, point, placement, overlayEl.getBoundingClientRect());
5969
5972
  const staticSide = {
@@ -5984,54 +5987,67 @@ function useOverlay(props, emit) {
5984
5987
  const hostEl = props.origin;
5985
5988
  const overlayEl = unref(overlayRef.value);
5986
5989
  const arrowEl = unref(arrowRef.value);
5987
- const middleware = [
5988
- offset(props.offset),
5989
- autoPlacement({
5990
- alignment: props.align,
5991
- allowedPlacements: props.position
5992
- })
5993
- ];
5994
- props.showArrow && middleware.push(arrow({ element: arrowEl }));
5995
- props.shiftOffset !== void 0 && middleware.push(shift());
5996
- if (!overlayEl) {
5997
- return;
5990
+ const [mainPosition, ...fallbackPosition] = position.value;
5991
+ const middleware = [offset(props.offset)];
5992
+ middleware.push(fallbackPosition.length ? flip({ fallbackPlacements: fallbackPosition }) : flip());
5993
+ if (showArrow.value) {
5994
+ middleware.push(arrow({ element: arrowRef.value }));
5998
5995
  }
5999
5996
  const { x, y, placement, middlewareData } = await computePosition(hostEl, overlayEl, {
6000
5997
  strategy: "fixed",
5998
+ placement: mainPosition,
6001
5999
  middleware
6002
6000
  });
6003
6001
  let applyX = x;
6004
6002
  let applyY = y;
6005
- if (props.shiftOffset !== void 0) {
6006
- const { x: shiftX, y: shiftY } = middlewareData.shift;
6007
- shiftX < 0 && (applyX -= props.shiftOffset);
6008
- shiftX > 0 && (applyX += props.shiftOffset);
6009
- shiftY < 0 && (applyY -= props.shiftOffset);
6010
- shiftY > 0 && (applyY += props.shiftOffset);
6011
- }
6012
6003
  emit("positionChange", placement);
6013
6004
  Object.assign(overlayEl.style, { top: `${applyY}px`, left: `${applyX}px` });
6014
6005
  props.showArrow && updateArrowPosition(arrowEl, placement, middlewareData.arrow, overlayEl);
6015
6006
  };
6007
+ const scrollCallback = (e) => {
6008
+ var _a, _b;
6009
+ const scrollElement = e.target;
6010
+ if (scrollElement == null ? void 0 : scrollElement.contains((_b = (_a = props.origin) == null ? void 0 : _a.$el) != null ? _b : props.origin)) {
6011
+ updatePosition();
6012
+ }
6013
+ };
6014
+ const updateWidth = (originEl) => {
6015
+ overlayWidth.value = originEl.getBoundingClientRect().width;
6016
+ updatePosition();
6017
+ };
6018
+ const observeOrigin = () => {
6019
+ var _a, _b;
6020
+ if (fitOriginWidth.value && typeof window !== "undefined") {
6021
+ const originEl = (_b = (_a = props.origin) == null ? void 0 : _a.$el) != null ? _b : props.origin;
6022
+ if (originEl) {
6023
+ originObserver = new window.ResizeObserver(() => updateWidth(originEl));
6024
+ originObserver.observe(originEl);
6025
+ }
6026
+ }
6027
+ };
6028
+ const unobserveOrigin = () => {
6029
+ var _a, _b;
6030
+ const originEl = (_b = (_a = props.origin) == null ? void 0 : _a.$el) != null ? _b : props.origin;
6031
+ originEl && (originObserver == null ? void 0 : originObserver.unobserve(originEl));
6032
+ };
6016
6033
  watch(() => props.modelValue, () => {
6017
6034
  if (props.modelValue && props.origin) {
6018
- originParent = getScrollParent(props.origin);
6019
6035
  nextTick(updatePosition);
6020
- originParent == null ? void 0 : originParent.addEventListener("scroll", updatePosition);
6021
- originParent !== window && window.addEventListener("scroll", updatePosition);
6036
+ window.addEventListener("scroll", scrollCallback, true);
6022
6037
  window.addEventListener("resize", updatePosition);
6038
+ observeOrigin();
6023
6039
  } else {
6024
- originParent == null ? void 0 : originParent.removeEventListener("scroll", updatePosition);
6025
- originParent !== window && window.removeEventListener("scroll", updatePosition);
6040
+ window.removeEventListener("scroll", scrollCallback, true);
6026
6041
  window.removeEventListener("resize", updatePosition);
6042
+ unobserveOrigin();
6027
6043
  }
6028
6044
  });
6029
6045
  onUnmounted(() => {
6030
- originParent == null ? void 0 : originParent.removeEventListener("scroll", updatePosition);
6031
- originParent !== window && window.removeEventListener("scroll", updatePosition);
6046
+ window.removeEventListener("scroll", scrollCallback, true);
6032
6047
  window.removeEventListener("resize", updatePosition);
6048
+ unobserveOrigin();
6033
6049
  });
6034
- return { arrowRef, overlayRef, updatePosition };
6050
+ return { arrowRef, overlayRef, styles, updatePosition };
6035
6051
  }
6036
6052
  var flexibleOverlay = "";
6037
6053
  const FlexibleOverlay = defineComponent({
@@ -6052,6 +6068,7 @@ const FlexibleOverlay = defineComponent({
6052
6068
  const {
6053
6069
  arrowRef,
6054
6070
  overlayRef,
6071
+ styles,
6055
6072
  updatePosition
6056
6073
  } = useOverlay(props, emit);
6057
6074
  expose({
@@ -6061,7 +6078,8 @@ const FlexibleOverlay = defineComponent({
6061
6078
  var _a;
6062
6079
  return props.modelValue && createVNode("div", mergeProps({
6063
6080
  "ref": overlayRef,
6064
- "class": ns2.b()
6081
+ "class": ns2.b(),
6082
+ "style": styles.value
6065
6083
  }, attrs, {
6066
6084
  "onClick": withModifiers(() => ({}), [clickEventBubble.value ? "" : "stop"]),
6067
6085
  "onPointerup": withModifiers(() => ({}), ["stop"])