/** * @private */ Ext.define('Ext.util.TranslatableGroup', { extend: 'Ext.util.translatable.Abstract', config: { items: [], activeIndex: 0, itemLength: { x: 0, y: 0 } }, applyItems: function(items) { return Ext.Array.from(items); }, doTranslate: function(x, y) { var items = this.getItems(), activeIndex = this.getActiveIndex(), itemLength = this.getItemLength(), itemLengthX = itemLength.x, itemLengthY = itemLength.y, useX = Ext.isNumber(x), useY = Ext.isNumber(y), offset, i, ln, item, translateX, translateY; for (i = 0, ln = items.length; i < ln; i++) { item = items[i]; if (item) { offset = (i - activeIndex); if (useX) { translateX = x + offset * itemLengthX; } if (useY) { translateY = y + offset * itemLengthY; } item.translate(translateX, translateY); } } } });