@progress/kendo-angular-popup 25.0.0-develop.2 → 25.0.0-develop.21

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.
@@ -3,11 +3,11 @@
3
3
  * Licensed under commercial license. See LICENSE.md in the project root for more information
4
4
  *-------------------------------------------------------------------------------------------*/
5
5
  import * as i0 from '@angular/core';
6
- import { Injectable, InjectionToken, Inject, Optional, EventEmitter, isDevMode, ViewChild, Output, Input, Component, EnvironmentInjector, createComponent, TemplateRef, NgModule } from '@angular/core';
6
+ import { Injectable, InjectionToken, Inject, Optional, EventEmitter, isDevMode, signal, afterNextRender, afterEveryRender, ViewChild, Output, Input, ChangeDetectionStrategy, Component, EnvironmentInjector, createComponent, TemplateRef, NgModule } from '@angular/core';
7
7
  import { siblingContainer, parents, addScroll, align, boundingOffset, offset, positionWithScroll, removeScroll, restrictToView, scrollPosition, getWindowViewPort } from '@progress/kendo-popup-common';
8
8
  import * as i1$1 from '@progress/kendo-angular-common';
9
9
  import { isDocumentAvailable, hasObservers, ResizeSensorComponent, KENDO_RESIZESENSOR, ResizeBatchService } from '@progress/kendo-angular-common';
10
- import { fromEvent, merge, from } from 'rxjs';
10
+ import { fromEvent, merge } from 'rxjs';
11
11
  import { auditTime } from 'rxjs/operators';
12
12
  import * as i1 from '@angular/animations';
13
13
  import { style, animate } from '@angular/animations';
@@ -322,10 +322,10 @@ class DOMService {
322
322
  isZoomed() {
323
323
  return this.zoomLevel() > 1;
324
324
  }
325
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: DOMService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
326
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: DOMService });
325
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.26", ngImport: i0, type: DOMService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
326
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.26", ngImport: i0, type: DOMService });
327
327
  }
328
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: DOMService, decorators: [{
328
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.26", ngImport: i0, type: DOMService, decorators: [{
329
329
  type: Injectable
330
330
  }] });
331
331
 
@@ -386,10 +386,10 @@ class AlignService {
386
386
  const rect = eitherRect(this._dom.position(anchor, element, scale), offset);
387
387
  return scaleRect(rect, scale);
388
388
  }
389
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: AlignService, deps: [{ token: DOMService }, { token: SCALE, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
390
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: AlignService });
389
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.26", ngImport: i0, type: AlignService, deps: [{ token: DOMService }, { token: SCALE, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
390
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.26", ngImport: i0, type: AlignService });
391
391
  }
