1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- var tslib_1 = require("tslib");
- var utils = tslib_1.__importStar(require("./utils"));
- exports.default = {
- createCSS: function (document, styles, sheet) {
- // Strip the query-string
- var href = sheet.href || '';
- // If there is no title set, use the filename, minus the extension
- var id = "less:" + (sheet.title || utils.extractId(href));
- // If this has already been inserted into the DOM, we may need to replace it
- var oldStyleNode = document.getElementById(id);
- var keepOldStyleNode = false;
- // Create a new stylesheet node for insertion or (if necessary) replacement
- var styleNode = document.createElement('style');
- styleNode.setAttribute('type', 'text/css');
- if (sheet.media) {
- styleNode.setAttribute('media', sheet.media);
- }
- styleNode.id = id;
- if (!styleNode.styleSheet) {
- styleNode.appendChild(document.createTextNode(styles));
- // If new contents match contents of oldStyleNode, don't replace oldStyleNode
- keepOldStyleNode = (oldStyleNode !== null && oldStyleNode.childNodes.length > 0 && styleNode.childNodes.length > 0 &&
- oldStyleNode.firstChild.nodeValue === styleNode.firstChild.nodeValue);
- }
- var head = document.getElementsByTagName('head')[0];
- // If there is no oldStyleNode, just append; otherwise, only append if we need
- // to replace oldStyleNode with an updated stylesheet
- if (oldStyleNode === null || keepOldStyleNode === false) {
- var nextEl = sheet && sheet.nextSibling || null;
- if (nextEl) {
- nextEl.parentNode.insertBefore(styleNode, nextEl);
- }
- else {
- head.appendChild(styleNode);
- }
- }
- if (oldStyleNode && keepOldStyleNode === false) {
- oldStyleNode.parentNode.removeChild(oldStyleNode);
- }
- // For IE.
- // This needs to happen *after* the style element is added to the DOM, otherwise IE 7 and 8 may crash.
- // See http://social.msdn.microsoft.com/Forums/en-US/7e081b65-878a-4c22-8e68-c10d39c2ed32/internet-explorer-crashes-appending-style-element-to-head
- if (styleNode.styleSheet) {
- try {
- styleNode.styleSheet.cssText = styles;
- }
- catch (e) {
- throw new Error('Couldn\'t reassign styleSheet.cssText.');
- }
- }
- },
- currentScript: function (window) {
- var document = window.document;
- return document.currentScript || (function () {
- var scripts = document.getElementsByTagName('script');
- return scripts[scripts.length - 1];
- })();
- }
- };
- //# sourceMappingURL=browser.js.map
|