UNPKG

@c8y/ngx-components

Version:

Angular modules for Cumulocity IoT applications

57 lines 6.77 kB
import { Directive, NgZone, forwardRef } from '@angular/core'; import { EditorComponent } from './editor.component'; import { NG_VALIDATORS } from '@angular/forms'; import * as i0 from "@angular/core"; import * as i1 from "./editor.component"; export class MonacoEditorMarkerValidatorDirective { constructor(editorComponent, zone) { this.editorComponent = editorComponent; this.zone = zone; } ngOnDestroy() { this.editorInitSubscription?.unsubscribe(); } validate(_control) { if (!this.editorComponent.monaco || !this.editorComponent.editor) { return null; } const uri = this.editorComponent.editor.getModel().uri; const markers = this.editorComponent.monaco.editor.getModelMarkers({ resource: uri }); if (markers.length) { return markers; } return null; } registerOnValidatorChange(fn) { this.editorInitSubscription = this.editorComponent.editorInit.subscribe(editor => { editor.onDidChangeModelDecorations(() => { this.zone.run(() => { fn(); }); }); }); } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MonacoEditorMarkerValidatorDirective, deps: [{ token: i1.EditorComponent }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Directive }); } static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: MonacoEditorMarkerValidatorDirective, isStandalone: true, selector: "c8y-editor [monacoEditorMarkerValidator]", providers: [ { provide: NG_VALIDATORS, useExisting: forwardRef(() => MonacoEditorMarkerValidatorDirective), multi: true } ], ngImport: i0 }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MonacoEditorMarkerValidatorDirective, decorators: [{ type: Directive, args: [{ selector: 'c8y-editor [monacoEditorMarkerValidator]', standalone: true, providers: [ { provide: NG_VALIDATORS, useExisting: forwardRef(() => MonacoEditorMarkerValidatorDirective), multi: true } ] }] }], ctorParameters: () => [{ type: i1.EditorComponent }, { type: i0.NgZone }] }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9uYWNvLWVkaXRvci1tYXJrZXIuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vZWRpdG9yL21vbmFjby1lZGl0b3ItbWFya2VyLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBYSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3JELE9BQU8sRUFBbUIsYUFBYSxFQUErQixNQUFNLGdCQUFnQixDQUFDOzs7QUFjN0YsTUFBTSxPQUFPLG9DQUFvQztJQUcvQyxZQUNVLGVBQWdDLEVBQ2hDLElBQVk7UUFEWixvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFDaEMsU0FBSSxHQUFKLElBQUksQ0FBUTtJQUNuQixDQUFDO0lBRUosV0FBVztRQUNULElBQUksQ0FBQyxzQkFBc0IsRUFBRSxXQUFXLEVBQUUsQ0FBQztJQUM3QyxDQUFDO0lBRUQsUUFBUSxDQUFDLFFBQW1DO1FBQzFDLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDakUsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO1FBQ0QsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUMsR0FBRyxDQUFDO1FBQ3ZELE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQUMsRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQztRQUN0RixJQUFJLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNuQixPQUFPLE9BQU8sQ0FBQztRQUNqQixDQUFDO1FBRUQsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQseUJBQXlCLENBQUMsRUFBYztRQUN0QyxJQUFJLENBQUMsc0JBQXNCLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQy9FLE1BQU0sQ0FBQywyQkFBMkIsQ0FBQyxHQUFHLEVBQUU7Z0JBQ3RDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRTtvQkFDakIsRUFBRSxFQUFFLENBQUM7Z0JBQ1AsQ0FBQyxDQUFDLENBQUM7WUFDTCxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzsrR0FqQ1Usb0NBQW9DO21HQUFwQyxvQ0FBb0MsdUZBUnBDO1lBQ1Q7Z0JBQ0UsT0FBTyxFQUFFLGFBQWE7Z0JBQ3RCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsb0NBQW9DLENBQUM7Z0JBQ25FLEtBQUssRUFBRSxJQUFJO2FBQ1o7U0FDRjs7NEZBRVUsb0NBQW9DO2tCQVhoRCxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSwwQ0FBMEM7b0JBQ3BELFVBQVUsRUFBRSxJQUFJO29CQUNoQixTQUFTLEVBQUU7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGFBQWE7NEJBQ3RCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLHFDQUFxQyxDQUFDOzRCQUNuRSxLQUFLLEVBQUUsSUFBSTt5QkFDWjtxQkFDRjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgTmdab25lLCBPbkRlc3Ryb3ksIGZvcndhcmRSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEVkaXRvckNvbXBvbmVudCB9IGZyb20gJy4vZWRpdG9yLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIE5HX1ZBTElEQVRPUlMsIFZhbGlkYXRpb25FcnJvcnMsIFZhbGlkYXRvciB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdjOHktZWRpdG9yIFttb25hY29FZGl0b3JNYXJrZXJWYWxpZGF0b3JdJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMSURBVE9SUyxcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IE1vbmFjb0VkaXRvck1hcmtlclZhbGlkYXRvckRpcmVjdGl2ZSksXG4gICAgICBtdWx0aTogdHJ1ZVxuICAgIH1cbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBNb25hY29FZGl0b3JNYXJrZXJWYWxpZGF0b3JEaXJlY3RpdmUgaW1wbGVtZW50cyBWYWxpZGF0b3IsIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgZWRpdG9ySW5pdFN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZWRpdG9yQ29tcG9uZW50OiBFZGl0b3JDb21wb25lbnQsXG4gICAgcHJpdmF0ZSB6b25lOiBOZ1pvbmVcbiAgKSB7fVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuZWRpdG9ySW5pdFN1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIHZhbGlkYXRlKF9jb250cm9sOiBBYnN0cmFjdENvbnRyb2w8YW55LCBhbnk+KTogVmFsaWRhdGlvbkVycm9ycyB7XG4gICAgaWYgKCF0aGlzLmVkaXRvckNvbXBvbmVudC5tb25hY28gfHwgIXRoaXMuZWRpdG9yQ29tcG9uZW50LmVkaXRvcikge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIGNvbnN0IHVyaSA9IHRoaXMuZWRpdG9yQ29tcG9uZW50LmVkaXRvci5nZXRNb2RlbCgpLnVyaTtcbiAgICBjb25zdCBtYXJrZXJzID0gdGhpcy5lZGl0b3JDb21wb25lbnQubW9uYWNvLmVkaXRvci5nZXRNb2RlbE1hcmtlcnMoeyByZXNvdXJjZTogdXJpIH0pO1xuICAgIGlmIChtYXJrZXJzLmxlbmd0aCkge1xuICAgICAgcmV0dXJuIG1hcmtlcnM7XG4gICAgfVxuXG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICByZWdpc3Rlck9uVmFsaWRhdG9yQ2hhbmdlKGZuOiAoKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdGhpcy5lZGl0b3JJbml0U3Vic2NyaXB0aW9uID0gdGhpcy5lZGl0b3JDb21wb25lbnQuZWRpdG9ySW5pdC5zdWJzY3JpYmUoZWRpdG9yID0+IHtcbiAgICAgIGVkaXRvci5vbkRpZENoYW5nZU1vZGVsRGVjb3JhdGlvbnMoKCkgPT4ge1xuICAgICAgICB0aGlzLnpvbmUucnVuKCgpID0+IHtcbiAgICAgICAgICBmbigpO1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG59XG4iXX0=