mirror of
https://github.com/paradoxxxzero/butterfly.git
synced 2026-06-09 05:44:39 +00:00
36 lines
874 B
CoffeeScript
36 lines
874 B
CoffeeScript
|
|
class Popup
|
|
constructor: ->
|
|
@el = document.getElementById('popup')
|
|
@bound_click_maybe_close = @click_maybe_close.bind(@)
|
|
@bound_key_maybe_close = @key_maybe_close.bind(@)
|
|
|
|
open: (html) ->
|
|
@el.innerHTML = html
|
|
@el.classList.remove 'hidden'
|
|
|
|
addEventListener 'click', @bound_click_maybe_close
|
|
addEventListener 'keydown', @bound_key_maybe_close
|
|
|
|
close: ->
|
|
removeEventListener 'click', @bound_click_maybe_close
|
|
removeEventListener 'keydown', @bound_key_maybe_close
|
|
@el.classList.add 'hidden'
|
|
@el.innerHTML = ''
|
|
|
|
click_maybe_close: (e) ->
|
|
t = e.target
|
|
while t.parentElement
|
|
return true if Array.prototype.slice.call(@el.children).indexOf(t) > -1
|
|
t = t.parentElement
|
|
@close()
|
|
cancel e
|
|
|
|
key_maybe_close: (e) ->
|
|
return true unless e.keyCode is 27
|
|
@close()
|
|
cancel e
|
|
|
|
popup = new Popup()
|
|
|