UNPKG

1.09 kBJavaScriptView Raw
1'use strict';
2
3exports.type = 'full';
4
5exports.active = false;
6
7exports.description = 'adds classnames to an outer <svg> element';
8
9var ENOCLS = `Error in plugin "addClassesToSVGElement": absent parameters.
10It should have a list of classes in "classNames" or one "className".
11Config example:
12
13plugins:
14- addClassesToSVGElement:
15 className: "mySvg"
16
17plugins:
18- addClassesToSVGElement:
19 classNames: ["mySvg", "size-big"]
20`;
21
22/**
23 * Add classnames to an outer <svg> element. Example config:
24 *
25 * plugins:
26 * - addClassesToSVGElement:
27 * className: 'mySvg'
28 *
29 * plugins:
30 * - addClassesToSVGElement:
31 * classNames: ['mySvg', 'size-big']
32 *
33 * @author April Arcus
34 */
35exports.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};