ngx-diagrams
Version:
> Light Weight, Modular, Typed Diagram Engine for Angular
35 lines • 4.41 kB
JavaScript
import { LinkModel } from '../../models/link.model';
import { createValueState } from '../../state/state';
export class DefaultLinkModel extends LinkModel {
constructor({ type = 'default', id, logPrefix = '[DefaultLink]' } = {}) {
super(type, id, logPrefix);
this.width$ = createValueState(3, this.entityPipe('width'));
this.color$ = createValueState('rgba(255, 255, 255, 0.5)', this.entityPipe('color'));
this.curvyness$ = createValueState(50, this.entityPipe('curvyness'));
}
setWidth(width) {
this.width$.set(width).emit();
}
setColor(color) {
this.color$.set(color).emit();
}
selectWidth() {
return this.width$.value$;
}
selectColor() {
return this.color$.value$;
}
setCurvyness(curvyness) {
this.curvyness$.set(curvyness).emit();
}
get color() {
return this.color$.value;
}
get width() {
return this.width$.value;
}
get curvyness() {
return this.curvyness$.value;
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdC1saW5rLm1vZGVsLmpzIiwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uL2xpYnMvbmd4LWRpYWdyYW1zL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9kZWZhdWx0cy9tb2RlbHMvZGVmYXVsdC1saW5rLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUVyRCxNQUFNLE9BQU8sZ0JBQWlCLFNBQVEsU0FBUztJQUs3QyxZQUFZLEVBQ1YsSUFBSSxHQUFHLFNBQVMsRUFDaEIsRUFBRSxFQUNGLFNBQVMsR0FBRyxlQUFlLEtBQzJCLEVBQUU7UUFDeEQsS0FBSyxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFUN0IsV0FBTSxHQUFHLGdCQUFnQixDQUFTLENBQUMsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7UUFDL0QsV0FBTSxHQUFHLGdCQUFnQixDQUFTLDBCQUEwQixFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztRQUN4RixlQUFVLEdBQUcsZ0JBQWdCLENBQVMsRUFBRSxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztJQVF4RSxDQUFDO0lBRUQsUUFBUSxDQUFDLEtBQWE7UUFDcEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDaEMsQ0FBQztJQUVELFFBQVEsQ0FBQyxLQUFhO1FBQ3BCLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ2hDLENBQUM7SUFFRCxXQUFXO1FBQ1QsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQztJQUM1QixDQUFDO0lBRUQsV0FBVztRQUNULE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUM7SUFDNUIsQ0FBQztJQUVELFlBQVksQ0FBQyxTQUFpQjtRQUM1QixJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN4QyxDQUFDO0lBRUQsSUFBSSxLQUFLO1FBQ1AsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQztJQUMzQixDQUFDO0lBRUQsSUFBSSxLQUFLO1FBQ1AsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQztJQUMzQixDQUFDO0lBRUQsSUFBSSxTQUFTO1FBQ1gsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQztJQUMvQixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBMaW5rTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvbGluay5tb2RlbCc7XG5pbXBvcnQgeyBjcmVhdGVWYWx1ZVN0YXRlIH0gZnJvbSAnLi4vLi4vc3RhdGUvc3RhdGUnO1xuXG5leHBvcnQgY2xhc3MgRGVmYXVsdExpbmtNb2RlbCBleHRlbmRzIExpbmtNb2RlbCB7XG4gIHdpZHRoJCA9IGNyZWF0ZVZhbHVlU3RhdGU8bnVtYmVyPigzLCB0aGlzLmVudGl0eVBpcGUoJ3dpZHRoJykpO1xuICBjb2xvciQgPSBjcmVhdGVWYWx1ZVN0YXRlPHN0cmluZz4oJ3JnYmEoMjU1LCAyNTUsIDI1NSwgMC41KScsIHRoaXMuZW50aXR5UGlwZSgnY29sb3InKSk7XG4gIGN1cnZ5bmVzcyQgPSBjcmVhdGVWYWx1ZVN0YXRlPG51bWJlcj4oNTAsIHRoaXMuZW50aXR5UGlwZSgnY3VydnluZXNzJykpO1xuXG4gIGNvbnN0cnVjdG9yKHtcbiAgICB0eXBlID0gJ2RlZmF1bHQnLFxuICAgIGlkLFxuICAgIGxvZ1ByZWZpeCA9ICdbRGVmYXVsdExpbmtdJ1xuICB9OiB7IHR5cGU/OiBzdHJpbmc7IGlkPzogc3RyaW5nOyBsb2dQcmVmaXg/OiBzdHJpbmcgfSA9IHt9KSB7XG4gICAgc3VwZXIodHlwZSwgaWQsIGxvZ1ByZWZpeCk7XG4gIH1cblxuICBzZXRXaWR0aCh3aWR0aDogbnVtYmVyKSB7XG4gICAgdGhpcy53aWR0aCQuc2V0KHdpZHRoKS5lbWl0KCk7XG4gIH1cblxuICBzZXRDb2xvcihjb2xvcjogc3RyaW5nKSB7XG4gICAgdGhpcy5jb2xvciQuc2V0KGNvbG9yKS5lbWl0KCk7XG4gIH1cblxuICBzZWxlY3RXaWR0aCgpOiBPYnNlcnZhYmxlPG51bWJlcj4ge1xuICAgIHJldHVybiB0aGlzLndpZHRoJC52YWx1ZSQ7XG4gIH1cblxuICBzZWxlY3RDb2xvcigpOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xuICAgIHJldHVybiB0aGlzLmNvbG9yJC52YWx1ZSQ7XG4gIH1cblxuICBzZXRDdXJ2eW5lc3MoY3VydnluZXNzOiBudW1iZXIpIHtcbiAgICB0aGlzLmN1cnZ5bmVzcyQuc2V0KGN1cnZ5bmVzcykuZW1pdCgpO1xuICB9XG5cbiAgZ2V0IGNvbG9yKCkge1xuICAgIHJldHVybiB0aGlzLmNvbG9yJC52YWx1ZTtcbiAgfVxuXG4gIGdldCB3aWR0aCgpIHtcbiAgICByZXR1cm4gdGhpcy53aWR0aCQudmFsdWU7XG4gIH1cblxuICBnZXQgY3VydnluZXNzKCkge1xuICAgIHJldHVybiB0aGlzLmN1cnZ5bmVzcyQudmFsdWU7XG4gIH1cbn1cbiJdfQ==