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