@skyux/popovers 5.0.2 → 5.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (152) hide show
  1. package/README.md +6 -4
  2. package/bundles/skyux-popovers-testing.umd.js +8 -8
  3. package/bundles/skyux-popovers.umd.js +43 -39
  4. package/documentation.json +241 -44
  5. package/esm2015/index.js +23 -0
  6. package/esm2015/index.js.map +1 -0
  7. package/esm2015/lib/modules/dropdown/dropdown-button.component.js +14 -0
  8. package/esm2015/lib/modules/dropdown/dropdown-button.component.js.map +1 -0
  9. package/esm2015/lib/modules/dropdown/dropdown-extensions.js +14 -0
  10. package/esm2015/lib/modules/dropdown/dropdown-extensions.js.map +1 -0
  11. package/esm2015/lib/modules/dropdown/dropdown-item.component.js +72 -0
  12. package/esm2015/lib/modules/dropdown/dropdown-item.component.js.map +1 -0
  13. package/esm2015/lib/modules/dropdown/dropdown-menu.component.js +307 -0
  14. package/esm2015/lib/modules/dropdown/dropdown-menu.component.js.map +1 -0
  15. package/esm2015/lib/modules/dropdown/dropdown.component.js +360 -0
  16. package/esm2015/lib/modules/dropdown/dropdown.component.js.map +1 -0
  17. package/esm2015/lib/modules/dropdown/dropdown.module.js +60 -0
  18. package/esm2015/lib/modules/dropdown/dropdown.module.js.map +1 -0
  19. package/esm2015/lib/modules/dropdown/types/dropdown-horizontal-alignment.js +2 -0
  20. package/esm2015/lib/modules/dropdown/types/dropdown-horizontal-alignment.js.map +1 -0
  21. package/esm2015/lib/modules/dropdown/types/dropdown-menu-change.js +2 -0
  22. package/esm2015/lib/modules/dropdown/types/dropdown-menu-change.js.map +1 -0
  23. package/esm2015/lib/modules/dropdown/types/dropdown-message-type.js +37 -0
  24. package/esm2015/lib/modules/dropdown/types/dropdown-message-type.js.map +1 -0
  25. package/esm2015/lib/modules/dropdown/types/dropdown-message.js +2 -0
  26. package/esm2015/lib/modules/dropdown/types/dropdown-message.js.map +1 -0
  27. package/esm2015/lib/modules/dropdown/types/dropdown-trigger-type.js +2 -0
  28. package/esm2015/lib/modules/dropdown/types/dropdown-trigger-type.js.map +1 -0
  29. package/esm2015/lib/modules/popover/popover-adapter.service.js +74 -0
  30. package/esm2015/lib/modules/popover/popover-adapter.service.js.map +1 -0
  31. package/esm2015/lib/modules/popover/popover-animation-state.js +2 -0
  32. package/esm2015/lib/modules/popover/popover-animation-state.js.map +1 -0
  33. package/esm2015/lib/modules/popover/popover-animation.js +19 -0
  34. package/esm2015/lib/modules/popover/popover-animation.js.map +1 -0
  35. package/esm2015/lib/modules/popover/popover-content.component.js +268 -0
  36. package/esm2015/lib/modules/popover/popover-content.component.js.map +1 -0
  37. package/esm2015/lib/modules/popover/popover-context.js +10 -0
  38. package/esm2015/lib/modules/popover/popover-context.js.map +1 -0
  39. package/esm2015/lib/modules/popover/popover-extensions.js +29 -0
  40. package/esm2015/lib/modules/popover/popover-extensions.js.map +1 -0
  41. package/esm2015/lib/modules/popover/popover.component.js +203 -0
  42. package/esm2015/lib/modules/popover/popover.component.js.map +1 -0
  43. package/esm2015/lib/modules/popover/popover.directive.js +176 -0
  44. package/esm2015/lib/modules/popover/popover.directive.js.map +1 -0
  45. package/esm2015/lib/modules/popover/popover.module.js +56 -0
  46. package/esm2015/lib/modules/popover/popover.module.js.map +1 -0
  47. package/esm2015/lib/modules/popover/types/popover-adapter-arrow-coordinates.js +2 -0
  48. package/esm2015/lib/modules/popover/types/popover-adapter-arrow-coordinates.js.map +1 -0
  49. package/esm2015/lib/modules/popover/types/popover-adapter-elements.js +2 -0
  50. package/esm2015/lib/modules/popover/types/popover-adapter-elements.js.map +1 -0
  51. package/esm2015/lib/modules/popover/types/popover-alignment.js +2 -0
  52. package/esm2015/lib/modules/popover/types/popover-alignment.js.map +1 -0
  53. package/esm2015/lib/modules/popover/types/popover-message-type.js +24 -0
  54. package/esm2015/lib/modules/popover/types/popover-message-type.js.map +1 -0
  55. package/esm2015/lib/modules/popover/types/popover-message.js +2 -0
  56. package/esm2015/lib/modules/popover/types/popover-message.js.map +1 -0
  57. package/esm2015/lib/modules/popover/types/popover-placement.js +2 -0
  58. package/esm2015/lib/modules/popover/types/popover-placement.js.map +1 -0
  59. package/esm2015/lib/modules/popover/types/popover-position.js +2 -0
  60. package/esm2015/lib/modules/popover/types/popover-position.js.map +1 -0
  61. package/esm2015/lib/modules/popover/types/popover-trigger.js +2 -0
  62. package/esm2015/lib/modules/popover/types/popover-trigger.js.map +1 -0
  63. package/esm2015/lib/modules/shared/sky-popovers-resources.module.js +47 -0
  64. package/esm2015/lib/modules/shared/sky-popovers-resources.module.js.map +1 -0
  65. package/esm2015/skyux-popovers.js +2 -2
  66. package/esm2015/skyux-popovers.js.map +1 -0
  67. package/esm2015/testing/dropdown/dropdown-fixture.js +1 -1
  68. package/esm2015/testing/dropdown/dropdown-fixture.js.map +1 -0
  69. package/esm2015/testing/dropdown/dropdown-testing.module.js +5 -5
  70. package/esm2015/testing/dropdown/dropdown-testing.module.js.map +1 -0
  71. package/esm2015/testing/dropdown/popovers-fixture-dropdown-item.js +1 -1
  72. package/esm2015/testing/dropdown/popovers-fixture-dropdown-item.js.map +1 -0
  73. package/esm2015/testing/dropdown/popovers-fixture-dropdown-menu.js +1 -1
  74. package/esm2015/testing/dropdown/popovers-fixture-dropdown-menu.js.map +1 -0
  75. package/esm2015/testing/dropdown/popovers-fixture-dropdown.js +1 -1
  76. package/esm2015/testing/dropdown/popovers-fixture-dropdown.js.map +1 -0
  77. package/esm2015/testing/popover/popover-fixture.js +1 -1
  78. package/esm2015/testing/popover/popover-fixture.js.map +1 -0
  79. package/esm2015/testing/popover/popover-testing.module.js +5 -5
  80. package/esm2015/testing/popover/popover-testing.module.js.map +1 -0
  81. package/esm2015/testing/public-api.js +1 -1
  82. package/esm2015/testing/public-api.js.map +1 -0
  83. package/esm2015/testing/skyux-popovers-testing.js +1 -1
  84. package/esm2015/testing/skyux-popovers-testing.js.map +1 -0
  85. package/fesm2015/skyux-popovers-testing.js +8 -8
  86. package/fesm2015/skyux-popovers-testing.js.map +1 -1
  87. package/fesm2015/skyux-popovers.js +53 -49
  88. package/fesm2015/skyux-popovers.js.map +1 -1
  89. package/index.d.ts +20 -0
  90. package/{modules → lib/modules}/dropdown/dropdown-button.component.d.ts +0 -0
  91. package/{modules → lib/modules}/dropdown/dropdown-extensions.d.ts +0 -0
  92. package/{modules → lib/modules}/dropdown/dropdown-item.component.d.ts +0 -0
  93. package/{modules → lib/modules}/dropdown/dropdown-menu.component.d.ts +0 -0
  94. package/{modules → lib/modules}/dropdown/dropdown.component.d.ts +0 -0
  95. package/{modules → lib/modules}/dropdown/dropdown.module.d.ts +0 -0
  96. package/{modules → lib/modules}/dropdown/types/dropdown-horizontal-alignment.d.ts +0 -0
  97. package/{modules → lib/modules}/dropdown/types/dropdown-menu-change.d.ts +0 -0
  98. package/{modules → lib/modules}/dropdown/types/dropdown-message-type.d.ts +0 -0
  99. package/{modules → lib/modules}/dropdown/types/dropdown-message.d.ts +0 -0
  100. package/{modules → lib/modules}/dropdown/types/dropdown-trigger-type.d.ts +0 -0
  101. package/{modules → lib/modules}/popover/popover-adapter.service.d.ts +0 -0
  102. package/{modules → lib/modules}/popover/popover-animation-state.d.ts +0 -0
  103. package/{modules → lib/modules}/popover/popover-animation.d.ts +0 -0
  104. package/{modules → lib/modules}/popover/popover-content.component.d.ts +0 -0
  105. package/{modules → lib/modules}/popover/popover-context.d.ts +0 -0
  106. package/{modules → lib/modules}/popover/popover-extensions.d.ts +0 -0
  107. package/{modules → lib/modules}/popover/popover.component.d.ts +4 -1
  108. package/{modules → lib/modules}/popover/popover.directive.d.ts +2 -0
  109. package/{modules → lib/modules}/popover/popover.module.d.ts +0 -0
  110. package/{modules → lib/modules}/popover/types/popover-adapter-arrow-coordinates.d.ts +0 -0
  111. package/{modules → lib/modules}/popover/types/popover-adapter-elements.d.ts +0 -0
  112. package/{modules → lib/modules}/popover/types/popover-alignment.d.ts +0 -0
  113. package/{modules → lib/modules}/popover/types/popover-message-type.d.ts +0 -0
  114. package/{modules → lib/modules}/popover/types/popover-message.d.ts +0 -0
  115. package/{modules → lib/modules}/popover/types/popover-placement.d.ts +0 -0
  116. package/{modules → lib/modules}/popover/types/popover-position.d.ts +0 -0
  117. package/{modules → lib/modules}/popover/types/popover-trigger.d.ts +0 -0
  118. package/{modules → lib/modules}/shared/sky-popovers-resources.module.d.ts +0 -0
  119. package/package.json +23 -9
  120. package/skyux-popovers.d.ts +1 -1
  121. package/LICENSE +0 -21
  122. package/esm2015/modules/dropdown/dropdown-button.component.js +0 -14
  123. package/esm2015/modules/dropdown/dropdown-extensions.js +0 -14
  124. package/esm2015/modules/dropdown/dropdown-item.component.js +0 -72
  125. package/esm2015/modules/dropdown/dropdown-menu.component.js +0 -306
  126. package/esm2015/modules/dropdown/dropdown.component.js +0 -357
  127. package/esm2015/modules/dropdown/dropdown.module.js +0 -60
  128. package/esm2015/modules/dropdown/types/dropdown-horizontal-alignment.js +0 -2
  129. package/esm2015/modules/dropdown/types/dropdown-menu-change.js +0 -2
  130. package/esm2015/modules/dropdown/types/dropdown-message-type.js +0 -37
  131. package/esm2015/modules/dropdown/types/dropdown-message.js +0 -2
  132. package/esm2015/modules/dropdown/types/dropdown-trigger-type.js +0 -2
  133. package/esm2015/modules/popover/popover-adapter.service.js +0 -74
  134. package/esm2015/modules/popover/popover-animation-state.js +0 -2
  135. package/esm2015/modules/popover/popover-animation.js +0 -19
  136. package/esm2015/modules/popover/popover-content.component.js +0 -266
  137. package/esm2015/modules/popover/popover-context.js +0 -10
  138. package/esm2015/modules/popover/popover-extensions.js +0 -29
  139. package/esm2015/modules/popover/popover.component.js +0 -200
  140. package/esm2015/modules/popover/popover.directive.js +0 -175
  141. package/esm2015/modules/popover/popover.module.js +0 -56
  142. package/esm2015/modules/popover/types/popover-adapter-arrow-coordinates.js +0 -2
  143. package/esm2015/modules/popover/types/popover-adapter-elements.js +0 -2
  144. package/esm2015/modules/popover/types/popover-alignment.js +0 -2
  145. package/esm2015/modules/popover/types/popover-message-type.js +0 -24
  146. package/esm2015/modules/popover/types/popover-message.js +0 -2
  147. package/esm2015/modules/popover/types/popover-placement.js +0 -2
  148. package/esm2015/modules/popover/types/popover-position.js +0 -2
  149. package/esm2015/modules/popover/types/popover-trigger.js +0 -2
  150. package/esm2015/modules/shared/sky-popovers-resources.module.js +0 -47
  151. package/esm2015/public-api.js +0 -23
  152. package/public-api.d.ts +0 -20
