UNPKG

@netgrif/components-core

Version:

Netgrif Application engine frontend core Angular library

36 lines 4.76 kB
import { Injectable } from '@angular/core'; import * as i0 from "@angular/core"; import * as i1 from "./operator-resolver.service"; /** * Stores, provides and creates {@link Operator} implementations to be used in the project as singleton objects. * Passes reference to itself to all Operators it creates, so they can use it if they want to. */ export class OperatorService { _operatorResolver; _operators; constructor(_operatorResolver) { this._operatorResolver = _operatorResolver; this._operators = new Map(); } getOperator(operatorClass) { this.createOperatorIfNotInMap(operatorClass); return this._operators.get(operatorClass); } getFromMetadata(metadata) { return this.getOperator(this._operatorResolver.toClass(metadata)); } createOperatorIfNotInMap(operatorClass) { if (!this._operators.has(operatorClass)) { this._operators.set(operatorClass, new operatorClass(this)); } } static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: OperatorService, deps: [{ token: i1.OperatorResolverService }], target: i0.ɵɵFactoryTarget.Injectable }); static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: OperatorService, providedIn: 'root' }); } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: OperatorService, decorators: [{ type: Injectable, args: [{ providedIn: 'root' }] }], ctorParameters: () => [{ type: i1.OperatorResolverService }] }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3BlcmF0b3Iuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25ldGdyaWYtY29tcG9uZW50cy1jb3JlL3NyYy9saWIvc2VhcmNoL29wZXJhdG9yLXNlcnZpY2Uvb3BlcmF0b3Iuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFPLE1BQU0sZUFBZSxDQUFDOzs7QUFLL0M7OztHQUdHO0FBSUgsTUFBTSxPQUFPLGVBQWU7SUFJRjtJQUZkLFVBQVUsQ0FBMEM7SUFFNUQsWUFBc0IsaUJBQTBDO1FBQTFDLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBeUI7UUFDNUQsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLEdBQUcsRUFBc0MsQ0FBQztJQUNwRSxDQUFDO0lBRU0sV0FBVyxDQUFDLGFBQWtDO1FBQ2pELElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUM3QyxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFFTSxlQUFlLENBQUMsUUFBNEI7UUFDL0MsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztJQUN0RSxDQUFDO0lBRU8sd0JBQXdCLENBQUMsYUFBa0M7UUFDL0QsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxFQUFFO1lBQ3JDLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxJQUFJLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1NBQy9EO0lBQ0wsQ0FBQzt3R0FyQlEsZUFBZTs0R0FBZixlQUFlLGNBRlosTUFBTTs7NEZBRVQsZUFBZTtrQkFIM0IsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdGFibGUsIFR5cGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtPcGVyYXRvcn0gZnJvbSAnLi4vbW9kZWxzL29wZXJhdG9yL29wZXJhdG9yJztcbmltcG9ydCB7T3BlcmF0b3JzfSBmcm9tICcuLi9tb2RlbHMvb3BlcmF0b3Ivb3BlcmF0b3JzJztcbmltcG9ydCB7T3BlcmF0b3JSZXNvbHZlclNlcnZpY2V9IGZyb20gJy4vb3BlcmF0b3ItcmVzb2x2ZXIuc2VydmljZSc7XG5cbi8qKlxuICogU3RvcmVzLCBwcm92aWRlcyBhbmQgY3JlYXRlcyB7QGxpbmsgT3BlcmF0b3J9IGltcGxlbWVudGF0aW9ucyB0byBiZSB1c2VkIGluIHRoZSBwcm9qZWN0IGFzIHNpbmdsZXRvbiBvYmplY3RzLlxuICogUGFzc2VzIHJlZmVyZW5jZSB0byBpdHNlbGYgdG8gYWxsIE9wZXJhdG9ycyBpdCBjcmVhdGVzLCBzbyB0aGV5IGNhbiB1c2UgaXQgaWYgdGhleSB3YW50IHRvLlxuICovXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIE9wZXJhdG9yU2VydmljZSB7XG5cbiAgICBwcml2YXRlIF9vcGVyYXRvcnM6IE1hcDxUeXBlPE9wZXJhdG9yPGFueT4+LCBPcGVyYXRvcjxhbnk+PjtcblxuICAgIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBfb3BlcmF0b3JSZXNvbHZlcjogT3BlcmF0b3JSZXNvbHZlclNlcnZpY2UpIHtcbiAgICAgICAgdGhpcy5fb3BlcmF0b3JzID0gbmV3IE1hcDxUeXBlPE9wZXJhdG9yPGFueT4+LCBPcGVyYXRvcjxhbnk+PigpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRPcGVyYXRvcihvcGVyYXRvckNsYXNzOiBUeXBlPE9wZXJhdG9yPGFueT4+KTogT3BlcmF0b3I8YW55PiB7XG4gICAgICAgIHRoaXMuY3JlYXRlT3BlcmF0b3JJZk5vdEluTWFwKG9wZXJhdG9yQ2xhc3MpO1xuICAgICAgICByZXR1cm4gdGhpcy5fb3BlcmF0b3JzLmdldChvcGVyYXRvckNsYXNzKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0RnJvbU1ldGFkYXRhKG1ldGFkYXRhOiBPcGVyYXRvcnMgfCBzdHJpbmcpOiBPcGVyYXRvcjxhbnk+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0T3BlcmF0b3IodGhpcy5fb3BlcmF0b3JSZXNvbHZlci50b0NsYXNzKG1ldGFkYXRhKSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjcmVhdGVPcGVyYXRvcklmTm90SW5NYXAob3BlcmF0b3JDbGFzczogVHlwZTxPcGVyYXRvcjxhbnk+Pik6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuX29wZXJhdG9ycy5oYXMob3BlcmF0b3JDbGFzcykpIHtcbiAgICAgICAgICAgIHRoaXMuX29wZXJhdG9ycy5zZXQob3BlcmF0b3JDbGFzcywgbmV3IG9wZXJhdG9yQ2xhc3ModGhpcykpO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19