ontimize-web-ngx
Version:
Ontimize Web framework using Angular 15
93 lines • 12.9 kB
JavaScript
import { InjectionToken } from '@angular/core';
import { Util } from '../util/util';
const DEFAULT_LOCAL_STORAGE_KEY = undefined;
const DEFAULT_CONFIG = {
uuid: DEFAULT_LOCAL_STORAGE_KEY,
title: 'Ontimize Web App'
};
export const O_INPUTS_OPTIONS = new InjectionToken('o-inputs-options');
export const APP_CONFIG = new InjectionToken('app.config');
export class AppConfig {
constructor(config) {
this._config = (config && Util.isObject(config) && !Array.isArray(config)) ? config : {};
}
getConfiguration() {
return Object.assign(DEFAULT_CONFIG, this._config);
}
getServiceConfiguration() {
return this._config.servicesConfiguration || {};
}
getMenuConfiguration() {
return this._config.appMenuConfiguration || [];
}
useRemoteBundle() {
return Util.isDefined(this._config.bundle);
}
getBundleEndpoint() {
let result;
const existsBundleConf = this.useRemoteBundle();
if (existsBundleConf && Util.isDefined(this._config.bundle.endpoint)) {
result = this._config.bundle.endpoint;
}
else if (existsBundleConf && Util.isDefined(this._config.bundle.path)) {
result = this._config.apiEndpoint + '/' + this._config.bundle.path;
}
return result;
}
getI18nAssetsConfiguration() {
if (Util.isDefined(this._config.assets) && Util.isDefined(this._config.assets.i18n)) {
return this._config.assets.i18n;
}
return undefined;
}
getCssAssetsConfiguration() {
if (Util.isDefined(this._config.assets) && Util.isDefined(this._config.assets.css)) {
return this._config.assets.css;
}
return undefined;
}
getImagesAssetsConfiguration() {
if (Util.isDefined(this._config.assets) && Util.isDefined(this._config.assets.images)) {
return this._config.assets.images;
}
return undefined;
}
getJsAssetsConfiguration() {
if (Util.isDefined(this._config.assets) && Util.isDefined(this._config.assets.js)) {
return this._config.assets.js;
}
return undefined;
}
getRemoteConfigurationConfig() {
return this._config.remoteConfig;
}
useRemoteConfiguration() {
return Util.isDefined(this._config.remoteConfig);
}
getRemoteConfigurationEndpoint() {
let result;
const existsRemoteConf = this.useRemoteConfiguration();
if (existsRemoteConf && Util.isDefined(this._config.remoteConfig.endpoint)) {
result = this._config.remoteConfig.endpoint;
}
else if (existsRemoteConf && Util.isDefined(this._config.remoteConfig.path)) {
result = this._config.apiEndpoint + '/' + this._config.remoteConfig.path;
}
return result;
}
useExportConfiguration() {
return Util.isDefined(this._config.exportConfiguration);
}
getExportPath() {
let result;
const existsRemoteConf = this.useExportConfiguration();
if (existsRemoteConf && Util.isDefined(this._config.exportConfiguration.path)) {
result = this._config.exportConfiguration.path;
}
else {
result = this._config.apiEndpoint + '/export';
}
return result;
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLWNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL29udGltaXplLXdlYi1uZ3gvc3JjL2xpYi9jb25maWcvYXBwLWNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBTS9DLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFcEMsTUFBTSx5QkFBeUIsR0FBRyxTQUFTLENBQUM7QUFDNUMsTUFBTSxjQUFjLEdBQVc7SUFDN0IsSUFBSSxFQUFFLHlCQUF5QjtJQUMvQixLQUFLLEVBQUUsa0JBQWtCO0NBQzFCLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLGNBQWMsQ0FBaUIsa0JBQWtCLENBQUMsQ0FBQztBQUV2RixNQUFNLENBQUMsTUFBTSxVQUFVLEdBQUcsSUFBSSxjQUFjLENBQVMsWUFBWSxDQUFDLENBQUM7QUFFbkUsTUFBTSxPQUFPLFNBQVM7SUFHcEIsWUFBWSxNQUFPO1FBQ2pCLElBQUksQ0FBQyxPQUFPLEdBQUcsQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7SUFDM0YsQ0FBQztJQUVNLGdCQUFnQjtRQUNyQixPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUMsY0FBYyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNyRCxDQUFDO0lBRU0sdUJBQXVCO1FBQzVCLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxxQkFBcUIsSUFBSSxFQUFFLENBQUM7SUFDbEQsQ0FBQztJQUVNLG9CQUFvQjtRQUN6QixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsb0JBQW9CLElB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Q0FBQyxFQUFFO1lBQzFFLE1BQU0sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUM7U0FDN0M7YUFBTSxJQUFJLGdCQUFnQixJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDN0UsTUFBTSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUM7U0FDMUU7UUFDRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRU0sc0JBQXNCO1FBQzNCLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLG1CQUFtQixDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUVNLGFBQWE7UUFDbEIsSUFBSSxNQUFjLENBQUM7UUFDbkIsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztRQUN2RCxJQUFJLGdCQUFnQixJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUM3RSxNQUFNLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUM7U0FDaEQ7YUFBTTtZQUNMLE1BQU0sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsR0FBRyxTQUFTLENBQUM7U0FDL0M7UUFDRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0NBRUYiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBDb25maWcgfSBmcm9tICcuLi90eXBlcy9jb25maWcudHlwZSc7XG5pbXBvcnQgeyBNZW51Um9vdEl0ZW0gfSBmcm9tICcuLi90eXBlcy9tZW51LXJvb3QtaXRlbS50eXBlJztcbmltcG9ydCB7IE9JbnB1dHNPcHRpb25zIH0gZnJvbSAnLi4vdHlwZXMvby1pbnB1dHMtb3B0aW9ucy50eXBlJztcbmltcG9ydCB7IE9SZW1vdGVDb25maWd1cmF0aW9uIH0gZnJvbSAnLi4vdHlwZXMvcmVtb3RlLWNvbmZpZ3VyYXRpb24udHlwZSc7XG5pbXBvcnQgeyBVdGlsIH0gZnJvbSAnLi4vdXRpbC91dGlsJztcblxuY29uc3QgREVGQVVMVF9MT0NBTF9TVE9SQUdFX0tFWSA9IHVuZGVmaW5lZDtcbmNvbnN0IERFRkFVTFRfQ09ORklHOiBDb25maWcgPSB7XG4gIHV1aWQ6IERFRkFVTFRfTE9DQUxfU1RPUkFHRV9LRVksXG4gIHRpdGxlOiAnT250aW1pemUgV2ViIEFwcCdcbn07XG5cbmV4cG9ydCBjb25zdCBPX0lOUFVUU19PUFRJT05TID0gbmV3IEluamVjdGlvblRva2VuPE9JbnB1dHNPcHRpb25zPignby1pbnB1dHMtb3B0aW9ucycpO1xuXG5leHBvcnQgY29uc3QgQVBQX0NPTkZJRyA9IG5ldyBJbmplY3Rpb25Ub2tlbjxDb25maWc+KCdhcHAuY29uZmlnJyk7XG5cbmV4cG9ydCBjbGFzcyBBcHBDb25maWcge1xuICBwcml2YXRlIF9jb25maWc6IENvbmZpZztcblxuICBjb25zdHJ1Y3Rvcihjb25maWc/KSB7XG4gICAgdGhpcy5fY29uZmlnID0gKGNvbmZpZyAmJiBVdGlsLmlzT2JqZWN0KGNvbmZpZykgJiYgIUFycmF5LmlzQXJyYXkoY29uZmlnKSkgPyBjb25maWcgOiB7fTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRDb25maWd1cmF0aW9uKCk6IENvbmZpZyB7XG4gICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oREVGQVVMVF9DT05GSUcsIHRoaXMuX2NvbmZpZyk7XG4gIH1cblxuICBwdWJsaWMgZ2V0U2VydmljZUNvbmZpZ3VyYXRpb24oKTogYW55IHtcbiAgICByZXR1cm4gdGhpcy5fY29uZmlnLnNlcnZpY2VzQ29uZmlndXJhdGlvbiB8fCB7fTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRNZW51Q29uZmlndXJhdGlvbigpOiBNZW51Um9vdEl0ZW1bXSB7XG4gICAgcmV0dXJuIHRoaXMuX2NvbmZpZy5hcHBNZW51Q29uZmlndXJhdGlvbiB8fCBbXTtcbiAgfVxuXG4gIHB1YmxpYyB1c2VSZW1vdGVCdW5kbGUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIFV0aWwuaXNEZWZpbmVkKHRoaXMuX2NvbmZpZy5idW5kbGUpO1xuICB9XG5cbiAgcHVibGljIGdldEJ1bmRsZUVuZHBvaW50KCk6IHN0cmluZyB7XG4gICAgbGV0IHJlc3VsdDogc3RyaW5nO1xuICAgIGNvbnN0IGV4aXN0c0J1bmRsZUNvbmYgPSB0aGlzLnVzZVJlbW90ZUJ1bmRsZSgpO1xuICAgIGlmIChleGlzdHNCdW5kbGVDb25mICYmIFV0aWwuaXNEZWZpbmVkKHRoaXMuX2NvbmZpZy5idW5kbGUuZW5kcG9pbnQpKSB7XG4gICAgICByZXN1bHQgPSB0aGlzLl9jb25maWcuYnVuZGxlLmVuZHBvaW50O1xuICAgIH0gZWxzZSBpZiAoZXhpc3RzQnVuZGxlQ29uZiAmJiBVdGlsLmlzRGVmaW5lZCh0aGlzLl9jb25maWcuYnVuZGxlLnBhdGgpKSB7XG4gICAgICByZXN1bHQgPSB0aGlzLl9jb25maWcuYXBpRW5kcG9pbnQgKyAnLycgKyB0aGlzLl9jb25maWcuYnVuZGxlLnBhdGg7XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBwdWJsaWMgZ2V0STE4bkFzc2V0c0NvbmZpZ3VyYXRpb24oKTogYW55IHtcbiAgICBpZiAoVXRpbC5pc0RlZmluZWQodGhpcy5fY29uZmlnLmFzc2V0cykgJiYgVXRpbC5pc0RlZmluZWQodGhpcy5fY29uZmlnLmFzc2V0cy5pMThuKSkge1xuICAgICAgcmV0dXJuIHRoaXMuX2NvbmZpZy5hc3NldHMuaTE4bjtcbiAgICB9XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIHB1YmxpYyBnZXRDc3NBc3NldHNDb25maWd1cmF0aW9uKCk6IGFueSB7XG4gICAgaWYgKFV0aWwuaXNEZWZpbmVkKHRoaXMuX2NvbmZpZy5hc3NldHMpICYmIFV0aWwuaXNEZWZpbmVkKHRoaXMuX2NvbmZpZy5hc3NldHMuY3NzKSkge1xuICAgICAgcmV0dXJuIHRoaXMuX2NvbmZpZy5hc3NldHMuY3NzO1xuICAgIH1cbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgcHVibGljIGdldEltYWdlc0Fzc2V0c0NvbmZpZ3VyYXRpb24oKTogYW55IHtcbiAgICBpZiAoVXRpbC5pc0RlZmluZWQodGhpcy5fY29uZmlnLmFzc2V0cykgJiYgVXRpbC5pc0RlZmluZWQodGhpcy5fY29uZmlnLmFzc2V0cy5pbWFnZXMpKSB7XG4gICAgICByZXR1cm4gdGhpcy5fY29uZmlnLmFzc2V0cy5pbWFnZXM7XG4gICAgfVxuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICBwdWJsaWMgZ2V0SnNBc3NldHNDb25maWd1cmF0aW9uKCk6IGFueSB7XG4gICAgaWYgKFV0aWwuaXNEZWZpbmVkKHRoaXMuX2NvbmZpZy5hc3NldHMpICYmIFV0aWwuaXNEZWZpbmVkKHRoaXMuX2NvbmZpZy5hc3NldHMuanMpKSB7XG4gICAgICByZXR1cm4gdGhpcy5fY29uZmlnLmFzc2V0cy5qcztcbiAgICB9XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIHB1YmxpYyBnZXRSZW1vdGVDb25maWd1cmF0aW9uQ29uZmlnKCk6IE9SZW1vdGVDb25maWd1cmF0aW9uIHtcbiAgICByZXR1cm4gdGhpcy5fY29uZmlnLnJlbW90ZUNvbmZpZztcbiAgfVxuXG4gIHB1YmxpYyB1c2VSZW1vdGVDb25maWd1cmF0aW9uKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBVdGlsLmlzRGVmaW5lZCh0aGlzLl9jb25maWcucmVtb3RlQ29uZmlnKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRSZW1vdGVDb25maWd1cmF0aW9uRW5kcG9pbnQoKTogc3RyaW5nIHtcbiAgICBsZXQgcmVzdWx0OiBzdHJpbmc7XG4gICAgY29uc3QgZXhpc3RzUmVtb3RlQ29uZiA9IHRoaXMudXNlUmVtb3RlQ29uZmlndXJhdGlvbigpO1xuICAgIGlmIChleGlzdHNSZW1vdGVDb25mICYmIFV0aWwuaXNEZWZpbmVkKHRoaXMuX2NvbmZpZy5yZW1vdGVDb25maWcuZW5kcG9pbnQpKSB7XG4gICAgICByZXN1bHQgPSB0aGlzLl9jb25maWcucmVtb3RlQ29uZmlnLmVuZHBvaW50O1xuICAgIH0gZWxzZSBpZiAoZXhpc3RzUmVtb3RlQ29uZiAmJiBVdGlsLmlzRGVmaW5lZCh0aGlzLl9jb25maWcucmVtb3RlQ29uZmlnLnBhdGgpKSB7XG4gICAgICByZXN1bHQgPSB0aGlzLl9jb25maWcuYXBpRW5kcG9pbnQgKyAnLycgKyB0aGlzLl9jb25maWcucmVtb3RlQ29uZmlnLnBhdGg7XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBwdWJsaWMgdXNlRXhwb3J0Q29uZmlndXJhdGlvbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gVXRpbC5pc0RlZmluZWQodGhpcy5fY29uZmlnLmV4cG9ydENvbmZpZ3VyYXRpb24pO1xuICB9XG5cbiAgcHVibGljIGdldEV4cG9ydFBhdGgoKSB7XG4gICAgbGV0IHJlc3VsdDogc3RyaW5nO1xuICAgIGNvbnN0IGV4aXN0c1JlbW90ZUNvbmYgPSB0aGlzLnVzZUV4cG9ydENvbmZpZ3VyYXRpb24oKTtcbiAgICBpZiAoZXhpc3RzUmVtb3RlQ29uZiAmJiBVdGlsLmlzRGVmaW5lZCh0aGlzLl9jb25maWcuZXhwb3J0Q29uZmlndXJhdGlvbi5wYXRoKSkge1xuICAgICAgcmVzdWx0ID0gdGhpcy5fY29uZmlnLmV4cG9ydENvbmZpZ3VyYXRpb24ucGF0aDtcbiAgICB9IGVsc2Uge1xuICAgICAgcmVzdWx0ID0gdGhpcy5fY29uZmlnLmFwaUVuZHBvaW50ICsgJy9leHBvcnQnO1xuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbn1cbiJdfQ==