@skyux/popovers 5.7.2 → 6.0.0-beta.2
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/documentation.json +2 -2
- package/esm2020/index.mjs +23 -0
- package/esm2020/lib/modules/dropdown/dropdown-button.component.mjs +14 -0
- package/esm2020/lib/modules/dropdown/dropdown-extensions.mjs +14 -0
- package/esm2020/lib/modules/dropdown/dropdown-item.component.mjs +69 -0
- package/esm2020/lib/modules/dropdown/dropdown-menu.component.mjs +305 -0
- package/esm2020/lib/modules/dropdown/dropdown.component.mjs +359 -0
- package/esm2020/lib/modules/dropdown/dropdown.module.mjs +60 -0
- package/esm2020/lib/modules/dropdown/types/dropdown-horizontal-alignment.mjs +2 -0
- package/esm2020/lib/modules/dropdown/types/dropdown-menu-change.mjs +2 -0
- package/esm2020/lib/modules/dropdown/types/dropdown-message-type.mjs +40 -0
- package/esm2020/lib/modules/dropdown/types/dropdown-message.mjs +2 -0
- package/esm2020/lib/modules/dropdown/types/dropdown-trigger-type.mjs +2 -0
- package/esm2020/lib/modules/popover/popover-adapter.service.mjs +74 -0
- package/esm2020/lib/modules/popover/popover-animation-state.mjs +2 -0
- package/esm2020/lib/modules/popover/popover-animation.mjs +19 -0
- package/esm2020/lib/modules/popover/popover-content.component.mjs +261 -0
- package/esm2020/lib/modules/popover/popover-context.mjs +10 -0
- package/esm2020/lib/modules/popover/popover-extensions.mjs +29 -0
- package/esm2020/lib/modules/popover/popover.component.mjs +198 -0
- package/esm2020/lib/modules/popover/popover.directive.mjs +176 -0
- package/esm2020/lib/modules/popover/popover.module.mjs +55 -0
- package/esm2020/lib/modules/popover/types/popover-adapter-arrow-coordinates.mjs +2 -0
- package/esm2020/lib/modules/popover/types/popover-adapter-elements.mjs +2 -0
- package/esm2020/lib/modules/popover/types/popover-alignment.mjs +2 -0
- package/esm2020/lib/modules/popover/types/popover-message-type.mjs +24 -0
- package/esm2020/lib/modules/popover/types/popover-message.mjs +2 -0
- package/esm2020/lib/modules/popover/types/popover-placement.mjs +2 -0
- package/esm2020/lib/modules/popover/types/popover-position.mjs +2 -0
- package/esm2020/lib/modules/popover/types/popover-trigger.mjs +2 -0
- package/esm2020/lib/modules/shared/sky-popovers-resources.module.mjs +47 -0
- package/esm2020/skyux-popovers.mjs +5 -0
- package/esm2020/testing/dropdown/dropdown-fixture.mjs +133 -0
- package/esm2020/testing/dropdown/dropdown-testing.module.mjs +15 -0
- package/esm2020/testing/dropdown/popovers-fixture-dropdown-item.mjs +2 -0
- package/esm2020/testing/dropdown/popovers-fixture-dropdown-menu.mjs +2 -0
- package/esm2020/testing/dropdown/popovers-fixture-dropdown.mjs +2 -0
- package/esm2020/testing/popover/popover-fixture.mjs +86 -0
- package/esm2020/testing/popover/popover-testing.module.mjs +29 -0
- package/esm2020/testing/public-api.mjs +8 -0
- package/esm2020/testing/skyux-popovers-testing.mjs +5 -0
- package/fesm2015/{skyux-popovers-testing.js → skyux-popovers-testing.mjs} +9 -9
- package/fesm2015/skyux-popovers-testing.mjs.map +1 -0
- package/fesm2015/skyux-popovers.mjs +1705 -0
- package/fesm2015/skyux-popovers.mjs.map +1 -0
- package/fesm2020/skyux-popovers-testing.mjs +266 -0
- package/fesm2020/skyux-popovers-testing.mjs.map +1 -0
- package/{fesm2015/skyux-popovers.js → fesm2020/skyux-popovers.mjs} +53 -88
- package/fesm2020/skyux-popovers.mjs.map +1 -0
- package/package.json +40 -16
- package/testing/package.json +5 -5
- package/bundles/skyux-popovers-testing.umd.js +0 -682
- package/bundles/skyux-popovers.umd.js +0 -1889
- package/esm2015/index.js +0 -23
- package/esm2015/index.js.map +0 -1
- package/esm2015/lib/modules/dropdown/dropdown-button.component.js +0 -17
- package/esm2015/lib/modules/dropdown/dropdown-button.component.js.map +0 -1
- package/esm2015/lib/modules/dropdown/dropdown-extensions.js +0 -14
- package/esm2015/lib/modules/dropdown/dropdown-extensions.js.map +0 -1
- package/esm2015/lib/modules/dropdown/dropdown-item.component.js +0 -75
- package/esm2015/lib/modules/dropdown/dropdown-item.component.js.map +0 -1
- package/esm2015/lib/modules/dropdown/dropdown-menu.component.js +0 -311
- package/esm2015/lib/modules/dropdown/dropdown-menu.component.js.map +0 -1
- package/esm2015/lib/modules/dropdown/dropdown.component.js +0 -363
- package/esm2015/lib/modules/dropdown/dropdown.component.js.map +0 -1
- package/esm2015/lib/modules/dropdown/dropdown.module.js +0 -60
- package/esm2015/lib/modules/dropdown/dropdown.module.js.map +0 -1
- package/esm2015/lib/modules/dropdown/types/dropdown-horizontal-alignment.js +0 -2
- package/esm2015/lib/modules/dropdown/types/dropdown-horizontal-alignment.js.map +0 -1
- package/esm2015/lib/modules/dropdown/types/dropdown-menu-change.js +0 -2
- package/esm2015/lib/modules/dropdown/types/dropdown-menu-change.js.map +0 -1
- package/esm2015/lib/modules/dropdown/types/dropdown-message-type.js +0 -40
- package/esm2015/lib/modules/dropdown/types/dropdown-message-type.js.map +0 -1
- package/esm2015/lib/modules/dropdown/types/dropdown-message.js +0 -2
- package/esm2015/lib/modules/dropdown/types/dropdown-message.js.map +0 -1
- package/esm2015/lib/modules/dropdown/types/dropdown-trigger-type.js +0 -2
- package/esm2015/lib/modules/dropdown/types/dropdown-trigger-type.js.map +0 -1
- package/esm2015/lib/modules/popover/popover-adapter.service.js +0 -74
- package/esm2015/lib/modules/popover/popover-adapter.service.js.map +0 -1
- package/esm2015/lib/modules/popover/popover-animation-state.js +0 -2
- package/esm2015/lib/modules/popover/popover-animation-state.js.map +0 -1
- package/esm2015/lib/modules/popover/popover-animation.js +0 -19
- package/esm2015/lib/modules/popover/popover-animation.js.map +0 -1
- package/esm2015/lib/modules/popover/popover-content.component.js +0 -271
- package/esm2015/lib/modules/popover/popover-content.component.js.map +0 -1
- package/esm2015/lib/modules/popover/popover-context.js +0 -10
- package/esm2015/lib/modules/popover/popover-context.js.map +0 -1
- package/esm2015/lib/modules/popover/popover-extensions.js +0 -29
- package/esm2015/lib/modules/popover/popover-extensions.js.map +0 -1
- package/esm2015/lib/modules/popover/popover.component.js +0 -203
- package/esm2015/lib/modules/popover/popover.component.js.map +0 -1
- package/esm2015/lib/modules/popover/popover.directive.js +0 -176
- package/esm2015/lib/modules/popover/popover.directive.js.map +0 -1
- package/esm2015/lib/modules/popover/popover.module.js +0 -56
- package/esm2015/lib/modules/popover/popover.module.js.map +0 -1
- package/esm2015/lib/modules/popover/types/popover-adapter-arrow-coordinates.js +0 -2
- package/esm2015/lib/modules/popover/types/popover-adapter-arrow-coordinates.js.map +0 -1
- package/esm2015/lib/modules/popover/types/popover-adapter-elements.js +0 -2
- package/esm2015/lib/modules/popover/types/popover-adapter-elements.js.map +0 -1
- package/esm2015/lib/modules/popover/types/popover-alignment.js +0 -2
- package/esm2015/lib/modules/popover/types/popover-alignment.js.map +0 -1
- package/esm2015/lib/modules/popover/types/popover-message-type.js +0 -24
- package/esm2015/lib/modules/popover/types/popover-message-type.js.map +0 -1
- package/esm2015/lib/modules/popover/types/popover-message.js +0 -2
- package/esm2015/lib/modules/popover/types/popover-message.js.map +0 -1
- package/esm2015/lib/modules/popover/types/popover-placement.js +0 -2
- package/esm2015/lib/modules/popover/types/popover-placement.js.map +0 -1
- package/esm2015/lib/modules/popover/types/popover-position.js +0 -2
- package/esm2015/lib/modules/popover/types/popover-position.js.map +0 -1
- package/esm2015/lib/modules/popover/types/popover-trigger.js +0 -2
- package/esm2015/lib/modules/popover/types/popover-trigger.js.map +0 -1
- package/esm2015/lib/modules/shared/sky-popovers-resources.module.js +0 -47
- package/esm2015/lib/modules/shared/sky-popovers-resources.module.js.map +0 -1
- package/esm2015/skyux-popovers.js +0 -5
- package/esm2015/skyux-popovers.js.map +0 -1
- package/esm2015/testing/dropdown/dropdown-fixture.js +0 -138
- package/esm2015/testing/dropdown/dropdown-fixture.js.map +0 -1
- package/esm2015/testing/dropdown/dropdown-testing.module.js +0 -15
- package/esm2015/testing/dropdown/dropdown-testing.module.js.map +0 -1
- package/esm2015/testing/dropdown/popovers-fixture-dropdown-item.js +0 -2
- package/esm2015/testing/dropdown/popovers-fixture-dropdown-item.js.map +0 -1
- package/esm2015/testing/dropdown/popovers-fixture-dropdown-menu.js +0 -2
- package/esm2015/testing/dropdown/popovers-fixture-dropdown-menu.js.map +0 -1
- package/esm2015/testing/dropdown/popovers-fixture-dropdown.js +0 -2
- package/esm2015/testing/dropdown/popovers-fixture-dropdown.js.map +0 -1
- package/esm2015/testing/popover/popover-fixture.js +0 -86
- package/esm2015/testing/popover/popover-fixture.js.map +0 -1
- package/esm2015/testing/popover/popover-testing.module.js +0 -29
- package/esm2015/testing/popover/popover-testing.module.js.map +0 -1
- package/esm2015/testing/public-api.js +0 -8
- package/esm2015/testing/public-api.js.map +0 -1
- package/esm2015/testing/skyux-popovers-testing.js +0 -5
- package/esm2015/testing/skyux-popovers-testing.js.map +0 -1
- package/fesm2015/skyux-popovers-testing.js.map +0 -1
- package/fesm2015/skyux-popovers.js.map +0 -1
|
@@ -0,0 +1,198 @@
|
|
|
1
|
+
import { Component, EventEmitter, Input, Output, TemplateRef, ViewChild, } from '@angular/core';
|
|
2
|
+
import { SkyOverlayService } from '@skyux/core';
|
|
3
|
+
import { Subject } from 'rxjs';
|
|
4
|
+
import { takeUntil } from 'rxjs/operators';
|
|
5
|
+
import { SkyPopoverContentComponent } from './popover-content.component';
|
|
6
|
+
import { SkyPopoverContext } from './popover-context';
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
import * as i1 from "@skyux/core";
|
|
9
|
+
export class SkyPopoverComponent {
|
|
10
|
+
constructor(overlayService) {
|
|
11
|
+
this.overlayService = overlayService;
|
|
12
|
+
/**
|
|
13
|
+
* Fires when users close the popover.
|
|
14
|
+
*/
|
|
15
|
+
this.popoverClosed = new EventEmitter();
|
|
16
|
+
/**
|
|
17
|
+
* Fires when users open the popover.
|
|
18
|
+
*/
|
|
19
|
+
this.popoverOpened = new EventEmitter();
|
|
20
|
+
/**
|
|
21
|
+
* Indicates that the popover is in the process of being opened or closed.
|
|
22
|
+
* @internal
|
|
23
|
+
*/
|
|
24
|
+
this.isActive = false;
|
|
25
|
+
/**
|
|
26
|
+
* Used by unit tests to disable animations since the component is injected at the bottom of the
|
|
27
|
+
* document body.
|
|
28
|
+
* @internal
|
|
29
|
+
*/
|
|
30
|
+
this.enableAnimations = true;
|
|
31
|
+
this.isMouseEnter = false;
|
|
32
|
+
this.isMarkedForCloseOnMouseLeave = false;
|
|
33
|
+
this.ngUnsubscribe = new Subject();
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Specifies the horizontal alignment of the popover in relation to the trigger element.
|
|
37
|
+
* The `skyPopoverAlignment` property on the popover directive overwrites this property.
|
|
38
|
+
* Options include:`"center"`, `"right"`, and `'"left"`.
|
|
39
|
+
* @default "center"
|
|
40
|
+
*/
|
|
41
|
+
set alignment(value) {
|
|
42
|
+
this._alignment = value;
|
|
43
|
+
}
|
|
44
|
+
get alignment() {
|
|
45
|
+
return this._alignment || 'center';
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Indicates whether to close the popover when it loses focus.
|
|
49
|
+
* To require users to click a trigger button to close the popover, set this input to false.
|
|
50
|
+
* @default true
|
|
51
|
+
*/
|
|
52
|
+
set dismissOnBlur(value) {
|
|
53
|
+
this._dismissOnBlur = value;
|
|
54
|
+
}
|
|
55
|
+
get dismissOnBlur() {
|
|
56
|
+
if (this._dismissOnBlur === undefined) {
|
|
57
|
+
return true;
|
|
58
|
+
}
|
|
59
|
+
return this._dismissOnBlur;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Specifies the placement of the popover in relation to the trigger element.
|
|
63
|
+
* The `skyPopoverPlacement` property on the popover directive overwrites this property.
|
|
64
|
+
* Options include:`"above"`, `"below"`, `"right"`, and `"left"`.
|
|
65
|
+
* @default "above"
|
|
66
|
+
*/
|
|
67
|
+
set placement(value) {
|
|
68
|
+
this._placement = value;
|
|
69
|
+
}
|
|
70
|
+
get placement() {
|
|
71
|
+
return this._placement || 'above';
|
|
72
|
+
}
|
|
73
|
+
ngOnDestroy() {
|
|
74
|
+
this.ngUnsubscribe.next();
|
|
75
|
+
this.ngUnsubscribe.complete();
|
|
76
|
+
this.ngUnsubscribe = undefined;
|
|
77
|
+
if (this.overlay) {
|
|
78
|
+
this.overlayService.close(this.overlay);
|
|
79
|
+
this.overlay = undefined;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Positions the popover next to a given caller element.
|
|
84
|
+
* @param caller The element that opened the popover.
|
|
85
|
+
* @param placement The placement of the popover.
|
|
86
|
+
* @param alignment The horizontal alignment of the popover.
|
|
87
|
+
* @internal
|
|
88
|
+
*/
|
|
89
|
+
positionNextTo(caller, placement, alignment) {
|
|
90
|
+
if (!this.overlay) {
|
|
91
|
+
this.setupOverlay();
|
|
92
|
+
}
|
|
93
|
+
this.placement = placement;
|
|
94
|
+
this.alignment = alignment;
|
|
95
|
+
this.isActive = true;
|
|
96
|
+
this.contentRef.open(caller, {
|
|
97
|
+
dismissOnBlur: this.dismissOnBlur,
|
|
98
|
+
enableAnimations: this.enableAnimations,
|
|
99
|
+
horizontalAlignment: this.alignment,
|
|
100
|
+
isStatic: false,
|
|
101
|
+
placement: this.placement,
|
|
102
|
+
popoverTitle: this.popoverTitle,
|
|
103
|
+
popoverType: this.popoverType,
|
|
104
|
+
});
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Closes the popover.
|
|
108
|
+
* @internal
|
|
109
|
+
*/
|
|
110
|
+
close() {
|
|
111
|
+
/*istanbul ignore next*/
|
|
112
|
+
this.contentRef?.close();
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Brings focus to the popover element if its open.
|
|
116
|
+
* @internal
|
|
117
|
+
*/
|
|
118
|
+
applyFocus() {
|
|
119
|
+
/*istanbul ignore next*/
|
|
120
|
+
this.contentRef?.applyFocus();
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* Adds a flag to the popover to close when the mouse leaves the popover's bounds.
|
|
124
|
+
* @internal
|
|
125
|
+
*/
|
|
126
|
+
markForCloseOnMouseLeave() {
|
|
127
|
+
this.isMarkedForCloseOnMouseLeave = true;
|
|
128
|
+
}
|
|
129
|
+
setupOverlay() {
|
|
130
|
+
const overlay = this.overlayService.create({
|
|
131
|
+
enableScroll: true,
|
|
132
|
+
enablePointerEvents: true,
|
|
133
|
+
});
|
|
134
|
+
overlay.backdropClick.pipe(takeUntil(this.ngUnsubscribe)).subscribe(() => {
|
|
135
|
+
if (this.dismissOnBlur) {
|
|
136
|
+
this.close();
|
|
137
|
+
}
|
|
138
|
+
});
|
|
139
|
+
const contentRef = overlay.attachComponent(SkyPopoverContentComponent, [
|
|
140
|
+
{
|
|
141
|
+
provide: SkyPopoverContext,
|
|
142
|
+
useValue: new SkyPopoverContext({
|
|
143
|
+
contentTemplateRef: this.templateRef,
|
|
144
|
+
}),
|
|
145
|
+
},
|
|
146
|
+
]);
|
|
147
|
+
contentRef.opened.pipe(takeUntil(this.ngUnsubscribe)).subscribe(() => {
|
|
148
|
+
this.popoverOpened.emit(this);
|
|
149
|
+
});
|
|
150
|
+
contentRef.closed.pipe(takeUntil(this.ngUnsubscribe)).subscribe(() => {
|
|
151
|
+
/*istanbul ignore else*/
|
|
152
|
+
if (this.isActive) {
|
|
153
|
+
this.overlayService.close(this.overlay);
|
|
154
|
+
this.overlay = undefined;
|
|
155
|
+
this.isActive = false;
|
|
156
|
+
this.popoverClosed.emit(this);
|
|
157
|
+
}
|
|
158
|
+
});
|
|
159
|
+
contentRef.isMouseEnter
|
|
160
|
+
.pipe(takeUntil(this.ngUnsubscribe))
|
|
161
|
+
.subscribe((isMouseEnter) => {
|
|
162
|
+
this.isMouseEnter = isMouseEnter;
|
|
163
|
+
if (this.isMarkedForCloseOnMouseLeave) {
|
|
164
|
+
this.isMarkedForCloseOnMouseLeave = false;
|
|
165
|
+
this.close();
|
|
166
|
+
}
|
|
167
|
+
});
|
|
168
|
+
this.overlay = overlay;
|
|
169
|
+
this.contentRef = contentRef;
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
SkyPopoverComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyPopoverComponent, deps: [{ token: i1.SkyOverlayService }], target: i0.ɵɵFactoryTarget.Component });
|
|
173
|
+
SkyPopoverComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: SkyPopoverComponent, selector: "sky-popover", inputs: { alignment: "alignment", dismissOnBlur: "dismissOnBlur", placement: "placement", popoverTitle: "popoverTitle", popoverType: "popoverType" }, outputs: { popoverClosed: "popoverClosed", popoverOpened: "popoverOpened" }, viewQueries: [{ propertyName: "templateRef", first: true, predicate: ["templateRef"], descendants: true, read: TemplateRef, static: true }], ngImport: i0, template: "<ng-template #templateRef>\n <ng-content></ng-content>\n</ng-template>\n" });
|
|
174
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyPopoverComponent, decorators: [{
|
|
175
|
+
type: Component,
|
|
176
|
+
args: [{ selector: 'sky-popover', template: "<ng-template #templateRef>\n <ng-content></ng-content>\n</ng-template>\n" }]
|
|
177
|
+
}], ctorParameters: function () { return [{ type: i1.SkyOverlayService }]; }, propDecorators: { alignment: [{
|
|
178
|
+
type: Input
|
|
179
|
+
}], dismissOnBlur: [{
|
|
180
|
+
type: Input
|
|
181
|
+
}], placement: [{
|
|
182
|
+
type: Input
|
|
183
|
+
}], popoverTitle: [{
|
|
184
|
+
type: Input
|
|
185
|
+
}], popoverType: [{
|
|
186
|
+
type: Input
|
|
187
|
+
}], popoverClosed: [{
|
|
188
|
+
type: Output
|
|
189
|
+
}], popoverOpened: [{
|
|
190
|
+
type: Output
|
|
191
|
+
}], templateRef: [{
|
|
192
|
+
type: ViewChild,
|
|
193
|
+
args: ['templateRef', {
|
|
194
|
+
read: TemplateRef,
|
|
195
|
+
static: true,
|
|
196
|
+
}]
|
|
197
|
+
}] } });
|
|
198
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wb3Zlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvcG9wb3ZlcnMvc3JjL2xpYi9tb2R1bGVzL3BvcG92ZXIvcG9wb3Zlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvcG9wb3ZlcnMvc3JjL2xpYi9tb2R1bGVzL3BvcG92ZXIvcG9wb3Zlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUVULFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxFQUNOLFdBQVcsRUFDWCxTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFzQixpQkFBaUIsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUVwRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUzQyxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUN6RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7O0FBUXRELE1BQU0sT0FBTyxtQkFBbUI7SUE4RzlCLFlBQW9CLGNBQWlDO1FBQWpDLG1CQUFjLEdBQWQsY0FBYyxDQUFtQjtRQS9DckQ7O1dBRUc7UUFFSSxrQkFBYSxHQUFHLElBQUksWUFBWSxFQUF1QixDQUFDO1FBRS9EOztXQUVHO1FBRUksa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBdUIsQ0FBQztRQUUvRDs7O1dBR0c7UUFDSSxhQUFRLEdBQUcsS0FBSyxDQUFDO1FBRXhCOzs7O1dBSUc7UUFDSSxxQkFBZ0IsR0FBRyxJQUFJLENBQUM7UUFFeEIsaUJBQVksR0FBRyxLQUFLLENBQUM7UUFVcEIsaUNBQTRCLEdBQUcsS0FBSyxDQUFD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LENBQUMsWUFBWSxFQUFFLEVBQUU7WUFDMUIsSUFBSSxDQUFDLFlBQVksR0FBRyxZQUFZLENBQUM7WUFDakMsSUFBSSxJQUFJLENBQUMsNEJBQTRCLEVBQUU7Z0JBQ3JDLElBQUksQ0FBQyw0QkFBNEIsR0FBRyxLQUFLLENBQUM7Z0JBQzFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQzthQUNkO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFFTCxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztRQUN2QixJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztJQUMvQixDQUFDOztnSEFuT1UsbUJBQW1CO29HQUFuQixtQkFBbUIsNldBMkZ0QixXQUFXLDJDQ25IckIsMkVBR0E7MkZEcUJhLG1CQUFtQjtrQkFKL0IsU0FBUzsrQkFDRSxhQUFhO3dHQVdaLFNBQVM7c0JBRG5CLEtBQUs7Z0JBZUssYUFBYTtzQkFEdkIsS0FBSztnQkFvQkssU0FBUztzQkFEbkIsS0FBSztnQkFhQyxZQUFZO3NCQURsQixLQUFLO2dCQVNDLFdBQVc7c0JBRGpCLEtBQUs7Z0JBT0MsYUFBYTtzQkFEbkIsTUFBTTtnQkFPQSxhQUFhO3NCQURuQixNQUFNO2dCQXNCQyxXQUFXO3NCQUpsQixTQUFTO3VCQUFDLGFBQWEsRUFBRTt3QkFDeEIsSUFBSSxFQUFFLFdBQVc7d0JBQ2pCLE1BQU0sRUFBRSxJQUFJO3FCQUNiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE91dHB1dCxcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTa3lPdmVybGF5SW5zdGFuY2UsIFNreU92ZXJsYXlTZXJ2aWNlIH0gZnJvbSAnQHNreXV4L2NvcmUnO1xuXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IFNreVBvcG92ZXJDb250ZW50Q29tcG9uZW50IH0gZnJvbSAnLi9wb3BvdmVyLWNvbnRlbnQuY29tcG9uZW50JztcbmltcG9ydCB7IFNreVBvcG92ZXJDb250ZXh0IH0gZnJvbSAnLi9wb3BvdmVyLWNvbnRleHQnO1xuaW1wb3J0IHsgU2t5UG9wb3ZlckFsaWdubWVudCB9IGZyb20gJy4vdHlwZXMvcG9wb3Zlci1hbGlnbm1lbnQnO1xuaW1wb3J0IHsgU2t5UG9wb3ZlclBsYWNlbWVudCB9IGZyb20gJy4vdHlwZXMvcG9wb3Zlci1wbGFjZW1lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdza3ktcG9wb3ZlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9wb3BvdmVyLmNvbXBvbmVudC5odG1sJyxcbn0pXG5leHBvcnQgY2xhc3MgU2t5UG9wb3ZlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgdGhlIGhvcml6b250YWwgYWxpZ25tZW50IG9mIHRoZSBwb3BvdmVyIGluIHJlbGF0aW9uIHRvIHRoZSB0cmlnZ2VyIGVsZW1lbnQuXG4gICAqIFRoZSBgc2t5UG9wb3ZlckFsaWdubWVudGAgcHJvcGVydHkgb24gdGhlIHBvcG92ZXIgZGlyZWN0aXZlIG92ZXJ3cml0ZXMgdGhpcyBwcm9wZXJ0eS5cbiAgICogT3B0aW9ucyBpbmNsdWRlOmBcImNlbnRlclwiYCwgYFwicmlnaHRcImAsIGFuZCBgJ1wibGVmdFwiYC5cbiAgICogQGRlZmF1bHQgXCJjZW50ZXJcIlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBhbGlnbm1lbnQodmFsdWU6IFNreVBvcG92ZXJBbGlnbm1lbnQpIHtcbiAgICB0aGlzLl9hbGlnbm1lbnQgPSB2YWx1ZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgYWxpZ25tZW50KCk6IFNreVBvcG92ZXJBbGlnbm1lbnQge1xuICAgIHJldHVybiB0aGlzLl9hbGlnbm1lbnQgfHwgJ2NlbnRlcic7XG4gIH1cblxuICAvKipcbiAgICogSW5kaWNhdGVzIHdoZXRoZXIgdG8gY2xvc2UgdGhlIHBvcG92ZXIgd2hlbiBpdCBsb3NlcyBmb2N1cy5cbiAgICogVG8gcmVxdWlyZSB1c2VycyB0byBjbGljayBhIHRyaWdnZXIgYnV0dG9uIHRvIGNsb3NlIHRoZSBwb3BvdmVyLCBzZXQgdGhpcyBpbnB1dCB0byBmYWxzZS5cbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBkaXNtaXNzT25CbHVyKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5fZGlzbWlzc09uQmx1ciA9IHZhbHVlO1xuICB9XG5cbiAgcHVibGljIGdldCBkaXNtaXNzT25CbHVyKCk6IGJvb2xlYW4ge1xuICAgIGlmICh0aGlzLl9kaXNtaXNzT25CbHVyID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLl9kaXNtaXNzT25CbHVyO1xuICB9XG5cbiAgLyoqXG4gICAqIFNwZWNpZmllcyB0aGUgcGxhY2VtZW50IG9mIHRoZSBwb3BvdmVyIGluIHJlbGF0aW9uIHRvIHRoZSB0cmlnZ2VyIGVsZW1lbnQuXG4gICAqIFRoZSBgc2t5UG9wb3ZlclBsYWNlbWVudGAgcHJvcGVydHkgb24gdGhlIHBvcG92ZXIgZGlyZWN0aXZlIG92ZXJ3cml0ZXMgdGhpcyBwcm9wZXJ0eS5cbiAgICogT3B0aW9ucyBpbmNsdWRlOmBcImFib3ZlXCJgLCBgXCJiZWxvd1wiYCwgYFwicmlnaHRcImAsIGFuZCBgXCJsZWZ0XCJgLlxuICAgKiBAZGVmYXVsdCBcImFib3ZlXCJcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgcGxhY2VtZW50KHZhbHVlOiBTa3lQb3BvdmVyUGxhY2VtZW50KSB7XG4gICAgdGhpcy5fcGxhY2VtZW50ID0gdmFsdWU7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHBsYWNlbWVudCgpOiBTa3lQb3BvdmVyUGxhY2VtZW50IHtcbiAgICByZXR1cm4gdGhpcy5fcGxhY2VtZW50IHx8ICdhYm92ZSc7XG4gIH1cblxuICAvKipcbiAgICogU3BlY2lmaWVzIGEgdGl0bGUgZm9yIHRoZSBwb3BvdmVyLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHBvcG92ZXJUaXRsZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgdGhlIHR5cGUgb2YgcG9wb3Zlci5cbiAgICogT3B0aW9ucyBpbmNsdWRlIGBcImluZm9cImAgYW5kIGBcImRhbmdlclwiYC5cbiAgICogQGRlZmF1bHQgXCJpbmZvXCJcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBwb3BvdmVyVHlwZTogJ2RhbmdlcicgfCAnaW5mbyc7XG5cbiAgLyoqXG4gICAqIEZpcmVzIHdoZW4gdXNlcnMgY2xvc2UgdGhlIHBvcG92ZXIuXG4gICAqL1xuICBAT3V0cHV0KClcbiAgcHVibGljIHBvcG92ZXJDbG9zZWQgPSBuZXcgRXZlbnRFbWl0dGVyPFNreVBvcG92ZXJDb21wb25lbnQ+KCk7XG5cbiAgLyoqXG4gICAqIEZpcmVzIHdoZW4gdXNlcnMgb3BlbiB0aGUgcG9wb3Zlci5cbiAgICovXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgcG9wb3Zlck9wZW5lZCA9IG5ldyBFdmVudEVtaXR0ZXI8U2t5UG9wb3ZlckNvbXBvbmVudD4oKTtcblxuICAvKipcbiAgICogSW5kaWNhdGVzIHRoYXQgdGhlIHBvcG92ZXIgaXMgaW4gdGhlIHByb2Nlc3Mgb2YgYmVpbmcgb3BlbmVkIG9yIGNsb3NlZC5cbiAgICogQGludGVybmFsXG4gICAqL1xuICBwdWJsaWMgaXNBY3RpdmUgPSBmYWxzZTtcblxuICAvKipcbiAgICogVXNlZCBieSB1bml0IHRlc3RzIHRvIGRpc2FibGUgYW5pbWF0aW9ucyBzaW5jZSB0aGUgY29tcG9uZW50IGlzIGluamVjdGVkIGF0IHRoZSBib3R0b20gb2YgdGhlXG4gICAqIGRvY3VtZW50IGJvZHkuXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgcHVibGljIGVuYWJsZUFuaW1hdGlvbnMgPSB0cnVlO1xuXG4gIHB1YmxpYyBpc01vdXNlRW50ZXIgPSBmYWxzZTtcblxuICBAVmlld0NoaWxkKCd0ZW1wbGF0ZVJlZicsIHtcbiAgICByZWFkOiBUZW1wbGF0ZVJlZixcbiAgICBzdGF0aWM6IHRydWUsXG4gIH0pXG4gIHByaXZhdGUgdGVtcGxhdGVSZWY6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgcHJpdmF0ZSBjb250ZW50UmVmOiBTa3lQb3BvdmVyQ29udGVudENvbXBvbmVudDtcblxuICBwcml2YXRlIGlzTWFya2VkRm9yQ2xvc2VPbk1vdXNlTGVhdmUgPSBmYWxzZTtcblxuICBwcml2YXRlIG5nVW5zdWJzY3JpYmUgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIHByaXZhdGUgb3ZlcmxheTogU2t5T3ZlcmxheUluc3RhbmNlO1xuXG4gIHByaXZhdGUgX2FsaWdubWVudDogU2t5UG9wb3ZlckFsaWdubWVudDtcblxuICBwcml2YXRlIF9kaXNtaXNzT25CbHVyOiBib29sZWFuO1xuXG4gIHByaXZhdGUgX3BsYWNlbWVudDogU2t5UG9wb3ZlclBsYWNlbWVudDtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIG92ZXJsYXlTZXJ2aWNlOiBTa3lPdmVybGF5U2VydmljZSkge31cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5uZ1Vuc3Vic2NyaWJlLm5leHQoKTtcbiAgICB0aGlzLm5nVW5zdWJzY3JpYmUuY29tcGxldGUoKTtcbiAgICB0aGlzLm5nVW5zdWJzY3JpYmUgPSB1bmRlZmluZWQ7XG5cbiAgICBpZiAodGhpcy5vdmVybGF5KSB7XG4gICAgICB0aGlzLm92ZXJsYXlTZXJ2aWNlLmNsb3NlKHRoaXMub3ZlcmxheSk7XG4gICAgICB0aGlzLm92ZXJsYXkgPSB1bmRlZmluZWQ7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFBvc2l0aW9ucyB0aGUgcG9wb3ZlciBuZXh0IHRvIGEgZ2l2ZW4gY2FsbGVyIGVsZW1lbnQuXG4gICAqIEBwYXJhbSBjYWxsZXIgVGhlIGVsZW1lbnQgdGhhdCBvcGVuZWQgdGhlIHBvcG92ZXIuXG4gICAqIEBwYXJhbSBwbGFjZW1lbnQgVGhlIHBsYWNlbWVudCBvZiB0aGUgcG9wb3Zlci5cbiAgICogQHBhcmFtIGFsaWdubWVudCBUaGUgaG9yaXpvbnRhbCBhbGlnbm1lbnQgb2YgdGhlIHBvcG92ZXIuXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgcHVibGljIHBvc2l0aW9uTmV4dFRvKFxuICAgIGNhbGxlcjogRWxlbWVudFJlZixcbiAgICBwbGFjZW1lbnQ/OiBTa3lQb3BvdmVyUGxhY2VtZW50LFxuICAgIGFsaWdubWVudD86IFNreVBvcG92ZXJBbGlnbm1lbnRcbiAgKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLm92ZXJsYXkpIHtcbiAgICAgIHRoaXMuc2V0dXBPdmVybGF5KCk7XG4gICAgfVxuXG4gICAgdGhpcy5wbGFjZW1lbnQgPSBwbGFjZW1lbnQ7XG4gICAgdGhpcy5hbGlnbm1lbnQgPSBhbGlnbm1lbnQ7XG4gICAgdGhpcy5pc0FjdGl2ZSA9IHRydWU7XG5cbiAgICB0aGlzLmNvbnRlbnRSZWYub3BlbihjYWxsZXIsIHtcbiAgICAgIGRpc21pc3NPbkJsdXI6IHRoaXMuZGlzbWlzc09uQmx1cixcbiAgICAgIGVuYWJsZUFuaW1hdGlvbnM6IHRoaXMuZW5hYmxlQW5pbWF0aW9ucyxcbiAgICAgIGhvcml6b250YWxBbGlnbm1lbnQ6IHRoaXMuYWxpZ25tZW50LFxuICAgICAgaXNTdGF0aWM6IGZhbHNlLFxuICAgICAgcGxhY2VtZW50OiB0aGlzLnBsYWNlbWVudCxcbiAgICAgIHBvcG92ZXJUaXRsZTogdGhpcy5wb3BvdmVyVGl0bGUsXG4gICAgICBwb3BvdmVyVHlwZTogdGhpcy5wb3BvdmVyVHlwZSxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDbG9zZXMgdGhlIHBvcG92ZXIuXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgcHVibGljIGNsb3NlKCk6IHZvaWQge1xuICAgIC8qaXN0YW5idWwgaWdub3JlIG5leHQqL1xuICAgIHRoaXMuY29udGVudFJlZj8uY2xvc2UoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBCcmluZ3MgZm9jdXMgdG8gdGhlIHBvcG92ZXIgZWxlbWVudCBpZiBpdHMgb3Blbi5cbiAgICogQGludGVybmFsXG4gICAqL1xuICBwdWJsaWMgYXBwbHlGb2N1cygpOiB2b2lkIHtcbiAgICAvKmlzdGFuYnVsIGlnbm9yZSBuZXh0Ki9cbiAgICB0aGlzLmNvbnRlbnRSZWY/LmFwcGx5Rm9jdXMoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIGEgZmxhZyB0byB0aGUgcG9wb3ZlciB0byBjbG9zZSB3aGVuIHRoZSBtb3VzZSBsZWF2ZXMgdGhlIHBvcG92ZXIncyBib3VuZHMuXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgcHVibGljIG1hcmtGb3JDbG9zZU9uTW91c2VMZWF2ZSgpOiB2b2lkIHtcbiAgICB0aGlzLmlzTWFya2VkRm9yQ2xvc2VPbk1vdXNlTGVhdmUgPSB0cnVlO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXR1cE92ZXJsYXkoKTogdm9pZCB7XG4gICAgY29uc3Qgb3ZlcmxheSA9IHRoaXMub3ZlcmxheVNlcnZpY2UuY3JlYXRlKHtcbiAgICAgIGVuYWJsZVNjcm9sbDogdHJ1ZSxcbiAgICAgIGVuYWJsZVBvaW50ZXJFdmVudHM6IHRydWUsXG4gICAgfSk7XG5cbiAgICBvdmVybGF5LmJhY2tkcm9wQ2xpY2sucGlwZSh0YWtlVW50aWwodGhpcy5uZ1Vuc3Vic2NyaWJlKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIGlmICh0aGlzLmRpc21pc3NPbkJsdXIpIHtcbiAgICAgICAgdGhpcy5jbG9zZSgpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgY29uc3QgY29udGVudFJlZiA9IG92ZXJsYXkuYXR0YWNoQ29tcG9uZW50KFNreVBvcG92ZXJDb250ZW50Q29tcG9uZW50LCBbXG4gICAgICB7XG4gICAgICAgIHByb3ZpZGU6IFNreVBvcG92ZXJDb250ZXh0LFxuICAgICAgICB1c2VWYWx1ZTogbmV3IFNreVBvcG92ZXJDb250ZXh0KHtcbiAgICAgICAgICBjb250ZW50VGVtcGxhdGVSZWY6IHRoaXMudGVtcGxhdGVSZWYsXG4gICAgICAgIH0pLFxuICAgICAgfSxcbiAgICBdKTtcblxuICAgIGNvbnRlbnRSZWYub3BlbmVkLnBpcGUodGFrZVVudGlsKHRoaXMubmdVbnN1YnNjcmliZSkpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aGlzLnBvcG92ZXJPcGVuZWQuZW1pdCh0aGlzKTtcbiAgICB9KTtcblxuICAgIGNvbnRlbnRSZWYuY2xvc2VkLnBpcGUodGFrZVVudGlsKHRoaXMubmdVbnN1YnNjcmliZSkpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAvKmlzdGFuYnVsIGlnbm9yZSBlbHNlKi9cbiAgICAgIGlmICh0aGlzLmlzQWN0aXZlKSB7XG4gICAgICAgIHRoaXMub3ZlcmxheVNlcnZpY2UuY2xvc2UodGhpcy5vdmVybGF5KTtcbiAgICAgICAgdGhpcy5vdmVybGF5ID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLmlzQWN0aXZlID0gZmFsc2U7XG4gICAgICAgIHRoaXMucG9wb3ZlckNsb3NlZC5lbWl0KHRoaXMpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgY29udGVudFJlZi5pc01vdXNlRW50ZXJcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUpKVxuICAgICAgLnN1YnNjcmliZSgoaXNNb3VzZUVudGVyKSA9PiB7XG4gICAgICAgIHRoaXMuaXNNb3VzZUVudGVyID0gaXNNb3VzZUVudGVyO1xuICAgICAgICBpZiAodGhpcy5pc01hcmtlZEZvckNsb3NlT25Nb3VzZUxlYXZlKSB7XG4gICAgICAgICAgdGhpcy5pc01hcmtlZEZvckNsb3NlT25Nb3VzZUxlYXZlID0gZmFsc2U7XG4gICAgICAgICAgdGhpcy5jbG9zZSgpO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgIHRoaXMub3ZlcmxheSA9IG92ZXJsYXk7XG4gICAgdGhpcy5jb250ZW50UmVmID0gY29udGVudFJlZjtcbiAgfVxufVxuIiwiPG5nLXRlbXBsYXRlICN0ZW1wbGF0ZVJlZj5cbiAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
|
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
import { Directive, ElementRef, Input } from '@angular/core';
|
|
2
|
+
import { Subject, fromEvent as observableFromEvent } from 'rxjs';
|
|
3
|
+
import { takeUntil } from 'rxjs/operators';
|
|
4
|
+
import { SkyPopoverComponent } from './popover.component';
|
|
5
|
+
import { SkyPopoverMessageType } from './types/popover-message-type';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
export class SkyPopoverDirective {
|
|
8
|
+
constructor(elementRef) {
|
|
9
|
+
this.elementRef = elementRef;
|
|
10
|
+
/**
|
|
11
|
+
* Provides an observable to send commands to the popover that respect the `SkyPopoverMessage` type.
|
|
12
|
+
*/
|
|
13
|
+
this.skyPopoverMessageStream = new Subject();
|
|
14
|
+
this.ngUnsubscribe = new Subject();
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Specifies the user action that displays the popover.
|
|
18
|
+
*/
|
|
19
|
+
set skyPopoverTrigger(value) {
|
|
20
|
+
this._trigger = value;
|
|
21
|
+
}
|
|
22
|
+
get skyPopoverTrigger() {
|
|
23
|
+
return this._trigger || 'click';
|
|
24
|
+
}
|
|
25
|
+
ngOnInit() {
|
|
26
|
+
this.addEventListeners();
|
|
27
|
+
}
|
|
28
|
+
ngOnDestroy() {
|
|
29
|
+
this.removeEventListeners();
|
|
30
|
+
}
|
|
31
|
+
togglePopover() {
|
|
32
|
+
if (this.skyPopover.isActive) {
|
|
33
|
+
this.sendMessage(SkyPopoverMessageType.Close);
|
|
34
|
+
return;
|
|
35
|
+
}
|
|
36
|
+
this.sendMessage(SkyPopoverMessageType.Open);
|
|
37
|
+
}
|
|
38
|
+
positionPopover() {
|
|
39
|
+
this.skyPopover.positionNextTo(this.elementRef, this.skyPopoverPlacement, this.skyPopoverAlignment);
|
|
40
|
+
}
|
|
41
|
+
closePopover() {
|
|
42
|
+
this.skyPopover.close();
|
|
43
|
+
}
|
|
44
|
+
closePopoverOrMarkForClose() {
|
|
45
|
+
if (this.skyPopover.isMouseEnter) {
|
|
46
|
+
this.skyPopover.markForCloseOnMouseLeave();
|
|
47
|
+
}
|
|
48
|
+
else {
|
|
49
|
+
this.sendMessage(SkyPopoverMessageType.Close);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
addEventListeners() {
|
|
53
|
+
const element = this.elementRef.nativeElement;
|
|
54
|
+
this.skyPopoverMessageStream
|
|
55
|
+
.pipe(takeUntil(this.ngUnsubscribe))
|
|
56
|
+
.subscribe((message) => {
|
|
57
|
+
this.handleIncomingMessages(message);
|
|
58
|
+
});
|
|
59
|
+
observableFromEvent(element, 'keydown')
|
|
60
|
+
.pipe(takeUntil(this.ngUnsubscribe))
|
|
61
|
+
.subscribe((event) => {
|
|
62
|
+
if (!this.skyPopover.isActive) {
|
|
63
|
+
return;
|
|
64
|
+
}
|
|
65
|
+
const key = event.key.toLowerCase();
|
|
66
|
+
/* tslint:disable-next-line:switch-default */
|
|
67
|
+
switch (key) {
|
|
68
|
+
case 'escape':
|
|
69
|
+
this.sendMessage(SkyPopoverMessageType.Close);
|
|
70
|
+
event.preventDefault();
|
|
71
|
+
event.stopPropagation();
|
|
72
|
+
break;
|
|
73
|
+
case 'tab':
|
|
74
|
+
if (this.skyPopover.dismissOnBlur) {
|
|
75
|
+
this.sendMessage(SkyPopoverMessageType.Close);
|
|
76
|
+
}
|
|
77
|
+
break;
|
|
78
|
+
case 'arrowdown':
|
|
79
|
+
case 'arrowleft':
|
|
80
|
+
case 'arrowright':
|
|
81
|
+
case 'arrowup':
|
|
82
|
+
case 'down':
|
|
83
|
+
case 'left':
|
|
84
|
+
case 'right':
|
|
85
|
+
case 'up':
|
|
86
|
+
this.sendMessage(SkyPopoverMessageType.Focus);
|
|
87
|
+
event.stopPropagation();
|
|
88
|
+
event.preventDefault();
|
|
89
|
+
break;
|
|
90
|
+
}
|
|
91
|
+
});
|
|
92
|
+
observableFromEvent(element, 'click')
|
|
93
|
+
.pipe(takeUntil(this.ngUnsubscribe))
|
|
94
|
+
.subscribe(() => {
|
|
95
|
+
if (this.skyPopover) {
|
|
96
|
+
this.togglePopover();
|
|
97
|
+
}
|
|
98
|
+
});
|
|
99
|
+
observableFromEvent(element, 'mouseenter')
|
|
100
|
+
.pipe(takeUntil(this.ngUnsubscribe))
|
|
101
|
+
.subscribe(() => {
|
|
102
|
+
if (this.skyPopover) {
|
|
103
|
+
this.skyPopover.isMouseEnter = true;
|
|
104
|
+
if (!this.skyPopover.isActive &&
|
|
105
|
+
this.skyPopoverTrigger === 'mouseenter') {
|
|
106
|
+
this.sendMessage(SkyPopoverMessageType.Open);
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
});
|
|
110
|
+
observableFromEvent(element, 'mouseleave')
|
|
111
|
+
.pipe(takeUntil(this.ngUnsubscribe))
|
|
112
|
+
.subscribe(() => {
|
|
113
|
+
if (this.skyPopover) {
|
|
114
|
+
this.skyPopover.isMouseEnter = false;
|
|
115
|
+
if (this.skyPopover.isActive &&
|
|
116
|
+
this.skyPopoverTrigger === 'mouseenter') {
|
|
117
|
+
// Give the popover a chance to set its isMouseEnter flag before checking to see
|
|
118
|
+
// if it should be closed.
|
|
119
|
+
setTimeout(() => {
|
|
120
|
+
this.closePopoverOrMarkForClose();
|
|
121
|
+
});
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
});
|
|
125
|
+
}
|
|
126
|
+
removeEventListeners() {
|
|
127
|
+
this.ngUnsubscribe.next();
|
|
128
|
+
this.ngUnsubscribe.complete();
|
|
129
|
+
this.ngUnsubscribe = undefined;
|
|
130
|
+
}
|
|
131
|
+
handleIncomingMessages(message) {
|
|
132
|
+
/* tslint:disable-next-line:switch-default */
|
|
133
|
+
switch (message.type) {
|
|
134
|
+
case SkyPopoverMessageType.Open:
|
|
135
|
+
this.positionPopover();
|
|
136
|
+
break;
|
|
137
|
+
case SkyPopoverMessageType.Close:
|
|
138
|
+
/*istanbul ignore else*/
|
|
139
|
+
if (this.skyPopover.isActive) {
|
|
140
|
+
this.closePopover();
|
|
141
|
+
}
|
|
142
|
+
break;
|
|
143
|
+
case SkyPopoverMessageType.Reposition:
|
|
144
|
+
// Only reposition the popover if it is already open.
|
|
145
|
+
if (this.skyPopover.isActive) {
|
|
146
|
+
this.positionPopover();
|
|
147
|
+
}
|
|
148
|
+
break;
|
|
149
|
+
case SkyPopoverMessageType.Focus:
|
|
150
|
+
this.skyPopover.applyFocus();
|
|
151
|
+
break;
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
sendMessage(messageType) {
|
|
155
|
+
this.skyPopoverMessageStream.next({ type: messageType });
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
SkyPopoverDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyPopoverDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
159
|
+
SkyPopoverDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.7", type: SkyPopoverDirective, selector: "[skyPopover]", inputs: { skyPopover: "skyPopover", skyPopoverAlignment: "skyPopoverAlignment", skyPopoverMessageStream: "skyPopoverMessageStream", skyPopoverPlacement: "skyPopoverPlacement", skyPopoverTrigger: "skyPopoverTrigger" }, ngImport: i0 });
|
|
160
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyPopoverDirective, decorators: [{
|
|
161
|
+
type: Directive,
|
|
162
|
+
args: [{
|
|
163
|
+
selector: '[skyPopover]',
|
|
164
|
+
}]
|
|
165
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { skyPopover: [{
|
|
166
|
+
type: Input
|
|
167
|
+
}], skyPopoverAlignment: [{
|
|
168
|
+
type: Input
|
|
169
|
+
}], skyPopoverMessageStream: [{
|
|
170
|
+
type: Input
|
|
171
|
+
}], skyPopoverPlacement: [{
|
|
172
|
+
type: Input
|
|
173
|
+
}], skyPopoverTrigger: [{
|
|
174
|
+
type: Input
|
|
175
|
+
}] } });
|
|
176
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wb3Zlci5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvcG9wb3ZlcnMvc3JjL2xpYi9tb2R1bGVzL3BvcG92ZXIvcG9wb3Zlci5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUVoRixPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsSUFBSSxtQkFBbUIsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNqRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFM0MsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFHMUQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sOEJBQThCLENBQUM7O0FBT3JFLE1BQU0sT0FBTyxtQkFBbUI7SUE4QzlCLFlBQW9CLFVBQXNCO1FBQXRCLGVBQVUsR0FBVixVQUFVLENBQVk7UUE5QjFDOztXQUVHO1FBRUksNEJBQXVCLEdBQUcsSUFBSSxPQUFPLEVBQXFCLENBQUM7UUFzQjFELGtCQUFhLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztJQUlDLENBQUM7SUFoQjlDOztPQUVHO0lBQ0gsSUFDVyxpQkFBaUIsQ0FBQyxLQUF3QjtRQUNuRCxJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztJQUN4QixDQUFDO0lBRUQsSUFBVyxpQkFBaUI7UUFDMUIsT0FBTyxJQUFJLENBQUMsUUFBUSxJQUFJLE9BQU8sQ0FBQztJQUNsQyxDQUFDO0lBUU0sUUFBUTtRQUNiLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFTSxXQUFXO1FBQ2hCLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO0lBQzlCLENBQUM7SUFFTSxhQUFhO1FBQ2xCLElBQUks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IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IFN1YmplY3QsIGZyb21FdmVudCBhcyBvYnNlcnZhYmxlRnJvbUV2ZW50IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IFNreVBvcG92ZXJDb21wb25lbnQgfSBmcm9tICcuL3BvcG92ZXIuY29tcG9uZW50JztcbmltcG9ydCB7IFNreVBvcG92ZXJBbGlnbm1lbnQgfSBmcm9tICcuL3R5cGVzL3BvcG92ZXItYWxpZ25tZW50JztcbmltcG9ydCB7IFNreVBvcG92ZXJNZXNzYWdlIH0gZnJvbSAnLi90eXBlcy9wb3BvdmVyLW1lc3NhZ2UnO1xuaW1wb3J0IHsgU2t5UG9wb3Zlck1lc3NhZ2VUeXBlIH0gZnJvbSAnLi90eXBlcy9wb3BvdmVyLW1lc3NhZ2UtdHlwZSc7XG5pbXBvcnQgeyBTa3lQb3BvdmVyUGxhY2VtZW50IH0gZnJvbSAnLi90eXBlcy9wb3BvdmVyLXBsYWNlbWVudCc7XG5pbXBvcnQgeyBTa3lQb3BvdmVyVHJpZ2dlciB9IGZyb20gJy4vdHlwZXMvcG9wb3Zlci10cmlnZ2VyJztcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW3NreVBvcG92ZXJdJyxcbn0pXG5leHBvcnQgY2xhc3MgU2t5UG9wb3ZlckRpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgLyoqXG4gICAqIFJlZmVyZW5jZXMgdGhlIHBvcG92ZXIgY29tcG9uZW50IHRvIGRpc3BsYXkuIEFkZCB0aGlzIGRpcmVjdGl2ZSB0byB0aGUgdHJpZ2dlciBlbGVtZW50IHRoYXQgb3BlbnMgdGhlIHBvcG92ZXIuXG4gICAqIEByZXF1aXJlZFxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNreVBvcG92ZXI6IFNreVBvcG92ZXJDb21wb25lbnQ7XG5cbiAgLyoqXG4gICAqIFNwZWNpZmllcyB0aGUgaG9yaXpvbnRhbCBhbGlnbm1lbnQgb2YgdGhlIHBvcG92ZXIgaW4gcmVsYXRpb24gdG8gdGhlIHRyaWdnZXIgZWxlbWVudC5cbiAgICogT3B0aW9ucyBpbmNsdWRlOmBcImNlbnRlclwiYCwgYFwicmlnaHRcImAsIGFuZCBgXCJsZWZ0XCJgLlxuICAgKiBAZGVmYXVsdCBcImNlbnRlclwiXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2t5UG9wb3ZlckFsaWdubWVudDogU2t5UG9wb3ZlckFsaWdubWVudDtcblxuICAvKipcbiAgICogUHJvdmlkZXMgYW4gb2JzZXJ2YWJsZSB0byBzZW5kIGNvbW1hbmRzIHRvIHRoZSBwb3BvdmVyIHRoYXQgcmVzcGVjdCB0aGUgYFNreVBvcG92ZXJNZXNzYWdlYCB0eXBlLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNreVBvcG92ZXJNZXNzYWdlU3RyZWFtID0gbmV3IFN1YmplY3Q8U2t5UG9wb3Zlck1lc3NhZ2U+KCk7XG5cbiAgLyoqXG4gICAqIFNwZWNpZmllcyB0aGUgcGxhY2VtZW50IG9mIHRoZSBwb3BvdmVyIGluIHJlbGF0aW9uIHRvIHRoZSB0cmlnZ2VyIGVsZW1lbnQuXG4gICAqIE9wdGlvbnMgaW5jbHVkZTpgXCJhYm92ZVwiYCwgYFwiYmVsb3dcImAsIGBcInJpZ2h0XCJgLCBhbmQgYFwibGVmdFwiYC5cbiAgICogQGRlZmF1bHQgXCJhYm92ZVwiXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2t5UG9wb3ZlclBsYWNlbWVudDogU2t5UG9wb3ZlclBsYWNlbWVudDtcblxuICAvKipcbiAgICogU3BlY2lmaWVzIHRoZSB1c2VyIGFjdGlvbiB0aGF0IGRpc3BsYXlzIHRoZSBwb3BvdmVyLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBza3lQb3BvdmVyVHJpZ2dlcih2YWx1ZTogU2t5UG9wb3ZlclRyaWdnZXIpIHtcbiAgICB0aGlzLl90cmlnZ2VyID0gdmFsdWU7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHNreVBvcG92ZXJUcmlnZ2VyKCk6IFNreVBvcG92ZXJUcmlnZ2VyIHtcbiAgICByZXR1cm4gdGhpcy5fdHJpZ2dlciB8fCAnY2xpY2snO1xuICB9XG5cbiAgcHJpdmF0ZSBuZ1Vuc3Vic2NyaWJlID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICBwcml2YXRlIF90cmlnZ2VyOiBTa3lQb3BvdmVyVHJpZ2dlcjtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYpIHt9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcnMoKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnJlbW92ZUV2ZW50TGlzdGVuZXJzKCk7XG4gIH1cblxuICBwdWJsaWMgdG9nZ2xlUG9wb3ZlcigpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5za3lQb3BvdmVyLmlzQWN0aXZlKSB7XG4gICAgICB0aGlzLnNlbmRNZXNzYWdlKFNreVBvcG92ZXJNZXNzYWdlVHlwZS5DbG9zZSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5zZW5kTWVzc2FnZShTa3lQb3BvdmVyTWVzc2FnZVR5cGUuT3Blbik7XG4gIH1cblxuICBwcml2YXRlIHBvc2l0aW9uUG9wb3ZlcigpOiB2b2lkIHtcbiAgICB0aGlzLnNreVBvcG92ZXIucG9zaXRpb25OZXh0VG8oXG4gICAgICB0aGlzLmVsZW1lbnRSZWYsXG4gICAgICB0aGlzLnNreVBvcG92ZXJQbGFjZW1lbnQsXG4gICAgICB0aGlzLnNreVBvcG92ZXJBbGlnbm1lbnRcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBjbG9zZVBvcG92ZXIoKTogdm9pZCB7XG4gICAgdGhpcy5za3lQb3BvdmVyLmNsb3NlKCk7XG4gIH1cblxuICBwcml2YXRlIGNsb3NlUG9wb3Zlck9yTWFya0ZvckNsb3NlKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnNreVBvcG92ZXIuaXNNb3VzZUVudGVyKSB7XG4gICAgICB0aGlzLnNreVBvcG92ZXIubWFya0ZvckNsb3NlT25Nb3VzZUxlYXZlKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2VuZE1lc3NhZ2UoU2t5UG9wb3Zlck1lc3NhZ2VUeXBlLkNsb3NlKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFkZEV2ZW50TGlzdGVuZXJzKCk6IHZvaWQge1xuICAgIGNvbnN0IGVsZW1lbnQgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcblxuICAgIHRoaXMuc2t5UG9wb3Zlck1lc3NhZ2VTdHJlYW1cbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUpKVxuICAgICAgLnN1YnNjcmliZSgobWVzc2FnZSkgPT4ge1xuICAgICAgICB0aGlzLmhhbmRsZUluY29taW5nTWVzc2FnZXMobWVzc2FnZSk7XG4gICAgICB9KTtcblxuICAgIG9ic2VydmFibGVGcm9tRXZlbnQoZWxlbWVudCwgJ2tleWRvd24nKVxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMubmdVbnN1YnNjcmliZSkpXG4gICAgICAuc3Vic2NyaWJlKChldmVudDogS2V5Ym9hcmRFdmVudCkgPT4ge1xuICAgICAgICBpZiAoIXRoaXMuc2t5UG9wb3Zlci5pc0FjdGl2ZSkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGtleSA9IGV2ZW50LmtleS50b0xvd2VyQ2FzZSgpO1xuXG4gICAgICAgIC8qIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpzd2l0Y2gtZGVmYXVsdCAqL1xuICAgICAgICBzd2l0Y2ggKGtleSkge1xuICAgICAgICAgIGNhc2UgJ2VzY2FwZSc6XG4gICAgICAgICAgICB0aGlzLnNlbmRNZXNzYWdlKFNreVBvcG92ZXJNZXNzYWdlVHlwZS5DbG9zZSk7XG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgIGNhc2UgJ3RhYic6XG4gICAgICAgICAgICBpZiAodGhpcy5za3lQb3BvdmVyLmRpc21pc3NPbkJsdXIpIHtcbiAgICAgICAgICAgICAgdGhpcy5zZW5kTWVzc2FnZShTa3lQb3BvdmVyTWVzc2FnZVR5cGUuQ2xvc2UpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICBjYXNlICdhcnJvd2Rvd24nOlxuICAgICAgICAgIGNhc2UgJ2Fycm93bGVmdCc6XG4gICAgICAgICAgY2FzZSAnYXJyb3dyaWdodCc6XG4gICAgICAgICAgY2FzZSAnYXJyb3d1cCc6XG4gICAgICAgICAgY2FzZSAnZG93bic6XG4gICAgICAgICAgY2FzZSAnbGVmdCc6XG4gICAgICAgICAgY2FzZSAncmlnaHQnOlxuICAgICAgICAgIGNhc2UgJ3VwJzpcbiAgICAgICAgICAgIHRoaXMuc2VuZE1lc3NhZ2UoU2t5UG9wb3Zlck1lc3NhZ2VUeXBlLkZvY3VzKTtcbiAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgIG9ic2VydmFibGVGcm9tRXZlbnQoZWxlbWVudCwgJ2NsaWNrJylcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUpKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIGlmICh0aGlzLnNreVBvcG92ZXIpIHtcbiAgICAgICAgICB0aGlzLnRvZ2dsZVBvcG92ZXIoKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICBvYnNlcnZhYmxlRnJvbUV2ZW50KGVsZW1lbnQsICdtb3VzZWVudGVyJylcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUpKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIGlmICh0aGlzLnNreVBvcG92ZXIpIHtcbiAgICAgICAgICB0aGlzLnNreVBvcG92ZXIuaXNNb3VzZUVudGVyID0gdHJ1ZTtcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAhdGhpcy5za3lQb3BvdmVyLmlzQWN0aXZlICYmXG4gICAgICAgICAgICB0aGlzLnNreVBvcG92ZXJUcmlnZ2VyID09PSAnbW91c2VlbnRlcidcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIHRoaXMuc2VuZE1lc3NhZ2UoU2t5UG9wb3Zlck1lc3NhZ2VUeXBlLk9wZW4pO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICBvYnNlcnZhYmxlRnJvbUV2ZW50KGVsZW1lbnQsICdtb3VzZWxlYXZlJylcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUpKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIGlmICh0aGlzLnNreVBvcG92ZXIpIHtcbiAgICAgICAgICB0aGlzLnNreVBvcG92ZXIuaXNNb3VzZUVudGVyID0gZmFsc2U7XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgdGhpcy5za3lQb3BvdmVyLmlzQWN0aXZlICYmXG4gICAgICAgICAgICB0aGlzLnNreVBvcG92ZXJUcmlnZ2VyID09PSAnbW91c2VlbnRlcidcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIC8vIEdpdmUgdGhlIHBvcG92ZXIgYSBjaGFuY2UgdG8gc2V0IGl0cyBpc01vdXNlRW50ZXIgZmxhZyBiZWZvcmUgY2hlY2tpbmcgdG8gc2VlXG4gICAgICAgICAgICAvLyBpZiBpdCBzaG91bGQgYmUgY2xvc2VkLlxuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgIHRoaXMuY2xvc2VQb3BvdmVyT3JNYXJrRm9yQ2xvc2UoKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHJlbW92ZUV2ZW50TGlzdGVuZXJzKCk6IHZvaWQge1xuICAgIHRoaXMubmdVbnN1YnNjcmliZS5uZXh0KCk7XG4gICAgdGhpcy5uZ1Vuc3Vic2NyaWJlLmNvbXBsZXRlKCk7XG4gICAgdGhpcy5uZ1Vuc3Vic2NyaWJlID0gdW5kZWZpbmVkO1xuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVJbmNvbWluZ01lc3NhZ2VzKG1lc3NhZ2U6IFNreVBvcG92ZXJNZXNzYWdlKTogdm9pZCB7XG4gICAgLyogdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOnN3aXRjaC1kZWZhdWx0ICovXG4gICAgc3dpdGNoIChtZXNzYWdlLnR5cGUpIHtcbiAgICAgIGNhc2UgU2t5UG9wb3Zlck1lc3NhZ2VUeXBlLk9wZW46XG4gICAgICAgIHRoaXMucG9zaXRpb25Qb3BvdmVyKCk7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlIFNreVBvcG92ZXJNZXNzYWdlVHlwZS5DbG9zZTpcbiAgICAgICAgLyppc3RhbmJ1bCBpZ25vcmUgZWxzZSovXG4gICAgICAgIGlmICh0aGlzLnNreVBvcG92ZXIuaXNBY3RpdmUpIHtcbiAgICAgICAgICB0aGlzLmNsb3NlUG9wb3ZlcigpO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlIFNreVBvcG92ZXJNZXNzYWdlVHlwZS5SZXBvc2l0aW9uOlxuICAgICAgICAvLyBPbmx5IHJlcG9zaXRpb24gdGhlIHBvcG92ZXIgaWYgaXQgaXMgYWxyZWFkeSBvcGVuLlxuICAgICAgICBpZiAodGhpcy5za3lQb3BvdmVyLmlzQWN0aXZlKSB7XG4gICAgICAgICAgdGhpcy5wb3NpdGlvblBvcG92ZXIoKTtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSBTa3lQb3BvdmVyTWVzc2FnZVR5cGUuRm9jdXM6XG4gICAgICAgIHRoaXMuc2t5UG9wb3Zlci5hcHBseUZvY3VzKCk7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2VuZE1lc3NhZ2UobWVzc2FnZVR5cGU6IFNreVBvcG92ZXJNZXNzYWdlVHlwZSk6IHZvaWQge1xuICAgIHRoaXMuc2t5UG9wb3Zlck1lc3NhZ2VTdHJlYW0ubmV4dCh7IHR5cGU6IG1lc3NhZ2VUeXBlIH0pO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { CommonModule } from '@angular/common';
|
|
2
|
+
import { NgModule } from '@angular/core';
|
|
3
|
+
import { SkyAffixModule, SkyOverlayModule } from '@skyux/core';
|
|
4
|
+
import { SkyIconModule } from '@skyux/indicators';
|
|
5
|
+
import { SkyThemeModule } from '@skyux/theme';
|
|
6
|
+
import { SkyPopoversResourcesModule } from '../shared/sky-popovers-resources.module';
|
|
7
|
+
import { SkyPopoverContentComponent } from './popover-content.component';
|
|
8
|
+
import { SkyPopoverComponent } from './popover.component';
|
|
9
|
+
import { SkyPopoverDirective } from './popover.directive';
|
|
10
|
+
import * as i0 from "@angular/core";
|
|
11
|
+
export class SkyPopoverModule {
|
|
12
|
+
}
|
|
13
|
+
SkyPopoverModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyPopoverModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
14
|
+
SkyPopoverModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyPopoverModule, declarations: [SkyPopoverComponent,
|
|
15
|
+
SkyPopoverContentComponent,
|
|
16
|
+
SkyPopoverDirective], imports: [CommonModule,
|
|
17
|
+
SkyAffixModule,
|
|
18
|
+
SkyIconModule,
|
|
19
|
+
SkyOverlayModule,
|
|
20
|
+
SkyPopoversResourcesModule,
|
|
21
|
+
SkyThemeModule], exports: [SkyPopoverComponent,
|
|
22
|
+
SkyPopoverContentComponent,
|
|
23
|
+
SkyPopoverDirective] });
|
|
24
|
+
SkyPopoverModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyPopoverModule, imports: [[
|
|
25
|
+
CommonModule,
|
|
26
|
+
SkyAffixModule,
|
|
27
|
+
SkyIconModule,
|
|
28
|
+
SkyOverlayModule,
|
|
29
|
+
SkyPopoversResourcesModule,
|
|
30
|
+
SkyThemeModule,
|
|
31
|
+
]] });
|
|
32
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyPopoverModule, decorators: [{
|
|
33
|
+
type: NgModule,
|
|
34
|
+
args: [{
|
|
35
|
+
declarations: [
|
|
36
|
+
SkyPopoverComponent,
|
|
37
|
+
SkyPopoverContentComponent,
|
|
38
|
+
SkyPopoverDirective,
|
|
39
|
+
],
|
|
40
|
+
imports: [
|
|
41
|
+
CommonModule,
|
|
42
|
+
SkyAffixModule,
|
|
43
|
+
SkyIconModule,
|
|
44
|
+
SkyOverlayModule,
|
|
45
|
+
SkyPopoversResourcesModule,
|
|
46
|
+
SkyThemeModule,
|
|
47
|
+
],
|
|
48
|
+
exports: [
|
|
49
|
+
SkyPopoverComponent,
|
|
50
|
+
SkyPopoverContentComponent,
|
|
51
|
+
SkyPopoverDirective,
|
|
52
|
+
],
|
|
53
|
+
}]
|
|
54
|
+
}] });
|
|
55
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wb3Zlci5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvcG9wb3ZlcnMvc3JjL2xpYi9tb2R1bGVzL3BvcG92ZXIvcG9wb3Zlci5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLGNBQWMsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUMvRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUU5QyxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUVyRixPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUN6RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7QUFzQjFELE1BQU0sT0FBTyxnQkFBZ0I7OzZHQUFoQixnQkFBZ0I7OEdBQWhCLGdCQUFnQixpQkFsQnpCLG1CQUFtQjtRQUNuQiwwQkFBMEI7UUFDMUIsbUJBQW1CLGFBR25CLFlBQVk7UUFDWixjQUFjO1FBQ2QsYUFBYTtRQUNiLGdCQUFnQjtRQUNoQiwwQkFBMEI7UUFDMUIsY0FBYyxhQUdkLG1CQUFtQjtRQUNuQiwwQkFBMEI7UUFDMUIsbUJBQW1COzhHQUdWLGdCQUFnQixZQWRsQjtZQUNQLFlBQVk7WUFDWixjQUFjO1lBQ2QsYUFBYTtZQUNiLGdCQUFnQjtZQUNoQiwwQkFBMEI7WUFDMUIsY0FBYztTQUNmOzJGQU9VLGdCQUFnQjtrQkFwQjVCLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFO3dCQUNaLG1CQUFtQjt3QkFDbkIsMEJBQTBCO3dCQUMxQixtQkFBbUI7cUJBQ3BCO29CQUNELE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUNaLGNBQWM7d0JBQ2QsYUFBYTt3QkFDYixnQkFBZ0I7d0JBQ2hCLDBCQUEwQjt3QkFDMUIsY0FBYztxQkFDZjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsbUJBQW1CO3dCQUNuQiwwQkFBMEI7d0JBQzFCLG1CQUFtQjtxQkFDcEI7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFNreUFmZml4TW9kdWxlLCBTa3lPdmVybGF5TW9kdWxlIH0gZnJvbSAnQHNreXV4L2NvcmUnO1xuaW1wb3J0IHsgU2t5SWNvbk1vZHVsZSB9IGZyb20gJ0Bza3l1eC9pbmRpY2F0b3JzJztcbmltcG9ydCB7IFNreVRoZW1lTW9kdWxlIH0gZnJvbSAnQHNreXV4L3RoZW1lJztcblxuaW1wb3J0IHsgU2t5UG9wb3ZlcnNSZXNvdXJjZXNNb2R1bGUgfSBmcm9tICcuLi9zaGFyZWQvc2t5LXBvcG92ZXJzLXJlc291cmNlcy5tb2R1bGUnO1xuXG5pbXBvcnQgeyBTa3lQb3BvdmVyQ29udGVudENvbXBvbmVudCB9IGZyb20gJy4vcG9wb3Zlci1jb250ZW50LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTa3lQb3BvdmVyQ29tcG9uZW50IH0gZnJvbSAnLi9wb3BvdmVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTa3lQb3BvdmVyRGlyZWN0aXZlIH0gZnJvbSAnLi9wb3BvdmVyLmRpcmVjdGl2ZSc7XG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW1xuICAgIFNreVBvcG92ZXJDb21wb25lbnQsXG4gICAgU2t5UG9wb3ZlckNvbnRlbnRDb21wb25lbnQsXG4gICAgU2t5UG9wb3ZlckRpcmVjdGl2ZSxcbiAgXSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBTa3lBZmZpeE1vZHVsZSxcbiAgICBTa3lJY29uTW9kdWxlLFxuICAgIFNreU92ZXJsYXlNb2R1bGUsXG4gICAgU2t5UG9wb3ZlcnNSZXNvdXJjZXNNb2R1bGUsXG4gICAgU2t5VGhlbWVNb2R1bGUsXG4gIF0sXG4gIGV4cG9ydHM6IFtcbiAgICBTa3lQb3BvdmVyQ29tcG9uZW50LFxuICAgIFNreVBvcG92ZXJDb250ZW50Q29tcG9uZW50LFxuICAgIFNreVBvcG92ZXJEaXJlY3RpdmUsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFNreVBvcG92ZXJNb2R1bGUge31cbiJdfQ==
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wb3Zlci1hZGFwdGVyLWFycm93LWNvb3JkaW5hdGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3BvcG92ZXJzL3NyYy9saWIvbW9kdWxlcy9wb3BvdmVyL3R5cGVzL3BvcG92ZXItYWRhcHRlci1hcnJvdy1jb29yZGluYXRlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTa3lQb3BvdmVyQWRhcHRlckFycm93Q29vcmRpbmF0ZXMge1xuICB0b3A6IG51bWJlcjtcbiAgbGVmdDogbnVtYmVyO1xufVxuIl19
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wb3Zlci1hZGFwdGVyLWVsZW1lbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3BvcG92ZXJzL3NyYy9saWIvbW9kdWxlcy9wb3BvdmVyL3R5cGVzL3BvcG92ZXItYWRhcHRlci1lbGVtZW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRWxlbWVudFJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNreVBvcG92ZXJBZGFwdGVyRWxlbWVudHMge1xuICBwb3BvdmVyOiBFbGVtZW50UmVmO1xuICBwb3BvdmVyQXJyb3c6IEVsZW1lbnRSZWY7XG4gIGNhbGxlcjogRWxlbWVudFJlZjtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wb3Zlci1hbGlnbm1lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvcG9wb3ZlcnMvc3JjL2xpYi9tb2R1bGVzL3BvcG92ZXIvdHlwZXMvcG9wb3Zlci1hbGlnbm1lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogUmVwcmVzZW50cyB0aGUgaG9yaXpvbnRhbCBhbGlnbm1lbnQgb2YgdGhlIHBvcG92ZXIgaW4gcmVsYXRpb24gdG8gdGhlIHRyaWdnZXIgZWxlbWVudC5cbiAqL1xuZXhwb3J0IHR5cGUgU2t5UG9wb3ZlckFsaWdubWVudCA9ICdsZWZ0JyB8ICdjZW50ZXInIHwgJ3JpZ2h0JztcbiJdfQ==
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Specifies the type of message to send to the popover component.
|
|
3
|
+
*/
|
|
4
|
+
export var SkyPopoverMessageType;
|
|
5
|
+
(function (SkyPopoverMessageType) {
|
|
6
|
+
/**
|
|
7
|
+
* Opens the popover.
|
|
8
|
+
*/
|
|
9
|
+
SkyPopoverMessageType[SkyPopoverMessageType["Open"] = 0] = "Open";
|
|
10
|
+
/**
|
|
11
|
+
* Closes the popover.
|
|
12
|
+
*/
|
|
13
|
+
SkyPopoverMessageType[SkyPopoverMessageType["Close"] = 1] = "Close";
|
|
14
|
+
/**
|
|
15
|
+
* Repositions the popover to the appropriate position.
|
|
16
|
+
* This is useful for when the popover's width and height change while it is open.
|
|
17
|
+
*/
|
|
18
|
+
SkyPopoverMessageType[SkyPopoverMessageType["Reposition"] = 2] = "Reposition";
|
|
19
|
+
/**
|
|
20
|
+
* Brings focus to the popover element.
|
|
21
|
+
*/
|
|
22
|
+
SkyPopoverMessageType[SkyPopoverMessageType["Focus"] = 3] = "Focus";
|
|
23
|
+
})(SkyPopoverMessageType || (SkyPopoverMessageType = {}));
|
|
24
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wb3Zlci1tZXNzYWdlLXR5cGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvcG9wb3ZlcnMvc3JjL2xpYi9tb2R1bGVzL3BvcG92ZXIvdHlwZXMvcG9wb3Zlci1tZXNzYWdlLXR5cGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFDSCxNQUFNLENBQU4sSUFBWSxxQkFxQlg7QUFyQkQsV0FBWSxxQkFBcUI7SUFDL0I7O09BRUc7SUFDSCxpRUFBUSxDQUFBO0lBRVI7O09BRUc7SUFDSCxtRUFBUyxDQUFBO0lBRVQ7OztPQUdHO0lBQ0gsNkVBQWMsQ0FBQTtJQUVkOztPQUVHO0lBQ0gsbUVBQVMsQ0FBQTtBQUNYLENBQUMsRUFyQlcscUJBQXFCLEtBQXJCLHFCQUFxQixRQXFCaEMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFNwZWNpZmllcyB0aGUgdHlwZSBvZiBtZXNzYWdlIHRvIHNlbmQgdG8gdGhlIHBvcG92ZXIgY29tcG9uZW50LlxuICovXG5leHBvcnQgZW51bSBTa3lQb3BvdmVyTWVzc2FnZVR5cGUge1xuICAvKipcbiAgICogT3BlbnMgdGhlIHBvcG92ZXIuXG4gICAqL1xuICBPcGVuID0gMCxcblxuICAvKipcbiAgICogQ2xvc2VzIHRoZSBwb3BvdmVyLlxuICAgKi9cbiAgQ2xvc2UgPSAxLFxuXG4gIC8qKlxuICAgKiBSZXBvc2l0aW9ucyB0aGUgcG9wb3ZlciB0byB0aGUgYXBwcm9wcmlhdGUgcG9zaXRpb24uXG4gICAqIFRoaXMgaXMgdXNlZnVsIGZvciB3aGVuIHRoZSBwb3BvdmVyJ3Mgd2lkdGggYW5kIGhlaWdodCBjaGFuZ2Ugd2hpbGUgaXQgaXMgb3Blbi5cbiAgICovXG4gIFJlcG9zaXRpb24gPSAyLFxuXG4gIC8qKlxuICAgKiBCcmluZ3MgZm9jdXMgdG8gdGhlIHBvcG92ZXIgZWxlbWVudC5cbiAgICovXG4gIEZvY3VzID0gMyxcbn1cbiJdfQ==
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wb3Zlci1tZXNzYWdlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3BvcG92ZXJzL3NyYy9saWIvbW9kdWxlcy9wb3BvdmVyL3R5cGVzL3BvcG92ZXItbWVzc2FnZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2t5UG9wb3Zlck1lc3NhZ2VUeXBlIH0gZnJvbSAnLi9wb3BvdmVyLW1lc3NhZ2UtdHlwZSc7XG5cbi8qKlxuICogU3BlY2lmaWVzIG1lc3NhZ2VzIHRvIGJlIHNlbnQgdG8gdGhlIHBvcG92ZXIgY29tcG9uZW50LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNreVBvcG92ZXJNZXNzYWdlIHtcbiAgLyoqXG4gICAqIFRoZSB0eXBlIG9mIG1lc3NhZ2UgdG8gc2VuZC5cbiAgICovXG4gIHR5cGU/OiBTa3lQb3BvdmVyTWVzc2FnZVR5cGU7XG59XG4iXX0=
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wb3Zlci1wbGFjZW1lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvcG9wb3ZlcnMvc3JjL2xpYi9tb2R1bGVzL3BvcG92ZXIvdHlwZXMvcG9wb3Zlci1wbGFjZW1lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogUmVwcmVzZW50cyB0aGUgcGxhY2VtZW50IG9mIHRoZSBwb3BvdmVyIGluIHJlbGF0aW9uIHRvIHRoZSB0cmlnZ2VyIGVsZW1lbnQuXG4gKi9cbmV4cG9ydCB0eXBlIFNreVBvcG92ZXJQbGFjZW1lbnQgPSAnYWJvdmUnIHwgJ2JlbG93JyB8ICdyaWdodCcgfCAnbGVmdCc7XG4iXX0=
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wb3Zlci1wb3NpdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9wb3BvdmVycy9zcmMvbGliL21vZHVsZXMvcG9wb3Zlci90eXBlcy9wb3BvdmVyLXBvc2l0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTa3lQb3BvdmVyQWxpZ25tZW50IH0gZnJvbSAnLi9wb3BvdmVyLWFsaWdubWVudCc7XG5pbXBvcnQgeyBTa3lQb3BvdmVyUGxhY2VtZW50IH0gZnJvbSAnLi9wb3BvdmVyLXBsYWNlbWVudCc7XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU2t5UG9wb3ZlclBvc2l0aW9uIHtcbiAgdG9wPzogbnVtYmVyO1xuICBsZWZ0PzogbnVtYmVyO1xuICBhcnJvd1RvcD86IG51bWJlcjtcbiAgYXJyb3dMZWZ0PzogbnVtYmVyO1xuICBwbGFjZW1lbnQ6IFNreVBvcG92ZXJQbGFjZW1lbnQ7XG4gIGFsaWdubWVudD86IFNreVBvcG92ZXJBbGlnbm1lbnQ7XG59XG4iXX0=
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wb3Zlci10cmlnZ2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3BvcG92ZXJzL3NyYy9saWIvbW9kdWxlcy9wb3BvdmVyL3R5cGVzL3BvcG92ZXItdHJpZ2dlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBTcGVjaWZpZXMgdGhlIHVzZXIgYWN0aW9uIHRoYXQgZGlzcGxheXMgdGhlIHBvcG92ZXIuXG4gKi9cbmV4cG9ydCB0eXBlIFNreVBvcG92ZXJUcmlnZ2VyID0gJ2NsaWNrJyB8ICdtb3VzZWVudGVyJztcbiJdfQ==
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* NOTICE: DO NOT MODIFY THIS FILE!
|
|
3
|
+
* The contents of this file were automatically generated by
|
|
4
|
+
* the 'ng generate @skyux/i18n:lib-resources-module lib/modules/shared/sky-popovers' schematic.
|
|
5
|
+
* To update this file, simply rerun the command.
|
|
6
|
+
*/
|
|
7
|
+
import { NgModule } from '@angular/core';
|
|
8
|
+
import { SKY_LIB_RESOURCES_PROVIDERS, SkyI18nModule, getLibStringForLocale, } from '@skyux/i18n';
|
|
9
|
+
import * as i0 from "@angular/core";
|
|
10
|
+
const RESOURCES = {
|
|
11
|
+
'EN-US': {
|
|
12
|
+
skyux_dropdown_context_menu_default_label: { message: 'Context menu' },
|
|
13
|
+
},
|
|
14
|
+
};
|
|
15
|
+
export class SkyPopoversResourcesProvider {
|
|
16
|
+
getString(localeInfo, name) {
|
|
17
|
+
return getLibStringForLocale(RESOURCES, localeInfo.locale, name);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Import into any component library module that needs to use resource strings.
|
|
22
|
+
*/
|
|
23
|
+
export class SkyPopoversResourcesModule {
|
|
24
|
+
}
|
|
25
|
+
SkyPopoversResourcesModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyPopoversResourcesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
26
|
+
SkyPopoversResourcesModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyPopoversResourcesModule, exports: [SkyI18nModule] });
|
|
27
|
+
SkyPopoversResourcesModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyPopoversResourcesModule, providers: [
|
|
28
|
+
{
|
|
29
|
+
provide: SKY_LIB_RESOURCES_PROVIDERS,
|
|
30
|
+
useClass: SkyPopoversResourcesProvider,
|
|
31
|
+
multi: true,
|
|
32
|
+
},
|
|
33
|
+
], imports: [SkyI18nModule] });
|
|
34
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyPopoversResourcesModule, decorators: [{
|
|
35
|
+
type: NgModule,
|
|
36
|
+
args: [{
|
|
37
|
+
exports: [SkyI18nModule],
|
|
38
|
+
providers: [
|
|
39
|
+
{
|
|
40
|
+
provide: SKY_LIB_RESOURCES_PROVIDERS,
|
|
41
|
+
useClass: SkyPopoversResourcesProvider,
|
|
42
|
+
multi: true,
|
|
43
|
+
},
|
|
44
|
+
],
|
|
45
|
+
}]
|
|
46
|
+
}] });
|
|
47
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2t5LXBvcG92ZXJzLXJlc291cmNlcy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvcG9wb3ZlcnMvc3JjL2xpYi9tb2R1bGVzL3NoYXJlZC9za3ktcG9wb3ZlcnMtcmVzb3VyY2VzLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7R0FLRztBQUNILE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUNMLDJCQUEyQixFQUUzQixhQUFhLEVBR2IscUJBQXFCLEdBQ3RCLE1BQU0sYUFBYSxDQUFDOztBQUVyQixNQUFNLFNBQVMsR0FBMEM7SUFDdkQsT0FBTyxFQUFFO1FBQ1AseUNBQXlDLEVBQUUsRUFBRSxPQUFPLEVBQUUsY0FBYyxFQUFFO0tBQ3ZFO0NBQ0YsQ0FBQztBQUVGLE1BQU0sT0FBTyw0QkFBNEI7SUFDaEMsU0FBUyxDQUNkLFVBQTRCLEVBQzVCLElBQVk7UUFFWixPQUFPLHFCQUFxQixDQUFDLFNBQVMsRUFBRSxVQUFVLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ25FLENBQUM7Q0FDRjtBQUVEOztHQUVHO0FBV0gsTUFBTSxPQUFPLDBCQUEwQjs7dUhBQTFCLDBCQUEwQjt3SEFBMUIsMEJBQTBCLFlBVDNCLGFBQWE7d0hBU1osMEJBQTBCLGFBUjFCO1FBQ1Q7WUFDRSxPQUFPLEVBQUUsMkJBQTJCO1lBQ3BDLFFBQVEsRUFBRSw0QkFBNEI7WUFDdEMsS0FBSyxFQUFFLElBQUk7U0FDWjtLQUNGLFlBUFMsYUFBYTsyRkFTWiwwQkFBMEI7a0JBVnRDLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFLENBQUMsYUFBYSxDQUFDO29CQUN4QixTQUFTLEVBQUU7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLDJCQUEyQjs0QkFDcEMsUUFBUSxFQUFFLDRCQUE0Qjs0QkFDdEMsS0FBSyxFQUFFLElBQUk7eUJBQ1o7cUJBQ0Y7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIE5PVElDRTogRE8gTk9UIE1PRElGWSBUSElTIEZJTEUhXG4gKiBUaGUgY29udGVudHMgb2YgdGhpcyBmaWxlIHdlcmUgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgYnlcbiAqIHRoZSAnbmcgZ2VuZXJhdGUgQHNreXV4L2kxOG46bGliLXJlc291cmNlcy1tb2R1bGUgbGliL21vZHVsZXMvc2hhcmVkL3NreS1wb3BvdmVycycgc2NoZW1hdGljLlxuICogVG8gdXBkYXRlIHRoaXMgZmlsZSwgc2ltcGx5IHJlcnVuIHRoZSBjb21tYW5kLlxuICovXG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgU0tZX0xJQl9SRVNPVVJDRVNfUFJPVklERVJTLFxuICBTa3lBcHBMb2NhbGVJbmZvLFxuICBTa3lJMThuTW9kdWxlLFxuICBTa3lMaWJSZXNvdXJjZXMsXG4gIFNreUxpYlJlc291cmNlc1Byb3ZpZGVyLFxuICBnZXRMaWJTdHJpbmdGb3JMb2NhbGUsXG59IGZyb20gJ0Bza3l1eC9pMThuJztcblxuY29uc3QgUkVTT1VSQ0VTOiB7IFtsb2NhbGU6IHN0cmluZ106IFNreUxpYlJlc291cmNlcyB9ID0ge1xuICAnRU4tVVMnOiB7XG4gICAgc2t5dXhfZHJvcGRvd25fY29udGV4dF9tZW51X2RlZmF1bHRfbGFiZWw6IHsgbWVzc2FnZTogJ0NvbnRleHQgbWVudScgfSxcbiAgfSxcbn07XG5cbmV4cG9ydCBjbGFzcyBTa3lQb3BvdmVyc1Jlc291cmNlc1Byb3ZpZGVyIGltcGxlbWVudHMgU2t5TGliUmVzb3VyY2VzUHJvdmlkZXIge1xuICBwdWJsaWMgZ2V0U3RyaW5nKFxuICAgIGxvY2FsZUluZm86IFNreUFwcExvY2FsZUluZm8sXG4gICAgbmFtZTogc3RyaW5nXG4gICk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIGdldExpYlN0cmluZ0ZvckxvY2FsZShSRVNPVVJDRVMsIGxvY2FsZUluZm8ubG9jYWxlLCBuYW1lKTtcbiAgfVxufVxuXG4vKipcbiAqIEltcG9ydCBpbnRvIGFueSBjb21wb25lbnQgbGlicmFyeSBtb2R1bGUgdGhhdCBuZWVkcyB0byB1c2UgcmVzb3VyY2Ugc3RyaW5ncy5cbiAqL1xuQE5nTW9kdWxlKHtcbiAgZXhwb3J0czogW1NreUkxOG5Nb2R1bGVdLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBTS1lfTElCX1JFU09VUkNFU19QUk9WSURFUlMsXG4gICAgICB1c2VDbGFzczogU2t5UG9wb3ZlcnNSZXNvdXJjZXNQcm92aWRlcixcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgIH0sXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFNreVBvcG92ZXJzUmVzb3VyY2VzTW9kdWxlIHt9XG4iXX0=
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated bundle index. Do not edit.
|
|
3
|
+
*/
|
|
4
|
+
export * from './index';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2t5dXgtcG9wb3ZlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvcG9wb3ZlcnMvc3JjL3NreXV4LXBvcG92ZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19
|