/*\ title: $:/core/modules/popupper.js type: application/javascript module-type: utils Plugin that creates a $tw.utils.Popupper object prototype that manages popups in the browser \*/ (function(){ /*jslint node: true, browser: true */ /*global $tw: false */ "use strict"; /* Creates a Popupper object with these options: wiki: the wiki to use for resolving tiddler titles rootElement: the DOM element to which the popup zapper should be attached */ var Popupper = function(options) { options = options || {}; this.wiki = options.wiki; this.rootElement = options.rootElement || document.body; this.popupTextRef = null; }; Popupper.prototype.popup = function(stateTextRef) { var popupState; this.cancel(); this.popupTextRef = stateTextRef; this.rootElement.addEventListener("click",this,true); }; Popupper.prototype.handleEvent = function(event) { if(event.type === "click") { this.rootElement.removeEventListener("click",this,true); this.cancel(); } } Popupper.prototype.cancel = function() { if(this.popupTextRef) { this.wiki.deleteTextReference(this.popupTextRef); this.popupTextRef = null; } }; exports.Popupper = Popupper; })();