UNPKG

ngx-amap

Version:

[![npm](https://img.shields.io/npm/v/ngx-amap.svg)][npm-badge-url] [![npm](https://img.shields.io/npm/dm/ngx-amap.svg)][npm-badge-url] [![Build Status](https://travis-ci.org/xieziyu/ngx-amap.svg?branch=master)][ci-url]

295 lines 21.7 kB
/** * @fileoverview added by tsickle * Generated from: directives/amap-bezier-curve/amap-bezier-curve.directive.ts * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import * as tslib_1 from "tslib"; import { Directive, Input, Output, EventEmitter, NgZone, } from '@angular/core'; import { zip } from 'rxjs'; import { PathOverlayOptions, AMapPathOverlay } from '../../base/amap-path-overlay'; import { AmapBezierCurveService } from './amap-bezier-curve.service'; import { LoggerService } from '../../shared/logger/logger.service'; import { EventBinderService } from '../../shared/event-binder.service'; import { getOptions, ChangeFilter } from '../../utils'; /** @type {?} */ var TAG = 'amap-bezier-curve'; /** @type {?} */ var BezierCurveOptions = tslib_1.__spread(PathOverlayOptions, [ 'isOutline', 'outlineColor', 'dirColor', 'borderWeight', 'showDir', 'path', ]); var AmapBezierCurveDirective = /** @class */ (function (_super) { tslib_1.__extends(AmapBezierCurveDirective, _super); function AmapBezierCurveDirective(os, binder, logger, ngZone) { var _this = _super.call(this, os, binder) || this; _this.os = os; _this.binder = binder; _this.logger = logger; _this.ngZone = ngZone; /** * 额外: 是否隐藏 */ _this.hidden = false; /** * 额外: 是否开启曲线编辑器 */ _this.editor = false; /** * 额外: 是否开启折线编辑器 */ _this.polyEditor = false; // directive events: _this.naReady = new EventEmitter(); _this.inited = false; /** @type {?} */ var editor = _this.os.getEditor(); /** @type {?} */ var polyEditor = _this.os.getPolyEditor(); _this.naEditorAddNode = _this.binder.bindEvent(editor, 'addnode'); _this.naEditorRemoveNode = _this.binder.bindEvent(editor, 'removenode'); _this.naEditorAdjust = _this.binder.bindEvent(editor, 'adjust'); _this.naEditorEnd = _this.binder.bindEvent(editor, 'end'); _this.naPolyEditorAddNode = _this.binder.bindEvent(polyEditor, 'addnode'); _this.naPolyEditorRemoveNode = _this.binder.bindEvent(polyEditor, 'removenode'); _this.naPolyEditorAdjust = _this.binder.bindEvent(polyEditor, 'adjust'); _this.naPolyEditorEnd = _this.binder.bindEvent(polyEditor, 'end'); return _this; } /** * @return {?} */ AmapBezierCurveDirective.prototype.ngOnDestroy = /** * @return {?} */ function () { this.os.destroy(); }; /** * @param {?} changes * @return {?} */ AmapBezierCurveDirective.prototype.ngOnChanges = /** * @param {?} changes * @return {?} */ function (changes) { var _this = this; /** @type {?} */ var filter = ChangeFilter.of(changes); /** @type {?} */ var bezierCurve = this.get(); if (!this.inited) { this.logger.d(TAG, 'initializing ...'); /** @type {?} */ var options = this.options || getOptions(this, BezierCurveOptions); this.logger.d(TAG, 'options:', options); this.os.create(options).subscribe((/** * @param {?} m * @return {?} */ function (m) { _this.ngZone.run((/** * @return {?} */ function () { return _this.naReady.emit(m); })); _this.logger.d(TAG, 'bezierCurve is ready.'); })); this.inited = true; } else { zip(filter.has('path'), bezierCurve).subscribe((/** * @param {?} __0 * @return {?} */ function (_a) { var _b = tslib_1.__read(_a, 2), v = _b[0], p = _b[1]; return p.setPath(v); })); zip(filter.has('options'), bezierCurve).subscribe((/** * @param {?} __0 * @return {?} */ function (_a) { var _b = tslib_1.__read(_a, 2), v = _b[0], p = _b[1]; return p.setOptions(v || {}); })); zip(filter.has('extData'), bezierCurve).subscribe((/** * @param {?} __0 * @return {?} */ function (_a) { var _b = tslib_1.__read(_a, 2), v = _b[0], p = _b[1]; return p.setExtData(v); })); } zip(filter.has('hidden'), bezierCurve).subscribe((/** * @param {?} __0 * @return {?} */ function (_a) { var _b = tslib_1.__read(_a, 2), v = _b[0], p = _b[1]; return v ? p.hide() : p.show(); })); filter.has('editor').subscribe((/** * @param {?} v * @return {?} */ function (v) { return _this.os.toggleEditor(v); })); filter.has('polyEditor').subscribe((/** * @param {?} v * @return {?} */ function (v) { return _this.os.togglePolyEditor(v); })); }; /** * 获取已创建的 AMap.BezierCurve 对象 */ /** * 获取已创建的 AMap.BezierCurve 对象 * @return {?} */ AmapBezierCurveDirective.prototype.get = /** * 获取已创建的 AMap.BezierCurve 对象 * @return {?} */ function () { return this.os.get(); }; AmapBezierCurveDirective.decorators = [ { type: Directive, args: [{ selector: 'amap-bezier-curve', exportAs: 'bezier-curve', providers: [AmapBezierCurveService], },] } ]; /** @nocollapse */ AmapBezierCurveDirective.ctorParameters = function () { return [ { type: AmapBezierCurveService }, { type: EventBinderService }, { type: LoggerService }, { type: NgZone } ]; }; AmapBezierCurveDirective.propDecorators = { isOutline: [{ type: Input }], outlineColor: [{ type: Input }], dirColor: [{ type: Input }], borderWeight: [{ type: Input }], showDir: [{ type: Input }], path: [{ type: Input }], hidden: [{ type: Input }], editor: [{ type: Input }], polyEditor: [{ type: Input }], options: [{ type: Input }], naReady: [{ type: Output }], naEditorAddNode: [{ type: Output }], naEditorRemoveNode: [{ type: Output }], naEditorAdjust: [{ type: Output }], naEditorEnd: [{ type: Output }], naPolyEditorAddNode: [{ type: Output }], naPolyEditorRemoveNode: [{ type: Output }], naPolyEditorAdjust: [{ type: Output }], naPolyEditorEnd: [{ type: Output }] }; return AmapBezierCurveDirective; }(AMapPathOverlay)); export { AmapBezierCurveDirective }; if (false) { /** * 线条是否带描边 * @type {?} */ AmapBezierCurveDirective.prototype.isOutline; /** * 线条描边颜色 * @type {?} */ AmapBezierCurveDirective.prototype.outlineColor; /** * 方向箭头颜色 * @type {?} */ AmapBezierCurveDirective.prototype.dirColor; /** * 描边的宽度 * @type {?} */ AmapBezierCurveDirective.prototype.borderWeight; /** * 是否延路径显示方向箭头 * @type {?} */ AmapBezierCurveDirective.prototype.showDir; /** * 贝瑟尔曲线的路径 * @type {?} */ AmapBezierCurveDirective.prototype.path; /** * 额外: 是否隐藏 * @type {?} */ AmapBezierCurveDirective.prototype.hidden; /** * 额外: 是否开启曲线编辑器 * @type {?} */ AmapBezierCurveDirective.prototype.editor; /** * 额外: 是否开启折线编辑器 * @type {?} */ AmapBezierCurveDirective.prototype.polyEditor; /** * 额外: 会覆盖其他属性的配置方式 * @type {?} */ AmapBezierCurveDirective.prototype.options; /** @type {?} */ AmapBezierCurveDirective.prototype.naReady; /** @type {?} */ AmapBezierCurveDirective.prototype.naEditorAddNode; /** @type {?} */ AmapBezierCurveDirective.prototype.naEditorRemoveNode; /** @type {?} */ AmapBezierCurveDirective.prototype.naEditorAdjust; /** @type {?} */ AmapBezierCurveDirective.prototype.naEditorEnd; /** @type {?} */ AmapBezierCurveDirective.prototype.naPolyEditorAddNode; /** @type {?} */ AmapBezierCurveDirective.prototype.naPolyEditorRemoveNode; /** @type {?} */ AmapBezierCurveDirective.prototype.naPolyEditorAdjust; /** @type {?} */ AmapBezierCurveDirective.prototype.naPolyEditorEnd; /** * @type {?} * @private */ AmapBezierCurveDirective.prototype.inited; /** * @type {?} * @protected */ AmapBezierCurveDirective.prototype.os; /** * @type {?} * @protected */ AmapBezierCurveDirective.prototype.binder; /** * @type {?} * @private */ AmapBezierCurveDirective.prototype.logger; /** * @type {?} * @private */ AmapBezierCurveDirective.prototype.ngZone; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW1hcC1iZXppZXItY3VydmUuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vbmd4LWFtYXAvIiwic291cmNlcyI6WyJkaXJlY3RpdmVzL2FtYXAtYmV6aWVyLWN1cnZlL2FtYXAtYmV6aWVyLWN1cnZlLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULEtBQUssRUFFTCxNQUFNLEVBQ04sWUFBWSxFQUdaLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzNCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxlQUFlLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNuRixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNyRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDbkUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDdkUsT0FBTyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsTUFBTSxhQUFhLENBQUM7O0lBRWpELEdBQUcsR0FBRyxtQkFBbUI7O0lBQ3pCLGtCQUFrQixvQkFDbkIsa0JBQWtCO0lBQ3JCLFdBQVc7SUFDWCxjQUFjO0lBQ2QsVUFBVTtJQUNWLGNBQWM7SUFDZCxTQUFTO0lBQ1QsTUFBTTtFQUNQO0FBRUQ7SUFLOEMsb0RBQWlDO0lBMkQ3RSxrQ0FDWSxFQUEwQixFQUMxQixNQUEwQixFQUM1QixNQUFxQixFQUNyQixNQUFjO1FBSnhCLFlBTUUsa0JBQU0sRUFBRSxFQUFFLE1BQU0sQ0FBQyxTQVdsQjtRQWhCVyxRQUFFLEdBQUYsRUFBRSxDQUF3QjtRQUMxQixZQUFNLEdBQU4sTUFBTSxDQUFvQjtRQUM1QixZQUFNLEdBQU4sTUFBTSxDQUFlO1FBQ3JCLFlBQU0sR0FBTixNQUFNLENBQVE7Ozs7UUFqQ2YsWUFBTSxH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Ozs7O0lBQ3BDLDBDQUE2Qjs7Ozs7SUFDN0IsMENBQXNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgRGlyZWN0aXZlLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPdXRwdXQsXG4gIEV2ZW50RW1pdHRlcixcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgT25DaGFuZ2VzLFxuICBOZ1pvbmUsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgemlwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBQYXRoT3ZlcmxheU9wdGlvbnMsIEFNYXBQYXRoT3ZlcmxheSB9IGZyb20gJy4uLy4uL2Jhc2UvYW1hcC1wYXRoLW92ZXJsYXknO1xuaW1wb3J0IHsgQW1hcEJlemllckN1cnZlU2VydmljZSB9IGZyb20gJy4vYW1hcC1iZXppZXItY3VydmUuc2VydmljZSc7XG5pbXBvcnQgeyBMb2dnZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2hhcmVkL2xvZ2dlci9sb2dnZXIuc2VydmljZSc7XG5pbXBvcnQgeyBFdmVudEJpbmRlclNlcnZpY2UgfSBmcm9tICcuLi8uLi9zaGFyZWQvZXZlbnQtYmluZGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgZ2V0T3B0aW9ucywgQ2hhbmdlRmlsdGVyIH0gZnJvbSAnLi4vLi4vdXRpbHMnO1xuXG5jb25zdCBUQUcgPSAnYW1hcC1iZXppZXItY3VydmUnO1xuY29uc3QgQmV6aWVyQ3VydmVPcHRpb25zID0gW1xuICAuLi5QYXRoT3ZlcmxheU9wdGlvbnMsXG4gICdpc091dGxpbmUnLFxuICAnb3V0bGluZUNvbG9yJyxcbiAgJ2RpckNvbG9yJyxcbiAgJ2JvcmRlcldlaWdodCcsXG4gICdzaG93RGlyJyxcbiAgJ3BhdGgnLFxuXTtcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnYW1hcC1iZXppZXItY3VydmUnLFxuICBleHBvcnRBczogJ2Jlemllci1jdXJ2ZScsXG4gIHByb3ZpZGVyczogW0FtYXBCZXppZXJDdXJ2ZVNlcnZpY2VdLFxufSlcbmV4cG9ydCBjbGFzcyBBbWFwQmV6aWVyQ3VydmVEaXJlY3RpdmUgZXh0ZW5kcyBBTWFwUGF0aE92ZXJsYXk8QU1hcC5CZXppZXJDdXJ2ZT5cbiAgaW1wbGVtZW50cyBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XG4gIC8vIC0tLS0gT3B0aW9ucyAtLS0tXG4gIC8qKlxuICAgKiDnur/mnaHmmK/lkKbluKbmj4/ovrlcbiAgICovXG4gIEBJbnB1dCgpIGlzT3V0bGluZTogYm9vbGVhbjtcbiAgLyoqXG4gICAqIOe6v+adoeaPj+i+ueminOiJslxuICAgKi9cbiAgQElucHV0KCkgb3V0bGluZUNvbG9yOiBzdHJpbmc7XG4gIC8qKlxuICAgKiDmlrnlkJHnrq3lpLTpopzoibJcbiAgICovXG4gIEBJbnB1dCgpIGRpckNvbG9yOiBzdHJpbmc7XG4gIC8qKlxuICAgKiDmj4/ovrnnmoTlrr3luqZcbiAgICovXG4gIEBJbnB1dCgpIGJvcmRlcldlaWdodDogbnVtYmVyO1xuICAvKipcbiAgICog5piv5ZCm5bu26Lev5b6E5pi+56S65pa55ZCR566t5aS0XG4gICAqL1xuICBASW5wdXQoKSBzaG93RGlyOiBib29sZWFuO1xuICAvKipcbiAgICog6LSd55Gf5bCU5puy57q/55qE6Lev5b6EXG4gICAqL1xuICBASW5wdXQoKSBwYXRoOiBBcnJheTxBcnJheTxudW1iZXIgfCBzdHJpbmcgfCBBcnJheTxzdHJpbmcgfCBudW1iZXI+Pj47XG4gIC8qKlxuICAgKiDpop3lpJY6IOaYr+WQpumakOiXj1xuICAgKi9cbiAgQElucHV0KCkgaGlkZGVuID0gZmFsc2U7XG4gIC8qKlxuICAgKiDpop3lpJY6IOaYr+WQpuW8gOWQr+absue6v+e8lui+keWZqFxuICAgKi9cbiAgQElucHV0KCkgZWRpdG9yID0gZmFsc2U7XG4gIC8qKlxuICAgKiDpop3lpJY6IOaYr+WQpuW8gOWQr+aKmOe6v+e8lui+keWZqFxuICAgKi9cbiAgQElucHV0KCkgcG9seUVkaXRvciA9IGZhbHNlO1xuICAvKipcbiAgICog6aKd5aSWOiDkvJropobnm5blhbbku5blsZ7mgKfnmoTphY3nva7mlrnlvI9cbiAgICovXG4gIEBJbnB1dCgpIG9wdGlvbnM6IEFNYXAuQmV6aWVyQ3VydmUuT3B0aW9ucztcblxuICAvLyBkaXJlY3RpdmUgZXZlbnRzOlxuICBAT3V0cHV0KCkgbmFSZWFkeSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAvLyBlZGl0b3IgZXZlbnRzOlxuICBAT3V0cHV0KCkgbmFFZGl0b3JBZGROb2RlOiBFdmVudEVtaXR0ZXI8YW55PjtcbiAgQE91dHB1dCgpIG5hRWRpdG9yUmVtb3ZlTm9kZTogRXZlbnRFbWl0dGVyPGFueT47XG4gIEBPdXRwdXQoKSBuYUVkaXRvckFkanVzdDogRXZlbnRFbWl0dGVyPGFueT47XG4gIEBPdXRwdXQoKSBuYUVkaXRvckVuZDogRXZlbnRFbWl0dGVyPGFueT47XG4gIEBPdXRwdXQoKSBuYVBvbHlFZGl0b3JBZGROb2RlOiBFdmVudEVtaXR0ZXI8YW55PjtcbiAgQE91dHB1dCgpIG5hUG9seUVkaXRvclJlbW92ZU5vZGU6IEV2ZW50RW1pdHRlcjxhbnk+O1xuICBAT3V0cHV0KCkgbmFQb2x5RWRpdG9yQWRqdXN0OiBFdmVudEVtaXR0ZXI8YW55PjtcbiAgQE91dHB1dCgpIG5hUG9seUVkaXRvckVuZDogRXZlbnRFbWl0dGVyPGFueT47XG5cbiAgcHJpdmF0ZSBpbml0ZWQgPSBmYWxzZTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcm90ZWN0ZWQgb3M6IEFtYXBCZXppZXJDdXJ2ZVNlcnZpY2UsXG4gICAgcHJvdGVjdGVkIGJpbmRlcjogRXZlbnRCaW5kZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgbG9nZ2VyOiBMb2dnZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgbmdab25lOiBOZ1pvbmUsXG4gICkge1xuICAgIHN1cGVyKG9zLCBiaW5kZXIpO1xuICAgIGNvbnN0IGVkaXRvciA9IHRoaXMub3MuZ2V0RWRpdG9yKCk7XG4gICAgY29uc3QgcG9seUVkaXRvciA9IHRoaXMub3MuZ2V0UG9seUVkaXRvcigpO1xuICAgIHRoaXMubmFFZGl0b3JBZGROb2RlID0gdGhpcy5iaW5kZXIuYmluZEV2ZW50KGVkaXRvciwgJ2FkZG5vZGUnKTtcbiAgICB0aGlzLm5hRWRpdG9yUmVtb3ZlTm9kZSA9IHRoaXMuYmluZGVyLmJpbmRFdmVudChlZGl0b3IsICdyZW1vdmVub2RlJyk7XG4gICAgdGhpcy5uYUVkaXRvckFkanVzdCA9IHRoaXMuYmluZGVyLmJpbmRFdmVudChlZGl0b3IsICdhZGp1c3QnKTtcbiAgICB0aGlzLm5hRWRpdG9yRW5kID0gdGhpcy5iaW5kZXIuYmluZEV2ZW50KGVkaXRvciwgJ2VuZCcpO1xuICAgIHRoaXMubmFQb2x5RWRpdG9yQWRkTm9kZSA9IHRoaXMuYmluZGVyLmJpbmRFdmVudChwb2x5RWRpdG9yLCAnYWRkbm9kZScpO1xuICAgIHRoaXMubmFQb2x5RWRpdG9yUmVtb3ZlTm9kZSA9IHRoaXMuYmluZGVyLmJpbmRFdmVudChwb2x5RWRpdG9yLCAncmVtb3Zlbm9kZScpO1xuICAgIHRoaXMubmFQb2x5RWRpdG9yQWRqdXN0ID0gdGhpcy5iaW5kZXIuYmluZEV2ZW50KHBvbHlFZGl0b3IsICdhZGp1c3QnKTtcbiAgICB0aGlzLm5hUG9seUVkaXRvckVuZCA9IHRoaXMuYmluZGVyLmJpbmRFdmVudChwb2x5RWRpdG9yLCAnZW5kJyk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLm9zLmRlc3Ryb3koKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICBjb25zdCBmaWx0ZXIgPSBDaGFuZ2VGaWx0ZXIub2YoY2hhbmdlcyk7XG4gICAgY29uc3QgYmV6aWVyQ3VydmUgPSB0aGlzLmdldCgpO1xuICAgIGlmICghdGhpcy5pbml0ZWQpIHtcbiAgICAgIHRoaXMubG9nZ2VyLmQoVEFHLCAnaW5pdGlhbGl6aW5nIC4uLicpO1xuICAgICAgY29uc3Qgb3B0aW9ucyA9XG4gICAgICAgIHRoaXMub3B0aW9ucyB8fCBnZXRPcHRpb25zPEFNYXAuQmV6aWVyQ3VydmUuT3B0aW9ucz4odGhpcywgQmV6aWVyQ3VydmVPcHRpb25zKTtcbiAgICAgIHRoaXMubG9nZ2VyLmQoVEFHLCAnb3B0aW9uczonLCBvcHRpb25zKTtcbiAgICAgIHRoaXMub3MuY3JlYXRlKG9wdGlvbnMpLnN1YnNjcmliZShtID0+IHtcbiAgICAgICAgdGhpcy5uZ1pvbmUucnVuKCgpID0+IHRoaXMubmFSZWFkeS5lbWl0KG0pKTtcbiAgICAgICAgdGhpcy5sb2dnZXIuZChUQUcsICdiZXppZXJDdXJ2ZSBpcyByZWFkeS4nKTtcbiAgICAgIH0pO1xuICAgICAgdGhpcy5pbml0ZWQgPSB0cnVlO1xuICAgIH0gZWxzZSB7XG4gICAgICB6aXAoXG4gICAgICAgIGZpbHRlci5oYXM8QXJyYXk8QXJyYXk8bnVtYmVyIHwgc3RyaW5nIHwgQXJyYXk8c3RyaW5nIHwgbnVtYmVyPj4+PigncGF0aCcpLFxuICAgICAgICBiZXppZXJDdXJ2ZSxcbiAgICAgICkuc3Vic2NyaWJlKChbdiwgcF0pID0+IHAuc2V0UGF0aCh2KSk7XG4gICAgICB6aXAoZmlsdGVyLmhhczxBTWFwLkJlemllckN1cnZlLk9wdGlvbnM+KCdvcHRpb25zJyksIGJlemllckN1cnZlKS5zdWJzY3JpYmUoKFt2LCBwXSkgPT5cbiAgICAgICAgcC5zZXRPcHRpb25zKHYgfHwge30pLFxuICAgICAgKTtcbiAgICAgIHppcChmaWx0ZXIuaGFzPGFueT4oJ2V4dERhdGEnKSwgYmV6aWVyQ3VydmUpLnN1YnNjcmliZSgoW3YsIHBdKSA9PiBwLnNldEV4dERhdGEodikpO1xuICAgIH1cblxuICAgIHppcChmaWx0ZXIuaGFzPGJvb2xlYW4+KCdoaWRkZW4nKSwgYmV6aWVyQ3VydmUpLnN1YnNjcmliZSgoW3YsIHBdKSA9PlxuICAgICAgdiA/IHAuaGlkZSgpIDogcC5zaG93KCksXG4gICAgKTtcbiAgICBmaWx0ZXIuaGFzPGJvb2xlYW4+KCdlZGl0b3InKS5zdWJzY3JpYmUodiA9PiB0aGlzLm9zLnRvZ2dsZUVkaXRvcih2KSk7XG4gICAgZmlsdGVyLmhhczxib29sZWFuPigncG9seUVkaXRvcicpLnN1YnNjcmliZSh2ID0+IHRoaXMub3MudG9nZ2xlUG9seUVkaXRvcih2KSk7XG4gIH1cblxuICAvKipcbiAgICog6I635Y+W5bey5Yib5bu655qEIEFNYXAuQmV6aWVyQ3VydmUg5a+56LGhXG4gICAqL1xuICBnZXQoKSB7XG4gICAgcmV0dXJuIHRoaXMub3MuZ2V0KCk7XG4gIH1cbn1cbiJdfQ==