/** * Abstract class for D3 components * with the [Partition layout](https://github.com/mbostock/d3/wiki/Partition-Layout). */Ext.define('Ext.d3.hierarchy.partition.Partition', { extend: 'Ext.d3.hierarchy.Hierarchy', xtype: 'd3-partition', config: { partitionCls: 'partition', nodeValue: function (record) { return record.isExpanded() && record.childNodes ? 0 : 1; } }, updatePartitionCls: function (partitionCls, oldPartitionCls) { var baseCls = this.baseCls, el = this.element; if (partitionCls && Ext.isString(partitionCls)) { el.addCls(partitionCls, baseCls); if (oldPartitionCls) { el.removeCls(oldPartitionCls, baseCls); } } }, applyLayout: function () { return d3.partition(); }, /** * Resets the zoom back to the root node. * @param {Boolean} [instantly] If set to `true`, the animation is skipped. */ resetZoom: function (instantly) { var me = this, store = me.getStore(), root = store && store.getRoot(); me.zoomInNode(root, instantly); } });