UNPKG

@duoduo-oba/ng-devui

Version:

DevUI components based on Angular

225 lines 16.8 kB
/** * @fileoverview added by tsickle * Generated from: resize.directive.ts * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import { Directive, ElementRef, EventEmitter, Input, NgZone, Output } from '@angular/core'; var ResizeDirective = /** @class */ (function () { function ResizeDirective(el, ngZone) { var _this = this; this.el = el; this.ngZone = ngZone; // 是否允许拖动 this.enableResize = true; // 按下事件,mousedown,touchstart等 this.pressEvent = new EventEmitter(); // 拖动中事件,mousemove,touchmove等 this.dragEvent = new EventEmitter(); // 释放事件,mouseup,touchend等 this.releaseEvent = new EventEmitter(); this.bind = (/** * @param {?} el * @param {?} event * @param {?} callback * @return {?} */ function (el, event, callback) { return el.addEventListener && el.addEventListener(event, callback); }); this.unbind = (/** * @param {?} el * @param {?} event * @param {?} callback * @return {?} */ function (el, event, callback) { return el && el.removeEventListener && el.removeEventListener(event, callback); }); this.mousedown = (/** * @param {?} e * @return {?} */ function (e) { _this.bind(document, 'mousemove', _this.mousemove); _this.bind(document, 'mouseup', _this.mouseup); _this.pressEvent.emit(_this.normalizeEvent(e)); }); this.mousemove = (/** * @param {?} e * @return {?} */ function (e) { _this.dragEvent.emit(_this.normalizeEvent(e)); }); this.mouseup = (/** * @param {?} e * @return {?} */ function (e) { _this.unbind(document, 'mousemove', _this.mousemove); _this.unbind(document, 'mouseup', _this.mouseup); _this.releaseEvent.emit(_this.normalizeEvent(e)); }); this.touchstart = (/** * @param {?} e * @return {?} */ function (e) { _this.bind(document, 'touchmove', _this.touchmove); _this.bind(document, 'touchend', _this.touchend); if (e.touches.length === 1) { _this.pressEvent.emit(_this.normalizeEvent(e)); } }); this.touchmove = (/** * @param {?} e * @return {?} */ function (e) { if (e.touches.length === 1) { _this.dragEvent.emit(_this.normalizeEvent(e)); } }); this.touchend = (/** * @param {?} e * @return {?} */ function (e) { _this.bind(document, 'touchmove', _this.touchmove); _this.bind(document, 'touchend', _this.touchend); if (e.touches.length === 0) { _this.releaseEvent.emit(_this.normalizeEvent(e)); } }); } /** * @return {?} */ ResizeDirective.prototype.ngOnInit = /** * @return {?} */ function () { var _this = this; if (this.enableResize) { this.ngZone.runOutsideAngular((/** * @return {?} */ function () { _this.bindEvent(); })); } }; /** * @return {?} */ ResizeDirective.prototype.ngOnDestroy = /** * @return {?} */ function () { if (this.enableResize) { this.unbind(this.el.nativeElement, 'mousedown', this.mousedown); this.unbind(this.el.nativeElement, 'touchstart', this.touchstart); } }; /** * @return {?} */ ResizeDirective.prototype.bindEvent = /** * @return {?} */ function () { /** @type {?} */ var element = this.el.nativeElement; // 绑定mousedown事件 this.bind(element, 'mousedown', this.mousedown); // 绑定触屏事件 this.bind(element, 'touchstart', this.touchstart); }; // 返回常用位置信息 // 返回常用位置信息 /** * @param {?} e * @return {?} */ ResizeDirective.prototype.normalizeEvent = // 返回常用位置信息 /** * @param {?} e * @return {?} */ function (e) { // 判断事件类型,用于计算位置坐标 if (e.type.match(/touch/)) { return { pageX: e.changedTouches[0].pageX, pageY: e.changedTouches[0].pageY, clientX: e.changedTouches[0].clientX, clientY: e.changedTouches[0].clientY, type: e.type, originalEvent: e, isTouch: true }; } return { pageX: e.pageX, pageY: e.pageY, clientX: e.clientX, clientY: e.clientY, offsetX: e.offsetX, offsetY: e.offsetY, type: e.type, originalEvent: e }; }; ResizeDirective.decorators = [ { type: Directive, args: [{ selector: '[dResize]' },] } ]; /** @nocollapse */ ResizeDirective.ctorParameters = function () { return [ { type: ElementRef }, { type: NgZone } ]; }; ResizeDirective.propDecorators = { enableResize: [{ type: Input }], pressEvent: [{ type: Output }], dragEvent: [{ type: Output }], releaseEvent: [{ type: Output }] }; return ResizeDirective; }()); export { ResizeDirective }; if (false) { /** @type {?} */ ResizeDirective.prototype.enableResize; /** @type {?} */ ResizeDirective.prototype.pressEvent; /** @type {?} */ ResizeDirective.prototype.dragEvent; /** @type {?} */ ResizeDirective.prototype.releaseEvent; /** @type {?} */ ResizeDirective.prototype.bind; /** @type {?} */ ResizeDirective.prototype.unbind; /** @type {?} */ ResizeDirective.prototype.mousedown; /** @type {?} */ ResizeDirective.prototype.mousemove; /** @type {?} */ ResizeDirective.prototype.mouseup; /** @type {?} */ ResizeDirective.prototype.touchstart; /** @type {?} */ ResizeDirective.prototype.touchmove; /** @type {?} */ ResizeDirective.prototype.touchend; /** * @type {?} * @private */ ResizeDirective.prototype.el; /** * @type {?} * @private */ ResizeDirective.prototype.ngZone; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzaXplLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25nLWRldnVpL3NwbGl0dGVyLyIsInNvdXJjZXMiOlsicmVzaXplLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFxQixNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFOUc7SUFZRSx5QkFBb0IsRUFBYyxFQUFVLE1BQWM7UUFBMUQsaUJBQThEO1FBQTFDLE9BQUUsR0FBRixFQUFFLENBQVk7UUFBVSxXQUFNLEdBQU4sTUFBTSxDQUFROztRQVBqRCxpQkFBWSxHQUFHLElBQUksQ0FBQzs7UUFFbkIsZUFBVSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7O1FBRWhDLGNBQVMsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDOztRQUUvQixpQkFBWSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFrQjVDLFNBQUk7Ozs7OztRQUFHLFVBQUMsRUFBRSxFQUFFLEtBQUssRUFBRSxRQUFRLElBQUssT0FBQSxFQUFFLENBQUMsZ0JBQWdCLElBQUksRUFBRSxDQUFDLGdCQUFnQixDQUFDLEtBQUssRUFBRSxRQUFRLENBQUMsRUFBM0QsQ0FBMkQsRUFBQztRQUU1RixXQUFNOzs7Ozs7UUFBRyxVQUFDLEVBQUUsRUFBRSxLQUFLLEVBQUUsUUFBUSxJQUFLLE9BQUEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxtQkFBbUIsSUFBSSxFQUFFLENBQUMsbUJBQW1CLENBQUMsS0FBSyxFQUFFLFFBQVEsQ0FBQyxFQUF2RSxDQUF1RSxFQUFDO1FBVTFHLGNBQVM7Ozs7UUFBRyxVQUFDLENBQUM7WUFDWixLQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxXQUFXLEVBQUUsS0FBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ2pELEtBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLFNBQVMsRUFBRSxLQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDN0MsS0FBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQy9DLENBQUMsRUFBQTtRQUVELGNBQVM7Ozs7UUFBRyxVQUFDLENBQUM7WUFDWixLQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDOUMsQ0FBQyxFQUFBO1FBRUQsWUFBTzs7OztRQUFHLFVBQUMsQ0FBQztZQUNWLEtBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLFdBQVcsRUFBRSxLQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDbkQsS0FBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsU0FBUyxFQUFFLEtBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUMvQyxLQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxLQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDakQsQ0FBQyxFQUFBO1FBRUQsZUFBVTs7OztRQUFHLFVBQUMsQ0FBQztZQUNiLEtBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLFdBQVcsRUFBRSxLQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDakQsS0FBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsVUFBVSxFQUFFLEtBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUMvQyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtnQkFDMUIsS0FBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQzlDO1FBQ0gsQ0FBQyxFQUFBO1FBRUQsY0FBUzs7OztRQUFHLFVBQUMsQ0FBQztZQUNaLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO2dCQUMxQixLQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDN0M7UUFDSCxDQUFDLEVBQUE7UUFFRCxhQUFROzs7O1FBQUcsVUFBQyxDQUFDO1lBQ1gsS0FBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsV0FBVyxFQUFFLEtBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUNqRCxLQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxVQUFVLEVBQUUsS0FBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQy9DLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO2dCQUMxQixLQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxLQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDaEQ7UUFDSCxDQUFDLEVBQUE7SUFqRTRELENBQUM7Ozs7SUFFOUQsa0NBQVE7OztJQUFSO1FBQUEsaUJBTUM7UUFMQyxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUU7WUFDckIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxpQkFBaUI7OztZQUFDO2dCQUM1QixLQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDbkIsQ0FBQyxFQUFDLENBQUM7U0FDSjtJQUNILENBQUM7Ozs7SUFFRCxxQ0FBVzs7O0lBQVg7UUFDRSxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUU7WUFDckIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsRUFBRSxXQUFXLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ2hFLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLEVBQUUsWUFBWSxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztTQUNuRTtJQUNILENBQUM7Ozs7SUFNRCxtQ0FBUzs7O0lBQVQ7O1lBQ1EsT0FBTyxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYTtRQUNyQyxnQkFBZ0I7UUFDaEIsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsV0FBVyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNoRCxTQUFTO1FBQ1QsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsWUFBWSxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBd0NELFdBQVc7Ozs7OztJQUNYLHdDQUFjOzs7Ozs7SUFBZCxVQUFlLENBQUM7UUFDZCxrQkFBa0I7UUFDbEIsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsRUFBRTtZQUN6QixPQUFPO2dCQUNILEtBQUssRUFBRSxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUs7Z0JBQ2hDLEtBQUssRUFBRSxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUs7Z0JBQ2hDLE9BQU8sRUFBRSxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU87Z0JBQ3BDLE9BQU8sRUFBRSxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU87Z0JBQ3BDLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSTtnQkFDWixhQUFhLEVBQUUsQ0FBQztnQkFDaEIsT0FBTyxFQUFFLElBQUk7YUFDaEIsQ0FBQztTQUNMO1FBQ0MsT0FBTztZQUNILEtBQUssRUFBRSxDQUFDLENBQUMsS0FBSztZQUNkLEtBQUssRUFBRSxDQUFDLENBQUMsS0FBSztZQUNkLE9BQU8sRUFBRSxDQUFDLENBQUMsT0FBTztZQUNsQixPQUFPLEVBQUUsQ0FBQyxDQUFDLE9BQU87WUFDbEIsT0FBTyxFQUFFLENBQUMsQ0FBQyxPQUFPO1lBQ2xCLE9BQU8sRUFBRSxDQUFDLENBQUMsT0FBTztZQUNsQixJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUk7WUFDWixhQUFhLEVBQUUsQ0FBQztTQUNuQixDQUFDO0lBQ04sQ0FBQzs7Z0JBdkdBLFNBQVMsU0FBQztvQkFDVCxRQUFRLEVBQUUsV0FBVztpQkFDdEI7Ozs7Z0JBSm1CLFVBQVU7Z0JBQXVCLE1BQU07OzsrQkFPeEQsS0FBSzs2QkFFTCxNQUFNOzRCQUVOLE1BQU07K0JBRU4sTUFBTTs7SUE2RlQsc0JBQUM7Q0FBQSxBQXhHRCxJQXdHQztTQXJHWSxlQUFlOzs7SUFFMUIsdUNBQTZCOztJQUU3QixxQ0FBMEM7O0lBRTFDLG9DQUF5Qzs7SUFFekMsdUNBQTRDOztJQWtCNUMsK0JBQTRGOztJQUU1RixpQ0FBMEc7O0lBVTFHLG9DQUlDOztJQUVELG9DQUVDOztJQUVELGtDQUlDOztJQUVELHFDQU1DOztJQUVELG9DQUlDOztJQUVELG1DQU1DOzs7OztJQWpFVyw2QkFBc0I7Ozs7O0lBQUUsaUNBQXNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIElucHV0LCBOZ1pvbmUsIE9uRGVzdHJveSwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbkBEaXJlY3RpdmUoe1xyXG4gIHNlbGVjdG9yOiAnW2RSZXNpemVdJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgUmVzaXplRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gIC8vIOaYr+WQpuWFgeiuuOaLluWKqFxyXG4gIEBJbnB1dCgpIGVuYWJsZVJlc2l6ZSA9IHRydWU7XHJcbiAgLy8g5oyJ5LiL5LqL5Lu277yMbW91c2Vkb3du77yMdG91Y2hzdGFydOetiVxyXG4gIEBPdXRwdXQoKSBwcmVzc0V2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIC8vIOaLluWKqOS4reS6i+S7tu+8jG1vdXNlbW92Ze+8jHRvdWNobW92ZeetiVxyXG4gIEBPdXRwdXQoKSBkcmFnRXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAvLyDph4rmlL7kuovku7bvvIxtb3VzZXVw77yMdG91Y2hlbmTnrYlcclxuICBAT3V0cHV0KCkgcmVsZWFzZUV2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZWw6IEVsZW1lbnRSZWYsIHByaXZhdGUgbmdab25lOiBOZ1pvbmUpIHt9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgaWYgKHRoaXMuZW5hYmxlUmVzaXplKSB7XHJcbiAgICAgIHRoaXMubmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcclxuICAgICAgICB0aGlzLmJpbmRFdmVudCgpO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCkge1xyXG4gICAgaWYgKHRoaXMuZW5hYmxlUmVzaXplKSB7XHJcbiAgICAgIHRoaXMudW5iaW5kKHRoaXMuZWwubmF0aXZlRWxlbWVudCwgJ21vdXNlZG93bicsIHRoaXMubW91c2Vkb3duKTtcclxuICAgICAgdGhpcy51bmJpbmQodGhpcy5lbC5uYXRpdmVFbGVtZW50LCAndG91Y2hzdGFydCcsIHRoaXMudG91Y2hzdGFydCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBiaW5kID0gKGVsLCBldmVudCwgY2FsbGJhY2spID0+IGVsLmFkZEV2ZW50TGlzdGVuZXIgJiYgZWwuYWRkRXZlbnRMaXN0ZW5lcihldmVudCwgY2FsbGJhY2spO1xyXG5cclxuICB1bmJpbmQgPSAoZWwsIGV2ZW50LCBjYWxsYmFjaykgPT4gZWwgJiYgZWwucmVtb3ZlRXZlbnRMaXN0ZW5lciAmJiBlbC5yZW1vdmVFdmVudExpc3RlbmVyKGV2ZW50LCBjYWxsYmFjayk7XHJcblxyXG4gIGJpbmRFdmVudCgpIHtcclxuICAgIGNvbnN0IGVsZW1lbnQgPSB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQ7XHJcbiAgICAvLyDnu5Hlrpptb3VzZWRvd27kuovku7ZcclxuICAgIHRoaXMuYmluZChlbGVtZW50LCAnbW91c2Vkb3duJywgdGhpcy5tb3VzZWRvd24pO1xyXG4gICAgLy8g57uR5a6a6Kem5bGP5LqL5Lu2XHJcbiAgICB0aGlzLmJpbmQoZWxlbWVudCwgJ3RvdWNoc3RhcnQnLCB0aGlzLnRvdWNoc3RhcnQpO1xyXG4gIH1cclxuXHJcbiAgbW91c2Vkb3duID0gKGUpID0+IHtcclxuICAgIHRoaXMuYmluZChkb2N1bWVudCwgJ21vdXNlbW92ZScsIHRoaXMubW91c2Vtb3ZlKTtcclxuICAgIHRoaXMuYmluZChkb2N1bWVudCwgJ21vdXNldXAnLCB0aGlzLm1vdXNldXApO1xyXG4gICAgdGhpcy5wcmVzc0V2ZW50LmVtaXQodGhpcy5ub3JtYWxpemVFdmVudChlKSk7XHJcbiAgfVxyXG5cclxuICBtb3VzZW1vdmUgPSAoZSkgPT4ge1xyXG4gICAgdGhpcy5kcmFnRXZlbnQuZW1pdCh0aGlzLm5vcm1hbGl6ZUV2ZW50KGUpKTtcclxuICB9XHJcblxyXG4gIG1vdXNldXAgPSAoZSkgPT4ge1xyXG4gICAgdGhpcy51bmJpbmQoZG9jdW1lbnQsICdtb3VzZW1vdmUnLCB0aGlzLm1vdXNlbW92ZSk7XHJcbiAgICB0aGlzLnVuYmluZChkb2N1bWVudCwgJ21vdXNldXAnLCB0aGlzLm1vdXNldXApO1xyXG4gICAgdGhpcy5yZWxlYXNlRXZlbnQuZW1pdCh0aGlzLm5vcm1hbGl6ZUV2ZW50KGUpKTtcclxuICB9XHJcblxyXG4gIHRvdWNoc3RhcnQgPSAoZSkgPT4ge1xyXG4gICAgdGhpcy5iaW5kKGRvY3VtZW50LCAndG91Y2htb3ZlJywgdGhpcy50b3VjaG1vdmUpO1xyXG4gICAgdGhpcy5iaW5kKGRvY3VtZW50LCAndG91Y2hlbmQnLCB0aGlzLnRvdWNoZW5kKTtcclxuICAgIGlmIChlLnRvdWNoZXMubGVuZ3RoID09PSAxKSB7XHJcbiAgICAgIHRoaXMucHJlc3NFdmVudC5lbWl0KHRoaXMubm9ybWFsaXplRXZlbnQoZSkpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgdG91Y2htb3ZlID0gKGUpID0+IHtcclxuICAgIGlmIChlLnRvdWNoZXMubGVuZ3RoID09PSAxKSB7XHJcbiAgICAgIHRoaXMuZHJhZ0V2ZW50LmVtaXQodGhpcy5ub3JtYWxpemVFdmVudChlKSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICB0b3VjaGVuZCA9IChlKSA9PiB7XHJcbiAgICB0aGlzLmJpbmQoZG9jdW1lbnQsICd0b3VjaG1vdmUnLCB0aGlzLnRvdWNobW92ZSk7XHJcbiAgICB0aGlzLmJpbmQoZG9jdW1lbnQsICd0b3VjaGVuZCcsIHRoaXMudG91Y2hlbmQpO1xyXG4gICAgaWYgKGUudG91Y2hlcy5sZW5ndGggPT09IDApIHtcclxuICAgICAgdGhpcy5yZWxlYXNlRXZlbnQuZW1pdCh0aGlzLm5vcm1hbGl6ZUV2ZW50KGUpKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vIOi/lOWbnuW4uOeUqOS9jee9ruS/oeaBr1xyXG4gIG5vcm1hbGl6ZUV2ZW50KGUpIHtcclxuICAgIC8vIOWIpOaWreS6i+S7tuexu+Wei++8jOeUqOS6juiuoeeul+S9jee9ruWdkOagh1xyXG4gICAgaWYgKGUudHlwZS5tYXRjaCgvdG91Y2gvKSkge1xyXG4gICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgcGFnZVg6IGUuY2hhbmdlZFRvdWNoZXNbMF0ucGFnZVgsXHJcbiAgICAgICAgICBwYWdlWTogZS5jaGFuZ2VkVG91Y2hlc1swXS5wYWdlWSxcclxuICAgICAgICAgIGNsaWVudFg6IGUuY2hhbmdlZFRvdWNoZXNbMF0uY2xpZW50WCxcclxuICAgICAgICAgIGNsaWVudFk6IGUuY2hhbmdlZFRvdWNoZXNbMF0uY2xpZW50WSxcclxuICAgICAgICAgIHR5cGU6IGUudHlwZSxcclxuICAgICAgICAgIG9yaWdpbmFsRXZlbnQ6IGUsXHJcbiAgICAgICAgICBpc1RvdWNoOiB0cnVlXHJcbiAgICAgIH07XHJcbiAgfVxyXG4gICAgcmV0dXJuIHtcclxuICAgICAgICBwYWdlWDogZS5wYWdlWCxcclxuICAgICAgICBwYWdlWTogZS5wYWdlWSxcclxuICAgICAgICBjbGllbnRYOiBlLmNsaWVudFgsXHJcbiAgICAgICAgY2xpZW50WTogZS5jbGllbnRZLFxyXG4gICAgICAgIG9mZnNldFg6IGUub2Zmc2V0WCxcclxuICAgICAgICBvZmZzZXRZOiBlLm9mZnNldFksXHJcbiAgICAgICAgdHlwZTogZS50eXBlLFxyXG4gICAgICAgIG9yaWdpbmFsRXZlbnQ6IGVcclxuICAgIH07XHJcbn1cclxufVxyXG4iXX0=