fix #8042 - clean up empty tags
authorAlan <alan@roojs.com>
Wed, 28 Feb 2024 08:39:23 +0000 (16:39 +0800)
committerAlan <alan@roojs.com>
Wed, 28 Feb 2024 08:39:23 +0000 (16:39 +0800)
.gdb_history [new file with mode: 0644]
docs/src/Roo_htmleditor_FilterEmpty.js.html [new file with mode: 0644]
docs/symbols/Roo.htmleditor.FilterEmpty.json [new file with mode: 0644]

diff --git a/.gdb_history b/.gdb_history
new file mode 100644 (file)
index 0000000..627be1c
--- /dev/null
@@ -0,0 +1,5 @@
+run  -i buildSDK/dependancy_core.txt  -i buildSDK/dependancy_ui.txt      -i buildSDK/dependancy_bootstrap.txt -i buildSDK/dependancy_calendar.txt     -i buildSDK/dependancy_svg.txt    --doc-target=docs -D
+
+up
+bt
+quit
diff --git a/docs/src/Roo_htmleditor_FilterEmpty.js.html b/docs/src/Roo_htmleditor_FilterEmpty.js.html
new file mode 100644 (file)
index 0000000..3a72f21
--- /dev/null
@@ -0,0 +1,44 @@
+<html><head><title>Roo/htmleditor/FilterEmpty.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">/**
+ * @class Roo.htmleditor.FilterEmpty
+ * filter empty elements
+ * @constructor
+ * Run a new Empty Filter
+ * @param {Object} config Configuration options
+ */
+
+</span><span class="jsdoc-var">Roo.htmleditor.FilterEmpty </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">)
+{
+    </span><span class="jsdoc-comment">// no need to apply config.
+    </span><span class="jsdoc-var">this.walk</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">cfg.node</span><span class="jsdoc-syntax">);
+}
+
+</span><span class="jsdoc-var">Roo.extend</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">Roo.htmleditor.FilterEmpty</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">Roo.htmleditor.FilterBlack</span><span class="jsdoc-syntax">,
+{
+
+    </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-var">replaceTag </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">node</span><span class="jsdoc-syntax">)
+    {
+        </span><span class="jsdoc-comment">// start from leaf node
+        </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">node.hasChildNodes</span><span class="jsdoc-syntax">()) {
+            </span><span class="jsdoc-var">this.walk</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">node</span><span class="jsdoc-syntax">);
+        }
+
+        </span><span class="jsdoc-comment">// only filter empty leaf element with certain tags
+        </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(
+            [</span><span class="jsdoc-string">'B'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">'I'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">'U'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">'S'</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.indexOf</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">node.tagName</span><span class="jsdoc-syntax">) &lt; 0
+            ||
+            </span><span class="jsdoc-var">node.attributes </span><span class="jsdoc-syntax">&amp;&amp; </span><span class="jsdoc-var">node.attributes.length </span><span class="jsdoc-syntax">&gt; 0
+            ||
+            </span><span class="jsdoc-var">node.hasChildNodes</span><span class="jsdoc-syntax">()
+        ) {
+            </span><span class="jsdoc-keyword">return false</span><span class="jsdoc-syntax">; </span><span class="jsdoc-comment">// don't walk
+        </span><span class="jsdoc-syntax">}
+
+        </span><span class="jsdoc-var">Roo.htmleditor.FilterBlack.prototype.replaceTag.call</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">node</span><span class="jsdoc-syntax">);
+        </span><span class="jsdoc-keyword">return false</span><span class="jsdoc-syntax">; </span><span class="jsdoc-comment">// don't walk
+
+    </span><span class="jsdoc-syntax">}
+
+});</span></code></body></html>
\ No newline at end of file
diff --git a/docs/symbols/Roo.htmleditor.FilterEmpty.json b/docs/symbols/Roo.htmleditor.FilterEmpty.json
new file mode 100644 (file)
index 0000000..7f540d3
--- /dev/null
@@ -0,0 +1,32 @@
+{
+  "name" : "Roo.htmleditor.FilterEmpty",
+  "augments" : [],
+  "childClasses" : {  },
+  "tree_children" : [],
+  "tree_parent" : [],
+  "desc" : "filter empty elements",
+  "isSingleton" : false,
+  "isStatic" : false,
+  "isBuiltin" : false,
+  "isAbstract" : false,
+  "isBuilderTop" : false,
+  "memberOf" : "FilterEmpty",
+  "example" : "",
+  "deprecated" : "",
+  "since" : "",
+  "see" : "",
+  "params" : [
+    {
+      "name" : "config",
+      "type" : "Object",
+      "desc" : "Configuration options",
+      "isOptional" : false
+    }
+  ],
+  "returns" : [],
+  "throws" : "",
+  "requires" : "",
+  "config" : [],
+  "methods" : [],
+  "events" : []
+}
\ No newline at end of file