392
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: AlignService, decorators: [{
392
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.26", ngImport: i0, type: AlignService, decorators: [{
393
393
  type: Injectable
394
394
  }], ctorParameters: () => [{ type: DOMService }, { type: undefined, decorators: [{
395
395
  type: Inject,
@@ -435,10 +435,10 @@ class PositionService {
435
435
  offset: offset
436
436
  };
437
437
  }
438
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: PositionService, deps: [{ token: DOMService }, { token: SCALE, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
439
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: PositionService });
438
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.26", ngImport: i0, type: PositionService, deps: [{ token: DOMService }, { token: SCALE, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
439
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.26", ngImport: i0, type: PositionService });
440
440
  }
441
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: PositionService, decorators: [{
441
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.26", ngImport: i0, type: PositionService, decorators: [{
442
442
  type: Injectable
443
443
  }], ctorParameters: () => [{ type: DOMService }, { type: undefined, decorators: [{
444
444
  type: Inject,
@@ -452,18 +452,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
452
452
  */
453
453
  class ResizeService {
454
454
  _dom;
455
- _zone;
455
+ zone;
456
456
  subscription;
457
- constructor(_dom, _zone) {
457
+ constructor(_dom, zone) {
458
458
  this._dom = _dom;
459
- this._zone = _zone;
459
+ this.zone = zone;
460
460
  }
461
461
  subscribe(callback) {
462
462
  if (!isDocumentAvailable()) {
463
463
  return;
464
464
  }
465
- this._zone.runOutsideAngular(() => {
466
- this.subscription = fromEvent(this._dom.getWindow(), "resize")
465
+ this.zone.runOutsideAngular(() => {
466
+ this.subscription = fromEvent(this._dom.getWindow(), 'resize')
467
467
  .pipe(auditTime(FRAME_DURATION))
468
468
  .subscribe(() => callback());
469
469
  });
@@ -477,10 +477,10 @@ class ResizeService {
477
477
  isUnsubscribed() {
478
478
  return this.subscription && this.subscription.closed;
479
479
  }
480
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: ResizeService, deps: [{ token: DOMService }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Injectable });
481
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: ResizeService });
480
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.26", ngImport: i0, type: ResizeService, deps: [{ token: DOMService }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Injectable });
481
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.26", ngImport: i0, type: ResizeService });
482
482
  }
483
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: ResizeService, decorators: [{
483
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.26", ngImport: i0, type: ResizeService, decorators: [{
484
484
  type: Injectable
485
485
  }], ctorParameters: () => [{ type: DOMService }, { type: i0.NgZone }] });
486
486
 
@@ -493,12 +493,12 @@ const THRESHOLD_DIFF = 1;
493
493
  */
494
494
  class ScrollableService {
495
495
  _dom;
496
- _zone;
496
+ zone;
497
497
  element;
498
498
  subscription;
499
- constructor(_dom, _zone) {
499
+ constructor(_dom, zone) {
500
500
  this._dom = _dom;
501
- this._zone = _zone;
501
+ this.zone = zone;
502
502
  }
503
503
  forElement(element) {
504
504
  this.unsubscribe();
@@ -510,7 +510,7 @@ class ScrollableService {
510
510
  return;
511
511
  }
512
512
  const parents = this._dom.scrollableParents(this.element);
513
- this._zone.runOutsideAngular(() => {
513
+ this.zone.runOutsideAngular(() => {
514
514
  const observables = parents.map(p => fromEvent(p, "scroll").pipe(auditTime(FRAME_DURATION)));
515
515
  const subscriber = (e) => {
516
516
  const target = e.target;
@@ -518,7 +518,9 @@ class ScrollableService {
518
518
  const isDocument = target === document;
519
519
  const isWindow = target === window;
520
520
  if (isParent || isDocument || isWindow) {
521
- callback(this.isVisible(this.element, target));
521
+ const visible = this.isVisible(this.element, target);
522
+ const direction = visible ? undefined : this.getLeaveDirection(this.element, target);
523
+ callback(visible, direction);
522
524
  }
523
525
  };
524
526
  this.subscription = merge(...observables).subscribe(subscriber);
@@ -547,10 +549,19 @@ class ScrollableService {
547
549
  }
548
550
  return true;
549
551
  }
550
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: ScrollableService, deps: [{ token: DOMService }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Injectable });
551
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: ScrollableService });
552
+ getLeaveDirection(elem, container) {
553
+ const elemRect = this._dom.boundingOffset(elem);
554
+ const containerRect = this._dom.boundingOffset(this._dom.nativeElement(container));
555
+ const vertical = THRESHOLD_DIFF < (containerRect.top - elemRect.bottom) ||
556
+ THRESHOLD_DIFF < (elemRect.top - containerRect.bottom);
557
+ const horizontal = THRESHOLD_DIFF < (elemRect.left - containerRect.right) ||
558
+ THRESHOLD_DIFF < (containerRect.left - elemRect.right);
559
+ return { horizontal, vertical };
560
+ }
561
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.26", ngImport: i0, type: ScrollableService, deps: [{ token: DOMService }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Injectable });
562
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.26", ngImport: i0, type: ScrollableService });
552
563
  }
553
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: ScrollableService, decorators: [{
564
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.26", ngImport: i0, type: ScrollableService, decorators: [{
554
565
  type: Injectable
555
566
  }], ctorParameters: () => [{ type: DOMService }, { type: i0.NgZone }] });
556
567
 
@@ -678,10 +689,10 @@ class AnimationService {
678
689
  this.player = null;
679
690
  }
680
691
  }
681
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: AnimationService, deps: [{ token: i1.AnimationBuilder }], target: i0.ɵɵFactoryTarget.Injectable });
682
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: AnimationService });
692
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.26", ngImport: i0, type: AnimationService, deps: [{ token: i1.AnimationBuilder }], target: i0.ɵɵFactoryTarget.Injectable });
693
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.26", ngImport: i0, type: AnimationService });
683
694
  }
684
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: AnimationService, decorators: [{
695
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.26", ngImport: i0, type: AnimationService, decorators: [{
685
696
  type: Injectable
686
697
  }], ctorParameters: () => [{ type: i1.AnimationBuilder }] });
687
698
 
@@ -693,8 +704,8 @@ const packageMetadata = {
693
704
  productName: 'Kendo UI for Angular',
694
705
  productCode: 'KENDOUIANGULAR',
695
706
  productCodes: ['KENDOUIANGULAR'],
696
- publishDate: 1783688449,
697
- version: '25.0.0-develop.2',
707
+ publishDate: 1785852383,
708
+ version: '25.0.0-develop.21',
698
709
  licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/?utm_medium=product&utm_source=kendoangular&utm_campaign=kendo-ui-angular-purchase-license-keys-warning'
699
710
  };
700
711
 
