UNPKG

@bokeh/bokehjs

Version:

Interactive, novel data visualization

49 lines 1.71 kB
import { ActionTool, ActionToolView } from "./action_tool"; import * as icons from "../../../styles/icons.css"; import { Dialog } from "../../ui/dialog"; import { Examiner, HTMLPrinter } from "../../ui/examiner"; import { HTML } from "../../dom/html"; import { build_view } from "../../../core/build_views"; import { div } from "../../../core/dom"; import pretty_css from "../../../styles/pretty.css"; export class ExamineToolView extends ActionToolView { static __name__ = "ExamineToolView"; dialog; *children() { yield* super.children(); yield this.dialog; } async lazy_initialize() { await super.lazy_initialize(); const target = this.parent.model; const printer = new HTMLPrinter(); const dialog = new Dialog({ stylesheets: [pretty_css], title: new HTML({ html: div("Examine ", printer.to_html(target)) }), content: new Examiner({ target }), visible: false, close_action: "hide", }); this.dialog = await build_view(dialog, { parent: this.parent }); } connect_signals() { super.connect_signals(); this.dialog.displayed.connect((visible) => this.model.active = visible); } doit() { this.dialog.toggle(); } } export class ExamineTool extends ActionTool { static __name__ = "ExamineTool"; constructor(attrs) { super(attrs); } static { this.prototype.default_view = ExamineToolView; this.register_alias("examine", () => new ExamineTool()); } tool_name = "Examine"; tool_icon = icons.tool_icon_settings; // TODO: better icon } //# sourceMappingURL=examine_tool.js.map