/*

Siesta 5.1.0
Copyright(c) 2009-2018 Bryntum AB
https://bryntum.com/contact
https://bryntum.com/products/siesta/license

*/
Role('Ariadne.DomQueryFinder.Role.DomHelper', {

    does        : [
        Siesta.Util.Role.CanGetType    
    ],

    methods : {
        
        ignoreCssClass : function (cls, dom) {
            return false
        },
        
        
        getCssClasses : function (dom) {
            // `className` will be a "[object SVGAnimatedString]" value for SVG elements
            var classes             = this.typeOf(dom.className) == 'String' ? dom.className.trim() : ''
            var significantClasses  = []
            var index               = {}

            classes                 = classes && classes.split(/\s+/) || [];

            for (var i = 0; i < classes.length; i++) {
                var cssClass            = classes[ i ]
                
                if (!index[ cssClass ]) {
                    if (!this.ignoreCssClass(cssClass, dom)) significantClasses.push(cssClass)
                    
                    index[ cssClass ]   = true
                }
            }
            
            return significantClasses
        },
        
        
        escapeDomSelector : function (selector, asId) {
            if (asId) return Siesta.Sizzle.escape(selector)
            
            return Siesta.Sizzle.escape("L" + selector).substring(1).replace(/\\ /g, ' ')
        },
        
        
        unEscapeDomSelector : function (selector) {
            return Siesta.Sizzle.unescape(selector)
        }
    }
});