vue-devui 1.6.15 → 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 +41 -4
  2. package/auto-complete/index.umd.js +12 -12
  3. package/breadcrumb/index.es.js +40 -3
  4. package/breadcrumb/index.umd.js +1 -1
  5. package/category-search/index.es.js +74 -6
  6. package/category-search/index.umd.js +21 -21
  7. package/checkbox/index.es.js +41 -4
  8. package/checkbox/index.umd.js +16 -16
  9. package/code-review/index.es.js +41 -4
  10. package/code-review/index.umd.js +17 -17
  11. package/data-grid/index.es.js +41 -4
  12. package/data-grid/index.umd.js +14 -14
  13. package/date-picker-pro/index.es.js +41 -4
  14. package/date-picker-pro/index.umd.js +8 -8
  15. package/dropdown/index.es.js +40 -3
  16. package/dropdown/index.umd.js +1 -1
  17. package/editable-select/index.es.js +47 -5
  18. package/editable-select/index.umd.js +15 -15
  19. package/editor-md/index.es.js +50 -6
  20. package/editor-md/index.umd.js +26 -26
  21. package/form/index.es.js +41 -4
  22. package/form/index.umd.js +14 -14
  23. package/input/index.es.js +40 -3
  24. package/input/index.umd.js +19 -19
  25. package/input-number/index.es.js +41 -4
  26. package/input-number/index.umd.js +18 -18
  27. package/mention/index.es.js +41 -4
  28. package/mention/index.umd.js +19 -19
  29. package/message/index.es.js +13 -13
  30. package/message/index.umd.js +1 -1
  31. package/modal/index.es.js +40 -3
  32. package/modal/index.umd.js +2 -2
  33. package/overlay/index.es.js +41 -4
  34. package/overlay/index.umd.js +1 -1
  35. package/package.json +2 -1
  36. package/pagination/index.es.js +58 -21
  37. package/pagination/index.umd.js +17 -17
  38. package/pagination/style.css +1 -1
  39. package/popover/index.es.js +41 -4
  40. package/popover/index.umd.js +9 -9
  41. package/radio/index.es.js +41 -4
  42. package/radio/index.umd.js +17 -17
  43. package/search/index.es.js +41 -4
  44. package/search/index.umd.js +17 -17
  45. package/select/index.es.js +58 -21
  46. package/select/index.umd.js +19 -19
  47. package/select/style.css +1 -1
  48. package/splitter/index.es.js +41 -4
  49. package/splitter/index.umd.js +15 -15
  50. package/style.css +1 -1
  51. package/switch/index.es.js +41 -4
  52. package/switch/index.umd.js +14 -14
  53. package/table/index.es.js +40 -3
  54. package/table/index.umd.js +15 -15
  55. package/textarea/index.es.js +41 -4
  56. package/textarea/index.umd.js +16 -16
  57. package/time-picker/index.es.js +40 -3
  58. package/time-picker/index.umd.js +15 -15
  59. package/time-select/index.es.js +58 -21
  60. package/time-select/index.umd.js +17 -17
  61. package/time-select/style.css +1 -1
  62. package/tooltip/index.es.js +41 -4
  63. package/tooltip/index.umd.js +12 -12
  64. package/tree/index.es.js +40 -3
  65. package/tree/index.umd.js +10 -10
  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 +121 -41
  75. package/vue-devui.umd.js +74 -74
@@ -33,7 +33,7 @@ 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";
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
37
  import { offset, flip, arrow, computePosition } from "@floating-ui/dom";
38
38
  import "clipboard";
39
39
  import { onClickOutside } from "@vueuse/core";
@@ -178,6 +178,10 @@ 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
187
  function adjustArrowPosition(isArrowCenter, point, placement, originRect) {
@@ -200,9 +204,18 @@ function adjustArrowPosition(isArrowCenter, point, placement, originRect) {
200
204
  return { x, y };
201
205
  }
202
206
  function useOverlay(props, emit) {
203
- const { position, showArrow } = toRefs(props);
207
+ const { fitOriginWidth, position, showArrow } = toRefs(props);
204
208
  const overlayRef = ref();
205
209
  const arrowRef = ref();
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
+ });
206
219
  const updateArrowPosition = (arrowEl, placement, point, overlayEl) => {
207
220
  const { x, y } = adjustArrowPosition(props.isArrowCenter, point, placement, overlayEl.getBoundingClientRect());
208
221
  const staticSide = {
@@ -247,21 +260,43 @@ function useOverlay(props, emit) {
247
260
  updatePosition();
248
261
  }
249
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
+ };
250
282
  watch(() => props.modelValue, () => {
251
283
  if (props.modelValue && props.origin) {
252
284
  nextTick(updatePosition);
253
285
  window.addEventListener("scroll", scrollCallback, true);
254
286
  window.addEventListener("resize", updatePosition);
287
+ observeOrigin();
255
288
  } else {
256
289
  window.removeEventListener("scroll", scrollCallback, true);
257
290
  window.removeEventListener("resize", updatePosition);
291
+ unobserveOrigin();
258
292
  }
259
293
  });
260
294
  onUnmounted(() => {
261
295
  window.removeEventListener("scroll", scrollCallback, true);
262
296
  window.removeEventListener("resize", updatePosition);
297
+ unobserveOrigin();
263
298
  });
264
- return { arrowRef, overlayRef, updatePosition };
299
+ return { arrowRef, overlayRef, styles, updatePosition };
265
300
  }
266
301
  var flexibleOverlay = "";
267
302
  const FlexibleOverlay = defineComponent({
@@ -282,6 +317,7 @@ const FlexibleOverlay = defineComponent({
282
317
  const {
283
318
  arrowRef,
284
319
  overlayRef,
320
+ styles,
285
321
  updatePosition
286
322
  } = useOverlay(props, emit);
287
323
  expose({
@@ -291,7 +327,8 @@ const FlexibleOverlay = defineComponent({
291
327
  var _a;
292
328
  return props.modelValue && createVNode("div", mergeProps({
293
329
  "ref": overlayRef,
294
- "class": ns2.b()
330
+ "class": ns2.b(),
331
+ "style": styles.value
295
332
  }, attrs, {
296
333
  "onClick": withModifiers(() => ({}), [clickEventBubble.value ? "" : "stop"]),
297
334
  "onPointerup": withModifiers(() => ({}), ["stop"])