/** * The utility class to abstract different implementations to have the best performance when applying 2D translation * on any DOM element. * * @private */ Ext.define('Ext.util.Translatable', { requires: [ 'Ext.util.translatable.CssTransform', 'Ext.util.translatable.ScrollPosition' ], constructor: function(config) { var namespace = Ext.util.translatable, CssTransform = namespace.CssTransform, ScrollPosition = namespace.ScrollPosition, classReference; if (typeof config == 'object' && 'translationMethod' in config) { if (config.translationMethod === 'scrollposition') { classReference = ScrollPosition; } else if (config.translationMethod === 'csstransform') { classReference = CssTransform; } } if (!classReference) { if (Ext.os.is.Android2 || Ext.browser.is.ChromeMobile) { classReference = ScrollPosition; } else { classReference = CssTransform; } } return new classReference(config); } });