UNPKG

xui

Version:

xUI Components for Angular

36 lines 4.72 kB
import { Injectable } from '@angular/core'; import * as i0 from "@angular/core"; export class ThemingService { setStyle(key, href) { this.getLinkElementForKey(key).setAttribute('href', href); } removeStyle(key) { const existingLinkElement = this.getExistingLinkElementByKey(key); if (existingLinkElement) { document.head.removeChild(existingLinkElement); } } getLinkElementForKey(key) { return this.getExistingLinkElementByKey(key) || this.createLinkElementWithKey(key); } getExistingLinkElementByKey(key) { return document.head.querySelector(`link[rel="stylesheet"].${this.getClassNameForKey(key)}`); } createLinkElementWithKey(key) { const linkEl = document.createElement('link'); linkEl.setAttribute('rel', 'stylesheet'); linkEl.classList.add(this.getClassNameForKey(key)); document.head.appendChild(linkEl); return linkEl; } getClassNameForKey(key) { return `xui-${key}`; } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.1", ngImport: i0, type: ThemingService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); } static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.1", ngImport: i0, type: ThemingService, providedIn: 'root' }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.1", ngImport: i0, type: ThemingService, decorators: [{ type: Injectable, args: [{ providedIn: 'root' }] }] }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhlbWluZy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy94dWkvc3JjL3RoZW1pbmcvdGhlbWluZy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBRzNDLE1BQU0sT0FBTyxjQUFjO0lBQ3pCLFFBQVEsQ0FBQyxHQUFXLEVBQUUsSUFBWTtRQUNoQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsR0FBRyxDQUFDLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBRUQsV0FBVyxDQUFDLEdBQVc7UUFDckIsTUFBTSxtQkFBbUIsR0FBRyxJQUFJLENBQUMsMkJBQTJCLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDbEUsSUFBSSxtQkFBbUIsRUFBRTtZQUN2QixRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1NBQ2hEO0lBQ0gsQ0FBQztJQUVPLG9CQUFvQixDQUFDLEdBQVc7UUFDdEMsT0FBTyxJQUFJLENBQUMsMkJBQTJCLENBQUMsR0FBRyxDQUFDLElBQUksSUFBSSxDQUFDLHdCQUF3QixDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3JGLENBQUM7SUFFTywyQkFBMkIsQ0FBQyxHQUFXO1FBQzdDLE9BQU8sUUFBUSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsMEJBQTBCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDL0YsQ0FBQztJQUVPLHdCQUF3QixDQUFDLEdBQVc7UUFDMUMsTUFBTSxNQUFNLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM5QyxNQUFNLENBQUMsWUFBWSxDQUFDLEtBQUssRUFBRSxZQUFZLENBQUMsQ0FBQztRQUN6QyxNQUFNLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUVuRCxRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNsQyxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRU8sa0JBQWtCLENBQUMsR0FBVztRQUNwQyxPQUFPLE9BQU8sR0FBRyxFQUFFLENBQUM7SUFDdEIsQ0FBQzs4R0EvQlUsY0FBYztrSEFBZCxjQUFjLGNBREQsTUFBTTs7MkZBQ25CLGNBQWM7a0JBRDFCLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIFRoZW1pbmdTZXJ2aWNlIHtcbiAgc2V0U3R5bGUoa2V5OiBzdHJpbmcsIGhyZWY6IHN0cmluZykge1xuICAgIHRoaXMuZ2V0TGlua0VsZW1lbnRGb3JLZXkoa2V5KS5zZXRBdHRyaWJ1dGUoJ2hyZWYnLCBocmVmKTtcbiAgfVxuXG4gIHJlbW92ZVN0eWxlKGtleTogc3RyaW5nKSB7XG4gICAgY29uc3QgZXhpc3RpbmdMaW5rRWxlbWVudCA9IHRoaXMuZ2V0RXhpc3RpbmdMaW5rRWxlbWVudEJ5S2V5KGtleSk7XG4gICAgaWYgKGV4aXN0aW5nTGlua0VsZW1lbnQpIHtcbiAgICAgIGRvY3VtZW50LmhlYWQucmVtb3ZlQ2hpbGQoZXhpc3RpbmdMaW5rRWxlbWVudCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBnZXRMaW5rRWxlbWVudEZvcktleShrZXk6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmdldEV4aXN0aW5nTGlua0VsZW1lbnRCeUtleShrZXkpIHx8IHRoaXMuY3JlYXRlTGlua0VsZW1lbnRXaXRoS2V5KGtleSk7XG4gIH1cblxuICBwcml2YXRlIGdldEV4aXN0aW5nTGlua0VsZW1lbnRCeUtleShrZXk6IHN0cmluZykge1xuICAgIHJldHVybiBkb2N1bWVudC5oZWFkLnF1ZXJ5U2VsZWN0b3IoYGxpbmtbcmVsPVwic3R5bGVzaGVldFwiXS4ke3RoaXMuZ2V0Q2xhc3NOYW1lRm9yS2V5KGtleSl9YCk7XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZUxpbmtFbGVtZW50V2l0aEtleShrZXk6IHN0cmluZykge1xuICAgIGNvbnN0IGxpbmtFbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2xpbmsnKTtcbiAgICBsaW5rRWwuc2V0QXR0cmlidXRlKCdyZWwnLCAnc3R5bGVzaGVldCcpO1xuICAgIGxpbmtFbC5jbGFzc0xpc3QuYWRkKHRoaXMuZ2V0Q2xhc3NOYW1lRm9yS2V5KGtleSkpO1xuXG4gICAgZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChsaW5rRWwpO1xuICAgIHJldHVybiBsaW5rRWw7XG4gIH1cblxuICBwcml2YXRlIGdldENsYXNzTmFtZUZvcktleShrZXk6IHN0cmluZykge1xuICAgIHJldHVybiBgeHVpLSR7a2V5fWA7XG4gIH1cbn1cbiJdfQ==