@progress/kendo-angular-popup 21.3.1-develop.1 → 21.4.0-develop.10
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.
- package/esm2022/package-metadata.mjs +2 -2
- package/esm2022/popup.component.mjs +8 -0
- package/esm2022/services/dom.service.mjs +4 -1
- package/esm2022/util.mjs +19 -0
- package/fesm2022/progress-kendo-angular-popup.mjs +32 -3
- package/models/popup-settings.d.ts +1 -1
- package/package.json +4 -4
- package/popup.component.d.ts +2 -1
- package/services/dom.service.d.ts +1 -0
- package/util.d.ts +4 -0
|
@@ -10,7 +10,7 @@ export const packageMetadata = {
|
|
|
10
10
|
productName: 'Kendo UI for Angular',
|
|
11
11
|
productCode: 'KENDOUIANGULAR',
|
|
12
12
|
productCodes: ['KENDOUIANGULAR'],
|
|
13
|
-
publishDate:
|
|
14
|
-
version: '21.
|
|
13
|
+
publishDate: 1766140170,
|
|
14
|
+
version: '21.4.0-develop.10',
|
|
15
15
|
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'
|
|
16
16
|
};
|
|
@@ -158,6 +158,9 @@ export class PopupComponent {
|
|
|
158
158
|
this.animationSubscriptions.add(this.animationService.end.subscribe(this.onAnimationEnd.bind(this)));
|
|
159
159
|
this._scrollableService.forElement(this.domService.nativeElement(this.anchor) || this.container.nativeElement).subscribe(this.onScroll.bind(this));
|
|
160
160
|
this.currentOffset = DEFAULT_OFFSET;
|
|
161
|
+
// we intentionally set the zIndex here as an exception to the rule that it should come from the themes
|
|
162
|
+
// to be removed once https://github.com/telerik/kendo-angular-private/issues/5413 is addressed
|
|
163
|
+
this.setZIndex();
|
|
161
164
|
this.copyFontStyles();
|
|
162
165
|
this.updateFixedClass();
|
|
163
166
|
this.reposition();
|
|
@@ -224,6 +227,11 @@ export class PopupComponent {
|
|
|
224
227
|
this.setContainerStyle('top', `${offset.top}px`);
|
|
225
228
|
this._currentOffset = offset;
|
|
226
229
|
}
|
|
230
|
+
setZIndex() {
|
|
231
|
+
if (this.anchor) {
|
|
232
|
+
this.setContainerStyle('z-index', String(this.domService.zIndex(this.domService.nativeElement(this.anchor), this.container)));
|
|
233
|
+
}
|
|
234
|
+
}
|
|
227
235
|
reposition() {
|
|
228
236
|
if (!isDocumentAvailable()) {
|
|
229
237
|
return;
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
*-------------------------------------------------------------------------------------------*/
|
|
5
5
|
import { Injectable } from '@angular/core';
|
|
6
6
|
import { align, boundingOffset, getWindowViewPort, offset, positionWithScroll, restrictToView, addScroll, removeScroll, scrollPosition } from '@progress/kendo-popup-common';
|
|
7
|
-
import { isWindowAvailable, hasRelativeStackingContext, scrollableParents } from '../util';
|
|
7
|
+
import { isWindowAvailable, hasRelativeStackingContext, scrollableParents, zIndex } from '../util';
|
|
8
8
|
import { isDocumentAvailable } from '@progress/kendo-angular-common';
|
|
9
9
|
import * as i0 from "@angular/core";
|
|
10
10
|
const STYLES = [
|
|
@@ -135,6 +135,9 @@ export class DOMService {
|
|
|
135
135
|
windowViewPort(el) {
|
|
136
136
|
return getWindowViewPort(this.nativeElement(el));
|
|
137
137
|
}
|
|
138
|
+
zIndex(anchor, container) {
|
|
139
|
+
return zIndex(anchor, this.nativeElement(container));
|
|
140
|
+
}
|
|
138
141
|
zoomLevel() {
|
|
139
142
|
if (!isDocumentAvailable() || !isWindowAvailable()) {
|
|
140
143
|
return 1;
|
package/esm2022/util.mjs
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
* Copyright © 2025 Progress Software Corporation. All rights reserved.
|
|
3
3
|
* Licensed under commercial license. See LICENSE.md in the project root for more information
|
|
4
4
|
*-------------------------------------------------------------------------------------------*/
|
|
5
|
+
import { parents, siblingContainer } from '@progress/kendo-popup-common';
|
|
5
6
|
import { isDocumentAvailable } from '@progress/kendo-angular-common';
|
|
6
7
|
/**
|
|
7
8
|
* @hidden
|
|
@@ -128,6 +129,24 @@ export const hasRelativeStackingContext = memoize(() => {
|
|
|
128
129
|
document.body.removeChild(parent);
|
|
129
130
|
return isDifferent;
|
|
130
131
|
});
|
|
132
|
+
/**
|
|
133
|
+
* @hidden
|
|
134
|
+
*/
|
|
135
|
+
export const zIndex = (anchor, container) => {
|
|
136
|
+
if (!anchor || !isDocumentAvailable() || !isWindowAvailable()) {
|
|
137
|
+
return null;
|
|
138
|
+
}
|
|
139
|
+
const sibling = siblingContainer(anchor, container);
|
|
140
|
+
if (!sibling) {
|
|
141
|
+
return null;
|
|
142
|
+
}
|
|
143
|
+
const result = [anchor].concat(parents(anchor, sibling)).reduce((index, p) => {
|
|
144
|
+
const zIndexStyle = p.style.zIndex || window.getComputedStyle(p).zIndex;
|
|
145
|
+
const current = parseInt(zIndexStyle, 10);
|
|
146
|
+
return current > index ? current : index;
|
|
147
|
+
}, 0);
|
|
148
|
+
return result ? (result + 1) : null;
|
|
149
|
+
};
|
|
131
150
|
/**
|
|
132
151
|
* @hidden
|
|
133
152
|
*/
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
*-------------------------------------------------------------------------------------------*/
|
|
5
5
|
import * as i0 from '@angular/core';
|
|
6
6
|
import { Injectable, InjectionToken, Inject, Optional, EventEmitter, isDevMode, Component, Input, Output, ViewChild, TemplateRef, NgModule } from '@angular/core';
|
|
7
|
-
import { addScroll, align, boundingOffset, offset, positionWithScroll, removeScroll, restrictToView, scrollPosition, getWindowViewPort } from '@progress/kendo-popup-common';
|
|
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, ResizeBatchService, KENDO_RESIZESENSOR } from '@progress/kendo-angular-common';
|
|
10
10
|
import { fromEvent, merge, from } from 'rxjs';
|
|
@@ -139,6 +139,24 @@ const hasRelativeStackingContext = memoize(() => {
|
|
|
139
139
|
document.body.removeChild(parent);
|
|
140
140
|
return isDifferent;
|
|
141
141
|
});
|
|
142
|
+
/**
|
|
143
|
+
* @hidden
|
|
144
|
+
*/
|
|
145
|
+
const zIndex = (anchor, container) => {
|
|
146
|
+
if (!anchor || !isDocumentAvailable() || !isWindowAvailable()) {
|
|
147
|
+
return null;
|
|
148
|
+
}
|
|
149
|
+
const sibling = siblingContainer(anchor, container);
|
|
150
|
+
if (!sibling) {
|
|
151
|
+
return null;
|
|
152
|
+
}
|
|
153
|
+
const result = [anchor].concat(parents(anchor, sibling)).reduce((index, p) => {
|
|
154
|
+
const zIndexStyle = p.style.zIndex || window.getComputedStyle(p).zIndex;
|
|
155
|
+
const current = parseInt(zIndexStyle, 10);
|
|
156
|
+
return current > index ? current : index;
|
|
157
|
+
}, 0);
|
|
158
|
+
return result ? (result + 1) : null;
|
|
159
|
+
};
|
|
142
160
|
/**
|
|
143
161
|
* @hidden
|
|
144
162
|
*/
|
|
@@ -282,6 +300,9 @@ class DOMService {
|
|
|
282
300
|
windowViewPort(el) {
|
|
283
301
|
return getWindowViewPort(this.nativeElement(el));
|
|
284
302
|
}
|
|
303
|
+
zIndex(anchor, container) {
|
|
304
|
+
return zIndex(anchor, this.nativeElement(container));
|
|
305
|
+
}
|
|
285
306
|
zoomLevel() {
|
|
286
307
|
if (!isDocumentAvailable() || !isWindowAvailable()) {
|
|
287
308
|
return 1;
|
|
@@ -662,8 +683,8 @@ const packageMetadata = {
|
|
|
662
683
|
productName: 'Kendo UI for Angular',
|
|
663
684
|
productCode: 'KENDOUIANGULAR',
|
|
664
685
|
productCodes: ['KENDOUIANGULAR'],
|
|
665
|
-
publishDate:
|
|
666
|
-
version: '21.
|
|
686
|
+
publishDate: 1766140170,
|
|
687
|
+
version: '21.4.0-develop.10',
|
|
667
688
|
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'
|
|
668
689
|
};
|
|
669
690
|
|
|
@@ -803,6 +824,9 @@ class PopupComponent {
|
|
|
803
824
|
this.animationSubscriptions.add(this.animationService.end.subscribe(this.onAnimationEnd.bind(this)));
|
|
804
825
|
this._scrollableService.forElement(this.domService.nativeElement(this.anchor) || this.container.nativeElement).subscribe(this.onScroll.bind(this));
|
|
805
826
|
this.currentOffset = DEFAULT_OFFSET;
|
|
827
|
+
// we intentionally set the zIndex here as an exception to the rule that it should come from the themes
|
|
828
|
+
// to be removed once https://github.com/telerik/kendo-angular-private/issues/5413 is addressed
|
|
829
|
+
this.setZIndex();
|
|
806
830
|
this.copyFontStyles();
|
|
807
831
|
this.updateFixedClass();
|
|
808
832
|
this.reposition();
|
|
@@ -869,6 +893,11 @@ class PopupComponent {
|
|
|
869
893
|
this.setContainerStyle('top', `${offset.top}px`);
|
|
870
894
|
this._currentOffset = offset;
|
|
871
895
|
}
|
|
896
|
+
setZIndex() {
|
|
897
|
+
if (this.anchor) {
|
|
898
|
+
this.setContainerStyle('z-index', String(this.domService.zIndex(this.domService.nativeElement(this.anchor), this.container)));
|
|
899
|
+
}
|
|
900
|
+
}
|
|
872
901
|
reposition() {
|
|
873
902
|
if (!isDocumentAvailable()) {
|
|
874
903
|
return;
|
|
@@ -56,7 +56,7 @@ export interface PopupSettings {
|
|
|
56
56
|
*
|
|
57
57
|
* > To style the content of the Popup, use this property binding.
|
|
58
58
|
*/
|
|
59
|
-
popupClass?: string | Array<string> | object
|
|
59
|
+
popupClass?: string | Array<string> | object | Set<string>;
|
|
60
60
|
/**
|
|
61
61
|
* Sets the absolute position of the element ([see example]({% slug alignmentpositioning_popup %}#toc-aligning-to-absolute-points)).
|
|
62
62
|
* The Popup opens next to this point. The pivot point of the Popup is defined by the `popupAlign` option. The boundary detection uses the window viewport.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@progress/kendo-angular-popup",
|
|
3
|
-
"version": "21.
|
|
3
|
+
"version": "21.4.0-develop.10",
|
|
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",
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
"package": {
|
|
20
20
|
"productName": "Kendo UI for Angular",
|
|
21
21
|
"productCode": "KENDOUIANGULAR",
|
|
22
|
-
"publishDate":
|
|
22
|
+
"publishDate": 1766140170,
|
|
23
23
|
"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"
|
|
24
24
|
}
|
|
25
25
|
},
|
|
@@ -28,14 +28,14 @@
|
|
|
28
28
|
"@angular/common": "18 - 21",
|
|
29
29
|
"@angular/core": "18 - 21",
|
|
30
30
|
"@angular/platform-browser": "18 - 21",
|
|
31
|
-
"@progress/kendo-angular-common": "21.
|
|
31
|
+
"@progress/kendo-angular-common": "21.4.0-develop.10",
|
|
32
32
|
"@progress/kendo-licensing": "^1.7.0",
|
|
33
33
|
"rxjs": "^6.5.3 || ^7.0.0"
|
|
34
34
|
},
|
|
35
35
|
"dependencies": {
|
|
36
36
|
"@progress/kendo-popup-common": "1.9.5",
|
|
37
37
|
"tslib": "^2.3.1",
|
|
38
|
-
"@progress/kendo-angular-schematics": "21.
|
|
38
|
+
"@progress/kendo-angular-schematics": "21.4.0-develop.10"
|
|
39
39
|
},
|
|
40
40
|
"schematics": "./schematics/collection.json",
|
|
41
41
|
"module": "fesm2022/progress-kendo-angular-popup.mjs",
|
package/popup.component.d.ts
CHANGED
|
@@ -74,7 +74,7 @@ export declare class PopupComponent implements AfterViewInit, OnInit, OnChanges,
|
|
|
74
74
|
*
|
|
75
75
|
* > To style the content of the Popup, use this property binding.
|
|
76
76
|
*/
|
|
77
|
-
popupClass: string | Array<string> | object
|
|
77
|
+
popupClass: string | Array<string> | object | Set<string>;
|
|
78
78
|
/**
|
|
79
79
|
* Sets the position mode of the component. By default, the Popup uses fixed positioning. To use absolute positioning, set this option to `absolute`.
|
|
80
80
|
*
|
|
@@ -143,6 +143,7 @@ export declare class PopupComponent implements AfterViewInit, OnInit, OnChanges,
|
|
|
143
143
|
private onAnimationEnd;
|
|
144
144
|
private get currentOffset();
|
|
145
145
|
private set currentOffset(value);
|
|
146
|
+
private setZIndex;
|
|
146
147
|
private reposition;
|
|
147
148
|
private position;
|
|
148
149
|
private onScroll;
|
|
@@ -31,6 +31,7 @@ export declare class DOMService {
|
|
|
31
31
|
getRelativeContextElement(el: ElementRef): HTMLElement;
|
|
32
32
|
useRelativePosition(el: ElementRef): boolean;
|
|
33
33
|
windowViewPort(el: ElementRef): ViewPort;
|
|
34
|
+
zIndex(anchor: HTMLElement, container: ElementRef): number;
|
|
34
35
|
zoomLevel(): number;
|
|
35
36
|
isZoomed(): boolean;
|
|
36
37
|
static ɵfac: i0.ɵɵFactoryDeclaration<DOMService, never>;
|
package/util.d.ts
CHANGED
|
@@ -43,6 +43,10 @@ export declare const FRAME_DURATION: number;
|
|
|
43
43
|
* @hidden
|
|
44
44
|
*/
|
|
45
45
|
export declare const hasRelativeStackingContext: any;
|
|
46
|
+
/**
|
|
47
|
+
* @hidden
|
|
48
|
+
*/
|
|
49
|
+
export declare const zIndex: (anchor: HTMLElement, container: HTMLElement) => number | null;
|
|
46
50
|
/**
|
|
47
51
|
* @hidden
|
|
48
52
|
*/
|