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,8 +33,8 @@ var __publicField = (obj, key, value) => {
33
33
  __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
34
34
  return value;
35
35
  };
36
- import { watch, onUnmounted, defineComponent, toRefs, createVNode, Transition, mergeProps, ref, unref, nextTick, withModifiers, provide, reactive, Comment, Text, h, Fragment, inject, withDirectives, cloneVNode, computed, onMounted, Teleport, createTextVNode, onBeforeUnmount, toRef, vShow, resolveDynamicComponent, render, resolveComponent, getCurrentInstance, isVNode, onBeforeMount } from "vue";
37
- import { offset, autoPlacement, arrow, shift, computePosition } from "@floating-ui/dom";
36
+ import { watch, onUnmounted, defineComponent, toRefs, createVNode, Transition, mergeProps, ref, computed, unref, nextTick, withModifiers, provide, reactive, Comment, Text, h, Fragment, inject, withDirectives, cloneVNode, onMounted, Teleport, createTextVNode, onBeforeUnmount, toRef, vShow, resolveDynamicComponent, render, resolveComponent, getCurrentInstance, isVNode, onBeforeMount } from "vue";
37
+ import { offset, flip, arrow, computePosition } from "@floating-ui/dom";
38
38
  import "clipboard";
39
39
  import { onClickOutside } from "@vueuse/core";
