summaryrefslogtreecommitdiffstats
path: root/src/elements/Stop.js
blob: 88389232d1c13ed62579d2f124e9fde62c6b7f94 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
import { nodeOrNew, register } from '../utils/adopter.js'
import Element from './Element.js'
import SVGNumber from '../types/SVGNumber.js'

export default class Stop extends Element {

  constructor ( node ) {

    super( nodeOrNew( 'stop', node ), node )

  }

  // add color stops
  update ( o ) {

    if ( typeof o === 'number' || o instanceof SVGNumber ) {

      o = {
        offset: arguments[0],
        color: arguments[1],
        opacity: arguments[2]
      }

    }

    // set attributes
    if ( o.opacity != null ) this.attr( 'stop-opacity', o.opacity )
    if ( o.color != null ) this.attr( 'stop-color', o.color )
    if ( o.offset != null ) this.attr( 'offset', new SVGNumber( o.offset ) )

    return this

  }

}

register( Stop )