| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284 |
- /**
- * DevExtreme (ui/list/ui.list.edit.js)
- * Version: 19.1.16
- * Build date: Tue Oct 18 2022
- *
- * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED
- * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
- */
- "use strict";
- var _renderer = require("../../core/renderer");
- var _renderer2 = _interopRequireDefault(_renderer);
- var _utils = require("../../events/utils");
- var _extend = require("../../core/utils/extend");
- var _uiListEditStrategy = require("./ui.list.edit.strategy.grouped");
- var _uiListEditStrategy2 = _interopRequireDefault(_uiListEditStrategy);
- var _message = require("../../localization/message");
- var _uiListEdit = require("./ui.list.edit.provider");
- var _uiListEdit2 = _interopRequireDefault(_uiListEdit);
- var _uiList = require("./ui.list.base");
- var _uiList2 = _interopRequireDefault(_uiList);
- function _interopRequireDefault(obj) {
- return obj && obj.__esModule ? obj : {
- "default": obj
- }
- }
- var LIST_ITEM_SELECTED_CLASS = "dx-list-item-selected";
- var LIST_ITEM_RESPONSE_WAIT_CLASS = "dx-list-item-response-wait";
- var ListEdit = _uiList2.default.inherit({
- _supportedKeys: function() {
- var _this = this;
- var that = this;
- var parent = this.callBase();
- var deleteFocusedItem = function(e) {
- if (that.option("allowItemDeleting")) {
- e.preventDefault();
- that.deleteItem(that.option("focusedElement"))
- }
- };
- var moveFocusedItem = function(e, moveUp) {
- var editStrategy = _this._editStrategy;
- var focusedElement = _this.option("focusedElement");
- var focusedItemIndex = editStrategy.getNormalizedIndex(focusedElement);
- var isLastIndexFocused = focusedItemIndex === _this._getLastItemIndex();
- if (isLastIndexFocused && _this._isDataSourceLoading()) {
- return
- }
- if (e.shiftKey && that.option("allowItemReordering")) {
- var nextItemIndex = focusedItemIndex + (moveUp ? -1 : 1);
- var $nextItem = editStrategy.getItemElement(nextItemIndex);
- _this.reorderItem(focusedElement, $nextItem);
- _this.scrollToItem(focusedElement);
- e.preventDefault()
- } else {
- var editProvider = _this._editProvider;
- var isInternalMoving = editProvider.handleKeyboardEvents(focusedItemIndex, moveUp);
- if (!isInternalMoving) {
- moveUp ? parent.upArrow(e) : parent.downArrow(e)
- }
- }
- };
- var enter = function(e) {
- if (!this._editProvider.handleEnterPressing()) {
- parent.enter.apply(this, arguments)
- }
- };
- var space = function(e) {
- if (!this._editProvider.handleEnterPressing()) {
- parent.space.apply(this, arguments)
- }
- };
- return (0, _extend.extend)({}, parent, {
- del: deleteFocusedItem,
- upArrow: function(e) {
- return moveFocusedItem(e, true)
- },
- downArrow: moveFocusedItem,
- enter: enter,
- space: space
- })
- },
- _updateSelection: function() {
- this._editProvider.afterItemsRendered();
- this.callBase()
- },
- _getLastItemIndex: function() {
- return this._itemElements().length - 1
- },
- _refreshItemElements: function() {
- this.callBase();
- var excludedSelectors = this._editProvider.getExcludedItemSelectors();
- if (excludedSelectors.length) {
- this._itemElementsCache = this._itemElementsCache.not(excludedSelectors)
- }
- },
- _getDefaultOptions: function() {
- return (0, _extend.extend)(this.callBase(), {
- showSelectionControls: false,
- selectionMode: "none",
- selectAllMode: "page",
- onSelectAllValueChanged: null,
- selectAllText: (0, _message.format)("dxList-selectAll"),
- menuItems: [],
- menuMode: "context",
- allowItemDeleting: false,
- itemDeleteMode: "static",
- allowItemReordering: false
- })
- },
- _defaultOptionsRules: function() {
- return this.callBase().concat([{
- device: function(_device) {
- return "ios" === _device.platform
- },
- options: {
- menuMode: "slide",
- itemDeleteMode: "slideItem"
- }
- }, {
- device: {
- platform: "android"
- },
- options: {
- itemDeleteMode: "swipe"
- }
- }, {
- device: {
- platform: "win"
- },
- options: {
- itemDeleteMode: "context"
- }
- }])
- },
- _init: function() {
- this.callBase();
- this._initEditProvider()
- },
- _initDataSource: function() {
- this.callBase();
- if (!this._isPageSelectAll()) {
- this._dataSource && this._dataSource.requireTotalCount(true)
- }
- },
- _isPageSelectAll: function() {
- return "page" === this.option("selectAllMode")
- },
- _initEditProvider: function() {
- this._editProvider = new _uiListEdit2.default(this)
- },
- _disposeEditProvider: function() {
- if (this._editProvider) {
- this._editProvider.dispose()
- }
- },
- _refreshEditProvider: function() {
- this._disposeEditProvider();
- this._initEditProvider()
- },
- _initEditStrategy: function() {
- if (this.option("grouped")) {
- this._editStrategy = new _uiListEditStrategy2.default(this)
- } else {
- this.callBase()
- }
- },
- _initMarkup: function() {
- this._refreshEditProvider();
- this.callBase()
- },
- _renderItems: function() {
- this.callBase.apply(this, arguments);
- this._editProvider.afterItemsRendered()
- },
- _selectedItemClass: function() {
- return LIST_ITEM_SELECTED_CLASS
- },
- _itemResponseWaitClass: function() {
- return LIST_ITEM_RESPONSE_WAIT_CLASS
- },
- _itemClickHandler: function(e) {
- var $itemElement = (0, _renderer2.default)(e.currentTarget);
- if ($itemElement.is(".dx-state-disabled, .dx-state-disabled *")) {
- return
- }
- var handledByEditProvider = this._editProvider.handleClick($itemElement, e);
- if (handledByEditProvider) {
- return
- }
- this.callBase.apply(this, arguments)
- },
- _shouldFireContextMenuEvent: function() {
- return this.callBase.apply(this, arguments) || this._editProvider.contextMenuHandlerExists()
- },
- _itemHoldHandler: function(e) {
- var $itemElement = (0, _renderer2.default)(e.currentTarget);
- if ($itemElement.is(".dx-state-disabled, .dx-state-disabled *")) {
- return
- }
- var handledByEditProvider = (0, _utils.isTouchEvent)(e) && this._editProvider.handleContextMenu($itemElement, e);
- if (handledByEditProvider) {
- e.handledByEditProvider = true;
- return
- }
- this.callBase.apply(this, arguments)
- },
- _itemContextMenuHandler: function(e) {
- var $itemElement = (0, _renderer2.default)(e.currentTarget);
- if ($itemElement.is(".dx-state-disabled, .dx-state-disabled *")) {
- return
- }
- var handledByEditProvider = !e.handledByEditProvider && this._editProvider.handleContextMenu($itemElement, e);
- if (handledByEditProvider) {
- e.preventDefault();
- return
- }
- this.callBase.apply(this, arguments)
- },
- _postprocessRenderItem: function(args) {
- this.callBase.apply(this, arguments);
- this._editProvider.modifyItemElement(args)
- },
- _clean: function() {
- this._disposeEditProvider();
- this.callBase()
- },
- focusListItem: function(index) {
- var $item = this._editStrategy.getItemElement(index);
- this.option("focusedElement", $item);
- this.focus();
- this.scrollToItem(this.option("focusedElement"))
- },
- _optionChanged: function(args) {
- switch (args.name) {
- case "selectAllMode":
- this._initDataSource();
- this._dataSource.pageIndex(0);
- this._dataSource.load();
- break;
- case "grouped":
- this._clearSelectedItems();
- delete this._renderingGroupIndex;
- this._initEditStrategy();
- this.callBase(args);
- break;
- case "showSelectionControls":
- case "menuItems":
- case "menuMode":
- case "allowItemDeleting":
- case "itemDeleteMode":
- case "allowItemReordering":
- case "selectAllText":
- this._invalidate();
- break;
- case "onSelectAllValueChanged":
- break;
- default:
- this.callBase(args)
- }
- },
- selectAll: function() {
- return this._selection.selectAll(this._isPageSelectAll())
- },
- unselectAll: function() {
- return this._selection.deselectAll(this._isPageSelectAll())
- },
- isSelectAll: function() {
- return this._selection.getSelectAllState(this._isPageSelectAll())
- },
- getFlatIndexByItemElement: function(itemElement) {
- return this._itemElements().index(itemElement)
- },
- getItemElementByFlatIndex: function(flatIndex) {
- var $itemElements = this._itemElements();
- if (flatIndex < 0 || flatIndex >= $itemElements.length) {
- return (0, _renderer2.default)()
- }
- return $itemElements.eq(flatIndex)
- },
- getItemByIndex: function(index) {
- return this._editStrategy.getItemDataByIndex(index)
- }
- });
- module.exports = ListEdit;
|