@shival99/z-ui 2.0.51 → 2.0.52
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/fesm2022/shival99-z-ui-components-z-autocomplete.mjs +1 -1
- package/fesm2022/shival99-z-ui-components-z-autocomplete.mjs.map +1 -1
- package/fesm2022/shival99-z-ui-components-z-calendar.mjs +1 -1
- package/fesm2022/shival99-z-ui-components-z-calendar.mjs.map +1 -1
- package/fesm2022/shival99-z-ui-components-z-dropdown-menu.mjs +1 -1
- package/fesm2022/shival99-z-ui-components-z-dropdown-menu.mjs.map +1 -1
- package/fesm2022/shival99-z-ui-components-z-editor.mjs +1 -1
- package/fesm2022/shival99-z-ui-components-z-editor.mjs.map +1 -1
- package/fesm2022/shival99-z-ui-components-z-filter.mjs +1 -1
- package/fesm2022/shival99-z-ui-components-z-filter.mjs.map +1 -1
- package/fesm2022/shival99-z-ui-components-z-input.mjs +1 -1
- package/fesm2022/shival99-z-ui-components-z-input.mjs.map +1 -1
- package/fesm2022/shival99-z-ui-components-z-kanban.mjs +1 -1
- package/fesm2022/shival99-z-ui-components-z-kanban.mjs.map +1 -1
- package/fesm2022/shival99-z-ui-components-z-media-player.mjs +1 -1
- package/fesm2022/shival99-z-ui-components-z-media-player.mjs.map +1 -1
- package/fesm2022/shival99-z-ui-components-z-menu.mjs +2 -2
- package/fesm2022/shival99-z-ui-components-z-menu.mjs.map +1 -1
- package/fesm2022/shival99-z-ui-components-z-pagination.mjs +1 -1
- package/fesm2022/shival99-z-ui-components-z-pagination.mjs.map +1 -1
- package/fesm2022/shival99-z-ui-components-z-popover.mjs +320 -34
- package/fesm2022/shival99-z-ui-components-z-popover.mjs.map +1 -1
- package/fesm2022/shival99-z-ui-components-z-select.mjs +27 -12
- package/fesm2022/shival99-z-ui-components-z-select.mjs.map +1 -1
- package/fesm2022/shival99-z-ui-components-z-table.mjs +4 -4
- package/fesm2022/shival99-z-ui-components-z-table.mjs.map +1 -1
- package/fesm2022/shival99-z-ui-components-z-tabs.mjs +1 -1
- package/fesm2022/shival99-z-ui-components-z-tabs.mjs.map +1 -1
- package/fesm2022/shival99-z-ui-utils.mjs +15 -1
- package/fesm2022/shival99-z-ui-utils.mjs.map +1 -1
- package/package.json +1 -1
- package/types/shival99-z-ui-components-z-autocomplete.d.ts +1 -1
- package/types/shival99-z-ui-components-z-calendar.d.ts +4 -4
- package/types/shival99-z-ui-components-z-editor.d.ts +1 -1
- package/types/shival99-z-ui-components-z-popover.d.ts +33 -3
- package/types/shival99-z-ui-components-z-select.d.ts +4 -5
- package/types/shival99-z-ui-components-z-table.d.ts +3 -3
- package/types/shival99-z-ui-utils.d.ts +2 -1
|
@@ -5,8 +5,8 @@ import * as i0 from '@angular/core';
|
|
|
5
5
|
import { signal, computed, ChangeDetectionStrategy, Component, inject, Renderer2, DestroyRef, PLATFORM_ID, viewChild, output, input, ElementRef, Directive } from '@angular/core';
|
|
6
6
|
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
7
7
|
import { ZOverlayContainerService } from '@shival99/z-ui/services';
|
|
8
|
-
import { zMergeClasses, zTransform } from '@shival99/z-ui/utils';
|
|
9
|
-
import { Subject, switchMap, of, timer, map, filter } from 'rxjs';
|
|
8
|
+
import { zMergeClasses, zIsMobileViewport, zTransform } from '@shival99/z-ui/utils';
|
|
9
|
+
import { Subject, switchMap, of, timer, map, filter, fromEvent, throttleTime } from 'rxjs';
|
|
10
10
|
import { cva } from 'class-variance-authority';
|
|
11
11
|
|
|
12
12
|
const zPopoverVariants = cva([
|
|
@@ -184,6 +184,96 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.9", ngImpor
|
|
|
184
184
|
}]
|
|
185
185
|
}] });
|
|
186
186
|
|
|
187
|
+
const Z_POPOVER_MOBILE_VIEWPORT_MARGIN = 10;
|
|
188
|
+
function isMobilePopoverViewport() {
|
|
189
|
+
return zIsMobileViewport();
|
|
190
|
+
}
|
|
191
|
+
function getPopoverOverlaySize(widthConfig = {}) {
|
|
192
|
+
return widthConfig;
|
|
193
|
+
}
|
|
194
|
+
function getPopoverRenderPosition(position, _mobile = isMobilePopoverViewport()) {
|
|
195
|
+
return position;
|
|
196
|
+
}
|
|
197
|
+
function getMobilePopoverFallbackPositions(position) {
|
|
198
|
+
return getPopoverFallbackPositions(position, 0).map(pos => ({
|
|
199
|
+
...pos,
|
|
200
|
+
offsetX: 0,
|
|
201
|
+
offsetY: 0,
|
|
202
|
+
}));
|
|
203
|
+
}
|
|
204
|
+
function clampPopoverPosition(value, min, max) {
|
|
205
|
+
return Math.min(Math.max(value, min), max);
|
|
206
|
+
}
|
|
207
|
+
function getAlignedX(position, triggerRect, overlayRect) {
|
|
208
|
+
if (position === 'left' || position.startsWith('left-')) {
|
|
209
|
+
return triggerRect.left - overlayRect.width;
|
|
210
|
+
}
|
|
211
|
+
if (position === 'right' || position.startsWith('right-')) {
|
|
212
|
+
return triggerRect.right;
|
|
213
|
+
}
|
|
214
|
+
if (position.endsWith('-right')) {
|
|
215
|
+
return triggerRect.right - overlayRect.width;
|
|
216
|
+
}
|
|
217
|
+
if (position === 'top' || position === 'bottom') {
|
|
218
|
+
return triggerRect.left + triggerRect.width / 2 - overlayRect.width / 2;
|
|
219
|
+
}
|
|
220
|
+
return triggerRect.left;
|
|
221
|
+
}
|
|
222
|
+
function getAlignedY(position, triggerRect, overlayRect) {
|
|
223
|
+
if (position === 'top' || position.startsWith('top-')) {
|
|
224
|
+
return triggerRect.top - overlayRect.height;
|
|
225
|
+
}
|
|
226
|
+
if (position === 'bottom' || position.startsWith('bottom-')) {
|
|
227
|
+
return triggerRect.bottom;
|
|
228
|
+
}
|
|
229
|
+
if (position.endsWith('-bottom')) {
|
|
230
|
+
return triggerRect.bottom - overlayRect.height;
|
|
231
|
+
}
|
|
232
|
+
if (position === 'left' || position === 'right') {
|
|
233
|
+
return triggerRect.top + triggerRect.height / 2 - overlayRect.height / 2;
|
|
234
|
+
}
|
|
235
|
+
return triggerRect.top;
|
|
236
|
+
}
|
|
237
|
+
function getMobilePopoverPaneStyles(config) {
|
|
238
|
+
const { position, triggerRect, overlayRect, offset, viewportWidth } = config;
|
|
239
|
+
const viewportMargin = config.viewportMargin ?? Z_POPOVER_MOBILE_VIEWPORT_MARGIN;
|
|
240
|
+
const maxLeft = Math.max(viewportMargin, viewportWidth - overlayRect.width - viewportMargin);
|
|
241
|
+
let left = getAlignedX(position, triggerRect, overlayRect);
|
|
242
|
+
let top = getAlignedY(position, triggerRect, overlayRect);
|
|
243
|
+
if (position === 'top' || position.startsWith('top-')) {
|
|
244
|
+
top -= offset;
|
|
245
|
+
}
|
|
246
|
+
if (position === 'bottom' || position.startsWith('bottom-')) {
|
|
247
|
+
top += offset;
|
|
248
|
+
}
|
|
249
|
+
if (position === 'left' || position.startsWith('left-')) {
|
|
250
|
+
left -= offset;
|
|
251
|
+
}
|
|
252
|
+
if (position === 'right' || position.startsWith('right-')) {
|
|
253
|
+
left += offset;
|
|
254
|
+
}
|
|
255
|
+
left = clampPopoverPosition(left, viewportMargin, maxLeft);
|
|
256
|
+
return {
|
|
257
|
+
top: `${top}px`,
|
|
258
|
+
left: `${left}px`,
|
|
259
|
+
right: '',
|
|
260
|
+
bottom: '',
|
|
261
|
+
transform: 'none',
|
|
262
|
+
};
|
|
263
|
+
}
|
|
264
|
+
function getPopoverPushEnabled(_mobile = isMobilePopoverViewport()) {
|
|
265
|
+
return false;
|
|
266
|
+
}
|
|
267
|
+
function isPopoverTriggerVisibleInViewport(config) {
|
|
268
|
+
const { triggerRect, viewportWidth, viewportHeight } = config;
|
|
269
|
+
if (triggerRect.width <= 0 || triggerRect.height <= 0) {
|
|
270
|
+
return false;
|
|
271
|
+
}
|
|
272
|
+
return (triggerRect.bottom > 0 &&
|
|
273
|
+
triggerRect.top < viewportHeight &&
|
|
274
|
+
triggerRect.right > 0 &&
|
|
275
|
+
triggerRect.left < viewportWidth);
|
|
276
|
+
}
|
|
187
277
|
function createPopoverPosition(position, offset) {
|
|
188
278
|
const positions = {
|
|
189
279
|
top: {
|
|
@@ -292,12 +382,16 @@ function getPopoverFallbackPositions(position, offset) {
|
|
|
292
382
|
return orderedPositions.map(pos => createPopoverPosition(pos, offset));
|
|
293
383
|
}
|
|
294
384
|
function createPopoverPositionStrategy(overlayPositionBuilder, origin, position, offset) {
|
|
385
|
+
const mobile = isMobilePopoverViewport();
|
|
386
|
+
const positions = mobile
|
|
387
|
+
? getMobilePopoverFallbackPositions(position)
|
|
388
|
+
: getPopoverFallbackPositions(position, offset);
|
|
295
389
|
return overlayPositionBuilder
|
|
296
390
|
.flexibleConnectedTo(origin)
|
|
297
|
-
.withPositions(
|
|
391
|
+
.withPositions(positions)
|
|
298
392
|
.withFlexibleDimensions(false)
|
|
299
|
-
.withPush(
|
|
300
|
-
.withViewportMargin(
|
|
393
|
+
.withPush(getPopoverPushEnabled(mobile))
|
|
394
|
+
.withViewportMargin(10);
|
|
301
395
|
}
|
|
302
396
|
function getActualPopoverPosition(change) {
|
|
303
397
|
const { originX, originY, overlayX, overlayY } = change.connectionPair;
|
|
@@ -367,6 +461,7 @@ class ZPopoverComponent {
|
|
|
367
461
|
zManualClose = input(false, { ...(ngDevMode ? { debugName: "zManualClose" } : {}), transform: zTransform });
|
|
368
462
|
zOutsideClickClose = input(false, { ...(ngDevMode ? { debugName: "zOutsideClickClose" } : {}), transform: zTransform });
|
|
369
463
|
zScrollClose = input(false, { ...(ngDevMode ? { debugName: "zScrollClose" } : {}), transform: zTransform });
|
|
464
|
+
zSticky = input(false, { ...(ngDevMode ? { debugName: "zSticky" } : {}), transform: zTransform });
|
|
370
465
|
zShowArrow = input(false, { ...(ngDevMode ? { debugName: "zShowArrow" } : {}), transform: zTransform });
|
|
371
466
|
_overlayRef = null;
|
|
372
467
|
_componentRef = null;
|
|
@@ -374,8 +469,10 @@ class ZPopoverComponent {
|
|
|
374
469
|
_listenerCleanups = [];
|
|
375
470
|
_positionSubscription = null;
|
|
376
471
|
_scrollSubscription = null;
|
|
472
|
+
_viewportResizeSubscription = null;
|
|
377
473
|
_resizeObserver = null;
|
|
378
474
|
_hideTimeout = null;
|
|
475
|
+
_positionFrame = null;
|
|
379
476
|
_isVisible = signal(false, ...(ngDevMode ? [{ debugName: "_isVisible" }] : []));
|
|
380
477
|
ngOnInit() {
|
|
381
478
|
if (!isPlatformBrowser(this._platformId)) {
|
|
@@ -445,26 +542,36 @@ class ZPopoverComponent {
|
|
|
445
542
|
if (!this._isVisible()) {
|
|
446
543
|
return;
|
|
447
544
|
}
|
|
448
|
-
this.
|
|
545
|
+
this._updatePositionNow();
|
|
449
546
|
}
|
|
450
547
|
_createOverlay() {
|
|
451
548
|
const positionStrategy = createPopoverPositionStrategy(this._overlayPositionBuilder, this._trigger(), this.zPosition(), this.zOffset());
|
|
452
|
-
const scrollStrategy = this.zScrollClose()
|
|
453
|
-
? this._overlay.scrollStrategies.close()
|
|
454
|
-
: this._overlay.scrollStrategies.reposition({ scrollThrottle: 10, autoClose: false });
|
|
455
549
|
return this._overlay.create({
|
|
456
550
|
positionStrategy,
|
|
457
|
-
scrollStrategy,
|
|
551
|
+
scrollStrategy: this._createScrollStrategy(),
|
|
458
552
|
hasBackdrop: false,
|
|
553
|
+
...getPopoverOverlaySize(),
|
|
459
554
|
});
|
|
460
555
|
}
|
|
556
|
+
_createScrollStrategy() {
|
|
557
|
+
if (this.zScrollClose()) {
|
|
558
|
+
return this._overlay.scrollStrategies.close();
|
|
559
|
+
}
|
|
560
|
+
if (isMobilePopoverViewport() && this.zSticky()) {
|
|
561
|
+
return this._overlay.scrollStrategies.noop();
|
|
562
|
+
}
|
|
563
|
+
return this._overlay.scrollStrategies.reposition({ scrollThrottle: 10, autoClose: false });
|
|
564
|
+
}
|
|
461
565
|
_disposeOverlay() {
|
|
462
566
|
this._positionSubscription?.unsubscribe();
|
|
463
567
|
this._positionSubscription = null;
|
|
464
568
|
this._scrollSubscription?.unsubscribe();
|
|
465
569
|
this._scrollSubscription = null;
|
|
570
|
+
this._viewportResizeSubscription?.unsubscribe();
|
|
571
|
+
this._viewportResizeSubscription = null;
|
|
466
572
|
this._resizeObserver?.disconnect();
|
|
467
573
|
this._resizeObserver = null;
|
|
574
|
+
this._cancelScheduledPositionUpdate();
|
|
468
575
|
this._overlayRef?.dispose();
|
|
469
576
|
this._overlayRef = null;
|
|
470
577
|
this._componentRef = null;
|
|
@@ -542,7 +649,11 @@ class ZPopoverComponent {
|
|
|
542
649
|
}
|
|
543
650
|
ticking = true;
|
|
544
651
|
requestAnimationFrame(() => {
|
|
545
|
-
this.
|
|
652
|
+
if (this.zSticky() && !this._isTriggerVisibleInViewport()) {
|
|
653
|
+
ticking = false;
|
|
654
|
+
return;
|
|
655
|
+
}
|
|
656
|
+
this._updatePositionNow();
|
|
546
657
|
ticking = false;
|
|
547
658
|
});
|
|
548
659
|
};
|
|
@@ -553,6 +664,17 @@ class ZPopoverComponent {
|
|
|
553
664
|
},
|
|
554
665
|
};
|
|
555
666
|
}
|
|
667
|
+
_setupViewportResizeReposition() {
|
|
668
|
+
this._viewportResizeSubscription?.unsubscribe();
|
|
669
|
+
this._viewportResizeSubscription = fromEvent(window, 'resize')
|
|
670
|
+
.pipe(throttleTime(60), takeUntilDestroyed(this._destroyRef))
|
|
671
|
+
.subscribe(() => {
|
|
672
|
+
if (!this._overlayRef?.hasAttached()) {
|
|
673
|
+
return;
|
|
674
|
+
}
|
|
675
|
+
this._updatePositionNow();
|
|
676
|
+
});
|
|
677
|
+
}
|
|
556
678
|
_showPopover() {
|
|
557
679
|
const content = this.zContent();
|
|
558
680
|
if (!content || this._componentRef) {
|
|
@@ -565,11 +687,13 @@ class ZPopoverComponent {
|
|
|
565
687
|
this._setupScrollClose();
|
|
566
688
|
const positionStrategy = createPopoverPositionStrategy(this._overlayPositionBuilder, this._trigger(), this.zPosition(), this.zOffset());
|
|
567
689
|
this._overlayRef.updatePositionStrategy(positionStrategy);
|
|
690
|
+
this._overlayRef.updateSize(getPopoverOverlaySize());
|
|
568
691
|
const portal = new ComponentPortal(ZPopoverContentComponent);
|
|
569
692
|
this._componentRef = this._overlayRef.attach(portal);
|
|
693
|
+
const renderPosition = getPopoverRenderPosition(this.zPosition());
|
|
570
694
|
this._componentRef.instance.setProps({
|
|
571
695
|
content,
|
|
572
|
-
position:
|
|
696
|
+
position: renderPosition,
|
|
573
697
|
customClass: this.zClass(),
|
|
574
698
|
onClose: () => this.hide(),
|
|
575
699
|
showArrow: this.zShowArrow(),
|
|
@@ -577,11 +701,14 @@ class ZPopoverComponent {
|
|
|
577
701
|
this._positionSubscription = positionStrategy.positionChanges.subscribe(change => {
|
|
578
702
|
const actualPosition = getActualPopoverPosition(change);
|
|
579
703
|
this._componentRef?.instance.position.set(actualPosition);
|
|
704
|
+
this._applyMobilePopoverPosition(actualPosition);
|
|
580
705
|
});
|
|
581
706
|
if (this.zTrigger() === 'hover') {
|
|
582
707
|
this._setupPopoverHover();
|
|
583
708
|
}
|
|
584
709
|
this._setupResizeObserver();
|
|
710
|
+
this._setupViewportResizeReposition();
|
|
711
|
+
this._updatePositionAfterContentSettles();
|
|
585
712
|
this._isVisible.set(true);
|
|
586
713
|
ZPopoverComponent._openPopovers.add(this);
|
|
587
714
|
this.zShow.emit();
|
|
@@ -609,15 +736,77 @@ class ZPopoverComponent {
|
|
|
609
736
|
this._resizeObserver?.disconnect();
|
|
610
737
|
this._resizeObserver = new ResizeObserver(() => {
|
|
611
738
|
if (this._overlayRef && this._isVisible()) {
|
|
612
|
-
this.
|
|
739
|
+
this._schedulePositionUpdate();
|
|
613
740
|
}
|
|
614
741
|
});
|
|
615
742
|
this._resizeObserver.observe(this._trigger().nativeElement);
|
|
743
|
+
const overlayElement = this._overlayRef?.overlayElement;
|
|
744
|
+
if (overlayElement) {
|
|
745
|
+
this._resizeObserver.observe(overlayElement);
|
|
746
|
+
}
|
|
616
747
|
const wrapper = this._trigger().nativeElement.parentElement?.parentElement;
|
|
617
748
|
if (wrapper && wrapper !== document.body) {
|
|
618
749
|
this._resizeObserver.observe(wrapper);
|
|
619
750
|
}
|
|
620
751
|
}
|
|
752
|
+
_updatePositionAfterContentSettles() {
|
|
753
|
+
this._schedulePositionUpdate();
|
|
754
|
+
}
|
|
755
|
+
_schedulePositionUpdate() {
|
|
756
|
+
if (this._positionFrame !== null) {
|
|
757
|
+
return;
|
|
758
|
+
}
|
|
759
|
+
this._positionFrame = requestAnimationFrame(() => {
|
|
760
|
+
this._positionFrame = null;
|
|
761
|
+
this._updatePositionNow();
|
|
762
|
+
});
|
|
763
|
+
}
|
|
764
|
+
_cancelScheduledPositionUpdate() {
|
|
765
|
+
if (this._positionFrame === null) {
|
|
766
|
+
return;
|
|
767
|
+
}
|
|
768
|
+
cancelAnimationFrame(this._positionFrame);
|
|
769
|
+
this._positionFrame = null;
|
|
770
|
+
}
|
|
771
|
+
_updatePositionNow() {
|
|
772
|
+
if (!this._overlayRef?.hasAttached()) {
|
|
773
|
+
return;
|
|
774
|
+
}
|
|
775
|
+
if (isMobilePopoverViewport() && this.zSticky() && !this._isTriggerVisibleInViewport()) {
|
|
776
|
+
return;
|
|
777
|
+
}
|
|
778
|
+
this._overlayRef.updatePosition();
|
|
779
|
+
this._applyMobilePopoverPosition(this._componentRef?.instance.position() ?? this.zPosition());
|
|
780
|
+
}
|
|
781
|
+
_applyMobilePopoverPosition(position) {
|
|
782
|
+
if (!isMobilePopoverViewport() || !this._overlayRef?.hasAttached()) {
|
|
783
|
+
return;
|
|
784
|
+
}
|
|
785
|
+
const { overlayElement } = this._overlayRef;
|
|
786
|
+
const { visualViewport } = window;
|
|
787
|
+
const styles = getMobilePopoverPaneStyles({
|
|
788
|
+
position,
|
|
789
|
+
triggerRect: this._trigger().nativeElement.getBoundingClientRect(),
|
|
790
|
+
overlayRect: overlayElement.getBoundingClientRect(),
|
|
791
|
+
offset: this.zOffset(),
|
|
792
|
+
viewportWidth: visualViewport?.width ?? window.innerWidth,
|
|
793
|
+
viewportHeight: visualViewport?.height ?? window.innerHeight,
|
|
794
|
+
});
|
|
795
|
+
this._setOverlayPaneStyles(styles);
|
|
796
|
+
}
|
|
797
|
+
_isTriggerVisibleInViewport() {
|
|
798
|
+
const { visualViewport } = window;
|
|
799
|
+
return isPopoverTriggerVisibleInViewport({
|
|
800
|
+
triggerRect: this._trigger().nativeElement.getBoundingClientRect(),
|
|
801
|
+
viewportWidth: visualViewport?.width ?? window.innerWidth,
|
|
802
|
+
viewportHeight: visualViewport?.height ?? window.innerHeight,
|
|
803
|
+
});
|
|
804
|
+
}
|
|
805
|
+
_setOverlayPaneStyles(styles) {
|
|
806
|
+
for (const key of ['top', 'left', 'right', 'bottom', 'transform']) {
|
|
807
|
+
this._renderer.setStyle(this._overlayRef?.overlayElement, key, styles[key]);
|
|
808
|
+
}
|
|
809
|
+
}
|
|
621
810
|
_setupPopoverHover() {
|
|
622
811
|
const overlayElement = this._overlayRef?.overlayElement;
|
|
623
812
|
if (!overlayElement) {
|
|
@@ -662,7 +851,7 @@ class ZPopoverComponent {
|
|
|
662
851
|
this._listenerCleanups = [];
|
|
663
852
|
}
|
|
664
853
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: ZPopoverComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
665
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.0.9", type: ZPopoverComponent, isStandalone: true, selector: "z-popover", inputs: { zContent: { classPropertyName: "zContent", publicName: "zContent", isSignal: true, isRequired: false, transformFunction: null }, zPosition: { classPropertyName: "zPosition", publicName: "zPosition", isSignal: true, isRequired: false, transformFunction: null }, zTrigger: { classPropertyName: "zTrigger", publicName: "zTrigger", isSignal: true, isRequired: false, transformFunction: null }, zClass: { classPropertyName: "zClass", publicName: "zClass", isSignal: true, isRequired: false, transformFunction: null }, zShowDelay: { classPropertyName: "zShowDelay", publicName: "zShowDelay", isSignal: true, isRequired: false, transformFunction: null }, zHideDelay: { classPropertyName: "zHideDelay", publicName: "zHideDelay", isSignal: true, isRequired: false, transformFunction: null }, zDisabled: { classPropertyName: "zDisabled", publicName: "zDisabled", isSignal: true, isRequired: false, transformFunction: null }, zOffset: { classPropertyName: "zOffset", publicName: "zOffset", isSignal: true, isRequired: false, transformFunction: null }, zManualClose: { classPropertyName: "zManualClose", publicName: "zManualClose", isSignal: true, isRequired: false, transformFunction: null }, zOutsideClickClose: { classPropertyName: "zOutsideClickClose", publicName: "zOutsideClickClose", isSignal: true, isRequired: false, transformFunction: null }, zScrollClose: { classPropertyName: "zScrollClose", publicName: "zScrollClose", isSignal: true, isRequired: false, transformFunction: null }, zShowArrow: { classPropertyName: "zShowArrow", publicName: "zShowArrow", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { zShow: "zShow", zHide: "zHide", zControl: "zControl", zOutsideClick: "zOutsideClick" }, host: { classAttribute: "inline-block" }, viewQueries: [{ propertyName: "_trigger", first: true, predicate: ["trigger"], descendants: true, isSignal: true }], ngImport: i0, template: `
|
|
854
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.0.9", type: ZPopoverComponent, isStandalone: true, selector: "z-popover", inputs: { zContent: { classPropertyName: "zContent", publicName: "zContent", isSignal: true, isRequired: false, transformFunction: null }, zPosition: { classPropertyName: "zPosition", publicName: "zPosition", isSignal: true, isRequired: false, transformFunction: null }, zTrigger: { classPropertyName: "zTrigger", publicName: "zTrigger", isSignal: true, isRequired: false, transformFunction: null }, zClass: { classPropertyName: "zClass", publicName: "zClass", isSignal: true, isRequired: false, transformFunction: null }, zShowDelay: { classPropertyName: "zShowDelay", publicName: "zShowDelay", isSignal: true, isRequired: false, transformFunction: null }, zHideDelay: { classPropertyName: "zHideDelay", publicName: "zHideDelay", isSignal: true, isRequired: false, transformFunction: null }, zDisabled: { classPropertyName: "zDisabled", publicName: "zDisabled", isSignal: true, isRequired: false, transformFunction: null }, zOffset: { classPropertyName: "zOffset", publicName: "zOffset", isSignal: true, isRequired: false, transformFunction: null }, zManualClose: { classPropertyName: "zManualClose", publicName: "zManualClose", isSignal: true, isRequired: false, transformFunction: null }, zOutsideClickClose: { classPropertyName: "zOutsideClickClose", publicName: "zOutsideClickClose", isSignal: true, isRequired: false, transformFunction: null }, zScrollClose: { classPropertyName: "zScrollClose", publicName: "zScrollClose", isSignal: true, isRequired: false, transformFunction: null }, zSticky: { classPropertyName: "zSticky", publicName: "zSticky", isSignal: true, isRequired: false, transformFunction: null }, zShowArrow: { classPropertyName: "zShowArrow", publicName: "zShowArrow", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { zShow: "zShow", zHide: "zHide", zControl: "zControl", zOutsideClick: "zOutsideClick" }, host: { classAttribute: "inline-block" }, viewQueries: [{ propertyName: "_trigger", first: true, predicate: ["trigger"], descendants: true, isSignal: true }], ngImport: i0, template: `
|
|
666
855
|
<span #trigger class="z-popover-trigger inline-block">
|
|
667
856
|
<ng-content />
|
|
668
857
|
</span>
|
|
@@ -683,7 +872,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.9", ngImpor
|
|
|
683
872
|
class: 'inline-block',
|
|
684
873
|
},
|
|
685
874
|
}]
|
|
686
|
-
}], propDecorators: { _trigger: [{ type: i0.ViewChild, args: ['trigger', { isSignal: true }] }], zShow: [{ type: i0.Output, args: ["zShow"] }], zHide: [{ type: i0.Output, args: ["zHide"] }], zControl: [{ type: i0.Output, args: ["zControl"] }], zOutsideClick: [{ type: i0.Output, args: ["zOutsideClick"] }], zContent: [{ type: i0.Input, args: [{ isSignal: true, alias: "zContent", required: false }] }], zPosition: [{ type: i0.Input, args: [{ isSignal: true, alias: "zPosition", required: false }] }], zTrigger: [{ type: i0.Input, args: [{ isSignal: true, alias: "zTrigger", required: false }] }], zClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "zClass", required: false }] }], zShowDelay: [{ type: i0.Input, args: [{ isSignal: true, alias: "zShowDelay", required: false }] }], zHideDelay: [{ type: i0.Input, args: [{ isSignal: true, alias: "zHideDelay", required: false }] }], zDisabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "zDisabled", required: false }] }], zOffset: [{ type: i0.Input, args: [{ isSignal: true, alias: "zOffset", required: false }] }], zManualClose: [{ type: i0.Input, args: [{ isSignal: true, alias: "zManualClose", required: false }] }], zOutsideClickClose: [{ type: i0.Input, args: [{ isSignal: true, alias: "zOutsideClickClose", required: false }] }], zScrollClose: [{ type: i0.Input, args: [{ isSignal: true, alias: "zScrollClose", required: false }] }], zShowArrow: [{ type: i0.Input, args: [{ isSignal: true, alias: "zShowArrow", required: false }] }] } });
|
|
875
|
+
}], propDecorators: { _trigger: [{ type: i0.ViewChild, args: ['trigger', { isSignal: true }] }], zShow: [{ type: i0.Output, args: ["zShow"] }], zHide: [{ type: i0.Output, args: ["zHide"] }], zControl: [{ type: i0.Output, args: ["zControl"] }], zOutsideClick: [{ type: i0.Output, args: ["zOutsideClick"] }], zContent: [{ type: i0.Input, args: [{ isSignal: true, alias: "zContent", required: false }] }], zPosition: [{ type: i0.Input, args: [{ isSignal: true, alias: "zPosition", required: false }] }], zTrigger: [{ type: i0.Input, args: [{ isSignal: true, alias: "zTrigger", required: false }] }], zClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "zClass", required: false }] }], zShowDelay: [{ type: i0.Input, args: [{ isSignal: true, alias: "zShowDelay", required: false }] }], zHideDelay: [{ type: i0.Input, args: [{ isSignal: true, alias: "zHideDelay", required: false }] }], zDisabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "zDisabled", required: false }] }], zOffset: [{ type: i0.Input, args: [{ isSignal: true, alias: "zOffset", required: false }] }], zManualClose: [{ type: i0.Input, args: [{ isSignal: true, alias: "zManualClose", required: false }] }], zOutsideClickClose: [{ type: i0.Input, args: [{ isSignal: true, alias: "zOutsideClickClose", required: false }] }], zScrollClose: [{ type: i0.Input, args: [{ isSignal: true, alias: "zScrollClose", required: false }] }], zSticky: [{ type: i0.Input, args: [{ isSignal: true, alias: "zSticky", required: false }] }], zShowArrow: [{ type: i0.Input, args: [{ isSignal: true, alias: "zShowArrow", required: false }] }] } });
|
|
687
876
|
|
|
688
877
|
class ZPopoverDirective {
|
|
689
878
|
static _openPopovers = new Set();
|
|
@@ -701,6 +890,7 @@ class ZPopoverDirective {
|
|
|
701
890
|
zManualClose = input(false, { ...(ngDevMode ? { debugName: "zManualClose" } : {}), transform: zTransform });
|
|
702
891
|
zOutsideClickClose = input(false, { ...(ngDevMode ? { debugName: "zOutsideClickClose" } : {}), transform: zTransform });
|
|
703
892
|
zScrollClose = input(false, { ...(ngDevMode ? { debugName: "zScrollClose" } : {}), transform: zTransform });
|
|
893
|
+
zSticky = input(false, { ...(ngDevMode ? { debugName: "zSticky" } : {}), transform: zTransform });
|
|
704
894
|
zShowArrow = input(false, { ...(ngDevMode ? { debugName: "zShowArrow" } : {}), transform: zTransform });
|
|
705
895
|
zShow = output();
|
|
706
896
|
zHide = output();
|
|
@@ -723,8 +913,10 @@ class ZPopoverDirective {
|
|
|
723
913
|
_listenerCleanups = [];
|
|
724
914
|
_positionSubscription = null;
|
|
725
915
|
_scrollSubscription = null;
|
|
916
|
+
_viewportResizeSubscription = null;
|
|
726
917
|
_resizeObserver = null;
|
|
727
918
|
_hideTimeout = null;
|
|
919
|
+
_positionFrame = null;
|
|
728
920
|
_isDestroyed = signal(false, ...(ngDevMode ? [{ debugName: "_isDestroyed" }] : []));
|
|
729
921
|
_isVisible = signal(false, ...(ngDevMode ? [{ debugName: "_isVisible" }] : []));
|
|
730
922
|
ngOnInit() {
|
|
@@ -803,35 +995,37 @@ class ZPopoverDirective {
|
|
|
803
995
|
if (!this._isVisible()) {
|
|
804
996
|
return;
|
|
805
997
|
}
|
|
806
|
-
this.
|
|
807
|
-
const widthConfig = this._getWidthConfig();
|
|
808
|
-
if (widthConfig.width) {
|
|
809
|
-
this._overlayRef?.updateSize({ width: widthConfig.width, minWidth: widthConfig.minWidth });
|
|
810
|
-
}
|
|
998
|
+
this._updatePositionNow();
|
|
811
999
|
}
|
|
812
1000
|
_createOverlay() {
|
|
813
1001
|
const positionStrategy = createPopoverPositionStrategy(this._overlayPositionBuilder, this._getTriggerElement(), this.zPosition(), this.zOffset());
|
|
814
1002
|
const widthConfig = this._getWidthConfig();
|
|
815
|
-
const scrollStrategy = this.zScrollClose()
|
|
816
|
-
? this._overlay.scrollStrategies.close()
|
|
817
|
-
: this._overlay.scrollStrategies.reposition();
|
|
818
1003
|
return this._overlay.create({
|
|
819
1004
|
positionStrategy,
|
|
820
|
-
scrollStrategy,
|
|
1005
|
+
scrollStrategy: this._createScrollStrategy(),
|
|
821
1006
|
hasBackdrop: false,
|
|
822
1007
|
...widthConfig,
|
|
823
1008
|
});
|
|
824
1009
|
}
|
|
1010
|
+
_createScrollStrategy() {
|
|
1011
|
+
if (this.zScrollClose()) {
|
|
1012
|
+
return this._overlay.scrollStrategies.close();
|
|
1013
|
+
}
|
|
1014
|
+
if (isMobilePopoverViewport() && this.zSticky()) {
|
|
1015
|
+
return this._overlay.scrollStrategies.noop();
|
|
1016
|
+
}
|
|
1017
|
+
return this._overlay.scrollStrategies.reposition();
|
|
1018
|
+
}
|
|
825
1019
|
_getWidthConfig() {
|
|
826
1020
|
const width = this.zPopoverWidth();
|
|
827
1021
|
if (width === 'auto') {
|
|
828
|
-
return
|
|
1022
|
+
return getPopoverOverlaySize();
|
|
829
1023
|
}
|
|
830
1024
|
if (width === 'trigger') {
|
|
831
1025
|
const triggerWidth = this._getTriggerElement().getBoundingClientRect().width;
|
|
832
|
-
return { width: `${triggerWidth}px`, minWidth: `${triggerWidth}px` };
|
|
1026
|
+
return getPopoverOverlaySize({ width: `${triggerWidth}px`, minWidth: `${triggerWidth}px` });
|
|
833
1027
|
}
|
|
834
|
-
return { width, minWidth: width };
|
|
1028
|
+
return getPopoverOverlaySize({ width, minWidth: width });
|
|
835
1029
|
}
|
|
836
1030
|
_getTriggerElement() {
|
|
837
1031
|
const triggerRef = this.zTriggerRef();
|
|
@@ -845,8 +1039,11 @@ class ZPopoverDirective {
|
|
|
845
1039
|
this._positionSubscription = null;
|
|
846
1040
|
this._scrollSubscription?.unsubscribe();
|
|
847
1041
|
this._scrollSubscription = null;
|
|
1042
|
+
this._viewportResizeSubscription?.unsubscribe();
|
|
1043
|
+
this._viewportResizeSubscription = null;
|
|
848
1044
|
this._resizeObserver?.disconnect();
|
|
849
1045
|
this._resizeObserver = null;
|
|
1046
|
+
this._cancelScheduledPositionUpdate();
|
|
850
1047
|
this._overlayRef?.dispose();
|
|
851
1048
|
this._overlayRef = null;
|
|
852
1049
|
this._componentRef = null;
|
|
@@ -936,7 +1133,11 @@ class ZPopoverDirective {
|
|
|
936
1133
|
}
|
|
937
1134
|
ticking = true;
|
|
938
1135
|
requestAnimationFrame(() => {
|
|
939
|
-
this.
|
|
1136
|
+
if (this.zSticky() && !this._isTriggerVisibleInViewport()) {
|
|
1137
|
+
ticking = false;
|
|
1138
|
+
return;
|
|
1139
|
+
}
|
|
1140
|
+
this._updatePositionNow();
|
|
940
1141
|
ticking = false;
|
|
941
1142
|
});
|
|
942
1143
|
};
|
|
@@ -947,6 +1148,21 @@ class ZPopoverDirective {
|
|
|
947
1148
|
},
|
|
948
1149
|
};
|
|
949
1150
|
}
|
|
1151
|
+
_setupViewportResizeReposition() {
|
|
1152
|
+
this._viewportResizeSubscription?.unsubscribe();
|
|
1153
|
+
this._viewportResizeSubscription = fromEvent(window, 'resize')
|
|
1154
|
+
.pipe(throttleTime(60), takeUntilDestroyed(this._destroyRef))
|
|
1155
|
+
.subscribe(() => {
|
|
1156
|
+
if (!this._overlayRef?.hasAttached()) {
|
|
1157
|
+
return;
|
|
1158
|
+
}
|
|
1159
|
+
const widthConfig = this._getWidthConfig();
|
|
1160
|
+
if (widthConfig.width) {
|
|
1161
|
+
this._overlayRef.updateSize(widthConfig);
|
|
1162
|
+
}
|
|
1163
|
+
this._updatePositionNow();
|
|
1164
|
+
});
|
|
1165
|
+
}
|
|
950
1166
|
_delay(show, delay) {
|
|
951
1167
|
this._delaySubject.next({ show, delay });
|
|
952
1168
|
}
|
|
@@ -976,13 +1192,14 @@ class ZPopoverDirective {
|
|
|
976
1192
|
this._overlayRef.updatePositionStrategy(positionStrategy);
|
|
977
1193
|
const widthConfig = this._getWidthConfig();
|
|
978
1194
|
if (widthConfig.width) {
|
|
979
|
-
this._overlayRef.updateSize(
|
|
1195
|
+
this._overlayRef.updateSize(widthConfig);
|
|
980
1196
|
}
|
|
981
1197
|
const portal = new ComponentPortal(ZPopoverContentComponent);
|
|
982
1198
|
this._componentRef = this._overlayRef.attach(portal);
|
|
1199
|
+
const renderPosition = getPopoverRenderPosition(this.zPosition());
|
|
983
1200
|
this._componentRef.instance.setProps({
|
|
984
1201
|
content,
|
|
985
|
-
position:
|
|
1202
|
+
position: renderPosition,
|
|
986
1203
|
customClass: this.zClass(),
|
|
987
1204
|
onClose: () => this.hide(),
|
|
988
1205
|
showArrow: this.zShowArrow(),
|
|
@@ -991,11 +1208,14 @@ class ZPopoverDirective {
|
|
|
991
1208
|
const actualPosition = getActualPopoverPosition(change);
|
|
992
1209
|
this._componentRef?.instance.position.set(actualPosition);
|
|
993
1210
|
this.zPositionChange.emit(actualPosition);
|
|
1211
|
+
this._applyMobilePopoverPosition(actualPosition);
|
|
994
1212
|
});
|
|
995
1213
|
if (this._trigger() === 'hover') {
|
|
996
1214
|
this._setupPopoverHover();
|
|
997
1215
|
}
|
|
998
1216
|
this._setupResizeObserver();
|
|
1217
|
+
this._setupViewportResizeReposition();
|
|
1218
|
+
this._updatePositionAfterContentSettles();
|
|
999
1219
|
this._isVisible.set(true);
|
|
1000
1220
|
ZPopoverDirective._openPopovers.add(this);
|
|
1001
1221
|
this._renderer.addClass(this._elementRef.nativeElement, 'z-popover-open');
|
|
@@ -1025,15 +1245,19 @@ class ZPopoverDirective {
|
|
|
1025
1245
|
this._resizeObserver?.disconnect();
|
|
1026
1246
|
this._resizeObserver = new ResizeObserver(() => {
|
|
1027
1247
|
if (this._overlayRef && this._isVisible()) {
|
|
1028
|
-
this._overlayRef.updatePosition();
|
|
1029
1248
|
const widthConfig = this._getWidthConfig();
|
|
1030
1249
|
if (widthConfig.width) {
|
|
1031
|
-
this._overlayRef.updateSize(
|
|
1250
|
+
this._overlayRef.updateSize(widthConfig);
|
|
1032
1251
|
}
|
|
1252
|
+
this._schedulePositionUpdate();
|
|
1033
1253
|
}
|
|
1034
1254
|
});
|
|
1035
1255
|
const originElement = this._getTriggerElement();
|
|
1036
1256
|
this._resizeObserver.observe(originElement);
|
|
1257
|
+
const overlayElement = this._overlayRef?.overlayElement;
|
|
1258
|
+
if (overlayElement) {
|
|
1259
|
+
this._resizeObserver.observe(overlayElement);
|
|
1260
|
+
}
|
|
1037
1261
|
if (originElement !== this._elementRef.nativeElement) {
|
|
1038
1262
|
this._resizeObserver.observe(this._elementRef.nativeElement);
|
|
1039
1263
|
}
|
|
@@ -1042,6 +1266,68 @@ class ZPopoverDirective {
|
|
|
1042
1266
|
this._resizeObserver.observe(wrapper);
|
|
1043
1267
|
}
|
|
1044
1268
|
}
|
|
1269
|
+
_updatePositionAfterContentSettles() {
|
|
1270
|
+
this._schedulePositionUpdate();
|
|
1271
|
+
}
|
|
1272
|
+
_schedulePositionUpdate() {
|
|
1273
|
+
if (this._positionFrame !== null) {
|
|
1274
|
+
return;
|
|
1275
|
+
}
|
|
1276
|
+
this._positionFrame = requestAnimationFrame(() => {
|
|
1277
|
+
this._positionFrame = null;
|
|
1278
|
+
this._updatePositionNow();
|
|
1279
|
+
});
|
|
1280
|
+
}
|
|
1281
|
+
_cancelScheduledPositionUpdate() {
|
|
1282
|
+
if (this._positionFrame === null) {
|
|
1283
|
+
return;
|
|
1284
|
+
}
|
|
1285
|
+
cancelAnimationFrame(this._positionFrame);
|
|
1286
|
+
this._positionFrame = null;
|
|
1287
|
+
}
|
|
1288
|
+
_updatePositionNow() {
|
|
1289
|
+
if (!this._overlayRef?.hasAttached()) {
|
|
1290
|
+
return;
|
|
1291
|
+
}
|
|
1292
|
+
if (isMobilePopoverViewport() && this.zSticky() && !this._isTriggerVisibleInViewport()) {
|
|
1293
|
+
return;
|
|
1294
|
+
}
|
|
1295
|
+
const widthConfig = this._getWidthConfig();
|
|
1296
|
+
if (widthConfig.width) {
|
|
1297
|
+
this._overlayRef.updateSize(widthConfig);
|
|
1298
|
+
}
|
|
1299
|
+
this._overlayRef.updatePosition();
|
|
1300
|
+
this._applyMobilePopoverPosition(this._componentRef?.instance.position() ?? this.zPosition());
|
|
1301
|
+
}
|
|
1302
|
+
_applyMobilePopoverPosition(position) {
|
|
1303
|
+
if (!isMobilePopoverViewport() || !this._overlayRef?.hasAttached()) {
|
|
1304
|
+
return;
|
|
1305
|
+
}
|
|
1306
|
+
const { overlayElement } = this._overlayRef;
|
|
1307
|
+
const { visualViewport } = window;
|
|
1308
|
+
const styles = getMobilePopoverPaneStyles({
|
|
1309
|
+
position,
|
|
1310
|
+
triggerRect: this._getTriggerElement().getBoundingClientRect(),
|
|
1311
|
+
overlayRect: overlayElement.getBoundingClientRect(),
|
|
1312
|
+
offset: this.zOffset(),
|
|
1313
|
+
viewportWidth: visualViewport?.width ?? window.innerWidth,
|
|
1314
|
+
viewportHeight: visualViewport?.height ?? window.innerHeight,
|
|
1315
|
+
});
|
|
1316
|
+
this._setOverlayPaneStyles(styles);
|
|
1317
|
+
}
|
|
1318
|
+
_isTriggerVisibleInViewport() {
|
|
1319
|
+
const { visualViewport } = window;
|
|
1320
|
+
return isPopoverTriggerVisibleInViewport({
|
|
1321
|
+
triggerRect: this._getTriggerElement().getBoundingClientRect(),
|
|
1322
|
+
viewportWidth: visualViewport?.width ?? window.innerWidth,
|
|
1323
|
+
viewportHeight: visualViewport?.height ?? window.innerHeight,
|
|
1324
|
+
});
|
|
1325
|
+
}
|
|
1326
|
+
_setOverlayPaneStyles(styles) {
|
|
1327
|
+
for (const key of ['top', 'left', 'right', 'bottom', 'transform']) {
|
|
1328
|
+
this._renderer.setStyle(this._overlayRef?.overlayElement, key, styles[key]);
|
|
1329
|
+
}
|
|
1330
|
+
}
|
|
1045
1331
|
_setupPopoverHover() {
|
|
1046
1332
|
const overlayElement = this._overlayRef?.overlayElement;
|
|
1047
1333
|
if (!overlayElement) {
|
|
@@ -1088,7 +1374,7 @@ class ZPopoverDirective {
|
|
|
1088
1374
|
this._listenerCleanups = [];
|
|
1089
1375
|
}
|
|
1090
1376
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: ZPopoverDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
1091
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.0.9", type: ZPopoverDirective, isStandalone: true, selector: "[z-popover]", inputs: { zContent: { classPropertyName: "zContent", publicName: "zPopoverContent", isSignal: true, isRequired: false, transformFunction: null }, zPosition: { classPropertyName: "zPosition", publicName: "zPosition", isSignal: true, isRequired: false, transformFunction: null }, zTrigger: { classPropertyName: "zTrigger", publicName: "zTrigger", isSignal: true, isRequired: false, transformFunction: null }, zPopoverTrigger: { classPropertyName: "zPopoverTrigger", publicName: "zPopoverTrigger", isSignal: true, isRequired: false, transformFunction: null }, zClass: { classPropertyName: "zClass", publicName: "zClass", isSignal: true, isRequired: false, transformFunction: null }, zShowDelay: { classPropertyName: "zShowDelay", publicName: "zShowDelay", isSignal: true, isRequired: false, transformFunction: null }, zHideDelay: { classPropertyName: "zHideDelay", publicName: "zHideDelay", isSignal: true, isRequired: false, transformFunction: null }, zDisabled: { classPropertyName: "zDisabled", publicName: "zDisabled", isSignal: true, isRequired: false, transformFunction: null }, zOffset: { classPropertyName: "zOffset", publicName: "zOffset", isSignal: true, isRequired: false, transformFunction: null }, zPopoverWidth: { classPropertyName: "zPopoverWidth", publicName: "zPopoverWidth", isSignal: true, isRequired: false, transformFunction: null }, zTriggerRef: { classPropertyName: "zTriggerRef", publicName: "zTriggerRef", isSignal: true, isRequired: false, transformFunction: null }, zManualClose: { classPropertyName: "zManualClose", publicName: "zManualClose", isSignal: true, isRequired: false, transformFunction: null }, zOutsideClickClose: { classPropertyName: "zOutsideClickClose", publicName: "zOutsideClickClose", isSignal: true, isRequired: false, transformFunction: null }, zScrollClose: { classPropertyName: "zScrollClose", publicName: "zScrollClose", isSignal: true, isRequired: false, transformFunction: null }, zShowArrow: { classPropertyName: "zShowArrow", publicName: "zShowArrow", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { zShow: "zShow", zHide: "zHide", zHideStart: "zHideStart", zControl: "zControl", zPositionChange: "zPositionChange", zOutsideClick: "zOutsideClick" }, exportAs: ["zPopover"], ngImport: i0 });
|
|
1377
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.0.9", type: ZPopoverDirective, isStandalone: true, selector: "[z-popover]", inputs: { zContent: { classPropertyName: "zContent", publicName: "zPopoverContent", isSignal: true, isRequired: false, transformFunction: null }, zPosition: { classPropertyName: "zPosition", publicName: "zPosition", isSignal: true, isRequired: false, transformFunction: null }, zTrigger: { classPropertyName: "zTrigger", publicName: "zTrigger", isSignal: true, isRequired: false, transformFunction: null }, zPopoverTrigger: { classPropertyName: "zPopoverTrigger", publicName: "zPopoverTrigger", isSignal: true, isRequired: false, transformFunction: null }, zClass: { classPropertyName: "zClass", publicName: "zClass", isSignal: true, isRequired: false, transformFunction: null }, zShowDelay: { classPropertyName: "zShowDelay", publicName: "zShowDelay", isSignal: true, isRequired: false, transformFunction: null }, zHideDelay: { classPropertyName: "zHideDelay", publicName: "zHideDelay", isSignal: true, isRequired: false, transformFunction: null }, zDisabled: { classPropertyName: "zDisabled", publicName: "zDisabled", isSignal: true, isRequired: false, transformFunction: null }, zOffset: { classPropertyName: "zOffset", publicName: "zOffset", isSignal: true, isRequired: false, transformFunction: null }, zPopoverWidth: { classPropertyName: "zPopoverWidth", publicName: "zPopoverWidth", isSignal: true, isRequired: false, transformFunction: null }, zTriggerRef: { classPropertyName: "zTriggerRef", publicName: "zTriggerRef", isSignal: true, isRequired: false, transformFunction: null }, zManualClose: { classPropertyName: "zManualClose", publicName: "zManualClose", isSignal: true, isRequired: false, transformFunction: null }, zOutsideClickClose: { classPropertyName: "zOutsideClickClose", publicName: "zOutsideClickClose", isSignal: true, isRequired: false, transformFunction: null }, zScrollClose: { classPropertyName: "zScrollClose", publicName: "zScrollClose", isSignal: true, isRequired: false, transformFunction: null }, zSticky: { classPropertyName: "zSticky", publicName: "zSticky", isSignal: true, isRequired: false, transformFunction: null }, zShowArrow: { classPropertyName: "zShowArrow", publicName: "zShowArrow", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { zShow: "zShow", zHide: "zHide", zHideStart: "zHideStart", zControl: "zControl", zPositionChange: "zPositionChange", zOutsideClick: "zOutsideClick" }, exportAs: ["zPopover"], ngImport: i0 });
|
|
1092
1378
|
}
|
|
1093
1379
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: ZPopoverDirective, decorators: [{
|
|
1094
1380
|
type: Directive,
|
|
@@ -1097,7 +1383,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.9", ngImpor
|
|
|
1097
1383
|
standalone: true,
|
|
1098
1384
|
exportAs: 'zPopover',
|
|
1099
1385
|
}]
|
|
1100
|
-
}], propDecorators: { zContent: [{ type: i0.Input, args: [{ isSignal: true, alias: "zPopoverContent", required: false }] }], zPosition: [{ type: i0.Input, args: [{ isSignal: true, alias: "zPosition", required: false }] }], zTrigger: [{ type: i0.Input, args: [{ isSignal: true, alias: "zTrigger", required: false }] }], zPopoverTrigger: [{ type: i0.Input, args: [{ isSignal: true, alias: "zPopoverTrigger", required: false }] }], zClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "zClass", required: false }] }], zShowDelay: [{ type: i0.Input, args: [{ isSignal: true, alias: "zShowDelay", required: false }] }], zHideDelay: [{ type: i0.Input, args: [{ isSignal: true, alias: "zHideDelay", required: false }] }], zDisabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "zDisabled", required: false }] }], zOffset: [{ type: i0.Input, args: [{ isSignal: true, alias: "zOffset", required: false }] }], zPopoverWidth: [{ type: i0.Input, args: [{ isSignal: true, alias: "zPopoverWidth", required: false }] }], zTriggerRef: [{ type: i0.Input, args: [{ isSignal: true, alias: "zTriggerRef", required: false }] }], zManualClose: [{ type: i0.Input, args: [{ isSignal: true, alias: "zManualClose", required: false }] }], zOutsideClickClose: [{ type: i0.Input, args: [{ isSignal: true, alias: "zOutsideClickClose", required: false }] }], zScrollClose: [{ type: i0.Input, args: [{ isSignal: true, alias: "zScrollClose", required: false }] }], zShowArrow: [{ type: i0.Input, args: [{ isSignal: true, alias: "zShowArrow", required: false }] }], zShow: [{ type: i0.Output, args: ["zShow"] }], zHide: [{ type: i0.Output, args: ["zHide"] }], zHideStart: [{ type: i0.Output, args: ["zHideStart"] }], zControl: [{ type: i0.Output, args: ["zControl"] }], zPositionChange: [{ type: i0.Output, args: ["zPositionChange"] }], zOutsideClick: [{ type: i0.Output, args: ["zOutsideClick"] }] } });
|
|
1386
|
+
}], propDecorators: { zContent: [{ type: i0.Input, args: [{ isSignal: true, alias: "zPopoverContent", required: false }] }], zPosition: [{ type: i0.Input, args: [{ isSignal: true, alias: "zPosition", required: false }] }], zTrigger: [{ type: i0.Input, args: [{ isSignal: true, alias: "zTrigger", required: false }] }], zPopoverTrigger: [{ type: i0.Input, args: [{ isSignal: true, alias: "zPopoverTrigger", required: false }] }], zClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "zClass", required: false }] }], zShowDelay: [{ type: i0.Input, args: [{ isSignal: true, alias: "zShowDelay", required: false }] }], zHideDelay: [{ type: i0.Input, args: [{ isSignal: true, alias: "zHideDelay", required: false }] }], zDisabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "zDisabled", required: false }] }], zOffset: [{ type: i0.Input, args: [{ isSignal: true, alias: "zOffset", required: false }] }], zPopoverWidth: [{ type: i0.Input, args: [{ isSignal: true, alias: "zPopoverWidth", required: false }] }], zTriggerRef: [{ type: i0.Input, args: [{ isSignal: true, alias: "zTriggerRef", required: false }] }], zManualClose: [{ type: i0.Input, args: [{ isSignal: true, alias: "zManualClose", required: false }] }], zOutsideClickClose: [{ type: i0.Input, args: [{ isSignal: true, alias: "zOutsideClickClose", required: false }] }], zScrollClose: [{ type: i0.Input, args: [{ isSignal: true, alias: "zScrollClose", required: false }] }], zSticky: [{ type: i0.Input, args: [{ isSignal: true, alias: "zSticky", required: false }] }], zShowArrow: [{ type: i0.Input, args: [{ isSignal: true, alias: "zShowArrow", required: false }] }], zShow: [{ type: i0.Output, args: ["zShow"] }], zHide: [{ type: i0.Output, args: ["zHide"] }], zHideStart: [{ type: i0.Output, args: ["zHideStart"] }], zControl: [{ type: i0.Output, args: ["zControl"] }], zPositionChange: [{ type: i0.Output, args: ["zPositionChange"] }], zOutsideClick: [{ type: i0.Output, args: ["zOutsideClick"] }] } });
|
|
1101
1387
|
|
|
1102
1388
|
/**
|
|
1103
1389
|
* Generated bundle index. Do not edit.
|