aboutsummaryrefslogtreecommitdiffstats
path: root/abilities
blob: 4d5aa11976daf4ca6e2cef1fa4f45857c92df97f (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
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
>> Element <<
  Stop
  Bare
  >> Parent <<
    Text
      TextPath
    >> Container<<
      Doc
      G
      Symbol
      Defs
      ClipPath
      Mask
      A
      Gradient
  Shape
    Rect
    Circle
    Path
    Ellipse
    Polygon
    Polyline
    Line
    Image

Animate
Box
Color
Controller


=====================================================================


classes:

  // MetaData
  Title

  // Parents
  SVG
  G

  // Elements
  Rect
  Circle
  Path
  Ellipse
  Polygon
  Polyline
  Line
  Image

  // Text Stuff
  TSpan
  TextPath

  // Data Type
  Box
  Matrix
  SVGNumber
  SVGArray
  PointArray
  PathArray
  Color
  Controller

abilities:
  Animate
  Container
  Event
  Doc
  Movements
  Dom
  Create




// DocAbility.js

import SVG from 'Svg.js'
export default function ( ...worksOn ) {
  let workSet = new Set(worksOn)
  return {

    doc: function () {
      return this.parent(SVG)
    }

  }
}

-> svg.js -> DocAbility.js -> 'Svg.js'

extend ( [ Rect ], DocAbility() )



// DomAbility.js

import {makeInstance} from 'helpers.js'

export default function ( ...worksOn ) {
  let workSet = new Set(worksOn)
  let maker = makeInstance(workSet)

  return {

    addTo (parent) {
      return maker(parent).put(this)
    }

  }
}

class Rect {


  static tagName = 'Rect'
}




new SVG[capitalize[node.nodeName]]



new SVG.Doc() -> <svg xml="">......</svg>

// SVG.js

extend( [ ...Parents ], Container(...Elements, ...Parents) ) )
extend( [ Text ], Container( TSpan, TextPath ) )



Element.js

new Element ()

export default class Element {

  static

  static

}

Rect.js

import Element from Element.js
export default class Rect extends Element