40
40
  function createBem$1(namespace, element, modifier) {
@@ -178,18 +178,12 @@ const flexibleOverlayProps = {
178
178
  clickEventBubble: {
179
179
  type: Boolean,
180
180
  default: false
181
+ },
182
+ fitOriginWidth: {
183
+ type: Boolean,
184
+ default: false
181
185
  }
182
186
  };
183
- function getScrollParent(element) {
184
- const overflowRegex = /(auto|scroll|hidden)/;
185
- for (let parent = element; parent = parent.parentElement; parent.parentElement !== document.body) {
186
- const style = window.getComputedStyle(parent);
187
- if (overflowRegex.test(style.overflow + style.overflowX + style.overflowY)) {
188
- return parent;
189
- }
190
- }
191
- return window;
192
- }
193
187
  function adjustArrowPosition(isArrowCenter, point, placement, originRect) {
194
188
  let { x, y } = point;
195
189
  if (!isArrowCenter) {
@@ -210,9 +204,18 @@ function adjustArrowPosition(isArrowCenter, point, placement, originRect) {
210
204
  return { x, y };
211
205
  }
212
206
  function useOverlay(props, emit) {
207
+ const { fitOriginWidth, position, showArrow } = toRefs(props);
213
208
  const overlayRef = ref();
214
209
  const arrowRef = ref();
215
- let originParent = null;
210
+ const overlayWidth = ref(0);
211
+ let originObserver;
212
+ const styles = computed(() => {
213
+ if (fitOriginWidth.value) {
214
+ return { width: overlayWidth.value + "px" };
215
+ } else {
216
+ return {};
217
+ }
218
+ });
216
219
  const updateArrowPosition = (arrowEl, placement, point, overlayEl) => {
217
220
  const { x, y } = adjustArrowPosition(props.isArrowCenter, point, placement, overlayEl.getBoundingClientRect());
218
221
  const staticSide = {
@@ -233,54 +236,67 @@ function useOverlay(props, emit) {
233
236
  const hostEl = props.origin;
234
237
  const overlayEl = unref(overlayRef.value);
235
238
  const arrowEl = unref(arrowRef.value);
236
- const middleware = [
237
- offset(props.offset),
238
- autoPlacement({
239
- alignment: props.align,
240
- allowedPlacements: props.position
241
- })
242
- ];
243
- props.showArrow && middleware.push(arrow({ element: arrowEl }));
244
- props.shiftOffset !== void 0 && middleware.push(shift());
245
- if (!overlayEl) {
246
- return;
239
+ const [mainPosition, ...fallbackPosition] = position.value;
240
+ const middleware = [offset(props.offset)];
241
+ middleware.push(fallbackPosition.length ? flip({ fallbackPlacements: fallbackPosition }) : flip());
242
+ if (showArrow.value) {
243
+ middleware.push(arrow({ element: arrowRef.value }));
247
244
  }
248
245
  const { x, y, placement, middlewareData } = await computePosition(hostEl, overlayEl, {
249
246
  strategy: "fixed",
247
+ placement: mainPosition,
250
248
  middleware
251
249
  });
252
250
  let applyX = x;
253
251
  let applyY = y;
254
- if (props.shiftOffset !== void 0) {
255
- const { x: shiftX, y: shiftY } = middlewareData.shift;
256
- shiftX < 0 && (applyX -= props.shiftOffset);
257
- shiftX > 0 && (applyX += props.shiftOffset);
258
- shiftY < 0 && (applyY -= props.shiftOffset);
259
- shiftY > 0 && (applyY += props.shiftOffset);
260
- }
261
252
  emit("positionChange", placement);
262
253
  Object.assign(overlayEl.style, { top: `${applyY}px`, left: `${applyX}px` });
263
254
  props.showArrow && updateArrowPosition(arrowEl, placement, middlewareData.arrow, overlayEl);
264
255
  };
256
+ const scrollCallback = (e) => {
257
+ var _a, _b;
258
+ const scrollElement = e.target;
259
+ if (scrollElement == null ? void 0 : scrollElement.contains((_b = (_a = props.origin) == null ? void 0 : _a.$el) != null ? _b : props.origin)) {
260
+ updatePosition();
261
+ }
262
+ };
263
+ const updateWidth = (originEl) => {
264
+ overlayWidth.value = originEl.getBoundingClientRect().width;
265
+ updatePosition();
266
+ };
267
+ const observeOrigin = () => {
268
+ var _a, _b;
269
+ if (fitOriginWidth.value && typeof window !== "undefined") {
270
+ const originEl = (_b = (_a = props.origin) == null ? void 0 : _a.$el) != null ? _b : props.origin;
271
+ if (originEl) {
272
+ originObserver = new window.ResizeObserver(() => updateWidth(originEl));
273
+ originObserver.observe(originEl);
274
+ }
275
+ }
276
+ };
277
+ const unobserveOrigin = () => {
278
+ var _a, _b;
279
+ const originEl = (_b = (_a = props.origin) == null ? void 0 : _a.$el) != null ? _b : props.origin;
280
+ originEl && (originObserver == null ? void 0 : originObserver.unobserve(originEl));
281
+ };
265
282
  watch(() => props.modelValue, () => {
266
283
  if (props.modelValue && props.origin) {
267
- originParent = getScrollParent(props.origin);
268
284
  nextTick(updatePosition);
269
- originParent == null ? void 0 : originParent.addEventListener("scroll", updatePosition);
270
- originParent !== window && window.addEventListener("scroll", updatePosition);
285
+ window.addEventListener("scroll", scrollCallback, true);
271
286
  window.addEventListener("resize", updatePosition);
287
+ observeOrigin();
272
288
  } else {
273
- originParent == null ? void 0 : originParent.removeEventListener("scroll", updatePosition);
274
- originParent !== window && window.removeEventListener("scroll", updatePosition);
289
+ window.removeEventListener("scroll", scrollCallback, true);
275
290
  window.removeEventListener("resize", updatePosition);
291
+ unobserveOrigin();
276
292
  }
277
293
  });
278
294
  onUnmounted(() => {
279
- originParent == null ? void 0 : originParent.removeEventListener("scroll", updatePosition);
280
- originParent !== window && window.removeEventListener("scroll", updatePosition);
295
+ window.removeEventListener("scroll", scrollCallback, true);
281
296
  window.removeEventListener("resize", updatePosition);
297
+ unobserveOrigin();
282
298
  });
283
- return { arrowRef, overlayRef, updatePosition };
299
+ return { arrowRef, overlayRef, styles, updatePosition };
284
300
  }
285
301
  var flexibleOverlay = "";
286
302
  const FlexibleOverlay = defineComponent({
@@ -301,6 +317,7 @@ const FlexibleOverlay = defineComponent({
301
317
  const {
302
318
  arrowRef,
303
319
  overlayRef,
320
+ styles,
304
321
  updatePosition
305
322
  } = useOverlay(props, emit);
306
323
  expose({
@@ -310,7 +327,8 @@ const FlexibleOverlay = defineComponent({
310
327
  var _a;
311
328
  return props.modelValue && createVNode("div", mergeProps({
312
329
  "ref": overlayRef,
313
- "class": ns2.b()
330
+ "class": ns2.b(),
331
+ "style": styles.value
314
332
  }, attrs, {
315
333
  "onClick": withModifiers(() => ({}), [clickEventBubble.value ? "" : "stop"]),
316
334
  "onPointerup": withModifiers(() => ({}), ["stop"])
@@ -4381,7 +4399,7 @@ var lodash = { exports: {} };
4381
4399
  var delay = baseRest(function(func, wait, args) {
4382
4400
  return baseDelay(func, toNumber(wait) || 0, args);
4383
4401
  });
4384
- function flip(func) {
4402
+ function flip2(func) {
4385
4403
  return createWrap(func, WRAP_FLIP_FLAG);
4386
4404
  }
4387
4405
  function memoize(func, resolver) {
@@ -5505,7 +5523,7 @@ var lodash = { exports: {} };
5505
5523
  lodash2.flatten = flatten;
5506
5524
  lodash2.flattenDeep = flattenDeep;
5507
5525
  lodash2.flattenDepth = flattenDepth;
5508
- lodash2.flip = flip;
5526
+ lodash2.flip = flip2;
5509
5527
  lodash2.flow = flow;
5510
5528
  lodash2.flowRight = flowRight;
5511
5529
  lodash2.fromPairs = fromPairs;