ngx-bootstrap 10.2.1 → 10.3.0

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.
Files changed (52) hide show
  1. package/accordion/package.json +2 -2
  2. package/alert/package.json +2 -2
  3. package/buttons/package.json +1 -1
  4. package/carousel/package.json +2 -2
  5. package/chronos/package.json +1 -1
  6. package/collapse/package.json +1 -1
  7. package/component-loader/package.json +2 -2
  8. package/datepicker/bs-datepicker.config.d.ts +4 -0
  9. package/datepicker/bs-datepicker.css +6 -3
  10. package/datepicker/bs-datepicker.css.map +1 -1
  11. package/datepicker/bs-datepicker.scss +7 -2
  12. package/datepicker/esm2020/bs-datepicker.component.mjs +4 -3
  13. package/datepicker/esm2020/bs-datepicker.config.mjs +5 -1
  14. package/datepicker/esm2020/bs-daterangepicker.component.mjs +4 -3
  15. package/datepicker/fesm2015/ngx-bootstrap-datepicker.mjs +13 -7
  16. package/datepicker/fesm2015/ngx-bootstrap-datepicker.mjs.map +1 -1
  17. package/datepicker/fesm2020/ngx-bootstrap-datepicker.mjs +10 -4
  18. package/datepicker/fesm2020/ngx-bootstrap-datepicker.mjs.map +1 -1
  19. package/datepicker/package.json +5 -5
  20. package/dropdown/package.json +2 -2
  21. package/focus-trap/package.json +1 -1
  22. package/locale/package.json +2 -2
  23. package/mini-ngrx/package.json +1 -1
  24. package/modal/bs-modal.service.d.ts +1 -0
  25. package/modal/esm2020/bs-modal.service.mjs +7 -1
  26. package/modal/esm2020/modal-container.component.mjs +7 -1
  27. package/modal/esm2020/modal.directive.mjs +5 -1
  28. package/modal/fesm2015/ngx-bootstrap-modal.mjs +31 -17
  29. package/modal/fesm2015/ngx-bootstrap-modal.mjs.map +1 -1
  30. package/modal/fesm2020/ngx-bootstrap-modal.mjs +31 -17
  31. package/modal/fesm2020/ngx-bootstrap-modal.mjs.map +1 -1
  32. package/modal/modal-container.component.d.ts +1 -0
  33. package/modal/modal.directive.d.ts +1 -0
  34. package/modal/package.json +3 -3
  35. package/package.json +1 -1
  36. package/pagination/package.json +1 -1
  37. package/popover/package.json +4 -4
  38. package/positioning/package.json +2 -2
  39. package/progressbar/package.json +1 -1
  40. package/rating/package.json +1 -1
  41. package/schematics/utils/current_dependency_versions.json +1 -1
  42. package/sortable/package.json +1 -1
  43. package/tabs/package.json +1 -1
  44. package/timepicker/package.json +2 -2
  45. package/tooltip/package.json +4 -4
  46. package/typeahead/package.json +3 -3
  47. package/utils/esm2020/triggers.mjs +5 -3
  48. package/utils/fesm2015/ngx-bootstrap-utils.mjs +4 -2
  49. package/utils/fesm2015/ngx-bootstrap-utils.mjs.map +1 -1
  50. package/utils/fesm2020/ngx-bootstrap-utils.mjs +4 -2
  51. package/utils/fesm2020/ngx-bootstrap-utils.mjs.map +1 -1
  52. package/utils/package.json +1 -1
@@ -1,8 +1,8 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { Injectable, InjectionToken, Component, HostListener, EventEmitter, Directive, Optional, Inject, Input, Output, NgModule } from '@angular/core';
3
+ import { document, Utils, window as window$1 } from 'ngx-bootstrap/utils';
3
4
  import * as i2 from 'ngx-bootstrap/focus-trap';
4
5
  import { FocusTrapModule } from 'ngx-bootstrap/focus-trap';
5
- import { Utils, document as document$1, window as window$1 } from 'ngx-bootstrap/utils';
6
6
  import * as i1 from 'ngx-bootstrap/component-loader';
7
7
  import { ComponentLoaderFactory } from 'ngx-bootstrap/component-loader';
8
8
  import { PositioningService } from 'ngx-bootstrap/positioning';
@@ -84,11 +84,13 @@ class ModalContainerComponent {
84
84
  this._renderer = _renderer;
85
85
  this.isShown = false;
86
86
  this.isAnimated = false;
87
+ this._focusEl = null;
87
88
  this.isModalHiding = false;
88
89
  this.clickStartedInContent = false;
89
90
  this.config = Object.assign({}, options);
90
91
  }
91
92
  ngOnInit() {
93
+ this._focusEl = document.activeElement;
92
94
  if (this.isAnimated) {
93
95
  this._renderer.addClass(this._element.nativeElement, CLASS_NAME.FADE);
94
96
  }
@@ -172,6 +174,9 @@ class ModalContainerComponent {
172
174
  }
173
175
  (_b = this.bsModalService) === null || _b === void 0 ? void 0 : _b.hide(this.config.id);
174
176
  this.isModalHiding = false;
177
+ if (this._focusEl) {
178
+ this._focusEl.focus();
179
+ }
175
180
  }, this.isAnimated ? TRANSITION_DURATIONS.MODAL : 0);
176
181
  }
177
182
  }
@@ -298,6 +303,7 @@ class ModalDirective {
298
303
  this.timerRmBackDrop = 0;
299
304
  this.isNested = false;
300
305
  this.clickStartedInContent = false;
306
+ this._focusEl = null;
301
307
  this._backdrop = clf.createLoader(_element, _viewContainerRef, _renderer);
302
308
  this._config = modalDefaultOption || modalConfigDefaults;
303
309
  }
