devextreme
Version:
HTML5 JavaScript Component Suite for Responsive Web Development
104 lines (80 loc) • 3.31 kB
JavaScript
var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
var inArray = require("../../core/utils/array").inArray,
EditStrategy = require("./ui.collection_widget.edit.strategy");
var PlainEditStrategy = EditStrategy.inherit({
_getPlainItems: function _getPlainItems() {
return this._collectionWidget.option("items") || [];
},
getIndexByItemData: function getIndexByItemData(itemData) {
var keyOf = this._collectionWidget.keyOf.bind(this._collectionWidget);
if (keyOf) {
return this.getIndexByKey(keyOf(itemData));
} else {
return inArray(itemData, this._getPlainItems());
}
},
getItemDataByIndex: function getItemDataByIndex(index) {
return this._getPlainItems()[index];
},
deleteItemAtIndex: function deleteItemAtIndex(index) {
this._getPlainItems().splice(index, 1);
},
itemsGetter: function itemsGetter() {
return this._getPlainItems();
},
getKeysByItems: function getKeysByItems(items) {
var keyOf = this._collectionWidget.keyOf.bind(this._collectionWidget);
var result = items;
if (keyOf) {
result = [];
for (var i = 0; i < items.length; i++) {
result.push(keyOf(items[i]));
}
}
return result;
},
getIndexByKey: function getIndexByKey(key) {
var cache = this._cache,
keys = cache && cache.keys || this.getKeysByItems(this._getPlainItems());
if (cache && !cache.keys) {
cache.keys = keys;
}
if ((typeof key === "undefined" ? "undefined" : _typeof(key)) === "object") {
for (var i = 0, length = keys.length; i < length; i++) {
if (this._equalKeys(key, keys[i])) return i;
}
} else {
return keys.indexOf(key);
}
return -1;
},
getItemsByKeys: function getItemsByKeys(keys, items) {
return (items || keys).slice();
},
moveItemAtIndexToIndex: function moveItemAtIndexToIndex(movingIndex, destinationIndex) {
var items = this._getPlainItems(),
movedItemData = items[movingIndex];
items.splice(movingIndex, 1);
items.splice(destinationIndex, 0, movedItemData);
},
_isItemIndex: function _isItemIndex(index) {
return typeof index === "number" && Math.round(index) === index;
},
_getNormalizedItemIndex: function _getNormalizedItemIndex(itemElement) {
return this._collectionWidget._itemElements().index(itemElement);
},
_normalizeItemIndex: function _normalizeItemIndex(index) {
return index;
},
_denormalizeItemIndex: function _denormalizeItemIndex(index) {
return index;
},
_getItemByNormalizedIndex: function _getItemByNormalizedIndex(index) {
return index > -1 ? this._collectionWidget._itemElements().eq(index) : null;
},
_itemsFromSameParent: function _itemsFromSameParent() {
return true;
}
});
module.exports = PlainEditStrategy;
;