@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
|
@@ -35,9 +35,9 @@ export declare class SciDimensionDirective implements OnInit, OnDestroy {
|
|
|
35
35
|
get dimension(): SciDimension;
|
|
36
36
|
ngOnDestroy(): void;
|
|
37
37
|
static ɵfac: i0.ɵɵFactoryDeclaration<SciDimensionDirective, never>;
|
|
38
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<SciDimensionDirective, "[sciDimension]", ["sciDimension"], { "emitOutsideAngular": "emitOutsideAngular"; }, { "dimensionChange": "sciDimensionChange"; }, never, never,
|
|
38
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<SciDimensionDirective, "[sciDimension]", ["sciDimension"], { "emitOutsideAngular": { "alias": "emitOutsideAngular"; "required": false; }; }, { "dimensionChange": "sciDimensionChange"; }, never, never, true, never>;
|
|
39
39
|
}
|
|
40
40
|
/**
|
|
41
41
|
* Represents the dimension of an element.
|
|
42
42
|
*/
|
|
43
|
-
export
|
|
43
|
+
export type SciDimension = Dimension;
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import * as i0 from "@angular/core";
|
|
2
2
|
import * as i1 from "./dimension.directive";
|
|
3
|
-
import * as i2 from "@angular/common";
|
|
4
3
|
/**
|
|
5
4
|
* Provides a directive for observing changes to the size of the host element.
|
|
6
5
|
*
|
|
@@ -8,6 +7,6 @@ import * as i2 from "@angular/common";
|
|
|
8
7
|
*/
|
|
9
8
|
export declare class SciDimensionModule {
|
|
10
9
|
static ɵfac: i0.ɵɵFactoryDeclaration<SciDimensionModule, never>;
|
|
11
|
-
static ɵmod: i0.ɵɵNgModuleDeclaration<SciDimensionModule, [typeof i1.SciDimensionDirective], [typeof
|
|
10
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<SciDimensionModule, never, [typeof i1.SciDimensionDirective], [typeof i1.SciDimensionDirective]>;
|
|
12
11
|
static ɵinj: i0.ɵɵInjectorDeclaration<SciDimensionModule>;
|
|
13
12
|
}
|
|
@@ -0,0 +1,85 @@
|
|
|
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, EventEmitter, Input, Output } from '@angular/core';
|
|
11
|
+
import { Subject } from 'rxjs';
|
|
12
|
+
import { takeUntil } from 'rxjs/operators';
|
|
13
|
+
import { captureElementDimension, fromDimension$ } from '@scion/toolkit/observable';
|
|
14
|
+
import * as i0 from "@angular/core";
|
|
15
|
+
/**
|
|
16
|
+
* Allows observing changes to host element's size.
|
|
17
|
+
*
|
|
18
|
+
* See {@link fromDimension$} Observable for more information.
|
|
19
|
+
*
|
|
20
|
+
* ---
|
|
21
|
+
* Usage:
|
|
22
|
+
*
|
|
23
|
+
* <div sciDimension (sciDimensionChange)="onDimensionChange($event)"></div>
|
|
24
|
+
*/
|
|
25
|
+
class SciDimensionDirective {
|
|
26
|
+
constructor(host, _ngZone) {
|
|
27
|
+
this._ngZone = _ngZone;
|
|
28
|
+
this._destroy$ = new Subject();
|
|
29
|
+
/**
|
|
30
|
+
* Upon subscription, it emits the host element's dimension, and then continuously emits when the dimension of the host element changes.
|
|
31
|
+
*/
|
|
32
|
+
this.dimensionChange = new EventEmitter();
|
|
33
|
+
/**
|
|
34
|
+
* Controls if to emit a dimension change inside or outside of the Angular zone.
|
|
35
|
+
* If emitted outside of the Angular zone no change detection cycle is triggered.
|
|
36
|
+
*
|
|
37
|
+
* By default, if not specified, emits inside the Angular zone.
|
|
38
|
+
*/
|
|
39
|
+
this.emitOutsideAngular = false;
|
|
40
|
+
this._host = host.nativeElement;
|
|
41
|
+
}
|
|
42
|
+
ngOnInit() {
|
|
43
|
+
this.installDimensionListener();
|
|
44
|
+
}
|
|
45
|
+
installDimensionListener() {
|
|
46
|
+
this._ngZone.runOutsideAngular(() => {
|
|
47
|
+
fromDimension$(this._host)
|
|
48
|
+
.pipe(takeUntil(this._destroy$))
|
|
49
|
+
.subscribe((dimension) => {
|
|
50
|
+
if (this.emitOutsideAngular) {
|
|
51
|
+
this.dimensionChange.emit(dimension);
|
|
52
|
+
}
|
|
53
|
+
else {
|
|
54
|
+
this._ngZone.run(() => this.dimensionChange.emit(dimension));
|
|
55
|
+
}
|
|
56
|
+
});
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Returns the current dimension of its host element.
|
|
61
|
+
*/
|
|
62
|
+
get dimension() {
|
|
63
|
+
return captureElementDimension(this._host);
|
|
64
|
+
}
|
|
65
|
+
ngOnDestroy() {
|
|
66
|
+
this._destroy$.next();
|
|
67
|
+
}
|
|
68
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: SciDimensionDirective, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
69
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.1", type: SciDimensionDirective, isStandalone: true, selector: "[sciDimension]", inputs: { emitOutsideAngular: "emitOutsideAngular" }, outputs: { dimensionChange: "sciDimensionChange" }, exportAs: ["sciDimension"], ngImport: i0 }); }
|
|
70
|
+
}
|
|
71
|
+
export { SciDimensionDirective };
|
|
72
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: SciDimensionDirective, decorators: [{
|
|
73
|
+
type: Directive,
|
|
74
|
+
args: [{
|
|
75
|
+
selector: '[sciDimension]',
|
|
76
|
+
exportAs: 'sciDimension',
|
|
77
|
+
standalone: true,
|
|
78
|
+
}]
|
|
79
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.NgZone }]; }, propDecorators: { dimensionChange: [{
|
|
80
|
+
type: Output,
|
|
81
|
+
args: ['sciDimensionChange']
|
|
82
|
+
}], emitOutsideAngular: [{
|
|
83
|
+
type: Input
|
|
84
|
+
}] } });
|
|
85
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGltZW5zaW9uLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NjaW9uL2NvbXBvbmVudHMvZGltZW5zaW9uL3NyYy9kaW1lbnNpb24uZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7OztHQVFHO0FBRUgsT0FBTyxFQUFDLFNBQVMsRUFBYyxZQUFZLEVBQUUsS0FBSyxFQUE2QixNQUFNLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDNUcsT0FBTyxFQUFDLE9BQU8sRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUM3QixPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDekMsT0FBTyxFQUFDLHVCQUF1QixFQUFhLGNBQWMsRUFBQyxNQUFNLDJCQUEyQixDQUFDOztBQUU3Rjs7Ozs7Ozs7O0dBU0c7QUFDSCxNQUthLHFCQUFxQjtJQW9CaEMsWUFBWSxJQUE2QixFQUFVLE9BQWU7UUFBZixZQUFPLEdBQVAsT0FBTyxDQUFRO1FBakIxRCxjQUFTLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQUV4Qzs7V0FFRztRQUVJLG9CQUFlLEdBQUcsSUFBSSxZQUFZLEVBQWdCLENBQUM7UUFFMUQ7Ozs7O1dBS0c7UUFFSSx1QkFBa0IsR0FBRyxLQUFLLENBQUM7UUFHaEMsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDO0lBQ2xDLENBQUM7SUFFTSxRQUFRO1FBQ2IsSUFBSSxDQUFDLHdCQUF3QixFQUFFLENBQUM7SUFDbEMsQ0FBQztJQUVPLHdCQUF3QjtRQUM5QixJQUFJLENBQUMsT0FBTyxDQUFDLGlCQUFpQixDQUFDLEdBQUcsRUFBRTtZQUNsQyxjQUFjLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQztpQkFDdkIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7aUJBQy9CLFNBQVMsQ0FBQyxDQUFDLFNBQXVCLEVBQUUsRUFBRTtnQkFDckMsSUFBSSxJQUFJLENBQUMsa0JBQWtCLEVBQUU7b0JBQzNCLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO2lCQUN0QztxQkFDSTtvQkFDSCxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO2lCQUM5RDtZQUNILENBQUMsQ0FBQyxDQUFDO1FBQ1AsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFXLFNBQVM7UUFDbEIsT0FBTyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVNLFdBQVc7UUFDaEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN4QixDQUFDOzhHQXBEVSxxQkFBcUI7a0dBQXJCLHFCQUFxQjs7U0FBckIscUJBQXFCOzJGQUFyQixxQkFBcUI7a0JBTGpDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGdCQUFnQjtvQkFDMUIsUUFBUSxFQUFFLGNBQWM7b0JBQ3hCLFVBQVUsRUFBRSxJQUFJO2lCQUNqQjtzSEFVUSxlQUFlO3NCQURyQixNQUFNO3VCQUFDLG9CQUFvQjtnQkFVckIsa0JBQWtCO3NCQUR4QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAxOC0yMDE5IFN3aXNzIEZlZGVyYWwgUmFpbHdheXNcbiAqXG4gKiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzIGFyZSBtYWRlXG4gKiBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIDIuMFxuICogd2hpY2ggaXMgYXZhaWxhYmxlIGF0IGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvXG4gKlxuICogIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBFUEwtMi4wXG4gKi9cblxuaW1wb3J0IHtEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE5nWm9uZSwgT25EZXN0cm95LCBPbkluaXQsIE91dHB1dH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1N1YmplY3R9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHt0YWtlVW50aWx9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7Y2FwdHVyZUVsZW1lbnREaW1lbnNpb24sIERpbWVuc2lvbiwgZnJvbURpbWVuc2lvbiR9IGZyb20gJ0BzY2lvbi90b29sa2l0L29ic2VydmFibGUnO1xuXG4vKipcbiAqIEFsbG93cyBvYnNlcnZpbmcgY2hhbmdlcyB0byBob3N0IGVsZW1lbnQncyBzaXplLlxuICpcbiAqIFNlZSB7QGxpbmsgZnJvbURpbWVuc2lvbiR9IE9ic2VydmFibGUgZm9yIG1vcmUgaW5mb3JtYXRpb24uXG4gKlxuICogLS0tXG4gKiBVc2FnZTpcbiAqXG4gKiA8ZGl2IHNjaURpbWVuc2lvbiAoc2NpRGltZW5zaW9uQ2hhbmdlKT1cIm9uRGltZW5zaW9uQ2hhbmdlKCRldmVudClcIj48L2Rpdj5cbiAqL1xuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW3NjaURpbWVuc2lvbl0nLFxuICBleHBvcnRBczogJ3NjaURpbWVuc2lvbicsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIFNjaURpbWVuc2lvbkRpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9ob3N0OiBIVE1MRWxlbWVudDtcbiAgcHJpdmF0ZSBfZGVzdHJveSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIC8qKlxuICAgKiBVcG9uIHN1YnNjcmlwdGlvbiwgaXQgZW1pdHMgdGhlIGhvc3QgZWxlbWVudCdzIGRpbWVuc2lvbiwgYW5kIHRoZW4gY29udGludW91c2x5IGVtaXRzIHdoZW4gdGhlIGRpbWVuc2lvbiBvZiB0aGUgaG9zdCBlbGVtZW50IGNoYW5nZXMuXG4gICAqL1xuICBAT3V0cHV0KCdzY2lEaW1lbnNpb25DaGFuZ2UnKSAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIEBhbmd1bGFyLWVzbGludC9uby1vdXRwdXQtcmVuYW1lXG4gIHB1YmxpYyBkaW1lbnNpb25DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPFNjaURpbWVuc2lvbj4oKTtcblxuICAvKipcbiAgICogQ29udHJvbHMgaWYgdG8gZW1pdCBhIGRpbWVuc2lvbiBjaGFuZ2UgaW5zaWRlIG9yIG91dHNpZGUgb2YgdGhlIEFuZ3VsYXIgem9uZS5cbiAgICogSWYgZW1pdHRlZCBvdXRzaWRlIG9mIHRoZSBBbmd1bGFyIHpvbmUgbm8gY2hhbmdlIGRldGVjdGlvbiBjeWNsZSBpcyB0cmlnZ2VyZWQuXG4gICAqXG4gICAqIEJ5IGRlZmF1bHQsIGlmIG5vdCBzcGVjaWZpZWQsIGVtaXRzIGluc2lkZSB0aGUgQW5ndWxhciB6b25lLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGVtaXRPdXRzaWRlQW5ndWxhciA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKGhvc3Q6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LCBwcml2YXRlIF9uZ1pvbmU6IE5nWm9uZSkge1xuICAgIHRoaXMuX2hvc3QgPSBob3N0Lm5hdGl2ZUVsZW1lbnQ7XG4gIH1cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5pbnN0YWxsRGltZW5zaW9uTGlzdGVuZXIoKTtcbiAgfVxuXG4gIHByaXZhdGUgaW5zdGFsbERpbWVuc2lvbkxpc3RlbmVyKCk6IHZvaWQge1xuICAgIHRoaXMuX25nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICBmcm9tRGltZW5zaW9uJCh0aGlzLl9ob3N0KVxuICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpKVxuICAgICAgICAuc3Vic2NyaWJlKChkaW1lbnNpb246IFNjaURpbWVuc2lvbikgPT4ge1xuICAgICAgICAgIGlmICh0aGlzLmVtaXRPdXRzaWRlQW5ndWxhcikge1xuICAgICAgICAgICAgdGhpcy5kaW1lbnNpb25DaGFuZ2UuZW1pdChkaW1lbnNpb24pO1xuICAgICAgICAgIH1cbiAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX25nWm9uZS5ydW4oKCkgPT4gdGhpcy5kaW1lbnNpb25DaGFuZ2UuZW1pdChkaW1lbnNpb24pKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIGN1cnJlbnQgZGltZW5zaW9uIG9mIGl0cyBob3N0IGVsZW1lbnQuXG4gICAqL1xuICBwdWJsaWMgZ2V0IGRpbWVuc2lvbigpOiBTY2lEaW1lbnNpb24ge1xuICAgIHJldHVybiBjYXB0dXJlRWxlbWVudERpbWVuc2lvbih0aGlzLl9ob3N0KTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLl9kZXN0cm95JC5uZXh0KCk7XG4gIH1cbn1cblxuLyoqXG4gKiBSZXByZXNlbnRzIHRoZSBkaW1lbnNpb24gb2YgYW4gZWxlbWVudC5cbiAqL1xuZXhwb3J0IHR5cGUgU2NpRGltZW5zaW9uID0gRGltZW5zaW9uO1xuIl19
|
|
@@ -0,0 +1,35 @@
|
|
|
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 { SciDimensionDirective } from './dimension.directive';
|
|
12
|
+
import * as i0 from "@angular/core";
|
|
13
|
+
/**
|
|
14
|
+
* Provides a directive for observing changes to the size of the host element.
|
|
15
|
+
*
|
|
16
|
+
* @see fromDimension$
|
|
17
|
+
*/
|
|
18
|
+
class SciDimensionModule {
|
|
19
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: SciDimensionModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
20
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.0.1", ngImport: i0, type: SciDimensionModule, imports: [SciDimensionDirective], exports: [SciDimensionDirective] }); }
|
|
21
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: SciDimensionModule }); }
|
|
22
|
+
}
|
|
23
|
+
export { SciDimensionModule };
|
|
24
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: SciDimensionModule, decorators: [{
|
|
25
|
+
type: NgModule,
|
|
26
|
+
args: [{
|
|
27
|
+
imports: [
|
|
28
|
+
SciDimensionDirective,
|
|
29
|
+
],
|
|
30
|
+
exports: [
|
|
31
|
+
SciDimensionDirective,
|
|
32
|
+
],
|
|
33
|
+
}]
|
|
34
|
+
}] });
|
|
35
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGltZW5zaW9uLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NjaW9uL2NvbXBvbmVudHMvZGltZW5zaW9uL3NyYy9kaW1lbnNpb24ubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7OztHQVFHO0FBRUgsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN2QyxPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQzs7QUFFNUQ7Ozs7R0FJRztBQUNILE1BUWEsa0JBQWtCOzhHQUFsQixrQkFBa0I7K0dBQWxCLGtCQUFrQixZQU4zQixxQkFBcUIsYUFHckIscUJBQXFCOytHQUdaLGtCQUFrQjs7U0FBbEIsa0JBQWtCOzJGQUFsQixrQkFBa0I7a0JBUjlCLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFO3dCQUNQLHFCQUFxQjtxQkFDdEI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLHFCQUFxQjtxQkFDdEI7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChjKSAyMDE4LTIwMTkgU3dpc3MgRmVkZXJhbCBSYWlsd2F5c1xuICpcbiAqIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMgYXJlIG1hZGVcbiAqIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgMi4wXG4gKiB3aGljaCBpcyBhdmFpbGFibGUgYXQgaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC9cbiAqXG4gKiAgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEVQTC0yLjBcbiAqL1xuXG5pbXBvcnQge05nTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7U2NpRGltZW5zaW9uRGlyZWN0aXZlfSBmcm9tICcuL2RpbWVuc2lvbi5kaXJlY3RpdmUnO1xuXG4vKipcbiAqIFByb3ZpZGVzIGEgZGlyZWN0aXZlIGZvciBvYnNlcnZpbmcgY2hhbmdlcyB0byB0aGUgc2l6ZSBvZiB0aGUgaG9zdCBlbGVtZW50LlxuICpcbiAqIEBzZWUgZnJvbURpbWVuc2lvbiRcbiAqL1xuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW1xuICAgIFNjaURpbWVuc2lvbkRpcmVjdGl2ZSxcbiAgXSxcbiAgZXhwb3J0czogW1xuICAgIFNjaURpbWVuc2lvbkRpcmVjdGl2ZSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgU2NpRGltZW5zaW9uTW9kdWxlIHtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,32 @@
|
|
|
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 } from '@angular/core';
|
|
11
|
+
import * as i0 from "@angular/core";
|
|
12
|
+
/**
|
|
13
|
+
* Provides access to the native {@link HTMLElement} of the host.
|
|
14
|
+
*/
|
|
15
|
+
class SciElementRefDirective {
|
|
16
|
+
constructor(host) {
|
|
17
|
+
this.host = host;
|
|
18
|
+
this.nativeElement = host.nativeElement;
|
|
19
|
+
}
|
|
20
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: SciElementRefDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
21
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.1", type: SciElementRefDirective, isStandalone: true, selector: "[sciElementRef]", exportAs: ["sciElementRef"], ngImport: i0 }); }
|
|
22
|
+
}
|
|
23
|
+
export { SciElementRefDirective };
|
|
24
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: SciElementRefDirective, decorators: [{
|
|
25
|
+
type: Directive,
|
|
26
|
+
args: [{
|
|
27
|
+
selector: '[sciElementRef]',
|
|
28
|
+
exportAs: 'sciElementRef',
|
|
29
|
+
standalone: true,
|
|
30
|
+
}]
|
|
31
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }]; } });
|
|
32
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxlbWVudC1yZWYuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2Npb24vY29tcG9uZW50cy9zYXNoYm94L3NyYy9lbGVtZW50LXJlZi5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7O0dBUUc7QUFFSCxPQUFPLEVBQUMsU0FBUyxFQUFhLE1BQU0sZUFBZSxDQUFDOztBQUVwRDs7R0FFRztBQUNILE1BS2Esc0JBQXNCO0lBSWpDLFlBQW1CLElBQTZCO1FBQTdCLFNBQUksR0FBSixJQUFJLENBQXlCO1FBQzlDLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQztJQUMxQyxDQUFDOzhHQU5VLHNCQUFzQjtrR0FBdEIsc0JBQXNCOztTQUF0QixzQkFBc0I7MkZBQXRCLHNCQUFzQjtrQkFMbEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsaUJBQWlCO29CQUMzQixRQUFRLEVBQUUsZUFBZTtvQkFDekIsVUFBVSxFQUFFLElBQUk7aUJBQ2pCIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAxOC0yMDE5IFN3aXNzIEZlZGVyYWwgUmFpbHdheXNcbiAqXG4gKiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzIGFyZSBtYWRlXG4gKiBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIDIuMFxuICogd2hpY2ggaXMgYXZhaWxhYmxlIGF0IGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvXG4gKlxuICogIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBFUEwtMi4wXG4gKi9cblxuaW1wb3J0IHtEaXJlY3RpdmUsIEVsZW1lbnRSZWZ9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG4vKipcbiAqIFByb3ZpZGVzIGFjY2VzcyB0byB0aGUgbmF0aXZlIHtAbGluayBIVE1MRWxlbWVudH0gb2YgdGhlIGhvc3QuXG4gKi9cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tzY2lFbGVtZW50UmVmXScsXG4gIGV4cG9ydEFzOiAnc2NpRWxlbWVudFJlZicsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIFNjaUVsZW1lbnRSZWZEaXJlY3RpdmUge1xuXG4gIHB1YmxpYyByZWFkb25seSBuYXRpdmVFbGVtZW50OiBIVE1MRWxlbWVudDtcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgaG9zdDogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4pIHtcbiAgICB0aGlzLm5hdGl2ZUVsZW1lbnQgPSBob3N0Lm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,18 @@
|
|
|
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/sashbox'
|
|
12
|
+
*
|
|
13
|
+
* @see https://github.com/ng-packagr/ng-packagr/blob/master/docs/secondary-entrypoints.md
|
|
14
|
+
*/
|
|
15
|
+
export { SciSashboxModule } from './sashbox.module';
|
|
16
|
+
export { SciSashboxComponent } from './sashbox.component';
|
|
17
|
+
export { SciSashDirective } from './sash.directive';
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NjaW9uL2NvbXBvbmVudHMvc2FzaGJveC9zcmMvcHVibGljX2FwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7R0FRRztBQUVIOzs7O0dBSUc7QUFDSCxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQztBQUNsRCxPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUN4RCxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTgtMjAxOSBTd2lzcyBGZWRlcmFsIFJhaWx3YXlzXG4gKlxuICogVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscyBhcmUgbWFkZVxuICogYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSAyLjBcbiAqIHdoaWNoIGlzIGF2YWlsYWJsZSBhdCBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wL1xuICpcbiAqICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogRVBMLTIuMFxuICovXG5cbi8qXG4gKiBTZWNvbmRhcnkgZW50cnlwb2ludDogJ0BzY2lvbi9jb21wb25lbnRzL3Nhc2hib3gnXG4gKlxuICogQHNlZSBodHRwczovL2dpdGh1Yi5jb20vbmctcGFja2Fnci9uZy1wYWNrYWdyL2Jsb2IvbWFzdGVyL2RvY3Mvc2Vjb25kYXJ5LWVudHJ5cG9pbnRzLm1kXG4gKi9cbmV4cG9ydCB7U2NpU2FzaGJveE1vZHVsZX0gZnJvbSAnLi9zYXNoYm94Lm1vZHVsZSc7XG5leHBvcnQge1NjaVNhc2hib3hDb21wb25lbnR9IGZyb20gJy4vc2FzaGJveC5jb21wb25lbnQnO1xuZXhwb3J0IHtTY2lTYXNoRGlyZWN0aXZlfSBmcm9tICcuL3Nhc2guZGlyZWN0aXZlJztcbiJdfQ==
|
|
@@ -0,0 +1,36 @@
|
|
|
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 * as i0 from "@angular/core";
|
|
12
|
+
/**
|
|
13
|
+
* Initializes {SashDirective} with the target {HTMLDivElement}.
|
|
14
|
+
*/
|
|
15
|
+
class SciSashInitializerDirective {
|
|
16
|
+
constructor(_host) {
|
|
17
|
+
this._host = _host;
|
|
18
|
+
}
|
|
19
|
+
ngOnChanges(changes) {
|
|
20
|
+
this.sash.element = this._host.nativeElement;
|
|
21
|
+
}
|
|
22
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: SciSashInitializerDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
23
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.1", type: SciSashInitializerDirective, isStandalone: true, selector: "div[sciSashInitializer].sash", inputs: { sash: ["sciSashInitializer", "sash"] }, usesOnChanges: true, ngImport: i0 }); }
|
|
24
|
+
}
|
|
25
|
+
export { SciSashInitializerDirective };
|
|
26
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: SciSashInitializerDirective, decorators: [{
|
|
27
|
+
type: Directive,
|
|
28
|
+
args: [{
|
|
29
|
+
selector: 'div[sciSashInitializer].sash',
|
|
30
|
+
standalone: true,
|
|
31
|
+
}]
|
|
32
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { sash: [{
|
|
33
|
+
type: Input,
|
|
34
|
+
args: [{ alias: 'sciSashInitializer', required: true }]
|
|
35
|
+
}] } });
|
|
36
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2FzaC1pbml0aWFsaXplci5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zY2lvbi9jb21wb25lbnRzL3Nhc2hib3gvc3JjL3Nhc2gtaW5pdGlhbGl6ZXIuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7OztHQVFHO0FBRUgsT0FBTyxFQUFDLFNBQVMsRUFBYyxLQUFLLEVBQTJCLE1BQU0sZUFBZSxDQUFDOztBQUdyRjs7R0FFRztBQUNILE1BSWEsMkJBQTJCO0lBS3RDLFlBQW9CLEtBQWlDO1FBQWpDLFVBQUssR0FBTCxLQUFLLENBQTRCO0lBQ3JELENBQUM7SUFFTSxXQUFXLENBQUMsT0FBc0I7UUFDdkMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUM7SUFDL0MsQ0FBQzs4R0FWVSwyQkFBMkI7a0dBQTNCLDJCQUEyQjs7U0FBM0IsMkJBQTJCOzJGQUEzQiwyQkFBMkI7a0JBSnZDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLDhCQUE4QjtvQkFDeEMsVUFBVSxFQUFFLElBQUk7aUJBQ2pCO2lHQUlRLElBQUk7c0JBRFYsS0FBSzt1QkFBQyxFQUFDLEtBQUssRUFBRSxvQkFBb0IsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAxOC0yMDE5IFN3aXNzIEZlZGVyYWwgUmFpbHdheXNcbiAqXG4gKiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzIGFyZSBtYWRlXG4gKiBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIDIuMFxuICogd2hpY2ggaXMgYXZhaWxhYmxlIGF0IGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvXG4gKlxuICogIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBFUEwtMi4wXG4gKi9cblxuaW1wb3J0IHtEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIElucHV0LCBPbkNoYW5nZXMsIFNpbXBsZUNoYW5nZXN9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtTY2lTYXNoRGlyZWN0aXZlfSBmcm9tICcuL3Nhc2guZGlyZWN0aXZlJztcblxuLyoqXG4gKiBJbml0aWFsaXplcyB7U2FzaERpcmVjdGl2ZX0gd2l0aCB0aGUgdGFyZ2V0IHtIVE1MRGl2RWxlbWVudH0uXG4gKi9cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ2RpdltzY2lTYXNoSW5pdGlhbGl6ZXJdLnNhc2gnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBTY2lTYXNoSW5pdGlhbGl6ZXJEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuXG4gIEBJbnB1dCh7YWxpYXM6ICdzY2lTYXNoSW5pdGlhbGl6ZXInLCByZXF1aXJlZDogdHJ1ZX0pXG4gIHB1YmxpYyBzYXNoITogU2NpU2FzaERpcmVjdGl2ZTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9ob3N0OiBFbGVtZW50UmVmPEhUTUxEaXZFbGVtZW50Pikge1xuICB9XG5cbiAgcHVibGljIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICB0aGlzLnNhc2guZWxlbWVudCA9IHRoaXMuX2hvc3QubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,146 @@
|
|
|
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 { BehaviorSubject, merge } from 'rxjs';
|
|
12
|
+
import { map, switchMap } from 'rxjs/operators';
|
|
13
|
+
import * as i0 from "@angular/core";
|
|
14
|
+
import * as i1 from "./sashbox-accessor";
|
|
15
|
+
/**
|
|
16
|
+
* Use this directive to model a sash for {@link SciSashboxComponent}.
|
|
17
|
+
* The host element of this modelling directive must be a <ng-template> which is used as sash template.
|
|
18
|
+
*
|
|
19
|
+
*
|
|
20
|
+
* ### Usage:
|
|
21
|
+
*
|
|
22
|
+
* <sci-sashbox direction="row">
|
|
23
|
+
* <!-- fixed size sash -->
|
|
24
|
+
* <ng-template sciSash size="200px">
|
|
25
|
+
* ...
|
|
26
|
+
* </ng-template>
|
|
27
|
+
*
|
|
28
|
+
* <!-- sash which takes the remaining space -->
|
|
29
|
+
* <ng-template sciSash>
|
|
30
|
+
* ...
|
|
31
|
+
* </ng-template>
|
|
32
|
+
* </sci-sashbox>
|
|
33
|
+
*/
|
|
34
|
+
class SciSashDirective {
|
|
35
|
+
/**
|
|
36
|
+
* Specifies the sash size, either as fixed size with an explicit unit,
|
|
37
|
+
* or as a unitless proportion to distibute remaining space. A proportional
|
|
38
|
+
* sash has the ability to grow or shrink if necessary, and must be >= 1.
|
|
39
|
+
*
|
|
40
|
+
* If not set, remaining space is distributed equally.
|
|
41
|
+
*/
|
|
42
|
+
set size(size) {
|
|
43
|
+
this._size = size ?? '1';
|
|
44
|
+
}
|
|
45
|
+
get size() {
|
|
46
|
+
return this._size;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* @internal
|
|
50
|
+
*/
|
|
51
|
+
set flexGrow(flexGrow) {
|
|
52
|
+
this._flexGrow$.next(flexGrow);
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* @internal
|
|
56
|
+
*/
|
|
57
|
+
get flexGrow() {
|
|
58
|
+
return this._flexGrow$.value;
|
|
59
|
+
}
|
|
60
|
+
constructor(sashTemplate, _sashBoxAccessor) {
|
|
61
|
+
this.sashTemplate = sashTemplate;
|
|
62
|
+
this._sashBoxAccessor = _sashBoxAccessor;
|
|
63
|
+
this._size = '1';
|
|
64
|
+
this._flexGrow$ = new BehaviorSubject(0);
|
|
65
|
+
this.flexGrowNormalized$ = this._sashBoxAccessor.sashes$
|
|
66
|
+
.pipe(switchMap(sashes => merge(...sashes.map(sash => sash._flexGrow$))), map(() => this.normalizeFlexGrow(this.flexGrow)));
|
|
67
|
+
}
|
|
68
|
+
ngOnInit() {
|
|
69
|
+
this.setFlexItemProperties();
|
|
70
|
+
}
|
|
71
|
+
ngOnChanges(changes) {
|
|
72
|
+
this.setFlexItemProperties();
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Returns if this sash has a fixed size, meaning that it has not the ability to grow or shrink if necessary.
|
|
76
|
+
*
|
|
77
|
+
* @internal
|
|
78
|
+
*/
|
|
79
|
+
get isFixedSize() {
|
|
80
|
+
return Number.isNaN(+this.size);
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Returns the effective sash size as rendered in the DOM.
|
|
84
|
+
*
|
|
85
|
+
* @internal
|
|
86
|
+
*/
|
|
87
|
+
get computedSize() {
|
|
88
|
+
// Note: Use `boundingClientRect` to get the fractional size.
|
|
89
|
+
// see https://developer.mozilla.org/en-US/docs/Web/API/Element/clientWidth
|
|
90
|
+
return this._sashBoxAccessor.direction === 'row' ? this.element.getBoundingClientRect().width : this.element.getBoundingClientRect().height;
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Computes and sets the flex item properties based on the modelled size.
|
|
94
|
+
*/
|
|
95
|
+
setFlexItemProperties() {
|
|
96
|
+
if (this.isFixedSize) {
|
|
97
|
+
// fixed-sized sash
|
|
98
|
+
this.flexGrow = 0;
|
|
99
|
+
this.flexShrink = 0;
|
|
100
|
+
this.flexBasis = `${this.size}`;
|
|
101
|
+
}
|
|
102
|
+
else {
|
|
103
|
+
// remaining space is distributed according to given proportion
|
|
104
|
+
const proportion = +this.size;
|
|
105
|
+
if (proportion < 1) {
|
|
106
|
+
throw Error(`[IllegalSashSizeError] The proportion for flexible sized sashes must be >=1 [size=${this.size}]`);
|
|
107
|
+
}
|
|
108
|
+
this.flexGrow = proportion;
|
|
109
|
+
this.flexShrink = 1;
|
|
110
|
+
this.flexBasis = '0';
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Computes the normalized flex-grow proportion of the given sash, which is a value >= 1.
|
|
115
|
+
*
|
|
116
|
+
* If the sum of all flex-grow proportions would be less than 1, then, the sashes would not fill the entire sash-box space.
|
|
117
|
+
* Without normalization in place, e.g., this could happen when removing a sash.
|
|
118
|
+
*/
|
|
119
|
+
normalizeFlexGrow(flexGrow) {
|
|
120
|
+
if (flexGrow === 0) {
|
|
121
|
+
return 0;
|
|
122
|
+
}
|
|
123
|
+
const sashes = this._sashBoxAccessor.sashes;
|
|
124
|
+
const flexGrowSum = sashes.reduce((sum, sash) => sum + sash.flexGrow, 0);
|
|
125
|
+
if (flexGrowSum === 0) {
|
|
126
|
+
return 0;
|
|
127
|
+
}
|
|
128
|
+
return flexGrow / flexGrowSum;
|
|
129
|
+
}
|
|
130
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: SciSashDirective, deps: [{ token: i0.TemplateRef }, { token: i1.SciSashBoxAccessor }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
131
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.1", type: SciSashDirective, isStandalone: true, selector: "ng-template[sciSash]", inputs: { size: "size", minSize: "minSize" }, exportAs: ["sciSash"], usesOnChanges: true, ngImport: i0 }); }
|
|
132
|
+
}
|
|
133
|
+
export { SciSashDirective };
|
|
134
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: SciSashDirective, decorators: [{
|
|
135
|
+
type: Directive,
|
|
136
|
+
args: [{
|
|
137
|
+
selector: 'ng-template[sciSash]',
|
|
138
|
+
exportAs: 'sciSash',
|
|
139
|
+
standalone: true,
|
|
140
|
+
}]
|
|
141
|
+
}], ctorParameters: function () { return [{ type: i0.TemplateRef }, { type: i1.SciSashBoxAccessor }]; }, propDecorators: { size: [{
|
|
142
|
+
type: Input
|
|
143
|
+
}], minSize: [{
|
|
144
|
+
type: Input
|
|
145
|
+
}] } });
|
|
146
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2FzaC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zY2lvbi9jb21wb25lbnRzL3Nhc2hib3gvc3JjL3Nhc2guZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7OztHQVFHO0FBRUgsT0FBTyxFQUFDLFNBQVMsRUFBRSxLQUFLLEVBQWdELE1BQU0sZUFBZSxDQUFDO0FBRTlGLE9BQU8sRUFBQyxlQUFlLEVBQUUsS0FBSyxFQUFhLE1BQU0sTUFBTSxDQUFDO0FBQ3hELE9BQU8sRUFBQyxHQUFHLEVBQUUsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7OztBQUU5Qzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBa0JHO0FBQ0gsTUFLYSxnQkFBZ0I7SUFLM0I7Ozs7OztPQU1HO0lBQ0gsSUFDVyxJQUFJLENBQUMsSUFBd0M7UUFDdEQsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLElBQUksR0FBRyxDQUFDO0lBQzNCLENBQUM7SUFFRCxJQUFXLElBQUk7UUFDYixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDcEIsQ0FBQztJQWdCRDs7T0FFRztJQUNILElBQVcsUUFBUSxDQUFDLFFBQWdCO1FBQ2xDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFRDs7T0FFRztJQUNILElBQVcsUUFBUTtRQUNqQixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDO0lBQy9CLENBQUM7SUFtQkQsWUFBNEIsWUFBK0IsRUFBVSxnQkFBb0M7UUFBN0UsaUJBQVksR0FBWixZQUFZLENBQW1CO1FBQVUscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFvQjtRQWhFakcsVUFBSyxHQUFvQixHQUFHLENBQUM7UUFDN0IsZUFBVSxHQUFHLElBQUksZUFBZSxDQUFTLENBQUMsQ0FBQyxDQUFDO1FBZ0VsRCxJQUFJLENBQUMsbUJB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MTgtMjAxOSBTd2lzcyBGZWRlcmFsIFJhaWx3YXlzXG4gKlxuICogVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscyBhcmUgbWFkZVxuICogYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSAyLjBcbiAqIHdoaWNoIGlzIGF2YWlsYWJsZSBhdCBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wL1xuICpcbiAqICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogRVBMLTIuMFxuICovXG5cbmltcG9ydCB7RGlyZWN0aXZlLCBJbnB1dCwgT25DaGFuZ2VzLCBPbkluaXQsIFNpbXBsZUNoYW5nZXMsIFRlbXBsYXRlUmVmfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7U2NpU2FzaEJveEFjY2Vzc29yfSBmcm9tICcuL3Nhc2hib3gtYWNjZXNzb3InO1xuaW1wb3J0IHtCZWhhdmlvclN1YmplY3QsIG1lcmdlLCBPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcbmltcG9ydCB7bWFwLCBzd2l0Y2hNYXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuLyoqXG4gKiBVc2UgdGhpcyBkaXJlY3RpdmUgdG8gbW9kZWwgYSBzYXNoIGZvciB7QGxpbmsgU2NpU2FzaGJveENvbXBvbmVudH0uXG4gKiBUaGUgaG9zdCBlbGVtZW50IG9mIHRoaXMgbW9kZWxsaW5nIGRpcmVjdGl2ZSBtdXN0IGJlIGEgPG5nLXRlbXBsYXRlPiB3aGljaCBpcyB1c2VkIGFzIHNhc2ggdGVtcGxhdGUuXG4gKlxuICpcbiAqICMjIyBVc2FnZTpcbiAqXG4gKiA8c2NpLXNhc2hib3ggZGlyZWN0aW9uPVwicm93XCI+XG4gKiAgIDwhLS0gZml4ZWQgc2l6ZSBzYXNoIC0tPlxuICogICA8bmctdGVtcGxhdGUgc2NpU2FzaCBzaXplPVwiMjAwcHhcIj5cbiAqICAgICAuLi5cbiAqICAgPC9uZy10ZW1wbGF0ZT5cbiAqXG4gKiAgIDwhLS0gc2FzaCB3aGljaCB0YWtlcyB0aGUgcmVtYWluaW5nIHNwYWNlIC0tPlxuICogICA8bmctdGVtcGxhdGUgc2NpU2FzaD5cbiAqICAgICAuLi5cbiAqICAgPC9uZy10ZW1wbGF0ZT5cbiAqIDwvc2NpLXNhc2hib3g+XG4gKi9cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ25nLXRlbXBsYXRlW3NjaVNhc2hdJyxcbiAgZXhwb3J0QXM6ICdzY2lTYXNoJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgU2NpU2FzaERpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcblxuICBwcml2YXRlIF9zaXplOiBzdHJpbmcgfCBudW1iZXIgPSAnMSc7XG4gIHByaXZhdGUgX2ZsZXhHcm93JCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8bnVtYmVyPigwKTtcblxuICAvKipcbiAgICogU3BlY2lmaWVzIHRoZSBzYXNoIHNpemUsIGVpdGhlciBhcyBmaXhlZCBzaXplIHdpdGggYW4gZXhwbGljaXQgdW5pdCxcbiAgICogb3IgYXMgYSB1bml0bGVzcyBwcm9wb3J0aW9uIHRvIGRpc3RpYnV0ZSByZW1haW5pbmcgc3BhY2UuIEEgcHJvcG9ydGlvbmFsXG4gICAqIHNhc2ggaGFzIHRoZSBhYmlsaXR5IHRvIGdyb3cgb3Igc2hyaW5rIGlmIG5lY2Vzc2FyeSwgYW5kIG11c3QgYmUgPj0gMS5cbiAgICpcbiAgICogSWYgbm90IHNldCwgcmVtYWluaW5nIHNwYWNlIGlzIGRpc3RyaWJ1dGVkIGVxdWFsbHkuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IHNpemUoc2l6ZTogc3RyaW5nIHwgbnVtYmVyIHwgbnVsbCB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuX3NpemUgPSBzaXplID8/ICcxJztcbiAgfVxuXG4gIHB1YmxpYyBnZXQgc2l6ZSgpOiBzdHJpbmcgfCBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl9zaXplO1xuICB9XG5cbiAgLyoqXG4gICAqIFNwZWNpZmllcyB0aGUgbWluaW1hbCBzYXNoIHNpemUgaW4gcGl4ZWwgb3IgcGVyY2VudC5cbiAgICogVGhlIG1pbi1zaXplIHByZXZlbnRzIHRoZSB1c2VyIGZyb20gc2hyaW5raW5nIHRoZSBzYXNoIGJlbG93IHRoaXMgbWluaW1hbCBzaXplLlxuICAgKlxuICAgKiBJZiB0aGUgdW5pdCBpcyBvbWl0dGVkLCB0aGUgdmFsdWUgaXMgaW50ZXJwcmV0ZWQgYXMgYSBwaXhlbCB2YWx1ZS5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBtaW5TaXplPzogc3RyaW5nIHwgbnVtYmVyIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHB1YmxpYyBlbGVtZW50ITogSFRNTEVsZW1lbnQ7XG5cbiAgLyoqXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgcHVibGljIHNldCBmbGV4R3JvdyhmbGV4R3JvdzogbnVtYmVyKSB7XG4gICAgdGhpcy5fZmxleEdyb3ckLm5leHQoZmxleEdyb3cpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgcHVibGljIGdldCBmbGV4R3JvdygpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl9mbGV4R3JvdyQudmFsdWU7XG4gIH1cblxuICAvKipcbiAgICogQGludGVybmFsXG4gICAqL1xuICBwdWJsaWMgZmxleFNocmluayE6IG51bWJlcjtcblxuICAvKipcbiAgICogQGludGVybmFsXG4gICAqL1xuICBwdWJsaWMgZmxleEJhc2lzITogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBOb3JtYWxpemVkIGZsZXgtZ3JvdyBwcm9wb3J0aW9uIG9mIHRoaXMgc2FzaCwgd2hpY2ggaXMgYSB2YWx1ZSA+PSAxLlxuICAgKlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHB1YmxpYyBmbGV4R3Jvd05vcm1hbGl6ZWQkOiBPYnNlcnZhYmxlPG51bWJlcj47XG5cbiAgY29uc3RydWN0b3IocHVibGljIHJlYWRvbmx5IHNhc2hUZW1wbGF0ZTogVGVtcGxhdGVSZWY8dm9pZD4sIHByaXZhdGUgX3Nhc2hCb3hBY2Nlc3NvcjogU2NpU2FzaEJveEFjY2Vzc29yKSB7XG4gICAgdGhpcy5mbGV4R3Jvd05vcm1hbGl6ZWQkID0gdGhpcy5fc2FzaEJveEFjY2Vzc29yLnNhc2hlcyRcbiAgICAgIC5waXBlKFxuICAgICAgICBzd2l0Y2hNYXAoc2FzaGVzID0+IG1lcmdlKC4uLnNhc2hlcy5tYXAoc2FzaCA9PiBzYXNoLl9mbGV4R3JvdyQpKSksXG4gICAgICAgIG1hcCgoKSA9PiB0aGlzLm5vcm1hbGl6ZUZsZXhHcm93KHRoaXMuZmxleEdyb3cpKSxcbiAgICAgICk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5zZXRGbGV4SXRlbVByb3BlcnRpZXMoKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgdGhpcy5zZXRGbGV4SXRlbVByb3BlcnRpZXMoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGlmIHRoaXMgc2FzaCBoYXMgYSBmaXhlZCBzaXplLCBtZWFuaW5nIHRoYXQgaXQgaGFzIG5vdCB0aGUgYWJpbGl0eSB0byBncm93IG9yIHNocmluayBpZiBuZWNlc3NhcnkuXG4gICAqXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgcHVibGljIGdldCBpc0ZpeGVkU2l6ZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gTnVtYmVyLmlzTmFOKCt0aGlzLnNpemUpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIGVmZmVjdGl2ZSBzYXNoIHNpemUgYXMgcmVuZGVyZWQgaW4gdGhlIERPTS5cbiAgICpcbiAgICogQGludGVybmFsXG4gICAqL1xuICBwdWJsaWMgZ2V0IGNvbXB1dGVkU2l6ZSgpOiBudW1iZXIge1xuICAgIC8vIE5vdGU6IFVzZSBgYm91bmRpbmdDbGllbnRSZWN0YCB0byBnZXQgdGhlIGZyYWN0aW9uYWwgc2l6ZS5cbiAgICAvLyBzZWUgaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQVBJL0VsZW1lbnQvY2xpZW50V2lkdGhcbiAgICByZXR1cm4gdGhpcy5fc2FzaEJveEFjY2Vzc29yLmRpcmVjdGlvbiA9PT0gJ3JvdycgPyB0aGlzLmVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGggOiB0aGlzLmVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkuaGVpZ2h0O1xuICB9XG5cbiAgLyoqXG4gICAqIENvbXB1dGVzIGFuZCBzZXRzIHRoZSBmbGV4IGl0ZW0gcHJvcGVydGllcyBiYXNlZCBvbiB0aGUgbW9kZWxsZWQgc2l6ZS5cbiAgICovXG4gIHByaXZhdGUgc2V0RmxleEl0ZW1Qcm9wZXJ0aWVzKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmlzRml4ZWRTaXplKSB7XG4gICAgICAvLyBmaXhlZC1zaXplZCBzYXNoXG4gICAgICB0aGlzLmZsZXhHcm93ID0gMDtcbiAgICAgIHRoaXMuZmxleFNocmluayA9IDA7XG4gICAgICB0aGlzLmZsZXhCYXNpcyA9IGAke3RoaXMuc2l6ZX1gO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgIC8vIHJlbWFpbmluZyBzcGFjZSBpcyBkaXN0cmlidXRlZCBhY2NvcmRpbmcgdG8gZ2l2ZW4gcHJvcG9ydGlvblxuICAgICAgY29uc3QgcHJvcG9ydGlvbiA9ICt0aGlzLnNpemU7XG4gICAgICBpZiAocHJvcG9ydGlvbiA8IDEpIHtcbiAgICAgICAgdGhyb3cgRXJyb3IoYFtJbGxlZ2FsU2FzaFNpemVFcnJvcl0gVGhlIHByb3BvcnRpb24gZm9yIGZsZXhpYmxlIHNpemVkIHNhc2hlcyBtdXN0IGJlID49MSBbc2l6ZT0ke3RoaXMuc2l6ZX1dYCk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuZmxleEdyb3cgPSBwcm9wb3J0aW9uO1xuICAgICAgdGhpcy5mbGV4U2hyaW5rID0gMTtcbiAgICAgIHRoaXMuZmxleEJhc2lzID0gJzAnO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBDb21wdXRlcyB0aGUgbm9ybWFsaXplZCBmbGV4LWdyb3cgcHJvcG9ydGlvbiBvZiB0aGUgZ2l2ZW4gc2FzaCwgd2hpY2ggaXMgYSB2YWx1ZSA+PSAxLlxuICAgKlxuICAgKiBJZiB0aGUgc3VtIG9mIGFsbCBmbGV4LWdyb3cgcHJvcG9ydGlvbnMgd291bGQgYmUgbGVzcyB0aGFuIDEsIHRoZW4sIHRoZSBzYXNoZXMgd291bGQgbm90IGZpbGwgdGhlIGVudGlyZSBzYXNoLWJveCBzcGFjZS5cbiAgICogV2l0aG91dCBub3JtYWxpemF0aW9uIGluIHBsYWNlLCBlLmcuLCB0aGlzIGNvdWxkIGhhcHBlbiB3aGVuIHJlbW92aW5nIGEgc2FzaC5cbiAgICovXG4gIHByaXZhdGUgbm9ybWFsaXplRmxleEdyb3coZmxleEdyb3c6IG51bWJlcik6IG51bWJlciB7XG4gICAgaWYgKGZsZXhHcm93ID09PSAwKSB7XG4gICAgICByZXR1cm4gMDtcbiAgICB9XG5cbiAgICBjb25zdCBzYXNoZXMgPSB0aGlzLl9zYXNoQm94QWNjZXNzb3Iuc2FzaGVzO1xuICAgIGNvbnN0IGZsZXhHcm93U3VtID0gc2FzaGVzLnJlZHVjZSgoc3VtLCBzYXNoKSA9PiBzdW0gKyBzYXNoLmZsZXhHcm93LCAwKTtcbiAgICBpZiAoZmxleEdyb3dTdW0gPT09IDApIHtcbiAgICAgIHJldHVybiAwO1xuICAgIH1cbiAgICByZXR1cm4gZmxleEdyb3cgLyBmbGV4R3Jvd1N1bTtcbiAgfVxufVxuIl19
|