From ee6dea3257a408af62c4d914f3417c2ef968cfc9 Mon Sep 17 00:00:00 2001 From: jeevanSF3855 <116075351+jeevanSF3855@users.noreply.github.com> Date: Tue, 23 Dec 2025 16:50:17 +0530 Subject: [PATCH 1/3] bug(REPORT-480045): resolved the localization issue --- src/common/index.js | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/src/common/index.js b/src/common/index.js index d82f4f0..64bdbae 100644 --- a/src/common/index.js +++ b/src/common/index.js @@ -79,9 +79,29 @@ export async function updataSample(sampleData, isReportViewer) { let html = await fetchFile(`src/controls/${dirName}/${sampleData.routerPath}/index.html`); let js = await fetchFile(`src/controls/${dirName}/${sampleData.routerPath}/index.js`); demo.innerHTML = html; + await loadScriptsFromHTML(demo); eval(js); } +async function loadScriptsFromHTML(container) { + debugger + let scriptTags = container.querySelectorAll('script'); + if (scriptTags && scriptTags.length > 0) { + for (let index = 0; index < scriptTags.length; index++) { + let existingScript = document.head.querySelector(`script[src="${scriptTags[index].src}"]`); + if (!existingScript) { + let newScript = document.createElement('script'); + newScript.src = scriptTags[index].src; + await new Promise((resolve, reject) => { + newScript.onload = resolve; + newScript.onerror = reject; + document.head.appendChild(newScript); + }); + } + } + } +} + function onResize() { setReportsHeight(); updateOverlay(); From 6c67571e2e2352ad5576fd4805a7fe36521bd022 Mon Sep 17 00:00:00 2001 From: jeevanSF3855 <116075351+jeevanSF3855@users.noreply.github.com> Date: Tue, 23 Dec 2025 19:50:33 +0530 Subject: [PATCH 2/3] bug(REPORT-480045): resolved the localization issue --- src/common/index.js | 26 +++++++++++++++++++++++--- 1 file changed, 23 insertions(+), 3 deletions(-) diff --git a/src/common/index.js b/src/common/index.js index 64bdbae..344a4b3 100644 --- a/src/common/index.js +++ b/src/common/index.js @@ -30,6 +30,7 @@ import { let header,sidebar; let reportViewer = 'report-viewer'; let reportDesigner = 'report-designer'; +let lastUpdatedScripts = []; document.addEventListener('DOMContentLoaded', onDOMContentLoaded, false); @@ -78,13 +79,20 @@ export async function updataSample(sampleData, isReportViewer) { let demo = document.getElementsByTagName("ej-sample")[0]; let html = await fetchFile(`src/controls/${dirName}/${sampleData.routerPath}/index.html`); let js = await fetchFile(`src/controls/${dirName}/${sampleData.routerPath}/index.js`); - demo.innerHTML = html; - await loadScriptsFromHTML(demo); + let tags = new DOMParser().parseFromString(html, 'text/html'); + let container = tags.querySelector('div'); + demo.innerHTML = container ? container.outerHTML : ''; + await loadScriptsFromHTML(tags); eval(js); } async function loadScriptsFromHTML(container) { - debugger + if (lastUpdatedScripts && lastUpdatedScripts.length > 0) { + removeScriptsFromHTML(lastUpdatedScripts); + lastUpdatedScripts = []; + } + + if (!container) return; let scriptTags = container.querySelectorAll('script'); if (scriptTags && scriptTags.length > 0) { for (let index = 0; index < scriptTags.length; index++) { @@ -96,12 +104,24 @@ async function loadScriptsFromHTML(container) { newScript.onload = resolve; newScript.onerror = reject; document.head.appendChild(newScript); + lastUpdatedScripts.push(newScript.src); }); } } } } +function removeScriptsFromHTML(scriptList) { + if (scriptList && scriptList.length > 0) { + for (let index = 0; index < scriptList.length; index++) { + let targetTag = scriptList[index]; + if (targetTag && targetTag.parentNode) { + targetTag.parentNode.removeChild(targetTag); + } + } + } +} + function onResize() { setReportsHeight(); updateOverlay(); From 4d2ecbbb27877de2f6ae8368859ce4361b61d6f7 Mon Sep 17 00:00:00 2001 From: jeevanSF3855 <116075351+jeevanSF3855@users.noreply.github.com> Date: Tue, 23 Dec 2025 20:05:00 +0530 Subject: [PATCH 3/3] bug(REPORT-480045): resolved the localization issue --- src/common/index.js | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/common/index.js b/src/common/index.js index 344a4b3..3c7fba0 100644 --- a/src/common/index.js +++ b/src/common/index.js @@ -114,9 +114,10 @@ async function loadScriptsFromHTML(container) { function removeScriptsFromHTML(scriptList) { if (scriptList && scriptList.length > 0) { for (let index = 0; index < scriptList.length; index++) { - let targetTag = scriptList[index]; - if (targetTag && targetTag.parentNode) { - targetTag.parentNode.removeChild(targetTag); + let selector = `head script[src="${CSS.escape(scriptList[index])}"]`; + let targetTag = document.querySelector(selector); + if (targetTag && targetTag.parentNode === document.head) { + targetTag.remove(); } } }