UNPKG

@foblex/flow

Version:

An Angular library designed to simplify the creation and manipulation of dynamic flow. Provides components for flows, nodes, and connections, automating node manipulation and inter-node connections.

66 lines 8.46 kB
import { booleanAttribute, Directive, ElementRef, inject, Input } from '@angular/core'; import { FExternalItemBase } from './f-external-item-base'; import { FExternalItemService } from './f-external-item.service'; import { F_EXTERNAL_ITEM } from './f-external-item-token'; import * as i0 from "@angular/core"; let uniqueId = 0; export class FExternalItemDirective extends FExternalItemBase { _elementReference = inject(ElementRef); _fExternalItemService = inject(FExternalItemService); fExternalItemId = `f-external-item-${uniqueId++}`; get hostElement() { return this._elementReference.nativeElement; } fData; fDisabled = false; fPreview; fPreviewMatchSize = true; fPlaceholder; ngOnInit() { this._fExternalItemService.registerItem(this); this.disablePointerEvents(Array.from(this.hostElement.children)); } disablePointerEvents(children) { children.forEach((x) => { x.style.pointerEvents = 'none'; this.disablePointerEvents(Array.from(x.children)); }); } ngOnDestroy() { this._fExternalItemService.removeItem(this); } static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FExternalItemDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "18.2.13", type: FExternalItemDirective, isStandalone: true, selector: "[fExternalItem]", inputs: { fExternalItemId: "fExternalItemId", fData: "fData", fDisabled: ["fDisabled", "fDisabled", booleanAttribute], fPreview: "fPreview", fPreviewMatchSize: ["fPreviewMatchSize", "fPreviewMatchSize", booleanAttribute], fPlaceholder: "fPlaceholder" }, host: { properties: { "attr.id": "fExternalItemId", "class.f-external-item-disabled": "fDisabled" }, classAttribute: "f-component f-external-item" }, providers: [ { provide: F_EXTERNAL_ITEM, useExisting: FExternalItemDirective } ], usesInheritance: true, ngImport: i0 }); } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FExternalItemDirective, decorators: [{ type: Directive, args: [{ selector: "[fExternalItem]", standalone: true, host: { '[attr.id]': 'fExternalItemId', class: "f-component f-external-item", '[class.f-external-item-disabled]': 'fDisabled', }, providers: [ { provide: F_EXTERNAL_ITEM, useExisting: FExternalItemDirective } ], }] }], propDecorators: { fExternalItemId: [{ type: Input }], fData: [{ type: Input }], fDisabled: [{ type: Input, args: [{ transform: booleanAttribute }] }], fPreview: [{ type: Input }], fPreviewMatchSize: [{ type: Input, args: [{ transform: booleanAttribute }] }], fPlaceholder: [{ type: Input }] } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1leHRlcm5hbC1pdGVtLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvZi1leHRlcm5hbC1pdGVtL2YtZXh0ZXJuYWwtaXRlbS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLGdCQUFnQixFQUNoQixTQUFTLEVBQ1QsVUFBVSxFQUNWLE1BQU0sRUFDTixLQUFLLEVBSU4sTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDM0QsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDakUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHlCQUF5QixDQUFDOztBQUUxRCxJQUFJLFFBQVEsR0FBVyxDQUFDLENBQUM7QUFjekIsTUFBTSxPQUFPLHNCQUE4QixTQUFRLGlCQUF3QjtJQUV4RCxpQkFBaUIsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDdkMscUJBQXFCLEdBQUcsTUFBTSxDQUFDLG9CQUFvQixDQUFDLENBQUM7SUFHdEQsZUFBZSxHQUFXLG1CQUFvQixRQUFRLEVBQUcsRUFBRSxDQUFDO0lBRTVFLElBQW9CLFdBQVc7UUFDN0IsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsYUFBYSxDQUFDO0lBQzlDLENBQUM7SUFHZSxLQUFLLENBQW9CO0lBR3pCLFNBQVMsR0FBWSxLQUFLLENBQUM7SUFHM0IsUUFBUSxDQUErQjtJQUd2QyxpQkFBaUIsR0FBWSxJQUFJLENBQUM7SUFHbEMsWUFBWSxDQUErQjtJQUVwRCxRQUFRO1FBQ2IsSUFBSSxDQUFDLHFCQUFxQixDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM5QyxJQUFJLENBQUMsb0JBQW9CLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBa0IsQ0FBQyxDQUFDO0lBQ3BGLENBQUM7SUFFTyxvQkFBb0IsQ0FBQyxRQUF1QjtRQUNsRCxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDckIsQ0FBQyxDQUFDLEtBQUssQ0FBQyxhQUFhLEdBQUcsTUFBTSxDQUFDO1lBQy9CLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQWtCLENBQUMsQ0FBQztRQUNyRSxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTSxXQUFXO1FBQ2hCLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDOUMsQ0FBQzt3R0F6Q1Usc0JBQXNCOzRGQUF0QixzQkFBc0IsdUpBZWIsZ0JBQWdCLHVGQU1oQixnQkFBZ0Isb01BekJ6QjtZQUNULEVBQUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxXQUFXLEVBQUUsc0JBQXNCLEVBQUU7U0FDbEU7OzRGQUVVLHNCQUFzQjtrQkFabEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsaUJBQWlCO29CQUMzQixVQUFVLEVBQUUsSUFBSTtvQkFDaEIsSUFBSSxFQUFFO3dCQUNKLFdBQVcsRUFBRSxpQkFBaUI7d0JBQzlCLEtBQUssRUFBRSw2QkFBNkI7d0JBQ3BDLGtDQUFrQyxFQUFFLFdBQVc7cUJBQ2hEO29CQUNELFNBQVMsRUFBRTt3QkFDVCxFQUFFLE9BQU8sRUFBRSxlQUFlLEVBQUUsV0FBVyx3QkFBd0IsRUFBRTtxQkFDbEU7aUJBQ0Y7OEJBT2lCLGVBQWU7c0JBRDlCLEtBQUs7Z0JBUVUsS0FBSztzQkFEcEIsS0FBSztnQkFJVSxTQUFTO3NCQUR4QixLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQUl0QixRQUFRO3NCQUR2QixLQUFLO2dCQUlVLGlCQUFpQjtzQkFEaEMsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFJdEIsWUFBWTtzQkFEM0IsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIGJvb2xlYW5BdHRyaWJ1dGUsXG4gIERpcmVjdGl2ZSxcbiAgRWxlbWVudFJlZixcbiAgaW5qZWN0LFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIFRlbXBsYXRlUmVmXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRkV4dGVybmFsSXRlbUJhc2UgfSBmcm9tICcuL2YtZXh0ZXJuYWwtaXRlbS1iYXNlJztcbmltcG9ydCB7IEZFeHRlcm5hbEl0ZW1TZXJ2aWNlIH0gZnJvbSAnLi9mLWV4dGVybmFsLWl0ZW0uc2VydmljZSc7XG5pbXBvcnQgeyBGX0VYVEVSTkFMX0lURU0gfSBmcm9tICcuL2YtZXh0ZXJuYWwtaXRlbS10b2tlbic7XG5cbmxldCB1bmlxdWVJZDogbnVtYmVyID0gMDtcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiBcIltmRXh0ZXJuYWxJdGVtXVwiLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBob3N0OiB7XG4gICAgJ1thdHRyLmlkXSc6ICdmRXh0ZXJuYWxJdGVtSWQnLFxuICAgIGNsYXNzOiBcImYtY29tcG9uZW50IGYtZXh0ZXJuYWwtaXRlbVwiLFxuICAgICdbY2xhc3MuZi1leHRlcm5hbC1pdGVtLWRpc2FibGVkXSc6ICdmRGlzYWJsZWQnLFxuICB9LFxuICBwcm92aWRlcnM6IFtcbiAgICB7IHByb3ZpZGU6IEZfRVhURVJOQUxfSVRFTSwgdXNlRXhpc3Rpbmc6IEZFeHRlcm5hbEl0ZW1EaXJlY3RpdmUgfVxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBGRXh0ZXJuYWxJdGVtRGlyZWN0aXZlPFREYXRhPiBleHRlbmRzIEZFeHRlcm5hbEl0ZW1CYXNlPFREYXRhPiBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9lbGVtZW50UmVmZXJlbmNlID0gaW5qZWN0KEVsZW1lbnRSZWYpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9mRXh0ZXJuYWxJdGVtU2VydmljZSA9IGluamVjdChGRXh0ZXJuYWxJdGVtU2VydmljZSk7XG5cbiAgQElucHV0KClcbiAgcHVibGljIG92ZXJyaWRlIGZFeHRlcm5hbEl0ZW1JZDogc3RyaW5nID0gYGYtZXh0ZXJuYWwtaXRlbS0keyB1bmlxdWVJZCsrIH1gO1xuXG4gIHB1YmxpYyBvdmVycmlkZSBnZXQgaG9zdEVsZW1lbnQoKTogSFRNTEVsZW1lbnQgfCBTVkdFbGVtZW50IHtcbiAgICByZXR1cm4gdGhpcy5fZWxlbWVudFJlZmVyZW5jZS5uYXRpdmVFbGVtZW50O1xuICB9XG5cbiAgQElucHV0KClcbiAgcHVibGljIG92ZXJyaWRlIGZEYXRhOiBURGF0YSB8IHVuZGVmaW5lZDtcblxuICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSlcbiAgcHVibGljIG92ZXJyaWRlIGZEaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBvdmVycmlkZSBmUHJldmlldzogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZDtcblxuICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSlcbiAgcHVibGljIG92ZXJyaWRlIGZQcmV2aWV3TWF0Y2hTaXplOiBib29sZWFuID0gdHJ1ZTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgb3ZlcnJpZGUgZlBsYWNlaG9sZGVyOiBUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkO1xuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLl9mRXh0ZXJuYWxJdGVtU2VydmljZS5yZWdpc3Rlckl0ZW0odGhpcyk7XG4gICAgdGhpcy5kaXNhYmxlUG9pbnRlckV2ZW50cyhBcnJheS5mcm9tKHRoaXMuaG9zdEVsZW1lbnQuY2hpbGRyZW4pIGFzIEhUTUxFbGVtZW50W10pO1xuICB9XG5cbiAgcHJpdmF0ZSBkaXNhYmxlUG9pbnRlckV2ZW50cyhjaGlsZHJlbjogSFRNTEVsZW1lbnRbXSk6IHZvaWQge1xuICAgIGNoaWxkcmVuLmZvckVhY2goKHgpID0+IHtcbiAgICAgIHguc3R5bGUucG9pbnRlckV2ZW50cyA9ICdub25lJztcbiAgICAgIHRoaXMuZGlzYWJsZVBvaW50ZXJFdmVudHMoQXJyYXkuZnJvbSh4LmNoaWxkcmVuKSBhcyBIVE1MRWxlbWVudFtdKTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLl9mRXh0ZXJuYWxJdGVtU2VydmljZS5yZW1vdmVJdGVtKHRoaXMpO1xuICB9XG59XG4iXX0=