Skip to content

Commit 8f48bde

Browse files
author
pipeline
committed
v20.3.50 is released
1 parent 483d06d commit 8f48bde

File tree

172 files changed

+14667
-450
lines changed

Some content is hidden

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

172 files changed

+14667
-450
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.3.50 (2022-10-18)
6+
7+
### Common
8+
9+
#### Bug Fixes
10+
11+
- `#SF395314` - The issue " incorrect position of the helper element while dragging the `treeview` element" has been resolved.
12+
513
## 20.3.49 (2022-10-11)
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": "18.61.0",
3+
"version": "20.3.49",
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/src/draggable.ts

+25-10
Original file line numberDiff line numberDiff line change
@@ -737,13 +737,24 @@ export class Draggable extends Base<HTMLElement> implements INotifyPropertyChang
737737
}
738738
let draEleTop: number;
739739
let draEleLeft: number;
740-
if (this.dragArea) {
741-
this.dragLimit.top = this.clone ? this.dragLimit.top : 0;
742-
draEleTop = (top - iTop) < 0 ? this.dragLimit.top : (top - this.borderWidth.top);
743-
draEleLeft = (left - iLeft) < 0 ? this.dragLimit.left : (left - this.borderWidth.left);
740+
if (this.helperElement.classList.contains('e-treeview')){
741+
if (this.dragArea) {
742+
this.dragLimit.top = this.clone ? this.dragLimit.top : 0;
743+
draEleTop = (top - iTop) < 0 ? this.dragLimit.top : (top - this.borderWidth.top);
744+
draEleLeft = (left - iLeft) < 0 ? this.dragLimit.left : (left - this.borderWidth.left);
745+
} else {
746+
draEleTop = top - this.borderWidth.top;
747+
draEleLeft = left - this.borderWidth.left;
748+
}
744749
} else {
745-
draEleTop = top - this.borderWidth.top;
746-
draEleLeft = left - this.borderWidth.left;
750+
if (this.dragArea) {
751+
this.dragLimit.top = this.clone ? this.dragLimit.top : 0;
752+
draEleTop = (top - iTop) < 0 ? this.dragLimit.top : (top - iTop);
753+
draEleLeft = (left - iLeft) < 0 ? this.dragElePosition.left : (left - iLeft);
754+
} else {
755+
draEleTop = top - iTop;
756+
draEleLeft = left - iLeft;
757+
}
747758
}
748759
let marginTop: number = parseFloat(getComputedStyle(this.element).marginTop);
749760
// when drag-element has margin-top
@@ -774,7 +785,7 @@ export class Draggable extends Base<HTMLElement> implements INotifyPropertyChang
774785
}
775786
}
776787

