summaryrefslogtreecommitdiffstats
path: root/src/svg.js
blob: 25d034d5d58fc73995fcbc951a1595a10edf8f62 (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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
// import {extend} from './tools.js'
// import * as Element from './Element.js'
// import Defs from './Defs.js'
//
// extend(Defs, [EventTarget, Element, Parent])

import {makeInstance} from './adopter.js'
import * as Classes from './classes.js'
import * as adopter from './adopter.js'
import * as tools from './tools.js'
import * as containers from './containers.js'
import * as elements from './elements.js'
import * as arrange from './arrange.js'
import {select} from './selector.js'
import * as css from './css.js'
import * as transform from './transform.js'
const extend = tools.extend

import * as EventTarget from './EventTarget.js'
import * as Element from './Element.js'
import * as Parent from './Parent.js'

extend([
  Classes.Doc,
  Classes.Symbol,
  Classes.Image,
  Classes.Pattern,
  Classes.Marker
], {viewbox: Classes.Box.constructors.viewbox})

extend([Classes.Line, Classes.Polyline, Classes.Polygon, Classes.Path], {
  ...Classes.Marker.constructors.marker
})

extend(Classes.Text, Classes.TextPath.constructors.Text)
extend(Classes.Path, Classes.TextPath.constructors.Path)

extend(Classes.Defs, {
  ...Classes.Gradient.constructors.Defs,
  ...Classes.Marker.constructors.Defs,
  ...Classes.Pattern.constructors.Defs,
})

for (let i in containers) {
  extend(containers[i], {
    ...Classes.A.constructors.Container,
    ...Classes.ClipPath.constructors.Container,
    ...Classes.G.constructors.Container,
    ...Classes.Gradient.constructors.Container,
    ...Classes.Line.constructors.Container,
    ...Classes.Marker.constructors.Container,
    ...Classes.Mask.constructors.Container,
    ...Classes.Path.constructors.Container,
    ...Classes.Pattern.constructors.Container,
    ...Classes.Polygon.constructors.Container,
    ...Classes.Polyline.constructors.Container,
    ...Classes.Rect.constructors.Container,
    select,
    ...Classes.Symbol.constructors.Container,
    ...Classes.Text.constructors.Container,
    ...Classes.TextPath.constructors.Container,
    ...Classes.Use.constructors.Container,
  })
}

for (let i in elements) {
  extend(elements[i], {
    ...EventTarget,
    ...Element,
    ...Parent,
    ...arrange,
    ...Classes.A.constructors.Element,
    ...Classes.Box.constructors.Element,
    ...Classes.Circle.constructors.Element,
    ...Classes.ClipPath.constructors.Element,
    ...css,
    ...Classes.Image.constructors.Element,
    ...Classes.Mask.constructors.Element,
    ...Classes.Matrix.constructors.Element,
    ...Classes.Point.constructors.Element,
    ...Classes.Runner.constructors.Element,
    ...Classes.Timeline.constructors.Element,
    ...transform,
  })
}



// The main wrapping element
export default function SVG (element) {
  return makeInstance(element)
}

Object.assign(SVG, Classes)
Object.assign(SVG, tools)
Object.assign(SVG, adopter)