@fusioncharts/fusiontime
Version:
FusionCharts JavaScript time-series charting framework
1 lines • 3.06 kB
JavaScript
"use strict";var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");exports.__esModule=true;exports.default=void 0;var _scrollbar=_interopRequireDefault(require("@fusioncharts/core/src/toolbox/tools/scrollbar"));var _index=require("@fusioncharts/core/src/lib/index.js");var DRAGSTART="timeNavBrushStart",DRAGEND="timeNavBrushEnd",DRAG="timeNavBrush",UP="up",DOWN="down",LABELFORMAT="%b %d, %Y",TRANSLATE="translate",buttonStyle={fill:"#e3e3e3",stroke:"none"},trackStyle={fill:"#f8f8f8",stroke:"none"},anchorStyle={fill:"#e3e3e3",stroke:"none"},buttonPointerFill="#"+(0,_index.getDarkColor)(buttonStyle.fill,60),stripesStroke="#"+(0,_index.getDarkColor)(anchorStyle.fill,60);var _default=exports.default=function _default(timeNav){var scrollbar=timeNav.attachChild(_scrollbar.default,"scrollbar"),chart=timeNav.getFromEnv("chart"),currFocusLimit,lastScrollPosition,timeNavConfig=timeNav.config,scale=timeNavConfig.contextScale,dataSource=scrollbar.getFromEnv("dataSource"),getStyleDef=scrollbar.getFromEnv("getStyleDef"),inputStyle=dataSource.navigator&&dataSource.navigator.scrollbar&&dataSource.navigator.scrollbar.style||{},style,options={timeFormatter:timeNavConfig.formatter},forceFireOptions=Object.assign({forceFire:true},options),eventArgs={formatter:LABELFORMAT,action:TRANSLATE};style={button:Object.assign({stroke:buttonStyle.stroke,fill:buttonStyle.fill},getStyleDef(inputStyle.button)),arrow:Object.assign({fill:buttonPointerFill},getStyleDef(inputStyle.arrow)),scroller:Object.assign({stroke:anchorStyle.stroke,fill:anchorStyle.fill},getStyleDef(inputStyle.scroller)),grip:Object.assign({stroke:stripesStroke},getStyleDef(inputStyle.grip)),track:Object.assign({stroke:trackStyle.stroke,fill:trackStyle.fill},getStyleDef(inputStyle.track))};scrollbar.configure({isHorizontal:true,displayFlat:true,width:timeNav.getScrollbarConfig("width"),height:timeNav.getScrollbarConfig("height"),style:style,drawStripes:1,restrictScrollAnchor:0,scrollRatio:timeNav.getScrollbarConfig("scrollRatio")});scrollbar.attachEventHandlers({scroll:function scroll(scrollPosition){var scrollbarConf=timeNav.getChildren("scrollbar")[0].config,width=scrollbarConf.width,height=scrollbarConf.height,clampDirection,scrollRatio=timeNav.getScrollbarConfig("scrollRatio"),scrollButtonWidth=Math.min(height,width*.5),anchorWidth=(width-2*scrollButtonWidth)*scrollRatio-1,trackOffset=scrollbarConf.x+scrollButtonWidth+.5,trackLength=width-2*scrollButtonWidth-anchorWidth,anchorXPos=trackOffset+trackLength*scrollPosition;clampDirection=lastScrollPosition>scrollPosition?DOWN:UP;chart.setPixelLimit([anchorXPos,anchorXPos+anchorWidth],scale,[clampDirection,clampDirection],{name:DRAG})},scrollStart:function scrollStart(){currFocusLimit=chart.getFocusLimit();chart.getFromEnv("fireChartEvents")(DRAGSTART,[+currFocusLimit[0],+currFocusLimit[1]],eventArgs,forceFireOptions)},scrollEnd:function scrollEnd(){currFocusLimit=chart.getFocusLimit();chart.getFromEnv("fireChartEvents")(DRAGEND,[+currFocusLimit[0],+currFocusLimit[1]],eventArgs,forceFireOptions)}})};