savor-ui 0.15.4 → 0.15.5

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.
package/CHANGELOG.md CHANGED
@@ -2,6 +2,13 @@
2
2
 
3
3
 
4
4
 
5
+ ## [0.15.5](https://gitee.com/mach552/savor-ui/compare/v0.15.4...v0.15.5) (2026-08-04)
6
+
7
+
8
+ ### Bug Fixes
9
+
10
+ * **popover:** 修复切换页面无法关闭问题 ([8317b1f](https://gitee.com/mach552/savor-ui/commits/8317b1f28589c11219e9109339f259e055f5cb5e))
11
+
5
12
  ## [0.15.4](https://gitee.com/mach552/savor-ui/compare/v0.15.3...v0.15.4) (2026-08-04)
6
13
 
7
14
 
@@ -11,7 +11,7 @@ var m = d("<div>"), h = d("<div>", 1), g = /*@__PURE__*/ a({
11
11
  setup(a) {
12
12
  let d = e("dropdown"), g = p("popoverRef");
13
13
  o(n, { itemClick: () => {
14
- g.value?.hide();
14
+ g.value?.hideImmediate?.();
15
15
  } });
16
16
  let _ = h();
17
17
  return s(() => c(_, [f(d).b()])), l(_, null, 0), u(r(f(t), { $: [() => ({
@@ -104,7 +104,7 @@ var _e = v(" "), ve = v("<div data-popover-arrow>"), ye = v("<div>"), be = v("<d
104
104
  return N.value;
105
105
  }, H = null, U = () => {
106
106
  H &&= (H(), null);
107
- }, W = async () => {
107
+ }, Ee = async () => {
108
108
  if (!A.value || !N.value) return;
109
109
  let e = V(), t = j.value?.querySelector("[data-popover-arrow]"), [n, r] = Te.value, i = [
110
110
  he({
@@ -134,33 +134,35 @@ var _e = v(" "), ve = v("<div data-popover-arrow>"), ye = v("<div>"), be = v("<d
134
134
  top: n == null ? "" : `${n}px`
135
135
  });
136
136
  }
137
- }, G = c(() => C.manual ? {
137
+ }, W = c(() => C.manual ? {
138
138
  openDelay: 0,
139
139
  closeDelay: 0
140
140
  } : {
141
141
  openDelay: typeof C.delay == "number" ? C.delay : C.delay[0],
142
142
  closeDelay: typeof C.delay == "number" ? 50 : C.delay[1]
143
- }), K = null, Ee = () => {
144
- C.disabled || (K &&= (clearTimeout(K), null), D.value = !0, d(() => {
143
+ }), G = null, De = () => {
144
+ C.disabled || (G &&= (clearTimeout(G), null), D.value = !0, d(() => {
145
145
  E.value = !0, w("change", !0);
146
146
  }));
147
- }, De = () => {
148
- E.value = !1, L.value = null, w("change", !1), K && clearTimeout(K), K = setTimeout(() => {
149
- C.destroyOnClose && (D.value = !1), K = null;
147
+ }, K = () => {
148
+ E.value = !1, L.value = null, w("change", !1), G && clearTimeout(G), G = setTimeout(() => {
149
+ C.destroyOnClose && (D.value = !1), G = null;
150
150
  }, 300);
151
151
  }, q = f(null), J = f(null), Oe = () => {
152
- q.value?.cancel(), J.value?.cancel(), q.value = e(Ee, G.value.openDelay), J.value = e(De, G.value.closeDelay);
152
+ q.value?.cancel(), J.value?.cancel(), q.value = e(De, W.value.openDelay), J.value = e(K, W.value.closeDelay);
153
153
  };
154
- Oe(), x(G, Oe);
154
+ Oe(), x(W, Oe);
155
155
  let Y = () => {
156
156
  J.value?.cancel(), q.value?.();
157
157
  }, X = () => {
158
158
  q.value?.cancel(), J.value?.();
159
+ }, ke = () => {
160
+ q.value?.cancel(), J.value?.cancel(), K();
159
161
  };
160
162
  n(k, (e) => {
161
163
  N.value && e.target && typeof N.value.contains == "function" && N.value.contains(e.target) || (E.value && w("click-outside", e), !C.manual && (C.trigger === "hover" || C.trigger === "contextmenu" || C.trigger === "click") && X());
162
164
  });
163
- let ke = () => {
165
+ let Ae = () => {
164
166
  F.value = {}, P.value = {}, I.value = {}, Z();
165
167
  }, Z = () => {
166
168
  C.manual || (C.trigger === "hover" && (F.value.mouseenter = Y, F.value.mouseleave = X, P.value.mouseenter = Y, P.value.mouseleave = X), C.trigger === "click" && (F.value.click = () => {
@@ -180,24 +182,24 @@ var _e = v(" "), ve = v("<div data-popover-arrow>"), ye = v("<div>"), be = v("<d
180
182
  ue(() => {
181
183
  C.manual || Z();
182
184
  });
183
- let Ae = () => {
185
+ let je = () => {
184
186
  E.value || U();
185
187
  };
186
188
  x(E, (e) => {
187
- e && (!A.value || !N.value || (O.value = Se(), we(), U(), H = fe(V(), A.value, W)));
189
+ e && (!A.value || !N.value || (O.value = Se(), we(), U(), H = fe(V(), A.value, Ee)));
188
190
  }, { flush: "post" }), x([
189
191
  () => C.placement,
190
192
  () => C.offset,
191
193
  () => C.showArrow
192
194
  ], () => {
193
- E.value && W();
195
+ E.value && Ee();
194
196
  }), x(() => C.manual, (e) => {
195
- e ? ke() : Z();
197
+ e ? Ae() : Z();
196
198
  }), x(() => C.trigger, (e, t) => {
197
- e !== t && (q.value?.cancel(), E.value = !1, w("change", !1), ke());
199
+ e !== t && (q.value?.cancel(), E.value = !1, w("change", !1), Ae());
198
200
  });
199
201
  let Q = () => {
200
- q.value?.cancel(), J.value?.cancel(), K &&= (clearTimeout(K), null), E.value = !1, D.value = !1, U();
202
+ q.value?.cancel(), J.value?.cancel(), G &&= (clearTimeout(G), null), E.value = !1, D.value = !1, U();
201
203
  };
202
204
  ie(() => {
203
205
  Q();
@@ -205,7 +207,8 @@ var _e = v(" "), ve = v("<div data-popover-arrow>"), ye = v("<div>"), be = v("<d
205
207
  Q(), R();
206
208
  }), v({
207
209
  show: Y,
208
- hide: X
210
+ hide: X,
211
+ hideImmediate: ke
209
212
  });
210
213
  let $ = re();
211
214
  return [ee(() => Ce()), l(i, {
@@ -218,7 +221,7 @@ var _e = v(" "), ve = v("<div data-popover-arrow>"), ye = v("<div>"), be = v("<d
218
221
  h(e, P.value), m(e, [n.b()]), m(t, [n.e("wrapper")]), _(t, { zIndex: O.value });
219
222
  }), g(t, null, 0), l(a, {
220
223
  name: "popover-fade",
221
- onAfterLeave: () => Ae,
224
+ onAfterLeave: () => je,
222
225
  persisted: ""
223
226
  }, () => {
224
227
  let e = ye();
@@ -69,4 +69,6 @@ export interface PopoverExpose {
69
69
  show: () => void;
70
70
  /** 隐藏 */
71
71
  hide: () => void;
72
+ /** 立即隐藏(同步,跳过关闭延时,用于点击后立即切换路由等场景) */
73
+ hideImmediate: () => void;
72
74
  }
@@ -2,7 +2,7 @@
2
2
  "$schema": "https://raw.githubusercontent.com/JetBrains/web-types/master/schema/web-types.json",
3
3
  "framework": "vue",
4
4
  "name": "savor-ui",
5
- "version": "0.15.3",
5
+ "version": "0.15.4",
6
6
  "contributions": {
7
7
  "html": {
8
8
  "types-syntax": "typescript",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "savor-ui",
3
- "version": "0.15.4",
3
+ "version": "0.15.5",
4
4
  "description": "A Vue3 Components Library",
5
5
  "keywords": [
6
6
  "component library",