dothtml 4.8.5 → 5.0.1
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/{jest.config.js → jest.config.ts} +19 -16
- package/lib/arg-callback-obj.d.ts +29 -0
- package/lib/built-in-components/nav-link.d.ts +8 -0
- package/lib/built-in-components/router.d.ts +57 -0
- package/lib/component.d.ts +73 -0
- package/lib/dot-component-legacy.d.ts +0 -0
- package/lib/dot-document.d.ts +0 -0
- package/lib/dot-util.d.ts +13 -0
- package/lib/dot.d.ts +5 -0
- package/lib/dothtml.d.ts +21 -0
- package/lib/dothtml.js +2 -0
- package/lib/dothtml.js.LICENSE.txt +1 -0
- package/lib/err.d.ts +2 -0
- package/lib/event-bus.d.ts +10 -0
- package/lib/i-dot.d.ts +674 -0
- package/lib/i-dotcss.d.ts +827 -0
- package/lib/node-polyfill.d.ts +2 -0
- package/lib/observable-array.d.ts +49 -0
- package/lib/style-builder.d.ts +3 -0
- package/package.json +11 -5
- package/readme.md +3 -2
- package/src/{arg-callback-obj.js → arg-callback-obj.ts} +18 -6
- package/src/built-in-components/nav-link.ts +21 -0
- package/src/built-in-components/router.ts +315 -0
- package/src/component.ts +369 -0
- package/src/dot-component-legacy.ts +79 -0
- package/src/dot-document.ts +0 -0
- package/src/dot-util.ts +33 -0
- package/src/dot.ts +1147 -0
- package/src/dothtml.ts +33 -0
- package/src/err.ts +22 -0
- package/src/event-bus.ts +39 -0
- package/src/i-dot.ts +787 -0
- package/src/i-dotcss.ts +918 -0
- package/src/node-polyfill.ts +11 -0
- package/src/{observable-array.js → observable-array.ts} +10 -5
- package/src/{style-builder.js → style-builder.ts} +219 -183
- package/tsconfig.json +99 -0
- package/unittests/advanced-bindings.test.ts +421 -0
- package/unittests/{array-evaluation.test.js → array-evaluation.test.ts} +1 -1
- package/unittests/{basic-functionality.test.js → basic-functionality.test.ts} +14 -10
- package/unittests/class-binding.test.ts +227 -0
- package/unittests/component-decorator.-.ts +14 -0
- package/unittests/components-data.test.ts +153 -0
- package/unittests/components.test.ts +257 -0
- package/unittests/computed.test.ts +35 -0
- package/unittests/{core.js → core.ts} +5 -2
- package/unittests/element-and-attribute-coverage.test.ts +472 -0
- package/unittests/hooks.test.ts +67 -0
- package/unittests/immutable-if.test.ts +19 -0
- package/unittests/input-bindings.test.ts +166 -0
- package/unittests/integration.test.ts +5 -0
- package/unittests/{iterations.test.js → iterations.test.ts} +5 -5
- package/unittests/logic.test.ts +18 -0
- package/unittests/refs.test.ts +36 -0
- package/unittests/routing.-.ts +56 -0
- package/unittests/{scopes.test.js → scopes.test.ts} +5 -5
- package/unittests/special-tags.test.ts +39 -0
- package/unittests/styles.test.ts +9 -0
- package/unittests/{testpage.js → testpage.ts} +2 -0
- package/unittests/{wait.test.js → wait.test.ts} +8 -5
- package/webpack.config.js +13 -1
- package/lib/dothtml.min.js +0 -1
- package/src/component.js +0 -305
- package/src/err.js +0 -20
- package/src/event-bus.js +0 -40
- package/src/index.js +0 -1453
- package/src/util.js +0 -13
- package/unittests/advanced-bindings.test.js +0 -386
- package/unittests/class-binding.test.js +0 -53
- package/unittests/components-data.test.js +0 -97
- package/unittests/components.test.js +0 -151
- package/unittests/computed.test.js +0 -36
- package/unittests/hooks.test.js +0 -57
- package/unittests/immutable-if.test.js +0 -15
- package/unittests/input-bindings.test.js +0 -155
- package/unittests/integration.test.js +0 -6
- package/unittests/logic.test.js +0 -18
- package/unittests/routing.-.js +0 -56
- package/unittests/special-tags.test.js +0 -32
package/src/util.js
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
// Polyfill for Object.keys(...).forEach.
|
|
2
|
-
|
|
3
|
-
export function eachK(obj, cb){
|
|
4
|
-
if(obj){
|
|
5
|
-
var lst = Object.keys(obj);
|
|
6
|
-
for(var i = 0; i < lst.length; i++) cb(lst[i], obj[lst[i]]);
|
|
7
|
-
}
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
export function isF(v){
|
|
11
|
-
return v && v.constructor && v.call && v.apply;
|
|
12
|
-
}
|
|
13
|
-
|
|
@@ -1,386 +0,0 @@
|
|
|
1
|
-
import addTest from "./core";
|
|
2
|
-
import dot from "../src/index";
|
|
3
|
-
|
|
4
|
-
addTest("Bind to number prop.", function(){
|
|
5
|
-
const MyComp = dot.component({
|
|
6
|
-
builder(){
|
|
7
|
-
this.myProp = 0;
|
|
8
|
-
var ret = dot.span(()=>this.myProp);
|
|
9
|
-
return ret;
|
|
10
|
-
},
|
|
11
|
-
ready(){
|
|
12
|
-
this.myProp++;
|
|
13
|
-
},
|
|
14
|
-
props:["myProp"]
|
|
15
|
-
});
|
|
16
|
-
|
|
17
|
-
return dot.h(MyComp());
|
|
18
|
-
}, "<span>1</span>");
|
|
19
|
-
|
|
20
|
-
addTest("Bind to calculated prop.", function(){
|
|
21
|
-
const MyComp = dot.component({
|
|
22
|
-
builder(){
|
|
23
|
-
this.myProp = 0;
|
|
24
|
-
var ret = dot.div(()=>dot.p("I have " + this.myProp + "!"));
|
|
25
|
-
return ret;
|
|
26
|
-
},
|
|
27
|
-
ready(){
|
|
28
|
-
this.myProp+=10;
|
|
29
|
-
},
|
|
30
|
-
props:["myProp"]
|
|
31
|
-
});
|
|
32
|
-
|
|
33
|
-
return dot.h(MyComp());
|
|
34
|
-
}, "<div><p>I have 10!</p></div>");
|
|
35
|
-
|
|
36
|
-
addTest("Bind to array.", function(){
|
|
37
|
-
const MyComp = dot.component({
|
|
38
|
-
builder(data){
|
|
39
|
-
this.myData = data;
|
|
40
|
-
return dot.ul(
|
|
41
|
-
dot.each(()=>this.myData, (v, i)=>{
|
|
42
|
-
return dot.li(v.value)
|
|
43
|
-
})
|
|
44
|
-
);
|
|
45
|
-
},
|
|
46
|
-
ready(){
|
|
47
|
-
this.myData.push({value: 5});
|
|
48
|
-
this.myData.push({value: 3});
|
|
49
|
-
this.myData.push({value: 1});
|
|
50
|
-
},
|
|
51
|
-
props:["myData"]
|
|
52
|
-
});
|
|
53
|
-
|
|
54
|
-
var data = [];
|
|
55
|
-
|
|
56
|
-
return dot.h(MyComp(data));
|
|
57
|
-
|
|
58
|
-
}, "<ul><li>5</li><li>3</li><li>1</li></ul>"); // If stops working, add a delay.
|
|
59
|
-
|
|
60
|
-
addTest("Bind to start of array.", function(){
|
|
61
|
-
const MyComp = dot.component({
|
|
62
|
-
builder(data){
|
|
63
|
-
this.myData = data;
|
|
64
|
-
return dot.ul(
|
|
65
|
-
dot.each(()=>this.myData, (v, i)=>{
|
|
66
|
-
return dot.li(v.value)
|
|
67
|
-
})
|
|
68
|
-
);
|
|
69
|
-
},
|
|
70
|
-
ready(){
|
|
71
|
-
this.myData.push({value: 5});
|
|
72
|
-
this.myData.push({value: 3});
|
|
73
|
-
this.myData.unshift({value: 1});
|
|
74
|
-
},
|
|
75
|
-
props:["myData"]
|
|
76
|
-
});
|
|
77
|
-
|
|
78
|
-
var data = [];
|
|
79
|
-
|
|
80
|
-
return dot.h(MyComp(data));
|
|
81
|
-
|
|
82
|
-
}, "<ul><li>1</li><li>5</li><li>3</li></ul>");
|
|
83
|
-
|
|
84
|
-
addTest("Bind to array out of order.", function(){
|
|
85
|
-
const MyComp = dot.component({
|
|
86
|
-
builder(data){
|
|
87
|
-
this.myData = data;
|
|
88
|
-
return dot.ul(
|
|
89
|
-
dot.each(()=>this.myData, (v, i)=>{
|
|
90
|
-
return dot.li(v.value)
|
|
91
|
-
})
|
|
92
|
-
);
|
|
93
|
-
},
|
|
94
|
-
ready(){
|
|
95
|
-
this.myData.push({value: 5});
|
|
96
|
-
this.myData.push({value: 3});
|
|
97
|
-
this.myData.splice(1, 0, {value: 1});
|
|
98
|
-
},
|
|
99
|
-
props:["myData"]
|
|
100
|
-
});
|
|
101
|
-
|
|
102
|
-
var data = [];
|
|
103
|
-
|
|
104
|
-
return dot.h(MyComp(data));
|
|
105
|
-
|
|
106
|
-
}, "<ul><li>5</li><li>1</li><li>3</li></ul>");
|
|
107
|
-
|
|
108
|
-
addTest("Bind 2 to array out of order.", function(){
|
|
109
|
-
const MyComp = dot.component({
|
|
110
|
-
builder(data){
|
|
111
|
-
this.myData = data;
|
|
112
|
-
return dot.ul(
|
|
113
|
-
dot.each(()=>this.myData, (v, i)=>{
|
|
114
|
-
return dot.li(v.value)
|
|
115
|
-
})
|
|
116
|
-
);
|
|
117
|
-
},
|
|
118
|
-
ready(){
|
|
119
|
-
this.myData.push({value: 5});
|
|
120
|
-
this.myData.push({value: 3});
|
|
121
|
-
this.myData.splice(1, 0, {value: "a"}, {value: "b"});
|
|
122
|
-
},
|
|
123
|
-
props:["myData"]
|
|
124
|
-
});
|
|
125
|
-
|
|
126
|
-
var data = [];
|
|
127
|
-
|
|
128
|
-
return dot.h(MyComp(data));
|
|
129
|
-
|
|
130
|
-
}, "<ul><li>5</li><li>a</li><li>b</li><li>3</li></ul>");
|
|
131
|
-
|
|
132
|
-
addTest("Remove from bound array.", function(){
|
|
133
|
-
const MyComp = dot.component({
|
|
134
|
-
builder(data){
|
|
135
|
-
this.myData = data;
|
|
136
|
-
return dot.ul(
|
|
137
|
-
dot.each(()=>this.myData, (v, i)=>{
|
|
138
|
-
return dot.li(v.value)
|
|
139
|
-
})
|
|
140
|
-
);
|
|
141
|
-
},
|
|
142
|
-
ready(){
|
|
143
|
-
this.myData.push({value: 5});
|
|
144
|
-
this.myData.push({value: "A"});
|
|
145
|
-
this.myData.push({value: "B"});
|
|
146
|
-
this.myData.push({value: 1});
|
|
147
|
-
// this.myData.splice(1,2);
|
|
148
|
-
this.myData.splice(1,2, {value: 3});
|
|
149
|
-
},
|
|
150
|
-
props:["myData"]
|
|
151
|
-
});
|
|
152
|
-
|
|
153
|
-
var data = [];
|
|
154
|
-
|
|
155
|
-
return dot.h(MyComp(data));
|
|
156
|
-
|
|
157
|
-
}, "<ul><li>5</li><li>3</li><li>1</li></ul>");
|
|
158
|
-
|
|
159
|
-
addTest("Set value in bound array.", function(){
|
|
160
|
-
const MyComp = dot.component({
|
|
161
|
-
builder(data){
|
|
162
|
-
this.myData = data;
|
|
163
|
-
return dot.ul(
|
|
164
|
-
dot.each(()=>this.myData, (v, i)=>{
|
|
165
|
-
return dot.li(v.value)
|
|
166
|
-
})
|
|
167
|
-
);
|
|
168
|
-
},
|
|
169
|
-
ready(){
|
|
170
|
-
this.myData.push({value: 5});
|
|
171
|
-
this.myData.push({value: 3});
|
|
172
|
-
this.myData.push({value: 1});
|
|
173
|
-
|
|
174
|
-
this.myData[1] = {value: "YES!"};
|
|
175
|
-
},
|
|
176
|
-
props:["myData"]
|
|
177
|
-
});
|
|
178
|
-
|
|
179
|
-
var data = [];
|
|
180
|
-
|
|
181
|
-
return dot.h(MyComp(data));
|
|
182
|
-
|
|
183
|
-
}, "<ul><li>5</li><li>YES!</li><li>1</li></ul>"); // If stops working, add a delay.
|
|
184
|
-
|
|
185
|
-
addTest("Conditional rendering.", function(){
|
|
186
|
-
const MyComp = dot.component({
|
|
187
|
-
builder(){
|
|
188
|
-
this.myPropA = false;
|
|
189
|
-
this.myPropB = true;
|
|
190
|
-
var ret = dot.div(
|
|
191
|
-
dot.div("OUTER1")
|
|
192
|
-
.if(()=>this.myPropA, ()=>dot
|
|
193
|
-
.p("A"))
|
|
194
|
-
.if(()=>this.myPropB, ()=>dot
|
|
195
|
-
.p("B"))
|
|
196
|
-
.div("OUTER2")
|
|
197
|
-
);
|
|
198
|
-
return ret;
|
|
199
|
-
},
|
|
200
|
-
ready(){
|
|
201
|
-
this.myPropA = !this.myPropA;
|
|
202
|
-
this.myPropB = !this.myPropB;
|
|
203
|
-
},
|
|
204
|
-
props:["myPropA", "myPropB"]
|
|
205
|
-
});
|
|
206
|
-
|
|
207
|
-
return dot.h(MyComp());
|
|
208
|
-
}, "<div><div>OUTER1</div><p>A</p><div>OUTER2</div></div>");
|
|
209
|
-
|
|
210
|
-
addTest("Conditional rendering - out of order.", function(){
|
|
211
|
-
const MyComp = dot.component({
|
|
212
|
-
builder(){
|
|
213
|
-
this.myPropA = false;
|
|
214
|
-
this.myPropB = false;
|
|
215
|
-
this.myPropC = false;
|
|
216
|
-
var ret = dot.div(dot.div().if(()=>this.myPropA, ()=>dot.p("A")).if(()=>this.myPropB, ()=>dot.p("B")).if(()=>this.myPropC, ()=>dot.p("C")).div());
|
|
217
|
-
return ret;
|
|
218
|
-
},
|
|
219
|
-
ready(){
|
|
220
|
-
this.myPropB = true;
|
|
221
|
-
this.myPropC = true;
|
|
222
|
-
this.myPropA = true;
|
|
223
|
-
},
|
|
224
|
-
props:["myPropA", "myPropB", "myPropC"]
|
|
225
|
-
});
|
|
226
|
-
|
|
227
|
-
return dot.h(MyComp());
|
|
228
|
-
}, "<div><div></div><p>A</p><p>B</p><p>C</p><div></div></div>");
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
addTest("Conditional rendering - if true->false else.", function(){
|
|
232
|
-
const MyComp = dot.component({
|
|
233
|
-
builder(){
|
|
234
|
-
this.myProp = false;
|
|
235
|
-
var ret = dot.div(
|
|
236
|
-
dot.div("OUTER1")
|
|
237
|
-
.if(()=>this.myProp, ()=>dot
|
|
238
|
-
.p("A"))
|
|
239
|
-
.else(()=>dot
|
|
240
|
-
.p("B"))
|
|
241
|
-
.div("OUTER2")
|
|
242
|
-
);
|
|
243
|
-
return ret;
|
|
244
|
-
},
|
|
245
|
-
ready(){
|
|
246
|
-
this.myProp = !this.myProp;
|
|
247
|
-
},
|
|
248
|
-
props:["myProp"]
|
|
249
|
-
});
|
|
250
|
-
|
|
251
|
-
return dot.h(MyComp());
|
|
252
|
-
}, "<div><div>OUTER1</div><p>A</p><div>OUTER2</div></div>");
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
addTest("Conditional rendering - if true->false elseif true.", function(){
|
|
256
|
-
const MyComp = dot.component({
|
|
257
|
-
builder(){
|
|
258
|
-
this.myProp = true;
|
|
259
|
-
this.myElseProp = true;
|
|
260
|
-
var ret = dot.div(
|
|
261
|
-
dot.div("OUTER1")
|
|
262
|
-
.if(()=>this.myProp, ()=>dot
|
|
263
|
-
.p("A"))
|
|
264
|
-
.elseif(()=>this.myElseProp, ()=>dot
|
|
265
|
-
.p("B"))
|
|
266
|
-
.else(()=>dot
|
|
267
|
-
.p("C"))
|
|
268
|
-
.div("OUTER2")
|
|
269
|
-
);
|
|
270
|
-
return ret;
|
|
271
|
-
},
|
|
272
|
-
ready(){
|
|
273
|
-
this.myProp = false;
|
|
274
|
-
},
|
|
275
|
-
props:["myProp", "myElseProp"]
|
|
276
|
-
});
|
|
277
|
-
|
|
278
|
-
return dot.h(MyComp());
|
|
279
|
-
}, "<div><div>OUTER1</div><p>B</p><div>OUTER2</div></div>");
|
|
280
|
-
|
|
281
|
-
addTest("Conditional rendering - if true->false elseif true->false.", function(){
|
|
282
|
-
const MyComp = dot.component({
|
|
283
|
-
builder(){
|
|
284
|
-
this.myProp = true;
|
|
285
|
-
this.myElseProp = true;
|
|
286
|
-
var ret = dot.div(
|
|
287
|
-
dot.div("OUTER1")
|
|
288
|
-
.if(()=>this.myProp, ()=>dot
|
|
289
|
-
.p("A"))
|
|
290
|
-
.elseif(()=>this.myElseProp, ()=>dot
|
|
291
|
-
.p("B"))
|
|
292
|
-
.else(()=>dot
|
|
293
|
-
.p("C"))
|
|
294
|
-
.div("OUTER2")
|
|
295
|
-
);
|
|
296
|
-
return ret;
|
|
297
|
-
},
|
|
298
|
-
ready(){
|
|
299
|
-
this.myProp = false;
|
|
300
|
-
this.myElseProp = false;
|
|
301
|
-
},
|
|
302
|
-
props:["myProp", "myElseProp"]
|
|
303
|
-
});
|
|
304
|
-
|
|
305
|
-
return dot.h(MyComp());
|
|
306
|
-
}, "<div><div>OUTER1</div><p>C</p><div>OUTER2</div></div>");
|
|
307
|
-
|
|
308
|
-
addTest("Conditional rendering - if true->false elseif false->true.", function(){
|
|
309
|
-
const MyComp = dot.component({
|
|
310
|
-
builder(){
|
|
311
|
-
this.myProp = true;
|
|
312
|
-
this.myElseProp = false;
|
|
313
|
-
var ret = dot.div(
|
|
314
|
-
dot.div("OUTER1")
|
|
315
|
-
.if(()=>this.myProp, ()=>dot
|
|
316
|
-
.p("A"))
|
|
317
|
-
.elseif(()=>this.myElseProp, ()=>dot
|
|
318
|
-
.p("B"))
|
|
319
|
-
.else(()=>dot
|
|
320
|
-
.p("C"))
|
|
321
|
-
.div("OUTER2")
|
|
322
|
-
);
|
|
323
|
-
return ret;
|
|
324
|
-
},
|
|
325
|
-
ready(){
|
|
326
|
-
this.myProp = false;
|
|
327
|
-
this.myElseProp = true;
|
|
328
|
-
},
|
|
329
|
-
props:["myProp", "myElseProp"]
|
|
330
|
-
});
|
|
331
|
-
|
|
332
|
-
return dot.h(MyComp());
|
|
333
|
-
}, "<div><div>OUTER1</div><p>B</p><div>OUTER2</div></div>");
|
|
334
|
-
|
|
335
|
-
addTest("Conditional rendering - if true else true.", function(){
|
|
336
|
-
const MyComp = dot.component({
|
|
337
|
-
builder(){
|
|
338
|
-
this.myProp = false;
|
|
339
|
-
this.myElseProp = true;
|
|
340
|
-
var ret = dot.div(
|
|
341
|
-
dot.div("OUTER1")
|
|
342
|
-
.if(()=>this.myProp, ()=>dot
|
|
343
|
-
.p("A"))
|
|
344
|
-
.elseif(()=>this.myElseProp, ()=>dot
|
|
345
|
-
.p("B"))
|
|
346
|
-
.else(()=>dot
|
|
347
|
-
.p("C"))
|
|
348
|
-
.div("OUTER2")
|
|
349
|
-
);
|
|
350
|
-
return ret;
|
|
351
|
-
},
|
|
352
|
-
ready(){
|
|
353
|
-
this.myProp = true;
|
|
354
|
-
},
|
|
355
|
-
props:["myProp", "myElseProp"]
|
|
356
|
-
});
|
|
357
|
-
|
|
358
|
-
return dot.h(MyComp());
|
|
359
|
-
}, "<div><div>OUTER1</div><p>A</p><div>OUTER2</div></div>");
|
|
360
|
-
|
|
361
|
-
addTest("Conditional rendering - if true else false->true.", function(){
|
|
362
|
-
const MyComp = dot.component({
|
|
363
|
-
builder(){
|
|
364
|
-
this.myProp = false;
|
|
365
|
-
this.myElseProp = false;
|
|
366
|
-
var ret = dot.div(
|
|
367
|
-
dot.div("OUTER1")
|
|
368
|
-
.if(()=>this.myProp, ()=>dot
|
|
369
|
-
.p("A"))
|
|
370
|
-
.elseif(()=>this.myElseProp, ()=>dot
|
|
371
|
-
.p("B"))
|
|
372
|
-
.else(()=>dot
|
|
373
|
-
.p("C"))
|
|
374
|
-
.div("OUTER2")
|
|
375
|
-
);
|
|
376
|
-
return ret;
|
|
377
|
-
},
|
|
378
|
-
ready(){
|
|
379
|
-
this.myProp = true;
|
|
380
|
-
|
|
381
|
-
},
|
|
382
|
-
props:["myProp", "myElseProp"]
|
|
383
|
-
});
|
|
384
|
-
|
|
385
|
-
return dot.h(MyComp());
|
|
386
|
-
}, "<div><div>OUTER1</div><p>A</p><div>OUTER2</div></div>");
|
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
import addTest from "./core";
|
|
2
|
-
import dot from "../src/index";
|
|
3
|
-
|
|
4
|
-
addTest("Basic immutable class binding.", function(){
|
|
5
|
-
return dot.div().class({
|
|
6
|
-
"foo": true,
|
|
7
|
-
"bar": false,
|
|
8
|
-
"xyz": true
|
|
9
|
-
})
|
|
10
|
-
}, "<div class=\"foo xyz\"></div>");
|
|
11
|
-
|
|
12
|
-
addTest("Class binding to a component property.", function(){
|
|
13
|
-
var Component = dot.component({
|
|
14
|
-
builder(v){
|
|
15
|
-
this.prop = v;
|
|
16
|
-
return dot.div().class({
|
|
17
|
-
"foo": ()=>this.prop,
|
|
18
|
-
"bar": ()=>!this.prop,
|
|
19
|
-
})
|
|
20
|
-
},
|
|
21
|
-
props: ["prop"],
|
|
22
|
-
ready(){
|
|
23
|
-
this.prop = !this.prop;
|
|
24
|
-
}
|
|
25
|
-
});
|
|
26
|
-
|
|
27
|
-
return dot.h(Component(false)).h(Component(true));
|
|
28
|
-
|
|
29
|
-
}, "<div class=\"foo\"></div><div class=\"bar\"></div>");
|
|
30
|
-
|
|
31
|
-
addTest("Class binding to a component property with a style.", function(){
|
|
32
|
-
var Component = dot.component({
|
|
33
|
-
builder(v){
|
|
34
|
-
this.prop = v;
|
|
35
|
-
return dot.div().class({
|
|
36
|
-
"foo": ()=>this.prop,
|
|
37
|
-
"bar": ()=>!this.prop,
|
|
38
|
-
})
|
|
39
|
-
},
|
|
40
|
-
props: ["prop"],
|
|
41
|
-
ready(){
|
|
42
|
-
this.prop = !this.prop;
|
|
43
|
-
},
|
|
44
|
-
style(css){
|
|
45
|
-
css("div").backgroundColor("white");
|
|
46
|
-
css(".foo").color("red");
|
|
47
|
-
css(".bar").color("blue");
|
|
48
|
-
}
|
|
49
|
-
});
|
|
50
|
-
|
|
51
|
-
return dot.h(Component(false)).h(Component(true));
|
|
52
|
-
|
|
53
|
-
}, "<div class=\"foo\" style=\"background-color: rgb(255, 255, 255); color: rgb(255, 0, 0);\"></div><div class=\"bar\" style=\"background-color: rgb(255, 255, 255); color: rgb(0, 0, 255);\"></div>");
|
|
@@ -1,97 +0,0 @@
|
|
|
1
|
-
import addTest from "./core";
|
|
2
|
-
import dot from "../src/index";
|
|
3
|
-
|
|
4
|
-
// For testing the passing of data into and out of components via properties and events, respectively.
|
|
5
|
-
|
|
6
|
-
addTest("Pass value into component.", function(){
|
|
7
|
-
const MyComp = dot.component({
|
|
8
|
-
builder(){
|
|
9
|
-
this.myProp = 1;
|
|
10
|
-
var ret = dot.span(()=>this.myProp);
|
|
11
|
-
return ret;
|
|
12
|
-
},
|
|
13
|
-
props:["myProp"]
|
|
14
|
-
});
|
|
15
|
-
|
|
16
|
-
var myComp = MyComp();
|
|
17
|
-
myComp.myProp = 2;
|
|
18
|
-
return dot.h(myComp);
|
|
19
|
-
}, "<span>2</span>");
|
|
20
|
-
|
|
21
|
-
// TODO
|
|
22
|
-
// addTest("Binding value into component.", function(){
|
|
23
|
-
// const MyComp = dot.component({
|
|
24
|
-
// builder(){
|
|
25
|
-
// this.myProp = 1;
|
|
26
|
-
// var ret = dot.span(()=>this.myProp);
|
|
27
|
-
// return ret;
|
|
28
|
-
// },
|
|
29
|
-
// props:["myProp"]
|
|
30
|
-
// });
|
|
31
|
-
|
|
32
|
-
// var myComp = MyComp();
|
|
33
|
-
// myComp.myProp = 2;
|
|
34
|
-
// return dot.h(myComp);
|
|
35
|
-
// }, "<span>2</span>");
|
|
36
|
-
|
|
37
|
-
addTest("Raise event from component.", function(){
|
|
38
|
-
const MyComp = dot.component({
|
|
39
|
-
builder(){
|
|
40
|
-
this.myProp = 1;
|
|
41
|
-
var ret = dot.span(()=>this.myProp);
|
|
42
|
-
return ret;
|
|
43
|
-
},
|
|
44
|
-
props:["myProp"],
|
|
45
|
-
events:["go"],
|
|
46
|
-
ready(){
|
|
47
|
-
this.go(5);
|
|
48
|
-
}
|
|
49
|
-
});
|
|
50
|
-
|
|
51
|
-
var myComp = MyComp();
|
|
52
|
-
myComp.myProp = 2;
|
|
53
|
-
myComp.onGo(x=>myComp.myProp=x);
|
|
54
|
-
return dot.h(myComp);
|
|
55
|
-
}, "<span>5</span>");
|
|
56
|
-
|
|
57
|
-
addTest("Raise 2 events from component.", function(){
|
|
58
|
-
const MyComp = dot.component({
|
|
59
|
-
builder(){
|
|
60
|
-
this.myProp = "1";
|
|
61
|
-
var ret = dot.span(()=>this.myProp);
|
|
62
|
-
return ret;
|
|
63
|
-
},
|
|
64
|
-
props:["myProp"],
|
|
65
|
-
events:["go2"],
|
|
66
|
-
ready(){
|
|
67
|
-
this.go2("3");
|
|
68
|
-
this.go2("4");
|
|
69
|
-
}
|
|
70
|
-
});
|
|
71
|
-
|
|
72
|
-
var myComp = MyComp();
|
|
73
|
-
myComp.myProp = 2;
|
|
74
|
-
myComp.onGo2(x=>myComp.myProp+=x);
|
|
75
|
-
return dot.h(myComp);
|
|
76
|
-
}, "<span>234</span>");
|
|
77
|
-
|
|
78
|
-
addTest("Call a method from outside a component.", function(){
|
|
79
|
-
const MyComp = dot.component({
|
|
80
|
-
builder(){
|
|
81
|
-
this.myProp = 1;
|
|
82
|
-
var ret = dot.span(()=>this.myProp);
|
|
83
|
-
return ret;
|
|
84
|
-
},
|
|
85
|
-
props:["myProp"],
|
|
86
|
-
methods:{
|
|
87
|
-
go(v){
|
|
88
|
-
this.myProp = v;
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
});
|
|
92
|
-
|
|
93
|
-
var myComp = MyComp();
|
|
94
|
-
myComp.myProp = 2;
|
|
95
|
-
myComp.go(5);
|
|
96
|
-
return dot.h(myComp);
|
|
97
|
-
}, "<span>5</span>");
|