From 7547a6a45818bcfefd545da4697196b81bd8da5b Mon Sep 17 00:00:00 2001 From: Ulrich-Matthias Schäfer Date: Fri, 3 Apr 2020 18:42:19 +1000 Subject: - fixed `put()` which correctly creates an svgjs object from the passed element now before returning - fixed `parent()` which correctly returns null if direct parent is the document or a document-fragment - fixed `add()` which correctly removes namespaces of non-root svg elements now when added to another svg element (#1086) - fixed `isRoot()` which correctly returns false, if the element is in a document-fragment --- svg.js.d.ts | 58 ++++++++++++---------------------------------------------- 1 file changed, 12 insertions(+), 46 deletions(-) (limited to 'svg.js.d.ts') diff --git a/svg.js.d.ts b/svg.js.d.ts index 24cdc0f..72c6d7d 100644 --- a/svg.js.d.ts +++ b/svg.js.d.ts @@ -309,6 +309,10 @@ declare module "@svgdotjs/svg.js" { type ElementAlias = Dom | Svg | Rect | Line | Polygon | Polyline | Ellipse | ClipPath | Use | Text | Path | TextPath | Circle | G | Gradient | Image | Element + type ElementTypeAlias = typeof Dom | typeof Svg | typeof Rect | typeof Line | typeof Polygon | + typeof Polyline | typeof Ellipse | typeof ClipPath | typeof Use | typeof Text | typeof Path | + typeof TextPath | typeof Circle | typeof G | typeof Gradient | typeof Image | typeof Element + type AttributeReference = "href" | "marker-start" | "marker-mid" | "marker-end" | "mask" | "clip-path" | "filter" | "fill" @@ -896,41 +900,11 @@ declare module "@svgdotjs/svg.js" { cancelImmediate(o: object): void } - // use with parent query - type ParentTypeAlias = typeof Svg | typeof G | typeof A; - - // use with putIn - type ParentClassAlias = Svg | G | A; - /** * Just fancy type alias to refer to css query selector. */ type QuerySelector = string - // cannot really avoid using anonymous any string as typescript does not provide - // runtime type check for example, QuerySelector should contain . or # at least - // Important: this type alias is provided an overview of how value look as a string - type ParentQueryAlias = ParentElement | keyof HTMLElementTagNameMap | ParentTypeAlias | QuerySelector - - type ParentQueryMapping = - T extends Tspan | TextPath ? ParentQueryAlias | TextType | ClipPathType | Text | ClipPath | Dom : - T extends Shape ? ParentQueryAlias | ClipPathType | ClipPath | Dom : - T extends Element ? ParentQueryAlias | Dom : keyof HTMLElementTagNameMap | Dom - - type ParentQueryResultMapping = - T extends Tspan | TextPath ? ParentClassAlias | Text | ClipPath | Dom : - T extends Circle ? ParentClassAlias | Text | ClipPath | Mask | Dom : - T extends Shape ? ParentClassAlias | ClipPath | Dom : ParentClassAlias | Dom - - type PutInMapping = - T extends Svg ? ParentClassAlias | Dom | HTMLElement | string : - T extends Shape ? ParentClassAlias | ClipPath | string : - T extends Element ? ParentClassAlias | string : HTMLElement | string - - type PutInResultMapping = - T extends Svg ? ParentTypeAlias | Dom : - T extends Element ? ParentTypeAlias : Dom - class Dom extends EventTarget { node: HTMLElement | SVGElement; type: string; @@ -955,26 +929,16 @@ declare module "@svgdotjs/svg.js" { last(): Element; matches(selector: string): boolean; /** - * Get the parent of current element. The input query can be given with string, object type or none (undefined). - * The input is vary based on the implement in hierarchy of SVG.JS element or dom. - * 1. If The input is a string, the string value must be a valid HTML element tag name or svg tag name. e.g "svg" or "g" or "div" - * 2. If the given input is an object type then only SVG.JS object type is accept. e.g Dom, Svg or G - * 3. if the given input query is undefined then the element will return the closest parent in Dom hierarchy - * - * For more information see ParentQueryMapping. - * @param type can be either string, object type or undefined. + * Finds the closest ancestor which matches the string or is of passed type. If nothing is passed, the parent is returned + * @param type can be either string, svg.js object or undefined. */ - parent(type?: ParentQueryMapping): ParentQueryResultMapping; + parent(type?: ElementTypeAlias | QuerySelector): Dom | null; put(element: Element, i?: number): Element; /** - * Put the element into the given parent element. The input parent element can be vary base on the class implementation. - * 1. If the current class is a Dom then parent input is only accept a valid HTML element or a valid string id of HTML element - * 2. If the current class is an Svg then parent input can only Dom, Svg, G, A, a valid HTML element and a valid string id of HTML element - * - * For more information see PutInMapping. - * @param parent an object of SVG.JS Dom or implement container or a string id or a valid HTML element object. + * Put the element into the given parent element and returns the parent element + * @param parent The parent in which the current element is inserted */ - putIn(parent: PutInMapping): PutInResultMapping; + putIn(parent: ElementAlias | Node | QuerySelector): Dom; remove(): this; removeElement(element: Element): this; @@ -1457,6 +1421,8 @@ declare module "@svgdotjs/svg.js" { ref(x: string | number, y: string | number): this; update(block: (marker: Marker) => void): this; toString(): string; + orient(orientation: 'auto' | 'auto-start-reverse' | number | Number): this; + orient(): string; } // mask.js class Mask extends Container { -- cgit v1.2.3