@skyux/core 6.0.2 → 6.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (27) hide show
  1. package/documentation.json +104 -104
  2. package/esm2020/lib/modules/adapter-service/adapter.service.mjs +11 -7
  3. package/esm2020/lib/modules/affix/affix.service.mjs +7 -3
  4. package/esm2020/lib/modules/resize-observer/resize-observer-media-query.service.mjs +29 -22
  5. package/esm2020/lib/modules/resize-observer/resize-observer.service.mjs +17 -11
  6. package/esm2020/lib/modules/scrollable-host/scrollable-host.service.mjs +29 -26
  7. package/esm2020/testing/core-testing.module.mjs +29 -0
  8. package/esm2020/testing/mock-media-query.service.mjs +3 -1
  9. package/esm2020/testing/mock-ui-config.service.mjs +1 -1
  10. package/esm2020/testing/public-api.mjs +2 -1
  11. package/fesm2015/skyux-core-testing.mjs +28 -2
  12. package/fesm2015/skyux-core-testing.mjs.map +1 -1
  13. package/fesm2015/skyux-core.mjs +85 -65
  14. package/fesm2015/skyux-core.mjs.map +1 -1
  15. package/fesm2020/skyux-core-testing.mjs +28 -2
  16. package/fesm2020/skyux-core-testing.mjs.map +1 -1
  17. package/fesm2020/skyux-core.mjs +85 -64
  18. package/fesm2020/skyux-core.mjs.map +1 -1
  19. package/lib/modules/adapter-service/adapter.service.d.ts +1 -1
  20. package/lib/modules/affix/affix.service.d.ts +1 -1
  21. package/lib/modules/resize-observer/resize-observer-media-query.service.d.ts +1 -4
  22. package/lib/modules/resize-observer/resize-observer.service.d.ts +1 -2
  23. package/lib/modules/scrollable-host/scrollable-host.service.d.ts +7 -4
  24. package/package.json +2 -2
  25. package/testing/core-testing.module.d.ts +6 -0
  26. package/testing/mock-ui-config.service.d.ts +2 -1
  27. package/testing/public-api.d.ts +1 -0
