sync
[roojs1] / docs / src / Roo_htmleditor_Filter.js.html
1 <html><head><title>Roo/htmleditor/Filter.js</title><link rel="stylesheet" type="text/css" href="../../css/highlight-js.css"/></head><body class="highlightpage"><code class="jsdoc-pretty"><span class="jsdoc-comment">/**
2  *
3  * Base Class for filtering htmleditor stuff.
4  *
5  */
6
7 /**
8  * @class Roo.htmleditor.Filter
9  * Base Class for filtering htmleditor stuff. - do not use this directly - extend it.
10  * @cfg {DomElement} node The node to iterate and filter
11  * @cfg {boolean|String|Array} tag Tags to replace 
12  * @constructor
13  * Create a new Filter.
14  * @param {Object} config Configuration options
15  */
16
17
18
19 </span><span class="jsdoc-var">Roo.htmleditor.Filter </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">cfg</span><span class="jsdoc-syntax">) {
20     </span><span class="jsdoc-var">Roo.apply</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.cfg</span><span class="jsdoc-syntax">);
21     </span><span class="jsdoc-comment">// this does not actually call walk as it's really just a abstract class
22 </span><span class="jsdoc-syntax">}
23
24
25 </span><span class="jsdoc-var">Roo.htmleditor.Filter.prototype </span><span class="jsdoc-syntax">= {
26
27     </span><span class="jsdoc-var">node</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">,
28
29     </span><span class="jsdoc-var">tag</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">,
30
31     </span><span class="jsdoc-comment">// overrride to do replace comments.
32     </span><span class="jsdoc-var">replaceComment </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">,
33
34     </span><span class="jsdoc-comment">// overrride to do replace or do stuff with tags..
35     </span><span class="jsdoc-var">replaceTag </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">,
36
37     </span><span class="jsdoc-var">walk </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">dom</span><span class="jsdoc-syntax">)
38     {
39         </span><span class="jsdoc-var">Roo.each</span><span class="jsdoc-syntax">( </span><span class="jsdoc-var">Array.from</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">dom.childNodes</span><span class="jsdoc-syntax">), </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">( </span><span class="jsdoc-var">e </span><span class="jsdoc-syntax">) {
40             </span><span class="jsdoc-keyword">switch</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">) {
41
42                 </span><span class="jsdoc-keyword">case </span><span class="jsdoc-var">e.nodeType </span><span class="jsdoc-syntax">== 8 &amp;&amp; </span><span class="jsdoc-keyword">typeof</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.replaceComment</span><span class="jsdoc-syntax">) != </span><span class="jsdoc-string">'undefined'</span><span class="jsdoc-syntax">: </span><span class="jsdoc-comment">// comment
43                     </span><span class="jsdoc-var">this.replaceComment</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">);
44                     </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
45
46                 </span><span class="jsdoc-keyword">case </span><span class="jsdoc-var">e.nodeType </span><span class="jsdoc-syntax">!= 3: </span><span class="jsdoc-comment">//not a node.
47                     </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
48
49                 </span><span class="jsdoc-keyword">case </span><span class="jsdoc-var">tag </span><span class="jsdoc-syntax">=== </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">: </span><span class="jsdoc-comment">// everything
50                 </span><span class="jsdoc-keyword">case typeof</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">tag</span><span class="jsdoc-syntax">) == </span><span class="jsdoc-string">'object' </span><span class="jsdoc-syntax">&amp;&amp; </span><span class="jsdoc-var">tag.indexOf</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e.tagName</span><span class="jsdoc-syntax">) &gt; -1: </span><span class="jsdoc-comment">// array and it matches.
51                 </span><span class="jsdoc-keyword">case typeof</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">tag</span><span class="jsdoc-syntax">) == </span><span class="jsdoc-string">'string' </span><span class="jsdoc-syntax">&amp;&amp; </span><span class="jsdoc-var">tag </span><span class="jsdoc-syntax">== </span><span class="jsdoc-var">e.tagName</span><span class="jsdoc-syntax">: </span><span class="jsdoc-comment">// array and it matches.
52                     </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.replaceTag </span><span class="jsdoc-syntax">&amp;&amp; </span><span class="jsdoc-keyword">false </span><span class="jsdoc-syntax">=== </span><span class="jsdoc-var">this.replaceTag</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">)) {
53                         </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
54                     }
55                     </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e.hasChildNodes</span><span class="jsdoc-syntax">()) {
56                         </span><span class="jsdoc-var">this.walk</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">);
57                     }
58                     </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
59
60                 </span><span class="jsdoc-keyword">default</span><span class="jsdoc-syntax">:    </span><span class="jsdoc-comment">// tags .. that do not match.
61                     </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e.hasChildNodes</span><span class="jsdoc-syntax">()) {
62                         </span><span class="jsdoc-var">this.walk</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">);
63                     }
64             }
65
66         }, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
67
68     }
69 };</span></code></body></html>