ngx-amap
Version:
[][npm-badge-url] [][npm-badge-url] [][ci-url]
295 lines • 21.7 kB
JavaScript
/**
* @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==