@zajsf/cssframework
Version:
Angular JSON Schema Form builder cssframework
85 lines • 11.4 kB
JavaScript
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