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

Function MultiDragPlugin

modular/sortable.core.esm.js:2784–3326  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

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