declare module "dommatrix/src/dommatrix" {
|
/**
|
* Creates a new mutable `CSSMatrix` instance given an array of 16/6 floating point values.
|
* This static method invalidates arrays that contain non-number elements.
|
*
|
* If the array has six values, the result is a 2D matrix; if the array has 16 values,
|
* the result is a 3D matrix. Otherwise, a TypeError exception is thrown.
|
*
|
* @param {CSSM.matrix | CSSM.matrix3d} array an `Array` to feed values from.
|
* @return {CSSMatrix} the resulted matrix.
|
*/
|
export function fromArray(array: CSSM.matrix | CSSM.matrix3d): CSSMatrix;
|
/**
|
* Creates a new mutable `CSSMatrix` instance given an existing matrix or a
|
* `DOMMatrix` instance which provides the values for its properties.
|
*
|
* @param {CSSMatrix | DOMMatrix | CSSM.JSONMatrix} m the source matrix to feed values from.
|
* @return {CSSMatrix} the resulted matrix.
|
*/
|
export function fromMatrix(m: CSSMatrix | DOMMatrix | CSSM.JSONMatrix): CSSMatrix;
|
/**
|
* Creates a new mutable `CSSMatrix` given any valid CSS transform string,
|
* or what we call `TransformList`:
|
*
|
* * `matrix(a, b, c, d, e, f)` - valid matrix() transform function
|
* * `matrix3d(m11, m12, m13, ...m44)` - valid matrix3d() transform function
|
* * `translate(tx, ty) rotateX(alpha)` - any valid transform function(s)
|
*
|
* @copyright thednp © 2021
|
*
|
* @param {string} source valid CSS transform string syntax.
|
* @return {CSSMatrix} the resulted matrix.
|
*/
|
export function fromString(source: string): CSSMatrix;
|
/**
|
* Returns an *Array* containing elements which comprise the matrix.
|
* The method can return either the 16 elements or the 6 elements
|
* depending on the value of the `is2D` parameter.
|
*
|
* @param {CSSMatrix | DOMMatrix | CSSM.JSONMatrix} m the source matrix to feed values from.
|
* @param {boolean=} is2D *Array* representation of the matrix
|
* @return {CSSM.matrix | CSSM.matrix3d} an *Array* representation of the matrix
|
*/
|
export function toArray(m: CSSMatrix, is2D?: boolean | undefined): CSSM.matrix | CSSM.matrix3d;
|
/**
|
* Creates a new `CSSMatrix` for the translation matrix and returns it.
|
* This method is equivalent to the CSS `translate3d()` function.
|
*
|
* https://developer.mozilla.org/en-US/docs/Web/CSS/transform-function/translate3d
|
*
|
* @param {number} x the `x-axis` position.
|
* @param {number} y the `y-axis` position.
|
* @param {number} z the `z-axis` position.
|
* @return {CSSMatrix} the resulted matrix.
|
*/
|
export function Translate(x: number, y: number, z: number): CSSMatrix;
|
/**
|
* Creates a new `CSSMatrix` for the rotation matrix and returns it.
|
*
|
* http://en.wikipedia.org/wiki/Rotation_matrix
|
*
|
* @param {number} rx the `x-axis` rotation.
|
* @param {number} ry the `y-axis` rotation.
|
* @param {number} rz the `z-axis` rotation.
|
* @return {CSSMatrix} the resulted matrix.
|
*/
|
export function Rotate(rx: number, ry: number, rz: number): CSSMatrix;
|
/**
|
* Creates a new `CSSMatrix` for the rotation matrix and returns it.
|
* This method is equivalent to the CSS `rotate3d()` function.
|
*
|
* https://developer.mozilla.org/en-US/docs/Web/CSS/transform-function/rotate3d
|
*
|
* @param {number} x the `x-axis` vector length.
|
* @param {number} y the `y-axis` vector length.
|
* @param {number} z the `z-axis` vector length.
|
* @param {number} alpha the value in degrees of the rotation.
|
* @return {CSSMatrix} the resulted matrix.
|
*/
|
export function RotateAxisAngle(x: number, y: number, z: number, alpha: number): CSSMatrix;
|
/**
|
* Creates a new `CSSMatrix` for the scale matrix and returns it.
|
* This method is equivalent to the CSS `scale3d()` function, except it doesn't
|
* accept {x, y, z} transform origin parameters.
|
*
|
* https://developer.mozilla.org/en-US/docs/Web/CSS/transform-function/scale3d
|
*
|
* @param {number} x the `x-axis` scale.
|
* @param {number} y the `y-axis` scale.
|
* @param {number} z the `z-axis` scale.
|
* @return {CSSMatrix} the resulted matrix.
|
*/
|
export function Scale(x: number, y: number, z: number): CSSMatrix;
|
/**
|
* Creates a new `CSSMatrix` for the shear of both the `x-axis` and`y-axis`
|
* matrix and returns it. This method is equivalent to the CSS `skew()` function.
|
*
|
* https://developer.mozilla.org/en-US/docs/Web/CSS/transform-function/skew
|
*
|
* @param {number} angleX the X-angle in degrees.
|
* @param {number} angleY the Y-angle in degrees.
|
* @return {CSSMatrix} the resulted matrix.
|
*/
|
export function Skew(angleX: number, angleY: number): CSSMatrix;
|
/**
|
* Creates a new `CSSMatrix` for the shear of the `x-axis` rotation matrix and
|
* returns it. This method is equivalent to the CSS `skewX()` function.
|
*
|
* https://developer.mozilla.org/en-US/docs/Web/CSS/transform-function/skewX
|
*
|
* @param {number} angle the angle in degrees.
|
* @return {CSSMatrix} the resulted matrix.
|
*/
|
export function SkewX(angle: number): CSSMatrix;
|
/**
|
* Creates a new `CSSMatrix` for the shear of the `y-axis` rotation matrix and
|
* returns it. This method is equivalent to the CSS `skewY()` function.
|
*
|
* https://developer.mozilla.org/en-US/docs/Web/CSS/transform-function/skewY
|
*
|
* @param {number} angle the angle in degrees.
|
* @return {CSSMatrix} the resulted matrix.
|
*/
|
export function SkewY(angle: number): CSSMatrix;
|
/**
|
* Creates a new `CSSMatrix` resulted from the multiplication of two matrixes
|
* and returns it. Both matrixes are not changed.
|
*
|
* @param {CSSMatrix | DOMMatrix | CSSM.JSONMatrix} m1 the first matrix.
|
* @param {CSSMatrix | DOMMatrix | CSSM.JSONMatrix} m2 the second matrix.
|
* @return {CSSMatrix} the resulted matrix.
|
*/
|
export function Multiply(m1: CSSMatrix | DOMMatrix | CSSM.JSONMatrix, m2: CSSMatrix | DOMMatrix | CSSM.JSONMatrix): CSSMatrix;
|
export default CSSMatrix;
|
/**
|
* Creates and returns a new `DOMMatrix` compatible instance
|
* with equivalent instance.
|
* @class CSSMatrix
|
*
|
* @author thednp <https://github.com/thednp/DOMMatrix/>
|
* @see https://developer.mozilla.org/en-US/docs/Web/API/DOMMatrix
|
*/
|
class CSSMatrix {
|
/**
|
* @constructor
|
* @param {any} args accepts all parameter configurations:
|
* * valid CSS transform string,
|
* * CSSMatrix/DOMMatrix instance,
|
* * a 6/16 elements *Array*.
|
*/
|
constructor(...args: any);
|
a: number;
|
b: number;
|
c: number;
|
d: number;
|
e: number;
|
f: number;
|
m11: number;
|
m12: number;
|
m13: number;
|
m14: number;
|
m21: number;
|
m22: number;
|
m23: number;
|
m24: number;
|
m31: number;
|
m32: number;
|
m33: number;
|
m34: number;
|
m41: number;
|
m42: number;
|
m43: number;
|
m44: number;
|
/**
|
* A `Boolean` whose value is `true` if the matrix is the identity matrix. The identity
|
* matrix is one in which every value is 0 except those on the main diagonal from top-left
|
* to bottom-right corner (in other words, where the offsets in each direction are equal).
|
*
|
* @return {boolean} the current property value
|
*/
|
get isIdentity(): boolean;
|
/**
|
* A `Boolean` flag whose value is `true` if the matrix was initialized as a 2D matrix
|
* and `false` if the matrix is 3D.
|
*
|
* @return {boolean} the current property value
|
*/
|
get is2D(): boolean;
|
/**
|
* The `setMatrixValue` method replaces the existing matrix with one computed
|
* in the browser. EG: `matrix(1,0.25,-0.25,1,0,0)`
|
*
|
* The method accepts any *Array* values, the result of
|
* `DOMMatrix` instance method `toFloat64Array()` / `toFloat32Array()` calls
|
* or `CSSMatrix` instance method `toArray()`.
|
*
|
* This method expects valid *matrix()* / *matrix3d()* string values, as well
|
* as other transform functions like *translateX(10px)*.
|
*
|
* @param {string | CSSM.matrix | CSSM.matrix3d | CSSMatrix | DOMMatrix | CSSM.JSONMatrix} source
|
* @return {CSSMatrix} the matrix instance
|
*/
|
setMatrixValue(source: string | CSSM.matrix | CSSM.matrix3d | CSSMatrix | DOMMatrix | CSSM.JSONMatrix): CSSMatrix;
|
/**
|
* Returns a *Float32Array* containing elements which comprise the matrix.
|
* The method can return either the 16 elements or the 6 elements
|
* depending on the value of the `is2D` parameter.
|
*
|
* @param {boolean=} is2D *Array* representation of the matrix
|
* @return {Float32Array} an *Array* representation of the matrix
|
*/
|
toFloat32Array(is2D?: boolean | undefined): Float32Array;
|
/**
|
* Returns a *Float64Array* containing elements which comprise the matrix.
|
* The method can return either the 16 elements or the 6 elements
|
* depending on the value of the `is2D` parameter.
|
*
|
* @param {boolean=} is2D *Array* representation of the matrix
|
* @return {Float64Array} an *Array* representation of the matrix
|
*/
|
toFloat64Array(is2D?: boolean | undefined): Float64Array;
|
/**
|
* Creates and returns a string representation of the matrix in `CSS` matrix syntax,
|
* using the appropriate `CSS` matrix notation.
|
*
|
* matrix3d *matrix3d(m11, m12, m13, m14, m21, ...)*
|
* matrix *matrix(a, b, c, d, e, f)*
|
*
|
* @return {string} a string representation of the matrix
|
*/
|
toString(): string;
|
/**
|
* Returns a JSON representation of the `CSSMatrix` instance, a standard *Object*
|
* that includes `{a,b,c,d,e,f}` and `{m11,m12,m13,..m44}` properties as well
|
* as the `is2D` & `isIdentity` properties.
|
*
|
* The result can also be used as a second parameter for the `fromMatrix` static method
|
* to load values into another matrix instance.
|
*
|
* @return {CSSM.JSONMatrix} an *Object* with all matrix values.
|
*/
|
toJSON(): CSSM.JSONMatrix;
|
/**
|
* The Multiply method returns a new CSSMatrix which is the result of this
|
* matrix multiplied by the passed matrix, with the passed matrix to the right.
|
* This matrix is not modified.
|
*
|
* @param {CSSMatrix | DOMMatrix | CSSM.JSONMatrix} m2 CSSMatrix
|
* @return {CSSMatrix} The resulted matrix.
|
*/
|
multiply(m2: CSSMatrix | DOMMatrix | CSSM.JSONMatrix): CSSMatrix;
|
/**
|
* The translate method returns a new matrix which is this matrix post
|
* multiplied by a translation matrix containing the passed values. If the z
|
* component is undefined, a 0 value is used in its place. This matrix is not
|
* modified.
|
*
|
* @param {number} x X component of the translation value.
|
* @param {number=} y Y component of the translation value.
|
* @param {number=} z Z component of the translation value.
|
* @return {CSSMatrix} The resulted matrix
|
*/
|
translate(x: number, y?: number | undefined, z?: number | undefined): CSSMatrix;
|
/**
|
* The scale method returns a new matrix which is this matrix post multiplied by
|
* a scale matrix containing the passed values. If the z component is undefined,
|
* a 1 value is used in its place. If the y component is undefined, the x
|
* component value is used in its place. This matrix is not modified.
|
*
|
* @param {number} x The X component of the scale value.
|
* @param {number=} y The Y component of the scale value.
|
* @param {number=} z The Z component of the scale value.
|
* @return {CSSMatrix} The resulted matrix
|
*/
|
scale(x: number, y?: number | undefined, z?: number | undefined): CSSMatrix;
|
/**
|
* The rotate method returns a new matrix which is this matrix post multiplied
|
* by each of 3 rotation matrices about the major axes, first X, then Y, then Z.
|
* If the y and z components are undefined, the x value is used to rotate the
|
* object about the z axis, as though the vector (0,0,x) were passed. All
|
* rotation values are in degrees. This matrix is not modified.
|
*
|
* @param {number} rx The X component of the rotation, or Z if Y and Z are null.
|
* @param {number=} ry The (optional) Y component of the rotation value.
|
* @param {number=} rz The (optional) Z component of the rotation value.
|
* @return {CSSMatrix} The resulted matrix
|
*/
|
rotate(rx: number, ry?: number | undefined, rz?: number | undefined): CSSMatrix;
|
/**
|
* The rotateAxisAngle method returns a new matrix which is this matrix post
|
* multiplied by a rotation matrix with the given axis and `angle`. The right-hand
|
* rule is used to determine the direction of rotation. All rotation values are
|
* in degrees. This matrix is not modified.
|
*
|
* @param {number} x The X component of the axis vector.
|
* @param {number} y The Y component of the axis vector.
|
* @param {number} z The Z component of the axis vector.
|
* @param {number} angle The angle of rotation about the axis vector, in degrees.
|
* @return {CSSMatrix} The resulted matrix
|
*/
|
rotateAxisAngle(x: number, y: number, z: number, angle: number): CSSMatrix;
|
/**
|
* Specifies a skew transformation along the `x-axis` by the given angle.
|
* This matrix is not modified.
|
*
|
* @param {number} angle The angle amount in degrees to skew.
|
* @return {CSSMatrix} The resulted matrix
|
*/
|
skewX(angle: number): CSSMatrix;
|
/**
|
* Specifies a skew transformation along the `y-axis` by the given angle.
|
* This matrix is not modified.
|
*
|
* @param {number} angle The angle amount in degrees to skew.
|
* @return {CSSMatrix} The resulted matrix
|
*/
|
skewY(angle: number): CSSMatrix;
|
/**
|
* Specifies a skew transformation along both the `x-axis` and `y-axis`.
|
* This matrix is not modified.
|
*
|
* @param {number} angleX The X-angle amount in degrees to skew.
|
* @param {number} angleY The angle amount in degrees to skew.
|
* @return {CSSMatrix} The resulted matrix
|
*/
|
skew(angleX: number, angleY: number): CSSMatrix;
|
/**
|
* Transforms a specified point using the matrix, returning a new
|
* Tuple *Object* comprising of the transformed point.
|
* Neither the matrix nor the original point are altered.
|
*
|
* The method is equivalent with `transformPoint()` method
|
* of the `DOMMatrix` constructor.
|
*
|
* @copyright thednp © 2021
|
*
|
* @param {CSSM.PointTuple | DOMPoint} v Tuple or DOMPoint
|
* @return {CSSM.PointTuple} the resulting Tuple
|
*/
|
transformPoint(v: CSSM.PointTuple | DOMPoint): CSSM.PointTuple;
|
/**
|
* Transforms a specified vector using the matrix, returning a new
|
* {x,y,z,w} Tuple *Object* comprising the transformed vector.
|
* Neither the matrix nor the original vector are altered.
|
*
|
* @param {CSSM.PointTuple} t Tuple with `{x,y,z,w}` components
|
* @return {CSSM.PointTuple} the resulting Tuple
|
*/
|
transform(t: CSSM.PointTuple): CSSM.PointTuple;
|
}
|
}
|
declare module "dommatrix/src/version" {
|
export default Version;
|
/**
|
* A global namespace for library version.
|
* @type {string}
|
*/
|
const Version: string;
|
}
|
declare module "dommatrix/types/more/dommatrix" {
|
export { default as CSSMatrix } from "dommatrix/src/dommatrix";
|
export { default as Version } from "dommatrix/src/version";
|
}
|