UNPKG

@quartic/bokehjs

Version:

Interactive, novel data visualization

328 lines (327 loc) 10.8 kB
"use strict"; var __extends = (this && this.__extends) || (function () { var extendStatics = Object.setPrototypeOf || ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; return function (d, b) { extendStatics(d, b); function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; })(); var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; return c > 3 && r && Object.defineProperty(target, key, r), r; }; Object.defineProperty(exports, "__esModule", { value: true }); var logging_1 = require("./logging"); var object_1 = require("./util/object"); var event_classes = {}; function register_event_class(event_name) { return function (event_cls) { event_cls.prototype.event_name = event_name; event_classes[event_name] = event_cls; }; } exports.register_event_class = register_event_class; function register_with_event(event_cls) { var models = []; for (var _i = 1; _i < arguments.length; _i++) { models[_i - 1] = arguments[_i]; } var applicable_models = event_cls.prototype.applicable_models.concat(models); event_cls.prototype.applicable_models = applicable_models; } exports.register_with_event = register_with_event; var BokehEvent = (function () { function BokehEvent(options) { if (options === void 0) { options = {}; } this._options = options; if (options.model_id) { this.model_id = options.model_id; } } BokehEvent.prototype.set_model_id = function (id) { this._options.model_id = id; this.model_id = id; return this; }; BokehEvent.prototype.is_applicable_to = function (obj) { return this.applicable_models.some(function (model) { return obj instanceof model; }); }; BokehEvent.event_class = function (e) { // Given an event with a type attribute matching the event_name, // return the appropriate BokehEvent class if (e.type) { return event_classes[e.type]; } else { logging_1.logger.warn('BokehEvent.event_class required events with a string type attribute'); } }; BokehEvent.prototype.toJSON = function () { return { event_name: this.event_name, event_values: object_1.clone(this._options), }; }; BokehEvent.prototype._customize_event = function (model) { return this; }; return BokehEvent; }()); exports.BokehEvent = BokehEvent; BokehEvent.prototype.applicable_models = []; var ButtonClick = (function (_super) { __extends(ButtonClick, _super); function ButtonClick() { return _super !== null && _super.apply(this, arguments) || this; } return ButtonClick; }(BokehEvent)); ButtonClick = __decorate([ register_event_class("button_click") ], ButtonClick); exports.ButtonClick = ButtonClick; // A UIEvent is an event originating on a PlotCanvas this includes // DOM events such as keystrokes as well as hammer events and LOD events. var UIEvent = (function (_super) { __extends(UIEvent, _super); function UIEvent() { return _super !== null && _super.apply(this, arguments) || this; } return UIEvent; }(BokehEvent)); exports.UIEvent = UIEvent; var LODStart = (function (_super) { __extends(LODStart, _super); function LODStart() { return _super !== null && _super.apply(this, arguments) || this; } return LODStart; }(UIEvent)); LODStart = __decorate([ register_event_class("lodstart") ], LODStart); exports.LODStart = LODStart; var LODEnd = (function (_super) { __extends(LODEnd, _super); function LODEnd() { return _super !== null && _super.apply(this, arguments) || this; } return LODEnd; }(UIEvent)); LODEnd = __decorate([ register_event_class("lodend") ], LODEnd); exports.LODEnd = LODEnd; var PointEvent = (function (_super) { __extends(PointEvent, _super); function PointEvent(options) { var _this = _super.call(this, options) || this; _this.sx = options.sx; _this.sy = options.sy; _this.x = null; _this.y = null; return _this; } PointEvent.from_event = function (e, model_id) { if (model_id === void 0) { model_id = null; } return new this({ sx: e.bokeh['sx'], sy: e.bokeh['sy'], model_id: model_id }); }; PointEvent.prototype._customize_event = function (plot) { var xmapper = plot.plot_canvas.frame.x_mappers['default']; var ymapper = plot.plot_canvas.frame.y_mappers['default']; this.x = xmapper.map_from_target(plot.plot_canvas.canvas.sx_to_vx(this.sx)); this.y = ymapper.map_from_target(plot.plot_canvas.canvas.sy_to_vy(this.sy)); this._options['x'] = this.x; this._options['y'] = this.y; return this; }; return PointEvent; }(UIEvent)); exports.PointEvent = PointEvent; var Pan = (function (_super) { __extends(Pan, _super); function Pan(options) { if (options === void 0) { options = {}; } var _this = _super.call(this, options) || this; _this.delta_x = options.delta_x; _this.delta_y = options.delta_y; return _this; } Pan.from_event = function (e, model_id) { if (model_id === void 0) { model_id = null; } return new this({ sx: e.bokeh['sx'], sy: e.bokeh['sy'], delta_x: e.deltaX, delta_y: e.deltaY, direction: e.direction, model_id: model_id }); }; return Pan; }(PointEvent)); Pan = __decorate([ register_event_class("pan") ], Pan); exports.Pan = Pan; var Pinch = (function (_super) { __extends(Pinch, _super); function Pinch(options) { if (options === void 0) { options = {}; } var _this = _super.call(this, options) || this; _this.scale = options.scale; return _this; } Pinch.from_event = function (e, model_id) { if (model_id === void 0) { model_id = null; } return new this({ sx: e.bokeh['sx'], sy: e.bokeh['sy'], scale: e.scale, model_id: model_id, }); }; return Pinch; }(PointEvent)); Pinch = __decorate([ register_event_class("pinch") ], Pinch); exports.Pinch = Pinch; var MouseWheel = (function (_super) { __extends(MouseWheel, _super); function MouseWheel(options) { if (options === void 0) { options = {}; } var _this = _super.call(this, options) || this; _this.delta = options.delta; return _this; } MouseWheel.from_event = function (e, model_id) { if (model_id === void 0) { model_id = null; } return new this({ sx: e.bokeh['sx'], sy: e.bokeh['sy'], delta: e.delta, model_id: model_id, }); }; return MouseWheel; }(PointEvent)); MouseWheel = __decorate([ register_event_class("wheel") ], MouseWheel); exports.MouseWheel = MouseWheel; var MouseMove = (function (_super) { __extends(MouseMove, _super); function MouseMove() { return _super !== null && _super.apply(this, arguments) || this; } return MouseMove; }(PointEvent)); MouseMove = __decorate([ register_event_class("mousemove") ], MouseMove); exports.MouseMove = MouseMove; var MouseEnter = (function (_super) { __extends(MouseEnter, _super); function MouseEnter() { return _super !== null && _super.apply(this, arguments) || this; } return MouseEnter; }(PointEvent)); MouseEnter = __decorate([ register_event_class("mouseenter") ], MouseEnter); exports.MouseEnter = MouseEnter; var MouseLeave = (function (_super) { __extends(MouseLeave, _super); function MouseLeave() { return _super !== null && _super.apply(this, arguments) || this; } return MouseLeave; }(PointEvent)); MouseLeave = __decorate([ register_event_class("mouseleave") ], MouseLeave); exports.MouseLeave = MouseLeave; var Tap = (function (_super) { __extends(Tap, _super); function Tap() { return _super !== null && _super.apply(this, arguments) || this; } return Tap; }(PointEvent)); Tap = __decorate([ register_event_class("tap") ], Tap); exports.Tap = Tap; var DoubleTap = (function (_super) { __extends(DoubleTap, _super); function DoubleTap() { return _super !== null && _super.apply(this, arguments) || this; } return DoubleTap; }(PointEvent)); DoubleTap = __decorate([ register_event_class("doubletap") ], DoubleTap); exports.DoubleTap = DoubleTap; var Press = (function (_super) { __extends(Press, _super); function Press() { return _super !== null && _super.apply(this, arguments) || this; } return Press; }(PointEvent)); Press = __decorate([ register_event_class("press") ], Press); exports.Press = Press; var PanStart = (function (_super) { __extends(PanStart, _super); function PanStart() { return _super !== null && _super.apply(this, arguments) || this; } return PanStart; }(PointEvent)); PanStart = __decorate([ register_event_class("panstart") ], PanStart); exports.PanStart = PanStart; var PanEnd = (function (_super) { __extends(PanEnd, _super); function PanEnd() { return _super !== null && _super.apply(this, arguments) || this; } return PanEnd; }(PointEvent)); PanEnd = __decorate([ register_event_class("panend") ], PanEnd); exports.PanEnd = PanEnd; var PinchStart = (function (_super) { __extends(PinchStart, _super); function PinchStart() { return _super !== null && _super.apply(this, arguments) || this; } return PinchStart; }(PointEvent)); PinchStart = __decorate([ register_event_class("pinchstart") ], PinchStart); exports.PinchStart = PinchStart; var PinchEnd = (function (_super) { __extends(PinchEnd, _super); function PinchEnd() { return _super !== null && _super.apply(this, arguments) || this; } return PinchEnd; }(PointEvent)); PinchEnd = __decorate([ register_event_class("pinchend") ], PinchEnd); exports.PinchEnd = PinchEnd;