@@ -0,0 +1 @@
1
+ {"version":3,"file":"popover.component.js","sourceRoot":"","sources":["../../../../../../../../libs/components/popovers/src/lib/modules/popover/popover.component.ts","../../../../../../../../libs/components/popovers/src/lib/modules/popover/popover.component.html"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnDestroy,\n Output,\n TemplateRef,\n ViewChild,\n} from '@angular/core';\n\nimport { SkyOverlayInstance, SkyOverlayService } from '@skyux/core';\n\nimport { Subject } from 'rxjs';\n\nimport { takeUntil } from 'rxjs/operators';\n\nimport { SkyPopoverAlignment } from './types/popover-alignment';\n\nimport { SkyPopoverPlacement } from './types/popover-placement';\n\nimport { SkyPopoverContentComponent } from './popover-content.component';\n\nimport { SkyPopoverContext } from './popover-context';\n\n@Component({\n selector: 'sky-popover',\n templateUrl: './popover.component.html',\n})\nexport class SkyPopoverComponent implements OnDestroy {\n /**\n * Specifies the horizontal alignment of the popover in relation to the trigger element.\n * The `skyPopoverAlignment` property on the popover directive overwrites this property.\n * Options include:`\"center\"`, `\"right\"`, and `'\"left\"`.\n * @default \"center\"\n */\n @Input()\n public set alignment(value: SkyPopoverAlignment) {\n this._alignment = value;\n }\n\n public get alignment(): SkyPopoverAlignment {\n return this._alignment || 'center';\n }\n\n /**\n * Indicates whether to close the popover when it loses focus.\n * To require users to click a trigger button to close the popover, set this input to false.\n * @default true\n */\n @Input()\n public set dismissOnBlur(value: boolean) {\n this._dismissOnBlur = value;\n }\n\n public get dismissOnBlur(): boolean {\n if (this._dismissOnBlur === undefined) {\n return true;\n }\n\n return this._dismissOnBlur;\n }\n\n /**\n * Specifies the placement of the popover in relation to the trigger element.\n * The `skyPopoverPlacement` property on the popover directive overwrites this property.\n * Options include:`\"above\"`, `\"below\"`, `\"right\"`, and `\"left\"`.\n * @default \"above\"\n */\n @Input()\n public set placement(value: SkyPopoverPlacement) {\n this._placement = value;\n }\n\n public get placement(): SkyPopoverPlacement {\n return this._placement || 'above';\n }\n\n /**\n * Specifies a title for the popover.\n */\n @Input()\n public popoverTitle: string;\n\n /**\n * Specifies the type of popover.\n * Options include `\"info\"` and `\"danger\"`.\n * @default \"info\"\n */\n @Input()\n public popoverType: 'danger' | 'info';\n\n /**\n * Fires when users close the popover.\n */\n @Output()\n public popoverClosed = new EventEmitter<SkyPopoverComponent>();\n\n /**\n * Fires when users open the popover.\n */\n @Output()\n public popoverOpened = new EventEmitter<SkyPopoverComponent>();\n\n /**\n * Indicates that the popover is in the process of being opened or closed.\n * @internal\n */\n public isActive: boolean = false;\n\n /**\n * Used by unit tests to disable animations since the component is injected at the bottom of the\n * document body.\n * @internal\n */\n public enableAnimations: boolean = true;\n\n public isMouseEnter: boolean = false;\n\n @ViewChild('templateRef', {\n read: TemplateRef,\n static: true,\n })\n private templateRef: TemplateRef<any>;\n\n private contentRef: SkyPopoverContentComponent;\n\n private isMarkedForCloseOnMouseLeave: boolean = false;\n\n private ngUnsubscribe = new Subject<void>();\n\n private overlay: SkyOverlayInstance;\n\n private _alignment: SkyPopoverAlignment;\n\n private _dismissOnBlur: boolean;\n\n private _placement: SkyPopoverPlacement;\n\n constructor(private overlayService: SkyOverlayService) {}\n\n public ngOnDestroy(): void {\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n this.ngUnsubscribe = undefined;\n\n if (this.overlay) {\n this.overlayService.close(this.overlay);\n this.overlay = undefined;\n }\n }\n\n /**\n * Positions the popover next to a given caller element.\n * @param caller The element that opened the popover.\n * @param placement The placement of the popover.\n * @param alignment The horizontal alignment of the popover.\n * @internal\n */\n public positionNextTo(\n caller: ElementRef,\n placement?: SkyPopoverPlacement,\n alignment?: SkyPopoverAlignment\n ): void {\n if (!this.overlay) {\n this.setupOverlay();\n }\n\n this.placement = placement;\n this.alignment = alignment;\n this.isActive = true;\n\n this.contentRef.open(caller, {\n dismissOnBlur: this.dismissOnBlur,\n enableAnimations: this.enableAnimations,\n horizontalAlignment: this.alignment,\n isStatic: false,\n placement: this.placement,\n popoverTitle: this.popoverTitle,\n popoverType: this.popoverType,\n });\n }\n\n /**\n * Closes the popover.\n * @internal\n */\n public close(): void {\n /*istanbul ignore next*/\n this.contentRef?.close();\n }\n\n /**\n * Brings focus to the popover element if its open.\n * @internal\n */\n public applyFocus(): void {\n /*istanbul ignore next*/\n this.contentRef?.applyFocus();\n }\n\n /**\n * Adds a flag to the popover to close when the mouse leaves the popover's bounds.\n * @internal\n */\n public markForCloseOnMouseLeave(): void {\n this.isMarkedForCloseOnMouseLeave = true;\n }\n\n private setupOverlay(): void {\n const overlay = this.overlayService.create({\n enableScroll: true,\n enablePointerEvents: true,\n });\n\n overlay.backdropClick.pipe(takeUntil(this.ngUnsubscribe)).subscribe(() => {\n if (this.dismissOnBlur) {\n this.close();\n }\n });\n\n const contentRef = overlay.attachComponent(SkyPopoverContentComponent, [\n {\n provide: SkyPopoverContext,\n useValue: new SkyPopoverContext({\n contentTemplateRef: this.templateRef,\n }),\n },\n ]);\n\n contentRef.opened.pipe(takeUntil(this.ngUnsubscribe)).subscribe(() => {\n this.popoverOpened.emit(this);\n });\n\n contentRef.closed.pipe(takeUntil(this.ngUnsubscribe)).subscribe(() => {\n /*istanbul ignore else*/\n if (this.isActive) {\n this.overlayService.close(this.overlay);\n this.overlay = undefined;\n this.isActive = false;\n this.popoverClosed.emit(this);\n }\n });\n\n contentRef.isMouseEnter\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((isMouseEnter) => {\n this.isMouseEnter = isMouseEnter;\n if (this.isMarkedForCloseOnMouseLeave) {\n this.isMarkedForCloseOnMouseLeave = false;\n this.close();\n }\n });\n\n this.overlay = overlay;\n this.contentRef = contentRef;\n }\n}\n","<ng-template #templateRef>\n <ng-content></ng-content>\n</ng-template>\n"]}
@@ -0,0 +1,176 @@
1
+ import { Directive, ElementRef, Input } from '@angular/core';
2
+ import { fromEvent as observableFromEvent, Subject } 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: "12.2.16", ngImport: i0, type: SkyPopoverDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
159
+ SkyPopoverDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.16", 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: "12.2.16", 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=popover.directive.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"popover.directive.js","sourceRoot":"","sources":["../../../../../../../../libs/components/popovers/src/lib/modules/popover/popover.directive.ts"],"names":[],"mappings":"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","sourcesContent":["import { Directive, ElementRef, Input, OnDestroy, OnInit } from '@angular/core';\n\nimport { fromEvent as observableFromEvent, Subject } from 'rxjs';\n\nimport { takeUntil } from 'rxjs/operators';\n\nimport { SkyPopoverAlignment } from './types/popover-alignment';\n\nimport { SkyPopoverPlacement } from './types/popover-placement';\n\nimport { SkyPopoverTrigger } from './types/popover-trigger';\n\nimport { SkyPopoverComponent } from './popover.component';\n\nimport { SkyPopoverMessage } from './types/popover-message';\n\nimport { SkyPopoverMessageType } from './types/popover-message-type';\n\n@Directive({\n selector: '[skyPopover]',\n})\nexport class SkyPopoverDirective implements OnInit, OnDestroy {\n /**\n * References the popover component to display. Add this directive to the trigger element that opens the popover.\n * @required\n */\n @Input()\n public skyPopover: SkyPopoverComponent;\n\n /**\n * Specifies the horizontal alignment of the popover in relation to the trigger element.\n * Options include:`\"center\"`, `\"right\"`, and `\"left\"`.\n * @default \"center\"\n */\n @Input()\n public skyPopoverAlignment: SkyPopoverAlignment;\n\n /**\n * Provides an observable to send commands to the popover that respect the `SkyPopoverMessage` type.\n */\n @Input()\n public skyPopoverMessageStream = new Subject<SkyPopoverMessage>();\n\n /**\n * Specifies the placement of the popover in relation to the trigger element.\n * Options include:`\"above\"`, `\"below\"`, `\"right\"`, and `\"left\"`.\n * @default \"above\"\n */\n @Input()\n public skyPopoverPlacement: SkyPopoverPlacement;\n\n /**\n * Specifies the user action that displays the popover.\n */\n @Input()\n public set skyPopoverTrigger(value: SkyPopoverTrigger) {\n this._trigger = value;\n }\n\n public get skyPopoverTrigger(): SkyPopoverTrigger {\n return this._trigger || 'click';\n }\n\n private ngUnsubscribe = new Subject<void>();\n\n private _trigger: SkyPopoverTrigger;\n\n constructor(private elementRef: ElementRef) {}\n\n public ngOnInit(): void {\n this.addEventListeners();\n }\n\n public ngOnDestroy(): void {\n this.removeEventListeners();\n }\n\n public togglePopover(): void {\n if (this.skyPopover.isActive) {\n this.sendMessage(SkyPopoverMessageType.Close);\n return;\n }\n\n this.sendMessage(SkyPopoverMessageType.Open);\n }\n\n private positionPopover(): void {\n this.skyPopover.positionNextTo(\n this.elementRef,\n this.skyPopoverPlacement,\n this.skyPopoverAlignment\n );\n }\n\n private closePopover(): void {\n this.skyPopover.close();\n }\n\n private closePopoverOrMarkForClose(): void {\n if (this.skyPopover.isMouseEnter) {\n this.skyPopover.markForCloseOnMouseLeave();\n } else {\n this.sendMessage(SkyPopoverMessageType.Close);\n }\n }\n\n private addEventListeners(): void {\n const element = this.elementRef.nativeElement;\n\n this.skyPopoverMessageStream\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((message) => {\n this.handleIncomingMessages(message);\n });\n\n observableFromEvent(element, 'keydown')\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((event: KeyboardEvent) => {\n if (!this.skyPopover.isActive) {\n return;\n }\n\n const key = event.key.toLowerCase();\n\n /* tslint:disable-next-line:switch-default */\n switch (key) {\n case 'escape':\n this.sendMessage(SkyPopoverMessageType.Close);\n event.preventDefault();\n event.stopPropagation();\n break;\n\n case 'tab':\n if (this.skyPopover.dismissOnBlur) {\n this.sendMessage(SkyPopoverMessageType.Close);\n }\n break;\n\n case 'arrowdown':\n case 'arrowleft':\n case 'arrowright':\n case 'arrowup':\n case 'down':\n case 'left':\n case 'right':\n case 'up':\n this.sendMessage(SkyPopoverMessageType.Focus);\n event.stopPropagation();\n event.preventDefault();\n break;\n }\n });\n\n observableFromEvent(element, 'click')\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe(() => {\n if (this.skyPopover) {\n this.togglePopover();\n }\n });\n\n observableFromEvent(element, 'mouseenter')\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe(() => {\n if (this.skyPopover) {\n this.skyPopover.isMouseEnter = true;\n if (\n !this.skyPopover.isActive &&\n this.skyPopoverTrigger === 'mouseenter'\n ) {\n this.sendMessage(SkyPopoverMessageType.Open);\n }\n }\n });\n\n observableFromEvent(element, 'mouseleave')\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe(() => {\n if (this.skyPopover) {\n this.skyPopover.isMouseEnter = false;\n if (\n this.skyPopover.isActive &&\n this.skyPopoverTrigger === 'mouseenter'\n ) {\n // Give the popover a chance to set its isMouseEnter flag before checking to see\n // if it should be closed.\n setTimeout(() => {\n this.closePopoverOrMarkForClose();\n });\n }\n }\n });\n }\n\n private removeEventListeners(): void {\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n this.ngUnsubscribe = undefined;\n }\n\n private handleIncomingMessages(message: SkyPopoverMessage): void {\n /* tslint:disable-next-line:switch-default */\n switch (message.type) {\n case SkyPopoverMessageType.Open:\n this.positionPopover();\n break;\n\n case SkyPopoverMessageType.Close:\n /*istanbul ignore else*/\n if (this.skyPopover.isActive) {\n this.closePopover();\n }\n break;\n\n case SkyPopoverMessageType.Reposition:\n // Only reposition the popover if it is already open.\n if (this.skyPopover.isActive) {\n this.positionPopover();\n }\n break;\n\n case SkyPopoverMessageType.Focus:\n this.skyPopover.applyFocus();\n break;\n }\n }\n\n private sendMessage(messageType: SkyPopoverMessageType): void {\n this.skyPopoverMessageStream.next({ type: messageType });\n }\n}\n"]}
@@ -0,0 +1,56 @@
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: "12.2.16", ngImport: i0, type: SkyPopoverModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
14
+ SkyPopoverModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.16", 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: "12.2.16", 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: "12.2.16", 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
+ entryComponents: [SkyPopoverContentComponent],
54
+ }]
55
+ }] });
56
+ //# sourceMappingURL=popover.module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"popover.module.js","sourceRoot":"","sources":["../../../../../../../../libs/components/popovers/src/lib/modules/popover/popover.module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAE/D,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAElD,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE9C,OAAO,EAAE,0BAA0B,EAAE,MAAM,yCAAyC,CAAC;AAErF,OAAO,EAAE,0BAA0B,EAAE,MAAM,6BAA6B,CAAC;AAEzE,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAE1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;;AAuB1D,MAAM,OAAO,gBAAgB;;8GAAhB,gBAAgB;+GAAhB,gBAAgB,iBAnBzB,mBAAmB;QACnB,0BAA0B;QAC1B,mBAAmB,aAGnB,YAAY;QACZ,cAAc;QACd,aAAa;QACb,gBAAgB;QAChB,0BAA0B;QAC1B,cAAc,aAGd,mBAAmB;QACnB,0BAA0B;QAC1B,mBAAmB;+GAIV,gBAAgB,YAflB;YACP,YAAY;YACZ,cAAc;YACd,aAAa;YACb,gBAAgB;YAChB,0BAA0B;YAC1B,cAAc;SACf;4FAQU,gBAAgB;kBArB5B,QAAQ;mBAAC;oBACR,YAAY,EAAE;wBACZ,mBAAmB;wBACnB,0BAA0B;wBAC1B,mBAAmB;qBACpB;oBACD,OAAO,EAAE;wBACP,YAAY;wBACZ,cAAc;wBACd,aAAa;wBACb,gBAAgB;wBAChB,0BAA0B;wBAC1B,cAAc;qBACf;oBACD,OAAO,EAAE;wBACP,mBAAmB;wBACnB,0BAA0B;wBAC1B,mBAAmB;qBACpB;oBACD,eAAe,EAAE,CAAC,0BAA0B,CAAC;iBAC9C","sourcesContent":["import { CommonModule } from '@angular/common';\n\nimport { NgModule } from '@angular/core';\n\nimport { SkyAffixModule, SkyOverlayModule } from '@skyux/core';\n\nimport { SkyIconModule } from '@skyux/indicators';\n\nimport { SkyThemeModule } from '@skyux/theme';\n\nimport { SkyPopoversResourcesModule } from '../shared/sky-popovers-resources.module';\n\nimport { SkyPopoverContentComponent } from './popover-content.component';\n\nimport { SkyPopoverComponent } from './popover.component';\n\nimport { SkyPopoverDirective } from './popover.directive';\n\n@NgModule({\n declarations: [\n SkyPopoverComponent,\n SkyPopoverContentComponent,\n SkyPopoverDirective,\n ],\n imports: [\n CommonModule,\n SkyAffixModule,\n SkyIconModule,\n SkyOverlayModule,\n SkyPopoversResourcesModule,\n SkyThemeModule,\n ],\n exports: [\n SkyPopoverComponent,\n SkyPopoverContentComponent,\n SkyPopoverDirective,\n ],\n entryComponents: [SkyPopoverContentComponent],\n})\nexport class SkyPopoverModule {}\n"]}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=popover-adapter-arrow-coordinates.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"popover-adapter-arrow-coordinates.js","sourceRoot":"","sources":["../../../../../../../../../libs/components/popovers/src/lib/modules/popover/types/popover-adapter-arrow-coordinates.ts"],"names":[],"mappings":"","sourcesContent":["/**\n * @internal\n */\nexport interface SkyPopoverAdapterArrowCoordinates {\n top: number;\n left: number;\n}\n"]}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=popover-adapter-elements.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"popover-adapter-elements.js","sourceRoot":"","sources":["../../../../../../../../../libs/components/popovers/src/lib/modules/popover/types/popover-adapter-elements.ts"],"names":[],"mappings":"","sourcesContent":["import { ElementRef } from '@angular/core';\n\n/**\n * @internal\n */\nexport interface SkyPopoverAdapterElements {\n popover: ElementRef;\n popoverArrow: ElementRef;\n caller: ElementRef;\n}\n"]}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=popover-alignment.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"popover-alignment.js","sourceRoot":"","sources":["../../../../../../../../../libs/components/popovers/src/lib/modules/popover/types/popover-alignment.ts"],"names":[],"mappings":"","sourcesContent":["/**\n * Represents the horizontal alignment of the popover in relation to the trigger element.\n */\nexport type SkyPopoverAlignment = 'left' | 'center' | 'right';\n"]}
@@ -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=popover-message-type.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"popover-message-type.js","sourceRoot":"","sources":["../../../../../../../../../libs/components/popovers/src/lib/modules/popover/types/popover-message-type.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,CAAN,IAAY,qBAqBX;AArBD,WAAY,qBAAqB;IAC/B;;OAEG;IACH,iEAAQ,CAAA;IAER;;OAEG;IACH,mEAAS,CAAA;IAET;;;OAGG;IACH,6EAAc,CAAA;IAEd;;OAEG;IACH,mEAAS,CAAA;AACX,CAAC,EArBW,qBAAqB,KAArB,qBAAqB,QAqBhC","sourcesContent":["/**\n * Specifies the type of message to send to the popover component.\n */\nexport enum SkyPopoverMessageType {\n /**\n * Opens the popover.\n */\n Open = 0,\n\n /**\n * Closes the popover.\n */\n Close = 1,\n\n /**\n * Repositions the popover to the appropriate position.\n * This is useful for when the popover's width and height change while it is open.\n */\n Reposition = 2,\n\n /**\n * Brings focus to the popover element.\n */\n Focus = 3,\n}\n"]}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=popover-message.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"popover-message.js","sourceRoot":"","sources":["../../../../../../../../../libs/components/popovers/src/lib/modules/popover/types/popover-message.ts"],"names":[],"mappings":"","sourcesContent":["import { SkyPopoverMessageType } from './popover-message-type';\n\n/**\n * Specifies messages to be sent to the popover component.\n */\nexport interface SkyPopoverMessage {\n /**\n * The type of message to send.\n */\n type?: SkyPopoverMessageType;\n}\n"]}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=popover-placement.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"popover-placement.js","sourceRoot":"","sources":["../../../../../../../../../libs/components/popovers/src/lib/modules/popover/types/popover-placement.ts"],"names":[],"mappings":"","sourcesContent":["/**\n * Represents the placement of the popover in relation to the trigger element.\n */\nexport type SkyPopoverPlacement = 'above' | 'below' | 'right' | 'left';\n"]}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=popover-position.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"popover-position.js","sourceRoot":"","sources":["../../../../../../../../../libs/components/popovers/src/lib/modules/popover/types/popover-position.ts"],"names":[],"mappings":"","sourcesContent":["import { SkyPopoverAlignment } from './popover-alignment';\nimport { SkyPopoverPlacement } from './popover-placement';\n\n/**\n * @internal\n */\nexport interface SkyPopoverPosition {\n top?: number;\n left?: number;\n arrowTop?: number;\n arrowLeft?: number;\n placement: SkyPopoverPlacement;\n alignment?: SkyPopoverAlignment;\n}\n"]}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=popover-trigger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"popover-trigger.js","sourceRoot":"","sources":["../../../../../../../../../libs/components/popovers/src/lib/modules/popover/types/popover-trigger.ts"],"names":[],"mappings":"","sourcesContent":["/**\n * Specifies the user action that displays the popover.\n */\nexport type SkyPopoverTrigger = 'click' | 'mouseenter';\n"]}
@@ -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 modules/shared/sky-popovers' schematic.
5
+ * To update this file, simply rerun the command.
6
+ */
7
+ import { NgModule } from '@angular/core';
8
+ import { getLibStringForLocale, SkyI18nModule, SKY_LIB_RESOURCES_PROVIDERS, } 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: "12.2.16", ngImport: i0, type: SkyPopoversResourcesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
26
+ SkyPopoversResourcesModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyPopoversResourcesModule, exports: [SkyI18nModule] });
27
+ SkyPopoversResourcesModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.16", 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: "12.2.16", 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=sky-popovers-resources.module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sky-popovers-resources.module.js","sourceRoot":"","sources":["../../../../../../../../libs/components/popovers/src/lib/modules/shared/sky-popovers-resources.module.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EACL,qBAAqB,EAErB,aAAa,EAGb,2BAA2B,GAC5B,MAAM,aAAa,CAAC;;AAErB,MAAM,SAAS,GAA0C;IACvD,OAAO,EAAE;QACP,yCAAyC,EAAE,EAAE,OAAO,EAAE,cAAc,EAAE;KACvE;CACF,CAAC;AAEF,MAAM,OAAO,4BAA4B;IAChC,SAAS,CAAC,UAA4B,EAAE,IAAY;QACzD,OAAO,qBAAqB,CAAC,SAAS,EAAE,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACnE,CAAC;CACF;AAED;;GAEG;AAWH,MAAM,OAAO,0BAA0B;;wHAA1B,0BAA0B;yHAA1B,0BAA0B,YAT3B,aAAa;yHASZ,0BAA0B,aAR1B;QACT;YACE,OAAO,EAAE,2BAA2B;YACpC,QAAQ,EAAE,4BAA4B;YACtC,KAAK,EAAE,IAAI;SACZ;KACF,YAPS,aAAa;4FASZ,0BAA0B;kBAVtC,QAAQ;mBAAC;oBACR,OAAO,EAAE,CAAC,aAAa,CAAC;oBACxB,SAAS,EAAE;wBACT;4BACE,OAAO,EAAE,2BAA2B;4BACpC,QAAQ,EAAE,4BAA4B;4BACtC,KAAK,EAAE,IAAI;yBACZ;qBACF;iBACF","sourcesContent":["/**\n * NOTICE: DO NOT MODIFY THIS FILE!\n * The contents of this file were automatically generated by\n * the 'ng generate @skyux/i18n:lib-resources-module modules/shared/sky-popovers' schematic.\n * To update this file, simply rerun the command.\n */\n\nimport { NgModule } from '@angular/core';\nimport {\n getLibStringForLocale,\n SkyAppLocaleInfo,\n SkyI18nModule,\n SkyLibResources,\n SkyLibResourcesProvider,\n SKY_LIB_RESOURCES_PROVIDERS,\n} from '@skyux/i18n';\n\nconst RESOURCES: { [locale: string]: SkyLibResources } = {\n 'EN-US': {\n skyux_dropdown_context_menu_default_label: { message: 'Context menu' },\n },\n};\n\nexport class SkyPopoversResourcesProvider implements SkyLibResourcesProvider {\n public getString(localeInfo: SkyAppLocaleInfo, name: string): string {\n return getLibStringForLocale(RESOURCES, localeInfo.locale, name);\n }\n}\n\n/**\n * Import into any component library module that needs to use resource strings.\n */\n@NgModule({\n exports: [SkyI18nModule],\n providers: [\n {\n provide: SKY_LIB_RESOURCES_PROVIDERS,\n useClass: SkyPopoversResourcesProvider,\n multi: true,\n },\n ],\n})\nexport class SkyPopoversResourcesModule {}\n"]}
@@ -1,5 +1,5 @@
1
1
  /**
2
2
  * Generated bundle index. Do not edit.
3
3
  */
