import shapeMixin from '../shapeMixin';
import sortMixin from '../sortMixin';
import Default, {continousColorScheme} from '../core';
import {attrFunc, genFunc, mix} from '../../modules/util';
import _munge from './_munge';
import _domain from './_domain';
import _range from './_range';
import _mark from './_mark';
import _spectrum from './_spectrum';
import _tooltip from './_tooltip';
const shapes = ['treemap', 'pack', 'word'];
const conditions = ['normal', 'count'];
const _attrs = {
autoResizeSkip: ['domain'], //treemap needs to re-munge beacuase of using .treemap method
color: continousColorScheme,
reverse: false,
shape: shapes[0],
size : null,
sortByValue: 'natural'
};
/**
* @class Treemap
* @augments Default
* @augments ShapeMixin
* @augments SortMixin
*/
class Treemap extends mix(Default).with(shapeMixin, sortMixin) {
constructor() {
super();
this.setAttrs(_attrs);
this.process('munge', _munge, {isPre:true})
.process('domain', _domain, {isPre: true})
.process('range', _range, {isPre: true})
.process('mark', _mark)
.process('spectrum', _spectrum)
.process('tooltip', _tooltip);
}
axis() {
if(!arguments.length) return [];
return this;
}
isCount() {
return this.condition() === conditions[1];
}
}
Treemap.prototype.reverse = attrFunc('reverse');
export default genFunc(Treemap);
export {conditions, shapes};