2020-07-18 13:13:57 +02:00
|
|
|
/* eslint-disable import/no-extraneous-dependencies */
|
2020-07-17 23:07:51 +02:00
|
|
|
import { parseDOM } from 'htmlparser2';
|
2020-07-18 13:13:57 +02:00
|
|
|
import DEFAULT_ATTRS from './default-attrs.json';
|
2020-07-17 23:07:51 +02:00
|
|
|
|
2020-07-18 13:13:57 +02:00
|
|
|
export default iconsObject => {
|
|
|
|
|
const iconNodes = {};
|
2020-07-17 23:07:51 +02:00
|
|
|
|
2020-07-18 13:13:57 +02:00
|
|
|
Object.keys(iconsObject).forEach(icon => {
|
2020-07-17 23:07:51 +02:00
|
|
|
const svgString = iconsObject[icon];
|
|
|
|
|
const dom = parseDOM(svgString);
|
|
|
|
|
|
2020-08-14 23:20:19 +02:00
|
|
|
const children = dom.map(element => [
|
|
|
|
|
element.name,
|
|
|
|
|
{
|
|
|
|
|
...element.attribs,
|
|
|
|
|
},
|
|
|
|
|
]);
|
2020-07-17 23:07:51 +02:00
|
|
|
|
2020-07-18 01:14:30 +02:00
|
|
|
iconNodes[icon] = [
|
2020-07-17 23:07:51 +02:00
|
|
|
'svg',
|
|
|
|
|
{
|
|
|
|
|
...DEFAULT_ATTRS,
|
|
|
|
|
},
|
2020-07-18 13:13:57 +02:00
|
|
|
children,
|
|
|
|
|
];
|
|
|
|
|
});
|
2020-07-17 23:07:51 +02:00
|
|
|
|
2020-07-18 01:14:30 +02:00
|
|
|
return iconNodes;
|
2020-07-18 13:13:57 +02:00
|
|
|
};
|