| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687 | 
							- 'use strict';
 
- exports.name = 'addAttributesToSVGElement';
 
- exports.type = 'visitor';
 
- exports.active = false;
 
- exports.description = 'adds attributes to an outer <svg> element';
 
- var ENOCLS = `Error in plugin "addAttributesToSVGElement": absent parameters.
 
- It should have a list of "attributes" or one "attribute".
 
- Config example:
 
- plugins: [
 
-   {
 
-     name: 'addAttributesToSVGElement',
 
-     params: {
 
-       attribute: "mySvg"
 
-     }
 
-   }
 
- ]
 
- plugins: [
 
-   {
 
-     name: 'addAttributesToSVGElement',
 
-     params: {
 
-       attributes: ["mySvg", "size-big"]
 
-     }
 
-   }
 
- ]
 
- plugins: [
 
-   {
 
-     name: 'addAttributesToSVGElement',
 
-     params: {
 
-       attributes: [
 
-         {
 
-           focusable: false
 
-         },
 
-         {
 
-           'data-image': icon
 
-         }
 
-       ]
 
-     }
 
-   }
 
- ]
 
- `;
 
- /**
 
-  * Add attributes to an outer <svg> element. Example config:
 
-  *
 
-  * @author April Arcus
 
-  *
 
-  * @type {import('../lib/types').Plugin<{
 
-  *   attribute?: string | Record<string, null | string>,
 
-  *   attributes?: Array<string | Record<string, null | string>>
 
-  * }>}
 
-  */
 
- exports.fn = (root, params) => {
 
-   if (!Array.isArray(params.attributes) && !params.attribute) {
 
-     console.error(ENOCLS);
 
-     return null;
 
-   }
 
-   const attributes = params.attributes || [params.attribute];
 
-   return {
 
-     element: {
 
-       enter: (node, parentNode) => {
 
-         if (node.name === 'svg' && parentNode.type === 'root') {
 
-           for (const attribute of attributes) {
 
-             if (typeof attribute === 'string') {
 
-               if (node.attributes[attribute] == null) {
 
-                 // @ts-ignore disallow explicit nullable attribute value
 
-                 node.attributes[attribute] = undefined;
 
-               }
 
-             }
 
-             if (typeof attribute === 'object') {
 
-               for (const key of Object.keys(attribute)) {
 
-                 if (node.attributes[key] == null) {
 
-                   // @ts-ignore disallow explicit nullable attribute value
 
-                   node.attributes[key] = attribute[key];
 
-                 }
 
-               }
 
-             }
 
-           }
 
-         }
 
-       },
 
-     },
 
-   };
 
- };
 
 
  |