| '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; |
| |
| }; |