@skyux/core 8.7.0 → 9.0.0-alpha.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 (151) hide show
  1. package/{esm2020 → esm2022}/lib/modules/adapter-service/adapter.module.mjs +5 -5
  2. package/esm2022/lib/modules/adapter-service/adapter.service.mjs +225 -0
  3. package/esm2022/lib/modules/affix/affix.directive.mjs +116 -0
  4. package/{esm2020 → esm2022}/lib/modules/affix/affix.module.mjs +5 -5
  5. package/esm2022/lib/modules/affix/affix.service.mjs +25 -0
  6. package/esm2022/lib/modules/affix/affixer.mjs +398 -0
  7. package/esm2022/lib/modules/default-input-provider/default-input-provider.mjs +26 -0
  8. package/esm2022/lib/modules/dock/dock-dom-adapter.service.mjs +81 -0
  9. package/esm2022/lib/modules/dock/dock-item.mjs +31 -0
  10. package/esm2022/lib/modules/dock/dock.component.mjs +108 -0
  11. package/{esm2020 → esm2022}/lib/modules/dock/dock.module.mjs +5 -5
  12. package/esm2022/lib/modules/dock/dock.service.mjs +96 -0
  13. package/{esm2020 → esm2022}/lib/modules/dynamic-component/dynamic-component.module.mjs +5 -5
  14. package/esm2022/lib/modules/dynamic-component/dynamic-component.service.mjs +106 -0
  15. package/{esm2020 → esm2022}/lib/modules/format/app-format.mjs +4 -4
  16. package/esm2022/lib/modules/id/id.directive.mjs +31 -0
  17. package/{esm2020 → esm2022}/lib/modules/id/id.module.mjs +5 -5
  18. package/{esm2020 → esm2022}/lib/modules/id/id.service.mjs +4 -4
  19. package/esm2022/lib/modules/layout-host/layout-host.service.mjs +22 -0
  20. package/esm2022/lib/modules/live-announcer/live-announcer.service.mjs +79 -0
  21. package/{esm2020 → esm2022}/lib/modules/log/log.module.mjs +5 -5
  22. package/esm2022/lib/modules/log/log.service.mjs +148 -0
  23. package/{esm2020 → esm2022}/lib/modules/media-query/media-query.module.mjs +5 -5
  24. package/esm2022/lib/modules/media-query/media-query.service.mjs +123 -0
  25. package/{esm2020 → esm2022}/lib/modules/mutation/mutation-observer-service.mjs +4 -4
  26. package/{esm2020 → esm2022}/lib/modules/numeric/numeric.module.mjs +5 -5
  27. package/esm2022/lib/modules/numeric/numeric.pipe.mjs +81 -0
  28. package/esm2022/lib/modules/numeric/numeric.service.mjs +205 -0
  29. package/esm2022/lib/modules/overlay/overlay-adapter.service.mjs +44 -0
  30. package/esm2022/lib/modules/overlay/overlay-instance.mjs +62 -0
  31. package/esm2022/lib/modules/overlay/overlay.component.mjs +193 -0
  32. package/{esm2020 → esm2022}/lib/modules/overlay/overlay.module.mjs +5 -5
  33. package/esm2022/lib/modules/overlay/overlay.service.mjs +124 -0
  34. package/{esm2020 → esm2022}/lib/modules/percent-pipe/percent-pipe.module.mjs +5 -5
  35. package/esm2022/lib/modules/percent-pipe/percent.pipe.mjs +56 -0
  36. package/esm2022/lib/modules/resize-observer/resize-observer-media-query.service.mjs +120 -0
  37. package/esm2022/lib/modules/resize-observer/resize-observer.service.mjs +77 -0
  38. package/esm2022/lib/modules/scrollable-host/scrollable-host.service.mjs +223 -0
  39. package/esm2022/lib/modules/shared/number-format/number-format-utility.mjs +72 -0
  40. package/esm2022/lib/modules/shared/sky-core-resources.module.mjs +50 -0
  41. package/esm2022/lib/modules/title/title.service.mjs +31 -0
  42. package/esm2022/lib/modules/trim/trim.directive.mjs +64 -0
  43. package/{esm2020 → esm2022}/lib/modules/trim/trim.module.mjs +5 -5
  44. package/{esm2020 → esm2022}/lib/modules/ui-config/ui-config.service.mjs +4 -4
  45. package/{esm2020 → esm2022}/lib/modules/viewkeeper/viewkeeper-host-options.mjs +4 -4
  46. package/esm2022/lib/modules/viewkeeper/viewkeeper.directive.mjs +131 -0
  47. package/esm2022/lib/modules/viewkeeper/viewkeeper.mjs +283 -0
  48. package/{esm2020 → esm2022}/lib/modules/viewkeeper/viewkeeper.module.mjs +5 -5
  49. package/esm2022/lib/modules/viewkeeper/viewkeeper.service.mjs +39 -0
  50. package/{esm2020 → esm2022}/lib/modules/window/window-ref.mjs +4 -4
  51. package/esm2022/testing/core-testing.module.mjs +32 -0
  52. package/esm2022/testing/mock-media-query.service.mjs +46 -0
  53. package/{esm2020 → esm2022}/testing/mock-ui-config.service.mjs +4 -4
  54. package/esm2022/testing/overlay/overlay-harness.mjs +43 -0
  55. package/esm2022/testing/shared/component-harness.mjs +13 -0
  56. package/{fesm2020 → fesm2022}/skyux-core-testing.mjs +28 -34
  57. package/{fesm2020 → fesm2022}/skyux-core-testing.mjs.map +1 -1
  58. package/fesm2022/skyux-core.mjs +3858 -0
  59. package/fesm2022/skyux-core.mjs.map +1 -0
  60. package/lib/modules/affix/affix.directive.d.ts +1 -1
  61. package/lib/modules/viewkeeper/viewkeeper.directive.d.ts +1 -1
  62. package/package.json +14 -22
  63. package/esm2020/lib/modules/adapter-service/adapter.service.mjs +0 -227
  64. package/esm2020/lib/modules/affix/affix.directive.mjs +0 -118
  65. package/esm2020/lib/modules/affix/affix.service.mjs +0 -28
  66. package/esm2020/lib/modules/affix/affixer.mjs +0 -377
  67. package/esm2020/lib/modules/default-input-provider/default-input-provider.mjs +0 -31
  68. package/esm2020/lib/modules/dock/dock-dom-adapter.service.mjs +0 -83
  69. package/esm2020/lib/modules/dock/dock-item.mjs +0 -34
  70. package/esm2020/lib/modules/dock/dock.component.mjs +0 -110
  71. package/esm2020/lib/modules/dock/dock.service.mjs +0 -98
  72. package/esm2020/lib/modules/dynamic-component/dynamic-component.service.mjs +0 -109
  73. package/esm2020/lib/modules/id/id.directive.mjs +0 -34
  74. package/esm2020/lib/modules/layout-host/layout-host.service.mjs +0 -27
  75. package/esm2020/lib/modules/live-announcer/live-announcer.service.mjs +0 -80
  76. package/esm2020/lib/modules/log/log.service.mjs +0 -147
  77. package/esm2020/lib/modules/media-query/media-query.service.mjs +0 -124
  78. package/esm2020/lib/modules/numeric/numeric.pipe.mjs +0 -84
  79. package/esm2020/lib/modules/numeric/numeric.service.mjs +0 -179
  80. package/esm2020/lib/modules/overlay/overlay-adapter.service.mjs +0 -47
  81. package/esm2020/lib/modules/overlay/overlay-instance.mjs +0 -65
  82. package/esm2020/lib/modules/overlay/overlay.component.mjs +0 -192
  83. package/esm2020/lib/modules/overlay/overlay.service.mjs +0 -125
  84. package/esm2020/lib/modules/percent-pipe/percent.pipe.mjs +0 -59
  85. package/esm2020/lib/modules/resize-observer/resize-observer-media-query.service.mjs +0 -121
  86. package/esm2020/lib/modules/resize-observer/resize-observer.service.mjs +0 -79
  87. package/esm2020/lib/modules/scrollable-host/scrollable-host.service.mjs +0 -218
  88. package/esm2020/lib/modules/shared/number-format/number-format-utility.mjs +0 -72
  89. package/esm2020/lib/modules/shared/sky-core-resources.module.mjs +0 -50
  90. package/esm2020/lib/modules/title/title.service.mjs +0 -34
  91. package/esm2020/lib/modules/trim/trim.directive.mjs +0 -65
  92. package/esm2020/lib/modules/viewkeeper/viewkeeper.directive.mjs +0 -131
  93. package/esm2020/lib/modules/viewkeeper/viewkeeper.mjs +0 -276
  94. package/esm2020/lib/modules/viewkeeper/viewkeeper.service.mjs +0 -42
  95. package/esm2020/testing/core-testing.module.mjs +0 -32
  96. package/esm2020/testing/mock-media-query.service.mjs +0 -46
  97. package/esm2020/testing/overlay/overlay-harness.mjs +0 -43
  98. package/esm2020/testing/shared/component-harness.mjs +0 -19
  99. package/fesm2015/skyux-core-testing.mjs +0 -209
  100. package/fesm2015/skyux-core-testing.mjs.map +0 -1
  101. package/fesm2015/skyux-core.mjs +0 -3835
  102. package/fesm2015/skyux-core.mjs.map +0 -1
  103. package/fesm2020/skyux-core.mjs +0 -3825
  104. package/fesm2020/skyux-core.mjs.map +0 -1
  105. /package/{esm2020 → esm2022}/index.mjs +0 -0
  106. /package/{esm2020 → esm2022}/lib/modules/adapter-service/focusable-children-options.mjs +0 -0
  107. /package/{esm2020 → esm2022}/lib/modules/affix/affix-auto-fit-context.mjs +0 -0
  108. /package/{esm2020 → esm2022}/lib/modules/affix/affix-config.mjs +0 -0
  109. /package/{esm2020 → esm2022}/lib/modules/affix/affix-horizontal-alignment.mjs +0 -0
  110. /package/{esm2020 → esm2022}/lib/modules/affix/affix-offset-change.mjs +0 -0
  111. /package/{esm2020 → esm2022}/lib/modules/affix/affix-offset.mjs +0 -0
  112. /package/{esm2020 → esm2022}/lib/modules/affix/affix-placement-change.mjs +0 -0
  113. /package/{esm2020 → esm2022}/lib/modules/affix/affix-placement.mjs +0 -0
  114. /package/{esm2020 → esm2022}/lib/modules/affix/affix-position.mjs +0 -0
  115. /package/{esm2020 → esm2022}/lib/modules/affix/affix-rect.mjs +0 -0
  116. /package/{esm2020 → esm2022}/lib/modules/affix/affix-utils.mjs +0 -0
  117. /package/{esm2020 → esm2022}/lib/modules/affix/affix-vertical-alignment.mjs +0 -0
  118. /package/{esm2020 → esm2022}/lib/modules/affix/dom-utils.mjs +0 -0
  119. /package/{esm2020 → esm2022}/lib/modules/dock/dock-insert-component-config.mjs +0 -0
  120. /package/{esm2020 → esm2022}/lib/modules/dock/dock-item-config.mjs +0 -0
  121. /package/{esm2020 → esm2022}/lib/modules/dock/dock-item-reference.mjs +0 -0
  122. /package/{esm2020 → esm2022}/lib/modules/dock/dock-location.mjs +0 -0
  123. /package/{esm2020 → esm2022}/lib/modules/dock/dock-options.mjs +0 -0
  124. /package/{esm2020 → esm2022}/lib/modules/dock/sort-by-stack-order.mjs +0 -0
  125. /package/{esm2020 → esm2022}/lib/modules/dynamic-component/dynamic-component-location.mjs +0 -0
  126. /package/{esm2020 → esm2022}/lib/modules/dynamic-component/dynamic-component-options.mjs +0 -0
  127. /package/{esm2020 → esm2022}/lib/modules/layout-host/layout-host-for-child-args.mjs +0 -0
  128. /package/{esm2020 → esm2022}/lib/modules/live-announcer/types/live-announcer-args.mjs +0 -0
  129. /package/{esm2020 → esm2022}/lib/modules/live-announcer/types/live-announcer-politeness.mjs +0 -0
  130. /package/{esm2020 → esm2022}/lib/modules/log/types/log-deprecation-args.mjs +0 -0
  131. /package/{esm2020 → esm2022}/lib/modules/log/types/log-level-token.mjs +0 -0
  132. /package/{esm2020 → esm2022}/lib/modules/log/types/log-level.mjs +0 -0
  133. /package/{esm2020 → esm2022}/lib/modules/media-query/media-breakpoints.mjs +0 -0
  134. /package/{esm2020 → esm2022}/lib/modules/media-query/media-query-listener.mjs +0 -0
  135. /package/{esm2020 → esm2022}/lib/modules/numeric/numeric-symbol.mjs +0 -0
  136. /package/{esm2020 → esm2022}/lib/modules/numeric/numeric.options.mjs +0 -0
  137. /package/{esm2020 → esm2022}/lib/modules/overlay/overlay-config.mjs +0 -0
  138. /package/{esm2020 → esm2022}/lib/modules/overlay/overlay-context.mjs +0 -0
  139. /package/{esm2020 → esm2022}/lib/modules/overlay/overlay-position.mjs +0 -0
  140. /package/{esm2020 → esm2022}/lib/modules/stacking-context/stacking-context-token.mjs +0 -0
  141. /package/{esm2020 → esm2022}/lib/modules/stacking-context/stacking-context.mjs +0 -0
  142. /package/{esm2020 → esm2022}/lib/modules/title/set-title-args.mjs +0 -0
  143. /package/{esm2020 → esm2022}/lib/modules/viewkeeper/viewkeeper-boundary-info.mjs +0 -0
  144. /package/{esm2020 → esm2022}/lib/modules/viewkeeper/viewkeeper-fixed-styles.mjs +0 -0
  145. /package/{esm2020 → esm2022}/lib/modules/viewkeeper/viewkeeper-offset.mjs +0 -0
  146. /package/{esm2020 → esm2022}/lib/modules/viewkeeper/viewkeeper-options.mjs +0 -0
  147. /package/{esm2020 → esm2022}/skyux-core.mjs +0 -0
  148. /package/{esm2020 → esm2022}/testing/overlay/overlay-harness-filters.mjs +0 -0
  149. /package/{esm2020 → esm2022}/testing/public-api.mjs +0 -0
  150. /package/{esm2020 → esm2022}/testing/shared/harness-filters.mjs +0 -0
  151. /package/{esm2020 → esm2022}/testing/skyux-core-testing.mjs +0 -0
