    /*

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

    */
    Class('Ariadne.DomQueryFinder.Identifier.Contains', {

        isa         : Ariadne.QueryFinder.Identifier,

        does        : Ariadne.DomQueryFinder.Role.DomHelper,

        has         : {
            maxCharsForContainsSelector     : 30
        },

        methods : {

            identify : function (target, root, maze) {
                var attributes      = this.attributes
                var segments        = []

                // SVG elements in IE does not have ".children"
                var children        = target.children || target.childNodes

                if (children.length == 0 || (children.length == 1 && !children[ 0 ].innerHTML)) {
                    var text        = target.textContent.trim()

                    if (text.length > 1)
                        if (text.length <= this.maxCharsForContainsSelector)
                            return {
                                query       : ':textEquals(' + this.escapeDomSelector(text) + ')'
                            }
                        else
                            return {
                                query       : ':contains(' + this.escapeDomSelector(text.substr(0, this.maxCharsForContainsSelector)) + ')'
                            }
                }

                return null
            }
        }
    });