| 
				
			 | 
			
			 | 
			@@ -1,99 +0,0 @@ | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			import {EventCaller} from '/app/js/EventCaller.js' | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			function handle_emitter(event){ | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			  var el = event.target; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			  if (el.hasAttribute("emit")){ | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    var args = [el.getAttribute("emit")]; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    if (el.hasAttribute("emit-args")){ | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			      try { | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        var j = JSON.parse(el.getAttribute("emit-args")); | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        if (j instanceof Array){ | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			          args.concat(j); | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        } else { | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			          args.push(j); | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        } | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			      } catch (e) { | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        console.log("Failed to emit '" + args[0] + "'. Arguments not in valid JSON form."); | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        return; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			      } | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    } | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    EventWindow.instance.emit.apply(EventWindow.instance, args); | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			  } | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			} | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			/** | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			 *  Wraps the browser's window object around the EventCaller allowing the user to connect to system events | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			 *  by listening for those events (ex: "onclick", "onresize", etc). | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			 * | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			 *  Users should not directly set the window event handler functions if using this class. | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			 */ | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			class EventWindow extends EventCaller{ | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			  constructor(){ | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    super(); | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    if (!EventWindow.instance) | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			      EventWindow.instance = this; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    return EventWindow.instance; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			  } | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			  get emitter_attributes_enabled(){ | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    return this.is_listening("onclick", handle_emitter); | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			  } | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			  enable_emitter_attributes(enable=true){ | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    if (enable === true){ | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			      this.listen("onclick", handle_emitter); | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    } else { | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			      this.unlisten("onclick", handle_emitter); | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    } | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			  } | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			  listen(eventName, callback, owner=null, once=false){ | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    if (window.hasOwnProperty(eventName)){ | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			      if (window[eventName] === null || typeof(window[eventName]) === 'undefined'){ | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        window[eventName] = (function(event){ | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			          this.emit(eventName, event); | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        }).bind(this); | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			      }  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    } | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    super.listen(eventName, callback, owner, once); | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    return this; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			  } | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			  unlisten(eventName, callback, owner=null){  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    super.unlisten(eventName, callback, owner); | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    if (window.hasOwnProperty(eventName)){ | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			      if (super.event_listener_count(eventName) == 0){ | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        window[eventName] = undefined; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			      } | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    } | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    return this; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			  } | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			  unlisten_event(eventName){  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    super.unlisten_event(eventName); | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    if (window.hasOwnProperty(eventName)){ | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			      window[eventName] = undefined; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    } | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    return this; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			  } | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			  unlisten_all(){ | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    var we = this.watchedEvents; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    super.unlisten_all(); | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    for (var i=0; i < we.length; i++){ | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			      if (window.hasOwnProperty(we[i])){ | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        window[we[i]] = undefined; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			      } | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    } | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    return this; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			  } | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			} | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			const instance = new EventWindow(); | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			//Object.freeze(instance); | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			export default instance; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  |