@SashaB another way is to inject it manually. IN your blade component you have something like this:
window.addEventListener('chart-preloaded', event => {
function loadJS(FILE_URL, async = true) {
let scriptEle = document.createElement("script");
scriptEle.setAttribute("src", FILE_URL);
scriptEle.setAttribute("type", "text/javascript");
scriptEle.setAttribute("async", async);
document.body.appendChild(scriptEle);
// success event
scriptEle.addEventListener("load", () => {
@this.
chartLoaded = true;
});
// error event
scriptEle.addEventListener("error", (ev) => {
console.log("Error on loading file", ev);
});
}
loadJS("{{ asset('js/http_cdn.jsdelivr.net_npm_chart.js.js') }}", true);
});
Then in your component you fire off the event listener:
$this->dispatchBrowserEvent('chart-preloaded');