vue 3.2.2 → 3.2.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/vue.esm-browser.js +74 -72
- package/dist/vue.esm-browser.prod.js +1 -1
- package/dist/vue.global.js +73 -71
- package/dist/vue.global.prod.js +1 -1
- package/dist/vue.runtime.esm-browser.js +57 -59
- package/dist/vue.runtime.esm-browser.prod.js +1 -1
- package/dist/vue.runtime.global.js +56 -63
- package/dist/vue.runtime.global.prod.js +1 -1
- package/package.json +4 -4
package/dist/vue.esm-browser.js
CHANGED
|
@@ -104,7 +104,14 @@ function generateCodeFrame(source, start = 0, end = source.length) {
|
|
|
104
104
|
* - readonly -> readOnly
|
|
105
105
|
*/
|
|
106
106
|
const specialBooleanAttrs = `itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly`;
|
|
107
|
-
const isSpecialBooleanAttr = /*#__PURE__*/ makeMap(specialBooleanAttrs);
|
|
107
|
+
const isSpecialBooleanAttr = /*#__PURE__*/ makeMap(specialBooleanAttrs);
|
|
108
|
+
/**
|
|
109
|
+
* Boolean attributes should be included if the value is truthy or ''.
|
|
110
|
+
* e.g. <select multiple> compiles to { multiple: '' }
|
|
111
|
+
*/
|
|
112
|
+
function includeBooleanAttr(value) {
|
|
113
|
+
return !!value || value === '';
|
|
114
|
+
}
|
|
108
115
|
|
|
109
116
|
function normalizeStyle(value) {
|
|
110
117
|
if (isArray(value)) {
|
|
@@ -260,7 +267,9 @@ function looseIndexOf(arr, val) {
|
|
|
260
267
|
const toDisplayString = (val) => {
|
|
261
268
|
return val == null
|
|
262
269
|
? ''
|
|
263
|
-
: isArray(val) ||
|
|
270
|
+
: isArray(val) ||
|
|
271
|
+
(isObject(val) &&
|
|
272
|
+
(val.toString === objectToString || !isFunction(val.toString)))
|
|
264
273
|
? JSON.stringify(val, replacer, 2)
|
|
265
274
|
: String(val);
|
|
266
275
|
};
|
|
@@ -476,7 +485,7 @@ function onScopeDispose(fn) {
|
|
|
476
485
|
activeEffectScope.cleanups.push(fn);
|
|
477
486
|
}
|
|
478
487
|
else {
|
|
479
|
-
warn(`
|
|
488
|
+
warn(`onScopeDispose() is called when there is no active effect scope` +
|
|
480
489
|
` to be associated with.`);
|
|
481
490
|
}
|
|
482
491
|
}
|
|
@@ -1343,13 +1352,13 @@ function isRef(r) {
|
|
|
1343
1352
|
return Boolean(r && r.__v_isRef === true);
|
|
1344
1353
|
}
|
|
1345
1354
|
function ref(value) {
|
|
1346
|
-
return createRef(value);
|
|
1355
|
+
return createRef(value, false);
|
|
1347
1356
|
}
|
|
1348
1357
|
function shallowRef(value) {
|
|
1349
1358
|
return createRef(value, true);
|
|
1350
1359
|
}
|
|
1351
1360
|
class RefImpl {
|
|
1352
|
-
constructor(value, _shallow
|
|
1361
|
+
constructor(value, _shallow) {
|
|
1353
1362
|
this._shallow = _shallow;
|
|
1354
1363
|
this.dep = undefined;
|
|
1355
1364
|
this.__v_isRef = true;
|
|
@@ -1369,7 +1378,7 @@ class RefImpl {
|
|
|
1369
1378
|
}
|
|
1370
1379
|
}
|
|
1371
1380
|
}
|
|
1372
|
-
function createRef(rawValue, shallow
|
|
1381
|
+
function createRef(rawValue, shallow) {
|
|
1373
1382
|
if (isRef(rawValue)) {
|
|
1374
1383
|
return rawValue;
|
|
1375
1384
|
}
|
|
@@ -1441,9 +1450,8 @@ class ObjectRefImpl {
|
|
|
1441
1450
|
}
|
|
1442
1451
|
}
|
|
1443
1452
|
function toRef(object, key) {
|
|
1444
|
-
|
|
1445
|
-
|
|
1446
|
-
: new ObjectRefImpl(object, key);
|
|
1453
|
+
const val = object[key];
|
|
1454
|
+
return isRef(val) ? val : new ObjectRefImpl(object, key);
|
|
1447
1455
|
}
|
|
1448
1456
|
|
|
1449
1457
|
class ComputedRefImpl {
|
|
@@ -2289,8 +2297,7 @@ function renderComponentRoot(instance) {
|
|
|
2289
2297
|
const keys = Object.keys(fallthroughAttrs);
|
|
2290
2298
|
const { shapeFlag } = root;
|
|
2291
2299
|
if (keys.length) {
|
|
2292
|
-
if (shapeFlag & 1 /* ELEMENT */
|
|
2293
|
-
shapeFlag & 6 /* COMPONENT */) {
|
|
2300
|
+
if (shapeFlag & (1 /* ELEMENT */ | 6 /* COMPONENT */)) {
|
|
2294
2301
|
if (propsOptions && keys.some(isModelListener)) {
|
|
2295
2302
|
// If a v-model listener (onUpdate:xxx) has a corresponding declared
|
|
2296
2303
|
// prop, it indicates this component expects to handle v-model and
|
|
@@ -2338,8 +2345,7 @@ function renderComponentRoot(instance) {
|
|
|
2338
2345
|
if (false &&
|
|
2339
2346
|
isCompatEnabled("INSTANCE_ATTRS_CLASS_STYLE" /* INSTANCE_ATTRS_CLASS_STYLE */, instance) &&
|
|
2340
2347
|
vnode.shapeFlag & 4 /* STATEFUL_COMPONENT */ &&
|
|
2341
|
-
|
|
2342
|
-
root.shapeFlag & 6 /* COMPONENT */)) ;
|
|
2348
|
+
root.shapeFlag & (1 /* ELEMENT */ | 6 /* COMPONENT */)) ;
|
|
2343
2349
|
// inherit directives
|
|
2344
2350
|
if (vnode.dirs) {
|
|
2345
2351
|
if (true && !isElementRoot(root)) {
|
|
@@ -2440,8 +2446,7 @@ const filterModelListeners = (attrs, props) => {
|
|
|
2440
2446
|
return res;
|
|
2441
2447
|
};
|
|
2442
2448
|
const isElementRoot = (vnode) => {
|
|
2443
|
-
return (vnode.shapeFlag & 6 /* COMPONENT */ ||
|
|
2444
|
-
vnode.shapeFlag & 1 /* ELEMENT */ ||
|
|
2449
|
+
return (vnode.shapeFlag & (6 /* COMPONENT */ | 1 /* ELEMENT */) ||
|
|
2445
2450
|
vnode.type === Comment$1 // potential v-if branch switch
|
|
2446
2451
|
);
|
|
2447
2452
|
};
|
|
@@ -4649,13 +4654,13 @@ const normalizeSlotValue = (value) => isArray(value)
|
|
|
4649
4654
|
? value.map(normalizeVNode)
|
|
4650
4655
|
: [normalizeVNode(value)];
|
|
4651
4656
|
const normalizeSlot = (key, rawSlot, ctx) => {
|
|
4652
|
-
const normalized = withCtx((
|
|
4657
|
+
const normalized = withCtx((...args) => {
|
|
4653
4658
|
if (currentInstance) {
|
|
4654
4659
|
warn$1(`Slot "${key}" invoked outside of the render function: ` +
|
|
4655
4660
|
`this will not track dependencies used in the slot. ` +
|
|
4656
4661
|
`Invoke the slot function inside the render function instead.`);
|
|
4657
4662
|
}
|
|
4658
|
-
return normalizeSlotValue(rawSlot(
|
|
4663
|
+
return normalizeSlotValue(rawSlot(...args));
|
|
4659
4664
|
}, ctx);
|
|
4660
4665
|
normalized._c = false;
|
|
4661
4666
|
return normalized;
|
|
@@ -5167,8 +5172,7 @@ function createHydrationFunctions(rendererInternals) {
|
|
|
5167
5172
|
if (props) {
|
|
5168
5173
|
if (forcePatchValue ||
|
|
5169
5174
|
!optimized ||
|
|
5170
|
-
patchFlag & 16 /* FULL_PROPS */
|
|
5171
|
-
patchFlag & 32 /* HYDRATE_EVENTS */) {
|
|
5175
|
+
patchFlag & (16 /* FULL_PROPS */ | 32 /* HYDRATE_EVENTS */)) {
|
|
5172
5176
|
for (const key in props) {
|
|
5173
5177
|
if ((forcePatchValue && key.endsWith('value')) ||
|
|
5174
5178
|
(isOn(key) && !isReservedProp(key))) {
|
|
@@ -5647,6 +5651,17 @@ function baseCreateRenderer(options, createHydrationFns) {
|
|
|
5647
5651
|
optimized = false;
|
|
5648
5652
|
dynamicChildren = null;
|
|
5649
5653
|
}
|
|
5654
|
+
const areChildrenSVG = isSVG && n2.type !== 'foreignObject';
|
|
5655
|
+
if (dynamicChildren) {
|
|
5656
|
+
patchBlockChildren(n1.dynamicChildren, dynamicChildren, el, parentComponent, parentSuspense, areChildrenSVG, slotScopeIds);
|
|
5657
|
+
if (parentComponent && parentComponent.type.__hmrId) {
|
|
5658
|
+
traverseStaticChildren(n1, n2);
|
|
5659
|
+
}
|
|
5660
|
+
}
|
|
5661
|
+
else if (!optimized) {
|
|
5662
|
+
// full diff
|
|
5663
|
+
patchChildren(n1, n2, el, null, parentComponent, parentSuspense, areChildrenSVG, slotScopeIds, false);
|
|
5664
|
+
}
|
|
5650
5665
|
if (patchFlag > 0) {
|
|
5651
5666
|
// the presence of a patchFlag means this element's render code was
|
|
5652
5667
|
// generated by the compiler and can take the fast path.
|
|
@@ -5701,17 +5716,6 @@ function baseCreateRenderer(options, createHydrationFns) {
|
|
|
5701
5716
|
// unoptimized, full diff
|
|
5702
5717
|
patchProps(el, n2, oldProps, newProps, parentComponent, parentSuspense, isSVG);
|
|
5703
5718
|
}
|
|
5704
|
-
const areChildrenSVG = isSVG && n2.type !== 'foreignObject';
|
|
5705
|
-
if (dynamicChildren) {
|
|
5706
|
-
patchBlockChildren(n1.dynamicChildren, dynamicChildren, el, parentComponent, parentSuspense, areChildrenSVG, slotScopeIds);
|
|
5707
|
-
if (parentComponent && parentComponent.type.__hmrId) {
|
|
5708
|
-
traverseStaticChildren(n1, n2);
|
|
5709
|
-
}
|
|
5710
|
-
}
|
|
5711
|
-
else if (!optimized) {
|
|
5712
|
-
// full diff
|
|
5713
|
-
patchChildren(n1, n2, el, null, parentComponent, parentSuspense, areChildrenSVG, slotScopeIds, false);
|
|
5714
|
-
}
|
|
5715
5719
|
if ((vnodeHook = newProps.onVnodeUpdated) || dirs) {
|
|
5716
5720
|
queuePostRenderEffect(() => {
|
|
5717
5721
|
vnodeHook && invokeVNodeHook(vnodeHook, parentComponent, n2, n1);
|
|
@@ -5736,8 +5740,7 @@ function baseCreateRenderer(options, createHydrationFns) {
|
|
|
5736
5740
|
// which also requires the correct parent container
|
|
5737
5741
|
!isSameVNodeType(oldVNode, newVNode) ||
|
|
5738
5742
|
// - In the case of a component, it could contain anything.
|
|
5739
|
-
oldVNode.shapeFlag & 6 /* COMPONENT */
|
|
5740
|
-
oldVNode.shapeFlag & 64 /* TELEPORT */)
|
|
5743
|
+
oldVNode.shapeFlag & (6 /* COMPONENT */ | 64 /* TELEPORT */))
|
|
5741
5744
|
? hostParentNode(oldVNode.el)
|
|
5742
5745
|
: // In other cases, the parent container is not actually used so we
|
|
5743
5746
|
// just pass the block element here to avoid a DOM parentNode call.
|
|
@@ -5920,13 +5923,15 @@ function baseCreateRenderer(options, createHydrationFns) {
|
|
|
5920
5923
|
let vnodeHook;
|
|
5921
5924
|
const { el, props } = initialVNode;
|
|
5922
5925
|
const { bm, m, parent } = instance;
|
|
5926
|
+
const isAsyncWrapperVNode = isAsyncWrapper(initialVNode);
|
|
5923
5927
|
effect.allowRecurse = false;
|
|
5924
5928
|
// beforeMount hook
|
|
5925
5929
|
if (bm) {
|
|
5926
5930
|
invokeArrayFns(bm);
|
|
5927
5931
|
}
|
|
5928
5932
|
// onVnodeBeforeMount
|
|
5929
|
-
if (
|
|
5933
|
+
if (!isAsyncWrapperVNode &&
|
|
5934
|
+
(vnodeHook = props && props.onVnodeBeforeMount)) {
|
|
5930
5935
|
invokeVNodeHook(vnodeHook, parent, initialVNode);
|
|
5931
5936
|
}
|
|
5932
5937
|
effect.allowRecurse = true;
|
|
@@ -5948,7 +5953,7 @@ function baseCreateRenderer(options, createHydrationFns) {
|
|
|
5948
5953
|
endMeasure(instance, `hydrate`);
|
|
5949
5954
|
}
|
|
5950
5955
|
};
|
|
5951
|
-
if (
|
|
5956
|
+
if (isAsyncWrapperVNode) {
|
|
5952
5957
|
initialVNode.type.__asyncLoader().then(
|
|
5953
5958
|
// note: we are moving the render call into an async callback,
|
|
5954
5959
|
// which means it won't track dependencies - but it's ok because
|
|
@@ -5982,7 +5987,8 @@ function baseCreateRenderer(options, createHydrationFns) {
|
|
|
5982
5987
|
queuePostRenderEffect(m, parentSuspense);
|
|
5983
5988
|
}
|
|
5984
5989
|
// onVnodeMounted
|
|
5985
|
-
if (
|
|
5990
|
+
if (!isAsyncWrapperVNode &&
|
|
5991
|
+
(vnodeHook = props && props.onVnodeMounted)) {
|
|
5986
5992
|
const scopedInitialVNode = initialVNode;
|
|
5987
5993
|
queuePostRenderEffect(() => invokeVNodeHook(vnodeHook, parent, scopedInitialVNode), parentSuspense);
|
|
5988
5994
|
}
|
|
@@ -6009,6 +6015,8 @@ function baseCreateRenderer(options, createHydrationFns) {
|
|
|
6009
6015
|
{
|
|
6010
6016
|
pushWarningContext(next || instance.vnode);
|
|
6011
6017
|
}
|
|
6018
|
+
// Disallow component effect recursion during pre-lifecycle hooks.
|
|
6019
|
+
effect.allowRecurse = false;
|
|
6012
6020
|
if (next) {
|
|
6013
6021
|
next.el = vnode.el;
|
|
6014
6022
|
updateComponentPreRender(instance, next, optimized);
|
|
@@ -6016,8 +6024,6 @@ function baseCreateRenderer(options, createHydrationFns) {
|
|
|
6016
6024
|
else {
|
|
6017
6025
|
next = vnode;
|
|
6018
6026
|
}
|
|
6019
|
-
// Disallow component effect recursion during pre-lifecycle hooks.
|
|
6020
|
-
effect.allowRecurse = false;
|
|
6021
6027
|
// beforeUpdate hook
|
|
6022
6028
|
if (bu) {
|
|
6023
6029
|
invokeArrayFns(bu);
|
|
@@ -6420,8 +6426,10 @@ function baseCreateRenderer(options, createHydrationFns) {
|
|
|
6420
6426
|
return;
|
|
6421
6427
|
}
|
|
6422
6428
|
const shouldInvokeDirs = shapeFlag & 1 /* ELEMENT */ && dirs;
|
|
6429
|
+
const shouldInvokeVnodeHook = !isAsyncWrapper(vnode);
|
|
6423
6430
|
let vnodeHook;
|
|
6424
|
-
if (
|
|
6431
|
+
if (shouldInvokeVnodeHook &&
|
|
6432
|
+
(vnodeHook = props && props.onVnodeBeforeUnmount)) {
|
|
6425
6433
|
invokeVNodeHook(vnodeHook, parentComponent, vnode);
|
|
6426
6434
|
}
|
|
6427
6435
|
if (shapeFlag & 6 /* COMPONENT */) {
|
|
@@ -6446,8 +6454,8 @@ function baseCreateRenderer(options, createHydrationFns) {
|
|
|
6446
6454
|
unmountChildren(dynamicChildren, parentComponent, parentSuspense, false, true);
|
|
6447
6455
|
}
|
|
6448
6456
|
else if ((type === Fragment &&
|
|
6449
|
-
|
|
6450
|
-
|
|
6457
|
+
patchFlag &
|
|
6458
|
+
(128 /* KEYED_FRAGMENT */ | 256 /* UNKEYED_FRAGMENT */)) ||
|
|
6451
6459
|
(!optimized && shapeFlag & 16 /* ARRAY_CHILDREN */)) {
|
|
6452
6460
|
unmountChildren(children, parentComponent, parentSuspense);
|
|
6453
6461
|
}
|
|
@@ -6455,7 +6463,9 @@ function baseCreateRenderer(options, createHydrationFns) {
|
|
|
6455
6463
|
remove(vnode);
|
|
6456
6464
|
}
|
|
6457
6465
|
}
|
|
6458
|
-
if ((
|
|
6466
|
+
if ((shouldInvokeVnodeHook &&
|
|
6467
|
+
(vnodeHook = props && props.onVnodeUnmounted)) ||
|
|
6468
|
+
shouldInvokeDirs) {
|
|
6459
6469
|
queuePostRenderEffect(() => {
|
|
6460
6470
|
vnodeHook && invokeVNodeHook(vnodeHook, parentComponent, vnode);
|
|
6461
6471
|
shouldInvokeDirs &&
|
|
@@ -7399,7 +7409,7 @@ function normalizeChildren(vnode, children) {
|
|
|
7399
7409
|
type = 16 /* ARRAY_CHILDREN */;
|
|
7400
7410
|
}
|
|
7401
7411
|
else if (typeof children === 'object') {
|
|
7402
|
-
if (shapeFlag & 1 /* ELEMENT */
|
|
7412
|
+
if (shapeFlag & (1 /* ELEMENT */ | 64 /* TELEPORT */)) {
|
|
7403
7413
|
// Normalize slot to plain children for plain element and Teleport
|
|
7404
7414
|
const slot = children.default;
|
|
7405
7415
|
if (slot) {
|
|
@@ -9292,20 +9302,8 @@ function isMemoSame(cached, memo) {
|
|
|
9292
9302
|
return true;
|
|
9293
9303
|
}
|
|
9294
9304
|
|
|
9295
|
-
function $ref() { }
|
|
9296
|
-
function $shallowRef(arg) {
|
|
9297
|
-
return arg;
|
|
9298
|
-
}
|
|
9299
|
-
function $computed() { }
|
|
9300
|
-
function $fromRefs() {
|
|
9301
|
-
return null;
|
|
9302
|
-
}
|
|
9303
|
-
function $raw() {
|
|
9304
|
-
return null;
|
|
9305
|
-
}
|
|
9306
|
-
|
|
9307
9305
|
// Core API ------------------------------------------------------------------
|
|
9308
|
-
const version = "3.2.
|
|
9306
|
+
const version = "3.2.6";
|
|
9309
9307
|
/**
|
|
9310
9308
|
* SSR utils for \@vue/server-renderer. Only exposed in cjs builds.
|
|
9311
9309
|
* @internal
|
|
@@ -9512,7 +9510,7 @@ function patchAttr(el, key, value, isSVG, instance) {
|
|
|
9512
9510
|
// note we are only checking boolean attributes that don't have a
|
|
9513
9511
|
// corresponding dom prop of the same name here.
|
|
9514
9512
|
const isBoolean = isSpecialBooleanAttr(key);
|
|
9515
|
-
if (value == null || (isBoolean && value
|
|
9513
|
+
if (value == null || (isBoolean && !includeBooleanAttr(value))) {
|
|
9516
9514
|
el.removeAttribute(key);
|
|
9517
9515
|
}
|
|
9518
9516
|
else {
|
|
@@ -9550,9 +9548,9 @@ prevChildren, parentComponent, parentSuspense, unmountChildren) {
|
|
|
9550
9548
|
}
|
|
9551
9549
|
if (value === '' || value == null) {
|
|
9552
9550
|
const type = typeof el[key];
|
|
9553
|
-
if (
|
|
9551
|
+
if (type === 'boolean') {
|
|
9554
9552
|
// e.g. <select multiple> compiles to { multiple: '' }
|
|
9555
|
-
el[key] =
|
|
9553
|
+
el[key] = includeBooleanAttr(value);
|
|
9556
9554
|
return;
|
|
9557
9555
|
}
|
|
9558
9556
|
else if (value == null && type === 'string') {
|
|
@@ -11045,11 +11043,6 @@ var runtimeDom = /*#__PURE__*/Object.freeze({
|
|
|
11045
11043
|
normalizeClass: normalizeClass,
|
|
11046
11044
|
normalizeStyle: normalizeStyle,
|
|
11047
11045
|
transformVNodeArgs: transformVNodeArgs,
|
|
11048
|
-
$ref: $ref,
|
|
11049
|
-
$shallowRef: $shallowRef,
|
|
11050
|
-
$computed: $computed,
|
|
11051
|
-
$raw: $raw,
|
|
11052
|
-
$fromRefs: $fromRefs,
|
|
11053
11046
|
version: version,
|
|
11054
11047
|
ssrUtils: ssrUtils,
|
|
11055
11048
|
resolveFilter: resolveFilter,
|
|
@@ -11663,7 +11656,10 @@ function injectProp(node, prop, context) {
|
|
|
11663
11656
|
}
|
|
11664
11657
|
}
|
|
11665
11658
|
function toValidAssetId(name, type) {
|
|
11666
|
-
|
|
11659
|
+
// see issue#4422, we need adding identifier on validAssetId if variable `name` has specific character
|
|
11660
|
+
return `_${type}_${name.replace(/[^\w]/g, (searchValue, replaceValue) => {
|
|
11661
|
+
return searchValue === '-' ? '_' : name.charCodeAt(replaceValue).toString();
|
|
11662
|
+
})}`;
|
|
11667
11663
|
}
|
|
11668
11664
|
function getMemoedVNodeCall(node) {
|
|
11669
11665
|
if (node.type === 14 /* JS_CALL_EXPRESSION */ && node.callee === WITH_MEMO) {
|
|
@@ -12780,16 +12776,19 @@ function getGeneratedPropsConstantType(node, context) {
|
|
|
12780
12776
|
if (keyType < returnType) {
|
|
12781
12777
|
returnType = keyType;
|
|
12782
12778
|
}
|
|
12783
|
-
|
|
12779
|
+
let valueType;
|
|
12780
|
+
if (value.type === 4 /* SIMPLE_EXPRESSION */) {
|
|
12781
|
+
valueType = getConstantType(value, context);
|
|
12782
|
+
}
|
|
12783
|
+
else if (value.type === 14 /* JS_CALL_EXPRESSION */) {
|
|
12784
12784
|
// some helper calls can be hoisted,
|
|
12785
12785
|
// such as the `normalizeProps` generated by the compiler for pre-normalize class,
|
|
12786
12786
|
// in this case we need to respect the ConstanType of the helper's argments
|
|
12787
|
-
|
|
12788
|
-
|
|
12789
|
-
|
|
12790
|
-
|
|
12787
|
+
valueType = getConstantTypeOfHelperCall(value, context);
|
|
12788
|
+
}
|
|
12789
|
+
else {
|
|
12790
|
+
valueType = 0 /* NOT_CONSTANT */;
|
|
12791
12791
|
}
|
|
12792
|
-
const valueType = getConstantType(value, context);
|
|
12793
12792
|
if (valueType === 0 /* NOT_CONSTANT */) {
|
|
12794
12793
|
return valueType;
|
|
12795
12794
|
}
|
|
@@ -14796,7 +14795,10 @@ function buildProps(node, context, props = node.props, ssr = false) {
|
|
|
14796
14795
|
!isStaticExp(styleProp.value) &&
|
|
14797
14796
|
// the static style is compiled into an object,
|
|
14798
14797
|
// so use `hasStyleBinding` to ensure that it is a dynamic style binding
|
|
14799
|
-
hasStyleBinding
|
|
14798
|
+
(hasStyleBinding ||
|
|
14799
|
+
// v-bind:style and style both exist,
|
|
14800
|
+
// v-bind:style with static literal object
|
|
14801
|
+
styleProp.value.type === 17 /* JS_ARRAY_EXPRESSION */)) {
|
|
14800
14802
|
styleProp.value = createCallExpression(context.helper(NORMALIZE_STYLE), [styleProp.value]);
|
|
14801
14803
|
}
|
|
14802
14804
|
}
|
|
@@ -15874,4 +15876,4 @@ function compileToFunction(template, options) {
|
|
|
15874
15876
|
}
|
|
15875
15877
|
registerRuntimeCompiler(compileToFunction);
|
|
15876
15878
|
|
|
15877
|
-
export {
|
|
15879
|
+
export { BaseTransition, Comment$1 as Comment, EffectScope, Fragment, KeepAlive, ReactiveEffect, Static, Suspense, Teleport, Text, Transition, TransitionGroup, VueElement, callWithAsyncErrorHandling, callWithErrorHandling, camelize, capitalize, cloneVNode, compatUtils, compileToFunction as compile, computed, createApp, createBlock, createCommentVNode, createElementBlock, createBaseVNode as createElementVNode, createHydrationRenderer, createRenderer, createSSRApp, createSlots, createStaticVNode, createTextVNode, createVNode, customRef, defineAsyncComponent, defineComponent, defineCustomElement, defineEmits, defineExpose, defineProps, defineSSRCustomElement, devtools, effect, effectScope, getCurrentInstance, getCurrentScope, getTransitionRawChildren, guardReactiveProps, h, handleError, hydrate, initCustomFormatter, inject, isMemoSame, isProxy, isReactive, isReadonly, isRef, isRuntimeOnly, isVNode, markRaw, mergeDefaults, mergeProps, nextTick, normalizeClass, normalizeProps, normalizeStyle, onActivated, onBeforeMount, onBeforeUnmount, onBeforeUpdate, onDeactivated, onErrorCaptured, onMounted, onRenderTracked, onRenderTriggered, onScopeDispose, onServerPrefetch, onUnmounted, onUpdated, openBlock, popScopeId, provide, proxyRefs, pushScopeId, queuePostFlushCb, reactive, readonly, ref, registerRuntimeCompiler, render, renderList, renderSlot, resolveComponent, resolveDirective, resolveDynamicComponent, resolveFilter, resolveTransitionHooks, setBlockTracking, setDevtoolsHook, setTransitionHooks, shallowReactive, shallowReadonly, shallowRef, ssrContextKey, ssrUtils, stop, toDisplayString, toHandlerKey, toHandlers, toRaw, toRef, toRefs, transformVNodeArgs, triggerRef, unref, useAttrs, useCssModule, useCssVars, useSSRContext, useSlots, useTransitionState, vModelCheckbox, vModelDynamic, vModelRadio, vModelSelect, vModelText, vShow, version, warn$1 as warn, watch, watchEffect, watchPostEffect, watchSyncEffect, withAsyncContext, withCtx, withDefaults, withDirectives, withKeys, withMemo, withModifiers, withScopeId };
|