MCPcopy Index your code
hub / github.com/SortableJS/Sortable / MultiDragPlugin

Function MultiDragPlugin

modular/sortable.complete.esm.js:2783–3325  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

2781 clonesFromRect,
2782 clonesHidden;
2783function MultiDragPlugin() {
2784 function MultiDrag(sortable) {
2785 // Bind all private methods
2786 for (var fn in this) {
2787 if (fn.charAt(0) === '_' && typeof this[fn] === 'function') {
2788 this[fn] = this[fn].bind(this);
2789 }
2790 }
2791 if (!sortable.options.avoidImplicitDeselect) {
2792 if (sortable.options.supportPointer) {
2793 on(document, 'pointerup', this._deselectMultiDrag);
2794 } else {
2795 on(document, 'mouseup', this._deselectMultiDrag);
2796 on(document, 'touchend', this._deselectMultiDrag);
2797 }
2798 }
2799 on(document, 'keydown', this._checkKeyDown);
2800 on(document, 'keyup', this._checkKeyUp);
2801 this.defaults = {
2802 selectedClass: 'sortable-selected',
2803 multiDragKey: null,
2804 avoidImplicitDeselect: false,
2805 setData: function setData(dataTransfer, dragEl) {
2806 var data = '';
2807 if (multiDragElements.length && multiDragSortable === sortable) {
2808 multiDragElements.forEach(function (multiDragElement, i) {
2809 data += (!i ? '' : ', ') + multiDragElement.textContent;
2810 });
2811 } else {
2812 data = dragEl.textContent;
2813 }
2814 dataTransfer.setData('Text', data);
2815 }
2816 };
2817 }
2818 MultiDrag.prototype = {
2819 multiDragKeyDown: false,
2820 isMultiDrag: false,
2821 delayStartGlobal: function delayStartGlobal(_ref) {
2822 var dragged = _ref.dragEl;
2823 dragEl$1 = dragged;
2824 },
2825 delayEnded: function delayEnded() {
2826 this.isMultiDrag = ~multiDragElements.indexOf(dragEl$1);
2827 },
2828 setupClone: function setupClone(_ref2) {
2829 var sortable = _ref2.sortable,
2830 cancel = _ref2.cancel;
2831 if (!this.isMultiDrag) return;
2832 for (var i = 0; i < multiDragElements.length; i++) {
2833 multiDragClones.push(clone(multiDragElements[i]));
2834 multiDragClones[i].sortableIndex = multiDragElements[i].sortableIndex;
2835 multiDragClones[i].draggable = false;
2836 multiDragClones[i].style['will-change'] = '';
2837 toggleClass(multiDragClones[i], this.options.selectedClass, false);
2838 multiDragElements[i] === dragEl$1 && toggleClass(multiDragClones[i], this.options.chosenClass, false);
2839 }
2840 sortable._hideClone();

Callers

nothing calls this directly

Calls 15

dispatchSortableEventFunction · 0.85
cloneNowShownFunction · 0.85
cloneNowHiddenFunction · 0.85
cloneFunction · 0.70
toggleClassFunction · 0.70
insertMultiDragClonesFunction · 0.70
cssFunction · 0.70
indexFunction · 0.70
getRectFunction · 0.70
setRectFunction · 0.70
unsetRectFunction · 0.70
removeMultiDragElementsFunction · 0.70

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…