ngx-diagrams
Version:
This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 7.2.0.
217 lines • 12.8 kB
JavaScript
/**
* @fileoverview added by tsickle
* Generated from: lib/models/port.model.ts
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import { BaseModel } from './base.model';
import { BehaviorSubject } from 'rxjs';
export class PortModel extends BaseModel {
/**
* @param {?} name
* @param {?=} type
* @param {?=} id
* @param {?=} maximumLinks
* @param {?=} linkType
*/
constructor(name, type, id, maximumLinks, linkType) {
super(type, id);
this.name = name;
this.links$ = new BehaviorSubject({});
this.maximumLinks = maximumLinks;
this.x$ = new BehaviorSubject(0);
this.y$ = new BehaviorSubject(0);
this.height$ = new BehaviorSubject(0);
this.width$ = new BehaviorSubject(0);
this.linkType = linkType;
}
/**
* @return {?}
*/
getNode() {
return this.getParent();
}
/**
* @return {?}
*/
getName() {
return this.name;
}
/**
* @return {?}
*/
selectX() {
return this.x$.asObservable();
}
/**
* @return {?}
*/
selectY() {
return this.y$.asObservable();
}
/**
* @return {?}
*/
getY() {
return this.y$.getValue();
}
/**
* @return {?}
*/
getX() {
return this.x$.getValue();
}
/**
* @return {?}
*/
getHeight() {
return this.height$.getValue();
}
/**
* @return {?}
*/
getWidth() {
return this.width$.getValue();
}
/**
* @return {?}
*/
getMaximumLinks() {
return this.maximumLinks;
}
/**
* @param {?} maximumLinks
* @return {?}
*/
setMaximumLinks(maximumLinks) {
this.maximumLinks = maximumLinks;
}
/**
* @return {?}
*/
getLinkType() {
return this.linkType;
}
/**
* @param {?} type
* @return {?}
*/
setLinkType(type) {
this.linkType = type;
}
/**
* @param {?} link
* @return {?}
*/
removeLink(link) {
/** @type {?} */
const links = this.links$.getValue();
delete links[link.id];
this.links$.next(Object.assign({}, links));
}
/**
* @param {?} link
* @return {?}
*/
addLink(link) {
this.links$.next(Object.assign({}, this.links$.value, { [link.id]: link }));
}
/**
* @return {?}
*/
getLinks() {
return this.links$.getValue();
}
/**
* @return {?}
*/
selectLinks() {
return this.links$.asObservable();
}
/**
* @param {?} __0
* @return {?}
*/
updateCoords({ x, y, width, height }) {
this.x$.next(x);
this.y$.next(y);
this.width$.next(width);
this.height$.next(height);
}
/**
* @param {?} port
* @return {?}
*/
canLinkToPort(port) {
return true;
}
/**
* @return {?}
*/
isLocked() {
return super.getLocked();
}
/**
* @return {?}
*/
createLinkModel() {
/** @type {?} */
const numberOfLinks = Object.keys(this.links$.getValue()).length;
if (this.maximumLinks === 1 && numberOfLinks >= 1) {
/** @type {?} */
const linkToRemove = Object.values(this.links$.getValue())[0];
linkToRemove.destroy();
return null;
}
else if (numberOfLinks >= this.maximumLinks) {
// for the moment we will remove the first link by default
/** @type {?} */
const linkToRemove = Object.values(this.links$.getValue())[0];
linkToRemove.destroy();
return null;
}
return null;
}
}
if (false) {
/**
* @type {?}
* @private
*/
PortModel.prototype.name;
/**
* @type {?}
* @private
*/
PortModel.prototype.links$;
/**
* @type {?}
* @private
*/
PortModel.prototype.maximumLinks;
/**
* @type {?}
* @private
*/
PortModel.prototype.linkType;
/**
* @type {?}
* @private
*/
PortModel.prototype.x$;
/**
* @type {?}
* @private
*/
PortModel.prototype.y$;
/**
* @type {?}
* @private
*/
PortModel.prototype.width$;
/**
* @type {?}
* @private
*/
PortModel.prototype.height$;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9ydC5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25neC1kaWFncmFtcy8iLCJzb3VyY2VzIjpbImxpYi9tb2RlbHMvcG9ydC5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFHekMsT0FBTyxFQUFFLGVBQWUsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUVuRCxNQUFNLE9BQU8sU0FBVSxTQUFRLFNBQW9COzs7Ozs7OztJQVdsRCxZQUFZLElBQVksRUFBRSxJQUFhLEVBQUUsRUFBVyxFQUFFLFlBQXFCLEVBQUUsUUFBaUI7UUFDN0YsS0FBSyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNoQixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztRQUNqQixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksZUFBZSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3RDLElBQUksQ0FBQyxZQUFZLEdBQUcsWUFBWSxDQUFDO1FBQ2pDLElBQUksQ0FBQyxFQUFFLEdBQUcsSUFBSSxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDakMsSUFBSSxDQUFDLEVBQUUsR0FBRyxJQUFJLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNqQyxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3RDLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDckMsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7SUFDMUIsQ0FBQzs7OztJQUVELE9BQU87UUFDTixPQUFPLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUN6QixDQUFDOzs7O0lBRUQsT0FBTztRQUNOLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQztJQUNsQixDQUFDOzs7O0lBRUQsT0FBTztRQUNOLE9BQU8sSUFBSSxDQUFD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SSxhQUFhLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRTs7O2tCQUV4QyxZQUFZLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzdELFlBQVksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUN2QixPQUFPLElBQUksQ0FBQztTQUNaO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDYixDQUFDO0NBQ0Q7Ozs7OztJQXJIQSx5QkFBcUI7Ozs7O0lBQ3JCLDJCQUE2RDs7Ozs7SUFDN0QsaUNBQTZCOzs7OztJQUM3Qiw2QkFBeUI7Ozs7O0lBRXpCLHVCQUFvQzs7Ozs7SUFDcEMsdUJBQW9DOzs7OztJQUNwQywyQkFBd0M7Ozs7O0lBQ3hDLDRCQUF5QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJhc2VNb2RlbCB9IGZyb20gJy4vYmFzZS5tb2RlbCc7XG5pbXBvcnQgeyBOb2RlTW9kZWwgfSBmcm9tICcuL25vZGUubW9kZWwnO1xuaW1wb3J0IHsgTGlua01vZGVsIH0gZnJvbSAnLi9saW5rLm1vZGVsJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuXG5leHBvcnQgY2xhc3MgUG9ydE1vZGVsIGV4dGVuZHMgQmFzZU1vZGVsPE5vZGVNb2RlbD4ge1xuXHRwcml2YXRlIG5hbWU6IHN0cmluZztcblx0cHJpdmF0ZSBsaW5rcyQ6IEJlaGF2aW9yU3ViamVjdDx7IFtpZDogc3RyaW5nXTogTGlua01vZGVsIH0+O1xuXHRwcml2YXRlIG1heGltdW1MaW5rczogbnVtYmVyO1xuXHRwcml2YXRlIGxpbmtUeXBlOiBzdHJpbmc7XG5cblx0cHJpdmF0ZSB4JDogQmVoYXZpb3JTdWJqZWN0PG51bWJlcj47XG5cdHByaXZhdGUgeSQ6IEJlaGF2aW9yU3ViamVjdDxudW1iZXI+O1xuXHRwcml2YXRlIHdpZHRoJDogQmVoYXZpb3JTdWJqZWN0PG51bWJlcj47XG5cdHByaXZhdGUgaGVpZ2h0JDogQmVoYXZpb3JTdWJqZWN0PG51bWJlcj47XG5cblx0Y29uc3RydWN0b3IobmFtZTogc3RyaW5nLCB0eXBlPzogc3RyaW5nLCBpZD86IHN0cmluZywgbWF4aW11bUxpbmtzPzogbnVtYmVyLCBsaW5rVHlwZT86IHN0cmluZykge1xuXHRcdHN1cGVyKHR5cGUsIGlkKTtcblx0XHR0aGlzLm5hbWUgPSBuYW1lO1xuXHRcdHRoaXMubGlua3MkID0gbmV3IEJlaGF2aW9yU3ViamVjdCh7fSk7XG5cdFx0dGhpcy5tYXhpbXVtTGlua3MgPSBtYXhpbXVtTGlua3M7XG5cdFx0dGhpcy54JCA9IG5ldyBCZWhhdmlvclN1YmplY3QoMCk7XG5cdFx0dGhpcy55JCA9IG5ldyBCZWhhdmlvclN1YmplY3QoMCk7XG5cdFx0dGhpcy5oZWlnaHQkID0gbmV3IEJlaGF2aW9yU3ViamVjdCgwKTtcblx0XHR0aGlzLndpZHRoJCA9IG5ldyBCZWhhdmlvclN1YmplY3QoMCk7XG5cdFx0dGhpcy5saW5rVHlwZSA9IGxpbmtUeXBlO1xuXHR9XG5cblx0Z2V0Tm9kZSgpIHtcblx0XHRyZXR1cm4gdGhpcy5nZXRQYXJlbnQoKTtcblx0fVxuXG5cdGdldE5hbWUoKSB7XG5cdFx0cmV0dXJuIHRoaXMubmFtZTtcblx0fVxuXG5cdHNlbGVjdFgoKTogT2JzZXJ2YWJsZTxudW1iZXI+IHtcblx0XHRyZXR1cm4gdGhpcy54JC5hc09ic2VydmFibGUoKTtcblx0fVxuXG5cdHNlbGVjdFkoKTogT2JzZXJ2YWJsZTxudW1iZXI+IHtcblx0XHRyZXR1cm4gdGhpcy55JC5hc09ic2VydmFibGUoKTtcblx0fVxuXG5cdGdldFkoKSB7XG5cdFx0cmV0dXJuIHRoaXMueSQuZ2V0VmFsdWUoKTtcblx0fVxuXG5cdGdldFgoKSB7XG5cdFx0cmV0dXJuIHRoaXMueCQuZ2V0VmFsdWUoKTtcblx0fVxuXG5cdGdldEhlaWdodCgpIHtcblx0XHRyZXR1cm4gdGhpcy5oZWlnaHQkLmdldFZhbHVlKCk7XG5cdH1cblxuXHRnZXRXaWR0aCgpIHtcblx0XHRyZXR1cm4gdGhpcy53aWR0aCQuZ2V0VmFsdWUoKTtcblx0fVxuXG5cdGdldE1heGltdW1MaW5rcygpOiBudW1iZXIge1xuXHRcdHJldHVybiB0aGlzLm1heGltdW1MaW5rcztcblx0fVxuXG5cdHNldE1heGltdW1MaW5rcyhtYXhpbXVtTGlua3M6IG51bWJlcikge1xuXHRcdHRoaXMubWF4aW11bUxpbmtzID0gbWF4aW11bUxpbmtzO1xuXHR9XG5cblx0Z2V0TGlua1R5cGUoKSB7XG5cdFx0cmV0dXJuIHRoaXMubGlua1R5cGU7XG5cdH1cblxuXHRzZXRMaW5rVHlwZSh0eXBlOiBzdHJpbmcpIHtcblx0XHR0aGlzLmxpbmtUeXBlID0gdHlwZTtcblx0fVxuXG5cdHJlbW92ZUxpbmsobGluazogTGlua01vZGVsKSB7XG5cdFx0Y29uc3QgbGlua3MgPSB0aGlzLmxpbmtzJC5nZXRWYWx1ZSgpO1xuXHRcdGRlbGV0ZSBsaW5rc1tsaW5rLmlkXTtcblx0XHR0aGlzLmxpbmtzJC5uZXh0KHsgLi4ubGlua3MgfSk7XG5cdH1cblxuXHRhZGRMaW5rKGxpbms6IExpbmtNb2RlbCkge1xuXHRcdHRoaXMubGlua3MkLm5leHQoeyAuLi50aGlzLmxpbmtzJC52YWx1ZSwgW2xpbmsuaWRdOiBsaW5rIH0pO1xuXHR9XG5cblx0Z2V0TGlua3MoKTogeyBbaWQ6IHN0cmluZ106IExpbmtNb2RlbCB9IHtcblx0XHRyZXR1cm4gdGhpcy5saW5rcyQuZ2V0VmFsdWUoKTtcblx0fVxuXG5cdHNlbGVjdExpbmtzKCk6IE9ic2VydmFibGU8eyBbaWQ6IHN0cmluZ106IExpbmtNb2RlbCB9PiB7XG5cdFx0cmV0dXJuIHRoaXMubGlua3MkLmFzT2JzZXJ2YWJsZSgpO1xuXHR9XG5cblx0dXBkYXRlQ29vcmRzKHsgeCwgeSwgd2lkdGgsIGhlaWdodCB9OiB7IHg6IG51bWJlcjsgeTogbnVtYmVyOyB3aWR0aDogbnVtYmVyOyBoZWlnaHQ6IG51bWJlciB9KSB7XG5cdFx0dGhpcy54JC5uZXh0KHgpO1xuXHRcdHRoaXMueSQubmV4dCh5KTtcblx0XHR0aGlzLndpZHRoJC5uZXh0KHdpZHRoKTtcblx0XHR0aGlzLmhlaWdodCQubmV4dChoZWlnaHQpO1xuXHR9XG5cblx0Y2FuTGlua1RvUG9ydChwb3J0OiBQb3J0TW9kZWwpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gdHJ1ZTtcblx0fVxuXG5cdGlzTG9ja2VkKCkge1xuXHRcdHJldHVybiBzdXBlci5nZXRMb2NrZWQoKTtcblx0fVxuXG5cdHB1YmxpYyBjcmVhdGVMaW5rTW9kZWwoKTogTGlua01vZGVsIHwgbnVsbCB7XG5cdFx0Y29uc3QgbnVtYmVyT2ZMaW5rczogbnVtYmVyID0gT2JqZWN0LmtleXModGhpcy5saW5rcyQuZ2V0VmFsdWUoKSkubGVuZ3RoO1xuXHRcdGlmICh0aGlzLm1heGltdW1MaW5rcyA9PT0gMSAmJiBudW1iZXJPZkxpbmtzID49IDEpIHtcblx0XHRcdGNvbnN0IGxpbmtUb1JlbW92ZSA9IE9iamVjdC52YWx1ZXModGhpcy5saW5rcyQuZ2V0VmFsdWUoKSlbMF07XG5cdFx0XHRsaW5rVG9SZW1vdmUuZGVzdHJveSgpO1xuXHRcdFx0cmV0dXJuIG51bGw7XG5cdFx0fSBlbHNlIGlmIChudW1iZXJPZkxpbmtzID49IHRoaXMubWF4aW11bUxpbmtzKSB7XG5cdFx0XHQvLyBmb3IgdGhlIG1vbWVudCB3ZSB3aWxsIHJlbW92ZSB0aGUgZmlyc3QgbGluayBieSBkZWZhdWx0XG5cdFx0XHRjb25zdCBsaW5rVG9SZW1vdmUgPSBPYmplY3QudmFsdWVzKHRoaXMubGlua3MkLmdldFZhbHVlKCkpWzBdO1xuXHRcdFx0bGlua1RvUmVtb3ZlLmRlc3Ryb3koKTtcblx0XHRcdHJldHVybiBudWxsO1xuXHRcdH1cblx0XHRyZXR1cm4gbnVsbDtcblx0fVxufVxuIl19