Skip to content

Commit d2c1c62

Browse files
Adjusting index with header slot
1 parent b9e55a8 commit d2c1c62

File tree

4 files changed

+15
-4
lines changed

4 files changed

+15
-4
lines changed

dist/vuedraggable.js

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@ function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr
5151
var rawIndexes = [].concat(_toConsumableArray(children)).map(function (elt) {
5252
return elmFromNodes.indexOf(elt);
5353
});
54+
console.log(JSON.stringify(rawIndexes));
5455
return isTransition ? rawIndexes.filter(function (ind) {
5556
return ind !== -1;
5657
}) : rawIndexes;
@@ -139,17 +140,20 @@ function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr
139140
this.transitionMode = true;
140141
}
141142
}
143+
var headerOffset = 0;
142144
var children = slots;
143145
var _$slots = this.$slots,
144146
header = _$slots.header,
145147
footer = _$slots.footer;
146148

147149
if (header) {
150+
headerOffset = header.length;
148151
children = children ? [].concat(_toConsumableArray(header), _toConsumableArray(children)) : [].concat(_toConsumableArray(header));
149152
}
150153
if (footer) {
151154
children = children ? [].concat(_toConsumableArray(children), _toConsumableArray(footer)) : [].concat(_toConsumableArray(footer));
152155
}
156+
this.headerOffset = headerOffset;
153157
var attributes = null;
154158
var update = function update(name, value) {
155159
attributes = buildAttribute(attributes, name, value);
@@ -311,9 +315,10 @@ function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr
311315
return context;
312316
},
313317
getVmIndex: function getVmIndex(domIndex) {
318+
var correctedDomIndex = domIndex + this.headerOffset;
314319
var indexes = this.visibleIndexes;
315320
var numberIndexes = indexes.length;
316-
return domIndex > numberIndexes - 1 ? numberIndexes : indexes[domIndex];
321+
return correctedDomIndex > numberIndexes - 1 ? numberIndexes : indexes[correctedDomIndex];
317322
},
318323
getComponent: function getComponent() {
319324
return this.$slots.default[0].componentInstance;
@@ -358,10 +363,12 @@ function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr
358363
this.emitChanges({ removed: removed });
359364
},
360365
onDragUpdate: function onDragUpdate(evt) {
366+
console.log(evt.newIndex, evt.oldIndex, evt.item);
361367
removeNode(evt.item);
362368
insertNodeAt(evt.from, evt.item, evt.oldIndex);
363369
var oldIndex = this.context.index;
364370
var newIndex = this.getVmIndex(evt.newIndex);
371+
console.log(newIndex);
365372
this.updatePosition(oldIndex, newIndex);
366373
var moved = { element: this.context.element, oldIndex: oldIndex, newIndex: newIndex };
367374
this.emitChanges({ moved: moved });

dist/vuedraggable.min.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

examples/headerslot.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
<head>
44
<meta charset="utf-8">
55
<meta http-equiv="x-ua-compatible" content="ie=edge">
6-
<title>c</title>
6+
<title>Header slot</title>
77
<meta name="description" content="">
88
<meta name="viewport" content="width=device-width, initial-scale=1">
99

src/vuedraggable.js

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -114,14 +114,17 @@
114114
this.transitionMode = true
115115
}
116116
}
117+
let headerOffset = 0
117118
let children = slots
118119
const { header, footer } = this.$slots
119120
if (header) {
121+
headerOffset = header.length
120122
children = children ? [...header, ...children] : [...header];
121123
}
122124
if (footer) {
123125
children = children ? [...children, ...footer] : [...footer]
124126
}
127+
this.headerOffset = headerOffset;
125128
var attributes = null;
126129
const update = (name, value) => { attributes = buildAttribute(attributes, name, value); };
127130
update('attrs', this.$attrs);
@@ -271,9 +274,10 @@
271274
},
272275

273276
getVmIndex(domIndex) {
277+
const correctedDomIndex = domIndex + this.headerOffset
274278
const indexes = this.visibleIndexes
275279
const numberIndexes = indexes.length
276-
return (domIndex > numberIndexes - 1) ? numberIndexes : indexes[domIndex]
280+
return (correctedDomIndex > numberIndexes - 1) ? numberIndexes : indexes[correctedDomIndex]
277281
},
278282

279283
getComponent() {

0 commit comments

Comments
 (0)