dommy 0.5.0 → 0.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +31 -13
- data/lib/dommy/animation.rb +288 -0
- data/lib/dommy/attr.rb +23 -11
- data/lib/dommy/backend/nokogiri_adapter.rb +51 -0
- data/lib/dommy/backend/nokolexbor_adapter.rb +80 -0
- data/lib/dommy/backend.rb +129 -0
- data/lib/dommy/blob.rb +2 -2
- data/lib/dommy/compression_streams.rb +147 -0
- data/lib/dommy/cookie_store.rb +128 -0
- data/lib/dommy/crypto.rb +396 -0
- data/lib/dommy/css.rb +7 -7
- data/lib/dommy/custom_elements.rb +6 -6
- data/lib/dommy/document.rb +190 -32
- data/lib/dommy/dom_parser.rb +5 -4
- data/lib/dommy/element.rb +356 -53
- data/lib/dommy/event.rb +431 -25
- data/lib/dommy/event_source.rb +131 -0
- data/lib/dommy/fetch.rb +76 -6
- data/lib/dommy/file_reader.rb +176 -0
- data/lib/dommy/form_data.rb +1 -3
- data/lib/dommy/history.rb +82 -0
- data/lib/dommy/html_collection.rb +4 -4
- data/lib/dommy/html_elements.rb +130 -67
- data/lib/dommy/internal/cookie_jar.rb +2 -0
- data/lib/dommy/internal/css_pseudo_handlers.rb +28 -0
- data/lib/dommy/internal/dom_matching.rb +4 -4
- data/lib/dommy/internal/idna.rb +443 -0
- data/lib/dommy/internal/idna_data.rb +10379 -0
- data/lib/dommy/internal/ipv4_parser.rb +78 -0
- data/lib/dommy/internal/node_traversal.rb +1 -1
- data/lib/dommy/internal/node_wrapper_cache.rb +23 -12
- data/lib/dommy/internal/observable_callback.rb +25 -0
- data/lib/dommy/internal/punycode.rb +202 -0
- data/lib/dommy/internal/range_text_serializer.rb +72 -0
- data/lib/dommy/internal/reflected_attributes.rb +45 -0
- data/lib/dommy/internal/template_content_registry.rb +6 -6
- data/lib/dommy/intersection_observer.rb +82 -0
- data/lib/dommy/{router.rb → location.rb} +8 -142
- data/lib/dommy/media_query_list.rb +118 -0
- data/lib/dommy/message_channel.rb +249 -0
- data/lib/dommy/{observer.rb → mutation_observer.rb} +21 -11
- data/lib/dommy/navigator.rb +365 -5
- data/lib/dommy/node.rb +12 -0
- data/lib/dommy/notification.rb +89 -0
- data/lib/dommy/parser.rb +13 -13
- data/lib/dommy/performance.rb +146 -0
- data/lib/dommy/performance_observer.rb +55 -0
- data/lib/dommy/range.rb +597 -0
- data/lib/dommy/resize_observer.rb +53 -0
- data/lib/dommy/shadow_root.rb +10 -8
- data/lib/dommy/streams.rb +386 -0
- data/lib/dommy/svg_elements.rb +3863 -0
- data/lib/dommy/text_codec.rb +175 -0
- data/lib/dommy/tree_walker.rb +21 -21
- data/lib/dommy/url.rb +274 -29
- data/lib/dommy/url_pattern.rb +144 -0
- data/lib/dommy/version.rb +1 -1
- data/lib/dommy/web_socket.rb +209 -0
- data/lib/dommy/window.rb +369 -0
- data/lib/dommy/worker.rb +143 -0
- data/lib/dommy/xml_http_request.rb +438 -0
- data/lib/dommy.rb +43 -5
- metadata +44 -29
- data/lib/dommy/world.rb +0 -209
|
@@ -0,0 +1,3863 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Dommy
|
|
4
|
+
# Base for specialized SVGElement subclasses. Mirrors HTMLElement's
|
|
5
|
+
# role for HTML: a thin layer over Element that adds reflection
|
|
6
|
+
# helpers (via Internal::ReflectedAttributes) and a few attribute
|
|
7
|
+
# accessors that apply to every SVG element.
|
|
8
|
+
#
|
|
9
|
+
# Ruby property names use snake_case; the JS bridge (`__js_get__` /
|
|
10
|
+
# `__js_set__`) accepts the camelCase / spec name. The underlying
|
|
11
|
+
# HTML attribute name is whatever the SVG spec defines (often
|
|
12
|
+
# camelCase: `viewBox`, `gradientUnits`, `preserveAspectRatio`),
|
|
13
|
+
# passed verbatim to `reflected_string`.
|
|
14
|
+
class SVGElement < Element
|
|
15
|
+
include Internal::ReflectedAttributes
|
|
16
|
+
|
|
17
|
+
# SVG attribute names are case-sensitive (`viewBox` ≠ `viewbox`).
|
|
18
|
+
# Element's get/set/has/remove_attribute consult this flag to
|
|
19
|
+
# decide whether to lowercase the attribute name.
|
|
20
|
+
def case_sensitive_attribute_names?
|
|
21
|
+
true
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
# Common SVG attributes shared across all elements.
|
|
25
|
+
|
|
26
|
+
def id
|
|
27
|
+
reflected_string("id")
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
def id=(value)
|
|
31
|
+
set_reflected_string("id", value)
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
def class_name
|
|
35
|
+
reflected_string("class")
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
def class_name=(value)
|
|
39
|
+
set_reflected_string("class", value)
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
def tabindex
|
|
43
|
+
reflected_string("tabindex")
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
def tabindex=(value)
|
|
47
|
+
set_reflected_string("tabindex", value)
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
def __js_get__(key)
|
|
51
|
+
case key
|
|
52
|
+
when "id"
|
|
53
|
+
id
|
|
54
|
+
when "className"
|
|
55
|
+
class_name
|
|
56
|
+
when "tabIndex"
|
|
57
|
+
tabindex
|
|
58
|
+
else
|
|
59
|
+
super
|
|
60
|
+
end
|
|
61
|
+
end
|
|
62
|
+
|
|
63
|
+
def __js_set__(key, value)
|
|
64
|
+
case key
|
|
65
|
+
when "id"
|
|
66
|
+
self.id = value
|
|
67
|
+
when "className"
|
|
68
|
+
self.class_name = value
|
|
69
|
+
when "tabIndex"
|
|
70
|
+
self.tabindex = value
|
|
71
|
+
else
|
|
72
|
+
super
|
|
73
|
+
end
|
|
74
|
+
end
|
|
75
|
+
end
|
|
76
|
+
|
|
77
|
+
# `<svg>` — the root of an SVG subtree.
|
|
78
|
+
class SVGSVGElement < SVGElement
|
|
79
|
+
def width
|
|
80
|
+
reflected_string("width")
|
|
81
|
+
end
|
|
82
|
+
|
|
83
|
+
def width=(v)
|
|
84
|
+
set_reflected_string("width", v)
|
|
85
|
+
end
|
|
86
|
+
|
|
87
|
+
def height
|
|
88
|
+
reflected_string("height")
|
|
89
|
+
end
|
|
90
|
+
|
|
91
|
+
def height=(v)
|
|
92
|
+
set_reflected_string("height", v)
|
|
93
|
+
end
|
|
94
|
+
|
|
95
|
+
def view_box
|
|
96
|
+
reflected_string("viewBox")
|
|
97
|
+
end
|
|
98
|
+
|
|
99
|
+
def view_box=(v)
|
|
100
|
+
set_reflected_string("viewBox", v)
|
|
101
|
+
end
|
|
102
|
+
|
|
103
|
+
def preserve_aspect_ratio
|
|
104
|
+
reflected_string("preserveAspectRatio")
|
|
105
|
+
end
|
|
106
|
+
|
|
107
|
+
def preserve_aspect_ratio=(v)
|
|
108
|
+
set_reflected_string("preserveAspectRatio", v)
|
|
109
|
+
end
|
|
110
|
+
|
|
111
|
+
def __js_get__(key)
|
|
112
|
+
case key
|
|
113
|
+
when "width"
|
|
114
|
+
width
|
|
115
|
+
when "height"
|
|
116
|
+
height
|
|
117
|
+
when "viewBox"
|
|
118
|
+
view_box
|
|
119
|
+
when "preserveAspectRatio"
|
|
120
|
+
preserve_aspect_ratio
|
|
121
|
+
else
|
|
122
|
+
super
|
|
123
|
+
end
|
|
124
|
+
end
|
|
125
|
+
|
|
126
|
+
def __js_set__(key, value)
|
|
127
|
+
case key
|
|
128
|
+
when "width"
|
|
129
|
+
self.width = value
|
|
130
|
+
when "height"
|
|
131
|
+
self.height = value
|
|
132
|
+
when "viewBox"
|
|
133
|
+
self.view_box = value
|
|
134
|
+
when "preserveAspectRatio"
|
|
135
|
+
self.preserve_aspect_ratio = value
|
|
136
|
+
else
|
|
137
|
+
super
|
|
138
|
+
end
|
|
139
|
+
end
|
|
140
|
+
end
|
|
141
|
+
|
|
142
|
+
# `<g>` — generic group; only inherits common attributes.
|
|
143
|
+
class SVGGElement < SVGElement
|
|
144
|
+
end
|
|
145
|
+
|
|
146
|
+
# `<circle>` — cx, cy, r.
|
|
147
|
+
class SVGCircleElement < SVGElement
|
|
148
|
+
def cx
|
|
149
|
+
reflected_string("cx")
|
|
150
|
+
end
|
|
151
|
+
|
|
152
|
+
def cx=(v)
|
|
153
|
+
set_reflected_string("cx", v)
|
|
154
|
+
end
|
|
155
|
+
|
|
156
|
+
def cy
|
|
157
|
+
reflected_string("cy")
|
|
158
|
+
end
|
|
159
|
+
|
|
160
|
+
def cy=(v)
|
|
161
|
+
set_reflected_string("cy", v)
|
|
162
|
+
end
|
|
163
|
+
|
|
164
|
+
def r
|
|
165
|
+
reflected_string("r")
|
|
166
|
+
end
|
|
167
|
+
|
|
168
|
+
def r=(v)
|
|
169
|
+
set_reflected_string("r", v)
|
|
170
|
+
end
|
|
171
|
+
|
|
172
|
+
def __js_get__(key)
|
|
173
|
+
case key
|
|
174
|
+
when "cx"
|
|
175
|
+
cx
|
|
176
|
+
when "cy"
|
|
177
|
+
cy
|
|
178
|
+
when "r"
|
|
179
|
+
r
|
|
180
|
+
else
|
|
181
|
+
super
|
|
182
|
+
end
|
|
183
|
+
end
|
|
184
|
+
|
|
185
|
+
def __js_set__(key, value)
|
|
186
|
+
case key
|
|
187
|
+
when "cx"
|
|
188
|
+
self.cx = value
|
|
189
|
+
when "cy"
|
|
190
|
+
self.cy = value
|
|
191
|
+
when "r"
|
|
192
|
+
self.r = value
|
|
193
|
+
else
|
|
194
|
+
super
|
|
195
|
+
end
|
|
196
|
+
end
|
|
197
|
+
end
|
|
198
|
+
|
|
199
|
+
# `<rect>` — x, y, width, height, rx, ry.
|
|
200
|
+
class SVGRectElement < SVGElement
|
|
201
|
+
def x
|
|
202
|
+
reflected_string("x")
|
|
203
|
+
end
|
|
204
|
+
|
|
205
|
+
def x=(v)
|
|
206
|
+
set_reflected_string("x", v)
|
|
207
|
+
end
|
|
208
|
+
|
|
209
|
+
def y
|
|
210
|
+
reflected_string("y")
|
|
211
|
+
end
|
|
212
|
+
|
|
213
|
+
def y=(v)
|
|
214
|
+
set_reflected_string("y", v)
|
|
215
|
+
end
|
|
216
|
+
|
|
217
|
+
def width
|
|
218
|
+
reflected_string("width")
|
|
219
|
+
end
|
|
220
|
+
|
|
221
|
+
def width=(v)
|
|
222
|
+
set_reflected_string("width", v)
|
|
223
|
+
end
|
|
224
|
+
|
|
225
|
+
def height
|
|
226
|
+
reflected_string("height")
|
|
227
|
+
end
|
|
228
|
+
|
|
229
|
+
def height=(v)
|
|
230
|
+
set_reflected_string("height", v)
|
|
231
|
+
end
|
|
232
|
+
|
|
233
|
+
def rx
|
|
234
|
+
reflected_string("rx")
|
|
235
|
+
end
|
|
236
|
+
|
|
237
|
+
def rx=(v)
|
|
238
|
+
set_reflected_string("rx", v)
|
|
239
|
+
end
|
|
240
|
+
|
|
241
|
+
def ry
|
|
242
|
+
reflected_string("ry")
|
|
243
|
+
end
|
|
244
|
+
|
|
245
|
+
def ry=(v)
|
|
246
|
+
set_reflected_string("ry", v)
|
|
247
|
+
end
|
|
248
|
+
|
|
249
|
+
def __js_get__(key)
|
|
250
|
+
case key
|
|
251
|
+
when "x"
|
|
252
|
+
x
|
|
253
|
+
when "y"
|
|
254
|
+
y
|
|
255
|
+
when "width"
|
|
256
|
+
width
|
|
257
|
+
when "height"
|
|
258
|
+
height
|
|
259
|
+
when "rx"
|
|
260
|
+
rx
|
|
261
|
+
when "ry"
|
|
262
|
+
ry
|
|
263
|
+
else
|
|
264
|
+
super
|
|
265
|
+
end
|
|
266
|
+
end
|
|
267
|
+
|
|
268
|
+
def __js_set__(key, value)
|
|
269
|
+
case key
|
|
270
|
+
when "x"
|
|
271
|
+
self.x = value
|
|
272
|
+
when "y"
|
|
273
|
+
self.y = value
|
|
274
|
+
when "width"
|
|
275
|
+
self.width = value
|
|
276
|
+
when "height"
|
|
277
|
+
self.height = value
|
|
278
|
+
when "rx"
|
|
279
|
+
self.rx = value
|
|
280
|
+
when "ry"
|
|
281
|
+
self.ry = value
|
|
282
|
+
else
|
|
283
|
+
super
|
|
284
|
+
end
|
|
285
|
+
end
|
|
286
|
+
end
|
|
287
|
+
|
|
288
|
+
# `<ellipse>` — cx, cy, rx, ry.
|
|
289
|
+
class SVGEllipseElement < SVGElement
|
|
290
|
+
def cx
|
|
291
|
+
reflected_string("cx")
|
|
292
|
+
end
|
|
293
|
+
|
|
294
|
+
def cx=(v)
|
|
295
|
+
set_reflected_string("cx", v)
|
|
296
|
+
end
|
|
297
|
+
|
|
298
|
+
def cy
|
|
299
|
+
reflected_string("cy")
|
|
300
|
+
end
|
|
301
|
+
|
|
302
|
+
def cy=(v)
|
|
303
|
+
set_reflected_string("cy", v)
|
|
304
|
+
end
|
|
305
|
+
|
|
306
|
+
def rx
|
|
307
|
+
reflected_string("rx")
|
|
308
|
+
end
|
|
309
|
+
|
|
310
|
+
def rx=(v)
|
|
311
|
+
set_reflected_string("rx", v)
|
|
312
|
+
end
|
|
313
|
+
|
|
314
|
+
def ry
|
|
315
|
+
reflected_string("ry")
|
|
316
|
+
end
|
|
317
|
+
|
|
318
|
+
def ry=(v)
|
|
319
|
+
set_reflected_string("ry", v)
|
|
320
|
+
end
|
|
321
|
+
|
|
322
|
+
def __js_get__(key)
|
|
323
|
+
case key
|
|
324
|
+
when "cx"
|
|
325
|
+
cx
|
|
326
|
+
when "cy"
|
|
327
|
+
cy
|
|
328
|
+
when "rx"
|
|
329
|
+
rx
|
|
330
|
+
when "ry"
|
|
331
|
+
ry
|
|
332
|
+
else
|
|
333
|
+
super
|
|
334
|
+
end
|
|
335
|
+
end
|
|
336
|
+
|
|
337
|
+
def __js_set__(key, value)
|
|
338
|
+
case key
|
|
339
|
+
when "cx"
|
|
340
|
+
self.cx = value
|
|
341
|
+
when "cy"
|
|
342
|
+
self.cy = value
|
|
343
|
+
when "rx"
|
|
344
|
+
self.rx = value
|
|
345
|
+
when "ry"
|
|
346
|
+
self.ry = value
|
|
347
|
+
else
|
|
348
|
+
super
|
|
349
|
+
end
|
|
350
|
+
end
|
|
351
|
+
end
|
|
352
|
+
|
|
353
|
+
# `<line>` — x1, y1, x2, y2.
|
|
354
|
+
class SVGLineElement < SVGElement
|
|
355
|
+
def x1
|
|
356
|
+
reflected_string("x1")
|
|
357
|
+
end
|
|
358
|
+
|
|
359
|
+
def x1=(v)
|
|
360
|
+
set_reflected_string("x1", v)
|
|
361
|
+
end
|
|
362
|
+
|
|
363
|
+
def y1
|
|
364
|
+
reflected_string("y1")
|
|
365
|
+
end
|
|
366
|
+
|
|
367
|
+
def y1=(v)
|
|
368
|
+
set_reflected_string("y1", v)
|
|
369
|
+
end
|
|
370
|
+
|
|
371
|
+
def x2
|
|
372
|
+
reflected_string("x2")
|
|
373
|
+
end
|
|
374
|
+
|
|
375
|
+
def x2=(v)
|
|
376
|
+
set_reflected_string("x2", v)
|
|
377
|
+
end
|
|
378
|
+
|
|
379
|
+
def y2
|
|
380
|
+
reflected_string("y2")
|
|
381
|
+
end
|
|
382
|
+
|
|
383
|
+
def y2=(v)
|
|
384
|
+
set_reflected_string("y2", v)
|
|
385
|
+
end
|
|
386
|
+
|
|
387
|
+
def __js_get__(key)
|
|
388
|
+
case key
|
|
389
|
+
when "x1"
|
|
390
|
+
x1
|
|
391
|
+
when "y1"
|
|
392
|
+
y1
|
|
393
|
+
when "x2"
|
|
394
|
+
x2
|
|
395
|
+
when "y2"
|
|
396
|
+
y2
|
|
397
|
+
else
|
|
398
|
+
super
|
|
399
|
+
end
|
|
400
|
+
end
|
|
401
|
+
|
|
402
|
+
def __js_set__(key, value)
|
|
403
|
+
case key
|
|
404
|
+
when "x1"
|
|
405
|
+
self.x1 = value
|
|
406
|
+
when "y1"
|
|
407
|
+
self.y1 = value
|
|
408
|
+
when "x2"
|
|
409
|
+
self.x2 = value
|
|
410
|
+
when "y2"
|
|
411
|
+
self.y2 = value
|
|
412
|
+
else
|
|
413
|
+
super
|
|
414
|
+
end
|
|
415
|
+
end
|
|
416
|
+
end
|
|
417
|
+
|
|
418
|
+
# `<polygon>` — points (a string like "0,0 10,0 10,10").
|
|
419
|
+
class SVGPolygonElement < SVGElement
|
|
420
|
+
def points
|
|
421
|
+
reflected_string("points")
|
|
422
|
+
end
|
|
423
|
+
|
|
424
|
+
def points=(v)
|
|
425
|
+
set_reflected_string("points", v)
|
|
426
|
+
end
|
|
427
|
+
|
|
428
|
+
def __js_get__(key)
|
|
429
|
+
key == "points" ? points : super
|
|
430
|
+
end
|
|
431
|
+
|
|
432
|
+
def __js_set__(key, value)
|
|
433
|
+
key == "points" ? (self.points = value) : super
|
|
434
|
+
end
|
|
435
|
+
end
|
|
436
|
+
|
|
437
|
+
# `<polyline>` — points.
|
|
438
|
+
class SVGPolylineElement < SVGElement
|
|
439
|
+
def points
|
|
440
|
+
reflected_string("points")
|
|
441
|
+
end
|
|
442
|
+
|
|
443
|
+
def points=(v)
|
|
444
|
+
set_reflected_string("points", v)
|
|
445
|
+
end
|
|
446
|
+
|
|
447
|
+
def __js_get__(key)
|
|
448
|
+
key == "points" ? points : super
|
|
449
|
+
end
|
|
450
|
+
|
|
451
|
+
def __js_set__(key, value)
|
|
452
|
+
key == "points" ? (self.points = value) : super
|
|
453
|
+
end
|
|
454
|
+
end
|
|
455
|
+
|
|
456
|
+
# `<path>` — d (path data), pathLength.
|
|
457
|
+
class SVGPathElement < SVGElement
|
|
458
|
+
def d
|
|
459
|
+
reflected_string("d")
|
|
460
|
+
end
|
|
461
|
+
|
|
462
|
+
def d=(v)
|
|
463
|
+
set_reflected_string("d", v)
|
|
464
|
+
end
|
|
465
|
+
|
|
466
|
+
def path_length
|
|
467
|
+
reflected_string("pathLength")
|
|
468
|
+
end
|
|
469
|
+
|
|
470
|
+
def path_length=(v)
|
|
471
|
+
set_reflected_string("pathLength", v)
|
|
472
|
+
end
|
|
473
|
+
|
|
474
|
+
def __js_get__(key)
|
|
475
|
+
case key
|
|
476
|
+
when "d"
|
|
477
|
+
d
|
|
478
|
+
when "pathLength"
|
|
479
|
+
path_length
|
|
480
|
+
else
|
|
481
|
+
super
|
|
482
|
+
end
|
|
483
|
+
end
|
|
484
|
+
|
|
485
|
+
def __js_set__(key, value)
|
|
486
|
+
case key
|
|
487
|
+
when "d"
|
|
488
|
+
self.d = value
|
|
489
|
+
when "pathLength"
|
|
490
|
+
self.path_length = value
|
|
491
|
+
else
|
|
492
|
+
super
|
|
493
|
+
end
|
|
494
|
+
end
|
|
495
|
+
end
|
|
496
|
+
|
|
497
|
+
# `<text>` — x, y, dx, dy, text-anchor.
|
|
498
|
+
class SVGTextElement < SVGElement
|
|
499
|
+
def x
|
|
500
|
+
reflected_string("x")
|
|
501
|
+
end
|
|
502
|
+
|
|
503
|
+
def x=(v)
|
|
504
|
+
set_reflected_string("x", v)
|
|
505
|
+
end
|
|
506
|
+
|
|
507
|
+
def y
|
|
508
|
+
reflected_string("y")
|
|
509
|
+
end
|
|
510
|
+
|
|
511
|
+
def y=(v)
|
|
512
|
+
set_reflected_string("y", v)
|
|
513
|
+
end
|
|
514
|
+
|
|
515
|
+
def dx
|
|
516
|
+
reflected_string("dx")
|
|
517
|
+
end
|
|
518
|
+
|
|
519
|
+
def dx=(v)
|
|
520
|
+
set_reflected_string("dx", v)
|
|
521
|
+
end
|
|
522
|
+
|
|
523
|
+
def dy
|
|
524
|
+
reflected_string("dy")
|
|
525
|
+
end
|
|
526
|
+
|
|
527
|
+
def dy=(v)
|
|
528
|
+
set_reflected_string("dy", v)
|
|
529
|
+
end
|
|
530
|
+
|
|
531
|
+
def text_anchor
|
|
532
|
+
reflected_string("text-anchor")
|
|
533
|
+
end
|
|
534
|
+
|
|
535
|
+
def text_anchor=(v)
|
|
536
|
+
set_reflected_string("text-anchor", v)
|
|
537
|
+
end
|
|
538
|
+
|
|
539
|
+
def __js_get__(key)
|
|
540
|
+
case key
|
|
541
|
+
when "x"
|
|
542
|
+
x
|
|
543
|
+
when "y"
|
|
544
|
+
y
|
|
545
|
+
when "dx"
|
|
546
|
+
dx
|
|
547
|
+
when "dy"
|
|
548
|
+
dy
|
|
549
|
+
when "textAnchor"
|
|
550
|
+
text_anchor
|
|
551
|
+
else
|
|
552
|
+
super
|
|
553
|
+
end
|
|
554
|
+
end
|
|
555
|
+
|
|
556
|
+
def __js_set__(key, value)
|
|
557
|
+
case key
|
|
558
|
+
when "x"
|
|
559
|
+
self.x = value
|
|
560
|
+
when "y"
|
|
561
|
+
self.y = value
|
|
562
|
+
when "dx"
|
|
563
|
+
self.dx = value
|
|
564
|
+
when "dy"
|
|
565
|
+
self.dy = value
|
|
566
|
+
when "textAnchor"
|
|
567
|
+
self.text_anchor = value
|
|
568
|
+
else
|
|
569
|
+
super
|
|
570
|
+
end
|
|
571
|
+
end
|
|
572
|
+
end
|
|
573
|
+
|
|
574
|
+
# `<tspan>` — same coord attrs as <text>.
|
|
575
|
+
class SVGTSpanElement < SVGElement
|
|
576
|
+
def x
|
|
577
|
+
reflected_string("x")
|
|
578
|
+
end
|
|
579
|
+
|
|
580
|
+
def x=(v)
|
|
581
|
+
set_reflected_string("x", v)
|
|
582
|
+
end
|
|
583
|
+
|
|
584
|
+
def y
|
|
585
|
+
reflected_string("y")
|
|
586
|
+
end
|
|
587
|
+
|
|
588
|
+
def y=(v)
|
|
589
|
+
set_reflected_string("y", v)
|
|
590
|
+
end
|
|
591
|
+
|
|
592
|
+
def dx
|
|
593
|
+
reflected_string("dx")
|
|
594
|
+
end
|
|
595
|
+
|
|
596
|
+
def dx=(v)
|
|
597
|
+
set_reflected_string("dx", v)
|
|
598
|
+
end
|
|
599
|
+
|
|
600
|
+
def dy
|
|
601
|
+
reflected_string("dy")
|
|
602
|
+
end
|
|
603
|
+
|
|
604
|
+
def dy=(v)
|
|
605
|
+
set_reflected_string("dy", v)
|
|
606
|
+
end
|
|
607
|
+
|
|
608
|
+
def __js_get__(key)
|
|
609
|
+
case key
|
|
610
|
+
when "x"
|
|
611
|
+
x
|
|
612
|
+
when "y"
|
|
613
|
+
y
|
|
614
|
+
when "dx"
|
|
615
|
+
dx
|
|
616
|
+
when "dy"
|
|
617
|
+
dy
|
|
618
|
+
else
|
|
619
|
+
super
|
|
620
|
+
end
|
|
621
|
+
end
|
|
622
|
+
|
|
623
|
+
def __js_set__(key, value)
|
|
624
|
+
case key
|
|
625
|
+
when "x"
|
|
626
|
+
self.x = value
|
|
627
|
+
when "y"
|
|
628
|
+
self.y = value
|
|
629
|
+
when "dx"
|
|
630
|
+
self.dx = value
|
|
631
|
+
when "dy"
|
|
632
|
+
self.dy = value
|
|
633
|
+
else
|
|
634
|
+
super
|
|
635
|
+
end
|
|
636
|
+
end
|
|
637
|
+
end
|
|
638
|
+
|
|
639
|
+
# `<defs>` — container for reusable definitions; no special attrs.
|
|
640
|
+
class SVGDefsElement < SVGElement
|
|
641
|
+
end
|
|
642
|
+
|
|
643
|
+
# `<use>` — href, x, y, width, height.
|
|
644
|
+
class SVGUseElement < SVGElement
|
|
645
|
+
def href
|
|
646
|
+
reflected_string("href")
|
|
647
|
+
end
|
|
648
|
+
|
|
649
|
+
def href=(v)
|
|
650
|
+
set_reflected_string("href", v)
|
|
651
|
+
end
|
|
652
|
+
|
|
653
|
+
def x
|
|
654
|
+
reflected_string("x")
|
|
655
|
+
end
|
|
656
|
+
|
|
657
|
+
def x=(v)
|
|
658
|
+
set_reflected_string("x", v)
|
|
659
|
+
end
|
|
660
|
+
|
|
661
|
+
def y
|
|
662
|
+
reflected_string("y")
|
|
663
|
+
end
|
|
664
|
+
|
|
665
|
+
def y=(v)
|
|
666
|
+
set_reflected_string("y", v)
|
|
667
|
+
end
|
|
668
|
+
|
|
669
|
+
def width
|
|
670
|
+
reflected_string("width")
|
|
671
|
+
end
|
|
672
|
+
|
|
673
|
+
def width=(v)
|
|
674
|
+
set_reflected_string("width", v)
|
|
675
|
+
end
|
|
676
|
+
|
|
677
|
+
def height
|
|
678
|
+
reflected_string("height")
|
|
679
|
+
end
|
|
680
|
+
|
|
681
|
+
def height=(v)
|
|
682
|
+
set_reflected_string("height", v)
|
|
683
|
+
end
|
|
684
|
+
|
|
685
|
+
def __js_get__(key)
|
|
686
|
+
case key
|
|
687
|
+
when "href"
|
|
688
|
+
href
|
|
689
|
+
when "x"
|
|
690
|
+
x
|
|
691
|
+
when "y"
|
|
692
|
+
y
|
|
693
|
+
when "width"
|
|
694
|
+
width
|
|
695
|
+
when "height"
|
|
696
|
+
height
|
|
697
|
+
else
|
|
698
|
+
super
|
|
699
|
+
end
|
|
700
|
+
end
|
|
701
|
+
|
|
702
|
+
def __js_set__(key, value)
|
|
703
|
+
case key
|
|
704
|
+
when "href"
|
|
705
|
+
self.href = value
|
|
706
|
+
when "x"
|
|
707
|
+
self.x = value
|
|
708
|
+
when "y"
|
|
709
|
+
self.y = value
|
|
710
|
+
when "width"
|
|
711
|
+
self.width = value
|
|
712
|
+
when "height"
|
|
713
|
+
self.height = value
|
|
714
|
+
else
|
|
715
|
+
super
|
|
716
|
+
end
|
|
717
|
+
end
|
|
718
|
+
end
|
|
719
|
+
|
|
720
|
+
# `<image>` — href + box + preserveAspectRatio.
|
|
721
|
+
class SVGImageElement < SVGElement
|
|
722
|
+
def href
|
|
723
|
+
reflected_string("href")
|
|
724
|
+
end
|
|
725
|
+
|
|
726
|
+
def href=(v)
|
|
727
|
+
set_reflected_string("href", v)
|
|
728
|
+
end
|
|
729
|
+
|
|
730
|
+
def x
|
|
731
|
+
reflected_string("x")
|
|
732
|
+
end
|
|
733
|
+
|
|
734
|
+
def x=(v)
|
|
735
|
+
set_reflected_string("x", v)
|
|
736
|
+
end
|
|
737
|
+
|
|
738
|
+
def y
|
|
739
|
+
reflected_string("y")
|
|
740
|
+
end
|
|
741
|
+
|
|
742
|
+
def y=(v)
|
|
743
|
+
set_reflected_string("y", v)
|
|
744
|
+
end
|
|
745
|
+
|
|
746
|
+
def width
|
|
747
|
+
reflected_string("width")
|
|
748
|
+
end
|
|
749
|
+
|
|
750
|
+
def width=(v)
|
|
751
|
+
set_reflected_string("width", v)
|
|
752
|
+
end
|
|
753
|
+
|
|
754
|
+
def height
|
|
755
|
+
reflected_string("height")
|
|
756
|
+
end
|
|
757
|
+
|
|
758
|
+
def height=(v)
|
|
759
|
+
set_reflected_string("height", v)
|
|
760
|
+
end
|
|
761
|
+
|
|
762
|
+
def preserve_aspect_ratio
|
|
763
|
+
reflected_string("preserveAspectRatio")
|
|
764
|
+
end
|
|
765
|
+
|
|
766
|
+
def preserve_aspect_ratio=(v)
|
|
767
|
+
set_reflected_string("preserveAspectRatio", v)
|
|
768
|
+
end
|
|
769
|
+
|
|
770
|
+
def __js_get__(key)
|
|
771
|
+
case key
|
|
772
|
+
when "href"
|
|
773
|
+
href
|
|
774
|
+
when "x"
|
|
775
|
+
x
|
|
776
|
+
when "y"
|
|
777
|
+
y
|
|
778
|
+
when "width"
|
|
779
|
+
width
|
|
780
|
+
when "height"
|
|
781
|
+
height
|
|
782
|
+
when "preserveAspectRatio"
|
|
783
|
+
preserve_aspect_ratio
|
|
784
|
+
else
|
|
785
|
+
super
|
|
786
|
+
end
|
|
787
|
+
end
|
|
788
|
+
|
|
789
|
+
def __js_set__(key, value)
|
|
790
|
+
case key
|
|
791
|
+
when "href"
|
|
792
|
+
self.href = value
|
|
793
|
+
when "x"
|
|
794
|
+
self.x = value
|
|
795
|
+
when "y"
|
|
796
|
+
self.y = value
|
|
797
|
+
when "width"
|
|
798
|
+
self.width = value
|
|
799
|
+
when "height"
|
|
800
|
+
self.height = value
|
|
801
|
+
when "preserveAspectRatio"
|
|
802
|
+
self.preserve_aspect_ratio = value
|
|
803
|
+
else
|
|
804
|
+
super
|
|
805
|
+
end
|
|
806
|
+
end
|
|
807
|
+
end
|
|
808
|
+
|
|
809
|
+
# `<symbol>` — reusable template; viewBox + preserveAspectRatio.
|
|
810
|
+
class SVGSymbolElement < SVGElement
|
|
811
|
+
def view_box
|
|
812
|
+
reflected_string("viewBox")
|
|
813
|
+
end
|
|
814
|
+
|
|
815
|
+
def view_box=(v)
|
|
816
|
+
set_reflected_string("viewBox", v)
|
|
817
|
+
end
|
|
818
|
+
|
|
819
|
+
def preserve_aspect_ratio
|
|
820
|
+
reflected_string("preserveAspectRatio")
|
|
821
|
+
end
|
|
822
|
+
|
|
823
|
+
def preserve_aspect_ratio=(v)
|
|
824
|
+
set_reflected_string("preserveAspectRatio", v)
|
|
825
|
+
end
|
|
826
|
+
|
|
827
|
+
def __js_get__(key)
|
|
828
|
+
case key
|
|
829
|
+
when "viewBox"
|
|
830
|
+
view_box
|
|
831
|
+
when "preserveAspectRatio"
|
|
832
|
+
preserve_aspect_ratio
|
|
833
|
+
else
|
|
834
|
+
super
|
|
835
|
+
end
|
|
836
|
+
end
|
|
837
|
+
|
|
838
|
+
def __js_set__(key, value)
|
|
839
|
+
case key
|
|
840
|
+
when "viewBox"
|
|
841
|
+
self.view_box = value
|
|
842
|
+
when "preserveAspectRatio"
|
|
843
|
+
self.preserve_aspect_ratio = value
|
|
844
|
+
else
|
|
845
|
+
super
|
|
846
|
+
end
|
|
847
|
+
end
|
|
848
|
+
end
|
|
849
|
+
|
|
850
|
+
# `<foreignObject>` — embeds non-SVG content; standard box attrs.
|
|
851
|
+
class SVGForeignObjectElement < SVGElement
|
|
852
|
+
def x
|
|
853
|
+
reflected_string("x")
|
|
854
|
+
end
|
|
855
|
+
|
|
856
|
+
def x=(v)
|
|
857
|
+
set_reflected_string("x", v)
|
|
858
|
+
end
|
|
859
|
+
|
|
860
|
+
def y
|
|
861
|
+
reflected_string("y")
|
|
862
|
+
end
|
|
863
|
+
|
|
864
|
+
def y=(v)
|
|
865
|
+
set_reflected_string("y", v)
|
|
866
|
+
end
|
|
867
|
+
|
|
868
|
+
def width
|
|
869
|
+
reflected_string("width")
|
|
870
|
+
end
|
|
871
|
+
|
|
872
|
+
def width=(v)
|
|
873
|
+
set_reflected_string("width", v)
|
|
874
|
+
end
|
|
875
|
+
|
|
876
|
+
def height
|
|
877
|
+
reflected_string("height")
|
|
878
|
+
end
|
|
879
|
+
|
|
880
|
+
def height=(v)
|
|
881
|
+
set_reflected_string("height", v)
|
|
882
|
+
end
|
|
883
|
+
|
|
884
|
+
def __js_get__(key)
|
|
885
|
+
case key
|
|
886
|
+
when "x"
|
|
887
|
+
x
|
|
888
|
+
when "y"
|
|
889
|
+
y
|
|
890
|
+
when "width"
|
|
891
|
+
width
|
|
892
|
+
when "height"
|
|
893
|
+
height
|
|
894
|
+
else
|
|
895
|
+
super
|
|
896
|
+
end
|
|
897
|
+
end
|
|
898
|
+
|
|
899
|
+
def __js_set__(key, value)
|
|
900
|
+
case key
|
|
901
|
+
when "x"
|
|
902
|
+
self.x = value
|
|
903
|
+
when "y"
|
|
904
|
+
self.y = value
|
|
905
|
+
when "width"
|
|
906
|
+
self.width = value
|
|
907
|
+
when "height"
|
|
908
|
+
self.height = value
|
|
909
|
+
else
|
|
910
|
+
super
|
|
911
|
+
end
|
|
912
|
+
end
|
|
913
|
+
end
|
|
914
|
+
|
|
915
|
+
# `<title>` (inside SVG) — distinct from HTMLTitleElement.
|
|
916
|
+
class SVGTitleElement < SVGElement
|
|
917
|
+
end
|
|
918
|
+
|
|
919
|
+
# `<desc>` — accessibility description.
|
|
920
|
+
class SVGDescElement < SVGElement
|
|
921
|
+
end
|
|
922
|
+
|
|
923
|
+
# `<mask>` — alpha mask region.
|
|
924
|
+
class SVGMaskElement < SVGElement
|
|
925
|
+
def x
|
|
926
|
+
reflected_string("x")
|
|
927
|
+
end
|
|
928
|
+
|
|
929
|
+
def x=(v)
|
|
930
|
+
set_reflected_string("x", v)
|
|
931
|
+
end
|
|
932
|
+
|
|
933
|
+
def y
|
|
934
|
+
reflected_string("y")
|
|
935
|
+
end
|
|
936
|
+
|
|
937
|
+
def y=(v)
|
|
938
|
+
set_reflected_string("y", v)
|
|
939
|
+
end
|
|
940
|
+
|
|
941
|
+
def width
|
|
942
|
+
reflected_string("width")
|
|
943
|
+
end
|
|
944
|
+
|
|
945
|
+
def width=(v)
|
|
946
|
+
set_reflected_string("width", v)
|
|
947
|
+
end
|
|
948
|
+
|
|
949
|
+
def height
|
|
950
|
+
reflected_string("height")
|
|
951
|
+
end
|
|
952
|
+
|
|
953
|
+
def height=(v)
|
|
954
|
+
set_reflected_string("height", v)
|
|
955
|
+
end
|
|
956
|
+
|
|
957
|
+
def mask_units
|
|
958
|
+
reflected_string("maskUnits")
|
|
959
|
+
end
|
|
960
|
+
|
|
961
|
+
def mask_units=(v)
|
|
962
|
+
set_reflected_string("maskUnits", v)
|
|
963
|
+
end
|
|
964
|
+
|
|
965
|
+
def mask_content_units
|
|
966
|
+
reflected_string("maskContentUnits")
|
|
967
|
+
end
|
|
968
|
+
|
|
969
|
+
def mask_content_units=(v)
|
|
970
|
+
set_reflected_string("maskContentUnits", v)
|
|
971
|
+
end
|
|
972
|
+
|
|
973
|
+
def __js_get__(key)
|
|
974
|
+
case key
|
|
975
|
+
when "x"
|
|
976
|
+
x
|
|
977
|
+
when "y"
|
|
978
|
+
y
|
|
979
|
+
when "width"
|
|
980
|
+
width
|
|
981
|
+
when "height"
|
|
982
|
+
height
|
|
983
|
+
when "maskUnits"
|
|
984
|
+
mask_units
|
|
985
|
+
when "maskContentUnits"
|
|
986
|
+
mask_content_units
|
|
987
|
+
else
|
|
988
|
+
super
|
|
989
|
+
end
|
|
990
|
+
end
|
|
991
|
+
|
|
992
|
+
def __js_set__(key, value)
|
|
993
|
+
case key
|
|
994
|
+
when "x"
|
|
995
|
+
self.x = value
|
|
996
|
+
when "y"
|
|
997
|
+
self.y = value
|
|
998
|
+
when "width"
|
|
999
|
+
self.width = value
|
|
1000
|
+
when "height"
|
|
1001
|
+
self.height = value
|
|
1002
|
+
when "maskUnits"
|
|
1003
|
+
self.mask_units = value
|
|
1004
|
+
when "maskContentUnits"
|
|
1005
|
+
self.mask_content_units = value
|
|
1006
|
+
else
|
|
1007
|
+
super
|
|
1008
|
+
end
|
|
1009
|
+
end
|
|
1010
|
+
end
|
|
1011
|
+
|
|
1012
|
+
# `<clipPath>` — clipping region.
|
|
1013
|
+
class SVGClipPathElement < SVGElement
|
|
1014
|
+
def clip_path_units
|
|
1015
|
+
reflected_string("clipPathUnits")
|
|
1016
|
+
end
|
|
1017
|
+
|
|
1018
|
+
def clip_path_units=(v)
|
|
1019
|
+
set_reflected_string("clipPathUnits", v)
|
|
1020
|
+
end
|
|
1021
|
+
|
|
1022
|
+
def __js_get__(key)
|
|
1023
|
+
key == "clipPathUnits" ? clip_path_units : super
|
|
1024
|
+
end
|
|
1025
|
+
|
|
1026
|
+
def __js_set__(key, value)
|
|
1027
|
+
key == "clipPathUnits" ? (self.clip_path_units = value) : super
|
|
1028
|
+
end
|
|
1029
|
+
end
|
|
1030
|
+
|
|
1031
|
+
# `<pattern>` — tile-based paint server.
|
|
1032
|
+
class SVGPatternElement < SVGElement
|
|
1033
|
+
def x
|
|
1034
|
+
reflected_string("x")
|
|
1035
|
+
end
|
|
1036
|
+
|
|
1037
|
+
def x=(v)
|
|
1038
|
+
set_reflected_string("x", v)
|
|
1039
|
+
end
|
|
1040
|
+
|
|
1041
|
+
def y
|
|
1042
|
+
reflected_string("y")
|
|
1043
|
+
end
|
|
1044
|
+
|
|
1045
|
+
def y=(v)
|
|
1046
|
+
set_reflected_string("y", v)
|
|
1047
|
+
end
|
|
1048
|
+
|
|
1049
|
+
def width
|
|
1050
|
+
reflected_string("width")
|
|
1051
|
+
end
|
|
1052
|
+
|
|
1053
|
+
def width=(v)
|
|
1054
|
+
set_reflected_string("width", v)
|
|
1055
|
+
end
|
|
1056
|
+
|
|
1057
|
+
def height
|
|
1058
|
+
reflected_string("height")
|
|
1059
|
+
end
|
|
1060
|
+
|
|
1061
|
+
def height=(v)
|
|
1062
|
+
set_reflected_string("height", v)
|
|
1063
|
+
end
|
|
1064
|
+
|
|
1065
|
+
def pattern_units
|
|
1066
|
+
reflected_string("patternUnits")
|
|
1067
|
+
end
|
|
1068
|
+
|
|
1069
|
+
def pattern_units=(v)
|
|
1070
|
+
set_reflected_string("patternUnits", v)
|
|
1071
|
+
end
|
|
1072
|
+
|
|
1073
|
+
def pattern_content_units
|
|
1074
|
+
reflected_string("patternContentUnits")
|
|
1075
|
+
end
|
|
1076
|
+
|
|
1077
|
+
def pattern_content_units=(v)
|
|
1078
|
+
set_reflected_string("patternContentUnits", v)
|
|
1079
|
+
end
|
|
1080
|
+
|
|
1081
|
+
def href
|
|
1082
|
+
reflected_string("href")
|
|
1083
|
+
end
|
|
1084
|
+
|
|
1085
|
+
def href=(v)
|
|
1086
|
+
set_reflected_string("href", v)
|
|
1087
|
+
end
|
|
1088
|
+
|
|
1089
|
+
def __js_get__(key)
|
|
1090
|
+
case key
|
|
1091
|
+
when "x"
|
|
1092
|
+
x
|
|
1093
|
+
when "y"
|
|
1094
|
+
y
|
|
1095
|
+
when "width"
|
|
1096
|
+
width
|
|
1097
|
+
when "height"
|
|
1098
|
+
height
|
|
1099
|
+
when "patternUnits"
|
|
1100
|
+
pattern_units
|
|
1101
|
+
when "patternContentUnits"
|
|
1102
|
+
pattern_content_units
|
|
1103
|
+
when "href"
|
|
1104
|
+
href
|
|
1105
|
+
else
|
|
1106
|
+
super
|
|
1107
|
+
end
|
|
1108
|
+
end
|
|
1109
|
+
|
|
1110
|
+
def __js_set__(key, value)
|
|
1111
|
+
case key
|
|
1112
|
+
when "x"
|
|
1113
|
+
self.x = value
|
|
1114
|
+
when "y"
|
|
1115
|
+
self.y = value
|
|
1116
|
+
when "width"
|
|
1117
|
+
self.width = value
|
|
1118
|
+
when "height"
|
|
1119
|
+
self.height = value
|
|
1120
|
+
when "patternUnits"
|
|
1121
|
+
self.pattern_units = value
|
|
1122
|
+
when "patternContentUnits"
|
|
1123
|
+
self.pattern_content_units = value
|
|
1124
|
+
when "href"
|
|
1125
|
+
self.href = value
|
|
1126
|
+
else
|
|
1127
|
+
super
|
|
1128
|
+
end
|
|
1129
|
+
end
|
|
1130
|
+
end
|
|
1131
|
+
|
|
1132
|
+
# `<linearGradient>` — linear color gradient paint server.
|
|
1133
|
+
class SVGLinearGradientElement < SVGElement
|
|
1134
|
+
def x1
|
|
1135
|
+
reflected_string("x1")
|
|
1136
|
+
end
|
|
1137
|
+
|
|
1138
|
+
def x1=(v)
|
|
1139
|
+
set_reflected_string("x1", v)
|
|
1140
|
+
end
|
|
1141
|
+
|
|
1142
|
+
def y1
|
|
1143
|
+
reflected_string("y1")
|
|
1144
|
+
end
|
|
1145
|
+
|
|
1146
|
+
def y1=(v)
|
|
1147
|
+
set_reflected_string("y1", v)
|
|
1148
|
+
end
|
|
1149
|
+
|
|
1150
|
+
def x2
|
|
1151
|
+
reflected_string("x2")
|
|
1152
|
+
end
|
|
1153
|
+
|
|
1154
|
+
def x2=(v)
|
|
1155
|
+
set_reflected_string("x2", v)
|
|
1156
|
+
end
|
|
1157
|
+
|
|
1158
|
+
def y2
|
|
1159
|
+
reflected_string("y2")
|
|
1160
|
+
end
|
|
1161
|
+
|
|
1162
|
+
def y2=(v)
|
|
1163
|
+
set_reflected_string("y2", v)
|
|
1164
|
+
end
|
|
1165
|
+
|
|
1166
|
+
def gradient_units
|
|
1167
|
+
reflected_string("gradientUnits")
|
|
1168
|
+
end
|
|
1169
|
+
|
|
1170
|
+
def gradient_units=(v)
|
|
1171
|
+
set_reflected_string("gradientUnits", v)
|
|
1172
|
+
end
|
|
1173
|
+
|
|
1174
|
+
def gradient_transform
|
|
1175
|
+
reflected_string("gradientTransform")
|
|
1176
|
+
end
|
|
1177
|
+
|
|
1178
|
+
def gradient_transform=(v)
|
|
1179
|
+
set_reflected_string("gradientTransform", v)
|
|
1180
|
+
end
|
|
1181
|
+
|
|
1182
|
+
def spread_method
|
|
1183
|
+
reflected_string("spreadMethod")
|
|
1184
|
+
end
|
|
1185
|
+
|
|
1186
|
+
def spread_method=(v)
|
|
1187
|
+
set_reflected_string("spreadMethod", v)
|
|
1188
|
+
end
|
|
1189
|
+
|
|
1190
|
+
def href
|
|
1191
|
+
reflected_string("href")
|
|
1192
|
+
end
|
|
1193
|
+
|
|
1194
|
+
def href=(v)
|
|
1195
|
+
set_reflected_string("href", v)
|
|
1196
|
+
end
|
|
1197
|
+
|
|
1198
|
+
def __js_get__(key)
|
|
1199
|
+
case key
|
|
1200
|
+
when "x1"
|
|
1201
|
+
x1
|
|
1202
|
+
when "y1"
|
|
1203
|
+
y1
|
|
1204
|
+
when "x2"
|
|
1205
|
+
x2
|
|
1206
|
+
when "y2"
|
|
1207
|
+
y2
|
|
1208
|
+
when "gradientUnits"
|
|
1209
|
+
gradient_units
|
|
1210
|
+
when "gradientTransform"
|
|
1211
|
+
gradient_transform
|
|
1212
|
+
when "spreadMethod"
|
|
1213
|
+
spread_method
|
|
1214
|
+
when "href"
|
|
1215
|
+
href
|
|
1216
|
+
else
|
|
1217
|
+
super
|
|
1218
|
+
end
|
|
1219
|
+
end
|
|
1220
|
+
|
|
1221
|
+
def __js_set__(key, value)
|
|
1222
|
+
case key
|
|
1223
|
+
when "x1"
|
|
1224
|
+
self.x1 = value
|
|
1225
|
+
when "y1"
|
|
1226
|
+
self.y1 = value
|
|
1227
|
+
when "x2"
|
|
1228
|
+
self.x2 = value
|
|
1229
|
+
when "y2"
|
|
1230
|
+
self.y2 = value
|
|
1231
|
+
when "gradientUnits"
|
|
1232
|
+
self.gradient_units = value
|
|
1233
|
+
when "gradientTransform"
|
|
1234
|
+
self.gradient_transform = value
|
|
1235
|
+
when "spreadMethod"
|
|
1236
|
+
self.spread_method = value
|
|
1237
|
+
when "href"
|
|
1238
|
+
self.href = value
|
|
1239
|
+
else
|
|
1240
|
+
super
|
|
1241
|
+
end
|
|
1242
|
+
end
|
|
1243
|
+
end
|
|
1244
|
+
|
|
1245
|
+
# `<radialGradient>` — radial color gradient paint server.
|
|
1246
|
+
class SVGRadialGradientElement < SVGElement
|
|
1247
|
+
def cx
|
|
1248
|
+
reflected_string("cx")
|
|
1249
|
+
end
|
|
1250
|
+
|
|
1251
|
+
def cx=(v)
|
|
1252
|
+
set_reflected_string("cx", v)
|
|
1253
|
+
end
|
|
1254
|
+
|
|
1255
|
+
def cy
|
|
1256
|
+
reflected_string("cy")
|
|
1257
|
+
end
|
|
1258
|
+
|
|
1259
|
+
def cy=(v)
|
|
1260
|
+
set_reflected_string("cy", v)
|
|
1261
|
+
end
|
|
1262
|
+
|
|
1263
|
+
def r
|
|
1264
|
+
reflected_string("r")
|
|
1265
|
+
end
|
|
1266
|
+
|
|
1267
|
+
def r=(v)
|
|
1268
|
+
set_reflected_string("r", v)
|
|
1269
|
+
end
|
|
1270
|
+
|
|
1271
|
+
def fx
|
|
1272
|
+
reflected_string("fx")
|
|
1273
|
+
end
|
|
1274
|
+
|
|
1275
|
+
def fx=(v)
|
|
1276
|
+
set_reflected_string("fx", v)
|
|
1277
|
+
end
|
|
1278
|
+
|
|
1279
|
+
def fy
|
|
1280
|
+
reflected_string("fy")
|
|
1281
|
+
end
|
|
1282
|
+
|
|
1283
|
+
def fy=(v)
|
|
1284
|
+
set_reflected_string("fy", v)
|
|
1285
|
+
end
|
|
1286
|
+
|
|
1287
|
+
def fr
|
|
1288
|
+
reflected_string("fr")
|
|
1289
|
+
end
|
|
1290
|
+
|
|
1291
|
+
def fr=(v)
|
|
1292
|
+
set_reflected_string("fr", v)
|
|
1293
|
+
end
|
|
1294
|
+
|
|
1295
|
+
def gradient_units
|
|
1296
|
+
reflected_string("gradientUnits")
|
|
1297
|
+
end
|
|
1298
|
+
|
|
1299
|
+
def gradient_units=(v)
|
|
1300
|
+
set_reflected_string("gradientUnits", v)
|
|
1301
|
+
end
|
|
1302
|
+
|
|
1303
|
+
def gradient_transform
|
|
1304
|
+
reflected_string("gradientTransform")
|
|
1305
|
+
end
|
|
1306
|
+
|
|
1307
|
+
def gradient_transform=(v)
|
|
1308
|
+
set_reflected_string("gradientTransform", v)
|
|
1309
|
+
end
|
|
1310
|
+
|
|
1311
|
+
def spread_method
|
|
1312
|
+
reflected_string("spreadMethod")
|
|
1313
|
+
end
|
|
1314
|
+
|
|
1315
|
+
def spread_method=(v)
|
|
1316
|
+
set_reflected_string("spreadMethod", v)
|
|
1317
|
+
end
|
|
1318
|
+
|
|
1319
|
+
def href
|
|
1320
|
+
reflected_string("href")
|
|
1321
|
+
end
|
|
1322
|
+
|
|
1323
|
+
def href=(v)
|
|
1324
|
+
set_reflected_string("href", v)
|
|
1325
|
+
end
|
|
1326
|
+
|
|
1327
|
+
def __js_get__(key)
|
|
1328
|
+
case key
|
|
1329
|
+
when "cx"
|
|
1330
|
+
cx
|
|
1331
|
+
when "cy"
|
|
1332
|
+
cy
|
|
1333
|
+
when "r"
|
|
1334
|
+
r
|
|
1335
|
+
when "fx"
|
|
1336
|
+
fx
|
|
1337
|
+
when "fy"
|
|
1338
|
+
fy
|
|
1339
|
+
when "fr"
|
|
1340
|
+
fr
|
|
1341
|
+
when "gradientUnits"
|
|
1342
|
+
gradient_units
|
|
1343
|
+
when "gradientTransform"
|
|
1344
|
+
gradient_transform
|
|
1345
|
+
when "spreadMethod"
|
|
1346
|
+
spread_method
|
|
1347
|
+
when "href"
|
|
1348
|
+
href
|
|
1349
|
+
else
|
|
1350
|
+
super
|
|
1351
|
+
end
|
|
1352
|
+
end
|
|
1353
|
+
|
|
1354
|
+
def __js_set__(key, value)
|
|
1355
|
+
case key
|
|
1356
|
+
when "cx"
|
|
1357
|
+
self.cx = value
|
|
1358
|
+
when "cy"
|
|
1359
|
+
self.cy = value
|
|
1360
|
+
when "r"
|
|
1361
|
+
self.r = value
|
|
1362
|
+
when "fx"
|
|
1363
|
+
self.fx = value
|
|
1364
|
+
when "fy"
|
|
1365
|
+
self.fy = value
|
|
1366
|
+
when "fr"
|
|
1367
|
+
self.fr = value
|
|
1368
|
+
when "gradientUnits"
|
|
1369
|
+
self.gradient_units = value
|
|
1370
|
+
when "gradientTransform"
|
|
1371
|
+
self.gradient_transform = value
|
|
1372
|
+
when "spreadMethod"
|
|
1373
|
+
self.spread_method = value
|
|
1374
|
+
when "href"
|
|
1375
|
+
self.href = value
|
|
1376
|
+
else
|
|
1377
|
+
super
|
|
1378
|
+
end
|
|
1379
|
+
end
|
|
1380
|
+
end
|
|
1381
|
+
|
|
1382
|
+
# `<stop>` — a single gradient color stop.
|
|
1383
|
+
class SVGStopElement < SVGElement
|
|
1384
|
+
def offset
|
|
1385
|
+
reflected_string("offset")
|
|
1386
|
+
end
|
|
1387
|
+
|
|
1388
|
+
def offset=(v)
|
|
1389
|
+
set_reflected_string("offset", v)
|
|
1390
|
+
end
|
|
1391
|
+
|
|
1392
|
+
def __js_get__(key)
|
|
1393
|
+
key == "offset" ? offset : super
|
|
1394
|
+
end
|
|
1395
|
+
|
|
1396
|
+
def __js_set__(key, value)
|
|
1397
|
+
key == "offset" ? (self.offset = value) : super
|
|
1398
|
+
end
|
|
1399
|
+
end
|
|
1400
|
+
|
|
1401
|
+
# `<filter>` — filter region + primitive units + href.
|
|
1402
|
+
class SVGFilterElement < SVGElement
|
|
1403
|
+
def x
|
|
1404
|
+
reflected_string("x")
|
|
1405
|
+
end
|
|
1406
|
+
|
|
1407
|
+
def x=(v)
|
|
1408
|
+
set_reflected_string("x", v)
|
|
1409
|
+
end
|
|
1410
|
+
|
|
1411
|
+
def y
|
|
1412
|
+
reflected_string("y")
|
|
1413
|
+
end
|
|
1414
|
+
|
|
1415
|
+
def y=(v)
|
|
1416
|
+
set_reflected_string("y", v)
|
|
1417
|
+
end
|
|
1418
|
+
|
|
1419
|
+
def width
|
|
1420
|
+
reflected_string("width")
|
|
1421
|
+
end
|
|
1422
|
+
|
|
1423
|
+
def width=(v)
|
|
1424
|
+
set_reflected_string("width", v)
|
|
1425
|
+
end
|
|
1426
|
+
|
|
1427
|
+
def height
|
|
1428
|
+
reflected_string("height")
|
|
1429
|
+
end
|
|
1430
|
+
|
|
1431
|
+
def height=(v)
|
|
1432
|
+
set_reflected_string("height", v)
|
|
1433
|
+
end
|
|
1434
|
+
|
|
1435
|
+
def filter_units
|
|
1436
|
+
reflected_string("filterUnits")
|
|
1437
|
+
end
|
|
1438
|
+
|
|
1439
|
+
def filter_units=(v)
|
|
1440
|
+
set_reflected_string("filterUnits", v)
|
|
1441
|
+
end
|
|
1442
|
+
|
|
1443
|
+
def primitive_units
|
|
1444
|
+
reflected_string("primitiveUnits")
|
|
1445
|
+
end
|
|
1446
|
+
|
|
1447
|
+
def primitive_units=(v)
|
|
1448
|
+
set_reflected_string("primitiveUnits", v)
|
|
1449
|
+
end
|
|
1450
|
+
|
|
1451
|
+
def href
|
|
1452
|
+
reflected_string("href")
|
|
1453
|
+
end
|
|
1454
|
+
|
|
1455
|
+
def href=(v)
|
|
1456
|
+
set_reflected_string("href", v)
|
|
1457
|
+
end
|
|
1458
|
+
|
|
1459
|
+
def __js_get__(key)
|
|
1460
|
+
case key
|
|
1461
|
+
when "x"
|
|
1462
|
+
x
|
|
1463
|
+
when "y"
|
|
1464
|
+
y
|
|
1465
|
+
when "width"
|
|
1466
|
+
width
|
|
1467
|
+
when "height"
|
|
1468
|
+
height
|
|
1469
|
+
when "filterUnits"
|
|
1470
|
+
filter_units
|
|
1471
|
+
when "primitiveUnits"
|
|
1472
|
+
primitive_units
|
|
1473
|
+
when "href"
|
|
1474
|
+
href
|
|
1475
|
+
else
|
|
1476
|
+
super
|
|
1477
|
+
end
|
|
1478
|
+
end
|
|
1479
|
+
|
|
1480
|
+
def __js_set__(key, value)
|
|
1481
|
+
case key
|
|
1482
|
+
when "x"
|
|
1483
|
+
self.x = value
|
|
1484
|
+
when "y"
|
|
1485
|
+
self.y = value
|
|
1486
|
+
when "width"
|
|
1487
|
+
self.width = value
|
|
1488
|
+
when "height"
|
|
1489
|
+
self.height = value
|
|
1490
|
+
when "filterUnits"
|
|
1491
|
+
self.filter_units = value
|
|
1492
|
+
when "primitiveUnits"
|
|
1493
|
+
self.primitive_units = value
|
|
1494
|
+
when "href"
|
|
1495
|
+
self.href = value
|
|
1496
|
+
else
|
|
1497
|
+
super
|
|
1498
|
+
end
|
|
1499
|
+
end
|
|
1500
|
+
end
|
|
1501
|
+
|
|
1502
|
+
# `<marker>` — arrowhead / line marker.
|
|
1503
|
+
class SVGMarkerElement < SVGElement
|
|
1504
|
+
def ref_x
|
|
1505
|
+
reflected_string("refX")
|
|
1506
|
+
end
|
|
1507
|
+
|
|
1508
|
+
def ref_x=(v)
|
|
1509
|
+
set_reflected_string("refX", v)
|
|
1510
|
+
end
|
|
1511
|
+
|
|
1512
|
+
def ref_y
|
|
1513
|
+
reflected_string("refY")
|
|
1514
|
+
end
|
|
1515
|
+
|
|
1516
|
+
def ref_y=(v)
|
|
1517
|
+
set_reflected_string("refY", v)
|
|
1518
|
+
end
|
|
1519
|
+
|
|
1520
|
+
def marker_width
|
|
1521
|
+
reflected_string("markerWidth")
|
|
1522
|
+
end
|
|
1523
|
+
|
|
1524
|
+
def marker_width=(v)
|
|
1525
|
+
set_reflected_string("markerWidth", v)
|
|
1526
|
+
end
|
|
1527
|
+
|
|
1528
|
+
def marker_height
|
|
1529
|
+
reflected_string("markerHeight")
|
|
1530
|
+
end
|
|
1531
|
+
|
|
1532
|
+
def marker_height=(v)
|
|
1533
|
+
set_reflected_string("markerHeight", v)
|
|
1534
|
+
end
|
|
1535
|
+
|
|
1536
|
+
def orient
|
|
1537
|
+
reflected_string("orient")
|
|
1538
|
+
end
|
|
1539
|
+
|
|
1540
|
+
def orient=(v)
|
|
1541
|
+
set_reflected_string("orient", v)
|
|
1542
|
+
end
|
|
1543
|
+
|
|
1544
|
+
def marker_units
|
|
1545
|
+
reflected_string("markerUnits")
|
|
1546
|
+
end
|
|
1547
|
+
|
|
1548
|
+
def marker_units=(v)
|
|
1549
|
+
set_reflected_string("markerUnits", v)
|
|
1550
|
+
end
|
|
1551
|
+
|
|
1552
|
+
def view_box
|
|
1553
|
+
reflected_string("viewBox")
|
|
1554
|
+
end
|
|
1555
|
+
|
|
1556
|
+
def view_box=(v)
|
|
1557
|
+
set_reflected_string("viewBox", v)
|
|
1558
|
+
end
|
|
1559
|
+
|
|
1560
|
+
def preserve_aspect_ratio
|
|
1561
|
+
reflected_string("preserveAspectRatio")
|
|
1562
|
+
end
|
|
1563
|
+
|
|
1564
|
+
def preserve_aspect_ratio=(v)
|
|
1565
|
+
set_reflected_string("preserveAspectRatio", v)
|
|
1566
|
+
end
|
|
1567
|
+
|
|
1568
|
+
def __js_get__(key)
|
|
1569
|
+
case key
|
|
1570
|
+
when "refX"
|
|
1571
|
+
ref_x
|
|
1572
|
+
when "refY"
|
|
1573
|
+
ref_y
|
|
1574
|
+
when "markerWidth"
|
|
1575
|
+
marker_width
|
|
1576
|
+
when "markerHeight"
|
|
1577
|
+
marker_height
|
|
1578
|
+
when "orient"
|
|
1579
|
+
orient
|
|
1580
|
+
when "markerUnits"
|
|
1581
|
+
marker_units
|
|
1582
|
+
when "viewBox"
|
|
1583
|
+
view_box
|
|
1584
|
+
when "preserveAspectRatio"
|
|
1585
|
+
preserve_aspect_ratio
|
|
1586
|
+
else
|
|
1587
|
+
super
|
|
1588
|
+
end
|
|
1589
|
+
end
|
|
1590
|
+
|
|
1591
|
+
def __js_set__(key, value)
|
|
1592
|
+
case key
|
|
1593
|
+
when "refX"
|
|
1594
|
+
self.ref_x = value
|
|
1595
|
+
when "refY"
|
|
1596
|
+
self.ref_y = value
|
|
1597
|
+
when "markerWidth"
|
|
1598
|
+
self.marker_width = value
|
|
1599
|
+
when "markerHeight"
|
|
1600
|
+
self.marker_height = value
|
|
1601
|
+
when "orient"
|
|
1602
|
+
self.orient = value
|
|
1603
|
+
when "markerUnits"
|
|
1604
|
+
self.marker_units = value
|
|
1605
|
+
when "viewBox"
|
|
1606
|
+
self.view_box = value
|
|
1607
|
+
when "preserveAspectRatio"
|
|
1608
|
+
self.preserve_aspect_ratio = value
|
|
1609
|
+
else
|
|
1610
|
+
super
|
|
1611
|
+
end
|
|
1612
|
+
end
|
|
1613
|
+
end
|
|
1614
|
+
|
|
1615
|
+
# `<a>` (in the SVG namespace) — a hyperlink wrapping SVG content.
|
|
1616
|
+
# Distinct from `HTMLAnchorElement` (the HTML `<a>`).
|
|
1617
|
+
class SVGAElement < SVGElement
|
|
1618
|
+
def href
|
|
1619
|
+
reflected_string("href")
|
|
1620
|
+
end
|
|
1621
|
+
|
|
1622
|
+
def href=(v)
|
|
1623
|
+
set_reflected_string("href", v)
|
|
1624
|
+
end
|
|
1625
|
+
|
|
1626
|
+
def target
|
|
1627
|
+
reflected_string("target")
|
|
1628
|
+
end
|
|
1629
|
+
|
|
1630
|
+
def target=(v)
|
|
1631
|
+
set_reflected_string("target", v)
|
|
1632
|
+
end
|
|
1633
|
+
|
|
1634
|
+
def download
|
|
1635
|
+
reflected_string("download")
|
|
1636
|
+
end
|
|
1637
|
+
|
|
1638
|
+
def download=(v)
|
|
1639
|
+
set_reflected_string("download", v)
|
|
1640
|
+
end
|
|
1641
|
+
|
|
1642
|
+
def rel
|
|
1643
|
+
reflected_string("rel")
|
|
1644
|
+
end
|
|
1645
|
+
|
|
1646
|
+
def rel=(v)
|
|
1647
|
+
set_reflected_string("rel", v)
|
|
1648
|
+
end
|
|
1649
|
+
|
|
1650
|
+
def type
|
|
1651
|
+
reflected_string("type")
|
|
1652
|
+
end
|
|
1653
|
+
|
|
1654
|
+
def type=(v)
|
|
1655
|
+
set_reflected_string("type", v)
|
|
1656
|
+
end
|
|
1657
|
+
|
|
1658
|
+
def __js_get__(key)
|
|
1659
|
+
case key
|
|
1660
|
+
when "href"
|
|
1661
|
+
href
|
|
1662
|
+
when "target"
|
|
1663
|
+
target
|
|
1664
|
+
when "download"
|
|
1665
|
+
download
|
|
1666
|
+
when "rel"
|
|
1667
|
+
rel
|
|
1668
|
+
when "type"
|
|
1669
|
+
type
|
|
1670
|
+
else
|
|
1671
|
+
super
|
|
1672
|
+
end
|
|
1673
|
+
end
|
|
1674
|
+
|
|
1675
|
+
def __js_set__(key, value)
|
|
1676
|
+
case key
|
|
1677
|
+
when "href"
|
|
1678
|
+
self.href = value
|
|
1679
|
+
when "target"
|
|
1680
|
+
self.target = value
|
|
1681
|
+
when "download"
|
|
1682
|
+
self.download = value
|
|
1683
|
+
when "rel"
|
|
1684
|
+
self.rel = value
|
|
1685
|
+
when "type"
|
|
1686
|
+
self.type = value
|
|
1687
|
+
else
|
|
1688
|
+
super
|
|
1689
|
+
end
|
|
1690
|
+
end
|
|
1691
|
+
end
|
|
1692
|
+
|
|
1693
|
+
# `<textPath>` — text laid out along a path.
|
|
1694
|
+
class SVGTextPathElement < SVGElement
|
|
1695
|
+
def href
|
|
1696
|
+
reflected_string("href")
|
|
1697
|
+
end
|
|
1698
|
+
|
|
1699
|
+
def href=(v)
|
|
1700
|
+
set_reflected_string("href", v)
|
|
1701
|
+
end
|
|
1702
|
+
|
|
1703
|
+
def start_offset
|
|
1704
|
+
reflected_string("startOffset")
|
|
1705
|
+
end
|
|
1706
|
+
|
|
1707
|
+
def start_offset=(v)
|
|
1708
|
+
set_reflected_string("startOffset", v)
|
|
1709
|
+
end
|
|
1710
|
+
|
|
1711
|
+
def method_attr
|
|
1712
|
+
reflected_string("method")
|
|
1713
|
+
end
|
|
1714
|
+
|
|
1715
|
+
def method_attr=(v)
|
|
1716
|
+
set_reflected_string("method", v)
|
|
1717
|
+
end
|
|
1718
|
+
|
|
1719
|
+
def spacing
|
|
1720
|
+
reflected_string("spacing")
|
|
1721
|
+
end
|
|
1722
|
+
|
|
1723
|
+
def spacing=(v)
|
|
1724
|
+
set_reflected_string("spacing", v)
|
|
1725
|
+
end
|
|
1726
|
+
|
|
1727
|
+
def text_length
|
|
1728
|
+
reflected_string("textLength")
|
|
1729
|
+
end
|
|
1730
|
+
|
|
1731
|
+
def text_length=(v)
|
|
1732
|
+
set_reflected_string("textLength", v)
|
|
1733
|
+
end
|
|
1734
|
+
|
|
1735
|
+
def length_adjust
|
|
1736
|
+
reflected_string("lengthAdjust")
|
|
1737
|
+
end
|
|
1738
|
+
|
|
1739
|
+
def length_adjust=(v)
|
|
1740
|
+
set_reflected_string("lengthAdjust", v)
|
|
1741
|
+
end
|
|
1742
|
+
|
|
1743
|
+
def __js_get__(key)
|
|
1744
|
+
case key
|
|
1745
|
+
when "href"
|
|
1746
|
+
href
|
|
1747
|
+
when "startOffset"
|
|
1748
|
+
start_offset
|
|
1749
|
+
when "method"
|
|
1750
|
+
method_attr
|
|
1751
|
+
when "spacing"
|
|
1752
|
+
spacing
|
|
1753
|
+
when "textLength"
|
|
1754
|
+
text_length
|
|
1755
|
+
when "lengthAdjust"
|
|
1756
|
+
length_adjust
|
|
1757
|
+
else
|
|
1758
|
+
super
|
|
1759
|
+
end
|
|
1760
|
+
end
|
|
1761
|
+
|
|
1762
|
+
def __js_set__(key, value)
|
|
1763
|
+
case key
|
|
1764
|
+
when "href"
|
|
1765
|
+
self.href = value
|
|
1766
|
+
when "startOffset"
|
|
1767
|
+
self.start_offset = value
|
|
1768
|
+
when "method"
|
|
1769
|
+
self.method_attr = value
|
|
1770
|
+
when "spacing"
|
|
1771
|
+
self.spacing = value
|
|
1772
|
+
when "textLength"
|
|
1773
|
+
self.text_length = value
|
|
1774
|
+
when "lengthAdjust"
|
|
1775
|
+
self.length_adjust = value
|
|
1776
|
+
else
|
|
1777
|
+
super
|
|
1778
|
+
end
|
|
1779
|
+
end
|
|
1780
|
+
end
|
|
1781
|
+
|
|
1782
|
+
# `<view>` — a named view region referenced by SVG fragment identifier.
|
|
1783
|
+
class SVGViewElement < SVGElement
|
|
1784
|
+
def view_box
|
|
1785
|
+
reflected_string("viewBox")
|
|
1786
|
+
end
|
|
1787
|
+
|
|
1788
|
+
def view_box=(v)
|
|
1789
|
+
set_reflected_string("viewBox", v)
|
|
1790
|
+
end
|
|
1791
|
+
|
|
1792
|
+
def preserve_aspect_ratio
|
|
1793
|
+
reflected_string("preserveAspectRatio")
|
|
1794
|
+
end
|
|
1795
|
+
|
|
1796
|
+
def preserve_aspect_ratio=(v)
|
|
1797
|
+
set_reflected_string("preserveAspectRatio", v)
|
|
1798
|
+
end
|
|
1799
|
+
|
|
1800
|
+
def zoom_and_pan
|
|
1801
|
+
reflected_string("zoomAndPan")
|
|
1802
|
+
end
|
|
1803
|
+
|
|
1804
|
+
def zoom_and_pan=(v)
|
|
1805
|
+
set_reflected_string("zoomAndPan", v)
|
|
1806
|
+
end
|
|
1807
|
+
|
|
1808
|
+
def __js_get__(key)
|
|
1809
|
+
case key
|
|
1810
|
+
when "viewBox"
|
|
1811
|
+
view_box
|
|
1812
|
+
when "preserveAspectRatio"
|
|
1813
|
+
preserve_aspect_ratio
|
|
1814
|
+
when "zoomAndPan"
|
|
1815
|
+
zoom_and_pan
|
|
1816
|
+
else
|
|
1817
|
+
super
|
|
1818
|
+
end
|
|
1819
|
+
end
|
|
1820
|
+
|
|
1821
|
+
def __js_set__(key, value)
|
|
1822
|
+
case key
|
|
1823
|
+
when "viewBox"
|
|
1824
|
+
self.view_box = value
|
|
1825
|
+
when "preserveAspectRatio"
|
|
1826
|
+
self.preserve_aspect_ratio = value
|
|
1827
|
+
when "zoomAndPan"
|
|
1828
|
+
self.zoom_and_pan = value
|
|
1829
|
+
else
|
|
1830
|
+
super
|
|
1831
|
+
end
|
|
1832
|
+
end
|
|
1833
|
+
end
|
|
1834
|
+
|
|
1835
|
+
# `<switch>` — conditionally renders the first child whose feature /
|
|
1836
|
+
# systemLanguage attributes match. No special own attributes.
|
|
1837
|
+
class SVGSwitchElement < SVGElement
|
|
1838
|
+
end
|
|
1839
|
+
|
|
1840
|
+
# `<metadata>` — XML metadata container; opaque to dommy.
|
|
1841
|
+
class SVGMetadataElement < SVGElement
|
|
1842
|
+
end
|
|
1843
|
+
|
|
1844
|
+
# ===== Filter primitives =====
|
|
1845
|
+
#
|
|
1846
|
+
# `<filter>`'s children. All inherit the standard region attrs
|
|
1847
|
+
# (x / y / width / height) plus `result` (the name of this
|
|
1848
|
+
# primitive's output, referenced by subsequent primitives via `in`).
|
|
1849
|
+
# Specific primitives add their own attributes.
|
|
1850
|
+
class SVGFilterPrimitiveElement < SVGElement
|
|
1851
|
+
def x
|
|
1852
|
+
reflected_string("x")
|
|
1853
|
+
end
|
|
1854
|
+
|
|
1855
|
+
def x=(v)
|
|
1856
|
+
set_reflected_string("x", v)
|
|
1857
|
+
end
|
|
1858
|
+
|
|
1859
|
+
def y
|
|
1860
|
+
reflected_string("y")
|
|
1861
|
+
end
|
|
1862
|
+
|
|
1863
|
+
def y=(v)
|
|
1864
|
+
set_reflected_string("y", v)
|
|
1865
|
+
end
|
|
1866
|
+
|
|
1867
|
+
def width
|
|
1868
|
+
reflected_string("width")
|
|
1869
|
+
end
|
|
1870
|
+
|
|
1871
|
+
def width=(v)
|
|
1872
|
+
set_reflected_string("width", v)
|
|
1873
|
+
end
|
|
1874
|
+
|
|
1875
|
+
def height
|
|
1876
|
+
reflected_string("height")
|
|
1877
|
+
end
|
|
1878
|
+
|
|
1879
|
+
def height=(v)
|
|
1880
|
+
set_reflected_string("height", v)
|
|
1881
|
+
end
|
|
1882
|
+
|
|
1883
|
+
def result
|
|
1884
|
+
reflected_string("result")
|
|
1885
|
+
end
|
|
1886
|
+
|
|
1887
|
+
def result=(v)
|
|
1888
|
+
set_reflected_string("result", v)
|
|
1889
|
+
end
|
|
1890
|
+
|
|
1891
|
+
def __js_get__(key)
|
|
1892
|
+
case key
|
|
1893
|
+
when "x"
|
|
1894
|
+
x
|
|
1895
|
+
when "y"
|
|
1896
|
+
y
|
|
1897
|
+
when "width"
|
|
1898
|
+
width
|
|
1899
|
+
when "height"
|
|
1900
|
+
height
|
|
1901
|
+
when "result"
|
|
1902
|
+
result
|
|
1903
|
+
else
|
|
1904
|
+
super
|
|
1905
|
+
end
|
|
1906
|
+
end
|
|
1907
|
+
|
|
1908
|
+
def __js_set__(key, value)
|
|
1909
|
+
case key
|
|
1910
|
+
when "x"
|
|
1911
|
+
self.x = value
|
|
1912
|
+
when "y"
|
|
1913
|
+
self.y = value
|
|
1914
|
+
when "width"
|
|
1915
|
+
self.width = value
|
|
1916
|
+
when "height"
|
|
1917
|
+
self.height = value
|
|
1918
|
+
when "result"
|
|
1919
|
+
self.result = value
|
|
1920
|
+
else
|
|
1921
|
+
super
|
|
1922
|
+
end
|
|
1923
|
+
end
|
|
1924
|
+
end
|
|
1925
|
+
|
|
1926
|
+
# `<feGaussianBlur>` — Gaussian blur primitive.
|
|
1927
|
+
class SVGFEGaussianBlurElement < SVGFilterPrimitiveElement
|
|
1928
|
+
def in1
|
|
1929
|
+
reflected_string("in")
|
|
1930
|
+
end
|
|
1931
|
+
|
|
1932
|
+
def in1=(v)
|
|
1933
|
+
set_reflected_string("in", v)
|
|
1934
|
+
end
|
|
1935
|
+
|
|
1936
|
+
def std_deviation
|
|
1937
|
+
reflected_string("stdDeviation")
|
|
1938
|
+
end
|
|
1939
|
+
|
|
1940
|
+
def std_deviation=(v)
|
|
1941
|
+
set_reflected_string("stdDeviation", v)
|
|
1942
|
+
end
|
|
1943
|
+
|
|
1944
|
+
def edge_mode
|
|
1945
|
+
reflected_string("edgeMode")
|
|
1946
|
+
end
|
|
1947
|
+
|
|
1948
|
+
def edge_mode=(v)
|
|
1949
|
+
set_reflected_string("edgeMode", v)
|
|
1950
|
+
end
|
|
1951
|
+
|
|
1952
|
+
def __js_get__(key)
|
|
1953
|
+
case key
|
|
1954
|
+
when "in"
|
|
1955
|
+
in1
|
|
1956
|
+
when "stdDeviation"
|
|
1957
|
+
std_deviation
|
|
1958
|
+
when "edgeMode"
|
|
1959
|
+
edge_mode
|
|
1960
|
+
else
|
|
1961
|
+
super
|
|
1962
|
+
end
|
|
1963
|
+
end
|
|
1964
|
+
|
|
1965
|
+
def __js_set__(key, value)
|
|
1966
|
+
case key
|
|
1967
|
+
when "in"
|
|
1968
|
+
self.in1 = value
|
|
1969
|
+
when "stdDeviation"
|
|
1970
|
+
self.std_deviation = value
|
|
1971
|
+
when "edgeMode"
|
|
1972
|
+
self.edge_mode = value
|
|
1973
|
+
else
|
|
1974
|
+
super
|
|
1975
|
+
end
|
|
1976
|
+
end
|
|
1977
|
+
end
|
|
1978
|
+
|
|
1979
|
+
# `<feOffset>` — translates input by (dx, dy).
|
|
1980
|
+
class SVGFEOffsetElement < SVGFilterPrimitiveElement
|
|
1981
|
+
def in1
|
|
1982
|
+
reflected_string("in")
|
|
1983
|
+
end
|
|
1984
|
+
|
|
1985
|
+
def in1=(v)
|
|
1986
|
+
set_reflected_string("in", v)
|
|
1987
|
+
end
|
|
1988
|
+
|
|
1989
|
+
def dx
|
|
1990
|
+
reflected_string("dx")
|
|
1991
|
+
end
|
|
1992
|
+
|
|
1993
|
+
def dx=(v)
|
|
1994
|
+
set_reflected_string("dx", v)
|
|
1995
|
+
end
|
|
1996
|
+
|
|
1997
|
+
def dy
|
|
1998
|
+
reflected_string("dy")
|
|
1999
|
+
end
|
|
2000
|
+
|
|
2001
|
+
def dy=(v)
|
|
2002
|
+
set_reflected_string("dy", v)
|
|
2003
|
+
end
|
|
2004
|
+
|
|
2005
|
+
def __js_get__(key)
|
|
2006
|
+
case key
|
|
2007
|
+
when "in"
|
|
2008
|
+
in1
|
|
2009
|
+
when "dx"
|
|
2010
|
+
dx
|
|
2011
|
+
when "dy"
|
|
2012
|
+
dy
|
|
2013
|
+
else
|
|
2014
|
+
super
|
|
2015
|
+
end
|
|
2016
|
+
end
|
|
2017
|
+
|
|
2018
|
+
def __js_set__(key, value)
|
|
2019
|
+
case key
|
|
2020
|
+
when "in"
|
|
2021
|
+
self.in1 = value
|
|
2022
|
+
when "dx"
|
|
2023
|
+
self.dx = value
|
|
2024
|
+
when "dy"
|
|
2025
|
+
self.dy = value
|
|
2026
|
+
else
|
|
2027
|
+
super
|
|
2028
|
+
end
|
|
2029
|
+
end
|
|
2030
|
+
end
|
|
2031
|
+
|
|
2032
|
+
# `<feBlend>` — blends two inputs with a mode.
|
|
2033
|
+
class SVGFEBlendElement < SVGFilterPrimitiveElement
|
|
2034
|
+
def in1
|
|
2035
|
+
reflected_string("in")
|
|
2036
|
+
end
|
|
2037
|
+
|
|
2038
|
+
def in1=(v)
|
|
2039
|
+
set_reflected_string("in", v)
|
|
2040
|
+
end
|
|
2041
|
+
|
|
2042
|
+
def in2
|
|
2043
|
+
reflected_string("in2")
|
|
2044
|
+
end
|
|
2045
|
+
|
|
2046
|
+
def in2=(v)
|
|
2047
|
+
set_reflected_string("in2", v)
|
|
2048
|
+
end
|
|
2049
|
+
|
|
2050
|
+
def mode
|
|
2051
|
+
reflected_string("mode")
|
|
2052
|
+
end
|
|
2053
|
+
|
|
2054
|
+
def mode=(v)
|
|
2055
|
+
set_reflected_string("mode", v)
|
|
2056
|
+
end
|
|
2057
|
+
|
|
2058
|
+
def __js_get__(key)
|
|
2059
|
+
case key
|
|
2060
|
+
when "in"
|
|
2061
|
+
in1
|
|
2062
|
+
when "in2"
|
|
2063
|
+
in2
|
|
2064
|
+
when "mode"
|
|
2065
|
+
mode
|
|
2066
|
+
else
|
|
2067
|
+
super
|
|
2068
|
+
end
|
|
2069
|
+
end
|
|
2070
|
+
|
|
2071
|
+
def __js_set__(key, value)
|
|
2072
|
+
case key
|
|
2073
|
+
when "in"
|
|
2074
|
+
self.in1 = value
|
|
2075
|
+
when "in2"
|
|
2076
|
+
self.in2 = value
|
|
2077
|
+
when "mode"
|
|
2078
|
+
self.mode = value
|
|
2079
|
+
else
|
|
2080
|
+
super
|
|
2081
|
+
end
|
|
2082
|
+
end
|
|
2083
|
+
end
|
|
2084
|
+
|
|
2085
|
+
# `<feColorMatrix>` — applies a color matrix transformation.
|
|
2086
|
+
class SVGFEColorMatrixElement < SVGFilterPrimitiveElement
|
|
2087
|
+
def in1
|
|
2088
|
+
reflected_string("in")
|
|
2089
|
+
end
|
|
2090
|
+
|
|
2091
|
+
def in1=(v)
|
|
2092
|
+
set_reflected_string("in", v)
|
|
2093
|
+
end
|
|
2094
|
+
|
|
2095
|
+
def type
|
|
2096
|
+
reflected_string("type")
|
|
2097
|
+
end
|
|
2098
|
+
|
|
2099
|
+
def type=(v)
|
|
2100
|
+
set_reflected_string("type", v)
|
|
2101
|
+
end
|
|
2102
|
+
|
|
2103
|
+
def values
|
|
2104
|
+
reflected_string("values")
|
|
2105
|
+
end
|
|
2106
|
+
|
|
2107
|
+
def values=(v)
|
|
2108
|
+
set_reflected_string("values", v)
|
|
2109
|
+
end
|
|
2110
|
+
|
|
2111
|
+
def __js_get__(key)
|
|
2112
|
+
case key
|
|
2113
|
+
when "in"
|
|
2114
|
+
in1
|
|
2115
|
+
when "type"
|
|
2116
|
+
type
|
|
2117
|
+
when "values"
|
|
2118
|
+
values
|
|
2119
|
+
else
|
|
2120
|
+
super
|
|
2121
|
+
end
|
|
2122
|
+
end
|
|
2123
|
+
|
|
2124
|
+
def __js_set__(key, value)
|
|
2125
|
+
case key
|
|
2126
|
+
when "in"
|
|
2127
|
+
self.in1 = value
|
|
2128
|
+
when "type"
|
|
2129
|
+
self.type = value
|
|
2130
|
+
when "values"
|
|
2131
|
+
self.values = value
|
|
2132
|
+
else
|
|
2133
|
+
super
|
|
2134
|
+
end
|
|
2135
|
+
end
|
|
2136
|
+
end
|
|
2137
|
+
|
|
2138
|
+
# `<feFlood>` — fills the primitive region with a solid color.
|
|
2139
|
+
class SVGFEFloodElement < SVGFilterPrimitiveElement
|
|
2140
|
+
def flood_color
|
|
2141
|
+
reflected_string("flood-color")
|
|
2142
|
+
end
|
|
2143
|
+
|
|
2144
|
+
def flood_color=(v)
|
|
2145
|
+
set_reflected_string("flood-color", v)
|
|
2146
|
+
end
|
|
2147
|
+
|
|
2148
|
+
def flood_opacity
|
|
2149
|
+
reflected_string("flood-opacity")
|
|
2150
|
+
end
|
|
2151
|
+
|
|
2152
|
+
def flood_opacity=(v)
|
|
2153
|
+
set_reflected_string("flood-opacity", v)
|
|
2154
|
+
end
|
|
2155
|
+
|
|
2156
|
+
def __js_get__(key)
|
|
2157
|
+
case key
|
|
2158
|
+
when "flood-color"
|
|
2159
|
+
flood_color
|
|
2160
|
+
when "flood-opacity"
|
|
2161
|
+
flood_opacity
|
|
2162
|
+
else
|
|
2163
|
+
super
|
|
2164
|
+
end
|
|
2165
|
+
end
|
|
2166
|
+
|
|
2167
|
+
def __js_set__(key, value)
|
|
2168
|
+
case key
|
|
2169
|
+
when "flood-color"
|
|
2170
|
+
self.flood_color = value
|
|
2171
|
+
when "flood-opacity"
|
|
2172
|
+
self.flood_opacity = value
|
|
2173
|
+
else
|
|
2174
|
+
super
|
|
2175
|
+
end
|
|
2176
|
+
end
|
|
2177
|
+
end
|
|
2178
|
+
|
|
2179
|
+
# `<feComposite>` — composes two inputs per the Porter–Duff
|
|
2180
|
+
# `operator` (or arithmetic with k1..k4).
|
|
2181
|
+
class SVGFECompositeElement < SVGFilterPrimitiveElement
|
|
2182
|
+
def in1
|
|
2183
|
+
reflected_string("in")
|
|
2184
|
+
end
|
|
2185
|
+
|
|
2186
|
+
def in1=(v)
|
|
2187
|
+
set_reflected_string("in", v)
|
|
2188
|
+
end
|
|
2189
|
+
|
|
2190
|
+
def in2
|
|
2191
|
+
reflected_string("in2")
|
|
2192
|
+
end
|
|
2193
|
+
|
|
2194
|
+
def in2=(v)
|
|
2195
|
+
set_reflected_string("in2", v)
|
|
2196
|
+
end
|
|
2197
|
+
|
|
2198
|
+
def operator
|
|
2199
|
+
reflected_string("operator")
|
|
2200
|
+
end
|
|
2201
|
+
|
|
2202
|
+
def operator=(v)
|
|
2203
|
+
set_reflected_string("operator", v)
|
|
2204
|
+
end
|
|
2205
|
+
|
|
2206
|
+
def k1
|
|
2207
|
+
reflected_string("k1")
|
|
2208
|
+
end
|
|
2209
|
+
|
|
2210
|
+
def k1=(v)
|
|
2211
|
+
set_reflected_string("k1", v)
|
|
2212
|
+
end
|
|
2213
|
+
|
|
2214
|
+
def k2
|
|
2215
|
+
reflected_string("k2")
|
|
2216
|
+
end
|
|
2217
|
+
|
|
2218
|
+
def k2=(v)
|
|
2219
|
+
set_reflected_string("k2", v)
|
|
2220
|
+
end
|
|
2221
|
+
|
|
2222
|
+
def k3
|
|
2223
|
+
reflected_string("k3")
|
|
2224
|
+
end
|
|
2225
|
+
|
|
2226
|
+
def k3=(v)
|
|
2227
|
+
set_reflected_string("k3", v)
|
|
2228
|
+
end
|
|
2229
|
+
|
|
2230
|
+
def k4
|
|
2231
|
+
reflected_string("k4")
|
|
2232
|
+
end
|
|
2233
|
+
|
|
2234
|
+
def k4=(v)
|
|
2235
|
+
set_reflected_string("k4", v)
|
|
2236
|
+
end
|
|
2237
|
+
|
|
2238
|
+
def __js_get__(key)
|
|
2239
|
+
case key
|
|
2240
|
+
when "in"
|
|
2241
|
+
in1
|
|
2242
|
+
when "in2"
|
|
2243
|
+
in2
|
|
2244
|
+
when "operator"
|
|
2245
|
+
operator
|
|
2246
|
+
when "k1"
|
|
2247
|
+
k1
|
|
2248
|
+
when "k2"
|
|
2249
|
+
k2
|
|
2250
|
+
when "k3"
|
|
2251
|
+
k3
|
|
2252
|
+
when "k4"
|
|
2253
|
+
k4
|
|
2254
|
+
else
|
|
2255
|
+
super
|
|
2256
|
+
end
|
|
2257
|
+
end
|
|
2258
|
+
|
|
2259
|
+
def __js_set__(key, value)
|
|
2260
|
+
case key
|
|
2261
|
+
when "in"
|
|
2262
|
+
self.in1 = value
|
|
2263
|
+
when "in2"
|
|
2264
|
+
self.in2 = value
|
|
2265
|
+
when "operator"
|
|
2266
|
+
self.operator = value
|
|
2267
|
+
when "k1"
|
|
2268
|
+
self.k1 = value
|
|
2269
|
+
when "k2"
|
|
2270
|
+
self.k2 = value
|
|
2271
|
+
when "k3"
|
|
2272
|
+
self.k3 = value
|
|
2273
|
+
when "k4"
|
|
2274
|
+
self.k4 = value
|
|
2275
|
+
else
|
|
2276
|
+
super
|
|
2277
|
+
end
|
|
2278
|
+
end
|
|
2279
|
+
end
|
|
2280
|
+
|
|
2281
|
+
# `<feMerge>` — composites a list of inputs (children are
|
|
2282
|
+
# `<feMergeNode>` elements naming the inputs).
|
|
2283
|
+
class SVGFEMergeElement < SVGFilterPrimitiveElement
|
|
2284
|
+
end
|
|
2285
|
+
|
|
2286
|
+
# `<feMergeNode>` — a single input reference inside `<feMerge>`.
|
|
2287
|
+
# Not itself a region/result primitive, but inherits the common
|
|
2288
|
+
# attribute machinery from SVGElement.
|
|
2289
|
+
class SVGFEMergeNodeElement < SVGElement
|
|
2290
|
+
def in1
|
|
2291
|
+
reflected_string("in")
|
|
2292
|
+
end
|
|
2293
|
+
|
|
2294
|
+
def in1=(v)
|
|
2295
|
+
set_reflected_string("in", v)
|
|
2296
|
+
end
|
|
2297
|
+
|
|
2298
|
+
def __js_get__(key)
|
|
2299
|
+
key == "in" ? in1 : super
|
|
2300
|
+
end
|
|
2301
|
+
|
|
2302
|
+
def __js_set__(key, value)
|
|
2303
|
+
key == "in" ? (self.in1 = value) : super
|
|
2304
|
+
end
|
|
2305
|
+
end
|
|
2306
|
+
|
|
2307
|
+
# `<feComponentTransfer>` — per-channel color transfer. Children are
|
|
2308
|
+
# `<feFuncR>` / `<feFuncG>` / `<feFuncB>` / `<feFuncA>`.
|
|
2309
|
+
class SVGFEComponentTransferElement < SVGFilterPrimitiveElement
|
|
2310
|
+
def in1
|
|
2311
|
+
reflected_string("in")
|
|
2312
|
+
end
|
|
2313
|
+
|
|
2314
|
+
def in1=(v)
|
|
2315
|
+
set_reflected_string("in", v)
|
|
2316
|
+
end
|
|
2317
|
+
|
|
2318
|
+
def __js_get__(key)
|
|
2319
|
+
key == "in" ? in1 : super
|
|
2320
|
+
end
|
|
2321
|
+
|
|
2322
|
+
def __js_set__(key, value)
|
|
2323
|
+
key == "in" ? (self.in1 = value) : super
|
|
2324
|
+
end
|
|
2325
|
+
end
|
|
2326
|
+
|
|
2327
|
+
# Base for `<feFuncR>` / `<feFuncG>` / `<feFuncB>` / `<feFuncA>`.
|
|
2328
|
+
# Per the DOM spec, all four share the same attribute set
|
|
2329
|
+
# (`type` + parameters by type) so they're modeled as a single
|
|
2330
|
+
# superclass that the four tag-specific subclasses inherit verbatim.
|
|
2331
|
+
class SVGComponentTransferFunctionElement < SVGElement
|
|
2332
|
+
def type
|
|
2333
|
+
reflected_string("type")
|
|
2334
|
+
end
|
|
2335
|
+
|
|
2336
|
+
def type=(v)
|
|
2337
|
+
set_reflected_string("type", v)
|
|
2338
|
+
end
|
|
2339
|
+
|
|
2340
|
+
def table_values
|
|
2341
|
+
reflected_string("tableValues")
|
|
2342
|
+
end
|
|
2343
|
+
|
|
2344
|
+
def table_values=(v)
|
|
2345
|
+
set_reflected_string("tableValues", v)
|
|
2346
|
+
end
|
|
2347
|
+
|
|
2348
|
+
def slope
|
|
2349
|
+
reflected_string("slope")
|
|
2350
|
+
end
|
|
2351
|
+
|
|
2352
|
+
def slope=(v)
|
|
2353
|
+
set_reflected_string("slope", v)
|
|
2354
|
+
end
|
|
2355
|
+
|
|
2356
|
+
def intercept
|
|
2357
|
+
reflected_string("intercept")
|
|
2358
|
+
end
|
|
2359
|
+
|
|
2360
|
+
def intercept=(v)
|
|
2361
|
+
set_reflected_string("intercept", v)
|
|
2362
|
+
end
|
|
2363
|
+
|
|
2364
|
+
def amplitude
|
|
2365
|
+
reflected_string("amplitude")
|
|
2366
|
+
end
|
|
2367
|
+
|
|
2368
|
+
def amplitude=(v)
|
|
2369
|
+
set_reflected_string("amplitude", v)
|
|
2370
|
+
end
|
|
2371
|
+
|
|
2372
|
+
def exponent
|
|
2373
|
+
reflected_string("exponent")
|
|
2374
|
+
end
|
|
2375
|
+
|
|
2376
|
+
def exponent=(v)
|
|
2377
|
+
set_reflected_string("exponent", v)
|
|
2378
|
+
end
|
|
2379
|
+
|
|
2380
|
+
def offset
|
|
2381
|
+
reflected_string("offset")
|
|
2382
|
+
end
|
|
2383
|
+
|
|
2384
|
+
def offset=(v)
|
|
2385
|
+
set_reflected_string("offset", v)
|
|
2386
|
+
end
|
|
2387
|
+
|
|
2388
|
+
def __js_get__(key)
|
|
2389
|
+
case key
|
|
2390
|
+
when "type"
|
|
2391
|
+
type
|
|
2392
|
+
when "tableValues"
|
|
2393
|
+
table_values
|
|
2394
|
+
when "slope"
|
|
2395
|
+
slope
|
|
2396
|
+
when "intercept"
|
|
2397
|
+
intercept
|
|
2398
|
+
when "amplitude"
|
|
2399
|
+
amplitude
|
|
2400
|
+
when "exponent"
|
|
2401
|
+
exponent
|
|
2402
|
+
when "offset"
|
|
2403
|
+
offset
|
|
2404
|
+
else
|
|
2405
|
+
super
|
|
2406
|
+
end
|
|
2407
|
+
end
|
|
2408
|
+
|
|
2409
|
+
def __js_set__(key, value)
|
|
2410
|
+
case key
|
|
2411
|
+
when "type"
|
|
2412
|
+
self.type = value
|
|
2413
|
+
when "tableValues"
|
|
2414
|
+
self.table_values = value
|
|
2415
|
+
when "slope"
|
|
2416
|
+
self.slope = value
|
|
2417
|
+
when "intercept"
|
|
2418
|
+
self.intercept = value
|
|
2419
|
+
when "amplitude"
|
|
2420
|
+
self.amplitude = value
|
|
2421
|
+
when "exponent"
|
|
2422
|
+
self.exponent = value
|
|
2423
|
+
when "offset"
|
|
2424
|
+
self.offset = value
|
|
2425
|
+
else
|
|
2426
|
+
super
|
|
2427
|
+
end
|
|
2428
|
+
end
|
|
2429
|
+
end
|
|
2430
|
+
|
|
2431
|
+
class SVGFEFuncRElement < SVGComponentTransferFunctionElement
|
|
2432
|
+
end
|
|
2433
|
+
|
|
2434
|
+
class SVGFEFuncGElement < SVGComponentTransferFunctionElement
|
|
2435
|
+
end
|
|
2436
|
+
|
|
2437
|
+
class SVGFEFuncBElement < SVGComponentTransferFunctionElement
|
|
2438
|
+
end
|
|
2439
|
+
|
|
2440
|
+
class SVGFEFuncAElement < SVGComponentTransferFunctionElement
|
|
2441
|
+
end
|
|
2442
|
+
|
|
2443
|
+
# `<feTile>` — fills the primitive region by tiling its input.
|
|
2444
|
+
class SVGFETileElement < SVGFilterPrimitiveElement
|
|
2445
|
+
def in1
|
|
2446
|
+
reflected_string("in")
|
|
2447
|
+
end
|
|
2448
|
+
|
|
2449
|
+
def in1=(v)
|
|
2450
|
+
set_reflected_string("in", v)
|
|
2451
|
+
end
|
|
2452
|
+
|
|
2453
|
+
def __js_get__(key)
|
|
2454
|
+
key == "in" ? in1 : super
|
|
2455
|
+
end
|
|
2456
|
+
|
|
2457
|
+
def __js_set__(key, value)
|
|
2458
|
+
key == "in" ? (self.in1 = value) : super
|
|
2459
|
+
end
|
|
2460
|
+
end
|
|
2461
|
+
|
|
2462
|
+
# `<feMorphology>` — morphological erode / dilate.
|
|
2463
|
+
class SVGFEMorphologyElement < SVGFilterPrimitiveElement
|
|
2464
|
+
def in1
|
|
2465
|
+
reflected_string("in")
|
|
2466
|
+
end
|
|
2467
|
+
|
|
2468
|
+
def in1=(v)
|
|
2469
|
+
set_reflected_string("in", v)
|
|
2470
|
+
end
|
|
2471
|
+
|
|
2472
|
+
def operator
|
|
2473
|
+
reflected_string("operator")
|
|
2474
|
+
end
|
|
2475
|
+
|
|
2476
|
+
def operator=(v)
|
|
2477
|
+
set_reflected_string("operator", v)
|
|
2478
|
+
end
|
|
2479
|
+
|
|
2480
|
+
def radius
|
|
2481
|
+
reflected_string("radius")
|
|
2482
|
+
end
|
|
2483
|
+
|
|
2484
|
+
def radius=(v)
|
|
2485
|
+
set_reflected_string("radius", v)
|
|
2486
|
+
end
|
|
2487
|
+
|
|
2488
|
+
def __js_get__(key)
|
|
2489
|
+
case key
|
|
2490
|
+
when "in"
|
|
2491
|
+
in1
|
|
2492
|
+
when "operator"
|
|
2493
|
+
operator
|
|
2494
|
+
when "radius"
|
|
2495
|
+
radius
|
|
2496
|
+
else
|
|
2497
|
+
super
|
|
2498
|
+
end
|
|
2499
|
+
end
|
|
2500
|
+
|
|
2501
|
+
def __js_set__(key, value)
|
|
2502
|
+
case key
|
|
2503
|
+
when "in"
|
|
2504
|
+
self.in1 = value
|
|
2505
|
+
when "operator"
|
|
2506
|
+
self.operator = value
|
|
2507
|
+
when "radius"
|
|
2508
|
+
self.radius = value
|
|
2509
|
+
else
|
|
2510
|
+
super
|
|
2511
|
+
end
|
|
2512
|
+
end
|
|
2513
|
+
end
|
|
2514
|
+
|
|
2515
|
+
# `<feImage>` — fetches an external image (or references one by id)
|
|
2516
|
+
# and supplies it as input to the filter pipeline.
|
|
2517
|
+
class SVGFEImageElement < SVGFilterPrimitiveElement
|
|
2518
|
+
def href
|
|
2519
|
+
reflected_string("href")
|
|
2520
|
+
end
|
|
2521
|
+
|
|
2522
|
+
def href=(v)
|
|
2523
|
+
set_reflected_string("href", v)
|
|
2524
|
+
end
|
|
2525
|
+
|
|
2526
|
+
def preserve_aspect_ratio
|
|
2527
|
+
reflected_string("preserveAspectRatio")
|
|
2528
|
+
end
|
|
2529
|
+
|
|
2530
|
+
def preserve_aspect_ratio=(v)
|
|
2531
|
+
set_reflected_string("preserveAspectRatio", v)
|
|
2532
|
+
end
|
|
2533
|
+
|
|
2534
|
+
def crossorigin
|
|
2535
|
+
reflected_string("crossorigin")
|
|
2536
|
+
end
|
|
2537
|
+
|
|
2538
|
+
def crossorigin=(v)
|
|
2539
|
+
set_reflected_string("crossorigin", v)
|
|
2540
|
+
end
|
|
2541
|
+
|
|
2542
|
+
def __js_get__(key)
|
|
2543
|
+
case key
|
|
2544
|
+
when "href"
|
|
2545
|
+
href
|
|
2546
|
+
when "preserveAspectRatio"
|
|
2547
|
+
preserve_aspect_ratio
|
|
2548
|
+
when "crossorigin"
|
|
2549
|
+
crossorigin
|
|
2550
|
+
else
|
|
2551
|
+
super
|
|
2552
|
+
end
|
|
2553
|
+
end
|
|
2554
|
+
|
|
2555
|
+
def __js_set__(key, value)
|
|
2556
|
+
case key
|
|
2557
|
+
when "href"
|
|
2558
|
+
self.href = value
|
|
2559
|
+
when "preserveAspectRatio"
|
|
2560
|
+
self.preserve_aspect_ratio = value
|
|
2561
|
+
when "crossorigin"
|
|
2562
|
+
self.crossorigin = value
|
|
2563
|
+
else
|
|
2564
|
+
super
|
|
2565
|
+
end
|
|
2566
|
+
end
|
|
2567
|
+
end
|
|
2568
|
+
|
|
2569
|
+
# `<feDropShadow>` — convenience filter primitive producing a
|
|
2570
|
+
# drop shadow (Gaussian-blurred translated copy of the input,
|
|
2571
|
+
# composited under the source).
|
|
2572
|
+
class SVGFEDropShadowElement < SVGFilterPrimitiveElement
|
|
2573
|
+
def in1
|
|
2574
|
+
reflected_string("in")
|
|
2575
|
+
end
|
|
2576
|
+
|
|
2577
|
+
def in1=(v)
|
|
2578
|
+
set_reflected_string("in", v)
|
|
2579
|
+
end
|
|
2580
|
+
|
|
2581
|
+
def dx
|
|
2582
|
+
reflected_string("dx")
|
|
2583
|
+
end
|
|
2584
|
+
|
|
2585
|
+
def dx=(v)
|
|
2586
|
+
set_reflected_string("dx", v)
|
|
2587
|
+
end
|
|
2588
|
+
|
|
2589
|
+
def dy
|
|
2590
|
+
reflected_string("dy")
|
|
2591
|
+
end
|
|
2592
|
+
|
|
2593
|
+
def dy=(v)
|
|
2594
|
+
set_reflected_string("dy", v)
|
|
2595
|
+
end
|
|
2596
|
+
|
|
2597
|
+
def std_deviation
|
|
2598
|
+
reflected_string("stdDeviation")
|
|
2599
|
+
end
|
|
2600
|
+
|
|
2601
|
+
def std_deviation=(v)
|
|
2602
|
+
set_reflected_string("stdDeviation", v)
|
|
2603
|
+
end
|
|
2604
|
+
|
|
2605
|
+
def flood_color
|
|
2606
|
+
reflected_string("flood-color")
|
|
2607
|
+
end
|
|
2608
|
+
|
|
2609
|
+
def flood_color=(v)
|
|
2610
|
+
set_reflected_string("flood-color", v)
|
|
2611
|
+
end
|
|
2612
|
+
|
|
2613
|
+
def flood_opacity
|
|
2614
|
+
reflected_string("flood-opacity")
|
|
2615
|
+
end
|
|
2616
|
+
|
|
2617
|
+
def flood_opacity=(v)
|
|
2618
|
+
set_reflected_string("flood-opacity", v)
|
|
2619
|
+
end
|
|
2620
|
+
|
|
2621
|
+
def __js_get__(key)
|
|
2622
|
+
case key
|
|
2623
|
+
when "in"
|
|
2624
|
+
in1
|
|
2625
|
+
when "dx"
|
|
2626
|
+
dx
|
|
2627
|
+
when "dy"
|
|
2628
|
+
dy
|
|
2629
|
+
when "stdDeviation"
|
|
2630
|
+
std_deviation
|
|
2631
|
+
when "flood-color"
|
|
2632
|
+
flood_color
|
|
2633
|
+
when "flood-opacity"
|
|
2634
|
+
flood_opacity
|
|
2635
|
+
else
|
|
2636
|
+
super
|
|
2637
|
+
end
|
|
2638
|
+
end
|
|
2639
|
+
|
|
2640
|
+
def __js_set__(key, value)
|
|
2641
|
+
case key
|
|
2642
|
+
when "in"
|
|
2643
|
+
self.in1 = value
|
|
2644
|
+
when "dx"
|
|
2645
|
+
self.dx = value
|
|
2646
|
+
when "dy"
|
|
2647
|
+
self.dy = value
|
|
2648
|
+
when "stdDeviation"
|
|
2649
|
+
self.std_deviation = value
|
|
2650
|
+
when "flood-color"
|
|
2651
|
+
self.flood_color = value
|
|
2652
|
+
when "flood-opacity"
|
|
2653
|
+
self.flood_opacity = value
|
|
2654
|
+
else
|
|
2655
|
+
super
|
|
2656
|
+
end
|
|
2657
|
+
end
|
|
2658
|
+
end
|
|
2659
|
+
|
|
2660
|
+
# `<feTurbulence>` — Perlin noise generator. No `in` (it produces
|
|
2661
|
+
# output rather than transforming an input).
|
|
2662
|
+
class SVGFETurbulenceElement < SVGFilterPrimitiveElement
|
|
2663
|
+
def base_frequency
|
|
2664
|
+
reflected_string("baseFrequency")
|
|
2665
|
+
end
|
|
2666
|
+
|
|
2667
|
+
def base_frequency=(v)
|
|
2668
|
+
set_reflected_string("baseFrequency", v)
|
|
2669
|
+
end
|
|
2670
|
+
|
|
2671
|
+
def num_octaves
|
|
2672
|
+
reflected_string("numOctaves")
|
|
2673
|
+
end
|
|
2674
|
+
|
|
2675
|
+
def num_octaves=(v)
|
|
2676
|
+
set_reflected_string("numOctaves", v)
|
|
2677
|
+
end
|
|
2678
|
+
|
|
2679
|
+
def seed
|
|
2680
|
+
reflected_string("seed")
|
|
2681
|
+
end
|
|
2682
|
+
|
|
2683
|
+
def seed=(v)
|
|
2684
|
+
set_reflected_string("seed", v)
|
|
2685
|
+
end
|
|
2686
|
+
|
|
2687
|
+
def stitch_tiles
|
|
2688
|
+
reflected_string("stitchTiles")
|
|
2689
|
+
end
|
|
2690
|
+
|
|
2691
|
+
def stitch_tiles=(v)
|
|
2692
|
+
set_reflected_string("stitchTiles", v)
|
|
2693
|
+
end
|
|
2694
|
+
|
|
2695
|
+
def type
|
|
2696
|
+
reflected_string("type")
|
|
2697
|
+
end
|
|
2698
|
+
|
|
2699
|
+
def type=(v)
|
|
2700
|
+
set_reflected_string("type", v)
|
|
2701
|
+
end
|
|
2702
|
+
|
|
2703
|
+
def __js_get__(key)
|
|
2704
|
+
case key
|
|
2705
|
+
when "baseFrequency"
|
|
2706
|
+
base_frequency
|
|
2707
|
+
when "numOctaves"
|
|
2708
|
+
num_octaves
|
|
2709
|
+
when "seed"
|
|
2710
|
+
seed
|
|
2711
|
+
when "stitchTiles"
|
|
2712
|
+
stitch_tiles
|
|
2713
|
+
when "type"
|
|
2714
|
+
type
|
|
2715
|
+
else
|
|
2716
|
+
super
|
|
2717
|
+
end
|
|
2718
|
+
end
|
|
2719
|
+
|
|
2720
|
+
def __js_set__(key, value)
|
|
2721
|
+
case key
|
|
2722
|
+
when "baseFrequency"
|
|
2723
|
+
self.base_frequency = value
|
|
2724
|
+
when "numOctaves"
|
|
2725
|
+
self.num_octaves = value
|
|
2726
|
+
when "seed"
|
|
2727
|
+
self.seed = value
|
|
2728
|
+
when "stitchTiles"
|
|
2729
|
+
self.stitch_tiles = value
|
|
2730
|
+
when "type"
|
|
2731
|
+
self.type = value
|
|
2732
|
+
else
|
|
2733
|
+
super
|
|
2734
|
+
end
|
|
2735
|
+
end
|
|
2736
|
+
end
|
|
2737
|
+
|
|
2738
|
+
# `<feDisplacementMap>` — uses one input as a map to displace pixels
|
|
2739
|
+
# of another.
|
|
2740
|
+
class SVGFEDisplacementMapElement < SVGFilterPrimitiveElement
|
|
2741
|
+
def in1
|
|
2742
|
+
reflected_string("in")
|
|
2743
|
+
end
|
|
2744
|
+
|
|
2745
|
+
def in1=(v)
|
|
2746
|
+
set_reflected_string("in", v)
|
|
2747
|
+
end
|
|
2748
|
+
|
|
2749
|
+
def in2
|
|
2750
|
+
reflected_string("in2")
|
|
2751
|
+
end
|
|
2752
|
+
|
|
2753
|
+
def in2=(v)
|
|
2754
|
+
set_reflected_string("in2", v)
|
|
2755
|
+
end
|
|
2756
|
+
|
|
2757
|
+
def scale
|
|
2758
|
+
reflected_string("scale")
|
|
2759
|
+
end
|
|
2760
|
+
|
|
2761
|
+
def scale=(v)
|
|
2762
|
+
set_reflected_string("scale", v)
|
|
2763
|
+
end
|
|
2764
|
+
|
|
2765
|
+
def x_channel_selector
|
|
2766
|
+
reflected_string("xChannelSelector")
|
|
2767
|
+
end
|
|
2768
|
+
|
|
2769
|
+
def x_channel_selector=(v)
|
|
2770
|
+
set_reflected_string("xChannelSelector", v)
|
|
2771
|
+
end
|
|
2772
|
+
|
|
2773
|
+
def y_channel_selector
|
|
2774
|
+
reflected_string("yChannelSelector")
|
|
2775
|
+
end
|
|
2776
|
+
|
|
2777
|
+
def y_channel_selector=(v)
|
|
2778
|
+
set_reflected_string("yChannelSelector", v)
|
|
2779
|
+
end
|
|
2780
|
+
|
|
2781
|
+
def __js_get__(key)
|
|
2782
|
+
case key
|
|
2783
|
+
when "in"
|
|
2784
|
+
in1
|
|
2785
|
+
when "in2"
|
|
2786
|
+
in2
|
|
2787
|
+
when "scale"
|
|
2788
|
+
scale
|
|
2789
|
+
when "xChannelSelector"
|
|
2790
|
+
x_channel_selector
|
|
2791
|
+
when "yChannelSelector"
|
|
2792
|
+
y_channel_selector
|
|
2793
|
+
else
|
|
2794
|
+
super
|
|
2795
|
+
end
|
|
2796
|
+
end
|
|
2797
|
+
|
|
2798
|
+
def __js_set__(key, value)
|
|
2799
|
+
case key
|
|
2800
|
+
when "in"
|
|
2801
|
+
self.in1 = value
|
|
2802
|
+
when "in2"
|
|
2803
|
+
self.in2 = value
|
|
2804
|
+
when "scale"
|
|
2805
|
+
self.scale = value
|
|
2806
|
+
when "xChannelSelector"
|
|
2807
|
+
self.x_channel_selector = value
|
|
2808
|
+
when "yChannelSelector"
|
|
2809
|
+
self.y_channel_selector = value
|
|
2810
|
+
else
|
|
2811
|
+
super
|
|
2812
|
+
end
|
|
2813
|
+
end
|
|
2814
|
+
end
|
|
2815
|
+
|
|
2816
|
+
# ===== Light sources =====
|
|
2817
|
+
#
|
|
2818
|
+
# Children of `<feDiffuseLighting>` / `<feSpecularLighting>` (which
|
|
2819
|
+
# aren't specialized yet — see SVGElement fallback). Light sources
|
|
2820
|
+
# carry no `result` of their own; they configure the parent primitive.
|
|
2821
|
+
|
|
2822
|
+
# `<feDistantLight>` — light at infinity, characterized only by direction.
|
|
2823
|
+
class SVGFEDistantLightElement < SVGElement
|
|
2824
|
+
def azimuth
|
|
2825
|
+
reflected_string("azimuth")
|
|
2826
|
+
end
|
|
2827
|
+
|
|
2828
|
+
def azimuth=(v)
|
|
2829
|
+
set_reflected_string("azimuth", v)
|
|
2830
|
+
end
|
|
2831
|
+
|
|
2832
|
+
def elevation
|
|
2833
|
+
reflected_string("elevation")
|
|
2834
|
+
end
|
|
2835
|
+
|
|
2836
|
+
def elevation=(v)
|
|
2837
|
+
set_reflected_string("elevation", v)
|
|
2838
|
+
end
|
|
2839
|
+
|
|
2840
|
+
def __js_get__(key)
|
|
2841
|
+
case key
|
|
2842
|
+
when "azimuth"
|
|
2843
|
+
azimuth
|
|
2844
|
+
when "elevation"
|
|
2845
|
+
elevation
|
|
2846
|
+
else
|
|
2847
|
+
super
|
|
2848
|
+
end
|
|
2849
|
+
end
|
|
2850
|
+
|
|
2851
|
+
def __js_set__(key, value)
|
|
2852
|
+
case key
|
|
2853
|
+
when "azimuth"
|
|
2854
|
+
self.azimuth = value
|
|
2855
|
+
when "elevation"
|
|
2856
|
+
self.elevation = value
|
|
2857
|
+
else
|
|
2858
|
+
super
|
|
2859
|
+
end
|
|
2860
|
+
end
|
|
2861
|
+
end
|
|
2862
|
+
|
|
2863
|
+
# `<fePointLight>` — point light source at (x, y, z).
|
|
2864
|
+
class SVGFEPointLightElement < SVGElement
|
|
2865
|
+
def x
|
|
2866
|
+
reflected_string("x")
|
|
2867
|
+
end
|
|
2868
|
+
|
|
2869
|
+
def x=(v)
|
|
2870
|
+
set_reflected_string("x", v)
|
|
2871
|
+
end
|
|
2872
|
+
|
|
2873
|
+
def y
|
|
2874
|
+
reflected_string("y")
|
|
2875
|
+
end
|
|
2876
|
+
|
|
2877
|
+
def y=(v)
|
|
2878
|
+
set_reflected_string("y", v)
|
|
2879
|
+
end
|
|
2880
|
+
|
|
2881
|
+
def z
|
|
2882
|
+
reflected_string("z")
|
|
2883
|
+
end
|
|
2884
|
+
|
|
2885
|
+
def z=(v)
|
|
2886
|
+
set_reflected_string("z", v)
|
|
2887
|
+
end
|
|
2888
|
+
|
|
2889
|
+
def __js_get__(key)
|
|
2890
|
+
case key
|
|
2891
|
+
when "x"
|
|
2892
|
+
x
|
|
2893
|
+
when "y"
|
|
2894
|
+
y
|
|
2895
|
+
when "z"
|
|
2896
|
+
z
|
|
2897
|
+
else
|
|
2898
|
+
super
|
|
2899
|
+
end
|
|
2900
|
+
end
|
|
2901
|
+
|
|
2902
|
+
def __js_set__(key, value)
|
|
2903
|
+
case key
|
|
2904
|
+
when "x"
|
|
2905
|
+
self.x = value
|
|
2906
|
+
when "y"
|
|
2907
|
+
self.y = value
|
|
2908
|
+
when "z"
|
|
2909
|
+
self.z = value
|
|
2910
|
+
else
|
|
2911
|
+
super
|
|
2912
|
+
end
|
|
2913
|
+
end
|
|
2914
|
+
end
|
|
2915
|
+
|
|
2916
|
+
# `<feSpotLight>` — spotlight emanating from (x, y, z), aimed at
|
|
2917
|
+
# (pointsAtX, pointsAtY, pointsAtZ). `limitingConeAngle` restricts
|
|
2918
|
+
# the spread; `specularExponent` controls focus falloff.
|
|
2919
|
+
class SVGFESpotLightElement < SVGElement
|
|
2920
|
+
def x
|
|
2921
|
+
reflected_string("x")
|
|
2922
|
+
end
|
|
2923
|
+
|
|
2924
|
+
def x=(v)
|
|
2925
|
+
set_reflected_string("x", v)
|
|
2926
|
+
end
|
|
2927
|
+
|
|
2928
|
+
def y
|
|
2929
|
+
reflected_string("y")
|
|
2930
|
+
end
|
|
2931
|
+
|
|
2932
|
+
def y=(v)
|
|
2933
|
+
set_reflected_string("y", v)
|
|
2934
|
+
end
|
|
2935
|
+
|
|
2936
|
+
def z
|
|
2937
|
+
reflected_string("z")
|
|
2938
|
+
end
|
|
2939
|
+
|
|
2940
|
+
def z=(v)
|
|
2941
|
+
set_reflected_string("z", v)
|
|
2942
|
+
end
|
|
2943
|
+
|
|
2944
|
+
def points_at_x
|
|
2945
|
+
reflected_string("pointsAtX")
|
|
2946
|
+
end
|
|
2947
|
+
|
|
2948
|
+
def points_at_x=(v)
|
|
2949
|
+
set_reflected_string("pointsAtX", v)
|
|
2950
|
+
end
|
|
2951
|
+
|
|
2952
|
+
def points_at_y
|
|
2953
|
+
reflected_string("pointsAtY")
|
|
2954
|
+
end
|
|
2955
|
+
|
|
2956
|
+
def points_at_y=(v)
|
|
2957
|
+
set_reflected_string("pointsAtY", v)
|
|
2958
|
+
end
|
|
2959
|
+
|
|
2960
|
+
def points_at_z
|
|
2961
|
+
reflected_string("pointsAtZ")
|
|
2962
|
+
end
|
|
2963
|
+
|
|
2964
|
+
def points_at_z=(v)
|
|
2965
|
+
set_reflected_string("pointsAtZ", v)
|
|
2966
|
+
end
|
|
2967
|
+
|
|
2968
|
+
def specular_exponent
|
|
2969
|
+
reflected_string("specularExponent")
|
|
2970
|
+
end
|
|
2971
|
+
|
|
2972
|
+
def specular_exponent=(v)
|
|
2973
|
+
set_reflected_string("specularExponent", v)
|
|
2974
|
+
end
|
|
2975
|
+
|
|
2976
|
+
def limiting_cone_angle
|
|
2977
|
+
reflected_string("limitingConeAngle")
|
|
2978
|
+
end
|
|
2979
|
+
|
|
2980
|
+
def limiting_cone_angle=(v)
|
|
2981
|
+
set_reflected_string("limitingConeAngle", v)
|
|
2982
|
+
end
|
|
2983
|
+
|
|
2984
|
+
def __js_get__(key)
|
|
2985
|
+
case key
|
|
2986
|
+
when "x"
|
|
2987
|
+
x
|
|
2988
|
+
when "y"
|
|
2989
|
+
y
|
|
2990
|
+
when "z"
|
|
2991
|
+
z
|
|
2992
|
+
when "pointsAtX"
|
|
2993
|
+
points_at_x
|
|
2994
|
+
when "pointsAtY"
|
|
2995
|
+
points_at_y
|
|
2996
|
+
when "pointsAtZ"
|
|
2997
|
+
points_at_z
|
|
2998
|
+
when "specularExponent"
|
|
2999
|
+
specular_exponent
|
|
3000
|
+
when "limitingConeAngle"
|
|
3001
|
+
limiting_cone_angle
|
|
3002
|
+
else
|
|
3003
|
+
super
|
|
3004
|
+
end
|
|
3005
|
+
end
|
|
3006
|
+
|
|
3007
|
+
def __js_set__(key, value)
|
|
3008
|
+
case key
|
|
3009
|
+
when "x"
|
|
3010
|
+
self.x = value
|
|
3011
|
+
when "y"
|
|
3012
|
+
self.y = value
|
|
3013
|
+
when "z"
|
|
3014
|
+
self.z = value
|
|
3015
|
+
when "pointsAtX"
|
|
3016
|
+
self.points_at_x = value
|
|
3017
|
+
when "pointsAtY"
|
|
3018
|
+
self.points_at_y = value
|
|
3019
|
+
when "pointsAtZ"
|
|
3020
|
+
self.points_at_z = value
|
|
3021
|
+
when "specularExponent"
|
|
3022
|
+
self.specular_exponent = value
|
|
3023
|
+
when "limitingConeAngle"
|
|
3024
|
+
self.limiting_cone_angle = value
|
|
3025
|
+
else
|
|
3026
|
+
super
|
|
3027
|
+
end
|
|
3028
|
+
end
|
|
3029
|
+
end
|
|
3030
|
+
|
|
3031
|
+
# `<feConvolveMatrix>` — applies an arbitrary convolution kernel.
|
|
3032
|
+
# Heavy in attribute count; all are reflected.
|
|
3033
|
+
class SVGFEConvolveMatrixElement < SVGFilterPrimitiveElement
|
|
3034
|
+
def in1
|
|
3035
|
+
reflected_string("in")
|
|
3036
|
+
end
|
|
3037
|
+
|
|
3038
|
+
def in1=(v)
|
|
3039
|
+
set_reflected_string("in", v)
|
|
3040
|
+
end
|
|
3041
|
+
|
|
3042
|
+
def order
|
|
3043
|
+
reflected_string("order")
|
|
3044
|
+
end
|
|
3045
|
+
|
|
3046
|
+
def order=(v)
|
|
3047
|
+
set_reflected_string("order", v)
|
|
3048
|
+
end
|
|
3049
|
+
|
|
3050
|
+
def kernel_matrix
|
|
3051
|
+
reflected_string("kernelMatrix")
|
|
3052
|
+
end
|
|
3053
|
+
|
|
3054
|
+
def kernel_matrix=(v)
|
|
3055
|
+
set_reflected_string("kernelMatrix", v)
|
|
3056
|
+
end
|
|
3057
|
+
|
|
3058
|
+
def divisor
|
|
3059
|
+
reflected_string("divisor")
|
|
3060
|
+
end
|
|
3061
|
+
|
|
3062
|
+
def divisor=(v)
|
|
3063
|
+
set_reflected_string("divisor", v)
|
|
3064
|
+
end
|
|
3065
|
+
|
|
3066
|
+
def bias
|
|
3067
|
+
reflected_string("bias")
|
|
3068
|
+
end
|
|
3069
|
+
|
|
3070
|
+
def bias=(v)
|
|
3071
|
+
set_reflected_string("bias", v)
|
|
3072
|
+
end
|
|
3073
|
+
|
|
3074
|
+
def target_x
|
|
3075
|
+
reflected_string("targetX")
|
|
3076
|
+
end
|
|
3077
|
+
|
|
3078
|
+
def target_x=(v)
|
|
3079
|
+
set_reflected_string("targetX", v)
|
|
3080
|
+
end
|
|
3081
|
+
|
|
3082
|
+
def target_y
|
|
3083
|
+
reflected_string("targetY")
|
|
3084
|
+
end
|
|
3085
|
+
|
|
3086
|
+
def target_y=(v)
|
|
3087
|
+
set_reflected_string("targetY", v)
|
|
3088
|
+
end
|
|
3089
|
+
|
|
3090
|
+
def edge_mode
|
|
3091
|
+
reflected_string("edgeMode")
|
|
3092
|
+
end
|
|
3093
|
+
|
|
3094
|
+
def edge_mode=(v)
|
|
3095
|
+
set_reflected_string("edgeMode", v)
|
|
3096
|
+
end
|
|
3097
|
+
|
|
3098
|
+
def kernel_unit_length
|
|
3099
|
+
reflected_string("kernelUnitLength")
|
|
3100
|
+
end
|
|
3101
|
+
|
|
3102
|
+
def kernel_unit_length=(v)
|
|
3103
|
+
set_reflected_string("kernelUnitLength", v)
|
|
3104
|
+
end
|
|
3105
|
+
|
|
3106
|
+
def preserve_alpha
|
|
3107
|
+
reflected_string("preserveAlpha")
|
|
3108
|
+
end
|
|
3109
|
+
|
|
3110
|
+
def preserve_alpha=(v)
|
|
3111
|
+
set_reflected_string("preserveAlpha", v)
|
|
3112
|
+
end
|
|
3113
|
+
|
|
3114
|
+
def __js_get__(key)
|
|
3115
|
+
case key
|
|
3116
|
+
when "in"
|
|
3117
|
+
in1
|
|
3118
|
+
when "order"
|
|
3119
|
+
order
|
|
3120
|
+
when "kernelMatrix"
|
|
3121
|
+
kernel_matrix
|
|
3122
|
+
when "divisor"
|
|
3123
|
+
divisor
|
|
3124
|
+
when "bias"
|
|
3125
|
+
bias
|
|
3126
|
+
when "targetX"
|
|
3127
|
+
target_x
|
|
3128
|
+
when "targetY"
|
|
3129
|
+
target_y
|
|
3130
|
+
when "edgeMode"
|
|
3131
|
+
edge_mode
|
|
3132
|
+
when "kernelUnitLength"
|
|
3133
|
+
kernel_unit_length
|
|
3134
|
+
when "preserveAlpha"
|
|
3135
|
+
preserve_alpha
|
|
3136
|
+
else
|
|
3137
|
+
super
|
|
3138
|
+
end
|
|
3139
|
+
end
|
|
3140
|
+
|
|
3141
|
+
def __js_set__(key, value)
|
|
3142
|
+
case key
|
|
3143
|
+
when "in"
|
|
3144
|
+
self.in1 = value
|
|
3145
|
+
when "order"
|
|
3146
|
+
self.order = value
|
|
3147
|
+
when "kernelMatrix"
|
|
3148
|
+
self.kernel_matrix = value
|
|
3149
|
+
when "divisor"
|
|
3150
|
+
self.divisor = value
|
|
3151
|
+
when "bias"
|
|
3152
|
+
self.bias = value
|
|
3153
|
+
when "targetX"
|
|
3154
|
+
self.target_x = value
|
|
3155
|
+
when "targetY"
|
|
3156
|
+
self.target_y = value
|
|
3157
|
+
when "edgeMode"
|
|
3158
|
+
self.edge_mode = value
|
|
3159
|
+
when "kernelUnitLength"
|
|
3160
|
+
self.kernel_unit_length = value
|
|
3161
|
+
when "preserveAlpha"
|
|
3162
|
+
self.preserve_alpha = value
|
|
3163
|
+
else
|
|
3164
|
+
super
|
|
3165
|
+
end
|
|
3166
|
+
end
|
|
3167
|
+
end
|
|
3168
|
+
|
|
3169
|
+
# `<feDiffuseLighting>` — applies diffuse lighting based on a
|
|
3170
|
+
# bumpmap input and a light source child (one of feDistantLight /
|
|
3171
|
+
# fePointLight / feSpotLight).
|
|
3172
|
+
class SVGFEDiffuseLightingElement < SVGFilterPrimitiveElement
|
|
3173
|
+
def in1
|
|
3174
|
+
reflected_string("in")
|
|
3175
|
+
end
|
|
3176
|
+
|
|
3177
|
+
def in1=(v)
|
|
3178
|
+
set_reflected_string("in", v)
|
|
3179
|
+
end
|
|
3180
|
+
|
|
3181
|
+
def surface_scale
|
|
3182
|
+
reflected_string("surfaceScale")
|
|
3183
|
+
end
|
|
3184
|
+
|
|
3185
|
+
def surface_scale=(v)
|
|
3186
|
+
set_reflected_string("surfaceScale", v)
|
|
3187
|
+
end
|
|
3188
|
+
|
|
3189
|
+
def diffuse_constant
|
|
3190
|
+
reflected_string("diffuseConstant")
|
|
3191
|
+
end
|
|
3192
|
+
|
|
3193
|
+
def diffuse_constant=(v)
|
|
3194
|
+
set_reflected_string("diffuseConstant", v)
|
|
3195
|
+
end
|
|
3196
|
+
|
|
3197
|
+
def kernel_unit_length
|
|
3198
|
+
reflected_string("kernelUnitLength")
|
|
3199
|
+
end
|
|
3200
|
+
|
|
3201
|
+
def kernel_unit_length=(v)
|
|
3202
|
+
set_reflected_string("kernelUnitLength", v)
|
|
3203
|
+
end
|
|
3204
|
+
|
|
3205
|
+
def lighting_color
|
|
3206
|
+
reflected_string("lighting-color")
|
|
3207
|
+
end
|
|
3208
|
+
|
|
3209
|
+
def lighting_color=(v)
|
|
3210
|
+
set_reflected_string("lighting-color", v)
|
|
3211
|
+
end
|
|
3212
|
+
|
|
3213
|
+
def __js_get__(key)
|
|
3214
|
+
case key
|
|
3215
|
+
when "in"
|
|
3216
|
+
in1
|
|
3217
|
+
when "surfaceScale"
|
|
3218
|
+
surface_scale
|
|
3219
|
+
when "diffuseConstant"
|
|
3220
|
+
diffuse_constant
|
|
3221
|
+
when "kernelUnitLength"
|
|
3222
|
+
kernel_unit_length
|
|
3223
|
+
when "lighting-color"
|
|
3224
|
+
lighting_color
|
|
3225
|
+
else
|
|
3226
|
+
super
|
|
3227
|
+
end
|
|
3228
|
+
end
|
|
3229
|
+
|
|
3230
|
+
def __js_set__(key, value)
|
|
3231
|
+
case key
|
|
3232
|
+
when "in"
|
|
3233
|
+
self.in1 = value
|
|
3234
|
+
when "surfaceScale"
|
|
3235
|
+
self.surface_scale = value
|
|
3236
|
+
when "diffuseConstant"
|
|
3237
|
+
self.diffuse_constant = value
|
|
3238
|
+
when "kernelUnitLength"
|
|
3239
|
+
self.kernel_unit_length = value
|
|
3240
|
+
when "lighting-color"
|
|
3241
|
+
self.lighting_color = value
|
|
3242
|
+
else
|
|
3243
|
+
super
|
|
3244
|
+
end
|
|
3245
|
+
end
|
|
3246
|
+
end
|
|
3247
|
+
|
|
3248
|
+
# `<feSpecularLighting>` — applies specular (highlight) lighting.
|
|
3249
|
+
# Like feDiffuseLighting but with a specularConstant and
|
|
3250
|
+
# specularExponent driving the highlight shape.
|
|
3251
|
+
class SVGFESpecularLightingElement < SVGFilterPrimitiveElement
|
|
3252
|
+
def in1
|
|
3253
|
+
reflected_string("in")
|
|
3254
|
+
end
|
|
3255
|
+
|
|
3256
|
+
def in1=(v)
|
|
3257
|
+
set_reflected_string("in", v)
|
|
3258
|
+
end
|
|
3259
|
+
|
|
3260
|
+
def surface_scale
|
|
3261
|
+
reflected_string("surfaceScale")
|
|
3262
|
+
end
|
|
3263
|
+
|
|
3264
|
+
def surface_scale=(v)
|
|
3265
|
+
set_reflected_string("surfaceScale", v)
|
|
3266
|
+
end
|
|
3267
|
+
|
|
3268
|
+
def specular_constant
|
|
3269
|
+
reflected_string("specularConstant")
|
|
3270
|
+
end
|
|
3271
|
+
|
|
3272
|
+
def specular_constant=(v)
|
|
3273
|
+
set_reflected_string("specularConstant", v)
|
|
3274
|
+
end
|
|
3275
|
+
|
|
3276
|
+
def specular_exponent
|
|
3277
|
+
reflected_string("specularExponent")
|
|
3278
|
+
end
|
|
3279
|
+
|
|
3280
|
+
def specular_exponent=(v)
|
|
3281
|
+
set_reflected_string("specularExponent", v)
|
|
3282
|
+
end
|
|
3283
|
+
|
|
3284
|
+
def kernel_unit_length
|
|
3285
|
+
reflected_string("kernelUnitLength")
|
|
3286
|
+
end
|
|
3287
|
+
|
|
3288
|
+
def kernel_unit_length=(v)
|
|
3289
|
+
set_reflected_string("kernelUnitLength", v)
|
|
3290
|
+
end
|
|
3291
|
+
|
|
3292
|
+
def lighting_color
|
|
3293
|
+
reflected_string("lighting-color")
|
|
3294
|
+
end
|
|
3295
|
+
|
|
3296
|
+
def lighting_color=(v)
|
|
3297
|
+
set_reflected_string("lighting-color", v)
|
|
3298
|
+
end
|
|
3299
|
+
|
|
3300
|
+
def __js_get__(key)
|
|
3301
|
+
case key
|
|
3302
|
+
when "in"
|
|
3303
|
+
in1
|
|
3304
|
+
when "surfaceScale"
|
|
3305
|
+
surface_scale
|
|
3306
|
+
when "specularConstant"
|
|
3307
|
+
specular_constant
|
|
3308
|
+
when "specularExponent"
|
|
3309
|
+
specular_exponent
|
|
3310
|
+
when "kernelUnitLength"
|
|
3311
|
+
kernel_unit_length
|
|
3312
|
+
when "lighting-color"
|
|
3313
|
+
lighting_color
|
|
3314
|
+
else
|
|
3315
|
+
super
|
|
3316
|
+
end
|
|
3317
|
+
end
|
|
3318
|
+
|
|
3319
|
+
def __js_set__(key, value)
|
|
3320
|
+
case key
|
|
3321
|
+
when "in"
|
|
3322
|
+
self.in1 = value
|
|
3323
|
+
when "surfaceScale"
|
|
3324
|
+
self.surface_scale = value
|
|
3325
|
+
when "specularConstant"
|
|
3326
|
+
self.specular_constant = value
|
|
3327
|
+
when "specularExponent"
|
|
3328
|
+
self.specular_exponent = value
|
|
3329
|
+
when "kernelUnitLength"
|
|
3330
|
+
self.kernel_unit_length = value
|
|
3331
|
+
when "lighting-color"
|
|
3332
|
+
self.lighting_color = value
|
|
3333
|
+
else
|
|
3334
|
+
super
|
|
3335
|
+
end
|
|
3336
|
+
end
|
|
3337
|
+
end
|
|
3338
|
+
|
|
3339
|
+
# ===== SMIL animation =====
|
|
3340
|
+
#
|
|
3341
|
+
# `<animate>` and friends — declarative animation built into the
|
|
3342
|
+
# SVG spec. Supported in all major browsers as of Baseline 2023.
|
|
3343
|
+
|
|
3344
|
+
# Base class for SMIL animation elements; carries the timing
|
|
3345
|
+
# attributes (`begin`, `end`, `dur`, etc.) that all animation
|
|
3346
|
+
# elements share.
|
|
3347
|
+
class SVGAnimationElement < SVGElement
|
|
3348
|
+
# The `begin` / `end` Ruby methods correspond exactly to the SVG
|
|
3349
|
+
# attributes; Ruby permits these as method names (block keywords
|
|
3350
|
+
# are only special syntax, not identifier-level reserved words).
|
|
3351
|
+
def begin
|
|
3352
|
+
reflected_string("begin")
|
|
3353
|
+
end
|
|
3354
|
+
|
|
3355
|
+
def begin=(v)
|
|
3356
|
+
set_reflected_string("begin", v)
|
|
3357
|
+
end
|
|
3358
|
+
|
|
3359
|
+
def end
|
|
3360
|
+
reflected_string("end")
|
|
3361
|
+
end
|
|
3362
|
+
|
|
3363
|
+
def end=(v)
|
|
3364
|
+
set_reflected_string("end", v)
|
|
3365
|
+
end
|
|
3366
|
+
|
|
3367
|
+
def dur
|
|
3368
|
+
reflected_string("dur")
|
|
3369
|
+
end
|
|
3370
|
+
|
|
3371
|
+
def dur=(v)
|
|
3372
|
+
set_reflected_string("dur", v)
|
|
3373
|
+
end
|
|
3374
|
+
|
|
3375
|
+
def min
|
|
3376
|
+
reflected_string("min")
|
|
3377
|
+
end
|
|
3378
|
+
|
|
3379
|
+
def min=(v)
|
|
3380
|
+
set_reflected_string("min", v)
|
|
3381
|
+
end
|
|
3382
|
+
|
|
3383
|
+
def max
|
|
3384
|
+
reflected_string("max")
|
|
3385
|
+
end
|
|
3386
|
+
|
|
3387
|
+
def max=(v)
|
|
3388
|
+
set_reflected_string("max", v)
|
|
3389
|
+
end
|
|
3390
|
+
|
|
3391
|
+
def restart
|
|
3392
|
+
reflected_string("restart")
|
|
3393
|
+
end
|
|
3394
|
+
|
|
3395
|
+
def restart=(v)
|
|
3396
|
+
set_reflected_string("restart", v)
|
|
3397
|
+
end
|
|
3398
|
+
|
|
3399
|
+
def repeat_count
|
|
3400
|
+
reflected_string("repeatCount")
|
|
3401
|
+
end
|
|
3402
|
+
|
|
3403
|
+
def repeat_count=(v)
|
|
3404
|
+
set_reflected_string("repeatCount", v)
|
|
3405
|
+
end
|
|
3406
|
+
|
|
3407
|
+
def repeat_dur
|
|
3408
|
+
reflected_string("repeatDur")
|
|
3409
|
+
end
|
|
3410
|
+
|
|
3411
|
+
def repeat_dur=(v)
|
|
3412
|
+
set_reflected_string("repeatDur", v)
|
|
3413
|
+
end
|
|
3414
|
+
|
|
3415
|
+
def fill
|
|
3416
|
+
reflected_string("fill")
|
|
3417
|
+
end
|
|
3418
|
+
|
|
3419
|
+
def fill=(v)
|
|
3420
|
+
set_reflected_string("fill", v)
|
|
3421
|
+
end
|
|
3422
|
+
|
|
3423
|
+
def attribute_name
|
|
3424
|
+
reflected_string("attributeName")
|
|
3425
|
+
end
|
|
3426
|
+
|
|
3427
|
+
def attribute_name=(v)
|
|
3428
|
+
set_reflected_string("attributeName", v)
|
|
3429
|
+
end
|
|
3430
|
+
|
|
3431
|
+
def __js_get__(key)
|
|
3432
|
+
case key
|
|
3433
|
+
when "begin"
|
|
3434
|
+
self.begin
|
|
3435
|
+
when "end"
|
|
3436
|
+
self.end
|
|
3437
|
+
when "dur"
|
|
3438
|
+
dur
|
|
3439
|
+
when "min"
|
|
3440
|
+
min
|
|
3441
|
+
when "max"
|
|
3442
|
+
max
|
|
3443
|
+
when "restart"
|
|
3444
|
+
restart
|
|
3445
|
+
when "repeatCount"
|
|
3446
|
+
repeat_count
|
|
3447
|
+
when "repeatDur"
|
|
3448
|
+
repeat_dur
|
|
3449
|
+
when "fill"
|
|
3450
|
+
fill
|
|
3451
|
+
when "attributeName"
|
|
3452
|
+
attribute_name
|
|
3453
|
+
else
|
|
3454
|
+
super
|
|
3455
|
+
end
|
|
3456
|
+
end
|
|
3457
|
+
|
|
3458
|
+
def __js_set__(key, value)
|
|
3459
|
+
case key
|
|
3460
|
+
when "begin"
|
|
3461
|
+
self.begin = value
|
|
3462
|
+
when "end"
|
|
3463
|
+
self.end = value
|
|
3464
|
+
when "dur"
|
|
3465
|
+
self.dur = value
|
|
3466
|
+
when "min"
|
|
3467
|
+
self.min = value
|
|
3468
|
+
when "max"
|
|
3469
|
+
self.max = value
|
|
3470
|
+
when "restart"
|
|
3471
|
+
self.restart = value
|
|
3472
|
+
when "repeatCount"
|
|
3473
|
+
self.repeat_count = value
|
|
3474
|
+
when "repeatDur"
|
|
3475
|
+
self.repeat_dur = value
|
|
3476
|
+
when "fill"
|
|
3477
|
+
self.fill = value
|
|
3478
|
+
when "attributeName"
|
|
3479
|
+
self.attribute_name = value
|
|
3480
|
+
else
|
|
3481
|
+
super
|
|
3482
|
+
end
|
|
3483
|
+
end
|
|
3484
|
+
end
|
|
3485
|
+
|
|
3486
|
+
# `<animate>` — animates a target attribute's value over time.
|
|
3487
|
+
class SVGAnimateElement < SVGAnimationElement
|
|
3488
|
+
def from
|
|
3489
|
+
reflected_string("from")
|
|
3490
|
+
end
|
|
3491
|
+
|
|
3492
|
+
def from=(v)
|
|
3493
|
+
set_reflected_string("from", v)
|
|
3494
|
+
end
|
|
3495
|
+
|
|
3496
|
+
def to
|
|
3497
|
+
reflected_string("to")
|
|
3498
|
+
end
|
|
3499
|
+
|
|
3500
|
+
def to=(v)
|
|
3501
|
+
set_reflected_string("to", v)
|
|
3502
|
+
end
|
|
3503
|
+
|
|
3504
|
+
def by
|
|
3505
|
+
reflected_string("by")
|
|
3506
|
+
end
|
|
3507
|
+
|
|
3508
|
+
def by=(v)
|
|
3509
|
+
set_reflected_string("by", v)
|
|
3510
|
+
end
|
|
3511
|
+
|
|
3512
|
+
def values
|
|
3513
|
+
reflected_string("values")
|
|
3514
|
+
end
|
|
3515
|
+
|
|
3516
|
+
def values=(v)
|
|
3517
|
+
set_reflected_string("values", v)
|
|
3518
|
+
end
|
|
3519
|
+
|
|
3520
|
+
def calc_mode
|
|
3521
|
+
reflected_string("calcMode")
|
|
3522
|
+
end
|
|
3523
|
+
|
|
3524
|
+
def calc_mode=(v)
|
|
3525
|
+
set_reflected_string("calcMode", v)
|
|
3526
|
+
end
|
|
3527
|
+
|
|
3528
|
+
def key_times
|
|
3529
|
+
reflected_string("keyTimes")
|
|
3530
|
+
end
|
|
3531
|
+
|
|
3532
|
+
def key_times=(v)
|
|
3533
|
+
set_reflected_string("keyTimes", v)
|
|
3534
|
+
end
|
|
3535
|
+
|
|
3536
|
+
def key_splines
|
|
3537
|
+
reflected_string("keySplines")
|
|
3538
|
+
end
|
|
3539
|
+
|
|
3540
|
+
def key_splines=(v)
|
|
3541
|
+
set_reflected_string("keySplines", v)
|
|
3542
|
+
end
|
|
3543
|
+
|
|
3544
|
+
def __js_get__(key)
|
|
3545
|
+
case key
|
|
3546
|
+
when "from"
|
|
3547
|
+
from
|
|
3548
|
+
when "to"
|
|
3549
|
+
to
|
|
3550
|
+
when "by"
|
|
3551
|
+
by
|
|
3552
|
+
when "values"
|
|
3553
|
+
values
|
|
3554
|
+
when "calcMode"
|
|
3555
|
+
calc_mode
|
|
3556
|
+
when "keyTimes"
|
|
3557
|
+
key_times
|
|
3558
|
+
when "keySplines"
|
|
3559
|
+
key_splines
|
|
3560
|
+
else
|
|
3561
|
+
super
|
|
3562
|
+
end
|
|
3563
|
+
end
|
|
3564
|
+
|
|
3565
|
+
def __js_set__(key, value)
|
|
3566
|
+
case key
|
|
3567
|
+
when "from"
|
|
3568
|
+
self.from = value
|
|
3569
|
+
when "to"
|
|
3570
|
+
self.to = value
|
|
3571
|
+
when "by"
|
|
3572
|
+
self.by = value
|
|
3573
|
+
when "values"
|
|
3574
|
+
self.values = value
|
|
3575
|
+
when "calcMode"
|
|
3576
|
+
self.calc_mode = value
|
|
3577
|
+
when "keyTimes"
|
|
3578
|
+
self.key_times = value
|
|
3579
|
+
when "keySplines"
|
|
3580
|
+
self.key_splines = value
|
|
3581
|
+
else
|
|
3582
|
+
super
|
|
3583
|
+
end
|
|
3584
|
+
end
|
|
3585
|
+
end
|
|
3586
|
+
|
|
3587
|
+
# `<animateTransform>` — animates a transform attribute (translate,
|
|
3588
|
+
# scale, rotate, skewX, skewY).
|
|
3589
|
+
class SVGAnimateTransformElement < SVGAnimationElement
|
|
3590
|
+
def type
|
|
3591
|
+
reflected_string("type")
|
|
3592
|
+
end
|
|
3593
|
+
|
|
3594
|
+
def type=(v)
|
|
3595
|
+
set_reflected_string("type", v)
|
|
3596
|
+
end
|
|
3597
|
+
|
|
3598
|
+
def from
|
|
3599
|
+
reflected_string("from")
|
|
3600
|
+
end
|
|
3601
|
+
|
|
3602
|
+
def from=(v)
|
|
3603
|
+
set_reflected_string("from", v)
|
|
3604
|
+
end
|
|
3605
|
+
|
|
3606
|
+
def to
|
|
3607
|
+
reflected_string("to")
|
|
3608
|
+
end
|
|
3609
|
+
|
|
3610
|
+
def to=(v)
|
|
3611
|
+
set_reflected_string("to", v)
|
|
3612
|
+
end
|
|
3613
|
+
|
|
3614
|
+
def by
|
|
3615
|
+
reflected_string("by")
|
|
3616
|
+
end
|
|
3617
|
+
|
|
3618
|
+
def by=(v)
|
|
3619
|
+
set_reflected_string("by", v)
|
|
3620
|
+
end
|
|
3621
|
+
|
|
3622
|
+
def values
|
|
3623
|
+
reflected_string("values")
|
|
3624
|
+
end
|
|
3625
|
+
|
|
3626
|
+
def values=(v)
|
|
3627
|
+
set_reflected_string("values", v)
|
|
3628
|
+
end
|
|
3629
|
+
|
|
3630
|
+
def __js_get__(key)
|
|
3631
|
+
case key
|
|
3632
|
+
when "type"
|
|
3633
|
+
type
|
|
3634
|
+
when "from"
|
|
3635
|
+
from
|
|
3636
|
+
when "to"
|
|
3637
|
+
to
|
|
3638
|
+
when "by"
|
|
3639
|
+
by
|
|
3640
|
+
when "values"
|
|
3641
|
+
values
|
|
3642
|
+
else
|
|
3643
|
+
super
|
|
3644
|
+
end
|
|
3645
|
+
end
|
|
3646
|
+
|
|
3647
|
+
def __js_set__(key, value)
|
|
3648
|
+
case key
|
|
3649
|
+
when "type"
|
|
3650
|
+
self.type = value
|
|
3651
|
+
when "from"
|
|
3652
|
+
self.from = value
|
|
3653
|
+
when "to"
|
|
3654
|
+
self.to = value
|
|
3655
|
+
when "by"
|
|
3656
|
+
self.by = value
|
|
3657
|
+
when "values"
|
|
3658
|
+
self.values = value
|
|
3659
|
+
else
|
|
3660
|
+
super
|
|
3661
|
+
end
|
|
3662
|
+
end
|
|
3663
|
+
end
|
|
3664
|
+
|
|
3665
|
+
# `<animateMotion>` — animates an element along a path.
|
|
3666
|
+
class SVGAnimateMotionElement < SVGAnimationElement
|
|
3667
|
+
def path
|
|
3668
|
+
reflected_string("path")
|
|
3669
|
+
end
|
|
3670
|
+
|
|
3671
|
+
def path=(v)
|
|
3672
|
+
set_reflected_string("path", v)
|
|
3673
|
+
end
|
|
3674
|
+
|
|
3675
|
+
def key_points
|
|
3676
|
+
reflected_string("keyPoints")
|
|
3677
|
+
end
|
|
3678
|
+
|
|
3679
|
+
def key_points=(v)
|
|
3680
|
+
set_reflected_string("keyPoints", v)
|
|
3681
|
+
end
|
|
3682
|
+
|
|
3683
|
+
def rotate
|
|
3684
|
+
reflected_string("rotate")
|
|
3685
|
+
end
|
|
3686
|
+
|
|
3687
|
+
def rotate=(v)
|
|
3688
|
+
set_reflected_string("rotate", v)
|
|
3689
|
+
end
|
|
3690
|
+
|
|
3691
|
+
def origin
|
|
3692
|
+
reflected_string("origin")
|
|
3693
|
+
end
|
|
3694
|
+
|
|
3695
|
+
def origin=(v)
|
|
3696
|
+
set_reflected_string("origin", v)
|
|
3697
|
+
end
|
|
3698
|
+
|
|
3699
|
+
def __js_get__(key)
|
|
3700
|
+
case key
|
|
3701
|
+
when "path"
|
|
3702
|
+
path
|
|
3703
|
+
when "keyPoints"
|
|
3704
|
+
key_points
|
|
3705
|
+
when "rotate"
|
|
3706
|
+
rotate
|
|
3707
|
+
when "origin"
|
|
3708
|
+
origin
|
|
3709
|
+
else
|
|
3710
|
+
super
|
|
3711
|
+
end
|
|
3712
|
+
end
|
|
3713
|
+
|
|
3714
|
+
def __js_set__(key, value)
|
|
3715
|
+
case key
|
|
3716
|
+
when "path"
|
|
3717
|
+
self.path = value
|
|
3718
|
+
when "keyPoints"
|
|
3719
|
+
self.key_points = value
|
|
3720
|
+
when "rotate"
|
|
3721
|
+
self.rotate = value
|
|
3722
|
+
when "origin"
|
|
3723
|
+
self.origin = value
|
|
3724
|
+
else
|
|
3725
|
+
super
|
|
3726
|
+
end
|
|
3727
|
+
end
|
|
3728
|
+
end
|
|
3729
|
+
|
|
3730
|
+
# `<set>` — sets the value of an attribute for a specified duration
|
|
3731
|
+
# (no interpolation between values).
|
|
3732
|
+
class SVGSetElement < SVGAnimationElement
|
|
3733
|
+
def to
|
|
3734
|
+
reflected_string("to")
|
|
3735
|
+
end
|
|
3736
|
+
|
|
3737
|
+
def to=(v)
|
|
3738
|
+
set_reflected_string("to", v)
|
|
3739
|
+
end
|
|
3740
|
+
|
|
3741
|
+
def __js_get__(key)
|
|
3742
|
+
key == "to" ? to : super
|
|
3743
|
+
end
|
|
3744
|
+
|
|
3745
|
+
def __js_set__(key, value)
|
|
3746
|
+
key == "to" ? (self.to = value) : super
|
|
3747
|
+
end
|
|
3748
|
+
end
|
|
3749
|
+
|
|
3750
|
+
# `<mpath>` — child of `<animateMotion>` that references an external
|
|
3751
|
+
# `<path>` by href.
|
|
3752
|
+
class SVGMPathElement < SVGElement
|
|
3753
|
+
def href
|
|
3754
|
+
reflected_string("href")
|
|
3755
|
+
end
|
|
3756
|
+
|
|
3757
|
+
def href=(v)
|
|
3758
|
+
set_reflected_string("href", v)
|
|
3759
|
+
end
|
|
3760
|
+
|
|
3761
|
+
def __js_get__(key)
|
|
3762
|
+
key == "href" ? href : super
|
|
3763
|
+
end
|
|
3764
|
+
|
|
3765
|
+
def __js_set__(key, value)
|
|
3766
|
+
key == "href" ? (self.href = value) : super
|
|
3767
|
+
end
|
|
3768
|
+
end
|
|
3769
|
+
|
|
3770
|
+
# `<discard>` (SVG 2) — removes the target element from the document
|
|
3771
|
+
# at a specified time.
|
|
3772
|
+
class SVGDiscardElement < SVGAnimationElement
|
|
3773
|
+
def href
|
|
3774
|
+
reflected_string("href")
|
|
3775
|
+
end
|
|
3776
|
+
|
|
3777
|
+
def href=(v)
|
|
3778
|
+
set_reflected_string("href", v)
|
|
3779
|
+
end
|
|
3780
|
+
|
|
3781
|
+
def __js_get__(key)
|
|
3782
|
+
key == "href" ? href : super
|
|
3783
|
+
end
|
|
3784
|
+
|
|
3785
|
+
def __js_set__(key, value)
|
|
3786
|
+
key == "href" ? (self.href = value) : super
|
|
3787
|
+
end
|
|
3788
|
+
end
|
|
3789
|
+
|
|
3790
|
+
# Tag-name → class lookup. Keys are the lowercased form Nokogiri::HTML5
|
|
3791
|
+
# stores in the tree. Tags absent from this table fall through to
|
|
3792
|
+
# `Dommy::SVGElement` via `element_class_for`.
|
|
3793
|
+
SVG_ELEMENT_CLASSES = {
|
|
3794
|
+
"svg" => SVGSVGElement,
|
|
3795
|
+
"g" => SVGGElement,
|
|
3796
|
+
"circle" => SVGCircleElement,
|
|
3797
|
+
"rect" => SVGRectElement,
|
|
3798
|
+
"ellipse" => SVGEllipseElement,
|
|
3799
|
+
"line" => SVGLineElement,
|
|
3800
|
+
"polygon" => SVGPolygonElement,
|
|
3801
|
+
"polyline" => SVGPolylineElement,
|
|
3802
|
+
"path" => SVGPathElement,
|
|
3803
|
+
"text" => SVGTextElement,
|
|
3804
|
+
"tspan" => SVGTSpanElement,
|
|
3805
|
+
"defs" => SVGDefsElement,
|
|
3806
|
+
"use" => SVGUseElement,
|
|
3807
|
+
"image" => SVGImageElement,
|
|
3808
|
+
"symbol" => SVGSymbolElement,
|
|
3809
|
+
"foreignobject" => SVGForeignObjectElement,
|
|
3810
|
+
"title" => SVGTitleElement,
|
|
3811
|
+
"desc" => SVGDescElement,
|
|
3812
|
+
"mask" => SVGMaskElement,
|
|
3813
|
+
"clippath" => SVGClipPathElement,
|
|
3814
|
+
"pattern" => SVGPatternElement,
|
|
3815
|
+
"lineargradient" => SVGLinearGradientElement,
|
|
3816
|
+
"radialgradient" => SVGRadialGradientElement,
|
|
3817
|
+
"stop" => SVGStopElement,
|
|
3818
|
+
"filter" => SVGFilterElement,
|
|
3819
|
+
"marker" => SVGMarkerElement,
|
|
3820
|
+
|
|
3821
|
+
# Recommended additions
|
|
3822
|
+
"a" => SVGAElement,
|
|
3823
|
+
"textpath" => SVGTextPathElement,
|
|
3824
|
+
"view" => SVGViewElement,
|
|
3825
|
+
"switch" => SVGSwitchElement,
|
|
3826
|
+
"metadata" => SVGMetadataElement,
|
|
3827
|
+
|
|
3828
|
+
# Filter primitives (common ones)
|
|
3829
|
+
"fegaussianblur" => SVGFEGaussianBlurElement,
|
|
3830
|
+
"feoffset" => SVGFEOffsetElement,
|
|
3831
|
+
"feblend" => SVGFEBlendElement,
|
|
3832
|
+
"fecolormatrix" => SVGFEColorMatrixElement,
|
|
3833
|
+
"feflood" => SVGFEFloodElement,
|
|
3834
|
+
"fecomposite" => SVGFECompositeElement,
|
|
3835
|
+
"femerge" => SVGFEMergeElement,
|
|
3836
|
+
"femergenode" => SVGFEMergeNodeElement,
|
|
3837
|
+
"fecomponenttransfer" => SVGFEComponentTransferElement,
|
|
3838
|
+
"fefuncr" => SVGFEFuncRElement,
|
|
3839
|
+
"fefuncg" => SVGFEFuncGElement,
|
|
3840
|
+
"fefuncb" => SVGFEFuncBElement,
|
|
3841
|
+
"fefunca" => SVGFEFuncAElement,
|
|
3842
|
+
"fetile" => SVGFETileElement,
|
|
3843
|
+
"femorphology" => SVGFEMorphologyElement,
|
|
3844
|
+
"feimage" => SVGFEImageElement,
|
|
3845
|
+
"fedropshadow" => SVGFEDropShadowElement,
|
|
3846
|
+
"feturbulence" => SVGFETurbulenceElement,
|
|
3847
|
+
"fedisplacementmap" => SVGFEDisplacementMapElement,
|
|
3848
|
+
"fedistantlight" => SVGFEDistantLightElement,
|
|
3849
|
+
"fepointlight" => SVGFEPointLightElement,
|
|
3850
|
+
"fespotlight" => SVGFESpotLightElement,
|
|
3851
|
+
"feconvolvematrix" => SVGFEConvolveMatrixElement,
|
|
3852
|
+
"fediffuselighting" => SVGFEDiffuseLightingElement,
|
|
3853
|
+
"fespecularlighting" => SVGFESpecularLightingElement,
|
|
3854
|
+
|
|
3855
|
+
# SMIL animation
|
|
3856
|
+
"animate" => SVGAnimateElement,
|
|
3857
|
+
"animatetransform" => SVGAnimateTransformElement,
|
|
3858
|
+
"animatemotion" => SVGAnimateMotionElement,
|
|
3859
|
+
"set" => SVGSetElement,
|
|
3860
|
+
"mpath" => SVGMPathElement,
|
|
3861
|
+
"discard" => SVGDiscardElement
|
|
3862
|
+
}.freeze
|
|
3863
|
+
end
|