Skip to content

Commit 4903766

Browse files
author
pipeline
committed
v23.2.7 is released
1 parent 641ba19 commit 4903766

File tree

155 files changed

+1985
-293
lines changed

Some content is hidden

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

155 files changed

+1985
-293
lines changed

controls/barcodegenerator/CHANGELOG.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
## [Unreleased]
44

5-
## 23.2.6 (2023-11-28)
5+
## 23.2.7 (2023-12-05)
66

77
### Barcode
88

controls/base/CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
#### Bug Fixes
1010

1111
- `#F47826` - Resolved the issue with parsing multiple white space in the template string.
12+
- `#I521836` - The issue with "A script error occurs when the 'Content-Type' header is not present" has been resolved.
1213

1314
## 23.2.4 (2023-11-20)
1415

controls/base/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@syncfusion/ej2-base",
3-
"version": "23.2.4",
3+
"version": "23.2.6",
44
"description": "A common package of Essential JS 2 base libraries, methods and class definitions",
55
"author": "Syncfusion Inc.",
66
"license": "SEE LICENSE IN license",

controls/base/releasenotes/README.md

Lines changed: 183 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,183 @@
1+
# Release Notes Guidelines
2+
3+
This section contains guidelines on naming files, sections and other document elements.
4+
5+
> **If there is no changes in product, you don't need to mention that in Release Notes.**
6+
7+
## Encoding Format
8+
9+
All Release Notes files should be saved in **Encoding in UTF-8 (Without BOM)** format. You can use Notepad++ to verify the encoding.
10+
11+
![Encoding.png](https://bitbucket.org/repo/j57Gz9/images/2199960455-Encoding.png)
12+
13+
## Release Notes Folder Hierarchy
14+
15+
* Platform [Folder]
16+
* ----ReleaseNotes [Folder]
17+
* --------v13.3.x.x [Folder]
18+
* ------------Control1.md
19+
* ------------Control2.md
20+
* ------------Control3.md
21+
* --------v13.4.x.x [Folder]
22+
* ------------Control1.md
23+
* ------------Control2.md
24+
* ------------Control3.md
25+
26+
### How to write Release Notes?
27+
28+
* Each release markdown files should reside under corresponding version folder in their platform.
29+
* Each product release notes should be created in separate file name.
30+
* File name should be same as the product name.
31+
32+
> **NOTE**: Please do not add any Front Matter information in Release Notes files.
33+
34+
## Markdown File Structure
35+
36+
Each markdown file should have following items.
37+
38+
* Control Name
39+
* Features
40+
* Bug fixes
41+
* Braking Changes
42+
* Known Issues
43+
44+
> Do not add any front matter(triple dashed line) in this markdown.
45+
46+
### Control Name
47+
48+
Control Name should be with prefix `##`. This will be rendered as `H2` in html file.
49+
50+
#### Syntax
51+
52+
```
53+
## <Control-Name>
54+
```
55+
56+
#### Example
57+
58+
```
59+
## ejAccrodion
60+
```
61+
62+
### Features
63+
64+
* Each features should be written in unordered list.
65+
* Feature header should have id in the following format `<control-name>-features`. All characters in **id should be written in lower case.**
66+
67+
#### Syntax
68+
69+
```
70+
### Features
71+
{:#<control-name>-features}
72+
73+
* \#1 - Feature Info
74+
* \#2 - Feature Info
75+
* \#3 - Feature Info
76+
```
77+
78+
#### Example
79+
80+
```
81+
### Features
82+
{:#ejaccordion-features}
83+
84+
* \#140303 - Accordion provides option to add new items dynamically by using the `addItem` method
85+
* \#140303 - Accordion provides option to add new items dynamically by using the `addItem` method
86+
* \#140303, \#140304 - Accordion provides option to add new items dynamically by using the `addItem` method
87+
```
88+
89+
> **NOTE:**
90+
> * In markdown `#` used to represent headers.
91+
> * By default it will be converted as HTML headers.
92+
> * To display the `#` in html, please use escape sequences [See above example].
93+
94+
### Bug Fixes
95+
96+
* Each bug fix should be written in unordered list.
97+
* Bug fixes header should have id in the following format `<control-name>-bug-fixes`. All characters in **id should be written in lower case.**
98+
99+
#### Syntax
100+
101+
```
102+
### Bug fixes
103+
{:#<control-name-in-lower-case>-bug-fixes}
104+
105+
* \#1 - Bug Fix
106+
* \#2 - Bug Fix
107+
* \#3 - Bug Fix
108+
```
109+
110+
#### Example
111+
112+
```
113+
### Bug Fixes
114+
{:#ejaccordion-bug-fixes}
115+
116+
* \#140303 - Accordion provides option to add new items dynamically by using the `addItem` method
117+
* \#140303 - Accordion provides option to add new items dynamically by using the `addItem` method
118+
* \#140303, \#140304 - Accordion provides option to add new items dynamically by using the `addItem` method
119+
```
120+
121+
> **NOTE:**
122+
> * In markdown `#` used to represent headers.
123+
> * By default it will be converted as HTML headers.
124+
> * To display the `#` in html, please use escape sequences [See above example].
125+
126+
### Breaking Changes
127+
128+
* Each breaking changes should be written in unordered list.
129+
* Breaking changes header should have id in the following format `<control-name>-breaking-changes`. All characters in **id should be written in lower case.**
130+
131+
```
132+
### Breaking Changes
133+
{:#<control-name>-breaking-changes}
134+
135+
* * Breaking Change 1
136+
* * Breaking Change 2
137+
* * Breaking Change 3
138+
```
139+
140+
#### Example
141+
142+
```
143+
### Breaking Changes
144+
{:#ejaccordion-breaking-changes}
145+
146+
* Now, Circular series end angle will not be adjusted based on the start angle, so the output will be like semi-circle instead of full circle. In order to render the complete circular series with customized start angle, you have to add the start angle value to end angle property now. This break will occur only if you have specified startAngle already
147+
```
148+
149+
> **NOTE:**
150+
> * In markdown `#` used to represent headers.
151+
> * By default it will be converted as HTML headers.
152+
> * To display the `#` in html, please use escape sequences [See above example].
153+
154+
## Incidents and Forums in Release notes
155+
156+
We can represent the Incident ID with I and F for forums in release notes MD files
157+
158+
#### Example
159+
160+
161+
```
162+
## ChromelessWindow
163+
164+
### Bug Fixes
165+
{:#chromelesswindow-bug-fixes}
166+
167+
* \#I336220 - When using `ShowDialog` on a `RibbonWindow`, a `NullReferenceException` will no longer occur.
168+
* \#F166385 - The gap between the bottom of the window and the `TaskBar` is now properly maintained.
169+
170+
```
171+
172+
This is published in the page : https://help.syncfusion.com/wpf/release-notes/v19.3.0.43?type=all#chromelesswindow
173+
174+
175+
## Commit
176+
177+
Same workflow for User Guide applicable to this repository. All the changes needs to be committed in `development` branch.
178+
179+
## Preview Changes
180+
181+
All the changes will be included with User Guide automation and published in Staging Documentation machine.
182+
183+
<http://115.249.201.211:9090>

controls/base/src/fetch.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -139,7 +139,7 @@ export class Fetch {
139139
}
140140
let responseType: string = 'text';
141141
for (const key of Object.keys(contentTypes)) {
142-
if ((response.headers.get('Content-Type') as string).indexOf(key) !== -1) {
142+
if (response.headers.get('Content-Type') && (response.headers.get('Content-Type') as string).indexOf(key) !== -1) {
143143
responseType = contentTypes[key as string];
144144
}
145145
}

controls/buttons/CHANGELOG.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,14 @@
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+
513
## 23.1.43 (2023-10-31)
614

715
### RadioButton

controls/buttons/package.json

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

controls/buttons/spec/chips.spec.ts

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -822,6 +822,16 @@ describe('Chips', () => {
822822
expect(chipCollection[5].innerText).toBe('chip6');
823823
expect(chipCollection[5].children[1].classList.contains('icon')).toBe(true);
824824
});
825+
it('chips property value testing', () => {
826+
let chips1: ChipList;
827+
let element1: HTMLElement = createElement('div', { id: 'chip1' });
828+
document.body.appendChild(element1);
829+
chips = new ChipList({}, '#chip');
830+
chips1 = new ChipList({}, '#chip1');
831+
chips.add('test');
832+
expect(chips.chips.length).toBe(1);
833+
expect(chips1.chips.length).toBe(0);
834+
});
825835
it('Remove method using index', () => {
826836
let ds: string[] = stringArray.slice();
827837
ds.push('chip4');

controls/buttons/src/chips/chip-list.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -648,7 +648,7 @@ export class ChipList extends Component<HTMLElement> implements INotifyPropertyC
648648
if (this.type !== 'chip') {
649649
const fieldData: string[] | number[] | ChipModel[] = chipsData instanceof Array ?
650650
chipsData : <string[] | number[] | ChipModel[]>[chipsData as string | number | ChipModel];
651-
(<ChipModel[]>this.chips).push(...fieldData as ChipModel[]);
651+
this.chips = [].slice.call(this.chips).concat(...fieldData as ChipModel[]);
652652
this.chipCreation(fieldData);
653653
}
654654
}

controls/calendars/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@syncfusion/ej2-calendars",
3-
"version": "23.2.4",
3+
"version": "23.2.6",
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.",
55
"author": "Syncfusion Inc.",
66
"license": "SEE LICENSE IN license",

controls/calendars/spec/datetimepicker/datetimepicker.spec.ts

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -4233,24 +4233,24 @@ describe('EJ2-59142', () => {
42334233
datetimepicker.element.selectionStart = 1;
42344234
datetimepicker.inputHandler();
42354235
expect(datetimepicker.element.value).toBe('01/01/2020');
4236-
expect(datetimepicker.element.selectionStart === 0).toBe(true);
4237-
expect(datetimepicker.element.selectionEnd === 2).toBe(true);
4236+
expect(datetimepicker.element.selectionStart === 3).toBe(true);
4237+
expect(datetimepicker.element.selectionEnd === 5).toBe(true);
42384238
datetimepicker.element.value = '2/01/2020';
42394239
datetimepicker.element.selectionStart = 1;
42404240
datetimepicker.inputHandler();
4241-
expect(datetimepicker.element.value).toBe('12/01/2020');
4241+
expect(datetimepicker.element.value).toBe('02/01/2020');
42424242
datetimepicker.element.selectionStart = 3;
42434243
datetimepicker.element.selectionEnd = 5;
42444244
datetimepicker.element.value = '12/1/2020';
42454245
datetimepicker.element.selectionStart = 4;
42464246
datetimepicker.inputHandler();
4247-
expect(datetimepicker.element.value).toBe('12/01/2020');
4247+
expect(datetimepicker.element.value).toBe('02/01/2020');
42484248
expect(datetimepicker.element.selectionStart === 3).toBe(true);
42494249
expect(datetimepicker.element.selectionEnd === 5).toBe(true);
42504250
datetimepicker.element.value = '12/0/2020';
42514251
datetimepicker.element.selectionStart = 4;
42524252
datetimepicker.inputHandler();
4253-
expect(datetimepicker.element.value).toBe('12/10/2020');
4253+
expect(datetimepicker.element.value).toBe('02/10/2020');
42544254
expect(datetimepicker.element.selectionStart === 6).toBe(true);
42554255
expect(datetimepicker.element.selectionEnd === 10).toBe(true);
42564256
datetimepicker.keydownHandler(keyEventArgs);
@@ -4259,13 +4259,13 @@ describe('EJ2-59142', () => {
42594259
datetimepicker.element.value = '12/0/2020';
42604260
datetimepicker.element.selectionStart = 4;
42614261
datetimepicker.inputHandler();
4262-
expect(datetimepicker.element.value).toBe('12/0/2020');
4262+
expect(datetimepicker.element.value).toBe('02/0/2020');
42634263
expect(datetimepicker.element.selectionStart === 3).toBe(true);
42644264
expect(datetimepicker.element.selectionEnd === 4).toBe(true);
42654265
datetimepicker.element.value = '12/6/2020';
42664266
datetimepicker.element.selectionStart = 4;
42674267
datetimepicker.inputHandler();
4268-
expect(datetimepicker.element.value).toBe('12/06/2020');
4268+
expect(datetimepicker.element.value).toBe('02/06/2020');
42694269
expect(datetimepicker.element.selectionStart === 6).toBe(true);
42704270
expect(datetimepicker.element.selectionEnd === 10).toBe(true);
42714271
datetimepicker.format = 'yyyy-MM-dd';
@@ -4300,12 +4300,12 @@ describe('EJ2-59142', () => {
43004300
datetimepicker.element.selectionStart = 6;
43014301
datetimepicker.inputHandler();
43024302
expect(datetimepicker.element.value).toBe('2020-01-10');
4303-
expect(datetimepicker.element.selectionStart === 5).toBe(true);
4304-
expect(datetimepicker.element.selectionEnd === 7).toBe(true);
4303+
expect(datetimepicker.element.selectionStart === 8).toBe(true);
4304+
expect(datetimepicker.element.selectionEnd === 10).toBe(true);
43054305
datetimepicker.element.value = '2020-2-10';
43064306
datetimepicker.element.selectionStart = 6;
43074307
datetimepicker.inputHandler();
4308-
expect(datetimepicker.element.value).toBe('2020-12-10');
4308+
expect(datetimepicker.element.value).toBe('2020-02-10');
43094309
expect(datetimepicker.element.selectionStart === 8).toBe(true);
43104310
expect(datetimepicker.element.selectionEnd === 10).toBe(true);
43114311
});

controls/calendars/src/datepicker/datepicker.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2262,8 +2262,10 @@ export class DatePicker extends Calendar implements IInput {
22622262
case 'locale':
22632263
this.globalize = new Internationalization(this.locale);
22642264
this.l10n.setLocale(this.locale);
2265-
this.setProperties({ placeholder: this.l10n.getConstant('placeholder') }, true);
2266-
Input.setPlaceholder(this.placeholder, this.inputElement);
2265+
if(this.datepickerOptions && this.datepickerOptions.placeholder == null) {
2266+
this.setProperties({ placeholder: this.l10n.getConstant('placeholder') }, true);
2267+
Input.setPlaceholder(this.placeholder, this.inputElement);
2268+
}
22672269
this.updateInput();
22682270
if (this.enableMask) {
22692271
this.notify('createMask', {

controls/calendars/src/daterangepicker/daterangepicker.ts

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4628,8 +4628,10 @@ export class DateRangePicker extends CalendarBase {
46284628
private setLocale(): void {
46294629
this.globalize = new Internationalization(this.locale);
46304630
this.l10n.setLocale(this.locale);
4631-
this.setProperties({ placeholder: this.l10n.getConstant('placeholder') }, true);
4632-
Input.setPlaceholder(this.placeholder, this.inputElement);
4631+
if (this.dateRangeOptions && this.dateRangeOptions.placeholder == null) {
4632+
this.setProperties({ placeholder: this.l10n.getConstant('placeholder') }, true);
4633+
Input.setPlaceholder(this.placeholder, this.inputElement);
4634+
}
46334635
this.updateInput();
46344636
this.updateHiddenInput();
46354637
this.changeTrigger();
@@ -4779,8 +4781,10 @@ export class DateRangePicker extends CalendarBase {
47794781
case 'locale':
47804782
this.globalize = new Internationalization(this.locale);
47814783
this.l10n.setLocale(this.locale);
4782-
this.setProperties({ placeholder: this.l10n.getConstant('placeholder') }, true);
4783-
Input.setPlaceholder(this.placeholder, this.inputElement);
4784+
if (this.dateRangeOptions && this.dateRangeOptions.placeholder == null) {
4785+
this.setProperties({ placeholder: this.l10n.getConstant('placeholder') }, true);
4786+
Input.setPlaceholder(this.placeholder, this.inputElement);
4787+
}
47844788
this.setLocale();
47854789
break;
47864790
case 'htmlAttributes':

controls/calendars/src/datetimepicker/datetimepicker.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1885,8 +1885,10 @@ export class DateTimePicker extends DatePicker {
18851885
case 'locale':
18861886
this.globalize = new Internationalization(this.locale);
18871887
this.l10n.setLocale(this.locale);
1888-
this.setProperties({ placeholder: this.l10n.getConstant('placeholder') }, true);
1889-
Input.setPlaceholder(this.l10n.getConstant('placeholder'), this.inputElement);
1888+
if (this.dateTimeOptions && this.dateTimeOptions.placeholder == null) {
1889+
this.setProperties({ placeholder: this.l10n.getConstant('placeholder') }, true);
1890+
Input.setPlaceholder(this.l10n.getConstant('placeholder'), this.inputElement);
1891+
}
18901892
this.dateTimeFormat = this.cldrDateTimeFormat();
18911893
super.updateInput();
18921894
break;

0 commit comments

Comments
 (0)