]> source.dussan.org Git - svg.js.git/commitdiff
applied fixes from 2.x branch
authorUlrich-Matthias Schäfer <ulima.ums@googlemail.com>
Sat, 1 Dec 2018 17:39:37 +0000 (18:39 +0100)
committerUlrich-Matthias Schäfer <ulima.ums@googlemail.com>
Sat, 1 Dec 2018 17:39:37 +0000 (18:39 +0100)
CHANGELOG.md
README.md
src/elements/Dom.js
svg.js.d.ts

index e56424524bc312b5944664ab139886aa04f833c1..11f15c89adeb009c80ca51e6c9332e63b1ffc48b 100644 (file)
@@ -15,9 +15,7 @@ The document follows the conventions described in [“Keep a CHANGELOG”](http:
 - added `SVG.HTMLNode` which is the object wrapped around html nodes to put something in them
 - added `dispatch()` method on `SVG.Element` which returns the dispatched event for event cancelation (#550)
 - added `isRoot()` on `SVG.Doc` (#809)
-- added `random` option and `randomize()` method to `SVG.Color` -> __TODO!__
 - added a linter during the npm build process
-- added `npm build:dev` to let you develop without getting too annoyed
 - added `beziere()` and `steps()` to generate easing functions
 - added `insertAfter()` and `insertBefore`
 - added `SVG.Style` which can be created with `style()` or `fontface()` (#517)
@@ -89,9 +87,6 @@ The document follows the conventions described in [“Keep a CHANGELOG”](http:
 - `Image` callback passes normal `load` event instead of custom object (#931)
 - renamed `Doc` to `Svg` and `doc()` to `root` (and `toDoc()/toRoot()`) (#932)
 
-### Fixed
-- fixed a bug in clipping and masking where empty nodes persists after removal -> __TODO!__
-- fixed a bug in IE11 with `mouseenter` and `mouseleave` -> __TODO!__
 
 ## [2.6.2] - 2017-06-05
 
index d0d7fdf1828363fcf883e2ac8f83b70b8fbd281d..29dc14bd4de930f99261487444b5868a88bf6392 100644 (file)
--- a/README.md
+++ b/README.md
@@ -11,20 +11,25 @@ SVG.js is licensed under the terms of the MIT License.
 
 ## Installation
 
-#### Bower:
+#### Npm:
 
-`bower install svg.js`
+`npm install svg.js`
 
-#### Node:
+#### Yarn:
 
-`npm install svg.js`
+`yarn add svg.js`
+
+
+#### Bower:
+
+`bower install svg.js`
 
 #### Cdnjs:
 
 [https://cdnjs.com/libraries/svg.js](https://cdnjs.com/libraries/svg.js)
 
 ## Documentation
-Check [https://svgdotjs.github.io](https://svgdotjs.github.io/) to learn more.
+Check [svgjs.com](https://svgjs.com) to learn more.
 
 [![Donate](https://img.shields.io/badge/Donate-PayPal-green.svg)](https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=pay%40woutfierens.com&lc=US&item_name=SVG.JS&currency_code=EUR&bn=PP-DonationsBF%3Abtn_donate_74x21.png%3ANonHostedGuest)
 
@@ -40,12 +45,6 @@ You'll now have all the dev dependencies installed, and you'll be ready to build
 
 This will build svg.js and make a distribution in the `/dist` folder. While developing, this may not be so convenient as the build will fail if you have any linting errors, refer to the [standard coding styleguide](https://standardjs.com/) for style we use, linters are available for most popular text editors as well.
 
-However, because we were too nice to put you through the pain of always having to work with a linter, we added a gentle mode that you can use by running:
-
-    npm run build:dev
-
-This will only warn you about linting errors and give you useful feedback about possible errors you may have in your code (but this is no substitute for tests). Please make sure that **before making any pull requests**, you pass all of our tests and can build with `npm run build` first.
-
 ### Testing
 
 This will set up everything. While you are working, you should make sure your changes pass all of our tests, so just run:
@@ -60,7 +59,7 @@ You can run performance tests by making a new benchmarks, look in the `/bench` f
 
 ### Playgrounds
 
-If you would like a simple sandbox that you can use
+If you would like a simple sandbox that you can use, take a look into the sandbox folder.
 
 ## Pull Requests
 
index ff33d46f32ab0504528bace7f88c2160a368e0f8..45a41ca0710c6c157c816e8f254d9e5e792e4fcb 100644 (file)
@@ -156,8 +156,9 @@ export default class Dom extends EventTarget {
     if (!type) return parent
 
     // loop trough ancestors if type is given
-    while (parent && parent.node instanceof globals.window.SVGElement) { // FIXME: That shouldnt be neccessary
+    while (parent) { // FIXME: That shouldnt be neccessary
       if (typeof type === 'string' ? parent.matches(type) : parent instanceof type) return parent
+      if (!parent.node.parentNode || parent.node.parentNode.nodeName === '#document' || parent.node.parentNode.nodeName === '#document-fragment') return null // #759, #720
       parent = adopt(parent.node.parentNode)
     }
   }
index f87f8316e7e82df90c299f50143f7f1133c803b7..05206b326850e0366854a01f10705bedada9220a 100644 (file)
@@ -44,7 +44,7 @@ declare namespace svgjs {
 \r
     // array.js\r
     type ArrayAlias = _Array | number[] | string;\r
-    \r
+\r
     interface _Array {\r
         new (array?: ArrayAlias, fallback?: number[]): _Array;\r
         value: number[];\r
@@ -93,7 +93,7 @@ declare namespace svgjs {
         merge(box: Box): Box;\r
         transform(m: Matrix): Box\r
     }\r
-    \r
+\r
     export interface BBox extends Box {\r
         new (element?: Element): BBox;\r
     }\r
@@ -105,7 +105,7 @@ declare namespace svgjs {
     }\r
     interface Element {\r
         bbox(): BBox;\r
-        rbox(): RBox;\r
+        rbox(element?: Element): RBox;\r
         tbox(): TBox;\r
     }\r
     interface Library {\r
@@ -129,16 +129,16 @@ declare namespace svgjs {
         unclip(): this;\r
     }\r
     interface Library { ClipPath: ClipPath; }\r
-    \r
+\r
     // color.js\r
     interface ColorLike {\r
         r: number;\r
         g: number;\r
         b: number;\r
     }\r
-    \r
+\r
     type ColorAlias = string | ColorLike;\r
-    \r
+\r
     export interface Color extends ColorLike{\r
         new (): Color;\r
         new (color: ColorAlias): Color;\r
@@ -159,7 +159,7 @@ declare namespace svgjs {
         width: number;\r
         height:number;\r
     }\r
-    \r
+\r
     export interface Container extends Parent {\r
         new (): Container;\r
     }\r
@@ -221,6 +221,7 @@ declare namespace svgjs {
     }\r
     interface Library { Doc: Doc; }\r
 \r
+    type ParentTypeAlias = string | Doc | Nested | G;\r
     // element.js\r
     export interface Element {\r
         new (): Element;\r
@@ -271,17 +272,20 @@ declare namespace svgjs {
         toggleClass(name: string): this;\r
 \r
         reference(type: string): Element;\r
-\r
+        // Add HTMLElement for Doc inheritance\r
+        parent(type?: ParentTypeAlias): Parent | HTMLElement;\r
+        doc(): Parent;\r
         parents(): Parent[];\r
 \r
         matches(selector: string): boolean;\r
         native(): LinkedHTMLElement;\r
 \r
         svg(svg: string): this;\r
-        \r
-        writeDataToDom(): this,\r
-        setData(data: object): this,\r
-        \r
+        svg(): string;\r
+\r
+        writeDataToDom(): this;\r
+        setData(data: object): this;\r
+\r
         is(cls: any): boolean;\r
     }\r
     interface Library { Element: Element; }\r
@@ -313,9 +317,10 @@ declare namespace svgjs {
     // event.js\r
     interface Element {\r
         on(event: string, cb: Function, context?: Object): this;\r
-        off(event: string, cb: Function, context?: Object): this;\r
+        off(event: string, cb?: Function, context?: Object): this;\r
         fire(event: string, data?: any): this;\r
         fire(event: Event): this;\r
+        event(): Event | CustomEvent;\r
 \r
         click(cb: Function): this;\r
         dblclick(cb: Function): this;\r
@@ -351,7 +356,7 @@ declare namespace svgjs {
         offset?: number;\r
         opacity?: number;\r
     }\r
-    \r
+\r
     // gradient.js\r
     export interface Stop extends Element {\r
         new (): Stop;\r
@@ -422,8 +427,8 @@ declare namespace svgjs {
 \r
     // line.js\r
     interface ArrayPoint extends Array<number> { }\r
-    type PointArrayAlias = ArrayPoint | number[] | PointArray | string;\r
-    \r
+    type PointArrayAlias = ArrayPoint[] | number[] | PointArray | string;\r
+\r
     export interface Line extends Shape {\r
         new (): Line;\r
         array(): PointArray;\r
@@ -504,7 +509,7 @@ declare namespace svgjs {
         f: number;\r
         matrix: Matrix;\r
     }\r
-    \r
+\r
     interface MatrixLike {\r
         a: number;\r
         b: number;\r
@@ -513,9 +518,9 @@ declare namespace svgjs {
         e: number;\r
         f: number;\r
     }\r
-    \r
+\r
     type MatrixAlias = MatrixLike | number[] | Element | string;\r
-    \r
+\r
     export interface Matrix {\r
         new (): Matrix;\r
         new (source: MatrixAlias): Matrix;\r
@@ -553,8 +558,8 @@ declare namespace svgjs {
     // memory.js\r
     interface Element {\r
         remember(name: string, value: any): this;\r
-        remember(obj: Object): this;\r
         remember(name: string): any;\r
+        remember(obj: Object): this;\r
         forget(...keys: string[]): this;\r
         forget(): this;\r
         memory(): Object;\r
@@ -585,7 +590,7 @@ declare namespace svgjs {
         at(pos: number): _Number;\r
     }\r
     interface Library { Number: _Number; }\r
-    \r
+\r
     type NumberAlias = _Number | number | string;\r
 \r
     // parent.js\r
@@ -609,7 +614,7 @@ declare namespace svgjs {
     // path.js\r
     interface PathArrayPoint extends Array<number | string> { }\r
     type PathArrayAlias = PathArray | (string | number)[] | PathArrayPoint[] | string;\r
-    \r
+\r
     export interface Path extends Shape {\r
         new (): Path;\r
         morphArray: PathArray;\r
@@ -654,6 +659,9 @@ declare namespace svgjs {
         new (point: Point): Point;\r
         new (position: { x: number, y: number }): Point;\r
         new (x: number, y: number): Point;\r
+        \r
+        x: number;\r
+        y: number;\r
 \r
         clone(): Point;\r
         morph(point: Point): this;\r
@@ -747,7 +755,7 @@ declare namespace svgjs {
     // selector.js\r
     interface Library {\r
         get(id: string): Element;\r
-        select(query: string, parent: HTMLElement): Set;\r
+        select(query: string, parent?: HTMLElement): Set;\r
     }\r
     interface Parent {\r
         select(query: string): Set;\r
@@ -768,6 +776,7 @@ declare namespace svgjs {
         last(): Element;\r
         valueOf(): Element[];\r
         bbox(): BBox;\r
+        click(cb: Function): Set;\r
     }\r
     interface Container { set(members?: Element[]): Set; }\r
     interface Library { Set: Set; }\r
@@ -914,6 +923,7 @@ declare namespace svgjs {
         d?: number;\r
         e?: number;\r
         f?: number;\r
+        scale?: number;\r
     }\r
     export interface Transformation {\r
         new (...transform: Transform[]): Transformation;\r
@@ -945,7 +955,7 @@ declare namespace svgjs {
         element(element: Element, file?: string): this;\r
     }\r
     interface Container {\r
-        use(element: Element, file?: string): Use;\r
+        use(element: Element | string, file?: string): Use;\r
     }\r
     interface Library { Use: Use; }\r
 \r
@@ -962,7 +972,7 @@ declare namespace svgjs {
 \r
     // viewbox.js\r
     type ViewBoxAlias = ViewBoxLike | number[] | string | Element;\r
-    \r
+\r
     interface ViewBox {\r
         new (source: ViewBoxAlias): ViewBox;\r
         new (x: number, y: number, width: number, height: number): ViewBox;\r
@@ -985,6 +995,10 @@ declare namespace svgjs {
 \r
     export interface Animation {\r
         stop(): Animation;\r
+        finish(): Animation;\r
+        pause(): Animation;\r
+        play(): Animation;\r
+        reverse(reversed?: boolean): Animation;\r
 \r
         attr(name: string, value: any, namespace?: string): Animation;\r
         attr(obj: Object): Animation;\r
@@ -994,6 +1008,7 @@ declare namespace svgjs {
         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
@@ -1005,12 +1020,15 @@ declare namespace svgjs {
         during(cb: (pos: number) => void): Animation;\r
         to(value: number): Animation;\r
         after(cb: () => void): Animation;\r
+        \r
+        delay(delayMS: number): Animation;\r
 \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
+        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
+        transform(t: Transform, relative?: boolean): Animation;\r
 \r
         // TODO style, etc, bbox...\r
     }\r
-}\r
+}
\ No newline at end of file