UNPKG

@rcsb/rcsb-saguaro

Version:
53 lines (52 loc) 1.91 kB
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 = {}));