1
0
Fork 0
mirror of https://github.com/koalyptus/TableFilter.git synced 2024-05-23 08:42:18 +02:00
TableFilter/src/modules/highlightKeywords.js.map
2014-12-13 09:11:54 +00:00

1 line
7 KiB
Plaintext

{"version":3,"sources":["src-es6/modules/highlightKeywords.js"],"names":[],"mappings":"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","file":"src-es6/modules/highlightKeywords.js","sourcesContent":["import {Dom} from '../dom';\nimport {Str} from '../string';\n\nexport class HighlightKeyword{\n\n /**\n * HighlightKeyword, highlight matched keyword\n * @param {Object} tf TableFilter instance\n */\n constructor(tf) {\n var f = tf.fObj;\n //defines css class for highlighting\n this.highlightCssClass = f.highlight_css_class || 'keyword';\n this.highlightedNodes = [];\n\n this.tf = tf;\n }\n\n /**\n * highlight occurences of searched term in passed node\n * @param {Node} node\n * @param {String} word Searched term\n * @param {String} cssClass Css class name\n */\n highlight(node, word, cssClass){\n // Iterate into this nodes childNodes\n if(node.hasChildNodes){\n var children = node.childNodes;\n for(var i=0; i<children.length; i++){\n this.highlight(children[i], word, cssClass);\n }\n }\n\n if(node.nodeType === 3){\n var tempNodeVal = Str.lower(node.nodeValue);\n var tempWordVal = Str.lower(word);\n if(tempNodeVal.indexOf(tempWordVal) != -1){\n var pn = node.parentNode;\n if(pn && pn.className != cssClass){\n // word not highlighted yet\n var nv = node.nodeValue,\n ni = tempNodeVal.indexOf(tempWordVal),\n // Create a load of replacement nodes\n before = Dom.text(nv.substr(0, ni)),\n docWordVal = nv.substr(ni,word.length),\n after = Dom.text(nv.substr(ni+word.length)),\n hiwordtext = Dom.text(docWordVal),\n hiword = Dom.create('span');\n hiword.className = cssClass;\n hiword.appendChild(hiwordtext);\n pn.insertBefore(before,node);\n pn.insertBefore(hiword,node);\n pn.insertBefore(after,node);\n pn.removeChild(node);\n this.highlightedNodes.push(hiword.firstChild);\n }\n }\n }\n }\n\n /**\n * Removes highlight to nodes matching passed string\n * @param {String} word\n * @param {String} cssClass Css class to remove\n */\n unhighlight(word, cssClass){\n var arrRemove = [];\n var highlightedNodes = this.highlightedNodes;\n for(var i=0; i<highlightedNodes.length; i++){\n var n = highlightedNodes[i];\n if(!n){\n continue;\n }\n var tempNodeVal = Str.lower(n.nodeValue),\n tempWordVal = Str.lower(word);\n if(tempNodeVal.indexOf(tempWordVal) !== -1){\n var pn = n.parentNode;\n if(pn && pn.className === cssClass){\n var prevSib = pn.previousSibling,\n nextSib = pn.nextSibling;\n if(!prevSib || !nextSib){ continue; }\n nextSib.nodeValue = prevSib.nodeValue + n.nodeValue +\n nextSib.nodeValue;\n prevSib.nodeValue = '';\n n.nodeValue = '';\n arrRemove.push(i);\n }\n }\n }\n for(var k=0; k<arrRemove.length; k++){\n highlightedNodes.splice(arrRemove[k], 1);\n }\n }\n\n /**\n * Clear all occurrences of highlighted nodes\n */\n unhighlightAll(){\n if(!this.tf.highlightKeywords || !this.tf.searchArgs){\n return;\n }\n for(var y=0; y<this.tf.searchArgs.length; y++){\n this.unhighlight(\n this.tf.searchArgs[y], this.highlightCssClass);\n }\n this.highlightedNodes = [];\n }\n}"]}