777-
if (this.dragArea) {
788+
if (this.dragArea && this.helperElement.classList.contains('e-treeview')) {
778789
let helperHeight: number = helperElement.offsetHeight + (parseFloat(styles.marginTop)
779790
+ parseFloat(styles.marginBottom));
780791
draEleTop = (draEleTop + helperHeight) > this.dragLimit.bottom ? (this.dragLimit.bottom - helperHeight) : draEleTop;
@@ -849,7 +860,7 @@ export class Draggable extends Base<HTMLElement> implements INotifyPropertyChang
849860
nodeEle.scrollTop -= this.helperElement.clientHeight;
850861
}
851862
}else if (nodeEle && nodeEle !== document.scrollingElement) {
852-
if ((nodeEle.clientHeight + nodeEle.getBoundingClientRect().top - this.helperElement.clientHeight + document.scrollingElement.scrollTop - this.borderWidth.top - this.borderWidth.bottom) <= draEleTop) {
863+
if ((nodeEle.clientHeight + nodeEle.getBoundingClientRect().top - this.helperElement.clientHeight + document.scrollingElement.scrollTop) < draEleTop) {
853864
nodeEle.scrollTop += this.helperElement.clientHeight;
854865
}else if (nodeEle.getBoundingClientRect().top > (draEleTop - this.helperElement.clientHeight - document.scrollingElement.scrollTop)) {
855866
nodeEle.scrollTop -= this.helperElement.clientHeight;
@@ -959,7 +970,7 @@ export class Draggable extends Base<HTMLElement> implements INotifyPropertyChang
959970
if (ele) {
960971
let elementArea: ClientRect = ele.getBoundingClientRect();
961972
eleWidthBound = ele.scrollWidth ? ele.scrollWidth : elementArea.right - elementArea.left;
962-
eleHeightBound = ele.scrollHeight ? (this.dragArea && this.helperElement.classList.contains('e-treeview')) ? ele.clientHeight : ele.scrollHeight : elementArea.bottom - elementArea.top;
973+
eleHeightBound = ele.scrollHeight ? (this.dragArea && !isNullOrUndefined(this.helperElement) && this.helperElement.classList.contains('e-treeview')) ? ele.clientHeight : ele.scrollHeight : elementArea.bottom - elementArea.top;
963974
let keys: string[] = ['Top', 'Left', 'Bottom', 'Right'];
964975
let styles: any = getComputedStyle(ele);
965976
for (let i: number = 0; i < keys.length; i++) {
@@ -970,7 +981,11 @@ export class Draggable extends Base<HTMLElement> implements INotifyPropertyChang
970981
(<any>this.borderWidth)[lowerKey] = isNaN(parseFloat(tborder)) ? 0 : parseFloat(tborder);
971982
(<any>this.padding)[lowerKey] = isNaN(parseFloat(tpadding)) ? 0 : parseFloat(tpadding);
972983
}
973-
top = elementArea.top + document.scrollingElement.scrollTop;
984+
if (this.dragArea && !isNullOrUndefined(this.helperElement) && this.helperElement.classList.contains('e-treeview')) {
985+
top = elementArea.top + document.scrollingElement.scrollTop;
986+
} else {
987+
top = elementArea.top;
988+
}
974989
left = elementArea.left;
975990
this.dragLimit.left = left + this.borderWidth.left + this.padding.left;
976991
this.dragLimit.top = ele.offsetTop + this.borderWidth.top + this.padding.top;

controls/buttons/CHANGELOG.md

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

33
## [Unreleased]
44

5+
## 20.3.50 (2022-10-18)
6+
7+
### Checkbox
8+
9+
#### Bug Fixes
10+
11+
- `#I382543` - The issue with "Checkbox value not update properly while using edit template of grid" has been resolved.
12+
513
## 20.3.49 (2022-10-11)
614

715
### 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.44.0",
3+
"version": "20.3.49",
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/check-box/check-box.ts

+3
Original file line numberDiff line numberDiff line change
@@ -209,6 +209,9 @@ export class CheckBox extends Component<HTMLInputElement> implements INotifyProp
209209

210210
private clickHandler(event: Event): void {
211211
if ((event.target as HTMLElement).tagName === 'INPUT' && this.clickTriggered) {
212+
if(this.isVue) {
213+
this.changeState(this.checked ? 'check' : 'uncheck');
214+
}
212215
this.clickTriggered = false;
213216
return;
214217
}

controls/calendars/CHANGELOG.md

+26
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,32 @@
22

33
## [Unreleased]
44

5+
## 20.3.50 (2022-10-18)
6+
7+
### Calendar
8+
9+
#### Bug Fixes
10+
11+
- `#I403191` - The issue "selection is not removed properly when we select the already selected date in Calendar multiselection" has been resolved.
12+
13+
### TimePicker
14+
15+
#### Bug Fixes
16+
17+
- `#FB15052` - Issue with "Form Validator wrongly validates while clearing the components value using clear icon" has been resolved.
18+
19+
### DatePicker
20+
21+
#### Bug Fixes
22+
23+
- `#FB15052` - Issue with "Form Validator wrongly validates while clearing the components value using clear icon" has been resolved.
24+
25+
### DateRangePicker
26+
27+
#### Bug Fixes
28+
29+
- `#FB15052` - Issue with "Form Validator wrongly validates while clearing the components value using clear icon" has been resolved.
30+
531
## 19.3.46 (2021-10-19)
632

733
### TimePicker

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.29.7",
3+
"version": "20.3.49",
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/calendar/calendar.ts

+2-1
Original file line numberDiff line numberDiff line change
@@ -1081,7 +1081,7 @@ export class CalendarBase extends Component<HTMLElement> implements INotifyPrope
10811081
if ((localDateString === tempDateString && this.getDateVal(localDate, values[tempValue]))
10821082
|| (this.getDateVal(localDate, value))) {
10831083
addClass([tdEle], SELECTED);
1084-
} if (!isNullOrUndefined(currentTarget) && currentTarget.innerText === tdEle.innerText && this.previousDates && currentTarget.classList.contains(SELECTED)) {
1084+
} if (!isNullOrUndefined(currentTarget) && currentTarget.innerText === tdEle.innerText && this.previousDates && tdEle.classList.contains(SELECTED) && currentTarget.classList.contains(SELECTED)) {
10851085
removeClass([tdEle], SELECTED);
10861086
this.previousDates = false;
10871087
const copyValues: Date[] = this.copyValues(values);
@@ -1093,6 +1093,7 @@ export class CalendarBase extends Component<HTMLElement> implements INotifyPrope
10931093
if (localDateString === tempDateString) {
10941094
const index: number = copyValues.indexOf(copyValues[i]);
10951095
copyValues.splice(index, 1);
1096+
values.splice(index, 1);
10961097
}
10971098
}
10981099
this.setProperties({ values: copyValues }, true);

controls/calendars/src/datepicker/datepicker.ts

+6
Original file line numberDiff line numberDiff line change
@@ -891,6 +891,12 @@ export class DatePicker extends Calendar implements IInput {
891891
module: "MaskedDateTime"
892892
});
893893
}
894+
if (closest(this.element, 'form')) {
895+
let element: Element = this.element;
896+
let keyupEvent: KeyboardEvent = document.createEvent('KeyboardEvent');
897+
keyupEvent.initEvent('keyup', false, true);
898+
element.dispatchEvent(keyupEvent);
899+
}
894900
}
895901

896902

controls/calendars/src/daterangepicker/daterangepicker.ts

+6
Original file line numberDiff line numberDiff line change
@@ -1133,6 +1133,12 @@ export class DateRangePicker extends CalendarBase {
11331133
this.changeTrigger(e);
11341134
this.clearRange();
11351135
this.hide(e);
1136+
if (closest(this.element, 'form')) {
1137+
let element: Element = this.firstHiddenChild;
1138+
let keyupEvent: KeyboardEvent = document.createEvent('KeyboardEvent');
1139+
keyupEvent.initEvent('keyup', false, true);
1140+
element.dispatchEvent(keyupEvent);
1141+
}
11361142
}
11371143

11381144
private restoreValue(): void {

controls/calendars/src/timepicker/timepicker.ts

+6
Original file line numberDiff line numberDiff line change
@@ -1790,6 +1790,12 @@ export class TimePicker extends Component<HTMLElement> implements IInput {
17901790
module: "MaskedDateTime"
17911791
});
17921792
}
1793+
if (closest(this.element, 'form')) {
1794+
let element: Element = this.element;
1795+
let keyupEvent: KeyboardEvent = document.createEvent('KeyboardEvent');
1796+
keyupEvent.initEvent('keyup', false, true);
1797+
element.dispatchEvent(keyupEvent);
1798+
}
17931799
}
17941800
private clear(event: MouseEvent): void {
17951801
this.setProperties({ value: null }, true);

controls/calendars/themestudio/styles/grids/grid/_layout.scss

+2-2
Original file line numberDiff line numberDiff line change
@@ -3734,7 +3734,7 @@
37343734

37353735
#{&}.e-grid-min-height {
37363736
.e-rowcell {
3737-
line-height: 0;
3737+
line-height: normal;
37383738
padding-bottom: 0;
37393739
padding-top: 0;
37403740
}
@@ -3817,7 +3817,7 @@
38173817
.e-rowcell,
38183818
.e-rowcell:first-child,
38193819
.e-rowcell:last-child {
3820-
line-height: 0;
3820+
line-height: normal;
38213821
padding-bottom: 0;
38223822
padding-top: 0;
38233823
}

controls/calendars/themestudio/styles/pivotview/pivotview/_theme.scss

-5
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@
2323

2424
.e-valuescontent {
2525
padding-right: 8px;
26-
text-align: right;
2726
}
2827

2928
.e-grid .e-rowcell {
@@ -1325,10 +1324,6 @@
13251324
margin-right: 7px;
13261325
}
13271326

1328-
.e-valuescontent {
1329-
text-align: left;
1330-
}
1331-
13321327
.e-group-values,
13331328
.e-group-columns,
13341329
.e-group-filters,

controls/calendars/themestudio/styles/popups/dialog/_bootstrap5-definition.scss

+2-2
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,6 @@ $dialog-footer-hover-btn-color: $primary-bg-color-hover !default;
8585

8686
$dialog-footer-flat-btn-bg-color: $secondary-bg-color !default;
8787
$dialog-footer-flat-hover-btn-bg-color: $secondary-bg-color-hover !default;
88-
$dialog-footer-flat-btn-border-color: $secondary-bg-color !default;
89-
$dialog-footer-flat-btn-content-color: $primary-text-color !default;
88+
$dialog-footer-flat-btn-border-color: $secondary-border-color !default;
89+
$dialog-footer-flat-btn-content-color: $secondary-text-color !default;
9090
$dialog-enable-resize-padding-bottom: 15px !default;

controls/charts/CHANGELOG.md

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

33
## [Unreleased]
44

5+
## 20.3.50 (2022-10-18)
6+
7+
### Chart
8+
9+
#### Bug Fixes
10+
11+
- `#F178096` - Chart axis range is now calculated properly after zooming the chart.
12+
13+
### Bullet Chart
14+
15+
#### Bug Fixes
16+
17+
- `#F177357` - Data label gets cropped in Bullet Chart has been fixed.
18+
519
## 20.3.49 (2022-10-11)
620

721
### Chart
@@ -10,6 +24,12 @@
1024

1125
- `#I383934` - Now shared tooltip is rendering properly for all points.
1226

27+
### Sparkline
28+
29+
#### Bug Fixes
30+
31+
- `#F177692` - Sparkline component is not rendered in React Next app issue has been fixed.
32+
1333
## 20.3.48 (2022-10-05)
1434

1535
### Chart

controls/charts/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@syncfusion/ej2-charts",
3-
"version": "20.5.6",
3+
"version": "20.3.49",
44
"description": "Feature-rich chart control with built-in support for over 25 chart types, technical indictors, trendline, zooming, tooltip, selection, crosshair and trackball.",
55
"author": "Syncfusion Inc.",
66
"license": "SEE LICENSE IN license",

controls/charts/spec/chart/axis/axis.spec.ts

+3-4
Original file line numberDiff line numberDiff line change
@@ -1370,7 +1370,6 @@ describe('Chart Control', () =>{
13701370
enableSelectionZooming: true,
13711371
enableScrollbar: true
13721372
},
1373-
enableAutoIntervalOnBothAxis: true,
13741373
width: '800',
13751374
height: '450'
13761375
},
@@ -1390,17 +1389,17 @@ describe('Chart Control', () =>{
13901389
text = document.getElementById('chartContainer0_AxisLabel_0');
13911390
expect(text.textContent == '4.5').toBe(true);
13921391
text = document.getElementById('chartContainer1_AxisLabel_1');
1393-
expect(text.textContent == '0.2').toBe(true);
1392+
expect(text.textContent == '2').toBe(true);
13941393

13951394
});
13961395
it('Checking axis in Zoom mode Y', () => {
13971396
chartEle.primaryYAxis = { zoomFactor: 0.22, zoomPosition: 0.54 };
13981397
chartEle.zoomSettings = { mode: 'Y' };
13991398
chartEle.dataBind();
14001399
text = document.getElementById('chartContainer0_AxisLabel_0');
1401-
expect(text.textContent == '2.500').toBe(true);
1400+
expect(text.textContent == '4.5').toBe(true);
14021401
text = document.getElementById('chartContainer1_AxisLabel_1');
1403-
expect(text.textContent == '1.250').toBe(true);
1402+
expect(text.textContent == '9.5').toBe(true);
14041403

14051404
});
14061405
});

