@radix-ng/primitives 0.18.2 → 0.20.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/avatar/index.d.ts +1 -2
- package/avatar/src/avatar-fallback.directive.d.ts +11 -23
- package/avatar/src/avatar-image.directive.d.ts +10 -14
- package/avatar/src/avatar-root.directive.d.ts +5 -15
- package/checkbox/index.d.ts +11 -0
- package/checkbox/src/checkbox-button.directive.d.ts +1 -1
- package/checkbox/src/checkbox-indicator.directive.d.ts +1 -1
- package/checkbox/src/checkbox-input.directive.d.ts +1 -1
- package/checkbox/src/checkbox.directive.d.ts +1 -1
- package/compodoc/documentation.json +9385 -4858
- package/core/index.d.ts +2 -0
- package/core/src/control-value-accessor/index.d.ts +75 -0
- package/core/src/create-inject-context/assert-injector.d.ts +51 -0
- package/core/src/create-inject-context/index.d.ts +68 -0
- package/core/src/types.d.ts +23 -0
- package/esm2022/avatar/index.mjs +1 -1
- package/esm2022/avatar/src/avatar-fallback.directive.mjs +38 -40
- package/esm2022/avatar/src/avatar-image.directive.mjs +25 -26
- package/esm2022/avatar/src/avatar-root.directive.mjs +13 -25
- package/esm2022/checkbox/index.mjs +31 -1
- package/esm2022/checkbox/src/checkbox-button.directive.mjs +3 -3
- package/esm2022/checkbox/src/checkbox-indicator.directive.mjs +3 -3
- package/esm2022/checkbox/src/checkbox-input.directive.mjs +3 -3
- package/esm2022/checkbox/src/checkbox.directive.mjs +3 -3
- package/esm2022/core/index.mjs +3 -1
- package/esm2022/core/src/control-value-accessor/index.mjs +103 -0
- package/esm2022/core/src/create-inject-context/assert-injector.mjs +15 -0
- package/esm2022/core/src/create-inject-context/index.mjs +116 -0
- package/esm2022/core/src/types.mjs +2 -0
- package/esm2022/popover/index.mjs +41 -0
- package/esm2022/popover/radix-ng-primitives-popover.mjs +5 -0
- package/esm2022/popover/src/popover-arrow.directive.mjs +112 -0
- package/esm2022/popover/src/popover-arrow.token.mjs +3 -0
- package/esm2022/popover/src/popover-close.directive.mjs +37 -0
- package/esm2022/popover/src/popover-content.directive.mjs +227 -0
- package/esm2022/popover/src/popover-root.directive.mjs +142 -0
- package/esm2022/popover/src/popover-root.inject.mjs +7 -0
- package/esm2022/popover/src/popover-root.token.mjs +3 -0
- package/esm2022/popover/src/popover-trigger.directive.mjs +42 -0
- package/esm2022/popover/src/popover.constants.mjs +90 -0
- package/esm2022/popover/src/popover.types.mjs +14 -0
- package/esm2022/popover/src/popover.utils.mjs +115 -0
- package/esm2022/radio/index.mjs +2 -1
- package/esm2022/radio/src/radio-item-input.directive.mjs +37 -0
- package/esm2022/radio/src/radio-item.directive.mjs +55 -39
- package/esm2022/radio/src/radio-root.directive.mjs +30 -120
- package/esm2022/radio/src/radio-tokens.mjs +1 -1
- package/esm2022/roving-focus/index.mjs +3 -0
- package/esm2022/roving-focus/radix-ng-primitives-roving-focus.mjs +5 -0
- package/esm2022/roving-focus/src/roving-focus-group.directive.mjs +138 -0
- package/esm2022/roving-focus/src/roving-focus-item.directive.mjs +133 -0
- package/esm2022/roving-focus/src/utils.mjs +47 -0
- package/esm2022/select/src/select-item.directive.mjs +8 -2
- package/esm2022/toggle/src/toggle-input.directive.mjs +4 -3
- package/fesm2022/radix-ng-primitives-avatar.mjs +70 -85
- package/fesm2022/radix-ng-primitives-avatar.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-checkbox.mjs +35 -10
- package/fesm2022/radix-ng-primitives-checkbox.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-core.mjs +230 -3
- package/fesm2022/radix-ng-primitives-core.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-popover.mjs +796 -0
- package/fesm2022/radix-ng-primitives-popover.mjs.map +1 -0
- package/fesm2022/radix-ng-primitives-radio.mjs +145 -186
- package/fesm2022/radix-ng-primitives-radio.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-roving-focus.mjs +320 -0
- package/fesm2022/radix-ng-primitives-roving-focus.mjs.map +1 -0
- package/fesm2022/radix-ng-primitives-select.mjs +7 -1
- package/fesm2022/radix-ng-primitives-select.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-toggle.mjs +3 -2
- package/fesm2022/radix-ng-primitives-toggle.mjs.map +1 -1
- package/package.json +18 -6
- package/popover/README.md +3 -0
- package/popover/index.d.ts +17 -0
- package/popover/src/popover-arrow.directive.d.ts +37 -0
- package/popover/src/popover-arrow.token.d.ts +3 -0
- package/popover/src/popover-close.directive.d.ts +15 -0
- package/popover/src/popover-content.directive.d.ts +84 -0
- package/popover/src/popover-root.directive.d.ts +58 -0
- package/popover/src/popover-root.inject.d.ts +2 -0
- package/popover/src/popover-root.token.d.ts +3 -0
- package/popover/src/popover-trigger.directive.d.ts +18 -0
- package/popover/src/popover.constants.d.ts +8 -0
- package/popover/src/popover.types.d.ts +34 -0
- package/popover/src/popover.utils.d.ts +12 -0
- package/radio/index.d.ts +1 -0
- package/radio/src/radio-item-input.directive.d.ts +12 -0
- package/radio/src/radio-item.directive.d.ts +23 -14
- package/radio/src/radio-root.directive.d.ts +19 -34
- package/radio/src/radio-tokens.d.ts +6 -4
- package/roving-focus/README.md +3 -0
- package/roving-focus/index.d.ts +3 -0
- package/roving-focus/src/roving-focus-group.directive.d.ts +50 -0
- package/roving-focus/src/roving-focus-item.directive.d.ts +50 -0
- package/roving-focus/src/utils.d.ts +19 -0
- package/select/src/select-item.directive.d.ts +7 -1
- package/toggle/src/toggle-input.directive.d.ts +1 -1
@@ -0,0 +1,112 @@
|
|
1
|
+
import { computed, Directive, effect, ElementRef, forwardRef, inject, input, Renderer2, signal, untracked } from '@angular/core';
|
2
|
+
import { toSignal } from '@angular/core/rxjs-interop';
|
3
|
+
import { RdxPopoverArrowToken } from './popover-arrow.token';
|
4
|
+
import { injectPopoverRoot } from './popover-root.inject';
|
5
|
+
import { getArrowPositionParams, getSideAndAlignFromAllPossibleConnectedPositions } from './popover.utils';
|
6
|
+
import * as i0 from "@angular/core";
|
7
|
+
export class RdxPopoverArrowDirective {
|
8
|
+
constructor() {
|
9
|
+
/** @ignore */
|
10
|
+
this.renderer = inject(Renderer2);
|
11
|
+
/** @ignore */
|
12
|
+
this.popoverRoot = injectPopoverRoot();
|
13
|
+
/** @ignore */
|
14
|
+
this.elementRef = inject(ElementRef);
|
15
|
+
/**
|
16
|
+
* The width of the arrow in pixels.
|
17
|
+
*/
|
18
|
+
this.width = input(10);
|
19
|
+
/**
|
20
|
+
* The height of the arrow in pixels.
|
21
|
+
*/
|
22
|
+
this.height = input(5);
|
23
|
+
/** @ignore */
|
24
|
+
this.arrowSvgElement = computed(() => {
|
25
|
+
const width = this.width();
|
26
|
+
const height = this.height();
|
27
|
+
const svgElement = this.renderer.createElement('svg', 'svg');
|
28
|
+
this.renderer.setAttribute(svgElement, 'viewBox', '0 0 30 10');
|
29
|
+
this.renderer.setAttribute(svgElement, 'width', String(width));
|
30
|
+
this.renderer.setAttribute(svgElement, 'height', String(height));
|
31
|
+
const polygonElement = this.renderer.createElement('polygon', 'svg');
|
32
|
+
this.renderer.setAttribute(polygonElement, 'points', '0,0 30,0 15,10');
|
33
|
+
this.renderer.setAttribute(svgElement, 'preserveAspectRatio', 'none');
|
34
|
+
this.renderer.appendChild(svgElement, polygonElement);
|
35
|
+
return svgElement;
|
36
|
+
});
|
37
|
+
/** @ignore */
|
38
|
+
this.currentArrowSvgElement = signal(void 0);
|
39
|
+
/** @ignore */
|
40
|
+
this.position = toSignal(this.popoverRoot.popoverContentDirective().positionChange());
|
41
|
+
this.onArrowSvgElementChangeEffect();
|
42
|
+
this.onContentPositionChangeEffect();
|
43
|
+
}
|
44
|
+
/** @ignore */
|
45
|
+
ngAfterViewInit() {
|
46
|
+
if (this.elementRef.nativeElement.parentElement) {
|
47
|
+
this.renderer.setStyle(this.elementRef.nativeElement.parentElement, 'position', 'relative');
|
48
|
+
}
|
49
|
+
this.renderer.setStyle(this.elementRef.nativeElement, 'position', 'absolute');
|
50
|
+
this.renderer.setStyle(this.elementRef.nativeElement, 'boxSizing', '');
|
51
|
+
this.renderer.setStyle(this.elementRef.nativeElement, 'fontSize', '0px');
|
52
|
+
this.triggerRect = this.popoverRoot.popoverTriggerDirective().elementRef.nativeElement.getBoundingClientRect();
|
53
|
+
}
|
54
|
+
/** @ignore */
|
55
|
+
setPosition(position) {
|
56
|
+
const posParams = getArrowPositionParams(getSideAndAlignFromAllPossibleConnectedPositions(position.connectionPair), { width: this.width(), height: this.height() }, { width: this.triggerRect.width, height: this.triggerRect.height });
|
57
|
+
this.renderer.setStyle(this.elementRef.nativeElement, 'top', posParams.top);
|
58
|
+
this.renderer.setStyle(this.elementRef.nativeElement, 'bottom', posParams.bottom);
|
59
|
+
this.renderer.setStyle(this.elementRef.nativeElement, 'left', posParams.left);
|
60
|
+
this.renderer.setStyle(this.elementRef.nativeElement, 'right', posParams.right);
|
61
|
+
this.renderer.setStyle(this.elementRef.nativeElement, 'transform', posParams.transform);
|
62
|
+
}
|
63
|
+
/** @ignore */
|
64
|
+
onArrowSvgElementChangeEffect() {
|
65
|
+
effect(() => {
|
66
|
+
const arrowElement = this.arrowSvgElement();
|
67
|
+
untracked(() => {
|
68
|
+
const currentArrowSvgElement = this.currentArrowSvgElement();
|
69
|
+
if (currentArrowSvgElement) {
|
70
|
+
this.renderer.removeChild(this.elementRef.nativeElement, currentArrowSvgElement);
|
71
|
+
}
|
72
|
+
this.currentArrowSvgElement.set(arrowElement);
|
73
|
+
this.renderer.setStyle(this.elementRef.nativeElement, 'width', `${this.width()}px`);
|
74
|
+
this.renderer.setStyle(this.elementRef.nativeElement, 'height', `${this.height()}px`);
|
75
|
+
this.renderer.appendChild(this.elementRef.nativeElement, this.currentArrowSvgElement());
|
76
|
+
});
|
77
|
+
});
|
78
|
+
}
|
79
|
+
/** @ignore */
|
80
|
+
onContentPositionChangeEffect() {
|
81
|
+
effect(() => {
|
82
|
+
const position = this.position();
|
83
|
+
untracked(() => {
|
84
|
+
if (!position) {
|
85
|
+
return;
|
86
|
+
}
|
87
|
+
this.setPosition(position);
|
88
|
+
});
|
89
|
+
});
|
90
|
+
}
|
91
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: RdxPopoverArrowDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
92
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.11", type: RdxPopoverArrowDirective, isStandalone: true, selector: "[rdxPopoverArrow]", inputs: { width: { classPropertyName: "width", publicName: "width", isSignal: true, isRequired: false, transformFunction: null }, height: { classPropertyName: "height", publicName: "height", isSignal: true, isRequired: false, transformFunction: null } }, providers: [
|
93
|
+
{
|
94
|
+
provide: RdxPopoverArrowToken,
|
95
|
+
useExisting: forwardRef(() => RdxPopoverArrowDirective)
|
96
|
+
}
|
97
|
+
], ngImport: i0 }); }
|
98
|
+
}
|
99
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: RdxPopoverArrowDirective, decorators: [{
|
100
|
+
type: Directive,
|
101
|
+
args: [{
|
102
|
+
selector: '[rdxPopoverArrow]',
|
103
|
+
standalone: true,
|
104
|
+
providers: [
|
105
|
+
{
|
106
|
+
provide: RdxPopoverArrowToken,
|
107
|
+
useExisting: forwardRef(() => RdxPopoverArrowDirective)
|
108
|
+
}
|
109
|
+
]
|
110
|
+
}]
|
111
|
+
}], ctorParameters: () => [] });
|
112
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wb3Zlci1hcnJvdy5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9wcmltaXRpdmVzL3BvcG92ZXIvc3JjL3BvcG92ZXItYXJyb3cuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFFSCxRQUFRLEVBQ1IsU0FBUyxFQUNULE1BQU0sRUFDTixVQUFVLEVBQ1YsVUFBVSxFQUNWLE1BQU0sRUFDTixLQUFLLEVBQ0wsU0FBUyxFQUNULE1BQU0sRUFDTixTQUFTLEVBQ1osTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3RELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzdELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzFELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxnREFBZ0QsRUFBRSxNQUFNLGlCQUFpQixDQUFDOztBQVkzRyxNQUFNLE9BQU8sd0JBQXdCO0lBMkNqQztRQTFDQSxjQUFjO1FBQ0csYUFBUSxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUM5QyxjQUFjO1FBQ0csZ0JBQVcsR0FBRyxpQkFBaUIsRUFBRSxDQUFDO1FBQ25ELGNBQWM7UUFDRyxlQUFVLEdBQUcsTUFBTSxDQUEwQixVQUFVLENBQUMsQ0FBQztRQUUxRTs7V0FFRztRQUNNLFVBQUssR0FBRyxLQUFLLENBQVMsRUFBRSxDQUFDLENBQUM7UUFFbkM7O1dBRUc7UUFDTSxXQUFNLEdBQUcsS0FBSyxDQUFTLENBQUMsQ0FBQyxDQUFDO1FBRW5DLGNBQWM7UUFDTCxvQkFBZSxHQUFHLFFBQVEsQ0FBYyxHQUFHLEVBQUU7WUFDbEQsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQzNCLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FB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bmVjdGVkT3ZlcmxheVBvc2l0aW9uQ2hhbmdlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xuaW1wb3J0IHtcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIGNvbXB1dGVkLFxuICAgIERpcmVjdGl2ZSxcbiAgICBlZmZlY3QsXG4gICAgRWxlbWVudFJlZixcbiAgICBmb3J3YXJkUmVmLFxuICAgIGluamVjdCxcbiAgICBpbnB1dCxcbiAgICBSZW5kZXJlcjIsXG4gICAgc2lnbmFsLFxuICAgIHVudHJhY2tlZFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHRvU2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgUmR4UG9wb3ZlckFycm93VG9rZW4gfSBmcm9tICcuL3BvcG92ZXItYXJyb3cudG9rZW4nO1xuaW1wb3J0IHsgaW5qZWN0UG9wb3ZlclJvb3QgfSBmcm9tICcuL3BvcG92ZXItcm9vdC5pbmplY3QnO1xuaW1wb3J0IHsgZ2V0QXJyb3dQb3NpdGlvblBhcmFtcywgZ2V0U2lkZUFuZEFsaWduRnJvbUFsbFBvc3NpYmxlQ29ubmVjdGVkUG9zaXRpb25zIH0gZnJvbSAnLi9wb3BvdmVyLnV0aWxzJztcblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbcmR4UG9wb3ZlckFycm93XScsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogUmR4UG9wb3ZlckFycm93VG9rZW4sXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBSZHhQb3BvdmVyQXJyb3dEaXJlY3RpdmUpXG4gICAgICAgIH1cbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIFJkeFBvcG92ZXJBcnJvd0RpcmVjdGl2ZSBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xuICAgIC8qKiBAaWdub3JlICovXG4gICAgcHJpdmF0ZSByZWFkb25seSByZW5kZXJlciA9IGluamVjdChSZW5kZXJlcjIpO1xuICAgIC8qKiBAaWdub3JlICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBwb3BvdmVyUm9vdCA9IGluamVjdFBvcG92ZXJSb290KCk7XG4gICAgLyoqIEBpZ25vcmUgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IGVsZW1lbnRSZWYgPSBpbmplY3Q8RWxlbWVudFJlZjxIVE1MRWxlbWVudD4+KEVsZW1lbnRSZWYpO1xuXG4gICAgLyoqXG4gICAgICogVGhlIHdpZHRoIG9mIHRoZSBhcnJvdyBpbiBwaXhlbHMuXG4gICAgICovXG4gICAgcmVhZG9ubHkgd2lkdGggPSBpbnB1dDxudW1iZXI+KDEwKTtcblxuICAgIC8qKlxuICAgICAqIFRoZSBoZWlnaHQgb2YgdGhlIGFycm93IGluIHBpeGVscy5cbiAgICAgKi9cbiAgICByZWFkb25seSBoZWlnaHQgPSBpbnB1dDxudW1iZXI+KDUpO1xuXG4gICAgLyoqIEBpZ25vcmUgKi9cbiAgICByZWFkb25seSBhcnJvd1N2Z0VsZW1lbnQgPSBjb21wdXRlZDxIVE1MRWxlbWVudD4oKCkgPT4ge1xuICAgICAgICBjb25zdCB3aWR0aCA9IHRoaXMud2lkdGgoKTtcbiAgICAgICAgY29uc3QgaGVpZ2h0ID0gdGhpcy5oZWlnaHQoKTtcblxuICAgICAgICBjb25zdCBzdmdFbGVtZW50ID0gdGhpcy5yZW5kZXJlci5jcmVhdGVFbGVtZW50KCdzdmcnLCAnc3ZnJyk7XG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0QXR0cmlidXRlKHN2Z0VsZW1lbnQsICd2aWV3Qm94JywgJzAgMCAzMCAxMCcpO1xuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldEF0dHJpYnV0ZShzdmdFbGVtZW50LCAnd2lkdGgnLCBTdHJpbmcod2lkdGgpKTtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRBdHRyaWJ1dGUoc3ZnRWxlbWVudCwgJ2hlaWdodCcsIFN0cmluZyhoZWlnaHQpKTtcbiAgICAgICAgY29uc3QgcG9seWdvbkVsZW1lbnQgPSB0aGlzLnJlbmRlcmVyLmNyZWF0ZUVsZW1lbnQoJ3BvbHlnb24nLCAnc3ZnJyk7XG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0QXR0cmlidXRlKHBvbHlnb25FbGVtZW50LCAncG9pbnRzJywgJzAsMCAzMCwwIDE1LDEwJyk7XG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0QXR0cmlidXRlKHN2Z0VsZW1lbnQsICdwcmVzZXJ2ZUFzcGVjdFJhdGlvJywgJ25vbmUnKTtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5hcHBlbmRDaGlsZChzdmdFbGVtZW50LCBwb2x5Z29uRWxlbWVudCk7XG5cbiAgICAgICAgcmV0dXJuIHN2Z0VsZW1lbnQ7XG4gICAgfSk7XG5cbiAgICAvKiogQGlnbm9yZSAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgY3VycmVudEFycm93U3ZnRWxlbWVudCA9IHNpZ25hbDxIVE1MT3JTVkdFbGVtZW50IHwgdW5kZWZpbmVkPih2b2lkIDApO1xuICAgIC8qKiBAaWdub3JlICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBwb3NpdGlvbiA9IHRvU2lnbmFsKHRoaXMucG9wb3ZlclJvb3QucG9wb3ZlckNvbnRlbnREaXJlY3RpdmUoKS5wb3NpdGlvbkNoYW5nZSgpKTtcblxuICAgIC8qKiBAaWdub3JlICovXG4gICAgcHJpdmF0ZSB0cmlnZ2VyUmVjdDogRE9NUmVjdDtcblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB0aGlzLm9uQXJyb3dTdmdFbGVtZW50Q2hhbmdlRWZmZWN0KCk7XG4gICAgICAgIHRoaXMub25Db250ZW50UG9zaXRpb25DaGFuZ2VFZmZlY3QoKTtcbiAgICB9XG5cbiAgICAvKiogQGlnbm9yZSAqL1xuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICAgICAgaWYgKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnBhcmVudEVsZW1lbnQpIHtcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQucGFyZW50RWxlbWVudCwgJ3Bvc2l0aW9uJywgJ3JlbGF0aXZlJyk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ3Bvc2l0aW9uJywgJ2Fic29sdXRlJyk7XG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsICdib3hTaXppbmcnLCAnJyk7XG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsICdmb250U2l6ZScsICcwcHgnKTtcbiAgICAgICAgdGhpcy50cmlnZ2VyUmVjdCA9IHRoaXMucG9wb3ZlclJvb3QucG9wb3ZlclRyaWdnZXJEaXJlY3RpdmUoKS5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgfVxuXG4gICAgLyoqIEBpZ25vcmUgKi9cbiAgICBwcml2YXRlIHNldFBvc2l0aW9uKHBvc2l0aW9uOiBDb25uZWN0ZWRPdmVybGF5UG9zaXRpb25DaGFuZ2UpIHtcbiAgICAgICAgY29uc3QgcG9zUGFyYW1zID0gZ2V0QXJyb3dQb3NpdGlvblBhcmFtcyhcbiAgICAgICAgICAgIGdldFNpZGVBbmRBbGlnbkZyb21BbGxQb3NzaWJsZUNvbm5lY3RlZFBvc2l0aW9ucyhwb3NpdGlvbi5jb25uZWN0aW9uUGFpciksXG4gICAgICAgICAgICB7IHdpZHRoOiB0aGlzLndpZHRoKCksIGhlaWdodDogdGhpcy5oZWlnaHQoKSB9LFxuICAgICAgICAgICAgeyB3aWR0aDogdGhpcy50cmlnZ2VyUmVjdC53aWR0aCwgaGVpZ2h0OiB0aGlzLnRyaWdnZXJSZWN0LmhlaWdodCB9XG4gICAgICAgICk7XG5cbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ3RvcCcsIHBvc1BhcmFtcy50b3ApO1xuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCAnYm90dG9tJywgcG9zUGFyYW1zLmJvdHRvbSk7XG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsICdsZWZ0JywgcG9zUGFyYW1zLmxlZnQpO1xuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCAncmlnaHQnLCBwb3NQYXJhbXMucmlnaHQpO1xuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCAndHJhbnNmb3JtJywgcG9zUGFyYW1zLnRyYW5zZm9ybSk7XG4gICAgfVxuXG4gICAgLyoqIEBpZ25vcmUgKi9cbiAgICBwcml2YXRlIG9uQXJyb3dTdmdFbGVtZW50Q2hhbmdlRWZmZWN0KCkge1xuICAgICAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgYXJyb3dFbGVtZW50ID0gdGhpcy5hcnJvd1N2Z0VsZW1lbnQoKTtcbiAgICAgICAgICAgIHVudHJhY2tlZCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgY3VycmVudEFycm93U3ZnRWxlbWVudCA9IHRoaXMuY3VycmVudEFycm93U3ZnRWxlbWVudCgpO1xuICAgICAgICAgICAgICAgIGlmIChjdXJyZW50QXJyb3dTdmdFbGVtZW50KSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2hpbGQodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsIGN1cnJlbnRBcnJvd1N2Z0VsZW1lbnQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGlzLmN1cnJlbnRBcnJvd1N2Z0VsZW1lbnQuc2V0KGFycm93RWxlbWVudCk7XG4gICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ3dpZHRoJywgYCR7dGhpcy53aWR0aCgpfXB4YCk7XG4gICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ2hlaWdodCcsIGAke3RoaXMuaGVpZ2h0KCl9cHhgKTtcbiAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyLmFwcGVuZENoaWxkKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCB0aGlzLmN1cnJlbnRBcnJvd1N2Z0VsZW1lbnQoKSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqIEBpZ25vcmUgKi9cbiAgICBwcml2YXRlIG9uQ29udGVudFBvc2l0aW9uQ2hhbmdlRWZmZWN0KCkge1xuICAgICAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgcG9zaXRpb24gPSB0aGlzLnBvc2l0aW9uKCk7XG4gICAgICAgICAgICB1bnRyYWNrZWQoKCkgPT4ge1xuICAgICAgICAgICAgICAgIGlmICghcG9zaXRpb24pIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGlzLnNldFBvc2l0aW9uKHBvc2l0aW9uKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICB9XG59XG4iXX0=
|
@@ -0,0 +1,3 @@
|
|
1
|
+
import { InjectionToken } from '@angular/core';
|
2
|
+
export const RdxPopoverArrowToken = new InjectionToken('RdxPopoverArrowToken');
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wb3Zlci1hcnJvdy50b2tlbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3ByaW1pdGl2ZXMvcG9wb3Zlci9zcmMvcG9wb3Zlci1hcnJvdy50b2tlbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRy9DLE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFHLElBQUksY0FBYyxDQUEyQixzQkFBc0IsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJkeFBvcG92ZXJBcnJvd0RpcmVjdGl2ZSB9IGZyb20gJy4vcG9wb3Zlci1hcnJvdy5kaXJlY3RpdmUnO1xuXG5leHBvcnQgY29uc3QgUmR4UG9wb3ZlckFycm93VG9rZW4gPSBuZXcgSW5qZWN0aW9uVG9rZW48UmR4UG9wb3ZlckFycm93RGlyZWN0aXZlPignUmR4UG9wb3ZlckFycm93VG9rZW4nKTtcbiJdfQ==
|
@@ -0,0 +1,37 @@
|
|
1
|
+
import { Directive, effect, ElementRef, inject, Renderer2, untracked } from '@angular/core';
|
2
|
+
import { injectPopoverRoot } from './popover-root.inject';
|
3
|
+
import * as i0 from "@angular/core";
|
4
|
+
export class RdxPopoverCloseDirective {
|
5
|
+
constructor() {
|
6
|
+
/** @ignore */
|
7
|
+
this.popoverRoot = injectPopoverRoot();
|
8
|
+
/** @ignore */
|
9
|
+
this.elementRef = inject((ElementRef));
|
10
|
+
/** @ignore */
|
11
|
+
this.renderer = inject(Renderer2);
|
12
|
+
this.onIsControlledExternallyEffect();
|
13
|
+
}
|
14
|
+
/** @ignore */
|
15
|
+
onIsControlledExternallyEffect() {
|
16
|
+
effect(() => {
|
17
|
+
const isControlledExternally = this.popoverRoot.controlledExternally()();
|
18
|
+
untracked(() => {
|
19
|
+
this.renderer.setStyle(this.elementRef.nativeElement, 'display', isControlledExternally ? 'none' : null);
|
20
|
+
});
|
21
|
+
});
|
22
|
+
}
|
23
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: RdxPopoverCloseDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
24
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.11", type: RdxPopoverCloseDirective, isStandalone: true, selector: "[rdxPopoverClose]", host: { attributes: { "type": "button" }, listeners: { "click": "popoverRoot.handleClose()" } }, ngImport: i0 }); }
|
25
|
+
}
|
26
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: RdxPopoverCloseDirective, decorators: [{
|
27
|
+
type: Directive,
|
28
|
+
args: [{
|
29
|
+
selector: '[rdxPopoverClose]',
|
30
|
+
standalone: true,
|
31
|
+
host: {
|
32
|
+
type: 'button',
|
33
|
+
'(click)': 'popoverRoot.handleClose()'
|
34
|
+
}
|
35
|
+
}]
|
36
|
+
}], ctorParameters: () => [] });
|
37
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wb3Zlci1jbG9zZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9wcmltaXRpdmVzL3BvcG92ZXIvc3JjL3BvcG92ZXItY2xvc2UuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1RixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7QUFVMUQsTUFBTSxPQUFPLHdCQUF3QjtJQVFqQztRQVBBLGNBQWM7UUFDTCxnQkFBVyxHQUFHLGlCQUFpQixFQUFFLENBQUM7UUFDM0MsY0FBYztRQUNMLGVBQVUsR0FBRyxNQUFNLENBQTBCLENBQUEsVUFBdUIsQ0FBQSxDQUFDLENBQUM7UUFDL0UsY0FBYztRQUNHLGFBQVEsR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7UUFHMUMsSUFBSSxDQUFDLDhCQUE4QixFQUFFLENBQUM7SUFDMUMsQ0FBQztJQUVELGNBQWM7SUFDTiw4QkFBOEI7UUFDbEMsTUFBTSxDQUFDLEdBQUcsRUFBRTtZQUNSLE1BQU0sc0JBQXNCLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxvQkFBb0IsRUFBRSxFQUFFLENBQUM7WUFFekUsU0FBUyxDQUFDLEdBQUcsRUFBRTtnQkFDWCxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FDbEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLEVBQzdCLFNBQVMsRUFDVCxzQkFBc0IsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQ3pDLENBQUM7WUFDTixDQUFDLENBQUMsQ0FBQztRQUNQLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzsrR0F6QlEsd0JBQXdCO21HQUF4Qix3QkFBd0I7OzRGQUF4Qix3QkFBd0I7a0JBUnBDLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLG1CQUFtQjtvQkFDN0IsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLElBQUksRUFBRTt3QkFDRixJQUFJLEVBQUUsUUFBUTt3QkFDZCxTQUFTLEVBQUUsMkJBQTJCO3FCQUN6QztpQkFDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgZWZmZWN0LCBFbGVtZW50UmVmLCBpbmplY3QsIFJlbmRlcmVyMiwgdW50cmFja2VkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBpbmplY3RQb3BvdmVyUm9vdCB9IGZyb20gJy4vcG9wb3Zlci1yb290LmluamVjdCc7XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW3JkeFBvcG92ZXJDbG9zZV0nLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaG9zdDoge1xuICAgICAgICB0eXBlOiAnYnV0dG9uJyxcbiAgICAgICAgJyhjbGljayknOiAncG9wb3ZlclJvb3QuaGFuZGxlQ2xvc2UoKSdcbiAgICB9XG59KVxuZXhwb3J0IGNsYXNzIFJkeFBvcG92ZXJDbG9zZURpcmVjdGl2ZSB7XG4gICAgLyoqIEBpZ25vcmUgKi9cbiAgICByZWFkb25seSBwb3BvdmVyUm9vdCA9IGluamVjdFBvcG92ZXJSb290KCk7XG4gICAgLyoqIEBpZ25vcmUgKi9cbiAgICByZWFkb25seSBlbGVtZW50UmVmID0gaW5qZWN0PEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+PihFbGVtZW50UmVmPEhUTUxFbGVtZW50Pik7XG4gICAgLyoqIEBpZ25vcmUgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IHJlbmRlcmVyID0gaW5qZWN0KFJlbmRlcmVyMik7XG5cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgdGhpcy5vbklzQ29udHJvbGxlZEV4dGVybmFsbHlFZmZlY3QoKTtcbiAgICB9XG5cbiAgICAvKiogQGlnbm9yZSAqL1xuICAgIHByaXZhdGUgb25Jc0NvbnRyb2xsZWRFeHRlcm5hbGx5RWZmZWN0KCkge1xuICAgICAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgaXNDb250cm9sbGVkRXh0ZXJuYWxseSA9IHRoaXMucG9wb3ZlclJvb3QuY29udHJvbGxlZEV4dGVybmFsbHkoKSgpO1xuXG4gICAgICAgICAgICB1bnRyYWNrZWQoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LFxuICAgICAgICAgICAgICAgICAgICAnZGlzcGxheScsXG4gICAgICAgICAgICAgICAgICAgIGlzQ29udHJvbGxlZEV4dGVybmFsbHkgPyAnbm9uZScgOiBudWxsXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICB9XG59XG4iXX0=
|
@@ -0,0 +1,227 @@
|
|
1
|
+
import { CdkConnectedOverlay, Overlay } from '@angular/cdk/overlay';
|
2
|
+
import { computed, DestroyRef, Directive, effect, inject, input, output, SimpleChange, TemplateRef, untracked } from '@angular/core';
|
3
|
+
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
4
|
+
import { filter, tap } from 'rxjs';
|
5
|
+
import { injectPopoverRoot } from './popover-root.inject';
|
6
|
+
import { DEFAULTS } from './popover.constants';
|
7
|
+
import { RdxPopoverAlign, RdxPopoverSide } from './popover.types';
|
8
|
+
import { getAllPossibleConnectedPositions, getContentPosition } from './popover.utils';
|
9
|
+
import * as i0 from "@angular/core";
|
10
|
+
import * as i1 from "@angular/cdk/overlay";
|
11
|
+
export class RdxPopoverContentDirective {
|
12
|
+
constructor() {
|
13
|
+
/** @ignore */
|
14
|
+
this.popoverRoot = injectPopoverRoot();
|
15
|
+
/** @ignore */
|
16
|
+
this.templateRef = inject(TemplateRef);
|
17
|
+
/** @ignore */
|
18
|
+
this.overlay = inject(Overlay);
|
19
|
+
/** @ignore */
|
20
|
+
this.destroyRef = inject(DestroyRef);
|
21
|
+
/** @ignore */
|
22
|
+
this.connectedOverlay = inject(CdkConnectedOverlay);
|
23
|
+
/**
|
24
|
+
* The preferred side of the trigger to render against when open. Will be reversed when collisions occur and avoidCollisions is enabled.
|
25
|
+
*/
|
26
|
+
this.side = input(RdxPopoverSide.Top);
|
27
|
+
/**
|
28
|
+
* The distance in pixels from the trigger.
|
29
|
+
*/
|
30
|
+
this.sideOffset = input(void 0);
|
31
|
+
/**
|
32
|
+
* The preferred alignment against the trigger. May change when collisions occur.
|
33
|
+
*/
|
34
|
+
this.align = input(RdxPopoverAlign.Center);
|
35
|
+
/**
|
36
|
+
* An offset in pixels from the "start" or "end" alignment options.
|
37
|
+
*/
|
38
|
+
this.alignOffset = input(void 0);
|
39
|
+
/**
|
40
|
+
* Whether to add some alternate positions of the content.
|
41
|
+
*/
|
42
|
+
this.disableAlternatePositions = input(false);
|
43
|
+
/** @ingore */
|
44
|
+
this.positions = computed(() => {
|
45
|
+
const greatestDimensionFromTheArrow = Math.max(this.popoverRoot.popoverArrowDirective()?.width() ?? 0, this.popoverRoot.popoverArrowDirective()?.height() ?? 0);
|
46
|
+
const offsets = {
|
47
|
+
sideOffset: this.sideOffset() ?? (greatestDimensionFromTheArrow || DEFAULTS.offsets.side),
|
48
|
+
alignOffset: this.alignOffset() ?? (greatestDimensionFromTheArrow || DEFAULTS.offsets.align)
|
49
|
+
};
|
50
|
+
const basePosition = getContentPosition({
|
51
|
+
side: this.side(),
|
52
|
+
align: this.align(),
|
53
|
+
sideOffset: offsets.sideOffset,
|
54
|
+
alignOffset: offsets.alignOffset
|
55
|
+
});
|
56
|
+
const positions = [basePosition];
|
57
|
+
if (!this.disableAlternatePositions()) {
|
58
|
+
/**
|
59
|
+
* Alternate positions for better user experience along the X/Y axis (e.g. vertical/horizontal scrolling)
|
60
|
+
*/
|
61
|
+
const allPossibleConnectedPositions = getAllPossibleConnectedPositions();
|
62
|
+
allPossibleConnectedPositions.forEach((value, key) => {
|
63
|
+
const sideAndAlignArray = key.split('|');
|
64
|
+
if (sideAndAlignArray[0] !== this.side() ||
|
65
|
+
sideAndAlignArray[1] !== this.align()) {
|
66
|
+
positions.push(getContentPosition({
|
67
|
+
side: sideAndAlignArray[0],
|
68
|
+
align: sideAndAlignArray[1],
|
69
|
+
sideOffset: offsets.sideOffset,
|
70
|
+
alignOffset: offsets.alignOffset
|
71
|
+
}));
|
72
|
+
}
|
73
|
+
});
|
74
|
+
}
|
75
|
+
return positions;
|
76
|
+
});
|
77
|
+
/**
|
78
|
+
* Event handler called when the escape key is down. It can be prevented by calling event.preventDefault.
|
79
|
+
*/
|
80
|
+
this.onEscapeKeyDown = output();
|
81
|
+
/**
|
82
|
+
* Event handler called when a pointer event occurs outside the bounds of the component. It can be prevented by calling event.preventDefault.
|
83
|
+
*/
|
84
|
+
this.onPointerDownOutside = output();
|
85
|
+
/**
|
86
|
+
* Event handler called when the overlay is atached
|
87
|
+
*/
|
88
|
+
this.onShow = output();
|
89
|
+
/**
|
90
|
+
* Event handler called when the overlay is detached
|
91
|
+
*/
|
92
|
+
this.onHide = output();
|
93
|
+
this.onPositionChangeEffect();
|
94
|
+
this.onControlledExternallyChangeEffect();
|
95
|
+
}
|
96
|
+
/** @ignore */
|
97
|
+
ngOnInit() {
|
98
|
+
this.setOrigin();
|
99
|
+
this.setScrollStrategy();
|
100
|
+
this.onAttach();
|
101
|
+
this.onDetach();
|
102
|
+
this.connectKeydownEscape();
|
103
|
+
this.connectOutsideClick();
|
104
|
+
}
|
105
|
+
/** @ignore */
|
106
|
+
show() {
|
107
|
+
const prevOpen = this.connectedOverlay.open;
|
108
|
+
this.connectedOverlay.open = true;
|
109
|
+
if (!prevOpen) {
|
110
|
+
this.connectedOverlay.ngOnChanges({ open: new SimpleChange(prevOpen, true, false) });
|
111
|
+
}
|
112
|
+
}
|
113
|
+
/** @ignore */
|
114
|
+
hide() {
|
115
|
+
const prevOpen = this.connectedOverlay.open;
|
116
|
+
this.connectedOverlay.open = false;
|
117
|
+
if (prevOpen) {
|
118
|
+
this.connectedOverlay.ngOnChanges({ open: new SimpleChange(prevOpen, false, false) });
|
119
|
+
}
|
120
|
+
}
|
121
|
+
/** @ignore */
|
122
|
+
positionChange() {
|
123
|
+
return this.connectedOverlay.positionChange.asObservable();
|
124
|
+
}
|
125
|
+
/** @ignore */
|
126
|
+
connectKeydownEscape() {
|
127
|
+
this.connectedOverlay.overlayKeydown
|
128
|
+
.asObservable()
|
129
|
+
.pipe(filter((event) => event.key === 'Escape'), tap((event) => {
|
130
|
+
this.onEscapeKeyDown.emit(event);
|
131
|
+
if (!event.defaultPrevented) {
|
132
|
+
this.popoverRoot.handleClose();
|
133
|
+
}
|
134
|
+
}), takeUntilDestroyed(this.destroyRef))
|
135
|
+
.subscribe();
|
136
|
+
}
|
137
|
+
/** @ignore */
|
138
|
+
connectOutsideClick() {
|
139
|
+
this.connectedOverlay.overlayOutsideClick
|
140
|
+
.asObservable()
|
141
|
+
.pipe(tap((event) => {
|
142
|
+
this.onPointerDownOutside.emit(event);
|
143
|
+
}), takeUntilDestroyed(this.destroyRef))
|
144
|
+
.subscribe();
|
145
|
+
}
|
146
|
+
/** @ignore */
|
147
|
+
onAttach() {
|
148
|
+
this.connectedOverlay.attach
|
149
|
+
.asObservable()
|
150
|
+
.pipe(tap(() => {
|
151
|
+
this.onShow.emit();
|
152
|
+
}), takeUntilDestroyed(this.destroyRef))
|
153
|
+
.subscribe();
|
154
|
+
}
|
155
|
+
/** @ignore */
|
156
|
+
onDetach() {
|
157
|
+
this.connectedOverlay.detach
|
158
|
+
.asObservable()
|
159
|
+
.pipe(tap(() => {
|
160
|
+
this.onHide.emit();
|
161
|
+
}), takeUntilDestroyed(this.destroyRef))
|
162
|
+
.subscribe();
|
163
|
+
}
|
164
|
+
/** @ignore */
|
165
|
+
setScrollStrategy() {
|
166
|
+
const prevScrollStrategy = this.connectedOverlay.scrollStrategy;
|
167
|
+
this.connectedOverlay.scrollStrategy = this.overlay.scrollStrategies.reposition();
|
168
|
+
this.connectedOverlay.ngOnChanges({
|
169
|
+
scrollStrategy: new SimpleChange(prevScrollStrategy, this.connectedOverlay.scrollStrategy, false)
|
170
|
+
});
|
171
|
+
}
|
172
|
+
/** @ignore */
|
173
|
+
setDisableClose() {
|
174
|
+
const prevDisableClose = this.connectedOverlay.disableClose;
|
175
|
+
this.connectedOverlay.disableClose = this.popoverRoot.controlledExternally()();
|
176
|
+
this.connectedOverlay.ngOnChanges({
|
177
|
+
disableClose: new SimpleChange(prevDisableClose, this.connectedOverlay.disableClose, false)
|
178
|
+
});
|
179
|
+
}
|
180
|
+
/** @ignore */
|
181
|
+
setOrigin() {
|
182
|
+
const prevOrigin = this.connectedOverlay.origin;
|
183
|
+
this.connectedOverlay.origin = this.popoverRoot.popoverTriggerDirective().overlayOrigin;
|
184
|
+
this.connectedOverlay.ngOnChanges({
|
185
|
+
origin: new SimpleChange(prevOrigin, this.connectedOverlay.origin, false)
|
186
|
+
});
|
187
|
+
}
|
188
|
+
/** @ignore */
|
189
|
+
onPositionChangeEffect() {
|
190
|
+
effect(() => {
|
191
|
+
const positions = this.positions();
|
192
|
+
this.disableAlternatePositions();
|
193
|
+
untracked(() => {
|
194
|
+
const prevPositions = this.connectedOverlay.positions;
|
195
|
+
this.connectedOverlay.positions = positions;
|
196
|
+
this.connectedOverlay.ngOnChanges({
|
197
|
+
positions: new SimpleChange(prevPositions, this.connectedOverlay.positions, false)
|
198
|
+
});
|
199
|
+
this.connectedOverlay.overlayRef?.updatePosition();
|
200
|
+
});
|
201
|
+
});
|
202
|
+
}
|
203
|
+
/** @ignore */
|
204
|
+
onControlledExternallyChangeEffect() {
|
205
|
+
effect(() => {
|
206
|
+
this.popoverRoot.controlledExternally()();
|
207
|
+
untracked(() => {
|
208
|
+
this.setDisableClose();
|
209
|
+
});
|
210
|
+
});
|
211
|
+
}
|
212
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: RdxPopoverContentDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
213
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.11", type: RdxPopoverContentDirective, isStandalone: true, selector: "[rdxPopoverContent]", inputs: { side: { classPropertyName: "side", publicName: "side", isSignal: true, isRequired: false, transformFunction: null }, sideOffset: { classPropertyName: "sideOffset", publicName: "sideOffset", isSignal: true, isRequired: false, transformFunction: null }, align: { classPropertyName: "align", publicName: "align", isSignal: true, isRequired: false, transformFunction: null }, alignOffset: { classPropertyName: "alignOffset", publicName: "alignOffset", isSignal: true, isRequired: false, transformFunction: null }, disableAlternatePositions: { classPropertyName: "disableAlternatePositions", publicName: "disableAlternatePositions", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onEscapeKeyDown: "onEscapeKeyDown", onPointerDownOutside: "onPointerDownOutside", onShow: "onShow", onHide: "onHide" }, hostDirectives: [{ directive: i1.CdkConnectedOverlay }], ngImport: i0 }); }
|
214
|
+
}
|
215
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: RdxPopoverContentDirective, decorators: [{
|
216
|
+
type: Directive,
|
217
|
+
args: [{
|
218
|
+
selector: '[rdxPopoverContent]',
|
219
|
+
standalone: true,
|
220
|
+
hostDirectives: [
|
221
|
+
{
|
222
|
+
directive: CdkConnectedOverlay
|
223
|
+
}
|
224
|
+
]
|
225
|
+
}]
|
226
|
+
}], ctorParameters: () => [] });
|
227
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wb3Zlci1jb250ZW50LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3ByaW1pdGl2ZXMvcG9wb3Zlci9zcmMvcG9wb3Zlci1jb250ZW50LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsT0FBTyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDcEUsT0FBTyxFQUNILFFBQVEsRUFDUixVQUFVLEVBQ1YsU0FBUyxFQUNULE1BQU0sRUFDTixNQUFNLEVBQ04sS0FBSyxFQUVMLE1BQU0sRUFDTixZQUFZLEVBQ1osV0FBVyxFQUNYLFNBQVMsRUFDWixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNuQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxjQUFjLEVBQTBCLE1BQU0saUJBQWlCLENBQUM7QUFDMUYsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLGtCQUFrQixFQUFFLE1BQU0saUJBQWlCLENBQUM7OztBQVd2RixNQUFNLE9BQU8sMEJBQTBCO0lBZ0duQztRQS9GQSxjQUFjO1FBQ0wsZ0JBQVcsR0FBRyxpQkFBaUIsRUFBRSxDQUFDO1FBQzNDLGNBQWM7UUFDTCxnQkFBVyxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUMzQyxjQUFjO1FBQ0wsWUFBTyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNuQyxjQUFjO1FBQ0wsZUFBVSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN6QyxjQUFj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RSxFQUFFLENBQUM7WUFDMUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtnQkFDWCxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDM0IsQ0FBQyxDQUFDLENBQUM7UUFDUCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7K0dBalBRLDBCQUEwQjttR0FBMUIsMEJBQTBCOzs0RkFBMUIsMEJBQTBCO2tCQVR0QyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxxQkFBcUI7b0JBQy9CLFVBQVUsRUFBRSxJQUFJO29CQUNoQixjQUFjLEVBQUU7d0JBQ1o7NEJBQ0ksU0FBUyxFQUFFLG1CQUFtQjt5QkFDakM7cUJBQ0o7aUJBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDZGtDb25uZWN0ZWRPdmVybGF5LCBPdmVybGF5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xuaW1wb3J0IHtcbiAgICBjb21wdXRlZCxcbiAgICBEZXN0cm95UmVmLFxuICAgIERpcmVjdGl2ZSxcbiAgICBlZmZlY3QsXG4gICAgaW5qZWN0LFxuICAgIGlucHV0LFxuICAgIE9uSW5pdCxcbiAgICBvdXRwdXQsXG4gICAgU2ltcGxlQ2hhbmdlLFxuICAgIFRlbXBsYXRlUmVmLFxuICAgIHVudHJhY2tlZFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7IGZpbHRlciwgdGFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBpbmplY3RQb3BvdmVyUm9vdCB9IGZyb20gJy4vcG9wb3Zlci1yb290LmluamVjdCc7XG5pbXBvcnQgeyBERUZBVUxUUyB9IGZyb20gJy4vcG9wb3Zlci5jb25zdGFudHMnO1xuaW1wb3J0IHsgUmR4UG9wb3ZlckFsaWduLCBSZHhQb3BvdmVyU2lkZSwgUmR4U2lkZUFuZEFsaWduT2Zmc2V0cyB9IGZyb20gJy4vcG9wb3Zlci50eXBlcyc7XG5pbXBvcnQgeyBnZXRBbGxQb3NzaWJsZUNvbm5lY3RlZFBvc2l0aW9ucywgZ2V0Q29udGVudFBvc2l0aW9uIH0gZnJvbSAnLi9wb3BvdmVyLnV0aWxzJztcblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbcmR4UG9wb3ZlckNvbnRlbnRdJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGhvc3REaXJlY3RpdmVzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIGRpcmVjdGl2ZTogQ2RrQ29ubmVjdGVkT3ZlcmxheVxuICAgICAgICB9XG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBSZHhQb3BvdmVyQ29udGVudERpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgLyoqIEBpZ25vcmUgKi9cbiAgICByZWFkb25seSBwb3BvdmVyUm9vdCA9IGluamVjdFBvcG92ZXJSb290KCk7XG4gICAgLyoqIEBpZ25vcmUgKi9cbiAgICByZWFkb25seSB0ZW1wbGF0ZVJlZiA9IGluamVjdChUZW1wbGF0ZVJlZik7XG4gICAgLyoqIEBpZ25vcmUgKi9cbiAgICByZWFkb25seSBvdmVybGF5ID0gaW5qZWN0KE92ZXJsYXkpO1xuICAgIC8qKiBAaWdub3JlICovXG4gICAgcmVhZG9ubHkgZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcbiAgICAvKiogQGlnbm9yZSAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgY29ubmVjdGVkT3ZlcmxheSA9IGluamVjdChDZGtDb25uZWN0ZWRPdmVybGF5KTtcblxuICAgIC8qKlxuICAgICAqIFRoZSBwcmVmZXJyZWQgc2lkZSBvZiB0aGUgdHJpZ2dlciB0byByZW5kZXIgYWdhaW5zdCB3aGVuIG9wZW4uIFdpbGwgYmUgcmV2ZXJzZWQgd2hlbiBjb2xsaXNpb25zIG9jY3VyIGFuZCBhdm9pZENvbGxpc2lvbnMgaXMgZW5hYmxlZC5cbiAgICAgKi9cbiAgICByZWFkb25seSBzaWRlID0gaW5wdXQ8UmR4UG9wb3ZlclNpZGU+KFJkeFBvcG92ZXJTaWRlLlRvcCk7XG4gICAgLyoqXG4gICAgICogVGhlIGRpc3RhbmNlIGluIHBpeGVscyBmcm9tIHRoZSB0cmlnZ2VyLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IHNpZGVPZmZzZXQgPSBpbnB1dDxudW1iZXIgfCB1bmRlZmluZWQ+KHZvaWQgMCk7XG5cbiAgICAvKipcbiAgICAgKiBUaGUgcHJlZmVycmVkIGFsaWdubWVudCBhZ2FpbnN0IHRoZSB0cmlnZ2VyLiBNYXkgY2hhbmdlIHdoZW4gY29sbGlzaW9ucyBvY2N1ci5cbiAgICAgKi9cbiAgICByZWFkb25seSBhbGlnbiA9IGlucHV0PFJkeFBvcG92ZXJBbGlnbj4oUmR4UG9wb3ZlckFsaWduLkNlbnRlcik7XG4gICAgLyoqXG4gICAgICogQW4gb2Zmc2V0IGluIHBpeGVscyBmcm9tIHRoZSBcInN0YXJ0XCIgb3IgXCJlbmRcIiBhbGlnbm1lbnQgb3B0aW9ucy5cbiAgICAgKi9cbiAgICByZWFkb25seSBhbGlnbk9mZnNldCA9IGlucHV0PG51bWJlciB8IHVuZGVmaW5lZD4odm9pZCAwKTtcblxuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgdG8gYWRkIHNvbWUgYWx0ZXJuYXRlIHBvc2l0aW9ucyBvZiB0aGUgY29udGVudC5cbiAgICAgKi9cbiAgICByZWFkb25seSBkaXNhYmxlQWx0ZXJuYXRlUG9zaXRpb25zID0gaW5wdXQoZmFsc2UpO1xuXG4gICAgLyoqIEBpbmdvcmUgKi9cbiAgICByZWFkb25seSBwb3NpdGlvbnMgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgICAgIGNvbnN0IGdyZWF0ZXN0RGltZW5zaW9uRnJvbVRoZUFycm93ID0gTWF0aC5tYXgoXG4gICAgICAgICAgICB0aGlzLnBvcG92ZXJSb290LnBvcG92ZXJBcnJvd0RpcmVjdGl2ZSgpPy53aWR0aCgpID8/IDAsXG4gICAgICAgICAgICB0aGlzLnBvcG92ZXJSb290LnBvcG92ZXJBcnJvd0RpcmVjdGl2ZSgpPy5oZWlnaHQoKSA/PyAwXG4gICAgICAgICk7XG4gICAgICAgIGNvbnN0IG9mZnNldHM6IFJkeFNpZGVBbmRBbGlnbk9mZnNldHMgPSB7XG4gICAgICAgICAgICBzaWRlT2Zmc2V0OiB0aGlzLnNpZGVPZmZzZXQoKSA/PyAoZ3JlYXRlc3REaW1lbnNpb25Gcm9tVGhlQXJyb3cgfHwgREVGQVVMVFMub2Zmc2V0cy5zaWRlKSxcbiAgICAgICAgICAgIGFsaWduT2Zmc2V0OiB0aGlzLmFsaWduT2Zmc2V0KCkgPz8gKGdyZWF0ZXN0RGltZW5zaW9uRnJvbVRoZUFycm93IHx8IERFRkFVTFRTLm9mZnNldHMuYWxpZ24pXG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IGJhc2VQb3NpdGlvbiA9IGdldENvbnRlbnRQb3NpdGlvbih7XG4gICAgICAgICAgICBzaWRlOiB0aGlzLnNpZGUoKSxcbiAgICAgICAgICAgIGFsaWduOiB0aGlzLmFsaWduKCksXG4gICAgICAgICAgICBzaWRlT2Zmc2V0OiBvZmZzZXRzLnNpZGVPZmZzZXQsXG4gICAgICAgICAgICBhbGlnbk9mZnNldDogb2Zmc2V0cy5hbGlnbk9mZnNldFxuICAgICAgICB9KTtcbiAgICAgICAgY29uc3QgcG9zaXRpb25zID0gW2Jhc2VQb3NpdGlvbl07XG4gICAgICAgIGlmICghdGhpcy5kaXNhYmxlQWx0ZXJuYXRlUG9zaXRpb25zKCkpIHtcbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogQWx0ZXJuYXRlIHBvc2l0aW9ucyBmb3IgYmV0dGVyIHVzZXIgZXhwZXJpZW5jZSBhbG9uZyB0aGUgWC9ZIGF4aXMgKGUuZy4gdmVydGljYWwvaG9yaXpvbnRhbCBzY3JvbGxpbmcpXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIGNvbnN0IGFsbFBvc3NpYmxlQ29ubmVjdGVkUG9zaXRpb25zID0gZ2V0QWxsUG9zc2libGVDb25uZWN0ZWRQb3NpdGlvbnMoKTtcbiAgICAgICAgICAgIGFsbFBvc3NpYmxlQ29ubmVjdGVkUG9zaXRpb25zLmZvckVhY2goKHZhbHVlLCBrZXkpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBzaWRlQW5kQWxpZ25BcnJheSA9IGtleS5zcGxpdCgnfCcpO1xuICAgICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAgICAgKHNpZGVBbmRBbGlnbkFycmF5WzBdIGFzIFJkeFBvcG92ZXJTaWRlKSAhPT0gdGhpcy5zaWRlKCkgfHxcbiAgICAgICAgICAgICAgICAgICAgKHNpZGVBbmRBbGlnbkFycmF5WzFdIGFzIFJkeFBvcG92ZXJBbGlnbikgIT09IHRoaXMuYWxpZ24oKVxuICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbnMucHVzaChcbiAgICAgICAgICAgICAgICAgICAgICAgIGdldENvbnRlbnRQb3NpdGlvbih7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2lkZTogc2lkZUFuZEFsaWduQXJyYXlbMF0gYXMgUmR4UG9wb3ZlclNpZGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxpZ246IHNpZGVBbmRBbGlnbkFycmF5WzFdIGFzIFJkeFBvcG92ZXJBbGlnbixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaWRlT2Zmc2V0OiBvZmZzZXRzLnNpZGVPZmZzZXQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxpZ25PZmZzZXQ6IG9mZnNldHMuYWxpZ25PZmZzZXRcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHBvc2l0aW9ucztcbiAgICB9KTtcblxuICAgIC8qKlxuICAgICAqIEV2ZW50IGhhbmRsZXIgY2FsbGVkIHdoZW4gdGhlIGVzY2FwZSBrZXkgaXMgZG93bi4gSXQgY2FuIGJlIHByZXZlbnRlZCBieSBjYWxsaW5nIGV2ZW50LnByZXZlbnREZWZhdWx0LlxuICAgICAqL1xuICAgIHJlYWRvbmx5IG9uRXNjYXBlS2V5RG93biA9IG91dHB1dDxLZXlib2FyZEV2ZW50PigpO1xuXG4gICAgLyoqXG4gICAgICogRXZlbnQgaGFuZGxlciBjYWxsZWQgd2hlbiBhIHBvaW50ZXIgZXZlbnQgb2NjdXJzIG91dHNpZGUgdGhlIGJvdW5kcyBvZiB0aGUgY29tcG9uZW50LiBJdCBjYW4gYmUgcHJldmVudGVkIGJ5IGNhbGxpbmcgZXZlbnQucHJldmVudERlZmF1bHQuXG4gICAgICovXG4gICAgcmVhZG9ubHkgb25Qb2ludGVyRG93bk91dHNpZGUgPSBvdXRwdXQ8TW91c2VFdmVudD4oKTtcblxuICAgIC8qKlxuICAgICAqIEV2ZW50IGhhbmRsZXIgY2FsbGVkIHdoZW4gdGhlIG92ZXJsYXkgaXMgYXRhY2hlZFxuICAgICAqL1xuICAgIHJlYWRvbmx5IG9uU2hvdyA9IG91dHB1dDx2b2lkPigpO1xuICAgIC8qKlxuICAgICAqIEV2ZW50IGhhbmRsZXIgY2FsbGVkIHdoZW4gdGhlIG92ZXJsYXkgaXMgZGV0YWNoZWRcbiAgICAgKi9cbiAgICByZWFkb25seSBvbkhpZGUgPSBvdXRwdXQ8dm9pZD4oKTtcblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB0aGlzLm9uUG9zaXRpb25DaGFuZ2VFZmZlY3QoKTtcbiAgICAgICAgdGhpcy5vbkNvbnRyb2xsZWRFeHRlcm5hbGx5Q2hhbmdlRWZmZWN0KCk7XG4gICAgfVxuXG4gICAgLyoqIEBpZ25vcmUgKi9cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgdGhpcy5zZXRPcmlnaW4oKTtcbiAgICAgICAgdGhpcy5zZXRTY3JvbGxTdHJhdGVneSgpO1xuICAgICAgICB0aGlzLm9uQXR0YWNoKCk7XG4gICAgICAgIHRoaXMub25EZXRhY2goKTtcbiAgICAgICAgdGhpcy5jb25uZWN0S2V5ZG93bkVzY2FwZSgpO1xuICAgICAgICB0aGlzLmNvbm5lY3RPdXRzaWRlQ2xpY2soKTtcbiAgICB9XG5cbiAgICAvKiogQGlnbm9yZSAqL1xuICAgIHNob3coKSB7XG4gICAgICAgIGNvbnN0IHByZXZPcGVuID0gdGhpcy5jb25uZWN0ZWRPdmVybGF5Lm9wZW47XG4gICAgICAgIHRoaXMuY29ubmVjdGVkT3ZlcmxheS5vcGVuID0gdHJ1ZTtcbiAgICAgICAgaWYgKCFwcmV2T3Blbikge1xuICAgICAgICAgICAgdGhpcy5jb25uZWN0ZWRPdmVybGF5Lm5nT25DaGFuZ2VzKHsgb3BlbjogbmV3IFNpbXBsZUNoYW5nZShwcmV2T3BlbiwgdHJ1ZSwgZmFsc2UpIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBpZ25vcmUgKi9cbiAgICBoaWRlKCkge1xuICAgICAgICBjb25zdCBwcmV2T3BlbiA9IHRoaXMuY29ubmVjdGVkT3ZlcmxheS5vcGVuO1xuICAgICAgICB0aGlzLmNvbm5lY3RlZE92ZXJsYXkub3BlbiA9IGZhbHNlO1xuICAgICAgICBpZiAocHJldk9wZW4pIHtcbiAgICAgICAgICAgIHRoaXMuY29ubmVjdGVkT3ZlcmxheS5uZ09uQ2hhbmdlcyh7IG9wZW46IG5ldyBTaW1wbGVDaGFuZ2UocHJldk9wZW4sIGZhbHNlLCBmYWxzZSkgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGlnbm9yZSAqL1xuICAgIHBvc2l0aW9uQ2hhbmdlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5jb25uZWN0ZWRPdmVybGF5LnBvc2l0aW9uQ2hhbmdlLmFzT2JzZXJ2YWJsZSgpO1xuICAgIH1cblxuICAgIC8qKiBAaWdub3JlICovXG4gICAgcHJpdmF0ZSBjb25uZWN0S2V5ZG93bkVzY2FwZSgpIHtcbiAgICAgICAgdGhpcy5jb25uZWN0ZWRPdmVybGF5Lm92ZXJsYXlLZXlkb3duXG4gICAgICAgICAgICAuYXNPYnNlcnZhYmxlKClcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIGZpbHRlcigoZXZlbnQpID0+IGV2ZW50LmtleSA9PT0gJ0VzY2FwZScpLFxuICAgICAgICAgICAgICAgIHRhcCgoZXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5vbkVzY2FwZUtleURvd24uZW1pdChldmVudCk7XG4gICAgICAgICAgICAgICAgICAgIGlmICghZXZlbnQuZGVmYXVsdFByZXZlbnRlZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5wb3BvdmVyUm9vdC5oYW5kbGVDbG9zZSgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgdGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZGVzdHJveVJlZilcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKTtcbiAgICB9XG5cbiAgICAvKiogQGlnbm9yZSAqL1xuICAgIHByaXZhdGUgY29ubmVjdE91dHNpZGVDbGljaygpIHtcbiAgICAgICAgdGhpcy5jb25uZWN0ZWRPdmVybGF5Lm92ZXJsYXlPdXRzaWRlQ2xpY2tcbiAgICAgICAgICAgIC5hc09ic2VydmFibGUoKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgdGFwKChldmVudCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLm9uUG9pbnRlckRvd25PdXRzaWRlLmVtaXQoZXZlbnQpO1xuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRlc3Ryb3lSZWYpXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCk7XG4gICAgfVxuXG4gICAgLyoqIEBpZ25vcmUgKi9cbiAgICBwcml2YXRlIG9uQXR0YWNoKCkge1xuICAgICAgICB0aGlzLmNvbm5lY3RlZE92ZXJsYXkuYXR0YWNoXG4gICAgICAgICAgICAuYXNPYnNlcnZhYmxlKClcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIHRhcCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMub25TaG93LmVtaXQoKTtcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICB0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95UmVmKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgpO1xuICAgIH1cblxuICAgIC8qKiBAaWdub3JlICovXG4gICAgcHJpdmF0ZSBvbkRldGFjaCgpIHtcbiAgICAgICAgdGhpcy5jb25uZWN0ZWRPdmVybGF5LmRldGFjaFxuICAgICAgICAgICAgLmFzT2JzZXJ2YWJsZSgpXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICB0YXAoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLm9uSGlkZS5lbWl0KCk7XG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgdGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZGVzdHJveVJlZilcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKTtcbiAgICB9XG5cbiAgICAvKiogQGlnbm9yZSAqL1xuICAgIHByaXZhdGUgc2V0U2Nyb2xsU3RyYXRlZ3koKSB7XG4gICAgICAgIGNvbnN0IHByZXZTY3JvbGxTdHJhdGVneSA9IHRoaXMuY29ubmVjdGVkT3ZlcmxheS5zY3JvbGxTdHJhdGVneTtcbiAgICAgICAgdGhpcy5jb25uZWN0ZWRPdmVybGF5LnNjcm9sbFN0cmF0ZWd5ID0gdGhpcy5vdmVybGF5LnNjcm9sbFN0cmF0ZWdpZXMucmVwb3NpdGlvbigpO1xuICAgICAgICB0aGlzLmNvbm5lY3RlZE92ZXJsYXkubmdPbkNoYW5nZXMoe1xuICAgICAgICAgICAgc2Nyb2xsU3RyYXRlZ3k6IG5ldyBTaW1wbGVDaGFuZ2UocHJldlNjcm9sbFN0cmF0ZWd5LCB0aGlzLmNvbm5lY3RlZE92ZXJsYXkuc2Nyb2xsU3RyYXRlZ3ksIGZhbHNlKVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKiogQGlnbm9yZSAqL1xuICAgIHByaXZhdGUgc2V0RGlzYWJsZUNsb3NlKCkge1xuICAgICAgICBjb25zdCBwcmV2RGlzYWJsZUNsb3NlID0gdGhpcy5jb25uZWN0ZWRPdmVybGF5LmRpc2FibGVDbG9zZTtcbiAgICAgICAgdGhpcy5jb25uZWN0ZWRPdmVybGF5LmRpc2FibGVDbG9zZSA9IHRoaXMucG9wb3ZlclJvb3QuY29udHJvbGxlZEV4dGVybmFsbHkoKSgpO1xuICAgICAgICB0aGlzLmNvbm5lY3RlZE92ZXJsYXkubmdPbkNoYW5nZXMoe1xuICAgICAgICAgICAgZGlzYWJsZUNsb3NlOiBuZXcgU2ltcGxlQ2hhbmdlKHByZXZEaXNhYmxlQ2xvc2UsIHRoaXMuY29ubmVjdGVkT3ZlcmxheS5kaXNhYmxlQ2xvc2UsIGZhbHNlKVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKiogQGlnbm9yZSAqL1xuICAgIHByaXZhdGUgc2V0T3JpZ2luKCkge1xuICAgICAgICBjb25zdCBwcmV2T3JpZ2luID0gdGhpcy5jb25uZWN0ZWRPdmVybGF5Lm9yaWdpbjtcbiAgICAgICAgdGhpcy5jb25uZWN0ZWRPdmVybGF5Lm9yaWdpbiA9IHRoaXMucG9wb3ZlclJvb3QucG9wb3ZlclRyaWdnZXJEaXJlY3RpdmUoKS5vdmVybGF5T3JpZ2luO1xuICAgICAgICB0aGlzLmNvbm5lY3RlZE92ZXJsYXkubmdPbkNoYW5nZXMoe1xuICAgICAgICAgICAgb3JpZ2luOiBuZXcgU2ltcGxlQ2hhbmdlKHByZXZPcmlnaW4sIHRoaXMuY29ubmVjdGVkT3ZlcmxheS5vcmlnaW4sIGZhbHNlKVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKiogQGlnbm9yZSAqL1xuICAgIHByaXZhdGUgb25Qb3NpdGlvbkNoYW5nZUVmZmVjdCgpIHtcbiAgICAgICAgZWZmZWN0KCgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHBvc2l0aW9ucyA9IHRoaXMucG9zaXRpb25zKCk7XG4gICAgICAgICAgICB0aGlzLmRpc2FibGVBbHRlcm5hdGVQb3NpdGlvbnMoKTtcbiAgICAgICAgICAgIHVudHJhY2tlZCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgcHJldlBvc2l0aW9ucyA9IHRoaXMuY29ubmVjdGVkT3ZlcmxheS5wb3NpdGlvbnM7XG4gICAgICAgICAgICAgICAgdGhpcy5jb25uZWN0ZWRPdmVybGF5LnBvc2l0aW9ucyA9IHBvc2l0aW9ucztcbiAgICAgICAgICAgICAgICB0aGlzLmNvbm5lY3RlZE92ZXJsYXkubmdPbkNoYW5nZXMoe1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbnM6IG5ldyBTaW1wbGVDaGFuZ2UocHJldlBvc2l0aW9ucywgdGhpcy5jb25uZWN0ZWRPdmVybGF5LnBvc2l0aW9ucywgZmFsc2UpXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgdGhpcy5jb25uZWN0ZWRPdmVybGF5Lm92ZXJsYXlSZWY/LnVwZGF0ZVBvc2l0aW9uKCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqIEBpZ25vcmUgKi9cbiAgICBwcml2YXRlIG9uQ29udHJvbGxlZEV4dGVybmFsbHlDaGFuZ2VFZmZlY3QoKSB7XG4gICAgICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnBvcG92ZXJSb290LmNvbnRyb2xsZWRFeHRlcm5hbGx5KCkoKTtcbiAgICAgICAgICAgIHVudHJhY2tlZCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZXREaXNhYmxlQ2xvc2UoKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICB9XG59XG4iXX0=
|
@@ -0,0 +1,142 @@
|
|
1
|
+
import { DOCUMENT } from '@angular/common';
|
2
|
+
import { computed, contentChild, Directive, effect, forwardRef, inject, input, output, signal, untracked, ViewContainerRef } from '@angular/core';
|
3
|
+
import { RdxPopoverArrowToken } from './popover-arrow.token';
|
4
|
+
import { RdxPopoverContentDirective } from './popover-content.directive';
|
5
|
+
import { RdxPopoverRootToken } from './popover-root.token';
|
6
|
+
import { RdxPopoverTriggerDirective } from './popover-trigger.directive';
|
7
|
+
import * as i0 from "@angular/core";
|
8
|
+
export class RdxPopoverRootDirective {
|
9
|
+
constructor() {
|
10
|
+
/**
|
11
|
+
* The open state of the popover when it is initially rendered. Use when you do not need to control its open state.
|
12
|
+
*/
|
13
|
+
this.defaultOpen = input(false);
|
14
|
+
/**
|
15
|
+
* The controlled open state of the popover. Must be used in conjunction with onOpenChange.
|
16
|
+
*/
|
17
|
+
this.open = input();
|
18
|
+
/**
|
19
|
+
* Event handler called when the open state of the popover changes.
|
20
|
+
*/
|
21
|
+
this.onOpenChange = output();
|
22
|
+
/** @ignore */
|
23
|
+
this.popoverContentDirective = contentChild.required(RdxPopoverContentDirective);
|
24
|
+
/** @ignore */
|
25
|
+
this.popoverTriggerDirective = contentChild.required(RdxPopoverTriggerDirective);
|
26
|
+
/** @ignore */
|
27
|
+
this.popoverArrowDirective = contentChild(RdxPopoverArrowToken);
|
28
|
+
/** @ignore */
|
29
|
+
this.viewContainerRef = inject(ViewContainerRef);
|
30
|
+
/** @ignore */
|
31
|
+
this.document = inject(DOCUMENT);
|
32
|
+
/** @ignore */
|
33
|
+
this.isOpen = signal(this.defaultOpen());
|
34
|
+
/** @ignore */
|
35
|
+
this.state = computed(() => {
|
36
|
+
const currentIsOpen = this.isOpen();
|
37
|
+
if (currentIsOpen) {
|
38
|
+
return 'open';
|
39
|
+
}
|
40
|
+
return 'closed';
|
41
|
+
});
|
42
|
+
/** @ignore */
|
43
|
+
this.isControlledExternally = computed(() => signal(this.open() !== void 0));
|
44
|
+
this.onOpenChangeEffect();
|
45
|
+
this.onIsOpenChangeEffect();
|
46
|
+
}
|
47
|
+
/** @ignore */
|
48
|
+
ngOnInit() {
|
49
|
+
if (this.defaultOpen()) {
|
50
|
+
this.handleOpen();
|
51
|
+
}
|
52
|
+
}
|
53
|
+
/** @ignore */
|
54
|
+
controlledExternally() {
|
55
|
+
return this.isControlledExternally().asReadonly();
|
56
|
+
}
|
57
|
+
/** @ignore */
|
58
|
+
handleOpen() {
|
59
|
+
if (this.isControlledExternally()()) {
|
60
|
+
return;
|
61
|
+
}
|
62
|
+
this.setOpen(true);
|
63
|
+
}
|
64
|
+
/** @ignore */
|
65
|
+
handleClose() {
|
66
|
+
if (this.isControlledExternally()()) {
|
67
|
+
return;
|
68
|
+
}
|
69
|
+
this.setOpen(false);
|
70
|
+
}
|
71
|
+
/** @ignore */
|
72
|
+
handleToggle() {
|
73
|
+
if (this.isControlledExternally()()) {
|
74
|
+
return;
|
75
|
+
}
|
76
|
+
this.isOpen() ? this.handleClose() : this.handleOpen();
|
77
|
+
}
|
78
|
+
/** @ignore */
|
79
|
+
setOpen(open = false) {
|
80
|
+
if (open) {
|
81
|
+
this.document.dispatchEvent(new CustomEvent('popover.open'));
|
82
|
+
}
|
83
|
+
this.isOpen.set(open);
|
84
|
+
this.onOpenChange.emit(open);
|
85
|
+
}
|
86
|
+
/** @ignore */
|
87
|
+
show() {
|
88
|
+
this.popoverContentDirective().show();
|
89
|
+
}
|
90
|
+
/** @ignore */
|
91
|
+
hide() {
|
92
|
+
this.popoverContentDirective().hide();
|
93
|
+
}
|
94
|
+
/** @ignore */
|
95
|
+
onIsOpenChangeEffect() {
|
96
|
+
effect(() => {
|
97
|
+
const isOpen = this.isOpen();
|
98
|
+
untracked(() => {
|
99
|
+
if (isOpen) {
|
100
|
+
this.show();
|
101
|
+
}
|
102
|
+
else {
|
103
|
+
this.hide();
|
104
|
+
}
|
105
|
+
});
|
106
|
+
});
|
107
|
+
}
|
108
|
+
/** @ignore */
|
109
|
+
onOpenChangeEffect() {
|
110
|
+
effect(() => {
|
111
|
+
const currentOpen = this.open();
|
112
|
+
untracked(() => {
|
113
|
+
this.isControlledExternally().set(currentOpen !== void 0);
|
114
|
+
if (this.isControlledExternally()()) {
|
115
|
+
this.setOpen(currentOpen);
|
116
|
+
}
|
117
|
+
});
|
118
|
+
});
|
119
|
+
}
|
120
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: RdxPopoverRootDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
121
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "18.2.11", type: RdxPopoverRootDirective, isStandalone: true, selector: "[rdxPopoverRoot]", inputs: { defaultOpen: { classPropertyName: "defaultOpen", publicName: "defaultOpen", isSignal: true, isRequired: false, transformFunction: null }, open: { classPropertyName: "open", publicName: "open", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onOpenChange: "onOpenChange" }, providers: [
|
122
|
+
{
|
123
|
+
provide: RdxPopoverRootToken,
|
124
|
+
useExisting: forwardRef(() => RdxPopoverRootDirective)
|
125
|
+
}
|
126
|
+
], queries: [{ propertyName: "popoverContentDirective", first: true, predicate: RdxPopoverContentDirective, descendants: true, isSignal: true }, { propertyName: "popoverTriggerDirective", first: true, predicate: RdxPopoverTriggerDirective, descendants: true, isSignal: true }, { propertyName: "popoverArrowDirective", first: true, predicate: RdxPopoverArrowToken, descendants: true, isSignal: true }], exportAs: ["rdxPopoverRoot"], ngImport: i0 }); }
|
127
|
+
}
|
128
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: RdxPopoverRootDirective, decorators: [{
|
129
|
+
type: Directive,
|
130
|
+
args: [{
|
131
|
+
selector: '[rdxPopoverRoot]',
|
132
|
+
standalone: true,
|
133
|
+
providers: [
|
134
|
+
{
|
135
|
+
provide: RdxPopoverRootToken,
|
136
|
+
useExisting: forwardRef(() => RdxPopoverRootDirective)
|
137
|
+
}
|
138
|
+
],
|
139
|
+
exportAs: 'rdxPopoverRoot'
|
140
|
+
}]
|
141
|
+
}], ctorParameters: () => [] });
|
142
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wb3Zlci1yb290LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3ByaW1pdGl2ZXMvcG9wb3Zlci9zcmMvcG9wb3Zlci1yb290LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUNILFFBQVEsRUFDUixZQUFZLEVBQ1osU0FBUyxFQUNULE1BQU0sRUFDTixVQUFVLEVBQ1YsTUFBTSxFQUNOLEtBQUssRUFFTCxNQUFNLEVBQ04sTUFBTSxFQUNOLFNBQVMsRUFDVCxnQkFBZ0IsRUFDbkIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDN0QsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDekUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDM0QsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7O0FBY3pFLE1BQU0sT0FBTyx1QkFBdUI7SUF5Q2hDO1FBeENBOztXQUVHO1FBQ00sZ0JBQVcsR0FBRyxLQUFLLENBQVUsS0FBSyxDQUFDLENBQUM7UUFDN0M7O1dBRUc7UUFDTSxTQUFJLEdBQUcsS0FBSyxFQUF1QixDQUFDO1FBRTdDOztXQUVHO1FBQ00saUJBQVksR0FBRyxNQUFNLEVBQVcsQ0FBQztRQUUxQyxjQUFjO1FBQ0wsNEJBQXVCLEdBQUcsWUFBWSxDQUFDLFFBQVEsQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO1FBQ3JGLGNBQWM7UUFDTCw0QkFBdUIsR0FBRyxZQUFZLENBQUMsUUFBUSxDQUFDLDBCQUEwQixDQUFDLENBQUM7UUFDckYsY0FBYztRQUNMLDBCQUFxQixHQUFHLFlBQVksQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBRXBF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VCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICAgIGNvbXB1dGVkLFxuICAgIGNvbnRlbnRDaGlsZCxcbiAgICBEaXJlY3RpdmUsXG4gICAgZWZmZWN0LFxuICAgIGZvcndhcmRSZWYsXG4gICAgaW5qZWN0LFxuICAgIGlucHV0LFxuICAgIE9uSW5pdCxcbiAgICBvdXRwdXQsXG4gICAgc2lnbmFsLFxuICAgIHVudHJhY2tlZCxcbiAgICBWaWV3Q29udGFpbmVyUmVmXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUmR4UG9wb3ZlckFycm93VG9rZW4gfSBmcm9tICcuL3BvcG92ZXItYXJyb3cudG9rZW4nO1xuaW1wb3J0IHsgUmR4UG9wb3ZlckNvbnRlbnREaXJlY3RpdmUgfSBmcm9tICcuL3BvcG92ZXItY29udGVudC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgUmR4UG9wb3ZlclJvb3RUb2tlbiB9IGZyb20gJy4vcG9wb3Zlci1yb290LnRva2VuJztcbmltcG9ydCB7IFJkeFBvcG92ZXJUcmlnZ2VyRGlyZWN0aXZlIH0gZnJvbSAnLi9wb3BvdmVyLXRyaWdnZXIuZGlyZWN0aXZlJztcbmltcG9ydCB7IFJkeFBvcG92ZXJTdGF0ZSB9IGZyb20gJy4vcG9wb3Zlci50eXBlcyc7XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW3JkeFBvcG92ZXJSb290XScsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogUmR4UG9wb3ZlclJvb3RUb2tlbixcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFJkeFBvcG92ZXJSb290RGlyZWN0aXZlKVxuICAgICAgICB9XG4gICAgXSxcbiAgICBleHBvcnRBczogJ3JkeFBvcG92ZXJSb290J1xufSlcbmV4cG9ydCBjbGFzcyBSZHhQb3BvdmVyUm9vdERpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgLyoqXG4gICAgICogVGhlIG9wZW4gc3RhdGUgb2YgdGhlIHBvcG92ZXIgd2hlbiBpdCBpcyBpbml0aWFsbHkgcmVuZGVyZWQuIFVzZSB3aGVuIHlvdSBkbyBub3QgbmVlZCB0byBjb250cm9sIGl0cyBvcGVuIHN0YXRlLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IGRlZmF1bHRPcGVuID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xuICAgIC8qKlxuICAgICAqIFRoZSBjb250cm9sbGVkIG9wZW4gc3RhdGUgb2YgdGhlIHBvcG92ZXIuIE11c3QgYmUgdXNlZCBpbiBjb25qdW5jdGlvbiB3aXRoIG9uT3BlbkNoYW5nZS5cbiAgICAgKi9cbiAgICByZWFkb25seSBvcGVuID0gaW5wdXQ8Ym9vbGVhbiB8IHVuZGVmaW5lZD4oKTtcblxuICAgIC8qKlxuICAgICAqIEV2ZW50IGhhbmRsZXIgY2FsbGVkIHdoZW4gdGhlIG9wZW4gc3RhdGUgb2YgdGhlIHBvcG92ZXIgY2hhbmdlcy5cbiAgICAgKi9cbiAgICByZWFkb25seSBvbk9wZW5DaGFuZ2UgPSBvdXRwdXQ8Ym9vbGVhbj4oKTtcblxuICAgIC8qKiBAaWdub3JlICovXG4gICAgcmVhZG9ubHkgcG9wb3ZlckNvbnRlbnREaXJlY3RpdmUgPSBjb250ZW50Q2hpbGQucmVxdWlyZWQoUmR4UG9wb3ZlckNvbnRlbnREaXJlY3RpdmUpO1xuICAgIC8qKiBAaWdub3JlICovXG4gICAgcmVhZG9ubHkgcG9wb3ZlclRyaWdnZXJEaXJlY3RpdmUgPSBjb250ZW50Q2hpbGQucmVxdWlyZWQoUmR4UG9wb3ZlclRyaWdnZXJEaXJlY3RpdmUpO1xuICAgIC8qKiBAaWdub3JlICovXG4gICAgcmVhZG9ubHkgcG9wb3ZlckFycm93RGlyZWN0aXZlID0gY29udGVudENoaWxkKFJkeFBvcG92ZXJBcnJvd1Rva2VuKTtcblxuICAgIC8qKiBAaWdub3JlICovXG4gICAgcmVhZG9ubHkgdmlld0NvbnRhaW5lclJlZiA9IGluamVjdChWaWV3Q29udGFpbmVyUmVmKTtcbiAgICAvKiogQGlnbm9yZSAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZG9jdW1lbnQgPSBpbmplY3QoRE9DVU1FTlQpO1xuXG4gICAgLyoqIEBpZ25vcmUgKi9cbiAgICByZWFkb25seSBpc09wZW4gPSBzaWduYWw8Ym9vbGVhbj4odGhpcy5kZWZhdWx0T3BlbigpKTtcbiAgICAvKiogQGlnbm9yZSAqL1xuICAgIHJlYWRvbmx5IHN0YXRlID0gY29tcHV0ZWQ8UmR4UG9wb3ZlclN0YXRlPigoKSA9PiB7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRJc09wZW4gPSB0aGlzLmlzT3BlbigpO1xuICAgICAgICBpZiAoY3VycmVudElzT3Blbikge1xuICAgICAgICAgICAgcmV0dXJuICdvcGVuJztcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gJ2Nsb3NlZCc7XG4gICAgfSk7XG5cbiAgICAvKiogQGlnbm9yZSAqL1xuICAgIHByaXZhdGUgaXNDb250cm9sbGVkRXh0ZXJuYWxseSA9IGNvbXB1dGVkKCgpID0+IHNpZ25hbCh0aGlzLm9wZW4oKSAhPT0gdm9pZCAwKSk7XG5cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgdGhpcy5vbk9wZW5DaGFuZ2VFZmZlY3QoKTtcbiAgICAgICAgdGhpcy5vbklzT3BlbkNoYW5nZUVmZmVjdCgpO1xuICAgIH1cblxuICAgIC8qKiBAaWdub3JlICovXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmRlZmF1bHRPcGVuKCkpIHtcbiAgICAgICAgICAgIHRoaXMuaGFuZGxlT3BlbigpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBpZ25vcmUgKi9cbiAgICBjb250cm9sbGVkRXh0ZXJuYWxseSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNDb250cm9sbGVkRXh0ZXJuYWxseSgpLmFzUmVhZG9ubHkoKTtcbiAgICB9XG5cbiAgICAvKiogQGlnbm9yZSAqL1xuICAgIGhhbmRsZU9wZW4oKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmlzQ29udHJvbGxlZEV4dGVybmFsbHkoKSgpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zZXRPcGVuKHRydWUpO1xuICAgIH1cblxuICAgIC8qKiBAaWdub3JlICovXG4gICAgaGFuZGxlQ2xvc2UoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmlzQ29udHJvbGxlZEV4dGVybmFsbHkoKSgpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zZXRPcGVuKGZhbHNlKTtcbiAgICB9XG5cbiAgICAvKiogQGlnbm9yZSAqL1xuICAgIGhhbmRsZVRvZ2dsZSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuaXNDb250cm9sbGVkRXh0ZXJuYWxseSgpKCkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmlzT3BlbigpID8gdGhpcy5oYW5kbGVDbG9zZSgpIDogdGhpcy5oYW5kbGVPcGVuKCk7XG4gICAgfVxuXG4gICAgLyoqIEBpZ25vcmUgKi9cbiAgICBwcml2YXRlIHNldE9wZW4ob3BlbiA9IGZhbHNlKTogdm9pZCB7XG4gICAgICAgIGlmIChvcGVuKSB7XG4gICAgICAgICAgICB0aGlzLmRvY3VtZW50LmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCdwb3BvdmVyLm9wZW4nKSk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmlzT3Blbi5zZXQob3Blbik7XG4gICAgICAgIHRoaXMub25PcGVuQ2hhbmdlLmVtaXQob3Blbik7XG4gICAgfVxuXG4gICAgLyoqIEBpZ25vcmUgKi9cbiAgICBwcml2YXRlIHNob3coKTogdm9pZCB7XG4gICAgICAgIHRoaXMucG9wb3ZlckNvbnRlbnREaXJlY3RpdmUoKS5zaG93KCk7XG4gICAgfVxuXG4gICAgLyoqIEBpZ25vcmUgKi9cbiAgICBwcml2YXRlIGhpZGUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMucG9wb3ZlckNvbnRlbnREaXJlY3RpdmUoKS5oaWRlKCk7XG4gICAgfVxuXG4gICAgLyoqIEBpZ25vcmUgKi9cbiAgICBwcml2YXRlIG9uSXNPcGVuQ2hhbmdlRWZmZWN0KCkge1xuICAgICAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgaXNPcGVuID0gdGhpcy5pc09wZW4oKTtcblxuICAgICAgICAgICAgdW50cmFja2VkKCgpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoaXNPcGVuKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2hvdygpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaGlkZSgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKiogQGlnbm9yZSAqL1xuICAgIHByaXZhdGUgb25PcGVuQ2hhbmdlRWZmZWN0KCkge1xuICAgICAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgY3VycmVudE9wZW4gPSB0aGlzLm9wZW4oKTtcblxuICAgICAgICAgICAgdW50cmFja2VkKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmlzQ29udHJvbGxlZEV4dGVybmFsbHkoKS5zZXQoY3VycmVudE9wZW4gIT09IHZvaWQgMCk7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuaXNDb250cm9sbGVkRXh0ZXJuYWxseSgpKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRPcGVuKGN1cnJlbnRPcGVuKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfVxufVxuIl19
|
@@ -0,0 +1,7 @@
|
|
1
|
+
import { assertInInjectionContext, inject, isDevMode } from '@angular/core';
|
2
|
+
import { RdxPopoverRootToken } from './popover-root.token';
|
3
|
+
export function injectPopoverRoot() {
|
4
|
+
isDevMode() && assertInInjectionContext(injectPopoverRoot);
|
5
|
+
return inject(RdxPopoverRootToken);
|
6
|
+
}
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wb3Zlci1yb290LmluamVjdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3ByaW1pdGl2ZXMvcG9wb3Zlci9zcmMvcG9wb3Zlci1yb290LmluamVjdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUU1RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUUzRCxNQUFNLFVBQVUsaUJBQWlCO0lBQzdCLFNBQVMsRUFBRSxJQUFJLHdCQUF3QixDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDM0QsT0FBTyxNQUFNLENBQUMsbUJBQW1CLENBQUMsQ0FBQztBQUN2QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYXNzZXJ0SW5JbmplY3Rpb25Db250ZXh0LCBpbmplY3QsIGlzRGV2TW9kZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUmR4UG9wb3ZlclJvb3REaXJlY3RpdmUgfSBmcm9tICcuL3BvcG92ZXItcm9vdC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgUmR4UG9wb3ZlclJvb3RUb2tlbiB9IGZyb20gJy4vcG9wb3Zlci1yb290LnRva2VuJztcblxuZXhwb3J0IGZ1bmN0aW9uIGluamVjdFBvcG92ZXJSb290KCk6IFJkeFBvcG92ZXJSb290RGlyZWN0aXZlIHtcbiAgICBpc0Rldk1vZGUoKSAmJiBhc3NlcnRJbkluamVjdGlvbkNvbnRleHQoaW5qZWN0UG9wb3ZlclJvb3QpO1xuICAgIHJldHVybiBpbmplY3QoUmR4UG9wb3ZlclJvb3RUb2tlbik7XG59XG4iXX0=
|
@@ -0,0 +1,3 @@
|
|
1
|
+
import { InjectionToken } from '@angular/core';
|
2
|
+
export const RdxPopoverRootToken = new InjectionToken('RdxPopoverRootToken');
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wb3Zlci1yb290LnRva2VuLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvcHJpbWl0aXZlcy9wb3BvdmVyL3NyYy9wb3BvdmVyLXJvb3QudG9rZW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUcvQyxNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRyxJQUFJLGNBQWMsQ0FBMEIscUJBQXFCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSZHhQb3BvdmVyUm9vdERpcmVjdGl2ZSB9IGZyb20gJy4vcG9wb3Zlci1yb290LmRpcmVjdGl2ZSc7XG5cbmV4cG9ydCBjb25zdCBSZHhQb3BvdmVyUm9vdFRva2VuID0gbmV3IEluamVjdGlvblRva2VuPFJkeFBvcG92ZXJSb290RGlyZWN0aXZlPignUmR4UG9wb3ZlclJvb3RUb2tlbicpO1xuIl19
|