UNPKG

pdbe-molstar-3dbionotes

Version:
56 lines 2.57 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.CustomEvents = void 0; var loci_details_1 = require("./loci-details"); var CustomEvents; (function (CustomEvents) { function create(eventTypeArr) { var eventObj = {}; for (var ei = 0, el = eventTypeArr.length; ei < el; ei++) { var eventType = eventTypeArr[ei]; var event_1 = void 0; if (typeof MouseEvent == 'function') { // current standard event_1 = new MouseEvent(eventType, { 'view': window, 'bubbles': true, 'cancelable': true }); } else if (typeof document.createEvent == 'function') { // older standard event_1 = document.createEvent('MouseEvents'); event_1.initEvent(eventType, true /* bubbles */, true /* cancelable */); } eventObj[eventType] = event_1; } ; return eventObj; } function dispatchCustomEvent(event, eventData, targetElement) { if (typeof eventData !== 'undefined') { eventData['residueNumber'] = eventData.seq_id; event['eventData'] = eventData; event.eventData.residueNumber = eventData.seq_id; targetElement.dispatchEvent(event); } } function add(plugin, targetElement) { var pdbevents = create(['PDB.molstar.click', 'PDB.molstar.mouseover', 'PDB.molstar.mouseout']); plugin.behaviors.interaction.click.subscribe(function (e) { if (e.button === 1 && e.current && e.current.loci.kind !== 'empty-loci') { var evData = loci_details_1.lociDetails(e.current.loci); if (evData) dispatchCustomEvent(pdbevents['PDB.molstar.click'], evData, targetElement); } }); plugin.behaviors.interaction.hover.subscribe(function (e) { if (e.current && e.current.loci && e.current.loci.kind !== 'empty-loci') { var evData = loci_details_1.lociDetails(e.current.loci); if (evData) dispatchCustomEvent(pdbevents['PDB.molstar.mouseover'], evData, targetElement); } if (e.current && e.current.loci && e.current.loci.kind === 'empty-loci') { dispatchCustomEvent(pdbevents['PDB.molstar.mouseout'], {}, targetElement); } }); } CustomEvents.add = add; })(CustomEvents = exports.CustomEvents || (exports.CustomEvents = {})); //# sourceMappingURL=custom-events.js.map