rappel-ui 1.0.40 → 1.0.42

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 (51) hide show
  1. package/cjs/components/ellipsis-menu/index.d.ts +65 -0
  2. package/cjs/components/ellipsis-menu/index.js +1 -0
  3. package/cjs/components/ellipsis-menu/src/ellipsis-menu.js +1 -0
  4. package/cjs/components/ellipsis-menu/src/ellipsis-menu.vue.d.ts +33 -0
  5. package/cjs/components/ellipsis-menu/src/ellipsis-menu.vue_vue_type_script_setup_true_lang.js +1 -0
  6. package/cjs/components/ellipsis-menu/src/types.d.ts +13 -0
  7. package/cjs/components/ellipsis-menu/style/css.d.ts +0 -0
  8. package/cjs/components/ellipsis-menu/style/css.js +2 -0
  9. package/cjs/components/ellipsis-menu/style/index.d.ts +0 -0
  10. package/cjs/components/ellipsis-menu/style/index.js +2 -0
  11. package/cjs/components/index.d.ts +1 -0
  12. package/cjs/components/index.js +1 -1
  13. package/cjs/components/menu/src/loop.vue_vue_type_script_setup_true_lang.js +1 -1
  14. package/cjs/components/menu/src/menu-item.vue_vue_type_script_setup_true_lang.js +1 -1
  15. package/cjs/composables/index.d.ts +1 -0
  16. package/cjs/composables/index.js +1 -1
  17. package/cjs/composables/use-resizable/index.d.ts +4 -0
  18. package/cjs/composables/use-resizable/index.js +1 -0
  19. package/cjs/directives/vResizable.d.ts +30 -2
  20. package/cjs/directives/vResizable.js +11 -8
  21. package/cjs/index.d.ts +61 -0
  22. package/cjs/index.js +1 -1
  23. package/dist/index.css +1 -1
  24. package/dist/index.umd.js +17 -14
  25. package/es/components/ellipsis-menu/index.d.ts +65 -0
  26. package/es/components/ellipsis-menu/index.mjs +7 -0
  27. package/es/components/ellipsis-menu/src/ellipsis-menu.mjs +5 -0
  28. package/es/components/ellipsis-menu/src/ellipsis-menu.vue.d.ts +33 -0
  29. package/es/components/ellipsis-menu/src/ellipsis-menu.vue_vue_type_script_setup_true_lang.mjs +133 -0
  30. package/es/components/ellipsis-menu/src/types.d.ts +13 -0
  31. package/es/components/ellipsis-menu/style/css.d.ts +0 -0
  32. package/es/components/ellipsis-menu/style/css.mjs +2 -0
  33. package/es/components/ellipsis-menu/style/index.d.ts +0 -0
  34. package/es/components/ellipsis-menu/style/index.mjs +2 -0
  35. package/es/components/index.d.ts +1 -0
  36. package/es/components/index.mjs +4 -2
  37. package/es/components/menu/src/loop.vue_vue_type_script_setup_true_lang.mjs +65 -68
  38. package/es/components/menu/src/menu-item.vue_vue_type_script_setup_true_lang.mjs +74 -74
  39. package/es/composables/index.d.ts +1 -0
  40. package/es/composables/index.mjs +2 -1
  41. package/es/composables/use-resizable/index.d.ts +4 -0
  42. package/es/composables/use-resizable/index.mjs +8 -0
  43. package/es/directives/vResizable.d.ts +30 -2
  44. package/es/directives/vResizable.mjs +101 -68
  45. package/es/index.d.ts +61 -0
  46. package/es/index.mjs +72 -70
  47. package/package.json +1 -1
  48. package/theme-chalk/index.css +1 -1
  49. package/theme-chalk/re-ellipsis-menu.css +1 -0
  50. package/theme-chalk/src/ellipsis-menu.scss +39 -0
  51. package/theme-chalk/src/index.scss +1 -0
@@ -6,11 +6,11 @@ import "../../../composables/index.mjs";
6
6
  import { ReTooltip as te } from "../../tooltip/index.mjs";
7
7
  import { _menuProvideKey as n } from "./constants.mjs";
8
8
  import r from "./loop.mjs";
9
- import { computed as i, createBlock as a, createCommentVNode as o, createElementBlock as s, createElementVNode as c, createTextVNode as l, createVNode as ne, defineComponent as u, inject as d, normalizeClass as f, normalizeStyle as p, onMounted as re, openBlock as m, ref as ie, renderSlot as h, resolveDynamicComponent as g, toDisplayString as _, unref as v, useAttrs as ae, useSlots as oe, useTemplateRef as se, withCtx as y } from "vue";
10
- import { computedAsync as b } from "@vueuse/core";
11
- import { ArrowDownward as x, getAsyncIcon as S } from "@rappel-ui/svg-icons";
9
+ import { computed as i, createBlock as a, createCommentVNode as o, createElementBlock as s, createElementVNode as c, createTextVNode as l, createVNode as ne, defineComponent as u, inject as re, normalizeClass as d, normalizeStyle as f, onMounted as ie, openBlock as p, ref as ae, renderSlot as m, resolveDynamicComponent as h, toDisplayString as g, unref as _, useAttrs as oe, useSlots as se, useTemplateRef as ce, withCtx as v } from "vue";
10
+ import { computedAsync as y } from "@vueuse/core";
11
+ import { ArrowDownward as b, getAsyncIcon as x } from "@rappel-ui/svg-icons";
12
12
  //#region packages/components/menu/src/menu-item.vue?vue&type=script&setup=true&lang.ts
