ng-zorro-antd-mobile
Version:
An enterprise-class mobile UI components based on Ant Design and Angular
366 lines • 27.4 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, Injector } from '@angular/core';
import { ModalServiceComponent } from './modal.component';
import { ModalBaseOptions, ModalOptions, AlertOptions } from './modal-options.provider';
import { PopupService } from '../core/services/popup.service';
var ModalService = /** @class */ (function (_super) {
tslib_1.__extends(ModalService, _super);
function ModalService() {
var _this = _super !== null && _super.apply(this, arguments) || this;
_this.modalRef = null;
return _this;
}
/**
* @param {?} config
* @param {?} options
* @return {?}
*/
ModalService.prototype._initConfig = /**
* @param {?} config
* @param {?} options
* @return {?}
*/
function (config, options) {
/** @type {?} */
var props = new ModalBaseOptions();
/** @type {?} */
var optionalParams = [
'visible',
'focus',
'prefixCls',
'animated',
'closable',
'maskClosable',
'onClose',
'transparent',
'popup',
'animationType',
'title',
'footer',
'platform',
'className',
'wrapClassName',
'message',
'actions',
'callbackOrActions',
'type',
'defaultValue',
'placeholders',
'operation',
'transitionName',
'maskTransitionName',
'close',
'closeWithAnimation'
];
/** @type {?} */
var self = this;
config = Object.assign(options, config, {
close: (/**
* @return {?}
*/
function () {
if (config.maskClosable || config.closable) {
self.closeWithAnimation();
}
})
}, {
closeWithAnimation: (/**
* @return {?}
*/
function () {
self.closeWithAnimation();
})
});
optionalParams.forEach((/**
* @param {?} key
* @return {?}
*/
function (key) {
if (config[key] !== undefined) {
props[key] = config[key];
}
}));
return props;
};
/**
* @param {?} props
* @return {?}
*/
ModalService.prototype._open = /**
* @param {?} props
* @return {?}
*/
function (props) {
/** @type {?} */
var childInjector = Injector.create([
{
provide: ModalOptions,
useValue: props
}
]);
this.modalRef = this.showPopup(ModalServiceComponent, childInjector);
return this.modalRef && this.modalRef.instance;
};
/**
* @return {?}
*/
ModalService.prototype.closeWithAnimation = /**
* @return {?}
*/
function () {
var _this = this;
/** @type {?} */
var options = new ModalBaseOptions();
this.modalRef.instance.transitionName = options.transitionName + "-leave " + options.transitionName + "-leave-active";
this.modalRef.instance.maskTransitionName = options.maskTransitionName + "-leave " + options.maskTransitionName + "-leave-active";
setTimeout((/**
* @return {?}
*/
function () {
_this.close();
}), 200);
};
/**
* @param {?=} title
* @param {?=} message
* @param {?=} actions
* @param {?=} platform
* @return {?}
*/
ModalService.prototype.alert = /**
* @param {?=} title
* @param {?=} message
* @param {?=} actions
* @param {?=} platform
* @return {?}
*/
function (title, message, actions, platform) {
/** @type {?} */
var options = new AlertOptions();
options.visible = true;
options.transparent = true;
options.closable = false;
options.maskClosable = false;
options.platform = 'ios';
/** @type {?} */
var footer = getFooter.call(this, actions);
/** @type {?} */
var config = Object.assign({
title: title,
message: message,
footer: footer,
actions: footer,
platform: platform ? platform : 'ios'
});
/** @type {?} */
var props = this._initConfig(config, options);
return this._open(props);
};
/**
* @param {?=} title
* @param {?=} message
* @param {?=} callbackOrActions
* @param {?=} type
* @param {?=} defaultValue
* @param {?=} placeholders
* @param {?=} platform
* @return {?}
*/
ModalService.prototype.prompt = /**
* @param {?=} title
* @param {?=} message
* @param {?=} callbackOrActions
* @param {?=} type
* @param {?=} defaultValue
* @param {?=} placeholders
* @param {?=} platform
* @return {?}
*/
function (title, message, callbackOrActions, type, defaultValue, placeholders, platform) {
var _this = this;
/** @type {?} */
var options = new ModalOptions();
options.visible = true;
options.transparent = true;
options.closable = false;
options.maskClosable = false;
options.className = 'am-modal-alert-content';
options.defaultValue = defaultValue || ['', ''];
options.placeholders = placeholders;
(options.type = type ? type : 'default'), (options.platform = platform ? platform : 'ios');
/**
* @param {?} self
* @param {?} func
* @return {?}
*/
function getArgs(self, func) {
/** @type {?} */
var text;
/** @type {?} */
var password;
if (self.modalRef) {
text = self.modalRef.instance.data.text || options.defaultValue[0];
password = self.modalRef.instance.data.password || options.defaultValue[1];
}
else {
text = options.defaultValue[0];
password = options.defaultValue[1];
}
if (type === 'login-password') {
return func(text, password);
}
else if (type === 'secure-text') {
return func(password);
}
return func(text);
}
/** @type {?} */
var actions;
if (typeof callbackOrActions === 'function') {
actions = [
{ text: 'Cancel' },
{
text: 'OK',
onPress: (/**
* @return {?}
*/
function () {
getArgs(_this, callbackOrActions);
})
}
];
}
else {
actions = callbackOrActions.map((/**
* @param {?} item
* @return {?}
*/
function (item) {
return {
text: item.text,
onPress: (/**
* @return {?}
*/
function () {
if (item.onPress) {
return getArgs(_this, item.onPress);
}
})
};
}));
}
/** @type {?} */
var footer = getFooter.call(this, actions);
/** @type {?} */
var config = Object.assign({
title: title,
message: message,
type: type ? type : 'default',
footer: footer,
actions: footer,
platform: platform ? platform : 'ios'
});
/** @type {?} */
var props = this._initConfig(config, options);
return this._open(props);
};
/**
* @param {?=} actions
* @param {?=} platform
* @return {?}
*/
ModalService.prototype.operation = /**
* @param {?=} actions
* @param {?=} platform
* @return {?}
*/
function (actions, platform) {
/** @type {?} */
var options = new ModalOptions();
options.visible = true;
options.transparent = true;
options.closable = false;
options.maskClosable = false;
options.operation = true;
options.className = 'am-modal-operation';
/** @type {?} */
var footer = getFooter.call(this, actions);
/** @type {?} */
var config = Object.assign({
footer: footer,
actions: footer,
platform: platform ? platform : 'ios'
});
/** @type {?} */
var props = this._initConfig(config, options);
return this._open(props);
};
/**
* @return {?}
*/
ModalService.prototype.close = /**
* @return {?}
*/
function () {
this.hidePopup();
};
ModalService.decorators = [
{ type: Injectable, args: [{
providedIn: 'root'
},] },
{ type: Injectable }
];
return ModalService;
}(PopupService));
export { ModalService };
if (false) {
/** @type {?} */
ModalService.prototype.modalRef;
}
/**
* @param {?} actions
* @return {?}
*/
function getFooter(actions) {
var _this = this;
/** @type {?} */
var action = actions ? actions : [{ text: 'OK', onPress: (/**
* @return {?}
*/
function () { }) }];
return action.map((/**
* @param {?} button
* @return {?}
*/
function (button) {
/** @type {?} */
var orginPress = button.onPress || (/**
* @return {?}
*/
function () { });
button.onPress = (/**
* @return {?}
*/
function () {
/** @type {?} */
var res = orginPress();
if (res && res.then) {
res.then((/**
* @return {?}
*/
function () {
_this.closeWithAnimation();
}));
}
else {
_this.closeWithAnimation();
}
});
return button;
}));
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25nLXpvcnJvLWFudGQtbW9iaWxlLyIsInNvdXJjZXMiOlsibW9kYWwvbW9kYWwuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUE2QixNQUFNLGVBQWUsQ0FBQztBQUNoRixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBVSxNQUFNLDBCQUEwQixDQUFDO0FBQ2hHLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUU5RDtJQUlrQyx3Q0FBWTtJQUo5QztRQUFBLHFFQTRNQztRQXZNQyxjQUFRLEdBQXdDLElBQUksQ0FBQzs7SUF1TXZELENBQUM7Ozs7OztJQXRNQyxrQ0FBVzs7Ozs7SUFBWCxVQUFZLE1BQXdCLEVBQUUsT0FBWTs7WUFDMUMsS0FBSyxHQUFxQixJQUFJLGdCQUFnQixFQUFFOztZQUNoRCxjQUFjLEdBQWE7WUFDL0IsU0FBUztZQUNULE9BQU87WUFDUCxXQUFXO1lBQ1gsVUFBVTtZQUNWLFVBQVU7WUFDVixjQUFjO1lBQ2QsU0FBUztZQUNULGFBQWE7WUFDYixPQUFPO1lBQ1AsZUFBZTtZQUNmLE9BQU87WUFDUCxRQUFRO1lBQ1IsVUFBVTtZQUNWLFdBQVc7WUFDWCxlQUFlO1lBQ2YsU0FBUztZQUNULFNBQVM7WUFDVCxtQkFBbUI7WUFDbkIsTUFBTTtZQUNOLGNBQWM7WUFDZCxjQUFjO1lBQ2QsV0FBVztZQUNYLGdCQUFnQjtZQUNoQixvQkFBb0I7WUFDcEIsT0FBTztZQUNQLG9CQUFvQjtTQUNyQjs7WUFDSyxJQUFJLEdBQUcsSUFBSTtRQUNqQixNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FDcEIsT0FBTyxFQUNQLE1BQU0sRUFDTjtZQUNFLEtBQUs7OztZQUFFO2dC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TUYsVUFBVSxTQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjtnQkFDQSxVQUFVOztJQXlNWCxtQkFBQztDQUFBLEFBNU1ELENBSWtDLFlBQVksR0F3TTdDO1NBeE1ZLFlBQVk7OztJQUN2QixnQ0FBcUQ7Ozs7OztBQXlNdkQsU0FBUyxTQUFTLENBQUMsT0FBTztJQUExQixpQkFnQkM7O1FBZkssTUFBTSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxPQUFPOzs7WUFBRSxjQUFPLENBQUMsQ0FBQSxFQUFFLENBQUM7SUFDcEUsT0FBTyxNQUFNLENBQUMsR0FBRzs7OztJQUFDLFVBQUMsTUFBYzs7WUFDekIsVUFBVSxHQUFHLE1BQU0sQ0FBQyxPQUFPOzs7UUFBSSxjQUFZLENBQUMsQ0FBQTtRQUNsRCxNQUFNLENBQUMsT0FBTzs7O1FBQUc7O2dCQUNULEdBQUcsR0FBRyxVQUFVLEVBQUU7WUFDeEIsSUFBSSxHQUFHLElBQUksR0FBRyxDQUFDLElBQUksRUFBRTtnQkFDbkIsR0FBRyxDQUFDLElBQUk7OztnQkFBQztvQkFDUCxLQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztnQkFDNUIsQ0FBQyxFQUFDLENBQUM7YUFDSjtpQkFBTTtnQkFDTCxLQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQzthQUMzQjtRQUNILENBQUMsQ0FBQSxDQUFDO1FBQ0YsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQyxFQUFDLENBQUM7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0b3IsIENvbXBvbmVudFJlZiwgVGVtcGxhdGVSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1vZGFsU2VydmljZUNvbXBvbmVudCB9IGZyb20gJy4vbW9kYWwuY29tcG9uZW50JztcbmltcG9ydCB7IE1vZGFsQmFzZU9wdGlvbnMsIE1vZGFsT3B0aW9ucywgQWxlcnRPcHRpb25zLCBBY3Rpb24gfSBmcm9tICcuL21vZGFsLW9wdGlvbnMucHJvdmlkZXInO1xuaW1wb3J0IHsgUG9wdXBTZXJ2aWNlIH0gZnJvbSAnLi4vY29yZS9zZXJ2aWNlcy9wb3B1cC5zZXJ2aWNlJztcbmltcG9ydCB7IE1vZGFsUmVmIH0gZnJvbSAnLi9tb2RhbC1yZWYuY2xhc3MnO1xuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgTW9kYWxTZXJ2aWNlIGV4dGVuZHMgUG9wdXBTZXJ2aWNlIHtcbiAgbW9kYWxSZWY6IENvbXBvbmVudFJlZjxNb2RhbFNlcnZpY2VDb21wb25lbnQ+ID0gbnVsbDtcbiAgX2luaXRDb25maWcoY29uZmlnOiBNb2RhbEJhc2VPcHRpb25zLCBvcHRpb25zOiBhbnkpOiBNb2RhbEJhc2VPcHRpb25zIHtcbiAgICBjb25zdCBwcm9wczogTW9kYWxCYXNlT3B0aW9ucyA9IG5ldyBNb2RhbEJhc2VPcHRpb25zKCk7XG4gICAgY29uc3Qgb3B0aW9uYWxQYXJhbXM6IHN0cmluZ1tdID0gW1xuICAgICAgJ3Zpc2libGUnLFxuICAgICAgJ2ZvY3VzJyxcbiAgICAgICdwcmVmaXhDbHMnLFxuICAgICAgJ2FuaW1hdGVkJyxcbiAgICAgICdjbG9zYWJsZScsXG4gICAgICAnbWFza0Nsb3NhYmxlJyxcbiAgICAgICdvbkNsb3NlJyxcbiAgICAgICd0cmFuc3BhcmVudCcsXG4gICAgICAncG9wdXAnLFxuICAgICAgJ2FuaW1hdGlvblR5cGUnLFxuICAgICAgJ3RpdGxlJyxcbiAgICAgICdmb290ZXInLFxuICAgICAgJ3BsYXRmb3JtJyxcbiAgICAgICdjbGFzc05hbWUnLFxuICAgICAgJ3dyYXBDbGFzc05hbWUnLFxuICAgICAgJ21lc3NhZ2UnLFxuICAgICAgJ2FjdGlvbnMnLFxuICAgICAgJ2NhbGxiYWNrT3JBY3Rpb25zJyxcbiAgICAgICd0eXBlJyxcbiAgICAgICdkZWZhdWx0VmFsdWUnLFxuICAgICAgJ3BsYWNlaG9sZGVycycsXG4gICAgICAnb3BlcmF0aW9uJyxcbiAgICAgICd0cmFuc2l0aW9uTmFtZScsXG4gICAgICAnbWFza1RyYW5zaXRpb25OYW1lJyxcbiAgICAgICdjbG9zZScsXG4gICAgICAnY2xvc2VXaXRoQW5pbWF0aW9uJ1xuICAgIF07XG4gICAgY29uc3Qgc2VsZiA9IHRoaXM7XG4gICAgY29uZmlnID0gT2JqZWN0LmFzc2lnbihcbiAgICAgIG9wdGlvbnMsXG4gICAgICBjb25maWcsXG4gICAgICB7XG4gICAgICAgIGNsb3NlOiAoKTogdm9pZCA9PiB7XG4gICAgICAgICAgaWYgKGNvbmZpZy5tYXNrQ2xvc2FibGUgfHwgY29uZmlnLmNsb3NhYmxlKSB7XG4gICAgICAgICAgICBzZWxmLmNsb3NlV2l0aEFuaW1hdGlvbigpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgY2xvc2VXaXRoQW5pbWF0aW9uOiAoKTogdm9pZCA9PiB7XG4gICAgICAgICAgc2VsZi5jbG9zZVdpdGhBbmltYXRpb24oKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICk7XG4gICAgb3B0aW9uYWxQYXJhbXMuZm9yRWFjaChrZXkgPT4ge1xuICAgICAgaWYgKGNvbmZpZ1trZXldICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgcHJvcHNba2V5XSA9IGNvbmZpZ1trZXldO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiBwcm9wcztcbiAgfVxuXG4gIF9vcGVuKHByb3BzOiBNb2RhbEJhc2VPcHRpb25zKTogYW55IHtcbiAgICBjb25zdCBjaGlsZEluamVjdG9yID0gSW5qZWN0b3IuY3JlYXRlKFtcbiAgICAgIHtcbiAgICAgICAgcHJvdmlkZTogTW9kYWxPcHRpb25zLFxuICAgICAgICB1c2VWYWx1ZTogcHJvcHNcbiAgICAgIH1cbiAgICBdKTtcbiAgICB0aGlzLm1vZGFsUmVmID0gdGhpcy5zaG93UG9wdXAoTW9kYWxTZXJ2aWNlQ29tcG9uZW50LCBjaGlsZEluamVjdG9yKTtcbiAgICByZXR1cm4gdGhpcy5tb2RhbFJlZiAmJiB0aGlzLm1vZGFsUmVmLmluc3RhbmNlO1xuICB9XG5cbiAgY2xvc2VXaXRoQW5pbWF0aW9uKCkge1xuICAgIGNvbnN0IG9wdGlvbnM6IE1vZGFsQmFzZU9wdGlvbnMgPSBuZXcgTW9kYWxCYXNlT3B0aW9ucygpO1xuICAgIHRoaXMubW9kYWxSZWYuaW5zdGFuY2UudHJhbnNpdGlvbk5hbWUgPSBgJHtvcHRpb25zLnRyYW5zaXRpb25OYW1lfS1sZWF2ZSAke29wdGlvbnMudHJhbnNpdGlvbk5hbWV9LWxlYXZlLWFjdGl2ZWA7XG4gICAgdGhpcy5tb2RhbFJlZi5pbnN0YW5jZS5tYXNrVHJhbnNpdGlvbk5hbWUgPSBgJHtvcHRpb25zLm1hc2tUcmFuc2l0aW9uTmFtZX0tbGVhdmUgJHtvcHRpb25zLm1hc2tUcmFuc2l0aW9uTmFtZX0tbGVhdmUtYWN0aXZlYDtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICB9LCAyMDApO1xuICB9XG5cbiAgYWxlcnQoXG4gICAgdGl0bGU/OiBzdHJpbmcgfCBUZW1wbGF0ZVJlZjxhbnk+LFxuICAgIG1lc3NhZ2U/OiBzdHJpbmcgfCBUZW1wbGF0ZVJlZjxhbnk+LFxuICAgIGFjdGlvbnM/OiBBcnJheTxhbnk+LFxuICAgIHBsYXRmb3JtPzogc3RyaW5nXG4gICk6IGFueSB7XG4gICAgY29uc3Qgb3B0aW9uczogQWxlcnRPcHRpb25zID0gbmV3IEFsZXJ0T3B0aW9ucygpO1xuICAgIG9wdGlvbnMudmlzaWJsZSA9IHRydWU7XG4gICAgb3B0aW9ucy50cmFuc3BhcmVudCA9IHRydWU7XG4gICAgb3B0aW9ucy5jbG9zYWJsZSA9IGZhbHNlO1xuICAgIG9wdGlvbnMubWFza0Nsb3NhYmxlID0gZmFsc2U7XG4gICAgb3B0aW9ucy5wbGF0Zm9ybSA9ICdpb3MnO1xuXG4gICAgY29uc3QgZm9vdGVyID0gZ2V0Rm9vdGVyLmNhbGwodGhpcywgYWN0aW9ucyk7XG5cbiAgICBjb25zdCBjb25maWcgPSBPYmplY3QuYXNzaWduKHtcbiAgICAgIHRpdGxlOiB0aXRsZSxcbiAgICAgIG1lc3NhZ2U6IG1lc3NhZ2UsXG4gICAgICBmb290ZXI6IGZvb3RlcixcbiAgICAgIGFjdGlvbnM6IGZvb3RlcixcbiAgICAgIHBsYXRmb3JtOiBwbGF0Zm9ybSA/IHBsYXRmb3JtIDogJ2lvcydcbiAgICB9KTtcblxuICAgIGNvbnN0IHByb3BzID0gdGhpcy5faW5pdENvbmZpZyhjb25maWcsIG9wdGlvbnMpO1xuICAgIHJldHVybiB0aGlzLl9vcGVuKHByb3BzKTtcbiAgfVxuXG4gIHByb21wdChcbiAgICB0aXRsZT86IHN0cmluZyB8IFRlbXBsYXRlUmVmPGFueT4sXG4gICAgbWVzc2FnZT86IHN0cmluZyB8IFRlbXBsYXRlUmVmPGFueT4sXG4gICAgY2FsbGJhY2tPckFjdGlvbnM/OiBhbnksXG4gICAgdHlwZT86IHN0cmluZyxcbiAgICBkZWZhdWx0VmFsdWU/OiBBcnJheTxzdHJpbmc+LFxuICAgIHBsYWNlaG9sZGVycz86IEFycmF5PGFueT4sXG4gICAgcGxhdGZvcm0/OiBzdHJpbmdcbiAgKTogYW55IHtcbiAgICBjb25zdCBvcHRpb25zOiBNb2RhbE9wdGlvbnMgPSBuZXcgTW9kYWxPcHRpb25zKCk7XG4gICAgb3B0aW9ucy52aXNpYmxlID0gdHJ1ZTtcbiAgICBvcHRpb25zLnRyYW5zcGFyZW50ID0gdHJ1ZTtcbiAgICBvcHRpb25zLmNsb3NhYmxlID0gZmFsc2U7XG4gICAgb3B0aW9ucy5tYXNrQ2xvc2FibGUgPSBmYWxzZTtcbiAgICBvcHRpb25zLmNsYXNzTmFtZSA9ICdhbS1tb2RhbC1hbGVydC1jb250ZW50JztcbiAgICBvcHRpb25zLmRlZmF1bHRWYWx1ZSA9IGRlZmF1bHRWYWx1ZSB8fCBbJycsICcnXTtcbiAgICBvcHRpb25zLnBsYWNlaG9sZGVycyA9IHBsYWNlaG9sZGVycztcbiAgICAob3B0aW9ucy50eXBlID0gdHlwZSA/IHR5cGUgOiAnZGVmYXVsdCcpLCAob3B0aW9ucy5wbGF0Zm9ybSA9IHBsYXRmb3JtID8gcGxhdGZvcm0gOiAnaW9zJyk7XG5cbiAgICBmdW5jdGlvbiBnZXRBcmdzKHNlbGY6IGFueSwgZnVuYzogYW55KSB7XG4gICAgICBsZXQgdGV4dDogYW55LCBwYXNzd29yZDogYW55O1xuICAgICAgaWYgKHNlbGYubW9kYWxSZWYpIHtcbiAgICAgICAgdGV4dCA9IHNlbGYubW9kYWxSZWYuaW5zdGFuY2UuZGF0YS50ZXh0IHx8IG9wdGlvbnMuZGVmYXVsdFZhbHVlWzBdO1xuICAgICAgICBwYXNzd29yZCA9IHNlbGYubW9kYWxSZWYuaW5zdGFuY2UuZGF0YS5wYXNzd29yZCB8fCBvcHRpb25zLmRlZmF1bHRWYWx1ZVsxXTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRleHQgPSBvcHRpb25zLmRlZmF1bHRWYWx1ZVswXTtcbiAgICAgICAgcGFzc3dvcmQgPSBvcHRpb25zLmRlZmF1bHRWYWx1ZVsxXTtcbiAgICAgIH1cblxuICAgICAgaWYgKHR5cGUgPT09ICdsb2dpbi1wYXNzd29yZCcpIHtcbiAgICAgICAgcmV0dXJuIGZ1bmModGV4dCwgcGFzc3dvcmQpO1xuICAgICAgfSBlbHNlIGlmICh0eXBlID09PSAnc2VjdXJlLXRleHQnKSB7XG4gICAgICAgIHJldHVybiBmdW5jKHBhc3N3b3JkKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBmdW5jKHRleHQpO1xuICAgIH1cblxuICAgIGxldCBhY3Rpb25zO1xuICAgIGlmICh0eXBlb2YgY2FsbGJhY2tPckFjdGlvbnMgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIGFjdGlvbnMgPSBbXG4gICAgICAgIHsgdGV4dDogJ0NhbmNlbCcgfSxcbiAgICAgICAge1xuICAgICAgICAgIHRleHQ6ICdPSycsXG4gICAgICAgICAgb25QcmVzczogKCkgPT4ge1xuICAgICAgICAgICAgZ2V0QXJncyh0aGlzLCBjYWxsYmFja09yQWN0aW9ucyk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICBdO1xuICAgIH0gZWxzZSB7XG4gICAgICBhY3Rpb25zID0gY2FsbGJhY2tPckFjdGlvbnMubWFwKGl0ZW0gPT4ge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIHRleHQ6IGl0ZW0udGV4dCxcbiAgICAgICAgICBvblByZXNzOiAoKSA9PiB7XG4gICAgICAgICAgICBpZiAoaXRlbS5vblByZXNzKSB7XG4gICAgICAgICAgICAgIHJldHVybiBnZXRBcmdzKHRoaXMsIGl0ZW0ub25QcmVzcyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgY29uc3QgZm9vdGVyID0gZ2V0Rm9vdGVyLmNhbGwodGhpcywgYWN0aW9ucyk7XG4gICAgY29uc3QgY29uZmlnID0gT2JqZWN0LmFzc2lnbih7XG4gICAgICB0aXRsZTogdGl0bGUsXG4gICAgICBtZXNzYWdlOiBtZXNzYWdlLFxuICAgICAgdHlwZTogdHlwZSA/IHR5cGUgOiAnZGVmYXVsdCcsXG4gICAgICBmb290ZXI6IGZvb3RlcixcbiAgICAgIGFjdGlvbnM6IGZvb3RlcixcbiAgICAgIHBsYXRmb3JtOiBwbGF0Zm9ybSA/IHBsYXRmb3JtIDogJ2lvcydcbiAgICB9KTtcbiAgICBjb25zdCBwcm9wcyA9IHRoaXMuX2luaXRDb25maWcoY29uZmlnLCBvcHRpb25zKTtcbiAgICByZXR1cm4gdGhpcy5fb3Blbihwcm9wcyk7XG4gIH1cblxuICBvcGVyYXRpb24oYWN0aW9ucz86IGFueSwgcGxhdGZvcm0/OiBzdHJpbmcpOiBhbnkge1xuICAgIGNvbnN0IG9wdGlvbnM6IE1vZGFsT3B0aW9ucyA9IG5ldyBNb2RhbE9wdGlvbnMoKTtcbiAgICBvcHRpb25zLnZpc2libGUgPSB0cnVlO1xuICAgIG9wdGlvbnMudHJhbnNwYXJlbnQgPSB0cnVlO1xuICAgIG9wdGlvbnMuY2xvc2FibGUgPSBmYWxzZTtcbiAgICBvcHRpb25zLm1hc2tDbG9zYWJsZSA9IGZhbHNlO1xuICAgIG9wdGlvbnMub3BlcmF0aW9uID0gdHJ1ZTtcbiAgICBvcHRpb25zLmNsYXNzTmFtZSA9ICdhbS1tb2RhbC1vcGVyYXRpb24nO1xuICAgIGNvbnN0IGZvb3RlciA9IGdldEZvb3Rlci5jYWxsKHRoaXMsIGFjdGlvbnMpO1xuXG4gICAgY29uc3QgY29uZmlnID0gT2JqZWN0LmFzc2lnbih7XG4gICAgICBmb290ZXI6IGZvb3RlcixcbiAgICAgIGFjdGlvbnM6IGZvb3RlcixcbiAgICAgIHBsYXRmb3JtOiBwbGF0Zm9ybSA/IHBsYXRmb3JtIDogJ2lvcydcbiAgICB9KTtcbiAgICBjb25zdCBwcm9wcyA9IHRoaXMuX2luaXRDb25maWcoY29uZmlnLCBvcHRpb25zKTtcbiAgICByZXR1cm4gdGhpcy5fb3Blbihwcm9wcyk7XG4gIH1cblxuICBjbG9zZSgpIHtcbiAgICB0aGlzLmhpZGVQb3B1cCgpO1xuICB9XG59XG5cbmZ1bmN0aW9uIGdldEZvb3RlcihhY3Rpb25zKSB7XG4gIGxldCBhY3Rpb24gPSBhY3Rpb25zID8gYWN0aW9ucyA6IFt7IHRleHQ6ICdPSycsIG9uUHJlc3M6ICgpID0+IHt9IH1dO1xuICByZXR1cm4gYWN0aW9uLm1hcCgoYnV0dG9uOiBBY3Rpb24pID0+IHtcbiAgICBjb25zdCBvcmdpblByZXNzID0gYnV0dG9uLm9uUHJlc3MgfHwgZnVuY3Rpb24oKSB7fTtcbiAgICBidXR0b24ub25QcmVzcyA9ICgpID0+IHtcbiAgICAgIGNvbnN0IHJlcyA9IG9yZ2luUHJlc3MoKTtcbiAgICAgIGlmIChyZXMgJiYgcmVzLnRoZW4pIHtcbiAgICAgICAgcmVzLnRoZW4oKCkgPT4ge1xuICAgICAgICAgIHRoaXMuY2xvc2VXaXRoQW5pbWF0aW9uKCk7XG4gICAgICAgIH0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5jbG9zZVdpdGhBbmltYXRpb24oKTtcbiAgICAgIH1cbiAgICB9O1xuICAgIHJldHVybiBidXR0b247XG4gIH0pO1xufVxuIl19