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

Function MultiDragPlugin

Sortable.js:2789–3331  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

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