Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
101 commits
Select commit Hold shift + click to select a range
a9f855e
Toolbar: close menu when a focused item is selected via the enter/spa…
juleari Aug 13, 2025
fd68667
FileUploader: Remove "m" prefix (#30743)
r-farkhutdinov Aug 13, 2025
993a25f
DataGrid(T1278804): bounces to the top on an attempt to scroll down …
wdevfx Aug 13, 2025
6005ab1
Calendar: improve Views and Selection strategies types (#30688)
Zedwag Aug 14, 2025
6d9e607
Make scheduler template doctags consistent (#30753)
alexslavr Aug 14, 2025
53c6152
Remove DOMComponentOptions.bindingOptions (#30745)
mpreyskurantov Aug 14, 2025
c5e5018
Notify: Improve typing (#30685)
marker-dao Aug 14, 2025
cdd7e6e
Scheduler: refactor view model output and sorted Index (#30732)
Ambrozy Aug 14, 2025
72c25c1
LoadPanel: Improve typing (#30761)
marker-dao Aug 14, 2025
490970e
DataGrid: Skip unstable testcafe tests for quick navigation with keyb…
Alyar666 Aug 14, 2025
19fcfe2
Calendar: remove m_ frefix (#30764)
Zedwag Aug 14, 2025
7480fd8
T1280020 - DataGrid - The 'row' parameter in the FocusedRowChanged ev…
Raushen Aug 14, 2025
5ce4f55
DxGantt: fix task progress precision issue after task update (T130362…
AlexKamaev Aug 15, 2025
5c59b4f
Scheduler: Rename observer to scheduler (#30627)
aleksei-semikozov Aug 15, 2025
2633195
FileUploader: no error should be thrown on drag to custom dropZone sp…
Zedwag Aug 15, 2025
efd863e
Scheduler: fix screenshots after view model refactoring (#30788)
Ambrozy Aug 18, 2025
fa590c3
SwatchContainer: Improve typing (#30781)
marker-dao Aug 18, 2025
53b6ccb
Scheduler: remove redundant code (DataSourceProvider and loadedResour…
Ambrozy Aug 18, 2025
729923a
DropDownEditor: Add fieldAddons to .d.ts (#30723)
marker-dao Aug 19, 2025
d850d90
Toast: Improve typing (#30779)
marker-dao Aug 19, 2025
76681c4
Overlays: Remove m_ prefix (#30797)
marker-dao Aug 19, 2025
ba105c5
DropDownEditor: Deprecate fieldTemplate option in .d.ts (#30727)
marker-dao Aug 19, 2025
515f476
fix: Multiple root elements are not supported in React elements (T130…
VasilyStrelyaev Aug 19, 2025
82949c2
Icons: Add ratingfilled, ratingoutline, chatadd, colordismiss icons (…
r-farkhutdinov Aug 19, 2025
7aa3c29
Scheduler: add jest object model (#30820)
Ambrozy Aug 20, 2025
fa2dc3a
Scheduler: remove exceptionDate from appointment settings (#30804)
sjbur Aug 20, 2025
4df0814
fix: mitigate WebUtils side effect impact on DevExtreme components in…
VasilyStrelyaev Aug 20, 2025
bb56e42
CardView: Fix the getSelectedCardsData method when the selected data …
Alyar666 Aug 20, 2025
849ddb6
DataGrid - The filterType property is reset if client state storing c…
Raushen Aug 20, 2025
96894c6
Chat: support emptyViewTemplate option
Zedwag Aug 21, 2025
a3fcede
Chart: Update demo descriptions (#30833)
arman-boyakhchyan Aug 21, 2025
eec8403
DataGrid - Refresh selectedItems on dataSource change when repaintCha…
Tucchhaa Aug 21, 2025
6ad4106
DataGrid: Fix incorrect display of headers and filter row when there …
Alyar666 Aug 21, 2025
0d5e55b
Chart: Add minor fix to Tooltip API demo desc. (#30834)
arman-boyakhchyan Aug 21, 2025
6e1c6c0
Chat - group content and bubble elements should be attached to DOM be…
Zedwag Aug 21, 2025
fd856d7
feat(StateManager): create the first version (#30472)
chaosmirage Aug 21, 2025
8b71075
DropDownEditor: Add fieldAddons option (#30766)
r-farkhutdinov Aug 21, 2025
918d7a7
dxDiagram - fix T1300857 (Distance in `px` is not displayed between s…
romanresh Aug 21, 2025
8378c99
ColorBox: Fix handle border no displaying (T1304808) (#30835)
r-farkhutdinov Aug 21, 2025
a026b50
fix: jQuery event types contain excessive props but lack originalEven…
VasilyStrelyaev Aug 21, 2025
c9acf92
CardView - add test for header filter (#30796)
pomahtri Aug 22, 2025
549551a
Chart: Update demo desc. following feedback (#30849)
arman-boyakhchyan Aug 22, 2025
65b80bf
Scheduler: fix all-day appointment rendered in the next resource (#30…
aleksei-semikozov Aug 22, 2025
264d448
Scheduler: get rid of the old adapters (#30828)
sjbur Aug 22, 2025
facc0ba
Chart: fix visibility algorithm for candlestick points (T1304112) (#3…
anna-shakhova Aug 22, 2025
c1bcb39
DataGrid(T1267471): ColumnChooser doesn't immediately reflect the cha…
wdevfx Aug 22, 2025
b73e7cb
DataGrid - Add warning when trying to set fixed state for child colum…
dmlvr Aug 25, 2025
18f72ac
Pin jquery and @types/jquery via pnpm catalogs (#30777)
mpreyskurantov Aug 25, 2025
7111501
Selection: improve TS typing (#30768)
juleari Aug 25, 2025
3905f31
Datasource cannot be obtained via destructuring due to the KO integrr…
EugeniyKiyashko Aug 25, 2025
a458c25
AIIntegration: add SmartPaste command (#30811)
pharret31 Aug 25, 2025
7688142
Bump devextreme-internal-tools to 18.0.0 (#30871)
mpreyskurantov Aug 25, 2025
cfbf57f
fix(demos): add `process.env.NODE_ENV` polyfill for framework demos (…
chaosmirage Aug 25, 2025
b5b754a
Selection: remove m_ prefix from file names (#30869)
juleari Aug 26, 2025
6ad39ee
DropDownEditor / fieldAddons .d.ts - Tune up generated code (#30857)
mpreyskurantov Aug 26, 2025
2c9388f
Chart: scrollbar should be limited by a minimum width at high zoom le…
EugeniyKiyashko Aug 26, 2025
c426630
Charts: fix Point type in events (#30757)
anna-shakhova Aug 26, 2025
64c8a76
Scheduler: timezone utils refactoring (#30654)
aleksei-semikozov Aug 26, 2025
f797349
Form: add default ButtonItems for names 'smartPaste', 'reset', 'submi…
EugeniyKiyashko Aug 27, 2025
9aada18
DropDownBox, SelectBox, ColorBox, TagBox: Log fieldTemplate deprecati…
r-farkhutdinov Aug 27, 2025
dfff4a1
Chat: rename emptyViewTemplate field from data to texts
Zedwag Aug 27, 2025
52be080
Form SmartPaste: add smartPaste method to Form (#30878)
anna-shakhova Aug 27, 2025
b90e869
Menu, ContextMenu: update Demos to use custom item types (#30874)
juleari Aug 27, 2025
ee115ee
Icons: add `clipboardPasteSmart` icon to the project (#30899)
EugeniyKiyashko Aug 27, 2025
8528c43
Collection: selectedItem shouldn’t be an empty object by default (#30…
EugeniyKiyashko Aug 27, 2025
5c40ef2
Scheduler: Encapsulate old view model and add collector tests (#30861)
Ambrozy Aug 27, 2025
d72d6ba
TreeView: focus treeview element in selectAllEnabled and items empty …
juleari Aug 27, 2025
b320803
AIIntegration: update SmartPaste prompt (#30900)
pharret31 Aug 27, 2025
c88f058
fix(demos): replace external process.js with window.process (#30902)
chaosmirage Aug 27, 2025
923afd2
Menu: improve types (#30906)
anna-shakhova Aug 27, 2025
15a4cab
Scheduler: Add Eslint rules according to codestyle
sjbur Aug 28, 2025
66da3d8
DataGrid - Summary row displays a partial and thinner highlight borde…
pomahtri Aug 28, 2025
78ee16c
Icons: add clipboardpastesparkle icon to the project (#30905)
EugeniyKiyashko Aug 28, 2025
f2cb051
fix: React Charts regression (#30879) (#30891)
VasilyStrelyaev Aug 28, 2025
54adb38
TreeView: localize selectAll aria-label (T1299342) (#30909)
anna-shakhova Aug 28, 2025
db38538
Form: create .d.ts properties for the Smart Paste (#30884)
pharret31 Aug 28, 2025
fd826c9
DataGrid - Focused cell appearance is applied to non-editable CheckB…
Raushen Aug 28, 2025
8df0c71
Add splitter to main demos page components list (#30921)
GoodDayForSurf Aug 28, 2025
eeb6097
Form Smart Paste: abort previous call on smartPaste triggered (#30919)
anna-shakhova Aug 28, 2025
dc2f6f7
Map: improve types (#30784)
Zedwag Aug 28, 2025
8ff33cf
Form: add indication for Smart Past feature (#30917)
EugeniyKiyashko Aug 28, 2025
71d43b0
Scheduler: Test for grouping css auto width (#30864)
aleksei-semikozov Aug 29, 2025
d8c8f3d
Scheduler: use timezones second parameter in demo
sjbur Aug 29, 2025
6a13e62
Grids - Eslint: Delete empty eslint config for devextreme-scss (#30885)
dmlvr Aug 29, 2025
821be22
Form Smart Paste: implement new Form options (#30918)
pharret31 Aug 29, 2025
a913b90
DataGrid: Fix the focus() method that focuses the interactive element…
Alyar666 Aug 29, 2025
a3dba49
fix(deps): update dependency jspdf to v3.0.2 [security] (#30894)
renovate[bot] Aug 31, 2025
59e205b
chore: add subscription name to the trial panel (#30890) (#30930)
VasilyStrelyaev Sep 1, 2025
b90eecb
Demos: unskip Scheduler tests in fluent & generic themes (#30870)
sjbur Sep 1, 2025
8e0f691
Scheduler: Update Time Zone Support demo desc. (#30954)
arman-boyakhchyan Sep 1, 2025
5ec8179
Form Smart Paste: call onFieldDataChanged on item value update (#30953)
anna-shakhova Sep 1, 2025
8a033a4
Popup: Replace detach with remove on toolbar element (T1305512) (#30963)
marker-dao Sep 1, 2025
da3cede
Form Smart Paste: Handle possible issues in smartPaste method (#30957)
juleari Sep 2, 2025
12c3abc
ColorBox: Update no-color image with colordismiss icon (#30825)
r-farkhutdinov Sep 2, 2025
8e0d4c0
Icons: update clipboardpastesparkle icon in fluent (#30970)
EugeniyKiyashko Sep 2, 2025
c10c816
Scheduler: avoid double date transform out of view model to display d…
Ambrozy Sep 2, 2025
e6e807d
Typescript: use ES6 syntax for inheritance
sjbur Sep 2, 2025
3a16d12
Widget: get rid of using _activeStateUnit, _feedbackHideTimeout, _fee…
pharret31 Sep 3, 2025
2ba41ff
Scheduler: refactoring _activeStateUnit (#30982)
pharret31 Sep 3, 2025
2f4812c
Fix T1292991
Aug 28, 2025
75468a7
Add matrix tests
Sep 3, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
2 changes: 1 addition & 1 deletion .github/CODEOWNERS
Original file line number Diff line number Diff line change
Expand Up @@ -786,7 +786,7 @@
/packages/devextreme/js/ui/load_panel.d.ts @DevExpress/devextreme-editors @DevExpress/devextreme-apireviewers
/packages/devextreme/js/ui/load_panel_types.d.ts @DevExpress/devextreme-editors @DevExpress/devextreme-apireviewers

/packages/devextreme/js/__internal/ui/m_load_panel.ts @DevExpress/devextreme-editors
/packages/devextreme/js/__internal/ui/load_panel.ts @DevExpress/devextreme-editors

/packages/devextreme-scss/scss/widgets/base/_loadPanel.scss @DevExpress/devextreme-editors
/packages/devextreme-scss/scss/widgets/**/loadPanel/** @DevExpress/devextreme-editors
Expand Down
4 changes: 3 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
# See http://help.github.com/ignore-files/ for more about ignoring files.

# tests
__test-artifacts__

# compiled output
npm
dist
Expand All @@ -26,7 +29,6 @@ node_modules
!.vscode/launch.json
!.vscode/extensions.json


# System Files
.DS_Store
Thumbs.db
Expand Down
17 changes: 15 additions & 2 deletions apps/demos/Demos/Charts/Crosshair/description.md
Original file line number Diff line number Diff line change
@@ -1,2 +1,15 @@
In this example, the crosshair pointer is enabled and a custom style is applied to it. The crosshair pointer allows a user to determine the argument and the value of a specific point more precisely.
<!--split-->
The DevExtreme Chart component ships with integrated crosshair support (vertical and horizontal lines centered on a data point). When enabled, the crosshair follows the cursor and snaps to the nearest series point. To configure crosshair settings, specify the [crosshair](/Documentation/ApiReference/UI_Components/dxChart/Configuration/crosshair/) object.
<!--split-->

This demo configures the following **crosshair** properties:

- [color](/Documentation/ApiReference/UI_Components/dxChart/Configuration/crosshair/#color)
Specifies line color.
- [width](/Documentation/ApiReference/UI_Components/dxChart/Configuration/crosshair/#width)
Configures line width.
- [dashStyle](/Documentation/ApiReference/UI_Components/dxChart/Configuration/crosshair/#dashStyle)
Specifies line style.
- [label](/Documentation/ApiReference/UI_Components/dxChart/Configuration/crosshair/label/)
Configures labels (text and appearance).

To override settings for each line individually, configure **crosshair**.[horizontalLine](/Documentation/ApiReference/UI_Components/dxChart/Configuration/crosshair/horizontalLine/) and **crosshair**.[verticalLine](/Documentation/ApiReference/UI_Components/dxChart/Configuration/crosshair/verticalLine/) objects.
8 changes: 4 additions & 4 deletions apps/demos/Demos/Charts/ErrorBars/description.md
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
DevExtreme Chart supports value error bars. Implement these bars to indicate data measurement tolerances and [confidence intervals](https://en.wikipedia.org/wiki/Confidence_interval). Configure error bar settings and appearance in the **series**.[valueErrorBar](/Documentation/ApiReference/UI_Components/dxChart/Configuration/series/valueErrorBar/) object.
DevExtreme Chart supports value error bars. These bars indicate data measurement tolerances and [confidence intervals](https://en.wikipedia.org/wiki/Confidence_interval). Use the **series**.[valueErrorBar](/Documentation/ApiReference/UI_Components/dxChart/Configuration/series/valueErrorBar/) object to configure error bar settings and appearance.

<!--split-->

To enable error bars, specify one of the following pairs of **valueErrorBar** properties:
To display error bars, specify one of the following pairs of **valueErrorBar** properties:

- [lowValueField](Documentation/ApiReference/UI_Components/dxChart/Configuration/series/valueErrorBar/#lowValueField) and [highValueField](/Documentation/ApiReference/UI_Components/dxChart/Configuration/series/valueErrorBar/#highValueField)
Specify predefined error bars for each series point.
Bind fields that contain error values for each series point.

- [value](Documentation/ApiReference/UI_Components/dxChart/Configuration/series/valueErrorBar/#value) and [type](/Documentation/ApiReference/UI_Components/dxChart/Configuration/series/valueErrorBar/#type)
Configure dynamically calculated error bars.
Calculate error bar values based on series data points.

This demo implements predefined error bars specified in the Chart data source.
18 changes: 9 additions & 9 deletions apps/demos/Demos/Charts/FunnelChart/description.md
Original file line number Diff line number Diff line change
@@ -1,29 +1,29 @@
DevExtreme Funnel displays data in a funnel chart. You can implement funnel charts to display the flow of data over different stages. This demo displays conversion rates from website visits to product renewals.
DevExtreme Funnel displays data/information flow across different stages/periods. This demo displays conversion rates from website visits to product renewals.

<!--split-->

This demo specifies multiple Funnel configuration objects:
This demo configures the following objects:

- [title](/Documentation/ApiReference/UI_Components/dxFunnel/Configuration/title/)
Specifies a title for the Funnel component.
Specifies component title.
- [export](/Documentation/ApiReference/UI_Components/dxFunnel/Configuration/export/)
Configures export settings. Funnel supports multiple export [formats](/Documentation/ApiReference/UI_Components/dxFunnel/Configuration/export/#formats).
Configures export settings. Our Funnel Chart supports the following export [formats](/Documentation/ApiReference/UI_Components/dxFunnel/Configuration/export/#formats): PNG, PDF, JPEG, SVG, and GIF.
- [tooltip](/Documentation/ApiReference/UI_Components/dxFunnel/Configuration/tooltip/)
Specifies item tooltips.
- [label](/Documentation/ApiReference/UI_Components/dxFunnel/Configuration/label/)
Configures item labels.
- [item](/Documentation/ApiReference/UI_Components/dxFunnel/Configuration/item/)
Customizes the visual appearance of items.
Customizes item appearance.

[note]

Use our DevExpress BI Dashboard to embed interactive business intelligence into your next web app.
Use the DevExpress BI Dashboard to embed interactive business intelligence into your next web app.

The Web Dashboard is a data analysis UI component that you can embed into your ASP.NET Core or Angular, React, and Vue applications with .NET backend. Dashboards allow you to display multiple inter-connected data analysis elements such as grids, charts, maps, gauges, and others: all within an automatically-arranged layout.
Our Web Dashboard is a data analysis UI component you can embed into your ASP.NET Core or Angular, React, and Vue applications with a .NET backend. DevExpress Dashboards allow you to display multiple inter-connected data analysis elements such as grids, charts, maps, gauges, and others: all within an auto-arranged layout.

The set of components allows you to deploy an all-in-one solution and switch between Viewer and Designer modes directly on the web client (includes adaptive layouts for tablet & mobile).
DevExpress Dashboard allows you to deploy an all-in-one solution and switch between Viewer and Designer modes directly within the web client (includes built-in adaptive layouts for tablet & mobile devices).

The Web Dashboard is available as a part of a Universal subscription.
DevExpress is available as part of a Universal subscription.

[Get Started with DevExpress BI Dashboard](https://docs.devexpress.com/Dashboard/115955/web-dashboard) | [Explore Demos](https://demos.devexpress.com/Dashboard/)

Expand Down
25 changes: 23 additions & 2 deletions apps/demos/Demos/Charts/HoverMode/description.md
Original file line number Diff line number Diff line change
@@ -1,2 +1,23 @@
The Chart and PieChart components support different modes of&nbsp;series hovering. This demo shows the _&laquo;includePoints&raquo;_ mode, when all the points of&nbsp;a&nbsp;hovered series change their display style. In&nbsp;addition, you can specify a&nbsp;custom hover mode for legend items. Here, the _&laquo;excludePoints&raquo;_ mode is&nbsp;used, when only the series line changes its display style leaving the points as&nbsp;they were.
<!--split-->
DevExtreme Chart supports configurable hover modes for both series and points. This demo applies a common **hoverMode** for all series/points and a custom mode for the component legend.
<!--split-->

You can specify **hoverMode** for the following Chart elements:

- [series](/Documentation/ApiReference/UI_Components/dxChart/Configuration/series/#hoverMode)
A specific series.
- [commonSeriesSettings](/Documentation/ApiReference/UI_Components/dxChart/Configuration/commonSeriesSettings/#hoverMode)
All series.
- **commonSeriesSettings**.[spline](/Documentation/ApiReference/UI_Components/dxChart/Configuration/commonSeriesSettings/#spline) (or other [Series Type](/Documentation/ApiReference/UI_Components/dxChart/Series_Types/) objects)
All series (specific type).
- [legend](/Documentation/ApiReference/UI_Components/dxChart/Configuration/legend/#hoverMode)
Series hovered in the Chart legend.
- **series**.[point](/Documentation/ApiReference/UI_Components/dxChart/Configuration/series/point/#hoverMode)
Points in a specific series.
- **commonSeriesSettings**.[point](/Documentation/ApiReference/UI_Components/dxChart/Configuration/commonSeriesSettings/point/#hoverMode) (or other Series Type objects)
All points.
- **commonSeriesSettings**.**spline**.**point**
All points in series (specific type).
- [argumentAxis](/Documentation/ApiReference/UI_Components/dxChart/Configuration/argumentAxis/#hoverMode)
All points at common argument values.

To further customize Chart behavior, define the [stickyHovering](/Documentation/ApiReference/UI_Components/dxChart/Configuration/#stickyHovering) property. When enabled (default), points remain in a hovered state until users hover the mouse pointer over other points or move it outside the bounds of the component.
6 changes: 3 additions & 3 deletions apps/demos/Demos/Charts/MultiplePanes/description.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
The DevExtreme Chart component allows you to display data in multiple panes. To configure a multi-pane chart, specify the [panes[]](/Documentation/ApiReference/UI_Components/dxChart/Configuration/panes/) array. The component stacks panes vertically (or horizontally when [rotated](/Documentation/ApiReference/UI_Components/dxChart/Configuration/#rotated) is `true`).
The DevExtreme Chart component allows you to display data across multiple panes. DevExtreme Chart stacks panes vertically (or horizontally when Chart axes are [rotated](/Documentation/ApiReference/UI_Components/dxChart/Configuration/#rotated)). To create a multi-pane chart, add items to the [panes[]](/Documentation/ApiReference/UI_Components/dxChart/Configuration/panes/) array.

<!--split-->

Chart assigns unique [value axes](/Documentation/ApiReference/UI_Components/dxChart/Configuration/valueAxis/) and a shared [argument axis](/Documentation/ApiReference/UI_Components/dxChart/Configuration/argumentAxis/) to all panes. To configure the value axis of a specific pane, define **valueAxis** properties and assign the **pane**.[name](/Documentation/ApiReference/UI_Components/dxChart/Configuration/panes/#name) value to **valueAxis**.[pane](/Documentation/ApiReference/UI_Components/dxChart/Configuration/valueAxis/#pane).
The Chart renders multiple [value axes](/Documentation/ApiReference/UI_Components/dxChart/Configuration/valueAxis/) and a shared [argument axis](/Documentation/ApiReference/UI_Components/dxChart/Configuration/argumentAxis/). To create multiple value axes, add a **valueAxis[]** object for each value axis. To assign a value axis to a pane, pass the pane [name](/Documentation/ApiReference/UI_Components/dxChart/Configuration/panes/#name) to the **valueAxis**.[pane](/Documentation/ApiReference/UI_Components/dxChart/Configuration/valueAxis/#pane) property.

DevExtreme Chart can display multiple [series](/Documentation/ApiReference/UI_Components/dxChart/Configuration/series/) in a single pane. Specify the **series**.[pane](/Documentation/ApiReference/UI_Components/dxChart/Configuration/series/#pane) property to display a series in a specific pane.
DevExtreme Chart can display multiple [series](/Documentation/ApiReference/UI_Components/dxChart/Configuration/series/) within a single pane. Specify the **series**.[pane](/Documentation/ApiReference/UI_Components/dxChart/Configuration/series/#pane) property to display a series in a specific pane.
8 changes: 6 additions & 2 deletions apps/demos/Demos/Charts/ParetoChart/description.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
You can utilize the DevExtreme Chart component to display data in a [Pareto chart](https://en.wikipedia.org/wiki/Pareto_chart). A Pareto chart displays individual values along with their cumulative totals. In this demo, individual values are numbers of complaints and cumulative totals are represented as percentages.
You can use DevExtreme Chart to visualize data as a [Pareto chart](https://en.wikipedia.org/wiki/Pareto_chart) and display individual values along with their cumulative totals. In this demo, individual values are numbers of complaints and cumulative totals are given in percentages.

<!--split-->

To create a Pareto chart, configure two [series](/Documentation/ApiReference/UI_Components/dxChart/Configuration/series/) objects. Assign the [Bar](/Documentation/ApiReference/UI_Components/dxChart/Series_Types/BarSeries/) and [Line](/Documentation/ApiReference/UI_Components/dxChart/Series_Types/LineSeries/)/[Spline](/Documentation/ApiReference/UI_Components/dxChart/Series_Types/SplineSeries/) series types to **series**.[type](/Documentation/ApiReference/UI_Components/dxChart/Configuration/series/#type). To represent the numbers of the [Pareto principle](https://en.wikipedia.org/wiki/Pareto_principle) (80/20), you can specify constant lines. This demo configures a **valueAxis**.[constantLines](/Documentation/ApiReference/UI_Components/dxChart/Configuration/valueAxis/constantLines/) object to display a constant line at 80% of the cumulative total axis.
To create a Pareto chart you must:

1. Configure a [Bar](/Documentation/ApiReference/UI_Components/dxChart/Series_Types/BarSeries/) series and assign your primary data to this series (specify **series**.[valueField](/Documentation/ApiReference/UI_Components/dxChart/Configuration/series/#valueField) property).
2. Add a [Line](/Documentation/ApiReference/UI_Components/dxChart/Series_Types/LineSeries/) or [Spline](/Documentation/ApiReference/UI_Components/dxChart/Series_Types/SplineSeries/) series and assign cumulative total values to this series.
3. Specify **valueAxis**.[constantLines](/Documentation/ApiReference/UI_Components/dxChart/Configuration/valueAxis/constantLines/) to illustrate [Pareto principle](https://en.wikipedia.org/wiki/Pareto_principle) correlations (80/20).
4 changes: 2 additions & 2 deletions apps/demos/Demos/Charts/PieResolveLabelOverlap/description.md
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
In&nbsp;the PieChart, series may include a&nbsp;large number of&nbsp;points, which may result in&nbsp;point label overlapping. This demo illustrates the **resolveLabelOverlapping** property that allows you to&nbsp;specify how the component must behave when point labels overlap.
<!--split-->
When a DevExtreme PieChart contains a large number of data points or if data points are compressed visually, point labels may overlap. Use the [resolveLabelOverlapping](/Documentation/ApiReference/UI_Components/dxPieChart/Configuration/#resolveLabelOverlapping) property to minimize the impact of overlapping labels. In this demo, you can hide or shift overlapping labels.
<!--split-->
6 changes: 4 additions & 2 deletions apps/demos/Demos/Charts/PointImage/description.md
Original file line number Diff line number Diff line change
@@ -1,2 +1,4 @@
This demo shows that the Chart can display custom images instead of&nbsp;standard point symbols.
<!--split-->
DevExtreme Chart can display custom images for series points. Specify the **point**.**image** object within [common series](/Documentation/ApiReference/UI_Components/dxChart/Configuration/commonSeriesSettings/point/image/) or [series](/Documentation/ApiReference/UI_Components/dxChart/Configuration/series/point/image/) settings to display these images.
<!--split-->

This demo [hides](/Documentation/ApiReference/UI_Components/dxChart/Configuration/commonSeriesSettings/point/#visible) default point [symbols](/Documentation/ApiReference/UI_Components/dxChart/Configuration/commonSeriesSettings/point/#symbol) and calls the [customizePoint](/Documentation/ApiReference/UI_Components/dxChart/Configuration/#customizePoint) function to display images (based on point values).
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@
[dataSource]="catBreedsData"
[rotated]="true"
title="Most Popular US Cat Breeds"
(onPointClick)="pointClick($event)"
(onDone)="done($event)"
(onPointClick)="pointClick($event)"
>
<dxi-series valueField="count" name="breeds" color="#a3d6d2">
<dxo-selection-style color="#ec2e7a">
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { NgModule, Component, enableProdMode } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
import { DxChartModule, DxChartTypes } from 'devextreme-angular/ui/chart';
import { DxChartModule, type DxChartTypes } from 'devextreme-angular/ui/chart';
import { Service, CatBreed } from './app.service';

if (!/localhost/.test(document.location.host)) {
Expand All @@ -27,17 +27,18 @@ export class AppComponent {
this.catBreedsData = service.getCatBreedsData();
}

pointClick({ target: point }: DxChartTypes.PointClickEvent) {
done(e: DxChartTypes.DoneEvent) {
e.component.getSeriesByPos(0).getPointsByArg('Siamese')[0].select();
}

pointClick(e: DxChartTypes.PointClickEvent) {
const point = e.target;
if (point.isSelected()) {
point.clearSelection();
} else {
point.select();
}
}

done(e: DxChartTypes.DoneEvent) {
e.component.getSeriesByPos(0).getPointsByArg('Siamese')[0].select();
}
}

@NgModule({
Expand Down
13 changes: 8 additions & 5 deletions apps/demos/Demos/Charts/PointSelectionAPI/React/App.tsx
Original file line number Diff line number Diff line change
@@ -1,19 +1,22 @@
import React from 'react';
import Chart, {
import {
Chart,
CommonSeriesSettings,
Series,
SelectionStyle,
Hatching,
Legend,
Export,
type ChartTypes,
} from 'devextreme-react/chart';
import { catBreedsData } from './data.ts';

function onDone({ component }) {
component.getSeriesByPos(0).getPointsByArg('Siamese')[0].select();
function onDone(e: ChartTypes.DoneEvent) {
e.component.getSeriesByPos(0).getPointsByArg('Siamese')[0].select();
}

function onPointClick({ target: point }) {
function onPointClick(e: ChartTypes.PointClickEvent) {
const point = e.target;
if (point.isSelected()) {
point.clearSelection();
} else {
Expand All @@ -27,9 +30,9 @@ function App() {
id="chart"
dataSource={catBreedsData}
rotated={true}
title="Most Popular US Cat Breeds"
onDone={onDone}
onPointClick={onPointClick}
title="Most Popular US Cat Breeds"
>
<CommonSeriesSettings
argumentField="breed"
Expand Down
12 changes: 7 additions & 5 deletions apps/demos/Demos/Charts/PointSelectionAPI/ReactJs/App.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import React from 'react';
import Chart, {
import {
Chart,
CommonSeriesSettings,
Series,
SelectionStyle,
Expand All @@ -9,10 +10,11 @@ import Chart, {
} from 'devextreme-react/chart';
import { catBreedsData } from './data.js';

function onDone({ component }) {
component.getSeriesByPos(0).getPointsByArg('Siamese')[0].select();
function onDone(e) {
e.component.getSeriesByPos(0).getPointsByArg('Siamese')[0].select();
}
function onPointClick({ target: point }) {
function onPointClick(e) {
const point = e.target;
if (point.isSelected()) {
point.clearSelection();
} else {
Expand All @@ -25,9 +27,9 @@ function App() {
id="chart"
dataSource={catBreedsData}
rotated={true}
title="Most Popular US Cat Breeds"
onDone={onDone}
onPointClick={onPointClick}
title="Most Popular US Cat Breeds"
>
<CommonSeriesSettings
argumentField="breed"
Expand Down
12 changes: 7 additions & 5 deletions apps/demos/Demos/Charts/PointSelectionAPI/Vue/App.vue
Original file line number Diff line number Diff line change
Expand Up @@ -25,21 +25,23 @@
</DxChart>
</template>
<script setup lang="ts">
import DxChart, {
import {
DxChart,
DxCommonSeriesSettings,
DxSeries,
DxSelectionStyle,
DxHatching,
DxSeries,
DxLegend,
DxExport,
type DxChartTypes,
} from 'devextreme-vue/chart';
import { catBreedsData } from './data.ts';

function onDone({ component }) {
component.getSeriesByPos(0).getPointsByArg('Siamese')[0].select();
function onDone(e: DxChartTypes.DoneEvent) {
e.component.getSeriesByPos(0).getPointsByArg('Siamese')[0].select();
}
function onPointClick({ target: point }: DxChartTypes.PointClickEvent) {
function onPointClick(e: DxChartTypes.PointClickEvent) {
const point = e.target;
if (point.isSelected()) {
point.clearSelection();
} else {
Expand Down
Loading
Loading