Skip to content

Commit 2bdd0f9

Browse files
author
pipeline
committed
v24.1.41 is released
1 parent 53d330a commit 2bdd0f9

File tree

152 files changed

+987
-1556
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

152 files changed

+987
-1556
lines changed

components/barcodegenerator/CHANGELOG.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
## [Unreleased]
44

5-
## 23.2.7 (2023-12-05)
5+
## 24.1.41 (2023-12-18)
66

77
### Barcode
88

components/base/CHANGELOG.md

+9
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,15 @@
22

33
## [Unreleased]
44

5+
## 24.1.41 (2023-12-18)
6+
7+
### Common
8+
9+
#### Bug Fixes
10+
11+
- `#I517152` - The issue with "the component undergoes a re-render when the state variable is updated, even if it is not being utilized" has been resolved.
12+
- The React package size is minimised by removing redundant styles.
13+
514
## 23.2.5 (2023-11-23)
615

716
### Common

components/base/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@syncfusion/ej2-react-base",
3-
"version": "23.2.5",
3+
"version": "24.1.41",
44
"description": "A common package of Essential JS 2 React base, methods and class definitions",
55
"author": "Syncfusion Inc.",
66
"license": "SEE LICENSE IN license",

components/base/src/component-base.ts

+9-8
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,7 @@ export class ComponentBase<P, S> extends React.Component<P, S> {
102102
if(!this.isshouldComponentUpdateCalled && this.initRenderCalled && !this.isReactForeceUpdate) {
103103
if (prev !== this.props) {
104104
this.isshouldComponentUpdateCalled = true;
105-
this.refreshProperties(this.props, this.props);
105+
this.updateProperties(this.props, false, prev);
106106
}
107107
}
108108
}
@@ -138,11 +138,12 @@ export class ComponentBase<P, S> extends React.Component<P, S> {
138138
/**
139139
* @private
140140
*/
141-
private updateProperties(nextProps: Object, silent?: boolean): void {
141+
private updateProperties(nextProps: Object, silent?: boolean, prev?: Object): void {
142142
let dProps: Object = extend({}, nextProps);
143143
let keys: string[] = Object.keys(nextProps);
144+
let prevProps: Object = extend({}, prev || this.props);
144145
// The statelessTemplates props value is taken from sample level property or default component property.
145-
let statelessTemplates: string[] = !isNullOrUndefined(this.props['statelessTemplates']) ? this.props['statelessTemplates'] :
146+
let statelessTemplates: string[] = !isNullOrUndefined(prevProps['statelessTemplates']) ? prevProps['statelessTemplates'] :
146147
(!isNullOrUndefined(this['statelessTemplateProps']) ? this['statelessTemplateProps'] : []);
147148
for (let propkey of keys) {
148149
let isClassName: boolean = propkey === 'className';
@@ -153,12 +154,12 @@ export class ComponentBase<P, S> extends React.Component<P, S> {
153154
this.htmlattributes[`${propkey}`] !== dProps[`${propkey}`]) {
154155
this.htmlattributes[`${propkey}`] = dProps[`${propkey}`];
155156
}
156-
if (this.compareValues(this.props[`${propkey}`], nextProps[`${propkey}`])) {
157+
if (this.compareValues(prevProps[`${propkey}`], nextProps[`${propkey}`])) {
157158
delete dProps[`${propkey}`];
158159
} else if (this.attrKeys.indexOf(propkey) !== -1) {
159160
if (isClassName) {
160161
this.clsName = true;
161-
let propsClsName = this.props[`${propkey}`].split(' ');
162+
let propsClsName = prevProps[`${propkey}`].split(' ');
162163
for (let i: number = 0; i < propsClsName.length; i++) {
163164
this.element.classList.remove(propsClsName[parseInt(i.toString(), 10)]);
164165
}
@@ -181,7 +182,7 @@ export class ComponentBase<P, S> extends React.Component<P, S> {
181182
delete dProps['children'];
182183
}
183184
// tslint:disable-next-line:no-any
184-
if (this.initRenderCalled && (this.canDelayUpdate || (this.props as any).delayUpdate)) {
185+
if (this.initRenderCalled && (this.canDelayUpdate || (prevProps as any).delayUpdate)) {
185186
setTimeout(() => {
186187
this.refreshProperties(dProps, nextProps, silent);
187188
});
@@ -227,7 +228,7 @@ export class ComponentBase<P, S> extends React.Component<P, S> {
227228
}
228229
this.attrKeys = defaulthtmlkeys.concat(this.controlAttributes || []);
229230
for (let prop of propKeys) {
230-
if (prop.indexOf('data-') !== -1 || prop.indexOf('aria-') !== -1 || this.attrKeys.indexOf(prop) !== -1) {
231+
if (prop.indexOf('data-') !== -1 || prop.indexOf('aria-') !== -1 || this.attrKeys.indexOf(prop) !== -1 || (Object.keys((this as any).properties).indexOf(`${prop}`) === -1 && prop.indexOf('children') === -1)) {
231232
if( this.htmlattributes[`${prop}`] !== (<{ [key: string]: Object }>this.props)[`${prop}`]) {
232233
this.htmlattributes[`${prop}`] = (<{ [key: string]: Object }>this.props)[`${prop}`];
233234
}
@@ -240,7 +241,7 @@ export class ComponentBase<P, S> extends React.Component<P, S> {
240241
};
241242
let keycompoentns: string[] = ['autocomplete', 'combobox', 'dropdownlist', 'dropdowntree', 'multiselect',
242243
'listbox', 'colorpicker', 'numerictextbox', 'textbox',
243-
'uploader', 'maskedtextbox', 'slider','datepicker','datetimepicker','daterangepicker','timepicker','checkbox','switch','radio'];
244+
'uploader', 'maskedtextbox', 'slider','datepicker','datetimepicker','daterangepicker','timepicker','checkbox','switch','radio', 'rating'];
244245
if (keycompoentns.indexOf(this.getModuleName()) !== -1) {
245246
this.htmlattributes.key = '' + ComponentBase.reactUid;
246247
ComponentBase.reactUid++;

components/buttons/CHANGELOG.md

+2-36
Original file line numberDiff line numberDiff line change
@@ -2,48 +2,20 @@
22

33
## [Unreleased]
44

5-
## 23.2.7 (2023-12-05)
6-
7-
### Chip
8-
9-
#### Bug Fixes
10-
11-
- `#I525416` - The issue when updating the `chips` property when multiple chip component rendered in the page has been resolved.
12-
13-
## 23.1.43 (2023-10-31)
5+
## 24.1.41 (2023-12-18)
146

157
### RadioButton
168

179
#### Bug Fixes
1810

19-
- `#F513731` - The issue with "`HtmlAttributes` property not working properly in RadioButton component" has been resolved.
20-
21-
## 23.1.42 (2023-10-24)
11+
- `#F40707` - Value change event triggered twice in Radio Button component has been fixed.
2212

2313
### Button
2414

2515
#### Bug Fixes
2616

2717
- `#I512179` - The issue with "Duplicate Icon Span while using the `onPropertyChange` of button" has been resolved.
2818

29-
## 23.1.41 (2023-10-17)
30-
31-
### Checkbox
32-
33-
#### Bug Fixes
34-
35-
- `#I509029` - The issue with "`HtmlAttributes` property not working properly in checkBox component" has been resolved.
36-
37-
## 23.1.39 (2023-10-04)
38-
39-
### Checkbox
40-
41-
#### Bug Fixes
42-
43-
- `#I505814` - The issue with "Script error thrown in CheckBox While using the change event in React" has been resolved.
44-
45-
## 23.1.36 (2023-09-15)
46-
4719
### Checkbox
4820

4921
#### Bug Fixes
@@ -65,12 +37,6 @@
6537
- `#I422263` - Provided the htmlAttributes support for the Chip component.
6638

6739

68-
### RadioButton
69-
70-
#### Bug Fixes
71-
72-
- `#F40707` - Value change event triggered twice in Radio Button component has been fixed.
73-
7440
## 19.2.47 (2021-07-13)
7541

7642
### Checkbox

components/buttons/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@syncfusion/ej2-react-buttons",
3-
"version": "23.2.4",
3+
"version": "18.64.1",
44
"description": "A package of feature-rich Essential JS 2 components such as Button, CheckBox, RadioButton and Switch. for React",
55
"author": "Syncfusion Inc.",
66
"license": "SEE LICENSE IN license",

components/calendars/CHANGELOG.md

-30
Original file line numberDiff line numberDiff line change
@@ -2,36 +2,6 @@
22

33
## [Unreleased]
44

5-
## 23.2.7 (2023-12-05)
6-
7-
### DatePicker
8-
9-
#### Bug Fixes
10-
11-
- `#524901` - The issue with the DatePicker component's navigation not working properly in month selection when using the "MMM" format has been resolved.
12-
13-
## 23.2.6 (2023-11-28)
14-
15-
### Calendar
16-
17-
#### Bug Fixes
18-
19-
- `#I521911` - Fixed an issue where an exception was occurring when changing the culture dynamically.
20-
21-
## 23.1.41 (2023-10-17)
22-
23-
### DateRangePicker
24-
25-
#### Bug Fixes
26-
27-
- `#I506617` - Fixed issue where the previous and next icons were displaying incorrectly in the Fluent Theme.
28-
29-
### DateTimePicker
30-
31-
#### Bug Fixes
32-
33-
- `#I504425` - Fixed an issue where typing "pm" and then focusing out would convert the "pm" extension to "am". This issue has been resolved.
34-
355
## 19.3.46 (2021-10-19)
366

377
### TimePicker

components/calendars/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@syncfusion/ej2-react-calendars",
3-
"version": "23.2.6",
3+
"version": "18.32.2",
44
"description": "A complete package of date or time components with built-in features such as date formatting, inline editing, multiple (range) selection, range restriction, month and year selection, strict mode, and globalization. for React",
55
"author": "Syncfusion Inc.",
66
"license": "SEE LICENSE IN license",

components/charts/CHANGELOG.md

+38
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,44 @@
22

33
## [Unreleased]
44

5+
## 24.1.41 (2023-12-18)
6+
7+
### Chart
8+
9+
#### Features
10+
11+
- `#I489636`, `#F185569` - Provided support to align the axis title to the near, far, and center of the chart area.
12+
- `#I482069`, `#I510188`, `#I511613` - Provided support to position the tooltip at a fixed location within the chart.
13+
14+
#### Bug Fixes
15+
16+
- `#F185567` - The data label now renders properly for the waterfall chart.
17+
- `#I185614` - The 100% stacking bar is now rendered properly even when the data value is 0.
18+
19+
### BulletChart
20+
21+
#### Features
22+
23+
- `#I495253` - Provided support to apply different colors to value and target bars in the bullet chart.
24+
25+
### 3DChart
26+
27+
A 3D chart is a graphical representation of data in three dimensions, showcasing relationships and trends among variables. Unlike traditional 2D charts, 3D charts add depth to the visualization, allowing for a more immersive and comprehensive understanding of data patterns.
28+
29+
30+
- **Series** - The 3D chart can plot over six chart types, including column, bar, stacking column, stacking bar, 100% stacked column, and 100% stacked bar.
31+
- **Data Binding** - Bind the 3D chart component with an array of JSON objects or a DataManager. In addition to chart series, data labels, and tooltips can also be bound to your data.
32+
- **Data Labels** - Support data labels to annotate points with labels to improve the readability of data.
33+
- **Axis Types** - Able to plot different data types such as numbers, datetime, logarithmic, and string.
34+
- **Axis Features** - Supports multiple axes, inverted axes, multiple panes, opposed positions, and smart labels.
35+
- **Legend** - Supports a legend to provide additional information about a series with customization options.
36+
- **Animation** - The 3D chart series will be animated when rendering and refreshing the chart widget.
37+
- **User Interaction** - Supports interactive features such as tooltips and data point selection.
38+
- **Export** - Supports printing the 3D chart directly from the browser and exporting the chart in both JPEG and PNG formats.
39+
- **RTL** - Provides a full-fledged right-to-left mode that aligns the axis, tooltip, legend, and data in the 3D chart component from right to left.
40+
- **Appearance** - Colors for the 3D charts are picked by the built-in theme, but each element of the 3D chart can be customized with simple configuration options.
41+
- **Accessibility** - Designed to be accessible to users with disabilities, with features such as WAI-ARIA standard compliance and keyboard navigation to ensure that the 3D chart can be effectively used with assistive technologies such as screen readers.
42+
543
## 23.2.7 (2023-12-05)
644

745
### Chart

components/charts/package.json

+3-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@syncfusion/ej2-react-charts",
3-
"version": "23.2.6",
3+
"version": "20.20.12",
44
"description": "Feature-rich chart control with built-in support for over 25 chart types, technical indictors, trendline, zooming, tooltip, selection, crosshair and trackball. for React",
55
"author": "Syncfusion Inc.",
66
"license": "SEE LICENSE IN license",
@@ -17,7 +17,8 @@
1717
"react-sparkline-chart",
1818
"react-smith-chart",
1919
"react-bullet-chart",
20-
"react-bullet-graph"
20+
"react-bullet-graph",
21+
"react-chart3d"
2122
],
2223
"repository": {
2324
"type": "git",
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
import { ComplexBase } from '@syncfusion/ej2-react-base';
2+
import { Chart3DAxisModel } from '@syncfusion/ej2-charts';
3+
4+
5+
/**
6+
* `Axis3D` directive represent a axis row of the react Chart.
7+
* It must be contained in a Chart component(`Chart3DComponent`).
8+
* ```tsx
9+
* <Chart3DComponent>
10+
* <Chart3DAxesDirective>
11+
* <Chart3DAxisDirective></Chart3DAxisDirective>
12+
* </Chart3DAxesDirective>
13+
* </Chart3DComponent>
14+
* ```
15+
*/
16+
export class Chart3DAxisDirective extends ComplexBase<Chart3DAxisModel & { children?: React.ReactNode }, Chart3DAxisModel> {
17+
public static moduleName: string = 'chart3DAxis';
18+
}
19+
20+
export class Chart3DAxesDirective extends ComplexBase<{}, {}> {
21+
public static propertyName: string = 'axes';
22+
public static moduleName: string = 'chart3DAxes';
23+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
import * as React from 'react';
2+
import { Chart3D, Chart3DModel } from '@syncfusion/ej2-charts';
3+
import { ComponentBase, applyMixins, DefaultHtmlAttributes } from '@syncfusion/ej2-react-base';
4+
5+
6+
export interface Chart3DTypecast {
7+
tooltip?: any;
8+
}
9+
/**
10+
* Represents react 3D Chart Component
11+
* ```tsx
12+
* <Chart3DComponent></Chart3DComponent>
13+
* ```
14+
*/
15+
export class Chart3DComponent extends Chart3D {
16+
public state: Readonly<{ children?: React.ReactNode | React.ReactNode[] }>
17+
& Readonly<Chart3DModel | DefaultHtmlAttributes| Chart3DTypecast>;
18+
public setState: any;
19+
private getDefaultAttributes: Function;
20+
public initRenderCalled: boolean = false;
21+
private checkInjectedModules: boolean = true;
22+
public directivekeys: { [key: string]: Object } = {'chart3DSeriesCollection': 'chart3DSeries', 'chart3DAxes': 'chart3DAxis', 'chart3DRows': 'chart3DRow', 'chart3DColumns': 'chart3DColumn', 'chart3DSelectedDataIndexes': 'chart3DSelectedDataIndex'};
23+
private statelessTemplateProps: string[] = null;
24+
private templateProps: string[] = null;
25+
private immediateRender: boolean = false;
26+
public props: Readonly<{ children?: React.ReactNode | React.ReactNode[] }>
27+
& Readonly<Chart3DModel | DefaultHtmlAttributes| Chart3DTypecast>;
28+
public forceUpdate: (callBack?: () => any) => void;
29+
public context: Object;
30+
public portals: any = [];
31+
public isReactComponent: Object;
32+
public refs: {
33+
[key: string]: React.ReactInstance
34+
};
35+
constructor(props: any) {
36+
super(props);
37+
}
38+
39+
public render(): any {
40+
if (((this.element && !this.initRenderCalled) || this.refreshing) && !(this as any).isReactForeceUpdate) {
41+
super.render();
42+
this.initRenderCalled = true;
43+
} else {
44+
return React.createElement('div', this.getDefaultAttributes(),[].concat(this.props.children,this.portals));
45+
}
46+
47+
}
48+
}
49+
50+
applyMixins(Chart3DComponent, [ComponentBase, React.Component]);
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
import { ComplexBase } from '@syncfusion/ej2-react-base';
2+
import { Chart3DColumnModel } from '@syncfusion/ej2-charts';
3+
4+
5+
/**
6+
* `Column3D` directive represent a axis column of the react Chart.
7+
* It must be contained in a Chart component(`Chart3DComponent`).
8+
* ```tsx
9+
* <Chart3DComponent>
10+
* <Chart3DColumnsDirective>
11+
* <Chart3DColumnDirective></Chart3DColumnDirective>
12+
* </Chart3DColumnsDirective>
13+
* </Chart3DComponent>
14+
* ```
15+
*/
16+
export class Chart3DColumnDirective extends ComplexBase<Chart3DColumnModel & { children?: React.ReactNode }, Chart3DColumnModel> {
17+
public static moduleName: string = 'chart3DColumn';
18+
}
19+
20+
export class Chart3DColumnsDirective extends ComplexBase<{}, {}> {
21+
public static propertyName: string = 'columns';
22+
public static moduleName: string = 'chart3DColumns';
23+
}
+6
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
export * from './series-directive';
2+
export * from './axes-directive';
3+
export * from './rows-directive';
4+
export * from './columns-directive';
5+
export * from './selecteddataindexes-directive';
6+
export * from './chart3d.component';

0 commit comments

Comments
 (0)