Skip to content

Commit e135670

Browse files
authored
chore: convert theme-switcher to vanilla custom element (#9240)
1 parent 6ec8c29 commit e135670

File tree

1 file changed

+10
-19
lines changed

1 file changed

+10
-19
lines changed

dev/charts/theme-switcher.js

Lines changed: 10 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
1-
import { html, PolymerElement } from '@polymer/polymer';
2-
31
/**
42
* Theme switcher component for the charts examples.
53
*/
6-
class ThemeSwitcher extends PolymerElement {
7-
static get template() {
8-
return html`
4+
class ThemeSwitcher extends HTMLElement {
5+
constructor() {
6+
super();
7+
8+
this.attachShadow({ mode: 'open' });
9+
this.shadowRoot.innerHTML = `
910
<style>
1011
.theme-switcher {
1112
display: flex;
@@ -22,14 +23,7 @@ class ThemeSwitcher extends PolymerElement {
2223
<button>Monotone theme</button>
2324
</div>
2425
`;
25-
}
2626

27-
static get is() {
28-
return 'theme-switcher';
29-
}
30-
31-
ready() {
32-
super.ready();
3327
const buttons = this.shadowRoot.querySelectorAll('button');
3428
buttons[0].addEventListener('click', () => this.changeTheme(''));
3529
buttons[1].addEventListener('click', () => this.changeTheme('gradient'));
@@ -38,13 +32,10 @@ class ThemeSwitcher extends PolymerElement {
3832

3933
// Crappy theme switcher that doesn't clear the previous theme
4034
changeTheme(theme) {
41-
const charts = document.getElementsByTagName('vaadin-chart');
42-
for (let i = 0; i < charts.length; i++) {
43-
charts[i].setAttribute('theme', theme);
44-
}
35+
[...document.getElementsByTagName('vaadin-chart')].forEach((chart) => {
36+
chart.setAttribute('theme', theme);
37+
});
4538
}
4639
}
4740

48-
customElements.define(ThemeSwitcher.is, ThemeSwitcher);
49-
50-
export { ThemeSwitcher };
41+
customElements.define('theme-switcher', ThemeSwitcher);

0 commit comments

Comments
 (0)