@antv/x6
Version:
JavaScript diagramming library that uses SVG and HTML for rendering
46 lines • 1.43 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.ensure = ensure;
exports.clean = clean;
const platform_1 = require("../platform");
const cssModules = [];
function ensure(name, content) {
const cssModule = cssModules.find((m) => m.name === name);
if (cssModule) {
cssModule.loadTimes += 1;
if (cssModule.loadTimes > 1) {
return;
}
}
if (!(0, platform_1.isApplyingHMR)()) {
const styleElement = document.createElement('style');
styleElement.setAttribute('type', 'text/css');
styleElement.textContent = content;
const head = document.querySelector('head');
if (head) {
head.insertBefore(styleElement, head.firstChild);
}
cssModules.push({
name,
loadTimes: 1,
styleElement,
});
}
}
function clean(name) {
const index = cssModules.findIndex((m) => m.name === name);
if (index > -1) {
const cssModule = cssModules[index];
cssModule.loadTimes -= 1;
if (cssModule.loadTimes > 0) {
return;
}
let styleElement = cssModule.styleElement;
if (styleElement && styleElement.parentNode) {
styleElement.parentNode.removeChild(styleElement);
}
styleElement = null;
cssModules.splice(index, 1);
}
}
//# sourceMappingURL=index.js.map