| '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; |