dothtml 5.0.3 → 5.1.0

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.
Files changed (52) hide show
  1. package/.vscode/launch.json +34 -0
  2. package/.vscode/settings.json +2 -1
  3. package/lib/component.d.ts +1 -1
  4. package/lib/dot-util.d.ts +13 -0
  5. package/lib/dothtml.d.ts +2 -1
  6. package/lib/dothtml.js +1 -1
  7. package/lib/i-dot.d.ts +4 -4
  8. package/lib/styling/css-types.ts/css-angle.d.ts +7 -0
  9. package/lib/styling/css-types.ts/css-color.d.ts +9 -0
  10. package/lib/styling/css-types.ts/css-complex.d.ts +7 -0
  11. package/lib/styling/css-types.ts/css-data-type.d.ts +5 -0
  12. package/lib/styling/css-types.ts/css-length.d.ts +7 -0
  13. package/lib/styling/css-types.ts/css-number.d.ts +6 -0
  14. package/lib/styling/css-types.ts/css-transform.d.ts +38 -0
  15. package/lib/styling/css-types.ts/css-unknown.d.ts +6 -0
  16. package/lib/styling/css-types.ts/css-url.d.ts +6 -0
  17. package/lib/{i-dotcss.d.ts → styling/i-dotcss.d.ts} +192 -42
  18. package/lib/styling/style-builder.d.ts +24 -0
  19. package/lib/styling/unit-function-tables.d.ts +10 -0
  20. package/package.json +2 -2
  21. package/src/component.ts +1 -1
  22. package/src/dot-util.ts +37 -1
  23. package/src/dot.ts +2 -2
  24. package/src/dothtml.ts +2 -1
  25. package/src/i-dot.ts +1 -1
  26. package/src/styling/css-types.ts/css-angle.ts +18 -0
  27. package/src/styling/css-types.ts/css-color.ts +229 -0
  28. package/src/styling/css-types.ts/css-complex.ts +20 -0
  29. package/src/styling/css-types.ts/css-data-type.ts +9 -0
  30. package/src/styling/css-types.ts/css-length.ts +20 -0
  31. package/src/styling/css-types.ts/css-number.ts +12 -0
  32. package/src/styling/css-types.ts/css-transform.ts +220 -0
  33. package/src/styling/css-types.ts/css-unknown.ts +13 -0
  34. package/src/styling/css-types.ts/css-url.ts +41 -0
  35. package/src/{i-dotcss.ts → styling/i-dotcss.ts} +206 -49
  36. package/src/styling/style-builder.ts +963 -0
  37. package/src/styling/unit-function-tables.ts +24 -0
  38. package/unittests/basic-functionality.test.ts +1 -1
  39. package/unittests/calc.test.ts +2 -0
  40. package/unittests/{component-decorator.-.ts → components/component-decorator.-.ts} +0 -0
  41. package/unittests/{components-data.test.ts → components/components-data.test.ts} +3 -3
  42. package/unittests/{components.test.ts → components/components.test.ts} +5 -4
  43. package/unittests/input-bindings.test.ts +6 -6
  44. package/unittests/non-function-props-rerender.test.ts +85 -0
  45. package/unittests/styling/animations.test.ts +14 -0
  46. package/unittests/styling/inline-styling.test.ts +18 -0
  47. package/unittests/styling/pseudo-selectors.test.ts +1 -0
  48. package/unittests/styling/transformations.test.ts +234 -0
  49. package/{lib/dot-document.d.ts → unittests/styling/value-interpretation.test.ts} +0 -0
  50. package/lib/style-builder.d.ts +0 -3
  51. package/src/dot-document.ts +0 -0
  52. package/src/style-builder.ts +0 -1516
