@skyux/core 8.7.0 → 9.0.0-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/{esm2020 → esm2022}/lib/modules/adapter-service/adapter.module.mjs +5 -5
- package/esm2022/lib/modules/adapter-service/adapter.service.mjs +225 -0
- package/esm2022/lib/modules/affix/affix.directive.mjs +116 -0
- package/{esm2020 → esm2022}/lib/modules/affix/affix.module.mjs +5 -5
- package/esm2022/lib/modules/affix/affix.service.mjs +25 -0
- package/esm2022/lib/modules/affix/affixer.mjs +398 -0
- package/esm2022/lib/modules/default-input-provider/default-input-provider.mjs +26 -0
- package/esm2022/lib/modules/dock/dock-dom-adapter.service.mjs +81 -0
- package/esm2022/lib/modules/dock/dock-item.mjs +31 -0
- package/esm2022/lib/modules/dock/dock.component.mjs +108 -0
- package/{esm2020 → esm2022}/lib/modules/dock/dock.module.mjs +5 -5
- package/esm2022/lib/modules/dock/dock.service.mjs +96 -0
- package/{esm2020 → esm2022}/lib/modules/dynamic-component/dynamic-component.module.mjs +5 -5
- package/esm2022/lib/modules/dynamic-component/dynamic-component.service.mjs +106 -0
- package/{esm2020 → esm2022}/lib/modules/format/app-format.mjs +4 -4
- package/esm2022/lib/modules/id/id.directive.mjs +31 -0
- package/{esm2020 → esm2022}/lib/modules/id/id.module.mjs +5 -5
- package/{esm2020 → esm2022}/lib/modules/id/id.service.mjs +4 -4
- package/esm2022/lib/modules/layout-host/layout-host.service.mjs +22 -0
- package/esm2022/lib/modules/live-announcer/live-announcer.service.mjs +79 -0
- package/{esm2020 → esm2022}/lib/modules/log/log.module.mjs +5 -5
- package/esm2022/lib/modules/log/log.service.mjs +148 -0
- package/{esm2020 → esm2022}/lib/modules/media-query/media-query.module.mjs +5 -5
- package/esm2022/lib/modules/media-query/media-query.service.mjs +123 -0
- package/{esm2020 → esm2022}/lib/modules/mutation/mutation-observer-service.mjs +4 -4
- package/{esm2020 → esm2022}/lib/modules/numeric/numeric.module.mjs +5 -5
- package/esm2022/lib/modules/numeric/numeric.pipe.mjs +81 -0
- package/esm2022/lib/modules/numeric/numeric.service.mjs +205 -0
- package/esm2022/lib/modules/overlay/overlay-adapter.service.mjs +44 -0
- package/esm2022/lib/modules/overlay/overlay-instance.mjs +62 -0
- package/esm2022/lib/modules/overlay/overlay.component.mjs +193 -0
- package/{esm2020 → esm2022}/lib/modules/overlay/overlay.module.mjs +5 -5
- package/esm2022/lib/modules/overlay/overlay.service.mjs +124 -0
- package/{esm2020 → esm2022}/lib/modules/percent-pipe/percent-pipe.module.mjs +5 -5
- package/esm2022/lib/modules/percent-pipe/percent.pipe.mjs +56 -0
- package/esm2022/lib/modules/resize-observer/resize-observer-media-query.service.mjs +120 -0
- package/esm2022/lib/modules/resize-observer/resize-observer.service.mjs +77 -0
- package/esm2022/lib/modules/scrollable-host/scrollable-host.service.mjs +223 -0
- package/esm2022/lib/modules/shared/number-format/number-format-utility.mjs +72 -0
- package/esm2022/lib/modules/shared/sky-core-resources.module.mjs +50 -0
- package/esm2022/lib/modules/title/title.service.mjs +31 -0
- package/esm2022/lib/modules/trim/trim.directive.mjs +64 -0
- package/{esm2020 → esm2022}/lib/modules/trim/trim.module.mjs +5 -5
- package/{esm2020 → esm2022}/lib/modules/ui-config/ui-config.service.mjs +4 -4
- package/{esm2020 → esm2022}/lib/modules/viewkeeper/viewkeeper-host-options.mjs +4 -4
- package/esm2022/lib/modules/viewkeeper/viewkeeper.directive.mjs +131 -0
- package/esm2022/lib/modules/viewkeeper/viewkeeper.mjs +283 -0
- package/{esm2020 → esm2022}/lib/modules/viewkeeper/viewkeeper.module.mjs +5 -5
- package/esm2022/lib/modules/viewkeeper/viewkeeper.service.mjs +39 -0
- package/{esm2020 → esm2022}/lib/modules/window/window-ref.mjs +4 -4
- package/esm2022/testing/core-testing.module.mjs +32 -0
- package/esm2022/testing/mock-media-query.service.mjs +46 -0
- package/{esm2020 → esm2022}/testing/mock-ui-config.service.mjs +4 -4
- package/esm2022/testing/overlay/overlay-harness.mjs +43 -0
- package/esm2022/testing/shared/component-harness.mjs +13 -0
- package/{fesm2020 → fesm2022}/skyux-core-testing.mjs +28 -34
- package/{fesm2020 → fesm2022}/skyux-core-testing.mjs.map +1 -1
- package/fesm2022/skyux-core.mjs +3858 -0
- package/fesm2022/skyux-core.mjs.map +1 -0
- package/lib/modules/affix/affix.directive.d.ts +1 -1
- package/lib/modules/viewkeeper/viewkeeper.directive.d.ts +1 -1
- package/package.json +14 -22
- package/esm2020/lib/modules/adapter-service/adapter.service.mjs +0 -227
- package/esm2020/lib/modules/affix/affix.directive.mjs +0 -118
- package/esm2020/lib/modules/affix/affix.service.mjs +0 -28
- package/esm2020/lib/modules/affix/affixer.mjs +0 -377
- package/esm2020/lib/modules/default-input-provider/default-input-provider.mjs +0 -31
- package/esm2020/lib/modules/dock/dock-dom-adapter.service.mjs +0 -83
- package/esm2020/lib/modules/dock/dock-item.mjs +0 -34
- package/esm2020/lib/modules/dock/dock.component.mjs +0 -110
- package/esm2020/lib/modules/dock/dock.service.mjs +0 -98
- package/esm2020/lib/modules/dynamic-component/dynamic-component.service.mjs +0 -109
- package/esm2020/lib/modules/id/id.directive.mjs +0 -34
- package/esm2020/lib/modules/layout-host/layout-host.service.mjs +0 -27
- package/esm2020/lib/modules/live-announcer/live-announcer.service.mjs +0 -80
- package/esm2020/lib/modules/log/log.service.mjs +0 -147
- package/esm2020/lib/modules/media-query/media-query.service.mjs +0 -124
- package/esm2020/lib/modules/numeric/numeric.pipe.mjs +0 -84
- package/esm2020/lib/modules/numeric/numeric.service.mjs +0 -179
- package/esm2020/lib/modules/overlay/overlay-adapter.service.mjs +0 -47
- package/esm2020/lib/modules/overlay/overlay-instance.mjs +0 -65
- package/esm2020/lib/modules/overlay/overlay.component.mjs +0 -192
- package/esm2020/lib/modules/overlay/overlay.service.mjs +0 -125
- package/esm2020/lib/modules/percent-pipe/percent.pipe.mjs +0 -59
- package/esm2020/lib/modules/resize-observer/resize-observer-media-query.service.mjs +0 -121
- package/esm2020/lib/modules/resize-observer/resize-observer.service.mjs +0 -79
- package/esm2020/lib/modules/scrollable-host/scrollable-host.service.mjs +0 -218
- package/esm2020/lib/modules/shared/number-format/number-format-utility.mjs +0 -72
- package/esm2020/lib/modules/shared/sky-core-resources.module.mjs +0 -50
- package/esm2020/lib/modules/title/title.service.mjs +0 -34
- package/esm2020/lib/modules/trim/trim.directive.mjs +0 -65
- package/esm2020/lib/modules/viewkeeper/viewkeeper.directive.mjs +0 -131
- package/esm2020/lib/modules/viewkeeper/viewkeeper.mjs +0 -276
- package/esm2020/lib/modules/viewkeeper/viewkeeper.service.mjs +0 -42
- package/esm2020/testing/core-testing.module.mjs +0 -32
- package/esm2020/testing/mock-media-query.service.mjs +0 -46
- package/esm2020/testing/overlay/overlay-harness.mjs +0 -43
- package/esm2020/testing/shared/component-harness.mjs +0 -19
- package/fesm2015/skyux-core-testing.mjs +0 -209
- package/fesm2015/skyux-core-testing.mjs.map +0 -1
- package/fesm2015/skyux-core.mjs +0 -3835
- package/fesm2015/skyux-core.mjs.map +0 -1
- package/fesm2020/skyux-core.mjs +0 -3825
- package/fesm2020/skyux-core.mjs.map +0 -1
- /package/{esm2020 → esm2022}/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/adapter-service/focusable-children-options.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/affix/affix-auto-fit-context.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/affix/affix-config.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/affix/affix-horizontal-alignment.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/affix/affix-offset-change.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/affix/affix-offset.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/affix/affix-placement-change.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/affix/affix-placement.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/affix/affix-position.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/affix/affix-rect.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/affix/affix-utils.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/affix/affix-vertical-alignment.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/affix/dom-utils.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/dock/dock-insert-component-config.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/dock/dock-item-config.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/dock/dock-item-reference.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/dock/dock-location.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/dock/dock-options.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/dock/sort-by-stack-order.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/dynamic-component/dynamic-component-location.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/dynamic-component/dynamic-component-options.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/layout-host/layout-host-for-child-args.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/live-announcer/types/live-announcer-args.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/live-announcer/types/live-announcer-politeness.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/log/types/log-deprecation-args.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/log/types/log-level-token.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/log/types/log-level.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/media-query/media-breakpoints.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/media-query/media-query-listener.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/numeric/numeric-symbol.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/numeric/numeric.options.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/overlay/overlay-config.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/overlay/overlay-context.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/overlay/overlay-position.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/stacking-context/stacking-context-token.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/stacking-context/stacking-context.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/title/set-title-args.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/viewkeeper/viewkeeper-boundary-info.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/viewkeeper/viewkeeper-fixed-styles.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/viewkeeper/viewkeeper-offset.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/viewkeeper/viewkeeper-options.mjs +0 -0
- /package/{esm2020 → esm2022}/skyux-core.mjs +0 -0
- /package/{esm2020 → esm2022}/testing/overlay/overlay-harness-filters.mjs +0 -0
- /package/{esm2020 → esm2022}/testing/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/testing/shared/harness-filters.mjs +0 -0
- /package/{esm2020 → esm2022}/testing/skyux-core-testing.mjs +0 -0
@@ -0,0 +1,223 @@
|
|
1
|
+
import { Injectable, Optional } from '@angular/core';
|
2
|
+
import { Observable, Subject, animationFrameScheduler, concat, fromEvent, of, } from 'rxjs';
|
3
|
+
import { debounceTime, map, switchMap, takeUntil } from 'rxjs/operators';
|
4
|
+
import * as i0 from "@angular/core";
|
5
|
+
import * as i1 from "../mutation/mutation-observer-service";
|
6
|
+
import * as i2 from "../window/window-ref";
|
7
|
+
import * as i3 from "../resize-observer/resize-observer.service";
|
8
|
+
function notifySubscribers(subscribers, item) {
|
9
|
+
for (const subscriber of subscribers) {
|
10
|
+
subscriber.next(item);
|
11
|
+
}
|
12
|
+
}
|
13
|
+
export class SkyScrollableHostService {
|
14
|
+
#mutationObserverSvc;
|
15
|
+
#windowRef;
|
16
|
+
#resizeObserverSvc;
|
17
|
+
constructor(mutationObserverSvc, windowRef, resizeObserverSvc) {
|
18
|
+
this.#mutationObserverSvc = mutationObserverSvc;
|
19
|
+
this.#resizeObserverSvc = resizeObserverSvc;
|
20
|
+
this.#windowRef = windowRef;
|
21
|
+
}
|
22
|
+
/**
|
23
|
+
* Returns the given element's current scrollable host
|
24
|
+
* @param elementRef The element whose scrollable host is being requested
|
25
|
+
* @returns The current scrollable host
|
26
|
+
*/
|
27
|
+
getScrollableHost(elementRef) {
|
28
|
+
return this.#findScrollableHost(elementRef.nativeElement);
|
29
|
+
}
|
30
|
+
/**
|
31
|
+
* Returns an observable which emits the given element's current scrollable host
|
32
|
+
* @param elementRef The element whose scrollable host is being requested
|
33
|
+
* @returns An observable which emits the current scrollable host element.
|
34
|
+
* @internal
|
35
|
+
*/
|
36
|
+
watchScrollableHost(elementRef) {
|
37
|
+
const subscribers = [];
|
38
|
+
let parentMutationObserver;
|
39
|
+
let documentHiddenElementMutationObserver;
|
40
|
+
return new Observable((subscriber) => {
|
41
|
+
subscribers.push(subscriber);
|
42
|
+
let scrollableHost = this.#findScrollableHost(elementRef.nativeElement);
|
43
|
+
// Setup mutation observers only once, for all subscribers.
|
44
|
+
if (subscribers.length === 1) {
|
45
|
+
parentMutationObserver = this.#mutationObserverSvc.create(() => {
|
46
|
+
const newScrollableHost = this.#findScrollableHost(elementRef.nativeElement);
|
47
|
+
// Reset observer if scrollable host changes.
|
48
|
+
if (newScrollableHost !== scrollableHost &&
|
49
|
+
this.#isElementVisible(elementRef)) {
|
50
|
+
scrollableHost = newScrollableHost;
|
51
|
+
this.#observeForScrollableHostChanges(scrollableHost, parentMutationObserver);
|
52
|
+
notifySubscribers(subscribers, scrollableHost);
|
53
|
+
}
|
54
|
+
});
|
55
|
+
this.#observeForScrollableHostChanges(scrollableHost, parentMutationObserver);
|
56
|
+
documentHiddenElementMutationObserver =
|
57
|
+
this.#mutationObserverSvc.create(() => {
|
58
|
+
if (scrollableHost && !this.#isElementVisible(elementRef)) {
|
59
|
+
// If the scrollable host is not visible, set it to undefined and unsubscribe from its mutation changes.
|
60
|
+
// Then, observe the document element so that a new scrollable host can be found.
|
61
|
+
scrollableHost = undefined;
|
62
|
+
this.#observeForScrollableHostChanges(scrollableHost, parentMutationObserver);
|
63
|
+
notifySubscribers(subscribers, scrollableHost);
|
64
|
+
}
|
65
|
+
});
|
66
|
+
this.#observeDocumentHiddenElementChanges(documentHiddenElementMutationObserver);
|
67
|
+
}
|
68
|
+
// Emit the scrollable host to the subscriber.
|
69
|
+
subscriber.next(scrollableHost);
|
70
|
+
// Teardown callback for the subscription.
|
71
|
+
subscriber.add(() => {
|
72
|
+
const subIndex = subscribers.indexOf(subscriber);
|
73
|
+
/* istanbul ignore else */
|
74
|
+
if (subIndex >= 0) {
|
75
|
+
subscribers.splice(subIndex, 1);
|
76
|
+
}
|
77
|
+
if (subscribers.length === 0) {
|
78
|
+
documentHiddenElementMutationObserver.disconnect();
|
79
|
+
parentMutationObserver.disconnect();
|
80
|
+
}
|
81
|
+
});
|
82
|
+
});
|
83
|
+
}
|
84
|
+
/**
|
85
|
+
* Returns an observable which emits whenever the element's scrollable host emits a scroll event. The observable will always emit the scroll events from the elements current scrollable host and will update based on any scrollable host changes. The observable will also emit once whenever the scrollable host changes.
|
86
|
+
* @param elementRef The element whose scrollable host scroll events are being requested
|
87
|
+
* @returns An observable which emits when the elements scrollable host is scrolled or is changed
|
88
|
+
*/
|
89
|
+
watchScrollableHostScrollEvents(elementRef) {
|
90
|
+
const subscribers = [];
|
91
|
+
let scrollableHost;
|
92
|
+
let newScrollableHostObservable = new Subject();
|
93
|
+
let scrollableHostSubscription;
|
94
|
+
let scrollEventSubscription;
|
95
|
+
return new Observable((subscriber) => {
|
96
|
+
subscribers.push(subscriber);
|
97
|
+
// Setup mutation observers only once, for all subscribers.
|
98
|
+
if (subscribers.length === 1) {
|
99
|
+
scrollableHostSubscription = this.watchScrollableHost(elementRef).subscribe((newScrollableHost) => {
|
100
|
+
newScrollableHostObservable.next();
|
101
|
+
newScrollableHostObservable.complete();
|
102
|
+
if (scrollableHost && scrollableHost !== newScrollableHost) {
|
103
|
+
notifySubscribers(subscribers);
|
104
|
+
}
|
105
|
+
scrollableHost = newScrollableHost;
|
106
|
+
newScrollableHostObservable = new Subject();
|
107
|
+
// Only subscribe to scroll events if the host element is defined.
|
108
|
+
/* istanbul ignore else */
|
109
|
+
if (newScrollableHost) {
|
110
|
+
scrollEventSubscription = fromEvent(newScrollableHost, 'scroll')
|
111
|
+
.pipe(takeUntil(newScrollableHostObservable))
|
112
|
+
.subscribe(() => {
|
113
|
+
notifySubscribers(subscribers);
|
114
|
+
});
|
115
|
+
}
|
116
|
+
});
|
117
|
+
}
|
118
|
+
// Teardown callback for the subscription.
|
119
|
+
subscriber.add(() => {
|
120
|
+
const subIndex = subscribers.indexOf(subscriber);
|
121
|
+
/* istanbul ignore else */
|
122
|
+
if (subIndex >= 0) {
|
123
|
+
subscribers.splice(subIndex, 1);
|
124
|
+
}
|
125
|
+
if (subscribers.length === 0) {
|
126
|
+
scrollableHostSubscription.unsubscribe();
|
127
|
+
scrollEventSubscription.unsubscribe();
|
128
|
+
newScrollableHostObservable.complete();
|
129
|
+
}
|
130
|
+
});
|
131
|
+
});
|
132
|
+
}
|
133
|
+
watchScrollableHostClipPathChanges(elementRef) {
|
134
|
+
if (!this.#resizeObserverSvc) {
|
135
|
+
return of('none');
|
136
|
+
}
|
137
|
+
return this.watchScrollableHost(elementRef).pipe(switchMap((scrollableHost) => {
|
138
|
+
if (!this.#resizeObserverSvc ||
|
139
|
+
!scrollableHost ||
|
140
|
+
scrollableHost === this.#windowRef.nativeWindow) {
|
141
|
+
return of('none');
|
142
|
+
}
|
143
|
+
return concat([
|
144
|
+
of(undefined),
|
145
|
+
this.#resizeObserverSvc.observe({ nativeElement: scrollableHost }),
|
146
|
+
]).pipe(debounceTime(0, animationFrameScheduler), map(() => {
|
147
|
+
const viewportSize = this.#getViewportSize();
|
148
|
+
const { top, left, width, height } = scrollableHost.getBoundingClientRect();
|
149
|
+
const right = Math.max(viewportSize.width - left - width, 0);
|
150
|
+
const bottom = Math.max(viewportSize.height - top - height, 0);
|
151
|
+
return `inset(${top}px ${right}px ${bottom}px ${left}px)`;
|
152
|
+
}));
|
153
|
+
}));
|
154
|
+
}
|
155
|
+
#findScrollableHost(element) {
|
156
|
+
const regex = /(auto|scroll)/;
|
157
|
+
const windowObj = this.#windowRef.nativeWindow;
|
158
|
+
const bodyObj = windowObj.document.body;
|
159
|
+
if (!element) {
|
160
|
+
return windowObj;
|
161
|
+
}
|
162
|
+
let style = windowObj.getComputedStyle(element);
|
163
|
+
let parent = element;
|
164
|
+
do {
|
165
|
+
parent = parent.parentNode;
|
166
|
+
// Return `window` if the parent element has been removed from the DOM.
|
167
|
+
if (!(parent instanceof HTMLElement)) {
|
168
|
+
return windowObj;
|
169
|
+
}
|
170
|
+
style = windowObj.getComputedStyle(parent);
|
171
|
+
} while (!regex.test(style.overflow) &&
|
172
|
+
!regex.test(style.overflowY) &&
|
173
|
+
parent !== bodyObj);
|
174
|
+
if (parent === bodyObj) {
|
175
|
+
return windowObj;
|
176
|
+
}
|
177
|
+
return parent;
|
178
|
+
}
|
179
|
+
#observeDocumentHiddenElementChanges(mutationObserver) {
|
180
|
+
mutationObserver.observe(document.documentElement, {
|
181
|
+
attributes: true,
|
182
|
+
attributeFilter: ['class', 'style', 'hidden'],
|
183
|
+
childList: true,
|
184
|
+
subtree: true,
|
185
|
+
});
|
186
|
+
}
|
187
|
+
#observeForScrollableHostChanges(element, mutationObserver) {
|
188
|
+
mutationObserver.disconnect();
|
189
|
+
const target = element instanceof HTMLElement ? element : document.documentElement;
|
190
|
+
mutationObserver.observe(target, {
|
191
|
+
attributes: true,
|
192
|
+
attributeFilter: ['class', 'style'],
|
193
|
+
childList: true,
|
194
|
+
subtree: true,
|
195
|
+
});
|
196
|
+
}
|
197
|
+
/**
|
198
|
+
* Determines if an element is "visible" in the DOM.
|
199
|
+
* @see https://stackoverflow.com/a/11639664/6178885
|
200
|
+
*/
|
201
|
+
#isElementVisible(elementRef) {
|
202
|
+
return !!elementRef.nativeElement?.offsetParent;
|
203
|
+
}
|
204
|
+
#getViewportSize() {
|
205
|
+
const win = this.#windowRef.nativeWindow;
|
206
|
+
const docElem = win.document.documentElement;
|
207
|
+
return {
|
208
|
+
width: docElem.clientWidth,
|
209
|
+
height: docElem.clientHeight,
|
210
|
+
};
|
211
|
+
}
|
212
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkyScrollableHostService, deps: [{ token: i1.SkyMutationObserverService }, { token: i2.SkyAppWindowRef }, { token: i3.SkyResizeObserverService, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
213
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkyScrollableHostService, providedIn: 'root' }); }
|
214
|
+
}
|
215
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkyScrollableHostService, decorators: [{
|
216
|
+
type: Injectable,
|
217
|
+
args: [{
|
218
|
+
providedIn: 'root',
|
219
|
+
}]
|
220
|
+
}], ctorParameters: function () { return [{ type: i1.SkyMutationObserverService }, { type: i2.SkyAppWindowRef }, { type: i3.SkyResizeObserverService, decorators: [{
|
221
|
+
type: Optional
|
222
|
+
}] }]; } });
|
223
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Nyb2xsYWJsZS1ob3N0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvY29yZS9zcmMvbGliL21vZHVsZXMvc2Nyb2xsYWJsZS1ob3N0L3Njcm9sbGFibGUtaG9zdC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBYyxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRWpFLE9BQU8sRUFDTCxVQUFVLEVBQ1YsT0FBTyxFQUdQLHVCQUF1QixFQUN2QixNQUFNLEVBQ04sU0FBUyxFQUNULEVBQUUsR0FDSCxNQUFNLE1BQU0sQ0FBQztBQUNkLE9BQU8sRUFBRSxZQUFZLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7QUFNekUsU0FBUyxpQkFBaUIsQ0FBQyxXQUFrQyxFQUFFLElBQWM7SUFDM0UsS0FBSyxNQUFNLFVBQVUsSUFBSSxXQUFXLEVBQUU7UUFDcEMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztLQUN2QjtBQUNILENBQUM7QUFLRCxNQUFNLE9BQU8sd0JBQXdCO0lBQ25DLG9CQUFvQixDQUE2QjtJQUVqRCxVQUFVLENBQWtCO0lBRTVCLGtCQUFrQixDQUF1QztJQUV6RCxZQUNFLG1CQUErQyxFQUMvQyxTQUEwQixFQUNkLGlCQUE0QztRQUV4RCxJQUFJLENBQUMsb0JBQW9CLEdBQUcsbUJBQW1CLENBQUM7UUFDaEQsSUFBSSxDQUFDLGtCQUFrQixHQUFHLGlCQUFpQixDQUFDO1FBQzVDLElBQUksQ0FBQyxVQUFVLEdBQUcsU0FBUyxDQUFDO0lBQzlCLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksaUJBQWlCLENBQUMsVUFBc0I7UUFDN0MsT0FBTyxJQUFJLENBQUMsbUJBQW1CLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lB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QUF3QjtrSEFBeEIsd0JBQXdCLGNBRnZCLE1BQU07OzJGQUVQLHdCQUF3QjtrQkFIcEMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQVdJLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbGVtZW50UmVmLCBJbmplY3RhYmxlLCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQge1xuICBPYnNlcnZhYmxlLFxuICBTdWJqZWN0LFxuICBTdWJzY3JpYmVyLFxuICBTdWJzY3JpcHRpb24sXG4gIGFuaW1hdGlvbkZyYW1lU2NoZWR1bGVyLFxuICBjb25jYXQsXG4gIGZyb21FdmVudCxcbiAgb2YsXG59IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBtYXAsIHN3aXRjaE1hcCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBTa3lNdXRhdGlvbk9ic2VydmVyU2VydmljZSB9IGZyb20gJy4uL211dGF0aW9uL211dGF0aW9uLW9ic2VydmVyLXNlcnZpY2UnO1xuaW1wb3J0IHsgU2t5UmVzaXplT2JzZXJ2ZXJTZXJ2aWNlIH0gZnJvbSAnLi4vcmVzaXplLW9ic2VydmVyL3Jlc2l6ZS1vYnNlcnZlci5zZXJ2aWNlJztcbmltcG9ydCB7IFNreUFwcFdpbmRvd1JlZiB9IGZyb20gJy4uL3dpbmRvdy93aW5kb3ctcmVmJztcblxuZnVuY3Rpb24gbm90aWZ5U3Vic2NyaWJlcnMoc3Vic2NyaWJlcnM6IFN1YnNjcmliZXI8dW5rbm93bj5bXSwgaXRlbT86IHVua25vd24pIHtcbiAgZm9yIChjb25zdCBzdWJzY3JpYmVyIG9mIHN1YnNjcmliZXJzKSB7XG4gICAgc3Vic2NyaWJlci5uZXh0KGl0ZW0pO1xuICB9XG59XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lTY3JvbGxhYmxlSG9zdFNlcnZpY2Uge1xuICAjbXV0YXRpb25PYnNlcnZlclN2YzogU2t5TXV0YXRpb25PYnNlcnZlclNlcnZpY2U7XG5cbiAgI3dpbmRvd1JlZjogU2t5QXBwV2luZG93UmVmO1xuXG4gICNyZXNpemVPYnNlcnZlclN2YzogU2t5UmVzaXplT2JzZXJ2ZXJTZXJ2aWNlIHwgdW5kZWZpbmVkO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIG11dGF0aW9uT2JzZXJ2ZXJTdmM6IFNreU11dGF0aW9uT2JzZXJ2ZXJTZXJ2aWNlLFxuICAgIHdpbmRvd1JlZjogU2t5QXBwV2luZG93UmVmLFxuICAgIEBPcHRpb25hbCgpIHJlc2l6ZU9ic2VydmVyU3ZjPzogU2t5UmVzaXplT2JzZXJ2ZXJTZXJ2aWNlXG4gICkge1xuICAgIHRoaXMuI211dGF0aW9uT2JzZXJ2ZXJTdmMgPSBtdXRhdGlvbk9ic2VydmVyU3ZjO1xuICAgIHRoaXMuI3Jlc2l6ZU9ic2VydmVyU3ZjID0gcmVzaXplT2JzZXJ2ZXJTdmM7XG4gICAgdGhpcy4jd2luZG93UmVmID0gd2luZG93UmVmO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIGdpdmVuIGVsZW1lbnQncyBjdXJyZW50IHNjcm9sbGFibGUgaG9zdFxuICAgKiBAcGFyYW0gZWxlbWVudFJlZiBUaGUgZWxlbWVudCB3aG9zZSBzY3JvbGxhYmxlIGhvc3QgaXMgYmVpbmcgcmVxdWVzdGVkXG4gICAqIEByZXR1cm5zIFRoZSBjdXJyZW50IHNjcm9sbGFibGUgaG9zdFxuICAgKi9cbiAgcHVibGljIGdldFNjcm9sbGFibGVIb3N0KGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYpOiBIVE1MRWxlbWVudCB8IFdpbmRvdyB7XG4gICAgcmV0dXJuIHRoaXMuI2ZpbmRTY3JvbGxhYmxlSG9zdChlbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYW4gb2JzZXJ2YWJsZSB3aGljaCBlbWl0cyB0aGUgZ2l2ZW4gZWxlbWVudCdzIGN1cnJlbnQgc2Nyb2xsYWJsZSBob3N0XG4gICAqIEBwYXJhbSBlbGVtZW50UmVmIFRoZSBlbGVtZW50IHdob3NlIHNjcm9sbGFibGUgaG9zdCBpcyBiZWluZyByZXF1ZXN0ZWRcbiAgICogQHJldHVybnMgQW4gb2JzZXJ2YWJsZSB3aGljaCBlbWl0cyB0aGUgY3VycmVudCBzY3JvbGxhYmxlIGhvc3QgZWxlbWVudC5cbiAgICogQGludGVybmFsXG4gICAqL1xuICBwdWJsaWMgd2F0Y2hTY3JvbGxhYmxlSG9zdChcbiAgICBlbGVtZW50UmVmOiBFbGVtZW50UmVmXG4gICk6IE9ic2VydmFibGU8SFRNTEVsZW1lbnQgfCBXaW5kb3c+IHtcbiAgICBjb25zdCBzdWJzY3JpYmVyczogU3Vic2NyaWJlcjxIVE1MRWxlbWVudCB8IFdpbmRvdz5bXSA9IFtdO1xuXG4gICAgbGV0IHBhcmVudE11dGF0aW9uT2JzZXJ2ZXI6IE11dGF0aW9uT2JzZXJ2ZXI7XG4gICAgbGV0IGRvY3VtZW50SGlkZGVuRWxlbWVudE11dGF0aW9uT2JzZXJ2ZXI6IE11dGF0aW9uT2JzZXJ2ZXI7XG5cbiAgICByZXR1cm4gbmV3IE9ic2VydmFibGUoKHN1YnNjcmliZXIpID0+IHtcbiAgICAgIHN1YnNjcmliZXJzLnB1c2goc3Vic2NyaWJlcik7XG5cbiAgICAgIGxldCBzY3JvbGxhYmxlSG9zdDogSFRNTEVsZW1lbnQgfCBXaW5kb3cgfCB1bmRlZmluZWQgPVxuICAgICAgICB0aGlzLiNmaW5kU2Nyb2xsYWJsZUhvc3QoZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KTtcblxuICAgICAgLy8gU2V0dXAgbXV0YXRpb24gb2JzZXJ2ZXJzIG9ubHkgb25jZSwgZm9yIGFsbCBzdWJzY3JpYmVycy5cbiAgICAgIGlmIChzdWJzY3JpYmVycy5sZW5ndGggPT09IDEpIHtcbiAgICAgICAgcGFyZW50TXV0YXRpb25PYnNlcnZlciA9IHRoaXMuI211dGF0aW9uT2JzZXJ2ZXJTdmMuY3JlYXRlKCgpID0+IHtcbiAgICAgICAgICBjb25zdCBuZXdTY3JvbGxhYmxlSG9zdCA9IHRoaXMuI2ZpbmRTY3JvbGxhYmxlSG9zdChcbiAgICAgICAgICAgIGVsZW1lbnRSZWYubmF0aXZlRWxlbWVudFxuICAgICAgICAgICk7XG5cbiAgICAgICAgICAvLyBSZXNldCBvYnNlcnZlciBpZiBzY3JvbGxhYmxlIGhvc3QgY2hhbmdlcy5cbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICBuZXdTY3JvbGxhYmxlSG9zdCAhPT0gc2Nyb2xsYWJsZUhvc3QgJiZcbiAgICAgICAgICAgIHRoaXMuI2lzRWxlbWVudFZpc2libGUoZWxlbWVudFJlZilcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIHNjcm9sbGFibGVIb3N0ID0gbmV3U2Nyb2xsYWJsZUhvc3Q7XG5cbiAgICAgICAgICAgIHRoaXMuI29ic2VydmVGb3JTY3JvbGxhYmxlSG9zdENoYW5nZXMoXG4gICAgICAgICAgICAgIHNjcm9sbGFibGVIb3N0LFxuICAgICAgICAgICAgICBwYXJlbnRNdXRhdGlvbk9ic2VydmVyXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBub3RpZnlTdWJzY3JpYmVycyhzdWJzY3JpYmVycywgc2Nyb2xsYWJsZUhvc3QpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy4jb2JzZXJ2ZUZvclNjcm9sbGFibGVIb3N0Q2hhbmdlcyhcbiAgICAgICAgICBzY3JvbGxhYmxlSG9zdCxcbiAgICAgICAgICBwYXJlbnRNdXRhdGlvbk9ic2VydmVyXG4gICAgICAgICk7XG5cbiAgICAgICAgZG9jdW1lbnRIaWRkZW5FbGVtZW50TXV0YXRpb25PYnNlcnZlciA9XG4gICAgICAgICAgdGhpcy4jbXV0YXRpb25PYnNlcnZlclN2Yy5jcmVhdGUoKCkgPT4ge1xuICAgICAgICAgICAgaWYgKHNjcm9sbGFibGVIb3N0ICYmICF0aGlzLiNpc0VsZW1lbnRWaXNpYmxlKGVsZW1lbnRSZWYpKSB7XG4gICAgICAgICAgICAgIC8vIElmIHRoZSBzY3JvbGxhYmxlIGhvc3QgaXMgbm90IHZpc2libGUsIHNldCBpdCB0byB1bmRlZmluZWQgYW5kIHVuc3Vic2NyaWJlIGZyb20gaXRzIG11dGF0aW9uIGNoYW5nZXMuXG4gICAgICAgICAgICAgIC8vIFRoZW4sIG9ic2VydmUgdGhlIGRvY3VtZW50IGVsZW1lbnQgc28gdGhhdCBhIG5ldyBzY3JvbGxhYmxlIGhvc3QgY2FuIGJlIGZvdW5kLlxuICAgICAgICAgICAgICBzY3JvbGxhYmxlSG9zdCA9IHVuZGVmaW5lZDtcblxuICAgICAgICAgICAgICB0aGlzLiNvYnNlcnZlRm9yU2Nyb2xsYWJsZUhvc3RDaGFuZ2VzKFxuICAgICAgICAgICAgICAgIHNjcm9sbGFibGVIb3N0LFxuICAgICAgICAgICAgICAgIHBhcmVudE11dGF0aW9uT2JzZXJ2ZXJcbiAgICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgICBub3RpZnlTdWJzY3JpYmVycyhzdWJzY3JpYmVycywgc2Nyb2xsYWJsZUhvc3QpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuI29ic2VydmVEb2N1bWVudEhpZGRlbkVsZW1lbnRDaGFuZ2VzKFxuICAgICAgICAgIGRvY3VtZW50SGlkZGVuRWxlbWVudE11dGF0aW9uT2JzZXJ2ZXJcbiAgICAgICAgKTtcbiAgICAgIH1cblxuICAgICAgLy8gRW1pdCB0aGUgc2Nyb2xsYWJsZSBob3N0IHRvIHRoZSBzdWJzY3JpYmVyLlxuICAgICAgc3Vic2NyaWJlci5uZXh0KHNjcm9sbGFibGVIb3N0KTtcblxuICAgICAgLy8gVGVhcmRvd24gY2FsbGJhY2sgZm9yIHRoZSBzdWJzY3JpcHRpb24uXG4gICAgICBzdWJzY3JpYmVyLmFkZCgoKSA9PiB7XG4gICAgICAgIGNvbnN0IHN1YkluZGV4ID0gc3Vic2NyaWJlcnMuaW5kZXhPZihzdWJzY3JpYmVyKTtcblxuICAgICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgICAgICBpZiAoc3ViSW5kZXggPj0gMCkge1xuICAgICAgICAgIHN1YnNjcmliZXJzLnNwbGljZShzdWJJbmRleCwgMSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoc3Vic2NyaWJlcnMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgZG9jdW1lbnRIaWRkZW5FbGVtZW50TXV0YXRpb25PYnNlcnZlci5kaXNjb25uZWN0KCk7XG4gICAgICAgICAgcGFyZW50TXV0YXRpb25PYnNlcnZlci5kaXNjb25uZWN0KCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYW4gb2JzZXJ2YWJsZSB3aGljaCBlbWl0cyB3aGVuZXZlciB0aGUgZWxlbWVudCdzIHNjcm9sbGFibGUgaG9zdCBlbWl0cyBhIHNjcm9sbCBldmVudC4gVGhlIG9ic2VydmFibGUgd2lsbCBhbHdheXMgZW1pdCB0aGUgc2Nyb2xsIGV2ZW50cyBmcm9tIHRoZSBlbGVtZW50cyBjdXJyZW50IHNjcm9sbGFibGUgaG9zdCBhbmQgd2lsbCB1cGRhdGUgYmFzZWQgb24gYW55IHNjcm9sbGFibGUgaG9zdCBjaGFuZ2VzLiBUaGUgb2JzZXJ2YWJsZSB3aWxsIGFsc28gZW1pdCBvbmNlIHdoZW5ldmVyIHRoZSBzY3JvbGxhYmxlIGhvc3QgY2hhbmdlcy5cbiAgICogQHBhcmFtIGVsZW1lbnRSZWYgVGhlIGVsZW1lbnQgd2hvc2Ugc2Nyb2xsYWJsZSBob3N0IHNjcm9sbCBldmVudHMgYXJlIGJlaW5nIHJlcXVlc3RlZFxuICAgKiBAcmV0dXJucyBBbiBvYnNlcnZhYmxlIHdoaWNoIGVtaXRzIHdoZW4gdGhlIGVsZW1lbnRzIHNjcm9sbGFibGUgaG9zdCBpcyBzY3JvbGxlZCBvciBpcyBjaGFuZ2VkXG4gICAqL1xuICBwdWJsaWMgd2F0Y2hTY3JvbGxhYmxlSG9zdFNjcm9sbEV2ZW50cyhcbiAgICBlbGVtZW50UmVmOiBFbGVtZW50UmVmXG4gICk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgIGNvbnN0IHN1YnNjcmliZXJzOiBTdWJzY3JpYmVyPHZvaWQ+W10gPSBbXTtcblxuICAgIGxldCBzY3JvbGxhYmxlSG9zdDogSFRNTEVsZW1lbnQgfCBXaW5kb3c7XG5cbiAgICBsZXQgbmV3U2Nyb2xsYWJsZUhvc3RPYnNlcnZhYmxlID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgICBsZXQgc2Nyb2xsYWJsZUhvc3RTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcbiAgICBsZXQgc2Nyb2xsRXZlbnRTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcblxuICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZSgoc3Vic2NyaWJlcikgPT4ge1xuICAgICAgc3Vic2NyaWJlcnMucHVzaChzdWJzY3JpYmVyKTtcblxuICAgICAgLy8gU2V0dXAgbXV0YXRpb24gb2JzZXJ2ZXJzIG9ubHkgb25jZSwgZm9yIGFsbCBzdWJzY3JpYmVycy5cbiAgICAgIGlmIChzdWJzY3JpYmVycy5sZW5ndGggPT09IDEpIHtcbiAgICAgICAgc2Nyb2xsYWJsZUhvc3RTdWJzY3JpcHRpb24gPSB0aGlzLndhdGNoU2Nyb2xsYWJsZUhvc3QoXG4gICAgICAgICAgZWxlbWVudFJlZlxuICAgICAgICApLnN1YnNjcmliZSgobmV3U2Nyb2xsYWJsZUhvc3QpID0+IHtcbiAgICAgICAgICBuZXdTY3JvbGxhYmxlSG9zdE9ic2VydmFibGUubmV4dCgpO1xuICAgICAgICAgIG5ld1Njcm9sbGFibGVIb3N0T2JzZXJ2YWJsZS5jb21wbGV0ZSgpO1xuXG4gICAgICAgICAgaWYgKHNjcm9sbGFibGVIb3N0ICYmIHNjcm9sbGFibGVIb3N0ICE9PSBuZXdTY3JvbGxhYmxlSG9zdCkge1xuICAgICAgICAgICAgbm90aWZ5U3Vic2NyaWJlcnMoc3Vic2NyaWJlcnMpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHNjcm9sbGFibGVIb3N0ID0gbmV3U2Nyb2xsYWJsZUhvc3Q7XG4gICAgICAgICAgbmV3U2Nyb2xsYWJsZUhvc3RPYnNlcnZhYmxlID0gbmV3IFN1YmplY3QoKTtcblxuICAgICAgICAgIC8vIE9ubHkgc3Vic2NyaWJlIHRvIHNjcm9sbCBldmVudHMgaWYgdGhlIGhvc3QgZWxlbWVudCBpcyBkZWZpbmVkLlxuICAgICAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgICAgICAgaWYgKG5ld1Njcm9sbGFibGVIb3N0KSB7XG4gICAgICAgICAgICBzY3JvbGxFdmVudFN1YnNjcmlwdGlvbiA9IGZyb21FdmVudChuZXdTY3JvbGxhYmxlSG9zdCwgJ3Njcm9sbCcpXG4gICAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbChuZXdTY3JvbGxhYmxlSG9zdE9ic2VydmFibGUpKVxuICAgICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICBub3RpZnlTdWJzY3JpYmVycyhzdWJzY3JpYmVycyk7XG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIC8vIFRlYXJkb3duIGNhbGxiYWNrIGZvciB0aGUgc3Vic2NyaXB0aW9uLlxuICAgICAgc3Vic2NyaWJlci5hZGQoKCkgPT4ge1xuICAgICAgICBjb25zdCBzdWJJbmRleCA9IHN1YnNjcmliZXJzLmluZGV4T2Yoc3Vic2NyaWJlcik7XG5cbiAgICAgICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICAgICAgaWYgKHN1YkluZGV4ID49IDApIHtcbiAgICAgICAgICBzdWJzY3JpYmVycy5zcGxpY2Uoc3ViSW5kZXgsIDEpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHN1YnNjcmliZXJzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgIHNjcm9sbGFibGVIb3N0U3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgICAgc2Nyb2xsRXZlbnRTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgICBuZXdTY3JvbGxhYmxlSG9zdE9ic2VydmFibGUuY29tcGxldGUoKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgd2F0Y2hTY3JvbGxhYmxlSG9zdENsaXBQYXRoQ2hhbmdlcyhcbiAgICBlbGVtZW50UmVmOiBFbGVtZW50UmVmXG4gICk6IE9ic2VydmFibGU8c3RyaW5nPiB7XG4gICAgaWYgKCF0aGlzLiNyZXNpemVPYnNlcnZlclN2Yykge1xuICAgICAgcmV0dXJuIG9mKCdub25lJyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMud2F0Y2hTY3JvbGxhYmxlSG9zdChlbGVtZW50UmVmKS5waXBlKFxuICAgICAgc3dpdGNoTWFwKChzY3JvbGxhYmxlSG9zdCkgPT4ge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgIXRoaXMuI3Jlc2l6ZU9ic2VydmVyU3ZjIHx8XG4gICAgICAgICAgIXNjcm9sbGFibGVIb3N0IHx8XG4gICAgICAgICAgc2Nyb2xsYWJsZUhvc3QgPT09IHRoaXMuI3dpbmRvd1JlZi5uYXRpdmVXaW5kb3dcbiAgICAgICAgKSB7XG4gICAgICAgICAgcmV0dXJuIG9mKCdub25lJyk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gY29uY2F0KFtcbiAgICAgICAgICBvZih1bmRlZmluZWQpLFxuICAgICAgICAgIHRoaXMuI3Jlc2l6ZU9ic2VydmVyU3ZjLm9ic2VydmUoeyBuYXRpdmVFbGVtZW50OiBzY3JvbGxhYmxlSG9zdCB9KSxcbiAgICAgICAgXSkucGlwZShcbiAgICAgICAgICBkZWJvdW5jZVRpbWUoMCwgYW5pbWF0aW9uRnJhbWVTY2hlZHVsZXIpLFxuICAgICAgICAgIG1hcCgoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCB2aWV3cG9ydFNpemUgPSB0aGlzLiNnZXRWaWV3cG9ydFNpemUoKTtcbiAgICAgICAgICAgIGNvbnN0IHsgdG9wLCBsZWZ0LCB3aWR0aCwgaGVpZ2h0IH0gPSAoXG4gICAgICAgICAgICAgIHNjcm9sbGFibGVIb3N0IGFzIEhUTUxFbGVtZW50XG4gICAgICAgICAgICApLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgICAgICAgY29uc3QgcmlnaHQgPSBNYXRoLm1heCh2aWV3cG9ydFNpemUud2lkdGggLSBsZWZ0IC0gd2lkdGgsIDApO1xuICAgICAgICAgICAgY29uc3QgYm90dG9tID0gTWF0aC5tYXgodmlld3BvcnRTaXplLmhlaWdodCAtIHRvcCAtIGhlaWdodCwgMCk7XG4gICAgICAgICAgICByZXR1cm4gYGluc2V0KCR7dG9wfXB4ICR7cmlnaHR9cHggJHtib3R0b219cHggJHtsZWZ0fXB4KWA7XG4gICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gICNmaW5kU2Nyb2xsYWJsZUhvc3QoZWxlbWVudDogSFRNTEVsZW1lbnQgfCB1bmRlZmluZWQpOiBIVE1MRWxlbWVudCB8IFdpbmRvdyB7XG4gICAgY29uc3QgcmVnZXggPSAvKGF1dG98c2Nyb2xsKS87XG4gICAgY29uc3Qgd2luZG93T2JqID0gdGhpcy4jd2luZG93UmVmLm5hdGl2ZVdpbmRvdztcbiAgICBjb25zdCBib2R5T2JqID0gd2luZG93T2JqLmRvY3VtZW50LmJvZHk7XG5cbiAgICBpZiAoIWVsZW1lbnQpIHtcbiAgICAgIHJldHVybiB3aW5kb3dPYmo7XG4gICAgfVxuXG4gICAgbGV0IHN0eWxlID0gd2luZG93T2JqLmdldENvbXB1dGVkU3R5bGUoZWxlbWVudCk7XG4gICAgbGV0IHBhcmVudCA9IGVsZW1lbnQ7XG5cbiAgICBkbyB7XG4gICAgICBwYXJlbnQgPSBwYXJlbnQucGFyZW50Tm9kZSBhcyBIVE1MRWxlbWVudDtcblxuICAgICAgLy8gUmV0dXJuIGB3aW5kb3dgIGlmIHRoZSBwYXJlbnQgZWxlbWVudCBoYXMgYmVlbiByZW1vdmVkIGZyb20gdGhlIERPTS5cbiAgICAgIGlmICghKHBhcmVudCBpbnN0YW5jZW9mIEhUTUxFbGVtZW50KSkge1xuICAgICAgICByZXR1cm4gd2luZG93T2JqO1xuICAgICAgfVxuXG4gICAgICBzdHlsZSA9IHdpbmRvd09iai5nZXRDb21wdXRlZFN0eWxlKHBhcmVudCk7XG4gICAgfSB3aGlsZSAoXG4gICAgICAhcmVnZXgudGVzdChzdHlsZS5vdmVyZmxvdykgJiZcbiAgICAgICFyZWdleC50ZXN0KHN0eWxlLm92ZXJmbG93WSkgJiZcbiAgICAgIHBhcmVudCAhPT0gYm9keU9ialxuICAgICk7XG5cbiAgICBpZiAocGFyZW50ID09PSBib2R5T2JqKSB7XG4gICAgICByZXR1cm4gd2luZG93T2JqO1xuICAgIH1cblxuICAgIHJldHVybiBwYXJlbnQ7XG4gIH1cblxuICAjb2JzZXJ2ZURvY3VtZW50SGlkZGVuRWxlbWVudENoYW5nZXMobXV0YXRpb25PYnNlcnZlcjogTXV0YXRpb25PYnNlcnZlcikge1xuICAgIG11dGF0aW9uT2JzZXJ2ZXIub2JzZXJ2ZShkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQsIHtcbiAgICAgIGF0dHJpYnV0ZXM6IHRydWUsXG4gICAgICBhdHRyaWJ1dGVGaWx0ZXI6IFsnY2xhc3MnLCAnc3R5bGUnLCAnaGlkZGVuJ10sXG4gICAgICBjaGlsZExpc3Q6IHRydWUsXG4gICAgICBzdWJ0cmVlOiB0cnVlLFxuICAgIH0pO1xuICB9XG5cbiAgI29ic2VydmVGb3JTY3JvbGxhYmxlSG9zdENoYW5nZXMoXG4gICAgZWxlbWVudDogSFRNTEVsZW1lbnQgfCBXaW5kb3cgfCB1bmRlZmluZWQsXG4gICAgbXV0YXRpb25PYnNlcnZlcjogTXV0YXRpb25PYnNlcnZlclxuICApIHtcbiAgICBtdXRhdGlvbk9ic2VydmVyLmRpc2Nvbm5lY3QoKTtcblxuICAgIGNvbnN0IHRhcmdldCA9XG4gICAgICBlbGVtZW50IGluc3RhbmNlb2YgSFRNTEVsZW1lbnQgPyBlbGVtZW50IDogZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50O1xuXG4gICAgbXV0YXRpb25PYnNlcnZlci5vYnNlcnZlKHRhcmdldCwge1xuICAgICAgYXR0cmlidXRlczogdHJ1ZSxcbiAgICAgIGF0dHJpYnV0ZUZpbHRlcjogWydjbGFzcycsICdzdHlsZSddLFxuICAgICAgY2hpbGRMaXN0OiB0cnVlLFxuICAgICAgc3VidHJlZTogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZXRlcm1pbmVzIGlmIGFuIGVsZW1lbnQgaXMgXCJ2aXNpYmxlXCIgaW4gdGhlIERPTS5cbiAgICogQHNlZSBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL2EvMTE2Mzk2NjQvNjE3ODg4NVxuICAgKi9cbiAgI2lzRWxlbWVudFZpc2libGUoZWxlbWVudFJlZjogRWxlbWVudFJlZik6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIWVsZW1lbnRSZWYubmF0aXZlRWxlbWVudD8ub2Zmc2V0UGFyZW50O1xuICB9XG5cbiAgI2dldFZpZXdwb3J0U2l6ZSgpOiB7IHdpZHRoOiBudW1iZXI7IGhlaWdodDogbnVtYmVyIH0ge1xuICAgIGNvbnN0IHdpbiA9IHRoaXMuI3dpbmRvd1JlZi5uYXRpdmVXaW5kb3c7XG4gICAgY29uc3QgZG9jRWxlbSA9IHdpbi5kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQ7XG5cbiAgICByZXR1cm4ge1xuICAgICAgd2lkdGg6IGRvY0VsZW0uY2xpZW50V2lkdGgsXG4gICAgICBoZWlnaHQ6IGRvY0VsZW0uY2xpZW50SGVpZ2h0LFxuICAgIH07XG4gIH1cbn1cbiJdfQ==
|
@@ -0,0 +1,72 @@
|
|
1
|
+
/* eslint-disable eqeqeq */
|
2
|
+
// This file is mostly ported from the Angular 4.x NumberPipe in order to maintain the old
|
3
|
+
// behavior of using the `Intl` API for formatting numbers rather than having to register every
|
4
|
+
// supported locale.
|
5
|
+
// https://github.com/angular/angular/blob/4.4.x/packages/common/src/pipes/number_pipe.ts
|
6
|
+
import { SkyIntlNumberFormatStyle, SkyIntlNumberFormatter } from '@skyux/i18n';
|
7
|
+
function isNumeric(value) {
|
8
|
+
return !isNaN(value - parseFloat(value));
|
9
|
+
}
|
10
|
+
function parseIntAutoRadix(text) {
|
11
|
+
const result = parseInt(text, 10);
|
12
|
+
/* istanbul ignore next */
|
13
|
+
if (isNaN(result)) {
|
14
|
+
throw new Error('Invalid integer literal when parsing ' + text);
|
15
|
+
}
|
16
|
+
return result;
|
17
|
+
}
|
18
|
+
// Need to add the following to classes which contain static methods.
|
19
|
+
// See: https://github.com/ng-packagr/ng-packagr/issues/641
|
20
|
+
// @dynamic
|
21
|
+
export class SkyNumberFormatUtility {
|
22
|
+
static { this._NUMBER_FORMAT_REGEXP = /^(\d+)?\.((\d+)(-(\d+))?)?$/; }
|
23
|
+
static formatNumber(locale, value, style, digits, currency = null, currencyAsSymbol = false, currencySign) {
|
24
|
+
if (value == null) {
|
25
|
+
return null;
|
26
|
+
}
|
27
|
+
// Convert strings to numbers
|
28
|
+
value = typeof value === 'string' && isNumeric(value) ? +value : value;
|
29
|
+
if (typeof value !== 'number') {
|
30
|
+
throw Error(`SkyInvalidPipeArgument: '${value}'`);
|
31
|
+
}
|
32
|
+
let minInt = undefined;
|
33
|
+
let minFraction = undefined;
|
34
|
+
let maxFraction = undefined;
|
35
|
+
if (style !== SkyIntlNumberFormatStyle.Currency) {
|
36
|
+
// rely on Intl default for currency
|
37
|
+
minInt = 1;
|
38
|
+
minFraction = 0;
|
39
|
+
maxFraction = 3;
|
40
|
+
}
|
41
|
+
if (digits) {
|
42
|
+
const parts = digits.match(this._NUMBER_FORMAT_REGEXP);
|
43
|
+
if (parts === null) {
|
44
|
+
throw new Error(`${digits} is not a valid digit info for number pipes`);
|
45
|
+
}
|
46
|
+
/* istanbul ignore else */
|
47
|
+
if (parts[1] != null) {
|
48
|
+
// min integer digits
|
49
|
+
minInt = parseIntAutoRadix(parts[1]);
|
50
|
+
}
|
51
|
+
/* istanbul ignore else */
|
52
|
+
if (parts[3] != null) {
|
53
|
+
// min fraction digits
|
54
|
+
minFraction = parseIntAutoRadix(parts[3]);
|
55
|
+
}
|
56
|
+
/* istanbul ignore else */
|
57
|
+
if (parts[5] != null) {
|
58
|
+
// max fraction digits
|
59
|
+
maxFraction = parseIntAutoRadix(parts[5]);
|
60
|
+
}
|
61
|
+
}
|
62
|
+
return SkyIntlNumberFormatter.format(value, locale, style, {
|
63
|
+
minimumIntegerDigits: minInt,
|
64
|
+
minimumFractionDigits: minFraction,
|
65
|
+
maximumFractionDigits: maxFraction,
|
66
|
+
currency: currency,
|
67
|
+
currencyAsSymbol: currencyAsSymbol,
|
68
|
+
currencySign: currencySign,
|
69
|
+
});
|
70
|
+
}
|
71
|
+
}
|
72
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtYmVyLWZvcm1hdC11dGlsaXR5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2NvcmUvc3JjL2xpYi9tb2R1bGVzL3NoYXJlZC9udW1iZXItZm9ybWF0L251bWJlci1mb3JtYXQtdXRpbGl0eS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwyQkFBMkI7QUFDM0IsMEZBQTBGO0FBQzFGLCtGQUErRjtBQUMvRixvQkFBb0I7QUFDcEIseUZBQXlGO0FBQ3pGLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUUvRSxTQUFTLFNBQVMsQ0FBQyxLQUFVO0lBQzNCLE9BQU8sQ0FBQyxLQUFLLENBQUMsS0FBSyxHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0FBQzNDLENBQUM7QUFFRCxTQUFTLGlCQUFpQixDQUFDLElBQVk7SUFDckMsTUFBTSxNQUFNLEdBQVcsUUFBUSxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQztJQUUxQywwQkFBMEI7SUFDMUIsSUFBSSxLQUFLLENBQUMsTUFBTSxDQUFDLEVBQUU7UUFDakIsTUFBTSxJQUFJLEtBQUssQ0FBQyx1Q0FBdUMsR0FBRyxJQUFJLENBQUMsQ0FBQztLQUNqRTtJQUVELE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUM7QUFFRCxxRUFBcUU7QUFDckUsMkRBQTJEO0FBQzNELFdBQVc7QUFDWCxNQUFNLE9BQU8sc0JBQXNCO2FBQ2xCLDBCQUFxQixHQUFHLDZCQUE2QixDQUFDO0lBRTlELE1BQU0sQ0FBQyxZQUFZLENBQ3hCLE1BQWMsRUFDZCxLQUFzQixFQUN0QixLQUErQixFQUMvQixNQUFzQixFQUN0QixXQUEwQixJQUFJLEVBQzlCLGdCQUFnQixHQUFHLEtBQUssRUFDeEIsWUFBd0M7UUFFeEMsSUFBSSxLQUFLLElBQUksSUFBSSxFQUFFO1lBQ2pCLE9BQU8sSUFBSSxDQUFDO1NBQ2I7UUFFRCw2QkFBNkI7UUFDN0IsS0FBSyxHQUFHLE9BQU8sS0FBSyxLQUFLLFFBQVEsSUFBSSxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7UUFDdkUsSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLEVBQUU7WUFDN0IsTUFBTSxLQUFLLENBQUMsNEJBQTRCLEtBQUssR0FBRyxDQUFDLENBQUM7U0FDbkQ7UUFFRCxJQUFJLE1BQU0sR0FBdUIsU0FBUyxDQUFDO1FBQzNDLElBQUksV0FBVyxHQUF1QixTQUFTLENBQUM7UUFDaEQsSUFBSSxXQUFXLEdBQXVCLFNBQVMsQ0FBQztRQUNoRCxJQUFJLEtBQUssS0FBSyx3QkFBd0IsQ0FBQyxRQUFRLEVBQUU7WUFDL0Msb0NBQW9DO1lBQ3BDLE1BQU0sR0FBRyxDQUFDLENBQUM7WUFDWCxXQUFXLEdBQUcsQ0FBQyxDQUFDO1lBQ2hCLFdBQVcsR0FBRyxDQUFDLENBQUM7U0FDakI7UUFFRCxJQUFJLE1BQU0sRUFBRTtZQUNWLE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLENBQUM7WUFFdkQsSUFBSSxLQUFLLEtBQUssSUFBSSxFQUFFO2dCQUNsQixNQUFNLElBQUksS0FBSyxDQUFDLEdBQUcsTUFBTSw2Q0FBNkMsQ0FBQyxDQUFDO2FBQ3pFO1lBRUQsMEJBQTBCO1lBQzFCLElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksRUFBRTtnQkFDcEIscUJBQXFCO2dCQUNyQixNQUFNLEdBQUcsaUJBQWlCLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDdEM7WUFFRCwwQkFBMEI7WUFDMUIsSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxFQUFFO2dCQUNwQixzQkFBc0I7Z0JBQ3RCLFdBQVcsR0FBRyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUMzQztZQUVELDBCQUEwQjtZQUMxQixJQUFJLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLEVBQUU7Z0JBQ3BCLHNCQUFzQjtnQkFDdEIsV0FBVyxHQUFHLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQzNDO1NBQ0Y7UUFFRCxPQUFPLHNCQUFzQixDQUFDLE1BQU0sQ0FBQyxLQUFlLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtZQUNuRSxvQkFBb0IsRUFBRSxNQUFNO1lBQzVCLHFCQUFxQixFQUFFLFdBQVc7WUFDbEMscUJBQXFCLEVBQUUsV0FBVztZQUNsQyxRQUFRLEVBQUUsUUFBUTtZQUNsQixnQkFBZ0IsRUFBRSxnQkFBZ0I7WUFDbEMsWUFBWSxFQUFFLFlBQVk7U0FDM0IsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIGVxZXFlcSAqL1xuLy8gVGhpcyBmaWxlIGlzIG1vc3RseSBwb3J0ZWQgZnJvbSB0aGUgQW5ndWxhciA0LnggTnVtYmVyUGlwZSBpbiBvcmRlciB0byBtYWludGFpbiB0aGUgb2xkXG4vLyBiZWhhdmlvciBvZiB1c2luZyB0aGUgYEludGxgIEFQSSBmb3IgZm9ybWF0dGluZyBudW1iZXJzIHJhdGhlciB0aGFuIGhhdmluZyB0byByZWdpc3RlciBldmVyeVxuLy8gc3VwcG9ydGVkIGxvY2FsZS5cbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbmd1bGFyL2FuZ3VsYXIvYmxvYi80LjQueC9wYWNrYWdlcy9jb21tb24vc3JjL3BpcGVzL251bWJlcl9waXBlLnRzXG5pbXBvcnQgeyBTa3lJbnRsTnVtYmVyRm9ybWF0U3R5bGUsIFNreUludGxOdW1iZXJGb3JtYXR0ZXIgfSBmcm9tICdAc2t5dXgvaTE4bic7XG5cbmZ1bmN0aW9uIGlzTnVtZXJpYyh2YWx1ZTogYW55KTogYm9vbGVhbiB7XG4gIHJldHVybiAhaXNOYU4odmFsdWUgLSBwYXJzZUZsb2F0KHZhbHVlKSk7XG59XG5cbmZ1bmN0aW9uIHBhcnNlSW50QXV0b1JhZGl4KHRleHQ6IHN0cmluZyk6IG51bWJlciB7XG4gIGNvbnN0IHJlc3VsdDogbnVtYmVyID0gcGFyc2VJbnQodGV4dCwgMTApO1xuXG4gIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gIGlmIChpc05hTihyZXN1bHQpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIGludGVnZXIgbGl0ZXJhbCB3aGVuIHBhcnNpbmcgJyArIHRleHQpO1xuICB9XG5cbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxuLy8gTmVlZCB0byBhZGQgdGhlIGZvbGxvd2luZyB0byBjbGFzc2VzIHdoaWNoIGNvbnRhaW4gc3RhdGljIG1ldGhvZHMuXG4vLyBTZWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9uZy1wYWNrYWdyL25nLXBhY2thZ3IvaXNzdWVzLzY0MVxuLy8gQGR5bmFtaWNcbmV4cG9ydCBjbGFzcyBTa3lOdW1iZXJGb3JtYXRVdGlsaXR5IHtcbiAgcHJpdmF0ZSBzdGF0aWMgX05VTUJFUl9GT1JNQVRfUkVHRVhQID0gL14oXFxkKyk/XFwuKChcXGQrKSgtKFxcZCspKT8pPyQvO1xuXG4gIHB1YmxpYyBzdGF0aWMgZm9ybWF0TnVtYmVyKFxuICAgIGxvY2FsZTogc3RyaW5nLFxuICAgIHZhbHVlOiBudW1iZXIgfCBzdHJpbmcsXG4gICAgc3R5bGU6IFNreUludGxOdW1iZXJGb3JtYXRTdHlsZSxcbiAgICBkaWdpdHM/OiBzdHJpbmcgfCBudWxsLFxuICAgIGN1cnJlbmN5OiBzdHJpbmcgfCBudWxsID0gbnVsbCxcbiAgICBjdXJyZW5jeUFzU3ltYm9sID0gZmFsc2UsXG4gICAgY3VycmVuY3lTaWduPzogJ2FjY291bnRpbmcnIHwgJ3N0YW5kYXJkJ1xuICApOiBzdHJpbmcgfCBudWxsIHtcbiAgICBpZiAodmFsdWUgPT0gbnVsbCkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgLy8gQ29udmVydCBzdHJpbmdzIHRvIG51bWJlcnNcbiAgICB2YWx1ZSA9IHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycgJiYgaXNOdW1lcmljKHZhbHVlKSA/ICt2YWx1ZSA6IHZhbHVlO1xuICAgIGlmICh0eXBlb2YgdmFsdWUgIT09ICdudW1iZXInKSB7XG4gICAgICB0aHJvdyBFcnJvcihgU2t5SW52YWxpZFBpcGVBcmd1bWVudDogJyR7dmFsdWV9J2ApO1xuICAgIH1cblxuICAgIGxldCBtaW5JbnQ6IG51bWJlciB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcbiAgICBsZXQgbWluRnJhY3Rpb246IG51bWJlciB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcbiAgICBsZXQgbWF4RnJhY3Rpb246IG51bWJlciB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcbiAgICBpZiAoc3R5bGUgIT09IFNreUludGxOdW1iZXJGb3JtYXRTdHlsZS5DdXJyZW5jeSkge1xuICAgICAgLy8gcmVseSBvbiBJbnRsIGRlZmF1bHQgZm9yIGN1cnJlbmN5XG4gICAgICBtaW5JbnQgPSAxO1xuICAgICAgbWluRnJhY3Rpb24gPSAwO1xuICAgICAgbWF4RnJhY3Rpb24gPSAzO1xuICAgIH1cblxuICAgIGlmIChkaWdpdHMpIHtcbiAgICAgIGNvbnN0IHBhcnRzID0gZGlnaXRzLm1hdGNoKHRoaXMuX05VTUJFUl9GT1JNQVRfUkVHRVhQKTtcblxuICAgICAgaWYgKHBhcnRzID09PSBudWxsKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgJHtkaWdpdHN9IGlzIG5vdCBhIHZhbGlkIGRpZ2l0IGluZm8gZm9yIG51bWJlciBwaXBlc2ApO1xuICAgICAgfVxuXG4gICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgICAgaWYgKHBhcnRzWzFdICE9IG51bGwpIHtcbiAgICAgICAgLy8gbWluIGludGVnZXIgZGlnaXRzXG4gICAgICAgIG1pbkludCA9IHBhcnNlSW50QXV0b1JhZGl4KHBhcnRzWzFdKTtcbiAgICAgIH1cblxuICAgICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICAgIGlmIChwYXJ0c1szXSAhPSBudWxsKSB7XG4gICAgICAgIC8vIG1pbiBmcmFjdGlvbiBkaWdpdHNcbiAgICAgICAgbWluRnJhY3Rpb24gPSBwYXJzZUludEF1dG9SYWRpeChwYXJ0c1szXSk7XG4gICAgICB9XG5cbiAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgICBpZiAocGFydHNbNV0gIT0gbnVsbCkge1xuICAgICAgICAvLyBtYXggZnJhY3Rpb24gZGlnaXRzXG4gICAgICAgIG1heEZyYWN0aW9uID0gcGFyc2VJbnRBdXRvUmFkaXgocGFydHNbNV0pO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBTa3lJbnRsTnVtYmVyRm9ybWF0dGVyLmZvcm1hdCh2YWx1ZSBhcyBudW1iZXIsIGxvY2FsZSwgc3R5bGUsIHtcbiAgICAgIG1pbmltdW1JbnRlZ2VyRGlnaXRzOiBtaW5JbnQsXG4gICAgICBtaW5pbXVtRnJhY3Rpb25EaWdpdHM6IG1pbkZyYWN0aW9uLFxuICAgICAgbWF4aW11bUZyYWN0aW9uRGlnaXRzOiBtYXhGcmFjdGlvbixcbiAgICAgIGN1cnJlbmN5OiBjdXJyZW5jeSxcbiAgICAgIGN1cnJlbmN5QXNTeW1ib2w6IGN1cnJlbmN5QXNTeW1ib2wsXG4gICAgICBjdXJyZW5jeVNpZ246IGN1cnJlbmN5U2lnbixcbiAgICB9KTtcbiAgfVxufVxuIl19
|
@@ -0,0 +1,50 @@
|
|
1
|
+
/**
|
2
|
+
* NOTICE: DO NOT MODIFY THIS FILE!
|
3
|
+
* The contents of this file were automatically generated by
|
4
|
+
* the 'ng generate @skyux/i18n:lib-resources-module lib/modules/shared/sky-core' schematic.
|
5
|
+
* To update this file, simply rerun the command.
|
6
|
+
*/
|
7
|
+
import { NgModule } from '@angular/core';
|
8
|
+
import { SKY_LIB_RESOURCES_PROVIDERS, SkyI18nModule, getLibStringForLocale, } from '@skyux/i18n';
|
9
|
+
import * as i0 from "@angular/core";
|
10
|
+
const RESOURCES = {
|
11
|
+
'EN-US': {
|
12
|
+
skyux_numeric_billions_symbol: { message: 'B' },
|
13
|
+
skyux_numeric_millions_symbol: { message: 'M' },
|
14
|
+
skyux_numeric_thousands_symbol: { message: 'K' },
|
15
|
+
skyux_numeric_trillions_symbol: { message: 'T' },
|
16
|
+
},
|
17
|
+
};
|
18
|
+
export class SkyCoreResourcesProvider {
|
19
|
+
getString(localeInfo, name) {
|
20
|
+
return getLibStringForLocale(RESOURCES, localeInfo.locale, name);
|
21
|
+
}
|
22
|
+
}
|
23
|
+
/**
|
24
|
+
* Import into any component library module that needs to use resource strings.
|
25
|
+
*/
|
26
|
+
export class SkyCoreResourcesModule {
|
27
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkyCoreResourcesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
28
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.1.7", ngImport: i0, type: SkyCoreResourcesModule, exports: [SkyI18nModule] }); }
|
29
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkyCoreResourcesModule, providers: [
|
30
|
+
{
|
31
|
+
provide: SKY_LIB_RESOURCES_PROVIDERS,
|
32
|
+
useClass: SkyCoreResourcesProvider,
|
33
|
+
multi: true,
|
34
|
+
},
|
35
|
+
], imports: [SkyI18nModule] }); }
|
36
|
+
}
|
37
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkyCoreResourcesModule, decorators: [{
|
38
|
+
type: NgModule,
|
39
|
+
args: [{
|
40
|
+
exports: [SkyI18nModule],
|
41
|
+
providers: [
|
42
|
+
{
|
43
|
+
provide: SKY_LIB_RESOURCES_PROVIDERS,
|
44
|
+
useClass: SkyCoreResourcesProvider,
|
45
|
+
multi: true,
|
46
|
+
},
|
47
|
+
],
|
48
|
+
}]
|
49
|
+
}] });
|
50
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2t5LWNvcmUtcmVzb3VyY2VzLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9jb3JlL3NyYy9saWIvbW9kdWxlcy9zaGFyZWQvc2t5LWNvcmUtcmVzb3VyY2VzLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7R0FLRztBQUNILE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUNMLDJCQUEyQixFQUUzQixhQUFhLEVBR2IscUJBQXFCLEdBQ3RCLE1BQU0sYUFBYSxDQUFDOztBQUVyQixNQUFNLFNBQVMsR0FBMEM7SUFDdkQsT0FBTyxFQUFFO1FBQ1AsNkJBQTZCLEVBQUUsRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFO1FBQy9DLDZCQUE2QixFQUFFLEVBQUUsT0FBTyxFQUFFLEdBQUcsRUFBRTtRQUMvQyw4QkFBOEIsRUFBRSxFQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUU7UUFDaEQsOEJBQThCLEVBQUUsRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFO0tBQ2pEO0NBQ0YsQ0FBQztBQUVGLE1BQU0sT0FBTyx3QkFBd0I7SUFDNUIsU0FBUyxDQUNkLFVBQTRCLEVBQzVCLElBQVk7UUFFWixPQUFPLHFCQUFxQixDQUFDLFNBQVMsRUFBRSxVQUFVLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ25FLENBQUM7Q0FDRjtBQUVEOztHQUVHO0FBV0gsTUFBTSxPQUFPLHNCQUFzQjs4R0FBdEIsc0JBQXNCOytHQUF0QixzQkFBc0IsWUFUdkIsYUFBYTsrR0FTWixzQkFBc0IsYUFSdEI7WUFDVDtnQkFDRSxPQUFPLEVBQUUsMkJBQTJCO2dCQUNwQyxRQUFRLEVBQUUsd0JBQXdCO2dCQUNsQyxLQUFLLEVBQUUsSUFBSTthQUNaO1NBQ0YsWUFQUyxhQUFhOzsyRkFTWixzQkFBc0I7a0JBVmxDLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFLENBQUMsYUFBYSxDQUFDO29CQUN4QixTQUFTLEVBQUU7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLDJCQUEyQjs0QkFDcEMsUUFBUSxFQUFFLHdCQUF3Qjs0QkFDbEMsS0FBSyxFQUFFLElBQUk7eUJBQ1o7cUJBQ0Y7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIE5PVElDRTogRE8gTk9UIE1PRElGWSBUSElTIEZJTEUhXG4gKiBUaGUgY29udGVudHMgb2YgdGhpcyBmaWxlIHdlcmUgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgYnlcbiAqIHRoZSAnbmcgZ2VuZXJhdGUgQHNreXV4L2kxOG46bGliLXJlc291cmNlcy1tb2R1bGUgbGliL21vZHVsZXMvc2hhcmVkL3NreS1jb3JlJyBzY2hlbWF0aWMuXG4gKiBUbyB1cGRhdGUgdGhpcyBmaWxlLCBzaW1wbHkgcmVydW4gdGhlIGNvbW1hbmQuXG4gKi9cbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBTS1lfTElCX1JFU09VUkNFU19QUk9WSURFUlMsXG4gIFNreUFwcExvY2FsZUluZm8sXG4gIFNreUkxOG5Nb2R1bGUsXG4gIFNreUxpYlJlc291cmNlcyxcbiAgU2t5TGliUmVzb3VyY2VzUHJvdmlkZXIsXG4gIGdldExpYlN0cmluZ0ZvckxvY2FsZSxcbn0gZnJvbSAnQHNreXV4L2kxOG4nO1xuXG5jb25zdCBSRVNPVVJDRVM6IHsgW2xvY2FsZTogc3RyaW5nXTogU2t5TGliUmVzb3VyY2VzIH0gPSB7XG4gICdFTi1VUyc6IHtcbiAgICBza3l1eF9udW1lcmljX2JpbGxpb25zX3N5bWJvbDogeyBtZXNzYWdlOiAnQicgfSxcbiAgICBza3l1eF9udW1lcmljX21pbGxpb25zX3N5bWJvbDogeyBtZXNzYWdlOiAnTScgfSxcbiAgICBza3l1eF9udW1lcmljX3Rob3VzYW5kc19zeW1ib2w6IHsgbWVzc2FnZTogJ0snIH0sXG4gICAgc2t5dXhfbnVtZXJpY190cmlsbGlvbnNfc3ltYm9sOiB7IG1lc3NhZ2U6ICdUJyB9LFxuICB9LFxufTtcblxuZXhwb3J0IGNsYXNzIFNreUNvcmVSZXNvdXJjZXNQcm92aWRlciBpbXBsZW1lbnRzIFNreUxpYlJlc291cmNlc1Byb3ZpZGVyIHtcbiAgcHVibGljIGdldFN0cmluZyhcbiAgICBsb2NhbGVJbmZvOiBTa3lBcHBMb2NhbGVJbmZvLFxuICAgIG5hbWU6IHN0cmluZ1xuICApOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiBnZXRMaWJTdHJpbmdGb3JMb2NhbGUoUkVTT1VSQ0VTLCBsb2NhbGVJbmZvLmxvY2FsZSwgbmFtZSk7XG4gIH1cbn1cblxuLyoqXG4gKiBJbXBvcnQgaW50byBhbnkgY29tcG9uZW50IGxpYnJhcnkgbW9kdWxlIHRoYXQgbmVlZHMgdG8gdXNlIHJlc291cmNlIHN0cmluZ3MuXG4gKi9cbkBOZ01vZHVsZSh7XG4gIGV4cG9ydHM6IFtTa3lJMThuTW9kdWxlXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogU0tZX0xJQl9SRVNPVVJDRVNfUFJPVklERVJTLFxuICAgICAgdXNlQ2xhc3M6IFNreUNvcmVSZXNvdXJjZXNQcm92aWRlcixcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgIH0sXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFNreUNvcmVSZXNvdXJjZXNNb2R1bGUge31cbiJdfQ==
|
@@ -0,0 +1,31 @@
|
|
1
|
+
import { Injectable } from '@angular/core';
|
2
|
+
import * as i0 from "@angular/core";
|
3
|
+
import * as i1 from "@angular/platform-browser";
|
4
|
+
/**
|
5
|
+
* Provides a method for setting a formatted title on the current window.
|
6
|
+
*/
|
7
|
+
export class SkyAppTitleService {
|
8
|
+
#title;
|
9
|
+
constructor(title) {
|
10
|
+
this.#title = title;
|
11
|
+
}
|
12
|
+
/**
|
13
|
+
* Sets the title on the current window.
|
14
|
+
* @param args An array of title parts. The parts will be concatenated with a hyphen between
|
15
|
+
* each part.
|
16
|
+
*/
|
17
|
+
setTitle(args) {
|
18
|
+
if (args?.titleParts) {
|
19
|
+
this.#title.setTitle(args.titleParts.join(' - '));
|
20
|
+
}
|
21
|
+
}
|
22
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkyAppTitleService, deps: [{ token: i1.Title }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
23
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkyAppTitleService, providedIn: 'root' }); }
|
24
|
+
}
|
25
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkyAppTitleService, decorators: [{
|
26
|
+
type: Injectable,
|
27
|
+
args: [{
|
28
|
+
providedIn: 'root',
|
29
|
+
}]
|
30
|
+
}], ctorParameters: function () { return [{ type: i1.Title }]; } });
|
31
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGl0bGUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9jb3JlL3NyYy9saWIvbW9kdWxlcy90aXRsZS90aXRsZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQUszQzs7R0FFRztBQUlILE1BQU0sT0FBTyxrQkFBa0I7SUFDN0IsTUFBTSxDQUFRO0lBRWQsWUFBWSxLQUFZO1FBQ3RCLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO0lBQ3RCLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksUUFBUSxDQUFDLElBQW9DO1FBQ2xELElBQUksSUFBSSxFQUFFLFVBQVUsRUFBRTtZQUNwQixJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1NBQ25EO0lBQ0gsQ0FBQzs4R0FoQlUsa0JBQWtCO2tIQUFsQixrQkFBa0IsY0FGakIsTUFBTTs7MkZBRVAsa0JBQWtCO2tCQUg5QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRpdGxlIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5cbmltcG9ydCB7IFNreUFwcFNldFRpdGxlQXJncyB9IGZyb20gJy4vc2V0LXRpdGxlLWFyZ3MnO1xuXG4vKipcbiAqIFByb3ZpZGVzIGEgbWV0aG9kIGZvciBzZXR0aW5nIGEgZm9ybWF0dGVkIHRpdGxlIG9uIHRoZSBjdXJyZW50IHdpbmRvdy5cbiAqL1xuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIFNreUFwcFRpdGxlU2VydmljZSB7XG4gICN0aXRsZTogVGl0bGU7XG5cbiAgY29uc3RydWN0b3IodGl0bGU6IFRpdGxlKSB7XG4gICAgdGhpcy4jdGl0bGUgPSB0aXRsZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSB0aXRsZSBvbiB0aGUgY3VycmVudCB3aW5kb3cuXG4gICAqIEBwYXJhbSBhcmdzIEFuIGFycmF5IG9mIHRpdGxlIHBhcnRzLiBUaGUgcGFydHMgd2lsbCBiZSBjb25jYXRlbmF0ZWQgd2l0aCBhIGh5cGhlbiBiZXR3ZWVuXG4gICAqIGVhY2ggcGFydC5cbiAgICovXG4gIHB1YmxpYyBzZXRUaXRsZShhcmdzOiBTa3lBcHBTZXRUaXRsZUFyZ3MgfCB1bmRlZmluZWQpOiB2b2lkIHtcbiAgICBpZiAoYXJncz8udGl0bGVQYXJ0cykge1xuICAgICAgdGhpcy4jdGl0bGUuc2V0VGl0bGUoYXJncy50aXRsZVBhcnRzLmpvaW4oJyAtICcpKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
@@ -0,0 +1,64 @@
|
|
1
|
+
import { Directive } from '@angular/core';
|
2
|
+
import * as i0 from "@angular/core";
|
3
|
+
import * as i1 from "../mutation/mutation-observer-service";
|
4
|
+
/**
|
5
|
+
* Trims whitespace in each text node that is a direct descendent of the current element.
|
6
|
+
*/
|
7
|
+
export class SkyTrimDirective {
|
8
|
+
#elRef;
|
9
|
+
#obs;
|
10
|
+
constructor(elRef, mutationObs) {
|
11
|
+
this.#elRef = elRef;
|
12
|
+
this.#obs = mutationObs.create((mutations) => {
|
13
|
+
const nodes = [];
|
14
|
+
// Only trim white space inside direct descendants of the current element.
|
15
|
+
for (const mutation of mutations) {
|
16
|
+
if (mutation.target.parentNode === elRef.nativeElement) {
|
17
|
+
nodes.push(mutation.target);
|
18
|
+
}
|
19
|
+
}
|
20
|
+
this.#trim(nodes);
|
21
|
+
});
|
22
|
+
this.#observe();
|
23
|
+
}
|
24
|
+
ngOnInit() {
|
25
|
+
const el = this.#elRef.nativeElement;
|
26
|
+
this.#trim(Array.from(el.childNodes));
|
27
|
+
}
|
28
|
+
ngOnDestroy() {
|
29
|
+
this.#disconnect();
|
30
|
+
}
|
31
|
+
#observe() {
|
32
|
+
this.#obs.observe(this.#elRef.nativeElement, {
|
33
|
+
characterData: true,
|
34
|
+
subtree: true,
|
35
|
+
});
|
36
|
+
}
|
37
|
+
#disconnect() {
|
38
|
+
this.#obs.disconnect();
|
39
|
+
}
|
40
|
+
#trim(nodes) {
|
41
|
+
// Suspend the MutationObserver so altering the text content of each node
|
42
|
+
// doesn't retrigger the observe callback.
|
43
|
+
this.#disconnect();
|
44
|
+
for (const node of nodes) {
|
45
|
+
if (node.nodeType === Node.TEXT_NODE && node.textContent) {
|
46
|
+
const textContent = node.textContent;
|
47
|
+
const textContentTrimmed = textContent.trim();
|
48
|
+
if (textContent !== textContentTrimmed) {
|
49
|
+
node.textContent = textContentTrimmed;
|
50
|
+
}
|
51
|
+
}
|
52
|
+
}
|
53
|
+
this.#observe();
|
54
|
+
}
|
55
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkyTrimDirective, deps: [{ token: i0.ElementRef }, { token: i1.SkyMutationObserverService }], target: i0.ɵɵFactoryTarget.Directive }); }
|
56
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.7", type: SkyTrimDirective, selector: "[skyTrim]", ngImport: i0 }); }
|
57
|
+
}
|
58
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkyTrimDirective, decorators: [{
|
59
|
+
type: Directive,
|
60
|
+
args: [{
|
61
|
+
selector: '[skyTrim]',
|
62
|
+
}]
|
63
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.SkyMutationObserverService }]; } });
|
64
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJpbS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvY29yZS9zcmMvbGliL21vZHVsZXMvdHJpbS90cmltLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFpQyxNQUFNLGVBQWUsQ0FBQzs7O0FBSXpFOztHQUVHO0FBSUgsTUFBTSxPQUFPLGdCQUFnQjtJQUMzQixNQUFNLENBQWE7SUFFbkIsSUFBSSxDQUFtQjtJQUV2QixZQUFZLEtBQWlCLEVBQUUsV0FBdUM7UUFDcEUsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7UUFFcEIsSUFBSSxDQUFDLElBQUksR0FBRyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUMsU0FBMkIsRUFBRSxFQUFFO1lBQzdELE1BQU0sS0FBSyxHQUFXLEVBQUUsQ0FBQztZQUV6QiwwRUFBMEU7WUFDMUUsS0FBSyxNQUFNLFFBQVEsSUFBSSxTQUFTLEVBQUU7Z0JBQ2hDLElBQUksUUFBUSxDQUFDLE1BQU0sQ0FBQyxVQUFVLEtBQUssS0FBSyxDQUFDLGFBQWEsRUFBRTtvQkFDdEQsS0FBSyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7aUJBQzdCO2FBQ0Y7WUFFRCxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3BCLENBQUMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ2xCLENBQUM7SUFFTSxRQUFRO1FBQ2IsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUF3QixDQUFDO1FBQ2hELElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRU0sV0FBVztRQUNoQixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsRUFBRTtZQUMzQyxhQUFhLEVBQUUsSUFBSTtZQUNuQixPQUFPLEVBQUUsSUFBSTtTQUNkLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lBRUQsS0FBSyxDQUFDLEtBQWE7UUFDakIseUVBQXlFO1FBQ3pFLDBDQUEwQztRQUMxQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFFbkIsS0FBSyxNQUFNLElBQUksSUFBSSxLQUFLLEVBQUU7WUFDeEIsSUFBSSxJQUFJLENBQUMsUUFBUSxLQUFLLElBQUksQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRTtnQkFDeEQsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQztnQkFDckMsTUFBTSxrQkFBa0IsR0FBRyxXQUFXLENBQUMsSUFBSSxFQUFFLENBQUM7Z0JBRTlDLElBQUksV0FBVyxLQUFLLGtCQUFrQixFQUFFO29CQUN0QyxJQUFJLENBQUMsV0FBVyxHQUFHLGtCQUFrQixDQUFDO2lCQUN2QzthQUNGO1NBQ0Y7UUFFRCxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDbEIsQ0FBQzs4R0E3RFUsZ0JBQWdCO2tHQUFoQixnQkFBZ0I7OzJGQUFoQixnQkFBZ0I7a0JBSDVCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLFdBQVc7aUJBQ3RCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBPbkRlc3Ryb3ksIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBTa3lNdXRhdGlvbk9ic2VydmVyU2VydmljZSB9IGZyb20gJy4uL211dGF0aW9uL211dGF0aW9uLW9ic2VydmVyLXNlcnZpY2UnO1xuXG4vKipcbiAqIFRyaW1zIHdoaXRlc3BhY2UgaW4gZWFjaCB0ZXh0IG5vZGUgdGhhdCBpcyBhIGRpcmVjdCBkZXNjZW5kZW50IG9mIHRoZSBjdXJyZW50IGVsZW1lbnQuXG4gKi9cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tza3lUcmltXScsXG59KVxuZXhwb3J0IGNsYXNzIFNreVRyaW1EaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gICNlbFJlZjogRWxlbWVudFJlZjtcblxuICAjb2JzOiBNdXRhdGlvbk9ic2VydmVyO1xuXG4gIGNvbnN0cnVjdG9yKGVsUmVmOiBFbGVtZW50UmVmLCBtdXRhdGlvbk9iczogU2t5TXV0YXRpb25PYnNlcnZlclNlcnZpY2UpIHtcbiAgICB0aGlzLiNlbFJlZiA9IGVsUmVmO1xuXG4gICAgdGhpcy4jb2JzID0gbXV0YXRpb25PYnMuY3JlYXRlKChtdXRhdGlvbnM6IE11dGF0aW9uUmVjb3JkW10pID0+IHtcbiAgICAgIGNvbnN0IG5vZGVzOiBOb2RlW10gPSBbXTtcblxuICAgICAgLy8gT25seSB0cmltIHdoaXRlIHNwYWNlIGluc2lkZSBkaXJlY3QgZGVzY2VuZGFudHMgb2YgdGhlIGN1cnJlbnQgZWxlbWVudC5cbiAgICAgIGZvciAoY29uc3QgbXV0YXRpb24gb2YgbXV0YXRpb25zKSB7XG4gICAgICAgIGlmIChtdXRhdGlvbi50YXJnZXQucGFyZW50Tm9kZSA9PT0gZWxSZWYubmF0aXZlRWxlbWVudCkge1xuICAgICAgICAgIG5vZGVzLnB1c2gobXV0YXRpb24udGFyZ2V0KTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICB0aGlzLiN0cmltKG5vZGVzKTtcbiAgICB9KTtcblxuICAgIHRoaXMuI29ic2VydmUoKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBjb25zdCBlbCA9IHRoaXMuI2VsUmVmLm5hdGl2ZUVsZW1lbnQgYXMgRWxlbWVudDtcbiAgICB0aGlzLiN0cmltKEFycmF5LmZyb20oZWwuY2hpbGROb2RlcykpO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuI2Rpc2Nvbm5lY3QoKTtcbiAgfVxuXG4gICNvYnNlcnZlKCk6IHZvaWQge1xuICAgIHRoaXMuI29icy5vYnNlcnZlKHRoaXMuI2VsUmVmLm5hdGl2ZUVsZW1lbnQsIHtcbiAgICAgIGNoYXJhY3RlckRhdGE6IHRydWUsXG4gICAgICBzdWJ0cmVlOiB0cnVlLFxuICAgIH0pO1xuICB9XG5cbiAgI2Rpc2Nvbm5lY3QoKTogdm9pZCB7XG4gICAgdGhpcy4jb2JzLmRpc2Nvbm5lY3QoKTtcbiAgfVxuXG4gICN0cmltKG5vZGVzOiBOb2RlW10pOiB2b2lkIHtcbiAgICAvLyBTdXNwZW5kIHRoZSBNdXRhdGlvbk9ic2VydmVyIHNvIGFsdGVyaW5nIHRoZSB0ZXh0IGNvbnRlbnQgb2YgZWFjaCBub2RlXG4gICAgLy8gZG9lc24ndCByZXRyaWdnZXIgdGhlIG9ic2VydmUgY2FsbGJhY2suXG4gICAgdGhpcy4jZGlzY29ubmVjdCgpO1xuXG4gICAgZm9yIChjb25zdCBub2RlIG9mIG5vZGVzKSB7XG4gICAgICBpZiAobm9kZS5ub2RlVHlwZSA9PT0gTm9kZS5URVhUX05PREUgJiYgbm9kZS50ZXh0Q29udGVudCkge1xuICAgICAgICBjb25zdCB0ZXh0Q29udGVudCA9IG5vZGUudGV4dENvbnRlbnQ7XG4gICAgICAgIGNvbnN0IHRleHRDb250ZW50VHJpbW1lZCA9IHRleHRDb250ZW50LnRyaW0oKTtcblxuICAgICAgICBpZiAodGV4dENvbnRlbnQgIT09IHRleHRDb250ZW50VHJpbW1lZCkge1xuICAgICAgICAgIG5vZGUudGV4dENvbnRlbnQgPSB0ZXh0Q29udGVudFRyaW1tZWQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLiNvYnNlcnZlKCk7XG4gIH1cbn1cbiJdfQ==
|
@@ -2,15 +2,15 @@ import { NgModule } from '@angular/core';
|
|
2
2
|
import { SkyTrimDirective } from './trim.directive';
|
3
3
|
import * as i0 from "@angular/core";
|
4
4
|
export class SkyTrimModule {
|
5
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkyTrimModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
6
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.1.7", ngImport: i0, type: SkyTrimModule, declarations: [SkyTrimDirective], exports: [SkyTrimDirective] }); }
|
7
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkyTrimModule }); }
|
5
8
|
}
|
6
|
-
|
7
|
-
SkyTrimModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.9", ngImport: i0, type: SkyTrimModule, declarations: [SkyTrimDirective], exports: [SkyTrimDirective] });
|
8
|
-
SkyTrimModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyTrimModule });
|
9
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyTrimModule, decorators: [{
|
9
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkyTrimModule, decorators: [{
|
10
10
|
type: NgModule,
|
11
11
|
args: [{
|
12
12
|
declarations: [SkyTrimDirective],
|
13
13
|
exports: [SkyTrimDirective],
|
14
14
|
}]
|
15
15
|
}] });
|
16
|
-
//# sourceMappingURL=data:application/json;base64,
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJpbS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvY29yZS9zcmMvbGliL21vZHVsZXMvdHJpbS90cmltLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXpDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDOztBQU1wRCxNQUFNLE9BQU8sYUFBYTs4R0FBYixhQUFhOytHQUFiLGFBQWEsaUJBSFQsZ0JBQWdCLGFBQ3JCLGdCQUFnQjsrR0FFZixhQUFhOzsyRkFBYixhQUFhO2tCQUp6QixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRSxDQUFDLGdCQUFnQixDQUFDO29CQUNoQyxPQUFPLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQztpQkFDNUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBTa3lUcmltRGlyZWN0aXZlIH0gZnJvbSAnLi90cmltLmRpcmVjdGl2ZSc7XG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW1NreVRyaW1EaXJlY3RpdmVdLFxuICBleHBvcnRzOiBbU2t5VHJpbURpcmVjdGl2ZV0sXG59KVxuZXhwb3J0IGNsYXNzIFNreVRyaW1Nb2R1bGUge31cbiJdfQ==
|
@@ -9,13 +9,13 @@ export class SkyUIConfigService {
|
|
9
9
|
setConfig(key, value) {
|
10
10
|
return observableOf({});
|
11
11
|
}
|
12
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkyUIConfigService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
13
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkyUIConfigService, providedIn: 'root' }); }
|
12
14
|
}
|
13
|
-
|
14
|
-
SkyUIConfigService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyUIConfigService, providedIn: 'root' });
|
15
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyUIConfigService, decorators: [{
|
15
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkyUIConfigService, decorators: [{
|
16
16
|
type: Injectable,
|
17
17
|
args: [{
|
18
18
|
providedIn: 'root',
|
19
19
|
}]
|
20
20
|
}] });
|
21
|
-
//# sourceMappingURL=data:application/json;base64,
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWktY29uZmlnLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvY29yZS9zcmMvbGliL21vZHVsZXMvdWktY29uZmlnL3VpLWNvbmZpZy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFjLEVBQUUsSUFBSSxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7O0FBS3RELE1BQU0sT0FBTyxrQkFBa0I7SUFDdEIsU0FBUyxDQUFDLEdBQVcsRUFBRSxhQUFtQjtRQUMvQyxPQUFPLFlBQVksQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRUQsMEJBQTBCO0lBQ25CLFNBQVMsQ0FBQyxHQUFXLEVBQUUsS0FBVTtRQUN0QyxPQUFPLFlBQVksQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUMxQixDQUFDOzhHQVJVLGtCQUFrQjtrSEFBbEIsa0JBQWtCLGNBRmpCLE1BQU07OzJGQUVQLGtCQUFrQjtrQkFIOUIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IE9ic2VydmFibGUsIG9mIGFzIG9ic2VydmFibGVPZiB9IGZyb20gJ3J4anMnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgU2t5VUlDb25maWdTZXJ2aWNlIHtcbiAgcHVibGljIGdldENvbmZpZyhrZXk6IHN0cmluZywgZGVmYXVsdENvbmZpZz86IGFueSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIG9ic2VydmFibGVPZihkZWZhdWx0Q29uZmlnKTtcbiAgfVxuXG4gIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gIHB1YmxpYyBzZXRDb25maWcoa2V5OiBzdHJpbmcsIHZhbHVlOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiBvYnNlcnZhYmxlT2Yoe30pO1xuICB9XG59XG4iXX0=
|
@@ -1,10 +1,10 @@
|
|
1
1
|
import { Injectable } from '@angular/core';
|
2
2
|
import * as i0 from "@angular/core";
|
3
3
|
export class SkyViewkeeperHostOptions {
|
4
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkyViewkeeperHostOptions, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
5
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkyViewkeeperHostOptions }); }
|
4
6
|
}
|
5
|
-
|
6
|
-
SkyViewkeeperHostOptions.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyViewkeeperHostOptions });
|
7
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyViewkeeperHostOptions, decorators: [{
|
7
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkyViewkeeperHostOptions, decorators: [{
|
8
8
|
type: Injectable
|
9
9
|
}] });
|
10
|
-
//# sourceMappingURL=data:application/json;base64,
|
10
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlld2tlZXBlci1ob3N0LW9wdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvY29yZS9zcmMvbGliL21vZHVsZXMvdmlld2tlZXBlci92aWV3a2VlcGVyLWhvc3Qtb3B0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUszQyxNQUFNLE9BQU8sd0JBQXdCOzhHQUF4Qix3QkFBd0I7a0hBQXhCLHdCQUF3Qjs7MkZBQXhCLHdCQUF3QjtrQkFEcEMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgU2t5Vmlld2tlZXBlck9wdGlvbnMgfSBmcm9tICcuL3ZpZXdrZWVwZXItb3B0aW9ucyc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBTa3lWaWV3a2VlcGVySG9zdE9wdGlvbnMgaW1wbGVtZW50cyBTa3lWaWV3a2VlcGVyT3B0aW9ucyB7XG4gIHB1YmxpYyBib3VuZGFyeUVsPzogSFRNTEVsZW1lbnQ7XG5cbiAgcHVibGljIGVsPzogSFRNTEVsZW1lbnQ7XG5cbiAgcHVibGljIHNjcm9sbGFibGVIb3N0PzogSFRNTEVsZW1lbnQ7XG5cbiAgcHVibGljIHNldFdpZHRoPzogYm9vbGVhbjtcblxuICBwdWJsaWMgdmVydGljYWxPZmZzZXQ/OiBudW1iZXI7XG5cbiAgcHVibGljIHZlcnRpY2FsT2Zmc2V0RWw/OiBIVE1MRWxlbWVudDtcblxuICBwdWJsaWMgdmlld3BvcnRNYXJnaW5Ub3A/OiBudW1iZXI7XG59XG4iXX0=
|