dothtml 5.2.2 → 5.2.4
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/lib/dothtml.js +1 -1
- package/package.json +2 -1
- package/.vscode/launch.json +0 -34
- package/.vscode/settings.json +0 -6
- package/azure-pipelines.yml +0 -14
- package/babel.config.js +0 -1
- package/jest.config.ts +0 -207
- package/out.md +0 -1340
- package/src/arg-callback-obj.ts +0 -76
- package/src/built-in-components/nav-link.ts +0 -21
- package/src/built-in-components/router.ts +0 -315
- package/src/component.ts +0 -415
- package/src/dot-util.ts +0 -69
- package/src/dot.ts +0 -1147
- package/src/dothtml.ts +0 -39
- package/src/err.ts +0 -22
- package/src/event-bus.ts +0 -39
- package/src/i-dot.ts +0 -787
- package/src/node-polyfill.ts +0 -11
- package/src/observable-array.ts +0 -289
- package/src/styling/css-types.ts/css-angle.ts +0 -18
- package/src/styling/css-types.ts/css-color.ts +0 -233
- package/src/styling/css-types.ts/css-complex.ts +0 -20
- package/src/styling/css-types.ts/css-data-type.ts +0 -9
- package/src/styling/css-types.ts/css-filter.ts +0 -134
- package/src/styling/css-types.ts/css-length.ts +0 -20
- package/src/styling/css-types.ts/css-number.ts +0 -12
- package/src/styling/css-types.ts/css-percentage.ts +0 -10
- package/src/styling/css-types.ts/css-transform.ts +0 -220
- package/src/styling/css-types.ts/css-unknown.ts +0 -13
- package/src/styling/css-types.ts/css-url.ts +0 -41
- package/src/styling/i-dotcss.ts +0 -1198
- package/src/styling/style-builder.ts +0 -967
- package/src/styling/unit-function-tables.ts +0 -24
- package/tsconfig.json +0 -99
- package/unittests/advanced-bindings.test.ts +0 -421
- package/unittests/array-evaluation.test.ts +0 -7
- package/unittests/basic-functionality.test.ts +0 -88
- package/unittests/calc.test.ts +0 -6
- package/unittests/class-binding.test.ts +0 -227
- package/unittests/components/component-decorator.-.ts +0 -14
- package/unittests/components/components-data.test.ts +0 -153
- package/unittests/components/components.test.ts +0 -258
- package/unittests/computed.test.ts +0 -35
- package/unittests/core.ts +0 -66
- package/unittests/element-and-attribute-coverage.test.ts +0 -472
- package/unittests/hooks.test.ts +0 -67
- package/unittests/immutable-if.test.ts +0 -19
- package/unittests/input-bindings.test.ts +0 -166
- package/unittests/integration.test.ts +0 -5
- package/unittests/iterations.test.ts +0 -18
- package/unittests/logic.test.ts +0 -18
- package/unittests/non-function-props-rerender.test.ts +0 -86
- package/unittests/refs.test.ts +0 -36
- package/unittests/routing.-.ts +0 -56
- package/unittests/scopes.test.ts +0 -22
- package/unittests/special-tags.test.ts +0 -39
- package/unittests/styles.test.ts +0 -9
- package/unittests/styling/animations.test.ts +0 -14
- package/unittests/styling/filters.test.ts +0 -23
- package/unittests/styling/inline-styling.test.ts +0 -18
- package/unittests/styling/pseudo-selectors.test.ts +0 -33
- package/unittests/styling/transformations.test.ts +0 -234
- package/unittests/styling/value-interpretation.test.ts +0 -3
- package/unittests/testpage.ts +0 -5
- package/unittests/wait.test.ts +0 -31
- package/webpack.config.js +0 -28
|
@@ -1,134 +0,0 @@
|
|
|
1
|
-
import { isF } from "../../dot-util";
|
|
2
|
-
import {AllAngleUnits, AllLengthUnits} from "../unit-function-tables";
|
|
3
|
-
import { AngleUnits, ColorFormat, NumericAngle, NumericLength, Percentage } from "../i-dotcss";
|
|
4
|
-
import CssAngle from "./css-angle";
|
|
5
|
-
import CssDataType from "./css-data-type";
|
|
6
|
-
import CssLength from "./css-length";
|
|
7
|
-
import CssPercentage from "./css-percentage";
|
|
8
|
-
import CssColor from "./css-color";
|
|
9
|
-
|
|
10
|
-
export default class CssFilter extends CssDataType{
|
|
11
|
-
|
|
12
|
-
simpleValue: string;
|
|
13
|
-
filters: Array<{
|
|
14
|
-
filter: string,
|
|
15
|
-
args: Array<any>
|
|
16
|
-
}> = [];
|
|
17
|
-
|
|
18
|
-
constructor(value){
|
|
19
|
-
super("filter");
|
|
20
|
-
|
|
21
|
-
if(typeof value == "string"){
|
|
22
|
-
this.simpleValue = value;
|
|
23
|
-
return; //?? Need a better way to handle this.
|
|
24
|
-
}
|
|
25
|
-
else if(isF(value)){
|
|
26
|
-
value(this);
|
|
27
|
-
// console.log(this.toString());
|
|
28
|
-
}
|
|
29
|
-
//var ret = {value: value, type: cssDataType};
|
|
30
|
-
|
|
31
|
-
// The old way of doing transformations was that it was set up to accept a big string. The added complexity was to support animations.
|
|
32
|
-
// The new way is to use the builder. But I might want to come back and revisit the idea of accepting a string.
|
|
33
|
-
// For instance, a use case of accepting a string for a transformation is if we're trying to animate transforms generated by another framework.
|
|
34
|
-
// Not sure if that's realistic.
|
|
35
|
-
// var transformations = value.split(/\)\s*/); transformations.pop(); for(var i = 0; i < transformations.length; i++) transformations[i] += ")";
|
|
36
|
-
// // var cos = Math.cos; var sin = Math.sin; var tan = Math.tan;
|
|
37
|
-
// for(var t = 0; t < transformations.length; t++){
|
|
38
|
-
// var trans = transformations[t].trim();
|
|
39
|
-
// var parts = trans.split(/[\(\)]/);
|
|
40
|
-
// var func = parts[0]
|
|
41
|
-
// var p = parts[1].split(/\s*,\s*/)
|
|
42
|
-
|
|
43
|
-
// if(this[func]){
|
|
44
|
-
// this[func].apply(this, p);
|
|
45
|
-
// }
|
|
46
|
-
// }
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
toString(){
|
|
50
|
-
if(this.simpleValue){
|
|
51
|
-
return this.simpleValue;
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
var ret = "";
|
|
55
|
-
for(var i = 0; i < this.filters.length; i++){
|
|
56
|
-
var t = this.filters[i];
|
|
57
|
-
ret += t.filter + "(";
|
|
58
|
-
for(var k = 0; k < t.args.length; k++){
|
|
59
|
-
ret += t.args[k].toString() + " ";
|
|
60
|
-
}
|
|
61
|
-
ret = ret.trim() + ") ";
|
|
62
|
-
}
|
|
63
|
-
return ret.trim();
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
private appendFilterString(filter: string, args){
|
|
67
|
-
//this.finalMatrix = dotcss.matrixMultiply3D(m, this.finalMatrix);
|
|
68
|
-
this.filters.push({filter: filter, args: args});
|
|
69
|
-
/*if(this.value.length > 0) this.value += " ";
|
|
70
|
-
this.value += transformation + "(";
|
|
71
|
-
for(var i = 0; i < args.length; i++){
|
|
72
|
-
this.value += args[i] + (i == args.length -1 ? "" : ",")
|
|
73
|
-
}*/
|
|
74
|
-
return this;
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
blur(v: NumericLength){
|
|
78
|
-
return this.appendFilterString("blur", [new CssLength(v)]);
|
|
79
|
-
}
|
|
80
|
-
brightness(v: Percentage){
|
|
81
|
-
return this.appendFilterString("brightness", [new CssPercentage(v)]);
|
|
82
|
-
}
|
|
83
|
-
contrast(v: Percentage){
|
|
84
|
-
return this.appendFilterString("contrast", [new CssPercentage(v)]);
|
|
85
|
-
}
|
|
86
|
-
dropShadow(x: NumericLength, y: NumericLength, blur: NumericLength, color: ColorFormat){
|
|
87
|
-
return this.appendFilterString("drop-shadow", [new CssLength(x), new CssLength(y), new CssLength(blur), new CssColor(color)]);
|
|
88
|
-
}
|
|
89
|
-
grayscale(v: Percentage){
|
|
90
|
-
return this.appendFilterString("grayscale", [new CssPercentage(v)]);
|
|
91
|
-
}
|
|
92
|
-
hueRotate(v: AngleUnits){
|
|
93
|
-
return this.appendFilterString("hue-rotate", [new CssPercentage(v)]);
|
|
94
|
-
}
|
|
95
|
-
invert(v: Percentage){
|
|
96
|
-
return this.appendFilterString("invert", [new CssPercentage(v)]);
|
|
97
|
-
}
|
|
98
|
-
opacity(v: Percentage){
|
|
99
|
-
return this.appendFilterString("opacity", [new CssPercentage(v)]);
|
|
100
|
-
}
|
|
101
|
-
sepia(v: Percentage){
|
|
102
|
-
return this.appendFilterString("sepia", [new CssPercentage(v)]);
|
|
103
|
-
}
|
|
104
|
-
saturate(v: Percentage){
|
|
105
|
-
return this.appendFilterString("saturate", [new CssPercentage(v)]);
|
|
106
|
-
}
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
// Extend the above with special length and degree functions.
|
|
110
|
-
|
|
111
|
-
// TODO: when I have some time it would be nice to do the unit functions the same way we do for transforms.
|
|
112
|
-
// const lengthFuncs = "translate|translate3d|translateX|translateY|translateZ|perspective".split("|");
|
|
113
|
-
// const angleFuncs = "rotate|rotateX|rotateY|rotateZ|skew|skewX|skewY".split("|");
|
|
114
|
-
|
|
115
|
-
// for(let i = 0; i < lengthFuncs.length; i++){
|
|
116
|
-
// let F = lengthFuncs[i];
|
|
117
|
-
// for(let u = 0; u < AllLengthUnits.length; u++){
|
|
118
|
-
// let uu = AllLengthUnits[u];
|
|
119
|
-
// CssTransform.prototype[F + (uu.jsName || uu.unit)] = function(){
|
|
120
|
-
// for(var i = 0; i < arguments.length; i++) arguments[i] = arguments[i] + uu.unit.toLowerCase();
|
|
121
|
-
// return CssTransform.prototype[F].apply(this, arguments);
|
|
122
|
-
// }
|
|
123
|
-
// }
|
|
124
|
-
// }
|
|
125
|
-
// for(let i = 0; i < angleFuncs.length; i++){
|
|
126
|
-
// let F = angleFuncs[i];
|
|
127
|
-
// for(let u = 0; u < AllAngleUnits.length; u++){
|
|
128
|
-
// let uu = AllAngleUnits[u];
|
|
129
|
-
// CssTransform.prototype[F + (uu.unit)] = function(){
|
|
130
|
-
// for(var i = 0; i < arguments.length; i++) arguments[i] = arguments[i] + uu.unit.toLowerCase();
|
|
131
|
-
// return CssTransform.prototype[F].apply(this, arguments);
|
|
132
|
-
// }
|
|
133
|
-
// }
|
|
134
|
-
// }
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import { floatRegex } from "../../dot-util";
|
|
2
|
-
import CssDataType from "./css-data-type";
|
|
3
|
-
|
|
4
|
-
//TODO: this should support multiple lengths.
|
|
5
|
-
// TODO: add some test cases to test these.
|
|
6
|
-
export default class CssLength extends CssDataType{
|
|
7
|
-
length: number;
|
|
8
|
-
units: string;
|
|
9
|
-
constructor (value:string|number){
|
|
10
|
-
super("length")
|
|
11
|
-
value = value || "0px";
|
|
12
|
-
if(!isNaN(value as number)) value = Math.round(value as number) + "px";
|
|
13
|
-
this.length = Number((value as string).match(floatRegex)[0]);
|
|
14
|
-
this.units = (value as string).split(floatRegex)[1] || "px";
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
toString(){
|
|
18
|
-
return `${this.length}${this.units}`;
|
|
19
|
-
}
|
|
20
|
-
}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { floatRegex } from "../../dot-util";
|
|
2
|
-
import CssDataType from "./css-data-type";
|
|
3
|
-
import CssLength from "./css-length";
|
|
4
|
-
|
|
5
|
-
export default class CssPercentage extends CssLength{
|
|
6
|
-
length: number;
|
|
7
|
-
constructor (value:string|number){
|
|
8
|
-
super(isNaN(value as any) ? value : `${value}%`)
|
|
9
|
-
}
|
|
10
|
-
}
|
|
@@ -1,220 +0,0 @@
|
|
|
1
|
-
import { isF } from "../../dot-util";
|
|
2
|
-
import {AllAngleUnits, AllLengthUnits} from "../unit-function-tables";
|
|
3
|
-
import { BasicCommonValues, ITransformationContext, NumericAngle, NumericLength } from "../i-dotcss";
|
|
4
|
-
import dotcss from "../style-builder";
|
|
5
|
-
import CssAngle from "./css-angle";
|
|
6
|
-
import CssDataType from "./css-data-type";
|
|
7
|
-
import CssLength from "./css-length";
|
|
8
|
-
|
|
9
|
-
export default class CssTransform extends CssDataType{
|
|
10
|
-
|
|
11
|
-
transformations: Array<{
|
|
12
|
-
transformation: string,
|
|
13
|
-
args: Array<any>
|
|
14
|
-
}>;
|
|
15
|
-
finalMatrix: number[];
|
|
16
|
-
simpleValue: string;
|
|
17
|
-
|
|
18
|
-
constructor(value){
|
|
19
|
-
super("transformation");
|
|
20
|
-
this.transformations = [];
|
|
21
|
-
//this.finalMatrix = [1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1];
|
|
22
|
-
if(typeof value == "string"){
|
|
23
|
-
//this.value = "matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1)";
|
|
24
|
-
this.simpleValue = value;
|
|
25
|
-
return; //?? Need a better way to handle this.
|
|
26
|
-
}
|
|
27
|
-
else if(isF(value)){
|
|
28
|
-
value(this);
|
|
29
|
-
}
|
|
30
|
-
//var ret = {value: value, type: cssDataType};
|
|
31
|
-
|
|
32
|
-
// The old way of doing transformations was that it was set up to accept a big string. The added complexity was to support animations.
|
|
33
|
-
// The new way is to use the builder. But I might want to come back and revisit the idea of accepting a string.
|
|
34
|
-
// For instance, a use case of accepting a string for a transformation is if we're trying to animate transforms generated by another framework.
|
|
35
|
-
// Not sure if that's realistic.
|
|
36
|
-
// var transformations = value.split(/\)\s*/); transformations.pop(); for(var i = 0; i < transformations.length; i++) transformations[i] += ")";
|
|
37
|
-
// // var cos = Math.cos; var sin = Math.sin; var tan = Math.tan;
|
|
38
|
-
// for(var t = 0; t < transformations.length; t++){
|
|
39
|
-
// var trans = transformations[t].trim();
|
|
40
|
-
// var parts = trans.split(/[\(\)]/);
|
|
41
|
-
// var func = parts[0]
|
|
42
|
-
// var p = parts[1].split(/\s*,\s*/)
|
|
43
|
-
|
|
44
|
-
// if(this[func]){
|
|
45
|
-
// this[func].apply(this, p);
|
|
46
|
-
// }
|
|
47
|
-
// }
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
toString(){
|
|
51
|
-
if(this.simpleValue){
|
|
52
|
-
return this.simpleValue;
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
var ret = "";
|
|
56
|
-
for(var i = 0; i < this.transformations.length; i++){
|
|
57
|
-
var t = this.transformations[i];
|
|
58
|
-
ret += t.transformation + "(";
|
|
59
|
-
for(var k = 0; k < t.args.length; k++){
|
|
60
|
-
ret += t.args[k].toString() + ",";
|
|
61
|
-
}
|
|
62
|
-
ret = ret.substring(0, ret.length - 1);
|
|
63
|
-
ret += ") ";
|
|
64
|
-
}
|
|
65
|
-
return ret.trim();
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
private appendTransformString(transformation, args){
|
|
69
|
-
//this.finalMatrix = dotcss.matrixMultiply3D(m, this.finalMatrix);
|
|
70
|
-
this.transformations.push({transformation: transformation, args: args});
|
|
71
|
-
/*if(this.value.length > 0) this.value += " ";
|
|
72
|
-
this.value += transformation + "(";
|
|
73
|
-
for(var i = 0; i < args.length; i++){
|
|
74
|
-
this.value += args[i] + (i == args.length -1 ? "" : ",")
|
|
75
|
-
}*/
|
|
76
|
-
return this;
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
matrix3d(a1:number, b1:number, c1:number, d1:number, a2:number, b2:number, c2:number, d2:number, a3:number, b3:number, c3:number, d3:number, a4:number, b4:number, c4:number, d4:number){
|
|
80
|
-
// Why do we need this again?
|
|
81
|
-
// Going to try to remove it to see what breaks. I believe it's used for animations.
|
|
82
|
-
// this.finalMatrix = dotcss.matrixMultiply3D(arguments as unknown as Array<number>, this.finalMatrix);
|
|
83
|
-
return this.appendTransformString("matrix3d", arguments);
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
matrix(a: number, b: number, c: number, d: number, tx: number, ty: number){
|
|
87
|
-
return this.appendTransformString("matrix", arguments);
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
translate(x:NumericLength,y?:NumericLength){
|
|
91
|
-
return arguments.length == 1
|
|
92
|
-
? this.appendTransformString("translate", [new CssLength(x)]/*, [1,0,0,0,0,1,0,0,0,0,1,0,x,0,0,1]*/)
|
|
93
|
-
: this.appendTransformString("translate", [new CssLength(x), new CssLength(y)]/*, [1,0,0,0,0,1,0,0,0,0,1,0,x,y,0,1]*/);
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
translate3d(x:NumericLength,y:NumericLength,z:NumericLength){
|
|
97
|
-
return this.appendTransformString("translate3d", [new CssLength(x), new CssLength(y), new CssLength(z)]/*, [1,0,0,0,0,1,0,0,0,0,1,0,x,y,z,1]*/);
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
translateX(x:NumericLength){
|
|
101
|
-
|
|
102
|
-
//var x = dotcss.lengthToPx(p[0]);
|
|
103
|
-
//this.updateValue("translateX", [new CssLength(x + "px")]/*, [1,0,0,0,0,1,0,0,0,0,1,0,x,0,0,1]*/);
|
|
104
|
-
return this.appendTransformString("translateX", [new CssLength(x)]);
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
translateY(y:NumericLength){
|
|
108
|
-
//var y = dotcss.lengthToPx(p[0]);
|
|
109
|
-
//this.updateValue("translateY", [new CssLength(y + "px")]/*, [1,0,0,0,0,1,0,0,0,0,1,0,0,y,0,1]*/);
|
|
110
|
-
return this.appendTransformString("translateY", [new CssLength(y)]);
|
|
111
|
-
}
|
|
112
|
-
|
|
113
|
-
translateZ(z:NumericLength){
|
|
114
|
-
|
|
115
|
-
//var z = dotcss.lengthToPx(p[0]);
|
|
116
|
-
//this.updateValue("translateZ", [new CssLength(z + "px")]/*, [1,0,0,0,0,1,0,0,0,0,1,0,0,0,z,1]*/);
|
|
117
|
-
return this.appendTransformString("translateZ", [new CssLength(z)]);
|
|
118
|
-
}
|
|
119
|
-
|
|
120
|
-
scale(x:number,y?:number){
|
|
121
|
-
return this.appendTransformString("scale", [x,y??1]/*, [x,0,0,0,0,y,0,0,0,0,1,0,0,0,0,1]*/);
|
|
122
|
-
}
|
|
123
|
-
|
|
124
|
-
scale3d(x:number,y:number,z:number){
|
|
125
|
-
return this.appendTransformString("scale3d", [x,y,z]/*, [p[0],0,0,0,0,p[1],0,0,0,0,p[2],0,0,0,0,1]*/);
|
|
126
|
-
}
|
|
127
|
-
|
|
128
|
-
scaleX(x:number){
|
|
129
|
-
//this.updateValue("scaleX", p/*, [p[0],0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]*/);
|
|
130
|
-
return this.appendTransformString("scaleX", [x]);
|
|
131
|
-
}
|
|
132
|
-
|
|
133
|
-
scaleY(y:number){
|
|
134
|
-
//this.updateValue("scaleY", p/*, [1,0,0,0,0,p[0],0,0,0,0,1,0,0,0,0,1]*/);
|
|
135
|
-
return this.appendTransformString("scaleY", [y]);
|
|
136
|
-
}
|
|
137
|
-
|
|
138
|
-
scaleZ(z:number){
|
|
139
|
-
//this.updateValue("scaleZ", p/*, [1,0,0,0,0,1,0,0,0,0,p[0],0,0,0,0,1]*/);
|
|
140
|
-
return this.appendTransformString("scaleZ", [z]);
|
|
141
|
-
}
|
|
142
|
-
|
|
143
|
-
rotate(x: NumericAngle){
|
|
144
|
-
// var a = Util.angleToDeg(x);
|
|
145
|
-
return this.appendTransformString("rotate", [new CssAngle(x)]/*, [Math.cos(a),Math.sin(a),0,0,-Math.sin(axxx),Math.cos(axxx),0,0,0,0,1,0,0,0,0,1]*/);
|
|
146
|
-
}
|
|
147
|
-
|
|
148
|
-
rotate3d(x: number, y: number, z: number, a: NumericAngle){
|
|
149
|
-
|
|
150
|
-
return this.appendTransformString("rotate3d", [x, y, z, new CssAngle(a)]/*,
|
|
151
|
-
[1+C*(x*x-1), z*S+x*y*C, -y*S+x*z*C, 0,
|
|
152
|
-
-z*S+x*y*C, 1+C*(y*y-1), x*S+y*z*C, 0,
|
|
153
|
-
y*S+x*z*C, -x*S+y*z*C, 1+C*(z*z-1), 0,
|
|
154
|
-
0, 0, 0, 1]*/
|
|
155
|
-
);
|
|
156
|
-
}
|
|
157
|
-
|
|
158
|
-
// Manually create the 4 unit functions for rotate 3d since the arg structure is mixed.
|
|
159
|
-
rotate3dDeg(x: number, y: number, z: number, a: number){return this.rotate3d(x,y,z,a);}
|
|
160
|
-
rotate3dRad(x: number, y: number, z: number, a: number){return this.rotate3d(x,y,z,`${a}rad`);}
|
|
161
|
-
rotate3dGrad(x: number, y: number, z: number, a: number){return this.rotate3d(x,y,z,`${a}grad`);}
|
|
162
|
-
rotate3dTurn(x: number, y: number, z: number, a: number){return this.rotate3d(x,y,z,`${a}turn`);}
|
|
163
|
-
|
|
164
|
-
rotateX(x: NumericAngle){
|
|
165
|
-
return this.appendTransformString("rotateX", [new CssAngle(x)]/*, [1,0,0,0,0,Math.cos(axx),Math.sin(axx),0,0,-Math.sin(axx),Math.cos(axx),0,0,0,0,1]*/);
|
|
166
|
-
}
|
|
167
|
-
|
|
168
|
-
rotateY(y: NumericAngle){
|
|
169
|
-
return this.appendTransformString("rotateY", [new CssAngle(y)]);
|
|
170
|
-
}
|
|
171
|
-
|
|
172
|
-
rotateZ(z: NumericAngle){
|
|
173
|
-
return this.appendTransformString("rotateZ", [new CssAngle(z)]);
|
|
174
|
-
}
|
|
175
|
-
|
|
176
|
-
skew(x: NumericAngle, y?: NumericAngle){
|
|
177
|
-
|
|
178
|
-
return arguments.length == 1
|
|
179
|
-
? this.appendTransformString("skew", [new CssAngle(x)]/*, [1,0,0,0,Math.tan(axxxxx),1,0,0,0,0,1,0,0,0,0,1]*/)
|
|
180
|
-
: this.appendTransformString("skew", [new CssAngle(x), new CssAngle(y)]/*, [1,Math.tan(axxxy),0,0,Math.tan(axxxx),1,0,0,0,0,1,0,0,0,0,1]*/);
|
|
181
|
-
}
|
|
182
|
-
|
|
183
|
-
skewX(x: NumericAngle){
|
|
184
|
-
return this.appendTransformString("skewX", [new CssAngle(x)]);
|
|
185
|
-
}
|
|
186
|
-
|
|
187
|
-
skewY(y: NumericAngle){
|
|
188
|
-
return this.appendTransformString("skewY", [new CssAngle(y)]);
|
|
189
|
-
}
|
|
190
|
-
|
|
191
|
-
perspective(d: NumericLength){
|
|
192
|
-
return this.appendTransformString("perspective", [new CssLength(d)]/*, [1,0,0,0,0,1,0,0,0,0,1,0,0,0,dotcss.formatNumberValue(-1 / d),1]*/);
|
|
193
|
-
}
|
|
194
|
-
}
|
|
195
|
-
|
|
196
|
-
// Extend the above with special length and degree functions.
|
|
197
|
-
|
|
198
|
-
const lengthFuncs = "translate|translate3d|translateX|translateY|translateZ|perspective".split("|");
|
|
199
|
-
const angleFuncs = "rotate|rotateX|rotateY|rotateZ|skew|skewX|skewY".split("|");
|
|
200
|
-
|
|
201
|
-
for(let i = 0; i < lengthFuncs.length; i++){
|
|
202
|
-
let F = lengthFuncs[i];
|
|
203
|
-
for(let u = 0; u < AllLengthUnits.length; u++){
|
|
204
|
-
let uu = AllLengthUnits[u];
|
|
205
|
-
CssTransform.prototype[F + (uu.jsName || uu.unit)] = function(){
|
|
206
|
-
for(var i = 0; i < arguments.length; i++) arguments[i] = arguments[i] + uu.unit.toLowerCase();
|
|
207
|
-
return CssTransform.prototype[F].apply(this, arguments);
|
|
208
|
-
}
|
|
209
|
-
}
|
|
210
|
-
}
|
|
211
|
-
for(let i = 0; i < angleFuncs.length; i++){
|
|
212
|
-
let F = angleFuncs[i];
|
|
213
|
-
for(let u = 0; u < AllAngleUnits.length; u++){
|
|
214
|
-
let uu = AllAngleUnits[u];
|
|
215
|
-
CssTransform.prototype[F + (uu.unit)] = function(){
|
|
216
|
-
for(var i = 0; i < arguments.length; i++) arguments[i] = arguments[i] + uu.unit.toLowerCase();
|
|
217
|
-
return CssTransform.prototype[F].apply(this, arguments);
|
|
218
|
-
}
|
|
219
|
-
}
|
|
220
|
-
}
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
import CssDataType from "./css-data-type";
|
|
2
|
-
|
|
3
|
-
export default class CssUrl extends CssDataType{
|
|
4
|
-
url: Array<string>;
|
|
5
|
-
constructor(value){
|
|
6
|
-
super("url");
|
|
7
|
-
this.url = null;
|
|
8
|
-
if(!value || value.length == 0 || (value.length == 1 && value[0] == "" || value[0] == "none" || value[0] == "initial" || value[0] == "inherit")){
|
|
9
|
-
this.url = null;
|
|
10
|
-
}
|
|
11
|
-
else{
|
|
12
|
-
this.url = [];
|
|
13
|
-
for(var i = 0; i < value.length; i++){
|
|
14
|
-
var currentURL = "";
|
|
15
|
-
if(value[i].toLowerCase().indexOf("url") === 0){
|
|
16
|
-
var url = value[i].substring(value[i].indexOf("("), value[i].lastIndexOf(")")).trim();
|
|
17
|
-
if((url.indexOf("\"") && url.lastIndexOf("\"") == url.length - 1) ||
|
|
18
|
-
(url.indexOf("'") && url.lastIndexOf("'") == url.length - 1)){
|
|
19
|
-
url = url.substring(1, url.length - 1);
|
|
20
|
-
}
|
|
21
|
-
this.url.push(url);
|
|
22
|
-
}
|
|
23
|
-
else{
|
|
24
|
-
this.url.push(value[i]);
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
toString(): string{
|
|
31
|
-
if(!this.url) return "none";
|
|
32
|
-
else
|
|
33
|
-
{
|
|
34
|
-
var ret = [];
|
|
35
|
-
for(var i = 0; i < this.url.length; i++){
|
|
36
|
-
ret.push("url(\"" + this.url[i] + "\")");
|
|
37
|
-
}
|
|
38
|
-
return ret.join(", ");
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
}
|