Mercurial > code > home > repos > light9
view web/edit-choice.coffee @ 2408:7e7874fed2e3
buttons to add panels to the layout
author | drewp@bigasterisk.com |
---|---|
date | Sat, 18 May 2024 21:02:32 -0700 |
parents | 4556eebe5d73 |
children |
line wrap: on
line source
log = debug('editchoice') RDFS = 'http://www.w3.org/2000/01/rdf-schema#' window.setupDrop = (senseElem, highlightElem, coordinateOriginElem, onDrop) -> highlight = -> highlightElem.classList.add('dragging') unhighlight = -> highlightElem.classList.remove('dragging') senseElem.addEventListener 'drag', (event) => senseElem.addEventListener 'dragstart', (event) => senseElem.addEventListener 'dragend', (event) => senseElem.addEventListener 'dragover', (event) => event.preventDefault() event.dataTransfer.dropEffect = 'copy' highlight() senseElem.addEventListener 'dragenter', (event) => highlight() senseElem.addEventListener 'dragleave', (event) => unhighlight() senseElem.addEventListener 'drop', (event) -> event.preventDefault() uri = event.dataTransfer.getData('text/uri-list') pos = if coordinateOriginElem? root = coordinateOriginElem.getBoundingClientRect() $V([event.pageX - root.left, event.pageY - root.top]) else null try onDrop(uri, pos) catch e log(e) unhighlight() coffeeElementSetup(class EditChoice extends Polymer.Element @is: "edit-choice", @getter_properties: graph: {type: Object, notify: true}, uri: {type: String, notify: true}, _setUri: (u) -> @uri = u @dispatchEvent(new CustomEvent('edited')) connectedCallback: -> super.connectedCallback() setupDrop(@$.box, @$.box, null, @_setUri.bind(@)) unlink: -> @_setUri(null) )