1 | 'use strict';
|
2 |
|
3 | exports.type = 'full';
|
4 |
|
5 | exports.active = false;
|
6 |
|
7 | exports.description = 'adds classnames to an outer <svg> element';
|
8 |
|
9 | var ENOCLS = `Error in plugin "addClassesToSVGElement": absent parameters.
|
10 | It should have a list of classes in "classNames" or one "className".
|
11 | Config example:
|
12 |
|
13 | plugins:
|
14 | - addClassesToSVGElement:
|
15 | className: "mySvg"
|
16 |
|
17 | plugins:
|
18 | - addClassesToSVGElement:
|
19 | classNames: ["mySvg", "size-big"]
|
20 | `;
|
21 |
|
22 |
|
23 |
|
24 |
|
25 |
|
26 |
|
27 |
|
28 |
|
29 |
|
30 |
|
31 |
|
32 |
|
33 |
|
34 |
|
35 | exports.fn = function(data, params) {
|
36 | if (!params || !(Array.isArray(params.classNames) && params.classNames.some(String) || params.className)) {
|
37 | console.error(ENOCLS);
|
38 | return data;
|
39 | }
|
40 |
|
41 | var classNames = params.classNames || [ params.className ],
|
42 | svg = data.content[0];
|
43 |
|
44 | if (svg.isElem('svg')) {
|
45 | svg.class.add.apply(svg.class, classNames);
|
46 | }
|
47 |
|
48 | return data;
|
49 |
|
50 | };
|