UNPKG

cocori-ng

Version:

Cocori-ng is an Angular full of great components & utilites based on Material

63 lines 8.88 kB
import { Injectable } from '@angular/core'; import * as i0 from "@angular/core"; export class MappingBuilderService { constructor() { this.commandMapped = {}; } init() { this.commandMapped = {}; return this; } set setNameForm(name) { this.nameForm = name; } set valuesForm(values) { this.values = values; } map(mapping) { const sourceMap = this.extractMappingParams(mapping.source); const sourceValue = this.getValueFromMapping(sourceMap); const destinationMap = this.extractMappingParams(mapping.destination); /** sourceValue est undefined si la clé du formulaire est inconnu */ if (typeof sourceValue !== 'undefined') { this.assign(this.commandMapped, destinationMap.mappingKeys, sourceValue); } return this; } getMapping() { return Object.entries(this.commandMapped).length === 0 ? null : this.commandMapped; } extractMappingParams(mapping) { const m = mapping.split('.'); const [firstElement, ...rest] = m; return { mappingName: firstElement, mappingKeys: rest }; } getValueFromMapping(source) { let value = null; if (this.nameForm === source.mappingName) { source.mappingKeys.forEach((key) => { value = value ? value[key] : ((key in this.values) ? this.values[key] : null); }); return value; } return undefined; } assign(obj, keyPath, value) { let key; let lastKeyIndex = keyPath.length - 1; for (var i = 0; i < lastKeyIndex; ++i) { key = keyPath[i]; if (!(key in obj)) { obj[key] = {}; } obj = obj[key]; } obj[keyPath[lastKeyIndex]] = value; } } MappingBuilderService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: MappingBuilderService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); MappingBuilderService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: MappingBuilderService }); i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: MappingBuilderService, decorators: [{ type: Injectable }], ctorParameters: function () { return []; } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwcGluZy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29jb3JpLW5nL3NyYy9mZWF0dXJlLWNvcmUvc2VydmljZS9mb3JtLW1hcC12YWx1ZS9tYXBwaW5nLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFZM0MsTUFBTSxPQUFPLHFCQUFxQjtJQUs5QjtRQUZRLGtCQUFhLEdBQVcsRUFBRSxDQUFDO0lBRW5CLENBQUM7SUFFakIsSUFBSTtRQUNBLElBQUksQ0FBQyxhQUFhLEdBQUcsRUFBRSxDQUFBO1FBRXZCLE9BQU8sSUFBSSxDQUFBO0lBQ2YsQ0FBQztJQUVELElBQUksV0FBVyxDQUFDLElBQVk7UUFDeEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7SUFDekIsQ0FBQztJQUVELElBQUksVUFBVSxDQUFDLE1BQVc7UUFDdEIsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7SUFDekIsQ0FBQztJQUVELEdBQUcsQ0FBQyxPQUF3QjtRQUN4QixNQUFNLFNBQVMsR0FBa0IsSUFBSSxDQUFDLG9CQUFvQixDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUMzRSxNQUFNLFdBQVcsR0FBYyxJQUFJLENBQUMsbUJBQW1CLENBQUMsU0FBUyxDQUFDLENBQUM7UUFFbkUsTUFBTSxjQUFjLEdBQWtCLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUM7UUFFckYsb0VBQW9FO1FBQ3BFLElBQUksT0FBTyxXQUFXLEtBQUssV0FBVyxFQUFFO1lBQ3BDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxjQUFjLENBQUMsV0FBVyxFQUFFLFdBQVcsQ0FBQyxDQUFBO1NBQzNFO1FBRUQsT0FBTyxJQUFJLENBQUE7SUFDZixDQUFDO0lBRUQsVUFBVTtRQUNOLE9BQU8sTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFBO0lBQ3RGLENBQUM7SUFFTyxvQkFBb0IsQ0FBQyxPQUFlO1FBQ3hDLE1BQU0sQ0FBQyxHQUFhLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUE7UUFDdEMsTUFBTSxDQUFDLFlBQVksRUFBRSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQTtRQUVqQyxPQUFzQixFQUFFLFdBQVcsRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxDQUFBO0lBQzFFLENBQUM7SUFFTyxtQkFBbUIsQ0FBQyxNQUFxQjtRQUM3QyxJQUFJLEtBQUssR0FBYyxJQUFJLENBQUE7UUFFM0IsSUFBSSxJQUFJLENBQUMsUUFBUSxLQUFLLE1BQU0sQ0FBQyxXQUFXLEVBQUU7WUFDdEMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFXLEVBQUUsRUFBRTtnQkFDdkMsS0FBSyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUE7WUFDakYsQ0FBQyxDQUFDLENBQUE7WUFFRixPQUFPLEtBQUssQ0FBQTtTQUNmO1FBRUQsT0FBTyxTQUFTLENBQUE7SUFDcEIsQ0FBQztJQUVPLE1BQU0sQ0FBQyxHQUFXLEVBQUUsT0FBaUIsRUFBRSxLQUFnQjtRQUMzRCxJQUFJLEdBQUcsQ0FBQTtRQUNQLElBQUksWUFBWSxHQUFHLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1FBRXRDLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxZQUFZLEVBQUUsRUFBRSxDQUFDLEVBQUU7WUFDbkMsR0FBRyxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUVqQixJQUFJLENBQUMsQ0FBQyxHQUFHLElBQUksR0FBRyxDQUFDLEVBQUU7Z0JBQ2YsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQTthQUNoQjtZQUVELEdBQUcsR0FBRyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDbEI7UUFFRCxHQUFHLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDO0lBQ3ZDLENBQUM7O2tIQTNFUSxxQkFBcUI7c0hBQXJCLHFCQUFxQjsyRkFBckIscUJBQXFCO2tCQURqQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuaW1wb3J0IHsgQ29tbWFuZE1hcHBpbmdzIH0gZnJvbSAnLi4vLi4vbW9kZWwvc2NoZW1hLWRhdGFzLm1vZGVsJztcclxuXHJcbmludGVyZmFjZSBQYXJhbXNNYXBwaW5nIHtcclxuICAgIG1hcHBpbmdOYW1lOiBzdHJpbmc7XHJcbiAgICBtYXBwaW5nS2V5czogc3RyaW5nW107XHJcbn1cclxuXHJcbnR5cGUgdmFsdWVUeXBlID0gc3RyaW5nIHwgbnVtYmVyIHwgRGF0ZVxyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgTWFwcGluZ0J1aWxkZXJTZXJ2aWNlIHtcclxuICAgIHByaXZhdGUgbmFtZUZvcm06IHN0cmluZztcclxuICAgIHByaXZhdGUgdmFsdWVzOiBhbnk7XHJcbiAgICBwcml2YXRlIGNvbW1hbmRNYXBwZWQ6IE9iamVjdCA9IHt9O1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKCkgeyB9XHJcblxyXG4gICAgaW5pdCgpIHtcclxuICAgICAgICB0aGlzLmNvbW1hbmRNYXBwZWQgPSB7fVxyXG5cclxuICAgICAgICByZXR1cm4gdGhpc1xyXG4gICAgfVxyXG5cclxuICAgIHNldCBzZXROYW1lRm9ybShuYW1lOiBzdHJpbmcpIHtcclxuICAgICAgICB0aGlzLm5hbWVGb3JtID0gbmFtZTtcclxuICAgIH1cclxuXHJcbiAgICBzZXQgdmFsdWVzRm9ybSh2YWx1ZXM6IGFueSkge1xyXG4gICAgICAgIHRoaXMudmFsdWVzID0gdmFsdWVzO1xyXG4gICAgfVxyXG5cclxuICAgIG1hcChtYXBwaW5nOiBDb21tYW5kTWFwcGluZ3MpIHtcclxuICAgICAgICBjb25zdCBzb3VyY2VNYXA6IFBhcmFtc01hcHBpbmcgPSB0aGlzLmV4dHJhY3RNYXBwaW5nUGFyYW1zKG1hcHBpbmcuc291cmNlKTtcclxuICAgICAgICBjb25zdCBzb3VyY2VWYWx1ZTogdmFsdWVUeXBlID0gdGhpcy5nZXRWYWx1ZUZyb21NYXBwaW5nKHNvdXJjZU1hcCk7XHJcblxyXG4gICAgICAgIGNvbnN0IGRlc3RpbmF0aW9uTWFwOiBQYXJhbXNNYXBwaW5nID0gdGhpcy5leHRyYWN0TWFwcGluZ1BhcmFtcyhtYXBwaW5nLmRlc3RpbmF0aW9uKTtcclxuXHJcbiAgICAgICAgLyoqIHNvdXJjZVZhbHVlIGVzdCB1bmRlZmluZWQgc2kgbGEgY2zDqSBkdSBmb3JtdWxhaXJlIGVzdCBpbmNvbm51ICovXHJcbiAgICAgICAgaWYgKHR5cGVvZiBzb3VyY2VWYWx1ZSAhPT0gJ3VuZGVmaW5lZCcpIHtcclxuICAgICAgICAgICAgdGhpcy5hc3NpZ24odGhpcy5jb21tYW5kTWFwcGVkLCBkZXN0aW5hdGlvbk1hcC5tYXBwaW5nS2V5cywgc291cmNlVmFsdWUpXHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gdGhpc1xyXG4gICAgfVxyXG5cclxuICAgIGdldE1hcHBpbmcoKSB7XHJcbiAgICAgICAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKHRoaXMuY29tbWFuZE1hcHBlZCkubGVuZ3RoID09PSAwID8gbnVsbCA6IHRoaXMuY29tbWFuZE1hcHBlZFxyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgZXh0cmFjdE1hcHBpbmdQYXJhbXMobWFwcGluZzogc3RyaW5nKTogUGFyYW1zTWFwcGluZyB7XHJcbiAgICAgICAgY29uc3QgbTogc3RyaW5nW10gPSBtYXBwaW5nLnNwbGl0KCcuJylcclxuICAgICAgICBjb25zdCBbZmlyc3RFbGVtZW50LCAuLi5yZXN0XSA9IG1cclxuXHJcbiAgICAgICAgcmV0dXJuIDxQYXJhbXNNYXBwaW5nPnsgbWFwcGluZ05hbWU6IGZpcnN0RWxlbWVudCwgbWFwcGluZ0tleXM6IHJlc3QgfVxyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgZ2V0VmFsdWVGcm9tTWFwcGluZyhzb3VyY2U6IFBhcmFtc01hcHBpbmcpOiB2YWx1ZVR5cGUge1xyXG4gICAgICAgIGxldCB2YWx1ZTogdmFsdWVUeXBlID0gbnVsbFxyXG5cclxuICAgICAgICBpZiAodGhpcy5uYW1lRm9ybSA9PT0gc291cmNlLm1hcHBpbmdOYW1lKSB7XHJcbiAgICAgICAgICAgIHNvdXJjZS5tYXBwaW5nS2V5cy5mb3JFYWNoKChrZXk6IHN0cmluZykgPT4ge1xyXG4gICAgICAgICAgICAgICAgdmFsdWUgPSB2YWx1ZSA/IHZhbHVlW2tleV0gOiAoKGtleSBpbiB0aGlzLnZhbHVlcykgPyB0aGlzLnZhbHVlc1trZXldIDogbnVsbClcclxuICAgICAgICAgICAgfSlcclxuXHJcbiAgICAgICAgICAgIHJldHVybiB2YWx1ZVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZFxyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgYXNzaWduKG9iajogT2JqZWN0LCBrZXlQYXRoOiBzdHJpbmdbXSwgdmFsdWU6IHZhbHVlVHlwZSkge1xyXG4gICAgICAgIGxldCBrZXlcclxuICAgICAgICBsZXQgbGFzdEtleUluZGV4ID0ga2V5UGF0aC5sZW5ndGggLSAxO1xyXG5cclxuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGxhc3RLZXlJbmRleDsgKytpKSB7XHJcbiAgICAgICAgICAgIGtleSA9IGtleVBhdGhbaV07XHJcblxyXG4gICAgICAgICAgICBpZiAoIShrZXkgaW4gb2JqKSkge1xyXG4gICAgICAgICAgICAgICAgb2JqW2tleV0gPSB7fVxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBvYmogPSBvYmpba2V5XTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIG9ialtrZXlQYXRoW2xhc3RLZXlJbmRleF1dID0gdmFsdWU7XHJcbiAgICB9XHJcbn1cclxuXHJcbiJdfQ==