@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,133 @@
|
|
|
1
|
+
import { By } from '@angular/platform-browser';
|
|
2
|
+
import { SkyAppTestUtility } from '@skyux-sdk/testing';
|
|
3
|
+
/**
|
|
4
|
+
* Provides information for and interaction with a SKY UX dropdown component.
|
|
5
|
+
* By using the fixture API, a test insulates itself against updates to the internals
|
|
6
|
+
* of a component, such as changing its DOM structure.
|
|
7
|
+
*/
|
|
8
|
+
export class SkyDropdownFixture {
|
|
9
|
+
constructor(fixture, skyTestId) {
|
|
10
|
+
this.fixture = fixture;
|
|
11
|
+
this.debugEl = SkyAppTestUtility.getDebugElementByTestId(fixture, skyTestId, 'sky-dropdown');
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Returns information about the dropdown component.
|
|
15
|
+
*/
|
|
16
|
+
get dropdown() {
|
|
17
|
+
const button = this.buttonDebugElement;
|
|
18
|
+
if (!button) {
|
|
19
|
+
return;
|
|
20
|
+
}
|
|
21
|
+
return {
|
|
22
|
+
buttonStyle: this.getButtonStyle(button.classes),
|
|
23
|
+
buttonType: this.getButtonType(button.classes),
|
|
24
|
+
disabled: button.nativeElement.disabled,
|
|
25
|
+
label: button.nativeElement.getAttribute('aria-label'),
|
|
26
|
+
title: button.nativeElement.getAttribute('title'),
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Returns the dropdown button's text.
|
|
31
|
+
*/
|
|
32
|
+
get dropdownButtonText() {
|
|
33
|
+
return SkyAppTestUtility.getText(this.buttonDebugElement.nativeElement);
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Returns information about the dropdown menu component.
|
|
37
|
+
*/
|
|
38
|
+
get dropdownMenu() {
|
|
39
|
+
const menu = this.getDropdownMenuContent();
|
|
40
|
+
if (!menu) {
|
|
41
|
+
return;
|
|
42
|
+
}
|
|
43
|
+
return {
|
|
44
|
+
ariaLabelledBy: menu.getAttribute('aria-labelledby'),
|
|
45
|
+
ariaRole: menu.getAttribute('role'),
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Indicates if the dropdown menu is open and visible.
|
|
50
|
+
*/
|
|
51
|
+
get dropdownMenuIsVisible() {
|
|
52
|
+
return this.getDropdownMenuContent() !== undefined;
|
|
53
|
+
}
|
|
54
|
+
get buttonDebugElement() {
|
|
55
|
+
return this.debugEl.query(By.css('.sky-dropdown-button'));
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Click the dropdown button to open or close the dropdown menu.
|
|
59
|
+
*/
|
|
60
|
+
async clickDropdownButton() {
|
|
61
|
+
this.buttonDebugElement.nativeElement.click();
|
|
62
|
+
this.fixture.detectChanges();
|
|
63
|
+
return this.fixture.whenStable();
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Click the dropdown item at the provided index.
|
|
67
|
+
*/
|
|
68
|
+
async clickDropdownItem(index) {
|
|
69
|
+
const itemEls = this.getDropdownItemEls();
|
|
70
|
+
if (index >= itemEls.length) {
|
|
71
|
+
throw new Error(`There is no dropdown item at index ${index}.`);
|
|
72
|
+
}
|
|
73
|
+
itemEls[index].querySelector('button,a').click();
|
|
74
|
+
this.fixture.detectChanges();
|
|
75
|
+
return this.fixture.whenStable();
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Returns information about the dropdown item at the provided index.
|
|
79
|
+
*/
|
|
80
|
+
getDropdownItem(index) {
|
|
81
|
+
const itemEls = this.getDropdownItemEls();
|
|
82
|
+
if (index >= itemEls.length) {
|
|
83
|
+
throw new Error(`There is no dropdown item at index ${index}.`);
|
|
84
|
+
}
|
|
85
|
+
const item = itemEls[index];
|
|
86
|
+
if (!item) {
|
|
87
|
+
return;
|
|
88
|
+
}
|
|
89
|
+
return {
|
|
90
|
+
ariaRole: item.getAttribute('role'),
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Returns the contents of the dropdown menu.
|
|
95
|
+
*/
|
|
96
|
+
getDropdownMenuContent() {
|
|
97
|
+
const overlay = this.getOverlay();
|
|
98
|
+
if (!overlay) {
|
|
99
|
+
return;
|
|
100
|
+
}
|
|
101
|
+
return overlay.querySelector('.sky-dropdown-menu');
|
|
102
|
+
}
|
|
103
|
+
getDropdownItemEls() {
|
|
104
|
+
const overlay = this.getOverlay();
|
|
105
|
+
if (!overlay) {
|
|
106
|
+
return;
|
|
107
|
+
}
|
|
108
|
+
return overlay.querySelectorAll('.sky-dropdown-item');
|
|
109
|
+
}
|
|
110
|
+
getOverlay() {
|
|
111
|
+
return document.querySelector('sky-overlay');
|
|
112
|
+
}
|
|
113
|
+
getButtonStyle(classNames) {
|
|
114
|
+
if (classNames['sky-btn-primary']) {
|
|
115
|
+
return 'primary';
|
|
116
|
+
}
|
|
117
|
+
if (classNames['sky-btn-default']) {
|
|
118
|
+
return 'default';
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
getButtonType(classNames) {
|
|
122
|
+
const prefix = 'sky-dropdown-button-type-';
|
|
123
|
+
for (let i in classNames) {
|
|
124
|
+
if (classNames[i]) {
|
|
125
|
+
if (i.indexOf(prefix) > -1) {
|
|
126
|
+
return i.replace(prefix, '');
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
return undefined;
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24tZml4dHVyZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9wb3BvdmVycy90ZXN0aW5nL3NyYy9kcm9wZG93bi9kcm9wZG93bi1maXh0dXJlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQU12RDs7OztHQUlHO0FBQ0gsTUFBTSxPQUFPLGtCQUFrQjtJQXVEN0IsWUFBb0IsT0FBOEIsRUFBRSxTQUFpQjtRQUFqRCxZQUFPLEdBQVAsT0FBTyxDQUF1QjtRQUNoRCxJQUFJLENBQUMsT0FBTyxHQUFHLGlCQUFpQixDQUFDLHVCQUF1QixDQUN0RCxPQUFPLEVBQ1AsU0FBUyxFQUNULGNBQWMsQ0FDZixDQUFDO0lBQ0osQ0FBQztJQTVERDs7T0FFRztJQUNILElBQVcsUUFBUTtRQUNqQixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUM7UUFFdkMsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNYLE9BQU87U0FDUjtRQUVELE9BQU87WUFDTCxXQUFXLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDO1lBQ2hELFVBQVUsRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUM7WUFDOUMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxhQUFhLENBQUMsUUFBUTtZQUN2QyxLQUFLLEVBQUUsTUFBTSxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDO1lBQ3RELEtBQUssRUFBRSxNQUFNLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUM7U0FDbEQsQ0FBQztJQUNKLENBQUM7SUFFRDs7T0FFRztJQUNILElBQVcsa0JBQWtCO1FBQzNCLE9BQU8saUJBQWlCLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUMxRSxDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFXLFlBQVk7UUFDckIsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUM7UUFDM0MsSUFBSSxDQUFDLElBQUksRUFBRTtZQUNULE9BQU87U0FDUjtRQUVELE9BQU87WUFDTCxjQUFjLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxpQkFBaUIsQ0FBQztZQUNwRCxRQUFRLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUM7U0FDcEMsQ0FBQztJQUNKLENBQUM7SUFFRDs7T0FFRztJQUNILElBQVcscUJBQXFCO1FBQzlCLE9BQU8sSUFBSSxDQUFDLHNCQUFzQixFQUFFLEtBQUssU0FBUyxDQUFDO0lBQ3JELENBQUM7SUFFRCxJQUFZLGtCQUFrQjtRQUM1QixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsc0JBQXNCLENBQUMsQ0FBQyxDQUFDO0lBQzVELENBQUM7SUFZRDs7T0FFRztJQUNJLEtBQUssQ0FBQyxtQkFBbUI7UUFDOUIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUM5QyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQzdCLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUNuQyxDQUFDO0lBRUQ7O09BRUc7SUFDSSxLQUFLLENBQUMsaUJBQWlCLENBQUMsS0FBYTtRQUMxQyxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztRQUMxQyxJQUFJLEtBQUssSUFBSSxPQUFPLENBQUMsTUFBTSxFQUFFO1lBQzNCLE1BQU0sSUFBSSxLQUFLLENBQUMsc0NBQXNDLEtBQUssR0FBRyxDQUFDLENBQUM7U0FDakU7UUFFRCxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBRWpELElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDN0IsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQ25DLENBQUM7SUFFRDs7T0FFRztJQUNJLGVBQWUsQ0FBQyxLQUFhO1FBQ2xDLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1FBQzFDLElBQUksS0FBSyxJQUFJLE9BQU8sQ0FBQyxNQUFNLEVBQUU7WUFDM0IsTUFBTSxJQUFJLEtBQUssQ0FBQyxzQ0FBc0MsS0FBSyxHQUFHLENBQUMsQ0FBQztTQUNqRTtRQUVELE1BQU0sSUFBSSxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM1QixJQUFJLENBQUMsSUFBSSxFQUFFO1lBQ1QsT0FBTztTQUNSO1FBRUQsT0FBTztZQUNMLFFBQVEsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQztTQUNwQyxDQUFDO0lBQ0osQ0FBQztJQUVEOztPQUVHO0lBQ0ksc0JBQXNCO1FBQzNCLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUNsQyxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ1osT0FBTztTQUNSO1FBRUQsT0FBTyxPQUFPLENBQUMsYUFBYSxDQUFDLG9CQUFvQixDQUFDLENBQUM7SUFDckQsQ0FBQztJQUVPLGtCQUFrQjtRQUN4QixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFFbEMsSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUNaLE9BQU87U0FDUjtRQUVELE9BQU8sT0FBTyxDQUFDLGdCQUFnQixDQUFDLG9CQUFvQixDQUFDLENBQUM7SUFDeEQsQ0FBQztJQUVPLFVBQVU7UUFDaEIsT0FBTyxRQUFRLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFFTyxjQUFjLENBQUMsVUFBc0M7UUFDM0QsSUFBSSxVQUFVLENBQUMsaUJBQWlCLENBQUMsRUFBRTtZQUNqQyxPQUFPLFNBQVMsQ0FBQztTQUNsQjtRQUNELElBQUksVUFBVSxDQUFDLGlCQUFpQixDQUFDLEVBQUU7WUFDakMsT0FBTyxTQUFTLENBQUM7U0FDbEI7SUFDSCxDQUFDO0lBRU8sYUFBYSxDQUFDLFVBQXNDO1FBQzFELE1BQU0sTUFBTSxHQUFHLDJCQUEyQixDQUFDO1FBRTNDLEtBQUssSUFBSSxDQUFDLElBQUksVUFBVSxFQUFFO1lBQ3hCLElBQUksVUFBVSxDQUFDLENBQUMsQ0FBQyxFQUFFO2dCQUNqQixJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUU7b0JBQzFCLE9BQU8sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUM7aUJBQzlCO2FBQ0Y7U0FDRjtRQUVELE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERlYnVnRWxlbWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tcG9uZW50Rml4dHVyZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvdGVzdGluZyc7XG5pbXBvcnQgeyBCeSB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuaW1wb3J0IHsgU2t5QXBwVGVzdFV0aWxpdHkgfSBmcm9tICdAc2t5dXgtc2RrL3Rlc3RpbmcnO1xuXG5pbXBvcnQgeyBTa3lQb3BvdmVyc0ZpeHR1cmVEcm9wZG93biB9IGZyb20gJy4vcG9wb3ZlcnMtZml4dHVyZS1kcm9wZG93bic7XG5pbXBvcnQgeyBTa3lQb3BvdmVyc0ZpeHR1cmVEcm9wZG93bkl0ZW0gfSBmcm9tICcuL3BvcG92ZXJzLWZpeHR1cmUtZHJvcGRvd24taXRlbSc7XG5pbXBvcnQgeyBTa3lQb3BvdmVyc0ZpeHR1cmVEcm9wZG93bk1lbnUgfSBmcm9tICcuL3BvcG92ZXJzLWZpeHR1cmUtZHJvcGRvd24tbWVudSc7XG5cbi8qKlxuICogUHJvdmlkZXMgaW5mb3JtYXRpb24gZm9yIGFuZCBpbnRlcmFjdGlvbiB3aXRoIGEgU0tZIFVYIGRyb3Bkb3duIGNvbXBvbmVudC5cbiAqIEJ5IHVzaW5nIHRoZSBmaXh0dXJlIEFQSSwgYSB0ZXN0IGluc3VsYXRlcyBpdHNlbGYgYWdhaW5zdCB1cGRhdGVzIHRvIHRoZSBpbnRlcm5hbHNcbiAqIG9mIGEgY29tcG9uZW50LCBzdWNoIGFzIGNoYW5naW5nIGl0cyBET00gc3RydWN0dXJlLlxuICovXG5leHBvcnQgY2xhc3MgU2t5RHJvcGRvd25GaXh0dXJlIHtcbiAgLyoqXG4gICAqIFJldHVybnMgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGRyb3Bkb3duIGNvbXBvbmVudC5cbiAgICovXG4gIHB1YmxpYyBnZXQgZHJvcGRvd24oKTogU2t5UG9wb3ZlcnNGaXh0dXJlRHJvcGRvd24ge1xuICAgIGNvbnN0IGJ1dHRvbiA9IHRoaXMuYnV0dG9uRGVidWdFbGVtZW50O1xuXG4gICAgaWYgKCFidXR0b24pIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgYnV0dG9uU3R5bGU6IHRoaXMuZ2V0QnV0dG9uU3R5bGUoYnV0dG9uLmNsYXNzZXMpLFxuICAgICAgYnV0dG9uVHlwZTogdGhpcy5nZXRCdXR0b25UeXBlKGJ1dHRvbi5jbGFzc2VzKSxcbiAgICAgIGRpc2FibGVkOiBidXR0b24ubmF0aXZlRWxlbWVudC5kaXNhYmxlZCxcbiAgICAgIGxhYmVsOiBidXR0b24ubmF0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoJ2FyaWEtbGFiZWwnKSxcbiAgICAgIHRpdGxlOiBidXR0b24ubmF0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoJ3RpdGxlJyksXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBkcm9wZG93biBidXR0b24ncyB0ZXh0LlxuICAgKi9cbiAgcHVibGljIGdldCBkcm9wZG93bkJ1dHRvblRleHQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gU2t5QXBwVGVzdFV0aWxpdHkuZ2V0VGV4dCh0aGlzLmJ1dHRvbkRlYnVnRWxlbWVudC5uYXRpdmVFbGVtZW50KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGluZm9ybWF0aW9uIGFib3V0IHRoZSBkcm9wZG93biBtZW51IGNvbXBvbmVudC5cbiAgICovXG4gIHB1YmxpYyBnZXQgZHJvcGRvd25NZW51KCk6IFNreVBvcG92ZXJzRml4dHVyZURyb3Bkb3duTWVudSB7XG4gICAgY29uc3QgbWVudSA9IHRoaXMuZ2V0RHJvcGRvd25NZW51Q29udGVudCgpO1xuICAgIGlmICghbWVudSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBhcmlhTGFiZWxsZWRCeTogbWVudS5nZXRBdHRyaWJ1dGUoJ2FyaWEtbGFiZWxsZWRieScpLFxuICAgICAgYXJpYVJvbGU6IG1lbnUuZ2V0QXR0cmlidXRlKCdyb2xlJyksXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgaWYgdGhlIGRyb3Bkb3duIG1lbnUgaXMgb3BlbiBhbmQgdmlzaWJsZS5cbiAgICovXG4gIHB1YmxpYyBnZXQgZHJvcGRvd25NZW51SXNWaXNpYmxlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmdldERyb3Bkb3duTWVudUNvbnRlbnQoKSAhPT0gdW5kZWZpbmVkO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXQgYnV0dG9uRGVidWdFbGVtZW50KCk6IERlYnVnRWxlbWVudCB7XG4gICAgcmV0dXJuIHRoaXMuZGVidWdFbC5xdWVyeShCeS5jc3MoJy5za3ktZHJvcGRvd24tYnV0dG9uJykpO1xuICB9XG5cbiAgcHJpdmF0ZSBkZWJ1Z0VsOiBEZWJ1Z0VsZW1lbnQ7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBmaXh0dXJlOiBDb21wb25lbnRGaXh0dXJlPGFueT4sIHNreVRlc3RJZDogc3RyaW5nKSB7XG4gICAgdGhpcy5kZWJ1Z0VsID0gU2t5QXBwVGVzdFV0aWxpdHkuZ2V0RGVidWdFbGVtZW50QnlUZXN0SWQoXG4gICAgICBmaXh0dXJlLFxuICAgICAgc2t5VGVzdElkLFxuICAgICAgJ3NreS1kcm9wZG93bidcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIENsaWNrIHRoZSBkcm9wZG93biBidXR0b24gdG8gb3BlbiBvciBjbG9zZSB0aGUgZHJvcGRvd24gbWVudS5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBjbGlja0Ryb3Bkb3duQnV0dG9uKCk6IFByb21pc2U8YW55PiB7XG4gICAgdGhpcy5idXR0b25EZWJ1Z0VsZW1lbnQubmF0aXZlRWxlbWVudC5jbGljaygpO1xuICAgIHRoaXMuZml4dHVyZS5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgcmV0dXJuIHRoaXMuZml4dHVyZS53aGVuU3RhYmxlKCk7XG4gIH1cblxuICAvKipcbiAgICogQ2xpY2sgdGhlIGRyb3Bkb3duIGl0ZW0gYXQgdGhlIHByb3ZpZGVkIGluZGV4LlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGNsaWNrRHJvcGRvd25JdGVtKGluZGV4OiBudW1iZXIpOiBQcm9taXNlPGFueT4ge1xuICAgIGNvbnN0IGl0ZW1FbHMgPSB0aGlzLmdldERyb3Bkb3duSXRlbUVscygpO1xuICAgIGlmIChpbmRleCA+PSBpdGVtRWxzLmxlbmd0aCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBUaGVyZSBpcyBubyBkcm9wZG93biBpdGVtIGF0IGluZGV4ICR7aW5kZXh9LmApO1xuICAgIH1cblxuICAgIGl0ZW1FbHNbaW5kZXhdLnF1ZXJ5U2VsZWN0b3IoJ2J1dHRvbixhJykuY2xpY2soKTtcblxuICAgIHRoaXMuZml4dHVyZS5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgcmV0dXJuIHRoaXMuZml4dHVyZS53aGVuU3RhYmxlKCk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBpbmZvcm1hdGlvbiBhYm91dCB0aGUgZHJvcGRvd24gaXRlbSBhdCB0aGUgcHJvdmlkZWQgaW5kZXguXG4gICAqL1xuICBwdWJsaWMgZ2V0RHJvcGRvd25JdGVtKGluZGV4OiBudW1iZXIpOiBTa3lQb3BvdmVyc0ZpeHR1cmVEcm9wZG93bkl0ZW0ge1xuICAgIGNvbnN0IGl0ZW1FbHMgPSB0aGlzLmdldERyb3Bkb3duSXRlbUVscygpO1xuICAgIGlmIChpbmRleCA+PSBpdGVtRWxzLmxlbmd0aCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBUaGVyZSBpcyBubyBkcm9wZG93biBpdGVtIGF0IGluZGV4ICR7aW5kZXh9LmApO1xuICAgIH1cblxuICAgIGNvbnN0IGl0ZW0gPSBpdGVtRWxzW2luZGV4XTtcbiAgICBpZiAoIWl0ZW0pIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgYXJpYVJvbGU6IGl0ZW0uZ2V0QXR0cmlidXRlKCdyb2xlJyksXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBjb250ZW50cyBvZiB0aGUgZHJvcGRvd24gbWVudS5cbiAgICovXG4gIHB1YmxpYyBnZXREcm9wZG93bk1lbnVDb250ZW50KCk6IGFueSB7XG4gICAgY29uc3Qgb3ZlcmxheSA9IHRoaXMuZ2V0T3ZlcmxheSgpO1xuICAgIGlmICghb3ZlcmxheSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHJldHVybiBvdmVybGF5LnF1ZXJ5U2VsZWN0b3IoJy5za3ktZHJvcGRvd24tbWVudScpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXREcm9wZG93bkl0ZW1FbHMoKTogTm9kZUxpc3RPZjxhbnk+IHtcbiAgICBjb25zdCBvdmVybGF5ID0gdGhpcy5nZXRPdmVybGF5KCk7XG5cbiAgICBpZiAoIW92ZXJsYXkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICByZXR1cm4gb3ZlcmxheS5xdWVyeVNlbGVjdG9yQWxsKCcuc2t5LWRyb3Bkb3duLWl0ZW0nKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0T3ZlcmxheSgpOiBIVE1MRWxlbWVudCB7XG4gICAgcmV0dXJuIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ3NreS1vdmVybGF5Jyk7XG4gIH1cblxuICBwcml2YXRlIGdldEJ1dHRvblN0eWxlKGNsYXNzTmFtZXM6IHsgW2tleTogc3RyaW5nXTogYm9vbGVhbiB9KTogc3RyaW5nIHtcbiAgICBpZiAoY2xhc3NOYW1lc1snc2t5LWJ0bi1wcmltYXJ5J10pIHtcbiAgICAgIHJldHVybiAncHJpbWFyeSc7XG4gICAgfVxuICAgIGlmIChjbGFzc05hbWVzWydza3ktYnRuLWRlZmF1bHQnXSkge1xuICAgICAgcmV0dXJuICdkZWZhdWx0JztcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGdldEJ1dHRvblR5cGUoY2xhc3NOYW1lczogeyBba2V5OiBzdHJpbmddOiBib29sZWFuIH0pOiBzdHJpbmcge1xuICAgIGNvbnN0IHByZWZpeCA9ICdza3ktZHJvcGRvd24tYnV0dG9uLXR5cGUtJztcblxuICAgIGZvciAobGV0IGkgaW4gY2xhc3NOYW1lcykge1xuICAgICAgaWYgKGNsYXNzTmFtZXNbaV0pIHtcbiAgICAgICAgaWYgKGkuaW5kZXhPZihwcmVmaXgpID4gLTEpIHtcbiAgICAgICAgICByZXR1cm4gaS5yZXBsYWNlKHByZWZpeCwgJycpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { NgModule } from '@angular/core';
|
|
2
|
+
import { SkyDropdownModule } from '@skyux/popovers';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export class SkyDropdownTestingModule {
|
|
5
|
+
}
|
|
6
|
+
SkyDropdownTestingModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyDropdownTestingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
7
|
+
SkyDropdownTestingModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyDropdownTestingModule, exports: [SkyDropdownModule] });
|
|
8
|
+
SkyDropdownTestingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyDropdownTestingModule, imports: [SkyDropdownModule] });
|
|
9
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyDropdownTestingModule, decorators: [{
|
|
10
|
+
type: NgModule,
|
|
11
|
+
args: [{
|
|
12
|
+
exports: [SkyDropdownModule],
|
|
13
|
+
}]
|
|
14
|
+
}] });
|
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24tdGVzdGluZy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvcG9wb3ZlcnMvdGVzdGluZy9zcmMvZHJvcGRvd24vZHJvcGRvd24tdGVzdGluZy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7QUFLcEQsTUFBTSxPQUFPLHdCQUF3Qjs7cUhBQXhCLHdCQUF3QjtzSEFBeEIsd0JBQXdCLFlBRnpCLGlCQUFpQjtzSEFFaEIsd0JBQXdCLFlBRnpCLGlCQUFpQjsyRkFFaEIsd0JBQXdCO2tCQUhwQyxRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRSxDQUFDLGlCQUFpQixDQUFDO2lCQUM3QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTa3lEcm9wZG93bk1vZHVsZSB9IGZyb20gJ0Bza3l1eC9wb3BvdmVycyc7XG5cbkBOZ01vZHVsZSh7XG4gIGV4cG9ydHM6IFtTa3lEcm9wZG93bk1vZHVsZV0sXG59KVxuZXhwb3J0IGNsYXNzIFNreURyb3Bkb3duVGVzdGluZ01vZHVsZSB7fVxuIl19
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wb3ZlcnMtZml4dHVyZS1kcm9wZG93bi1pdGVtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3BvcG92ZXJzL3Rlc3Rpbmcvc3JjL2Ryb3Bkb3duL3BvcG92ZXJzLWZpeHR1cmUtZHJvcGRvd24taXRlbS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBTa3lQb3BvdmVyc0ZpeHR1cmVEcm9wZG93bkl0ZW0ge1xuICBhcmlhUm9sZTogc3RyaW5nO1xufVxuIl19
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wb3ZlcnMtZml4dHVyZS1kcm9wZG93bi1tZW51LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3BvcG92ZXJzL3Rlc3Rpbmcvc3JjL2Ryb3Bkb3duL3BvcG92ZXJzLWZpeHR1cmUtZHJvcGRvd24tbWVudS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBTa3lQb3BvdmVyc0ZpeHR1cmVEcm9wZG93bk1lbnUge1xuICBhcmlhTGFiZWxsZWRCeTogc3RyaW5nO1xuICBhcmlhUm9sZTogc3RyaW5nO1xufVxuIl19
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wb3ZlcnMtZml4dHVyZS1kcm9wZG93bi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9wb3BvdmVycy90ZXN0aW5nL3NyYy9kcm9wZG93bi9wb3BvdmVycy1maXh0dXJlLWRyb3Bkb3duLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIFNreVBvcG92ZXJzRml4dHVyZURyb3Bkb3duIHtcbiAgYnV0dG9uU3R5bGU6IHN0cmluZztcbiAgYnV0dG9uVHlwZTogc3RyaW5nO1xuICBkaXNhYmxlZDogYm9vbGVhbjtcbiAgbGFiZWw6IHN0cmluZztcbiAgdGl0bGU6IHN0cmluZztcbn1cbiJdfQ==
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import { SkyAppTestUtility } from '@skyux-sdk/testing';
|
|
2
|
+
/**
|
|
3
|
+
* Provides information for and interaction with a SKY UX popover component.
|
|
4
|
+
* By using the fixture API, a test insulates itself against updates to the internals
|
|
5
|
+
* of a component, such as changing its DOM structure.
|
|
6
|
+
*/
|
|
7
|
+
export class SkyPopoverFixture {
|
|
8
|
+
constructor(fixture) {
|
|
9
|
+
this.fixture = fixture;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Returns the popover alignment if the popover is open, otherwise undefined.
|
|
13
|
+
*/
|
|
14
|
+
get alignment() {
|
|
15
|
+
return this.getClassSuffixByClassPrefix(this.containerElement, 'sky-popover-alignment-');
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Returns the popover body element if the popover is open, otherwise undefined.
|
|
19
|
+
*/
|
|
20
|
+
get body() {
|
|
21
|
+
return this.bodyElement;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Returns the popover position if the popover is open, otherwise undefined.
|
|
25
|
+
*/
|
|
26
|
+
get placement() {
|
|
27
|
+
return this.getClassSuffixByClassPrefix(this.containerElement, 'sky-popover-placement-');
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Returns the popover title text if the popover is open, otherwise undefined.
|
|
31
|
+
*/
|
|
32
|
+
get popoverTitle() {
|
|
33
|
+
return SkyAppTestUtility.getText(this.titleElement);
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Indicates if the popover is open and visible.
|
|
37
|
+
*/
|
|
38
|
+
get popoverIsVisible() {
|
|
39
|
+
return this.contentElement !== undefined;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Triggers the blur event for the popover.
|
|
43
|
+
*/
|
|
44
|
+
blur() {
|
|
45
|
+
// close the popover by changing focus to the body element
|
|
46
|
+
SkyAppTestUtility.fireDomEvent(window.document.body, 'click');
|
|
47
|
+
this.fixture.detectChanges();
|
|
48
|
+
return this.fixture.whenStable();
|
|
49
|
+
}
|
|
50
|
+
//#region helpers
|
|
51
|
+
get contentElement() {
|
|
52
|
+
return this.queryOverlay('sky-popover-content');
|
|
53
|
+
}
|
|
54
|
+
get containerElement() {
|
|
55
|
+
return this.queryOverlay('.sky-popover-container');
|
|
56
|
+
}
|
|
57
|
+
get titleElement() {
|
|
58
|
+
return this.queryOverlay('.sky-popover-title');
|
|
59
|
+
}
|
|
60
|
+
get bodyElement() {
|
|
61
|
+
return this.queryOverlay('.sky-popover-body');
|
|
62
|
+
}
|
|
63
|
+
getOverlay() {
|
|
64
|
+
return document.querySelector('sky-overlay');
|
|
65
|
+
}
|
|
66
|
+
queryOverlay(query) {
|
|
67
|
+
const overlay = this.getOverlay();
|
|
68
|
+
return !overlay ? undefined : overlay.querySelector(query);
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Searches the element's class names for a class which matches a given prefix.
|
|
72
|
+
* If a match is found, the prefix is trimmed from the class name and the suffix is returned.
|
|
73
|
+
* If no class matching the prefix is found, undefined is returned.
|
|
74
|
+
*
|
|
75
|
+
* Example:
|
|
76
|
+
* For a class 'sky-popover-placement-right', passing the prefix 'sky-popover-placement-'
|
|
77
|
+
* should return the value 'right'.
|
|
78
|
+
* @param prefix
|
|
79
|
+
*/
|
|
80
|
+
getClassSuffixByClassPrefix(element, prefix) {
|
|
81
|
+
let containerClasses = element?.className.split(' ');
|
|
82
|
+
let prefixedClass = containerClasses?.find((x) => x.startsWith(prefix));
|
|
83
|
+
return !prefixedClass ? undefined : prefixedClass.slice(prefix.length);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wb3Zlci1maXh0dXJlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3BvcG92ZXJzL3Rlc3Rpbmcvc3JjL3BvcG92ZXIvcG9wb3Zlci1maXh0dXJlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRXZEOzs7O0dBSUc7QUFDSCxNQUFNLE9BQU8saUJBQWlCO0lBMEM1QixZQUFvQixPQUE4QjtRQUE5QixZQUFPLEdBQVAsT0FBTyxDQUF1QjtJQUFHLENBQUM7SUF6Q3REOztPQUVHO0lBQ0gsSUFBVyxTQUFTO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLDJCQUEyQixDQUNyQyxJQUFJLENBQUMsZ0JBQWdCLEVBQ3JCLHdCQUF3QixDQUN6QixDQUFDO0lBQ0osQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBVyxJQUFJO1FBQ2IsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQzFCLENBQUM7SUFFRDs7T0FFRztJQUNILElBQVcsU0FBUztRQUNsQixPQUFPLElBQUksQ0FBQywyQkFBMkIsQ0FDckMsSUFBSSxDQUFDLGdCQUFnQixFQUNyQix3QkFBd0IsQ0FDekIsQ0FBQztJQUNKLENBQUM7SUFFRDs7T0FFRztJQUNILElBQVcsWUFBWTtRQUNyQixPQUFPLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBVyxnQkFBZ0I7UUFDekIsT0FBTyxJQUFJLENBQUMsY0FBYyxLQUFLLFNBQVMsQ0FBQztJQUMzQyxDQUFDO0lBSUQ7O09BRUc7SUFDSSxJQUFJO1FBQ1QsMERBQTBEO1FBQzFELGlCQUFpQixDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQztRQUU5RCxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQzdCLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUNuQyxDQUFDO0lBRUQsaUJBQWlCO0lBQ2pCLElBQVksY0FBYztRQUN4QixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMscUJBQXFCLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBRUQsSUFBWSxnQkFBZ0I7UUFDMUIsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLHdCQUF3QixDQUFDLENBQUM7SUFDckQsQ0FBQztJQUVELElBQVksWUFBWTtRQUN0QixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsb0JBQW9CLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRUQsSUFBWSxXQUFXO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFFTyxVQUFVO1FBQ2hCLE9BQU8sUUFBUSxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRU8sWUFBWSxDQUFDLEtBQWE7UUFDaEMsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBRWxDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBRUQ7Ozs7Ozs7OztPQVNHO0lBQ0ssMkJBQTJCLENBQ2pDLE9BQW9CLEVBQ3BCLE1BQWM7UUFFZCxJQUFJLGdCQUFnQixHQUFHLE9BQU8sRUFBRSxTQUFTLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3JELElBQUksYUFBYSxHQUFHLGdCQUFnQixFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBRXhFLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDekUsQ0FBQztDQUVGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50Rml4dHVyZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvdGVzdGluZyc7XG5pbXBvcnQgeyBTa3lBcHBUZXN0VXRpbGl0eSB9IGZyb20gJ0Bza3l1eC1zZGsvdGVzdGluZyc7XG5cbi8qKlxuICogUHJvdmlkZXMgaW5mb3JtYXRpb24gZm9yIGFuZCBpbnRlcmFjdGlvbiB3aXRoIGEgU0tZIFVYIHBvcG92ZXIgY29tcG9uZW50LlxuICogQnkgdXNpbmcgdGhlIGZpeHR1cmUgQVBJLCBhIHRlc3QgaW5zdWxhdGVzIGl0c2VsZiBhZ2FpbnN0IHVwZGF0ZXMgdG8gdGhlIGludGVybmFsc1xuICogb2YgYSBjb21wb25lbnQsIHN1Y2ggYXMgY2hhbmdpbmcgaXRzIERPTSBzdHJ1Y3R1cmUuXG4gKi9cbmV4cG9ydCBjbGFzcyBTa3lQb3BvdmVyRml4dHVyZSB7XG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBwb3BvdmVyIGFsaWdubWVudCBpZiB0aGUgcG9wb3ZlciBpcyBvcGVuLCBvdGhlcndpc2UgdW5kZWZpbmVkLlxuICAgKi9cbiAgcHVibGljIGdldCBhbGlnbm1lbnQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5nZXRDbGFzc1N1ZmZpeEJ5Q2xhc3NQcmVmaXgoXG4gICAgICB0aGlzLmNvbnRhaW5lckVsZW1lbnQsXG4gICAgICAnc2t5LXBvcG92ZXItYWxpZ25tZW50LSdcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIHBvcG92ZXIgYm9keSBlbGVtZW50IGlmIHRoZSBwb3BvdmVyIGlzIG9wZW4sIG90aGVyd2lzZSB1bmRlZmluZWQuXG4gICAqL1xuICBwdWJsaWMgZ2V0IGJvZHkoKTogSFRNTEVsZW1lbnQge1xuICAgIHJldHVybiB0aGlzLmJvZHlFbGVtZW50O1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIHBvcG92ZXIgcG9zaXRpb24gaWYgdGhlIHBvcG92ZXIgaXMgb3Blbiwgb3RoZXJ3aXNlIHVuZGVmaW5lZC5cbiAgICovXG4gIHB1YmxpYyBnZXQgcGxhY2VtZW50KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0Q2xhc3NTdWZmaXhCeUNsYXNzUHJlZml4KFxuICAgICAgdGhpcy5jb250YWluZXJFbGVtZW50LFxuICAgICAgJ3NreS1wb3BvdmVyLXBsYWNlbWVudC0nXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBwb3BvdmVyIHRpdGxlIHRleHQgaWYgdGhlIHBvcG92ZXIgaXMgb3Blbiwgb3RoZXJ3aXNlIHVuZGVmaW5lZC5cbiAgICovXG4gIHB1YmxpYyBnZXQgcG9wb3ZlclRpdGxlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIFNreUFwcFRlc3RVdGlsaXR5LmdldFRleHQodGhpcy50aXRsZUVsZW1lbnQpO1xuICB9XG5cbiAgLyoqXG4gICAqIEluZGljYXRlcyBpZiB0aGUgcG9wb3ZlciBpcyBvcGVuIGFuZCB2aXNpYmxlLlxuICAgKi9cbiAgcHVibGljIGdldCBwb3BvdmVySXNWaXNpYmxlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmNvbnRlbnRFbGVtZW50ICE9PSB1bmRlZmluZWQ7XG4gIH1cblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGZpeHR1cmU6IENvbXBvbmVudEZpeHR1cmU8YW55Pikge31cblxuICAvKipcbiAgICogVHJpZ2dlcnMgdGhlIGJsdXIgZXZlbnQgZm9yIHRoZSBwb3BvdmVyLlxuICAgKi9cbiAgcHVibGljIGJsdXIoKTogUHJvbWlzZTxhbnk+IHtcbiAgICAvLyBjbG9zZSB0aGUgcG9wb3ZlciBieSBjaGFuZ2luZyBmb2N1cyB0byB0aGUgYm9keSBlbGVtZW50XG4gICAgU2t5QXBwVGVzdFV0aWxpdHkuZmlyZURvbUV2ZW50KHdpbmRvdy5kb2N1bWVudC5ib2R5LCAnY2xpY2snKTtcblxuICAgIHRoaXMuZml4dHVyZS5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgcmV0dXJuIHRoaXMuZml4dHVyZS53aGVuU3RhYmxlKCk7XG4gIH1cblxuICAvLyNyZWdpb24gaGVscGVyc1xuICBwcml2YXRlIGdldCBjb250ZW50RWxlbWVudCgpOiBIVE1MRWxlbWVudCB7XG4gICAgcmV0dXJuIHRoaXMucXVlcnlPdmVybGF5KCdza3ktcG9wb3Zlci1jb250ZW50Jyk7XG4gIH1cblxuICBwcml2YXRlIGdldCBjb250YWluZXJFbGVtZW50KCk6IEhUTUxFbGVtZW50IHtcbiAgICByZXR1cm4gdGhpcy5xdWVyeU92ZXJsYXkoJy5za3ktcG9wb3Zlci1jb250YWluZXInKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0IHRpdGxlRWxlbWVudCgpOiBIVE1MRWxlbWVudCB7XG4gICAgcmV0dXJuIHRoaXMucXVlcnlPdmVybGF5KCcuc2t5LXBvcG92ZXItdGl0bGUnKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0IGJvZHlFbGVtZW50KCk6IEhUTUxFbGVtZW50IHtcbiAgICByZXR1cm4gdGhpcy5xdWVyeU92ZXJsYXkoJy5za3ktcG9wb3Zlci1ib2R5Jyk7XG4gIH1cblxuICBwcml2YXRlIGdldE92ZXJsYXkoKTogSFRNTEVsZW1lbnQge1xuICAgIHJldHVybiBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdza3ktb3ZlcmxheScpO1xuICB9XG5cbiAgcHJpdmF0ZSBxdWVyeU92ZXJsYXkocXVlcnk6IHN0cmluZyk6IEhUTUxFbGVtZW50IHtcbiAgICBjb25zdCBvdmVybGF5ID0gdGhpcy5nZXRPdmVybGF5KCk7XG5cbiAgICByZXR1cm4gIW92ZXJsYXkgPyB1bmRlZmluZWQgOiBvdmVybGF5LnF1ZXJ5U2VsZWN0b3IocXVlcnkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNlYXJjaGVzIHRoZSBlbGVtZW50J3MgY2xhc3MgbmFtZXMgZm9yIGEgY2xhc3Mgd2hpY2ggbWF0Y2hlcyBhIGdpdmVuIHByZWZpeC5cbiAgICogSWYgYSBtYXRjaCBpcyBmb3VuZCwgdGhlIHByZWZpeCBpcyB0cmltbWVkIGZyb20gdGhlIGNsYXNzIG5hbWUgYW5kIHRoZSBzdWZmaXggaXMgcmV0dXJuZWQuXG4gICAqIElmIG5vIGNsYXNzIG1hdGNoaW5nIHRoZSBwcmVmaXggaXMgZm91bmQsIHVuZGVmaW5lZCBpcyByZXR1cm5lZC5cbiAgICpcbiAgICogRXhhbXBsZTpcbiAgICogICBGb3IgYSBjbGFzcyAnc2t5LXBvcG92ZXItcGxhY2VtZW50LXJpZ2h0JywgcGFzc2luZyB0aGUgcHJlZml4ICdza3ktcG9wb3Zlci1wbGFjZW1lbnQtJ1xuICAgKiAgIHNob3VsZCByZXR1cm4gdGhlIHZhbHVlICdyaWdodCcuXG4gICAqIEBwYXJhbSBwcmVmaXhcbiAgICovXG4gIHByaXZhdGUgZ2V0Q2xhc3NTdWZmaXhCeUNsYXNzUHJlZml4KFxuICAgIGVsZW1lbnQ6IEhUTUxFbGVtZW50LFxuICAgIHByZWZpeDogc3RyaW5nXG4gICk6IHN0cmluZyB7XG4gICAgbGV0IGNvbnRhaW5lckNsYXNzZXMgPSBlbGVtZW50Py5jbGFzc05hbWUuc3BsaXQoJyAnKTtcbiAgICBsZXQgcHJlZml4ZWRDbGFzcyA9IGNvbnRhaW5lckNsYXNzZXM/LmZpbmQoKHgpID0+IHguc3RhcnRzV2l0aChwcmVmaXgpKTtcblxuICAgIHJldHVybiAhcHJlZml4ZWRDbGFzcyA/IHVuZGVmaW5lZCA6IHByZWZpeGVkQ2xhc3Muc2xpY2UocHJlZml4Lmxlbmd0aCk7XG4gIH1cbiAgLy8jZW5kcmVnaW9uXG59XG4iXX0=
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { NgModule } from '@angular/core';
|
|
2
|
+
import { NoopAnimationsModule } from '@angular/platform-browser/animations';
|
|
3
|
+
import { SkyPopoverModule } from '@skyux/popovers';
|
|
4
|
+
import { SkyThemeModule } from '@skyux/theme';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
export class SkyPopoverTestingModule {
|
|
7
|
+
}
|
|
8
|
+
SkyPopoverTestingModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyPopoverTestingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
9
|
+
SkyPopoverTestingModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyPopoverTestingModule, imports: [SkyThemeModule], exports: [SkyPopoverModule,
|
|
10
|
+
// The noop animations module needs to be loaded last to avoid
|
|
11
|
+
// subsequent modules adding animations and overriding this.
|
|
12
|
+
NoopAnimationsModule] });
|
|
13
|
+
SkyPopoverTestingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyPopoverTestingModule, imports: [[SkyThemeModule], SkyPopoverModule,
|
|
14
|
+
// The noop animations module needs to be loaded last to avoid
|
|
15
|
+
// subsequent modules adding animations and overriding this.
|
|
16
|
+
NoopAnimationsModule] });
|
|
17
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyPopoverTestingModule, decorators: [{
|
|
18
|
+
type: NgModule,
|
|
19
|
+
args: [{
|
|
20
|
+
exports: [
|
|
21
|
+
SkyPopoverModule,
|
|
22
|
+
// The noop animations module needs to be loaded last to avoid
|
|
23
|
+
// subsequent modules adding animations and overriding this.
|
|
24
|
+
NoopAnimationsModule,
|
|
25
|
+
],
|
|
26
|
+
imports: [SkyThemeModule],
|
|
27
|
+
}]
|
|
28
|
+
}] });
|
|
29
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wb3Zlci10ZXN0aW5nLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9wb3BvdmVycy90ZXN0aW5nL3NyYy9wb3BvdmVyL3BvcG92ZXItdGVzdGluZy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUM1RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sY0FBYyxDQUFDOztBQVk5QyxNQUFNLE9BQU8sdUJBQXVCOztvSEFBdkIsdUJBQXVCO3FIQUF2Qix1QkFBdUIsWUFGeEIsY0FBYyxhQU50QixnQkFBZ0I7UUFFaEIsOERBQThEO1FBQzlELDREQUE0RDtRQUM1RCxvQkFBb0I7cUhBSVgsdUJBQXVCLFlBRnpCLENBQUMsY0FBYyxDQUFDLEVBTnZCLGdCQUFnQjtRQUVoQiw4REFBOEQ7UUFDOUQsNERBQTREO1FBQzVELG9CQUFvQjsyRkFJWCx1QkFBdUI7a0JBVm5DLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFO3dCQUNQLGdCQUFnQjt3QkFFaEIsOERBQThEO3dCQUM5RCw0REFBNEQ7d0JBQzVELG9CQUFvQjtxQkFDckI7b0JBQ0QsT0FBTyxFQUFFLENBQUMsY0FBYyxDQUFDO2lCQUMxQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOb29wQW5pbWF0aW9uc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXIvYW5pbWF0aW9ucyc7XG5pbXBvcnQgeyBTa3lQb3BvdmVyTW9kdWxlIH0gZnJvbSAnQHNreXV4L3BvcG92ZXJzJztcbmltcG9ydCB7IFNreVRoZW1lTW9kdWxlIH0gZnJvbSAnQHNreXV4L3RoZW1lJztcblxuQE5nTW9kdWxlKHtcbiAgZXhwb3J0czogW1xuICAgIFNreVBvcG92ZXJNb2R1bGUsXG5cbiAgICAvLyBUaGUgbm9vcCBhbmltYXRpb25zIG1vZHVsZSBuZWVkcyB0byBiZSBsb2FkZWQgbGFzdCB0byBhdm9pZFxuICAgIC8vIHN1YnNlcXVlbnQgbW9kdWxlcyBhZGRpbmcgYW5pbWF0aW9ucyBhbmQgb3ZlcnJpZGluZyB0aGlzLlxuICAgIE5vb3BBbmltYXRpb25zTW9kdWxlLFxuICBdLFxuICBpbXBvcnRzOiBbU2t5VGhlbWVNb2R1bGVdLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lQb3BvdmVyVGVzdGluZ01vZHVsZSB7fVxuIl19
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export * from './dropdown/dropdown-testing.module';
|
|
2
|
+
export * from './dropdown/dropdown-fixture';
|
|
3
|
+
export * from './dropdown/popovers-fixture-dropdown';
|
|
4
|
+
export * from './dropdown/popovers-fixture-dropdown-item';
|
|
5
|
+
export * from './dropdown/popovers-fixture-dropdown-menu';
|
|
6
|
+
export * from './popover/popover-testing.module';
|
|
7
|
+
export * from './popover/popover-fixture';
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9wb3BvdmVycy90ZXN0aW5nL3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsb0NBQW9DLENBQUM7QUFDbkQsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLHNDQUFzQyxDQUFDO0FBQ3JELGNBQWMsMkNBQTJDLENBQUM7QUFDMUQsY0FBYywyQ0FBMkMsQ0FBQztBQUUxRCxjQUFjLGtDQUFrQyxDQUFDO0FBQ2pELGNBQWMsMkJBQTJCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2Ryb3Bkb3duL2Ryb3Bkb3duLXRlc3RpbmcubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vZHJvcGRvd24vZHJvcGRvd24tZml4dHVyZSc7XG5leHBvcnQgKiBmcm9tICcuL2Ryb3Bkb3duL3BvcG92ZXJzLWZpeHR1cmUtZHJvcGRvd24nO1xuZXhwb3J0ICogZnJvbSAnLi9kcm9wZG93bi9wb3BvdmVycy1maXh0dXJlLWRyb3Bkb3duLWl0ZW0nO1xuZXhwb3J0ICogZnJvbSAnLi9kcm9wZG93bi9wb3BvdmVycy1maXh0dXJlLWRyb3Bkb3duLW1lbnUnO1xuXG5leHBvcnQgKiBmcm9tICcuL3BvcG92ZXIvcG9wb3Zlci10ZXN0aW5nLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL3BvcG92ZXIvcG9wb3Zlci1maXh0dXJlJztcbiJdfQ==
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated bundle index. Do not edit.
|
|
3
|
+
*/
|
|
4
|
+
export * from './public-api';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2t5dXgtcG9wb3ZlcnMtdGVzdGluZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9wb3BvdmVycy90ZXN0aW5nL3NyYy9za3l1eC1wb3BvdmVycy10ZXN0aW5nLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxjQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vcHVibGljLWFwaSc7XG4iXX0=
|
|
@@ -9,10 +9,10 @@ import { SkyThemeModule } from '@skyux/theme';
|
|
|
9
9
|
|
|
10
10
|
class SkyDropdownTestingModule {
|
|
11
11
|
}
|
|
12
|
-
SkyDropdownTestingModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
13
|
-
SkyDropdownTestingModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "
|
|
14
|
-
SkyDropdownTestingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
15
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
12
|
+
SkyDropdownTestingModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyDropdownTestingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
13
|
+
SkyDropdownTestingModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyDropdownTestingModule, exports: [SkyDropdownModule] });
|
|
14
|
+
SkyDropdownTestingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyDropdownTestingModule, imports: [SkyDropdownModule] });
|
|
15
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyDropdownTestingModule, decorators: [{
|
|
16
16
|
type: NgModule,
|
|
17
17
|
args: [{
|
|
18
18
|
exports: [SkyDropdownModule],
|
|
@@ -156,16 +156,16 @@ class SkyDropdownFixture {
|
|
|
156
156
|
|
|
157
157
|
class SkyPopoverTestingModule {
|
|
158
158
|
}
|
|
159
|
-
SkyPopoverTestingModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
160
|
-
SkyPopoverTestingModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "
|
|
159
|
+
SkyPopoverTestingModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyPopoverTestingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
160
|
+
SkyPopoverTestingModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyPopoverTestingModule, imports: [SkyThemeModule], exports: [SkyPopoverModule,
|
|
161
161
|
// The noop animations module needs to be loaded last to avoid
|
|
162
162
|
// subsequent modules adding animations and overriding this.
|
|
163
163
|
NoopAnimationsModule] });
|
|
164
|
-
SkyPopoverTestingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
164
|
+
SkyPopoverTestingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyPopoverTestingModule, imports: [[SkyThemeModule], SkyPopoverModule,
|
|
165
165
|
// The noop animations module needs to be loaded last to avoid
|
|
166
166
|
// subsequent modules adding animations and overriding this.
|
|
167
167
|
NoopAnimationsModule] });
|
|
168
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
168
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyPopoverTestingModule, decorators: [{
|
|
169
169
|
type: NgModule,
|
|
170
170
|
args: [{
|
|
171
171
|
exports: [
|
|
@@ -268,4 +268,4 @@ class SkyPopoverFixture {
|
|
|
268
268
|
*/
|
|
269
269
|
|
|
270
270
|
export { SkyDropdownFixture, SkyDropdownTestingModule, SkyPopoverFixture, SkyPopoverTestingModule };
|
|
271
|
-
//# sourceMappingURL=skyux-popovers-testing.
|
|
271
|
+
//# sourceMappingURL=skyux-popovers-testing.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skyux-popovers-testing.mjs","sources":["../../../../../libs/components/popovers/testing/src/dropdown/dropdown-testing.module.ts","../../../../../libs/components/popovers/testing/src/dropdown/dropdown-fixture.ts","../../../../../libs/components/popovers/testing/src/popover/popover-testing.module.ts","../../../../../libs/components/popovers/testing/src/popover/popover-fixture.ts","../../../../../libs/components/popovers/testing/src/skyux-popovers-testing.ts"],"sourcesContent":["import { NgModule } from '@angular/core';\nimport { SkyDropdownModule } from '@skyux/popovers';\n\n@NgModule({\n exports: [SkyDropdownModule],\n})\nexport class SkyDropdownTestingModule {}\n","import { DebugElement } from '@angular/core';\nimport { ComponentFixture } from '@angular/core/testing';\nimport { By } from '@angular/platform-browser';\nimport { SkyAppTestUtility } from '@skyux-sdk/testing';\n\nimport { SkyPopoversFixtureDropdown } from './popovers-fixture-dropdown';\nimport { SkyPopoversFixtureDropdownItem } from './popovers-fixture-dropdown-item';\nimport { SkyPopoversFixtureDropdownMenu } from './popovers-fixture-dropdown-menu';\n\n/**\n * Provides information for and interaction with a SKY UX dropdown component.\n * By using the fixture API, a test insulates itself against updates to the internals\n * of a component, such as changing its DOM structure.\n */\nexport class SkyDropdownFixture {\n /**\n * Returns information about the dropdown component.\n */\n public get dropdown(): SkyPopoversFixtureDropdown {\n const button = this.buttonDebugElement;\n\n if (!button) {\n return;\n }\n\n return {\n buttonStyle: this.getButtonStyle(button.classes),\n buttonType: this.getButtonType(button.classes),\n disabled: button.nativeElement.disabled,\n label: button.nativeElement.getAttribute('aria-label'),\n title: button.nativeElement.getAttribute('title'),\n };\n }\n\n /**\n * Returns the dropdown button's text.\n */\n public get dropdownButtonText(): string {\n return SkyAppTestUtility.getText(this.buttonDebugElement.nativeElement);\n }\n\n /**\n * Returns information about the dropdown menu component.\n */\n public get dropdownMenu(): SkyPopoversFixtureDropdownMenu {\n const menu = this.getDropdownMenuContent();\n if (!menu) {\n return;\n }\n\n return {\n ariaLabelledBy: menu.getAttribute('aria-labelledby'),\n ariaRole: menu.getAttribute('role'),\n };\n }\n\n /**\n * Indicates if the dropdown menu is open and visible.\n */\n public get dropdownMenuIsVisible(): boolean {\n return this.getDropdownMenuContent() !== undefined;\n }\n\n private get buttonDebugElement(): DebugElement {\n return this.debugEl.query(By.css('.sky-dropdown-button'));\n }\n\n private debugEl: DebugElement;\n\n constructor(private fixture: ComponentFixture<any>, skyTestId: string) {\n this.debugEl = SkyAppTestUtility.getDebugElementByTestId(\n fixture,\n skyTestId,\n 'sky-dropdown'\n );\n }\n\n /**\n * Click the dropdown button to open or close the dropdown menu.\n */\n public async clickDropdownButton(): Promise<any> {\n this.buttonDebugElement.nativeElement.click();\n this.fixture.detectChanges();\n return this.fixture.whenStable();\n }\n\n /**\n * Click the dropdown item at the provided index.\n */\n public async clickDropdownItem(index: number): Promise<any> {\n const itemEls = this.getDropdownItemEls();\n if (index >= itemEls.length) {\n throw new Error(`There is no dropdown item at index ${index}.`);\n }\n\n itemEls[index].querySelector('button,a').click();\n\n this.fixture.detectChanges();\n return this.fixture.whenStable();\n }\n\n /**\n * Returns information about the dropdown item at the provided index.\n */\n public getDropdownItem(index: number): SkyPopoversFixtureDropdownItem {\n const itemEls = this.getDropdownItemEls();\n if (index >= itemEls.length) {\n throw new Error(`There is no dropdown item at index ${index}.`);\n }\n\n const item = itemEls[index];\n if (!item) {\n return;\n }\n\n return {\n ariaRole: item.getAttribute('role'),\n };\n }\n\n /**\n * Returns the contents of the dropdown menu.\n */\n public getDropdownMenuContent(): any {\n const overlay = this.getOverlay();\n if (!overlay) {\n return;\n }\n\n return overlay.querySelector('.sky-dropdown-menu');\n }\n\n private getDropdownItemEls(): NodeListOf<any> {\n const overlay = this.getOverlay();\n\n if (!overlay) {\n return;\n }\n\n return overlay.querySelectorAll('.sky-dropdown-item');\n }\n\n private getOverlay(): HTMLElement {\n return document.querySelector('sky-overlay');\n }\n\n private getButtonStyle(classNames: { [key: string]: boolean }): string {\n if (classNames['sky-btn-primary']) {\n return 'primary';\n }\n if (classNames['sky-btn-default']) {\n return 'default';\n }\n }\n\n private getButtonType(classNames: { [key: string]: boolean }): string {\n const prefix = 'sky-dropdown-button-type-';\n\n for (let i in classNames) {\n if (classNames[i]) {\n if (i.indexOf(prefix) > -1) {\n return i.replace(prefix, '');\n }\n }\n }\n\n return undefined;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { NoopAnimationsModule } from '@angular/platform-browser/animations';\nimport { SkyPopoverModule } from '@skyux/popovers';\nimport { SkyThemeModule } from '@skyux/theme';\n\n@NgModule({\n exports: [\n SkyPopoverModule,\n\n // The noop animations module needs to be loaded last to avoid\n // subsequent modules adding animations and overriding this.\n NoopAnimationsModule,\n ],\n imports: [SkyThemeModule],\n})\nexport class SkyPopoverTestingModule {}\n","import { ComponentFixture } from '@angular/core/testing';\nimport { SkyAppTestUtility } from '@skyux-sdk/testing';\n\n/**\n * Provides information for and interaction with a SKY UX popover component.\n * By using the fixture API, a test insulates itself against updates to the internals\n * of a component, such as changing its DOM structure.\n */\nexport class SkyPopoverFixture {\n /**\n * Returns the popover alignment if the popover is open, otherwise undefined.\n */\n public get alignment(): string {\n return this.getClassSuffixByClassPrefix(\n this.containerElement,\n 'sky-popover-alignment-'\n );\n }\n\n /**\n * Returns the popover body element if the popover is open, otherwise undefined.\n */\n public get body(): HTMLElement {\n return this.bodyElement;\n }\n\n /**\n * Returns the popover position if the popover is open, otherwise undefined.\n */\n public get placement(): string {\n return this.getClassSuffixByClassPrefix(\n this.containerElement,\n 'sky-popover-placement-'\n );\n }\n\n /**\n * Returns the popover title text if the popover is open, otherwise undefined.\n */\n public get popoverTitle(): string {\n return SkyAppTestUtility.getText(this.titleElement);\n }\n\n /**\n * Indicates if the popover is open and visible.\n */\n public get popoverIsVisible(): boolean {\n return this.contentElement !== undefined;\n }\n\n constructor(private fixture: ComponentFixture<any>) {}\n\n /**\n * Triggers the blur event for the popover.\n */\n public blur(): Promise<any> {\n // close the popover by changing focus to the body element\n SkyAppTestUtility.fireDomEvent(window.document.body, 'click');\n\n this.fixture.detectChanges();\n return this.fixture.whenStable();\n }\n\n //#region helpers\n private get contentElement(): HTMLElement {\n return this.queryOverlay('sky-popover-content');\n }\n\n private get containerElement(): HTMLElement {\n return this.queryOverlay('.sky-popover-container');\n }\n\n private get titleElement(): HTMLElement {\n return this.queryOverlay('.sky-popover-title');\n }\n\n private get bodyElement(): HTMLElement {\n return this.queryOverlay('.sky-popover-body');\n }\n\n private getOverlay(): HTMLElement {\n return document.querySelector('sky-overlay');\n }\n\n private queryOverlay(query: string): HTMLElement {\n const overlay = this.getOverlay();\n\n return !overlay ? undefined : overlay.querySelector(query);\n }\n\n /**\n * Searches the element's class names for a class which matches a given prefix.\n * If a match is found, the prefix is trimmed from the class name and the suffix is returned.\n * If no class matching the prefix is found, undefined is returned.\n *\n * Example:\n * For a class 'sky-popover-placement-right', passing the prefix 'sky-popover-placement-'\n * should return the value 'right'.\n * @param prefix\n */\n private getClassSuffixByClassPrefix(\n element: HTMLElement,\n prefix: string\n ): string {\n let containerClasses = element?.className.split(' ');\n let prefixedClass = containerClasses?.find((x) => x.startsWith(prefix));\n\n return !prefixedClass ? undefined : prefixedClass.slice(prefix.length);\n }\n //#endregion\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|