@vue/runtime-dom 3.6.0-beta.3 → 3.6.0-beta.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.
@@ -1,1774 +1,1424 @@
1
1
  /**
2
- * @vue/runtime-dom v3.6.0-beta.3
3
- * (c) 2018-present Yuxi (Evan) You and Vue contributors
4
- * @license MIT
5
- **/
6
- 'use strict';
7
-
8
- Object.defineProperty(exports, '__esModule', { value: true });
9
-
10
- var runtimeCore = require('@vue/runtime-core');
11
- var shared = require('@vue/shared');
2
+ * @vue/runtime-dom v3.6.0-beta.5
3
+ * (c) 2018-present Yuxi (Evan) You and Vue contributors
4
+ * @license MIT
5
+ **/
6
+ Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: 'Module' } });
7
+ let _vue_runtime_core = require("@vue/runtime-core");
8
+ let _vue_shared = require("@vue/shared");
12
9
 
10
+ //#region packages/runtime-dom/src/nodeOps.ts
13
11
  let policy = void 0;
14
12
  const tt = typeof window !== "undefined" && window.trustedTypes;
15
- if (tt) {
16
- try {
17
- policy = /* @__PURE__ */ tt.createPolicy("vue", {
18
- createHTML: (val) => val
19
- });
20
- } catch (e) {
21
- }
22
- }
13
+ if (tt) try {
14
+ policy = /* @__PURE__ */ tt.createPolicy("vue", { createHTML: (val) => val });
15
+ } catch (e) {}
23
16
  const unsafeToTrustedHTML = policy ? (val) => policy.createHTML(val) : (val) => val;
24
17
  const svgNS = "http://www.w3.org/2000/svg";
25
18
  const mathmlNS = "http://www.w3.org/1998/Math/MathML";
26
19
  const doc = typeof document !== "undefined" ? document : null;
27
20
  const templateContainer = doc && /* @__PURE__ */ doc.createElement("template");
28
21
  const nodeOps = {
29
- insert: (child, parent, anchor) => {
30
- parent.insertBefore(child, anchor || null);
31
- },
32
- remove: (child) => {
33
- const parent = child.parentNode;
34
- if (parent) {
35
- parent.removeChild(child);
36
- }
37
- },
38
- createElement: (tag, namespace, is, props) => {
39
- const el = namespace === "svg" ? doc.createElementNS(svgNS, tag) : namespace === "mathml" ? doc.createElementNS(mathmlNS, tag) : is ? doc.createElement(tag, { is }) : doc.createElement(tag);
40
- if (tag === "select" && props && props.multiple != null) {
41
- el.setAttribute("multiple", props.multiple);
42
- }
43
- return el;
44
- },
45
- createText: (text) => doc.createTextNode(text),
46
- createComment: (text) => doc.createComment(text),
47
- setText: (node, text) => {
48
- node.nodeValue = text;
49
- },
50
- setElementText: (el, text) => {
51
- el.textContent = text;
52
- },
53
- parentNode: (node) => node.parentNode,
54
- nextSibling: (node) => node.nextSibling,
55
- querySelector: (selector) => doc.querySelector(selector),
56
- setScopeId(el, id) {
57
- el.setAttribute(id, "");
58
- },
59
- // __UNSAFE__
60
- // Reason: innerHTML.
61
- // Static content here can only come from compiled templates.
62
- // As long as the user only uses trusted templates, this is safe.
63
- insertStaticContent(content, parent, anchor, namespace, start, end) {
64
- const before = anchor ? anchor.previousSibling : parent.lastChild;
65
- if (start && (start === end || start.nextSibling)) {
66
- while (true) {
67
- parent.insertBefore(start.cloneNode(true), anchor);
68
- if (start === end || !(start = start.nextSibling)) break;
69
- }
70
- } else {
71
- templateContainer.innerHTML = unsafeToTrustedHTML(
72
- namespace === "svg" ? `<svg>${content}</svg>` : namespace === "mathml" ? `<math>${content}</math>` : content
73
- );
74
- const template = templateContainer.content;
75
- if (namespace === "svg" || namespace === "mathml") {
76
- const wrapper = template.firstChild;
77
- while (wrapper.firstChild) {
78
- template.appendChild(wrapper.firstChild);
79
- }
80
- template.removeChild(wrapper);
81
- }
82
- parent.insertBefore(template, anchor);
83
- }
84
- return [
85
- // first
86
- before ? before.nextSibling : parent.firstChild,
87
- // last
88
- anchor ? anchor.previousSibling : parent.lastChild
89
- ];
90
- }
22
+ insert: (child, parent, anchor) => {
23
+ parent.insertBefore(child, anchor || null);
24
+ },
25
+ remove: (child) => {
26
+ const parent = child.parentNode;
27
+ if (parent) parent.removeChild(child);
28
+ },
29
+ createElement: (tag, namespace, is, props) => {
30
+ const el = namespace === "svg" ? doc.createElementNS(svgNS, tag) : namespace === "mathml" ? doc.createElementNS(mathmlNS, tag) : is ? doc.createElement(tag, { is }) : doc.createElement(tag);
31
+ if (tag === "select" && props && props.multiple != null) el.setAttribute("multiple", props.multiple);
32
+ return el;
33
+ },
34
+ createText: (text) => doc.createTextNode(text),
35
+ createComment: (text) => doc.createComment(text),
36
+ setText: (node, text) => {
37
+ node.nodeValue = text;
38
+ },
39
+ setElementText: (el, text) => {
40
+ el.textContent = text;
41
+ },
42
+ parentNode: (node) => node.parentNode,
43
+ nextSibling: (node) => node.nextSibling,
44
+ querySelector: (selector) => doc.querySelector(selector),
45
+ setScopeId(el, id) {
46
+ el.setAttribute(id, "");
47
+ },
48
+ insertStaticContent(content, parent, anchor, namespace, start, end) {
49
+ const before = anchor ? anchor.previousSibling : parent.lastChild;
50
+ if (start && (start === end || start.nextSibling)) while (true) {
51
+ parent.insertBefore(start.cloneNode(true), anchor);
52
+ if (start === end || !(start = start.nextSibling)) break;
53
+ }
54
+ else {
55
+ templateContainer.innerHTML = unsafeToTrustedHTML(namespace === "svg" ? `<svg>${content}</svg>` : namespace === "mathml" ? `<math>${content}</math>` : content);
56
+ const template = templateContainer.content;
57
+ if (namespace === "svg" || namespace === "mathml") {
58
+ const wrapper = template.firstChild;
59
+ while (wrapper.firstChild) template.appendChild(wrapper.firstChild);
60
+ template.removeChild(wrapper);
61
+ }
62
+ parent.insertBefore(template, anchor);
63
+ }
64
+ return [before ? before.nextSibling : parent.firstChild, anchor ? anchor.previousSibling : parent.lastChild];
65
+ }
91
66
  };
92
67
 
68
+ //#endregion
69
+ //#region packages/runtime-dom/src/components/Transition.ts
93
70
  const TRANSITION = "transition";
94
71
  const ANIMATION = "animation";
95
- const vtcKey = /* @__PURE__ */ Symbol("_vtc");
72
+ const vtcKey = Symbol("_vtc");
96
73
  const DOMTransitionPropsValidators = {
97
- name: String,
98
- type: String,
99
- css: {
100
- type: Boolean,
101
- default: true
102
- },
103
- duration: [String, Number, Object],
104
- enterFromClass: String,
105
- enterActiveClass: String,
106
- enterToClass: String,
107
- appearFromClass: String,
108
- appearActiveClass: String,
109
- appearToClass: String,
110
- leaveFromClass: String,
111
- leaveActiveClass: String,
112
- leaveToClass: String
74
+ name: String,
75
+ type: String,
76
+ css: {
77
+ type: Boolean,
78
+ default: true
79
+ },
80
+ duration: [
81
+ String,
82
+ Number,
83
+ Object
84
+ ],
85
+ enterFromClass: String,
86
+ enterActiveClass: String,
87
+ enterToClass: String,
88
+ appearFromClass: String,
89
+ appearActiveClass: String,
90
+ appearToClass: String,
91
+ leaveFromClass: String,
92
+ leaveActiveClass: String,
93
+ leaveToClass: String
113
94
  };
114
- const TransitionPropsValidators = /* @__PURE__ */ shared.extend(
115
- {},
116
- runtimeCore.BaseTransitionPropsValidators,
117
- DOMTransitionPropsValidators
118
- );
95
+ const TransitionPropsValidators = /* @__PURE__ */ (0, _vue_shared.extend)({}, _vue_runtime_core.BaseTransitionPropsValidators, DOMTransitionPropsValidators);
96
+ /**
97
+ * Wrap logic that attaches extra properties to Transition in a function
98
+ * so that it can be annotated as pure
99
+ */
119
100
  const decorate$1 = (t) => {
120
- t.displayName = "Transition";
121
- t.props = TransitionPropsValidators;
122
- return t;
101
+ t.displayName = "Transition";
102
+ t.props = TransitionPropsValidators;
103
+ return t;
123
104
  };
124
- const Transition = /* @__PURE__ */ decorate$1(
125
- (props, { slots }) => runtimeCore.h(runtimeCore.BaseTransition, resolveTransitionProps(props), slots)
126
- );
105
+ /**
106
+ * DOM Transition is a higher-order-component based on the platform-agnostic
107
+ * base Transition component, with DOM-specific logic.
108
+ */
109
+ const Transition = /* @__PURE__ */ decorate$1((props, { slots }) => (0, _vue_runtime_core.h)(_vue_runtime_core.BaseTransition, resolveTransitionProps(props), slots));
110
+ /**
111
+ * #3227 Incoming hooks may be merged into arrays when wrapping Transition
112
+ * with custom HOCs.
113
+ */
127
114
  const callHook = (hook, args = []) => {
128
- if (shared.isArray(hook)) {
129
- hook.forEach((h2) => h2(...args));
130
- } else if (hook) {
131
- hook(...args);
132
- }
115
+ if ((0, _vue_shared.isArray)(hook)) hook.forEach((h) => h(...args));
116
+ else if (hook) hook(...args);
133
117
  };
118
+ /**
119
+ * Check if a hook expects a callback (2nd arg), which means the user
120
+ * intends to explicitly control the end of the transition.
121
+ */
134
122
  const hasExplicitCallback = (hook) => {
135
- return hook ? shared.isArray(hook) ? hook.some((h2) => h2.length > 1) : hook.length > 1 : false;
123
+ return hook ? (0, _vue_shared.isArray)(hook) ? hook.some((h) => h.length > 1) : hook.length > 1 : false;
136
124
  };
137
125
  function resolveTransitionProps(rawProps) {
138
- const baseProps = {};
139
- for (const key in rawProps) {
140
- if (!(key in DOMTransitionPropsValidators)) {
141
- baseProps[key] = rawProps[key];
142
- }
143
- }
144
- if (rawProps.css === false) {
145
- return baseProps;
146
- }
147
- const {
148
- name = "v",
149
- type,
150
- duration,
151
- enterFromClass = `${name}-enter-from`,
152
- enterActiveClass = `${name}-enter-active`,
153
- enterToClass = `${name}-enter-to`,
154
- appearFromClass = enterFromClass,
155
- appearActiveClass = enterActiveClass,
156
- appearToClass = enterToClass,
157
- leaveFromClass = `${name}-leave-from`,
158
- leaveActiveClass = `${name}-leave-active`,
159
- leaveToClass = `${name}-leave-to`
160
- } = rawProps;
161
- const durations = normalizeDuration(duration);
162
- const enterDuration = durations && durations[0];
163
- const leaveDuration = durations && durations[1];
164
- const {
165
- onBeforeEnter,
166
- onEnter,
167
- onEnterCancelled,
168
- onLeave,
169
- onLeaveCancelled,
170
- onBeforeAppear = onBeforeEnter,
171
- onAppear = onEnter,
172
- onAppearCancelled = onEnterCancelled
173
- } = baseProps;
174
- const finishEnter = (el, isAppear, done, isCancelled) => {
175
- el._enterCancelled = isCancelled;
176
- removeTransitionClass(el, isAppear ? appearToClass : enterToClass);
177
- removeTransitionClass(el, isAppear ? appearActiveClass : enterActiveClass);
178
- done && done();
179
- };
180
- const finishLeave = (el, done) => {
181
- el._isLeaving = false;
182
- removeTransitionClass(el, leaveFromClass);
183
- removeTransitionClass(el, leaveToClass);
184
- removeTransitionClass(el, leaveActiveClass);
185
- done && done();
186
- };
187
- const makeEnterHook = (isAppear) => {
188
- return (el, done) => {
189
- const hook = isAppear ? onAppear : onEnter;
190
- const resolve = () => finishEnter(el, isAppear, done);
191
- callHook(hook, [el, resolve]);
192
- nextFrame(() => {
193
- removeTransitionClass(el, isAppear ? appearFromClass : enterFromClass);
194
- addTransitionClass(el, isAppear ? appearToClass : enterToClass);
195
- if (!hasExplicitCallback(hook)) {
196
- whenTransitionEnds(el, type, enterDuration, resolve);
197
- }
198
- });
199
- };
200
- };
201
- return shared.extend(baseProps, {
202
- onBeforeEnter(el) {
203
- callHook(onBeforeEnter, [el]);
204
- addTransitionClass(el, enterFromClass);
205
- addTransitionClass(el, enterActiveClass);
206
- },
207
- onBeforeAppear(el) {
208
- callHook(onBeforeAppear, [el]);
209
- addTransitionClass(el, appearFromClass);
210
- addTransitionClass(el, appearActiveClass);
211
- },
212
- onEnter: makeEnterHook(false),
213
- onAppear: makeEnterHook(true),
214
- onLeave(el, done) {
215
- el._isLeaving = true;
216
- const resolve = () => finishLeave(el, done);
217
- addTransitionClass(el, leaveFromClass);
218
- if (!el._enterCancelled) {
219
- forceReflow(el);
220
- addTransitionClass(el, leaveActiveClass);
221
- } else {
222
- addTransitionClass(el, leaveActiveClass);
223
- forceReflow(el);
224
- }
225
- nextFrame(() => {
226
- if (!el._isLeaving) {
227
- return;
228
- }
229
- removeTransitionClass(el, leaveFromClass);
230
- addTransitionClass(el, leaveToClass);
231
- if (!hasExplicitCallback(onLeave)) {
232
- whenTransitionEnds(el, type, leaveDuration, resolve);
233
- }
234
- });
235
- callHook(onLeave, [el, resolve]);
236
- },
237
- onEnterCancelled(el) {
238
- finishEnter(el, false, void 0, true);
239
- callHook(onEnterCancelled, [el]);
240
- },
241
- onAppearCancelled(el) {
242
- finishEnter(el, true, void 0, true);
243
- callHook(onAppearCancelled, [el]);
244
- },
245
- onLeaveCancelled(el) {
246
- finishLeave(el);
247
- callHook(onLeaveCancelled, [el]);
248
- }
249
- });
126
+ const baseProps = {};
127
+ for (const key in rawProps) if (!(key in DOMTransitionPropsValidators)) baseProps[key] = rawProps[key];
128
+ if (rawProps.css === false) return baseProps;
129
+ const { name = "v", type, duration, enterFromClass = `${name}-enter-from`, enterActiveClass = `${name}-enter-active`, enterToClass = `${name}-enter-to`, appearFromClass = enterFromClass, appearActiveClass = enterActiveClass, appearToClass = enterToClass, leaveFromClass = `${name}-leave-from`, leaveActiveClass = `${name}-leave-active`, leaveToClass = `${name}-leave-to` } = rawProps;
130
+ const durations = normalizeDuration(duration);
131
+ const enterDuration = durations && durations[0];
132
+ const leaveDuration = durations && durations[1];
133
+ const { onBeforeEnter, onEnter, onEnterCancelled, onLeave, onLeaveCancelled, onBeforeAppear = onBeforeEnter, onAppear = onEnter, onAppearCancelled = onEnterCancelled } = baseProps;
134
+ const finishEnter = (el, isAppear, done, isCancelled) => {
135
+ el._enterCancelled = isCancelled;
136
+ removeTransitionClass(el, isAppear ? appearToClass : enterToClass);
137
+ removeTransitionClass(el, isAppear ? appearActiveClass : enterActiveClass);
138
+ done && done();
139
+ };
140
+ const finishLeave = (el, done) => {
141
+ el._isLeaving = false;
142
+ removeTransitionClass(el, leaveFromClass);
143
+ removeTransitionClass(el, leaveToClass);
144
+ removeTransitionClass(el, leaveActiveClass);
145
+ done && done();
146
+ };
147
+ const makeEnterHook = (isAppear) => {
148
+ return (el, done) => {
149
+ const hook = isAppear ? onAppear : onEnter;
150
+ const resolve = () => finishEnter(el, isAppear, done);
151
+ callHook(hook, [el, resolve]);
152
+ nextFrame(() => {
153
+ removeTransitionClass(el, isAppear ? appearFromClass : enterFromClass);
154
+ addTransitionClass(el, isAppear ? appearToClass : enterToClass);
155
+ if (!hasExplicitCallback(hook)) whenTransitionEnds(el, type, enterDuration, resolve);
156
+ });
157
+ };
158
+ };
159
+ return (0, _vue_shared.extend)(baseProps, {
160
+ onBeforeEnter(el) {
161
+ callHook(onBeforeEnter, [el]);
162
+ addTransitionClass(el, enterFromClass);
163
+ addTransitionClass(el, enterActiveClass);
164
+ },
165
+ onBeforeAppear(el) {
166
+ callHook(onBeforeAppear, [el]);
167
+ addTransitionClass(el, appearFromClass);
168
+ addTransitionClass(el, appearActiveClass);
169
+ },
170
+ onEnter: makeEnterHook(false),
171
+ onAppear: makeEnterHook(true),
172
+ onLeave(el, done) {
173
+ el._isLeaving = true;
174
+ const resolve = () => finishLeave(el, done);
175
+ addTransitionClass(el, leaveFromClass);
176
+ if (!el._enterCancelled) {
177
+ forceReflow(el);
178
+ addTransitionClass(el, leaveActiveClass);
179
+ } else {
180
+ addTransitionClass(el, leaveActiveClass);
181
+ forceReflow(el);
182
+ }
183
+ nextFrame(() => {
184
+ if (!el._isLeaving) return;
185
+ removeTransitionClass(el, leaveFromClass);
186
+ addTransitionClass(el, leaveToClass);
187
+ if (!hasExplicitCallback(onLeave)) whenTransitionEnds(el, type, leaveDuration, resolve);
188
+ });
189
+ callHook(onLeave, [el, resolve]);
190
+ },
191
+ onEnterCancelled(el) {
192
+ finishEnter(el, false, void 0, true);
193
+ callHook(onEnterCancelled, [el]);
194
+ },
195
+ onAppearCancelled(el) {
196
+ finishEnter(el, true, void 0, true);
197
+ callHook(onAppearCancelled, [el]);
198
+ },
199
+ onLeaveCancelled(el) {
200
+ finishLeave(el);
201
+ callHook(onLeaveCancelled, [el]);
202
+ }
203
+ });
250
204
  }
