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/radio/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, toRef, isVNode } 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, isVNode } 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 radioCommonProps = {
36
36
  modelValue: {
37
37
  type: [Number, String, Boolean],
@@ -4052,7 +4052,7 @@ var lodash = { exports: {} };
4052
4052
  var delay = baseRest(function(func, wait, args) {
4053
4053
  return baseDelay(func, toNumber(wait) || 0, args);
4054
4054
  });
4055
- function flip(func) {
4055
+ function flip2(func) {
4056
4056
  return createWrap(func, WRAP_FLIP_FLAG);
4057
4057
  }
4058
4058
  function memoize(func, resolver) {
@@ -5176,7 +5176,7 @@ var lodash = { exports: {} };
5176
5176
  lodash2.flatten = flatten;
5177
5177
  lodash2.flattenDeep = flattenDeep;
5178
5178
  lodash2.flattenDepth = flattenDepth;
5179
- lodash2.flip = flip;
5179
+ lodash2.flip = flip2;
5180
5180
  lodash2.flow = flow;
5181
5181
  lodash2.flowRight = flowRight;
5182
5182
  lodash2.fromPairs = fromPairs;
@@ -5882,18 +5882,12 @@ const flexibleOverlayProps = {
5882
5882
  clickEventBubble: {
5883
5883
  type: Boolean,
5884
5884
  default: false
5885
+ },
5886
+ fitOriginWidth: {
5887
+ type: Boolean,
5888
+ default: false
5885
5889
  }
5886
5890
  };
5887
- function getScrollParent(element) {
5888
- const overflowRegex = /(auto|scroll|hidden)/;
5889
- for (let parent = element; parent = parent.parentElement; parent.parentElement !== document.body) {
5890
- const style = window.getComputedStyle(parent);
5891
- if (overflowRegex.test(style.overflow + style.overflowX + style.overflowY)) {
5892
- return parent;
5893
- }
5894
- }
5895
- return window;
5896
- }
5897
5891
  function adjustArrowPosition(isArrowCenter, point, placement, originRect) {
5898
5892
  let { x, y } = point;
5899
5893
  if (!isArrowCenter) {
@@ -5914,9 +5908,18 @@ function adjustArrowPosition(isArrowCenter, point, placement, originRect) {
5914
5908
  return { x, y };
5915
5909
  }
5916
5910
  function useOverlay(props, emit) {
5911
+ const { fitOriginWidth, position, showArrow } = toRefs(props);
5917
5912
  const overlayRef = ref();
5918
5913
  const arrowRef = ref();
5919
- let originParent = null;
5914
+ const overlayWidth = ref(0);
5915
+ let originObserver;
5916
+ const styles = computed(() => {
5917
+ if (fitOriginWidth.value) {
5918
+ return { width: overlayWidth.value + "px" };
5919
+ } else {
5920
+ return {};
5921
+ }
5922
+ });
5920
5923
  const updateArrowPosition = (arrowEl, placement, point, overlayEl) => {
5921
5924
  const { x, y } = adjustArrowPosition(props.isArrowCenter, point, placement, overlayEl.getBoundingClientRect());
5922
5925
  const staticSide = {
@@ -5937,54 +5940,67 @@ function useOverlay(props, emit) {
5937
5940
  const hostEl = props.origin;
5938
5941
  const overlayEl = unref(overlayRef.value);
5939
5942
  const arrowEl = unref(arrowRef.value);
5940
- const middleware = [
5941
- offset(props.offset),
5942
- autoPlacement({
5943
- alignment: props.align,
5944
- allowedPlacements: props.position
5945
- })
5946
- ];
5947
- props.showArrow && middleware.push(arrow({ element: arrowEl }));
5948
- props.shiftOffset !== void 0 && middleware.push(shift());
5949
- if (!overlayEl) {
5950
- return;
5943
+ const [mainPosition, ...fallbackPosition] = position.value;
5944
+ const middleware = [offset(props.offset)];
5945
+ middleware.push(fallbackPosition.length ? flip({ fallbackPlacements: fallbackPosition }) : flip());
5946
+ if (showArrow.value) {
5947
+ middleware.push(arrow({ element: arrowRef.value }));
5951
5948
  }
5952
5949
  const { x, y, placement, middlewareData } = await computePosition(hostEl, overlayEl, {
5953
5950
  strategy: "fixed",
5951
+ placement: mainPosition,
5954
5952
  middleware
5955
5953
  });
5956
5954
  let applyX = x;
5957
5955
  let applyY = y;
5958
- if (props.shiftOffset !== void 0) {
5959
- const { x: shiftX, y: shiftY } = middlewareData.shift;
5960
- shiftX < 0 && (applyX -= props.shiftOffset);
5961
- shiftX > 0 && (applyX += props.shiftOffset);
5962
- shiftY < 0 && (applyY -= props.shiftOffset);
5963
- shiftY > 0 && (applyY += props.shiftOffset);
5964
- }
5965
5956
  emit("positionChange", placement);
5966
5957
  Object.assign(overlayEl.style, { top: `${applyY}px`, left: `${applyX}px` });
5967
5958
  props.showArrow && updateArrowPosition(arrowEl, placement, middlewareData.arrow, overlayEl);
5968
5959
  };
5960
+ const scrollCallback = (e) => {
5961
+ var _a, _b;
5962
+ const scrollElement = e.target;
5963
+ if (scrollElement == null ? void 0 : scrollElement.contains((_b = (_a = props.origin) == null ? void 0 : _a.$el) != null ? _b : props.origin)) {
5964
+ updatePosition();
5965
+ }
5966
+ };
5967
+ const updateWidth = (originEl) => {
5968
+ overlayWidth.value = originEl.getBoundingClientRect().width;
5969
+ updatePosition();
5970
+ };
5971
+ const observeOrigin = () => {
5972
+ var _a, _b;
5973
+ if (fitOriginWidth.value && typeof window !== "undefined") {
5974
+ const originEl = (_b = (_a = props.origin) == null ? void 0 : _a.$el) != null ? _b : props.origin;
5975
+ if (originEl) {
5976
+ originObserver = new window.ResizeObserver(() => updateWidth(originEl));
5977
+ originObserver.observe(originEl);
5978
+ }
5979
+ }
5980
+ };
5981
+ const unobserveOrigin = () => {
5982
+ var _a, _b;
5983
+ const originEl = (_b = (_a = props.origin) == null ? void 0 : _a.$el) != null ? _b : props.origin;
5984
+ originEl && (originObserver == null ? void 0 : originObserver.unobserve(originEl));
5985
+ };
5969
5986
  watch(() => props.modelValue, () => {
5970
5987
  if (props.modelValue && props.origin) {
5971
- originParent = getScrollParent(props.origin);
5972
5988
  nextTick(updatePosition);
5973
- originParent == null ? void 0 : originParent.addEventListener("scroll", updatePosition);
5974
- originParent !== window && window.addEventListener("scroll", updatePosition);
5989
+ window.addEventListener("scroll", scrollCallback, true);
5975
5990
  window.addEventListener("resize", updatePosition);
5991
+ observeOrigin();
5976
5992
  } else {
5977
- originParent == null ? void 0 : originParent.removeEventListener("scroll", updatePosition);
5978
- originParent !== window && window.removeEventListener("scroll", updatePosition);
5993
+ window.removeEventListener("scroll", scrollCallback, true);
5979
5994
  window.removeEventListener("resize", updatePosition);
5995
+ unobserveOrigin();
5980
5996
  }
5981
5997
  });
5982
5998
  onUnmounted(() => {
5983
- originParent == null ? void 0 : originParent.removeEventListener("scroll", updatePosition);
5984
- originParent !== window && window.removeEventListener("scroll", updatePosition);
5999
+ window.removeEventListener("scroll", scrollCallback, true);
5985
6000
  window.removeEventListener("resize", updatePosition);
6001
+ unobserveOrigin();
5986
6002
  });
5987
- return { arrowRef, overlayRef, updatePosition };
6003
+ return { arrowRef, overlayRef, styles, updatePosition };
5988
6004
  }
5989
6005
  var flexibleOverlay = "";
5990
6006
  const FlexibleOverlay = defineComponent({
@@ -6005,6 +6021,7 @@ const FlexibleOverlay = defineComponent({
6005
6021
  const {
6006
6022
  arrowRef,
6007
6023
  overlayRef,
6024
+ styles,
6008
6025
  updatePosition
6009
6026
  } = useOverlay(props, emit);
6010
6027
  expose({
@@ -6014,7 +6031,8 @@ const FlexibleOverlay = defineComponent({
6014
6031
  var _a;
6015
6032
  return props.modelValue && createVNode("div", mergeProps({
6016
6033
  "ref": overlayRef,
6017
- "class": ns2.b()
6034
+ "class": ns2.b(),
6035
+ "style": styles.value
6018
6036
  }, attrs, {
6019
6037
  "onClick": withModifiers(() => ({}), [clickEventBubble.value ? "" : "stop"]),
6020
6038
  "onPointerup": withModifiers(() => ({}), ["stop"])