blob: 22b3eca88790c87cda80cb472e80d054596cc557 [file] [log] [blame]
// Copyright 2013 The Flutter Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
import 'dart:js_interop';
import 'package:js/js.dart';
import 'dom.dart';
@JS()
@staticInterop
class SVGElement extends DomElement {}
SVGElement createSVGElement(String tag) =>
domDocument.createElementNS('http://www.w3.org/2000/svg', tag)
as SVGElement;
@JS()
@staticInterop
class SVGGraphicsElement extends SVGElement {}
@JS()
@staticInterop
class SVGSVGElement extends SVGGraphicsElement {}
SVGSVGElement createSVGSVGElement() {
final SVGElement el = createSVGElement('svg');
el.setAttribute('version', '1.1');
return el as SVGSVGElement;
}
extension SVGSVGElementExtension on SVGSVGElement {
external SVGNumber createSVGNumber();
external SVGAnimatedLength? get height;
external SVGAnimatedLength? get width;
}
@JS()
@staticInterop
class SVGClipPathElement extends SVGGraphicsElement {}
SVGClipPathElement createSVGClipPathElement() =>
domDocument.createElementNS('http://www.w3.org/2000/svg', 'clipPath')
as SVGClipPathElement;
@JS()
@staticInterop
class SVGDefsElement extends SVGGraphicsElement {}
SVGDefsElement createSVGDefsElement() =>
domDocument.createElementNS('http://www.w3.org/2000/svg', 'defs')
as SVGDefsElement;
@JS()
@staticInterop
class SVGGeometryElement extends SVGGraphicsElement {}
@JS()
@staticInterop
class SVGPathElement extends SVGGeometryElement {}
SVGPathElement createSVGPathElement() =>
domDocument.createElementNS('http://www.w3.org/2000/svg', 'path')
as SVGPathElement;
@JS()
@staticInterop
class SVGFilterElement extends SVGElement {}
extension SVGFilterElementExtension on SVGFilterElement {
external SVGAnimatedEnumeration? get filterUnits;
external SVGAnimatedLength? get height;
external SVGAnimatedLength? get width;
external SVGAnimatedLength? get x;
external SVGAnimatedLength? get y;
}
SVGFilterElement createSVGFilterElement() =>
domDocument.createElementNS('http://www.w3.org/2000/svg', 'filter')
as SVGFilterElement;
@JS()
@staticInterop
class SVGAnimatedLength {}
extension SVGAnimatedLengthExtension on SVGAnimatedLength {
external SVGLength? get baseVal;
}
@JS()
@staticInterop
class SVGLength {}
extension SVGLengthExtension on SVGLength {
@JS('valueAsString')
external set _valueAsString(JSString? value);
set valueAsString(String? value) => _valueAsString = value?.toJS;
@JS('newValueSpecifiedUnits')
external JSVoid _newValueSpecifiedUnits(JSNumber unitType, JSNumber valueInSpecifiedUnits);
void newValueSpecifiedUnits(int unitType, num valueInSpecifiedUnits) =>
_newValueSpecifiedUnits(unitType.toJS, valueInSpecifiedUnits.toJS);
}
const int svgLengthTypeNumber = 1;
@JS()
@staticInterop
class SVGAnimatedEnumeration {}
extension SVGAnimatedEnumerationExtenson on SVGAnimatedEnumeration {
@JS('baseVal')
external set _baseVal(JSNumber? value);
set baseVal(int? value) => _baseVal = value?.toJS;
}
@JS()
@staticInterop
class SVGFEColorMatrixElement extends SVGElement {}
extension SVGFEColorMatrixElementExtension on SVGFEColorMatrixElement {
external SVGAnimatedEnumeration? get type;
external SVGAnimatedString? get result;
external SVGAnimatedNumberList? get values;
}
SVGFEColorMatrixElement createSVGFEColorMatrixElement() =>
domDocument.createElementNS('http://www.w3.org/2000/svg', 'feColorMatrix')
as SVGFEColorMatrixElement;
@JS()
@staticInterop
class SVGFEFloodElement extends SVGElement {}
extension SVGFEFloodElementExtension on SVGFEFloodElement {
external SVGAnimatedString? get result;
}
SVGFEFloodElement createSVGFEFloodElement() =>
domDocument.createElementNS('http://www.w3.org/2000/svg', 'feFlood')
as SVGFEFloodElement;
@JS()
@staticInterop
class SVGFEBlendElement extends SVGElement {}
extension SVGFEBlendElementExtension on SVGFEBlendElement {
external SVGAnimatedString? get in1;
external SVGAnimatedString? get in2;
external SVGAnimatedEnumeration? get mode;
}
SVGFEBlendElement createSVGFEBlendElement() =>
domDocument.createElementNS('http://www.w3.org/2000/svg', 'feBlend')
as SVGFEBlendElement;
@JS()
@staticInterop
class SVGFEImageElement extends SVGElement {}
extension SVGFEImageElementExtension on SVGFEImageElement {
external SVGAnimatedLength? get height;
external SVGAnimatedLength? get width;
external SVGAnimatedString? get result;
external SVGAnimatedLength? get x;
external SVGAnimatedLength? get y;
external SVGAnimatedString? get href;
}
SVGFEImageElement createSVGFEImageElement() =>
domDocument.createElementNS('http://www.w3.org/2000/svg', 'feImage')
as SVGFEImageElement;
@JS()
@staticInterop
class SVGFECompositeElement extends SVGElement {}
SVGFECompositeElement createSVGFECompositeElement() =>
domDocument.createElementNS('http://www.w3.org/2000/svg', 'feComposite')
as SVGFECompositeElement;
extension SVGFEBlendCompositeExtension on SVGFECompositeElement {
external SVGAnimatedString? get in1;
external SVGAnimatedString? get in2;
external SVGAnimatedNumber? get k1;
external SVGAnimatedNumber? get k2;
external SVGAnimatedNumber? get k3;
external SVGAnimatedNumber? get k4;
external SVGAnimatedEnumeration? get operator;
external SVGAnimatedString? get result;
}
@JS()
@staticInterop
class SVGAnimatedString {}
extension SVGAnimatedStringExtension on SVGAnimatedString {
@JS('baseVal')
external set _baseVal(JSString? value);
set baseVal(String? value) => _baseVal = value?.toJS;
}
@JS()
@staticInterop
class SVGAnimatedNumber {}
extension SVGAnimatedNumberExtension on SVGAnimatedNumber {
@JS('baseVal')
external set _baseVal(JSNumber? value);
set baseVal(num? value) => _baseVal = value?.toJS;
}
@JS()
@staticInterop
class SVGAnimatedNumberList {}
extension SVGAnimatedNumberListExtension on SVGAnimatedNumberList {
external SVGNumberList? get baseVal;
}
@JS()
@staticInterop
class SVGNumberList {}
extension SVGNumberListExtension on SVGNumberList {
external SVGNumber appendItem(SVGNumber newItem);
}
@JS()
@staticInterop
class SVGNumber {}
extension SVGNumberExtension on SVGNumber {
@JS('value')
external set _value(JSNumber? value);
set value(num? v) => _value = v?.toJS;
}