Ext.define('Ext.rtl.chart.LegendItem', { override: 'Ext.chart.LegendItem', updatePosition: function(relativeTo) { var me = this, items = me.items, ln = items.length, legend = me.legend, currentX = me.x, currentY = me.y, item, i, x, y, translate, o, width, relativeX, relativeY; if (!relativeTo) { relativeTo = legend; } if (!legend.chart.getHierarchyState().rtl || !relativeTo.width) { me.callParent(arguments); return; } relativeX = relativeTo.x; relativeY = relativeTo.y; width = relativeTo.width; for (i = 0; i < ln; i++) { translate = true; item = items[i]; switch (item.type) { case 'text': x = width + relativeX + currentX - 30 - item.getBBox().width; // -25 & -5 for a gap y = relativeY + currentY; translate = false; break; case 'rect': x = width + relativeX + currentX - 25; y = relativeY + currentY - 6; break; default: x = width + relativeX + currentX - 25; y = relativeY + currentY; } o = { x: x, y: y }; item.setAttributes(translate ? { translate: o } : o, true); } } });