@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.
Files changed (135) hide show
  1. package/documentation.json +2 -2
  2. package/esm2020/index.mjs +23 -0
  3. package/esm2020/lib/modules/dropdown/dropdown-button.component.mjs +14 -0
  4. package/esm2020/lib/modules/dropdown/dropdown-extensions.mjs +14 -0
  5. package/esm2020/lib/modules/dropdown/dropdown-item.component.mjs +69 -0
  6. package/esm2020/lib/modules/dropdown/dropdown-menu.component.mjs +305 -0
  7. package/esm2020/lib/modules/dropdown/dropdown.component.mjs +359 -0
  8. package/esm2020/lib/modules/dropdown/dropdown.module.mjs +60 -0
  9. package/esm2020/lib/modules/dropdown/types/dropdown-horizontal-alignment.mjs +2 -0
  10. package/esm2020/lib/modules/dropdown/types/dropdown-menu-change.mjs +2 -0
  11. package/esm2020/lib/modules/dropdown/types/dropdown-message-type.mjs +40 -0
  12. package/esm2020/lib/modules/dropdown/types/dropdown-message.mjs +2 -0
  13. package/esm2020/lib/modules/dropdown/types/dropdown-trigger-type.mjs +2 -0
  14. package/esm2020/lib/modules/popover/popover-adapter.service.mjs +74 -0
  15. package/esm2020/lib/modules/popover/popover-animation-state.mjs +2 -0
  16. package/esm2020/lib/modules/popover/popover-animation.mjs +19 -0
  17. package/esm2020/lib/modules/popover/popover-content.component.mjs +261 -0
  18. package/esm2020/lib/modules/popover/popover-context.mjs +10 -0
  19. package/esm2020/lib/modules/popover/popover-extensions.mjs +29 -0
  20. package/esm2020/lib/modules/popover/popover.component.mjs +198 -0
  21. package/esm2020/lib/modules/popover/popover.directive.mjs +176 -0
  22. package/esm2020/lib/modules/popover/popover.module.mjs +55 -0
  23. package/esm2020/lib/modules/popover/types/popover-adapter-arrow-coordinates.mjs +2 -0
  24. package/esm2020/lib/modules/popover/types/popover-adapter-elements.mjs +2 -0
  25. package/esm2020/lib/modules/popover/types/popover-alignment.mjs +2 -0
  26. package/esm2020/lib/modules/popover/types/popover-message-type.mjs +24 -0
  27. package/esm2020/lib/modules/popover/types/popover-message.mjs +2 -0
  28. package/esm2020/lib/modules/popover/types/popover-placement.mjs +2 -0
  29. package/esm2020/lib/modules/popover/types/popover-position.mjs +2 -0
  30. package/esm2020/lib/modules/popover/types/popover-trigger.mjs +2 -0
  31. package/esm2020/lib/modules/shared/sky-popovers-resources.module.mjs +47 -0
  32. package/esm2020/skyux-popovers.mjs +5 -0
  33. package/esm2020/testing/dropdown/dropdown-fixture.mjs +133 -0
  34. package/esm2020/testing/dropdown/dropdown-testing.module.mjs +15 -0
  35. package/esm2020/testing/dropdown/popovers-fixture-dropdown-item.mjs +2 -0
  36. package/esm2020/testing/dropdown/popovers-fixture-dropdown-menu.mjs +2 -0
  37. package/esm2020/testing/dropdown/popovers-fixture-dropdown.mjs +2 -0
  38. package/esm2020/testing/popover/popover-fixture.mjs +86 -0
  39. package/esm2020/testing/popover/popover-testing.module.mjs +29 -0
  40. package/esm2020/testing/public-api.mjs +8 -0
  41. package/esm2020/testing/skyux-popovers-testing.mjs +5 -0
  42. package/fesm2015/{skyux-popovers-testing.js → skyux-popovers-testing.mjs} +9 -9
  43. package/fesm2015/skyux-popovers-testing.mjs.map +1 -0
  44. package/fesm2015/skyux-popovers.mjs +1705 -0
  45. package/fesm2015/skyux-popovers.mjs.map +1 -0
  46. package/fesm2020/skyux-popovers-testing.mjs +266 -0
  47. package/fesm2020/skyux-popovers-testing.mjs.map +1 -0
  48. package/{fesm2015/skyux-popovers.js → fesm2020/skyux-popovers.mjs} +53 -88
  49. package/fesm2020/skyux-popovers.mjs.map +1 -0
  50. package/package.json +40 -16
  51. package/testing/package.json +5 -5
  52. package/bundles/skyux-popovers-testing.umd.js +0 -682
  53. package/bundles/skyux-popovers.umd.js +0 -1889
  54. package/esm2015/index.js +0 -23
  55. package/esm2015/index.js.map +0 -1
  56. package/esm2015/lib/modules/dropdown/dropdown-button.component.js +0 -17
  57. package/esm2015/lib/modules/dropdown/dropdown-button.component.js.map +0 -1
  58. package/esm2015/lib/modules/dropdown/dropdown-extensions.js +0 -14
  59. package/esm2015/lib/modules/dropdown/dropdown-extensions.js.map +0 -1
  60. package/esm2015/lib/modules/dropdown/dropdown-item.component.js +0 -75
  61. package/esm2015/lib/modules/dropdown/dropdown-item.component.js.map +0 -1
  62. package/esm2015/lib/modules/dropdown/dropdown-menu.component.js +0 -311
  63. package/esm2015/lib/modules/dropdown/dropdown-menu.component.js.map +0 -1
  64. package/esm2015/lib/modules/dropdown/dropdown.component.js +0 -363
  65. package/esm2015/lib/modules/dropdown/dropdown.component.js.map +0 -1
  66. package/esm2015/lib/modules/dropdown/dropdown.module.js +0 -60
  67. package/esm2015/lib/modules/dropdown/dropdown.module.js.map +0 -1
  68. package/esm2015/lib/modules/dropdown/types/dropdown-horizontal-alignment.js +0 -2
  69. package/esm2015/lib/modules/dropdown/types/dropdown-horizontal-alignment.js.map +0 -1
  70. package/esm2015/lib/modules/dropdown/types/dropdown-menu-change.js +0 -2
  71. package/esm2015/lib/modules/dropdown/types/dropdown-menu-change.js.map +0 -1
  72. package/esm2015/lib/modules/dropdown/types/dropdown-message-type.js +0 -40
  73. package/esm2015/lib/modules/dropdown/types/dropdown-message-type.js.map +0 -1
  74. package/esm2015/lib/modules/dropdown/types/dropdown-message.js +0 -2
  75. package/esm2015/lib/modules/dropdown/types/dropdown-message.js.map +0 -1
  76. package/esm2015/lib/modules/dropdown/types/dropdown-trigger-type.js +0 -2
  77. package/esm2015/lib/modules/dropdown/types/dropdown-trigger-type.js.map +0 -1
  78. package/esm2015/lib/modules/popover/popover-adapter.service.js +0 -74
  79. package/esm2015/lib/modules/popover/popover-adapter.service.js.map +0 -1
  80. package/esm2015/lib/modules/popover/popover-animation-state.js +0 -2
  81. package/esm2015/lib/modules/popover/popover-animation-state.js.map +0 -1
  82. package/esm2015/lib/modules/popover/popover-animation.js +0 -19
  83. package/esm2015/lib/modules/popover/popover-animation.js.map +0 -1
  84. package/esm2015/lib/modules/popover/popover-content.component.js +0 -271
  85. package/esm2015/lib/modules/popover/popover-content.component.js.map +0 -1
  86. package/esm2015/lib/modules/popover/popover-context.js +0 -10
  87. package/esm2015/lib/modules/popover/popover-context.js.map +0 -1
  88. package/esm2015/lib/modules/popover/popover-extensions.js +0 -29
  89. package/esm2015/lib/modules/popover/popover-extensions.js.map +0 -1
  90. package/esm2015/lib/modules/popover/popover.component.js +0 -203
  91. package/esm2015/lib/modules/popover/popover.component.js.map +0 -1
  92. package/esm2015/lib/modules/popover/popover.directive.js +0 -176
  93. package/esm2015/lib/modules/popover/popover.directive.js.map +0 -1
  94. package/esm2015/lib/modules/popover/popover.module.js +0 -56
  95. package/esm2015/lib/modules/popover/popover.module.js.map +0 -1
  96. package/esm2015/lib/modules/popover/types/popover-adapter-arrow-coordinates.js +0 -2
  97. package/esm2015/lib/modules/popover/types/popover-adapter-arrow-coordinates.js.map +0 -1
  98. package/esm2015/lib/modules/popover/types/popover-adapter-elements.js +0 -2
  99. package/esm2015/lib/modules/popover/types/popover-adapter-elements.js.map +0 -1
  100. package/esm2015/lib/modules/popover/types/popover-alignment.js +0 -2
  101. package/esm2015/lib/modules/popover/types/popover-alignment.js.map +0 -1
  102. package/esm2015/lib/modules/popover/types/popover-message-type.js +0 -24
  103. package/esm2015/lib/modules/popover/types/popover-message-type.js.map +0 -1
  104. package/esm2015/lib/modules/popover/types/popover-message.js +0 -2
  105. package/esm2015/lib/modules/popover/types/popover-message.js.map +0 -1
  106. package/esm2015/lib/modules/popover/types/popover-placement.js +0 -2
  107. package/esm2015/lib/modules/popover/types/popover-placement.js.map +0 -1
  108. package/esm2015/lib/modules/popover/types/popover-position.js +0 -2
  109. package/esm2015/lib/modules/popover/types/popover-position.js.map +0 -1
  110. package/esm2015/lib/modules/popover/types/popover-trigger.js +0 -2
  111. package/esm2015/lib/modules/popover/types/popover-trigger.js.map +0 -1
  112. package/esm2015/lib/modules/shared/sky-popovers-resources.module.js +0 -47
  113. package/esm2015/lib/modules/shared/sky-popovers-resources.module.js.map +0 -1
  114. package/esm2015/skyux-popovers.js +0 -5
  115. package/esm2015/skyux-popovers.js.map +0 -1
  116. package/esm2015/testing/dropdown/dropdown-fixture.js +0 -138
  117. package/esm2015/testing/dropdown/dropdown-fixture.js.map +0 -1
  118. package/esm2015/testing/dropdown/dropdown-testing.module.js +0 -15
  119. package/esm2015/testing/dropdown/dropdown-testing.module.js.map +0 -1
  120. package/esm2015/testing/dropdown/popovers-fixture-dropdown-item.js +0 -2
  121. package/esm2015/testing/dropdown/popovers-fixture-dropdown-item.js.map +0 -1
  122. package/esm2015/testing/dropdown/popovers-fixture-dropdown-menu.js +0 -2
  123. package/esm2015/testing/dropdown/popovers-fixture-dropdown-menu.js.map +0 -1
  124. package/esm2015/testing/dropdown/popovers-fixture-dropdown.js +0 -2
  125. package/esm2015/testing/dropdown/popovers-fixture-dropdown.js.map +0 -1
  126. package/esm2015/testing/popover/popover-fixture.js +0 -86
  127. package/esm2015/testing/popover/popover-fixture.js.map +0 -1
  128. package/esm2015/testing/popover/popover-testing.module.js +0 -29
  129. package/esm2015/testing/popover/popover-testing.module.js.map +0 -1
  130. package/esm2015/testing/public-api.js +0 -8
  131. package/esm2015/testing/public-api.js.map +0 -1
  132. package/esm2015/testing/skyux-popovers-testing.js +0 -5
  133. package/esm2015/testing/skyux-popovers-testing.js.map +0 -1
  134. package/fesm2015/skyux-popovers-testing.js.map +0 -1
  135. package/fesm2015/skyux-popovers.js.map +0 -1
