UNPKG

esri-loader

Version:

A tiny library to help load ArcGIS API for JavaScript modules in non-Dojo applications

43 lines (42 loc) 1.39 kB
/* Copyright (c) 2022 Environmental Systems Research Institute, Inc. * Apache-2.0 */ import { getCdnCssUrl, parseVersion } from './url'; function createStylesheetLink(href) { var link = document.createElement('link'); link.rel = 'stylesheet'; link.href = href; return link; } function insertLink(link, before) { if (before) { // the link should be inserted before a specific node var beforeNode = document.querySelector(before); beforeNode.parentNode.insertBefore(link, beforeNode); } else { // append the link to then end of the head tag document.head.appendChild(link); } } // check if the css url has been injected or added manually function getCss(url) { return document.querySelector("link[href*=\"".concat(url, "\"]")); } function getCssUrl(urlOrVersion) { return !urlOrVersion || parseVersion(urlOrVersion) // if it's a valid version string return the CDN URL ? getCdnCssUrl(urlOrVersion) // otherwise assume it's a URL and return that : urlOrVersion; } // lazy load the CSS needed for the ArcGIS API export function loadCss(urlOrVersion, before) { var url = getCssUrl(urlOrVersion); var link = getCss(url); if (!link) { // create & load the css link link = createStylesheetLink(url); insertLink(link, before); } return link; }