@skyux/core 9.0.0-alpha.8 → 9.0.0-beta.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/documentation.json +1402 -1347
- package/esm2022/index.mjs +3 -3
- package/esm2022/lib/modules/affix/affix.service.mjs +9 -9
- package/esm2022/lib/modules/affix/affixer.mjs +45 -35
- package/esm2022/lib/modules/dock/dock.component.mjs +16 -23
- package/esm2022/lib/modules/dock/dock.module.mjs +7 -11
- package/esm2022/lib/modules/dock/dock.service.mjs +3 -3
- package/esm2022/lib/modules/dynamic-component/dynamic-component.service.mjs +18 -3
- package/esm2022/lib/modules/numeric/numeric.service.mjs +3 -3
- package/esm2022/lib/modules/overlay/overlay-config.mjs +1 -1
- package/esm2022/lib/modules/overlay/overlay.component.mjs +39 -40
- package/esm2022/lib/modules/overlay/overlay.module.mjs +7 -9
- package/esm2022/lib/modules/overlay/overlay.service.mjs +27 -5
- package/esm2022/lib/modules/shared/sky-core-resources.module.mjs +4 -2
- package/fesm2022/skyux-core.mjs +365 -326
- package/fesm2022/skyux-core.mjs.map +1 -1
- package/index.d.ts +2 -2
- package/lib/modules/affix/affix.service.d.ts +1 -2
- package/lib/modules/affix/affixer.d.ts +3 -2
- package/lib/modules/dock/dock.component.d.ts +2 -4
- package/lib/modules/dock/dock.module.d.ts +4 -3
- package/lib/modules/dynamic-component/dynamic-component.service.d.ts +9 -0
- package/lib/modules/overlay/overlay-config.d.ts +5 -0
- package/lib/modules/overlay/overlay.component.d.ts +4 -8
- package/lib/modules/overlay/overlay.module.d.ts +4 -3
- package/lib/modules/overlay/overlay.service.d.ts +12 -0
- package/package.json +2 -2
package/fesm2022/skyux-core.mjs
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
import * as i0 from '@angular/core';
|
2
|
-
import { NgModule, Injectable, EventEmitter, Directive, Input, Output,
|
3
|
-
import * as
|
2
|
+
import { NgModule, Injectable, inject, RendererFactory2, NgZone, EventEmitter, Directive, Input, Output, EnvironmentInjector, createEnvironmentInjector, createComponent, ChangeDetectorRef, ElementRef, ViewContainerRef, Component, ChangeDetectionStrategy, ViewChild, InjectionToken, Optional, Inject, Pipe, HostBinding, ApplicationRef } from '@angular/core';
|
3
|
+
import * as i1$1 from '@angular/common';
|
4
4
|
import { CommonModule, DOCUMENT } from '@angular/common';
|
5
|
-
import { Subject,
|
5
|
+
import { Subject, Subscription, ReplaySubject, fromEvent, BehaviorSubject, Observable, of, concat, animationFrameScheduler } from 'rxjs';
|
6
6
|
import { takeUntil, debounceTime, finalize, switchMap, map } from 'rxjs/operators';
|
7
|
+
import { ViewportRuler } from '@angular/cdk/overlay';
|
7
8
|
import * as i1 from '@skyux/i18n';
|
8
|
-
import { getLibStringForLocale, SkyI18nModule, SKY_LIB_RESOURCES_PROVIDERS, SkyIntlNumberFormatStyle, SkyIntlNumberFormatter } from '@skyux/i18n';
|
9
|
-
import
|
10
|
-
import
|
11
|
-
import * as i1$1 from '@angular/platform-browser';
|
9
|
+
import { SkyLibResourcesService, getLibStringForLocale, SkyI18nModule, SKY_LIB_RESOURCES_PROVIDERS, SkyIntlNumberFormatStyle, SkyIntlNumberFormatter } from '@skyux/i18n';
|
10
|
+
import { Router, NavigationStart } from '@angular/router';
|
11
|
+
import * as i1$2 from '@angular/platform-browser';
|
12
12
|
|
13
13
|
/**
|
14
14
|
* @deprecated The `SkyCoreAdapterService` no longer needs the `SkyCoreAdapterModule`.
|
@@ -431,12 +431,17 @@ class SkyAffixer {
|
|
431
431
|
#placementChange;
|
432
432
|
#placementChangeObs;
|
433
433
|
#renderer;
|
434
|
-
#
|
435
|
-
#
|
434
|
+
#scrollChange = new Subject();
|
435
|
+
#viewportListeners;
|
436
|
+
#viewportRuler;
|
437
|
+
#zone;
|
436
438
|
#_config = DEFAULT_AFFIX_CONFIG;
|
437
|
-
|
439
|
+
#scrollChangeListener = () => this.#scrollChange.next();
|
440
|
+
constructor(affixedElement, renderer, viewportRuler, zone) {
|
438
441
|
this.#affixedElement = affixedElement;
|
439
442
|
this.#renderer = renderer;
|
443
|
+
this.#viewportRuler = viewportRuler;
|
444
|
+
this.#zone = zone;
|
440
445
|
this.#offsetChange = new Subject();
|
441
446
|
this.#overflowScroll = new Subject();
|
442
447
|
this.#placementChange = new Subject();
|
@@ -456,8 +461,7 @@ class SkyAffixer {
|
|
456
461
|
this.#overflowParents = getOverflowParents(baseElement);
|
457
462
|
this.#affix();
|
458
463
|
if (this.#config.isSticky) {
|
459
|
-
this.#
|
460
|
-
this.#addResizeListener();
|
464
|
+
this.#addViewportListeners();
|
461
465
|
}
|
462
466
|
}
|
463
467
|
getConfig() {
|
@@ -479,6 +483,7 @@ class SkyAffixer {
|
|
479
483
|
this.#placementChange.complete();
|
480
484
|
this.#offsetChange.complete();
|
481
485
|
this.#overflowScroll.complete();
|
486
|
+
this.#scrollChange.complete();
|
482
487
|
}
|
483
488
|
#affix() {
|
484
489
|
const offset = this.#getOffset();
|
@@ -502,8 +507,11 @@ class SkyAffixer {
|
|
502
507
|
top: 0,
|
503
508
|
};
|
504
509
|
if (this.#config.position === 'absolute') {
|
505
|
-
|
506
|
-
|
510
|
+
const { top, left } = this.#viewportRuler.getViewportScrollPosition();
|
511
|
+
autoFitOverflowOffset.top = (autoFitOverflowOffset.top || 0) + top;
|
512
|
+
autoFitOverflowOffset.left = (autoFitOverflowOffset.left || 0) + left;
|
513
|
+
autoFitOverflowOffset.bottom = (autoFitOverflowOffset.bottom || 0) + top;
|
514
|
+
autoFitOverflowOffset.right = (autoFitOverflowOffset.right || 0) + left;
|
507
515
|
}
|
508
516
|
do {
|
509
517
|
offset = this.#getPreferredOffset(placement);
|
@@ -545,8 +553,11 @@ class SkyAffixer {
|
|
545
553
|
height: baseDomRect.height,
|
546
554
|
};
|
547
555
|
if (this.#config.position === 'absolute') {
|
548
|
-
|
549
|
-
baseRect.
|
556
|
+
const { left, top } = this.#viewportRuler.getViewportScrollPosition();
|
557
|
+
baseRect.top += top;
|
558
|
+
baseRect.left += left;
|
559
|
+
baseRect.bottom += top;
|
560
|
+
baseRect.right += left;
|
550
561
|
}
|
551
562
|
return baseRect;
|
552
563
|
}
|
@@ -706,8 +717,7 @@ class SkyAffixer {
|
|
706
717
|
}
|
707
718
|
}
|
708
719
|
#reset() {
|
709
|
-
this.#
|
710
|
-
this.#removeResizeListener();
|
720
|
+
this.#removeViewportListeners();
|
711
721
|
this.#overflowParents = [];
|
712
722
|
this.#config =
|
713
723
|
this.#baseElement =
|
@@ -739,47 +749,46 @@ class SkyAffixer {
|
|
739
749
|
bottom: baseRect.bottom,
|
740
750
|
}, this.#config.autoFitOverflowOffset);
|
741
751
|
}
|
742
|
-
#
|
743
|
-
this.#
|
744
|
-
|
745
|
-
|
746
|
-
|
747
|
-
|
752
|
+
#addViewportListeners() {
|
753
|
+
this.#viewportListeners = new Subscription();
|
754
|
+
// Resize and orientation changes.
|
755
|
+
this.#viewportListeners.add(this.#viewportRuler.change().subscribe(() => {
|
756
|
+
this.#affix();
|
757
|
+
}));
|
758
|
+
this.#viewportListeners.add(this.#scrollChange.subscribe(() => {
|
759
|
+
this.#affix();
|
760
|
+
this.#overflowScroll.next();
|
761
|
+
}));
|
762
|
+
// Listen for scroll events on the window, visual viewport, and any overflow parents.
|
763
|
+
// https://developer.chrome.com/blog/visual-viewport-api/#events-only-fire-when-the-visual-viewport-changes
|
764
|
+
this.#zone.runOutsideAngular(() => {
|
765
|
+
[window, window.visualViewport, ...this.#overflowParents].forEach((parentElement) => {
|
766
|
+
parentElement?.addEventListener('scroll', this.#scrollChangeListener);
|
748
767
|
});
|
749
768
|
});
|
750
769
|
}
|
751
|
-
#
|
752
|
-
this.#
|
753
|
-
|
754
|
-
|
755
|
-
|
756
|
-
|
757
|
-
|
758
|
-
}
|
759
|
-
}
|
760
|
-
#removeScrollListeners() {
|
761
|
-
if (this.#scrollListeners) {
|
762
|
-
// Remove renderer-generated listeners by calling the listener itself.
|
763
|
-
// https://github.com/angular/angular/issues/9368#issuecomment-227199778
|
764
|
-
this.#scrollListeners.forEach((listener) => listener());
|
765
|
-
this.#scrollListeners = undefined;
|
766
|
-
}
|
770
|
+
#removeViewportListeners() {
|
771
|
+
this.#viewportListeners?.unsubscribe();
|
772
|
+
this.#zone.runOutsideAngular(() => {
|
773
|
+
[window, window.visualViewport, ...this.#overflowParents].forEach((parentElement) => {
|
774
|
+
parentElement?.removeEventListener('scroll', this.#scrollChangeListener);
|
775
|
+
});
|
776
|
+
});
|
767
777
|
}
|
768
778
|
}
|
769
779
|
|
770
780
|
class SkyAffixService {
|
771
|
-
#renderer;
|
772
|
-
|
773
|
-
|
774
|
-
}
|
781
|
+
#renderer = inject(RendererFactory2).createRenderer(undefined, null);
|
782
|
+
#viewportRuler = inject(ViewportRuler);
|
783
|
+
#zone = inject(NgZone);
|
775
784
|
/**
|
776
785
|
* Creates an instance of [[SkyAffixer]].
|
777
786
|
* @param affixed The element to be affixed.
|
778
787
|
*/
|
779
788
|
createAffixer(affixed) {
|
780
|
-
return new SkyAffixer(affixed.nativeElement, this.#renderer);
|
789
|
+
return new SkyAffixer(affixed.nativeElement, this.#renderer, this.#viewportRuler, this.#zone);
|
781
790
|
}
|
782
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.1", ngImport: i0, type: SkyAffixService, deps: [
|
791
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.1", ngImport: i0, type: SkyAffixService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
783
792
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.1", ngImport: i0, type: SkyAffixService, providedIn: 'root' }); }
|
784
793
|
}
|
785
794
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.1", ngImport: i0, type: SkyAffixService, decorators: [{
|
@@ -787,7 +796,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.1", ngImpor
|
|
787
796
|
args: [{
|
788
797
|
providedIn: 'root',
|
789
798
|
}]
|
790
|
-
}]
|
799
|
+
}] });
|
791
800
|
|
792
801
|
/**
|
793
802
|
* Affixes the host element to a base element.
|
@@ -988,6 +997,181 @@ var SkyDockLocation;
|
|
988
997
|
SkyDockLocation[SkyDockLocation["ElementBottom"] = 2] = "ElementBottom";
|
989
998
|
})(SkyDockLocation || (SkyDockLocation = {}));
|
990
999
|
|
1000
|
+
/**
|
1001
|
+
* @deprecated The `SkyDockModule` is no longer needed and can be removed from your application.
|
1002
|
+
*/
|
1003
|
+
class SkyDockModule {
|
1004
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.1", ngImport: i0, type: SkyDockModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
1005
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.1", ngImport: i0, type: SkyDockModule }); }
|
1006
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.1", ngImport: i0, type: SkyDockModule }); }
|
1007
|
+
}
|
1008
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.1", ngImport: i0, type: SkyDockModule, decorators: [{
|
1009
|
+
type: NgModule,
|
1010
|
+
args: [{}]
|
1011
|
+
}] });
|
1012
|
+
|
1013
|
+
/**
|
1014
|
+
* The location on the page where the dynamic component should be rendered.
|
1015
|
+
*/
|
1016
|
+
var SkyDynamicComponentLocation;
|
1017
|
+
(function (SkyDynamicComponentLocation) {
|
1018
|
+
/**
|
1019
|
+
* Renders the dynamic component before a given element.
|
1020
|
+
*/
|
1021
|
+
SkyDynamicComponentLocation[SkyDynamicComponentLocation["BeforeElement"] = 0] = "BeforeElement";
|
1022
|
+
/**
|
1023
|
+
* Renders the dynamic component as the last element inside the BODY element.
|
1024
|
+
*/
|
1025
|
+
SkyDynamicComponentLocation[SkyDynamicComponentLocation["BodyBottom"] = 1] = "BodyBottom";
|
1026
|
+
/**
|
1027
|
+
* Renders the dynamic component as the first element inside the BODY element.
|
1028
|
+
*/
|
1029
|
+
SkyDynamicComponentLocation[SkyDynamicComponentLocation["BodyTop"] = 2] = "BodyTop";
|
1030
|
+
/**
|
1031
|
+
* Renders the dynamic component as the last element inside a given element.
|
1032
|
+
*/
|
1033
|
+
SkyDynamicComponentLocation[SkyDynamicComponentLocation["ElementBottom"] = 3] = "ElementBottom";
|
1034
|
+
/**
|
1035
|
+
* Renders the dynamic component as the first element inside a given element.
|
1036
|
+
*/
|
1037
|
+
SkyDynamicComponentLocation[SkyDynamicComponentLocation["ElementTop"] = 4] = "ElementTop";
|
1038
|
+
})(SkyDynamicComponentLocation || (SkyDynamicComponentLocation = {}));
|
1039
|
+
|
1040
|
+
/**
|
1041
|
+
* @internal
|
1042
|
+
*/
|
1043
|
+
function getWindow() {
|
1044
|
+
return window;
|
1045
|
+
}
|
1046
|
+
/**
|
1047
|
+
* The application window reference service references the global window variable.
|
1048
|
+
* After users inject SkyAppWindowRef into a component, they can use the service to interact with
|
1049
|
+
* window properties and event handlers by referencing its nativeWindow property.
|
1050
|
+
*/
|
1051
|
+
class SkyAppWindowRef {
|
1052
|
+
/**
|
1053
|
+
* The global `window` variable.
|
1054
|
+
*/
|
1055
|
+
get nativeWindow() {
|
1056
|
+
return getWindow();
|
1057
|
+
}
|
1058
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.1", ngImport: i0, type: SkyAppWindowRef, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
1059
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.1", ngImport: i0, type: SkyAppWindowRef, providedIn: 'root' }); }
|
1060
|
+
}
|
1061
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.1", ngImport: i0, type: SkyAppWindowRef, decorators: [{
|
1062
|
+
type: Injectable,
|
1063
|
+
args: [{
|
1064
|
+
providedIn: 'root',
|
1065
|
+
}]
|
1066
|
+
}] });
|
1067
|
+
|
1068
|
+
/**
|
1069
|
+
* Angular service for creating and rendering a dynamic component.
|
1070
|
+
* @internal
|
1071
|
+
*/
|
1072
|
+
class SkyDynamicComponentService {
|
1073
|
+
#applicationRef;
|
1074
|
+
#renderer;
|
1075
|
+
#windowRef;
|
1076
|
+
#environmentInjector = inject(EnvironmentInjector);
|
1077
|
+
constructor(applicationRef, windowRef, rendererFactory) {
|
1078
|
+
this.#applicationRef = applicationRef;
|
1079
|
+
this.#windowRef = windowRef;
|
1080
|
+
// Based on suggestions from https://github.com/angular/angular/issues/17824
|
1081
|
+
// for accessing an instance of Renderer2 in a service since Renderer2 can't
|
1082
|
+
// be injected into a service. Passing undefined for both parameters results
|
1083
|
+
// in the default renderer which is what we want here.
|
1084
|
+
this.#renderer = rendererFactory.createRenderer(undefined, null);
|
1085
|
+
}
|
1086
|
+
/**
|
1087
|
+
* Creates an instance of the specified component and adds it to the specified location
|
1088
|
+
* on the page.
|
1089
|
+
*/
|
1090
|
+
createComponent(componentType, options) {
|
1091
|
+
options ||= {
|
1092
|
+
location: SkyDynamicComponentLocation.BodyBottom,
|
1093
|
+
};
|
1094
|
+
const environmentInjector = createEnvironmentInjector(options.providers ?? [], options.environmentInjector ?? this.#environmentInjector);
|
1095
|
+
let componentRef;
|
1096
|
+
if (options.viewContainerRef) {
|
1097
|
+
componentRef = options.viewContainerRef.createComponent(componentType, {
|
1098
|
+
environmentInjector,
|
1099
|
+
});
|
1100
|
+
}
|
1101
|
+
else {
|
1102
|
+
componentRef = createComponent(componentType, {
|
1103
|
+
environmentInjector,
|
1104
|
+
});
|
1105
|
+
this.#applicationRef.attachView(componentRef.hostView);
|
1106
|
+
const el = this.#getRootNode(componentRef);
|
1107
|
+
const bodyEl = this.#windowRef.nativeWindow.document.body;
|
1108
|
+
switch (options.location) {
|
1109
|
+
case SkyDynamicComponentLocation.BeforeElement:
|
1110
|
+
if (!options.referenceEl) {
|
1111
|
+
throw new Error('[SkyDynamicComponentService] Could not create a component at location `SkyDynamicComponentLocation.BeforeElement` because a reference element was not provided.');
|
1112
|
+
}
|
1113
|
+
this.#renderer.insertBefore(options.referenceEl.parentElement, el, options.referenceEl);
|
1114
|
+
break;
|
1115
|
+
case SkyDynamicComponentLocation.ElementTop:
|
1116
|
+
if (!options.referenceEl) {
|
1117
|
+
throw new Error('[SkyDynamicComponentService] Could not create a component at location `SkyDynamicComponentLocation.ElementTop` because a reference element was not provided.');
|
1118
|
+
}
|
1119
|
+
this.#renderer.insertBefore(options.referenceEl, el, options.referenceEl.firstChild);
|
1120
|
+
break;
|
1121
|
+
case SkyDynamicComponentLocation.ElementBottom:
|
1122
|
+
this.#renderer.appendChild(options.referenceEl, el);
|
1123
|
+
break;
|
1124
|
+
case SkyDynamicComponentLocation.BodyTop:
|
1125
|
+
this.#renderer.insertBefore(bodyEl, el, bodyEl.firstChild);
|
1126
|
+
break;
|
1127
|
+
default:
|
1128
|
+
this.#renderer.appendChild(bodyEl, el);
|
1129
|
+
break;
|
1130
|
+
}
|
1131
|
+
}
|
1132
|
+
return componentRef;
|
1133
|
+
}
|
1134
|
+
/**
|
1135
|
+
* Removes a component ref from the page
|
1136
|
+
* @param componentRef Component ref for the component being removed
|
1137
|
+
*/
|
1138
|
+
removeComponent(componentRef) {
|
1139
|
+
if (!componentRef) {
|
1140
|
+
return;
|
1141
|
+
}
|
1142
|
+
this.#applicationRef.detachView(componentRef.hostView);
|
1143
|
+
componentRef.destroy();
|
1144
|
+
}
|
1145
|
+
#getRootNode(componentRef) {
|
1146
|
+
// Technique for retrieving the component's root node taken from here:
|
1147
|
+
// https://malcoded.com/posts/angular-dynamic-components
|
1148
|
+
return componentRef.hostView.rootNodes[0];
|
1149
|
+
}
|
1150
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.1", ngImport: i0, type: SkyDynamicComponentService, deps: [{ token: i0.ApplicationRef }, { token: SkyAppWindowRef }, { token: i0.RendererFactory2 }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
1151
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.1", ngImport: i0, type: SkyDynamicComponentService, providedIn: 'root' }); }
|
1152
|
+
}
|
1153
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.1", ngImport: i0, type: SkyDynamicComponentService, decorators: [{
|
1154
|
+
type: Injectable,
|
1155
|
+
args: [{
|
1156
|
+
providedIn: 'root',
|
1157
|
+
}]
|
1158
|
+
}], ctorParameters: function () { return [{ type: i0.ApplicationRef }, { type: SkyAppWindowRef }, { type: i0.RendererFactory2 }]; } });
|
1159
|
+
/**
|
1160
|
+
* Angular service for creating and rendering a dynamic component.
|
1161
|
+
* @internal
|
1162
|
+
* @deprecated Use `SkyDynamicComponentService` to create a standalone component instead.
|
1163
|
+
*/
|
1164
|
+
class SkyDynamicComponentLegacyService extends SkyDynamicComponentService {
|
1165
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.1", ngImport: i0, type: SkyDynamicComponentLegacyService, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
|
1166
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.1", ngImport: i0, type: SkyDynamicComponentLegacyService, providedIn: 'any' }); }
|
1167
|
+
}
|
1168
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.1", ngImport: i0, type: SkyDynamicComponentLegacyService, decorators: [{
|
1169
|
+
type: Injectable,
|
1170
|
+
args: [{
|
1171
|
+
providedIn: 'any',
|
1172
|
+
}]
|
1173
|
+
}] });
|
1174
|
+
|
991
1175
|
/**
|
992
1176
|
* @internal
|
993
1177
|
*/
|
@@ -1098,29 +1282,22 @@ function sortByStackOrder(a, b) {
|
|
1098
1282
|
* @internal
|
1099
1283
|
*/
|
1100
1284
|
class SkyDockComponent {
|
1101
|
-
#changeDetector;
|
1102
|
-
#domAdapter;
|
1103
|
-
#elementRef;
|
1104
|
-
#injector;
|
1105
1285
|
#itemRefs = [];
|
1106
1286
|
#options;
|
1107
|
-
|
1108
|
-
|
1109
|
-
|
1110
|
-
|
1111
|
-
|
1112
|
-
}
|
1287
|
+
#changeDetector = inject(ChangeDetectorRef);
|
1288
|
+
#domAdapter = inject(SkyDockDomAdapterService);
|
1289
|
+
#dynamicComponentSvc = inject(SkyDynamicComponentService);
|
1290
|
+
#elementRef = inject(ElementRef);
|
1291
|
+
#environmentInjector = inject(EnvironmentInjector);
|
1113
1292
|
insertComponent(component, config = {}) {
|
1114
1293
|
/*istanbul ignore if: untestable*/
|
1115
1294
|
if (!this.target) {
|
1116
1295
|
throw Error('[SkyDockComponent] Could not insert the component because the target element could not be found.');
|
1117
1296
|
}
|
1118
|
-
const
|
1119
|
-
|
1120
|
-
|
1121
|
-
|
1122
|
-
const componentRef = this.target.createComponent(component, {
|
1123
|
-
injector,
|
1297
|
+
const componentRef = this.#dynamicComponentSvc.createComponent(component, {
|
1298
|
+
environmentInjector: this.#environmentInjector,
|
1299
|
+
providers: config.providers,
|
1300
|
+
viewContainerRef: this.target,
|
1124
1301
|
});
|
1125
1302
|
const stackOrder = config.stackOrder !== null && config.stackOrder !== undefined
|
1126
1303
|
? config.stackOrder
|
@@ -1182,13 +1359,13 @@ class SkyDockComponent {
|
|
1182
1359
|
}
|
1183
1360
|
return this.#itemRefs[0].stackOrder + 1;
|
1184
1361
|
}
|
1185
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.1", ngImport: i0, type: SkyDockComponent, deps: [
|
1186
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.1", type: SkyDockComponent, selector: "sky-dock", providers: [SkyDockDomAdapterService], viewQueries: [{ propertyName: "target", first: true, predicate: ["target"], descendants: true, read: ViewContainerRef, static: true }], ngImport: i0, template: "<ng-container #target></ng-container>\n", styles: [":host{display:flex;flex-direction:column;width:100%}:host:not(.sky-dock-unbound){position:fixed;left:var(--sky-viewport-left, 0);bottom:var(--sky-viewport-bottom, 0);right:var(--sky-viewport-right, 0);width:auto}:host.sky-dock-sticky{position:sticky}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
1362
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.1", ngImport: i0, type: SkyDockComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
1363
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.1", type: SkyDockComponent, isStandalone: true, selector: "sky-dock", providers: [SkyDockDomAdapterService], viewQueries: [{ propertyName: "target", first: true, predicate: ["target"], descendants: true, read: ViewContainerRef, static: true }], ngImport: i0, template: "<ng-container #target></ng-container>\n", styles: [":host{display:flex;flex-direction:column;width:100%}:host:not(.sky-dock-unbound){position:fixed;left:var(--sky-viewport-left, 0);bottom:var(--sky-viewport-bottom, 0);right:var(--sky-viewport-right, 0);width:auto}:host.sky-dock-sticky{position:sticky}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
1187
1364
|
}
|
1188
1365
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.1", ngImport: i0, type: SkyDockComponent, decorators: [{
|
1189
1366
|
type: Component,
|
1190
|
-
args: [{ selector: 'sky-dock', providers: [SkyDockDomAdapterService], changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container #target></ng-container>\n", styles: [":host{display:flex;flex-direction:column;width:100%}:host:not(.sky-dock-unbound){position:fixed;left:var(--sky-viewport-left, 0);bottom:var(--sky-viewport-bottom, 0);right:var(--sky-viewport-right, 0);width:auto}:host.sky-dock-sticky{position:sticky}\n"] }]
|
1191
|
-
}],
|
1367
|
+
args: [{ standalone: true, selector: 'sky-dock', providers: [SkyDockDomAdapterService], changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container #target></ng-container>\n", styles: [":host{display:flex;flex-direction:column;width:100%}:host:not(.sky-dock-unbound){position:fixed;left:var(--sky-viewport-left, 0);bottom:var(--sky-viewport-bottom, 0);right:var(--sky-viewport-right, 0);width:auto}:host.sky-dock-sticky{position:sticky}\n"] }]
|
1368
|
+
}], propDecorators: { target: [{
|
1192
1369
|
type: ViewChild,
|
1193
1370
|
args: ['target', {
|
1194
1371
|
read: ViewContainerRef,
|
@@ -1196,167 +1373,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.1", ngImpor
|
|
1196
1373
|
}]
|
1197
1374
|
}] } });
|
1198
1375
|
|
1199
|
-
class SkyDockModule {
|
1200
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.1", ngImport: i0, type: SkyDockModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
1201
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.1", ngImport: i0, type: SkyDockModule, declarations: [SkyDockComponent], imports: [CommonModule] }); }
|
1202
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.1", ngImport: i0, type: SkyDockModule, providers: [SkyMutationObserverService], imports: [CommonModule] }); }
|
1203
|
-
}
|
1204
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.1", ngImport: i0, type: SkyDockModule, decorators: [{
|
1205
|
-
type: NgModule,
|
1206
|
-
args: [{
|
1207
|
-
imports: [CommonModule],
|
1208
|
-
declarations: [SkyDockComponent],
|
1209
|
-
providers: [SkyMutationObserverService],
|
1210
|
-
}]
|
1211
|
-
}] });
|
1212
|
-
|
1213
|
-
/**
|
1214
|
-
* The location on the page where the dynamic component should be rendered.
|
1215
|
-
*/
|
1216
|
-
var SkyDynamicComponentLocation;
|
1217
|
-
(function (SkyDynamicComponentLocation) {
|
1218
|
-
/**
|
1219
|
-
* Renders the dynamic component before a given element.
|
1220
|
-
*/
|
1221
|
-
SkyDynamicComponentLocation[SkyDynamicComponentLocation["BeforeElement"] = 0] = "BeforeElement";
|
1222
|
-
/**
|
1223
|
-
* Renders the dynamic component as the last element inside the BODY element.
|
1224
|
-
*/
|
1225
|
-
SkyDynamicComponentLocation[SkyDynamicComponentLocation["BodyBottom"] = 1] = "BodyBottom";
|
1226
|
-
/**
|
1227
|
-
* Renders the dynamic component as the first element inside the BODY element.
|
1228
|
-
*/
|
1229
|
-
SkyDynamicComponentLocation[SkyDynamicComponentLocation["BodyTop"] = 2] = "BodyTop";
|
1230
|
-
/**
|
1231
|
-
* Renders the dynamic component as the last element inside a given element.
|
1232
|
-
*/
|
1233
|
-
SkyDynamicComponentLocation[SkyDynamicComponentLocation["ElementBottom"] = 3] = "ElementBottom";
|
1234
|
-
/**
|
1235
|
-
* Renders the dynamic component as the first element inside a given element.
|
1236
|
-
*/
|
1237
|
-
SkyDynamicComponentLocation[SkyDynamicComponentLocation["ElementTop"] = 4] = "ElementTop";
|
1238
|
-
})(SkyDynamicComponentLocation || (SkyDynamicComponentLocation = {}));
|
1239
|
-
|
1240
|
-
/**
|
1241
|
-
* @internal
|
1242
|
-
*/
|
1243
|
-
function getWindow() {
|
1244
|
-
return window;
|
1245
|
-
}
|
1246
|
-
/**
|
1247
|
-
* The application window reference service references the global window variable.
|
1248
|
-
* After users inject SkyAppWindowRef into a component, they can use the service to interact with
|
1249
|
-
* window properties and event handlers by referencing its nativeWindow property.
|
1250
|
-
*/
|
1251
|
-
class SkyAppWindowRef {
|
1252
|
-
/**
|
1253
|
-
* The global `window` variable.
|
1254
|
-
*/
|
1255
|
-
get nativeWindow() {
|
1256
|
-
return getWindow();
|
1257
|
-
}
|
1258
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.1", ngImport: i0, type: SkyAppWindowRef, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
1259
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.1", ngImport: i0, type: SkyAppWindowRef, providedIn: 'root' }); }
|
1260
|
-
}
|
1261
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.1", ngImport: i0, type: SkyAppWindowRef, decorators: [{
|
1262
|
-
type: Injectable,
|
1263
|
-
args: [{
|
1264
|
-
providedIn: 'root',
|
1265
|
-
}]
|
1266
|
-
}] });
|
1267
|
-
|
1268
|
-
/**
|
1269
|
-
* Angular service for creating and rendering a dynamic component.
|
1270
|
-
* @internal
|
1271
|
-
*/
|
1272
|
-
class SkyDynamicComponentService {
|
1273
|
-
#applicationRef;
|
1274
|
-
#renderer;
|
1275
|
-
#windowRef;
|
1276
|
-
#environmentInjector = inject(EnvironmentInjector);
|
1277
|
-
constructor(applicationRef, windowRef, rendererFactory) {
|
1278
|
-
this.#applicationRef = applicationRef;
|
1279
|
-
this.#windowRef = windowRef;
|
1280
|
-
// Based on suggestions from https://github.com/angular/angular/issues/17824
|
1281
|
-
// for accessing an instance of Renderer2 in a service since Renderer2 can't
|
1282
|
-
// be injected into a service. Passing undefined for both parameters results
|
1283
|
-
// in the default renderer which is what we want here.
|
1284
|
-
this.#renderer = rendererFactory.createRenderer(undefined, null);
|
1285
|
-
}
|
1286
|
-
/**
|
1287
|
-
* Creates an instance of the specified component and adds it to the specified location
|
1288
|
-
* on the page.
|
1289
|
-
*/
|
1290
|
-
createComponent(componentType, options) {
|
1291
|
-
options ||= {
|
1292
|
-
location: SkyDynamicComponentLocation.BodyBottom,
|
1293
|
-
};
|
1294
|
-
const environmentInjector = createEnvironmentInjector(options.providers ?? [], options.environmentInjector ?? this.#environmentInjector);
|
1295
|
-
let componentRef;
|
1296
|
-
if (options.viewContainerRef) {
|
1297
|
-
componentRef = options.viewContainerRef.createComponent(componentType, {
|
1298
|
-
environmentInjector,
|
1299
|
-
});
|
1300
|
-
}
|
1301
|
-
else {
|
1302
|
-
componentRef = createComponent(componentType, {
|
1303
|
-
environmentInjector,
|
1304
|
-
});
|
1305
|
-
this.#applicationRef.attachView(componentRef.hostView);
|
1306
|
-
const el = this.#getRootNode(componentRef);
|
1307
|
-
const bodyEl = this.#windowRef.nativeWindow.document.body;
|
1308
|
-
switch (options.location) {
|
1309
|
-
case SkyDynamicComponentLocation.BeforeElement:
|
1310
|
-
if (!options.referenceEl) {
|
1311
|
-
throw new Error('[SkyDynamicComponentService] Could not create a component at location `SkyDynamicComponentLocation.BeforeElement` because a reference element was not provided.');
|
1312
|
-
}
|
1313
|
-
this.#renderer.insertBefore(options.referenceEl.parentElement, el, options.referenceEl);
|
1314
|
-
break;
|
1315
|
-
case SkyDynamicComponentLocation.ElementTop:
|
1316
|
-
if (!options.referenceEl) {
|
1317
|
-
throw new Error('[SkyDynamicComponentService] Could not create a component at location `SkyDynamicComponentLocation.ElementTop` because a reference element was not provided.');
|
1318
|
-
}
|
1319
|
-
this.#renderer.insertBefore(options.referenceEl, el, options.referenceEl.firstChild);
|
1320
|
-
break;
|
1321
|
-
case SkyDynamicComponentLocation.ElementBottom:
|
1322
|
-
this.#renderer.appendChild(options.referenceEl, el);
|
1323
|
-
break;
|
1324
|
-
case SkyDynamicComponentLocation.BodyTop:
|
1325
|
-
this.#renderer.insertBefore(bodyEl, el, bodyEl.firstChild);
|
1326
|
-
break;
|
1327
|
-
default:
|
1328
|
-
this.#renderer.appendChild(bodyEl, el);
|
1329
|
-
break;
|
1330
|
-
}
|
1331
|
-
}
|
1332
|
-
return componentRef;
|
1333
|
-
}
|
1334
|
-
/**
|
1335
|
-
* Removes a component ref from the page
|
1336
|
-
* @param componentRef Component ref for the component being removed
|
1337
|
-
*/
|
1338
|
-
removeComponent(componentRef) {
|
1339
|
-
if (!componentRef) {
|
1340
|
-
return;
|
1341
|
-
}
|
1342
|
-
this.#applicationRef.detachView(componentRef.hostView);
|
1343
|
-
componentRef.destroy();
|
1344
|
-
}
|
1345
|
-
#getRootNode(componentRef) {
|
1346
|
-
// Technique for retrieving the component's root node taken from here:
|
1347
|
-
// https://malcoded.com/posts/angular-dynamic-components
|
1348
|
-
return componentRef.hostView.rootNodes[0];
|
1349
|
-
}
|
1350
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.1", ngImport: i0, type: SkyDynamicComponentService, deps: [{ token: i0.ApplicationRef }, { token: SkyAppWindowRef }, { token: i0.RendererFactory2 }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
1351
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.1", ngImport: i0, type: SkyDynamicComponentService, providedIn: 'any' }); }
|
1352
|
-
}
|
1353
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.1", ngImport: i0, type: SkyDynamicComponentService, decorators: [{
|
1354
|
-
type: Injectable,
|
1355
|
-
args: [{
|
1356
|
-
providedIn: 'any',
|
1357
|
-
}]
|
1358
|
-
}], ctorParameters: function () { return [{ type: i0.ApplicationRef }, { type: SkyAppWindowRef }, { type: i0.RendererFactory2 }]; } });
|
1359
|
-
|
1360
1376
|
/**
|
1361
1377
|
* This service docks components to specific areas on the page.
|
1362
1378
|
*/
|
@@ -1433,12 +1449,12 @@ class SkyDockService {
|
|
1433
1449
|
SkyDockService.dockRef = undefined;
|
1434
1450
|
}
|
1435
1451
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.1", ngImport: i0, type: SkyDockService, deps: [{ token: SkyDynamicComponentService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
1436
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.1", ngImport: i0, type: SkyDockService, providedIn: '
|
1452
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.1", ngImport: i0, type: SkyDockService, providedIn: 'root' }); }
|
1437
1453
|
}
|
1438
1454
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.1", ngImport: i0, type: SkyDockService, decorators: [{
|
1439
1455
|
type: Injectable,
|
1440
1456
|
args: [{
|
1441
|
-
providedIn: '
|
1457
|
+
providedIn: 'root',
|
1442
1458
|
}]
|
1443
1459
|
}], ctorParameters: function () { return [{ type: SkyDynamicComponentService }]; } });
|
1444
1460
|
|
@@ -1927,6 +1943,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.1", ngImpor
|
|
1927
1943
|
}]
|
1928
1944
|
}], ctorParameters: function () { return [{ type: i0.NgZone }]; } });
|
1929
1945
|
|
1946
|
+
/* istanbul ignore file */
|
1930
1947
|
/**
|
1931
1948
|
* NOTICE: DO NOT MODIFY THIS FILE!
|
1932
1949
|
* The contents of this file were automatically generated by
|
@@ -1941,6 +1958,7 @@ const RESOURCES = {
|
|
1941
1958
|
skyux_numeric_trillions_symbol: { message: 'T' },
|
1942
1959
|
},
|
1943
1960
|
};
|
1961
|
+
SkyLibResourcesService.addResources(RESOURCES);
|
1944
1962
|
class SkyCoreResourcesProvider {
|
1945
1963
|
getString(localeInfo, name) {
|
1946
1964
|
return getLibStringForLocale(RESOURCES, localeInfo.locale, name);
|
@@ -2260,12 +2278,12 @@ class SkyNumericService {
|
|
2260
2278
|
return this.#resourcesSvc.getStringForLocale({ locale: 'en_US' }, key);
|
2261
2279
|
}
|
2262
2280
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.1", ngImport: i0, type: SkyNumericService, deps: [{ token: i1.SkyLibResourcesService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
2263
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.1", ngImport: i0, type: SkyNumericService, providedIn: '
|
2281
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.1", ngImport: i0, type: SkyNumericService, providedIn: 'root' }); }
|
2264
2282
|
}
|
2265
2283
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.1", ngImport: i0, type: SkyNumericService, decorators: [{
|
2266
2284
|
type: Injectable,
|
2267
2285
|
args: [{
|
2268
|
-
providedIn: '
|
2286
|
+
providedIn: 'root',
|
2269
2287
|
}]
|
2270
2288
|
}], ctorParameters: function () { return [{ type: i1.SkyLibResourcesService }]; } });
|
2271
2289
|
|
@@ -2419,10 +2437,60 @@ class SkyOverlayInstance {
|
|
2419
2437
|
}
|
2420
2438
|
}
|
2421
2439
|
|
2440
|
+
/**
|
2441
|
+
* @deprecated The `SkyOverlayModule` is no longer needed and can be removed from your application.
|
2442
|
+
*/
|
2443
|
+
class SkyOverlayModule {
|
2444
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.1", ngImport: i0, type: SkyOverlayModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
2445
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.1", ngImport: i0, type: SkyOverlayModule }); }
|
2446
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.1", ngImport: i0, type: SkyOverlayModule }); }
|
2447
|
+
}
|
2448
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.1", ngImport: i0, type: SkyOverlayModule, decorators: [{
|
2449
|
+
type: NgModule,
|
2450
|
+
args: [{}]
|
2451
|
+
}] });
|
2452
|
+
|
2422
2453
|
/**
|
2423
2454
|
* @internal
|
2424
2455
|
*/
|
2425
|
-
|
2456
|
+
class SkyOverlayAdapterService {
|
2457
|
+
#renderer;
|
2458
|
+
#styleElement;
|
2459
|
+
constructor(rendererFactory) {
|
2460
|
+
this.#renderer = rendererFactory.createRenderer(undefined, null);
|
2461
|
+
}
|
2462
|
+
restrictBodyScroll() {
|
2463
|
+
// Create a style element to avoid overwriting any existing inline body styles.
|
2464
|
+
const styleElement = this.#renderer.createElement('style');
|
2465
|
+
const textNode = this.#renderer.createText('body { overflow: hidden }');
|
2466
|
+
// Apply a `data-` attribute to make unit testing easier.
|
2467
|
+
this.#renderer.setAttribute(styleElement, 'data-test-selector', 'sky-overlay-restrict-scroll-styles');
|
2468
|
+
this.#renderer.appendChild(styleElement, textNode);
|
2469
|
+
this.#renderer.appendChild(document.head, styleElement);
|
2470
|
+
if (this.#styleElement) {
|
2471
|
+
this.#destroyStyleElement();
|
2472
|
+
}
|
2473
|
+
this.#styleElement = styleElement;
|
2474
|
+
}
|
2475
|
+
releaseBodyScroll() {
|
2476
|
+
this.#destroyStyleElement();
|
2477
|
+
}
|
2478
|
+
#destroyStyleElement() {
|
2479
|
+
/* istanbul ignore else */
|
2480
|
+
if (this.#styleElement &&
|
2481
|
+
this.#styleElement.parentElement === document.head) {
|
2482
|
+
this.#renderer.removeChild(document.head, this.#styleElement);
|
2483
|
+
}
|
2484
|
+
}
|
2485
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.1", ngImport: i0, type: SkyOverlayAdapterService, deps: [{ token: i0.RendererFactory2 }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
2486
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.1", ngImport: i0, type: SkyOverlayAdapterService, providedIn: 'root' }); }
|
2487
|
+
}
|
2488
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.1", ngImport: i0, type: SkyOverlayAdapterService, decorators: [{
|
2489
|
+
type: Injectable,
|
2490
|
+
args: [{
|
2491
|
+
providedIn: 'root',
|
2492
|
+
}]
|
2493
|
+
}], ctorParameters: function () { return [{ type: i0.RendererFactory2 }]; } });
|
2426
2494
|
|
2427
2495
|
/**
|
2428
2496
|
* Contextual information for each overlay.
|
@@ -2434,6 +2502,11 @@ class SkyOverlayContext {
|
|
2434
2502
|
}
|
2435
2503
|
}
|
2436
2504
|
|
2505
|
+
/**
|
2506
|
+
* @internal
|
2507
|
+
*/
|
2508
|
+
const SKY_STACKING_CONTEXT = new InjectionToken('SkyStackingContext');
|
2509
|
+
|
2437
2510
|
const POSITION_DEFAULT = 'fixed';
|
2438
2511
|
/**
|
2439
2512
|
* Omnibar is 1000.
|
@@ -2461,16 +2534,17 @@ class SkyOverlayComponent {
|
|
2461
2534
|
}
|
2462
2535
|
#backdropClick;
|
2463
2536
|
#backdropClickObs;
|
2464
|
-
#changeDetector;
|
2465
2537
|
#closed;
|
2466
2538
|
#closedObs;
|
2539
|
+
#ngUnsubscribe;
|
2540
|
+
#routerSubscription;
|
2541
|
+
#changeDetector;
|
2467
2542
|
#context;
|
2468
2543
|
#coreAdapter;
|
2469
|
-
#
|
2470
|
-
#
|
2544
|
+
#environmentInjector;
|
2545
|
+
#idSvc;
|
2471
2546
|
#router;
|
2472
|
-
|
2473
|
-
constructor(changeDetector, injector, coreAdapter, context, idSvc, router) {
|
2547
|
+
constructor() {
|
2474
2548
|
this.wrapperClass = '';
|
2475
2549
|
this.enablePointerEvents = false;
|
2476
2550
|
this.showBackdrop = false;
|
@@ -2478,12 +2552,13 @@ class SkyOverlayComponent {
|
|
2478
2552
|
this.clipPath$ = new ReplaySubject(1);
|
2479
2553
|
this.position = POSITION_DEFAULT;
|
2480
2554
|
this.#ngUnsubscribe = new Subject();
|
2481
|
-
this.#changeDetector =
|
2482
|
-
this.#
|
2483
|
-
this.#coreAdapter =
|
2484
|
-
this.#
|
2485
|
-
this.#
|
2486
|
-
this
|
2555
|
+
this.#changeDetector = inject(ChangeDetectorRef);
|
2556
|
+
this.#context = inject(SkyOverlayContext);
|
2557
|
+
this.#coreAdapter = inject(SkyCoreAdapterService);
|
2558
|
+
this.#environmentInjector = inject(EnvironmentInjector);
|
2559
|
+
this.#idSvc = inject(SkyIdService);
|
2560
|
+
this.#router = inject(Router, { optional: true });
|
2561
|
+
this.id = this.#idSvc.generateId();
|
2487
2562
|
this.#backdropClick = new Subject();
|
2488
2563
|
this.#closed = new Subject();
|
2489
2564
|
this.#backdropClickObs = this.#backdropClick.asObservable();
|
@@ -2512,22 +2587,19 @@ class SkyOverlayComponent {
|
|
2512
2587
|
throw new Error('[SkyOverlayComponent] Could not attach the component because the target element could not be found.');
|
2513
2588
|
}
|
2514
2589
|
this.targetRef.clear();
|
2515
|
-
const
|
2516
|
-
|
2517
|
-
|
2518
|
-
|
2519
|
-
|
2520
|
-
|
2521
|
-
|
2522
|
-
.pipe(takeUntil(this.#ngUnsubscribe)),
|
2523
|
-
},
|
2590
|
+
const environmentInjector = createEnvironmentInjector([
|
2591
|
+
{
|
2592
|
+
provide: SKY_STACKING_CONTEXT,
|
2593
|
+
useValue: {
|
2594
|
+
zIndex: new BehaviorSubject(parseInt(this.zIndex, 10))
|
2595
|
+
.asObservable()
|
2596
|
+
.pipe(takeUntil(this.#ngUnsubscribe)),
|
2524
2597
|
},
|
2525
|
-
|
2526
|
-
|
2527
|
-
|
2528
|
-
});
|
2598
|
+
},
|
2599
|
+
...providers,
|
2600
|
+
], this.#environmentInjector);
|
2529
2601
|
const componentRef = this.targetRef.createComponent(component, {
|
2530
|
-
|
2602
|
+
environmentInjector,
|
2531
2603
|
});
|
2532
2604
|
// Run an initial change detection cycle after the component has been created.
|
2533
2605
|
componentRef.changeDetectorRef.detectChanges();
|
@@ -2539,7 +2611,9 @@ class SkyOverlayComponent {
|
|
2539
2611
|
throw new Error('[SkyOverlayComponent] Could not attach the template because the target element could not be found.');
|
2540
2612
|
}
|
2541
2613
|
this.targetRef.clear();
|
2542
|
-
return this.targetRef.createEmbeddedView(templateRef, context
|
2614
|
+
return this.targetRef.createEmbeddedView(templateRef, context, {
|
2615
|
+
injector: this.#environmentInjector,
|
2616
|
+
});
|
2543
2617
|
}
|
2544
2618
|
updateClipPath(clipPath) {
|
2545
2619
|
this.clipPath$.next(clipPath);
|
@@ -2585,15 +2659,13 @@ class SkyOverlayComponent {
|
|
2585
2659
|
this.#routerSubscription = undefined;
|
2586
2660
|
}
|
2587
2661
|
}
|
2588
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.1", ngImport: i0, type: SkyOverlayComponent, deps: [
|
2589
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.1", type: SkyOverlayComponent, selector: "sky-overlay", host: { properties: { "id": "this.id" } }, viewQueries: [{ propertyName: "overlayContentRef", first: true, predicate: ["overlayContentRef"], descendants: true, read: ElementRef, static: true }, { propertyName: "overlayRef", first: true, predicate: ["overlayRef"], descendants: true, read: ElementRef, static: true }, { propertyName: "targetRef", first: true, predicate: ["target"], descendants: true, read: ViewContainerRef, static: true }], ngImport: i0, template: "<div\n [class]=\"'sky-overlay-position-' + position + ' ' + wrapperClass\"\n [style.z-index]=\"zIndex\"\n [style.clip-path]=\"clipPath$ | async\"\n [ngClass]=\"{\n 'enable-pointer-events-pass-through': enablePointerEvents,\n 'sky-overlay': true\n }\"\n #overlayRef\n>\n <div class=\"sky-overlay-content\" #overlayContentRef>\n <ng-template #target> </ng-template>\n </div>\n <div *ngIf=\"showBackdrop\" class=\"sky-overlay-backdrop\"></div>\n</div>\n", styles: [".sky-overlay{inset:0;width:100%;height:100%;display:flex;pointer-events:auto}.sky-overlay-position-absolute{position:absolute}.sky-overlay-position-fixed{position:fixed}.sky-overlay-content{position:relative;z-index:1;display:inline-flex;align-self:start;pointer-events:auto}.sky-overlay-backdrop{background:rgba(0,0,0,.5);inset:0;width:100%;height:100%;position:absolute}.enable-pointer-events-pass-through,.enable-pointer-events-pass-through .sky-overlay-backdrop{pointer-events:none}.enable-pointer-events-pass-through .sky-overlay-content{pointer-events:auto}\n"], dependencies: [{ kind: "directive", type:
|
2662
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.1", ngImport: i0, type: SkyOverlayComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
2663
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.1", type: SkyOverlayComponent, isStandalone: true, selector: "sky-overlay", host: { properties: { "id": "this.id" } }, viewQueries: [{ propertyName: "overlayContentRef", first: true, predicate: ["overlayContentRef"], descendants: true, read: ElementRef, static: true }, { propertyName: "overlayRef", first: true, predicate: ["overlayRef"], descendants: true, read: ElementRef, static: true }, { propertyName: "targetRef", first: true, predicate: ["target"], descendants: true, read: ViewContainerRef, static: true }], ngImport: i0, template: "<div\n [class]=\"'sky-overlay-position-' + position + ' ' + wrapperClass\"\n [style.z-index]=\"zIndex\"\n [style.clip-path]=\"clipPath$ | async\"\n [ngClass]=\"{\n 'enable-pointer-events-pass-through': enablePointerEvents,\n 'sky-overlay': true\n }\"\n #overlayRef\n>\n <div class=\"sky-overlay-content\" #overlayContentRef>\n <ng-template #target> </ng-template>\n </div>\n <div *ngIf=\"showBackdrop\" class=\"sky-overlay-backdrop\"></div>\n</div>\n", styles: [".sky-overlay{inset:0;width:100%;height:100%;display:flex;pointer-events:auto}.sky-overlay-position-absolute{position:absolute}.sky-overlay-position-fixed{position:fixed}.sky-overlay-content{position:relative;z-index:1;display:inline-flex;align-self:start;pointer-events:auto}.sky-overlay-backdrop{background:rgba(0,0,0,.5);inset:0;width:100%;height:100%;position:absolute}.enable-pointer-events-pass-through,.enable-pointer-events-pass-through .sky-overlay-backdrop{pointer-events:none}.enable-pointer-events-pass-through .sky-overlay-content{pointer-events:auto}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
2590
2664
|
}
|
2591
2665
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.1", ngImport: i0, type: SkyOverlayComponent, decorators: [{
|
2592
2666
|
type: Component,
|
2593
|
-
args: [{ selector: 'sky-overlay', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n [class]=\"'sky-overlay-position-' + position + ' ' + wrapperClass\"\n [style.z-index]=\"zIndex\"\n [style.clip-path]=\"clipPath$ | async\"\n [ngClass]=\"{\n 'enable-pointer-events-pass-through': enablePointerEvents,\n 'sky-overlay': true\n }\"\n #overlayRef\n>\n <div class=\"sky-overlay-content\" #overlayContentRef>\n <ng-template #target> </ng-template>\n </div>\n <div *ngIf=\"showBackdrop\" class=\"sky-overlay-backdrop\"></div>\n</div>\n", styles: [".sky-overlay{inset:0;width:100%;height:100%;display:flex;pointer-events:auto}.sky-overlay-position-absolute{position:absolute}.sky-overlay-position-fixed{position:fixed}.sky-overlay-content{position:relative;z-index:1;display:inline-flex;align-self:start;pointer-events:auto}.sky-overlay-backdrop{background:rgba(0,0,0,.5);inset:0;width:100%;height:100%;position:absolute}.enable-pointer-events-pass-through,.enable-pointer-events-pass-through .sky-overlay-backdrop{pointer-events:none}.enable-pointer-events-pass-through .sky-overlay-content{pointer-events:auto}\n"] }]
|
2594
|
-
}], ctorParameters: function () { return [
|
2595
|
-
type: Optional
|
2596
|
-
}] }]; }, propDecorators: { id: [{
|
2667
|
+
args: [{ standalone: true, selector: 'sky-overlay', changeDetection: ChangeDetectionStrategy.OnPush, imports: [CommonModule], template: "<div\n [class]=\"'sky-overlay-position-' + position + ' ' + wrapperClass\"\n [style.z-index]=\"zIndex\"\n [style.clip-path]=\"clipPath$ | async\"\n [ngClass]=\"{\n 'enable-pointer-events-pass-through': enablePointerEvents,\n 'sky-overlay': true\n }\"\n #overlayRef\n>\n <div class=\"sky-overlay-content\" #overlayContentRef>\n <ng-template #target> </ng-template>\n </div>\n <div *ngIf=\"showBackdrop\" class=\"sky-overlay-backdrop\"></div>\n</div>\n", styles: [".sky-overlay{inset:0;width:100%;height:100%;display:flex;pointer-events:auto}.sky-overlay-position-absolute{position:absolute}.sky-overlay-position-fixed{position:fixed}.sky-overlay-content{position:relative;z-index:1;display:inline-flex;align-self:start;pointer-events:auto}.sky-overlay-backdrop{background:rgba(0,0,0,.5);inset:0;width:100%;height:100%;position:absolute}.enable-pointer-events-pass-through,.enable-pointer-events-pass-through .sky-overlay-backdrop{pointer-events:none}.enable-pointer-events-pass-through .sky-overlay-content{pointer-events:auto}\n"] }]
|
2668
|
+
}], ctorParameters: function () { return []; }, propDecorators: { id: [{
|
2597
2669
|
type: HostBinding,
|
2598
2670
|
args: ['id']
|
2599
2671
|
}], overlayContentRef: [{
|
@@ -2616,61 +2688,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.1", ngImpor
|
|
2616
2688
|
}]
|
2617
2689
|
}] } });
|
2618
2690
|
|
2619
|
-
class SkyOverlayModule {
|
2620
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.1", ngImport: i0, type: SkyOverlayModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
2621
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.1", ngImport: i0, type: SkyOverlayModule, declarations: [SkyOverlayComponent], imports: [CommonModule] }); }
|
2622
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.1", ngImport: i0, type: SkyOverlayModule, imports: [CommonModule] }); }
|
2623
|
-
}
|
2624
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.1", ngImport: i0, type: SkyOverlayModule, decorators: [{
|
2625
|
-
type: NgModule,
|
2626
|
-
args: [{
|
2627
|
-
imports: [CommonModule],
|
2628
|
-
declarations: [SkyOverlayComponent],
|
2629
|
-
}]
|
2630
|
-
}] });
|
2631
|
-
|
2632
|
-
/**
|
2633
|
-
* @internal
|
2634
|
-
*/
|
2635
|
-
class SkyOverlayAdapterService {
|
2636
|
-
#renderer;
|
2637
|
-
#styleElement;
|
2638
|
-
constructor(rendererFactory) {
|
2639
|
-
this.#renderer = rendererFactory.createRenderer(undefined, null);
|
2640
|
-
}
|
2641
|
-
restrictBodyScroll() {
|
2642
|
-
// Create a style element to avoid overwriting any existing inline body styles.
|
2643
|
-
const styleElement = this.#renderer.createElement('style');
|
2644
|
-
const textNode = this.#renderer.createText('body { overflow: hidden }');
|
2645
|
-
// Apply a `data-` attribute to make unit testing easier.
|
2646
|
-
this.#renderer.setAttribute(styleElement, 'data-test-selector', 'sky-overlay-restrict-scroll-styles');
|
2647
|
-
this.#renderer.appendChild(styleElement, textNode);
|
2648
|
-
this.#renderer.appendChild(document.head, styleElement);
|
2649
|
-
if (this.#styleElement) {
|
2650
|
-
this.#destroyStyleElement();
|
2651
|
-
}
|
2652
|
-
this.#styleElement = styleElement;
|
2653
|
-
}
|
2654
|
-
releaseBodyScroll() {
|
2655
|
-
this.#destroyStyleElement();
|
2656
|
-
}
|
2657
|
-
#destroyStyleElement() {
|
2658
|
-
/* istanbul ignore else */
|
2659
|
-
if (this.#styleElement &&
|
2660
|
-
this.#styleElement.parentElement === document.head) {
|
2661
|
-
this.#renderer.removeChild(document.head, this.#styleElement);
|
2662
|
-
}
|
2663
|
-
}
|
2664
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.1", ngImport: i0, type: SkyOverlayAdapterService, deps: [{ token: i0.RendererFactory2 }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
2665
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.1", ngImport: i0, type: SkyOverlayAdapterService, providedIn: 'root' }); }
|
2666
|
-
}
|
2667
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.1", ngImport: i0, type: SkyOverlayAdapterService, decorators: [{
|
2668
|
-
type: Injectable,
|
2669
|
-
args: [{
|
2670
|
-
providedIn: 'root',
|
2671
|
-
}]
|
2672
|
-
}], ctorParameters: function () { return [{ type: i0.RendererFactory2 }]; } });
|
2673
|
-
|
2674
2691
|
/**
|
2675
2692
|
* This service is used to create new overlays.
|
2676
2693
|
* @internal
|
@@ -2679,8 +2696,11 @@ class SkyOverlayService {
|
|
2679
2696
|
static { this.overlays = []; }
|
2680
2697
|
#adapter = inject(SkyOverlayAdapterService);
|
2681
2698
|
#applicationRef = inject(ApplicationRef);
|
2682
|
-
#dynamicComponentSvc
|
2699
|
+
#dynamicComponentSvc;
|
2683
2700
|
#environmentInjector = inject(EnvironmentInjector);
|
2701
|
+
constructor(dynamicComponentSvc) {
|
2702
|
+
this.#dynamicComponentSvc = dynamicComponentSvc;
|
2703
|
+
}
|
2684
2704
|
/**
|
2685
2705
|
* Creates an empty overlay. Use the returned `SkyOverlayInstance` to append content.
|
2686
2706
|
* @param config Configuration for the overlay.
|
@@ -2764,7 +2784,7 @@ class SkyOverlayService {
|
|
2764
2784
|
}
|
2765
2785
|
}
|
2766
2786
|
}
|
2767
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.1", ngImport: i0, type: SkyOverlayService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
2787
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.1", ngImport: i0, type: SkyOverlayService, deps: [{ token: SkyDynamicComponentService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
2768
2788
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.1", ngImport: i0, type: SkyOverlayService, providedIn: 'root' }); }
|
2769
2789
|
}
|
2770
2790
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.1", ngImport: i0, type: SkyOverlayService, decorators: [{
|
@@ -2772,7 +2792,26 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.1", ngImpor
|
|
2772
2792
|
args: [{
|
2773
2793
|
providedIn: 'root',
|
2774
2794
|
}]
|
2775
|
-
}] });
|
2795
|
+
}], ctorParameters: function () { return [{ type: SkyDynamicComponentService }]; } });
|
2796
|
+
/**
|
2797
|
+
* This service is used to create new overlays.
|
2798
|
+
* @internal
|
2799
|
+
* @deprecated Use `SkyOverlayService` to open a standalone component instead.
|
2800
|
+
*/
|
2801
|
+
class SkyOverlayLegacyService extends SkyOverlayService {
|
2802
|
+
/* istanbul ignore next */
|
2803
|
+
constructor(dynamicComponentSvc) {
|
2804
|
+
super(dynamicComponentSvc);
|
2805
|
+
}
|
2806
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.1", ngImport: i0, type: SkyOverlayLegacyService, deps: [{ token: SkyDynamicComponentLegacyService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
2807
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.1", ngImport: i0, type: SkyOverlayLegacyService, providedIn: 'any' }); }
|
2808
|
+
}
|
2809
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.1", ngImport: i0, type: SkyOverlayLegacyService, decorators: [{
|
2810
|
+
type: Injectable,
|
2811
|
+
args: [{
|
2812
|
+
providedIn: 'any',
|
2813
|
+
}]
|
2814
|
+
}], ctorParameters: function () { return [{ type: SkyDynamicComponentLegacyService }]; } });
|
2776
2815
|
|
2777
2816
|
class SkyPercentPipe {
|
2778
2817
|
get defaultLocale() {
|
@@ -3280,7 +3319,7 @@ class SkyAppTitleService {
|
|
3280
3319
|
this.#title.setTitle(args.titleParts.join(' - '));
|
3281
3320
|
}
|
3282
3321
|
}
|
3283
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.1", ngImport: i0, type: SkyAppTitleService, deps: [{ token: i1$
|
3322
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.1", ngImport: i0, type: SkyAppTitleService, deps: [{ token: i1$2.Title }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
3284
3323
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.1", ngImport: i0, type: SkyAppTitleService, providedIn: 'root' }); }
|
3285
3324
|
}
|
3286
3325
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.1", ngImport: i0, type: SkyAppTitleService, decorators: [{
|
@@ -3288,7 +3327,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.1", ngImpor
|
|
3288
3327
|
args: [{
|
3289
3328
|
providedIn: 'root',
|
3290
3329
|
}]
|
3291
|
-
}], ctorParameters: function () { return [{ type: i1$
|
3330
|
+
}], ctorParameters: function () { return [{ type: i1$2.Title }]; } });
|
3292
3331
|
|
3293
3332
|
/**
|
3294
3333
|
* Trims whitespace in each text node that is a direct descendent of the current element.
|
@@ -3849,5 +3888,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.1", ngImpor
|
|
3849
3888
|
* Generated bundle index. Do not edit.
|
3850
3889
|
*/
|
3851
3890
|
|
3852
|
-
export { NumericOptions, SKY_LOG_LEVEL, SKY_STACKING_CONTEXT, SkyAffixAutoFitContext, SkyAffixModule, SkyAffixService, SkyAffixer, SkyAppFormat, SkyAppTitleService, SkyAppWindowRef, SkyCoreAdapterModule, SkyCoreAdapterService, SkyDefaultInputProvider, SkyDockItem, SkyDockLocation, SkyDockModule, SkyDockService, SkyDynamicComponentLocation, SkyDynamicComponentModule, SkyDynamicComponentService, SkyIdModule, SkyIdService, SkyLayoutHostService, SkyLiveAnnouncerService, SkyLogModule, SkyLogService, SkyMediaBreakpoints, SkyMediaQueryModule, SkyMediaQueryService, SkyMutationObserverService, SkyNumericModule, SkyNumericPipe, SkyNumericService, SkyOverlayInstance, SkyOverlayModule, SkyOverlayService, SkyPercentPipe, SkyPercentPipeModule, SkyResizeObserverMediaQueryService, SkyResizeObserverService, SkyScrollableHostService, SkyTrimModule, SkyUIConfigService, SkyViewkeeperHostOptions, SkyViewkeeperModule, SkyViewkeeperService, SkyAffixDirective as λ1, SkyIdDirective as λ2, SkyViewkeeperDirective as λ3, SkyTrimDirective as λ4 };
|
3891
|
+
export { NumericOptions, SKY_LOG_LEVEL, SKY_STACKING_CONTEXT, SkyAffixAutoFitContext, SkyAffixModule, SkyAffixService, SkyAffixer, SkyAppFormat, SkyAppTitleService, SkyAppWindowRef, SkyCoreAdapterModule, SkyCoreAdapterService, SkyDefaultInputProvider, SkyDockItem, SkyDockLocation, SkyDockModule, SkyDockService, SkyDynamicComponentLegacyService, SkyDynamicComponentLocation, SkyDynamicComponentModule, SkyDynamicComponentService, SkyIdModule, SkyIdService, SkyLayoutHostService, SkyLiveAnnouncerService, SkyLogModule, SkyLogService, SkyMediaBreakpoints, SkyMediaQueryModule, SkyMediaQueryService, SkyMutationObserverService, SkyNumericModule, SkyNumericPipe, SkyNumericService, SkyOverlayInstance, SkyOverlayLegacyService, SkyOverlayModule, SkyOverlayService, SkyPercentPipe, SkyPercentPipeModule, SkyResizeObserverMediaQueryService, SkyResizeObserverService, SkyScrollableHostService, SkyTrimModule, SkyUIConfigService, SkyViewkeeperHostOptions, SkyViewkeeperModule, SkyViewkeeperService, SkyAffixDirective as λ1, SkyIdDirective as λ2, SkyViewkeeperDirective as λ3, SkyTrimDirective as λ4 };
|
3853
3892
|
//# sourceMappingURL=skyux-core.mjs.map
|