UNPKG

@progress/kendo-charts

Version:

Kendo UI platform-independent Charts library

96 lines (82 loc) 3.01 kB
import { ShapeElement } from '../../core'; import { deepExtend, setDefaultOptions } from '../../common'; import { CROSS, LEFT, TOP, WHITE } from '../../common/constants'; import { valueOrDefault } from '../../drawing-utils'; export var DEFAULT_MARKER_SIZE = 10; export var DEFAULT_MARKER_BORDER_WIDTH = 2; var LegendItemMarker = (function (ShapeElement) { function LegendItemMarker () { ShapeElement.apply(this, arguments); } if ( ShapeElement ) LegendItemMarker.__proto__ = ShapeElement; LegendItemMarker.prototype = Object.create( ShapeElement && ShapeElement.prototype ); LegendItemMarker.prototype.constructor = LegendItemMarker; LegendItemMarker.prototype.visualStyle = function visualStyle () { var options = this.markerOptions(); var border = options.border; return { stroke: { width: border.width, color: border.color, opacity: valueOrDefault(border.opacity, options.opacity), dashType: border.dashType }, fill: { color: options.background, opacity: options.opacity }, cursor: options.cursor }; }; LegendItemMarker.prototype.markerOptions = function markerOptions () { return this.options; }; LegendItemMarker.prototype.markerHighlightOptions = function markerHighlightOptions () { var options = this.markerOptions(); var borderWidth = options.highlight.border.width; return deepExtend( {}, options, { background: options.border.color }, options.highlight, options.type === CROSS ? { background: options.highlight.border.color, border: { color: options.highlight.background, width: borderWidth / 2 }, width: options.width, height: options.height, margin: { top: 0, left: 0 } } : {} ); }; LegendItemMarker.prototype.createHighlight = function createHighlight () { var highlight = new ShapeElement(this.markerHighlightOptions()); var box = this.paddingBox.clone(); highlight.reflow(box.pad(highlight.options.border.width)); this.highlight = [ highlight.getElement() ]; return this.highlight; }; return LegendItemMarker; }(ShapeElement)); setDefaultOptions(LegendItemMarker, { border: { width: DEFAULT_MARKER_BORDER_WIDTH }, width: DEFAULT_MARKER_SIZE - DEFAULT_MARKER_BORDER_WIDTH, height: DEFAULT_MARKER_SIZE - DEFAULT_MARKER_BORDER_WIDTH, background: WHITE, margin: { top: -1, left: -1 }, vAlign: TOP, align: LEFT, highlight: { width: DEFAULT_MARKER_SIZE, height: DEFAULT_MARKER_SIZE, border: { color: WHITE, width: DEFAULT_MARKER_BORDER_WIDTH } } }); export default LegendItemMarker;