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.

95 lines (86 loc) 5.47 kB
import ArrayReader from '../../readers/ArrayReader'; import ValueReader from '../../readers/ValueReader'; import ObjectReader from '../../readers/ObjectReader'; import EnumerationReader from '../../readers/EnumerationReader'; import FunctionReader from '../../readers/FunctionReader'; import { LineType, ShapeType, TextOrientationType, HorizontalAlignmentType, VerticalAlignmentType, Enabled } from '../../enums'; export default function TemplatesOptionTask(optionsTask, defaultConfig, defaultTemplateConfig) { var _data = {}, _hash = {}; var _dataTemplate = new ObjectReader({ groupTitleVerticalAlignment: new EnumerationReader(VerticalAlignmentType, false, defaultConfig.groupTitleVerticalAlignment), groupTitleHorizontalAlignment: new EnumerationReader(HorizontalAlignmentType, false, defaultConfig.groupTitleHorizontalAlignment), groupTitleOrientation: new EnumerationReader(TextOrientationType, false, defaultConfig.groupTitleOrientation), groupTitleFontSize: new ValueReader(["string"], false, defaultConfig.groupTitleFontSize), groupTitleFontFamily: new ValueReader(["string"], false, defaultConfig.groupTitleFontFamily), groupTitleColor: new ValueReader(["string"], false, defaultConfig.groupTitleColor), groupTitleFontWeight: new ValueReader(["string"], false, defaultConfig.groupTitleFontWeight), groupTitleFontStyle: new ValueReader(["string"], false, defaultConfig.groupTitleFontStyle), itemTitleFirstFontColor: new ValueReader(["string"], false, defaultConfig.itemTitleFirstFontColor), itemTitleSecondFontColor: new ValueReader(["string"], false, defaultConfig.itemTitleSecondFontColor), selectCheckBoxLabel: new ValueReader(["string"], false, defaultConfig.selectCheckBoxLabel), onItemRender: new FunctionReader(), onCursorRender: new FunctionReader(), onHighlightRender: new FunctionReader(), onGroupTitleRender: new FunctionReader(), templates: new ArrayReader( new ObjectReader({ name: new ValueReader(["string"], true), isActive: new ValueReader(["boolean"], false, defaultTemplateConfig.isActive), itemSize: new ObjectReader({ width: new ValueReader(["number"], false, defaultTemplateConfig.itemSize.width), height: new ValueReader(["number"], false, defaultTemplateConfig.itemSize.height) }, false, defaultTemplateConfig.itemSize), itemBorderWidth: new ValueReader(["number"], false, defaultTemplateConfig.itemBorderWidth), itemTemplate: new ValueReader(["string", "object"], true), minimizedItemShapeType: new EnumerationReader(ShapeType, true), minimizedItemSize: new ObjectReader({ width: new ValueReader(["number"], false, defaultTemplateConfig.minimizedItemSize.width), height: new ValueReader(["number"], false, defaultTemplateConfig.minimizedItemSize.height) }, false, defaultTemplateConfig.minimizedItemSize), minimizedItemCornerRadius: new ValueReader(["number"], true), minimizedItemLineWidth: new ValueReader(["number"], false, defaultTemplateConfig.minimizedItemLineWidth), minimizedItemBorderColor: new ValueReader(["string"], true), minimizedItemLineType: new EnumerationReader(LineType, false, defaultTemplateConfig.minimizedItemLineType), minimizedItemFillColor: new ValueReader(["string"], true), minimizedItemOpacity: new ValueReader(["number"], false, defaultTemplateConfig.minimizedItemOpacity), highlightPadding: new ObjectReader({ left: new ValueReader(["number"], false, defaultTemplateConfig.highlightPadding.left), top: new ValueReader(["number"], false, defaultTemplateConfig.highlightPadding.top), right: new ValueReader(["number"], false, defaultTemplateConfig.highlightPadding.right), bottom: new ValueReader(["number"], false, defaultTemplateConfig.highlightPadding.bottom) }, false, defaultTemplateConfig.highlightPadding), highlightBorderWidth: new ValueReader(["number"], false, defaultTemplateConfig.highlightBorderWidth), highlightTemplate: new ValueReader(["string", "object"], true), cursorPadding: new ObjectReader({ left: new ValueReader(["number"], false, defaultTemplateConfig.cursorPadding.left), top: new ValueReader(["number"], false, defaultTemplateConfig.cursorPadding.top), right: new ValueReader(["number"], false, defaultTemplateConfig.cursorPadding.right), bottom: new ValueReader(["number"], false, defaultTemplateConfig.cursorPadding.bottom) }, false, defaultTemplateConfig.cursorPadding), cursorBorderWidth: new ValueReader(["number"], false, defaultTemplateConfig.cursorBorderWidth), cursorTemplate: new ValueReader(["string", "object"], true), hasButtons: new EnumerationReader(Enabled, false, defaultTemplateConfig.hasButtons), onButtonsRender: new FunctionReader() }), true, "name" ) }); function process() { var context = { isChanged: false, hash: _hash }; _data = _dataTemplate.read(_data, optionsTask.getOptions(), "options", context); return context.isChanged; } function getOptions() { return _data; } return { process: process, getOptions: getOptions, description: "Checks items template options." }; };