@scion/components 15.0.2 → 16.1.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/dimension/dimension.directive.d.ts +2 -2
- package/dimension/dimension.module.d.ts +1 -2
- package/esm2022/dimension/dimension.directive.mjs +85 -0
- package/esm2022/dimension/dimension.module.mjs +35 -0
- package/esm2022/sashbox/element-ref.directive.mjs +32 -0
- package/esm2022/sashbox/public_api.mjs +18 -0
- package/esm2022/sashbox/sash-initializer.directive.mjs +36 -0
- package/esm2022/sashbox/sash.directive.mjs +146 -0
- package/esm2022/sashbox/sashbox.component.mjs +286 -0
- package/esm2022/sashbox/sashbox.module.mjs +56 -0
- package/esm2022/splitter/public_api.mjs +17 -0
- package/esm2022/splitter/splitter.component.mjs +226 -0
- package/esm2022/splitter/splitter.module.mjs +39 -0
- package/esm2022/throbber/ellipsis-throbber/ellipsis-throbber.component.mjs +26 -0
- package/esm2022/throbber/ripple-throbber/ripple-throbber.component.mjs +26 -0
- package/esm2022/throbber/roller-throbber/roller-throbber.component.mjs +26 -0
- package/esm2022/throbber/spinner-throbber/spinner-throbber.component.mjs +27 -0
- package/esm2022/throbber/throbber.component.mjs +76 -0
- package/esm2022/throbber/throbber.module.mjs +33 -0
- package/esm2022/viewport/native-scrollbar-track-size-provider.service.mjs +113 -0
- package/esm2022/viewport/public_api.mjs +19 -0
- package/esm2022/viewport/scrollable.directive.mjs +95 -0
- package/esm2022/viewport/scrollbar/scrollbar.component.mjs +323 -0
- package/esm2022/viewport/viewport.component.mjs +289 -0
- package/esm2022/viewport/viewport.module.mjs +43 -0
- package/{fesm2015 → fesm2022}/scion-components-dimension.mjs +13 -11
- package/fesm2022/scion-components-dimension.mjs.map +1 -0
- package/{fesm2020 → fesm2022}/scion-components-sashbox.mjs +69 -61
- package/fesm2022/scion-components-sashbox.mjs.map +1 -0
- package/{fesm2020 → fesm2022}/scion-components-splitter.mjs +25 -25
- package/fesm2022/scion-components-splitter.mjs.map +1 -0
- package/fesm2022/scion-components-throbber.mjs +215 -0
- package/fesm2022/scion-components-throbber.mjs.map +1 -0
- package/{fesm2020 → fesm2022}/scion-components-viewport.mjs +164 -161
- package/fesm2022/scion-components-viewport.mjs.map +1 -0
- package/package.json +27 -43
- package/sashbox/element-ref.directive.d.ts +1 -1
- package/sashbox/public_api.d.ts +3 -3
- package/sashbox/sash-initializer.directive.d.ts +1 -1
- package/sashbox/sash.directive.d.ts +2 -2
- package/sashbox/sashbox.component.d.ts +1 -3
- package/sashbox/sashbox.module.d.ts +1 -5
- package/splitter/public_api.d.ts +2 -2
- package/splitter/splitter.component.d.ts +1 -3
- package/splitter/splitter.module.d.ts +1 -2
- package/throbber/ellipsis-throbber/ellipsis-throbber.component.d.ts +1 -1
- package/throbber/ripple-throbber/ripple-throbber.component.d.ts +1 -1
- package/throbber/roller-throbber/roller-throbber.component.d.ts +1 -1
- package/throbber/spinner-throbber/spinner-throbber.component.d.ts +1 -1
- package/throbber/throbber.component.d.ts +1 -1
- package/throbber/throbber.module.d.ts +1 -6
- package/viewport/native-scrollbar-track-size-provider.service.d.ts +0 -2
- package/viewport/public_api.d.ts +3 -4
- package/viewport/scrollable.directive.d.ts +1 -1
- package/viewport/scrollbar/scrollbar.component.d.ts +2 -2
- package/viewport/viewport.component.d.ts +2 -2
- package/viewport/viewport.module.d.ts +1 -3
- package/esm2020/dimension/dimension.directive.mjs +0 -83
- package/esm2020/dimension/dimension.module.mjs +0 -38
- package/esm2020/sashbox/element-ref.directive.mjs +0 -27
- package/esm2020/sashbox/public_api.mjs +0 -18
- package/esm2020/sashbox/sash-initializer.directive.mjs +0 -32
- package/esm2020/sashbox/sash.directive.mjs +0 -144
- package/esm2020/sashbox/sashbox.component.mjs +0 -278
- package/esm2020/sashbox/sashbox.module.mjs +0 -69
- package/esm2020/splitter/public_api.mjs +0 -17
- package/esm2020/splitter/splitter.component.mjs +0 -227
- package/esm2020/splitter/splitter.module.mjs +0 -42
- package/esm2020/throbber/ellipsis-throbber/ellipsis-throbber.component.mjs +0 -25
- package/esm2020/throbber/ripple-throbber/ripple-throbber.component.mjs +0 -25
- package/esm2020/throbber/roller-throbber/roller-throbber.component.mjs +0 -25
- package/esm2020/throbber/spinner-throbber/spinner-throbber.component.mjs +0 -26
- package/esm2020/throbber/throbber.component.mjs +0 -67
- package/esm2020/throbber/throbber.module.mjs +0 -48
- package/esm2020/viewport/native-scrollbar-track-size-provider.service.mjs +0 -114
- package/esm2020/viewport/public_api.mjs +0 -20
- package/esm2020/viewport/scrollable.directive.mjs +0 -93
- package/esm2020/viewport/scrollbar/scrollbar.component.mjs +0 -322
- package/esm2020/viewport/viewport.component.mjs +0 -281
- package/esm2020/viewport/viewport.module.mjs +0 -50
- package/fesm2015/scion-components-dimension.mjs.map +0 -1
- package/fesm2015/scion-components-sashbox.mjs +0 -554
- package/fesm2015/scion-components-sashbox.mjs.map +0 -1
- package/fesm2015/scion-components-splitter.mjs +0 -284
- package/fesm2015/scion-components-splitter.mjs.map +0 -1
- package/fesm2015/scion-components-throbber.mjs +0 -214
- package/fesm2015/scion-components-throbber.mjs.map +0 -1
- package/fesm2015/scion-components-viewport.mjs +0 -861
- package/fesm2015/scion-components-viewport.mjs.map +0 -1
- package/fesm2015/scion-components.mjs +0 -4
- package/fesm2015/scion-components.mjs.map +0 -1
- package/fesm2020/scion-components-dimension.mjs +0 -135
- package/fesm2020/scion-components-dimension.mjs.map +0 -1
- package/fesm2020/scion-components-sashbox.mjs.map +0 -1
- package/fesm2020/scion-components-splitter.mjs.map +0 -1
- package/fesm2020/scion-components-throbber.mjs +0 -214
- package/fesm2020/scion-components-throbber.mjs.map +0 -1
- package/fesm2020/scion-components-viewport.mjs.map +0 -1
- /package/{esm2020 → esm2022}/dimension/public_api.mjs +0 -0
- /package/{esm2020 → esm2022}/dimension/scion-components-dimension.mjs +0 -0
- /package/{esm2020 → esm2022}/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/sashbox/sashbox-accessor.mjs +0 -0
- /package/{esm2020 → esm2022}/sashbox/scion-components-sashbox.mjs +0 -0
- /package/{esm2020 → esm2022}/scion-components.mjs +0 -0
- /package/{esm2020 → esm2022}/splitter/scion-components-splitter.mjs +0 -0
- /package/{esm2020 → esm2022}/throbber/public_api.mjs +0 -0
- /package/{esm2020 → esm2022}/throbber/scion-components-throbber.mjs +0 -0
- /package/{esm2020 → esm2022}/viewport/scion-components-viewport.mjs +0 -0
- /package/{fesm2020 → fesm2022}/scion-components.mjs +0 -0
- /package/{fesm2020 → fesm2022}/scion-components.mjs.map +0 -0
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2018-2019 Swiss Federal Railways
|
|
3
|
+
*
|
|
4
|
+
* This program and the accompanying materials are made
|
|
5
|
+
* available under the terms of the Eclipse Public License 2.0
|
|
6
|
+
* which is available at https://www.eclipse.org/legal/epl-2.0/
|
|
7
|
+
*
|
|
8
|
+
* SPDX-License-Identifier: EPL-2.0
|
|
9
|
+
*/
|
|
10
|
+
import { Inject, Injectable } from '@angular/core';
|
|
11
|
+
import { DOCUMENT } from '@angular/common';
|
|
12
|
+
import { BehaviorSubject, fromEvent, Subject } from 'rxjs';
|
|
13
|
+
import { debounceTime, distinctUntilChanged, map, startWith, takeUntil } from 'rxjs/operators';
|
|
14
|
+
import * as i0 from "@angular/core";
|
|
15
|
+
/**
|
|
16
|
+
* Provides the native scrollbar tracksize.
|
|
17
|
+
*/
|
|
18
|
+
class SciNativeScrollbarTrackSizeProvider {
|
|
19
|
+
constructor(_document, _zone) {
|
|
20
|
+
this._document = _document;
|
|
21
|
+
this._zone = _zone;
|
|
22
|
+
this._trackSize$ = new BehaviorSubject(null);
|
|
23
|
+
this._destroy$ = new Subject();
|
|
24
|
+
this.installNativeScrollbarTrackSizeListener();
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Returns an {Observable} which emits the native scrollbar track size, if any, or else `null`.
|
|
28
|
+
*
|
|
29
|
+
* Upon subscription, it emits the track size immediately, and then continuously emits when the track size changes.
|
|
30
|
+
*/
|
|
31
|
+
get trackSize$() {
|
|
32
|
+
return this._trackSize$;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Returns the native scrollbar track size, if any, or else `null`.
|
|
36
|
+
*/
|
|
37
|
+
get trackSize() {
|
|
38
|
+
return this._trackSize$.getValue();
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Computes the native scrollbar track size.
|
|
42
|
+
*
|
|
43
|
+
* @returns native track size, or `null` if the native scrollbars sit on top of the content.
|
|
44
|
+
*/
|
|
45
|
+
computeTrackSize() {
|
|
46
|
+
// create temporary viewport and viewport client with native scrollbars to compute scrolltrack width
|
|
47
|
+
const viewportDiv = this._document.createElement('div');
|
|
48
|
+
setStyle(viewportDiv, {
|
|
49
|
+
position: 'absolute',
|
|
50
|
+
overflow: 'scroll',
|
|
51
|
+
height: '100px',
|
|
52
|
+
width: '100px',
|
|
53
|
+
border: 0,
|
|
54
|
+
visibility: 'hidden',
|
|
55
|
+
});
|
|
56
|
+
const viewportClientDiv = this._document.createElement('div');
|
|
57
|
+
setStyle(viewportClientDiv, {
|
|
58
|
+
height: '100%',
|
|
59
|
+
width: '100%',
|
|
60
|
+
border: 0,
|
|
61
|
+
});
|
|
62
|
+
viewportDiv.appendChild(viewportClientDiv);
|
|
63
|
+
this._document.body.appendChild(viewportDiv);
|
|
64
|
+
const trackSize = {
|
|
65
|
+
hScrollbarTrackHeight: viewportDiv.offsetHeight - viewportClientDiv.offsetHeight,
|
|
66
|
+
vScrollbarTrackWidth: viewportDiv.offsetWidth - viewportClientDiv.offsetWidth,
|
|
67
|
+
};
|
|
68
|
+
// destroy temporary viewport
|
|
69
|
+
this._document.body.removeChild(viewportDiv);
|
|
70
|
+
if (trackSize.hScrollbarTrackHeight === 0 && trackSize.vScrollbarTrackWidth === 0) {
|
|
71
|
+
return null;
|
|
72
|
+
}
|
|
73
|
+
return trackSize;
|
|
74
|
+
}
|
|
75
|
+
installNativeScrollbarTrackSizeListener() {
|
|
76
|
+
// We compute the size of the native scrollbar track when the browser fires the onresize window event.
|
|
77
|
+
// This event is also fired on page zoom or when displaying a hidden document. Hidden documents do not have
|
|
78
|
+
// a scrollbar track size until being displayed, e.g., after showing hidden iframes.
|
|
79
|
+
this._zone.runOutsideAngular(() => {
|
|
80
|
+
fromEvent(window, 'resize')
|
|
81
|
+
.pipe(debounceTime(5), startWith(null), // trigger the initial computation
|
|
82
|
+
map(() => this.computeTrackSize()), distinctUntilChanged((t1, t2) => JSON.stringify(t1) === JSON.stringify(t2)), takeUntil(this._destroy$))
|
|
83
|
+
.subscribe(trackSize => {
|
|
84
|
+
this._zone.run(() => this._trackSize$.next(trackSize));
|
|
85
|
+
});
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
ngOnDestroy() {
|
|
89
|
+
this._destroy$.next();
|
|
90
|
+
}
|
|
91
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: SciNativeScrollbarTrackSizeProvider, deps: [{ token: DOCUMENT }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
92
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: SciNativeScrollbarTrackSizeProvider, providedIn: 'root' }); }
|
|
93
|
+
}
|
|
94
|
+
export { SciNativeScrollbarTrackSizeProvider };
|
|
95
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: SciNativeScrollbarTrackSizeProvider, decorators: [{
|
|
96
|
+
type: Injectable,
|
|
97
|
+
args: [{ providedIn: 'root' }]
|
|
98
|
+
}], ctorParameters: function () { return [{ type: Document, decorators: [{
|
|
99
|
+
type: Inject,
|
|
100
|
+
args: [DOCUMENT]
|
|
101
|
+
}] }, { type: i0.NgZone }]; } });
|
|
102
|
+
/**
|
|
103
|
+
* Applies the given style(s) to the given element.
|
|
104
|
+
*
|
|
105
|
+
* Specify styles to be modified by passing a dictionary containing CSS property names (hyphen case).
|
|
106
|
+
* To remove a style, set its value to `null`.
|
|
107
|
+
*
|
|
108
|
+
* @ignore
|
|
109
|
+
*/
|
|
110
|
+
function setStyle(element, style) {
|
|
111
|
+
Object.keys(style).forEach(key => element.style.setProperty(key, style[key]));
|
|
112
|
+
}
|
|
113
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF0aXZlLXNjcm9sbGJhci10cmFjay1zaXplLXByb3ZpZGVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zY2lvbi9jb21wb25lbnRzL3ZpZXdwb3J0L3NyYy9uYXRpdmUtc2Nyb2xsYmFyLXRyYWNrLXNpemUtcHJvdmlkZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7R0FRRztBQUVILE9BQU8sRUFBQyxNQUFNLEVBQUUsVUFBVSxFQUFvQixNQUFNLGVBQWUsQ0FBQztBQUNwRSxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDekMsT0FBTyxFQUFDLGVBQWUsRUFBRSxTQUFTLEVBQWMsT0FBTyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQ3JFLE9BQU8sRUFBQyxZQUFZLEVBQUUsb0JBQW9CLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFFN0Y7O0dBRUc7QUFDSCxNQUNhLG1DQUFtQztJQUs5QyxZQUFzQyxTQUFtQixFQUFVLEtBQWE7UUFBMUMsY0FBUyxHQUFULFNBQVMsQ0FBVTtRQUFVLFVBQUssR0FBTCxLQUFLLENBQVE7UUFIL0QsZ0JBQVcsR0FBRyxJQUFJLGVBQWUsQ0FBa0MsSUFBSSxDQUFDLENBQUM7UUFDekUsY0FBUyxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFHL0MsSUFBSSxDQUFDLHVDQUF1QyxFQUFFLENBQUM7SUFDakQsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxJQUFXLFVBQVU7UUFDbkIsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQzFCLENBQUM7SUFFRDs7T0FFRztJQUNILElBQVcsU0FBUztRQUNsQixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDckMsQ0FBQztJQUVEOzs7O09BSUc7SUFDSyxnQkFBZ0I7UUFD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QUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNoRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAxOC0yMDE5IFN3aXNzIEZlZGVyYWwgUmFpbHdheXNcbiAqXG4gKiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzIGFyZSBtYWRlXG4gKiBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIDIuMFxuICogd2hpY2ggaXMgYXZhaWxhYmxlIGF0IGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvXG4gKlxuICogIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBFUEwtMi4wXG4gKi9cblxuaW1wb3J0IHtJbmplY3QsIEluamVjdGFibGUsIE5nWm9uZSwgT25EZXN0cm95fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7RE9DVU1FTlR9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge0JlaGF2aW9yU3ViamVjdCwgZnJvbUV2ZW50LCBPYnNlcnZhYmxlLCBTdWJqZWN0fSBmcm9tICdyeGpzJztcbmltcG9ydCB7ZGVib3VuY2VUaW1lLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgbWFwLCBzdGFydFdpdGgsIHRha2VVbnRpbH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG4vKipcbiAqIFByb3ZpZGVzIHRoZSBuYXRpdmUgc2Nyb2xsYmFyIHRyYWNrc2l6ZS5cbiAqL1xuQEluamVjdGFibGUoe3Byb3ZpZGVkSW46ICdyb290J30pXG5leHBvcnQgY2xhc3MgU2NpTmF0aXZlU2Nyb2xsYmFyVHJhY2tTaXplUHJvdmlkZXIgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX3RyYWNrU2l6ZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PE5hdGl2ZVNjcm9sbGJhclRyYWNrU2l6ZSB8IG51bGw+KG51bGwpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9kZXN0cm95JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgY29uc3RydWN0b3IoQEluamVjdChET0NVTUVOVCkgcHJpdmF0ZSBfZG9jdW1lbnQ6IERvY3VtZW50LCBwcml2YXRlIF96b25lOiBOZ1pvbmUpIHtcbiAgICB0aGlzLmluc3RhbGxOYXRpdmVTY3JvbGxiYXJUcmFja1NpemVMaXN0ZW5lcigpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYW4ge09ic2VydmFibGV9IHdoaWNoIGVtaXRzIHRoZSBuYXRpdmUgc2Nyb2xsYmFyIHRyYWNrIHNpemUsIGlmIGFueSwgb3IgZWxzZSBgbnVsbGAuXG4gICAqXG4gICAqIFVwb24gc3Vic2NyaXB0aW9uLCBpdCBlbWl0cyB0aGUgdHJhY2sgc2l6ZSBpbW1lZGlhdGVseSwgYW5kIHRoZW4gY29udGludW91c2x5IGVtaXRzIHdoZW4gdGhlIHRyYWNrIHNpemUgY2hhbmdlcy5cbiAgICovXG4gIHB1YmxpYyBnZXQgdHJhY2tTaXplJCgpOiBPYnNlcnZhYmxlPE5hdGl2ZVNjcm9sbGJhclRyYWNrU2l6ZSB8IG51bGw+IHtcbiAgICByZXR1cm4gdGhpcy5fdHJhY2tTaXplJDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBuYXRpdmUgc2Nyb2xsYmFyIHRyYWNrIHNpemUsIGlmIGFueSwgb3IgZWxzZSBgbnVsbGAuXG4gICAqL1xuICBwdWJsaWMgZ2V0IHRyYWNrU2l6ZSgpOiBOYXRpdmVTY3JvbGxiYXJUcmFja1NpemUgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5fdHJhY2tTaXplJC5nZXRWYWx1ZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIENvbXB1dGVzIHRoZSBuYXRpdmUgc2Nyb2xsYmFyIHRyYWNrIHNpemUuXG4gICAqXG4gICAqIEByZXR1cm5zIG5hdGl2ZSB0cmFjayBzaXplLCBvciBgbnVsbGAgaWYgdGhlIG5hdGl2ZSBzY3JvbGxiYXJzIHNpdCBvbiB0b3Agb2YgdGhlIGNvbnRlbnQuXG4gICAqL1xuICBwcml2YXRlIGNvbXB1dGVUcmFja1NpemUoKTogTmF0aXZlU2Nyb2xsYmFyVHJhY2tTaXplIHwgbnVsbCB7XG4gICAgLy8gY3JlYXRlIHRlbXBvcmFyeSB2aWV3cG9ydCBhbmQgdmlld3BvcnQgY2xpZW50IHdpdGggbmF0aXZlIHNjcm9sbGJhcnMgdG8gY29tcHV0ZSBzY3JvbGx0cmFjayB3aWR0aFxuICAgIGNvbnN0IHZpZXdwb3J0RGl2ID0gdGhpcy5fZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgc2V0U3R5bGUodmlld3BvcnREaXYsIHtcbiAgICAgIHBvc2l0aW9uOiAnYWJzb2x1dGUnLFxuICAgICAgb3ZlcmZsb3c6ICdzY3JvbGwnLFxuICAgICAgaGVpZ2h0OiAnMTAwcHgnLFxuICAgICAgd2lkdGg6ICcxMDBweCcsXG4gICAgICBib3JkZXI6IDAsXG4gICAgICB2aXNpYmlsaXR5OiAnaGlkZGVuJyxcbiAgICB9KTtcblxuICAgIGNvbnN0IHZpZXdwb3J0Q2xpZW50RGl2ID0gdGhpcy5fZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgc2V0U3R5bGUodmlld3BvcnRDbGllbnREaXYsIHtcbiAgICAgIGhlaWdodDogJzEwMCUnLFxuICAgICAgd2lkdGg6ICcxMDAlJyxcbiAgICAgIGJvcmRlcjogMCxcbiAgICB9KTtcblxuICAgIHZpZXdwb3J0RGl2LmFwcGVuZENoaWxkKHZpZXdwb3J0Q2xpZW50RGl2KTtcbiAgICB0aGlzLl9kb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHZpZXdwb3J0RGl2KTtcblxuICAgIGNvbnN0IHRyYWNrU2l6ZTogTmF0aXZlU2Nyb2xsYmFyVHJhY2tTaXplID0ge1xuICAgICAgaFNjcm9sbGJhclRyYWNrSGVpZ2h0OiB2aWV3cG9ydERpdi5vZmZzZXRIZWlnaHQgLSB2aWV3cG9ydENsaWVudERpdi5vZmZzZXRIZWlnaHQsXG4gICAgICB2U2Nyb2xsYmFyVHJhY2tXaWR0aDogdmlld3BvcnREaXYub2Zmc2V0V2lkdGggLSB2aWV3cG9ydENsaWVudERpdi5vZmZzZXRXaWR0aCxcbiAgICB9O1xuXG4gICAgLy8gZGVzdHJveSB0ZW1wb3Jhcnkgdmlld3BvcnRcbiAgICB0aGlzLl9kb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKHZpZXdwb3J0RGl2KTtcbiAgICBpZiAodHJhY2tTaXplLmhTY3JvbGxiYXJUcmFja0hlaWdodCA9PT0gMCAmJiB0cmFja1NpemUudlNjcm9sbGJhclRyYWNrV2lkdGggPT09IDApIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHJldHVybiB0cmFja1NpemU7XG4gIH1cblxuICBwcml2YXRlIGluc3RhbGxOYXRpdmVTY3JvbGxiYXJUcmFja1NpemVMaXN0ZW5lcigpOiB2b2lkIHtcbiAgICAvLyBXZSBjb21wdXRlIHRoZSBzaXplIG9mIHRoZSBuYXRpdmUgc2Nyb2xsYmFyIHRyYWNrIHdoZW4gdGhlIGJyb3dzZXIgZmlyZXMgdGhlIG9ucmVzaXplIHdpbmRvdyBldmVudC5cbiAgICAvLyBUaGlzIGV2ZW50IGlzIGFsc28gZmlyZWQgb24gcGFnZSB6b29tIG9yIHdoZW4gZGlzcGxheWluZyBhIGhpZGRlbiBkb2N1bWVudC4gSGlkZGVuIGRvY3VtZW50cyBkbyBub3QgaGF2ZVxuICAgIC8vIGEgc2Nyb2xsYmFyIHRyYWNrIHNpemUgdW50aWwgYmVpbmcgZGlzcGxheWVkLCBlLmcuLCBhZnRlciBzaG93aW5nIGhpZGRlbiBpZnJhbWVzLlxuICAgIHRoaXMuX3pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgZnJvbUV2ZW50KHdpbmRvdywgJ3Jlc2l6ZScpXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIGRlYm91bmNlVGltZSg1KSxcbiAgICAgICAgICBzdGFydFdpdGgobnVsbCksIC8vIHRyaWdnZXIgdGhlIGluaXRpYWwgY29tcHV0YXRpb25cbiAgICAgICAgICBtYXAoKCkgPT4gdGhpcy5jb21wdXRlVHJhY2tTaXplKCkpLFxuICAgICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCh0MSwgdDIpID0+IEpTT04uc3RyaW5naWZ5KHQxKSA9PT0gSlNPTi5zdHJpbmdpZnkodDIpKSxcbiAgICAgICAgICB0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpLFxuICAgICAgICApXG4gICAgICAgIC5zdWJzY3JpYmUodHJhY2tTaXplID0+IHtcbiAgICAgICAgICB0aGlzLl96b25lLnJ1bigoKSA9PiB0aGlzLl90cmFja1NpemUkLm5leHQodHJhY2tTaXplKSk7XG4gICAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuX2Rlc3Ryb3kkLm5leHQoKTtcbiAgfVxufVxuXG4vKipcbiAqIEFwcGxpZXMgdGhlIGdpdmVuIHN0eWxlKHMpIHRvIHRoZSBnaXZlbiBlbGVtZW50LlxuICpcbiAqIFNwZWNpZnkgc3R5bGVzIHRvIGJlIG1vZGlmaWVkIGJ5IHBhc3NpbmcgYSBkaWN0aW9uYXJ5IGNvbnRhaW5pbmcgQ1NTIHByb3BlcnR5IG5hbWVzIChoeXBoZW4gY2FzZSkuXG4gKiBUbyByZW1vdmUgYSBzdHlsZSwgc2V0IGl0cyB2YWx1ZSB0byBgbnVsbGAuXG4gKlxuICogQGlnbm9yZVxuICovXG5mdW5jdGlvbiBzZXRTdHlsZShlbGVtZW50OiBIVE1MRWxlbWVudCwgc3R5bGU6IHtbc3R5bGU6IHN0cmluZ106IGFueSB8IG51bGx9KTogdm9pZCB7XG4gIE9iamVjdC5rZXlzKHN0eWxlKS5mb3JFYWNoKGtleSA9PiBlbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KGtleSwgc3R5bGVba2V5XSkpO1xufVxuXG4vKipcbiAqIFJlcHJlc2VudHMgdGhlIG5hdGl2ZSBzY3JvbGxiYXIgdHJhY2sgc2l6ZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBOYXRpdmVTY3JvbGxiYXJUcmFja1NpemUge1xuICBoU2Nyb2xsYmFyVHJhY2tIZWlnaHQ6IG51bWJlcjtcbiAgdlNjcm9sbGJhclRyYWNrV2lkdGg6IG51bWJlcjtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2018-2019 Swiss Federal Railways
|
|
3
|
+
*
|
|
4
|
+
* This program and the accompanying materials are made
|
|
5
|
+
* available under the terms of the Eclipse Public License 2.0
|
|
6
|
+
* which is available at https://www.eclipse.org/legal/epl-2.0/
|
|
7
|
+
*
|
|
8
|
+
* SPDX-License-Identifier: EPL-2.0
|
|
9
|
+
*/
|
|
10
|
+
/*
|
|
11
|
+
* Secondary entrypoint: '@scion/components/viewport'
|
|
12
|
+
*
|
|
13
|
+
* @see https://github.com/ng-packagr/ng-packagr/blob/master/docs/secondary-entrypoints.md
|
|
14
|
+
*/
|
|
15
|
+
export { SciViewportModule } from './viewport.module';
|
|
16
|
+
export { SciViewportComponent } from './viewport.component';
|
|
17
|
+
export { SciScrollbarComponent } from './scrollbar/scrollbar.component';
|
|
18
|
+
export { SciScrollableDirective } from './scrollable.directive';
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NjaW9uL2NvbXBvbmVudHMvdmlld3BvcnQvc3JjL3B1YmxpY19hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7O0dBUUc7QUFFSDs7OztHQUlHO0FBQ0gsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFDcEQsT0FBTyxFQUFDLG9CQUFvQixFQUFpQixNQUFNLHNCQUFzQixDQUFDO0FBQzFFLE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLGlDQUFpQyxDQUFDO0FBQ3RFLE9BQU8sRUFBQyxzQkFBc0IsRUFBQyxNQUFNLHdCQUF3QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAxOC0yMDE5IFN3aXNzIEZlZGVyYWwgUmFpbHdheXNcbiAqXG4gKiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzIGFyZSBtYWRlXG4gKiBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIDIuMFxuICogd2hpY2ggaXMgYXZhaWxhYmxlIGF0IGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvXG4gKlxuICogIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBFUEwtMi4wXG4gKi9cblxuLypcbiAqIFNlY29uZGFyeSBlbnRyeXBvaW50OiAnQHNjaW9uL2NvbXBvbmVudHMvdmlld3BvcnQnXG4gKlxuICogQHNlZSBodHRwczovL2dpdGh1Yi5jb20vbmctcGFja2Fnci9uZy1wYWNrYWdyL2Jsb2IvbWFzdGVyL2RvY3Mvc2Vjb25kYXJ5LWVudHJ5cG9pbnRzLm1kXG4gKi9cbmV4cG9ydCB7U2NpVmlld3BvcnRNb2R1bGV9IGZyb20gJy4vdmlld3BvcnQubW9kdWxlJztcbmV4cG9ydCB7U2NpVmlld3BvcnRDb21wb25lbnQsIFNjcm9sbGJhclN0eWxlfSBmcm9tICcuL3ZpZXdwb3J0LmNvbXBvbmVudCc7XG5leHBvcnQge1NjaVNjcm9sbGJhckNvbXBvbmVudH0gZnJvbSAnLi9zY3JvbGxiYXIvc2Nyb2xsYmFyLmNvbXBvbmVudCc7XG5leHBvcnQge1NjaVNjcm9sbGFibGVEaXJlY3RpdmV9IGZyb20gJy4vc2Nyb2xsYWJsZS5kaXJlY3RpdmUnO1xuIl19
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2018-2019 Swiss Federal Railways
|
|
3
|
+
*
|
|
4
|
+
* This program and the accompanying materials are made
|
|
5
|
+
* available under the terms of the Eclipse Public License 2.0
|
|
6
|
+
* which is available at https://www.eclipse.org/legal/epl-2.0/
|
|
7
|
+
*
|
|
8
|
+
* SPDX-License-Identifier: EPL-2.0
|
|
9
|
+
*/
|
|
10
|
+
import { Directive, Input } from '@angular/core';
|
|
11
|
+
import { map, takeUntil } from 'rxjs/operators';
|
|
12
|
+
import { merge, Subject } from 'rxjs';
|
|
13
|
+
import * as i0 from "@angular/core";
|
|
14
|
+
import * as i1 from "./native-scrollbar-track-size-provider.service";
|
|
15
|
+
/**
|
|
16
|
+
* Makes the host element natively scrollable and hides native scrollbars by default, unless native scrollbars
|
|
17
|
+
* already sit on top of the viewport (e.g. in OS X).
|
|
18
|
+
*
|
|
19
|
+
* Because there is no cross-browser API to hide scrollbars without losing native scroll support, we set 'overflow'
|
|
20
|
+
* to 'scroll' but shift the native scrollbars out of the visible viewport area. The shift offset is computed upfront.
|
|
21
|
+
*
|
|
22
|
+
* This directive expects its host element to be the only child in document flow in its parent DOM element. It makes the host element
|
|
23
|
+
* fill up the entire space (width and height set to 100%). The parent element must have its CSS `overflow` property set to `hidden`
|
|
24
|
+
* to hide the pushed out native scrollbars.
|
|
25
|
+
*/
|
|
26
|
+
class SciScrollableDirective {
|
|
27
|
+
constructor(_host, _renderer, nativeScrollbarTrackSizeProvider) {
|
|
28
|
+
this._host = _host;
|
|
29
|
+
this._renderer = _renderer;
|
|
30
|
+
this._destroy$ = new Subject();
|
|
31
|
+
this._inputChange$ = new Subject();
|
|
32
|
+
/**
|
|
33
|
+
* Controls whether to display native scrollbars.
|
|
34
|
+
* Has no effect if the native scrollbar sits on top of the content, e.g. in OS X.
|
|
35
|
+
*/
|
|
36
|
+
this.isDisplayNativeScrollbar = false;
|
|
37
|
+
merge(nativeScrollbarTrackSizeProvider.trackSize$, this._inputChange$.pipe(map(() => nativeScrollbarTrackSizeProvider.trackSize)))
|
|
38
|
+
.pipe(takeUntil(this._destroy$))
|
|
39
|
+
.subscribe(nativeScrollbarTrackSize => {
|
|
40
|
+
if (nativeScrollbarTrackSize === null) { // the native scrollbar sits on top of the content
|
|
41
|
+
this.useNativeScrollbars();
|
|
42
|
+
}
|
|
43
|
+
else {
|
|
44
|
+
this.isDisplayNativeScrollbar ? this.useNativeScrollbars() : this.shiftNativeScrollbars(nativeScrollbarTrackSize);
|
|
45
|
+
}
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Uses the native scrollbars when content overflows.
|
|
50
|
+
*/
|
|
51
|
+
useNativeScrollbars() {
|
|
52
|
+
this.setStyle(this._host.nativeElement, {
|
|
53
|
+
overflow: 'auto',
|
|
54
|
+
width: '100%',
|
|
55
|
+
height: '100%',
|
|
56
|
+
marginRight: 0,
|
|
57
|
+
marginBottom: 0,
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Shifts the native scrollbars out of the visible viewport area.
|
|
62
|
+
*/
|
|
63
|
+
shiftNativeScrollbars(nativeScrollbarTrackSize) {
|
|
64
|
+
this.setStyle(this._host.nativeElement, {
|
|
65
|
+
overflow: 'scroll',
|
|
66
|
+
width: `calc(100% + ${nativeScrollbarTrackSize.vScrollbarTrackWidth}px`,
|
|
67
|
+
height: `calc(100% + ${nativeScrollbarTrackSize.hScrollbarTrackHeight}px`,
|
|
68
|
+
marginRight: `-${nativeScrollbarTrackSize.vScrollbarTrackWidth}px`,
|
|
69
|
+
marginBottom: `-${nativeScrollbarTrackSize.hScrollbarTrackHeight}px`,
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
setStyle(element, style) {
|
|
73
|
+
Object.keys(style).forEach(key => this._renderer.setStyle(element, key, style[key]));
|
|
74
|
+
}
|
|
75
|
+
ngOnChanges(changes) {
|
|
76
|
+
this._inputChange$.next();
|
|
77
|
+
}
|
|
78
|
+
ngOnDestroy() {
|
|
79
|
+
this._destroy$.next();
|
|
80
|
+
}
|
|
81
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: SciScrollableDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i1.SciNativeScrollbarTrackSizeProvider }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
82
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.1", type: SciScrollableDirective, isStandalone: true, selector: "[sciScrollable]", inputs: { isDisplayNativeScrollbar: ["sciScrollableDisplayNativeScrollbar", "isDisplayNativeScrollbar"] }, usesOnChanges: true, ngImport: i0 }); }
|
|
83
|
+
}
|
|
84
|
+
export { SciScrollableDirective };
|
|
85
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: SciScrollableDirective, decorators: [{
|
|
86
|
+
type: Directive,
|
|
87
|
+
args: [{
|
|
88
|
+
selector: '[sciScrollable]',
|
|
89
|
+
standalone: true,
|
|
90
|
+
}]
|
|
91
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i1.SciNativeScrollbarTrackSizeProvider }]; }, propDecorators: { isDisplayNativeScrollbar: [{
|
|
92
|
+
type: Input,
|
|
93
|
+
args: ['sciScrollableDisplayNativeScrollbar']
|
|
94
|
+
}] } });
|
|
95
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Nyb2xsYWJsZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zY2lvbi9jb21wb25lbnRzL3ZpZXdwb3J0L3NyYy9zY3JvbGxhYmxlLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7R0FRRztBQUVILE9BQU8sRUFBQyxTQUFTLEVBQWMsS0FBSyxFQUFpRCxNQUFNLGVBQWUsQ0FBQztBQUUzRyxPQUFPLEVBQUMsR0FBRyxFQUFFLFNBQVMsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQzlDLE9BQU8sRUFBQyxLQUFLLEVBQUUsT0FBTyxFQUFDLE1BQU0sTUFBTSxDQUFDOzs7QUFHcEM7Ozs7Ozs7Ozs7R0FVRztBQUNILE1BSWEsc0JBQXNCO0lBWWpDLFlBQW9CLEtBQWlDLEVBQ2pDLFNBQW9CLEVBQzVCLGdDQUFxRTtRQUY3RCxVQUFLLEdBQUwsS0FBSyxDQUE0QjtRQUNqQyxjQUFTLEdBQVQsU0FBUyxDQUFXO1FBWGhDLGNBQVMsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO1FBQ2hDLGtCQUFhLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQUU1Qzs7O1dBR0c7UUFFSSw2QkFBd0IsR0FBRyxLQUFLLENBQUM7UUFLdEMsS0FBSyxDQUNILGdDQUFnQyxDQUFDLFVBQVUsRUFDM0MsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLGdDQUFnQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQy9FO2FBQ0UsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7YUFDL0IsU0FBUyxDQUFDLHdCQUF3QixDQUFDLEVBQUU7WUFDcEMsSUFBSSx3QkFBd0IsS0FBSyxJQUFJLEVBQUUsRUFBRSxrREFBa0Q7Z0JBQ3pGLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO2FBQzVCO2lCQUNJO2dCQUNILElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO2FBQ25IO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQ7O09BRUc7SUFDSyxtQkFBbUI7UUFDekIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsRUFBRTtZQUN0QyxRQUFRLEVBQUUsTUFBTTtZQUNoQixLQUFLLEVBQUUsTUFBTTtZQUNiLE1BQU0sRUFBRSxNQUFNO1lBQ2QsV0FBVyxFQUFFLENBQUM7WUFDZCxZQUFZLEVBQUUsQ0FBQztTQUNoQixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7O09BRUc7SUFDSyxxQkFBcUIsQ0FBQyx3QkFBa0Q7UUFDOUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsRUFBRTtZQUN0QyxRQUFRLEVBQUUsUUFBUTtZQUNsQixLQUFLLEVBQUUsZUFBZSx3QkFBd0IsQ0FBQyxvQkFBb0IsSUFBSTtZQUN2RSxNQUFNLEVBQUUsZUFBZSx3QkFBd0IsQ0FBQyxxQkFBcUIsSUFBSTtZQUN6RSxXQUFXLEVBQUUsSUFBSSx3QkFBd0IsQ0FBQyxvQkFBb0IsSUFBSTtZQUNsRSxZQUFZLEVBQUUsSUFBSSx3QkFBd0IsQ0FBQyxxQkFBcUIsSUFBSTtTQUNyRSxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8sUUFBUSxDQUFDLE9BQWdCLEVBQUUsS0FBaUI7UUFDbEQsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsR0FBRyxFQUFFLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdkYsQ0FBQztJQUVNLFdBQVcsQ0FBQyxPQUFzQjtRQUN2QyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFFTSxXQUFXO1FBQ2hCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDeEIsQ0FBQzs4R0FsRVUsc0JBQXNCO2tHQUF0QixzQkFBc0I7O1NBQXRCLHNCQUFzQjsyRkFBdEIsc0JBQXNCO2tCQUpsQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxpQkFBaUI7b0JBQzNCLFVBQVUsRUFBRSxJQUFJO2lCQUNqQjsyS0FXUSx3QkFBd0I7c0JBRDlCLEtBQUs7dUJBQUMscUNBQXFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAxOC0yMDE5IFN3aXNzIEZlZGVyYWwgUmFpbHdheXNcbiAqXG4gKiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzIGFyZSBtYWRlXG4gKiBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIDIuMFxuICogd2hpY2ggaXMgYXZhaWxhYmxlIGF0IGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvXG4gKlxuICogIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBFUEwtMi4wXG4gKi9cblxuaW1wb3J0IHtEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIElucHV0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSwgUmVuZGVyZXIyLCBTaW1wbGVDaGFuZ2VzfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7TmF0aXZlU2Nyb2xsYmFyVHJhY2tTaXplLCBTY2lOYXRpdmVTY3JvbGxiYXJUcmFja1NpemVQcm92aWRlcn0gZnJvbSAnLi9uYXRpdmUtc2Nyb2xsYmFyLXRyYWNrLXNpemUtcHJvdmlkZXIuc2VydmljZSc7XG5pbXBvcnQge21hcCwgdGFrZVVudGlsfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge21lcmdlLCBTdWJqZWN0fSBmcm9tICdyeGpzJztcbmltcG9ydCB7RGljdGlvbmFyeX0gZnJvbSAnQHNjaW9uL3Rvb2xraXQvdXRpbCc7XG5cbi8qKlxuICogTWFrZXMgdGhlIGhvc3QgZWxlbWVudCBuYXRpdmVseSBzY3JvbGxhYmxlIGFuZCBoaWRlcyBuYXRpdmUgc2Nyb2xsYmFycyBieSBkZWZhdWx0LCB1bmxlc3MgbmF0aXZlIHNjcm9sbGJhcnNcbiAqIGFscmVhZHkgc2l0IG9uIHRvcCBvZiB0aGUgdmlld3BvcnQgKGUuZy4gaW4gT1MgWCkuXG4gKlxuICogQmVjYXVzZSB0aGVyZSBpcyBubyBjcm9zcy1icm93c2VyIEFQSSB0byBoaWRlIHNjcm9sbGJhcnMgd2l0aG91dCBsb3NpbmcgbmF0aXZlIHNjcm9sbCBzdXBwb3J0LCB3ZSBzZXQgJ292ZXJmbG93J1xuICogdG8gJ3Njcm9sbCcgYnV0IHNoaWZ0IHRoZSBuYXRpdmUgc2Nyb2xsYmFycyBvdXQgb2YgdGhlIHZpc2libGUgdmlld3BvcnQgYXJlYS4gVGhlIHNoaWZ0IG9mZnNldCBpcyBjb21wdXRlZCB1cGZyb250LlxuICpcbiAqIFRoaXMgZGlyZWN0aXZlIGV4cGVjdHMgaXRzIGhvc3QgZWxlbWVudCB0byBiZSB0aGUgb25seSBjaGlsZCBpbiBkb2N1bWVudCBmbG93IGluIGl0cyBwYXJlbnQgRE9NIGVsZW1lbnQuIEl0IG1ha2VzIHRoZSBob3N0IGVsZW1lbnRcbiAqIGZpbGwgdXAgdGhlIGVudGlyZSBzcGFjZSAod2lkdGggYW5kIGhlaWdodCBzZXQgdG8gMTAwJSkuIFRoZSBwYXJlbnQgZWxlbWVudCBtdXN0IGhhdmUgaXRzIENTUyBgb3ZlcmZsb3dgIHByb3BlcnR5IHNldCB0byBgaGlkZGVuYFxuICogdG8gaGlkZSB0aGUgcHVzaGVkIG91dCBuYXRpdmUgc2Nyb2xsYmFycy5cbiAqL1xuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW3NjaVNjcm9sbGFibGVdJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgU2NpU2Nyb2xsYWJsZURpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgT25EZXN0cm95IHtcblxuICBwcml2YXRlIF9kZXN0cm95JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gIHByaXZhdGUgX2lucHV0Q2hhbmdlJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgLyoqXG4gICAqIENvbnRyb2xzIHdoZXRoZXIgdG8gZGlzcGxheSBuYXRpdmUgc2Nyb2xsYmFycy5cbiAgICogSGFzIG5vIGVmZmVjdCBpZiB0aGUgbmF0aXZlIHNjcm9sbGJhciBzaXRzIG9uIHRvcCBvZiB0aGUgY29udGVudCwgZS5nLiBpbiBPUyBYLlxuICAgKi9cbiAgQElucHV0KCdzY2lTY3JvbGxhYmxlRGlzcGxheU5hdGl2ZVNjcm9sbGJhcicpLy8gZXNsaW50LWRpc2FibGUtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXQtcmVuYW1lXG4gIHB1YmxpYyBpc0Rpc3BsYXlOYXRpdmVTY3JvbGxiYXIgPSBmYWxzZTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9ob3N0OiBFbGVtZW50UmVmPEhUTUxEaXZFbGVtZW50PixcbiAgICAgICAgICAgICAgcHJpdmF0ZSBfcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgICAgICAgICAgICAgbmF0aXZlU2Nyb2xsYmFyVHJhY2tTaXplUHJvdmlkZXI6IFNjaU5hdGl2ZVNjcm9sbGJhclRyYWNrU2l6ZVByb3ZpZGVyKSB7XG4gICAgbWVyZ2UoXG4gICAgICBuYXRpdmVTY3JvbGxiYXJUcmFja1NpemVQcm92aWRlci50cmFja1NpemUkLFxuICAgICAgdGhpcy5faW5wdXRDaGFuZ2UkLnBpcGUobWFwKCgpID0+IG5hdGl2ZVNjcm9sbGJhclRyYWNrU2l6ZVByb3ZpZGVyLnRyYWNrU2l6ZSkpLFxuICAgIClcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLl9kZXN0cm95JCkpXG4gICAgICAuc3Vic2NyaWJlKG5hdGl2ZVNjcm9sbGJhclRyYWNrU2l6ZSA9PiB7XG4gICAgICAgIGlmIChuYXRpdmVTY3JvbGxiYXJUcmFja1NpemUgPT09IG51bGwpIHsgLy8gdGhlIG5hdGl2ZSBzY3JvbGxiYXIgc2l0cyBvbiB0b3Agb2YgdGhlIGNvbnRlbnRcbiAgICAgICAgICB0aGlzLnVzZU5hdGl2ZVNjcm9sbGJhcnMoKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICB0aGlzLmlzRGlzcGxheU5hdGl2ZVNjcm9sbGJhciA/IHRoaXMudXNlTmF0aXZlU2Nyb2xsYmFycygpIDogdGhpcy5zaGlmdE5hdGl2ZVNjcm9sbGJhcnMobmF0aXZlU2Nyb2xsYmFyVHJhY2tTaXplKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogVXNlcyB0aGUgbmF0aXZlIHNjcm9sbGJhcnMgd2hlbiBjb250ZW50IG92ZXJmbG93cy5cbiAgICovXG4gIHByaXZhdGUgdXNlTmF0aXZlU2Nyb2xsYmFycygpOiB2b2lkIHtcbiAgICB0aGlzLnNldFN0eWxlKHRoaXMuX2hvc3QubmF0aXZlRWxlbWVudCwge1xuICAgICAgb3ZlcmZsb3c6ICdhdXRvJyxcbiAgICAgIHdpZHRoOiAnMTAwJScsXG4gICAgICBoZWlnaHQ6ICcxMDAlJyxcbiAgICAgIG1hcmdpblJpZ2h0OiAwLFxuICAgICAgbWFyZ2luQm90dG9tOiAwLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFNoaWZ0cyB0aGUgbmF0aXZlIHNjcm9sbGJhcnMgb3V0IG9mIHRoZSB2aXNpYmxlIHZpZXdwb3J0IGFyZWEuXG4gICAqL1xuICBwcml2YXRlIHNoaWZ0TmF0aXZlU2Nyb2xsYmFycyhuYXRpdmVTY3JvbGxiYXJUcmFja1NpemU6IE5hdGl2ZVNjcm9sbGJhclRyYWNrU2l6ZSk6IHZvaWQge1xuICAgIHRoaXMuc2V0U3R5bGUodGhpcy5faG9zdC5uYXRpdmVFbGVtZW50LCB7XG4gICAgICBvdmVyZmxvdzogJ3Njcm9sbCcsXG4gICAgICB3aWR0aDogYGNhbGMoMTAwJSArICR7bmF0aXZlU2Nyb2xsYmFyVHJhY2tTaXplLnZTY3JvbGxiYXJUcmFja1dpZHRofXB4YCxcbiAgICAgIGhlaWdodDogYGNhbGMoMTAwJSArICR7bmF0aXZlU2Nyb2xsYmFyVHJhY2tTaXplLmhTY3JvbGxiYXJUcmFja0hlaWdodH1weGAsXG4gICAgICBtYXJnaW5SaWdodDogYC0ke25hdGl2ZVNjcm9sbGJhclRyYWNrU2l6ZS52U2Nyb2xsYmFyVHJhY2tXaWR0aH1weGAsXG4gICAgICBtYXJnaW5Cb3R0b206IGAtJHtuYXRpdmVTY3JvbGxiYXJUcmFja1NpemUuaFNjcm9sbGJhclRyYWNrSGVpZ2h0fXB4YCxcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0U3R5bGUoZWxlbWVudDogRWxlbWVudCwgc3R5bGU6IERpY3Rpb25hcnkpOiB2b2lkIHtcbiAgICBPYmplY3Qua2V5cyhzdHlsZSkuZm9yRWFjaChrZXkgPT4gdGhpcy5fcmVuZGVyZXIuc2V0U3R5bGUoZWxlbWVudCwga2V5LCBzdHlsZVtrZXldKSk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIHRoaXMuX2lucHV0Q2hhbmdlJC5uZXh0KCk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5fZGVzdHJveSQubmV4dCgpO1xuICB9XG59XG4iXX0=
|