ng-zorro-antd-mobile
Version:
An enterprise-class mobile UI components based on Ant Design and Angular
231 lines • 17.3 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import * as tslib_1 from "tslib";
import { Injectable } from '@angular/core';
import { ActionSheetComponent } from './action-sheet.component';
import { ActionSheetOptions, ShareActionSheetWithOptions } from './action-sheet-options.provider';
import { PopupService } from '../core/services/popup.service';
import * as i0 from "@angular/core";
import * as i1 from "./public-api";
import * as i2 from "@angular/cdk/overlay";
/** @type {?} */
var NORMAL = 'NORMAL';
/** @type {?} */
var SHARE = 'SHARE';
/**
* @return {?}
*/
function noop() { }
var ActionSheetService = /** @class */ (function (_super) {
tslib_1.__extends(ActionSheetService, _super);
function ActionSheetService() {
var _this = _super !== null && _super.apply(this, arguments) || this;
_this.compRef = null;
_this._actionSheetCompFactory = null;
_this.appRef = null;
_this.comRef = null;
_this.instance = null;
return _this;
}
/**
* @param {?} config
* @param {?=} options
* @return {?}
*/
ActionSheetService.prototype._initConfig = /**
* @param {?} config
* @param {?=} options
* @return {?}
*/
function (config, options) {
if (options === void 0) { options = {}; }
/** @type {?} */
var props = new ActionSheetOptions();
/** @type {?} */
var optionalParams = [
'prefixCls',
'maskClosable',
'cancelButtonText',
'cancelButtonIndex',
'destructiveButtonIndex',
'title',
'message',
'className',
'transitionName',
'maskTransitionName',
'options',
'locale',
'close'
];
/** @type {?} */
var self = this;
config = Object.assign(options, config, {
close: (/**
* @return {?}
*/
function () {
if (config.maskClosable) {
self.closeWithAnimation(config.transitionName, config.maskTransitionName);
}
})
});
optionalParams.forEach((/**
* @param {?} key
* @return {?}
*/
function (key) {
if (config[key] !== undefined) {
props[key] = config[key];
}
}));
return props;
};
/**
* @param {?} props
* @return {?}
*/
ActionSheetService.prototype._open = /**
* @param {?} props
* @return {?}
*/
function (props) {
this.comRef = this.showPopup(ActionSheetComponent);
this.comRef.instance.option = props;
return this.comRef && this.comRef.instance;
};
/**
* @param {?} flag
* @param {?} config
* @param {?} callback
* @return {?}
*/
ActionSheetService.prototype.createActionSheet = /**
* @param {?} flag
* @param {?} config
* @param {?} callback
* @return {?}
*/
function (flag, config, callback) {
/** @type {?} */
var options = flag === NORMAL ? new ActionSheetOptions() : new ShareActionSheetWithOptions();
/** @type {?} */
var transitionName = config.transitionName ? config.transitionName : options.transitionName;
options.transitionName = transitionName + "-enter " + transitionName + "-enter-active";
/** @type {?} */
var maskTransitionName = config.maskTransitionName ? config.maskTransitionName : options.maskTransitionName;
options.maskTransitionName = maskTransitionName + "-enter " + maskTransitionName + "-enter-active";
/** @type {?} */
var props = this._initConfig(config, options);
Object.assign(props, { onPress: cb }, { flag: flag }, { maskClose: props.maskClosable ? cb : (/**
* @return {?}
*/
function () { }) });
/** @type {?} */
var self = this;
/**
* @param {?} index
* @param {?=} rowIndex
* @param {?=} event
* @return {?}
*/
function cb(index, rowIndex, event) {
if (rowIndex === void 0) { rowIndex = 0; }
event.stopPropagation();
/** @type {?} */
var res = callback(index, rowIndex);
if (res && res.then) {
res.then((/**
* @return {?}
*/
function () {
self.closeWithAnimation(transitionName, maskTransitionName);
}));
}
else {
self.closeWithAnimation(transitionName, maskTransitionName);
}
}
return this._open(props);
};
/**
* @param {?} transitionName
* @param {?} maskTransitionName
* @return {?}
*/
ActionSheetService.prototype.closeWithAnimation = /**
* @param {?} transitionName
* @param {?} maskTransitionName
* @return {?}
*/
function (transitionName, maskTransitionName) {
var _this = this;
this.comRef.instance.option.transitionName = transitionName + "-leave " + transitionName + "-leave-active";
this.comRef.instance.option.maskTransitionName = maskTransitionName + "-leave " + maskTransitionName + "-leave-active";
setTimeout((/**
* @return {?}
*/
function () {
_this.close();
}), 200);
};
/**
* @param {?} config
* @param {?=} callback
* @return {?}
*/
ActionSheetService.prototype.showActionSheetWithOptions = /**
* @param {?} config
* @param {?=} callback
* @return {?}
*/
function (config, callback) {
if (callback === void 0) { callback = noop; }
return this.createActionSheet(NORMAL, config, callback);
};
/**
* @param {?} config
* @param {?=} callback
* @return {?}
*/
ActionSheetService.prototype.showShareActionSheetWithOptions = /**
* @param {?} config
* @param {?=} callback
* @return {?}
*/
function (config, callback) {
if (callback === void 0) { callback = noop; }
return this.createActionSheet(SHARE, config, callback);
};
/**
* @return {?}
*/
ActionSheetService.prototype.close = /**
* @return {?}
*/
function () {
this.hidePopup();
};
ActionSheetService.decorators = [
{ type: Injectable, args: [{
providedIn: 'root'
},] }
];
/** @nocollapse */ ActionSheetService.ngInjectableDef = i0.ɵɵdefineInjectable({ factory: function ActionSheetService_Factory() { return new i1.ActionSheet(i0.ɵɵinject(i2.Overlay)); }, token: i1.ActionSheet, providedIn: "root" });
return ActionSheetService;
}(PopupService));
export { ActionSheetService };
if (false) {
/** @type {?} */
ActionSheetService.prototype.compRef;
/** @type {?} */
ActionSheetService.prototype._actionSheetCompFactory;
/** @type {?} */
ActionSheetService.prototype.appRef;
/** @type {?} */
ActionSheetService.prototype.comRef;
/** @type {?} */
ActionSheetService.prototype.instance;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLXNoZWV0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9uZy16b3Jyby1hbnRkLW1vYmlsZS8iLCJzb3VyY2VzIjpbImFjdGlvbi1zaGVldC9hY3Rpb24tc2hlZXQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQWtELE1BQU0sZUFBZSxDQUFDO0FBQzNGLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ2hFLE9BQU8sRUFFTCxrQkFBa0IsRUFFbEIsMkJBQTJCLEVBQzVCLE1BQU0saUNBQWlDLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdDQUFnQyxDQUFDOzs7OztJQUV4RCxNQUFNLEdBQUcsUUFBUTs7SUFDakIsS0FBSyxHQUFHLE9BQU87Ozs7QUFDckIsU0FBUyxJQUFJLEtBQUksQ0FBQztBQUNsQjtJQUd3Qyw4Q0FBWTtJQUhwRDtRQUFBLHFFQWdHQztRQTVGQyxhQUFPLEdBQXNCLElBQUksQ0FBQztRQUNsQyw2QkFBdUIsR0FBMkMsSUFBSSxDQUFDO1FBQ3ZFLFlBQU0sR0FBbUIsSUFBSSxDQUFDO1FBQzlCLFlBQU0sR0FBdUMsSUFBSSxDQUFDO1FBRWxELGNBQVEsR0FBRyxJQUFJLENBQUM7O0tBdUZqQjs7Ozs7O0lBckZDLHdDQUFXOzs7OztJQUFYLFVBQVksTUFBMEIsRUFBRSxPQUFvQjtRQUFwQix3QkFBQSxFQUFBLFlBQW9COztZQUNwRCxLQUFLLEdBQXVCLElBQUksa0JBQWtCLEVBQUU7O1lBQ3BELGNBQWMsR0FBYTtZQUMvQixXQUFXO1lBQ1gsY0FBYztZQUNkLGtCQUFrQjtZQUNsQixtQkFBbUI7WUFDbkIsd0JBQXdCO1lBQ3hCLE9BQU87WUFDUCxTQUFTO1lBQ1QsV0FBVztZQUNYLGdCQUFnQjtZQUNoQixvQkFBb0I7WUFDcEIsU0FBUztZQUNULFFBQVE7WUFDUixPQUFPO1NBQ1I7O1lBQ0ssSUFBSSxHQUFHLElBQUk7UUFDakIsTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRTtZQUN0QyxLQUFLOzs7WUFBRTtnQkFDTCxJQUFJLE1BQU0sQ0FBQyxZQUFZLEVBQUU7b0JBQ3ZCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsY0FBYyxFQUFFLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO2lCQUMzRTtZQUNILENBQUMsQ0FBQTtTQUNGLENBQUMsQ0FBQztRQUNILGNBQWMsQ0FBQyxPQUFPOzs7O1FBQUMsVUFBQSxHQUFHO1lBQ3hCLElBQUksTUFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFLLFNBQVMsRUFBRTtnQkFDN0IsS0FBSyxDQUFDLEdBQUcsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQzthQUMxQjtRQUNILENBQUMsRUFBQyxDQUFDO1FBQ0gsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDOzs7OztJQUVELGtDQUFLOzs7O0lBQUwsVUFBTSxLQUF5QjtRQUM3QixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsb0JBQW9CLENBQUMsQ0FBQztRQUNuRCxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ3BDLE9BQU8sSUFBSSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQztJQUM3QyxDQUFDOzs7Ozs7O0lBRUQsOENBQWlCOzs7Ozs7SUFBakIsVUFDRSxJQUFZLEVBQ1osTUFBNEQsRUFDNUQsUUFBd0I7O1lBRWxCLE9BQU8sR0FBRyxJQUFJLEtBQUssTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLGtCQUFrQixFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksMkJBQTJCLEVBQUU7O1lBQ3hGLGNBQWMsR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsY0FBYztRQUM3RixPQUFPLENBQUMsY0FBYyxHQUFNLGNBQWMsZUFBVSxjQUFjLGtCQUFlLENBQUM7O1lBQzVFLGtCQUFrQixHQUFHLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsa0JBQWtCO1FBQzdHLE9BQU8sQ0FBQyxrQkFBa0IsR0FBTSxrQkFBa0IsZUFBVSxrQkFBa0Isa0JBQWUsQ0FBQzs7WUFDeEYsS0FBSyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQztRQUMvQyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLFNBQVMsRUFBRSxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQzs7O1lBQUMsY0FBTyxDQUFDLENBQUEsRUFBRSxDQUFDLENBQUM7O1lBQ25HLElBQUksR0FBRyxJQUFJOzs7Ozs7O1FBQ2pCLFNBQVMsRUFBRSxDQUFDLEtBQVUsRUFBRSxRQUFZLEVBQUUsS0FBSztZQUFuQix5QkFBQSxFQUFBLFlBQVk7WUFDbEMsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDOztnQkFDbEIsR0FBRyxHQUFHLFFBQVEsQ0FBQyxLQUFLLEVBQUUsUUFBUSxDQUFDO1lBQ3JDLElBQUksR0FBRyxJQUFJLEdBQUcsQ0FBQyxJQUFJLEVBQUU7Z0JBQ25CLEdBQUcsQ0FBQyxJQUFJOzs7Z0JBQUM7b0JBQ1AsSUFBSSxDQUFDLGtCQUFrQixDQUFDLGNBQWMsRUFBRSxrQkFBa0IsQ0FBQyxDQUFDO2dCQUM5RCxDQUFDLEVBQUMsQ0FBQzthQUNKO2lCQUFNO2dCQUNMLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxjQUFjLEVBQUUsa0JBQWtCLENBQUMsQ0FBQzthQUM3RDtRQUNILENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDM0IsQ0FBQzs7Ozs7O0lBRUQsK0NBQWtCOzs7OztJQUFsQixVQUFtQixjQUFjLEVBQUUsa0JBQWtCO1FBQXJELGlCQU1DO1FBTEMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLGNBQWMsR0FBTSxjQUFjLGVBQVUsY0FBYyxrQkFBZSxDQUFDO1FBQ3RHLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxrQkFBa0IsR0FBTSxrQkFBa0IsZUFBVSxrQkFBa0Isa0JBQWUsQ0FBQztRQUNsSCxVQUFVOzs7UUFBQztZQUNULEtBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNmLENBQUMsR0FBRSxHQUFHLENBQUMsQ0FBQztJQUNWLENBQUM7Ozs7OztJQUVELHVEQUEwQjs7Ozs7SUFBMUIsVUFBMkIsTUFBOEIsRUFBRSxRQUErQjtRQUEvQix5QkFBQSxFQUFBLGVBQStCO1FBQ3hGLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDMUQsQ0FBQzs7Ozs7O0lBRUQsNERBQStCOzs7OztJQUEvQixVQUFnQyxNQUFtQyxFQUFFLFFBQStCO1FBQS9CLHlCQUFBLEVBQUEsZUFBK0I7UUFDbEcsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxRQUFRLENBQUMsQ0FBQztJQUN6RCxDQUFDOzs7O0lBRUQsa0NBQUs7OztJQUFMO1FBQ0UsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ25CLENBQUM7O2dCQS9GRixVQUFVLFNBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzs7NkJBZkQ7Q0E2R0MsQUFoR0QsQ0FHd0MsWUFBWSxHQTZGbkQ7U0E3Rlksa0JBQWtCOzs7SUFDN0IscUNBQWtDOztJQUNsQyxxREFBdUU7O0lBQ3ZFLG9DQUE4Qjs7SUFDOUIsb0NBQWtEOztJQUVsRCxzQ0FBZ0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBDb21wb25lbnRSZWYsIENvbXBvbmVudEZhY3RvcnksIEFwcGxpY2F0aW9uUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3Rpb25TaGVldENvbXBvbmVudCB9IGZyb20gJy4vYWN0aW9uLXNoZWV0LmNvbXBvbmVudCc7XG5pbXBvcnQge1xuICBBY3Rpb25DYWxsQmFjayxcbiAgQWN0aW9uU2hlZXRPcHRpb25zLFxuICBBY3Rpb25TaGVldFdpdGhPcHRpb25zLFxuICBTaGFyZUFjdGlvblNoZWV0V2l0aE9wdGlvbnNcbn0gZnJvbSAnLi9hY3Rpb24tc2hlZXQtb3B0aW9ucy5wcm92aWRlcic7XG5pbXBvcnQgeyBQb3B1cFNlcnZpY2UgfSBmcm9tICcuLi9jb3JlL3NlcnZpY2VzL3BvcHVwLnNlcnZpY2UnO1xuXG5jb25zdCBOT1JNQUwgPSAnTk9STUFMJztcbmNvbnN0IFNIQVJFID0gJ1NIQVJFJztcbmZ1bmN0aW9uIG5vb3AoKSB7fVxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgQWN0aW9uU2hlZXRTZXJ2aWNlIGV4dGVuZHMgUG9wdXBTZXJ2aWNlIHtcbiAgY29tcFJlZjogQ29tcG9uZW50UmVmPGFueT4gPSBudWxsO1xuICBfYWN0aW9uU2hlZXRDb21wRmFjdG9yeTogQ29tcG9uZW50RmFjdG9yeTxBY3Rpb25TaGVldENvbXBvbmVudD4gPSBudWxsO1xuICBhcHBSZWY6IEFwcGxpY2F0aW9uUmVmID0gbnVsbDtcbiAgY29tUmVmOiBDb21wb25lbnRSZWY8QWN0aW9uU2hlZXRDb21wb25lbnQ+ID0gbnVsbDtcblxuICBpbnN0YW5jZSA9IG51bGw7XG5cbiAgX2luaXRDb25maWcoY29uZmlnOiBBY3Rpb25TaGVldE9wdGlvbnMsIG9wdGlvbnM6IE9iamVjdCA9IHt9KTogQWN0aW9uU2hlZXRPcHRpb25zIHtcbiAgICBjb25zdCBwcm9wczogQWN0aW9uU2hlZXRPcHRpb25zID0gbmV3IEFjdGlvblNoZWV0T3B0aW9ucygpO1xuICAgIGNvbnN0IG9wdGlvbmFsUGFyYW1zOiBzdHJpbmdbXSA9IFtcbiAgICAgICdwcmVmaXhDbHMnLFxuICAgICAgJ21hc2tDbG9zYWJsZScsXG4gICAgICAnY2FuY2VsQnV0dG9uVGV4dCcsXG4gICAgICAnY2FuY2VsQnV0dG9uSW5kZXgnLFxuICAgICAgJ2Rlc3RydWN0aXZlQnV0dG9uSW5kZXgnLFxuICAgICAgJ3RpdGxlJyxcbiAgICAgICdtZXNzYWdlJyxcbiAgICAgICdjbGFzc05hbWUnLFxuICAgICAgJ3RyYW5zaXRpb25OYW1lJyxcbiAgICAgICdtYXNrVHJhbnNpdGlvbk5hbWUnLFxuICAgICAgJ29wdGlvbnMnLFxuICAgICAgJ2xvY2FsZScsXG4gICAgICAnY2xvc2UnXG4gICAgXTtcbiAgICBjb25zdCBzZWxmID0gdGhpcztcbiAgICBjb25maWcgPSBPYmplY3QuYXNzaWduKG9wdGlvbnMsIGNvbmZpZywge1xuICAgICAgY2xvc2U6ICgpOiB2b2lkID0+IHtcbiAgICAgICAgaWYgKGNvbmZpZy5tYXNrQ2xvc2FibGUpIHtcbiAgICAgICAgICBzZWxmLmNsb3NlV2l0aEFuaW1hdGlvbihjb25maWcudHJhbnNpdGlvbk5hbWUsIGNvbmZpZy5tYXNrVHJhbnNpdGlvbk5hbWUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gICAgb3B0aW9uYWxQYXJhbXMuZm9yRWFjaChrZXkgPT4ge1xuICAgICAgaWYgKGNvbmZpZ1trZXldICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgcHJvcHNba2V5XSA9IGNvbmZpZ1trZXldO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiBwcm9wcztcbiAgfVxuXG4gIF9vcGVuKHByb3BzOiBBY3Rpb25TaGVldE9wdGlvbnMpIHtcbiAgICB0aGlzLmNvbVJlZiA9IHRoaXMuc2hvd1BvcHVwKEFjdGlvblNoZWV0Q29tcG9uZW50KTtcbiAgICB0aGlzLmNvbVJlZi5pbnN0YW5jZS5vcHRpb24gPSBwcm9wcztcbiAgICByZXR1cm4gdGhpcy5jb21SZWYgJiYgdGhpcy5jb21SZWYuaW5zdGFuY2U7XG4gIH1cblxuICBjcmVhdGVBY3Rpb25TaGVldChcbiAgICBmbGFnOiBzdHJpbmcsXG4gICAgY29uZmlnOiBBY3Rpb25TaGVldFdpdGhPcHRpb25zIHwgU2hhcmVBY3Rpb25TaGVldFdpdGhPcHRpb25zLFxuICAgIGNhbGxiYWNrOiBBY3Rpb25DYWxsQmFja1xuICApIHtcbiAgICBjb25zdCBvcHRpb25zID0gZmxhZyA9PT0gTk9STUFMID8gbmV3IEFjdGlvblNoZWV0T3B0aW9ucygpIDogbmV3IFNoYXJlQWN0aW9uU2hlZXRXaXRoT3B0aW9ucygpO1xuICAgIGNvbnN0IHRyYW5zaXRpb25OYW1lID0gY29uZmlnLnRyYW5zaXRpb25OYW1lID8gY29uZmlnLnRyYW5zaXRpb25OYW1lIDogb3B0aW9ucy50cmFuc2l0aW9uTmFtZTtcbiAgICBvcHRpb25zLnRyYW5zaXRpb25OYW1lID0gYCR7dHJhbnNpdGlvbk5hbWV9LWVudGVyICR7dHJhbnNpdGlvbk5hbWV9LWVudGVyLWFjdGl2ZWA7XG4gICAgY29uc3QgbWFza1RyYW5zaXRpb25OYW1lID0gY29uZmlnLm1hc2tUcmFuc2l0aW9uTmFtZSA/IGNvbmZpZy5tYXNrVHJhbnNpdGlvbk5hbWUgOiBvcHRpb25zLm1hc2tUcmFuc2l0aW9uTmFtZTtcbiAgICBvcHRpb25zLm1hc2tUcmFuc2l0aW9uTmFtZSA9IGAke21hc2tUcmFuc2l0aW9uTmFtZX0tZW50ZXIgJHttYXNrVHJhbnNpdGlvbk5hbWV9LWVudGVyLWFjdGl2ZWA7XG4gICAgY29uc3QgcHJvcHMgPSB0aGlzLl9pbml0Q29uZmlnKGNvbmZpZywgb3B0aW9ucyk7XG4gICAgT2JqZWN0LmFzc2lnbihwcm9wcywgeyBvblByZXNzOiBjYiB9LCB7IGZsYWc6IGZsYWcgfSwgeyBtYXNrQ2xvc2U6IHByb3BzLm1hc2tDbG9zYWJsZSA/IGNiIDogKCkgPT4ge30gfSk7XG4gICAgY29uc3Qgc2VsZiA9IHRoaXM7XG4gICAgZnVuY3Rpb24gY2IoaW5kZXg6IGFueSwgcm93SW5kZXggPSAwLCBldmVudCkge1xuICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICBjb25zdCByZXMgPSBjYWxsYmFjayhpbmRleCwgcm93SW5kZXgpO1xuICAgICAgaWYgKHJlcyAmJiByZXMudGhlbikge1xuICAgICAgICByZXMudGhlbigoKSA9PiB7XG4gICAgICAgICAgc2VsZi5jbG9zZVdpdGhBbmltYXRpb24odHJhbnNpdGlvbk5hbWUsIG1hc2tUcmFuc2l0aW9uTmFtZSk7XG4gICAgICAgIH0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc2VsZi5jbG9zZVdpdGhBbmltYXRpb24odHJhbnNpdGlvbk5hbWUsIG1hc2tUcmFuc2l0aW9uTmFtZSk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB0aGlzLl9vcGVuKHByb3BzKTtcbiAgfVxuXG4gIGNsb3NlV2l0aEFuaW1hdGlvbih0cmFuc2l0aW9uTmFtZSwgbWFza1RyYW5zaXRpb25OYW1lKSB7XG4gICAgdGhpcy5jb21SZWYuaW5zdGFuY2Uub3B0aW9uLnRyYW5zaXRpb25OYW1lID0gYCR7dHJhbnNpdGlvbk5hbWV9LWxlYXZlICR7dHJhbnNpdGlvbk5hbWV9LWxlYXZlLWFjdGl2ZWA7XG4gICAgdGhpcy5jb21SZWYuaW5zdGFuY2Uub3B0aW9uLm1hc2tUcmFuc2l0aW9uTmFtZSA9IGAke21hc2tUcmFuc2l0aW9uTmFtZX0tbGVhdmUgJHttYXNrVHJhbnNpdGlvbk5hbWV9LWxlYXZlLWFjdGl2ZWA7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLmNsb3NlKCk7XG4gICAgfSwgMjAwKTtcbiAgfVxuXG4gIHNob3dBY3Rpb25TaGVldFdpdGhPcHRpb25zKGNvbmZpZzogQWN0aW9uU2hlZXRXaXRoT3B0aW9ucywgY2FsbGJhY2s6IEFjdGlvbkNhbGxCYWNrID0gbm9vcCkge1xuICAgIHJldHVybiB0aGlzLmNyZWF0ZUFjdGlvblNoZWV0KE5PUk1BTCwgY29uZmlnLCBjYWxsYmFjayk7XG4gIH1cblxuICBzaG93U2hhcmVBY3Rpb25TaGVldFdpdGhPcHRpb25zKGNvbmZpZzogU2hhcmVBY3Rpb25TaGVldFdpdGhPcHRpb25zLCBjYWxsYmFjazogQWN0aW9uQ2FsbEJhY2sgPSBub29wKSB7XG4gICAgcmV0dXJuIHRoaXMuY3JlYXRlQWN0aW9uU2hlZXQoU0hBUkUsIGNvbmZpZywgY2FsbGJhY2spO1xuICB9XG5cbiAgY2xvc2UoKSB7XG4gICAgdGhpcy5oaWRlUG9wdXAoKTtcbiAgfVxufVxuIl19