1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
|
/* global arrayClone */
import {delimiter} from './regex.js'
import {subClassArray} from './ArrayPolyfill.js'
import {extend2} from './tools.js'
const SVGArray = subClassArray('SVGArray', Array, function (...args) {
this.init(...args)
})
export default SVGArray
extend2(SVGArray, {
init (...args) {
//this.splice(0, this.length)
this.length = 0
this.push(...this.parse(...args))
},
toArray () {
// const ret = []
// ret.push(...this)
// return ret
return Array.prototype.concat.apply([], this)
},
toString () {
return this.join(' ')
},
// Flattens the array if needed
valueOf () {
const ret = []
ret.push(...this)
return ret
// return this.toArray()
},
// Parse whitespace separated string
parse (array = []) {
//array = array.valueOf()
// If already is an array, no need to parse it
if (array instanceof Array) return array
return array.trim().split(delimiter).map(parseFloat)
},
clone () {
return new this.constructor(this)
},
toSet () {
return new Set(this)
},
})
// export default class SVGArray extends BaseArray {
// constructor (...args) {
// super()
// this.init(...args)
// }
//
// init (array, fallback = []) {
// //this.splice(0, this.length)
// this.length = 0
// this.push(...this.parse(array || fallback))
// }
//
// toArray () {
// return [].concat(this)
// }
//
// toString () {
// return this.join(' ')
// }
//
// valueOf () {
// return this.toArray()
// }
//
// // Parse whitespace separated string
// parse (array) {
// array = array.valueOf()
//
// // if already is an array, no need to parse it
// if (Array.isArray(array)) return array
//
// return array.trim().split(delimiter).map(parseFloat)
// }
//
// clone () {
// return new this.constructor(this)
// }
//
// toSet () {
// return new Set(this)
// }
// }
|