'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.children[0];

  if (svg.isElem('svg')) {
    svg.class.add.apply(svg.class, classNames);
  }

  return data;
};