4
- export * from './public-api';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2t5dXgtcG9wb3ZlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9wcm9qZWN0cy9wb3BvdmVycy9zcmMvc2t5dXgtcG9wb3ZlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWMtYXBpJztcbiJdfQ==
4
+ export * from './index';
5
+ //# sourceMappingURL=skyux-popovers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skyux-popovers.js","sourceRoot":"","sources":["../../../../../libs/components/popovers/src/skyux-popovers.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,SAAS,CAAC","sourcesContent":["/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"]}
@@ -135,4 +135,4 @@ export class SkyDropdownFixture {
135
135
  return undefined;
136
136
  }
137
137
  }
138
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24tZml4dHVyZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3BvcG92ZXJzL3Rlc3Rpbmcvc3JjL2Ryb3Bkb3duL2Ryb3Bkb3duLWZpeHR1cmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUlBLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUUvQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQVF2RDs7OztHQUlHO0FBQ0gsTUFBTSxPQUFPLGtCQUFrQjtJQXVEN0IsWUFBb0IsT0FBOEIsRUFBRSxTQUFpQjtRQUFqRCxZQUFPLEdBQVAsT0FBTyxDQUF1QjtRQUNoRCxJQUFJLENBQUMsT0FBTyxHQUFHLGlCQUFpQixDQUFDLHVCQUF1QixDQUN0RCxPQUFPLEVBQ1AsU0FBUyxFQUNULGNBQWMsQ0FDZixDQUFDO0lBQ0osQ0FBQztJQTVERDs7T0FFRztJQUNILElBQVcsUUFBUTtRQUNqQixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUM7UUFFdkMsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNYLE9BQU87U0FDUjtRQUVELE9BQU87WUFDTCxXQUFXLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDO1lBQ2hELFVBQVUsRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUM7WUFDOUMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxhQUFhLENBQUMsUUFBUTtZQUN2QyxLQUFLLEVBQUUsTUFBTSxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDO1lBQ3RELEtBQUssRUFBRSxNQUFNLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUM7U0FDbEQsQ0FBQztJQUNKLENBQUM7SUFFRDs7T0FFRztJQUNILElBQVcsa0JBQWtCO1FBQzNCLE9BQU8saUJBQWlCLENB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LFVBQVUsQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFO1lBQ2pDLE9BQU8sU0FBUyxDQUFDO1NBQ2xCO1FBQ0QsSUFBSSxVQUFVLENBQUMsaUJBQWlCLENBQUMsRUFBRTtZQUNqQyxPQUFPLFNBQVMsQ0FBQztTQUNsQjtJQUNILENBQUM7SUFFTyxhQUFhLENBQUMsVUFBc0M7UUFDMUQsTUFBTSxNQUFNLEdBQUcsMkJBQTJCLENBQUM7UUFFM0MsS0FBSyxJQUFJLENBQUMsSUFBSSxVQUFVLEVBQUU7WUFDeEIsSUFBSSxVQUFVLENBQUMsQ0FBQyxDQUFDLEVBQUU7Z0JBQ2pCLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRTtvQkFDMUIsT0FBTyxDQUFDLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQztpQkFDOUI7YUFDRjtTQUNGO1FBRUQsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGVidWdFbGVtZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IENvbXBvbmVudEZpeHR1cmUgfSBmcm9tICdAYW5ndWxhci9jb3JlL3Rlc3RpbmcnO1xuXG5pbXBvcnQgeyBCeSB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuXG5pbXBvcnQgeyBTa3lBcHBUZXN0VXRpbGl0eSB9IGZyb20gJ0Bza3l1eC1zZGsvdGVzdGluZyc7XG5cbmltcG9ydCB7IFNreVBvcG92ZXJzRml4dHVyZURyb3Bkb3duIH0gZnJvbSAnLi9wb3BvdmVycy1maXh0dXJlLWRyb3Bkb3duJztcblxuaW1wb3J0IHsgU2t5UG9wb3ZlcnNGaXh0dXJlRHJvcGRvd25JdGVtIH0gZnJvbSAnLi9wb3BvdmVycy1maXh0dXJlLWRyb3Bkb3duLWl0ZW0nO1xuXG5pbXBvcnQgeyBTa3lQb3BvdmVyc0ZpeHR1cmVEcm9wZG93bk1lbnUgfSBmcm9tICcuL3BvcG92ZXJzLWZpeHR1cmUtZHJvcGRvd24tbWVudSc7XG5cbi8qKlxuICogUHJvdmlkZXMgaW5mb3JtYXRpb24gZm9yIGFuZCBpbnRlcmFjdGlvbiB3aXRoIGEgU0tZIFVYIGRyb3Bkb3duIGNvbXBvbmVudC5cbiAqIEJ5IHVzaW5nIHRoZSBmaXh0dXJlIEFQSSwgYSB0ZXN0IGluc3VsYXRlcyBpdHNlbGYgYWdhaW5zdCB1cGRhdGVzIHRvIHRoZSBpbnRlcm5hbHNcbiAqIG9mIGEgY29tcG9uZW50LCBzdWNoIGFzIGNoYW5naW5nIGl0cyBET00gc3RydWN0dXJlLlxuICovXG5leHBvcnQgY2xhc3MgU2t5RHJvcGRvd25GaXh0dXJlIHtcbiAgLyoqXG4gICAqIFJldHVybnMgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGRyb3Bkb3duIGNvbXBvbmVudC5cbiAgICovXG4gIHB1YmxpYyBnZXQgZHJvcGRvd24oKTogU2t5UG9wb3ZlcnNGaXh0dXJlRHJvcGRvd24ge1xuICAgIGNvbnN0IGJ1dHRvbiA9IHRoaXMuYnV0dG9uRGVidWdFbGVtZW50O1xuXG4gICAgaWYgKCFidXR0b24pIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgYnV0dG9uU3R5bGU6IHRoaXMuZ2V0QnV0dG9uU3R5bGUoYnV0dG9uLmNsYXNzZXMpLFxuICAgICAgYnV0dG9uVHlwZTogdGhpcy5nZXRCdXR0b25UeXBlKGJ1dHRvbi5jbGFzc2VzKSxcbiAgICAgIGRpc2FibGVkOiBidXR0b24ubmF0aXZlRWxlbWVudC5kaXNhYmxlZCxcbiAgICAgIGxhYmVsOiBidXR0b24ubmF0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoJ2FyaWEtbGFiZWwnKSxcbiAgICAgIHRpdGxlOiBidXR0b24ubmF0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoJ3RpdGxlJyksXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBkcm9wZG93biBidXR0b24ncyB0ZXh0LlxuICAgKi9cbiAgcHVibGljIGdldCBkcm9wZG93bkJ1dHRvblRleHQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gU2t5QXBwVGVzdFV0aWxpdHkuZ2V0VGV4dCh0aGlzLmJ1dHRvbkRlYnVnRWxlbWVudC5uYXRpdmVFbGVtZW50KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGluZm9ybWF0aW9uIGFib3V0IHRoZSBkcm9wZG93biBtZW51IGNvbXBvbmVudC5cbiAgICovXG4gIHB1YmxpYyBnZXQgZHJvcGRvd25NZW51KCk6IFNreVBvcG92ZXJzRml4dHVyZURyb3Bkb3duTWVudSB7XG4gICAgY29uc3QgbWVudSA9IHRoaXMuZ2V0RHJvcGRvd25NZW51Q29udGVudCgpO1xuICAgIGlmICghbWVudSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBhcmlhTGFiZWxsZWRCeTogbWVudS5nZXRBdHRyaWJ1dGUoJ2FyaWEtbGFiZWxsZWRieScpLFxuICAgICAgYXJpYVJvbGU6IG1lbnUuZ2V0QXR0cmlidXRlKCdyb2xlJyksXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgaWYgdGhlIGRyb3Bkb3duIG1lbnUgaXMgb3BlbiBhbmQgdmlzaWJsZS5cbiAgICovXG4gIHB1YmxpYyBnZXQgZHJvcGRvd25NZW51SXNWaXNpYmxlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmdldERyb3Bkb3duTWVudUNvbnRlbnQoKSAhPT0gdW5kZWZpbmVkO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXQgYnV0dG9uRGVidWdFbGVtZW50KCk6IERlYnVnRWxlbWVudCB7XG4gICAgcmV0dXJuIHRoaXMuZGVidWdFbC5xdWVyeShCeS5jc3MoJy5za3ktZHJvcGRvd24tYnV0dG9uJykpO1xuICB9XG5cbiAgcHJpdmF0ZSBkZWJ1Z0VsOiBEZWJ1Z0VsZW1lbnQ7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBmaXh0dXJlOiBDb21wb25lbnRGaXh0dXJlPGFueT4sIHNreVRlc3RJZDogc3RyaW5nKSB7XG4gICAgdGhpcy5kZWJ1Z0VsID0gU2t5QXBwVGVzdFV0aWxpdHkuZ2V0RGVidWdFbGVtZW50QnlUZXN0SWQoXG4gICAgICBmaXh0dXJlLFxuICAgICAgc2t5VGVzdElkLFxuICAgICAgJ3NreS1kcm9wZG93bidcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIENsaWNrIHRoZSBkcm9wZG93biBidXR0b24gdG8gb3BlbiBvciBjbG9zZSB0aGUgZHJvcGRvd24gbWVudS5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBjbGlja0Ryb3Bkb3duQnV0dG9uKCk6IFByb21pc2U8YW55PiB7XG4gICAgdGhpcy5idXR0b25EZWJ1Z0VsZW1lbnQubmF0aXZlRWxlbWVudC5jbGljaygpO1xuICAgIHRoaXMuZml4dHVyZS5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgcmV0dXJuIHRoaXMuZml4dHVyZS53aGVuU3RhYmxlKCk7XG4gIH1cblxuICAvKipcbiAgICogQ2xpY2sgdGhlIGRyb3Bkb3duIGl0ZW0gYXQgdGhlIHByb3ZpZGVkIGluZGV4LlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGNsaWNrRHJvcGRvd25JdGVtKGluZGV4OiBudW1iZXIpOiBQcm9taXNlPGFueT4ge1xuICAgIGNvbnN0IGl0ZW1FbHMgPSB0aGlzLmdldERyb3Bkb3duSXRlbUVscygpO1xuICAgIGlmIChpbmRleCA+PSBpdGVtRWxzLmxlbmd0aCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBUaGVyZSBpcyBubyBkcm9wZG93biBpdGVtIGF0IGluZGV4ICR7aW5kZXh9LmApO1xuICAgIH1cblxuICAgIGl0ZW1FbHNbaW5kZXhdLnF1ZXJ5U2VsZWN0b3IoJ2J1dHRvbixhJykuY2xpY2soKTtcblxuICAgIHRoaXMuZml4dHVyZS5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgcmV0dXJuIHRoaXMuZml4dHVyZS53aGVuU3RhYmxlKCk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBpbmZvcm1hdGlvbiBhYm91dCB0aGUgZHJvcGRvd24gaXRlbSBhdCB0aGUgcHJvdmlkZWQgaW5kZXguXG4gICAqL1xuICBwdWJsaWMgZ2V0RHJvcGRvd25JdGVtKGluZGV4OiBudW1iZXIpOiBTa3lQb3BvdmVyc0ZpeHR1cmVEcm9wZG93bkl0ZW0ge1xuICAgIGNvbnN0IGl0ZW1FbHMgPSB0aGlzLmdldERyb3Bkb3duSXRlbUVscygpO1xuICAgIGlmIChpbmRleCA+PSBpdGVtRWxzLmxlbmd0aCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBUaGVyZSBpcyBubyBkcm9wZG93biBpdGVtIGF0IGluZGV4ICR7aW5kZXh9LmApO1xuICAgIH1cblxuICAgIGNvbnN0IGl0ZW0gPSBpdGVtRWxzW2luZGV4XTtcbiAgICBpZiAoIWl0ZW0pIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgYXJpYVJvbGU6IGl0ZW0uZ2V0QXR0cmlidXRlKCdyb2xlJyksXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBjb250ZW50cyBvZiB0aGUgZHJvcGRvd24gbWVudS5cbiAgICovXG4gIHB1YmxpYyBnZXREcm9wZG93bk1lbnVDb250ZW50KCk6IGFueSB7XG4gICAgY29uc3Qgb3ZlcmxheSA9IHRoaXMuZ2V0T3ZlcmxheSgpO1xuICAgIGlmICghb3ZlcmxheSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHJldHVybiBvdmVybGF5LnF1ZXJ5U2VsZWN0b3IoJy5za3ktZHJvcGRvd24tbWVudScpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXREcm9wZG93bkl0ZW1FbHMoKTogTm9kZUxpc3RPZjxhbnk+IHtcbiAgICBjb25zdCBvdmVybGF5ID0gdGhpcy5nZXRPdmVybGF5KCk7XG5cbiAgICBpZiAoIW92ZXJsYXkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICByZXR1cm4gb3ZlcmxheS5xdWVyeVNlbGVjdG9yQWxsKCcuc2t5LWRyb3Bkb3duLWl0ZW0nKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0T3ZlcmxheSgpOiBIVE1MRWxlbWVudCB7XG4gICAgcmV0dXJuIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ3NreS1vdmVybGF5Jyk7XG4gIH1cblxuICBwcml2YXRlIGdldEJ1dHRvblN0eWxlKGNsYXNzTmFtZXM6IHsgW2tleTogc3RyaW5nXTogYm9vbGVhbiB9KTogc3RyaW5nIHtcbiAgICBpZiAoY2xhc3NOYW1lc1snc2t5LWJ0bi1wcmltYXJ5J10pIHtcbiAgICAgIHJldHVybiAncHJpbWFyeSc7XG4gICAgfVxuICAgIGlmIChjbGFzc05hbWVzWydza3ktYnRuLWRlZmF1bHQnXSkge1xuICAgICAgcmV0dXJuICdkZWZhdWx0JztcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGdldEJ1dHRvblR5cGUoY2xhc3NOYW1lczogeyBba2V5OiBzdHJpbmddOiBib29sZWFuIH0pOiBzdHJpbmcge1xuICAgIGNvbnN0IHByZWZpeCA9ICdza3ktZHJvcGRvd24tYnV0dG9uLXR5cGUtJztcblxuICAgIGZvciAobGV0IGkgaW4gY2xhc3NOYW1lcykge1xuICAgICAgaWYgKGNsYXNzTmFtZXNbaV0pIHtcbiAgICAgICAgaWYgKGkuaW5kZXhPZihwcmVmaXgpID4gLTEpIHtcbiAgICAgICAgICByZXR1cm4gaS5yZXBsYWNlKHByZWZpeCwgJycpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxufVxuIl19
138
+ //# sourceMappingURL=dropdown-fixture.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dropdown-fixture.js","sourceRoot":"","sources":["../../../../../../../libs/components/popovers/testing/src/dropdown/dropdown-fixture.ts"],"names":[],"mappings":"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","sourcesContent":["import { DebugElement } from '@angular/core';\n\nimport { ComponentFixture } from '@angular/core/testing';\n\nimport { By } from '@angular/platform-browser';\n\nimport { SkyAppTestUtility } from '@skyux-sdk/testing';\n\nimport { SkyPopoversFixtureDropdown } from './popovers-fixture-dropdown';\n\nimport { SkyPopoversFixtureDropdownItem } from './popovers-fixture-dropdown-item';\n\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"]}
@@ -3,13 +3,13 @@ import { SkyDropdownModule } from '@skyux/popovers';
3
3
  import * as i0 from "@angular/core";
