UNPKG

@zajsf/cssframework

Version:

Angular JSON Schema Form builder cssframework

85 lines 11.4 kB
import { Inject, Injectable } from '@angular/core'; import { Framework } from '@zajsf/core'; import { CssFrameworkComponent } from './css-framework.component'; import { CSS_FRAMEWORK_CFG } from './css-framework.defs'; import * as i0 from "@angular/core"; import * as i1 from "./css-framework.service"; export class CssFramework extends Framework { constructor(cfg, cssFWService) { super(); this.cssFWService = cssFWService; this.name = 'css'; this.framework = CssFrameworkComponent; this.name = cfg.name; this.text = cfg.text || this.name; this.stylesheets = cfg.stylesheets; this.scripts = cfg.scripts; this.config = cfg; this.widgets = cfg.widgets; } getActiveTheme() { let activeRequestedThemeName = this.cssFWService.getActiveRequestedTheme(); let frameWorkThemes = this.config?.widgetstyles?.__themes__; let theme = frameWorkThemes && frameWorkThemes[0]; if (activeRequestedThemeName) { //if not set return first theme in config; theme = { name: activeRequestedThemeName, text: activeRequestedThemeName }; if (frameWorkThemes) { let filtered = frameWorkThemes.filter(theme => { return theme.name == activeRequestedThemeName; }); theme = (filtered && filtered[0]) || theme; } } return theme; } requestThemeChange(name) { this.cssFWService.requestThemeChange(name); } registerTheme(newTheme, overwrite = true) { let themeList = this.config?.widgetstyles?.__themes__ || []; let matchedThemes = themeList.filter(theme => { return newTheme.name == theme.name; }); if (matchedThemes && matchedThemes[0]) { if (overwrite) { matchedThemes[0].text = newTheme.text; return true; } if (!overwrite) { return false; } } if (!matchedThemes || matchedThemes.length == 0) { let cfg = this.config; cfg.widgetstyles = this.config.widgetstyles || {}; cfg.widgetstyles.__themes__ = cfg.widgetstyles.__themes__ || []; cfg.widgetstyles.__themes__.push(newTheme); return true; } } ; unregisterTheme(name) { let themeList = this.config?.widgetstyles?.__themes__; let foundInd = -1; if (themeList) { themeList.forEach((theme, ind) => { if (name == theme.name) { foundInd = ind; } }); if (foundInd >= 0) { themeList.splice(foundInd, 1); return true; } } return false; } getConfig() { return this.config; } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: CssFramework, deps: [{ token: CSS_FRAMEWORK_CFG }, { token: i1.CssframeworkService }], target: i0.ɵɵFactoryTarget.Injectable }); } static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: CssFramework }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: CssFramework, decorators: [{ type: Injectable }], ctorParameters: () => [{ type: undefined, decorators: [{ type: Inject, args: [CSS_FRAMEWORK_CFG] }] }, { type: i1.CssframeworkService }] }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3NzLmZyYW1ld29yay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3phanNmLWNzc2ZyYW1ld29yay9zcmMvbGliL2Nzcy5mcmFtZXdvcmsudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUN4QyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsaUJBQWlCLEVBQVUsTUFBTSxzQkFBc0IsQ0FBQzs7O0FBTWpFLE1BQU0sT0FBTyxZQUFhLFNBQVEsU0FBUztJQUt6QyxZQUF3QyxHQUF1QixFQUFRLFlBQWdDO1FBQ2pHLEtBQUssRUFBRSxDQUFDO1FBRHlELGlCQUFZLEdBQVosWUFBWSxDQUFvQjtRQUp2RyxTQUFJLEdBQUcsS0FBSyxDQUFDO1FBRWIsY0FBUyxHQUFPLHFCQUFxQixDQUFDO1FBS2hDLElBQUksQ0FBQyxJQUFJLEdBQUMsR0FBRyxDQUFDLElBQUksQ0FBQztRQUNuQixJQUFJLENBQUMsSUFBSSxHQUFDLEdBQUcsQ0FBQyxJQUFJLElBQUUsSUFBSSxDQUFDLElBQUksQ0FBQztRQUM5QixJQUFJLENBQUMsV0FBVyxHQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUM7UUFDakMsSUFBSSxDQUFDLE9BQU8sR0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDO1FBQ3pCLElBQUksQ0FBQyxNQUFNLEdBQUMsR0FBRyxDQUFDO1FBQ2hCLElBQUksQ0FBQyxPQUFPLEdBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQztJQUMvQixDQUFDO0lBQ0QsY0FBYztRQUNaLElBQUksd0JBQXdCLEdBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyx1QkFBdUIsRUFBRSxDQUFDO1FBQ3pFLElBQUksZUFBZSxHQUFDLElBQUksQ0FB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Q0FBQzs4R0EzRVUsWUFBWSxrQkFLSCxpQkFBaUI7a0hBTDFCLFlBQVk7OzJGQUFaLFlBQVk7a0JBRHhCLFVBQVU7OzBCQU1JLE1BQU07MkJBQUMsaUJBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZyYW1ld29yayB9IGZyb20gJ0B6YWpzZi9jb3JlJztcclxuaW1wb3J0IHsgQ3NzRnJhbWV3b3JrQ29tcG9uZW50IH0gZnJvbSAnLi9jc3MtZnJhbWV3b3JrLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENTU19GUkFNRVdPUktfQ0ZHLCBjc3NfZncgfSBmcm9tICcuL2Nzcy1mcmFtZXdvcmsuZGVmcyc7XHJcbmltcG9ydCB7IENzc2ZyYW1ld29ya1NlcnZpY2UgfSBmcm9tICcuL2Nzcy1mcmFtZXdvcmsuc2VydmljZSc7XHJcblxyXG5cclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIENzc0ZyYW1ld29yayBleHRlbmRzIEZyYW1ld29yayB7XHJcbiAgbmFtZSA9ICdjc3MnO1xyXG5cclxuICBmcmFtZXdvcms6YW55ID0gQ3NzRnJhbWV3b3JrQ29tcG9uZW50O1xyXG4gIGNvbmZpZzpjc3NfZncuZnJhbWV3b3JrY2ZnXHJcbiAgY29uc3RydWN0b3IoQEluamVjdChDU1NfRlJBTUVXT1JLX0NGRyApIGNmZzpjc3NfZncuZnJhbWV3b3JrY2ZnLHB1YmxpYyBjc3NGV1NlcnZpY2U6Q3NzZnJhbWV3b3JrU2VydmljZSl7XHJcbiAgICAgICAgc3VwZXIoKTtcclxuICAgICAgICBcclxuICAgICAgICB0aGlzLm5hbWU9Y2ZnLm5hbWU7XHJcbiAgICAgICAgdGhpcy50ZXh0PWNmZy50ZXh0fHx0aGlzLm5hbWU7XHJcbiAgICAgICAgdGhpcy5zdHlsZXNoZWV0cz1jZmcuc3R5bGVzaGVldHM7XHJcbiAgICAgICAgdGhpcy5zY3JpcHRzPWNmZy5zY3JpcHRzO1xyXG4gICAgICAgIHRoaXMuY29uZmlnPWNmZztcclxuICAgICAgICB0aGlzLndpZGdldHM9Y2ZnLndpZGdldHM7XHJcbiAgfVxyXG4gIGdldEFjdGl2ZVRoZW1lKCk6Y3NzX2Z3LnRoZW1lS1Z7XHJcbiAgICBsZXQgYWN0aXZlUmVxdWVzdGVkVGhlbWVOYW1lPXRoaXMuY3NzRldTZXJ2aWNlLmdldEFjdGl2ZVJlcXVlc3RlZFRoZW1lKCk7XHJcbiAgICBsZXQgZnJhbWVXb3JrVGhlbWVzPXRoaXMuY29uZmlnPy53aWRnZXRzdHlsZXM/Ll9fdGhlbWVzX187XHJcbiAgICBcclxuICAgIGxldCB0aGVtZT1mcmFtZVdvcmtUaGVtZXMgJiYgZnJhbWVXb3JrVGhlbWVzWzBdXHJcbiAgICBpZihhY3RpdmVSZXF1ZXN0ZWRUaGVtZU5hbWUpey8vaWYgbm90IHNldCByZXR1cm4gZmlyc3QgdGhlbWUgaW4gY29uZmlnO1xyXG4gICAgICB0aGVtZT17bmFtZTphY3RpdmVSZXF1ZXN0ZWRUaGVtZU5hbWUsdGV4dDphY3RpdmVSZXF1ZXN0ZWRUaGVtZU5hbWV9O1xyXG4gICAgICBpZihmcmFtZVdvcmtUaGVtZXMpe1xyXG4gICAgICAgIGxldCBmaWx0ZXJlZD1mcmFtZVdvcmtUaGVtZXMuZmlsdGVyKHRoZW1lPT57cmV0dXJuIHRoZW1lLm5hbWU9PWFjdGl2ZVJlcXVlc3RlZFRoZW1lTmFtZX0pO1xyXG4gICAgICAgIHRoZW1lPShmaWx0ZXJlZCAmJiBmaWx0ZXJlZFswXSl8fHRoZW1lO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gIHRoZW1lO1xyXG4gIH1cclxuXHJcbiAgcmVxdWVzdFRoZW1lQ2hhbmdlKG5hbWU6c3RyaW5nKXtcclxuICAgIHRoaXMuY3NzRldTZXJ2aWNlLnJlcXVlc3RUaGVtZUNoYW5nZShuYW1lKTtcclxuICB9XHJcblxyXG4gIHJlZ2lzdGVyVGhlbWUobmV3VGhlbWU6Y3NzX2Z3LnRoZW1lS1Ysb3ZlcndyaXRlOmJvb2xlYW49dHJ1ZSk6Ym9vbGVhbntcclxuICAgIGxldCB0aGVtZUxpc3Q9dGhpcy5jb25maWc/LndpZGdldHN0eWxlcz8uX190aGVtZXNfX3x8W107XHJcbiAgICBsZXQgbWF0Y2hlZFRoZW1lcz10aGVtZUxpc3QuZmlsdGVyKHRoZW1lPT57cmV0dXJuIG5ld1RoZW1lLm5hbWU9PXRoZW1lLm5hbWV9KTtcclxuICAgIGlmKG1hdGNoZWRUaGVtZXMgJiYgbWF0Y2hlZFRoZW1lc1swXSl7XHJcbiAgICAgIGlmKG92ZXJ3cml0ZSl7XHJcbiAgICAgICAgbWF0Y2hlZFRoZW1lc1swXS50ZXh0PW5ld1RoZW1lLnRleHQ7XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgIH1cclxuICAgICAgaWYoIW92ZXJ3cml0ZSl7XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICAgIFxyXG4gICAgfVxyXG4gICAgaWYoIW1hdGNoZWRUaGVtZXMgfHwgbWF0Y2hlZFRoZW1lcy5sZW5ndGg9PTApe1xyXG4gICAgICBsZXQgY2ZnOmFueT10aGlzLmNvbmZpZ1xyXG4gICAgICBjZmcud2lkZ2V0c3R5bGVzPSB0aGlzLmNvbmZpZy53aWRnZXRzdHlsZXN8fHt9O1xyXG4gICAgICBjZmcud2lkZ2V0c3R5bGVzLl9fdGhlbWVzX189Y2ZnLndpZGdldHN0eWxlcy5fX3RoZW1lc19ffHxbXTtcclxuICAgICAgY2ZnLndpZGdldHN0eWxlcy5fX3RoZW1lc19fLnB1c2gobmV3VGhlbWUpO1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuICB9O1xyXG5cclxuICB1bnJlZ2lzdGVyVGhlbWUobmFtZTpzdHJpbmcpOmJvb2xlYW57XHJcbiAgICBsZXQgdGhlbWVMaXN0PXRoaXMuY29uZmlnPy53aWRnZXRzdHlsZXM/Ll9fdGhlbWVzX187XHJcbiAgICBsZXQgZm91bmRJbmQ9LTE7XHJcbiAgICBpZih0aGVtZUxpc3Qpe1xyXG4gICAgICAgIHRoZW1lTGlzdC5mb3JFYWNoKCh0aGVtZSxpbmQpPT57XHJcbiAgICAgICAgICBpZihuYW1lPT10aGVtZS5uYW1lKXtcclxuICAgICAgICAgICAgZm91bmRJbmQ9aW5kO1xyXG4gICAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgICAgaWYoZm91bmRJbmQ+PTApe1xyXG4gICAgICAgIHRoZW1lTGlzdC5zcGxpY2UoZm91bmRJbmQsMSk7XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG4gIGdldENvbmZpZygpOmNzc19mdy5mcmFtZXdvcmtjZmd7XHJcbiAgICByZXR1cm4gdGhpcy5jb25maWc7XHJcbiAgfVxyXG5cclxuICAvKlxyXG4gIHN0eWxlc2hlZXRzID0gW1xyXG4gICAgLy9UT0RPLWVuYWJsZSBmb3IgZGV2IG9ubHlcclxuICAgIGNkbi50YWlsd2luZGNzcy5jb20vMy4zLjMnXHJcbiAgXTtcclxuXHJcblxyXG4gIHNjcmlwdHMgPSBbXHJcblxyXG4gIF07XHJcbiAgKi9cclxuXHJcbn1cclxuIl19