]> source.dussan.org Git - svg.js.git/commitdiff
fix SVGNumber and SVGArray 957/head
authorKeith Bentley <Keith.Bentley@bentley.com>
Tue, 12 Feb 2019 14:38:26 +0000 (09:38 -0500)
committerKeith Bentley <Keith.Bentley@bentley.com>
Tue, 12 Feb 2019 14:38:26 +0000 (09:38 -0500)
svg.js.d.ts

index 92680ef47f86341844fc658d8297afb25457eecb..03d19017685c2fc04f53bba7863e310b6b0f9255 100644 (file)
@@ -18,6 +18,8 @@ declare module "@svgdotjs/svg.js" {
     function invent(config: Object): any;\r
     function adopt(node: HTMLElement): Element;\r
     function prepare(element: HTMLElement): void;\r
+    function getClass(name: string): Element;\r
+\r
     let utils: {\r
         map(array: any[], block: Function): any;\r
         filter(array: any[], block: Function): any;\r
@@ -59,24 +61,25 @@ declare module "@svgdotjs/svg.js" {
         '<'(pos: number): number;\r
     }\r
     let regex: {\r
-        numberAndUnit: RegExp;\r
+        delimiter: RegExp;\r
+        dots: RegExp;\r
         hex: RegExp;\r
-        rgb: RegExp;\r
-        reference: RegExp;\r
-        transforms: RegExp;\r
-        whitespace: RegExp;\r
-        isHex: RegExp;\r
-        isRgb: RegExp;\r
-        isCss: RegExp;\r
+        hyphen: RegExp;\r
         isBlank: RegExp;\r
+        isCss: RegExp;\r
+        isHex: RegExp;\r
+        isImage: RegExp;\r
         isNumber: RegExp;\r
+        isPathLetter: RegExp;\r
         isPercent: RegExp;\r
-        isImage: RegExp;\r
-        delimiter: RegExp;\r
-        hyphen: RegExp;\r
+        isRgb: RegExp;\r
+        numberAndUnit: RegExp;\r
+        numbersWithDots: RegExp;\r
         pathLetters: RegExp;\r
-        isPathLetter: RegExp;\r
-        dots: RegExp;\r
+        reference: RegExp;\r
+        rgb: RegExp;\r
+        transforms: RegExp;\r
+        whitespace: RegExp;\r
     }\r
 \r
     interface LinkedHTMLElement extends HTMLElement {\r
@@ -84,38 +87,49 @@ declare module "@svgdotjs/svg.js" {
     }\r
 \r
     // array.js\r
-    type ArrayAlias = _Array | number[] | string;\r
+    type ArrayAlias = SVGArray | number[] | string;\r
 \r
-    class _Array {\r
+    class SVGArray extends Array {\r
         constructor(array?: ArrayAlias, fallback?: number[]);\r
         value: number[];\r
         morph(array: number[]): this;\r
         settle(): number[];\r
-        at(pos: NumberAlias): _Array;\r
+        at(pos: NumberAlias): SVGArray;\r
         toString(): string;\r
         valueOf(): number[];\r
         parse(array: ArrayAlias): number[];\r
         reverse(): this;\r
-        clone(): _Array;\r
+        clone(): SVGArray;\r
     }\r
 \r
     class Dom {\r
         constructor(element: string, inherit?: any);\r
-        words(text: string): this;\r
-        element(element: string, inherit?: Object): this;\r
+        add(element: Element, i?: number): Element;\r
         addTo(parent: Dom): this;\r
-        putIn(parent: Dom): Dom;\r
         children(): Element[];\r
-        add(element: Element, i?: number): Element;\r
-        put(element: Element, i?: number): Element;\r
+        clear(): this;\r
+        clone(): this;\r
+        each(block: (index: number, children: Element[]) => void, deep?: boolean): this;\r
+        element(element: string, inherit?: Object): this;\r
+        first(): Element;\r
+        get(i: number): Element;\r
+        getEventHolder(): LinkedHTMLElement;\r
+        getEventTarget(): LinkedHTMLElement;\r
         has(element: Element): boolean;\r
+        id(id?: string): string;\r
         index(element: Element): number;\r
-        get(i: number): Element;\r
-        first(): Element;\r
         last(): Element;\r
-        each(block: (index: number, children: Element[]) => void, deep?: boolean): this;\r
+        matches(selector: string): any;\r
+        parent(type?: ParentTypeAlias): Dom | HTMLElement;\r
+        put(element: Element, i?: number): Element;\r
+        putIn(parent: Dom): Dom;\r
+        remove(): this;\r
         removeElement(element: Element): this;\r
-        clear(): this;\r
+        replace(element: Dom): Dom;\r
+        svg(): string;\r
+        toString(): string;\r
+        words(text: string): this;\r
+        writeDataToDom(): this;\r
     }\r
 \r
     // boxes.js\r
@@ -132,10 +146,14 @@ declare module "@svgdotjs/svg.js" {
         y2: number;\r
         merge(box: Box): Box;\r
         transform(m: Matrix): Box\r
-        Box(source: string);\r
-        Box(source: []);\r
-        Box(source: object);\r
-        Box(x: number, y: number, width: number, height: number);\r
+        constructor(source: string);\r
+        constructor(source: []);\r
+        constructor(source: object);\r
+        constructor(x: number, y: number, width: number, height: number);\r
+        addOffset(): this;\r
+        toString(): string;\r
+        toArray(): number[];\r
+        isNulled(): boolean;\r
     }\r
 \r
     // clip.js\r
@@ -144,9 +162,6 @@ declare module "@svgdotjs/svg.js" {
         targets: Element[];\r
         remove(): this;\r
     }\r
-    interface Container {\r
-        clip(): ClipPath;\r
-    }\r
 \r
     // color.js\r
     interface ColorLike {\r
@@ -163,7 +178,6 @@ declare module "@svgdotjs/svg.js" {
         b: number;\r
         constructor();\r
         constructor(color: ColorAlias);\r
-\r
         toString(): string;\r
         toHex(): string;\r
         toRgb(): string;\r
@@ -180,9 +194,40 @@ declare module "@svgdotjs/svg.js" {
         height: number;\r
     }\r
 \r
-    class Container extends Element { }\r
+    class Container extends Element {\r
+        circle(size?: number): Circle;\r
+        clip(): ClipPath;\r
+        ellipse(width?: number, height?: number): Ellipse;\r
+        flatten(parent: Dom, depth?: number): this;\r
+        gradient(type: string, block?: (stop: Gradient) => void): Gradient;\r
+        group(): G;\r
+        image(): Image;\r
+        image(href: string, size?: number): Image;\r
+        image(href: string, width?: number, height?: number): Image;\r
+        line(points: PointArrayAlias): Line;\r
+        line(x1: number, y1: number, x2: number, y2: number): Line;\r
+        link(url: string): A;\r
+        marker(width?: number, height?: number, block?: (marker: Marker) => void): Marker\r
+        mask(): Mask;\r
+        path(): Path;\r
+        path(d: PathArrayAlias): Path;\r
+        pattern(width?: number, height?: number, block?: (pattern: Pattern) => void): Pattern\r
+        plain(text: string): Text;\r
+        polygon(points: PointArrayAlias): Polygon;\r
+        polyline(points: PointArrayAlias): PolyLine;\r
+        rect(width?: number, height?: number): Rect;\r
+        text(block: (tspan: Tspan) => void): Text;\r
+        text(text: string): Text;\r
+        ungroup(parent: Dom, depth?: number): this;\r
+        use(element: Element | string, file?: string): Use;\r
+        viewbox(): ViewBox;\r
+        viewbox(viewbox: ViewBoxLike): this;\r
+        viewbox(x: number, y: number, width: number, height: number): this;\r
+    }\r
 \r
-    class Defs extends Container { }\r
+    class Defs extends Container {\r
+        marker(width?: number, height?: number, block?: (marker: Marker) => void): Marker\r
+    }\r
 \r
     class Svg extends Container {\r
         constructor();\r
@@ -198,6 +243,8 @@ declare module "@svgdotjs/svg.js" {
 \r
     type ParentTypeAlias = string | Svg | G;\r
     class Element extends Dom {\r
+        clipper: ClipPath;\r
+        masker: Mask;\r
         node: LinkedHTMLElement;\r
         type: string;\r
 \r
@@ -217,7 +264,6 @@ declare module "@svgdotjs/svg.js" {
         center(x: number, y: number): this;\r
         classes(): string[];\r
         click(cb: Function): this;\r
-        clipper: ClipPath;\r
         clipWith(element: Element): this;\r
         clone(): this;\r
         css(): Object;\r
@@ -261,7 +307,6 @@ declare module "@svgdotjs/svg.js" {
         is(cls: any): boolean;\r
         linkTo(url: (link: A) => void): A;\r
         linkTo(url: string): A;\r
-        masker: Mask;\r
         maskWith(element: Element): this;\r
         maskWith(mask: Mask): this;\r
         matches(selector: string): boolean;\r
@@ -281,7 +326,6 @@ declare module "@svgdotjs/svg.js" {
         on(event: string, cb: Function, context?: Object): this;\r
         opacity(): number;\r
         opacity(o: number): this;\r
-        parent(type?: ParentTypeAlias): Dom | HTMLElement;\r
         parents(): Dom[];\r
         point(): Point;\r
         point(position: { x: number, y: number }): Point;\r
@@ -310,12 +354,9 @@ declare module "@svgdotjs/svg.js" {
         stop(jumpToEnd: boolean, clearQueue: boolean): Animation;\r
         stroke(color: string): this;\r
         stroke(stroke: StrokeData): this;\r
-        svg(): string;\r
-        svg(svg: string): this;\r
         tbox(): Box;\r
         toggleClass(name: string): this;\r
         toParent(parent: Dom): this;\r
-        toString(): string;\r
         toSvg(): this;\r
         touchcancel(cb: Function): this;\r
         touchend(cb: Function): this;\r
@@ -332,7 +373,6 @@ declare module "@svgdotjs/svg.js" {
         visible(): boolean;\r
         width(): number;\r
         width(width: NumberAlias): this;\r
-        writeDataToDom(): this;\r
         x(): number;\r
         x(x: NumberAlias): this;\r
         y(): number;\r
@@ -361,10 +401,6 @@ declare module "@svgdotjs/svg.js" {
         ry(): this;\r
         radius(x: number, y?: number): this;\r
     }\r
-    interface Container {\r
-        circle(size?: number): Circle;\r
-        ellipse(width?: number, height?: number): Ellipse;\r
-    }\r
 \r
     // TODO finishs FX\r
     interface StopProperties {\r
@@ -390,15 +426,11 @@ declare module "@svgdotjs/svg.js" {
         to(x: number, y: number): this;\r
         radius(x: number, y?: number): this;\r
     }\r
-    interface Container {\r
-        gradient(type: string, block?: (stop: Gradient) => void): Gradient;\r
-    }\r
 \r
     // group.js\r
     class G extends Container {\r
         gbox(): Box;\r
     }\r
-    interface Container { group(): G; }\r
 \r
     // hyperlink.js\r
     class A extends Container {\r
@@ -407,19 +439,11 @@ declare module "@svgdotjs/svg.js" {
         target(target: string): this;\r
         target(): string;\r
     }\r
-    interface Container {\r
-        link(url: string): A;\r
-    }\r
 \r
     // image.js\r
     class Image extends Shape {\r
         load(url?: string): this;\r
     }\r
-    interface Container {\r
-        image(): Image;\r
-        image(href: string, size?: number): Image;\r
-        image(href: string, width?: number, height?: number): Image;\r
-    }\r
 \r
     // line.js\r
     interface ArrayPoint extends Array<number> { }\r
@@ -431,10 +455,8 @@ declare module "@svgdotjs/svg.js" {
         plot(x1: number, y1: number, x2: number, y2: number): this;\r
         move(x: number, y: number): this;\r
         size(width?: number, height?: number): this;\r
-    }\r
-    interface Container {\r
-        line(points: PointArrayAlias): Line;\r
-        line(x1: number, y1: number, x2: number, y2: number): Line;\r
+        marker(position: string, width?: number, height?: number, block?: (marker: Marker) => void): Marker;\r
+        marker(position: string, marker: Marker): Marker;\r
     }\r
 \r
     // marker.js\r
@@ -443,34 +465,10 @@ declare module "@svgdotjs/svg.js" {
         update(block: (marker: Marker) => void): this;\r
         toString(): string;\r
     }\r
-    interface Container {\r
-        marker(width?: number, height?: number, block?: (marker: Marker) => void): Marker\r
-    }\r
-    interface Defs {\r
-        marker(width?: number, height?: number, block?: (marker: Marker) => void): Marker\r
-    }\r
-    interface Line {\r
-        marker(position: string, width?: number, height?: number, block?: (marker: Marker) => void): Marker;\r
-        marker(position: string, marker: Marker): Marker;\r
-    }\r
-    interface Polyline {\r
-        marker(position: string, width?: number, height?: number, block?: (marker: Marker) => void): Marker;\r
-        marker(position: string, marker: Marker): Marker;\r
-    }\r
-    interface Polygon {\r
-        marker(position: string, width?: number, height?: number, block?: (marker: Marker) => void): Marker;\r
-        marker(position: string, marker: Marker): Marker;\r
-    }\r
-    interface Path {\r
-        marker(position: string, width?: number, height?: number, block?: (marker: Marker) => void): Marker;\r
-        marker(position: string, marker: Marker): Marker;\r
-    }\r
-\r
     // mask.js\r
     class Mask extends Container {\r
         targets: Element[];\r
     }\r
-    interface Container { mask(): Mask; }\r
 \r
     // matrix.js\r
     interface MatrixExtract {\r
@@ -503,7 +501,7 @@ declare module "@svgdotjs/svg.js" {
 \r
     type MatrixAlias = MatrixLike | number[] | Element | string;\r
 \r
-    class Matrix {\r
+    class Matrix implements MatrixLike {\r
         constructor();\r
         constructor(source: MatrixAlias);\r
         constructor(a: number, b: number, c: number, d: number, e: number, f: number);\r
@@ -533,24 +531,24 @@ declare module "@svgdotjs/svg.js" {
     }\r
 \r
     // number.js\r
-    class _Number {\r
+    class SVGNumber {\r
         constructor();\r
-        constructor(value: _Number);\r
+        constructor(value: SVGNumber);\r
         constructor(value: string);\r
         constructor(value: number, unit?: any);\r
         toString(): string;\r
         toJSON(): Object;\r
         valueOf(): number;\r
-        plus(number: number): _Number;\r
-        minus(number: number): _Number;\r
-        times(number: number): _Number;\r
-        divide(number: number): _Number;\r
-        to(unit: string): _Number;\r
+        plus(number: number): SVGNumber;\r
+        minus(number: number): SVGNumber;\r
+        times(number: number): SVGNumber;\r
+        divide(number: number): SVGNumber;\r
+        to(unit: string): SVGNumber;\r
         morph(number: any): this;\r
-        at(pos: number): _Number;\r
+        at(pos: number): SVGNumber;\r
     }\r
 \r
-    type NumberAlias = _Number | number | string;\r
+    type NumberAlias = SVGNumber | number | string;\r
 \r
     // path.js\r
     interface PathArrayPoint extends Array<number | string> { }\r
@@ -560,14 +558,14 @@ declare module "@svgdotjs/svg.js" {
         morphArray: PathArray;\r
         array(): PathArray;\r
         plot(d: PathArrayAlias): this;\r
-    }\r
-    interface Container {\r
-        path(): Path;\r
-        path(d: PathArrayAlias): Path;\r
+        marker(position: string, width?: number, height?: number, block?: (marker: Marker) => void): Marker;\r
+        marker(position: string, marker: Marker): Marker;\r
+        length(): number;\r
+        pointAt(length: number): { x: number, y: number };\r
     }\r
 \r
     // pathArray.js\r
-    class PathArray extends _Array {\r
+    class PathArray extends SVGArray {\r
         constructor();\r
         constructor(d: PathArrayAlias);\r
         move(x: number, y: number): this;\r
@@ -584,21 +582,16 @@ declare module "@svgdotjs/svg.js" {
         update(block: (pattern: Pattern) => void): this;\r
         toString(): string;\r
     }\r
-    interface Container {\r
-        pattern(width?: number, height?: number, block?: (pattern: Pattern) => void): Pattern\r
-    }\r
 \r
     // point.js\r
     class Point {\r
+        x: number;\r
+        y: number;\r
         constructor();\r
         constructor(position: ArrayPoint);\r
         constructor(point: Point);\r
         constructor(position: { x: number, y: number });\r
         constructor(x: number, y: number);\r
-\r
-        x: number;\r
-        y: number;\r
-\r
         clone(): Point;\r
         morph(point: Point): this;\r
         at(pos: number): Point;\r
@@ -607,7 +600,7 @@ declare module "@svgdotjs/svg.js" {
     }\r
 \r
     // pointArray.js\r
-    class PointArray extends _Array {\r
+    class PointArray extends SVGArray {\r
         constructor();\r
         constructor(points: PointArrayAlias);\r
         toString(): string;\r
@@ -636,40 +629,32 @@ declare module "@svgdotjs/svg.js" {
         plot(p: PointArrayAlias): this;\r
         move(x: number, y: number): this;\r
         size(width: number, height: number): this;\r
-    }\r
-    interface Container {\r
-        polyline(points: PointArrayAlias): PolyLine;\r
+        marker(position: string, width?: number, height?: number, block?: (marker: Marker) => void): Marker;\r
+        marker(position: string, marker: Marker): Marker;\r
     }\r
     class Polygon extends Shape implements poly {\r
         array(): PointArray;\r
         plot(p: PointArrayAlias): this;\r
         move(x: number, y: number): this;\r
         size(width: number, height: number): this;\r
+        marker(position: string, width?: number, height?: number, block?: (marker: Marker) => void): Marker;\r
+        marker(position: string, marker: Marker): Marker;\r
     }\r
-    interface Container {\r
-        polygon(points: PointArrayAlias): Polygon;\r
-    }\r
-\r
     // rect.js\r
     class Rect extends Shape {\r
         radius(x: number, y?: number): this;\r
     }\r
-    interface Container {\r
-        rect(width?: number, height?: number): Rect;\r
-    }\r
 \r
     // set.js\r
-    class List extends _Array {\r
+    class List extends SVGArray {\r
         constructor(members?: Element[]);\r
         each(block: (index: number, members: Element[]) => void): this;\r
     }\r
-    interface Container { set(members?: Element[]); }\r
 \r
     // shape.js\r
     class Shape extends Element {\r
     }\r
 \r
-\r
     // sugar.js\r
     interface StrokeData {\r
         color?: string;\r
@@ -681,10 +666,7 @@ declare module "@svgdotjs/svg.js" {
         dasharray?: string;\r
         dashoffset?: number;\r
     }\r
-    interface Path {\r
-        length(): number;\r
-        pointAt(length: number): { x: number, y: number };\r
-    }\r
+\r
     interface FontData {\r
         family?: string;\r
         size?: NumberAlias;\r
@@ -717,11 +699,6 @@ declare module "@svgdotjs/svg.js" {
         textPath(): Element;\r
     }\r
 \r
-    interface Container {\r
-        text(text: string): Text;\r
-        text(block: (tspan: Tspan) => void): Text;\r
-        plain(text: string): Text;\r
-    }\r
     class Tspan extends Shape {\r
         constructor();\r
         text(): string;\r
@@ -759,29 +736,11 @@ declare module "@svgdotjs/svg.js" {
         f?: number;\r
         scale?: number;\r
     }\r
-    class Transformation {\r
-        constructor(...transform: Transform[]);\r
-        constructor(source: Transform, inversed?: boolean);\r
-        at(pos: number): Matrix;\r
-        undo(transform: Transform): this\r
-    }\r
-    class Translate extends Transformation { constructor() }\r
-    class Rotate extends Transformation { constructor() }\r
-    class Scale extends Transformation { constructor() }\r
-    class Skew extends Transformation { constructor() }\r
-\r
-    interface Container {\r
-        ungroup(parent: Dom, depth?: number): this;\r
-        flatten(parent: Dom, depth?: number): this;\r
-    }\r
 \r
     // use.js\r
     class Use extends Shape {\r
         element(element: string, file?: string): this;\r
     }\r
-    interface Container {\r
-        use(element: Element | string, file?: string): Use;\r
-    }\r
 \r
     // viewbox.js\r
     type ViewBoxAlias = ViewBoxLike | number[] | string | Element;\r
@@ -799,48 +758,35 @@ declare module "@svgdotjs/svg.js" {
         morph(x: number, y: number, width: number, height: number): ViewBox;\r
         at(pos: number): ViewBox;\r
     }\r
-    interface Container {\r
-        viewbox(): ViewBox;\r
-        viewbox(x: number, y: number, width: number, height: number): this;\r
-        viewbox(viewbox: ViewBoxLike): this;\r
-    }\r
 \r
     interface Animation {\r
-        stop(): Animation;\r
-        finish(): Animation;\r
-        pause(): Animation;\r
-        play(): Animation;\r
-        reverse(reversed?: boolean): Animation;\r
-\r
+        after(cb: () => void): Animation;\r
+        attr(): object;\r
         attr(name: string, value: any, namespace?: string): Animation;\r
-        attr(obj: Object): Animation;\r
         attr(name: string): any;\r
-        attr(): object;\r
-\r
-        viewbox(x: number, y: number, w: number, h: number): Animation;\r
-\r
-        move(x: number, y: number, anchor?: boolean): Animation;\r
-        dmove(x: number, y: number): Animation;\r
-        x(x: number, anchor?: boolean): Animation;\r
-        y(y: number, anchor?: boolean): Animation;\r
-\r
+        attr(obj: Object): Animation;\r
         center(x: number, y: number, anchor?: boolean): Animation;\r
         cx(x: number, anchor?: boolean): Animation;\r
         cy(y: number, anchor?: boolean): Animation;\r
-\r
-        size(w: number, h: number, anchor?: boolean): Animation;\r
-        during(cb: (pos: number) => void): Animation;\r
-        to(value: number): Animation;\r
-        after(cb: () => void): Animation;\r
-\r
         delay(delayMS: number): Animation;\r
-\r
+        dmove(x: number, y: number): Animation;\r
+        during(cb: (pos: number) => void): Animation;\r
+        finish(): Animation;\r
+        move(x: number, y: number, anchor?: boolean): Animation;\r
+        pause(): Animation;\r
+        play(): Animation;\r
+        reverse(reversed?: boolean): Animation;\r
         rotate(degrees: number, cx?: number, cy?: number): Animation;\r
-        skew(skewX: number, skewY?: number, cx?: number, cy?: number): Animation;\r
         scale(scaleX: number, scaleY?: number, cx?: number, cy?: number): Animation;\r
-        translate(x: number, y: number): Animation;\r
+        size(w: number, h: number, anchor?: boolean): Animation;\r
+        skew(skewX: number, skewY?: number, cx?: number, cy?: number): Animation;\r
+        stop(): Animation;\r
+        to(value: number): Animation;\r
         transform(t: Transform, relative?: boolean): Animation;\r
-\r
+        translate(x: number, y: number): Animation;\r
+        viewbox(x: number, y: number, w: number, h: number): Animation;\r
+        x(x: number, anchor?: boolean): Animation;\r
+        y(y: number, anchor?: boolean): Animation;\r
         // TODO style, etc, bbox...\r
     }\r
 }
\ No newline at end of file