Ext.define('Ext.rtl.scroll.Scroller', {
    override: 'Ext.scroll.Scroller',
 
    config: {
        /**
         * @cfg {Boolean} [rtl=false]
         * `true` to enable scrolling of "right-to-left" content.  This is typically
         * configured automatically by an {@link Ext.Component} based on its inherited
         * {@link Ext.Component#rtl rtl} state
         * @member Ext.scroll.Scroller
         */
        rtl: null
    },
 
    // Empty updater - workaround for https://sencha.jira.com/browse/EXTJS-14574
    updateRtl: Ext.emptyFn,
 
    privates: {
        convertX: function(x) {
            var element;
 
            if (this.getRtl()) {
                element = this.getElement();
 
                if (element) {
                    x = element.rtlNormalizeScrollLeft(x);
                }
            }
 
            return x;
        },
 
        getElementScroll: function(element) {
            return this.getRtl() ? element.rtlGetScroll() : element.getScroll();
        },
 
        // rtl hook
        translateSpacer: function(x, y) {
            if (this.getRtl()) {
                this.getSpacer().dom.style.right = (- 1) + 'px';
                this.callParent([null, y]);
            }
            else {
                this.callParent([x, y]);
            }
        }
    }
});