@68publishers/cookie-consent
Version:
Cookie consent wrapper based on orestbida/cookieconsent with GTM integration.
43 lines (32 loc) • 1.26 kB
JavaScript
export class StylesheetLoader {
constructor(document) {
this._document = document;
}
static loadFromConfig(document, uiOptions) {
const loader = new StylesheetLoader(document);
const internalStylesheets = uiOptions.internal_stylesheets;
let externalStylesheets = uiOptions.defaultStylesheets;
let stylesheetKey;
externalStylesheets = [...externalStylesheets, ...uiOptions.external_stylesheets];
for (stylesheetKey in externalStylesheets) {
loader.loadExternal(externalStylesheets[stylesheetKey]);
}
for (stylesheetKey in internalStylesheets) {
loader.loadInternal(internalStylesheets[stylesheetKey]);
}
}
loadExternal(url) {
const element = this._document.createElement('link');
element.rel = 'stylesheet';
element.href = url;
this._appendStylesheet(element);
}
loadInternal(content) {
const element = this._document.createElement('style');
element.innerText = content.replace(/ {2}|\r\n|\n|\r/gm, '');
this._appendStylesheet(element);
}
_appendStylesheet(stylesheet) {
this._document.getElementsByTagName('head')[0].appendChild(stylesheet);
}
}