@@ -27,8 +27,7 @@ export class SkyScrollableHostService {
27
27
  /**
28
28
  * Returns an observable which emits the given element's current scrollable host
29
29
  * @param elementRef The element whose scrollable host is being requested
30
- * @param completionObservable An observable which alerts the internal observers that they should complete
31
- * @returns An observable which emits the current scrollable host
30
+ * @returns An observable which emits the current scrollable host element.
32
31
  * @internal
33
32
  */
34
33
  watchScrollableHost(elementRef) {
@@ -38,11 +37,13 @@ export class SkyScrollableHostService {
38
37
  return new Observable((subscriber) => {
39
38
  subscribers.push(subscriber);
40
39
  let scrollableHost = this.findScrollableHost(elementRef.nativeElement);
40
+ // Setup mutation observers only once, for all subscribers.
41
41
  if (subscribers.length === 1) {
42
42
  parentMutationObserver = this.mutationObserverSvc.create(() => {
43
43
  const newScrollableHost = this.findScrollableHost(elementRef.nativeElement);
44
+ // Reset observer if scrollable host changes.
44
45
  if (newScrollableHost !== scrollableHost &&
45
- elementRef.nativeElement.offsetParent) {
46
+ this.isElementVisible(elementRef)) {
46
47
  scrollableHost = newScrollableHost;
47
48
  this.observeForScrollableHostChanges(scrollableHost, parentMutationObserver);
48
49
  notifySubscribers(subscribers, scrollableHost);
@@ -50,7 +51,9 @@ export class SkyScrollableHostService {
50
51
  });
51
52
  this.observeForScrollableHostChanges(scrollableHost, parentMutationObserver);
52
53
  documentHiddenElementMutationObserver = this.mutationObserverSvc.create(() => {
53
- if (scrollableHost && !elementRef.nativeElement.offsetParent) {
54
+ if (scrollableHost && !this.isElementVisible(elementRef)) {
55
+ // If the scrollable host is not visible, set it to undefined and unsubscribe from its mutation changes.
56
+ // Then, observe the document element so that a new scrollable host can be found.
54
57
  scrollableHost = undefined;
55
58
  this.observeForScrollableHostChanges(scrollableHost, parentMutationObserver);
56
59
  notifySubscribers(subscribers, scrollableHost);
@@ -58,10 +61,11 @@ export class SkyScrollableHostService {
58
61
  });
59
62
  this.observeDocumentHiddenElementChanges(documentHiddenElementMutationObserver);
60
63
  }
64
+ // Emit the scrollable host to the subscriber.
61
65
  subscriber.next(scrollableHost);
66
+ // Teardown callback for the subscription.
62
67
  subscriber.add(() => {
63
68
  const subIndex = subscribers.indexOf(subscriber);
64
- /* sanity check */
65
69
  /* istanbul ignore else */
66
70
  if (subIndex >= 0) {
67
71
  subscribers.splice(subIndex, 1);
@@ -76,7 +80,6 @@ export class SkyScrollableHostService {
76
80
  /**
77
81
  * 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.
78
82
  * @param elementRef The element whose scrollable host scroll events are being requested
79
- * @param completionObservable An observable which alerts the internal observers that they should complete
80
83
  * @returns An observable which emits when the elements scrollable host is scrolled or is changed
81
84
  */
82
85
  watchScrollableHostScrollEvents(elementRef) {
@@ -87,6 +90,7 @@ export class SkyScrollableHostService {
87
90
  let scrollEventSubscription;
88
91
  return new Observable((subscriber) => {
89
92
  subscribers.push(subscriber);
93
+ // Setup mutation observers only once, for all subscribers.
90
94
  if (subscribers.length === 1) {
91
95
  scrollableHostSubscription = this.watchScrollableHost(elementRef).subscribe((newScrollableHost) => {
92
96
  newScrollableHostObservable.next();
@@ -96,6 +100,8 @@ export class SkyScrollableHostService {
96
100
  }
97
101
  scrollableHost = newScrollableHost;
98
102
  newScrollableHostObservable = new Subject();
103
+ // Only subscribe to scroll events if the host element is defined.
104
+ /* istanbul ignore else */
99
105
  if (newScrollableHost) {
100
106
  scrollEventSubscription = fromEvent(newScrollableHost, 'scroll')
101
107
  .pipe(takeUntil(newScrollableHostObservable))
@@ -105,9 +111,9 @@ export class SkyScrollableHostService {
105
111
  }
106
112
  });
107
113
  }
114
+ // Teardown callback for the subscription.
108
115
  subscriber.add(() => {
109
116
  const subIndex = subscribers.indexOf(subscriber);
110
- /* sanity check */
111
117
  /* istanbul ignore else */
112
118
  if (subIndex >= 0) {
113
119
  subscribers.splice(subIndex, 1);
@@ -124,7 +130,6 @@ export class SkyScrollableHostService {
124
130
  const regex = /(auto|scroll)/;
125
131
  const windowObj = this.windowRef.nativeWindow;
126
132
  const bodyObj = windowObj.document.body;
127
- /* Sanity check */
128
133
  if (!element) {
129
134
  return windowObj;
130
135
  }
@@ -132,7 +137,7 @@ export class SkyScrollableHostService {
132
137
  let parent = element;
133
138
  do {
134
139
  parent = parent.parentNode;
135
- /* Sanity check for if this function is called for an element which has been removed from the DOM */
140
+ // Return `window` if the parent element has been removed from the DOM.
136
141
  if (!(parent instanceof HTMLElement)) {
137
142
  return windowObj;
138
143
  }
@@ -155,22 +160,20 @@ export class SkyScrollableHostService {
155
160
  }
156
161
  observeForScrollableHostChanges(element, mutationObserver) {
157
162
  mutationObserver.disconnect();
158
- if (element instanceof HTMLElement) {
159
- mutationObserver.observe(element, {
160
- attributes: true,
161
- attributeFilter: ['class', 'style'],
162
- childList: true,
163
- subtree: true,
164
- });
165
- }
166
- else {
167
- mutationObserver.observe(document.documentElement, {
168
- attributes: true,
169
- attributeFilter: ['class', 'style'],
170
- childList: true,
171
- subtree: true,
172
- });
173
- }
163
+ const target = element instanceof HTMLElement ? element : document.documentElement;
164
+ mutationObserver.observe(target, {
165
+ attributes: true,
166
+ attributeFilter: ['class', 'style'],
167
+ childList: true,
168
+ subtree: true,
169
+ });
170
+ }
171
+ /**
172
+ * Determines if an element is "visible" in the DOM.
173
+ * @see https://stackoverflow.com/a/11639664/6178885
174
+ */
175
+ isElementVisible(elementRef) {
176
+ return elementRef.nativeElement.offsetParent;
174
177
  }
175
178
  }
176
179
  SkyScrollableHostService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyScrollableHostService, deps: [{ token: i1.MutationObserverService }, { token: i2.SkyAppWindowRef }], target: i0.ɵɵFactoryTarget.Injectable });
@@ -181,4 +184,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImpor
181
184
  providedIn: 'root',
182
185
  }]
183
186
  }], ctorParameters: function () { return [{ type: i1.MutationObserverService }, { type: i2.SkyAppWindowRef }]; } });
184
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Nyb2xsYWJsZS1ob3N0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvY29yZS9zcmMvbGliL21vZHVsZXMvc2Nyb2xsYWJsZS1ob3N0L3Njcm9sbGFibGUtaG9zdC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBYyxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFdkQsT0FBTyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQTRCLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNoRixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFM0MsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDaEYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHNCQUFzQixDQUFDOzs7O0FBRXZELFNBQVMsaUJBQWlCLENBQUMsV0FBa0MsRUFBRSxJQUFjO0lBQzNFLEtBQUssTUFBTSxVQUFVLElBQUksV0FBVyxFQUFFO1FBQ3BDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7S0FDdkI7QUFDSCxDQUFDO0FBS0QsTUFBTSxPQUFPLHdCQUF3QjtJQUNuQyxZQUNVLG1CQUE0QyxFQUM1QyxTQUEwQjtRQUQxQix3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXlCO1FBQzVDLGNBQVMsR0FBVCxTQUFTLENBQWlCO0lBQ2pDLENBQUM7SUFFSjs7OztPQUlHO0lBQ0ksaUJBQWlCLENBQUMsVUFBc0I7UUFDN0MsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQzNELENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSSxtQkFBbUIsQ0FDeEIsVUFBc0I7UUFFdEIsTUFBTSxXQUFXLEdBQXVDLEVBQUUsQ0FBQztRQUMzRCxJQUFJLHNCQUF3QyxDQUFDO1FBQzdD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QUVsQyxnQkFBZ0IsQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUM5QixJQUFJLE9BQU8sWUFBWSxXQUFXLEVBQUU7WUFDbEMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRTtnQkFDaEMsVUFBVSxFQUFFLElBQUk7Z0JBQ2hCLGVBQWUsRUFBRSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUM7Z0JBQ25DLFNBQVMsRUFBRSxJQUFJO2dCQUNmLE9BQU8sRUFBRSxJQUFJO2FBQ2QsQ0FBQyxDQUFDO1NBQ0o7YUFBTTtZQUNMLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsZUFBZSxFQUFFO2dCQUNqRCxVQUFVLEVBQUUsSUFBSTtnQkFDaEIsZUFBZSxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQztnQkFDbkMsU0FBUyxFQUFFLElBQUk7Z0JBQ2YsT0FBTyxFQUFFLElBQUk7YUFDZCxDQUFDLENBQUM7U0FDSjtJQUNILENBQUM7O3FIQXpOVSx3QkFBd0I7eUhBQXhCLHdCQUF3QixjQUZ2QixNQUFNOzJGQUVQLHdCQUF3QjtrQkFIcEMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbGVtZW50UmVmLCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YmplY3QsIFN1YnNjcmliZXIsIFN1YnNjcmlwdGlvbiwgZnJvbUV2ZW50IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IE11dGF0aW9uT2JzZXJ2ZXJTZXJ2aWNlIH0gZnJvbSAnLi4vbXV0YXRpb24vbXV0YXRpb24tb2JzZXJ2ZXItc2VydmljZSc7XG5pbXBvcnQgeyBTa3lBcHBXaW5kb3dSZWYgfSBmcm9tICcuLi93aW5kb3cvd2luZG93LXJlZic7XG5cbmZ1bmN0aW9uIG5vdGlmeVN1YnNjcmliZXJzKHN1YnNjcmliZXJzOiBTdWJzY3JpYmVyPHVua25vd24+W10sIGl0ZW0/OiB1bmtub3duKSB7XG4gIGZvciAoY29uc3Qgc3Vic2NyaWJlciBvZiBzdWJzY3JpYmVycykge1xuICAgIHN1YnNjcmliZXIubmV4dChpdGVtKTtcbiAgfVxufVxuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgU2t5U2Nyb2xsYWJsZUhvc3RTZXJ2aWNlIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBtdXRhdGlvbk9ic2VydmVyU3ZjOiBNdXRhdGlvbk9ic2VydmVyU2VydmljZSxcbiAgICBwcml2YXRlIHdpbmRvd1JlZjogU2t5QXBwV2luZG93UmVmXG4gICkge31cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgZ2l2ZW4gZWxlbWVudCdzIGN1cnJlbnQgc2Nyb2xsYWJsZSBob3N0XG4gICAqIEBwYXJhbSBlbGVtZW50UmVmIFRoZSBlbGVtZW50IHdob3NlIHNjcm9sbGFibGUgaG9zdCBpcyBiZWluZyByZXF1ZXN0ZWRcbiAgICogQHJldHVybnMgVGhlIGN1cnJlbnQgc2Nyb2xsYWJsZSBob3N0XG4gICAqL1xuICBwdWJsaWMgZ2V0U2Nyb2xsYWJsZUhvc3QoZWxlbWVudFJlZjogRWxlbWVudFJlZik6IEhUTUxFbGVtZW50IHwgV2luZG93IHtcbiAgICByZXR1cm4gdGhpcy5maW5kU2Nyb2xsYWJsZUhvc3QoZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGFuIG9ic2VydmFibGUgd2hpY2ggZW1pdHMgdGhlIGdpdmVuIGVsZW1lbnQncyBjdXJyZW50IHNjcm9sbGFibGUgaG9zdFxuICAgKiBAcGFyYW0gZWxlbWVudFJlZiBUaGUgZWxlbWVudCB3aG9zZSBzY3JvbGxhYmxlIGhvc3QgaXMgYmVpbmcgcmVxdWVzdGVkXG4gICAqIEBwYXJhbSBjb21wbGV0aW9uT2JzZXJ2YWJsZSBBbiBvYnNlcnZhYmxlIHdoaWNoIGFsZXJ0cyB0aGUgaW50ZXJuYWwgb2JzZXJ2ZXJzIHRoYXQgdGhleSBzaG91bGQgY29tcGxldGVcbiAgICogQHJldHVybnMgQW4gb2JzZXJ2YWJsZSB3aGljaCBlbWl0cyB0aGUgY3VycmVudCBzY3JvbGxhYmxlIGhvc3RcbiAgICogQGludGVybmFsXG4gICAqL1xuICBwdWJsaWMgd2F0Y2hTY3JvbGxhYmxlSG9zdChcbiAgICBlbGVtZW50UmVmOiBFbGVtZW50UmVmXG4gICk6IE9ic2VydmFibGU8SFRNTEVsZW1lbnQgfCBXaW5kb3c+IHtcbiAgICBjb25zdCBzdWJzY3JpYmVyczogU3Vic2NyaWJlcjxIVE1MRWxlbWVudCB8IFdpbmRvdz5bXSA9IFtdO1xuICAgIGxldCBwYXJlbnRNdXRhdGlvbk9ic2VydmVyOiBNdXRhdGlvbk9ic2VydmVyO1xuICAgIGxldCBkb2N1bWVudEhpZGRlbkVsZW1lbnRNdXRhdGlvbk9ic2VydmVyOiBNdXRhdGlvbk9ic2VydmVyO1xuXG4gICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlKChzdWJzY3JpYmVyKSA9PiB7XG4gICAgICBzdWJzY3JpYmVycy5wdXNoKHN1YnNjcmliZXIpO1xuXG4gICAgICBsZXQgc2Nyb2xsYWJsZUhvc3QgPSB0aGlzLmZpbmRTY3JvbGxhYmxlSG9zdChlbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQpO1xuICAgICAgaWYgKHN1YnNjcmliZXJzLmxlbmd0aCA9PT0gMSkge1xuICAgICAgICBwYXJlbnRNdXRhdGlvbk9ic2VydmVyID0gdGhpcy5tdXRhdGlvbk9ic2VydmVyU3ZjLmNyZWF0ZSgoKSA9PiB7XG4gICAgICAgICAgY29uc3QgbmV3U2Nyb2xsYWJsZUhvc3QgPSB0aGlzLmZpbmRTY3JvbGxhYmxlSG9zdChcbiAgICAgICAgICAgIGVsZW1lbnRSZWYubmF0aXZlRWxlbWVudFxuICAgICAgICAgICk7XG5cbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICBuZXdTY3JvbGxhYmxlSG9zdCAhPT0gc2Nyb2xsYWJsZUhvc3QgJiZcbiAgICAgICAgICAgIGVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5vZmZzZXRQYXJlbnRcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIHNjcm9sbGFibGVIb3N0ID0gbmV3U2Nyb2xsYWJsZUhvc3Q7XG4gICAgICAgICAgICB0aGlzLm9ic2VydmVGb3JTY3JvbGxhYmxlSG9zdENoYW5nZXMoXG4gICAgICAgICAgICAgIHNjcm9sbGFibGVIb3N0LFxuICAgICAgICAgICAgICBwYXJlbnRNdXRhdGlvbk9ic2VydmVyXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBub3RpZnlTdWJzY3JpYmVycyhzdWJzY3JpYmVycywgc2Nyb2xsYWJsZUhvc3QpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMub2JzZXJ2ZUZvclNjcm9sbGFibGVIb3N0Q2hhbmdlcyhcbiAgICAgICAgICBzY3JvbGxhYmxlSG9zdCxcbiAgICAgICAgICBwYXJlbnRNdXRhdGlvbk9ic2VydmVyXG4gICAgICAgICk7XG5cbiAgICAgICAgZG9jdW1lbnRIaWRkZW5FbGVtZW50TXV0YXRpb25PYnNlcnZlciA9IHRoaXMubXV0YXRpb25PYnNlcnZlclN2Yy5jcmVhdGUoXG4gICAgICAgICAgKCkgPT4ge1xuICAgICAgICAgICAgaWYgKHNjcm9sbGFibGVIb3N0ICYmICFlbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQub2Zmc2V0UGFyZW50KSB7XG4gICAgICAgICAgICAgIHNjcm9sbGFibGVIb3N0ID0gdW5kZWZpbmVkO1xuXG4gICAgICAgICAgICAgIHRoaXMub2JzZXJ2ZUZvclNjcm9sbGFibGVIb3N0Q2hhbmdlcyhcbiAgICAgICAgICAgICAgICBzY3JvbGxhYmxlSG9zdCxcbiAgICAgICAgICAgICAgICBwYXJlbnRNdXRhdGlvbk9ic2VydmVyXG4gICAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICAgbm90aWZ5U3Vic2NyaWJlcnMoc3Vic2NyaWJlcnMsIHNjcm9sbGFibGVIb3N0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICk7XG4gICAgICAgIHRoaXMub2JzZXJ2ZURvY3VtZW50SGlkZGVuRWxlbWVudENoYW5nZXMoXG4gICAgICAgICAgZG9jdW1lbnRIaWRkZW5FbGVtZW50TXV0YXRpb25PYnNlcnZlclxuICAgICAgICApO1xuICAgICAgfVxuICAgICAgc3Vic2NyaWJlci5uZXh0KHNjcm9sbGFibGVIb3N0KTtcblxuICAgICAgc3Vic2NyaWJlci5hZGQoKCkgPT4ge1xuICAgICAgICBjb25zdCBzdWJJbmRleCA9IHN1YnNjcmliZXJzLmluZGV4T2Yoc3Vic2NyaWJlcik7XG5cbiAgICAgICAgLyogc2FuaXR5IGNoZWNrICovXG4gICAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgICAgIGlmIChzdWJJbmRleCA+PSAwKSB7XG4gICAgICAgICAgc3Vic2NyaWJlcnMuc3BsaWNlKHN1YkluZGV4LCAxKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChzdWJzY3JpYmVycy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICBkb2N1bWVudEhpZGRlbkVsZW1lbnRNdXRhdGlvbk9ic2VydmVyLmRpc2Nvbm5lY3QoKTtcbiAgICAgICAgICBwYXJlbnRNdXRhdGlvbk9ic2VydmVyLmRpc2Nvbm5lY3QoKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhbiBvYnNlcnZhYmxlIHdoaWNoIGVtaXRzIHdoZW5ldmVyIHRoZSBlbGVtZW50J3Mgc2Nyb2xsYWJsZSBob3N0IGVtaXRzIGEgc2Nyb2xsIGV2ZW50LiBUaGUgb2JzZXJ2YWJsZSB3aWxsIGFsd2F5cyBlbWl0IHRoZSBzY3JvbGwgZXZlbnRzIGZyb20gdGhlIGVsZW1lbnRzIGN1cnJlbnQgc2Nyb2xsYWJsZSBob3N0IGFuZCB3aWxsIHVwZGF0ZSBiYXNlZCBvbiBhbnkgc2Nyb2xsYWJsZSBob3N0IGNoYW5nZXMuIFRoZSBvYnNlcnZhYmxlIHdpbGwgYWxzbyBlbWl0IG9uY2Ugd2hlbmV2ZXIgdGhlIHNjcm9sbGFibGUgaG9zdCBjaGFuZ2VzLlxuICAgKiBAcGFyYW0gZWxlbWVudFJlZiBUaGUgZWxlbWVudCB3aG9zZSBzY3JvbGxhYmxlIGhvc3Qgc2Nyb2xsIGV2ZW50cyBhcmUgYmVpbmcgcmVxdWVzdGVkXG4gICAqIEBwYXJhbSBjb21wbGV0aW9uT2JzZXJ2YWJsZSBBbiBvYnNlcnZhYmxlIHdoaWNoIGFsZXJ0cyB0aGUgaW50ZXJuYWwgb2JzZXJ2ZXJzIHRoYXQgdGhleSBzaG91bGQgY29tcGxldGVcbiAgICogQHJldHVybnMgQW4gb2JzZXJ2YWJsZSB3aGljaCBlbWl0cyB3aGVuIHRoZSBlbGVtZW50cyBzY3JvbGxhYmxlIGhvc3QgaXMgc2Nyb2xsZWQgb3IgaXMgY2hhbmdlZFxuICAgKi9cbiAgcHVibGljIHdhdGNoU2Nyb2xsYWJsZUhvc3RTY3JvbGxFdmVudHMoXG4gICAgZWxlbWVudFJlZjogRWxlbWVudFJlZlxuICApOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICBjb25zdCBzdWJzY3JpYmVyczogU3Vic2NyaWJlcjx2b2lkPltdID0gW107XG4gICAgbGV0IHNjcm9sbGFibGVIb3N0OiBIVE1MRWxlbWVudCB8IFdpbmRvdztcblxuICAgIGxldCBuZXdTY3JvbGxhYmxlSG9zdE9ic2VydmFibGUgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICAgIGxldCBzY3JvbGxhYmxlSG9zdFN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuICAgIGxldCBzY3JvbGxFdmVudFN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZSgoc3Vic2NyaWJlcikgPT4ge1xuICAgICAgc3Vic2NyaWJlcnMucHVzaChzdWJzY3JpYmVyKTtcblxuICAgICAgaWYgKHN1YnNjcmliZXJzLmxlbmd0aCA9PT0gMSkge1xuICAgICAgICBzY3JvbGxhYmxlSG9zdFN1YnNjcmlwdGlvbiA9IHRoaXMud2F0Y2hTY3JvbGxhYmxlSG9zdChcbiAgICAgICAgICBlbGVtZW50UmVmXG4gICAgICAgICkuc3Vic2NyaWJlKChuZXdTY3JvbGxhYmxlSG9zdCkgPT4ge1xuICAgICAgICAgIG5ld1Njcm9sbGFibGVIb3N0T2JzZXJ2YWJsZS5uZXh0KCk7XG4gICAgICAgICAgbmV3U2Nyb2xsYWJsZUhvc3RPYnNlcnZhYmxlLmNvbXBsZXRlKCk7XG4gICAgICAgICAgaWYgKHNjcm9sbGFibGVIb3N0ICYmIHNjcm9sbGFibGVIb3N0ICE9PSBuZXdTY3JvbGxhYmxlSG9zdCkge1xuICAgICAgICAgICAgbm90aWZ5U3Vic2NyaWJlcnMoc3Vic2NyaWJlcnMpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBzY3JvbGxhYmxlSG9zdCA9IG5ld1Njcm9sbGFibGVIb3N0O1xuICAgICAgICAgIG5ld1Njcm9sbGFibGVIb3N0T2JzZXJ2YWJsZSA9IG5ldyBTdWJqZWN0KCk7XG4gICAgICAgICAgaWYgKG5ld1Njcm9sbGFibGVIb3N0KSB7XG4gICAgICAgICAgICBzY3JvbGxFdmVudFN1YnNjcmlwdGlvbiA9IGZyb21FdmVudChuZXdTY3JvbGxhYmxlSG9zdCwgJ3Njcm9sbCcpXG4gICAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbChuZXdTY3JvbGxhYmxlSG9zdE9ic2VydmFibGUpKVxuICAgICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICBub3RpZnlTdWJzY3JpYmVycyhzdWJzY3JpYmVycyk7XG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIHN1YnNjcmliZXIuYWRkKCgpID0+IHtcbiAgICAgICAgY29uc3Qgc3ViSW5kZXggPSBzdWJzY3JpYmVycy5pbmRleE9mKHN1YnNjcmliZXIpO1xuXG4gICAgICAgIC8qIHNhbml0eSBjaGVjayAqL1xuICAgICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgICAgICBpZiAoc3ViSW5kZXggPj0gMCkge1xuICAgICAgICAgIHN1YnNjcmliZXJzLnNwbGljZShzdWJJbmRleCwgMSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoc3Vic2NyaWJlcnMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgc2Nyb2xsYWJsZUhvc3RTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgICBzY3JvbGxFdmVudFN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgICAgIG5ld1Njcm9sbGFibGVIb3N0T2JzZXJ2YWJsZS5jb21wbGV0ZSgpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgZmluZFNjcm9sbGFibGVIb3N0KGVsZW1lbnQ6IEhUTUxFbGVtZW50KTogSFRNTEVsZW1lbnQgfCBXaW5kb3cge1xuICAgIGNvbnN0IHJlZ2V4ID0gLyhhdXRvfHNjcm9sbCkvO1xuICAgIGNvbnN0IHdpbmRvd09iaiA9IHRoaXMud2luZG93UmVmLm5hdGl2ZVdpbmRvdztcbiAgICBjb25zdCBib2R5T2JqID0gd2luZG93T2JqLmRvY3VtZW50LmJvZHk7XG5cbiAgICAvKiBTYW5pdHkgY2hlY2sgKi9cbiAgICBpZiAoIWVsZW1lbnQpIHtcbiAgICAgIHJldHVybiB3aW5kb3dPYmo7XG4gICAgfVxuXG4gICAgbGV0IHN0eWxlID0gd2luZG93T2JqLmdldENvbXB1dGVkU3R5bGUoZWxlbWVudCk7XG4gICAgbGV0IHBhcmVudDogSFRNTEVsZW1lbnQgPSBlbGVtZW50O1xuXG4gICAgZG8ge1xuICAgICAgcGFyZW50ID0gcGFyZW50LnBhcmVudE5vZGUgYXMgSFRNTEVsZW1lbnQ7XG5cbiAgICAgIC8qIFNhbml0eSBjaGVjayBmb3IgaWYgdGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgZm9yIGFuIGVsZW1lbnQgd2hpY2ggaGFzIGJlZW4gcmVtb3ZlZCBmcm9tIHRoZSBET00gKi9cbiAgICAgIGlmICghKHBhcmVudCBpbnN0YW5jZW9mIEhUTUxFbGVtZW50KSkge1xuICAgICAgICByZXR1cm4gd2luZG93T2JqO1xuICAgICAgfVxuXG4gICAgICBzdHlsZSA9IHdpbmRvd09iai5nZXRDb21wdXRlZFN0eWxlKHBhcmVudCk7XG4gICAgfSB3aGlsZSAoXG4gICAgICAhcmVnZXgudGVzdChzdHlsZS5vdmVyZmxvdykgJiZcbiAgICAgICFyZWdleC50ZXN0KHN0eWxlLm92ZXJmbG93WSkgJiZcbiAgICAgIHBhcmVudCAhPT0gYm9keU9ialxuICAgICk7XG5cbiAgICBpZiAocGFyZW50ID09PSBib2R5T2JqKSB7XG4gICAgICByZXR1cm4gd2luZG93T2JqO1xuICAgIH1cblxuICAgIHJldHVybiBwYXJlbnQ7XG4gIH1cblxuICBwcml2YXRlIG9ic2VydmVEb2N1bWVudEhpZGRlbkVsZW1lbnRDaGFuZ2VzKFxuICAgIG11dGF0aW9uT2JzZXJ2ZXI6IE11dGF0aW9uT2JzZXJ2ZXJcbiAgKSB7XG4gICAgbXV0YXRpb25PYnNlcnZlci5vYnNlcnZlKGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCwge1xuICAgICAgYXR0cmlidXRlczogdHJ1ZSxcbiAgICAgIGF0dHJpYnV0ZUZpbHRlcjogWydjbGFzcycsICdzdHlsZScsICdoaWRkZW4nXSxcbiAgICAgIGNoaWxkTGlzdDogdHJ1ZSxcbiAgICAgIHN1YnRyZWU6IHRydWUsXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIG9ic2VydmVGb3JTY3JvbGxhYmxlSG9zdENoYW5nZXMoXG4gICAgZWxlbWVudDogSFRNTEVsZW1lbnQgfCBXaW5kb3csXG4gICAgbXV0YXRpb25PYnNlcnZlcjogTXV0YXRpb25PYnNlcnZlclxuICApIHtcbiAgICBtdXRhdGlvbk9ic2VydmVyLmRpc2Nvbm5lY3QoKTtcbiAgICBpZiAoZWxlbWVudCBpbnN0YW5jZW9mIEhUTUxFbGVtZW50KSB7XG4gICAgICBtdXRhdGlvbk9ic2VydmVyLm9ic2VydmUoZWxlbWVudCwge1xuICAgICAgICBhdHRyaWJ1dGVzOiB0cnVlLFxuICAgICAgICBhdHRyaWJ1dGVGaWx0ZXI6IFsnY2xhc3MnLCAnc3R5bGUnXSxcbiAgICAgICAgY2hpbGRMaXN0OiB0cnVlLFxuICAgICAgICBzdWJ0cmVlOiB0cnVlLFxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIG11dGF0aW9uT2JzZXJ2ZXIub2JzZXJ2ZShkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQsIHtcbiAgICAgICAgYXR0cmlidXRlczogdHJ1ZSxcbiAgICAgICAgYXR0cmlidXRlRmlsdGVyOiBbJ2NsYXNzJywgJ3N0eWxlJ10sXG4gICAgICAgIGNoaWxkTGlzdDogdHJ1ZSxcbiAgICAgICAgc3VidHJlZTogdHJ1ZSxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxufVxuIl19
187
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Nyb2xsYWJsZS1ob3N0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvY29yZS9zcmMvbGliL21vZHVsZXMvc2Nyb2xsYWJsZS1ob3N0L3Njcm9sbGFibGUtaG9zdC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBYyxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFdkQsT0FBTyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQTRCLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNoRixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFM0MsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDaEYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHNCQUFzQixDQUFDOzs7O0FBRXZELFNBQVMsaUJBQWlCLENBQUMsV0FBa0MsRUFBRSxJQUFjO0lBQzNFLEtBQUssTUFBTSxVQUFVLElBQUksV0FBVyxFQUFFO1FBQ3BDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7S0FDdkI7QUFDSCxDQUFDO0FBS0QsTUFBTSxPQUFPLHdCQUF3QjtJQUNuQyxZQUNVLG1CQUE0QyxFQUM1QyxTQUEwQjtRQUQxQix3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXlCO1FBQzVDLGNBQVMsR0FBVCxTQUFTLENBQWlCO0lBQ2pDLENBQUM7SUFFSjs7OztPQUlHO0lBQ0ksaUJBQWlCLENBQUMsVUFBc0I7UUFDN0MsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQzNELENBQUM7SUFFRDs7Ozs7T0FLRztJQUNJLG1CQUFtQixDQUN4QixVQUFzQjtRQUV0QixNQUFNLFdBQVcsR0FBdUMsRUFBRSxDQUFDO1FBRTNELElBQUksc0JBQXdDLENBQUM7UUFDN0Ms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QztZQUM3QyxTQUFTLEVBQUUsSUFBSTtZQUNmLE9BQU8sRUFBRSxJQUFJO1NBQ2QsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVPLCtCQUErQixDQUNyQyxPQUF5QyxFQUN6QyxnQkFBa0M7UUFFbEMsZ0JBQWdCLENBQUMsVUFBVSxFQUFFLENBQUM7UUFFOUIsTUFBTSxNQUFNLEdBQ1YsT0FBTyxZQUFZLFdBQVcsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDO1FBRXRFLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUU7WUFDL0IsVUFBVSxFQUFFLElBQUk7WUFDaEIsZUFBZSxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQztZQUNuQyxTQUFTLEVBQUUsSUFBSTtZQUNmLE9BQU8sRUFBRSxJQUFJO1NBQ2QsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOzs7T0FHRztJQUNLLGdCQUFnQixDQUFDLFVBQXNCO1FBQzdDLE9BQU8sVUFBVSxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUM7SUFDL0MsQ0FBQzs7cUhBOU9VLHdCQUF3Qjt5SEFBeEIsd0JBQXdCLGNBRnZCLE1BQU07MkZBRVAsd0JBQXdCO2tCQUhwQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVsZW1lbnRSZWYsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCwgU3Vic2NyaWJlciwgU3Vic2NyaXB0aW9uLCBmcm9tRXZlbnQgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgTXV0YXRpb25PYnNlcnZlclNlcnZpY2UgfSBmcm9tICcuLi9tdXRhdGlvbi9tdXRhdGlvbi1vYnNlcnZlci1zZXJ2aWNlJztcbmltcG9ydCB7IFNreUFwcFdpbmRvd1JlZiB9IGZyb20gJy4uL3dpbmRvdy93aW5kb3ctcmVmJztcblxuZnVuY3Rpb24gbm90aWZ5U3Vic2NyaWJlcnMoc3Vic2NyaWJlcnM6IFN1YnNjcmliZXI8dW5rbm93bj5bXSwgaXRlbT86IHVua25vd24pIHtcbiAgZm9yIChjb25zdCBzdWJzY3JpYmVyIG9mIHN1YnNjcmliZXJzKSB7XG4gICAgc3Vic2NyaWJlci5uZXh0KGl0ZW0pO1xuICB9XG59XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lTY3JvbGxhYmxlSG9zdFNlcnZpY2Uge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIG11dGF0aW9uT2JzZXJ2ZXJTdmM6IE11dGF0aW9uT2JzZXJ2ZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgd2luZG93UmVmOiBTa3lBcHBXaW5kb3dSZWZcbiAgKSB7fVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBnaXZlbiBlbGVtZW50J3MgY3VycmVudCBzY3JvbGxhYmxlIGhvc3RcbiAgICogQHBhcmFtIGVsZW1lbnRSZWYgVGhlIGVsZW1lbnQgd2hvc2Ugc2Nyb2xsYWJsZSBob3N0IGlzIGJlaW5nIHJlcXVlc3RlZFxuICAgKiBAcmV0dXJucyBUaGUgY3VycmVudCBzY3JvbGxhYmxlIGhvc3RcbiAgICovXG4gIHB1YmxpYyBnZXRTY3JvbGxhYmxlSG9zdChlbGVtZW50UmVmOiBFbGVtZW50UmVmKTogSFRNTEVsZW1lbnQgfCBXaW5kb3cge1xuICAgIHJldHVybiB0aGlzLmZpbmRTY3JvbGxhYmxlSG9zdChlbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYW4gb2JzZXJ2YWJsZSB3aGljaCBlbWl0cyB0aGUgZ2l2ZW4gZWxlbWVudCdzIGN1cnJlbnQgc2Nyb2xsYWJsZSBob3N0XG4gICAqIEBwYXJhbSBlbGVtZW50UmVmIFRoZSBlbGVtZW50IHdob3NlIHNjcm9sbGFibGUgaG9zdCBpcyBiZWluZyByZXF1ZXN0ZWRcbiAgICogQHJldHVybnMgQW4gb2JzZXJ2YWJsZSB3aGljaCBlbWl0cyB0aGUgY3VycmVudCBzY3JvbGxhYmxlIGhvc3QgZWxlbWVudC5cbiAgICogQGludGVybmFsXG4gICAqL1xuICBwdWJsaWMgd2F0Y2hTY3JvbGxhYmxlSG9zdChcbiAgICBlbGVtZW50UmVmOiBFbGVtZW50UmVmXG4gICk6IE9ic2VydmFibGU8SFRNTEVsZW1lbnQgfCBXaW5kb3cgfCB1bmRlZmluZWQ+IHtcbiAgICBjb25zdCBzdWJzY3JpYmVyczogU3Vic2NyaWJlcjxIVE1MRWxlbWVudCB8IFdpbmRvdz5bXSA9IFtdO1xuXG4gICAgbGV0IHBhcmVudE11dGF0aW9uT2JzZXJ2ZXI6IE11dGF0aW9uT2JzZXJ2ZXI7XG4gICAgbGV0IGRvY3VtZW50SGlkZGVuRWxlbWVudE11dGF0aW9uT2JzZXJ2ZXI6IE11dGF0aW9uT2JzZXJ2ZXI7XG5cbiAgICByZXR1cm4gbmV3IE9ic2VydmFibGUoKHN1YnNjcmliZXIpID0+IHtcbiAgICAgIHN1YnNjcmliZXJzLnB1c2goc3Vic2NyaWJlcik7XG5cbiAgICAgIGxldCBzY3JvbGxhYmxlSG9zdCA9IHRoaXMuZmluZFNjcm9sbGFibGVIb3N0KGVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCk7XG5cbiAgICAgIC8vIFNldHVwIG11dGF0aW9uIG9ic2VydmVycyBvbmx5IG9uY2UsIGZvciBhbGwgc3Vic2NyaWJlcnMuXG4gICAgICBpZiAoc3Vic2NyaWJlcnMubGVuZ3RoID09PSAxKSB7XG4gICAgICAgIHBhcmVudE11dGF0aW9uT2JzZXJ2ZXIgPSB0aGlzLm11dGF0aW9uT2JzZXJ2ZXJTdmMuY3JlYXRlKCgpID0+IHtcbiAgICAgICAgICBjb25zdCBuZXdTY3JvbGxhYmxlSG9zdCA9IHRoaXMuZmluZFNjcm9sbGFibGVIb3N0KFxuICAgICAgICAgICAgZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50XG4gICAgICAgICAgKTtcblxuICAgICAgICAgIC8vIFJlc2V0IG9ic2VydmVyIGlmIHNjcm9sbGFibGUgaG9zdCBjaGFuZ2VzLlxuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgIG5ld1Njcm9sbGFibGVIb3N0ICE9PSBzY3JvbGxhYmxlSG9zdCAmJlxuICAgICAgICAgICAgdGhpcy5pc0VsZW1lbnRWaXNpYmxlKGVsZW1lbnRSZWYpXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICBzY3JvbGxhYmxlSG9zdCA9IG5ld1Njcm9sbGFibGVIb3N0O1xuXG4gICAgICAgICAgICB0aGlzLm9ic2VydmVGb3JTY3JvbGxhYmxlSG9zdENoYW5nZXMoXG4gICAgICAgICAgICAgIHNjcm9sbGFibGVIb3N0LFxuICAgICAgICAgICAgICBwYXJlbnRNdXRhdGlvbk9ic2VydmVyXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBub3RpZnlTdWJzY3JpYmVycyhzdWJzY3JpYmVycywgc2Nyb2xsYWJsZUhvc3QpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5vYnNlcnZlRm9yU2Nyb2xsYWJsZUhvc3RDaGFuZ2VzKFxuICAgICAgICAgIHNjcm9sbGFibGVIb3N0LFxuICAgICAgICAgIHBhcmVudE11dGF0aW9uT2JzZXJ2ZXJcbiAgICAgICAgKTtcblxuICAgICAgICBkb2N1bWVudEhpZGRlbkVsZW1lbnRNdXRhdGlvbk9ic2VydmVyID0gdGhpcy5tdXRhdGlvbk9ic2VydmVyU3ZjLmNyZWF0ZShcbiAgICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgICBpZiAoc2Nyb2xsYWJsZUhvc3QgJiYgIXRoaXMuaXNFbGVtZW50VmlzaWJsZShlbGVtZW50UmVmKSkge1xuICAgICAgICAgICAgICAvLyBJZiB0aGUgc2Nyb2xsYWJsZSBob3N0IGlzIG5vdCB2aXNpYmxlLCBzZXQgaXQgdG8gdW5kZWZpbmVkIGFuZCB1bnN1YnNjcmliZSBmcm9tIGl0cyBtdXRhdGlvbiBjaGFuZ2VzLlxuICAgICAgICAgICAgICAvLyBUaGVuLCBvYnNlcnZlIHRoZSBkb2N1bWVudCBlbGVtZW50IHNvIHRoYXQgYSBuZXcgc2Nyb2xsYWJsZSBob3N0IGNhbiBiZSBmb3VuZC5cbiAgICAgICAgICAgICAgc2Nyb2xsYWJsZUhvc3QgPSB1bmRlZmluZWQ7XG5cbiAgICAgICAgICAgICAgdGhpcy5vYnNlcnZlRm9yU2Nyb2xsYWJsZUhvc3RDaGFuZ2VzKFxuICAgICAgICAgICAgICAgIHNjcm9sbGFibGVIb3N0LFxuICAgICAgICAgICAgICAgIHBhcmVudE11dGF0aW9uT2JzZXJ2ZXJcbiAgICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgICBub3RpZnlTdWJzY3JpYmVycyhzdWJzY3JpYmVycywgc2Nyb2xsYWJsZUhvc3QpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgKTtcblxuICAgICAgICB0aGlzLm9ic2VydmVEb2N1bWVudEhpZGRlbkVsZW1lbnRDaGFuZ2VzKFxuICAgICAgICAgIGRvY3VtZW50SGlkZGVuRWxlbWVudE11dGF0aW9uT2JzZXJ2ZXJcbiAgICAgICAgKTtcbiAgICAgIH1cblxuICAgICAgLy8gRW1pdCB0aGUgc2Nyb2xsYWJsZSBob3N0IHRvIHRoZSBzdWJzY3JpYmVyLlxuICAgICAgc3Vic2NyaWJlci5uZXh0KHNjcm9sbGFibGVIb3N0KTtcblxuICAgICAgLy8gVGVhcmRvd24gY2FsbGJhY2sgZm9yIHRoZSBzdWJzY3JpcHRpb24uXG4gICAgICBzdWJzY3JpYmVyLmFkZCgoKSA9PiB7XG4gICAgICAgIGNvbnN0IHN1YkluZGV4ID0gc3Vic2NyaWJlcnMuaW5kZXhPZihzdWJzY3JpYmVyKTtcblxuICAgICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgICAgICBpZiAoc3ViSW5kZXggPj0gMCkge1xuICAgICAgICAgIHN1YnNjcmliZXJzLnNwbGljZShzdWJJbmRleCwgMSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoc3Vic2NyaWJlcnMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgZG9jdW1lbnRIaWRkZW5FbGVtZW50TXV0YXRpb25PYnNlcnZlci5kaXNjb25uZWN0KCk7XG4gICAgICAgICAgcGFyZW50TXV0YXRpb25PYnNlcnZlci5kaXNjb25uZWN0KCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYW4gb2JzZXJ2YWJsZSB3aGljaCBlbWl0cyB3aGVuZXZlciB0aGUgZWxlbWVudCdzIHNjcm9sbGFibGUgaG9zdCBlbWl0cyBhIHNjcm9sbCBldmVudC4gVGhlIG9ic2VydmFibGUgd2lsbCBhbHdheXMgZW1pdCB0aGUgc2Nyb2xsIGV2ZW50cyBmcm9tIHRoZSBlbGVtZW50cyBjdXJyZW50IHNjcm9sbGFibGUgaG9zdCBhbmQgd2lsbCB1cGRhdGUgYmFzZWQgb24gYW55IHNjcm9sbGFibGUgaG9zdCBjaGFuZ2VzLiBUaGUgb2JzZXJ2YWJsZSB3aWxsIGFsc28gZW1pdCBvbmNlIHdoZW5ldmVyIHRoZSBzY3JvbGxhYmxlIGhvc3QgY2hhbmdlcy5cbiAgICogQHBhcmFtIGVsZW1lbnRSZWYgVGhlIGVsZW1lbnQgd2hvc2Ugc2Nyb2xsYWJsZSBob3N0IHNjcm9sbCBldmVudHMgYXJlIGJlaW5nIHJlcXVlc3RlZFxuICAgKiBAcmV0dXJucyBBbiBvYnNlcnZhYmxlIHdoaWNoIGVtaXRzIHdoZW4gdGhlIGVsZW1lbnRzIHNjcm9sbGFibGUgaG9zdCBpcyBzY3JvbGxlZCBvciBpcyBjaGFuZ2VkXG4gICAqL1xuICBwdWJsaWMgd2F0Y2hTY3JvbGxhYmxlSG9zdFNjcm9sbEV2ZW50cyhcbiAgICBlbGVtZW50UmVmOiBFbGVtZW50UmVmXG4gICk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgIGNvbnN0IHN1YnNjcmliZXJzOiBTdWJzY3JpYmVyPHZvaWQ+W10gPSBbXTtcblxuICAgIGxldCBzY3JvbGxhYmxlSG9zdDogSFRNTEVsZW1lbnQgfCBXaW5kb3c7XG5cbiAgICBsZXQgbmV3U2Nyb2xsYWJsZUhvc3RPYnNlcnZhYmxlID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgICBsZXQgc2Nyb2xsYWJsZUhvc3RTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcbiAgICBsZXQgc2Nyb2xsRXZlbnRTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcblxuICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZSgoc3Vic2NyaWJlcikgPT4ge1xuICAgICAgc3Vic2NyaWJlcnMucHVzaChzdWJzY3JpYmVyKTtcblxuICAgICAgLy8gU2V0dXAgbXV0YXRpb24gb2JzZXJ2ZXJzIG9ubHkgb25jZSwgZm9yIGFsbCBzdWJzY3JpYmVycy5cbiAgICAgIGlmIChzdWJzY3JpYmVycy5sZW5ndGggPT09IDEpIHtcbiAgICAgICAgc2Nyb2xsYWJsZUhvc3RTdWJzY3JpcHRpb24gPSB0aGlzLndhdGNoU2Nyb2xsYWJsZUhvc3QoXG4gICAgICAgICAgZWxlbWVudFJlZlxuICAgICAgICApLnN1YnNjcmliZSgobmV3U2Nyb2xsYWJsZUhvc3QpID0+IHtcbiAgICAgICAgICBuZXdTY3JvbGxhYmxlSG9zdE9ic2VydmFibGUubmV4dCgpO1xuICAgICAgICAgIG5ld1Njcm9sbGFibGVIb3N0T2JzZXJ2YWJsZS5jb21wbGV0ZSgpO1xuXG4gICAgICAgICAgaWYgKHNjcm9sbGFibGVIb3N0ICYmIHNjcm9sbGFibGVIb3N0ICE9PSBuZXdTY3JvbGxhYmxlSG9zdCkge1xuICAgICAgICAgICAgbm90aWZ5U3Vic2NyaWJlcnMoc3Vic2NyaWJlcnMpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHNjcm9sbGFibGVIb3N0ID0gbmV3U2Nyb2xsYWJsZUhvc3Q7XG4gICAgICAgICAgbmV3U2Nyb2xsYWJsZUhvc3RPYnNlcnZhYmxlID0gbmV3IFN1YmplY3QoKTtcblxuICAgICAgICAgIC8vIE9ubHkgc3Vic2NyaWJlIHRvIHNjcm9sbCBldmVudHMgaWYgdGhlIGhvc3QgZWxlbWVudCBpcyBkZWZpbmVkLlxuICAgICAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgICAgICAgaWYgKG5ld1Njcm9sbGFibGVIb3N0KSB7XG4gICAgICAgICAgICBzY3JvbGxFdmVudFN1YnNjcmlwdGlvbiA9IGZyb21FdmVudChuZXdTY3JvbGxhYmxlSG9zdCwgJ3Njcm9sbCcpXG4gICAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbChuZXdTY3JvbGxhYmxlSG9zdE9ic2VydmFibGUpKVxuICAgICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICBub3RpZnlTdWJzY3JpYmVycyhzdWJzY3JpYmVycyk7XG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIC8vIFRlYXJkb3duIGNhbGxiYWNrIGZvciB0aGUgc3Vic2NyaXB0aW9uLlxuICAgICAgc3Vic2NyaWJlci5hZGQoKCkgPT4ge1xuICAgICAgICBjb25zdCBzdWJJbmRleCA9IHN1YnNjcmliZXJzLmluZGV4T2Yoc3Vic2NyaWJlcik7XG5cbiAgICAgICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICAgICAgaWYgKHN1YkluZGV4ID49IDApIHtcbiAgICAgICAgICBzdWJzY3JpYmVycy5zcGxpY2Uoc3ViSW5kZXgsIDEpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHN1YnNjcmliZXJzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgIHNjcm9sbGFibGVIb3N0U3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgICAgc2Nyb2xsRXZlbnRTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgICBuZXdTY3JvbGxhYmxlSG9zdE9ic2VydmFibGUuY29tcGxldGUoKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGZpbmRTY3JvbGxhYmxlSG9zdChcbiAgICBlbGVtZW50OiBIVE1MRWxlbWVudCB8IHVuZGVmaW5lZFxuICApOiBIVE1MRWxlbWVudCB8IFdpbmRvdyB7XG4gICAgY29uc3QgcmVnZXggPSAvKGF1dG98c2Nyb2xsKS87XG4gICAgY29uc3Qgd2luZG93T2JqID0gdGhpcy53aW5kb3dSZWYubmF0aXZlV2luZG93O1xuICAgIGNvbnN0IGJvZHlPYmogPSB3aW5kb3dPYmouZG9jdW1lbnQuYm9keTtcblxuICAgIGlmICghZWxlbWVudCkge1xuICAgICAgcmV0dXJuIHdpbmRvd09iajtcbiAgICB9XG5cbiAgICBsZXQgc3R5bGUgPSB3aW5kb3dPYmouZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50KTtcbiAgICBsZXQgcGFyZW50ID0gZWxlbWVudDtcblxuICAgIGRvIHtcbiAgICAgIHBhcmVudCA9IHBhcmVudC5wYXJlbnROb2RlIGFzIEhUTUxFbGVtZW50O1xuXG4gICAgICAvLyBSZXR1cm4gYHdpbmRvd2AgaWYgdGhlIHBhcmVudCBlbGVtZW50IGhhcyBiZWVuIHJlbW92ZWQgZnJvbSB0aGUgRE9NLlxuICAgICAgaWYgKCEocGFyZW50IGluc3RhbmNlb2YgSFRNTEVsZW1lbnQpKSB7XG4gICAgICAgIHJldHVybiB3aW5kb3dPYmo7XG4gICAgICB9XG5cbiAgICAgIHN0eWxlID0gd2luZG93T2JqLmdldENvbXB1dGVkU3R5bGUocGFyZW50KTtcbiAgICB9IHdoaWxlIChcbiAgICAgICFyZWdleC50ZXN0KHN0eWxlLm92ZXJmbG93KSAmJlxuICAgICAgIXJlZ2V4LnRlc3Qoc3R5bGUub3ZlcmZsb3dZKSAmJlxuICAgICAgcGFyZW50ICE9PSBib2R5T2JqXG4gICAgKTtcblxuICAgIGlmIChwYXJlbnQgPT09IGJvZHlPYmopIHtcbiAgICAgIHJldHVybiB3aW5kb3dPYmo7XG4gICAgfVxuXG4gICAgcmV0dXJuIHBhcmVudDtcbiAgfVxuXG4gIHByaXZhdGUgb2JzZXJ2ZURvY3VtZW50SGlkZGVuRWxlbWVudENoYW5nZXMoXG4gICAgbXV0YXRpb25PYnNlcnZlcjogTXV0YXRpb25PYnNlcnZlclxuICApIHtcbiAgICBtdXRhdGlvbk9ic2VydmVyLm9ic2VydmUoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LCB7XG4gICAgICBhdHRyaWJ1dGVzOiB0cnVlLFxuICAgICAgYXR0cmlidXRlRmlsdGVyOiBbJ2NsYXNzJywgJ3N0eWxlJywgJ2hpZGRlbiddLFxuICAgICAgY2hpbGRMaXN0OiB0cnVlLFxuICAgICAgc3VidHJlZTogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgb2JzZXJ2ZUZvclNjcm9sbGFibGVIb3N0Q2hhbmdlcyhcbiAgICBlbGVtZW50OiBIVE1MRWxlbWVudCB8IFdpbmRvdyB8IHVuZGVmaW5lZCxcbiAgICBtdXRhdGlvbk9ic2VydmVyOiBNdXRhdGlvbk9ic2VydmVyXG4gICkge1xuICAgIG11dGF0aW9uT2JzZXJ2ZXIuZGlzY29ubmVjdCgpO1xuXG4gICAgY29uc3QgdGFyZ2V0ID1cbiAgICAgIGVsZW1lbnQgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCA/IGVsZW1lbnQgOiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQ7XG5cbiAgICBtdXRhdGlvbk9ic2VydmVyLm9ic2VydmUodGFyZ2V0LCB7XG4gICAgICBhdHRyaWJ1dGVzOiB0cnVlLFxuICAgICAgYXR0cmlidXRlRmlsdGVyOiBbJ2NsYXNzJywgJ3N0eWxlJ10sXG4gICAgICBjaGlsZExpc3Q6IHRydWUsXG4gICAgICBzdWJ0cmVlOiB0cnVlLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIERldGVybWluZXMgaWYgYW4gZWxlbWVudCBpcyBcInZpc2libGVcIiBpbiB0aGUgRE9NLlxuICAgKiBAc2VlIGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vYS8xMTYzOTY2NC82MTc4ODg1XG4gICAqL1xuICBwcml2YXRlIGlzRWxlbWVudFZpc2libGUoZWxlbWVudFJlZjogRWxlbWVudFJlZik6IGJvb2xlYW4ge1xuICAgIHJldHVybiBlbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQub2Zmc2V0UGFyZW50O1xuICB9XG59XG4iXX0=
@@ -0,0 +1,29 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { SkyMediaQueryService, SkyUIConfigService } from '@skyux/core';
3
+ import { MockSkyMediaQueryService } from './mock-media-query.service';
4
+ import { MockSkyUIConfigService } from './mock-ui-config.service';
5
+ import * as i0 from "@angular/core";
6
+ export class SkyCoreTestingModule {
7
+ }
8
+ SkyCoreTestingModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyCoreTestingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
9
+ SkyCoreTestingModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyCoreTestingModule });
10
+ SkyCoreTestingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyCoreTestingModule, providers: [
11
+ { provide: SkyMediaQueryService, useClass: MockSkyMediaQueryService },
12
+ {
13
+ provide: SkyUIConfigService,
14
+ useClass: MockSkyUIConfigService,
15
+ },
16
+ ] });
17
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyCoreTestingModule, decorators: [{
18
+ type: NgModule,
19
+ args: [{
20
+ providers: [
21
+ { provide: SkyMediaQueryService, useClass: MockSkyMediaQueryService },
22
+ {
23
+ provide: SkyUIConfigService,
24
+ useClass: MockSkyUIConfigService,
25
+ },
26
+ ],
27
+ }]
28
+ }] });
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS10ZXN0aW5nLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9jb3JlL3Rlc3Rpbmcvc3JjL2NvcmUtdGVzdGluZy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFdkUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDdEUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7O0FBV2xFLE1BQU0sT0FBTyxvQkFBb0I7O2lIQUFwQixvQkFBb0I7a0hBQXBCLG9CQUFvQjtrSEFBcEIsb0JBQW9CLGFBUnBCO1FBQ1QsRUFBRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsUUFBUSxFQUFFLHdCQUF3QixFQUFFO1FBQ3JFO1lBQ0UsT0FBTyxFQUFFLGtCQUFrQjtZQUMzQixRQUFRLEVBQUUsc0JBQXNCO1NBQ2pDO0tBQ0Y7MkZBRVUsb0JBQW9CO2tCQVRoQyxRQUFRO21CQUFDO29CQUNSLFNBQVMsRUFBRTt3QkFDVCxFQUFFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxRQUFRLEVBQUUsd0JBQXdCLEVBQUU7d0JBQ3JFOzRCQUNFLE9BQU8sRUFBRSxrQkFBa0I7NEJBQzNCLFFBQVEsRUFBRSxzQkFBc0I7eUJBQ2pDO3FCQUNGO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFNreU1lZGlhUXVlcnlTZXJ2aWNlLCBTa3lVSUNvbmZpZ1NlcnZpY2UgfSBmcm9tICdAc2t5dXgvY29yZSc7XG5cbmltcG9ydCB7IE1vY2tTa3lNZWRpYVF1ZXJ5U2VydmljZSB9IGZyb20gJy4vbW9jay1tZWRpYS1xdWVyeS5zZXJ2aWNlJztcbmltcG9ydCB7IE1vY2tTa3lVSUNvbmZpZ1NlcnZpY2UgfSBmcm9tICcuL21vY2stdWktY29uZmlnLnNlcnZpY2UnO1xuXG5ATmdNb2R1bGUoe1xuICBwcm92aWRlcnM6IFtcbiAgICB7IHByb3ZpZGU6IFNreU1lZGlhUXVlcnlTZXJ2aWNlLCB1c2VDbGFzczogTW9ja1NreU1lZGlhUXVlcnlTZXJ2aWNlIH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogU2t5VUlDb25maWdTZXJ2aWNlLFxuICAgICAgdXNlQ2xhc3M6IE1vY2tTa3lVSUNvbmZpZ1NlcnZpY2UsXG4gICAgfSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgU2t5Q29yZVRlc3RpbmdNb2R1bGUge31cbiJdfQ==
@@ -27,6 +27,8 @@ export class MockSkyMediaQueryService extends SkyMediaQueryService {
27
27
  this._currentBreakpoints = args;
28
28
  this.currentMockSubject.next(this._currentBreakpoints);
29
29
  }
30
+ /* istanbul ignore next */
31
+ // eslint-disable-next-line @typescript-eslint/no-empty-function
30
32
  destroy() { }
31
33
  }
32
34
  MockSkyMediaQueryService.xs = '(max-width: 767px)';
@@ -38,4 +40,4 @@ MockSkyMediaQueryService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0
38
40
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: MockSkyMediaQueryService, decorators: [{
39
41
  type: Injectable
40
42
  }], ctorParameters: function () { return []; } });
41
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9jay1tZWRpYS1xdWVyeS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2NvcmUvdGVzdGluZy9zcmMvbW9jay1tZWRpYS1xdWVyeS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFDTCxtQkFBbUIsRUFFbkIsb0JBQW9CLEdBQ3JCLE1BQU0sYUFBYSxDQUFDO0FBRXJCLE9BQU8sRUFBRSxlQUFlLEVBQWdCLE1BQU0sTUFBTSxDQUFDOztBQUdyRCxNQUFNLE9BQU8sd0JBQXlCLFNBQVEsb0JBQW9CO0lBb0JoRTtRQUNFLEtBQUssQ0FDSCxJQUFJLE1BQU0sQ0FBQztZQUNULG9CQUFvQixFQUFFLElBQUk7U0FDM0IsQ0FBQyxDQUNILENBQUM7UUFYRyx1QkFBa0IsR0FBRyxJQUFJLGVBQWUsQ0FDN0MsSUFBSSxDQUFDLE9BQU8sQ0FDYixDQUFDO1FBRU0sd0JBQW1CLEdBQUcsbUJBQW1CLENBQUMsRUFBRSxDQUFDO0lBUXJELENBQUM7SUFwQkQsSUFBVyxPQUFPO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLG1CQUFtQixDQUFDO0lBQ2xDLENBQUM7SUFFRCxJQUFXLE9BQU8sQ0FBQyxXQUFnQztRQUNqRCxJQUFJLENBQUMsbUJBQW1CLEdBQUcsV0FBVyxDQUFDO0lBQ3pDLENBQUM7SUFnQk0sU0FBUyxDQUFDLFFBQStCO1FBQzlDLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDLFNBQVMsQ0FBQztZQUN2QyxJQUFJLEVBQUUsQ0FBQyxXQUFnQyxFQUFFLEVBQUU7Z0JBQ3pDLFFBQVEsQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUN4QixDQUFDO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVNLElBQUksQ0FBQyxJQUF5QjtRQUNuQyxJQUFJLENBQUMsbUJBQW1CLEdBQUcsSUFBSSxDQUFDO1FBQ2hDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLENBQUM7SUFDekQsQ0FBQztJQUVNLE9BQU8sS0FBVSxDQUFDOztBQXhDWCwyQkFBRSxHQUFHLG9CQUFxQixDQUFBO0FBQzFCLDJCQUFFLEdBQUcsMkNBQTRDLENBQUE7QUFDakQsMkJBQUUsR0FBRyw0Q0FBNkMsQ0FBQTtBQUNsRCwyQkFBRSxHQUFHLHFCQUFzQixDQUFBO3FIQUo5Qix3QkFBd0I7eUhBQXhCLHdCQUF3QjsyRkFBeEIsd0JBQXdCO2tCQURwQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgTmdab25lIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBTa3lNZWRpYUJyZWFrcG9pbnRzLFxuICBTa3lNZWRpYVF1ZXJ5TGlzdGVuZXIsXG4gIFNreU1lZGlhUXVlcnlTZXJ2aWNlLFxufSBmcm9tICdAc2t5dXgvY29yZSc7XG5cbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBNb2NrU2t5TWVkaWFRdWVyeVNlcnZpY2UgZXh0ZW5kcyBTa3lNZWRpYVF1ZXJ5U2VydmljZSB7XG4gIHB1YmxpYyBzdGF0aWMgeHMgPSAnKG1heC13aWR0aDogNzY3cHgpJztcbiAgcHVibGljIHN0YXRpYyBzbSA9ICcobWluLXdpZHRoOiA3NjhweCkgYW5kIChtYXgtd2lkdGg6IDk5MXB4KSc7XG4gIHB1YmxpYyBzdGF0aWMgbWQgPSAnKG1pbi13aWR0aDogOTkycHgpIGFuZCAobWF4LXdpZHRoOiAxMTk5cHgpJztcbiAgcHVibGljIHN0YXRpYyBsZyA9ICcobWluLXdpZHRoOiAxMjAwcHgpJztcblxuICBwdWJsaWMgZ2V0IGN1cnJlbnQoKTogU2t5TWVkaWFCcmVha3BvaW50cyB7XG4gICAgcmV0dXJuIHRoaXMuX2N1cnJlbnRCcmVha3BvaW50cztcbiAgfVxuXG4gIHB1YmxpYyBzZXQgY3VycmVudChicmVha3BvaW50czogU2t5TWVkaWFCcmVha3BvaW50cykge1xuICAgIHRoaXMuX2N1cnJlbnRCcmVha3BvaW50cyA9IGJyZWFrcG9pbnRzO1xuICB9XG5cbiAgcHVibGljIGN1cnJlbnRNb2NrU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8U2t5TWVkaWFCcmVha3BvaW50cz4oXG4gICAgdGhpcy5jdXJyZW50XG4gICk7XG5cbiAgcHJpdmF0ZSBfY3VycmVudEJyZWFrcG9pbnRzID0gU2t5TWVkaWFCcmVha3BvaW50cy5tZDtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcihcbiAgICAgIG5ldyBOZ1pvbmUoe1xuICAgICAgICBlbmFibGVMb25nU3RhY2tUcmFjZTogdHJ1ZSxcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBzdWJzY3JpYmUobGlzdGVuZXI6IFNreU1lZGlhUXVlcnlMaXN0ZW5lcik6IFN1YnNjcmlwdGlvbiB7XG4gICAgcmV0dXJuIHRoaXMuY3VycmVudE1vY2tTdWJqZWN0LnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAoYnJlYWtwb2ludHM6IFNreU1lZGlhQnJlYWtwb2ludHMpID0+IHtcbiAgICAgICAgbGlzdGVuZXIoYnJlYWtwb2ludHMpO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBmaXJlKGFyZ3M6IFNreU1lZGlhQnJlYWtwb2ludHMpOiB2b2lkIHtcbiAgICB0aGlzLl9jdXJyZW50QnJlYWtwb2ludHMgPSBhcmdzO1xuICAgIHRoaXMuY3VycmVudE1vY2tTdWJqZWN0Lm5leHQodGhpcy5fY3VycmVudEJyZWFrcG9pbnRzKTtcbiAgfVxuXG4gIHB1YmxpYyBkZXN0cm95KCk6IHZvaWQge31cbn1cbiJdfQ==
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9jay1tZWRpYS1xdWVyeS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2NvcmUvdGVzdGluZy9zcmMvbW9jay1tZWRpYS1xdWVyeS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFDTCxtQkFBbUIsRUFFbkIsb0JBQW9CLEdBQ3JCLE1BQU0sYUFBYSxDQUFDO0FBRXJCLE9BQU8sRUFBRSxlQUFlLEVBQWdCLE1BQU0sTUFBTSxDQUFDOztBQUdyRCxNQUFNLE9BQU8sd0JBQXlCLFNBQVEsb0JBQW9CO0lBb0JoRTtRQUNFLEtBQUssQ0FDSCxJQUFJLE1BQU0sQ0FBQztZQUNULG9CQUFvQixFQUFFLElBQUk7U0FDM0IsQ0FBQyxDQUNILENBQUM7UUFYRyx1QkFBa0IsR0FBRyxJQUFJLGVBQWUsQ0FDN0MsSUFBSSxDQUFDLE9BQU8sQ0FDYixDQUFDO1FBRU0sd0JBQW1CLEdBQUcsbUJBQW1CLENBQUMsRUFBRSxDQUFDO0lBUXJELENBQUM7SUFwQkQsSUFBVyxPQUFPO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLG1CQUFtQixDQUFDO0lBQ2xDLENBQUM7SUFFRCxJQUFXLE9BQU8sQ0FBQyxXQUFnQztRQUNqRCxJQUFJLENBQUMsbUJBQW1CLEdBQUcsV0FBVyxDQUFDO0lBQ3pDLENBQUM7SUFnQk0sU0FBUyxDQUFDLFFBQStCO1FBQzlDLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDLFNBQVMsQ0FBQztZQUN2QyxJQUFJLEVBQUUsQ0FBQyxXQUFnQyxFQUFFLEVBQUU7Z0JBQ3pDLFFBQVEsQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUN4QixDQUFDO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVNLElBQUksQ0FBQyxJQUF5QjtRQUNuQyxJQUFJLENBQUMsbUJBQW1CLEdBQUcsSUFBSSxDQUFDO1FBQ2hDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLENBQUM7SUFDekQsQ0FBQztJQUVELDBCQUEwQjtJQUMxQixnRUFBZ0U7SUFDekQsT0FBTyxLQUFVLENBQUM7O0FBMUNYLDJCQUFFLEdBQUcsb0JBQXFCLENBQUE7QUFDMUIsMkJBQUUsR0FBRywyQ0FBNEMsQ0FBQTtBQUNqRCwyQkFBRSxHQUFHLDRDQUE2QyxDQUFBO0FBQ2xELDJCQUFFLEdBQUcscUJBQXNCLENBQUE7cUhBSjlCLHdCQUF3Qjt5SEFBeEIsd0JBQXdCOzJGQUF4Qix3QkFBd0I7a0JBRHBDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBOZ1pvbmUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIFNreU1lZGlhQnJlYWtwb2ludHMsXG4gIFNreU1lZGlhUXVlcnlMaXN0ZW5lcixcbiAgU2t5TWVkaWFRdWVyeVNlcnZpY2UsXG59IGZyb20gJ0Bza3l1eC9jb3JlJztcblxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIE1vY2tTa3lNZWRpYVF1ZXJ5U2VydmljZSBleHRlbmRzIFNreU1lZGlhUXVlcnlTZXJ2aWNlIHtcbiAgcHVibGljIHN0YXRpYyB4cyA9ICcobWF4LXdpZHRoOiA3NjdweCknO1xuICBwdWJsaWMgc3RhdGljIHNtID0gJyhtaW4td2lkdGg6IDc2OHB4KSBhbmQgKG1heC13aWR0aDogOTkxcHgpJztcbiAgcHVibGljIHN0YXRpYyBtZCA9ICcobWluLXdpZHRoOiA5OTJweCkgYW5kIChtYXgtd2lkdGg6IDExOTlweCknO1xuICBwdWJsaWMgc3RhdGljIGxnID0gJyhtaW4td2lkdGg6IDEyMDBweCknO1xuXG4gIHB1YmxpYyBnZXQgY3VycmVudCgpOiBTa3lNZWRpYUJyZWFrcG9pbnRzIHtcbiAgICByZXR1cm4gdGhpcy5fY3VycmVudEJyZWFrcG9pbnRzO1xuICB9XG5cbiAgcHVibGljIHNldCBjdXJyZW50KGJyZWFrcG9pbnRzOiBTa3lNZWRpYUJyZWFrcG9pbnRzKSB7XG4gICAgdGhpcy5fY3VycmVudEJyZWFrcG9pbnRzID0gYnJlYWtwb2ludHM7XG4gIH1cblxuICBwdWJsaWMgY3VycmVudE1vY2tTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxTa3lNZWRpYUJyZWFrcG9pbnRzPihcbiAgICB0aGlzLmN1cnJlbnRcbiAgKTtcblxuICBwcml2YXRlIF9jdXJyZW50QnJlYWtwb2ludHMgPSBTa3lNZWRpYUJyZWFrcG9pbnRzLm1kO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKFxuICAgICAgbmV3IE5nWm9uZSh7XG4gICAgICAgIGVuYWJsZUxvbmdTdGFja1RyYWNlOiB0cnVlLFxuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgcHVibGljIHN1YnNjcmliZShsaXN0ZW5lcjogU2t5TWVkaWFRdWVyeUxpc3RlbmVyKTogU3Vic2NyaXB0aW9uIHtcbiAgICByZXR1cm4gdGhpcy5jdXJyZW50TW9ja1N1YmplY3Quc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IChicmVha3BvaW50czogU2t5TWVkaWFCcmVha3BvaW50cykgPT4ge1xuICAgICAgICBsaXN0ZW5lcihicmVha3BvaW50cyk7XG4gICAgICB9LFxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGZpcmUoYXJnczogU2t5TWVkaWFCcmVha3BvaW50cyk6IHZvaWQge1xuICAgIHRoaXMuX2N1cnJlbnRCcmVha3BvaW50cyA9IGFyZ3M7XG4gICAgdGhpcy5jdXJyZW50TW9ja1N1YmplY3QubmV4dCh0aGlzLl9jdXJyZW50QnJlYWtwb2ludHMpO1xuICB9XG5cbiAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1lbXB0eS1mdW5jdGlvblxuICBwdWJsaWMgZGVzdHJveSgpOiB2b2lkIHt9XG59XG4iXX0=
@@ -56,4 +56,4 @@ MockSkyUIConfigService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0
56
56
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: MockSkyUIConfigService, decorators: [{
57
57
  type: Injectable
58
58
  }] });
59
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9jay11aS1jb25maWcuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9jb3JlL3Rlc3Rpbmcvc3JjL21vY2stdWktY29uZmlnLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFakQsT0FBTyxFQUFFLEVBQUUsSUFBSSxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7O0FBRzFDLE1BQU0sT0FBTyxzQkFBdUIsU0FBUSxrQkFBa0I7SUFDckQsU0FBUyxDQUFDLEdBQVcsRUFBRSxhQUFtQjtRQUMvQyxRQUFRLEdBQUcsRUFBRTtZQUNYLEtBQUssaUJBQWlCO2dCQUNwQixPQUFPLFlBQVksQ0FBQyxhQUFhLENBQUMsQ0FBQztZQUNyQyxLQUFLLFNBQVM7Z0JBQ1osT0FBTyxZQUFZLENBQUMsRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFFLENBQUMsQ0FBQztZQUMxRCxPQUFPLENBQUMsQ0FBQztnQkFDUCxPQUFPLFlBQVksQ0FBQztvQkFDbEIsUUFBUSxFQUFFO3dCQUNSLFlBQVksRUFBRTs0QkFDWixZQUFZLEVBQUU7Z0NBQ1osS0FBSyxFQUFFO29DQUNMO3dDQUNFLEVBQUUsRUFBRSxRQUFRO3dDQUNaLFdBQVcsRUFBRSxJQUFJO3FDQUNsQjtvQ0FDRDt3Q0FDRSxFQUFFLEVBQUUsUUFBUTt3Q0FDWixXQUFXLEVBQUUsSUFBSTtxQ0FDbEI7aUNBQ0Y7NkJBQ0Y7NEJBQ0QsV0FBVyxFQUFFO2dDQUNYO29DQUNFLEtBQUssRUFBRTt3Q0FDTDs0Q0FDRSxFQUFFLEVBQUUsUUFBUTs0Q0FDWixXQUFXLEVBQUUsSUFBSTt5Q0FDbEI7cUNBQ0Y7aUNBQ0Y7Z0NBQ0Q7b0NBQ0UsS0FBSyxFQUFFO3dDQUNMOzRDQUNFLEVBQUUsRUFBRSxRQUFROzRDQUNaLFdBQVcsRUFBRSxJQUFJO3lDQUNsQjtxQ0FDRjtpQ0FDRjs2QkFDRjt5QkFDRjt3QkFDRCxlQUFlLEVBQUUsQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDO3FCQUN0QztpQkFDRixDQUFDLENBQUM7YUFDSjtTQUNGO0lBQ0gsQ0FBQzs7bUhBL0NVLHNCQUFzQjt1SEFBdEIsc0JBQXNCOzJGQUF0QixzQkFBc0I7a0JBRGxDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTa3lVSUNvbmZpZ1NlcnZpY2UgfSBmcm9tICdAc2t5dXgvY29yZSc7XG5cbmltcG9ydCB7IG9mIGFzIG9ic2VydmFibGVPZiB9IGZyb20gJ3J4anMnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgTW9ja1NreVVJQ29uZmlnU2VydmljZSBleHRlbmRzIFNreVVJQ29uZmlnU2VydmljZSB7XG4gIHB1YmxpYyBnZXRDb25maWcoa2V5OiBzdHJpbmcsIGRlZmF1bHRDb25maWc/OiBhbnkpOiBhbnkge1xuICAgIHN3aXRjaCAoa2V5KSB7XG4gICAgICBjYXNlICdkZWZhdWx0U2V0dGluZ3MnOlxuICAgICAgICByZXR1cm4gb2JzZXJ2YWJsZU9mKGRlZmF1bHRDb25maWcpO1xuICAgICAgY2FzZSAnYmFkRGF0YSc6XG4gICAgICAgIHJldHVybiBvYnNlcnZhYmxlT2YoeyBpbnZhbGlkUHJvcGVydHk6ICdpbnZhbGlkRGF0YScgfSk7XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIHJldHVybiBvYnNlcnZhYmxlT2Yoe1xuICAgICAgICAgIHNldHRpbmdzOiB7XG4gICAgICAgICAgICB1c2VyU2V0dGluZ3M6IHtcbiAgICAgICAgICAgICAgc2luZ2xlQ29sdW1uOiB7XG4gICAgICAgICAgICAgICAgdGlsZXM6IFtcbiAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgaWQ6ICd0aWxlLTEnLFxuICAgICAgICAgICAgICAgICAgICBpc0NvbGxhcHNlZDogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGlkOiAndGlsZS0yJyxcbiAgICAgICAgICAgICAgICAgICAgaXNDb2xsYXBzZWQ6IHRydWUsXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIG11bHRpQ29sdW1uOiBbXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgdGlsZXM6IFtcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgIGlkOiAndGlsZS0yJyxcbiAgICAgICAgICAgICAgICAgICAgICBpc0NvbGxhcHNlZDogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICB0aWxlczogW1xuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgaWQ6ICd0aWxlLTEnLFxuICAgICAgICAgICAgICAgICAgICAgIGlzQ29sbGFwc2VkOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGRlZmF1bHRTZXR0aW5nczogWyd0aWxlLTEnLCAndGlsZS0yJ10sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iXX0=
59
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9jay11aS1jb25maWcuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9jb3JlL3Rlc3Rpbmcvc3JjL21vY2stdWktY29uZmlnLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFakQsT0FBTyxFQUFjLEVBQUUsSUFBSSxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7O0FBR3RELE1BQU0sT0FBTyxzQkFBdUIsU0FBUSxrQkFBa0I7SUFDckQsU0FBUyxDQUFDLEdBQVcsRUFBRSxhQUFtQjtRQUMvQyxRQUFRLEdBQUcsRUFBRTtZQUNYLEtBQUssaUJBQWlCO2dCQUNwQixPQUFPLFlBQVksQ0FBQyxhQUFhLENBQUMsQ0FBQztZQUNyQyxLQUFLLFNBQVM7Z0JBQ1osT0FBTyxZQUFZLENBQUMsRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFFLENBQUMsQ0FBQztZQUMxRCxPQUFPLENBQUMsQ0FBQztnQkFDUCxPQUFPLFlBQVksQ0FBQztvQkFDbEIsUUFBUSxFQUFFO3dCQUNSLFlBQVksRUFBRTs0QkFDWixZQUFZLEVBQUU7Z0NBQ1osS0FBSyxFQUFFO29DQUNMO3dDQUNFLEVBQUUsRUFBRSxRQUFRO3dDQUNaLFdBQVcsRUFBRSxJQUFJO3FDQUNsQjtvQ0FDRDt3Q0FDRSxFQUFFLEVBQUUsUUFBUTt3Q0FDWixXQUFXLEVBQUUsSUFBSTtxQ0FDbEI7aUNBQ0Y7NkJBQ0Y7NEJBQ0QsV0FBVyxFQUFFO2dDQUNYO29DQUNFLEtBQUssRUFBRTt3Q0FDTDs0Q0FDRSxFQUFFLEVBQUUsUUFBUTs0Q0FDWixXQUFXLEVBQUUsSUFBSTt5Q0FDbEI7cUNBQ0Y7aUNBQ0Y7Z0NBQ0Q7b0NBQ0UsS0FBSyxFQUFFO3dDQUNMOzRDQUNFLEVBQUUsRUFBRSxRQUFROzRDQUNaLFdBQVcsRUFBRSxJQUFJO3lDQUNsQjtxQ0FDRjtpQ0FDRjs2QkFDRjt5QkFDRjt3QkFDRCxlQUFlLEVBQUUsQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDO3FCQUN0QztpQkFDRixDQUFDLENBQUM7YUFDSjtTQUNGO0lBQ0gsQ0FBQzs7bUhBL0NVLHNCQUFzQjt1SEFBdEIsc0JBQXNCOzJGQUF0QixzQkFBc0I7a0JBRGxDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTa3lVSUNvbmZpZ1NlcnZpY2UgfSBmcm9tICdAc2t5dXgvY29yZSc7XG5cbmltcG9ydCB7IE9ic2VydmFibGUsIG9mIGFzIG9ic2VydmFibGVPZiB9IGZyb20gJ3J4anMnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgTW9ja1NreVVJQ29uZmlnU2VydmljZSBleHRlbmRzIFNreVVJQ29uZmlnU2VydmljZSB7XG4gIHB1YmxpYyBnZXRDb25maWcoa2V5OiBzdHJpbmcsIGRlZmF1bHRDb25maWc/OiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHN3aXRjaCAoa2V5KSB7XG4gICAgICBjYXNlICdkZWZhdWx0U2V0dGluZ3MnOlxuICAgICAgICByZXR1cm4gb2JzZXJ2YWJsZU9mKGRlZmF1bHRDb25maWcpO1xuICAgICAgY2FzZSAnYmFkRGF0YSc6XG4gICAgICAgIHJldHVybiBvYnNlcnZhYmxlT2YoeyBpbnZhbGlkUHJvcGVydHk6ICdpbnZhbGlkRGF0YScgfSk7XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIHJldHVybiBvYnNlcnZhYmxlT2Yoe1xuICAgICAgICAgIHNldHRpbmdzOiB7XG4gICAgICAgICAgICB1c2VyU2V0dGluZ3M6IHtcbiAgICAgICAgICAgICAgc2luZ2xlQ29sdW1uOiB7XG4gICAgICAgICAgICAgICAgdGlsZXM6IFtcbiAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgaWQ6ICd0aWxlLTEnLFxuICAgICAgICAgICAgICAgICAgICBpc0NvbGxhcHNlZDogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGlkOiAndGlsZS0yJyxcbiAgICAgICAgICAgICAgICAgICAgaXNDb2xsYXBzZWQ6IHRydWUsXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIG11bHRpQ29sdW1uOiBbXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgdGlsZXM6IFtcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgIGlkOiAndGlsZS0yJyxcbiAgICAgICAgICAgICAgICAgICAgICBpc0NvbGxhcHNlZDogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICB0aWxlczogW1xuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgaWQ6ICd0aWxlLTEnLFxuICAgICAgICAgICAgICAgICAgICAgIGlzQ29sbGFwc2VkOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGRlZmF1bHRTZXR0aW5nczogWyd0aWxlLTEnLCAndGlsZS0yJ10sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iXX0=
@@ -1,3 +1,4 @@
1
+ export * from './core-testing.module';
1
2
  export * from './mock-media-query.service';
2
3
  export * from './mock-ui-config.service';
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9jb3JlL3Rlc3Rpbmcvc3JjL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxjQUFjLDBCQUEwQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9tb2NrLW1lZGlhLXF1ZXJ5LnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9tb2NrLXVpLWNvbmZpZy5zZXJ2aWNlJztcbiJdfQ==
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9jb3JlL3Rlc3Rpbmcvc3JjL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMsMEJBQTBCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2NvcmUtdGVzdGluZy5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9tb2NrLW1lZGlhLXF1ZXJ5LnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9tb2NrLXVpLWNvbmZpZy5zZXJ2aWNlJztcbiJdfQ==
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { NgZone, Injectable } from '@angular/core';
2
+ import { NgZone, Injectable, NgModule } from '@angular/core';
3
3
  import { SkyMediaQueryService, SkyMediaBreakpoints, SkyUIConfigService } from '@skyux/core';
4
4
  import { BehaviorSubject, of } from 'rxjs';
5
5
 
@@ -28,6 +28,8 @@ class MockSkyMediaQueryService extends SkyMediaQueryService {
28
28
  this._currentBreakpoints = args;
29
29
  this.currentMockSubject.next(this._currentBreakpoints);
30
30
  }
31
+ /* istanbul ignore next */
32
+ // eslint-disable-next-line @typescript-eslint/no-empty-function
31
33
  destroy() { }
32
34
  }
33
35
  MockSkyMediaQueryService.xs = '(max-width: 767px)';
@@ -95,9 +97,33 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImpor
95
97
  type: Injectable
96
98
  }] });