251
205
  function normalizeDuration(duration) {
252
- if (duration == null) {
253
- return null;
254
- } else if (shared.isObject(duration)) {
255
- return [NumberOf(duration.enter), NumberOf(duration.leave)];
256
- } else {
257
- const n = NumberOf(duration);
258
- return [n, n];
259
- }
206
+ if (duration == null) return null;
207
+ else if ((0, _vue_shared.isObject)(duration)) return [NumberOf(duration.enter), NumberOf(duration.leave)];
208
+ else {
209
+ const n = NumberOf(duration);
210
+ return [n, n];
211
+ }
260
212
  }
261
213
  function NumberOf(val) {
262
- const res = shared.toNumber(val);
263
- return res;
214
+ return (0, _vue_shared.toNumber)(val);
264
215
  }
265
216
  function addTransitionClass(el, cls) {
266
- cls.split(/\s+/).forEach((c) => c && el.classList.add(c));
267
- (el[vtcKey] || (el[vtcKey] = /* @__PURE__ */ new Set())).add(cls);
217
+ cls.split(/\s+/).forEach((c) => c && el.classList.add(c));
218
+ (el[vtcKey] || (el[vtcKey] = /* @__PURE__ */ new Set())).add(cls);
268
219
  }
269
220
  function removeTransitionClass(el, cls) {
270
- cls.split(/\s+/).forEach((c) => c && el.classList.remove(c));
271
- const _vtc = el[vtcKey];
272
- if (_vtc) {
273
- _vtc.delete(cls);
274
- if (!_vtc.size) {
275
- el[vtcKey] = void 0;
276
- }
277
- }
221
+ cls.split(/\s+/).forEach((c) => c && el.classList.remove(c));
222
+ const _vtc = el[vtcKey];
223
+ if (_vtc) {
224
+ _vtc.delete(cls);
225
+ if (!_vtc.size) el[vtcKey] = void 0;
226
+ }
278
227
  }
279
228
  function nextFrame(cb) {
280
- requestAnimationFrame(() => {
281
- requestAnimationFrame(cb);
282
- });
229
+ requestAnimationFrame(() => {
230
+ requestAnimationFrame(cb);
231
+ });
283
232
  }
284
233
  let endId = 0;
285
234
  function whenTransitionEnds(el, expectedType, explicitTimeout, resolve) {
286
- const id = el._endId = ++endId;
287
- const resolveIfNotStale = () => {
288
- if (id === el._endId) {
289
- resolve();
290
- }
291
- };
292
- if (explicitTimeout != null) {
293
- return setTimeout(resolveIfNotStale, explicitTimeout);
294
- }
295
- const { type, timeout, propCount } = getTransitionInfo(el, expectedType);
296
- if (!type) {
297
- return resolve();
298
- }
299
- const endEvent = type + "end";
300
- let ended = 0;
301
- const end = () => {
302
- el.removeEventListener(endEvent, onEnd);
303
- resolveIfNotStale();
304
- };
305
- const onEnd = (e) => {
306
- if (e.target === el && ++ended >= propCount) {
307
- end();
308
- }
309
- };
310
- setTimeout(() => {
311
- if (ended < propCount) {
312
- end();
313
- }
314
- }, timeout + 1);
315
- el.addEventListener(endEvent, onEnd);
235
+ const id = el._endId = ++endId;
236
+ const resolveIfNotStale = () => {
237
+ if (id === el._endId) resolve();
238
+ };
239
+ if (explicitTimeout != null) return setTimeout(resolveIfNotStale, explicitTimeout);
240
+ const { type, timeout, propCount } = getTransitionInfo(el, expectedType);
241
+ if (!type) return resolve();
242
+ const endEvent = type + "end";
243
+ let ended = 0;
244
+ const end = () => {
245
+ el.removeEventListener(endEvent, onEnd);
246
+ resolveIfNotStale();
247
+ };
248
+ const onEnd = (e) => {
249
+ if (e.target === el && ++ended >= propCount) end();
250
+ };
251
+ setTimeout(() => {
252
+ if (ended < propCount) end();
253
+ }, timeout + 1);
254
+ el.addEventListener(endEvent, onEnd);
316
255
  }
317
256
  function getTransitionInfo(el, expectedType) {
318
- const styles = window.getComputedStyle(el);
319
- const getStyleProperties = (key) => (styles[key] || "").split(", ");
320
- const transitionDelays = getStyleProperties(`${TRANSITION}Delay`);
321
- const transitionDurations = getStyleProperties(`${TRANSITION}Duration`);
322
- const transitionTimeout = getTimeout(transitionDelays, transitionDurations);
323
- const animationDelays = getStyleProperties(`${ANIMATION}Delay`);
324
- const animationDurations = getStyleProperties(`${ANIMATION}Duration`);
325
- const animationTimeout = getTimeout(animationDelays, animationDurations);
326
- let type = null;
327
- let timeout = 0;
328
- let propCount = 0;
329
- if (expectedType === TRANSITION) {
330
- if (transitionTimeout > 0) {
331
- type = TRANSITION;
332
- timeout = transitionTimeout;
333
- propCount = transitionDurations.length;
334
- }
335
- } else if (expectedType === ANIMATION) {
336
- if (animationTimeout > 0) {
337
- type = ANIMATION;
338
- timeout = animationTimeout;
339
- propCount = animationDurations.length;
340
- }
341
- } else {
342
- timeout = Math.max(transitionTimeout, animationTimeout);
343
- type = timeout > 0 ? transitionTimeout > animationTimeout ? TRANSITION : ANIMATION : null;
344
- propCount = type ? type === TRANSITION ? transitionDurations.length : animationDurations.length : 0;
345
- }
346
- const hasTransform = type === TRANSITION && /\b(?:transform|all)(?:,|$)/.test(
347
- getStyleProperties(`${TRANSITION}Property`).toString()
348
- );
349
- return {
350
- type,
351
- timeout,
352
- propCount,
353
- hasTransform
354
- };
257
+ const styles = window.getComputedStyle(el);
258
+ const getStyleProperties = (key) => (styles[key] || "").split(", ");
259
+ const transitionDelays = getStyleProperties(`${TRANSITION}Delay`);
260
+ const transitionDurations = getStyleProperties(`${TRANSITION}Duration`);
261
+ const transitionTimeout = getTimeout(transitionDelays, transitionDurations);
262
+ const animationDelays = getStyleProperties(`${ANIMATION}Delay`);
263
+ const animationDurations = getStyleProperties(`${ANIMATION}Duration`);
264
+ const animationTimeout = getTimeout(animationDelays, animationDurations);
265
+ let type = null;
266
+ let timeout = 0;
267
+ let propCount = 0;
268
+ if (expectedType === TRANSITION) {
269
+ if (transitionTimeout > 0) {
270
+ type = TRANSITION;
271
+ timeout = transitionTimeout;
272
+ propCount = transitionDurations.length;
273
+ }
274
+ } else if (expectedType === ANIMATION) {
275
+ if (animationTimeout > 0) {
276
+ type = ANIMATION;
277
+ timeout = animationTimeout;
278
+ propCount = animationDurations.length;
279
+ }
280
+ } else {
281
+ timeout = Math.max(transitionTimeout, animationTimeout);
282
+ type = timeout > 0 ? transitionTimeout > animationTimeout ? TRANSITION : ANIMATION : null;
283
+ propCount = type ? type === TRANSITION ? transitionDurations.length : animationDurations.length : 0;
284
+ }
285
+ const hasTransform = type === TRANSITION && /\b(?:transform|all)(?:,|$)/.test(getStyleProperties(`${TRANSITION}Property`).toString());
286
+ return {
287
+ type,
288
+ timeout,
289
+ propCount,
290
+ hasTransform
291
+ };
355
292
  }
356
293
  function getTimeout(delays, durations) {
357
- while (delays.length < durations.length) {
358
- delays = delays.concat(delays);
359
- }
360
- return Math.max(...durations.map((d, i) => toMs(d) + toMs(delays[i])));
294
+ while (delays.length < durations.length) delays = delays.concat(delays);
295
+ return Math.max(...durations.map((d, i) => toMs(d) + toMs(delays[i])));
361
296
  }
362
297
  function toMs(s) {
363
- if (s === "auto") return 0;
364
- return Number(s.slice(0, -1).replace(",", ".")) * 1e3;
298
+ if (s === "auto") return 0;
299
+ return Number(s.slice(0, -1).replace(",", ".")) * 1e3;
365
300
  }
366
301
  function forceReflow(el) {
367
- const targetDocument = el ? el.ownerDocument : document;
368
- return targetDocument.body.offsetHeight;
302
+ return (el ? el.ownerDocument : document).body.offsetHeight;
369
303
  }
370
304
 
305
+ //#endregion
306
+ //#region packages/runtime-dom/src/modules/class.ts
371
307
  function patchClass(el, value, isSVG) {
372
- const transitionClasses = el[vtcKey];
373
- if (transitionClasses) {
374
- value = (value ? [value, ...transitionClasses] : [...transitionClasses]).join(" ");
375
- }
376
- if (value == null) {
377
- el.removeAttribute("class");
378
- } else if (isSVG) {
379
- el.setAttribute("class", value);
380
- } else {
381
- el.className = value;
382
- }
308
+ const transitionClasses = el[vtcKey];
309
+ if (transitionClasses) value = (value ? [value, ...transitionClasses] : [...transitionClasses]).join(" ");
310
+ if (value == null) el.removeAttribute("class");
311
+ else if (isSVG) el.setAttribute("class", value);
312
+ else el.className = value;
383
313
  }
384
314
 
385
- const vShowOriginalDisplay = /* @__PURE__ */ Symbol("_vod");
386
- const vShowHidden = /* @__PURE__ */ Symbol("_vsh");
315
+ //#endregion
316
+ //#region packages/runtime-dom/src/directives/vShow.ts
317
+ const vShowOriginalDisplay = Symbol("_vod");
318
+ const vShowHidden = Symbol("_vsh");
387
319
  const vShow = {
388
- // used for prop mismatch check during hydration
389
- name: "show",
390
- beforeMount(el, { value }, { transition }) {
391
- el[vShowOriginalDisplay] = el.style.display === "none" ? "" : el.style.display;
392
- if (transition && value) {
393
- transition.beforeEnter(el);
394
- } else {
395
- setDisplay(el, value);
396
- }
397
- },
398
- mounted(el, { value }, { transition }) {
399
- if (transition && value) {
400
- transition.enter(el);
401
- }
402
- },
403
- updated(el, { value, oldValue }, { transition }) {
404
- if (!value === !oldValue) return;
405
- if (transition) {
406
- if (value) {
407
- transition.beforeEnter(el);
408
- setDisplay(el, true);
409
- transition.enter(el);
410
- } else {
411
- transition.leave(el, () => {
412
- setDisplay(el, false);
413
- });
414
- }
415
- } else {
416
- setDisplay(el, value);
417
- }
418
- },
419
- beforeUnmount(el, { value }) {
420
- setDisplay(el, value);
421
- }
320
+ name: "show",
321
+ beforeMount(el, { value }, { transition }) {
322
+ el[vShowOriginalDisplay] = el.style.display === "none" ? "" : el.style.display;
323
+ if (transition && value) transition.beforeEnter(el);
324
+ else setDisplay(el, value);
325
+ },
326
+ mounted(el, { value }, { transition }) {
327
+ if (transition && value) transition.enter(el);
328
+ },
329
+ updated(el, { value, oldValue }, { transition }) {
330
+ if (!value === !oldValue) return;
331
+ if (transition) if (value) {
332
+ transition.beforeEnter(el);
333
+ setDisplay(el, true);
334
+ transition.enter(el);
335
+ } else transition.leave(el, () => {
336
+ setDisplay(el, false);
337
+ });
338
+ else setDisplay(el, value);
339
+ },
340
+ beforeUnmount(el, { value }) {
341
+ setDisplay(el, value);
342
+ }
422
343
  };
423
344
  function setDisplay(el, value) {
424
- el.style.display = value ? el[vShowOriginalDisplay] : "none";
425
- el[vShowHidden] = !value;
345
+ el.style.display = value ? el[vShowOriginalDisplay] : "none";
346
+ el[vShowHidden] = !value;
426
347
  }
427
348
  function initVShowForSSR() {
428
- vShow.getSSRProps = ({ value }) => {
429
- if (!value) {
430
- return { style: { display: "none" } };
431
- }
432
- };
349
+ vShow.getSSRProps = ({ value }) => {
350
+ if (!value) return { style: { display: "none" } };
351
+ };
433
352
  }
