devextreme
Version:
JavaScript/TypeScript Component Suite for Responsive Web Development
69 lines (67 loc) • 2.4 kB
JavaScript
/**
* DevExtreme (cjs/__internal/ui/list/list.edit.decorator.swipe.js)
* Version: 25.2.7
* Build date: Tue May 05 2026
*
* Copyright (c) 2012 - 2026 Developer Express Inc. ALL RIGHTS RESERVED
* Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
*/
;
var _animation = require("../../../common/core/animation");
var _translator = require("../../../common/core/animation/translator");
var _deferred = require("../../../core/utils/deferred");
var _size = require("../../../core/utils/size");
var _listEdit = _interopRequireDefault(require("../../ui/list/list.edit.decorator"));
var _listEdit2 = require("../../ui/list/list.edit.decorator_registry");
function _interopRequireDefault(e) {
return e && e.__esModule ? e : {
default: e
}
}
class EditDecoratorSwipe extends _listEdit.default {
_shouldHandleSwipe() {
return true
}
_renderItemPosition($itemElement, offset, animate) {
const deferred = (0, _deferred.Deferred)();
const itemOffset = offset * this._itemElementWidth;
if (animate) {
_animation.fx.animate($itemElement.get(0), {
to: {
left: itemOffset
},
type: "slide",
complete() {
deferred.resolve($itemElement, offset)
}
})
} else {
(0, _translator.move)($itemElement, {
left: itemOffset
});
deferred.resolve()
}
return deferred.promise()
}
_swipeStartHandler($itemElement) {
this._itemElementWidth = (0, _size.getWidth)($itemElement)
}
_swipeUpdateHandler($itemElement, e) {
const {
offset: offset
} = e;
this._renderItemPosition($itemElement, offset)
}
_swipeEndHandler($itemElement, e) {
const {
targetOffset: targetOffset
} = e;
this._renderItemPosition($itemElement, targetOffset, true).done(($element, offset) => {
if (Math.abs(offset)) {
this._list.deleteItem($element.get(0)).fail(() => {
this._renderItemPosition($element, 0, true)
})
}
})
}
}(0, _listEdit2.register)("delete", "swipe", EditDecoratorSwipe);