97
99
 
100
+ class SkyCoreTestingModule {
101
+ }
102
+ SkyCoreTestingModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyCoreTestingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
103
+ SkyCoreTestingModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyCoreTestingModule });
104
+ SkyCoreTestingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyCoreTestingModule, providers: [
105
+ { provide: SkyMediaQueryService, useClass: MockSkyMediaQueryService },
106
+ {
107
+ provide: SkyUIConfigService,
108
+ useClass: MockSkyUIConfigService,
109
+ },
110
+ ] });
111
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyCoreTestingModule, decorators: [{
112
+ type: NgModule,
113
+ args: [{
114
+ providers: [
115
+ { provide: SkyMediaQueryService, useClass: MockSkyMediaQueryService },
116
+ {
117
+ provide: SkyUIConfigService,
118
+ useClass: MockSkyUIConfigService,
119
+ },
120
+ ],
121
+ }]
122
+ }] });
123
+
98
124
  /**
99
125
  * Generated bundle index. Do not edit.
100
126
  */
101
127
 
102
- export { MockSkyMediaQueryService, MockSkyUIConfigService };
128
+ export { MockSkyMediaQueryService, MockSkyUIConfigService, SkyCoreTestingModule };
103
129
  //# sourceMappingURL=skyux-core-testing.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"skyux-core-testing.mjs","sources":["../../../../../libs/components/core/testing/src/mock-media-query.service.ts","../../../../../libs/components/core/testing/src/mock-ui-config.service.ts","../../../../../libs/components/core/testing/src/skyux-core-testing.ts"],"sourcesContent":["import { Injectable, NgZone } from '@angular/core';\nimport {\n SkyMediaBreakpoints,\n SkyMediaQueryListener,\n SkyMediaQueryService,\n} from '@skyux/core';\n\nimport { BehaviorSubject, Subscription } from 'rxjs';\n\n@Injectable()\nexport class MockSkyMediaQueryService extends SkyMediaQueryService {\n public static xs = '(max-width: 767px)';\n public static sm = '(min-width: 768px) and (max-width: 991px)';\n public static md = '(min-width: 992px) and (max-width: 1199px)';\n public static lg = '(min-width: 1200px)';\n\n public get current(): SkyMediaBreakpoints {\n return this._currentBreakpoints;\n }\n\n public set current(breakpoints: SkyMediaBreakpoints) {\n this._currentBreakpoints = breakpoints;\n }\n\n public currentMockSubject = new BehaviorSubject<SkyMediaBreakpoints>(\n this.current\n );\n\n private _currentBreakpoints = SkyMediaBreakpoints.md;\n\n constructor() {\n super(\n new NgZone({\n enableLongStackTrace: true,\n })\n );\n }\n\n public subscribe(listener: SkyMediaQueryListener): Subscription {\n return this.currentMockSubject.subscribe({\n next: (breakpoints: SkyMediaBreakpoints) => {\n listener(breakpoints);\n },\n });\n }\n\n public fire(args: SkyMediaBreakpoints): void {\n this._currentBreakpoints = args;\n this.currentMockSubject.next(this._currentBreakpoints);\n }\n\n public destroy(): void {}\n}\n","import { Injectable } from '@angular/core';\nimport { SkyUIConfigService } from '@skyux/core';\n\nimport { of as observableOf } from 'rxjs';\n\n@Injectable()\nexport class MockSkyUIConfigService extends SkyUIConfigService {\n public getConfig(key: string, defaultConfig?: any): any {\n switch (key) {\n case 'defaultSettings':\n return observableOf(defaultConfig);\n case 'badData':\n return observableOf({ invalidProperty: 'invalidData' });\n default: {\n return observableOf({\n settings: {\n userSettings: {\n singleColumn: {\n tiles: [\n {\n id: 'tile-1',\n isCollapsed: true,\n },\n {\n id: 'tile-2',\n isCollapsed: true,\n },\n ],\n },\n multiColumn: [\n {\n tiles: [\n {\n id: 'tile-2',\n isCollapsed: true,\n },\n ],\n },\n {\n tiles: [\n {\n id: 'tile-1',\n isCollapsed: true,\n },\n ],\n },\n ],\n },\n defaultSettings: ['tile-1', 'tile-2'],\n },\n });\n }\n }\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["observableOf"],"mappings":"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"}
