@deephaven/grid 0.13.2-beta.0 → 0.13.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/Grid.d.ts +2 -2
- package/dist/Grid.d.ts.map +1 -1
- package/dist/Grid.js.map +1 -1
- package/dist/GridUtils.d.ts +52 -2
- package/dist/GridUtils.d.ts.map +1 -1
- package/dist/GridUtils.js +148 -88
- package/dist/GridUtils.js.map +1 -1
- package/package.json +3 -3
package/dist/GridUtils.d.ts
CHANGED
|
@@ -4,8 +4,10 @@ import { BoxCoordinates, Coordinate, CoordinateMap, VisibleIndex, IndexModelMap,
|
|
|
4
4
|
import type { GridMetrics } from './GridMetrics';
|
|
5
5
|
import { GridTheme } from './GridTheme';
|
|
6
6
|
import { GridWheelEvent } from './GridMouseHandler';
|
|
7
|
-
|
|
8
|
-
export declare type
|
|
7
|
+
declare type Range<T> = [start: T, end: T];
|
|
8
|
+
export declare type AxisRange = Range<VisibleIndex>;
|
|
9
|
+
export declare type BoundedAxisRange = Range<number>;
|
|
10
|
+
export declare type GridAxisRange = Range<GridRangeIndex>;
|
|
9
11
|
export declare type GridPoint = {
|
|
10
12
|
x: Coordinate;
|
|
11
13
|
y: Coordinate;
|
|
@@ -219,6 +221,24 @@ export declare class GridUtils {
|
|
|
219
221
|
* @returns The model index of the item
|
|
220
222
|
*/
|
|
221
223
|
static getModelIndex(visibleIndex: VisibleIndex, movedItems?: MoveOperation[]): ModelIndex;
|
|
224
|
+
/**
|
|
225
|
+
* Applies the items moves to the AxisRange
|
|
226
|
+
* @param start The start index of the range
|
|
227
|
+
* @param end The end index of the range
|
|
228
|
+
* @param movedItems The move operations to apply
|
|
229
|
+
* @param reverse If the moved items should be applied in reverse (this reverses the effects of the moves)
|
|
230
|
+
* @returns A list of AxisRanges in the translated space. Possibly multiple non-continuous ranges
|
|
231
|
+
*/
|
|
232
|
+
private static applyItemMoves;
|
|
233
|
+
/**
|
|
234
|
+
* Applies the items moves to the givengrid range
|
|
235
|
+
* @param range The grid range to translate
|
|
236
|
+
* @param movedColumns The moved columns
|
|
237
|
+
* @param movedRows The moved rows
|
|
238
|
+
* @param reverse If the moved items should be reversed (i.e. visible to model range)
|
|
239
|
+
* @returns A list of grid ranges in the translated space. Possibly multiple non-continuous ranges
|
|
240
|
+
*/
|
|
241
|
+
static translateRange(range: GridRange, movedColumns: MoveOperation[], movedRows: MoveOperation[], reverse: boolean): GridRange[];
|
|
222
242
|
/**
|
|
223
243
|
* Translate the provided UI start/end indexes to the model start/end indexes by applying the `movedItems` transformations.
|
|
224
244
|
* Since moved items can split apart a range, multiple pairs of indexes are returned
|
|
@@ -249,6 +269,36 @@ export declare class GridUtils {
|
|
|
249
269
|
* @returns The model ranges after translation.
|
|
250
270
|
*/
|
|
251
271
|
static getModelRanges(uiRanges: GridRange[], movedColumns?: MoveOperation[], movedRows?: MoveOperation[]): GridRange[];
|
|
272
|
+
/**
|
|
273
|
+
* Translate the provided UI start/end indexes to the model start/end indexes by applying the `movedItems` transformations.
|
|
274
|
+
* Since moved items can split apart a range, multiple pairs of indexes are returned
|
|
275
|
+
*
|
|
276
|
+
* @param start Start item in one dimension
|
|
277
|
+
* @param end End item in one dimension
|
|
278
|
+
* @param movedItems Moved item pairs in this dimension
|
|
279
|
+
* @returns Array of start/end pairs of the indexes after transformations applied.
|
|
280
|
+
*/
|
|
281
|
+
static getVisibleRangeIndexes(start: GridRangeIndex, end: GridRangeIndex, movedItems: MoveOperation[]): GridAxisRange[];
|
|
282
|
+
/**
|
|
283
|
+
* Translate the provided UI range into model range, using the `movedColumns` and `movedRows` to apply the necessary transforms.
|
|
284
|
+
* `movedColumns` and `movedRows` are array of operations done to the UI indexes to re-order items
|
|
285
|
+
*
|
|
286
|
+
* @param uiRange The currently selected UI ranges
|
|
287
|
+
* @param movedColumns The moved column pairs
|
|
288
|
+
* @param movedRows The moved row pairs
|
|
289
|
+
* @returns The model ranges after translation.
|
|
290
|
+
*/
|
|
291
|
+
static getVisibleRange(modelRange: GridRange, movedColumns?: MoveOperation[], movedRows?: MoveOperation[]): GridRange[];
|
|
292
|
+
/**
|
|
293
|
+
* Translate the provided model ranges into visible ranges, using the `movedColumns` and `movedRows` to apply the necessary transforms.
|
|
294
|
+
* `movedColumns` and `movedRows` are array of operations done to the UI indexes to re-order items
|
|
295
|
+
*
|
|
296
|
+
* @param modelRanges The model ranges
|
|
297
|
+
* @param movedColumns The moved column pairs
|
|
298
|
+
* @param movedRows The moved row pairs
|
|
299
|
+
* @returns The model ranges after translation.
|
|
300
|
+
*/
|
|
301
|
+
static getVisibleRanges(modelRanges: GridRange[], movedColumns?: MoveOperation[], movedRows?: MoveOperation[]): GridRange[];
|
|
252
302
|
/**
|
|
253
303
|
* Retrieve the visible index given the currently moved items
|
|
254
304
|
* @param modelIndex The model index to get the visible index for
|
package/dist/GridUtils.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GridUtils.d.ts","sourceRoot":"","sources":["../src/GridUtils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,SAAS,EAAE,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AACxD,OAAO,EACL,cAAc,EACd,UAAU,EACV,aAAa,EACb,YAAY,EACZ,aAAa,EACb,UAAU,EACV,YAAY,EACZ,aAAa,EACb,OAAO,EACR,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEpD,
|
|
1
|
+
{"version":3,"file":"GridUtils.d.ts","sourceRoot":"","sources":["../src/GridUtils.ts"],"names":[],"mappings":"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"}
|
package/dist/GridUtils.js
CHANGED
|
@@ -655,97 +655,89 @@ export class GridUtils {
|
|
|
655
655
|
|
|
656
656
|
static getModelIndex(visibleIndex) {
|
|
657
657
|
var movedItems = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
|
|
658
|
-
var modelIndex = visibleIndex;
|
|
659
|
-
|
|
660
|
-
for (var i = movedItems.length - 1; i >= 0; i -= 1) {
|
|
661
|
-
var movedItem = movedItems[i];
|
|
662
|
-
|
|
663
|
-
if (modelIndex === movedItem.to) {
|
|
664
|
-
({
|
|
665
|
-
from: modelIndex
|
|
666
|
-
} = movedItem);
|
|
667
|
-
} else if (movedItem.from <= modelIndex && modelIndex < movedItem.to) {
|
|
668
|
-
modelIndex += 1;
|
|
669
|
-
} else if (movedItem.to < modelIndex && modelIndex <= movedItem.from) {
|
|
670
|
-
modelIndex -= 1;
|
|
671
|
-
}
|
|
672
|
-
}
|
|
673
|
-
|
|
658
|
+
var modelIndex = GridUtils.applyItemMoves(visibleIndex, visibleIndex, movedItems, true)[0][0];
|
|
674
659
|
return modelIndex;
|
|
675
660
|
}
|
|
676
661
|
/**
|
|
677
|
-
*
|
|
678
|
-
*
|
|
679
|
-
*
|
|
680
|
-
* @param
|
|
681
|
-
* @param
|
|
682
|
-
* @
|
|
683
|
-
* @returns Array of start/end pairs of the indexes after transformations applied.
|
|
662
|
+
* Applies the items moves to the AxisRange
|
|
663
|
+
* @param start The start index of the range
|
|
664
|
+
* @param end The end index of the range
|
|
665
|
+
* @param movedItems The move operations to apply
|
|
666
|
+
* @param reverse If the moved items should be applied in reverse (this reverses the effects of the moves)
|
|
667
|
+
* @returns A list of AxisRanges in the translated space. Possibly multiple non-continuous ranges
|
|
684
668
|
*/
|
|
685
669
|
|
|
686
670
|
|
|
687
|
-
static
|
|
688
|
-
|
|
689
|
-
return [[start, end]];
|
|
690
|
-
}
|
|
691
|
-
|
|
671
|
+
static applyItemMoves(start, end, movedItems) {
|
|
672
|
+
var reverse = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
|
|
692
673
|
var result = [[start, end]];
|
|
693
674
|
|
|
694
|
-
|
|
695
|
-
return result;
|
|
696
|
-
} // movedItems is built by adding a new item whenever an item in the UI is dragged/moved, transforming a model
|
|
697
|
-
// index to the new UI index. We want to find the model index from the UI index here, so we unwind the
|
|
698
|
-
// transformations applied - the start/end axis range passed in is the current UI range, so we need to apply
|
|
699
|
-
// the transformations starting at the end of the chain backward to find the appropriate model indexes
|
|
700
|
-
|
|
701
|
-
|
|
702
|
-
for (var i = movedItems.length - 1; i >= 0; i -= 1) {
|
|
675
|
+
for (var i = reverse ? movedItems.length - 1 : 0; reverse ? i >= 0 : i < movedItems.length; reverse ? i -= 1 : i += 1) {
|
|
703
676
|
var {
|
|
704
|
-
from,
|
|
705
|
-
to
|
|
677
|
+
from: fromItem,
|
|
678
|
+
to: toItem
|
|
706
679
|
} = movedItems[i];
|
|
680
|
+
var from = reverse ? toItem : fromItem;
|
|
681
|
+
var to = reverse ? fromItem : toItem;
|
|
707
682
|
var nextResult = [];
|
|
708
683
|
|
|
709
684
|
for (var j = 0; j < result.length; j += 1) {
|
|
710
|
-
var
|
|
685
|
+
var _result$j$, _result$j$2;
|
|
686
|
+
|
|
687
|
+
var currentStart = (_result$j$ = result[j][0]) !== null && _result$j$ !== void 0 ? _result$j$ : Number.NEGATIVE_INFINITY;
|
|
688
|
+
var currentEnd = (_result$j$2 = result[j][1]) !== null && _result$j$2 !== void 0 ? _result$j$2 : Number.POSITIVE_INFINITY;
|
|
711
689
|
var startLength = nextResult.length;
|
|
712
690
|
|
|
713
|
-
if (from
|
|
691
|
+
if (from < currentStart) {
|
|
714
692
|
// From before
|
|
715
|
-
if (to
|
|
693
|
+
if (to >= currentEnd) {
|
|
716
694
|
// To after
|
|
717
|
-
nextResult.push([currentStart
|
|
695
|
+
nextResult.push([currentStart - 1, currentEnd - 1]);
|
|
718
696
|
} else if (to >= currentStart) {
|
|
719
697
|
// To within
|
|
720
|
-
nextResult.push([
|
|
721
|
-
nextResult.push([
|
|
698
|
+
nextResult.push([currentStart - 1, to - 1]);
|
|
699
|
+
nextResult.push([to + 1, currentEnd]);
|
|
722
700
|
}
|
|
723
701
|
} else if (from > currentEnd) {
|
|
724
702
|
// From after
|
|
725
|
-
if (to
|
|
703
|
+
if (to <= currentStart) {
|
|
726
704
|
// To before
|
|
727
|
-
nextResult.push([currentStart
|
|
705
|
+
nextResult.push([currentStart + 1, currentEnd + 1]);
|
|
728
706
|
} else if (to <= currentEnd) {
|
|
729
707
|
// To within
|
|
730
|
-
nextResult.push([
|
|
731
|
-
nextResult.push([
|
|
708
|
+
nextResult.push([currentStart, to - 1]);
|
|
709
|
+
nextResult.push([to + 1, currentEnd + 1]);
|
|
732
710
|
}
|
|
733
711
|
} else if (to < currentStart) {
|
|
734
712
|
// From within to before
|
|
735
|
-
|
|
736
|
-
|
|
713
|
+
if (from > currentStart) {
|
|
714
|
+
nextResult.push([currentStart + 1, from]);
|
|
715
|
+
}
|
|
716
|
+
|
|
717
|
+
nextResult.push([to, to]);
|
|
718
|
+
|
|
719
|
+
if (from < currentEnd) {
|
|
720
|
+
nextResult.push([from + 1, currentEnd]);
|
|
721
|
+
}
|
|
737
722
|
} else if (to > currentEnd) {
|
|
738
723
|
// From within to after
|
|
739
|
-
|
|
740
|
-
|
|
724
|
+
if (from > currentStart) {
|
|
725
|
+
nextResult.push([currentStart, from - 1]);
|
|
726
|
+
}
|
|
727
|
+
|
|
728
|
+
nextResult.push([to, to]);
|
|
729
|
+
|
|
730
|
+
if (from < currentEnd) {
|
|
731
|
+
nextResult.push([from, currentEnd - 1]);
|
|
732
|
+
}
|
|
741
733
|
} else if (from > to) {
|
|
742
734
|
// From within after to within before
|
|
743
735
|
if (to > currentStart) {
|
|
744
736
|
nextResult.push([currentStart, to - 1]);
|
|
745
737
|
}
|
|
746
738
|
|
|
747
|
-
nextResult.push([
|
|
748
|
-
nextResult.push([to,
|
|
739
|
+
nextResult.push([to + 1, from]);
|
|
740
|
+
nextResult.push([to, to]);
|
|
749
741
|
|
|
750
742
|
if (from < currentEnd) {
|
|
751
743
|
nextResult.push([from + 1, currentEnd]);
|
|
@@ -756,10 +748,10 @@ export class GridUtils {
|
|
|
756
748
|
nextResult.push([currentStart, from - 1]);
|
|
757
749
|
}
|
|
758
750
|
|
|
759
|
-
nextResult.push([
|
|
760
|
-
nextResult.push([from,
|
|
751
|
+
nextResult.push([to, to]);
|
|
752
|
+
nextResult.push([from, to - 1]);
|
|
761
753
|
|
|
762
|
-
if (
|
|
754
|
+
if (to < currentEnd) {
|
|
763
755
|
nextResult.push([to + 1, currentEnd]);
|
|
764
756
|
}
|
|
765
757
|
}
|
|
@@ -768,29 +760,30 @@ export class GridUtils {
|
|
|
768
760
|
// No modifications were made, add the original range indexes
|
|
769
761
|
nextResult.push([currentStart, currentEnd]);
|
|
770
762
|
}
|
|
771
|
-
}
|
|
763
|
+
} // Return infinity values back to null
|
|
764
|
+
|
|
772
765
|
|
|
773
|
-
result = nextResult
|
|
766
|
+
result = nextResult.map(_ref => {
|
|
767
|
+
var [s, e] = _ref;
|
|
768
|
+
return [Number.isFinite(s) ? s : null, Number.isFinite(e) ? e : null];
|
|
769
|
+
});
|
|
774
770
|
}
|
|
775
771
|
|
|
776
772
|
return result;
|
|
777
773
|
}
|
|
778
774
|
/**
|
|
779
|
-
*
|
|
780
|
-
*
|
|
781
|
-
*
|
|
782
|
-
* @param
|
|
783
|
-
* @param
|
|
784
|
-
* @
|
|
785
|
-
* @returns The model ranges after translation.
|
|
775
|
+
* Applies the items moves to the givengrid range
|
|
776
|
+
* @param range The grid range to translate
|
|
777
|
+
* @param movedColumns The moved columns
|
|
778
|
+
* @param movedRows The moved rows
|
|
779
|
+
* @param reverse If the moved items should be reversed (i.e. visible to model range)
|
|
780
|
+
* @returns A list of grid ranges in the translated space. Possibly multiple non-continuous ranges
|
|
786
781
|
*/
|
|
787
782
|
|
|
788
783
|
|
|
789
|
-
static
|
|
790
|
-
var
|
|
791
|
-
var
|
|
792
|
-
var columnRanges = GridUtils.getModelRangeIndexes(uiRange.startColumn, uiRange.endColumn, movedColumns);
|
|
793
|
-
var rowRanges = GridUtils.getModelRangeIndexes(uiRange.startRow, uiRange.endRow, movedRows);
|
|
784
|
+
static translateRange(range, movedColumns, movedRows, reverse) {
|
|
785
|
+
var columnRanges = GridUtils.applyItemMoves(range.startColumn, range.endColumn, movedColumns, reverse);
|
|
786
|
+
var rowRanges = GridUtils.applyItemMoves(range.startRow, range.endRow, movedRows, reverse);
|
|
794
787
|
var ranges = [];
|
|
795
788
|
|
|
796
789
|
for (var i = 0; i < columnRanges.length; i += 1) {
|
|
@@ -804,6 +797,36 @@ export class GridUtils {
|
|
|
804
797
|
|
|
805
798
|
return ranges;
|
|
806
799
|
}
|
|
800
|
+
/**
|
|
801
|
+
* Translate the provided UI start/end indexes to the model start/end indexes by applying the `movedItems` transformations.
|
|
802
|
+
* Since moved items can split apart a range, multiple pairs of indexes are returned
|
|
803
|
+
*
|
|
804
|
+
* @param start Start item in one dimension
|
|
805
|
+
* @param end End item in one dimension
|
|
806
|
+
* @param movedItems Moved item pairs in this dimension
|
|
807
|
+
* @returns Array of start/end pairs of the indexes after transformations applied.
|
|
808
|
+
*/
|
|
809
|
+
|
|
810
|
+
|
|
811
|
+
static getModelRangeIndexes(start, end, movedItems) {
|
|
812
|
+
return GridUtils.applyItemMoves(start, end, movedItems, true);
|
|
813
|
+
}
|
|
814
|
+
/**
|
|
815
|
+
* Translate the provided UI range into model range, using the `movedColumns` and `movedRows` to apply the necessary transforms.
|
|
816
|
+
* `movedColumns` and `movedRows` are array of operations done to the UI indexes to re-order items
|
|
817
|
+
*
|
|
818
|
+
* @param uiRange The currently selected UI ranges
|
|
819
|
+
* @param movedColumns The moved column pairs
|
|
820
|
+
* @param movedRows The moved row pairs
|
|
821
|
+
* @returns The model ranges after translation.
|
|
822
|
+
*/
|
|
823
|
+
|
|
824
|
+
|
|
825
|
+
static getModelRange(uiRange) {
|
|
826
|
+
var movedColumns = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
|
|
827
|
+
var movedRows = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];
|
|
828
|
+
return GridUtils.translateRange(uiRange, movedColumns, movedRows, true);
|
|
829
|
+
}
|
|
807
830
|
/**
|
|
808
831
|
* Translate the provided UI range into model ranges, using the `movedColumns` and `movedRows` to apply the necessary transforms.
|
|
809
832
|
* `movedColumns` and `movedRows` are array of operations done to the UI indexes to re-order items
|
|
@@ -826,6 +849,58 @@ export class GridUtils {
|
|
|
826
849
|
|
|
827
850
|
return modelRanges;
|
|
828
851
|
}
|
|
852
|
+
/**
|
|
853
|
+
* Translate the provided UI start/end indexes to the model start/end indexes by applying the `movedItems` transformations.
|
|
854
|
+
* Since moved items can split apart a range, multiple pairs of indexes are returned
|
|
855
|
+
*
|
|
856
|
+
* @param start Start item in one dimension
|
|
857
|
+
* @param end End item in one dimension
|
|
858
|
+
* @param movedItems Moved item pairs in this dimension
|
|
859
|
+
* @returns Array of start/end pairs of the indexes after transformations applied.
|
|
860
|
+
*/
|
|
861
|
+
|
|
862
|
+
|
|
863
|
+
static getVisibleRangeIndexes(start, end, movedItems) {
|
|
864
|
+
return GridUtils.applyItemMoves(start, end, movedItems, false);
|
|
865
|
+
}
|
|
866
|
+
/**
|
|
867
|
+
* Translate the provided UI range into model range, using the `movedColumns` and `movedRows` to apply the necessary transforms.
|
|
868
|
+
* `movedColumns` and `movedRows` are array of operations done to the UI indexes to re-order items
|
|
869
|
+
*
|
|
870
|
+
* @param uiRange The currently selected UI ranges
|
|
871
|
+
* @param movedColumns The moved column pairs
|
|
872
|
+
* @param movedRows The moved row pairs
|
|
873
|
+
* @returns The model ranges after translation.
|
|
874
|
+
*/
|
|
875
|
+
|
|
876
|
+
|
|
877
|
+
static getVisibleRange(modelRange) {
|
|
878
|
+
var movedColumns = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
|
|
879
|
+
var movedRows = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];
|
|
880
|
+
return this.translateRange(modelRange, movedColumns, movedRows, false);
|
|
881
|
+
}
|
|
882
|
+
/**
|
|
883
|
+
* Translate the provided model ranges into visible ranges, using the `movedColumns` and `movedRows` to apply the necessary transforms.
|
|
884
|
+
* `movedColumns` and `movedRows` are array of operations done to the UI indexes to re-order items
|
|
885
|
+
*
|
|
886
|
+
* @param modelRanges The model ranges
|
|
887
|
+
* @param movedColumns The moved column pairs
|
|
888
|
+
* @param movedRows The moved row pairs
|
|
889
|
+
* @returns The model ranges after translation.
|
|
890
|
+
*/
|
|
891
|
+
|
|
892
|
+
|
|
893
|
+
static getVisibleRanges(modelRanges) {
|
|
894
|
+
var movedColumns = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
|
|
895
|
+
var movedRows = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];
|
|
896
|
+
var visibleRanges = [];
|
|
897
|
+
|
|
898
|
+
for (var i = 0; i < modelRanges.length; i += 1) {
|
|
899
|
+
visibleRanges.push(...GridUtils.getVisibleRange(modelRanges[i], movedColumns, movedRows));
|
|
900
|
+
}
|
|
901
|
+
|
|
902
|
+
return visibleRanges;
|
|
903
|
+
}
|
|
829
904
|
/**
|
|
830
905
|
* Retrieve the visible index given the currently moved items
|
|
831
906
|
* @param modelIndex The model index to get the visible index for
|
|
@@ -836,22 +911,7 @@ export class GridUtils {
|
|
|
836
911
|
|
|
837
912
|
static getVisibleIndex(modelIndex) {
|
|
838
913
|
var movedItems = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
|
|
839
|
-
var visibleIndex = modelIndex;
|
|
840
|
-
|
|
841
|
-
for (var i = 0; i < movedItems.length; i += 1) {
|
|
842
|
-
var movedItem = movedItems[i];
|
|
843
|
-
|
|
844
|
-
if (visibleIndex === movedItem.from) {
|
|
845
|
-
({
|
|
846
|
-
to: visibleIndex
|
|
847
|
-
} = movedItem);
|
|
848
|
-
} else if (movedItem.from < visibleIndex && visibleIndex <= movedItem.to) {
|
|
849
|
-
visibleIndex -= 1;
|
|
850
|
-
} else if (movedItem.to <= visibleIndex && visibleIndex < movedItem.from) {
|
|
851
|
-
visibleIndex += 1;
|
|
852
|
-
}
|
|
853
|
-
}
|
|
854
|
-
|
|
914
|
+
var visibleIndex = GridUtils.applyItemMoves(modelIndex, modelIndex, movedItems)[0][0];
|
|
855
915
|
return visibleIndex;
|
|
856
916
|
}
|
|
857
917
|
/**
|