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
@@ -36,7 +36,7 @@ var __publicField = (obj, key, value) => {
36
36
  import { defineComponent, toRefs, computed, createVNode, resolveDynamicComponent, mergeProps, ref, reactive, onMounted, onBeforeUnmount, onUnmounted, Fragment, h, render, inject, withDirectives, resolveComponent, vShow, provide, toRef, getCurrentInstance, watch, withModifiers, isVNode, Transition, unref, nextTick, Comment, Text, cloneVNode, Teleport, createTextVNode, shallowRef, resolveDirective } from "vue";
37
37
  import { onClickOutside } from "@vueuse/core";
38
38
  import "clipboard";
39
- import { offset, autoPlacement, arrow, shift, computePosition } from "@floating-ui/dom";
39
+ import { offset, flip, arrow, computePosition } from "@floating-ui/dom";
40
40
  const timePickerProps = {
41
41
  modelValue: {
42
42
  type: String,
@@ -5047,7 +5047,7 @@ var lodash = { exports: {} };
5047
5047
  var delay = baseRest(function(func, wait, args) {
5048
5048
  return baseDelay(func, toNumber(wait) || 0, args);
5049
5049
  });
5050
- function flip(func) {
5050
+ function flip2(func) {
5051
5051
  return createWrap(func, WRAP_FLIP_FLAG);
5052
5052
  }
5053
5053
  function memoize(func, resolver) {
@@ -6171,7 +6171,7 @@ var lodash = { exports: {} };
6171
6171
  lodash2.flatten = flatten;
6172
6172
  lodash2.flattenDeep = flattenDeep;
6173
6173
  lodash2.flattenDepth = flattenDepth;
6174
- lodash2.flip = flip;
6174
+ lodash2.flip = flip2;
6175
6175
  lodash2.flow = flow;
6176
6176
  lodash2.flowRight = flowRight;
6177
6177
  lodash2.fromPairs = fromPairs;
@@ -7405,18 +7405,12 @@ const flexibleOverlayProps = {
7405
7405
  clickEventBubble: {
7406
7406
  type: Boolean,
7407
7407
  default: false
7408
+ },
7409
+ fitOriginWidth: {
7410
+ type: Boolean,
7411
+ default: false
7408
7412
  }
7409
7413
  };
7410
- function getScrollParent(element) {
7411
- const overflowRegex = /(auto|scroll|hidden)/;
7412
- for (let parent = element; parent = parent.parentElement; parent.parentElement !== document.body) {
7413
- const style = window.getComputedStyle(parent);
7414
- if (overflowRegex.test(style.overflow + style.overflowX + style.overflowY)) {
7415
- return parent;
7416
- }
7417
- }
7418
- return window;
7419
- }
7420
7414
  function adjustArrowPosition(isArrowCenter, point, placement, originRect) {
7421
7415
  let { x, y } = point;
7422
7416
  if (!isArrowCenter) {
@@ -7437,9 +7431,18 @@ function adjustArrowPosition(isArrowCenter, point, placement, originRect) {
7437
7431
  return { x, y };
7438
7432
  }
7439
7433
  function useOverlay(props, emit) {
7434
+ const { fitOriginWidth, position, showArrow } = toRefs(props);
7440
7435
  const overlayRef = ref();
7441
7436
  const arrowRef = ref();
7442
- let originParent = null;
7437
+ const overlayWidth = ref(0);
7438
+ let originObserver;
7439
+ const styles = computed(() => {
7440
+ if (fitOriginWidth.value) {
7441
+ return { width: overlayWidth.value + "px" };
7442
+ } else {
7443
+ return {};
7444
+ }
7445
+ });
7443
7446
  const updateArrowPosition = (arrowEl, placement, point, overlayEl) => {
7444
7447
  const { x, y } = adjustArrowPosition(props.isArrowCenter, point, placement, overlayEl.getBoundingClientRect());
7445
7448
  const staticSide = {
@@ -7460,54 +7463,67 @@ function useOverlay(props, emit) {
7460
7463
  const hostEl = props.origin;
7461
7464
  const overlayEl = unref(overlayRef.value);
7462
7465
  const arrowEl = unref(arrowRef.value);
7463
- const middleware = [
7464
- offset(props.offset),
7465
- autoPlacement({
7466
- alignment: props.align,
7467
- allowedPlacements: props.position
7468
- })
7469
- ];
7470
- props.showArrow && middleware.push(arrow({ element: arrowEl }));
7471
- props.shiftOffset !== void 0 && middleware.push(shift());
7472
- if (!overlayEl) {
7473
- return;
7466
+ const [mainPosition, ...fallbackPosition] = position.value;
7467
+ const middleware = [offset(props.offset)];
7468
+ middleware.push(fallbackPosition.length ? flip({ fallbackPlacements: fallbackPosition }) : flip());
7469
+ if (showArrow.value) {
7470
+ middleware.push(arrow({ element: arrowRef.value }));
7474
7471
  }
7475
7472
  const { x, y, placement, middlewareData } = await computePosition(hostEl, overlayEl, {
7476
7473
  strategy: "fixed",
7474
+ placement: mainPosition,
7477
7475
  middleware
7478
7476
  });
7479
7477
  let applyX = x;
7480
7478
  let applyY = y;
7481
- if (props.shiftOffset !== void 0) {
7482
- const { x: shiftX, y: shiftY } = middlewareData.shift;
7483
- shiftX < 0 && (applyX -= props.shiftOffset);
7484
- shiftX > 0 && (applyX += props.shiftOffset);
7485
- shiftY < 0 && (applyY -= props.shiftOffset);
7486
- shiftY > 0 && (applyY += props.shiftOffset);
7487
- }
7488
7479
  emit("positionChange", placement);
7489
7480
  Object.assign(overlayEl.style, { top: `${applyY}px`, left: `${applyX}px` });
7490
7481
  props.showArrow && updateArrowPosition(arrowEl, placement, middlewareData.arrow, overlayEl);
7491
7482
  };
7483
+ const scrollCallback = (e) => {
7484
+ var _a, _b;
7485
+ const scrollElement = e.target;
7486
+ if (scrollElement == null ? void 0 : scrollElement.contains((_b = (_a = props.origin) == null ? void 0 : _a.$el) != null ? _b : props.origin)) {
7487
+ updatePosition();
7488
+ }
7489
+ };
7490
+ const updateWidth = (originEl) => {
7491
+ overlayWidth.value = originEl.getBoundingClientRect().width;
7492
+ updatePosition();
7493
+ };
7494
+ const observeOrigin = () => {
7495
+ var _a, _b;
7496
+ if (fitOriginWidth.value && typeof window !== "undefined") {
7497
+ const originEl = (_b = (_a = props.origin) == null ? void 0 : _a.$el) != null ? _b : props.origin;
7498
+ if (originEl) {
7499
+ originObserver = new window.ResizeObserver(() => updateWidth(originEl));
7500
+ originObserver.observe(originEl);
7501
+ }
7502
+ }
7503
+ };
7504
+ const unobserveOrigin = () => {
7505
+ var _a, _b;
7506
+ const originEl = (_b = (_a = props.origin) == null ? void 0 : _a.$el) != null ? _b : props.origin;
7507
+ originEl && (originObserver == null ? void 0 : originObserver.unobserve(originEl));
7508
+ };
7492
7509
  watch(() => props.modelValue, () => {
7493
7510
  if (props.modelValue && props.origin) {
7494
- originParent = getScrollParent(props.origin);
7495
7511
  nextTick(updatePosition);
7496
- originParent == null ? void 0 : originParent.addEventListener("scroll", updatePosition);
7497
- originParent !== window && window.addEventListener("scroll", updatePosition);
7512
+ window.addEventListener("scroll", scrollCallback, true);
7498
7513
  window.addEventListener("resize", updatePosition);
7514
+ observeOrigin();
7499
7515
  } else {
7500
- originParent == null ? void 0 : originParent.removeEventListener("scroll", updatePosition);
7501
- originParent !== window && window.removeEventListener("scroll", updatePosition);
7516
+ window.removeEventListener("scroll", scrollCallback, true);
7502
7517
  window.removeEventListener("resize", updatePosition);
7518
+ unobserveOrigin();
7503
7519
  }
7504
7520
  });
7505
7521
  onUnmounted(() => {
7506
- originParent == null ? void 0 : originParent.removeEventListener("scroll", updatePosition);
7507
- originParent !== window && window.removeEventListener("scroll", updatePosition);
7522
+ window.removeEventListener("scroll", scrollCallback, true);
7508
7523
  window.removeEventListener("resize", updatePosition);
7524
+ unobserveOrigin();
7509
7525
  });
7510
- return { arrowRef, overlayRef, updatePosition };
7526
+ return { arrowRef, overlayRef, styles, updatePosition };
7511
7527
  }
7512
7528
  var flexibleOverlay = "";
7513
7529
  const FlexibleOverlay = defineComponent({
@@ -7528,6 +7544,7 @@ const FlexibleOverlay = defineComponent({
7528
7544
  const {
7529
7545
  arrowRef,
7530
7546
  overlayRef,
7547
+ styles,
7531
7548
  updatePosition
7532
7549
  } = useOverlay(props, emit);
7533
7550
  expose({
@@ -7537,7 +7554,8 @@ const FlexibleOverlay = defineComponent({
7537
7554
  var _a;
7538
7555
  return props.modelValue && createVNode("div", mergeProps({
7539
7556
  "ref": overlayRef,
7540
- "class": ns2.b()
7557
+ "class": ns2.b(),
7558
+ "style": styles.value
7541
7559
  }, attrs, {
7542
7560
  "onClick": withModifiers(() => ({}), [clickEventBubble.value ? "" : "stop"]),
7543
7561
  "onPointerup": withModifiers(() => ({}), ["stop"])