1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- 'use strict';
- const { pathElems, referencesProps } = require('./_collections.js');
- exports.name = 'moveGroupAttrsToElems';
- exports.type = 'perItem';
- exports.active = true;
- exports.description = 'moves some group attributes to the content elements';
- const pathElemsWithGroupsAndText = [...pathElems, 'g', 'text'];
- exports.fn = function (item) {
-
- if (
- item.type === 'element' &&
- item.name === 'g' &&
- item.children.length !== 0 &&
- item.attributes.transform != null &&
- Object.entries(item.attributes).some(
- ([name, value]) =>
- referencesProps.includes(name) && value.includes('url(')
- ) === false &&
- item.children.every(
- (inner) =>
- pathElemsWithGroupsAndText.includes(inner.name) &&
- inner.attributes.id == null
- )
- ) {
- for (const inner of item.children) {
- const value = item.attributes.transform;
- if (inner.attributes.transform != null) {
- inner.attributes.transform = value + ' ' + inner.attributes.transform;
- } else {
- inner.attributes.transform = value;
- }
- }
- delete item.attributes.transform;
- }
- };
|