@skyux/core 5.9.4 → 6.0.0-beta.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/documentation.json +727 -503
- package/esm2020/index.mjs +64 -0
- package/esm2020/lib/modules/adapter-service/adapter.module.mjs +16 -0
- package/esm2020/lib/modules/adapter-service/adapter.service.mjs +225 -0
- package/esm2020/lib/modules/adapter-service/focusable-children-options.mjs +2 -0
- package/esm2020/lib/modules/affix/affix-auto-fit-context.mjs +12 -0
- package/esm2020/lib/modules/affix/affix-config.mjs +2 -0
- package/esm2020/lib/modules/affix/affix-horizontal-alignment.mjs +2 -0
- package/esm2020/lib/modules/affix/affix-offset-change.mjs +2 -0
- package/esm2020/lib/modules/affix/affix-offset.mjs +2 -0
- package/esm2020/lib/modules/affix/affix-placement-change.mjs +2 -0
- package/esm2020/lib/modules/affix/affix-placement.mjs +2 -0
- package/esm2020/lib/modules/affix/affix-utils.mjs +18 -0
- package/esm2020/lib/modules/affix/affix-vertical-alignment.mjs +2 -0
- package/esm2020/lib/modules/affix/affix.directive.mjs +100 -0
- package/esm2020/lib/modules/affix/affix.module.mjs +18 -0
- package/esm2020/lib/modules/affix/affix.service.mjs +24 -0
- package/esm2020/lib/modules/affix/affixer.mjs +346 -0
- package/esm2020/lib/modules/affix/dom-utils.mjs +77 -0
- package/esm2020/lib/modules/dock/dock-dom-adapter.service.mjs +80 -0
- package/esm2020/lib/modules/dock/dock-insert-component-config.mjs +2 -0
- package/esm2020/lib/modules/dock/dock-item-config.mjs +2 -0
- package/esm2020/lib/modules/dock/dock-item-reference.mjs +2 -0
- package/esm2020/lib/modules/dock/dock-item.mjs +29 -0
- package/esm2020/lib/modules/dock/dock-location.mjs +19 -0
- package/esm2020/lib/modules/dock/dock-options.mjs +2 -0
- package/esm2020/lib/modules/dock/dock.component.mjs +88 -0
- package/esm2020/lib/modules/dock/dock.module.mjs +19 -0
- package/esm2020/lib/modules/dock/dock.service.mjs +95 -0
- package/esm2020/lib/modules/dock/sort-by-stack-order.mjs +13 -0
- package/esm2020/lib/modules/dynamic-component/dynamic-component-location.mjs +27 -0
- package/esm2020/lib/modules/dynamic-component/dynamic-component-options.mjs +2 -0
- package/esm2020/lib/modules/dynamic-component/dynamic-component.module.mjs +17 -0
- package/esm2020/lib/modules/dynamic-component/dynamic-component.service.mjs +83 -0
- package/esm2020/lib/modules/format/app-format.mjs +18 -0
- package/esm2020/lib/modules/id/id.directive.mjs +34 -0
- package/esm2020/lib/modules/id/id.module.mjs +16 -0
- package/esm2020/lib/modules/log/log.module.mjs +16 -0
- package/esm2020/lib/modules/log/log.service.mjs +132 -0
- package/esm2020/lib/modules/log/types/log-deprecation-args.mjs +2 -0
- package/esm2020/lib/modules/log/types/log-level-token.mjs +6 -0
- package/esm2020/lib/modules/log/types/log-level.mjs +2 -0
- package/esm2020/lib/modules/media-query/media-breakpoints.mjs +20 -0
- package/esm2020/lib/modules/media-query/media-query-listener.mjs +2 -0
- package/esm2020/lib/modules/media-query/media-query.module.mjs +16 -0
- package/esm2020/lib/modules/media-query/media-query.service.mjs +121 -0
- package/esm2020/lib/modules/mutation/mutation-observer-service.mjs +16 -0
- package/esm2020/lib/modules/numeric/numeric-symbol.mjs +2 -0
- package/esm2020/lib/modules/numeric/numeric.module.mjs +20 -0
- package/esm2020/lib/modules/numeric/numeric.options.mjs +46 -0
- package/esm2020/lib/modules/numeric/numeric.pipe.mjs +80 -0
- package/esm2020/lib/modules/numeric/numeric.service.mjs +186 -0
- package/esm2020/lib/modules/overlay/overlay-adapter.service.mjs +41 -0
- package/esm2020/lib/modules/overlay/overlay-config.mjs +2 -0
- package/esm2020/lib/modules/overlay/overlay-context.mjs +10 -0
- package/esm2020/lib/modules/overlay/overlay-instance.mjs +55 -0
- package/esm2020/lib/modules/overlay/overlay.component.mjs +149 -0
- package/esm2020/lib/modules/overlay/overlay.module.mjs +17 -0
- package/esm2020/lib/modules/overlay/overlay.service.mjs +120 -0
- package/esm2020/lib/modules/percent-pipe/percent-pipe.module.mjs +20 -0
- package/esm2020/lib/modules/percent-pipe/percent.pipe.mjs +48 -0
- package/esm2020/lib/modules/resize-observer/resize-observer-media-query.service.mjs +117 -0
- package/esm2020/lib/modules/resize-observer/resize-observer.service.mjs +73 -0
- package/esm2020/lib/modules/scrollable-host/scrollable-host.service.mjs +184 -0
- package/esm2020/lib/modules/shared/number-format/number-format-utility.mjs +71 -0
- package/esm2020/lib/modules/shared/sky-core-resources.module.mjs +50 -0
- package/esm2020/lib/modules/title/set-title-args.mjs +2 -0
- package/esm2020/lib/modules/title/title.service.mjs +31 -0
- package/esm2020/lib/modules/ui-config/ui-config.service.mjs +21 -0
- package/esm2020/lib/modules/viewkeeper/viewkeeper-boundary-info.mjs +2 -0
- package/esm2020/lib/modules/viewkeeper/viewkeeper-fixed-styles.mjs +2 -0
- package/esm2020/lib/modules/viewkeeper/viewkeeper-host-options.mjs +10 -0
- package/esm2020/lib/modules/viewkeeper/viewkeeper-offset.mjs +2 -0
- package/esm2020/lib/modules/viewkeeper/viewkeeper-options.mjs +2 -0
- package/esm2020/lib/modules/viewkeeper/viewkeeper.directive.mjs +116 -0
- package/esm2020/lib/modules/viewkeeper/viewkeeper.mjs +251 -0
- package/esm2020/lib/modules/viewkeeper/viewkeeper.module.mjs +16 -0
- package/esm2020/lib/modules/viewkeeper/viewkeeper.service.mjs +39 -0
- package/esm2020/lib/modules/window/window-ref.mjs +30 -0
- package/esm2020/skyux-core.mjs +5 -0
- package/esm2020/testing/mock-media-query.service.mjs +41 -0
- package/esm2020/testing/mock-ui-config.service.mjs +59 -0
- package/esm2020/testing/public-api.mjs +3 -0
- package/esm2020/testing/skyux-core-testing.mjs +5 -0
- package/fesm2015/{skyux-core-testing.js → skyux-core-testing.mjs} +7 -7
- package/fesm2015/skyux-core-testing.mjs.map +1 -0
- package/fesm2015/skyux-core.mjs +3343 -0
- package/fesm2015/skyux-core.mjs.map +1 -0
- package/fesm2020/skyux-core-testing.mjs +103 -0
- package/fesm2020/skyux-core-testing.mjs.map +1 -0
- package/{fesm2015/skyux-core.js → fesm2020/skyux-core.mjs} +270 -178
- package/fesm2020/skyux-core.mjs.map +1 -0
- package/index.d.ts +2 -0
- package/lib/modules/log/log.service.d.ts +37 -3
- package/lib/modules/log/types/log-deprecation-args.d.ts +27 -0
- package/lib/modules/log/types/log-level-token.d.ts +6 -0
- package/lib/modules/log/types/log-level.d.ts +8 -0
- package/lib/modules/numeric/numeric.options.d.ts +6 -1
- package/lib/modules/numeric/numeric.pipe.d.ts +2 -4
- package/lib/modules/numeric/numeric.service.d.ts +2 -2
- package/lib/modules/resize-observer/resize-observer-media-query.service.d.ts +0 -1
- package/package.json +35 -11
- package/testing/package.json +5 -5
- package/bundles/skyux-core-testing.umd.js +0 -459
- package/bundles/skyux-core.umd.js +0 -3848
- package/esm2015/index.js +0 -62
- package/esm2015/index.js.map +0 -1
- package/esm2015/lib/modules/adapter-service/adapter.module.js +0 -16
- package/esm2015/lib/modules/adapter-service/adapter.module.js.map +0 -1
- package/esm2015/lib/modules/adapter-service/adapter.service.js +0 -226
- package/esm2015/lib/modules/adapter-service/adapter.service.js.map +0 -1
- package/esm2015/lib/modules/adapter-service/focusable-children-options.js +0 -2
- package/esm2015/lib/modules/adapter-service/focusable-children-options.js.map +0 -1
- package/esm2015/lib/modules/affix/affix-auto-fit-context.js +0 -12
- package/esm2015/lib/modules/affix/affix-auto-fit-context.js.map +0 -1
- package/esm2015/lib/modules/affix/affix-config.js +0 -2
- package/esm2015/lib/modules/affix/affix-config.js.map +0 -1
- package/esm2015/lib/modules/affix/affix-horizontal-alignment.js +0 -2
- package/esm2015/lib/modules/affix/affix-horizontal-alignment.js.map +0 -1
- package/esm2015/lib/modules/affix/affix-offset-change.js +0 -2
- package/esm2015/lib/modules/affix/affix-offset-change.js.map +0 -1
- package/esm2015/lib/modules/affix/affix-offset.js +0 -2
- package/esm2015/lib/modules/affix/affix-offset.js.map +0 -1
- package/esm2015/lib/modules/affix/affix-placement-change.js +0 -2
- package/esm2015/lib/modules/affix/affix-placement-change.js.map +0 -1
- package/esm2015/lib/modules/affix/affix-placement.js +0 -2
- package/esm2015/lib/modules/affix/affix-placement.js.map +0 -1
- package/esm2015/lib/modules/affix/affix-utils.js +0 -18
- package/esm2015/lib/modules/affix/affix-utils.js.map +0 -1
- package/esm2015/lib/modules/affix/affix-vertical-alignment.js +0 -2
- package/esm2015/lib/modules/affix/affix-vertical-alignment.js.map +0 -1
- package/esm2015/lib/modules/affix/affix.directive.js +0 -100
- package/esm2015/lib/modules/affix/affix.directive.js.map +0 -1
- package/esm2015/lib/modules/affix/affix.module.js +0 -18
- package/esm2015/lib/modules/affix/affix.module.js.map +0 -1
- package/esm2015/lib/modules/affix/affix.service.js +0 -24
- package/esm2015/lib/modules/affix/affix.service.js.map +0 -1
- package/esm2015/lib/modules/affix/affixer.js +0 -349
- package/esm2015/lib/modules/affix/affixer.js.map +0 -1
- package/esm2015/lib/modules/affix/dom-utils.js +0 -77
- package/esm2015/lib/modules/affix/dom-utils.js.map +0 -1
- package/esm2015/lib/modules/dock/dock-dom-adapter.service.js +0 -80
- package/esm2015/lib/modules/dock/dock-dom-adapter.service.js.map +0 -1
- package/esm2015/lib/modules/dock/dock-insert-component-config.js +0 -2
- package/esm2015/lib/modules/dock/dock-insert-component-config.js.map +0 -1
- package/esm2015/lib/modules/dock/dock-item-config.js +0 -2
- package/esm2015/lib/modules/dock/dock-item-config.js.map +0 -1
- package/esm2015/lib/modules/dock/dock-item-reference.js +0 -2
- package/esm2015/lib/modules/dock/dock-item-reference.js.map +0 -1
- package/esm2015/lib/modules/dock/dock-item.js +0 -29
- package/esm2015/lib/modules/dock/dock-item.js.map +0 -1
- package/esm2015/lib/modules/dock/dock-location.js +0 -19
- package/esm2015/lib/modules/dock/dock-location.js.map +0 -1
- package/esm2015/lib/modules/dock/dock-options.js +0 -2
- package/esm2015/lib/modules/dock/dock-options.js.map +0 -1
- package/esm2015/lib/modules/dock/dock.component.js +0 -95
- package/esm2015/lib/modules/dock/dock.component.js.map +0 -1
- package/esm2015/lib/modules/dock/dock.module.js +0 -20
- package/esm2015/lib/modules/dock/dock.module.js.map +0 -1
- package/esm2015/lib/modules/dock/dock.service.js +0 -95
- package/esm2015/lib/modules/dock/dock.service.js.map +0 -1
- package/esm2015/lib/modules/dock/sort-by-stack-order.js +0 -13
- package/esm2015/lib/modules/dock/sort-by-stack-order.js.map +0 -1
- package/esm2015/lib/modules/dynamic-component/dynamic-component-location.js +0 -27
- package/esm2015/lib/modules/dynamic-component/dynamic-component-location.js.map +0 -1
- package/esm2015/lib/modules/dynamic-component/dynamic-component-options.js +0 -2
- package/esm2015/lib/modules/dynamic-component/dynamic-component-options.js.map +0 -1
- package/esm2015/lib/modules/dynamic-component/dynamic-component.module.js +0 -17
- package/esm2015/lib/modules/dynamic-component/dynamic-component.module.js.map +0 -1
- package/esm2015/lib/modules/dynamic-component/dynamic-component.service.js +0 -83
- package/esm2015/lib/modules/dynamic-component/dynamic-component.service.js.map +0 -1
- package/esm2015/lib/modules/format/app-format.js +0 -18
- package/esm2015/lib/modules/format/app-format.js.map +0 -1
- package/esm2015/lib/modules/id/id.directive.js +0 -34
- package/esm2015/lib/modules/id/id.directive.js.map +0 -1
- package/esm2015/lib/modules/id/id.module.js +0 -16
- package/esm2015/lib/modules/id/id.module.js.map +0 -1
- package/esm2015/lib/modules/log/log.module.js +0 -16
- package/esm2015/lib/modules/log/log.module.js.map +0 -1
- package/esm2015/lib/modules/log/log.service.js +0 -23
- package/esm2015/lib/modules/log/log.service.js.map +0 -1
- package/esm2015/lib/modules/media-query/media-breakpoints.js +0 -20
- package/esm2015/lib/modules/media-query/media-breakpoints.js.map +0 -1
- package/esm2015/lib/modules/media-query/media-query-listener.js +0 -2
- package/esm2015/lib/modules/media-query/media-query-listener.js.map +0 -1
- package/esm2015/lib/modules/media-query/media-query.module.js +0 -16
- package/esm2015/lib/modules/media-query/media-query.module.js.map +0 -1
- package/esm2015/lib/modules/media-query/media-query.service.js +0 -121
- package/esm2015/lib/modules/media-query/media-query.service.js.map +0 -1
- package/esm2015/lib/modules/mutation/mutation-observer-service.js +0 -16
- package/esm2015/lib/modules/mutation/mutation-observer-service.js.map +0 -1
- package/esm2015/lib/modules/numeric/numeric-symbol.js +0 -2
- package/esm2015/lib/modules/numeric/numeric-symbol.js.map +0 -1
- package/esm2015/lib/modules/numeric/numeric.module.js +0 -20
- package/esm2015/lib/modules/numeric/numeric.module.js.map +0 -1
- package/esm2015/lib/modules/numeric/numeric.options.js +0 -41
- package/esm2015/lib/modules/numeric/numeric.options.js.map +0 -1
- package/esm2015/lib/modules/numeric/numeric.pipe.js +0 -83
- package/esm2015/lib/modules/numeric/numeric.pipe.js.map +0 -1
- package/esm2015/lib/modules/numeric/numeric.service.js +0 -189
- package/esm2015/lib/modules/numeric/numeric.service.js.map +0 -1
- package/esm2015/lib/modules/overlay/overlay-adapter.service.js +0 -41
- package/esm2015/lib/modules/overlay/overlay-adapter.service.js.map +0 -1
- package/esm2015/lib/modules/overlay/overlay-config.js +0 -2
- package/esm2015/lib/modules/overlay/overlay-config.js.map +0 -1
- package/esm2015/lib/modules/overlay/overlay-context.js +0 -10
- package/esm2015/lib/modules/overlay/overlay-context.js.map +0 -1
- package/esm2015/lib/modules/overlay/overlay-instance.js +0 -55
- package/esm2015/lib/modules/overlay/overlay-instance.js.map +0 -1
- package/esm2015/lib/modules/overlay/overlay.component.js +0 -154
- package/esm2015/lib/modules/overlay/overlay.component.js.map +0 -1
- package/esm2015/lib/modules/overlay/overlay.module.js +0 -18
- package/esm2015/lib/modules/overlay/overlay.module.js.map +0 -1
- package/esm2015/lib/modules/overlay/overlay.service.js +0 -120
- package/esm2015/lib/modules/overlay/overlay.service.js.map +0 -1
- package/esm2015/lib/modules/percent-pipe/percent-pipe.module.js +0 -20
- package/esm2015/lib/modules/percent-pipe/percent-pipe.module.js.map +0 -1
- package/esm2015/lib/modules/percent-pipe/percent.pipe.js +0 -48
- package/esm2015/lib/modules/percent-pipe/percent.pipe.js.map +0 -1
- package/esm2015/lib/modules/resize-observer/resize-observer-media-query.service.js +0 -117
- package/esm2015/lib/modules/resize-observer/resize-observer-media-query.service.js.map +0 -1
- package/esm2015/lib/modules/resize-observer/resize-observer.service.js +0 -73
- package/esm2015/lib/modules/resize-observer/resize-observer.service.js.map +0 -1
- package/esm2015/lib/modules/scrollable-host/scrollable-host.service.js +0 -184
- package/esm2015/lib/modules/scrollable-host/scrollable-host.service.js.map +0 -1
- package/esm2015/lib/modules/shared/number-format/number-format-utility.js +0 -72
- package/esm2015/lib/modules/shared/number-format/number-format-utility.js.map +0 -1
- package/esm2015/lib/modules/shared/sky-core-resources.module.js +0 -50
- package/esm2015/lib/modules/shared/sky-core-resources.module.js.map +0 -1
- package/esm2015/lib/modules/title/set-title-args.js +0 -2
- package/esm2015/lib/modules/title/set-title-args.js.map +0 -1
- package/esm2015/lib/modules/title/title.service.js +0 -31
- package/esm2015/lib/modules/title/title.service.js.map +0 -1
- package/esm2015/lib/modules/ui-config/ui-config.service.js +0 -21
- package/esm2015/lib/modules/ui-config/ui-config.service.js.map +0 -1
- package/esm2015/lib/modules/viewkeeper/viewkeeper-boundary-info.js +0 -2
- package/esm2015/lib/modules/viewkeeper/viewkeeper-boundary-info.js.map +0 -1
- package/esm2015/lib/modules/viewkeeper/viewkeeper-fixed-styles.js +0 -2
- package/esm2015/lib/modules/viewkeeper/viewkeeper-fixed-styles.js.map +0 -1
- package/esm2015/lib/modules/viewkeeper/viewkeeper-host-options.js +0 -10
- package/esm2015/lib/modules/viewkeeper/viewkeeper-host-options.js.map +0 -1
- package/esm2015/lib/modules/viewkeeper/viewkeeper-offset.js +0 -2
- package/esm2015/lib/modules/viewkeeper/viewkeeper-offset.js.map +0 -1
- package/esm2015/lib/modules/viewkeeper/viewkeeper-options.js +0 -2
- package/esm2015/lib/modules/viewkeeper/viewkeeper-options.js.map +0 -1
- package/esm2015/lib/modules/viewkeeper/viewkeeper.directive.js +0 -116
- package/esm2015/lib/modules/viewkeeper/viewkeeper.directive.js.map +0 -1
- package/esm2015/lib/modules/viewkeeper/viewkeeper.js +0 -251
- package/esm2015/lib/modules/viewkeeper/viewkeeper.js.map +0 -1
- package/esm2015/lib/modules/viewkeeper/viewkeeper.module.js +0 -16
- package/esm2015/lib/modules/viewkeeper/viewkeeper.module.js.map +0 -1
- package/esm2015/lib/modules/viewkeeper/viewkeeper.service.js +0 -39
- package/esm2015/lib/modules/viewkeeper/viewkeeper.service.js.map +0 -1
- package/esm2015/lib/modules/window/window-ref.js +0 -30
- package/esm2015/lib/modules/window/window-ref.js.map +0 -1
- package/esm2015/skyux-core.js +0 -5
- package/esm2015/skyux-core.js.map +0 -1
- package/esm2015/testing/mock-media-query.service.js +0 -41
- package/esm2015/testing/mock-media-query.service.js.map +0 -1
- package/esm2015/testing/mock-ui-config.service.js +0 -59
- package/esm2015/testing/mock-ui-config.service.js.map +0 -1
- package/esm2015/testing/public-api.js +0 -3
- package/esm2015/testing/public-api.js.map +0 -1
- package/esm2015/testing/skyux-core-testing.js +0 -5
- package/esm2015/testing/skyux-core-testing.js.map +0 -1
- package/fesm2015/skyux-core-testing.js.map +0 -1
- package/fesm2015/skyux-core.js.map +0 -1
@@ -0,0 +1,120 @@
|
|
1
|
+
import { ApplicationRef, ComponentFactoryResolver, Injectable, Injector, } from '@angular/core';
|
2
|
+
import { SkyOverlayAdapterService } from './overlay-adapter.service';
|
3
|
+
import { SkyOverlayContext } from './overlay-context';
|
4
|
+
import { SkyOverlayInstance } from './overlay-instance';
|
5
|
+
import { SkyOverlayComponent } from './overlay.component';
|
6
|
+
import * as i0 from "@angular/core";
|
7
|
+
import * as i1 from "./overlay-adapter.service";
|
8
|
+
/**
|
9
|
+
* This service is used to create new overlays.
|
10
|
+
* @dynamic
|
11
|
+
*/
|
12
|
+
export class SkyOverlayService {
|
13
|
+
constructor(applicationRef, componentFactoryResolver, injector, adapter) {
|
14
|
+
this.applicationRef = applicationRef;
|
15
|
+
this.componentFactoryResolver = componentFactoryResolver;
|
16
|
+
this.injector = injector;
|
17
|
+
this.adapter = adapter;
|
18
|
+
}
|
19
|
+
/**
|
20
|
+
* Creates an empty overlay. Use the returned `SkyOverlayInstance` to append content.
|
21
|
+
* @param config Configuration for the overlay.
|
22
|
+
*/
|
23
|
+
create(config) {
|
24
|
+
const settings = this.prepareConfig(config);
|
25
|
+
if (settings.enableScroll === false) {
|
26
|
+
this.adapter.restrictBodyScroll();
|
27
|
+
}
|
28
|
+
const componentRef = this.createOverlay(settings);
|
29
|
+
const instance = new SkyOverlayInstance(settings, componentRef);
|
30
|
+
instance.closed.subscribe(() => {
|
31
|
+
// Only execute the service's close method if the instance still exists.
|
32
|
+
// This is needed to address a race condition if the deprecated instance.close method is used instead.
|
33
|
+
if (SkyOverlayService.overlays.indexOf(instance) > -1) {
|
34
|
+
this.close(instance);
|
35
|
+
}
|
36
|
+
});
|
37
|
+
SkyOverlayService.overlays.push(instance);
|
38
|
+
return instance;
|
39
|
+
}
|
40
|
+
/**
|
41
|
+
* Closes (and destroys) an overlay instance.
|
42
|
+
* @param instance The instance to close.
|
43
|
+
*/
|
44
|
+
close(instance) {
|
45
|
+
this.destroyOverlay(instance);
|
46
|
+
this.applicationRef.detachView(instance.componentRef.hostView);
|
47
|
+
instance.componentRef.destroy();
|
48
|
+
// In some cases, Angular keeps dynamically-generated component's nodes in the DOM during
|
49
|
+
// unit tests. This can make querying difficult because the older DOM nodes still exist and
|
50
|
+
// produce inconsistent results.
|
51
|
+
// Angular Material's overlay appears to do the same thing:
|
52
|
+
// https://github.com/angular/components/blob/master/src/cdk/portal/dom-portal-outlet.ts#L143-L145
|
53
|
+
// (Ignoring coverage since this branch will only be hit by consumer unit tests.)
|
54
|
+
const componentElement = instance.componentRef.location.nativeElement;
|
55
|
+
/* istanbul ignore if */
|
56
|
+
if (componentElement.parentNode !== null) {
|
57
|
+
componentElement.parentNode.removeChild(componentElement);
|
58
|
+
}
|
59
|
+
}
|
60
|
+
/**
|
61
|
+
* Closes all overlay instances.
|
62
|
+
*/
|
63
|
+
closeAll() {
|
64
|
+
// The `close` event handler for each instance alters the array's length asynchronously,
|
65
|
+
// so the only "safe" index to call is zero.
|
66
|
+
while (SkyOverlayService.overlays.length > 0) {
|
67
|
+
this.close(SkyOverlayService.overlays[0]);
|
68
|
+
}
|
69
|
+
}
|
70
|
+
createOverlay(config) {
|
71
|
+
const injector = Injector.create({
|
72
|
+
parent: this.injector,
|
73
|
+
providers: [
|
74
|
+
{
|
75
|
+
provide: SkyOverlayContext,
|
76
|
+
useValue: new SkyOverlayContext(config),
|
77
|
+
},
|
78
|
+
],
|
79
|
+
});
|
80
|
+
const componentRef = this.componentFactoryResolver
|
81
|
+
.resolveComponentFactory(SkyOverlayComponent)
|
82
|
+
.create(injector);
|
83
|
+
this.applicationRef.attachView(componentRef.hostView);
|
84
|
+
const domElem = componentRef.hostView
|
85
|
+
.rootNodes[0];
|
86
|
+
document.body.appendChild(domElem);
|
87
|
+
return componentRef;
|
88
|
+
}
|
89
|
+
prepareConfig(config) {
|
90
|
+
const defaults = {
|
91
|
+
closeOnNavigation: true,
|
92
|
+
enableClose: false,
|
93
|
+
enablePointerEvents: false,
|
94
|
+
enableScroll: true,
|
95
|
+
showBackdrop: false,
|
96
|
+
wrapperClass: '',
|
97
|
+
};
|
98
|
+
return { ...defaults, ...config };
|
99
|
+
}
|
100
|
+
destroyOverlay(instance) {
|
101
|
+
SkyOverlayService.overlays.splice(SkyOverlayService.overlays.indexOf(instance), 1);
|
102
|
+
if (instance.config.enableScroll === false) {
|
103
|
+
// Only release the body scroll if no other overlay wishes it to be disabled.
|
104
|
+
const anotherOverlayDisablesScroll = SkyOverlayService.overlays.some((o) => !o.config.enableScroll);
|
105
|
+
if (!anotherOverlayDisablesScroll) {
|
106
|
+
this.adapter.releaseBodyScroll();
|
107
|
+
}
|
108
|
+
}
|
109
|
+
}
|
110
|
+
}
|
111
|
+
SkyOverlayService.overlays = [];
|
112
|
+
SkyOverlayService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyOverlayService, deps: [{ token: i0.ApplicationRef }, { token: i0.ComponentFactoryResolver }, { token: i0.Injector }, { token: i1.SkyOverlayAdapterService }], target: i0.ɵɵFactoryTarget.Injectable });
|
113
|
+
SkyOverlayService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyOverlayService, providedIn: 'root' });
|
114
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyOverlayService, decorators: [{
|
115
|
+
type: Injectable,
|
116
|
+
args: [{
|
117
|
+
providedIn: 'root',
|
118
|
+
}]
|
119
|
+
}], ctorParameters: function () { return [{ type: i0.ApplicationRef }, { type: i0.ComponentFactoryResolver }, { type: i0.Injector }, { type: i1.SkyOverlayAdapterService }]; } });
|
120
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3ZlcmxheS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2NvcmUvc3JjL2xpYi9tb2R1bGVzL292ZXJsYXkvb3ZlcmxheS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxjQUFjLEVBQ2Qsd0JBQXdCLEVBR3hCLFVBQVUsRUFDVixRQUFRLEdBQ1QsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFckUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDdEQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDeEQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0scUJBQXFCLENBQUM7OztBQUUxRDs7O0dBR0c7QUFJSCxNQUFNLE9BQU8saUJBQWlCO0lBRzVCLFlBQ1UsY0FBOEIsRUFDOUIsd0JBQWtELEVBQ2xELFFBQWtCLEVBQ2xCLE9BQWlDO1FBSGpDLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM5Qiw2QkFBd0IsR0FBeEIsd0JBQXdCLENBQTBCO1FBQ2xELGFBQVEsR0FBUixRQUFRLENBQVU7UUFDbEIsWUFBTyxHQUFQLE9BQU8sQ0FBMEI7SUFDeEMsQ0FBQztJQUVKOzs7T0FHRztJQUNJLE1BQU0sQ0FBQyxNQUF5QjtRQUNyQyxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRTVDLElBQUksUUFBUSxDQUFDLFlBQVksS0FBSyxLQUFLLEVBQUU7WUFDbkMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1NBQ25DO1FBRUQsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNsRCxNQUFNLFFBQVEsR0FBRyxJQUFJLGtCQUFrQixDQUFDLFFBQVEsRUFBRSxZQUFZLENBQUMsQ0FBQztRQUVoRSxRQUFRLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDN0Isd0VBQXdFO1lBQ3hFLHNHQUFzRztZQUN0RyxJQUFJLGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUU7Z0JBQ3JELElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7YUFDdEI7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUVILGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFMUMsT0FBTyxRQUFRLENBQUM7SUFDbEIsQ0FBQztJQUVEOzs7T0FHRztJQUNJLEtBQUssQ0FBQyxRQUE0QjtRQUN2QyxJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzlCLElBQUksQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDL0QsUUFBUSxDQUFDLFlBQVksQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUVoQyx5RkFBeUY7UUFDekYsMkZBQTJGO1FBQzNGLGdDQUFnQztRQUNoQywyREFBMkQ7UUFDM0Qsa0dBQWtHO1FBQ2xHLGlGQUFpRjtRQUNqRixNQUFNLGdCQUFnQixHQUFHLFFBQVEsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQztRQUN0RSx3QkFBd0I7UUFDeEIsSUFBSSxnQkFBZ0IsQ0FBQyxVQUFVLEtBQUssSUFBSSxFQUFFO1lBQ3hDLGdCQUFnQixDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztTQUMzRDtJQUNILENBQUM7SUFFRDs7T0FFRztJQUNJLFFBQVE7UUFDYix3RkFBd0Y7UUFDeEYsNENBQTRDO1FBQzVDLE9BQU8saUJBQWlCLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDNUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUMzQztJQUNILENBQUM7SUFFTyxhQUFhLENBQ25CLE1BQXlCO1FBRXpCLE1BQU0sUUFBUSxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUM7WUFDL0IsTUFBTSxFQUFFLElBQUksQ0FBQyxRQUFRO1lBQ3JCLFNBQVMsRUFBRTtnQkFDVDtvQkFDRSxPQUFPLEVBQUUsaUJBQWlCO29CQUMxQixRQUFRLEVBQUUsSUFBSSxpQkFBaUIsQ0FBQyxNQUFNLENBQUM7aUJBQ3hDO2FBQ0Y7U0FDRixDQUFDLENBQUM7UUFFSCxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsd0JBQXdCO2FBQy9DLHVCQUF1QixDQUFDLG1CQUFtQixDQUFDO2FBQzVDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUVwQixJQUFJLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFdEQsTUFBTSxPQUFPLEdBQUksWUFBWSxDQUFDLFFBQWlDO2FBQzVELFNBQVMsQ0FBQyxDQUFDLENBQWdCLENBQUM7UUFFL0IsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFbkMsT0FBTyxZQUFZLENBQUM7SUFDdEIsQ0FBQztJQUVPLGFBQWEsQ0FBQyxNQUF3QjtRQUM1QyxNQUFNLFFBQVEsR0FBcUI7WUFDakMsaUJBQWlCLEVBQUUsSUFBSTtZQUN2QixXQUFXLEVBQUUsS0FBSztZQUNsQixtQkFBbUIsRUFBRSxLQUFLO1lBQzFCLFlBQVksRUFBRSxJQUFJO1lBQ2xCLFlBQVksRUFBRSxLQUFLO1lBQ25CLFlBQVksRUFBRSxFQUFFO1NBQ2pCLENBQUM7UUFFRixPQUFPLEVBQUUsR0FBRyxRQUFRLEVBQUUsR0FBRyxNQUFNLEVBQUUsQ0FBQztJQUNwQyxDQUFDO0lBRU8sY0FBYyxDQUFDLFFBQTRCO1FBQ2pELGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQy9CLGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEVBQzVDLENBQUMsQ0FDRixDQUFDO1FBRUYsSUFBSSxRQUFRLENBQUMsTUFBTSxDQUFDLFlBQVksS0FBSyxLQUFLLEVBQUU7WUFDMUMsNkVBQTZFO1lBQzdFLE1BQU0sNEJBQTRCLEdBQUcsaUJBQWlCLENBQUMsUUFBUSxDQUFDLElBQUksQ0FDbEUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQzlCLENBQUM7WUFDRixJQUFJLENBQUMsNEJBQTRCLEVBQUU7Z0JBQ2pDLElBQUksQ0FBQyxPQUFPLENBQUMsaUJBQWlCLEVBQUUsQ0FBQzthQUNsQztTQUNGO0lBQ0gsQ0FBQzs7QUE1SGMsMEJBQVEsR0FBeUIsRUFBRyxDQUFBOzhHQUR4QyxpQkFBaUI7a0hBQWpCLGlCQUFpQixjQUZoQixNQUFNOzJGQUVQLGlCQUFpQjtrQkFIN0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBcHBsaWNhdGlvblJlZixcbiAgQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxuICBDb21wb25lbnRSZWYsXG4gIEVtYmVkZGVkVmlld1JlZixcbiAgSW5qZWN0YWJsZSxcbiAgSW5qZWN0b3IsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBTa3lPdmVybGF5QWRhcHRlclNlcnZpY2UgfSBmcm9tICcuL292ZXJsYXktYWRhcHRlci5zZXJ2aWNlJztcbmltcG9ydCB7IFNreU92ZXJsYXlDb25maWcgfSBmcm9tICcuL292ZXJsYXktY29uZmlnJztcbmltcG9ydCB7IFNreU92ZXJsYXlDb250ZXh0IH0gZnJvbSAnLi9vdmVybGF5LWNvbnRleHQnO1xuaW1wb3J0IHsgU2t5T3ZlcmxheUluc3RhbmNlIH0gZnJvbSAnLi9vdmVybGF5LWluc3RhbmNlJztcbmltcG9ydCB7IFNreU92ZXJsYXlDb21wb25lbnQgfSBmcm9tICcuL292ZXJsYXkuY29tcG9uZW50JztcblxuLyoqXG4gKiBUaGlzIHNlcnZpY2UgaXMgdXNlZCB0byBjcmVhdGUgbmV3IG92ZXJsYXlzLlxuICogQGR5bmFtaWNcbiAqL1xuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIFNreU92ZXJsYXlTZXJ2aWNlIHtcbiAgcHJpdmF0ZSBzdGF0aWMgb3ZlcmxheXM6IFNreU92ZXJsYXlJbnN0YW5jZVtdID0gW107XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBhcHBsaWNhdGlvblJlZjogQXBwbGljYXRpb25SZWYsXG4gICAgcHJpdmF0ZSBjb21wb25lbnRGYWN0b3J5UmVzb2x2ZXI6IENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcbiAgICBwcml2YXRlIGluamVjdG9yOiBJbmplY3RvcixcbiAgICBwcml2YXRlIGFkYXB0ZXI6IFNreU92ZXJsYXlBZGFwdGVyU2VydmljZVxuICApIHt9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYW4gZW1wdHkgb3ZlcmxheS4gVXNlIHRoZSByZXR1cm5lZCBgU2t5T3ZlcmxheUluc3RhbmNlYCB0byBhcHBlbmQgY29udGVudC5cbiAgICogQHBhcmFtIGNvbmZpZyBDb25maWd1cmF0aW9uIGZvciB0aGUgb3ZlcmxheS5cbiAgICovXG4gIHB1YmxpYyBjcmVhdGUoY29uZmlnPzogU2t5T3ZlcmxheUNvbmZpZyk6IFNreU92ZXJsYXlJbnN0YW5jZSB7XG4gICAgY29uc3Qgc2V0dGluZ3MgPSB0aGlzLnByZXBhcmVDb25maWcoY29uZmlnKTtcblxuICAgIGlmIChzZXR0aW5ncy5lbmFibGVTY3JvbGwgPT09IGZhbHNlKSB7XG4gICAgICB0aGlzLmFkYXB0ZXIucmVzdHJpY3RCb2R5U2Nyb2xsKCk7XG4gICAgfVxuXG4gICAgY29uc3QgY29tcG9uZW50UmVmID0gdGhpcy5jcmVhdGVPdmVybGF5KHNldHRpbmdzKTtcbiAgICBjb25zdCBpbnN0YW5jZSA9IG5ldyBTa3lPdmVybGF5SW5zdGFuY2Uoc2V0dGluZ3MsIGNvbXBvbmVudFJlZik7XG5cbiAgICBpbnN0YW5jZS5jbG9zZWQuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIC8vIE9ubHkgZXhlY3V0ZSB0aGUgc2VydmljZSdzIGNsb3NlIG1ldGhvZCBpZiB0aGUgaW5zdGFuY2Ugc3RpbGwgZXhpc3RzLlxuICAgICAgLy8gVGhpcyBpcyBuZWVkZWQgdG8gYWRkcmVzcyBhIHJhY2UgY29uZGl0aW9uIGlmIHRoZSBkZXByZWNhdGVkIGluc3RhbmNlLmNsb3NlIG1ldGhvZCBpcyB1c2VkIGluc3RlYWQuXG4gICAgICBpZiAoU2t5T3ZlcmxheVNlcnZpY2Uub3ZlcmxheXMuaW5kZXhPZihpbnN0YW5jZSkgPiAtMSkge1xuICAgICAgICB0aGlzLmNsb3NlKGluc3RhbmNlKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIFNreU92ZXJsYXlTZXJ2aWNlLm92ZXJsYXlzLnB1c2goaW5zdGFuY2UpO1xuXG4gICAgcmV0dXJuIGluc3RhbmNlO1xuICB9XG5cbiAgLyoqXG4gICAqIENsb3NlcyAoYW5kIGRlc3Ryb3lzKSBhbiBvdmVybGF5IGluc3RhbmNlLlxuICAgKiBAcGFyYW0gaW5zdGFuY2UgVGhlIGluc3RhbmNlIHRvIGNsb3NlLlxuICAgKi9cbiAgcHVibGljIGNsb3NlKGluc3RhbmNlOiBTa3lPdmVybGF5SW5zdGFuY2UpOiB2b2lkIHtcbiAgICB0aGlzLmRlc3Ryb3lPdmVybGF5KGluc3RhbmNlKTtcbiAgICB0aGlzLmFwcGxpY2F0aW9uUmVmLmRldGFjaFZpZXcoaW5zdGFuY2UuY29tcG9uZW50UmVmLmhvc3RWaWV3KTtcbiAgICBpbnN0YW5jZS5jb21wb25lbnRSZWYuZGVzdHJveSgpO1xuXG4gICAgLy8gSW4gc29tZSBjYXNlcywgQW5ndWxhciBrZWVwcyBkeW5hbWljYWxseS1nZW5lcmF0ZWQgY29tcG9uZW50J3Mgbm9kZXMgaW4gdGhlIERPTSBkdXJpbmdcbiAgICAvLyB1bml0IHRlc3RzLiBUaGlzIGNhbiBtYWtlIHF1ZXJ5aW5nIGRpZmZpY3VsdCBiZWNhdXNlIHRoZSBvbGRlciBET00gbm9kZXMgc3RpbGwgZXhpc3QgYW5kXG4gICAgLy8gcHJvZHVjZSBpbmNvbnNpc3RlbnQgcmVzdWx0cy5cbiAgICAvLyBBbmd1bGFyIE1hdGVyaWFsJ3Mgb3ZlcmxheSBhcHBlYXJzIHRvIGRvIHRoZSBzYW1lIHRoaW5nOlxuICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbmd1bGFyL2NvbXBvbmVudHMvYmxvYi9tYXN0ZXIvc3JjL2Nkay9wb3J0YWwvZG9tLXBvcnRhbC1vdXRsZXQudHMjTDE0My1MMTQ1XG4gICAgLy8gKElnbm9yaW5nIGNvdmVyYWdlIHNpbmNlIHRoaXMgYnJhbmNoIHdpbGwgb25seSBiZSBoaXQgYnkgY29uc3VtZXIgdW5pdCB0ZXN0cy4pXG4gICAgY29uc3QgY29tcG9uZW50RWxlbWVudCA9IGluc3RhbmNlLmNvbXBvbmVudFJlZi5sb2NhdGlvbi5uYXRpdmVFbGVtZW50O1xuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBpZiAqL1xuICAgIGlmIChjb21wb25lbnRFbGVtZW50LnBhcmVudE5vZGUgIT09IG51bGwpIHtcbiAgICAgIGNvbXBvbmVudEVsZW1lbnQucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChjb21wb25lbnRFbGVtZW50KTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQ2xvc2VzIGFsbCBvdmVybGF5IGluc3RhbmNlcy5cbiAgICovXG4gIHB1YmxpYyBjbG9zZUFsbCgpOiB2b2lkIHtcbiAgICAvLyBUaGUgYGNsb3NlYCBldmVudCBoYW5kbGVyIGZvciBlYWNoIGluc3RhbmNlIGFsdGVycyB0aGUgYXJyYXkncyBsZW5ndGggYXN5bmNocm9ub3VzbHksXG4gICAgLy8gc28gdGhlIG9ubHkgXCJzYWZlXCIgaW5kZXggdG8gY2FsbCBpcyB6ZXJvLlxuICAgIHdoaWxlIChTa3lPdmVybGF5U2VydmljZS5vdmVybGF5cy5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLmNsb3NlKFNreU92ZXJsYXlTZXJ2aWNlLm92ZXJsYXlzWzBdKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZU92ZXJsYXkoXG4gICAgY29uZmlnPzogU2t5T3ZlcmxheUNvbmZpZ1xuICApOiBDb21wb25lbnRSZWY8U2t5T3ZlcmxheUNvbXBvbmVudD4ge1xuICAgIGNvbnN0IGluamVjdG9yID0gSW5qZWN0b3IuY3JlYXRlKHtcbiAgICAgIHBhcmVudDogdGhpcy5pbmplY3RvcixcbiAgICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgcHJvdmlkZTogU2t5T3ZlcmxheUNvbnRleHQsXG4gICAgICAgICAgdXNlVmFsdWU6IG5ldyBTa3lPdmVybGF5Q29udGV4dChjb25maWcpLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9KTtcblxuICAgIGNvbnN0IGNvbXBvbmVudFJlZiA9IHRoaXMuY29tcG9uZW50RmFjdG9yeVJlc29sdmVyXG4gICAgICAucmVzb2x2ZUNvbXBvbmVudEZhY3RvcnkoU2t5T3ZlcmxheUNvbXBvbmVudClcbiAgICAgIC5jcmVhdGUoaW5qZWN0b3IpO1xuXG4gICAgdGhpcy5hcHBsaWNhdGlvblJlZi5hdHRhY2hWaWV3KGNvbXBvbmVudFJlZi5ob3N0Vmlldyk7XG5cbiAgICBjb25zdCBkb21FbGVtID0gKGNvbXBvbmVudFJlZi5ob3N0VmlldyBhcyBFbWJlZGRlZFZpZXdSZWY8YW55PilcbiAgICAgIC5yb290Tm9kZXNbMF0gYXMgSFRNTEVsZW1lbnQ7XG5cbiAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGRvbUVsZW0pO1xuXG4gICAgcmV0dXJuIGNvbXBvbmVudFJlZjtcbiAgfVxuXG4gIHByaXZhdGUgcHJlcGFyZUNvbmZpZyhjb25maWc6IFNreU92ZXJsYXlDb25maWcpOiBTa3lPdmVybGF5Q29uZmlnIHtcbiAgICBjb25zdCBkZWZhdWx0czogU2t5T3ZlcmxheUNvbmZpZyA9IHtcbiAgICAgIGNsb3NlT25OYXZpZ2F0aW9uOiB0cnVlLFxuICAgICAgZW5hYmxlQ2xvc2U6IGZhbHNlLFxuICAgICAgZW5hYmxlUG9pbnRlckV2ZW50czogZmFsc2UsXG4gICAgICBlbmFibGVTY3JvbGw6IHRydWUsXG4gICAgICBzaG93QmFja2Ryb3A6IGZhbHNlLFxuICAgICAgd3JhcHBlckNsYXNzOiAnJyxcbiAgICB9O1xuXG4gICAgcmV0dXJuIHsgLi4uZGVmYXVsdHMsIC4uLmNvbmZpZyB9O1xuICB9XG5cbiAgcHJpdmF0ZSBkZXN0cm95T3ZlcmxheShpbnN0YW5jZTogU2t5T3ZlcmxheUluc3RhbmNlKTogdm9pZCB7XG4gICAgU2t5T3ZlcmxheVNlcnZpY2Uub3ZlcmxheXMuc3BsaWNlKFxuICAgICAgU2t5T3ZlcmxheVNlcnZpY2Uub3ZlcmxheXMuaW5kZXhPZihpbnN0YW5jZSksXG4gICAgICAxXG4gICAgKTtcblxuICAgIGlmIChpbnN0YW5jZS5jb25maWcuZW5hYmxlU2Nyb2xsID09PSBmYWxzZSkge1xuICAgICAgLy8gT25seSByZWxlYXNlIHRoZSBib2R5IHNjcm9sbCBpZiBubyBvdGhlciBvdmVybGF5IHdpc2hlcyBpdCB0byBiZSBkaXNhYmxlZC5cbiAgICAgIGNvbnN0IGFub3RoZXJPdmVybGF5RGlzYWJsZXNTY3JvbGwgPSBTa3lPdmVybGF5U2VydmljZS5vdmVybGF5cy5zb21lKFxuICAgICAgICAobykgPT4gIW8uY29uZmlnLmVuYWJsZVNjcm9sbFxuICAgICAgKTtcbiAgICAgIGlmICghYW5vdGhlck92ZXJsYXlEaXNhYmxlc1Njcm9sbCkge1xuICAgICAgICB0aGlzLmFkYXB0ZXIucmVsZWFzZUJvZHlTY3JvbGwoKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
@@ -0,0 +1,20 @@
|
|
1
|
+
import { CommonModule } from '@angular/common';
|
2
|
+
import { NgModule } from '@angular/core';
|
3
|
+
import { SkyCoreResourcesModule } from '../shared/sky-core-resources.module';
|
4
|
+
import { SkyPercentPipe } from './percent.pipe';
|
5
|
+
import * as i0 from "@angular/core";
|
6
|
+
export class SkyPercentPipeModule {
|
7
|
+
}
|
8
|
+
SkyPercentPipeModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyPercentPipeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
9
|
+
SkyPercentPipeModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyPercentPipeModule, declarations: [SkyPercentPipe], imports: [CommonModule, SkyCoreResourcesModule], exports: [SkyPercentPipe] });
|
10
|
+
SkyPercentPipeModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyPercentPipeModule, providers: [SkyPercentPipe], imports: [[CommonModule, SkyCoreResourcesModule]] });
|
11
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyPercentPipeModule, decorators: [{
|
12
|
+
type: NgModule,
|
13
|
+
args: [{
|
14
|
+
declarations: [SkyPercentPipe],
|
15
|
+
providers: [SkyPercentPipe],
|
16
|
+
imports: [CommonModule, SkyCoreResourcesModule],
|
17
|
+
exports: [SkyPercentPipe],
|
18
|
+
}]
|
19
|
+
}] });
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVyY2VudC1waXBlLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9jb3JlL3NyYy9saWIvbW9kdWxlcy9wZXJjZW50LXBpcGUvcGVyY2VudC1waXBlLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV6QyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUU3RSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O0FBUWhELE1BQU0sT0FBTyxvQkFBb0I7O2lIQUFwQixvQkFBb0I7a0hBQXBCLG9CQUFvQixpQkFMaEIsY0FBYyxhQUVuQixZQUFZLEVBQUUsc0JBQXNCLGFBQ3BDLGNBQWM7a0hBRWIsb0JBQW9CLGFBSnBCLENBQUMsY0FBYyxDQUFDLFlBQ2xCLENBQUMsWUFBWSxFQUFFLHNCQUFzQixDQUFDOzJGQUdwQyxvQkFBb0I7a0JBTmhDLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFLENBQUMsY0FBYyxDQUFDO29CQUM5QixTQUFTLEVBQUUsQ0FBQyxjQUFjLENBQUM7b0JBQzNCLE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxzQkFBc0IsQ0FBQztvQkFDL0MsT0FBTyxFQUFFLENBQUMsY0FBYyxDQUFDO2lCQUMxQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBTa3lDb3JlUmVzb3VyY2VzTW9kdWxlIH0gZnJvbSAnLi4vc2hhcmVkL3NreS1jb3JlLXJlc291cmNlcy5tb2R1bGUnO1xuXG5pbXBvcnQgeyBTa3lQZXJjZW50UGlwZSB9IGZyb20gJy4vcGVyY2VudC5waXBlJztcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbU2t5UGVyY2VudFBpcGVdLFxuICBwcm92aWRlcnM6IFtTa3lQZXJjZW50UGlwZV0sXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFNreUNvcmVSZXNvdXJjZXNNb2R1bGVdLFxuICBleHBvcnRzOiBbU2t5UGVyY2VudFBpcGVdLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lQZXJjZW50UGlwZU1vZHVsZSB7fVxuIl19
|
@@ -0,0 +1,48 @@
|
|
1
|
+
import { Pipe } from '@angular/core';
|
2
|
+
import { SkyAppLocaleProvider, SkyIntlNumberFormatStyle } from '@skyux/i18n';
|
3
|
+
import { Subject } from 'rxjs';
|
4
|
+
import { takeUntil } from 'rxjs/operators';
|
5
|
+
import { SkyNumberFormatUtility } from '../shared/number-format/number-format-utility';
|
6
|
+
import * as i0 from "@angular/core";
|
7
|
+
import * as i1 from "@skyux/i18n";
|
8
|
+
export class SkyPercentPipe {
|
9
|
+
constructor(localeProvider) {
|
10
|
+
this.localeProvider = localeProvider;
|
11
|
+
this.defaultFormat = '1.0-2';
|
12
|
+
this.defaultLocale = 'en-US';
|
13
|
+
this.ngUnsubscribe = new Subject();
|
14
|
+
this.localeProvider
|
15
|
+
.getLocaleInfo()
|
16
|
+
.pipe(takeUntil(this.ngUnsubscribe))
|
17
|
+
.subscribe((localeInfo) => {
|
18
|
+
this.defaultLocale = localeInfo.locale;
|
19
|
+
this.updateFormattedValue();
|
20
|
+
});
|
21
|
+
}
|
22
|
+
ngOnDestroy() {
|
23
|
+
this.ngUnsubscribe.next();
|
24
|
+
this.ngUnsubscribe.complete();
|
25
|
+
}
|
26
|
+
transform(value, format, locale) {
|
27
|
+
this.value = value;
|
28
|
+
this.format = format;
|
29
|
+
this.locale = locale;
|
30
|
+
this.updateFormattedValue();
|
31
|
+
return this.formattedValue;
|
32
|
+
}
|
33
|
+
updateFormattedValue() {
|
34
|
+
const locale = this.locale || this.defaultLocale;
|
35
|
+
const format = this.format || this.defaultFormat;
|
36
|
+
this.formattedValue = SkyNumberFormatUtility.formatNumber(locale, this.value, SkyIntlNumberFormatStyle.Percent, format);
|
37
|
+
}
|
38
|
+
}
|
39
|
+
SkyPercentPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyPercentPipe, deps: [{ token: i1.SkyAppLocaleProvider }], target: i0.ɵɵFactoryTarget.Pipe });
|
40
|
+
SkyPercentPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyPercentPipe, name: "skyPercent", pure: false });
|
41
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyPercentPipe, decorators: [{
|
42
|
+
type: Pipe,
|
43
|
+
args: [{
|
44
|
+
name: 'skyPercent',
|
45
|
+
pure: false,
|
46
|
+
}]
|
47
|
+
}], ctorParameters: function () { return [{ type: i1.SkyAppLocaleProvider }]; } });
|
48
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVyY2VudC5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2NvcmUvc3JjL2xpYi9tb2R1bGVzL3BlcmNlbnQtcGlwZS9wZXJjZW50LnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFhLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFDL0QsT0FBTyxFQUFFLG9CQUFvQixFQUFFLHdCQUF3QixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRTdFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTNDLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLCtDQUErQyxDQUFDOzs7QUFNdkYsTUFBTSxPQUFPLGNBQWM7SUFlekIsWUFBb0IsY0FBb0M7UUFBcEMsbUJBQWMsR0FBZCxjQUFjLENBQXNCO1FBZGhELGtCQUFhLEdBQUcsT0FBTyxDQUFDO1FBSXhCLGtCQUFhLEdBQUcsT0FBTyxDQUFDO1FBUXhCLGtCQUFhLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQUcxQyxJQUFJLENBQUMsY0FBYzthQUNoQixhQUFhLEVBQUU7YUFDZixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQzthQUNuQyxTQUFTLENBQUMsQ0FBQyxVQUFVLEVBQUUsRUFBRTtZQUN4QixJQUFJLENBQUMsYUFBYSxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUM7WUFDdkMsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7UUFDOUIsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRU0sV0FBVztRQUNoQixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQzFCLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDaEMsQ0FBQztJQUVNLFNBQVMsQ0FBQyxLQUFhLEVBQUUsTUFBZSxFQUFFLE1BQWU7UUFDOUQsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDbkIsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7UUFDckIsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7UUFFckIsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7UUFFNUIsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDO0lBQzdCLENBQUM7SUFFTyxvQkFBb0I7UUFDMUIsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDO1FBQ2pELE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQztRQUVqRCxJQUFJLENBQUMsY0FBYyxHQUFHLHNCQUFzQixDQUFDLFlBQVksQ0FDdkQsTUFBTSxFQUNOLElBQUksQ0FBQyxLQUFLLEVBQ1Ysd0JBQXdCLENBQUMsT0FBTyxFQUNoQyxNQUFNLENBQ1AsQ0FBQztJQUNKLENBQUM7OzJHQWxEVSxjQUFjO3lHQUFkLGNBQWM7MkZBQWQsY0FBYztrQkFKMUIsSUFBSTttQkFBQztvQkFDSixJQUFJLEVBQUUsWUFBWTtvQkFDbEIsSUFBSSxFQUFFLEtBQUs7aUJBQ1oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPbkRlc3Ryb3ksIFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFNreUFwcExvY2FsZVByb3ZpZGVyLCBTa3lJbnRsTnVtYmVyRm9ybWF0U3R5bGUgfSBmcm9tICdAc2t5dXgvaTE4bic7XG5cbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgU2t5TnVtYmVyRm9ybWF0VXRpbGl0eSB9IGZyb20gJy4uL3NoYXJlZC9udW1iZXItZm9ybWF0L251bWJlci1mb3JtYXQtdXRpbGl0eSc7XG5cbkBQaXBlKHtcbiAgbmFtZTogJ3NreVBlcmNlbnQnLFxuICBwdXJlOiBmYWxzZSxcbn0pXG5leHBvcnQgY2xhc3MgU2t5UGVyY2VudFBpcGUgaW1wbGVtZW50cyBPbkRlc3Ryb3ksIFBpcGVUcmFuc2Zvcm0ge1xuICBwcml2YXRlIGRlZmF1bHRGb3JtYXQgPSAnMS4wLTInO1xuXG4gIHByaXZhdGUgZm9ybWF0OiBzdHJpbmc7XG5cbiAgcHJpdmF0ZSBkZWZhdWx0TG9jYWxlID0gJ2VuLVVTJztcblxuICBwcml2YXRlIGxvY2FsZTogc3RyaW5nO1xuXG4gIHByaXZhdGUgdmFsdWU6IHN0cmluZztcblxuICBwcml2YXRlIGZvcm1hdHRlZFZhbHVlOiBzdHJpbmc7XG5cbiAgcHJpdmF0ZSBuZ1Vuc3Vic2NyaWJlID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGxvY2FsZVByb3ZpZGVyOiBTa3lBcHBMb2NhbGVQcm92aWRlcikge1xuICAgIHRoaXMubG9jYWxlUHJvdmlkZXJcbiAgICAgIC5nZXRMb2NhbGVJbmZvKClcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUpKVxuICAgICAgLnN1YnNjcmliZSgobG9jYWxlSW5mbykgPT4ge1xuICAgICAgICB0aGlzLmRlZmF1bHRMb2NhbGUgPSBsb2NhbGVJbmZvLmxvY2FsZTtcbiAgICAgICAgdGhpcy51cGRhdGVGb3JtYXR0ZWRWYWx1ZSgpO1xuICAgICAgfSk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5uZ1Vuc3Vic2NyaWJlLm5leHQoKTtcbiAgICB0aGlzLm5nVW5zdWJzY3JpYmUuY29tcGxldGUoKTtcbiAgfVxuXG4gIHB1YmxpYyB0cmFuc2Zvcm0odmFsdWU6IHN0cmluZywgZm9ybWF0Pzogc3RyaW5nLCBsb2NhbGU/OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgICB0aGlzLmZvcm1hdCA9IGZvcm1hdDtcbiAgICB0aGlzLmxvY2FsZSA9IGxvY2FsZTtcblxuICAgIHRoaXMudXBkYXRlRm9ybWF0dGVkVmFsdWUoKTtcblxuICAgIHJldHVybiB0aGlzLmZvcm1hdHRlZFZhbHVlO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVGb3JtYXR0ZWRWYWx1ZSgpOiB2b2lkIHtcbiAgICBjb25zdCBsb2NhbGUgPSB0aGlzLmxvY2FsZSB8fCB0aGlzLmRlZmF1bHRMb2NhbGU7XG4gICAgY29uc3QgZm9ybWF0ID0gdGhpcy5mb3JtYXQgfHwgdGhpcy5kZWZhdWx0Rm9ybWF0O1xuXG4gICAgdGhpcy5mb3JtYXR0ZWRWYWx1ZSA9IFNreU51bWJlckZvcm1hdFV0aWxpdHkuZm9ybWF0TnVtYmVyKFxuICAgICAgbG9jYWxlLFxuICAgICAgdGhpcy52YWx1ZSxcbiAgICAgIFNreUludGxOdW1iZXJGb3JtYXRTdHlsZS5QZXJjZW50LFxuICAgICAgZm9ybWF0XG4gICAgKTtcbiAgfVxufVxuIl19
|
@@ -0,0 +1,117 @@
|
|
1
|
+
import { Injectable } from '@angular/core';
|
2
|
+
import { ReplaySubject, Subject } from 'rxjs';
|
3
|
+
import { takeUntil } from 'rxjs/operators';
|
4
|
+
import { SkyMediaBreakpoints } from '../media-query/media-breakpoints';
|
5
|
+
import { SkyResizeObserverService } from './resize-observer.service';
|
6
|
+
import * as i0 from "@angular/core";
|
7
|
+
import * as i1 from "./resize-observer.service";
|
8
|
+
/**
|
9
|
+
* Acts like `SkyMediaQueryService` for a container element, emitting the same responsive breakpoints.
|
10
|
+
*/
|
11
|
+
export class SkyResizeObserverMediaQueryService {
|
12
|
+
constructor(resizeObserverService) {
|
13
|
+
this.resizeObserverService = resizeObserverService;
|
14
|
+
this._breakpoints = [
|
15
|
+
{
|
16
|
+
check: (width) => width <= 767,
|
17
|
+
name: SkyMediaBreakpoints.xs,
|
18
|
+
},
|
19
|
+
{
|
20
|
+
check: (width) => width > 767 && width <= 991,
|
21
|
+
name: SkyMediaBreakpoints.sm,
|
22
|
+
},
|
23
|
+
{
|
24
|
+
check: (width) => width > 991 && width <= 1199,
|
25
|
+
name: SkyMediaBreakpoints.md,
|
26
|
+
},
|
27
|
+
{
|
28
|
+
check: (width) => width > 1199,
|
29
|
+
name: SkyMediaBreakpoints.lg,
|
30
|
+
},
|
31
|
+
];
|
32
|
+
this._currentBreakpointObservable = new ReplaySubject(1);
|
33
|
+
this._stopListening = new Subject();
|
34
|
+
this._stopListening.subscribe(() => {
|
35
|
+
this._target = undefined;
|
36
|
+
this.updateBreakpoint(undefined);
|
37
|
+
});
|
38
|
+
}
|
39
|
+
/**
|
40
|
+
* Returns the current breakpoint.
|
41
|
+
*/
|
42
|
+
get current() {
|
43
|
+
return this._currentBreakpoint;
|
44
|
+
}
|
45
|
+
ngOnDestroy() {
|
46
|
+
this._stopListening.next();
|
47
|
+
this._currentBreakpoint = undefined;
|
48
|
+
this._stopListening.complete();
|
49
|
+
this._currentBreakpointObservable.complete();
|
50
|
+
}
|
51
|
+
/**
|
52
|
+
* @internal
|
53
|
+
*/
|
54
|
+
destroy() {
|
55
|
+
this.ngOnDestroy();
|
56
|
+
}
|
57
|
+
/**
|
58
|
+
* Sets the container element to watch. The `SkyResizeObserverMediaQueryService` will only observe one element at a
|
59
|
+
* time. Any previous subscriptions will be unsubscribed when a new element is observed.
|
60
|
+
*/
|
61
|
+
observe(element) {
|
62
|
+
if (this._target) {
|
63
|
+
if (this._target === element) {
|
64
|
+
return this;
|
65
|
+
}
|
66
|
+
this._stopListening.next();
|
67
|
+
}
|
68
|
+
this._target = element;
|
69
|
+
const width = element.nativeElement.offsetWidth;
|
70
|
+
if (width) {
|
71
|
+
const breakpoint = this.checkBreakpoint(width);
|
72
|
+
this.updateBreakpoint(breakpoint);
|
73
|
+
}
|
74
|
+
this.resizeObserverService
|
75
|
+
.observe(element)
|
76
|
+
.pipe(takeUntil(this._stopListening))
|
77
|
+
.subscribe((value) => {
|
78
|
+
const breakpoint = this.checkBreakpoint(value.contentRect.width);
|
79
|
+
/* istanbul ignore else */
|
80
|
+
if (breakpoint !== this._currentBreakpoint) {
|
81
|
+
this.updateBreakpoint(breakpoint);
|
82
|
+
}
|
83
|
+
});
|
84
|
+
return this;
|
85
|
+
}
|
86
|
+
/**
|
87
|
+
* Stop watching the container element.
|
88
|
+
*/
|
89
|
+
unobserve() {
|
90
|
+
this._stopListening.next();
|
91
|
+
}
|
92
|
+
/**
|
93
|
+
* Subscribes to element size changes that cross breakpoints.
|
94
|
+
*/
|
95
|
+
subscribe(listener) {
|
96
|
+
return this._currentBreakpointObservable
|
97
|
+
.pipe(takeUntil(this._stopListening))
|
98
|
+
.subscribe(listener);
|
99
|
+
}
|
100
|
+
updateBreakpoint(breakpoint) {
|
101
|
+
this._currentBreakpoint = breakpoint;
|
102
|
+
this._currentBreakpointObservable.next(breakpoint);
|
103
|
+
}
|
104
|
+
checkBreakpoint(width) {
|
105
|
+
return this._breakpoints.find((breakpoint) => breakpoint.check(width))
|
106
|
+
?.name;
|
107
|
+
}
|
108
|
+
}
|
109
|
+
SkyResizeObserverMediaQueryService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyResizeObserverMediaQueryService, deps: [{ token: i1.SkyResizeObserverService }], target: i0.ɵɵFactoryTarget.Injectable });
|
110
|
+
SkyResizeObserverMediaQueryService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyResizeObserverMediaQueryService, providedIn: 'any' });
|
111
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyResizeObserverMediaQueryService, decorators: [{
|
112
|
+
type: Injectable,
|
113
|
+
args: [{
|
114
|
+
providedIn: 'any',
|
115
|
+
}]
|
116
|
+
}], ctorParameters: function () { return [{ type: i1.SkyResizeObserverService }]; } });
|
117
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzaXplLW9ic2VydmVyLW1lZGlhLXF1ZXJ5LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvY29yZS9zcmMvbGliL21vZHVsZXMvcmVzaXplLW9ic2VydmVyL3Jlc2l6ZS1vYnNlcnZlci1tZWRpYS1xdWVyeS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBYyxVQUFVLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFFbEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxPQUFPLEVBQWdCLE1BQU0sTUFBTSxDQUFDO0FBQzVELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUzQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUd2RSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7O0FBRXJFOztHQUVHO0FBSUgsTUFBTSxPQUFPLGtDQUFrQztJQW9DN0MsWUFBb0IscUJBQStDO1FBQS9DLDBCQUFxQixHQUFyQixxQkFBcUIsQ0FBMEI7UUE1QjNELGlCQUFZLEdBR2Q7WUFDSjtnQkFDRSxLQUFLLEVBQUUsQ0FBQyxLQUFhLEVBQUUsRUFBRSxDQUFDLEtBQUssSUFBSSxHQUFHO2dCQUN0QyxJQUFJLEVBQUUsbUJBQW1CLENBQUMsRUFBRTthQUM3QjtZQUNEO2dCQUNFLEtBQUssRUFBRSxDQUFDLEtBQWEsRUFBRSxFQUFFLENBQUMsS0FBSyxHQUFHLEdBQUcsSUFBSSxLQUFLLElBQUksR0FBRztnQkFDckQsSUFBSSxFQUFFLG1CQUFtQixDQUFDLEVBQUU7YUFDN0I7WUFDRDtnQkFDRSxLQUFLLEVBQUUsQ0FBQyxLQUFhLEVBQUUsRUFBRSxDQUFDLEtBQUssR0FBRyxHQUFHLElBQUksS0FBSyxJQUFJLElBQUk7Z0JBQ3RELElBQUksRUFBRSxtQkFBbUIsQ0FBQyxFQUFFO2FB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UUFDbkMsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNwRSxFQUFFLElBQUksQ0FBQztJQUNYLENBQUM7OytIQS9HVSxrQ0FBa0M7bUlBQWxDLGtDQUFrQyxjQUZqQyxLQUFLOzJGQUVOLGtDQUFrQztrQkFIOUMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsS0FBSztpQkFDbEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbGVtZW50UmVmLCBJbmplY3RhYmxlLCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgUmVwbGF5U3ViamVjdCwgU3ViamVjdCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IFNreU1lZGlhQnJlYWtwb2ludHMgfSBmcm9tICcuLi9tZWRpYS1xdWVyeS9tZWRpYS1icmVha3BvaW50cyc7XG5pbXBvcnQgeyBTa3lNZWRpYVF1ZXJ5TGlzdGVuZXIgfSBmcm9tICcuLi9tZWRpYS1xdWVyeS9tZWRpYS1xdWVyeS1saXN0ZW5lcic7XG5cbmltcG9ydCB7IFNreVJlc2l6ZU9ic2VydmVyU2VydmljZSB9IGZyb20gJy4vcmVzaXplLW9ic2VydmVyLnNlcnZpY2UnO1xuXG4vKipcbiAqIEFjdHMgbGlrZSBgU2t5TWVkaWFRdWVyeVNlcnZpY2VgIGZvciBhIGNvbnRhaW5lciBlbGVtZW50LCBlbWl0dGluZyB0aGUgc2FtZSByZXNwb25zaXZlIGJyZWFrcG9pbnRzLlxuICovXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdhbnknLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lSZXNpemVPYnNlcnZlck1lZGlhUXVlcnlTZXJ2aWNlIGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIGN1cnJlbnQgYnJlYWtwb2ludC5cbiAgICovXG4gIHB1YmxpYyBnZXQgY3VycmVudCgpOiBTa3lNZWRpYUJyZWFrcG9pbnRzIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5fY3VycmVudEJyZWFrcG9pbnQ7XG4gIH1cblxuICBwcml2YXRlIF9icmVha3BvaW50czoge1xuICAgIGNoZWNrOiAod2lkdGg6IG51bWJlcikgPT4gYm9vbGVhbjtcbiAgICBuYW1lOiBTa3lNZWRpYUJyZWFrcG9pbnRzO1xuICB9W10gPSBbXG4gICAge1xuICAgICAgY2hlY2s6ICh3aWR0aDogbnVtYmVyKSA9PiB3aWR0aCA8PSA3NjcsXG4gICAgICBuYW1lOiBTa3lNZWRpYUJyZWFrcG9pbnRzLnhzLFxuICAgIH0sXG4gICAge1xuICAgICAgY2hlY2s6ICh3aWR0aDogbnVtYmVyKSA9PiB3aWR0aCA+IDc2NyAmJiB3aWR0aCA8PSA5OTEsXG4gICAgICBuYW1lOiBTa3lNZWRpYUJyZWFrcG9pbnRzLnNtLFxuICAgIH0sXG4gICAge1xuICAgICAgY2hlY2s6ICh3aWR0aDogbnVtYmVyKSA9PiB3aWR0aCA+IDk5MSAmJiB3aWR0aCA8PSAxMTk5LFxuICAgICAgbmFtZTogU2t5TWVkaWFCcmVha3BvaW50cy5tZCxcbiAgICB9LFxuICAgIHtcbiAgICAgIGNoZWNrOiAod2lkdGg6IG51bWJlcikgPT4gd2lkdGggPiAxMTk5LFxuICAgICAgbmFtZTogU2t5TWVkaWFCcmVha3BvaW50cy5sZyxcbiAgICB9LFxuICBdO1xuICBwcml2YXRlIF9jdXJyZW50QnJlYWtwb2ludE9ic2VydmFibGUgPSBuZXcgUmVwbGF5U3ViamVjdDxcbiAgICBTa3lNZWRpYUJyZWFrcG9pbnRzIHwgdW5kZWZpbmVkXG4gID4oMSk7XG4gIHByaXZhdGUgX2N1cnJlbnRCcmVha3BvaW50OiBTa3lNZWRpYUJyZWFrcG9pbnRzO1xuICBwcml2YXRlIF9zdG9wTGlzdGVuaW5nID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgcHJpdmF0ZSBfdGFyZ2V0PzogRWxlbWVudFJlZjtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlc2l6ZU9ic2VydmVyU2VydmljZTogU2t5UmVzaXplT2JzZXJ2ZXJTZXJ2aWNlKSB7XG4gICAgdGhpcy5fc3RvcExpc3RlbmluZy5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5fdGFyZ2V0ID0gdW5kZWZpbmVkO1xuICAgICAgdGhpcy51cGRhdGVCcmVha3BvaW50KHVuZGVmaW5lZCk7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5fc3RvcExpc3RlbmluZy5uZXh0KCk7XG4gICAgdGhpcy5fY3VycmVudEJyZWFrcG9pbnQgPSB1bmRlZmluZWQ7XG4gICAgdGhpcy5fc3RvcExpc3RlbmluZy5jb21wbGV0ZSgpO1xuICAgIHRoaXMuX2N1cnJlbnRCcmVha3BvaW50T2JzZXJ2YWJsZS5jb21wbGV0ZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgcHVibGljIGRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5uZ09uRGVzdHJveSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIGNvbnRhaW5lciBlbGVtZW50IHRvIHdhdGNoLiBUaGUgYFNreVJlc2l6ZU9ic2VydmVyTWVkaWFRdWVyeVNlcnZpY2VgIHdpbGwgb25seSBvYnNlcnZlIG9uZSBlbGVtZW50IGF0IGFcbiAgICogdGltZS4gQW55IHByZXZpb3VzIHN1YnNjcmlwdGlvbnMgd2lsbCBiZSB1bnN1YnNjcmliZWQgd2hlbiBhIG5ldyBlbGVtZW50IGlzIG9ic2VydmVkLlxuICAgKi9cbiAgcHVibGljIG9ic2VydmUoZWxlbWVudDogRWxlbWVudFJlZik6IFNreVJlc2l6ZU9ic2VydmVyTWVkaWFRdWVyeVNlcnZpY2Uge1xuICAgIGlmICh0aGlzLl90YXJnZXQpIHtcbiAgICAgIGlmICh0aGlzLl90YXJnZXQgPT09IGVsZW1lbnQpIHtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICB9XG4gICAgICB0aGlzLl9zdG9wTGlzdGVuaW5nLm5leHQoKTtcbiAgICB9XG4gICAgdGhpcy5fdGFyZ2V0ID0gZWxlbWVudDtcbiAgICBjb25zdCB3aWR0aCA9IChlbGVtZW50Lm5hdGl2ZUVsZW1lbnQgYXMgSFRNTEVsZW1lbnQpLm9mZnNldFdpZHRoO1xuICAgIGlmICh3aWR0aCkge1xuICAgICAgY29uc3QgYnJlYWtwb2ludCA9IHRoaXMuY2hlY2tCcmVha3BvaW50KHdpZHRoKTtcbiAgICAgIHRoaXMudXBkYXRlQnJlYWtwb2ludChicmVha3BvaW50KTtcbiAgICB9XG4gICAgdGhpcy5yZXNpemVPYnNlcnZlclNlcnZpY2VcbiAgICAgIC5vYnNlcnZlKGVsZW1lbnQpXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5fc3RvcExpc3RlbmluZykpXG4gICAgICAuc3Vic2NyaWJlKCh2YWx1ZSkgPT4ge1xuICAgICAgICBjb25zdCBicmVha3BvaW50ID0gdGhpcy5jaGVja0JyZWFrcG9pbnQodmFsdWUuY29udGVudFJlY3Qud2lkdGgpO1xuICAgICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgICAgICBpZiAoYnJlYWtwb2ludCAhPT0gdGhpcy5fY3VycmVudEJyZWFrcG9pbnQpIHtcbiAgICAgICAgICB0aGlzLnVwZGF0ZUJyZWFrcG9pbnQoYnJlYWtwb2ludCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIFN0b3Agd2F0Y2hpbmcgdGhlIGNvbnRhaW5lciBlbGVtZW50LlxuICAgKi9cbiAgcHVibGljIHVub2JzZXJ2ZSgpOiB2b2lkIHtcbiAgICB0aGlzLl9zdG9wTGlzdGVuaW5nLm5leHQoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTdWJzY3JpYmVzIHRvIGVsZW1lbnQgc2l6ZSBjaGFuZ2VzIHRoYXQgY3Jvc3MgYnJlYWtwb2ludHMuXG4gICAqL1xuICBwdWJsaWMgc3Vic2NyaWJlKGxpc3RlbmVyOiBTa3lNZWRpYVF1ZXJ5TGlzdGVuZXIpOiBTdWJzY3JpcHRpb24ge1xuICAgIHJldHVybiB0aGlzLl9jdXJyZW50QnJlYWtwb2ludE9ic2VydmFibGVcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLl9zdG9wTGlzdGVuaW5nKSlcbiAgICAgIC5zdWJzY3JpYmUobGlzdGVuZXIpO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVCcmVha3BvaW50KGJyZWFrcG9pbnQ6IFNreU1lZGlhQnJlYWtwb2ludHMpIHtcbiAgICB0aGlzLl9jdXJyZW50QnJlYWtwb2ludCA9IGJyZWFrcG9pbnQ7XG4gICAgdGhpcy5fY3VycmVudEJyZWFrcG9pbnRPYnNlcnZhYmxlLm5leHQoYnJlYWtwb2ludCk7XG4gIH1cblxuICBwcml2YXRlIGNoZWNrQnJlYWtwb2ludCh3aWR0aDogbnVtYmVyKTogU2t5TWVkaWFCcmVha3BvaW50cyB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuX2JyZWFrcG9pbnRzLmZpbmQoKGJyZWFrcG9pbnQpID0+IGJyZWFrcG9pbnQuY2hlY2sod2lkdGgpKVxuICAgICAgPy5uYW1lO1xuICB9XG59XG4iXX0=
|
@@ -0,0 +1,73 @@
|
|
1
|
+
import { Injectable, NgZone } from '@angular/core';
|
2
|
+
import { Subject } from 'rxjs';
|
3
|
+
import { finalize } from 'rxjs/operators';
|
4
|
+
import * as i0 from "@angular/core";
|
5
|
+
/**
|
6
|
+
* Service to create rxjs observables for changes to the content box dimensions of elements.
|
7
|
+
*/
|
8
|
+
export class SkyResizeObserverService {
|
9
|
+
constructor(zone) {
|
10
|
+
this.zone = zone;
|
11
|
+
this._tracking = [];
|
12
|
+
this._resizeObserver = new ResizeObserver((entries) => {
|
13
|
+
entries.forEach((entry) => this.callback(entry));
|
14
|
+
});
|
15
|
+
}
|
16
|
+
ngOnDestroy() {
|
17
|
+
this._resizeObserver.disconnect();
|
18
|
+
}
|
19
|
+
/**
|
20
|
+
* Create rxjs observable to get size changes for an element ref.
|
21
|
+
*/
|
22
|
+
observe(element) {
|
23
|
+
return this.observeAndTrack(element).subjectObservable;
|
24
|
+
}
|
25
|
+
observeAndTrack(element) {
|
26
|
+
const checkTracking = this._tracking.findIndex((value) => {
|
27
|
+
return !value.subject.closed && value.element === element.nativeElement;
|
28
|
+
});
|
29
|
+
if (checkTracking === -1) {
|
30
|
+
this._resizeObserver.observe(element.nativeElement);
|
31
|
+
}
|
32
|
+
const subject = new Subject();
|
33
|
+
const subjectObservable = subject.pipe(finalize(() => {
|
34
|
+
// Are there any other tracking entries still watching this element?
|
35
|
+
const checkTracking = this._tracking.findIndex((value) => {
|
36
|
+
return (value.subject !== subject &&
|
37
|
+
!value.subject.closed &&
|
38
|
+
value.element === element.nativeElement);
|
39
|
+
});
|
40
|
+
if (checkTracking === -1) {
|
41
|
+
this._resizeObserver.unobserve(element.nativeElement);
|
42
|
+
}
|
43
|
+
}));
|
44
|
+
const tracking = {
|
45
|
+
element: element.nativeElement,
|
46
|
+
subject,
|
47
|
+
subjectObservable,
|
48
|
+
};
|
49
|
+
this._tracking.push(tracking);
|
50
|
+
return tracking;
|
51
|
+
}
|
52
|
+
callback(entry) {
|
53
|
+
this._tracking
|
54
|
+
.filter((value) => !(value.subject.closed || value.subject.isStopped))
|
55
|
+
.forEach((value) => {
|
56
|
+
/* istanbul ignore else */
|
57
|
+
if (value.element === entry.target) {
|
58
|
+
this.zone.run(() => {
|
59
|
+
value.subject.next(entry);
|
60
|
+
});
|
61
|
+
}
|
62
|
+
});
|
63
|
+
}
|
64
|
+
}
|
65
|
+
SkyResizeObserverService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyResizeObserverService, deps: [{ token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Injectable });
|
66
|
+
SkyResizeObserverService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyResizeObserverService, providedIn: 'any' });
|
67
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyResizeObserverService, decorators: [{
|
68
|
+
type: Injectable,
|
69
|
+
args: [{
|
70
|
+
providedIn: 'any',
|
71
|
+
}]
|
72
|
+
}], ctorParameters: function () { return [{ type: i0.NgZone }]; } });
|
73
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzaXplLW9ic2VydmVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvY29yZS9zcmMvbGliL21vZHVsZXMvcmVzaXplLW9ic2VydmVyL3Jlc2l6ZS1vYnNlcnZlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBYyxVQUFVLEVBQUUsTUFBTSxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBRTFFLE9BQU8sRUFBYyxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDM0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGdCQUFnQixDQUFDOztBQVExQzs7R0FFRztBQUlILE1BQU0sT0FBTyx3QkFBd0I7SUFJbkMsWUFBb0IsSUFBWTtRQUFaLFNBQUksR0FBSixJQUFJLENBQVE7UUFGeEIsY0FBUyxHQUE2QixFQUFFLENBQUM7UUFHL0MsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLGNBQWMsQ0FDdkMsQ0FBQyxPQUE4QixFQUFFLEVBQUU7WUFDakMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ25ELENBQUMsQ0FDRixDQUFDO0lBQ0osQ0FBQztJQUVNLFdBQVc7UUFDaEIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUNwQyxDQUFDO0lBRUQ7O09BRUc7SUFDSSxPQUFPLENBQUMsT0FBbUI7UUFDaEMsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxDQUFDLGlCQUFpQixDQUFDO0lBQ3pELENBQUM7SUFFTyxlQUFlLENBQUMsT0FBbUI7UUFDekMsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUN2RCxPQUFPLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLElBQUksS0FBSyxDQUFDLE9BQU8sS0FBSyxPQUFPLENBQUMsYUFBYSxDQUFDO1FBQzFFLENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxhQUFhLEtBQUssQ0FBQyxDQUFDLEVBQUU7WUFDeEIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1NBQ3JEO1FBQ0QsTUFBTSxPQUFPLEdBQUcsSUFBSSxPQUFPLEVBQXVCLENBQUM7UUFDbkQsTUFBTSxpQkFBaUIsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUNwQyxRQUFRLENBQUMsR0FBRyxFQUFFO1lBQ1osb0VBQW9FO1lBQ3BFLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7Z0JBQ3ZELE9BQU8sQ0FDTCxLQUFLLENBQUMsT0FBTyxLQUFLLE9BQU87b0JBQ3pCLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNO29CQUNyQixLQUFLLENBQUMsT0FBTyxLQUFLLE9BQU8sQ0FBQyxhQUFhLENBQ3hDLENBQUM7WUFDSixDQUFDLENBQUMsQ0FBQztZQUNILElBQUksYUFBYSxLQUFLLENBQUMsQ0FBQyxFQUFFO2dCQUN4QixJQUFJLENBQUMsZUFBZSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLENBQUM7YUFDdkQ7UUFDSCxDQUFDLENBQUMsQ0FDSCxDQUFDO1FBQ0YsTUFBTSxRQUFRLEdBQUc7WUFDZixPQUFPLEVBQUUsT0FBTyxDQUFDLGFBQWE7WUFDOUIsT0FBTztZQUNQLGlCQUFpQjtTQUNsQixDQUFDO1FBQ0YsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDOUIsT0FBTyxRQUFRLENBQUM7SUFDbEIsQ0FBQztJQUVPLFFBQVEsQ0FBQyxLQUEwQjtRQUN6QyxJQUFJLENBQUMsU0FBUzthQUNYLE1BQU0sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7YUFDckUsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDakIsMEJBQTBCO1lBQzFCLElBQUksS0FBSyxDQUFDLE9BQU8sS0FBSyxLQUFLLENBQUMsTUFBTSxFQUFFO2dCQUNsQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUU7b0JBQ2pCLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUM1QixDQUFDLENBQUMsQ0FBQzthQUNKO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDOztxSEFsRVUsd0JBQXdCO3lIQUF4Qix3QkFBd0IsY0FGdkIsS0FBSzsyRkFFTix3QkFBd0I7a0JBSHBDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLEtBQUs7aUJBQ2xCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRWxlbWVudFJlZiwgSW5qZWN0YWJsZSwgTmdab25lLCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZmluYWxpemUgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbnR5cGUgUmVzaXplT2JzZXJ2ZXJUcmFja2luZyA9IHtcbiAgZWxlbWVudDogRWxlbWVudDtcbiAgc3ViamVjdDogU3ViamVjdDxSZXNpemVPYnNlcnZlckVudHJ5PjtcbiAgc3ViamVjdE9ic2VydmFibGU6IE9ic2VydmFibGU8UmVzaXplT2JzZXJ2ZXJFbnRyeT47XG59O1xuXG4vKipcbiAqIFNlcnZpY2UgdG8gY3JlYXRlIHJ4anMgb2JzZXJ2YWJsZXMgZm9yIGNoYW5nZXMgdG8gdGhlIGNvbnRlbnQgYm94IGRpbWVuc2lvbnMgb2YgZWxlbWVudHMuXG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ2FueScsXG59KVxuZXhwb3J0IGNsYXNzIFNreVJlc2l6ZU9ic2VydmVyU2VydmljZSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgX3Jlc2l6ZU9ic2VydmVyOiBSZXNpemVPYnNlcnZlcjtcbiAgcHJpdmF0ZSBfdHJhY2tpbmc6IFJlc2l6ZU9ic2VydmVyVHJhY2tpbmdbXSA9IFtdO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgem9uZTogTmdab25lKSB7XG4gICAgdGhpcy5fcmVzaXplT2JzZXJ2ZXIgPSBuZXcgUmVzaXplT2JzZXJ2ZXIoXG4gICAgICAoZW50cmllczogUmVzaXplT2JzZXJ2ZXJFbnRyeVtdKSA9PiB7XG4gICAgICAgIGVudHJpZXMuZm9yRWFjaCgoZW50cnkpID0+IHRoaXMuY2FsbGJhY2soZW50cnkpKTtcbiAgICAgIH1cbiAgICApO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuX3Jlc2l6ZU9ic2VydmVyLmRpc2Nvbm5lY3QoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgcnhqcyBvYnNlcnZhYmxlIHRvIGdldCBzaXplIGNoYW5nZXMgZm9yIGFuIGVsZW1lbnQgcmVmLlxuICAgKi9cbiAgcHVibGljIG9ic2VydmUoZWxlbWVudDogRWxlbWVudFJlZik6IE9ic2VydmFibGU8UmVzaXplT2JzZXJ2ZXJFbnRyeT4ge1xuICAgIHJldHVybiB0aGlzLm9ic2VydmVBbmRUcmFjayhlbGVtZW50KS5zdWJqZWN0T2JzZXJ2YWJsZTtcbiAgfVxuXG4gIHByaXZhdGUgb2JzZXJ2ZUFuZFRyYWNrKGVsZW1lbnQ6IEVsZW1lbnRSZWYpOiBSZXNpemVPYnNlcnZlclRyYWNraW5nIHtcbiAgICBjb25zdCBjaGVja1RyYWNraW5nID0gdGhpcy5fdHJhY2tpbmcuZmluZEluZGV4KCh2YWx1ZSkgPT4ge1xuICAgICAgcmV0dXJuICF2YWx1ZS5zdWJqZWN0LmNsb3NlZCAmJiB2YWx1ZS5lbGVtZW50ID09PSBlbGVtZW50Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgfSk7XG4gICAgaWYgKGNoZWNrVHJhY2tpbmcgPT09IC0xKSB7XG4gICAgICB0aGlzLl9yZXNpemVPYnNlcnZlci5vYnNlcnZlKGVsZW1lbnQubmF0aXZlRWxlbWVudCk7XG4gICAgfVxuICAgIGNvbnN0IHN1YmplY3QgPSBuZXcgU3ViamVjdDxSZXNpemVPYnNlcnZlckVudHJ5PigpO1xuICAgIGNvbnN0IHN1YmplY3RPYnNlcnZhYmxlID0gc3ViamVjdC5waXBlKFxuICAgICAgZmluYWxpemUoKCkgPT4ge1xuICAgICAgICAvLyBBcmUgdGhlcmUgYW55IG90aGVyIHRyYWNraW5nIGVudHJpZXMgc3RpbGwgd2F0Y2hpbmcgdGhpcyBlbGVtZW50P1xuICAgICAgICBjb25zdCBjaGVja1RyYWNraW5nID0gdGhpcy5fdHJhY2tpbmcuZmluZEluZGV4KCh2YWx1ZSkgPT4ge1xuICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICB2YWx1ZS5zdWJqZWN0ICE9PSBzdWJqZWN0ICYmXG4gICAgICAgICAgICAhdmFsdWUuc3ViamVjdC5jbG9zZWQgJiZcbiAgICAgICAgICAgIHZhbHVlLmVsZW1lbnQgPT09IGVsZW1lbnQubmF0aXZlRWxlbWVudFxuICAgICAgICAgICk7XG4gICAgICAgIH0pO1xuICAgICAgICBpZiAoY2hlY2tUcmFja2luZyA9PT0gLTEpIHtcbiAgICAgICAgICB0aGlzLl9yZXNpemVPYnNlcnZlci51bm9ic2VydmUoZWxlbWVudC5uYXRpdmVFbGVtZW50KTtcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICApO1xuICAgIGNvbnN0IHRyYWNraW5nID0ge1xuICAgICAgZWxlbWVudDogZWxlbWVudC5uYXRpdmVFbGVtZW50LFxuICAgICAgc3ViamVjdCxcbiAgICAgIHN1YmplY3RPYnNlcnZhYmxlLFxuICAgIH07XG4gICAgdGhpcy5fdHJhY2tpbmcucHVzaCh0cmFja2luZyk7XG4gICAgcmV0dXJuIHRyYWNraW5nO1xuICB9XG5cbiAgcHJpdmF0ZSBjYWxsYmFjayhlbnRyeTogUmVzaXplT2JzZXJ2ZXJFbnRyeSkge1xuICAgIHRoaXMuX3RyYWNraW5nXG4gICAgICAuZmlsdGVyKCh2YWx1ZSkgPT4gISh2YWx1ZS5zdWJqZWN0LmNsb3NlZCB8fCB2YWx1ZS5zdWJqZWN0LmlzU3RvcHBlZCkpXG4gICAgICAuZm9yRWFjaCgodmFsdWUpID0+IHtcbiAgICAgICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICAgICAgaWYgKHZhbHVlLmVsZW1lbnQgPT09IGVudHJ5LnRhcmdldCkge1xuICAgICAgICAgIHRoaXMuem9uZS5ydW4oKCkgPT4ge1xuICAgICAgICAgICAgdmFsdWUuc3ViamVjdC5uZXh0KGVudHJ5KTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cbn1cbiJdfQ==
|