UNPKG

ng-devui

Version:

DevUI components based on Angular

89 lines 13.6 kB
import { Inject, Injectable, Optional } from '@angular/core'; import { Subject } from 'rxjs'; import { filter, mapTo } from 'rxjs/operators'; import { DevUIGlobalConfigToken } from './config'; import * as i0 from "@angular/core"; const isDefined = function (value) { return value !== undefined; }; export class DevConfigService { constructor(defaultConfig) { this.configUpdated$ = new Subject(); this.config = defaultConfig || {}; } getConfigForComponent(componentName) { return this.config[componentName]; } getConfigForApi(api) { const globalConfig = this.config.global || {}; const apiConfig = globalConfig[api]; return apiConfig; } getConfigChangeEventForComponent(componentName) { return this.configUpdated$.pipe(filter((n) => n === componentName), mapTo(undefined)); } set(componentName, value) { this.config[componentName] = { ...this.config[componentName], ...value }; this.configUpdated$.next(componentName); } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DevConfigService, deps: [{ token: DevUIGlobalConfigToken, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); } static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DevConfigService, providedIn: 'root' }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DevConfigService, decorators: [{ type: Injectable, args: [{ providedIn: 'root', }] }], ctorParameters: () => [{ type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [DevUIGlobalConfigToken] }] }] }); export function WithConfig(propertyKey) { return function ConfigDecorator(target, propName, originalDescriptor) { const privatePropName = `$$__assignedValue__${propName}`; if (Object.prototype.hasOwnProperty.call(target, privatePropName)) { console.warn(`The prop "${privatePropName}" is already exist, it will be overrided by withConfig decorator.`); } Object.defineProperty(target, privatePropName, { configurable: true, writable: true, enumerable: false, }); return { get() { const originalValue = originalDescriptor?.get ? originalDescriptor.get.bind(this)() : this[privatePropName]; const assignedByUser = ((this.assignmentCount || {})[propName] || 0) > 1; if (assignedByUser && isDefined(originalValue)) { return originalValue; } if (JSON.stringify(this.devConfigService.config) === '{}') { return originalValue; } let name = this.constructor.name; name = name.replace('Directive', ''); name = name.replace('Component', ''); name = name.toLowerCase(); const componentConfig = this.devConfigService.config[name] || {}; const configValue = componentConfig[propName]; const globalConfig = this.devConfigService.config.global || {}; const apiConfig = globalConfig[propName]; const result = isDefined(apiConfig) ? apiConfig : originalValue; const ret = isDefined(configValue) ? configValue : result; return ret; }, set(value) { this.assignmentCount = this.assignmentCount || {}; this.assignmentCount[propName] = (this.assignmentCount[propName] || 0) + 1; if (originalDescriptor && originalDescriptor.set) { originalDescriptor.set.bind(this)(value); } this[privatePropName] = value; }, configurable: true, enumerable: true, }; }; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9kZXZ1aS91dGlscy9nbG9iYWxDb25maWcvY29uZmlnLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdELE9BQU8sRUFBYyxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDM0MsT0FBTyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMvQyxPQUFPLEVBQTJDLHNCQUFzQixFQUE4QixNQUFNLFVBQVUsQ0FBQzs7QUFFdkgsTUFBTSxTQUFTLEdBQUcsVUFBVSxLQUFXO0lBQ3JDLE9BQU8sS0FBSyxLQUFLLFNBQVMsQ0FBQztBQUM3QixDQUFDLENBQUM7QUFLRixNQUFNLE9BQU8sZ0JBQWdCO0lBSTNCLFlBQXdELGFBQWlDO1FBSGpGLG1CQUFjLEdBQUcsSUFBSSxPQUFPLEVBQTJCLENBQUM7UUFJOUQsSUFBSSxDQUFDLE1BQU0sR0FBRyxhQUFhLElBQUksRUFBRSxDQUFDO0lBQ3BDLENBQUM7SUFFRCxxQkFBcUIsQ0FBaUMsYUFBZ0I7UUFDcEUsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFRCxlQUFlLENBQXVDLEdBQU07UUFDMUQsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLElBQUksRUFBRSxDQUFDO1FBQzlDLE1BQU0sU0FBUyxHQUFHLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNwQyxPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO0lBRUQsZ0NBQWdDLENBQUMsYUFBbUM7UUFDbEUsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FDN0IsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FB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QyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDO2dCQUNoRSxNQUFNLEdBQUcsR0FBRyxTQUFTLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDO2dCQUMxRCxPQUFPLEdBQUcsQ0FBQztZQUNiLENBQUM7WUFDRCxHQUFHLENBQUMsS0FBUztnQkFDWCxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxlQUFlLElBQUksRUFBRSxDQUFDO2dCQUNsRCxJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQzNFLElBQUksa0JBQWtCLElBQUksa0JBQWtCLENBQUMsR0FBRyxFQUFFLENBQUM7b0JBQ2pELGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQzNDLENBQUM7Z0JBQ0QsSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLEtBQUssQ0FBQztZQUNoQyxDQUFDO1lBQ0QsWUFBWSxFQUFFLElBQUk7WUFDbEIsVUFBVSxFQUFFLElBQUk7U0FDakIsQ0FBQztJQUNKLENBQUMsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUsIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgZmlsdGVyLCBtYXBUbyB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgRGV2VUlHbG9iYWxDb25maWcsIERldlVJR2xvYmFsQ29uZmlnS2V5LCBEZXZVSUdsb2JhbENvbmZpZ1Rva2VuLCBEZXZVSUdsb2JhbEluc2lkZUNvbmZpZ0tleSB9IGZyb20gJy4vY29uZmlnJztcclxuXHJcbmNvbnN0IGlzRGVmaW5lZCA9IGZ1bmN0aW9uICh2YWx1ZT86IGFueSk6IGJvb2xlYW4ge1xyXG4gIHJldHVybiB2YWx1ZSAhPT0gdW5kZWZpbmVkO1xyXG59O1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290JyxcclxufSlcclxuZXhwb3J0IGNsYXNzIERldkNvbmZpZ1NlcnZpY2Uge1xyXG4gIHByaXZhdGUgY29uZmlnVXBkYXRlZCQgPSBuZXcgU3ViamVjdDxrZXlvZiBEZXZVSUdsb2JhbENvbmZpZz4oKTtcclxuICBwcml2YXRlIGNvbmZpZzogRGV2VUlHbG9iYWxDb25maWc7XHJcblxyXG4gIGNvbnN0cnVjdG9yKEBPcHRpb25hbCgpIEBJbmplY3QoRGV2VUlHbG9iYWxDb25maWdUb2tlbikgZGVmYXVsdENvbmZpZz86IERldlVJR2xvYmFsQ29uZmlnKSB7XHJcbiAgICB0aGlzLmNvbmZpZyA9IGRlZmF1bHRDb25maWcgfHwge307XHJcbiAgfVxyXG5cclxuICBnZXRDb25maWdGb3JDb21wb25lbnQ8VCBleHRlbmRzIERldlVJR2xvYmFsQ29uZmlnS2V5Pihjb21wb25lbnROYW1lOiBUKTogRGV2VUlHbG9iYWxDb25maWdbVF0ge1xyXG4gICAgcmV0dXJuIHRoaXMuY29uZmlnW2NvbXBvbmVudE5hbWVdO1xyXG4gIH1cclxuXHJcbiAgZ2V0Q29uZmlnRm9yQXBpPFQgZXh0ZW5kcyBEZXZVSUdsb2JhbEluc2lkZUNvbmZpZ0tleT4oYXBpOiBUKTogRGV2VUlHbG9iYWxDb25maWdbJ2dsb2JhbCddW1RdIHtcclxuICAgIGNvbnN0IGdsb2JhbENvbmZpZyA9IHRoaXMuY29uZmlnLmdsb2JhbCB8fCB7fTtcclxuICAgIGNvbnN0IGFwaUNvbmZpZyA9IGdsb2JhbENvbmZpZ1thcGldO1xyXG4gICAgcmV0dXJuIGFwaUNvbmZpZztcclxuICB9XHJcblxyXG4gIGdldENvbmZpZ0NoYW5nZUV2ZW50Rm9yQ29tcG9uZW50KGNvbXBvbmVudE5hbWU6IERldlVJR2xvYmFsQ29uZmlnS2V5KTogT2JzZXJ2YWJsZTx2b2lkPiB7XHJcbiAgICByZXR1cm4gdGhpcy5jb25maWdVcGRhdGVkJC5waXBlKFxyXG4gICAgICBmaWx0ZXIoKG4pID0+IG4gPT09IGNvbXBvbmVudE5hbWUpLFxyXG4gICAgICBtYXBUbyh1bmRlZmluZWQpXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgc2V0PFQgZXh0ZW5kcyBEZXZVSUdsb2JhbENvbmZpZ0tleT4oY29tcG9uZW50TmFtZTogVCwgdmFsdWU6IERldlVJR2xvYmFsQ29uZmlnW1RdKTogdm9pZCB7XHJcbiAgICB0aGlzLmNvbmZpZ1tjb21wb25lbnROYW1lXSA9IHsgLi4udGhpcy5jb25maWdbY29tcG9uZW50TmFtZV0sIC4uLnZhbHVlIH07XHJcbiAgICB0aGlzLmNvbmZpZ1VwZGF0ZWQkLm5leHQoY29tcG9uZW50TmFtZSk7XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gV2l0aENvbmZpZzxUPihwcm9wZXJ0eUtleT86IFQgfCBzdHJpbmcpIHtcclxuICByZXR1cm4gZnVuY3Rpb24gQ29uZmlnRGVjb3JhdG9yKHRhcmdldDogYW55LCBwcm9wTmFtZTogYW55LCBvcmlnaW5hbERlc2NyaXB0b3I/OiBUeXBlZFByb3BlcnR5RGVzY3JpcHRvcjxUPik6IGFueSB7XHJcbiAgICBjb25zdCBwcml2YXRlUHJvcE5hbWUgPSBgJCRfX2Fzc2lnbmVkVmFsdWVfXyR7cHJvcE5hbWV9YDtcclxuICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodGFyZ2V0LCBwcml2YXRlUHJvcE5hbWUpKSB7XHJcbiAgICAgIGNvbnNvbGUud2FybihgVGhlIHByb3AgXCIke3ByaXZhdGVQcm9wTmFtZX1cIiBpcyBhbHJlYWR5IGV4aXN0LCBpdCB3aWxsIGJlIG92ZXJyaWRlZCBieSB3aXRoQ29uZmlnIGRlY29yYXRvci5gKTtcclxuICAgIH1cclxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIHByaXZhdGVQcm9wTmFtZSwge1xyXG4gICAgICBjb25maWd1cmFibGU6IHRydWUsXHJcbiAgICAgIHdyaXRhYmxlOiB0cnVlLFxyXG4gICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgZ2V0KCk6IFQgfCB1bmRlZmluZWQge1xyXG4gICAgICAgIGNvbnN0IG9yaWdpbmFsVmFsdWUgPSBvcmlnaW5hbERlc2NyaXB0b3I/LmdldCA/IG9yaWdpbmFsRGVzY3JpcHRvci5nZXQuYmluZCh0aGlzKSgpIDogdGhpc1twcml2YXRlUHJvcE5hbWVdO1xyXG4gICAgICAgIGNvbnN0IGFzc2lnbmVkQnlVc2VyID0gKCh0aGlzLmFzc2lnbm1lbnRDb3VudCB8fCB7fSlbcHJvcE5hbWVdIHx8IDApID4gMTtcclxuICAgICAgICBpZiAoYXNzaWduZWRCeVVzZXIgJiYgaXNEZWZpbmVkKG9yaWdpbmFsVmFsdWUpKSB7XHJcbiAgICAgICAgICByZXR1cm4gb3JpZ2luYWxWYWx1ZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKEpTT04uc3RyaW5naWZ5KHRoaXMuZGV2Q29uZmlnU2VydmljZS5jb25maWcpID09PSAne30nKSB7XHJcbiAgICAgICAgICByZXR1cm4gb3JpZ2luYWxWYWx1ZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGxldCBuYW1lID0gdGhpcy5jb25zdHJ1Y3Rvci5uYW1lO1xyXG4gICAgICAgIG5hbWUgPSBuYW1lLnJlcGxhY2UoJ0RpcmVjdGl2ZScsICcnKTtcclxuICAgICAgICBuYW1lID0gbmFtZS5yZXBsYWNlKCdDb21wb25lbnQnLCAnJyk7XHJcbiAgICAgICAgbmFtZSA9IG5hbWUudG9Mb3dlckNhc2UoKTtcclxuXHJcbiAgICAgICAgY29uc3QgY29tcG9uZW50Q29uZmlnID0gdGhpcy5kZXZDb25maWdTZXJ2aWNlLmNvbmZpZ1tuYW1lXSB8fCB7fTtcclxuICAgICAgICBjb25zdCBjb25maWdWYWx1ZSA9IGNvbXBvbmVudENvbmZpZ1twcm9wTmFtZV07XHJcbiAgICAgICAgY29uc3QgZ2xvYmFsQ29uZmlnID0gdGhpcy5kZXZDb25maWdTZXJ2aWNlLmNvbmZpZy5nbG9iYWwgfHwge307XHJcbiAgICAgICAgY29uc3QgYXBpQ29uZmlnID0gZ2xvYmFsQ29uZmlnW3Byb3BOYW1lXTtcclxuICAgICAgICBjb25zdCByZXN1bHQgPSBpc0RlZmluZWQoYXBpQ29uZmlnKSA/IGFwaUNvbmZpZyA6IG9yaWdpbmFsVmFsdWU7XHJcbiAgICAgICAgY29uc3QgcmV0ID0gaXNEZWZpbmVkKGNvbmZpZ1ZhbHVlKSA/IGNvbmZpZ1ZhbHVlIDogcmVzdWx0O1xyXG4gICAgICAgIHJldHVybiByZXQ7XHJcbiAgICAgIH0sXHJcbiAgICAgIHNldCh2YWx1ZT86IFQpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmFzc2lnbm1lbnRDb3VudCA9IHRoaXMuYXNzaWdubWVudENvdW50IHx8IHt9O1xyXG4gICAgICAgIHRoaXMuYXNzaWdubWVudENvdW50W3Byb3BOYW1lXSA9ICh0aGlzLmFzc2lnbm1lbnRDb3VudFtwcm9wTmFtZV0gfHwgMCkgKyAxO1xyXG4gICAgICAgIGlmIChvcmlnaW5hbERlc2NyaXB0b3IgJiYgb3JpZ2luYWxEZXNjcmlwdG9yLnNldCkge1xyXG4gICAgICAgICAgb3JpZ2luYWxEZXNjcmlwdG9yLnNldC5iaW5kKHRoaXMpKHZhbHVlKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpc1twcml2YXRlUHJvcE5hbWVdID0gdmFsdWU7XHJcbiAgICAgIH0sXHJcbiAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcclxuICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcclxuICAgIH07XHJcbiAgfTtcclxufVxyXG4iXX0=