matrix-react-sdk
Version:
SDK for matrix.org using React
157 lines (119 loc) • 22.1 kB
JavaScript
"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = exports.USER_HELP_TAB = exports.USER_MJOLNIR_TAB = exports.USER_LABS_TAB = exports.USER_SECURITY_TAB = exports.USER_VOICE_TAB = exports.USER_PREFERENCES_TAB = exports.USER_NOTIFICATIONS_TAB = exports.USER_FLAIR_TAB = exports.USER_APPEARANCE_TAB = exports.USER_GENERAL_TAB = void 0;
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
var _react = _interopRequireDefault(require("react"));
var _propTypes = _interopRequireDefault(require("prop-types"));
var _TabbedView = _interopRequireWildcard(require("../../structures/TabbedView"));
var _languageHandler = require("../../../languageHandler");
var _GeneralUserSettingsTab = _interopRequireDefault(require("../settings/tabs/user/GeneralUserSettingsTab"));
var _SettingsStore = _interopRequireDefault(require("../../../settings/SettingsStore"));
var _LabsUserSettingsTab = _interopRequireDefault(require("../settings/tabs/user/LabsUserSettingsTab"));
var _AppearanceUserSettingsTab = _interopRequireDefault(require("../settings/tabs/user/AppearanceUserSettingsTab"));
var _SecurityUserSettingsTab = _interopRequireDefault(require("../settings/tabs/user/SecurityUserSettingsTab"));
var _NotificationUserSettingsTab = _interopRequireDefault(require("../settings/tabs/user/NotificationUserSettingsTab"));
var _PreferencesUserSettingsTab = _interopRequireDefault(require("../settings/tabs/user/PreferencesUserSettingsTab"));
var _VoiceUserSettingsTab = _interopRequireDefault(require("../settings/tabs/user/VoiceUserSettingsTab"));
var _HelpUserSettingsTab = _interopRequireDefault(require("../settings/tabs/user/HelpUserSettingsTab"));
var _FlairUserSettingsTab = _interopRequireDefault(require("../settings/tabs/user/FlairUserSettingsTab"));
var sdk = _interopRequireWildcard(require("../../../index"));
var _SdkConfig = _interopRequireDefault(require("../../../SdkConfig"));
var _MjolnirUserSettingsTab = _interopRequireDefault(require("../settings/tabs/user/MjolnirUserSettingsTab"));
var _UIFeature = require("../../../settings/UIFeature");
var _replaceableComponent = require("../../../utils/replaceableComponent");
var _dec, _class, _class2, _temp;
const USER_GENERAL_TAB = "USER_GENERAL_TAB";
exports.USER_GENERAL_TAB = USER_GENERAL_TAB;
const USER_APPEARANCE_TAB = "USER_APPEARANCE_TAB";
exports.USER_APPEARANCE_TAB = USER_APPEARANCE_TAB;
const USER_FLAIR_TAB = "USER_FLAIR_TAB";
exports.USER_FLAIR_TAB = USER_FLAIR_TAB;
const USER_NOTIFICATIONS_TAB = "USER_NOTIFICATIONS_TAB";
exports.USER_NOTIFICATIONS_TAB = USER_NOTIFICATIONS_TAB;
const USER_PREFERENCES_TAB = "USER_PREFERENCES_TAB";
exports.USER_PREFERENCES_TAB = USER_PREFERENCES_TAB;
const USER_VOICE_TAB = "USER_VOICE_TAB";
exports.USER_VOICE_TAB = USER_VOICE_TAB;
const USER_SECURITY_TAB = "USER_SECURITY_TAB";
exports.USER_SECURITY_TAB = USER_SECURITY_TAB;
const USER_LABS_TAB = "USER_LABS_TAB";
exports.USER_LABS_TAB = USER_LABS_TAB;
const USER_MJOLNIR_TAB = "USER_MJOLNIR_TAB";
exports.USER_MJOLNIR_TAB = USER_MJOLNIR_TAB;
const USER_HELP_TAB = "USER_HELP_TAB";
exports.USER_HELP_TAB = USER_HELP_TAB;
let UserSettingsDialog = (_dec = (0, _replaceableComponent.replaceableComponent)("views.dialogs.UserSettingsDialog"), _dec(_class = (_temp = _class2 = class UserSettingsDialog extends _react.default.Component {
constructor() {
super();
this.state = {
mjolnirEnabled: _SettingsStore.default.getValue("feature_mjolnir")
};
}
componentDidMount()
/*: void*/
{
this._mjolnirWatcher = _SettingsStore.default.watchSetting("feature_mjolnir", null, this._mjolnirChanged.bind(this));
}
componentWillUnmount()
/*: void*/
{
_SettingsStore.default.unwatchSetting(this._mjolnirWatcher);
}
_mjolnirChanged(settingName, roomId, atLevel, newValue) {
// We can cheat because we know what levels a feature is tracked at, and how it is tracked
this.setState({
mjolnirEnabled: newValue
});
}
_getTabs() {
const tabs = [];
tabs.push(new _TabbedView.Tab(USER_GENERAL_TAB, (0, _languageHandler._td)("General"), "mx_UserSettingsDialog_settingsIcon", /*#__PURE__*/_react.default.createElement(_GeneralUserSettingsTab.default, {
closeSettingsFn: this.props.onFinished
})));
tabs.push(new _TabbedView.Tab(USER_APPEARANCE_TAB, (0, _languageHandler._td)("Appearance"), "mx_UserSettingsDialog_appearanceIcon", /*#__PURE__*/_react.default.createElement(_AppearanceUserSettingsTab.default, null)));
if (_SettingsStore.default.getValue(_UIFeature.UIFeature.Flair)) {
tabs.push(new _TabbedView.Tab(USER_FLAIR_TAB, (0, _languageHandler._td)("Flair"), "mx_UserSettingsDialog_flairIcon", /*#__PURE__*/_react.default.createElement(_FlairUserSettingsTab.default, null)));
}
tabs.push(new _TabbedView.Tab(USER_NOTIFICATIONS_TAB, (0, _languageHandler._td)("Notifications"), "mx_UserSettingsDialog_bellIcon", /*#__PURE__*/_react.default.createElement(_NotificationUserSettingsTab.default, null)));
tabs.push(new _TabbedView.Tab(USER_PREFERENCES_TAB, (0, _languageHandler._td)("Preferences"), "mx_UserSettingsDialog_preferencesIcon", /*#__PURE__*/_react.default.createElement(_PreferencesUserSettingsTab.default, null)));
if (_SettingsStore.default.getValue(_UIFeature.UIFeature.Voip)) {
tabs.push(new _TabbedView.Tab(USER_VOICE_TAB, (0, _languageHandler._td)("Voice & Video"), "mx_UserSettingsDialog_voiceIcon", /*#__PURE__*/_react.default.createElement(_VoiceUserSettingsTab.default, null)));
}
tabs.push(new _TabbedView.Tab(USER_SECURITY_TAB, (0, _languageHandler._td)("Security & Privacy"), "mx_UserSettingsDialog_securityIcon", /*#__PURE__*/_react.default.createElement(_SecurityUserSettingsTab.default, {
closeSettingsFn: this.props.onFinished
}))); // Show the Labs tab if enabled or if there are any active betas
if (_SdkConfig.default.get()['showLabsSettings'] || _SettingsStore.default.getFeatureSettingNames().some(k => _SettingsStore.default.getBetaInfo(k))) {
tabs.push(new _TabbedView.Tab(USER_LABS_TAB, (0, _languageHandler._td)("Labs"), "mx_UserSettingsDialog_labsIcon", /*#__PURE__*/_react.default.createElement(_LabsUserSettingsTab.default, null)));
}
if (this.state.mjolnirEnabled) {
tabs.push(new _TabbedView.Tab(USER_MJOLNIR_TAB, (0, _languageHandler._td)("Ignored users"), "mx_UserSettingsDialog_mjolnirIcon", /*#__PURE__*/_react.default.createElement(_MjolnirUserSettingsTab.default, null)));
}
tabs.push(new _TabbedView.Tab(USER_HELP_TAB, (0, _languageHandler._td)("Help & About"), "mx_UserSettingsDialog_helpIcon", /*#__PURE__*/_react.default.createElement(_HelpUserSettingsTab.default, {
closeSettingsFn: this.props.onFinished
})));
return tabs;
}
render() {
const BaseDialog = sdk.getComponent('views.dialogs.BaseDialog');
return /*#__PURE__*/_react.default.createElement(BaseDialog, {
className: "mx_UserSettingsDialog",
hasCancel: true,
onFinished: this.props.onFinished,
title: (0, _languageHandler._t)("Settings")
}, /*#__PURE__*/_react.default.createElement("div", {
className: "mx_SettingsDialog_content"
}, /*#__PURE__*/_react.default.createElement(_TabbedView.default, {
tabs: this._getTabs(),
initialTabId: this.props.initialTabId
})));
}
}, (0, _defineProperty2.default)(_class2, "propTypes", {
onFinished: _propTypes.default.func.isRequired,
initialTabId: _propTypes.default.string
}), _temp)) || _class);
exports.default = UserSettingsDialog;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL3ZpZXdzL2RpYWxvZ3MvVXNlclNldHRpbmdzRGlhbG9nLmpzIl0sIm5hbWVzIjpbIlVTRVJfR0VORVJBTF9UQUIiLCJVU0VSX0FQUEVBUkFOQ0VfVEFCIiwiVVNFUl9GTEFJUl9UQUIiLCJVU0VSX05PVElGSUNBVElPTlNfVEFCIiwiVVNFUl9QUkVGRVJFTkNFU19UQUIiLCJVU0VSX1ZPSUNFX1RBQiIsIlVTRVJfU0VDVVJJVFlfVEFCIiwiVVNFUl9MQUJTX1RBQiIsIlVTRVJfTUpPTE5JUl9UQUIiLCJVU0VSX0hFTFBfVEFCIiwiVXNlclNldHRpbmdzRGlhbG9nIiwiUmVhY3QiLCJDb21wb25lbnQiLCJjb25zdHJ1Y3RvciIsInN0YXRlIiwibWpvbG5pckVuYWJsZWQiLCJTZXR0aW5nc1N0b3JlIiwiZ2V0VmFsdWUiLCJjb21wb25lbnREaWRNb3VudCIsIl9tam9sbmlyV2F0Y2hlciIsIndhdGNoU2V0dGluZyIsIl9tam9sbmlyQ2hhbmdlZCIsImJpbmQiLCJjb21wb25lbnRXaWxsVW5tb3VudCIsInVud2F0Y2hTZXR0aW5nIiwic2V0dGluZ05hbWUiLCJyb29tSWQiLCJhdExldmVsIiwibmV3VmFsdWUiLCJzZXRTdGF0ZSIsIl9nZXRUYWJzIiwidGFicyIsInB1c2giLCJUYWIiLCJwcm9wcyIsIm9uRmluaXNoZWQiLCJVSUZlYXR1cmUiLCJGbGFpciIsIlZvaXAiLCJTZGtDb25maWciLCJnZXQiLCJnZXRGZWF0dXJlU2V0dGluZ05hbWVzIiwic29tZSIsImsiLCJnZXRCZXRhSW5mbyIsInJlbmRlciIsIkJhc2VEaWFsb2ciLCJzZGsiLCJnZXRDb21wb25lbnQiLCJpbml0aWFsVGFiSWQiLCJQcm9wVHlwZXMiLCJmdW5jIiwiaXNSZXF1aXJlZCIsInN0cmluZyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OztBQWlCQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7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QUFDSSxNQUFBLFNBQVMsRUFBQyx1QkFEZDtBQUVJLE1BQUEsU0FBUyxFQUFFLElBRmY7QUFHSSxNQUFBLFVBQVUsRUFBRSxLQUFLZCxLQUFMLENBQVdDLFVBSDNCO0FBSUksTUFBQSxLQUFLLEVBQUUseUJBQUcsVUFBSDtBQUpYLG9CQU1JO0FBQUssTUFBQSxTQUFTLEVBQUM7QUFBZixvQkFDSSw2QkFBQyxtQkFBRDtBQUFZLE1BQUEsSUFBSSxFQUFFLEtBQUtMLFFBQUwsRUFBbEI7QUFBbUMsTUFBQSxZQUFZLEVBQUUsS0FBS0ksS0FBTCxDQUFXZTtBQUE1RCxNQURKLENBTkosQ0FESjtBQVlIOztBQTFIMkQsQyxzREFDekM7QUFDZmQsRUFBQUEsVUFBVSxFQUFFZSxtQkFBVUMsSUFBVixDQUFlQyxVQURaO0FBRWZILEVBQUFBLFlBQVksRUFBRUMsbUJBQVVHO0FBRlQsQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG5Db3B5cmlnaHQgMjAxOSBOZXcgVmVjdG9yIEx0ZFxuQ29weXJpZ2h0IDIwMTkgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbnlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbllvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuXG4gICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG5cblVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbmRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbldJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxubGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4qL1xuXG5pbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBUYWJiZWRWaWV3LCB7VGFifSBmcm9tIFwiLi4vLi4vc3RydWN0dXJlcy9UYWJiZWRWaWV3XCI7XG5pbXBvcnQge190LCBfdGR9IGZyb20gXCIuLi8uLi8uLi9sYW5ndWFnZUhhbmRsZXJcIjtcbmltcG9ydCBHZW5lcmFsVXNlclNldHRpbmdzVGFiIGZyb20gXCIuLi9zZXR0aW5ncy90YWJzL3VzZXIvR2VuZXJhbFVzZXJTZXR0aW5nc1RhYlwiO1xuaW1wb3J0IFNldHRpbmdzU3RvcmUgZnJvbSBcIi4uLy4uLy4uL3NldHRpbmdzL1NldHRpbmdzU3RvcmVcIjtcbmltcG9ydCBMYWJzVXNlclNldHRpbmdzVGFiIGZyb20gXCIuLi9zZXR0aW5ncy90YWJzL3VzZXIvTGFic1VzZXJTZXR0aW5nc1RhYlwiO1xuaW1wb3J0IEFwcGVhcmFuY2VVc2VyU2V0dGluZ3NUYWIgZnJvbSBcIi4uL3NldHRpbmdzL3RhYnMvdXNlci9BcHBlYXJhbmNlVXNlclNldHRpbmdzVGFiXCI7XG5pbXBvcnQgU2VjdXJpdHlVc2VyU2V0dGluZ3NUYWIgZnJvbSBcIi4uL3NldHRpbmdzL3RhYnMvdXNlci9TZWN1cml0eVVzZXJTZXR0aW5nc1RhYlwiO1xuaW1wb3J0IE5vdGlmaWNhdGlvblVzZXJTZXR0aW5nc1RhYiBmcm9tIFwiLi4vc2V0dGluZ3MvdGFicy91c2VyL05vdGlmaWNhdGlvblVzZXJTZXR0aW5nc1RhYlwiO1xuaW1wb3J0IFByZWZlcmVuY2VzVXNlclNldHRpbmdzVGFiIGZyb20gXCIuLi9zZXR0aW5ncy90YWJzL3VzZXIvUHJlZmVyZW5jZXNVc2VyU2V0dGluZ3NUYWJcIjtcbmltcG9ydCBWb2ljZVVzZXJTZXR0aW5nc1RhYiBmcm9tIFwiLi4vc2V0dGluZ3MvdGFicy91c2VyL1ZvaWNlVXNlclNldHRpbmdzVGFiXCI7XG5pbXBvcnQgSGVscFVzZXJTZXR0aW5nc1RhYiBmcm9tIFwiLi4vc2V0dGluZ3MvdGFicy91c2VyL0hlbHBVc2VyU2V0dGluZ3NUYWJcIjtcbmltcG9ydCBGbGFpclVzZXJTZXR0aW5nc1RhYiBmcm9tIFwiLi4vc2V0dGluZ3MvdGFicy91c2VyL0ZsYWlyVXNlclNldHRpbmdzVGFiXCI7XG5pbXBvcnQgKiBhcyBzZGsgZnJvbSBcIi4uLy4uLy4uL2luZGV4XCI7XG5pbXBvcnQgU2RrQ29uZmlnIGZyb20gXCIuLi8uLi8uLi9TZGtDb25maWdcIjtcbmltcG9ydCBNam9sbmlyVXNlclNldHRpbmdzVGFiIGZyb20gXCIuLi9zZXR0aW5ncy90YWJzL3VzZXIvTWpvbG5pclVzZXJTZXR0aW5nc1RhYlwiO1xuaW1wb3J0IHtVSUZlYXR1cmV9IGZyb20gXCIuLi8uLi8uLi9zZXR0aW5ncy9VSUZlYXR1cmVcIjtcbmltcG9ydCB7cmVwbGFjZWFibGVDb21wb25lbnR9IGZyb20gXCIuLi8uLi8uLi91dGlscy9yZXBsYWNlYWJsZUNvbXBvbmVudFwiO1xuXG5leHBvcnQgY29uc3QgVVNFUl9HRU5FUkFMX1RBQiA9IFwiVVNFUl9HRU5FUkFMX1RBQlwiO1xuZXhwb3J0IGNvbnN0IFVTRVJfQVBQRUFSQU5DRV9UQUIgPSBcIlVTRVJfQVBQRUFSQU5DRV9UQUJcIjtcbmV4cG9ydCBjb25zdCBVU0VSX0ZMQUlSX1RBQiA9IFwiVVNFUl9GTEFJUl9UQUJcIjtcbmV4cG9ydCBjb25zdCBVU0VSX05PVElGSUNBVElPTlNfVEFCID0gXCJVU0VSX05PVElGSUNBVElPTlNfVEFCXCI7XG5leHBvcnQgY29uc3QgVVNFUl9QUkVGRVJFTkNFU19UQUIgPSBcIlVTRVJfUFJFRkVSRU5DRVNfVEFCXCI7XG5leHBvcnQgY29uc3QgVVNFUl9WT0lDRV9UQUIgPSBcIlVTRVJfVk9JQ0VfVEFCXCI7XG5leHBvcnQgY29uc3QgVVNFUl9TRUNVUklUWV9UQUIgPSBcIlVTRVJfU0VDVVJJVFlfVEFCXCI7XG5leHBvcnQgY29uc3QgVVNFUl9MQUJTX1RBQiA9IFwiVVNFUl9MQUJTX1RBQlwiO1xuZXhwb3J0IGNvbnN0IFVTRVJfTUpPTE5JUl9UQUIgPSBcIlVTRVJfTUpPTE5JUl9UQUJcIjtcbmV4cG9ydCBjb25zdCBVU0VSX0hFTFBfVEFCID0gXCJVU0VSX0hFTFBfVEFCXCI7XG5cbkByZXBsYWNlYWJsZUNvbXBvbmVudChcInZpZXdzLmRpYWxvZ3MuVXNlclNldHRpbmdzRGlhbG9nXCIpXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBVc2VyU2V0dGluZ3NEaWFsb2cgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQge1xuICAgIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgICAgIG9uRmluaXNoZWQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgICAgIGluaXRpYWxUYWJJZDogUHJvcFR5cGVzLnN0cmluZyxcbiAgICB9O1xuXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKCk7XG5cbiAgICAgICAgdGhpcy5zdGF0ZSA9IHtcbiAgICAgICAgICAgIG1qb2xuaXJFbmFibGVkOiBTZXR0aW5nc1N0b3JlLmdldFZhbHVlKFwiZmVhdHVyZV9tam9sbmlyXCIpLFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIGNvbXBvbmVudERpZE1vdW50KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9tam9sbmlyV2F0Y2hlciA9IFNldHRpbmdzU3RvcmUud2F0Y2hTZXR0aW5nKFwiZmVhdHVyZV9tam9sbmlyXCIsIG51bGwsIHRoaXMuX21qb2xuaXJDaGFuZ2VkLmJpbmQodGhpcykpO1xuICAgIH1cblxuICAgIGNvbXBvbmVudFdpbGxVbm1vdW50KCk6IHZvaWQge1xuICAgICAgICBTZXR0aW5nc1N0b3JlLnVud2F0Y2hTZXR0aW5nKHRoaXMuX21qb2xuaXJXYXRjaGVyKTtcbiAgICB9XG5cbiAgICBfbWpvbG5pckNoYW5nZWQoc2V0dGluZ05hbWUsIHJvb21JZCwgYXRMZXZlbCwgbmV3VmFsdWUpIHtcbiAgICAgICAgLy8gV2UgY2FuIGNoZWF0IGJlY2F1c2Ugd2Uga25vdyB3aGF0IGxldmVscyBhIGZlYXR1cmUgaXMgdHJhY2tlZCBhdCwgYW5kIGhvdyBpdCBpcyB0cmFja2VkXG4gICAgICAgIHRoaXMuc2V0U3RhdGUoe21qb2xuaXJFbmFibGVkOiBuZXdWYWx1ZX0pO1xuICAgIH1cblxuICAgIF9nZXRUYWJzKCkge1xuICAgICAgICBjb25zdCB0YWJzID0gW107XG5cbiAgICAgICAgdGFicy5wdXNoKG5ldyBUYWIoXG4gICAgICAgICAgICBVU0VSX0dFTkVSQUxfVEFCLFxuICAgICAgICAgICAgX3RkKFwiR2VuZXJhbFwiKSxcbiAgICAgICAgICAgIFwibXhfVXNlclNldHRpbmdzRGlhbG9nX3NldHRpbmdzSWNvblwiLFxuICAgICAgICAgICAgPEdlbmVyYWxVc2VyU2V0dGluZ3NUYWIgY2xvc2VTZXR0aW5nc0ZuPXt0aGlzLnByb3BzLm9uRmluaXNoZWR9IC8+LFxuICAgICAgICApKTtcbiAgICAgICAgdGFicy5wdXNoKG5ldyBUYWIoXG4gICAgICAgICAgICBVU0VSX0FQUEVBUkFOQ0VfVEFCLFxuICAgICAgICAgICAgX3RkKFwiQXBwZWFyYW5jZVwiKSxcbiAgICAgICAgICAgIFwibXhfVXNlclNldHRpbmdzRGlhbG9nX2FwcGVhcmFuY2VJY29uXCIsXG4gICAgICAgICAgICA8QXBwZWFyYW5jZVVzZXJTZXR0aW5nc1RhYiAvPixcbiAgICAgICAgKSk7XG4gICAgICAgIGlmIChTZXR0aW5nc1N0b3JlLmdldFZhbHVlKFVJRmVhdHVyZS5GbGFpcikpIHtcbiAgICAgICAgICAgIHRhYnMucHVzaChuZXcgVGFiKFxuICAgICAgICAgICAgICAgIFVTRVJfRkxBSVJfVEFCLFxuICAgICAgICAgICAgICAgIF90ZChcIkZsYWlyXCIpLFxuICAgICAgICAgICAgICAgIFwibXhfVXNlclNldHRpbmdzRGlhbG9nX2ZsYWlySWNvblwiLFxuICAgICAgICAgICAgICAgIDxGbGFpclVzZXJTZXR0aW5nc1RhYiAvPixcbiAgICAgICAgICAgICkpO1xuICAgICAgICB9XG4gICAgICAgIHRhYnMucHVzaChuZXcgVGFiKFxuICAgICAgICAgICAgVVNFUl9OT1RJRklDQVRJT05TX1RBQixcbiAgICAgICAgICAgIF90ZChcIk5vdGlmaWNhdGlvbnNcIiksXG4gICAgICAgICAgICBcIm14X1VzZXJTZXR0aW5nc0RpYWxvZ19iZWxsSWNvblwiLFxuICAgICAgICAgICAgPE5vdGlmaWNhdGlvblVzZXJTZXR0aW5nc1RhYiAvPixcbiAgICAgICAgKSk7XG4gICAgICAgIHRhYnMucHVzaChuZXcgVGFiKFxuICAgICAgICAgICAgVVNFUl9QUkVGRVJFTkNFU19UQUIsXG4gICAgICAgICAgICBfdGQoXCJQcmVmZXJlbmNlc1wiKSxcbiAgICAgICAgICAgIFwibXhfVXNlclNldHRpbmdzRGlhbG9nX3ByZWZlcmVuY2VzSWNvblwiLFxuICAgICAgICAgICAgPFByZWZlcmVuY2VzVXNlclNldHRpbmdzVGFiIC8+LFxuICAgICAgICApKTtcblxuICAgICAgICBpZiAoU2V0dGluZ3NTdG9yZS5nZXRWYWx1ZShVSUZlYXR1cmUuVm9pcCkpIHtcbiAgICAgICAgICAgIHRhYnMucHVzaChuZXcgVGFiKFxuICAgICAgICAgICAgICAgIFVTRVJfVk9JQ0VfVEFCLFxuICAgICAgICAgICAgICAgIF90ZChcIlZvaWNlICYgVmlkZW9cIiksXG4gICAgICAgICAgICAgICAgXCJteF9Vc2VyU2V0dGluZ3NEaWFsb2dfdm9pY2VJY29uXCIsXG4gICAgICAgICAgICAgICAgPFZvaWNlVXNlclNldHRpbmdzVGFiIC8+LFxuICAgICAgICAgICAgKSk7XG4gICAgICAgIH1cblxuICAgICAgICB0YWJzLnB1c2gobmV3IFRhYihcbiAgICAgICAgICAgIFVTRVJfU0VDVVJJVFlfVEFCLFxuICAgICAgICAgICAgX3RkKFwiU2VjdXJpdHkgJiBQcml2YWN5XCIpLFxuICAgICAgICAgICAgXCJteF9Vc2VyU2V0dGluZ3NEaWFsb2dfc2VjdXJpdHlJY29uXCIsXG4gICAgICAgICAgICA8U2VjdXJpdHlVc2VyU2V0dGluZ3NUYWIgY2xvc2VTZXR0aW5nc0ZuPXt0aGlzLnByb3BzLm9uRmluaXNoZWR9IC8+LFxuICAgICAgICApKTtcbiAgICAgICAgLy8gU2hvdyB0aGUgTGFicyB0YWIgaWYgZW5hYmxlZCBvciBpZiB0aGVyZSBhcmUgYW55IGFjdGl2ZSBiZXRhc1xuICAgICAgICBpZiAoU2RrQ29uZmlnLmdldCgpWydzaG93TGFic1NldHRpbmdzJ11cbiAgICAgICAgICAgIHx8IFNldHRpbmdzU3RvcmUuZ2V0RmVhdHVyZVNldHRpbmdOYW1lcygpLnNvbWUoayA9PiBTZXR0aW5nc1N0b3JlLmdldEJldGFJbmZvKGspKVxuICAgICAgICApIHtcbiAgICAgICAgICAgIHRhYnMucHVzaChuZXcgVGFiKFxuICAgICAgICAgICAgICAgIFVTRVJfTEFCU19UQUIsXG4gICAgICAgICAgICAgICAgX3RkKFwiTGFic1wiKSxcbiAgICAgICAgICAgICAgICBcIm14X1VzZXJTZXR0aW5nc0RpYWxvZ19sYWJzSWNvblwiLFxuICAgICAgICAgICAgICAgIDxMYWJzVXNlclNldHRpbmdzVGFiIC8+LFxuICAgICAgICAgICAgKSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuc3RhdGUubWpvbG5pckVuYWJsZWQpIHtcbiAgICAgICAgICAgIHRhYnMucHVzaChuZXcgVGFiKFxuICAgICAgICAgICAgICAgIFVTRVJfTUpPTE5JUl9UQUIsXG4gICAgICAgICAgICAgICAgX3RkKFwiSWdub3JlZCB1c2Vyc1wiKSxcbiAgICAgICAgICAgICAgICBcIm14X1VzZXJTZXR0aW5nc0RpYWxvZ19tam9sbmlySWNvblwiLFxuICAgICAgICAgICAgICAgIDxNam9sbmlyVXNlclNldHRpbmdzVGFiIC8+LFxuICAgICAgICAgICAgKSk7XG4gICAgICAgIH1cbiAgICAgICAgdGFicy5wdXNoKG5ldyBUYWIoXG4gICAgICAgICAgICBVU0VSX0hFTFBfVEFCLFxuICAgICAgICAgICAgX3RkKFwiSGVscCAmIEFib3V0XCIpLFxuICAgICAgICAgICAgXCJteF9Vc2VyU2V0dGluZ3NEaWFsb2dfaGVscEljb25cIixcbiAgICAgICAgICAgIDxIZWxwVXNlclNldHRpbmdzVGFiIGNsb3NlU2V0dGluZ3NGbj17dGhpcy5wcm9wcy5vbkZpbmlzaGVkfSAvPixcbiAgICAgICAgKSk7XG5cbiAgICAgICAgcmV0dXJuIHRhYnM7XG4gICAgfVxuXG4gICAgcmVuZGVyKCkge1xuICAgICAgICBjb25zdCBCYXNlRGlhbG9nID0gc2RrLmdldENvbXBvbmVudCgndmlld3MuZGlhbG9ncy5CYXNlRGlhbG9nJyk7XG5cbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIDxCYXNlRGlhbG9nXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPSdteF9Vc2VyU2V0dGluZ3NEaWFsb2cnXG4gICAgICAgICAgICAgICAgaGFzQ2FuY2VsPXt0cnVlfVxuICAgICAgICAgICAgICAgIG9uRmluaXNoZWQ9e3RoaXMucHJvcHMub25GaW5pc2hlZH1cbiAgICAgICAgICAgICAgICB0aXRsZT17X3QoXCJTZXR0aW5nc1wiKX1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT0nbXhfU2V0dGluZ3NEaWFsb2dfY29udGVudCc+XG4gICAgICAgICAgICAgICAgICAgIDxUYWJiZWRWaWV3IHRhYnM9e3RoaXMuX2dldFRhYnMoKX0gaW5pdGlhbFRhYklkPXt0aGlzLnByb3BzLmluaXRpYWxUYWJJZH0gLz5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvQmFzZURpYWxvZz5cbiAgICAgICAgKTtcbiAgICB9XG59XG4iXX0=