Browse Source

Start absolute mode in Droppable

pull/2062/head
Artur Arseniev 7 years ago
parent
commit
23e99170f5
  1. 64
      src/utils/Droppable.js

64
src/utils/Droppable.js

@ -50,39 +50,57 @@ export default class Droppable {
}
handleDragEnter(ev) {
const em = this.em;
const { em } = this;
const dt = ev.dataTransfer;
this.updateCounter(1, ev);
if (this.over) return;
this.over = 1;
const utils = em.get('Utils');
const canvas = em.get('Canvas');
this.sorter = new utils.Sorter({
em,
wmargin: 1,
nested: 1,
canvasRelative: 1,
direction: 'a',
container: canvas.getBody(),
placer: canvas.getPlacerEl(),
eventMoving: 'mousemove dragover',
containerSel: '*',
itemSel: '*',
pfx: 'gjs-',
onStart: () => em.stopDefault(),
onEndMove: model => {
em.runDefault();
em.set('dragResult', model);
model && em.trigger('canvas:drop', dt, model);
},
document: canvas.getFrameEl().contentDocument
});
// For security reason I can't read the drag data on dragenter, but
// as I need it for the Sorter context I will use `dragContent` or just
// any not empty element
const content = em.get('dragContent') || '<br>';
this.sorter.setDropContent(content);
this.sorter.startSort();
if (em.inAbsoluteMode()) {
console.log('im in absolute mode', content);
const target = {}; // create and append to Components
em.get('Commands').run('core:component-drag', {
guidesInfo: 1,
target,
onEnd: () => {
// em.runDefault(defComOptions);
// selAll.forEach(sel => sel.set('status', 'selected'));
// ed.select(selAll);
// sel.emitUpdate();
},
event: ev
});
} else {
this.sorter = new utils.Sorter({
em,
wmargin: 1,
nested: 1,
canvasRelative: 1,
direction: 'a',
container: canvas.getBody(),
placer: canvas.getPlacerEl(),
eventMoving: 'mousemove dragover',
containerSel: '*',
itemSel: '*',
pfx: 'gjs-',
onStart: () => em.stopDefault(),
onEndMove: model => {
em.runDefault();
em.set('dragResult', model);
model && em.trigger('canvas:drop', dt, model);
},
document: canvas.getFrameEl().contentDocument
});
this.sorter.setDropContent(content);
this.sorter.startSort();
}
em.trigger('canvas:dragenter', dt, content);
}

Loading…
Cancel
Save