@scion/components 14.0.1 → 15.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/dimension/dimension.directive.d.ts +1 -1
- package/esm2020/dimension/dimension.directive.mjs +3 -3
- package/esm2020/dimension/dimension.module.mjs +4 -4
- package/esm2020/sashbox/element-ref.directive.mjs +3 -3
- package/esm2020/sashbox/sash-initializer.directive.mjs +3 -3
- package/esm2020/sashbox/sash.directive.mjs +3 -3
- package/esm2020/sashbox/sashbox.component.mjs +3 -3
- package/esm2020/sashbox/sashbox.module.mjs +4 -4
- package/esm2020/splitter/splitter.component.mjs +4 -4
- package/esm2020/splitter/splitter.module.mjs +4 -4
- package/esm2020/throbber/ellipsis-throbber/ellipsis-throbber.component.mjs +3 -3
- package/esm2020/throbber/ripple-throbber/ripple-throbber.component.mjs +3 -3
- package/esm2020/throbber/roller-throbber/roller-throbber.component.mjs +3 -3
- package/esm2020/throbber/spinner-throbber/spinner-throbber.component.mjs +3 -3
- package/esm2020/throbber/throbber.component.mjs +3 -3
- package/esm2020/throbber/throbber.module.mjs +4 -4
- package/esm2020/viewport/native-scrollbar-track-size-provider.service.mjs +4 -4
- package/esm2020/viewport/scrollable.directive.mjs +3 -3
- package/esm2020/viewport/scrollbar/scrollbar.component.mjs +4 -4
- package/esm2020/viewport/viewport.component.mjs +32 -38
- package/esm2020/viewport/viewport.module.mjs +4 -4
- package/fesm2015/scion-components-dimension.mjs +7 -7
- package/fesm2015/scion-components-sashbox.mjs +16 -16
- package/fesm2015/scion-components-splitter.mjs +7 -7
- package/fesm2015/scion-components-splitter.mjs.map +1 -1
- package/fesm2015/scion-components-throbber.mjs +19 -19
- package/fesm2015/scion-components-viewport.mjs +45 -50
- package/fesm2015/scion-components-viewport.mjs.map +1 -1
- package/fesm2020/scion-components-dimension.mjs +7 -7
- package/fesm2020/scion-components-sashbox.mjs +16 -16
- package/fesm2020/scion-components-splitter.mjs +7 -7
- package/fesm2020/scion-components-splitter.mjs.map +1 -1
- package/fesm2020/scion-components-throbber.mjs +19 -19
- package/fesm2020/scion-components-viewport.mjs +44 -50
- package/fesm2020/scion-components-viewport.mjs.map +1 -1
- package/package.json +5 -5
- package/sashbox/element-ref.directive.d.ts +1 -1
- package/sashbox/sash-initializer.directive.d.ts +1 -1
- package/sashbox/sash.directive.d.ts +1 -1
- package/sashbox/sashbox.component.d.ts +1 -1
- package/splitter/splitter.component.d.ts +1 -1
- 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/viewport/scrollable.directive.d.ts +1 -1
- package/viewport/scrollbar/scrollbar.component.d.ts +1 -1
- package/viewport/viewport.component.d.ts +11 -5
|
@@ -293,9 +293,9 @@ export class SciScrollbarComponent {
|
|
|
293
293
|
* @internal
|
|
294
294
|
*/
|
|
295
295
|
SciScrollbarComponent.VIEWPORT_RESIZE_DEBOUNCE_TIME = 50;
|
|
296
|
-
SciScrollbarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
297
|
-
SciScrollbarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
298
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
296
|
+
SciScrollbarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: SciScrollbarComponent, deps: [{ token: i0.ElementRef }, { token: DOCUMENT }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
297
|
+
SciScrollbarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.2", type: SciScrollbarComponent, selector: "sci-scrollbar", inputs: { direction: "direction", setViewport: ["viewport", "setViewport"] }, host: { properties: { "class.vertical": "this.vertical", "class.horizontal": "this.horizontal", "class.scrolling": "this.scrolling" } }, viewQueries: [{ propertyName: "thumbElement", first: true, predicate: ["thumb_handle"], descendants: true, static: true }], ngImport: i0, template: "<!-- scrolltrack to move the viewport client upwards (paging) -->\n<div class=\"scrolltrack-start\" (mousedown)=\"onScrollTrackMouseDown($event, 'up')\"></div>\n\n<!-- scrollthumb -->\n<div #thumb_handle\n class=\"thumb-handle\"\n [class.vertical]=\"vertical\"\n [class.horizontal]=\"horizontal\"\n (mousedown)=\"onMouseDown($event)\"\n (touchstart)=\"onTouchStart($event)\"\n (touchmove)=\"onTouchMove($event)\"\n (touchend)=\"onTouchEnd($event)\"\n (touchcancel)=\"onTouchEnd($event)\">\n <div class=\"thumb\"\n [class.vertical]=\"vertical\"\n [class.horizontal]=\"horizontal\">\n </div>\n</div>\n\n<!-- scrolltrack to move the viewport client downwards (paging) -->\n<div class=\"scrolltrack-end\" (mousedown)=\"onScrollTrackMouseDown($event, 'down')\"></div>\n", styles: ["@charset \"UTF-8\";:host{display:flex;border:2px solid transparent;box-sizing:border-box;--sci-scrollbar-color: rgb(78, 78, 78);--\\275sci-scrollbar-thumb-position-fr: 0;--\\275sci-scrollbar-thumb-size-fr: 0}:host.vertical{flex-direction:column}:host.horizontal{flex-direction:row}:host>div.scrolltrack-start{flex-grow:var(--\\275sci-scrollbar-thumb-position-fr)}:host>div.thumb-handle{flex-basis:20px;display:flex;flex-grow:var(--\\275sci-scrollbar-thumb-size-fr);align-items:center}:host>div.thumb-handle.vertical{flex-direction:column}:host>div.thumb-handle.horizontal{flex-direction:row}:host>div.thumb-handle>div.thumb{flex:auto;border-radius:4px;background-color:var(--sci-scrollbar-color);opacity:.4;transition-duration:125ms;transition-property:width,height;transition-timing-function:ease-out}:host>div.thumb-handle>div.thumb.vertical{width:60%}:host>div.thumb-handle>div.thumb.horizontal{height:60%}:host>div.scrolltrack-end{flex-grow:calc(1 - (var(--\\275sci-scrollbar-thumb-position-fr) + var(--\\275sci-scrollbar-thumb-size-fr)))}:host-context:not(.overflow){display:none}:host-context:hover>div.thumb-handle>div.thumb,:host-context(.scrolling)>div.thumb-handle>div.thumb{background-color:var(--sci-scrollbar-color);opacity:.75}:host-context:hover>div.thumb-handle>div.thumb.vertical,:host-context(.scrolling)>div.thumb-handle>div.thumb.vertical{width:100%}:host-context:hover>div.thumb-handle>div.thumb.horizontal,:host-context(.scrolling)>div.thumb-handle>div.thumb.horizontal{height:100%}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
298
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: SciScrollbarComponent, decorators: [{
|
|
299
299
|
type: Component,
|
|
300
300
|
args: [{ selector: 'sci-scrollbar', changeDetection: ChangeDetectionStrategy.OnPush, template: "<!-- scrolltrack to move the viewport client upwards (paging) -->\n<div class=\"scrolltrack-start\" (mousedown)=\"onScrollTrackMouseDown($event, 'up')\"></div>\n\n<!-- scrollthumb -->\n<div #thumb_handle\n class=\"thumb-handle\"\n [class.vertical]=\"vertical\"\n [class.horizontal]=\"horizontal\"\n (mousedown)=\"onMouseDown($event)\"\n (touchstart)=\"onTouchStart($event)\"\n (touchmove)=\"onTouchMove($event)\"\n (touchend)=\"onTouchEnd($event)\"\n (touchcancel)=\"onTouchEnd($event)\">\n <div class=\"thumb\"\n [class.vertical]=\"vertical\"\n [class.horizontal]=\"horizontal\">\n </div>\n</div>\n\n<!-- scrolltrack to move the viewport client downwards (paging) -->\n<div class=\"scrolltrack-end\" (mousedown)=\"onScrollTrackMouseDown($event, 'down')\"></div>\n", styles: ["@charset \"UTF-8\";:host{display:flex;border:2px solid transparent;box-sizing:border-box;--sci-scrollbar-color: rgb(78, 78, 78);--\\275sci-scrollbar-thumb-position-fr: 0;--\\275sci-scrollbar-thumb-size-fr: 0}:host.vertical{flex-direction:column}:host.horizontal{flex-direction:row}:host>div.scrolltrack-start{flex-grow:var(--\\275sci-scrollbar-thumb-position-fr)}:host>div.thumb-handle{flex-basis:20px;display:flex;flex-grow:var(--\\275sci-scrollbar-thumb-size-fr);align-items:center}:host>div.thumb-handle.vertical{flex-direction:column}:host>div.thumb-handle.horizontal{flex-direction:row}:host>div.thumb-handle>div.thumb{flex:auto;border-radius:4px;background-color:var(--sci-scrollbar-color);opacity:.4;transition-duration:125ms;transition-property:width,height;transition-timing-function:ease-out}:host>div.thumb-handle>div.thumb.vertical{width:60%}:host>div.thumb-handle>div.thumb.horizontal{height:60%}:host>div.scrolltrack-end{flex-grow:calc(1 - (var(--\\275sci-scrollbar-thumb-position-fr) + var(--\\275sci-scrollbar-thumb-size-fr)))}:host-context:not(.overflow){display:none}:host-context:hover>div.thumb-handle>div.thumb,:host-context(.scrolling)>div.thumb-handle>div.thumb{background-color:var(--sci-scrollbar-color);opacity:.75}:host-context:hover>div.thumb-handle>div.thumb.vertical,:host-context(.scrolling)>div.thumb-handle>div.thumb.vertical{width:100%}:host-context:hover>div.thumb-handle>div.thumb.horizontal,:host-context(.scrolling)>div.thumb-handle>div.thumb.horizontal{height:100%}\n"] }]
|
|
301
301
|
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: undefined, decorators: [{
|
|
@@ -319,4 +319,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.2", ngImpor
|
|
|
319
319
|
type: Input,
|
|
320
320
|
args: ['viewport']
|
|
321
321
|
}] } });
|
|
322
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Nyb2xsYmFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NjaW9uL2NvbXBvbmVudHMvdmlld3BvcnQvc3JjL3Njcm9sbGJhci9zY3JvbGxiYXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2Npb24vY29tcG9uZW50cy92aWV3cG9ydC9zcmMvc2Nyb2xsYmFyL3Njcm9sbGJhci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7R0FRRztBQUVILE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QyxPQUFPLEVBQUMsdUJBQXVCLEVBQUUsU0FBUyxFQUFjLFdBQVcsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBYSxTQUFTLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDdkksT0FBTyxFQUFDLFNBQVMsRUFBRSxLQUFLLEVBQWMsRUFBRSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDdEUsT0FBTyxFQUFDLFlBQVksRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxjQUFjLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUNwSCxPQUFPLEVBQUMsY0FBYyxFQUFFLGFBQWEsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBQ3hFLE9BQU8sRUFBQyxXQUFXLEVBQUUsZUFBZSxFQUFDLE1BQU0sMEJBQTBCLENBQUM7O0FBRXRFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBc0JHO0FBT0gsTUFBTSxPQUFPLHFCQUFxQjtJQTBEaEMsWUFBb0IsS0FBOEIsRUFDWixTQUFjLEVBQ2hDLEtBQWE7UUFGYixVQUFLLEdBQUwsS0FBSyxDQUF5QjtRQUNaLGNBQVMsR0FBVCxTQUFTLENBQUs7UUFDaEMsVUFB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WUFBWSxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDO0lBQzlFLENBQUM7SUFFRCxtQkFBbUI7SUFDWixXQUFXO1FBQ2hCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDeEIsQ0FBQzs7QUFqVUQ7Ozs7Ozs7O0dBUUc7QUFDb0IsbURBQTZCLEdBQUcsRUFBRyxDQUFBO2tIQVgvQyxxQkFBcUIsNENBMkRaLFFBQVE7c0dBM0RqQixxQkFBcUIsd1lDOUNsQyw0eUJBcUJBOzJGRHlCYSxxQkFBcUI7a0JBTmpDLFNBQVM7K0JBQ0UsZUFBZSxtQkFHUix1QkFBdUIsQ0FBQyxNQUFNOzswQkE2RGxDLE1BQU07MkJBQUMsUUFBUTtpRUFuQ3JCLFlBQVk7c0JBRGxCLFNBQVM7dUJBQUMsY0FBYyxFQUFFLEVBQUMsTUFBTSxFQUFFLElBQUksRUFBQztnQkFJOUIsUUFBUTtzQkFEbEIsV0FBVzt1QkFBQyxnQkFBZ0I7Z0JBTWxCLFVBQVU7c0JBRHBCLFdBQVc7dUJBQUMsa0JBQWtCO2dCQU1wQixTQUFTO3NCQURuQixXQUFXO3VCQUFDLGlCQUFpQjtnQkFXdkIsU0FBUztzQkFEZixLQUFLO2dCQU9LLFdBQVc7c0JBRHJCLEtBQUs7dUJBQUMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTgtMjAxOSBTd2lzcyBGZWRlcmFsIFJhaWx3YXlzXG4gKlxuICogVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscyBhcmUgbWFkZVxuICogYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSAyLjBcbiAqIHdoaWNoIGlzIGF2YWlsYWJsZSBhdCBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wL1xuICpcbiAqICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogRVBMLTIuMFxuICovXG5cbmltcG9ydCB7RE9DVU1FTlR9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge0NoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEhvc3RCaW5kaW5nLCBJbmplY3QsIElucHV0LCBOZ1pvbmUsIE9uRGVzdHJveSwgVmlld0NoaWxkfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7ZnJvbUV2ZW50LCBtZXJnZSwgT2JzZXJ2YWJsZSwgb2YsIFN1YmplY3QsIHRpbWVyfSBmcm9tICdyeGpzJztcbmltcG9ydCB7ZGVib3VuY2VUaW1lLCBmaXJzdCwgbWFwLCBzdGFydFdpdGgsIHN3aXRjaE1hcCwgdGFrZVVudGlsLCB0YWtlV2hpbGUsIHdpdGhMYXRlc3RGcm9tfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge2Zyb21EaW1lbnNpb24kLCBmcm9tTXV0YXRpb24kfSBmcm9tICdAc2Npb24vdG9vbGtpdC9vYnNlcnZhYmxlJztcbmltcG9ydCB7ZmlsdGVyQXJyYXksIHN1YnNjcmliZUluc2lkZX0gZnJvbSAnQHNjaW9uL3Rvb2xraXQvb3BlcmF0b3JzJztcblxuLyoqXG4gKiBSZW5kZXJzIGEgdmVydGljYWwgb3IgaG9yaXpvbnRhbCBzY3JvbGxiYXIuXG4gKlxuICogVGhlIHNjcm9sbGJhciBmZWF0dXJlcyB0aGUgZm9sbG93aW5nIGZ1bmN0aW9uYWxpdHk6XG4gKiAtIGFsbG93cyB0byBtb3ZlIHRoZSB0aHVtYiBieSBtb3VzZSBvciB0b3VjaFxuICogLSBlbmxhcmdlcyB0aGUgdGh1bWIgaWYgdGhlIG1vdXNlIHBvaW50ZXIgaXMgbmVhciB0aGUgdGh1bWJcbiAqIC0gYWxsb3dzIHBhZ2luZyBvbiBtb3VzZWRvd24gb24gdGhlIHNjcm9sbCB0cmFja1xuICpcbiAqICMjIyBDU1Mgc3R5bGluZzpcbiAqXG4gKiBZb3UgY2FuIG92ZXJyaWRlIHRoZSBmb2xsb3dpbmcgQ1NTIHZhcmlhYmxlczpcbiAqXG4gKiAtIHNjaS1zY3JvbGxiYXItY29sb3I6ICAgIFNldHMgdGhlIGNvbG9yIG9mIHRoZSBzY3JvbGxiYXIgKGJ5IGRlZmF1bHQsIHVzZXMgYHJnYig3OCwgNzgsIDc4KWApLlxuICpcbiAqIEV4YW1wbGU6XG4gKlxuICogYGBgY3NzXG4gKlxuICogc2NpLXNjcm9sbGJhciB7XG4gKiAgIC0tc2NpLXNjcm9sbGJhci1jb2xvcjogYmx1ZTtcbiAqIH1cbiAqIGBgYFxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzY2ktc2Nyb2xsYmFyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3Njcm9sbGJhci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3Njcm9sbGJhci5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgU2NpU2Nyb2xsYmFyQ29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95IHtcblxuICAvKipcbiAgICogVGltZW91dCBmb3IgZGVib3VuY2luZyB2aWV3cG9ydCByZXNpemUgZXZlbnRzIHRoYXQgdHJpZ2dlciB0aGUgc2Nyb2xsIHBvc2l0aW9uIGNvbXB1dGF0aW9uLlxuICAgKlxuICAgKiBEZWJvdW5jaW5nIGlzIHBhcnRpY3VsYXJseSBpbXBvcnRhbnQgaW4gdGhlIGNvbnRleHQgb2YgQW5ndWxhciBhbmltYXRpb25zLCBzaW5jZSB0aGV5IGNvbnRpbnVvdXNseVxuICAgKiB0cmlnZ2VyIHJlc2l6ZSBldmVudHMuIERlYm91bmNpbmcgcHJldmVudHMgdGhlIHNjcm9sbGJhciBmcm9tIGZsaWNrZXJpbmcsIGZvciBleGFtcGxlLCB3aGVuIHRoZSB1c2VyXG4gICAqIGV4cGFuZHMgYSBwYW5lbCB0aGF0IGNvbnRhaW5zIGEgdmlld3BvcnQuXG4gICAqXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBWSUVXUE9SVF9SRVNJWkVfREVCT1VOQ0VfVElNRSA9IDUwO1xuXG4gIHByaXZhdGUgX2Rlc3Ryb3kkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgcHJpdmF0ZSBfdmlld3BvcnQhOiBIVE1MRWxlbWVudDtcbiAgcHJpdmF0ZSBfdmlld3BvcnRDaGFuZ2UkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgcHJpdmF0ZSBfbGFzdERyYWdQb3NpdGlvbjogbnVtYmVyIHwgbnVsbCA9IG51bGw7XG5cbiAgcHJpdmF0ZSBfb3ZlcmZsb3cgPSBmYWxzZTtcbiAgcHJpdmF0ZSBfdGh1bWJTaXplRnIgPSAwO1xuICBwcml2YXRlIF90aHVtYlBvc2l0aW9uRnIgPSAwO1xuXG4gIC8qIEBkb2NzLXByaXZhdGUgKi9cbiAgQFZpZXdDaGlsZCgndGh1bWJfaGFuZGxlJywge3N0YXRpYzogdHJ1ZX0pXG4gIHB1YmxpYyB0aHVtYkVsZW1lbnQhOiBFbGVtZW50UmVmPEhUTUxEaXZFbGVtZW50PjtcblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLnZlcnRpY2FsJylcbiAgcHVibGljIGdldCB2ZXJ0aWNhbCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5kaXJlY3Rpb24gPT09ICd2c2Nyb2xsJztcbiAgfVxuXG4gIEBIb3N0QmluZGluZygnY2xhc3MuaG9yaXpvbnRhbCcpXG4gIHB1YmxpYyBnZXQgaG9yaXpvbnRhbCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5kaXJlY3Rpb24gPT09ICdoc2Nyb2xsJztcbiAgfVxuXG4gIEBIb3N0QmluZGluZygnY2xhc3Muc2Nyb2xsaW5nJylcbiAgcHVibGljIGdldCBzY3JvbGxpbmcoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2xhc3REcmFnUG9zaXRpb24gIT09IG51bGw7XG4gIH1cblxuICAvKipcbiAgICogU3BlY2lmaWVzIHRoZSBkaXJlY3Rpb24gb2YgdGhlIHNjcm9sbGJhci5cbiAgICpcbiAgICogQnkgZGVmYXVsdCwgaWYgbm90IHNwZWNpZmllZCwgcmVuZGVycyBhIHZlcnRpY2FsIHNjcm9sbGJhci5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBkaXJlY3Rpb246ICd2c2Nyb2xsJyB8ICdoc2Nyb2xsJyA9ICd2c2Nyb2xsJztcblxuICAvKipcbiAgICogVGhlIHZpZXdwb3J0IHRvIHByb3ZpZGUgc2Nyb2xsYmFycyBmb3IuXG4gICAqL1xuICBASW5wdXQoJ3ZpZXdwb3J0JykgLy8gZXNsaW50LWRpc2FibGUtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXQtcmVuYW1lXG4gIHB1YmxpYyBzZXQgc2V0Vmlld3BvcnQodmlld3BvcnQ6IEhUTUxFbGVtZW50KSB7XG4gICAgdGhpcy5fdmlld3BvcnQgPSB2aWV3cG9ydDtcbiAgICB0aGlzLl92aWV3cG9ydENoYW5nZSQubmV4dCgpO1xuICB9XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfaG9zdDogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sXG4gICAgICAgICAgICAgIEBJbmplY3QoRE9DVU1FTlQpIHByaXZhdGUgX2RvY3VtZW50OiBhbnksXG4gICAgICAgICAgICAgIHByaXZhdGUgX3pvbmU6IE5nWm9uZSkge1xuICAgIHRoaXMuX3ZpZXdwb3J0Q2hhbmdlJFxuICAgICAgLnBpcGUoXG4gICAgICAgIHN3aXRjaE1hcCgoKSA9PiB7XG4gICAgICAgICAgaWYgKCF0aGlzLl92aWV3cG9ydCkge1xuICAgICAgICAgICAgcmV0dXJuIG9mKHVuZGVmaW5lZCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBtZXJnZShcbiAgICAgICAgICAgIHRoaXMudmlld3BvcnRTY3JvbGxDaGFuZ2UkKCksXG4gICAgICAgICAgICB0aGlzLnZpZXdwb3J0RGltZW5zaW9uQ2hhbmdlJCh7ZGVib3VuY2VUaW1lOiBTY2lTY3JvbGxiYXJDb21wb25lbnQuVklFV1BPUlRfUkVTSVpFX0RFQk9VTkNFX1RJTUV9KSxcbiAgICAgICAgICAgIHRoaXMudmlld3BvcnRDbGllbnREaW1lbnNpb25DaGFuZ2UkKHtkZWJvdW5jZVRpbWU6IFNjaVNjcm9sbGJhckNvbXBvbmVudC5WSUVXUE9SVF9SRVNJWkVfREVCT1VOQ0VfVElNRX0pLFxuICAgICAgICAgICk7XG4gICAgICAgIH0pLFxuICAgICAgICBzdWJzY3JpYmVJbnNpZGUoY29udGludWVGbiA9PiB0aGlzLl96b25lLnJ1bk91dHNpZGVBbmd1bGFyKGNvbnRpbnVlRm4pKSxcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICBpZiAodGhpcy5fdmlld3BvcnQpIHtcbiAgICAgICAgICB0aGlzLnJlbmRlclNjcm9sbFBvc2l0aW9uKCk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgdGhpcy51bnNldFNjcm9sbFBvc2l0aW9uKCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIENvbXB1dGVzIHRoZSBzY3JvbGwgcG9zaXRpb24gYW5kIHVwZGF0ZXMgQ1NTIHZhcmlhYmxlcyB0byByZW5kZXIgdGhlIHNjcm9sbCBwb3NpdGlvbiBpbiB0aGUgVUkuXG4gICAqL1xuICBwcml2YXRlIHJlbmRlclNjcm9sbFBvc2l0aW9uKCk6IHZvaWQge1xuICAgIE5nWm9uZS5hc3NlcnROb3RJbkFuZ3VsYXJab25lKCk7XG4gICAgY29uc3Qgdmlld3BvcnRTaXplID0gdGhpcy52aWV3cG9ydFNpemU7XG4gICAgY29uc3Qgdmlld3BvcnRDbGllbnRTaXplID0gdGhpcy52aWV3cG9ydENsaWVudFNpemU7XG4gICAgY29uc3QgdGh1bWJQb3NpdGlvbkZyID0gdGhpcy5zY3JvbGxQb3NpdGlvbiAvIHZpZXdwb3J0Q2xpZW50U2l6ZTtcbiAgICBjb25zdCB0aHVtYlNpemVGciA9IHZpZXdwb3J0U2l6ZSAvIHZpZXdwb3J0Q2xpZW50U2l6ZTtcbiAgICBjb25zdCBvdmVyZmxvdyA9IHZpZXdwb3J0Q2xpZW50U2l6ZSA+IHZpZXdwb3J0U2l6ZTtcblxuICAgIGlmICh0aHVtYlBvc2l0aW9uRnIgIT09IHRoaXMuX3RodW1iUG9zaXRpb25GciB8fCB0aHVtYlNpemVGciAhPT0gdGhpcy5fdGh1bWJTaXplRnIpIHtcbiAgICAgIHRoaXMuX3RodW1iUG9zaXRpb25GciA9IHRodW1iUG9zaXRpb25GcjtcbiAgICAgIHRoaXMuX3RodW1iU2l6ZUZyID0gdGh1bWJTaXplRnI7XG4gICAgICB0aGlzLnNldENzc1ZhcmlhYmxlKCctLcm1c2NpLXNjcm9sbGJhci10aHVtYi1wb3NpdGlvbi1mcicsIHRodW1iUG9zaXRpb25Gcik7XG4gICAgICB0aGlzLnNldENzc1ZhcmlhYmxlKCctLcm1c2NpLXNjcm9sbGJhci10aHVtYi1zaXplLWZyJywgdGh1bWJTaXplRnIpO1xuICAgIH1cblxuICAgIGlmIChvdmVyZmxvdyAhPT0gdGhpcy5fb3ZlcmZsb3cpIHtcbiAgICAgIHRoaXMuX292ZXJmbG93ID0gb3ZlcmZsb3c7XG4gICAgICBvdmVyZmxvdyA/IHRoaXMuX2hvc3QubmF0aXZlRWxlbWVudC5jbGFzc0xpc3QuYWRkKCdvdmVyZmxvdycpIDogdGhpcy5faG9zdC5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoJ292ZXJmbG93Jyk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIENsZWFycyBDU1MgdmFyaWFibGVzIHVzZWQgZm9yIHJlbmRlcmluZyB0aGUgc2Nyb2xsIHBvc2l0aW9uIGluIHRoZSBVSS5cbiAgICovXG4gIHByaXZhdGUgdW5zZXRTY3JvbGxQb3NpdGlvbigpOiB2b2lkIHtcbiAgICBOZ1pvbmUuYXNzZXJ0Tm90SW5Bbmd1bGFyWm9uZSgpO1xuICAgIHRoaXMuX3RodW1iUG9zaXRpb25GciA9IDA7XG4gICAgdGhpcy5fdGh1bWJTaXplRnIgPSAwO1xuICAgIHRoaXMuX292ZXJmbG93ID0gZmFsc2U7XG4gICAgdGhpcy5zZXRDc3NWYXJpYWJsZSgnLS3JtXNjaS1zY3JvbGxiYXItdGh1bWItcG9zaXRpb24tZnInLCAwKTtcbiAgICB0aGlzLnNldENzc1ZhcmlhYmxlKCctLcm1c2NpLXNjcm9sbGJhci10aHVtYi1zaXplLWZyJywgMCk7XG4gICAgdGhpcy5faG9zdC5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoJ292ZXJmbG93Jyk7XG4gIH1cblxuICAvKiBAZG9jcy1wcml2YXRlICovXG4gIHB1YmxpYyBvblRvdWNoU3RhcnQoZXZlbnQ6IFRvdWNoRXZlbnQpOiB2b2lkIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIHRoaXMuX2xhc3REcmFnUG9zaXRpb24gPSB0aGlzLnZlcnRpY2FsID8gZXZlbnQudG91Y2hlc1swXS5zY3JlZW5ZIDogZXZlbnQudG91Y2hlc1swXS5zY3JlZW5YO1xuICB9XG5cbiAgLyogQGRvY3MtcHJpdmF0ZSAqL1xuICBwdWJsaWMgb25Ub3VjaE1vdmUoZXZlbnQ6IFRvdWNoRXZlbnQpOiB2b2lkIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgY29uc3QgbmV3RHJhZ1Bvc2l0aW9uUHggPSB0aGlzLnZlcnRpY2FsID8gZXZlbnQudG91Y2hlc1swXS5zY3JlZW5ZIDogZXZlbnQudG91Y2hlc1swXS5zY3JlZW5YO1xuICAgIGNvbnN0IHNjcm9sbGJhclBhblB4ID0gbmV3RHJhZ1Bvc2l0aW9uUHggLSB0aGlzLl9sYXN0RHJhZ1Bvc2l0aW9uITtcbiAgICBjb25zdCB2aWV3cG9ydFBhblB4ID0gdGhpcy50b1ZpZXdwb3J0UGFuUHgoc2Nyb2xsYmFyUGFuUHgpO1xuICAgIHRoaXMuX2xhc3REcmFnUG9zaXRpb24gPSBuZXdEcmFnUG9zaXRpb25QeDtcbiAgICB0aGlzLm1vdmVWaWV3cG9ydENsaWVudCh2aWV3cG9ydFBhblB4KTtcbiAgfVxuXG4gIC8qIEBkb2NzLXByaXZhdGUgKi9cbiAgcHVibGljIG9uVG91Y2hFbmQoZXZlbnQ6IFRvdWNoRXZlbnQpOiB2b2lkIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIHRoaXMuX2xhc3REcmFnUG9zaXRpb24gPSBudWxsO1xuICB9XG5cbiAgLyogQGRvY3MtcHJpdmF0ZSAqL1xuICBwdWJsaWMgb25Nb3VzZURvd24obW91c2Vkb3duRXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAobW91c2Vkb3duRXZlbnQuYnV0dG9uICE9PSAwKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgbW91c2Vkb3duRXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB0aGlzLl9sYXN0RHJhZ1Bvc2l0aW9uID0gdGhpcy52ZXJ0aWNhbCA/IG1vdXNlZG93bkV2ZW50LnNjcmVlblkgOiBtb3VzZWRvd25FdmVudC5zY3JlZW5YO1xuXG4gICAgLy8gTGlzdGVuIGZvciAnbW91c2Vtb3ZlJyBldmVudHNcbiAgICB0aGlzLl96b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgIGNvbnN0IG1vdXNlbW92ZUxpc3RlbmVyID0gbWVyZ2UoZnJvbUV2ZW50PE1vdXNlRXZlbnQ+KHRoaXMuX2RvY3VtZW50LCAnbW91c2Vtb3ZlJyksIGZyb21FdmVudDxNb3VzZUV2ZW50Pih0aGlzLl9kb2N1bWVudCwgJ3NjaS1tb3VzZW1vdmUnKSlcbiAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSlcbiAgICAgICAgLnN1YnNjcmliZShtb3VzZW1vdmVFdmVudCA9PiB7XG4gICAgICAgICAgbW91c2Vtb3ZlRXZlbnQucHJldmVudERlZmF1bHQoKTtcblxuICAgICAgICAgIGNvbnN0IG5ld0RyYWdQb3NpdGlvblB4ID0gdGhpcy52ZXJ0aWNhbCA/IG1vdXNlbW92ZUV2ZW50LnNjcmVlblkgOiBtb3VzZW1vdmVFdmVudC5zY3JlZW5YO1xuICAgICAgICAgIGNvbnN0IHNjcm9sbGJhclBhblB4ID0gbmV3RHJhZ1Bvc2l0aW9uUHggLSB0aGlzLl9sYXN0RHJhZ1Bvc2l0aW9uITtcbiAgICAgICAgICBjb25zdCB2aWV3cG9ydFBhblB4ID0gdGhpcy50b1ZpZXdwb3J0UGFuUHgoc2Nyb2xsYmFyUGFuUHgpO1xuICAgICAgICAgIHRoaXMuX2xhc3REcmFnUG9zaXRpb24gPSBuZXdEcmFnUG9zaXRpb25QeDtcbiAgICAgICAgICB0aGlzLm1vdmVWaWV3cG9ydENsaWVudCh2aWV3cG9ydFBhblB4KTtcbiAgICAgICAgfSk7XG5cbiAgICAgIC8vIExpc3RlbiBmb3IgJ21vdXNldXAnIGV2ZW50czsgdXNlICdjYXB0dXJlIHBoYXNlJyBhbmQgJ3N0b3AgcHJvcGFnYXRpb24nIHRvIG5vdCBjbG9zZSBvdmVybGF5c1xuICAgICAgbWVyZ2UoZnJvbUV2ZW50PE1vdXNlRXZlbnQ+KHRoaXMuX2RvY3VtZW50LCAnbW91c2V1cCcsIHtjYXB0dXJlOiB0cnVlfSksIGZyb21FdmVudDxNb3VzZUV2ZW50Pih0aGlzLl9kb2N1bWVudCwgJ3NjaS1tb3VzZXVwJykpXG4gICAgICAgIC5waXBlKGZpcnN0KCksIHRha2VVbnRpbCh0aGlzLl9kZXN0cm95JCkpXG4gICAgICAgIC5zdWJzY3JpYmUobW91c2V1cEV2ZW50ID0+IHtcbiAgICAgICAgICBtb3VzZXVwRXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgbW91c2Vtb3ZlTGlzdGVuZXIudW5zdWJzY3JpYmUoKTtcbiAgICAgICAgICB0aGlzLl9sYXN0RHJhZ1Bvc2l0aW9uID0gbnVsbDtcbiAgICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICAvKiBAZG9jcy1wcml2YXRlICovXG4gIHB1YmxpYyBvblNjcm9sbFRyYWNrTW91c2VEb3duKGV2ZW50OiBNb3VzZUV2ZW50LCBkaXJlY3Rpb246ICd1cCcgfCAnZG93bicpOiB2b2lkIHtcbiAgICBjb25zdCBzaWdudW0gPSAoZGlyZWN0aW9uID09PSAndXAnID8gLTEgOiArMSk7XG4gICAgdGhpcy5zY3JvbGxXaGlsZU1vdXNlRG93bih0aGlzLnRvVmlld3BvcnRQYW5QeChzaWdudW0gKiB0aGlzLnRodW1iU2l6ZSksIGV2ZW50KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBQcm9qZWN0cyB0aGUgZ2l2ZW4gc2Nyb2xsYmFyIHNjcm9sbCBwaXhlbHMgaW50byB2aWV3cG9ydCBzY3JvbGwgcGl4ZWxzLlxuICAgKi9cbiAgcHJpdmF0ZSB0b1ZpZXdwb3J0UGFuUHgoc2Nyb2xsYmFyUGFuUHg6IG51bWJlcik6IG51bWJlciB7XG4gICAgY29uc3Qgc2Nyb2xsUmFuZ2VQeCA9IHRoaXMudHJhY2tTaXplIC0gdGhpcy50aHVtYlNpemU7XG4gICAgY29uc3Qgc2Nyb2xsUmF0aW8gPSBzY3JvbGxiYXJQYW5QeCAvIHNjcm9sbFJhbmdlUHg7XG4gICAgcmV0dXJuIHNjcm9sbFJhdGlvICogKHRoaXMudmlld3BvcnRDbGllbnRTaXplIC0gdGhpcy52aWV3cG9ydFNpemUpO1xuICB9XG5cbiAgLyoqXG4gICAqIE1vdmVzIHRoZSB2aWV3cG9ydCBjbGllbnQgYnkgdGhlIHNwZWNpZmllZCBudW1iZXJzIG9mIHBpeGVscy5cbiAgICovXG4gIHByaXZhdGUgbW92ZVZpZXdwb3J0Q2xpZW50KHZpZXdwb3J0UGFuUHg6IG51bWJlcik6IHZvaWQge1xuICAgIGlmICh0aGlzLnZlcnRpY2FsKSB7XG4gICAgICB0aGlzLl92aWV3cG9ydC5zY3JvbGxUb3AgKz0gdmlld3BvcnRQYW5QeDtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICB0aGlzLl92aWV3cG9ydC5zY3JvbGxMZWZ0ICs9IHZpZXdwb3J0UGFuUHg7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEluZGljYXRlcyBpZiB0aGUgY29udGVudCBvdmVyZmxvd3MuXG4gICAqL1xuICBwdWJsaWMgZ2V0IG92ZXJmbG93KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9vdmVyZmxvdztcbiAgfVxuXG4gIC8qKlxuICAgKiBTY3JvbGxzIGNvbnRpbnVvdXNseSB3aGlsZSBob2xkaW5nIHRoZSBtb3VzZSBwcmVzc2VkLCBvciB1bnRpbCB0aGUgbW91c2UgbGVhdmVzIHRoZSBzY3JvbGx0cmFjay5cbiAgICovXG4gIHByaXZhdGUgc2Nyb2xsV2hpbGVNb3VzZURvd24odmlld3BvcnRTY3JvbGxQeDogbnVtYmVyLCBtb3VzZWRvd25FdmVudDogTW91c2VFdmVudCk6IHZvaWQge1xuICAgIC8vIFRoZSBgRXZlbnRUYXJnZXRgIHR5cGUgb2YgYEV2ZW50LnRhcmdldGAgaXMgbm90IHlldCBjb21wYXRpYmxlIHdpdGggYEZyb21FdmVudFRhcmdldGAgdXNlZCBpbiBgZnJvbUV2ZW50YC5cbiAgICAvLyBUaGlzIHdpbGwgYmUgZml4ZWQgaW4gcnhqcyB2ZXJzaW9uIDcuMC4wLiBSZWZlciB0byBodHRwczovL2dpdGh1Yi5jb20vUmVhY3RpdmVYL3J4anMvY29tbWl0LzVmMDIyZDc4NDU3MDY4NDYzMmU2ZmQ1YWUyNDdmYzI1OWVlMzRjNGJcbiAgICAvLyBmb3IgbW9yZSBkZXRhaWxzLlxuICAgIGNvbnN0IHNjcm9sbFRyYWNrRWxlbWVudCA9IG1vdXNlZG93bkV2ZW50LnRhcmdldCBhcyBFbGVtZW50O1xuXG4gICAgLy8gc2Nyb2xsIGNvbnRpbnVvdXNseSBldmVyeSA1MG1zIGFmdGVyIGFuIGluaXRpYWwgZGVsYXkgb2YgMjUwbXNcbiAgICB0aW1lcigyNTAsIDUwKVxuICAgICAgLnBpcGUoXG4gICAgICAgIC8vIGNvbnRpbnVlIGNoYWluIHdpdGggbGF0ZXN0IG1vdXNlIGV2ZW50XG4gICAgICAgIHdpdGhMYXRlc3RGcm9tKG1lcmdlKG9mKG1vdXNlZG93bkV2ZW50KSwgZnJvbUV2ZW50PE1vdXNlRXZlbnQ+KHNjcm9sbFRyYWNrRWxlbWVudCwgJ21vdXNlbW92ZScpKSwgKHRpY2ssIGV2ZW50KSA9PiBldmVudCksXG4gICAgICAgIC8vIHN0YXJ0IGltbWVkaWF0ZWx5XG4gICAgICAgIHN0YXJ0V2l0aChtb3VzZWRvd25FdmVudCksXG4gICAgICAgIC8vIHN0b3Agc2Nyb2xsaW5nIGlmIHRoZSB0aHVtYiBoaXRzIHRoZSBtb3VzZSBwb2ludGVyIHBvc2l0aW9uXG4gICAgICAgIHRha2VXaGlsZSgoZXZlbnQ6IE1vdXNlRXZlbnQpID0+IHNjcm9sbFRyYWNrRWxlbWVudCA9PT0gdGhpcy5fZG9jdW1lbnQuZWxlbWVudEZyb21Qb2ludChldmVudC5jbGllbnRYLCBldmVudC5jbGllbnRZKSksXG4gICAgICAgIGRlYm91bmNlVGltZSgxMCksXG4gICAgICAgIC8vIHN0b3Agc2Nyb2xsaW5nIG9uIG1vdXNlb3V0IG9yIG1vdXNldXBcbiAgICAgICAgdGFrZVVudGlsKG1lcmdlKGZyb21FdmVudChzY3JvbGxUcmFja0VsZW1lbnQsICdtb3VzZW91dCcpLCBmcm9tRXZlbnQoc2Nyb2xsVHJhY2tFbGVtZW50LCAnbW91c2V1cCcpKSksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5tb3ZlVmlld3BvcnRDbGllbnQodmlld3BvcnRTY3JvbGxQeCk7XG4gICAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFbWl0cyB3aGVuZXZlciB0aGUgdmlld3BvcnQgc2Nyb2xscy5cbiAgICovXG4gIHByaXZhdGUgdmlld3BvcnRTY3JvbGxDaGFuZ2UkKCk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgIHJldHVybiBmcm9tRXZlbnQodGhpcy5fdmlld3BvcnQsICdzY3JvbGwnLCB7cGFzc2l2ZTogdHJ1ZX0pLnBpcGUobWFwKCgpID0+IHVuZGVmaW5lZCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIEVtaXRzIG9uIHN1YnNjcmlwdGlvbiwgYW5kIHRoZW4gZWFjaCB0aW1lIHRoZSBzaXplIG9mIHRoZSB2aWV3cG9ydCBjaGFuZ2VzLlxuICAgKi9cbiAgcHJpdmF0ZSB2aWV3cG9ydERpbWVuc2lvbkNoYW5nZSQob3B0aW9uczoge2RlYm91bmNlVGltZTogbnVtYmVyfSk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgIHJldHVybiBmcm9tRGltZW5zaW9uJCh0aGlzLl92aWV3cG9ydClcbiAgICAgIC5waXBlKFxuICAgICAgICAvLyBEZWJvdW5jaW5nIGlzIHBhcnRpY3VsYXJseSBpbXBvcnRhbnQgaW4gdGhlIGNvbnRleHQgb2YgQW5ndWxhciBhbmltYXRpb25zLCBzaW5jZSB0aGV5IGNvbnRpbnVvdXNseVxuICAgICAgICAvLyB0cmlnZ2VyIHJlc2l6ZSBldmVudHMuIERlYm91bmNpbmcgcHJldmVudHMgdGhlIHNjcm9sbGJhciBmcm9tIGZsaWNrZXJpbmcsIGZvciBleGFtcGxlLCB3aGVuIHRoZSB1c2VyXG4gICAgICAgIC8vIGV4cGFuZHMgYSBwYW5lbCB0aGF0IGNvbnRhaW5zIGEgdmlld3BvcnQuXG4gICAgICAgIGRlYm91bmNlVGltZShvcHRpb25zLmRlYm91bmNlVGltZSksXG4gICAgICAgIG1hcCgoKSA9PiB1bmRlZmluZWQpLFxuICAgICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFbWl0cyBvbiBzdWJzY3JpcHRpb24sIGFuZCB0aGVuIGVhY2ggdGltZSB0aGUgc2l6ZSBvciBzdHlsZSBwcm9wZXJ0eSBvZiB0aGUgdmlld3BvcnQgY2xpZW50IGNoYW5nZXMuXG4gICAqL1xuICBwcml2YXRlIHZpZXdwb3J0Q2xpZW50RGltZW5zaW9uQ2hhbmdlJChvcHRpb25zOiB7ZGVib3VuY2VUaW1lOiBudW1iZXJ9KTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMuY2hpbGRyZW4kKHRoaXMuX3ZpZXdwb3J0KVxuICAgICAgLnBpcGUoXG4gICAgICAgIHN3aXRjaE1hcChjaGlsZHJlbiA9PiBtZXJnZSguLi5jaGlsZHJlbi5tYXAoY2hpbGQgPT4gbWVyZ2UoXG4gICAgICAgICAgZnJvbURpbWVuc2lvbiQoY2hpbGQpLFxuICAgICAgICAgIC8vIE9ic2VydmUgc3R5bGUgbXV0YXRpb25zIHNpbmNlIHNvbWUgdHJhbnNmb3JtYXRpb25zIGNoYW5nZSB0aGUgc2Nyb2xsIHBvc2l0aW9uIHdpdGhvdXQgbmVjZXNzYXJpbHkgdHJpZ2dlcmluZyBhIGRpbWVuc2lvbiBjaGFuZ2UsXG4gICAgICAgICAgLy8gZS5nLiwgYHNjYWxlYCBvciBgdHJhbnNsYXRlYCB1c2VkIGJ5IHNvbWUgdmlydHVhbCBzY3JvbGwgaW1wbGVtZW50YXRpb25zXG4gICAgICAgICAgZnJvbU11dGF0aW9uJChjaGlsZCwge3N1YnRyZWU6IGZhbHNlLCBjaGlsZExpc3Q6IGZhbHNlLCBhdHRyaWJ1dGVGaWx0ZXI6IFsnc3R5bGUnXX0pKSxcbiAgICAgICAgKSkpLFxuICAgICAgICAvLyBEZWJvdW5jaW5nIGlzIHBhcnRpY3VsYXJseSBpbXBvcnRhbnQgaW4gdGhlIGNvbnRleHQgb2YgQW5ndWxhciBhbmltYXRpb25zLCBzaW5jZSB0aGV5IGNvbnRpbnVvdXNseVxuICAgICAgICAvLyB0cmlnZ2VyIHJlc2l6ZSBldmVudHMuIERlYm91bmNpbmcgcHJldmVudHMgdGhlIHNjcm9sbGJhciBmcm9tIGZsaWNrZXJpbmcsIGZvciBleGFtcGxlLCB3aGVuIHRoZSB1c2VyXG4gICAgICAgIC8vIGV4cGFuZHMgYSBwYW5lbCB0aGF0IGNvbnRhaW5zIGEgdmlld3BvcnQuXG4gICAgICAgIGRlYm91bmNlVGltZShvcHRpb25zLmRlYm91bmNlVGltZSksXG4gICAgICAgIG1hcCgoKSA9PiB1bmRlZmluZWQpLFxuICAgICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFbWl0cyB0aGUgY2hpbGRyZW4gb2YgdGhlIHBhc3NlZCBlbGVtZW50LCBhbmQgdGhlbiBlYWNoIHRpbWUgY2hpbGQgZWxlbWVudHMgYXJlIGFkZGVkIG9yIHJlbW92ZWQuXG4gICAqL1xuICBwcml2YXRlIGNoaWxkcmVuJChlbGVtZW50OiBIVE1MRWxlbWVudCk6IE9ic2VydmFibGU8SFRNTEVsZW1lbnRbXT4ge1xuICAgIHJldHVybiBmcm9tTXV0YXRpb24kKGVsZW1lbnQsIHtzdWJ0cmVlOiBmYWxzZSwgY2hpbGRMaXN0OiB0cnVlfSlcbiAgICAgIC5waXBlKFxuICAgICAgICBzdGFydFdpdGgodW5kZWZpbmVkIGFzIHZvaWQpLFxuICAgICAgICBtYXAoKCkgPT4gQXJyYXkuZnJvbShlbGVtZW50LmNoaWxkcmVuKSksXG4gICAgICAgIGZpbHRlckFycmF5KChjaGlsZDogRWxlbWVudCk6IGNoaWxkIGlzIEhUTUxFbGVtZW50ID0+IGNoaWxkIGluc3RhbmNlb2YgSFRNTEVsZW1lbnQpLFxuICAgICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0Q3NzVmFyaWFibGUoa2V5OiBzdHJpbmcsIHZhbHVlOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLl9ob3N0Lm5hdGl2ZUVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoa2V5LCB2YWx1ZSk7XG4gIH1cblxuICBwcml2YXRlIGdldCB2aWV3cG9ydFNpemUoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fdmlld3BvcnQgPyAodGhpcy52ZXJ0aWNhbCA/IHRoaXMuX3ZpZXdwb3J0LmNsaWVudEhlaWdodCA6IHRoaXMuX3ZpZXdwb3J0LmNsaWVudFdpZHRoKSA6IDA7XG4gIH1cblxuICBwcml2YXRlIGdldCB2aWV3cG9ydENsaWVudFNpemUoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fdmlld3BvcnQgPyAodGhpcy52ZXJ0aWNhbCA/IHRoaXMuX3ZpZXdwb3J0LnNjcm9sbEhlaWdodCA6IHRoaXMuX3ZpZXdwb3J0LnNjcm9sbFdpZHRoKSA6IDA7XG4gIH1cblxuICBwcml2YXRlIGdldCBzY3JvbGxQb3NpdGlvbigpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl92aWV3cG9ydCA/ICh0aGlzLnZlcnRpY2FsID8gdGhpcy5fdmlld3BvcnQuc2Nyb2xsVG9wIDogdGhpcy5fdmlld3BvcnQuc2Nyb2xsTGVmdCkgOiAwO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXQgdGh1bWJTaXplKCk6IG51bWJlciB7XG4gICAgY29uc3QgdGh1bWJFbGVtZW50ID0gdGhpcy50aHVtYkVsZW1lbnQubmF0aXZlRWxlbWVudDtcbiAgICByZXR1cm4gdGhpcy52ZXJ0aWNhbCA/IHRodW1iRWxlbWVudC5jbGllbnRIZWlnaHQgOiB0aHVtYkVsZW1lbnQuY2xpZW50V2lkdGg7XG4gIH1cblxuICBwcml2YXRlIGdldCB0cmFja1NpemUoKTogbnVtYmVyIHtcbiAgICBjb25zdCB0cmFja0VsZW1lbnQgPSB0aGlzLl9ob3N0Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgcmV0dXJuIHRoaXMudmVydGljYWwgPyB0cmFja0VsZW1lbnQuY2xpZW50SGVpZ2h0IDogdHJhY2tFbGVtZW50LmNsaWVudFdpZHRoO1xuICB9XG5cbiAgLyogQGRvY3MtcHJpdmF0ZSAqL1xuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5fZGVzdHJveSQubmV4dCgpO1xuICB9XG59XG4iLCI8IS0tIHNjcm9sbHRyYWNrIHRvIG1vdmUgdGhlIHZpZXdwb3J0IGNsaWVudCB1cHdhcmRzIChwYWdpbmcpIC0tPlxuPGRpdiBjbGFzcz1cInNjcm9sbHRyYWNrLXN0YXJ0XCIgKG1vdXNlZG93bik9XCJvblNjcm9sbFRyYWNrTW91c2VEb3duKCRldmVudCwgJ3VwJylcIj48L2Rpdj5cblxuPCEtLSBzY3JvbGx0aHVtYiAtLT5cbjxkaXYgI3RodW1iX2hhbmRsZVxuICAgICBjbGFzcz1cInRodW1iLWhhbmRsZVwiXG4gICAgIFtjbGFzcy52ZXJ0aWNhbF09XCJ2ZXJ0aWNhbFwiXG4gICAgIFtjbGFzcy5ob3Jpem9udGFsXT1cImhvcml6b250YWxcIlxuICAgICAobW91c2Vkb3duKT1cIm9uTW91c2VEb3duKCRldmVudClcIlxuICAgICAodG91Y2hzdGFydCk9XCJvblRvdWNoU3RhcnQoJGV2ZW50KVwiXG4gICAgICh0b3VjaG1vdmUpPVwib25Ub3VjaE1vdmUoJGV2ZW50KVwiXG4gICAgICh0b3VjaGVuZCk9XCJvblRvdWNoRW5kKCRldmVudClcIlxuICAgICAodG91Y2hjYW5jZWwpPVwib25Ub3VjaEVuZCgkZXZlbnQpXCI+XG4gIDxkaXYgY2xhc3M9XCJ0aHVtYlwiXG4gICAgICAgW2NsYXNzLnZlcnRpY2FsXT1cInZlcnRpY2FsXCJcbiAgICAgICBbY2xhc3MuaG9yaXpvbnRhbF09XCJob3Jpem9udGFsXCI+XG4gIDwvZGl2PlxuPC9kaXY+XG5cbjwhLS0gc2Nyb2xsdHJhY2sgdG8gbW92ZSB0aGUgdmlld3BvcnQgY2xpZW50IGRvd253YXJkcyAocGFnaW5nKSAtLT5cbjxkaXYgY2xhc3M9XCJzY3JvbGx0cmFjay1lbmRcIiAobW91c2Vkb3duKT1cIm9uU2Nyb2xsVHJhY2tNb3VzZURvd24oJGV2ZW50LCAnZG93bicpXCI+PC9kaXY+XG4iXX0=
|
|
322
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Nyb2xsYmFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NjaW9uL2NvbXBvbmVudHMvdmlld3BvcnQvc3JjL3Njcm9sbGJhci9zY3JvbGxiYXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2Npb24vY29tcG9uZW50cy92aWV3cG9ydC9zcmMvc2Nyb2xsYmFyL3Njcm9sbGJhci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7R0FRRztBQUVILE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QyxPQUFPLEVBQUMsdUJBQXVCLEVBQUUsU0FBUyxFQUFjLFdBQVcsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBYSxTQUFTLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDdkksT0FBTyxFQUFDLFNBQVMsRUFBRSxLQUFLLEVBQWMsRUFBRSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDdEUsT0FBTyxFQUFDLFlBQVksRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxjQUFjLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUNwSCxPQUFPLEVBQUMsY0FBYyxFQUFFLGFBQWEsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBQ3hFLE9BQU8sRUFBQyxXQUFXLEVBQUUsZUFBZSxFQUFDLE1BQU0sMEJBQTBCLENBQUM7O0FBRXRFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBc0JHO0FBT0gsTUFBTSxPQUFPLHFCQUFxQjtJQTBEaEMsWUFBb0IsS0FBOEIsRUFDWixTQUFjLEVBQ2hDLEtBQWE7UUFGYixVQUFLLEdBQUwsS0FBSyxDQUF5QjtRQUNaLGNBQVMsR0FBVCxTQUFTLENBQUs7UUFDaEMsVUFB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WUFBWSxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDO0lBQzlFLENBQUM7SUFFRCxtQkFBbUI7SUFDWixXQUFXO1FBQ2hCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDeEIsQ0FBQzs7QUFqVUQ7Ozs7Ozs7O0dBUUc7QUFDb0IsbURBQTZCLEdBQUcsRUFBRSxDQUFDO2tIQVgvQyxxQkFBcUIsNENBMkRaLFFBQVE7c0dBM0RqQixxQkFBcUIsd1lDOUNsQyw0eUJBcUJBOzJGRHlCYSxxQkFBcUI7a0JBTmpDLFNBQVM7K0JBQ0UsZUFBZSxtQkFHUix1QkFBdUIsQ0FBQyxNQUFNOzswQkE2RGxDLE1BQU07MkJBQUMsUUFBUTtpRUFuQ3JCLFlBQVk7c0JBRGxCLFNBQVM7dUJBQUMsY0FBYyxFQUFFLEVBQUMsTUFBTSxFQUFFLElBQUksRUFBQztnQkFJOUIsUUFBUTtzQkFEbEIsV0FBVzt1QkFBQyxnQkFBZ0I7Z0JBTWxCLFVBQVU7c0JBRHBCLFdBQVc7dUJBQUMsa0JBQWtCO2dCQU1wQixTQUFTO3NCQURuQixXQUFXO3VCQUFDLGlCQUFpQjtnQkFXdkIsU0FBUztzQkFEZixLQUFLO2dCQU9LLFdBQVc7c0JBRHJCLEtBQUs7dUJBQUMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTgtMjAxOSBTd2lzcyBGZWRlcmFsIFJhaWx3YXlzXG4gKlxuICogVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscyBhcmUgbWFkZVxuICogYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSAyLjBcbiAqIHdoaWNoIGlzIGF2YWlsYWJsZSBhdCBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wL1xuICpcbiAqICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogRVBMLTIuMFxuICovXG5cbmltcG9ydCB7RE9DVU1FTlR9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge0NoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEhvc3RCaW5kaW5nLCBJbmplY3QsIElucHV0LCBOZ1pvbmUsIE9uRGVzdHJveSwgVmlld0NoaWxkfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7ZnJvbUV2ZW50LCBtZXJnZSwgT2JzZXJ2YWJsZSwgb2YsIFN1YmplY3QsIHRpbWVyfSBmcm9tICdyeGpzJztcbmltcG9ydCB7ZGVib3VuY2VUaW1lLCBmaXJzdCwgbWFwLCBzdGFydFdpdGgsIHN3aXRjaE1hcCwgdGFrZVVudGlsLCB0YWtlV2hpbGUsIHdpdGhMYXRlc3RGcm9tfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge2Zyb21EaW1lbnNpb24kLCBmcm9tTXV0YXRpb24kfSBmcm9tICdAc2Npb24vdG9vbGtpdC9vYnNlcnZhYmxlJztcbmltcG9ydCB7ZmlsdGVyQXJyYXksIHN1YnNjcmliZUluc2lkZX0gZnJvbSAnQHNjaW9uL3Rvb2xraXQvb3BlcmF0b3JzJztcblxuLyoqXG4gKiBSZW5kZXJzIGEgdmVydGljYWwgb3IgaG9yaXpvbnRhbCBzY3JvbGxiYXIuXG4gKlxuICogVGhlIHNjcm9sbGJhciBmZWF0dXJlcyB0aGUgZm9sbG93aW5nIGZ1bmN0aW9uYWxpdHk6XG4gKiAtIGFsbG93cyB0byBtb3ZlIHRoZSB0aHVtYiBieSBtb3VzZSBvciB0b3VjaFxuICogLSBlbmxhcmdlcyB0aGUgdGh1bWIgaWYgdGhlIG1vdXNlIHBvaW50ZXIgaXMgbmVhciB0aGUgdGh1bWJcbiAqIC0gYWxsb3dzIHBhZ2luZyBvbiBtb3VzZWRvd24gb24gdGhlIHNjcm9sbCB0cmFja1xuICpcbiAqICMjIyBDU1Mgc3R5bGluZzpcbiAqXG4gKiBZb3UgY2FuIG92ZXJyaWRlIHRoZSBmb2xsb3dpbmcgQ1NTIHZhcmlhYmxlczpcbiAqXG4gKiAtIHNjaS1zY3JvbGxiYXItY29sb3I6ICAgIFNldHMgdGhlIGNvbG9yIG9mIHRoZSBzY3JvbGxiYXIgKGJ5IGRlZmF1bHQsIHVzZXMgYHJnYig3OCwgNzgsIDc4KWApLlxuICpcbiAqIEV4YW1wbGU6XG4gKlxuICogYGBgY3NzXG4gKlxuICogc2NpLXNjcm9sbGJhciB7XG4gKiAgIC0tc2NpLXNjcm9sbGJhci1jb2xvcjogYmx1ZTtcbiAqIH1cbiAqIGBgYFxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzY2ktc2Nyb2xsYmFyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3Njcm9sbGJhci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3Njcm9sbGJhci5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgU2NpU2Nyb2xsYmFyQ29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95IHtcblxuICAvKipcbiAgICogVGltZW91dCBmb3IgZGVib3VuY2luZyB2aWV3cG9ydCByZXNpemUgZXZlbnRzIHRoYXQgdHJpZ2dlciB0aGUgc2Nyb2xsIHBvc2l0aW9uIGNvbXB1dGF0aW9uLlxuICAgKlxuICAgKiBEZWJvdW5jaW5nIGlzIHBhcnRpY3VsYXJseSBpbXBvcnRhbnQgaW4gdGhlIGNvbnRleHQgb2YgQW5ndWxhciBhbmltYXRpb25zLCBzaW5jZSB0aGV5IGNvbnRpbnVvdXNseVxuICAgKiB0cmlnZ2VyIHJlc2l6ZSBldmVudHMuIERlYm91bmNpbmcgcHJldmVudHMgdGhlIHNjcm9sbGJhciBmcm9tIGZsaWNrZXJpbmcsIGZvciBleGFtcGxlLCB3aGVuIHRoZSB1c2VyXG4gICAqIGV4cGFuZHMgYSBwYW5lbCB0aGF0IGNvbnRhaW5zIGEgdmlld3BvcnQuXG4gICAqXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBWSUVXUE9SVF9SRVNJWkVfREVCT1VOQ0VfVElNRSA9IDUwO1xuXG4gIHByaXZhdGUgX2Rlc3Ryb3kkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgcHJpdmF0ZSBfdmlld3BvcnQhOiBIVE1MRWxlbWVudDtcbiAgcHJpdmF0ZSBfdmlld3BvcnRDaGFuZ2UkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgcHJpdmF0ZSBfbGFzdERyYWdQb3NpdGlvbjogbnVtYmVyIHwgbnVsbCA9IG51bGw7XG5cbiAgcHJpdmF0ZSBfb3ZlcmZsb3cgPSBmYWxzZTtcbiAgcHJpdmF0ZSBfdGh1bWJTaXplRnIgPSAwO1xuICBwcml2YXRlIF90aHVtYlBvc2l0aW9uRnIgPSAwO1xuXG4gIC8qIEBkb2NzLXByaXZhdGUgKi9cbiAgQFZpZXdDaGlsZCgndGh1bWJfaGFuZGxlJywge3N0YXRpYzogdHJ1ZX0pXG4gIHB1YmxpYyB0aHVtYkVsZW1lbnQhOiBFbGVtZW50UmVmPEhUTUxEaXZFbGVtZW50PjtcblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLnZlcnRpY2FsJylcbiAgcHVibGljIGdldCB2ZXJ0aWNhbCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5kaXJlY3Rpb24gPT09ICd2c2Nyb2xsJztcbiAgfVxuXG4gIEBIb3N0QmluZGluZygnY2xhc3MuaG9yaXpvbnRhbCcpXG4gIHB1YmxpYyBnZXQgaG9yaXpvbnRhbCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5kaXJlY3Rpb24gPT09ICdoc2Nyb2xsJztcbiAgfVxuXG4gIEBIb3N0QmluZGluZygnY2xhc3Muc2Nyb2xsaW5nJylcbiAgcHVibGljIGdldCBzY3JvbGxpbmcoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2xhc3REcmFnUG9zaXRpb24gIT09IG51bGw7XG4gIH1cblxuICAvKipcbiAgICogU3BlY2lmaWVzIHRoZSBkaXJlY3Rpb24gb2YgdGhlIHNjcm9sbGJhci5cbiAgICpcbiAgICogQnkgZGVmYXVsdCwgaWYgbm90IHNwZWNpZmllZCwgcmVuZGVycyBhIHZlcnRpY2FsIHNjcm9sbGJhci5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBkaXJlY3Rpb246ICd2c2Nyb2xsJyB8ICdoc2Nyb2xsJyA9ICd2c2Nyb2xsJztcblxuICAvKipcbiAgICogVGhlIHZpZXdwb3J0IHRvIHByb3ZpZGUgc2Nyb2xsYmFycyBmb3IuXG4gICAqL1xuICBASW5wdXQoJ3ZpZXdwb3J0JykgLy8gZXNsaW50LWRpc2FibGUtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXQtcmVuYW1lXG4gIHB1YmxpYyBzZXQgc2V0Vmlld3BvcnQodmlld3BvcnQ6IEhUTUxFbGVtZW50KSB7XG4gICAgdGhpcy5fdmlld3BvcnQgPSB2aWV3cG9ydDtcbiAgICB0aGlzLl92aWV3cG9ydENoYW5nZSQubmV4dCgpO1xuICB9XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfaG9zdDogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sXG4gICAgICAgICAgICAgIEBJbmplY3QoRE9DVU1FTlQpIHByaXZhdGUgX2RvY3VtZW50OiBhbnksXG4gICAgICAgICAgICAgIHByaXZhdGUgX3pvbmU6IE5nWm9uZSkge1xuICAgIHRoaXMuX3ZpZXdwb3J0Q2hhbmdlJFxuICAgICAgLnBpcGUoXG4gICAgICAgIHN3aXRjaE1hcCgoKSA9PiB7XG4gICAgICAgICAgaWYgKCF0aGlzLl92aWV3cG9ydCkge1xuICAgICAgICAgICAgcmV0dXJuIG9mKHVuZGVmaW5lZCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBtZXJnZShcbiAgICAgICAgICAgIHRoaXMudmlld3BvcnRTY3JvbGxDaGFuZ2UkKCksXG4gICAgICAgICAgICB0aGlzLnZpZXdwb3J0RGltZW5zaW9uQ2hhbmdlJCh7ZGVib3VuY2VUaW1lOiBTY2lTY3JvbGxiYXJDb21wb25lbnQuVklFV1BPUlRfUkVTSVpFX0RFQk9VTkNFX1RJTUV9KSxcbiAgICAgICAgICAgIHRoaXMudmlld3BvcnRDbGllbnREaW1lbnNpb25DaGFuZ2UkKHtkZWJvdW5jZVRpbWU6IFNjaVNjcm9sbGJhckNvbXBvbmVudC5WSUVXUE9SVF9SRVNJWkVfREVCT1VOQ0VfVElNRX0pLFxuICAgICAgICAgICk7XG4gICAgICAgIH0pLFxuICAgICAgICBzdWJzY3JpYmVJbnNpZGUoY29udGludWVGbiA9PiB0aGlzLl96b25lLnJ1bk91dHNpZGVBbmd1bGFyKGNvbnRpbnVlRm4pKSxcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICBpZiAodGhpcy5fdmlld3BvcnQpIHtcbiAgICAgICAgICB0aGlzLnJlbmRlclNjcm9sbFBvc2l0aW9uKCk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgdGhpcy51bnNldFNjcm9sbFBvc2l0aW9uKCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIENvbXB1dGVzIHRoZSBzY3JvbGwgcG9zaXRpb24gYW5kIHVwZGF0ZXMgQ1NTIHZhcmlhYmxlcyB0byByZW5kZXIgdGhlIHNjcm9sbCBwb3NpdGlvbiBpbiB0aGUgVUkuXG4gICAqL1xuICBwcml2YXRlIHJlbmRlclNjcm9sbFBvc2l0aW9uKCk6IHZvaWQge1xuICAgIE5nWm9uZS5hc3NlcnROb3RJbkFuZ3VsYXJab25lKCk7XG4gICAgY29uc3Qgdmlld3BvcnRTaXplID0gdGhpcy52aWV3cG9ydFNpemU7XG4gICAgY29uc3Qgdmlld3BvcnRDbGllbnRTaXplID0gdGhpcy52aWV3cG9ydENsaWVudFNpemU7XG4gICAgY29uc3QgdGh1bWJQb3NpdGlvbkZyID0gdGhpcy5zY3JvbGxQb3NpdGlvbiAvIHZpZXdwb3J0Q2xpZW50U2l6ZTtcbiAgICBjb25zdCB0aHVtYlNpemVGciA9IHZpZXdwb3J0U2l6ZSAvIHZpZXdwb3J0Q2xpZW50U2l6ZTtcbiAgICBjb25zdCBvdmVyZmxvdyA9IHZpZXdwb3J0Q2xpZW50U2l6ZSA+IHZpZXdwb3J0U2l6ZTtcblxuICAgIGlmICh0aHVtYlBvc2l0aW9uRnIgIT09IHRoaXMuX3RodW1iUG9zaXRpb25GciB8fCB0aHVtYlNpemVGciAhPT0gdGhpcy5fdGh1bWJTaXplRnIpIHtcbiAgICAgIHRoaXMuX3RodW1iUG9zaXRpb25GciA9IHRodW1iUG9zaXRpb25GcjtcbiAgICAgIHRoaXMuX3RodW1iU2l6ZUZyID0gdGh1bWJTaXplRnI7XG4gICAgICB0aGlzLnNldENzc1ZhcmlhYmxlKCctLcm1c2NpLXNjcm9sbGJhci10aHVtYi1wb3NpdGlvbi1mcicsIHRodW1iUG9zaXRpb25Gcik7XG4gICAgICB0aGlzLnNldENzc1ZhcmlhYmxlKCctLcm1c2NpLXNjcm9sbGJhci10aHVtYi1zaXplLWZyJywgdGh1bWJTaXplRnIpO1xuICAgIH1cblxuICAgIGlmIChvdmVyZmxvdyAhPT0gdGhpcy5fb3ZlcmZsb3cpIHtcbiAgICAgIHRoaXMuX292ZXJmbG93ID0gb3ZlcmZsb3c7XG4gICAgICBvdmVyZmxvdyA/IHRoaXMuX2hvc3QubmF0aXZlRWxlbWVudC5jbGFzc0xpc3QuYWRkKCdvdmVyZmxvdycpIDogdGhpcy5faG9zdC5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoJ292ZXJmbG93Jyk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIENsZWFycyBDU1MgdmFyaWFibGVzIHVzZWQgZm9yIHJlbmRlcmluZyB0aGUgc2Nyb2xsIHBvc2l0aW9uIGluIHRoZSBVSS5cbiAgICovXG4gIHByaXZhdGUgdW5zZXRTY3JvbGxQb3NpdGlvbigpOiB2b2lkIHtcbiAgICBOZ1pvbmUuYXNzZXJ0Tm90SW5Bbmd1bGFyWm9uZSgpO1xuICAgIHRoaXMuX3RodW1iUG9zaXRpb25GciA9IDA7XG4gICAgdGhpcy5fdGh1bWJTaXplRnIgPSAwO1xuICAgIHRoaXMuX292ZXJmbG93ID0gZmFsc2U7XG4gICAgdGhpcy5zZXRDc3NWYXJpYWJsZSgnLS3JtXNjaS1zY3JvbGxiYXItdGh1bWItcG9zaXRpb24tZnInLCAwKTtcbiAgICB0aGlzLnNldENzc1ZhcmlhYmxlKCctLcm1c2NpLXNjcm9sbGJhci10aHVtYi1zaXplLWZyJywgMCk7XG4gICAgdGhpcy5faG9zdC5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoJ292ZXJmbG93Jyk7XG4gIH1cblxuICAvKiBAZG9jcy1wcml2YXRlICovXG4gIHB1YmxpYyBvblRvdWNoU3RhcnQoZXZlbnQ6IFRvdWNoRXZlbnQpOiB2b2lkIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIHRoaXMuX2xhc3REcmFnUG9zaXRpb24gPSB0aGlzLnZlcnRpY2FsID8gZXZlbnQudG91Y2hlc1swXS5zY3JlZW5ZIDogZXZlbnQudG91Y2hlc1swXS5zY3JlZW5YO1xuICB9XG5cbiAgLyogQGRvY3MtcHJpdmF0ZSAqL1xuICBwdWJsaWMgb25Ub3VjaE1vdmUoZXZlbnQ6IFRvdWNoRXZlbnQpOiB2b2lkIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgY29uc3QgbmV3RHJhZ1Bvc2l0aW9uUHggPSB0aGlzLnZlcnRpY2FsID8gZXZlbnQudG91Y2hlc1swXS5zY3JlZW5ZIDogZXZlbnQudG91Y2hlc1swXS5zY3JlZW5YO1xuICAgIGNvbnN0IHNjcm9sbGJhclBhblB4ID0gbmV3RHJhZ1Bvc2l0aW9uUHggLSB0aGlzLl9sYXN0RHJhZ1Bvc2l0aW9uITtcbiAgICBjb25zdCB2aWV3cG9ydFBhblB4ID0gdGhpcy50b1ZpZXdwb3J0UGFuUHgoc2Nyb2xsYmFyUGFuUHgpO1xuICAgIHRoaXMuX2xhc3REcmFnUG9zaXRpb24gPSBuZXdEcmFnUG9zaXRpb25QeDtcbiAgICB0aGlzLm1vdmVWaWV3cG9ydENsaWVudCh2aWV3cG9ydFBhblB4KTtcbiAgfVxuXG4gIC8qIEBkb2NzLXByaXZhdGUgKi9cbiAgcHVibGljIG9uVG91Y2hFbmQoZXZlbnQ6IFRvdWNoRXZlbnQpOiB2b2lkIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIHRoaXMuX2xhc3REcmFnUG9zaXRpb24gPSBudWxsO1xuICB9XG5cbiAgLyogQGRvY3MtcHJpdmF0ZSAqL1xuICBwdWJsaWMgb25Nb3VzZURvd24obW91c2Vkb3duRXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAobW91c2Vkb3duRXZlbnQuYnV0dG9uICE9PSAwKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgbW91c2Vkb3duRXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB0aGlzLl9sYXN0RHJhZ1Bvc2l0aW9uID0gdGhpcy52ZXJ0aWNhbCA/IG1vdXNlZG93bkV2ZW50LnNjcmVlblkgOiBtb3VzZWRvd25FdmVudC5zY3JlZW5YO1xuXG4gICAgLy8gTGlzdGVuIGZvciAnbW91c2Vtb3ZlJyBldmVudHNcbiAgICB0aGlzLl96b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgIGNvbnN0IG1vdXNlbW92ZUxpc3RlbmVyID0gbWVyZ2UoZnJvbUV2ZW50PE1vdXNlRXZlbnQ+KHRoaXMuX2RvY3VtZW50LCAnbW91c2Vtb3ZlJyksIGZyb21FdmVudDxNb3VzZUV2ZW50Pih0aGlzLl9kb2N1bWVudCwgJ3NjaS1tb3VzZW1vdmUnKSlcbiAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSlcbiAgICAgICAgLnN1YnNjcmliZShtb3VzZW1vdmVFdmVudCA9PiB7XG4gICAgICAgICAgbW91c2Vtb3ZlRXZlbnQucHJldmVudERlZmF1bHQoKTtcblxuICAgICAgICAgIGNvbnN0IG5ld0RyYWdQb3NpdGlvblB4ID0gdGhpcy52ZXJ0aWNhbCA/IG1vdXNlbW92ZUV2ZW50LnNjcmVlblkgOiBtb3VzZW1vdmVFdmVudC5zY3JlZW5YO1xuICAgICAgICAgIGNvbnN0IHNjcm9sbGJhclBhblB4ID0gbmV3RHJhZ1Bvc2l0aW9uUHggLSB0aGlzLl9sYXN0RHJhZ1Bvc2l0aW9uITtcbiAgICAgICAgICBjb25zdCB2aWV3cG9ydFBhblB4ID0gdGhpcy50b1ZpZXdwb3J0UGFuUHgoc2Nyb2xsYmFyUGFuUHgpO1xuICAgICAgICAgIHRoaXMuX2xhc3REcmFnUG9zaXRpb24gPSBuZXdEcmFnUG9zaXRpb25QeDtcbiAgICAgICAgICB0aGlzLm1vdmVWaWV3cG9ydENsaWVudCh2aWV3cG9ydFBhblB4KTtcbiAgICAgICAgfSk7XG5cbiAgICAgIC8vIExpc3RlbiBmb3IgJ21vdXNldXAnIGV2ZW50czsgdXNlICdjYXB0dXJlIHBoYXNlJyBhbmQgJ3N0b3AgcHJvcGFnYXRpb24nIHRvIG5vdCBjbG9zZSBvdmVybGF5c1xuICAgICAgbWVyZ2UoZnJvbUV2ZW50PE1vdXNlRXZlbnQ+KHRoaXMuX2RvY3VtZW50LCAnbW91c2V1cCcsIHtjYXB0dXJlOiB0cnVlfSksIGZyb21FdmVudDxNb3VzZUV2ZW50Pih0aGlzLl9kb2N1bWVudCwgJ3NjaS1tb3VzZXVwJykpXG4gICAgICAgIC5waXBlKGZpcnN0KCksIHRha2VVbnRpbCh0aGlzLl9kZXN0cm95JCkpXG4gICAgICAgIC5zdWJzY3JpYmUobW91c2V1cEV2ZW50ID0+IHtcbiAgICAgICAgICBtb3VzZXVwRXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgbW91c2Vtb3ZlTGlzdGVuZXIudW5zdWJzY3JpYmUoKTtcbiAgICAgICAgICB0aGlzLl9sYXN0RHJhZ1Bvc2l0aW9uID0gbnVsbDtcbiAgICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICAvKiBAZG9jcy1wcml2YXRlICovXG4gIHB1YmxpYyBvblNjcm9sbFRyYWNrTW91c2VEb3duKGV2ZW50OiBNb3VzZUV2ZW50LCBkaXJlY3Rpb246ICd1cCcgfCAnZG93bicpOiB2b2lkIHtcbiAgICBjb25zdCBzaWdudW0gPSAoZGlyZWN0aW9uID09PSAndXAnID8gLTEgOiArMSk7XG4gICAgdGhpcy5zY3JvbGxXaGlsZU1vdXNlRG93bih0aGlzLnRvVmlld3BvcnRQYW5QeChzaWdudW0gKiB0aGlzLnRodW1iU2l6ZSksIGV2ZW50KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBQcm9qZWN0cyB0aGUgZ2l2ZW4gc2Nyb2xsYmFyIHNjcm9sbCBwaXhlbHMgaW50byB2aWV3cG9ydCBzY3JvbGwgcGl4ZWxzLlxuICAgKi9cbiAgcHJpdmF0ZSB0b1ZpZXdwb3J0UGFuUHgoc2Nyb2xsYmFyUGFuUHg6IG51bWJlcik6IG51bWJlciB7XG4gICAgY29uc3Qgc2Nyb2xsUmFuZ2VQeCA9IHRoaXMudHJhY2tTaXplIC0gdGhpcy50aHVtYlNpemU7XG4gICAgY29uc3Qgc2Nyb2xsUmF0aW8gPSBzY3JvbGxiYXJQYW5QeCAvIHNjcm9sbFJhbmdlUHg7XG4gICAgcmV0dXJuIHNjcm9sbFJhdGlvICogKHRoaXMudmlld3BvcnRDbGllbnRTaXplIC0gdGhpcy52aWV3cG9ydFNpemUpO1xuICB9XG5cbiAgLyoqXG4gICAqIE1vdmVzIHRoZSB2aWV3cG9ydCBjbGllbnQgYnkgdGhlIHNwZWNpZmllZCBudW1iZXJzIG9mIHBpeGVscy5cbiAgICovXG4gIHByaXZhdGUgbW92ZVZpZXdwb3J0Q2xpZW50KHZpZXdwb3J0UGFuUHg6IG51bWJlcik6IHZvaWQge1xuICAgIGlmICh0aGlzLnZlcnRpY2FsKSB7XG4gICAgICB0aGlzLl92aWV3cG9ydC5zY3JvbGxUb3AgKz0gdmlld3BvcnRQYW5QeDtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICB0aGlzLl92aWV3cG9ydC5zY3JvbGxMZWZ0ICs9IHZpZXdwb3J0UGFuUHg7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEluZGljYXRlcyBpZiB0aGUgY29udGVudCBvdmVyZmxvd3MuXG4gICAqL1xuICBwdWJsaWMgZ2V0IG92ZXJmbG93KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9vdmVyZmxvdztcbiAgfVxuXG4gIC8qKlxuICAgKiBTY3JvbGxzIGNvbnRpbnVvdXNseSB3aGlsZSBob2xkaW5nIHRoZSBtb3VzZSBwcmVzc2VkLCBvciB1bnRpbCB0aGUgbW91c2UgbGVhdmVzIHRoZSBzY3JvbGx0cmFjay5cbiAgICovXG4gIHByaXZhdGUgc2Nyb2xsV2hpbGVNb3VzZURvd24odmlld3BvcnRTY3JvbGxQeDogbnVtYmVyLCBtb3VzZWRvd25FdmVudDogTW91c2VFdmVudCk6IHZvaWQge1xuICAgIC8vIFRoZSBgRXZlbnRUYXJnZXRgIHR5cGUgb2YgYEV2ZW50LnRhcmdldGAgaXMgbm90IHlldCBjb21wYXRpYmxlIHdpdGggYEZyb21FdmVudFRhcmdldGAgdXNlZCBpbiBgZnJvbUV2ZW50YC5cbiAgICAvLyBUaGlzIHdpbGwgYmUgZml4ZWQgaW4gcnhqcyB2ZXJzaW9uIDcuMC4wLiBSZWZlciB0byBodHRwczovL2dpdGh1Yi5jb20vUmVhY3RpdmVYL3J4anMvY29tbWl0LzVmMDIyZDc4NDU3MDY4NDYzMmU2ZmQ1YWUyNDdmYzI1OWVlMzRjNGJcbiAgICAvLyBmb3IgbW9yZSBkZXRhaWxzLlxuICAgIGNvbnN0IHNjcm9sbFRyYWNrRWxlbWVudCA9IG1vdXNlZG93bkV2ZW50LnRhcmdldCBhcyBFbGVtZW50O1xuXG4gICAgLy8gc2Nyb2xsIGNvbnRpbnVvdXNseSBldmVyeSA1MG1zIGFmdGVyIGFuIGluaXRpYWwgZGVsYXkgb2YgMjUwbXNcbiAgICB0aW1lcigyNTAsIDUwKVxuICAgICAgLnBpcGUoXG4gICAgICAgIC8vIGNvbnRpbnVlIGNoYWluIHdpdGggbGF0ZXN0IG1vdXNlIGV2ZW50XG4gICAgICAgIHdpdGhMYXRlc3RGcm9tKG1lcmdlKG9mKG1vdXNlZG93bkV2ZW50KSwgZnJvbUV2ZW50PE1vdXNlRXZlbnQ+KHNjcm9sbFRyYWNrRWxlbWVudCwgJ21vdXNlbW92ZScpKSwgKHRpY2ssIGV2ZW50KSA9PiBldmVudCksXG4gICAgICAgIC8vIHN0YXJ0IGltbWVkaWF0ZWx5XG4gICAgICAgIHN0YXJ0V2l0aChtb3VzZWRvd25FdmVudCksXG4gICAgICAgIC8vIHN0b3Agc2Nyb2xsaW5nIGlmIHRoZSB0aHVtYiBoaXRzIHRoZSBtb3VzZSBwb2ludGVyIHBvc2l0aW9uXG4gICAgICAgIHRha2VXaGlsZSgoZXZlbnQ6IE1vdXNlRXZlbnQpID0+IHNjcm9sbFRyYWNrRWxlbWVudCA9PT0gdGhpcy5fZG9jdW1lbnQuZWxlbWVudEZyb21Qb2ludChldmVudC5jbGllbnRYLCBldmVudC5jbGllbnRZKSksXG4gICAgICAgIGRlYm91bmNlVGltZSgxMCksXG4gICAgICAgIC8vIHN0b3Agc2Nyb2xsaW5nIG9uIG1vdXNlb3V0IG9yIG1vdXNldXBcbiAgICAgICAgdGFrZVVudGlsKG1lcmdlKGZyb21FdmVudChzY3JvbGxUcmFja0VsZW1lbnQsICdtb3VzZW91dCcpLCBmcm9tRXZlbnQoc2Nyb2xsVHJhY2tFbGVtZW50LCAnbW91c2V1cCcpKSksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5tb3ZlVmlld3BvcnRDbGllbnQodmlld3BvcnRTY3JvbGxQeCk7XG4gICAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFbWl0cyB3aGVuZXZlciB0aGUgdmlld3BvcnQgc2Nyb2xscy5cbiAgICovXG4gIHByaXZhdGUgdmlld3BvcnRTY3JvbGxDaGFuZ2UkKCk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgIHJldHVybiBmcm9tRXZlbnQodGhpcy5fdmlld3BvcnQsICdzY3JvbGwnLCB7cGFzc2l2ZTogdHJ1ZX0pLnBpcGUobWFwKCgpID0+IHVuZGVmaW5lZCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIEVtaXRzIG9uIHN1YnNjcmlwdGlvbiwgYW5kIHRoZW4gZWFjaCB0aW1lIHRoZSBzaXplIG9mIHRoZSB2aWV3cG9ydCBjaGFuZ2VzLlxuICAgKi9cbiAgcHJpdmF0ZSB2aWV3cG9ydERpbWVuc2lvbkNoYW5nZSQob3B0aW9uczoge2RlYm91bmNlVGltZTogbnVtYmVyfSk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgIHJldHVybiBmcm9tRGltZW5zaW9uJCh0aGlzLl92aWV3cG9ydClcbiAgICAgIC5waXBlKFxuICAgICAgICAvLyBEZWJvdW5jaW5nIGlzIHBhcnRpY3VsYXJseSBpbXBvcnRhbnQgaW4gdGhlIGNvbnRleHQgb2YgQW5ndWxhciBhbmltYXRpb25zLCBzaW5jZSB0aGV5IGNvbnRpbnVvdXNseVxuICAgICAgICAvLyB0cmlnZ2VyIHJlc2l6ZSBldmVudHMuIERlYm91bmNpbmcgcHJldmVudHMgdGhlIHNjcm9sbGJhciBmcm9tIGZsaWNrZXJpbmcsIGZvciBleGFtcGxlLCB3aGVuIHRoZSB1c2VyXG4gICAgICAgIC8vIGV4cGFuZHMgYSBwYW5lbCB0aGF0IGNvbnRhaW5zIGEgdmlld3BvcnQuXG4gICAgICAgIGRlYm91bmNlVGltZShvcHRpb25zLmRlYm91bmNlVGltZSksXG4gICAgICAgIG1hcCgoKSA9PiB1bmRlZmluZWQpLFxuICAgICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFbWl0cyBvbiBzdWJzY3JpcHRpb24sIGFuZCB0aGVuIGVhY2ggdGltZSB0aGUgc2l6ZSBvciBzdHlsZSBwcm9wZXJ0eSBvZiB0aGUgdmlld3BvcnQgY2xpZW50IGNoYW5nZXMuXG4gICAqL1xuICBwcml2YXRlIHZpZXdwb3J0Q2xpZW50RGltZW5zaW9uQ2hhbmdlJChvcHRpb25zOiB7ZGVib3VuY2VUaW1lOiBudW1iZXJ9KTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMuY2hpbGRyZW4kKHRoaXMuX3ZpZXdwb3J0KVxuICAgICAgLnBpcGUoXG4gICAgICAgIHN3aXRjaE1hcChjaGlsZHJlbiA9PiBtZXJnZSguLi5jaGlsZHJlbi5tYXAoY2hpbGQgPT4gbWVyZ2UoXG4gICAgICAgICAgZnJvbURpbWVuc2lvbiQoY2hpbGQpLFxuICAgICAgICAgIC8vIE9ic2VydmUgc3R5bGUgbXV0YXRpb25zIHNpbmNlIHNvbWUgdHJhbnNmb3JtYXRpb25zIGNoYW5nZSB0aGUgc2Nyb2xsIHBvc2l0aW9uIHdpdGhvdXQgbmVjZXNzYXJpbHkgdHJpZ2dlcmluZyBhIGRpbWVuc2lvbiBjaGFuZ2UsXG4gICAgICAgICAgLy8gZS5nLiwgYHNjYWxlYCBvciBgdHJhbnNsYXRlYCB1c2VkIGJ5IHNvbWUgdmlydHVhbCBzY3JvbGwgaW1wbGVtZW50YXRpb25zXG4gICAgICAgICAgZnJvbU11dGF0aW9uJChjaGlsZCwge3N1YnRyZWU6IGZhbHNlLCBjaGlsZExpc3Q6IGZhbHNlLCBhdHRyaWJ1dGVGaWx0ZXI6IFsnc3R5bGUnXX0pKSxcbiAgICAgICAgKSkpLFxuICAgICAgICAvLyBEZWJvdW5jaW5nIGlzIHBhcnRpY3VsYXJseSBpbXBvcnRhbnQgaW4gdGhlIGNvbnRleHQgb2YgQW5ndWxhciBhbmltYXRpb25zLCBzaW5jZSB0aGV5IGNvbnRpbnVvdXNseVxuICAgICAgICAvLyB0cmlnZ2VyIHJlc2l6ZSBldmVudHMuIERlYm91bmNpbmcgcHJldmVudHMgdGhlIHNjcm9sbGJhciBmcm9tIGZsaWNrZXJpbmcsIGZvciBleGFtcGxlLCB3aGVuIHRoZSB1c2VyXG4gICAgICAgIC8vIGV4cGFuZHMgYSBwYW5lbCB0aGF0IGNvbnRhaW5zIGEgdmlld3BvcnQuXG4gICAgICAgIGRlYm91bmNlVGltZShvcHRpb25zLmRlYm91bmNlVGltZSksXG4gICAgICAgIG1hcCgoKSA9PiB1bmRlZmluZWQpLFxuICAgICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFbWl0cyB0aGUgY2hpbGRyZW4gb2YgdGhlIHBhc3NlZCBlbGVtZW50LCBhbmQgdGhlbiBlYWNoIHRpbWUgY2hpbGQgZWxlbWVudHMgYXJlIGFkZGVkIG9yIHJlbW92ZWQuXG4gICAqL1xuICBwcml2YXRlIGNoaWxkcmVuJChlbGVtZW50OiBIVE1MRWxlbWVudCk6IE9ic2VydmFibGU8SFRNTEVsZW1lbnRbXT4ge1xuICAgIHJldHVybiBmcm9tTXV0YXRpb24kKGVsZW1lbnQsIHtzdWJ0cmVlOiBmYWxzZSwgY2hpbGRMaXN0OiB0cnVlfSlcbiAgICAgIC5waXBlKFxuICAgICAgICBzdGFydFdpdGgodW5kZWZpbmVkIGFzIHZvaWQpLFxuICAgICAgICBtYXAoKCkgPT4gQXJyYXkuZnJvbShlbGVtZW50LmNoaWxkcmVuKSksXG4gICAgICAgIGZpbHRlckFycmF5KChjaGlsZDogRWxlbWVudCk6IGNoaWxkIGlzIEhUTUxFbGVtZW50ID0+IGNoaWxkIGluc3RhbmNlb2YgSFRNTEVsZW1lbnQpLFxuICAgICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0Q3NzVmFyaWFibGUoa2V5OiBzdHJpbmcsIHZhbHVlOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLl9ob3N0Lm5hdGl2ZUVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoa2V5LCB2YWx1ZSk7XG4gIH1cblxuICBwcml2YXRlIGdldCB2aWV3cG9ydFNpemUoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fdmlld3BvcnQgPyAodGhpcy52ZXJ0aWNhbCA/IHRoaXMuX3ZpZXdwb3J0LmNsaWVudEhlaWdodCA6IHRoaXMuX3ZpZXdwb3J0LmNsaWVudFdpZHRoKSA6IDA7XG4gIH1cblxuICBwcml2YXRlIGdldCB2aWV3cG9ydENsaWVudFNpemUoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fdmlld3BvcnQgPyAodGhpcy52ZXJ0aWNhbCA/IHRoaXMuX3ZpZXdwb3J0LnNjcm9sbEhlaWdodCA6IHRoaXMuX3ZpZXdwb3J0LnNjcm9sbFdpZHRoKSA6IDA7XG4gIH1cblxuICBwcml2YXRlIGdldCBzY3JvbGxQb3NpdGlvbigpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl92aWV3cG9ydCA/ICh0aGlzLnZlcnRpY2FsID8gdGhpcy5fdmlld3BvcnQuc2Nyb2xsVG9wIDogdGhpcy5fdmlld3BvcnQuc2Nyb2xsTGVmdCkgOiAwO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXQgdGh1bWJTaXplKCk6IG51bWJlciB7XG4gICAgY29uc3QgdGh1bWJFbGVtZW50ID0gdGhpcy50aHVtYkVsZW1lbnQubmF0aXZlRWxlbWVudDtcbiAgICByZXR1cm4gdGhpcy52ZXJ0aWNhbCA/IHRodW1iRWxlbWVudC5jbGllbnRIZWlnaHQgOiB0aHVtYkVsZW1lbnQuY2xpZW50V2lkdGg7XG4gIH1cblxuICBwcml2YXRlIGdldCB0cmFja1NpemUoKTogbnVtYmVyIHtcbiAgICBjb25zdCB0cmFja0VsZW1lbnQgPSB0aGlzLl9ob3N0Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgcmV0dXJuIHRoaXMudmVydGljYWwgPyB0cmFja0VsZW1lbnQuY2xpZW50SGVpZ2h0IDogdHJhY2tFbGVtZW50LmNsaWVudFdpZHRoO1xuICB9XG5cbiAgLyogQGRvY3MtcHJpdmF0ZSAqL1xuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5fZGVzdHJveSQubmV4dCgpO1xuICB9XG59XG4iLCI8IS0tIHNjcm9sbHRyYWNrIHRvIG1vdmUgdGhlIHZpZXdwb3J0IGNsaWVudCB1cHdhcmRzIChwYWdpbmcpIC0tPlxuPGRpdiBjbGFzcz1cInNjcm9sbHRyYWNrLXN0YXJ0XCIgKG1vdXNlZG93bik9XCJvblNjcm9sbFRyYWNrTW91c2VEb3duKCRldmVudCwgJ3VwJylcIj48L2Rpdj5cblxuPCEtLSBzY3JvbGx0aHVtYiAtLT5cbjxkaXYgI3RodW1iX2hhbmRsZVxuICAgICBjbGFzcz1cInRodW1iLWhhbmRsZVwiXG4gICAgIFtjbGFzcy52ZXJ0aWNhbF09XCJ2ZXJ0aWNhbFwiXG4gICAgIFtjbGFzcy5ob3Jpem9udGFsXT1cImhvcml6b250YWxcIlxuICAgICAobW91c2Vkb3duKT1cIm9uTW91c2VEb3duKCRldmVudClcIlxuICAgICAodG91Y2hzdGFydCk9XCJvblRvdWNoU3RhcnQoJGV2ZW50KVwiXG4gICAgICh0b3VjaG1vdmUpPVwib25Ub3VjaE1vdmUoJGV2ZW50KVwiXG4gICAgICh0b3VjaGVuZCk9XCJvblRvdWNoRW5kKCRldmVudClcIlxuICAgICAodG91Y2hjYW5jZWwpPVwib25Ub3VjaEVuZCgkZXZlbnQpXCI+XG4gIDxkaXYgY2xhc3M9XCJ0aHVtYlwiXG4gICAgICAgW2NsYXNzLnZlcnRpY2FsXT1cInZlcnRpY2FsXCJcbiAgICAgICBbY2xhc3MuaG9yaXpvbnRhbF09XCJob3Jpem9udGFsXCI+XG4gIDwvZGl2PlxuPC9kaXY+XG5cbjwhLS0gc2Nyb2xsdHJhY2sgdG8gbW92ZSB0aGUgdmlld3BvcnQgY2xpZW50IGRvd253YXJkcyAocGFnaW5nKSAtLT5cbjxkaXYgY2xhc3M9XCJzY3JvbGx0cmFjay1lbmRcIiAobW91c2Vkb3duKT1cIm9uU2Nyb2xsVHJhY2tNb3VzZURvd24oJGV2ZW50LCAnZG93bicpXCI+PC9kaXY+XG4iXX0=
|
|
@@ -95,7 +95,7 @@ export class SciViewportComponent {
|
|
|
95
95
|
}
|
|
96
96
|
/** @internal */
|
|
97
97
|
set setViewport(viewport) {
|
|
98
|
-
this.
|
|
98
|
+
this._viewportElement = coerceElement(viewport);
|
|
99
99
|
}
|
|
100
100
|
/** @internal */
|
|
101
101
|
set setViewportClient(viewportClient) {
|
|
@@ -112,7 +112,7 @@ export class SciViewportComponent {
|
|
|
112
112
|
return this._scrollbarStyle;
|
|
113
113
|
}
|
|
114
114
|
focus() {
|
|
115
|
-
this.
|
|
115
|
+
this._viewportElement?.focus();
|
|
116
116
|
}
|
|
117
117
|
onScroll(event) {
|
|
118
118
|
this.scroll.emit(event);
|
|
@@ -123,7 +123,7 @@ export class SciViewportComponent {
|
|
|
123
123
|
* @see Element.scrollTop
|
|
124
124
|
*/
|
|
125
125
|
get scrollTop() {
|
|
126
|
-
return this.
|
|
126
|
+
return this._viewportElement.scrollTop;
|
|
127
127
|
}
|
|
128
128
|
/**
|
|
129
129
|
* Sets the number of pixels that the viewport client is scrolled vertically.
|
|
@@ -131,7 +131,7 @@ export class SciViewportComponent {
|
|
|
131
131
|
* @see Element.scrollTop
|
|
132
132
|
*/
|
|
133
133
|
set scrollTop(scrollTop) {
|
|
134
|
-
this.
|
|
134
|
+
this._viewportElement.scrollTop = scrollTop;
|
|
135
135
|
}
|
|
136
136
|
/**
|
|
137
137
|
* Returns the number of pixels that the viewport client is scrolled horizontally.
|
|
@@ -139,7 +139,7 @@ export class SciViewportComponent {
|
|
|
139
139
|
* @see Element.scrollLeft
|
|
140
140
|
*/
|
|
141
141
|
get scrollLeft() {
|
|
142
|
-
return this.
|
|
142
|
+
return this._viewportElement.scrollLeft;
|
|
143
143
|
}
|
|
144
144
|
/**
|
|
145
145
|
* Sets the number of pixels that the viewport client is scrolled horizontally.
|
|
@@ -147,7 +147,7 @@ export class SciViewportComponent {
|
|
|
147
147
|
* @see Element.scrollLeft
|
|
148
148
|
*/
|
|
149
149
|
set scrollLeft(scrollLeft) {
|
|
150
|
-
this.
|
|
150
|
+
this._viewportElement.scrollLeft = scrollLeft;
|
|
151
151
|
}
|
|
152
152
|
/**
|
|
153
153
|
* Returns the height of the viewport client.
|
|
@@ -155,7 +155,7 @@ export class SciViewportComponent {
|
|
|
155
155
|
* @see Element.scrollHeight
|
|
156
156
|
*/
|
|
157
157
|
get scrollHeight() {
|
|
158
|
-
return this.
|
|
158
|
+
return this._viewportElement.scrollHeight;
|
|
159
159
|
}
|
|
160
160
|
/**
|
|
161
161
|
* Returns the width of the viewport client.
|
|
@@ -163,13 +163,13 @@ export class SciViewportComponent {
|
|
|
163
163
|
* @see Element.scrollWidth
|
|
164
164
|
*/
|
|
165
165
|
get scrollWidth() {
|
|
166
|
-
return this.
|
|
166
|
+
return this._viewportElement.scrollWidth;
|
|
167
167
|
}
|
|
168
168
|
/**
|
|
169
169
|
* Returns the viewport {HTMLElement}.
|
|
170
170
|
*/
|
|
171
171
|
get viewportElement() {
|
|
172
|
-
return this.
|
|
172
|
+
return this._viewportElement;
|
|
173
173
|
}
|
|
174
174
|
/**
|
|
175
175
|
* Returns the viewport client {HTMLElement}.
|
|
@@ -182,16 +182,18 @@ export class SciViewportComponent {
|
|
|
182
182
|
*
|
|
183
183
|
* @param element - the element to be checked
|
|
184
184
|
* @param fit - control if the element must fully or partially fit into the viewport
|
|
185
|
+
*
|
|
186
|
+
* @throws if the element is not contained in the viewport's slotted content.
|
|
185
187
|
*/
|
|
186
188
|
isElementInView(element, fit) {
|
|
187
189
|
const elLeft = this.computeOffset(element, 'left');
|
|
188
|
-
const elRight = elLeft + element.offsetWidth;
|
|
190
|
+
const elRight = elLeft + coerceElement(element).offsetWidth;
|
|
189
191
|
const elTop = this.computeOffset(element, 'top');
|
|
190
|
-
const elBottom = elTop + element.offsetHeight;
|
|
191
|
-
const vpLeft = this.
|
|
192
|
-
const vpRight = vpLeft + this.
|
|
193
|
-
const vpTop = this.
|
|
194
|
-
const vpBottom = vpTop + this.
|
|
192
|
+
const elBottom = elTop + coerceElement(element).offsetHeight;
|
|
193
|
+
const vpLeft = this._viewportElement.scrollLeft;
|
|
194
|
+
const vpRight = vpLeft + this._viewportElement.clientWidth;
|
|
195
|
+
const vpTop = this._viewportElement.scrollTop;
|
|
196
|
+
const vpBottom = vpTop + this._viewportElement.clientHeight;
|
|
195
197
|
switch (fit) {
|
|
196
198
|
case 'full':
|
|
197
199
|
return (elLeft >= vpLeft && elRight <= vpRight) && (elTop >= vpTop && elBottom <= vpBottom);
|
|
@@ -206,30 +208,34 @@ export class SciViewportComponent {
|
|
|
206
208
|
*
|
|
207
209
|
* @param element - the element to scroll into the viewport
|
|
208
210
|
* @param offset - the gap between the element and the viewport
|
|
211
|
+
*
|
|
212
|
+
* @throws if the element is not contained in the viewport's slotted content.
|
|
209
213
|
*/
|
|
210
214
|
scrollIntoView(element, offset = 50) {
|
|
211
|
-
this.
|
|
212
|
-
this.
|
|
215
|
+
this._viewportElement.scrollTop = this.computeOffset(element, 'top') - offset;
|
|
216
|
+
this._viewportElement.scrollLeft = this.computeOffset(element, 'left') - offset;
|
|
213
217
|
}
|
|
214
218
|
/**
|
|
215
219
|
* Computes the distance of the element to the viewport's left or top border.
|
|
220
|
+
*
|
|
221
|
+
* @throws if the element is not contained in the viewport's slotted content.
|
|
216
222
|
*/
|
|
217
223
|
computeOffset(element, border) {
|
|
218
|
-
if (!isChildOf(element, this._viewport)) {
|
|
219
|
-
throw Error('element not a child of the viewport');
|
|
220
|
-
}
|
|
221
224
|
let offset = 0;
|
|
222
|
-
let el = element;
|
|
225
|
+
let el = coerceElement(element);
|
|
223
226
|
do {
|
|
224
227
|
offset += (border === 'left' ? el.offsetLeft : el.offsetTop);
|
|
225
228
|
el = el.offsetParent;
|
|
226
|
-
|
|
229
|
+
if (el === null) {
|
|
230
|
+
throw Error(`[ElementNotContainedError] Element not contained in the viewport's slotted content`);
|
|
231
|
+
}
|
|
232
|
+
} while (el !== this.host.nativeElement);
|
|
227
233
|
return offset;
|
|
228
234
|
}
|
|
229
235
|
}
|
|
230
|
-
SciViewportComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
231
|
-
SciViewportComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
232
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
236
|
+
SciViewportComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: SciViewportComponent, deps: [{ token: i0.ElementRef }, { token: i1.SciNativeScrollbarTrackSizeProvider }], target: i0.ɵɵFactoryTarget.Component });
|
|
237
|
+
SciViewportComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.2", type: SciViewportComponent, selector: "sci-viewport", inputs: { scrollbarStyle: "scrollbarStyle" }, outputs: { scroll: "scroll" }, host: { listeners: { "focus": "focus()" } }, viewQueries: [{ propertyName: "setViewport", first: true, predicate: ["viewport"], descendants: true, static: true }, { propertyName: "setViewportClient", first: true, predicate: ["viewport_client"], descendants: true, static: true }], ngImport: i0, template: "<!-- viewport and viewport client -->\n<div #viewport\n class=\"viewport\"\n tabindex=\"-1\"\n sciScrollable [sciScrollableDisplayNativeScrollbar]=\"scrollbarStyle === 'native'\"\n cdkScrollable\n (scroll)=\"onScroll($event)\">\n <div #viewport_client class=\"viewport-client\" part=\"content\">\n <slot></slot>\n </div>\n</div>\n\n<!-- render emulated scrollbars which sit on-top -->\n<ng-container *ngIf=\"scrollbarStyle === 'on-top' && (nativeScrollbarTrackSizeProvider.trackSize$ | async) !== null\">\n <sci-scrollbar [direction]=\"'vscroll'\" [viewport]=\"viewport\"></sci-scrollbar>\n <sci-scrollbar [direction]=\"'hscroll'\" [viewport]=\"viewport\"></sci-scrollbar>\n</ng-container>\n", styles: [":host{--sci-viewport-content-grid-template-columns: auto;--sci-viewport-content-grid-template-rows: unset;--sci-viewport-content-grid-auto-columns: unset;--sci-viewport-content-grid-auto-rows: auto;--sci-viewport-content-grid-gap: 0 0;--sci-viewport-scrollbar-color: rgb(78, 78, 78);display:grid;grid-template-columns:100%;grid-template-rows:100%;position:relative;overflow:hidden;outline:none}:host:not(:hover):not(:active) sci-scrollbar:not(.scrolling){opacity:0}:host>div.viewport{display:grid;position:relative;outline:none;-webkit-overflow-scrolling:touch}:host>div.viewport>div.viewport-client{display:grid;grid-template-columns:var(--sci-viewport-content-grid-template-columns);grid-template-rows:var(--sci-viewport-content-grid-template-rows);grid-auto-rows:var(--sci-viewport-content-grid-auto-rows);grid-auto-columns:var(--sci-viewport-content-grid-auto-columns);gap:var(--sci-viewport-content-grid-gap)}:host>sci-scrollbar{--sci-scrollbar-color: var(--sci-viewport-scrollbar-color);position:absolute;transition-duration:1s;transition-property:opacity;transition-timing-function:ease-out}:host>sci-scrollbar.vertical{top:0;right:0;bottom:0;left:unset;width:12px}:host>sci-scrollbar.horizontal{top:unset;right:0;bottom:0;left:0;height:12px}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.CdkScrollable, selector: "[cdk-scrollable], [cdkScrollable]" }, { kind: "component", type: i4.SciScrollbarComponent, selector: "sci-scrollbar", inputs: ["direction", "viewport"] }, { kind: "directive", type: i5.SciScrollableDirective, selector: "[sciScrollable]", inputs: ["sciScrollableDisplayNativeScrollbar"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }], encapsulation: i0.ViewEncapsulation.ShadowDom });
|
|
238
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: SciViewportComponent, decorators: [{
|
|
233
239
|
type: Component,
|
|
234
240
|
args: [{ selector: 'sci-viewport', encapsulation: ViewEncapsulation.ShadowDom, template: "<!-- viewport and viewport client -->\n<div #viewport\n class=\"viewport\"\n tabindex=\"-1\"\n sciScrollable [sciScrollableDisplayNativeScrollbar]=\"scrollbarStyle === 'native'\"\n cdkScrollable\n (scroll)=\"onScroll($event)\">\n <div #viewport_client class=\"viewport-client\" part=\"content\">\n <slot></slot>\n </div>\n</div>\n\n<!-- render emulated scrollbars which sit on-top -->\n<ng-container *ngIf=\"scrollbarStyle === 'on-top' && (nativeScrollbarTrackSizeProvider.trackSize$ | async) !== null\">\n <sci-scrollbar [direction]=\"'vscroll'\" [viewport]=\"viewport\"></sci-scrollbar>\n <sci-scrollbar [direction]=\"'hscroll'\" [viewport]=\"viewport\"></sci-scrollbar>\n</ng-container>\n", styles: [":host{--sci-viewport-content-grid-template-columns: auto;--sci-viewport-content-grid-template-rows: unset;--sci-viewport-content-grid-auto-columns: unset;--sci-viewport-content-grid-auto-rows: auto;--sci-viewport-content-grid-gap: 0 0;--sci-viewport-scrollbar-color: rgb(78, 78, 78);display:grid;grid-template-columns:100%;grid-template-rows:100%;position:relative;overflow:hidden;outline:none}:host:not(:hover):not(:active) sci-scrollbar:not(.scrolling){opacity:0}:host>div.viewport{display:grid;position:relative;outline:none;-webkit-overflow-scrolling:touch}:host>div.viewport>div.viewport-client{display:grid;grid-template-columns:var(--sci-viewport-content-grid-template-columns);grid-template-rows:var(--sci-viewport-content-grid-template-rows);grid-auto-rows:var(--sci-viewport-content-grid-auto-rows);grid-auto-columns:var(--sci-viewport-content-grid-auto-columns);gap:var(--sci-viewport-content-grid-gap)}:host>sci-scrollbar{--sci-scrollbar-color: var(--sci-viewport-scrollbar-color);position:absolute;transition-duration:1s;transition-property:opacity;transition-timing-function:ease-out}:host>sci-scrollbar.vertical{top:0;right:0;bottom:0;left:unset;width:12px}:host>sci-scrollbar.horizontal{top:unset;right:0;bottom:0;left:0;height:12px}\n"] }]
|
|
235
241
|
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.SciNativeScrollbarTrackSizeProvider }]; }, propDecorators: { setViewport: [{
|
|
@@ -246,16 +252,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.2", ngImpor
|
|
|
246
252
|
type: HostListener,
|
|
247
253
|
args: ['focus']
|
|
248
254
|
}] } });
|
|
249
|
-
/**
|
|
250
|
-
* Returns 'true' if the given element is a child element of the parent element.
|
|
251
|
-
*/
|
|
252
|
-
function isChildOf(element, parent) {
|
|
253
|
-
while (element.parentElement !== null) {
|
|
254
|
-
element = element.parentElement;
|
|
255
|
-
if (element === parent) {
|
|
256
|
-
return true;
|
|
257
|
-
}
|
|
258
|
-
}
|
|
259
|
-
return false;
|
|
260
|
-
}
|
|
261
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlld3BvcnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2Npb24vY29tcG9uZW50cy92aWV3cG9ydC9zcmMvdmlld3BvcnQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2Npb24vY29tcG9uZW50cy92aWV3cG9ydC9zcmMvdmlld3BvcnQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7O0dBUUc7QUFFSCxPQUFPLEVBQUMsU0FBUyxFQUFjLFlBQVksRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFN0gsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLHVCQUF1QixDQUFDOzs7Ozs7O0FBRXBEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQWlFRztBQU9ILE1BQU0sT0FBTyxvQkFBb0I7SUF1Qy9CLFlBQW1CLElBQTZCLEVBQVMsZ0NBQXFFO1FBQTNHLFNBQUksR0FBSixJQUFJLENBQXlCO1FBQVMscUNBQWdDLEdBQWhDLGdDQUFnQyxDQUFxQztRQW5DdEgsb0JBQWUsR0FBbUIsUUFBUSxDQUFDO1FBMkJuRDs7OztXQUlHO1FBRUksV0FBTSxHQUFHLElBQUksWUFBWSxFQUFTLENBQUMsQ0FBQyx1REFBdUQ7SUFHbEcsQ0FBQztJQWxDRCxnQkFBZ0I7SUFDaEIsSUFDVyxXQUFXLENBQUMsUUFBb0M7UUFDekQsSUFBSSxDQUFDLFNBQVMsR0FBRyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVELGdCQUFnQjtJQUNoQixJQUNXLGlCQUFpQixDQUFDLGNBQTBDO1FBQ3JFLElBQUksQ0FBQyxlQUFlLEdBQUcsYUFBYSxDQUFDLGNBQWMsQ0FBQyxD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c0JBRDNCLFNBQVM7dUJBQUMsaUJBQWlCLEVBQUUsRUFBQyxNQUFNLEVBQUUsSUFBSSxFQUFDO2dCQVVqQyxjQUFjO3NCQUR4QixLQUFLO2dCQWVDLE1BQU07c0JBRFosTUFBTTtnQkFPQSxLQUFLO3NCQURYLFlBQVk7dUJBQUMsT0FBTzs7QUFzSXZCOztHQUVHO0FBQ0gsU0FBUyxTQUFTLENBQUMsT0FBZ0IsRUFBRSxNQUFlO0lBQ2xELE9BQU8sT0FBTyxDQUFDLGFBQWEsS0FBSyxJQUFJLEVBQUU7UUFDckMsT0FBTyxHQUFHLE9BQU8sQ0FBQyxhQUFhLENBQUM7UUFDaEMsSUFBSSxPQUFPLEtBQUssTUFBTSxFQUFFO1lBQ3RCLE9BQU8sSUFBSSxDQUFDO1NBQ2I7S0FDRjtJQUNELE9BQU8sS0FBSyxDQUFDO0FBQ2YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTgtMjAxOSBTd2lzcyBGZWRlcmFsIFJhaWx3YXlzXG4gKlxuICogVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscyBhcmUgbWFkZVxuICogYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSAyLjBcbiAqIHdoaWNoIGlzIGF2YWlsYWJsZSBhdCBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wL1xuICpcbiAqICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogRVBMLTIuMFxuICovXG5cbmltcG9ydCB7Q29tcG9uZW50LCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIEhvc3RMaXN0ZW5lciwgSW5wdXQsIE91dHB1dCwgVmlld0NoaWxkLCBWaWV3RW5jYXBzdWxhdGlvbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1NjaU5hdGl2ZVNjcm9sbGJhclRyYWNrU2l6ZVByb3ZpZGVyfSBmcm9tICcuL25hdGl2ZS1zY3JvbGxiYXItdHJhY2stc2l6ZS1wcm92aWRlci5zZXJ2aWNlJztcbmltcG9ydCB7Y29lcmNlRWxlbWVudH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcblxuLyoqXG4gKiBSZXByZXNlbnRzIGEgdmlld3BvcnQgd2l0aCBzbG90dGVkIGNvbnRlbnQgKGA8bmctY29udGVudD5gKSB1c2VkIGFzIHNjcm9sbGFibGUgY29udGVudC4gQnkgZGVmYXVsdCwgY29udGVudCBpcyBhZGRlZCB0byBhIENTUyBncmlkIGxheW91dC5cbiAqXG4gKiBUaGUgdmlld3BvcnQgY29tcG9uZW50IGRpc3BsYXlzIHNjcm9sbGJhcnMgd2hlbiBpdHMgY29udGVudCBvdmVyZmxvd3MuIFNjcm9sbGJhcnMgYXJlIGRpc3BsYXllZCBvbiB0b3Agb2YgdGhlIGNvbnRlbnQsIG5vdCBuZXh0IHRvIGl0LlxuICogVGhlIGNvbXBvbmVudCB1c2VzIHRoZSBuYXRpdmUgc2Nyb2xsYmFycyBvZiB0aGUgb3BlcmF0aW5nIHN5c3RlbSBpZiB0aGV5IGFyZSBhbHJlYWR5IHNpdHRpbmcgb24gdG9wLCBvciBmYWxscyBiYWNrIGFuZCByZW5kZXJzIHNjcm9sbGJhcnMgb24gdG9wIG90aGVyd2lzZS5cbiAqIFRoZSB2aWV3cG9ydCByZW1haW5zIG5hdGl2ZWx5IHNjcm9sbGFibGUgd2l0aCB0aGUgbmF0aXZlIHNjcm9sbGJhcnMgc2hpZnRlZCBvdXQgb2YgdGhlIHZpZXdwb3J0J3MgdmlzaWJsZSBhcmVhLiBDb25zZXF1ZW50bHksIHRoZSB2aWV3cG9ydCBrZWVwcyBzdXBwb3J0aW5nXG4gKiBuYXRpdmUgc2Nyb2xsaW5nIGZlYXR1cmVzIHN1Y2ggYXMgdG91Y2ggZ2VzdHVyZXMsIHNjcm9sbCBzcGVlZCBhY2NlbGVyYXRpb24sIG9yIHNjcm9sbGluZyBuZWFyIHRoZSB2aWV3cG9ydCBlZGdlcyBkdXJpbmcgZHJhZy1hbmQtZHJvcCBvcGVyYXRpb25zLlxuICpcbiAqIGBgYGh0bWxcbiAqIDxzY2ktdmlld3BvcnQ+XG4gKiAgIHlvdXIgY29udGVudFxuICogPC9zY2ktdmlld3BvcnQ+XG4gKiBgYGBcbiAqXG4gKiAjIyBBZGRpbmcgdGhlIHZpZXdwb3J0IHRvIGEgbGF5b3V0XG4gKlxuICogVHlwaWNhbGx5IHlvdSB3b3VsZCBhZGQgdGhlIHZpZXdwb3J0IGNvbXBvbmVudCB0byBhIGZsZXhpYmxlIGxheW91dCwgZmlsbGluZyB0aGUgcmVtYWluaW5nIHNwYWNlIHZlcnRpY2FsbHkgYW5kIGhvcml6b250YWxseSwgc3VjaCBhcyBhIGZsZXhib3ggY29udGFpbmVyXG4gKiB3aXRoIHRoZSB2aWV3cG9ydCdzIGBmbGV4YCBDU1MgcHJvcGVydHkgc2V0IHRvIGVpdGhlciBgZmxleDogYXV0b2Agb3IgYGZsZXg6IDEgMSAwYC5cbiAqXG4gKiBUaGUgdmlld3BvcnQgaXMgc2l6ZWQgYWNjb3JkaW5nIHRvIGl0cyBjb250ZW50IHdpZHRoIGFuZCBoZWlnaHQuIEl0IGdyb3dzIHRvIGFic29yYiBhbnkgZnJlZSBzcGFjZSwgdGh1cyBvdmVyZmxvd2luZyBpdHMgY29udGVudCBvbmx5IHdoZW4gZW5jb3VudGVyaW5nXG4gKiBhIGxheW91dCBjb25zdHJhaW50LiBEZXBlbmRpbmcgb24gdGhlIGxheW91dCwgZGlmZmVyZW50IHN0ZXBzIG1heSBiZSBuZWNlc3NhcnkgdG8gcHJldmVudCB0aGUgdmlld3BvcnQgZnJvbSBncm93aW5nIHRvIGluZmluaXR5LlxuICpcbiAqIC0gSWYgcHJhY3RpY2FsLCBnaXZlIHRoZSB2aWV3cG9ydCBhIGZpeGVkIHNpemUgb3IgYSBtYXhpbXVtIHNpemUuXG4gKiAtIElmIHlvdSBhZGQgdGhlIHZpZXdwb3J0IHRvIGEgZmxleGJveCBsYXlvdXQsIG1ha2Ugc3VyZSB0aGF0IGl0IGNhbm5vdCBleGNlZWQgdGhlIGF2YWlsYWJsZSBzcGFjZS4gSW5zdGVhZCwgdGhlIHZpZXdwb3J0IHNob3VsZCBmaWxsIHRoZSByZW1haW5pbmcgc3BhY2UsXG4gKiAgIHZlcnRpY2FsbHkgYW5kIGhvcml6b250YWxseS4gQmUgYXdhcmUgdGhhdCwgYnkgZGVmYXVsdCwgYSBmbGV4IGl0ZW0gZG9lcyBub3Qgc2hyaW5rIGJlbG93IGl0cyBtaW5pbXVtIGNvbnRlbnQgc2l6ZS4gVG8gY2hhbmdlIHRoaXMsIHNldCB0aGUgdmlld3BvcnQnc1xuICogICBgZmxleC1iYXNpc2AgdG8gYDBgIChpbnN0ZWFkIG9mIGBhdXRvYCksIG9yIHVzZSB0aGUgQ1NTIHNob3J0aGFuZCBwcm9wZXJ0eSBgZmxleDogMSAxIDBgLiBUaGUgYGZsZXgtYmFzaXNgIGRlZmluZXMgdGhlIGRlZmF1bHQgc2l6ZSBvZiBhIGZsZXggaXRlbSBiZWZvcmVcbiAqICAgdGhlIHJlbWFpbmluZyBleHRyYSBzcGFjZSBpcyBkaXN0cmlidXRlZC4gSWYgdGhlIHZpZXdwb3J0IGRvZXMgbm90IGFwcGVhciBhZnRlciBzZXR0aW5nIHRoaXMgcHJvcGVydHksIGNoZWNrIGl0cyBwYXJlbnQgZWxlbWVudHMnIGNvbnRlbnQgc2l6ZXMuXG4gKiAgIEFzIGFuIGFsdGVybmF0aXZlIHRvIHNldHRpbmcgYGZsZXg6IDEgMSAwYCwgY2hhbmdlIHRoZSBzZXR0aW5nIHRvIGBmbGV4OiBhdXRvYCBhbmQgaGlkZSB0aGUgb3ZlcmZsb3cgaW4gdGhlIHBhcmVudCBlbGVtZW50LCBhcyBmb2xsb3dzOiBgb3ZlcmZsb3c6IGhpZGRlbmAuXG4gKiAgIEFub3RoZXIgYXBwcm9hY2ggd291bGQgYmUgdG8gc2V0IHRoZSBtaW5pbXVtIGhlaWdodCBvZiBhbGwgcGFyZW50cyB0byBgMGAsIGFzIGZvbGxvd3M6IGBtaW4taGVpZ2h0OiAwYC5cbiAqXG4gKiAgIEZvciB0aGUgY29tcGxldGUgZG9jdW1lbnRhdGlvbiBvbiB0aGUgZmxleCBsYXlvdXQgYW5kIGl0cyBmZWF0dXJlcywgcmVmZXIgdG8gaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQ1NTL2ZsZXguXG4gKlxuICpcbiAqICMjIExheW91dGluZyB0aGUgdmlld3BvcnQncyBzbG90dGVkIGNvbnRlbnRcbiAqXG4gKiBCeSBkZWZhdWx0LCB0aGUgdmlld3BvcnQncyBjb250ZW50IGlzIGFkZGVkIHRvIGEgQ1NTIGdyaWQgY29udGFpbmVyIHdpdGggYSBzaW5nbGUgY29sdW1uLCBmaWxsaW5nIHJlbWFpbmluZyBzcGFjZSB2ZXJ0aWNhbGx5IGFuZCBob3Jpem9udGFsbHkuXG4gKiBVc2luZyB0aGUgYDo6cGFydChjb250ZW50KWAgcHNldWRvIGVsZW1lbnQgc2VsZWN0b3IsIHlvdSBjYW4gY29uZmlndXJlIHRoZSBncmlkIGNvbnRhaW5lciBvciBhcHBseSBhIGRpZmZlcmVudCBsYXlvdXQsIHN1Y2ggYXMgYSBmbGV4IG9yIGZsb3cgbGF5b3V0LlxuICpcbiAqICMjIyMgRXhhbXBsZSBvZiBhZGRpbmcgc2xvdHRlZCBjb250ZW50IHRvIGEgQ1NTIGZsZXggY29udGFpbmVyLlxuICogYGBgY3NzXG4gKiBzY2ktdmlld3BvcnQ6OnBhcnQoY29udGVudCkge1xuICogICBkaXNwbGF5OiBmbGV4O1xuICogICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICogfVxuICogYGBgXG4gKlxuICogIyMjIyBFeGFtcGxlIG9mIGNvbmZpZ3VyaW5nIENTUyBncmlkIGNvbnRhaW5lciB3aXRoIHR3byBjb2x1bW5zXG4gKiBgYGBjc3NcbiAqIHNjaS12aWV3cG9ydDo6cGFydChjb250ZW50KSB7XG4gKiAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmcjtcbiAqICAgZ2FwOiAxZW07XG4gKiB9XG4gKiBgYGBcbiAqXG4gKiAjIyBTdHlsaW5nIG9mIHNjcm9sbGJhcnNcbiAqXG4gKiBZb3UgY2FuIG92ZXJyaWRlIHRoZSBmb2xsb3dpbmcgQ1NTIHZhcmlhYmxlcyB0byBjb250cm9sIHRoZSBhcHBlYXJhbmNlIG9mIHRoZSBzY3JvbGxiYXI6XG4gKlxuICogLSBzY2ktdmlld3BvcnQtc2Nyb2xsYmFyLWNvbG9yOiAgICAgU2V0cyB0aGUgY29sb3Igb2YgdGhlIHNjcm9sbGJhciAoYnkgZGVmYXVsdCwgdXNlcyBgcmdiKDc4LCA3OCwgNzgpYCkuXG4gKlxuICogYGBgY3NzXG4gKiBzY2ktdmlld3BvcnQge1xuICogICAtLXNjaS12aWV3cG9ydC1zY3JvbGxiYXItY29sb3I6IGJsdWU7XG4gKiB9XG4gKiBgYGBcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2NpLXZpZXdwb3J0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3ZpZXdwb3J0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vdmlld3BvcnQuY29tcG9uZW50LnNjc3MnXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uU2hhZG93RG9tLFxufSlcbmV4cG9ydCBjbGFzcyBTY2lWaWV3cG9ydENvbXBvbmVudCB7XG5cbiAgcHJpdmF0ZSBfdmlld3BvcnQhOiBIVE1MRGl2RWxlbWVudDtcbiAgcHJpdmF0ZSBfdmlld3BvcnRDbGllbnQhOiBIVE1MRGl2RWxlbWVudDtcbiAgcHJpdmF0ZSBfc2Nyb2xsYmFyU3R5bGU6IFNjcm9sbGJhclN0eWxlID0gJ29uLXRvcCc7XG5cbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBAVmlld0NoaWxkKCd2aWV3cG9ydCcsIHtzdGF0aWM6IHRydWV9KVxuICBwdWJsaWMgc2V0IHNldFZpZXdwb3J0KHZpZXdwb3J0OiBFbGVtZW50UmVmPEhUTUxEaXZFbGVtZW50Pikge1xuICAgIHRoaXMuX3ZpZXdwb3J0ID0gY29lcmNlRWxlbWVudCh2aWV3cG9ydCk7XG4gIH1cblxuICAvKiogQGludGVybmFsICovXG4gIEBWaWV3Q2hpbGQoJ3ZpZXdwb3J0X2NsaWVudCcsIHtzdGF0aWM6IHRydWV9KVxuICBwdWJsaWMgc2V0IHNldFZpZXdwb3J0Q2xpZW50KHZpZXdwb3J0Q2xpZW50OiBFbGVtZW50UmVmPEhUTUxEaXZFbGVtZW50Pikge1xuICAgIHRoaXMuX3ZpZXdwb3J0Q2xpZW50ID0gY29lcmNlRWxlbWVudCh2aWV3cG9ydENsaWVudCk7XG4gIH1cblxuICAvKipcbiAgICogQ29udHJvbHMgd2hldGhlciB0byB1c2UgbmF0aXZlIHNjcm9sbGJhcnMgb3IsIHdoaWNoIGlzIGJ5IGRlZmF1bHQsIGVtdWxhdGVkIHNjcm9sbGJhcnMgdGhhdCBzaXQgb24gdG9wIG9mIHRoZSB2aWV3cG9ydCBjbGllbnQuXG4gICAqIEluIHRoZSBsYXR0ZXIsIHRoZSB2aWV3cG9ydCBjbGllbnQgcmVtYWlucyBuYXRpdmVseSBzY3JvbGxhYmxlLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBzY3JvbGxiYXJTdHlsZShzY3JvbGxiYXJTdHlsZTogU2Nyb2xsYmFyU3R5bGUpIHtcbiAgICB0aGlzLl9zY3JvbGxiYXJTdHlsZSA9IHNjcm9sbGJhclN0eWxlIHx8ICdvbi10b3AnO1xuICB9XG5cbiAgcHVibGljIGdldCBzY3JvbGxiYXJTdHlsZSgpOiBTY3JvbGxiYXJTdHlsZSB7XG4gICAgcmV0dXJuIHRoaXMuX3Njcm9sbGJhclN0eWxlO1xuICB9XG5cbiAgLyoqXG4gICAqIEVtaXRzIHVwb24gYSBzY3JvbGwgZXZlbnQuXG4gICAqXG4gICAqIFlvdSBjYW4gYWRkIFtzY2lEaW1lbnNpb25dIGRpcmVjdGl2ZSB0byB0aGUgdmlld3BvcnQgb3Igdmlld3BvcnQgY2xpZW50IHRvIGJlIG5vdGlmaWVkIGFib3V0IGxheW91dCBjaGFuZ2VzLlxuICAgKi9cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBzY3JvbGwgPSBuZXcgRXZlbnRFbWl0dGVyPEV2ZW50PigpOyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIEBhbmd1bGFyLWVzbGludC9uby1vdXRwdXQtbmF0aXZlXG5cbiAgY29uc3RydWN0b3IocHVibGljIGhvc3Q6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LCBwdWJsaWMgbmF0aXZlU2Nyb2xsYmFyVHJhY2tTaXplUHJvdmlkZXI6IFNjaU5hdGl2ZVNjcm9sbGJhclRyYWNrU2l6ZVByb3ZpZGVyKSB7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdmb2N1cycpXG4gIHB1YmxpYyBmb2N1cygpOiB2b2lkIHsgLy8gZG8gbm90IHJlbmFtZSB0byBleHBvc2UgdGhlIHNhbWUgZm9jdXMgbWV0aG9kIGxpa2UgYEhUTUxFbGVtZW50LmZvY3VzKClgLlxuICAgIHRoaXMuX3ZpZXdwb3J0ICYmIHRoaXMuX3ZpZXdwb3J0LmZvY3VzKCk7XG4gIH1cblxuICBwdWJsaWMgb25TY3JvbGwoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgdGhpcy5zY3JvbGwuZW1pdChldmVudCk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgbnVtYmVyIG9mIHBpeGVscyB0aGF0IHRoZSB2aWV3cG9ydCBjbGllbnQgaXMgc2Nyb2xsZWQgdmVydGljYWxseS5cbiAgICpcbiAgICogQHNlZSBFbGVtZW50LnNjcm9sbFRvcFxuICAgKi9cbiAgcHVibGljIGdldCBzY3JvbGxUb3AoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fdmlld3BvcnQuc2Nyb2xsVG9wO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIG51bWJlciBvZiBwaXhlbHMgdGhhdCB0aGUgdmlld3BvcnQgY2xpZW50IGlzIHNjcm9sbGVkIHZlcnRpY2FsbHkuXG4gICAqXG4gICAqIEBzZWUgRWxlbWVudC5zY3JvbGxUb3BcbiAgICovXG4gIHB1YmxpYyBzZXQgc2Nyb2xsVG9wKHNjcm9sbFRvcDogbnVtYmVyKSB7XG4gICAgdGhpcy5fdmlld3BvcnQuc2Nyb2xsVG9wID0gc2Nyb2xsVG9wO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIG51bWJlciBvZiBwaXhlbHMgdGhhdCB0aGUgdmlld3BvcnQgY2xpZW50IGlzIHNjcm9sbGVkIGhvcml6b250YWxseS5cbiAgICpcbiAgICogQHNlZSBFbGVtZW50LnNjcm9sbExlZnRcbiAgICovXG4gIHB1YmxpYyBnZXQgc2Nyb2xsTGVmdCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl92aWV3cG9ydC5zY3JvbGxMZWZ0O1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIG51bWJlciBvZiBwaXhlbHMgdGhhdCB0aGUgdmlld3BvcnQgY2xpZW50IGlzIHNjcm9sbGVkIGhvcml6b250YWxseS5cbiAgICpcbiAgICogQHNlZSBFbGVtZW50LnNjcm9sbExlZnRcbiAgICovXG4gIHB1YmxpYyBzZXQgc2Nyb2xsTGVmdChzY3JvbGxMZWZ0OiBudW1iZXIpIHtcbiAgICB0aGlzLl92aWV3cG9ydC5zY3JvbGxMZWZ0ID0gc2Nyb2xsTGVmdDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBoZWlnaHQgb2YgdGhlIHZpZXdwb3J0IGNsaWVudC5cbiAgICpcbiAgICogQHNlZSBFbGVtZW50LnNjcm9sbEhlaWdodFxuICAgKi9cbiAgcHVibGljIGdldCBzY3JvbGxIZWlnaHQoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fdmlld3BvcnQuc2Nyb2xsSGVpZ2h0O1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIHdpZHRoIG9mIHRoZSB2aWV3cG9ydCBjbGllbnQuXG4gICAqXG4gICAqIEBzZWUgRWxlbWVudC5zY3JvbGxXaWR0aFxuICAgKi9cbiAgcHVibGljIGdldCBzY3JvbGxXaWR0aCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl92aWV3cG9ydC5zY3JvbGxXaWR0aDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSB2aWV3cG9ydCB7SFRNTEVsZW1lbnR9LlxuICAgKi9cbiAgcHVibGljIGdldCB2aWV3cG9ydEVsZW1lbnQoKTogSFRNTEVsZW1lbnQge1xuICAgIHJldHVybiB0aGlzLl92aWV3cG9ydDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSB2aWV3cG9ydCBjbGllbnQge0hUTUxFbGVtZW50fS5cbiAgICovXG4gIHB1YmxpYyBnZXQgdmlld3BvcnRDbGllbnRFbGVtZW50KCk6IEhUTUxFbGVtZW50IHtcbiAgICByZXR1cm4gdGhpcy5fdmlld3BvcnRDbGllbnQ7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2tzIGlmIHRoZSBzcGVjaWZpZWQgZWxlbWVudCBpcyBzY3JvbGxlZCBpbnRvIHRoZSB2aWV3cG9ydC5cbiAgICpcbiAgICogQHBhcmFtIGVsZW1lbnQgLSB0aGUgZWxlbWVudCB0byBiZSBjaGVja2VkXG4gICAqIEBwYXJhbSBmaXQgLSBjb250cm9sIGlmIHRoZSBlbGVtZW50IG11c3QgZnVsbHkgb3IgcGFydGlhbGx5IGZpdCBpbnRvIHRoZSB2aWV3cG9ydFxuICAgKi9cbiAgcHVibGljIGlzRWxlbWVudEluVmlldyhlbGVtZW50OiBIVE1MRWxlbWVudCwgZml0OiAnZnVsbCcgfCAncGFydGlhbCcpOiBib29sZWFuIHtcbiAgICBjb25zdCBlbExlZnQgPSB0aGlzLmNvbXB1dGVPZmZzZXQoZWxlbWVudCwgJ2xlZnQnKTtcbiAgICBjb25zdCBlbFJpZ2h0ID0gZWxMZWZ0ICsgZWxlbWVudC5vZmZzZXRXaWR0aDtcbiAgICBjb25zdCBlbFRvcCA9IHRoaXMuY29tcHV0ZU9mZnNldChlbGVtZW50LCAndG9wJyk7XG4gICAgY29uc3QgZWxCb3R0b20gPSBlbFRvcCArIGVsZW1lbnQub2Zmc2V0SGVpZ2h0O1xuXG4gICAgY29uc3QgdnBMZWZ0ID0gdGhpcy5fdmlld3BvcnQuc2Nyb2xsTGVmdDtcbiAgICBjb25zdCB2cFJpZ2h0ID0gdnBMZWZ0ICsgdGhpcy5fdmlld3BvcnQuY2xpZW50V2lkdGg7XG4gICAgY29uc3QgdnBUb3AgPSB0aGlzLl92aWV3cG9ydC5zY3JvbGxUb3A7XG4gICAgY29uc3QgdnBCb3R0b20gPSB2cFRvcCArIHRoaXMuX3ZpZXdwb3J0LmNsaWVudEhlaWdodDtcblxuICAgIHN3aXRjaCAoZml0KSB7XG4gICAgICBjYXNlICdmdWxsJzpcbiAgICAgICAgcmV0dXJuIChlbExlZnQgPj0gdnBMZWZ0ICYmIGVsUmlnaHQgPD0gdnBSaWdodCkgJiYgKGVsVG9wID49IHZwVG9wICYmIGVsQm90dG9tIDw9IHZwQm90dG9tKTtcbiAgICAgIGNhc2UgJ3BhcnRpYWwnOlxuICAgICAgICByZXR1cm4gKGVsUmlnaHQgPj0gdnBMZWZ0ICYmIGVsTGVmdCA8PSB2cFJpZ2h0KSAmJiAoZWxCb3R0b20gPj0gdnBUb3AgJiYgZWxUb3AgPD0gdnBCb3R0b20pO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgdGhyb3cgRXJyb3IoJ1Vuc3VwcG9ydGVkIGZpdCBzdHJhdGVneScpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBTY3JvbGxzIHRoZSBzcGVjaWZpZWQgZWxlbWVudCBpbnRvIHRoZSB2aWV3cG9ydC5cbiAgICpcbiAgICogQHBhcmFtIGVsZW1lbnQgLSB0aGUgZWxlbWVudCB0byBzY3JvbGwgaW50byB0aGUgdmlld3BvcnRcbiAgICogQHBhcmFtIG9mZnNldCAtIHRoZSBnYXAgYmV0d2VlbiB0aGUgZWxlbWVudCBhbmQgdGhlIHZpZXdwb3J0XG4gICAqL1xuICBwdWJsaWMgc2Nyb2xsSW50b1ZpZXcoZWxlbWVudDogSFRNTEVsZW1lbnQsIG9mZnNldDogbnVtYmVyID0gNTApOiB2b2lkIHtcbiAgICB0aGlzLl92aWV3cG9ydC5zY3JvbGxUb3AgPSB0aGlzLmNvbXB1dGVPZmZzZXQoZWxlbWVudCwgJ3RvcCcpIC0gb2Zmc2V0O1xuICAgIHRoaXMuX3ZpZXdwb3J0LnNjcm9sbExlZnQgPSB0aGlzLmNvbXB1dGVPZmZzZXQoZWxlbWVudCwgJ2xlZnQnKSAtIG9mZnNldDtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb21wdXRlcyB0aGUgZGlzdGFuY2Ugb2YgdGhlIGVsZW1lbnQgdG8gdGhlIHZpZXdwb3J0J3MgbGVmdCBvciB0b3AgYm9yZGVyLlxuICAgKi9cbiAgcHVibGljIGNvbXB1dGVPZmZzZXQoZWxlbWVudDogSFRNTEVsZW1lbnQsIGJvcmRlcjogJ2xlZnQnIHwgJ3RvcCcpOiBudW1iZXIge1xuICAgIGlmICghaXNDaGlsZE9mKGVsZW1lbnQsIHRoaXMuX3ZpZXdwb3J0KSkge1xuICAgICAgdGhyb3cgRXJyb3IoJ2VsZW1lbnQgbm90IGEgY2hpbGQgb2YgdGhlIHZpZXdwb3J0Jyk7XG4gICAgfVxuXG4gICAgbGV0IG9mZnNldCA9IDA7XG4gICAgbGV0IGVsID0gZWxlbWVudDtcbiAgICBkbyB7XG4gICAgICBvZmZzZXQgKz0gKGJvcmRlciA9PT0gJ2xlZnQnID8gZWwub2Zmc2V0TGVmdCA6IGVsLm9mZnNldFRvcCk7XG4gICAgICBlbCA9IGVsLm9mZnNldFBhcmVudCBhcyBIVE1MRWxlbWVudDtcbiAgICB9IHdoaWxlIChlbCAhPT0gbnVsbCAmJiBlbCAhPT0gdGhpcy5fdmlld3BvcnQpO1xuXG4gICAgcmV0dXJuIG9mZnNldDtcbiAgfVxufVxuXG4vKipcbiAqIFJldHVybnMgJ3RydWUnIGlmIHRoZSBnaXZlbiBlbGVtZW50IGlzIGEgY2hpbGQgZWxlbWVudCBvZiB0aGUgcGFyZW50IGVsZW1lbnQuXG4gKi9cbmZ1bmN0aW9uIGlzQ2hpbGRPZihlbGVtZW50OiBFbGVtZW50LCBwYXJlbnQ6IEVsZW1lbnQpOiBib29sZWFuIHtcbiAgd2hpbGUgKGVsZW1lbnQucGFyZW50RWxlbWVudCAhPT0gbnVsbCkge1xuICAgIGVsZW1lbnQgPSBlbGVtZW50LnBhcmVudEVsZW1lbnQ7XG4gICAgaWYgKGVsZW1lbnQgPT09IHBhcmVudCkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICB9XG4gIHJldHVybiBmYWxzZTtcbn1cblxuLyoqXG4gKiBSZXByZXNlbnRzIGEgc2Nyb2xsYmFyIHN0eWxlLlxuICovXG5leHBvcnQgdHlwZSBTY3JvbGxiYXJTdHlsZSA9ICduYXRpdmUnIHwgJ29uLXRvcCcgfCAnaGlkZGVuJztcbiIsIjwhLS0gdmlld3BvcnQgYW5kIHZpZXdwb3J0IGNsaWVudCAtLT5cbjxkaXYgI3ZpZXdwb3J0XG4gICAgIGNsYXNzPVwidmlld3BvcnRcIlxuICAgICB0YWJpbmRleD1cIi0xXCJcbiAgICAgc2NpU2Nyb2xsYWJsZSBbc2NpU2Nyb2xsYWJsZURpc3BsYXlOYXRpdmVTY3JvbGxiYXJdPVwic2Nyb2xsYmFyU3R5bGUgPT09ICduYXRpdmUnXCJcbiAgICAgY2RrU2Nyb2xsYWJsZVxuICAgICAoc2Nyb2xsKT1cIm9uU2Nyb2xsKCRldmVudClcIj5cbiAgPGRpdiAjdmlld3BvcnRfY2xpZW50IGNsYXNzPVwidmlld3BvcnQtY2xpZW50XCIgcGFydD1cImNvbnRlbnRcIj5cbiAgICA8c2xvdD48L3Nsb3Q+XG4gIDwvZGl2PlxuPC9kaXY+XG5cbjwhLS0gcmVuZGVyIGVtdWxhdGVkIHNjcm9sbGJhcnMgd2hpY2ggc2l0IG9uLXRvcCAtLT5cbjxuZy1jb250YWluZXIgKm5nSWY9XCJzY3JvbGxiYXJTdHlsZSA9PT0gJ29uLXRvcCcgJiYgKG5hdGl2ZVNjcm9sbGJhclRyYWNrU2l6ZVByb3ZpZGVyLnRyYWNrU2l6ZSQgfCBhc3luYykgIT09IG51bGxcIj5cbiAgPHNjaS1zY3JvbGxiYXIgW2RpcmVjdGlvbl09XCIndnNjcm9sbCdcIiBbdmlld3BvcnRdPVwidmlld3BvcnRcIj48L3NjaS1zY3JvbGxiYXI+XG4gIDxzY2ktc2Nyb2xsYmFyIFtkaXJlY3Rpb25dPVwiJ2hzY3JvbGwnXCIgW3ZpZXdwb3J0XT1cInZpZXdwb3J0XCI+PC9zY2ktc2Nyb2xsYmFyPlxuPC9uZy1jb250YWluZXI+XG4iXX0=
|
|
255
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlld3BvcnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2Npb24vY29tcG9uZW50cy92aWV3cG9ydC9zcmMvdmlld3BvcnQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2Npb24vY29tcG9uZW50cy92aWV3cG9ydC9zcmMvdmlld3BvcnQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7O0dBUUc7QUFFSCxPQUFPLEVBQUMsU0FBUyxFQUFjLFlBQVksRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFN0gsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLHVCQUF1QixDQUFDOzs7Ozs7O0FBRXBEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQWlFRztBQU9ILE1BQU0sT0FBTyxvQkFBb0I7SUF1Qy9CLFlBQW1CLElBQTZCLEVBQVMsZ0NBQXFFO1FBQTNHLFNBQUksR0FBSixJQUFJLENBQXlCO1FBQVMscUNBQWdDLEdBQWhDLGdDQUFnQyxDQUFxQztRQW5DdEgsb0JBQWUsR0FBbUIsUUFBUSxDQUFDO1FBMkJuRDs7OztXQUlHO1FBRUksV0FBTSxHQUFHLElBQUksWUFBWSxFQUFTLENBQUMsQ0FBQyx1REFBdUQ7SUFHbEcsQ0FBQztJQWxDRCxnQkFBZ0I7SUFDaEIsSUFDVyxXQUFXLENBQUMsUUFBb0M7UUFDekQsSUFBSSxDQUFDLGdCQUFnQixHQUFHLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBRUQsZ0JBQWdCO0lBQ2hCLElBQ1csaUJBQWlCLENBQUMsY0FBMEM7UUFDckUsSUFBSSxDQUFDLGVBQWUsR0FBRyxhQUFhLENBQUMsY0FBYyxDQUFD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SSxFQUFDO2dCQU8xQixpQkFBaUI7c0JBRDNCLFNBQVM7dUJBQUMsaUJBQWlCLEVBQUUsRUFBQyxNQUFNLEVBQUUsSUFBSSxFQUFDO2dCQVVqQyxjQUFjO3NCQUR4QixLQUFLO2dCQWVDLE1BQU07c0JBRFosTUFBTTtnQkFPQSxLQUFLO3NCQURYLFlBQVk7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTgtMjAxOSBTd2lzcyBGZWRlcmFsIFJhaWx3YXlzXG4gKlxuICogVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscyBhcmUgbWFkZVxuICogYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSAyLjBcbiAqIHdoaWNoIGlzIGF2YWlsYWJsZSBhdCBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wL1xuICpcbiAqICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogRVBMLTIuMFxuICovXG5cbmltcG9ydCB7Q29tcG9uZW50LCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIEhvc3RMaXN0ZW5lciwgSW5wdXQsIE91dHB1dCwgVmlld0NoaWxkLCBWaWV3RW5jYXBzdWxhdGlvbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1NjaU5hdGl2ZVNjcm9sbGJhclRyYWNrU2l6ZVByb3ZpZGVyfSBmcm9tICcuL25hdGl2ZS1zY3JvbGxiYXItdHJhY2stc2l6ZS1wcm92aWRlci5zZXJ2aWNlJztcbmltcG9ydCB7Y29lcmNlRWxlbWVudH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcblxuLyoqXG4gKiBSZXByZXNlbnRzIGEgdmlld3BvcnQgd2l0aCBzbG90dGVkIGNvbnRlbnQgKGA8bmctY29udGVudD5gKSB1c2VkIGFzIHNjcm9sbGFibGUgY29udGVudC4gQnkgZGVmYXVsdCwgY29udGVudCBpcyBhZGRlZCB0byBhIENTUyBncmlkIGxheW91dC5cbiAqXG4gKiBUaGUgdmlld3BvcnQgY29tcG9uZW50IGRpc3BsYXlzIHNjcm9sbGJhcnMgd2hlbiBpdHMgY29udGVudCBvdmVyZmxvd3MuIFNjcm9sbGJhcnMgYXJlIGRpc3BsYXllZCBvbiB0b3Agb2YgdGhlIGNvbnRlbnQsIG5vdCBuZXh0IHRvIGl0LlxuICogVGhlIGNvbXBvbmVudCB1c2VzIHRoZSBuYXRpdmUgc2Nyb2xsYmFycyBvZiB0aGUgb3BlcmF0aW5nIHN5c3RlbSBpZiB0aGV5IGFyZSBhbHJlYWR5IHNpdHRpbmcgb24gdG9wLCBvciBmYWxscyBiYWNrIGFuZCByZW5kZXJzIHNjcm9sbGJhcnMgb24gdG9wIG90aGVyd2lzZS5cbiAqIFRoZSB2aWV3cG9ydCByZW1haW5zIG5hdGl2ZWx5IHNjcm9sbGFibGUgd2l0aCB0aGUgbmF0aXZlIHNjcm9sbGJhcnMgc2hpZnRlZCBvdXQgb2YgdGhlIHZpZXdwb3J0J3MgdmlzaWJsZSBhcmVhLiBDb25zZXF1ZW50bHksIHRoZSB2aWV3cG9ydCBrZWVwcyBzdXBwb3J0aW5nXG4gKiBuYXRpdmUgc2Nyb2xsaW5nIGZlYXR1cmVzIHN1Y2ggYXMgdG91Y2ggZ2VzdHVyZXMsIHNjcm9sbCBzcGVlZCBhY2NlbGVyYXRpb24sIG9yIHNjcm9sbGluZyBuZWFyIHRoZSB2aWV3cG9ydCBlZGdlcyBkdXJpbmcgZHJhZy1hbmQtZHJvcCBvcGVyYXRpb25zLlxuICpcbiAqIGBgYGh0bWxcbiAqIDxzY2ktdmlld3BvcnQ+XG4gKiAgIHlvdXIgY29udGVudFxuICogPC9zY2ktdmlld3BvcnQ+XG4gKiBgYGBcbiAqXG4gKiAjIyBBZGRpbmcgdGhlIHZpZXdwb3J0IHRvIGEgbGF5b3V0XG4gKlxuICogVHlwaWNhbGx5IHlvdSB3b3VsZCBhZGQgdGhlIHZpZXdwb3J0IGNvbXBvbmVudCB0byBhIGZsZXhpYmxlIGxheW91dCwgZmlsbGluZyB0aGUgcmVtYWluaW5nIHNwYWNlIHZlcnRpY2FsbHkgYW5kIGhvcml6b250YWxseSwgc3VjaCBhcyBhIGZsZXhib3ggY29udGFpbmVyXG4gKiB3aXRoIHRoZSB2aWV3cG9ydCdzIGBmbGV4YCBDU1MgcHJvcGVydHkgc2V0IHRvIGVpdGhlciBgZmxleDogYXV0b2Agb3IgYGZsZXg6IDEgMSAwYC5cbiAqXG4gKiBUaGUgdmlld3BvcnQgaXMgc2l6ZWQgYWNjb3JkaW5nIHRvIGl0cyBjb250ZW50IHdpZHRoIGFuZCBoZWlnaHQuIEl0IGdyb3dzIHRvIGFic29yYiBhbnkgZnJlZSBzcGFjZSwgdGh1cyBvdmVyZmxvd2luZyBpdHMgY29udGVudCBvbmx5IHdoZW4gZW5jb3VudGVyaW5nXG4gKiBhIGxheW91dCBjb25zdHJhaW50LiBEZXBlbmRpbmcgb24gdGhlIGxheW91dCwgZGlmZmVyZW50IHN0ZXBzIG1heSBiZSBuZWNlc3NhcnkgdG8gcHJldmVudCB0aGUgdmlld3BvcnQgZnJvbSBncm93aW5nIHRvIGluZmluaXR5LlxuICpcbiAqIC0gSWYgcHJhY3RpY2FsLCBnaXZlIHRoZSB2aWV3cG9ydCBhIGZpeGVkIHNpemUgb3IgYSBtYXhpbXVtIHNpemUuXG4gKiAtIElmIHlvdSBhZGQgdGhlIHZpZXdwb3J0IHRvIGEgZmxleGJveCBsYXlvdXQsIG1ha2Ugc3VyZSB0aGF0IGl0IGNhbm5vdCBleGNlZWQgdGhlIGF2YWlsYWJsZSBzcGFjZS4gSW5zdGVhZCwgdGhlIHZpZXdwb3J0IHNob3VsZCBmaWxsIHRoZSByZW1haW5pbmcgc3BhY2UsXG4gKiAgIHZlcnRpY2FsbHkgYW5kIGhvcml6b250YWxseS4gQmUgYXdhcmUgdGhhdCwgYnkgZGVmYXVsdCwgYSBmbGV4IGl0ZW0gZG9lcyBub3Qgc2hyaW5rIGJlbG93IGl0cyBtaW5pbXVtIGNvbnRlbnQgc2l6ZS4gVG8gY2hhbmdlIHRoaXMsIHNldCB0aGUgdmlld3BvcnQnc1xuICogICBgZmxleC1iYXNpc2AgdG8gYDBgIChpbnN0ZWFkIG9mIGBhdXRvYCksIG9yIHVzZSB0aGUgQ1NTIHNob3J0aGFuZCBwcm9wZXJ0eSBgZmxleDogMSAxIDBgLiBUaGUgYGZsZXgtYmFzaXNgIGRlZmluZXMgdGhlIGRlZmF1bHQgc2l6ZSBvZiBhIGZsZXggaXRlbSBiZWZvcmVcbiAqICAgdGhlIHJlbWFpbmluZyBleHRyYSBzcGFjZSBpcyBkaXN0cmlidXRlZC4gSWYgdGhlIHZpZXdwb3J0IGRvZXMgbm90IGFwcGVhciBhZnRlciBzZXR0aW5nIHRoaXMgcHJvcGVydHksIGNoZWNrIGl0cyBwYXJlbnQgZWxlbWVudHMnIGNvbnRlbnQgc2l6ZXMuXG4gKiAgIEFzIGFuIGFsdGVybmF0aXZlIHRvIHNldHRpbmcgYGZsZXg6IDEgMSAwYCwgY2hhbmdlIHRoZSBzZXR0aW5nIHRvIGBmbGV4OiBhdXRvYCBhbmQgaGlkZSB0aGUgb3ZlcmZsb3cgaW4gdGhlIHBhcmVudCBlbGVtZW50LCBhcyBmb2xsb3dzOiBgb3ZlcmZsb3c6IGhpZGRlbmAuXG4gKiAgIEFub3RoZXIgYXBwcm9hY2ggd291bGQgYmUgdG8gc2V0IHRoZSBtaW5pbXVtIGhlaWdodCBvZiBhbGwgcGFyZW50cyB0byBgMGAsIGFzIGZvbGxvd3M6IGBtaW4taGVpZ2h0OiAwYC5cbiAqXG4gKiAgIEZvciB0aGUgY29tcGxldGUgZG9jdW1lbnRhdGlvbiBvbiB0aGUgZmxleCBsYXlvdXQgYW5kIGl0cyBmZWF0dXJlcywgcmVmZXIgdG8gaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQ1NTL2ZsZXguXG4gKlxuICpcbiAqICMjIExheW91dGluZyB0aGUgdmlld3BvcnQncyBzbG90dGVkIGNvbnRlbnRcbiAqXG4gKiBCeSBkZWZhdWx0LCB0aGUgdmlld3BvcnQncyBjb250ZW50IGlzIGFkZGVkIHRvIGEgQ1NTIGdyaWQgY29udGFpbmVyIHdpdGggYSBzaW5nbGUgY29sdW1uLCBmaWxsaW5nIHJlbWFpbmluZyBzcGFjZSB2ZXJ0aWNhbGx5IGFuZCBob3Jpem9udGFsbHkuXG4gKiBVc2luZyB0aGUgYDo6cGFydChjb250ZW50KWAgcHNldWRvIGVsZW1lbnQgc2VsZWN0b3IsIHlvdSBjYW4gY29uZmlndXJlIHRoZSBncmlkIGNvbnRhaW5lciBvciBhcHBseSBhIGRpZmZlcmVudCBsYXlvdXQsIHN1Y2ggYXMgYSBmbGV4IG9yIGZsb3cgbGF5b3V0LlxuICpcbiAqICMjIyMgRXhhbXBsZSBvZiBhZGRpbmcgc2xvdHRlZCBjb250ZW50IHRvIGEgQ1NTIGZsZXggY29udGFpbmVyLlxuICogYGBgY3NzXG4gKiBzY2ktdmlld3BvcnQ6OnBhcnQoY29udGVudCkge1xuICogICBkaXNwbGF5OiBmbGV4O1xuICogICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICogfVxuICogYGBgXG4gKlxuICogIyMjIyBFeGFtcGxlIG9mIGNvbmZpZ3VyaW5nIENTUyBncmlkIGNvbnRhaW5lciB3aXRoIHR3byBjb2x1bW5zXG4gKiBgYGBjc3NcbiAqIHNjaS12aWV3cG9ydDo6cGFydChjb250ZW50KSB7XG4gKiAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmcjtcbiAqICAgZ2FwOiAxZW07XG4gKiB9XG4gKiBgYGBcbiAqXG4gKiAjIyBTdHlsaW5nIG9mIHNjcm9sbGJhcnNcbiAqXG4gKiBZb3UgY2FuIG92ZXJyaWRlIHRoZSBmb2xsb3dpbmcgQ1NTIHZhcmlhYmxlcyB0byBjb250cm9sIHRoZSBhcHBlYXJhbmNlIG9mIHRoZSBzY3JvbGxiYXI6XG4gKlxuICogLSBzY2ktdmlld3BvcnQtc2Nyb2xsYmFyLWNvbG9yOiAgICAgU2V0cyB0aGUgY29sb3Igb2YgdGhlIHNjcm9sbGJhciAoYnkgZGVmYXVsdCwgdXNlcyBgcmdiKDc4LCA3OCwgNzgpYCkuXG4gKlxuICogYGBgY3NzXG4gKiBzY2ktdmlld3BvcnQge1xuICogICAtLXNjaS12aWV3cG9ydC1zY3JvbGxiYXItY29sb3I6IGJsdWU7XG4gKiB9XG4gKiBgYGBcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2NpLXZpZXdwb3J0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3ZpZXdwb3J0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vdmlld3BvcnQuY29tcG9uZW50LnNjc3MnXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uU2hhZG93RG9tLFxufSlcbmV4cG9ydCBjbGFzcyBTY2lWaWV3cG9ydENvbXBvbmVudCB7XG5cbiAgcHJpdmF0ZSBfdmlld3BvcnRFbGVtZW50ITogSFRNTERpdkVsZW1lbnQ7XG4gIHByaXZhdGUgX3ZpZXdwb3J0Q2xpZW50ITogSFRNTERpdkVsZW1lbnQ7XG4gIHByaXZhdGUgX3Njcm9sbGJhclN0eWxlOiBTY3JvbGxiYXJTdHlsZSA9ICdvbi10b3AnO1xuXG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgQFZpZXdDaGlsZCgndmlld3BvcnQnLCB7c3RhdGljOiB0cnVlfSlcbiAgcHVibGljIHNldCBzZXRWaWV3cG9ydCh2aWV3cG9ydDogRWxlbWVudFJlZjxIVE1MRGl2RWxlbWVudD4pIHtcbiAgICB0aGlzLl92aWV3cG9ydEVsZW1lbnQgPSBjb2VyY2VFbGVtZW50KHZpZXdwb3J0KTtcbiAgfVxuXG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgQFZpZXdDaGlsZCgndmlld3BvcnRfY2xpZW50Jywge3N0YXRpYzogdHJ1ZX0pXG4gIHB1YmxpYyBzZXQgc2V0Vmlld3BvcnRDbGllbnQodmlld3BvcnRDbGllbnQ6IEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+KSB7XG4gICAgdGhpcy5fdmlld3BvcnRDbGllbnQgPSBjb2VyY2VFbGVtZW50KHZpZXdwb3J0Q2xpZW50KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb250cm9scyB3aGV0aGVyIHRvIHVzZSBuYXRpdmUgc2Nyb2xsYmFycyBvciwgd2hpY2ggaXMgYnkgZGVmYXVsdCwgZW11bGF0ZWQgc2Nyb2xsYmFycyB0aGF0IHNpdCBvbiB0b3Agb2YgdGhlIHZpZXdwb3J0IGNsaWVudC5cbiAgICogSW4gdGhlIGxhdHRlciwgdGhlIHZpZXdwb3J0IGNsaWVudCByZW1haW5zIG5hdGl2ZWx5IHNjcm9sbGFibGUuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IHNjcm9sbGJhclN0eWxlKHNjcm9sbGJhclN0eWxlOiBTY3JvbGxiYXJTdHlsZSkge1xuICAgIHRoaXMuX3Njcm9sbGJhclN0eWxlID0gc2Nyb2xsYmFyU3R5bGUgfHwgJ29uLXRvcCc7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHNjcm9sbGJhclN0eWxlKCk6IFNjcm9sbGJhclN0eWxlIHtcbiAgICByZXR1cm4gdGhpcy5fc2Nyb2xsYmFyU3R5bGU7XG4gIH1cblxuICAvKipcbiAgICogRW1pdHMgdXBvbiBhIHNjcm9sbCBldmVudC5cbiAgICpcbiAgICogWW91IGNhbiBhZGQgW3NjaURpbWVuc2lvbl0gZGlyZWN0aXZlIHRvIHRoZSB2aWV3cG9ydCBvciB2aWV3cG9ydCBjbGllbnQgdG8gYmUgbm90aWZpZWQgYWJvdXQgbGF5b3V0IGNoYW5nZXMuXG4gICAqL1xuICBAT3V0cHV0KClcbiAgcHVibGljIHNjcm9sbCA9IG5ldyBFdmVudEVtaXR0ZXI8RXZlbnQ+KCk7IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLW91dHB1dC1uYXRpdmVcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgaG9zdDogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sIHB1YmxpYyBuYXRpdmVTY3JvbGxiYXJUcmFja1NpemVQcm92aWRlcjogU2NpTmF0aXZlU2Nyb2xsYmFyVHJhY2tTaXplUHJvdmlkZXIpIHtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2ZvY3VzJylcbiAgcHVibGljIGZvY3VzKCk6IHZvaWQgeyAvLyBkbyBub3QgcmVuYW1lIHRvIGV4cG9zZSB0aGUgc2FtZSBmb2N1cyBtZXRob2QgbGlrZSBgSFRNTEVsZW1lbnQuZm9jdXMoKWAuXG4gICAgdGhpcy5fdmlld3BvcnRFbGVtZW50Py5mb2N1cygpO1xuICB9XG5cbiAgcHVibGljIG9uU2Nyb2xsKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIHRoaXMuc2Nyb2xsLmVtaXQoZXZlbnQpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIG51bWJlciBvZiBwaXhlbHMgdGhhdCB0aGUgdmlld3BvcnQgY2xpZW50IGlzIHNjcm9sbGVkIHZlcnRpY2FsbHkuXG4gICAqXG4gICAqIEBzZWUgRWxlbWVudC5zY3JvbGxUb3BcbiAgICovXG4gIHB1YmxpYyBnZXQgc2Nyb2xsVG9wKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX3ZpZXdwb3J0RWxlbWVudC5zY3JvbGxUb3A7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgbnVtYmVyIG9mIHBpeGVscyB0aGF0IHRoZSB2aWV3cG9ydCBjbGllbnQgaXMgc2Nyb2xsZWQgdmVydGljYWxseS5cbiAgICpcbiAgICogQHNlZSBFbGVtZW50LnNjcm9sbFRvcFxuICAgKi9cbiAgcHVibGljIHNldCBzY3JvbGxUb3Aoc2Nyb2xsVG9wOiBudW1iZXIpIHtcbiAgICB0aGlzLl92aWV3cG9ydEVsZW1lbnQuc2Nyb2xsVG9wID0gc2Nyb2xsVG9wO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIG51bWJlciBvZiBwaXhlbHMgdGhhdCB0aGUgdmlld3BvcnQgY2xpZW50IGlzIHNjcm9sbGVkIGhvcml6b250YWxseS5cbiAgICpcbiAgICogQHNlZSBFbGVtZW50LnNjcm9sbExlZnRcbiAgICovXG4gIHB1YmxpYyBnZXQgc2Nyb2xsTGVmdCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl92aWV3cG9ydEVsZW1lbnQuc2Nyb2xsTGVmdDtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBudW1iZXIgb2YgcGl4ZWxzIHRoYXQgdGhlIHZpZXdwb3J0IGNsaWVudCBpcyBzY3JvbGxlZCBob3Jpem9udGFsbHkuXG4gICAqXG4gICAqIEBzZWUgRWxlbWVudC5zY3JvbGxMZWZ0XG4gICAqL1xuICBwdWJsaWMgc2V0IHNjcm9sbExlZnQoc2Nyb2xsTGVmdDogbnVtYmVyKSB7XG4gICAgdGhpcy5fdmlld3BvcnRFbGVtZW50LnNjcm9sbExlZnQgPSBzY3JvbGxMZWZ0O1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIGhlaWdodCBvZiB0aGUgdmlld3BvcnQgY2xpZW50LlxuICAgKlxuICAgKiBAc2VlIEVsZW1lbnQuc2Nyb2xsSGVpZ2h0XG4gICAqL1xuICBwdWJsaWMgZ2V0IHNjcm9sbEhlaWdodCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl92aWV3cG9ydEVsZW1lbnQuc2Nyb2xsSGVpZ2h0O1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIHdpZHRoIG9mIHRoZSB2aWV3cG9ydCBjbGllbnQuXG4gICAqXG4gICAqIEBzZWUgRWxlbWVudC5zY3JvbGxXaWR0aFxuICAgKi9cbiAgcHVibGljIGdldCBzY3JvbGxXaWR0aCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl92aWV3cG9ydEVsZW1lbnQuc2Nyb2xsV2lkdGg7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgdmlld3BvcnQge0hUTUxFbGVtZW50fS5cbiAgICovXG4gIHB1YmxpYyBnZXQgdmlld3BvcnRFbGVtZW50KCk6IEhUTUxFbGVtZW50IHtcbiAgICByZXR1cm4gdGhpcy5fdmlld3BvcnRFbGVtZW50O1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIHZpZXdwb3J0IGNsaWVudCB7SFRNTEVsZW1lbnR9LlxuICAgKi9cbiAgcHVibGljIGdldCB2aWV3cG9ydENsaWVudEVsZW1lbnQoKTogSFRNTEVsZW1lbnQge1xuICAgIHJldHVybiB0aGlzLl92aWV3cG9ydENsaWVudDtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVja3MgaWYgdGhlIHNwZWNpZmllZCBlbGVtZW50IGlzIHNjcm9sbGVkIGludG8gdGhlIHZpZXdwb3J0LlxuICAgKlxuICAgKiBAcGFyYW0gZWxlbWVudCAtIHRoZSBlbGVtZW50IHRvIGJlIGNoZWNrZWRcbiAgICogQHBhcmFtIGZpdCAtIGNvbnRyb2wgaWYgdGhlIGVsZW1lbnQgbXVzdCBmdWxseSBvciBwYXJ0aWFsbHkgZml0IGludG8gdGhlIHZpZXdwb3J0XG4gICAqXG4gICAqIEB0aHJvd3MgaWYgdGhlIGVsZW1lbnQgaXMgbm90IGNvbnRhaW5lZCBpbiB0aGUgdmlld3BvcnQncyBzbG90dGVkIGNvbnRlbnQuXG4gICAqL1xuICBwdWJsaWMgaXNFbGVtZW50SW5WaWV3KGVsZW1lbnQ6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+IHwgSFRNTEVsZW1lbnQsIGZpdDogJ2Z1bGwnIHwgJ3BhcnRpYWwnKTogYm9vbGVhbiB7XG4gICAgY29uc3QgZWxMZWZ0ID0gdGhpcy5jb21wdXRlT2Zmc2V0KGVsZW1lbnQsICdsZWZ0Jyk7XG4gICAgY29uc3QgZWxSaWdodCA9IGVsTGVmdCArIGNvZXJjZUVsZW1lbnQoZWxlbWVudCkub2Zmc2V0V2lkdGg7XG4gICAgY29uc3QgZWxUb3AgPSB0aGlzLmNvbXB1dGVPZmZzZXQoZWxlbWVudCwgJ3RvcCcpO1xuICAgIGNvbnN0IGVsQm90dG9tID0gZWxUb3AgKyBjb2VyY2VFbGVtZW50KGVsZW1lbnQpLm9mZnNldEhlaWdodDtcblxuICAgIGNvbnN0IHZwTGVmdCA9IHRoaXMuX3ZpZXdwb3J0RWxlbWVudC5zY3JvbGxMZWZ0O1xuICAgIGNvbnN0IHZwUmlnaHQgPSB2cExlZnQgKyB0aGlzLl92aWV3cG9ydEVsZW1lbnQuY2xpZW50V2lkdGg7XG4gICAgY29uc3QgdnBUb3AgPSB0aGlzLl92aWV3cG9ydEVsZW1lbnQuc2Nyb2xsVG9wO1xuICAgIGNvbnN0IHZwQm90dG9tID0gdnBUb3AgKyB0aGlzLl92aWV3cG9ydEVsZW1lbnQuY2xpZW50SGVpZ2h0O1xuXG4gICAgc3dpdGNoIChmaXQpIHtcbiAgICAgIGNhc2UgJ2Z1bGwnOlxuICAgICAgICByZXR1cm4gKGVsTGVmdCA+PSB2cExlZnQgJiYgZWxSaWdodCA8PSB2cFJpZ2h0KSAmJiAoZWxUb3AgPj0gdnBUb3AgJiYgZWxCb3R0b20gPD0gdnBCb3R0b20pO1xuICAgICAgY2FzZSAncGFydGlhbCc6XG4gICAgICAgIHJldHVybiAoZWxSaWdodCA+PSB2cExlZnQgJiYgZWxMZWZ0IDw9IHZwUmlnaHQpICYmIChlbEJvdHRvbSA+PSB2cFRvcCAmJiBlbFRvcCA8PSB2cEJvdHRvbSk7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICB0aHJvdyBFcnJvcignVW5zdXBwb3J0ZWQgZml0IHN0cmF0ZWd5Jyk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFNjcm9sbHMgdGhlIHNwZWNpZmllZCBlbGVtZW50IGludG8gdGhlIHZpZXdwb3J0LlxuICAgKlxuICAgKiBAcGFyYW0gZWxlbWVudCAtIHRoZSBlbGVtZW50IHRvIHNjcm9sbCBpbnRvIHRoZSB2aWV3cG9ydFxuICAgKiBAcGFyYW0gb2Zmc2V0IC0gdGhlIGdhcCBiZXR3ZWVuIHRoZSBlbGVtZW50IGFuZCB0aGUgdmlld3BvcnRcbiAgICpcbiAgICogQHRocm93cyBpZiB0aGUgZWxlbWVudCBpcyBub3QgY29udGFpbmVkIGluIHRoZSB2aWV3cG9ydCdzIHNsb3R0ZWQgY29udGVudC5cbiAgICovXG4gIHB1YmxpYyBzY3JvbGxJbnRvVmlldyhlbGVtZW50OiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PiB8IEhUTUxFbGVtZW50LCBvZmZzZXQ6IG51bWJlciA9IDUwKTogdm9pZCB7XG4gICAgdGhpcy5fdmlld3BvcnRFbGVtZW50LnNjcm9sbFRvcCA9IHRoaXMuY29tcHV0ZU9mZnNldChlbGVtZW50LCAndG9wJykgLSBvZmZzZXQ7XG4gICAgdGhpcy5fdmlld3BvcnRFbGVtZW50LnNjcm9sbExlZnQgPSB0aGlzLmNvbXB1dGVPZmZzZXQoZWxlbWVudCwgJ2xlZnQnKSAtIG9mZnNldDtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb21wdXRlcyB0aGUgZGlzdGFuY2Ugb2YgdGhlIGVsZW1lbnQgdG8gdGhlIHZpZXdwb3J0J3MgbGVmdCBvciB0b3AgYm9yZGVyLlxuICAgKlxuICAgKiBAdGhyb3dzIGlmIHRoZSBlbGVtZW50IGlzIG5vdCBjb250YWluZWQgaW4gdGhlIHZpZXdwb3J0J3Mgc2xvdHRlZCBjb250ZW50LlxuICAgKi9cbiAgcHVibGljIGNvbXB1dGVPZmZzZXQoZWxlbWVudDogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4gfCBIVE1MRWxlbWVudCwgYm9yZGVyOiAnbGVmdCcgfCAndG9wJyk6IG51bWJlciB7XG4gICAgbGV0IG9mZnNldCA9IDA7XG4gICAgbGV0IGVsID0gY29lcmNlRWxlbWVudChlbGVtZW50KTtcbiAgICBkbyB7XG4gICAgICBvZmZzZXQgKz0gKGJvcmRlciA9PT0gJ2xlZnQnID8gZWwub2Zmc2V0TGVmdCA6IGVsLm9mZnNldFRvcCk7XG4gICAgICBlbCA9IGVsLm9mZnNldFBhcmVudCBhcyBIVE1MRWxlbWVudDtcbiAgICAgIGlmIChlbCA9PT0gbnVsbCkge1xuICAgICAgICB0aHJvdyBFcnJvcihgW0VsZW1lbnROb3RDb250YWluZWRFcnJvcl0gRWxlbWVudCBub3QgY29udGFpbmVkIGluIHRoZSB2aWV3cG9ydCdzIHNsb3R0ZWQgY29udGVudGApO1xuICAgICAgfVxuICAgIH0gd2hpbGUgKGVsICE9PSB0aGlzLmhvc3QubmF0aXZlRWxlbWVudCk7XG5cbiAgICByZXR1cm4gb2Zmc2V0O1xuICB9XG59XG5cbi8qKlxuICogUmVwcmVzZW50cyBhIHNjcm9sbGJhciBzdHlsZS5cbiAqL1xuZXhwb3J0IHR5cGUgU2Nyb2xsYmFyU3R5bGUgPSAnbmF0aXZlJyB8ICdvbi10b3AnIHwgJ2hpZGRlbic7XG4iLCI8IS0tIHZpZXdwb3J0IGFuZCB2aWV3cG9ydCBjbGllbnQgLS0+XG48ZGl2ICN2aWV3cG9ydFxuICAgICBjbGFzcz1cInZpZXdwb3J0XCJcbiAgICAgdGFiaW5kZXg9XCItMVwiXG4gICAgIHNjaVNjcm9sbGFibGUgW3NjaVNjcm9sbGFibGVEaXNwbGF5TmF0aXZlU2Nyb2xsYmFyXT1cInNjcm9sbGJhclN0eWxlID09PSAnbmF0aXZlJ1wiXG4gICAgIGNka1Njcm9sbGFibGVcbiAgICAgKHNjcm9sbCk9XCJvblNjcm9sbCgkZXZlbnQpXCI+XG4gIDxkaXYgI3ZpZXdwb3J0X2NsaWVudCBjbGFzcz1cInZpZXdwb3J0LWNsaWVudFwiIHBhcnQ9XCJjb250ZW50XCI+XG4gICAgPHNsb3Q+PC9zbG90PlxuICA8L2Rpdj5cbjwvZGl2PlxuXG48IS0tIHJlbmRlciBlbXVsYXRlZCBzY3JvbGxiYXJzIHdoaWNoIHNpdCBvbi10b3AgLS0+XG48bmctY29udGFpbmVyICpuZ0lmPVwic2Nyb2xsYmFyU3R5bGUgPT09ICdvbi10b3AnICYmIChuYXRpdmVTY3JvbGxiYXJUcmFja1NpemVQcm92aWRlci50cmFja1NpemUkIHwgYXN5bmMpICE9PSBudWxsXCI+XG4gIDxzY2ktc2Nyb2xsYmFyIFtkaXJlY3Rpb25dPVwiJ3ZzY3JvbGwnXCIgW3ZpZXdwb3J0XT1cInZpZXdwb3J0XCI+PC9zY2ktc2Nyb2xsYmFyPlxuICA8c2NpLXNjcm9sbGJhciBbZGlyZWN0aW9uXT1cIidoc2Nyb2xsJ1wiIFt2aWV3cG9ydF09XCJ2aWV3cG9ydFwiPjwvc2NpLXNjcm9sbGJhcj5cbjwvbmctY29udGFpbmVyPlxuIl19
|
|
@@ -19,16 +19,16 @@ import * as i0 from "@angular/core";
|
|
|
19
19
|
*/
|
|
20
20
|
export class SciViewportModule {
|
|
21
21
|
}
|
|
22
|
-
SciViewportModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
23
|
-
SciViewportModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
22
|
+
SciViewportModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: SciViewportModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
23
|
+
SciViewportModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.0.2", ngImport: i0, type: SciViewportModule, declarations: [SciViewportComponent,
|
|
24
24
|
SciScrollbarComponent,
|
|
25
25
|
SciScrollableDirective], imports: [CommonModule,
|
|
26
26
|
ScrollingModule], exports: [SciViewportComponent,
|
|
27
27
|
SciScrollbarComponent,
|
|
28
28
|
SciScrollableDirective] });
|
|
29
|
-
SciViewportModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
29
|
+
SciViewportModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: SciViewportModule, imports: [CommonModule,
|
|
30
30
|
ScrollingModule] });
|
|
31
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
31
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: SciViewportModule, decorators: [{
|
|
32
32
|
type: NgModule,
|
|
33
33
|
args: [{
|
|
34
34
|
imports: [
|
|
@@ -68,9 +68,9 @@ class SciDimensionDirective {
|
|
|
68
68
|
this._destroy$.next();
|
|
69
69
|
}
|
|
70
70
|
}
|
|
71
|
-
SciDimensionDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
72
|
-
SciDimensionDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
73
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
71
|
+
SciDimensionDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: SciDimensionDirective, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Directive });
|
|
72
|
+
SciDimensionDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.2", type: SciDimensionDirective, selector: "[sciDimension]", inputs: { emitOutsideAngular: "emitOutsideAngular" }, outputs: { dimensionChange: "sciDimensionChange" }, exportAs: ["sciDimension"], ngImport: i0 });
|
|
73
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: SciDimensionDirective, decorators: [{
|
|
74
74
|
type: Directive,
|
|
75
75
|
args: [{
|
|
76
76
|
selector: '[sciDimension]',
|
|
@@ -99,10 +99,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.2", ngImpor
|
|
|
99
99
|
*/
|
|
100
100
|
class SciDimensionModule {
|
|
101
101
|
}
|
|
102
|
-
SciDimensionModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
103
|
-
SciDimensionModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
104
|
-
SciDimensionModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
105
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
102
|
+
SciDimensionModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: SciDimensionModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
103
|
+
SciDimensionModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.0.2", ngImport: i0, type: SciDimensionModule, declarations: [SciDimensionDirective], imports: [CommonModule], exports: [SciDimensionDirective] });
|
|
104
|
+
SciDimensionModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: SciDimensionModule, imports: [CommonModule] });
|
|
105
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: SciDimensionModule, decorators: [{
|
|
106
106
|
type: NgModule,
|
|
107
107
|
args: [{
|
|
108
108
|
imports: [
|
|
@@ -138,9 +138,9 @@ class SciSashDirective {
|
|
|
138
138
|
return flexGrow / flexGrowSum;
|
|
139
139
|
}
|
|
140
140
|
}
|
|
141
|
-
SciSashDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
142
|
-
SciSashDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
143
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
141
|
+
SciSashDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: SciSashDirective, deps: [{ token: i0.TemplateRef }, { token: SciSashBoxAccessor }], target: i0.ɵɵFactoryTarget.Directive });
|
|
142
|
+
SciSashDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.2", type: SciSashDirective, selector: "ng-template[sciSash]", inputs: { size: "size", minSize: "minSize" }, exportAs: ["sciSash"], usesOnChanges: true, ngImport: i0 });
|
|
143
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: SciSashDirective, decorators: [{
|
|
144
144
|
type: Directive,
|
|
145
145
|
args: [{
|
|
146
146
|
selector: 'ng-template[sciSash]',
|
|
@@ -172,9 +172,9 @@ class SciSashInitializerDirective {
|
|
|
172
172
|
this.sash.element = this._host.nativeElement;
|
|
173
173
|
}
|
|
174
174
|
}
|
|
175
|
-
SciSashInitializerDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
176
|
-
SciSashInitializerDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
177
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
175
|
+
SciSashInitializerDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: SciSashInitializerDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
176
|
+
SciSashInitializerDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.2", type: SciSashInitializerDirective, selector: "div[sciSashInitializer].sash", inputs: { sash: ["sciSashInitializer", "sash"] }, usesOnChanges: true, ngImport: i0 });
|
|
177
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: SciSashInitializerDirective, decorators: [{
|
|
178
178
|
type: Directive,
|
|
179
179
|
args: [{ selector: 'div[sciSashInitializer].sash' }]
|
|
180
180
|
}], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { sash: [{
|
|
@@ -200,9 +200,9 @@ class SciElementRefDirective {
|
|
|
200
200
|
this.nativeElement = host.nativeElement;
|
|
201
201
|
}
|
|
202
202
|
}
|
|
203
|
-
SciElementRefDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
204
|
-
SciElementRefDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
205
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
203
|
+
SciElementRefDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: SciElementRefDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
204
|
+
SciElementRefDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.2", type: SciElementRefDirective, selector: "[sciElementRef]", exportAs: ["sciElementRef"], ngImport: i0 });
|
|
205
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: SciElementRefDirective, decorators: [{
|
|
206
206
|
type: Directive,
|
|
207
207
|
args: [{ selector: '[sciElementRef]', exportAs: 'sciElementRef' }]
|
|
208
208
|
}], ctorParameters: function () { return [{ type: i0.ElementRef }]; } });
|
|
@@ -417,13 +417,13 @@ class SciSashboxComponent {
|
|
|
417
417
|
return parseInt(value, 10);
|
|
418
418
|
}
|
|
419
419
|
}
|
|
420
|
-
SciSashboxComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
421
|
-
SciSashboxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
420
|
+
SciSashboxComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: SciSashboxComponent, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
421
|
+
SciSashboxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.2", type: SciSashboxComponent, selector: "sci-sashbox", inputs: { direction: "direction" }, outputs: { sashStart: "sashStart", sashEnd: "sashEnd" }, host: { properties: { "class.sashing": "this.sashing", "class.column": "this.isColumnDirection", "class.row": "this.isRowDirection" } }, providers: [{
|
|
422
422
|
provide: SciSashBoxAccessor,
|
|
423
423
|
useFactory: provideSashBoxAccessor,
|
|
424
424
|
deps: [forwardRef(() => SciSashboxComponent)],
|
|
425
425
|
}], queries: [{ propertyName: "setSashes", predicate: SciSashDirective }], ngImport: i0, template: "<ng-container *ngFor=\"let sash of sashes$ | async; index as i; first as first; last as last;\">\n <div class=\"sash\"\n [class.first]=\"first\"\n [class.last]=\"last\"\n [sciSashInitializer]=\"sash\"\n [style.flex-grow]=\"sash.flexGrowNormalized$ | async\"\n [style.flex-shrink]=\"sash.flexShrink\"\n [style.flex-basis]=\"sash.flexBasis\">\n <ng-container *ngTemplateOutlet=\"sash.sashTemplate\"></ng-container>\n </div>\n\n <sci-splitter *ngIf=\"!last\"\n sciElementRef #sciElementRef=\"sciElementRef\"\n [orientation]=\"isRowDirection ? 'vertical' : 'horizontal'\"\n (start)=\"onSashStart()\"\n (move)=\"onSash(sciElementRef.nativeElement, i, $event)\"\n (end)=\"onSashEnd()\"\n (reset)=\"onSashReset(i)\">\n </sci-splitter>\n</ng-container>\n", styles: [":host{--sci-sashbox-gap: 10px;--sci-sashbox-splitter-bgcolor: #d2d2d2;--sci-sashbox-splitter-bgcolor_hover: var(--sci-sashbox-splitter-bgcolor);--sci-sashbox-splitter-size: 1px;--sci-sashbox-splitter-size_hover: 8px;--sci-sashbox-splitter-touch-target-size: 15px;--sci-sashbox-splitter-cross-axis-size: 100%;--sci-sashbox-splitter-border-radius: 0;--sci-sashbox-splitter-opacity_active: 1;--sci-sashbox-splitter-opacity_hover: .3;display:flex;align-items:stretch;box-sizing:border-box;overflow:hidden;z-index:0}:host *{box-sizing:border-box}:host.column{flex-direction:column}:host.row{flex-direction:row}:host>div.sash{overflow:hidden;display:grid;grid-auto-rows:100%;grid-auto-columns:100%}:host.row>div.sash{margin:0 var(--sci-sashbox-gap)}:host.row>div.sash.first{margin-left:0}:host.row>div.sash.last{margin-right:0}:host.column>div.sash{margin:var(--sci-sashbox-gap) 0}:host.column>div.sash.first{margin-top:0}:host.column>div.sash.last{margin-bottom:0}:host.sashing>div.sash{pointer-events:none}:host>sci-splitter{--sci-splitter-bgcolor: var(--sci-sashbox-splitter-bgcolor);--sci-splitter-bgcolor_hover: var(--sci-sashbox-splitter-bgcolor_hover);--sci-splitter-size: var(--sci-sashbox-splitter-size);--sci-splitter-size_hover: var(--sci-sashbox-splitter-size_hover);--sci-splitter-touch-target-size: var(--sci-sashbox-splitter-touch-target-size);--sci-splitter-cross-axis-size: var(--sci-sashbox-splitter-cross-axis-size);--sci-splitter-border-radius: var(--sci-sashbox-splitter-border-radius);--sci-splitter-opacity_active: var(--sci-sashbox-splitter-opacity_active);--sci-splitter-opacity_hover: var(--sci-sashbox-splitter-opacity_hover);flex:none;z-index:1}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.SciSplitterComponent, selector: "sci-splitter", inputs: ["orientation"], outputs: ["start", "move", "end", "reset"] }, { kind: "directive", type: SciSashInitializerDirective, selector: "div[sciSashInitializer].sash", inputs: ["sciSashInitializer"] }, { kind: "directive", type: SciElementRefDirective, selector: "[sciElementRef]", exportAs: ["sciElementRef"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }] });
|
|
426
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
426
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: SciSashboxComponent, decorators: [{
|
|
427
427
|
type: Component,
|
|
428
428
|
args: [{ selector: 'sci-sashbox', providers: [{
|
|
429
429
|
provide: SciSashBoxAccessor,
|
|
@@ -507,16 +507,16 @@ function provideSashBoxAccessor(component) {
|
|
|
507
507
|
*/
|
|
508
508
|
class SciSashboxModule {
|
|
509
509
|
}
|
|
510
|
-
SciSashboxModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
511
|
-
SciSashboxModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
510
|
+
SciSashboxModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: SciSashboxModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
511
|
+
SciSashboxModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.0.2", ngImport: i0, type: SciSashboxModule, declarations: [SciSashboxComponent,
|
|
512
512
|
SciSashDirective,
|
|
513
513
|
SciSashInitializerDirective,
|
|
514
514
|
SciElementRefDirective], imports: [CommonModule,
|
|
515
515
|
SciSplitterModule], exports: [SciSashboxComponent,
|
|
516
516
|
SciSashDirective] });
|
|
517
|
-
SciSashboxModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
517
|
+
SciSashboxModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: SciSashboxModule, imports: [CommonModule,
|
|
518
518
|
SciSplitterModule] });
|
|
519
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
519
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: SciSashboxModule, decorators: [{
|
|
520
520
|
type: NgModule,
|
|
521
521
|
args: [{
|
|
522
522
|
declarations: [
|