lwc 2.45.1 → 2.45.3
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/engine-dom/esm/es2017/engine-dom.js +101 -60
- package/dist/engine-dom/esm/es2017/engine-dom.js.map +1 -1
- package/dist/engine-dom/iife/es2017/engine-dom.js +101 -60
- package/dist/engine-dom/iife/es2017/engine-dom.js.map +1 -1
- package/dist/engine-dom/iife/es2017/engine-dom.min.js +1 -1
- package/dist/engine-dom/iife/es2017/engine-dom_debug.js +110 -58
- package/dist/engine-dom/iife/es2017/engine-dom_debug.js.map +1 -1
- package/dist/engine-dom/iife/es5/engine-dom.js +114 -62
- package/dist/engine-dom/iife/es5/engine-dom.js.map +1 -1
- package/dist/engine-dom/iife/es5/engine-dom.min.js +1 -1
- package/dist/engine-dom/iife/es5/engine-dom_debug.js +123 -60
- package/dist/engine-dom/iife/es5/engine-dom_debug.js.map +1 -1
- package/dist/engine-dom/umd/es2017/engine-dom.js +101 -60
- package/dist/engine-dom/umd/es2017/engine-dom.js.map +1 -1
- package/dist/engine-dom/umd/es2017/engine-dom.min.js +1 -1
- package/dist/engine-dom/umd/es2017/engine-dom_debug.js +110 -58
- package/dist/engine-dom/umd/es2017/engine-dom_debug.js.map +1 -1
- package/dist/engine-dom/umd/es5/engine-dom.js +114 -62
- package/dist/engine-dom/umd/es5/engine-dom.js.map +1 -1
- package/dist/engine-dom/umd/es5/engine-dom.min.js +1 -1
- package/dist/engine-dom/umd/es5/engine-dom_debug.js +123 -60
- package/dist/engine-dom/umd/es5/engine-dom_debug.js.map +1 -1
- package/dist/engine-server/commonjs/es2017/engine-server.js +7796 -92
- package/dist/engine-server/commonjs/es2017/engine-server.js.map +1 -1
- package/dist/engine-server/commonjs/es2017/engine-server.min.js +1 -1
- package/dist/engine-server/esm/es2017/engine-server.js +7795 -72
- package/dist/engine-server/esm/es2017/engine-server.js.map +1 -1
- package/dist/synthetic-shadow/esm/es2017/synthetic-shadow.js +72 -13
- package/dist/synthetic-shadow/esm/es2017/synthetic-shadow.js.map +1 -1
- package/dist/synthetic-shadow/iife/es2017/synthetic-shadow.js +72 -13
- package/dist/synthetic-shadow/iife/es2017/synthetic-shadow.js.map +1 -1
- package/dist/synthetic-shadow/iife/es2017/synthetic-shadow.min.js +40 -2
- package/dist/synthetic-shadow/iife/es2017/synthetic-shadow_debug.js +56 -6
- package/dist/synthetic-shadow/iife/es2017/synthetic-shadow_debug.js.map +1 -1
- package/dist/synthetic-shadow/iife/es5/synthetic-shadow.js +71 -12
- package/dist/synthetic-shadow/iife/es5/synthetic-shadow.js.map +1 -1
- package/dist/synthetic-shadow/iife/es5/synthetic-shadow.min.js +39 -1
- package/dist/synthetic-shadow/iife/es5/synthetic-shadow_debug.js +43 -4
- package/dist/synthetic-shadow/iife/es5/synthetic-shadow_debug.js.map +1 -1
- package/dist/synthetic-shadow/umd/es2017/synthetic-shadow.js +72 -13
- package/dist/synthetic-shadow/umd/es2017/synthetic-shadow.js.map +1 -1
- package/dist/synthetic-shadow/umd/es2017/synthetic-shadow.min.js +40 -2
- package/dist/synthetic-shadow/umd/es2017/synthetic-shadow_debug.js +56 -6
- package/dist/synthetic-shadow/umd/es2017/synthetic-shadow_debug.js.map +1 -1
- package/dist/synthetic-shadow/umd/es5/synthetic-shadow.js +71 -12
- package/dist/synthetic-shadow/umd/es5/synthetic-shadow.js.map +1 -1
- package/dist/synthetic-shadow/umd/es5/synthetic-shadow.min.js +39 -1
- package/dist/synthetic-shadow/umd/es5/synthetic-shadow_debug.js +43 -4
- package/dist/synthetic-shadow/umd/es5/synthetic-shadow_debug.js.map +1 -1
- package/dist/wire-service/esm/es2017/wire-service.js +10 -4
- package/dist/wire-service/esm/es2017/wire-service.js.map +1 -1
- package/dist/wire-service/iife/es2017/wire-service.js +10 -4
- package/dist/wire-service/iife/es2017/wire-service.js.map +1 -1
- package/dist/wire-service/iife/es2017/wire-service_debug.js +10 -4
- package/dist/wire-service/iife/es2017/wire-service_debug.js.map +1 -1
- package/dist/wire-service/iife/es5/wire-service.js +10 -4
- package/dist/wire-service/iife/es5/wire-service.js.map +1 -1
- package/dist/wire-service/iife/es5/wire-service_debug.js +10 -4
- package/dist/wire-service/iife/es5/wire-service_debug.js.map +1 -1
- package/dist/wire-service/umd/es2017/wire-service.js +10 -4
- package/dist/wire-service/umd/es2017/wire-service.js.map +1 -1
- package/dist/wire-service/umd/es2017/wire-service_debug.js +10 -4
- package/dist/wire-service/umd/es2017/wire-service_debug.js.map +1 -1
- package/dist/wire-service/umd/es5/wire-service.js +10 -4
- package/dist/wire-service/umd/es5/wire-service.js.map +1 -1
- package/dist/wire-service/umd/es5/wire-service_debug.js +10 -4
- package/dist/wire-service/umd/es5/wire-service_debug.js.map +1 -1
- package/package.json +7 -7
|
@@ -4,9 +4,11 @@
|
|
|
4
4
|
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.LWC = {}));
|
|
5
5
|
})(this, (function (exports) { 'use strict';
|
|
6
6
|
|
|
7
|
-
/* proxy-compat-disable */
|
|
8
7
|
/**
|
|
9
|
-
* Copyright (C)
|
|
8
|
+
* Copyright (C) 2023 salesforce.com, inc.
|
|
9
|
+
*/
|
|
10
|
+
/**
|
|
11
|
+
* Copyright (C) 2023 salesforce.com, inc.
|
|
10
12
|
*/
|
|
11
13
|
/*
|
|
12
14
|
* Copyright (c) 2018, salesforce.com, inc.
|
|
@@ -49,7 +51,16 @@
|
|
|
49
51
|
*/
|
|
50
52
|
const { assign, create, defineProperties, defineProperty, freeze, getOwnPropertyDescriptor: getOwnPropertyDescriptor$1, getOwnPropertyNames: getOwnPropertyNames$1, getPrototypeOf: getPrototypeOf$1, hasOwnProperty: hasOwnProperty$1, isFrozen, keys, seal, setPrototypeOf, } = Object;
|
|
51
53
|
const { isArray: isArray$1 } = Array;
|
|
52
|
-
const { concat: ArrayConcat$1, copyWithin: ArrayCopyWithin, fill: ArrayFill, filter: ArrayFilter, find: ArrayFind, findIndex: ArrayFindIndex, indexOf: ArrayIndexOf, join: ArrayJoin, map: ArrayMap, pop: ArrayPop, push: ArrayPush$1, reduce: ArrayReduce, reverse: ArrayReverse, shift: ArrayShift, slice: ArraySlice, some: ArraySome, sort: ArraySort, splice: ArraySplice, unshift: ArrayUnshift, forEach, } = Array.prototype;
|
|
54
|
+
const { concat: ArrayConcat$1, copyWithin: ArrayCopyWithin, every: ArrayEvery, fill: ArrayFill, filter: ArrayFilter, find: ArrayFind, findIndex: ArrayFindIndex, includes: ArrayIncludes, indexOf: ArrayIndexOf, join: ArrayJoin, map: ArrayMap, pop: ArrayPop, push: ArrayPush$1, reduce: ArrayReduce, reverse: ArrayReverse, shift: ArrayShift, slice: ArraySlice, some: ArraySome, sort: ArraySort, splice: ArraySplice, unshift: ArrayUnshift, forEach, } = Array.prototype;
|
|
55
|
+
// The type of the return value of Array.prototype.every is `this is T[]`. However, once this
|
|
56
|
+
// Array method is pulled out of the prototype, the function is now referencing `this` where
|
|
57
|
+
// `this` is meaningless, resulting in a TypeScript compilation error.
|
|
58
|
+
//
|
|
59
|
+
// Exposing this helper function is the closest we can get to preserving the usage patterns
|
|
60
|
+
// of Array.prototype methods used elsewhere in the codebase.
|
|
61
|
+
function arrayEvery(arr, predicate) {
|
|
62
|
+
return ArrayEvery.call(arr, predicate);
|
|
63
|
+
}
|
|
53
64
|
const { fromCharCode: StringFromCharCode } = String;
|
|
54
65
|
const { charCodeAt: StringCharCodeAt, replace: StringReplace, split: StringSplit, slice: StringSlice, toLowerCase: StringToLowerCase, } = String.prototype;
|
|
55
66
|
function isUndefined$1(obj) {
|
|
@@ -190,7 +201,7 @@
|
|
|
190
201
|
})();
|
|
191
202
|
// These attributes take either an ID or a list of IDs as values.
|
|
192
203
|
// This includes aria-* attributes as well as the special non-ARIA "for" attribute
|
|
193
|
-
const ID_REFERENCING_ATTRIBUTES_SET = new Set([
|
|
204
|
+
const ID_REFERENCING_ATTRIBUTES_SET = /*@__PURE__*/ new Set([
|
|
194
205
|
'aria-activedescendant',
|
|
195
206
|
'aria-controls',
|
|
196
207
|
'aria-describedby',
|
|
@@ -277,11 +288,11 @@
|
|
|
277
288
|
/**
|
|
278
289
|
* Map associating previously transformed HTML property into HTML attribute.
|
|
279
290
|
*/
|
|
280
|
-
const CACHED_PROPERTY_ATTRIBUTE_MAPPING = new Map();
|
|
291
|
+
const CACHED_PROPERTY_ATTRIBUTE_MAPPING = /*@__PURE__@*/ new Map();
|
|
281
292
|
/**
|
|
282
293
|
* Map associating previously transformed HTML attribute into HTML property.
|
|
283
294
|
*/
|
|
284
|
-
const CACHED_ATTRIBUTE_PROPERTY_MAPPING = new Map();
|
|
295
|
+
const CACHED_ATTRIBUTE_PROPERTY_MAPPING = /*@__PURE__@*/ new Map();
|
|
285
296
|
function htmlPropertyToAttribute(propName) {
|
|
286
297
|
const ariaAttributeName = AriaPropNameToAttrNameMap[propName];
|
|
287
298
|
if (!isUndefined$1(ariaAttributeName)) {
|
|
@@ -335,12 +346,12 @@
|
|
|
335
346
|
* For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT
|
|
336
347
|
*/
|
|
337
348
|
// Increment whenever the LWC template compiler changes
|
|
338
|
-
const LWC_VERSION = "2.45.
|
|
349
|
+
const LWC_VERSION = "2.45.3";
|
|
339
350
|
const LWC_VERSION_COMMENT_REGEX = /\/\*LWC compiler v([\d.]+)\*\/\s*}/;
|
|
340
|
-
/** version: 2.45.
|
|
351
|
+
/** version: 2.45.3 */
|
|
341
352
|
|
|
342
353
|
/**
|
|
343
|
-
* Copyright (C)
|
|
354
|
+
* Copyright (C) 2023 salesforce.com, inc.
|
|
344
355
|
*/
|
|
345
356
|
|
|
346
357
|
/*
|
|
@@ -415,10 +426,10 @@
|
|
|
415
426
|
setFeatureFlag(name, value);
|
|
416
427
|
}
|
|
417
428
|
}
|
|
418
|
-
/** version: 2.45.
|
|
429
|
+
/** version: 2.45.3 */
|
|
419
430
|
|
|
420
431
|
/**
|
|
421
|
-
* Copyright (C)
|
|
432
|
+
* Copyright (C) 2023 salesforce.com, inc.
|
|
422
433
|
*/
|
|
423
434
|
|
|
424
435
|
/*
|
|
@@ -479,7 +490,7 @@
|
|
|
479
490
|
}
|
|
480
491
|
}
|
|
481
492
|
}
|
|
482
|
-
/** version: 2.45.
|
|
493
|
+
/** version: 2.45.3 */
|
|
483
494
|
|
|
484
495
|
/*
|
|
485
496
|
* Copyright (c) 2018, salesforce.com, inc.
|
|
@@ -493,7 +504,9 @@
|
|
|
493
504
|
applyAriaReflection();
|
|
494
505
|
}
|
|
495
506
|
|
|
496
|
-
|
|
507
|
+
/**
|
|
508
|
+
* Copyright (C) 2023 salesforce.com, inc.
|
|
509
|
+
*/
|
|
497
510
|
|
|
498
511
|
/*
|
|
499
512
|
* Copyright (c) 2018, salesforce.com, inc.
|
|
@@ -922,19 +935,6 @@
|
|
|
922
935
|
'tabIndex',
|
|
923
936
|
'title',
|
|
924
937
|
];
|
|
925
|
-
let controlledElement = null;
|
|
926
|
-
let controlledAttributeName;
|
|
927
|
-
function isAttributeLocked(elm, attrName) {
|
|
928
|
-
return elm !== controlledElement || attrName !== controlledAttributeName;
|
|
929
|
-
}
|
|
930
|
-
function lockAttribute(_elm, _key) {
|
|
931
|
-
controlledElement = null;
|
|
932
|
-
controlledAttributeName = undefined;
|
|
933
|
-
}
|
|
934
|
-
function unlockAttribute(elm, key) {
|
|
935
|
-
controlledElement = elm;
|
|
936
|
-
controlledAttributeName = key;
|
|
937
|
-
}
|
|
938
938
|
|
|
939
939
|
/*
|
|
940
940
|
* Copyright (c) 2018, salesforce.com, inc.
|
|
@@ -973,6 +973,7 @@
|
|
|
973
973
|
* SPDX-License-Identifier: MIT
|
|
974
974
|
* For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT
|
|
975
975
|
*/
|
|
976
|
+
/* eslint @lwc/lwc-internal/no-production-assert: "off" */
|
|
976
977
|
function generateDataDescriptor(options) {
|
|
977
978
|
return assign({
|
|
978
979
|
configurable: true,
|
|
@@ -1802,6 +1803,14 @@
|
|
|
1802
1803
|
* SPDX-License-Identifier: MIT
|
|
1803
1804
|
* For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT
|
|
1804
1805
|
*/
|
|
1806
|
+
/**
|
|
1807
|
+
* This module is responsible for producing the ComponentDef object that is always
|
|
1808
|
+
* accessible via `vm.def`. This is lazily created during the creation of the first
|
|
1809
|
+
* instance of a component class, and shared across all instances.
|
|
1810
|
+
*
|
|
1811
|
+
* This structure can be used to synthetically create proxies, and understand the
|
|
1812
|
+
* shape of a component. It is also used internally to apply extra optimizations.
|
|
1813
|
+
*/
|
|
1805
1814
|
/**
|
|
1806
1815
|
* This operation is called with a descriptor of an standard html property
|
|
1807
1816
|
* that a Custom Element can support (including AOM properties), which
|
|
@@ -1965,15 +1974,11 @@
|
|
|
1965
1974
|
removeAttribute(name) {
|
|
1966
1975
|
const vm = getAssociatedVM(this);
|
|
1967
1976
|
const { elm, renderer: { removeAttribute }, } = vm;
|
|
1968
|
-
unlockAttribute(elm, name);
|
|
1969
1977
|
removeAttribute(elm, name);
|
|
1970
|
-
lockAttribute();
|
|
1971
1978
|
},
|
|
1972
1979
|
removeAttributeNS(namespace, name) {
|
|
1973
1980
|
const { elm, renderer: { removeAttribute }, } = getAssociatedVM(this);
|
|
1974
|
-
unlockAttribute(elm, name);
|
|
1975
1981
|
removeAttribute(elm, name, namespace);
|
|
1976
|
-
lockAttribute();
|
|
1977
1982
|
},
|
|
1978
1983
|
getAttribute(name) {
|
|
1979
1984
|
const vm = getAssociatedVM(this);
|
|
@@ -1995,9 +2000,7 @@
|
|
|
1995
2000
|
logError(`Failed to construct '${getComponentTag(vm)}': The result must not have attributes.`);
|
|
1996
2001
|
}
|
|
1997
2002
|
}
|
|
1998
|
-
unlockAttribute(elm, name);
|
|
1999
2003
|
setAttribute(elm, name, value);
|
|
2000
|
-
lockAttribute();
|
|
2001
2004
|
},
|
|
2002
2005
|
setAttributeNS(namespace, name, value) {
|
|
2003
2006
|
const vm = getAssociatedVM(this);
|
|
@@ -2007,9 +2010,7 @@
|
|
|
2007
2010
|
logError(`Failed to construct '${getComponentTag(vm)}': The result must not have attributes.`);
|
|
2008
2011
|
}
|
|
2009
2012
|
}
|
|
2010
|
-
unlockAttribute(elm, name);
|
|
2011
2013
|
setAttribute(elm, name, value, namespace);
|
|
2012
|
-
lockAttribute();
|
|
2013
2014
|
},
|
|
2014
2015
|
getBoundingClientRect() {
|
|
2015
2016
|
const vm = getAssociatedVM(this);
|
|
@@ -2391,7 +2392,7 @@
|
|
|
2391
2392
|
});
|
|
2392
2393
|
runWithBoundaryProtection(vm, vm, noop, () => {
|
|
2393
2394
|
// job
|
|
2394
|
-
connector = new adapter(dataCallback);
|
|
2395
|
+
connector = new adapter(dataCallback, { tagName: vm.tagName });
|
|
2395
2396
|
}, noop);
|
|
2396
2397
|
const updateConnectorConfig = (config) => {
|
|
2397
2398
|
// every time the config is recomputed due to tracking,
|
|
@@ -2959,6 +2960,10 @@
|
|
|
2959
2960
|
* SPDX-License-Identifier: MIT
|
|
2960
2961
|
* For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT
|
|
2961
2962
|
*/
|
|
2963
|
+
/**
|
|
2964
|
+
* This module is responsible for creating the base bridge class BaseBridgeElement
|
|
2965
|
+
* that represents the HTMLElement extension used for any LWC inserted in the DOM.
|
|
2966
|
+
*/
|
|
2962
2967
|
// A bridge descriptor is a descriptor whose job is just to get the component instance
|
|
2963
2968
|
// from the element instance, and get the value or set a new value on the component.
|
|
2964
2969
|
// This means that across different elements, similar names can get the exact same
|
|
@@ -3012,14 +3017,6 @@
|
|
|
3012
3017
|
}
|
|
3013
3018
|
return;
|
|
3014
3019
|
}
|
|
3015
|
-
if (!isAttributeLocked(this, attrName)) {
|
|
3016
|
-
// Ignore changes triggered by the engine itself during:
|
|
3017
|
-
// * diffing when public props are attempting to reflect to the DOM
|
|
3018
|
-
// * component via `this.setAttribute()`, should never update the prop
|
|
3019
|
-
// Both cases, the setAttribute call is always wrapped by the unlocking of the
|
|
3020
|
-
// attribute to be changed
|
|
3021
|
-
return;
|
|
3022
|
-
}
|
|
3023
3020
|
// Reflect attribute change to the corresponding property when changed from outside.
|
|
3024
3021
|
this[propName] = newValue;
|
|
3025
3022
|
};
|
|
@@ -3364,6 +3361,14 @@
|
|
|
3364
3361
|
* SPDX-License-Identifier: MIT
|
|
3365
3362
|
* For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT
|
|
3366
3363
|
*/
|
|
3364
|
+
/**
|
|
3365
|
+
* This module is responsible for producing the ComponentDef object that is always
|
|
3366
|
+
* accessible via `vm.def`. This is lazily created during the creation of the first
|
|
3367
|
+
* instance of a component class, and shared across all instances.
|
|
3368
|
+
*
|
|
3369
|
+
* This structure can be used to synthetically create proxies, and understand the
|
|
3370
|
+
* shape of a component. It is also used internally to apply extra optimizations.
|
|
3371
|
+
*/
|
|
3367
3372
|
const CtorToDefMap = new WeakMap();
|
|
3368
3373
|
function getCtorProto(Ctor) {
|
|
3369
3374
|
let proto = getPrototypeOf$1(Ctor);
|
|
@@ -3805,7 +3810,6 @@
|
|
|
3805
3810
|
const cur = attrs[key];
|
|
3806
3811
|
const old = oldAttrs[key];
|
|
3807
3812
|
if (old !== cur) {
|
|
3808
|
-
unlockAttribute(elm, key);
|
|
3809
3813
|
if (StringCharCodeAt.call(key, 3) === ColonCharCode$1) {
|
|
3810
3814
|
// Assume xml namespace
|
|
3811
3815
|
setAttribute(elm, key, cur, XML_NAMESPACE);
|
|
@@ -3820,7 +3824,6 @@
|
|
|
3820
3824
|
else {
|
|
3821
3825
|
setAttribute(elm, key, cur);
|
|
3822
3826
|
}
|
|
3823
|
-
lockAttribute();
|
|
3824
3827
|
}
|
|
3825
3828
|
}
|
|
3826
3829
|
}
|
|
@@ -6708,6 +6711,27 @@
|
|
|
6708
6711
|
}
|
|
6709
6712
|
return false;
|
|
6710
6713
|
}
|
|
6714
|
+
// The validationOptOut static property can be an array of attribute names.
|
|
6715
|
+
// Any attribute names specified in that array will not be validated, and the
|
|
6716
|
+
// LWC runtime will assume that VDOM attrs and DOM attrs are in sync.
|
|
6717
|
+
function getValidationPredicate(optOutStaticProp) {
|
|
6718
|
+
if (isUndefined$1(optOutStaticProp)) {
|
|
6719
|
+
return (_attrName) => true;
|
|
6720
|
+
}
|
|
6721
|
+
// If validationOptOut is true, no attributes will be checked for correctness
|
|
6722
|
+
// and the runtime will assume VDOM attrs and DOM attrs are in sync.
|
|
6723
|
+
if (isTrue(optOutStaticProp)) {
|
|
6724
|
+
return (_attrName) => false;
|
|
6725
|
+
}
|
|
6726
|
+
// If validationOptOut is an array of strings, attributes specified in the
|
|
6727
|
+
// array will be "opted out". Attributes not specified in the array will still
|
|
6728
|
+
// be validated.
|
|
6729
|
+
if (isArray$1(optOutStaticProp) && arrayEvery(optOutStaticProp, isString)) {
|
|
6730
|
+
return (attrName) => !ArrayIncludes.call(optOutStaticProp, attrName);
|
|
6731
|
+
}
|
|
6732
|
+
logWarn('Validation opt out must be `true` or an array of attributes that should not be validated.');
|
|
6733
|
+
return (_attrName) => true;
|
|
6734
|
+
}
|
|
6711
6735
|
function hydrateText(node, vnode, renderer) {
|
|
6712
6736
|
var _a;
|
|
6713
6737
|
if (!hasCorrectNodeType(vnode, node, 3 /* EnvNodeTypes.TEXT */, renderer)) {
|
|
@@ -6786,8 +6810,19 @@
|
|
|
6786
6810
|
return elm;
|
|
6787
6811
|
}
|
|
6788
6812
|
function hydrateCustomElement(elm, vnode, renderer) {
|
|
6813
|
+
const { validationOptOut } = vnode.ctor;
|
|
6814
|
+
const shouldValidateAttr = getValidationPredicate(validationOptOut);
|
|
6815
|
+
// The validationOptOut static property can be an array of attribute names.
|
|
6816
|
+
// Any attribute names specified in that array will not be validated, and the
|
|
6817
|
+
// LWC runtime will assume that VDOM attrs and DOM attrs are in sync.
|
|
6818
|
+
//
|
|
6819
|
+
// If validationOptOut is true, no attributes will be checked for correctness
|
|
6820
|
+
// and the runtime will assume VDOM attrs and DOM attrs are in sync.
|
|
6821
|
+
//
|
|
6822
|
+
// Therefore, if validationOptOut is falsey or an array of strings, we need to
|
|
6823
|
+
// examine some or all of the custom element's attributes.
|
|
6789
6824
|
if (!hasCorrectNodeType(vnode, elm, 1 /* EnvNodeTypes.ELEMENT */, renderer) ||
|
|
6790
|
-
!isMatchingElement(vnode, elm, renderer)) {
|
|
6825
|
+
!isMatchingElement(vnode, elm, renderer, shouldValidateAttr)) {
|
|
6791
6826
|
return handleMismatch(elm, vnode, renderer);
|
|
6792
6827
|
}
|
|
6793
6828
|
const { sel, mode, ctor, owner } = vnode;
|
|
@@ -6818,14 +6853,12 @@
|
|
|
6818
6853
|
function hydrateChildren(node, children, parentNode, owner) {
|
|
6819
6854
|
let hasWarned = false;
|
|
6820
6855
|
let nextNode = node;
|
|
6821
|
-
let anchor = null;
|
|
6822
6856
|
const { renderer } = owner;
|
|
6823
6857
|
for (let i = 0; i < children.length; i++) {
|
|
6824
6858
|
const childVnode = children[i];
|
|
6825
6859
|
if (!isNull(childVnode)) {
|
|
6826
6860
|
if (nextNode) {
|
|
6827
6861
|
nextNode = hydrateNode(nextNode, childVnode, renderer);
|
|
6828
|
-
anchor = childVnode.elm;
|
|
6829
6862
|
}
|
|
6830
6863
|
else {
|
|
6831
6864
|
hasMismatch = true;
|
|
@@ -6835,8 +6868,8 @@
|
|
|
6835
6868
|
logError(`Hydration mismatch: incorrect number of rendered nodes. Client produced more nodes than the server.`, owner);
|
|
6836
6869
|
}
|
|
6837
6870
|
}
|
|
6838
|
-
mount(childVnode, parentNode, renderer,
|
|
6839
|
-
|
|
6871
|
+
mount(childVnode, parentNode, renderer, nextNode);
|
|
6872
|
+
nextNode = renderer.nextSibling(childVnode.elm);
|
|
6840
6873
|
}
|
|
6841
6874
|
}
|
|
6842
6875
|
}
|
|
@@ -6881,7 +6914,7 @@
|
|
|
6881
6914
|
}
|
|
6882
6915
|
return true;
|
|
6883
6916
|
}
|
|
6884
|
-
function isMatchingElement(vnode, elm, renderer) {
|
|
6917
|
+
function isMatchingElement(vnode, elm, renderer, shouldValidateAttr = () => true) {
|
|
6885
6918
|
const { getProperty } = renderer;
|
|
6886
6919
|
if (vnode.sel.toLowerCase() !== getProperty(elm, 'tagName').toLowerCase()) {
|
|
6887
6920
|
if (process.env.NODE_ENV !== 'production') {
|
|
@@ -6889,10 +6922,14 @@
|
|
|
6889
6922
|
}
|
|
6890
6923
|
return false;
|
|
6891
6924
|
}
|
|
6892
|
-
const
|
|
6893
|
-
const
|
|
6894
|
-
|
|
6895
|
-
|
|
6925
|
+
const hasCompatibleAttrs = validateAttrs(vnode, elm, renderer, shouldValidateAttr);
|
|
6926
|
+
const hasCompatibleClass = shouldValidateAttr('class')
|
|
6927
|
+
? validateClassAttr(vnode, elm, renderer)
|
|
6928
|
+
: true;
|
|
6929
|
+
const hasCompatibleStyle = shouldValidateAttr('style')
|
|
6930
|
+
? validateStyleAttr(vnode, elm, renderer)
|
|
6931
|
+
: true;
|
|
6932
|
+
return hasCompatibleAttrs && hasCompatibleClass && hasCompatibleStyle;
|
|
6896
6933
|
}
|
|
6897
6934
|
function attributeValuesAreEqual(vnodeValue, value) {
|
|
6898
6935
|
const vnodeValueAsString = String(vnodeValue);
|
|
@@ -6907,12 +6944,15 @@
|
|
|
6907
6944
|
// In all other cases, the two values are not considered equal
|
|
6908
6945
|
return false;
|
|
6909
6946
|
}
|
|
6910
|
-
function validateAttrs(vnode, elm, renderer) {
|
|
6947
|
+
function validateAttrs(vnode, elm, renderer, shouldValidateAttr) {
|
|
6911
6948
|
const { data: { attrs = {} }, } = vnode;
|
|
6912
6949
|
let nodesAreCompatible = true;
|
|
6913
6950
|
// Validate attributes, though we could always recovery from those by running the update mods.
|
|
6914
6951
|
// Note: intentionally ONLY matching vnodes.attrs to elm.attrs, in case SSR is adding extra attributes.
|
|
6915
6952
|
for (const [attrName, attrValue] of Object.entries(attrs)) {
|
|
6953
|
+
if (!shouldValidateAttr(attrName)) {
|
|
6954
|
+
continue;
|
|
6955
|
+
}
|
|
6916
6956
|
const { owner } = vnode;
|
|
6917
6957
|
const { getAttribute } = renderer;
|
|
6918
6958
|
const elmAttrValue = getAttribute(elm, attrName);
|
|
@@ -7336,7 +7376,7 @@
|
|
|
7336
7376
|
}
|
|
7337
7377
|
return getReadOnlyProxy(obj);
|
|
7338
7378
|
}
|
|
7339
|
-
|
|
7379
|
+
/** version: 2.45.3 */
|
|
7340
7380
|
|
|
7341
7381
|
/*
|
|
7342
7382
|
* Copyright (c) 2018, salesforce.com, inc.
|
|
@@ -7598,6 +7638,7 @@
|
|
|
7598
7638
|
* SPDX-License-Identifier: MIT
|
|
7599
7639
|
* For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT
|
|
7600
7640
|
*/
|
|
7641
|
+
new WeakMap();
|
|
7601
7642
|
// Creates a custom element for compat (legacy) browser environments
|
|
7602
7643
|
const createCustomElementCompat = (tagName, upgradeCallback) => {
|
|
7603
7644
|
const elm = document.createElement(tagName);
|
|
@@ -7724,7 +7765,7 @@
|
|
|
7724
7765
|
const renderer = (function (exports) {
|
|
7725
7766
|
|
|
7726
7767
|
/**
|
|
7727
|
-
* Copyright (C)
|
|
7768
|
+
* Copyright (C) 2023 salesforce.com, inc.
|
|
7728
7769
|
*/
|
|
7729
7770
|
/*
|
|
7730
7771
|
* Copyright (c) 2018, salesforce.com, inc.
|
|
@@ -7764,7 +7805,7 @@
|
|
|
7764
7805
|
function isNull(obj) {
|
|
7765
7806
|
return obj === null;
|
|
7766
7807
|
}
|
|
7767
|
-
/** version: 2.45.
|
|
7808
|
+
/** version: 2.45.3 */
|
|
7768
7809
|
|
|
7769
7810
|
/*
|
|
7770
7811
|
* Copyright (c) 2023, salesforce.com, inc.
|
|
@@ -8383,7 +8424,7 @@
|
|
|
8383
8424
|
});
|
|
8384
8425
|
}));
|
|
8385
8426
|
}
|
|
8386
|
-
|
|
8427
|
+
/** version: 2.45.3 */
|
|
8387
8428
|
|
|
8388
8429
|
exports.LightningElement = LightningElement;
|
|
8389
8430
|
exports.__unstable__ProfilerControl = profilerControl;
|