@syncfusion/ej2-calendars 32.2.4 → 32.2.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -4286,13 +4286,14 @@ let DatePicker = class DatePicker extends Calendar {
4286
4286
  if (!isNullOrUndefined(this.cssClass)) {
4287
4287
  this.popupWrapper.className += ' ' + this.cssClass;
4288
4288
  }
4289
+ const appendToElement = this.getAppendToElement();
4289
4290
  if (Browser.isDevice) {
4290
4291
  this.modelHeader();
4291
4292
  this.modal = this.createElement('div');
4292
4293
  this.modal.className = '' + ROOT$1 + ' e-date-modal';
4293
- document.body.className += ' ' + OVERFLOW;
4294
+ appendToElement.className += ' ' + OVERFLOW;
4294
4295
  this.modal.style.display = 'block';
4295
- document.body.appendChild(this.modal);
4296
+ appendToElement.appendChild(this.modal);
4296
4297
  }
4297
4298
  //this.calendarElement represent the Calendar object from the Calendar class.
4298
4299
  this.calendarElement.querySelector('table tbody').className = '';
@@ -4626,9 +4627,10 @@ let DatePicker = class DatePicker extends Calendar {
4626
4627
  this.previousDate = outOfRange;
4627
4628
  this.createCalendar();
4628
4629
  }
4630
+ const appendToElement = this.getAppendToElement();
4629
4631
  if (Browser.isDevice) {
4630
4632
  this.mobilePopupWrapper = this.createElement('div', { className: 'e-datepick-mob-popup-wrap' });
4631
- document.body.appendChild(this.mobilePopupWrapper);
4633
+ appendToElement.appendChild(this.mobilePopupWrapper);
4632
4634
  }
4633
4635
  this.preventArgs = {
4634
4636
  preventDefault: () => {
@@ -4637,7 +4639,7 @@ let DatePicker = class DatePicker extends Calendar {
4637
4639
  popup: this.popupObj,
4638
4640
  event: e || null,
4639
4641
  cancel: false,
4640
- appendTo: Browser.isDevice ? this.mobilePopupWrapper : document.body
4642
+ appendTo: Browser.isDevice ? this.mobilePopupWrapper : appendToElement
4641
4643
  };
4642
4644
  const eventArgs = this.preventArgs;
4643
4645
  this.trigger('open', eventArgs, (eventArgs) => {
@@ -4697,7 +4699,8 @@ let DatePicker = class DatePicker extends Calendar {
4697
4699
  cancel: false
4698
4700
  };
4699
4701
  removeClass(this.inputWrapper.buttons, ACTIVE);
4700
- removeClass([document.body], OVERFLOW);
4702
+ const appendToElement = this.getAppendToElement();
4703
+ removeClass([appendToElement], OVERFLOW);
4701
4704
  const eventArgs = this.preventArgs;
4702
4705
  if (this.isCalendar()) {
4703
4706
  this.trigger('close', eventArgs, (eventArgs) => {
@@ -5138,6 +5141,16 @@ let DatePicker = class DatePicker extends Calendar {
5138
5141
  getModuleName() {
5139
5142
  return 'datepicker';
5140
5143
  }
5144
+ getAppendToElement() {
5145
+ if (this.isAngular) {
5146
+ const cdkPane = this.element.closest('.cdk-overlay-pane');
5147
+ const popoverEl = this.element.closest('[popover]');
5148
+ if (cdkPane && popoverEl) {
5149
+ return cdkPane;
5150
+ }
5151
+ }
5152
+ return document.body;
5153
+ }
5141
5154
  updateFloatLabelOverflowWidth() {
5142
5155
  const container = this.inputWrapper.container;
5143
5156
  const label = container.querySelector('.e-float-text.e-label-bottom');
@@ -8512,13 +8525,14 @@ let DateRangePicker = class DateRangePicker extends CalendarBase {
8512
8525
  this.popupObj.hide();
8513
8526
  this.popupWrapper = this.createElement('div', { id: this.element.id + '_popup', className: ROOT$2 + ' ' + POPUP$1 });
8514
8527
  this.renderControl();
8528
+ const appendToElement = this.getAppendToElement();
8515
8529
  this.openEventArgs = {
8516
8530
  popup: this.popupObj || null,
8517
8531
  cancel: false,
8518
8532
  date: this.inputElement.value,
8519
8533
  model: this,
8520
8534
  event: event ? event : null,
8521
- appendTo: this.isMobile || Browser.isDevice ? this.mobileRangePopupWrap : document.body
8535
+ appendTo: this.isMobile || Browser.isDevice ? this.mobileRangePopupWrap : appendToElement
8522
8536
  };
8523
8537
  const eventArgs = this.openEventArgs;
8524
8538
  this.trigger('open', eventArgs, (eventArgs) => {
@@ -8600,9 +8614,10 @@ let DateRangePicker = class DateRangePicker extends CalendarBase {
8600
8614
  if (!isNullOrUndefined(this.cssClass) && this.cssClass.trim() !== '') {
8601
8615
  this.popupWrapper.className += ' ' + this.cssClass;
8602
8616
  }
8617
+ const appendToElement = this.getAppendToElement();
8603
8618
  if (this.isMobile && this.isCustomWindow) {
8604
8619
  this.modal = this.createElement('div');
8605
- document.body.appendChild(this.modal);
8620
+ appendToElement.appendChild(this.modal);
8606
8621
  }
8607
8622
  this.popupObj = new Popup(this.popupWrapper, {
8608
8623
  relateTo: this.isMobile && this.isCustomWindow ? document.body :
@@ -8727,7 +8742,7 @@ let DateRangePicker = class DateRangePicker extends CalendarBase {
8727
8742
  }
8728
8743
  if (this.isMobile && this.isCustomWindow) {
8729
8744
  addClass([this.modal], [DEVICE$1, ROOT$2, 'e-range-modal']);
8730
- document.body.className += ' ' + OVERFLOW$1;
8745
+ appendToElement.className += ' ' + OVERFLOW$1;
8731
8746
  this.modal.style.display = 'block';
8732
8747
  }
8733
8748
  EventHandler.add(document, 'mousedown touchstart', this.documentHandler, this);
@@ -9583,6 +9598,16 @@ let DateRangePicker = class DateRangePicker extends CalendarBase {
9583
9598
  getModuleName() {
9584
9599
  return 'daterangepicker';
9585
9600
  }
9601
+ getAppendToElement() {
9602
+ if (this.isAngular) {
9603
+ const cdkPane = this.element.closest('.cdk-overlay-pane');
9604
+ const popoverEl = this.element.closest('[popover]');
9605
+ if (cdkPane && popoverEl) {
9606
+ return cdkPane;
9607
+ }
9608
+ }
9609
+ return document.body;
9610
+ }
9586
9611
  updateFloatLabelOverflowWidth() {
9587
9612
  const container = this.inputWrapper.container;
9588
9613
  const label = container.querySelector('.e-float-text.e-label-bottom');
@@ -9660,9 +9685,10 @@ let DateRangePicker = class DateRangePicker extends CalendarBase {
9660
9685
  this.targetElement = element;
9661
9686
  }
9662
9687
  this.createPopup();
9688
+ const appendToElement = this.getAppendToElement();
9663
9689
  if (this.isMobile || Browser.isDevice) {
9664
9690
  this.mobileRangePopupWrap = this.createElement('div', { className: 'e-daterangepick-mob-popup-wrap' });
9665
- document.body.appendChild(this.mobileRangePopupWrap);
9691
+ appendToElement.appendChild(this.mobileRangePopupWrap);
9666
9692
  }
9667
9693
  this.openEventArgs = {
9668
9694
  popup: this.popupObj || null,
@@ -9670,7 +9696,7 @@ let DateRangePicker = class DateRangePicker extends CalendarBase {
9670
9696
  date: this.inputElement.value,
9671
9697
  model: this,
9672
9698
  event: event ? event : null,
9673
- appendTo: this.isMobile || Browser.isDevice ? this.mobileRangePopupWrap : document.body
9699
+ appendTo: this.isMobile || Browser.isDevice ? this.mobileRangePopupWrap : appendToElement
9674
9700
  };
9675
9701
  const eventArgs = this.openEventArgs;
9676
9702
  this.trigger('open', eventArgs, (eventArgs) => {
@@ -9775,7 +9801,8 @@ let DateRangePicker = class DateRangePicker extends CalendarBase {
9775
9801
  }
9776
9802
  }
9777
9803
  this.targetElement = null;
9778
- removeClass([document.body], OVERFLOW$1);
9804
+ const appendToElement = this.getAppendToElement();
9805
+ removeClass([appendToElement], OVERFLOW$1);
9779
9806
  EventHandler.remove(document, 'mousedown touchstart', this.documentHandler);
9780
9807
  if (this.isMobile && this.modal) {
9781
9808
  this.modal.style.display = 'none';
@@ -11367,7 +11394,8 @@ let TimePicker = class TimePicker extends Component {
11367
11394
  cancel: false,
11368
11395
  name: 'open'
11369
11396
  };
11370
- removeClass([document.body], OVERFLOW$2);
11397
+ const appendToElement = this.getAppendToElement();
11398
+ removeClass([appendToElement], OVERFLOW$2);
11371
11399
  this.trigger('close', args, (args) => {
11372
11400
  if (!args.cancel) {
11373
11401
  const animModel = {
@@ -12465,22 +12493,23 @@ let TimePicker = class TimePicker extends Component {
12465
12493
  }
12466
12494
  else {
12467
12495
  this.popupCreation();
12496
+ const appendToElement = this.getAppendToElement();
12468
12497
  if (Browser.isDevice && this.listWrapper) {
12469
12498
  this.modal = this.createElement('div');
12470
12499
  this.modal.className = '' + ROOT$3 + ' e-time-modal';
12471
- document.body.className += ' ' + OVERFLOW$2;
12472
- document.body.appendChild(this.modal);
12500
+ appendToElement.className += ' ' + OVERFLOW$2;
12501
+ appendToElement.appendChild(this.modal);
12473
12502
  }
12474
12503
  if (Browser.isDevice) {
12475
12504
  this.mobileTimePopupWrap = this.createElement('div', { className: 'e-timepicker-mob-popup-wrap' });
12476
- document.body.appendChild(this.mobileTimePopupWrap);
12505
+ appendToElement.appendChild(this.mobileTimePopupWrap);
12477
12506
  }
12478
12507
  this.openPopupEventArgs = {
12479
12508
  popup: this.popupObj || null,
12480
12509
  cancel: false,
12481
12510
  event: event || null,
12482
12511
  name: 'open',
12483
- appendTo: Browser.isDevice ? this.mobileTimePopupWrap : document.body
12512
+ appendTo: Browser.isDevice ? this.mobileTimePopupWrap : appendToElement
12484
12513
  };
12485
12514
  const eventArgs = this.openPopupEventArgs;
12486
12515
  this.trigger('open', eventArgs, (eventArgs) => {
@@ -12611,6 +12640,16 @@ let TimePicker = class TimePicker extends Component {
12611
12640
  getModuleName() {
12612
12641
  return 'timepicker';
12613
12642
  }
12643
+ getAppendToElement() {
12644
+ if (this.isAngular) {
12645
+ const cdkPane = this.element.closest('.cdk-overlay-pane');
12646
+ const popoverEl = this.element.closest('[popover]');
12647
+ if (cdkPane && popoverEl) {
12648
+ return cdkPane;
12649
+ }
12650
+ }
12651
+ return document.body;
12652
+ }
12614
12653
  updateFloatLabelOverflowWidth() {
12615
12654
  const container = this.inputWrapper.container;
12616
12655
  const label = container.querySelector('.e-float-text.e-label-bottom');
@@ -13516,7 +13555,8 @@ let DateTimePicker = class DateTimePicker extends DatePicker {
13516
13555
  this.listCreation();
13517
13556
  append([this.listWrapper], this.dateTimeWrapper);
13518
13557
  }
13519
- document.body.appendChild(this.dateTimeWrapper);
13558
+ const appendToElement = this.getAppendToElement();
13559
+ appendToElement.appendChild(this.dateTimeWrapper);
13520
13560
  this.addTimeSelection();
13521
13561
  this.renderPopup();
13522
13562
  this.setTimeScrollPosition();
@@ -13594,12 +13634,13 @@ let DateTimePicker = class DateTimePicker extends DatePicker {
13594
13634
  }
13595
13635
  renderPopup() {
13596
13636
  this.containerStyle = this.inputWrapper.container.getBoundingClientRect();
13637
+ const appendToElement = this.getAppendToElement();
13597
13638
  if (Browser.isDevice) {
13598
13639
  this.timeModal = createElement('div');
13599
13640
  this.timeModal.className = '' + ROOT$4 + ' e-time-modal';
13600
- document.body.className += ' ' + OVERFLOW$3;
13641
+ appendToElement.className += ' ' + OVERFLOW$3;
13601
13642
  this.timeModal.style.display = 'block';
13602
- document.body.appendChild(this.timeModal);
13643
+ appendToElement.appendChild(this.timeModal);
13603
13644
  }
13604
13645
  if (Browser.isDevice) {
13605
13646
  this.modelWrapper = createElement('div', { className: 'e-datetime-mob-popup-wrap' });
@@ -13607,7 +13648,7 @@ let DateTimePicker = class DateTimePicker extends DatePicker {
13607
13648
  const dlgOverlay = createElement('div', { className: 'e-dlg-overlay' });
13608
13649
  dlgOverlay.style.zIndex = (this.zIndex - 1).toString();
13609
13650
  this.modelWrapper.appendChild(dlgOverlay);
13610
- document.body.appendChild(this.modelWrapper);
13651
+ appendToElement.appendChild(this.modelWrapper);
13611
13652
  }
13612
13653
  const offset = 4;
13613
13654
  this.popupObject = new Popup(this.dateTimeWrapper, {
@@ -14088,7 +14129,8 @@ let DateTimePicker = class DateTimePicker extends DatePicker {
14088
14129
  }
14089
14130
  else if (this.isTimePopupOpen()) {
14090
14131
  this.closePopup(e);
14091
- removeClass([document.body], OVERFLOW$3);
14132
+ const appendToElement = this.getAppendToElement();
14133
+ removeClass([appendToElement], OVERFLOW$3);
14092
14134
  if (Browser.isDevice && this.timeModal) {
14093
14135
  this.timeModal.style.display = 'none';
14094
14136
  this.timeModal.outerHTML = '';
@@ -14611,6 +14653,16 @@ let DateTimePicker = class DateTimePicker extends DatePicker {
14611
14653
  getModuleName() {
14612
14654
  return 'datetimepicker';
14613
14655
  }
14656
+ getAppendToElement() {
14657
+ if (this.isAngular) {
14658
+ const cdkPane = this.element.closest('.cdk-overlay-pane');
14659
+ const popoverEl = this.element.closest('[popover]');
14660
+ if (cdkPane && popoverEl) {
14661
+ return cdkPane;
14662
+ }
14663
+ }
14664
+ return document.body;
14665
+ }
14614
14666
  restoreValue() {
14615
14667
  this.previousDateTime = this.previousDate;
14616
14668
  this.currentDate = this.value ? this.value : new Date();