@@ -67,5 +67,5 @@ export declare class SkyAffixDirective implements OnInit, OnChanges, OnDestroy {
67
67
  ngOnChanges(changes: SimpleChanges): void;
68
68
  ngOnDestroy(): void;
69
69
  static ɵfac: i0.ɵɵFactoryDeclaration<SkyAffixDirective, never>;
70
- static ɵdir: i0.ɵɵDirectiveDeclaration<SkyAffixDirective, "[skyAffixTo]", never, { "skyAffixTo": "skyAffixTo"; "affixAutoFitContext": "affixAutoFitContext"; "affixAutoFitOverflowOffset": "affixAutoFitOverflowOffset"; "affixEnableAutoFit": "affixEnableAutoFit"; "affixHorizontalAlignment": "affixHorizontalAlignment"; "affixIsSticky": "affixIsSticky"; "affixPlacement": "affixPlacement"; "affixPosition": "affixPosition"; "affixVerticalAlignment": "affixVerticalAlignment"; }, { "affixOffsetChange": "affixOffsetChange"; "affixOverflowScroll": "affixOverflowScroll"; "affixPlacementChange": "affixPlacementChange"; }, never, never, false, never>;
70
+ static ɵdir: i0.ɵɵDirectiveDeclaration<SkyAffixDirective, "[skyAffixTo]", never, { "skyAffixTo": { "alias": "skyAffixTo"; "required": false; }; "affixAutoFitContext": { "alias": "affixAutoFitContext"; "required": false; }; "affixAutoFitOverflowOffset": { "alias": "affixAutoFitOverflowOffset"; "required": false; }; "affixEnableAutoFit": { "alias": "affixEnableAutoFit"; "required": false; }; "affixHorizontalAlignment": { "alias": "affixHorizontalAlignment"; "required": false; }; "affixIsSticky": { "alias": "affixIsSticky"; "required": false; }; "affixPlacement": { "alias": "affixPlacement"; "required": false; }; "affixPosition": { "alias": "affixPosition"; "required": false; }; "affixVerticalAlignment": { "alias": "affixVerticalAlignment"; "required": false; }; }, { "affixOffsetChange": "affixOffsetChange"; "affixOverflowScroll": "affixOverflowScroll"; "affixPlacementChange": "affixPlacementChange"; }, never, never, false, never>;
71
71
  }
@@ -11,5 +11,5 @@ export declare class SkyViewkeeperDirective implements OnInit, OnDestroy {
11
11
  ngOnInit(): void;
12
12
  ngOnDestroy(): void;
13
13
  static ɵfac: i0.ɵɵFactoryDeclaration<SkyViewkeeperDirective, [null, null, null, { optional: true; }]>;
14
- static ɵdir: i0.ɵɵDirectiveDeclaration<SkyViewkeeperDirective, "[skyViewkeeper]", never, { "skyViewkeeper": "skyViewkeeper"; }, {}, never, never, false, never>;
14
+ static ɵdir: i0.ɵɵDirectiveDeclaration<SkyViewkeeperDirective, "[skyViewkeeper]", never, { "skyViewkeeper": { "alias": "skyViewkeeper"; "required": false; }; }, {}, never, never, false, never>;
15
15
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@skyux/core",
3
- "version": "8.7.0",
3
+ "version": "9.0.0-alpha.0",
4
4
  "author": "Blackbaud, Inc.",
5
5
  "keywords": [
6
6
  "blackbaud",
@@ -21,40 +21,32 @@
21
21
  },
22
22
  ".": {
23
23
  "types": "./index.d.ts",
24
- "esm2020": "./esm2020/skyux-core.mjs",
25
- "es2020": "./fesm2020/skyux-core.mjs",
26
- "es2015": "./fesm2015/skyux-core.mjs",
27
- "node": "./fesm2015/skyux-core.mjs",
28
- "default": "./fesm2020/skyux-core.mjs"
24
+ "esm2022": "./esm2022/skyux-core.mjs",
25
+ "esm": "./esm2022/skyux-core.mjs",
26
+ "default": "./fesm2022/skyux-core.mjs"
29
27
  },
30
28
  "./testing": {
31
29
  "types": "./testing/index.d.ts",
32
- "esm2020": "./esm2020/testing/skyux-core-testing.mjs",
33
- "es2020": "./fesm2020/skyux-core-testing.mjs",
34
- "es2015": "./fesm2015/skyux-core-testing.mjs",
35
- "node": "./fesm2015/skyux-core-testing.mjs",
36
- "default": "./fesm2020/skyux-core-testing.mjs"
30
+ "esm2022": "./esm2022/testing/skyux-core-testing.mjs",
31
+ "esm": "./esm2022/testing/skyux-core-testing.mjs",
32
+ "default": "./fesm2022/skyux-core-testing.mjs"
37
33
  },
38
34
  "./documentation.json": {
39
35
  "default": "./documentation.json"
40
36
  }
41
37
  },
42
38
  "peerDependencies": {
43
- "@angular/cdk": "^15.2.9",
44
- "@angular/common": "^15.2.9",
45
- "@angular/core": "^15.2.9",
46
- "@angular/platform-browser": "^15.2.9",
47
- "@angular/router": "^15.2.9",
48
- "@skyux/i18n": "8.7.0"
39
+ "@angular/cdk": "^16.1.6",
40
+ "@angular/common": "^16.1.7",
41
+ "@angular/core": "^16.1.7",
42
+ "@angular/platform-browser": "^16.1.7",
43
+ "@angular/router": "^16.1.7",
44
+ "@skyux/i18n": "9.0.0-alpha.0"
49
45
  },
50
46
  "dependencies": {
51
47
  "tslib": "^2.5.0"
52
48
  },
53
- "module": "fesm2015/skyux-core.mjs",
54
- "es2020": "fesm2020/skyux-core.mjs",
55
- "esm2020": "esm2020/skyux-core.mjs",
56
- "fesm2020": "fesm2020/skyux-core.mjs",
57
- "fesm2015": "fesm2015/skyux-core.mjs",
49
+ "module": "fesm2022/skyux-core.mjs",
58
50
  "typings": "index.d.ts",
59
51
  "sideEffects": false
60
52
  }