1
+ {"version":3,"file":"skyux-core-testing.mjs","sources":["../../../../../libs/components/core/testing/src/mock-media-query.service.ts","../../../../../libs/components/core/testing/src/mock-ui-config.service.ts","../../../../../libs/components/core/testing/src/core-testing.module.ts","../../../../../libs/components/core/testing/src/skyux-core-testing.ts"],"sourcesContent":["import { Injectable, NgZone } from '@angular/core';\nimport {\n SkyMediaBreakpoints,\n SkyMediaQueryListener,\n SkyMediaQueryService,\n} from '@skyux/core';\n\nimport { BehaviorSubject, Subscription } from 'rxjs';\n\n@Injectable()\nexport class MockSkyMediaQueryService extends SkyMediaQueryService {\n public static xs = '(max-width: 767px)';\n public static sm = '(min-width: 768px) and (max-width: 991px)';\n public static md = '(min-width: 992px) and (max-width: 1199px)';\n public static lg = '(min-width: 1200px)';\n\n public get current(): SkyMediaBreakpoints {\n return this._currentBreakpoints;\n }\n\n public set current(breakpoints: SkyMediaBreakpoints) {\n this._currentBreakpoints = breakpoints;\n }\n\n public currentMockSubject = new BehaviorSubject<SkyMediaBreakpoints>(\n this.current\n );\n\n private _currentBreakpoints = SkyMediaBreakpoints.md;\n\n constructor() {\n super(\n new NgZone({\n enableLongStackTrace: true,\n })\n );\n }\n\n public subscribe(listener: SkyMediaQueryListener): Subscription {\n return this.currentMockSubject.subscribe({\n next: (breakpoints: SkyMediaBreakpoints) => {\n listener(breakpoints);\n },\n });\n }\n\n public fire(args: SkyMediaBreakpoints): void {\n this._currentBreakpoints = args;\n this.currentMockSubject.next(this._currentBreakpoints);\n }\n\n /* istanbul ignore next */\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n public destroy(): void {}\n}\n","import { Injectable } from '@angular/core';\nimport { SkyUIConfigService } from '@skyux/core';\n\nimport { Observable, of as observableOf } from 'rxjs';\n\n@Injectable()\nexport class MockSkyUIConfigService extends SkyUIConfigService {\n public getConfig(key: string, defaultConfig?: any): Observable<any> {\n switch (key) {\n case 'defaultSettings':\n return observableOf(defaultConfig);\n case 'badData':\n return observableOf({ invalidProperty: 'invalidData' });\n default: {\n return observableOf({\n settings: {\n userSettings: {\n singleColumn: {\n tiles: [\n {\n id: 'tile-1',\n isCollapsed: true,\n },\n {\n id: 'tile-2',\n isCollapsed: true,\n },\n ],\n },\n multiColumn: [\n {\n tiles: [\n {\n id: 'tile-2',\n isCollapsed: true,\n },\n ],\n },\n {\n tiles: [\n {\n id: 'tile-1',\n isCollapsed: true,\n },\n ],\n },\n ],\n },\n defaultSettings: ['tile-1', 'tile-2'],\n },\n });\n }\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { SkyMediaQueryService, SkyUIConfigService } from '@skyux/core';\n\nimport { MockSkyMediaQueryService } from './mock-media-query.service';\nimport { MockSkyUIConfigService } from './mock-ui-config.service';\n\n@NgModule({\n providers: [\n { provide: SkyMediaQueryService, useClass: MockSkyMediaQueryService },\n {\n provide: SkyUIConfigService,\n useClass: MockSkyUIConfigService,\n },\n ],\n})\nexport class SkyCoreTestingModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["observableOf"],"mappings":"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"}