aboutsummaryrefslogtreecommitdiffstats
path: root/src/elements/Stop.js
blob: d258b86530577857b20cc00b19087099acbd65d8 (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
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, attrs = node) {
    super(nodeOrNew('stop', node), attrs)
  }

  // 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, 'Stop')