@@ -370,13 +376,13 @@ class ModalDirective {
370
376
  this._isShown = true;
371
377
  this.checkScrollbar();
372
378
  this.setScrollbar();
373
- if (document$1 && document$1.body) {
374
- if (document$1.body.classList.contains(CLASS_NAME.OPEN)) {
379
+ if (document && document.body) {
380
+ if (document.body.classList.contains(CLASS_NAME.OPEN)) {
375
381
  this.isNested = true;
376
382
  }
377
383
  else {
378
- this._renderer.addClass(document$1.body, CLASS_NAME.OPEN);
379
- this._renderer.setStyle(document$1.body, 'overflow-y', 'hidden');
384
+ this._renderer.addClass(document.body, CLASS_NAME.OPEN);
385
+ this._renderer.setStyle(document.body, 'overflow-y', 'hidden');
380
386
  }
381
387
  }
382
388
  this.showBackdrop(() => {
@@ -414,6 +420,9 @@ class ModalDirective {
414
420
  else {
415
421
  this.hideModal();
416
422
  }
423
+ if (this._focusEl) {
424
+ this._focusEl.focus();
425
+ }
417
426
  }
418
427
  getConfig(config) {
419
428
  return Object.assign({}, this._config, config);
@@ -427,8 +436,8 @@ class ModalDirective {
427
436
  if (!this._element.nativeElement.parentNode ||
428
437
  this._element.nativeElement.parentNode.nodeType !== Node.ELEMENT_NODE) {
429
438
  // don't move modals dom position
430
- if (document$1 && document$1.body) {
431
- document$1.body.appendChild(this._element.nativeElement);
439
+ if (document && document.body) {
440
+ document.body.appendChild(this._element.nativeElement);
432
441
  }
433
442
  }
434
443
  this._renderer.setAttribute(this._element.nativeElement, 'aria-hidden', 'false');
@@ -458,9 +467,9 @@ class ModalDirective {
458
467
  this._renderer.setStyle(this._element.nativeElement, 'display', 'none');
459
468
  this.showBackdrop(() => {
460
469
  if (!this.isNested) {
461
- if (document$1 && document$1.body) {
462
- this._renderer.removeClass(document$1.body, CLASS_NAME.OPEN);
463
- this._renderer.setStyle(document$1.body, 'overflow-y', '');
470
+ if (document && document.body) {
471
+ this._renderer.removeClass(document.body, CLASS_NAME.OPEN);
472
+ this._renderer.setStyle(document.body, 'overflow-y', '');
464
473
  }
465
474
  this.resetScrollbar();
466
475
  }
@@ -554,31 +563,31 @@ class ModalDirective {
554
563
  /** Scroll bar tricks */
555
564
  /** @internal */
556
565
  checkScrollbar() {
557
- this.isBodyOverflowing = document$1.body.clientWidth < window$1.innerWidth;
566
+ this.isBodyOverflowing = document.body.clientWidth < window$1.innerWidth;
558
567
  this.scrollbarWidth = this.getScrollbarWidth();
559
568
  }
560
569
  setScrollbar() {
561
- if (!document$1) {
570
+ if (!document) {
562
571
  return;
563
572
  }
564
573
  this.originalBodyPadding = parseInt(window$1
565
- .getComputedStyle(document$1.body)
574
+ .getComputedStyle(document.body)
566
575
  .getPropertyValue('padding-right') || 0, 10);
567
576
  if (this.isBodyOverflowing) {
568
- document$1.body.style.paddingRight = `${this.originalBodyPadding +
577
+ document.body.style.paddingRight = `${this.originalBodyPadding +
569
578
  this.scrollbarWidth}px`;
570
579
  }
571
580
  }
572
581
  resetScrollbar() {
573
- document$1.body.style.paddingRight = `${this.originalBodyPadding}px`;
582
+ document.body.style.paddingRight = `${this.originalBodyPadding}px`;
574
583
  }
575
584
  // thx d.walsh
576
585
  getScrollbarWidth() {
577
586
  const scrollDiv = this._renderer.createElement('div');
578
587
  this._renderer.addClass(scrollDiv, CLASS_NAME.SCROLLBAR_MEASURER);
579
- this._renderer.appendChild(document$1.body, scrollDiv);
588
+ this._renderer.appendChild(document.body, scrollDiv);
580
589
  const scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth;
581
- this._renderer.removeChild(document$1.body, scrollDiv);
590
+ this._renderer.removeChild(document.body, scrollDiv);
582
591
  return scrollbarWidth;
583
592
  }
584
593
  }
@@ -634,6 +643,7 @@ class BsModalService {
634
643
  this.scrollbarWidth = 0;
635
644
  this.modalsCount = 0;
636
645
  this.loaders = [];
646
+ this._focusEl = null;
637
647
  this._backdropLoader = this.clf.createLoader();
638
648
  this._renderer = rendererFactory.createRenderer(null, null);
639
649
  this.config = modalDefaultOption ?
@@ -644,6 +654,7 @@ class BsModalService {
644
654
  show(
645
655
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
646
656
  content, config) {
657
+ this._focusEl = document.activeElement;
647
658
  this.modalsCount++;
648
659
  this._createLoaders();
649
660
  // must be different per every show() call
@@ -666,6 +677,9 @@ class BsModalService {
666
677
  this._hideModal(id);
667
678
  this.removeLoaders(id);
668
679
  }, this.config.animated ? TRANSITION_DURATIONS.BACKDROP : 0);
680
+ if (this._focusEl) {
681
+ this._focusEl.focus();
682
+ }
669
683
  }
670
684
  _showBackdrop() {
671
685
  const isBackdropEnabled = this.config.backdrop === true || this.config.backdrop === 'static';