保誠-保戶業務員媒合平台
HelenHuang
2022-06-09 9bdb95c9e34cef640534e5e5a1e2225a80442000
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
'use strict';
 
exports.type = 'full';
 
exports.active = false;
 
exports.description = 'adds classnames to an outer <svg> element';
 
var ENOCLS = `Error in plugin "addClassesToSVGElement": absent parameters.
It should have a list of classes in "classNames" or one "className".
Config example:
 
plugins:
- addClassesToSVGElement:
    className: "mySvg"
 
plugins:
- addClassesToSVGElement:
    classNames: ["mySvg", "size-big"]
`;
 
/**
 * Add classnames to an outer <svg> element. Example config:
 *
 * plugins:
 * - addClassesToSVGElement:
 *     className: 'mySvg'
 *
 * plugins:
 * - addClassesToSVGElement:
 *     classNames: ['mySvg', 'size-big']
 *
 * @author April Arcus
 */
exports.fn = function(data, params) {
    if (!params || !(Array.isArray(params.classNames) && params.classNames.some(String) || params.className)) {
        console.error(ENOCLS);
        return data;
    }
 
    var classNames = params.classNames || [ params.className ],
        svg = data.content[0];
 
    if (svg.isElem('svg')) {
        svg.class.add.apply(svg.class, classNames);
    }
 
    return data;
 
};