@rcsb/rcsb-saguaro
Version:
RCSB 1D Feature Viewer
53 lines (52 loc) • 1.91 kB
JavaScript
import { Subject } from 'rxjs';
/**rxjs Event Handler Object. It allows objects to subscribe methods and then, get(send) events to(from) other objects*/
export class RcsbFvContextManager {
constructor() {
this.conditionalFlag = new Map();
this.subject = new Subject();
}
/**Call other subscribed methods
* @param obj Event Data Structure Interface
* */
next(obj) {
this.subject.next(obj);
}
/**Subscribe method
* @return Subscription
* */
subscribe(f) {
return this.subject.subscribe(f);
}
/**Unsubscribe all methods*/
unsubscribeAll() {
this.subject.unsubscribe();
}
getCondition(flag) {
var _a;
return (_a = this.conditionalFlag.get(flag)) !== null && _a !== void 0 ? _a : false;
}
setCondition(flag, value) {
this.conditionalFlag.set(flag, value !== null && value !== void 0 ? value : true);
}
}
export var CONDITIONAL_FLAG;
(function (CONDITIONAL_FLAG) {
CONDITIONAL_FLAG[CONDITIONAL_FLAG["STOP_MOUSE_MOVE_HOVERING_HIGHLIGHT"] = 0] = "STOP_MOUSE_MOVE_HOVERING_HIGHLIGHT";
})(CONDITIONAL_FLAG || (CONDITIONAL_FLAG = {}));
/**Event types*/
export var EventType;
(function (EventType) {
EventType["SELECTION"] = "eventTypeSelection";
EventType["SCALE"] = "eventTypeScale";
EventType["RESET"] = "eventTypeReset";
EventType["TRACK_HIDE"] = "eventTypeHide";
EventType["UPDATE_BOARD_CONFIG"] = "updateBoardConfig";
EventType["DOMAIN_VIEW"] = "domainView";
EventType["BOARD_HOVER"] = "boardHover";
EventType["ROW_READY"] = "rowReady";
EventType["FRACTION_COMPLETED"] = "fractionComplete";
EventType["BOARD_READY"] = "boardReady";
EventType["SET_SELECTION"] = "eventTypeSetSelection";
EventType["ADD_SELECTION"] = "eventTypeAddSelection";
EventType["ROW_HOVER"] = "rowHover";
})(EventType || (EventType = {}));