12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.stylesheetSingleton = void 0;
- var get_nonce_1 = require("get-nonce");
- function makeStyleTag() {
- if (!document)
- return null;
- var tag = document.createElement('style');
- tag.type = 'text/css';
- var nonce = (0, get_nonce_1.getNonce)();
- if (nonce) {
- tag.setAttribute('nonce', nonce);
- }
- return tag;
- }
- function injectStyles(tag, css) {
- // @ts-ignore
- if (tag.styleSheet) {
- // @ts-ignore
- tag.styleSheet.cssText = css;
- }
- else {
- tag.appendChild(document.createTextNode(css));
- }
- }
- function insertStyleTag(tag) {
- var head = document.head || document.getElementsByTagName('head')[0];
- head.appendChild(tag);
- }
- var stylesheetSingleton = function () {
- var counter = 0;
- var stylesheet = null;
- return {
- add: function (style) {
- if (counter == 0) {
- if ((stylesheet = makeStyleTag())) {
- injectStyles(stylesheet, style);
- insertStyleTag(stylesheet);
- }
- }
- counter++;
- },
- remove: function () {
- counter--;
- if (!counter && stylesheet) {
- stylesheet.parentNode && stylesheet.parentNode.removeChild(stylesheet);
- stylesheet = null;
- }
- },
- };
- };
- exports.stylesheetSingleton = stylesheetSingleton;
|