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.

55 lines 9.4 kB
import { ChangeDetectionStrategy, Component, Inject } from "@angular/core"; import { F_CONNECTION_IDENTIFIERS } from '../f-connection-identifiers'; import { F_CONNECTION } from '../f-connection.injection-token'; import { CONNECTION_PATH } from './i-connection-path'; import { getMarkerEndId, getMarkerSelectedEndId, getMarkerSelectedStartId, getMarkerStartId, } from './get-path-marker-id'; import * as i0 from "@angular/core"; export class FConnectionPathComponent { elementReference; base; get fPathId() { return this.base.fId; } get linkToGradient() { return F_CONNECTION_IDENTIFIERS.linkToGradient(this.base.fId + this.base.fOutputId + this.base.fInputId); } get attrConnectionId() { return F_CONNECTION_IDENTIFIERS.connectionId(this.base.fId + this.base.fOutputId + this.base.fInputId); } get hostElement() { return this.elementReference.nativeElement; } constructor(elementReference, base) { this.elementReference = elementReference; this.base = base; } initialize() { this.deselect(); } setPath(path) { this.hostElement.setAttribute("d", `${path}`); } select() { this.hostElement.setAttribute('marker-start', `url(#${getMarkerSelectedStartId(this.base.fId)})`); this.hostElement.setAttribute('marker-end', `url(#${getMarkerSelectedEndId(this.base.fId)})`); } deselect() { this.hostElement.setAttribute('marker-start', `url(#${getMarkerStartId(this.base.fId)})`); this.hostElement.setAttribute('marker-end', `url(#${getMarkerEndId(this.base.fId)})`); } static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FConnectionPathComponent, deps: [{ token: i0.ElementRef }, { token: F_CONNECTION }], target: i0.ɵɵFactoryTarget.Component }); static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: FConnectionPathComponent, selector: "path[f-connection-path]", host: { properties: { "attr.id": "attrConnectionId", "attr.data-f-path-id": "fPathId", "attr.stroke": "linkToGradient" }, classAttribute: "f-component f-connection-path" }, providers: [{ provide: CONNECTION_PATH, useExisting: FConnectionPathComponent }], ngImport: i0, template: '', isInline: true, styles: [":host{fill:none;pointer-events:stroke}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FConnectionPathComponent, decorators: [{ type: Component, args: [{ selector: "path[f-connection-path]", template: '', changeDetection: ChangeDetectionStrategy.OnPush, host: { class: "f-component f-connection-path", '[attr.id]': 'attrConnectionId', '[attr.data-f-path-id]': 'fPathId', '[attr.stroke]': 'linkToGradient', }, providers: [{ provide: CONNECTION_PATH, useExisting: FConnectionPathComponent }], styles: [":host{fill:none;pointer-events:stroke}\n"] }] }], ctorParameters: () => [{ type: i0.ElementRef }, { type: undefined, decorators: [{ type: Inject, args: [F_CONNECTION] }] }] }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1jb25uZWN0aW9uLXBhdGguY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9mLWNvbm5lY3Rpb24vY29tbW9uL2YtcGF0aC9mLWNvbm5lY3Rpb24tcGF0aC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBYyxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkYsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFHdkUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQy9ELE9BQU8sRUFBRSxlQUFlLEVBQW1CLE1BQU0scUJBQXFCLENBQUM7QUFDdkUsT0FBTyxFQUNMLGNBQWMsRUFDZCxzQkFBc0IsRUFDdEIsd0JBQXdCLEVBQ3hCLGdCQUFnQixHQUNqQixNQUFNLHNCQUFzQixDQUFDOztBQWU5QixNQUFNLE9BQU8sd0JBQXdCO0lBdUJ6QjtJQUNzQjtJQXRCaEMsSUFBVyxPQUFPO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUM7SUFDdkIsQ0FBQztJQUVELElBQVcsY0FBYztRQUN2QixPQUFPLHdCQUF3QixDQUFDLGNBQWMsQ0FDNUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQ3pELENBQUM7SUFDSixDQUFDO0lBRUQsSUFBVyxnQkFBZ0I7UUFDekIsT0FBTyx3QkFBd0IsQ0FBQyxZQUFZLENBQzFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUN6RCxDQUFDO0lBQ0osQ0FBQztJQUVELElBQVcsV0FBVztRQUNwQixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLENBQUM7SUFDN0MsQ0FBQztJQUVELFlBQ1UsZ0JBQTRDLEVBQ3RCLElBQWdEO1FBRHRFLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBNEI7UUFDdEIsU0FBSSxHQUFKLElBQUksQ0FBNEM7SUFFaEYsQ0FBQztJQUVNLFVBQVU7UUFDZixJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDbEIsQ0FBQztJQUVNLE9BQU8sQ0FBQyxJQUFZO1FBQ3pCLElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUFDLEdBQUcsRUFBRSxHQUFJLElBQUssRUFBRSxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVNLE1BQU07UUFDWCxJQUFJLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FBQyxjQUFjLEVBQUUsUUFBUyx3QkFBd0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBRSxHQUFHLENBQUMsQ0FBQztRQUNwRyxJQUFJLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FBQyxZQUFZLEVBQUUsUUFBUyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBRSxHQUFHLENBQUMsQ0FBQztJQUNsRyxDQUFDO0lBRU0sUUFBUTtRQUNiLElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUFDLGNBQWMsRUFBRSxRQUFTLGdCQUFnQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQzVGLElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUFDLFlBQVksRUFBRSxRQUFTLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBRSxHQUFHLENBQUMsQ0FBQztJQUMxRixDQUFDO3dHQTVDVSx3QkFBd0IsNENBd0J6QixZQUFZOzRGQXhCWCx3QkFBd0IsK05BRnhCLENBQUUsRUFBRSxPQUFPLEVBQUUsZUFBZSxFQUFFLFdBQVcsRUFBRSx3QkFBd0IsRUFBRSxDQUFFLDBCQVR4RSxFQUFFOzs0RkFXRCx3QkFBd0I7a0JBYnBDLFNBQVM7K0JBQ0UseUJBQXlCLFlBQ3pCLEVBQUUsbUJBRUssdUJBQXVCLENBQUMsTUFBTSxRQUN6Qzt3QkFDSixLQUFLLEVBQUUsK0JBQStCO3dCQUN0QyxXQUFXLEVBQUUsa0JBQWtCO3dCQUMvQix1QkFBdUIsRUFBRSxTQUFTO3dCQUNsQyxlQUFlLEVBQUUsZ0JBQWdCO3FCQUNsQyxhQUNVLENBQUUsRUFBRSxPQUFPLEVBQUUsZUFBZSxFQUFFLFdBQVcsMEJBQTBCLEVBQUUsQ0FBRTs7MEJBMEIvRSxNQUFNOzJCQUFDLFlBQVkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBJbmplY3QgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgRl9DT05ORUNUSU9OX0lERU5USUZJRVJTIH0gZnJvbSAnLi4vZi1jb25uZWN0aW9uLWlkZW50aWZpZXJzJztcbmltcG9ydCB7IElIYXNDb25uZWN0aW9uQ29sb3IgfSBmcm9tICcuLi9pLWhhcy1jb25uZWN0aW9uLWNvbG9yJztcbmltcG9ydCB7IElIYXNDb25uZWN0aW9uRnJvbVRvIH0gZnJvbSAnLi4vaS1oYXMtY29ubmVjdGlvbi1mcm9tLXRvJztcbmltcG9ydCB7IEZfQ09OTkVDVElPTiB9IGZyb20gJy4uL2YtY29ubmVjdGlvbi5pbmplY3Rpb24tdG9rZW4nO1xuaW1wb3J0IHsgQ09OTkVDVElPTl9QQVRILCBJQ29ubmVjdGlvblBhdGggfSBmcm9tICcuL2ktY29ubmVjdGlvbi1wYXRoJztcbmltcG9ydCB7XG4gIGdldE1hcmtlckVuZElkLFxuICBnZXRNYXJrZXJTZWxlY3RlZEVuZElkLFxuICBnZXRNYXJrZXJTZWxlY3RlZFN0YXJ0SWQsXG4gIGdldE1hcmtlclN0YXJ0SWQsXG59IGZyb20gJy4vZ2V0LXBhdGgtbWFya2VyLWlkJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiBcInBhdGhbZi1jb25uZWN0aW9uLXBhdGhdXCIsXG4gIHRlbXBsYXRlOiAnJyxcbiAgc3R5bGVVcmxzOiBbJy4vZi1jb25uZWN0aW9uLXBhdGguY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGhvc3Q6IHtcbiAgICBjbGFzczogXCJmLWNvbXBvbmVudCBmLWNvbm5lY3Rpb24tcGF0aFwiLFxuICAgICdbYXR0ci5pZF0nOiAnYXR0ckNvbm5lY3Rpb25JZCcsXG4gICAgJ1thdHRyLmRhdGEtZi1wYXRoLWlkXSc6ICdmUGF0aElkJyxcbiAgICAnW2F0dHIuc3Ryb2tlXSc6ICdsaW5rVG9HcmFkaWVudCcsXG4gIH0sXG4gIHByb3ZpZGVyczogWyB7IHByb3ZpZGU6IENPTk5FQ1RJT05fUEFUSCwgdXNlRXhpc3Rpbmc6IEZDb25uZWN0aW9uUGF0aENvbXBvbmVudCB9IF0sXG59KVxuZXhwb3J0IGNsYXNzIEZDb25uZWN0aW9uUGF0aENvbXBvbmVudCBpbXBsZW1lbnRzIElDb25uZWN0aW9uUGF0aCB7XG5cbiAgcHVibGljIGdldCBmUGF0aElkKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuYmFzZS5mSWQ7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGxpbmtUb0dyYWRpZW50KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIEZfQ09OTkVDVElPTl9JREVOVElGSUVSUy5saW5rVG9HcmFkaWVudChcbiAgICAgIHRoaXMuYmFzZS5mSWQgKyB0aGlzLmJhc2UuZk91dHB1dElkICsgdGhpcy5iYXNlLmZJbnB1dElkXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgYXR0ckNvbm5lY3Rpb25JZCgpOiBzdHJpbmcge1xuICAgIHJldHVybiBGX0NPTk5FQ1RJT05fSURFTlRJRklFUlMuY29ubmVjdGlvbklkKFxuICAgICAgdGhpcy5iYXNlLmZJZCArIHRoaXMuYmFzZS5mT3V0cHV0SWQgKyB0aGlzLmJhc2UuZklucHV0SWRcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGdldCBob3N0RWxlbWVudCgpOiBTVkdQYXRoRWxlbWVudCB7XG4gICAgcmV0dXJuIHRoaXMuZWxlbWVudFJlZmVyZW5jZS5uYXRpdmVFbGVtZW50O1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBlbGVtZW50UmVmZXJlbmNlOiBFbGVtZW50UmVmPFNWR1BhdGhFbGVtZW50PixcbiAgICBASW5qZWN0KEZfQ09OTkVDVElPTikgcHJpdmF0ZSBiYXNlOiBJSGFzQ29ubmVjdGlvbkNvbG9yICYgSUhhc0Nvbm5lY3Rpb25Gcm9tVG9cbiAgKSB7XG4gIH1cblxuICBwdWJsaWMgaW5pdGlhbGl6ZSgpOiB2b2lkIHtcbiAgICB0aGlzLmRlc2VsZWN0KCk7XG4gIH1cblxuICBwdWJsaWMgc2V0UGF0aChwYXRoOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLmhvc3RFbGVtZW50LnNldEF0dHJpYnV0ZShcImRcIiwgYCR7IHBhdGggfWApO1xuICB9XG5cbiAgcHVibGljIHNlbGVjdCgpOiB2b2lkIHtcbiAgICB0aGlzLmhvc3RFbGVtZW50LnNldEF0dHJpYnV0ZSgnbWFya2VyLXN0YXJ0JywgYHVybCgjJHsgZ2V0TWFya2VyU2VsZWN0ZWRTdGFydElkKHRoaXMuYmFzZS5mSWQpIH0pYCk7XG4gICAgdGhpcy5ob3N0RWxlbWVudC5zZXRBdHRyaWJ1dGUoJ21hcmtlci1lbmQnLCBgdXJsKCMkeyBnZXRNYXJrZXJTZWxlY3RlZEVuZElkKHRoaXMuYmFzZS5mSWQpIH0pYCk7XG4gIH1cblxuICBwdWJsaWMgZGVzZWxlY3QoKTogdm9pZCB7XG4gICAgdGhpcy5ob3N0RWxlbWVudC5zZXRBdHRyaWJ1dGUoJ21hcmtlci1zdGFydCcsIGB1cmwoIyR7IGdldE1hcmtlclN0YXJ0SWQodGhpcy5iYXNlLmZJZCkgfSlgKTtcbiAgICB0aGlzLmhvc3RFbGVtZW50LnNldEF0dHJpYnV0ZSgnbWFya2VyLWVuZCcsIGB1cmwoIyR7IGdldE1hcmtlckVuZElkKHRoaXMuYmFzZS5mSWQpIH0pYCk7XG4gIH1cbn1cbiJdfQ==