in src/Clients/Web/winjs/js/winjs.js [33548:33620]
_dispatchSwipeBehavior: function ItemEventsHandler_dispatchSwipeBehavior(manipulationState) {
if (this._site.pressedEntity.type === _UI.ObjectType.groupHeader ||
this._site.swipeBehavior !== _UI.SwipeBehavior.select) {
return;
}
this._site.selection._pivot = _Constants._INVALID_INDEX;
if (this._site.pressedItemBox) {
var pressedIndex = this._site.pressedEntity.index;
if (this._swipeBehaviorState !== manipulationState) {
if (manipulationState === MSManipulationEventStates.MS_MANIPULATION_STATE_DRAGGING && this._canSelect) {
this._animateSelectionChange(this._site.selection._isIncluded(pressedIndex));
this._removeSelectionHint(this._selectionHint);
} else if (manipulationState === MSManipulationEventStates.MS_MANIPULATION_STATE_PRESELECT) {
_WriteProfilerMark("WinJS.UI._ItemEventsHandler:crossSlidingStarted,info");
var site = this._site,
pressedElement = site.itemAtIndex(pressedIndex),
selected = site.selection._isIncluded(pressedIndex);
if (this._selfRevealGesture) {
this._selfRevealGesture.finishAnimation();
this._selfRevealGesture = null;
} else if (this._canSelect) {
this._prepareItem(this._site.pressedEntity, pressedElement, selected);
}
if (this._swipeBehaviorState !== MSManipulationEventStates.MS_MANIPULATION_STATE_SELECTING) {
if (this._site.animatedElement && _ElementUtilities.hasClass(this._site.animatedElement, _Constants._pressedClass)) {
this._site.animatedDownPromise && this._site.animatedDownPromise.cancel();
_ElementUtilities.removeClass(this._site.animatedElement, _Constants._pressedClass);
this._removeTransform(this._site.animatedElement, this._site.animatedElementScaleTransform);
}
this._showSelectionHintCheckmark();
} else {
this._animateSelectionChange(this._site.selection._isIncluded(pressedIndex));
}
} else if (manipulationState === MSManipulationEventStates.MS_MANIPULATION_STATE_COMMITTED) {
_WriteProfilerMark("WinJS.UI._ItemEventsHandler:crossSlidingCompleted,info");
var site = this._site,
selection = site.selection,
swipeBehaviorSelectionChanged = this._swipeBehaviorSelectionChanged,
swipeBehaviorSelected = this.swipeBehaviorSelected;
if (this._swipeBehaviorState === MSManipulationEventStates.MS_MANIPULATION_STATE_SELECTING && swipeBehaviorSelectionChanged) {
if (this._selectionAllowed() && site.swipeBehavior === _UI.SwipeBehavior.select) {
if (site.selectionMode === _UI.SelectionMode.single) {
if (swipeBehaviorSelected) {
selection.set(pressedIndex);
} else if (selection._isIncluded(pressedIndex)) {
selection.remove(pressedIndex);
}
} else {
if (swipeBehaviorSelected) {
selection.add(pressedIndex);
} else if (selection._isIncluded(pressedIndex)) {
selection.remove(pressedIndex);
}
}
}
}
// snap back and remove addional elements
this._endSwipeBehavior();
} else if (manipulationState === MSManipulationEventStates.MS_MANIPULATION_STATE_SELECTING && this._canSelect) {
this._animateSelectionChange(!this._site.selection._isIncluded(pressedIndex));
} else if (this._swipeBehaviorState === MSManipulationEventStates.MS_MANIPULATION_STATE_SELECTING && this._canSelect) {
this._animateSelectionChange(this._site.selection._isIncluded(pressedIndex), (manipulationState === MSManipulationEventStates.MS_MANIPULATION_STATE_CANCELLED));
}
}
}
this._swipeBehaviorState = manipulationState;
},