UNPKG

@bokeh/bokehjs

Version:

Interactive, novel data visualization

59 lines 2.05 kB
import { Model } from "../../model"; export class SelectionPolicy extends Model { static __name__ = "SelectionPolicy"; do_selection(hit_test_result, source, final, mode) { if (hit_test_result == null) { return false; } else { source.selected.update(hit_test_result, final, mode); source._select.emit(); return !source.selected.is_empty(); } } } export class IntersectRenderers extends SelectionPolicy { static __name__ = "IntersectRenderers"; hit_test(geometry, renderer_views) { const hit_test_result_renderers = []; for (const r of renderer_views) { const result = r.hit_test(geometry); if (result != null) { hit_test_result_renderers.push(result); } } if (hit_test_result_renderers.length > 0) { const hit_test_result = hit_test_result_renderers[0]; for (const hit_test_result_other of hit_test_result_renderers) { hit_test_result.update_through_intersection(hit_test_result_other); } return hit_test_result; } else { return null; } } } export class UnionRenderers extends SelectionPolicy { static __name__ = "UnionRenderers"; hit_test(geometry, renderer_views) { const hit_test_result_renderers = []; for (const r of renderer_views) { const result = r.hit_test(geometry); if (result != null) { hit_test_result_renderers.push(result); } } if (hit_test_result_renderers.length > 0) { const hit_test_result = hit_test_result_renderers[0]; for (const hit_test_result_other of hit_test_result_renderers) { hit_test_result.update_through_union(hit_test_result_other); } return hit_test_result; } else { return null; } } } //# sourceMappingURL=interaction_policy.js.map