@@ -0,0 +1,74 @@
1
+ import { Injectable } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ /**
4
+ * @internal
5
+ */
6
+ export class SkyPopoverAdapterService {
7
+ getArrowCoordinates(elements, placement, themeName) {
8
+ const callerRect = elements.caller.nativeElement.getBoundingClientRect();
9
+ const popoverRect = elements.popover.nativeElement.getBoundingClientRect();
10
+ const arrowRect = elements.popoverArrow.nativeElement.getBoundingClientRect();
11
+ const pixelTolerance = 20;
12
+ let top;
13
+ let left;
14
+ if (placement === 'above' || placement === 'below') {
15
+ left = callerRect.left + callerRect.width * 0.5;
16
+ // Make sure the arrow never detaches from the popover.
17
+ if (left - pixelTolerance < popoverRect.left) {
18
+ left = popoverRect.left + pixelTolerance;
19
+ }
20
+ else if (left + pixelTolerance > popoverRect.right) {
21
+ left = popoverRect.right - pixelTolerance;
22
+ }
23
+ if (placement === 'above') {
24
+ if (themeName !== 'modern') {
25
+ top = callerRect.top - arrowRect.height;
26
+ }
27
+ else {
28
+ top = callerRect.top - arrowRect.height + 5;
29
+ }
30
+ }
31
+ else {
32
+ if (themeName !== 'modern') {
33
+ top = callerRect.bottom;
34
+ }
35
+ else {
36
+ top = callerRect.bottom + 4;
37
+ }
38
+ }
39
+ }
40
+ else {
41
+ top = callerRect.top + callerRect.height * 0.5;
42
+ // Make sure the arrow never detaches from the popover.
43
+ if (top - pixelTolerance < popoverRect.top) {
44
+ top = popoverRect.top + pixelTolerance;
45
+ }
46
+ else if (top + pixelTolerance > popoverRect.bottom) {
47
+ top = popoverRect.bottom - pixelTolerance;
48
+ }
49
+ if (placement === 'left') {
50
+ if (themeName !== 'modern') {
51
+ left = callerRect.left - arrowRect.width;
52
+ }
53
+ else {
54
+ left = callerRect.left - arrowRect.width + 5;
55
+ }
56
+ }
57
+ else {
58
+ if (themeName !== 'modern') {
59
+ left = callerRect.right;
60
+ }
61
+ else {
62
+ left = callerRect.right + 4;
63
+ }
64
+ }
65
+ }
66
+ return { top, left };
67
+ }
68
+ }
69
+ SkyPopoverAdapterService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyPopoverAdapterService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
70
+ SkyPopoverAdapterService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyPopoverAdapterService });
71
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyPopoverAdapterService, decorators: [{
72
+ type: Injectable
73
+ }] });
74
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wb3Zlci1hZGFwdGVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvcG9wb3ZlcnMvc3JjL2xpYi9tb2R1bGVzL3BvcG92ZXIvcG9wb3Zlci1hZGFwdGVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFNM0M7O0dBRUc7QUFFSCxNQUFNLE9BQU8sd0JBQXdCO0lBQzVCLG1CQUFtQixDQUN4QixRQUFtQyxFQUNuQyxTQUE4QixFQUM5QixTQUFrQjtRQUVsQixNQUFNLFVBQVUsR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1FBQ3pFLE1BQU0sV0FBVyxHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLHFCQUFxQixFQUFFLENBQUM7UUFDM0UsTUFBTSxTQUFTLEdBQ2IsUUFBUSxDQUFDLFlBQVksQ0FBQyxhQUFhLENBQUMscUJBQXFCLEVBQUUsQ0FBQztRQUU5RCxNQUFNLGNBQWMsR0FBRyxFQUFFLENBQUM7UUFFMUIsSUFBSSxHQUFXLENBQUM7UUFDaEIsSUFBSSxJQUFZLENBQUM7UUFFakIsSUFBSSxTQUFTLEtBQUssT0FBTyxJQUFJLFNBQVMsS0FBSyxPQUFPLEVBQUU7WUFDbEQsSUFBSSxHQUFHLFVBQVUsQ0FBQyxJQUFJLEdBQUcsVUFBVSxDQUFDLEtBQUssR0FBRyxHQUFHLENBQUM7WUFFaEQsdURBQXVEO1lBQ3ZELElBQUksSUFBSSxHQUFHLGNBQWMsR0FBRyxXQUFXLENBQUMsSUFBSSxFQUFFO2dCQUM1QyxJQUFJLEdBQUcsV0FBVyxDQUFDLElBQUksR0FBRyxjQUFjLENBQUM7YUFDMUM7aUJBQU0sSUFBSSxJQUFJLEdBQUcsY0FBYyxHQUFHLFdBQVcsQ0FBQyxLQUFLLEVBQUU7Z0JBQ3BELElBQUksR0FBRyxXQUFXLENBQUMsS0FBSyxHQUFHLGNBQWMsQ0FBQzthQUMzQztZQUVELElBQUksU0FBUyxLQUFLLE9BQU8sRUFBRTtnQkFDekIsSUFBSSxTQUFTLEtBQUssUUFBUSxFQUFFO29CQUMxQixHQUFHLEdBQUcsVUFBVSxDQUFDLEdBQUcsR0FBRyxTQUFTLENBQUMsTUFBTSxDQUFDO2lCQUN6QztxQkFBTTtvQkFDTCxHQUFHLEdBQUcsVUFBVSxDQUFDLEdBQUcsR0FBRyxTQUFTLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztpQkFDN0M7YUFDRjtpQkFBTTtnQkFDTCxJQUFJLFNBQVMsS0FBSyxRQUFRLEVBQUU7b0JBQzFCLEdBQUcsR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDO2lCQUN6QjtxQkFBTTtvQkFDTCxHQUFHLEdBQUcsVUFBVSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7aUJBQzdCO2FBQ0Y7U0FDRjthQUFNO1lBQ0wsR0FBRyxHQUFHLFVBQVUsQ0FBQyxHQUFHLEdBQUcsVUFBVSxDQUFDLE1BQU0sR0FBRyxHQUFHLENBQUM7WUFFL0MsdURBQXVEO1lBQ3ZELElBQUksR0FBRyxHQUFHLGNBQWMsR0FBRyxXQUFXLENBQUMsR0FBRyxFQUFFO2dCQUMxQyxHQUFHLEdBQUcsV0FBVyxDQUFDLEdBQUcsR0FBRyxjQUFjLENBQUM7YUFDeEM7aUJBQU0sSUFBSSxHQUFHLEdBQUcsY0FBYyxHQUFHLFdBQVcsQ0FBQyxNQUFNLEVBQUU7Z0JBQ3BELEdBQUcsR0FBRyxXQUFXLENBQUMsTUFBTSxHQUFHLGNBQWMsQ0FBQzthQUMzQztZQUVELElBQUksU0FBUyxLQUFLLE1BQU0sRUFBRTtnQkFDeEIsSUFBSSxTQUFTLEtBQUssUUFBUSxFQUFFO29CQUMxQixJQUFJLEdBQUcsVUFBVSxDQUFDLElBQUksR0FBRyxTQUFTLENBQUMsS0FBSyxDQUFDO2lCQUMxQztxQkFBTTtvQkFDTCxJQUFJLEdBQUcsVUFBVSxDQUFDLElBQUksR0FBRyxTQUFTLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQztpQkFDOUM7YUFDRjtpQkFBTTtnQkFDTCxJQUFJLFNBQVMsS0FBSyxRQUFRLEVBQUU7b0JBQzFCLElBQUksR0FBRyxVQUFVLENBQUMsS0FBSyxDQUFDO2lCQUN6QjtxQkFBTTtvQkFDTCxJQUFJLEdBQUcsVUFBVSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUM7aUJBQzdCO2FBQ0Y7U0FDRjtRQUVELE9BQU8sRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLENBQUM7SUFDdkIsQ0FBQzs7cUhBakVVLHdCQUF3Qjt5SEFBeEIsd0JBQXdCOzJGQUF4Qix3QkFBd0I7a0JBRHBDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IFNreVBvcG92ZXJBZGFwdGVyQXJyb3dDb29yZGluYXRlcyB9IGZyb20gJy4vdHlwZXMvcG9wb3Zlci1hZGFwdGVyLWFycm93LWNvb3JkaW5hdGVzJztcbmltcG9ydCB7IFNreVBvcG92ZXJBZGFwdGVyRWxlbWVudHMgfSBmcm9tICcuL3R5cGVzL3BvcG92ZXItYWRhcHRlci1lbGVtZW50cyc7XG5pbXBvcnQgeyBTa3lQb3BvdmVyUGxhY2VtZW50IH0gZnJvbSAnLi90eXBlcy9wb3BvdmVyLXBsYWNlbWVudCc7XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBTa3lQb3BvdmVyQWRhcHRlclNlcnZpY2Uge1xuICBwdWJsaWMgZ2V0QXJyb3dDb29yZGluYXRlcyhcbiAgICBlbGVtZW50czogU2t5UG9wb3ZlckFkYXB0ZXJFbGVtZW50cyxcbiAgICBwbGFjZW1lbnQ6IFNreVBvcG92ZXJQbGFjZW1lbnQsXG4gICAgdGhlbWVOYW1lPzogc3RyaW5nXG4gICk6IFNreVBvcG92ZXJBZGFwdGVyQXJyb3dDb29yZGluYXRlcyB7XG4gICAgY29uc3QgY2FsbGVyUmVjdCA9IGVsZW1lbnRzLmNhbGxlci5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgIGNvbnN0IHBvcG92ZXJSZWN0ID0gZWxlbWVudHMucG9wb3Zlci5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgIGNvbnN0IGFycm93UmVjdCA9XG4gICAgICBlbGVtZW50cy5wb3BvdmVyQXJyb3cubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcblxuICAgIGNvbnN0IHBpeGVsVG9sZXJhbmNlID0gMjA7XG5cbiAgICBsZXQgdG9wOiBudW1iZXI7XG4gICAgbGV0IGxlZnQ6IG51bWJlcjtcblxuICAgIGlmIChwbGFjZW1lbnQgPT09ICdhYm92ZScgfHwgcGxhY2VtZW50ID09PSAnYmVsb3cnKSB7XG4gICAgICBsZWZ0ID0gY2FsbGVyUmVjdC5sZWZ0ICsgY2FsbGVyUmVjdC53aWR0aCAqIDAuNTtcblxuICAgICAgLy8gTWFrZSBzdXJlIHRoZSBhcnJvdyBuZXZlciBkZXRhY2hlcyBmcm9tIHRoZSBwb3BvdmVyLlxuICAgICAgaWYgKGxlZnQgLSBwaXhlbFRvbGVyYW5jZSA8IHBvcG92ZXJSZWN0LmxlZnQpIHtcbiAgICAgICAgbGVmdCA9IHBvcG92ZXJSZWN0LmxlZnQgKyBwaXhlbFRvbGVyYW5jZTtcbiAgICAgIH0gZWxzZSBpZiAobGVmdCArIHBpeGVsVG9sZXJhbmNlID4gcG9wb3ZlclJlY3QucmlnaHQpIHtcbiAgICAgICAgbGVmdCA9IHBvcG92ZXJSZWN0LnJpZ2h0IC0gcGl4ZWxUb2xlcmFuY2U7XG4gICAgICB9XG5cbiAgICAgIGlmIChwbGFjZW1lbnQgPT09ICdhYm92ZScpIHtcbiAgICAgICAgaWYgKHRoZW1lTmFtZSAhPT0gJ21vZGVybicpIHtcbiAgICAgICAgICB0b3AgPSBjYWxsZXJSZWN0LnRvcCAtIGFycm93UmVjdC5oZWlnaHQ7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdG9wID0gY2FsbGVyUmVjdC50b3AgLSBhcnJvd1JlY3QuaGVpZ2h0ICsgNTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKHRoZW1lTmFtZSAhPT0gJ21vZGVybicpIHtcbiAgICAgICAgICB0b3AgPSBjYWxsZXJSZWN0LmJvdHRvbTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0b3AgPSBjYWxsZXJSZWN0LmJvdHRvbSArIDQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdG9wID0gY2FsbGVyUmVjdC50b3AgKyBjYWxsZXJSZWN0LmhlaWdodCAqIDAuNTtcblxuICAgICAgLy8gTWFrZSBzdXJlIHRoZSBhcnJvdyBuZXZlciBkZXRhY2hlcyBmcm9tIHRoZSBwb3BvdmVyLlxuICAgICAgaWYgKHRvcCAtIHBpeGVsVG9sZXJhbmNlIDwgcG9wb3ZlclJlY3QudG9wKSB7XG4gICAgICAgIHRvcCA9IHBvcG92ZXJSZWN0LnRvcCArIHBpeGVsVG9sZXJhbmNlO1xuICAgICAgfSBlbHNlIGlmICh0b3AgKyBwaXhlbFRvbGVyYW5jZSA+IHBvcG92ZXJSZWN0LmJvdHRvbSkge1xuICAgICAgICB0b3AgPSBwb3BvdmVyUmVjdC5ib3R0b20gLSBwaXhlbFRvbGVyYW5jZTtcbiAgICAgIH1cblxuICAgICAgaWYgKHBsYWNlbWVudCA9PT0gJ2xlZnQnKSB7XG4gICAgICAgIGlmICh0aGVtZU5hbWUgIT09ICdtb2Rlcm4nKSB7XG4gICAgICAgICAgbGVmdCA9IGNhbGxlclJlY3QubGVmdCAtIGFycm93UmVjdC53aWR0aDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBsZWZ0ID0gY2FsbGVyUmVjdC5sZWZ0IC0gYXJyb3dSZWN0LndpZHRoICsgNTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKHRoZW1lTmFtZSAhPT0gJ21vZGVybicpIHtcbiAgICAgICAgICBsZWZ0ID0gY2FsbGVyUmVjdC5yaWdodDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBsZWZ0ID0gY2FsbGVyUmVjdC5yaWdodCArIDQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4geyB0b3AsIGxlZnQgfTtcbiAgfVxufVxuIl19
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wb3Zlci1hbmltYXRpb24tc3RhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvcG9wb3ZlcnMvc3JjL2xpYi9tb2R1bGVzL3BvcG92ZXIvcG9wb3Zlci1hbmltYXRpb24tc3RhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCB0eXBlIFNreVBvcG92ZXJBbmltYXRpb25TdGF0ZSA9ICdvcGVuJyB8ICdjbG9zZWQnO1xuIl19
@@ -0,0 +1,19 @@
1
+ import { animate, state, style, transition, trigger, } from '@angular/animations';
2
+ /**
3
+ * @internal
4
+ */
5
+ export const skyPopoverAnimation = trigger('skyPopoverAnimation', [
6
+ state('void', style({
7
+ opacity: 0,
8
+ })),
9
+ state('open', style({
10
+ opacity: 1,
11
+ })),
12
+ state('closed', style({
13
+ opacity: 0,
14
+ })),
15
+ transition('void => *', [animate('250ms')]),
16
+ transition('open => closed', [animate('150ms')]),
17
+ transition('closed => open', [animate('150ms')]),
18
+ ]);
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wb3Zlci1hbmltYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvcG9wb3ZlcnMvc3JjL2xpYi9tb2R1bGVzL3BvcG92ZXIvcG9wb3Zlci1hbmltYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLE9BQU8sRUFDUCxLQUFLLEVBQ0wsS0FBSyxFQUNMLFVBQVUsRUFDVixPQUFPLEdBQ1IsTUFBTSxxQkFBcUIsQ0FBQztBQUU3Qjs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUE2QixPQUFPLENBQ2xFLHFCQUFxQixFQUNyQjtJQUNFLEtBQUssQ0FDSCxNQUFNLEVBQ04sS0FBSyxDQUFDO1FBQ0osT0FBTyxFQUFFLENBQUM7S0FDWCxDQUFDLENBQ0g7SUFDRCxLQUFLLENBQ0gsTUFBTSxFQUNOLEtBQUssQ0FBQztRQUNKLE9BQU8sRUFBRSxDQUFDO0tBQ1gsQ0FBQyxDQUNIO0lBQ0QsS0FBSyxDQUNILFFBQVEsRUFDUixLQUFLLENBQUM7UUFDSixPQUFPLEVBQUUsQ0FBQztLQUNYLENBQUMsQ0FDSDtJQUNELFVBQVUsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztJQUMzQyxVQUFVLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztJQUNoRCxVQUFVLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztDQUNqRCxDQUNGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBbmltYXRpb25UcmlnZ2VyTWV0YWRhdGEsXG4gIGFuaW1hdGUsXG4gIHN0YXRlLFxuICBzdHlsZSxcbiAgdHJhbnNpdGlvbixcbiAgdHJpZ2dlcixcbn0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBjb25zdCBza3lQb3BvdmVyQW5pbWF0aW9uOiBBbmltYXRpb25UcmlnZ2VyTWV0YWRhdGEgPSB0cmlnZ2VyKFxuICAnc2t5UG9wb3ZlckFuaW1hdGlvbicsXG4gIFtcbiAgICBzdGF0ZShcbiAgICAgICd2b2lkJyxcbiAgICAgIHN0eWxlKHtcbiAgICAgICAgb3BhY2l0eTogMCxcbiAgICAgIH0pXG4gICAgKSxcbiAgICBzdGF0ZShcbiAgICAgICdvcGVuJyxcbiAgICAgIHN0eWxlKHtcbiAgICAgICAgb3BhY2l0eTogMSxcbiAgICAgIH0pXG4gICAgKSxcbiAgICBzdGF0ZShcbiAgICAgICdjbG9zZWQnLFxuICAgICAgc3R5bGUoe1xuICAgICAgICBvcGFjaXR5OiAwLFxuICAgICAgfSlcbiAgICApLFxuICAgIHRyYW5zaXRpb24oJ3ZvaWQgPT4gKicsIFthbmltYXRlKCcyNTBtcycpXSksXG4gICAgdHJhbnNpdGlvbignb3BlbiA9PiBjbG9zZWQnLCBbYW5pbWF0ZSgnMTUwbXMnKV0pLFxuICAgIHRyYW5zaXRpb24oJ2Nsb3NlZCA9PiBvcGVuJywgW2FuaW1hdGUoJzE1MG1zJyldKSxcbiAgXVxuKTtcbiJdfQ==
@@ -0,0 +1,261 @@
1
+ import { ChangeDetectorRef, Component, ElementRef, Optional, ViewChild, ViewContainerRef, } from '@angular/core';
2
+ import { SkyAffixAutoFitContext, SkyAffixService, SkyCoreAdapterService, } from '@skyux/core';
3
+ import { SkyThemeService } from '@skyux/theme';
4
+ import { Subject, fromEvent as observableFromEvent } from 'rxjs';
5
+ import { takeUntil } from 'rxjs/operators';
6
+ import { SkyPopoverAdapterService } from './popover-adapter.service';
7
+ import { skyPopoverAnimation } from './popover-animation';
8
+ import { SkyPopoverContext } from './popover-context';
9
+ import { parseAffixHorizontalAlignment, parseAffixPlacement, } from './popover-extensions';
10
+ import * as i0 from "@angular/core";
11
+ import * as i1 from "@skyux/core";
12
+ import * as i2 from "./popover-adapter.service";
13
+ import * as i3 from "./popover-context";
14
+ import * as i4 from "@skyux/theme";
15
+ import * as i5 from "@angular/common";
16
+ /**
17
+ * @internal
18
+ */
19
+ export class SkyPopoverContentComponent {
20
+ constructor(changeDetector, elementRef, affixService, coreAdapterService, adapterService, context, themeSvc) {
21
+ this.changeDetector = changeDetector;
22
+ this.elementRef = elementRef;
23
+ this.affixService = affixService;
24
+ this.coreAdapterService = coreAdapterService;
25
+ this.adapterService = adapterService;
26
+ this.context = context;
27
+ this.themeSvc = themeSvc;
28
+ this.dismissOnBlur = true;
29
+ this.enableAnimations = true;
30
+ this.isOpen = false;
31
+ this.popoverType = 'info';
32
+ this.ngUnsubscribe = new Subject();
33
+ this._closed = new Subject();
34
+ this._isMouseEnter = new Subject();
35
+ this._opened = new Subject();
36
+ }
37
+ get animationState() {
38
+ return this.isOpen ? 'open' : 'closed';
39
+ }
40
+ get closed() {
41
+ return this._closed.asObservable();
42
+ }
43
+ get opened() {
44
+ return this._opened.asObservable();
45
+ }
46
+ get isMouseEnter() {
47
+ return this._isMouseEnter.asObservable();
48
+ }
49
+ ngOnInit() {
50
+ /*istanbul ignore next*/
51
+ this.contentTarget.createEmbeddedView(this.context?.contentTemplateRef);
52
+ this.addEventListeners();
53
+ /*istanbul ignore else*/
54
+ if (this.themeSvc) {
55
+ this.themeSvc.settingsChange
56
+ .pipe(takeUntil(this.ngUnsubscribe))
57
+ .subscribe((themeSettings) => {
58
+ /*istanbul ignore next*/
59
+ this.themeName = themeSettings.currentSettings?.theme?.name;
60
+ });
61
+ }
62
+ }
63
+ ngOnDestroy() {
64
+ this.ngUnsubscribe.next();
65
+ this.ngUnsubscribe.complete();
66
+ this._closed.complete();
67
+ this._isMouseEnter.complete();
68
+ this._opened.complete();
69
+ /* istanbul ignore else */
70
+ if (this.affixer) {
71
+ this.affixer.destroy();
72
+ }
73
+ this._closed =
74
+ this._isMouseEnter =
75
+ this._opened =
76
+ this.affixer =
77
+ this.ngUnsubscribe =
78
+ undefined;
79
+ }
80
+ onAnimationEvent(event) {
81
+ if (event.fromState === 'void') {
82
+ return;
83
+ }
84
+ if (event.phaseName === 'done') {
85
+ if (event.toState === 'open') {
86
+ /*istanbul ignore next*/
87
+ this._opened?.next();
88
+ }
89
+ else {
90
+ /*istanbul ignore next*/
91
+ this._closed?.next();
92
+ }
93
+ }
94
+ }
95
+ open(caller, config) {
96
+ this.caller = caller;
97
+ this.dismissOnBlur = config.dismissOnBlur;
98
+ this.enableAnimations = config.enableAnimations;
99
+ this.horizontalAlignment = config.horizontalAlignment;
100
+ this.placement = config.placement;
101
+ this.popoverTitle = config.popoverTitle;
102
+ if (config.popoverType) {
103
+ this.popoverType = config.popoverType;
104
+ }
105
+ this.changeDetector.markForCheck();
106
+ // Indicates if the popover should be displayed statically.
107
+ // Please note: This feature is internal-only and used by the visual tests to capture multiple
108
+ // states simultaneously without the overhead of event listeners.
109
+ /* istanbul ignore if */
110
+ if (config.isStatic) {
111
+ this.isOpen = true;
112
+ this.changeDetector.markForCheck();
113
+ return;
114
+ }
115
+ // Let the styles render before gauging the affix dimensions.
116
+ setTimeout(() => {
117
+ /*istanbul ignore next*/
118
+ if (!this.popoverRef?.nativeElement ||
119
+ !this.ngUnsubscribe ||
120
+ this.ngUnsubscribe.isStopped) {
121
+ return;
122
+ }
123
+ if (!this.affixer) {
124
+ this.setupAffixer();
125
+ }
126
+ const affixOptions = {
127
+ autoFitContext: SkyAffixAutoFitContext.Viewport,
128
+ enableAutoFit: true,
129
+ horizontalAlignment: parseAffixHorizontalAlignment(this.horizontalAlignment),
130
+ isSticky: true,
131
+ placement: parseAffixPlacement(this.placement),
132
+ };
133
+ // Ensure that we are positioning the vertical alginment correctly. These
134
+ // are the default alignments for all popovers but ensure that we are future proof here.
135
+ if (affixOptions.placement === 'left' ||
136
+ affixOptions.placement === 'right') {
137
+ affixOptions.verticalAlignment = 'middle';
138
+ }
139
+ else if (affixOptions.placement === 'above') {
140
+ affixOptions.verticalAlignment = 'bottom';
141
+ }
142
+ else {
143
+ affixOptions.verticalAlignment = 'top';
144
+ }
145
+ this.affixer.affixTo(this.caller.nativeElement, affixOptions);
146
+ this.updateArrowOffset();
147
+ this.isOpen = true;
148
+ this.changeDetector.markForCheck();
149
+ });
150
+ }
151
+ close() {
152
+ this.isOpen = false;
153
+ this.changeDetector.markForCheck();
154
+ }
155
+ applyFocus() {
156
+ if (this.isOpen) {
157
+ this.coreAdapterService.getFocusableChildrenAndApplyFocus(this.popoverRef, '.sky-popover', true);
158
+ }
159
+ }
160
+ setupAffixer() {
161
+ const affixer = this.affixService.createAffixer(this.popoverRef);
162
+ affixer.offsetChange.pipe(takeUntil(this.ngUnsubscribe)).subscribe(() => {
163
+ this.updateArrowOffset();
164
+ this.changeDetector.markForCheck();
165
+ });
166
+ affixer.overflowScroll.pipe(takeUntil(this.ngUnsubscribe)).subscribe(() => {
167
+ this.updateArrowOffset();
168
+ this.changeDetector.markForCheck();
169
+ });
170
+ affixer.placementChange
171
+ .pipe(takeUntil(this.ngUnsubscribe))
172
+ .subscribe((change) => {
173
+ this.placement = change.placement;
174
+ this.changeDetector.markForCheck();
175
+ });
176
+ this.affixer = affixer;
177
+ }
178
+ updateArrowOffset() {
179
+ const { top, left } = this.adapterService.getArrowCoordinates({
180
+ caller: this.caller,
181
+ popover: this.popoverRef,
182
+ popoverArrow: this.arrowRef,
183
+ }, this.placement, this.themeName);
184
+ this.arrowTop = top;
185
+ this.arrowLeft = left;
186
+ }
187
+ isFocusLeavingElement(event) {
188
+ const focusableItems = this.coreAdapterService.getFocusableChildren(this.elementRef.nativeElement);
189
+ const isFirstItem = focusableItems[0] === event.target && event.shiftKey;
190
+ const isLastItem = focusableItems[focusableItems.length - 1] === event.target &&
191
+ !event.shiftKey;
192
+ return focusableItems.length === 0 || isFirstItem || isLastItem;
193
+ }
194
+ addEventListeners() {
195
+ const hostElement = this.elementRef.nativeElement;
196
+ observableFromEvent(hostElement, 'mouseenter')
197
+ .pipe(takeUntil(this.ngUnsubscribe))
198
+ .subscribe(() => this._isMouseEnter.next(true));
199
+ observableFromEvent(hostElement, 'mouseleave')
200
+ .pipe(takeUntil(this.ngUnsubscribe))
201
+ .subscribe(() => this._isMouseEnter.next(false));
202
+ observableFromEvent(hostElement, 'keydown')
203
+ .pipe(takeUntil(this.ngUnsubscribe))
204
+ .subscribe((event) => {
205
+ const key = event.key.toLowerCase();
206
+ /* tslint:disable-next-line:switch-default */
207
+ switch (key) {
208
+ case 'escape':
209
+ this.close();
210
+ this.caller.nativeElement.focus();
211
+ event.preventDefault();
212
+ event.stopPropagation();
213
+ break;
214
+ // Since the popover now lives in an overlay at the bottom of the document body, we need
215
+ // to handle the tab key ourselves. Otherwise, focus would be moved to the browser's
216
+ // search bar.
217
+ case 'tab':
218
+ if (!this.dismissOnBlur) {
219
+ return;
220
+ }
221
+ /*istanbul ignore else*/
222
+ if (this.isFocusLeavingElement(event)) {
223
+ this.close();
224
+ this.caller.nativeElement.focus();
225
+ event.preventDefault();
226
+ event.stopPropagation();
227
+ }
228
+ break;
229
+ }
230
+ });
231
+ }
232
+ }
233
+ SkyPopoverContentComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyPopoverContentComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i1.SkyAffixService }, { token: i1.SkyCoreAdapterService }, { token: i2.SkyPopoverAdapterService }, { token: i3.SkyPopoverContext, optional: true }, { token: i4.SkyThemeService, optional: true }], target: i0.ɵɵFactoryTarget.Component });
234
+ SkyPopoverContentComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: SkyPopoverContentComponent, selector: "sky-popover-content", providers: [SkyPopoverAdapterService], viewQueries: [{ propertyName: "arrowRef", first: true, predicate: ["arrowRef"], descendants: true, read: ElementRef, static: true }, { propertyName: "popoverRef", first: true, predicate: ["popoverRef"], descendants: true, read: ElementRef, static: true }, { propertyName: "contentTarget", first: true, predicate: ["contentTarget"], descendants: true, read: ViewContainerRef, static: true }], ngImport: i0, template: "<div\n class=\"sky-popover-container sky-popover-max-height\"\n [@.disabled]=\"!enableAnimations\"\n [@skyPopoverAnimation]=\"animationState\"\n [class.sky-popover-hidden]=\"!placement\"\n [ngClass]=\"[\n 'sky-popover-alignment-' + horizontalAlignment,\n 'sky-popover-placement-' + placement,\n 'sky-popover-' + popoverType\n ]\"\n (@skyPopoverAnimation.done)=\"onAnimationEvent($event)\"\n (@skyPopoverAnimation.start)=\"onAnimationEvent($event)\"\n #popoverRef\n>\n <div\n class=\"sky-popover\"\n tabindex=\"-1\"\n [skyThemeClass]=\"{\n 'sky-rounded-corners sky-shadow': 'default',\n 'sky-elevation-4': 'modern'\n }\"\n >\n <header\n *ngIf=\"popoverTitle\"\n class=\"sky-popover-header\"\n [skyThemeClass]=\"{\n 'sky-padding-even-default': 'default',\n 'sky-padding-even-lg sky-margin-stacked-lg': 'modern'\n }\"\n >\n <h1\n *ngIf=\"popoverTitle\"\n class=\"sky-popover-title\"\n [skyThemeClass]=\"{\n 'sky-emphasized': 'default',\n 'sky-font-emphasized': 'modern'\n }\"\n >\n {{ popoverTitle }}\n </h1>\n </header>\n <div\n class=\"sky-popover-body\"\n [skyThemeClass]=\"{\n 'sky-padding-even-default': 'default',\n 'sky-padding-even-lg': 'modern'\n }\"\n >\n <ng-container #contentTarget></ng-container>\n </div>\n <span\n aria-hidden=\"true\"\n class=\"sky-popover-arrow\"\n [style.left.px]=\"arrowLeft\"\n [style.top.px]=\"arrowTop\"\n #arrowRef\n ></span>\n </div>\n</div>\n", styles: [".sky-popover-container{position:fixed;min-width:276px;max-width:276px}.sky-popover-container.sky-popover-hidden{visibility:hidden;opacity:0;pointer-events:none!important}.sky-popover-container.sky-popover-hidden *{pointer-events:none!important}.sky-popover-container.sky-popover-static .sky-popover-arrow{position:absolute}.sky-popover-container:focus{outline:none}@media (max-width: 276px){.sky-popover-container{max-width:100%;min-width:auto}}.sky-popover{background-color:#fff}.sky-popover-header{padding-bottom:0}.sky-popover-header+.sky-popover-body{padding-top:2px}.sky-popover-title{margin:0}.sky-popover-arrow{width:0;height:0;position:fixed;border:10px solid transparent}.sky-popover-placement-above{padding-bottom:10px}.sky-popover-placement-above .sky-popover{border-bottom:10px solid #00b4f1}.sky-popover-placement-above .sky-popover-arrow{border-bottom:0;border-top-color:#00b4f1;bottom:0;left:50%;margin-left:-10px}.sky-popover-placement-above.sky-popover-danger .sky-popover{border-bottom-color:#ef4044}.sky-popover-placement-above.sky-popover-danger .sky-popover-arrow{border-top-color:#ef4044}.sky-popover-placement-below{padding-top:10px}.sky-popover-placement-below .sky-popover{border-top:10px solid #00b4f1}.sky-popover-placement-below .sky-popover-arrow{border-top:0;border-bottom-color:#00b4f1;top:0;left:50%;margin-left:-10px}.sky-popover-placement-below.sky-popover-danger .sky-popover{border-top-color:#ef4044}.sky-popover-placement-below.sky-popover-danger .sky-popover-arrow{border-bottom-color:#ef4044}.sky-popover-placement-right{padding-left:10px}.sky-popover-placement-right .sky-popover{border-left:10px solid #00b4f1}.sky-popover-placement-right .sky-popover-arrow{border-left:0;border-right-color:#00b4f1;left:0;top:50%;margin-top:-10px}.sky-popover-placement-right.sky-popover-danger .sky-popover{border-left-color:#ef4044}.sky-popover-placement-right.sky-popover-danger .sky-popover-arrow{border-right-color:#ef4044}.sky-popover-placement-left{padding-right:10px}.sky-popover-placement-left .sky-popover{border-right:10px solid #00b4f1}.sky-popover-placement-left .sky-popover-arrow{border-right:0;border-left-color:#00b4f1;right:0;top:50%;margin-top:-10px}.sky-popover-placement-left.sky-popover-danger .sky-popover{border-right-color:#ef4044}.sky-popover-placement-left.sky-popover-danger .sky-popover-arrow{border-left-color:#ef4044}.sky-popover-placement-above.sky-popover-alignment-left .sky-popover-arrow,.sky-popover-placement-below.sky-popover-alignment-left .sky-popover-arrow{left:40px;right:auto}.sky-popover-placement-above.sky-popover-alignment-right .sky-popover-arrow,.sky-popover-placement-below.sky-popover-alignment-right .sky-popover-arrow{left:auto;right:40px}.sky-popover-max-height .sky-popover{overflow-y:auto;overflow-x:hidden;min-height:35px;max-height:calc(50vh - 50px)}:host-context(.sky-theme-modern) .sky-popover{border-radius:6px}:host-context(.sky-theme-modern) .sky-popover-arrow{transform:rotate(45deg);border-color:transparent}:host-context(.sky-theme-modern) .sky-popover-placement-above{padding-bottom:10px}:host-context(.sky-theme-modern) .sky-popover-placement-above .sky-popover{border-bottom:6px solid #00b4f1}:host-context(.sky-theme-modern) .sky-popover-placement-above .sky-popover-arrow{bottom:1px;border-radius:0 0 3px;border-bottom:solid 10px #00b4f1;border-right:solid 10px #00b4f1}:host-context(.sky-theme-modern) .sky-popover-placement-above.sky-popover-danger .sky-popover{border-bottom-color:#ef4044}:host-context(.sky-theme-modern) .sky-popover-placement-above.sky-popover-danger .sky-popover-arrow{border-bottom-color:#ef4044;border-right-color:#ef4044;border-top-color:transparent;border-left-color:transparent}:host-context(.sky-theme-modern) .sky-popover-placement-below{padding-top:10px}:host-context(.sky-theme-modern) .sky-popover-placement-below .sky-popover{border-top:6px solid #00b4f1}:host-context(.sky-theme-modern) .sky-popover-placement-below .sky-popover-arrow{top:1px;border-radius:3px 0 0;border-top:solid 10px #00b4f1;border-left:solid 10px #00b4f1}:host-context(.sky-theme-modern) .sky-popover-placement-below.sky-popover-danger .sky-popover{border-top-color:#ef4044}:host-context(.sky-theme-modern) .sky-popover-placement-below.sky-popover-danger .sky-popover-arrow{border-top-color:#ef4044;border-left-color:#ef4044;border-bottom-color:transparent;border-right-color:transparent}:host-context(.sky-theme-modern) .sky-popover-placement-right{padding-left:10px}:host-context(.sky-theme-modern) .sky-popover-placement-right .sky-popover{border-left:6px solid #00b4f1}:host-context(.sky-theme-modern) .sky-popover-placement-right .sky-popover-arrow{left:1px;border-radius:0 0 0 3px;border-bottom:solid 10px #00b4f1;border-left:solid 10px #00b4f1}:host-context(.sky-theme-modern) .sky-popover-placement-right.sky-popover-danger .sky-popover{border-left-color:#ef4044}:host-context(.sky-theme-modern) .sky-popover-placement-right.sky-popover-danger .sky-popover-arrow{border-bottom-color:#ef4044;border-left-color:#ef4044;border-top-color:transparent;border-right-color:transparent}:host-context(.sky-theme-modern) .sky-popover-placement-left{padding-right:10px}:host-context(.sky-theme-modern) .sky-popover-placement-left .sky-popover{border-right:6px solid #00b4f1}:host-context(.sky-theme-modern) .sky-popover-placement-left .sky-popover-arrow{right:1px;border-radius:0 3px 0 0;border-top:solid 10px #00b4f1;border-right:solid 10px #00b4f1}:host-context(.sky-theme-modern) .sky-popover-placement-left.sky-popover-danger .sky-popover{border-right-color:#ef4044}:host-context(.sky-theme-modern) .sky-popover-placement-left.sky-popover-danger .sky-popover-arrow{border-top-color:#ef4044;border-right-color:#ef4044;border-bottom-color:transparent;border-left-color:transparent}.sky-theme-modern .sky-popover{border-radius:6px}.sky-theme-modern .sky-popover-arrow{transform:rotate(45deg);border-color:transparent}.sky-theme-modern .sky-popover-placement-above{padding-bottom:10px}.sky-theme-modern .sky-popover-placement-above .sky-popover{border-bottom:6px solid #00b4f1}.sky-theme-modern .sky-popover-placement-above .sky-popover-arrow{bottom:1px;border-radius:0 0 3px;border-bottom:solid 10px #00b4f1;border-right:solid 10px #00b4f1}.sky-theme-modern .sky-popover-placement-above.sky-popover-danger .sky-popover{border-bottom-color:#ef4044}.sky-theme-modern .sky-popover-placement-above.sky-popover-danger .sky-popover-arrow{border-bottom-color:#ef4044;border-right-color:#ef4044;border-top-color:transparent;border-left-color:transparent}.sky-theme-modern .sky-popover-placement-below{padding-top:10px}.sky-theme-modern .sky-popover-placement-below .sky-popover{border-top:6px solid #00b4f1}.sky-theme-modern .sky-popover-placement-below .sky-popover-arrow{top:1px;border-radius:3px 0 0;border-top:solid 10px #00b4f1;border-left:solid 10px #00b4f1}.sky-theme-modern .sky-popover-placement-below.sky-popover-danger .sky-popover{border-top-color:#ef4044}.sky-theme-modern .sky-popover-placement-below.sky-popover-danger .sky-popover-arrow{border-top-color:#ef4044;border-left-color:#ef4044;border-bottom-color:transparent;border-right-color:transparent}.sky-theme-modern .sky-popover-placement-right{padding-left:10px}.sky-theme-modern .sky-popover-placement-right .sky-popover{border-left:6px solid #00b4f1}.sky-theme-modern .sky-popover-placement-right .sky-popover-arrow{left:1px;border-radius:0 0 0 3px;border-bottom:solid 10px #00b4f1;border-left:solid 10px #00b4f1}.sky-theme-modern .sky-popover-placement-right.sky-popover-danger .sky-popover{border-left-color:#ef4044}.sky-theme-modern .sky-popover-placement-right.sky-popover-danger .sky-popover-arrow{border-bottom-color:#ef4044;border-left-color:#ef4044;border-top-color:transparent;border-right-color:transparent}.sky-theme-modern .sky-popover-placement-left{padding-right:10px}.sky-theme-modern .sky-popover-placement-left .sky-popover{border-right:6px solid #00b4f1}.sky-theme-modern .sky-popover-placement-left .sky-popover-arrow{right:1px;border-radius:0 3px 0 0;border-top:solid 10px #00b4f1;border-right:solid 10px #00b4f1}.sky-theme-modern .sky-popover-placement-left.sky-popover-danger .sky-popover{border-right-color:#ef4044}.sky-theme-modern .sky-popover-placement-left.sky-popover-danger .sky-popover-arrow{border-top-color:#ef4044;border-right-color:#ef4044;border-bottom-color:transparent;border-left-color:transparent}\n"], directives: [{ type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i4.λ2, selector: "[skyThemeClass]", inputs: ["class", "skyThemeClass"] }, { type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], animations: [skyPopoverAnimation] });
235
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyPopoverContentComponent, decorators: [{
236
+ type: Component,
237
+ args: [{ selector: 'sky-popover-content', animations: [skyPopoverAnimation], providers: [SkyPopoverAdapterService], template: "<div\n class=\"sky-popover-container sky-popover-max-height\"\n [@.disabled]=\"!enableAnimations\"\n [@skyPopoverAnimation]=\"animationState\"\n [class.sky-popover-hidden]=\"!placement\"\n [ngClass]=\"[\n 'sky-popover-alignment-' + horizontalAlignment,\n 'sky-popover-placement-' + placement,\n 'sky-popover-' + popoverType\n ]\"\n (@skyPopoverAnimation.done)=\"onAnimationEvent($event)\"\n (@skyPopoverAnimation.start)=\"onAnimationEvent($event)\"\n #popoverRef\n>\n <div\n class=\"sky-popover\"\n tabindex=\"-1\"\n [skyThemeClass]=\"{\n 'sky-rounded-corners sky-shadow': 'default',\n 'sky-elevation-4': 'modern'\n }\"\n >\n <header\n *ngIf=\"popoverTitle\"\n class=\"sky-popover-header\"\n [skyThemeClass]=\"{\n 'sky-padding-even-default': 'default',\n 'sky-padding-even-lg sky-margin-stacked-lg': 'modern'\n }\"\n >\n <h1\n *ngIf=\"popoverTitle\"\n class=\"sky-popover-title\"\n [skyThemeClass]=\"{\n 'sky-emphasized': 'default',\n 'sky-font-emphasized': 'modern'\n }\"\n >\n {{ popoverTitle }}\n </h1>\n </header>\n <div\n class=\"sky-popover-body\"\n [skyThemeClass]=\"{\n 'sky-padding-even-default': 'default',\n 'sky-padding-even-lg': 'modern'\n }\"\n >\n <ng-container #contentTarget></ng-container>\n </div>\n <span\n aria-hidden=\"true\"\n class=\"sky-popover-arrow\"\n [style.left.px]=\"arrowLeft\"\n [style.top.px]=\"arrowTop\"\n #arrowRef\n ></span>\n </div>\n</div>\n", styles: [".sky-popover-container{position:fixed;min-width:276px;max-width:276px}.sky-popover-container.sky-popover-hidden{visibility:hidden;opacity:0;pointer-events:none!important}.sky-popover-container.sky-popover-hidden *{pointer-events:none!important}.sky-popover-container.sky-popover-static .sky-popover-arrow{position:absolute}.sky-popover-container:focus{outline:none}@media (max-width: 276px){.sky-popover-container{max-width:100%;min-width:auto}}.sky-popover{background-color:#fff}.sky-popover-header{padding-bottom:0}.sky-popover-header+.sky-popover-body{padding-top:2px}.sky-popover-title{margin:0}.sky-popover-arrow{width:0;height:0;position:fixed;border:10px solid transparent}.sky-popover-placement-above{padding-bottom:10px}.sky-popover-placement-above .sky-popover{border-bottom:10px solid #00b4f1}.sky-popover-placement-above .sky-popover-arrow{border-bottom:0;border-top-color:#00b4f1;bottom:0;left:50%;margin-left:-10px}.sky-popover-placement-above.sky-popover-danger .sky-popover{border-bottom-color:#ef4044}.sky-popover-placement-above.sky-popover-danger .sky-popover-arrow{border-top-color:#ef4044}.sky-popover-placement-below{padding-top:10px}.sky-popover-placement-below .sky-popover{border-top:10px solid #00b4f1}.sky-popover-placement-below .sky-popover-arrow{border-top:0;border-bottom-color:#00b4f1;top:0;left:50%;margin-left:-10px}.sky-popover-placement-below.sky-popover-danger .sky-popover{border-top-color:#ef4044}.sky-popover-placement-below.sky-popover-danger .sky-popover-arrow{border-bottom-color:#ef4044}.sky-popover-placement-right{padding-left:10px}.sky-popover-placement-right .sky-popover{border-left:10px solid #00b4f1}.sky-popover-placement-right .sky-popover-arrow{border-left:0;border-right-color:#00b4f1;left:0;top:50%;margin-top:-10px}.sky-popover-placement-right.sky-popover-danger .sky-popover{border-left-color:#ef4044}.sky-popover-placement-right.sky-popover-danger .sky-popover-arrow{border-right-color:#ef4044}.sky-popover-placement-left{padding-right:10px}.sky-popover-placement-left .sky-popover{border-right:10px solid #00b4f1}.sky-popover-placement-left .sky-popover-arrow{border-right:0;border-left-color:#00b4f1;right:0;top:50%;margin-top:-10px}.sky-popover-placement-left.sky-popover-danger .sky-popover{border-right-color:#ef4044}.sky-popover-placement-left.sky-popover-danger .sky-popover-arrow{border-left-color:#ef4044}.sky-popover-placement-above.sky-popover-alignment-left .sky-popover-arrow,.sky-popover-placement-below.sky-popover-alignment-left .sky-popover-arrow{left:40px;right:auto}.sky-popover-placement-above.sky-popover-alignment-right .sky-popover-arrow,.sky-popover-placement-below.sky-popover-alignment-right .sky-popover-arrow{left:auto;right:40px}.sky-popover-max-height .sky-popover{overflow-y:auto;overflow-x:hidden;min-height:35px;max-height:calc(50vh - 50px)}:host-context(.sky-theme-modern) .sky-popover{border-radius:6px}:host-context(.sky-theme-modern) .sky-popover-arrow{transform:rotate(45deg);border-color:transparent}:host-context(.sky-theme-modern) .sky-popover-placement-above{padding-bottom:10px}:host-context(.sky-theme-modern) .sky-popover-placement-above .sky-popover{border-bottom:6px solid #00b4f1}:host-context(.sky-theme-modern) .sky-popover-placement-above .sky-popover-arrow{bottom:1px;border-radius:0 0 3px;border-bottom:solid 10px #00b4f1;border-right:solid 10px #00b4f1}:host-context(.sky-theme-modern) .sky-popover-placement-above.sky-popover-danger .sky-popover{border-bottom-color:#ef4044}:host-context(.sky-theme-modern) .sky-popover-placement-above.sky-popover-danger .sky-popover-arrow{border-bottom-color:#ef4044;border-right-color:#ef4044;border-top-color:transparent;border-left-color:transparent}:host-context(.sky-theme-modern) .sky-popover-placement-below{padding-top:10px}:host-context(.sky-theme-modern) .sky-popover-placement-below .sky-popover{border-top:6px solid #00b4f1}:host-context(.sky-theme-modern) .sky-popover-placement-below .sky-popover-arrow{top:1px;border-radius:3px 0 0;border-top:solid 10px #00b4f1;border-left:solid 10px #00b4f1}:host-context(.sky-theme-modern) .sky-popover-placement-below.sky-popover-danger .sky-popover{border-top-color:#ef4044}:host-context(.sky-theme-modern) .sky-popover-placement-below.sky-popover-danger .sky-popover-arrow{border-top-color:#ef4044;border-left-color:#ef4044;border-bottom-color:transparent;border-right-color:transparent}:host-context(.sky-theme-modern) .sky-popover-placement-right{padding-left:10px}:host-context(.sky-theme-modern) .sky-popover-placement-right .sky-popover{border-left:6px solid #00b4f1}:host-context(.sky-theme-modern) .sky-popover-placement-right .sky-popover-arrow{left:1px;border-radius:0 0 0 3px;border-bottom:solid 10px #00b4f1;border-left:solid 10px #00b4f1}:host-context(.sky-theme-modern) .sky-popover-placement-right.sky-popover-danger .sky-popover{border-left-color:#ef4044}:host-context(.sky-theme-modern) .sky-popover-placement-right.sky-popover-danger .sky-popover-arrow{border-bottom-color:#ef4044;border-left-color:#ef4044;border-top-color:transparent;border-right-color:transparent}:host-context(.sky-theme-modern) .sky-popover-placement-left{padding-right:10px}:host-context(.sky-theme-modern) .sky-popover-placement-left .sky-popover{border-right:6px solid #00b4f1}:host-context(.sky-theme-modern) .sky-popover-placement-left .sky-popover-arrow{right:1px;border-radius:0 3px 0 0;border-top:solid 10px #00b4f1;border-right:solid 10px #00b4f1}:host-context(.sky-theme-modern) .sky-popover-placement-left.sky-popover-danger .sky-popover{border-right-color:#ef4044}:host-context(.sky-theme-modern) .sky-popover-placement-left.sky-popover-danger .sky-popover-arrow{border-top-color:#ef4044;border-right-color:#ef4044;border-bottom-color:transparent;border-left-color:transparent}.sky-theme-modern .sky-popover{border-radius:6px}.sky-theme-modern .sky-popover-arrow{transform:rotate(45deg);border-color:transparent}.sky-theme-modern .sky-popover-placement-above{padding-bottom:10px}.sky-theme-modern .sky-popover-placement-above .sky-popover{border-bottom:6px solid #00b4f1}.sky-theme-modern .sky-popover-placement-above .sky-popover-arrow{bottom:1px;border-radius:0 0 3px;border-bottom:solid 10px #00b4f1;border-right:solid 10px #00b4f1}.sky-theme-modern .sky-popover-placement-above.sky-popover-danger .sky-popover{border-bottom-color:#ef4044}.sky-theme-modern .sky-popover-placement-above.sky-popover-danger .sky-popover-arrow{border-bottom-color:#ef4044;border-right-color:#ef4044;border-top-color:transparent;border-left-color:transparent}.sky-theme-modern .sky-popover-placement-below{padding-top:10px}.sky-theme-modern .sky-popover-placement-below .sky-popover{border-top:6px solid #00b4f1}.sky-theme-modern .sky-popover-placement-below .sky-popover-arrow{top:1px;border-radius:3px 0 0;border-top:solid 10px #00b4f1;border-left:solid 10px #00b4f1}.sky-theme-modern .sky-popover-placement-below.sky-popover-danger .sky-popover{border-top-color:#ef4044}.sky-theme-modern .sky-popover-placement-below.sky-popover-danger .sky-popover-arrow{border-top-color:#ef4044;border-left-color:#ef4044;border-bottom-color:transparent;border-right-color:transparent}.sky-theme-modern .sky-popover-placement-right{padding-left:10px}.sky-theme-modern .sky-popover-placement-right .sky-popover{border-left:6px solid #00b4f1}.sky-theme-modern .sky-popover-placement-right .sky-popover-arrow{left:1px;border-radius:0 0 0 3px;border-bottom:solid 10px #00b4f1;border-left:solid 10px #00b4f1}.sky-theme-modern .sky-popover-placement-right.sky-popover-danger .sky-popover{border-left-color:#ef4044}.sky-theme-modern .sky-popover-placement-right.sky-popover-danger .sky-popover-arrow{border-bottom-color:#ef4044;border-left-color:#ef4044;border-top-color:transparent;border-right-color:transparent}.sky-theme-modern .sky-popover-placement-left{padding-right:10px}.sky-theme-modern .sky-popover-placement-left .sky-popover{border-right:6px solid #00b4f1}.sky-theme-modern .sky-popover-placement-left .sky-popover-arrow{right:1px;border-radius:0 3px 0 0;border-top:solid 10px #00b4f1;border-right:solid 10px #00b4f1}.sky-theme-modern .sky-popover-placement-left.sky-popover-danger .sky-popover{border-right-color:#ef4044}.sky-theme-modern .sky-popover-placement-left.sky-popover-danger .sky-popover-arrow{border-top-color:#ef4044;border-right-color:#ef4044;border-bottom-color:transparent;border-left-color:transparent}\n"] }]
238
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i1.SkyAffixService }, { type: i1.SkyCoreAdapterService }, { type: i2.SkyPopoverAdapterService }, { type: i3.SkyPopoverContext, decorators: [{
239
+ type: Optional
240
+ }] }, { type: i4.SkyThemeService, decorators: [{
241
+ type: Optional
242
+ }] }]; }, propDecorators: { arrowRef: [{
243
+ type: ViewChild,
244
+ args: ['arrowRef', {
245
+ read: ElementRef,
246
+ static: true,
247
+ }]
248
+ }], popoverRef: [{
249
+ type: ViewChild,
250
+ args: ['popoverRef', {
251
+ read: ElementRef,
252
+ static: true,
253
+ }]
254
+ }], contentTarget: [{
255
+ type: ViewChild,
256
+ args: ['contentTarget', {
257
+ read: ViewContainerRef,
258
+ static: true,
259
+ }]
260
+ }] } });
261
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wb3Zlci1jb250ZW50LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9wb3BvdmVycy9zcmMvbGliL21vZHVsZXMvcG9wb3Zlci9wb3BvdmVyLWNvbnRlbnQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3BvcG92ZXJzL3NyYy9saWIvbW9kdWxlcy9wb3BvdmVyL3BvcG92ZXItY29udGVudC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQ0wsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxVQUFVLEVBR1YsUUFBUSxFQUNSLFNBQVMsRUFDVCxnQkFBZ0IsR0FDakIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNMLHNCQUFzQixFQUV0QixlQUFlLEVBRWYscUJBQXFCLEdBQ3RCLE1BQU0sYUFBYSxDQUFDO0FBQ3JCLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFL0MsT0FBTyxFQUFjLE9BQU8sRUFBRSxTQUFTLElBQUksbUJBQW1CLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDN0UsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTNDLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3JFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRTFELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3RELE9BQU8sRUFDTCw2QkFBNkIsRUFDN0IsbUJBQW1CLEdBQ3BCLE1BQU0sc0JBQXNCLENBQUM7Ozs7Ozs7QUFJOUI7O0dBRUc7QUFRSCxNQUFNLE9BQU8sMEJBQTBCO0lBbUVyQyxZQUNVLGNBQWlDLEVBQ2pDLFVBQXNCLEVBQ3RCLFlBQTZCLEVB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QUFlLEVBQUUsQ0FBQztxQkFDekI7b0JBQ0QsTUFBTTthQUNUO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDOzt1SEFqVVUsMEJBQTBCOzJHQUExQiwwQkFBMEIsOENBRjFCLENBQUMsd0JBQXdCLENBQUMsMkdBMEM3QixVQUFVLGlIQU1WLFVBQVUsdUhBTVYsZ0JBQWdCLDJDQ2hHMUIsMmtEQTJEQSx5K1FEbEJjLENBQUMsbUJBQW1CLENBQUM7MkZBR3RCLDBCQUEwQjtrQkFQdEMsU0FBUzsrQkFDRSxxQkFBcUIsY0FHbkIsQ0FBQyxtQkFBbUIsQ0FBQyxhQUN0QixDQUFDLHdCQUF3QixDQUFDOzswQkEyRWxDLFFBQVE7OzBCQUNSLFFBQVE7NENBL0JILFFBQVE7c0JBSmYsU0FBUzt1QkFBQyxVQUFVLEVBQUU7d0JBQ3JCLElBQUksRUFBRSxVQUFVO3dCQUNoQixNQUFNLEVBQUUsSUFBSTtxQkFDYjtnQkFPTyxVQUFVO3NCQUpqQixTQUFTO3VCQUFDLFlBQVksRUFBRTt3QkFDdkIsSUFBSSxFQUFFLFVBQVU7d0JBQ2hCLE1BQU0sRUFBRSxJQUFJO3FCQUNiO2dCQU9PLGFBQWE7c0JBSnBCLFNBQVM7dUJBQUMsZUFBZSxFQUFFO3dCQUMxQixJQUFJLEVBQUUsZ0JBQWdCO3dCQUN0QixNQUFNLEVBQUUsSUFBSTtxQkFDYiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFuaW1hdGlvbkV2ZW50IH0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgT3B0aW9uYWwsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0NvbnRhaW5lclJlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBTa3lBZmZpeEF1dG9GaXRDb250ZXh0LFxuICBTa3lBZmZpeENvbmZpZyxcbiAgU2t5QWZmaXhTZXJ2aWNlLFxuICBTa3lBZmZpeGVyLFxuICBTa3lDb3JlQWRhcHRlclNlcnZpY2UsXG59IGZyb20gJ0Bza3l1eC9jb3JlJztcbmltcG9ydCB7IFNreVRoZW1lU2VydmljZSB9IGZyb20gJ0Bza3l1eC90aGVtZSc7XG5cbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YmplY3QsIGZyb21FdmVudCBhcyBvYnNlcnZhYmxlRnJvbUV2ZW50IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IFNreVBvcG92ZXJBZGFwdGVyU2VydmljZSB9IGZyb20gJy4vcG9wb3Zlci1hZGFwdGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgc2t5UG9wb3ZlckFuaW1hdGlvbiB9IGZyb20gJy4vcG9wb3Zlci1hbmltYXRpb24nO1xuaW1wb3J0IHsgU2t5UG9wb3ZlckFuaW1hdGlvblN0YXRlIH0gZnJvbSAnLi9wb3BvdmVyLWFuaW1hdGlvbi1zdGF0ZSc7XG5pbXBvcnQgeyBTa3lQb3BvdmVyQ29udGV4dCB9IGZyb20gJy4vcG9wb3Zlci1jb250ZXh0JztcbmltcG9ydCB7XG4gIHBhcnNlQWZmaXhIb3Jpem9udGFsQWxpZ25tZW50LFxuICBwYXJzZUFmZml4UGxhY2VtZW50LFxufSBmcm9tICcuL3BvcG92ZXItZXh0ZW5zaW9ucyc7XG5pbXBvcnQgeyBTa3lQb3BvdmVyQWxpZ25tZW50IH0gZnJvbSAnLi90eXBlcy9wb3BvdmVyLWFsaWdubWVudCc7XG5pbXBvcnQgeyBTa3lQb3BvdmVyUGxhY2VtZW50IH0gZnJvbSAnLi90eXBlcy9wb3BvdmVyLXBsYWNlbWVudCc7XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NreS1wb3BvdmVyLWNvbnRlbnQnLFxuICB0ZW1wbGF0ZVVybDogJy4vcG9wb3Zlci1jb250ZW50LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcG9wb3Zlci1jb250ZW50LmNvbXBvbmVudC5zY3NzJ10sXG4gIGFuaW1hdGlvbnM6IFtza3lQb3BvdmVyQW5pbWF0aW9uXSxcbiAgcHJvdmlkZXJzOiBbU2t5UG9wb3ZlckFkYXB0ZXJTZXJ2aWNlXSxcbn0pXG5leHBvcnQgY2xhc3MgU2t5UG9wb3ZlckNvbnRlbnRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIHB1YmxpYyBnZXQgYW5pbWF0aW9uU3RhdGUoKTogU2t5UG9wb3ZlckFuaW1hdGlvblN0YXRlIHtcbiAgICByZXR1cm4gdGhpcy5pc09wZW4gPyAnb3BlbicgOiAnY2xvc2VkJztcbiAgfVxuXG4gIHB1YmxpYyBnZXQgY2xvc2VkKCk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLl9jbG9zZWQuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IG9wZW5lZCgpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy5fb3BlbmVkLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgcHVibGljIGdldCBpc01vdXNlRW50ZXIoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIHRoaXMuX2lzTW91c2VFbnRlci5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBhZmZpeGVyOiBTa3lBZmZpeGVyO1xuXG4gIHB1YmxpYyBhcnJvd0xlZnQ6IG51bWJlcjtcblxuICBwdWJsaWMgYXJyb3dUb3A6IG51bWJlcjtcblxuICBwdWJsaWMgZGlzbWlzc09uQmx1ciA9IHRydWU7XG5cbiAgcHVibGljIGVuYWJsZUFuaW1hdGlvbnMgPSB0cnVlO1xuXG4gIHB1YmxpYyBob3Jpem9udGFsQWxpZ25tZW50OiBTa3lQb3BvdmVyQWxpZ25tZW50O1xuXG4gIHB1YmxpYyBpc09wZW4gPSBmYWxzZTtcblxuICBwdWJsaWMgcGxhY2VtZW50OiBTa3lQb3BvdmVyUGxhY2VtZW50O1xuXG4gIHB1YmxpYyBwb3BvdmVyVGl0bGU6IHN0cmluZztcblxuICBwdWJsaWMgcG9wb3ZlclR5cGU6ICdkYW5nZXInIHwgJ2luZm8nID0gJ2luZm8nO1xuXG4gIHB1YmxpYyB0aGVtZU5hbWU6IHN0cmluZztcblxuICBAVmlld0NoaWxkKCdhcnJvd1JlZicsIHtcbiAgICByZWFkOiBFbGVtZW50UmVmLFxuICAgIHN0YXRpYzogdHJ1ZSxcbiAgfSlcbiAgcHJpdmF0ZSBhcnJvd1JlZjogRWxlbWVudFJlZjtcblxuICBAVmlld0NoaWxkKCdwb3BvdmVyUmVmJywge1xuICAgIHJlYWQ6IEVsZW1lbnRSZWYsXG4gICAgc3RhdGljOiB0cnVlLFxuICB9KVxuICBwcml2YXRlIHBvcG92ZXJSZWY6IEVsZW1lbnRSZWY7XG5cbiAgQFZpZXdDaGlsZCgnY29udGVudFRhcmdldCcsIHtcbiAgICByZWFkOiBWaWV3Q29udGFpbmVyUmVmLFxuICAgIHN0YXRpYzogdHJ1ZSxcbiAgfSlcbiAgcHJpdmF0ZSBjb250ZW50VGFyZ2V0OiBWaWV3Q29udGFpbmVyUmVmO1xuXG4gIHByaXZhdGUgY2FsbGVyOiBFbGVtZW50UmVmO1xuXG4gIHByaXZhdGUgbmdVbnN1YnNjcmliZSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgcHJpdmF0ZSBfY2xvc2VkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICBwcml2YXRlIF9pc01vdXNlRW50ZXIgPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xuXG4gIHByaXZhdGUgX29wZW5lZCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBjaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgIHByaXZhdGUgYWZmaXhTZXJ2aWNlOiBTa3lBZmZpeFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjb3JlQWRhcHRlclNlcnZpY2U6IFNreUNvcmVBZGFwdGVyU2VydmljZSxcbiAgICBwcml2YXRlIGFkYXB0ZXJTZXJ2aWNlOiBTa3lQb3BvdmVyQWRhcHRlclNlcnZpY2UsXG4gICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSBjb250ZXh0PzogU2t5UG9wb3ZlckNvbnRleHQsXG4gICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSB0aGVtZVN2Yz86IFNreVRoZW1lU2VydmljZVxuICApIHt9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIC8qaXN0YW5idWwgaWdub3JlIG5leHQqL1xuICAgIHRoaXMuY29udGVudFRhcmdldC5jcmVhdGVFbWJlZGRlZFZpZXcodGhpcy5jb250ZXh0Py5jb250ZW50VGVtcGxhdGVSZWYpO1xuICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcnMoKTtcblxuICAgIC8qaXN0YW5idWwgaWdub3JlIGVsc2UqL1xuICAgIGlmICh0aGlzLnRoZW1lU3ZjKSB7XG4gICAgICB0aGlzLnRoZW1lU3ZjLnNldHRpbmdzQ2hhbmdlXG4gICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUpKVxuICAgICAgICAuc3Vic2NyaWJlKCh0aGVtZVNldHRpbmdzKSA9PiB7XG4gICAgICAgICAgLyppc3RhbmJ1bCBpZ25vcmUgbmV4dCovXG4gICAgICAgICAgdGhpcy50aGVtZU5hbWUgPSB0aGVtZVNldHRpbmdzLmN1cnJlbnRTZXR0aW5ncz8udGhlbWU/Lm5hbWU7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLm5nVW5zdWJzY3JpYmUubmV4dCgpO1xuICAgIHRoaXMubmdVbnN1YnNjcmliZS5jb21wbGV0ZSgpO1xuXG4gICAgdGhpcy5fY2xvc2VkLmNvbXBsZXRlKCk7XG4gICAgdGhpcy5faXNNb3VzZUVudGVyLmNvbXBsZXRlKCk7XG4gICAgdGhpcy5fb3BlbmVkLmNvbXBsZXRlKCk7XG5cbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgIGlmICh0aGlzLmFmZml4ZXIpIHtcbiAgICAgIHRoaXMuYWZmaXhlci5kZXN0cm95KCk7XG4gICAgfVxuXG4gICAgdGhpcy5fY2xvc2VkID1cbiAgICAgIHRoaXMuX2lzTW91c2VFbnRlciA9XG4gICAgICB0aGlzLl9vcGVuZWQgPVxuICAgICAgdGhpcy5hZmZpeGVyID1cbiAgICAgIHRoaXMubmdVbnN1YnNjcmliZSA9XG4gICAgICAgIHVuZGVmaW5lZDtcbiAgfVxuXG4gIHB1YmxpYyBvbkFuaW1hdGlvbkV2ZW50KGV2ZW50OiBBbmltYXRpb25FdmVudCk6IHZvaWQge1xuICAgIGlmIChldmVudC5mcm9tU3RhdGUgPT09ICd2b2lkJykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChldmVudC5waGFzZU5hbWUgPT09ICdkb25lJykge1xuICAgICAgaWYgKGV2ZW50LnRvU3RhdGUgPT09ICdvcGVuJykge1xuICAgICAgICAvKmlzdGFuYnVsIGlnbm9yZSBuZXh0Ki9cbiAgICAgICAgdGhpcy5fb3BlbmVkPy5uZXh0KCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvKmlzdGFuYnVsIGlnbm9yZSBuZXh0Ki9cbiAgICAgICAgdGhpcy5fY2xvc2VkPy5uZXh0KCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG9wZW4oXG4gICAgY2FsbGVyOiBFbGVtZW50UmVmLFxuICAgIGNvbmZpZzoge1xuICAgICAgZGlzbWlzc09uQmx1cjogYm9vbGVhbjtcbiAgICAgIGVuYWJsZUFuaW1hdGlvbnM6IGJvb2xlYW47XG4gICAgICBob3Jpem9udGFsQWxpZ25tZW50OiBTa3lQb3BvdmVyQWxpZ25tZW50O1xuICAgICAgaXNTdGF0aWM6IGJvb2xlYW47XG4gICAgICBwbGFjZW1lbnQ6IFNreVBvcG92ZXJQbGFjZW1lbnQ7XG4gICAgICBwb3BvdmVyVGl0bGU6IHN0cmluZztcbiAgICAgIHBvcG92ZXJUeXBlPzogJ2RhbmdlcicgfCAnaW5mbyc7XG4gICAgfVxuICApOiB2b2lkIHtcbiAgICB0aGlzLmNhbGxlciA9IGNhbGxlcjtcbiAgICB0aGlzLmRpc21pc3NPbkJsdXIgPSBjb25maWcuZGlzbWlzc09uQmx1cjtcbiAgICB0aGlzLmVuYWJsZUFuaW1hdGlvbnMgPSBjb25maWcuZW5hYmxlQW5pbWF0aW9ucztcbiAgICB0aGlzLmhvcml6b250YWxBbGlnbm1lbnQgPSBjb25maWcuaG9yaXpvbnRhbEFsaWdubWVudDtcbiAgICB0aGlzLnBsYWNlbWVudCA9IGNvbmZpZy5wbGFjZW1lbnQ7XG4gICAgdGhpcy5wb3BvdmVyVGl0bGUgPSBjb25maWcucG9wb3ZlclRpdGxlO1xuICAgIGlmIChjb25maWcucG9wb3ZlclR5cGUpIHtcbiAgICAgIHRoaXMucG9wb3ZlclR5cGUgPSBjb25maWcucG9wb3ZlclR5cGU7XG4gICAgfVxuXG4gICAgdGhpcy5jaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcblxuICAgIC8vIEluZGljYXRlcyBpZiB0aGUgcG9wb3ZlciBzaG91bGQgYmUgZGlzcGxheWVkIHN0YXRpY2FsbHkuXG4gICAgLy8gUGxlYXNlIG5vdGU6IFRoaXMgZmVhdHVyZSBpcyBpbnRlcm5hbC1vbmx5IGFuZCB1c2VkIGJ5IHRoZSB2aXN1YWwgdGVzdHMgdG8gY2FwdHVyZSBtdWx0aXBsZVxuICAgIC8vIHN0YXRlcyBzaW11bHRhbmVvdXNseSB3aXRob3V0IHRoZSBvdmVyaGVhZCBvZiBldmVudCBsaXN0ZW5lcnMuXG4gICAgLyogaXN0YW5idWwgaWdub3JlIGlmICovXG4gICAgaWYgKGNvbmZpZy5pc1N0YXRpYykge1xuICAgICAgdGhpcy5pc09wZW4gPSB0cnVlO1xuICAgICAgdGhpcy5jaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBMZXQgdGhlIHN0eWxlcyByZW5kZXIgYmVmb3JlIGdhdWdpbmcgdGhlIGFmZml4IGRpbWVuc2lvbnMuXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAvKmlzdGFuYnVsIGlnbm9yZSBuZXh0Ki9cbiAgICAgIGlmIChcbiAgICAgICAgIXRoaXMucG9wb3ZlclJlZj8ubmF0aXZlRWxlbWVudCB8fFxuICAgICAgICAhdGhpcy5uZ1Vuc3Vic2NyaWJlIHx8XG4gICAgICAgIHRoaXMubmdVbnN1YnNjcmliZS5pc1N0b3BwZWRcbiAgICAgICkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGlmICghdGhpcy5hZmZpeGVyKSB7XG4gICAgICAgIHRoaXMuc2V0dXBBZmZpeGVyKCk7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGFmZml4T3B0aW9uczogU2t5QWZmaXhDb25maWcgPSB7XG4gICAgICAgIGF1dG9GaXRDb250ZXh0OiBTa3lBZmZpeEF1dG9GaXRDb250ZXh0LlZpZXdwb3J0LFxuICAgICAgICBlbmFibGVBdXRvRml0OiB0cnVlLFxuICAgICAgICBob3Jpem9udGFsQWxpZ25tZW50OiBwYXJzZUFmZml4SG9yaXpvbnRhbEFsaWdubWVudChcbiAgICAgICAgICB0aGlzLmhvcml6b250YWxBbGlnbm1lbnRcbiAgICAgICAgKSxcbiAgICAgICAgaXNTdGlja3k6IHRydWUsXG4gICAgICAgIHBsYWNlbWVudDogcGFyc2VBZmZpeFBsYWNlbWVudCh0aGlzLnBsYWNlbWVudCksXG4gICAgICB9O1xuXG4gICAgICAvLyBFbnN1cmUgdGhhdCB3ZSBhcmUgcG9zaXRpb25pbmcgdGhlIHZlcnRpY2FsIGFsZ2lubWVudCBjb3JyZWN0bHkuIFRoZXNlXG4gICAgICAvLyBhcmUgdGhlIGRlZmF1bHQgYWxpZ25tZW50cyBmb3IgYWxsIHBvcG92ZXJzIGJ1dCBlbnN1cmUgdGhhdCB3ZSBhcmUgZnV0dXJlIHByb29mIGhlcmUuXG4gICAgICBpZiAoXG4gICAgICAgIGFmZml4T3B0aW9ucy5wbGFjZW1lbnQgPT09ICdsZWZ0JyB8fFxuICAgICAgICBhZmZpeE9wdGlvbnMucGxhY2VtZW50ID09PSAncmlnaHQnXG4gICAgICApIHtcbiAgICAgICAgYWZmaXhPcHRpb25zLnZlcnRpY2FsQWxpZ25tZW50ID0gJ21pZGRsZSc7XG4gICAgICB9IGVsc2UgaWYgKGFmZml4T3B0aW9ucy5wbGFjZW1lbnQgPT09ICdhYm92ZScpIHtcbiAgICAgICAgYWZmaXhPcHRpb25zLnZlcnRpY2FsQWxpZ25tZW50ID0gJ2JvdHRvbSc7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBhZmZpeE9wdGlvbnMudmVydGljYWxBbGlnbm1lbnQgPSAndG9wJztcbiAgICAgIH1cblxuICAgICAgdGhpcy5hZmZpeGVyLmFmZml4VG8odGhpcy5jYWxsZXIubmF0aXZlRWxlbWVudCwgYWZmaXhPcHRpb25zKTtcblxuICAgICAgdGhpcy51cGRhdGVBcnJvd09mZnNldCgpO1xuXG4gICAgICB0aGlzLmlzT3BlbiA9IHRydWU7XG4gICAgICB0aGlzLmNoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGNsb3NlKCk6IHZvaWQge1xuICAgIHRoaXMuaXNPcGVuID0gZmFsc2U7XG4gICAgdGhpcy5jaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIHB1YmxpYyBhcHBseUZvY3VzKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmlzT3Blbikge1xuICAgICAgdGhpcy5jb3JlQWRhcHRlclNlcnZpY2UuZ2V0Rm9jdXNhYmxlQ2hpbGRyZW5BbmRBcHBseUZvY3VzKFxuICAgICAgICB0aGlzLnBvcG92ZXJSZWYsXG4gICAgICAgICcuc2t5LXBvcG92ZXInLFxuICAgICAgICB0cnVlXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2V0dXBBZmZpeGVyKCk6IHZvaWQge1xuICAgIGNvbnN0IGFmZml4ZXIgPSB0aGlzLmFmZml4U2VydmljZS5jcmVhdGVBZmZpeGVyKHRoaXMucG9wb3ZlclJlZik7XG5cbiAgICBhZmZpeGVyLm9mZnNldENoYW5nZS5waXBlKHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy51cGRhdGVBcnJvd09mZnNldCgpO1xuICAgICAgdGhpcy5jaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcbiAgICB9KTtcblxuICAgIGFmZml4ZXIub3ZlcmZsb3dTY3JvbGwucGlwZSh0YWtlVW50aWwodGhpcy5uZ1Vuc3Vic2NyaWJlKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMudXBkYXRlQXJyb3dPZmZzZXQoKTtcbiAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XG4gICAgfSk7XG5cbiAgICBhZmZpeGVyLnBsYWNlbWVudENoYW5nZVxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMubmdVbnN1YnNjcmliZSkpXG4gICAgICAuc3Vic2NyaWJlKChjaGFuZ2UpID0+IHtcbiAgICAgICAgdGhpcy5wbGFjZW1lbnQgPSBjaGFuZ2UucGxhY2VtZW50O1xuICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICAgICAgfSk7XG5cbiAgICB0aGlzLmFmZml4ZXIgPSBhZmZpeGVyO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVBcnJvd09mZnNldCgpOiB2b2lkIHtcbiAgICBjb25zdCB7IHRvcCwgbGVmdCB9ID0gdGhpcy5hZGFwdGVyU2VydmljZS5nZXRBcnJvd0Nvb3JkaW5hdGVzKFxuICAgICAge1xuICAgICAgICBjYWxsZXI6IHRoaXMuY2FsbGVyLFxuICAgICAgICBwb3BvdmVyOiB0aGlzLnBvcG92ZXJSZWYsXG4gICAgICAgIHBvcG92ZXJBcnJvdzogdGhpcy5hcnJvd1JlZixcbiAgICAgIH0sXG4gICAgICB0aGlzLnBsYWNlbWVudCxcbiAgICAgIHRoaXMudGhlbWVOYW1lXG4gICAgKTtcblxuICAgIHRoaXMuYXJyb3dUb3AgPSB0b3A7XG4gICAgdGhpcy5hcnJvd0xlZnQgPSBsZWZ0O1xuICB9XG5cbiAgcHJpdmF0ZSBpc0ZvY3VzTGVhdmluZ0VsZW1lbnQoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiBib29sZWFuIHtcbiAgICBjb25zdCBmb2N1c2FibGVJdGVtcyA9IHRoaXMuY29yZUFkYXB0ZXJTZXJ2aWNlLmdldEZvY3VzYWJsZUNoaWxkcmVuKFxuICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnRcbiAgICApO1xuXG4gICAgY29uc3QgaXNGaXJzdEl0ZW0gPSBmb2N1c2FibGVJdGVtc1swXSA9PT0gZXZlbnQudGFyZ2V0ICYmIGV2ZW50LnNoaWZ0S2V5O1xuXG4gICAgY29uc3QgaXNMYXN0SXRlbSA9XG4gICAgICBmb2N1c2FibGVJdGVtc1tmb2N1c2FibGVJdGVtcy5sZW5ndGggLSAxXSA9PT0gZXZlbnQudGFyZ2V0ICYmXG4gICAgICAhZXZlbnQuc2hpZnRLZXk7XG5cbiAgICByZXR1cm4gZm9jdXNhYmxlSXRlbXMubGVuZ3RoID09PSAwIHx8IGlzRmlyc3RJdGVtIHx8IGlzTGFzdEl0ZW07XG4gIH1cblxuICBwcml2YXRlIGFkZEV2ZW50TGlzdGVuZXJzKCk6IHZvaWQge1xuICAgIGNvbnN0IGhvc3RFbGVtZW50ID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG5cbiAgICBvYnNlcnZhYmxlRnJvbUV2ZW50KGhvc3RFbGVtZW50LCAnbW91c2VlbnRlcicpXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5uZ1Vuc3Vic2NyaWJlKSlcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5faXNNb3VzZUVudGVyLm5leHQodHJ1ZSkpO1xuXG4gICAgb2JzZXJ2YWJsZUZyb21FdmVudChob3N0RWxlbWVudCwgJ21vdXNlbGVhdmUnKVxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMubmdVbnN1YnNjcmliZSkpXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHRoaXMuX2lzTW91c2VFbnRlci5uZXh0KGZhbHNlKSk7XG5cbiAgICBvYnNlcnZhYmxlRnJvbUV2ZW50KGhvc3RFbGVtZW50LCAna2V5ZG93bicpXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5uZ1Vuc3Vic2NyaWJlKSlcbiAgICAgIC5zdWJzY3JpYmUoKGV2ZW50OiBLZXlib2FyZEV2ZW50KSA9PiB7XG4gICAgICAgIGNvbnN0IGtleSA9IGV2ZW50LmtleS50b0xvd2VyQ2FzZSgpO1xuXG4gICAgICAgIC8qIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpzd2l0Y2gtZGVmYXVsdCAqL1xuICAgICAgICBzd2l0Y2ggKGtleSkge1xuICAgICAgICAgIGNhc2UgJ2VzY2FwZSc6XG4gICAgICAgICAgICB0aGlzLmNsb3NlKCk7XG4gICAgICAgICAgICB0aGlzLmNhbGxlci5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgIC8vIFNpbmNlIHRoZSBwb3BvdmVyIG5vdyBsaXZlcyBpbiBhbiBvdmVybGF5IGF0IHRoZSBib3R0b20gb2YgdGhlIGRvY3VtZW50IGJvZHksIHdlIG5lZWRcbiAgICAgICAgICAvLyB0byBoYW5kbGUgdGhlIHRhYiBrZXkgb3Vyc2VsdmVzLiBPdGhlcndpc2UsIGZvY3VzIHdvdWxkIGJlIG1vdmVkIHRvIHRoZSBicm93c2VyJ3NcbiAgICAgICAgICAvLyBzZWFyY2ggYmFyLlxuICAgICAgICAgIGNhc2UgJ3RhYic6XG4gICAgICAgICAgICBpZiAoIXRoaXMuZGlzbWlzc09uQmx1cikge1xuICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8qaXN0YW5idWwgaWdub3JlIGVsc2UqL1xuICAgICAgICAgICAgaWYgKHRoaXMuaXNGb2N1c0xlYXZpbmdFbGVtZW50KGV2ZW50KSkge1xuICAgICAgICAgICAgICB0aGlzLmNsb3NlKCk7XG4gICAgICAgICAgICAgIHRoaXMuY2FsbGVyLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cbn1cbiIsIjxkaXZcbiAgY2xhc3M9XCJza3ktcG9wb3Zlci1jb250YWluZXIgc2t5LXBvcG92ZXItbWF4LWhlaWdodFwiXG4gIFtALmRpc2FibGVkXT1cIiFlbmFibGVBbmltYXRpb25zXCJcbiAgW0Bza3lQb3BvdmVyQW5pbWF0aW9uXT1cImFuaW1hdGlvblN0YXRlXCJcbiAgW2NsYXNzLnNreS1wb3BvdmVyLWhpZGRlbl09XCIhcGxhY2VtZW50XCJcbiAgW25nQ2xhc3NdPVwiW1xuICAgICdza3ktcG9wb3Zlci1hbGlnbm1lbnQtJyArIGhvcml6b250YWxBbGlnbm1lbnQsXG4gICAgJ3NreS1wb3BvdmVyLXBsYWNlbWVudC0nICsgcGxhY2VtZW50LFxuICAgICdza3ktcG9wb3Zlci0nICsgcG9wb3ZlclR5cGVcbiAgXVwiXG4gIChAc2t5UG9wb3ZlckFuaW1hdGlvbi5kb25lKT1cIm9uQW5pbWF0aW9uRXZlbnQoJGV2ZW50KVwiXG4gIChAc2t5UG9wb3ZlckFuaW1hdGlvbi5zdGFydCk9XCJvbkFuaW1hdGlvbkV2ZW50KCRldmVudClcIlxuICAjcG9wb3ZlclJlZlxuPlxuICA8ZGl2XG4gICAgY2xhc3M9XCJza3ktcG9wb3ZlclwiXG4gICAgdGFiaW5kZXg9XCItMVwiXG4gICAgW3NreVRoZW1lQ2xhc3NdPVwie1xuICAgICAgJ3NreS1yb3VuZGVkLWNvcm5lcnMgc2t5LXNoYWRvdyc6ICdkZWZhdWx0JyxcbiAgICAgICdza3ktZWxldmF0aW9uLTQnOiAnbW9kZXJuJ1xuICAgIH1cIlxuICA+XG4gICAgPGhlYWRlclxuICAgICAgKm5nSWY9XCJwb3BvdmVyVGl0bGVcIlxuICAgICAgY2xhc3M9XCJza3ktcG9wb3Zlci1oZWFkZXJcIlxuICAgICAgW3NreVRoZW1lQ2xhc3NdPVwie1xuICAgICAgICAnc2t5LXBhZGRpbmctZXZlbi1kZWZhdWx0JzogJ2RlZmF1bHQnLFxuICAgICAgICAnc2t5LXBhZGRpbmctZXZlbi1sZyBza3ktbWFyZ2luLXN0YWNrZWQtbGcnOiAnbW9kZXJuJ1xuICAgICAgfVwiXG4gICAgPlxuICAgICAgPGgxXG4gICAgICAgICpuZ0lmPVwicG9wb3ZlclRpdGxlXCJcbiAgICAgICAgY2xhc3M9XCJza3ktcG9wb3Zlci10aXRsZVwiXG4gICAgICAgIFtza3lUaGVtZUNsYXNzXT1cIntcbiAgICAgICAgICAnc2t5LWVtcGhhc2l6ZWQnOiAnZGVmYXVsdCcsXG4gICAgICAgICAgJ3NreS1mb250LWVtcGhhc2l6ZWQnOiAnbW9kZXJuJ1xuICAgICAgICB9XCJcbiAgICAgID5cbiAgICAgICAge3sgcG9wb3ZlclRpdGxlIH19XG4gICAgICA8L2gxPlxuICAgIDwvaGVhZGVyPlxuICAgIDxkaXZcbiAgICAgIGNsYXNzPVwic2t5LXBvcG92ZXItYm9keVwiXG4gICAgICBbc2t5VGhlbWVDbGFzc109XCJ7XG4gICAgICAgICdza3ktcGFkZGluZy1ldmVuLWRlZmF1bHQnOiAnZGVmYXVsdCcsXG4gICAgICAgICdza3ktcGFkZGluZy1ldmVuLWxnJzogJ21vZGVybidcbiAgICAgIH1cIlxuICAgID5cbiAgICAgIDxuZy1jb250YWluZXIgI2NvbnRlbnRUYXJnZXQ+PC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG4gICAgPHNwYW5cbiAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICBjbGFzcz1cInNreS1wb3BvdmVyLWFycm93XCJcbiAgICAgIFtzdHlsZS5sZWZ0LnB4XT1cImFycm93TGVmdFwiXG4gICAgICBbc3R5bGUudG9wLnB4XT1cImFycm93VG9wXCJcbiAgICAgICNhcnJvd1JlZlxuICAgID48L3NwYW4+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
@@ -0,0 +1,10 @@
1
+ /**
2
+ * @dynamic
3
+ * @internal
4
+ */
5
+ export class SkyPopoverContext {
6
+ constructor(args) {
7
+ this.contentTemplateRef = args.contentTemplateRef;
8
+ }
9
+ }
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wb3Zlci1jb250ZXh0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3BvcG92ZXJzL3NyYy9saWIvbW9kdWxlcy9wb3BvdmVyL3BvcG92ZXItY29udGV4dC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQTs7O0dBR0c7QUFDSCxNQUFNLE9BQU8saUJBQWlCO0lBRzVCLFlBQVksSUFBOEM7UUFDeEQsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQztJQUNwRCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG4vKipcbiAqIEBkeW5hbWljXG4gKiBAaW50ZXJuYWxcbiAqL1xuZXhwb3J0IGNsYXNzIFNreVBvcG92ZXJDb250ZXh0IHtcbiAgcHVibGljIHJlYWRvbmx5IGNvbnRlbnRUZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8YW55PjtcblxuICBjb25zdHJ1Y3RvcihhcmdzOiB7IGNvbnRlbnRUZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8YW55PiB9KSB7XG4gICAgdGhpcy5jb250ZW50VGVtcGxhdGVSZWYgPSBhcmdzLmNvbnRlbnRUZW1wbGF0ZVJlZjtcbiAgfVxufVxuIl19
@@ -0,0 +1,29 @@
1
+ export function parseAffixPlacement(placement) {
2
+ switch (placement) {
3
+ case 'above':
4
+ return 'above';
5
+ case 'below':
6
+ return 'below';
7
+ case 'right':
8
+ return 'right';
9
+ case 'left':
10
+ return 'left';
11
+ /* istanbul ignore next */
12
+ default:
13
+ throw `SkyAffixPlacement does not have a matching value for '${placement}'!`;
14
+ }
15
+ }
16
+ export function parseAffixHorizontalAlignment(alignment) {
17
+ switch (alignment) {
18
+ case 'center':
19
+ return 'center';
20
+ case 'left':
21
+ return 'left';
22
+ case 'right':
23
+ return 'right';
24
+ /* istanbul ignore next */
25
+ default:
26
+ throw `SkyAffixHorizontalAlignment does not have a matching value for '${alignment}'!`;
27
+ }
28
+ }
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wb3Zlci1leHRlbnNpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3BvcG92ZXJzL3NyYy9saWIvbW9kdWxlcy9wb3BvdmVyL3BvcG92ZXItZXh0ZW5zaW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFLQSxNQUFNLFVBQVUsbUJBQW1CLENBQ2pDLFNBQThCO0lBRTlCLFFBQVEsU0FBUyxFQUFFO1FBQ2pCLEtBQUssT0FBTztZQUNWLE9BQU8sT0FBTyxDQUFDO1FBQ2pCLEtBQUssT0FBTztZQUNWLE9BQU8sT0FBTyxDQUFDO1FBQ2pCLEtBQUssT0FBTztZQUNWLE9BQU8sT0FBTyxDQUFDO1FBQ2pCLEtBQUssTUFBTTtZQUNULE9BQU8sTUFBTSxDQUFDO1FBQ2hCLDBCQUEwQjtRQUMxQjtZQUNFLE1BQU0seURBQXlELFNBQVMsSUFBSSxDQUFDO0tBQ2hGO0FBQ0gsQ0FBQztBQUVELE1BQU0sVUFBVSw2QkFBNkIsQ0FDM0MsU0FBOEI7SUFFOUIsUUFBUSxTQUFTLEVBQUU7UUFDakIsS0FBSyxRQUFRO1lBQ1gsT0FBTyxRQUFRLENBQUM7UUFDbEIsS0FBSyxNQUFNO1lBQ1QsT0FBTyxNQUFNLENBQUM7UUFDaEIsS0FBSyxPQUFPO1lBQ1YsT0FBTyxPQUFPLENBQUM7UUFDakIsMEJBQTBCO1FBQzFCO1lBQ0UsTUFBTSxtRUFBbUUsU0FBUyxJQUFJLENBQUM7S0FDMUY7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2t5QWZmaXhIb3Jpem9udGFsQWxpZ25tZW50LCBTa3lBZmZpeFBsYWNlbWVudCB9IGZyb20gJ0Bza3l1eC9jb3JlJztcblxuaW1wb3J0IHsgU2t5UG9wb3ZlckFsaWdubWVudCB9IGZyb20gJy4vdHlwZXMvcG9wb3Zlci1hbGlnbm1lbnQnO1xuaW1wb3J0IHsgU2t5UG9wb3ZlclBsYWNlbWVudCB9IGZyb20gJy4vdHlwZXMvcG9wb3Zlci1wbGFjZW1lbnQnO1xuXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VBZmZpeFBsYWNlbWVudChcbiAgcGxhY2VtZW50OiBTa3lQb3BvdmVyUGxhY2VtZW50XG4pOiBTa3lBZmZpeFBsYWNlbWVudCB7XG4gIHN3aXRjaCAocGxhY2VtZW50KSB7XG4gICAgY2FzZSAnYWJvdmUnOlxuICAgICAgcmV0dXJuICdhYm92ZSc7XG4gICAgY2FzZSAnYmVsb3cnOlxuICAgICAgcmV0dXJuICdiZWxvdyc7XG4gICAgY2FzZSAncmlnaHQnOlxuICAgICAgcmV0dXJuICdyaWdodCc7XG4gICAgY2FzZSAnbGVmdCc6XG4gICAgICByZXR1cm4gJ2xlZnQnO1xuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gICAgZGVmYXVsdDpcbiAgICAgIHRocm93IGBTa3lBZmZpeFBsYWNlbWVudCBkb2VzIG5vdCBoYXZlIGEgbWF0Y2hpbmcgdmFsdWUgZm9yICcke3BsYWNlbWVudH0nIWA7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlQWZmaXhIb3Jpem9udGFsQWxpZ25tZW50KFxuICBhbGlnbm1lbnQ6IFNreVBvcG92ZXJBbGlnbm1lbnRcbik6IFNreUFmZml4SG9yaXpvbnRhbEFsaWdubWVudCB7XG4gIHN3aXRjaCAoYWxpZ25tZW50KSB7XG4gICAgY2FzZSAnY2VudGVyJzpcbiAgICAgIHJldHVybiAnY2VudGVyJztcbiAgICBjYXNlICdsZWZ0JzpcbiAgICAgIHJldHVybiAnbGVmdCc7XG4gICAgY2FzZSAncmlnaHQnOlxuICAgICAgcmV0dXJuICdyaWdodCc7XG4gICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICBkZWZhdWx0OlxuICAgICAgdGhyb3cgYFNreUFmZml4SG9yaXpvbnRhbEFsaWdubWVudCBkb2VzIG5vdCBoYXZlIGEgbWF0Y2hpbmcgdmFsdWUgZm9yICcke2FsaWdubWVudH0nIWA7XG4gIH1cbn1cbiJdfQ==