434
353
 
435
- const CSS_VAR_TEXT = /* @__PURE__ */ Symbol("");
436
- function useCssVars(getter) {
437
- return;
438
- }
354
+ //#endregion
355
+ //#region packages/runtime-dom/src/helpers/useCssVars.ts
356
+ const CSS_VAR_TEXT = Symbol("");
357
+ /**
358
+ * Runtime helper for SFC's CSS variable injection feature.
359
+ * @private
360
+ */
361
+ function useCssVars(getter) {}
439
362
 
363
+ //#endregion
364
+ //#region packages/runtime-dom/src/modules/style.ts
440
365
  const displayRE = /(?:^|;)\s*display\s*:/;
441
366
  function patchStyle(el, prev, next) {
442
- const style = el.style;
443
- const isCssString = shared.isString(next);
444
- let hasControlledDisplay = false;
445
- if (next && !isCssString) {
446
- if (prev) {
447
- if (!shared.isString(prev)) {
448
- for (const key in prev) {
449
- if (next[key] == null) {
450
- setStyle(style, key, "");
451
- }
452
- }
453
- } else {
454
- for (const prevStyle of prev.split(";")) {
455
- const key = prevStyle.slice(0, prevStyle.indexOf(":")).trim();
456
- if (next[key] == null) {
457
- setStyle(style, key, "");
458
- }
459
- }
460
- }
461
- }
462
- for (const key in next) {
463
- if (key === "display") {
464
- hasControlledDisplay = true;
465
- }
466
- setStyle(style, key, next[key]);
467
- }
468
- } else {
469
- if (isCssString) {
470
- if (prev !== next) {
471
- const cssVarText = style[CSS_VAR_TEXT];
472
- if (cssVarText) {
473
- next += ";" + cssVarText;
474
- }
475
- style.cssText = next;
476
- hasControlledDisplay = displayRE.test(next);
477
- }
478
- } else if (prev) {
479
- el.removeAttribute("style");
480
- }
481
- }
482
- if (vShowOriginalDisplay in el) {
483
- el[vShowOriginalDisplay] = hasControlledDisplay ? style.display : "";
484
- if (el[vShowHidden]) {
485
- style.display = "none";
486
- }
487
- }
367
+ const style = el.style;
368
+ const isCssString = (0, _vue_shared.isString)(next);
369
+ let hasControlledDisplay = false;
370
+ if (next && !isCssString) {
371
+ if (prev) if (!(0, _vue_shared.isString)(prev)) {
372
+ for (const key in prev) if (next[key] == null) setStyle(style, key, "");
373
+ } else for (const prevStyle of prev.split(";")) {
374
+ const key = prevStyle.slice(0, prevStyle.indexOf(":")).trim();
375
+ if (next[key] == null) setStyle(style, key, "");
376
+ }
377
+ for (const key in next) {
378
+ if (key === "display") hasControlledDisplay = true;
379
+ setStyle(style, key, next[key]);
380
+ }
381
+ } else if (isCssString) {
382
+ if (prev !== next) {
383
+ const cssVarText = style[CSS_VAR_TEXT];
384
+ if (cssVarText) next += ";" + cssVarText;
385
+ style.cssText = next;
386
+ hasControlledDisplay = displayRE.test(next);
387
+ }
388
+ } else if (prev) el.removeAttribute("style");
389
+ if (vShowOriginalDisplay in el) {
390
+ el[vShowOriginalDisplay] = hasControlledDisplay ? style.display : "";
391
+ if (el[vShowHidden]) style.display = "none";
392
+ }
488
393
  }
489
394
  const importantRE = /\s*!important$/;
490
395
  function setStyle(style, name, rawVal) {
491
- if (shared.isArray(rawVal)) {
492
- rawVal.forEach((v) => setStyle(style, name, v));
493
- } else {
494
- const val = rawVal == null ? "" : String(rawVal);
495
- if (name.startsWith("--")) {
496
- style.setProperty(name, val);
497
- } else {
498
- const prefixed = autoPrefix(style, name);
499
- if (importantRE.test(val)) {
500
- style.setProperty(
501
- shared.hyphenate(prefixed),
502
- val.replace(importantRE, ""),
503
- "important"
504
- );
505
- } else {
506
- style[prefixed] = val;
507
- }
508
- }
509
- }
396
+ if ((0, _vue_shared.isArray)(rawVal)) rawVal.forEach((v) => setStyle(style, name, v));
397
+ else {
398
+ const val = rawVal == null ? "" : String(rawVal);
399
+ if (name.startsWith("--")) style.setProperty(name, val);
400
+ else {
401
+ const prefixed = autoPrefix(style, name);
402
+ if (importantRE.test(val)) style.setProperty((0, _vue_shared.hyphenate)(prefixed), val.replace(importantRE, ""), "important");
403
+ else style[prefixed] = val;
404
+ }
405
+ }
510
406
  }
511
- const prefixes = ["Webkit", "Moz", "ms"];
407
+ const prefixes = [
408
+ "Webkit",
409
+ "Moz",
410
+ "ms"
411
+ ];
512
412
  const prefixCache = {};
513
413
  function autoPrefix(style, rawName) {
514
- const cached = prefixCache[rawName];
515
- if (cached) {
516
- return cached;
517
- }
518
- let name = runtimeCore.camelize(rawName);
519
- if (name !== "filter" && name in style) {
520
- return prefixCache[rawName] = name;
521
- }
522
- name = shared.capitalize(name);
523
- for (let i = 0; i < prefixes.length; i++) {
524
- const prefixed = prefixes[i] + name;
525
- if (prefixed in style) {
526
- return prefixCache[rawName] = prefixed;
527
- }
528
- }
529
- return rawName;
414
+ const cached = prefixCache[rawName];
415
+ if (cached) return cached;
416
+ let name = (0, _vue_runtime_core.camelize)(rawName);
417
+ if (name !== "filter" && name in style) return prefixCache[rawName] = name;
418
+ name = (0, _vue_shared.capitalize)(name);
419
+ for (let i = 0; i < prefixes.length; i++) {
420
+ const prefixed = prefixes[i] + name;
421
+ if (prefixed in style) return prefixCache[rawName] = prefixed;
422
+ }
423
+ return rawName;
530
424
  }
531
425
 
426
+ //#endregion
427
+ //#region packages/runtime-dom/src/modules/attrs.ts
532
428
  const xlinkNS = "http://www.w3.org/1999/xlink";
