Skip to content

Commit 518ab2e

Browse files
divmainnolanlawsonmohanraj-rekashidaravijayaramappa
authored
chore: release v2.14.1 (#2866) @W-7258582 (#2867)
* fix: only remove slot children in synthetic shadow (#2843) * fix: only remove slot children in synthetic shadow * fix: use case block * fix: only add version mismatch test code in karma (#2852) * test(integration-karma): ensure constructable stylesheets are re-used (#2844) * test(integration-karma): ensure constructable stylesheets are re-used * test: add test for shared style * chore(nucleus): remove more downstreams (#2855) * chore(nucleus): remove another downstream (#2857) * docs: fix typo in template compiler readme (#2848) * docs: fix typo in template compiler readme * docs: rewording usage of lwc dynamic directive Co-authored-by: Eugene Kashida <ekashida@gmail.com> Co-authored-by: Eugene Kashida <ekashida@gmail.com> * test(integration-karma): update ACT components (#2862) * fix(engine-core): revert "optimize computation of transitive shadow mode" (#2859) * fix(engine-core): correctly compute shadowMode * fix: fix comment * fix: update packages/integration-karma/test/mixed-shadow-mode/dual-component/index.spec.js Co-authored-by: Eugene Kashida <ekashida@gmail.com> * fix: fix another one * fix: improve tests * fix: improve tests * fix: improve test * fix: revert * Revert "refactor(engine): optimize computation of transitive shadow mode (#2803)" This reverts commit 95ce4c3. Co-authored-by: Eugene Kashida <ekashida@gmail.com> * chore: release v2.14.1 (#2866) Co-authored-by: Nolan Lawson <nolan@nolanlawson.com> Co-authored-by: Mohan Raj Rajamanickam <1509984+mohanraj-r@users.noreply.github.com> Co-authored-by: Eugene Kashida <ekashida@gmail.com> Co-authored-by: Ravi Jayaramappa <ravi.jayaramappa@salesforce.com>
1 parent 7ca7a5f commit 518ab2e

File tree

76 files changed

+411
-168
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

76 files changed

+411
-168
lines changed

.nucleus.yaml

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,8 @@ branches:
99
auto-start-from-forks: false
1010
merge-method: disabled # do not auto-merge; we'll do it ourselves
1111
required-downstream-deps:
12-
- communities/microsite-template-marketing
1312
- communities/shared-experience-components
1413
- communities/ui-b2b-components
15-
- communities/ui-cms-components
16-
- communities/ui-feeds-components
1714
- communities/ui-lightning-community
1815
- lwc/lwc-platform
1916
- salesforce/lwr

lerna.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,5 +2,5 @@
22
"exact": true,
33
"npmClient": "yarn",
44
"useWorkspaces": true,
5-
"version": "2.14.0"
5+
"version": "2.14.1"
66
}

packages/@lwc/babel-plugin-component/package.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
"bugs": {
1111
"url": "https://github.com/salesforce/lwc/issues"
1212
},
13-
"version": "2.14.0",
13+
"version": "2.14.1",
1414
"main": "src/index.js",
1515
"typings": "src/index.d.ts",
1616
"license": "MIT",
@@ -21,8 +21,8 @@
2121
],
2222
"dependencies": {
2323
"@babel/helper-module-imports": "~7.16.7",
24-
"@lwc/errors": "2.14.0",
25-
"@lwc/shared": "2.14.0",
24+
"@lwc/errors": "2.14.1",
25+
"@lwc/shared": "2.14.1",
2626
"line-column": "~1.0.2"
2727
},
2828
"peerDependencies": {

packages/@lwc/compiler/package.json

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@lwc/compiler",
3-
"version": "2.14.0",
3+
"version": "2.14.1",
44
"description": "LWC compiler",
55
"homepage": "https://lwc.dev/",
66
"repository": {
@@ -26,11 +26,11 @@
2626
"@babel/core": "~7.17.10",
2727
"@babel/plugin-proposal-class-properties": "~7.16.7",
2828
"@babel/plugin-proposal-object-rest-spread": "~7.17.3",
29-
"@lwc/babel-plugin-component": "2.14.0",
30-
"@lwc/errors": "2.14.0",
31-
"@lwc/shared": "2.14.0",
32-
"@lwc/style-compiler": "2.14.0",
33-
"@lwc/template-compiler": "2.14.0"
29+
"@lwc/babel-plugin-component": "2.14.1",
30+
"@lwc/errors": "2.14.1",
31+
"@lwc/shared": "2.14.1",
32+
"@lwc/style-compiler": "2.14.1",
33+
"@lwc/template-compiler": "2.14.1"
3434
},
3535
"publishConfig": {
3636
"access": "public"

packages/@lwc/engine-core/package.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@lwc/engine-core",
3-
"version": "2.14.0",
3+
"version": "2.14.1",
44
"description": "Core LWC engine APIs.",
55
"homepage": "https://lwc.dev/",
66
"repository": {
@@ -25,8 +25,8 @@
2525
"types/"
2626
],
2727
"dependencies": {
28-
"@lwc/features": "2.14.0",
29-
"@lwc/shared": "2.14.0"
28+
"@lwc/features": "2.14.1",
29+
"@lwc/shared": "2.14.1"
3030
},
3131
"devDependencies": {
3232
"observable-membrane": "2.0.0"

packages/@lwc/engine-core/src/framework/check-version-mismatch.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,8 @@ import { LightningElementConstructor } from './base-lightning-element';
1414

1515
let warned = false;
1616

17-
if (process.env.NODE_ENV === 'development') {
17+
// @ts-ignore
18+
if (process.env.NODE_ENV !== 'production' && typeof __karma__ !== 'undefined') {
1819
// @ts-ignore
1920
window.__lwcResetWarnedOnVersionMismatch = () => {
2021
warned = false;

packages/@lwc/engine-core/src/framework/rendering.ts

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -284,11 +284,15 @@ function unmount(vnode: VNode, parent: ParentNode, doRemove: boolean = false) {
284284
removeNode(elm!, parent);
285285
}
286286

287-
const removeChildren = sel === 'slot'; // slot content is removed to trigger slotchange event when removing slot
288287
switch (type) {
289-
case VNodeType.Element:
288+
case VNodeType.Element: {
289+
// Slot content is removed to trigger slotchange event when removing slot.
290+
// Only required for synthetic shadow.
291+
const removeChildren =
292+
sel === 'slot' && vnode.owner.shadowMode === ShadowMode.Synthetic;
290293
unmountVNodes(vnode.children, elm as ParentNode, removeChildren);
291294
break;
295+
}
292296

293297
case VNodeType.CustomElement: {
294298
const { vm } = vnode;

packages/@lwc/engine-core/src/framework/vm.ts

Lines changed: 27 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -114,11 +114,8 @@ export interface VM<N = HostNode, E = HostElement> {
114114
/** Whether or not the VM was hydrated */
115115
readonly hydrated: boolean;
116116
/** Rendering operations associated with the VM */
117-
readonly renderMode: RenderMode;
117+
renderMode: RenderMode;
118118
shadowMode: ShadowMode;
119-
/** Transitive support for native Shadow DOM. A component in native mode
120-
* transitively opts all of its descendants into native. */
121-
readonly nearestShadowMode: ShadowMode | null;
122119
/** The component creation index. */
123120
idx: number;
124121
/** Component state, analogous to Element.isConnected */
@@ -258,6 +255,14 @@ export function removeVM(vm: VM) {
258255
resetComponentStateWhenRemoved(vm);
259256
}
260257

258+
function getNearestShadowAncestor(vm: VM): VM | null {
259+
let ancestor = vm.owner;
260+
while (!isNull(ancestor) && ancestor.renderMode === RenderMode.Light) {
261+
ancestor = ancestor.owner;
262+
}
263+
return ancestor;
264+
}
265+
261266
export function createVM<HostNode, HostElement>(
262267
elm: HostElement,
263268
ctor: LightningElementConstructor,
@@ -292,8 +297,6 @@ export function createVM<HostNode, HostElement>(
292297
hydrated: Boolean(hydrated),
293298

294299
renderMode: def.renderMode,
295-
shadowMode: computeShadowMode(def, owner),
296-
nearestShadowMode: owner?.shadowRoot ? owner.shadowMode : owner?.nearestShadowMode ?? null,
297300

298301
context: {
299302
stylesheetToken: undefined,
@@ -308,6 +311,7 @@ export function createVM<HostNode, HostElement>(
308311

309312
// Properties set right after VM creation.
310313
tro: null!,
314+
shadowMode: null!,
311315

312316
// Properties set by the LightningElement constructor.
313317
component: null!,
@@ -319,6 +323,7 @@ export function createVM<HostNode, HostElement>(
319323
getHook,
320324
};
321325

326+
vm.shadowMode = computeShadowMode(vm);
322327
vm.tro = getTemplateReactiveObserver(vm);
323328

324329
if (process.env.NODE_ENV !== 'production') {
@@ -341,7 +346,9 @@ export function createVM<HostNode, HostElement>(
341346
return vm;
342347
}
343348

344-
function computeShadowMode(def: ComponentDef, owner: VM | null) {
349+
function computeShadowMode(vm: VM) {
350+
const { def } = vm;
351+
345352
let shadowMode;
346353
if (isSyntheticShadowDefined) {
347354
if (def.renderMode === RenderMode.Light) {
@@ -355,11 +362,19 @@ function computeShadowMode(def: ComponentDef, owner: VM | null) {
355362
if (def.shadowSupportMode === ShadowSupportMode.Any) {
356363
shadowMode = ShadowMode.Native;
357364
} else {
358-
// Transitive support for native Shadow DOM. A component in native mode
359-
// transitively opts all of its descendants into native.
360-
// Synthetic if neither this component nor any of its ancestors are configured
361-
// to be native.
362-
shadowMode = owner?.nearestShadowMode ?? ShadowMode.Synthetic;
365+
const shadowAncestor = getNearestShadowAncestor(vm);
366+
if (
367+
!isNull(shadowAncestor) &&
368+
shadowAncestor.shadowMode === ShadowMode.Native
369+
) {
370+
// Transitive support for native Shadow DOM. A component in native mode
371+
// transitively opts all of its descendants into native.
372+
shadowMode = ShadowMode.Native;
373+
} else {
374+
// Synthetic if neither this component nor any of its ancestors are configured
375+
// to be native.
376+
shadowMode = ShadowMode.Synthetic;
377+
}
363378
}
364379
} else {
365380
shadowMode = ShadowMode.Synthetic;

packages/@lwc/engine-dom/package.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@lwc/engine-dom",
3-
"version": "2.14.0",
3+
"version": "2.14.1",
44
"description": "Renders LWC components in a DOM environment.",
55
"homepage": "https://lwc.dev/",
66
"repository": {
@@ -25,8 +25,8 @@
2525
"types/"
2626
],
2727
"devDependencies": {
28-
"@lwc/engine-core": "2.14.0",
29-
"@lwc/shared": "2.14.0"
28+
"@lwc/engine-core": "2.14.1",
29+
"@lwc/shared": "2.14.1"
3030
},
3131
"lwc": {
3232
"modules": [

packages/@lwc/engine-server/package.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@lwc/engine-server",
3-
"version": "2.14.0",
3+
"version": "2.14.1",
44
"description": "Renders LWC components in a server environment.",
55
"homepage": "https://lwc.dev/",
66
"repository": {
@@ -25,8 +25,8 @@
2525
"types/"
2626
],
2727
"devDependencies": {
28-
"@lwc/engine-core": "2.14.0",
29-
"@lwc/shared": "2.14.0"
28+
"@lwc/engine-core": "2.14.1",
29+
"@lwc/shared": "2.14.1"
3030
},
3131
"publishConfig": {
3232
"access": "public"

0 commit comments

Comments
 (0)