@@ -1,227 +0,0 @@
1
- var _SkyCoreAdapterService_instances, _SkyCoreAdapterService_renderer, _SkyCoreAdapterService_focusFirstElement, _SkyCoreAdapterService_isVisible;
2
- import { __classPrivateFieldGet, __classPrivateFieldSet } from "tslib";
3
- import { Injectable, } from '@angular/core';
4
- import { SkyMediaBreakpoints } from '../media-query/media-breakpoints';
5
- import * as i0 from "@angular/core";
6
- const SKY_TABBABLE_SELECTOR = [
7
- 'a[href]',
8
- 'area[href]',
9
- 'input:not([disabled])',
10
- 'button:not([disabled])',
11
- 'select:not([disabled])',
12
- 'textarea:not([disabled])',
13
- 'iframe',
14
- 'object',
15
- 'embed',
16
- '*[contenteditable=true]:not([disabled])',
17
- '*[tabindex]:not([disabled])',
18
- ].join(', ');
19
- export class SkyCoreAdapterService {
20
- constructor(rendererFactory) {
21
- _SkyCoreAdapterService_instances.add(this);
22
- _SkyCoreAdapterService_renderer.set(this, void 0);
23
- __classPrivateFieldSet(this, _SkyCoreAdapterService_renderer, rendererFactory.createRenderer(undefined, null), "f");
24
- }
25
- /**
26
- * Set the responsive container CSS class for a given element.
27
- *
28
- * @param elementRef - The element that will receive the new CSS class.
29
- * @param breakpoint - The SkyMediaBreakpoint will determine which class
30
- * gets set. For example a SkyMediaBreakpoint of `xs` will set a CSS class of `sky-responsive-container-xs`.
31
- */
32
- setResponsiveContainerClass(elementRef, breakpoint) {
33
- const nativeEl = elementRef.nativeElement;
34
- __classPrivateFieldGet(this, _SkyCoreAdapterService_renderer, "f").removeClass(nativeEl, 'sky-responsive-container-xs');
35
- __classPrivateFieldGet(this, _SkyCoreAdapterService_renderer, "f").removeClass(nativeEl, 'sky-responsive-container-sm');
36
- __classPrivateFieldGet(this, _SkyCoreAdapterService_renderer, "f").removeClass(nativeEl, 'sky-responsive-container-md');
37
- __classPrivateFieldGet(this, _SkyCoreAdapterService_renderer, "f").removeClass(nativeEl, 'sky-responsive-container-lg');
38
- let newClass;
39
- switch (breakpoint) {
40
- case SkyMediaBreakpoints.xs: {
41
- newClass = 'sky-responsive-container-xs';
42
- break;
43
- }
44
- case SkyMediaBreakpoints.sm: {
45
- newClass = 'sky-responsive-container-sm';
46
- break;
47
- }
48
- case SkyMediaBreakpoints.md: {
49
- newClass = 'sky-responsive-container-md';
50
- break;
51
- }
52
- default: {
53
- newClass = 'sky-responsive-container-lg';
54
- break;
55
- }
56
- }
57
- __classPrivateFieldGet(this, _SkyCoreAdapterService_renderer, "f").addClass(nativeEl, newClass);
58
- }
59
- /**
60
- * This method temporarily enables/disables pointer events.
61
- * This is helpful to prevent iFrames from interfering with drag events.
62
- *
63
- * @param enable - Set to `true` to enable pointer events. Set to `false` to disable.
64
- */
65
- toggleIframePointerEvents(enable) {
66
- const iframes = document.querySelectorAll('iframe');
67
- for (let i = 0; i < iframes.length; i++) {
68
- // Setting to empty string will allow iframe to fall back to its prior CSS assignment.
69
- iframes[i].style.pointerEvents = enable ? '' : 'none';
70
- }
71
- }
72
- /**
73
- * Focuses on the first element found with an `autofocus` attribute inside the supplied `elementRef`.
74
- *
75
- * @param elementRef - The element to search within.
76
- * @return Returns `true` if a child element with autofocus is found.
77
- */
78
- applyAutoFocus(elementRef) {
79
- if (!elementRef) {
80
- return false;
81
- }
82
- const elementWithAutoFocus = elementRef.nativeElement.querySelector('[autofocus]');
83
- // Child was found with the autofocus property. Set focus and return true.
84
- if (elementWithAutoFocus) {
85
- elementWithAutoFocus.focus();
86
- return true;
87
- }
88
- // No children were found with autofocus property. Return false.
89
- return false;
90
- }
91
- /**
92
- * Sets focus on the first focusable child of the `elementRef` parameter.
93
- * If no focusable children are found, and `focusOnContainerIfNoChildrenFound` is `true`,
94
- * focus will be set on the container element.
95
- *
96
- * @param elementRef - The element to search within.
97
- * @param containerSelector - A CSS selector indicating the container that should
98
- * receive focus if no focusable children are found.
99
- * @param focusOnContainerIfNoChildrenFound - It set to `true`, the container will
100
- * receive focus if no focusable children are found.
101
- */
102
- getFocusableChildrenAndApplyFocus(elementRef, containerSelector, focusOnContainerIfNoChildrenFound = false) {
103
- const containerElement = elementRef.nativeElement.querySelector(containerSelector);
104
- if (containerElement) {
105
- const focusableChildren = this.getFocusableChildren(containerElement);
106
- // Focus first focusable child if available. Otherwise, set focus on container.
107
- if (!__classPrivateFieldGet(this, _SkyCoreAdapterService_instances, "m", _SkyCoreAdapterService_focusFirstElement).call(this, focusableChildren) &&
108
- focusOnContainerIfNoChildrenFound) {
109
- containerElement.focus();
110
- }
111
- }
112
- }
113
- /**
114
- * Returns an array of all focusable children of provided `element`.
115
- *
116
- * @param element - The HTMLElement to search within.
117
- * @param options - Options for getting focusable children.
118
- */
119
- getFocusableChildren(element, options) {
120
- if (!element) {
121
- return [];
122
- }
123
- let elements = Array.prototype.slice.call(element.querySelectorAll(SKY_TABBABLE_SELECTOR));
124
- // Unless ignoreTabIndex = true, filter out elements with tabindex = -1.
125
- if (!options || !options.ignoreTabIndex) {
126
- elements = elements.filter((el) => {
127
- return el.tabIndex !== -1;
128
- });
129
- }
130
- // Unless ignoreVisibility = true, filter out elements that are not visible.
131
- if (!options || !options.ignoreVisibility) {
132
- elements = elements.filter((el) => {
133
- return __classPrivateFieldGet(this, _SkyCoreAdapterService_instances, "m", _SkyCoreAdapterService_isVisible).call(this, el);
134
- });
135
- }
136
- return elements;
137
- }
138
- /**
139
- * Returns the clientWidth of the provided elementRef.
140
- * @param elementRef - The element to calculate width from.
141
- */
142
- getWidth(elementRef) {
143
- return elementRef.nativeElement.clientWidth;
144
- }
145
- /**
146
- * Checks if an event target has a higher z-index than a given element.
147
- * @param target The event target element.
148
- * @param element The element to test against. A z-index must be explicitly set for this element.
149
- */
150
- isTargetAboveElement(target, element) {
151
- const zIndex = getComputedStyle(element).zIndex;
152
- let el = target;
153
- while (el) {
154
- // Getting the computed style only works for elements that exist in the DOM.
155
- // In certain scenarios, an element is removed after a click event; by the time the event
156
- // bubbles up to other elements, however, the element has been removed and the computed style returns empty.
157
- // In this case, we'll need to check the z-index directly, via the style property.
158
- const targetZIndex = getComputedStyle(el).zIndex || el.style.zIndex;
159
- if (targetZIndex !== '' &&
160
- targetZIndex !== 'auto' &&
161
- +targetZIndex > +zIndex) {
162
- return true;
163
- }
164
- el = el.parentElement;
165
- }
166
- return false;
167
- }
168
- /**
169
- * Remove inline height styles from the provided elements.
170
- * @param elementRef - The element to search within.
171
- * @param selector - The CSS selector to use when finding elements for removing height.
172
- */
173
- resetHeight(elementRef, selector) {
174
- const children = elementRef.nativeElement.querySelectorAll(selector);
175
- /* istanbul ignore else */
176
- if (children.length > 0) {
177
- for (let i = 0; i < children.length; i++) {
178
- // Setting style attributes with Web API requires null instead of undefined.
179
- children[i].style.height = null;
180
- }
181
- }
182
- }
183
- /**
184
- * Sets all element heights to match the height of the tallest element.
185
- * @param elementRef - The element to search within.
186
- * @param selector - The CSS selector to use when finding elements for syncing height.
187
- */
188
- syncMaxHeight(elementRef, selector) {
189
- const children = elementRef.nativeElement.querySelectorAll(selector);
190
- /* istanbul ignore else */
191
- if (children.length > 0) {
192
- let maxHeight = 0;
193
- for (let i = 0; i < children.length; i++) {
194
- maxHeight = Math.max(maxHeight, children[i].offsetHeight);
195
- }
196
- for (let i = 0; i < children.length; i++) {
197
- children[i].style.height = maxHeight + 'px';
198
- }
199
- }
200
- }
201
- }
202
- _SkyCoreAdapterService_renderer = new WeakMap(), _SkyCoreAdapterService_instances = new WeakSet(), _SkyCoreAdapterService_focusFirstElement = function _SkyCoreAdapterService_focusFirstElement(list) {
203
- if (list.length > 0) {
204
- list[0].focus();
205
- return true;
206
- }
207
- return false;
208
- }, _SkyCoreAdapterService_isVisible = function _SkyCoreAdapterService_isVisible(element) {
209
- const style = window.getComputedStyle(element);
210
- const isHidden = style.display === 'none' || style.visibility === 'hidden';
211
- if (isHidden) {
212
- return false;
213
- }
214
- const hasBounds = !!(element.offsetWidth ||
215
- element.offsetHeight ||
216
- element.getClientRects().length);
217
- return hasBounds;
218
- };
219
- SkyCoreAdapterService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyCoreAdapterService, deps: [{ token: i0.RendererFactory2 }], target: i0.ɵɵFactoryTarget.Injectable });
220
- SkyCoreAdapterService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyCoreAdapterService, providedIn: 'root' });
221
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyCoreAdapterService, decorators: [{
222
- type: Injectable,
223
- args: [{
224
- providedIn: 'root',
225
- }]
226
- }], ctorParameters: function () { return [{ type: i0.RendererFactory2 }]; } });
227
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRhcHRlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2NvcmUvc3JjL2xpYi9tb2R1bGVzL2FkYXB0ZXItc2VydmljZS9hZGFwdGVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxPQUFPLEVBRUwsVUFBVSxHQUdYLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDOztBQUl2RSxNQUFNLHFCQUFxQixHQUFHO0lBQzVCLFNBQVM7SUFDVCxZQUFZO0lBQ1osdUJBQXVCO0lBQ3ZCLHdCQUF3QjtJQUN4Qix3QkFBd0I7SUFDeEIsMEJBQTBCO0lBQzFCLFFBQVE7SUFDUixRQUFRO0lBQ1IsT0FBTztJQUNQLHlDQUF5QztJQUN6Qyw2QkFBNkI7Q0FDOUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7QUFLYixNQUFNLE9BQU8scUJBQXFCO0lBR2hDLFlBQVksZUFBaUM7O1FBRjdDLGtEQUFxQjtRQUduQix1QkFBQSxJQUFJLG1DQUFhLGVBQWUsQ0FBQyxjQUFjLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxNQUFBLENBQUM7SUFDbkUsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNJLDJCQUEyQixDQUNoQyxVQUFzQixFQUN0QixVQUErQjtRQUUvQixNQUFNLFFBQVEsR0FBRyxVQUFVLENBQUMsYUFBYSxDQUFDO1FBRTFDLHVCQUFBLElBQUksdUNBQVUsQ0FBQyxXQUFXLENBQUMsUUFBUSxFQUFFLDZCQUE2QixDQUFDLENBQUM7UUFDcEUsdUJBQUEsSUFBSSx1Q0FBVSxDQUFDLFdBQVcsQ0FBQyxRQUFRLEVBQUUsNkJBQTZCLENBQUMsQ0FBQztRQUNwRSx1QkFBQSxJQUFJLHVDQUFVLENBQUMsV0FBVyxDQUFDLFFBQVEsRUFBRSw2QkFBNkIsQ0FBQyxDQUFDO1FBQ3BFLHVCQUFBLElBQUksdUNBQVUsQ0FBQyxXQUFXLENBQUMsUUFBUSxFQUFFLDZCQUE2QixDQUFDLENBQUM7UUFFcEUsSUFBSSxRQUFnQixDQUFDO1FBRXJCLFFBQVEsVUFBVSxFQUFFO1lBQ2xCLEtBQUssbUJBQW1CLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQzNCLFFBQVEsR0FBRyw2QkFBNkIsQ0FBQztnQkFDekMsTUFBTTthQUNQO1lBQ0QsS0FBSyxtQkFBbUIsQ0FBQyxFQUFFLENBQUMsQ0FBQztnQkFDM0IsUUFBUSxHQUFHLDZCQUE2QixDQUFDO2dCQUN6QyxNQUFNO2FBQ1A7WUFDRCxLQUFLLG1CQUFtQixDQUFDLEVBQUUsQ0FBQyxDQUFDO2dCQUMzQixRQUFRLEdBQUcsNkJBQTZCLENBQUM7Z0JBQ3pDLE1BQU07YUFDUDtZQUNELE9BQU8sQ0FBQyxDQUFDO2dCQUNQLFFBQVEsR0FBRyw2QkFBNkIsQ0FBQztnQkFDekMsTUFBTTthQUNQO1NBQ0Y7UUFFRCx1QkFBQSxJQUFJLHVDQUFVLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSSx5QkFBeUIsQ0FBQyxNQUFlO1FBQzlDLE1BQU0sT0FBTyxHQUFHLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNwRCxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUN2QyxzRkFBc0Y7WUFDdEYsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxhQUFhLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQztTQUN2RDtJQUNILENBQUM7SUFFRDs7Ozs7T0FLRztJQUNJLGNBQWMsQ0FBQyxVQUF1QjtRQUMzQyxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ2YsT0FBTyxLQUFLLENBQUM7U0FDZDtRQUVELE1BQU0sb0JBQW9CLEdBQ3hCLFVBQVUsQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBRXhELDBFQUEwRTtRQUMxRSxJQUFJLG9CQUFvQixFQUFFO1lBQ3hCLG9CQUFvQixDQUFDLEtBQUssRUFBRSxDQUFDO1lBQzdCLE9BQU8sSUFBSSxDQUFDO1NBQ2I7UUFFRCxnRUFBZ0U7UUFDaEUsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQ7Ozs7Ozs7Ozs7T0FVRztJQUNJLGlDQUFpQyxDQUN0QyxVQUFzQixFQUN0QixpQkFBMEIsRUFDMUIsaUNBQWlDLEdBQUcsS0FBSztRQUV6QyxNQUFNLGdCQUFnQixHQUNwQixVQUFVLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBRTVELElBQUksZ0JBQWdCLEVBQUU7WUFDcEIsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztZQUV0RSwrRUFBK0U7WUFDL0UsSUFDRSxDQUFDLHVCQUFBLElBQUksa0ZBQW1CLE1BQXZCLElBQUksRUFBb0IsaUJBQWlCLENBQUM7Z0JBQzNDLGlDQUFpQyxFQUNqQztnQkFDQSxnQkFBZ0IsQ0FBQyxLQUFLLEVBQUUsQ0FBQzthQUMxQjtTQUNGO0lBQ0gsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ksb0JBQW9CLENBQ3pCLE9BQXFCLEVBQ3JCLE9BQXFDO1FBRXJDLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDWixPQUFPLEVBQUUsQ0FBQztTQUNYO1FBRUQsSUFBSSxRQUFRLEdBQUcsS0FBSyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUN2QyxPQUFPLENBQUMsZ0JBQWdCLENBQUMscUJBQXFCLENBQUMsQ0FDaEQsQ0FBQztRQUVGLHdFQUF3RTtRQUN4RSxJQUFJLENBQUMsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLGNBQWMsRUFBRTtZQUN2QyxRQUFRLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQWUsRUFBRSxFQUFFO2dCQUM3QyxPQUFPLEVBQUUsQ0FBQyxRQUFRLEtBQUssQ0FBQyxDQUFDLENBQUM7WUFDNUIsQ0FBQyxDQUFDLENBQUM7U0FDSjtRQUVELDRFQUE0RTtRQUM1RSxJQUFJLENBQUMsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLGdCQUFnQixFQUFFO1lBQ3pDLFFBQVEsR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBZSxFQUFFLEVBQUU7Z0JBQzdDLE9BQU8sdUJBQUEsSUFBSSwwRUFBVyxNQUFmLElBQUksRUFBWSxFQUFFLENBQUMsQ0FBQztZQUM3QixDQUFDLENBQUMsQ0FBQztTQUNKO1FBRUQsT0FBTyxRQUFRLENBQUM7SUFDbEIsQ0FBQztJQUVEOzs7T0FHRztJQUNJLFFBQVEsQ0FBQyxVQUFzQjtRQUNwQyxPQUFPLFVBQVUsQ0FBQyxhQUFhLENBQUMsV0FBVyxDQUFDO0lBQzlDLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksb0JBQW9CLENBQ3pCLE1BQW1CLEVBQ25CLE9BQW9CO1FBRXBCLE1BQU0sTUFBTSxHQUFHLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sQ0FBQztRQUVoRCxJQUFJLEVBQUUsR0FBRyxNQUFxQixDQUFDO1FBRS9CLE9BQU8sRUFBRSxFQUFFO1lBQ1QsNEVBQTRFO1lBQzVFLHlGQUF5RjtZQUN6Riw0R0FBNEc7WUFDNUcsa0ZBQWtGO1lBQ2xGLE1BQU0sWUFBWSxHQUFHLGdCQUFnQixDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sSUFBSSxFQUFFLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQztZQUNwRSxJQUNFLFlBQVksS0FBSyxFQUFFO2dCQUNuQixZQUFZLEtBQUssTUFBTTtnQkFDdkIsQ0FBQyxZQUFZLEdBQUcsQ0FBQyxNQUFNLEVBQ3ZCO2dCQUNBLE9BQU8sSUFBSSxDQUFDO2FBQ2I7WUFFRCxFQUFFLEdBQUcsRUFBRSxDQUFDLGFBQTRCLENBQUM7U0FDdEM7UUFFRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksV0FBVyxDQUFDLFVBQXNCLEVBQUUsUUFBZ0I7UUFDekQsTUFBTSxRQUFRLEdBQUcsVUFBVSxDQUFDLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNyRSwwQkFBMEI7UUFDMUIsSUFBSSxRQUFRLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUN2QixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtnQkFDeEMsNEVBQTRFO2dCQUM1RSxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7YUFDakM7U0FDRjtJQUNILENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksYUFBYSxDQUFDLFVBQXNCLEVBQUUsUUFBZ0I7UUFDM0QsTUFBTSxRQUFRLEdBQUcsVUFBVSxDQUFDLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNyRSwwQkFBMEI7UUFDMUIsSUFBSSxRQUFRLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUN2QixJQUFJLFNBQVMsR0FBRyxDQUFDLENBQUM7WUFDbEIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7Z0JBQ3hDLFNBQVMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLFNBQVMsRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUM7YUFDM0Q7WUFDRCxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtnQkFDeEMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsU0FBUyxHQUFHLElBQUksQ0FBQzthQUM3QztTQUNGO0lBQ0gsQ0FBQzs7Z01BRWtCLElBQXdCO0lBQ3pDLElBQUksSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7UUFDbkIsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ2hCLE9BQU8sSUFBSSxDQUFDO0tBQ2I7SUFDRCxPQUFPLEtBQUssQ0FBQztBQUNmLENBQUMsK0VBRVUsT0FBb0I7SUFDN0IsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQy9DLE1BQU0sUUFBUSxHQUFHLEtBQUssQ0FBQyxPQUFPLEtBQUssTUFBTSxJQUFJLEtBQUssQ0FBQyxVQUFVLEtBQUssUUFBUSxDQUFDO0lBQzNFLElBQUksUUFBUSxFQUFFO1FBQ1osT0FBTyxLQUFLLENBQUM7S0FDZDtJQUVELE1BQU0sU0FBUyxHQUFHLENBQUMsQ0FBQyxDQUNsQixPQUFPLENBQUMsV0FBVztRQUNuQixPQUFPLENBQUMsWUFBWTtRQUNwQixPQUFPLENBQUMsY0FBYyxFQUFFLENBQUMsTUFBTSxDQUNoQyxDQUFDO0lBQ0YsT0FBTyxTQUFTLENBQUM7QUFDbkIsQ0FBQztrSEEzUFUscUJBQXFCO3NIQUFyQixxQkFBcUIsY0FGcEIsTUFBTTsyRkFFUCxxQkFBcUI7a0JBSGpDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgRWxlbWVudFJlZixcbiAgSW5qZWN0YWJsZSxcbiAgUmVuZGVyZXIyLFxuICBSZW5kZXJlckZhY3RvcnkyLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgU2t5TWVkaWFCcmVha3BvaW50cyB9IGZyb20gJy4uL21lZGlhLXF1ZXJ5L21lZGlhLWJyZWFrcG9pbnRzJztcblxuaW1wb3J0IHsgU2t5Rm9jdXNhYmxlQ2hpbGRyZW5PcHRpb25zIH0gZnJvbSAnLi9mb2N1c2FibGUtY2hpbGRyZW4tb3B0aW9ucyc7XG5cbmNvbnN0IFNLWV9UQUJCQUJMRV9TRUxFQ1RPUiA9IFtcbiAgJ2FbaHJlZl0nLFxuICAnYXJlYVtocmVmXScsXG4gICdpbnB1dDpub3QoW2Rpc2FibGVkXSknLFxuICAnYnV0dG9uOm5vdChbZGlzYWJsZWRdKScsXG4gICdzZWxlY3Q6bm90KFtkaXNhYmxlZF0pJyxcbiAgJ3RleHRhcmVhOm5vdChbZGlzYWJsZWRdKScsXG4gICdpZnJhbWUnLFxuICAnb2JqZWN0JyxcbiAgJ2VtYmVkJyxcbiAgJypbY29udGVudGVkaXRhYmxlPXRydWVdOm5vdChbZGlzYWJsZWRdKScsXG4gICcqW3RhYmluZGV4XTpub3QoW2Rpc2FibGVkXSknLFxuXS5qb2luKCcsICcpO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgU2t5Q29yZUFkYXB0ZXJTZXJ2aWNlIHtcbiAgI3JlbmRlcmVyOiBSZW5kZXJlcjI7XG5cbiAgY29uc3RydWN0b3IocmVuZGVyZXJGYWN0b3J5OiBSZW5kZXJlckZhY3RvcnkyKSB7XG4gICAgdGhpcy4jcmVuZGVyZXIgPSByZW5kZXJlckZhY3RvcnkuY3JlYXRlUmVuZGVyZXIodW5kZWZpbmVkLCBudWxsKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgdGhlIHJlc3BvbnNpdmUgY29udGFpbmVyIENTUyBjbGFzcyBmb3IgYSBnaXZlbiBlbGVtZW50LlxuICAgKlxuICAgKiBAcGFyYW0gZWxlbWVudFJlZiAtIFRoZSBlbGVtZW50IHRoYXQgd2lsbCByZWNlaXZlIHRoZSBuZXcgQ1NTIGNsYXNzLlxuICAgKiBAcGFyYW0gYnJlYWtwb2ludCAtIFRoZSBTa3lNZWRpYUJyZWFrcG9pbnQgd2lsbCBkZXRlcm1pbmUgd2hpY2ggY2xhc3NcbiAgICogZ2V0cyBzZXQuIEZvciBleGFtcGxlIGEgU2t5TWVkaWFCcmVha3BvaW50IG9mIGB4c2Agd2lsbCBzZXQgYSBDU1MgY2xhc3Mgb2YgYHNreS1yZXNwb25zaXZlLWNvbnRhaW5lci14c2AuXG4gICAqL1xuICBwdWJsaWMgc2V0UmVzcG9uc2l2ZUNvbnRhaW5lckNsYXNzKFxuICAgIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgYnJlYWtwb2ludDogU2t5TWVkaWFCcmVha3BvaW50c1xuICApOiB2b2lkIHtcbiAgICBjb25zdCBuYXRpdmVFbCA9IGVsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcblxuICAgIHRoaXMuI3JlbmRlcmVyLnJlbW92ZUNsYXNzKG5hdGl2ZUVsLCAnc2t5LXJlc3BvbnNpdmUtY29udGFpbmVyLXhzJyk7XG4gICAgdGhpcy4jcmVuZGVyZXIucmVtb3ZlQ2xhc3MobmF0aXZlRWwsICdza3ktcmVzcG9uc2l2ZS1jb250YWluZXItc20nKTtcbiAgICB0aGlzLiNyZW5kZXJlci5yZW1vdmVDbGFzcyhuYXRpdmVFbCwgJ3NreS1yZXNwb25zaXZlLWNvbnRhaW5lci1tZCcpO1xuICAgIHRoaXMuI3JlbmRlcmVyLnJlbW92ZUNsYXNzKG5hdGl2ZUVsLCAnc2t5LXJlc3BvbnNpdmUtY29udGFpbmVyLWxnJyk7XG5cbiAgICBsZXQgbmV3Q2xhc3M6IHN0cmluZztcblxuICAgIHN3aXRjaCAoYnJlYWtwb2ludCkge1xuICAgICAgY2FzZSBTa3lNZWRpYUJyZWFrcG9pbnRzLnhzOiB7XG4gICAgICAgIG5ld0NsYXNzID0gJ3NreS1yZXNwb25zaXZlLWNvbnRhaW5lci14cyc7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSBTa3lNZWRpYUJyZWFrcG9pbnRzLnNtOiB7XG4gICAgICAgIG5ld0NsYXNzID0gJ3NreS1yZXNwb25zaXZlLWNvbnRhaW5lci1zbSc7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSBTa3lNZWRpYUJyZWFrcG9pbnRzLm1kOiB7XG4gICAgICAgIG5ld0NsYXNzID0gJ3NreS1yZXNwb25zaXZlLWNvbnRhaW5lci1tZCc7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBuZXdDbGFzcyA9ICdza3ktcmVzcG9uc2l2ZS1jb250YWluZXItbGcnO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLiNyZW5kZXJlci5hZGRDbGFzcyhuYXRpdmVFbCwgbmV3Q2xhc3MpO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoaXMgbWV0aG9kIHRlbXBvcmFyaWx5IGVuYWJsZXMvZGlzYWJsZXMgcG9pbnRlciBldmVudHMuXG4gICAqIFRoaXMgaXMgaGVscGZ1bCB0byBwcmV2ZW50IGlGcmFtZXMgZnJvbSBpbnRlcmZlcmluZyB3aXRoIGRyYWcgZXZlbnRzLlxuICAgKlxuICAgKiBAcGFyYW0gZW5hYmxlIC0gU2V0IHRvIGB0cnVlYCB0byBlbmFibGUgcG9pbnRlciBldmVudHMuIFNldCB0byBgZmFsc2VgIHRvIGRpc2FibGUuXG4gICAqL1xuICBwdWJsaWMgdG9nZ2xlSWZyYW1lUG9pbnRlckV2ZW50cyhlbmFibGU6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICBjb25zdCBpZnJhbWVzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnaWZyYW1lJyk7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBpZnJhbWVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAvLyBTZXR0aW5nIHRvIGVtcHR5IHN0cmluZyB3aWxsIGFsbG93IGlmcmFtZSB0byBmYWxsIGJhY2sgdG8gaXRzIHByaW9yIENTUyBhc3NpZ25tZW50LlxuICAgICAgaWZyYW1lc1tpXS5zdHlsZS5wb2ludGVyRXZlbnRzID0gZW5hYmxlID8gJycgOiAnbm9uZSc7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEZvY3VzZXMgb24gdGhlIGZpcnN0IGVsZW1lbnQgZm91bmQgd2l0aCBhbiBgYXV0b2ZvY3VzYCBhdHRyaWJ1dGUgaW5zaWRlIHRoZSBzdXBwbGllZCBgZWxlbWVudFJlZmAuXG4gICAqXG4gICAqIEBwYXJhbSBlbGVtZW50UmVmIC0gVGhlIGVsZW1lbnQgdG8gc2VhcmNoIHdpdGhpbi5cbiAgICogQHJldHVybiBSZXR1cm5zIGB0cnVlYCBpZiBhIGNoaWxkIGVsZW1lbnQgd2l0aCBhdXRvZm9jdXMgaXMgZm91bmQuXG4gICAqL1xuICBwdWJsaWMgYXBwbHlBdXRvRm9jdXMoZWxlbWVudFJlZj86IEVsZW1lbnRSZWYpOiBib29sZWFuIHtcbiAgICBpZiAoIWVsZW1lbnRSZWYpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBjb25zdCBlbGVtZW50V2l0aEF1dG9Gb2N1cyA9XG4gICAgICBlbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcignW2F1dG9mb2N1c10nKTtcblxuICAgIC8vIENoaWxkIHdhcyBmb3VuZCB3aXRoIHRoZSBhdXRvZm9jdXMgcHJvcGVydHkuIFNldCBmb2N1cyBhbmQgcmV0dXJuIHRydWUuXG4gICAgaWYgKGVsZW1lbnRXaXRoQXV0b0ZvY3VzKSB7XG4gICAgICBlbGVtZW50V2l0aEF1dG9Gb2N1cy5mb2N1cygpO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgLy8gTm8gY2hpbGRyZW4gd2VyZSBmb3VuZCB3aXRoIGF1dG9mb2N1cyBwcm9wZXJ0eS4gUmV0dXJuIGZhbHNlLlxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIGZvY3VzIG9uIHRoZSBmaXJzdCBmb2N1c2FibGUgY2hpbGQgb2YgdGhlIGBlbGVtZW50UmVmYCBwYXJhbWV0ZXIuXG4gICAqIElmIG5vIGZvY3VzYWJsZSBjaGlsZHJlbiBhcmUgZm91bmQsIGFuZCBgZm9jdXNPbkNvbnRhaW5lcklmTm9DaGlsZHJlbkZvdW5kYCBpcyBgdHJ1ZWAsXG4gICAqIGZvY3VzIHdpbGwgYmUgc2V0IG9uIHRoZSBjb250YWluZXIgZWxlbWVudC5cbiAgICpcbiAgICogQHBhcmFtIGVsZW1lbnRSZWYgLSBUaGUgZWxlbWVudCB0byBzZWFyY2ggd2l0aGluLlxuICAgKiBAcGFyYW0gY29udGFpbmVyU2VsZWN0b3IgLSBBIENTUyBzZWxlY3RvciBpbmRpY2F0aW5nIHRoZSBjb250YWluZXIgdGhhdCBzaG91bGRcbiAgICogcmVjZWl2ZSBmb2N1cyBpZiBubyBmb2N1c2FibGUgY2hpbGRyZW4gYXJlIGZvdW5kLlxuICAgKiBAcGFyYW0gZm9jdXNPbkNvbnRhaW5lcklmTm9DaGlsZHJlbkZvdW5kIC0gSXQgc2V0IHRvIGB0cnVlYCwgdGhlIGNvbnRhaW5lciB3aWxsXG4gICAqIHJlY2VpdmUgZm9jdXMgaWYgbm8gZm9jdXNhYmxlIGNoaWxkcmVuIGFyZSBmb3VuZC5cbiAgICovXG4gIHB1YmxpYyBnZXRGb2N1c2FibGVDaGlsZHJlbkFuZEFwcGx5Rm9jdXMoXG4gICAgZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICBjb250YWluZXJTZWxlY3Rvcj86IHN0cmluZyxcbiAgICBmb2N1c09uQ29udGFpbmVySWZOb0NoaWxkcmVuRm91bmQgPSBmYWxzZVxuICApOiB2b2lkIHtcbiAgICBjb25zdCBjb250YWluZXJFbGVtZW50ID1cbiAgICAgIGVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKGNvbnRhaW5lclNlbGVjdG9yKTtcblxuICAgIGlmIChjb250YWluZXJFbGVtZW50KSB7XG4gICAgICBjb25zdCBmb2N1c2FibGVDaGlsZHJlbiA9IHRoaXMuZ2V0Rm9jdXNhYmxlQ2hpbGRyZW4oY29udGFpbmVyRWxlbWVudCk7XG5cbiAgICAgIC8vIEZvY3VzIGZpcnN0IGZvY3VzYWJsZSBjaGlsZCBpZiBhdmFpbGFibGUuIE90aGVyd2lzZSwgc2V0IGZvY3VzIG9uIGNvbnRhaW5lci5cbiAgICAgIGlmIChcbiAgICAgICAgIXRoaXMuI2ZvY3VzRmlyc3RFbGVtZW50KGZvY3VzYWJsZUNoaWxkcmVuKSAmJlxuICAgICAgICBmb2N1c09uQ29udGFpbmVySWZOb0NoaWxkcmVuRm91bmRcbiAgICAgICkge1xuICAgICAgICBjb250YWluZXJFbGVtZW50LmZvY3VzKCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYW4gYXJyYXkgb2YgYWxsIGZvY3VzYWJsZSBjaGlsZHJlbiBvZiBwcm92aWRlZCBgZWxlbWVudGAuXG4gICAqXG4gICAqIEBwYXJhbSBlbGVtZW50IC0gVGhlIEhUTUxFbGVtZW50IHRvIHNlYXJjaCB3aXRoaW4uXG4gICAqIEBwYXJhbSBvcHRpb25zIC0gT3B0aW9ucyBmb3IgZ2V0dGluZyBmb2N1c2FibGUgY2hpbGRyZW4uXG4gICAqL1xuICBwdWJsaWMgZ2V0Rm9jdXNhYmxlQ2hpbGRyZW4oXG4gICAgZWxlbWVudD86IEhUTUxFbGVtZW50LFxuICAgIG9wdGlvbnM/OiBTa3lGb2N1c2FibGVDaGlsZHJlbk9wdGlvbnNcbiAgKTogSFRNTEVsZW1lbnRbXSB7XG4gICAgaWYgKCFlbGVtZW50KSB7XG4gICAgICByZXR1cm4gW107XG4gICAgfVxuXG4gICAgbGV0IGVsZW1lbnRzID0gQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoXG4gICAgICBlbGVtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoU0tZX1RBQkJBQkxFX1NFTEVDVE9SKVxuICAgICk7XG5cbiAgICAvLyBVbmxlc3MgaWdub3JlVGFiSW5kZXggPSB0cnVlLCBmaWx0ZXIgb3V0IGVsZW1lbnRzIHdpdGggdGFiaW5kZXggPSAtMS5cbiAgICBpZiAoIW9wdGlvbnMgfHwgIW9wdGlvbnMuaWdub3JlVGFiSW5kZXgpIHtcbiAgICAgIGVsZW1lbnRzID0gZWxlbWVudHMuZmlsdGVyKChlbDogSFRNTEVsZW1lbnQpID0+IHtcbiAgICAgICAgcmV0dXJuIGVsLnRhYkluZGV4ICE9PSAtMTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIC8vIFVubGVzcyBpZ25vcmVWaXNpYmlsaXR5ID0gdHJ1ZSwgZmlsdGVyIG91dCBlbGVtZW50cyB0aGF0IGFyZSBub3QgdmlzaWJsZS5cbiAgICBpZiAoIW9wdGlvbnMgfHwgIW9wdGlvbnMuaWdub3JlVmlzaWJpbGl0eSkge1xuICAgICAgZWxlbWVudHMgPSBlbGVtZW50cy5maWx0ZXIoKGVsOiBIVE1MRWxlbWVudCkgPT4ge1xuICAgICAgICByZXR1cm4gdGhpcy4jaXNWaXNpYmxlKGVsKTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHJldHVybiBlbGVtZW50cztcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBjbGllbnRXaWR0aCBvZiB0aGUgcHJvdmlkZWQgZWxlbWVudFJlZi5cbiAgICogQHBhcmFtIGVsZW1lbnRSZWYgLSBUaGUgZWxlbWVudCB0byBjYWxjdWxhdGUgd2lkdGggZnJvbS5cbiAgICovXG4gIHB1YmxpYyBnZXRXaWR0aChlbGVtZW50UmVmOiBFbGVtZW50UmVmKTogbnVtYmVyIHtcbiAgICByZXR1cm4gZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmNsaWVudFdpZHRoO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrcyBpZiBhbiBldmVudCB0YXJnZXQgaGFzIGEgaGlnaGVyIHotaW5kZXggdGhhbiBhIGdpdmVuIGVsZW1lbnQuXG4gICAqIEBwYXJhbSB0YXJnZXQgVGhlIGV2ZW50IHRhcmdldCBlbGVtZW50LlxuICAgKiBAcGFyYW0gZWxlbWVudCBUaGUgZWxlbWVudCB0byB0ZXN0IGFnYWluc3QuIEEgei1pbmRleCBtdXN0IGJlIGV4cGxpY2l0bHkgc2V0IGZvciB0aGlzIGVsZW1lbnQuXG4gICAqL1xuICBwdWJsaWMgaXNUYXJnZXRBYm92ZUVsZW1lbnQoXG4gICAgdGFyZ2V0OiBFdmVudFRhcmdldCxcbiAgICBlbGVtZW50OiBIVE1MRWxlbWVudFxuICApOiBib29sZWFuIHtcbiAgICBjb25zdCB6SW5kZXggPSBnZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQpLnpJbmRleDtcblxuICAgIGxldCBlbCA9IHRhcmdldCBhcyBIVE1MRWxlbWVudDtcblxuICAgIHdoaWxlIChlbCkge1xuICAgICAgLy8gR2V0dGluZyB0aGUgY29tcHV0ZWQgc3R5bGUgb25seSB3b3JrcyBmb3IgZWxlbWVudHMgdGhhdCBleGlzdCBpbiB0aGUgRE9NLlxuICAgICAgLy8gSW4gY2VydGFpbiBzY2VuYXJpb3MsIGFuIGVsZW1lbnQgaXMgcmVtb3ZlZCBhZnRlciBhIGNsaWNrIGV2ZW50OyBieSB0aGUgdGltZSB0aGUgZXZlbnRcbiAgICAgIC8vIGJ1YmJsZXMgdXAgdG8gb3RoZXIgZWxlbWVudHMsIGhvd2V2ZXIsIHRoZSBlbGVtZW50IGhhcyBiZWVuIHJlbW92ZWQgYW5kIHRoZSBjb21wdXRlZCBzdHlsZSByZXR1cm5zIGVtcHR5LlxuICAgICAgLy8gSW4gdGhpcyBjYXNlLCB3ZSdsbCBuZWVkIHRvIGNoZWNrIHRoZSB6LWluZGV4IGRpcmVjdGx5LCB2aWEgdGhlIHN0eWxlIHByb3BlcnR5LlxuICAgICAgY29uc3QgdGFyZ2V0WkluZGV4ID0gZ2V0Q29tcHV0ZWRTdHlsZShlbCkuekluZGV4IHx8IGVsLnN0eWxlLnpJbmRleDtcbiAgICAgIGlmIChcbiAgICAgICAgdGFyZ2V0WkluZGV4ICE9PSAnJyAmJlxuICAgICAgICB0YXJnZXRaSW5kZXggIT09ICdhdXRvJyAmJlxuICAgICAgICArdGFyZ2V0WkluZGV4ID4gK3pJbmRleFxuICAgICAgKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuXG4gICAgICBlbCA9IGVsLnBhcmVudEVsZW1lbnQgYXMgSFRNTEVsZW1lbnQ7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlbW92ZSBpbmxpbmUgaGVpZ2h0IHN0eWxlcyBmcm9tIHRoZSBwcm92aWRlZCBlbGVtZW50cy5cbiAgICogQHBhcmFtIGVsZW1lbnRSZWYgLSBUaGUgZWxlbWVudCB0byBzZWFyY2ggd2l0aGluLlxuICAgKiBAcGFyYW0gc2VsZWN0b3IgLSBUaGUgQ1NTIHNlbGVjdG9yIHRvIHVzZSB3aGVuIGZpbmRpbmcgZWxlbWVudHMgZm9yIHJlbW92aW5nIGhlaWdodC5cbiAgICovXG4gIHB1YmxpYyByZXNldEhlaWdodChlbGVtZW50UmVmOiBFbGVtZW50UmVmLCBzZWxlY3Rvcjogc3RyaW5nKTogdm9pZCB7XG4gICAgY29uc3QgY2hpbGRyZW4gPSBlbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvckFsbChzZWxlY3Rvcik7XG4gICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICBpZiAoY2hpbGRyZW4ubGVuZ3RoID4gMCkge1xuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjaGlsZHJlbi5sZW5ndGg7IGkrKykge1xuICAgICAgICAvLyBTZXR0aW5nIHN0eWxlIGF0dHJpYnV0ZXMgd2l0aCBXZWIgQVBJIHJlcXVpcmVzIG51bGwgaW5zdGVhZCBvZiB1bmRlZmluZWQuXG4gICAgICAgIGNoaWxkcmVuW2ldLnN0eWxlLmhlaWdodCA9IG51bGw7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgYWxsIGVsZW1lbnQgaGVpZ2h0cyB0byBtYXRjaCB0aGUgaGVpZ2h0IG9mIHRoZSB0YWxsZXN0IGVsZW1lbnQuXG4gICAqIEBwYXJhbSBlbGVtZW50UmVmIC0gVGhlIGVsZW1lbnQgdG8gc2VhcmNoIHdpdGhpbi5cbiAgICogQHBhcmFtIHNlbGVjdG9yIC0gVGhlIENTUyBzZWxlY3RvciB0byB1c2Ugd2hlbiBmaW5kaW5nIGVsZW1lbnRzIGZvciBzeW5jaW5nIGhlaWdodC5cbiAgICovXG4gIHB1YmxpYyBzeW5jTWF4SGVpZ2h0KGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsIHNlbGVjdG9yOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBjb25zdCBjaGlsZHJlbiA9IGVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yQWxsKHNlbGVjdG9yKTtcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgIGlmIChjaGlsZHJlbi5sZW5ndGggPiAwKSB7XG4gICAgICBsZXQgbWF4SGVpZ2h0ID0gMDtcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgY2hpbGRyZW4ubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgbWF4SGVpZ2h0ID0gTWF0aC5tYXgobWF4SGVpZ2h0LCBjaGlsZHJlbltpXS5vZmZzZXRIZWlnaHQpO1xuICAgICAgfVxuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjaGlsZHJlbi5sZW5ndGg7IGkrKykge1xuICAgICAgICBjaGlsZHJlbltpXS5zdHlsZS5oZWlnaHQgPSBtYXhIZWlnaHQgKyAncHgnO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICNmb2N1c0ZpcnN0RWxlbWVudChsaXN0OiBBcnJheTxIVE1MRWxlbWVudD4pOiBib29sZWFuIHtcbiAgICBpZiAobGlzdC5sZW5ndGggPiAwKSB7XG4gICAgICBsaXN0WzBdLmZvY3VzKCk7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgI2lzVmlzaWJsZShlbGVtZW50OiBIVE1MRWxlbWVudCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IHN0eWxlID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUoZWxlbWVudCk7XG4gICAgY29uc3QgaXNIaWRkZW4gPSBzdHlsZS5kaXNwbGF5ID09PSAnbm9uZScgfHwgc3R5bGUudmlzaWJpbGl0eSA9PT0gJ2hpZGRlbic7XG4gICAgaWYgKGlzSGlkZGVuKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgY29uc3QgaGFzQm91bmRzID0gISEoXG4gICAgICBlbGVtZW50Lm9mZnNldFdpZHRoIHx8XG4gICAgICBlbGVtZW50Lm9mZnNldEhlaWdodCB8fFxuICAgICAgZWxlbWVudC5nZXRDbGllbnRSZWN0cygpLmxlbmd0aFxuICAgICk7XG4gICAgcmV0dXJuIGhhc0JvdW5kcztcbiAgfVxufVxuIl19
@@ -1,118 +0,0 @@
1
- var _SkyAffixDirective_instances, _SkyAffixDirective_affixer, _SkyAffixDirective_affixService, _SkyAffixDirective_elementRef, _SkyAffixDirective_ngUnsubscribe, _SkyAffixDirective_updateAlignment;
2
- import { __classPrivateFieldGet, __classPrivateFieldSet } from "tslib";
3
- import { Directive, EventEmitter, Input, Output, } from '@angular/core';
4
- import { Subject } from 'rxjs';
5
- import { takeUntil } from 'rxjs/operators';
6
- import * as i0 from "@angular/core";
7
- import * as i1 from "./affix.service";
8
- /**
9
- * Affixes the host element to a base element.
10
- */
11
- export class SkyAffixDirective {
12
- constructor(elementRef, affixService) {
13
- _SkyAffixDirective_instances.add(this);
14
- /**
15
- * Fires when the affixed element's offset changes.
16
- */
17
- this.affixOffsetChange = new EventEmitter();
18
- /**
19
- * Fires when the affixed element's overflow container is scrolled.
20
- */
21
- this.affixOverflowScroll = new EventEmitter();
22
- /**
23
- * Fires when the placement value changes.
24
- */
25
- this.affixPlacementChange = new EventEmitter();
26
- _SkyAffixDirective_affixer.set(this, void 0);
27
- _SkyAffixDirective_affixService.set(this, void 0);
28
- _SkyAffixDirective_elementRef.set(this, void 0);
29
- _SkyAffixDirective_ngUnsubscribe.set(this, new Subject());
30
- __classPrivateFieldSet(this, _SkyAffixDirective_elementRef, elementRef, "f");
31
- __classPrivateFieldSet(this, _SkyAffixDirective_affixService, affixService, "f");
32
- }
33
- ngOnInit() {
34
- __classPrivateFieldSet(this, _SkyAffixDirective_affixer, __classPrivateFieldGet(this, _SkyAffixDirective_affixService, "f").createAffixer(__classPrivateFieldGet(this, _SkyAffixDirective_elementRef, "f")), "f");
35
- __classPrivateFieldGet(this, _SkyAffixDirective_affixer, "f").offsetChange
36
- .pipe(takeUntil(__classPrivateFieldGet(this, _SkyAffixDirective_ngUnsubscribe, "f")))
37
- .subscribe((change) => this.affixOffsetChange.emit(change));
38
- __classPrivateFieldGet(this, _SkyAffixDirective_affixer, "f").overflowScroll
39
- .pipe(takeUntil(__classPrivateFieldGet(this, _SkyAffixDirective_ngUnsubscribe, "f")))
40
- .subscribe((change) => this.affixOverflowScroll.emit(change));
41
- __classPrivateFieldGet(this, _SkyAffixDirective_affixer, "f").placementChange
42
- .pipe(takeUntil(__classPrivateFieldGet(this, _SkyAffixDirective_ngUnsubscribe, "f")))
43
- .subscribe((change) => this.affixPlacementChange.emit(change));
44
- __classPrivateFieldGet(this, _SkyAffixDirective_instances, "m", _SkyAffixDirective_updateAlignment).call(this);
45
- }
46
- ngOnChanges(changes) {
47
- /* istanbul ignore else */
48
- if (changes['affixAutoFitContext'] ||
49
- changes['affixAutoFitOverflowOffset'] ||
50
- changes['affixEnableAutoFit'] ||
51
- changes['affixHorizontalAlignment'] ||
52
- changes['affixIsSticky'] ||
53
- changes['affixPlacement'] ||
54
- changes['affixPosition'] ||
55
- changes['affixVerticalAlignment']) {
56
- __classPrivateFieldGet(this, _SkyAffixDirective_instances, "m", _SkyAffixDirective_updateAlignment).call(this);
57
- }
58
- }
59
- ngOnDestroy() {
60
- this.affixOffsetChange.complete();
61
- this.affixOverflowScroll.complete();
62
- this.affixPlacementChange.complete();
63
- __classPrivateFieldGet(this, _SkyAffixDirective_ngUnsubscribe, "f").next();
64
- __classPrivateFieldGet(this, _SkyAffixDirective_ngUnsubscribe, "f").complete();
65
- /*istanbul ignore else*/
66
- if (__classPrivateFieldGet(this, _SkyAffixDirective_affixer, "f")) {
67
- __classPrivateFieldGet(this, _SkyAffixDirective_affixer, "f").destroy();
68
- __classPrivateFieldSet(this, _SkyAffixDirective_affixer, undefined, "f");
69
- }
70
- }
71
- }
72
- _SkyAffixDirective_affixer = new WeakMap(), _SkyAffixDirective_affixService = new WeakMap(), _SkyAffixDirective_elementRef = new WeakMap(), _SkyAffixDirective_ngUnsubscribe = new WeakMap(), _SkyAffixDirective_instances = new WeakSet(), _SkyAffixDirective_updateAlignment = function _SkyAffixDirective_updateAlignment() {
73
- if (this.skyAffixTo && __classPrivateFieldGet(this, _SkyAffixDirective_affixer, "f")) {
74
- __classPrivateFieldGet(this, _SkyAffixDirective_affixer, "f").affixTo(this.skyAffixTo, {
75
- autoFitContext: this.affixAutoFitContext,
76
- autoFitOverflowOffset: this.affixAutoFitOverflowOffset,
77
- enableAutoFit: this.affixEnableAutoFit,
78
- horizontalAlignment: this.affixHorizontalAlignment,
79
- isSticky: this.affixIsSticky,
80
- placement: this.affixPlacement,
81
- position: this.affixPosition,
82
- verticalAlignment: this.affixVerticalAlignment,
83
- });
84
- }
85
- };
86
- SkyAffixDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyAffixDirective, deps: [{ token: i0.ElementRef }, { token: i1.SkyAffixService }], target: i0.ɵɵFactoryTarget.Directive });
87
- SkyAffixDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.9", type: SkyAffixDirective, selector: "[skyAffixTo]", inputs: { skyAffixTo: "skyAffixTo", affixAutoFitContext: "affixAutoFitContext", affixAutoFitOverflowOffset: "affixAutoFitOverflowOffset", affixEnableAutoFit: "affixEnableAutoFit", affixHorizontalAlignment: "affixHorizontalAlignment", affixIsSticky: "affixIsSticky", affixPlacement: "affixPlacement", affixPosition: "affixPosition", affixVerticalAlignment: "affixVerticalAlignment" }, outputs: { affixOffsetChange: "affixOffsetChange", affixOverflowScroll: "affixOverflowScroll", affixPlacementChange: "affixPlacementChange" }, usesOnChanges: true, ngImport: i0 });
88
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyAffixDirective, decorators: [{
89
- type: Directive,
90
- args: [{
91
- selector: '[skyAffixTo]',
92
- }]
93
- }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.SkyAffixService }]; }, propDecorators: { skyAffixTo: [{
94
- type: Input
95
- }], affixAutoFitContext: [{
96
- type: Input
97
- }], affixAutoFitOverflowOffset: [{
98
- type: Input
99
- }], affixEnableAutoFit: [{
100
- type: Input
101
- }], affixHorizontalAlignment: [{
102
- type: Input
103
- }], affixIsSticky: [{
104
- type: Input
105
- }], affixPlacement: [{
106
- type: Input
107
- }], affixPosition: [{
108
- type: Input
109
- }], affixVerticalAlignment: [{
110
- type: Input
111
- }], affixOffsetChange: [{
112
- type: Output
113
- }], affixOverflowScroll: [{
114
- type: Output
115
- }], affixPlacementChange: [{
116
- type: Output
117
- }] } });
118
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWZmaXguZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2NvcmUvc3JjL2xpYi9tb2R1bGVzL2FmZml4L2FmZml4LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLE9BQU8sRUFDTCxTQUFTLEVBRVQsWUFBWSxFQUNaLEtBQUssRUFJTCxNQUFNLEdBRVAsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7OztBQWEzQzs7R0FFRztBQUlILE1BQU0sT0FBTyxpQkFBaUI7SUFpRjVCLFlBQVksVUFBc0IsRUFBRSxZQUE2Qjs7UUExQmpFOztXQUVHO1FBRUksc0JBQWlCLEdBQUcsSUFBSSxZQUFZLEVBQXdCLENBQUM7UUFFcEU7O1dBRUc7UUFFSSx3QkFBbUIsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBRXREOztXQUVHO1FBRUkseUJBQW9CLEdBQUcsSUFBSSxZQUFZLEVBQTJCLENBQUM7UUFFMUUsNkNBQWlDO1FBRWpDLGtEQUErQjtRQUUvQixnREFBd0I7UUFFeEIsMkNBQWlCLElBQUksT0FBTyxFQUFRLEVBQUM7UUFHbkMsdUJBQUEsSUFBSSxpQ0FBZSxVQUFVLE1BQUEsQ0FBQztRQUM5Qix1QkFBQSxJQUFJLG1DQUFpQixZQUFZLE1BQUEsQ0FBQztJQUNwQyxDQUFDO0lBRU0sUUFBUTtRQUNiLHVCQUFBLElBQUksOEJBQVksdUJBQUEsSUFBSSx1Q0FBYyxDQUFDLGFBQWEsQ0FBQyx1QkFBQSxJQUFJLHFDQUFZLENBQUMsTUFBQSxDQUFDO1FBRW5FLHVCQUFBLElBQUksa0NBQVMsQ0FBQyxZQUFZO2FBQ3ZCLElBQUksQ0FBQyxTQUFTLENBQUMsdUJBQUEsSUFBSSx3Q0FBZSxDQUFDLENBQUM7YUFDcEMs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QjtzQkFEOUIsS0FBSztnQkFPQyxhQUFhO3NCQURuQixLQUFLO2dCQU9DLGNBQWM7c0JBRHBCLEtBQUs7Z0JBT0MsYUFBYTtzQkFEbkIsS0FBSztnQkFPQyxzQkFBc0I7c0JBRDVCLEtBQUs7Z0JBT0MsaUJBQWlCO3NCQUR2QixNQUFNO2dCQU9BLG1CQUFtQjtzQkFEekIsTUFBTTtnQkFPQSxvQkFBb0I7c0JBRDFCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBEaXJlY3RpdmUsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIE91dHB1dCxcbiAgU2ltcGxlQ2hhbmdlcyxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgU2t5QWZmaXhBdXRvRml0Q29udGV4dCB9IGZyb20gJy4vYWZmaXgtYXV0by1maXQtY29udGV4dCc7XG5pbXBvcnQgeyBTa3lBZmZpeEhvcml6b250YWxBbGlnbm1lbnQgfSBmcm9tICcuL2FmZml4LWhvcml6b250YWwtYWxpZ25tZW50JztcbmltcG9ydCB7IFNreUFmZml4T2Zmc2V0IH0gZnJvbSAnLi9hZmZpeC1vZmZzZXQnO1xuaW1wb3J0IHsgU2t5QWZmaXhPZmZzZXRDaGFuZ2UgfSBmcm9tICcuL2FmZml4LW9mZnNldC1jaGFuZ2UnO1xuaW1wb3J0IHsgU2t5QWZmaXhQbGFjZW1lbnQgfSBmcm9tICcuL2FmZml4LXBsYWNlbWVudCc7XG5pbXBvcnQgeyBTa3lBZmZpeFBsYWNlbWVudENoYW5nZSB9IGZyb20gJy4vYWZmaXgtcGxhY2VtZW50LWNoYW5nZSc7XG5pbXBvcnQgeyBTa3lBZmZpeFBvc2l0aW9uIH0gZnJvbSAnLi9hZmZpeC1wb3NpdGlvbic7XG5pbXBvcnQgeyBTa3lBZmZpeFZlcnRpY2FsQWxpZ25tZW50IH0gZnJvbSAnLi9hZmZpeC12ZXJ0aWNhbC1hbGlnbm1lbnQnO1xuaW1wb3J0IHsgU2t5QWZmaXhTZXJ2aWNlIH0gZnJvbSAnLi9hZmZpeC5zZXJ2aWNlJztcbmltcG9ydCB7IFNreUFmZml4ZXIgfSBmcm9tICcuL2FmZml4ZXInO1xuXG4vKipcbiAqIEFmZml4ZXMgdGhlIGhvc3QgZWxlbWVudCB0byBhIGJhc2UgZWxlbWVudC5cbiAqL1xuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW3NreUFmZml4VG9dJyxcbn0pXG5leHBvcnQgY2xhc3MgU2t5QWZmaXhEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcywgT25EZXN0cm95IHtcbiAgLyoqXG4gICAqIFRoZSBiYXNlIGVsZW1lbnQgdG8gYWZmaXggdGhlIGhvc3QgZWxlbWVudC5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBza3lBZmZpeFRvOiBIVE1MRWxlbWVudCB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogU2V0cyB0aGUgYGF1dG9GaXRDb250ZXh0YCBwcm9wZXJ0eSBvZiBbW1NreUFmZml4Q29uZmlnXV0uXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgYWZmaXhBdXRvRml0Q29udGV4dDogU2t5QWZmaXhBdXRvRml0Q29udGV4dCB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogU2V0cyB0aGUgYGF1dG9GaXRPdmVyZmxvd09mZnNldGAgcHJvcGVydHkgb2YgW1tTa3lBZmZpeENvbmZpZ11dLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGFmZml4QXV0b0ZpdE92ZXJmbG93T2Zmc2V0OiBTa3lBZmZpeE9mZnNldCB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogU2V0cyB0aGUgYGVuYWJsZUF1dG9GaXRgIHByb3BlcnR5IG9mIFtbU2t5QWZmaXhDb25maWddXS5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBhZmZpeEVuYWJsZUF1dG9GaXQ6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIGBob3Jpem9udGFsQWxpZ25tZW50YCBwcm9wZXJ0eSBvZiBbW1NreUFmZml4Q29uZmlnXV0uXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgYWZmaXhIb3Jpem9udGFsQWxpZ25tZW50OiBTa3lBZmZpeEhvcml6b250YWxBbGlnbm1lbnQgfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIGBpc1N0aWNreWAgcHJvcGVydHkgb2YgW1tTa3lBZmZpeENvbmZpZ11dLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGFmZml4SXNTdGlja3k6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIGBwbGFjZW1lbnRgIHByb3BlcnR5IG9mIFtbU2t5QWZmaXhDb25maWddXS5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBhZmZpeFBsYWNlbWVudDogU2t5QWZmaXhQbGFjZW1lbnQgfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIGBwb3NpdGlvbmAgcHJvcGVydHkgb2YgW1tTa3lBZmZpeENvbmZpZ11dLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGFmZml4UG9zaXRpb246IFNreUFmZml4UG9zaXRpb24gfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIGB2ZXJ0aWNhbEFsaWdubWVudGAgcHJvcGVydHkgb2YgW1tTa3lBZmZpeENvbmZpZ11dLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGFmZml4VmVydGljYWxBbGlnbm1lbnQ6IFNreUFmZml4VmVydGljYWxBbGlnbm1lbnQgfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIEZpcmVzIHdoZW4gdGhlIGFmZml4ZWQgZWxlbWVudCdzIG9mZnNldCBjaGFuZ2VzLlxuICAgKi9cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBhZmZpeE9mZnNldENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8U2t5QWZmaXhPZmZzZXRDaGFuZ2U+KCk7XG5cbiAgLyoqXG4gICAqIEZpcmVzIHdoZW4gdGhlIGFmZml4ZWQgZWxlbWVudCdzIG92ZXJmbG93IGNvbnRhaW5lciBpcyBzY3JvbGxlZC5cbiAgICovXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgYWZmaXhPdmVyZmxvd1Njcm9sbCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICAvKipcbiAgICogRmlyZXMgd2hlbiB0aGUgcGxhY2VtZW50IHZhbHVlIGNoYW5nZXMuXG4gICAqL1xuICBAT3V0cHV0KClcbiAgcHVibGljIGFmZml4UGxhY2VtZW50Q2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxTa3lBZmZpeFBsYWNlbWVudENoYW5nZT4oKTtcblxuICAjYWZmaXhlcjogU2t5QWZmaXhlciB8IHVuZGVmaW5lZDtcblxuICAjYWZmaXhTZXJ2aWNlOiBTa3lBZmZpeFNlcnZpY2U7XG5cbiAgI2VsZW1lbnRSZWY6IEVsZW1lbnRSZWY7XG5cbiAgI25nVW5zdWJzY3JpYmUgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIGNvbnN0cnVjdG9yKGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsIGFmZml4U2VydmljZTogU2t5QWZmaXhTZXJ2aWNlKSB7XG4gICAgdGhpcy4jZWxlbWVudFJlZiA9IGVsZW1lbnRSZWY7XG4gICAgdGhpcy4jYWZmaXhTZXJ2aWNlID0gYWZmaXhTZXJ2aWNlO1xuICB9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuI2FmZml4ZXIgPSB0aGlzLiNhZmZpeFNlcnZpY2UuY3JlYXRlQWZmaXhlcih0aGlzLiNlbGVtZW50UmVmKTtcblxuICAgIHRoaXMuI2FmZml4ZXIub2Zmc2V0Q2hhbmdlXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy4jbmdVbnN1YnNjcmliZSkpXG4gICAgICAuc3Vic2NyaWJlKChjaGFuZ2UpID0+IHRoaXMuYWZmaXhPZmZzZXRDaGFuZ2UuZW1pdChjaGFuZ2UpKTtcblxuICAgIHRoaXMuI2FmZml4ZXIub3ZlcmZsb3dTY3JvbGxcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLiNuZ1Vuc3Vic2NyaWJlKSlcbiAgICAgIC5zdWJzY3JpYmUoKGNoYW5nZSkgPT4gdGhpcy5hZmZpeE92ZXJmbG93U2Nyb2xsLmVtaXQoY2hhbmdlKSk7XG5cbiAgICB0aGlzLiNhZmZpeGVyLnBsYWNlbWVudENoYW5nZVxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuI25nVW5zdWJzY3JpYmUpKVxuICAgICAgLnN1YnNjcmliZSgoY2hhbmdlKSA9PiB0aGlzLmFmZml4UGxhY2VtZW50Q2hhbmdlLmVtaXQoY2hhbmdlKSk7XG5cbiAgICB0aGlzLiN1cGRhdGVBbGlnbm1lbnQoKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICBpZiAoXG4gICAgICBjaGFuZ2VzWydhZmZpeEF1dG9GaXRDb250ZXh0J10gfHxcbiAgICAgIGNoYW5nZXNbJ2FmZml4QXV0b0ZpdE92ZXJmbG93T2Zmc2V0J10gfHxcbiAgICAgIGNoYW5nZXNbJ2FmZml4RW5hYmxlQXV0b0ZpdCddIHx8XG4gICAgICBjaGFuZ2VzWydhZmZpeEhvcml6b250YWxBbGlnbm1lbnQnXSB8fFxuICAgICAgY2hhbmdlc1snYWZmaXhJc1N0aWNreSddIHx8XG4gICAgICBjaGFuZ2VzWydhZmZpeFBsYWNlbWVudCddIHx8XG4gICAgICBjaGFuZ2VzWydhZmZpeFBvc2l0aW9uJ10gfHxcbiAgICAgIGNoYW5nZXNbJ2FmZml4VmVydGljYWxBbGlnbm1lbnQnXVxuICAgICkge1xuICAgICAgdGhpcy4jdXBkYXRlQWxpZ25tZW50KCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuYWZmaXhPZmZzZXRDaGFuZ2UuY29tcGxldGUoKTtcbiAgICB0aGlzLmFmZml4T3ZlcmZsb3dTY3JvbGwuY29tcGxldGUoKTtcbiAgICB0aGlzLmFmZml4UGxhY2VtZW50Q2hhbmdlLmNvbXBsZXRlKCk7XG4gICAgdGhpcy4jbmdVbnN1YnNjcmliZS5uZXh0KCk7XG4gICAgdGhpcy4jbmdVbnN1YnNjcmliZS5jb21wbGV0ZSgpO1xuXG4gICAgLyppc3RhbmJ1bCBpZ25vcmUgZWxzZSovXG4gICAgaWYgKHRoaXMuI2FmZml4ZXIpIHtcbiAgICAgIHRoaXMuI2FmZml4ZXIuZGVzdHJveSgpO1xuICAgICAgdGhpcy4jYWZmaXhlciA9IHVuZGVmaW5lZDtcbiAgICB9XG4gIH1cblxuICAjdXBkYXRlQWxpZ25tZW50KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnNreUFmZml4VG8gJiYgdGhpcy4jYWZmaXhlcikge1xuICAgICAgdGhpcy4jYWZmaXhlci5hZmZpeFRvKHRoaXMuc2t5QWZmaXhUbywge1xuICAgICAgICBhdXRvRml0Q29udGV4dDogdGhpcy5hZmZpeEF1dG9GaXRDb250ZXh0LFxuICAgICAgICBhdXRvRml0T3ZlcmZsb3dPZmZzZXQ6IHRoaXMuYWZmaXhBdXRvRml0T3ZlcmZsb3dPZmZzZXQsXG4gICAgICAgIGVuYWJsZUF1dG9GaXQ6IHRoaXMuYWZmaXhFbmFibGVBdXRvRml0LFxuICAgICAgICBob3Jpem9udGFsQWxpZ25tZW50OiB0aGlzLmFmZml4SG9yaXpvbnRhbEFsaWdubWVudCxcbiAgICAgICAgaXNTdGlja3k6IHRoaXMuYWZmaXhJc1N0aWNreSxcbiAgICAgICAgcGxhY2VtZW50OiB0aGlzLmFmZml4UGxhY2VtZW50LFxuICAgICAgICBwb3NpdGlvbjogdGhpcy5hZmZpeFBvc2l0aW9uLFxuICAgICAgICB2ZXJ0aWNhbEFsaWdubWVudDogdGhpcy5hZmZpeFZlcnRpY2FsQWxpZ25tZW50LFxuICAgICAgfSk7XG4gICAgfVxuICB9XG59XG4iXX0=
@@ -1,28 +0,0 @@
1
- var _SkyAffixService_renderer;
2
- import { __classPrivateFieldGet, __classPrivateFieldSet } from "tslib";
3
- import { Injectable, } from '@angular/core';
4
- import { SkyAffixer } from './affixer';
5
- import * as i0 from "@angular/core";
6
- export class SkyAffixService {
7
- constructor(rendererFactory) {
8
- _SkyAffixService_renderer.set(this, void 0);
9
- __classPrivateFieldSet(this, _SkyAffixService_renderer, rendererFactory.createRenderer(undefined, null), "f");
10
- }
11
- /**
12
- * Creates an instance of [[SkyAffixer]].
13
- * @param affixed The element to be affixed.
14
- */
15
- createAffixer(affixed) {
16
- return new SkyAffixer(affixed.nativeElement, __classPrivateFieldGet(this, _SkyAffixService_renderer, "f"));
17
- }
18
- }
19
- _SkyAffixService_renderer = new WeakMap();
20
- SkyAffixService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyAffixService, deps: [{ token: i0.RendererFactory2 }], target: i0.ɵɵFactoryTarget.Injectable });
21
- SkyAffixService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyAffixService, providedIn: 'root' });
22
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyAffixService, decorators: [{
23
- type: Injectable,
24
- args: [{
25
- providedIn: 'root',
26
- }]
27
- }], ctorParameters: function () { return [{ type: i0.RendererFactory2 }]; } });
28
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWZmaXguc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9jb3JlL3NyYy9saWIvbW9kdWxlcy9hZmZpeC9hZmZpeC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsT0FBTyxFQUVMLFVBQVUsR0FHWCxNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sV0FBVyxDQUFDOztBQUt2QyxNQUFNLE9BQU8sZUFBZTtJQUcxQixZQUFZLGVBQWlDO1FBRjdDLDRDQUFxQjtRQUduQix1QkFBQSxJQUFJLDZCQUFhLGVBQWUsQ0FBQyxjQUFjLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxNQUFBLENBQUM7SUFDbkUsQ0FBQztJQUVEOzs7T0FHRztJQUNJLGFBQWEsQ0FBQyxPQUFtQjtRQUN0QyxPQUFPLElBQUksVUFBVSxDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQUUsdUJBQUEsSUFBSSxpQ0FBVSxDQUFDLENBQUM7SUFDL0QsQ0FBQzs7OzRHQWJVLGVBQWU7Z0hBQWYsZUFBZSxjQUZkLE1BQU07MkZBRVAsZUFBZTtrQkFIM0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBFbGVtZW50UmVmLFxuICBJbmplY3RhYmxlLFxuICBSZW5kZXJlcjIsXG4gIFJlbmRlcmVyRmFjdG9yeTIsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBTa3lBZmZpeGVyIH0gZnJvbSAnLi9hZmZpeGVyJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIFNreUFmZml4U2VydmljZSB7XG4gICNyZW5kZXJlcjogUmVuZGVyZXIyO1xuXG4gIGNvbnN0cnVjdG9yKHJlbmRlcmVyRmFjdG9yeTogUmVuZGVyZXJGYWN0b3J5Mikge1xuICAgIHRoaXMuI3JlbmRlcmVyID0gcmVuZGVyZXJGYWN0b3J5LmNyZWF0ZVJlbmRlcmVyKHVuZGVmaW5lZCwgbnVsbCk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhbiBpbnN0YW5jZSBvZiBbW1NreUFmZml4ZXJdXS5cbiAgICogQHBhcmFtIGFmZml4ZWQgVGhlIGVsZW1lbnQgdG8gYmUgYWZmaXhlZC5cbiAgICovXG4gIHB1YmxpYyBjcmVhdGVBZmZpeGVyKGFmZml4ZWQ6IEVsZW1lbnRSZWYpOiBTa3lBZmZpeGVyIHtcbiAgICByZXR1cm4gbmV3IFNreUFmZml4ZXIoYWZmaXhlZC5uYXRpdmVFbGVtZW50LCB0aGlzLiNyZW5kZXJlcik7XG4gIH1cbn1cbiJdfQ==