UNPKG

ngx-diagrams

Version:

> Light Weight, Modular, Typed Diagram Engine for Angular

37 lines 5.15 kB
import { PortModel } from '../../models/port.model'; import { DefaultLinkModel } from './default-link.model'; export class DefaultPortModel extends PortModel { constructor({ isInput = true, name = 'port', type = 'default', id = null, label = null, linkType = 'default', maximumLinks = null } = {}) { super(name, type, id, null, linkType); this.in = isInput; this.label = label || name; if (this.in) { this.setCanCreateLinks(false); } else { this.setMaximumLinks(maximumLinks); this.setMagnetic(false); } } link(port) { if (super.getCanCreateLinks()) { const link = new DefaultLinkModel({ type: this.getLinkType() }); link.setSourcePort(this); link.setTargetPort(port); return link; } return null; } createLinkModel() { if (super.getCanCreateLinks()) { return new DefaultLinkModel({ type: this.getLinkType() }); } } canLinkToPort(port) { if (port instanceof DefaultPortModel) { return this.in !== port.in; } return true; } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdC1wb3J0Lm1vZGVsLmpzIiwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uL2xpYnMvbmd4LWRpYWdyYW1zL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9kZWZhdWx0cy9tb2RlbHMvZGVmYXVsdC1wb3J0Lm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUVwRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQVl4RCxNQUFNLE9BQU8sZ0JBQWlCLFNBQVEsU0FBUztJQUs3QyxZQUFZLEVBQ1YsT0FBTyxHQUFHLElBQUksRUFDZCxJQUFJLEdBQUcsTUFBTSxFQUNiLElBQUksR0FBRyxTQUFTLEVBQ2hCLEVBQUUsR0FBRyxJQUFJLEVBQ1QsS0FBSyxHQUFHLElBQUksRUFDWixRQUFRLEdBQUcsU0FBUyxFQUNwQixZQUFZLEdBQUcsSUFBSSxLQUNPLEVBQUU7UUFDNUIsS0FBSyxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxRQUFRLENBQUMsQ0FBQztRQUN0QyxJQUFJLENBQUMsRUFBRSxHQUFHLE9BQU8sQ0FBQztRQUNsQixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssSUFBSSxJQUFJLENBQUM7UUFFM0IsSUFBSSxJQUFJLENBQUMsRUFBRSxFQUFFO1lBQ1gsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQy9CO2FBQU07WUFDTCxJQUFJLENBQUMsZUFBZSxDQUFDLFlBQVksQ0FBQyxDQUFDO1lBQ25DLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDekI7SUFDSCxDQUFDO0lBRUQsSUFBSSxDQUFDLElBQWU7UUFDbEIsSUFBSSxLQUFLLENBQUMsaUJBQWlCLEVBQUUsRUFBRTtZQUM3QixNQUFNLElBQUksR0FBRyxJQUFJLGdCQUFnQixDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDaEUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUN6QixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3pCLE9BQU8sSUFBSSxDQUFDO1NBQ2I7UUFFRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxlQUFlO1FBQ2IsSUFBSSxLQUFLLENBQUMsaUJBQWlCLEVBQUUsRUFBRTtZQUM3QixPQUFPLElBQUksZ0JBQWdCLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUMsQ0FBQztTQUMzRDtJQUNILENBQUM7SUFFRCxhQUFhLENBQUMsSUFBZTtRQUMzQixJQUFJLElBQUksWUFBWSxnQkFBZ0IsRUFBRTtZQUNwQyxPQUFPLElBQUksQ0FBQyxFQUFFLEtBQUssSUFBSSxDQUFDLEVBQUUsQ0FBQztTQUM1QjtRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTGlua01vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2xpbmsubW9kZWwnO1xuaW1wb3J0IHsgUG9ydE1vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3BvcnQubW9kZWwnO1xuaW1wb3J0IHsgSGFzaE1hcCB9IGZyb20gJy4uLy4uL3V0aWxzL3R5cGVzJztcbmltcG9ydCB7IERlZmF1bHRMaW5rTW9kZWwgfSBmcm9tICcuL2RlZmF1bHQtbGluay5tb2RlbCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGVmYXVsdFBvcnRNb2RlbENvbmZpZyB7XG4gIGlkPzogc3RyaW5nO1xuICBpc0lucHV0PzogYm9vbGVhbjtcbiAgbmFtZT86IHN0cmluZztcbiAgdHlwZT86IHN0cmluZztcbiAgbGFiZWw/OiBzdHJpbmc7XG4gIGxpbmtUeXBlPzogc3RyaW5nO1xuICBtYXhpbXVtTGlua3M/OiBudW1iZXI7XG59XG5cbmV4cG9ydCBjbGFzcyBEZWZhdWx0UG9ydE1vZGVsIGV4dGVuZHMgUG9ydE1vZGVsIHtcbiAgaW46IGJvb2xlYW47XG4gIGxhYmVsOiBzdHJpbmc7XG4gIGxpbmtzOiBIYXNoTWFwPGFueT47XG5cbiAgY29uc3RydWN0b3Ioe1xuICAgIGlzSW5wdXQgPSB0cnVlLFxuICAgIG5hbWUgPSAncG9ydCcsXG4gICAgdHlwZSA9ICdkZWZhdWx0JyxcbiAgICBpZCA9IG51bGwsXG4gICAgbGFiZWwgPSBudWxsLFxuICAgIGxpbmtUeXBlID0gJ2RlZmF1bHQnLFxuICAgIG1heGltdW1MaW5rcyA9IG51bGxcbiAgfTogRGVmYXVsdFBvcnRNb2RlbENvbmZpZyA9IHt9KSB7XG4gICAgc3VwZXIobmFtZSwgdHlwZSwgaWQsIG51bGwsIGxpbmtUeXBlKTtcbiAgICB0aGlzLmluID0gaXNJbnB1dDtcbiAgICB0aGlzLmxhYmVsID0gbGFiZWwgfHwgbmFtZTtcblxuICAgIGlmICh0aGlzLmluKSB7XG4gICAgICB0aGlzLnNldENhbkNyZWF0ZUxpbmtzKGZhbHNlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zZXRNYXhpbXVtTGlua3MobWF4aW11bUxpbmtzKTtcbiAgICAgIHRoaXMuc2V0TWFnbmV0aWMoZmFsc2UpO1xuICAgIH1cbiAgfVxuXG4gIGxpbmsocG9ydDogUG9ydE1vZGVsKTogTGlua01vZGVsIHtcbiAgICBpZiAoc3VwZXIuZ2V0Q2FuQ3JlYXRlTGlua3MoKSkge1xuICAgICAgY29uc3QgbGluayA9IG5ldyBEZWZhdWx0TGlua01vZGVsKHsgdHlwZTogdGhpcy5nZXRMaW5rVHlwZSgpIH0pO1xuICAgICAgbGluay5zZXRTb3VyY2VQb3J0KHRoaXMpO1xuICAgICAgbGluay5zZXRUYXJnZXRQb3J0KHBvcnQpO1xuICAgICAgcmV0dXJuIGxpbms7XG4gICAgfVxuXG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBjcmVhdGVMaW5rTW9kZWwoKSB7XG4gICAgaWYgKHN1cGVyLmdldENhbkNyZWF0ZUxpbmtzKCkpIHtcbiAgICAgIHJldHVybiBuZXcgRGVmYXVsdExpbmtNb2RlbCh7IHR5cGU6IHRoaXMuZ2V0TGlua1R5cGUoKSB9KTtcbiAgICB9XG4gIH1cblxuICBjYW5MaW5rVG9Qb3J0KHBvcnQ6IFBvcnRNb2RlbCk6IGJvb2xlYW4ge1xuICAgIGlmIChwb3J0IGluc3RhbmNlb2YgRGVmYXVsdFBvcnRNb2RlbCkge1xuICAgICAgcmV0dXJuIHRoaXMuaW4gIT09IHBvcnQuaW47XG4gICAgfVxuICAgIHJldHVybiB0cnVlO1xuICB9XG59XG4iXX0=