UNPKG

matrix-react-sdk

Version:
157 lines (119 loc) 22.1 kB
"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=