{"version":3,"sources":["kendo.dataviz.stock.js"],"names":["f","define","$","objectKey","object","key","parts","push","sort","join","hashKey","str","i","hash","length","charCodeAt","zeroSize","width","height","baseline","measureText","text","style","measureBox","TextMetrics","current","measure","LRUCache","DEFAULT_OPTIONS","defaultMeasureBox","window","kendo","util","Class","extend","init","size","this","_size","_length","_map","put","value","map","entry","_head","_tail","newer","older","get","baselineMarkerSize","document","createElement","cssText","options","_cache","box","styleKey","cacheKey","cachedResult","baselineMarker","_baselineMarker","cloneNode","textContent","appendChild","body","String","offsetWidth","offsetHeight","offsetTop","parentNode","removeChild","marker","deepExtend","jQuery","amd","a1","a2","a3","createDiv","className","div","ClonedObject","clone","obj","prototype","dataviz","elementStyles","toTime","datavizConstants","Chart","drawing","FadeOutAnimation","NavigatorHint","NAVIGATOR_PANE","NAVIGATOR_AXIS","constants","ZOOM_ACCELERATION","Navigator","AUTO_CATEGORY_WIDTH","StockChart","Animation","setup","_initialOpacity","parseFloat","element","opacity","step","pos","interpolateValue","abort","fn","call","display","cancel","container","chartService","padding","chartPadding","top","paddingTop","left","paddingLeft","createElements","tooltip","scroll","innerHTML","show","from","to","bbox","tooltipStyle","ref","middle","toDate","scrollWidth","minPos","center","x","maxPos","posRange","range","max","min","scale","offset","intl","format","template","getTemplate","clearHideTimeout","_visible","visibility","y1","marginTop","borderTopWidth","_hideTimeout","clearTimeout","_hideAnimation","hide","this$1","setTimeout","play","hideDelay","destroy","setDefaultOptions","chart","select","navigator","parseDate","defined","hint","visible","chartObserver","InstanceObserver","DRAG","DRAG_END","ZOOM","ZOOM_END","addObserver","removeObserver","selection","redraw","_redrawSelf","initSelection","axis","mainAxis","ref$1","ref$2","mousewheel","axisClone","groups","categories","Selection","valueOrDefault","zoom","selectStart","selectEnd","setRange","plotArea","_createPlotArea","namedCategoryAxes","filterAxes","silent","_plotArea","last","panes","redrawSlaves","slavePanes","slice","srcSeries","series","categoryAxis","_drag","e","duration","coords","_eventCoordinates","originalEvent","navigatorAxis","naviRange","datesRange","inNavigator","pane","containsPoint","axisRanges","name","limitValue","liveDrag","set","showHint","_dragEnd","filter","readSelection","ref_selection_options","allAxes","idx","axisOptions","requiresHandlers","DateCategoryAxis","baseUnit","trigger","addDuration","baseUnitStep","_zoom","fromIx","toIx","ref_options","delta","lteDateIndex","preventDefault","Math","abs","expand","scaleRange","_zoomEnd","backgroundBox","_selectStart","_select","_selectEnd","themeOptions","naviOptions","paneOptions","__navi","concat","attachAxes","attachSeries","categoryAxes","valueAxes","valueAxis","equallySpacedSeries","filterSeriesByType","EQUALLY_SPACED_SERIES","justifyAxis","base","type","roundToBaseUnit","justified","_collapse","majorTicks","labels","autoBind","autoBindElements","autoBaseUnitSteps","minutes","hours","days","weeks","months","years","user","maxDateGroups","title","plotBands","_overlap","mirror","majorGridLines","navigatorSeries","seriesColors","defaults","seriesDefaults","color","categoryField","dateField","visibleInLegend","applyDefaults","elementSize","DEFAULT_WIDTH","theme","stockDefaults","axisDefaults","floor","_setElementClass","addClass","setOptions","destroyNavigator","_resize","transitions","_fullRedraw","_redraw","_dirty","partialRedraw","seriesCount","grep","s","dirty","_seriesCount","_trackSharedTooltip","paneByPoint","_unsetActivePoint","bindCategories","copyNavigatorCategories","axisIx","definitions","_stopDragEvent","narrowRange","markers","line","legend","buildFilter","field","operator","ChartInstanceObserver","ui","KendoStockChart","proxy","CHANGE","StockInstanceObserver","handlerMap","navigatorFilter","navigatorCreated","_createChart","_initNavigatorOptions","_instance","observer","sender","navigatorOptions","support","isTouch","touch","isFirefox","browser","mozilla","dataSource","_initDataSource","userOptions","dummyAxis","hasServerFiltering","serverFiltering","hasSelect","_onNavigatorCreated","_navigator","_initNavigatorDataSource","dsOptions","_navigatorDataChangedHandler","_onNavigatorDataChanged","_navigatorDataSource","data","DataSource","create","bind","fetch","seriesIx","currentSeries","currentAxis","naviCategories","instance","seriesLength","axesLength","view","_isBindable","_bindCategoryAxis","_model","_dataBound","_bindCategories","_onDataChanged","_removeNavigatorDataSource","_onNavigatorFilter","names","inArray","navigatorDataSource","unbind","plugin"],"mappings":"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","file":"kendo.dataviz.stock.min.js","sourcesContent":["/*!\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n*/\n(function (f, define) {\n define('util/text-metrics', ['kendo.core'], f);\n}(function () {\n (function ($) {\n window.kendo.util = window.kendo.util || {};\n var LRUCache = kendo.Class.extend({\n init: function (size) {\n this._size = size;\n this._length = 0;\n this._map = {};\n },\n put: function (key, value) {\n var map = this._map;\n var entry = {\n key: key,\n value: value\n };\n map[key] = entry;\n if (!this._head) {\n this._head = this._tail = entry;\n } else {\n this._tail.newer = entry;\n entry.older = this._tail;\n this._tail = entry;\n }\n if (this._length >= this._size) {\n map[this._head.key] = null;\n this._head = this._head.newer;\n this._head.older = null;\n } else {\n this._length++;\n }\n },\n get: function (key) {\n var entry = this._map[key];\n if (entry) {\n if (entry === this._head && entry !== this._tail) {\n this._head = entry.newer;\n this._head.older = null;\n }\n if (entry !== this._tail) {\n if (entry.older) {\n entry.older.newer = entry.newer;\n entry.newer.older = entry.older;\n }\n entry.older = this._tail;\n entry.newer = null;\n this._tail.newer = entry;\n this._tail = entry;\n }\n return entry.value;\n }\n }\n });\n function objectKey(object) {\n var parts = [];\n for (var key in object) {\n parts.push(key + object[key]);\n }\n return parts.sort().join('');\n }\n function hashKey(str) {\n var hash = 2166136261;\n for (var i = 0; i < str.length; ++i) {\n hash += (hash << 1) + (hash << 4) + (hash << 7) + (hash << 8) + (hash << 24);\n hash ^= str.charCodeAt(i);\n }\n return hash >>> 0;\n }\n function zeroSize() {\n return {\n width: 0,\n height: 0,\n baseline: 0\n };\n }\n var DEFAULT_OPTIONS = { baselineMarkerSize: 1 };\n var defaultMeasureBox;\n if (typeof document !== 'undefined') {\n defaultMeasureBox = document.createElement('div');\n defaultMeasureBox.style.cssText = 'position: absolute !important; top: -4000px !important; width: auto !important; height: auto !important;' + 'padding: 0 !important; margin: 0 !important; border: 0 !important;' + 'line-height: normal !important; visibility: hidden !important; white-space: nowrap!important;';\n }\n var TextMetrics = kendo.Class.extend({\n init: function (options) {\n this._cache = new LRUCache(1000);\n this.options = $.extend({}, DEFAULT_OPTIONS, options);\n },\n measure: function (text, style, box) {\n if (!text) {\n return zeroSize();\n }\n var styleKey = objectKey(style);\n var cacheKey = hashKey(text + styleKey);\n var cachedResult = this._cache.get(cacheKey);\n if (cachedResult) {\n return cachedResult;\n }\n var size = zeroSize();\n var measureBox = box || defaultMeasureBox;\n var baselineMarker = this._baselineMarker().cloneNode(false);\n for (var key in style) {\n var value = style[key];\n if (typeof value !== 'undefined') {\n measureBox.style[key] = value;\n }\n }\n measureBox.textContent = text;\n measureBox.appendChild(baselineMarker);\n document.body.appendChild(measureBox);\n if (String(text).length) {\n size.width = measureBox.offsetWidth - this.options.baselineMarkerSize;\n size.height = measureBox.offsetHeight;\n size.baseline = baselineMarker.offsetTop + this.options.baselineMarkerSize;\n }\n if (size.width > 0 && size.height > 0) {\n this._cache.put(cacheKey, size);\n }\n measureBox.parentNode.removeChild(measureBox);\n return size;\n },\n _baselineMarker: function () {\n var marker = document.createElement('div');\n marker.style.cssText = 'display: inline-block; vertical-align: baseline;width: ' + this.options.baselineMarkerSize + 'px; height: ' + this.options.baselineMarkerSize + 'px;overflow: hidden;';\n return marker;\n }\n });\n TextMetrics.current = new TextMetrics();\n function measureText(text, style, measureBox) {\n return TextMetrics.current.measure(text, style, measureBox);\n }\n kendo.deepExtend(kendo.util, {\n LRUCache: LRUCache,\n TextMetrics: TextMetrics,\n measureText: measureText,\n objectKey: objectKey,\n hashKey: hashKey\n });\n }(window.kendo.jQuery));\n}, typeof define == 'function' && define.amd ? define : function (a1, a2, a3) {\n (a3 || a2)();\n}));\n(function (f, define) {\n define('dataviz/stock/kendo-stock-chart', ['kendo.dataviz.chart'], f);\n}(function () {\n (function () {\n window.kendo.dataviz = window.kendo.dataviz || {};\n var dataviz = kendo.dataviz;\n var elementStyles = dataviz.elementStyles;\n var deepExtend = dataviz.deepExtend;\n var toTime = dataviz.toTime;\n var datavizConstants = dataviz.constants;\n var Chart = dataviz.Chart;\n var drawing = kendo.drawing;\n var FadeOutAnimation = drawing.Animation.extend({\n setup: function () {\n this._initialOpacity = parseFloat(elementStyles(this.element, 'opacity').opacity);\n },\n step: function (pos) {\n elementStyles(this.element, { opacity: String(dataviz.interpolateValue(this._initialOpacity, 0, pos)) });\n },\n abort: function () {\n drawing.Animation.fn.abort.call(this);\n elementStyles(this.element, {\n display: 'none',\n opacity: String(this._initialOpacity)\n });\n },\n cancel: function () {\n drawing.Animation.fn.abort.call(this);\n elementStyles(this.element, { opacity: String(this._initialOpacity) });\n }\n });\n function createDiv(className, style) {\n var div = document.createElement('div');\n div.className = className;\n if (style) {\n div.style.cssText = style;\n }\n return div;\n }\n var NavigatorHint = dataviz.Class.extend({\n init: function (container, chartService, options) {\n this.options = deepExtend({}, this.options, options);\n this.container = container;\n this.chartService = chartService;\n var padding = elementStyles(container, [\n 'paddingLeft',\n 'paddingTop'\n ]);\n this.chartPadding = {\n top: padding.paddingTop,\n left: padding.paddingLeft\n };\n this.createElements();\n container.appendChild(this.element);\n },\n createElements: function () {\n var element = this.element = createDiv('k-navigator-hint', 'display: none; position: absolute; top: 1px; left: 1px;');\n var tooltip = this.tooltip = createDiv('k-tooltip k-chart-tooltip');\n var scroll = this.scroll = createDiv('k-scroll');\n tooltip.innerHTML = ' ';\n element.appendChild(tooltip);\n element.appendChild(scroll);\n },\n show: function (from, to, bbox) {\n var ref = this;\n var element = ref.element;\n var options = ref.options;\n var scroll = ref.scroll;\n var tooltip = ref.tooltip;\n var middle = dataviz.toDate(toTime(from) + toTime(to - from) / 2);\n var scrollWidth = bbox.width() * 0.4;\n var minPos = bbox.center().x - scrollWidth;\n var maxPos = bbox.center().x;\n var posRange = maxPos - minPos;\n var range = options.max - options.min;\n var scale = posRange / range;\n var offset = middle - options.min;\n var text = this.chartService.intl.format(options.format, from, to);\n var template = dataviz.getTemplate(options);\n this.clearHideTimeout();\n if (!this._visible) {\n elementStyles(element, {\n visibility: 'hidden',\n display: 'block'\n });\n this._visible = true;\n }\n if (template) {\n text = template({\n from: from,\n to: to\n });\n }\n tooltip.innerHTML = text;\n elementStyles(tooltip, {\n left: bbox.center().x - tooltip.offsetWidth / 2,\n top: bbox.y1\n });\n var tooltipStyle = elementStyles(tooltip, [\n 'marginTop',\n 'borderTopWidth',\n 'height'\n ]);\n elementStyles(scroll, {\n width: scrollWidth,\n left: minPos + offset * scale,\n top: bbox.y1 + tooltipStyle.marginTop + tooltipStyle.borderTopWidth + tooltipStyle.height / 2\n });\n elementStyles(element, { visibility: 'visible' });\n },\n clearHideTimeout: function () {\n if (this._hideTimeout) {\n clearTimeout(this._hideTimeout);\n }\n if (this._hideAnimation) {\n this._hideAnimation.cancel();\n }\n },\n hide: function () {\n var this$1 = this;\n this.clearHideTimeout();\n this._hideTimeout = setTimeout(function () {\n this$1._visible = false;\n this$1._hideAnimation = new FadeOutAnimation(this$1.element);\n this$1._hideAnimation.setup();\n this$1._hideAnimation.play();\n }, this.options.hideDelay);\n },\n destroy: function () {\n this.clearHideTimeout();\n if (this.container) {\n this.container.removeChild(this.element);\n }\n delete this.container;\n delete this.chartService;\n delete this.element;\n delete this.tooltip;\n delete this.scroll;\n }\n });\n dataviz.setDefaultOptions(NavigatorHint, {\n format: '{0:d} - {1:d}',\n hideDelay: 500\n });\n var NAVIGATOR_PANE = '_navigator';\n var NAVIGATOR_AXIS = NAVIGATOR_PANE;\n var constants = {\n NAVIGATOR_AXIS: NAVIGATOR_AXIS,\n NAVIGATOR_PANE: NAVIGATOR_PANE\n };\n var ZOOM_ACCELERATION = 3;\n var Navigator = dataviz.Class.extend({\n init: function (chart) {\n this.chart = chart;\n var options = this.options = deepExtend({}, this.options, chart.options.navigator);\n var select = options.select;\n if (select) {\n select.from = this.parseDate(select.from);\n select.to = this.parseDate(select.to);\n }\n if (!dataviz.defined(options.hint.visible)) {\n options.hint.visible = options.visible;\n }\n var obj;\n this.chartObserver = new dataviz.InstanceObserver(this, (obj = {}, obj[datavizConstants.DRAG] = '_drag', obj[datavizConstants.DRAG_END] = '_dragEnd', obj[datavizConstants.ZOOM] = '_zoom', obj[datavizConstants.ZOOM_END] = '_zoomEnd', obj));\n chart.addObserver(this.chartObserver);\n },\n parseDate: function (value) {\n return dataviz.parseDate(this.chart.chartService.intl, value);\n },\n destroy: function () {\n if (this.chart) {\n this.chart.removeObserver(this.chartObserver);\n delete this.chart;\n }\n if (this.selection) {\n this.selection.destroy();\n delete this.selection;\n }\n if (this.hint) {\n this.hint.destroy();\n delete this.hint;\n }\n },\n redraw: function () {\n this._redrawSelf();\n this.initSelection();\n },\n initSelection: function () {\n var ref = this;\n var chart = ref.chart;\n var options = ref.options;\n var axis = this.mainAxis();\n var ref$1 = axis.range();\n var min = ref$1.min;\n var max = ref$1.max;\n var ref$2 = options.select;\n var from = ref$2.from;\n var to = ref$2.to;\n var mousewheel = ref$2.mousewheel;\n var axisClone = clone(axis);\n var groups = axis.options.categories;\n var selection = this.selection;\n if (groups.length === 0) {\n return;\n }\n if (selection) {\n selection.destroy();\n }\n axisClone.box = axis.box;\n selection = this.selection = new dataviz.Selection(chart, axisClone, {\n min: min,\n max: max,\n from: from || min,\n to: to || max,\n mousewheel: dataviz.valueOrDefault(mousewheel, { zoom: 'left' }),\n visible: options.visible\n }, new dataviz.InstanceObserver(this, {\n selectStart: '_selectStart',\n select: '_select',\n selectEnd: '_selectEnd'\n }));\n if (this.hint) {\n this.hint.destroy();\n }\n if (options.hint.visible) {\n this.hint = new NavigatorHint(chart.element, chart.chartService, {\n min: min,\n max: max,\n template: dataviz.getTemplate(options.hint),\n format: options.hint.format\n });\n }\n },\n setRange: function () {\n var plotArea = this.chart._createPlotArea(true);\n var axis = plotArea.namedCategoryAxes[NAVIGATOR_AXIS];\n var ref = axis.range();\n var min = ref.min;\n var max = ref.max;\n var select = this.options.select || {};\n var from = select.from || min;\n if (from < min) {\n from = min;\n }\n var to = select.to || max;\n if (to > max) {\n to = max;\n }\n this.options.select = deepExtend({}, select, {\n from: from,\n to: to\n });\n this.filterAxes();\n },\n _redrawSelf: function (silent) {\n var plotArea = this.chart._plotArea;\n if (plotArea) {\n plotArea.redraw(dataviz.last(plotArea.panes), silent);\n }\n },\n redrawSlaves: function () {\n var chart = this.chart;\n var plotArea = chart._plotArea;\n var slavePanes = plotArea.panes.slice(0, -1);\n plotArea.srcSeries = chart.options.series;\n plotArea.options.categoryAxis = chart.options.categoryAxis;\n plotArea.redraw(slavePanes);\n },\n _drag: function (e) {\n var ref = this;\n var chart = ref.chart;\n var selection = ref.selection;\n var coords = chart._eventCoordinates(e.originalEvent);\n var navigatorAxis = this.mainAxis();\n var naviRange = navigatorAxis.datesRange();\n var inNavigator = navigatorAxis.pane.box.containsPoint(coords);\n var axis = chart._plotArea.categoryAxis;\n var range = e.axisRanges[axis.options.name];\n var select = this.options.select;\n var duration;\n if (!range || inNavigator || !selection) {\n return;\n }\n if (select.from && select.to) {\n duration = toTime(select.to) - toTime(select.from);\n } else {\n duration = toTime(selection.options.to) - toTime(selection.options.from);\n }\n var from = dataviz.toDate(dataviz.limitValue(toTime(range.min), naviRange.min, toTime(naviRange.max) - duration));\n var to = dataviz.toDate(dataviz.limitValue(toTime(from) + duration, toTime(naviRange.min) + duration, naviRange.max));\n this.options.select = {\n from: from,\n to: to\n };\n if (this.options.liveDrag) {\n this.filterAxes();\n this.redrawSlaves();\n }\n selection.set(from, to);\n this.showHint(from, to);\n },\n _dragEnd: function () {\n this.filterAxes();\n this.filter();\n this.redrawSlaves();\n if (this.hint) {\n this.hint.hide();\n }\n },\n readSelection: function () {\n var ref = this;\n var ref_selection_options = ref.selection.options;\n var from = ref_selection_options.from;\n var to = ref_selection_options.to;\n var select = ref.options.select;\n select.from = from;\n select.to = to;\n },\n filterAxes: function () {\n var ref = this;\n var select = ref.options.select;\n if (select === void 0) {\n select = {};\n }\n var chart = ref.chart;\n var allAxes = chart.options.categoryAxis;\n var from = select.from;\n var to = select.to;\n for (var idx = 0; idx < allAxes.length; idx++) {\n var axis = allAxes[idx];\n if (axis.pane !== NAVIGATOR_PANE) {\n axis.min = from;\n axis.max = to;\n }\n }\n },\n filter: function () {\n var ref = this;\n var chart = ref.chart;\n var select = ref.options.select;\n if (chart.requiresHandlers(['navigatorFilter'])) {\n var axisOptions = new dataviz.DateCategoryAxis(deepExtend({ baseUnit: 'fit' }, chart.options.categoryAxis[0], {\n categories: [\n select.from,\n select.to\n ]\n }), chart.chartService).options;\n this.chart.trigger('navigatorFilter', {\n from: dataviz.addDuration(axisOptions.min, -axisOptions.baseUnitStep, axisOptions.baseUnit),\n to: dataviz.addDuration(axisOptions.max, axisOptions.baseUnitStep, axisOptions.baseUnit)\n });\n }\n },\n _zoom: function (e) {\n var ref = this;\n var axis = ref.chart._plotArea.categoryAxis;\n var selection = ref.selection;\n var ref_options = ref.options;\n var select = ref_options.select;\n var liveDrag = ref_options.liveDrag;\n var categories = this.mainAxis().options.categories;\n var delta = e.delta;\n if (!selection) {\n return;\n }\n var fromIx = dataviz.lteDateIndex(selection.options.from, categories);\n var toIx = dataviz.lteDateIndex(selection.options.to, categories);\n e.originalEvent.preventDefault();\n if (Math.abs(delta) > 1) {\n delta *= ZOOM_ACCELERATION;\n }\n if (toIx - fromIx > 1) {\n selection.expand(delta);\n this.readSelection();\n } else {\n axis.options.min = select.from;\n select.from = axis.scaleRange(-e.delta).min;\n }\n if (liveDrag) {\n this.filterAxes();\n this.redrawSlaves();\n }\n selection.set(select.from, select.to);\n this.showHint(this.options.select.from, this.options.select.to);\n },\n _zoomEnd: function (e) {\n this._dragEnd(e);\n },\n showHint: function (from, to) {\n var plotArea = this.chart._plotArea;\n if (this.hint) {\n this.hint.show(from, to, plotArea.backgroundBox());\n }\n },\n _selectStart: function (e) {\n return this.chart._selectStart(e);\n },\n _select: function (e) {\n this.showHint(e.from, e.to);\n return this.chart._select(e);\n },\n _selectEnd: function (e) {\n if (this.hint) {\n this.hint.hide();\n }\n this.readSelection();\n this.filterAxes();\n this.filter();\n this.redrawSlaves();\n return this.chart._selectEnd(e);\n },\n mainAxis: function () {\n var plotArea = this.chart._plotArea;\n if (plotArea) {\n return plotArea.namedCategoryAxes[NAVIGATOR_AXIS];\n }\n },\n select: function (from, to) {\n var select = this.options.select;\n if (from && to) {\n select.from = this.parseDate(from);\n select.to = this.parseDate(to);\n this.filterAxes();\n this.filter();\n this.redrawSlaves();\n this.selection.set(from, to);\n }\n return {\n from: select.from,\n to: select.to\n };\n }\n });\n Navigator.setup = function (options, themeOptions) {\n if (options === void 0) {\n options = {};\n }\n if (themeOptions === void 0) {\n themeOptions = {};\n }\n if (options.__navi) {\n return;\n }\n options.__navi = true;\n var naviOptions = deepExtend({}, themeOptions.navigator, options.navigator);\n var panes = options.panes = [].concat(options.panes);\n var paneOptions = deepExtend({}, naviOptions.pane, { name: NAVIGATOR_PANE });\n if (!naviOptions.visible) {\n paneOptions.visible = false;\n paneOptions.height = 0.1;\n }\n panes.push(paneOptions);\n Navigator.attachAxes(options, naviOptions);\n Navigator.attachSeries(options, naviOptions, themeOptions);\n };\n Navigator.attachAxes = function (options, naviOptions) {\n var series = naviOptions.series || [];\n var categoryAxes = options.categoryAxis = [].concat(options.categoryAxis);\n var valueAxes = options.valueAxis = [].concat(options.valueAxis);\n var equallySpacedSeries = dataviz.filterSeriesByType(series, datavizConstants.EQUALLY_SPACED_SERIES);\n var justifyAxis = equallySpacedSeries.length === 0;\n var base = deepExtend({\n type: 'date',\n pane: NAVIGATOR_PANE,\n roundToBaseUnit: !justifyAxis,\n justified: justifyAxis,\n _collapse: false,\n majorTicks: { visible: true },\n tooltip: { visible: false },\n labels: { step: 1 },\n autoBind: naviOptions.autoBindElements,\n autoBaseUnitSteps: {\n minutes: [1],\n hours: [\n 1,\n 2\n ],\n days: [\n 1,\n 2\n ],\n weeks: [],\n months: [1],\n years: [1]\n }\n });\n var user = naviOptions.categoryAxis;\n categoryAxes.push(deepExtend({}, base, { maxDateGroups: 200 }, user, {\n name: NAVIGATOR_AXIS,\n title: null,\n baseUnit: 'fit',\n baseUnitStep: 'auto',\n labels: { visible: false },\n majorTicks: { visible: false }\n }), deepExtend({}, base, user, {\n name: NAVIGATOR_AXIS + '_labels',\n maxDateGroups: 20,\n baseUnitStep: 'auto',\n plotBands: [],\n autoBaseUnitSteps: { minutes: [] },\n _overlap: true\n }), deepExtend({}, base, user, {\n name: NAVIGATOR_AXIS + '_ticks',\n maxDateGroups: 200,\n majorTicks: { width: 0.5 },\n plotBands: [],\n title: null,\n labels: {\n visible: false,\n mirror: true\n },\n _overlap: true\n }));\n valueAxes.push(deepExtend({\n name: NAVIGATOR_AXIS,\n pane: NAVIGATOR_PANE,\n majorGridLines: { visible: false },\n visible: false\n }, naviOptions.valueAxis));\n };\n Navigator.attachSeries = function (options, naviOptions, themeOptions) {\n var series = options.series = options.series || [];\n var navigatorSeries = [].concat(naviOptions.series || []);\n var seriesColors = themeOptions.seriesColors;\n var defaults = naviOptions.seriesDefaults;\n for (var idx = 0; idx < navigatorSeries.length; idx++) {\n series.push(deepExtend({\n color: seriesColors[idx % seriesColors.length],\n categoryField: naviOptions.dateField,\n visibleInLegend: false,\n tooltip: { visible: false }\n }, defaults, navigatorSeries[idx], {\n axis: NAVIGATOR_AXIS,\n categoryAxis: NAVIGATOR_AXIS,\n autoBind: naviOptions.autoBindElements\n }));\n }\n };\n function ClonedObject() {\n }\n function clone(obj) {\n ClonedObject.prototype = obj;\n return new ClonedObject();\n }\n var AUTO_CATEGORY_WIDTH = 28;\n var StockChart = Chart.extend({\n applyDefaults: function (options, themeOptions) {\n var width = dataviz.elementSize(this.element).width || datavizConstants.DEFAULT_WIDTH;\n var theme = themeOptions;\n var stockDefaults = {\n seriesDefaults: { categoryField: options.dateField },\n axisDefaults: {\n categoryAxis: {\n name: 'default',\n majorGridLines: { visible: false },\n labels: { step: 2 },\n majorTicks: { visible: false },\n maxDateGroups: Math.floor(width / AUTO_CATEGORY_WIDTH)\n }\n }\n };\n if (theme) {\n theme = deepExtend({}, theme, stockDefaults);\n }\n Navigator.setup(options, theme);\n Chart.fn.applyDefaults.call(this, options, theme);\n },\n _setElementClass: function (element) {\n dataviz.addClass(element, 'k-chart k-stockchart');\n },\n setOptions: function (options) {\n this.destroyNavigator();\n Chart.fn.setOptions.call(this, options);\n },\n _resize: function () {\n var transitions = this.options.transitions;\n this.options.transitions = false;\n this._fullRedraw();\n this.options.transitions = transitions;\n },\n _redraw: function () {\n var navigator = this.navigator;\n if (!this._dirty() && navigator && navigator.options.partialRedraw) {\n navigator.redrawSlaves();\n } else {\n this._fullRedraw();\n }\n },\n _dirty: function () {\n var options = this.options;\n var series = [].concat(options.series, options.navigator.series);\n var seriesCount = dataviz.grep(series, function (s) {\n return s && s.visible;\n }).length;\n var dirty = this._seriesCount !== seriesCount;\n this._seriesCount = seriesCount;\n return dirty;\n },\n _fullRedraw: function () {\n var navigator = this.navigator;\n if (!navigator) {\n navigator = this.navigator = new Navigator(this);\n this.trigger('navigatorCreated', { navigator: navigator });\n }\n navigator.setRange();\n Chart.fn._redraw.call(this);\n navigator.initSelection();\n },\n _trackSharedTooltip: function (coords) {\n var plotArea = this._plotArea;\n var pane = plotArea.paneByPoint(coords);\n if (pane && pane.options.name === NAVIGATOR_PANE) {\n this._unsetActivePoint();\n } else {\n Chart.fn._trackSharedTooltip.call(this, coords);\n }\n },\n bindCategories: function () {\n Chart.fn.bindCategories.call(this);\n this.copyNavigatorCategories();\n },\n copyNavigatorCategories: function () {\n var definitions = [].concat(this.options.categoryAxis);\n var categories;\n for (var axisIx = 0; axisIx < definitions.length; axisIx++) {\n var axis = definitions[axisIx];\n if (axis.name === NAVIGATOR_AXIS) {\n categories = axis.categories;\n } else if (categories && axis.pane === NAVIGATOR_PANE) {\n axis.categories = categories;\n }\n }\n },\n destroyNavigator: function () {\n if (this.navigator) {\n this.navigator.destroy();\n this.navigator = null;\n }\n },\n destroy: function () {\n this.destroyNavigator();\n Chart.fn.destroy.call(this);\n },\n _stopDragEvent: function (e) {\n var coords = this._eventCoordinates(e);\n var pane = this._plotArea.paneByPoint(coords);\n return Chart.fn._stopDragEvent.call(this, e) || pane && pane.options.name === NAVIGATOR_PANE;\n }\n });\n dataviz.setDefaultOptions(StockChart, {\n dateField: 'date',\n axisDefaults: {\n categoryAxis: {\n type: 'date',\n baseUnit: 'fit',\n justified: true\n },\n valueAxis: {\n narrowRange: true,\n labels: { format: 'C' }\n }\n },\n navigator: {\n select: {},\n seriesDefaults: {\n markers: { visible: false },\n tooltip: { visible: true },\n line: { width: 2 }\n },\n hint: {},\n visible: true\n },\n tooltip: { visible: true },\n legend: { visible: false }\n });\n kendo.deepExtend(kendo.dataviz, {\n constants: constants,\n Navigator: Navigator,\n NavigatorHint: NavigatorHint,\n StockChart: StockChart\n });\n }());\n}, typeof define == 'function' && define.amd ? define : function (a1, a2, a3) {\n (a3 || a2)();\n}));\n(function (f, define) {\n define('dataviz/stock/stock-chart', ['dataviz/stock/kendo-stock-chart'], f);\n}(function () {\n (function ($) {\n var kendo = window.kendo;\n var dataviz = kendo.dataviz;\n var ChartInstanceObserver = dataviz.ChartInstanceObserver;\n var Chart = dataviz.ui.Chart;\n var KendoStockChart = dataviz.StockChart;\n var constants = dataviz.constants;\n var NAVIGATOR_AXIS = constants.NAVIGATOR_AXIS;\n var NAVIGATOR_PANE = constants.NAVIGATOR_PANE;\n var deepExtend = kendo.deepExtend;\n var defined = dataviz.defined;\n var proxy = $.proxy;\n var CHANGE = 'change';\n var StockInstanceObserver = ChartInstanceObserver.extend({\n handlerMap: {\n navigatorFilter: '_onNavigatorFilter',\n navigatorCreated: '_onNavigatorCreated'\n }\n });\n var StockChart = Chart.extend({\n options: {\n name: 'StockChart',\n dateField: 'date',\n axisDefaults: {\n categoryAxis: {\n type: 'date',\n baseUnit: 'fit',\n justified: true\n },\n valueAxis: {\n narrowRange: true,\n labels: { format: 'C' }\n }\n },\n navigator: {\n select: {},\n seriesDefaults: {\n markers: { visible: false },\n tooltip: {\n visible: true,\n template: '#= kendo.toString(category, \\'d\\') #'\n },\n line: { width: 2 }\n },\n hint: {},\n visible: true\n },\n tooltip: { visible: true },\n legend: { visible: false }\n },\n _createChart: function (options, themeOptions) {\n this._initNavigatorOptions(options);\n this._instance = new KendoStockChart(this.element[0], options, themeOptions, {\n observer: new StockInstanceObserver(this),\n sender: this\n });\n },\n _initNavigatorOptions: function (options) {\n var navigatorOptions = options.navigator || {};\n var support = kendo.support;\n var isTouch = support.touch;\n var isFirefox = support.browser.mozilla;\n deepExtend(navigatorOptions, {\n autoBindElements: !navigatorOptions.dataSource,\n partialRedraw: navigatorOptions.dataSource,\n liveDrag: !isTouch && !isFirefox\n });\n },\n _initDataSource: function (userOptions) {\n var options = userOptions || {}, dataSource = options.dataSource, hasServerFiltering = dataSource && dataSource.serverFiltering, mainAxis = [].concat(options.categoryAxis)[0], naviOptions = options.navigator || {}, select = naviOptions.select, hasSelect = select && select.from && select.to;\n if (hasServerFiltering && hasSelect) {\n var filter = [].concat(dataSource.filter || []);\n var from = kendo.parseDate(select.from);\n var to = kendo.parseDate(select.to);\n var dummyAxis = new dataviz.DateCategoryAxis(deepExtend({ baseUnit: 'fit' }, mainAxis, {\n categories: [\n from,\n to\n ]\n }), kendo);\n dataSource.filter = buildFilter(dummyAxis.range().min, to).concat(filter);\n }\n Chart.fn._initDataSource.call(this, userOptions);\n },\n _onNavigatorCreated: function (e) {\n this._instance = e.sender;\n this.options = e.sender.options;\n this._navigator = this.navigator = e.navigator;\n this._initNavigatorDataSource();\n },\n _initNavigatorDataSource: function () {\n var navigatorOptions = this.options.navigator;\n var autoBind = navigatorOptions.autoBind;\n var dsOptions = navigatorOptions.dataSource;\n if (dsOptions) {\n this._navigatorDataChangedHandler = this._navigatorDataChangedHandler || proxy(this._onNavigatorDataChanged, this);\n this._navigatorDataSource = kendo.data.DataSource.create(dsOptions).bind(CHANGE, this._navigatorDataChangedHandler);\n if (!defined(autoBind)) {\n autoBind = this.options.autoBind;\n }\n if (autoBind) {\n this._navigatorDataSource.fetch();\n }\n }\n },\n _onNavigatorDataChanged: function () {\n var chart = this, instance = chart._instance, series = chart.options.series, seriesIx, seriesLength = series.length, categoryAxes = chart.options.categoryAxis, axisIx, axesLength = categoryAxes.length, data = chart._navigatorDataSource.view(), currentSeries, currentAxis, naviCategories;\n for (seriesIx = 0; seriesIx < seriesLength; seriesIx++) {\n currentSeries = series[seriesIx];\n if (currentSeries.axis == NAVIGATOR_AXIS && chart._isBindable(currentSeries)) {\n currentSeries.data = data;\n }\n }\n for (axisIx = 0; axisIx < axesLength; axisIx++) {\n currentAxis = categoryAxes[axisIx];\n if (currentAxis.pane == NAVIGATOR_PANE) {\n if (currentAxis.name == NAVIGATOR_AXIS) {\n chart._bindCategoryAxis(currentAxis, data, axisIx);\n naviCategories = currentAxis.categories;\n } else {\n currentAxis.categories = naviCategories;\n }\n }\n }\n if (instance._model) {\n var navigator = this.navigator;\n navigator.redraw();\n navigator.setRange();\n if (!chart.options.dataSource || chart.options.dataSource && chart._dataBound) {\n navigator.redrawSlaves();\n }\n }\n },\n _bindCategories: function () {\n Chart.fn._bindCategories.call(this);\n if (this._instance) {\n this._instance.copyNavigatorCategories();\n }\n },\n _onDataChanged: function () {\n Chart.fn._onDataChanged.call(this);\n this._dataBound = true;\n },\n setOptions: function (options) {\n this._removeNavigatorDataSource();\n this._initNavigatorOptions(options);\n this._instance.destroyNavigator();\n Chart.fn.setOptions.call(this, options);\n },\n _onNavigatorFilter: function (e) {\n this.dataSource.filter(buildFilter(e.from, e.to));\n },\n requiresHandlers: function (names) {\n if (dataviz.inArray('navigatorFilter', names)) {\n var dataSource = this.dataSource;\n var hasServerFiltering = dataSource && dataSource.options.serverFiltering;\n return hasServerFiltering && this.options.navigator.dataSource;\n }\n return Chart.fn.requiresHandlers.call(this, names);\n },\n _removeNavigatorDataSource: function () {\n var navigatorDataSource = this._navigatorDataSource;\n if (navigatorDataSource) {\n navigatorDataSource.unbind(CHANGE, this._navigatorDataChangedHandler);\n delete this._navigatorDataSource;\n }\n },\n destroy: function () {\n Chart.fn.destroy.call(this);\n this._removeNavigatorDataSource();\n }\n });\n dataviz.ui.plugin(StockChart);\n function buildFilter(from, to) {\n return [\n {\n field: 'Date',\n operator: 'gte',\n value: from\n },\n {\n field: 'Date',\n operator: 'lt',\n value: to\n }\n ];\n }\n }(window.kendo.jQuery));\n}, typeof define == 'function' && define.amd ? define : function (a1, a2, a3) {\n (a3 || a2)();\n}));\n(function (f, define) {\n define('kendo.dataviz.stock', [\n 'dataviz/stock/kendo-stock-chart',\n 'dataviz/stock/stock-chart'\n ], f);\n}(function () {\n var __meta__ = {\n id: 'dataviz.stockchart',\n name: 'StockChart',\n category: 'dataviz',\n description: 'StockChart widget and associated financial series.',\n depends: ['dataviz.chart']\n };\n}, typeof define == 'function' && define.amd ? define : function (a1, a2, a3) {\n (a3 || a2)();\n}));"]}