devextreme
Version:
JavaScript/TypeScript Component Suite for Responsive Web Development
115 lines (113 loc) • 4.16 kB
JavaScript
/**
* DevExtreme (cjs/__internal/ui/list/list.edit.decorator.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/
*/
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _events_engine = _interopRequireDefault(require("../../../common/core/events/core/events_engine"));
var _swipe = require("../../../common/core/events/swipe");
var _utils = require("../../../common/core/events/utils");
var _renderer = _interopRequireDefault(require("../../../core/renderer"));
var _size = require("../../../core/utils/size");
function _interopRequireDefault(e) {
return e && e.__esModule ? e : {
default: e
}
}
const LIST_EDIT_DECORATOR = "dxListEditDecorator";
const SWIPE_START_EVENT_NAME = (0, _utils.addNamespace)(_swipe.start, LIST_EDIT_DECORATOR);
const SWIPE_UPDATE_EVENT_NAME = (0, _utils.addNamespace)(_swipe.swipe, LIST_EDIT_DECORATOR);
const SWIPE_END_EVENT_NAME = (0, _utils.addNamespace)(_swipe.end, LIST_EDIT_DECORATOR);
class EditDecorator {
constructor(list) {
this._itemWidthCache = 0;
this._list = list;
this._init()
}
_shouldHandleSwipe() {
return false
}
_init() {}
_attachSwipeEvent(config) {
const swipeConfig = {
itemSizeFunc: () => {
if (this._clearSwipeCache) {
this._itemWidthCache = (0, _size.getWidth)(this._list.$element());
this._clearSwipeCache = false
}
return this._itemWidthCache
}
};
_events_engine.default.on(config.$itemElement, SWIPE_START_EVENT_NAME, swipeConfig, e => {
this._itemSwipeStartHandler(e)
});
_events_engine.default.on(config.$itemElement, SWIPE_UPDATE_EVENT_NAME, e => {
this._itemSwipeUpdateHandler(e)
});
_events_engine.default.on(config.$itemElement, SWIPE_END_EVENT_NAME, e => {
this._itemSwipeEndHandler(e)
})
}
_itemSwipeStartHandler(e) {
const $itemElement = (0, _renderer.default)(e.currentTarget);
if ($itemElement.is(".dx-state-disabled, .dx-state-disabled *")) {
e.cancel = true;
return
}
clearTimeout(this._list._inkRippleTimer);
this._swipeStartHandler($itemElement)
}
_itemSwipeUpdateHandler(e) {
const target = e.currentTarget;
if (target instanceof Element) {
const $itemElement = (0, _renderer.default)(target);
this._swipeUpdateHandler($itemElement, e)
}
}
_itemSwipeEndHandler(e) {
const target = e.currentTarget;
if (target instanceof Element) {
const $itemElement = (0, _renderer.default)(target);
this._swipeEndHandler($itemElement, e)
}
}
beforeBag(config) {}
afterBag(config) {}
_commonOptions() {
const {
activeStateEnabled: activeStateEnabled,
hoverStateEnabled: hoverStateEnabled,
focusStateEnabled: focusStateEnabled
} = this._list.option();
return {
activeStateEnabled: activeStateEnabled,
hoverStateEnabled: hoverStateEnabled,
focusStateEnabled: focusStateEnabled
}
}
modifyElement(config) {
if (this._shouldHandleSwipe()) {
this._attachSwipeEvent(config);
this._clearSwipeCache = true
}
}
afterRender() {}
handleClick($itemElement, e) {}
handleKeyboardEvents(currentFocusedIndex, moveFocusUp) {}
handleEnterPressing(e) {}
handleContextMenu($itemElement) {}
_swipeStartHandler($element) {}
_swipeUpdateHandler($element, event) {}
_swipeEndHandler($element, event) {}
visibilityChange() {}
getExcludedSelectors() {}
dispose() {}
}
var _default = exports.default = EditDecorator;