1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- 'use strict';
- var baseCssAdapter = require('css-select-base-adapter');
- /**
- * DOMUtils API for SVGO AST (used by css-select)
- */
- var svgoCssSelectAdapterMin = {
- // is the node a tag?
- // isTag: ( node:Node ) => isTag:Boolean
- isTag: function(node) {
- return node.isElem();
- },
- // get the parent of the node
- // getParent: ( node:Node ) => parentNode:Node
- // returns null when no parent exists
- getParent: function(node) {
- return node.parentNode || null;
- },
- // get the node's children
- // getChildren: ( node:Node ) => children:[Node]
- getChildren: function(node) {
- return node.content || [];
- },
- // get the name of the tag
- // getName: ( elem:ElementNode ) => tagName:String
- getName: function(elemAst) {
- return elemAst.elem;
- },
- // get the text content of the node, and its children if it has any
- // getText: ( node:Node ) => text:String
- // returns empty string when there is no text
- getText: function(node) {
- return node.content[0].text || node.content[0].cdata || '';
- },
- // get the attribute value
- // getAttributeValue: ( elem:ElementNode, name:String ) => value:String
- // returns null when attribute doesn't exist
- getAttributeValue: function(elem, name) {
- return elem.hasAttr(name) ? elem.attr(name).value : null;
- }
- };
- // use base adapter for default implementation
- var svgoCssSelectAdapter = baseCssAdapter(svgoCssSelectAdapterMin);
- module.exports = svgoCssSelectAdapter;
|