savor-ui 0.15.5 → 0.15.6
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 +8 -0
- package/dist/es/components/src/dropdown/doption.vue_vue_type_script_setup_true_vapor_true_lang.mjs +2 -2
- package/dist/es/components/src/dropdown/dropdown.vue_vue_type_script_setup_true_vapor_true_lang.mjs +10 -8
- package/dist/es/components/src/dropdown/types.d.ts +1 -1
- package/dist/es/components/src/popover/index.d.ts +3 -2
- package/dist/es/components/src/popover/popover.d.ts +2 -1
- package/dist/es/components/src/popover/popover.vue_vue_type_script_setup_true_vapor_true_lang.mjs +60 -65
- package/dist/es/components/src/popover/types.d.ts +2 -2
- package/dist/json/web-types.json +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,14 @@
|
|
|
2
2
|
|
|
3
3
|
|
|
4
4
|
|
|
5
|
+
## [0.15.6](https://gitee.com/mach552/savor-ui/compare/v0.15.5...v0.15.6) (2026-08-04)
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
### Bug Fixes
|
|
9
|
+
|
|
10
|
+
* **dropdown:** 修复选择选项切换页面后无法关闭问题 ([1b835ab](https://gitee.com/mach552/savor-ui/commits/1b835ab8ce95e3571f7e7bea55f7c2396bb0486b))
|
|
11
|
+
* **popover:** 修复右键模式时再次右键不刷新位置的问题 ([86c0842](https://gitee.com/mach552/savor-ui/commits/86c08422edc51806ae1ecd3741c96c195da41281))
|
|
12
|
+
|
|
5
13
|
## [0.15.5](https://gitee.com/mach552/savor-ui/compare/v0.15.4...v0.15.5) (2026-08-04)
|
|
6
14
|
|
|
7
15
|
|
package/dist/es/components/src/dropdown/doption.vue_vue_type_script_setup_true_vapor_true_lang.mjs
CHANGED
|
@@ -11,8 +11,8 @@ var y = /*@__PURE__*/ o({
|
|
|
11
11
|
props: { title: {} },
|
|
12
12
|
emits: ["click"],
|
|
13
13
|
setup(o, { emit: s, slots: p }) {
|
|
14
|
-
let y = s, b = e("droption"), x = c(t, void 0), S = () => {
|
|
15
|
-
x?.itemClick?.(), y("click");
|
|
14
|
+
let y = s, b = e("droption"), x = c(t, void 0), S = async () => {
|
|
15
|
+
await x?.itemClick?.(), y("click");
|
|
16
16
|
}, C = v(), w = n(C, 1);
|
|
17
17
|
return l(() => u(C, [h(b).b()])), d(C, 0, 0), r(() => p.icon, () => {
|
|
18
18
|
let e = g();
|
package/dist/es/components/src/dropdown/dropdown.vue_vue_type_script_setup_true_vapor_true_lang.mjs
CHANGED
|
@@ -9,23 +9,25 @@ var m = d("<div>"), h = d("<div>", 1), g = /*@__PURE__*/ a({
|
|
|
9
9
|
__name: "dropdown",
|
|
10
10
|
props: { popoverProps: {} },
|
|
11
11
|
setup(a) {
|
|
12
|
-
let d = e("dropdown"), g = p("popoverRef")
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
12
|
+
let d = e("dropdown"), g = p("popoverRef"), _ = null, v = () => {
|
|
13
|
+
_ &&= (_(), null);
|
|
14
|
+
};
|
|
15
|
+
o(n, { itemClick: () => (g.value?.hide(), new Promise((e) => {
|
|
16
|
+
_ = e;
|
|
17
|
+
})) });
|
|
18
|
+
let y = h();
|
|
19
|
+
return s(() => c(y, [f(d).b()])), l(y, null, 0), u(r(f(t), { $: [() => ({
|
|
18
20
|
trigger: "click",
|
|
19
21
|
placement: a.popoverProps?.trigger === "contextmenu" ? "bottom-start" : "bottom",
|
|
20
22
|
alignPoint: a.popoverProps?.trigger === "contextmenu",
|
|
21
23
|
...a.popoverProps
|
|
22
|
-
})] }, {
|
|
24
|
+
}), { onAfterLeave: () => v }] }, {
|
|
23
25
|
content: () => {
|
|
24
26
|
let e = m();
|
|
25
27
|
return s(() => c(e, f(d).e("list"))), l(e, null, 0), i("content"), e;
|
|
26
28
|
},
|
|
27
29
|
default: () => i("default", null, null, 4)
|
|
28
|
-
}), g, null, "popoverRef"),
|
|
30
|
+
}), g, null, "popoverRef"), y;
|
|
29
31
|
}
|
|
30
32
|
});
|
|
31
33
|
//#endregion
|
|
@@ -3,7 +3,7 @@ import { PublicProps, ShallowUnwrapRef, VNode, Plugin } from 'vue';
|
|
|
3
3
|
export declare const SPopover: ((__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: {
|
|
4
4
|
attrs: any;
|
|
5
5
|
slots: PopoverSlots;
|
|
6
|
-
emit: ((evt: "change", visible: boolean) => void) & ((evt: "click-outside", evt: Event) => void);
|
|
6
|
+
emit: ((evt: "change", visible: boolean) => void) & ((evt: "click-outside", evt: Event) => void) & ((evt: "after-leave") => void);
|
|
7
7
|
}, __VLS_exposed?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
|
|
8
8
|
props: PublicProps & {
|
|
9
9
|
content?: string | undefined;
|
|
@@ -22,13 +22,14 @@ export declare const SPopover: ((__VLS_props: NonNullable<Awaited<typeof __VLS_s
|
|
|
22
22
|
teleport?: string | undefined;
|
|
23
23
|
onChange?: ((visible: boolean) => any) | undefined;
|
|
24
24
|
"onClick-outside"?: ((evt: Event) => any) | undefined;
|
|
25
|
+
"onAfter-leave"?: (() => any) | undefined;
|
|
25
26
|
} & (typeof globalThis extends {
|
|
26
27
|
__VLS_PROPS_FALLBACK: infer P;
|
|
27
28
|
} ? P : {});
|
|
28
29
|
expose: (exposed: ShallowUnwrapRef<PopoverExpose>) => void;
|
|
29
30
|
attrs: any;
|
|
30
31
|
slots: PopoverSlots;
|
|
31
|
-
emit: ((evt: "change", visible: boolean) => void) & ((evt: "click-outside", evt: Event) => void);
|
|
32
|
+
emit: ((evt: "change", visible: boolean) => void) & ((evt: "click-outside", evt: Event) => void) & ((evt: "after-leave") => void);
|
|
32
33
|
}>) => VNode & {
|
|
33
34
|
__ctx?: Awaited<typeof __VLS_setup>;
|
|
34
35
|
}) & Plugin;
|
|
@@ -4,13 +4,14 @@ declare const __VLS_export: (__VLS_props: NonNullable<Awaited<typeof __VLS_setup
|
|
|
4
4
|
props: PublicProps & __VLS_PrettifyLocal<PopoverProps & {
|
|
5
5
|
onChange?: ((visible: boolean) => any) | undefined;
|
|
6
6
|
"onClick-outside"?: ((evt: Event) => any) | undefined;
|
|
7
|
+
"onAfter-leave"?: (() => any) | undefined;
|
|
7
8
|
}> & (typeof globalThis extends {
|
|
8
9
|
__VLS_PROPS_FALLBACK: infer P;
|
|
9
10
|
} ? P : {});
|
|
10
11
|
expose: (exposed: ShallowUnwrapRef<PopoverExpose>) => void;
|
|
11
12
|
attrs: any;
|
|
12
13
|
slots: PopoverSlots;
|
|
13
|
-
emit: ((evt: "change", visible: boolean) => void) & ((evt: "click-outside", evt: Event) => void);
|
|
14
|
+
emit: ((evt: "change", visible: boolean) => void) & ((evt: "click-outside", evt: Event) => void) & ((evt: "after-leave") => void);
|
|
14
15
|
}>) => VNode & {
|
|
15
16
|
__ctx?: Awaited<typeof __VLS_setup>;
|
|
16
17
|
};
|
package/dist/es/components/src/popover/popover.vue_vue_type_script_setup_true_vapor_true_lang.mjs
CHANGED
|
@@ -4,10 +4,10 @@ import { useNamespace as t } from "../../../hooks/src/use-namespace.mjs";
|
|
|
4
4
|
import { useOutsideClick as n } from "../../../hooks/src/use-outside-click.mjs";
|
|
5
5
|
import { useZIndex as r } from "../../../hooks/src/use-zIndex.mjs";
|
|
6
6
|
import "../../../hooks/index.mjs";
|
|
7
|
-
import { VaporTeleport as i, VaporTransition as a, applyVShow as o, child as s, computed as c, createComponent as l, createDynamicComponent as ee, createIf as
|
|
8
|
-
import { arrow as
|
|
7
|
+
import { VaporTeleport as i, VaporTransition as a, applyVShow as o, child as s, computed as c, createComponent as l, createDynamicComponent as ee, createIf as u, createSlot as te, createTemplateRefSetter as ne, defineVaporComponent as d, nextTick as re, onMounted as ie, onUnmounted as ae, ref as f, renderEffect as p, setClass as m, setDynamicEvents as h, setInsertionState as g, setStyle as _, setText as oe, template as v, toDisplayString as se, unref as y, useSlots as ce, useTemplateRef as b, watch as x, watchEffect as le } from "vue";
|
|
8
|
+
import { arrow as ue, autoUpdate as de, computePosition as fe, flip as pe, offset as me, shift as he } from "@floating-ui/dom";
|
|
9
9
|
//#region ../components/src/popover/popover.vue?vue&type=script&setup=true&vapor=true&lang.ts
|
|
10
|
-
var
|
|
10
|
+
var ge = v(" "), _e = v("<div data-popover-arrow>"), ve = v("<div>"), ye = v("<div><div>"), S = /*@__PURE__*/ d({
|
|
11
11
|
name: "SPopover",
|
|
12
12
|
__name: "popover",
|
|
13
13
|
props: {
|
|
@@ -32,11 +32,15 @@ var _e = v(" "), ve = v("<div data-popover-arrow>"), ye = v("<div>"), be = v("<d
|
|
|
32
32
|
},
|
|
33
33
|
teleport: { default: "body" }
|
|
34
34
|
},
|
|
35
|
-
emits: [
|
|
35
|
+
emits: [
|
|
36
|
+
"change",
|
|
37
|
+
"click-outside",
|
|
38
|
+
"after-leave"
|
|
39
|
+
],
|
|
36
40
|
__multiRoot: !0,
|
|
37
|
-
setup(
|
|
38
|
-
let C =
|
|
39
|
-
let e =
|
|
41
|
+
setup(d, { expose: v, emit: S }) {
|
|
42
|
+
let C = d, w = S, T = t("popover"), be = ce(), E = f(!1), D = f(!1), { nextZIndex: xe } = r(), O = f(), k = b("containerNode"), A = b("wrapperNode"), j = b("contentNode"), M = f(null), Se = () => {
|
|
43
|
+
let e = be.default?.();
|
|
40
44
|
return M.value = e, e;
|
|
41
45
|
}, N = f(null), P = f({}), F = f({}), I = f({}), L = f(null), R = () => {
|
|
42
46
|
N.value && Object.entries(F.value).forEach(([e, t]) => {
|
|
@@ -66,25 +70,25 @@ var _e = v(" "), ve = v("<div data-popover-arrow>"), ye = v("<div>"), be = v("<d
|
|
|
66
70
|
if (!e || N.value) return;
|
|
67
71
|
let t = null;
|
|
68
72
|
t = e instanceof HTMLElement ? e : B(e), t && t !== N.value && (R(), N.value = t);
|
|
69
|
-
}, { flush: "post" }),
|
|
73
|
+
}, { flush: "post" }), ie(() => {
|
|
70
74
|
if (N.value) return;
|
|
71
75
|
let e = M.value;
|
|
72
76
|
if (!e) return;
|
|
73
77
|
let t = e instanceof HTMLElement ? e : B(e);
|
|
74
78
|
t && t !== N.value && (R(), N.value = t);
|
|
75
79
|
}), x(N, (e) => {
|
|
76
|
-
e &&
|
|
80
|
+
e && re().then(() => {
|
|
77
81
|
Object.entries(F.value).forEach(([t, n]) => {
|
|
78
82
|
e.addEventListener(t, n);
|
|
79
83
|
});
|
|
80
84
|
});
|
|
81
85
|
}, { flush: "post" });
|
|
82
|
-
let
|
|
86
|
+
let Ce = () => {
|
|
83
87
|
if (!j.value || !N.value) return;
|
|
84
88
|
j.value.style.width = "";
|
|
85
89
|
let e = "";
|
|
86
90
|
typeof C.width == "number" ? (e = `${C.width}px`, j.value.style.width = e) : C.width === "sameWidth" ? (e = `${N.value.getBoundingClientRect().width}px`, j.value.style.width = e) : C.width === "auto" && (e = "", j.value.style.width = e);
|
|
87
|
-
},
|
|
91
|
+
}, we = c(() => C.offset ? C.offset : C.trigger === "contextmenu" && C.alignPoint ? [0, 0] : C.showArrow ? [0, 8] : [0, 0]), V = () => {
|
|
88
92
|
if (C.trigger === "contextmenu" && C.alignPoint && L.value) {
|
|
89
93
|
let e = L.value;
|
|
90
94
|
return { getBoundingClientRect() {
|
|
@@ -104,21 +108,21 @@ var _e = v(" "), ve = v("<div data-popover-arrow>"), ye = v("<div>"), be = v("<d
|
|
|
104
108
|
return N.value;
|
|
105
109
|
}, H = null, U = () => {
|
|
106
110
|
H &&= (H(), null);
|
|
107
|
-
},
|
|
111
|
+
}, W = async () => {
|
|
108
112
|
if (!A.value || !N.value) return;
|
|
109
|
-
let e = V(), t = j.value?.querySelector("[data-popover-arrow]"), [n, r] =
|
|
110
|
-
|
|
113
|
+
let e = V(), t = j.value?.querySelector("[data-popover-arrow]"), [n, r] = we.value, i = [
|
|
114
|
+
me({
|
|
111
115
|
mainAxis: r,
|
|
112
116
|
crossAxis: n
|
|
113
117
|
}),
|
|
114
|
-
|
|
115
|
-
|
|
118
|
+
pe(),
|
|
119
|
+
he()
|
|
116
120
|
];
|
|
117
|
-
t && i.push(
|
|
121
|
+
t && i.push(ue({
|
|
118
122
|
element: t,
|
|
119
123
|
padding: 8
|
|
120
124
|
}));
|
|
121
|
-
let { x: a, y: o, placement: s, middlewareData: c } = await
|
|
125
|
+
let { x: a, y: o, placement: s, middlewareData: c } = await fe(e, A.value, {
|
|
122
126
|
placement: C.placement,
|
|
123
127
|
strategy: "fixed",
|
|
124
128
|
middleware: i
|
|
@@ -134,106 +138,97 @@ var _e = v(" "), ve = v("<div data-popover-arrow>"), ye = v("<div>"), be = v("<d
|
|
|
134
138
|
top: n == null ? "" : `${n}px`
|
|
135
139
|
});
|
|
136
140
|
}
|
|
137
|
-
},
|
|
141
|
+
}, G = c(() => C.manual ? {
|
|
138
142
|
openDelay: 0,
|
|
139
143
|
closeDelay: 0
|
|
140
144
|
} : {
|
|
141
145
|
openDelay: typeof C.delay == "number" ? C.delay : C.delay[0],
|
|
142
146
|
closeDelay: typeof C.delay == "number" ? 50 : C.delay[1]
|
|
143
|
-
}),
|
|
144
|
-
C.disabled || (
|
|
147
|
+
}), K = null, Te = () => {
|
|
148
|
+
C.disabled || (K &&= (clearTimeout(K), null), D.value = !0, re(() => {
|
|
145
149
|
E.value = !0, w("change", !0);
|
|
146
150
|
}));
|
|
147
|
-
},
|
|
148
|
-
E.value = !1, L.value = null, w("change", !1),
|
|
149
|
-
C.destroyOnClose && (D.value = !1),
|
|
151
|
+
}, Ee = () => {
|
|
152
|
+
E.value = !1, L.value = null, w("change", !1), K && clearTimeout(K), K = setTimeout(() => {
|
|
153
|
+
C.destroyOnClose && (D.value = !1), K = null;
|
|
150
154
|
}, 300);
|
|
151
|
-
}, q = f(null), J = f(null),
|
|
152
|
-
q.value?.cancel(), J.value?.cancel(), q.value = e(
|
|
155
|
+
}, q = f(null), J = f(null), De = () => {
|
|
156
|
+
q.value?.cancel(), J.value?.cancel(), q.value = e(Te, G.value.openDelay), J.value = e(Ee, G.value.closeDelay);
|
|
153
157
|
};
|
|
154
|
-
|
|
158
|
+
De(), x(G, De);
|
|
155
159
|
let Y = () => {
|
|
156
160
|
J.value?.cancel(), q.value?.();
|
|
157
161
|
}, X = () => {
|
|
158
162
|
q.value?.cancel(), J.value?.();
|
|
159
|
-
}, ke = () => {
|
|
160
|
-
q.value?.cancel(), J.value?.cancel(), K();
|
|
161
163
|
};
|
|
162
164
|
n(k, (e) => {
|
|
163
165
|
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());
|
|
164
166
|
});
|
|
165
|
-
let
|
|
166
|
-
F.value = {}, P.value = {}, I.value = {},
|
|
167
|
-
},
|
|
167
|
+
let Z = () => {
|
|
168
|
+
F.value = {}, P.value = {}, I.value = {}, Q();
|
|
169
|
+
}, Q = () => {
|
|
168
170
|
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 = () => {
|
|
169
171
|
let e = E.value ? J.value : q.value;
|
|
170
172
|
(E.value ? q.value : J.value)?.cancel(), e?.();
|
|
171
173
|
}), C.trigger === "contextmenu" && (F.value.click = () => {
|
|
172
174
|
X();
|
|
173
175
|
}, F.value.contextmenu = (e) => {
|
|
174
|
-
|
|
176
|
+
e.preventDefault();
|
|
175
177
|
let t = e;
|
|
176
178
|
L.value = {
|
|
177
179
|
x: t.clientX,
|
|
178
180
|
y: t.clientY
|
|
179
|
-
}, Y();
|
|
181
|
+
}, E.value ? W() : Y();
|
|
180
182
|
}));
|
|
181
183
|
};
|
|
182
|
-
|
|
183
|
-
C.manual ||
|
|
184
|
+
le(() => {
|
|
185
|
+
C.manual || Q();
|
|
184
186
|
});
|
|
185
|
-
let
|
|
186
|
-
E.value || U();
|
|
187
|
+
let Oe = () => {
|
|
188
|
+
E.value || (U(), w("after-leave"));
|
|
187
189
|
};
|
|
188
190
|
x(E, (e) => {
|
|
189
|
-
e && (!A.value || !N.value || (O.value =
|
|
191
|
+
e && (!A.value || !N.value || (O.value = xe(), Ce(), U(), H = de(V(), A.value, W)));
|
|
190
192
|
}, { flush: "post" }), x([
|
|
191
193
|
() => C.placement,
|
|
192
194
|
() => C.offset,
|
|
193
195
|
() => C.showArrow
|
|
194
196
|
], () => {
|
|
195
|
-
E.value &&
|
|
197
|
+
E.value && W();
|
|
196
198
|
}), x(() => C.manual, (e) => {
|
|
197
|
-
e ?
|
|
199
|
+
e ? Z() : Q();
|
|
198
200
|
}), x(() => C.trigger, (e, t) => {
|
|
199
|
-
e !== t && (q.value?.cancel(), E.value = !1, w("change", !1),
|
|
200
|
-
})
|
|
201
|
-
|
|
202
|
-
q.value?.cancel(), J.value?.cancel(), G &&= (clearTimeout(G), null), E.value = !1, D.value = !1, U();
|
|
203
|
-
};
|
|
204
|
-
ie(() => {
|
|
205
|
-
Q();
|
|
206
|
-
}), oe(() => {
|
|
207
|
-
Q(), R();
|
|
201
|
+
e !== t && (q.value?.cancel(), E.value = !1, w("change", !1), Z());
|
|
202
|
+
}), ae(() => {
|
|
203
|
+
K &&= (clearTimeout(K), null), U(), R();
|
|
208
204
|
}), v({
|
|
209
205
|
show: Y,
|
|
210
|
-
hide: X
|
|
211
|
-
hideImmediate: ke
|
|
206
|
+
hide: X
|
|
212
207
|
});
|
|
213
|
-
let $ =
|
|
214
|
-
return [ee(() =>
|
|
215
|
-
disabled: () => !
|
|
216
|
-
to: () =>
|
|
217
|
-
}, () =>
|
|
218
|
-
let e =
|
|
208
|
+
let $ = ne();
|
|
209
|
+
return [ee(() => Se()), l(i, {
|
|
210
|
+
disabled: () => !d.teleportBody,
|
|
211
|
+
to: () => d.teleport
|
|
212
|
+
}, () => u(() => D.value, () => {
|
|
213
|
+
let e = ye(), t = s(e);
|
|
219
214
|
return p(() => {
|
|
220
215
|
let n = y(T);
|
|
221
216
|
h(e, P.value), m(e, [n.b()]), m(t, [n.e("wrapper")]), _(t, { zIndex: O.value });
|
|
222
217
|
}), g(t, null, 0), l(a, {
|
|
223
218
|
name: "popover-fade",
|
|
224
|
-
onAfterLeave: () =>
|
|
219
|
+
onAfterLeave: () => Oe,
|
|
225
220
|
persisted: ""
|
|
226
221
|
}, () => {
|
|
227
|
-
let e =
|
|
222
|
+
let e = ve();
|
|
228
223
|
return p(() => {
|
|
229
224
|
h(e, I.value), m(e, [y(T).e("content")]);
|
|
230
|
-
}), g(e, null, 0),
|
|
225
|
+
}), g(e, null, 0), te("content", null, () => {
|
|
226
|
+
let e = ge();
|
|
227
|
+
return p(() => oe(e, se(d.content))), e;
|
|
228
|
+
}), g(e, null, 1), u(() => d.showArrow, () => {
|
|
231
229
|
let e = _e();
|
|
232
|
-
return p(() => se(e, ce(u.content))), e;
|
|
233
|
-
}), g(e, null, 1), te(() => u.showArrow, () => {
|
|
234
|
-
let e = ve();
|
|
235
230
|
return p(() => {
|
|
236
|
-
m(e, [y(T).e("arrow")]), _(e,
|
|
231
|
+
m(e, [y(T).e("arrow")]), _(e, d.arrowStyle);
|
|
237
232
|
}), e;
|
|
238
233
|
}), o(e, () => E.value), $(e, j, null, "contentNode"), e;
|
|
239
234
|
}), $(t, A, null, "wrapperNode"), $(e, k, null, "containerNode"), e;
|
|
@@ -63,12 +63,12 @@ export interface PopoverEmits {
|
|
|
63
63
|
change: [visible: boolean];
|
|
64
64
|
/** 隐藏时触发 */
|
|
65
65
|
"click-outside": [evt: Event];
|
|
66
|
+
/** 离开动画结束时触发 */
|
|
67
|
+
"after-leave": [];
|
|
66
68
|
}
|
|
67
69
|
export interface PopoverExpose {
|
|
68
70
|
/** 显示 */
|
|
69
71
|
show: () => void;
|
|
70
72
|
/** 隐藏 */
|
|
71
73
|
hide: () => void;
|
|
72
|
-
/** 立即隐藏(同步,跳过关闭延时,用于点击后立即切换路由等场景) */
|
|
73
|
-
hideImmediate: () => void;
|
|
74
74
|
}
|
package/dist/json/web-types.json
CHANGED