ngx-diagrams
Version:
> Light Weight, Modular, Typed Diagram Engine for Angular
34 lines • 4.66 kB
JavaScript
import { createValueState } from '../state/state';
import { BaseModel } from './base.model';
export class LabelModel extends BaseModel {
constructor(type, id, logPrefix = '[Label]') {
super(type, id, logPrefix);
this.coords$ = createValueState({ x: 0, y: 0 }, this.entityPipe('coords'));
this.rotation$ = createValueState(0, this.entityPipe('rotation'));
}
serialize() {
return Object.assign(Object.assign({}, super.serialize()), { type: this.getType(), rotation: this.getRotation(), coords: this.getCoords() });
}
getRotation() {
return this.rotation$.value;
}
getCoords() {
return this.coords$.value;
}
destroy() {
super.destroy();
}
setRotation(angle) {
this.rotation$.set(angle).emit();
}
selectRotation() {
return this.rotation$.value$;
}
setCoords(newCoords) {
this.coords$.set(Object.assign(Object.assign({}, this.coords$.value), newCoords)).emit();
}
selectCoords() {
return this.coords$.value$;
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGFiZWwubW9kZWwuanMiLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vbGlicy9uZ3gtZGlhZ3JhbXMvc3JjLyIsInNvdXJjZXMiOlsibGliL21vZGVscy9sYWJlbC5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBR3pDLE1BQU0sT0FBTyxVQUFXLFNBQVEsU0FBb0I7SUFJbEQsWUFBWSxJQUFhLEVBQUUsRUFBVyxFQUFFLFNBQVMsR0FBRyxTQUFTO1FBQzNELEtBQUssQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBSm5CLFlBQU8sR0FBRyxnQkFBZ0IsQ0FBUyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztRQUM5RSxjQUFTLEdBQUcsZ0JBQWdCLENBQVMsQ0FBQyxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztJQUkvRSxDQUFDO0lBRUQsU0FBUztRQUNQLHVDQUNLLEtBQUssQ0FBQyxTQUFTLEVBQUUsS0FDcEIsSUFBSSxFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUUsRUFDcEIsUUFBUSxFQUFFLElBQUksQ0FBQyxXQUFXLEVBQUUsRUFDNUIsTUFBTSxFQUFFLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFDeEI7SUFDSixDQUFDO0lBRUQsV0FBVztRQUNULE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUM7SUFDOUIsQ0FBQztJQUVELFNBQVM7UUFDUCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDO0lBQzVCLENBQUM7SUFFRCxPQUFPO1FBQ0wsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ2xCLENBQUM7SUFFRCxXQUFXLENBQUMsS0FBYTtRQUN2QixJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNuQyxDQUFDO0lBRUQsY0FBYztRQUNaLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUM7SUFDL0IsQ0FBQztJQUVELFNBQVMsQ0FBQyxTQUEwQjtRQUNsQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsaUNBQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEdBQUssU0FBUyxFQUFHLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDbkUsQ0FBQztJQUVELFlBQVk7UUFDVixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDO0lBQzdCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IENvb3JkcyB9IGZyb20gJy4uL2ludGVyZmFjZXMvY29vcmRzLmludGVyZmFjZSc7XG5pbXBvcnQgeyBTZXJpYWxpemVkTGFiZWxNb2RlbCB9IGZyb20gJy4uL2ludGVyZmFjZXMvc2VyaWFsaXphdGlvbi5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgY3JlYXRlVmFsdWVTdGF0ZSB9IGZyb20gJy4uL3N0YXRlL3N0YXRlJztcbmltcG9ydCB7IEJhc2VNb2RlbCB9IGZyb20gJy4vYmFzZS5tb2RlbCc7XG5pbXBvcnQgeyBMaW5rTW9kZWwgfSBmcm9tICcuL2xpbmsubW9kZWwnO1xuXG5leHBvcnQgY2xhc3MgTGFiZWxNb2RlbCBleHRlbmRzIEJhc2VNb2RlbDxMaW5rTW9kZWw+IHtcbiAgcHJvdGVjdGVkIGNvb3JkcyQgPSBjcmVhdGVWYWx1ZVN0YXRlPENvb3Jkcz4oeyB4OiAwLCB5OiAwIH0sIHRoaXMuZW50aXR5UGlwZSgnY29vcmRzJykpO1xuICBwcm90ZWN0ZWQgcm90YXRpb24kID0gY3JlYXRlVmFsdWVTdGF0ZTxudW1iZXI+KDAsIHRoaXMuZW50aXR5UGlwZSgncm90YXRpb24nKSk7XG5cbiAgY29uc3RydWN0b3IodHlwZT86IHN0cmluZywgaWQ/OiBzdHJpbmcsIGxvZ1ByZWZpeCA9ICdbTGFiZWxdJykge1xuICAgIHN1cGVyKHR5cGUsIGlkLCBsb2dQcmVmaXgpO1xuICB9XG5cbiAgc2VyaWFsaXplKCk6IFNlcmlhbGl6ZWRMYWJlbE1vZGVsIHtcbiAgICByZXR1cm4ge1xuICAgICAgLi4uc3VwZXIuc2VyaWFsaXplKCksXG4gICAgICB0eXBlOiB0aGlzLmdldFR5cGUoKSxcbiAgICAgIHJvdGF0aW9uOiB0aGlzLmdldFJvdGF0aW9uKCksXG4gICAgICBjb29yZHM6IHRoaXMuZ2V0Q29vcmRzKClcbiAgICB9O1xuICB9XG5cbiAgZ2V0Um90YXRpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMucm90YXRpb24kLnZhbHVlO1xuICB9XG5cbiAgZ2V0Q29vcmRzKCkge1xuICAgIHJldHVybiB0aGlzLmNvb3JkcyQudmFsdWU7XG4gIH1cblxuICBkZXN0cm95KCkge1xuICAgIHN1cGVyLmRlc3Ryb3koKTtcbiAgfVxuXG4gIHNldFJvdGF0aW9uKGFuZ2xlOiBudW1iZXIpIHtcbiAgICB0aGlzLnJvdGF0aW9uJC5zZXQoYW5nbGUpLmVtaXQoKTtcbiAgfVxuXG4gIHNlbGVjdFJvdGF0aW9uKCk6IE9ic2VydmFibGU8bnVtYmVyPiB7XG4gICAgcmV0dXJuIHRoaXMucm90YXRpb24kLnZhbHVlJDtcbiAgfVxuXG4gIHNldENvb3JkcyhuZXdDb29yZHM6IFBhcnRpYWw8Q29vcmRzPikge1xuICAgIHRoaXMuY29vcmRzJC5zZXQoeyAuLi50aGlzLmNvb3JkcyQudmFsdWUsIC4uLm5ld0Nvb3JkcyB9KS5lbWl0KCk7XG4gIH1cblxuICBzZWxlY3RDb29yZHMoKTogT2JzZXJ2YWJsZTxDb29yZHM+IHtcbiAgICByZXR1cm4gdGhpcy5jb29yZHMkLnZhbHVlJDtcbiAgfVxufVxuIl19