@@ -0,0 +1,24 @@
1
+ export const AllLengthUnits = [
2
+ {unit:"Em"},
3
+ {unit:"Ex"},
4
+ {unit:"Ch"},
5
+ {unit:"Rem"},
6
+ {unit:"Vw"},
7
+ {unit:"Vh"},
8
+ {unit:"Vmin"},
9
+ {unit:"Vmax"},
10
+ {unit:"%", jsName:"P"},
11
+ {unit:"Cm"},
12
+ {unit:"Mm"},
13
+ {unit:"In"},
14
+ {unit:"Px"},
15
+ {unit:"Pt"},
16
+ {unit:"Pc"}
17
+ ];
18
+
19
+ export const AllAngleUnits = [
20
+ {unit:"Deg"},
21
+ {unit:"Grad"},
22
+ {unit:"Rad"},
23
+ {unit:"Turn"}
24
+ ];
@@ -85,4 +85,4 @@ addTest("Script, return dot.", function(){ return dot.script(function(){return 2
85
85
  addTest("Script, return function.", function(){ return dot.script(function(){return function(){return 2};}).div(1); }, "<div>1</div>");
86
86
 
87
87
  // CSS
88
- addTest("CSS module included.", function(){ return dot.h(dot.css?.color ? "yes" : "no"); }, "yes");
88
+ addTest("CSS module included.", function(){ return dot.h(dot["css"] ? "yes" : "no"); }, "yes");
@@ -0,0 +1,2 @@
1
+
2
+ // TODO: calc.
@@ -1,6 +1,6 @@
1
- import addTest from "./core";
2
- import dot from "../src/dothtml";
3
- import Component from "../src/component";
1
+ import addTest from "../core";
2
+ import dot from "../../src/dothtml";
3
+ import Component from "../../src/component";
4
4
 
5
5
  // For testing the passing of data into and out of components via properties and events, respectively.
6
6
 
@@ -1,6 +1,6 @@
1
- import addTest from "./core";
2
- import dot from "../src/dothtml";
3
- import Component from "../src/component";
1
+ import addTest from "../core";
2
+ import dot, { DotComponent } from "../../src/dothtml";
3
+ import Component from "../../src/component";
4
4
 
5
5
  class comp_legacy extends dot.Component{
6
6
 
@@ -211,11 +211,12 @@ addTest("Styles should not apply to nested elements.", function(){
211
211
  return dot.div(this.params[0]);
212
212
  }
213
213
  style(css){
214
+ // console.log("CSS???", !!css);
214
215
  css("div").backgroundColor("#FF0000");
215
216
  }
216
217
  };
217
218
 
218
- class CompInner extends dot.Component{
219
+ class CompInner extends DotComponent{
219
220
  builder(){
220
221
  return dot.div("FOOBAR");
221
222
  }
@@ -17,7 +17,7 @@ class CompBindingInputChangeOption extends Component{
17
17
  //this.myValue.setFrom(this.$el.childNodes[1]);
18
18
  var v = dot(this.$el).as(dot.select).getVal();
19
19
  this.$el.children[1].dispatchEvent(new Event("change"));
20
- dot(this.$el.parentNode).empty()
20
+ dot(this.$el.parentNode as ParentNode).empty()
21
21
  .div("Var: " + this.props.myValue)
22
22
  .div("Input: " + v);
23
23
  }
@@ -58,7 +58,7 @@ class CompBindingWrite extends Component{
58
58
  }
59
59
  ready(){
60
60
  var v = dot(this.$el).as(dot.input).getVal();
61
- dot(this.$el.parentNode).empty()
61
+ dot(this.$el.parentNode as ParentNode).empty()
62
62
  .div("Var: " + this.props.v2)
63
63
  .div("Input: " + v);
64
64
  }
@@ -73,7 +73,7 @@ class CompBindingVarChange extends Component{
73
73
  ready(){
74
74
  this.props.v1 = this.props.v2;
75
75
  var v = dot(this.$el).as(dot.input).getVal();
76
- dot(this.$el.parentNode).empty()
76
+ dot(this.$el.parentNode as ParentNode).empty()
77
77
  .div("Var: " + this.props.v1)
78
78
  .div("Input: " + v);
79
79
  }
@@ -92,7 +92,7 @@ class CompBindingInputChange extends Component{
92
92
  var v = dot(this.$el).as(dot.input).getVal();
93
93
  this.$el.dispatchEvent(new Event("change"));
94
94
  //this.v1 = v;
95
- dot(this.$el.parentNode).empty()
95
+ dot(this.$el.parentNode as ParentNode).empty()
96
96
  .div("Var: " + this.props.v1)
97
97
  .div("Input: " + v);
98
98
  }
@@ -113,7 +113,7 @@ class CompBindingWriteOption extends Component{
113
113
  }
114
114
  ready(){
115
115
  var v = dot(this.$el).as(dot.select).getVal();
116
- dot(this.$el.parentNode).empty()
116
+ dot(this.$el.parentNode as ParentNode).empty()
117
117
  .div("Var: " + this.props.myValue).div("Input: " + v)
118
118
  }
119
119
  }
@@ -129,7 +129,7 @@ class CompBindingVarChangeOption extends Component{
129
129
  ready(){
130
130
  this.props.myValue = true;
131
131
  var v = dot(this.$el).as(dot.select).getVal();
132
- dot(this.$el.parentNode).empty()
132
+ dot(this.$el.parentNode as ParentNode).empty()
133
133
  .div("Var: " + this.props.myValue)
134
134
  .div("Input: " + v)
135
135
  }
@@ -0,0 +1,85 @@
1
+
2
+ /**
3
+ * 2022-07-28
4
+ * The goal of these tests is to verify that the builder and style functions are called once when properties are updated.
5
+ * The previous behavior was that specific elements within components would only be re-rendered if a property was used inside of a function.
6
+ * This resulted in some annoying syntax, such as `dot.div(()=>{return this.props.x})`. And then restyling wouldn't happen at all unless expliticly executed.
7
+ */
8
+
9
+ import dot, { DotComponent, IDotCss, IDotElement } from "../src/dothtml";
10
+ import addTest from "./core";
11
+
12
+ class TestComponentA extends DotComponent{
13
+ props={
14
+ myValue: "not-set",
15
+ rebuild: "no",
16
+ restyle: "no",
17
+ }
18
+
19
+ builds: number = 0;
20
+ styled: number = 0;
21
+
22
+ builder(): IDotElement {
23
+ this.builds++;
24
+
25
+ this.props.rebuild;
26
+
27
+ return dot.div(
28
+ dot.div(this.props.myValue).div(this.props.myValue).div(()=>{ return this.props.myValue })
29
+ );
30
+ }
31
+
32
+ style(css: IDotCss){
33
+ this.styled++;
34
+
35
+ this.props.restyle;
36
+ this.props.myValue;
37
+ }
38
+ }
39
+
40
+ // addTest("Basic build and style.", function(){
41
+ // let component = new TestComponentA();
42
+ // dot(document.body).h(component);
43
+
44
+ // return dot.h(`${component.$el.outerHTML} ${component.builds} ${component.styled}`);
45
+ // }, "<div><div>not-set</div><div>not-set</div><div>not-set</div></div> 1 1");
46
+
47
+ // addTest("Update rebuild prop.", function(){
48
+ // let component = new TestComponentA();
49
+ // dot(document.body).h(component);
50
+
51
+ // component.props.rebuild = "yes 1";
52
+ // component.props.rebuild = "yes 2";
53
+
54
+ // return dot.h(`${component.$el.outerHTML} ${component.builds} ${component.styled}`);
55
+ // }, "<div><div>not-set</div><div>not-set</div><div>not-set</div></div> 3 1");
56
+
57
+ // addTest("Update restyle prop.", function(){
58
+ // let component = new TestComponentA();
59
+ // dot(document.body).h(component);
60
+
61
+ // component.props.restyle = "yes 1";
62
+ // component.props.restyle = "yes 2";
63
+
64
+ // return dot.h(`${component.$el.outerHTML} ${component.builds} ${component.styled}`);
65
+ // }, "<div><div>not-set</div><div>not-set</div><div>not-set</div></div> 1 3");
66
+
67
+ addTest("Update value.", function(){
68
+ let component = new TestComponentA();
69
+ dot(document.body).h(component);
70
+
71
+ component.props.myValue = "set";
72
+
73
+ return dot.h(`${component.$el.outerHTML} ${component.builds} ${component.styled}`);
74
+ }, "<div><div>set</div><div>set</div><div>set</div></div> 2 2");
75
+
76
+ // addTest("Update value and other props.", function(){
77
+ // let component = new TestComponentA();
78
+ // dot(document.body).h(component);
79
+
80
+ // component.props.rebuild = "yes";
81
+ // component.props.restyle = "yes";
82
+ // component.props.myValue = "set";
83
+
84
+ // return dot.h(`${component.$el.outerHTML} ${component.builds} ${component.styled}`);
85
+ // }, "<div><div>set</div><div>set</div><div>set</div></div> 3 3");
@@ -0,0 +1,14 @@
1
+
2
+ import addTest from "../core";
3
+ import dot from "../../src/dothtml";
4
+
5
+ // For testing the passing of data into and out of components via properties and events, respectively.
6
+
7
+ addTest("Dotcss returns stringable value.", function(){
8
+ return dot.div(dot.css.color(0x102030).border("1px solid black").toString());
9
+ }, "<div>color:\"rgb(16, 32, 48);\"border:\" 1px solid black \";</div>");
10
+
11
+ addTest("Styling an element.", function(){
12
+ return dot.div().style(dot.css.color(0x102030).border("1px solid black").toString());
13
+ }, "<div style=\"color:'rgb(16, 32, 48);'border:' 1px solid black ';\"></div>");
14
+
@@ -0,0 +1,18 @@
1
+ import addTest from "../core";
2
+ import dot from "../../src/dothtml";
3
+
4
+ addTest("Dotcss returns stringable value.", function(){
5
+ return dot.div(dot.css.color(0x102030).border("1px solid black").toString());
6
+ }, `<div>color:"rgb(16, 32, 48);"border:" 1px solid black ";</div>`);
7
+
8
+ addTest("Styling an element.", function(){
9
+ return dot.div().style(dot.css.color(0x102030).border("1px solid black"));
10
+ }, `<div style="color:'rgb(16, 32, 48);'border:' 1px solid black ';"></div>`);
11
+
12
+ addTest("Restyling an element.", function(){
13
+ let div = dot.div().style(dot.css.position("absolute").position("fixed"));
14
+ // dot.css(div.getLast()).position("absolute");
15
+ // dot.css(div.getLast()).position("fixed");
16
+ return div;
17
+ }, `<div style="position: 'fixed';"></div>`);
18
+
@@ -0,0 +1 @@
1
+ // Planned for 5.2.
@@ -0,0 +1,234 @@
1
+
2
+ import addTest from "../core";
3
+ import dot from "../../src/dothtml";
4
+
5
+ // Test coverage should include:
6
+ // perspective: (v: LengthOrDefault)=>ITransformationContext;
7
+
8
+ addTest("Matrix.", function(){
9
+ return dot.div().style(
10
+ dot.css.transform(t=>t.matrix(1,2,3,4,5,6))
11
+ );
12
+ }, `<div style="transform:'matrix(1,2,3,4,5,6)';"></div>`);
13
+ addTest("Matrix 3d.", function(){
14
+ return dot.div().style(
15
+ dot.css.transform(t=>t.matrix3d(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16))
16
+ );
17
+ }, `<div style="transform:'matrix3d(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16)';"></div>`);
18
+
19
+ addTest("Translate (x only).", function(){
20
+ return dot.div().style(
21
+ dot.css.transform(t=>t.translate(10))
22
+ );
23
+ }, `<div style="transform:'translate(10px)';"></div>`);
24
+ addTest("Translate.", function(){
25
+ return dot.div().style(
26
+ dot.css.transform(t=>t.translate(10, 20))
27
+ );
28
+ }, `<div style="transform:'translate(10px,20px)';"></div>`);
29
+ addTest("Translate (custom units).", function(){
30
+ return dot.div().style(
31
+ dot.css.transform(t=>t.translate("10cm", "20cm"))
32
+ );
33
+ }, `<div style="transform:'translate(10cm,20cm)';"></div>`);
34
+ addTest("Translate (unit function).", function(){
35
+ return dot.div().style(
36
+ dot.css.transform(t=>t.translateCm(10, 20))
37
+ );
38
+ }, `<div style="transform:'translate(10cm,20cm)';"></div>`);
39
+ addTest("Translate X.", function(){
40
+ return dot.div().style(
41
+ dot.css.transform(t=>t.translateX("10cm"))
42
+ );
43
+ }, `<div style="transform:'translateX(10cm)';"></div>`);
44
+ addTest("Translate X (unit function).", function(){
45
+ return dot.div().style(
46
+ dot.css.transform(t=>t.translateXCm(10))
47
+ );
48
+ }, `<div style="transform:'translateX(10cm)';"></div>`);
49
+ addTest("Translate Y.", function(){
50
+ return dot.div().style(
51
+ dot.css.transform(t=>t.translateY("10cm"))
52
+ );
53
+ }, `<div style="transform:'translateY(10cm)';"></div>`);
54
+ addTest("Translate Y (unit function).", function(){
55
+ return dot.div().style(
56
+ dot.css.transform(t=>t.translateYCm(10))
57
+ );
58
+ }, `<div style="transform:'translateY(10cm)';"></div>`);
59
+ addTest("Translate Z.", function(){
60
+ return dot.div().style(
61
+ dot.css.transform(t=>t.translateZ("10cm"))
62
+ );
63
+ }, `<div style="transform:'translateZ(10cm)';"></div>`);
64
+ addTest("Translate Z (unit function).", function(){
65
+ return dot.div().style(
66
+ dot.css.transform(t=>t.translateZCm(10))
67
+ );
68
+ }, `<div style="transform:'translateZ(10cm)';"></div>`);
69
+ addTest("Translate 3D.", function(){
70
+ return dot.div().style(
71
+ dot.css.transform(t=>t.translate3d(10, 20, 30))
72
+ );
73
+ }, `<div style="transform:'translate3d(10px,20px,30px)';"></div>`);
74
+ addTest("Translate 3D (unit function).", function(){
75
+ return dot.div().style(
76
+ dot.css.transform(t=>t.translate3dCm(10, 20, 30))
77
+ );
78
+ }, `<div style="transform:'translate3d(10cm,20cm,30cm)';"></div>`);
79
+
80
+ addTest("Scale (x only).", function(){
81
+ return dot.div().style(
82
+ dot.css.transform(t=>t.scale(10))
83
+ );
84
+ }, `<div style="transform:'scale(10,1)';"></div>`);
85
+ addTest("Scale.", function(){
86
+ return dot.div().style(
87
+ dot.css.transform(t=>t.scale(10, 20))
88
+ );
89
+ }, `<div style="transform:'scale(10,20)';"></div>`);
90
+ addTest("Scale custom units.", function(){
91
+ return dot.div().style(
92
+ dot.css.transform(t=>t.scale(10, 20))
93
+ );
94
+ }, `<div style="transform:'scale(10,20)';"></div>`);
95
+ addTest("Scale X.", function(){
96
+ return dot.div().style(
97
+ dot.css.transform(t=>t.scaleX(10))
98
+ );
99
+ }, `<div style="transform:'scaleX(10)';"></div>`);
100
+ addTest("Scale Y.", function(){
101
+ return dot.div().style(
102
+ dot.css.transform(t=>t.scaleY(10))
103
+ );
104
+ }, `<div style="transform:'scaleY(10)';"></div>`);
105
+ addTest("Scale Z.", function(){
106
+ return dot.div().style(
107
+ dot.css.transform(t=>t.scaleZ(10))
108
+ );
109
+ }, `<div style="transform:'scaleZ(10)';"></div>`);
110
+ addTest("Scale 3D.", function(){
111
+ return dot.div().style(
112
+ dot.css.transform(t=>t.scale3d(10, 20, 30))
113
+ );
114
+ }, `<div style="transform:'scale3d(10,20,30)';"></div>`);
115
+
116
+ addTest("Rotate.", function(){
117
+ return dot.div().style(
118
+ dot.css.transform(t=>t.rotate(10))
119
+ );
120
+ }, `<div style="transform:'rotate(10deg)';"></div>`);
121
+ addTest("Rotate custom units.", function(){
122
+ return dot.div().style(
123
+ dot.css.transform(t=>t.rotate("10rad"))
124
+ );
125
+ }, `<div style="transform:'rotate(10rad)';"></div>`);
126
+ addTest("Rotate (unit function).", function(){
127
+ return dot.div().style(
128
+ dot.css.transform(t=>t.rotateGrad(10))
129
+ );
130
+ }, `<div style="transform:'rotate(10grad)';"></div>`);
131
+ addTest("Rotate X.", function(){
132
+ return dot.div().style(
133
+ dot.css.transform(t=>t.rotateX(10))
134
+ );
135
+ }, `<div style="transform:'rotateX(10deg)';"></div>`);
136
+ addTest("Rotate X (unit function).", function(){
137
+ return dot.div().style(
138
+ dot.css.transform(t=>t.rotateXTurn(10))
139
+ );
140
+ }, `<div style="transform:'rotateX(10turn)';"></div>`);
141
+ addTest("Rotate Y.", function(){
142
+ return dot.div().style(
143
+ dot.css.transform(t=>t.rotateY(10))
144
+ );
145
+ }, `<div style="transform:'rotateY(10deg)';"></div>`);
146
+ addTest("Rotate Y (unit function).", function(){
147
+ return dot.div().style(
148
+ dot.css.transform(t=>t.rotateYRad(10))
149
+ );
150
+ }, `<div style="transform:'rotateY(10rad)';"></div>`);
151
+ addTest("Rotate Z.", function(){
152
+ return dot.div().style(
153
+ dot.css.transform(t=>t.rotateZ(10))
154
+ );
155
+ }, `<div style="transform:'rotateZ(10deg)';"></div>`);
156
+ addTest("Rotate Z (unit function).", function(){
157
+ return dot.div().style(
158
+ dot.css.transform(t=>t.rotateZGrad(10))
159
+ );
160
+ }, `<div style="transform:'rotateZ(10grad)';"></div>`);
161
+ addTest("Rotate 3D.", function(){
162
+ return dot.div().style(
163
+ dot.css.transform(t=>t.rotate3d(10, 20, 30, 40))
164
+ );
165
+ }, `<div style="transform:'rotate3d(10,20,30,40deg)';"></div>`);
166
+ addTest("Rotate 3D (unit function).", function(){
167
+ return dot.div().style(
168
+ dot.css.transform(t=>t.rotate3dRad(10, 20, 30, 40))
169
+ );
170
+ }, `<div style="transform:'rotate3d(10,20,30,40rad)';"></div>`);
171
+
172
+ addTest("Skew (x only).", function(){
173
+ return dot.div().style(
174
+ dot.css.transform(t=>t.skew(1))
175
+ );
176
+ }, `<div style="transform:'skew(1deg)';"></div>`);
177
+ addTest("Skew.", function(){
178
+ return dot.div().style(
179
+ dot.css.transform(t=>t.skew(1, 2))
180
+ );
181
+ }, `<div style="transform:'skew(1deg,2deg)';"></div>`);
182
+ addTest("Skew (custom units).", function(){
183
+ return dot.div().style(
184
+ dot.css.transform(t=>t.skew("1grad", "2deg"))
185
+ );
186
+ }, `<div style="transform:'skew(1grad,2deg)';"></div>`);
187
+ addTest("Skew (unit function).", function(){
188
+ return dot.div().style(
189
+ dot.css.transform(t=>t.skewGrad(1, 2))
190
+ );
191
+ }, `<div style="transform:'skew(1grad,2grad)';"></div>`);
192
+ addTest("Skew X.", function(){
193
+ return dot.div().style(
194
+ dot.css.transform(t=>t.skewX(5))
195
+ );
196
+ }, `<div style="transform:'skewX(5deg)';"></div>`);
197
+ addTest("Skew X (unit function).", function(){
198
+ return dot.div().style(
199
+ dot.css.transform(t=>t.skewXRad(5))
200
+ );
201
+ }, `<div style="transform:'skewX(5rad)';"></div>`);
202
+ addTest("Skew Y.", function(){
203
+ return dot.div().style(
204
+ dot.css.transform(t=>t.skewY(5))
205
+ );
206
+ }, `<div style="transform:'skewY(5deg)';"></div>`);
207
+ addTest("Skew Y (unit function).", function(){
208
+ return dot.div().style(
209
+ dot.css.transform(t=>t.skewYTurn(0.5))
210
+ );
211
+ }, `<div style="transform:'skewY(0.5turn)';"></div>`);
212
+
213
+ addTest("Perspective.", function(){
214
+ return dot.div().style(
215
+ dot.css.transform(t=>t.perspective(100))
216
+ );
217
+ }, `<div style="transform:'perspective(100px)';"></div>`);
218
+ addTest("Perspective (units).", function(){
219
+ return dot.div().style(
220
+ dot.css.transform(t=>t.perspective("100cm"))
221
+ );
222
+ }, `<div style="transform:'perspective(100cm)';"></div>`);
223
+ addTest("Perspective (unit function).", function(){
224
+ return dot.div().style(
225
+ dot.css.transform(t=>t.perspectiveCm(100))
226
+ );
227
+ }, `<div style="transform:'perspective(100cm)';"></div>`);
228
+
229
+ addTest("Combined transformation.", function(){
230
+ return dot.div().style(
231
+ dot.css.transform(t=>t.translate("10cm", "20cm").scale(2,4).rotate("0.5turn"))
232
+ );
233
+ }, `<div style="transform:'translate(10cm,20cm) scale(2,4) rotate(0.5turn)';"></div>`);
234
+
@@ -1,3 +0,0 @@
1
- import IDotCss from "./i-dotcss";
2
- declare const dotcss: IDotCss;
3
- export default dotcss;
File without changes