From 138711c08296557c6afc0500e5fda7136f4711ee Mon Sep 17 00:00:00 2001 From: asus Date: Fri, 3 Nov 2023 10:29:50 +0100 Subject: [PATCH] modif of the script to use html templates and slots with shadow DOM --- ascii_elements/mouse_4.html | 2 +- ascii_elements/mouse_container.html | 1 + scripts/load_html.js | 28 ++++- scripts/old_load_html.js | 80 ------------ test_template_slots/index.html | 185 ---------------------------- test_template_slots/test.html | 18 --- test_template_slots/test_2.html | 18 --- test_template_slots/test_3.html | 38 ------ 8 files changed, 28 insertions(+), 342 deletions(-) delete mode 100644 test_template_slots/index.html delete mode 100644 test_template_slots/test.html delete mode 100644 test_template_slots/test_2.html delete mode 100644 test_template_slots/test_3.html diff --git a/ascii_elements/mouse_4.html b/ascii_elements/mouse_4.html index ed417f8..e0da065 100644 --- a/ascii_elements/mouse_4.html +++ b/ascii_elements/mouse_4.html @@ -1,6 +1,6 @@ -
+
                  •      
diff --git a/ascii_elements/mouse_container.html b/ascii_elements/mouse_container.html
index 0441742..98eca13 100644
--- a/ascii_elements/mouse_container.html
+++ b/ascii_elements/mouse_container.html
@@ -7,6 +7,7 @@
 	.mouse_container {
 		position: relative;
 		margin-left: 0px;
+		display: contents;
 		/*
 		border: 1px solid red;
 		margin-right: auto;
diff --git a/scripts/load_html.js b/scripts/load_html.js
index d3b04c6..046bf71 100644
--- a/scripts/load_html.js
+++ b/scripts/load_html.js
@@ -9,12 +9,36 @@ customElements.define(
 			super();
 
 			let path = this.dataset.path;
-			let templateContent = document.createDocumentFragment();
 
 			let load_content = (content_to_load) => {
 					let template = document.createElement('template');
 					template.innerHTML = content_to_load;
-					templateContent = template.content;
+					let templateContent = template.content;
+					//this.appendChild(templateContent.cloneNode(true));
+					this.replaceWith(templateContent.cloneNode(true));
+			}
+
+			fetch(path)
+				.then(response => response.text())
+				.then(load_content)
+				.catch(error => console.log('Error:', error));
+		}
+	},
+);
+
+customElements.define(
+	"load-html-shadow",
+	class extends HTMLElement {
+		constructor() {
+
+			super();
+
+			let path = this.dataset.path;
+
+			let load_content = (content_to_load) => {
+					let template = document.createElement('template');
+					template.innerHTML = content_to_load;
+					let templateContent = template.content;
 					const shadowRoot = this.attachShadow({ mode: "open" });
 					shadowRoot.appendChild(templateContent.cloneNode(true));
 			}
diff --git a/scripts/old_load_html.js b/scripts/old_load_html.js
index 97f0f2b..13fb9c8 100644
--- a/scripts/old_load_html.js
+++ b/scripts/old_load_html.js
@@ -10,35 +10,14 @@ function deserialize_html(html) {
 }
 
 function fill_content(new_content, old_content, target_name) {
-                                                            // new_content :
-                                                            //     
-                                                            //     
- // old_content : - // - // target_name : - // banner if (!old_content) return; let elements_with_class = find_elements_by_class(new_content, "content_html"); - // elements_with_class : - //
- //
let elements_to_fill = find_elements_by_data(elements_with_class, target_name, "path_target"); - // elements_to_fill : elements_to_fill.forEach(el => el.outerHTML = old_content); } function find_elements_by_class(html_collection, class_to_find) { - // html_collection : - // - // - // class_to_find : - // content_html for (element of html_collection) { if (element.nodeName === "STYLE") continue; @@ -50,13 +29,6 @@ function find_elements_by_class(html_collection, class_to_find) { } function find_elements_by_data(html_collection, data_to_compare, dataset_name) { - // html_collection : - //
- // - // data_to_compare : - // banner - // dataset_name : - // path_target let matching_elements = []; if (!data_to_compare) return matching_elements; @@ -73,20 +45,8 @@ function find_elements_by_data(html_collection, data_to_compare, dataset_name) { } function transfert_class(element, new_content) { - // element : - //
- // - //
- // new_content : - // - // let class_target = element.dataset.class_target; - // -- let new_class = element.dataset.new_class; - // -- if (!class_target) return; if (!new_class) @@ -95,53 +55,13 @@ function transfert_class(element, new_content) { elements_with_class.forEach(el => el.classList.add(new_class)); } -// element_to_replace :
-// content_to_load :
-// -//
-// -// -// element_to_replace :
-// -//
-// content_to_load : -// -// -// function replace_html(element_to_replace, content_to_load) { let old_content = element_to_replace.innerHTML; - // old_content : - // let new_content = deserialize_html(content_to_load); - // new_content : - // - // let target_name = element_to_replace.dataset.path_target; - // target_name : - // banner transfert_class(element_to_replace, new_content); - // element_to_replace : - //
- // - //
- // new_content : - // - // // console.log("new_content: ", new_content); fill_content(new_content, old_content, target_name); - // new_content : - // old_content : - // target_name : element_to_replace.replaceWith(...new_content); }; diff --git a/test_template_slots/index.html b/test_template_slots/index.html deleted file mode 100644 index 1987051..0000000 --- a/test_template_slots/index.html +++ /dev/null @@ -1,185 +0,0 @@ - - - - Slot Example - - - - - - - - - - - - -
-

titre 0

-

paragraph 0

-
- - - test default 3 - - - - first slot -

test default 3 . 2

-
- -
- titre 1 - paragraph 1 -
-
- titre 2 - paragraph 2 -
-
-

07

-
- - - - - - diff --git a/test_template_slots/test.html b/test_template_slots/test.html deleted file mode 100644 index d5d762c..0000000 --- a/test_template_slots/test.html +++ /dev/null @@ -1,18 +0,0 @@ - diff --git a/test_template_slots/test_2.html b/test_template_slots/test_2.html deleted file mode 100644 index df10e76..0000000 --- a/test_template_slots/test_2.html +++ /dev/null @@ -1,18 +0,0 @@ -

default test_2.html

- - diff --git a/test_template_slots/test_3.html b/test_template_slots/test_3.html deleted file mode 100644 index 976c44f..0000000 --- a/test_template_slots/test_3.html +++ /dev/null @@ -1,38 +0,0 @@ -

hello from the other side

-

-

the end

- -
- -
- -