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]

307 lines 19.8 kB
/** * @fileoverview added by tsickle * Generated from: directives/amap-tool-bar/amap-tool-bar.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 { AmapToolBarService } from './amap-tool-bar.service'; import { LoggerService } from '../../shared/logger/logger.service'; import { EventBinderService } from '../../shared/event-binder.service'; import { getOptions, ChangeFilter } from '../../utils'; import { PixelService } from '../../shared/pixel.service'; import { AMapService } from '../../shared/amap.service'; /** @type {?} */ var TAG = 'amap-tool-bar'; /** @type {?} */ var ToolBarOptions = [ 'offset', 'position', 'ruler', 'noIpLocate', 'locate', 'liteStyle', 'direction', 'autoPosition', 'locationMarker', 'useNative', ]; var AmapToolBarDirective = /** @class */ (function () { function AmapToolBarDirective(os, binder, amaps, pixels, logger, ngZone) { this.os = os; this.binder = binder; this.amaps = amaps; this.pixels = pixels; this.logger = logger; this.ngZone = ngZone; /** * 额外: 是否隐藏 */ this.hidden = false; // amap-tool-bar events: this.naReady = new EventEmitter(); this.inited = false; /** @type {?} */ var target = this.os.get(); this.naShow = this.binder.bindEvent(target, 'show'); this.naHide = this.binder.bindEvent(target, 'hide'); this.naLocation = this.binder.bindEvent(target, 'location'); this.naZoomChanged = this.binder.bindEvent(target, 'zoomchanged'); } /** * @return {?} */ AmapToolBarDirective.prototype.ngOnDestroy = /** * @return {?} */ function () { this.os.destroy(); }; /** * @return {?} */ AmapToolBarDirective.prototype.ngOnInit = /** * @return {?} */ function () { var _this = this; this.amaps.get().subscribe((/** * @return {?} */ function () { _this.logger.d(TAG, 'initializing ...'); /** @type {?} */ var options = getOptions(_this, ToolBarOptions); if (_this.offset) { options.offset = _this.pixels.create(_this.offset); } _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, 'toolbar is ready.'); })); _this.inited = true; _this.get().subscribe((/** * @param {?} m * @return {?} */ function (m) { _this.hidden ? m.hide() : m.show(); })); })); }; /** * @param {?} changes * @return {?} */ AmapToolBarDirective.prototype.ngOnChanges = /** * @param {?} changes * @return {?} */ function (changes) { var _this = this; /** @type {?} */ var filter = ChangeFilter.of(changes); /** @type {?} */ var toolbar = this.get(); if (!this.inited) { return; } zip(filter.notEmpty('offset'), toolbar).subscribe((/** * @param {?} __0 * @return {?} */ function (_a) { var _b = tslib_1.__read(_a, 2), v = _b[0], m = _b[1]; return m.setOffset(_this.pixels.create(v)); })); zip(filter.has('hidden'), toolbar).subscribe((/** * @param {?} __0 * @return {?} */ function (_a) { var _b = tslib_1.__read(_a, 2), v = _b[0], m = _b[1]; return (v ? m.hide() : m.show()); })); }; /** * 获取已创建的 AMap.ToolBar 对象 */ /** * 获取已创建的 AMap.ToolBar 对象 * @return {?} */ AmapToolBarDirective.prototype.get = /** * 获取已创建的 AMap.ToolBar 对象 * @return {?} */ function () { return this.os.get(); }; /** * @return {?} */ AmapToolBarDirective.prototype.doLocation = /** * @return {?} */ function () { this.os.get().subscribe((/** * @param {?} toolbar * @return {?} */ function (toolbar) { toolbar.doLocation(); })); }; AmapToolBarDirective.decorators = [ { type: Directive, args: [{ selector: 'amap-tool-bar', exportAs: 'tool-bar', providers: [AmapToolBarService], },] } ]; /** @nocollapse */ AmapToolBarDirective.ctorParameters = function () { return [ { type: AmapToolBarService }, { type: EventBinderService }, { type: AMapService }, { type: PixelService }, { type: LoggerService }, { type: NgZone } ]; }; AmapToolBarDirective.propDecorators = { offset: [{ type: Input }], position: [{ type: Input }], ruler: [{ type: Input }], noIpLocate: [{ type: Input }], locate: [{ type: Input }], liteStyle: [{ type: Input }], direction: [{ type: Input }], autoPosition: [{ type: Input }], locationMarker: [{ type: Input }], useNative: [{ type: Input }], hidden: [{ type: Input }], naReady: [{ type: Output }], naShow: [{ type: Output }], naHide: [{ type: Output }], naLocation: [{ type: Output }], naZoomChanged: [{ type: Output }] }; return AmapToolBarDirective; }()); export { AmapToolBarDirective }; if (false) { /** * 相对于地图容器左上角的偏移量 * @type {?} */ AmapToolBarDirective.prototype.offset; /** * 控件停靠位置 * LT: 左上角 * RT: 右上角 * LB: 左下角 * RB: 右下角 * @type {?} */ AmapToolBarDirective.prototype.position; /** * 标尺键盘是否可见 * @type {?} */ AmapToolBarDirective.prototype.ruler; /** * 定位失败后,是否开启 IP 定位 * @type {?} */ AmapToolBarDirective.prototype.noIpLocate; /** * 是否显示定位按钮 * @type {?} */ AmapToolBarDirective.prototype.locate; /** * 是否使用精简模式 * @type {?} */ AmapToolBarDirective.prototype.liteStyle; /** * 方向键盘是否可见 * @type {?} */ AmapToolBarDirective.prototype.direction; /** * 是否自动定位,即地图初始化加载完成后,是否自动定位的用户所在地,仅在支持 HTML5 的浏览器中有效 * @type {?} */ AmapToolBarDirective.prototype.autoPosition; /** * 自定义定位图标,值为 Marker 对象 * @type {?} */ AmapToolBarDirective.prototype.locationMarker; /** * 是否使用高德定位 SDK 用来辅助优化定位效果 * @type {?} */ AmapToolBarDirective.prototype.useNative; /** * 额外: 是否隐藏 * @type {?} */ AmapToolBarDirective.prototype.hidden; /** @type {?} */ AmapToolBarDirective.prototype.naReady; /** @type {?} */ AmapToolBarDirective.prototype.naShow; /** @type {?} */ AmapToolBarDirective.prototype.naHide; /** @type {?} */ AmapToolBarDirective.prototype.naLocation; /** @type {?} */ AmapToolBarDirective.prototype.naZoomChanged; /** * @type {?} * @private */ AmapToolBarDirective.prototype.inited; /** * @type {?} * @protected */ AmapToolBarDirective.prototype.os; /** * @type {?} * @protected */ AmapToolBarDirective.prototype.binder; /** * @type {?} * @private */ AmapToolBarDirective.prototype.amaps; /** * @type {?} * @private */ AmapToolBarDirective.prototype.pixels; /** * @type {?} * @private */ AmapToolBarDirective.prototype.logger; /** * @type {?} * @private */ AmapToolBarDirective.prototype.ngZone; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW1hcC10b29sLWJhci5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9uZ3gtYW1hcC8iLCJzb3VyY2VzIjpbImRpcmVjdGl2ZXMvYW1hcC10b29sLWJhci9hbWFwLXRvb2wtYmFyLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULEtBQUssRUFHTCxNQUFNLEVBQ04sWUFBWSxFQUdaLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzNCLE9BQU8sRUFBRSxrQkFBa0IsRUFBZSxNQUFNLHlCQUF5QixDQUFDO0FBQzFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUNuRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUN2RSxPQUFPLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUV2RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDJCQUEyQixDQUFDOztJQUVsRCxHQUFHLEdBQUcsZUFBZTs7SUFDckIsY0FBYyxHQUFHO0lBQ3JCLFFBQVE7SUFDUixVQUFVO0lBQ1YsT0FBTztJQUNQLFlBQVk7SUFDWixRQUFRO0lBQ1IsV0FBVztJQUNYLFdBQVc7SUFDWCxjQUFjO0lBQ2QsZ0JBQWdCO0lBQ2hCLFdBQVc7Q0FDWjtBQUVEO0lBaUVFLDhCQUNZLEVBQXNCLEVBQ3RCLE1BQTBCLEVBQzVCLEtBQWtCLEVBQ2xCLE1BQW9CLEVBQ3BCLE1BQXFCLEVBQ3JCLE1BQWM7UUFMWixPQUFFLEdBQUYsRUFBRSxDQUFvQjtRQUN0QixXQUFNLEdBQU4sTUFBTSxDQUFvQjtRQUM1QixVQUFLLEdBQUwsS0FBSyxDQUFhO1FBQ2xCLFdBQU0sR0FBTixNQUFNLENBQWM7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eUJBQ04sTUFBTTs2QkFDTixNQUFNO2dDQUNOLE1BQU07O0lBa0VULDJCQUFDO0NBQUEsQUEvSEQsSUErSEM7U0ExSFksb0JBQW9COzs7Ozs7SUFLL0Isc0NBQXFDOzs7Ozs7Ozs7SUFRckMsd0NBQXdDOzs7OztJQUl4QyxxQ0FBd0I7Ozs7O0lBSXhCLDBDQUE2Qjs7Ozs7SUFJN0Isc0NBQXlCOzs7OztJQUl6Qix5Q0FBNEI7Ozs7O0lBSTVCLHlDQUE0Qjs7Ozs7SUFJNUIsNENBQStCOzs7OztJQUkvQiw4Q0FBcUM7Ozs7O0lBSXJDLHlDQUE0Qjs7Ozs7SUFJNUIsc0NBQXdCOztJQUd4Qix1Q0FBdUM7O0lBQ3ZDLHNDQUFvQzs7SUFDcEMsc0NBQW9DOztJQUNwQywwQ0FBd0M7O0lBQ3hDLDZDQUEyQzs7Ozs7SUFFM0Msc0NBQXVCOzs7OztJQUdyQixrQ0FBZ0M7Ozs7O0lBQ2hDLHNDQUFvQzs7Ozs7SUFDcEMscUNBQTBCOzs7OztJQUMxQixzQ0FBNEI7Ozs7O0lBQzVCLHNDQUE2Qjs7Ozs7SUFDN0Isc0NBQXNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgRGlyZWN0aXZlLFxuICBJbnB1dCxcbiAgT25Jbml0LFxuICBPbkRlc3Ryb3ksXG4gIE91dHB1dCxcbiAgRXZlbnRFbWl0dGVyLFxuICBTaW1wbGVDaGFuZ2VzLFxuICBPbkNoYW5nZXMsXG4gIE5nWm9uZSxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB6aXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEFtYXBUb29sQmFyU2VydmljZSwgQU1hcFRvb2xCYXIgfSBmcm9tICcuL2FtYXAtdG9vbC1iYXIuc2VydmljZSc7XG5pbXBvcnQgeyBMb2dnZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2hhcmVkL2xvZ2dlci9sb2dnZXIuc2VydmljZSc7XG5pbXBvcnQgeyBFdmVudEJpbmRlclNlcnZpY2UgfSBmcm9tICcuLi8uLi9zaGFyZWQvZXZlbnQtYmluZGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgZ2V0T3B0aW9ucywgQ2hhbmdlRmlsdGVyIH0gZnJvbSAnLi4vLi4vdXRpbHMnO1xuaW1wb3J0IHsgSVBpeGVsIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBQaXhlbFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zaGFyZWQvcGl4ZWwuc2VydmljZSc7XG5pbXBvcnQgeyBBTWFwU2VydmljZSB9IGZyb20gJy4uLy4uL3NoYXJlZC9hbWFwLnNlcnZpY2UnO1xuXG5jb25zdCBUQUcgPSAnYW1hcC10b29sLWJhcic7XG5jb25zdCBUb29sQmFyT3B0aW9ucyA9IFtcbiAgJ29mZnNldCcsXG4gICdwb3NpdGlvbicsXG4gICdydWxlcicsXG4gICdub0lwTG9jYXRlJyxcbiAgJ2xvY2F0ZScsXG4gICdsaXRlU3R5bGUnLFxuICAnZGlyZWN0aW9uJyxcbiAgJ2F1dG9Qb3NpdGlvbicsXG4gICdsb2NhdGlvbk1hcmtlcicsXG4gICd1c2VOYXRpdmUnLFxuXTtcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnYW1hcC10b29sLWJhcicsXG4gIGV4cG9ydEFzOiAndG9vbC1iYXInLFxuICBwcm92aWRlcnM6IFtBbWFwVG9vbEJhclNlcnZpY2VdLFxufSlcbmV4cG9ydCBjbGFzcyBBbWFwVG9vbEJhckRpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3kge1xuICAvLyAtLS0tIE9wdGlvbnMgLS0tLVxuICAvKipcbiAgICog55u45a+55LqO5Zyw5Zu+5a655Zmo5bem5LiK6KeS55qE5YGP56e76YePXG4gICAqL1xuICBASW5wdXQoKSBvZmZzZXQ6IEFNYXAuUGl4ZWwgfCBJUGl4ZWw7XG4gIC8qKlxuICAgKiDmjqfku7blgZzpnaDkvY3nva5cbiAgICogTFQ6IOW3puS4iuinklxuICAgKiBSVDog5Y+z5LiK6KeSXG4gICAqIExCOiDlt6bkuIvop5JcbiAgICogUkI6IOWPs+S4i+inklxuICAgKi9cbiAgQElucHV0KCkgcG9zaXRpb246IEFNYXBUb29sQmFyLlBvc2l0aW9uO1xuICAvKipcbiAgICog5qCH5bC66ZSu55uY5piv5ZCm5Y+v6KeBXG4gICAqL1xuICBASW5wdXQoKSBydWxlcjogYm9vbGVhbjtcbiAgLyoqXG4gICAqIOWumuS9jeWksei0peWQju+8jOaYr+WQpuW8gOWQryBJUCDlrprkvY1cbiAgICovXG4gIEBJbnB1dCgpIG5vSXBMb2NhdGU6IGJvb2xlYW47XG4gIC8qKlxuICAgKiDmmK/lkKbmmL7npLrlrprkvY3mjInpkq5cbiAgICovXG4gIEBJbnB1dCgpIGxvY2F0ZTogYm9vbGVhbjtcbiAgLyoqXG4gICAqIOaYr+WQpuS9v+eUqOeyvueugOaooeW8j1xuICAgKi9cbiAgQElucHV0KCkgbGl0ZVN0eWxlOiBib29sZWFuO1xuICAvKipcbiAgICog5pa55ZCR6ZSu55uY5piv5ZCm5Y+v6KeBXG4gICAqL1xuICBASW5wdXQoKSBkaXJlY3Rpb246IGJvb2xlYW47XG4gIC8qKlxuICAgKiDmmK/lkKboh6rliqjlrprkvY3vvIzljbPlnLDlm77liJ3lp4vljJbliqDovb3lrozmiJDlkI7vvIzmmK/lkKboh6rliqjlrprkvY3nmoTnlKjmiLfmiYDlnKjlnLDvvIzku4XlnKjmlK/mjIEgSFRNTDUg55qE5rWP6KeI5Zmo5Lit5pyJ5pWIXG4gICAqL1xuICBASW5wdXQoKSBhdXRvUG9zaXRpb246IGJvb2xlYW47XG4gIC8qKlxuICAgKiDoh6rlrprkuYnlrprkvY3lm77moIfvvIzlgLzkuLogTWFya2VyIOWvueixoVxuICAgKi9cbiAgQElucHV0KCkgbG9jYXRpb25NYXJrZXI6IEFNYXAuTWFya2VyO1xuICAvKipcbiAgICog5piv5ZCm5L2/55So6auY5b635a6a5L2NIFNESyDnlKjmnaXovoXliqnkvJjljJblrprkvY3mlYjmnpxcbiAgICovXG4gIEBJbnB1dCgpIHVzZU5hdGl2ZTogYm9vbGVhbjtcbiAgLyoqXG4gICAqIOmineWkljog5piv5ZCm6ZqQ6JePXG4gICAqL1xuICBASW5wdXQoKSBoaWRkZW4gPSBmYWxzZTtcblxuICAvLyBhbWFwLXRvb2wtYmFyIGV2ZW50czpcbiAgQE91dHB1dCgpIG5hUmVhZHkgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBuYVNob3c6IEV2ZW50RW1pdHRlcjxhbnk+O1xuICBAT3V0cHV0KCkgbmFIaWRlOiBFdmVudEVtaXR0ZXI8YW55PjtcbiAgQE91dHB1dCgpIG5hTG9jYXRpb246IEV2ZW50RW1pdHRlcjxhbnk+O1xuICBAT3V0cHV0KCkgbmFab29tQ2hhbmdlZDogRXZlbnRFbWl0dGVyPGFueT47XG5cbiAgcHJpdmF0ZSBpbml0ZWQgPSBmYWxzZTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcm90ZWN0ZWQgb3M6IEFtYXBUb29sQmFyU2VydmljZSxcbiAgICBwcm90ZWN0ZWQgYmluZGVyOiBFdmVudEJpbmRlclNlcnZpY2UsXG4gICAgcHJpdmF0ZSBhbWFwczogQU1hcFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBwaXhlbHM6IFBpeGVsU2VydmljZSxcbiAgICBwcml2YXRlIGxvZ2dlcjogTG9nZ2VyU2VydmljZSxcbiAgICBwcml2YXRlIG5nWm9uZTogTmdab25lLFxuICApIHtcbiAgICBjb25zdCB0YXJnZXQgPSB0aGlzLm9zLmdldCgpO1xuICAgIHRoaXMubmFTaG93ID0gdGhpcy5iaW5kZXIuYmluZEV2ZW50KHRhcmdldCwgJ3Nob3cnKTtcbiAgICB0aGlzLm5hSGlkZSA9IHRoaXMuYmluZGVyLmJpbmRFdmVudCh0YXJnZXQsICdoaWRlJyk7XG4gICAgdGhpcy5uYUxvY2F0aW9uID0gdGhpcy5iaW5kZXIuYmluZEV2ZW50KHRhcmdldCwgJ2xvY2F0aW9uJyk7XG4gICAgdGhpcy5uYVpvb21DaGFuZ2VkID0gdGhpcy5iaW5kZXIuYmluZEV2ZW50KHRhcmdldCwgJ3pvb21jaGFuZ2VkJyk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLm9zLmRlc3Ryb3koKTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuYW1hcHMuZ2V0KCkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMubG9nZ2VyLmQoVEFHLCAnaW5pdGlhbGl6aW5nIC4uLicpO1xuICAgICAgY29uc3Qgb3B0aW9ucyA9IGdldE9wdGlvbnM8QU1hcFRvb2xCYXIuT3B0aW9ucz4odGhpcywgVG9vbEJhck9wdGlvbnMpO1xuICAgICAgaWYgKHRoaXMub2Zmc2V0KSB7XG4gICAgICAgIG9wdGlvbnMub2Zmc2V0ID0gdGhpcy5waXhlbHMuY3JlYXRlKHRoaXMub2Zmc2V0KTtcbiAgICAgIH1cbiAgICAgIHRoaXMubG9nZ2VyLmQoVEFHLCAnb3B0aW9uczonLCBvcHRpb25zKTtcbiAgICAgIHRoaXMub3MuY3JlYXRlKG9wdGlvbnMpLnN1YnNjcmliZShtID0+IHtcbiAgICAgICAgdGhpcy5uZ1pvbmUucnVuKCgpID0+IHRoaXMubmFSZWFkeS5lbWl0KG0pKTtcbiAgICAgICAgdGhpcy5sb2dnZXIuZChUQUcsICd0b29sYmFyIGlzIHJlYWR5LicpO1xuICAgICAgfSk7XG4gICAgICB0aGlzLmluaXRlZCA9IHRydWU7XG4gICAgICB0aGlzLmdldCgpLnN1YnNjcmliZShtID0+IHtcbiAgICAgICAgdGhpcy5oaWRkZW4gPyBtLmhpZGUoKSA6IG0uc2hvdygpO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgY29uc3QgZmlsdGVyID0gQ2hhbmdlRmlsdGVyLm9mKGNoYW5nZXMpO1xuICAgIGNvbnN0IHRvb2xiYXIgPSB0aGlzLmdldCgpO1xuICAgIGlmICghdGhpcy5pbml0ZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgemlwKGZpbHRlci5ub3RFbXB0eTxBTWFwLlBpeGVsIHwgSVBpeGVsPignb2Zmc2V0JyksIHRvb2xiYXIpLnN1YnNjcmliZSgoW3YsIG1dKSA9PlxuICAgICAgbS5zZXRPZmZzZXQodGhpcy5waXhlbHMuY3JlYXRlKHYpKSxcbiAgICApO1xuICAgIHppcChmaWx0ZXIuaGFzPGJvb2xlYW4+KCdoaWRkZW4nKSwgdG9vbGJhcikuc3Vic2NyaWJlKChbdiwgbV0pID0+ICh2ID8gbS5oaWRlKCkgOiBtLnNob3coKSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIOiOt+WPluW3suWIm+W7uueahCBBTWFwLlRvb2xCYXIg5a+56LGhXG4gICAqL1xuICBnZXQoKSB7XG4gICAgcmV0dXJuIHRoaXMub3MuZ2V0KCk7XG4gIH1cblxuICBkb0xvY2F0aW9uKCkge1xuICAgIHRoaXMub3MuZ2V0KCkuc3Vic2NyaWJlKHRvb2xiYXIgPT4ge1xuICAgICAgdG9vbGJhci5kb0xvY2F0aW9uKCk7XG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==