13
- var ce = ["depth"], C = u({
13
+ var le = ["depth"], S = u({
14
14
  name: "ReMenuItem",
15
15
  __name: "menu-item",
16
16
  props: {
@@ -28,16 +28,16 @@ var ce = ["depth"], C = u({
28
28
  icon: { default: "" },
29
29
  subIcon: {
30
30
  type: [String, Boolean],
31
- default: () => x
31
+ default: () => b
32
32
  },
33
33
  depth: { default: () => void 0 }
34
34
  },
35
- setup(u, { expose: x }) {
36
- let { n: C, nm: w, ns: T, is: E, has: le } = t("menu"), D = i(() => {
35
+ setup(u, { expose: b }) {
36
+ let { n: S, nm: C, ns: w, is: T, has: ue } = t("menu"), E = i(() => {
37
37
  var e, t;
38
38
  return (e = u.hasChildren) == null ? ((t = u.children) == null ? void 0 : t.length) > 0 : e;
39
- }), O = i(() => !(D.value && !u.disabled)), k = ae(), A = ie(!1), { currentItem: ue, theme: j, collapse: de, cssDuration: M, depth: fe, offset: pe, submenuOffset: me, closeOnSelect: N, direction: P, selectedKey: F, labelPadding: I, trigger: L, topSubMenusKeys: R, submenuClosers: z, select: B, showArrow: V, placement: H, registerDescendant: U } = d(n), he = (e) => {
40
- e !== u.value || D.value || u.disabled || B(u.value, {
39
+ }), D = i(() => !(E.value && !u.disabled)), O = oe(), k = ae(!1), { currentItem: de, theme: A, collapse: fe, cssDuration: j, depth: pe, offset: me, submenuOffset: he, closeOnSelect: M, direction: N, selectedKey: P, labelPadding: F, trigger: I, topSubMenusKeys: L, submenuClosers: R, select: z, showArrow: B, placement: V, registerDescendant: H } = re(n), ge = (e) => {
40
+ e !== u.value || E.value || u.disabled || z(u.value, {
41
41
  label: u.label,
42
42
  disabled: u.disabled,
43
43
  value: u.value,
@@ -47,8 +47,8 @@ var ce = ["depth"], C = u({
47
47
  subIcon: u.subIcon,
48
48
  depth: X.value
49
49
  }, !1);
50
- }, ge = (e) => {
51
- e.stopPropagation(), !(D.value || u.disabled || X.value === -1) && (B(u.value, {
50
+ }, _e = (e) => {
51
+ e.stopPropagation(), !(E.value || u.disabled || X.value === -1) && (z(u.value, {
52
52
  label: u.label,
53
53
  disabled: u.disabled,
54
54
  value: u.value,
@@ -57,49 +57,49 @@ var ce = ["depth"], C = u({
57
57
  icon: u.icon,
58
58
  subIcon: u.subIcon,
59
59
  depth: X.value
60
- }), N != null && N.value && (z == null || z.forEach((e) => {
60
+ }), M != null && M.value && (R == null || R.forEach((e) => {
61
61
  var t;
62
62
  return e == null || (t = e.close) == null ? void 0 : t.call(e);
63
63
  })));
64
- }, W = b(async () => await S(u.icon)), G = b(async () => await S(u.subIcon || "")), _e = i(() => {
64
+ }, U = y(async () => await x(u.icon)), W = y(async () => await x(u.subIcon || "")), ve = i(() => {
65
65
  var e;
66
- return ((e = ue.value) == null ? void 0 : e.value) === u.value;
67
- }), { currentTheme: K } = ee(j.value, O.value), q = i(() => [
68
- C(),
69
- w("tooltip"),
70
- E(K.value, !!K.value)
71
- ]), ve = i(() => X.value === 0 && !k["is-more"] || X.value === -1 ? pe.value : me.value), J = i(() => X.value === 0 && !k["is-more"] || X.value === -1), ye = oe(), be = i(() => !ye["item-submenu"] && !D.value ? "hover" : L.value), Y = i(() => ({ "--menu-transition-duration": `${M.value}ms` })), xe = i(() => [{ padding: `0 ${e(I.value)}` }]), Se = i(() => [
72
- T("item"),
73
- E("disabled", u.disabled),
74
- le("children", D.value),
75
- E("selected", _e.value)
66
+ return ((e = de.value) == null ? void 0 : e.value) === u.value;
67
+ }), { currentTheme: G } = ee(A.value, D.value), K = i(() => [
68
+ S(),
69
+ C("tooltip"),
70
+ T(G.value, !!G.value)
71
+ ]), ye = i(() => X.value === 0 && !(O != null && O["is-more"]) || X.value === -1 ? me.value : he.value), q = i(() => X.value === 0 && !(O != null && O["is-more"]) || X.value === -1), J = se(), be = i(() => !(J != null && J["item-submenu"]) && !E.value ? "hover" : I.value), Y = i(() => ({ "--menu-transition-duration": `${j.value}ms` })), xe = i(() => [{ padding: `0 ${e(F.value)}` }]), Se = i(() => [
72
+ w("item"),
73
+ T("disabled", u.disabled),
74
+ ue("children", E.value),
75
+ T("selected", ve.value)
76
76
  ]), X = i(() => {
77
77
  var e;
78
- return (e = u.depth) == null ? fe.value : e;
79
- }), Z = i(typeof H == "function" ? () => H(P.value, X.value, D.value) : () => P.value === "vertical" ? X.value === 0 ? "right" : "right-start" : X.value === -1 ? "bottom-end" : X.value === 0 && !k["is-more"] ? "bottom" : "right-start"), Ce = i(() => P.value === "vertical" ? !de.value || !D.value && X.value !== 0 || D.value && X.value !== 0 && u.disabled : u.disabled || !D.value), Q = i(typeof V == "function" ? () => V(X.value) : () => X.value === 0 && !k["is-more"]);
80
- if (N.value && !u.disabled) {
78
+ return (e = u.depth) == null ? pe.value : e;
79
+ }), Z = i(typeof V == "function" ? () => V(N.value, X.value, E.value) : () => N.value === "vertical" ? X.value === 0 ? "right" : "right-start" : X.value === -1 ? "bottom-end" : X.value === 0 && !(O != null && O["is-more"]) ? "bottom" : "right-start"), Ce = i(() => N.value === "vertical" ? !fe.value || !E.value && X.value !== 0 || E.value && X.value !== 0 && u.disabled : u.disabled || !E.value), Q = i(typeof B == "function" ? () => B(X.value) : () => X.value === 0 && !(O != null && O["is-more"]));
80
+ if (M.value && !u.disabled) {
81
81
  let e = {
82
82
  value: u.value,
83
83
  close: () => {
84
- A.value = !1;
84
+ k.value = !1;
85
85
  }
86
86
  };
87
- z.some((e) => e.value === u.value) || z.push(e);
87
+ R.some((e) => e.value === u.value) || R.push(e);
88
88
  }
89
89
  let we = () => {
90
- if (X.value === 0 && D.value) {
90
+ if (X.value === 0 && E.value) {
91
91
  var e;
92
- (e = R.value) == null || e.push(u.value);
92
+ (e = L.value) == null || e.push(u.value);
93
93
  }
94
- }, $ = se("itemRef");
95
- return re(() => {
96
- U == null || U(u.value), we(), he(F == null ? void 0 : F.value);
97
- }), x({
94
+ }, $ = ce("itemRef");
95
+ return ie(() => {
96
+ H == null || H(u.value), we(), ge(P == null ? void 0 : P.value);
97
+ }), b({
98
98
  itemRef: $,
99
- hasChild: D,
99
+ hasChild: E,
100
100
  showArrow: Q,
101
101
  placement: Z,
102
- visible: A,
102
+ visible: k,
103
103
  value: u.value,
104
104
  label: u.label,
105
105
  disabled: u.disabled,
@@ -107,46 +107,46 @@ var ce = ["depth"], C = u({
107
107
  subIcon: u.subIcon,
108
108
  depth: X.value,
109
109
  children: u.children
110
- }), (e, t) => (m(), s("li", {
110
+ }), (e, t) => (p(), s("li", {
111
111
  ref_key: "itemRef",
112
112
  ref: $,
113
- class: f(Se.value),
113
+ class: d(Se.value),
114
114
  depth: X.value,
115
- onClick: ge
116
- }, [ne(v(te), {
117
- visible: A.value,
118
- "onUpdate:visible": t[0] || (t[0] = (e) => A.value = e),
119
- "floating-class": [D.value && !u.disabled ? v(w)("tooltip") : v(w)("cover"), v(E)("disabled", u.disabled)],
115
+ onClick: _e
116
+ }, [ne(_(te), {
117
+ visible: k.value,
118
+ "onUpdate:visible": t[0] || (t[0] = (e) => k.value = e),
119
+ "floating-class": [E.value && !u.disabled ? _(C)("tooltip") : _(C)("cover"), _(T)("disabled", u.disabled)],
120
120
  disabled: Ce.value,
121
- teleported: J.value,
121
+ teleported: q.value,
122
122
  placement: Z.value,
123
123
  "show-arrow": Q.value,
124
- theme: v(j),
125
- "reverse-theme": O.value,
126
- "css-duration": v(M),
124
+ theme: _(A),
125
+ "reverse-theme": D.value,
126
+ "css-duration": _(j),
127
127
  transform: !1,
128
- offset: ve.value,
128
+ offset: ye.value,
129
129
  transition: "menu",
130
130
  trigger: be.value
131
131
  }, {
132
- content: y(() => {
132
+ content: v(() => {
133
133
  var t;
134
- return [(t = e.$slots) != null && t["item-submenu"] && !u.disabled ? (m(), a(r, {
134
+ return [(t = e.$slots) != null && t["item-submenu"] && !u.disabled ? (p(), a(r, {
135
135
  key: 0,
136
- class: f(q.value),
136
+ class: d(K.value),
137
137
  "is-more": e.$attrs["is-more"],
138
- style: p(Y.value)
138
+ style: f(Y.value)
139
139
  }, {
140
- default: y(() => [h(e.$slots, "item-submenu")]),
140
+ default: v(() => [m(e.$slots, "item-submenu")]),
141
141
  _: 3
142
142
  }, 8, [
143
143
  "class",
144
144
  "is-more",
145
145
  "style"
146
- ])) : D.value && !u.disabled ? (m(), a(r, {
146
+ ])) : E.value && !u.disabled ? (p(), a(r, {
147
147
  key: 1,
148
- class: f(q.value),
149
- style: p(Y.value),
148
+ class: d(K.value),
149
+ style: f(Y.value),
150
150
  "is-more": e.$attrs["is-more"],
151
151
  options: u.children
152
152
  }, null, 8, [
@@ -154,35 +154,35 @@ var ce = ["depth"], C = u({
154
154
  "style",
155
155
  "is-more",
156
156
  "options"
157
- ])) : h(e.$slots, "default", {}, () => [l(_(u.label), 1)], void 0, 2)];
157
+ ])) : m(e.$slots, "default", {}, () => [l(g(u.label), 1)], void 0, 2)];
158
158
  }),
159
- default: y(() => [c("div", {
160
- class: f([v(T)("label-wrap")]),
161
- style: p(xe.value),
159
+ default: v(() => [c("div", {
160
+ class: d([_(w)("label-wrap")]),
161
+ style: f(xe.value),
162
162
  tabindex: "0"
163
163
  }, [
164
- h(e.$slots, "icon", {}, () => [u.icon ? (m(), s("div", {
164
+ m(e.$slots, "icon", {}, () => [u.icon ? (p(), s("div", {
165
165
  key: 0,
166
- class: f([v(T)("icon")])
167
- }, [typeof v(W) == "string" ? (m(), s("i", {
166
+ class: d([_(w)("icon")])
167
+ }, [typeof _(U) == "string" ? (p(), s("i", {
168
168
  key: 0,
169
- class: f([v(W)]),
169
+ class: d([_(U)]),
170
170
  "aria-hidden": "true"
171
- }, null, 2)) : (m(), a(g(v(W)), {
171
+ }, null, 2)) : (p(), a(h(_(U)), {
172
172
  key: 1,
173
173
  "aria-hidden": "true"
174
174
  }))], 2)) : o("", !0)]),
175
- c("div", { class: f([v(T)("label")]) }, [h(e.$slots, "default", {}, () => [l(_(u.label), 1)])], 2),
176
- h(e.$slots, "sub-icon", {}, () => [u.subIcon && D.value ? (m(), s("div", {
175
+ c("div", { class: d([_(w)("label")]) }, [m(e.$slots, "default", {}, () => [l(g(u.label), 1)])], 2),
176
+ m(e.$slots, "sub-icon", {}, () => [u.subIcon && E.value ? (p(), s("div", {
177
177
  key: 0,
178
- class: f([v(T)("subicon")])
179
- }, [typeof v(G) == "string" ? (m(), s("i", {
178
+ class: d([_(w)("subicon")])
179
+ }, [typeof _(W) == "string" ? (p(), s("i", {
180
180
  key: 0,
181
- class: f([v(G), v(C)("svg-icon")]),
181
+ class: d([_(W), _(S)("svg-icon")]),
182
182
  "aria-hidden": "true"
183
- }, null, 2)) : (m(), a(g(v(G)), {
183
+ }, null, 2)) : (p(), a(h(_(W)), {
184
184
  key: 1,
185
- class: f([v(C)("svg-icon")]),
185
+ class: d([_(S)("svg-icon")]),
186
186
  "aria-hidden": "true"
187
187
  }, null, 8, ["class"]))], 2)) : o("", !0)])
188
188
  ], 6)]),
@@ -199,8 +199,8 @@ var ce = ["depth"], C = u({
199
199
  "css-duration",
200
200
  "offset",
201
201
  "trigger"
202
- ]), h(e.$slots, "submenu")], 10, ce));
202
+ ]), m(e.$slots, "submenu")], 10, le));
203
203
  }
204
204
  });
205
205
  //#endregion
206
- export { C as default };
206
+ export { S as default };
@@ -7,3 +7,4 @@ export * from './use-namespace';
7
7
  export * from './use-z-index';
8
8
  export * from './use-theme';
9
9
  export * from './use-slot-nodes';
10
+ export * from './use-resizable';
@@ -7,4 +7,5 @@ import { useNamespace as a } from "./use-namespace/index.mjs";
7
7
  import { useZIndex as o } from "./use-z-index/index.mjs";
8
8
  import { useTheme as s } from "./use-theme/index.mjs";
9
9
  import { useSlotFirstNode as c, useSlotNodes as l } from "./use-slot-nodes/index.mjs";
10
- export { t as useDateFormat, e as useDraggable, a as useNamespace, n as useOnceFn, c as useSlotFirstNode, l as useSlotNodes, s as useTheme, r as useTimeNodes, i as useWaterFallLayout, o as useZIndex };
10
+ import { useResizable as u } from "./use-resizable/index.mjs";
11
+ export { t as useDateFormat, e as useDraggable, a as useNamespace, n as useOnceFn, u as useResizable, c as useSlotFirstNode, l as useSlotNodes, s as useTheme, r as useTimeNodes, i as useWaterFallLayout, o as useZIndex };
@@ -0,0 +1,4 @@
1
+ import { ResizeOptions } from '../../directives';
2
+ export declare function useResizable(el: HTMLElement, options?: ResizeOptions): {
3
+ destroy: () => void;
4
+ };
@@ -0,0 +1,8 @@
1
+ import { applyResizable as e } from "../../directives/vResizable.mjs";
2
+ import "../../directives/index.mjs";
3
+ //#region packages/composables/use-resizable/index.ts
4
+ function t(t, n) {
5
+ return e(t, n);
6
+ }
7
+ //#endregion
8
+ export { t as useResizable };
@@ -1,14 +1,42 @@
1
1
  import { DirectiveBinding } from 'vue';
2
- interface ResizeOptions {
2
+ type Side = 'left' | 'right' | 'top' | 'bottom' | 'bottom-right';
3
+ export interface ResizeOptions {
3
4
  minWidth?: number;
4
5
  minHeight?: number;
5
6
  maxWidth?: number;
6
7
  maxHeight?: number;
8
+ left: boolean;
9
+ right: boolean;
10
+ top: boolean;
11
+ bottom: boolean;
12
+ bottomRight: boolean;
13
+ handleSize: number;
14
+ showHandlers: boolean;
15
+ }
16
+ export interface ResizeState {
17
+ side?: Side;
18
+ startX: number;
19
+ startY: number;
20
+ startW: number;
21
+ startH: number;
22
+ startL: number;
23
+ startT: number;
24
+ minW: number;
25
+ minH: number;
26
+ maxW?: number;
27
+ maxH?: number;
28
+ pointerId?: number;
29
+ handlers: HTMLElement[];
30
+ onMove?: (e: PointerEvent) => void;
31
+ onUp?: (e: PointerEvent) => void;
32
+ ro?: ResizeObserver;
7
33
  }
8
34
  /** main directive */
9
35
  declare const vResizable: {
10
36
  mounted(el: HTMLElement, binding: DirectiveBinding): void;
11
37
  beforeUnmount(el: HTMLElement): void;
12
38
  };
13
- declare function applyResizable(el: HTMLElement, options?: ResizeOptions): () => void;
39
+ declare function applyResizable(el: HTMLElement, options?: ResizeOptions): {
40
+ destroy: () => void;
41
+ };
14
42
  export { vResizable, applyResizable };
@@ -1,10 +1,10 @@
1
1
  //#region packages/directives/vResizable.ts
2
- var e = "v-resizable-handle", t = "v-resizable-handle-style";
3
- function n() {
4
- if (document.getElementById(t)) return;
5
- let n = document.createElement("style");
6
- n.id = t, n.textContent = `
7
- .${e} {
2
+ var e = 4, t = "v-resizable-handle", n = "v-resizable-handle-style";
3
+ function r() {
4
+ if (document.getElementById(n)) return;
5
+ let e = document.createElement("style");
6
+ e.id = n, e.textContent = `
7
+ .${t} {
8
8
  position: absolute;
9
9
  background: transparent;
10
10
  z-index: 9999;
@@ -12,111 +12,145 @@ function n() {
12
12
  touch-action: none;
13
13
  opacity: 0;
14
14
  }
15
- .${e}::after {
15
+ .${t}::after {
16
16
  content: '';
17
17
  display:block;
18
18
  width:100%;
19
19
  height:100%;
20
20
  border-radius:2px;
21
- background: rgba(0,0,0,0.12);
21
+ background-color:rgb(168, 149, 255);
22
22
  }
23
- .${e}.hr { cursor: ew-resize; }
24
- .${e}.vr { cursor: ns-resize; }
25
- .${e}.corner { cursor: nwse-resize; }
26
- `, document.head.appendChild(n);
23
+ .${t}.is-visible:hover{
24
+ opacity: 1;
27
25
  }
28
- function r(e, t, n) {
29
- let r = 0, i = 0;
30
- switch (e) {
26
+ .${t}.hr { cursor: ew-resize; }
27
+ .${t}.vr { cursor: ns-resize; }
28
+ .${t}.corner { cursor: nwse-resize; }
29
+ `, document.head.appendChild(e);
30
+ }
31
+ function i(t, n, r) {
32
+ let i = 0, a = 0;
33
+ switch (t) {
31
34
  case "hr":
32
- r = 4, i = n.height - 8;
35
+ i = e, a = r.height - e * 2;
33
36
  break;
34
37
  case "vr":
35
- r = n.width - 8, i = 4;
38
+ i = r.width - e * 2, a = e;
36
39
  break;
37
- case "corner": r = 8, i = 8;
40
+ case "corner": i = e * 2, a = e * 2;
38
41
  }
39
- return t.style.width = `${r}px`, t.style.height = `${i}px`, t;
42
+ return n.style.width = `${i}px`, n.style.height = `${a}px`, n;
40
43
  }
41
- function i(t, n) {
42
- let i = document.createElement("div"), a = n.getBoundingClientRect();
43
- return i.className = `${e} ${t}`, r(t, i, a);
44
+ function a(e, n, r) {
45
+ let a = document.createElement("div"), o = n.getBoundingClientRect();
46
+ return a.className = `${t} ${e}`, r.showHandlers && a.classList.add("is-visible"), i(e, a, o);
44
47
  }
45
- function a(e, t, n) {
46
- switch (t) {
48
+ function o(t, n, r) {
49
+ let a = e / 2;
50
+ switch (n) {
47
51
  case "left":
48
- e.style.left = "-2px", e.style.top = "4px", r("hr", e, n);
52
+ t.style.left = `${-a}px`, t.style.top = `${e}px`, i("hr", t, r);
49
53
  break;
50
54
  case "right":
51
- e.style.left = `${n.width - 2}px`, e.style.top = "4px", r("hr", e, n);
55
+ t.style.left = `${r.width - a}px`, t.style.top = `${e}px`, i("hr", t, r);
52
56
  break;
53
57
  case "top":
54
- e.style.left = "4px", e.style.top = "-2px", r("vr", e, n);
58
+ t.style.left = `${e}px`, t.style.top = `${-a}px`, i("vr", t, r);
55
59
  break;
56
60
  case "bottom":
57
- e.style.left = "4px", e.style.top = `${n.height - 2}px`, r("vr", e, n);
61
+ t.style.left = `${e}px`, t.style.top = `${r.height - a}px`, i("vr", t, r);
58
62
  break;
59
- case "bottom-right": e.style.left = `${n.width - 2}px`, e.style.top = `${n.height - 2}px`;
63
+ case "bottom-right": t.style.left = `${r.width - a}px`, t.style.top = `${r.height - a}px`;
60
64
  }
61
65
  }
62
- function o(e, t) {
63
- var r, o;
64
- n(), getComputedStyle(e).position === "static" && (e.style.position = "relative"), e.style.boxSizing = e.style.boxSizing || "border-box";
65
- let s = {
66
+ function s(t, n) {
67
+ var i, s, c;
68
+ let l = Object.assign({}, {
69
+ left: !0,
70
+ right: !0,
71
+ top: !0,
72
+ bottom: !0,
73
+ bottomRight: !0,
74
+ handleSize: 4,
75
+ showHandlers: !1
76
+ }, n);
77
+ r(), e = (i = l == null ? void 0 : l.handleSize) == null ? e : i;
78
+ let { width: u } = t.getBoundingClientRect();
79
+ getComputedStyle(t).position === "static" && (t.style.position = "relative"), t.style.boxSizing = t.style.boxSizing || "border-box", l != null && l.maxWidth && u > l.maxWidth && (t.style.width = `${l.maxWidth}px`);
80
+ let d = {
66
81
  startX: 0,
67
82
  startY: 0,
68
83
  startW: 0,
69
84
  startH: 0,
70
85
  startL: 0,
71
86
  startT: 0,
72
- minW: (r = t == null ? void 0 : t.minWidth) == null ? 40 : r,
73
- minH: (o = t == null ? void 0 : t.minHeight) == null ? 24 : o,
74
- maxW: t == null ? void 0 : t.maxWidth,
75
- maxH: t == null ? void 0 : t.maxHeight,
87
+ minW: (s = l == null ? void 0 : l.minWidth) == null ? 0 : s,
88
+ minH: (c = l == null ? void 0 : l.minHeight) == null ? 0 : c,
89
+ maxW: l == null ? void 0 : l.maxWidth,
90
+ maxH: l == null ? void 0 : l.maxHeight,
76
91
  handlers: []
77
- }, c = i("hr", e), l = i("hr", e), u = i("vr", e), d = i("vr", e), f = i("corner", e);
78
- c.dataset.side = "left", l.dataset.side = "right", u.dataset.side = "top", d.dataset.side = "bottom", f.dataset.side = "bottom-right", e.appendChild(c), e.appendChild(l), e.appendChild(u), e.appendChild(d), e.appendChild(f), s.handlers.push(c, l, u, d, f);
79
- let p = (t) => {
92
+ };
93
+ if (l != null && l.left) {
94
+ let e = a("hr", t, l);
95
+ e.dataset.side = "left", t.appendChild(e), d.handlers.push(e);
96
+ }
97
+ if (l != null && l.right) {
98
+ let e = a("hr", t, l);
99
+ e.dataset.side = "right", t.appendChild(e), d.handlers.push(e);
100
+ }
101
+ if (l != null && l.top) {
102
+ let e = a("vr", t, l);
103
+ e.dataset.side = "top", t.appendChild(e), d.handlers.push(e);
104
+ }
105
+ if (l != null && l.bottom) {
106
+ let e = a("vr", t, l);
107
+ e.dataset.side = "bottom", t.appendChild(e), d.handlers.push(e);
108
+ }
109
+ if (l != null && l.bottomRight) {
110
+ let e = a("corner", t, l);
111
+ e.dataset.side = "bottom-right", t.appendChild(e), d.handlers.push(e);
112
+ }
113
+ let f = (e) => {
80
114
  var n, r, i;
81
- let a = t.target;
115
+ let a = e.target;
82
116
  if (!a || !((n = a.dataset) != null && n.side)) return;
83
117
  let o = a.dataset.side;
84
- (r = (i = t.target).setPointerCapture) == null || r.call(i, t.pointerId), s.side = o, s.pointerId = t.pointerId;
85
- let c = e.getBoundingClientRect();
86
- s.startX = t.clientX, s.startY = t.clientY, s.startW = c.width, s.startH = c.height;
87
- let l = getComputedStyle(e), u = parseFloat(l.left || "0"), d = parseFloat(l.top || "0");
88
- s.startL = u, s.startT = d, s.onMove = (t) => m(t, e, s), s.onUp = (t) => h(t, e, s), window.addEventListener("pointermove", s.onMove), window.addEventListener("pointerup", s.onUp), window.addEventListener("pointercancel", s.onUp), t.preventDefault();
89
- }, m = (e, t, n) => {
118
+ (r = (i = e.target).setPointerCapture) == null || r.call(i, e.pointerId), d.side = o, d.pointerId = e.pointerId;
119
+ let s = t.getBoundingClientRect();
120
+ d.startX = e.clientX, d.startY = e.clientY, d.startW = s.width, d.startH = s.height;
121
+ let c = getComputedStyle(t), l = parseFloat(c.left || "0"), u = parseFloat(c.top || "0");
122
+ d.startL = l, d.startT = u, d.onMove = (e) => p(e, t, d), d.onUp = (e) => m(e, t, d), window.addEventListener("pointermove", d.onMove), window.addEventListener("pointerup", d.onUp), window.addEventListener("pointercancel", d.onUp), e.preventDefault();
123
+ }, p = (e, t, n) => {
90
124
  if (n.side === void 0) return;
91
- let r = e.clientX - n.startX, i = e.clientY - n.startY, o = n.startW, s = n.startH, c = n.startL, l = n.startT;
92
- n.side === "right" ? (o = Math.max(n.minW, n.startW + r), n.maxW && (o = Math.min(o, n.maxW))) : n.side === "left" ? (o = Math.max(n.minW, n.startW - r), n.maxW && (o = Math.min(o, n.maxW)), c = n.startL + (n.startW - o)) : n.side === "bottom" ? (s = Math.max(n.minH, n.startH + i), n.maxH && (s = Math.min(s, n.maxH))) : n.side === "top" ? (s = Math.max(n.minH, n.startH - i), n.maxH && (s = Math.min(s, n.maxH)), l = n.startT + (n.startH - s)) : n.side === "bottom-right" && (o = Math.max(n.minW, n.startW + r), s = Math.max(n.minH, n.startH + i), n.maxW && (o = Math.min(o, n.maxW)), n.maxH && (s = Math.min(s, n.maxH))), t.style.width = `${o}px`, t.style.height = `${s}px`;
125
+ let r = e.clientX - n.startX, i = e.clientY - n.startY, a = n.startW, s = n.startH, c = n.startL, l = n.startT;
126
+ n.side === "right" ? (a = Math.max(n.minW, n.startW + r), n.maxW && (a = Math.min(a, n.maxW))) : n.side === "left" ? (a = Math.max(n.minW, n.startW - r), n.maxW && (a = Math.min(a, n.maxW)), c = n.startL + (n.startW - a)) : n.side === "bottom" ? (s = Math.max(n.minH, n.startH + i), n.maxH && (s = Math.min(s, n.maxH))) : n.side === "top" ? (s = Math.max(n.minH, n.startH - i), n.maxH && (s = Math.min(s, n.maxH)), l = n.startT + (n.startH - s)) : n.side === "bottom-right" && (a = Math.max(n.minW, n.startW + r), s = Math.max(n.minH, n.startH + i), n.maxW && (a = Math.min(a, n.maxW)), n.maxH && (s = Math.min(s, n.maxH))), t.style.width = `${a}px`, t.style.height = `${s}px`;
93
127
  let u = getComputedStyle(t).position;
94
128
  (u === "absolute" || u === "relative" || u === "fixed") && (t.style.left = `${c}px`, t.style.top = `${l}px`);
95
129
  let d = t.getBoundingClientRect();
96
130
  n.handlers.forEach((e) => {
97
131
  let t = e.dataset.side;
98
- a(e, t, d);
132
+ o(e, t, d);
99
133
  }), e.preventDefault();
100
- }, h = (e, t, n) => {
134
+ }, m = (e, t, n) => {
101
135
  n.onMove && (window.removeEventListener("pointermove", n.onMove), window.removeEventListener("pointerup", n.onUp), window.removeEventListener("pointercancel", n.onUp)), n.side = void 0, n.pointerId = void 0;
102
- }, g = () => {
103
- let t = e.getBoundingClientRect();
104
- s.handlers.forEach((e) => {
105
- let n = e.dataset.side;
106
- e.style.position = "absolute", e.style.boxSizing = "content-box", a(e, n, t);
136
+ }, h = () => {
137
+ let e = t.getBoundingClientRect();
138
+ d.handlers.forEach((t) => {
139
+ let n = t.dataset.side;
140
+ t.style.position = "absolute", t.style.boxSizing = "content-box", o(t, n, e);
107
141
  });
108
142
  };
109
- s.handlers.forEach((e) => e.addEventListener("pointerdown", p));
110
- let _ = new ResizeObserver(g);
111
- return _.observe(e), s.ro = _, g(), { destroy: () => {
112
- s.handlers.forEach((t) => {
113
- t.removeEventListener("pointerdown", p), t.parentElement === e && e.removeChild(t);
114
- }), s.onMove && (window.removeEventListener("pointermove", s.onMove), window.removeEventListener("pointerup", s.onUp), window.removeEventListener("pointercancel", s.onUp)), s.ro && s.ro.disconnect();
143
+ d.handlers.forEach((e) => e.addEventListener("pointerdown", f));
144
+ let g = new ResizeObserver(h);
145
+ return g.observe(t), d.ro = g, h(), { destroy: () => {
146
+ d.handlers.forEach((e) => {
147
+ e.removeEventListener("pointerdown", f), e.parentElement === t && t.removeChild(e);
148
+ }), d.onMove && (window.removeEventListener("pointermove", d.onMove), window.removeEventListener("pointerup", d.onUp), window.removeEventListener("pointercancel", d.onUp)), d.ro && d.ro.disconnect();
115
149
  } };
116
150
  }
117
- var s = {
151
+ var c = {
118
152
  mounted(e, t) {
119
- let n = t.value, { destroy: r } = o(e, n);
153
+ let n = t.value, { destroy: r } = s(e, n);
120
154
  e.__v_resizable_cleanup = r;
121
155
  },
122
156
  beforeUnmount(e) {
@@ -124,9 +158,8 @@ var s = {
124
158
  t && (t(), delete e.__v_resizable_cleanup);
125
159
  }
126
160
  };
127
- function c(e, t) {
128
- let { destroy: n } = o(e, t);
129
- return n;
161
+ function l(e, t) {
162
+ return s(e, t);
130
163
  }
131
164
  //#endregion
132
- export { c as applyResizable, s as vResizable };
165
+ export { l as applyResizable, c as vResizable };
package/es/index.d.ts CHANGED
@@ -2148,6 +2148,67 @@ declare const _default: {
2148
2148
  useMenuEmits(emits: EmitFn<components.MenuEmits>): {
2149
2149
  select: (value: any, item: components.MenuOption) => void;
2150
2150
  };
2151
+ ReEllipsisMenu: {
2152
+ new (...args: any[]): CreateComponentPublicInstanceWithMixins<Readonly<components.EllipsisMenuProps> & Readonly<{
2153
+ onUpdated?: ((args_0: {
2154
+ showMore: boolean;
2155
+ moreSlots: VNode[];
2156
+ splitIndex: number;
2157
+ }) => any) | undefined;
2158
+ }>, {
2159
+ wrapper: Readonly< ShallowRef<HTMLElement | null>>;
2160
+ moreRef: Readonly< ShallowRef<HTMLElement | null>>;
2161
+ update: () => Promise<void>;
2162
+ }, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
2163
+ updated: (args_0: {
2164
+ showMore: boolean;
2165
+ moreSlots: VNode[];
2166
+ splitIndex: number;
2167
+ }) => any;
2168
+ }, PublicProps, {}, false, {}, {}, GlobalComponents, GlobalDirectives, string, {}, any, ComponentProvideOptions, {
2169
+ P: {};
2170
+ B: {};
2171
+ D: {};
2172
+ C: {};
2173
+ M: {};
2174
+ Defaults: {};
2175
+ }, Readonly<components.EllipsisMenuProps> & Readonly<{
2176
+ onUpdated?: ((args_0: {
2177
+ showMore: boolean;
2178
+ moreSlots: VNode[];
2179
+ splitIndex: number;
2180
+ }) => any) | undefined;
2181
+ }>, {
2182
+ wrapper: Readonly< ShallowRef<HTMLElement | null>>;
2183
+ moreRef: Readonly< ShallowRef<HTMLElement | null>>;
2184
+ update: () => Promise<void>;
2185
+ }, {}, {}, {}, {}>;
2186
+ __isFragment?: never;
2187
+ __isTeleport?: never;
2188
+ __isSuspense?: never;
2189
+ } & ComponentOptionsBase<Readonly<components.EllipsisMenuProps> & Readonly<{
2190
+ onUpdated?: ((args_0: {
2191
+ showMore: boolean;
2192
+ moreSlots: VNode[];
2193
+ splitIndex: number;
2194
+ }) => any) | undefined;
2195
+ }>, {
2196
+ wrapper: Readonly< ShallowRef<HTMLElement | null>>;
2197
+ moreRef: Readonly< ShallowRef<HTMLElement | null>>;
2198
+ update: () => Promise<void>;
2199
+ }, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
2200
+ updated: (args_0: {
2201
+ showMore: boolean;
2202
+ moreSlots: VNode[];
2203
+ splitIndex: number;
2204
+ }) => any;
2205
+ }, string, {}, {}, string, {}, GlobalComponents, GlobalDirectives, string, ComponentProvideOptions> & VNodeProps & AllowedComponentProps & ComponentCustomProps & (new () => {
2206
+ $slots: {
2207
+ default?: (props: {}) => any;
2208
+ } & {
2209
+ icon?: (props: {}) => any;
2210
+ };
2211
+ });
2151
2212
  install: (app: App) => void;
2152
2213
  version: string;
2153
2214
  };