@skyux/core 8.6.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.
- package/{esm2020 → esm2022}/lib/modules/adapter-service/adapter.module.mjs +5 -5
- package/esm2022/lib/modules/adapter-service/adapter.service.mjs +225 -0
- package/esm2022/lib/modules/affix/affix.directive.mjs +116 -0
- package/{esm2020 → esm2022}/lib/modules/affix/affix.module.mjs +5 -5
- package/esm2022/lib/modules/affix/affix.service.mjs +25 -0
- package/esm2022/lib/modules/affix/affixer.mjs +398 -0
- package/esm2022/lib/modules/default-input-provider/default-input-provider.mjs +26 -0
- package/esm2022/lib/modules/dock/dock-dom-adapter.service.mjs +81 -0
- package/esm2022/lib/modules/dock/dock-item.mjs +31 -0
- package/esm2022/lib/modules/dock/dock.component.mjs +108 -0
- package/{esm2020 → esm2022}/lib/modules/dock/dock.module.mjs +5 -5
- package/esm2022/lib/modules/dock/dock.service.mjs +96 -0
- package/{esm2020 → esm2022}/lib/modules/dynamic-component/dynamic-component.module.mjs +5 -5
- package/esm2022/lib/modules/dynamic-component/dynamic-component.service.mjs +106 -0
- package/{esm2020 → esm2022}/lib/modules/format/app-format.mjs +4 -4
- package/esm2022/lib/modules/id/id.directive.mjs +31 -0
- package/{esm2020 → esm2022}/lib/modules/id/id.module.mjs +5 -5
- package/{esm2020 → esm2022}/lib/modules/id/id.service.mjs +4 -4
- package/esm2022/lib/modules/layout-host/layout-host.service.mjs +22 -0
- package/esm2022/lib/modules/live-announcer/live-announcer.service.mjs +79 -0
- package/{esm2020 → esm2022}/lib/modules/log/log.module.mjs +5 -5
- package/esm2022/lib/modules/log/log.service.mjs +148 -0
- package/{esm2020 → esm2022}/lib/modules/media-query/media-query.module.mjs +5 -5
- package/esm2022/lib/modules/media-query/media-query.service.mjs +123 -0
- package/{esm2020 → esm2022}/lib/modules/mutation/mutation-observer-service.mjs +4 -4
- package/{esm2020 → esm2022}/lib/modules/numeric/numeric.module.mjs +5 -5
- package/esm2022/lib/modules/numeric/numeric.pipe.mjs +81 -0
- package/esm2022/lib/modules/numeric/numeric.service.mjs +205 -0
- package/esm2022/lib/modules/overlay/overlay-adapter.service.mjs +44 -0
- package/esm2022/lib/modules/overlay/overlay-instance.mjs +62 -0
- package/esm2022/lib/modules/overlay/overlay.component.mjs +193 -0
- package/{esm2020 → esm2022}/lib/modules/overlay/overlay.module.mjs +5 -5
- package/esm2022/lib/modules/overlay/overlay.service.mjs +124 -0
- package/{esm2020 → esm2022}/lib/modules/percent-pipe/percent-pipe.module.mjs +5 -5
- package/esm2022/lib/modules/percent-pipe/percent.pipe.mjs +56 -0
- package/esm2022/lib/modules/resize-observer/resize-observer-media-query.service.mjs +120 -0
- package/esm2022/lib/modules/resize-observer/resize-observer.service.mjs +77 -0
- package/esm2022/lib/modules/scrollable-host/scrollable-host.service.mjs +223 -0
- package/esm2022/lib/modules/shared/number-format/number-format-utility.mjs +72 -0
- package/esm2022/lib/modules/shared/sky-core-resources.module.mjs +50 -0
- package/esm2022/lib/modules/title/title.service.mjs +31 -0
- package/esm2022/lib/modules/trim/trim.directive.mjs +64 -0
- package/{esm2020 → esm2022}/lib/modules/trim/trim.module.mjs +5 -5
- package/{esm2020 → esm2022}/lib/modules/ui-config/ui-config.service.mjs +4 -4
- package/{esm2020 → esm2022}/lib/modules/viewkeeper/viewkeeper-host-options.mjs +4 -4
- package/esm2022/lib/modules/viewkeeper/viewkeeper.directive.mjs +131 -0
- package/esm2022/lib/modules/viewkeeper/viewkeeper.mjs +283 -0
- package/{esm2020 → esm2022}/lib/modules/viewkeeper/viewkeeper.module.mjs +5 -5
- package/esm2022/lib/modules/viewkeeper/viewkeeper.service.mjs +39 -0
- package/{esm2020 → esm2022}/lib/modules/window/window-ref.mjs +4 -4
- package/esm2022/testing/core-testing.module.mjs +32 -0
- package/esm2022/testing/mock-media-query.service.mjs +46 -0
- package/{esm2020 → esm2022}/testing/mock-ui-config.service.mjs +4 -4
- package/esm2022/testing/overlay/overlay-harness.mjs +43 -0
- package/esm2022/testing/shared/component-harness.mjs +13 -0
- package/{fesm2020 → fesm2022}/skyux-core-testing.mjs +28 -34
- package/{fesm2020 → fesm2022}/skyux-core-testing.mjs.map +1 -1
- package/fesm2022/skyux-core.mjs +3858 -0
- package/fesm2022/skyux-core.mjs.map +1 -0
- package/lib/modules/affix/affix.directive.d.ts +1 -1
- package/lib/modules/viewkeeper/viewkeeper.directive.d.ts +1 -1
- package/package.json +14 -22
- package/esm2020/lib/modules/adapter-service/adapter.service.mjs +0 -227
- package/esm2020/lib/modules/affix/affix.directive.mjs +0 -118
- package/esm2020/lib/modules/affix/affix.service.mjs +0 -28
- package/esm2020/lib/modules/affix/affixer.mjs +0 -377
- package/esm2020/lib/modules/default-input-provider/default-input-provider.mjs +0 -31
- package/esm2020/lib/modules/dock/dock-dom-adapter.service.mjs +0 -83
- package/esm2020/lib/modules/dock/dock-item.mjs +0 -34
- package/esm2020/lib/modules/dock/dock.component.mjs +0 -110
- package/esm2020/lib/modules/dock/dock.service.mjs +0 -98
- package/esm2020/lib/modules/dynamic-component/dynamic-component.service.mjs +0 -109
- package/esm2020/lib/modules/id/id.directive.mjs +0 -34
- package/esm2020/lib/modules/layout-host/layout-host.service.mjs +0 -27
- package/esm2020/lib/modules/live-announcer/live-announcer.service.mjs +0 -80
- package/esm2020/lib/modules/log/log.service.mjs +0 -147
- package/esm2020/lib/modules/media-query/media-query.service.mjs +0 -124
- package/esm2020/lib/modules/numeric/numeric.pipe.mjs +0 -84
- package/esm2020/lib/modules/numeric/numeric.service.mjs +0 -179
- package/esm2020/lib/modules/overlay/overlay-adapter.service.mjs +0 -47
- package/esm2020/lib/modules/overlay/overlay-instance.mjs +0 -65
- package/esm2020/lib/modules/overlay/overlay.component.mjs +0 -192
- package/esm2020/lib/modules/overlay/overlay.service.mjs +0 -125
- package/esm2020/lib/modules/percent-pipe/percent.pipe.mjs +0 -59
- package/esm2020/lib/modules/resize-observer/resize-observer-media-query.service.mjs +0 -121
- package/esm2020/lib/modules/resize-observer/resize-observer.service.mjs +0 -79
- package/esm2020/lib/modules/scrollable-host/scrollable-host.service.mjs +0 -218
- package/esm2020/lib/modules/shared/number-format/number-format-utility.mjs +0 -72
- package/esm2020/lib/modules/shared/sky-core-resources.module.mjs +0 -50
- package/esm2020/lib/modules/title/title.service.mjs +0 -34
- package/esm2020/lib/modules/trim/trim.directive.mjs +0 -65
- package/esm2020/lib/modules/viewkeeper/viewkeeper.directive.mjs +0 -131
- package/esm2020/lib/modules/viewkeeper/viewkeeper.mjs +0 -276
- package/esm2020/lib/modules/viewkeeper/viewkeeper.service.mjs +0 -42
- package/esm2020/testing/core-testing.module.mjs +0 -32
- package/esm2020/testing/mock-media-query.service.mjs +0 -46
- package/esm2020/testing/overlay/overlay-harness.mjs +0 -43
- package/esm2020/testing/shared/component-harness.mjs +0 -19
- package/fesm2015/skyux-core-testing.mjs +0 -209
- package/fesm2015/skyux-core-testing.mjs.map +0 -1
- package/fesm2015/skyux-core.mjs +0 -3835
- package/fesm2015/skyux-core.mjs.map +0 -1
- package/fesm2020/skyux-core.mjs +0 -3825
- package/fesm2020/skyux-core.mjs.map +0 -1
- /package/{esm2020 → esm2022}/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/adapter-service/focusable-children-options.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/affix/affix-auto-fit-context.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/affix/affix-config.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/affix/affix-horizontal-alignment.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/affix/affix-offset-change.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/affix/affix-offset.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/affix/affix-placement-change.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/affix/affix-placement.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/affix/affix-position.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/affix/affix-rect.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/affix/affix-utils.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/affix/affix-vertical-alignment.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/affix/dom-utils.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/dock/dock-insert-component-config.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/dock/dock-item-config.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/dock/dock-item-reference.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/dock/dock-location.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/dock/dock-options.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/dock/sort-by-stack-order.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/dynamic-component/dynamic-component-location.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/dynamic-component/dynamic-component-options.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/layout-host/layout-host-for-child-args.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/live-announcer/types/live-announcer-args.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/live-announcer/types/live-announcer-politeness.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/log/types/log-deprecation-args.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/log/types/log-level-token.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/log/types/log-level.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/media-query/media-breakpoints.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/media-query/media-query-listener.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/numeric/numeric-symbol.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/numeric/numeric.options.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/overlay/overlay-config.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/overlay/overlay-context.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/overlay/overlay-position.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/stacking-context/stacking-context-token.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/stacking-context/stacking-context.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/title/set-title-args.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/viewkeeper/viewkeeper-boundary-info.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/viewkeeper/viewkeeper-fixed-styles.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/viewkeeper/viewkeeper-offset.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/viewkeeper/viewkeeper-options.mjs +0 -0
- /package/{esm2020 → esm2022}/skyux-core.mjs +0 -0
- /package/{esm2020 → esm2022}/testing/overlay/overlay-harness-filters.mjs +0 -0
- /package/{esm2020 → esm2022}/testing/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/testing/shared/harness-filters.mjs +0 -0
- /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": "
|
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
|
-
"
|
25
|
-
"
|
26
|
-
"
|
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
|
-
"
|
33
|
-
"
|
34
|
-
"
|
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": "^
|
44
|
-
"@angular/common": "^
|
45
|
-
"@angular/core": "^
|
46
|
-
"@angular/platform-browser": "^
|
47
|
-
"@angular/router": "^
|
48
|
-
"@skyux/i18n": "
|
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": "
|
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRhcHRlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2NvcmUvc3JjL2xpYi9tb2R1bGVzL2FkYXB0ZXItc2VydmljZS9hZGFwdGVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxPQUFPLEVBRUwsVUFBVSxHQUdYLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDOztBQUl2RSxNQUFNLHFCQUFxQixHQUFHO0lBQzVCLFNBQVM7SUFDVCxZQUFZO0lBQ1osdUJBQXVCO0lBQ3ZCLHdCQUF3QjtJQUN4Qix3QkFBd0I7SUFDeEIsMEJBQTBCO0lBQzFCLFFBQVE7SUFDUixRQUFRO0lBQ1IsT0FBTztJQUNQLHlDQUF5QztJQUN6Qyw2QkFBNkI7Q0FDOUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7QUFLYixNQUFNLE9BQU8scUJBQXFCO0lBR2hDLFlBQVksZUFBaUM7O1FBRjdDLGtEQUFxQjtRQUduQix1QkFBQSxJQUFJLG1DQUFhLGVBQWUsQ0FBQyxjQUFjLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxNQUFBLENBQUM7SUFDbkUsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNJLDJCQUEyQixDQUNoQyxVQUFzQixFQUN0QixVQUErQjtRQUUvQixNQUFNLFFBQVEsR0FBRyxVQUFVLENBQUMsYUFBYSxDQUFDO1FBRTFDLHVCQUFBLElBQUksdUNBQVUsQ0FBQyxXQUFXLENBQUMsUUFBUSxFQUFFLDZCQUE2QixDQUFDLENBQUM7UUFDcEUsdUJBQUEsSUFBSSx1Q0FBVSxDQUFDLFdBQVcsQ0FBQyxRQUFRLEVBQUUsNkJBQTZCLENBQUMsQ0FBQztRQUNwRSx1QkFBQSxJQUFJLHVDQUFVLENBQUMsV0FBVyxDQUFDLFFBQVEsRUFBRSw2QkFBNkIsQ0FBQyxDQUFDO1FBQ3BFLHVCQUFB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LE1BQU0sR0FBRyxDQUFDLEVBQUU7UUFDbkIsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ2hCLE9BQU8sSUFBSSxDQUFDO0tBQ2I7SUFDRCxPQUFPLEtBQUssQ0FBQztBQUNmLENBQUMsK0VBRVUsT0FBb0I7SUFDN0IsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQy9DLE1BQU0sUUFBUSxHQUFHLEtBQUssQ0FBQyxPQUFPLEtBQUssTUFBTSxJQUFJLEtBQUssQ0FBQyxVQUFVLEtBQUssUUFBUSxDQUFDO0lBQzNFLElBQUksUUFBUSxFQUFFO1FBQ1osT0FBTyxLQUFLLENBQUM7S0FDZDtJQUVELE1BQU0sU0FBUyxHQUFHLENBQUMsQ0FBQyxDQUNsQixPQUFPLENBQUMsV0FBVztRQUNuQixPQUFPLENBQUMsWUFBWTtRQUNwQixPQUFPLENBQUMsY0FBYyxFQUFFLENBQUMsTUFBTSxDQUNoQyxDQUFDO0lBQ0YsT0FBTyxTQUFTLENBQUM7QUFDbkIsQ0FBQztrSEEzUFUscUJBQXFCO3NIQUFyQixxQkFBcUIsY0FGcEIsTUFBTTsyRkFFUCxxQkFBcUI7a0JBSGpDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgRWxlbWVudFJlZixcbiAgSW5qZWN0YWJsZSxcbiAgUmVuZGVyZXIyLFxuICBSZW5kZXJlckZhY3RvcnkyLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgU2t5TWVkaWFCcmVha3BvaW50cyB9IGZyb20gJy4uL21lZGlhLXF1ZXJ5L21lZGlhLWJyZWFrcG9pbnRzJztcblxuaW1wb3J0IHsgU2t5Rm9jdXNhYmxlQ2hpbGRyZW5PcHRpb25zIH0gZnJvbSAnLi9mb2N1c2FibGUtY2hpbGRyZW4tb3B0aW9ucyc7XG5cbmNvbnN0IFNLWV9UQUJCQUJMRV9TRUxFQ1RPUiA9IFtcbiAgJ2FbaHJlZl0nLFxuICAnYXJlYVtocmVmXScsXG4gICdpbnB1dDpub3QoW2Rpc2FibGVkXSknLFxuICAnYnV0dG9uOm5vdChbZGlzYWJsZWRdKScsXG4gICdzZWxlY3Q6bm90KFtkaXNhYmxlZF0pJyxcbiAgJ3RleHRhcmVhOm5vdChbZGlzYWJsZWRdKScsXG4gICdpZnJhbWUnLFxuICAnb2JqZWN0JyxcbiAgJ2VtYmVkJyxcbiAgJypbY29udGVudGVkaXRhYmxlPXRydWVdOm5vdChbZGlzYWJsZWRdKScsXG4gICcqW3RhYmluZGV4XTpub3QoW2Rpc2FibGVkXSknLFxuXS5qb2luKCcsICcpO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgU2t5Q29yZUFkYXB0ZXJTZXJ2aWNlIHtcbiAgI3JlbmRlcmVyOiBSZW5kZXJlcjI7XG5cbiAgY29uc3RydWN0b3IocmVuZGVyZXJGYWN0b3J5OiBSZW5kZXJlckZhY3RvcnkyKSB7XG4gICAgdGhpcy4jcmVuZGVyZXIgPSByZW5kZXJlckZhY3RvcnkuY3JlYXRlUmVuZGVyZXIodW5kZWZpbmVkLCBudWxsKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgdGhlIHJlc3BvbnNpdmUgY29udGFpbmVyIENTUyBjbGFzcyBmb3IgYSBnaXZlbiBlbGVtZW50LlxuICAgKlxuICAgKiBAcGFyYW0gZWxlbWVudFJlZiAtIFRoZSBlbGVtZW50IHRoYXQgd2lsbCByZWNlaXZlIHRoZSBuZXcgQ1NTIGNsYXNzLlxuICAgKiBAcGFyYW0gYnJlYWtwb2ludCAtIFRoZSBTa3lNZWRpYUJyZWFrcG9pbnQgd2lsbCBkZXRlcm1pbmUgd2hpY2ggY2xhc3NcbiAgICogZ2V0cyBzZXQuIEZvciBleGFtcGxlIGEgU2t5TWVkaWFCcmVha3BvaW50IG9mIGB4c2Agd2lsbCBzZXQgYSBDU1MgY2xhc3Mgb2YgYHNreS1yZXNwb25zaXZlLWNvbnRhaW5lci14c2AuXG4gICAqL1xuICBwdWJsaWMgc2V0UmVzcG9uc2l2ZUNvbnRhaW5lckNsYXNzKFxuICAgIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgYnJlYWtwb2ludDogU2t5TWVkaWFCcmVha3BvaW50c1xuICApOiB2b2lkIHtcbiAgICBjb25zdCBuYXRpdmVFbCA9IGVsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcblxuICAgIHRoaXMuI3JlbmRlcmVyLnJlbW92ZUNsYXNzKG5hdGl2ZUVsLCAnc2t5LXJlc3BvbnNpdmUtY29udGFpbmVyLXhzJyk7XG4gICAgdGhpcy4jcmVuZGVyZXIucmVtb3ZlQ2xhc3MobmF0aXZlRWwsICdza3ktcmVzcG9uc2l2ZS1jb250YWluZXItc20nKTtcbiAgICB0aGlzLiNyZW5kZXJlci5yZW1vdmVDbGFzcyhuYXRpdmVFbCwgJ3NreS1yZXNwb25zaXZlLWNvbnRhaW5lci1tZCcpO1xuICAgIHRoaXMuI3JlbmRlcmVyLnJlbW92ZUNsYXNzKG5hdGl2ZUVsLCAnc2t5LXJlc3BvbnNpdmUtY29udGFpbmVyLWxnJyk7XG5cbiAgICBsZXQgbmV3Q2xhc3M6IHN0cmluZztcblxuICAgIHN3aXRjaCAoYnJlYWtwb2ludCkge1xuICAgICAgY2FzZSBTa3lNZWRpYUJyZWFrcG9pbnRzLnhzOiB7XG4gICAgICAgIG5ld0NsYXNzID0gJ3NreS1yZXNwb25zaXZlLWNvbnRhaW5lci14cyc7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSBTa3lNZWRpYUJyZWFrcG9pbnRzLnNtOiB7XG4gICAgICAgIG5ld0NsYXNzID0gJ3NreS1yZXNwb25zaXZlLWNvbnRhaW5lci1zbSc7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSBTa3lNZWRpYUJyZWFrcG9pbnRzLm1kOiB7XG4gICAgICAgIG5ld0NsYXNzID0gJ3NreS1yZXNwb25zaXZlLWNvbnRhaW5lci1tZCc7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBuZXdDbGFzcyA9ICdza3ktcmVzcG9uc2l2ZS1jb250YWluZXItbGcnO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLiNyZW5kZXJlci5hZGRDbGFzcyhuYXRpdmVFbCwgbmV3Q2xhc3MpO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoaXMgbWV0aG9kIHRlbXBvcmFyaWx5IGVuYWJsZXMvZGlzYWJsZXMgcG9pbnRlciBldmVudHMuXG4gICAqIFRoaXMgaXMgaGVscGZ1bCB0byBwcmV2ZW50IGlGcmFtZXMgZnJvbSBpbnRlcmZlcmluZyB3aXRoIGRyYWcgZXZlbnRzLlxuICAgKlxuICAgKiBAcGFyYW0gZW5hYmxlIC0gU2V0IHRvIGB0cnVlYCB0byBlbmFibGUgcG9pbnRlciBldmVudHMuIFNldCB0byBgZmFsc2VgIHRvIGRpc2FibGUuXG4gICAqL1xuICBwdWJsaWMgdG9nZ2xlSWZyYW1lUG9pbnRlckV2ZW50cyhlbmFibGU6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICBjb25zdCBpZnJhbWVzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnaWZyYW1lJyk7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBpZnJhbWVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAvLyBTZXR0aW5nIHRvIGVtcHR5IHN0cmluZyB3aWxsIGFsbG93IGlmcmFtZSB0byBmYWxsIGJhY2sgdG8gaXRzIHByaW9yIENTUyBhc3NpZ25tZW50LlxuICAgICAgaWZyYW1lc1tpXS5zdHlsZS5wb2ludGVyRXZlbnRzID0gZW5hYmxlID8gJycgOiAnbm9uZSc7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEZvY3VzZXMgb24gdGhlIGZpcnN0IGVsZW1lbnQgZm91bmQgd2l0aCBhbiBgYXV0b2ZvY3VzYCBhdHRyaWJ1dGUgaW5zaWRlIHRoZSBzdXBwbGllZCBgZWxlbWVudFJlZmAuXG4gICAqXG4gICAqIEBwYXJhbSBlbGVtZW50UmVmIC0gVGhlIGVsZW1lbnQgdG8gc2VhcmNoIHdpdGhpbi5cbiAgICogQHJldHVybiBSZXR1cm5zIGB0cnVlYCBpZiBhIGNoaWxkIGVsZW1lbnQgd2l0aCBhdXRvZm9jdXMgaXMgZm91bmQuXG4gICAqL1xuICBwdWJsaWMgYXBwbHlBdXRvRm9jdXMoZWxlbWVudFJlZj86IEVsZW1lbnRSZWYpOiBib29sZWFuIHtcbiAgICBpZiAoIWVsZW1lbnRSZWYpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBjb25zdCBlbGVtZW50V2l0aEF1dG9Gb2N1cyA9XG4gICAgICBlbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcignW2F1dG9mb2N1c10nKTtcblxuICAgIC8vIENoaWxkIHdhcyBmb3VuZCB3aXRoIHRoZSBhdXRvZm9jdXMgcHJvcGVydHkuIFNldCBmb2N1cyBhbmQgcmV0dXJuIHRydWUuXG4gICAgaWYgKGVsZW1lbnRXaXRoQXV0b0ZvY3VzKSB7XG4gICAgICBlbGVtZW50V2l0aEF1dG9Gb2N1cy5mb2N1cygpO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgLy8gTm8gY2hpbGRyZW4gd2VyZSBmb3VuZCB3aXRoIGF1dG9mb2N1cyBwcm9wZXJ0eS4gUmV0dXJuIGZhbHNlLlxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIGZvY3VzIG9uIHRoZSBmaXJzdCBmb2N1c2FibGUgY2hpbGQgb2YgdGhlIGBlbGVtZW50UmVmYCBwYXJhbWV0ZXIuXG4gICAqIElmIG5vIGZvY3VzYWJsZSBjaGlsZHJlbiBhcmUgZm91bmQsIGFuZCBgZm9jdXNPbkNvbnRhaW5lcklmTm9DaGlsZHJlbkZvdW5kYCBpcyBgdHJ1ZWAsXG4gICAqIGZvY3VzIHdpbGwgYmUgc2V0IG9uIHRoZSBjb250YWluZXIgZWxlbWVudC5cbiAgICpcbiAgICogQHBhcmFtIGVsZW1lbnRSZWYgLSBUaGUgZWxlbWVudCB0byBzZWFyY2ggd2l0aGluLlxuICAgKiBAcGFyYW0gY29udGFpbmVyU2VsZWN0b3IgLSBBIENTUyBzZWxlY3RvciBpbmRpY2F0aW5nIHRoZSBjb250YWluZXIgdGhhdCBzaG91bGRcbiAgICogcmVjZWl2ZSBmb2N1cyBpZiBubyBmb2N1c2FibGUgY2hpbGRyZW4gYXJlIGZvdW5kLlxuICAgKiBAcGFyYW0gZm9jdXNPbkNvbnRhaW5lcklmTm9DaGlsZHJlbkZvdW5kIC0gSXQgc2V0IHRvIGB0cnVlYCwgdGhlIGNvbnRhaW5lciB3aWxsXG4gICAqIHJlY2VpdmUgZm9jdXMgaWYgbm8gZm9jdXNhYmxlIGNoaWxkcmVuIGFyZSBmb3VuZC5cbiAgICovXG4gIHB1YmxpYyBnZXRGb2N1c2FibGVDaGlsZHJlbkFuZEFwcGx5Rm9jdXMoXG4gICAgZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICBjb250YWluZXJTZWxlY3Rvcj86IHN0cmluZyxcbiAgICBmb2N1c09uQ29udGFpbmVySWZOb0NoaWxkcmVuRm91bmQgPSBmYWxzZVxuICApOiB2b2lkIHtcbiAgICBjb25zdCBjb250YWluZXJFbGVtZW50ID1cbiAgICAgIGVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKGNvbnRhaW5lclNlbGVjdG9yKTtcblxuICAgIGlmIChjb250YWluZXJFbGVtZW50KSB7XG4gICAgICBjb25zdCBmb2N1c2FibGVDaGlsZHJlbiA9IHRoaXMuZ2V0Rm9jdXNhYmxlQ2hpbGRyZW4oY29udGFpbmVyRWxlbWVudCk7XG5cbiAgICAgIC8vIEZvY3VzIGZpcnN0IGZvY3VzYWJsZSBjaGlsZCBpZiBhdmFpbGFibGUuIE90aGVyd2lzZSwgc2V0IGZvY3VzIG9uIGNvbnRhaW5lci5cbiAgICAgIGlmIChcbiAgICAgICAgIXRoaXMuI2ZvY3VzRmlyc3RFbGVtZW50KGZvY3VzYWJsZUNoaWxkcmVuKSAmJlxuICAgICAgICBmb2N1c09uQ29udGFpbmVySWZOb0NoaWxkcmVuRm91bmRcbiAgICAgICkge1xuICAgICAgICBjb250YWluZXJFbGVtZW50LmZvY3VzKCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYW4gYXJyYXkgb2YgYWxsIGZvY3VzYWJsZSBjaGlsZHJlbiBvZiBwcm92aWRlZCBgZWxlbWVudGAuXG4gICAqXG4gICAqIEBwYXJhbSBlbGVtZW50IC0gVGhlIEhUTUxFbGVtZW50IHRvIHNlYXJjaCB3aXRoaW4uXG4gICAqIEBwYXJhbSBvcHRpb25zIC0gT3B0aW9ucyBmb3IgZ2V0dGluZyBmb2N1c2FibGUgY2hpbGRyZW4uXG4gICAqL1xuICBwdWJsaWMgZ2V0Rm9jdXNhYmxlQ2hpbGRyZW4oXG4gICAgZWxlbWVudD86IEhUTUxFbGVtZW50LFxuICAgIG9wdGlvbnM/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==
|