UNPKG

@c8y/ngx-components

Version:

Angular modules for Cumulocity IoT applications

54 lines 7.39 kB
import { Injectable } from '@angular/core'; import { OptionsService } from '@c8y/ngx-components'; import { applyBrandingOptions, getOptionsToMerge, mergeOptions } from '@c8y/bootstrap'; import * as i0 from "@angular/core"; import * as i1 from "@c8y/ngx-components"; export class ApplyBrandingLocallyService { constructor(options) { this.options = options; } applyBranding(optionsJson) { if (!this.keysToRemove) { this.keysToRemove = Object.keys(this.combineOptions()); } const combinedOptions = this.combineOptions(optionsJson); const newKeysToRemove = Object.keys(combinedOptions); // avoid to remove keys that would actually be set again afterwards const keysToActuallyRemove = this.keysToRemove.filter(key => !newKeysToRemove.includes(key)); this.removeKeysFromOptions(keysToActuallyRemove); this.keysToRemove = newKeysToRemove; applyBrandingOptions(combinedOptions); this.applyApplicationOptions(combinedOptions); } resetBranding() { this.applyBranding(); } applyApplicationOptions(optionsJson) { Object.entries(optionsJson).forEach(([key, value]) => { this.options.set(key, value); }); } removeKeysFromOptions(keys) { for (const key of keys) { this.options.delete(key); } } combineOptions(optionsJson) { const optionsToMerge = getOptionsToMerge(); if (!optionsToMerge) { // should never happen as the options should be set quite early in bootstrapping process. throw Error(`Failed to retrieve options for merging`); } if (optionsJson) { optionsToMerge.dynamicOptions = optionsJson; } return mergeOptions(optionsToMerge); } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ApplyBrandingLocallyService, deps: [{ token: i1.OptionsService }], target: i0.ɵɵFactoryTarget.Injectable }); } static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ApplyBrandingLocallyService, providedIn: 'root' }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ApplyBrandingLocallyService, decorators: [{ type: Injectable, args: [{ providedIn: 'root' }] }], ctorParameters: () => [{ type: i1.OptionsService }] }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwbHktYnJhbmRpbmctbG9jYWxseS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vYnJhbmRpbmcvc2hhcmVkL2RhdGEvYXBwbHktYnJhbmRpbmctbG9jYWxseS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRXJELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxpQkFBaUIsRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7O0FBR3ZGLE1BQU0sT0FBTywyQkFBMkI7SUFHdEMsWUFBb0IsT0FBdUI7UUFBdkIsWUFBTyxHQUFQLE9BQU8sQ0FBZ0I7SUFBRyxDQUFDO0lBRS9DLGFBQWEsQ0FBQyxXQUFpQztRQUM3QyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxZQUFZLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUMsQ0FBQztRQUN6RCxDQUFDO1FBQ0QsTUFBTSxlQUFlLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUN6RCxNQUFNLGVBQWUsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBRXJELG1FQUFtRTtRQUNuRSxNQUFNLG9CQUFvQixHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDN0YsSUFBSSxDQUFDLHFCQUFxQixDQUFDLG9CQUFvQixDQUFDLENBQUM7UUFFakQsSUFBSSxDQUFDLFlBQVksR0FBRyxlQUFlLENBQUM7UUFFcEMsb0JBQW9CLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDdEMsSUFBSSxDQUFDLHVCQUF1QixDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFFRCxhQUFhO1FBQ1gsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQ3ZCLENBQUM7SUFFTyx1QkFBdUIsQ0FBQyxXQUFnQjtRQUM5QyxNQUFNLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxFQUFFLEVBQUU7WUFDbkQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQy9CLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVPLHFCQUFxQixDQUFDLElBQWM7UUFDMUMsS0FBSyxNQUFNLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUN2QixJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUMzQixDQUFDO0lBQ0gsQ0FBQztJQUVPLGNBQWMsQ0FBQyxXQUFpQztRQUN0RCxNQUFNLGNBQWMsR0FBRyxpQkFBaUIsRUFBRSxDQUFDO1FBQzNDLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUNwQix5RkFBeUY7WUFDekYsTUFBTSxLQUFLLENBQUMsd0NBQXdDLENBQUMsQ0FBQztRQUN4RCxDQUFDO1FBQ0QsSUFBSSxXQUFXLEVBQUUsQ0FBQztZQUNoQixjQUFjLENBQUMsY0FBYyxHQUFHLFdBQVcsQ0FBQztRQUM5QyxDQUFDO1FBQ0QsT0FBTyxZQUFZLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDdEMsQ0FBQzsrR0FoRFUsMkJBQTJCO21IQUEzQiwyQkFBMkIsY0FEZCxNQUFNOzs0RkFDbkIsMkJBQTJCO2tCQUR2QyxVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9wdGlvbnNTZXJ2aWNlIH0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cyc7XG5pbXBvcnQgeyBCcmFuZGluZ09wdGlvbnNKc29uIH0gZnJvbSAnLi9icmFuZGluZy50eXBlJztcbmltcG9ydCB7IGFwcGx5QnJhbmRpbmdPcHRpb25zLCBnZXRPcHRpb25zVG9NZXJnZSwgbWVyZ2VPcHRpb25zIH0gZnJvbSAnQGM4eS9ib290c3RyYXAnO1xuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIEFwcGx5QnJhbmRpbmdMb2NhbGx5U2VydmljZSB7XG4gIHByaXZhdGUga2V5c1RvUmVtb3ZlOiBBcnJheTxzdHJpbmc+IHwgbnVsbDtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIG9wdGlvbnM6IE9wdGlvbnNTZXJ2aWNlKSB7fVxuXG4gIGFwcGx5QnJhbmRpbmcob3B0aW9uc0pzb24/OiBCcmFuZGluZ09wdGlvbnNKc29uKSB7XG4gICAgaWYgKCF0aGlzLmtleXNUb1JlbW92ZSkge1xuICAgICAgdGhpcy5rZXlzVG9SZW1vdmUgPSBPYmplY3Qua2V5cyh0aGlzLmNvbWJpbmVPcHRpb25zKCkpO1xuICAgIH1cbiAgICBjb25zdCBjb21iaW5lZE9wdGlvbnMgPSB0aGlzLmNvbWJpbmVPcHRpb25zKG9wdGlvbnNKc29uKTtcbiAgICBjb25zdCBuZXdLZXlzVG9SZW1vdmUgPSBPYmplY3Qua2V5cyhjb21iaW5lZE9wdGlvbnMpO1xuXG4gICAgLy8gYXZvaWQgdG8gcmVtb3ZlIGtleXMgdGhhdCB3b3VsZCBhY3R1YWxseSBiZSBzZXQgYWdhaW4gYWZ0ZXJ3YXJkc1xuICAgIGNvbnN0IGtleXNUb0FjdHVhbGx5UmVtb3ZlID0gdGhpcy5rZXlzVG9SZW1vdmUuZmlsdGVyKGtleSA9PiAhbmV3S2V5c1RvUmVtb3ZlLmluY2x1ZGVzKGtleSkpO1xuICAgIHRoaXMucmVtb3ZlS2V5c0Zyb21PcHRpb25zKGtleXNUb0FjdHVhbGx5UmVtb3ZlKTtcblxuICAgIHRoaXMua2V5c1RvUmVtb3ZlID0gbmV3S2V5c1RvUmVtb3ZlO1xuXG4gICAgYXBwbHlCcmFuZGluZ09wdGlvbnMoY29tYmluZWRPcHRpb25zKTtcbiAgICB0aGlzLmFwcGx5QXBwbGljYXRpb25PcHRpb25zKGNvbWJpbmVkT3B0aW9ucyk7XG4gIH1cblxuICByZXNldEJyYW5kaW5nKCkge1xuICAgIHRoaXMuYXBwbHlCcmFuZGluZygpO1xuICB9XG5cbiAgcHJpdmF0ZSBhcHBseUFwcGxpY2F0aW9uT3B0aW9ucyhvcHRpb25zSnNvbjogYW55KSB7XG4gICAgT2JqZWN0LmVudHJpZXMob3B0aW9uc0pzb24pLmZvckVhY2goKFtrZXksIHZhbHVlXSkgPT4ge1xuICAgICAgdGhpcy5vcHRpb25zLnNldChrZXksIHZhbHVlKTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgcmVtb3ZlS2V5c0Zyb21PcHRpb25zKGtleXM6IHN0cmluZ1tdKSB7XG4gICAgZm9yIChjb25zdCBrZXkgb2Yga2V5cykge1xuICAgICAgdGhpcy5vcHRpb25zLmRlbGV0ZShrZXkpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgY29tYmluZU9wdGlvbnMob3B0aW9uc0pzb24/OiBCcmFuZGluZ09wdGlvbnNKc29uKSB7XG4gICAgY29uc3Qgb3B0aW9uc1RvTWVyZ2UgPSBnZXRPcHRpb25zVG9NZXJnZSgpO1xuICAgIGlmICghb3B0aW9uc1RvTWVyZ2UpIHtcbiAgICAgIC8vIHNob3VsZCBuZXZlciBoYXBwZW4gYXMgdGhlIG9wdGlvbnMgc2hvdWxkIGJlIHNldCBxdWl0ZSBlYXJseSBpbiBib290c3RyYXBwaW5nIHByb2Nlc3MuXG4gICAgICB0aHJvdyBFcnJvcihgRmFpbGVkIHRvIHJldHJpZXZlIG9wdGlvbnMgZm9yIG1lcmdpbmdgKTtcbiAgICB9XG4gICAgaWYgKG9wdGlvbnNKc29uKSB7XG4gICAgICBvcHRpb25zVG9NZXJnZS5keW5hbWljT3B0aW9ucyA9IG9wdGlvbnNKc29uO1xuICAgIH1cbiAgICByZXR1cm4gbWVyZ2VPcHRpb25zKG9wdGlvbnNUb01lcmdlKTtcbiAgfVxufVxuIl19