Skip to content

Commit 89b6d92

Browse files
author
pipeline
committed
v20.4.42 is released
1 parent 4718dd5 commit 89b6d92

File tree

1,520 files changed

+52317
-18471
lines changed

Some content is hidden

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

1,520 files changed

+52317
-18471
lines changed

controls/base/CHANGELOG.md

+8
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,14 @@
22

33
## [Unreleased]
44

5+
## 20.4.42 (2023-01-04)
6+
7+
### Common
8+
9+
#### Bug Fixes
10+
11+
- `I427250` - Resolved window undefined in server side rendering with React next JS.
12+
513
## 20.4.38 (2022-12-21)
614

715
### Common

controls/base/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@syncfusion/ej2-base",
3-
"version": "20.4.38",
3+
"version": "20.4.40",
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/spec/intl/date-parser.spec.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -867,7 +867,7 @@ describe('DateParser', () => {
867867
});
868868
it('year only format input returns correct year value',()=>{
869869
let tFormatter: Date = DateParser.dateParser('en', { format:'yy',calendar:'islamic' }, cldrData)('40');
870-
let iFormatter: Date = DateParser.dateParser('en', { format:'y',calendar:'islamic' }, cldrData)('1443');
870+
let iFormatter: Date = DateParser.dateParser('en', { format:'y',calendar:'islamic' }, cldrData)('1444');
871871
expect(iFormatter.getFullYear()).toBe(new Date().getFullYear());
872872
});
873873
it('full skeletom eleton returns proper value',()=>{

controls/base/src/browser.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -146,8 +146,8 @@ export class Browser {
146146
*/
147147

148148
private static getValue(key: string, regX: RegExp): Object {
149-
const browserDetails: {} = window.browserDetails;
150-
if (navigator.platform === 'MacIntel' && navigator.maxTouchPoints > 1 && Browser.isTouch === true) {
149+
const browserDetails: {} = typeof window !== 'undefined' ? window.browserDetails : {};
150+
if (typeof navigator !== 'undefined' && navigator.platform === 'MacIntel' && navigator.maxTouchPoints > 1 && Browser.isTouch === true) {
151151
browserDetails['isIos'] = true;
152152
browserDetails['isDevice'] = true;
153153
browserDetails['isTouch'] = true;

controls/base/src/component.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -313,7 +313,7 @@ export abstract class Component<ElementType extends HTMLElement> extends Base<El
313313
// tslint:disable-next-line:no-function-constructor-with-string-args
314314
onIntlChange.on('notifyExternalChange', this.detectFunction, this, this.randomId);
315315
// Based on the considered control list we have count the instance
316-
if (!validateLicense()) {
316+
if (typeof window !== "undefined" && typeof document !== "undefined" && !validateLicense()) {
317317
if (componentList.indexOf(this.getModuleName()) !== -1) {
318318
instancecount = instancecount + 1;
319319
if (instancecount > 5) {

controls/buttons/CHANGELOG.md

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

33
## [Unreleased]
44

5-
## 20.4.40 (2022-12-28)
5+
## 20.4.42 (2023-01-04)
6+
7+
### Checkbox
8+
9+
#### Bug Fixes
10+
11+
- `#I427235` - The issue `cssClass` property not updated properly while string with a white space in the end of the property in checkbox has been fixed.
612

713
### Chips
814

915
#### Bug Fixes
1016

1117
- `#I422262` - Added the aria-disabled attribute to the disabled Chip items.
1218

19+
## 20.4.40 (2022-12-28)
20+
1321
## 20.3.47 (2022-09-29)
1422

1523
### Floating Action Button `Preview`

controls/buttons/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@syncfusion/ej2-buttons",
3-
"version": "18.46.0",
3+
"version": "20.4.40",
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/src/button/button.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -171,7 +171,7 @@ export class Button extends Component<HTMLButtonElement> implements INotifyPrope
171171

172172
private initialize(): void {
173173
if (this.cssClass) {
174-
addClass([this.element], this.cssClass.split(' '));
174+
addClass([this.element], this.cssClass.replace(/\s+/g, ' ').trim().split(' '));
175175
}
176176
if (this.isPrimary) {
177177
this.element.classList.add(cssClassName.PRIMARY);
@@ -355,7 +355,7 @@ export class Button extends Component<HTMLButtonElement> implements INotifyPrope
355355
removeClass([this.element], oldProp.cssClass.split(' '));
356356
}
357357
if (newProp.cssClass) {
358-
addClass([this.element], newProp.cssClass.split(' '));
358+
addClass([this.element], newProp.cssClass.replace(/\s+/g, ' ').trim().split(' '));
359359
}
360360
break;
361361
case 'enableRtl':

controls/buttons/src/check-box/check-box.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -351,7 +351,7 @@ export class CheckBox extends Component<HTMLInputElement> implements INotifyProp
351351
wrapper.classList.add(RTL);
352352
}
353353
if (this.cssClass) {
354-
addClass([wrapper], this.cssClass.split(' '));
354+
addClass([wrapper], this.cssClass.replace(/\s+/g, ' ').trim().split(' '));
355355
}
356356
wrapper.appendChild(label);
357357
label.appendChild(this.element);
@@ -438,7 +438,7 @@ export class CheckBox extends Component<HTMLInputElement> implements INotifyProp
438438
removeClass([wrapper], oldProp.cssClass.split(' '));
439439
}
440440
if (newProp.cssClass) {
441-
addClass([wrapper], newProp.cssClass.split(' '));
441+
addClass([wrapper], newProp.cssClass.replace(/\s+/g, ' ').trim().split(' '));
442442
}
443443
break;
444444
case 'enableRtl':

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

+20-6
Original file line numberDiff line numberDiff line change
@@ -451,7 +451,7 @@ export class ChipList extends Component<HTMLElement> implements INotifyPropertyC
451451

452452
private setAttributes(): void {
453453
if (this.type === 'chip') {
454-
this.enabled ? this.element.tabIndex = 0 : this.element.setAttribute('aria-disabled', 'true');
454+
if(this.enabled) this.element.tabIndex = 0;
455455
this.element.setAttribute('role', 'option');
456456
} else {
457457
this.element.classList.add(classNames.chipSet);
@@ -497,8 +497,10 @@ export class ChipList extends Component<HTMLElement> implements INotifyPropertyC
497497
if (fieldsData.value) {
498498
wrapper.setAttribute('data-value', fieldsData.value.toString());
499499
}
500-
if (!fieldsData.enabled) {
500+
if (fieldsData.enabled) { wrapper.setAttribute('aria-disabled', 'false'); }
501+
else {
501502
wrapper.removeAttribute('tabindex');
503+
wrapper.setAttribute('aria-disabled', 'true');
502504
}
503505
append(chipArray, wrapper);
504506
chipListArray.push(wrapper);
@@ -570,9 +572,11 @@ export class ChipList extends Component<HTMLElement> implements INotifyPropertyC
570572
/**
571573
* A function that finds chip based on given input.
572574
*
573-
* @param {number | HTMLElement } fields - We can pass index number or element of chip.
574575
* {% codeBlock src='chips/find/index.md' %}{% endcodeBlock %}
575576
*
577+
* @param {number | HTMLElement } fields - We can pass index number or element of chip.
578+
*
579+
* @returns {void}
576580
*/
577581

578582
public find(fields: number | HTMLElement): ChipDataArgs {
@@ -595,10 +599,12 @@ export class ChipList extends Component<HTMLElement> implements INotifyPropertyC
595599
/**
596600
* Allows adding the chip item(s) by passing a single or array of string, number, or ChipModel values.
597601
*
602+
* {% codeBlock src='chips/add/index.md' %}{% endcodeBlock %}
603+
*
598604
* @param {string[] | number[] | ChipModel[] | string | number | ChipModel} chipsData - We can pass array of string or
599605
* array of number or array of chip model or string data or number data or chip model.
600-
* {% codeBlock src='chips/add/index.md' %}{% endcodeBlock %}
601606
*
607+
* @returns {void}
602608
* @deprecated
603609
*/
604610

@@ -614,10 +620,12 @@ export class ChipList extends Component<HTMLElement> implements INotifyPropertyC
614620
/**
615621
* Allows selecting the chip item(s) by passing a single or array of string, number, or ChipModel values.
616622
*
623+
* {% codeBlock src='chips/select/index.md' %}{% endcodeBlock %}
624+
*
617625
* @param {number | number[] | HTMLElement | HTMLElement[]} fields - We can pass number or array of number
618626
* or chip element or array of chip element.
619-
* {% codeBlock src='chips/select/index.md' %}{% endcodeBlock %}
620627
*
628+
* @returns {void}
621629
*/
622630

623631
public select(fields: number | number[] | HTMLElement | HTMLElement[] | string[], selectionType?: selectionType): void {
@@ -686,10 +694,12 @@ export class ChipList extends Component<HTMLElement> implements INotifyPropertyC
686694
/**
687695
* Allows removing the chip item(s) by passing a single or array of string, number, or ChipModel values.
688696
*
697+
* {% codeBlock src='chips/remove/index.md' %}{% endcodeBlock %}
698+
*
689699
* @param {number | number[] | HTMLElement | HTMLElement[]} fields - We can pass number or array of number
690700
* or chip element or array of chip element.
691-
* {% codeBlock src='chips/remove/index.md' %}{% endcodeBlock %}
692701
*
702+
* @returns {void}
693703
*/
694704

695705
public remove(fields: number | number[] | HTMLElement | HTMLElement[]): void {
@@ -714,8 +724,10 @@ export class ChipList extends Component<HTMLElement> implements INotifyPropertyC
714724

715725
/**
716726
* Returns the selected chip(s) data.
727+
*
717728
* {% codeBlock src='chips/getSelectedChips/index.md' %}{% endcodeBlock %}
718729
*
730+
* @returns {void}
719731
*/
720732

721733
public getSelectedChips(): SelectedItem | SelectedItems {
@@ -906,8 +918,10 @@ export class ChipList extends Component<HTMLElement> implements INotifyPropertyC
906918

907919
/**
908920
* Removes the component from the DOM and detaches all its related event handlers. Also, it removes the attributes and classes.
921+
*
909922
* {% codeBlock src='chips/destroy/index.md' %}{% endcodeBlock %}
910923
*
924+
* @returns {void}
911925
*/
912926

913927
public destroy(): void {

controls/buttons/src/radio-button/radio-button.ts

+3-3
Original file line numberDiff line numberDiff line change
@@ -302,7 +302,7 @@ export class RadioButton extends Component<HTMLInputElement> implements INotifyP
302302
label.classList.add(RTL);
303303
}
304304
if (this.cssClass) {
305-
addClass([wrapper], this.cssClass.split(' '));
305+
addClass([wrapper], this.cssClass.replace(/\s+/g, ' ').trim().split(' '));
306306
}
307307
if (this.label) {
308308
this.setText(this.label);
@@ -360,7 +360,7 @@ export class RadioButton extends Component<HTMLInputElement> implements INotifyP
360360
removeClass([wrap], oldProp.cssClass.split(' '));
361361
}
362362
if (newProp.cssClass) {
363-
addClass([wrap], newProp.cssClass.split(' '));
363+
addClass([wrap], newProp.cssClass.replace(/\s+/g, ' ').trim().split(' '));
364364
}
365365
break;
366366
case 'enableRtl':
@@ -462,7 +462,7 @@ export class RadioButton extends Component<HTMLInputElement> implements INotifyP
462462
if (ATTRIBUTES.indexOf(key) > -1) {
463463
const wrapper: Element = this.element.parentElement;
464464
if (key === 'class') {
465-
addClass([wrapper], this.htmlAttributes[`${key}`].split(' '));
465+
addClass([wrapper], this.htmlAttributes[`${key}`].replace(/\s+/g, ' ').trim().split(' '));
466466
} else if (key === 'title' || key === 'style') {
467467
wrapper.setAttribute(key, this.htmlAttributes[`${key}`]);
468468
} else {

controls/buttons/src/switch/switch.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -243,7 +243,7 @@ export class Switch extends Component<HTMLInputElement> implements INotifyProper
243243
wrapper.classList.add(RTL);
244244
}
245245
if (this.cssClass) {
246-
addClass([wrapper], this.cssClass.split(' '));
246+
addClass([wrapper], this.cssClass.replace(/\s+/g, ' ').trim().split(' '));
247247
}
248248
}
249249
/**
@@ -298,7 +298,7 @@ export class Switch extends Component<HTMLInputElement> implements INotifyProper
298298
removeClass([wrapper], oldProp.cssClass.split(' '));
299299
}
300300
if (newProp.cssClass) {
301-
addClass([wrapper], newProp.cssClass.split(' '));
301+
addClass([wrapper], newProp.cssClass.replace(/\s+/g, ' ').trim().split(' '));
302302
}
303303
break;
304304
}

controls/calendars/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@syncfusion/ej2-calendars",
3-
"version": "18.30.7",
3+
"version": "20.4.40",
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/src/daterangepicker/daterangepicker.ts

+7-3
Original file line numberDiff line numberDiff line change
@@ -1355,7 +1355,7 @@ export class DateRangePicker extends CalendarBase {
13551355
this.createControl();
13561356
this.bindCalendarEvents();
13571357
this.updateRange((this.isMobile ? [this.calendarElement] : [this.leftCalendar, this.rightCalendar]));
1358-
if (!isNullOrUndefined(this.endValue) && !isNullOrUndefined(this.startValue)) {
1358+
if (!isNullOrUndefined(this.endValue) && !isNullOrUndefined(this.startValue) && !isNullOrUndefined(this.renderDayCell)) {
13591359
this.disabledDateRender();
13601360
}
13611361
this.updateHeader();
@@ -2316,7 +2316,9 @@ export class DateRangePicker extends CalendarBase {
23162316
if (!this.isMobile) {
23172317
this.removeClassDisabled();
23182318
}
2319+
if (!isNullOrUndefined(this.renderDayCell)) {
23192320
this.disabledDateRender();
2321+
}
23202322
this.trigger('select', this.rangeArgs(event));
23212323
} else if (+date < +this.startValue) {
23222324
this.removeClassDisabled();
@@ -3858,7 +3860,7 @@ export class DateRangePicker extends CalendarBase {
38583860
this.clearRange();
38593861

38603862
}
3861-
if (!isNullOrUndefined(this.endValue) && !isNullOrUndefined(this.startValue) && !isDisabled) {
3863+
if (!isNullOrUndefined(this.endValue) && !isNullOrUndefined(this.startValue) && !isDisabled && !isNullOrUndefined(this.renderDayCell)) {
38623864
this.disabledDateRender();
38633865
}
38643866
this.errorClass();
@@ -4329,7 +4331,9 @@ export class DateRangePicker extends CalendarBase {
43294331
if (!isNullOrUndefined(this.startValue) && !isNullOrUndefined(this.endValue)) {
43304332
range = (Math.round(Math.abs((this.removeTimeValueFromDate(this.startValue).getTime() -
43314333
this.removeTimeValueFromDate(this.endValue).getTime()) / (1000 * 60 * 60 * 24))) + 1);
4332-
this.disabledDateRender();
4334+
if (!isNullOrUndefined(this.renderDayCell)) {
4335+
this.disabledDateRender();
4336+
}
43334337
if (!isNullOrUndefined(this.disabledDayCnt)) {
43344338
range = range - this.disabledDayCnt;
43354339
this.disabledDayCnt = null;

controls/calendars/themestudio/styles/documenteditor/document-editor/_theme.scss

+13
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,19 @@
33
.e-de-background {
44
background-color: $de-background;
55
}
6+
.e-de-column-label {
7+
font-size: $de-border-dlg-settinglabels-fontsize;
8+
font-weight: $de-border-dlg-border-label-fontweight;
9+
padding-left: 20px;
10+
padding-right: 20px;
11+
}
12+
13+
.e-de-column-label.e-de-rtl {
14+
font-size: $de-border-dlg-settinglabels-fontsize;
15+
font-weight: $de-border-dlg-border-label-fontweight;
16+
padding-left: 50px;
17+
padding-right: 50px;
18+
}
619
.e-de-ff-sub-header {
720
display: block;
821
font-size: 12px;

controls/calendars/themestudio/styles/documenteditor/document-editor/icons/_bootstrap-dark.scss

-12
Original file line numberDiff line numberDiff line change
@@ -651,16 +651,4 @@
651651
.e-de-preset-container.e-de-rtl {
652652
width: 85px;
653653
}
654-
655-
.e-column-label {
656-
margin-left: 0;
657-
padding-left: 20px;
658-
padding-right: 20px;
659-
}
660-
661-
.e-column-label.e-de-rtl {
662-
margin-right: 0;
663-
padding-left: 50px;
664-
padding-right: 50px;
665-
}
666654
}

controls/calendars/themestudio/styles/documenteditor/document-editor/icons/_bootstrap.scss

-12
Original file line numberDiff line numberDiff line change
@@ -651,16 +651,4 @@
651651
.e-de-preset-container.e-de-rtl {
652652
width: 85px;
653653
}
654-
655-
.e-column-label {
656-
margin-left: 0;
657-
padding-left: 20px;
658-
padding-right: 20px;
659-
}
660-
661-
.e-column-label.e-de-rtl {
662-
margin-right: 0;
663-
padding-left: 50px;
664-
padding-right: 50px;
665-
}
666654
}

controls/calendars/themestudio/styles/documenteditor/document-editor/icons/_bootstrap4.scss

-12
Original file line numberDiff line numberDiff line change
@@ -636,16 +636,4 @@
636636
.e-de-preset-container.e-de-rtl {
637637
width: 85px;
638638
}
639-
640-
.e-column-label {
641-
margin-left: 0;
642-
padding-left: 20px;
643-
padding-right: 20px;
644-
}
645-
646-
.e-column-label.e-de-rtl {
647-
margin-right: 0;
648-
padding-left: 50px;
649-
padding-right: 50px;
650-
}
651639
}

controls/calendars/themestudio/styles/documenteditor/document-editor/icons/_bootstrap5.scss

-12
Original file line numberDiff line numberDiff line change
@@ -686,16 +686,4 @@
686686
.e-de-preset-container.e-de-rtl {
687687
width: 85px;
688688
}
689-
690-
.e-column-label {
691-
margin-left: 0;
692-
padding-left: 20px;
693-
padding-right: 20px;
694-
}
695-
696-
.e-column-label.e-de-rtl {
697-
margin-right: 0;
698-
padding-left: 50px;
699-
padding-right: 50px;
700-
}
701689
}

0 commit comments

Comments
 (0)