controls/charts/spec/chart/axis/multiple-labels.spec.ts

+16-2
Original file line numberDiff line numberDiff line change
@@ -105,8 +105,7 @@ describe('Chart Control', () => {
105105
loaded = (args: Object): void => {
106106
svg = document.getElementById('container0_Axis_MultiLevelLabel_Level_0_Text_0');
107107
expect(svg !== null).toBe(true);
108-
expect(svg.getAttribute('x') === '156.14285714285717' || svg.getAttribute('x') === '191.14285714285717' ||
109-
svg.getAttribute('x') === '226' || svg.getAttribute('x') === '154.2857142857143').toBe(true);
108+
expect(svg.getAttribute('x') === '296.8571428571429' || svg.getAttribute('x') === '133.2857142857143').toBe(true);
110109
expect(svg.getAttribute('y') === '405.5' || svg.getAttribute('y') === '406.5' || svg.getAttribute('y') === '405' ||
111110
svg.getAttribute('y') === '409').toBe(true);
112111
done();
@@ -588,6 +587,21 @@ describe('Chart Control', () => {
588587
chartObj.primaryXAxis.opposedPosition = false;
589588
chartObj.refresh();
590589
});
590+
it('Checking multilevel labels with onTicks and far', (done: Function) => {
591+
loaded = (args: Object): void => {
592+
svg = document.getElementById('container0_Axis_MultiLevelLabel_Level_0_Text_0');
593+
expect(svg !== null).toBe(true);
594+
console.log(svg.getAttribute('y'));
595+
expect(svg.getAttribute('x') === '1073.4285714285713' || svg.getAttribute('x') === '425.1428571428572').toBe(true);
596+
expect(svg.getAttribute('y') === '405.5' || svg.getAttribute('y') === '376' || svg.getAttribute('y') === '405' ||
597+
svg.getAttribute('y') === '409').toBe(true);
598+
done();
599+
};
600+
chartObj.loaded = loaded;
601+
chartObj.primaryXAxis.labelPlacement = 'OnTicks';
602+
chartObj.primaryXAxis.multiLevelLabels[0].alignment = "Far";
603+
chartObj.refresh();
604+
});
591605
});
592606

593607
describe('Chart Multiple labels click - Category axis', () => {

controls/charts/src/bullet-chart/bullet-chart.ts

+10-1
Original file line numberDiff line numberDiff line change
@@ -1128,12 +1128,21 @@ export class BulletChart extends Component<HTMLElement> implements INotifyProper
11281128
anchor = this.type === 'Rect' ? 'end' : (enableRtl ? 'end' : 'start');
11291129
x = featureBounds.x + (enableRtl ? (this.type === 'Rect' ? textWidth + elementSpacing : -elementSpacing) :
11301130
featureBounds.width) + (this.type === 'Rect' ? -elementSpacing / 2 : elementSpacing / 2);
1131+
if (x - textWidth < this.initialClipRect.x) {
1132+
anchor = 'start';
1133+
}
1134+
if (x > this.initialClipRect.width) {
1135+
x -= textWidth;
1136+
}
11311137
y = featureBounds.y + featureBounds.height / 2;
11321138
} else {
11331139
anchor = 'middle';
11341140
x = featureBounds.y + featureBounds.height / 2;
1135-
y = featureBounds.x + (enableRtl ? featureBounds.width + (this.type === 'Rect' ? -textHeight : textHeight) : 0) +
1141+
y = featureBounds.x + (enableRtl ? featureBounds.width + (this.type === 'Rect' ? -elementSpacing : elementSpacing) : 0) +
11361142
(this.type === 'Rect' ? elementSpacing : -elementSpacing);
1143+
if (y + (textHeight / 2) > this.initialClipRect.height + this.initialClipRect.y) {
1144+
y = y - (textHeight / 3);
1145+
}
11371146
}
11381147
let labelOptions: TextOption = new TextOption(
11391148
this.element.id + '_DataLabel_' + i,

0 commit comments

Comments
 (0)