@c8y/ngx-components
Version:
Angular modules for Cumulocity IoT applications
56 lines • 8.67 kB
JavaScript
import { Inject, Injectable, Optional } from '@angular/core';
import { isEmpty } from 'lodash-es';
import { from, of } from 'rxjs';
import { UserPreferencesService } from '../common/user-preferences/user-preferences.service';
import { AbstractConfigurationStrategy } from './abstract-configuration-strategy';
import { DATA_GRID_CONFIGURATION_CONTEXT, DATA_GRID_CONFIGURATION_CONTEXT_PROVIDER } from './data-grid-configuration.model';
import { LegacyGridConfigMapperService } from './legacy-grid-config-mapper.service';
import * as i0 from "@angular/core";
import * as i1 from "../common/user-preferences/user-preferences.service";
import * as i2 from "./legacy-grid-config-mapper.service";
/**
* Stores data grid configuration in form of user preferences.
*/
export class UserPreferencesConfigurationStrategy extends AbstractConfigurationStrategy {
constructor(userPreferencesService, context, contextProvider, legacyGridMapperService) {
super(context, contextProvider);
this.userPreferencesService = userPreferencesService;
this.context = context;
this.contextProvider = contextProvider;
this.legacyGridMapperService = legacyGridMapperService;
}
getConfig$(context) {
const configContext = this.retrieveContext(context);
if (isEmpty(configContext)) {
return of(undefined);
}
else {
return configContext.legacyConfigKey || configContext.legacyFilterKey
? this.legacyGridMapperService.getMappedGridConfig(configContext)
: this.userPreferencesService.get(configContext?.key);
}
}
saveConfig$(config, context) {
const configContext = this.retrieveContext(context);
return isEmpty(configContext)
? of(undefined)
: from(this.userPreferencesService.set(configContext?.key, config));
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UserPreferencesConfigurationStrategy, deps: [{ token: i1.UserPreferencesService }, { token: DATA_GRID_CONFIGURATION_CONTEXT, optional: true }, { token: DATA_GRID_CONFIGURATION_CONTEXT_PROVIDER, optional: true }, { token: i2.LegacyGridConfigMapperService }], target: i0.ɵɵFactoryTarget.Injectable }); }
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UserPreferencesConfigurationStrategy, providedIn: 'root' }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UserPreferencesConfigurationStrategy, decorators: [{
type: Injectable,
args: [{ providedIn: 'root' }]
}], ctorParameters: () => [{ type: i1.UserPreferencesService }, { type: undefined, decorators: [{
type: Inject,
args: [DATA_GRID_CONFIGURATION_CONTEXT]
}, {
type: Optional
}] }, { type: undefined, decorators: [{
type: Inject,
args: [DATA_GRID_CONFIGURATION_CONTEXT_PROVIDER]
}, {
type: Optional
}] }, { type: i2.LegacyGridConfigMapperService }] });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1wcmVmZXJlbmNlcy1jb25maWd1cmF0aW9uLXN0cmF0ZWd5LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9jb3JlL2RhdGEtZ3JpZC91c2VyLXByZWZlcmVuY2VzLWNvbmZpZ3VyYXRpb24tc3RyYXRlZ3kuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0QsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNwQyxPQUFPLEVBQUUsSUFBSSxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM1QyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxxREFBcUQsQ0FBQztBQUM3RixPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNsRixPQUFPLEVBQ0wsK0JBQStCLEVBQy9CLHdDQUF3QyxFQUd6QyxNQUFNLGlDQUFpQyxDQUFDO0FBRXpDLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDOzs7O0FBU3BGOztHQUVHO0FBRUgsTUFBTSxPQUFPLG9DQUFxQyxTQUFRLDZCQUE2QjtJQUNyRixZQUNZLHNCQUE4QyxFQUc5QyxPQUF5QyxFQUd6QyxlQUEwQyxFQUMxQyx1QkFBc0Q7UUFFaEUsS0FBSyxDQUFDLE9BQU8sRUFBRSxlQUFlLENBQUMsQ0FBQztRQVR0QiwyQkFBc0IsR0FBdEIsc0JBQXNCLENBQXdCO1FBRzlDLFlBQU8sR0FBUCxPQUFPLENBQWtDO1FBR3pDLG9CQUFlLEdBQWYsZUFBZSxDQUEyQjtRQUMxQyw0QkFBdUIsR0FBdkIsdUJBQXVCLENBQStCO0lBR2xFLENBQUM7SUFFRCxVQUFVLENBQUMsT0FBMEM7UUFDbkQsTUFBTSxhQUFhLEdBQXFDLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFdEYsSUFBSSxPQUFPLENBQUMsYUFBYSxDQUFDLEVBQUUsQ0FBQztZQUMzQixPQUFPLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUN2QixDQUFDO2FBQU0sQ0FBQztZQUNOLE9BQU8sYUFBYSxDQUFDLGVBQWUsSUFBSSxhQUFhLENBQUMsZUFBZTtnQkFDbkUsQ0FBQyxDQUFDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxtQkFBbUIsQ0FBQyxhQUFhLENBQUM7Z0JBQ2pFLENBQUMsQ0FBQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUMxRCxDQUFDO0lBQ0gsQ0FBQztJQUVELFdBQVcsQ0FDVCxNQUFrQixFQUNsQixPQUEwQztRQUUxQyxNQUFNLGFBQWEsR0FBcUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN0RixPQUFPLE9BQU8sQ0FBQyxhQUFhLENBQUM7WUFDM0IsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUM7WUFDZixDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLEdBQUcsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDO0lBQ3hFLENBQUM7K0dBbENVLG9DQUFvQyx3REFHckMsK0JBQStCLDZCQUcvQix3Q0FBd0M7bUhBTnZDLG9DQUFvQyxjQUR2QixNQUFNOzs0RkFDbkIsb0NBQW9DO2tCQURoRCxVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRTs7MEJBSTdCLE1BQU07MkJBQUMsK0JBQStCOzswQkFDdEMsUUFBUTs7MEJBRVIsTUFBTTsyQkFBQyx3Q0FBd0M7OzBCQUMvQyxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlLCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgaXNFbXB0eSB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQgeyBmcm9tLCBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgVXNlclByZWZlcmVuY2VzU2VydmljZSB9IGZyb20gJy4uL2NvbW1vbi91c2VyLXByZWZlcmVuY2VzL3VzZXItcHJlZmVyZW5jZXMuc2VydmljZSc7XG5pbXBvcnQgeyBBYnN0cmFjdENvbmZpZ3VyYXRpb25TdHJhdGVneSB9IGZyb20gJy4vYWJzdHJhY3QtY29uZmlndXJhdGlvbi1zdHJhdGVneSc7XG5pbXBvcnQge1xuICBEQVRBX0dSSURfQ09ORklHVVJBVElPTl9DT05URVhULFxuICBEQVRBX0dSSURfQ09ORklHVVJBVElPTl9DT05URVhUX1BST1ZJREVSLFxuICBHcmlkQ29uZmlnQ29udGV4dCxcbiAgR3JpZENvbmZpZ0NvbnRleHRQcm92aWRlclxufSBmcm9tICcuL2RhdGEtZ3JpZC1jb25maWd1cmF0aW9uLm1vZGVsJztcbmltcG9ydCB7IENvbHVtbiwgR3JpZENvbmZpZyB9IGZyb20gJy4vZGF0YS1ncmlkLm1vZGVsJztcbmltcG9ydCB7IExlZ2FjeUdyaWRDb25maWdNYXBwZXJTZXJ2aWNlIH0gZnJvbSAnLi9sZWdhY3ktZ3JpZC1jb25maWctbWFwcGVyLnNlcnZpY2UnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFVzZXJQcmVmZXJlbmNlc0dyaWRDb25maWdDb250ZXh0IGV4dGVuZHMgR3JpZENvbmZpZ0NvbnRleHQge1xuICBrZXk6IHN0cmluZztcbiAgbGVnYWN5Q29uZmlnS2V5Pzogc3RyaW5nO1xuICBsZWdhY3lGaWx0ZXJLZXk/OiBzdHJpbmc7XG4gIGRlZmF1bHRDb2x1bW5zPzogQ29sdW1uW107XG59XG5cbi8qKlxuICogU3RvcmVzIGRhdGEgZ3JpZCBjb25maWd1cmF0aW9uIGluIGZvcm0gb2YgdXNlciBwcmVmZXJlbmNlcy5cbiAqL1xuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBVc2VyUHJlZmVyZW5jZXNDb25maWd1cmF0aW9uU3RyYXRlZ3kgZXh0ZW5kcyBBYnN0cmFjdENvbmZpZ3VyYXRpb25TdHJhdGVneSB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByb3RlY3RlZCB1c2VyUHJlZmVyZW5jZXNTZXJ2aWNlOiBVc2VyUHJlZmVyZW5jZXNTZXJ2aWNlLFxuICAgIEBJbmplY3QoREFUQV9HUklEX0NPTkZJR1VSQVRJT05fQ09OVEVYVClcbiAgICBAT3B0aW9uYWwoKVxuICAgIHByb3RlY3RlZCBjb250ZXh0OiBVc2VyUHJlZmVyZW5jZXNHcmlkQ29uZmlnQ29udGV4dCxcbiAgICBASW5qZWN0KERBVEFfR1JJRF9DT05GSUdVUkFUSU9OX0NPTlRFWFRfUFJPVklERVIpXG4gICAgQE9wdGlvbmFsKClcbiAgICBwcm90ZWN0ZWQgY29udGV4dFByb3ZpZGVyOiBHcmlkQ29uZmlnQ29udGV4dFByb3ZpZGVyLFxuICAgIHByb3RlY3RlZCBsZWdhY3lHcmlkTWFwcGVyU2VydmljZTogTGVnYWN5R3JpZENvbmZpZ01hcHBlclNlcnZpY2VcbiAgKSB7XG4gICAgc3VwZXIoY29udGV4dCwgY29udGV4dFByb3ZpZGVyKTtcbiAgfVxuXG4gIGdldENvbmZpZyQoY29udGV4dD86IFVzZXJQcmVmZXJlbmNlc0dyaWRDb25maWdDb250ZXh0KTogT2JzZXJ2YWJsZTxHcmlkQ29uZmlnPiB7XG4gICAgY29uc3QgY29uZmlnQ29udGV4dDogVXNlclByZWZlcmVuY2VzR3JpZENvbmZpZ0NvbnRleHQgPSB0aGlzLnJldHJpZXZlQ29udGV4dChjb250ZXh0KTtcblxuICAgIGlmIChpc0VtcHR5KGNvbmZpZ0NvbnRleHQpKSB7XG4gICAgICByZXR1cm4gb2YodW5kZWZpbmVkKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGNvbmZpZ0NvbnRleHQubGVnYWN5Q29uZmlnS2V5IHx8IGNvbmZpZ0NvbnRleHQubGVnYWN5RmlsdGVyS2V5XG4gICAgICAgID8gdGhpcy5sZWdhY3lHcmlkTWFwcGVyU2VydmljZS5nZXRNYXBwZWRHcmlkQ29uZmlnKGNvbmZpZ0NvbnRleHQpXG4gICAgICAgIDogdGhpcy51c2VyUHJlZmVyZW5jZXNTZXJ2aWNlLmdldChjb25maWdDb250ZXh0Py5rZXkpO1xuICAgIH1cbiAgfVxuXG4gIHNhdmVDb25maWckKFxuICAgIGNvbmZpZzogR3JpZENvbmZpZyxcbiAgICBjb250ZXh0PzogVXNlclByZWZlcmVuY2VzR3JpZENvbmZpZ0NvbnRleHRcbiAgKTogT2JzZXJ2YWJsZTxHcmlkQ29uZmlnPiB7XG4gICAgY29uc3QgY29uZmlnQ29udGV4dDogVXNlclByZWZlcmVuY2VzR3JpZENvbmZpZ0NvbnRleHQgPSB0aGlzLnJldHJpZXZlQ29udGV4dChjb250ZXh0KTtcbiAgICByZXR1cm4gaXNFbXB0eShjb25maWdDb250ZXh0KVxuICAgICAgPyBvZih1bmRlZmluZWQpXG4gICAgICA6IGZyb20odGhpcy51c2VyUHJlZmVyZW5jZXNTZXJ2aWNlLnNldChjb25maWdDb250ZXh0Py5rZXksIGNvbmZpZykpO1xuICB9XG59XG4iXX0=