blob: 90ac3dbc3f5a8e23e200ea7dccf30395693e4227 [file] [log] [blame] [view]
Hixied14c75a2015-03-04 09:37:15 -08001Built-In Elements
2=================
3
4```dart
5SKY MODULE
6
7<script>
8import 'dart:sky';
9
10class ImportElement extends Element {
11 ImportElement = Element;
12
13 @override
14 Type getLayoutManager() => null; // O(1)
15}
16
17class TemplateElement extends Element {
18 TemplateElement = Element;
19
20 // TODO(ianh): convert <template> to using a token stream instead of a Fragment
21
22 external Fragment get content; // O(1)
23
24 @override
25 Type getLayoutManager() => null; // O(1)
26}
27
28class ScriptElement extends Element {
29 ScriptElement = Element;
30
31 @override
32 Type getLayoutManager() => null; // O(1)
33}
34
35class StyleElement extends Element {
36 StyleElement = Element;
37
38 external List<Rule> getRules(); // O(N) in rules
39
40 @override
41 Type getLayoutManager() => null; // O(1)
42}
43
44class ContentElement extends Element {
45 ContentElement = Element;
46
47 external List<Node> getDistributedNodes(); // O(N) in distributed nodes
48
49 @override
50 Type getLayoutManager() => null; // O(1)
51}
52
53class ImgElement extends Element {
54 ImgElement = Element;
55
56 @override
57 Type getLayoutManager() => ImgElementLayoutManager; // O(1)
58}
59
60class DivElement extends Element {
61 DivElement = Element;
62}
63
64class SpanElement extends Element {
65 SpanElement = Element;
66}
67
68class IframeElement extends Element {
69 IframeElement = Element;
70
71 @override
72 Type getLayoutManager() => IframeElementLayoutManager; // O(1)
73}
74
75class TElement extends Element {
76 TElement = Element;
77}
78
79class AElement extends Element {
80 AElement = Element;
81}
82
83class TitleElement extends Element {
84 TitleElement = Element;
85
86 @override
87 Type getLayoutManager() => null; // O(1)
88}
89
90class _ErrorElement extends Element {
91 _ErrorElement._create();
92
93 @override
94 Type getLayoutManager() => _ErrorElementLayoutManager; // O(1)
95}
96
97void _init(script) {
98 module.registerElement('import', ImportElement);
99 module.registerElement('template', TemplateElement);
100 module.registerElement('script', ScriptElement);
101 module.registerElement('style', StyleElement);
102 module.registerElement('content', ContentElement);
103 module.registerElement('img', ImgElement);
104 module.registerElement('div', DivElement);
105 module.registerElement('span', SpanElement);
106 module.registerElement('iframe', IframeElement);
107 module.registerElement('t', TElement);
108 module.registerElement('a', AElement);
109 module.registerElement('title', TitleElement);
110}
111</script>
112```