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
'<'(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
}\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
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
targets: Element[];\r
remove(): this;\r
}\r
- interface Container {\r
- clip(): ClipPath;\r
- }\r
\r
// color.js\r
interface ColorLike {\r
b: number;\r
constructor();\r
constructor(color: ColorAlias);\r
-\r
toString(): string;\r
toHex(): string;\r
toRgb(): string;\r
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
\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
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
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
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
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
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
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
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
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
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
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
\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
}\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
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
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
}\r
\r
// pointArray.js\r
- class PointArray extends _Array {\r
+ class PointArray extends SVGArray {\r
constructor();\r
constructor(points: PointArrayAlias);\r
toString(): string;\r
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
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
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
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
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