Skip to content

Commit e0402e4

Browse files
authored
Update Editor for new Scoped Registry (#50)
1 parent ac3bb5d commit e0402e4

15 files changed

Lines changed: 730 additions & 335 deletions

elements/formfield.js

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
import { FormfieldBase } from '@material/mwc-formfield/mwc-formfield-base.js';
2+
import { styles as formfieldStyles } from '@material/mwc-formfield/mwc-formfield.css.js';
3+
4+
export const formfieldDefinition = {
5+
'mwc-formfield': class extends FormfieldBase {
6+
static get styles() {
7+
return formfieldStyles;
8+
}
9+
},
10+
};

elements/ignore/select.js

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
export const ignoreSelectFiles = [
2+
'@material/mwc-ripple/mwc-ripple.js',
3+
'@material/mwc-menu/mwc-menu.js',
4+
'@material/mwc-menu/mwc-menu-surface.js',
5+
'@material/mwc-list/mwc-list.js',
6+
'@material/mwc-list/mwc-list-item.js',
7+
'@material/mwc-icon/mwc-icon.js',
8+
];

elements/ignore/switch.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
export const ignoreSwitchFiles = ['@material/mwc-ripple/mwc-ripple.js'];

elements/ignore/textfield.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
export const ignoreTextfieldFiles = ['@material/mwc-notched-outline/mwc-notched-outline.js'];

elements/select.js

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
import { SelectBase } from '@material/mwc-select/mwc-select-base.js';
2+
import { ListBase } from '@material/mwc-list/mwc-list-base.js';
3+
import { ListItemBase } from '@material/mwc-list/mwc-list-item-base.js';
4+
import { MenuBase } from '@material/mwc-menu/mwc-menu-base.js';
5+
import { MenuSurfaceBase } from '@material/mwc-menu/mwc-menu-surface-base.js';
6+
import { RippleBase } from '@material/mwc-ripple/mwc-ripple-base.js';
7+
import { NotchedOutlineBase } from '@material/mwc-notched-outline/mwc-notched-outline-base.js';
8+
9+
import { styles as selectStyles } from '@material/mwc-select/mwc-select.css';
10+
import { styles as listStyles } from '@material/mwc-list/mwc-list.css';
11+
import { styles as listItemStyles } from '@material/mwc-list//mwc-list-item.css';
12+
import { styles as rippleStyles } from '@material/mwc-ripple/mwc-ripple.css';
13+
import { styles as menuStyles } from '@material/mwc-menu/mwc-menu.css';
14+
import { styles as menuSurfaceStyles } from '@material/mwc-menu/mwc-menu-surface.css';
15+
import { styles as notchedOutlineStyles } from '@material/mwc-notched-outline/mwc-notched-outline.css';
16+
17+
export const selectDefinition = {
18+
'mwc-select': class extends SelectBase {
19+
static get styles() {
20+
return selectStyles;
21+
}
22+
},
23+
'mwc-list': class extends ListBase {
24+
static get styles() {
25+
return listStyles;
26+
}
27+
},
28+
'mwc-list-item': class extends ListItemBase {
29+
static get styles() {
30+
return listItemStyles;
31+
}
32+
},
33+
'mwc-ripple': class extends RippleBase {
34+
static get styles() {
35+
return rippleStyles;
36+
}
37+
},
38+
'mwc-menu': class extends MenuBase {
39+
static get styles() {
40+
return menuStyles;
41+
}
42+
},
43+
'mwc-menu-surface': class extends MenuSurfaceBase {
44+
static get styles() {
45+
return menuSurfaceStyles;
46+
}
47+
},
48+
'mwc-notched-outline': class extends NotchedOutlineBase {
49+
static get styles() {
50+
return notchedOutlineStyles;
51+
}
52+
},
53+
};

elements/switch.js

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
import { SwitchBase } from '@material/mwc-switch/deprecated/mwc-switch-base.js';
2+
import { RippleBase } from '@material/mwc-ripple/mwc-ripple-base.js';
3+
import { styles as switchStyles } from '@material/mwc-switch/deprecated/mwc-switch.css';
4+
import { styles as rippleStyles } from '@material/mwc-ripple/mwc-ripple.css';
5+
6+
export const switchDefinition = {
7+
'mwc-switch': class extends SwitchBase {
8+
static get styles() {
9+
return switchStyles;
10+
}
11+
},
12+
'mwc-ripple': class extends RippleBase {
13+
static get styles() {
14+
return rippleStyles;
15+
}
16+
},
17+
};

elements/textfield.js

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
import { TextFieldBase } from '@material/mwc-textfield/mwc-textfield-base.js';
2+
import { NotchedOutlineBase } from '@material/mwc-notched-outline/mwc-notched-outline-base.js';
3+
4+
import { styles as textfieldStyles } from '@material/mwc-textfield/mwc-textfield.css';
5+
import { styles as notchedOutlineStyles } from '@material/mwc-notched-outline/mwc-notched-outline.css';
6+
7+
export const textfieldDefinition = {
8+
'mwc-textfield': class extends TextFieldBase {
9+
static get styles() {
10+
return textfieldStyles;
11+
}
12+
},
13+
'mwc-notched-outline': class extends NotchedOutlineBase {
14+
static get styles() {
15+
return notchedOutlineStyles;
16+
}
17+
},
18+
};

package.json

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,18 @@
1515
"author": "Ian Richardson <iantrich@gmail.com>",
1616
"license": "MIT",
1717
"dependencies": {
18+
"@lit-labs/scoped-registry-mixin": "^1.0.0",
19+
"@material/mwc-formfield": "^0.25.3",
20+
"@material/mwc-list": "^0.25.3",
21+
"@material/mwc-menu": "^0.25.3",
22+
"@material/mwc-notched-outline": "^0.25.3",
23+
"@material/mwc-ripple": "^0.25.3",
24+
"@material/mwc-select": "^0.25.3",
25+
"@material/mwc-switch": "^0.25.3",
26+
"@material/mwc-textfield": "^0.25.3",
1827
"custom-card-helpers": "^1.7.2",
1928
"home-assistant-js-websocket": "^5.11.1",
20-
"lit": "^2.0.0-rc.2"
29+
"lit": "^2.0.0"
2130
},
2231
"devDependencies": {
2332
"@babel/core": "^7.15.0",
@@ -39,9 +48,14 @@
3948
"rollup-plugin-serve": "^1.1.0",
4049
"rollup-plugin-terser": "^7.0.2",
4150
"rollup-plugin-typescript2": "^0.30.0",
42-
"rollup-plugin-uglify": "^6.0.4",
4351
"typescript": "^4.4.3"
4452
},
53+
"resolutions": {
54+
"lit": "^2.1.2",
55+
"lit-html": "2.1.2",
56+
"lit-element": "3.1.2",
57+
"@lit/reactive-element": "1.2.1"
58+
},
4559
"scripts": {
4660
"start": "rollup -c rollup.config.dev.js --watch",
4761
"build": "npm run lint && npm run rollup",

rollup-plugins/ignore.js

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
export default function (userOptions = {}) {
2+
// Files need to be absolute paths.
3+
// This only works if the file has no exports
4+
// and only is imported for its side effects
5+
const files = userOptions.files || [];
6+
7+
if (files.length === 0) {
8+
return {
9+
name: 'ignore',
10+
};
11+
}
12+
13+
return {
14+
name: 'ignore',
15+
16+
load(id) {
17+
return files.some((toIgnorePath) => id.startsWith(toIgnorePath))
18+
? {
19+
code: '',
20+
}
21+
: null;
22+
},
23+
};
24+
}

rollup.config.dev.js

Lines changed: 19 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,32 +1,39 @@
1-
import resolve from "rollup-plugin-node-resolve";
2-
import typescript from "rollup-plugin-typescript2";
3-
import babel from "rollup-plugin-babel";
4-
import serve from "rollup-plugin-serve";
5-
import { terser } from "rollup-plugin-terser";
1+
import resolve from 'rollup-plugin-node-resolve';
2+
import typescript from 'rollup-plugin-typescript2';
3+
import babel from 'rollup-plugin-babel';
4+
import serve from 'rollup-plugin-serve';
5+
import { terser } from 'rollup-plugin-terser';
66
import json from '@rollup/plugin-json';
7+
import ignore from './rollup-plugins/ignore';
8+
import { ignoreTextfieldFiles } from './elements/ignore/textfield';
9+
import { ignoreSelectFiles } from './elements/ignore/select';
10+
import { ignoreSwitchFiles } from './elements/ignore/switch';
711

812
export default {
9-
input: ["src/boilerplate-card.ts"],
13+
input: ['src/boilerplate-card.ts'],
1014
output: {
11-
dir: "./dist",
12-
format: "es",
15+
dir: './dist',
16+
format: 'es',
1317
},
1418
plugins: [
1519
resolve(),
1620
typescript(),
1721
json(),
1822
babel({
19-
exclude: "node_modules/**",
23+
exclude: 'node_modules/**',
2024
}),
2125
terser(),
2226
serve({
23-
contentBase: "./dist",
24-
host: "0.0.0.0",
27+
contentBase: './dist',
28+
host: '0.0.0.0',
2529
port: 5000,
2630
allowCrossOrigin: true,
2731
headers: {
28-
"Access-Control-Allow-Origin": "*",
32+
'Access-Control-Allow-Origin': '*',
2933
},
3034
}),
35+
ignore({
36+
files: [...ignoreTextfieldFiles, ...ignoreSelectFiles, ...ignoreSwitchFiles].map((file) => require.resolve(file)),
37+
}),
3138
],
3239
};

0 commit comments

Comments
 (0)