"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;