/
var
/
www
/
cobraambalaj
/
node_modules
/
svgo
/
plugins
/
/var/www/cobraambalaj/node_modules/svgo/plugins
mkdir
upload
Name
Size
Mode
Actions
addAttributesToSVGElement.js
2066
0644
edit
dl
rm
addClassesToSVGElement.js
1093
0644
edit
dl
rm
cleanupAttrs.js
1308
0644
edit
dl
rm
cleanupEnableBackground.js
2301
0644
edit
dl
rm
cleanupIDs.js
6741
0644
edit
dl
rm
cleanupListOfValues.js
3605
0644
edit
dl
rm
cleanupNumericValues.js
2565
0644
edit
dl
rm
collapseGroups.js
2993
0644
edit
dl
rm
convertColors.js
3670
0644
edit
dl
rm
convertEllipseToCircle.js
895
0644
edit
dl
rm
convertPathData.js
30884
0644
edit
dl
rm
convertShapeToPath.js
4497
0644
edit
dl
rm
convertStyleToAttrs.js
4203
0644
edit
dl
rm
convertTransform.js
10871
0644
edit
dl
rm
inlineStyles.js
7880
0644
edit
dl
rm
mergePaths.js
2125
0644
edit
dl
rm
minifyStyles.js
4065
0755
edit
dl
rm
moveElemsAttrsToGroup.js
3388
0644
edit
dl
rm
moveGroupAttrsToElems.js
1850
0644
edit
dl
rm
prefixIds.js
5543
0755
edit
dl
rm
removeAttributesBySelector.js
1910
0644
edit
dl
rm
removeAttrs.js
4159
0644
edit
dl
rm
removeComments.js
508
0644
edit
dl
rm
removeDesc.js
767
0644
edit
dl
rm
removeDimensions.js
1327
0644
edit
dl
rm
removeDoctype.js
1030
0644
edit
dl
rm
removeEditorsNSData.js
1550
0644
edit
dl
rm
removeElementsByAttr.js
1932
0644
edit
dl
rm
removeEmptyAttrs.js
509
0644
edit
dl
rm
removeEmptyContainers.js
690
0644
edit
dl
rm
removeEmptyText.js
1125
0644
edit
dl
rm
removeHiddenElems.js
6618
0644
edit
dl
rm
removeMetadata.js
392
0644
edit
dl
rm
removeNonInheritableGroupAttrs.js
945
0644
edit
dl
rm
removeOffCanvasPaths.js
3166
0644
edit
dl
rm
removeRasterImages.js
558
0644
edit
dl
rm
removeScriptElement.js
423
0644
edit
dl
rm
removeStyleElement.js
426
0644
edit
dl
rm
removeTitle.js
411
0644
edit
dl
rm
removeUnknownsAndDefaults.js
4968
0644
edit
dl
rm
removeUnusedNS.js
2390
0644
edit
dl
rm
removeUselessDefs.js
1112
0644
edit
dl
rm
removeUselessStrokeAndFill.js
2712
0644
edit
dl
rm
removeViewBox.js
1139
0644
edit
dl
rm
removeXMLNS.js
591
0644
edit
dl
rm
removeXMLProcInst.js
487
0644
edit
dl
rm
reusePaths.js
6485
0644
edit
dl
rm
sortAttrs.js
1698
0644
edit
dl
rm
sortDefsChildren.js
1400
0644
edit
dl
rm
_collections.js
58397
0644
edit
dl
rm
_path.js
31742
0644
edit
dl
rm
_transforms.js
10263
0644
edit
dl
rm
Edit:
/var/www/cobraambalaj/node_modules/svgo/plugins/reusePaths.js
(6485B)
/** * @license * The MIT License * * Copyright © 2012–2016 Kir Belevich * * Permission is hereby granted, free of charge, to any person * obtaining a copy of this software and associated documentation * files (the "Software"), to deal in the Software without * restriction, including without limitation the rights to use, * copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following * conditions: * * The above copyright notice and this permission notice shall be * included in all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR * OTHER DEALINGS IN THE SOFTWARE. * * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - * * Лицензия MIT * * Copyright © 2012–2016 Кир Белевич * * Данная лицензия разрешает лицам, получившим копию * данного * программного обеспечения и сопутствующей * документации * (в дальнейшем именуемыми «Программное Обеспечение»), * безвозмездно * использовать Программное Обеспечение без * ограничений, включая * неограниченное право на использование, копирование, * изменение, * добавление, публикацию, распространение, * сублицензирование * и/или продажу копий Программного Обеспечения, также * как и лицам, * которым предоставляется данное Программное * Обеспечение, * при соблюдении следующих условий: * * Указанное выше уведомление об авторском праве и * данные условия * должны быть включены во все копии или значимые части * данного * Программного Обеспечения. * * ДАННОЕ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ПРЕДОСТАВЛЯЕТСЯ «КАК * ЕСТЬ», * БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ, ЯВНО ВЫРАЖЕННЫХ ИЛИ * ПОДРАЗУМЕВАЕМЫХ, * ВКЛЮЧАЯ, НО НЕ ОГРАНИЧИВАЯСЬ ГАРАНТИЯМИ ТОВАРНОЙ * ПРИГОДНОСТИ, * СООТВЕТСТВИЯ ПО ЕГО КОНКРЕТНОМУ НАЗНАЧЕНИЮ И * ОТСУТСТВИЯ НАРУШЕНИЙ * ПРАВ. НИ В КАКОМ СЛУЧАЕ АВТОРЫ ИЛИ ПРАВООБЛАДАТЕЛИ НЕ * НЕСУТ * ОТВЕТСТВЕННОСТИ ПО ИСКАМ О ВОЗМЕЩЕНИИ УЩЕРБА, УБЫТКОВ * ИЛИ ДРУГИХ * ТРЕБОВАНИЙ ПО ДЕЙСТВУЮЩИМ КОНТРАКТАМ, ДЕЛИКТАМ ИЛИ * ИНОМУ, * ВОЗНИКШИМ ИЗ, ИМЕЮЩИМ ПРИЧИНОЙ ИЛИ СВЯЗАННЫМ С * ПРОГРАММНЫМ * ОБЕСПЕЧЕНИЕМ ИЛИ ИСПОЛЬЗОВАНИЕМ ПРОГРАММНОГО * ОБЕСПЕЧЕНИЯ * ИЛИ ИНЫМИ ДЕЙСТВИЯМИ С ПРОГРАММНЫМ ОБЕСПЕЧЕНИЕМ. */ 'use strict'; var JSAPI = require('../lib/svgo/jsAPI'); exports.type = 'full'; exports.active = false; exports.description = 'Finds <path> elements with the same d, fill, and ' + 'stroke, and converts them to <use> elements ' + 'referencing a single <path> def.'; /** * Finds <path> elements with the same d, fill, and stroke, and converts them to * <use> elements referencing a single <path> def. * * @author Jacob Howcroft */ exports.fn = function(data) { const seen = new Map(); let count = 0; const defs = []; traverse(data, item => { if (!item.isElem('path') || !item.hasAttr('d')) { return; } const d = item.attr('d').value; const fill = (item.hasAttr('fill') && item.attr('fill').value) || ''; const stroke = (item.hasAttr('stroke') && item.attr('stroke').value) || ''; const key = d + ';s:' + stroke + ';f:' + fill; const hasSeen = seen.get(key); if (!hasSeen) { seen.set(key, {elem: item, reused: false}); return; } if (!hasSeen.reused) { hasSeen.reused = true; if (!hasSeen.elem.hasAttr('id')) { hasSeen.elem.addAttr({name: 'id', local: 'id', prefix: '', value: 'reuse-' + (count++)}); } defs.push(hasSeen.elem); } item = convertToUse(item, hasSeen.elem.attr('id').value); }); const defsTag = new JSAPI({ elem: 'defs', prefix: '', local: 'defs', content: [], attrs: []}, data); data.content[0].spliceContent(0, 0, defsTag); for (let def of defs) { // Remove class and style before copying to avoid circular refs in // JSON.stringify. This is fine because we don't actually want class or // style information to be copied. const style = def.style; const defClass = def.class; delete def.style; delete def.class; const defClone = def.clone(); def.style = style; def.class = defClass; defClone.removeAttr('transform'); defsTag.spliceContent(0, 0, defClone); // Convert the original def to a use so the first usage isn't duplicated. def = convertToUse(def, defClone.attr('id').value); def.removeAttr('id'); } return data; }; /** */ function convertToUse(item, href) { item.renameElem('use'); item.removeAttr('d'); item.removeAttr('stroke'); item.removeAttr('fill'); item.addAttr({name: 'xlink:href', local: 'xlink:href', prefix: 'none', value: '#' + href}); delete item.pathJS; return item; } /** */ function traverse(parent, callback) { if (parent.isEmpty()) { return; } for (let child of parent.content) { callback(child); traverse(child, callback); } }
Save
cmd:
run