Skip to content

Commit d39f8ff

Browse files
committed
feat: run CoCReate,pass on elementsprior t inserting. merge domEditor and alements together
1 parent d5130a2 commit d39f8ff

File tree

1 file changed

+39
-23
lines changed

1 file changed

+39
-23
lines changed

src/setValue.js

Lines changed: 39 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -61,15 +61,36 @@ const setValue = (el, value) => {
6161
else if (el.tagName === 'IFRAME')
6262
el.srcdoc = value;
6363

64-
else if (el.tagName === 'DIV') {
65-
if (el.hasAttribute("value")) {
66-
el.setAttribute("value", value);
64+
else if (el.tagName === 'SCRIPT')
65+
setScript(el, value);
66+
67+
else {
68+
if (el.hasAttribute('contenteditable') && el == document.activeElement) return;
69+
if (el.tagName === 'DIV') {
70+
if (!el.classList.contains('domEditor') || !el.hasAttribute('get-value') || !el.hasAttribute('get-value-closest'))
71+
return
6772
}
6873

69-
if (el.classList.contains('domEditor') || el.hasAttribute('get-value') || el.hasAttribute('get-value-closest')) {
70-
if (el.getAttribute('data-domEditor') == "replace") {
71-
let newElement = document.createElement("div");
72-
newElement.innerHTML = value;
74+
if (valueType == 'string' || valueType == 'text')
75+
el.textContent = value;
76+
else {
77+
let newElement = document.createElement("div");
78+
newElement.innerHTML = value;
79+
setPass(newElement)
80+
81+
let CoCreateJS = newElement.querySelector('script[src*="CoCreate.js"], script[src*="CoCreate.min.js"]')
82+
if (CoCreateJS)
83+
CoCreateJS.remove()
84+
85+
let CoCreateCSS = newElement.querySelector('link[href*="CoCreate.css"], link[href*="CoCreate.min.css"]')
86+
if (CoCreateCSS)
87+
CoCreateCSS.remove()
88+
89+
let css = newElement.querySelector('link[collection], link[document]')
90+
if (css)
91+
css.remove()
92+
93+
if (el.getAttribute('domEditor') == "replace") {
7394
let parentNode = el.parentNode;
7495
if (parentNode) {
7596
if (newElement.children[0]) {
@@ -79,29 +100,16 @@ const setValue = (el, value) => {
79100
parentNode.replaceChild(newElement, el);
80101
}
81102
}
82-
}
83-
else {
84-
if (valueType == 'string' || valueType == 'text')
85-
el.textContent = value;
86-
else
87-
el.innerHTML = value;
103+
} else {
104+
el.innerHTML = newElement.innerHTML;
88105
}
89106
}
90-
}
91107

92-
else if (el.tagName === 'SCRIPT'){
93-
setScript(el, value);
94-
}
95-
else {
96-
if (el.hasAttribute('contenteditable') && el == document.activeElement) return;
97-
if (valueType == 'string' || valueType == 'text')
98-
el.textContent = value;
99-
else
100-
el.innerHTML = value;
101108
if (el.hasAttribute("value")) {
102109
el.setAttribute("value", value);
103110
}
104111
}
112+
105113
if (el.getAttribute('contenteditable'))
106114
dispatchEvents(el);
107115

@@ -117,6 +125,14 @@ const setValue = (el, value) => {
117125
}
118126
};
119127

128+
function setPass(el) {
129+
if (CoCreate.pass) {
130+
let passElements = el.querySelectorAll('[pass_id]');
131+
if (passElements)
132+
CoCreate.pass.initElements(passElements)
133+
}
134+
}
135+
120136
function setScript(script, value) {
121137
let newScript = document.createElement('script');
122138
newScript.attributes = script.attributes;

0 commit comments

Comments
 (0)