html/scripts/highchart/modules/treemap.src.js
function () {
			var series = this,
				points = series.points,
				seriesOptions = series.options,
				attr,
				hover,
				level;
			each(points, function (point) {
				if (point.node.isVisible) {
					level = series.levelMap[point.level];
					attr = {
						stroke: seriesOptions.borderColor,
						'stroke-width': seriesOptions.borderWidth,
						dashstyle: seriesOptions.borderDashStyle,
						r: 0, // borderRadius gives wrong size relations and should always be disabled
						fill: pick(point.color, series.color)
					};
					// Overwrite standard series options with level options			
					if (level) {
						attr.stroke = level.borderColor || attr.stroke;
						attr['stroke-width'] = level.borderWidth || attr['stroke-width'];
						attr.dashstyle = level.borderDashStyle || attr.dashstyle;
					}
					// Merge with point attributes
					attr.stroke = point.borderColor || attr.stroke;
					attr['stroke-width'] = point.borderWidth || attr['stroke-width'];
					attr.dashstyle = point.borderDashStyle || attr.dashstyle;
					attr.zIndex = (1000 - (point.level * 2));

					// Make a copy to prevent overwriting individual props
					point.pointAttr = merge(point.pointAttr);
					hover = point.pointAttr.hover;
					hover.zIndex = 1001;
					hover.fill = Color(attr.fill).brighten(seriesOptions.states.hover.brightness).get();
					// If not a leaf, then remove fill
					if (!point.isLeaf) {
						if (pick(seriesOptions.interactByLeaf, !seriesOptions.allowDrillToNode)) {
							attr.fill = 'none';
							delete hover.fill;
						} else {
							// TODO: let users set the opacity
							attr.fill = Color(attr.fill).setOpacity(0.15).get();
							hover.fill = Color(hover.fill).setOpacity(0.75).get();
						}
					}
					if (point.node.level <= series.nodeMap[series.rootNode].level) {
						attr.fill = 'none';
						attr.zIndex = 0;
						delete hover.fill;
					}
					point.pointAttr[''] = H.extend(point.pointAttr[''], attr);
					if (point.dataLabel) {
						point.dataLabel.attr({ zIndex: (point.pointAttr[''].zIndex + 1) });
					}
				}
			});
			// Call standard drawPoints
			seriesTypes.column.prototype.drawPoints.call(this);

			each(points, function (point) {
				if (point.graphic) {
					point.graphic.attr(point.pointAttr['']);
				}
			});

			// Set click events on points 
			if (seriesOptions.allowDrillToNode) {
				series.drillTo();
			}
		}
function () {
			var series = this,
				points = series.points,
				seriesOptions = series.options,
				attr,
				hover,
				level;
			each(points, function (point) {
				if (point.node.isVisible) {
					level = series.levelMap[point.level];
					attr = {
						stroke: seriesOptions.borderColor,
						'stroke-width': seriesOptions.borderWidth,
						dashstyle: seriesOptions.borderDashStyle,
						r: 0, // borderRadius gives wrong size relations and should always be disabled
						fill: pick(point.color, series.color)
					};
					// Overwrite standard series options with level options			
					if (level) {
						attr.stroke = level.borderColor || attr.stroke;
						attr['stroke-width'] = level.borderWidth || attr['stroke-width'];
						attr.dashstyle = level.borderDashStyle || attr.dashstyle;
					}
					// Merge with point attributes
					attr.stroke = point.borderColor || attr.stroke;
					attr['stroke-width'] = point.borderWidth || attr['stroke-width'];
					attr.dashstyle = point.borderDashStyle || attr.dashstyle;
					attr.zIndex = (1000 - (point.level * 2));

					// Make a copy to prevent overwriting individual props
					point.pointAttr = merge(point.pointAttr);
					hover = point.pointAttr.hover;
					hover.zIndex = 1001;
					hover.fill = Color(attr.fill).brighten(seriesOptions.states.hover.brightness).get();
					// If not a leaf, then remove fill
					if (!point.isLeaf) {
						if (pick(seriesOptions.interactByLeaf, !seriesOptions.allowDrillToNode)) {
							attr.fill = 'none';
							delete hover.fill;
						} else {
							// TODO: let users set the opacity
							attr.fill = Color(attr.fill).setOpacity(0.15).get();
							hover.fill = Color(hover.fill).setOpacity(0.75).get();
						}
					}
					if (point.node.level <= series.nodeMap[series.rootNode].level) {
						attr.fill = 'none';
						attr.zIndex = 0;
						delete hover.fill;
					}
					point.pointAttr[''] = H.extend(point.pointAttr[''], attr);
					if (point.dataLabel) {
						point.dataLabel.attr({ zIndex: (point.pointAttr[''].zIndex + 1) });
					}
				}
			});
			// Call standard drawPoints
			seriesTypes.column.prototype.drawPoints.call(this);

			each(points, function (point) {
				if (point.graphic) {
					point.graphic.attr(point.pointAttr['']);
				}
			});

			// Set click events on points 
			if (seriesOptions.allowDrillToNode) {
				series.drillTo();
			}
		}
