@scion/components 13.0.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/README.md +40 -0
- package/_components.scss +1 -0
- package/_index.scss +23 -0
- package/dimension/dimension.directive.d.ts +43 -0
- package/dimension/dimension.module.d.ts +13 -0
- package/dimension/package.json +10 -0
- package/dimension/public_api.d.ts +2 -0
- package/dimension/scion-components-dimension.d.ts +5 -0
- package/esm2020/dimension/dimension.directive.mjs +83 -0
- package/esm2020/dimension/dimension.module.mjs +40 -0
- package/esm2020/dimension/public_api.mjs +17 -0
- package/esm2020/dimension/scion-components-dimension.mjs +5 -0
- package/esm2020/public-api.mjs +11 -0
- package/esm2020/sashbox/element-ref.directive.mjs +27 -0
- package/esm2020/sashbox/public_api.mjs +18 -0
- package/esm2020/sashbox/sash-initializer.directive.mjs +32 -0
- package/esm2020/sashbox/sash.directive.mjs +144 -0
- package/esm2020/sashbox/sashbox-accessor.mjs +6 -0
- package/esm2020/sashbox/sashbox.component.mjs +278 -0
- package/esm2020/sashbox/sashbox.module.mjs +71 -0
- package/esm2020/sashbox/scion-components-sashbox.mjs +5 -0
- package/esm2020/scion-components.mjs +5 -0
- package/esm2020/splitter/public_api.mjs +17 -0
- package/esm2020/splitter/scion-components-splitter.mjs +5 -0
- package/esm2020/splitter/splitter.component.mjs +227 -0
- package/esm2020/splitter/splitter.module.mjs +44 -0
- package/esm2020/throbber/ellipsis-throbber/ellipsis-throbber.component.mjs +25 -0
- package/esm2020/throbber/public_api.mjs +17 -0
- package/esm2020/throbber/ripple-throbber/ripple-throbber.component.mjs +25 -0
- package/esm2020/throbber/roller-throbber/roller-throbber.component.mjs +25 -0
- package/esm2020/throbber/scion-components-throbber.mjs +5 -0
- package/esm2020/throbber/spinner-throbber/spinner-throbber.component.mjs +26 -0
- package/esm2020/throbber/throbber.component.mjs +67 -0
- package/esm2020/throbber/throbber.module.mjs +50 -0
- package/esm2020/viewport/native-scrollbar-track-size-provider.service.mjs +114 -0
- package/esm2020/viewport/public_api.mjs +20 -0
- package/esm2020/viewport/scion-components-viewport.mjs +5 -0
- package/esm2020/viewport/scrollable.directive.mjs +93 -0
- package/esm2020/viewport/scrollbar/scrollbar.component.mjs +322 -0
- package/esm2020/viewport/viewport.component.mjs +265 -0
- package/esm2020/viewport/viewport.module.mjs +52 -0
- package/fesm2015/scion-components-dimension.mjs +137 -0
- package/fesm2015/scion-components-dimension.mjs.map +1 -0
- package/fesm2015/scion-components-sashbox.mjs +556 -0
- package/fesm2015/scion-components-sashbox.mjs.map +1 -0
- package/fesm2015/scion-components-splitter.mjs +286 -0
- package/fesm2015/scion-components-splitter.mjs.map +1 -0
- package/fesm2015/scion-components-throbber.mjs +216 -0
- package/fesm2015/scion-components-throbber.mjs.map +1 -0
- package/fesm2015/scion-components-viewport.mjs +846 -0
- package/fesm2015/scion-components-viewport.mjs.map +1 -0
- package/fesm2015/scion-components.mjs +4 -0
- package/fesm2015/scion-components.mjs.map +1 -0
- package/fesm2020/scion-components-dimension.mjs +137 -0
- package/fesm2020/scion-components-dimension.mjs.map +1 -0
- package/fesm2020/scion-components-sashbox.mjs +556 -0
- package/fesm2020/scion-components-sashbox.mjs.map +1 -0
- package/fesm2020/scion-components-splitter.mjs +284 -0
- package/fesm2020/scion-components-splitter.mjs.map +1 -0
- package/fesm2020/scion-components-throbber.mjs +216 -0
- package/fesm2020/scion-components-throbber.mjs.map +1 -0
- package/fesm2020/scion-components-viewport.mjs +842 -0
- package/fesm2020/scion-components-viewport.mjs.map +1 -0
- package/fesm2020/scion-components.mjs +14 -0
- package/fesm2020/scion-components.mjs.map +1 -0
- package/package.json +93 -0
- package/public-api.d.ts +4 -0
- package/sashbox/element-ref.directive.d.ts +12 -0
- package/sashbox/package.json +10 -0
- package/sashbox/public_api.d.ts +3 -0
- package/sashbox/sash-initializer.directive.d.ts +14 -0
- package/sashbox/sash.directive.d.ts +60 -0
- package/sashbox/sashbox-accessor.d.ts +10 -0
- package/sashbox/sashbox.component.d.ts +90 -0
- package/sashbox/sashbox.module.d.ts +33 -0
- package/sashbox/scion-components-sashbox.d.ts +5 -0
- package/scion-components.d.ts +5 -0
- package/splitter/package.json +10 -0
- package/splitter/public_api.d.ts +2 -0
- package/splitter/scion-components-splitter.d.ts +5 -0
- package/splitter/splitter.component.d.ts +104 -0
- package/splitter/splitter.module.d.ts +17 -0
- package/throbber/ellipsis-throbber/ellipsis-throbber.component.d.ts +10 -0
- package/throbber/package.json +10 -0
- package/throbber/public_api.d.ts +2 -0
- package/throbber/ripple-throbber/ripple-throbber.component.d.ts +10 -0
- package/throbber/roller-throbber/roller-throbber.component.d.ts +10 -0
- package/throbber/scion-components-throbber.d.ts +5 -0
- package/throbber/spinner-throbber/spinner-throbber.component.d.ts +11 -0
- package/throbber/throbber.component.d.ts +43 -0
- package/throbber/throbber.module.d.ts +15 -0
- package/viewport/_index.scss +1 -0
- package/viewport/_scrollbar.scss +44 -0
- package/viewport/native-scrollbar-track-size-provider.service.d.ts +42 -0
- package/viewport/package.json +10 -0
- package/viewport/public_api.d.ts +5 -0
- package/viewport/scion-components-viewport.d.ts +5 -0
- package/viewport/scrollable.directive.d.ts +39 -0
- package/viewport/scrollbar/scrollbar.component.d.ts +106 -0
- package/viewport/viewport.component.d.ts +160 -0
- package/viewport/viewport.module.d.ts +14 -0
|
@@ -0,0 +1,50 @@
|
|
|
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 { NgModule } from '@angular/core';
|
|
11
|
+
import { CommonModule } from '@angular/common';
|
|
12
|
+
import { SciThrobberComponent } from './throbber.component';
|
|
13
|
+
import { SciEllipsisThrobberComponent } from './ellipsis-throbber/ellipsis-throbber.component';
|
|
14
|
+
import { SciRippleThrobberComponent } from './ripple-throbber/ripple-throbber.component';
|
|
15
|
+
import { SciRollerThrobberComponent } from './roller-throbber/roller-throbber.component';
|
|
16
|
+
import { SciSpinnerThrobberComponent } from './spinner-throbber/spinner-throbber.component';
|
|
17
|
+
import * as i0 from "@angular/core";
|
|
18
|
+
/**
|
|
19
|
+
* Provides {@link SciThrobberComponent}, an animated graphical control to indicate the execution of an action.
|
|
20
|
+
*/
|
|
21
|
+
export class SciThrobberModule {
|
|
22
|
+
}
|
|
23
|
+
SciThrobberModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: SciThrobberModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
24
|
+
SciThrobberModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: SciThrobberModule, declarations: [SciThrobberComponent,
|
|
25
|
+
SciEllipsisThrobberComponent,
|
|
26
|
+
SciRippleThrobberComponent,
|
|
27
|
+
SciRollerThrobberComponent,
|
|
28
|
+
SciSpinnerThrobberComponent], imports: [CommonModule], exports: [SciThrobberComponent] });
|
|
29
|
+
SciThrobberModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: SciThrobberModule, imports: [[
|
|
30
|
+
CommonModule,
|
|
31
|
+
]] });
|
|
32
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: SciThrobberModule, decorators: [{
|
|
33
|
+
type: NgModule,
|
|
34
|
+
args: [{
|
|
35
|
+
declarations: [
|
|
36
|
+
SciThrobberComponent,
|
|
37
|
+
SciEllipsisThrobberComponent,
|
|
38
|
+
SciRippleThrobberComponent,
|
|
39
|
+
SciRollerThrobberComponent,
|
|
40
|
+
SciSpinnerThrobberComponent,
|
|
41
|
+
],
|
|
42
|
+
imports: [
|
|
43
|
+
CommonModule,
|
|
44
|
+
],
|
|
45
|
+
exports: [
|
|
46
|
+
SciThrobberComponent,
|
|
47
|
+
],
|
|
48
|
+
}]
|
|
49
|
+
}] });
|
|
50
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhyb2JiZXIubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2Npb24vY29tcG9uZW50cy90aHJvYmJlci9zcmMvdGhyb2JiZXIubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7OztHQVFHO0FBRUgsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN2QyxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDMUQsT0FBTyxFQUFDLDRCQUE0QixFQUFDLE1BQU0saURBQWlELENBQUM7QUFDN0YsT0FBTyxFQUFDLDBCQUEwQixFQUFDLE1BQU0sNkNBQTZDLENBQUM7QUFDdkYsT0FBTyxFQUFDLDBCQUEwQixFQUFDLE1BQU0sNkNBQTZDLENBQUM7QUFDdkYsT0FBTyxFQUFDLDJCQUEyQixFQUFDLE1BQU0sK0NBQStDLENBQUM7O0FBRTFGOztHQUVHO0FBZ0JILE1BQU0sT0FBTyxpQkFBaUI7OzhHQUFqQixpQkFBaUI7K0dBQWpCLGlCQUFpQixpQkFiMUIsb0JBQW9CO1FBQ3BCLDRCQUE0QjtRQUM1QiwwQkFBMEI7UUFDMUIsMEJBQTBCO1FBQzFCLDJCQUEyQixhQUczQixZQUFZLGFBR1osb0JBQW9COytHQUdYLGlCQUFpQixZQVBuQjtZQUNQLFlBQVk7U0FDYjsyRkFLVSxpQkFBaUI7a0JBZjdCLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFO3dCQUNaLG9CQUFvQjt3QkFDcEIsNEJBQTRCO3dCQUM1QiwwQkFBMEI7d0JBQzFCLDBCQUEwQjt3QkFDMUIsMkJBQTJCO3FCQUM1QjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsWUFBWTtxQkFDYjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1Asb0JBQW9CO3FCQUNyQjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTgtMjAxOSBTd2lzcyBGZWRlcmFsIFJhaWx3YXlzXG4gKlxuICogVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscyBhcmUgbWFkZVxuICogYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSAyLjBcbiAqIHdoaWNoIGlzIGF2YWlsYWJsZSBhdCBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wL1xuICpcbiAqICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogRVBMLTIuMFxuICovXG5cbmltcG9ydCB7TmdNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtDb21tb25Nb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1NjaVRocm9iYmVyQ29tcG9uZW50fSBmcm9tICcuL3Rocm9iYmVyLmNvbXBvbmVudCc7XG5pbXBvcnQge1NjaUVsbGlwc2lzVGhyb2JiZXJDb21wb25lbnR9IGZyb20gJy4vZWxsaXBzaXMtdGhyb2JiZXIvZWxsaXBzaXMtdGhyb2JiZXIuY29tcG9uZW50JztcbmltcG9ydCB7U2NpUmlwcGxlVGhyb2JiZXJDb21wb25lbnR9IGZyb20gJy4vcmlwcGxlLXRocm9iYmVyL3JpcHBsZS10aHJvYmJlci5jb21wb25lbnQnO1xuaW1wb3J0IHtTY2lSb2xsZXJUaHJvYmJlckNvbXBvbmVudH0gZnJvbSAnLi9yb2xsZXItdGhyb2JiZXIvcm9sbGVyLXRocm9iYmVyLmNvbXBvbmVudCc7XG5pbXBvcnQge1NjaVNwaW5uZXJUaHJvYmJlckNvbXBvbmVudH0gZnJvbSAnLi9zcGlubmVyLXRocm9iYmVyL3NwaW5uZXItdGhyb2JiZXIuY29tcG9uZW50JztcblxuLyoqXG4gKiBQcm92aWRlcyB7QGxpbmsgU2NpVGhyb2JiZXJDb21wb25lbnR9LCBhbiBhbmltYXRlZCBncmFwaGljYWwgY29udHJvbCB0byBpbmRpY2F0ZSB0aGUgZXhlY3V0aW9uIG9mIGFuIGFjdGlvbi5cbiAqL1xuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgU2NpVGhyb2JiZXJDb21wb25lbnQsXG4gICAgU2NpRWxsaXBzaXNUaHJvYmJlckNvbXBvbmVudCxcbiAgICBTY2lSaXBwbGVUaHJvYmJlckNvbXBvbmVudCxcbiAgICBTY2lSb2xsZXJUaHJvYmJlckNvbXBvbmVudCxcbiAgICBTY2lTcGlubmVyVGhyb2JiZXJDb21wb25lbnQsXG4gIF0sXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gIF0sXG4gIGV4cG9ydHM6IFtcbiAgICBTY2lUaHJvYmJlckNvbXBvbmVudCxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgU2NpVGhyb2JiZXJNb2R1bGUge1xufVxuIl19
|
|
@@ -0,0 +1,114 @@
|
|
|
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
|
+
* @dynamic ignore 'strictMetadataEmit' errors due to the usage of {@link Document} as ambient type for DI.
|
|
19
|
+
*/
|
|
20
|
+
export class SciNativeScrollbarTrackSizeProvider {
|
|
21
|
+
constructor(_document, _zone) {
|
|
22
|
+
this._document = _document;
|
|
23
|
+
this._zone = _zone;
|
|
24
|
+
this._trackSize$ = new BehaviorSubject(null);
|
|
25
|
+
this._destroy$ = new Subject();
|
|
26
|
+
this.installNativeScrollbarTrackSizeListener();
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Returns an {Observable} which emits the native scrollbar track size, if any, or else `null`.
|
|
30
|
+
*
|
|
31
|
+
* Upon subscription, it emits the track size immediately, and then continuously emits when the track size changes.
|
|
32
|
+
*/
|
|
33
|
+
get trackSize$() {
|
|
34
|
+
return this._trackSize$;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Returns the native scrollbar track size, if any, or else `null`.
|
|
38
|
+
*/
|
|
39
|
+
get trackSize() {
|
|
40
|
+
return this._trackSize$.getValue();
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Computes the native scrollbar track size.
|
|
44
|
+
*
|
|
45
|
+
* @returns native track size, or `null` if the native scrollbars sit on top of the content.
|
|
46
|
+
*/
|
|
47
|
+
computeTrackSize() {
|
|
48
|
+
// create temporary viewport and viewport client with native scrollbars to compute scrolltrack width
|
|
49
|
+
const viewportDiv = this._document.createElement('div');
|
|
50
|
+
setStyle(viewportDiv, {
|
|
51
|
+
position: 'absolute',
|
|
52
|
+
overflow: 'scroll',
|
|
53
|
+
height: '100px',
|
|
54
|
+
width: '100px',
|
|
55
|
+
border: 0,
|
|
56
|
+
visibility: 'hidden',
|
|
57
|
+
});
|
|
58
|
+
const viewportClientDiv = this._document.createElement('div');
|
|
59
|
+
setStyle(viewportClientDiv, {
|
|
60
|
+
height: '100%',
|
|
61
|
+
width: '100%',
|
|
62
|
+
border: 0,
|
|
63
|
+
});
|
|
64
|
+
viewportDiv.appendChild(viewportClientDiv);
|
|
65
|
+
this._document.body.appendChild(viewportDiv);
|
|
66
|
+
const trackSize = {
|
|
67
|
+
hScrollbarTrackHeight: viewportDiv.offsetHeight - viewportClientDiv.offsetHeight,
|
|
68
|
+
vScrollbarTrackWidth: viewportDiv.offsetWidth - viewportClientDiv.offsetWidth,
|
|
69
|
+
};
|
|
70
|
+
// destroy temporary viewport
|
|
71
|
+
this._document.body.removeChild(viewportDiv);
|
|
72
|
+
if (trackSize.hScrollbarTrackHeight === 0 && trackSize.vScrollbarTrackWidth === 0) {
|
|
73
|
+
return null;
|
|
74
|
+
}
|
|
75
|
+
return trackSize;
|
|
76
|
+
}
|
|
77
|
+
installNativeScrollbarTrackSizeListener() {
|
|
78
|
+
// We compute the size of the native scrollbar track when the browser fires the onresize window event.
|
|
79
|
+
// This event is also fired on page zoom or when displaying a hidden document. Hidden documents do not have
|
|
80
|
+
// a scrollbar track size until being displayed, e.g., after showing hidden iframes.
|
|
81
|
+
this._zone.runOutsideAngular(() => {
|
|
82
|
+
fromEvent(window, 'resize')
|
|
83
|
+
.pipe(debounceTime(5), startWith(null), // trigger the initial computation
|
|
84
|
+
map(() => this.computeTrackSize()), distinctUntilChanged((t1, t2) => JSON.stringify(t1) === JSON.stringify(t2)), takeUntil(this._destroy$))
|
|
85
|
+
.subscribe(trackSize => {
|
|
86
|
+
this._zone.run(() => this._trackSize$.next(trackSize));
|
|
87
|
+
});
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
ngOnDestroy() {
|
|
91
|
+
this._destroy$.next();
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
SciNativeScrollbarTrackSizeProvider.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: SciNativeScrollbarTrackSizeProvider, deps: [{ token: DOCUMENT }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
95
|
+
SciNativeScrollbarTrackSizeProvider.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: SciNativeScrollbarTrackSizeProvider, providedIn: 'root' });
|
|
96
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: SciNativeScrollbarTrackSizeProvider, decorators: [{
|
|
97
|
+
type: Injectable,
|
|
98
|
+
args: [{ providedIn: 'root' }]
|
|
99
|
+
}], ctorParameters: function () { return [{ type: Document, decorators: [{
|
|
100
|
+
type: Inject,
|
|
101
|
+
args: [DOCUMENT]
|
|
102
|
+
}] }, { type: i0.NgZone }]; } });
|
|
103
|
+
/**
|
|
104
|
+
* Applies the given style(s) to the given element.
|
|
105
|
+
*
|
|
106
|
+
* Specify styles to be modified by passing a dictionary containing CSS property names (hyphen case).
|
|
107
|
+
* To remove a style, set its value to `null`.
|
|
108
|
+
*
|
|
109
|
+
* @ignore
|
|
110
|
+
*/
|
|
111
|
+
function setStyle(element, style) {
|
|
112
|
+
Object.keys(style).forEach(key => element.style.setProperty(key, style[key]));
|
|
113
|
+
}
|
|
114
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF0aXZlLXNjcm9sbGJhci10cmFjay1zaXplLXByb3ZpZGVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zY2lvbi9jb21wb25lbnRzL3ZpZXdwb3J0L3NyYy9uYXRpdmUtc2Nyb2xsYmFyLXRyYWNrLXNpemUtcHJvdmlkZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7R0FRRztBQUVILE9BQU8sRUFBQyxNQUFNLEVBQUUsVUFBVSxFQUFvQixNQUFNLGVBQWUsQ0FBQztBQUNwRSxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDekMsT0FBTyxFQUFDLGVBQWUsRUFBRSxTQUFTLEVBQWMsT0FBTyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQ3JFLE9BQU8sRUFBQyxZQUFZLEVBQUUsb0JBQW9CLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFFN0Y7Ozs7R0FJRztBQUVILE1BQU0sT0FBTyxtQ0FBbUM7SUFLOUMsWUFBc0MsU0FBbUIsRUFBVSxLQUFhO1FBQTFDLGNBQVMsR0FBVCxTQUFTLENBQVU7UUFBVSxVQUFLLEdBQUwsS0FBSyxDQUFRO1FBSC9ELGdCQUFXLEdBQUcsSUFBSSxlQUFlLENBQWtDLElBQUksQ0FBQyxDQUFDO1FBQ3pFLGNBQVMsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO1FBRy9DLElBQUksQ0FBQyx1Q0FBdUMsRUFBRSxDQUFDO0lBQ2pELENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsSUFBVyxVQUFVO1FBQ25CLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUMxQixDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFXLFNBQVM7UUFDbEIsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ3JDLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ssZ0JBQWdCO1FBQ3RCLG9HQUFvRztRQUNwRyxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN4RCxRQUFRLENBQUMsV0FBVyxFQUFFO1lBQ3BCLFFBQVEsRUFBRSxVQUFVO1lBQ3BCLFFBQVEsRUFBRSxRQUFRO1lBQ2xCLE1BQU0sRUFBRSxPQUFPO1lBQ2YsS0FBSyxFQUFFLE9BQU87WUFDZCxNQUFNLEVBQUUsQ0FBQztZQUNULFVBQVUsRUFBRSxRQUFRO1NBQ3JCLENBQUMsQ0FBQztRQUVILE1BQU0saUJBQWlCLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDOUQsUUFBUSxDQUFDLGlCQUFpQixFQUFFO1lBQzFCLE1BQU0sRUFBRSxNQUFNO1lBQ2QsS0FBSyxFQUFFLE1BQU07WUFDYixNQUFNLEVBQUUsQ0FBQztTQUNWLENBQUMsQ0FBQztRQUVILFdBQVcsQ0FBQyxXQUFXLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUMzQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDLENBQUM7UUFFN0MsTUFBTSxTQUFTLEdBQTZCO1lBQzFDLHFCQUFxQixFQUFFLFdBQVcsQ0FBQyxZQUFZLEdBQUcsaUJBQWlCLENBQUMsWUFBWTtZQUNoRixvQkFBb0IsRUFBRSxXQUFXLENBQUMsV0FBVyxHQUFHLGlCQUFpQixDQUFDLFdBQVc7U0FDOUUsQ0FBQztRQUVGLDZCQUE2QjtRQUM3QixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDN0MsSUFBSSxTQUFTLENBQUMscUJBQXFCLEtBQUssQ0FBQyxJQUFJLFNBQVMsQ0FBQyxvQkFBb0IsS0FBSyxDQUFDLEVBQUU7WUFDakYsT0FBTyxJQUFJLENBQUM7U0FDYjtRQUVELE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7SUFFTyx1Q0FBdUM7UUFDN0Msc0dBQXNHO1FBQ3RHLDJHQUEyRztRQUMzRyxvRkFBb0Y7UUFDcEYsSUFBSSxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLEVBQUU7WUFDaEMsU0FBUyxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUM7aUJBQ3hCLElBQUksQ0FDSCxZQUFZLENBQUMsQ0FBQyxDQUFDLEVBQ2YsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLGtDQUFrQztZQUNuRCxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUMsRUFDbEMsb0JBQW9CLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxLQUFLLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUMsRUFDM0UsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FDMUI7aUJBQ0EsU0FBUyxDQUFDLFNBQVMsQ0FBQyxFQUFFO2dCQUNyQixJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO1lBQ3pELENBQUMsQ0FBQyxDQUFDO1FBQ1AsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU0sV0FBVztRQUNoQixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3hCLENBQUM7O2dJQXZGVSxtQ0FBbUMsa0JBSzFCLFFBQVE7b0lBTGpCLG1DQUFtQyxjQUR2QixNQUFNOzJGQUNsQixtQ0FBbUM7a0JBRC9DLFVBQVU7bUJBQUMsRUFBQyxVQUFVLEVBQUUsTUFBTSxFQUFDOzBEQU1tQixRQUFROzBCQUE1QyxNQUFNOzJCQUFDLFFBQVE7O0FBcUY5Qjs7Ozs7OztHQU9HO0FBQ0gsU0FBUyxRQUFRLENBQUMsT0FBb0IsRUFBRSxLQUFvQztJQUMxRSxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ2hGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChjKSAyMDE4LTIwMTkgU3dpc3MgRmVkZXJhbCBSYWlsd2F5c1xuICpcbiAqIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMgYXJlIG1hZGVcbiAqIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgMi4wXG4gKiB3aGljaCBpcyBhdmFpbGFibGUgYXQgaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC9cbiAqXG4gKiAgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEVQTC0yLjBcbiAqL1xuXG5pbXBvcnQge0luamVjdCwgSW5qZWN0YWJsZSwgTmdab25lLCBPbkRlc3Ryb3l9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtET0NVTUVOVH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7QmVoYXZpb3JTdWJqZWN0LCBmcm9tRXZlbnQsIE9ic2VydmFibGUsIFN1YmplY3R9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtkZWJvdW5jZVRpbWUsIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBtYXAsIHN0YXJ0V2l0aCwgdGFrZVVudGlsfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbi8qKlxuICogUHJvdmlkZXMgdGhlIG5hdGl2ZSBzY3JvbGxiYXIgdHJhY2tzaXplLlxuICpcbiAqIEBkeW5hbWljIGlnbm9yZSAnc3RyaWN0TWV0YWRhdGFFbWl0JyBlcnJvcnMgZHVlIHRvIHRoZSB1c2FnZSBvZiB7QGxpbmsgRG9jdW1lbnR9IGFzIGFtYmllbnQgdHlwZSBmb3IgREkuXG4gKi9cbkBJbmplY3RhYmxlKHtwcm92aWRlZEluOiAncm9vdCd9KVxuZXhwb3J0IGNsYXNzIFNjaU5hdGl2ZVNjcm9sbGJhclRyYWNrU2l6ZVByb3ZpZGVyIGltcGxlbWVudHMgT25EZXN0cm95IHtcblxuICBwcml2YXRlIHJlYWRvbmx5IF90cmFja1NpemUkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxOYXRpdmVTY3JvbGxiYXJUcmFja1NpemUgfCBudWxsPihudWxsKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfZGVzdHJveSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIGNvbnN0cnVjdG9yKEBJbmplY3QoRE9DVU1FTlQpIHByaXZhdGUgX2RvY3VtZW50OiBEb2N1bWVudCwgcHJpdmF0ZSBfem9uZTogTmdab25lKSB7XG4gICAgdGhpcy5pbnN0YWxsTmF0aXZlU2Nyb2xsYmFyVHJhY2tTaXplTGlzdGVuZXIoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGFuIHtPYnNlcnZhYmxlfSB3aGljaCBlbWl0cyB0aGUgbmF0aXZlIHNjcm9sbGJhciB0cmFjayBzaXplLCBpZiBhbnksIG9yIGVsc2UgYG51bGxgLlxuICAgKlxuICAgKiBVcG9uIHN1YnNjcmlwdGlvbiwgaXQgZW1pdHMgdGhlIHRyYWNrIHNpemUgaW1tZWRpYXRlbHksIGFuZCB0aGVuIGNvbnRpbnVvdXNseSBlbWl0cyB3aGVuIHRoZSB0cmFjayBzaXplIGNoYW5nZXMuXG4gICAqL1xuICBwdWJsaWMgZ2V0IHRyYWNrU2l6ZSQoKTogT2JzZXJ2YWJsZTxOYXRpdmVTY3JvbGxiYXJUcmFja1NpemUgfCBudWxsPiB7XG4gICAgcmV0dXJuIHRoaXMuX3RyYWNrU2l6ZSQ7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgbmF0aXZlIHNjcm9sbGJhciB0cmFjayBzaXplLCBpZiBhbnksIG9yIGVsc2UgYG51bGxgLlxuICAgKi9cbiAgcHVibGljIGdldCB0cmFja1NpemUoKTogTmF0aXZlU2Nyb2xsYmFyVHJhY2tTaXplIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuX3RyYWNrU2l6ZSQuZ2V0VmFsdWUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb21wdXRlcyB0aGUgbmF0aXZlIHNjcm9sbGJhciB0cmFjayBzaXplLlxuICAgKlxuICAgKiBAcmV0dXJucyBuYXRpdmUgdHJhY2sgc2l6ZSwgb3IgYG51bGxgIGlmIHRoZSBuYXRpdmUgc2Nyb2xsYmFycyBzaXQgb24gdG9wIG9mIHRoZSBjb250ZW50LlxuICAgKi9cbiAgcHJpdmF0ZSBjb21wdXRlVHJhY2tTaXplKCk6IE5hdGl2ZVNjcm9sbGJhclRyYWNrU2l6ZSB8IG51bGwge1xuICAgIC8vIGNyZWF0ZSB0ZW1wb3Jhcnkgdmlld3BvcnQgYW5kIHZpZXdwb3J0IGNsaWVudCB3aXRoIG5hdGl2ZSBzY3JvbGxiYXJzIHRvIGNvbXB1dGUgc2Nyb2xsdHJhY2sgd2lkdGhcbiAgICBjb25zdCB2aWV3cG9ydERpdiA9IHRoaXMuX2RvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgIHNldFN0eWxlKHZpZXdwb3J0RGl2LCB7XG4gICAgICBwb3NpdGlvbjogJ2Fic29sdXRlJyxcbiAgICAgIG92ZXJmbG93OiAnc2Nyb2xsJyxcbiAgICAgIGhlaWdodDogJzEwMHB4JyxcbiAgICAgIHdpZHRoOiAnMTAwcHgnLFxuICAgICAgYm9yZGVyOiAwLFxuICAgICAgdmlzaWJpbGl0eTogJ2hpZGRlbicsXG4gICAgfSk7XG5cbiAgICBjb25zdCB2aWV3cG9ydENsaWVudERpdiA9IHRoaXMuX2RvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgIHNldFN0eWxlKHZpZXdwb3J0Q2xpZW50RGl2LCB7XG4gICAgICBoZWlnaHQ6ICcxMDAlJyxcbiAgICAgIHdpZHRoOiAnMTAwJScsXG4gICAgICBib3JkZXI6IDAsXG4gICAgfSk7XG5cbiAgICB2aWV3cG9ydERpdi5hcHBlbmRDaGlsZCh2aWV3cG9ydENsaWVudERpdik7XG4gICAgdGhpcy5fZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCh2aWV3cG9ydERpdik7XG5cbiAgICBjb25zdCB0cmFja1NpemU6IE5hdGl2ZVNjcm9sbGJhclRyYWNrU2l6ZSA9IHtcbiAgICAgIGhTY3JvbGxiYXJUcmFja0hlaWdodDogdmlld3BvcnREaXYub2Zmc2V0SGVpZ2h0IC0gdmlld3BvcnRDbGllbnREaXYub2Zmc2V0SGVpZ2h0LFxuICAgICAgdlNjcm9sbGJhclRyYWNrV2lkdGg6IHZpZXdwb3J0RGl2Lm9mZnNldFdpZHRoIC0gdmlld3BvcnRDbGllbnREaXYub2Zmc2V0V2lkdGgsXG4gICAgfTtcblxuICAgIC8vIGRlc3Ryb3kgdGVtcG9yYXJ5IHZpZXdwb3J0XG4gICAgdGhpcy5fZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZCh2aWV3cG9ydERpdik7XG4gICAgaWYgKHRyYWNrU2l6ZS5oU2Nyb2xsYmFyVHJhY2tIZWlnaHQgPT09IDAgJiYgdHJhY2tTaXplLnZTY3JvbGxiYXJUcmFja1dpZHRoID09PSAwKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICByZXR1cm4gdHJhY2tTaXplO1xuICB9XG5cbiAgcHJpdmF0ZSBpbnN0YWxsTmF0aXZlU2Nyb2xsYmFyVHJhY2tTaXplTGlzdGVuZXIoKTogdm9pZCB7XG4gICAgLy8gV2UgY29tcHV0ZSB0aGUgc2l6ZSBvZiB0aGUgbmF0aXZlIHNjcm9sbGJhciB0cmFjayB3aGVuIHRoZSBicm93c2VyIGZpcmVzIHRoZSBvbnJlc2l6ZSB3aW5kb3cgZXZlbnQuXG4gICAgLy8gVGhpcyBldmVudCBpcyBhbHNvIGZpcmVkIG9uIHBhZ2Ugem9vbSBvciB3aGVuIGRpc3BsYXlpbmcgYSBoaWRkZW4gZG9jdW1lbnQuIEhpZGRlbiBkb2N1bWVudHMgZG8gbm90IGhhdmVcbiAgICAvLyBhIHNjcm9sbGJhciB0cmFjayBzaXplIHVudGlsIGJlaW5nIGRpc3BsYXllZCwgZS5nLiwgYWZ0ZXIgc2hvd2luZyBoaWRkZW4gaWZyYW1lcy5cbiAgICB0aGlzLl96b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgIGZyb21FdmVudCh3aW5kb3csICdyZXNpemUnKVxuICAgICAgICAucGlwZShcbiAgICAgICAgICBkZWJvdW5jZVRpbWUoNSksXG4gICAgICAgICAgc3RhcnRXaXRoKG51bGwpLCAvLyB0cmlnZ2VyIHRoZSBpbml0aWFsIGNvbXB1dGF0aW9uXG4gICAgICAgICAgbWFwKCgpID0+IHRoaXMuY29tcHV0ZVRyYWNrU2l6ZSgpKSxcbiAgICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgodDEsIHQyKSA9PiBKU09OLnN0cmluZ2lmeSh0MSkgPT09IEpTT04uc3RyaW5naWZ5KHQyKSksXG4gICAgICAgICAgdGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSxcbiAgICAgICAgKVxuICAgICAgICAuc3Vic2NyaWJlKHRyYWNrU2l6ZSA9PiB7XG4gICAgICAgICAgdGhpcy5fem9uZS5ydW4oKCkgPT4gdGhpcy5fdHJhY2tTaXplJC5uZXh0KHRyYWNrU2l6ZSkpO1xuICAgICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLl9kZXN0cm95JC5uZXh0KCk7XG4gIH1cbn1cblxuLyoqXG4gKiBBcHBsaWVzIHRoZSBnaXZlbiBzdHlsZShzKSB0byB0aGUgZ2l2ZW4gZWxlbWVudC5cbiAqXG4gKiBTcGVjaWZ5IHN0eWxlcyB0byBiZSBtb2RpZmllZCBieSBwYXNzaW5nIGEgZGljdGlvbmFyeSBjb250YWluaW5nIENTUyBwcm9wZXJ0eSBuYW1lcyAoaHlwaGVuIGNhc2UpLlxuICogVG8gcmVtb3ZlIGEgc3R5bGUsIHNldCBpdHMgdmFsdWUgdG8gYG51bGxgLlxuICpcbiAqIEBpZ25vcmVcbiAqL1xuZnVuY3Rpb24gc2V0U3R5bGUoZWxlbWVudDogSFRNTEVsZW1lbnQsIHN0eWxlOiB7W3N0eWxlOiBzdHJpbmddOiBhbnkgfCBudWxsfSk6IHZvaWQge1xuICBPYmplY3Qua2V5cyhzdHlsZSkuZm9yRWFjaChrZXkgPT4gZWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eShrZXksIHN0eWxlW2tleV0pKTtcbn1cblxuLyoqXG4gKiBSZXByZXNlbnRzIHRoZSBuYXRpdmUgc2Nyb2xsYmFyIHRyYWNrIHNpemUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTmF0aXZlU2Nyb2xsYmFyVHJhY2tTaXplIHtcbiAgaFNjcm9sbGJhclRyYWNrSGVpZ2h0OiBudW1iZXI7XG4gIHZTY3JvbGxiYXJUcmFja1dpZHRoOiBudW1iZXI7XG59XG4iXX0=
|
|
@@ -0,0 +1,20 @@
|
|
|
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 * from './viewport.component';
|
|
17
|
+
export * from './scrollable.directive';
|
|
18
|
+
export * from './scrollbar/scrollbar.component';
|
|
19
|
+
export * from './native-scrollbar-track-size-provider.service';
|
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NjaW9uL2NvbXBvbmVudHMvdmlld3BvcnQvc3JjL3B1YmxpY19hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7O0dBUUc7QUFFSDs7OztHQUlHO0FBQ0gsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFDcEQsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYyxnREFBZ0QsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTgtMjAxOSBTd2lzcyBGZWRlcmFsIFJhaWx3YXlzXG4gKlxuICogVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscyBhcmUgbWFkZVxuICogYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSAyLjBcbiAqIHdoaWNoIGlzIGF2YWlsYWJsZSBhdCBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wL1xuICpcbiAqICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogRVBMLTIuMFxuICovXG5cbi8qXG4gKiBTZWNvbmRhcnkgZW50cnlwb2ludDogJ0BzY2lvbi9jb21wb25lbnRzL3ZpZXdwb3J0J1xuICpcbiAqIEBzZWUgaHR0cHM6Ly9naXRodWIuY29tL25nLXBhY2thZ3IvbmctcGFja2Fnci9ibG9iL21hc3Rlci9kb2NzL3NlY29uZGFyeS1lbnRyeXBvaW50cy5tZFxuICovXG5leHBvcnQge1NjaVZpZXdwb3J0TW9kdWxlfSBmcm9tICcuL3ZpZXdwb3J0Lm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL3ZpZXdwb3J0LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3Njcm9sbGFibGUuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vc2Nyb2xsYmFyL3Njcm9sbGJhci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9uYXRpdmUtc2Nyb2xsYmFyLXRyYWNrLXNpemUtcHJvdmlkZXIuc2VydmljZSc7XG4iXX0=
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated bundle index. Do not edit.
|
|
3
|
+
*/
|
|
4
|
+
export * from './public_api';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Npb24tY29tcG9uZW50cy12aWV3cG9ydC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NjaW9uL2NvbXBvbmVudHMvdmlld3BvcnQvc3JjL3NjaW9uLWNvbXBvbmVudHMtdmlld3BvcnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWNfYXBpJztcbiJdfQ==
|
|
@@ -0,0 +1,93 @@
|
|
|
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
|
+
export 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
|
+
}
|
|
82
|
+
SciScrollableDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: SciScrollableDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i1.SciNativeScrollbarTrackSizeProvider }], target: i0.ɵɵFactoryTarget.Directive });
|
|
83
|
+
SciScrollableDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.3", type: SciScrollableDirective, selector: "[sciScrollable]", inputs: { isDisplayNativeScrollbar: ["sciScrollableDisplayNativeScrollbar", "isDisplayNativeScrollbar"] }, usesOnChanges: true, ngImport: i0 });
|
|
84
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: SciScrollableDirective, decorators: [{
|
|
85
|
+
type: Directive,
|
|
86
|
+
args: [{
|
|
87
|
+
selector: '[sciScrollable]',
|
|
88
|
+
}]
|
|
89
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i1.SciNativeScrollbarTrackSizeProvider }]; }, propDecorators: { isDisplayNativeScrollbar: [{
|
|
90
|
+
type: Input,
|
|
91
|
+
args: ['sciScrollableDisplayNativeScrollbar']
|
|
92
|
+
}] } });
|
|
93
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Nyb2xsYWJsZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zY2lvbi9jb21wb25lbnRzL3ZpZXdwb3J0L3NyYy9zY3JvbGxhYmxlLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7R0FRRztBQUVILE9BQU8sRUFBQyxTQUFTLEVBQWMsS0FBSyxFQUFpRCxNQUFNLGVBQWUsQ0FBQztBQUUzRyxPQUFPLEVBQUMsR0FBRyxFQUFFLFNBQVMsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQzlDLE9BQU8sRUFBQyxLQUFLLEVBQUUsT0FBTyxFQUFDLE1BQU0sTUFBTSxDQUFDOzs7QUFHcEM7Ozs7Ozs7Ozs7R0FVRztBQUlILE1BQU0sT0FBTyxzQkFBc0I7SUFZakMsWUFBb0IsS0FBaUMsRUFDakMsU0FBb0IsRUFDNUIsZ0NBQXFFO1FBRjdELFVBQUssR0FBTCxLQUFLLENBQTRCO1FBQ2pDLGNBQVMsR0FBVCxTQUFTLENBQVc7UUFYaEMsY0FBUyxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFDaEMsa0JBQWEsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO1FBRTVDOzs7V0FHRztRQUVJLDZCQUF3QixHQUFZLEtBQUssQ0FBQztRQUsvQyxLQUFLLENBQ0gsZ0NBQWdDLENBQUMsVUFBVSxFQUMzQyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsZ0NBQWdDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FDL0U7YUFDRSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQzthQUMvQixTQUFTLENBQUMsd0JBQXdCLENBQUMsRUFBRTtZQUNwQyxJQUFJLHdCQUF3QixLQUFLLElBQUksRUFBRSxFQUFFLGtEQUFrRDtnQkFDekYsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7YUFDNUI7aUJBQ0k7Z0JBQ0gsSUFBSSxDQUFDLHdCQUF3QixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLHdCQUF3QixDQUFDLENBQUM7YUFDbkg7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRDs7T0FFRztJQUNLLG1CQUFtQjtRQUN6QixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxFQUFFO1lBQ3RDLFFBQVEsRUFBRSxNQUFNO1lBQ2hCLEtBQUssRUFBRSxNQUFNO1lBQ2IsTUFBTSxFQUFFLE1BQU07WUFDZCxXQUFXLEVBQUUsQ0FBQztZQUNkLFlBQVksRUFBRSxDQUFDO1NBQ2hCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7T0FFRztJQUNLLHFCQUFxQixDQUFDLHdCQUFrRDtRQUM5RSxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxFQUFFO1lBQ3RDLFFBQVEsRUFBRSxRQUFRO1lBQ2xCLEtBQUssRUFBRSxlQUFlLHdCQUF3QixDQUFDLG9CQUFvQixJQUFJO1lBQ3ZFLE1BQU0sRUFBRSxlQUFlLHdCQUF3QixDQUFDLHFCQUFxQixJQUFJO1lBQ3pFLFdBQVcsRUFBRSxJQUFJLHdCQUF3QixDQUFDLG9CQUFvQixJQUFJO1lBQ2xFLFlBQVksRUFBRSxJQUFJLHdCQUF3QixDQUFDLHFCQUFxQixJQUFJO1NBQ3JFLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTyxRQUFRLENBQUMsT0FBZ0IsRUFBRSxLQUFpQjtRQUNsRCxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxHQUFHLEVBQUUsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN2RixDQUFDO0lBRU0sV0FBVyxDQUFDLE9BQXNCO1FBQ3ZDLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUVNLFdBQVc7UUFDaEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN4QixDQUFDOzttSEFsRVUsc0JBQXNCO3VHQUF0QixzQkFBc0I7MkZBQXRCLHNCQUFzQjtrQkFIbEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsaUJBQWlCO2lCQUM1QjsyS0FXUSx3QkFBd0I7c0JBRDlCLEtBQUs7dUJBQUMscUNBQXFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAxOC0yMDE5IFN3aXNzIEZlZGVyYWwgUmFpbHdheXNcbiAqXG4gKiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzIGFyZSBtYWRlXG4gKiBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIDIuMFxuICogd2hpY2ggaXMgYXZhaWxhYmxlIGF0IGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvXG4gKlxuICogIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBFUEwtMi4wXG4gKi9cblxuaW1wb3J0IHtEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIElucHV0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSwgUmVuZGVyZXIyLCBTaW1wbGVDaGFuZ2VzfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7TmF0aXZlU2Nyb2xsYmFyVHJhY2tTaXplLCBTY2lOYXRpdmVTY3JvbGxiYXJUcmFja1NpemVQcm92aWRlcn0gZnJvbSAnLi9uYXRpdmUtc2Nyb2xsYmFyLXRyYWNrLXNpemUtcHJvdmlkZXIuc2VydmljZSc7XG5pbXBvcnQge21hcCwgdGFrZVVudGlsfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge21lcmdlLCBTdWJqZWN0fSBmcm9tICdyeGpzJztcbmltcG9ydCB7RGljdGlvbmFyeX0gZnJvbSAnQHNjaW9uL3Rvb2xraXQvdXRpbCc7XG5cbi8qKlxuICogTWFrZXMgdGhlIGhvc3QgZWxlbWVudCBuYXRpdmVseSBzY3JvbGxhYmxlIGFuZCBoaWRlcyBuYXRpdmUgc2Nyb2xsYmFycyBieSBkZWZhdWx0LCB1bmxlc3MgbmF0aXZlIHNjcm9sbGJhcnNcbiAqIGFscmVhZHkgc2l0IG9uIHRvcCBvZiB0aGUgdmlld3BvcnQgKGUuZy4gaW4gT1MgWCkuXG4gKlxuICogQmVjYXVzZSB0aGVyZSBpcyBubyBjcm9zcy1icm93c2VyIEFQSSB0byBoaWRlIHNjcm9sbGJhcnMgd2l0aG91dCBsb3NpbmcgbmF0aXZlIHNjcm9sbCBzdXBwb3J0LCB3ZSBzZXQgJ292ZXJmbG93J1xuICogdG8gJ3Njcm9sbCcgYnV0IHNoaWZ0IHRoZSBuYXRpdmUgc2Nyb2xsYmFycyBvdXQgb2YgdGhlIHZpc2libGUgdmlld3BvcnQgYXJlYS4gVGhlIHNoaWZ0IG9mZnNldCBpcyBjb21wdXRlZCB1cGZyb250LlxuICpcbiAqIFRoaXMgZGlyZWN0aXZlIGV4cGVjdHMgaXRzIGhvc3QgZWxlbWVudCB0byBiZSB0aGUgb25seSBjaGlsZCBpbiBkb2N1bWVudCBmbG93IGluIGl0cyBwYXJlbnQgRE9NIGVsZW1lbnQuIEl0IG1ha2VzIHRoZSBob3N0IGVsZW1lbnRcbiAqIGZpbGwgdXAgdGhlIGVudGlyZSBzcGFjZSAod2lkdGggYW5kIGhlaWdodCBzZXQgdG8gMTAwJSkuIFRoZSBwYXJlbnQgZWxlbWVudCBtdXN0IGhhdmUgaXRzIENTUyBgb3ZlcmZsb3dgIHByb3BlcnR5IHNldCB0byBgaGlkZGVuYFxuICogdG8gaGlkZSB0aGUgcHVzaGVkIG91dCBuYXRpdmUgc2Nyb2xsYmFycy5cbiAqL1xuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW3NjaVNjcm9sbGFibGVdJyxcbn0pXG5leHBvcnQgY2xhc3MgU2NpU2Nyb2xsYWJsZURpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgT25EZXN0cm95IHtcblxuICBwcml2YXRlIF9kZXN0cm95JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gIHByaXZhdGUgX2lucHV0Q2hhbmdlJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgLyoqXG4gICAqIENvbnRyb2xzIHdoZXRoZXIgdG8gZGlzcGxheSBuYXRpdmUgc2Nyb2xsYmFycy5cbiAgICogSGFzIG5vIGVmZmVjdCBpZiB0aGUgbmF0aXZlIHNjcm9sbGJhciBzaXRzIG9uIHRvcCBvZiB0aGUgY29udGVudCwgZS5nLiBpbiBPUyBYLlxuICAgKi9cbiAgQElucHV0KCdzY2lTY3JvbGxhYmxlRGlzcGxheU5hdGl2ZVNjcm9sbGJhcicpIC8vIGVzbGludC1kaXNhYmxlLWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0LXJlbmFtZVxuICBwdWJsaWMgaXNEaXNwbGF5TmF0aXZlU2Nyb2xsYmFyOiBib29sZWFuID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfaG9zdDogRWxlbWVudFJlZjxIVE1MRGl2RWxlbWVudD4sXG4gICAgICAgICAgICAgIHByaXZhdGUgX3JlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgICAgICAgICAgIG5hdGl2ZVNjcm9sbGJhclRyYWNrU2l6ZVByb3ZpZGVyOiBTY2lOYXRpdmVTY3JvbGxiYXJUcmFja1NpemVQcm92aWRlcikge1xuICAgIG1lcmdlKFxuICAgICAgbmF0aXZlU2Nyb2xsYmFyVHJhY2tTaXplUHJvdmlkZXIudHJhY2tTaXplJCxcbiAgICAgIHRoaXMuX2lucHV0Q2hhbmdlJC5waXBlKG1hcCgoKSA9PiBuYXRpdmVTY3JvbGxiYXJUcmFja1NpemVQcm92aWRlci50cmFja1NpemUpKSxcbiAgICApXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpKVxuICAgICAgLnN1YnNjcmliZShuYXRpdmVTY3JvbGxiYXJUcmFja1NpemUgPT4ge1xuICAgICAgICBpZiAobmF0aXZlU2Nyb2xsYmFyVHJhY2tTaXplID09PSBudWxsKSB7IC8vIHRoZSBuYXRpdmUgc2Nyb2xsYmFyIHNpdHMgb24gdG9wIG9mIHRoZSBjb250ZW50XG4gICAgICAgICAgdGhpcy51c2VOYXRpdmVTY3JvbGxiYXJzKCk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgdGhpcy5pc0Rpc3BsYXlOYXRpdmVTY3JvbGxiYXIgPyB0aGlzLnVzZU5hdGl2ZVNjcm9sbGJhcnMoKSA6IHRoaXMuc2hpZnROYXRpdmVTY3JvbGxiYXJzKG5hdGl2ZVNjcm9sbGJhclRyYWNrU2l6ZSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFVzZXMgdGhlIG5hdGl2ZSBzY3JvbGxiYXJzIHdoZW4gY29udGVudCBvdmVyZmxvd3MuXG4gICAqL1xuICBwcml2YXRlIHVzZU5hdGl2ZVNjcm9sbGJhcnMoKTogdm9pZCB7XG4gICAgdGhpcy5zZXRTdHlsZSh0aGlzLl9ob3N0Lm5hdGl2ZUVsZW1lbnQsIHtcbiAgICAgIG92ZXJmbG93OiAnYXV0bycsXG4gICAgICB3aWR0aDogJzEwMCUnLFxuICAgICAgaGVpZ2h0OiAnMTAwJScsXG4gICAgICBtYXJnaW5SaWdodDogMCxcbiAgICAgIG1hcmdpbkJvdHRvbTogMCxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTaGlmdHMgdGhlIG5hdGl2ZSBzY3JvbGxiYXJzIG91dCBvZiB0aGUgdmlzaWJsZSB2aWV3cG9ydCBhcmVhLlxuICAgKi9cbiAgcHJpdmF0ZSBzaGlmdE5hdGl2ZVNjcm9sbGJhcnMobmF0aXZlU2Nyb2xsYmFyVHJhY2tTaXplOiBOYXRpdmVTY3JvbGxiYXJUcmFja1NpemUpOiB2b2lkIHtcbiAgICB0aGlzLnNldFN0eWxlKHRoaXMuX2hvc3QubmF0aXZlRWxlbWVudCwge1xuICAgICAgb3ZlcmZsb3c6ICdzY3JvbGwnLFxuICAgICAgd2lkdGg6IGBjYWxjKDEwMCUgKyAke25hdGl2ZVNjcm9sbGJhclRyYWNrU2l6ZS52U2Nyb2xsYmFyVHJhY2tXaWR0aH1weGAsXG4gICAgICBoZWlnaHQ6IGBjYWxjKDEwMCUgKyAke25hdGl2ZVNjcm9sbGJhclRyYWNrU2l6ZS5oU2Nyb2xsYmFyVHJhY2tIZWlnaHR9cHhgLFxuICAgICAgbWFyZ2luUmlnaHQ6IGAtJHtuYXRpdmVTY3JvbGxiYXJUcmFja1NpemUudlNjcm9sbGJhclRyYWNrV2lkdGh9cHhgLFxuICAgICAgbWFyZ2luQm90dG9tOiBgLSR7bmF0aXZlU2Nyb2xsYmFyVHJhY2tTaXplLmhTY3JvbGxiYXJUcmFja0hlaWdodH1weGAsXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHNldFN0eWxlKGVsZW1lbnQ6IEVsZW1lbnQsIHN0eWxlOiBEaWN0aW9uYXJ5KTogdm9pZCB7XG4gICAgT2JqZWN0LmtleXMoc3R5bGUpLmZvckVhY2goa2V5ID0+IHRoaXMuX3JlbmRlcmVyLnNldFN0eWxlKGVsZW1lbnQsIGtleSwgc3R5bGVba2V5XSkpO1xuICB9XG5cbiAgcHVibGljIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICB0aGlzLl9pbnB1dENoYW5nZSQubmV4dCgpO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuX2Rlc3Ryb3kkLm5leHQoKTtcbiAgfVxufVxuIl19
|