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
@@ -33,9 +33,9 @@ var __publicField = (obj, key, value) => {
33
33
  __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
34
34
  return value;
35
35
  };
36
- import { ref, nextTick, defineComponent, watch, provide, reactive, toRefs, createVNode, onUnmounted, Transition, mergeProps, unref, withModifiers, Comment, Text, h, Fragment, inject, withDirectives, cloneVNode, computed, onMounted, Teleport, createTextVNode, onBeforeUnmount, render, getCurrentInstance, resolveDirective, vShow, resolveDynamicComponent, isVNode } from "vue";
36
+ import { ref, nextTick, defineComponent, watch, provide, reactive, toRefs, createVNode, onUnmounted, Transition, mergeProps, computed, unref, withModifiers, Comment, Text, h, Fragment, inject, withDirectives, cloneVNode, onMounted, Teleport, createTextVNode, onBeforeUnmount, render, getCurrentInstance, resolveDirective, vShow, resolveDynamicComponent, isVNode } from "vue";
37
37
  import "clipboard";
38
- import { offset, autoPlacement, arrow, shift, computePosition } from "@floating-ui/dom";
38
+ import { offset, flip, arrow, computePosition } from "@floating-ui/dom";
39
39
  const defaultFormatter = (item) => {
40
40
  if (typeof item === "string") {
41
41
  return item;
@@ -4389,7 +4389,7 @@ var lodash = { exports: {} };
4389
4389
  var delay = baseRest(function(func, wait, args) {
4390
4390
  return baseDelay(func, toNumber(wait) || 0, args);
4391
4391
  });
4392
- function flip(func) {
4392
+ function flip2(func) {
4393
4393
  return createWrap(func, WRAP_FLIP_FLAG);
4394
4394
  }
4395
4395
  function memoize(func, resolver) {
@@ -5513,7 +5513,7 @@ var lodash = { exports: {} };
5513
5513
  lodash2.flatten = flatten;
5514
5514
  lodash2.flattenDeep = flattenDeep;
5515
5515
  lodash2.flattenDepth = flattenDepth;
5516
- lodash2.flip = flip;
5516
+ lodash2.flip = flip2;
5517
5517
  lodash2.flow = flow;
5518
5518
  lodash2.flowRight = flowRight;
5519
5519
  lodash2.fromPairs = fromPairs;
@@ -6219,18 +6219,12 @@ const flexibleOverlayProps = {
6219
6219
  clickEventBubble: {
6220
6220
  type: Boolean,
6221
6221
  default: false
6222
+ },
6223
+ fitOriginWidth: {
6224
+ type: Boolean,
6225
+ default: false
6222
6226
  }
6223
6227
  };
6224
- function getScrollParent(element) {
6225
- const overflowRegex = /(auto|scroll|hidden)/;
6226
- for (let parent = element; parent = parent.parentElement; parent.parentElement !== document.body) {
6227
- const style = window.getComputedStyle(parent);
6228
- if (overflowRegex.test(style.overflow + style.overflowX + style.overflowY)) {
6229
- return parent;
6230
- }
6231
- }
6232
- return window;
6233
- }
6234
6228
  function adjustArrowPosition(isArrowCenter, point, placement, originRect) {
6235
6229
  let { x, y } = point;
6236
6230
  if (!isArrowCenter) {
@@ -6251,9 +6245,18 @@ function adjustArrowPosition(isArrowCenter, point, placement, originRect) {
6251
6245
  return { x, y };
6252
6246
  }
6253
6247
  function useOverlay(props, emit) {
6248
+ const { fitOriginWidth, position, showArrow } = toRefs(props);
6254
6249
  const overlayRef = ref();
6255
6250
  const arrowRef = ref();
6256
- let originParent = null;
6251
+ const overlayWidth = ref(0);
6252
+ let originObserver;
6253
+ const styles = computed(() => {
6254
+ if (fitOriginWidth.value) {
6255
+ return { width: overlayWidth.value + "px" };
6256
+ } else {
6257
+ return {};
6258
+ }
6259
+ });
6257
6260
  const updateArrowPosition = (arrowEl, placement, point, overlayEl) => {
6258
6261
  const { x, y } = adjustArrowPosition(props.isArrowCenter, point, placement, overlayEl.getBoundingClientRect());
6259
6262
  const staticSide = {
@@ -6274,54 +6277,67 @@ function useOverlay(props, emit) {
6274
6277
  const hostEl = props.origin;
6275
6278
  const overlayEl = unref(overlayRef.value);
6276
6279
  const arrowEl = unref(arrowRef.value);
6277
- const middleware = [
6278
- offset(props.offset),
6279
- autoPlacement({
6280
- alignment: props.align,
6281
- allowedPlacements: props.position
6282
- })
6283
- ];
6284
- props.showArrow && middleware.push(arrow({ element: arrowEl }));
6285
- props.shiftOffset !== void 0 && middleware.push(shift());
6286
- if (!overlayEl) {
6287
- return;
6280
+ const [mainPosition, ...fallbackPosition] = position.value;
6281
+ const middleware = [offset(props.offset)];
6282
+ middleware.push(fallbackPosition.length ? flip({ fallbackPlacements: fallbackPosition }) : flip());
6283
+ if (showArrow.value) {
6284
+ middleware.push(arrow({ element: arrowRef.value }));
6288
6285
  }
6289
6286
  const { x, y, placement, middlewareData } = await computePosition(hostEl, overlayEl, {
6290
6287
  strategy: "fixed",
6288
+ placement: mainPosition,
6291
6289
  middleware
6292
6290
  });
6293
6291
  let applyX = x;
6294
6292
  let applyY = y;
6295
- if (props.shiftOffset !== void 0) {
6296
- const { x: shiftX, y: shiftY } = middlewareData.shift;
6297
- shiftX < 0 && (applyX -= props.shiftOffset);
6298
- shiftX > 0 && (applyX += props.shiftOffset);
6299
- shiftY < 0 && (applyY -= props.shiftOffset);
6300
- shiftY > 0 && (applyY += props.shiftOffset);
6301
- }
6302
6293
  emit("positionChange", placement);
6303
6294
  Object.assign(overlayEl.style, { top: `${applyY}px`, left: `${applyX}px` });
6304
6295
  props.showArrow && updateArrowPosition(arrowEl, placement, middlewareData.arrow, overlayEl);
6305
6296
  };
6297
+ const scrollCallback = (e) => {
6298
+ var _a, _b;
6299
+ const scrollElement = e.target;
6300
+ if (scrollElement == null ? void 0 : scrollElement.contains((_b = (_a = props.origin) == null ? void 0 : _a.$el) != null ? _b : props.origin)) {
6301
+ updatePosition();
6302
+ }
6303
+ };
6304
+ const updateWidth = (originEl) => {
6305
+ overlayWidth.value = originEl.getBoundingClientRect().width;
6306
+ updatePosition();
6307
+ };
6308
+ const observeOrigin = () => {
6309
+ var _a, _b;
6310
+ if (fitOriginWidth.value && typeof window !== "undefined") {
6311
+ const originEl = (_b = (_a = props.origin) == null ? void 0 : _a.$el) != null ? _b : props.origin;
6312
+ if (originEl) {
6313
+ originObserver = new window.ResizeObserver(() => updateWidth(originEl));
6314
+ originObserver.observe(originEl);
6315
+ }
6316
+ }
6317
+ };
6318
+ const unobserveOrigin = () => {
6319
+ var _a, _b;
6320
+ const originEl = (_b = (_a = props.origin) == null ? void 0 : _a.$el) != null ? _b : props.origin;
6321
+ originEl && (originObserver == null ? void 0 : originObserver.unobserve(originEl));
6322
+ };
6306
6323
  watch(() => props.modelValue, () => {
6307
6324
  if (props.modelValue && props.origin) {
6308
- originParent = getScrollParent(props.origin);
6309
6325
  nextTick(updatePosition);
6310
- originParent == null ? void 0 : originParent.addEventListener("scroll", updatePosition);
6311
- originParent !== window && window.addEventListener("scroll", updatePosition);
6326
+ window.addEventListener("scroll", scrollCallback, true);
6312
6327
  window.addEventListener("resize", updatePosition);
6328
+ observeOrigin();
6313
6329
  } else {
6314
- originParent == null ? void 0 : originParent.removeEventListener("scroll", updatePosition);
6315
- originParent !== window && window.removeEventListener("scroll", updatePosition);
6330
+ window.removeEventListener("scroll", scrollCallback, true);
6316
6331
  window.removeEventListener("resize", updatePosition);
6332
+ unobserveOrigin();
6317
6333
  }
6318
6334
  });
6319
6335
  onUnmounted(() => {
6320
- originParent == null ? void 0 : originParent.removeEventListener("scroll", updatePosition);
6321
- originParent !== window && window.removeEventListener("scroll", updatePosition);
6336
+ window.removeEventListener("scroll", scrollCallback, true);
6322
6337
  window.removeEventListener("resize", updatePosition);
6338
+ unobserveOrigin();
6323
6339
  });
6324
- return { arrowRef, overlayRef, updatePosition };
6340
+ return { arrowRef, overlayRef, styles, updatePosition };
6325
6341
  }
6326
6342
  var flexibleOverlay = "";
6327
6343
  const FlexibleOverlay = defineComponent({
@@ -6342,6 +6358,7 @@ const FlexibleOverlay = defineComponent({
6342
6358
  const {
6343
6359
  arrowRef,
6344
6360
  overlayRef,
6361
+ styles,
6345
6362
  updatePosition
6346
6363
  } = useOverlay(props, emit);
6347
6364
  expose({
@@ -6351,7 +6368,8 @@ const FlexibleOverlay = defineComponent({
6351
6368
  var _a;
6352
6369
  return props.modelValue && createVNode("div", mergeProps({
6353
6370
  "ref": overlayRef,
6354
- "class": ns2.b()
6371
+ "class": ns2.b(),
6372
+ "style": styles.value
6355
6373
  }, attrs, {
6356
6374
  "onClick": withModifiers(() => ({}), [clickEventBubble.value ? "" : "stop"]),
6357
6375
  "onPointerup": withModifiers(() => ({}), ["stop"])