UNPKG

ontimize-web-ngx

Version:
93 lines 12.9 kB
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==