Skip to content

Commit e6308e8

Browse files
committed
core registry: Do not scan patterns within trees with attribute hidden or class cant-touch-this.
1 parent 93a84c7 commit e6308e8

File tree

3 files changed

+19
-3
lines changed

3 files changed

+19
-3
lines changed

CHANGES.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929

3030
### Features
3131

32+
- core registry: Do not scan patterns within trees with attribute ``hidden`` or class ``cant-touch-this``.
3233
- Implenent lazy loading for external libraries via dynamic imports. Leads to significantly reduced bundle sizes.
3334
- Upgrade pat-calendar to use latest fullcalendar version (5.3.0).
3435
- pat calendar: Add fullcalendar list views.

src/core/registry.js

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -146,10 +146,14 @@ const registry = {
146146
);
147147
matches = matches.filter((el) => {
148148
// Filter out patterns:
149-
// - with class ``.cant-touch-this``.
149+
// - with class ``.cant-touch-this``
150+
// - wrapped in ``.cant-touch-this`` elements
151+
// - wrapped in ``hidden`` elements
150152
// - wrapped in ``<pre>`` elements
151153
return (
152154
!el.matches(".cant-touch-this") &&
155+
!el?.parentNode?.closest?.(".cant-touch-this") &&
156+
!el?.parentNode?.closest?.("[hidden]") &&
153157
!el?.parentNode?.closest?.("pre")
154158
);
155159
});

src/core/registry.test.js

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -72,17 +72,28 @@ describe("pat-registry: The registry for patterns", function () {
7272
tree.innerHTML = `
7373
<div class="e1 pat-example"></div>
7474
<div class="e2 cant-touch-this pat-example"></div>
75+
<div class="cant-touch-this">
76+
<div class="e3 pat-example"></div>
77+
</div>
78+
<div hidden>
79+
<div class="e4 pat-example"></div>
80+
</div>
81+
<div hidden="hidden">
82+
<div class="e5 pat-example"></div>
83+
</div>
7584
<pre>
7685
<div>
77-
<div class="e3 pat-example"></div>
86+
<div class="e6 pat-example"></div>
7887
</div>
7988
</pre>
8089
`;
8190
registry.scan(tree);
8291

83-
console.log(tree.innerHTML);
8492
expect(tree.querySelector(".e1").textContent).toBe("initialized");
8593
expect(tree.querySelector(".e2").textContent).toBe("");
8694
expect(tree.querySelector(".e3").textContent).toBe("");
95+
expect(tree.querySelector(".e4").textContent).toBe("");
96+
expect(tree.querySelector(".e5").textContent).toBe("");
97+
expect(tree.querySelector(".e6").textContent).toBe("");
8798
});
8899
});

0 commit comments

Comments
 (0)