cms/app-client/app/components/visu-langues.js
changeset 424 feb0d3e0fef9
parent 394 48458e099b05
child 467 762fc0eb4946
equal deleted inserted replaced
423:788971813bdc 424:feb0d3e0fef9
     7 export default Ember.Component.extend({
     7 export default Ember.Component.extend({
     8 
     8 
     9     constants: Ember.inject.service(),
     9     constants: Ember.inject.service(),
    10     filter: Ember.inject.service(),
    10     filter: Ember.inject.service(),
    11     colors: Ember.inject.service(),
    11     colors: Ember.inject.service(),
       
    12 
       
    13     scale: Ember.computed('maxCount', 'minCount', function() {
       
    14       let maxCount = this.get('maxCount');
       
    15       let minCount = this.get('minCount');
       
    16       return this.get('colors').getScaleLinear(minCount, maxCount);
       
    17     }),
       
    18     maxCount: 0,
       
    19     minCount: 0,
    12 
    20 
    13     filterObserver: Ember.observer('filter.language', function() {
    21     filterObserver: Ember.observer('filter.language', function() {
    14         Ember.$('.node').removeClass("selected");
    22         Ember.$('.node').removeClass("selected");
    15         Ember.$('.node[data-id="' + this.get('filter').get('language') + '"]').addClass("selected");
    23         Ember.$('.node[data-id="' + this.get('filter').get('language') + '"]').addClass("selected");
    16     }),
    24     }),
   140                     .append("div")
   148                     .append("div")
   141                     .attr("data-id", function(d) { return d.id; });
   149                     .attr("data-id", function(d) { return d.id; });
   142 
   150 
   143                 var dMin = Math.min.apply(null, d._children.map(function(d){ return d.count; }));
   151                 var dMin = Math.min.apply(null, d._children.map(function(d){ return d.count; }));
   144                 var dMax = Math.max.apply(null, d._children.map(function(d){ return d.count; }));
   152                 var dMax = Math.max.apply(null, d._children.map(function(d){ return d.count; }));
   145 
   153                 self.setProperties({minCount: dMin, maxCount: dMax});
   146                 node.attr("class", function(d) { return "node" + ( d.id === self.get('filter').get('language') ? " selected" : "" ); })
   154                 var scale = self.get('scale');
       
   155                 var backgroundColor = function(_d) { return scale(_d.count);};
       
   156                 var colorClass = function(_d) { return (self.get('colors').getPerceptiveLuminance(backgroundColor(_d)) >= 0.5)?'light-color':'dark-color'; };
       
   157 
       
   158                 node.attr("class", function(_d) { return "node " + colorClass(_d) + ( _d.id === self.get('filter').get('language') ? " selected" : "" ); })
   147                     .call(position)
   159                     .call(position)
   148                     .style("background-color", function(d) { return self.get('colors').shadeLinear(d.count,dMin,dMax); })
   160                     .style("background-color", backgroundColor)
   149                     .on("click", selectHandler);
   161                     .on("click", selectHandler);
   150 
   162 
   151                 node.filter(function(d) { return d._children; })
   163                 node.filter(function(d) { return d._children; })
   152                     .classed("children", true)
   164                     .classed("children", true)
   153                     .on("click", transition)
   165                     .on("click", transition)