@@ -723,59 +734,70 @@ class PopupComponent {
723
734
  _scrollableService;
724
735
  animationService;
725
736
  _renderer;
726
- _zone;
737
+ zone;
738
+ injector;
727
739
  /**
728
740
  * Controls the Popup animation. By default, the opening and closing animations are enabled ([see example](https://www.telerik.com/kendo-angular-ui/components/popup/animations)).
729
741
  * @default true
730
742
  */
731
- animate = true;
743
+ set animate(value) { this._animate.set(value); }
744
+ get animate() { return this._animate(); }
732
745
  /**
733
746
  * Sets the element to use as an anchor. The Popup opens next to this element. ([See example](https://www.telerik.com/kendo-angular-ui/components/popup/aligning-positioning#aligning-to-components)).
734
747
  */
735
- anchor;
748
+ set anchor(value) { this._anchor.set(value); }
749
+ get anchor() { return this._anchor(); }
736
750
  /**
737
751
  * Sets the anchor pivot point ([see example](https://www.telerik.com/kendo-angular-ui/components/popup/aligning-positioning#positioning)).
738
752
  * @default '{ horizontal: "left", vertical: "bottom" }'
739
753
  */
740
- anchorAlign = { horizontal: 'left', vertical: 'bottom' };
754
+ set anchorAlign(value) { this._anchorAlign.set(value); }
755
+ get anchorAlign() { return this._anchorAlign(); }
741
756
  /**
742
757
  * Sets the collision behavior of the Popup ([see example](https://www.telerik.com/kendo-angular-ui/components/popup/viewport-boundary-detection)).
743
758
  * @default '{ horizontal: "fit", vertical: "flip" }'
744
759
  */
745
- collision = { horizontal: 'fit', vertical: 'flip' };
760
+ set collision(value) { this._collision.set(value); }
761
+ get collision() { return this._collision(); }
746
762
  /**
747
763
  * Sets the pivot point of the Popup ([see example](https://www.telerik.com/kendo-angular-ui/components/popup/aligning-positioning#positioning)).
748
764
  * @default '{ horizontal: "left", vertical: "top" }'
749
765
  */
750
- popupAlign = { horizontal: 'left', vertical: 'top' };
766
+ set popupAlign(value) { this._popupAlign.set(value); }
767
+ get popupAlign() { return this._popupAlign(); }
751
768
  /**
752
769
  * Controls whether the component copies the `anchor` font styles.
753
770
  * @default false
754
771
  */
755
- copyAnchorStyles = false;
772
+ set copyAnchorStyles(value) { this._copyAnchorStyles.set(value); }
773
+ get copyAnchorStyles() { return this._copyAnchorStyles(); }
756
774
  /**
757
775
  * Sets a list of CSS classes to add to the internal animated element ([see example](https://www.telerik.com/kendo-angular-ui/components/popup/styling)).
758
776
  *
759
777
  * > To style the content of the Popup, use this property binding.
760
778
  */
761
- popupClass;
779
+ set popupClass(value) { this._popupClass.set(value); }
780
+ get popupClass() { return this._popupClass(); }
762
781
  /**
763
782
  * Sets the position mode of the component. By default, the Popup uses fixed positioning. To use absolute positioning, set this option to `absolute`.
764
783
  *
765
784
  * To support mobile browsers with the zoom option, use the `absolute` positioning of the Popup.
766
785
  * @default 'fixed'
767
786
  */
768
- positionMode = 'fixed';
787
+ set positionMode(value) { this._positionMode.set(value); }
788
+ get positionMode() { return this._positionMode(); }
769
789
  /**
770
790
  * Sets the absolute position of the element ([see example](https://www.telerik.com/kendo-angular-ui/components/popup/aligning-positioning#aligning-to-absolute-points)).
771
791
  * The Popup opens next to this point. The Popup pivot point is defined by the `popupAlign` option. The boundary detection uses the window viewport.
772
792
  * @default '{ left: -10000, top: 0 }'
773
793
  */
774
- offset = DEFAULT_OFFSET;
794
+ set offset(value) { this._offset.set(value); }
795
+ get offset() { return this._offset(); }
775
796
  /**
776
797
  * Sets the margin value in pixels. Adds blank space between the Popup and the anchor ([see example](https://www.telerik.com/kendo-angular-ui/components/popup/aligning-positioning#adding-a-margin)).
777
798
  */
778
- margin;
799
+ set margin(value) { this._margin.set(value); }
800
+ get margin() { return this._margin(); }
779
801
  /**
780
802
  * Fires when the anchor scrolls outside the screen boundaries. ([See example](https://www.telerik.com/kendo-angular-ui/components/popup/closing)).
781
803
  */
@@ -808,12 +830,20 @@ class PopupComponent {
808
830
  * @hidden
809
831
  */
810
832
  renderDefaultClass = true;
811
- resolvedPromise = Promise.resolve(null);
812
- _currentOffset;
833
+ _animate = signal(true, ...(ngDevMode ? [{ debugName: "_animate" }] : []));
834
+ _anchor = signal(undefined, ...(ngDevMode ? [{ debugName: "_anchor" }] : []));
835
+ _anchorAlign = signal({ horizontal: 'left', vertical: 'bottom' }, ...(ngDevMode ? [{ debugName: "_anchorAlign" }] : []));
836
+ _collision = signal({ horizontal: 'fit', vertical: 'flip' }, ...(ngDevMode ? [{ debugName: "_collision" }] : []));
837
+ _popupAlign = signal({ horizontal: 'left', vertical: 'top' }, ...(ngDevMode ? [{ debugName: "_popupAlign" }] : []));
838
+ _copyAnchorStyles = signal(false, ...(ngDevMode ? [{ debugName: "_copyAnchorStyles" }] : []));
839
+ _popupClass = signal(undefined, ...(ngDevMode ? [{ debugName: "_popupClass" }] : []));
840
+ _positionMode = signal('fixed', ...(ngDevMode ? [{ debugName: "_positionMode" }] : []));
841
+ _offset = signal(DEFAULT_OFFSET, ...(ngDevMode ? [{ debugName: "_offset" }] : []));
842
+ _margin = signal(undefined, ...(ngDevMode ? [{ debugName: "_margin" }] : []));
843
+ _currentOffset = signal(undefined, ...(ngDevMode ? [{ debugName: "_currentOffset" }] : []));
813
844
  animationSubscriptions;
814
- repositionSubscription;
815
- initialCheck = true;
816
- constructor(container, _alignService, domService, _positionService, _resizeService, _scrollableService, animationService, _renderer, _zone) {
845
+ resolvedPromise = Promise.resolve(null);
846
+ constructor(container, _alignService, domService, _positionService, _resizeService, _scrollableService, animationService, _renderer, zone, injector) {
817
847
  this.container = container;
818
848
  this._alignService = _alignService;
819
849
  this.domService = domService;
@@ -822,7 +852,8 @@ class PopupComponent {
822
852
  this._scrollableService = _scrollableService;
823
853
  this.animationService = animationService;
824
854
  this._renderer = _renderer;
825
- this._zone = _zone;
855
+ this.zone = zone;
856
+ this.injector = injector;
826
857
  validatePackage(packageMetadata);
827
858
  this._renderer.addClass(container.nativeElement, ANIMATION_CONTAINER);
828
859
  this.updateFixedClass();
@@ -839,7 +870,7 @@ class PopupComponent {
839
870
  this.setZIndex();
840
871
  this.copyFontStyles();
841
872
  this.updateFixedClass();
842
- this.reposition();
873
+ afterNextRender(() => this.reposition(), { injector: this.injector });
843
874
  }
844
875
  ngOnChanges(changes) {
845
876
  if (changes.copyAnchorStyles) {
@@ -858,18 +889,7 @@ class PopupComponent {
858
889
  this.reposition();
859
890
  }
860
891
  ngAfterViewChecked() {
861
- if (this.initialCheck) {
862
- this.initialCheck = false;
863
- return;
864
- }
865
- this._zone.runOutsideAngular(() => {
866
- // workarounds https://github.com/angular/angular/issues/19094
867
- // uses promise because it is executed synchronously after the content is updated
868
- // does not use onStable in case the current zone is not the angular one.
869
- this.unsubscribeReposition();
870
- this.repositionSubscription = from(this.resolvedPromise)
871
- .subscribe(this.reposition);
872
- });
892
+ afterEveryRender(() => this.reposition(), { injector: this.injector });
873
893
  }
874
894
  ngOnDestroy() {
875
895
  this.anchorViewportLeave.complete();
@@ -879,7 +899,6 @@ class PopupComponent {
879
899
  this._resizeService.unsubscribe();
880
900
  this._scrollableService.unsubscribe();
881
901
  this.animationSubscriptions.unsubscribe();
882
- this.unsubscribeReposition();
883
902
  }
884
903
  /**
885
904
  * @hidden
@@ -896,13 +915,13 @@ class PopupComponent {
896
915
  this.open.complete();
897
916
  }
898
917
  get currentOffset() {
899
- return this._currentOffset;
918
+ return this._currentOffset();
900
919
  }
901
920
  set currentOffset(offset) {
902
921
  this.setContainerStyle('left', `${offset.left}px`);
903
922
  this.setContainerStyle('top', `${offset.top}px`);
904
923
  this.setContainerStyle('margin', this.hasCustomOffset ? '0' : null);
905
- this._currentOffset = offset;
924
+ this._currentOffset.set(offset);
906
925
  }
907
926
  setZIndex() {
908
927
  if (this.anchor) {
@@ -917,7 +936,7 @@ class PopupComponent {
917
936
  if (!this.currentOffset || isDifferentOffset(this.currentOffset, offset)) {
918
937
  this.currentOffset = offset;
919
938
  if (hasObservers(this.positionChange)) {
920
- this._zone.run(() => this.positionChange.emit({ offset, flip }));
939
+ this.zone.run(() => this.positionChange.emit({ offset, flip }));
921
940
  }
922
941
  }
923
942
  if (this.animate) {
@@ -945,14 +964,14 @@ class PopupComponent {
945
964
  margin: this.margin
946
965
  });
947
966
  }
948
- onScroll(isInViewPort) {
967
+ onScroll(isInViewPort, direction) {
949
968
  const hasLeaveObservers = hasObservers(this.anchorViewportLeave);
950
969
  if (isInViewPort || !hasLeaveObservers) {
951
970
  this.reposition();
952
971
  }
953
972
  else if (hasLeaveObservers) {
954
- this._zone.run(() => {
955
- this.anchorViewportLeave.emit();
973
+ this.zone.run(() => {
974
+ this.anchorViewportLeave.emit(direction);
956
975
  });
957
976
  }
958
977
  }
@@ -974,50 +993,44 @@ class PopupComponent {
974
993
  }
975
994
  this._renderer.setStyle(this.container.nativeElement, name, value);
976
995
  }
977
- unsubscribeReposition() {
978
- if (this.repositionSubscription) {
979
- this.repositionSubscription.unsubscribe();
980
- }
981
- }
982
996
  get hasCustomOffset() {
983
997
  return this.offset.left !== DEFAULT_OFFSET.left || this.offset.top !== DEFAULT_OFFSET.top;
984
998
  }
985
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: PopupComponent, deps: [{ token: i0.ElementRef }, { token: AlignService }, { token: DOMService }, { token: PositionService }, { token: ResizeService }, { token: ScrollableService }, { token: AnimationService }, { token: i0.Renderer2 }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
986
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.25", type: PopupComponent, isStandalone: true, selector: "kendo-popup", inputs: { animate: "animate", anchor: "anchor", anchorAlign: "anchorAlign", collision: "collision", popupAlign: "popupAlign", copyAnchorStyles: "copyAnchorStyles", popupClass: "popupClass", positionMode: "positionMode", offset: "offset", margin: "margin" }, outputs: { anchorViewportLeave: "anchorViewportLeave", close: "close", open: "open", positionChange: "positionChange" }, providers: [AlignService, AnimationService, DOMService, PositionService, ResizeService, ScrollableService], viewQueries: [{ propertyName: "contentContainer", first: true, predicate: ["container"], descendants: true, static: true }, { propertyName: "resizeSensor", first: true, predicate: ResizeSensorComponent, descendants: true, static: true }], exportAs: ["kendo-popup"], usesOnChanges: true, ngImport: i0, template: `
999
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.26", ngImport: i0, type: PopupComponent, deps: [{ token: i0.ElementRef }, { token: AlignService }, { token: DOMService }, { token: PositionService }, { token: ResizeService }, { token: ScrollableService }, { token: AnimationService }, { token: i0.Renderer2 }, { token: i0.NgZone }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
1000
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.26", type: PopupComponent, isStandalone: true, selector: "kendo-popup", inputs: { animate: "animate", anchor: "anchor", anchorAlign: "anchorAlign", collision: "collision", popupAlign: "popupAlign", copyAnchorStyles: "copyAnchorStyles", popupClass: "popupClass", positionMode: "positionMode", offset: "offset", margin: "margin" }, outputs: { anchorViewportLeave: "anchorViewportLeave", close: "close", open: "open", positionChange: "positionChange" }, providers: [AlignService, AnimationService, DOMService, PositionService, ResizeService, ScrollableService], viewQueries: [{ propertyName: "contentContainer", first: true, predicate: ["container"], descendants: true, static: true }, { propertyName: "resizeSensor", first: true, predicate: ResizeSensorComponent, descendants: true, static: true }], exportAs: ["kendo-popup"], usesOnChanges: true, ngImport: i0, template: `
987
1001
  <div class="k-child-animation-container">
988
- <div [class.k-popup]="renderDefaultClass" [ngClass]="popupClass" #container>
989
- <ng-content></ng-content>
990
- @if (content) {
991
- <ng-template [ngTemplateOutlet]="content"></ng-template>
992
- }
993
- <kendo-resize-sensor [rateLimit]="100" (resize)="onResize()">
994
- </kendo-resize-sensor>
995
- </div>
1002
+ <div [class.k-popup]="renderDefaultClass" [ngClass]="popupClass" #container>
1003
+ <ng-content></ng-content>
1004
+ @if (content) {
1005
+ <ng-template [ngTemplateOutlet]="content"></ng-template>
1006
+ }
1007
+ <kendo-resize-sensor [rateLimit]="100" (resize)="onResize()"></kendo-resize-sensor>
1008
+ </div>
996
1009
  </div>
997
- `, isInline: true, dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: ResizeSensorComponent, selector: "kendo-resize-sensor", inputs: ["rateLimit"], outputs: ["resize"] }] });
1010
+ `, isInline: true, dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: ResizeSensorComponent, selector: "kendo-resize-sensor", inputs: ["rateLimit"], outputs: ["resize"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
998
1011
  }
999
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: PopupComponent, decorators: [{
1012
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.26", ngImport: i0, type: PopupComponent, decorators: [{
1000
1013
  type: Component,
1001
1014
  args: [{
1015
+ selector: 'kendo-popup',
1002
1016
  exportAs: 'kendo-popup',
1017
+ imports: [NgClass, NgTemplateOutlet, ResizeSensorComponent],
1003
1018
  providers: [AlignService, AnimationService, DOMService, PositionService, ResizeService, ScrollableService],
1004
- selector: 'kendo-popup',
1005
1019
  template: `
1006
1020
  <div class="k-child-animation-container">
1007
- <div [class.k-popup]="renderDefaultClass" [ngClass]="popupClass" #container>
1008
- <ng-content></ng-content>
1009
- @if (content) {
1010
- <ng-template [ngTemplateOutlet]="content"></ng-template>
1011
- }
1012
- <kendo-resize-sensor [rateLimit]="100" (resize)="onResize()">
1013
- </kendo-resize-sensor>
1014
- </div>
1021
+ <div [class.k-popup]="renderDefaultClass" [ngClass]="popupClass" #container>
1022
+ <ng-content></ng-content>
1023
+ @if (content) {
1024
+ <ng-template [ngTemplateOutlet]="content"></ng-template>
1025
+ }
1026
+ <kendo-resize-sensor [rateLimit]="100" (resize)="onResize()"></kendo-resize-sensor>
1027
+ </div>
1015
1028
  </div>
1016
- `,
1017
- standalone: true,
1018
- imports: [NgClass, NgTemplateOutlet, ResizeSensorComponent]
1029
+ `,
1030
+ changeDetection: ChangeDetectionStrategy.OnPush,
1031
+ standalone: true
1019
1032
  }]
1020
- }], ctorParameters: () => [{ type: i0.ElementRef }, { type: AlignService }, { type: DOMService }, { type: PositionService }, { type: ResizeService }, { type: ScrollableService }, { type: AnimationService }, { type: i0.Renderer2 }, { type: i0.NgZone }], propDecorators: { animate: [{
1033
+ }], ctorParameters: () => [{ type: i0.ElementRef }, { type: AlignService }, { type: DOMService }, { type: PositionService }, { type: ResizeService }, { type: ScrollableService }, { type: AnimationService }, { type: i0.Renderer2 }, { type: i0.NgZone }, { type: i0.Injector }], propDecorators: { animate: [{
1021
1034
  type: Input
1022
1035
  }], anchor: [{
1023
1036
  type: Input
@@ -1262,10 +1275,10 @@ class PopupService {
1262
1275
  ]
1263
1276
  };
1264
1277
  }
1265
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: PopupService, deps: [{ token: i0.ApplicationRef }, { token: i0.Injector }, { token: POPUP_CONTAINER, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
1266
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: PopupService, providedIn: 'root' });
1278
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.26", ngImport: i0, type: PopupService, deps: [{ token: i0.ApplicationRef }, { token: i0.Injector }, { token: POPUP_CONTAINER, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
1279
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.26", ngImport: i0, type: PopupService, providedIn: 'root' });
1267
1280
  }
1268
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: PopupService, decorators: [{
1281
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.26", ngImport: i0, type: PopupService, decorators: [{
1269
1282
  type: Injectable,
1270
1283
  args: [{
1271
1284
  providedIn: 'root'
@@ -1329,11 +1342,11 @@ const KENDO_POPUP = [
1329
1342
  * ```
1330
1343
  */
1331
1344
  class PopupModule {
1332
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: PopupModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
1333
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.25", ngImport: i0, type: PopupModule, imports: [i1$1.ResizeSensorComponent, PopupComponent], exports: [PopupComponent] });
1334
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: PopupModule, providers: [PopupService, ResizeBatchService], imports: [KENDO_RESIZESENSOR, KENDO_POPUP] });
1345
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.26", ngImport: i0, type: PopupModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
1346
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.26", ngImport: i0, type: PopupModule, imports: [i1$1.ResizeSensorComponent, PopupComponent], exports: [PopupComponent] });
1347
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.26", ngImport: i0, type: PopupModule, providers: [PopupService, ResizeBatchService], imports: [KENDO_RESIZESENSOR, KENDO_POPUP] });
1335
1348
  }
1336
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: PopupModule, decorators: [{
1349
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.26", ngImport: i0, type: PopupModule, decorators: [{
1337
1350
  type: NgModule,
1338
1351
  args: [{
1339
1352
  exports: [...KENDO_POPUP],
package/index.d.ts CHANGED
@@ -4,7 +4,7 @@
4
4
  *-------------------------------------------------------------------------------------------*/
5
5
  import { AlignStrategy, OffsetPosition, MarginSettings, ElementRect, ScrollInfo, AlignSettings, BoundingRect, PositionSettings, ViewPort, CollisionStrategy } from '@progress/kendo-popup-common';
6
6
  import * as i0 from '@angular/core';
7
- import { ElementRef, ViewContainerRef, TemplateRef, NgZone, OnDestroy, EventEmitter, AfterViewInit, OnInit, OnChanges, Renderer2, ComponentRef, InjectionToken, ApplicationRef, Injector } from '@angular/core';
7
+ import { ElementRef, ViewContainerRef, TemplateRef, NgZone, OnDestroy, EventEmitter, AfterViewInit, AfterViewChecked, OnInit, OnChanges, Renderer2, Injector, ComponentRef, InjectionToken, ApplicationRef } from '@angular/core';
8
8
  import { AnimationBuilder } from '@angular/animations';
9
9
  import * as i1 from '@progress/kendo-angular-common';
10
10
  import { ResizeSensorComponent } from '@progress/kendo-angular-common';
@@ -273,9 +273,9 @@ declare class PositionService {
273
273
  */
274
274
  declare class ResizeService {
275
275
  private _dom;
276
- private _zone;
276
+ private zone;
277
277
  private subscription;
278
- constructor(_dom: DOMService, _zone: NgZone);
278
+ constructor(_dom: DOMService, zone: NgZone);
279
279
  subscribe(callback: () => void): void;
280
280
  unsubscribe(): void;
281
281
  isUnsubscribed(): boolean;
@@ -283,19 +283,27 @@ declare class ResizeService {
283
283
  static ɵprov: i0.ɵɵInjectableDeclaration<ResizeService>;
284
284
  }
285
285
 
286
+ /**
287
+ * @hidden
288
+ */
289
+ interface ScrollableLeaveDirection {
290
+ horizontal: boolean;
291
+ vertical: boolean;
292
+ }
286
293
  /**
287
294
  * @hidden
288
295
  */
289
296
  declare class ScrollableService {
290
297
  private _dom;
291
- private _zone;
298
+ private zone;
292
299
  private element;
293
300
  private subscription;
294
- constructor(_dom: DOMService, _zone: NgZone);
301
+ constructor(_dom: DOMService, zone: NgZone);
295
302
  forElement(element: HTMLElement): ScrollableService;
296
- subscribe(callback: (visible: boolean) => void): void;
303
+ subscribe(callback: (visible: boolean, direction?: ScrollableLeaveDirection) => void): void;
297
304
  unsubscribe(): void;
298
305
  isVisible(elem: HTMLElement, container: any): boolean;
306
+ private getLeaveDirection;
299
307
  static ɵfac: i0.ɵɵFactoryDeclaration<ScrollableService, never>;
300
308
  static ɵprov: i0.ɵɵInjectableDeclaration<ScrollableService>;
301
309
  }
@@ -332,7 +340,7 @@ declare class AnimationService implements OnDestroy {
332
340
  * }
333
341
  * ```
334
342
  */
335
- declare class PopupComponent implements AfterViewInit, OnInit, OnChanges, OnDestroy {
343
+ declare class PopupComponent implements AfterViewInit, AfterViewChecked, OnInit, OnChanges, OnDestroy {
336
344
  container: ElementRef;
337
345
  private _alignService;
338
346
  domService: DOMService;
@@ -341,59 +349,70 @@ declare class PopupComponent implements AfterViewInit, OnInit, OnChanges, OnDest
341
349
  private _scrollableService;
342
350
  private animationService;
343
351
  private _renderer;
344
- private _zone;
352
+ private zone;
353
+ private injector;
345
354
  /**
346
355
  * Controls the Popup animation. By default, the opening and closing animations are enabled ([see example](https://www.telerik.com/kendo-angular-ui/components/popup/animations)).
347
356
  * @default true
348
357
  */
349
- animate: boolean | PopupAnimation;
358
+ set animate(value: boolean | PopupAnimation);
359
+ get animate(): boolean | PopupAnimation;
350
360
  /**
351
361
  * Sets the element to use as an anchor. The Popup opens next to this element. ([See example](https://www.telerik.com/kendo-angular-ui/components/popup/aligning-positioning#aligning-to-components)).
352
362
  */
353
- anchor: ElementRef | HTMLElement;
363
+ set anchor(value: ElementRef | HTMLElement);
364
+ get anchor(): ElementRef | HTMLElement;
354
365
  /**
355
366
  * Sets the anchor pivot point ([see example](https://www.telerik.com/kendo-angular-ui/components/popup/aligning-positioning#positioning)).
356
367
  * @default '{ horizontal: "left", vertical: "bottom" }'
357
368
  */
358
- anchorAlign: Align;
369
+ set anchorAlign(value: Align);
370
+ get anchorAlign(): Align;
359
371
  /**
360
372
  * Sets the collision behavior of the Popup ([see example](https://www.telerik.com/kendo-angular-ui/components/popup/viewport-boundary-detection)).
361
373
  * @default '{ horizontal: "fit", vertical: "flip" }'
362
374
  */
363
- collision: Collision;
375
+ set collision(value: Collision);
376
+ get collision(): Collision;
364
377
  /**
365
378
  * Sets the pivot point of the Popup ([see example](https://www.telerik.com/kendo-angular-ui/components/popup/aligning-positioning#positioning)).
366
379
  * @default '{ horizontal: "left", vertical: "top" }'
367
380
  */
368
- popupAlign: Align;
381
+ set popupAlign(value: Align);
382
+ get popupAlign(): Align;
369
383
  /**
370
384
  * Controls whether the component copies the `anchor` font styles.
371
385
  * @default false
372
386
  */
373
- copyAnchorStyles: boolean;
387
+ set copyAnchorStyles(value: boolean);
388
+ get copyAnchorStyles(): boolean;
374
389
  /**
375
390
  * Sets a list of CSS classes to add to the internal animated element ([see example](https://www.telerik.com/kendo-angular-ui/components/popup/styling)).
376
391
  *
377
392
  * > To style the content of the Popup, use this property binding.
378
393
  */
379
- popupClass: string | Array<string> | object | Set<string>;
394
+ set popupClass(value: string | Array<string> | object | Set<string>);
395
+ get popupClass(): string | Array<string> | object | Set<string>;
380
396
  /**
381
397
  * Sets the position mode of the component. By default, the Popup uses fixed positioning. To use absolute positioning, set this option to `absolute`.
382
398
  *
383
399
  * To support mobile browsers with the zoom option, use the `absolute` positioning of the Popup.
384
400
  * @default 'fixed'
385
401
  */
386
- positionMode: PositionMode;
402
+ set positionMode(value: PositionMode);
403
+ get positionMode(): PositionMode;
387
404
  /**
388
405
  * Sets the absolute position of the element ([see example](https://www.telerik.com/kendo-angular-ui/components/popup/aligning-positioning#aligning-to-absolute-points)).
389
406
  * The Popup opens next to this point. The Popup pivot point is defined by the `popupAlign` option. The boundary detection uses the window viewport.
390
407
  * @default '{ left: -10000, top: 0 }'
391
408
  */
392
- offset: Offset;
409
+ set offset(value: Offset);
410
+ get offset(): Offset;
393
411
  /**
394
412
  * Sets the margin value in pixels. Adds blank space between the Popup and the anchor ([see example](https://www.telerik.com/kendo-angular-ui/components/popup/aligning-positioning#adding-a-margin)).
395
413
  */
396
- margin: Margin;
414
+ set margin(value: Margin);
415
+ get margin(): Margin;
397
416
  /**
398
417
  * Fires when the anchor scrolls outside the screen boundaries. ([See example](https://www.telerik.com/kendo-angular-ui/components/popup/closing)).
399
418
  */
@@ -426,12 +445,20 @@ declare class PopupComponent implements AfterViewInit, OnInit, OnChanges, OnDest
426
445
  * @hidden
427
446
  */
428
447
  renderDefaultClass: boolean;
429
- private resolvedPromise;
430
- private _currentOffset?;
448
+ private _animate;
449
+ private _anchor;
450
+ private _anchorAlign;
451
+ private _collision;
452
+ private _popupAlign;
453
+ private _copyAnchorStyles;
454
+ private _popupClass;
455
+ private _positionMode;
456
+ private _offset;
457
+ private _margin;
458
+ private _currentOffset;
431
459
  private animationSubscriptions;
432
- private repositionSubscription;
433
- private initialCheck;
434
- constructor(container: ElementRef, _alignService: AlignService, domService: DOMService, _positionService: PositionService, _resizeService: ResizeService, _scrollableService: ScrollableService, animationService: AnimationService, _renderer: Renderer2, _zone: NgZone);
460
+ private resolvedPromise;
461
+ constructor(container: ElementRef, _alignService: AlignService, domService: DOMService, _positionService: PositionService, _resizeService: ResizeService, _scrollableService: ScrollableService, animationService: AnimationService, _renderer: Renderer2, zone: NgZone, injector: Injector);
435
462
  ngOnInit(): void;
436
463
  ngOnChanges(changes: any): void;
437
464
  ngAfterViewInit(): void;
@@ -452,7 +479,6 @@ declare class PopupComponent implements AfterViewInit, OnInit, OnChanges, OnDest
452
479
  private copyFontStyles;
453
480
  private updateFixedClass;
454
481
  private setContainerStyle;
455
- private unsubscribeReposition;
456
482
  private get hasCustomOffset();
457
483
  static ɵfac: i0.ɵɵFactoryDeclaration<PopupComponent, never>;
458
484
  static ɵcmp: i0.ɵɵComponentDeclaration<PopupComponent, "kendo-popup", ["kendo-popup"], { "animate": { "alias": "animate"; "required": false; }; "anchor": { "alias": "anchor"; "required": false; }; "anchorAlign": { "alias": "anchorAlign"; "required": false; }; "collision": { "alias": "collision"; "required": false; }; "popupAlign": { "alias": "popupAlign"; "required": false; }; "copyAnchorStyles": { "alias": "copyAnchorStyles"; "required": false; }; "popupClass": { "alias": "popupClass"; "required": false; }; "positionMode": { "alias": "positionMode"; "required": false; }; "offset": { "alias": "offset"; "required": false; }; "margin": { "alias": "margin"; "required": false; }; }, { "anchorViewportLeave": "anchorViewportLeave"; "close": "close"; "open": "open"; "positionChange": "positionChange"; }, never, ["*"], true, never>;
@@ -682,4 +708,4 @@ declare const SCALE: InjectionToken<number>;
682
708
  declare const KENDO_POPUP: readonly [typeof PopupComponent];
683
709
 
684
710
  export { KENDO_POPUP, POPUP_CONTAINER, PopupComponent, PopupModule, PopupService, SCALE };
685
- export type { Align, AnimationDirection, AnimationType, Collision, Margin, Offset, PopupAnimation, PopupRef, PopupSettings, PositionMode };
711
+ export type { Align, AnimationDirection, AnimationType, Collision, Margin, Offset, PopupAnimation, PopupRef, PopupSettings, PositionMode, ScrollableLeaveDirection };
@@ -7,7 +7,7 @@ export const packageMetadata = {
7
7
  "productCodes": [
8
8
  "KENDOUIANGULAR"
9
9
  ],
10
- "publishDate": 1783688449,
11
- "version": "25.0.0-develop.2",
10
+ "publishDate": 1785852383,
11
+ "version": "25.0.0-develop.21",
12
12
  "licensingDocsUrl": "https://www.telerik.com/kendo-angular-ui/my-license/?utm_medium=product&utm_source=kendoangular&utm_campaign=kendo-ui-angular-purchase-license-keys-warning"
13
13
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@progress/kendo-angular-popup",
3
- "version": "25.0.0-develop.2",
3
+ "version": "25.0.0-develop.21",
4
4
  "description": "Kendo UI Angular Popup component - an easily customized popup from the most trusted provider of professional Angular components.",
5
5
  "license": "SEE LICENSE IN LICENSE.md",
6
6
  "author": "Progress",
@@ -34,7 +34,7 @@
34
34
  "package": {
35
35
  "productName": "Kendo UI for Angular",
36
36
  "productCode": "KENDOUIANGULAR",
37
- "publishDate": 1783688449,
37
+ "publishDate": 1785852383,
38
38
  "licensingDocsUrl": "https://www.telerik.com/kendo-angular-ui/my-license/?utm_medium=product&utm_source=kendoangular&utm_campaign=kendo-ui-angular-purchase-license-keys-warning"
39
39
  }
40
40
  },
@@ -43,14 +43,14 @@
43
43
  "@angular/common": "20 - 22",
44
44
  "@angular/core": "20 - 22",
45
45
  "@angular/platform-browser": "20 - 22",
46
- "@progress/kendo-angular-common": "25.0.0-develop.2",
46
+ "@progress/kendo-angular-common": "25.0.0-develop.21",
47
47
  "@progress/kendo-licensing": "^1.11.0",
48
48
  "rxjs": "^6.5.3 || ^7.0.0"
49
49
  },
50
50
  "dependencies": {
51
51
  "@progress/kendo-popup-common": "1.9.5",
52
52
  "tslib": "^2.3.1",
53
- "@progress/kendo-angular-schematics": "25.0.0-develop.2"
53
+ "@progress/kendo-angular-schematics": "25.0.0-develop.21"
54
54
  },
55
55
  "schematics": "./schematics/collection.json",
56
56
  "module": "fesm2022/progress-kendo-angular-popup.mjs",