-
Notifications
You must be signed in to change notification settings - Fork 2
/
pseudo_class.js
69 lines (60 loc) · 1.22 KB
/
pseudo_class.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
"use strict";
"use math";
class __ComponentState__ extends Object {
renderFn;
props;
children;
constructor(builder, props, children) {
super();
this.renderFn = builder;
this.props = props;
this.children = children;
}
update() {
// this.scene.updateComponent(this);
}
render() {
return this.renderFn(this.props, this.children);
}
};
function JSX(tag, atts, kids) {
if (typeof tag == 'function') {
return new __ComponentState__(tag, atts, kids);
} else {
return {
tag,
atts,
kids,
};
}
}
function Div(props, kids) {
return <div>
<p>{props.a}</p>
{kids}
<p>next</p>
</div>;
}
var simple_stylesheet = `
p: {
margin: 10;
border-width: 10;
padding: 10;
border-color: #0f0;
background-color: #0ff;
}
button {
background-color: #fff;
}
button:hover {
background-color: #ff0;
}
`;
var simple = <p style={{ left: 30, top: 100 }}>第一栏<p style={{ left: 20, top: 30 }}>测试2</p></p>;
var complex = <Div a="f1"><p>aa</p><p>bb</p></Div>;
var edit = <line-edit style={{ left: 20, top: 20, width: 200, height: 40 }}></line-edit>
// console.log(JSON.stringify(complex.render()));
var hello_world = (<button>
<span>Hello world</span>
</button>);
app.showDialog(hello_world, simple_stylesheet);