4
4
  export class SkyDropdownTestingModule {
5
5
  }
6
- SkyDropdownTestingModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: SkyDropdownTestingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
7
- SkyDropdownTestingModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: SkyDropdownTestingModule, exports: [SkyDropdownModule] });
8
- SkyDropdownTestingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: SkyDropdownTestingModule, imports: [SkyDropdownModule] });
9
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: SkyDropdownTestingModule, decorators: [{
6
+ SkyDropdownTestingModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyDropdownTestingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
7
+ SkyDropdownTestingModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyDropdownTestingModule, exports: [SkyDropdownModule] });
8
+ SkyDropdownTestingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyDropdownTestingModule, imports: [SkyDropdownModule] });
9
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyDropdownTestingModule, decorators: [{
10
10
  type: NgModule,
11
11
  args: [{
12
12
  exports: [SkyDropdownModule],
13
13
  }]
14
14
  }] });
15
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24tdGVzdGluZy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wb3BvdmVycy90ZXN0aW5nL3NyYy9kcm9wZG93bi9kcm9wZG93bi10ZXN0aW5nLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXpDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDOztBQUtwRCxNQUFNLE9BQU8sd0JBQXdCOztzSEFBeEIsd0JBQXdCO3VIQUF4Qix3QkFBd0IsWUFGekIsaUJBQWlCO3VIQUVoQix3QkFBd0IsWUFGekIsaUJBQWlCOzRGQUVoQix3QkFBd0I7a0JBSHBDLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFLENBQUMsaUJBQWlCLENBQUM7aUJBQzdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgU2t5RHJvcGRvd25Nb2R1bGUgfSBmcm9tICdAc2t5dXgvcG9wb3ZlcnMnO1xuXG5ATmdNb2R1bGUoe1xuICBleHBvcnRzOiBbU2t5RHJvcGRvd25Nb2R1bGVdLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lEcm9wZG93blRlc3RpbmdNb2R1bGUge31cbiJdfQ==
15
+ //# sourceMappingURL=dropdown-testing.module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dropdown-testing.module.js","sourceRoot":"","sources":["../../../../../../../libs/components/popovers/testing/src/dropdown/dropdown-testing.module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;;AAKpD,MAAM,OAAO,wBAAwB;;sHAAxB,wBAAwB;uHAAxB,wBAAwB,YAFzB,iBAAiB;uHAEhB,wBAAwB,YAFzB,iBAAiB;4FAEhB,wBAAwB;kBAHpC,QAAQ;mBAAC;oBACR,OAAO,EAAE,CAAC,iBAAiB,CAAC;iBAC7B","sourcesContent":["import { NgModule } from '@angular/core';\n\nimport { SkyDropdownModule } from '@skyux/popovers';\n\n@NgModule({\n exports: [SkyDropdownModule],\n})\nexport class SkyDropdownTestingModule {}\n"]}
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wb3ZlcnMtZml4dHVyZS1kcm9wZG93bi1pdGVtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcG9wb3ZlcnMvdGVzdGluZy9zcmMvZHJvcGRvd24vcG9wb3ZlcnMtZml4dHVyZS1kcm9wZG93bi1pdGVtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIFNreVBvcG92ZXJzRml4dHVyZURyb3Bkb3duSXRlbSB7XG4gIGFyaWFSb2xlOiBzdHJpbmc7XG59XG4iXX0=
2
+ //# sourceMappingURL=popovers-fixture-dropdown-item.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"popovers-fixture-dropdown-item.js","sourceRoot":"","sources":["../../../../../../../libs/components/popovers/testing/src/dropdown/popovers-fixture-dropdown-item.ts"],"names":[],"mappings":"","sourcesContent":["export interface SkyPopoversFixtureDropdownItem {\n ariaRole: string;\n}\n"]}
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wb3ZlcnMtZml4dHVyZS1kcm9wZG93bi1tZW51LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcG9wb3ZlcnMvdGVzdGluZy9zcmMvZHJvcGRvd24vcG9wb3ZlcnMtZml4dHVyZS1kcm9wZG93bi1tZW51LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIFNreVBvcG92ZXJzRml4dHVyZURyb3Bkb3duTWVudSB7XG4gIGFyaWFMYWJlbGxlZEJ5OiBzdHJpbmc7XG4gIGFyaWFSb2xlOiBzdHJpbmc7XG59XG4iXX0=
2
+ //# sourceMappingURL=popovers-fixture-dropdown-menu.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"popovers-fixture-dropdown-menu.js","sourceRoot":"","sources":["../../../../../../../libs/components/popovers/testing/src/dropdown/popovers-fixture-dropdown-menu.ts"],"names":[],"mappings":"","sourcesContent":["export interface SkyPopoversFixtureDropdownMenu {\n ariaLabelledBy: string;\n ariaRole: string;\n}\n"]}
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wb3ZlcnMtZml4dHVyZS1kcm9wZG93bi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3BvcG92ZXJzL3Rlc3Rpbmcvc3JjL2Ryb3Bkb3duL3BvcG92ZXJzLWZpeHR1cmUtZHJvcGRvd24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgU2t5UG9wb3ZlcnNGaXh0dXJlRHJvcGRvd24ge1xuICBidXR0b25TdHlsZTogc3RyaW5nO1xuICBidXR0b25UeXBlOiBzdHJpbmc7XG4gIGRpc2FibGVkOiBib29sZWFuO1xuICBsYWJlbDogc3RyaW5nO1xuICB0aXRsZTogc3RyaW5nO1xufVxuIl19
2
+ //# sourceMappingURL=popovers-fixture-dropdown.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"popovers-fixture-dropdown.js","sourceRoot":"","sources":["../../../../../../../libs/components/popovers/testing/src/dropdown/popovers-fixture-dropdown.ts"],"names":[],"mappings":"","sourcesContent":["export interface SkyPopoversFixtureDropdown {\n buttonStyle: string;\n buttonType: string;\n disabled: boolean;\n label: string;\n title: string;\n}\n"]}
@@ -83,4 +83,4 @@ export class SkyPopoverFixture {
83
83
  return !prefixedClass ? undefined : prefixedClass.slice(prefix.length);
84
84
  }
