blob: 6f5f12bd6b8c3f80d076ae6e178c5950f072f74e [file] [log] [blame]
// Copyright (c) 2024, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
//
// API docs from [MDN Web Docs](https://developer.mozilla.org/en-US/docs/Web).
// Attributions and copyright licensing by Mozilla Contributors is licensed
// under [CC-BY-SA 2.5](https://creativecommons.org/licenses/by-sa/2.5/.
// Generated from Web IDL definitions.
@JS()
library;
import 'dart:js_interop';
/// The **`DOMPointReadOnly`** interface specifies the coordinate and
/// perspective fields used by [DOMPoint] to define a 2D or 3D point in a
/// coordinate system.
///
/// There are two ways to create a new `DOMPointReadOnly` instance. First, you
/// can use its constructor, passing in the values of the parameters for each
/// dimension and, optionally, the perspective:
///
/// ```js
/// /* 2D */
/// const point2D = new DOMPointReadOnly(50, 50);
///
/// /* 3D */
/// const point3D = new DOMPointReadOnly(50, 50, 25);
///
/// /* 3D with perspective */
/// const point3DPerspective = new DOMPointReadOnly(100, 100, 100, 1.0);
/// ```
///
/// The other option is to use the static [DOMPointReadOnly.fromPoint_static]
/// method:
///
/// ```js
/// const point = DOMPointReadOnly.fromPoint({ x: 100, y: 100, z: 50, w: 1.0 });
/// ```
///
/// ---
///
/// API documentation sourced from
/// [MDN Web Docs](https://developer.mozilla.org/en-US/docs/Web/API/DOMPointReadOnly).
extension type DOMPointReadOnly._(JSObject _) implements JSObject {
external factory DOMPointReadOnly([
num x,
num y,
num z,
num w,
]);
external static DOMPointReadOnly fromPoint([DOMPointInit other]);
external DOMPoint matrixTransform([DOMMatrixInit matrix]);
/// The [DOMPointReadOnly] method
/// `toJSON()` returns an object giving the
/// form of the point object.
external JSObject toJSON();
external num get x;
external num get y;
external num get z;
external num get w;
}
/// A **`DOMPoint`** object represents a 2D or 3D point in a coordinate system;
/// it includes values for the coordinates in up to three dimensions, as well as
/// an optional perspective value. `DOMPoint` is based on [DOMPointReadOnly] but
/// allows its properties' values to be changed.
///
/// In general, a positive `x` component represents a position to the right of
/// the origin, a positive `y` component is downward from the origin, and a
/// positive `z` component extends outward from the screen (in other words,
/// toward the user).
///
/// ---
///
/// API documentation sourced from
/// [MDN Web Docs](https://developer.mozilla.org/en-US/docs/Web/API/DOMPoint).
extension type DOMPoint._(JSObject _) implements DOMPointReadOnly, JSObject {
external factory DOMPoint([
num x,
num y,
num z,
num w,
]);
external static DOMPoint fromPoint([DOMPointInit other]);
external set x(num value);
external num get x;
external set y(num value);
external num get y;
external set z(num value);
external num get z;
external set w(num value);
external num get w;
}
extension type DOMPointInit._(JSObject _) implements JSObject {
external factory DOMPointInit({
num x,
num y,
num z,
num w,
});
external set x(num value);
external num get x;
external set y(num value);
external num get y;
external set z(num value);
external num get z;
external set w(num value);
external num get w;
}
/// The **`DOMRectReadOnly`** interface specifies the standard properties (also
/// used by [DOMRect]) to define a rectangle whose properties are immutable.
///
/// ---
///
/// API documentation sourced from
/// [MDN Web Docs](https://developer.mozilla.org/en-US/docs/Web/API/DOMRectReadOnly).
extension type DOMRectReadOnly._(JSObject _) implements JSObject {
external factory DOMRectReadOnly([
num x,
num y,
num width,
num height,
]);
external static DOMRectReadOnly fromRect([DOMRectInit other]);
external JSObject toJSON();
external num get x;
external num get y;
external num get width;
external num get height;
external num get top;
external num get right;
external num get bottom;
external num get left;
}
/// A **`DOMRect`** describes the size and position of a rectangle.
///
/// The type of box represented by the `DOMRect` is specified by the method or
/// property that returned it. For example, [Range.getBoundingClientRect]
/// specifies the rectangle that bounds the content of the range using such
/// objects.
///
/// It inherits from its parent, [DOMRectReadOnly].
///
/// ---
///
/// API documentation sourced from
/// [MDN Web Docs](https://developer.mozilla.org/en-US/docs/Web/API/DOMRect).
extension type DOMRect._(JSObject _) implements DOMRectReadOnly, JSObject {
external factory DOMRect([
num x,
num y,
num width,
num height,
]);
external static DOMRect fromRect([DOMRectInit other]);
external set x(num value);
external num get x;
external set y(num value);
external num get y;
external set width(num value);
external num get width;
external set height(num value);
external num get height;
}
extension type DOMRectInit._(JSObject _) implements JSObject {
external factory DOMRectInit({
num x,
num y,
num width,
num height,
});
external set x(num value);
external num get x;
external set y(num value);
external num get y;
external set width(num value);
external num get width;
external set height(num value);
external num get height;
}
extension type DOMRectList._(JSObject _) implements JSObject {
external DOMRect? item(int index);
external int get length;
}
/// A `DOMQuad` is a collection of four `DOMPoint`s defining the corners of an
/// arbitrary quadrilateral. Returning `DOMQuad`s lets `getBoxQuads()` return
/// accurate information even when arbitrary 2D or 3D transforms are present. It
/// has a handy `bounds` attribute returning a `DOMRectReadOnly` for those cases
/// where you just want an axis-aligned bounding rectangle.
///
/// ---
///
/// API documentation sourced from
/// [MDN Web Docs](https://developer.mozilla.org/en-US/docs/Web/API/DOMQuad).
extension type DOMQuad._(JSObject _) implements JSObject {
external factory DOMQuad([
DOMPointInit p1,
DOMPointInit p2,
DOMPointInit p3,
DOMPointInit p4,
]);
external static DOMQuad fromRect([DOMRectInit other]);
external static DOMQuad fromQuad([DOMQuadInit other]);
external DOMRect getBounds();
external JSObject toJSON();
external DOMPoint get p1;
external DOMPoint get p2;
external DOMPoint get p3;
external DOMPoint get p4;
}
extension type DOMQuadInit._(JSObject _) implements JSObject {
external factory DOMQuadInit({
DOMPointInit p1,
DOMPointInit p2,
DOMPointInit p3,
DOMPointInit p4,
});
external set p1(DOMPointInit value);
external DOMPointInit get p1;
external set p2(DOMPointInit value);
external DOMPointInit get p2;
external set p3(DOMPointInit value);
external DOMPointInit get p3;
external set p4(DOMPointInit value);
external DOMPointInit get p4;
}
/// The **`DOMMatrixReadOnly`** interface represents a read-only 4×4 matrix,
/// suitable for 2D and 3D operations. The [DOMMatrix] interface — which is
/// based upon `DOMMatrixReadOnly`—adds
/// [mutability](https://en.wikipedia.org/wiki/Immutable_object), allowing you
/// to alter the matrix after creating it.
///
/// This interface should be available inside
/// [web workers](https://developer.mozilla.org/en-US/docs/Web/API/Web_Workers_API),
/// though some implementations doesn't allow it yet.
///
/// ---
///
/// API documentation sourced from
/// [MDN Web Docs](https://developer.mozilla.org/en-US/docs/Web/API/DOMMatrixReadOnly).
extension type DOMMatrixReadOnly._(JSObject _) implements JSObject {
external factory DOMMatrixReadOnly([JSAny init]);
external static DOMMatrixReadOnly fromMatrix([DOMMatrixInit other]);
external static DOMMatrixReadOnly fromFloat32Array(JSFloat32Array array32);
external static DOMMatrixReadOnly fromFloat64Array(JSFloat64Array array64);
/// The `translate()` method of the [DOMMatrixReadOnly] interface
/// creates a new matrix being the result of the original matrix with a
/// translation applied.
external DOMMatrix translate([
num tx,
num ty,
num tz,
]);
/// The **`scale()`** method of the
/// [DOMMatrixReadOnly] interface creates a new matrix being the result of the
/// original matrix with a scale transform applied.
external DOMMatrix scale([
num scaleX,
num scaleY,
num scaleZ,
num originX,
num originY,
num originZ,
]);
external DOMMatrix scaleNonUniform([
num scaleX,
num scaleY,
]);
external DOMMatrix scale3d([
num scale,
num originX,
num originY,
num originZ,
]);
external DOMMatrix rotate([
num rotX,
num rotY,
num rotZ,
]);
external DOMMatrix rotateFromVector([
num x,
num y,
]);
external DOMMatrix rotateAxisAngle([
num x,
num y,
num z,
num angle,
]);
external DOMMatrix skewX([num sx]);
external DOMMatrix skewY([num sy]);
external DOMMatrix multiply([DOMMatrixInit other]);
/// The `flipX()` method of the [DOMMatrixReadOnly] interface creates a new
/// matrix being the result of the original matrix flipped about the x-axis.
external DOMMatrix flipX();
external DOMMatrix flipY();
external DOMMatrix inverse();
external DOMPoint transformPoint([DOMPointInit point]);
external JSFloat32Array toFloat32Array();
external JSFloat64Array toFloat64Array();
external JSObject toJSON();
external num get a;
external num get b;
external num get c;
external num get d;
external num get e;
external num get f;
external num get m11;
external num get m12;
external num get m13;
external num get m14;
external num get m21;
external num get m22;
external num get m23;
external num get m24;
external num get m31;
external num get m32;
external num get m33;
external num get m34;
external num get m41;
external num get m42;
external num get m43;
external num get m44;
external bool get is2D;
external bool get isIdentity;
}
/// The **`DOMMatrix`** interface represents 4×4 matrices, suitable for 2D and
/// 3D operations including rotation and translation. It is a mutable version of
/// the [DOMMatrixReadOnly] interface.
///
/// **`WebKitCSSMatrix`** and **`SVGMatrix`** are aliases to **`DOMMatrix`**.
///
/// This interface should be available inside
/// [web workers](https://developer.mozilla.org/en-US/docs/Web/API/Web_Workers_API),
/// though some implementations don't allow it yet.
///
/// ---
///
/// API documentation sourced from
/// [MDN Web Docs](https://developer.mozilla.org/en-US/docs/Web/API/DOMMatrix).
extension type DOMMatrix._(JSObject _) implements DOMMatrixReadOnly, JSObject {
external factory DOMMatrix([JSAny init]);
external static DOMMatrix fromMatrix([DOMMatrixInit other]);
external static DOMMatrix fromFloat32Array(JSFloat32Array array32);
external static DOMMatrix fromFloat64Array(JSFloat64Array array64);
external DOMMatrix multiplySelf([DOMMatrixInit other]);
external DOMMatrix preMultiplySelf([DOMMatrixInit other]);
external DOMMatrix translateSelf([
num tx,
num ty,
num tz,
]);
external DOMMatrix scaleSelf([
num scaleX,
num scaleY,
num scaleZ,
num originX,
num originY,
num originZ,
]);
external DOMMatrix scale3dSelf([
num scale,
num originX,
num originY,
num originZ,
]);
external DOMMatrix rotateSelf([
num rotX,
num rotY,
num rotZ,
]);
external DOMMatrix rotateFromVectorSelf([
num x,
num y,
]);
external DOMMatrix rotateAxisAngleSelf([
num x,
num y,
num z,
num angle,
]);
external DOMMatrix skewXSelf([num sx]);
external DOMMatrix skewYSelf([num sy]);
external DOMMatrix invertSelf();
external DOMMatrix setMatrixValue(String transformList);
external set a(num value);
external num get a;
external set b(num value);
external num get b;
external set c(num value);
external num get c;
external set d(num value);
external num get d;
external set e(num value);
external num get e;
external set f(num value);
external num get f;
external set m11(num value);
external num get m11;
external set m12(num value);
external num get m12;
external set m13(num value);
external num get m13;
external set m14(num value);
external num get m14;
external set m21(num value);
external num get m21;
external set m22(num value);
external num get m22;
external set m23(num value);
external num get m23;
external set m24(num value);
external num get m24;
external set m31(num value);
external num get m31;
external set m32(num value);
external num get m32;
external set m33(num value);
external num get m33;
external set m34(num value);
external num get m34;
external set m41(num value);
external num get m41;
external set m42(num value);
external num get m42;
external set m43(num value);
external num get m43;
external set m44(num value);
external num get m44;
}
extension type DOMMatrix2DInit._(JSObject _) implements JSObject {
external factory DOMMatrix2DInit({
num a,
num b,
num c,
num d,
num e,
num f,
num m11,
num m12,
num m21,
num m22,
num m41,
num m42,
});
external set a(num value);
external num get a;
external set b(num value);
external num get b;
external set c(num value);
external num get c;
external set d(num value);
external num get d;
external set e(num value);
external num get e;
external set f(num value);
external num get f;
external set m11(num value);
external num get m11;
external set m12(num value);
external num get m12;
external set m21(num value);
external num get m21;
external set m22(num value);
external num get m22;
external set m41(num value);
external num get m41;
external set m42(num value);
external num get m42;
}
extension type DOMMatrixInit._(JSObject _)
implements DOMMatrix2DInit, JSObject {
external factory DOMMatrixInit({
num a,
num b,
num c,
num d,
num e,
num f,
num m11,
num m12,
num m21,
num m22,
num m41,
num m42,
num m13,
num m14,
num m23,
num m24,
num m31,
num m32,
num m33,
num m34,
num m43,
num m44,
bool is2D,
});
external set m13(num value);
external num get m13;
external set m14(num value);
external num get m14;
external set m23(num value);
external num get m23;
external set m24(num value);
external num get m24;
external set m31(num value);
external num get m31;
external set m32(num value);
external num get m32;
external set m33(num value);
external num get m33;
external set m34(num value);
external num get m34;
external set m43(num value);
external num get m43;
external set m44(num value);
external num get m44;
external set is2D(bool value);
external bool get is2D;
}