/*

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

*/
Class('Ariadne.ExtJSComponentQueryFinder.Identifier.DirectChild', {

    isa         : Ariadne.ExtJSComponentQueryFinder.Identifier.NthChild,


    methods : {

        identify : function (cmp, root, maze) {
            var container       = this.finder.getParent(cmp)

            if ((!container || container == root) && root.query) {
                var safeXtype                   = this.getExt4ProofXtype(cmp, this.finder.Ext)

                var query                       = safeXtype.query + (safeXtype.leading ? '(true)' : '')

                var allRootComponentsOfType     = root.query(query + ':root')
                var index                       = allRootComponentsOfType.indexOf(cmp)

                if (index >= 0)
                    return {
                        query           : query + ':root(' + (index + 1) + ')',
                        leading         : safeXtype.leading,
                        weight          : 1e7
                    }
            } else {
                var segment     = this.SUPERARG(arguments)

                if (segment) segment.child = true

                return segment
            }
        }
    }
});