104 | ```
105 | These three custom events have additional `ids` and `index` params.
106 | Ids is an array of defined `data-id` attributes and `index` represents
107 | drop intersection. For more info check out [example](https://vivify-ideas.github.io/vue-draggable/example/#working-with-reactive-data)
108 |
109 | #### Reactivity handling and renderless component
110 |
111 | There is available `VueDraggableGroup` component so you don't need to write your own model
112 | manipulation logic. However, usage of this component is optional. Use only with Vue v2.6+.
113 | You can pass to component optional `itemsKey` prop if you want to change items collection
114 | property name. By default it's `items`.
115 |
116 | ```html
117 |
118 |
119 |
127 |
128 |
133 |
134 |
135 |
136 |
137 |
138 | ```
139 |
140 | #### Event Params for `onDrop`, `onDragstart`, `onDragenter`, `onDragover`, `onDragend` callbacks
141 |
142 | ```javascript
143 | {
144 | nativeEvent: {}, // native js event
145 | items: [], // list of selected draggable elements
146 | owner: null, // old dropzone element
147 | droptarget: null // new dropzone element,
148 | stop: () => {} // Stop D&D (available only for callbacks `onDragstart` and `onDragend`)
149 | }
150 | ```
151 |
152 | ## TypeScript
153 |
154 | Included TypeScript definitions.
155 |
156 | ## Browser Compatibility
157 | Polyfills for IE9+ support are included in the repo.
158 |
159 | If you need to support IE9 in your applications, import the polyfills:
160 |
161 | ```javascript
162 | import 'vue-draggable/polyfills'
163 | ```
164 |
165 | ## Contributors 🎖
166 |
167 | [](https://github.com/nikolasp) |[](https://github.com/tiagocsilva) |[](https://github.com/piboistudios) |[](https://github.com/swaroopjo) |[](https://github.com/figurluk) |
168 | :---:|:---:|:---:|:---:|:---:|
169 | [nikolasp](https://github.com/nikolasp)|[tiagocsilva](https://github.com/tiagocsilva)|[piboistudios](https://github.com/piboistudios)|[swaroopjo](https://github.com/swaroopjo)|[figurluk](https://github.com/figurluk)|
170 |
171 | ---
172 |
173 | LICENCE MIT - Created by Nikola Spalevic (nikolaspalevic@gmail.com)
174 |
--------------------------------------------------------------------------------
/src/core/listeners/handlers/keydown.handler.js:
--------------------------------------------------------------------------------
1 | import {
2 | clearDropeffects, addDropeffects,
3 | addSelection, removeSelection,
4 | clearSelections, hasModifier,
5 | dispatchReorderEvents
6 | } from './../../helpers';
7 |
8 | const isItemAroundSelectionArea = (item, lastItem) => {
9 | return item.parentNode === lastItem.parentNode;
10 | };
11 |
12 | export const keydownHandler = function (e) {
13 | // if the element is a grabbable item
14 | if (e.target.getAttribute('aria-grabbed')) {
15 | // Space is the selection or unselection keystroke
16 | if (e.keyCode === 32) {
17 | // if the multiple selection modifier is pressed
18 | if (hasModifier(e)) {
19 | // if the item's grabbed state is currently true
20 | if (e.target.getAttribute('aria-grabbed') === 'true') {
21 | // if this is the only selected item, clear dropeffect
22 | // from the target containers, which we must do first
23 | // in case subsequent unselection sets owner to null
24 | if (this.selections.items.length === 1) {
25 | clearDropeffects(this.items, this.selections, this.targets);
26 | }
27 |
28 | // unselect this item
29 | removeSelection.bind(this)(e.target);
30 |
31 | // if we have any selections
32 | // apply dropeffect to the target containers,
33 | // in case earlier selections were made by mouse
34 | if (this.selections.items.length) {
35 | addDropeffects(this.items, this.selections, this.targets);
36 | }
37 |
38 | // if that was the only selected item
39 | // then reset the owner container reference
40 | if (!this.selections.items.length) {
41 | this.selections.owner = null;
42 | }
43 | } else {
44 | // else [if its grabbed state is currently false]
45 | // add this additional selection
46 | addSelection.bind(this)(e.target);
47 |
48 | // apply dropeffect to the target containers
49 | addDropeffects(this.items, this.selections, this.targets);
50 | }
51 | } else if (e.target.getAttribute('aria-grabbed') === 'false') {
52 | // else [if the multiple selection modifier is not pressed]
53 | // and the item's grabbed state is currently false
54 | // clear dropeffect from the target containers
55 | clearDropeffects(this.items, this.selections, this.targets);
56 |
57 | // clear all existing selections
58 | clearSelections.bind(this)();
59 |
60 | // add this new selection
61 | addSelection.bind(this)(e.target);
62 |
63 | // apply dropeffect to the target containers
64 | addDropeffects(this.items, this.selections, this.targets);
65 | } else {
66 | // else [if modifier is not pressed and grabbed is already true]
67 | // apply dropeffect to the target containers
68 | addDropeffects(this.items, this.selections, this.targets);
69 | }
70 |
71 | // then prevent default to avoid any conflict with native actions
72 | e.preventDefault();
73 | }
74 |
75 | // (CMD or Ctrl) + A - select all the items around the selected one
76 | if (e.keyCode === 65 && (e.ctrlKey || e.metaKey)) {
77 | const lastItem = this.selections.items.slice(-1).pop();
78 |
79 | if (this.items && this.items.length > 0) {
80 | for (let i = 0; i < this.items.length; i++) {
81 | const item = this.items[i];
82 |
83 | const shouldSelectItem = isItemAroundSelectionArea(item, lastItem);
84 |
85 | shouldSelectItem && addSelection.bind(this)(item);
86 | }
87 | }
88 | e.preventDefault(); // prevent entire page selection.
89 | }
90 |
91 | // Modifier + M is the end-of-selection keystroke
92 | if (e.keyCode === 77 && hasModifier(e)) {
93 | // if we have any selected items
94 | if (this.selections.items.length) {
95 | // apply dropeffect to the target containers
96 | // in case earlier selections were made by mouse
97 | addDropeffects(this.items, this.selections, this.targets);
98 |
99 | // if the owner container is the last one, focus the first one
100 | if (this.selections.owner === this.targets[this.targets.length - 1]) {
101 | this.targets[0].focus();
102 | } else {
103 | // else [if it's not the last one], find and focus the next one
104 | for (let i = 0; i < this.targets.length; i++) {
105 | if (this.selections.owner === this.targets[i]) {
106 | this.targets[i + 1].focus();
107 | break;
108 | }
109 | }
110 | }
111 | }
112 |
113 | // then prevent default to avoid any conflict with native actions
114 | e.preventDefault();
115 | }
116 | }
117 |
118 | // Escape is the abort keystroke (for any target element)
119 | if (e.keyCode === 27) {
120 | // if we have any selected items
121 | if (this.selections.items.length) {
122 | // clear dropeffect from the target containers
123 | clearDropeffects(this.items, this.selections, this.targets);
124 |
125 | // then set focus back on the last item that was selected, which is
126 | // necessary because we've removed tabindex from the current focus
127 | this.selections.items[this.selections.items.length - 1].focus();
128 |
129 | // clear all existing selections
130 | clearSelections.bind(this)();
131 |
132 | // but don't prevent default so that native actions can still occur
133 | }
134 | }
135 |
136 | // if the element is a drop target container
137 | if (e.target.getAttribute('aria-dropeffect')) {
138 | // Enter or Modifier + M is the drop keystroke
139 | if (e.keyCode === 13 || (e.keyCode === 77 && hasModifier(e))) {
140 | // append the selected items to the end of the target container
141 | if (this.defaultOptions.reactivityEnabled) {
142 | this.selections.droptarget = e.target;
143 | dispatchReorderEvents.bind(this)(e);
144 | } else {
145 | for (let i = 0; i < this.selections.items.length; i++) {
146 | e.target.appendChild(this.selections.items[i]);
147 | }
148 | }
149 |
150 | // clear dropeffect from the target containers
151 | clearDropeffects(this.items, this.selections, this.targets);
152 |
153 | // then set focus back on the last item that was selected, which is
154 | // necessary because we've removed tabindex from the current focus
155 | this.selections.items[this.selections.items.length - 1].focus();
156 |
157 | // reset the selections array
158 | clearSelections.bind(this)();
159 |
160 | // prevent default to to avoid any conflict with native actions
161 | e.preventDefault();
162 | }
163 | }
164 | };
165 |
--------------------------------------------------------------------------------
/lib/vue-draggable.min.js.map:
--------------------------------------------------------------------------------
1 | {"version":3,"sources":["webpack://VueDraggable/webpack/universalModuleDefinition","webpack://VueDraggable/webpack/bootstrap","webpack://VueDraggable/./src/core/helpers/dom.helper.js","webpack://VueDraggable/./src/core/helpers/state.helper.js","webpack://VueDraggable/./src/core/helpers/events.helper.js","webpack://VueDraggable/./src/core/listeners/handlers/mousedown.handler.js","webpack://VueDraggable/./src/core/listeners/handlers/mouseup.handler.js","webpack://VueDraggable/./src/core/listeners/handlers/dragover.handler.js","webpack://VueDraggable/./src/core/listeners/handlers/dragstart.handler.js","webpack://VueDraggable/./src/core/listeners/handlers/dragenter.handler.js","webpack://VueDraggable/./src/core/listeners/handlers/dragleave.handler.js","webpack://VueDraggable/./src/core/listeners/handlers/dragend.handler.js","webpack://VueDraggable/./src/core/listeners/handlers/keydown.handler.js","webpack://VueDraggable/./src/core/listeners/index.js","webpack://VueDraggable/./src/core/options.js","webpack://VueDraggable/./src/core/state.js","webpack://VueDraggable/./src/core/index.js","webpack://VueDraggable/./src/components/vue-draggable-group.component.js","webpack://VueDraggable/./src/index.js"],"names":["root","factory","exports","module","define","amd","this","installedModules","__webpack_require__","moduleId","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","getDroptargets","el","dropzoneSelector","querySelectorAll","getDraggables","draggableSelector","updateInitialAttributes","targets","defaultOptions","items","length","setAttribute","getAttribute","setInitialAtributes","removeOldDropzoneAreaElements","oldItemDropzoneElements","document","remove","addDropeffects","selections","len","owner","parentNode","removeAttribute","clearDropeffects","hasModifier","e","ctrlKey","metaKey","shiftKey","addSelection","item","multipleDropzonesItemsDraggingEnabled","indexOf","removeSelection","splice","clearSelections","stopDragAndDrop","Error","dispatchCustomEvent","data","element","customEvent","CustomEvent","detail","createCustomEvent","dispatchEvent","dispatchReorderEvents","oldItems","droptarget","index","nextItemElement","Array","eventData","ids","map","dataset","id","nativeEvent","mousedownHandler","handlerSelector","target","closest","elem","isItemInSelectionArea","lastItem","offsetTop","mouseupHandler","slice","pop","state","previousTarget","dragoverCalls","displayDropzones","className","itemDropzoneElement","createElement","insertBefore","appendChild","dragoverHandler","preventDefault","showDropzoneAreas","onDragover","stop","error","dragstartHandler","onDragstart","dataTransfer","setData","dragenterHandler","related","onDragenter","dragleaveHandler","containerElement","nodeType","getContainer","replace","dragendHandler","onDragend","reactivityEnabled","reorderDomElements","onDrop","isItemAroundSelectionArea","keydownHandler","keyCode","focus","attachListeners","addEventListener","getOptions","componentInstance","options","getState","VueDraggable","assign","registerListeners","initiate","CUSTOM_EVENTS","VueDraggableGroup","props","groups","required","type","itemsKey","String","default","render","$scopedSlots","methods","added","event","newItems","group","reduce","prev","curr","filter","Number","$emit","removed","newArray","reordered","reorderedItems","notReorderedItems","addListeners","forEach","$el","removeListeners","removeEventListener","mounted","beforeDestroy","instances","VueDraggableDirective","vnode","instance","context","push","componentUpdated","setTimeout","update","unbind","install","Vue","directive","component"],"mappings":"CAAA,SAA2CA,EAAMC,GAC1B,iBAAZC,SAA0C,iBAAXC,OACxCA,OAAOD,QAAUD,IACQ,mBAAXG,QAAyBA,OAAOC,IAC9CD,OAAO,eAAgB,GAAIH,GACD,iBAAZC,QACdA,QAAsB,aAAID,IAE1BD,EAAmB,aAAIC,IARzB,CASGK,MAAM,WACT,O,YCTE,IAAIC,EAAmB,GAGvB,SAASC,EAAoBC,GAG5B,GAAGF,EAAiBE,GACnB,OAAOF,EAAiBE,GAAUP,QAGnC,IAAIC,EAASI,EAAiBE,GAAY,CACzCC,EAAGD,EACHE,GAAG,EACHT,QAAS,IAUV,OANAU,EAAQH,GAAUI,KAAKV,EAAOD,QAASC,EAAQA,EAAOD,QAASM,GAG/DL,EAAOQ,GAAI,EAGJR,EAAOD,QA0Df,OArDAM,EAAoBM,EAAIF,EAGxBJ,EAAoBO,EAAIR,EAGxBC,EAAoBQ,EAAI,SAASd,EAASe,EAAMC,GAC3CV,EAAoBW,EAAEjB,EAASe,IAClCG,OAAOC,eAAenB,EAASe,EAAM,CAAEK,YAAY,EAAMC,IAAKL,KAKhEV,EAAoBgB,EAAI,SAAStB,GACX,oBAAXuB,QAA0BA,OAAOC,aAC1CN,OAAOC,eAAenB,EAASuB,OAAOC,YAAa,CAAEC,MAAO,WAE7DP,OAAOC,eAAenB,EAAS,aAAc,CAAEyB,OAAO,KAQvDnB,EAAoBoB,EAAI,SAASD,EAAOE,GAEvC,GADU,EAAPA,IAAUF,EAAQnB,EAAoBmB,IAC/B,EAAPE,EAAU,OAAOF,EACpB,GAAW,EAAPE,GAA8B,iBAAVF,GAAsBA,GAASA,EAAMG,WAAY,OAAOH,EAChF,IAAII,EAAKX,OAAOY,OAAO,MAGvB,GAFAxB,EAAoBgB,EAAEO,GACtBX,OAAOC,eAAeU,EAAI,UAAW,CAAET,YAAY,EAAMK,MAAOA,IACtD,EAAPE,GAA4B,iBAATF,EAAmB,IAAI,IAAIM,KAAON,EAAOnB,EAAoBQ,EAAEe,EAAIE,EAAK,SAASA,GAAO,OAAON,EAAMM,IAAQC,KAAK,KAAMD,IAC9I,OAAOF,GAIRvB,EAAoB2B,EAAI,SAAShC,GAChC,IAAIe,EAASf,GAAUA,EAAO2B,WAC7B,WAAwB,OAAO3B,EAAgB,SAC/C,WAA8B,OAAOA,GAEtC,OADAK,EAAoBQ,EAAEE,EAAQ,IAAKA,GAC5BA,GAIRV,EAAoBW,EAAI,SAASiB,EAAQC,GAAY,OAAOjB,OAAOkB,UAAUC,eAAe1B,KAAKuB,EAAQC,IAGzG7B,EAAoBgC,EAAI,GAIjBhC,EAAoBA,EAAoBiC,EAAI,G,sCClF9C,IAAMC,EAAiB,SAACC,EAAIC,GAAL,OAC5BD,EAAGE,iBAAiBD,IAETE,EAAgB,SAACH,EAAII,GAAL,OAC3BJ,EAAGE,iBAAiBE,IAETC,EAA0B,SAAUL,GAC/CrC,KAAK2C,QAAUP,EAAeC,EAAIrC,KAAK4C,eAAeN,kBACtDtC,KAAK6C,MAAQL,EAAcH,EAAIrC,KAAK4C,eAAeH,mBACnD,IAAK,IAAIrC,EAAI,EAAGA,EAAIJ,KAAK2C,QAAQG,OAAQ1C,IACvCJ,KAAK2C,QAAQvC,GAAG2C,aAAa,kBAAmB,QAGlD,IAAK,IAAI3C,EAAI,EAAGA,EAAIJ,KAAK6C,MAAMC,OAAQ1C,IACrCJ,KAAK6C,MAAMzC,GAAG2C,aAAa,YAAa,QACW,SAA/C/C,KAAK6C,MAAMzC,GAAG4C,aAAa,iBAC7BhD,KAAK6C,MAAMzC,GAAG2C,aAAa,eAAgB,SAE7C/C,KAAK6C,MAAMzC,GAAG2C,aAAa,WAAY,MAG9BE,EAAsB,SAAUZ,GAC3CrC,KAAK2C,QAAUP,EAAeC,EAAIrC,KAAK4C,eAAeN,kBACtDtC,KAAK6C,MAAQL,EAAcH,EAAIrC,KAAK4C,eAAeH,mBAEnD,IAAK,IAAIrC,EAAI,EAAGA,EAAIJ,KAAK2C,QAAQG,OAAQ1C,IACvCJ,KAAK2C,QAAQvC,GAAG2C,aAAa,kBAAmB,QAGlD,IAAK,IAAI3C,EAAI,EAAGA,EAAIJ,KAAK6C,MAAMC,OAAQ1C,IACrCJ,KAAK6C,MAAMzC,GAAG2C,aAAa,YAAa,QACxC/C,KAAK6C,MAAMzC,GAAG2C,aAAa,eAAgB,SAC3C/C,KAAK6C,MAAMzC,GAAG2C,aAAa,WAAY,MAI9BG,EAAgC,WAG3C,IAFA,IAAIC,EAA0BC,SAASb,iBAAiB,uBAE/CnC,EAAI,EAAGA,EAAI+C,EAAwBL,OAAQ1C,IAClD+C,EAAwB/C,GAAGiD,UAqBlBC,EAAiB,SAACT,EAAOU,EAAYZ,GAEhD,IAAK,IAAIa,EAAMb,EAAQG,OAAQ1C,EAAI,EAAGA,EAAIoD,EAAKpD,IACzCuC,EAAQvC,KAAOmD,EAAWE,OACuB,SAA/Cd,EAAQvC,GAAG4C,aAAa,qBAC5BL,EAAQvC,GAAG2C,aAAa,kBAAmB,QAC3CJ,EAAQvC,GAAG2C,aAAa,WAAY,MAKxC,IAAK,IAAIS,EAAMX,EAAMC,OAAQ1C,EAAI,EAAGA,EAAIoD,EAAKpD,IACvCyC,EAAMzC,GAAGsD,aAAeH,EAAWE,OACnCZ,EAAMzC,GAAG4C,aAAa,kBACxBH,EAAMzC,GAAGuD,gBAAgB,gBACzBd,EAAMzC,GAAGuD,gBAAgB,cAKlBC,EAAmB,SAACf,EAAOU,EAAYZ,GAElD,GAAKY,EAAWV,MAAMC,OAAtB,CAIA,IAAK,IAAI1C,EAAI,EAAGA,EAAIuC,EAAQG,OAAQ1C,IACiB,SAA/CuC,EAAQvC,GAAG4C,aAAa,qBAC1BL,EAAQvC,GAAG2C,aAAa,kBAAmB,QAC3CJ,EAAQvC,GAAGuD,gBAAgB,aAM/B,IAAK,IAAIvD,EAAI,EAAGA,EAAIyC,EAAMC,OAAQ1C,IAC3ByC,EAAMzC,GAAG4C,aAAa,gBAG0B,SAA1CH,EAAMzC,GAAG4C,aAAa,iBAC/BH,EAAMzC,GAAG2C,aAAa,WAAY,MAHlCF,EAAMzC,GAAG2C,aAAa,eAAgB,SACtCF,EAAMzC,GAAG2C,aAAa,WAAY,QAO3Bc,EAAc,SAACC,GAC1B,OAAQA,EAAEC,SAAWD,EAAEE,SAAWF,EAAEG,U,qVC3G/B,IAAMC,EAAe,SAAUC,GAG/BnE,KAAKuD,WAAWE,QACnBzD,KAAKuD,WAAWE,MAAQU,EAAKT,aAK1B1D,KAAK4C,eAAewB,uCACnBpE,KAAKuD,WAAWE,QAAUU,EAAKT,cAKrCS,EAAKpB,aAAa,eAAgB,QAGlC/C,KAAKuD,WAAWV,MACd7C,KAAKuD,WAAWV,MAAMwB,QAAQF,IAAS,EACrCnE,KAAKuD,WAAWV,MADlB,YAEO7C,KAAKuD,WAAWV,OAFvB,CAE8BsB,MAGrBG,EAAkB,SAAUH,GAEvCA,EAAKpB,aAAa,eAAgB,SAGlC,IAAK,IAAI3C,EAAI,EAAGA,EAAIJ,KAAKuD,WAAWV,MAAMC,OAAQ1C,IAChD,GAAIJ,KAAKuD,WAAWV,MAAMzC,KAAO+D,EAAM,CACrCnE,KAAKuD,WAAWV,MAAM0B,OAAOnE,EAAG,GAChC,QAKOoE,EAAkB,WAE7B,GAAIxE,KAAKuD,WAAWV,MAAMC,OAAQ,CAEhC9C,KAAKuD,WAAWE,MAAQ,KAGxB,IAAK,IAAIrD,EAAI,EAAGA,EAAIJ,KAAKuD,WAAWV,MAAMC,OAAQ1C,IAChDJ,KAAKuD,WAAWV,MAAMzC,GAAG2C,aAAa,eAAgB,SAIxD/C,KAAKuD,WAAWV,MAAQ,KAIf4B,EAAkB,WAE7B,MAAM,IAAIC,MAAM,0B,sVCvDlB,IAMaC,EAAsB,SAAChE,EAAMiE,EAAMC,GAC9C,IAAMC,EAPkB,SAACnE,EAAMiE,GAC/B,OAAO,IAAIG,YAAYpE,EAAM,CAC3BqE,OAAQJ,IAKUK,CAAkBtE,EAAMiE,GAE5CC,EAAQK,cAAcJ,IAGXK,EAAwB,SAAUrB,GAC7C,IAAMsB,EAAWpF,KAAKuD,WAAW8B,WAAW9C,iBAC1CvC,KAAK4C,eAAeH,mBAEhB6C,EAAQtF,KAAKuF,gBACjBC,MAAMxD,UAAUqC,QAAQ9D,KACtB6E,EACApF,KAAKuF,iBACHH,EAAStC,OACT2C,E,+UAAY,CAAH,CACbC,IAAK1F,KAAKuD,WAAWV,MAClB8C,KAAI,SAAAxB,GAAI,OAAIA,EAAKyB,QAAQC,MAC5BP,QACAQ,YAAahC,GACV9D,KAAKuD,YAGNvD,KAAKuD,WAAW8B,aAAerF,KAAKuD,WAAWE,OAInDkB,EAAoB,QAASc,EAAWzF,KAAKuD,WAAW8B,YACxDV,EAAoB,UAAWc,EAAWzF,KAAKuD,WAAWE,QAJxDkB,EAAoB,YAAac,EAAWzF,KAAKuD,WAAW8B,aCzBnDU,EAAmB,SAAUjC,GACxC,GAAI9D,KAAK4C,eAAeoD,kBACNlC,EAAEmC,OAAOC,QAAQlG,KAAK4C,eAAeoD,iBAGnD,OAIJ,IAAIG,EAAOrC,EAAEmC,OAAOC,QAAQlG,KAAK4C,eAAeH,mBAG5C0D,GAAQA,EAAKnD,aAAa,cAE5BY,EAAiB5D,KAAK6C,MAAO7C,KAAKuD,WAAYvD,KAAK2C,SAG9CkB,EAAYC,IAC2B,UAAtCqC,EAAKnD,aAAa,kBAEtBwB,EAAgB5C,KAAK5B,KAArBwE,GAGAN,EAAatC,KAAK5B,KAAlBkE,CAAwBiC,KAEhBtC,EAAYC,GAWtBF,EAAiB5D,KAAK6C,MAAO7C,KAAKuD,WAAYvD,KAAK2C,UAPnDiB,EAAiB5D,KAAK6C,MAAO7C,KAAKuD,WAAYvD,KAAK2C,SAGnD6B,EAAgB5C,KAAK5B,KAArBwE,KCjCE4B,EAAwB,SAACjC,EAAMU,EAASwB,GAC5C,OAAOlC,EAAKT,aAAemB,EAAQnB,aAE9BmB,EAAQyB,UAAYD,EAASC,WAC9BnC,EAAKmC,WAAazB,EAAQyB,WAC1BnC,EAAKmC,WAAaD,EAASC,WAE1BnC,EAAKmC,WAAazB,EAAQyB,WACrBnC,EAAKmC,WAAaD,EAASC,YAK1BC,EAAiB,SAAUzC,GACtC,IAAIqC,EAAOrC,EAAEmC,OAAOC,QAAQlG,KAAK4C,eAAeH,mBAGhD,GAAI0D,GAAQA,EAAKnD,aAAa,aAE5B,GAAIa,EAAYC,GACd,GAAI9D,KAAKuD,WAAWV,MAAMC,QAAUgB,EAAEG,SAAU,CAE9C,IAAMoC,EAAWrG,KAAKuD,WAAWV,MAAM2D,OAAO,GAAGC,MAEjD,GAAIzG,KAAK6C,OAAS7C,KAAK6C,MAAMC,OAAS,EACpC,IAAK,IAAI1C,EAAI,EAAGA,EAAIJ,KAAK6C,MAAMC,OAAQ1C,IAAK,CAC1C,IAAM+D,EAAOnE,KAAK6C,MAAMzC,GAECgG,EAAsBjC,EAAMgC,EAAME,IAEvCnC,EAAatC,KAAK5B,KAAlBkE,CAAwBC,QAID,SAAtCgC,EAAKnD,aAAa,iBAE3BsB,EAAgB1C,KAAK5B,KAArBsE,CAA2B6B,GAItBnG,KAAKuD,WAAWV,MAAMC,SACzB9C,KAAKuD,WAAWE,MAAQ,OAK1BS,EAAatC,KAAK5B,KAAlBkE,CAAwBiC,QAI1B3B,EAAgB5C,KAAK5B,KAArBwE,GACAN,EAAatC,KAAK5B,KAAlBkE,CAAwBiC,I,sVCrD9B,IAAMO,EAAQ,CACZC,eAAgB,KAChBC,cAAe,GAGXC,EAAmB,SAAU/C,GACjC,GAAI4C,EAAME,cAAgB,KAAQ,GAE1B9C,EAAEmC,SAAWS,EAAMC,gBAClB7C,EAAEmC,QACoB,uBAAvBnC,EAAEmC,OAAOa,UAJjB,CAQAJ,EAAME,gBACNF,EAAMC,eAAiB7C,EAAEmC,OAEzBjG,KAAKuF,gBAAkBzB,EAAEmC,OAAOC,QAAQlG,KAAK4C,eAAeH,mBAC5DzC,KAAKuD,WAAW8B,WAAavB,EAAEmC,OAAOC,QAAQlG,KAAK4C,eAAeN,kBAElE,IAAIyE,EAAsB3D,SAAS4D,cAAc,OAEjDD,EAAoBD,UAAY,qBAChC5D,IAEIlD,KAAKuD,WAAW8B,YAAcrF,KAAKuF,iBACrCvF,KAAKuD,WAAW8B,WAAW4B,aACzBF,EACAL,EAAMC,eAAeT,QAAQlG,KAAK4C,eAAeH,oBAIjDzC,KAAKuD,WAAW8B,aAAerF,KAAKuF,iBACtCvF,KAAKuD,WAAW8B,WAAW6B,YAAYH,KAI9BI,EAAkB,SAAUrD,GAMvC,GAHI9D,KAAKuD,WAAWV,MAAMC,QACxBgB,EAAEsD,iBAECpH,KAAK4C,eAAeyE,oBAGzBR,EAAiBjF,KAAK5B,KAAtB6G,CAA4B/C,GAEkB,mBAAnC9D,KAAK4C,eAAe0E,YAC7B,IACEtH,KAAK4C,eAAe0E,W,+UAApB,EAEIxB,YAAahC,EACbyD,KAAM,WACJ,MAAM,IAAI7C,MAAJ,wOAKL1E,KAAKuD,aAGZ,MAAOiE,GAEP,YADA1D,EAAEsD,mB,sVC5DD,IAAMK,EAAmB,SAAU3D,GACxC,IAAIqC,EAAOrC,EAAEmC,OAAOC,QAAQlG,KAAK4C,eAAeH,mBAGhD,GAAKzC,KAAK4C,eAAewB,wCACjB+B,GAAQnG,KAAKuD,WAAWE,QAAU0C,EAAKzC,WAD/C,CAMA,GAA+C,mBAApC1D,KAAK4C,eAAe8E,YAC7B,IACE1H,KAAK4C,eAAe8E,Y,+UAApB,EAEI5B,YAAahC,EACbyD,KAAM9C,GACHzE,KAAKuD,aAGZ,MAAOiE,GAGP,OAFA1D,EAAEsD,sBACFlE,IAOAW,EAAYC,IAC4B,UAAtCqC,EAAKnD,aAAa,iBAEtBkB,EAAatC,KAAK5B,KAAlBkE,CAAwBiC,GAO1BrC,EAAE6D,aAAaC,QAAQ,OAAQ,IAG/BtE,EAAetD,KAAK6C,MAAO7C,KAAKuD,WAAYvD,KAAK2C,cAnC/CmB,EAAEsD,kB,sVCXC,IAAMS,EAAmB,SAAU/D,GAGxC,GAFA9D,KAAK8H,QAAUhE,EAAEmC,OAE8B,mBAApCjG,KAAK4C,eAAemF,YAC7B,IACE/H,KAAK4C,eAAemF,Y,+UAApB,EAEIjC,YAAahC,EACbyD,KAAM,WACJ,MAAM,IAAI7C,MAAJ,wOAKL1E,KAAKuD,aAGZ,MAAOiE,GAEP,YADA1D,EAAEsD,mBChBKY,EAAmB,WAE9B,IAAI3C,ERwCsB,SAACR,GAC3B,IAAIoD,EAAmBpD,EAEvB,GACE,GAAIoD,GACgC,IAA9BA,EAAiBC,UACjBD,EAAiBjF,aAAa,mBAElC,OAAOiF,QAEDA,EACJA,EAAmBA,EAAiBvE,WAAa,MAGvD,OAAO,KQtDUyE,CAAanI,KAAK8H,SAI/BzC,IAAerF,KAAKuD,WAAW8B,aAE7BrF,KAAKuD,WAAW8B,aAClBrF,KAAKuD,WAAW8B,WAAWyB,UACrB9G,KAAKuD,WAAW8B,WAAWyB,UAAUsB,QAAQ,aAAc,KAI/D/C,IACFA,EAAWyB,WAAa,aAI1B9G,KAAKuD,WAAW8B,WAAaA,I,uqBChBjC,IAWagD,EAAiB,SAAUvE,GACtC,GAA6C,mBAAlC9D,KAAK4C,eAAe0F,UAC7B,IACEtI,KAAK4C,eAAe0F,UAApB,GAEIxC,YAAahC,EACbyD,KAAM9C,GACHzE,KAAKuD,aAGZ,MAAOiE,GAEP,YADAtE,IAOAlD,KAAKuD,WAAW8B,aACdrF,KAAK4C,eAAe2F,kBACtBpD,EAAsBvD,KAAK5B,KAA3BmF,CAAiCrB,GA/BZ,SAACuB,EAAYxC,EAAO0C,GAC7C,IAAK,IAAInF,EAAI,EAAGA,EAAIyC,EAAMC,OAAQ1C,IAC5BmF,EACFF,EAAW4B,aACTpE,EAAMzC,GAAImF,GAGdF,EAAW6B,YAAYrE,EAAMzC,IA2B3BoI,CACExI,KAAKuD,WAAW8B,WAChBrF,KAAKuD,WAAWV,MAChB7C,KAAKuF,iBAIiC,mBAA/BvF,KAAK4C,eAAe6F,QAC7BzI,KAAK4C,eAAe6F,OAApB,GACE3C,YAAahC,EACbyD,KAAM,WACJ,MAAM,IAAI7C,MAAJ,wOAKL1E,KAAKuD,aAKZO,EAAEsD,kBAIApH,KAAKuD,WAAWV,MAAMC,SAExBc,EAAiB5D,KAAK6C,MAAO7C,KAAKuD,WAAYvD,KAAK2C,SAG/C3C,KAAKuD,WAAW8B,aAElBb,EAAgB5C,KAAK5B,KAArBwE,GAGAxE,KAAKuD,WAAW8B,WAAWyB,UACnB9G,KAAKuD,WAAW8B,WAAWyB,UAAUsB,QAAQ,aAAc,IAGnEpI,KAAKuD,WAAW8B,WAAa,OAKjCnC,KC5EIwF,EAA4B,SAACvE,EAAMkC,GACvC,OAAOlC,EAAKT,aAAe2C,EAAS3C,YAGzBiF,EAAiB,SAAU7E,GAEtC,GAAIA,EAAEmC,OAAOjD,aAAa,gBAAiB,CA8DzC,GA5DkB,KAAdc,EAAE8E,UAEA/E,EAAYC,GAEgC,SAA1CA,EAAEmC,OAAOjD,aAAa,iBAIa,IAAjChD,KAAKuD,WAAWV,MAAMC,QACxBc,EAAiB5D,KAAK6C,MAAO7C,KAAKuD,WAAYvD,KAAK2C,SAIrD2B,EAAgB1C,KAAK5B,KAArBsE,CAA2BR,EAAEmC,QAKzBjG,KAAKuD,WAAWV,MAAMC,QACxBQ,EAAetD,KAAK6C,MAAO7C,KAAKuD,WAAYvD,KAAK2C,SAK9C3C,KAAKuD,WAAWV,MAAMC,SACzB9C,KAAKuD,WAAWE,MAAQ,QAK1BS,EAAatC,KAAK5B,KAAlBkE,CAAwBJ,EAAEmC,QAG1B3C,EAAetD,KAAK6C,MAAO7C,KAAKuD,WAAYvD,KAAK2C,UAEA,UAA1CmB,EAAEmC,OAAOjD,aAAa,iBAI/BY,EAAiB5D,KAAK6C,MAAO7C,KAAKuD,WAAYvD,KAAK2C,SAGnD6B,EAAgB5C,KAAK5B,KAArBwE,GAGAN,EAAatC,KAAK5B,KAAlBkE,CAAwBJ,EAAEmC,QAG1B3C,EAAetD,KAAK6C,MAAO7C,KAAKuD,WAAYvD,KAAK2C,UAIjDW,EAAetD,KAAK6C,MAAO7C,KAAKuD,WAAYvD,KAAK2C,SAInDmB,EAAEsD,kBAIc,KAAdtD,EAAE8E,UAAmB9E,EAAEC,SAAWD,EAAEE,SAAU,CAChD,IAAMqC,EAAWrG,KAAKuD,WAAWV,MAAM2D,OAAO,GAAGC,MAEjD,GAAIzG,KAAK6C,OAAS7C,KAAK6C,MAAMC,OAAS,EACpC,IAAK,IAAI1C,EAAI,EAAGA,EAAIJ,KAAK6C,MAAMC,OAAQ1C,IAAK,CAC1C,IAAM+D,EAAOnE,KAAK6C,MAAMzC,GAECsI,EAA0BvE,EAAMkC,IAErCnC,EAAatC,KAAK5B,KAAlBkE,CAAwBC,GAGhDL,EAAEsD,iBAIJ,GAAkB,KAAdtD,EAAE8E,SAAkB/E,EAAYC,GAAI,CAEtC,GAAI9D,KAAKuD,WAAWV,MAAMC,OAMxB,GAHAQ,EAAetD,KAAK6C,MAAO7C,KAAKuD,WAAYvD,KAAK2C,SAG7C3C,KAAKuD,WAAWE,QAAUzD,KAAK2C,QAAQ3C,KAAK2C,QAAQG,OAAS,GAC/D9C,KAAK2C,QAAQ,GAAGkG,aAGhB,IAAK,IAAIzI,EAAI,EAAGA,EAAIJ,KAAK2C,QAAQG,OAAQ1C,IACvC,GAAIJ,KAAKuD,WAAWE,QAAUzD,KAAK2C,QAAQvC,GAAI,CAC7CJ,KAAK2C,QAAQvC,EAAI,GAAGyI,QACpB,MAOR/E,EAAEsD,kBAuBN,GAlBkB,KAAdtD,EAAE8E,SAEA5I,KAAKuD,WAAWV,MAAMC,SAExBc,EAAiB5D,KAAK6C,MAAO7C,KAAKuD,WAAYvD,KAAK2C,SAInD3C,KAAKuD,WAAWV,MAAM7C,KAAKuD,WAAWV,MAAMC,OAAS,GAAG+F,QAGxDrE,EAAgB5C,KAAK5B,KAArBwE,IAOAV,EAAEmC,OAAOjD,aAAa,qBAEN,KAAdc,EAAE8E,SAAiC,KAAd9E,EAAE8E,SAAkB/E,EAAYC,IAAK,CAE5D,GAAI9D,KAAK4C,eAAe2F,kBACtBvI,KAAKuD,WAAW8B,WAAavB,EAAEmC,OAC/Bd,EAAsBvD,KAAK5B,KAA3BmF,CAAiCrB,QAEjC,IAAK,IAAI1D,EAAI,EAAGA,EAAIJ,KAAKuD,WAAWV,MAAMC,OAAQ1C,IAChD0D,EAAEmC,OAAOiB,YAAYlH,KAAKuD,WAAWV,MAAMzC,IAK/CwD,EAAiB5D,KAAK6C,MAAO7C,KAAKuD,WAAYvD,KAAK2C,SAInD3C,KAAKuD,WAAWV,MAAM7C,KAAKuD,WAAWV,MAAMC,OAAS,GAAG+F,QAGxDrE,EAAgB5C,KAAK5B,KAArBwE,GAGAV,EAAEsD,mBCrJK0B,EAAkB,SAAUzG,GAEvCA,EAAG0G,iBAAiB,YAAahD,EAAiBnE,KAAK5B,OAAO,GAG9DqC,EAAG0G,iBAAiB,UAAWxC,EAAe3E,KAAK5B,OAAO,GAG1DqC,EAAG0G,iBAAiB,YAAatB,EAAiB7F,KAAK5B,OAAO,GAG9DqC,EAAG0G,iBAAiB,UAAWJ,EAAe/G,KAAK5B,OAAO,GAG1DqC,EAAG0G,iBAAiB,YAAalB,EAAiBjG,KAAK5B,OAAO,GAG9DqC,EAAG0G,iBAAiB,YAAaf,EAAiBpG,KAAK5B,OAAO,GAG9DqC,EAAG0G,iBAAiB,WAAY5B,EAAgBvF,KAAK5B,OAAO,GAI5DqC,EAAG0G,iBAAiB,UAAWV,EAAezG,KAAK5B,OAAO,I,sVCnCrD,IAAMgJ,EAAa,SAACC,EAAmBC,GAApB,O,+UAAA,EACxB5G,iBAAkB,KAClBG,kBAAmB,KACnBuD,gBAAiB,KACjBuC,mBAAmB,EACnBnE,uCAAuC,EACvCiD,mBAAmB,GAChB6B,EAPqB,CAQxBxB,aAAcwB,EAAQxB,aAAgB,cAAW9F,KAAKqH,GACtDlB,aAAcmB,EAAQnB,aAAgB,cAAWnG,KAAKqH,GACtD3B,YAAa4B,EAAQ5B,YAAe,cAAW1F,KAAKqH,GACpDX,WAAYY,EAAQZ,WAAc,cAAW1G,KAAKqH,GAClDR,QAASS,EAAQT,QAAW,cAAW7G,KAAKqH,MCZjCE,EAAW,iBAAO,CAC7BxG,QAAS,KACTE,MAAO,KACP0C,gBAAiB,KAGjBuC,QAAS,KACTvE,WAAY,CACVV,MAAO,GACPY,MAAO,KACP4B,WAAY,Q,sKCLT,IAAM+D,EAAb,WACE,WAAY/G,EAAI4G,EAAmBC,I,4FAAS,SAC1CpI,OAAOuI,OACLrJ,KACAmJ,IACA,CACEvG,eAAgBoG,EAAWC,EAAmBC,IAEhD,CAAE7G,OAGJrC,KAAKsJ,kBAAkBjH,GACvBrC,KAAKuJ,SAASlH,G,UAZlB,O,EAAA,G,EAAA,yCAeoBA,GAChByG,EAAgBlH,KAAK5B,KAArB8I,CAA2BzG,KAhB/B,+BAmBWA,GACPY,EAAoBrB,KAAK5B,KAAzBiD,CAA+BZ,KApBnC,6BAuBSA,GACLK,EAAwBd,KAAK5B,KAA7B0C,CAAmCL,Q,2BAxBvC,K,qVCLA,IAAMmH,EAAgB,CACpB,QACA,UACA,aAGWC,EAAoB,CAC/B9I,KAAM,oBACN+I,MAAO,CACLC,OAAQ,CACNC,UAAU,EACVC,KAAMrE,OAERnE,MAAO,CACLuI,UAAU,EACVC,KAAMrE,OAERsE,SAAU,CACRD,KAAME,OACNC,QAAS,UAGbC,OAhB+B,WAiB7B,OAAOjK,KAAKkK,aAAL,QAA0B,KAEnCC,QAAS,CACPC,MADO,SACDC,GAAO,aACLC,EAAWtK,KAAK2J,OACnBhE,KAAI,SAAA4E,GAAK,OAAIA,EAAM,EAAKT,aACxBU,QAAO,SAACC,EAAMC,GAAP,kBAAoBD,GAApB,EAA6BC,MAAO,IAC3CC,QAAO,SAAAxG,GAAI,OAAIkG,EAAMrF,OAAOU,IAAIC,IAAIiF,QAAQvG,QAAQF,EAAK0B,KAAO,MAEnE,EAAA7F,KAAKqB,OAAMkD,OAAX,SAAkB8F,EAAMrF,OAAOM,MAAO,GAAtC,SAA4CgF,KAC5CtK,KAAK6K,MAAM,SAAU7K,KAAK2J,SAE5BmB,QAVO,SAUCT,GACN,IAAMU,EAAW/K,KAAKqB,MAAMsJ,QAC1B,SAAAxG,GAAI,OAAIkG,EAAMrF,OAAOU,IAAIC,IAAIiF,QAAQvG,QAAQF,EAAK0B,IAAM,KAG1D7F,KAAK6K,MAAM,QAASE,IAEtBC,UAjBO,SAiBGX,EAAOE,GACf,IAAMU,EAAiBjL,KAAKqB,MAAMsJ,QAChC,SAAAxG,GAAI,OAAIkG,EAAMrF,OAAOU,IAAIC,IAAIiF,QAAQvG,QAAQF,EAAK0B,KAAO,KAErDqF,EAAoBlL,KAAKqB,MAAMsJ,QACnC,SAAAxG,GAAI,OAAIkG,EAAMrF,OAAOU,IAAIC,IAAIiF,QAAQvG,QAAQF,EAAK0B,IAAM,KAG1DqF,EAAkB3G,OAAlB,MAAA2G,EAAiB,CAAQb,EAAMrF,OAAOM,MAAO,GAA5B,SAAkC2F,KAEnDjL,KAAK6K,MAAM,QAASK,GACpBlL,KAAK6K,MAAM,SAAU7K,KAAK2J,SAE5BwB,aA9BO,WA8BQ,WACb3B,EAAc4B,SAAQ,SAACf,GAAD,OACpB,EAAKgB,IAAItC,iBAAiBsB,EAAO,EAAKA,QAE1CiB,gBAlCO,WAkCW,WAChB9B,EAAc4B,SAAQ,SAACf,GAAD,OACpB,EAAKgB,IAAIE,oBAAoBlB,EAAO,EAAKA,SAG/CmB,QA1D+B,WA2D7BxL,KAAKmL,gBAEPM,cA7D+B,WA8D7BzL,KAAKsL,oBCpET,sDAGA,IAAII,EAAY,GAEHC,EAAwB,CACnC/J,KADmC,SAC9BS,EAAI6G,EAAS0C,GAChB,IAAMC,EAAW,IAAIzC,EAAa/G,EAAIuJ,EAAME,QAAS5C,EAAQ7H,OAE7DqK,EAAUK,KAAKF,IAEjBG,iBANmC,SAMlB3J,GACf4J,YAAW,WACTP,EAAUN,SAAQ,SAAAS,GACZA,EAASxJ,KAAOA,GACpBwJ,EAASK,OAAO7J,UAItB8J,OAdmC,SAc5B9J,GACLqJ,EAAYA,EAAUf,QACpB,SAACkB,GAAD,OAAcA,EAASxJ,KAAOA,OAIpC+G,EAAagD,QAAU,SAAUC,GAC/BA,EAAIC,UAAU,gBAAiBX,GAC/BU,EAAIE,UAAU,sBAAuB9C,IAGxBL","file":"vue-draggable.min.js","sourceRoot":""}
--------------------------------------------------------------------------------
/lib/vue-draggable.min.js:
--------------------------------------------------------------------------------
1 | !function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define("VueDraggable",[],e):"object"==typeof exports?exports.VueDraggable=e():t.VueDraggable=e()}(this,(function(){return function(t){var e={};function r(i){if(e[i])return e[i].exports;var n=e[i]={i:i,l:!1,exports:{}};return t[i].call(n.exports,n,n.exports,r),n.l=!0,n.exports}return r.m=t,r.c=e,r.d=function(t,e,i){r.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:i})},r.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},r.t=function(t,e){if(1&e&&(t=r(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var i=Object.create(null);if(r.r(i),Object.defineProperty(i,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var n in t)r.d(i,n,function(e){return t[e]}.bind(null,n));return i},r.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return r.d(e,"a",e),e},r.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},r.p="",r(r.s=0)}([function(t,e,r){"use strict";r.r(e);var i=function(t,e){return t.querySelectorAll(e)},n=function(t,e){return t.querySelectorAll(e)},s=function(t){this.targets=i(t,this.defaultOptions.dropzoneSelector),this.items=n(t,this.defaultOptions.draggableSelector);for(var e=0;e=0?this.selections.items:[].concat(f(this.selections.items),[t]))},h=function(t){t.setAttribute("aria-grabbed","false");for(var e=0;er.offsetTop&&t.offsetTop<=e.offsetTop&&t.offsetTop>=r.offsetTop||t.offsetTop>=e.offsetTop&&t.offsetTop<=r.offsetTop)},D=function(t){var e=t.target.closest(this.defaultOptions.draggableSelector);if(e&&e.getAttribute("draggable"))if(u(t))if(this.selections.items.length&&t.shiftKey){var r=this.selections.items.slice(-1).pop();if(this.items&&this.items.length>0)for(var i=0;i0)for(var r=0;r=0}));(e=this.value).splice.apply(e,[t.detail.index,0].concat(J(i))),this.$emit("change",this.groups)},removed:function(t){var e=this.value.filter((function(e){return t.detail.ids.map(Number).indexOf(e.id)<0}));this.$emit("input",e)},reordered:function(t,e){var r=this.value.filter((function(e){return t.detail.ids.map(Number).indexOf(e.id)>=0})),i=this.value.filter((function(e){return t.detail.ids.map(Number).indexOf(e.id)<0}));i.splice.apply(i,[t.detail.index,0].concat(J(r))),this.$emit("input",i),this.$emit("change",this.groups)},addListeners:function(){var t=this;Q.forEach((function(e){return t.$el.addEventListener(e,t[e])}))},removeListeners:function(){var t=this;Q.forEach((function(e){return t.$el.removeEventListener(e,t[e])}))}},mounted:function(){this.addListeners()},beforeDestroy:function(){this.removeListeners()}};r.d(e,"VueDraggableDirective",(function(){return Y}));var X=[],Y={bind:function(t,e,r){var i=new H(t,r.context,e.value);X.push(i)},componentUpdated:function(t){setTimeout((function(){X.forEach((function(e){e.el===t&&e.update(t)}))}))},unbind:function(t){X=X.filter((function(e){return e.el!==t}))}};H.install=function(t){t.directive("drag-and-drop",Y),t.component("vue-draggable-group",W)};e.default=H}])}));
2 | //# sourceMappingURL=vue-draggable.min.js.map
--------------------------------------------------------------------------------
/lib/vue-draggable.js.map:
--------------------------------------------------------------------------------
1 | {"version":3,"sources":["webpack://VueDraggable/webpack/universalModuleDefinition","webpack://VueDraggable/webpack/bootstrap","webpack://VueDraggable/./src/components/vue-draggable-group.component.js","webpack://VueDraggable/./src/core/helpers/dom.helper.js","webpack://VueDraggable/./src/core/helpers/events.helper.js","webpack://VueDraggable/./src/core/helpers/index.js","webpack://VueDraggable/./src/core/helpers/state.helper.js","webpack://VueDraggable/./src/core/index.js","webpack://VueDraggable/./src/core/listeners/handlers/dragend.handler.js","webpack://VueDraggable/./src/core/listeners/handlers/dragenter.handler.js","webpack://VueDraggable/./src/core/listeners/handlers/dragleave.handler.js","webpack://VueDraggable/./src/core/listeners/handlers/dragover.handler.js","webpack://VueDraggable/./src/core/listeners/handlers/dragstart.handler.js","webpack://VueDraggable/./src/core/listeners/handlers/index.js","webpack://VueDraggable/./src/core/listeners/handlers/keydown.handler.js","webpack://VueDraggable/./src/core/listeners/handlers/mousedown.handler.js","webpack://VueDraggable/./src/core/listeners/handlers/mouseup.handler.js","webpack://VueDraggable/./src/core/listeners/index.js","webpack://VueDraggable/./src/core/options.js","webpack://VueDraggable/./src/core/state.js","webpack://VueDraggable/./src/index.js"],"names":["CUSTOM_EVENTS","VueDraggableGroup","name","props","groups","required","type","Array","value","itemsKey","String","render","$scopedSlots","methods","added","event","newItems","map","group","reduce","prev","curr","filter","item","detail","ids","Number","indexOf","id","splice","index","$emit","removed","newArray","reordered","reorderedItems","notReorderedItems","addListeners","forEach","$el","addEventListener","removeListeners","removeEventListener","mounted","beforeDestroy","getDroptargets","el","dropzoneSelector","querySelectorAll","getDraggables","draggableSelector","updateInitialAttributes","targets","defaultOptions","items","i","length","setAttribute","getAttribute","setInitialAtributes","removeOldDropzoneAreaElements","oldItemDropzoneElements","document","remove","getContainer","element","containerElement","nodeType","parentNode","addDropeffects","selections","len","owner","removeAttribute","clearDropeffects","hasModifier","e","ctrlKey","metaKey","shiftKey","createCustomEvent","data","CustomEvent","dispatchCustomEvent","customEvent","dispatchEvent","dispatchReorderEvents","oldItems","droptarget","nextItemElement","prototype","call","eventData","dataset","nativeEvent","addSelection","multipleDropzonesItemsDraggingEnabled","removeSelection","clearSelections","stopDragAndDrop","Error","VueDraggable","componentInstance","options","Object","assign","getState","getOptions","registerListeners","initiate","attachListeners","bind","reorderDomElements","insertBefore","appendChild","dragendHandler","onDragend","stop","error","reactivityEnabled","onDrop","preventDefault","className","replace","dragenterHandler","related","target","onDragenter","dragleaveHandler","state","previousTarget","dragoverCalls","displayDropzones","closest","itemDropzoneElement","createElement","dragoverHandler","showDropzoneAreas","onDragover","dragstartHandler","elem","onDragstart","dataTransfer","setData","isItemAroundSelectionArea","lastItem","keydownHandler","keyCode","slice","pop","shouldSelectItem","focus","mousedownHandler","handlerSelector","handler","isItemInSelectionArea","offsetTop","mouseupHandler","instances","VueDraggableDirective","vnode","instance","context","push","componentUpdated","setTimeout","update","unbind","install","Vue","directive","component"],"mappings":"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","file":"vue-draggable.js","sourceRoot":""}
--------------------------------------------------------------------------------
/lib/vue-draggable.js:
--------------------------------------------------------------------------------
1 | (function webpackUniversalModuleDefinition(root, factory) {
2 | if(typeof exports === 'object' && typeof module === 'object')
3 | module.exports = factory();
4 | else if(typeof define === 'function' && define.amd)
5 | define("VueDraggable", [], factory);
6 | else if(typeof exports === 'object')
7 | exports["VueDraggable"] = factory();
8 | else
9 | root["VueDraggable"] = factory();
10 | })(this, function() {
11 | return /******/ (function(modules) { // webpackBootstrap
12 | /******/ // The module cache
13 | /******/ var installedModules = {};
14 | /******/
15 | /******/ // The require function
16 | /******/ function __webpack_require__(moduleId) {
17 | /******/
18 | /******/ // Check if module is in cache
19 | /******/ if(installedModules[moduleId]) {
20 | /******/ return installedModules[moduleId].exports;
21 | /******/ }
22 | /******/ // Create a new module (and put it into the cache)
23 | /******/ var module = installedModules[moduleId] = {
24 | /******/ i: moduleId,
25 | /******/ l: false,
26 | /******/ exports: {}
27 | /******/ };
28 | /******/
29 | /******/ // Execute the module function
30 | /******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
31 | /******/
32 | /******/ // Flag the module as loaded
33 | /******/ module.l = true;
34 | /******/
35 | /******/ // Return the exports of the module
36 | /******/ return module.exports;
37 | /******/ }
38 | /******/
39 | /******/
40 | /******/ // expose the modules object (__webpack_modules__)
41 | /******/ __webpack_require__.m = modules;
42 | /******/
43 | /******/ // expose the module cache
44 | /******/ __webpack_require__.c = installedModules;
45 | /******/
46 | /******/ // define getter function for harmony exports
47 | /******/ __webpack_require__.d = function(exports, name, getter) {
48 | /******/ if(!__webpack_require__.o(exports, name)) {
49 | /******/ Object.defineProperty(exports, name, { enumerable: true, get: getter });
50 | /******/ }
51 | /******/ };
52 | /******/
53 | /******/ // define __esModule on exports
54 | /******/ __webpack_require__.r = function(exports) {
55 | /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
56 | /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
57 | /******/ }
58 | /******/ Object.defineProperty(exports, '__esModule', { value: true });
59 | /******/ };
60 | /******/
61 | /******/ // create a fake namespace object
62 | /******/ // mode & 1: value is a module id, require it
63 | /******/ // mode & 2: merge all properties of value into the ns
64 | /******/ // mode & 4: return value when already ns object
65 | /******/ // mode & 8|1: behave like require
66 | /******/ __webpack_require__.t = function(value, mode) {
67 | /******/ if(mode & 1) value = __webpack_require__(value);
68 | /******/ if(mode & 8) return value;
69 | /******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
70 | /******/ var ns = Object.create(null);
71 | /******/ __webpack_require__.r(ns);
72 | /******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value });
73 | /******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
74 | /******/ return ns;
75 | /******/ };
76 | /******/
77 | /******/ // getDefaultExport function for compatibility with non-harmony modules
78 | /******/ __webpack_require__.n = function(module) {
79 | /******/ var getter = module && module.__esModule ?
80 | /******/ function getDefault() { return module['default']; } :
81 | /******/ function getModuleExports() { return module; };
82 | /******/ __webpack_require__.d(getter, 'a', getter);
83 | /******/ return getter;
84 | /******/ };
85 | /******/
86 | /******/ // Object.prototype.hasOwnProperty.call
87 | /******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
88 | /******/
89 | /******/ // __webpack_public_path__
90 | /******/ __webpack_require__.p = "";
91 | /******/
92 | /******/
93 | /******/ // Load entry module and return exports
94 | /******/ return __webpack_require__(__webpack_require__.s = "./src/index.js");
95 | /******/ })
96 | /************************************************************************/
97 | /******/ ({
98 |
99 | /***/ "./src/components/vue-draggable-group.component.js":
100 | /*!*********************************************************!*\
101 | !*** ./src/components/vue-draggable-group.component.js ***!
102 | \*********************************************************/
103 | /*! exports provided: VueDraggableGroup */
104 | /***/ (function(module, __webpack_exports__, __webpack_require__) {
105 |
106 | "use strict";
107 | __webpack_require__.r(__webpack_exports__);
108 | /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "VueDraggableGroup", function() { return VueDraggableGroup; });
109 | function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); }
110 |
111 | function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance"); }
112 |
113 | function _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === "[object Arguments]") return Array.from(iter); }
114 |
115 | function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } }
116 |
117 | var CUSTOM_EVENTS = ['added', 'removed', 'reordered'];
118 | var VueDraggableGroup = {
119 | name: 'VueDraggableGroup',
120 | props: {
121 | groups: {
122 | required: true,
123 | type: Array
124 | },
125 | value: {
126 | required: true,
127 | type: Array
128 | },
129 | itemsKey: {
130 | type: String,
131 | "default": 'items'
132 | }
133 | },
134 | render: function render() {
135 | return this.$scopedSlots["default"]({});
136 | },
137 | methods: {
138 | added: function added(event) {
139 | var _this = this,
140 | _this$value;
141 |
142 | var newItems = this.groups.map(function (group) {
143 | return group[_this.itemsKey];
144 | }).reduce(function (prev, curr) {
145 | return [].concat(_toConsumableArray(prev), _toConsumableArray(curr));
146 | }, []).filter(function (item) {
147 | return event.detail.ids.map(Number).indexOf(item.id) >= 0;
148 | });
149 |
150 | (_this$value = this.value).splice.apply(_this$value, [event.detail.index, 0].concat(_toConsumableArray(newItems)));
151 |
152 | this.$emit('change', this.groups);
153 | },
154 | removed: function removed(event) {
155 | var newArray = this.value.filter(function (item) {
156 | return event.detail.ids.map(Number).indexOf(item.id) < 0;
157 | });
158 | this.$emit('input', newArray);
159 | },
160 | reordered: function reordered(event, group) {
161 | var reorderedItems = this.value.filter(function (item) {
162 | return event.detail.ids.map(Number).indexOf(item.id) >= 0;
163 | });
164 | var notReorderedItems = this.value.filter(function (item) {
165 | return event.detail.ids.map(Number).indexOf(item.id) < 0;
166 | });
167 | notReorderedItems.splice.apply(notReorderedItems, [event.detail.index, 0].concat(_toConsumableArray(reorderedItems)));
168 | this.$emit('input', notReorderedItems);
169 | this.$emit('change', this.groups);
170 | },
171 | addListeners: function addListeners() {
172 | var _this2 = this;
173 |
174 | CUSTOM_EVENTS.forEach(function (event) {
175 | return _this2.$el.addEventListener(event, _this2[event]);
176 | });
177 | },
178 | removeListeners: function removeListeners() {
179 | var _this3 = this;
180 |
181 | CUSTOM_EVENTS.forEach(function (event) {
182 | return _this3.$el.removeEventListener(event, _this3[event]);
183 | });
184 | }
185 | },
186 | mounted: function mounted() {
187 | this.addListeners();
188 | },
189 | beforeDestroy: function beforeDestroy() {
190 | this.removeListeners();
191 | }
192 | };
193 |
194 | /***/ }),
195 |
196 | /***/ "./src/core/helpers/dom.helper.js":
197 | /*!****************************************!*\
198 | !*** ./src/core/helpers/dom.helper.js ***!
199 | \****************************************/
200 | /*! exports provided: getDroptargets, getDraggables, updateInitialAttributes, setInitialAtributes, removeOldDropzoneAreaElements, getContainer, addDropeffects, clearDropeffects, hasModifier */
201 | /***/ (function(module, __webpack_exports__, __webpack_require__) {
202 |
203 | "use strict";
204 | __webpack_require__.r(__webpack_exports__);
205 | /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getDroptargets", function() { return getDroptargets; });
206 | /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getDraggables", function() { return getDraggables; });
207 | /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "updateInitialAttributes", function() { return updateInitialAttributes; });
208 | /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setInitialAtributes", function() { return setInitialAtributes; });
209 | /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "removeOldDropzoneAreaElements", function() { return removeOldDropzoneAreaElements; });
210 | /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getContainer", function() { return getContainer; });
211 | /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "addDropeffects", function() { return addDropeffects; });
212 | /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "clearDropeffects", function() { return clearDropeffects; });
213 | /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "hasModifier", function() { return hasModifier; });
214 | var getDroptargets = function getDroptargets(el, dropzoneSelector) {
215 | return el.querySelectorAll(dropzoneSelector);
216 | };
217 | var getDraggables = function getDraggables(el, draggableSelector) {
218 | return el.querySelectorAll(draggableSelector);
219 | };
220 | var updateInitialAttributes = function updateInitialAttributes(el) {
221 | this.targets = getDroptargets(el, this.defaultOptions.dropzoneSelector);
222 | this.items = getDraggables(el, this.defaultOptions.draggableSelector);
223 |
224 | for (var i = 0; i < this.targets.length; i++) {
225 | this.targets[i].setAttribute('aria-dropeffect', 'none');
226 | }
227 |
228 | for (var _i = 0; _i < this.items.length; _i++) {
229 | this.items[_i].setAttribute('draggable', 'true');
230 |
231 | if (this.items[_i].getAttribute('aria-grabbed') !== 'true') {
232 | this.items[_i].setAttribute('aria-grabbed', 'false');
233 | }
234 |
235 | this.items[_i].setAttribute('tabindex', '0');
236 | }
237 | };
238 | var setInitialAtributes = function setInitialAtributes(el) {
239 | this.targets = getDroptargets(el, this.defaultOptions.dropzoneSelector);
240 | this.items = getDraggables(el, this.defaultOptions.draggableSelector);
241 |
242 | for (var i = 0; i < this.targets.length; i++) {
243 | this.targets[i].setAttribute('aria-dropeffect', 'none');
244 | }
245 |
246 | for (var _i2 = 0; _i2 < this.items.length; _i2++) {
247 | this.items[_i2].setAttribute('draggable', 'true');
248 |
249 | this.items[_i2].setAttribute('aria-grabbed', 'false');
250 |
251 | this.items[_i2].setAttribute('tabindex', '0');
252 | }
253 | };
254 | var removeOldDropzoneAreaElements = function removeOldDropzoneAreaElements() {
255 | var oldItemDropzoneElements = document.querySelectorAll('.item-dropzone-area');
256 |
257 | for (var i = 0; i < oldItemDropzoneElements.length; i++) {
258 | oldItemDropzoneElements[i].remove();
259 | }
260 | };
261 | var getContainer = function getContainer(element) {
262 | var containerElement = element;
263 |
264 | do {
265 | if (containerElement && containerElement.nodeType === 1 && containerElement.getAttribute('aria-dropeffect')) {
266 | return containerElement;
267 | }
268 | } while (containerElement = containerElement ? containerElement.parentNode : null);
269 |
270 | return null;
271 | };
272 | var addDropeffects = function addDropeffects(items, selections, targets) {
273 | // apply aria-dropeffect and tabindex to all targets apart from the owner
274 | for (var len = targets.length, i = 0; i < len; i++) {
275 | if (targets[i] !== selections.owner && targets[i].getAttribute('aria-dropeffect') === 'none') {
276 | targets[i].setAttribute('aria-dropeffect', 'move');
277 | targets[i].setAttribute('tabindex', '0');
278 | }
279 | } // remove aria-grabbed and tabindex from all items inside those containers
280 |
281 |
282 | for (var _len = items.length, _i3 = 0; _i3 < _len; _i3++) {
283 | if (items[_i3].parentNode !== selections.owner && items[_i3].getAttribute('aria-grabbed')) {
284 | items[_i3].removeAttribute('aria-grabbed');
285 |
286 | items[_i3].removeAttribute('tabindex');
287 | }
288 | }
289 | };
290 | var clearDropeffects = function clearDropeffects(items, selections, targets) {
291 | // if we dont't have any selected items just skip
292 | if (!selections.items.length) {
293 | return;
294 | } // reset aria-dropeffect and remove tabindex from all targets
295 |
296 |
297 | for (var i = 0; i < targets.length; i++) {
298 | if (targets[i].getAttribute('aria-dropeffect') !== 'none') {
299 | targets[i].setAttribute('aria-dropeffect', 'none');
300 | targets[i].removeAttribute('tabindex');
301 | }
302 | } // restore aria-grabbed and tabindex to all selectable items
303 | // without changing the grabbed value of any existing selected items
304 |
305 |
306 | for (var _i4 = 0; _i4 < items.length; _i4++) {
307 | if (!items[_i4].getAttribute('aria-grabbed')) {
308 | items[_i4].setAttribute('aria-grabbed', 'false');
309 |
310 | items[_i4].setAttribute('tabindex', '0');
311 | } else if (items[_i4].getAttribute('aria-grabbed') === 'true') {
312 | items[_i4].setAttribute('tabindex', '0');
313 | }
314 | }
315 | };
316 | var hasModifier = function hasModifier(e) {
317 | return e.ctrlKey || e.metaKey || e.shiftKey;
318 | };
319 |
320 | /***/ }),
321 |
322 | /***/ "./src/core/helpers/events.helper.js":
323 | /*!*******************************************!*\
324 | !*** ./src/core/helpers/events.helper.js ***!
325 | \*******************************************/
326 | /*! exports provided: dispatchCustomEvent, dispatchReorderEvents */
327 | /***/ (function(module, __webpack_exports__, __webpack_require__) {
328 |
329 | "use strict";
330 | __webpack_require__.r(__webpack_exports__);
331 | /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "dispatchCustomEvent", function() { return dispatchCustomEvent; });
332 | /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "dispatchReorderEvents", function() { return dispatchReorderEvents; });
333 | function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
334 |
335 | function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
336 |
337 | function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
338 |
339 | var createCustomEvent = function createCustomEvent(name, data) {
340 | return new CustomEvent(name, {
341 | detail: data
342 | });
343 | };
344 |
345 | var dispatchCustomEvent = function dispatchCustomEvent(name, data, element) {
346 | var customEvent = createCustomEvent(name, data);
347 | element.dispatchEvent(customEvent);
348 | };
349 | var dispatchReorderEvents = function dispatchReorderEvents(e) {
350 | var oldItems = this.selections.droptarget.querySelectorAll(this.defaultOptions.draggableSelector);
351 | var index = this.nextItemElement ? Array.prototype.indexOf.call(oldItems, this.nextItemElement) : oldItems.length;
352 |
353 | var eventData = _objectSpread({
354 | ids: this.selections.items.map(function (item) {
355 | return item.dataset.id;
356 | }),
357 | index: index,
358 | nativeEvent: e
359 | }, this.selections);
360 |
361 | if (this.selections.droptarget === this.selections.owner) {
362 | dispatchCustomEvent('reordered', eventData, this.selections.droptarget);
363 | return;
364 | }
365 |
366 | dispatchCustomEvent('added', eventData, this.selections.droptarget);
367 | dispatchCustomEvent('removed', eventData, this.selections.owner);
368 | };
369 |
370 | /***/ }),
371 |
372 | /***/ "./src/core/helpers/index.js":
373 | /*!***********************************!*\
374 | !*** ./src/core/helpers/index.js ***!
375 | \***********************************/
376 | /*! exports provided: getDroptargets, getDraggables, updateInitialAttributes, setInitialAtributes, removeOldDropzoneAreaElements, getContainer, addDropeffects, clearDropeffects, hasModifier, addSelection, removeSelection, clearSelections, stopDragAndDrop, dispatchCustomEvent, dispatchReorderEvents */
377 | /***/ (function(module, __webpack_exports__, __webpack_require__) {
378 |
379 | "use strict";
380 | __webpack_require__.r(__webpack_exports__);
381 | /* harmony import */ var _dom_helper__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./dom.helper */ "./src/core/helpers/dom.helper.js");
382 | /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getDroptargets", function() { return _dom_helper__WEBPACK_IMPORTED_MODULE_0__["getDroptargets"]; });
383 |
384 | /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getDraggables", function() { return _dom_helper__WEBPACK_IMPORTED_MODULE_0__["getDraggables"]; });
385 |
386 | /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "updateInitialAttributes", function() { return _dom_helper__WEBPACK_IMPORTED_MODULE_0__["updateInitialAttributes"]; });
387 |
388 | /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "setInitialAtributes", function() { return _dom_helper__WEBPACK_IMPORTED_MODULE_0__["setInitialAtributes"]; });
389 |
390 | /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "removeOldDropzoneAreaElements", function() { return _dom_helper__WEBPACK_IMPORTED_MODULE_0__["removeOldDropzoneAreaElements"]; });
391 |
392 | /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getContainer", function() { return _dom_helper__WEBPACK_IMPORTED_MODULE_0__["getContainer"]; });
393 |
394 | /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "addDropeffects", function() { return _dom_helper__WEBPACK_IMPORTED_MODULE_0__["addDropeffects"]; });
395 |
396 | /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "clearDropeffects", function() { return _dom_helper__WEBPACK_IMPORTED_MODULE_0__["clearDropeffects"]; });
397 |
398 | /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "hasModifier", function() { return _dom_helper__WEBPACK_IMPORTED_MODULE_0__["hasModifier"]; });
399 |
400 | /* harmony import */ var _state_helper__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./state.helper */ "./src/core/helpers/state.helper.js");
401 | /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "addSelection", function() { return _state_helper__WEBPACK_IMPORTED_MODULE_1__["addSelection"]; });
402 |
403 | /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "removeSelection", function() { return _state_helper__WEBPACK_IMPORTED_MODULE_1__["removeSelection"]; });
404 |
405 | /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "clearSelections", function() { return _state_helper__WEBPACK_IMPORTED_MODULE_1__["clearSelections"]; });
406 |
407 | /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "stopDragAndDrop", function() { return _state_helper__WEBPACK_IMPORTED_MODULE_1__["stopDragAndDrop"]; });
408 |
409 | /* harmony import */ var _events_helper__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./events.helper */ "./src/core/helpers/events.helper.js");
410 | /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "dispatchCustomEvent", function() { return _events_helper__WEBPACK_IMPORTED_MODULE_2__["dispatchCustomEvent"]; });
411 |
412 | /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "dispatchReorderEvents", function() { return _events_helper__WEBPACK_IMPORTED_MODULE_2__["dispatchReorderEvents"]; });
413 |
414 |
415 |
416 |
417 |
418 | /***/ }),
419 |
420 | /***/ "./src/core/helpers/state.helper.js":
421 | /*!******************************************!*\
422 | !*** ./src/core/helpers/state.helper.js ***!
423 | \******************************************/
424 | /*! exports provided: addSelection, removeSelection, clearSelections, stopDragAndDrop */
425 | /***/ (function(module, __webpack_exports__, __webpack_require__) {
426 |
427 | "use strict";
428 | __webpack_require__.r(__webpack_exports__);
429 | /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "addSelection", function() { return addSelection; });
430 | /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "removeSelection", function() { return removeSelection; });
431 | /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "clearSelections", function() { return clearSelections; });
432 | /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "stopDragAndDrop", function() { return stopDragAndDrop; });
433 | function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); }
434 |
435 | function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance"); }
436 |
437 | function _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === "[object Arguments]") return Array.from(iter); }
438 |
439 | function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } }
440 |
441 | var addSelection = function addSelection(item) {
442 | // if the owner reference is still null, set it to this item's parent
443 | // so that further selection is only allowed within the same container
444 | if (!this.selections.owner) {
445 | this.selections.owner = item.parentNode;
446 | } // or if that's already happened then compare it with this item's parent
447 | // and if they're not the same container, return to prevent selection
448 |
449 |
450 | if (!this.defaultOptions.multipleDropzonesItemsDraggingEnabled && this.selections.owner !== item.parentNode) {
451 | return;
452 | } // set this item's grabbed state
453 |
454 |
455 | item.setAttribute('aria-grabbed', 'true'); // add it to the items array
456 |
457 | this.selections.items = this.selections.items.indexOf(item) >= 0 ? this.selections.items : [].concat(_toConsumableArray(this.selections.items), [item]);
458 | };
459 | var removeSelection = function removeSelection(item) {
460 | // reset this item's grabbed state
461 | item.setAttribute('aria-grabbed', 'false'); // then find and remove this item from the existing items array
462 |
463 | for (var i = 0; i < this.selections.items.length; i++) {
464 | if (this.selections.items[i] === item) {
465 | this.selections.items.splice(i, 1);
466 | break;
467 | }
468 | }
469 | };
470 | var clearSelections = function clearSelections() {
471 | // if we have any selected items
472 | if (this.selections.items.length) {
473 | // reset the owner reference
474 | this.selections.owner = null; // reset the grabbed state on every selected item
475 |
476 | for (var i = 0; i < this.selections.items.length; i++) {
477 | this.selections.items[i].setAttribute('aria-grabbed', 'false');
478 | } // then reset the items array
479 |
480 |
481 | this.selections.items = [];
482 | }
483 | };
484 | var stopDragAndDrop = function stopDragAndDrop() {
485 | // throw exception and catch this to stop further d&d
486 | throw new Error('Requested D&D stop...');
487 | };
488 |
489 | /***/ }),
490 |
491 | /***/ "./src/core/index.js":
492 | /*!***************************!*\
493 | !*** ./src/core/index.js ***!
494 | \***************************/
495 | /*! exports provided: VueDraggable */
496 | /***/ (function(module, __webpack_exports__, __webpack_require__) {
497 |
498 | "use strict";
499 | __webpack_require__.r(__webpack_exports__);
500 | /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "VueDraggable", function() { return VueDraggable; });
501 | /* harmony import */ var _listeners__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./listeners */ "./src/core/listeners/index.js");
502 | /* harmony import */ var _helpers__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./helpers */ "./src/core/helpers/index.js");
503 | /* harmony import */ var _options__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./options */ "./src/core/options.js");
504 | /* harmony import */ var _state__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./state */ "./src/core/state.js");
505 | function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
506 |
507 | function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
508 |
509 | function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
510 |
511 |
512 |
513 |
514 |
515 | var VueDraggable =
516 | /*#__PURE__*/
517 | function () {
518 | function VueDraggable(el, componentInstance, options) {
519 | _classCallCheck(this, VueDraggable);
520 |
521 | Object.assign(this, Object(_state__WEBPACK_IMPORTED_MODULE_3__["getState"])(), {
522 | defaultOptions: Object(_options__WEBPACK_IMPORTED_MODULE_2__["getOptions"])(componentInstance, options)
523 | }, {
524 | el: el
525 | });
526 | this.registerListeners(el);
527 | this.initiate(el);
528 | }
529 |
530 | _createClass(VueDraggable, [{
531 | key: "registerListeners",
532 | value: function registerListeners(el) {
533 | _listeners__WEBPACK_IMPORTED_MODULE_0__["attachListeners"].bind(this)(el);
534 | }
535 | }, {
536 | key: "initiate",
537 | value: function initiate(el) {
538 | _helpers__WEBPACK_IMPORTED_MODULE_1__["setInitialAtributes"].bind(this)(el);
539 | }
540 | }, {
541 | key: "update",
542 | value: function update(el) {
543 | _helpers__WEBPACK_IMPORTED_MODULE_1__["updateInitialAttributes"].bind(this)(el);
544 | }
545 | }]);
546 |
547 | return VueDraggable;
548 | }();
549 | ;
550 |
551 | /***/ }),
552 |
553 | /***/ "./src/core/listeners/handlers/dragend.handler.js":
554 | /*!********************************************************!*\
555 | !*** ./src/core/listeners/handlers/dragend.handler.js ***!
556 | \********************************************************/
557 | /*! exports provided: dragendHandler */
558 | /***/ (function(module, __webpack_exports__, __webpack_require__) {
559 |
560 | "use strict";
561 | __webpack_require__.r(__webpack_exports__);
562 | /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "dragendHandler", function() { return dragendHandler; });
563 | /* harmony import */ var _helpers__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./../../helpers */ "./src/core/helpers/index.js");
564 | function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
565 |
566 | function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
567 |
568 | function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
569 |
570 |
571 |
572 | var reorderDomElements = function reorderDomElements(droptarget, items, nextItemElement) {
573 | for (var i = 0; i < items.length; i++) {
574 | if (nextItemElement) {
575 | droptarget.insertBefore(items[i], nextItemElement);
576 | continue;
577 | }
578 |
579 | droptarget.appendChild(items[i]);
580 | }
581 | };
582 |
583 | var dragendHandler = function dragendHandler(e) {
584 | if (typeof this.defaultOptions.onDragend === 'function') {
585 | try {
586 | this.defaultOptions.onDragend(_objectSpread({
587 | nativeEvent: e,
588 | stop: _helpers__WEBPACK_IMPORTED_MODULE_0__["stopDragAndDrop"]
589 | }, this.selections));
590 | } catch (error) {
591 | Object(_helpers__WEBPACK_IMPORTED_MODULE_0__["removeOldDropzoneAreaElements"])();
592 | return;
593 | }
594 | } // if we have a valid drop target reference
595 | // (which implies that we have some selected items)
596 |
597 |
598 | if (this.selections.droptarget) {
599 | if (this.defaultOptions.reactivityEnabled) {
600 | _helpers__WEBPACK_IMPORTED_MODULE_0__["dispatchReorderEvents"].bind(this)(e);
601 | } else {
602 | // make dom manipulation only if reactivity is disabled
603 | reorderDomElements(this.selections.droptarget, this.selections.items, this.nextItemElement);
604 | }
605 |
606 | if (typeof this.defaultOptions.onDrop === 'function') {
607 | this.defaultOptions.onDrop(_objectSpread({
608 | nativeEvent: e,
609 | stop: function stop() {
610 | throw new Error("Stop method is available only for callbacks\n 'onDragstart' and 'onDragend'. For more info look at\n https://github.com/Vivify-Ideas/vue-draggable/blob/master/README.md\n ");
611 | }
612 | }, this.selections));
613 | } // prevent default to allow the action
614 |
615 |
616 | e.preventDefault();
617 | } // if we have any selected items
618 |
619 |
620 | if (this.selections.items.length) {
621 | // clear dropeffect from the target containers
622 | Object(_helpers__WEBPACK_IMPORTED_MODULE_0__["clearDropeffects"])(this.items, this.selections, this.targets); // if we have a valid drop target reference
623 |
624 | if (this.selections.droptarget) {
625 | // reset the selections array
626 | _helpers__WEBPACK_IMPORTED_MODULE_0__["clearSelections"].bind(this)(); // reset the target's dragover class
627 |
628 | this.selections.droptarget.className = this.selections.droptarget.className.replace(/ dragover/g, ''); // reset the target reference
629 |
630 | this.selections.droptarget = null;
631 | }
632 | } // dropzone area elements
633 |
634 |
635 | Object(_helpers__WEBPACK_IMPORTED_MODULE_0__["removeOldDropzoneAreaElements"])();
636 | };
637 |
638 | /***/ }),
639 |
640 | /***/ "./src/core/listeners/handlers/dragenter.handler.js":
641 | /*!**********************************************************!*\
642 | !*** ./src/core/listeners/handlers/dragenter.handler.js ***!
643 | \**********************************************************/
644 | /*! exports provided: dragenterHandler */
645 | /***/ (function(module, __webpack_exports__, __webpack_require__) {
646 |
647 | "use strict";
648 | __webpack_require__.r(__webpack_exports__);
649 | /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "dragenterHandler", function() { return dragenterHandler; });
650 | function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
651 |
652 | function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
653 |
654 | function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
655 |
656 | var dragenterHandler = function dragenterHandler(e) {
657 | this.related = e.target;
658 |
659 | if (typeof this.defaultOptions.onDragenter === 'function') {
660 | try {
661 | this.defaultOptions.onDragenter(_objectSpread({
662 | nativeEvent: e,
663 | stop: function stop() {
664 | throw new Error("Stop method is available only for callbacks\n 'onDragstart' and 'onDragend'. For more info look at\n https://github.com/Vivify-Ideas/vue-draggable/blob/master/README.md\n ");
665 | }
666 | }, this.selections));
667 | } catch (error) {
668 | e.preventDefault();
669 | return;
670 | }
671 | }
672 | };
673 |
674 | /***/ }),
675 |
676 | /***/ "./src/core/listeners/handlers/dragleave.handler.js":
677 | /*!**********************************************************!*\
678 | !*** ./src/core/listeners/handlers/dragleave.handler.js ***!
679 | \**********************************************************/
680 | /*! exports provided: dragleaveHandler */
681 | /***/ (function(module, __webpack_exports__, __webpack_require__) {
682 |
683 | "use strict";
684 | __webpack_require__.r(__webpack_exports__);
685 | /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "dragleaveHandler", function() { return dragleaveHandler; });
686 | /* harmony import */ var _helpers__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./../../helpers */ "./src/core/helpers/index.js");
687 |
688 | var dragleaveHandler = function dragleaveHandler() {
689 | // get a drop target reference from the relatedTarget
690 | var droptarget = Object(_helpers__WEBPACK_IMPORTED_MODULE_0__["getContainer"])(this.related); // if the drop target is different from the last stored reference
691 | // (or we have one of those references but not the other one)
692 |
693 | if (droptarget !== this.selections.droptarget) {
694 | // if we have a saved reference, clear its existing dragover class
695 | if (this.selections.droptarget) {
696 | this.selections.droptarget.className = this.selections.droptarget.className.replace(/ dragover/g, '');
697 | } // apply the dragover class to the new drop target reference
698 |
699 |
700 | if (droptarget) {
701 | droptarget.className += ' dragover';
702 | } // then save that reference for next time
703 |
704 |
705 | this.selections.droptarget = droptarget;
706 | }
707 | };
708 |
709 | /***/ }),
710 |
711 | /***/ "./src/core/listeners/handlers/dragover.handler.js":
712 | /*!*********************************************************!*\
713 | !*** ./src/core/listeners/handlers/dragover.handler.js ***!
714 | \*********************************************************/
715 | /*! exports provided: dragoverHandler */
716 | /***/ (function(module, __webpack_exports__, __webpack_require__) {
717 |
718 | "use strict";
719 | __webpack_require__.r(__webpack_exports__);
720 | /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "dragoverHandler", function() { return dragoverHandler; });
721 | /* harmony import */ var _helpers__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./../../helpers */ "./src/core/helpers/index.js");
722 | function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
723 |
724 | function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
725 |
726 | function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
727 |
728 |
729 | var state = {
730 | previousTarget: null,
731 | dragoverCalls: 0
732 | };
733 |
734 | var displayDropzones = function displayDropzones(e) {
735 | if (state.dragoverCalls % 100 !== 0 && (e.target === state.previousTarget || !e.target || e.target.className === 'item-dropzone-area')) return;
736 | state.dragoverCalls++;
737 | state.previousTarget = e.target;
738 | this.nextItemElement = e.target.closest(this.defaultOptions.draggableSelector);
739 | this.selections.droptarget = e.target.closest(this.defaultOptions.dropzoneSelector);
740 | var itemDropzoneElement = document.createElement('div');
741 | itemDropzoneElement.className = 'item-dropzone-area';
742 | Object(_helpers__WEBPACK_IMPORTED_MODULE_0__["removeOldDropzoneAreaElements"])();
743 |
744 | if (this.selections.droptarget && this.nextItemElement) {
745 | this.selections.droptarget.insertBefore(itemDropzoneElement, state.previousTarget.closest(this.defaultOptions.draggableSelector));
746 | }
747 |
748 | if (this.selections.droptarget && !this.nextItemElement) {
749 | this.selections.droptarget.appendChild(itemDropzoneElement);
750 | }
751 | };
752 |
753 | var dragoverHandler = function dragoverHandler(e) {
754 | // if we have any selected items,
755 | // allow them to be dragged
756 | if (this.selections.items.length) {
757 | e.preventDefault();
758 | }
759 |
760 | if (!this.defaultOptions.showDropzoneAreas) {
761 | return;
762 | }
763 |
764 | displayDropzones.bind(this)(e);
765 |
766 | if (typeof this.defaultOptions.onDragover === 'function') {
767 | try {
768 | this.defaultOptions.onDragover(_objectSpread({
769 | nativeEvent: e,
770 | stop: function stop() {
771 | throw new Error("Stop method is available only for callbacks\n 'onDragstart' and 'onDragend'. For more info look at\n https://github.com/Vivify-Ideas/vue-draggable/blob/master/README.md\n ");
772 | }
773 | }, this.selections));
774 | } catch (error) {
775 | e.preventDefault();
776 | return;
777 | }
778 | }
779 | };
780 |
781 | /***/ }),
782 |
783 | /***/ "./src/core/listeners/handlers/dragstart.handler.js":
784 | /*!**********************************************************!*\
785 | !*** ./src/core/listeners/handlers/dragstart.handler.js ***!
786 | \**********************************************************/
787 | /*! exports provided: dragstartHandler */
788 | /***/ (function(module, __webpack_exports__, __webpack_require__) {
789 |
790 | "use strict";
791 | __webpack_require__.r(__webpack_exports__);
792 | /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "dragstartHandler", function() { return dragstartHandler; });
793 | /* harmony import */ var _helpers__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./../../helpers */ "./src/core/helpers/index.js");
794 | function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
795 |
796 | function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
797 |
798 | function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
799 |
800 |
801 | var dragstartHandler = function dragstartHandler(e) {
802 | var elem = e.target.closest(this.defaultOptions.draggableSelector); // if the element's parent is not the owner, then block this event
803 |
804 | if (!this.defaultOptions.multipleDropzonesItemsDraggingEnabled && elem && this.selections.owner !== elem.parentNode) {
805 | e.preventDefault();
806 | return;
807 | }
808 |
809 | if (typeof this.defaultOptions.onDragstart === 'function') {
810 | try {
811 | this.defaultOptions.onDragstart(_objectSpread({
812 | nativeEvent: e,
813 | stop: _helpers__WEBPACK_IMPORTED_MODULE_0__["stopDragAndDrop"]
814 | }, this.selections));
815 | } catch (error) {
816 | e.preventDefault();
817 | Object(_helpers__WEBPACK_IMPORTED_MODULE_0__["removeOldDropzoneAreaElements"])();
818 | return;
819 | }
820 | } // [else] if the multiple selection modifier is pressed
821 | // and the item's grabbed state is currently false
822 |
823 |
824 | if (Object(_helpers__WEBPACK_IMPORTED_MODULE_0__["hasModifier"])(e) && elem.getAttribute('aria-grabbed') === 'false') {
825 | // add this additional selection
826 | _helpers__WEBPACK_IMPORTED_MODULE_0__["addSelection"].bind(this)(elem);
827 | } // we don't need the transfer data, but we have to define something
828 | // otherwise the drop action won't work at all in firefox
829 | // most browsers support the proper mime-type syntax, eg. "text/plain"
830 | // but we have to use this incorrect syntax for the benefit of IE10+
831 |
832 |
833 | e.dataTransfer.setData('text', ''); // apply dropeffect to the target containers
834 |
835 | Object(_helpers__WEBPACK_IMPORTED_MODULE_0__["addDropeffects"])(this.items, this.selections, this.targets);
836 | };
837 |
838 | /***/ }),
839 |
840 | /***/ "./src/core/listeners/handlers/index.js":
841 | /*!**********************************************!*\
842 | !*** ./src/core/listeners/handlers/index.js ***!
843 | \**********************************************/
844 | /*! exports provided: mousedownHandler, mouseupHandler, dragoverHandler, dragstartHandler, dragenterHandler, dragleaveHandler, dragendHandler, keydownHandler */
845 | /***/ (function(module, __webpack_exports__, __webpack_require__) {
846 |
847 | "use strict";
848 | __webpack_require__.r(__webpack_exports__);
849 | /* harmony import */ var _mousedown_handler__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./mousedown.handler */ "./src/core/listeners/handlers/mousedown.handler.js");
850 | /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "mousedownHandler", function() { return _mousedown_handler__WEBPACK_IMPORTED_MODULE_0__["mousedownHandler"]; });
851 |
852 | /* harmony import */ var _mouseup_handler__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./mouseup.handler */ "./src/core/listeners/handlers/mouseup.handler.js");
853 | /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "mouseupHandler", function() { return _mouseup_handler__WEBPACK_IMPORTED_MODULE_1__["mouseupHandler"]; });
854 |
855 | /* harmony import */ var _dragover_handler__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./dragover.handler */ "./src/core/listeners/handlers/dragover.handler.js");
856 | /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "dragoverHandler", function() { return _dragover_handler__WEBPACK_IMPORTED_MODULE_2__["dragoverHandler"]; });
857 |
858 | /* harmony import */ var _dragstart_handler__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./dragstart.handler */ "./src/core/listeners/handlers/dragstart.handler.js");
859 | /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "dragstartHandler", function() { return _dragstart_handler__WEBPACK_IMPORTED_MODULE_3__["dragstartHandler"]; });
860 |
861 | /* harmony import */ var _dragenter_handler__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./dragenter.handler */ "./src/core/listeners/handlers/dragenter.handler.js");
862 | /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "dragenterHandler", function() { return _dragenter_handler__WEBPACK_IMPORTED_MODULE_4__["dragenterHandler"]; });
863 |
864 | /* harmony import */ var _dragleave_handler__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./dragleave.handler */ "./src/core/listeners/handlers/dragleave.handler.js");
865 | /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "dragleaveHandler", function() { return _dragleave_handler__WEBPACK_IMPORTED_MODULE_5__["dragleaveHandler"]; });
866 |
867 | /* harmony import */ var _dragend_handler__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./dragend.handler */ "./src/core/listeners/handlers/dragend.handler.js");
868 | /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "dragendHandler", function() { return _dragend_handler__WEBPACK_IMPORTED_MODULE_6__["dragendHandler"]; });
869 |
870 | /* harmony import */ var _keydown_handler__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./keydown.handler */ "./src/core/listeners/handlers/keydown.handler.js");
871 | /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "keydownHandler", function() { return _keydown_handler__WEBPACK_IMPORTED_MODULE_7__["keydownHandler"]; });
872 |
873 |
874 |
875 |
876 |
877 |
878 |
879 |
880 |
881 |
882 | /***/ }),
883 |
884 | /***/ "./src/core/listeners/handlers/keydown.handler.js":
885 | /*!********************************************************!*\
886 | !*** ./src/core/listeners/handlers/keydown.handler.js ***!
887 | \********************************************************/
888 | /*! exports provided: keydownHandler */
889 | /***/ (function(module, __webpack_exports__, __webpack_require__) {
890 |
891 | "use strict";
892 | __webpack_require__.r(__webpack_exports__);
893 | /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "keydownHandler", function() { return keydownHandler; });
894 | /* harmony import */ var _helpers__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./../../helpers */ "./src/core/helpers/index.js");
895 |
896 |
897 | var isItemAroundSelectionArea = function isItemAroundSelectionArea(item, lastItem) {
898 | return item.parentNode === lastItem.parentNode;
899 | };
900 |
901 | var keydownHandler = function keydownHandler(e) {
902 | // if the element is a grabbable item
903 | if (e.target.getAttribute('aria-grabbed')) {
904 | // Space is the selection or unselection keystroke
905 | if (e.keyCode === 32) {
906 | // if the multiple selection modifier is pressed
907 | if (Object(_helpers__WEBPACK_IMPORTED_MODULE_0__["hasModifier"])(e)) {
908 | // if the item's grabbed state is currently true
909 | if (e.target.getAttribute('aria-grabbed') === 'true') {
910 | // if this is the only selected item, clear dropeffect
911 | // from the target containers, which we must do first
912 | // in case subsequent unselection sets owner to null
913 | if (this.selections.items.length === 1) {
914 | Object(_helpers__WEBPACK_IMPORTED_MODULE_0__["clearDropeffects"])(this.items, this.selections, this.targets);
915 | } // unselect this item
916 |
917 |
918 | _helpers__WEBPACK_IMPORTED_MODULE_0__["removeSelection"].bind(this)(e.target); // if we have any selections
919 | // apply dropeffect to the target containers,
920 | // in case earlier selections were made by mouse
921 |
922 | if (this.selections.items.length) {
923 | Object(_helpers__WEBPACK_IMPORTED_MODULE_0__["addDropeffects"])(this.items, this.selections, this.targets);
924 | } // if that was the only selected item
925 | // then reset the owner container reference
926 |
927 |
928 | if (!this.selections.items.length) {
929 | this.selections.owner = null;
930 | }
931 | } else {
932 | // else [if its grabbed state is currently false]
933 | // add this additional selection
934 | _helpers__WEBPACK_IMPORTED_MODULE_0__["addSelection"].bind(this)(e.target); // apply dropeffect to the target containers
935 |
936 | Object(_helpers__WEBPACK_IMPORTED_MODULE_0__["addDropeffects"])(this.items, this.selections, this.targets);
937 | }
938 | } else if (e.target.getAttribute('aria-grabbed') === 'false') {
939 | // else [if the multiple selection modifier is not pressed]
940 | // and the item's grabbed state is currently false
941 | // clear dropeffect from the target containers
942 | Object(_helpers__WEBPACK_IMPORTED_MODULE_0__["clearDropeffects"])(this.items, this.selections, this.targets); // clear all existing selections
943 |
944 | _helpers__WEBPACK_IMPORTED_MODULE_0__["clearSelections"].bind(this)(); // add this new selection
945 |
946 | _helpers__WEBPACK_IMPORTED_MODULE_0__["addSelection"].bind(this)(e.target); // apply dropeffect to the target containers
947 |
948 | Object(_helpers__WEBPACK_IMPORTED_MODULE_0__["addDropeffects"])(this.items, this.selections, this.targets);
949 | } else {
950 | // else [if modifier is not pressed and grabbed is already true]
951 | // apply dropeffect to the target containers
952 | Object(_helpers__WEBPACK_IMPORTED_MODULE_0__["addDropeffects"])(this.items, this.selections, this.targets);
953 | } // then prevent default to avoid any conflict with native actions
954 |
955 |
956 | e.preventDefault();
957 | } // (CMD or Ctrl) + A - select all the items around the selected one
958 |
959 |
960 | if (e.keyCode === 65 && (e.ctrlKey || e.metaKey)) {
961 | var lastItem = this.selections.items.slice(-1).pop();
962 |
963 | if (this.items && this.items.length > 0) {
964 | for (var i = 0; i < this.items.length; i++) {
965 | var item = this.items[i];
966 | var shouldSelectItem = isItemAroundSelectionArea(item, lastItem);
967 | shouldSelectItem && _helpers__WEBPACK_IMPORTED_MODULE_0__["addSelection"].bind(this)(item);
968 | }
969 | }
970 |
971 | e.preventDefault(); // prevent entire page selection.
972 | } // Modifier + M is the end-of-selection keystroke
973 |
974 |
975 | if (e.keyCode === 77 && Object(_helpers__WEBPACK_IMPORTED_MODULE_0__["hasModifier"])(e)) {
976 | // if we have any selected items
977 | if (this.selections.items.length) {
978 | // apply dropeffect to the target containers
979 | // in case earlier selections were made by mouse
980 | Object(_helpers__WEBPACK_IMPORTED_MODULE_0__["addDropeffects"])(this.items, this.selections, this.targets); // if the owner container is the last one, focus the first one
981 |
982 | if (this.selections.owner === this.targets[this.targets.length - 1]) {
983 | this.targets[0].focus();
984 | } else {
985 | // else [if it's not the last one], find and focus the next one
986 | for (var _i = 0; _i < this.targets.length; _i++) {
987 | if (this.selections.owner === this.targets[_i]) {
988 | this.targets[_i + 1].focus();
989 |
990 | break;
991 | }
992 | }
993 | }
994 | } // then prevent default to avoid any conflict with native actions
995 |
996 |
997 | e.preventDefault();
998 | }
999 | } // Escape is the abort keystroke (for any target element)
1000 |
1001 |
1002 | if (e.keyCode === 27) {
1003 | // if we have any selected items
1004 | if (this.selections.items.length) {
1005 | // clear dropeffect from the target containers
1006 | Object(_helpers__WEBPACK_IMPORTED_MODULE_0__["clearDropeffects"])(this.items, this.selections, this.targets); // then set focus back on the last item that was selected, which is
1007 | // necessary because we've removed tabindex from the current focus
1008 |
1009 | this.selections.items[this.selections.items.length - 1].focus(); // clear all existing selections
1010 |
1011 | _helpers__WEBPACK_IMPORTED_MODULE_0__["clearSelections"].bind(this)(); // but don't prevent default so that native actions can still occur
1012 | }
1013 | } // if the element is a drop target container
1014 |
1015 |
1016 | if (e.target.getAttribute('aria-dropeffect')) {
1017 | // Enter or Modifier + M is the drop keystroke
1018 | if (e.keyCode === 13 || e.keyCode === 77 && Object(_helpers__WEBPACK_IMPORTED_MODULE_0__["hasModifier"])(e)) {
1019 | // append the selected items to the end of the target container
1020 | if (this.defaultOptions.reactivityEnabled) {
1021 | this.selections.droptarget = e.target;
1022 | _helpers__WEBPACK_IMPORTED_MODULE_0__["dispatchReorderEvents"].bind(this)(e);
1023 | } else {
1024 | for (var _i2 = 0; _i2 < this.selections.items.length; _i2++) {
1025 | e.target.appendChild(this.selections.items[_i2]);
1026 | }
1027 | } // clear dropeffect from the target containers
1028 |
1029 |
1030 | Object(_helpers__WEBPACK_IMPORTED_MODULE_0__["clearDropeffects"])(this.items, this.selections, this.targets); // then set focus back on the last item that was selected, which is
1031 | // necessary because we've removed tabindex from the current focus
1032 |
1033 | this.selections.items[this.selections.items.length - 1].focus(); // reset the selections array
1034 |
1035 | _helpers__WEBPACK_IMPORTED_MODULE_0__["clearSelections"].bind(this)(); // prevent default to to avoid any conflict with native actions
1036 |
1037 | e.preventDefault();
1038 | }
1039 | }
1040 | };
1041 |
1042 | /***/ }),
1043 |
1044 | /***/ "./src/core/listeners/handlers/mousedown.handler.js":
1045 | /*!**********************************************************!*\
1046 | !*** ./src/core/listeners/handlers/mousedown.handler.js ***!
1047 | \**********************************************************/
1048 | /*! exports provided: mousedownHandler */
1049 | /***/ (function(module, __webpack_exports__, __webpack_require__) {
1050 |
1051 | "use strict";
1052 | __webpack_require__.r(__webpack_exports__);
1053 | /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "mousedownHandler", function() { return mousedownHandler; });
1054 | /* harmony import */ var _helpers__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./../../helpers */ "./src/core/helpers/index.js");
1055 |
1056 | var mousedownHandler = function mousedownHandler(e) {
1057 | if (this.defaultOptions.handlerSelector) {
1058 | var handler = e.target.closest(this.defaultOptions.handlerSelector);
1059 |
1060 | if (!handler) {
1061 | return;
1062 | }
1063 | }
1064 |
1065 | var elem = e.target.closest(this.defaultOptions.draggableSelector); // if the element is a draggable item
1066 |
1067 | if (elem && elem.getAttribute('draggable')) {
1068 | // clear dropeffect from the target containers
1069 | Object(_helpers__WEBPACK_IMPORTED_MODULE_0__["clearDropeffects"])(this.items, this.selections, this.targets); // if the multiple selection modifier is not pressed
1070 | // and the item's grabbed state is currently false
1071 |
1072 | if (!Object(_helpers__WEBPACK_IMPORTED_MODULE_0__["hasModifier"])(e) && elem.getAttribute('aria-grabbed') === 'false') {
1073 | // clear all existing selections
1074 | _helpers__WEBPACK_IMPORTED_MODULE_0__["clearSelections"].bind(this)(); // then add this new selection
1075 |
1076 | _helpers__WEBPACK_IMPORTED_MODULE_0__["addSelection"].bind(this)(elem);
1077 | }
1078 | } else if (!Object(_helpers__WEBPACK_IMPORTED_MODULE_0__["hasModifier"])(e)) {
1079 | // else [if the element is anything else]
1080 | // and the selection modifier is not pressed
1081 | // clear dropeffect from the target containers
1082 | Object(_helpers__WEBPACK_IMPORTED_MODULE_0__["clearDropeffects"])(this.items, this.selections, this.targets); // clear all existing selections
1083 |
1084 | _helpers__WEBPACK_IMPORTED_MODULE_0__["clearSelections"].bind(this)();
1085 | } else {
1086 | // else [if the element is anything else and the modifier is pressed]
1087 | // clear dropeffect from the target containers
1088 | Object(_helpers__WEBPACK_IMPORTED_MODULE_0__["clearDropeffects"])(this.items, this.selections, this.targets);
1089 | }
1090 | };
1091 |
1092 | /***/ }),
1093 |
1094 | /***/ "./src/core/listeners/handlers/mouseup.handler.js":
1095 | /*!********************************************************!*\
1096 | !*** ./src/core/listeners/handlers/mouseup.handler.js ***!
1097 | \********************************************************/
1098 | /*! exports provided: mouseupHandler */
1099 | /***/ (function(module, __webpack_exports__, __webpack_require__) {
1100 |
1101 | "use strict";
1102 | __webpack_require__.r(__webpack_exports__);
1103 | /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "mouseupHandler", function() { return mouseupHandler; });
1104 | /* harmony import */ var _helpers__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./../../helpers */ "./src/core/helpers/index.js");
1105 |
1106 |
1107 | var isItemInSelectionArea = function isItemInSelectionArea(item, element, lastItem) {
1108 | return item.parentNode === element.parentNode && (element.offsetTop > lastItem.offsetTop && item.offsetTop <= element.offsetTop && item.offsetTop >= lastItem.offsetTop || item.offsetTop >= element.offsetTop && item.offsetTop <= lastItem.offsetTop);
1109 | };
1110 |
1111 | var mouseupHandler = function mouseupHandler(e) {
1112 | var elem = e.target.closest(this.defaultOptions.draggableSelector); // if the element is a draggable item
1113 |
1114 | if (elem && elem.getAttribute('draggable')) {
1115 | // if shift key is pressed select multiple items
1116 | if (Object(_helpers__WEBPACK_IMPORTED_MODULE_0__["hasModifier"])(e)) {
1117 | if (this.selections.items.length && e.shiftKey) {
1118 | // last selected item
1119 | var lastItem = this.selections.items.slice(-1).pop();
1120 |
1121 | if (this.items && this.items.length > 0) {
1122 | for (var i = 0; i < this.items.length; i++) {
1123 | var item = this.items[i];
1124 | var shouldSelectItem = isItemInSelectionArea(item, elem, lastItem);
1125 | shouldSelectItem && _helpers__WEBPACK_IMPORTED_MODULE_0__["addSelection"].bind(this)(item);
1126 | } // if the item's grabbed state is currently true
1127 |
1128 | }
1129 | } else if (elem.getAttribute('aria-grabbed') === 'true') {
1130 | // unselect this item
1131 | _helpers__WEBPACK_IMPORTED_MODULE_0__["removeSelection"].bind(this)(elem); // if that was the only selected item
1132 | // then reset the owner container reference
1133 |
1134 | if (!this.selections.items.length) {
1135 | this.selections.owner = null;
1136 | }
1137 | } else {
1138 | // else [if the item's grabbed state is false]
1139 | // add this additional selection
1140 | _helpers__WEBPACK_IMPORTED_MODULE_0__["addSelection"].bind(this)(elem);
1141 | }
1142 | } else {
1143 | // if no modifier, clear all selections and add current item.
1144 | _helpers__WEBPACK_IMPORTED_MODULE_0__["clearSelections"].bind(this)();
1145 | _helpers__WEBPACK_IMPORTED_MODULE_0__["addSelection"].bind(this)(elem);
1146 | }
1147 | }
1148 | };
1149 |
1150 | /***/ }),
1151 |
1152 | /***/ "./src/core/listeners/index.js":
1153 | /*!*************************************!*\
1154 | !*** ./src/core/listeners/index.js ***!
1155 | \*************************************/
1156 | /*! exports provided: attachListeners */
1157 | /***/ (function(module, __webpack_exports__, __webpack_require__) {
1158 |
1159 | "use strict";
1160 | __webpack_require__.r(__webpack_exports__);
1161 | /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "attachListeners", function() { return attachListeners; });
1162 | /* harmony import */ var _handlers__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./handlers */ "./src/core/listeners/handlers/index.js");
1163 |
1164 | var attachListeners = function attachListeners(el) {
1165 | // mousedown event to clear previous selections
1166 | el.addEventListener('mousedown', _handlers__WEBPACK_IMPORTED_MODULE_0__["mousedownHandler"].bind(this), false); // mouseup event to implement multiple selection
1167 |
1168 | el.addEventListener('mouseup', _handlers__WEBPACK_IMPORTED_MODULE_0__["mouseupHandler"].bind(this), false); // dragstart event to initiate mouse dragging
1169 |
1170 | el.addEventListener('dragstart', _handlers__WEBPACK_IMPORTED_MODULE_0__["dragstartHandler"].bind(this), false); // keydown event to implement selection and abort
1171 |
1172 | el.addEventListener('keydown', _handlers__WEBPACK_IMPORTED_MODULE_0__["keydownHandler"].bind(this), false); // dragenter event to set related variable
1173 |
1174 | el.addEventListener('dragenter', _handlers__WEBPACK_IMPORTED_MODULE_0__["dragenterHandler"].bind(this), false); // dragleave event to maintain target highlighting using that variable
1175 |
1176 | el.addEventListener('dragleave', _handlers__WEBPACK_IMPORTED_MODULE_0__["dragleaveHandler"].bind(this), false); // dragover event to allow the drag by preventing its default
1177 |
1178 | el.addEventListener('dragover', _handlers__WEBPACK_IMPORTED_MODULE_0__["dragoverHandler"].bind(this), false); // dragend event to implement items being validly dropped into targets,
1179 | // or invalidly dropped elsewhere, and to clean-up the interface either way
1180 |
1181 | el.addEventListener('dragend', _handlers__WEBPACK_IMPORTED_MODULE_0__["dragendHandler"].bind(this), false);
1182 | };
1183 |
1184 | /***/ }),
1185 |
1186 | /***/ "./src/core/options.js":
1187 | /*!*****************************!*\
1188 | !*** ./src/core/options.js ***!
1189 | \*****************************/
1190 | /*! exports provided: getOptions */
1191 | /***/ (function(module, __webpack_exports__, __webpack_require__) {
1192 |
1193 | "use strict";
1194 | __webpack_require__.r(__webpack_exports__);
1195 | /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getOptions", function() { return getOptions; });
1196 | function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
1197 |
1198 | function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
1199 |
1200 | function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
1201 |
1202 | var getOptions = function getOptions(componentInstance, options) {
1203 | return _objectSpread({
1204 | dropzoneSelector: 'ul',
1205 | draggableSelector: 'li',
1206 | handlerSelector: null,
1207 | reactivityEnabled: true,
1208 | multipleDropzonesItemsDraggingEnabled: false,
1209 | showDropzoneAreas: true
1210 | }, options, {
1211 | onDragstart: (options.onDragstart || function () {}).bind(componentInstance),
1212 | onDragenter: (options.onDragenter || function () {}).bind(componentInstance),
1213 | onDragover: (options.onDragover || function () {}).bind(componentInstance),
1214 | onDragend: (options.onDragend || function () {}).bind(componentInstance),
1215 | onDrop: (options.onDrop || function () {}).bind(componentInstance)
1216 | });
1217 | };
1218 |
1219 | /***/ }),
1220 |
1221 | /***/ "./src/core/state.js":
1222 | /*!***************************!*\
1223 | !*** ./src/core/state.js ***!
1224 | \***************************/
1225 | /*! exports provided: getState */
1226 | /***/ (function(module, __webpack_exports__, __webpack_require__) {
1227 |
1228 | "use strict";
1229 | __webpack_require__.r(__webpack_exports__);
1230 | /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getState", function() { return getState; });
1231 | var getState = function getState() {
1232 | return {
1233 | targets: null,
1234 | items: null,
1235 | nextItemElement: null,
1236 | // related variable is needed to maintain a reference to the
1237 | // dragleave's relatedTarget, since it doesn't have e.relatedTarget
1238 | related: null,
1239 | selections: {
1240 | items: [],
1241 | owner: null,
1242 | droptarget: null
1243 | }
1244 | };
1245 | };
1246 |
1247 | /***/ }),
1248 |
1249 | /***/ "./src/index.js":
1250 | /*!**********************!*\
1251 | !*** ./src/index.js ***!
1252 | \**********************/
1253 | /*! exports provided: VueDraggableDirective, default */
1254 | /***/ (function(module, __webpack_exports__, __webpack_require__) {
1255 |
1256 | "use strict";
1257 | __webpack_require__.r(__webpack_exports__);
1258 | /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "VueDraggableDirective", function() { return VueDraggableDirective; });
1259 | /* harmony import */ var _core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./core */ "./src/core/index.js");
1260 | /* harmony import */ var _components_vue_draggable_group_component__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./components/vue-draggable-group.component */ "./src/components/vue-draggable-group.component.js");
1261 |
1262 |
1263 | var instances = [];
1264 | var VueDraggableDirective = {
1265 | bind: function bind(el, options, vnode) {
1266 | var instance = new _core__WEBPACK_IMPORTED_MODULE_0__["VueDraggable"](el, vnode.context, options.value);
1267 | instances.push(instance);
1268 | },
1269 | componentUpdated: function componentUpdated(el) {
1270 | setTimeout(function () {
1271 | instances.forEach(function (instance) {
1272 | if (instance.el !== el) return;
1273 | instance.update(el);
1274 | });
1275 | });
1276 | },
1277 | unbind: function unbind(el) {
1278 | instances = instances.filter(function (instance) {
1279 | return instance.el !== el;
1280 | });
1281 | }
1282 | };
1283 |
1284 | _core__WEBPACK_IMPORTED_MODULE_0__["VueDraggable"].install = function (Vue) {
1285 | Vue.directive('drag-and-drop', VueDraggableDirective);
1286 | Vue.component('vue-draggable-group', _components_vue_draggable_group_component__WEBPACK_IMPORTED_MODULE_1__["VueDraggableGroup"]);
1287 | };
1288 |
1289 | /* harmony default export */ __webpack_exports__["default"] = (_core__WEBPACK_IMPORTED_MODULE_0__["VueDraggable"]);
1290 |
1291 | /***/ })
1292 |
1293 | /******/ });
1294 | });
1295 | //# sourceMappingURL=vue-draggable.js.map
--------------------------------------------------------------------------------