@mantou/gem 1.6.3 → 1.6.9
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/README.md +6 -38
- package/dist/gem.es.js +3272 -0
- package/dist/gem.umd.js +229 -0
- package/elements/dialog-base.d.ts +2 -2
- package/elements/dialog-base.d.ts.map +1 -1
- package/elements/dialog-base.js +6 -6
- package/elements/dialog-base.js.map +1 -1
- package/elements/gesture.d.ts +2 -1
- package/elements/gesture.d.ts.map +1 -1
- package/elements/gesture.js +6 -5
- package/elements/gesture.js.map +1 -1
- package/elements/link.d.ts +1 -1
- package/elements/link.d.ts.map +1 -1
- package/elements/link.js +11 -16
- package/elements/link.js.map +1 -1
- package/elements/modal-base.d.ts +4 -4
- package/elements/modal-base.d.ts.map +1 -1
- package/elements/modal-base.js +9 -4
- package/elements/modal-base.js.map +1 -1
- package/elements/reflect.d.ts +1 -1
- package/elements/reflect.d.ts.map +1 -1
- package/elements/reflect.js +2 -1
- package/elements/reflect.js.map +1 -1
- package/elements/route.d.ts +7 -3
- package/elements/route.d.ts.map +1 -1
- package/elements/route.js +12 -6
- package/elements/route.js.map +1 -1
- package/elements/title.d.ts +1 -1
- package/elements/title.d.ts.map +1 -1
- package/elements/title.js +4 -1
- package/elements/title.js.map +1 -1
- package/elements/unsafe.d.ts +1 -1
- package/elements/unsafe.d.ts.map +1 -1
- package/elements/unsafe.js +2 -1
- package/elements/unsafe.js.map +1 -1
- package/elements/use.d.ts +1 -1
- package/elements/use.d.ts.map +1 -1
- package/elements/use.js +2 -1
- package/elements/use.js.map +1 -1
- package/helper/i18n.js +47 -58
- package/helper/i18n.js.map +1 -1
- package/helper/request.js +11 -19
- package/helper/request.js.map +1 -1
- package/index.d.ts +5 -4
- package/index.d.ts.map +1 -1
- package/index.js +4 -2
- package/index.js.map +1 -1
- package/lib/element.d.ts.map +1 -1
- package/lib/element.js +1 -1
- package/lib/element.js.map +1 -1
- package/lib/history.js +17 -5
- package/lib/history.js.map +1 -1
- package/lib/utils.d.ts +3 -1
- package/lib/utils.d.ts.map +1 -1
- package/lib/utils.js +7 -4
- package/lib/utils.js.map +1 -1
- package/lib/version.d.ts +1 -1
- package/lib/version.js +1 -1
- package/package.json +26 -53
- package/src/{umd.ts → dist.ts} +1 -5
- package/src/elements/dialog-base.ts +5 -4
- package/src/elements/gesture.ts +2 -1
- package/src/elements/link.ts +5 -15
- package/src/elements/modal-base.ts +3 -1
- package/src/elements/reflect.ts +2 -1
- package/src/elements/route.ts +8 -20
- package/src/elements/title.ts +4 -1
- package/src/elements/unsafe.ts +2 -1
- package/src/elements/use.ts +2 -1
- package/src/index.ts +4 -6
- package/src/lib/element.ts +2 -1
- package/src/lib/history.ts +1 -1
- package/src/lib/utils.ts +10 -4
- package/src/lib/version.ts +1 -1
- package/src/test/gem-element/advance.test.ts +1 -0
- package/src/test/gem-element/basic.test.ts +1 -0
- package/src/test/gem-element/decorators.test.ts +1 -0
- package/src/test/gem-element/multi.test.ts +1 -0
- package/src/test/history.test.ts +1 -0
- package/src/test/store.test.ts +1 -0
- package/src/test/utils.test.ts +1 -0
- package/src/examples/base-path/index.ts +0 -44
- package/src/examples/controlled/index.ts +0 -75
- package/src/examples/decorator/chidren.ts +0 -77
- package/src/examples/decorator/index.ts +0 -110
- package/src/examples/dialog/index.ts +0 -148
- package/src/examples/effect/index.ts +0 -45
- package/src/examples/elements/env.ts +0 -7
- package/src/examples/elements/layout.ts +0 -53
- package/src/examples/elements/nav.ts +0 -71
- package/src/examples/elements/source.ts +0 -68
- package/src/examples/gesture/canvas.ts +0 -69
- package/src/examples/gesture/index.ts +0 -97
- package/src/examples/gesture/manifest.json +0 -3
- package/src/examples/hash/index.ts +0 -55
- package/src/examples/i18n/index.ts +0 -63
- package/src/examples/index/index.ts +0 -33
- package/src/examples/index/manifest.json +0 -5
- package/src/examples/light-dom/index.ts +0 -31
- package/src/examples/multi-page/api.ts +0 -9
- package/src/examples/multi-page/index.ts +0 -78
- package/src/examples/multi-page/page-a.ts +0 -16
- package/src/examples/multi-page/page-b.ts +0 -12
- package/src/examples/multi-page/page-c.ts +0 -40
- package/src/examples/multi-page/store.ts +0 -10
- package/src/examples/perf-demo/index.ts +0 -136
- package/src/examples/ref-route/index.ts +0 -109
- package/src/examples/reflect/index.ts +0 -61
- package/src/examples/styled/index.ts +0 -39
- package/src/examples/svg-icon/index.ts +0 -31
- package/src/examples/theme/index.ts +0 -56
- package/src/examples/unsafe/index.ts +0 -29
- package/umd.d.ts +0 -18
- package/umd.d.ts.map +0 -1
- package/umd.js +0 -54
- package/umd.js.LICENSE.txt +0 -13
- package/umd.js.map +0 -1
|
@@ -1,136 +0,0 @@
|
|
|
1
|
-
import { raw, GemElement, createStore, updateStore, html } from '../../';
|
|
2
|
-
|
|
3
|
-
const store = createStore({
|
|
4
|
-
number: 1,
|
|
5
|
-
});
|
|
6
|
-
|
|
7
|
-
setInterval(() => {
|
|
8
|
-
updateStore(store, { number: (store.number % 10) + 1 });
|
|
9
|
-
}, 1000);
|
|
10
|
-
|
|
11
|
-
customElements.define(
|
|
12
|
-
'fiber-dot',
|
|
13
|
-
class extends GemElement {
|
|
14
|
-
static observedStores = [store];
|
|
15
|
-
constructor() {
|
|
16
|
-
super({ isAsync: true });
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
onmouseenter = () => {
|
|
20
|
-
this.setState({ hover: true });
|
|
21
|
-
};
|
|
22
|
-
onmouseleave = () => {
|
|
23
|
-
this.setState({ hover: false });
|
|
24
|
-
};
|
|
25
|
-
|
|
26
|
-
size: number;
|
|
27
|
-
x: number;
|
|
28
|
-
y: number;
|
|
29
|
-
|
|
30
|
-
state = { hover: false };
|
|
31
|
-
|
|
32
|
-
render() {
|
|
33
|
-
const s = this.size * 1.3;
|
|
34
|
-
Object.assign(this.style, {
|
|
35
|
-
width: s + 'px',
|
|
36
|
-
height: s + 'px',
|
|
37
|
-
left: this.x + 'px',
|
|
38
|
-
top: this.y + 'px',
|
|
39
|
-
borderRadius: s / 2 + 'px',
|
|
40
|
-
lineHeight: s + 'px',
|
|
41
|
-
background: this.state.hover ? '#ff0' : '#61dafb',
|
|
42
|
-
});
|
|
43
|
-
return html`
|
|
44
|
-
<style>
|
|
45
|
-
:host {
|
|
46
|
-
position: absolute;
|
|
47
|
-
font: normal 15px sans-serif;
|
|
48
|
-
text-align: center;
|
|
49
|
-
cursor: pointer;
|
|
50
|
-
display: block;
|
|
51
|
-
}
|
|
52
|
-
</style>
|
|
53
|
-
${this.state.hover ? '**' + store.number + '**' : store.number}
|
|
54
|
-
`;
|
|
55
|
-
}
|
|
56
|
-
},
|
|
57
|
-
);
|
|
58
|
-
|
|
59
|
-
const targetSize = 25;
|
|
60
|
-
customElements.define(
|
|
61
|
-
'fiber-triangle',
|
|
62
|
-
class extends GemElement {
|
|
63
|
-
x: number;
|
|
64
|
-
y: number;
|
|
65
|
-
s: number;
|
|
66
|
-
seconds: number;
|
|
67
|
-
|
|
68
|
-
render() {
|
|
69
|
-
let s = this.s;
|
|
70
|
-
if (s <= targetSize) {
|
|
71
|
-
return html`
|
|
72
|
-
<fiber-dot .x=${this.x - targetSize / 2} .y=${this.y - targetSize / 2} .size=${targetSize}></fiber-dot>
|
|
73
|
-
`;
|
|
74
|
-
}
|
|
75
|
-
s = s / 2;
|
|
76
|
-
|
|
77
|
-
const slowDown = true;
|
|
78
|
-
if (slowDown) {
|
|
79
|
-
const e = performance.now() + 0.8;
|
|
80
|
-
while (performance.now() < e) {
|
|
81
|
-
// Artificially long execution time.
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
return html`
|
|
85
|
-
<fiber-triangle .x=${this.x} .y=${this.y - s / 2} .s=${s}></fiber-triangle>
|
|
86
|
-
<fiber-triangle .x=${this.x - s} .y=${this.y + s / 2} .s=${s}></fiber-triangle>
|
|
87
|
-
<fiber-triangle .x=${this.x + s} .y=${this.y + s / 2} .s=${s}></fiber-triangle>
|
|
88
|
-
`;
|
|
89
|
-
}
|
|
90
|
-
},
|
|
91
|
-
);
|
|
92
|
-
|
|
93
|
-
class App extends GemElement {
|
|
94
|
-
static observedPropertys = ['elapsed'];
|
|
95
|
-
elapsed = 0;
|
|
96
|
-
render() {
|
|
97
|
-
const elapsed = this.elapsed;
|
|
98
|
-
const t = (elapsed / 1000) % 10;
|
|
99
|
-
const scale = 1 + (t > 5 ? 10 - t : t) / 10;
|
|
100
|
-
this.style.transform = 'scaleX(' + scale / 2.1 + ') scaleY(0.7) translateZ(0.1px)';
|
|
101
|
-
return html`
|
|
102
|
-
<style>
|
|
103
|
-
:host {
|
|
104
|
-
position: absolute;
|
|
105
|
-
transform-origin: 0 0;
|
|
106
|
-
left: 50%;
|
|
107
|
-
top: 50%;
|
|
108
|
-
width: 10px;
|
|
109
|
-
height: 10px;
|
|
110
|
-
background: #eee;
|
|
111
|
-
}
|
|
112
|
-
</style>
|
|
113
|
-
<div>
|
|
114
|
-
<fiber-triangle .x=${0} .y=${0} .s=${1000}></fiber-triangle>
|
|
115
|
-
</div>
|
|
116
|
-
`;
|
|
117
|
-
}
|
|
118
|
-
}
|
|
119
|
-
customElements.define('app-root', App);
|
|
120
|
-
|
|
121
|
-
document.body.innerHTML = raw`
|
|
122
|
-
<ul>
|
|
123
|
-
<li><a href="https://stencil-fiber-demo.firebaseapp.com/perf.html">stencil-fiber-demo</a></li>
|
|
124
|
-
<li><a href="https://claudiopro.github.io/react-fiber-vs-stack-demo/fiber.html">react-fiber-demo</a></li>
|
|
125
|
-
</ul>
|
|
126
|
-
`;
|
|
127
|
-
|
|
128
|
-
const app = new App();
|
|
129
|
-
document.body.append(app);
|
|
130
|
-
|
|
131
|
-
const start = Date.now();
|
|
132
|
-
function update() {
|
|
133
|
-
app.elapsed = Date.now() - start;
|
|
134
|
-
requestAnimationFrame(update);
|
|
135
|
-
}
|
|
136
|
-
requestAnimationFrame(update);
|
|
@@ -1,109 +0,0 @@
|
|
|
1
|
-
import { GemElement, html, history, render } from '../../';
|
|
2
|
-
import { connectStore, customElement, RefObject, refobject } from '../../lib/decorators';
|
|
3
|
-
import { createHistoryParams, GemRouteElement, RouteItem } from '../../elements/route';
|
|
4
|
-
import '../../elements/link';
|
|
5
|
-
|
|
6
|
-
import '../elements/layout';
|
|
7
|
-
|
|
8
|
-
const homeRoute: RouteItem = {
|
|
9
|
-
pattern: '/',
|
|
10
|
-
async getContent(params) {
|
|
11
|
-
await new Promise((res) => setTimeout(res, 1000));
|
|
12
|
-
return html`<route-home .params=${params}></route-home>`;
|
|
13
|
-
},
|
|
14
|
-
};
|
|
15
|
-
|
|
16
|
-
const aRoute: RouteItem = {
|
|
17
|
-
pattern: '/a/:b',
|
|
18
|
-
async getContent() {
|
|
19
|
-
await new Promise((res) => setTimeout(res, 1000));
|
|
20
|
-
return html`<route-a></route-a>`;
|
|
21
|
-
},
|
|
22
|
-
};
|
|
23
|
-
|
|
24
|
-
const routes = {
|
|
25
|
-
home: homeRoute,
|
|
26
|
-
a: aRoute,
|
|
27
|
-
};
|
|
28
|
-
|
|
29
|
-
const locationStore = GemRouteElement.createLocationStore();
|
|
30
|
-
|
|
31
|
-
@customElement('route-home')
|
|
32
|
-
export class RouteHome extends GemElement {
|
|
33
|
-
params: Record<string, string>;
|
|
34
|
-
render = () => {
|
|
35
|
-
return html`
|
|
36
|
-
<style>
|
|
37
|
-
gem-active-link {
|
|
38
|
-
display: block;
|
|
39
|
-
}
|
|
40
|
-
gem-active-link:where(:--active, [data-active]) {
|
|
41
|
-
color: inherit;
|
|
42
|
-
}
|
|
43
|
-
</style>
|
|
44
|
-
current route: home page, current params: ${JSON.stringify(this.params)}, click navigation to /a page
|
|
45
|
-
<gem-active-link .route=${routes.a} .options=${{ params: { b: 1 } }}>
|
|
46
|
-
a page link, params: {a: 1}
|
|
47
|
-
</gem-active-link>
|
|
48
|
-
`;
|
|
49
|
-
};
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
@connectStore(locationStore)
|
|
53
|
-
@customElement('route-a')
|
|
54
|
-
export class RouteA extends GemElement {
|
|
55
|
-
render = () => {
|
|
56
|
-
return html`
|
|
57
|
-
<style>
|
|
58
|
-
gem-active-link {
|
|
59
|
-
display: block;
|
|
60
|
-
}
|
|
61
|
-
gem-active-link:where(:--active, [data-active]) {
|
|
62
|
-
color: inherit;
|
|
63
|
-
}
|
|
64
|
-
</style>
|
|
65
|
-
current route: /a/:b, current params: ${JSON.stringify(locationStore.params)}, click navigation to home page,
|
|
66
|
-
cuurent query: ${history.getParams().query.toString()}
|
|
67
|
-
<gem-active-link .route=${routes.a} .options=${{ params: { b: 1 }, query: '?a=1' }}>
|
|
68
|
-
a page link, query: ?a=1
|
|
69
|
-
</gem-active-link>
|
|
70
|
-
`;
|
|
71
|
-
};
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
@customElement('app-root')
|
|
75
|
-
@connectStore(locationStore)
|
|
76
|
-
export class App extends GemElement {
|
|
77
|
-
@refobject routeRef: RefObject<GemRouteElement>;
|
|
78
|
-
onclick = () => {
|
|
79
|
-
if (this.routeRef.element?.currentRoute === routes.home) {
|
|
80
|
-
history.push(createHistoryParams(routes.a, { params: { b: String(Date.now()) } }));
|
|
81
|
-
} else {
|
|
82
|
-
history.push(createHistoryParams(routes.home));
|
|
83
|
-
}
|
|
84
|
-
};
|
|
85
|
-
render() {
|
|
86
|
-
return html`
|
|
87
|
-
<main>
|
|
88
|
-
<pre>${JSON.stringify(locationStore.params)}</pre>
|
|
89
|
-
<gem-route
|
|
90
|
-
ref=${this.routeRef.ref}
|
|
91
|
-
@loading=${console.log}
|
|
92
|
-
@route-change=${console.log}
|
|
93
|
-
@error=${console.error}
|
|
94
|
-
.routes=${routes}
|
|
95
|
-
.locationStore=${locationStore}
|
|
96
|
-
></gem-route>
|
|
97
|
-
</main>
|
|
98
|
-
`;
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
render(
|
|
103
|
-
html`
|
|
104
|
-
<gem-examples-layout>
|
|
105
|
-
<app-root slot="main"></app-root>
|
|
106
|
-
</gem-examples-layout>
|
|
107
|
-
`,
|
|
108
|
-
document.body,
|
|
109
|
-
);
|
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
import { html, randomStr, GemElement, customElement, render, refobject, RefObject } from '../..';
|
|
2
|
-
|
|
3
|
-
import '../../elements/reflect';
|
|
4
|
-
|
|
5
|
-
import '../elements/layout';
|
|
6
|
-
@customElement('app-children')
|
|
7
|
-
export class AppChild extends GemElement {
|
|
8
|
-
mounted = () => console.log('mounted');
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
@customElement('app-root')
|
|
12
|
-
export class App extends GemElement {
|
|
13
|
-
@refobject childrenRef: RefObject<HTMLStyleElement>;
|
|
14
|
-
state = {
|
|
15
|
-
mount: true,
|
|
16
|
-
};
|
|
17
|
-
|
|
18
|
-
mounted() {
|
|
19
|
-
document.addEventListener('click', this.update);
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
updated() {
|
|
23
|
-
console.trace('updated', this.childrenRef.element);
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
render() {
|
|
27
|
-
return html`
|
|
28
|
-
<button @click=${() => this.setState({ mount: true })}>mount</button>
|
|
29
|
-
<button @click=${() => this.setState({ mount: false })}>unmount</button>
|
|
30
|
-
${this.state.mount
|
|
31
|
-
? html`
|
|
32
|
-
<gem-reflect>
|
|
33
|
-
<app-children ref=${this.childrenRef.ref}></app-children>
|
|
34
|
-
<style>
|
|
35
|
-
head {
|
|
36
|
-
display: block;
|
|
37
|
-
}
|
|
38
|
-
head::before {
|
|
39
|
-
content: '<head>';
|
|
40
|
-
}
|
|
41
|
-
head::after {
|
|
42
|
-
content: '</head>';
|
|
43
|
-
}
|
|
44
|
-
</style>
|
|
45
|
-
<div>${randomStr()}</div>
|
|
46
|
-
<div>${randomStr()}</div>
|
|
47
|
-
</gem-reflect>
|
|
48
|
-
`
|
|
49
|
-
: null}
|
|
50
|
-
`;
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
render(
|
|
55
|
-
html`
|
|
56
|
-
<gem-examples-layout>
|
|
57
|
-
<app-root slot="main"></app-root>
|
|
58
|
-
</gem-examples-layout>
|
|
59
|
-
`,
|
|
60
|
-
document.body,
|
|
61
|
-
);
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
import { GemElement, html, styled, createCSSSheet, render } from '../../';
|
|
2
|
-
|
|
3
|
-
import '../elements/layout';
|
|
4
|
-
|
|
5
|
-
const styles = createCSSSheet({
|
|
6
|
-
h1: styled.class`
|
|
7
|
-
color: yellow;
|
|
8
|
-
&:hover {
|
|
9
|
-
color: red;
|
|
10
|
-
}
|
|
11
|
-
`,
|
|
12
|
-
h2: styled.id`
|
|
13
|
-
background: yellow;
|
|
14
|
-
&:hover {
|
|
15
|
-
background: red;
|
|
16
|
-
}
|
|
17
|
-
`,
|
|
18
|
-
});
|
|
19
|
-
|
|
20
|
-
class App extends GemElement {
|
|
21
|
-
static adoptedStyleSheets = [styles];
|
|
22
|
-
render() {
|
|
23
|
-
return html`
|
|
24
|
-
<h1 class=${styles.h1}>Header 1</h1>
|
|
25
|
-
<h2 id=${styles.h2}>Header 2</h2>
|
|
26
|
-
`;
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
customElements.define('app-root', App);
|
|
31
|
-
|
|
32
|
-
render(
|
|
33
|
-
html`
|
|
34
|
-
<gem-examples-layout>
|
|
35
|
-
<app-root slot="main"></app-root>
|
|
36
|
-
</gem-examples-layout>
|
|
37
|
-
`,
|
|
38
|
-
document.body,
|
|
39
|
-
);
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
import { html, render, raw } from '../../';
|
|
2
|
-
|
|
3
|
-
import '../../elements/use';
|
|
4
|
-
|
|
5
|
-
import '../elements/layout';
|
|
6
|
-
|
|
7
|
-
const app = html`
|
|
8
|
-
<div slot="main">
|
|
9
|
-
<template id="icon">
|
|
10
|
-
<svg width="24" height="24" viewBox="0 0 24 24">
|
|
11
|
-
<path d="M0 0h24v24H0z" fill="none" />
|
|
12
|
-
<path d="M3 18h18v-2H3v2zm0-5h18v-2H3v2zm0-7v2h18V6H3z" />
|
|
13
|
-
</svg>
|
|
14
|
-
</template>
|
|
15
|
-
<gem-use .root=${document.body} selector="#icon"></gem-use>
|
|
16
|
-
<gem-use selector="#icon"></gem-use>
|
|
17
|
-
<gem-use
|
|
18
|
-
.element=${raw`
|
|
19
|
-
<svg height="24px" viewBox="0 0 24 24" width="24px">
|
|
20
|
-
<path d="M0 0h24v24H0z" fill="none"/>
|
|
21
|
-
<path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-1 17.93c-3.95-.49-7-3.85-7-7.93 0-.62.08-1.21.21-1.79L9 15v1c0 1.1.9 2 2 2v1.93zm6.9-2.54c-.26-.81-1-1.39-1.9-1.39h-1v-3c0-.55-.45-1-1-1H8v-2h2c.55 0 1-.45 1-1V7h2c1.1 0 2-.9 2-2v-.41c2.93 1.19 5 4.06 5 7.41 0 2.08-.8 3.97-2.1 5.39z"/>
|
|
22
|
-
</svg>
|
|
23
|
-
`}
|
|
24
|
-
style="fill: red; height: 1.2em; gap: 0.3em"
|
|
25
|
-
>
|
|
26
|
-
English
|
|
27
|
-
</gem-use>
|
|
28
|
-
</div>
|
|
29
|
-
`;
|
|
30
|
-
|
|
31
|
-
render(html`<gem-examples-layout>${app}</gem-examples-layout>`, document.body);
|
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
import { GemElement, html, render, customElement, connectStore } from '../../';
|
|
2
|
-
import { createTheme, getThemeStore, updateTheme } from '../../helper/theme';
|
|
3
|
-
import { mediaQuery } from '../../helper/mediaquery';
|
|
4
|
-
|
|
5
|
-
import '../elements/layout';
|
|
6
|
-
|
|
7
|
-
const theme = createTheme({
|
|
8
|
-
// 支持动态修改不透明度
|
|
9
|
-
color: '0, 0, 0',
|
|
10
|
-
primaryColor: '#eee',
|
|
11
|
-
});
|
|
12
|
-
|
|
13
|
-
const themeStore = getThemeStore(theme);
|
|
14
|
-
|
|
15
|
-
const printTheme = createTheme({
|
|
16
|
-
primaryColor: 'yellow',
|
|
17
|
-
});
|
|
18
|
-
|
|
19
|
-
document.onclick = () => {
|
|
20
|
-
updateTheme(theme, {
|
|
21
|
-
primaryColor: Math.random() > 0.5 ? 'red' : 'blue',
|
|
22
|
-
});
|
|
23
|
-
updateTheme(printTheme, {
|
|
24
|
-
primaryColor: Math.random() > 0.5 ? 'gray' : 'white',
|
|
25
|
-
});
|
|
26
|
-
};
|
|
27
|
-
|
|
28
|
-
@customElement('app-root')
|
|
29
|
-
@connectStore(themeStore)
|
|
30
|
-
export class App extends GemElement {
|
|
31
|
-
render() {
|
|
32
|
-
return html`
|
|
33
|
-
<style>
|
|
34
|
-
div {
|
|
35
|
-
color: rgba(${theme.color}, 0.5);
|
|
36
|
-
border: 2px solid ${theme.primaryColor};
|
|
37
|
-
}
|
|
38
|
-
@media ${mediaQuery.PRINT} {
|
|
39
|
-
div {
|
|
40
|
-
border: 2px solid ${printTheme.primaryColor};
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
</style>
|
|
44
|
-
<div>color: ${themeStore.primaryColor}</div>
|
|
45
|
-
`;
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
render(
|
|
50
|
-
html`
|
|
51
|
-
<gem-examples-layout>
|
|
52
|
-
<app-root slot="main"></app-root>
|
|
53
|
-
</gem-examples-layout>
|
|
54
|
-
`,
|
|
55
|
-
document.body,
|
|
56
|
-
);
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
import { html, render } from '../../';
|
|
2
|
-
|
|
3
|
-
import '../../elements/unsafe';
|
|
4
|
-
|
|
5
|
-
import '../elements/layout';
|
|
6
|
-
|
|
7
|
-
const svgStr = `
|
|
8
|
-
<svg width="24" height="24" viewBox="0 0 24 24">
|
|
9
|
-
<path d="M0 0h24v24H0z" fill="none" />
|
|
10
|
-
<path d="M3 18h18v-2H3v2zm0-5h18v-2H3v2zm0-7v2h18V6H3z" />
|
|
11
|
-
</svg>
|
|
12
|
-
`;
|
|
13
|
-
const svgStyle = `
|
|
14
|
-
svg {
|
|
15
|
-
transform: scale(2);
|
|
16
|
-
}
|
|
17
|
-
`;
|
|
18
|
-
const htmlStr = `
|
|
19
|
-
<pre><code>// code code code</code></pre>
|
|
20
|
-
`;
|
|
21
|
-
|
|
22
|
-
const app = html`
|
|
23
|
-
<div slot="main">
|
|
24
|
-
<gem-unsafe content="${svgStr}" contentcss="${svgStyle}"></gem-unsafe>
|
|
25
|
-
<gem-unsafe content="${htmlStr}"></gem-unsafe>
|
|
26
|
-
</div>
|
|
27
|
-
`;
|
|
28
|
-
|
|
29
|
-
render(html`<gem-examples-layout>${app}</gem-examples-layout>`, document.body);
|
package/umd.d.ts
DELETED
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* 自定义元素不应该重复定义,gem 不应该重复引入
|
|
3
|
-
* 包含所有资产,导出到全局变量 `Gem`,以便供 webpack 的 `externals` 使用
|
|
4
|
-
*/
|
|
5
|
-
export * from './elements/link';
|
|
6
|
-
export * from './elements/route';
|
|
7
|
-
export * from './elements/title';
|
|
8
|
-
export * from './elements/use';
|
|
9
|
-
export * from './elements/unsafe';
|
|
10
|
-
export * from './elements/reflect';
|
|
11
|
-
export * from './elements/modal-base';
|
|
12
|
-
export * from './elements/dialog-base';
|
|
13
|
-
export * from './helper/theme';
|
|
14
|
-
export * from './helper/i18n';
|
|
15
|
-
export * from './helper/request';
|
|
16
|
-
export * from './helper/mediaquery';
|
|
17
|
-
export * from './';
|
|
18
|
-
//# sourceMappingURL=umd.d.ts.map
|
package/umd.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"umd.d.ts","sourceRoot":"","sources":["src/umd.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AAEnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AAEvC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AAEpC,cAAc,IAAI,CAAC"}
|