@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
JavaScript
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=