lwc 2.37.2 → 2.38.0
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 +241 -125
- package/dist/engine-dom/esm/es2017/engine-dom.js.map +1 -0
- package/dist/engine-dom/iife/es2017/engine-dom.js +241 -125
- package/dist/engine-dom/iife/es2017/engine-dom.js.map +1 -0
- package/dist/engine-dom/iife/es2017/engine-dom.min.js +2 -1
- package/dist/engine-dom/iife/es2017/engine-dom.min.js.map +1 -0
- package/dist/engine-dom/iife/es2017/engine-dom_debug.js +178 -112
- package/dist/engine-dom/iife/es2017/engine-dom_debug.js.map +1 -0
- package/dist/engine-dom/iife/es5/engine-dom.js +274 -153
- package/dist/engine-dom/iife/es5/engine-dom.js.map +1 -0
- package/dist/engine-dom/iife/es5/engine-dom.min.js +2 -1
- package/dist/engine-dom/iife/es5/engine-dom.min.js.map +1 -0
- package/dist/engine-dom/iife/es5/engine-dom_debug.js +208 -140
- package/dist/engine-dom/iife/es5/engine-dom_debug.js.map +1 -0
- package/dist/engine-dom/umd/es2017/engine-dom.js +241 -125
- package/dist/engine-dom/umd/es2017/engine-dom.js.map +1 -0
- package/dist/engine-dom/umd/es2017/engine-dom.min.js +2 -1
- package/dist/engine-dom/umd/es2017/engine-dom.min.js.map +1 -0
- package/dist/engine-dom/umd/es2017/engine-dom_debug.js +178 -112
- package/dist/engine-dom/umd/es2017/engine-dom_debug.js.map +1 -0
- package/dist/engine-dom/umd/es5/engine-dom.js +274 -153
- package/dist/engine-dom/umd/es5/engine-dom.js.map +1 -0
- package/dist/engine-dom/umd/es5/engine-dom.min.js +2 -1
- package/dist/engine-dom/umd/es5/engine-dom.min.js.map +1 -0
- package/dist/engine-dom/umd/es5/engine-dom_debug.js +208 -140
- package/dist/engine-dom/umd/es5/engine-dom_debug.js.map +1 -0
- package/dist/engine-server/commonjs/es2017/engine-server.js +161 -122
- package/dist/engine-server/commonjs/es2017/engine-server.js.map +1 -0
- package/dist/engine-server/commonjs/es2017/engine-server.min.js +2 -1
- package/dist/engine-server/commonjs/es2017/engine-server.min.js.map +1 -0
- package/dist/engine-server/esm/es2017/engine-server.js +161 -122
- package/dist/engine-server/esm/es2017/engine-server.js.map +1 -0
- package/dist/synthetic-shadow/esm/es2017/synthetic-shadow.js +12 -5
- package/dist/synthetic-shadow/esm/es2017/synthetic-shadow.js.map +1 -0
- package/dist/synthetic-shadow/iife/es2017/synthetic-shadow.js +12 -5
- package/dist/synthetic-shadow/iife/es2017/synthetic-shadow.js.map +1 -0
- package/dist/synthetic-shadow/iife/es2017/synthetic-shadow.min.js +2 -1
- package/dist/synthetic-shadow/iife/es2017/synthetic-shadow.min.js.map +1 -0
- package/dist/synthetic-shadow/iife/es2017/synthetic-shadow_debug.js +12 -5
- package/dist/synthetic-shadow/iife/es2017/synthetic-shadow_debug.js.map +1 -0
- package/dist/synthetic-shadow/iife/es5/synthetic-shadow.js +8 -5
- package/dist/synthetic-shadow/iife/es5/synthetic-shadow.js.map +1 -0
- package/dist/synthetic-shadow/iife/es5/synthetic-shadow.min.js +2 -1
- package/dist/synthetic-shadow/iife/es5/synthetic-shadow.min.js.map +1 -0
- package/dist/synthetic-shadow/iife/es5/synthetic-shadow_debug.js +8 -5
- package/dist/synthetic-shadow/iife/es5/synthetic-shadow_debug.js.map +1 -0
- package/dist/synthetic-shadow/umd/es2017/synthetic-shadow.js +12 -5
- package/dist/synthetic-shadow/umd/es2017/synthetic-shadow.js.map +1 -0
- package/dist/synthetic-shadow/umd/es2017/synthetic-shadow.min.js +3 -2
- package/dist/synthetic-shadow/umd/es2017/synthetic-shadow.min.js.map +1 -0
- package/dist/synthetic-shadow/umd/es2017/synthetic-shadow_debug.js +12 -5
- package/dist/synthetic-shadow/umd/es2017/synthetic-shadow_debug.js.map +1 -0
- package/dist/synthetic-shadow/umd/es5/synthetic-shadow.js +8 -5
- package/dist/synthetic-shadow/umd/es5/synthetic-shadow.js.map +1 -0
- package/dist/synthetic-shadow/umd/es5/synthetic-shadow.min.js +2 -1
- package/dist/synthetic-shadow/umd/es5/synthetic-shadow.min.js.map +1 -0
- package/dist/synthetic-shadow/umd/es5/synthetic-shadow_debug.js +8 -5
- package/dist/synthetic-shadow/umd/es5/synthetic-shadow_debug.js.map +1 -0
- package/dist/wire-service/esm/es2017/wire-service.js +3 -2
- package/dist/wire-service/esm/es2017/wire-service.js.map +1 -0
- package/dist/wire-service/iife/es2017/wire-service.js +3 -2
- package/dist/wire-service/iife/es2017/wire-service.js.map +1 -0
- package/dist/wire-service/iife/es2017/wire-service.min.js +1 -0
- package/dist/wire-service/iife/es2017/wire-service.min.js.map +1 -0
- package/dist/wire-service/iife/es2017/wire-service_debug.js +3 -2
- package/dist/wire-service/iife/es2017/wire-service_debug.js.map +1 -0
- package/dist/wire-service/iife/es5/wire-service.js +3 -2
- package/dist/wire-service/iife/es5/wire-service.js.map +1 -0
- package/dist/wire-service/iife/es5/wire-service.min.js +1 -0
- package/dist/wire-service/iife/es5/wire-service.min.js.map +1 -0
- package/dist/wire-service/iife/es5/wire-service_debug.js +3 -2
- package/dist/wire-service/iife/es5/wire-service_debug.js.map +1 -0
- package/dist/wire-service/umd/es2017/wire-service.js +3 -2
- package/dist/wire-service/umd/es2017/wire-service.js.map +1 -0
- package/dist/wire-service/umd/es2017/wire-service.min.js +1 -0
- package/dist/wire-service/umd/es2017/wire-service.min.js.map +1 -0
- package/dist/wire-service/umd/es2017/wire-service_debug.js +3 -2
- package/dist/wire-service/umd/es2017/wire-service_debug.js.map +1 -0
- package/dist/wire-service/umd/es5/wire-service.js +3 -2
- package/dist/wire-service/umd/es5/wire-service.js.map +1 -0
- package/dist/wire-service/umd/es5/wire-service.min.js +1 -0
- package/dist/wire-service/umd/es5/wire-service.min.js.map +1 -0
- package/dist/wire-service/umd/es5/wire-service_debug.js +3 -2
- package/dist/wire-service/umd/es5/wire-service_debug.js.map +1 -0
- package/package.json +7 -7
|
@@ -328,6 +328,24 @@
|
|
|
328
328
|
return propertyName;
|
|
329
329
|
}
|
|
330
330
|
|
|
331
|
+
/*
|
|
332
|
+
* Copyright (c) 2020, salesforce.com, inc.
|
|
333
|
+
* All rights reserved.
|
|
334
|
+
* SPDX-License-Identifier: MIT
|
|
335
|
+
* For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT
|
|
336
|
+
*/
|
|
337
|
+
const ESCAPED_CHARS = {
|
|
338
|
+
'"': '"',
|
|
339
|
+
"'": ''',
|
|
340
|
+
'<': '<',
|
|
341
|
+
'>': '>',
|
|
342
|
+
'&': '&',
|
|
343
|
+
};
|
|
344
|
+
function htmlEscape(str, attrMode = false) {
|
|
345
|
+
const searchValue = attrMode ? /["&]/g : /["'<>&]/g;
|
|
346
|
+
return str.replace(searchValue, (char) => ESCAPED_CHARS[char]);
|
|
347
|
+
}
|
|
348
|
+
|
|
331
349
|
/*
|
|
332
350
|
* Copyright (c) 2018, salesforce.com, inc.
|
|
333
351
|
* All rights reserved.
|
|
@@ -335,9 +353,9 @@
|
|
|
335
353
|
* For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT
|
|
336
354
|
*/
|
|
337
355
|
// Increment whenever the LWC template compiler changes
|
|
338
|
-
const LWC_VERSION = "2.
|
|
356
|
+
const LWC_VERSION = "2.38.0";
|
|
339
357
|
const LWC_VERSION_COMMENT_REGEX = /\/\*LWC compiler v([\d.]+)\*\/\s*}/;
|
|
340
|
-
/** version: 2.
|
|
358
|
+
/** version: 2.38.0 */
|
|
341
359
|
|
|
342
360
|
/**
|
|
343
361
|
* Copyright (C) 2018 salesforce.com, inc.
|
|
@@ -416,7 +434,7 @@
|
|
|
416
434
|
setFeatureFlag(name, value);
|
|
417
435
|
}
|
|
418
436
|
}
|
|
419
|
-
/** version: 2.
|
|
437
|
+
/** version: 2.38.0 */
|
|
420
438
|
|
|
421
439
|
/**
|
|
422
440
|
* Copyright (C) 2018 salesforce.com, inc.
|
|
@@ -480,7 +498,7 @@
|
|
|
480
498
|
}
|
|
481
499
|
}
|
|
482
500
|
}
|
|
483
|
-
/** version: 2.
|
|
501
|
+
/** version: 2.38.0 */
|
|
484
502
|
|
|
485
503
|
/*
|
|
486
504
|
* Copyright (c) 2018, salesforce.com, inc.
|
|
@@ -2278,6 +2296,14 @@
|
|
|
2278
2296
|
}
|
|
2279
2297
|
return renderer.getLastElementChild(vm.elm);
|
|
2280
2298
|
},
|
|
2299
|
+
get ownerDocument() {
|
|
2300
|
+
const vm = getAssociatedVM(this);
|
|
2301
|
+
const renderer = vm.renderer;
|
|
2302
|
+
if (process.env.NODE_ENV !== 'production') {
|
|
2303
|
+
warnIfInvokedDuringConstruction(vm, 'ownerDocument');
|
|
2304
|
+
}
|
|
2305
|
+
return renderer.ownerDocument(vm.elm);
|
|
2306
|
+
},
|
|
2281
2307
|
render() {
|
|
2282
2308
|
const vm = getAssociatedVM(this);
|
|
2283
2309
|
return vm.def.template;
|
|
@@ -2353,31 +2379,84 @@
|
|
|
2353
2379
|
}
|
|
2354
2380
|
|
|
2355
2381
|
/*
|
|
2356
|
-
* Copyright (c)
|
|
2382
|
+
* Copyright (c) 2023, salesforce.com, inc.
|
|
2357
2383
|
* All rights reserved.
|
|
2358
2384
|
* SPDX-License-Identifier: MIT
|
|
2359
2385
|
* For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT
|
|
2360
2386
|
*/
|
|
2361
|
-
const
|
|
2362
|
-
|
|
2363
|
-
|
|
2364
|
-
|
|
2365
|
-
|
|
2366
|
-
|
|
2367
|
-
|
|
2368
|
-
|
|
2369
|
-
|
|
2387
|
+
const AdapterToTokenMap = new Map();
|
|
2388
|
+
function createContextProviderWithRegister(adapter, registerContextProvider) {
|
|
2389
|
+
let adapterContextToken = AdapterToTokenMap.get(adapter);
|
|
2390
|
+
if (!isUndefined$1(adapterContextToken)) {
|
|
2391
|
+
throw new Error(`Adapter already has a context provider.`);
|
|
2392
|
+
}
|
|
2393
|
+
adapterContextToken = guid();
|
|
2394
|
+
AdapterToTokenMap.set(adapter, adapterContextToken);
|
|
2395
|
+
const providers = new WeakSet();
|
|
2396
|
+
return (elmOrComponent, options) => {
|
|
2397
|
+
if (providers.has(elmOrComponent)) {
|
|
2398
|
+
throw new Error(`Adapter was already installed on ${elmOrComponent}.`);
|
|
2399
|
+
}
|
|
2400
|
+
providers.add(elmOrComponent);
|
|
2401
|
+
const { consumerConnectedCallback, consumerDisconnectedCallback } = options;
|
|
2402
|
+
registerContextProvider(elmOrComponent, adapterContextToken, (subscriptionPayload) => {
|
|
2403
|
+
const { setNewContext, setDisconnectedCallback } = subscriptionPayload;
|
|
2404
|
+
const consumer = {
|
|
2405
|
+
provide(newContext) {
|
|
2406
|
+
setNewContext(newContext);
|
|
2407
|
+
},
|
|
2408
|
+
};
|
|
2409
|
+
const disconnectCallback = () => {
|
|
2410
|
+
if (!isUndefined$1(consumerDisconnectedCallback)) {
|
|
2411
|
+
consumerDisconnectedCallback(consumer);
|
|
2412
|
+
}
|
|
2413
|
+
};
|
|
2414
|
+
setDisconnectedCallback(disconnectCallback);
|
|
2415
|
+
consumerConnectedCallback(consumer);
|
|
2370
2416
|
});
|
|
2371
|
-
|
|
2372
|
-
|
|
2373
|
-
|
|
2417
|
+
};
|
|
2418
|
+
}
|
|
2419
|
+
function createContextWatcher(vm, wireDef, callbackWhenContextIsReady) {
|
|
2420
|
+
const { adapter } = wireDef;
|
|
2421
|
+
const adapterContextToken = AdapterToTokenMap.get(adapter);
|
|
2422
|
+
if (isUndefined$1(adapterContextToken)) {
|
|
2423
|
+
return; // no provider found, nothing to be done
|
|
2424
|
+
}
|
|
2425
|
+
const { elm, context: { wiredConnecting, wiredDisconnecting }, renderer: { registerContextConsumer }, } = vm;
|
|
2426
|
+
// waiting for the component to be connected to formally request the context via the token
|
|
2427
|
+
ArrayPush$1.call(wiredConnecting, () => {
|
|
2428
|
+
// This will attempt to connect the current element with one of its anscestors
|
|
2429
|
+
// that can provide context for the given wire adapter. This relationship is
|
|
2430
|
+
// keyed on the secret & internal value of `adapterContextToken`, which is unique
|
|
2431
|
+
// to a given wire adapter.
|
|
2432
|
+
//
|
|
2433
|
+
// Depending on the runtime environment, this connection is made using either DOM
|
|
2434
|
+
// events (in the browser) or a custom traversal (on the server).
|
|
2435
|
+
registerContextConsumer(elm, adapterContextToken, {
|
|
2436
|
+
setNewContext(newContext) {
|
|
2437
|
+
// eslint-disable-next-line @lwc/lwc-internal/no-invalid-todo
|
|
2438
|
+
// TODO: dev-mode validation of config based on the adapter.contextSchema
|
|
2439
|
+
callbackWhenContextIsReady(newContext);
|
|
2374
2440
|
},
|
|
2375
|
-
setDisconnectedCallback
|
|
2376
|
-
|
|
2441
|
+
setDisconnectedCallback(disconnectCallback) {
|
|
2442
|
+
// adds this callback into the disconnect bucket so it gets disconnected from parent
|
|
2443
|
+
// the the element hosting the wire is disconnected
|
|
2444
|
+
ArrayPush$1.call(wiredDisconnecting, disconnectCallback);
|
|
2377
2445
|
},
|
|
2378
2446
|
});
|
|
2379
|
-
}
|
|
2447
|
+
});
|
|
2380
2448
|
}
|
|
2449
|
+
|
|
2450
|
+
/*
|
|
2451
|
+
* Copyright (c) 2023, salesforce.com, inc.
|
|
2452
|
+
* All rights reserved.
|
|
2453
|
+
* SPDX-License-Identifier: MIT
|
|
2454
|
+
* For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT
|
|
2455
|
+
*/
|
|
2456
|
+
const DeprecatedWiredElementHost = '$$DeprecatedWiredElementHostKey$$';
|
|
2457
|
+
const DeprecatedWiredParamsMeta = '$$DeprecatedWiredParamsMetaKey$$';
|
|
2458
|
+
const WIRE_DEBUG_ENTRY = '@wire';
|
|
2459
|
+
const WireMetaMap = new Map();
|
|
2381
2460
|
function createFieldDataCallback(vm, name) {
|
|
2382
2461
|
return (value) => {
|
|
2383
2462
|
updateComponentValue(vm, name, value);
|
|
@@ -2421,35 +2500,6 @@
|
|
|
2421
2500
|
ro,
|
|
2422
2501
|
};
|
|
2423
2502
|
}
|
|
2424
|
-
function createContextWatcher(vm, wireDef, callbackWhenContextIsReady) {
|
|
2425
|
-
const { adapter } = wireDef;
|
|
2426
|
-
const adapterContextToken = getAdapterToken(adapter);
|
|
2427
|
-
if (isUndefined$1(adapterContextToken)) {
|
|
2428
|
-
return; // no provider found, nothing to be done
|
|
2429
|
-
}
|
|
2430
|
-
const { elm, context: { wiredConnecting, wiredDisconnecting }, renderer: { dispatchEvent }, } = vm;
|
|
2431
|
-
// waiting for the component to be connected to formally request the context via the token
|
|
2432
|
-
ArrayPush$1.call(wiredConnecting, () => {
|
|
2433
|
-
// This event is responsible for connecting the host element with another
|
|
2434
|
-
// element in the composed path that is providing contextual data. The provider
|
|
2435
|
-
// must be listening for a special dom event with the name corresponding to the value of
|
|
2436
|
-
// `adapterContextToken`, which will remain secret and internal to this file only to
|
|
2437
|
-
// guarantee that the linkage can be forged.
|
|
2438
|
-
const contextRegistrationEvent = new WireContextRegistrationEvent(adapterContextToken, {
|
|
2439
|
-
setNewContext(newContext) {
|
|
2440
|
-
// eslint-disable-next-line @lwc/lwc-internal/no-invalid-todo
|
|
2441
|
-
// TODO: dev-mode validation of config based on the adapter.contextSchema
|
|
2442
|
-
callbackWhenContextIsReady(newContext);
|
|
2443
|
-
},
|
|
2444
|
-
setDisconnectedCallback(disconnectCallback) {
|
|
2445
|
-
// adds this callback into the disconnect bucket so it gets disconnected from parent
|
|
2446
|
-
// the the element hosting the wire is disconnected
|
|
2447
|
-
ArrayPush$1.call(wiredDisconnecting, disconnectCallback);
|
|
2448
|
-
},
|
|
2449
|
-
});
|
|
2450
|
-
dispatchEvent(elm, contextRegistrationEvent);
|
|
2451
|
-
});
|
|
2452
|
-
}
|
|
2453
2503
|
function createConnector(vm, name, wireDef) {
|
|
2454
2504
|
const { method, adapter, configCallback, dynamic } = wireDef;
|
|
2455
2505
|
let debugInfo;
|
|
@@ -2524,13 +2574,6 @@
|
|
|
2524
2574
|
resetConfigWatcher: () => ro.reset(),
|
|
2525
2575
|
};
|
|
2526
2576
|
}
|
|
2527
|
-
const AdapterToTokenMap = new Map();
|
|
2528
|
-
function getAdapterToken(adapter) {
|
|
2529
|
-
return AdapterToTokenMap.get(adapter);
|
|
2530
|
-
}
|
|
2531
|
-
function setAdapterToken(adapter, token) {
|
|
2532
|
-
AdapterToTokenMap.set(adapter, token);
|
|
2533
|
-
}
|
|
2534
2577
|
function storeWiredMethodMeta(descriptor, adapter, configCallback, dynamic) {
|
|
2535
2578
|
// support for callable adapters
|
|
2536
2579
|
if (adapter.adapter) {
|
|
@@ -6339,6 +6382,10 @@
|
|
|
6339
6382
|
// Use the unpatched native getElementById/querySelectorAll rather than the synthetic one
|
|
6340
6383
|
const getElementById = _globalThis[KEY__NATIVE_GET_ELEMENT_BY_ID];
|
|
6341
6384
|
const querySelectorAll = _globalThis[KEY__NATIVE_QUERY_SELECTOR_ALL];
|
|
6385
|
+
// This is a "handoff" from synthetic-shadow to engine-core – we want to clean up after ourselves
|
|
6386
|
+
// so nobody else can misuse these global APIs.
|
|
6387
|
+
delete _globalThis[KEY__NATIVE_GET_ELEMENT_BY_ID];
|
|
6388
|
+
delete _globalThis[KEY__NATIVE_QUERY_SELECTOR_ALL];
|
|
6342
6389
|
function isSyntheticShadowRootInstance(rootNode) {
|
|
6343
6390
|
return rootNode !== document && isTrue(rootNode.synthetic);
|
|
6344
6391
|
}
|
|
@@ -6586,67 +6633,6 @@
|
|
|
6586
6633
|
}
|
|
6587
6634
|
}
|
|
6588
6635
|
|
|
6589
|
-
/*
|
|
6590
|
-
* Copyright (c) 2018, salesforce.com, inc.
|
|
6591
|
-
* All rights reserved.
|
|
6592
|
-
* SPDX-License-Identifier: MIT
|
|
6593
|
-
* For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT
|
|
6594
|
-
*/
|
|
6595
|
-
// this is lwc internal implementation
|
|
6596
|
-
function createContextProvider(adapter) {
|
|
6597
|
-
let adapterContextToken = getAdapterToken(adapter);
|
|
6598
|
-
if (!isUndefined$1(adapterContextToken)) {
|
|
6599
|
-
throw new Error(`Adapter already has a context provider.`);
|
|
6600
|
-
}
|
|
6601
|
-
adapterContextToken = guid();
|
|
6602
|
-
setAdapterToken(adapter, adapterContextToken);
|
|
6603
|
-
const providers = new WeakSet();
|
|
6604
|
-
return (elm, options) => {
|
|
6605
|
-
if (providers.has(elm)) {
|
|
6606
|
-
throw new Error(`Adapter was already installed on ${elm}.`);
|
|
6607
|
-
}
|
|
6608
|
-
providers.add(elm);
|
|
6609
|
-
const { consumerConnectedCallback, consumerDisconnectedCallback } = options;
|
|
6610
|
-
elm.addEventListener(adapterContextToken, ((evt) => {
|
|
6611
|
-
const { setNewContext, setDisconnectedCallback } = evt;
|
|
6612
|
-
const consumer = {
|
|
6613
|
-
provide(newContext) {
|
|
6614
|
-
setNewContext(newContext);
|
|
6615
|
-
},
|
|
6616
|
-
};
|
|
6617
|
-
const disconnectCallback = () => {
|
|
6618
|
-
if (!isUndefined$1(consumerDisconnectedCallback)) {
|
|
6619
|
-
consumerDisconnectedCallback(consumer);
|
|
6620
|
-
}
|
|
6621
|
-
};
|
|
6622
|
-
setDisconnectedCallback(disconnectCallback);
|
|
6623
|
-
consumerConnectedCallback(consumer);
|
|
6624
|
-
evt.stopImmediatePropagation();
|
|
6625
|
-
}));
|
|
6626
|
-
};
|
|
6627
|
-
}
|
|
6628
|
-
|
|
6629
|
-
/*
|
|
6630
|
-
* Copyright (c) 2018, salesforce.com, inc.
|
|
6631
|
-
* All rights reserved.
|
|
6632
|
-
* SPDX-License-Identifier: MIT
|
|
6633
|
-
* For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT
|
|
6634
|
-
*/
|
|
6635
|
-
/**
|
|
6636
|
-
* EXPERIMENTAL: This function allows you to create a reactive readonly
|
|
6637
|
-
* membrane around any object value. This API is subject to change or
|
|
6638
|
-
* being removed.
|
|
6639
|
-
*/
|
|
6640
|
-
function readonly(obj) {
|
|
6641
|
-
if (process.env.NODE_ENV !== 'production') {
|
|
6642
|
-
// TODO [#1292]: Remove the readonly decorator
|
|
6643
|
-
if (arguments.length !== 1) {
|
|
6644
|
-
assert.fail('@readonly cannot be used as a decorator just yet, use it as a function with one argument to produce a readonly version of the provided value.');
|
|
6645
|
-
}
|
|
6646
|
-
}
|
|
6647
|
-
return getReadOnlyProxy(obj);
|
|
6648
|
-
}
|
|
6649
|
-
|
|
6650
6636
|
/*
|
|
6651
6637
|
* Copyright (c) 2022, salesforce.com, inc.
|
|
6652
6638
|
* All rights reserved.
|
|
@@ -6700,15 +6686,44 @@
|
|
|
6700
6686
|
return renderer.nextSibling(hydratedNode);
|
|
6701
6687
|
}
|
|
6702
6688
|
const NODE_VALUE_PROP = 'nodeValue';
|
|
6689
|
+
const PARENT_NODE_PROP = 'parentNode';
|
|
6690
|
+
const TAG_NAME_PROP = 'tagName';
|
|
6691
|
+
function textNodeContentsAreEqual(node, vnode, renderer) {
|
|
6692
|
+
const { getProperty } = renderer;
|
|
6693
|
+
const nodeValue = getProperty(node, NODE_VALUE_PROP);
|
|
6694
|
+
if (nodeValue === vnode.text) {
|
|
6695
|
+
return true;
|
|
6696
|
+
}
|
|
6697
|
+
// Special case for empty text nodes – these are serialized differently on the server
|
|
6698
|
+
// See https://github.com/salesforce/lwc/pull/2656
|
|
6699
|
+
if (nodeValue === '\u200D' && vnode.text === '') {
|
|
6700
|
+
return true;
|
|
6701
|
+
}
|
|
6702
|
+
// Special case for text nodes inside `<style>` tags – these are escaped when rendered server-size,
|
|
6703
|
+
// but not when generated by the engine client-side.
|
|
6704
|
+
const parentNode = getProperty(node, PARENT_NODE_PROP);
|
|
6705
|
+
// Should never be null, but just to be safe, we check.
|
|
6706
|
+
/* istanbul ignore else */
|
|
6707
|
+
if (!isNull(parentNode)) {
|
|
6708
|
+
const tagName = getProperty(parentNode, TAG_NAME_PROP);
|
|
6709
|
+
// If the tagName is STYLE, then the following condition should always be true.
|
|
6710
|
+
// The LWC compiler blocks using `<style>`s inside of templates, so it should be impossible
|
|
6711
|
+
// for component authors to render different `<style>` text content on the client and server.
|
|
6712
|
+
// But just to be safe, we check.
|
|
6713
|
+
/* istanbul ignore next */
|
|
6714
|
+
if (tagName === 'STYLE' && htmlEscape(vnode.text) === nodeValue) {
|
|
6715
|
+
return true;
|
|
6716
|
+
}
|
|
6717
|
+
}
|
|
6718
|
+
return false;
|
|
6719
|
+
}
|
|
6703
6720
|
function hydrateText(node, vnode, renderer) {
|
|
6704
6721
|
var _a;
|
|
6705
6722
|
if (!hasCorrectNodeType(vnode, node, 3 /* EnvNodeTypes.TEXT */, renderer)) {
|
|
6706
6723
|
return handleMismatch(node, vnode, renderer);
|
|
6707
6724
|
}
|
|
6708
6725
|
if (process.env.NODE_ENV !== 'production') {
|
|
6709
|
-
|
|
6710
|
-
const nodeValue = getProperty(node, NODE_VALUE_PROP);
|
|
6711
|
-
if (nodeValue !== vnode.text && !(nodeValue === '\u200D' && vnode.text === '')) {
|
|
6726
|
+
if (!textNodeContentsAreEqual(node, vnode, renderer)) {
|
|
6712
6727
|
logWarn('Hydration mismatch: text values do not match, will recover from the difference', vnode.owner);
|
|
6713
6728
|
}
|
|
6714
6729
|
}
|
|
@@ -6888,6 +6903,19 @@
|
|
|
6888
6903
|
const hasIncompatibleStyle = validateStyleAttr(vnode, elm, renderer);
|
|
6889
6904
|
return hasIncompatibleAttrs && hasIncompatibleClass && hasIncompatibleStyle;
|
|
6890
6905
|
}
|
|
6906
|
+
function attributeValuesAreEqual(vnodeValue, value) {
|
|
6907
|
+
const vnodeValueAsString = String(vnodeValue);
|
|
6908
|
+
if (vnodeValueAsString === value) {
|
|
6909
|
+
return true;
|
|
6910
|
+
}
|
|
6911
|
+
// If the expected value is null, this means that the attribute does not exist. In that case,
|
|
6912
|
+
// we accept any nullish value (undefined or null).
|
|
6913
|
+
if (isNull(value) && (isUndefined$1(vnodeValue) || isNull(vnodeValue))) {
|
|
6914
|
+
return true;
|
|
6915
|
+
}
|
|
6916
|
+
// In all other cases, the two values are not considered equal
|
|
6917
|
+
return false;
|
|
6918
|
+
}
|
|
6891
6919
|
function validateAttrs(vnode, elm, renderer) {
|
|
6892
6920
|
const { data: { attrs = {} }, } = vnode;
|
|
6893
6921
|
let nodesAreCompatible = true;
|
|
@@ -6897,10 +6925,10 @@
|
|
|
6897
6925
|
const { owner } = vnode;
|
|
6898
6926
|
const { getAttribute } = renderer;
|
|
6899
6927
|
const elmAttrValue = getAttribute(elm, attrName);
|
|
6900
|
-
if (
|
|
6928
|
+
if (!attributeValuesAreEqual(attrValue, elmAttrValue)) {
|
|
6901
6929
|
if (process.env.NODE_ENV !== 'production') {
|
|
6902
6930
|
const { getProperty } = renderer;
|
|
6903
|
-
logError(`Mismatch hydrating element <${getProperty(elm, 'tagName').toLowerCase()}>: attribute "${attrName}" has different values, expected "${attrValue}" but found "${elmAttrValue}"`, owner);
|
|
6931
|
+
logError(`Mismatch hydrating element <${getProperty(elm, 'tagName').toLowerCase()}>: attribute "${attrName}" has different values, expected "${attrValue}" but found ${isNull(elmAttrValue) ? 'null' : `"${elmAttrValue}"`}`, owner);
|
|
6904
6932
|
}
|
|
6905
6933
|
nodesAreCompatible = false;
|
|
6906
6934
|
}
|
|
@@ -7294,7 +7322,28 @@
|
|
|
7294
7322
|
}
|
|
7295
7323
|
return ctor;
|
|
7296
7324
|
}
|
|
7297
|
-
|
|
7325
|
+
|
|
7326
|
+
/*
|
|
7327
|
+
* Copyright (c) 2018, salesforce.com, inc.
|
|
7328
|
+
* All rights reserved.
|
|
7329
|
+
* SPDX-License-Identifier: MIT
|
|
7330
|
+
* For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT
|
|
7331
|
+
*/
|
|
7332
|
+
/**
|
|
7333
|
+
* EXPERIMENTAL: This function allows you to create a reactive readonly
|
|
7334
|
+
* membrane around any object value. This API is subject to change or
|
|
7335
|
+
* being removed.
|
|
7336
|
+
*/
|
|
7337
|
+
function readonly(obj) {
|
|
7338
|
+
if (process.env.NODE_ENV !== 'production') {
|
|
7339
|
+
// TODO [#1292]: Remove the readonly decorator
|
|
7340
|
+
if (arguments.length !== 1) {
|
|
7341
|
+
assert.fail('@readonly cannot be used as a decorator just yet, use it as a function with one argument to produce a readonly version of the provided value.');
|
|
7342
|
+
}
|
|
7343
|
+
}
|
|
7344
|
+
return getReadOnlyProxy(obj);
|
|
7345
|
+
}
|
|
7346
|
+
/* version: 2.38.0 */
|
|
7298
7347
|
|
|
7299
7348
|
/*
|
|
7300
7349
|
* Copyright (c) 2018, salesforce.com, inc.
|
|
@@ -7722,7 +7771,37 @@
|
|
|
7722
7771
|
function isNull(obj) {
|
|
7723
7772
|
return obj === null;
|
|
7724
7773
|
}
|
|
7725
|
-
/** version: 2.
|
|
7774
|
+
/** version: 2.38.0 */
|
|
7775
|
+
|
|
7776
|
+
/*
|
|
7777
|
+
* Copyright (c) 2023, salesforce.com, inc.
|
|
7778
|
+
* All rights reserved.
|
|
7779
|
+
* SPDX-License-Identifier: MIT
|
|
7780
|
+
* For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT
|
|
7781
|
+
*/
|
|
7782
|
+
class WireContextSubscriptionEvent extends CustomEvent {
|
|
7783
|
+
constructor(adapterToken, { setNewContext, setDisconnectedCallback }) {
|
|
7784
|
+
super(adapterToken, {
|
|
7785
|
+
bubbles: true,
|
|
7786
|
+
composed: true,
|
|
7787
|
+
});
|
|
7788
|
+
this.setNewContext = setNewContext;
|
|
7789
|
+
this.setDisconnectedCallback = setDisconnectedCallback;
|
|
7790
|
+
}
|
|
7791
|
+
}
|
|
7792
|
+
function registerContextConsumer(elm, adapterContextToken, subscriptionPayload) {
|
|
7793
|
+
dispatchEvent(elm, new WireContextSubscriptionEvent(adapterContextToken, subscriptionPayload));
|
|
7794
|
+
}
|
|
7795
|
+
function registerContextProvider(elm, adapterContextToken, onContextSubscription) {
|
|
7796
|
+
addEventListener(elm, adapterContextToken, ((evt) => {
|
|
7797
|
+
evt.stopImmediatePropagation();
|
|
7798
|
+
const { setNewContext, setDisconnectedCallback } = evt;
|
|
7799
|
+
onContextSubscription({
|
|
7800
|
+
setNewContext,
|
|
7801
|
+
setDisconnectedCallback,
|
|
7802
|
+
});
|
|
7803
|
+
}));
|
|
7804
|
+
}
|
|
7726
7805
|
|
|
7727
7806
|
/*
|
|
7728
7807
|
* Copyright (c) 2018, salesforce.com, inc.
|
|
@@ -7903,6 +7982,9 @@
|
|
|
7903
7982
|
function assertInstanceOfHTMLElement(elm, msg) {
|
|
7904
7983
|
assert.invariant(elm instanceof HTMLElement, msg);
|
|
7905
7984
|
}
|
|
7985
|
+
function ownerDocument(element) {
|
|
7986
|
+
return element.ownerDocument;
|
|
7987
|
+
}
|
|
7906
7988
|
|
|
7907
7989
|
exports.addEventListener = addEventListener;
|
|
7908
7990
|
exports.assertInstanceOfHTMLElement = assertInstanceOfHTMLElement;
|
|
@@ -7927,8 +8009,11 @@
|
|
|
7927
8009
|
exports.insert = insert;
|
|
7928
8010
|
exports.isConnected = isConnected;
|
|
7929
8011
|
exports.nextSibling = nextSibling;
|
|
8012
|
+
exports.ownerDocument = ownerDocument;
|
|
7930
8013
|
exports.querySelector = querySelector;
|
|
7931
8014
|
exports.querySelectorAll = querySelectorAll;
|
|
8015
|
+
exports.registerContextConsumer = registerContextConsumer;
|
|
8016
|
+
exports.registerContextProvider = registerContextProvider;
|
|
7932
8017
|
exports.remove = remove;
|
|
7933
8018
|
exports.removeAttribute = removeAttribute;
|
|
7934
8019
|
exports.removeEventListener = removeEventListener;
|
|
@@ -8275,7 +8360,37 @@
|
|
|
8275
8360
|
});
|
|
8276
8361
|
freeze(LightningElement);
|
|
8277
8362
|
seal(LightningElement.prototype);
|
|
8278
|
-
|
|
8363
|
+
|
|
8364
|
+
/*
|
|
8365
|
+
* Copyright (c) 2018, salesforce.com, inc.
|
|
8366
|
+
* All rights reserved.
|
|
8367
|
+
* SPDX-License-Identifier: MIT
|
|
8368
|
+
* For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT
|
|
8369
|
+
*/
|
|
8370
|
+
function addEventListener(target, type, callback, options) {
|
|
8371
|
+
target.addEventListener(type, callback, options);
|
|
8372
|
+
}
|
|
8373
|
+
|
|
8374
|
+
/*
|
|
8375
|
+
* Copyright (c) 2023, salesforce.com, inc.
|
|
8376
|
+
* All rights reserved.
|
|
8377
|
+
* SPDX-License-Identifier: MIT
|
|
8378
|
+
* For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT
|
|
8379
|
+
*/
|
|
8380
|
+
function createContextProvider(adapter) {
|
|
8381
|
+
return createContextProviderWithRegister(adapter, registerContextProvider);
|
|
8382
|
+
}
|
|
8383
|
+
function registerContextProvider(elm, adapterContextToken, onContextSubscription) {
|
|
8384
|
+
addEventListener(elm, adapterContextToken, ((evt) => {
|
|
8385
|
+
evt.stopImmediatePropagation();
|
|
8386
|
+
const { setNewContext, setDisconnectedCallback } = evt;
|
|
8387
|
+
onContextSubscription({
|
|
8388
|
+
setNewContext,
|
|
8389
|
+
setDisconnectedCallback,
|
|
8390
|
+
});
|
|
8391
|
+
}));
|
|
8392
|
+
}
|
|
8393
|
+
/* version: 2.38.0 */
|
|
8279
8394
|
|
|
8280
8395
|
exports.LightningElement = LightningElement;
|
|
8281
8396
|
exports.__unstable__ProfilerControl = profilerControl;
|
|
@@ -8311,3 +8426,4 @@
|
|
|
8311
8426
|
exports.wire = wire;
|
|
8312
8427
|
|
|
8313
8428
|
}));
|
|
8429
|
+
//# sourceMappingURL=engine-dom.js.map
|