Skip to content

Commit 9be09ef

Browse files
author
pipeline
committed
v19.2.46 is released
1 parent 80b485d commit 9be09ef

File tree

989 files changed

+3493
-2190
lines changed

Some content is hidden

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

989 files changed

+3493
-2190
lines changed

controls/barcodegenerator/README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
[![coverage](http://ej2.syncfusion.com/badges/ej2-barcode-generator/coverage.svg)](http://ej2.syncfusion.com/badges/ej2-barcode-generator)
2+
13
# ej2-barcode-generator
24

35
> This is a commercial product and requires a paid license for possession or use. Syncfusion’s licensed software, including this component, is subject to the terms and conditions of Syncfusion's [EULA](https://www.syncfusion.com/eula/es/). To acquire a license, you can purchase one at [https://www.syncfusion.com/sales/products](https://www.syncfusion.com/sales/products) or start a free 30-day trial [here](https://www.syncfusion.com/account/manage-trials/start-trials).

controls/barcodegenerator/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-barcode-generator",
3-
"version": "19.1.63",
3+
"version": "19.2.44",
44
"description": "Barcode generator component is a pure JavaScript library which will convert a string to Barcode and show it to the user. This supports major 1D and 2D barcodes including coda bar, code 128, QR Code.",
55
"author": "Syncfusion Inc.",
66
"license": "SEE LICENSE IN license",

controls/buttons/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-
## 19.2.44 (2021-06-30)
5+
## 19.2.46 (2021-07-06)
66

77
### Chips
88

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

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ describe('RadioButton', () => {
7070

7171
it('RadioButton with cssClass', () => {
7272
radio = new RadioButton({ cssClass: 'class' }, '#radio');
73-
expect(element.nextElementSibling.classList.contains('class')).toEqual(true);
73+
expect(element.parentElement.classList.contains('class')).toEqual(true);
7474
});
7575

7676
it('RadioButton with change event', () => {
@@ -231,10 +231,10 @@ describe('RadioButton', () => {
231231
radio = new RadioButton({}, '#radio');
232232
radio.cssClass = 'class';
233233
radio.dataBind();
234-
expect(element.nextElementSibling.classList.contains('class')).toEqual(true);
234+
expect(element.parentElement.classList.contains('class')).toEqual(true);
235235
radio.cssClass = 'newClass';
236236
radio.dataBind();
237-
expect(element.nextElementSibling.classList.contains('newClass')).toEqual(true);
237+
expect(element.parentElement.classList.contains('newClass')).toEqual(true);
238238
});
239239
});
240240

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

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -236,6 +236,14 @@ export class RadioButton extends Component<HTMLInputElement> implements INotifyP
236236
return this.addOnPersist(['checked']);
237237
}
238238

239+
private getWrapper(): Element {
240+
if (this.element) {
241+
return this.element.parentElement;
242+
} else {
243+
return null;
244+
}
245+
}
246+
239247
private getLabel(): Element {
240248
if (this.element) {
241249
return this.element.nextElementSibling;
@@ -291,7 +299,7 @@ export class RadioButton extends Component<HTMLInputElement> implements INotifyP
291299
label.classList.add(RTL);
292300
}
293301
if (this.cssClass) {
294-
addClass([label], this.cssClass.split(' '));
302+
addClass([wrapper], this.cssClass.split(' '));
295303
}
296304
if (this.label) {
297305
this.setText(this.label);
@@ -325,6 +333,7 @@ export class RadioButton extends Component<HTMLInputElement> implements INotifyP
325333
* @returns {void}
326334
*/
327335
public onPropertyChanged(newProp: RadioButtonModel, oldProp: RadioButtonModel): void {
336+
const wrap: Element = this.getWrapper();
328337
const label: Element = this.getLabel();
329338
for (const prop of Object.keys(newProp)) {
330339
switch (prop) {
@@ -345,10 +354,10 @@ export class RadioButton extends Component<HTMLInputElement> implements INotifyP
345354
break;
346355
case 'cssClass':
347356
if (oldProp.cssClass) {
348-
removeClass([label], oldProp.cssClass.split(' '));
357+
removeClass([wrap], oldProp.cssClass.split(' '));
349358
}
350359
if (newProp.cssClass) {
351-
addClass([label], newProp.cssClass.split(' '));
360+
addClass([wrap], newProp.cssClass.split(' '));
352361
}
353362
break;
354363
case 'enableRtl':

controls/calendars/CHANGELOG.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,19 +8,19 @@
88

99
#### New Features
1010

11-
- `#245933` , `#F147808` - Now, you can enable the masked input using `enableMask` property
11+
- `#I245933` , `#F147808` - Now, you can enable the masked input using `enableMask` property.
1212

1313
### DateTimePicker
1414

1515
#### New Features
1616

17-
- `#299471` - Now, you can enable the masked input using `enableMask` property
17+
- `#I299471` - Now, you can enable the masked input using `enableMask` property.
1818

1919
### TimePicker
2020

2121
#### New Features
2222

23-
- Now, you can enable the masked input using `enableMask` property
23+
- Now, you can enable the masked input using `enableMask` property.
2424

2525
## 18.4.34 (2021-01-12)
2626

controls/calendars/spec/datepicker/datepicker.spec.ts

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -4260,16 +4260,16 @@ function loadCultureFiles_mask(name: string, base?: boolean): void {
42604260

42614261
L10n.load({
42624262
'en': {
4263-
'MaskedDateTime': { day: 'day' , month: 'month', year: 'year' }
4263+
'datepicker': { day: 'day' , month: 'month', year: 'year' }
42644264
},
42654265
'de': {
4266-
'MaskedDateTime': { day: 'Tag' , month: 'Monat', year: 'Jahr' }
4266+
'datepicker': { day: 'Tag' , month: 'Monat', year: 'Jahr' }
42674267
},
42684268
'zh': {
4269-
'MaskedDateTime': { day: '日' , month: '月', year: '年' }
4269+
'datepicker': { day: '日' , month: '月', year: '年' }
42704270
},
42714271
'ja': {
4272-
'MaskedDateTime': { day: '日' , month: '月', year: '年'}
4272+
'datepicker': { day: '日' , month: '月', year: '年'}
42734273
},
42744274
});
42754275

@@ -4323,15 +4323,15 @@ describe('Masked DatePicker', () => {
43234323
document.body.appendChild(inputEle);
43244324
datepicker = new DatePicker({enableMask: true});
43254325
datepicker.appendTo('#datepicker');
4326-
expect(datepicker.element.value).toBe('day/month/year');
4326+
expect(datepicker.element.value).toBe('month/day/year');
43274327
expect(datepicker.value).toBe(null);
43284328
});
43294329
it('Rendering with maskPlaceholder as custom type ', () => {
43304330
let inputEle: HTMLElement = createElement('input', { id: 'datepicker' });
43314331
document.body.appendChild(inputEle);
43324332
datepicker = new DatePicker({enableMask: true , maskPlaceholder: {day: 'd.',month: 'M.' ,year: 'y.'}});
43334333
datepicker.appendTo('#datepicker');
4334-
expect(datepicker.element.value).toBe('d./M./y.');
4334+
expect(datepicker.element.value).toBe('M./d./y.');
43354335
expect(datepicker.value).toBe(null);
43364336
});
43374337
it('With format property -1 ', () => {
@@ -4369,7 +4369,7 @@ describe('Masked DatePicker', () => {
43694369
it('with format property -5', () => {
43704370
let inputEle: HTMLElement = createElement('input', { id: 'datepicker' });
43714371
document.body.appendChild(inputEle);
4372-
datepicker = new DatePicker({enableMask: true , format: 'dd/MM/yy ddd'});
4372+
datepicker = new DatePicker({enableMask: true , format: 'dd/MM/yy E'});
43734373
datepicker.appendTo('#datepicker');
43744374
expect(datepicker.element.value).toBe('day/month/year day of the week');
43754375
expect(datepicker.value).toBe(null);
@@ -4440,7 +4440,7 @@ describe('Masked DatePicker', () => {
44404440
it('Increment and decrement of date using arrow keys', () => {
44414441
let inputEle: HTMLElement = createElement('input', { id: 'datepicker' });
44424442
document.body.appendChild(inputEle);
4443-
datepicker = new DatePicker({enableMask: true , format: 'dd/MM/yyyy'});
4443+
datepicker = new DatePicker({enableMask: true , format: 'd/MM/yyyy'});
44444444
datepicker.appendTo('#datepicker');
44454445
datepicker.focusIn();
44464446
expect(datepicker.element.value).toBe('day/month/year');
@@ -4896,7 +4896,7 @@ describe('Masked DatePicker', () => {
48964896
});
48974897
datepicker.appendTo('#date');
48984898
expect(datepicker.locale).toBe('ja');
4899-
datepicker.focusIn();
4899+
datepicker.inputFocusHandler();
49004900
expect(datepicker.element.value).toBe('日/月/年');
49014901
});
49024902
// it('culture(de) test case', () => {

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

Lines changed: 23 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -3351,16 +3351,16 @@ function loadCultureFiles_mask(name: string, base?: boolean): void {
33513351

33523352
L10n.load({
33533353
'en': {
3354-
'MaskedDateTime': { day: 'day' , month: 'month', year: 'year', hour: 'hour' ,minute: 'minute', second:'second' }
3354+
'datetimepicker': { day: 'day' , month: 'month', year: 'year', hour: 'hour' ,minute: 'minute', second:'second' }
33553355
},
33563356
'de': {
3357-
'MaskedDateTime': { day: 'Tag' , month: 'Monat', year: 'Jahr', hour: 'Stunde' ,minute: 'Minute', second:'Sekunden' }
3357+
'datetimepicker': { day: 'Tag' , month: 'Monat', year: 'Jahr', hour: 'Stunde' ,minute: 'Minute', second:'Sekunden' }
33583358
},
33593359
'zh': {
3360-
'MaskedDateTime': { day: '日' , month: '月', year: '年', hour: '小時' ,minute: '分鐘', second:'第二' }
3360+
'datetimepicker': { day: '日' , month: '月', year: '年', hour: '小時' ,minute: '分鐘', second:'第二' }
33613361
},
33623362
'ja': {
3363-
'MaskedDateTime': { day: '日' , month: '月', year: '年', hour: '時間' ,minute: '分', second:'秒'}
3363+
'datetimepicker': { day: '日' , month: '月', year: '年', hour: '時間' ,minute: '分', second:'秒'}
33643364
},
33653365
});
33663366

@@ -3412,7 +3412,7 @@ describe('Datetimepicker', () => {
34123412
document.body.appendChild(inputEle);
34133413
datetimepicker = new DateTimePicker({enableMask: true});
34143414
datetimepicker.appendTo('#datetimepicker');
3415-
expect(datetimepicker.element.value).toBe('day/month/year');
3415+
expect(datetimepicker.element.value).toBe('month/day/year hour:minute AM');
34163416
expect(datetimepicker.value).toBe(null);
34173417
});
34183418
it('Rendering with maskPlaceholder as custom type ', () => {
@@ -3426,25 +3426,25 @@ describe('Datetimepicker', () => {
34263426
it('With format property ', () => {
34273427
let inputEle: HTMLElement = createElement('input', { id: 'datetimepicker' });
34283428
document.body.appendChild(inputEle);
3429-
datetimepicker = new DateTimePicker({enableMask: true , format: 'd:M:yyyy dddd'});
3429+
datetimepicker = new DateTimePicker({enableMask: true , format: 'd:M:yyyy E'});
34303430
datetimepicker.appendTo('#datetimepicker');
34313431
expect(datetimepicker.element.value).toBe('day:month:year day of the week');
34323432
expect(datetimepicker.value).toBe(null);
34333433
});
34343434
it('With format property -1 ', () => {
34353435
let inputEle: HTMLElement = createElement('input', { id: 'datetimepicker' });
34363436
document.body.appendChild(inputEle);
3437-
datetimepicker = new DateTimePicker({enableMask: true , format: 'MM yyyy'});
3437+
datetimepicker = new DateTimePicker({enableMask: true , format: 'MM yyyy EEEE'});
34383438
datetimepicker.appendTo('#datetimepicker');
3439-
expect(datetimepicker.element.value).toBe('month year');
3439+
expect(datetimepicker.element.value).toBe('month year day of the week');
34403440
expect(datetimepicker.value).toBe(null);
34413441
});
34423442
it('with format property -2', () => {
34433443
let inputEle: HTMLElement = createElement('input', { id: 'datetimepicker' });
34443444
document.body.appendChild(inputEle);
3445-
datetimepicker = new DateTimePicker({enableMask: true , format: 'MM/dd/yyyy'});
3445+
datetimepicker = new DateTimePicker({enableMask: true , format: 'MM/dd/yyyy EEEEE'});
34463446
datetimepicker.appendTo('#datetimepicker');
3447-
expect(datetimepicker.element.value).toBe('month/day/year');
3447+
expect(datetimepicker.element.value).toBe('month/day/year day of the week');
34483448
expect(datetimepicker.value).toBe(null);
34493449
});
34503450
it('with format property -3', () => {
@@ -3466,7 +3466,7 @@ describe('Datetimepicker', () => {
34663466
it('with format property -5', () => {
34673467
let inputEle: HTMLElement = createElement('input', { id: 'datetimepicker' });
34683468
document.body.appendChild(inputEle);
3469-
datetimepicker = new DateTimePicker({enableMask: true , format: 'dd/MM/yy ddd'});
3469+
datetimepicker = new DateTimePicker({enableMask: true , format: 'dd/MM/yy E'});
34703470
datetimepicker.appendTo('#datetimepicker');
34713471
expect(datetimepicker.element.value).toBe('day/month/year day of the week');
34723472
expect(datetimepicker.value).toBe(null);
@@ -3518,6 +3518,17 @@ describe('Datetimepicker', () => {
35183518
datetimepicker.keydownHandler(keyEventArgs);
35193519
expect(datetimepicker.element.selectionStart).toBe(10);
35203520
expect(datetimepicker.element.selectionEnd).toBe(14);
3521+
keyEventArgs.action = keyEventArgs.key = keyEventArgs.code = 'Home';
3522+
datetimepicker.keydownHandler(keyEventArgs);
3523+
expect(datetimepicker.element.selectionStart).toBe(0);
3524+
expect(datetimepicker.element.selectionEnd).toBe(3);
3525+
keyEventArgs.action = keyEventArgs.key = keyEventArgs.code = 'End';
3526+
datetimepicker.keydownHandler(keyEventArgs);
3527+
expect(datetimepicker.element.selectionStart).toBe(10);
3528+
expect(datetimepicker.element.selectionEnd).toBe(14);
3529+
3530+
3531+
35213532
});
35223533
it('Selection navigation using tab and shiftTab ', () => {
35233534
let inputEle: HTMLElement = createElement('input', { id: 'datetimepicker' });
@@ -3548,7 +3559,7 @@ describe('Datetimepicker', () => {
35483559
it('Increment and decrement of date using up arrow', () => {
35493560
let inputEle: HTMLElement = createElement('input', { id: 'datetimepicker' });
35503561
document.body.appendChild(inputEle);
3551-
datetimepicker = new DateTimePicker({enableMask: true , format: 'dd/MM/yyyy hh:mm:ss'});
3562+
datetimepicker = new DateTimePicker({enableMask: true , format: 'd/MM/yyyy hh:mm:ss'});
35523563
datetimepicker.appendTo('#datetimepicker');
35533564
datetimepicker.focusIn();
35543565
expect(datetimepicker.element.value).toBe('day/month/year hour:minute:second');

controls/calendars/spec/timepicker/masked-timepicker.spec.ts

Lines changed: 21 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -25,16 +25,16 @@ function loadCultureFiles(name: string, base?: boolean): void {
2525

2626
L10n.load({
2727
'en': {
28-
'MaskedDateTime': { day: 'day' , month: 'month', year: 'year', hour: 'hour' ,minute: 'minute', second:'second' }
28+
'timepicker': { day: 'day' , month: 'month', year: 'year', hour: 'hour' ,minute: 'minute', second:'second' }
2929
},
3030
'de': {
31-
'MaskedDateTime': { day: 'Tag' , month: 'Monat', year: 'Jahr', hour: 'Stunde' ,minute: 'Minute', second:'Sekunden' }
31+
'timepicker': { day: 'Tag' , month: 'Monat', year: 'Jahr', hour: 'Stunde' ,minute: 'Minute', second:'Sekunden' }
3232
},
3333
'zh': {
34-
'MaskedDateTime': { day: '日' , month: '月', year: '年', hour: '小時' ,minute: '分鐘', second:'第二' }
34+
'timepicker': { day: '日' , month: '月', year: '年', hour: '小時' ,minute: '分鐘', second:'第二' }
3535
},
3636
'ja': {
37-
'MaskedDateTime': { day: '日' , month: '月', year: '年', hour: '時間' ,minute: '分', second:'秒'}
37+
'timepicker': { day: '日' , month: '月', year: '年', hour: '時間' ,minute: '分', second:'秒'}
3838
},
3939
});
4040

@@ -282,6 +282,8 @@ describe('Timepicker', () => {
282282
timepicker.element.value = ':minute:second PM';
283283
timepicker.element.selectionStart = 0;
284284
timepicker.element.selectionEnd = 2;
285+
keyEventArgs.action = keyEventArgs.key = keyEventArgs.code = 'Delete'
286+
timepicker.keydownHandler(keyEventArgs);
285287
timepicker.inputEventHandler();
286288
expect(timepicker.element.value).toBe('hour:minute:second PM');
287289
expect(timepicker.value).toBe(null);
@@ -490,18 +492,21 @@ describe('Timepicker', () => {
490492
// expect(timepicker.element.value).toBe('Stunde:Minute:Sekunden');
491493
// });
492494

493-
// it('dynamic mask module ', () => {
494-
// let inputEle: HTMLElement = createElement('input', { id: 'timepicker' });
495-
// document.body.appendChild(inputEle);
496-
// timepicker = new TimePicker({format: 'hh:mm:ss'});
497-
// timepicker.appendTo('#timepicker');
498-
// expect(timepicker.element.value).toBe('');
499-
// expect(timepicker.value).toBe(null);
500-
// timepicker.enableMask = true;
501-
// timepicker.dataBind();
502-
// expect(timepicker.element.value).toBe('hour:minute:second');
503-
// expect(timepicker.value).toBe(null);
504-
// });
495+
it('dynamic mask module ', () => {
496+
let inputEle: HTMLElement = createElement('input', { id: 'timepicker' });
497+
document.body.appendChild(inputEle);
498+
timepicker = new TimePicker({format: 'hh:mm:ss'});
499+
timepicker.appendTo('#timepicker');
500+
expect(timepicker.element.value).toBe('');
501+
expect(timepicker.value).toBe(null);
502+
timepicker.enableMask = true;
503+
timepicker.dataBind();
504+
expect(timepicker.element.value).toBe('hour:minute:second');
505+
expect(timepicker.value).toBe(null);
506+
timepicker.enableMask = false;
507+
timepicker.dataBind();
508+
expect(timepicker.element.value).toBe('');
509+
});
505510
// it('ChangeEvent ', () => {
506511
// let inputEle: HTMLElement = createElement('input', { id: 'timepicker' });
507512
// document.body.appendChild(inputEle);

0 commit comments

Comments
 (0)