From 687c1652bc708772802cf33321eefc3588abd361 Mon Sep 17 00:00:00 2001 From: Diana Gromova <72144169+16adianay@users.noreply.github.com> Date: Mon, 12 Oct 2026 22:28:00 +0400 Subject: [PATCH 01/11] Improve the Charts - Stock demo (jQuery) (#35604) --- apps/demos/Demos/Charts/Stock/jQuery/data.js | 170 ++++------------- .../Demos/Charts/Stock/jQuery/index.html | 1 + apps/demos/Demos/Charts/Stock/jQuery/index.js | 171 ++++++++++++++---- .../Charts-Stock (fluent.blue.light).png | Bin 24920 -> 19161 bytes .../Charts-Stock (material.blue.light).png | Bin 23505 -> 18407 bytes 5 files changed, 167 insertions(+), 175 deletions(-) diff --git a/apps/demos/Demos/Charts/Stock/jQuery/data.js b/apps/demos/Demos/Charts/Stock/jQuery/data.js index 0c54305cbfbd..d458fe0dcd5b 100644 --- a/apps/demos/Demos/Charts/Stock/jQuery/data.js +++ b/apps/demos/Demos/Charts/Stock/jQuery/data.js @@ -1,139 +1,31 @@ -const dataSource = [{ - date: new Date(1994, 2, 1), - l: 24.00, - h: 25.00, - o: 25.00, - c: 24.875, -}, { - date: new Date(1994, 2, 2), - l: 23.625, - h: 25.125, - o: 24.00, - c: 24.875, -}, { - date: new Date(1994, 2, 3), - l: 26.25, - h: 28.25, - o: 26.75, - c: 27.00, -}, { - date: new Date(1994, 2, 4), - l: 26.50, - h: 27.875, - o: 26.875, - c: 27.25, -}, { - date: new Date(1994, 2, 7), - l: 26.375, - h: 27.50, - o: 27.375, - c: 26.75, -}, { - date: new Date(1994, 2, 8), - l: 25.75, - h: 26.875, - o: 26.75, - c: 26.00, -}, { - date: new Date(1994, 2, 9), - l: 25.75, - h: 26.75, - o: 26.125, - c: 26.25, -}, { - date: new Date(1994, 2, 10), - l: 25.75, - h: 26.375, - o: 26.375, - c: 25.875, -}, { - date: new Date(1994, 2, 11), - l: 24.875, - h: 26.125, - o: 26.00, - c: 25.375, -}, { - date: new Date(1994, 2, 14), - l: 25.125, - h: 26.00, - o: 25.625, - c: 25.75, -}, { - date: new Date(1994, 2, 15), - l: 25.875, - h: 26.625, - o: 26.125, - c: 26.375, -}, { - date: new Date(1994, 2, 16), - l: 26.25, - h: 27.375, - o: 26.25, - c: 27.25, -}, { - date: new Date(1994, 2, 17), - l: 26.875, - h: 27.25, - o: 27.125, - c: 26.875, -}, { - date: new Date(1994, 2, 18), - l: 26.375, - h: 27.125, - o: 27.00, - c: 27.125, -}, { - date: new Date(1994, 2, 21), - l: 26.75, - h: 27.875, - o: 26.875, - c: 27.75, -}, { - date: new Date(1994, 2, 22), - l: 26.75, - h: 28.375, - o: 27.50, - c: 27.00, -}, { - date: new Date(1994, 2, 23), - l: 26.875, - h: 28.125, - o: 27.00, - c: 28.00, -}, { - date: new Date(1994, 2, 24), - l: 26.25, - h: 27.875, - o: 27.75, - c: 27.625, -}, { - date: new Date(1994, 2, 25), - l: 27.50, - h: 28.75, - o: 27.75, - c: 28.00, -}, { - date: new Date(1994, 2, 28), - l: 25.75, - h: 28.25, - o: 28.00, - c: 27.25, -}, { - date: new Date(1994, 2, 29), - l: 26.375, - h: 27.50, - o: 27.50, - c: 26.875, -}, { - date: new Date(1994, 2, 30), - l: 25.75, - h: 27.50, - o: 26.375, - c: 26.25, -}, { - date: new Date(1994, 2, 31), - l: 24.75, - h: 27.00, - o: 26.50, - c: 25.25, -}]; +function generateStockData(startDate, days) { + function randomOffset(amplitude) { + return (Math.random() - 0.5) * amplitude; + } + + const data = []; + const current = new Date(startDate); + let price = 25; + + while (data.length < days) { + const day = current.getDay(); + if (day !== 0 && day !== 6) { + const open = price + randomOffset(1.5); + const close = open + randomOffset(1.5); + const high = Math.max(open, close) + Math.random() * 0.8; + const low = Math.min(open, close) - Math.random() * 0.8; + + data.push({ + date: new Date(current), + o: +open.toFixed(2), + h: +high.toFixed(2), + l: +low.toFixed(2), + c: +close.toFixed(2), + }); + + price = close; + } + current.setDate(current.getDate() + 1); + } + return data; +} diff --git a/apps/demos/Demos/Charts/Stock/jQuery/index.html b/apps/demos/Demos/Charts/Stock/jQuery/index.html index 06da1058e48a..5c2280d22490 100644 --- a/apps/demos/Demos/Charts/Stock/jQuery/index.html +++ b/apps/demos/Demos/Charts/Stock/jQuery/index.html @@ -14,6 +14,7 @@
+
diff --git a/apps/demos/Demos/Charts/Stock/jQuery/index.js b/apps/demos/Demos/Charts/Stock/jQuery/index.js index 3ee2aaefbda1..a06a4ce5681c 100644 --- a/apps/demos/Demos/Charts/Stock/jQuery/index.js +++ b/apps/demos/Demos/Charts/Stock/jQuery/index.js @@ -1,55 +1,154 @@ $(() => { - $('#chart').dxChart({ + const dayMs = 24 * 60 * 60 * 1000; + + const panStepFraction = 0.25; + const zoomFactor = 0.75; + const minVisibleSpanMs = 3 * dayMs; + + const initialStart = new Date(1994, 3, 15); + const initialEnd = new Date(1994, 3, 29); + + const data = generateStockData(new Date(1994, 3, 1), 65); + const dataMin = data[0].date.getTime(); + const dataMax = data[data.length - 1].date.getTime(); + + const chart = $('#chart').dxChart({ title: 'Stock Price', - dataSource, - commonSeriesSettings: { - argumentField: 'date', - type: 'stock', + dataSource: data, + commonSeriesSettings: { argumentField: 'date', type: 'stock' }, + series: [{ + name: 'E-Mart', + openValueField: 'o', + highValueField: 'h', + lowValueField: 'l', + closeValueField: 'c', + reduction: { color: 'red' }, + }], + zoomAndPan: { + argumentAxis: 'both', + dragToZoom: true, + allowMouseWheel: true, }, - series: [ - { - name: 'E-Mart', - openValueField: 'o', - highValueField: 'h', - lowValueField: 'l', - closeValueField: 'c', - reduction: { - color: 'red', - }, - }, - ], + scrollBar: { visible: true, position: 'bottom' }, + legend: { verticalAlignment: 'bottom', horizontalAlignment: 'center' }, valueAxis: { + position: 'right', tickInterval: 1, - title: { - text: 'US dollars', - }, - label: { - format: { - type: 'currency', - precision: 0, - }, - }, + title: { text: 'US dollars' }, + label: { format: { type: 'currency', precision: 0 } }, }, argumentAxis: { - workdaysOnly: true, + workdaysOnly: false, + visualRange: { startValue: initialStart, endValue: initialEnd }, label: { - format: 'shortDate', + format: 'MMM dd', + overlappingBehavior: 'rotate', + rotationAngle: 30, }, }, - export: { - enabled: true, - }, + export: { enabled: true }, tooltip: { enabled: true, location: 'edge', - customizeTooltip(arg) { + customizeTooltip({ + openValue, closeValue, highValue, lowValue, + }) { return { - text: `Open: $${arg.openValue}
` - + `Close: $${arg.closeValue}
` - + `High: $${arg.highValue}
` - + `Low: $${arg.lowValue}
`, + text: [ + `Open: $${openValue}`, + `Close: $${closeValue}`, + `High: $${highValue}`, + `Low: $${lowValue}`, + ].join('
'), }; }, }, + }).dxChart('instance'); + + function clamp(value, min, max) { + return Math.min(Math.max(value, min), max); + } + + function getRange() { + const { startValue, endValue } = chart.getArgumentAxis().visualRange(); + return { start: startValue.getTime(), end: endValue.getTime() }; + } + + function setRange(start, end) { + const span = clamp(end - start, minVisibleSpanMs, dataMax - dataMin); + const center = (start + end) / 2; + const newStart = clamp(center - span / 2, dataMin, dataMax - span); + + chart.getArgumentAxis().visualRange({ + startValue: new Date(newStart), + endValue: new Date(newStart + span), + }); + } + + function pan(direction) { + const { start, end } = getRange(); + const shift = (end - start) * panStepFraction * direction; + setRange(start + shift, end + shift); + } + + function zoom(factor) { + const { start, end } = getRange(); + const center = (start + end) / 2; + const half = ((end - start) * factor) / 2; + setRange(center - half, center + half); + } + + function resetZoom() { + setRange(initialStart.getTime(), initialEnd.getTime()); + } + + $('#toolbar').dxToolbar({ + items: [ + { + location: 'after', + widget: 'dxButton', + options: { + icon: 'chevronleft', + hint: 'Pan Left', + onClick: () => pan(-1), + }, + }, + { + location: 'after', + widget: 'dxButton', + options: { + icon: 'chevronright', + hint: 'Pan Right', + onClick: () => pan(1), + }, + }, + { + location: 'after', + widget: 'dxButton', + options: { + icon: 'plus', + hint: 'Zoom In', + onClick: () => zoom(zoomFactor), + }, + }, + { + location: 'after', + widget: 'dxButton', + options: { + icon: 'minus', + hint: 'Zoom Out', + onClick: () => zoom(1 / zoomFactor), + }, + }, + { + location: 'after', + widget: 'dxButton', + options: { + icon: 'refresh', + hint: 'Reset Zoom', + onClick: resetZoom, + }, + }, + ], }); }); diff --git a/apps/demos/testing/etalons/Charts-Stock (fluent.blue.light).png b/apps/demos/testing/etalons/Charts-Stock (fluent.blue.light).png index 3932b5bca8409e88f6d2e2d2803915f6bc07f017..82dcc4e61833a1b8664f46ffeccdec1ebf3b03bb 100644 GIT binary patch literal 19161 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 DZJWx{ literal 24920 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 RIIa@2gs7}Y?lY}-{|_qH7bE}x diff --git a/apps/demos/testing/etalons/Charts-Stock (material.blue.light).png b/apps/demos/testing/etalons/Charts-Stock (material.blue.light).png index 94c83f45d2e8e82e74882c8d26ed57fe20e39f70..88063b161822abe7832aeb1ac598198db50c47b7 100644 GIT binary patch literal 18407 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 Date: Thu, 15 Oct 2026 23:03:14 +0400 Subject: [PATCH 02/11] Improve the Charts - Stock demo (Angular, React, Vue + jQuery data fix) (#35669) --- .../Stock/Angular/app/app.component.html | 56 ++++- .../Charts/Stock/Angular/app/app.component.ts | 107 ++++++++- .../Charts/Stock/Angular/app/app.service.ts | 179 ++++----------- apps/demos/Demos/Charts/Stock/React/App.tsx | 171 +++++++++++--- apps/demos/Demos/Charts/Stock/React/data.ts | 187 ++++----------- apps/demos/Demos/Charts/Stock/ReactJs/App.js | 215 +++++++++++++++--- apps/demos/Demos/Charts/Stock/ReactJs/data.js | 196 +++------------- apps/demos/Demos/Charts/Stock/Vue/App.vue | 156 ++++++++++++- apps/demos/Demos/Charts/Stock/Vue/data.ts | 187 ++++----------- apps/demos/Demos/Charts/Stock/jQuery/data.js | 13 +- .../Charts-Stock (fluent.blue.light).png | Bin 19161 -> 19599 bytes .../Charts-Stock (material.blue.light).png | Bin 18407 -> 18809 bytes ...orm__readonly (fluent.blue.light)_mask.png | Bin 227 -> 141 bytes ...-form__weekly (fluent.blue.light)_mask.png | Bin 227 -> 141 bytes 14 files changed, 806 insertions(+), 661 deletions(-) diff --git a/apps/demos/Demos/Charts/Stock/Angular/app/app.component.html b/apps/demos/Demos/Charts/Stock/Angular/app/app.component.html index b2564bc3cc80..54e5f5b16037 100644 --- a/apps/demos/Demos/Charts/Stock/Angular/app/app.component.html +++ b/apps/demos/Demos/Charts/Stock/Angular/app/app.component.html @@ -1,3 +1,35 @@ + + + + + + + + + + + + - + + + + + - - + + this.pan(-1), + }; + + panRightButtonOptions: DxButtonTypes.Properties = { + icon: 'chevronright', + hint: 'Pan Right', + onClick: () => this.pan(1), + }; + + zoomInButtonOptions: DxButtonTypes.Properties = { + icon: 'plus', + hint: 'Zoom In', + onClick: () => this.zoom(zoomFactor), + }; + + zoomOutButtonOptions: DxButtonTypes.Properties = { + icon: 'minus', + hint: 'Zoom Out', + onClick: () => this.zoom(1 / zoomFactor), + }; + + resetZoomButtonOptions: DxButtonTypes.Properties = { + icon: 'refresh', + hint: 'Reset Zoom', + onClick: () => this.resetZoom(), + }; + + constructor(service: Service, private changeDetectorRef: ChangeDetectorRef) { this.stockPrices = service.getStockPrices(); + this.dataMin = this.stockPrices[0].date.getTime(); + this.dataMax = this.stockPrices[this.stockPrices.length - 1].date.getTime(); + } + + getRange() { + return { + start: (this.visualRange.startValue as Date).getTime(), + end: (this.visualRange.endValue as Date).getTime(), + }; + } + + setRange(start: number, end: number) { + const span = clamp(end - start, minVisibleSpanMs, this.dataMax - this.dataMin); + const center = (start + end) / 2; + const newStart = clamp(center - span / 2, this.dataMin, this.dataMax - span); + + this.visualRange = { + startValue: new Date(newStart), + endValue: new Date(newStart + span), + }; + this.changeDetectorRef.detectChanges(); + } + + pan(direction: number) { + const { start, end } = this.getRange(); + const shift = (end - start) * panStepFraction * direction; + this.setRange(start + shift, end + shift); + } + + zoom(factor: number) { + const { start, end } = this.getRange(); + const center = (start + end) / 2; + const half = ((end - start) * factor) / 2; + this.setRange(center - half, center + half); + } + + resetZoom() { + this.setRange(this.initialStart.getTime(), this.initialEnd.getTime()); } - customizeTooltip(arg) { + customizeTooltip(arg: DxChartTypes.PointInfo) { + if (!('openValue' in arg)) { + return { text: '' }; + } return { text: `Open: $${arg.openValue}
` + `Close: $${arg.closeValue}
` diff --git a/apps/demos/Demos/Charts/Stock/Angular/app/app.service.ts b/apps/demos/Demos/Charts/Stock/Angular/app/app.service.ts index 0240c22abc90..31902d64df8d 100644 --- a/apps/demos/Demos/Charts/Stock/Angular/app/app.service.ts +++ b/apps/demos/Demos/Charts/Stock/Angular/app/app.service.ts @@ -12,145 +12,46 @@ export class StockPrice { c: number; } -const stockPrices: StockPrice[] = [{ - date: new Date(1994, 2, 1), - l: 24.00, - h: 25.00, - o: 25.00, - c: 24.875, -}, { - date: new Date(1994, 2, 2), - l: 23.625, - h: 25.125, - o: 24.00, - c: 24.875, -}, { - date: new Date(1994, 2, 3), - l: 26.25, - h: 28.25, - o: 26.75, - c: 27.00, -}, { - date: new Date(1994, 2, 4), - l: 26.50, - h: 27.875, - o: 26.875, - c: 27.25, -}, { - date: new Date(1994, 2, 7), - l: 26.375, - h: 27.50, - o: 27.375, - c: 26.75, -}, { - date: new Date(1994, 2, 8), - l: 25.75, - h: 26.875, - o: 26.75, - c: 26.00, -}, { - date: new Date(1994, 2, 9), - l: 25.75, - h: 26.75, - o: 26.125, - c: 26.25, -}, { - date: new Date(1994, 2, 10), - l: 25.75, - h: 26.375, - o: 26.375, - c: 25.875, -}, { - date: new Date(1994, 2, 11), - l: 24.875, - h: 26.125, - o: 26.00, - c: 25.375, -}, { - date: new Date(1994, 2, 14), - l: 25.125, - h: 26.00, - o: 25.625, - c: 25.75, -}, { - date: new Date(1994, 2, 15), - l: 25.875, - h: 26.625, - o: 26.125, - c: 26.375, -}, { - date: new Date(1994, 2, 16), - l: 26.25, - h: 27.375, - o: 26.25, - c: 27.25, -}, { - date: new Date(1994, 2, 17), - l: 26.875, - h: 27.25, - o: 27.125, - c: 26.875, -}, { - date: new Date(1994, 2, 18), - l: 26.375, - h: 27.125, - o: 27.00, - c: 27.125, -}, { - date: new Date(1994, 2, 21), - l: 26.75, - h: 27.875, - o: 26.875, - c: 27.75, -}, { - date: new Date(1994, 2, 22), - l: 26.75, - h: 28.375, - o: 27.50, - c: 27.00, -}, { - date: new Date(1994, 2, 23), - l: 26.875, - h: 28.125, - o: 27.00, - c: 28.00, -}, { - date: new Date(1994, 2, 24), - l: 26.25, - h: 27.875, - o: 27.75, - c: 27.625, -}, { - date: new Date(1994, 2, 25), - l: 27.50, - h: 28.75, - o: 27.75, - c: 28.00, -}, { - date: new Date(1994, 2, 28), - l: 25.75, - h: 28.25, - o: 28.00, - c: 27.25, -}, { - date: new Date(1994, 2, 29), - l: 26.375, - h: 27.50, - o: 27.50, - c: 26.875, -}, { - date: new Date(1994, 2, 30), - l: 25.75, - h: 27.50, - o: 26.375, - c: 26.25, -}, { - date: new Date(1994, 2, 31), - l: 24.75, - h: 27.00, - o: 26.50, - c: 25.25, -}]; +function generateStockData(startDate: Date, days: number): StockPrice[] { + let seed = 12345; + + function random(): number { + seed = (seed * 16807) % 2147483647; + return (seed - 1) / 2147483646; + } + + function randomOffset(amplitude: number): number { + return (random() - 0.5) * amplitude; + } + + const data: StockPrice[] = []; + const current = new Date(startDate); + let price = 25; + + while (data.length < days) { + const day = current.getDay(); + if (day !== 0 && day !== 6) { + const open = price + randomOffset(1.5); + const close = open + randomOffset(1.5); + const high = Math.max(open, close) + random() * 0.8; + const low = Math.min(open, close) - random() * 0.8; + + data.push({ + date: new Date(current), + o: +open.toFixed(2), + h: +high.toFixed(2), + l: +low.toFixed(2), + c: +close.toFixed(2), + }); + + price = close; + } + current.setDate(current.getDate() + 1); + } + return data; +} + +const stockPrices: StockPrice[] = generateStockData(new Date(1994, 3, 1), 65); @Injectable() export class Service { diff --git a/apps/demos/Demos/Charts/Stock/React/App.tsx b/apps/demos/Demos/Charts/Stock/React/App.tsx index fa73f5c3571e..2d60fbfc5915 100644 --- a/apps/demos/Demos/Charts/Stock/React/App.tsx +++ b/apps/demos/Demos/Charts/Stock/React/App.tsx @@ -1,4 +1,4 @@ -import React from 'react'; +import React, { useCallback, useMemo, useState } from 'react'; import Chart, { CommonSeriesSettings, Series, @@ -8,12 +8,40 @@ import Chart, { Format, ValueAxis, Title, + ZoomAndPan, + ScrollBar, + Legend, Export, Tooltip, } from 'devextreme-react/chart'; import type { ChartTypes } from 'devextreme-react/chart'; +import type { VisualRange } from 'devextreme-react/common/charts'; +import type { ButtonTypes } from 'devextreme-react/button'; +import Toolbar, { Item } from 'devextreme-react/toolbar'; import { dataSource } from './data.ts'; +const dayMs = 24 * 60 * 60 * 1000; +const panStepFraction = 0.25; +const zoomFactor = 0.75; +const minVisibleSpanMs = 3 * dayMs; + +const initialStart = new Date(1994, 3, 15); +const initialEnd = new Date(1994, 3, 29); + +const dataMin = dataSource[0].date.getTime(); +const dataMax = dataSource[dataSource.length - 1].date.getTime(); + +function clamp(value: number, min: number, max: number): number { + return Math.min(Math.max(value, min), max); +} + +function getRange(range: VisualRange) { + return { + start: (range.startValue as Date).getTime(), + end: (range.endValue as Date).getTime(), + }; +} + function customizeTooltip(arg: ChartTypes.PointInfo): Record { if (!('openValue' in arg)) { return { text: '' }; @@ -28,34 +56,123 @@ function customizeTooltip(arg: ChartTypes.PointInfo): Record { } function App() { + const [visualRange, setVisualRange] = useState({ + startValue: initialStart, + endValue: initialEnd, + }); + + const setRange = useCallback((start: number, end: number) => { + const span = clamp(end - start, minVisibleSpanMs, dataMax - dataMin); + const center = (start + end) / 2; + const newStart = clamp(center - span / 2, dataMin, dataMax - span); + + setVisualRange({ + startValue: new Date(newStart), + endValue: new Date(newStart + span), + }); + }, []); + + const pan = useCallback((direction: number) => { + const { start, end } = getRange(visualRange); + const shift = (end - start) * panStepFraction * direction; + setRange(start + shift, end + shift); + }, [visualRange, setRange]); + + const zoom = useCallback((factor: number) => { + const { start, end } = getRange(visualRange); + const center = (start + end) / 2; + const half = ((end - start) * factor) / 2; + setRange(center - half, center + half); + }, [visualRange, setRange]); + + const resetZoom = useCallback(() => { + setRange(initialStart.getTime(), initialEnd.getTime()); + }, [setRange]); + + const panLeftButtonOptions = useMemo(() => ({ + icon: 'chevronleft', + hint: 'Pan Left', + onClick: () => pan(-1), + }), [pan]); + + const panRightButtonOptions = useMemo(() => ({ + icon: 'chevronright', + hint: 'Pan Right', + onClick: () => pan(1), + }), [pan]); + + const zoomInButtonOptions = useMemo(() => ({ + icon: 'plus', + hint: 'Zoom In', + onClick: () => zoom(zoomFactor), + }), [zoom]); + + const zoomOutButtonOptions = useMemo(() => ({ + icon: 'minus', + hint: 'Zoom Out', + onClick: () => zoom(1 / zoomFactor), + }), [zoom]); + + const resetZoomButtonOptions = useMemo(() => ({ + icon: 'refresh', + hint: 'Reset Zoom', + onClick: resetZoom, + }), [resetZoom]); + return ( - - - + + + + + + + + - - - - - - - <Label> - <Format precision={0} type="currency" /> - </Label> - </ValueAxis> - <Export enabled={true} /> - <Tooltip - enabled={true} - customizeTooltip={customizeTooltip} - location="edge" - /> - </Chart> + <CommonSeriesSettings argumentField="date" type="stock" /> + <Series + name="E-Mart" + openValueField="o" + highValueField="h" + lowValueField="l" + closeValueField="c" + > + <Reduction color="red" /> + </Series> + <ZoomAndPan + argumentAxis="both" + dragToZoom={true} + allowMouseWheel={true} + /> + <ScrollBar visible={true} position="bottom" /> + <Legend verticalAlignment="bottom" horizontalAlignment="center" /> + <ArgumentAxis + visualRange={visualRange} + > + <Label + format="MMM dd" + overlappingBehavior="rotate" + rotationAngle={30} + /> + </ArgumentAxis> + <ValueAxis tickInterval={1} position="right"> + <Title text="US dollars" /> + <Label> + <Format precision={0} type="currency" /> + </Label> + </ValueAxis> + <Export enabled={true} /> + <Tooltip + enabled={true} + customizeTooltip={customizeTooltip} + location="edge" + /> + </Chart> + </> ); } diff --git a/apps/demos/Demos/Charts/Stock/React/data.ts b/apps/demos/Demos/Charts/Stock/React/data.ts index 29303780dd9e..1130d8f41409 100644 --- a/apps/demos/Demos/Charts/Stock/React/data.ts +++ b/apps/demos/Demos/Charts/Stock/React/data.ts @@ -1,139 +1,48 @@ -export const dataSource = [{ - date: new Date(1994, 2, 1), - l: 24.00, - h: 25.00, - o: 25.00, - c: 24.875, -}, { - date: new Date(1994, 2, 2), - l: 23.625, - h: 25.125, - o: 24.00, - c: 24.875, -}, { - date: new Date(1994, 2, 3), - l: 26.25, - h: 28.25, - o: 26.75, - c: 27.00, -}, { - date: new Date(1994, 2, 4), - l: 26.50, - h: 27.875, - o: 26.875, - c: 27.25, -}, { - date: new Date(1994, 2, 7), - l: 26.375, - h: 27.50, - o: 27.375, - c: 26.75, -}, { - date: new Date(1994, 2, 8), - l: 25.75, - h: 26.875, - o: 26.75, - c: 26.00, -}, { - date: new Date(1994, 2, 9), - l: 25.75, - h: 26.75, - o: 26.125, - c: 26.25, -}, { - date: new Date(1994, 2, 10), - l: 25.75, - h: 26.375, - o: 26.375, - c: 25.875, -}, { - date: new Date(1994, 2, 11), - l: 24.875, - h: 26.125, - o: 26.00, - c: 25.375, -}, { - date: new Date(1994, 2, 14), - l: 25.125, - h: 26.00, - o: 25.625, - c: 25.75, -}, { - date: new Date(1994, 2, 15), - l: 25.875, - h: 26.625, - o: 26.125, - c: 26.375, -}, { - date: new Date(1994, 2, 16), - l: 26.25, - h: 27.375, - o: 26.25, - c: 27.25, -}, { - date: new Date(1994, 2, 17), - l: 26.875, - h: 27.25, - o: 27.125, - c: 26.875, -}, { - date: new Date(1994, 2, 18), - l: 26.375, - h: 27.125, - o: 27.00, - c: 27.125, -}, { - date: new Date(1994, 2, 21), - l: 26.75, - h: 27.875, - o: 26.875, - c: 27.75, -}, { - date: new Date(1994, 2, 22), - l: 26.75, - h: 28.375, - o: 27.50, - c: 27.00, -}, { - date: new Date(1994, 2, 23), - l: 26.875, - h: 28.125, - o: 27.00, - c: 28.00, -}, { - date: new Date(1994, 2, 24), - l: 26.25, - h: 27.875, - o: 27.75, - c: 27.625, -}, { - date: new Date(1994, 2, 25), - l: 27.50, - h: 28.75, - o: 27.75, - c: 28.00, -}, { - date: new Date(1994, 2, 28), - l: 25.75, - h: 28.25, - o: 28.00, - c: 27.25, -}, { - date: new Date(1994, 2, 29), - l: 26.375, - h: 27.50, - o: 27.50, - c: 26.875, -}, { - date: new Date(1994, 2, 30), - l: 25.75, - h: 27.50, - o: 26.375, - c: 26.25, -}, { - date: new Date(1994, 2, 31), - l: 24.75, - h: 27.00, - o: 26.50, - c: 25.25, -}]; +export interface StockPrice { + date: Date; + l: number; + h: number; + o: number; + c: number; +} + +function generateStockData(startDate: Date, days: number): StockPrice[] { + let seed = 12345; + + function random(): number { + seed = (seed * 16807) % 2147483647; + return (seed - 1) / 2147483646; + } + + function randomOffset(amplitude: number): number { + return (random() - 0.5) * amplitude; + } + + const data: StockPrice[] = []; + const current = new Date(startDate); + let price = 25; + + while (data.length < days) { + const day = current.getDay(); + if (day !== 0 && day !== 6) { + const open = price + randomOffset(1.5); + const close = open + randomOffset(1.5); + const high = Math.max(open, close) + random() * 0.8; + const low = Math.min(open, close) - random() * 0.8; + + data.push({ + date: new Date(current), + o: +open.toFixed(2), + h: +high.toFixed(2), + l: +low.toFixed(2), + c: +close.toFixed(2), + }); + + price = close; + } + current.setDate(current.getDate() + 1); + } + return data; +} + +export const dataSource = generateStockData(new Date(1994, 3, 1), 65); diff --git a/apps/demos/Demos/Charts/Stock/ReactJs/App.js b/apps/demos/Demos/Charts/Stock/ReactJs/App.js index 24cf604fc115..2696524e0c3d 100644 --- a/apps/demos/Demos/Charts/Stock/ReactJs/App.js +++ b/apps/demos/Demos/Charts/Stock/ReactJs/App.js @@ -1,4 +1,4 @@ -import React from 'react'; +import React, { useCallback, useMemo, useState } from 'react'; import Chart, { CommonSeriesSettings, Series, @@ -8,11 +8,32 @@ import Chart, { Format, ValueAxis, Title, + ZoomAndPan, + ScrollBar, + Legend, Export, Tooltip, } from 'devextreme-react/chart'; +import Toolbar, { Item } from 'devextreme-react/toolbar'; import { dataSource } from './data.js'; +const dayMs = 24 * 60 * 60 * 1000; +const panStepFraction = 0.25; +const zoomFactor = 0.75; +const minVisibleSpanMs = 3 * dayMs; +const initialStart = new Date(1994, 3, 15); +const initialEnd = new Date(1994, 3, 29); +const dataMin = dataSource[0].date.getTime(); +const dataMax = dataSource[dataSource.length - 1].date.getTime(); +function clamp(value, min, max) { + return Math.min(Math.max(value, min), max); +} +function getRange(range) { + return { + start: range.startValue.getTime(), + end: range.endValue.getTime(), + }; +} function customizeTooltip(arg) { if (!('openValue' in arg)) { return { text: '' }; @@ -25,44 +46,166 @@ function customizeTooltip(arg) { }; } function App() { + const [visualRange, setVisualRange] = useState({ + startValue: initialStart, + endValue: initialEnd, + }); + const setRange = useCallback((start, end) => { + const span = clamp(end - start, minVisibleSpanMs, dataMax - dataMin); + const center = (start + end) / 2; + const newStart = clamp(center - span / 2, dataMin, dataMax - span); + setVisualRange({ + startValue: new Date(newStart), + endValue: new Date(newStart + span), + }); + }, []); + const pan = useCallback( + (direction) => { + const { start, end } = getRange(visualRange); + const shift = (end - start) * panStepFraction * direction; + setRange(start + shift, end + shift); + }, + [visualRange, setRange], + ); + const zoom = useCallback( + (factor) => { + const { start, end } = getRange(visualRange); + const center = (start + end) / 2; + const half = ((end - start) * factor) / 2; + setRange(center - half, center + half); + }, + [visualRange, setRange], + ); + const resetZoom = useCallback(() => { + setRange(initialStart.getTime(), initialEnd.getTime()); + }, [setRange]); + const panLeftButtonOptions = useMemo( + () => ({ + icon: 'chevronleft', + hint: 'Pan Left', + onClick: () => pan(-1), + }), + [pan], + ); + const panRightButtonOptions = useMemo( + () => ({ + icon: 'chevronright', + hint: 'Pan Right', + onClick: () => pan(1), + }), + [pan], + ); + const zoomInButtonOptions = useMemo( + () => ({ + icon: 'plus', + hint: 'Zoom In', + onClick: () => zoom(zoomFactor), + }), + [zoom], + ); + const zoomOutButtonOptions = useMemo( + () => ({ + icon: 'minus', + hint: 'Zoom Out', + onClick: () => zoom(1 / zoomFactor), + }), + [zoom], + ); + const resetZoomButtonOptions = useMemo( + () => ({ + icon: 'refresh', + hint: 'Reset Zoom', + onClick: resetZoom, + }), + [resetZoom], + ); return ( - <Chart - id="chart" - title="Stock Price" - dataSource={dataSource} - > - <CommonSeriesSettings - argumentField="date" - type="stock" - /> - <Series - name="E-Mart" - openValueField="o" - highValueField="h" - lowValueField="l" - closeValueField="c" + <> + <Toolbar> + <Item + location="after" + widget="dxButton" + options={panLeftButtonOptions} + /> + <Item + location="after" + widget="dxButton" + options={panRightButtonOptions} + /> + <Item + location="after" + widget="dxButton" + options={zoomInButtonOptions} + /> + <Item + location="after" + widget="dxButton" + options={zoomOutButtonOptions} + /> + <Item + location="after" + widget="dxButton" + options={resetZoomButtonOptions} + /> + </Toolbar> + <Chart + id="chart" + title="Stock Price" + dataSource={dataSource} > - <Reduction color="red" /> - </Series> - <ArgumentAxis workdaysOnly={true}> - <Label format="shortDate" /> - </ArgumentAxis> - <ValueAxis tickInterval={1}> - <Title text="US dollars" /> - <Label> - <Format - precision={0} - type="currency" + <CommonSeriesSettings + argumentField="date" + type="stock" + /> + <Series + name="E-Mart" + openValueField="o" + highValueField="h" + lowValueField="l" + closeValueField="c" + > + <Reduction color="red" /> + </Series> + <ZoomAndPan + argumentAxis="both" + dragToZoom={true} + allowMouseWheel={true} + /> + <ScrollBar + visible={true} + position="bottom" + /> + <Legend + verticalAlignment="bottom" + horizontalAlignment="center" + /> + <ArgumentAxis visualRange={visualRange}> + <Label + format="MMM dd" + overlappingBehavior="rotate" + rotationAngle={30} /> - </Label> - </ValueAxis> - <Export enabled={true} /> - <Tooltip - enabled={true} - customizeTooltip={customizeTooltip} - location="edge" - /> - </Chart> + </ArgumentAxis> + <ValueAxis + tickInterval={1} + position="right" + > + <Title text="US dollars" /> + <Label> + <Format + precision={0} + type="currency" + /> + </Label> + </ValueAxis> + <Export enabled={true} /> + <Tooltip + enabled={true} + customizeTooltip={customizeTooltip} + location="edge" + /> + </Chart> + </> ); } export default App; diff --git a/apps/demos/Demos/Charts/Stock/ReactJs/data.js b/apps/demos/Demos/Charts/Stock/ReactJs/data.js index 8ac0d34d2404..0361f3fea288 100644 --- a/apps/demos/Demos/Charts/Stock/ReactJs/data.js +++ b/apps/demos/Demos/Charts/Stock/ReactJs/data.js @@ -1,163 +1,33 @@ -export const dataSource = [ - { - date: new Date(1994, 2, 1), - l: 24.0, - h: 25.0, - o: 25.0, - c: 24.875, - }, - { - date: new Date(1994, 2, 2), - l: 23.625, - h: 25.125, - o: 24.0, - c: 24.875, - }, - { - date: new Date(1994, 2, 3), - l: 26.25, - h: 28.25, - o: 26.75, - c: 27.0, - }, - { - date: new Date(1994, 2, 4), - l: 26.5, - h: 27.875, - o: 26.875, - c: 27.25, - }, - { - date: new Date(1994, 2, 7), - l: 26.375, - h: 27.5, - o: 27.375, - c: 26.75, - }, - { - date: new Date(1994, 2, 8), - l: 25.75, - h: 26.875, - o: 26.75, - c: 26.0, - }, - { - date: new Date(1994, 2, 9), - l: 25.75, - h: 26.75, - o: 26.125, - c: 26.25, - }, - { - date: new Date(1994, 2, 10), - l: 25.75, - h: 26.375, - o: 26.375, - c: 25.875, - }, - { - date: new Date(1994, 2, 11), - l: 24.875, - h: 26.125, - o: 26.0, - c: 25.375, - }, - { - date: new Date(1994, 2, 14), - l: 25.125, - h: 26.0, - o: 25.625, - c: 25.75, - }, - { - date: new Date(1994, 2, 15), - l: 25.875, - h: 26.625, - o: 26.125, - c: 26.375, - }, - { - date: new Date(1994, 2, 16), - l: 26.25, - h: 27.375, - o: 26.25, - c: 27.25, - }, - { - date: new Date(1994, 2, 17), - l: 26.875, - h: 27.25, - o: 27.125, - c: 26.875, - }, - { - date: new Date(1994, 2, 18), - l: 26.375, - h: 27.125, - o: 27.0, - c: 27.125, - }, - { - date: new Date(1994, 2, 21), - l: 26.75, - h: 27.875, - o: 26.875, - c: 27.75, - }, - { - date: new Date(1994, 2, 22), - l: 26.75, - h: 28.375, - o: 27.5, - c: 27.0, - }, - { - date: new Date(1994, 2, 23), - l: 26.875, - h: 28.125, - o: 27.0, - c: 28.0, - }, - { - date: new Date(1994, 2, 24), - l: 26.25, - h: 27.875, - o: 27.75, - c: 27.625, - }, - { - date: new Date(1994, 2, 25), - l: 27.5, - h: 28.75, - o: 27.75, - c: 28.0, - }, - { - date: new Date(1994, 2, 28), - l: 25.75, - h: 28.25, - o: 28.0, - c: 27.25, - }, - { - date: new Date(1994, 2, 29), - l: 26.375, - h: 27.5, - o: 27.5, - c: 26.875, - }, - { - date: new Date(1994, 2, 30), - l: 25.75, - h: 27.5, - o: 26.375, - c: 26.25, - }, - { - date: new Date(1994, 2, 31), - l: 24.75, - h: 27.0, - o: 26.5, - c: 25.25, - }, -]; +function generateStockData(startDate, days) { + let seed = 12345; + function random() { + seed = (seed * 16807) % 2147483647; + return (seed - 1) / 2147483646; + } + function randomOffset(amplitude) { + return (random() - 0.5) * amplitude; + } + const data = []; + const current = new Date(startDate); + let price = 25; + while (data.length < days) { + const day = current.getDay(); + if (day !== 0 && day !== 6) { + const open = price + randomOffset(1.5); + const close = open + randomOffset(1.5); + const high = Math.max(open, close) + random() * 0.8; + const low = Math.min(open, close) - random() * 0.8; + data.push({ + date: new Date(current), + o: +open.toFixed(2), + h: +high.toFixed(2), + l: +low.toFixed(2), + c: +close.toFixed(2), + }); + price = close; + } + current.setDate(current.getDate() + 1); + } + return data; +} +export const dataSource = generateStockData(new Date(1994, 3, 1), 65); diff --git a/apps/demos/Demos/Charts/Stock/Vue/App.vue b/apps/demos/Demos/Charts/Stock/Vue/App.vue index 5d6a15657757..302612cc928e 100644 --- a/apps/demos/Demos/Charts/Stock/Vue/App.vue +++ b/apps/demos/Demos/Charts/Stock/Vue/App.vue @@ -1,4 +1,31 @@ <template> + <DxToolbar> + <DxItem + :options="panLeftButtonOptions" + location="after" + widget="dxButton" + /> + <DxItem + :options="panRightButtonOptions" + location="after" + widget="dxButton" + /> + <DxItem + :options="zoomInButtonOptions" + location="after" + widget="dxButton" + /> + <DxItem + :options="zoomOutButtonOptions" + location="after" + widget="dxButton" + /> + <DxItem + :options="resetZoomButtonOptions" + location="after" + widget="dxButton" + /> + </DxToolbar> <DxChart id="chart" :data-source="dataSource" @@ -17,10 +44,34 @@ > <DxReduction color="red"/> </DxSeries> - <DxArgumentAxis :workdays-only="true"> - <DxLabel format="shortDate"/> + <DxZoomAndPan + :drag-to-zoom="true" + :allow-mouse-wheel="true" + argument-axis="both" + /> + <DxScrollBar + :visible="true" + position="bottom" + /> + <DxLegend + vertical-alignment="bottom" + horizontal-alignment="center" + /> + <DxArgumentAxis> + <DxVisualRange + v-model:start-value="startValue" + v-model:end-value="endValue" + /> + <DxLabel + :rotation-angle="30" + format="MMM dd" + overlapping-behavior="rotate" + /> </DxArgumentAxis> - <DxValueAxis :tick-interval="1"> + <DxValueAxis + :tick-interval="1" + position="right" + > <DxTitle text="US dollars"/> <DxLabel> <DxFormat @@ -38,26 +89,115 @@ </DxChart> </template> <script setup lang="ts"> +import { ref } from 'vue'; import DxChart, { DxCommonSeriesSettings, DxSeries, DxReduction, DxArgumentAxis, + DxVisualRange, DxLabel, DxFormat, DxValueAxis, DxTitle, + DxZoomAndPan, + DxScrollBar, + DxLegend, DxExport, DxTooltip, + type DxChartTypes, } from 'devextreme-vue/chart'; +import type { DxButtonTypes } from 'devextreme-vue/button'; +import DxToolbar, { DxItem } from 'devextreme-vue/toolbar'; import { dataSource } from './data.ts'; -const customizeTooltip = (pointInfo: any) => ({ - text: `Open: $${pointInfo.openValue}<br/> - Close: $${pointInfo.closeValue}<br/> - High: $${pointInfo.highValue}<br/> - Low: $${pointInfo.lowValue}<br/>`, +const dayMs = 24 * 60 * 60 * 1000; +const panStepFraction = 0.25; +const zoomFactor = 0.75; +const minVisibleSpanMs = 3 * dayMs; + +const initialStart = new Date(1994, 3, 15); +const initialEnd = new Date(1994, 3, 29); + +const dataMin = dataSource[0].date.getTime(); +const dataMax = dataSource[dataSource.length - 1].date.getTime(); + +const startValue = ref(initialStart); +const endValue = ref(initialEnd); + +const clamp = (value: number, min: number, max: number) => Math.min(Math.max(value, min), max); + +const getRange = () => ({ + start: startValue.value.getTime(), + end: endValue.value.getTime(), }); + +const setRange = (start: number, end: number) => { + const span = clamp(end - start, minVisibleSpanMs, dataMax - dataMin); + const center = (start + end) / 2; + const newStart = clamp(center - span / 2, dataMin, dataMax - span); + + startValue.value = new Date(newStart); + endValue.value = new Date(newStart + span); +}; + +const pan = (direction: number) => { + const { start, end } = getRange(); + const shift = (end - start) * panStepFraction * direction; + setRange(start + shift, end + shift); +}; + +const zoom = (factor: number) => { + const { start, end } = getRange(); + const center = (start + end) / 2; + const half = ((end - start) * factor) / 2; + setRange(center - half, center + half); +}; + +const resetZoom = () => { + setRange(initialStart.getTime(), initialEnd.getTime()); +}; + +const panLeftButtonOptions: DxButtonTypes.Properties = { + icon: 'chevronleft', + hint: 'Pan Left', + onClick: () => pan(-1), +}; + +const panRightButtonOptions: DxButtonTypes.Properties = { + icon: 'chevronright', + hint: 'Pan Right', + onClick: () => pan(1), +}; + +const zoomInButtonOptions: DxButtonTypes.Properties = { + icon: 'plus', + hint: 'Zoom In', + onClick: () => zoom(zoomFactor), +}; + +const zoomOutButtonOptions: DxButtonTypes.Properties = { + icon: 'minus', + hint: 'Zoom Out', + onClick: () => zoom(1 / zoomFactor), +}; + +const resetZoomButtonOptions: DxButtonTypes.Properties = { + icon: 'refresh', + hint: 'Reset Zoom', + onClick: resetZoom, +}; + +const customizeTooltip = (pointInfo: DxChartTypes.PointInfo) => { + const info = pointInfo as DxChartTypes.PointInfo & Record<string, unknown>; + + return { + text: `Open: $${info.openValue}<br/> + Close: $${info.closeValue}<br/> + High: $${info.highValue}<br/> + Low: $${info.lowValue}<br/>`, + }; +}; </script> <style> #chart { diff --git a/apps/demos/Demos/Charts/Stock/Vue/data.ts b/apps/demos/Demos/Charts/Stock/Vue/data.ts index 29303780dd9e..1130d8f41409 100644 --- a/apps/demos/Demos/Charts/Stock/Vue/data.ts +++ b/apps/demos/Demos/Charts/Stock/Vue/data.ts @@ -1,139 +1,48 @@ -export const dataSource = [{ - date: new Date(1994, 2, 1), - l: 24.00, - h: 25.00, - o: 25.00, - c: 24.875, -}, { - date: new Date(1994, 2, 2), - l: 23.625, - h: 25.125, - o: 24.00, - c: 24.875, -}, { - date: new Date(1994, 2, 3), - l: 26.25, - h: 28.25, - o: 26.75, - c: 27.00, -}, { - date: new Date(1994, 2, 4), - l: 26.50, - h: 27.875, - o: 26.875, - c: 27.25, -}, { - date: new Date(1994, 2, 7), - l: 26.375, - h: 27.50, - o: 27.375, - c: 26.75, -}, { - date: new Date(1994, 2, 8), - l: 25.75, - h: 26.875, - o: 26.75, - c: 26.00, -}, { - date: new Date(1994, 2, 9), - l: 25.75, - h: 26.75, - o: 26.125, - c: 26.25, -}, { - date: new Date(1994, 2, 10), - l: 25.75, - h: 26.375, - o: 26.375, - c: 25.875, -}, { - date: new Date(1994, 2, 11), - l: 24.875, - h: 26.125, - o: 26.00, - c: 25.375, -}, { - date: new Date(1994, 2, 14), - l: 25.125, - h: 26.00, - o: 25.625, - c: 25.75, -}, { - date: new Date(1994, 2, 15), - l: 25.875, - h: 26.625, - o: 26.125, - c: 26.375, -}, { - date: new Date(1994, 2, 16), - l: 26.25, - h: 27.375, - o: 26.25, - c: 27.25, -}, { - date: new Date(1994, 2, 17), - l: 26.875, - h: 27.25, - o: 27.125, - c: 26.875, -}, { - date: new Date(1994, 2, 18), - l: 26.375, - h: 27.125, - o: 27.00, - c: 27.125, -}, { - date: new Date(1994, 2, 21), - l: 26.75, - h: 27.875, - o: 26.875, - c: 27.75, -}, { - date: new Date(1994, 2, 22), - l: 26.75, - h: 28.375, - o: 27.50, - c: 27.00, -}, { - date: new Date(1994, 2, 23), - l: 26.875, - h: 28.125, - o: 27.00, - c: 28.00, -}, { - date: new Date(1994, 2, 24), - l: 26.25, - h: 27.875, - o: 27.75, - c: 27.625, -}, { - date: new Date(1994, 2, 25), - l: 27.50, - h: 28.75, - o: 27.75, - c: 28.00, -}, { - date: new Date(1994, 2, 28), - l: 25.75, - h: 28.25, - o: 28.00, - c: 27.25, -}, { - date: new Date(1994, 2, 29), - l: 26.375, - h: 27.50, - o: 27.50, - c: 26.875, -}, { - date: new Date(1994, 2, 30), - l: 25.75, - h: 27.50, - o: 26.375, - c: 26.25, -}, { - date: new Date(1994, 2, 31), - l: 24.75, - h: 27.00, - o: 26.50, - c: 25.25, -}]; +export interface StockPrice { + date: Date; + l: number; + h: number; + o: number; + c: number; +} + +function generateStockData(startDate: Date, days: number): StockPrice[] { + let seed = 12345; + + function random(): number { + seed = (seed * 16807) % 2147483647; + return (seed - 1) / 2147483646; + } + + function randomOffset(amplitude: number): number { + return (random() - 0.5) * amplitude; + } + + const data: StockPrice[] = []; + const current = new Date(startDate); + let price = 25; + + while (data.length < days) { + const day = current.getDay(); + if (day !== 0 && day !== 6) { + const open = price + randomOffset(1.5); + const close = open + randomOffset(1.5); + const high = Math.max(open, close) + random() * 0.8; + const low = Math.min(open, close) - random() * 0.8; + + data.push({ + date: new Date(current), + o: +open.toFixed(2), + h: +high.toFixed(2), + l: +low.toFixed(2), + c: +close.toFixed(2), + }); + + price = close; + } + current.setDate(current.getDate() + 1); + } + return data; +} + +export const dataSource = generateStockData(new Date(1994, 3, 1), 65); diff --git a/apps/demos/Demos/Charts/Stock/jQuery/data.js b/apps/demos/Demos/Charts/Stock/jQuery/data.js index d458fe0dcd5b..dfb1969617d6 100644 --- a/apps/demos/Demos/Charts/Stock/jQuery/data.js +++ b/apps/demos/Demos/Charts/Stock/jQuery/data.js @@ -1,6 +1,13 @@ function generateStockData(startDate, days) { + let seed = 12345; + + function random() { + seed = (seed * 16807) % 2147483647; + return (seed - 1) / 2147483646; + } + function randomOffset(amplitude) { - return (Math.random() - 0.5) * amplitude; + return (random() - 0.5) * amplitude; } const data = []; @@ -12,8 +19,8 @@ function generateStockData(startDate, days) { if (day !== 0 && day !== 6) { const open = price + randomOffset(1.5); const close = open + randomOffset(1.5); - const high = Math.max(open, close) + Math.random() * 0.8; - const low = Math.min(open, close) - Math.random() * 0.8; + const high = Math.max(open, close) + random() * 0.8; + const low = Math.min(open, close) - random() * 0.8; data.push({ date: new Date(current), diff --git a/apps/demos/testing/etalons/Charts-Stock (fluent.blue.light).png b/apps/demos/testing/etalons/Charts-Stock (fluent.blue.light).png index 82dcc4e61833a1b8664f46ffeccdec1ebf3b03bb..19e5bbbc0b66f64f4a84bce32abd0e98b76a52e3 100644 GIT binary patch literal 19599 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 literal 19161 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%0D9gwz) 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 DZJWx{ diff --git a/apps/demos/testing/etalons/Charts-Stock (material.blue.light).png b/apps/demos/testing/etalons/Charts-Stock (material.blue.light).png index 88063b161822abe7832aeb1ac598198db50c47b7..eaf2922983ffe42db917d887c201ea912130dbb7 100644 GIT binary patch literal 18809 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 literal 18407 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 diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/appointmentForm/etalons/scheduler__appointment__recurrence-form__readonly (fluent.blue.light)_mask.png b/e2e/testcafe-devextreme/tests/scheduler/common/appointmentForm/etalons/scheduler__appointment__recurrence-form__readonly (fluent.blue.light)_mask.png index bf1f8ff5c902630d42fad35d4cc12c20109fc110..cbea79d4b285404e83df9e02023f2c8a390b0bf8 100644 GIT binary patch delta 112 zcmaFN*vmLUC6g_{C&cyt|NjgO455cE*8wRfPZ!6KiaBpj8*(uy2rzH>_22z^q(#8@ w6n`e5EGoFOW}XsH3zzZ2Lq0E@p;9OI^DgxLW0K@Mmk}i5>FVdQ&MBb@00>PY0ssI2 literal 227 zcmeAS@N?(olHy`uVBq!ia0y~yV60(aVA5q|28u8U2fG1D#^NA%C&rs6b?Si}&H|6f zVg?3oVGw3ym^DWND99Gz6XN>+|9>De^w8xxAXVn+;uumf=j|CsE(Qf2X2;L}?Yrey zIQg^Av`wFMRR^eo46wiHO%W#pg8^HfJyzZQd>Rv^^mc7-eFc*CboFyt=akR{0PG_u AjsO4v diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/appointmentForm/etalons/scheduler__appointment__recurrence-form__weekly (fluent.blue.light)_mask.png b/e2e/testcafe-devextreme/tests/scheduler/common/appointmentForm/etalons/scheduler__appointment__recurrence-form__weekly (fluent.blue.light)_mask.png index bf1f8ff5c902630d42fad35d4cc12c20109fc110..cbea79d4b285404e83df9e02023f2c8a390b0bf8 100644 GIT binary patch delta 112 zcmaFN*vmLUC6g_{C&cyt|NjgO455cE*8wRfPZ!6KiaBpj8*(uy2rzH>_22z^q(#8@ w6n`e5EGoFOW}XsH3zzZ2Lq0E@p;9OI^DgxLW0K@Mmk}i5>FVdQ&MBb@00>PY0ssI2 literal 227 zcmeAS@N?(olHy`uVBq!ia0y~yV60(aVA5q|28u8U2fG1D#^NA%C&rs6b?Si}&H|6f zVg?3oVGw3ym^DWND99Gz6XN>+|9>De^w8xxAXVn+;uumf=j|CsE(Qf2X2;L}?Yrey zIQg^Av`wFMRR^eo46wiHO%W#pg8^HfJyzZQd>Rv^^mc7-eFc*CboFyt=akR{0PG_u AjsO4v From 2bc72307f5e84fe6dc853a8dbd662c7f7af12f02 Mon Sep 17 00:00:00 2001 From: "assylbek.danyshbek" <assylbek.danyshbek@devexpress.com> Date: Thu, 22 Oct 2026 17:27:00 +0500 Subject: [PATCH 03/11] apply suggestions to improve demos further (#35855) --- .../Stock/Angular/app/app.component.html | 5 ++++- .../Charts/Stock/Angular/app/app.component.ts | 4 ++-- apps/demos/Demos/Charts/Stock/React/App.tsx | 11 +++++++++-- apps/demos/Demos/Charts/Stock/ReactJs/App.js | 14 +++++++++++--- apps/demos/Demos/Charts/Stock/Vue/App.vue | 18 ++++++++++-------- apps/demos/Demos/Charts/Stock/description.md | 6 +++++- apps/demos/Demos/Charts/Stock/jQuery/index.js | 6 +++--- apps/demos/menuMeta.json | 4 ++-- .../Charts-Stock (fluent.blue.light).png | Bin 19599 -> 19596 bytes .../Charts-Stock (material.blue.light).png | Bin 18809 -> 18799 bytes 10 files changed, 46 insertions(+), 22 deletions(-) diff --git a/apps/demos/Demos/Charts/Stock/Angular/app/app.component.html b/apps/demos/Demos/Charts/Stock/Angular/app/app.component.html index 54e5f5b16037..489d11f83074 100644 --- a/apps/demos/Demos/Charts/Stock/Angular/app/app.component.html +++ b/apps/demos/Demos/Charts/Stock/Angular/app/app.component.html @@ -62,7 +62,10 @@ <dxo-chart-format type="currency" [precision]="0"> </dxo-chart-format> </dxo-chart-label> </dxi-chart-value-axis> - <dxo-chart-argument-axis [(visualRange)]="visualRange"> + <dxo-chart-argument-axis + [(visualRange)]="visualRange" + [minVisualRangeLength]="{ days: 3 }" + > <dxo-chart-label format="MMM dd" overlappingBehavior="rotate" diff --git a/apps/demos/Demos/Charts/Stock/Angular/app/app.component.ts b/apps/demos/Demos/Charts/Stock/Angular/app/app.component.ts index 524f2803cf85..d7bb55c32446 100644 --- a/apps/demos/Demos/Charts/Stock/Angular/app/app.component.ts +++ b/apps/demos/Demos/Charts/Stock/Angular/app/app.component.ts @@ -34,9 +34,9 @@ function clamp(value: number, min: number, max: number): number { export class AppComponent { stockPrices: StockPrice[]; - initialStart = new Date(1994, 3, 15); + initialStart = new Date(1994, 3, 14, 12); - initialEnd = new Date(1994, 3, 29); + initialEnd = new Date(1994, 3, 29, 12); visualRange: VisualRange = { startValue: this.initialStart, diff --git a/apps/demos/Demos/Charts/Stock/React/App.tsx b/apps/demos/Demos/Charts/Stock/React/App.tsx index 2d60fbfc5915..4d776069b5dd 100644 --- a/apps/demos/Demos/Charts/Stock/React/App.tsx +++ b/apps/demos/Demos/Charts/Stock/React/App.tsx @@ -24,9 +24,10 @@ const dayMs = 24 * 60 * 60 * 1000; const panStepFraction = 0.25; const zoomFactor = 0.75; const minVisibleSpanMs = 3 * dayMs; +const minVisualRangeLength = { days: 3 }; -const initialStart = new Date(1994, 3, 15); -const initialEnd = new Date(1994, 3, 29); +const initialStart = new Date(1994, 3, 14, 12); +const initialEnd = new Date(1994, 3, 29, 12); const dataMin = dataSource[0].date.getTime(); const dataMax = dataSource[dataSource.length - 1].date.getTime(); @@ -61,6 +62,10 @@ function App() { endValue: initialEnd, }); + const onVisualRangeChange = useCallback((range: VisualRange | (Date | number | string)[]) => { + setVisualRange(range as VisualRange); + }, []); + const setRange = useCallback((start: number, end: number) => { const span = clamp(end - start, minVisibleSpanMs, dataMax - dataMin); const center = (start + end) / 2; @@ -152,6 +157,8 @@ function App() { <Legend verticalAlignment="bottom" horizontalAlignment="center" /> <ArgumentAxis visualRange={visualRange} + onVisualRangeChange={onVisualRangeChange} + minVisualRangeLength={minVisualRangeLength} > <Label format="MMM dd" diff --git a/apps/demos/Demos/Charts/Stock/ReactJs/App.js b/apps/demos/Demos/Charts/Stock/ReactJs/App.js index 2696524e0c3d..083d15f11825 100644 --- a/apps/demos/Demos/Charts/Stock/ReactJs/App.js +++ b/apps/demos/Demos/Charts/Stock/ReactJs/App.js @@ -21,8 +21,9 @@ const dayMs = 24 * 60 * 60 * 1000; const panStepFraction = 0.25; const zoomFactor = 0.75; const minVisibleSpanMs = 3 * dayMs; -const initialStart = new Date(1994, 3, 15); -const initialEnd = new Date(1994, 3, 29); +const minVisualRangeLength = { days: 3 }; +const initialStart = new Date(1994, 3, 14, 12); +const initialEnd = new Date(1994, 3, 29, 12); const dataMin = dataSource[0].date.getTime(); const dataMax = dataSource[dataSource.length - 1].date.getTime(); function clamp(value, min, max) { @@ -50,6 +51,9 @@ function App() { startValue: initialStart, endValue: initialEnd, }); + const onVisualRangeChange = useCallback((range) => { + setVisualRange(range); + }, []); const setRange = useCallback((start, end) => { const span = clamp(end - start, minVisibleSpanMs, dataMax - dataMin); const center = (start + end) / 2; @@ -179,7 +183,11 @@ function App() { verticalAlignment="bottom" horizontalAlignment="center" /> - <ArgumentAxis visualRange={visualRange}> + <ArgumentAxis + visualRange={visualRange} + onVisualRangeChange={onVisualRangeChange} + minVisualRangeLength={minVisualRangeLength} + > <Label format="MMM dd" overlappingBehavior="rotate" diff --git a/apps/demos/Demos/Charts/Stock/Vue/App.vue b/apps/demos/Demos/Charts/Stock/Vue/App.vue index 302612cc928e..d09a8271510a 100644 --- a/apps/demos/Demos/Charts/Stock/Vue/App.vue +++ b/apps/demos/Demos/Charts/Stock/Vue/App.vue @@ -57,7 +57,7 @@ vertical-alignment="bottom" horizontal-alignment="center" /> - <DxArgumentAxis> + <DxArgumentAxis :min-visual-range-length="{ days: 3 }"> <DxVisualRange v-model:start-value="startValue" v-model:end-value="endValue" @@ -116,8 +116,8 @@ const panStepFraction = 0.25; const zoomFactor = 0.75; const minVisibleSpanMs = 3 * dayMs; -const initialStart = new Date(1994, 3, 15); -const initialEnd = new Date(1994, 3, 29); +const initialStart = new Date(1994, 3, 14, 12); +const initialEnd = new Date(1994, 3, 29, 12); const dataMin = dataSource[0].date.getTime(); const dataMax = dataSource[dataSource.length - 1].date.getTime(); @@ -189,13 +189,15 @@ const resetZoomButtonOptions: DxButtonTypes.Properties = { }; const customizeTooltip = (pointInfo: DxChartTypes.PointInfo) => { - const info = pointInfo as DxChartTypes.PointInfo & Record<string, unknown>; + if (!('openValue' in pointInfo)) { + return { text: '' }; + } return { - text: `Open: $${info.openValue}<br/> - Close: $${info.closeValue}<br/> - High: $${info.highValue}<br/> - Low: $${info.lowValue}<br/>`, + text: `Open: $${pointInfo.openValue}<br/> + Close: $${pointInfo.closeValue}<br/> + High: $${pointInfo.highValue}<br/> + Low: $${pointInfo.lowValue}<br/>`, }; }; </script> diff --git a/apps/demos/Demos/Charts/Stock/description.md b/apps/demos/Demos/Charts/Stock/description.md index c4d6d9706a27..6797257e3fae 100644 --- a/apps/demos/Demos/Charts/Stock/description.md +++ b/apps/demos/Demos/Charts/Stock/description.md @@ -7,5 +7,9 @@ Open and close prices are displayed as left and right tick marks. To specify the To reflect changes on the market, the Chart component compares the price of every point with the price of the previous point. The Chart paints the points whose price has decreased in a specific [reduction color](/Documentation/ApiReference/UI_Components/dxChart/Configuration/series/reduction/#color). To switch between high, low, open or close prices of points as sources for data comparison, use the [series](/Documentation/ApiReference/UI_Components/dxChart/Configuration/series/).[reduction](/Documentation/ApiReference/UI_Components/dxChart/Configuration/series/reduction/).[level](/Documentation/ApiReference/UI_Components/dxChart/Configuration/series/reduction/#level) property. -Additionally, use the [tooltip](/Documentation/ApiReference/UI_Components/dxChart/Configuration/tooltip/).[contentTemplate](/Documentation/ApiReference/UI_Components/dxChart/Configuration/tooltip/#contentTemplate) property to declare a custom tooltip that shows prices. You can also enable the [argumentAxis](/Documentation/ApiReference/UI_Components/dxChart/Configuration/argumentAxis/).[workdaysOnly](/Documentation/ApiReference/UI_Components/dxChart/Configuration/argumentAxis/#workdaysOnly) property to display only the work days on the argument axis. +Additionally, use the [tooltip](/Documentation/ApiReference/UI_Components/dxChart/Configuration/tooltip/).[customizeTooltip](/Documentation/ApiReference/UI_Components/dxChart/Configuration/tooltip/#customizeTooltip) function to customize a tooltip that shows prices. + +Use the [zoomAndPan](/Documentation/ApiReference/UI_Components/dxChart/Configuration/zoomAndPan/) object to enable zooming and panning along the argument axis. Enable the [scrollBar](/Documentation/ApiReference/UI_Components/dxChart/Configuration/scrollBar/).[visible](/Documentation/ApiReference/UI_Components/dxChart/Configuration/scrollBar/#visible) property to display a scroll bar, and set its [position](/Documentation/ApiReference/UI_Components/dxChart/Configuration/scrollBar/#position) to **bottom** to place it below the chart. + +The [argumentAxis](/Documentation/ApiReference/UI_Components/dxChart/Configuration/argumentAxis/).[visualRange](/Documentation/ApiReference/UI_Components/dxChart/Configuration/argumentAxis/visualRange/) property specifies the visible date range. In this demo, toolbar buttons update this range to pan left or right, zoom in or out, and reset the chart to its initial range. diff --git a/apps/demos/Demos/Charts/Stock/jQuery/index.js b/apps/demos/Demos/Charts/Stock/jQuery/index.js index a06a4ce5681c..225cbc5634c2 100644 --- a/apps/demos/Demos/Charts/Stock/jQuery/index.js +++ b/apps/demos/Demos/Charts/Stock/jQuery/index.js @@ -5,8 +5,8 @@ $(() => { const zoomFactor = 0.75; const minVisibleSpanMs = 3 * dayMs; - const initialStart = new Date(1994, 3, 15); - const initialEnd = new Date(1994, 3, 29); + const initialStart = new Date(1994, 3, 14, 12); + const initialEnd = new Date(1994, 3, 29, 12); const data = generateStockData(new Date(1994, 3, 1), 65); const dataMin = data[0].date.getTime(); @@ -38,7 +38,7 @@ $(() => { label: { format: { type: 'currency', precision: 0 } }, }, argumentAxis: { - workdaysOnly: false, + minVisualRangeLength: { days: 3 }, visualRange: { startValue: initialStart, endValue: initialEnd }, label: { format: 'MMM dd', diff --git a/apps/demos/menuMeta.json b/apps/demos/menuMeta.json index 40db2dbcba42..76a23ad06b92 100644 --- a/apps/demos/menuMeta.json +++ b/apps/demos/menuMeta.json @@ -2756,10 +2756,10 @@ "Name": "Stock", "Widget": "Charts", "MvcAdditionalFiles": [ - "/Models/SampleData/FinancialData.cs" + "/Models/SampleData/StockChartData.cs" ], "DemoType": "Viz", - "Equivalents": "workdaysOnly, tickInterval, stock price, reduction" + "Equivalents": "zoomAndPan, scrollBar, visualRange, tickInterval, stock price, reduction" }, { "Title": "Candlestick", diff --git a/apps/demos/testing/etalons/Charts-Stock (fluent.blue.light).png b/apps/demos/testing/etalons/Charts-Stock (fluent.blue.light).png index 19e5bbbc0b66f64f4a84bce32abd0e98b76a52e3..91a502aada2fcfacf4100bac9484ace977e2c5bb 100644 GIT binary patch literal 19596 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 literal 19599 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 diff --git a/apps/demos/testing/etalons/Charts-Stock (material.blue.light).png b/apps/demos/testing/etalons/Charts-Stock (material.blue.light).png index eaf2922983ffe42db917d887c201ea912130dbb7..8836c8c608d866b0dc7826c8f1c70ffdc9056fe1 100644 GIT binary patch literal 18799 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 literal 18809 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 From 2494f42405b69cfc488ff69d0caaf307bd5154cd Mon Sep 17 00:00:00 2001 From: DuckTieCorpMember <assylbek.danyshbek@devexpress.com> Date: Tue, 27 Oct 2026 10:55:57 +0500 Subject: [PATCH 04/11] update fluent stock etalon --- .../Charts-Stock (fluent-next.blue.light).png | Bin 27109 -> 20727 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/apps/demos/testing/etalons/Charts-Stock (fluent-next.blue.light).png b/apps/demos/testing/etalons/Charts-Stock (fluent-next.blue.light).png index 10704465c3b1ef092b35a1120f567f320115b34f..1b99acce9908c0543beddee32b00b2c7a550d066 100644 GIT binary patch literal 20727 zcmeIZ2UJt*nm>${qktR*L8J-Nt3r@Yjuit01QetzC5S-iJ&>awK&2<tgn&pBX-a6J zibx4n2t~RGA%xzfL%t2@%zWqGng6+WX4d!p*Sc%Tes^~Ee%`14p0eYMJKE|@C(oax zqoZSj+`gelM|Wfr_`C4Sap20kbGKFL=p+>&H?H3GJ~UH<d=wL$vQAq|QWaKIbf>uU zfTHG!=`|t}*RH2Jv%J}PL=Cec+yCJdeRAU3J>yG(I!>j5b>PJ5K-fFY;u?N$U3&Rz z(wM7bbsY+J+l9}(Q^ZatT?M7_s<4Og<@p#d)uM+3cHYB_@p4AF5glvO-*NW6dHz8H z5R?Gq<-OkzR<r**)-rrn2-o0d^*Rzc*nYOk><}OWDouT0oz4kPyS!ugIZjaAXrTYv zgfnNZS>`#)01N+~n7)NjixlUS-#}q%US!rG9Jf0+&#Par+KFm;?LI%k6#OW+`NR56 zse;HREtH?&Z+k>}&g!#McRCCLy8NO_O=osan;^TI>qJ+6KM(eboaHR;<W{}8RW-)Q zH4k%ZJ!4R^6W!{;@!%zcfBBbpo}5GM8Ks7Y_f$*Oz2x!a*{n%lvyySI!I`+GqTC!S zX_EnF*M}!nALUhCZvcCoDViDkJjV@^i*|kM#-2Il+0kdL9>j^d>ooI~GMzzvJkpTm zGWUXRUz9Il$*JXz%6@h>Yk5Lq=ug5%5K`VyVL{xi<4_`}I&-La1*wBb2s))y(j7G# zq=E6I@$N1Q+u#2*%hvI^=c;{KT-$X@{5LE^<eu(=`_@HQiybq|-8svZF>kcaR9g!| zxy$<u`de3vD-+MFGyk6D7W~C4CA_#tPQsE6)txg?jG<PUFO4Cr_SL`g?mYOW;k0L& zrb*w>`=}`a=5T8{PGwJ$F+ie6N;@p|KJ+r^(uccdEFK~8MJ=e~v07wBd8In}v-`$j zPR(+gaU5!^ap&AplGnqH*PwG?Rur{I15K+vdaJWT^-BUH;fwke1fL`2Iy%euPRWly zBIn1b72&Sad)|o~9p(VnVX^Y>wpKvMkj~6vx5*Eurep>$o@Q?k)9;JCSj&~huA9I` z`8Wx>E4(3eZO<$a=4vf&<z2Vu+=DeS=EY8GE&cvmkKT^&Hg>%q0|$SpIb!)3BXYPi zy@j{}8WRweBy;}Im#(YgK$$20@|3mxz*Q-&#jgovA8Lwo-EVRB4HbovA*^xMq73ZU z?mmyVT+MjRz!)ZNz44K8<nDfespiOd6nf5P*p!9L&e9Vu)jhMCI!r%MLXsQ$IG1NI zB_m=G@+L2Pyy=7Jt<3mz(UT2ZrS~gi%L0Gu`ciY(`&>79Ns?dR@G#(y-{d`_hF522 zaPWs-lq*v*lZWmQe2;i^JlqV*h>sCJGNY;jB^7ty722pjaL0#nM%tPbcyUMFs#&FJ zBEK5o=0im|sp9wL_&_qp%B%ZbzfDgBat(H0rPYbT<vm6(4A2ZOf_ctSf)?HA`>F`I zlp;rmyk=+VqqhM)cBWo1YON3VcNn{5=Fk43xvom;6h6$Kn=?!MHN6I^DZ?{B&+Vnz z?3RLD8&sctB*ov4og@jiG0FR&>;$)&Ei*H9n0#gL#?3JoHg8()IV-zwo`^j0o$b;c zg>2=3kC>Z}rcSa4@po#zHHxnIs65bHFzbAy%pLRSd}A(bE6=P@)dGt06TYz*w=0iK z3WJhoOrGru5S~wwLrQH<XAdZUan1{SGId31py$1>k04~OazB<(D>0~;cG7z%b`N%6 zj^~{M8=imc$%IPFkI5NsoTK5Rob><i0LGVp1K`j1^|;)n&g=haeO*CTRu-{D6h;j2 z_|07Ycu4?FTv#8AaFY()7Z}9M#KaVJTj2h?2ZtEgB)$d^e7}n!x5s!nI619|D8WJT z{ZJQZmF4wcIsM|sQ$fwxcMoa~&t)ECV0&jxJagv7(Y<fhG!E3Y+yZPlLfc(?L0YS( z`PVlz5DwrFg0Y3cV0+uR7y}1@tA8h*j95Cs{8UG6<BuO0EKn!4kH!CC9p`gf{0i$S z<`#Y(-OcSk<CrA`*_PrNZ0Ro^yAfSbmKsqh*)0&YCp$GZvhRHLZ}U&2PF1?SWVn9p zWCtiZgGi3OW7hkjENtL@@4M#$$jct@laB;1NB87d)nYVIE%b(yLuIi&Rl0K`m63v) z=f8aEukWE`L-wJnQ=VOh0dV4ny%UaH=e~txTs(O_Q<M=mv7T~$#e?Uyy_FmUeolB~ zs3vd7C)Od?Y6u{ya`d%skT!3Il?m^>1Ng%eZYJx}@}@BQMyGv;O;bKe$ac~8@^XFf z9LsjaA>GlBB|DB1FO~Ss+lw6+tj%&+!@`#RNH($!bMu3D(r}f^^1!v8xv2*OON{bb zW`y5%y?KX%!}T9vNaaYa-sRvgx^Y+cL*ap_v@`{Ko`YjF-~<7irQ3$%`Igan+}Nv# zRG>nHh9qT{!4wHAQm0rojN-E|5?M2cO&iLFeAMI%osKlG)u3{N6}HjGWlZG*!iU?m z%fgdiUjk_yO=FjO2pKXq9x(B#QmSRwGD|~R(BtUo&z(On$PdlS2rnAwe>8AkJt*I6 z5y$)9XW&rK?}KI9r`+LbN<_2h0%xBiOiUbby9ZFx@$+xx-=&O!NaNJ$R+8}=YwD0> zjw9~_3>S87F5}@Vboh~m7gI_KgG1M-qpdlP%Gx(Xvz0f$4Cp~oCiObpX{m0~4LVG^ z&oe~LO8+Pe3UhE8X~HxKl$5)^#fFE&kGBEeU0AydY&iYpOF?*0lfZs_Z-|cPX+Yv) z50ftWKY5~m-Qj*!A|n!&Gro~LGX}_CCpu@j&1yDqg>?B>m-0vM&q@B}eV$@E4Nocy zC3IX#T{nFPu6*__{a|r}b*Z7R*E6wd497J&c-sS|d>&jBS6qCA@eno0)6>fVka<J| z0*46NY0I9xkvgVzBt1Pn`Y`E6qVmGUQ@rgghtd(1i~42`!-F-{=U^-kx8+x7`Xm1H z?{+>M@&s9zK16(l7Q=^IsdjndHlrW)PG&~9O|H0{0!o<aJM_>P$bO(-l9Bm{IO8f$ z3<TxaKNww9yTy^755RD^6Kt%kyX&4I-r7fy10I(KZ_sU1r3rEN%nC6}^!Yxo1>0Sy zWg262-+dnb<T+<2lL>XOTch@)?(tR6&sAFrsi_TpMbmU1Lj(7d{s{5so>4OWnt^F` z->C>w((V}QXqy{LWj*EfnNa*>2pWUvTdDK<@?EF=-1FZBIVWcZHOzvX9=!bc`6fRc zBHeOF17)Yi?y|Z5t7Z?}wl_%buAvlP+#kAg4*+e0r@p#>@?bC;s=|gdF^H~sERLB4 zH|iwAMzCfo$OrTuiLa*{$`w_aBut?VPo#`vZA)bqgiPe;C)`JW<u;qXzeAF<-YaSZ zTIKn?V$xiPq?FpsQXEI@_%n!WvsQ*9YH+dE#jdGtkR#k?83@h6x)^<~nPxYAU%6TC zSrrT1QMN_IfYhz!=|^Cm%c{<i!`raf-cT9mNrlwGNGmr#PG~dxp>|TSxMg7_mO&qq z!EmfTYuuC6AzIe&>GJ58`=yxhA#N3m1nbod4psRNbR25(0dp5{xXgr!vd;58SGpq) z@$bGaOu_k^4ZP7_Dym<uTp<%ghd$Tm<uctBN-3~m2fyGSMo>;#^Gn^*mk?d)jH6@> z_8as_wma9p4stBaQ~gw2o634T9L;NS{rd5}TBcKlMTV28kwhaR3w#GeH&5}7FD&XO zD#vC1dWdvPdyV_6`^cfyyx9j9h78SUM0(b>B)4O5F|z_pkSPkRDP_HZ3UpREd~#em z^dstUrqr#$XmjoB-}%+zfGpU~>^SauIvERlg%5jT2XD$9Zt5pPCScK3W&@LB+8REO zr*-Udn-^>}lOA7)8<)yBR~ec4L6VRei`HBc<~VP>wwRo|O=M*cr-(Xhrp&85D8yw% zb7s5<x<$x}qzq27G9~N><;olJe}}7tXVx~{&|D8tk?Roa7`ry9cjzXiYK-;wYZmN& z5&2|FyY#ngEgg%87!wWlbWx})Ru5PSHW=z7OcvGU^>dR>JD_+Q1|ba;28k)LO2*SN z2>o<Iw*%ZMGuKX$qbes_%SIG`nHze!l_}ktEqz0Y)WJ&HCQkmkp}X6^qG0&i?!t>b zXR-@8k&vDx&dwoecH2gXC<&42W^&jj>UT+w)RzHShgHGj?T4=Akae;2^biqpELFtP z_vGy*VbTplez<5l$V{UEbX|!l^sw#?Q0t7OQA3_1gJP*Y?*^6R?!g0_9cFurZqW;G z4c=V0yB<UkvGLR(K{TG&WpGrVS@bwK|C+U`cB)89c%LC^c4%nmrQ|;V@7?9a6Fhh~ ze(AJVRvat>YHtgWYAXmS!$d+5LCDya?sqEm8;7+l&V3!6yz*9@VDt7vmi{p~vEv<r zFZ!C94d%%8(>K@^?w!lblBs3dE6-9ZL-fbqy-5iR=eA!D(KB$ew{p|O2vWjHKz^F^ z7RLE!Qytz4Kn76~IeB~ybk~35Lq6%qQW8U(%C}`z&bqIdTZ<V%HPz|u-8Anv(j9x{ zJasr#zd1|mpcA`&bns?bS$LBk{N-l<{Svq=ZDqpzR28ZH!*5{vk-_?j)k7HsK6SI} z;f!~TF)4-7*pt^OBB5^0ua&Ok<&I`_sFkg*y4jq}$V*Huabx$>(Q&)(>%m|jC%|U} zsSWCu7!Tq*H9tG{ku}s}(sm@zY(_Z%L&^+}&&v^L#YwzQDT*m#Ai$$*ab}FBqfa8U z>?|Fb<ZmAFqpJBI%gA${dO#1JQfT==B_&qrX^=k(B#@yw<{zP{{@m_dN_7goVayA# zu`{j&E;-Ispocq%KUP<EVv~@PQv2zmS=a;C*V`_q$PsSOtBbA8ICHbvU9P*1o_Wju zk$PB*dB$>f$t<ncv!f*cMNn~aXVQpP!*4eNEEqht)?W`QDS0}+QX)cQ><9Xa=2&xs z8A4Z!-j@O8ilph#t*x@hs6nFwS8m6FGR0vR3^nD5`;6mjxcU(e%h;^c@0qiV4s&1K zqixrMlsw(a1p#MI=d1N#Dx_85QgXQ&L)jDttHP_=1jo-=K4JyHYSoPMjrP7_%JM2I z5}h7fTmP{oXwAl!+jrG#WSMKOzd2>>2qR<Ik}Z`>r(14ed&1EnAV860*Scf5kcMC< zf#<$C2e66=mRy30_S#H68uE+B)DCfd@%z0h#SU)#<wKAo)~@eeY}rl7u7nXppTftM ztES~N;&S}B_T^949#2i(ugnXK^#H(c<2)qR>5)}!4cjTktGmAm2V=_mid7(kG9I~H z3Wa~v(r-<2o_lZstl<k`@?dJmr`X80OSdl&w9LeVH_t1SdPxU|GdqicKRwC|>c+|! zcnrXL?h5bMf~`6u1kc%i+k;{^B2m#TC`R1yObN5v`tSYy#&dxO{QztEUt1><8hHFd z>1(VaRO>6xT=;>(L41b!=7QRL2gd7jF$bh3610SBd1>qF-&PvHyHUW0e|umVD8Th4 z*f`Fg|2EZ~J*WdbX!GdNbIbRQV-euC$}<Ngr%EAEUaM_RUd%JEYyy~GA4lt~7pty* zvHIiTZ6WmNVgoP5{N%orc1gb5iw!<|f9Lj_GgR7_V+Re*|N45+N377<IXb3iXNUB? zJU)_6DG@#=75ZzSQEbnZf~u?}Q+|Hrxa6>!(F4>`YP$WGu8NnY{Fd)%lD@;zmmnMj zIqV~!;+L$8KcuM=3wOz&3D|_?zazU!+ZO1c1FC~lZR0wl)vmSo9R(vCg^ON1^j&jz z8+TyBHidsiOJ{C;H@wew%B^tgm+JifYgYGOD*R}0oX(1}3BPy^i9gijs<Jh83NChK zx!*ogTln{rv9M+lEiG5MvXkWR<DI5)R(2Z#m6ZH~46&O}*AMgvvJez|gG@>K)?x9U zGI@d0J|TMJCR`)!cBcN|rOSw?yUk}+%uL#zE`dVFITGlEZUJ(iHVYRylmEjD-rv1< zF~4~JE3ct-0+&itQu5BzB*Z7loApbo?jDq^z7>9P{E1FEXhq~!<XpIXA8GlJt{Buv zOaRX3<wETg+^_M<l8sGF2<W^#sj4@PH$V`6vs+~<&1i9q(b>wnB$j74<iz<#ns<{9 z7fDxX0kUJy7(K>Xq!uSk^S5pLC0+Bu99=v~2&oHUzX(C?UJ+ELC#=@X0QJM5yNAbR zaVy)&VUo_qCfj4%-xE&MpF|5Z=^?JH9;#N9xwR8(U_d^DfLpGM(0bew<V>#U>Z{al z@n&Q>wxBMU^X*mD0<DI9#+dW%cqFZQp&XK@3_)(3G&T=-8lmIql5y$QLt48xc)aXr z-zLo1pqo^>B00QU$GIZVDd9MH!~f>f(x0Xhd~=`hf?FIbS~1W{PhdBymZ*cC&0lW5 zHTMR#Bi@xmdGaGRD&j7z&9J$)SR8bxqMm=d@`wOp?nTGS<ca;-5b}P1kR$NFxu(U( z%y8{>cfMW!X#4>>m@7x&o|*btarl<1tW6)DXVP&l*Xr{EgusOT3PHK+aQTTg#2xHl zcV&O91JRqgCQvs)uweIg@_ssC(^M4#h@7Ub^E~a#f4Cc%)(HRXsBfTHLx6n-=Mvts zHkdc@?cJ{bTtJkqcliF^aCn9ApJCyzkg|xREsrN_LBgd&UeD(56u3nWsOraj`=Y71 zzw6EC0z>Km%|)Akb1{Ip(Vr(Nz=UG6$GWLXlh}3@zNU5WrIj=pFj1M={uiM-0Zm2n zu>fE0@_#lfABsmLp<rI`|Glw*YQ;4H)jRdVU~)fa^PaI+9{r8Y4}g*<<S)Y0HyPfQ z)lRU&t*E0^Q&s64i<|c__xEk;7A+!r6~*&Q-Q~8G<g}c{v&Gx*V&$;rX|Nfy@FZ@l zneBm<MCj-Ber?aHUH*F))fHVmLq%vN;pXNV&C|+X7B|@pZtZX>x+U=M0iJ*M50wIZ zcb25wey;#wg??nb6Fb&t=;f^cKB3qAnY+@VyYE0Iw;sO!h0JhU%bYxA9rf}OKfeG@ zJ8CZm)112B$GIYm0DS_&yE6;yV-{j9{|n32Vl|zV*RiHbhhDH!kIF+ClV8zXkLk$U zKx~uAfrI&9Xt(I8mtNoR*0P6UN)MbC6p{Y+yibuoJ*||#dHk#H>h=u#%J@aNs7&m9 zO1832YX-Yf0`ymMgtK*8P@LDCHKnch(YTqfj%mj2ifeP<I@2|8msLxdm3>N`0M1n& z1E+uRFvUrkUGx32&F#DgYt(_x{{AK$fIo{jZwkGJoT18el8ur~J6hgOO0FiJ6L@QM zV#9oOjrEQHqRshiz2BnV*Bq`hWg&oiWAN^Fn6+T_c+-1VpRNPd@VB~<D0i@b3$XeW zBL2hDk^0q&P1-zk<&trQ_hr<IBXw%Z(xATWb7f}o(s#+OHac0B(6d62==61mnIi#i z)}fn{xj9XOrGi(L;%p|?cwId#IkG;T<4uaVE!nDf3ve??8S@!ILDqb;>%gEXsi~*4 z%R6ajixxNnbsd6iHXD9kT4F&U3PNN9FQ42()^G9k3O4r0lk`R!Ny4iO+2Jf{XCm`9 z_@wii_ALjPOQ6-{gqQ)`vY`ofa^7?K>fFs9X-yaXy6NqLC}rQ(Zse#DkHin0^*iC( z4(DswKD%Ffpe)%hG5-J@V4x5AbDRO6H+%N*1OO!bX?{qjKT1S&)RVT{B8%{yIR{*Q z`YYsR9}sLQ>em<h<@S8X_Rk^r=g$BqLsldHbBa&bh5;Qw@a!@=01xAy?RV1^R`pIn z^tRPhJwtUiUf+P60KVUR%(vWi5YK>v*Yf{_p`Ys>T5g{IL2%47*+vEc!rWg0X1!*^ zY;JcV7OC&85KZiY8XA!TLnc4j;bShP1ekrT96hn8LWpmCpvu?q%IL9X4bM~jsyTU; z?-}>5M<o4cVD?w9|L!yS15^a44-ZN{K<_{G|3AI%8R<@iC)3^w8V#4w8d+NfELi8E zb?6IzuUO;yP07}-v<>5ZC9IqU9PxJ9vqzC7$i?H;+uxlgY56K~sT@^VK(YX|0-`^? zQBuBP#@9Sj;*dg6Q-A67W31XbeB%joo4UjsWYokam*`yBfiggTvMgF`&5e?+sBgn3 z_5gEY60a2m*s)|Q**0mEWYrLvwk3HU5tlTQ^q}<8HCC9B@j&BdhOg_3=i5;w-domB zAZOCz@*e8DsoHFmd_fle7R3pRuTVNJZl2<=&m;=Fc$NPU3;NE{GlQIfBSAX3{B045 z--_&S>&?8hN~D4zMq}a*gu&*78B*HF{ODv~Iw(Ejv)h##W{Uxcqh<WC>JXQrNv-&I zTH`d()mp}v&~n+Qk}uRr#E|b}a4D2eTdW2-nPPRSfWPl;P;oEqexkrjp@+vsniprX zl}od}wAklgRl?DU-N#6#UeZnbMW8h0_UNb6ZPNE^#qWv2B%{(NsOOskc9eIE#;)%M z)S)G^-(J9d4gXkh?C!YOZQ*s}J=XWCo);&lEZzu@?1-=4h|F!*fAdB#PWw0hn@TlM zmRjM-YSS7L)acAMB$_gWe)l>(2;_z~>uV85FBr^2cBj248`4#`){hu_R%!Uh<{!Kh z>r{z-`*^&2)ptqNZ;}J37iD+4;J$$q7|<PSiGvbPQW`IV{Tj<}wZRf<ZTP;5zh*E! z%eW|z`+KXYl&KIV@nMiMLo?f*sENEESPXD$v4EsWn*t~tfTTAqb3Z{1uy=GMYnPRk zt-t1H=@59~&Ou$0(8+rQySKvTr_Fe#JLeCC^p@YruBvsJuzRArmZ(w04bPir?W&&K zz`T45I*V}Q^Lp>SXt}2e)v`U5b+7jLi`8V!C!4m2n8h1D97w$7r-hB?v^c4Y*sq)n z2T8i>FT?7R!`Uoi_Kmuunk*-Fg*q;%R!_aARpYm7!8F<FY`sBNCfAi*p5a!SJg+d@ zyTYo3*bL)>6LVsFpo2>D5x-j31f99xr!_hRS8J?n+_VvezxBphTyeGS^EL0&Z6AR> z9ZjWOr6J=MpJl)d$a;f!D_XW_yG|>+hnnKlAot#X=-b_y(W!2;4^upYs5}U~iOQn{ z+mgsJwfJ+R)@rY}sd0UsrJ<}PtPH}Fv|0hO{jNN1up*Qd2+x4}U1qgc3+~}>SuMm5 zAhC5=>&9J)i-!7FU$&p+;8bhBf4>ba?wVH02hH;owLu%cfR$$d4A?q;mYct@@F7p@ zDu6#~ZJvm=(ML!zvIvOijn5qvh@CTndTA_ZQ|=IvCE<==Ha-g25YD^W?WWzndyemQ zD67{GEQ96eB))Y$7eHG}j3~`(B+Jgbu0H0_=`x6#2;z@xUwK!(rt<I}69MFP;HfB> zbd*gULs;VERC@N#(GinhmlnGtP9#6F+(8?`G3PR>*VX|4{Jd0a+&Q>c*#RoYpn+~E zH(&B=iMq}ul`D|$moUtEL%pbPv3JAeq<5Wq#$$D(EDeAx3*6k9nC>cWH(Y>H*3^CP zz~OfK?_n)9Zw~}JOGN);Isrn{%;jlw;4<q;D^qSPUyIZ$e#5%Xw-P5Nr1mW@&`SLD zRd;uG#8(kawAdQf!<hRd)W2nQI{*z7%*ir7RaO0*cK%nIz0q}OUZR82)ywCt(jqgf zOX4o7R%cEW-Eutvll(z#xaHhMUCde9I)8gl+PW#f$<=$sPnQZ#pB$<+P5Q(1snL(l z1J9lT$vpFc(Lzu{6MZTH{nLtBVg{;a+M`2W9HHy4UmO<RWUw~OeJxg(_~Wf)Ur3wV zx0zo$7K{S=cKz6*rC&)Lg~6WJ-&&8K*Hv4Z-=6V@LnN(sVquRv5kT(T^KKA5-@~#* z8}V3_w&42f^Sc_GCp!6l*sj-qjX?Qj*e_zhKbClbs@d6mzuJal&3MmBY0~R+ZtbTl z)_6*`B+#P|*Zw{IuH1VW%9Lzd>YR{mCHqGofQE0qUyEtJB<#oS%CTe~<@!v7?(4Lp zkj=qQ3*|E-%bdFlmyv?o$ex9!Y-m>+OAF8<?0Z7xw{yY~+p*wx(Q?vxqr|sdge4gv z^;;s0$!WC4t%`1ZbZ<!)3buOS#K>5n=H4_$A8U(<es4))!x(lKNW=-o+>UC!r(6Cu zK@$5o#X0EOr^FxA4@D8Zw9sSJNaYhGyQY_DtxNLzkUcl`=XAF6`~=>b#gLdR@%erc z5TYUL3pbLoU!<p9pAgtHZl~GL1a&5hODEswDGO~;bNE~UsvqzsxQNUZL=c|0ZQ&Vv z@0}P+?H`WICGh6{_mi|lwQKWHEZbEy3HccRh@~a5-BGfT`J3DeHG@Cws;F^Cw>-)4 zaj#qcPfKG(7HZ~o79M_@NlSjUON|-V`!|F7p^s^EQ7O!_E!yixT*VDgnu|q0cAT-9 z_W2(7eb9ctG7u2;JjhUXtM%Fo+45x@wTyU{-QQzz`FhD@d!W<YvvZ$#vo7u9c`<&N z@Xk?!%nwi$Xf+pWXsU-9xH|o~Pf-kzGHJQ?*y~S+V|%*vVxYgdJbe>?0jF`v@Ib3? zy=Tv(-1RSidp4K6IE^;k2$^5BZnk$212^ZF4GZ@!Dbem@VNySNg`RTrEN$#WJ|frI zCSQ=#{rYSe9<a4*R9~!8(<D4hp6p;@eSDrM7+<s>ADtI-ttl5UsW)OVF`8MoGjAJ8 zSamaqizIWwBy{UYVd6%Yj2<|k6n}Jlc*EG#3<PTX>n}Iqkm!4NZbc>VN7B8#`LYFi zP#<F|Z^WK$g^n+&R(zkkpc@4izjaJ|HF@;0QLIDb&xliuf8{(O@GNk7dyO}Mh};PR zZ`D=<n4k2Ow-}`N@1~x)=@ZV=Dy#n;WM6P%m*2XEr6?ySmml|_?WeSXXS=$3@UP#$ zi0M1JrtuR83nUO<Mw){Wfh#Os;7XL~OQVC_2f@o5ef<;_uzRW2kOBD{yiUUvs7QXK zD~Z2Sc`b{%X7TIp{zBVbHOkYwwNW4klFLowubHvlcM*hc)SF8!U%wh@Cvjys+>;eA zX!+4MEZ=hpmE92*wMPU>f^%$uCNGP_FD})#;hZw<imELOsHzx^%dfuO-KZO$$o))2 zN2lFK3`0x6<(J%%UG)n<s(r&kBHJXb$oN)=$1SeAjZQ@M7RZ6b%LY-FE+`Sq9~`eF z8u0mZUo$La^DB>2-4DNcU{@Ua@kZ49QM9S~yQjPc=@+6byT$Weq+`faMtIoMe>2L@ zS=@iw*QSe32>+g)IN4VlY<0&R|57gd@tfP1gjwQ(37DoRP2tk4b1pvCPw)CLwW~EJ z9=Q0Aez!6S(az(0JfeW21unvxrx1jgSUH;43aT@Ib8K$TX%Q+lO&p)PeWPv@3W^PL zDagdq;`^@ITZJFR>!vO2@&tV6<we=sQDQbFOx0?Vkh2raXw#D4tC3W>E4eMG2dn>H zj`@Oi_S;|{!ToaVg?ekcW}J6qVR5mmu$h?|V5Aq1P&dj#-F;$(4MBJ@-w;*d<1Zc? zT&s%PQ9bt90<o8^<OMqI*v22<$7rHoho;Lhcq6?-A+7@PfqNMQEKoUNQ`}_>xm2_8 z!b_1?4MNfs|2pHO=)2-?(7jh7=L8;f&HxsyOz!o^5g1@Vxcq1%es8((7hC0ZQzgUe z#o+dZFDDDAm(^5wqkQ=_Iq)Es%Lb+&3eGC(nab;a{X{%nATGbS(j?Z%w*G2Mtb@_* z#~=?8lbfEksIs+2W2nZCm!VhU@?Vk3!t3kS?6xPZSXXJGYuEEMBXgZH$bG&T&W1_q z?lJXLh@K|0F(ez1werT{Yw!e-L^2{8W(QRieejfHmu(-FR?ez5Ti=e3b}py+OmF}# zDI>Ke@|7i7$TP<wV*xJDJ8o{hQ@|>JucA$wlaP9M*4I3X?4%!SbJgg^Zp$xW1klDv z@<WNr=n2!4@ejsZF6j1Y6xjUmXaB(Y&<K5?PovfxOd<#AUvOpjNQ`~Tr^WOl8$3qF zi0qt3m>`jn+N52`<Kix~<|W}DpsZaWZt^9{A0=ChPK)c-Lu;bx&S>`HQ&U6T#cE7{ zqOL|{o-y&QSd~bW5bmqfUv512yPk+Q^J;5cHGcCh<?S*YX$t$vrSswx(7>%nOKU_& zU#R2zSup)?t^1g@(kR}i*f^V%rQtG@&Q*py0L6$3dnbwOizoj)mff%ZclvA-7+;{y zz}LX-Dz%vn;e7ts{l}={z|>_-cNw?n^0GINZ^-G;UK#^(-Ctez)t{zb?^Z3fFuZWo zci|xC?&bjLiy05hAlD0kxu{6MU#0iY-nY+(K&w^9*YcI^)uXk6r(a)c?(DzSBj1hI zyfGe8Q8ysWpoO|n>CS}380rRm7Xfe8=?ak;L>Qjjh~0!rs$exwXZ~n4vcH|P-PF<R zSwCqawdN|c1){F`DfoJdLa7&lDda+JucsdNT!xp9yn0*D=Yk9TQCoZ_#>wgYHAgP~ z$ST?Yhmm8WmhV%```S<GHGe?)z1L4S*{6tJw3n)<t*4h+#U2yWSt4&oX*-iXEu7et zHe7JmXFDmY#kSc;>S%7fe>)H8yC!1p3Ov8}gTno{Z=(zcrip7aDYgqDer+rI<<zqn z`%YlUchGbeSF|)aJbghFHX@Zi#cZB0K-X5#dXNjWqw@1AbaWSe_kKfNLQi|;GV)^h z4VV%Vzz%ZGY-CLhB!t{+tYc03_%z${-lw>;gXi+}-@IesG-sc_<}}JL<vHr{o<3Z9 zToUo%-a4z;w~r>1zndupp2}fJkH021Zh5jia#Z{I-O!K|w<9mlgyGQ3Nfp*K8?PPc zl3M#RV3)r8)9DaZw+$Axtr<M<qwa;V)jnX7x@B!;b#Vmd<|aD=Y6gBe3iVT)g$q;K z@@+jfFRTT%%gjm(r>gh$^Vm9Xup5~;kc$kQ6xn?@H0&?$)F^YPC69wDL0Ps^$d5V! zOXxkiR;xb1S@QUnH9!;@OT0Qa;)j~sGL-d>8SjP&jgdghx!VB+aY%m^V$=7qoK+0M zCN^~_*MVDt-1MEn$U(?Q%{QS(Pk1@YUTTlv^=^*w&i-Ww#~rKPS&&74J9=)zbf+!> zQB|GrY*An=ml>}dCoM<K$)QX&85=P3l6P^!2{vj&HR+~iv*{2sw?lMvzw_n@F*F-4 zWs|>$BE7(VmCZgh2XQBf!6tA%*(BGzJfRy=-Es`rFJJ+)B4w&04K@`7KK<tL|NU`W zdN#x&ndy5Bzz<#b|9_6H`|A3T(H;;t8xgF?#cQk7OYD3gId5SM$xnc-tY77si*UmT z&8B;~+4##<8dS+(t><@#wmp~NYNbAW4A8e?`=)u@CqS>WDqHP&v3G=Xd`LWwl)Npa ztRtMDf{dTdg!aIP+h$GT@ZJ^Z1|8vze(Mzl<zRe^+=h8P1E7)Z2dy$#985_SYA%>C zPyUG9xi=i2OPOd*8-k-Gtg~d37l{&hgq>?7?jf3ioxX3VdF|SXy$A2eF&Gg_QGIPr zu1*xABrvy)3XU9>5#w1N)2n?d*vGXnGMP!q4n_)1VkG65Yte8*BkX(ruyCZu*t8kB zL(X@dMF?lMd%DiomiO^Mmt%~CQfD28dDD?(*H~p}Mrs2`TP`ejq|LMnJh3E<0Ag-W z;u5=mEb0XDsWY>T%PV!lKATP(%(V4UP<6%k0AJ|agy!T0bn>>q9#h2*aQH;~6~)FK zKb=m0+T-K-s0t;bH39>xiW$*aUCNITHX>9-b(^E*F@dI~-`fe1`H3n6Z4+(E1mCf1 zY?!-p>;Rqhlqp76yIG&&;@!(MPmJ^|1+s?7+x@1cHZsyu<BeME3GTx+$6?$JdfdK$ zv^3t>-3XShTK~4TZ_7fX`s(uJ%3*Q^vN(qKH31;_f!Q2A95_uS2ir?6$h&)cpY!Hq zV`o1?M+X-A=c3E)Np(tHUEQA0apJ(XbZ`IT5!;;n?*04Iz-4dj6?ysPY7Alf1Qv_k zsOtOjrEy{cw!S#<<HY4}PX6|*zq#@z`zS#BP2PWUoZ|(Q5i&x*chB4Z<Q}+GcZ&?i za5HYJL9xU|ymxbUTMnk~*H=Xwn4wf6oR<M>SYH_?1_Qsc?GF%Mc7tHF4f0G|1I@)N zpuj9(&6Tq2(&jkWR1~0$4D0JKFP^7e+47O*9ju59gvAnvpE=Bi$~N2QyKcIo604&u z%&D1Yhr^A8YW)aqGzH2PIN7)wS6x5zNP1umiQTD)V}_eIUPD`7X~hdO7gQ>@*-eoA z)->|W?`w%ysQzikkv<1Z#~8g&DY(rJQy4eg8uPt-#hCafVl2aDf7)-};Y#b|;xm;& zUJ3}>uQ@-_wE5Uqv1zy=Vu?5^Kq8If(z{J73NdvC-uAEr#(8qv&RF6=X^j1jXBEB= zl-j_&<cv%tf$XF!vEtL&)T+V1q@cgUZcIxAkF~vRqLH~@3@Hvhz8$u`qyf%d@cffi z5Vm-`TM@kDqq_>3cAe(F@`gQzB>N1X)$yyvUJZ(^2;X^gVmCvGU0`(}p-Tok{y;%{ z!h*c9aEY{gVHTlI(&cfS7Y?!Q<e`9Dv@`5{=gFJ(ffAsUSOD^BU1Vrt?ZLqbtMqmh zWlZ?eBR{Z_3VKz6mItxjFosJ~#D#->)}<p*F|u}nC9o^R8t258>Zaw<hZ#Fp`!~Wf zQdRngb=ca|RNIj8;XE+EuGY<5PDN#}c-&URGV$B@9LeI3CV#_~Jc+`L-zg;e$vfG8 z=9=iJ-16BjOy=Af`$_FoQHzk`xp4G`p^utMOCk8S@<{8-My&(bacQ`9fCCil<31n2 z1D>TcZKDycu4;x(QkibP@xdl0J{2SFVcpu81%tmxVM>_<s$6sR--Dk!%?_w%qY4Sg z7)oue*4DGa<sq$PaLX!5Xnv>ychxOkeQl1iND6@Gm^SB<5#;ep%rvrYfvZsNLeF2^ zu4#MBA)?Hv+T)@v<rLnH=Avd)kyKP?us+?Ij_O+^&FHW%5Bmz&;vObJH;v{%2|Nzu zxiPf6Nv2|w7HTfgw5m83kAFBfG|-w8Q!$lCp4z;C6SA<ACU=Gfz}mr0LoU0)hQbN0 z9;81oum&AG*sR5G8pr4r<a32;OCVYMzKbc3(CKu<O?b;d%Gg~u`i<M#f(Twt@_2)# zx8<?f)6d*7i1f;6P5I3PRho!b!v-5ZG&o{;8|UR__5SQ|(*F>bLlUI1IEa^ErDs)F zv)&pgBB{EiJR}!1>KM-rZrydiJfG_&GsrQ~mzGS{MpJ7H=G4?6B_5bDq5##rk!)|T zsLVMrTshQYOw67$&dX!&v|GC6XQwLfBsA-Zw&v5sZG`H;5{lwnskgv*3NLw1;jRqu z%f=n5<*>=Tb*XF%9s+L036Y-V4*DZd@M%y38q!%A+1%UX>UpK5(yu(B2xT}_WNOBn zMj8)W?ev8YYxU0x5wFE6EpsHd$W*%u%G3K;dHQ0~aN4$NP;ZleTHh5N=Em)<SV;Mh zfKj8Kt=bsc$h=5L20NW`LasGD8HOy2U+Yokm}6Xa=xle*B(6LV_u@@X8&GOpv_`p0 zk1rJ!CE}Re=7-_1-0^!}l7_wXRFF?<WnmIl9_?8UDTqvOL(~i7TTmb$$JoUMm!#@t zI9#Im<ACh{oJJBS$SXFTW{`ZG^!I`;)z(ys^zxjgICR~<HT@+zG}upZ)~scT0GAnT zaRw0|c<|-pw9qx*u|`xa*}?vn2EQGNQxh`ExD5YAgFL4GjSL|ux@8HP56gE|3PAaJ z@sPb`;)a`i^YWx^Q%*RwLh5TP6IZ2R8>aFcaF_zd`dwLMuXYCU>t<_?dj<#Gabm18 zfQ{ZQ0jEu>@)qwsK8w&tXFy;ZM>0~k;b28%QL?AEpSBFo9J$czax<lj=qy{?A@Hm_ zu)<RYdc4;OmM+`sY%j|@{~fOo-#p`vS*<f6TzN#nVn9%tW@Jy=kfU&_Zn#bx>~e!5 zmyV31j;v<qAJx_Wgsee8&4-r%S@M}pr9sdjqC}S)YSCFbvogd;trr@E<p>wz$dMW^ zLfgrd2FQxz?1D_N8{YZJbv352Oj4ora8uD$<&n>Yo$#f4;^-xvaJD79CJwaG>5zzH zo*(bXbW>cO3mcp)`8eSEKS0=eTP$--nBYax4HtH!<^s*nrYjp}p(oK=Ww6<9-ZHk` z13d~0N`)NHX7HJ{#xUlMv}o93Mtfjt!_&4dm*V=UpxKZTSI5t7@}S&8Y=w)fLJK-I zaC=5i7`i*;9z8NEOvzs*opNgbCro{vq)|@f6b`OcQ8aFBm-1L{E5(K0QdCpK)^Sms zRfvVEtr8HHU1LExEeq>)2_s`8jq+~dSA@LuntDRZ(k=UxWLcb$UB4o}tBn`}(ME%y z^0t1<8*Z&0ZRDXMO~P&sZhLK@*DYYlC1A@s(a76ALs|wAE0HUaJ~U<RT!oF>O4Wk- zq!xW{PXL~tO*DE;8Ltz_gkUnT_{xoK8(2bUkm6hp%m;Ahj+L81?Wpva^g<IHW1H8q zD>9lW;Z(@BsYtRzW#D8rXA>*p$3YO1yIZk*GT5*jDa!6A?MiC{lZRK$GjcsAOx#8# z6RH{)j0y@1qCK<GH5+jAxd@pAa#+tbu&olbv(OEeg+sHW6NT(B@V3>7<ynA%V!RJB zdN-yS$TXvV4>tL0ZHb*tdi}ZD$0_AL1aOmeth_P9P9hc9xh)~xQ`=n26_aLHrZ|9Y zFTvW#^tVmy=x!QH0f}WiEF-SSVyHEkHhb&1dIVlI(VA`eB{hUGSx{44)2>8`BXNF$ zyeon>8h#|X;+8=YfGXR@_AB~aCIS*tCmfvAM&Pl;N6OeWb*cp+5x{&x8=<1yQ?wUc zilzl@`L^k(wK*k+$}%{${zKYwl5e&y#I<gvuH>7x0pMx)&nx~<q#%FS3{F;3XSJAv z71vith$<iP<Z*kFimG|5#_n^1kel5S<?;7ex0Ja2LN*d_1$uNDqD|6d84jY3UZPJ9 zz_iOdk<kc8OlCv25s~+DueB6(S0+=D3rbR~j`#G&W(3!AAvW#QMk-=-mWu3>c=BO_ z$WNwdVCagM!!h<a!QLfFL){iSM8@FCP;buv;{Ge7j#LN72-(u@ki9Z(t#-vZ{+SNA zm4Yo<f>d2;C5?6Gj7P-V%ftzdz?6KWb7x(S$04JDV#QpUgLizx;qtROPh$p6>Kb-N zm6PJ0juzUkg#PD(J7)YJ=Qu#_=Q-uJK+W7hEE}j1doz4|D=;zJr`@0vo#O*q>JbG+ zs%>AFqzj6_G|`+fwH+Yba)@1UiJh-POHF3-#B!_2hJXcjg1Y$FU`f42E<qFRB+ISZ z)U&Gathu_e-%{KO^fyXcH;Hc^xPr9?sc3Ccc*j?_LhQ&zcB{p6Fk6K-Li+glqiA+g zw}iX4Y`|scw3hI)Vv_~z?+=VdbK{{h=Xo-AmYH3*cIpb3`aymsUU*q9%AlUBE2t@i z`j|~AlcPF5!y^N|!9`Y9RBT!%BHG+3wI-l{jDx9hXJJ}_f3#P=1qA6CImAB8*rR0k zab(B=)v<7CHW?W?FfW}E)0@#ZP=>{gDo|ok=u};EEkpcg#n$yYP_8Vlg(8A%bO8Pv zd;>bibfocd{)rJ5JmgkwZ6R{^D!jTn-oP9SbDD;G28|_}XlRGu^0{o*dW`}aV<#21 zxyvM{Zu8-Z=Eb}^1+M-Vvnz!x5^Q`+v9qHOC!8vh@ylo~wd9PVE+S&R9QzMxg*gGb zTCn4dikap#nw8sVl29)<=~KGj6f@0U@I`A0u_BY3u02s}a`_+97_SU=#%60#K)hGJ zpx=IpNm$)SEulSO4&faFLx%<h+tIe44F(`D=T=;49qt*LVFViE=tQotCCf5QV4GdN zbcP*{YOSWeaUF)PbO0w=lQ(Y}_(7{YT}#o(KDDOu-uyJMa^qZx=W%-+Xw>PUlvAIB zOw+K7e0H3#9oc?%#W1#D**U&F08?m8oUDO)W(q@W1><7<>|lFD)yoM;r2H7wCEP-- zbpp4uvNzqZwKq~lL~nT|S;ua;)5p1b6vYWuFyV<Jehou8=2Pi0`9&lPqo%gnhiY4P zosR`m>9KvdBmrEEsqtKT0ymjCfqQmhcV{Rxvq3Rn1BCTjC7BqtcNf(aYFogR><hX; zqq7OnTYbuNu<v@(xrkicZj+uT&#C1;9khWshw7J>xfKCw&UmM*bn6V@Ei;eg*XHM8 zDynUZ&6#}__~gBMtg0MUluqyCz1G_Y?>90oN5upRZSS-SrOt4B;eE5>461sxkv5{r z%)uKonUL(5P#y=EmoLiQz}1cr2lI>uP<3$^%@r!l;p87bL_lOgY;9EIw#K%n{~qHX zM+W}7T0QYx^I+niW=0<5ot&^ao8@YM)P|=r!?QJ4A3&|!mH$nS4Gnt=eAh+R=2eIi z%hXd+<f+Hf00P6%x~t*kMwMNf;uiLq)dkVG;9A5gDXm-M7V{OnvMNMLoKQHZDXZL6 zf+c&?AgAilp(Sc9bEZ{YY50PqY<4!1l79j<hp0#Tqr~<Khs}H`wp+8ZaH+_1Q(Uvp zN1??Q3^mTRUU?u}PC}>QQJT$_AbcvK+$el4dHjJ2(R;dfrj4u#RT7^jl$HG*Q#o$e zvRfb)w-6Cp%xX<ep6qU8^^cXH>!-0ii0F|SsfqfqZg<SWMLE@Vk?KCPmN3q2Dri*w zvG0Oz0KPn)Q{I4N_c7wj%GcCwnAc@_cuofC58f<ljrvCGoF#nlJ~Z<L*pl=tVhKA` zH(2@}qs<bKmO;-;mM;$>xLC>Igb)!2Gv%EFK7hFu-M#<Llo^-{uV395frFbZzU>XJ z=@xbj4+BK+{&$Y@>~vr0$p_@d^#4n8z^$*6h?l&O{@`{CGIFV!vRyxGI$yHHgnl@; zyBScwLqiS7$CBE5GZepUW^Ok>;xk1002TfAhIYN8caj8?uiY`aH#Smqzuj}2l_j{3 z!Fqh5yIgL|%S3N*yU;TUFHFT{)t24$dlM5AOL0mZ%y|3&v}8mx`vlz`qABpQA=W@% za~86itRp+=-YJm4!(-j4hMtq4%?SjTM=W`JMURovs4Mv5s-zfmnPCDp*LKJqz?}}- zB9fd*8-bg1wcFa;$BG+DTfaX`_v+~xKzNv12!%~X^_-1Tb6kc`F)~q`=Fkrvjt>j& z3)oh{tvQibXR(Bpwq=!J4jW9qR)aLjjAj$?-C}os8*IPh9w#-ix%Ykr5Y2i|wEPU| zrOCEdl_um;8!aKsq_@+FVgk(8l61U~@~K1(1B|VY5_NpAy`SUM@-0$%qzP?45O`NJ z{7sp-D<F)oxLob5CJuBshv=%LCl1rymFrbQYsv#XaPK%4#xXzGI@BQTirGjcc+1MS zQ^E+VmdA%0`nb7mvvxqhI~)m5ZP}J;EL7Ha=>juSz9}=gy2;+nc5_1m4GU1q6{7pF z)(GfwK1-<5OWxIwe9s(<b;?W#Uyj+3kdlT`ylNS-kTUTQJKN}dsQN(Pu)Xb$AuTb$ zFP6AqK6mN}-M(LsSU|;RJ(Yofxk5AudNtvyuXHd6j~Bk;i#9sHRYo<*y2nV%ON~fW z*s5huXfr39v<l)|4%2l3!|+#c4N2@i?i3gg8Cy0V5NVMook8UNtc0%7Q*O6yrWT>K zmgX_;?YS_QQXDgKr@U|gx6+=UwzjA}2c9GE7*wTHzKdTSt)6JZxxfc2Vgr=vemh26 zsAIR-Rs$m9w|oEG{QF-|{YwM?(!jqo@GlMgO9TJXz+ce-4O~Hgw+N**;lEejLT+l` K$h-F7>Hh<5N24zQ literal 27109 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 From a1215c10e2e5cb5462da5e00a193fb37243b9017 Mon Sep 17 00:00:00 2001 From: DuckTieCorpMember <assylbek.danyshbek@devexpress.com> Date: Tue, 27 Oct 2026 17:30:53 +0500 Subject: [PATCH 05/11] apply accessibility, range and other suggestions --- .../Stock/Angular/app/app.component.html | 3 +- .../Charts/Stock/Angular/app/app.component.ts | 40 +++++++---- apps/demos/Demos/Charts/Stock/React/App.tsx | 69 +++++++++++-------- apps/demos/Demos/Charts/Stock/ReactJs/App.js | 69 +++++++++++-------- apps/demos/Demos/Charts/Stock/Vue/App.vue | 29 +++++--- apps/demos/Demos/Charts/Stock/description.md | 3 +- apps/demos/Demos/Charts/Stock/jQuery/index.js | 29 +++++--- 7 files changed, 151 insertions(+), 91 deletions(-) diff --git a/apps/demos/Demos/Charts/Stock/Angular/app/app.component.html b/apps/demos/Demos/Charts/Stock/Angular/app/app.component.html index 489d11f83074..5d981845141f 100644 --- a/apps/demos/Demos/Charts/Stock/Angular/app/app.component.html +++ b/apps/demos/Demos/Charts/Stock/Angular/app/app.component.html @@ -64,7 +64,7 @@ </dxi-chart-value-axis> <dxo-chart-argument-axis [(visualRange)]="visualRange" - [minVisualRangeLength]="{ days: 3 }" + [minVisualRangeLength]="minVisualRange" > <dxo-chart-label format="MMM dd" @@ -75,6 +75,7 @@ <dxo-chart-export [enabled]="true"></dxo-chart-export> <dxo-chart-tooltip [enabled]="true" + [format]="{ type: 'currency', precision: 2 }" location="edge" [customizeTooltip]="customizeTooltip" > diff --git a/apps/demos/Demos/Charts/Stock/Angular/app/app.component.ts b/apps/demos/Demos/Charts/Stock/Angular/app/app.component.ts index d7bb55c32446..0ee16d02095f 100644 --- a/apps/demos/Demos/Charts/Stock/Angular/app/app.component.ts +++ b/apps/demos/Demos/Charts/Stock/Angular/app/app.component.ts @@ -15,7 +15,8 @@ if (!/localhost/.test(document.location.host)) { const dayMs = 24 * 60 * 60 * 1000; const panStepFraction = 0.25; const zoomFactor = 0.75; -const minVisibleSpanMs = 3 * dayMs; +const minVisualRangeLength = { days: 3 }; +const minVisibleSpanMs = minVisualRangeLength.days * dayMs; function clamp(value: number, min: number, max: number): number { return Math.min(Math.max(value, min), max); @@ -32,48 +33,56 @@ function clamp(value: number, min: number, max: number): number { ], }) export class AppComponent { + minVisualRange = minVisualRangeLength; + stockPrices: StockPrice[]; - initialStart = new Date(1994, 3, 14, 12); + initialStart: Date; initialEnd = new Date(1994, 3, 29, 12); - visualRange: VisualRange = { - startValue: this.initialStart, - endValue: this.initialEnd, - }; + visualRange: VisualRange; dataMin: number; dataMax: number; + rangeMin: number; + + rangeMax: number; + panLeftButtonOptions: DxButtonTypes.Properties = { icon: 'chevronleft', hint: 'Pan Left', + elementAttr: { 'aria-label': 'Pan Left' }, onClick: () => this.pan(-1), }; panRightButtonOptions: DxButtonTypes.Properties = { icon: 'chevronright', hint: 'Pan Right', + elementAttr: { 'aria-label': 'Pan Right' }, onClick: () => this.pan(1), }; zoomInButtonOptions: DxButtonTypes.Properties = { icon: 'plus', hint: 'Zoom In', + elementAttr: { 'aria-label': 'Zoom In' }, onClick: () => this.zoom(zoomFactor), }; zoomOutButtonOptions: DxButtonTypes.Properties = { icon: 'minus', hint: 'Zoom Out', + elementAttr: { 'aria-label': 'Zoom Out' }, onClick: () => this.zoom(1 / zoomFactor), }; resetZoomButtonOptions: DxButtonTypes.Properties = { icon: 'refresh', hint: 'Reset Zoom', + elementAttr: { 'aria-label': 'Reset Zoom' }, onClick: () => this.resetZoom(), }; @@ -81,6 +90,13 @@ export class AppComponent { this.stockPrices = service.getStockPrices(); this.dataMin = this.stockPrices[0].date.getTime(); this.dataMax = this.stockPrices[this.stockPrices.length - 1].date.getTime(); + this.rangeMin = this.dataMin - dayMs / 2; + this.rangeMax = this.dataMax + dayMs / 2; + this.initialStart = new Date(this.rangeMin); + this.visualRange = { + startValue: this.initialStart, + endValue: this.initialEnd, + }; } getRange() { @@ -91,9 +107,9 @@ export class AppComponent { } setRange(start: number, end: number) { - const span = clamp(end - start, minVisibleSpanMs, this.dataMax - this.dataMin); + const span = clamp(end - start, minVisibleSpanMs, this.rangeMax - this.rangeMin); const center = (start + end) / 2; - const newStart = clamp(center - span / 2, this.dataMin, this.dataMax - span); + const newStart = clamp(center - span / 2, this.rangeMin, this.rangeMax - span); this.visualRange = { startValue: new Date(newStart), @@ -124,10 +140,10 @@ export class AppComponent { return { text: '' }; } return { - text: `Open: $${arg.openValue}<br/>` - + `Close: $${arg.closeValue}<br/>` - + `High: $${arg.highValue}<br/>` - + `Low: $${arg.lowValue}<br/>`, + text: `Open: ${arg.openValueText}<br/>` + + `Close: ${arg.closeValueText}<br/>` + + `High: ${arg.highValueText}<br/>` + + `Low: ${arg.lowValueText}<br/>`, }; } } diff --git a/apps/demos/Demos/Charts/Stock/React/App.tsx b/apps/demos/Demos/Charts/Stock/React/App.tsx index 4d776069b5dd..d4177c67ce32 100644 --- a/apps/demos/Demos/Charts/Stock/React/App.tsx +++ b/apps/demos/Demos/Charts/Stock/React/App.tsx @@ -23,14 +23,17 @@ import { dataSource } from './data.ts'; const dayMs = 24 * 60 * 60 * 1000; const panStepFraction = 0.25; const zoomFactor = 0.75; -const minVisibleSpanMs = 3 * dayMs; const minVisualRangeLength = { days: 3 }; +const minVisibleSpanMs = minVisualRangeLength.days * dayMs; +const tooltipFormat = { type: 'currency', precision: 2 } as const; -const initialStart = new Date(1994, 3, 14, 12); const initialEnd = new Date(1994, 3, 29, 12); const dataMin = dataSource[0].date.getTime(); const dataMax = dataSource[dataSource.length - 1].date.getTime(); +const rangeMin = dataMin - dayMs / 2; +const rangeMax = dataMax + dayMs / 2; +const initialStart = new Date(rangeMin); function clamp(value: number, min: number, max: number): number { return Math.min(Math.max(value, min), max); @@ -43,16 +46,29 @@ function getRange(range: VisualRange) { }; } +function getNextRange(start: number, end: number): VisualRange { + const span = clamp(end - start, minVisibleSpanMs, rangeMax - rangeMin); + const center = (start + end) / 2; + const newStart = clamp(center - span / 2, rangeMin, rangeMax - span); + + return { + startValue: new Date(newStart), + endValue: new Date(newStart + span), + }; +} + function customizeTooltip(arg: ChartTypes.PointInfo): Record<string, string> { if (!('openValue' in arg)) { return { text: '' }; } return { - text: `Open: $${arg.openValue}<br/> - Close: $${arg.closeValue}<br/> - High: $${arg.highValue}<br/> - Low: $${arg.lowValue}<br/>`, + text: [ + `Open: ${arg.openValueText}`, + `Close: ${arg.closeValueText}`, + `High: ${arg.highValueText}`, + `Low: ${arg.lowValueText}`, + ].join('<br/>'), }; } @@ -66,61 +82,59 @@ function App() { setVisualRange(range as VisualRange); }, []); - const setRange = useCallback((start: number, end: number) => { - const span = clamp(end - start, minVisibleSpanMs, dataMax - dataMin); - const center = (start + end) / 2; - const newStart = clamp(center - span / 2, dataMin, dataMax - span); - - setVisualRange({ - startValue: new Date(newStart), - endValue: new Date(newStart + span), + const pan = useCallback((direction: number) => { + setVisualRange((range) => { + const { start, end } = getRange(range); + const shift = (end - start) * panStepFraction * direction; + return getNextRange(start + shift, end + shift); }); }, []); - const pan = useCallback((direction: number) => { - const { start, end } = getRange(visualRange); - const shift = (end - start) * panStepFraction * direction; - setRange(start + shift, end + shift); - }, [visualRange, setRange]); - const zoom = useCallback((factor: number) => { - const { start, end } = getRange(visualRange); - const center = (start + end) / 2; - const half = ((end - start) * factor) / 2; - setRange(center - half, center + half); - }, [visualRange, setRange]); + setVisualRange((range) => { + const { start, end } = getRange(range); + const center = (start + end) / 2; + const half = ((end - start) * factor) / 2; + return getNextRange(center - half, center + half); + }); + }, []); const resetZoom = useCallback(() => { - setRange(initialStart.getTime(), initialEnd.getTime()); - }, [setRange]); + setVisualRange(getNextRange(initialStart.getTime(), initialEnd.getTime())); + }, []); const panLeftButtonOptions = useMemo<ButtonTypes.Properties>(() => ({ icon: 'chevronleft', hint: 'Pan Left', + elementAttr: { 'aria-label': 'Pan Left' }, onClick: () => pan(-1), }), [pan]); const panRightButtonOptions = useMemo<ButtonTypes.Properties>(() => ({ icon: 'chevronright', hint: 'Pan Right', + elementAttr: { 'aria-label': 'Pan Right' }, onClick: () => pan(1), }), [pan]); const zoomInButtonOptions = useMemo<ButtonTypes.Properties>(() => ({ icon: 'plus', hint: 'Zoom In', + elementAttr: { 'aria-label': 'Zoom In' }, onClick: () => zoom(zoomFactor), }), [zoom]); const zoomOutButtonOptions = useMemo<ButtonTypes.Properties>(() => ({ icon: 'minus', hint: 'Zoom Out', + elementAttr: { 'aria-label': 'Zoom Out' }, onClick: () => zoom(1 / zoomFactor), }), [zoom]); const resetZoomButtonOptions = useMemo<ButtonTypes.Properties>(() => ({ icon: 'refresh', hint: 'Reset Zoom', + elementAttr: { 'aria-label': 'Reset Zoom' }, onClick: resetZoom, }), [resetZoom]); @@ -175,6 +189,7 @@ function App() { <Export enabled={true} /> <Tooltip enabled={true} + format={tooltipFormat} customizeTooltip={customizeTooltip} location="edge" /> diff --git a/apps/demos/Demos/Charts/Stock/ReactJs/App.js b/apps/demos/Demos/Charts/Stock/ReactJs/App.js index 083d15f11825..4cb975ca27aa 100644 --- a/apps/demos/Demos/Charts/Stock/ReactJs/App.js +++ b/apps/demos/Demos/Charts/Stock/ReactJs/App.js @@ -20,12 +20,15 @@ import { dataSource } from './data.js'; const dayMs = 24 * 60 * 60 * 1000; const panStepFraction = 0.25; const zoomFactor = 0.75; -const minVisibleSpanMs = 3 * dayMs; const minVisualRangeLength = { days: 3 }; -const initialStart = new Date(1994, 3, 14, 12); +const minVisibleSpanMs = minVisualRangeLength.days * dayMs; +const tooltipFormat = { type: 'currency', precision: 2 }; const initialEnd = new Date(1994, 3, 29, 12); const dataMin = dataSource[0].date.getTime(); const dataMax = dataSource[dataSource.length - 1].date.getTime(); +const rangeMin = dataMin - dayMs / 2; +const rangeMax = dataMax + dayMs / 2; +const initialStart = new Date(rangeMin); function clamp(value, min, max) { return Math.min(Math.max(value, min), max); } @@ -35,15 +38,26 @@ function getRange(range) { end: range.endValue.getTime(), }; } +function getNextRange(start, end) { + const span = clamp(end - start, minVisibleSpanMs, rangeMax - rangeMin); + const center = (start + end) / 2; + const newStart = clamp(center - span / 2, rangeMin, rangeMax - span); + return { + startValue: new Date(newStart), + endValue: new Date(newStart + span), + }; +} function customizeTooltip(arg) { if (!('openValue' in arg)) { return { text: '' }; } return { - text: `Open: $${arg.openValue}<br/> - Close: $${arg.closeValue}<br/> - High: $${arg.highValue}<br/> - Low: $${arg.lowValue}<br/>`, + text: [ + `Open: ${arg.openValueText}`, + `Close: ${arg.closeValueText}`, + `High: ${arg.highValueText}`, + `Low: ${arg.lowValueText}`, + ].join('<br/>'), }; } function App() { @@ -54,39 +68,29 @@ function App() { const onVisualRangeChange = useCallback((range) => { setVisualRange(range); }, []); - const setRange = useCallback((start, end) => { - const span = clamp(end - start, minVisibleSpanMs, dataMax - dataMin); - const center = (start + end) / 2; - const newStart = clamp(center - span / 2, dataMin, dataMax - span); - setVisualRange({ - startValue: new Date(newStart), - endValue: new Date(newStart + span), + const pan = useCallback((direction) => { + setVisualRange((range) => { + const { start, end } = getRange(range); + const shift = (end - start) * panStepFraction * direction; + return getNextRange(start + shift, end + shift); }); }, []); - const pan = useCallback( - (direction) => { - const { start, end } = getRange(visualRange); - const shift = (end - start) * panStepFraction * direction; - setRange(start + shift, end + shift); - }, - [visualRange, setRange], - ); - const zoom = useCallback( - (factor) => { - const { start, end } = getRange(visualRange); + const zoom = useCallback((factor) => { + setVisualRange((range) => { + const { start, end } = getRange(range); const center = (start + end) / 2; const half = ((end - start) * factor) / 2; - setRange(center - half, center + half); - }, - [visualRange, setRange], - ); + return getNextRange(center - half, center + half); + }); + }, []); const resetZoom = useCallback(() => { - setRange(initialStart.getTime(), initialEnd.getTime()); - }, [setRange]); + setVisualRange(getNextRange(initialStart.getTime(), initialEnd.getTime())); + }, []); const panLeftButtonOptions = useMemo( () => ({ icon: 'chevronleft', hint: 'Pan Left', + elementAttr: { 'aria-label': 'Pan Left' }, onClick: () => pan(-1), }), [pan], @@ -95,6 +99,7 @@ function App() { () => ({ icon: 'chevronright', hint: 'Pan Right', + elementAttr: { 'aria-label': 'Pan Right' }, onClick: () => pan(1), }), [pan], @@ -103,6 +108,7 @@ function App() { () => ({ icon: 'plus', hint: 'Zoom In', + elementAttr: { 'aria-label': 'Zoom In' }, onClick: () => zoom(zoomFactor), }), [zoom], @@ -111,6 +117,7 @@ function App() { () => ({ icon: 'minus', hint: 'Zoom Out', + elementAttr: { 'aria-label': 'Zoom Out' }, onClick: () => zoom(1 / zoomFactor), }), [zoom], @@ -119,6 +126,7 @@ function App() { () => ({ icon: 'refresh', hint: 'Reset Zoom', + elementAttr: { 'aria-label': 'Reset Zoom' }, onClick: resetZoom, }), [resetZoom], @@ -209,6 +217,7 @@ function App() { <Export enabled={true} /> <Tooltip enabled={true} + format={tooltipFormat} customizeTooltip={customizeTooltip} location="edge" /> diff --git a/apps/demos/Demos/Charts/Stock/Vue/App.vue b/apps/demos/Demos/Charts/Stock/Vue/App.vue index d09a8271510a..cbc0707bedb4 100644 --- a/apps/demos/Demos/Charts/Stock/Vue/App.vue +++ b/apps/demos/Demos/Charts/Stock/Vue/App.vue @@ -57,7 +57,7 @@ vertical-alignment="bottom" horizontal-alignment="center" /> - <DxArgumentAxis :min-visual-range-length="{ days: 3 }"> + <DxArgumentAxis :min-visual-range-length="minVisualRangeLength"> <DxVisualRange v-model:start-value="startValue" v-model:end-value="endValue" @@ -83,6 +83,7 @@ <DxExport :enabled="true"/> <DxTooltip :enabled="true" + :format="{ type: 'currency', precision: 2 }" :customize-tooltip="customizeTooltip" location="edge" /> @@ -114,13 +115,16 @@ import { dataSource } from './data.ts'; const dayMs = 24 * 60 * 60 * 1000; const panStepFraction = 0.25; const zoomFactor = 0.75; -const minVisibleSpanMs = 3 * dayMs; +const minVisualRangeLength = { days: 3 }; +const minVisibleSpanMs = minVisualRangeLength.days * dayMs; -const initialStart = new Date(1994, 3, 14, 12); const initialEnd = new Date(1994, 3, 29, 12); const dataMin = dataSource[0].date.getTime(); const dataMax = dataSource[dataSource.length - 1].date.getTime(); +const rangeMin = dataMin - dayMs / 2; +const rangeMax = dataMax + dayMs / 2; +const initialStart = new Date(rangeMin); const startValue = ref(initialStart); const endValue = ref(initialEnd); @@ -133,9 +137,9 @@ const getRange = () => ({ }); const setRange = (start: number, end: number) => { - const span = clamp(end - start, minVisibleSpanMs, dataMax - dataMin); + const span = clamp(end - start, minVisibleSpanMs, rangeMax - rangeMin); const center = (start + end) / 2; - const newStart = clamp(center - span / 2, dataMin, dataMax - span); + const newStart = clamp(center - span / 2, rangeMin, rangeMax - span); startValue.value = new Date(newStart); endValue.value = new Date(newStart + span); @@ -161,30 +165,35 @@ const resetZoom = () => { const panLeftButtonOptions: DxButtonTypes.Properties = { icon: 'chevronleft', hint: 'Pan Left', + elementAttr: { 'aria-label': 'Pan Left' }, onClick: () => pan(-1), }; const panRightButtonOptions: DxButtonTypes.Properties = { icon: 'chevronright', hint: 'Pan Right', + elementAttr: { 'aria-label': 'Pan Right' }, onClick: () => pan(1), }; const zoomInButtonOptions: DxButtonTypes.Properties = { icon: 'plus', hint: 'Zoom In', + elementAttr: { 'aria-label': 'Zoom In' }, onClick: () => zoom(zoomFactor), }; const zoomOutButtonOptions: DxButtonTypes.Properties = { icon: 'minus', hint: 'Zoom Out', + elementAttr: { 'aria-label': 'Zoom Out' }, onClick: () => zoom(1 / zoomFactor), }; const resetZoomButtonOptions: DxButtonTypes.Properties = { icon: 'refresh', hint: 'Reset Zoom', + elementAttr: { 'aria-label': 'Reset Zoom' }, onClick: resetZoom, }; @@ -194,10 +203,12 @@ const customizeTooltip = (pointInfo: DxChartTypes.PointInfo) => { } return { - text: `Open: $${pointInfo.openValue}<br/> - Close: $${pointInfo.closeValue}<br/> - High: $${pointInfo.highValue}<br/> - Low: $${pointInfo.lowValue}<br/>`, + text: [ + `Open: ${pointInfo.openValueText}`, + `Close: ${pointInfo.closeValueText}`, + `High: ${pointInfo.highValueText}`, + `Low: ${pointInfo.lowValueText}`, + ].join('<br/>'), }; }; </script> diff --git a/apps/demos/Demos/Charts/Stock/description.md b/apps/demos/Demos/Charts/Stock/description.md index 6797257e3fae..2fa78141aab0 100644 --- a/apps/demos/Demos/Charts/Stock/description.md +++ b/apps/demos/Demos/Charts/Stock/description.md @@ -9,7 +9,6 @@ To reflect changes on the market, the Chart component compares the price of ever Additionally, use the [tooltip](/Documentation/ApiReference/UI_Components/dxChart/Configuration/tooltip/).[customizeTooltip](/Documentation/ApiReference/UI_Components/dxChart/Configuration/tooltip/#customizeTooltip) function to customize a tooltip that shows prices. -Use the [zoomAndPan](/Documentation/ApiReference/UI_Components/dxChart/Configuration/zoomAndPan/) object to enable zooming and panning along the argument axis. Enable the [scrollBar](/Documentation/ApiReference/UI_Components/dxChart/Configuration/scrollBar/).[visible](/Documentation/ApiReference/UI_Components/dxChart/Configuration/scrollBar/#visible) property to display a scroll bar, and set its [position](/Documentation/ApiReference/UI_Components/dxChart/Configuration/scrollBar/#position) to **bottom** to place it below the chart. +Use the [zoomAndPan](/Documentation/ApiReference/UI_Components/dxChart/Configuration/zoomAndPan/) object to enable zooming and panning along the argument axis. Since this demo enables [dragToZoom](/Documentation/ApiReference/UI_Components/dxChart/Configuration/zoomAndPan/#dragToZoom), drag across the chart to zoom in. Hold **Shift** (the default [panKey](/Documentation/ApiReference/UI_Components/dxChart/Configuration/zoomAndPan/#panKey)) while dragging to pan. You can also zoom with the mouse wheel or use the [scrollBar](/Documentation/ApiReference/UI_Components/dxChart/Configuration/scrollBar/).[visible](/Documentation/ApiReference/UI_Components/dxChart/Configuration/scrollBar/#visible) property to display a scroll bar. Set its [position](/Documentation/ApiReference/UI_Components/dxChart/Configuration/scrollBar/#position) to **bottom** to place it below the chart. The [argumentAxis](/Documentation/ApiReference/UI_Components/dxChart/Configuration/argumentAxis/).[visualRange](/Documentation/ApiReference/UI_Components/dxChart/Configuration/argumentAxis/visualRange/) property specifies the visible date range. In this demo, toolbar buttons update this range to pan left or right, zoom in or out, and reset the chart to its initial range. - diff --git a/apps/demos/Demos/Charts/Stock/jQuery/index.js b/apps/demos/Demos/Charts/Stock/jQuery/index.js index 225cbc5634c2..421a9c7b8a93 100644 --- a/apps/demos/Demos/Charts/Stock/jQuery/index.js +++ b/apps/demos/Demos/Charts/Stock/jQuery/index.js @@ -3,14 +3,17 @@ $(() => { const panStepFraction = 0.25; const zoomFactor = 0.75; - const minVisibleSpanMs = 3 * dayMs; + const minVisualRangeLength = { days: 3 }; + const minVisibleSpanMs = minVisualRangeLength.days * dayMs; - const initialStart = new Date(1994, 3, 14, 12); const initialEnd = new Date(1994, 3, 29, 12); const data = generateStockData(new Date(1994, 3, 1), 65); const dataMin = data[0].date.getTime(); const dataMax = data[data.length - 1].date.getTime(); + const rangeMin = dataMin - dayMs / 2; + const rangeMax = dataMax + dayMs / 2; + const initialStart = new Date(rangeMin); const chart = $('#chart').dxChart({ title: 'Stock Price', @@ -38,7 +41,7 @@ $(() => { label: { format: { type: 'currency', precision: 0 } }, }, argumentAxis: { - minVisualRangeLength: { days: 3 }, + minVisualRangeLength, visualRange: { startValue: initialStart, endValue: initialEnd }, label: { format: 'MMM dd', @@ -50,15 +53,16 @@ $(() => { tooltip: { enabled: true, location: 'edge', + format: { type: 'currency', precision: 2 }, customizeTooltip({ - openValue, closeValue, highValue, lowValue, + openValueText, closeValueText, highValueText, lowValueText, }) { return { text: [ - `Open: $${openValue}`, - `Close: $${closeValue}`, - `High: $${highValue}`, - `Low: $${lowValue}`, + `Open: ${openValueText}`, + `Close: ${closeValueText}`, + `High: ${highValueText}`, + `Low: ${lowValueText}`, ].join('<br/>'), }; }, @@ -75,9 +79,9 @@ $(() => { } function setRange(start, end) { - const span = clamp(end - start, minVisibleSpanMs, dataMax - dataMin); + const span = clamp(end - start, minVisibleSpanMs, rangeMax - rangeMin); const center = (start + end) / 2; - const newStart = clamp(center - span / 2, dataMin, dataMax - span); + const newStart = clamp(center - span / 2, rangeMin, rangeMax - span); chart.getArgumentAxis().visualRange({ startValue: new Date(newStart), @@ -110,6 +114,7 @@ $(() => { options: { icon: 'chevronleft', hint: 'Pan Left', + elementAttr: { 'aria-label': 'Pan Left' }, onClick: () => pan(-1), }, }, @@ -119,6 +124,7 @@ $(() => { options: { icon: 'chevronright', hint: 'Pan Right', + elementAttr: { 'aria-label': 'Pan Right' }, onClick: () => pan(1), }, }, @@ -128,6 +134,7 @@ $(() => { options: { icon: 'plus', hint: 'Zoom In', + elementAttr: { 'aria-label': 'Zoom In' }, onClick: () => zoom(zoomFactor), }, }, @@ -137,6 +144,7 @@ $(() => { options: { icon: 'minus', hint: 'Zoom Out', + elementAttr: { 'aria-label': 'Zoom Out' }, onClick: () => zoom(1 / zoomFactor), }, }, @@ -146,6 +154,7 @@ $(() => { options: { icon: 'refresh', hint: 'Reset Zoom', + elementAttr: { 'aria-label': 'Reset Zoom' }, onClick: resetZoom, }, }, From 3cc38bc2a9c6aecdaa43e38ea1f5ac5c9ecf9d99 Mon Sep 17 00:00:00 2001 From: DuckTieCorpMember <assylbek.danyshbek@devexpress.com> Date: Wed, 28 Oct 2026 11:51:23 +0500 Subject: [PATCH 06/11] change stock etalons --- .../Charts-Stock (fluent-next.blue.light).png | Bin 20727 -> 19535 bytes .../Charts-Stock (fluent.blue.light).png | Bin 19596 -> 18663 bytes .../Charts-Stock (material.blue.light).png | Bin 18799 -> 17910 bytes 3 files changed, 0 insertions(+), 0 deletions(-) diff --git a/apps/demos/testing/etalons/Charts-Stock (fluent-next.blue.light).png b/apps/demos/testing/etalons/Charts-Stock (fluent-next.blue.light).png index 1b99acce9908c0543beddee32b00b2c7a550d066..8c3ea381e13491b240c96549a60856e796fb4472 100644 GIT binary patch literal 19535 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 G<o^PkJ_gGG literal 20727 zcmeIZ2UJt*nm>${qktR*L8J-Nt3r@Yjuit01QetzC5S-iJ&>awK&2<tgn&pBX-a6J zibx4n2t~RGA%xzfL%t2@%zWqGng6+WX4d!p*Sc%Tes^~Ee%`14p0eYMJKE|@C(oax zqoZSj+`gelM|Wfr_`C4Sap20kbGKFL=p+>&H?H3GJ~UH<d=wL$vQAq|QWaKIbf>uU zfTHG!=`|t}*RH2Jv%J}PL=Cec+yCJdeRAU3J>yG(I!>j5b>PJ5K-fFY;u?N$U3&Rz z(wM7bbsY+J+l9}(Q^ZatT?M7_s<4Og<@p#d)uM+3cHYB_@p4AF5glvO-*NW6dHz8H z5R?Gq<-OkzR<r**)-rrn2-o0d^*Rzc*nYOk><}OWDouT0oz4kPyS!ugIZjaAXrTYv zgfnNZS>`#)01N+~n7)NjixlUS-#}q%US!rG9Jf0+&#Par+KFm;?LI%k6#OW+`NR56 zse;HREtH?&Z+k>}&g!#McRCCLy8NO_O=osan;^TI>qJ+6KM(eboaHR;<W{}8RW-)Q zH4k%ZJ!4R^6W!{;@!%zcfBBbpo}5GM8Ks7Y_f$*Oz2x!a*{n%lvyySI!I`+GqTC!S zX_EnF*M}!nALUhCZvcCoDViDkJjV@^i*|kM#-2Il+0kdL9>j^d>ooI~GMzzvJkpTm zGWUXRUz9Il$*JXz%6@h>Yk5Lq=ug5%5K`VyVL{xi<4_`}I&-La1*wBb2s))y(j7G# zq=E6I@$N1Q+u#2*%hvI^=c;{KT-$X@{5LE^<eu(=`_@HQiybq|-8svZF>kcaR9g!| zxy$<u`de3vD-+MFGyk6D7W~C4CA_#tPQsE6)txg?jG<PUFO4Cr_SL`g?mYOW;k0L& zrb*w>`=}`a=5T8{PGwJ$F+ie6N;@p|KJ+r^(uccdEFK~8MJ=e~v07wBd8In}v-`$j zPR(+gaU5!^ap&AplGnqH*PwG?Rur{I15K+vdaJWT^-BUH;fwke1fL`2Iy%euPRWly zBIn1b72&Sad)|o~9p(VnVX^Y>wpKvMkj~6vx5*Eurep>$o@Q?k)9;JCSj&~huA9I` z`8Wx>E4(3eZO<$a=4vf&<z2Vu+=DeS=EY8GE&cvmkKT^&Hg>%q0|$SpIb!)3BXYPi zy@j{}8WRweBy;}Im#(YgK$$20@|3mxz*Q-&#jgovA8Lwo-EVRB4HbovA*^xMq73ZU z?mmyVT+MjRz!)ZNz44K8<nDfespiOd6nf5P*p!9L&e9Vu)jhMCI!r%MLXsQ$IG1NI zB_m=G@+L2Pyy=7Jt<3mz(UT2ZrS~gi%L0Gu`ciY(`&>79Ns?dR@G#(y-{d`_hF522 zaPWs-lq*v*lZWmQe2;i^JlqV*h>sCJGNY;jB^7ty722pjaL0#nM%tPbcyUMFs#&FJ zBEK5o=0im|sp9wL_&_qp%B%ZbzfDgBat(H0rPYbT<vm6(4A2ZOf_ctSf)?HA`>F`I zlp;rmyk=+VqqhM)cBWo1YON3VcNn{5=Fk43xvom;6h6$Kn=?!MHN6I^DZ?{B&+Vnz z?3RLD8&sctB*ov4og@jiG0FR&>;$)&Ei*H9n0#gL#?3JoHg8()IV-zwo`^j0o$b;c zg>2=3kC>Z}rcSa4@po#zHHxnIs65bHFzbAy%pLRSd}A(bE6=P@)dGt06TYz*w=0iK z3WJhoOrGru5S~wwLrQH<XAdZUan1{SGId31py$1>k04~OazB<(D>0~;cG7z%b`N%6 zj^~{M8=imc$%IPFkI5NsoTK5Rob><i0LGVp1K`j1^|;)n&g=haeO*CTRu-{D6h;j2 z_|07Ycu4?FTv#8AaFY()7Z}9M#KaVJTj2h?2ZtEgB)$d^e7}n!x5s!nI619|D8WJT z{ZJQZmF4wcIsM|sQ$fwxcMoa~&t)ECV0&jxJagv7(Y<fhG!E3Y+yZPlLfc(?L0YS( z`PVlz5DwrFg0Y3cV0+uR7y}1@tA8h*j95Cs{8UG6<BuO0EKn!4kH!CC9p`gf{0i$S z<`#Y(-OcSk<CrA`*_PrNZ0Ro^yAfSbmKsqh*)0&YCp$GZvhRHLZ}U&2PF1?SWVn9p zWCtiZgGi3OW7hkjENtL@@4M#$$jct@laB;1NB87d)nYVIE%b(yLuIi&Rl0K`m63v) z=f8aEukWE`L-wJnQ=VOh0dV4ny%UaH=e~txTs(O_Q<M=mv7T~$#e?Uyy_FmUeolB~ zs3vd7C)Od?Y6u{ya`d%skT!3Il?m^>1Ng%eZYJx}@}@BQMyGv;O;bKe$ac~8@^XFf z9LsjaA>GlBB|DB1FO~Ss+lw6+tj%&+!@`#RNH($!bMu3D(r}f^^1!v8xv2*OON{bb zW`y5%y?KX%!}T9vNaaYa-sRvgx^Y+cL*ap_v@`{Ko`YjF-~<7irQ3$%`Igan+}Nv# zRG>nHh9qT{!4wHAQm0rojN-E|5?M2cO&iLFeAMI%osKlG)u3{N6}HjGWlZG*!iU?m z%fgdiUjk_yO=FjO2pKXq9x(B#QmSRwGD|~R(BtUo&z(On$PdlS2rnAwe>8AkJt*I6 z5y$)9XW&rK?}KI9r`+LbN<_2h0%xBiOiUbby9ZFx@$+xx-=&O!NaNJ$R+8}=YwD0> zjw9~_3>S87F5}@Vboh~m7gI_KgG1M-qpdlP%Gx(Xvz0f$4Cp~oCiObpX{m0~4LVG^ z&oe~LO8+Pe3UhE8X~HxKl$5)^#fFE&kGBEeU0AydY&iYpOF?*0lfZs_Z-|cPX+Yv) z50ftWKY5~m-Qj*!A|n!&Gro~LGX}_CCpu@j&1yDqg>?B>m-0vM&q@B}eV$@E4Nocy zC3IX#T{nFPu6*__{a|r}b*Z7R*E6wd497J&c-sS|d>&jBS6qCA@eno0)6>fVka<J| z0*46NY0I9xkvgVzBt1Pn`Y`E6qVmGUQ@rgghtd(1i~42`!-F-{=U^-kx8+x7`Xm1H z?{+>M@&s9zK16(l7Q=^IsdjndHlrW)PG&~9O|H0{0!o<aJM_>P$bO(-l9Bm{IO8f$ z3<TxaKNww9yTy^755RD^6Kt%kyX&4I-r7fy10I(KZ_sU1r3rEN%nC6}^!Yxo1>0Sy zWg262-+dnb<T+<2lL>XOTch@)?(tR6&sAFrsi_TpMbmU1Lj(7d{s{5so>4OWnt^F` z->C>w((V}QXqy{LWj*EfnNa*>2pWUvTdDK<@?EF=-1FZBIVWcZHOzvX9=!bc`6fRc zBHeOF17)Yi?y|Z5t7Z?}wl_%buAvlP+#kAg4*+e0r@p#>@?bC;s=|gdF^H~sERLB4 zH|iwAMzCfo$OrTuiLa*{$`w_aBut?VPo#`vZA)bqgiPe;C)`JW<u;qXzeAF<-YaSZ zTIKn?V$xiPq?FpsQXEI@_%n!WvsQ*9YH+dE#jdGtkR#k?83@h6x)^<~nPxYAU%6TC zSrrT1QMN_IfYhz!=|^Cm%c{<i!`raf-cT9mNrlwGNGmr#PG~dxp>|TSxMg7_mO&qq z!EmfTYuuC6AzIe&>GJ58`=yxhA#N3m1nbod4psRNbR25(0dp5{xXgr!vd;58SGpq) z@$bGaOu_k^4ZP7_Dym<uTp<%ghd$Tm<uctBN-3~m2fyGSMo>;#^Gn^*mk?d)jH6@> z_8as_wma9p4stBaQ~gw2o634T9L;NS{rd5}TBcKlMTV28kwhaR3w#GeH&5}7FD&XO zD#vC1dWdvPdyV_6`^cfyyx9j9h78SUM0(b>B)4O5F|z_pkSPkRDP_HZ3UpREd~#em z^dstUrqr#$XmjoB-}%+zfGpU~>^SauIvERlg%5jT2XD$9Zt5pPCScK3W&@LB+8REO zr*-Udn-^>}lOA7)8<)yBR~ec4L6VRei`HBc<~VP>wwRo|O=M*cr-(Xhrp&85D8yw% zb7s5<x<$x}qzq27G9~N><;olJe}}7tXVx~{&|D8tk?Roa7`ry9cjzXiYK-;wYZmN& z5&2|FyY#ngEgg%87!wWlbWx})Ru5PSHW=z7OcvGU^>dR>JD_+Q1|ba;28k)LO2*SN z2>o<Iw*%ZMGuKX$qbes_%SIG`nHze!l_}ktEqz0Y)WJ&HCQkmkp}X6^qG0&i?!t>b zXR-@8k&vDx&dwoecH2gXC<&42W^&jj>UT+w)RzHShgHGj?T4=Akae;2^biqpELFtP z_vGy*VbTplez<5l$V{UEbX|!l^sw#?Q0t7OQA3_1gJP*Y?*^6R?!g0_9cFurZqW;G z4c=V0yB<UkvGLR(K{TG&WpGrVS@bwK|C+U`cB)89c%LC^c4%nmrQ|;V@7?9a6Fhh~ ze(AJVRvat>YHtgWYAXmS!$d+5LCDya?sqEm8;7+l&V3!6yz*9@VDt7vmi{p~vEv<r zFZ!C94d%%8(>K@^?w!lblBs3dE6-9ZL-fbqy-5iR=eA!D(KB$ew{p|O2vWjHKz^F^ z7RLE!Qytz4Kn76~IeB~ybk~35Lq6%qQW8U(%C}`z&bqIdTZ<V%HPz|u-8Anv(j9x{ zJasr#zd1|mpcA`&bns?bS$LBk{N-l<{Svq=ZDqpzR28ZH!*5{vk-_?j)k7HsK6SI} z;f!~TF)4-7*pt^OBB5^0ua&Ok<&I`_sFkg*y4jq}$V*Huabx$>(Q&)(>%m|jC%|U} zsSWCu7!Tq*H9tG{ku}s}(sm@zY(_Z%L&^+}&&v^L#YwzQDT*m#Ai$$*ab}FBqfa8U z>?|Fb<ZmAFqpJBI%gA${dO#1JQfT==B_&qrX^=k(B#@yw<{zP{{@m_dN_7goVayA# zu`{j&E;-Ispocq%KUP<EVv~@PQv2zmS=a;C*V`_q$PsSOtBbA8ICHbvU9P*1o_Wju zk$PB*dB$>f$t<ncv!f*cMNn~aXVQpP!*4eNEEqht)?W`QDS0}+QX)cQ><9Xa=2&xs z8A4Z!-j@O8ilph#t*x@hs6nFwS8m6FGR0vR3^nD5`;6mjxcU(e%h;^c@0qiV4s&1K zqixrMlsw(a1p#MI=d1N#Dx_85QgXQ&L)jDttHP_=1jo-=K4JyHYSoPMjrP7_%JM2I z5}h7fTmP{oXwAl!+jrG#WSMKOzd2>>2qR<Ik}Z`>r(14ed&1EnAV860*Scf5kcMC< zf#<$C2e66=mRy30_S#H68uE+B)DCfd@%z0h#SU)#<wKAo)~@eeY}rl7u7nXppTftM ztES~N;&S}B_T^949#2i(ugnXK^#H(c<2)qR>5)}!4cjTktGmAm2V=_mid7(kG9I~H z3Wa~v(r-<2o_lZstl<k`@?dJmr`X80OSdl&w9LeVH_t1SdPxU|GdqicKRwC|>c+|! zcnrXL?h5bMf~`6u1kc%i+k;{^B2m#TC`R1yObN5v`tSYy#&dxO{QztEUt1><8hHFd z>1(VaRO>6xT=;>(L41b!=7QRL2gd7jF$bh3610SBd1>qF-&PvHyHUW0e|umVD8Th4 z*f`Fg|2EZ~J*WdbX!GdNbIbRQV-euC$}<Ngr%EAEUaM_RUd%JEYyy~GA4lt~7pty* zvHIiTZ6WmNVgoP5{N%orc1gb5iw!<|f9Lj_GgR7_V+Re*|N45+N377<IXb3iXNUB? zJU)_6DG@#=75ZzSQEbnZf~u?}Q+|Hrxa6>!(F4>`YP$WGu8NnY{Fd)%lD@;zmmnMj zIqV~!;+L$8KcuM=3wOz&3D|_?zazU!+ZO1c1FC~lZR0wl)vmSo9R(vCg^ON1^j&jz z8+TyBHidsiOJ{C;H@wew%B^tgm+JifYgYGOD*R}0oX(1}3BPy^i9gijs<Jh83NChK zx!*ogTln{rv9M+lEiG5MvXkWR<DI5)R(2Z#m6ZH~46&O}*AMgvvJez|gG@>K)?x9U zGI@d0J|TMJCR`)!cBcN|rOSw?yUk}+%uL#zE`dVFITGlEZUJ(iHVYRylmEjD-rv1< zF~4~JE3ct-0+&itQu5BzB*Z7loApbo?jDq^z7>9P{E1FEXhq~!<XpIXA8GlJt{Buv zOaRX3<wETg+^_M<l8sGF2<W^#sj4@PH$V`6vs+~<&1i9q(b>wnB$j74<iz<#ns<{9 z7fDxX0kUJy7(K>Xq!uSk^S5pLC0+Bu99=v~2&oHUzX(C?UJ+ELC#=@X0QJM5yNAbR zaVy)&VUo_qCfj4%-xE&MpF|5Z=^?JH9;#N9xwR8(U_d^DfLpGM(0bew<V>#U>Z{al z@n&Q>wxBMU^X*mD0<DI9#+dW%cqFZQp&XK@3_)(3G&T=-8lmIql5y$QLt48xc)aXr z-zLo1pqo^>B00QU$GIZVDd9MH!~f>f(x0Xhd~=`hf?FIbS~1W{PhdBymZ*cC&0lW5 zHTMR#Bi@xmdGaGRD&j7z&9J$)SR8bxqMm=d@`wOp?nTGS<ca;-5b}P1kR$NFxu(U( z%y8{>cfMW!X#4>>m@7x&o|*btarl<1tW6)DXVP&l*Xr{EgusOT3PHK+aQTTg#2xHl zcV&O91JRqgCQvs)uweIg@_ssC(^M4#h@7Ub^E~a#f4Cc%)(HRXsBfTHLx6n-=Mvts zHkdc@?cJ{bTtJkqcliF^aCn9ApJCyzkg|xREsrN_LBgd&UeD(56u3nWsOraj`=Y71 zzw6EC0z>Km%|)Akb1{Ip(Vr(Nz=UG6$GWLXlh}3@zNU5WrIj=pFj1M={uiM-0Zm2n zu>fE0@_#lfABsmLp<rI`|Glw*YQ;4H)jRdVU~)fa^PaI+9{r8Y4}g*<<S)Y0HyPfQ z)lRU&t*E0^Q&s64i<|c__xEk;7A+!r6~*&Q-Q~8G<g}c{v&Gx*V&$;rX|Nfy@FZ@l zneBm<MCj-Ber?aHUH*F))fHVmLq%vN;pXNV&C|+X7B|@pZtZX>x+U=M0iJ*M50wIZ zcb25wey;#wg??nb6Fb&t=;f^cKB3qAnY+@VyYE0Iw;sO!h0JhU%bYxA9rf}OKfeG@ zJ8CZm)112B$GIYm0DS_&yE6;yV-{j9{|n32Vl|zV*RiHbhhDH!kIF+ClV8zXkLk$U zKx~uAfrI&9Xt(I8mtNoR*0P6UN)MbC6p{Y+yibuoJ*||#dHk#H>h=u#%J@aNs7&m9 zO1832YX-Yf0`ymMgtK*8P@LDCHKnch(YTqfj%mj2ifeP<I@2|8msLxdm3>N`0M1n& z1E+uRFvUrkUGx32&F#DgYt(_x{{AK$fIo{jZwkGJoT18el8ur~J6hgOO0FiJ6L@QM zV#9oOjrEQHqRshiz2BnV*Bq`hWg&oiWAN^Fn6+T_c+-1VpRNPd@VB~<D0i@b3$XeW zBL2hDk^0q&P1-zk<&trQ_hr<IBXw%Z(xATWb7f}o(s#+OHac0B(6d62==61mnIi#i z)}fn{xj9XOrGi(L;%p|?cwId#IkG;T<4uaVE!nDf3ve??8S@!ILDqb;>%gEXsi~*4 z%R6ajixxNnbsd6iHXD9kT4F&U3PNN9FQ42()^G9k3O4r0lk`R!Ny4iO+2Jf{XCm`9 z_@wii_ALjPOQ6-{gqQ)`vY`ofa^7?K>fFs9X-yaXy6NqLC}rQ(Zse#DkHin0^*iC( z4(DswKD%Ffpe)%hG5-J@V4x5AbDRO6H+%N*1OO!bX?{qjKT1S&)RVT{B8%{yIR{*Q z`YYsR9}sLQ>em<h<@S8X_Rk^r=g$BqLsldHbBa&bh5;Qw@a!@=01xAy?RV1^R`pIn z^tRPhJwtUiUf+P60KVUR%(vWi5YK>v*Yf{_p`Ys>T5g{IL2%47*+vEc!rWg0X1!*^ zY;JcV7OC&85KZiY8XA!TLnc4j;bShP1ekrT96hn8LWpmCpvu?q%IL9X4bM~jsyTU; z?-}>5M<o4cVD?w9|L!yS15^a44-ZN{K<_{G|3AI%8R<@iC)3^w8V#4w8d+NfELi8E zb?6IzuUO;yP07}-v<>5ZC9IqU9PxJ9vqzC7$i?H;+uxlgY56K~sT@^VK(YX|0-`^? zQBuBP#@9Sj;*dg6Q-A67W31XbeB%joo4UjsWYokam*`yBfiggTvMgF`&5e?+sBgn3 z_5gEY60a2m*s)|Q**0mEWYrLvwk3HU5tlTQ^q}<8HCC9B@j&BdhOg_3=i5;w-domB zAZOCz@*e8DsoHFmd_fle7R3pRuTVNJZl2<=&m;=Fc$NPU3;NE{GlQIfBSAX3{B045 z--_&S>&?8hN~D4zMq}a*gu&*78B*HF{ODv~Iw(Ejv)h##W{Uxcqh<WC>JXQrNv-&I zTH`d()mp}v&~n+Qk}uRr#E|b}a4D2eTdW2-nPPRSfWPl;P;oEqexkrjp@+vsniprX zl}od}wAklgRl?DU-N#6#UeZnbMW8h0_UNb6ZPNE^#qWv2B%{(NsOOskc9eIE#;)%M z)S)G^-(J9d4gXkh?C!YOZQ*s}J=XWCo);&lEZzu@?1-=4h|F!*fAdB#PWw0hn@TlM zmRjM-YSS7L)acAMB$_gWe)l>(2;_z~>uV85FBr^2cBj248`4#`){hu_R%!Uh<{!Kh z>r{z-`*^&2)ptqNZ;}J37iD+4;J$$q7|<PSiGvbPQW`IV{Tj<}wZRf<ZTP;5zh*E! z%eW|z`+KXYl&KIV@nMiMLo?f*sENEESPXD$v4EsWn*t~tfTTAqb3Z{1uy=GMYnPRk zt-t1H=@59~&Ou$0(8+rQySKvTr_Fe#JLeCC^p@YruBvsJuzRArmZ(w04bPir?W&&K zz`T45I*V}Q^Lp>SXt}2e)v`U5b+7jLi`8V!C!4m2n8h1D97w$7r-hB?v^c4Y*sq)n z2T8i>FT?7R!`Uoi_Kmuunk*-Fg*q;%R!_aARpYm7!8F<FY`sBNCfAi*p5a!SJg+d@ zyTYo3*bL)>6LVsFpo2>D5x-j31f99xr!_hRS8J?n+_VvezxBphTyeGS^EL0&Z6AR> z9ZjWOr6J=MpJl)d$a;f!D_XW_yG|>+hnnKlAot#X=-b_y(W!2;4^upYs5}U~iOQn{ z+mgsJwfJ+R)@rY}sd0UsrJ<}PtPH}Fv|0hO{jNN1up*Qd2+x4}U1qgc3+~}>SuMm5 zAhC5=>&9J)i-!7FU$&p+;8bhBf4>ba?wVH02hH;owLu%cfR$$d4A?q;mYct@@F7p@ zDu6#~ZJvm=(ML!zvIvOijn5qvh@CTndTA_ZQ|=IvCE<==Ha-g25YD^W?WWzndyemQ zD67{GEQ96eB))Y$7eHG}j3~`(B+Jgbu0H0_=`x6#2;z@xUwK!(rt<I}69MFP;HfB> zbd*gULs;VERC@N#(GinhmlnGtP9#6F+(8?`G3PR>*VX|4{Jd0a+&Q>c*#RoYpn+~E zH(&B=iMq}ul`D|$moUtEL%pbPv3JAeq<5Wq#$$D(EDeAx3*6k9nC>cWH(Y>H*3^CP zz~OfK?_n)9Zw~}JOGN);Isrn{%;jlw;4<q;D^qSPUyIZ$e#5%Xw-P5Nr1mW@&`SLD zRd;uG#8(kawAdQf!<hRd)W2nQI{*z7%*ir7RaO0*cK%nIz0q}OUZR82)ywCt(jqgf zOX4o7R%cEW-Eutvll(z#xaHhMUCde9I)8gl+PW#f$<=$sPnQZ#pB$<+P5Q(1snL(l z1J9lT$vpFc(Lzu{6MZTH{nLtBVg{;a+M`2W9HHy4UmO<RWUw~OeJxg(_~Wf)Ur3wV zx0zo$7K{S=cKz6*rC&)Lg~6WJ-&&8K*Hv4Z-=6V@LnN(sVquRv5kT(T^KKA5-@~#* z8}V3_w&42f^Sc_GCp!6l*sj-qjX?Qj*e_zhKbClbs@d6mzuJal&3MmBY0~R+ZtbTl z)_6*`B+#P|*Zw{IuH1VW%9Lzd>YR{mCHqGofQE0qUyEtJB<#oS%CTe~<@!v7?(4Lp zkj=qQ3*|E-%bdFlmyv?o$ex9!Y-m>+OAF8<?0Z7xw{yY~+p*wx(Q?vxqr|sdge4gv z^;;s0$!WC4t%`1ZbZ<!)3buOS#K>5n=H4_$A8U(<es4))!x(lKNW=-o+>UC!r(6Cu zK@$5o#X0EOr^FxA4@D8Zw9sSJNaYhGyQY_DtxNLzkUcl`=XAF6`~=>b#gLdR@%erc z5TYUL3pbLoU!<p9pAgtHZl~GL1a&5hODEswDGO~;bNE~UsvqzsxQNUZL=c|0ZQ&Vv z@0}P+?H`WICGh6{_mi|lwQKWHEZbEy3HccRh@~a5-BGfT`J3DeHG@Cws;F^Cw>-)4 zaj#qcPfKG(7HZ~o79M_@NlSjUON|-V`!|F7p^s^EQ7O!_E!yixT*VDgnu|q0cAT-9 z_W2(7eb9ctG7u2;JjhUXtM%Fo+45x@wTyU{-QQzz`FhD@d!W<YvvZ$#vo7u9c`<&N z@Xk?!%nwi$Xf+pWXsU-9xH|o~Pf-kzGHJQ?*y~S+V|%*vVxYgdJbe>?0jF`v@Ib3? zy=Tv(-1RSidp4K6IE^;k2$^5BZnk$212^ZF4GZ@!Dbem@VNySNg`RTrEN$#WJ|frI zCSQ=#{rYSe9<a4*R9~!8(<D4hp6p;@eSDrM7+<s>ADtI-ttl5UsW)OVF`8MoGjAJ8 zSamaqizIWwBy{UYVd6%Yj2<|k6n}Jlc*EG#3<PTX>n}Iqkm!4NZbc>VN7B8#`LYFi zP#<F|Z^WK$g^n+&R(zkkpc@4izjaJ|HF@;0QLIDb&xliuf8{(O@GNk7dyO}Mh};PR zZ`D=<n4k2Ow-}`N@1~x)=@ZV=Dy#n;WM6P%m*2XEr6?ySmml|_?WeSXXS=$3@UP#$ zi0M1JrtuR83nUO<Mw){Wfh#Os;7XL~OQVC_2f@o5ef<;_uzRW2kOBD{yiUUvs7QXK zD~Z2Sc`b{%X7TIp{zBVbHOkYwwNW4klFLowubHvlcM*hc)SF8!U%wh@Cvjys+>;eA zX!+4MEZ=hpmE92*wMPU>f^%$uCNGP_FD})#;hZw<imELOsHzx^%dfuO-KZO$$o))2 zN2lFK3`0x6<(J%%UG)n<s(r&kBHJXb$oN)=$1SeAjZQ@M7RZ6b%LY-FE+`Sq9~`eF z8u0mZUo$La^DB>2-4DNcU{@Ua@kZ49QM9S~yQjPc=@+6byT$Weq+`faMtIoMe>2L@ zS=@iw*QSe32>+g)IN4VlY<0&R|57gd@tfP1gjwQ(37DoRP2tk4b1pvCPw)CLwW~EJ z9=Q0Aez!6S(az(0JfeW21unvxrx1jgSUH;43aT@Ib8K$TX%Q+lO&p)PeWPv@3W^PL zDagdq;`^@ITZJFR>!vO2@&tV6<we=sQDQbFOx0?Vkh2raXw#D4tC3W>E4eMG2dn>H zj`@Oi_S;|{!ToaVg?ekcW}J6qVR5mmu$h?|V5Aq1P&dj#-F;$(4MBJ@-w;*d<1Zc? zT&s%PQ9bt90<o8^<OMqI*v22<$7rHoho;Lhcq6?-A+7@PfqNMQEKoUNQ`}_>xm2_8 z!b_1?4MNfs|2pHO=)2-?(7jh7=L8;f&HxsyOz!o^5g1@Vxcq1%es8((7hC0ZQzgUe z#o+dZFDDDAm(^5wqkQ=_Iq)Es%Lb+&3eGC(nab;a{X{%nATGbS(j?Z%w*G2Mtb@_* z#~=?8lbfEksIs+2W2nZCm!VhU@?Vk3!t3kS?6xPZSXXJGYuEEMBXgZH$bG&T&W1_q z?lJXLh@K|0F(ez1werT{Yw!e-L^2{8W(QRieejfHmu(-FR?ez5Ti=e3b}py+OmF}# zDI>Ke@|7i7$TP<wV*xJDJ8o{hQ@|>JucA$wlaP9M*4I3X?4%!SbJgg^Zp$xW1klDv z@<WNr=n2!4@ejsZF6j1Y6xjUmXaB(Y&<K5?PovfxOd<#AUvOpjNQ`~Tr^WOl8$3qF zi0qt3m>`jn+N52`<Kix~<|W}DpsZaWZt^9{A0=ChPK)c-Lu;bx&S>`HQ&U6T#cE7{ zqOL|{o-y&QSd~bW5bmqfUv512yPk+Q^J;5cHGcCh<?S*YX$t$vrSswx(7>%nOKU_& zU#R2zSup)?t^1g@(kR}i*f^V%rQtG@&Q*py0L6$3dnbwOizoj)mff%ZclvA-7+;{y zz}LX-Dz%vn;e7ts{l}={z|>_-cNw?n^0GINZ^-G;UK#^(-Ctez)t{zb?^Z3fFuZWo zci|xC?&bjLiy05hAlD0kxu{6MU#0iY-nY+(K&w^9*YcI^)uXk6r(a)c?(DzSBj1hI zyfGe8Q8ysWpoO|n>CS}380rRm7Xfe8=?ak;L>Qjjh~0!rs$exwXZ~n4vcH|P-PF<R zSwCqawdN|c1){F`DfoJdLa7&lDda+JucsdNT!xp9yn0*D=Yk9TQCoZ_#>wgYHAgP~ z$ST?Yhmm8WmhV%```S<GHGe?)z1L4S*{6tJw3n)<t*4h+#U2yWSt4&oX*-iXEu7et zHe7JmXFDmY#kSc;>S%7fe>)H8yC!1p3Ov8}gTno{Z=(zcrip7aDYgqDer+rI<<zqn z`%YlUchGbeSF|)aJbghFHX@Zi#cZB0K-X5#dXNjWqw@1AbaWSe_kKfNLQi|;GV)^h z4VV%Vzz%ZGY-CLhB!t{+tYc03_%z${-lw>;gXi+}-@IesG-sc_<}}JL<vHr{o<3Z9 zToUo%-a4z;w~r>1zndupp2}fJkH021Zh5jia#Z{I-O!K|w<9mlgyGQ3Nfp*K8?PPc zl3M#RV3)r8)9DaZw+$Axtr<M<qwa;V)jnX7x@B!;b#Vmd<|aD=Y6gBe3iVT)g$q;K z@@+jfFRTT%%gjm(r>gh$^Vm9Xup5~;kc$kQ6xn?@H0&?$)F^YPC69wDL0Ps^$d5V! zOXxkiR;xb1S@QUnH9!;@OT0Qa;)j~sGL-d>8SjP&jgdghx!VB+aY%m^V$=7qoK+0M zCN^~_*MVDt-1MEn$U(?Q%{QS(Pk1@YUTTlv^=^*w&i-Ww#~rKPS&&74J9=)zbf+!> zQB|GrY*An=ml>}dCoM<K$)QX&85=P3l6P^!2{vj&HR+~iv*{2sw?lMvzw_n@F*F-4 zWs|>$BE7(VmCZgh2XQBf!6tA%*(BGzJfRy=-Es`rFJJ+)B4w&04K@`7KK<tL|NU`W zdN#x&ndy5Bzz<#b|9_6H`|A3T(H;;t8xgF?#cQk7OYD3gId5SM$xnc-tY77si*UmT z&8B;~+4##<8dS+(t><@#wmp~NYNbAW4A8e?`=)u@CqS>WDqHP&v3G=Xd`LWwl)Npa ztRtMDf{dTdg!aIP+h$GT@ZJ^Z1|8vze(Mzl<zRe^+=h8P1E7)Z2dy$#985_SYA%>C zPyUG9xi=i2OPOd*8-k-Gtg~d37l{&hgq>?7?jf3ioxX3VdF|SXy$A2eF&Gg_QGIPr zu1*xABrvy)3XU9>5#w1N)2n?d*vGXnGMP!q4n_)1VkG65Yte8*BkX(ruyCZu*t8kB zL(X@dMF?lMd%DiomiO^Mmt%~CQfD28dDD?(*H~p}Mrs2`TP`ejq|LMnJh3E<0Ag-W z;u5=mEb0XDsWY>T%PV!lKATP(%(V4UP<6%k0AJ|agy!T0bn>>q9#h2*aQH;~6~)FK zKb=m0+T-K-s0t;bH39>xiW$*aUCNITHX>9-b(^E*F@dI~-`fe1`H3n6Z4+(E1mCf1 zY?!-p>;Rqhlqp76yIG&&;@!(MPmJ^|1+s?7+x@1cHZsyu<BeME3GTx+$6?$JdfdK$ zv^3t>-3XShTK~4TZ_7fX`s(uJ%3*Q^vN(qKH31;_f!Q2A95_uS2ir?6$h&)cpY!Hq zV`o1?M+X-A=c3E)Np(tHUEQA0apJ(XbZ`IT5!;;n?*04Iz-4dj6?ysPY7Alf1Qv_k zsOtOjrEy{cw!S#<<HY4}PX6|*zq#@z`zS#BP2PWUoZ|(Q5i&x*chB4Z<Q}+GcZ&?i za5HYJL9xU|ymxbUTMnk~*H=Xwn4wf6oR<M>SYH_?1_Qsc?GF%Mc7tHF4f0G|1I@)N zpuj9(&6Tq2(&jkWR1~0$4D0JKFP^7e+47O*9ju59gvAnvpE=Bi$~N2QyKcIo604&u z%&D1Yhr^A8YW)aqGzH2PIN7)wS6x5zNP1umiQTD)V}_eIUPD`7X~hdO7gQ>@*-eoA z)->|W?`w%ysQzikkv<1Z#~8g&DY(rJQy4eg8uPt-#hCafVl2aDf7)-};Y#b|;xm;& zUJ3}>uQ@-_wE5Uqv1zy=Vu?5^Kq8If(z{J73NdvC-uAEr#(8qv&RF6=X^j1jXBEB= zl-j_&<cv%tf$XF!vEtL&)T+V1q@cgUZcIxAkF~vRqLH~@3@Hvhz8$u`qyf%d@cffi z5Vm-`TM@kDqq_>3cAe(F@`gQzB>N1X)$yyvUJZ(^2;X^gVmCvGU0`(}p-Tok{y;%{ z!h*c9aEY{gVHTlI(&cfS7Y?!Q<e`9Dv@`5{=gFJ(ffAsUSOD^BU1Vrt?ZLqbtMqmh zWlZ?eBR{Z_3VKz6mItxjFosJ~#D#->)}<p*F|u}nC9o^R8t258>Zaw<hZ#Fp`!~Wf zQdRngb=ca|RNIj8;XE+EuGY<5PDN#}c-&URGV$B@9LeI3CV#_~Jc+`L-zg;e$vfG8 z=9=iJ-16BjOy=Af`$_FoQHzk`xp4G`p^utMOCk8S@<{8-My&(bacQ`9fCCil<31n2 z1D>TcZKDycu4;x(QkibP@xdl0J{2SFVcpu81%tmxVM>_<s$6sR--Dk!%?_w%qY4Sg z7)oue*4DGa<sq$PaLX!5Xnv>ychxOkeQl1iND6@Gm^SB<5#;ep%rvrYfvZsNLeF2^ zu4#MBA)?Hv+T)@v<rLnH=Avd)kyKP?us+?Ij_O+^&FHW%5Bmz&;vObJH;v{%2|Nzu zxiPf6Nv2|w7HTfgw5m83kAFBfG|-w8Q!$lCp4z;C6SA<ACU=Gfz}mr0LoU0)hQbN0 z9;81oum&AG*sR5G8pr4r<a32;OCVYMzKbc3(CKu<O?b;d%Gg~u`i<M#f(Twt@_2)# zx8<?f)6d*7i1f;6P5I3PRho!b!v-5ZG&o{;8|UR__5SQ|(*F>bLlUI1IEa^ErDs)F zv)&pgBB{EiJR}!1>KM-rZrydiJfG_&GsrQ~mzGS{MpJ7H=G4?6B_5bDq5##rk!)|T zsLVMrTshQYOw67$&dX!&v|GC6XQwLfBsA-Zw&v5sZG`H;5{lwnskgv*3NLw1;jRqu z%f=n5<*>=Tb*XF%9s+L036Y-V4*DZd@M%y38q!%A+1%UX>UpK5(yu(B2xT}_WNOBn zMj8)W?ev8YYxU0x5wFE6EpsHd$W*%u%G3K;dHQ0~aN4$NP;ZleTHh5N=Em)<SV;Mh zfKj8Kt=bsc$h=5L20NW`LasGD8HOy2U+Yokm}6Xa=xle*B(6LV_u@@X8&GOpv_`p0 zk1rJ!CE}Re=7-_1-0^!}l7_wXRFF?<WnmIl9_?8UDTqvOL(~i7TTmb$$JoUMm!#@t zI9#Im<ACh{oJJBS$SXFTW{`ZG^!I`;)z(ys^zxjgICR~<HT@+zG}upZ)~scT0GAnT zaRw0|c<|-pw9qx*u|`xa*}?vn2EQGNQxh`ExD5YAgFL4GjSL|ux@8HP56gE|3PAaJ z@sPb`;)a`i^YWx^Q%*RwLh5TP6IZ2R8>aFcaF_zd`dwLMuXYCU>t<_?dj<#Gabm18 zfQ{ZQ0jEu>@)qwsK8w&tXFy;ZM>0~k;b28%QL?AEpSBFo9J$czax<lj=qy{?A@Hm_ zu)<RYdc4;OmM+`sY%j|@{~fOo-#p`vS*<f6TzN#nVn9%tW@Jy=kfU&_Zn#bx>~e!5 zmyV31j;v<qAJx_Wgsee8&4-r%S@M}pr9sdjqC}S)YSCFbvogd;trr@E<p>wz$dMW^ zLfgrd2FQxz?1D_N8{YZJbv352Oj4ora8uD$<&n>Yo$#f4;^-xvaJD79CJwaG>5zzH zo*(bXbW>cO3mcp)`8eSEKS0=eTP$--nBYax4HtH!<^s*nrYjp}p(oK=Ww6<9-ZHk` z13d~0N`)NHX7HJ{#xUlMv}o93Mtfjt!_&4dm*V=UpxKZTSI5t7@}S&8Y=w)fLJK-I zaC=5i7`i*;9z8NEOvzs*opNgbCro{vq)|@f6b`OcQ8aFBm-1L{E5(K0QdCpK)^Sms zRfvVEtr8HHU1LExEeq>)2_s`8jq+~dSA@LuntDRZ(k=UxWLcb$UB4o}tBn`}(ME%y z^0t1<8*Z&0ZRDXMO~P&sZhLK@*DYYlC1A@s(a76ALs|wAE0HUaJ~U<RT!oF>O4Wk- zq!xW{PXL~tO*DE;8Ltz_gkUnT_{xoK8(2bUkm6hp%m;Ahj+L81?Wpva^g<IHW1H8q zD>9lW;Z(@BsYtRzW#D8rXA>*p$3YO1yIZk*GT5*jDa!6A?MiC{lZRK$GjcsAOx#8# z6RH{)j0y@1qCK<GH5+jAxd@pAa#+tbu&olbv(OEeg+sHW6NT(B@V3>7<ynA%V!RJB zdN-yS$TXvV4>tL0ZHb*tdi}ZD$0_AL1aOmeth_P9P9hc9xh)~xQ`=n26_aLHrZ|9Y zFTvW#^tVmy=x!QH0f}WiEF-SSVyHEkHhb&1dIVlI(VA`eB{hUGSx{44)2>8`BXNF$ zyeon>8h#|X;+8=YfGXR@_AB~aCIS*tCmfvAM&Pl;N6OeWb*cp+5x{&x8=<1yQ?wUc zilzl@`L^k(wK*k+$}%{${zKYwl5e&y#I<gvuH>7x0pMx)&nx~<q#%FS3{F;3XSJAv z71vith$<iP<Z*kFimG|5#_n^1kel5S<?;7ex0Ja2LN*d_1$uNDqD|6d84jY3UZPJ9 zz_iOdk<kc8OlCv25s~+DueB6(S0+=D3rbR~j`#G&W(3!AAvW#QMk-=-mWu3>c=BO_ z$WNwdVCagM!!h<a!QLfFL){iSM8@FCP;buv;{Ge7j#LN72-(u@ki9Z(t#-vZ{+SNA zm4Yo<f>d2;C5?6Gj7P-V%ftzdz?6KWb7x(S$04JDV#QpUgLizx;qtROPh$p6>Kb-N zm6PJ0juzUkg#PD(J7)YJ=Qu#_=Q-uJK+W7hEE}j1doz4|D=;zJr`@0vo#O*q>JbG+ zs%>AFqzj6_G|`+fwH+Yba)@1UiJh-POHF3-#B!_2hJXcjg1Y$FU`f42E<qFRB+ISZ z)U&Gathu_e-%{KO^fyXcH;Hc^xPr9?sc3Ccc*j?_LhQ&zcB{p6Fk6K-Li+glqiA+g zw}iX4Y`|scw3hI)Vv_~z?+=VdbK{{h=Xo-AmYH3*cIpb3`aymsUU*q9%AlUBE2t@i z`j|~AlcPF5!y^N|!9`Y9RBT!%BHG+3wI-l{jDx9hXJJ}_f3#P=1qA6CImAB8*rR0k zab(B=)v<7CHW?W?FfW}E)0@#ZP=>{gDo|ok=u};EEkpcg#n$yYP_8Vlg(8A%bO8Pv zd;>bibfocd{)rJ5JmgkwZ6R{^D!jTn-oP9SbDD;G28|_}XlRGu^0{o*dW`}aV<#21 zxyvM{Zu8-Z=Eb}^1+M-Vvnz!x5^Q`+v9qHOC!8vh@ylo~wd9PVE+S&R9QzMxg*gGb zTCn4dikap#nw8sVl29)<=~KGj6f@0U@I`A0u_BY3u02s}a`_+97_SU=#%60#K)hGJ zpx=IpNm$)SEulSO4&faFLx%<h+tIe44F(`D=T=;49qt*LVFViE=tQotCCf5QV4GdN zbcP*{YOSWeaUF)PbO0w=lQ(Y}_(7{YT}#o(KDDOu-uyJMa^qZx=W%-+Xw>PUlvAIB zOw+K7e0H3#9oc?%#W1#D**U&F08?m8oUDO)W(q@W1><7<>|lFD)yoM;r2H7wCEP-- zbpp4uvNzqZwKq~lL~nT|S;ua;)5p1b6vYWuFyV<Jehou8=2Pi0`9&lPqo%gnhiY4P zosR`m>9KvdBmrEEsqtKT0ymjCfqQmhcV{Rxvq3Rn1BCTjC7BqtcNf(aYFogR><hX; zqq7OnTYbuNu<v@(xrkicZj+uT&#C1;9khWshw7J>xfKCw&UmM*bn6V@Ei;eg*XHM8 zDynUZ&6#}__~gBMtg0MUluqyCz1G_Y?>90oN5upRZSS-SrOt4B;eE5>461sxkv5{r z%)uKonUL(5P#y=EmoLiQz}1cr2lI>uP<3$^%@r!l;p87bL_lOgY;9EIw#K%n{~qHX zM+W}7T0QYx^I+niW=0<5ot&^ao8@YM)P|=r!?QJ4A3&|!mH$nS4Gnt=eAh+R=2eIi z%hXd+<f+Hf00P6%x~t*kMwMNf;uiLq)dkVG;9A5gDXm-M7V{OnvMNMLoKQHZDXZL6 zf+c&?AgAilp(Sc9bEZ{YY50PqY<4!1l79j<hp0#Tqr~<Khs}H`wp+8ZaH+_1Q(Uvp zN1??Q3^mTRUU?u}PC}>QQJT$_AbcvK+$el4dHjJ2(R;dfrj4u#RT7^jl$HG*Q#o$e zvRfb)w-6Cp%xX<ep6qU8^^cXH>!-0ii0F|SsfqfqZg<SWMLE@Vk?KCPmN3q2Dri*w zvG0Oz0KPn)Q{I4N_c7wj%GcCwnAc@_cuofC58f<ljrvCGoF#nlJ~Z<L*pl=tVhKA` zH(2@}qs<bKmO;-;mM;$>xLC>Igb)!2Gv%EFK7hFu-M#<Llo^-{uV395frFbZzU>XJ z=@xbj4+BK+{&$Y@>~vr0$p_@d^#4n8z^$*6h?l&O{@`{CGIFV!vRyxGI$yHHgnl@; zyBScwLqiS7$CBE5GZepUW^Ok>;xk1002TfAhIYN8caj8?uiY`aH#Smqzuj}2l_j{3 z!Fqh5yIgL|%S3N*yU;TUFHFT{)t24$dlM5AOL0mZ%y|3&v}8mx`vlz`qABpQA=W@% za~86itRp+=-YJm4!(-j4hMtq4%?SjTM=W`JMURovs4Mv5s-zfmnPCDp*LKJqz?}}- zB9fd*8-bg1wcFa;$BG+DTfaX`_v+~xKzNv12!%~X^_-1Tb6kc`F)~q`=Fkrvjt>j& z3)oh{tvQibXR(Bpwq=!J4jW9qR)aLjjAj$?-C}os8*IPh9w#-ix%Ykr5Y2i|wEPU| zrOCEdl_um;8!aKsq_@+FVgk(8l61U~@~K1(1B|VY5_NpAy`SUM@-0$%qzP?45O`NJ z{7sp-D<F)oxLob5CJuBshv=%LCl1rymFrbQYsv#XaPK%4#xXzGI@BQTirGjcc+1MS zQ^E+VmdA%0`nb7mvvxqhI~)m5ZP}J;EL7Ha=>juSz9}=gy2;+nc5_1m4GU1q6{7pF z)(GfwK1-<5OWxIwe9s(<b;?W#Uyj+3kdlT`ylNS-kTUTQJKN}dsQN(Pu)Xb$AuTb$ zFP6AqK6mN}-M(LsSU|;RJ(Yofxk5AudNtvyuXHd6j~Bk;i#9sHRYo<*y2nV%ON~fW z*s5huXfr39v<l)|4%2l3!|+#c4N2@i?i3gg8Cy0V5NVMook8UNtc0%7Q*O6yrWT>K zmgX_;?YS_QQXDgKr@U|gx6+=UwzjA}2c9GE7*wTHzKdTSt)6JZxxfc2Vgr=vemh26 zsAIR-Rs$m9w|oEG{QF-|{YwM?(!jqo@GlMgO9TJXz+ce-4O~Hgw+N**;lEejLT+l` K$h-F7>Hh<5N24zQ diff --git a/apps/demos/testing/etalons/Charts-Stock (fluent.blue.light).png b/apps/demos/testing/etalons/Charts-Stock (fluent.blue.light).png index 91a502aada2fcfacf4100bac9484ace977e2c5bb..56180b8ce7b041624fce3d057bfb161ad1bb1629 100644 GIT binary patch literal 18663 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 a)~0;o)uoPKPk^*b29i>c%zXUv{r>}v6$xtq literal 19596 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 diff --git a/apps/demos/testing/etalons/Charts-Stock (material.blue.light).png b/apps/demos/testing/etalons/Charts-Stock (material.blue.light).png index 8836c8c608d866b0dc7826c8f1c70ffdc9056fe1..19d7e252206c07f7d76a18dd8ed4b0bd079bc646 100644 GIT binary patch literal 17910 zcmeIY2UJt}_BI?*M37>aj*JAPNRt)_MHqolm1=;1NE1+6=v4-gaikd_^fq)ulU}4K z3WRQGDj*<`P^5-l!g~^&d*{CQ&i~%`UF%!lx4w1P(nE62$*=6apJzXNpY!~#jv50U zD;)>~Vt}dttOo*}oCE$}J98R1Q^u?=4+077!hXJO;C<rzTZ>=Kwu2}4OQUpKb*ovU ze#vEjk+d8l|Net_3yqLV(oPorbN*I=LHhTD&%mSSem%Qh#?U~2SjKedA|mn4e9nh? zjy@%Kn7$$mFV0`WsV8${C?woKDcJ3Pcscj)_1nJ}zJDwGbGf^co4aYyx1%VNH1sP? zQlJ7&iL(ld2ZrL&HVh^IfhE_UA^$;1c$}x4w_o^)avnE$N1c2kr|?A#<%IrKZpw{$ z!pf8zwGsbc9bo>}<yP)#)c#M$3k~SZY3{^zp3eUJneLos4a|_G1n0ow7IPHcauqXq zYq;JxmHIT=c-u6M2V8=4r8fs`pKr#q($>paolfJt?!-J`YMR$x9W!8tu*tp0UA9fJ zlzm3hhOxZ?TM;AOR_w!m8>=Ttxkf3LSOp_dP6p<Pwo7x%HWI_q_X|&-F&wTB@J*9M zub)qg=Pi!p2K$Lnmbmp278GxUX|2`Ez6blHi~1tK=IHV6L8K9;r|f5@7`MTEMS(j0 z8KEbYaC-xFT%3?|8E(1UNSC>&v`j(hvm?cGmAYDcm`W24Ri77Id*VLtnqnn~?MsJf zLnKX#rCKk@pQGDj6Rb2EW<if#a6=mz7l6mmAMeAn&=K<<&n|s0rkLOh4ez0$Nik!# z|MRUj@*we&!=G-@B|AD+qA$v_F^K0Cq>8d@?<hfRp_ZeGQxDY7?<kpIVJEjOAeJ)8 zWf$$id<<h2AATj3UBe>FTL_vM2@HSny$n}4nCW{GWsc-}u@If;^LLAfuot (+! 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 literal 18799 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 From 53f3f0e995241c89593d9c94365dcd83375aa350 Mon Sep 17 00:00:00 2001 From: Diana Gromova <72144169+16adianay@users.noreply.github.com> Date: Fri, 30 Oct 2026 16:07:26 +0400 Subject: [PATCH 07/11] Fix: Charts - Stock (#36054) Export: the default one is replaced by a dxDropDownButton in the toolbar with the same menu (Print, PNG, PDF, JPEG, GIF, SVG) Title: the chart title is removed from the chart and added as the first toolbar item (location: 'before', class chart-title) Toolbar icons: arrowleft and arrowright for panning Axis labels: format: 'MMM dd' is removed, and customizeText shows the date at midnight and the time otherwise. This removes duplicate "Apr 15" labels when zoomed in --- .../Stock/Angular/app/app.component.css | 5 ++ .../Stock/Angular/app/app.component.html | 17 +++-- .../Charts/Stock/Angular/app/app.component.ts | 50 +++++++++++-- apps/demos/Demos/Charts/Stock/React/App.tsx | 60 ++++++++++++--- .../demos/Demos/Charts/Stock/React/styles.css | 5 ++ apps/demos/Demos/Charts/Stock/ReactJs/App.js | 66 ++++++++++++++--- .../Demos/Charts/Stock/ReactJs/styles.css | 5 ++ apps/demos/Demos/Charts/Stock/Vue/App.vue | 70 +++++++++++++++--- apps/demos/Demos/Charts/Stock/jQuery/index.js | 62 ++++++++++++---- .../Demos/Charts/Stock/jQuery/styles.css | 5 ++ .../Charts-Stock (fluent-next.blue.light).png | Bin 19535 -> 21063 bytes .../Charts-Stock (fluent.blue.light).png | Bin 18663 -> 20587 bytes .../Charts-Stock (material.blue.light).png | Bin 17910 -> 19084 bytes 13 files changed, 289 insertions(+), 56 deletions(-) diff --git a/apps/demos/Demos/Charts/Stock/Angular/app/app.component.css b/apps/demos/Demos/Charts/Stock/Angular/app/app.component.css index 9f582862473e..9de07318b839 100644 --- a/apps/demos/Demos/Charts/Stock/Angular/app/app.component.css +++ b/apps/demos/Demos/Charts/Stock/Angular/app/app.component.css @@ -1,3 +1,8 @@ +::ng-deep .dx-toolbar-item.chart-title { + font-size: 20px; + font-weight: 600; +} + ::ng-deep #chart { height: 440px; } diff --git a/apps/demos/Demos/Charts/Stock/Angular/app/app.component.html b/apps/demos/Demos/Charts/Stock/Angular/app/app.component.html index 5d981845141f..7be46045ecd4 100644 --- a/apps/demos/Demos/Charts/Stock/Angular/app/app.component.html +++ b/apps/demos/Demos/Charts/Stock/Angular/app/app.component.html @@ -1,4 +1,6 @@ <dx-toolbar> + <dxi-toolbar-item location="before" text="Stock Price" cssClass="chart-title"> + </dxi-toolbar-item> <dxi-toolbar-item location="after" widget="dxButton" @@ -14,13 +16,13 @@ <dxi-toolbar-item location="after" widget="dxButton" - [options]="zoomInButtonOptions" + [options]="zoomOutButtonOptions" > </dxi-toolbar-item> <dxi-toolbar-item location="after" widget="dxButton" - [options]="zoomOutButtonOptions" + [options]="zoomInButtonOptions" > </dxi-toolbar-item> <dxi-toolbar-item @@ -29,8 +31,14 @@ [options]="resetZoomButtonOptions" > </dxi-toolbar-item> + <dxi-toolbar-item + location="after" + widget="dxDropDownButton" + [options]="exportButtonOptions" + > + </dxi-toolbar-item> </dx-toolbar> -<dx-chart id="chart" title="Stock Price" [dataSource]="stockPrices"> +<dx-chart id="chart" [dataSource]="stockPrices" [resizePanesOnZoom]="true"> <dxi-chart-series name="E-Mart" openValueField="o" @@ -67,12 +75,11 @@ [minVisualRangeLength]="minVisualRange" > <dxo-chart-label - format="MMM dd" overlappingBehavior="rotate" [rotationAngle]="30" + [customizeText]="customizeLabelText" ></dxo-chart-label> </dxo-chart-argument-axis> - <dxo-chart-export [enabled]="true"></dxo-chart-export> <dxo-chart-tooltip [enabled]="true" [format]="{ type: 'currency', precision: 2 }" diff --git a/apps/demos/Demos/Charts/Stock/Angular/app/app.component.ts b/apps/demos/Demos/Charts/Stock/Angular/app/app.component.ts index 0ee16d02095f..1f469d101283 100644 --- a/apps/demos/Demos/Charts/Stock/Angular/app/app.component.ts +++ b/apps/demos/Demos/Charts/Stock/Angular/app/app.component.ts @@ -1,11 +1,15 @@ import { bootstrapApplication } from '@angular/platform-browser'; import { - ChangeDetectorRef, Component, enableProdMode, provideZoneChangeDetection, + ChangeDetectorRef, Component, enableProdMode, provideZoneChangeDetection, ViewChild, } from '@angular/core'; -import { DxChartModule, DxToolbarModule } from 'devextreme-angular'; +import { + DxChartComponent, DxChartModule, DxDropDownButtonModule, DxToolbarModule, +} from 'devextreme-angular'; import type { DxChartTypes } from 'devextreme-angular/ui/chart'; import type { DxButtonTypes } from 'devextreme-angular/ui/button'; +import type { DxDropDownButtonTypes } from 'devextreme-angular/ui/drop-down-button'; import type { VisualRange } from 'devextreme-angular/common/charts'; +import { formatDate } from 'devextreme/localization'; import { StockPrice, Service } from './app.service'; if (!/localhost/.test(document.location.host)) { @@ -18,6 +22,12 @@ const zoomFactor = 0.75; const minVisualRangeLength = { days: 3 }; const minVisibleSpanMs = minVisualRangeLength.days * dayMs; +const exportFormats = ['PNG', 'PDF', 'JPEG', 'GIF', 'SVG'] as const; +const exportItems = [ + { text: 'Print' }, + ...exportFormats.map((format) => ({ text: `${format} file`, format })), +]; + function clamp(value: number, min: number, max: number): number { return Math.min(Math.max(value, min), max); } @@ -29,10 +39,13 @@ function clamp(value: number, min: number, max: number): number { providers: [Service], imports: [ DxChartModule, + DxDropDownButtonModule, DxToolbarModule, ], }) export class AppComponent { + @ViewChild(DxChartComponent, { static: false }) chart: DxChartComponent; + minVisualRange = minVisualRangeLength; stockPrices: StockPrice[]; @@ -52,28 +65,28 @@ export class AppComponent { rangeMax: number; panLeftButtonOptions: DxButtonTypes.Properties = { - icon: 'chevronleft', + icon: 'arrowleft', hint: 'Pan Left', elementAttr: { 'aria-label': 'Pan Left' }, onClick: () => this.pan(-1), }; panRightButtonOptions: DxButtonTypes.Properties = { - icon: 'chevronright', + icon: 'arrowright', hint: 'Pan Right', elementAttr: { 'aria-label': 'Pan Right' }, onClick: () => this.pan(1), }; zoomInButtonOptions: DxButtonTypes.Properties = { - icon: 'plus', + icon: 'zoominoutline', hint: 'Zoom In', elementAttr: { 'aria-label': 'Zoom In' }, onClick: () => this.zoom(zoomFactor), }; zoomOutButtonOptions: DxButtonTypes.Properties = { - icon: 'minus', + icon: 'zoomoutoutline', hint: 'Zoom Out', elementAttr: { 'aria-label': 'Zoom Out' }, onClick: () => this.zoom(1 / zoomFactor), @@ -86,6 +99,24 @@ export class AppComponent { onClick: () => this.resetZoom(), }; + exportButtonOptions: DxDropDownButtonTypes.Properties = { + icon: 'export', + hint: 'Exporting/Printing', + elementAttr: { 'aria-label': 'Exporting/Printing' }, + stylingMode: 'text', + useSelectMode: false, + dropDownOptions: { width: 100 }, + displayExpr: 'text', + items: exportItems, + onItemClick: ({ itemData }) => { + if (itemData.format) { + this.chart.instance.exportTo('file', itemData.format); + } else { + this.chart.instance.print(); + } + }, + }; + constructor(service: Service, private changeDetectorRef: ChangeDetectorRef) { this.stockPrices = service.getStockPrices(); this.dataMin = this.stockPrices[0].date.getTime(); @@ -135,6 +166,13 @@ export class AppComponent { this.setRange(this.initialStart.getTime(), this.initialEnd.getTime()); } + customizeLabelText({ value }: { value?: Date | number | string }) { + const date = value as Date; + const isMidnight = date.getHours() === 0 && date.getMinutes() === 0; + + return formatDate(date, isMidnight ? 'MMM dd' : 'shortTime'); + } + customizeTooltip(arg: DxChartTypes.PointInfo) { if (!('openValue' in arg)) { return { text: '' }; diff --git a/apps/demos/Demos/Charts/Stock/React/App.tsx b/apps/demos/Demos/Charts/Stock/React/App.tsx index d4177c67ce32..e5c91b07df2e 100644 --- a/apps/demos/Demos/Charts/Stock/React/App.tsx +++ b/apps/demos/Demos/Charts/Stock/React/App.tsx @@ -1,4 +1,6 @@ -import React, { useCallback, useMemo, useState } from 'react'; +import React, { + useCallback, useMemo, useRef, useState, +} from 'react'; import Chart, { CommonSeriesSettings, Series, @@ -11,13 +13,15 @@ import Chart, { ZoomAndPan, ScrollBar, Legend, - Export, Tooltip, } from 'devextreme-react/chart'; -import type { ChartTypes } from 'devextreme-react/chart'; +import type { ChartRef, ChartTypes } from 'devextreme-react/chart'; import type { VisualRange } from 'devextreme-react/common/charts'; import type { ButtonTypes } from 'devextreme-react/button'; +import type { DropDownButtonTypes } from 'devextreme-react/drop-down-button'; import Toolbar, { Item } from 'devextreme-react/toolbar'; +import { formatDate } from 'devextreme/localization'; +import 'devextreme/ui/drop_down_button'; import { dataSource } from './data.ts'; const dayMs = 24 * 60 * 60 * 1000; @@ -26,6 +30,11 @@ const zoomFactor = 0.75; const minVisualRangeLength = { days: 3 }; const minVisibleSpanMs = minVisualRangeLength.days * dayMs; const tooltipFormat = { type: 'currency', precision: 2 } as const; +const exportFormats = ['PNG', 'PDF', 'JPEG', 'GIF', 'SVG'] as const; +const exportItems = [ + { text: 'Print' }, + ...exportFormats.map((format) => ({ text: `${format} file`, format })), +]; const initialEnd = new Date(1994, 3, 29, 12); @@ -57,6 +66,13 @@ function getNextRange(start: number, end: number): VisualRange { }; } +function customizeLabelText({ value }: { value?: Date | number | string }): string { + const date = value as Date; + const isMidnight = date.getHours() === 0 && date.getMinutes() === 0; + + return formatDate(date, isMidnight ? 'MMM dd' : 'shortTime'); +} + function customizeTooltip(arg: ChartTypes.PointInfo): Record<string, string> { if (!('openValue' in arg)) { return { text: '' }; @@ -73,6 +89,8 @@ function customizeTooltip(arg: ChartTypes.PointInfo): Record<string, string> { } function App() { + const chartRef = useRef<ChartRef>(null); + const [visualRange, setVisualRange] = useState<VisualRange>({ startValue: initialStart, endValue: initialEnd, @@ -104,28 +122,28 @@ function App() { }, []); const panLeftButtonOptions = useMemo<ButtonTypes.Properties>(() => ({ - icon: 'chevronleft', + icon: 'arrowleft', hint: 'Pan Left', elementAttr: { 'aria-label': 'Pan Left' }, onClick: () => pan(-1), }), [pan]); const panRightButtonOptions = useMemo<ButtonTypes.Properties>(() => ({ - icon: 'chevronright', + icon: 'arrowright', hint: 'Pan Right', elementAttr: { 'aria-label': 'Pan Right' }, onClick: () => pan(1), }), [pan]); const zoomInButtonOptions = useMemo<ButtonTypes.Properties>(() => ({ - icon: 'plus', + icon: 'zoominoutline', hint: 'Zoom In', elementAttr: { 'aria-label': 'Zoom In' }, onClick: () => zoom(zoomFactor), }), [zoom]); const zoomOutButtonOptions = useMemo<ButtonTypes.Properties>(() => ({ - icon: 'minus', + icon: 'zoomoutoutline', hint: 'Zoom Out', elementAttr: { 'aria-label': 'Zoom Out' }, onClick: () => zoom(1 / zoomFactor), @@ -138,19 +156,40 @@ function App() { onClick: resetZoom, }), [resetZoom]); + const exportButtonOptions = useMemo<DropDownButtonTypes.Properties>(() => ({ + icon: 'export', + hint: 'Exporting/Printing', + elementAttr: { 'aria-label': 'Exporting/Printing' }, + stylingMode: 'text', + useSelectMode: false, + dropDownOptions: { width: 100 }, + displayExpr: 'text', + items: exportItems, + onItemClick: ({ itemData }) => { + if (itemData.format) { + chartRef.current?.instance().exportTo('file', itemData.format); + } else { + chartRef.current?.instance().print(); + } + }, + }), []); + return ( <> <Toolbar> + <Item location="before" text="Stock Price" cssClass="chart-title" /> <Item location="after" widget="dxButton" options={panLeftButtonOptions} /> <Item location="after" widget="dxButton" options={panRightButtonOptions} /> - <Item location="after" widget="dxButton" options={zoomInButtonOptions} /> <Item location="after" widget="dxButton" options={zoomOutButtonOptions} /> + <Item location="after" widget="dxButton" options={zoomInButtonOptions} /> <Item location="after" widget="dxButton" options={resetZoomButtonOptions} /> + <Item location="after" widget="dxDropDownButton" options={exportButtonOptions} /> </Toolbar> <Chart id="chart" - title="Stock Price" + ref={chartRef} dataSource={dataSource} + resizePanesOnZoom={true} > <CommonSeriesSettings argumentField="date" type="stock" /> <Series @@ -175,9 +214,9 @@ function App() { minVisualRangeLength={minVisualRangeLength} > <Label - format="MMM dd" overlappingBehavior="rotate" rotationAngle={30} + customizeText={customizeLabelText} /> </ArgumentAxis> <ValueAxis tickInterval={1} position="right"> @@ -186,7 +225,6 @@ function App() { <Format precision={0} type="currency" /> </Label> </ValueAxis> - <Export enabled={true} /> <Tooltip enabled={true} format={tooltipFormat} diff --git a/apps/demos/Demos/Charts/Stock/React/styles.css b/apps/demos/Demos/Charts/Stock/React/styles.css index 27f67428a542..831c97c1093a 100644 --- a/apps/demos/Demos/Charts/Stock/React/styles.css +++ b/apps/demos/Demos/Charts/Stock/React/styles.css @@ -1,3 +1,8 @@ +.dx-toolbar-item.chart-title { + font-size: 20px; + font-weight: 600; +} + #chart { height: 440px; } diff --git a/apps/demos/Demos/Charts/Stock/ReactJs/App.js b/apps/demos/Demos/Charts/Stock/ReactJs/App.js index 4cb975ca27aa..eaf11fb06ce0 100644 --- a/apps/demos/Demos/Charts/Stock/ReactJs/App.js +++ b/apps/demos/Demos/Charts/Stock/ReactJs/App.js @@ -1,4 +1,6 @@ -import React, { useCallback, useMemo, useState } from 'react'; +import React, { + useCallback, useMemo, useRef, useState, +} from 'react'; import Chart, { CommonSeriesSettings, Series, @@ -11,10 +13,11 @@ import Chart, { ZoomAndPan, ScrollBar, Legend, - Export, Tooltip, } from 'devextreme-react/chart'; import Toolbar, { Item } from 'devextreme-react/toolbar'; +import { formatDate } from 'devextreme/localization'; +import 'devextreme/ui/drop_down_button'; import { dataSource } from './data.js'; const dayMs = 24 * 60 * 60 * 1000; @@ -23,6 +26,11 @@ const zoomFactor = 0.75; const minVisualRangeLength = { days: 3 }; const minVisibleSpanMs = minVisualRangeLength.days * dayMs; const tooltipFormat = { type: 'currency', precision: 2 }; +const exportFormats = ['PNG', 'PDF', 'JPEG', 'GIF', 'SVG']; +const exportItems = [ + { text: 'Print' }, + ...exportFormats.map((format) => ({ text: `${format} file`, format })), +]; const initialEnd = new Date(1994, 3, 29, 12); const dataMin = dataSource[0].date.getTime(); const dataMax = dataSource[dataSource.length - 1].date.getTime(); @@ -47,6 +55,11 @@ function getNextRange(start, end) { endValue: new Date(newStart + span), }; } +function customizeLabelText({ value }) { + const date = value; + const isMidnight = date.getHours() === 0 && date.getMinutes() === 0; + return formatDate(date, isMidnight ? 'MMM dd' : 'shortTime'); +} function customizeTooltip(arg) { if (!('openValue' in arg)) { return { text: '' }; @@ -61,6 +74,7 @@ function customizeTooltip(arg) { }; } function App() { + const chartRef = useRef(null); const [visualRange, setVisualRange] = useState({ startValue: initialStart, endValue: initialEnd, @@ -88,7 +102,7 @@ function App() { }, []); const panLeftButtonOptions = useMemo( () => ({ - icon: 'chevronleft', + icon: 'arrowleft', hint: 'Pan Left', elementAttr: { 'aria-label': 'Pan Left' }, onClick: () => pan(-1), @@ -97,7 +111,7 @@ function App() { ); const panRightButtonOptions = useMemo( () => ({ - icon: 'chevronright', + icon: 'arrowright', hint: 'Pan Right', elementAttr: { 'aria-label': 'Pan Right' }, onClick: () => pan(1), @@ -106,7 +120,7 @@ function App() { ); const zoomInButtonOptions = useMemo( () => ({ - icon: 'plus', + icon: 'zoominoutline', hint: 'Zoom In', elementAttr: { 'aria-label': 'Zoom In' }, onClick: () => zoom(zoomFactor), @@ -115,7 +129,7 @@ function App() { ); const zoomOutButtonOptions = useMemo( () => ({ - icon: 'minus', + icon: 'zoomoutoutline', hint: 'Zoom Out', elementAttr: { 'aria-label': 'Zoom Out' }, onClick: () => zoom(1 / zoomFactor), @@ -131,9 +145,34 @@ function App() { }), [resetZoom], ); + const exportButtonOptions = useMemo( + () => ({ + icon: 'export', + hint: 'Exporting/Printing', + elementAttr: { 'aria-label': 'Exporting/Printing' }, + stylingMode: 'text', + useSelectMode: false, + dropDownOptions: { width: 100 }, + displayExpr: 'text', + items: exportItems, + onItemClick: ({ itemData }) => { + if (itemData.format) { + chartRef.current?.instance().exportTo('file', itemData.format); + } else { + chartRef.current?.instance().print(); + } + }, + }), + [], + ); return ( <> <Toolbar> + <Item + location="before" + text="Stock Price" + cssClass="chart-title" + /> <Item location="after" widget="dxButton" @@ -147,23 +186,29 @@ function App() { <Item location="after" widget="dxButton" - options={zoomInButtonOptions} + options={zoomOutButtonOptions} /> <Item location="after" widget="dxButton" - options={zoomOutButtonOptions} + options={zoomInButtonOptions} /> <Item location="after" widget="dxButton" options={resetZoomButtonOptions} /> + <Item + location="after" + widget="dxDropDownButton" + options={exportButtonOptions} + /> </Toolbar> <Chart id="chart" - title="Stock Price" + ref={chartRef} dataSource={dataSource} + resizePanesOnZoom={true} > <CommonSeriesSettings argumentField="date" @@ -197,9 +242,9 @@ function App() { minVisualRangeLength={minVisualRangeLength} > <Label - format="MMM dd" overlappingBehavior="rotate" rotationAngle={30} + customizeText={customizeLabelText} /> </ArgumentAxis> <ValueAxis @@ -214,7 +259,6 @@ function App() { /> </Label> </ValueAxis> - <Export enabled={true} /> <Tooltip enabled={true} format={tooltipFormat} diff --git a/apps/demos/Demos/Charts/Stock/ReactJs/styles.css b/apps/demos/Demos/Charts/Stock/ReactJs/styles.css index 27f67428a542..831c97c1093a 100644 --- a/apps/demos/Demos/Charts/Stock/ReactJs/styles.css +++ b/apps/demos/Demos/Charts/Stock/ReactJs/styles.css @@ -1,3 +1,8 @@ +.dx-toolbar-item.chart-title { + font-size: 20px; + font-weight: 600; +} + #chart { height: 440px; } diff --git a/apps/demos/Demos/Charts/Stock/Vue/App.vue b/apps/demos/Demos/Charts/Stock/Vue/App.vue index cbc0707bedb4..e76510b19635 100644 --- a/apps/demos/Demos/Charts/Stock/Vue/App.vue +++ b/apps/demos/Demos/Charts/Stock/Vue/App.vue @@ -1,5 +1,10 @@ <template> <DxToolbar> + <DxItem + location="before" + text="Stock Price" + css-class="chart-title" + /> <DxItem :options="panLeftButtonOptions" location="after" @@ -11,12 +16,12 @@ widget="dxButton" /> <DxItem - :options="zoomInButtonOptions" + :options="zoomOutButtonOptions" location="after" widget="dxButton" /> <DxItem - :options="zoomOutButtonOptions" + :options="zoomInButtonOptions" location="after" widget="dxButton" /> @@ -25,11 +30,17 @@ location="after" widget="dxButton" /> + <DxItem + :options="exportButtonOptions" + location="after" + widget="dxDropDownButton" + /> </DxToolbar> <DxChart id="chart" + ref="chart" :data-source="dataSource" - title="Stock Price" + :resize-panes-on-zoom="true" > <DxCommonSeriesSettings argument-field="date" @@ -64,7 +75,7 @@ /> <DxLabel :rotation-angle="30" - format="MMM dd" + :customize-text="customizeLabelText" overlapping-behavior="rotate" /> </DxArgumentAxis> @@ -80,7 +91,6 @@ /> </DxLabel> </DxValueAxis> - <DxExport :enabled="true"/> <DxTooltip :enabled="true" :format="{ type: 'currency', precision: 2 }" @@ -104,12 +114,14 @@ import DxChart, { DxZoomAndPan, DxScrollBar, DxLegend, - DxExport, DxTooltip, type DxChartTypes, } from 'devextreme-vue/chart'; import type { DxButtonTypes } from 'devextreme-vue/button'; +import type { DxDropDownButtonTypes } from 'devextreme-vue/drop-down-button'; import DxToolbar, { DxItem } from 'devextreme-vue/toolbar'; +import { formatDate } from 'devextreme/localization'; +import 'devextreme/ui/drop_down_button'; import { dataSource } from './data.ts'; const dayMs = 24 * 60 * 60 * 1000; @@ -126,6 +138,14 @@ const rangeMin = dataMin - dayMs / 2; const rangeMax = dataMax + dayMs / 2; const initialStart = new Date(rangeMin); +const exportFormats = ['PNG', 'PDF', 'JPEG', 'GIF', 'SVG'] as const; +const exportItems = [ + { text: 'Print' }, + ...exportFormats.map((format) => ({ text: `${format} file`, format })), +]; + +const chart = ref(); + const startValue = ref(initialStart); const endValue = ref(initialEnd); @@ -163,28 +183,28 @@ const resetZoom = () => { }; const panLeftButtonOptions: DxButtonTypes.Properties = { - icon: 'chevronleft', + icon: 'arrowleft', hint: 'Pan Left', elementAttr: { 'aria-label': 'Pan Left' }, onClick: () => pan(-1), }; const panRightButtonOptions: DxButtonTypes.Properties = { - icon: 'chevronright', + icon: 'arrowright', hint: 'Pan Right', elementAttr: { 'aria-label': 'Pan Right' }, onClick: () => pan(1), }; const zoomInButtonOptions: DxButtonTypes.Properties = { - icon: 'plus', + icon: 'zoominoutline', hint: 'Zoom In', elementAttr: { 'aria-label': 'Zoom In' }, onClick: () => zoom(zoomFactor), }; const zoomOutButtonOptions: DxButtonTypes.Properties = { - icon: 'minus', + icon: 'zoomoutoutline', hint: 'Zoom Out', elementAttr: { 'aria-label': 'Zoom Out' }, onClick: () => zoom(1 / zoomFactor), @@ -197,6 +217,31 @@ const resetZoomButtonOptions: DxButtonTypes.Properties = { onClick: resetZoom, }; +const exportButtonOptions: DxDropDownButtonTypes.Properties = { + icon: 'export', + hint: 'Exporting/Printing', + elementAttr: { 'aria-label': 'Exporting/Printing' }, + stylingMode: 'text', + useSelectMode: false, + dropDownOptions: { width: 100 }, + displayExpr: 'text', + items: exportItems, + onItemClick: ({ itemData }) => { + if (itemData.format) { + chart.value.instance.exportTo('file', itemData.format); + } else { + chart.value.instance.print(); + } + }, +}; + +const customizeLabelText = ({ value }: { value?: Date | number | string }) => { + const date = value as Date; + const isMidnight = date.getHours() === 0 && date.getMinutes() === 0; + + return formatDate(date, isMidnight ? 'MMM dd' : 'shortTime'); +}; + const customizeTooltip = (pointInfo: DxChartTypes.PointInfo) => { if (!('openValue' in pointInfo)) { return { text: '' }; @@ -213,6 +258,11 @@ const customizeTooltip = (pointInfo: DxChartTypes.PointInfo) => { }; </script> <style> +.dx-toolbar-item.chart-title { + font-size: 20px; + font-weight: 600; +} + #chart { height: 440px; } diff --git a/apps/demos/Demos/Charts/Stock/jQuery/index.js b/apps/demos/Demos/Charts/Stock/jQuery/index.js index 421a9c7b8a93..67463eeb421a 100644 --- a/apps/demos/Demos/Charts/Stock/jQuery/index.js +++ b/apps/demos/Demos/Charts/Stock/jQuery/index.js @@ -16,8 +16,8 @@ $(() => { const initialStart = new Date(rangeMin); const chart = $('#chart').dxChart({ - title: 'Stock Price', dataSource: data, + resizePanesOnZoom: true, commonSeriesSettings: { argumentField: 'date', type: 'stock' }, series: [{ name: 'E-Mart', @@ -44,12 +44,14 @@ $(() => { minVisualRangeLength, visualRange: { startValue: initialStart, endValue: initialEnd }, label: { - format: 'MMM dd', overlappingBehavior: 'rotate', rotationAngle: 30, + customizeText({ value }) { + const isMidnight = value.getHours() === 0 && value.getMinutes() === 0; + return DevExpress.localization.formatDate(value, isMidnight ? 'MMM dd' : 'shortTime'); + }, }, }, - export: { enabled: true }, tooltip: { enabled: true, location: 'edge', @@ -106,13 +108,26 @@ $(() => { setRange(initialStart.getTime(), initialEnd.getTime()); } + const exportItems = [ + { text: 'Print' }, + ...['PNG', 'PDF', 'JPEG', 'GIF', 'SVG'].map((format) => ({ + text: `${format} file`, + format, + })), + ]; + $('#toolbar').dxToolbar({ items: [ + { + location: 'before', + text: 'Stock Price', + cssClass: 'chart-title', + }, { location: 'after', widget: 'dxButton', options: { - icon: 'chevronleft', + icon: 'arrowleft', hint: 'Pan Left', elementAttr: { 'aria-label': 'Pan Left' }, onClick: () => pan(-1), @@ -122,7 +137,7 @@ $(() => { location: 'after', widget: 'dxButton', options: { - icon: 'chevronright', + icon: 'arrowright', hint: 'Pan Right', elementAttr: { 'aria-label': 'Pan Right' }, onClick: () => pan(1), @@ -132,20 +147,20 @@ $(() => { location: 'after', widget: 'dxButton', options: { - icon: 'plus', - hint: 'Zoom In', - elementAttr: { 'aria-label': 'Zoom In' }, - onClick: () => zoom(zoomFactor), + icon: 'zoomoutoutline', + hint: 'Zoom Out', + elementAttr: { 'aria-label': 'Zoom Out' }, + onClick: () => zoom(1 / zoomFactor), }, }, { location: 'after', widget: 'dxButton', options: { - icon: 'minus', - hint: 'Zoom Out', - elementAttr: { 'aria-label': 'Zoom Out' }, - onClick: () => zoom(1 / zoomFactor), + icon: 'zoominoutline', + hint: 'Zoom In', + elementAttr: { 'aria-label': 'Zoom In' }, + onClick: () => zoom(zoomFactor), }, }, { @@ -158,6 +173,27 @@ $(() => { onClick: resetZoom, }, }, + { + location: 'after', + widget: 'dxDropDownButton', + options: { + icon: 'export', + hint: 'Exporting/Printing', + elementAttr: { 'aria-label': 'Exporting/Printing' }, + stylingMode: 'text', + useSelectMode: false, + dropDownOptions: { width: 100 }, + displayExpr: 'text', + items: exportItems, + onItemClick: ({ itemData }) => { + if (itemData.format) { + chart.exportTo('file', itemData.format); + } else { + chart.print(); + } + }, + }, + }, ], }); }); diff --git a/apps/demos/Demos/Charts/Stock/jQuery/styles.css b/apps/demos/Demos/Charts/Stock/jQuery/styles.css index 27f67428a542..09393763ec8a 100644 --- a/apps/demos/Demos/Charts/Stock/jQuery/styles.css +++ b/apps/demos/Demos/Charts/Stock/jQuery/styles.css @@ -1,3 +1,8 @@ +#toolbar .chart-title { + font-size: 20px; + font-weight: 600; +} + #chart { height: 440px; } diff --git a/apps/demos/testing/etalons/Charts-Stock (fluent-next.blue.light).png b/apps/demos/testing/etalons/Charts-Stock (fluent-next.blue.light).png index 8c3ea381e13491b240c96549a60856e796fb4472..0d0d2dd69607db8fdf6be53c4f87bc976ff8ca50 100644 GIT binary patch literal 21063 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 JpT2nezW_inc>4eV literal 19535 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 G<o^PkJ_gGG diff --git a/apps/demos/testing/etalons/Charts-Stock (fluent.blue.light).png b/apps/demos/testing/etalons/Charts-Stock (fluent.blue.light).png index 56180b8ce7b041624fce3d057bfb161ad1bb1629..fec72168b7b6f21152dbcd14ddf698f0c55c0520 100644 GIT binary patch literal 20587 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 literal 18663 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 a)~0;o)uoPKPk^*b29i>c%zXUv{r>}v6$xtq diff --git a/apps/demos/testing/etalons/Charts-Stock (material.blue.light).png b/apps/demos/testing/etalons/Charts-Stock (material.blue.light).png index 19d7e252206c07f7d76a18dd8ed4b0bd079bc646..733345a77084825377af0d104942b510dbea4f21 100644 GIT binary patch literal 19084 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 literal 17910 zcmeIY2UJt}_BI?*M37>aj*JAPNRt)_MHqolm1=;1NE1+6=v4-gaikd_^fq)ulU}4K z3WRQGDj*<`P^5-l!g~^&d*{CQ&i~%`UF%!lx4w1P(nE62$*=6apJzXNpY!~#jv50U zD;)>~Vt}dttOo*}oCE$}J98R1Q^u?=4+077!hXJO;C<rzTZ>=Kwu2}4OQUpKb*ovU ze#vEjk+d8l|Net_3yqLV(oPorbN*I=LHhTD&%mSSem%Qh#?U~2SjKedA|mn4e9nh? zjy@%Kn7$$mFV0`WsV8${C?woKDcJ3Pcscj)_1nJ}zJDwGbGf^co4aYyx1%VNH1sP? zQlJ7&iL(ld2ZrL&HVh^IfhE_UA^$;1c$}x4w_o^)avnE$N1c2kr|?A#<%IrKZpw{$ z!pf8zwGsbc9bo>}<yP)#)c#M$3k~SZY3{^zp3eUJneLos4a|_G1n0ow7IPHcauqXq zYq;JxmHIT=c-u6M2V8=4r8fs`pKr#q($>paolfJt?!-J`YMR$x9W!8tu*tp0UA9fJ zlzm3hhOxZ?TM;AOR_w!m8>=Ttxkf3LSOp_dP6p<Pwo7x%HWI_q_X|&-F&wTB@J*9M zub)qg=Pi!p2K$Lnmbmp278GxUX|2`Ez6blHi~1tK=IHV6L8K9;r|f5@7`MTEMS(j0 z8KEbYaC-xFT%3?|8E(1UNSC>&v`j(hvm?cGmAYDcm`W24Ri77Id*VLtnqnn~?MsJf zLnKX#rCKk@pQGDj6Rb2EW<if#a6=mz7l6mmAMeAn&=K<<&n|s0rkLOh4ez0$Nik!# z|MRUj@*we&!=G-@B|AD+qA$v_F^K0Cq>8d@?<hfRp_ZeGQxDY7?<kpIVJEjOAeJ)8 zWf$$id<<h2AATj3UBe>FTL_vM2@HSny$n}4nCW{GWsc-}u@If;^LLAfuot (+! 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 From 13cdbd206c2f42111aad5ec89bd124b18deaeac3 Mon Sep 17 00:00:00 2001 From: Diana Gromova <72144169+16adianay@users.noreply.github.com> Date: Fri, 30 Oct 2026 17:13:46 +0400 Subject: [PATCH 08/11] Update description.md (#36067) --- apps/demos/Demos/Charts/Stock/description.md | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/apps/demos/Demos/Charts/Stock/description.md b/apps/demos/Demos/Charts/Stock/description.md index 2fa78141aab0..c4d6d9706a27 100644 --- a/apps/demos/Demos/Charts/Stock/description.md +++ b/apps/demos/Demos/Charts/Stock/description.md @@ -7,8 +7,5 @@ Open and close prices are displayed as left and right tick marks. To specify the To reflect changes on the market, the Chart component compares the price of every point with the price of the previous point. The Chart paints the points whose price has decreased in a specific [reduction color](/Documentation/ApiReference/UI_Components/dxChart/Configuration/series/reduction/#color). To switch between high, low, open or close prices of points as sources for data comparison, use the [series](/Documentation/ApiReference/UI_Components/dxChart/Configuration/series/).[reduction](/Documentation/ApiReference/UI_Components/dxChart/Configuration/series/reduction/).[level](/Documentation/ApiReference/UI_Components/dxChart/Configuration/series/reduction/#level) property. -Additionally, use the [tooltip](/Documentation/ApiReference/UI_Components/dxChart/Configuration/tooltip/).[customizeTooltip](/Documentation/ApiReference/UI_Components/dxChart/Configuration/tooltip/#customizeTooltip) function to customize a tooltip that shows prices. +Additionally, use the [tooltip](/Documentation/ApiReference/UI_Components/dxChart/Configuration/tooltip/).[contentTemplate](/Documentation/ApiReference/UI_Components/dxChart/Configuration/tooltip/#contentTemplate) property to declare a custom tooltip that shows prices. You can also enable the [argumentAxis](/Documentation/ApiReference/UI_Components/dxChart/Configuration/argumentAxis/).[workdaysOnly](/Documentation/ApiReference/UI_Components/dxChart/Configuration/argumentAxis/#workdaysOnly) property to display only the work days on the argument axis. -Use the [zoomAndPan](/Documentation/ApiReference/UI_Components/dxChart/Configuration/zoomAndPan/) object to enable zooming and panning along the argument axis. Since this demo enables [dragToZoom](/Documentation/ApiReference/UI_Components/dxChart/Configuration/zoomAndPan/#dragToZoom), drag across the chart to zoom in. Hold **Shift** (the default [panKey](/Documentation/ApiReference/UI_Components/dxChart/Configuration/zoomAndPan/#panKey)) while dragging to pan. You can also zoom with the mouse wheel or use the [scrollBar](/Documentation/ApiReference/UI_Components/dxChart/Configuration/scrollBar/).[visible](/Documentation/ApiReference/UI_Components/dxChart/Configuration/scrollBar/#visible) property to display a scroll bar. Set its [position](/Documentation/ApiReference/UI_Components/dxChart/Configuration/scrollBar/#position) to **bottom** to place it below the chart. - -The [argumentAxis](/Documentation/ApiReference/UI_Components/dxChart/Configuration/argumentAxis/).[visualRange](/Documentation/ApiReference/UI_Components/dxChart/Configuration/argumentAxis/visualRange/) property specifies the visible date range. In this demo, toolbar buttons update this range to pan left or right, zoom in or out, and reset the chart to its initial range. From b90fd8b251761150218336f4b16c9e5b8e2ff8da Mon Sep 17 00:00:00 2001 From: Diana Gromova <72144169+16adianay@users.noreply.github.com> Date: Tue, 3 Nov 2026 12:10:48 +0400 Subject: [PATCH 09/11] Remove elementAttr from DDB (#36091) --- apps/demos/Demos/Charts/Stock/Angular/app/app.component.ts | 1 - apps/demos/Demos/Charts/Stock/React/App.tsx | 1 - apps/demos/Demos/Charts/Stock/ReactJs/App.js | 1 - apps/demos/Demos/Charts/Stock/Vue/App.vue | 1 - apps/demos/Demos/Charts/Stock/jQuery/index.js | 1 - 5 files changed, 5 deletions(-) diff --git a/apps/demos/Demos/Charts/Stock/Angular/app/app.component.ts b/apps/demos/Demos/Charts/Stock/Angular/app/app.component.ts index 1f469d101283..b9c9dcdeac19 100644 --- a/apps/demos/Demos/Charts/Stock/Angular/app/app.component.ts +++ b/apps/demos/Demos/Charts/Stock/Angular/app/app.component.ts @@ -102,7 +102,6 @@ export class AppComponent { exportButtonOptions: DxDropDownButtonTypes.Properties = { icon: 'export', hint: 'Exporting/Printing', - elementAttr: { 'aria-label': 'Exporting/Printing' }, stylingMode: 'text', useSelectMode: false, dropDownOptions: { width: 100 }, diff --git a/apps/demos/Demos/Charts/Stock/React/App.tsx b/apps/demos/Demos/Charts/Stock/React/App.tsx index e5c91b07df2e..df616bc40ac2 100644 --- a/apps/demos/Demos/Charts/Stock/React/App.tsx +++ b/apps/demos/Demos/Charts/Stock/React/App.tsx @@ -159,7 +159,6 @@ function App() { const exportButtonOptions = useMemo<DropDownButtonTypes.Properties>(() => ({ icon: 'export', hint: 'Exporting/Printing', - elementAttr: { 'aria-label': 'Exporting/Printing' }, stylingMode: 'text', useSelectMode: false, dropDownOptions: { width: 100 }, diff --git a/apps/demos/Demos/Charts/Stock/ReactJs/App.js b/apps/demos/Demos/Charts/Stock/ReactJs/App.js index eaf11fb06ce0..c0623d74eda9 100644 --- a/apps/demos/Demos/Charts/Stock/ReactJs/App.js +++ b/apps/demos/Demos/Charts/Stock/ReactJs/App.js @@ -149,7 +149,6 @@ function App() { () => ({ icon: 'export', hint: 'Exporting/Printing', - elementAttr: { 'aria-label': 'Exporting/Printing' }, stylingMode: 'text', useSelectMode: false, dropDownOptions: { width: 100 }, diff --git a/apps/demos/Demos/Charts/Stock/Vue/App.vue b/apps/demos/Demos/Charts/Stock/Vue/App.vue index e76510b19635..027460a6649c 100644 --- a/apps/demos/Demos/Charts/Stock/Vue/App.vue +++ b/apps/demos/Demos/Charts/Stock/Vue/App.vue @@ -220,7 +220,6 @@ const resetZoomButtonOptions: DxButtonTypes.Properties = { const exportButtonOptions: DxDropDownButtonTypes.Properties = { icon: 'export', hint: 'Exporting/Printing', - elementAttr: { 'aria-label': 'Exporting/Printing' }, stylingMode: 'text', useSelectMode: false, dropDownOptions: { width: 100 }, diff --git a/apps/demos/Demos/Charts/Stock/jQuery/index.js b/apps/demos/Demos/Charts/Stock/jQuery/index.js index 67463eeb421a..75bc0cb6b441 100644 --- a/apps/demos/Demos/Charts/Stock/jQuery/index.js +++ b/apps/demos/Demos/Charts/Stock/jQuery/index.js @@ -179,7 +179,6 @@ $(() => { options: { icon: 'export', hint: 'Exporting/Printing', - elementAttr: { 'aria-label': 'Exporting/Printing' }, stylingMode: 'text', useSelectMode: false, dropDownOptions: { width: 100 }, From 93a362a7280c146d272a07984c2ad84d9e658897 Mon Sep 17 00:00:00 2001 From: Diana Gromova <72144169+16adianay@users.noreply.github.com> Date: Tue, 3 Nov 2026 14:01:49 +0400 Subject: [PATCH 10/11] Update App.vue (#36093) --- apps/demos/Demos/Charts/Stock/Vue/App.vue | 23 +++++++++++------------ 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/apps/demos/Demos/Charts/Stock/Vue/App.vue b/apps/demos/Demos/Charts/Stock/Vue/App.vue index 027460a6649c..33e556044093 100644 --- a/apps/demos/Demos/Charts/Stock/Vue/App.vue +++ b/apps/demos/Demos/Charts/Stock/Vue/App.vue @@ -68,11 +68,10 @@ vertical-alignment="bottom" horizontal-alignment="center" /> - <DxArgumentAxis :min-visual-range-length="minVisualRangeLength"> - <DxVisualRange - v-model:start-value="startValue" - v-model:end-value="endValue" - /> + <DxArgumentAxis + v-model:visual-range="visualRange" + :min-visual-range-length="minVisualRangeLength" + > <DxLabel :rotation-angle="30" :customize-text="customizeLabelText" @@ -106,7 +105,6 @@ import DxChart, { DxSeries, DxReduction, DxArgumentAxis, - DxVisualRange, DxLabel, DxFormat, DxValueAxis, @@ -146,14 +144,13 @@ const exportItems = [ const chart = ref(); -const startValue = ref(initialStart); -const endValue = ref(initialEnd); +const visualRange = ref({ startValue: initialStart, endValue: initialEnd }); const clamp = (value: number, min: number, max: number) => Math.min(Math.max(value, min), max); const getRange = () => ({ - start: startValue.value.getTime(), - end: endValue.value.getTime(), + start: new Date(visualRange.value.startValue).getTime(), + end: new Date(visualRange.value.endValue).getTime(), }); const setRange = (start: number, end: number) => { @@ -161,8 +158,10 @@ const setRange = (start: number, end: number) => { const center = (start + end) / 2; const newStart = clamp(center - span / 2, rangeMin, rangeMax - span); - startValue.value = new Date(newStart); - endValue.value = new Date(newStart + span); + visualRange.value = { + startValue: new Date(newStart), + endValue: new Date(newStart + span), + }; }; const pan = (direction: number) => { From 5e3ec8dbda5d25692688e1689b22a6ec0a751306 Mon Sep 17 00:00:00 2001 From: Diana Gromova <72144169+16adianay@users.noreply.github.com> Date: Tue, 3 Nov 2026 14:26:59 +0400 Subject: [PATCH 11/11] Remove GIF (#36094) --- apps/demos/Demos/Charts/Stock/Angular/app/app.component.ts | 2 +- apps/demos/Demos/Charts/Stock/React/App.tsx | 2 +- apps/demos/Demos/Charts/Stock/ReactJs/App.js | 2 +- apps/demos/Demos/Charts/Stock/Vue/App.vue | 2 +- apps/demos/Demos/Charts/Stock/jQuery/index.js | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/apps/demos/Demos/Charts/Stock/Angular/app/app.component.ts b/apps/demos/Demos/Charts/Stock/Angular/app/app.component.ts index b9c9dcdeac19..5d7d1fa9506b 100644 --- a/apps/demos/Demos/Charts/Stock/Angular/app/app.component.ts +++ b/apps/demos/Demos/Charts/Stock/Angular/app/app.component.ts @@ -22,7 +22,7 @@ const zoomFactor = 0.75; const minVisualRangeLength = { days: 3 }; const minVisibleSpanMs = minVisualRangeLength.days * dayMs; -const exportFormats = ['PNG', 'PDF', 'JPEG', 'GIF', 'SVG'] as const; +const exportFormats = ['PNG', 'PDF', 'JPEG', 'SVG'] as const; const exportItems = [ { text: 'Print' }, ...exportFormats.map((format) => ({ text: `${format} file`, format })), diff --git a/apps/demos/Demos/Charts/Stock/React/App.tsx b/apps/demos/Demos/Charts/Stock/React/App.tsx index df616bc40ac2..427d7be32764 100644 --- a/apps/demos/Demos/Charts/Stock/React/App.tsx +++ b/apps/demos/Demos/Charts/Stock/React/App.tsx @@ -30,7 +30,7 @@ const zoomFactor = 0.75; const minVisualRangeLength = { days: 3 }; const minVisibleSpanMs = minVisualRangeLength.days * dayMs; const tooltipFormat = { type: 'currency', precision: 2 } as const; -const exportFormats = ['PNG', 'PDF', 'JPEG', 'GIF', 'SVG'] as const; +const exportFormats = ['PNG', 'PDF', 'JPEG', 'SVG'] as const; const exportItems = [ { text: 'Print' }, ...exportFormats.map((format) => ({ text: `${format} file`, format })), diff --git a/apps/demos/Demos/Charts/Stock/ReactJs/App.js b/apps/demos/Demos/Charts/Stock/ReactJs/App.js index c0623d74eda9..ec0c8a72ed92 100644 --- a/apps/demos/Demos/Charts/Stock/ReactJs/App.js +++ b/apps/demos/Demos/Charts/Stock/ReactJs/App.js @@ -26,7 +26,7 @@ const zoomFactor = 0.75; const minVisualRangeLength = { days: 3 }; const minVisibleSpanMs = minVisualRangeLength.days * dayMs; const tooltipFormat = { type: 'currency', precision: 2 }; -const exportFormats = ['PNG', 'PDF', 'JPEG', 'GIF', 'SVG']; +const exportFormats = ['PNG', 'PDF', 'JPEG', 'SVG']; const exportItems = [ { text: 'Print' }, ...exportFormats.map((format) => ({ text: `${format} file`, format })), diff --git a/apps/demos/Demos/Charts/Stock/Vue/App.vue b/apps/demos/Demos/Charts/Stock/Vue/App.vue index 33e556044093..bc46902c1ace 100644 --- a/apps/demos/Demos/Charts/Stock/Vue/App.vue +++ b/apps/demos/Demos/Charts/Stock/Vue/App.vue @@ -136,7 +136,7 @@ const rangeMin = dataMin - dayMs / 2; const rangeMax = dataMax + dayMs / 2; const initialStart = new Date(rangeMin); -const exportFormats = ['PNG', 'PDF', 'JPEG', 'GIF', 'SVG'] as const; +const exportFormats = ['PNG', 'PDF', 'JPEG', 'SVG'] as const; const exportItems = [ { text: 'Print' }, ...exportFormats.map((format) => ({ text: `${format} file`, format })), diff --git a/apps/demos/Demos/Charts/Stock/jQuery/index.js b/apps/demos/Demos/Charts/Stock/jQuery/index.js index 75bc0cb6b441..7c36abfa026e 100644 --- a/apps/demos/Demos/Charts/Stock/jQuery/index.js +++ b/apps/demos/Demos/Charts/Stock/jQuery/index.js @@ -110,7 +110,7 @@ $(() => { const exportItems = [ { text: 'Print' }, - ...['PNG', 'PDF', 'JPEG', 'GIF', 'SVG'].map((format) => ({ + ...['PNG', 'PDF', 'JPEG', 'SVG'].map((format) => ({ text: `${format} file`, format, })),