85
85
  }
86
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wb3Zlci1maXh0dXJlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcG9wb3ZlcnMvdGVzdGluZy9zcmMvcG9wb3Zlci9wb3BvdmVyLWZpeHR1cmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFdkQ7Ozs7R0FJRztBQUNILE1BQU0sT0FBTyxpQkFBaUI7SUEwQzVCLFlBQW9CLE9BQThCO1FBQTlCLFlBQU8sR0FBUCxPQUFPLENBQXVCO0lBQUcsQ0FBQztJQXpDdEQ7O09BRUc7SUFDSCxJQUFXLFNBQVM7UUFDbEIsT0FBTyxJQUFJLENBQUMsMkJBQTJCLENBQ3JDLElBQUksQ0FBQyxnQkFBZ0IsRUFDckIsd0JBQXdCLENBQ3pCLENBQUM7SUFDSixDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFXLElBQUk7UUFDYixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDMUIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBVyxTQUFTO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLDJCQUEyQixDQUNyQyxJQUFJLENBQUMsZ0JBQWdCLEVBQ3JCLHdCQUF3QixDQUN6QixDQUFDO0lBQ0osQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBVyxZQUFZO1FBQ3JCLE9BQU8saUJBQWlCLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFXLGdCQUFnQjtRQUN6QixPQUFPLElBQUksQ0FBQyxjQUFjLEtBQUssU0FBUyxDQUFDO0lBQzNDLENBQUM7SUFJRDs7T0FFRztJQUNJLElBQUk7UUFDVCwwREFBMEQ7UUFDMUQsaUJBQWlCLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBRTlELElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDN0IsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQ25DLENBQUM7SUFFRCxpQkFBaUI7SUFDakIsSUFBWSxjQUFjO1FBQ3hCLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFFRCxJQUFZLGdCQUFnQjtRQUMxQixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsd0JBQXdCLENBQUMsQ0FBQztJQUNyRCxDQUFDO0lBRUQsSUFBWSxZQUFZO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFFRCxJQUFZLFdBQVc7UUFDckIsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLG1CQUFtQixDQUFDLENBQUM7SUFDaEQsQ0FBQztJQUVPLFVBQVU7UUFDaEIsT0FBTyxRQUFRLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFFTyxZQUFZLENBQUMsS0FBYTtRQUNoQyxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFFbEMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFFRDs7Ozs7Ozs7O09BU0c7SUFDSywyQkFBMkIsQ0FDakMsT0FBb0IsRUFDcEIsTUFBYztRQUVkLElBQUksZ0JBQWdCLEdBQUcsT0FBTyxhQUFQLE9BQU8sdUJBQVAsT0FBTyxDQUFFLFNBQVMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDckQsSUFBSSxhQUFhLEdBQUcsZ0JBQWdCLGFBQWhCLGdCQUFnQix1QkFBaEIsZ0JBQWdCLENBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFFeEUsT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN6RSxDQUFDO0NBRUYiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnRGaXh0dXJlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS90ZXN0aW5nJztcblxuaW1wb3J0IHsgU2t5QXBwVGVzdFV0aWxpdHkgfSBmcm9tICdAc2t5dXgtc2RrL3Rlc3RpbmcnO1xuXG4vKipcbiAqIFByb3ZpZGVzIGluZm9ybWF0aW9uIGZvciBhbmQgaW50ZXJhY3Rpb24gd2l0aCBhIFNLWSBVWCBwb3BvdmVyIGNvbXBvbmVudC5cbiAqIEJ5IHVzaW5nIHRoZSBmaXh0dXJlIEFQSSwgYSB0ZXN0IGluc3VsYXRlcyBpdHNlbGYgYWdhaW5zdCB1cGRhdGVzIHRvIHRoZSBpbnRlcm5hbHNcbiAqIG9mIGEgY29tcG9uZW50LCBzdWNoIGFzIGNoYW5naW5nIGl0cyBET00gc3RydWN0dXJlLlxuICovXG5leHBvcnQgY2xhc3MgU2t5UG9wb3ZlckZpeHR1cmUge1xuICAvKipcbiAgICogUmV0dXJucyB0aGUgcG9wb3ZlciBhbGlnbm1lbnQgaWYgdGhlIHBvcG92ZXIgaXMgb3Blbiwgb3RoZXJ3aXNlIHVuZGVmaW5lZC5cbiAgICovXG4gIHB1YmxpYyBnZXQgYWxpZ25tZW50KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0Q2xhc3NTdWZmaXhCeUNsYXNzUHJlZml4KFxuICAgICAgdGhpcy5jb250YWluZXJFbGVtZW50LFxuICAgICAgJ3NreS1wb3BvdmVyLWFsaWdubWVudC0nXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBwb3BvdmVyIGJvZHkgZWxlbWVudCBpZiB0aGUgcG9wb3ZlciBpcyBvcGVuLCBvdGhlcndpc2UgdW5kZWZpbmVkLlxuICAgKi9cbiAgcHVibGljIGdldCBib2R5KCk6IEhUTUxFbGVtZW50IHtcbiAgICByZXR1cm4gdGhpcy5ib2R5RWxlbWVudDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBwb3BvdmVyIHBvc2l0aW9uIGlmIHRoZSBwb3BvdmVyIGlzIG9wZW4sIG90aGVyd2lzZSB1bmRlZmluZWQuXG4gICAqL1xuICBwdWJsaWMgZ2V0IHBsYWNlbWVudCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmdldENsYXNzU3VmZml4QnlDbGFzc1ByZWZpeChcbiAgICAgIHRoaXMuY29udGFpbmVyRWxlbWVudCxcbiAgICAgICdza3ktcG9wb3Zlci1wbGFjZW1lbnQtJ1xuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgcG9wb3ZlciB0aXRsZSB0ZXh0IGlmIHRoZSBwb3BvdmVyIGlzIG9wZW4sIG90aGVyd2lzZSB1bmRlZmluZWQuXG4gICAqL1xuICBwdWJsaWMgZ2V0IHBvcG92ZXJUaXRsZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiBTa3lBcHBUZXN0VXRpbGl0eS5nZXRUZXh0KHRoaXMudGl0bGVFbGVtZW50KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgaWYgdGhlIHBvcG92ZXIgaXMgb3BlbiBhbmQgdmlzaWJsZS5cbiAgICovXG4gIHB1YmxpYyBnZXQgcG9wb3ZlcklzVmlzaWJsZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5jb250ZW50RWxlbWVudCAhPT0gdW5kZWZpbmVkO1xuICB9XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBmaXh0dXJlOiBDb21wb25lbnRGaXh0dXJlPGFueT4pIHt9XG5cbiAgLyoqXG4gICAqIFRyaWdnZXJzIHRoZSBibHVyIGV2ZW50IGZvciB0aGUgcG9wb3Zlci5cbiAgICovXG4gIHB1YmxpYyBibHVyKCk6IFByb21pc2U8YW55PiB7XG4gICAgLy8gY2xvc2UgdGhlIHBvcG92ZXIgYnkgY2hhbmdpbmcgZm9jdXMgdG8gdGhlIGJvZHkgZWxlbWVudFxuICAgIFNreUFwcFRlc3RVdGlsaXR5LmZpcmVEb21FdmVudCh3aW5kb3cuZG9jdW1lbnQuYm9keSwgJ2NsaWNrJyk7XG5cbiAgICB0aGlzLmZpeHR1cmUuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIHJldHVybiB0aGlzLmZpeHR1cmUud2hlblN0YWJsZSgpO1xuICB9XG5cbiAgLy8jcmVnaW9uIGhlbHBlcnNcbiAgcHJpdmF0ZSBnZXQgY29udGVudEVsZW1lbnQoKTogSFRNTEVsZW1lbnQge1xuICAgIHJldHVybiB0aGlzLnF1ZXJ5T3ZlcmxheSgnc2t5LXBvcG92ZXItY29udGVudCcpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXQgY29udGFpbmVyRWxlbWVudCgpOiBIVE1MRWxlbWVudCB7XG4gICAgcmV0dXJuIHRoaXMucXVlcnlPdmVybGF5KCcuc2t5LXBvcG92ZXItY29udGFpbmVyJyk7XG4gIH1cblxuICBwcml2YXRlIGdldCB0aXRsZUVsZW1lbnQoKTogSFRNTEVsZW1lbnQge1xuICAgIHJldHVybiB0aGlzLnF1ZXJ5T3ZlcmxheSgnLnNreS1wb3BvdmVyLXRpdGxlJyk7XG4gIH1cblxuICBwcml2YXRlIGdldCBib2R5RWxlbWVudCgpOiBIVE1MRWxlbWVudCB7XG4gICAgcmV0dXJuIHRoaXMucXVlcnlPdmVybGF5KCcuc2t5LXBvcG92ZXItYm9keScpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRPdmVybGF5KCk6IEhUTUxFbGVtZW50IHtcbiAgICByZXR1cm4gZG9jdW1lbnQucXVlcnlTZWxlY3Rvcignc2t5LW92ZXJsYXknKTtcbiAgfVxuXG4gIHByaXZhdGUgcXVlcnlPdmVybGF5KHF1ZXJ5OiBzdHJpbmcpOiBIVE1MRWxlbWVudCB7XG4gICAgY29uc3Qgb3ZlcmxheSA9IHRoaXMuZ2V0T3ZlcmxheSgpO1xuXG4gICAgcmV0dXJuICFvdmVybGF5ID8gdW5kZWZpbmVkIDogb3ZlcmxheS5xdWVyeVNlbGVjdG9yKHF1ZXJ5KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZWFyY2hlcyB0aGUgZWxlbWVudCdzIGNsYXNzIG5hbWVzIGZvciBhIGNsYXNzIHdoaWNoIG1hdGNoZXMgYSBnaXZlbiBwcmVmaXguXG4gICAqIElmIGEgbWF0Y2ggaXMgZm91bmQsIHRoZSBwcmVmaXggaXMgdHJpbW1lZCBmcm9tIHRoZSBjbGFzcyBuYW1lIGFuZCB0aGUgc3VmZml4IGlzIHJldHVybmVkLlxuICAgKiBJZiBubyBjbGFzcyBtYXRjaGluZyB0aGUgcHJlZml4IGlzIGZvdW5kLCB1bmRlZmluZWQgaXMgcmV0dXJuZWQuXG4gICAqXG4gICAqIEV4YW1wbGU6XG4gICAqICAgRm9yIGEgY2xhc3MgJ3NreS1wb3BvdmVyLXBsYWNlbWVudC1yaWdodCcsIHBhc3NpbmcgdGhlIHByZWZpeCAnc2t5LXBvcG92ZXItcGxhY2VtZW50LSdcbiAgICogICBzaG91bGQgcmV0dXJuIHRoZSB2YWx1ZSAncmlnaHQnLlxuICAgKiBAcGFyYW0gcHJlZml4XG4gICAqL1xuICBwcml2YXRlIGdldENsYXNzU3VmZml4QnlDbGFzc1ByZWZpeChcbiAgICBlbGVtZW50OiBIVE1MRWxlbWVudCxcbiAgICBwcmVmaXg6IHN0cmluZ1xuICApOiBzdHJpbmcge1xuICAgIGxldCBjb250YWluZXJDbGFzc2VzID0gZWxlbWVudD8uY2xhc3NOYW1lLnNwbGl0KCcgJyk7XG4gICAgbGV0IHByZWZpeGVkQ2xhc3MgPSBjb250YWluZXJDbGFzc2VzPy5maW5kKCh4KSA9PiB4LnN0YXJ0c1dpdGgocHJlZml4KSk7XG5cbiAgICByZXR1cm4gIXByZWZpeGVkQ2xhc3MgPyB1bmRlZmluZWQgOiBwcmVmaXhlZENsYXNzLnNsaWNlKHByZWZpeC5sZW5ndGgpO1xuICB9XG4gIC8vI2VuZHJlZ2lvblxufVxuIl19
86
+ //# sourceMappingURL=popover-fixture.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"popover-fixture.js","sourceRoot":"","sources":["../../../../../../../libs/components/popovers/testing/src/popover/popover-fixture.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAEvD;;;;GAIG;AACH,MAAM,OAAO,iBAAiB;IA0C5B,YAAoB,OAA8B;QAA9B,YAAO,GAAP,OAAO,CAAuB;IAAG,CAAC;IAzCtD;;OAEG;IACH,IAAW,SAAS;QAClB,OAAO,IAAI,CAAC,2BAA2B,CACrC,IAAI,CAAC,gBAAgB,EACrB,wBAAwB,CACzB,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,IAAW,IAAI;QACb,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAED;;OAEG;IACH,IAAW,SAAS;QAClB,OAAO,IAAI,CAAC,2BAA2B,CACrC,IAAI,CAAC,gBAAgB,EACrB,wBAAwB,CACzB,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,IAAW,YAAY;QACrB,OAAO,iBAAiB,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACtD,CAAC;IAED;;OAEG;IACH,IAAW,gBAAgB;QACzB,OAAO,IAAI,CAAC,cAAc,KAAK,SAAS,CAAC;IAC3C,CAAC;IAID;;OAEG;IACI,IAAI;QACT,0DAA0D;QAC1D,iBAAiB,CAAC,YAAY,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAE9D,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC;QAC7B,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;IACnC,CAAC;IAED,iBAAiB;IACjB,IAAY,cAAc;QACxB,OAAO,IAAI,CAAC,YAAY,CAAC,qBAAqB,CAAC,CAAC;IAClD,CAAC;IAED,IAAY,gBAAgB;QAC1B,OAAO,IAAI,CAAC,YAAY,CAAC,wBAAwB,CAAC,CAAC;IACrD,CAAC;IAED,IAAY,YAAY;QACtB,OAAO,IAAI,CAAC,YAAY,CAAC,oBAAoB,CAAC,CAAC;IACjD,CAAC;IAED,IAAY,WAAW;QACrB,OAAO,IAAI,CAAC,YAAY,CAAC,mBAAmB,CAAC,CAAC;IAChD,CAAC;IAEO,UAAU;QAChB,OAAO,QAAQ,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC;IAC/C,CAAC;IAEO,YAAY,CAAC,KAAa;QAChC,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QAElC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IAC7D,CAAC;IAED;;;;;;;;;OASG;IACK,2BAA2B,CACjC,OAAoB,EACpB,MAAc;QAEd,IAAI,gBAAgB,GAAG,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACrD,IAAI,aAAa,GAAG,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;QAExE,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACzE,CAAC;CAEF","sourcesContent":["import { ComponentFixture } from '@angular/core/testing';\n\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"]}