UNPKG

basicprimitives

Version:

Basic Primitives Diagrams for JavaScript - data visualization components library that implements organizational chart and multi-parent dependency diagrams, contains implementations of JavaScript Controls and PDF rendering plugins.

64 lines (53 loc) 2 kB
import { OrientationType } from '../../enums'; import JsonML from '../../common/jsonml-html'; import { highestContrast } from '../../common/colors'; import { getRotatedText, updateRotatedText } from './RotatedText'; export default function GroupTitleTemplate(options) { var {groupTitleFontSize: fontSize, groupTitleFontFamily: fontFamily, groupTitleFontWeight: fontWeight, groupTitleFontStyle: fontStyle, groupTitleColor, itemTitleFirstFontColor, itemTitleSecondFontColor, groupTitleOrientation: textOrientation, groupTitleHorizontalAlignment: horizontalAlignment, groupTitleVerticalAlignment: verticalAlignment } = options; var _template = create(); function create() { return ["div", { "style": { "fontSize": fontSize, "fontFamily": fontFamily, "fontWeight": fontWeight, "fontStyle": fontStyle }, "class": ["bp-item", "bp-corner-all", "bp-grouptitle-frame"] }, getRotatedText({orientation: OrientationType.Horizontal, textOrientation, horizontalAlignment, verticalAlignment, fontSize, fontFamily, fontWeight, fontStyle}) ]; } function template() { return _template; } function getHashCode() { return "defaultGroupTitleTemplate"; } function render(event, data) { var { element, context: itemConfig, width, height } = data, label = itemConfig.groupTitle, backgroundColor = itemConfig.groupTitleColor || groupTitleColor, fontColor = highestContrast(backgroundColor, itemTitleSecondFontColor, itemTitleFirstFontColor); updateRotatedText({element, orientation: OrientationType.Horizontal, textOrientation, verticalAlignment, width, height, label, fontColor }); JsonML.applyStyles(data.element, { "backgroundColor": backgroundColor }); } return { template: template, getHashCode: getHashCode, render: render }; };