123456789101112131415161718192021222324252627282930313233343536373839404142 |
- /* Copyright (c) 2017 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*=\"" + 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;
- }
|