/**
 * @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);
            }
        }
    }
});