function ( ) { var series = this , points = series . points , seriesOptions = series . options , attr , hover , level ; each ( points , function ( point ) { if ( point . node . isVisible ) { level = series . levelMap [ point . level ] ; attr = { stroke : seriesOptions . borderColor , 'stroke-width' : seriesOptions . borderWidth , dashstyle : seriesOptions . borderDashStyle , r : 0 , // borderRadius gives wrong size relations and should always be disabled fill : pick ( point . color , series . color ) } ; // Overwrite standard series options with level options			 if ( level ) { attr . stroke = level . borderColor || attr . stroke ; attr [ 'stroke-width' ] = level . borderWidth || attr [ 'stroke-width' ] ; attr . dashstyle = level . borderDashStyle || attr . dashstyle ; } // Merge with point attributes attr . stroke = point . borderColor || attr . stroke ; attr [ 'stroke-width' ] = point . borderWidth || attr [ 'stroke-width' ] ; attr . dashstyle = point . borderDashStyle || attr . dashstyle ; attr . zIndex = ( 1000 - ( point . level * 2 ) ) ; // Make a copy to prevent overwriting individual props point . pointAttr = merge ( point . pointAttr ) ; hover = point . pointAttr . hover ; hover . zIndex = 1001 ; hover . fill = Color ( attr . fill ) . brighten ( seriesOptions . states . hover . brightness ) . get ( ) ; // If not a leaf, then remove fill if ( ! point . isLeaf ) { if ( pick ( seriesOptions . interactByLeaf , ! seriesOptions . allowDrillToNode ) ) { attr . fill = 'none' ; delete hover . fill ; } else { // TODO: let users set the opacity attr . fill = Color ( attr . fill ) . setOpacity ( 0.15 ) . get ( ) ; hover . fill = Color ( hover . fill ) . setOpacity ( 0.75 ) . get ( ) ; } } if ( point . node . level <= series . nodeMap [ series . rootNode ] . level ) { attr . fill = 'none' ; attr . zIndex = 0 ; delete hover . fill ; } point . pointAttr [ '' ] = H . extend ( point . pointAttr [ '' ] , attr ) ; if ( point . dataLabel ) { point . dataLabel . attr ( { zIndex : ( point . pointAttr [ '' ] . zIndex + 1 ) } ) ; } } } ) ; // Call standard drawPoints seriesTypes . column . prototype . drawPoints . call ( this ) ; each ( points , function ( point ) { if ( point . graphic ) { point . graphic . attr ( point . pointAttr [ '' ] ) ; } } ) ; // Set click events on points  if ( seriesOptions . allowDrillToNode ) { series . drillTo ( ) ; } }
Extending ColumnSeries drawPoints
Extending ColumnSeries drawPoints