533
- function patchAttr(el, key, value, isSVG, instance, isBoolean = shared.isSpecialBooleanAttr(key)) {
534
- if (isSVG && key.startsWith("xlink:")) {
535
- if (value == null) {
536
- el.removeAttributeNS(xlinkNS, key.slice(6, key.length));
537
- } else {
538
- el.setAttributeNS(xlinkNS, key, value);
539
- }
540
- } else {
541
- if (value == null || isBoolean && !shared.includeBooleanAttr(value)) {
542
- el.removeAttribute(key);
543
- } else {
544
- el.setAttribute(
545
- key,
546
- isBoolean ? "" : shared.isSymbol(value) ? String(value) : value
547
- );
548
- }
549
- }
429
+ function patchAttr(el, key, value, isSVG, instance, isBoolean = (0, _vue_shared.isSpecialBooleanAttr)(key)) {
430
+ if (isSVG && key.startsWith("xlink:")) if (value == null) el.removeAttributeNS(xlinkNS, key.slice(6, key.length));
431
+ else el.setAttributeNS(xlinkNS, key, value);
432
+ else if (value == null || isBoolean && !(0, _vue_shared.includeBooleanAttr)(value)) el.removeAttribute(key);
433
+ else el.setAttribute(key, isBoolean ? "" : (0, _vue_shared.isSymbol)(value) ? String(value) : value);
550
434
  }
551
435
 
436
+ //#endregion
437
+ //#region packages/runtime-dom/src/modules/props.ts
552
438
  function patchDOMProp(el, key, value, parentComponent, attrName) {
553
- if (key === "innerHTML" || key === "textContent") {
554
- if (value != null) {
555
- el[key] = key === "innerHTML" ? unsafeToTrustedHTML(value) : value;
556
- }
557
- return;
558
- }
559
- const tag = el.tagName;
560
- if (key === "value" && shared.canSetValueDirectly(tag)) {
561
- const oldValue = tag === "OPTION" ? el.getAttribute("value") || "" : el.value;
562
- const newValue = value == null ? (
563
- // #11647: value should be set as empty string for null and undefined,
564
- // but <input type="checkbox"> should be set as 'on'.
565
- el.type === "checkbox" ? "on" : ""
566
- ) : String(value);
567
- if (oldValue !== newValue || !("_value" in el)) {
568
- el.value = newValue;
569
- }
570
- if (value == null) {
571
- el.removeAttribute(key);
572
- }
573
- el._value = value;
574
- return;
575
- }
576
- let needRemove = false;
577
- if (value === "" || value == null) {
578
- const type = typeof el[key];
579
- if (type === "boolean") {
580
- value = shared.includeBooleanAttr(value);
581
- } else if (value == null && type === "string") {
582
- value = "";
583
- needRemove = true;
584
- } else if (type === "number") {
585
- value = 0;
586
- needRemove = true;
587
- }
588
- }
589
- try {
590
- el[key] = value;
591
- } catch (e) {
592
- }
593
- needRemove && el.removeAttribute(attrName || key);
439
+ if (key === "innerHTML" || key === "textContent") {
440
+ if (value != null) el[key] = key === "innerHTML" ? unsafeToTrustedHTML(value) : value;
441
+ return;
442
+ }
443
+ const tag = el.tagName;
444
+ if (key === "value" && (0, _vue_shared.canSetValueDirectly)(tag)) {
445
+ const oldValue = tag === "OPTION" ? el.getAttribute("value") || "" : el.value;
446
+ const newValue = value == null ? el.type === "checkbox" ? "on" : "" : String(value);
447
+ if (oldValue !== newValue || !("_value" in el)) el.value = newValue;
448
+ if (value == null) el.removeAttribute(key);
449
+ el._value = value;
450
+ return;
451
+ }
452
+ let needRemove = false;
453
+ if (value === "" || value == null) {
454
+ const type = typeof el[key];
455
+ if (type === "boolean") value = (0, _vue_shared.includeBooleanAttr)(value);
456
+ else if (value == null && type === "string") {
457
+ value = "";
458
+ needRemove = true;
459
+ } else if (type === "number") {
460
+ value = 0;
461
+ needRemove = true;
462
+ }
463
+ }
464
+ try {
465
+ el[key] = value;
466
+ } catch (e) {}
467
+ needRemove && el.removeAttribute(attrName || key);
594
468
  }
595
469
 
470
+ //#endregion
471
+ //#region packages/runtime-dom/src/modules/events.ts
596
472
  function addEventListener(el, event, handler, options) {
597
- el.addEventListener(event, handler, options);
473
+ el.addEventListener(event, handler, options);
598
474
  }
599
475
  function removeEventListener(el, event, handler, options) {
600
- el.removeEventListener(event, handler, options);
476
+ el.removeEventListener(event, handler, options);
601
477
  }
602
- const veiKey = /* @__PURE__ */ Symbol("_vei");
478
+ const veiKey = Symbol("_vei");
603
479
  function patchEvent(el, rawName, prevValue, nextValue, instance = null) {
604
- const invokers = el[veiKey] || (el[veiKey] = {});
605
- const existingInvoker = invokers[rawName];
606
- if (nextValue && existingInvoker) {
607
- existingInvoker.value = nextValue;
608
- } else {
609
- const [name, options] = parseName(rawName);
610
- if (nextValue) {
611
- const invoker = invokers[rawName] = createInvoker(
612
- nextValue,
613
- instance
614
- );
615
- addEventListener(el, name, invoker, options);
616
- } else if (existingInvoker) {
617
- removeEventListener(el, name, existingInvoker, options);
618
- invokers[rawName] = void 0;
619
- }
620
- }
480
+ const invokers = el[veiKey] || (el[veiKey] = {});
481
+ const existingInvoker = invokers[rawName];
482
+ if (nextValue && existingInvoker) existingInvoker.value = nextValue;
483
+ else {
484
+ const [name, options] = parseName(rawName);
485
+ if (nextValue) addEventListener(el, name, invokers[rawName] = createInvoker(nextValue, instance), options);
486
+ else if (existingInvoker) {
487
+ removeEventListener(el, name, existingInvoker, options);
488
+ invokers[rawName] = void 0;
489
+ }
490
+ }
621
491
  }
622
492
  const optionsModifierRE = /(?:Once|Passive|Capture)$/;
623
493
  function parseName(name) {
624
- let options;
625
- if (optionsModifierRE.test(name)) {
626
- options = {};
627
- let m;
628
- while (m = name.match(optionsModifierRE)) {
629
- name = name.slice(0, name.length - m[0].length);
630
- options[m[0].toLowerCase()] = true;
631
- }
632
- }
633
- const event = name[2] === ":" ? name.slice(3) : shared.hyphenate(name.slice(2));
634
- return [event, options];
494
+ let options;
495
+ if (optionsModifierRE.test(name)) {
496
+ options = {};
497
+ let m;
498
+ while (m = name.match(optionsModifierRE)) {
499
+ name = name.slice(0, name.length - m[0].length);
500
+ options[m[0].toLowerCase()] = true;
501
+ }
502
+ }
503
+ return [name[2] === ":" ? name.slice(3) : (0, _vue_shared.hyphenate)(name.slice(2)), options];
635
504
  }
636
505
  let cachedNow = 0;
637
506
  const p = /* @__PURE__ */ Promise.resolve();
638
507
  const getNow = () => cachedNow || (p.then(() => cachedNow = 0), cachedNow = Date.now());
639
508
  function createInvoker(initialValue, instance) {
640
- const invoker = (e) => {
641
- if (!e._vts) {
642
- e._vts = Date.now();
643
- } else if (e._vts <= invoker.attached) {
644
- return;
645
- }
646
- runtimeCore.callWithAsyncErrorHandling(
647
- patchStopImmediatePropagation(e, invoker.value),
648
- instance,
649
- 5,
650
- [e]
651
- );
652
- };
653
- invoker.value = initialValue;
654
- invoker.attached = getNow();
655
- return invoker;
509
+ const invoker = (e) => {
510
+ if (!e._vts) e._vts = Date.now();
511
+ else if (e._vts <= invoker.attached) return;
512
+ (0, _vue_runtime_core.callWithAsyncErrorHandling)(patchStopImmediatePropagation(e, invoker.value), instance, 5, [e]);
513
+ };
514
+ invoker.value = initialValue;
515
+ invoker.attached = getNow();
516
+ return invoker;
656
517
  }
657
518
  function patchStopImmediatePropagation(e, value) {
658
- if (shared.isArray(value)) {
659
- const originalStop = e.stopImmediatePropagation;
660
- e.stopImmediatePropagation = () => {
661
- originalStop.call(e);
662
- e._stopped = true;
663
- };
664
- return value.map(
665
- (fn) => (e2) => !e2._stopped && fn && fn(e2)
666
- );
667
- } else {
668
- return value;
669
- }
519
+ if ((0, _vue_shared.isArray)(value)) {
520
+ const originalStop = e.stopImmediatePropagation;
521
+ e.stopImmediatePropagation = () => {
522
+ originalStop.call(e);
523
+ e._stopped = true;
524
+ };
525
+ return value.map((fn) => (e) => !e._stopped && fn && fn(e));
526
+ } else return value;
670
527
  }
671
528
 
529
+ //#endregion
530
+ //#region packages/runtime-dom/src/patchProp.ts
672
531
  const patchProp = (el, key, prevValue, nextValue, namespace, parentComponent) => {
673
- const isSVG = namespace === "svg";
674
- if (key === "class") {
675
- patchClass(el, nextValue, isSVG);
676
- } else if (key === "style") {
677
- patchStyle(el, prevValue, nextValue);
678
- } else if (shared.isOn(key)) {
679
- if (!shared.isModelListener(key)) {
680
- patchEvent(el, key, prevValue, nextValue, parentComponent);
681
- }
682
- } else if (key[0] === "." ? (key = key.slice(1), true) : key[0] === "^" ? (key = key.slice(1), false) : shouldSetAsProp(el, key, nextValue, isSVG)) {
683
- patchDOMProp(el, key, nextValue);
684
- if (!el.tagName.includes("-") && (key === "value" || key === "checked" || key === "selected")) {
685
- patchAttr(el, key, nextValue, isSVG, parentComponent, key !== "value");
686
- }
687
- } else if (
688
- // #11081 force set props for possible async custom element
689
- el._isVueCE && (/[A-Z]/.test(key) || !shared.isString(nextValue))
690
- ) {
691
- patchDOMProp(el, shared.camelize(key), nextValue, parentComponent, key);
692
- } else {
693
- if (key === "true-value") {
694
- el._trueValue = nextValue;
695
- } else if (key === "false-value") {
696
- el._falseValue = nextValue;
697
- }
698
- patchAttr(el, key, nextValue, isSVG);
699
- }
532
+ const isSVG = namespace === "svg";
533
+ if (key === "class") patchClass(el, nextValue, isSVG);
534
+ else if (key === "style") patchStyle(el, prevValue, nextValue);
535
+ else if ((0, _vue_shared.isOn)(key)) {
536
+ if (!(0, _vue_shared.isModelListener)(key)) patchEvent(el, key, prevValue, nextValue, parentComponent);
537
+ } else if (key[0] === "." ? (key = key.slice(1), true) : key[0] === "^" ? (key = key.slice(1), false) : shouldSetAsProp(el, key, nextValue, isSVG)) {
538
+ patchDOMProp(el, key, nextValue, parentComponent);
539
+ if (!el.tagName.includes("-") && (key === "value" || key === "checked" || key === "selected")) patchAttr(el, key, nextValue, isSVG, parentComponent, key !== "value");
540
+ } else if (el._isVueCE && (/[A-Z]/.test(key) || !(0, _vue_shared.isString)(nextValue))) patchDOMProp(el, (0, _vue_shared.camelize)(key), nextValue, parentComponent, key);
541
+ else {
542
+ if (key === "true-value") el._trueValue = nextValue;
543
+ else if (key === "false-value") el._falseValue = nextValue;
544
+ patchAttr(el, key, nextValue, isSVG, parentComponent);
545
+ }
700
546
  };
701
547
  function shouldSetAsProp(el, key, value, isSVG) {
702
- if (isSVG) {
703
- if (key === "innerHTML" || key === "textContent") {
704
- return true;
705
- }
706
- if (key in el && shared.isNativeOn(key) && shared.isFunction(value)) {
707
- return true;
708
- }
709
- return false;
710
- }
711
- if (shared.shouldSetAsAttr(el.tagName, key)) {
712
- return false;
713
- }
714
- if (shared.isNativeOn(key) && shared.isString(value)) {
715
- return false;
716
- }
717
- return key in el;
548
+ if (isSVG) {
549
+ if (key === "innerHTML" || key === "textContent") return true;
550
+ if (key in el && (0, _vue_shared.isNativeOn)(key) && (0, _vue_shared.isFunction)(value)) return true;
551
+ return false;
552
+ }
553
+ if ((0, _vue_shared.shouldSetAsAttr)(el.tagName, key)) return false;
554
+ if ((0, _vue_shared.isNativeOn)(key) && (0, _vue_shared.isString)(value)) return false;
555
+ return key in el;
718
556
  }
719
557
 
558
+ //#endregion
559
+ //#region packages/runtime-dom/src/apiCustomElement.ts
720
560
  const REMOVAL = {};
721
- // @__NO_SIDE_EFFECTS__
561
+ /* @__NO_SIDE_EFFECTS__ */
722
562
  function defineCustomElement(options, extraOptions, _createApp) {
723
- let Comp = runtimeCore.defineComponent(options, extraOptions);
724
- if (shared.isPlainObject(Comp)) Comp = shared.extend({}, Comp, extraOptions);
725
- class VueCustomElement extends VueElement {
726
- constructor(initialProps) {
727
- super(Comp, initialProps, _createApp);
728
- }
729
- }
730
- VueCustomElement.def = Comp;
731
- return VueCustomElement;
563
+ let Comp = (0, _vue_runtime_core.defineComponent)(options, extraOptions);
564
+ if ((0, _vue_shared.isPlainObject)(Comp)) Comp = (0, _vue_shared.extend)({}, Comp, extraOptions);
565
+ class VueCustomElement extends VueElement {
566
+ constructor(initialProps) {
567
+ super(Comp, initialProps, _createApp);
568
+ }
569
+ }
570
+ VueCustomElement.def = Comp;
571
+ return VueCustomElement;
732
572
  }
733
- const defineSSRCustomElement = (/* @__NO_SIDE_EFFECTS__ */ (options, extraOptions) => {
734
- return /* @__PURE__ */ defineCustomElement(options, extraOptions, createSSRApp);
573
+ const defineSSRCustomElement = ((options, extraOptions) => {
574
+ return /* @__PURE__ */ defineCustomElement(options, extraOptions, createSSRApp);
735
575
  });
736
- const BaseClass = typeof HTMLElement !== "undefined" ? HTMLElement : class {
576
+ const BaseClass = typeof HTMLElement !== "undefined" ? HTMLElement : class {};
577
+ var VueElementBase = class VueElementBase extends BaseClass {
578
+ constructor(def, props = {}, createAppFn) {
579
+ super();
580
+ this._isVueCE = true;
581
+ this._instance = null;
582
+ this._app = null;
583
+ this._connected = false;
584
+ this._resolved = false;
585
+ this._numberProps = null;
586
+ this._styleChildren = /* @__PURE__ */ new WeakSet();
587
+ this._patching = false;
588
+ this._dirty = false;
589
+ this._ob = null;
590
+ this._def = def;
591
+ this._props = props;
592
+ this._createApp = createAppFn;
593
+ this._nonce = def.nonce;
594
+ if (this._needsHydration()) this._root = this.shadowRoot;
595
+ else if (def.shadowRoot !== false) {
596
+ this.attachShadow((0, _vue_shared.extend)({}, def.shadowRootOptions, { mode: "open" }));
597
+ this._root = this.shadowRoot;
598
+ } else this._root = this;
599
+ }
600
+ connectedCallback() {
601
+ if (!this.isConnected) return;
602
+ if (!this.shadowRoot && !this._resolved) this._parseSlots();
603
+ this._connected = true;
604
+ let parent = this;
605
+ while (parent = parent && (parent.parentNode || parent.host)) if (parent instanceof VueElementBase) {
606
+ this._parent = parent;
607
+ break;
608
+ }
609
+ if (!this._instance) if (this._resolved) this._mountComponent(this._def);
610
+ else if (parent && parent._pendingResolve) this._pendingResolve = parent._pendingResolve.then(() => {
611
+ this._pendingResolve = void 0;
612
+ this._resolveDef();
613
+ });
614
+ else this._resolveDef();
615
+ }
616
+ disconnectedCallback() {
617
+ this._connected = false;
618
+ (0, _vue_runtime_core.nextTick)(() => {
619
+ if (!this._connected) {
620
+ if (this._ob) {
621
+ this._ob.disconnect();
622
+ this._ob = null;
623
+ }
624
+ this._unmount();
625
+ if (this._teleportTargets) {
626
+ this._teleportTargets.clear();
627
+ this._teleportTargets = void 0;
628
+ }
629
+ }
630
+ });
631
+ }
632
+ _setParent(parent = this._parent) {
633
+ if (parent && this._instance) {
634
+ this._instance.parent = parent._instance;
635
+ this._inheritParentContext(parent);
636
+ }
637
+ }
638
+ _inheritParentContext(parent = this._parent) {
639
+ if (parent && this._app) Object.setPrototypeOf(this._app._context.provides, parent._instance.provides);
640
+ }
641
+ _processMutations(mutations) {
642
+ for (const m of mutations) this._setAttr(m.attributeName);
643
+ }
644
+ /**
645
+ * resolve inner component definition (handle possible async component)
646
+ */
647
+ _resolveDef() {
648
+ if (this._pendingResolve) return;
649
+ for (let i = 0; i < this.attributes.length; i++) this._setAttr(this.attributes[i].name);
650
+ this._ob = new MutationObserver(this._processMutations.bind(this));
651
+ this._ob.observe(this, { attributes: true });
652
+ const resolve = (def) => {
653
+ this._resolved = true;
654
+ this._pendingResolve = void 0;
655
+ const { props, styles } = def;
656
+ let numberProps;
657
+ if (props && !(0, _vue_shared.isArray)(props)) for (const key in props) {
658
+ const opt = props[key];
659
+ if (opt === Number || opt && opt.type === Number) {
660
+ if (key in this._props) this._props[key] = (0, _vue_shared.toNumber)(this._props[key]);
661
+ (numberProps || (numberProps = Object.create(null)))[(0, _vue_shared.camelize)(key)] = true;
662
+ }
663
+ }
664
+ this._numberProps = numberProps;
665
+ this._resolveProps(def);
666
+ if (this.shadowRoot) this._applyStyles(styles);
667
+ this._mountComponent(def);
668
+ };
669
+ const asyncDef = this._def.__asyncLoader;
670
+ if (asyncDef) {
671
+ const { configureApp } = this._def;
672
+ this._pendingResolve = asyncDef().then((def) => {
673
+ def.configureApp = configureApp;
674
+ this._def = def;
675
+ resolve(def);
676
+ });
677
+ } else resolve(this._def);
678
+ }
679
+ _mountComponent(def) {
680
+ this._mount(def);
681
+ this._processExposed();
682
+ }
683
+ _processExposed() {
684
+ const exposed = this._instance && this._instance.exposed;
685
+ if (!exposed) return;
686
+ for (const key in exposed) if (!(0, _vue_shared.hasOwn)(this, key)) Object.defineProperty(this, key, { get: () => (0, _vue_runtime_core.unref)(exposed[key]) });
687
+ }
688
+ _processInstance() {
689
+ this._instance.ce = this;
690
+ this._instance.isCE = true;
691
+ const dispatch = (event, args) => {
692
+ this.dispatchEvent(new CustomEvent(event, (0, _vue_shared.isPlainObject)(args[0]) ? (0, _vue_shared.extend)({ detail: args }, args[0]) : { detail: args }));
693
+ };
694
+ this._instance.emit = (event, ...args) => {
695
+ dispatch(event, args);
696
+ if ((0, _vue_shared.hyphenate)(event) !== event) dispatch((0, _vue_shared.hyphenate)(event), args);
697
+ };
698
+ this._setParent();
699
+ }
700
+ _resolveProps(def) {
701
+ const { props } = def;
702
+ const declaredPropKeys = (0, _vue_shared.isArray)(props) ? props : Object.keys(props || {});
703
+ for (const key of Object.keys(this)) if (key[0] !== "_" && declaredPropKeys.includes(key)) this._setProp(key, this[key]);
704
+ for (const key of declaredPropKeys.map(_vue_shared.camelize)) Object.defineProperty(this, key, {
705
+ get() {
706
+ return this._getProp(key);
707
+ },
708
+ set(val) {
709
+ this._setProp(key, val, true, !this._patching);
710
+ }
711
+ });
712
+ }
713
+ _setAttr(key) {
714
+ if (key.startsWith("data-v-")) return;
715
+ const has = this.hasAttribute(key);
716
+ let value = has ? this.getAttribute(key) : REMOVAL;
717
+ const camelKey = (0, _vue_shared.camelize)(key);
718
+ if (has && this._numberProps && this._numberProps[camelKey]) value = (0, _vue_shared.toNumber)(value);
719
+ this._setProp(camelKey, value, false, true);
720
+ }
721
+ /**
722
+ * @internal
723
+ */
724
+ _getProp(key) {
725
+ return this._props[key];
726
+ }
727
+ /**
728
+ * @internal
729
+ */
730
+ _setProp(key, val, shouldReflect = true, shouldUpdate = false) {
731
+ if (val !== this._props[key]) {
732
+ this._dirty = true;
733
+ if (val === REMOVAL) delete this._props[key];
734
+ else {
735
+ this._props[key] = val;
736
+ if (key === "key" && this._app && this._app._ceVNode) this._app._ceVNode.key = val;
737
+ }
738
+ if (shouldUpdate && this._instance) this._update();
739
+ if (shouldReflect) {
740
+ const ob = this._ob;
741
+ if (ob) {
742
+ this._processMutations(ob.takeRecords());
743
+ ob.disconnect();
744
+ }
745
+ if (val === true) this.setAttribute((0, _vue_shared.hyphenate)(key), "");
746
+ else if (typeof val === "string" || typeof val === "number") this.setAttribute((0, _vue_shared.hyphenate)(key), val + "");
747
+ else if (!val) this.removeAttribute((0, _vue_shared.hyphenate)(key));
748
+ ob && ob.observe(this, { attributes: true });
749
+ }
750
+ }
751
+ }
752
+ _applyStyles(styles, owner) {
753
+ if (!styles) return;
754
+ if (owner) {
755
+ if (owner === this._def || this._styleChildren.has(owner)) return;
756
+ this._styleChildren.add(owner);
757
+ }
758
+ const nonce = this._nonce;
759
+ for (let i = styles.length - 1; i >= 0; i--) {
760
+ const s = document.createElement("style");
761
+ if (nonce) s.setAttribute("nonce", nonce);
762
+ s.textContent = styles[i];
763
+ this.shadowRoot.prepend(s);
764
+ }
765
+ }
766
+ /**
767
+ * Only called when shadowRoot is false
768
+ */
769
+ _parseSlots() {
770
+ const slots = this._slots = {};
771
+ let n;
772
+ while (n = this.firstChild) {
773
+ const slotName = n.nodeType === 1 && n.getAttribute("slot") || "default";
774
+ (slots[slotName] || (slots[slotName] = [])).push(n);
775
+ this.removeChild(n);
776
+ }
777
+ }
778
+ /**
779
+ * Only called when shadowRoot is false
780
+ */
781
+ _renderSlots() {
782
+ const outlets = this._getSlots();
783
+ const scopeId = this._instance.type.__scopeId;
784
+ const slotReplacements = /* @__PURE__ */ new Map();
785
+ for (let i = 0; i < outlets.length; i++) {
786
+ const o = outlets[i];
787
+ const slotName = o.getAttribute("name") || "default";
788
+ const content = this._slots[slotName];
789
+ const parent = o.parentNode;
790
+ const replacementNodes = [];
791
+ if (content) for (const n of content) {
792
+ if (scopeId && n.nodeType === 1) {
793
+ const id = scopeId + "-s";
794
+ const walker = document.createTreeWalker(n, 1);
795
+ n.setAttribute(id, "");
796
+ let child;
797
+ while (child = walker.nextNode()) child.setAttribute(id, "");
798
+ }
799
+ parent.insertBefore(n, o);
800
+ replacementNodes.push(n);
801
+ }
802
+ else while (o.firstChild) {
803
+ const child = o.firstChild;
804
+ parent.insertBefore(child, o);
805
+ replacementNodes.push(child);
806
+ }
807
+ parent.removeChild(o);
808
+ slotReplacements.set(o, replacementNodes);
809
+ }
810
+ this._updateSlotNodes(slotReplacements);
811
+ }
812
+ /**
813
+ * @internal
814
+ */
815
+ _getSlots() {
816
+ const roots = [this];
817
+ if (this._teleportTargets) roots.push(...this._teleportTargets);
818
+ const slots = /* @__PURE__ */ new Set();
819
+ for (const root of roots) {
820
+ const found = root.querySelectorAll("slot");
821
+ for (let i = 0; i < found.length; i++) slots.add(found[i]);
822
+ }
823
+ return Array.from(slots);
824
+ }
825
+ /**
826
+ * @internal
827
+ */
828
+ _injectChildStyle(comp) {
829
+ this._applyStyles(comp.styles, comp);
830
+ }
831
+ /**
832
+ * @internal
833
+ */
834
+ _beginPatch() {
835
+ this._patching = true;
836
+ this._dirty = false;
837
+ }
838
+ /**
839
+ * @internal
840
+ */
841
+ _endPatch() {
842
+ this._patching = false;
843
+ if (this._dirty && this._instance) this._update();
844
+ }
845
+ /**
846
+ * @internal
847
+ */
848
+ _hasShadowRoot() {
849
+ return this._def.shadowRoot !== false;
850
+ }
851
+ /**
852
+ * @internal
853
+ */
854
+ _removeChildStyle(comp) {}
855
+ };
856
+ var VueElement = class extends VueElementBase {
857
+ constructor(def, props = {}, createAppFn = createApp) {
858
+ super(def, props, createAppFn);
859
+ }
860
+ _needsHydration() {
861
+ if (this.shadowRoot && this._createApp !== createApp) return true;
862
+ return false;
863
+ }
864
+ _mount(def) {
865
+ this._app = this._createApp(def);
866
+ this._inheritParentContext();
867
+ if (def.configureApp) def.configureApp(this._app);
868
+ this._app._ceVNode = this._createVNode();
869
+ this._app.mount(this._root);
870
+ }
871
+ _update() {
872
+ if (!this._app) return;
873
+ const vnode = this._createVNode();
874
+ vnode.appContext = this._app._context;
875
+ render(vnode, this._root);
876
+ }
877
+ _unmount() {
878
+ if (this._app) this._app.unmount();
879
+ if (this._instance && this._instance.ce) this._instance.ce = void 0;
880
+ this._app = this._instance = null;
881
+ }
882
+ /**
883
+ * Only called when shadowRoot is false
884
+ */
885
+ _updateSlotNodes(replacements) {}
886
+ _createVNode() {
887
+ const baseProps = {};
888
+ if (!this.shadowRoot) baseProps.onVnodeMounted = baseProps.onVnodeUpdated = this._renderSlots.bind(this);
889
+ const vnode = (0, _vue_runtime_core.createVNode)(this._def, (0, _vue_shared.extend)(baseProps, this._props));
890
+ if (!this._instance) vnode.ce = (instance) => {
891
+ this._instance = instance;
892
+ this._processInstance();
893
+ };
894
+ return vnode;
895
+ }
737
896
  };
738
- class VueElementBase extends BaseClass {
739
- constructor(def, props = {}, createAppFn) {
740
- super();
741
- this._isVueCE = true;
742
- /**
743
- * @internal
744
- */
745
- this._instance = null;
746
- /**
747
- * @internal
748
- */
749
- this._app = null;
750
- this._connected = false;
751
- this._resolved = false;
752
- this._numberProps = null;
753
- this._styleChildren = /* @__PURE__ */ new WeakSet();
754
- this._patching = false;
755
- this._dirty = false;
756
- this._ob = null;
757
- this._def = def;
758
- this._props = props;
759
- this._createApp = createAppFn;
760
- this._nonce = def.nonce;
761
- if (this._needsHydration()) {
762
- this._root = this.shadowRoot;
763
- } else {
764
- if (def.shadowRoot !== false) {
765
- this.attachShadow(
766
- shared.extend({}, def.shadowRootOptions, {
767
- mode: "open"
768
- })
769
- );
770
- this._root = this.shadowRoot;
771
- } else {
772
- this._root = this;
773
- }
774
- }
775
- }
776
- connectedCallback() {
777
- if (!this.isConnected) return;
778
- if (!this.shadowRoot && !this._resolved) {
779
- this._parseSlots();
780
- }
781
- this._connected = true;
782
- let parent = this;
783
- while (parent = parent && (parent.parentNode || parent.host)) {
784
- if (parent instanceof VueElementBase) {
785
- this._parent = parent;
786
- break;
787
- }
788
- }
789
- if (!this._instance) {
790
- if (this._resolved) {
791
- this._mountComponent(this._def);
792
- } else {
793
- if (parent && parent._pendingResolve) {
794
- this._pendingResolve = parent._pendingResolve.then(() => {
795
- this._pendingResolve = void 0;
796
- this._resolveDef();
797
- });
798
- } else {
799
- this._resolveDef();
800
- }
801
- }
802
- }
803
- }
804
- disconnectedCallback() {
805
- this._connected = false;
806
- runtimeCore.nextTick(() => {
807
- if (!this._connected) {
808
- if (this._ob) {
809
- this._ob.disconnect();
810
- this._ob = null;
811
- }
812
- this._unmount();
813
- if (this._teleportTargets) {
814
- this._teleportTargets.clear();
815
- this._teleportTargets = void 0;
816
- }
817
- }
818
- });
819
- }
820
- _setParent(parent = this._parent) {
821
- if (parent && this._instance) {
822
- this._instance.parent = parent._instance;
823
- this._inheritParentContext(parent);
824
- }
825
- }
826
- _inheritParentContext(parent = this._parent) {
827
- if (parent && this._app) {
828
- Object.setPrototypeOf(
829
- this._app._context.provides,
830
- parent._instance.provides
831
- );
832
- }
833
- }
834
- _processMutations(mutations) {
835
- for (const m of mutations) {
836
- this._setAttr(m.attributeName);
837
- }
838
- }
839
- /**
840
- * resolve inner component definition (handle possible async component)
841
- */
842
- _resolveDef() {
843
- if (this._pendingResolve) {
844
- return;
845
- }
846
- for (let i = 0; i < this.attributes.length; i++) {
847
- this._setAttr(this.attributes[i].name);
848
- }
849
- this._ob = new MutationObserver(this._processMutations.bind(this));
850
- this._ob.observe(this, { attributes: true });
851
- const resolve = (def) => {
852
- this._resolved = true;
853
- this._pendingResolve = void 0;
854
- const { props, styles } = def;
855
- let numberProps;
856
- if (props && !shared.isArray(props)) {
857
- for (const key in props) {
858
- const opt = props[key];
859
- if (opt === Number || opt && opt.type === Number) {
860
- if (key in this._props) {
861
- this._props[key] = shared.toNumber(this._props[key]);
862
- }
863
- (numberProps || (numberProps = /* @__PURE__ */ Object.create(null)))[shared.camelize(key)] = true;
864
- }
865
- }
866
- }
867
- this._numberProps = numberProps;
868
- this._resolveProps(def);
869
- if (this.shadowRoot) {
870
- this._applyStyles(styles);
871
- }
872
- this._mountComponent(def);
873
- };
874
- const asyncDef = this._def.__asyncLoader;
875
- if (asyncDef) {
876
- const { configureApp } = this._def;
877
- this._pendingResolve = asyncDef().then((def) => {
878
- def.configureApp = configureApp;
879
- this._def = def;
880
- resolve(def);
881
- });
882
- } else {
883
- resolve(this._def);
884
- }
885
- }
886
- _mountComponent(def) {
887
- this._mount(def);
888
- this._processExposed();
889
- }
890
- _processExposed() {
891
- const exposed = this._instance && this._instance.exposed;
892
- if (!exposed) return;
893
- for (const key in exposed) {
894
- if (!shared.hasOwn(this, key)) {
895
- Object.defineProperty(this, key, {
896
- // unwrap ref to be consistent with public instance behavior
897
- get: () => runtimeCore.unref(exposed[key])
898
- });
899
- }
900
- }
901
- }
902
- _processInstance() {
903
- this._instance.ce = this;
904
- this._instance.isCE = true;
905
- const dispatch = (event, args) => {
906
- this.dispatchEvent(
907
- new CustomEvent(
908
- event,
909
- shared.isPlainObject(args[0]) ? shared.extend({ detail: args }, args[0]) : { detail: args }
910
- )
911
- );
912
- };
913
- this._instance.emit = (event, ...args) => {
914
- dispatch(event, args);
915
- if (shared.hyphenate(event) !== event) {
916
- dispatch(shared.hyphenate(event), args);
917
- }
918
- };
919
- this._setParent();
920
- }
921
- _resolveProps(def) {
922
- const { props } = def;
923
- const declaredPropKeys = shared.isArray(props) ? props : Object.keys(props || {});
924
- for (const key of Object.keys(this)) {
925
- if (key[0] !== "_" && declaredPropKeys.includes(key)) {
926
- this._setProp(key, this[key]);
927
- }
928
- }
929
- for (const key of declaredPropKeys.map(shared.camelize)) {
930
- Object.defineProperty(this, key, {
931
- get() {
932
- return this._getProp(key);
933
- },
934
- set(val) {
935
- this._setProp(key, val, true, !this._patching);
936
- }
937
- });
938
- }
939
- }
940
- _setAttr(key) {
941
- if (key.startsWith("data-v-")) return;
942
- const has = this.hasAttribute(key);
943
- let value = has ? this.getAttribute(key) : REMOVAL;
944
- const camelKey = shared.camelize(key);
945
- if (has && this._numberProps && this._numberProps[camelKey]) {
946
- value = shared.toNumber(value);
947
- }
948
- this._setProp(camelKey, value, false, true);
949
- }
950
- /**
951
- * @internal
952
- */
953
- _getProp(key) {
954
- return this._props[key];
955
- }
956
- /**
957
- * @internal
958
- */
959
- _setProp(key, val, shouldReflect = true, shouldUpdate = false) {
960
- if (val !== this._props[key]) {
961
- this._dirty = true;
962
- if (val === REMOVAL) {
963
- delete this._props[key];
964
- } else {
965
- this._props[key] = val;
966
- if (key === "key" && this._app && this._app._ceVNode) {
967
- this._app._ceVNode.key = val;
968
- }
969
- }
970
- if (shouldUpdate && this._instance) {
971
- this._update();
972
- }
973
- if (shouldReflect) {
974
- const ob = this._ob;
975
- if (ob) {
976
- this._processMutations(ob.takeRecords());
977
- ob.disconnect();
978
- }
979
- if (val === true) {
980
- this.setAttribute(shared.hyphenate(key), "");
981
- } else if (typeof val === "string" || typeof val === "number") {
982
- this.setAttribute(shared.hyphenate(key), val + "");
983
- } else if (!val) {
984
- this.removeAttribute(shared.hyphenate(key));
985
- }
986
- ob && ob.observe(this, { attributes: true });
987
- }
988
- }
989
- }
990
- _applyStyles(styles, owner) {
991
- if (!styles) return;
992
- if (owner) {
993
- if (owner === this._def || this._styleChildren.has(owner)) {
994
- return;
995
- }
996
- this._styleChildren.add(owner);
997
- }
998
- const nonce = this._nonce;
999
- for (let i = styles.length - 1; i >= 0; i--) {
1000
- const s = document.createElement("style");
1001
- if (nonce) s.setAttribute("nonce", nonce);
1002
- s.textContent = styles[i];
1003
- this.shadowRoot.prepend(s);
1004
- }
1005
- }
1006
- /**
1007
- * Only called when shadowRoot is false
1008
- */
1009
- _parseSlots() {
1010
- const slots = this._slots = {};
1011
- let n;
1012
- while (n = this.firstChild) {
1013
- const slotName = n.nodeType === 1 && n.getAttribute("slot") || "default";
1014
- (slots[slotName] || (slots[slotName] = [])).push(n);
1015
- this.removeChild(n);
1016
- }
1017
- }
1018
- /**
1019
- * Only called when shadowRoot is false
1020
- */
1021
- _renderSlots() {
1022
- const outlets = this._getSlots();
1023
- const scopeId = this._instance.type.__scopeId;
1024
- const slotReplacements = /* @__PURE__ */ new Map();
1025
- for (let i = 0; i < outlets.length; i++) {
1026
- const o = outlets[i];
1027
- const slotName = o.getAttribute("name") || "default";
1028
- const content = this._slots[slotName];
1029
- const parent = o.parentNode;
1030
- const replacementNodes = [];
1031
- if (content) {
1032
- for (const n of content) {
1033
- if (scopeId && n.nodeType === 1) {
1034
- const id = scopeId + "-s";
1035
- const walker = document.createTreeWalker(n, 1);
1036
- n.setAttribute(id, "");
1037
- let child;
1038
- while (child = walker.nextNode()) {
1039
- child.setAttribute(id, "");
1040
- }
1041
- }
1042
- parent.insertBefore(n, o);
1043
- replacementNodes.push(n);
1044
- }
1045
- } else {
1046
- while (o.firstChild) {
1047
- const child = o.firstChild;
1048
- parent.insertBefore(child, o);
1049
- replacementNodes.push(child);
1050
- }
1051
- }
1052
- parent.removeChild(o);
1053
- slotReplacements.set(o, replacementNodes);
1054
- }
1055
- this._updateSlotNodes(slotReplacements);
1056
- }
1057
- /**
1058
- * @internal
1059
- */
1060
- _getSlots() {
1061
- const roots = [this];
1062
- if (this._teleportTargets) {
1063
- roots.push(...this._teleportTargets);
1064
- }
1065
- const slots = /* @__PURE__ */ new Set();
1066
- for (const root of roots) {
1067
- const found = root.querySelectorAll("slot");
1068
- for (let i = 0; i < found.length; i++) {
1069
- slots.add(found[i]);
1070
- }
1071
- }
1072
- return Array.from(slots);
1073
- }
1074
- /**
1075
- * @internal
1076
- */
1077
- _injectChildStyle(comp) {
1078
- this._applyStyles(comp.styles, comp);
1079
- }
1080
- /**
1081
- * @internal
1082
- */
1083
- _beginPatch() {
1084
- this._patching = true;
1085
- this._dirty = false;
1086
- }
1087
- /**
1088
- * @internal
1089
- */
1090
- _endPatch() {
1091
- this._patching = false;
1092
- if (this._dirty && this._instance) {
1093
- this._update();
1094
- }
1095
- }
1096
- /**
1097
- * @internal
1098
- */
1099
- _removeChildStyle(comp) {
1100
- }
1101
- }
1102
- class VueElement extends VueElementBase {
1103
- constructor(def, props = {}, createAppFn = createApp) {
1104
- super(def, props, createAppFn);
1105
- }
1106
- _needsHydration() {
1107
- if (this.shadowRoot && this._createApp !== createApp) {
1108
- return true;
1109
- }
1110
- return false;
1111
- }
1112
- _mount(def) {
1113
- this._app = this._createApp(def);
1114
- this._inheritParentContext();
1115
- if (def.configureApp) {
1116
- def.configureApp(this._app);
1117
- }
1118
- this._app._ceVNode = this._createVNode();
1119
- this._app.mount(this._root);
1120
- }
1121
- _update() {
1122
- if (!this._app) return;
1123
- const vnode = this._createVNode();
1124
- vnode.appContext = this._app._context;
1125
- render(vnode, this._root);
1126
- }
1127
- _unmount() {
1128
- if (this._app) {
1129
- this._app.unmount();
1130
- }
1131
- if (this._instance && this._instance.ce) {
1132
- this._instance.ce = void 0;
1133
- }
1134
- this._app = this._instance = null;
1135
- }
1136
- /**
1137
- * Only called when shadowRoot is false
1138
- */
1139
- _updateSlotNodes(replacements) {
1140
- }
1141
- _createVNode() {
1142
- const baseProps = {};
1143
- if (!this.shadowRoot) {
1144
- baseProps.onVnodeMounted = baseProps.onVnodeUpdated = this._renderSlots.bind(this);
1145
- }
1146
- const vnode = runtimeCore.createVNode(this._def, shared.extend(baseProps, this._props));
1147
- if (!this._instance) {
1148
- vnode.ce = (instance) => {
1149
- this._instance = instance;
1150
- this._processInstance();
1151
- };
1152
- }
1153
- return vnode;
1154
- }
1155
- }
1156
897
  function useHost(caller) {
1157
- const { hasInstance, value } = runtimeCore.useInstanceOption("ce", true);
1158
- const el = value;
1159
- if (el) {
1160
- return el;
1161
- }
1162
- return null;
898
+ const { hasInstance, value } = (0, _vue_runtime_core.useInstanceOption)("ce", true);
899
+ const el = value;
900
+ if (el) return el;
901
+ return null;
1163
902
  }
903
+ /**
904
+ * Retrieve the shadowRoot of the current custom element. Only usable in setup()
905
+ * of a `defineCustomElement` component.
906
+ */
1164
907
  function useShadowRoot() {
1165
- const el = useHost();
1166
- return el && el.shadowRoot;
908
+ const el = useHost();
909
+ return el && el.shadowRoot;
1167
910
  }
1168
911
 
912
+ //#endregion
913
+ //#region packages/runtime-dom/src/helpers/useCssModule.ts
1169
914
  function useCssModule(name = "$style") {
1170
- {
1171
- const { hasInstance, value: type } = runtimeCore.useInstanceOption("type", true);
1172
- if (!hasInstance) {
1173
- return shared.EMPTY_OBJ;
1174
- }
1175
- const modules = type.__cssModules;
1176
- if (!modules) {
1177
- return shared.EMPTY_OBJ;
1178
- }
1179
- const mod = modules[name];
1180
- if (!mod) {
1181
- return shared.EMPTY_OBJ;
1182
- }
1183
- return mod;
1184
- }
915
+ {
916
+ const { hasInstance, value: type } = (0, _vue_runtime_core.useInstanceOption)("type", true);
917
+ if (!hasInstance) return _vue_shared.EMPTY_OBJ;
918
+ const modules = type.__cssModules;
919
+ if (!modules) return _vue_shared.EMPTY_OBJ;
920
+ const mod = modules[name];
921
+ if (!mod) return _vue_shared.EMPTY_OBJ;
922
+ return mod;
923
+ }
1185
924
  }
1186
925
 
926
+ //#endregion
927
+ //#region packages/runtime-dom/src/components/TransitionGroup.ts
1187
928
  const positionMap = /* @__PURE__ */ new WeakMap();
1188
929
  const newPositionMap = /* @__PURE__ */ new WeakMap();
1189
- const moveCbKey = /* @__PURE__ */ Symbol("_moveCb");
1190
- const enterCbKey = /* @__PURE__ */ Symbol("_enterCb");
930
+ const moveCbKey = Symbol("_moveCb");
931
+ const enterCbKey = Symbol("_enterCb");
932
+ /**
933
+ * Wrap logic that modifies TransitionGroup properties in a function
934
+ * so that it can be annotated as pure
935
+ */
1191
936
  const decorate = (t) => {
1192
- delete t.props.mode;
1193
- return t;
937
+ delete t.props.mode;
938
+ return t;
1194
939
  };
1195
940
  const TransitionGroupImpl = /* @__PURE__ */ decorate({
1196
- name: "TransitionGroup",
1197
- props: /* @__PURE__ */ shared.extend({}, TransitionPropsValidators, {
1198
- tag: String,
1199
- moveClass: String
1200
- }),
1201
- setup(props, { slots }) {
1202
- const instance = runtimeCore.getCurrentInstance();
1203
- const state = runtimeCore.useTransitionState();
1204
- let prevChildren;
1205
- let children;
1206
- runtimeCore.onUpdated(() => {
1207
- if (!prevChildren.length) {
1208
- return;
1209
- }
1210
- const moveClass = props.moveClass || `${props.name || "v"}-move`;
1211
- if (!hasCSSTransform(
1212
- prevChildren[0].el,
1213
- instance.vnode.el,
1214
- moveClass
1215
- )) {
1216
- prevChildren = [];
1217
- return;
1218
- }
1219
- prevChildren.forEach((vnode) => callPendingCbs(vnode.el));
1220
- prevChildren.forEach(recordPosition);
1221
- const movedChildren = prevChildren.filter(applyTranslation);
1222
- forceReflow(instance.vnode.el);
1223
- movedChildren.forEach((c) => {
1224
- const el = c.el;
1225
- handleMovedChildren(el, moveClass);
1226
- });
1227
- prevChildren = [];
1228
- });
1229
- return () => {
1230
- const rawProps = runtimeCore.toRaw(props);
1231
- const cssTransitionProps = resolveTransitionProps(rawProps);
1232
- let tag = rawProps.tag || runtimeCore.Fragment;
1233
- prevChildren = [];
1234
- if (children) {
1235
- for (let i = 0; i < children.length; i++) {
1236
- const child = children[i];
1237
- if (child.el && child.el instanceof Element) {
1238
- prevChildren.push(child);
1239
- runtimeCore.setTransitionHooks(
1240
- child,
1241
- runtimeCore.resolveTransitionHooks(
1242
- child,
1243
- cssTransitionProps,
1244
- state,
1245
- instance
1246
- )
1247
- );
1248
- positionMap.set(child, {
1249
- left: child.el.offsetLeft,
1250
- top: child.el.offsetTop
1251
- });
1252
- }
1253
- }
1254
- }
1255
- children = slots.default ? runtimeCore.getTransitionRawChildren(slots.default()) : [];
1256
- for (let i = 0; i < children.length; i++) {
1257
- const child = children[i];
1258
- if (child.key != null) {
1259
- runtimeCore.setTransitionHooks(
1260
- child,
1261
- runtimeCore.resolveTransitionHooks(child, cssTransitionProps, state, instance)
1262
- );
1263
- }
1264
- }
1265
- return runtimeCore.createVNode(tag, null, children);
1266
- };
1267
- }
941
+ name: "TransitionGroup",
942
+ props: /* @__PURE__ */ (0, _vue_shared.extend)({}, TransitionPropsValidators, {
943
+ tag: String,
944
+ moveClass: String
945
+ }),
946
+ setup(props, { slots }) {
947
+ const instance = (0, _vue_runtime_core.getCurrentInstance)();
948
+ const state = (0, _vue_runtime_core.useTransitionState)();
949
+ let prevChildren;
950
+ let children;
951
+ (0, _vue_runtime_core.onUpdated)(() => {
952
+ if (!prevChildren.length) return;
953
+ const moveClass = props.moveClass || `${props.name || "v"}-move`;
954
+ if (!hasCSSTransform(prevChildren[0].el, instance.vnode.el, moveClass)) {
955
+ prevChildren = [];
956
+ return;
957
+ }
958
+ prevChildren.forEach((vnode) => callPendingCbs(vnode.el));
959
+ prevChildren.forEach(recordPosition);
960
+ const movedChildren = prevChildren.filter(applyTranslation);
961
+ forceReflow(instance.vnode.el);
962
+ movedChildren.forEach((c) => {
963
+ const el = c.el;
964
+ handleMovedChildren(el, moveClass);
965
+ });
966
+ prevChildren = [];
967
+ });
968
+ return () => {
969
+ const rawProps = (0, _vue_runtime_core.toRaw)(props);
970
+ const cssTransitionProps = resolveTransitionProps(rawProps);
971
+ let tag = rawProps.tag || _vue_runtime_core.Fragment;
972
+ prevChildren = [];
973
+ if (children) for (let i = 0; i < children.length; i++) {
974
+ const child = children[i];
975
+ if (child.el && child.el instanceof Element) {
976
+ prevChildren.push(child);
977
+ (0, _vue_runtime_core.setTransitionHooks)(child, (0, _vue_runtime_core.resolveTransitionHooks)(child, cssTransitionProps, state, instance));
978
+ positionMap.set(child, {
979
+ left: child.el.offsetLeft,
980
+ top: child.el.offsetTop
981
+ });
982
+ }
983
+ }
984
+ children = slots.default ? (0, _vue_runtime_core.getTransitionRawChildren)(slots.default()) : [];
985
+ for (let i = 0; i < children.length; i++) {
986
+ const child = children[i];
987
+ if (child.key != null) (0, _vue_runtime_core.setTransitionHooks)(child, (0, _vue_runtime_core.resolveTransitionHooks)(child, cssTransitionProps, state, instance));
988
+ }
989
+ return (0, _vue_runtime_core.createVNode)(tag, null, children);
990
+ };
991
+ }
1268
992
  });
1269
993
  const TransitionGroup = TransitionGroupImpl;
1270
994
  function callPendingCbs(el) {
1271
- if (el[moveCbKey]) {
1272
- el[moveCbKey]();
1273
- }
1274
- if (el[enterCbKey]) {
1275
- el[enterCbKey]();
1276
- }
995
+ if (el[moveCbKey]) el[moveCbKey]();
996
+ if (el[enterCbKey]) el[enterCbKey]();
1277
997
  }
1278
998
  function recordPosition(c) {
1279
- newPositionMap.set(c, {
1280
- left: c.el.offsetLeft,
1281
- top: c.el.offsetTop
1282
- });
999
+ newPositionMap.set(c, {
1000
+ left: c.el.offsetLeft,
1001
+ top: c.el.offsetTop
1002
+ });
1283
1003
  }
1284
1004
  function applyTranslation(c) {
1285
- if (baseApplyTranslation(
1286
- positionMap.get(c),
1287
- newPositionMap.get(c),
1288
- c.el
1289
- )) {
1290
- return c;
1291
- }
1005
+ if (baseApplyTranslation(positionMap.get(c), newPositionMap.get(c), c.el)) return c;
1292
1006
  }
1293
1007
  function baseApplyTranslation(oldPos, newPos, el) {
1294
- const dx = oldPos.left - newPos.left;
1295
- const dy = oldPos.top - newPos.top;
1296
- if (dx || dy) {
1297
- const s = el.style;
1298
- s.transform = s.webkitTransform = `translate(${dx}px,${dy}px)`;
1299
- s.transitionDuration = "0s";
1300
- return true;
1301
- }
1302
- return false;
1008
+ const dx = oldPos.left - newPos.left;
1009
+ const dy = oldPos.top - newPos.top;
1010
+ if (dx || dy) {
1011
+ const s = el.style;
1012
+ s.transform = s.webkitTransform = `translate(${dx}px,${dy}px)`;
1013
+ s.transitionDuration = "0s";
1014
+ return true;
1015
+ }
1016
+ return false;
1303
1017
  }
1304
1018
  function hasCSSTransform(el, root, moveClass) {
1305
- const clone = el.cloneNode();
1306
- const _vtc = el[vtcKey];
1307
- if (_vtc) {
1308
- _vtc.forEach((cls) => {
1309
- cls.split(/\s+/).forEach((c) => c && clone.classList.remove(c));
1310
- });
1311
- }
1312
- moveClass.split(/\s+/).forEach((c) => c && clone.classList.add(c));
1313
- clone.style.display = "none";
1314
- const container = root.nodeType === 1 ? root : root.parentNode;
1315
- container.appendChild(clone);
1316
- const { hasTransform } = getTransitionInfo(clone);
1317
- container.removeChild(clone);
1318
- return hasTransform;
1019
+ const clone = el.cloneNode();
1020
+ const _vtc = el[vtcKey];
1021
+ if (_vtc) _vtc.forEach((cls) => {
1022
+ cls.split(/\s+/).forEach((c) => c && clone.classList.remove(c));
1023
+ });
1024
+ moveClass.split(/\s+/).forEach((c) => c && clone.classList.add(c));
1025
+ clone.style.display = "none";
1026
+ const container = root.nodeType === 1 ? root : root.parentNode;
1027
+ container.appendChild(clone);
1028
+ const { hasTransform } = getTransitionInfo(clone);
1029
+ container.removeChild(clone);
1030
+ return hasTransform;
1319
1031
  }
1320
1032
  const handleMovedChildren = (el, moveClass) => {
1321
- const style = el.style;
1322
- addTransitionClass(el, moveClass);
1323
- style.transform = style.webkitTransform = style.transitionDuration = "";
1324
- const cb = el[moveCbKey] = (e) => {
1325
- if (e && e.target !== el) {
1326
- return;
1327
- }
1328
- if (!e || e.propertyName.endsWith("transform")) {
1329
- el.removeEventListener("transitionend", cb);
1330
- el[moveCbKey] = null;
1331
- removeTransitionClass(el, moveClass);
1332
- }
1333
- };
1334
- el.addEventListener("transitionend", cb);
1033
+ const style = el.style;
1034
+ addTransitionClass(el, moveClass);
1035
+ style.transform = style.webkitTransform = style.transitionDuration = "";
1036
+ const cb = el[moveCbKey] = (e) => {
1037
+ if (e && e.target !== el) return;
1038
+ if (!e || e.propertyName.endsWith("transform")) {
1039
+ el.removeEventListener("transitionend", cb);
1040
+ el[moveCbKey] = null;
1041
+ removeTransitionClass(el, moveClass);
1042
+ }
1043
+ };
1044
+ el.addEventListener("transitionend", cb);
1335
1045
  };
1336
1046
 
1047
+ //#endregion
1048
+ //#region packages/runtime-dom/src/directives/vModel.ts
1337
1049
  const getModelAssigner = (vnode) => {
1338
- const fn = vnode.props["onUpdate:modelValue"] || false;
1339
- return shared.isArray(fn) ? (value) => shared.invokeArrayFns(fn, value) : fn;
1050
+ const fn = vnode.props["onUpdate:modelValue"] || false;
1051
+ return (0, _vue_shared.isArray)(fn) ? (value) => (0, _vue_shared.invokeArrayFns)(fn, value) : fn;
1340
1052
  };
1341
1053
  function onCompositionStart(e) {
1342
- e.target.composing = true;
1054
+ e.target.composing = true;
1343
1055
  }
1344
1056
  function onCompositionEnd(e) {
1345
- const target = e.target;
1346
- if (target.composing) {
1347
- target.composing = false;
1348
- target.dispatchEvent(new Event("input"));
1349
- }
1057
+ const target = e.target;
1058
+ if (target.composing) {
1059
+ target.composing = false;
1060
+ target.dispatchEvent(new Event("input"));
1061
+ }
1350
1062
  }
1351
- const assignKey = /* @__PURE__ */ Symbol("_assign");
1063
+ const assignKey = Symbol("_assign");
1352
1064
  const vModelText = {
1353
- created(el, { modifiers: { lazy, trim, number } }, vnode) {
1354
- el[assignKey] = getModelAssigner(vnode);
1355
- vModelTextInit(
1356
- el,
1357
- trim,
1358
- number || !!(vnode.props && vnode.props.type === "number"),
1359
- lazy
1360
- );
1361
- },
1362
- // set value on mounted so it's after min/max for type="range"
1363
- mounted(el, { value }) {
1364
- el.value = value == null ? "" : value;
1365
- },
1366
- beforeUpdate(el, { value, oldValue, modifiers: { lazy, trim, number } }, vnode) {
1367
- el[assignKey] = getModelAssigner(vnode);
1368
- vModelTextUpdate(el, oldValue, value, trim, number, lazy);
1369
- }
1065
+ created(el, { modifiers: { lazy, trim, number } }, vnode) {
1066
+ el[assignKey] = getModelAssigner(vnode);
1067
+ vModelTextInit(el, trim, number || !!(vnode.props && vnode.props.type === "number"), lazy);
1068
+ },
1069
+ mounted(el, { value }) {
1070
+ el.value = value == null ? "" : value;
1071
+ },
1072
+ beforeUpdate(el, { value, oldValue, modifiers: { lazy, trim, number } }, vnode) {
1073
+ el[assignKey] = getModelAssigner(vnode);
1074
+ vModelTextUpdate(el, oldValue, value, trim, number, lazy);
1075
+ }
1370
1076
  };
1371
1077
  function castValue(value, trim, number) {
1372
- if (trim) value = value.trim();
1373
- if (number) value = shared.looseToNumber(value);
1374
- return value;
1078
+ if (trim) value = value.trim();
1079
+ if (number) value = (0, _vue_shared.looseToNumber)(value);
1080
+ return value;
1375
1081
  }
1082
+ /**
1083
+ * @internal
1084
+ */
1376
1085
  const vModelTextInit = (el, trim, number, lazy, set) => {
1377
- addEventListener(el, lazy ? "change" : "input", (e) => {
1378
- if (e.target.composing) return;
1379
- (0, el[assignKey])(
1380
- castValue(el.value, trim, number || el.type === "number")
1381
- );
1382
- });
1383
- if (trim || number) {
1384
- addEventListener(el, "change", () => {
1385
- el.value = castValue(el.value, trim, number || el.type === "number");
1386
- });
1387
- }
1388
- if (!lazy) {
1389
- addEventListener(el, "compositionstart", onCompositionStart);
1390
- addEventListener(el, "compositionend", onCompositionEnd);
1391
- addEventListener(el, "change", onCompositionEnd);
1392
- }
1086
+ addEventListener(el, lazy ? "change" : "input", (e) => {
1087
+ if (e.target.composing) return;
1088
+ (set || el[assignKey])(castValue(el.value, trim, number || el.type === "number"));
1089
+ });
1090
+ if (trim || number) addEventListener(el, "change", () => {
1091
+ el.value = castValue(el.value, trim, number || el.type === "number");
1092
+ });
1093
+ if (!lazy) {
1094
+ addEventListener(el, "compositionstart", onCompositionStart);
1095
+ addEventListener(el, "compositionend", onCompositionEnd);
1096
+ addEventListener(el, "change", onCompositionEnd);
1097
+ }
1393
1098
  };
1099
+ /**
1100
+ * @internal
1101
+ */
1394
1102
  const vModelTextUpdate = (el, oldValue, value, trim, number, lazy) => {
1395
- if (el.composing) return;
1396
- const elValue = (number || el.type === "number") && !/^0\d/.test(el.value) ? shared.looseToNumber(el.value) : el.value;
1397
- const newValue = value == null ? "" : value;
1398
- if (elValue === newValue) {
1399
- return;
1400
- }
1401
- if (document.activeElement === el && el.type !== "range") {
1402
- if (lazy && value === oldValue) {
1403
- return;
1404
- }
1405
- if (trim && el.value.trim() === newValue) {
1406
- return;
1407
- }
1408
- }
1409
- el.value = newValue;
1103
+ if (el.composing) return;
1104
+ const elValue = (number || el.type === "number") && !/^0\d/.test(el.value) ? (0, _vue_shared.looseToNumber)(el.value) : el.value;
1105
+ const newValue = value == null ? "" : value;
1106
+ if (elValue === newValue) return;
1107
+ if (document.activeElement === el && el.type !== "range") {
1108
+ if (lazy && value === oldValue) return;
1109
+ if (trim && el.value.trim() === newValue) return;
1110
+ }
1111
+ el.value = newValue;
1410
1112
  };
1411
1113
  const vModelCheckbox = {
1412
- // #4096 array checkboxes need to be deep traversed
1413
- deep: true,
1414
- created(el, _, vnode) {
1415
- el[assignKey] = getModelAssigner(vnode);
1416
- vModelCheckboxInit(el);
1417
- },
1418
- // set initial checked on mount to wait for true-value/false-value
1419
- mounted(el, binding, vnode) {
1420
- vModelCheckboxUpdate(
1421
- el,
1422
- binding.oldValue,
1423
- binding.value,
1424
- vnode.props.value
1425
- );
1426
- },
1427
- beforeUpdate(el, binding, vnode) {
1428
- el[assignKey] = getModelAssigner(vnode);
1429
- vModelCheckboxUpdate(
1430
- el,
1431
- binding.oldValue,
1432
- binding.value,
1433
- vnode.props.value
1434
- );
1435
- }
1114
+ deep: true,
1115
+ created(el, _, vnode) {
1116
+ el[assignKey] = getModelAssigner(vnode);
1117
+ vModelCheckboxInit(el);
1118
+ },
1119
+ mounted(el, binding, vnode) {
1120
+ vModelCheckboxUpdate(el, binding.oldValue, binding.value, vnode.props.value);
1121
+ },
1122
+ beforeUpdate(el, binding, vnode) {
1123
+ el[assignKey] = getModelAssigner(vnode);
1124
+ vModelCheckboxUpdate(el, binding.oldValue, binding.value, vnode.props.value);
1125
+ }
1436
1126
  };
1127
+ /**
1128
+ * @internal
1129
+ */
1437
1130
  const vModelCheckboxInit = (el, set) => {
1438
- addEventListener(el, "change", () => {
1439
- const assign = el[assignKey];
1440
- const modelValue = el._modelValue;
1441
- const elementValue = getValue(el);
1442
- const checked = el.checked;
1443
- if (shared.isArray(modelValue)) {
1444
- const index = shared.looseIndexOf(modelValue, elementValue);
1445
- const found = index !== -1;
1446
- if (checked && !found) {
1447
- assign(modelValue.concat(elementValue));
1448
- } else if (!checked && found) {
1449
- const filtered = [...modelValue];
1450
- filtered.splice(index, 1);
1451
- assign(filtered);
1452
- }
1453
- } else if (shared.isSet(modelValue)) {
1454
- const cloned = new Set(modelValue);
1455
- if (checked) {
1456
- cloned.add(elementValue);
1457
- } else {
1458
- cloned.delete(elementValue);
1459
- }
1460
- assign(cloned);
1461
- } else {
1462
- assign(getCheckboxValue(el, checked));
1463
- }
1464
- });
1131
+ addEventListener(el, "change", () => {
1132
+ const assign = set || el[assignKey];
1133
+ const modelValue = el._modelValue;
1134
+ const elementValue = getValue(el);
1135
+ const checked = el.checked;
1136
+ if ((0, _vue_shared.isArray)(modelValue)) {
1137
+ const index = (0, _vue_shared.looseIndexOf)(modelValue, elementValue);
1138
+ const found = index !== -1;
1139
+ if (checked && !found) assign(modelValue.concat(elementValue));
1140
+ else if (!checked && found) {
1141
+ const filtered = [...modelValue];
1142
+ filtered.splice(index, 1);
1143
+ assign(filtered);
1144
+ }
1145
+ } else if ((0, _vue_shared.isSet)(modelValue)) {
1146
+ const cloned = new Set(modelValue);
1147
+ if (checked) cloned.add(elementValue);
1148
+ else cloned.delete(elementValue);
1149
+ assign(cloned);
1150
+ } else assign(getCheckboxValue(el, checked));
1151
+ });
1465
1152
  };
1153
+ /**
1154
+ * @internal
1155
+ */
1466
1156
  const vModelCheckboxUpdate = (el, oldValue, value, rawValue = getValue(el)) => {
1467
- el._modelValue = value;
1468
- let checked;
1469
- if (shared.isArray(value)) {
1470
- checked = shared.looseIndexOf(value, rawValue) > -1;
1471
- } else if (shared.isSet(value)) {
1472
- checked = value.has(rawValue);
1473
- } else {
1474
- if (value === oldValue) return;
1475
- checked = shared.looseEqual(value, getCheckboxValue(el, true));
1476
- }
1477
- if (el.checked !== checked) {
1478
- el.checked = checked;
1479
- }
1157
+ el._modelValue = value;
1158
+ let checked;
1159
+ if ((0, _vue_shared.isArray)(value)) checked = (0, _vue_shared.looseIndexOf)(value, rawValue) > -1;
1160
+ else if ((0, _vue_shared.isSet)(value)) checked = value.has(rawValue);
1161
+ else {
1162
+ if (value === oldValue) return;
1163
+ checked = (0, _vue_shared.looseEqual)(value, getCheckboxValue(el, true));
1164
+ }
1165
+ if (el.checked !== checked) el.checked = checked;
1480
1166
  };
1481
1167
  const vModelRadio = {
1482
- created(el, { value }, vnode) {
1483
- el.checked = shared.looseEqual(value, vnode.props.value);
1484
- el[assignKey] = getModelAssigner(vnode);
1485
- addEventListener(el, "change", () => {
1486
- el[assignKey](getValue(el));
1487
- });
1488
- },
1489
- beforeUpdate(el, { value, oldValue }, vnode) {
1490
- el[assignKey] = getModelAssigner(vnode);
1491
- if (value !== oldValue) {
1492
- el.checked = shared.looseEqual(value, vnode.props.value);
1493
- }
1494
- }
1168
+ created(el, { value }, vnode) {
1169
+ el.checked = (0, _vue_shared.looseEqual)(value, vnode.props.value);
1170
+ el[assignKey] = getModelAssigner(vnode);
1171
+ addEventListener(el, "change", () => {
1172
+ el[assignKey](getValue(el));
1173
+ });
1174
+ },
1175
+ beforeUpdate(el, { value, oldValue }, vnode) {
1176
+ el[assignKey] = getModelAssigner(vnode);
1177
+ if (value !== oldValue) el.checked = (0, _vue_shared.looseEqual)(value, vnode.props.value);
1178
+ }
1495
1179
  };
1496
1180
  const vModelSelect = {
1497
- // <select multiple> value need to be deep traversed
1498
- deep: true,
1499
- created(el, { value, modifiers: { number } }, vnode) {
1500
- vModelSelectInit(el, value, number);
1501
- el[assignKey] = getModelAssigner(vnode);
1502
- },
1503
- // set value in mounted & updated because <select> relies on its children
1504
- // <option>s.
1505
- mounted(el, { value }) {
1506
- vModelSetSelected(el, value);
1507
- },
1508
- beforeUpdate(el, _binding, vnode) {
1509
- el[assignKey] = getModelAssigner(vnode);
1510
- },
1511
- updated(el, { value }) {
1512
- vModelSetSelected(el, value);
1513
- }
1181
+ deep: true,
1182
+ created(el, { value, modifiers: { number } }, vnode) {
1183
+ vModelSelectInit(el, value, number);
1184
+ el[assignKey] = getModelAssigner(vnode);
1185
+ },
1186
+ mounted(el, { value }) {
1187
+ vModelSetSelected(el, value);
1188
+ },
1189
+ beforeUpdate(el, _binding, vnode) {
1190
+ el[assignKey] = getModelAssigner(vnode);
1191
+ },
1192
+ updated(el, { value }) {
1193
+ vModelSetSelected(el, value);
1194
+ }
1514
1195
  };
1196
+ /**
1197
+ * @internal
1198
+ */
1515
1199
  const vModelSelectInit = (el, value, number, set) => {
1516
- const isSetModel = shared.isSet(value);
1517
- addEventListener(el, "change", () => {
1518
- const selectedVal = Array.prototype.filter.call(el.options, (o) => o.selected).map(
1519
- (o) => number ? shared.looseToNumber(getValue(o)) : getValue(o)
1520
- );
1521
- (0, el[assignKey])(
1522
- el.multiple ? isSetModel ? new Set(selectedVal) : selectedVal : selectedVal[0]
1523
- );
1524
- el._assigning = true;
1525
- runtimeCore.nextTick(() => {
1526
- el._assigning = false;
1527
- });
1528
- });
1200
+ const isSetModel = (0, _vue_shared.isSet)(value);
1201
+ addEventListener(el, "change", () => {
1202
+ const selectedVal = Array.prototype.filter.call(el.options, (o) => o.selected).map((o) => number ? (0, _vue_shared.looseToNumber)(getValue(o)) : getValue(o));
1203
+ (set || el[assignKey])(el.multiple ? isSetModel ? new Set(selectedVal) : selectedVal : selectedVal[0]);
1204
+ el._assigning = true;
1205
+ (0, _vue_runtime_core.nextTick)(() => {
1206
+ el._assigning = false;
1207
+ });
1208
+ });
1529
1209
  };
1210
+ /**
1211
+ * @internal
1212
+ */
1530
1213
  const vModelSetSelected = (el, value) => {
1531
- if (el._assigning) return;
1532
- const isMultiple = el.multiple;
1533
- const isArrayValue = shared.isArray(value);
1534
- if (isMultiple && !isArrayValue && !shared.isSet(value)) {
1535
- return;
1536
- }
1537
- for (let i = 0, l = el.options.length; i < l; i++) {
1538
- const option = el.options[i];
1539
- const optionValue = getValue(option);
1540
- if (isMultiple) {
1541
- if (isArrayValue) {
1542
- const optionType = typeof optionValue;
1543
- if (optionType === "string" || optionType === "number") {
1544
- option.selected = value.some((v) => String(v) === String(optionValue));
1545
- } else {
1546
- option.selected = shared.looseIndexOf(value, optionValue) > -1;
1547
- }
1548
- } else {
1549
- option.selected = value.has(optionValue);
1550
- }
1551
- } else if (shared.looseEqual(getValue(option), value)) {
1552
- if (el.selectedIndex !== i) el.selectedIndex = i;
1553
- return;
1554
- }
1555
- }
1556
- if (!isMultiple && el.selectedIndex !== -1) {
1557
- el.selectedIndex = -1;
1558
- }
1214
+ if (el._assigning) return;
1215
+ const isMultiple = el.multiple;
1216
+ const isArrayValue = (0, _vue_shared.isArray)(value);
1217
+ if (isMultiple && !isArrayValue && !(0, _vue_shared.isSet)(value)) return;
1218
+ for (let i = 0, l = el.options.length; i < l; i++) {
1219
+ const option = el.options[i];
1220
+ const optionValue = getValue(option);
1221
+ if (isMultiple) if (isArrayValue) {
1222
+ const optionType = typeof optionValue;
1223
+ if (optionType === "string" || optionType === "number") option.selected = value.some((v) => String(v) === String(optionValue));
1224
+ else option.selected = (0, _vue_shared.looseIndexOf)(value, optionValue) > -1;
1225
+ } else option.selected = value.has(optionValue);
1226
+ else if ((0, _vue_shared.looseEqual)(getValue(option), value)) {
1227
+ if (el.selectedIndex !== i) el.selectedIndex = i;
1228
+ return;
1229
+ }
1230
+ }
1231
+ if (!isMultiple && el.selectedIndex !== -1) el.selectedIndex = -1;
1559
1232
  };
1233
+ /**
1234
+ * @internal retrieve raw value set via :value bindings
1235
+ */
1560
1236
  function getValue(el) {
1561
- return "_value" in el ? el._value : el.value;
1237
+ return "_value" in el ? el._value : el.value;
1562
1238
  }
1563
1239
  function getCheckboxValue(el, checked) {
1564
- const key = checked ? "_trueValue" : "_falseValue";
1565
- if (key in el) {
1566
- return el[key];
1567
- }
1568
- const attr = checked ? "true-value" : "false-value";
1569
- if (el.hasAttribute(attr)) {
1570
- return el.getAttribute(attr);
1571
- }
1572
- return checked;
1240
+ const key = checked ? "_trueValue" : "_falseValue";
1241
+ if (key in el) return el[key];
1242
+ const attr = checked ? "true-value" : "false-value";
1243
+ if (el.hasAttribute(attr)) return el.getAttribute(attr);
1244
+ return checked;
1573
1245
  }
1574
1246
  const vModelDynamic = {
1575
- created(el, binding, vnode) {
1576
- callModelHook(el, binding, vnode, null, "created");
1577
- },
1578
- mounted(el, binding, vnode) {
1579
- callModelHook(el, binding, vnode, null, "mounted");
1580
- },
1581
- beforeUpdate(el, binding, vnode, prevVNode) {
1582
- callModelHook(el, binding, vnode, prevVNode, "beforeUpdate");
1583
- },
1584
- updated(el, binding, vnode, prevVNode) {
1585
- callModelHook(el, binding, vnode, prevVNode, "updated");
1586
- }
1247
+ created(el, binding, vnode) {
1248
+ callModelHook(el, binding, vnode, null, "created");
1249
+ },
1250
+ mounted(el, binding, vnode) {
1251
+ callModelHook(el, binding, vnode, null, "mounted");
1252
+ },
1253
+ beforeUpdate(el, binding, vnode, prevVNode) {
1254
+ callModelHook(el, binding, vnode, prevVNode, "beforeUpdate");
1255
+ },
1256
+ updated(el, binding, vnode, prevVNode) {
1257
+ callModelHook(el, binding, vnode, prevVNode, "updated");
1258
+ }
1587
1259
  };
1588
1260
  function resolveDynamicModel(tagName, type) {
1589
- switch (tagName) {
1590
- case "SELECT":
1591
- return vModelSelect;
1592
- case "TEXTAREA":
1593
- return vModelText;
1594
- default:
1595
- switch (type) {
1596
- case "checkbox":
1597
- return vModelCheckbox;
1598
- case "radio":
1599
- return vModelRadio;
1600
- default:
1601
- return vModelText;
1602
- }
1603
- }
1261
+ switch (tagName) {
1262
+ case "SELECT": return vModelSelect;
1263
+ case "TEXTAREA": return vModelText;
1264
+ default: switch (type) {
1265
+ case "checkbox": return vModelCheckbox;
1266
+ case "radio": return vModelRadio;
1267
+ default: return vModelText;
1268
+ }
1269
+ }
1604
1270
  }
1605
1271
  function callModelHook(el, binding, vnode, prevVNode, hook) {
1606
- const modelToUse = resolveDynamicModel(
1607
- el.tagName,
1608
- vnode.props && vnode.props.type
1609
- );
1610
- const fn = modelToUse[hook];
1611
- fn && fn(el, binding, vnode, prevVNode);
1272
+ const fn = resolveDynamicModel(el.tagName, vnode.props && vnode.props.type)[hook];
1273
+ fn && fn(el, binding, vnode, prevVNode);
1612
1274
  }
1613
1275
  function initVModelForSSR() {
1614
- vModelText.getSSRProps = ({ value }) => ({ value });
1615
- vModelRadio.getSSRProps = ({ value }, vnode) => {
1616
- if (vnode.props && shared.looseEqual(vnode.props.value, value)) {
1617
- return { checked: true };
1618
- }
1619
- };
1620
- vModelCheckbox.getSSRProps = ({ value }, vnode) => {
1621
- if (shared.isArray(value)) {
1622
- if (vnode.props && shared.looseIndexOf(value, vnode.props.value) > -1) {
1623
- return { checked: true };
1624
- }
1625
- } else if (shared.isSet(value)) {
1626
- if (vnode.props && value.has(vnode.props.value)) {
1627
- return { checked: true };
1628
- }
1629
- } else if (value) {
1630
- return { checked: true };
1631
- }
1632
- };
1633
- vModelDynamic.getSSRProps = (binding, vnode) => {
1634
- if (typeof vnode.type !== "string") {
1635
- return;
1636
- }
1637
- const modelToUse = resolveDynamicModel(
1638
- // resolveDynamicModel expects an uppercase tag name, but vnode.type is lowercase
1639
- vnode.type.toUpperCase(),
1640
- vnode.props && vnode.props.type
1641
- );
1642
- if (modelToUse.getSSRProps) {
1643
- return modelToUse.getSSRProps(binding, vnode);
1644
- }
1645
- };
1276
+ vModelText.getSSRProps = ({ value }) => ({ value });
1277
+ vModelRadio.getSSRProps = ({ value }, vnode) => {
1278
+ if (vnode.props && (0, _vue_shared.looseEqual)(vnode.props.value, value)) return { checked: true };
1279
+ };
1280
+ vModelCheckbox.getSSRProps = ({ value }, vnode) => {
1281
+ if ((0, _vue_shared.isArray)(value)) {
1282
+ if (vnode.props && (0, _vue_shared.looseIndexOf)(value, vnode.props.value) > -1) return { checked: true };
1283
+ } else if ((0, _vue_shared.isSet)(value)) {
1284
+ if (vnode.props && value.has(vnode.props.value)) return { checked: true };
1285
+ } else if (value) return { checked: true };
1286
+ };
1287
+ vModelDynamic.getSSRProps = (binding, vnode) => {
1288
+ if (typeof vnode.type !== "string") return;
1289
+ const modelToUse = resolveDynamicModel(vnode.type.toUpperCase(), vnode.props && vnode.props.type);
1290
+ if (modelToUse.getSSRProps) return modelToUse.getSSRProps(binding, vnode);
1291
+ };
1646
1292
  }
1647
1293
 
1648
- const systemModifiers = ["ctrl", "shift", "alt", "meta"];
1294
+ //#endregion
1295
+ //#region packages/runtime-dom/src/directives/vOn.ts
1296
+ const systemModifiers = [
1297
+ "ctrl",
1298
+ "shift",
1299
+ "alt",
1300
+ "meta"
1301
+ ];
1649
1302
  const modifierGuards = {
1650
- stop: (e) => e.stopPropagation(),
1651
- prevent: (e) => e.preventDefault(),
1652
- self: (e) => e.target !== e.currentTarget,
1653
- ctrl: (e) => !e.ctrlKey,
1654
- shift: (e) => !e.shiftKey,
1655
- alt: (e) => !e.altKey,
1656
- meta: (e) => !e.metaKey,
1657
- left: (e) => "button" in e && e.button !== 0,
1658
- middle: (e) => "button" in e && e.button !== 1,
1659
- right: (e) => "button" in e && e.button !== 2,
1660
- exact: (e, modifiers) => systemModifiers.some((m) => e[`${m}Key`] && !modifiers.includes(m))
1303
+ stop: (e) => e.stopPropagation(),
1304
+ prevent: (e) => e.preventDefault(),
1305
+ self: (e) => e.target !== e.currentTarget,
1306
+ ctrl: (e) => !e.ctrlKey,
1307
+ shift: (e) => !e.shiftKey,
1308
+ alt: (e) => !e.altKey,
1309
+ meta: (e) => !e.metaKey,
1310
+ left: (e) => "button" in e && e.button !== 0,
1311
+ middle: (e) => "button" in e && e.button !== 1,
1312
+ right: (e) => "button" in e && e.button !== 2,
1313
+ exact: (e, modifiers) => systemModifiers.some((m) => e[`${m}Key`] && !modifiers.includes(m))
1661
1314
  };
1315
+ /**
1316
+ * @private
1317
+ */
1662
1318
  const withModifiers = (fn, modifiers) => {
1663
- const cache = fn._withMods || (fn._withMods = {});
1664
- const cacheKey = modifiers.join(".");
1665
- return cache[cacheKey] || (cache[cacheKey] = ((event, ...args) => {
1666
- for (let i = 0; i < modifiers.length; i++) {
1667
- const guard = modifierGuards[modifiers[i]];
1668
- if (guard && guard(event, modifiers)) return;
1669
- }
1670
- return fn(event, ...args);
1671
- }));
1319
+ const cache = fn._withMods || (fn._withMods = {});
1320
+ const cacheKey = modifiers.join(".");
1321
+ return cache[cacheKey] || (cache[cacheKey] = ((event, ...args) => {
1322
+ for (let i = 0; i < modifiers.length; i++) {
1323
+ const guard = modifierGuards[modifiers[i]];
1324
+ if (guard && guard(event, modifiers)) return;
1325
+ }
1326
+ return fn(event, ...args);
1327
+ }));
1672
1328
  };
1673
1329
  const keyNames = {
1674
- esc: "escape",
1675
- space: " ",
1676
- up: "arrow-up",
1677
- left: "arrow-left",
1678
- right: "arrow-right",
1679
- down: "arrow-down",
1680
- delete: "backspace"
1330
+ esc: "escape",
1331
+ space: " ",
1332
+ up: "arrow-up",
1333
+ left: "arrow-left",
1334
+ right: "arrow-right",
1335
+ down: "arrow-down",
1336
+ delete: "backspace"
1681
1337
  };
1338
+ /**
1339
+ * @private
1340
+ */
1682
1341
  const withKeys = (fn, modifiers) => {
1683
- const cache = fn._withKeys || (fn._withKeys = {});
1684
- const cacheKey = modifiers.join(".");
1685
- return cache[cacheKey] || (cache[cacheKey] = ((event) => {
1686
- if (!("key" in event)) {
1687
- return;
1688
- }
1689
- const eventKey = shared.hyphenate(event.key);
1690
- if (modifiers.some(
1691
- (k) => k === eventKey || keyNames[k] === eventKey
1692
- )) {
1693
- return fn(event);
1694
- }
1695
- }));
1342
+ const cache = fn._withKeys || (fn._withKeys = {});
1343
+ const cacheKey = modifiers.join(".");
1344
+ return cache[cacheKey] || (cache[cacheKey] = ((event) => {
1345
+ if (!("key" in event)) return;
1346
+ const eventKey = (0, _vue_shared.hyphenate)(event.key);
1347
+ if (modifiers.some((k) => k === eventKey || keyNames[k] === eventKey)) return fn(event);
1348
+ }));
1696
1349
  };
1697
1350
 
1698
- const rendererOptions = /* @__PURE__ */ shared.extend({ patchProp }, nodeOps);
1351
+ //#endregion
1352
+ //#region packages/runtime-dom/src/index.ts
1353
+ const rendererOptions = /* @__PURE__ */ (0, _vue_shared.extend)({ patchProp }, nodeOps);
1699
1354
  let renderer;
1700
1355
  let enabledHydration = false;
1701
1356
  function ensureRenderer() {
1702
- return renderer || (renderer = runtimeCore.createRenderer(rendererOptions));
1357
+ return renderer || (renderer = (0, _vue_runtime_core.createRenderer)(rendererOptions));
1703
1358
  }
1704
1359
  function ensureHydrationRenderer() {
1705
- renderer = enabledHydration ? renderer : runtimeCore.createHydrationRenderer(rendererOptions);
1706
- enabledHydration = true;
1707
- return renderer;
1360
+ renderer = enabledHydration ? renderer : (0, _vue_runtime_core.createHydrationRenderer)(rendererOptions);
1361
+ enabledHydration = true;
1362
+ return renderer;
1708
1363
  }
1709
1364
  const render = ((...args) => {
1710
- ensureRenderer().render(...args);
1365
+ ensureRenderer().render(...args);
1711
1366
  });
1712
1367
  const hydrate = ((...args) => {
1713
- ensureHydrationRenderer().hydrate(...args);
1368
+ ensureHydrationRenderer().hydrate(...args);
1714
1369
  });
1715
1370
  const createApp = ((...args) => {
1716
- const app = ensureRenderer().createApp(...args);
1717
- const { mount } = app;
1718
- app.mount = (containerOrSelector) => {
1719
- const container = normalizeContainer(containerOrSelector);
1720
- if (!container) return;
1721
- const component = app._component;
1722
- if (!shared.isFunction(component) && !component.render && !component.template) {
1723
- component.template = container.innerHTML;
1724
- }
1725
- if (container.nodeType === 1) {
1726
- container.textContent = "";
1727
- }
1728
- const proxy = mount(container, false, resolveRootNamespace(container));
1729
- if (container instanceof Element) {
1730
- container.removeAttribute("v-cloak");
1731
- container.setAttribute("data-v-app", "");
1732
- }
1733
- return proxy;
1734
- };
1735
- return app;
1371
+ const app = ensureRenderer().createApp(...args);
1372
+ const { mount } = app;
1373
+ app.mount = (containerOrSelector) => {
1374
+ const container = normalizeContainer(containerOrSelector);
1375
+ if (!container) return;
1376
+ const component = app._component;
1377
+ if (!(0, _vue_shared.isFunction)(component) && !component.render && !component.template) component.template = container.innerHTML;
1378
+ if (container.nodeType === 1) container.textContent = "";
1379
+ const proxy = mount(container, false, resolveRootNamespace(container));
1380
+ if (container instanceof Element) {
1381
+ container.removeAttribute("v-cloak");
1382
+ container.setAttribute("data-v-app", "");
1383
+ }
1384
+ return proxy;
1385
+ };
1386
+ return app;
1736
1387
  });
1737
1388
  const createSSRApp = ((...args) => {
1738
- const app = ensureHydrationRenderer().createApp(...args);
1739
- const { mount } = app;
1740
- app.mount = (containerOrSelector) => {
1741
- const container = normalizeContainer(containerOrSelector);
1742
- if (container) {
1743
- return mount(container, true, resolveRootNamespace(container));
1744
- }
1745
- };
1746
- return app;
1389
+ (0, _vue_runtime_core.setIsHydratingEnabled)(true);
1390
+ const app = ensureHydrationRenderer().createApp(...args);
1391
+ const { mount } = app;
1392
+ app.mount = (containerOrSelector) => {
1393
+ const container = normalizeContainer(containerOrSelector);
1394
+ if (container) return mount(container, true, resolveRootNamespace(container));
1395
+ };
1396
+ return app;
1747
1397
  });
1748
1398
  function resolveRootNamespace(container) {
1749
- if (container instanceof SVGElement) {
1750
- return "svg";
1751
- }
1752
- if (typeof MathMLElement === "function" && container instanceof MathMLElement) {
1753
- return "mathml";
1754
- }
1399
+ if (container instanceof SVGElement) return "svg";
1400
+ if (typeof MathMLElement === "function" && container instanceof MathMLElement) return "mathml";
1755
1401
  }
1402
+ /**
1403
+ * @internal
1404
+ */
1756
1405
  function normalizeContainer(container) {
1757
- if (shared.isString(container)) {
1758
- const res = document.querySelector(container);
1759
- return res;
1760
- }
1761
- return container;
1406
+ if ((0, _vue_shared.isString)(container)) return document.querySelector(container);
1407
+ return container;
1762
1408
  }
1763
1409
  let ssrDirectiveInitialized = false;
1410
+ /**
1411
+ * @internal
1412
+ */
1764
1413
  const initDirectivesForSSR = () => {
1765
- if (!ssrDirectiveInitialized) {
1766
- ssrDirectiveInitialized = true;
1767
- initVModelForSSR();
1768
- initVShowForSSR();
1769
- }
1770
- } ;
1414
+ if (!ssrDirectiveInitialized) {
1415
+ ssrDirectiveInitialized = true;
1416
+ initVModelForSSR();
1417
+ initVShowForSSR();
1418
+ }
1419
+ };
1771
1420
 
1421
+ //#endregion
1772
1422
  exports.Transition = Transition;
1773
1423
  exports.TransitionGroup = TransitionGroup;
1774
1424
  exports.VueElement = VueElement;
@@ -1794,6 +1444,9 @@ exports.vModelText = vModelText;
1794
1444
  exports.vShow = vShow;
1795
1445
  exports.withKeys = withKeys;
1796
1446
  exports.withModifiers = withModifiers;
1797
- Object.keys(runtimeCore).forEach(function (k) {
1798
- if (k !== 'default' && !Object.prototype.hasOwnProperty.call(exports, k)) exports[k] = runtimeCore[k];
1447
+ Object.keys(_vue_runtime_core).forEach(function (k) {
1448
+ if (k !== 'default' && !Object.prototype.hasOwnProperty.call(exports, k)) Object.defineProperty(exports, k, {
1449
+ enumerable: true,
1450
+ get: function () { return _vue_runtime_core[k]; }
1451
+ });
1799
1452
  });