UNPKG

@nova-ui/bits

Version:

SolarWinds Nova Framework

97 lines 16.7 kB
// © 2022 SolarWinds Worldwide, LLC. All rights reserved. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to // deal in the Software without restriction, including without limitation the // rights to use, copy, modify, merge, publish, distribute, sublicense, and/or // sell copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. import { Component, ElementRef, Input, NgZone, Renderer2, ViewChild, } from "@angular/core"; import { ResizerDirective } from "../../../common/directives"; import { ResizeDirection, resizeDirectionHelpers, ResizeUnit, } from "../../../common/directives/resizer/public-api"; import { EventBusService } from "../../../services/event-bus.service"; import { UtilService } from "../../../services/util.service"; import * as i0 from "@angular/core"; import * as i1 from "../../../services/util.service"; import * as i2 from "../../../services/event-bus.service"; /** * @ignore */ export class LayoutResizerComponent extends ResizerDirective { constructor(_elRef, _renderer, _utilService, _targetElement, _ngZone, _eventBusService) { super(_elRef, _renderer, _utilService, _targetElement, _ngZone, _eventBusService); this._elRef = _elRef; this._renderer = _renderer; this._utilService = _utilService; this._targetElement = _targetElement; this._ngZone = _ngZone; this._eventBusService = _eventBusService; this.disabled = false; this.resizeClass = "nui-layout-resizer"; } /* * From template can be accessed only public properties * Changing original method access modifier by overriding original protected method */ isResizeHorizontal() { return super.isResizeHorizontal(); } ngOnInit() { this.resizerDirection = this.resizeDirection; this.resizerDisabled = this.disabled; this.resizerValue = this.resizeUnit; this.isMultiple = true; this.offsetSize = this.enableSeparateOffsetSize ? 0 : this._size / 2; } ngAfterViewInit() { // This Overrides ResizerDirective's ngAfterViewInit this.resizePropObj = resizeDirectionHelpers[this.resizeDirection]; this.targetElement = this.resizeElement.elRef; this.parentContainerNode = this.targetElement.nativeElement.parentElement; this.resizeGutter = this._elRef.nativeElement; this.resizerSplit = this.resizerSplitEl.nativeElement; this.addSubscription(); this.addResizeObserver(); this.appendEvents(); this.refreshStyle(); } ngOnDestroy() { this.unlistenEvents(); } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: LayoutResizerComponent, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i1.UtilService }, { token: i0.ElementRef }, { token: i0.NgZone }, { token: i2.EventBusService }], target: i0.ɵɵFactoryTarget.Component }); } static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: LayoutResizerComponent, selector: "nui-layout-resizer", inputs: { resizeDirection: "resizeDirection", resizeElement: "resizeElement", resizeUnit: "resizeUnit", disabled: "disabled", enableSeparateOffsetSize: "enableSeparateOffsetSize" }, host: { properties: { "class.nui-layout-resizer": "true", "class.nui-layout-resizer--vertical": "!isResizeHorizontal()", "class.nui-layout-resizer--horizontal": "isResizeHorizontal()" } }, viewQueries: [{ propertyName: "resizerSplitEl", first: true, predicate: ["resizerSplit"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"nui-layout-resizer__split\" #resizerSplit></div>\n", styles: [":host{position:absolute;display:flex;top:0;z-index:1;width:16px;height:100%}:host.nui-layout-resizer-disabled{pointer-events:none}:host.nui-layout-resizer--hovering{background-color:var(--nui-color-selected,rgba(0, 196, 210, .1))}:host.nui-layout-resizer--hovering .nui-layout-resizer__split{background-color:var(--nui-color-selected-contrast,#00c4d2)}:host.nui-layout-resizer--active{background-color:var(--nui-color-selected-active,rgba(0, 196, 210, .2))}:host.nui-layout-resizer--active .nui-layout-resizer__split{background-color:var(--nui-color-selected-contrast,#00c4d2)}:host.nui-layout-resizer__split{height:100%;width:2px}:host.nui-layout-resizer--horizontal{cursor:ew-resize}:host.nui-layout-resizer--horizontal .nui-layout-resizer__split{width:2px;height:100%;margin:0 auto}:host.nui-layout-resizer--vertical{cursor:ns-resize}:host.nui-layout-resizer--vertical .nui-layout-resizer__split{height:2px;width:100%;margin:auto 0}\n"] }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: LayoutResizerComponent, decorators: [{ type: Component, args: [{ selector: "nui-layout-resizer", host: { "[class.nui-layout-resizer]": "true", "[class.nui-layout-resizer--vertical]": "!isResizeHorizontal()", "[class.nui-layout-resizer--horizontal]": "isResizeHorizontal()", }, template: "<div class=\"nui-layout-resizer__split\" #resizerSplit></div>\n", styles: [":host{position:absolute;display:flex;top:0;z-index:1;width:16px;height:100%}:host.nui-layout-resizer-disabled{pointer-events:none}:host.nui-layout-resizer--hovering{background-color:var(--nui-color-selected,rgba(0, 196, 210, .1))}:host.nui-layout-resizer--hovering .nui-layout-resizer__split{background-color:var(--nui-color-selected-contrast,#00c4d2)}:host.nui-layout-resizer--active{background-color:var(--nui-color-selected-active,rgba(0, 196, 210, .2))}:host.nui-layout-resizer--active .nui-layout-resizer__split{background-color:var(--nui-color-selected-contrast,#00c4d2)}:host.nui-layout-resizer__split{height:100%;width:2px}:host.nui-layout-resizer--horizontal{cursor:ew-resize}:host.nui-layout-resizer--horizontal .nui-layout-resizer__split{width:2px;height:100%;margin:0 auto}:host.nui-layout-resizer--vertical{cursor:ns-resize}:host.nui-layout-resizer--vertical .nui-layout-resizer__split{height:2px;width:100%;margin:auto 0}\n"] }] }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i1.UtilService }, { type: i0.ElementRef }, { type: i0.NgZone }, { type: i2.EventBusService }], propDecorators: { resizeDirection: [{ type: Input }], resizeElement: [{ type: Input }], resizeUnit: [{ type: Input }], disabled: [{ type: Input }], enableSeparateOffsetSize: [{ type: Input }], resizerSplitEl: [{ type: ViewChild, args: ["resizerSplit"] }] } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5b3V0LXJlc2l6ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9sYXlvdXQvbGF5b3V0LXJlc2l6ZXIvbGF5b3V0LXJlc2l6ZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9sYXlvdXQvbGF5b3V0LXJlc2l6ZXIvbGF5b3V0LXJlc2l6ZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEseURBQXlEO0FBQ3pELEVBQUU7QUFDRiwrRUFBK0U7QUFDL0UsNEVBQTRFO0FBQzVFLDhFQUE4RTtBQUM5RSwrRUFBK0U7QUFDL0UsOEVBQThFO0FBQzlFLDREQUE0RDtBQUM1RCxFQUFFO0FBQ0YsNkVBQTZFO0FBQzdFLHVEQUF1RDtBQUN2RCxFQUFFO0FBQ0YsNkVBQTZFO0FBQzdFLDRFQUE0RTtBQUM1RSwrRUFBK0U7QUFDL0UsMEVBQTBFO0FBQzFFLGlGQUFpRjtBQUNqRiw2RUFBNkU7QUFDN0UsaUJBQWlCO0FBRWpCLE9BQU8sRUFFSCxTQUFTLEVBQ1QsVUFBVSxFQUNWLEtBQUssRUFDTCxNQUFNLEVBSU4sU0FBUyxFQUNULFNBQVMsR0FDWixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM5RCxPQUFPLEVBQ0gsZUFBZSxFQUNmLHNCQUFzQixFQUN0QixVQUFVLEdBQ2IsTUFBTSwrQ0FBK0MsQ0FBQztBQUN2RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDdEUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdDQUFnQyxDQUFDOzs7O0FBRTdEOztHQUVHO0FBV0gsTUFBTSxPQUFPLHNCQUNULFNBQVEsZ0JBQWdCO0lBVXhCLFlBQ1ksTUFBa0IsRUFDbEIsU0FBb0IsRUFDcEIsWUFBeUIsRUFDekIsY0FBMEIsRUFDMUIsT0FBZSxFQUNmLGdCQUFpQztRQUV6QyxLQUFLLENBQ0QsTUFBTSxFQUNOLFNBQVMsRUFDVCxZQUFZLEVBQ1osY0FBYyxFQUNkLE9BQU8sRUFDUCxnQkFBZ0IsQ0FDbkIsQ0FBQztRQWRNLFdBQU0sR0FBTixNQUFNLENBQVk7UUFDbEIsY0FBUyxHQUFULFNBQVMsQ0FBVztRQUNwQixpQkFBWSxHQUFaLFlBQVksQ0FBYTtRQUN6QixtQkFBYyxHQUFkLGNBQWMsQ0FBWTtRQUMxQixZQUFPLEdBQVAsT0FBTyxDQUFRO1FBQ2YscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFpQjtRQVZwQyxhQUFRLEdBQUcsS0FBSyxDQUFDO1FBc0JuQixnQkFBVyxHQUFHLG9CQUFvQixDQUFDO0lBRjFDLENBQUM7SUFJRDs7O09BR0c7SUFDSSxrQkFBa0I7UUFDckIsT0FBTyxLQUFLLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztJQUN0QyxDQUFDO0lBRU0sUUFBUTtRQUNYLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDO1FBQzdDLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQztRQUNyQyxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUM7UUFDcEMsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7UUFDdkIsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsd0JBQXdCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUM7SUFDekUsQ0FBQztJQUVNLGVBQWU7UUFDbEIsb0RBQW9EO1FBQ3BELElBQUksQ0FBQyxhQUFhLEdBQUcsc0JBQXNCLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQ2xFLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUM7UUFDOUMsSUFBSSxDQUFDLG1CQUFtQjtZQUNwQixJQUFJLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUM7UUFDbkQsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQztRQUM5QyxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsYUFBYSxDQUFDO1FBQ3RELElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN2QixJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztRQUN6QixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDcEIsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFFTSxXQUFXO1FBQ2QsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQzFCLENBQUM7K0dBL0RRLHNCQUFzQjttR0FBdEIsc0JBQXNCLG9qQkN2RG5DLGlFQUNBOzs0RkRzRGEsc0JBQXNCO2tCQVZsQyxTQUFTOytCQUNJLG9CQUFvQixRQUd4Qjt3QkFDRiw0QkFBNEIsRUFBRSxNQUFNO3dCQUNwQyxzQ0FBc0MsRUFBRSx1QkFBdUI7d0JBQy9ELHdDQUF3QyxFQUFFLHNCQUFzQjtxQkFDbkU7Nk1BTVEsZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyx3QkFBd0I7c0JBQWhDLEtBQUs7Z0JBQ3FCLGNBQWM7c0JBQXhDLFNBQVM7dUJBQUMsY0FBYyIsInNvdXJjZXNDb250ZW50IjpbIi8vIMKpIDIwMjIgU29sYXJXaW5kcyBXb3JsZHdpZGUsIExMQy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyAgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG9cbi8vICBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZVxuLy8gIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vclxuLy8gIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyAgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vICBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vICBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vICBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyAgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vICBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyAgVEhFIFNPRlRXQVJFLlxuXG5pbXBvcnQge1xuICAgIEFmdGVyVmlld0luaXQsXG4gICAgQ29tcG9uZW50LFxuICAgIEVsZW1lbnRSZWYsXG4gICAgSW5wdXQsXG4gICAgTmdab25lLFxuICAgIE9uQ2hhbmdlcyxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT25Jbml0LFxuICAgIFJlbmRlcmVyMixcbiAgICBWaWV3Q2hpbGQsXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5cbmltcG9ydCB7IFJlc2l6ZXJEaXJlY3RpdmUgfSBmcm9tIFwiLi4vLi4vLi4vY29tbW9uL2RpcmVjdGl2ZXNcIjtcbmltcG9ydCB7XG4gICAgUmVzaXplRGlyZWN0aW9uLFxuICAgIHJlc2l6ZURpcmVjdGlvbkhlbHBlcnMsXG4gICAgUmVzaXplVW5pdCxcbn0gZnJvbSBcIi4uLy4uLy4uL2NvbW1vbi9kaXJlY3RpdmVzL3Jlc2l6ZXIvcHVibGljLWFwaVwiO1xuaW1wb3J0IHsgRXZlbnRCdXNTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uLy4uL3NlcnZpY2VzL2V2ZW50LWJ1cy5zZXJ2aWNlXCI7XG5pbXBvcnQgeyBVdGlsU2VydmljZSB9IGZyb20gXCIuLi8uLi8uLi9zZXJ2aWNlcy91dGlsLnNlcnZpY2VcIjtcblxuLyoqXG4gKiBAaWdub3JlXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiBcIm51aS1sYXlvdXQtcmVzaXplclwiLFxuICAgIHRlbXBsYXRlVXJsOiBcIi4vbGF5b3V0LXJlc2l6ZXIuY29tcG9uZW50Lmh0bWxcIixcbiAgICBzdHlsZVVybHM6IFtcIi4vbGF5b3V0LXJlc2l6ZXIuY29tcG9uZW50Lmxlc3NcIl0sXG4gICAgaG9zdDoge1xuICAgICAgICBcIltjbGFzcy5udWktbGF5b3V0LXJlc2l6ZXJdXCI6IFwidHJ1ZVwiLFxuICAgICAgICBcIltjbGFzcy5udWktbGF5b3V0LXJlc2l6ZXItLXZlcnRpY2FsXVwiOiBcIiFpc1Jlc2l6ZUhvcml6b250YWwoKVwiLFxuICAgICAgICBcIltjbGFzcy5udWktbGF5b3V0LXJlc2l6ZXItLWhvcml6b250YWxdXCI6IFwiaXNSZXNpemVIb3Jpem9udGFsKClcIixcbiAgICB9LFxufSlcbmV4cG9ydCBjbGFzcyBMYXlvdXRSZXNpemVyQ29tcG9uZW50XG4gICAgZXh0ZW5kcyBSZXNpemVyRGlyZWN0aXZlXG4gICAgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQsIE9uQ2hhbmdlcywgT25EZXN0cm95XG57XG4gICAgQElucHV0KCkgcmVzaXplRGlyZWN0aW9uOiBSZXNpemVEaXJlY3Rpb247XG4gICAgQElucHV0KCkgcmVzaXplRWxlbWVudDogYW55O1xuICAgIEBJbnB1dCgpIHJlc2l6ZVVuaXQ6IFJlc2l6ZVVuaXQ7XG4gICAgQElucHV0KCkgZGlzYWJsZWQgPSBmYWxzZTtcbiAgICBASW5wdXQoKSBlbmFibGVTZXBhcmF0ZU9mZnNldFNpemU6IGJvb2xlYW47XG4gICAgQFZpZXdDaGlsZChcInJlc2l6ZXJTcGxpdFwiKSByZXNpemVyU3BsaXRFbDogRWxlbWVudFJlZjtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIF9lbFJlZjogRWxlbWVudFJlZixcbiAgICAgICAgcHJpdmF0ZSBfcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgICAgICAgcHJpdmF0ZSBfdXRpbFNlcnZpY2U6IFV0aWxTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIF90YXJnZXRFbGVtZW50OiBFbGVtZW50UmVmLFxuICAgICAgICBwcml2YXRlIF9uZ1pvbmU6IE5nWm9uZSxcbiAgICAgICAgcHJpdmF0ZSBfZXZlbnRCdXNTZXJ2aWNlOiBFdmVudEJ1c1NlcnZpY2VcbiAgICApIHtcbiAgICAgICAgc3VwZXIoXG4gICAgICAgICAgICBfZWxSZWYsXG4gICAgICAgICAgICBfcmVuZGVyZXIsXG4gICAgICAgICAgICBfdXRpbFNlcnZpY2UsXG4gICAgICAgICAgICBfdGFyZ2V0RWxlbWVudCxcbiAgICAgICAgICAgIF9uZ1pvbmUsXG4gICAgICAgICAgICBfZXZlbnRCdXNTZXJ2aWNlXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHVibGljIHJlc2l6ZUNsYXNzID0gXCJudWktbGF5b3V0LXJlc2l6ZXJcIjtcblxuICAgIC8qXG4gICAgICogRnJvbSB0ZW1wbGF0ZSBjYW4gYmUgYWNjZXNzZWQgb25seSBwdWJsaWMgcHJvcGVydGllc1xuICAgICAqIENoYW5naW5nIG9yaWdpbmFsIG1ldGhvZCBhY2Nlc3MgbW9kaWZpZXIgYnkgb3ZlcnJpZGluZyBvcmlnaW5hbCBwcm90ZWN0ZWQgbWV0aG9kXG4gICAgICovXG4gICAgcHVibGljIGlzUmVzaXplSG9yaXpvbnRhbCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHN1cGVyLmlzUmVzaXplSG9yaXpvbnRhbCgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5yZXNpemVyRGlyZWN0aW9uID0gdGhpcy5yZXNpemVEaXJlY3Rpb247XG4gICAgICAgIHRoaXMucmVzaXplckRpc2FibGVkID0gdGhpcy5kaXNhYmxlZDtcbiAgICAgICAgdGhpcy5yZXNpemVyVmFsdWUgPSB0aGlzLnJlc2l6ZVVuaXQ7XG4gICAgICAgIHRoaXMuaXNNdWx0aXBsZSA9IHRydWU7XG4gICAgICAgIHRoaXMub2Zmc2V0U2l6ZSA9IHRoaXMuZW5hYmxlU2VwYXJhdGVPZmZzZXRTaXplID8gMCA6IHRoaXMuX3NpemUgLyAyO1xuICAgIH1cblxuICAgIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgICAgIC8vIFRoaXMgT3ZlcnJpZGVzIFJlc2l6ZXJEaXJlY3RpdmUncyBuZ0FmdGVyVmlld0luaXRcbiAgICAgICAgdGhpcy5yZXNpemVQcm9wT2JqID0gcmVzaXplRGlyZWN0aW9uSGVscGVyc1t0aGlzLnJlc2l6ZURpcmVjdGlvbl07XG4gICAgICAgIHRoaXMudGFyZ2V0RWxlbWVudCA9IHRoaXMucmVzaXplRWxlbWVudC5lbFJlZjtcbiAgICAgICAgdGhpcy5wYXJlbnRDb250YWluZXJOb2RlID1cbiAgICAgICAgICAgIHRoaXMudGFyZ2V0RWxlbWVudC5uYXRpdmVFbGVtZW50LnBhcmVudEVsZW1lbnQ7XG4gICAgICAgIHRoaXMucmVzaXplR3V0dGVyID0gdGhpcy5fZWxSZWYubmF0aXZlRWxlbWVudDtcbiAgICAgICAgdGhpcy5yZXNpemVyU3BsaXQgPSB0aGlzLnJlc2l6ZXJTcGxpdEVsLm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgIHRoaXMuYWRkU3Vic2NyaXB0aW9uKCk7XG4gICAgICAgIHRoaXMuYWRkUmVzaXplT2JzZXJ2ZXIoKTtcbiAgICAgICAgdGhpcy5hcHBlbmRFdmVudHMoKTtcbiAgICAgICAgdGhpcy5yZWZyZXNoU3R5bGUoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMudW5saXN0ZW5FdmVudHMoKTtcbiAgICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwibnVpLWxheW91dC1yZXNpemVyX19zcGxpdFwiICNyZXNpemVyU3BsaXQ+PC9kaXY+XG4iXX0=