diff --git a/src/views/acc-security-view.jsx b/src/views/acc-security-view.jsx
index ba3afc8e..c4989b5f 100644
--- a/src/views/acc-security-view.jsx
+++ b/src/views/acc-security-view.jsx
@@ -43,6 +43,7 @@ class AccSecurityView extends React.Component {
this.handleHidePermissionsEditor = this.handleHidePermissionsEditor.bind(this);
this.handlePermissionsChanged = this.handlePermissionsChanged.bind(this);
this.handleDeleteAccount = this.handleDeleteAccount.bind(this);
+ this.handleLogoutRequest = this.handleLogoutRequest.bind(this);
this.handleCheckboxClick = this.handleCheckboxClick.bind(this);
}
@@ -89,6 +90,26 @@ class AccSecurityView extends React.Component {
);
}
+ // "退出登录"这个按钮原来是 onClick 里直接 `this.props.onLogout()`,没有任何二次确认——同一个文件里
+ // 紧挨着的"删除帐户"按钮反而是走 onShowAlert 弹确认框的(见上面 handleDeleteAccount)。本页
+ // ('security' 路由)并不是废弃页面:account-settings-view.jsx、info-view.jsx 的"安全"入口,以及
+ // 第2章系统消息列表里"前往安全设置"跳转按钮(message-center-view.jsx)都会真的落到这个页面,
+ // 跟 personal-settings-view.jsx 的"设置"页(那边的退出登录已经在别的改造里换成了自己的
+ // ConfirmSheet/LogoutConfirm)是两条并存的独立路径——用户从系统消息点"前往安全设置"进来,单击一下
+ // 图标就会被立即退出登录,且没有任何撤销机会。改成跟"删除帐户"一样走 onShowAlert,文案与
+ // personal-settings-view.jsx 的 LogoutConfirm 保持一致,不新造一套措辞。
+ handleLogoutRequest(e) {
+ e.preventDefault();
+ this.props.onShowAlert(
+ '退出登录',
+ '确定要退出当前登录吗?',
+ (_ => this.props.onLogout()),
+ null, // use default text "OK"
+ true, // Show Reject button
+ null // use default text "Cancel"
+ );
+ }
+
render() {
return (
<>{this.state.showPermissionEditorFor ?
@@ -143,7 +164,7 @@ class AccSecurityView extends React.Component {
-
{e.preventDefault(); this.props.onLogout();}}>
+
exit_to_app
diff --git a/umd/src_views_acc-security-view_jsx.dev.js b/umd/src_views_acc-security-view_jsx.dev.js
index ff36c279..94a3e581 100644
--- a/umd/src_views_acc-security-view_jsx.dev.js
+++ b/umd/src_views_acc-security-view_jsx.dev.js
@@ -56,6 +56,7 @@ class AccSecurityView extends (react__WEBPACK_IMPORTED_MODULE_0___default().Comp
this.handleHidePermissionsEditor = this.handleHidePermissionsEditor.bind(this);
this.handlePermissionsChanged = this.handlePermissionsChanged.bind(this);
this.handleDeleteAccount = this.handleDeleteAccount.bind(this);
+ this.handleLogoutRequest = this.handleLogoutRequest.bind(this);
this.handleCheckboxClick = this.handleCheckboxClick.bind(this);
}
handlePasswordUpdate(pwd) {
@@ -95,6 +96,10 @@ class AccSecurityView extends (react__WEBPACK_IMPORTED_MODULE_0___default().Comp
} = this.props.intl;
this.props.onShowAlert(formatMessage(messages.delete_account), formatMessage(messages.delete_account_warning), _ => this.props.onDeleteAccount(), null, true, null);
}
+ handleLogoutRequest(e) {
+ e.preventDefault();
+ this.props.onShowAlert('退出登录', '确定要退出当前登录吗?', _ => this.props.onLogout(), null, true, null);
+ }
render() {
return (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.Fragment, {
children: this.state.showPermissionEditorFor ? (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)(_widgets_permissions_editor_jsx__WEBPACK_IMPORTED_MODULE_4__["default"], {
@@ -203,10 +208,7 @@ class AccSecurityView extends (react__WEBPACK_IMPORTED_MODULE_0___default().Comp
children: [(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)("a", {
href: "#",
className: "danger flat-button",
- onClick: e => {
- e.preventDefault();
- this.props.onLogout();
- },
+ onClick: this.handleLogoutRequest,
children: [(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)("i", {
className: "material-icons",
children: "exit_to_app"
diff --git a/umd/src_views_acc-security-view_jsx.dev.js.map b/umd/src_views_acc-security-view_jsx.dev.js.map
index e15dc3f9..51f130e4 100644
--- a/umd/src_views_acc-security-view_jsx.dev.js.map
+++ b/umd/src_views_acc-security-view_jsx.dev.js.map
@@ -1 +1 @@
-{"version":3,"file":"src_views_acc-security-view_jsx.dev.js","mappings":";;;;;;;;;;;;;;;;;;AAC0B;AACgD;AAE3B;AACQ;AACW;AAAA;AAElE,MAAM,QAAQ,GAAG,0DAAc,CAAC;EAC9B,cAAc,EAAE;IACd,EAAE,EAAE,gBAAgB;IACpB,cAAc,EAAE,gBAAgB;IAChC,WAAW,EAAE;EACf,CAAC;EACD,sBAAsB,EAAE;IACtB,EAAE,EAAE,wBAAwB;IAC5B,cAAc,EAAE,oEAAoE;IACpF,WAAW,EAAE;EACf;AACF,CAAC,CAAC;AAEF,MAAM,eAAe,SAAS,wDAAe,CAAC;EAC5C,WAAW,CAAC,KAAK,EAAE;IACjB,KAAK,CAAC,KAAK,CAAC;IAEZ,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IACzC,IAAI,YAAY,GAAG,CAAC;IACpB,EAAE,CAAC,QAAQ,CAAE,CAAC,IAAK;MACjB,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE;QAC9B,YAAY,EAAG;MACjB;IACF,CAAC,CAAC;IACF,MAAM,MAAM,GAAG,EAAE,CAAC,gBAAgB,CAAC,CAAC;IACpC,IAAI,CAAC,KAAK,GAAG;MACX,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,IAAI,GAAG,IAAI;MACjC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,IAAI,GAAG,IAAI;MACjC,uBAAuB,EAAE,SAAS;MAClC,YAAY,EAAE;IAChB,CAAC;IAED,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC;IAChE,IAAI,CAAC,6BAA6B,GAAG,IAAI,CAAC,6BAA6B,CAAC,IAAI,CAAC,IAAI,CAAC;IAClF,IAAI,CAAC,2BAA2B,GAAG,IAAI,CAAC,2BAA2B,CAAC,IAAI,CAAC,IAAI,CAAC;IAC9E,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC;IACxE,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC;IAC9D,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC;EAChE;EAEA,oBAAoB,CAAC,GAAG,EAAE;IACxB,IAAI,CAAC,QAAQ,CAAC;MAAC,QAAQ,EAAE;IAAG,CAAC,CAAC;IAC9B,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,GAAG,CAAC;EAClC;EAEA,6BAA6B,CAAC,KAAK,EAAE;IACnC,IAAI,CAAC,QAAQ,CAAC;MACZ,uBAAuB,EAAE,KAAK;MAC9B,iBAAiB,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK;IACrC,CAAC,CAAC;EACJ;EAEA,2BAA2B,GAAG;IAC5B,IAAI,CAAC,QAAQ,CAAC;MAAC,uBAAuB,EAAE;IAAS,CAAC,CAAC;EACrD;EAEA,wBAAwB,CAAC,IAAI,EAAE;IAC7B,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,uBAAuB,CAAC,GAAG,IAAI;IACjD,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,CAAC;IAElE,IAAI,QAAQ,GAAG;MAAC,uBAAuB,EAAE;IAAS,CAAC;IACnD,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,uBAAuB,CAAC,GAAG,IAAI;IACnD,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;EACzB;EAEA,mBAAmB,CAAC,IAAI,EAAE,OAAO,EAAE;IACjC,IAAI,CAAC,KAAK,CAAC,qBAAqB,CAAC,OAAO,CAAC;EAC3C;EAEA,mBAAmB,CAAC,CAAC,EAAE;IACrB,CAAC,CAAC,cAAc,CAAC,CAAC;IAClB,MAAM;MAAC;IAAa,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI;IACvC,IAAI,CAAC,KAAK,CAAC,WAAW,CACpB,aAAa,CAAC,QAAQ,CAAC,cAAc,CAAC,EACtC,aAAa,CAAC,QAAQ,CAAC,sBAAsB,CAAC,EAC7C,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,EAClC,IAAI,EACJ,IAAI,EACJ,IACF,CAAC;EACH;EAEA,MAAM,GAAG;IACP,OACE;MAAA,UAAG,IAAI,CAAC,KAAK,CAAC,uBAAuB,GACnC,8DAAC,uEAAiB;QAChB,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,iBAAkB;QACnC,IAAI,EAAC,GAAG;QACR,QAAQ,EAAE,IAAI,CAAC,wBAAyB;QACxC,QAAQ,EAAE,IAAI,CAAC;MAA4B,gBAAE,CAAC,GAEhD;QAAK,SAAS,EAAC,kBAAkB;QAAA,WAC/B;UAAK,SAAS,EAAC,mBAAmB;UAAA,WAChC;YAAO,SAAS,EAAC,OAAO;YAAA,UACtB,8DAAC,wDAAgB;cAAC,EAAE,EAAC,gBAAgB;cAAC,cAAc,EAAC,UAAU;cAC3D,WAAW,EAAC;YAA4B,gBAAE;UAAC,gBAC1C,CAAC,EACR;YAAA,UACE,8DAAC,wDAAgB;cAAC,EAAE,EAAC,2BAA2B;cAAC,cAAc,EAAC,WAAW;cACzE,WAAW,EAAC,+CAA+C;cAAA,UAC1D,kBAAkB,IAAK,8DAAC,kEAAW;gBAClC,WAAW,EAAE,kBAAmB;gBAChC,IAAI,EAAC,UAAU;gBACf,UAAU,EAAE,IAAI,CAAC;cAAqB,gBAAE;YAAC,gBAC1B;UAAC,gBACjB,CAAC;QAAA,eACH,CAAC,EACN;UAAK,SAAS,EAAC;QAAI,gBAAE,CAAC,EACtB;UAAK,SAAS,EAAC,gBAAgB;UAAA,WAC7B;YAAO,OAAO,EAAC,gBAAgB;YAAA,UAC7B,8DAAC,wDAAgB;cAAC,EAAE,EAAC,sBAAsB;cAAC,cAAc,EAAC,iBAAiB;cAC1E,WAAW,EAAC;YAAiC,gBAAE;UAAC,gBAC7C,CAAC,EACR,8DAAC,6DAAQ;YAAC,IAAI,EAAC,WAAW;YAAC,EAAE,EAAC,gBAAgB;YAC5C,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,aAAc;YAAC,QAAQ,EAAE,IAAI,CAAC;UAAoB,gBAAE,CAAC;QAAA,eACxE,CAAC,EACN;UAAK,SAAS,EAAC,gBAAgB;UAAA,UAC7B;YAAM,SAAS,EAAC,YAAY;YAAA,UAC1B,8DAAC,wDAAgB;cAAC,EAAE,EAAC,4BAA4B;cAAC,cAAc,EAAC,gDAAgD;cAC/G,WAAW,EAAC;YAAuC,gBAAE;UAAC,gBACpD;QAAC,gBACJ,CAAC,EACN;UAAK,SAAS,EAAC;QAAI,gBAAE,CAAC,EACtB;UAAK,SAAS,EAAC,0CAA0C;UAAA,WACvD;YAAQ,IAAI,EAAC,QAAQ;YAAC,SAAS,EAAC,aAAa;YAAC,OAAO,EAAE,MAAM,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,UAAU,CAAE;YAAA,WAC7F;cAAG,SAAS,EAAC,gBAAgB;cAAA,UAAC;YAAa,gBAAG,CAAC;cAAA,UAAM;YAAI,gBAAM,CAAC;cAAG,SAAS,EAAC,yBAAyB;cAAA,UAAC;YAAa,gBAAG,CAAC;UAAA,eAClH,CAAC,EACT;YAAQ,IAAI,EAAC,QAAQ;YAAC,SAAS,EAAC,aAAa;YAAC,OAAO,EAAE,MAAM,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,gBAAgB,CAAE;YAAA,WACnG;cAAG,SAAS,EAAC,gBAAgB;cAAA,UAAC;YAAc,gBAAG,CAAC;cAAA,UAAM;YAAI,gBAAM,CAAC;cAAG,SAAS,EAAC,yBAAyB;cAAA,UAAC;YAAa,gBAAG,CAAC;UAAA,eACnH,CAAC,EACT;YAAQ,IAAI,EAAC,QAAQ;YAAC,SAAS,EAAC,aAAa;YAAC,OAAO,EAAE,MAAM,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,sBAAsB,CAAE;YAAA,WACzG;cAAG,SAAS,EAAC,gBAAgB;cAAA,UAAC;YAAQ,gBAAG,CAAC;cAAA,UAAM;YAAM,gBAAM,CAAC;cAAG,SAAS,EAAC,yBAAyB;cAAA,UAAC;YAAa,gBAAG,CAAC;UAAA,eAC/G,CAAC;QAAA,eACN,CAAC,EACN;UAAK,SAAS,EAAC;QAAI,gBAAE,CAAC,EACtB;UAAK,SAAS,EAAC,mBAAmB;UAAA,WAChC;YAAG,IAAI,EAAC,GAAG;YAAC,SAAS,EAAC,oBAAoB;YAAC,OAAO,EAAG,CAAC,IAAK;cAAC,CAAC,CAAC,cAAc,CAAC,CAAC;cAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YAAC,CAAE;YAAA,WACtG;cAAG,SAAS,EAAC,gBAAgB;cAAA,UAAC;YAAW,gBAAG,CAAC,SAAO,gEAAC,wDAAgB;cAAC,EAAE,EAAC,eAAe;cACtF,cAAc,EAAC,QAAQ;cAAC,WAAW,EAAC;YAAiB,gBAAE,CAAC;UAAA,eACzD,CAAC,EACJ;YAAG,IAAI,EAAC,GAAG;YAAC,SAAS,EAAC,oBAAoB;YAAC,OAAO,EAAG,CAAC,IAAK;cAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC;YAAC,CAAE;YAAA,WACxF;cAAG,SAAS,EAAC,gBAAgB;cAAA,UAAC;YAAM,gBAAG,CAAC,SAAO,gEAAC,wDAAgB;cAAC,EAAE,EAAC,uBAAuB;cACzF,cAAc,EAAC,gBAAgB;cAAC,WAAW,EAAC;YAAyB,gBAAE,CAAC;UAAA,eACzE,CAAC;QAAA,eACD,CAAC,EACN;UAAK,SAAS,EAAC;QAAI,gBAAE,CAAC,EACtB;UAAK,SAAS,EAAC,mBAAmB;UAAA,WAChC;YAAA,UACE;cAAO,SAAS,EAAC,OAAO;cAAA,UACtB,8DAAC,wDAAgB;gBAAC,EAAE,EAAC,2BAA2B;gBAAC,cAAc,EAAC,sBAAsB;gBACpF,WAAW,EAAC;cAA+B,gBAAE;YAAC,gBAC3C;UAAC,gBACL,CAAC,EACN;YAAK,SAAS,EAAC,QAAQ;YAAA,WACrB;cAAA,WAAK,QAAM;gBAAI,SAAS,EAAC,WAAW;gBAClC,OAAO,EAAE,IAAI,CAAC,6BAA6B,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAE;gBAAA,UAAE,IAAI,CAAC,KAAK,CAAC;cAAI,gBAAK,CAAC;YAAA,eAAK,CAAC,EAC9F;cAAA,WAAK,QAAM;gBAAI,SAAS,EAAC,WAAW;gBAClC,OAAO,EAAE,IAAI,CAAC,6BAA6B,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAE;gBAAA,UAAE,IAAI,CAAC,KAAK,CAAC;cAAI,gBAAK,CAAC;YAAA,eAAK,CAAC;UAAA,eAC3F,CAAC;QAAA,eACH,CAAC,EACL,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,CAAC,GAC1B;UAAA,WACE;YAAK,SAAS,EAAC;UAAI,gBAAE,CAAC,EACtB;YAAK,SAAS,EAAC,gBAAgB;YAAA,WAC7B;cAAG,SAAS,EAAC,gBAAgB;cAAA,UAAC;YAAK,gBAAG,CAAC,QACvC;cAAG,IAAI,EAAC,GAAG;cAAC,SAAS,EAAC,MAAM;cAAC,OAAO,EAAG,CAAC,IAAK;gBAAC,CAAC,CAAC,cAAc,CAAC,CAAC;gBAAE,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;cAAC,CAAE;cAAA,UAC7F,8DAAC,wDAAgB;gBAAC,EAAE,EAAC,uBAAuB;gBAAC,cAAc,EAAC,4BAA4B;gBACtF,MAAM,EAAE;kBAAE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC;gBAAa,CAAE;gBAAC,WAAW,EAAC;cAAuB,gBAAE;YAAC,gBACnF,CAAC;UAAA,eACD,CAAC;QAAA,eACN,CAAC,GACD,IAAI;MAAA,eACL;IAAC,gBACL,CAAC;EAER;AACF;AAAC;AAED,+DAAe,sDAAU,CAAC,eAAe,CAAC,E;;;;;;;;;;;;;;;;;;;ACzLhB;AACgD;AAEpC;AACF;AAEkB;AAAA;AAGtD,MAAM,QAAQ,GAAG,0DAAc,CAAC;EAC9B,MAAM,EAAE;IACN,EAAE,EAAE,iBAAiB;IACrB,cAAc,EAAE,cAAc;IAC9B,WAAW,EAAE;EACf,CAAC;EACD,MAAM,EAAE;IACN,EAAE,EAAE,iBAAiB;IACrB,cAAc,EAAE,cAAc;IAC9B,WAAW,EAAE;EACf,CAAC;EACD,MAAM,EAAE;IACN,EAAE,EAAE,kBAAkB;IACtB,cAAc,EAAE,eAAe;IAC/B,WAAW,EAAE;EACf,CAAC;EACD,MAAM,EAAE;IACN,EAAE,EAAE,iBAAiB;IACrB,cAAc,EAAE,sBAAsB;IACtC,WAAW,EAAE;EACf,CAAC;EACD,QAAQ,EAAE;IACR,EAAE,EAAE,kBAAkB;IACtB,cAAc,EAAE,iBAAiB;IACjC,WAAW,EAAE;EACf,CAAC;EACD,MAAM,EAAE;IACN,EAAE,EAAE,kBAAkB;IACtB,cAAc,EAAE,eAAe;IAC/B,WAAW,EAAE;EACf,CAAC;EACD,OAAO,EAAE;IACP,EAAE,EAAE,mBAAmB;IACvB,cAAc,EAAE,gBAAgB;IAChC,WAAW,EAAE;EACf,CAAC;EACD,KAAK,EAAE;IACL,EAAE,EAAE,kBAAkB;IACtB,cAAc,EAAE,eAAe;IAC/B,WAAW,EAAE;EACf;AACF,CAAC,CAAC;AAEF,MAAM,iBAAiB,SAAS,wDAAe,CAAC;EAC9C,WAAW,CAAC,KAAK,EAAE;IACjB,KAAK,CAAC,KAAK,CAAC;IAEZ,IAAI,CAAC,KAAK,GAAG;MACX,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,EAAE,OAAO,CAAC,GAAG,EAAE,EAAE;IAC1C,CAAC;IAED,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC;IAChD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC;IAChD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC;EAClD;EAEA,YAAY,CAAC,GAAG,EAAE;IAChB,IAAI,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI;IAC1B,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC;IAC7B,IAAI,GAAG,IAAI,CAAC,CAAC,EAAE;MACb,IAAI,IAAI,GAAG;IACb,CAAC,MAAM;MACL,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC;IAC9B;IACA,IAAI,CAAC,QAAQ,CAAC;MAAC,IAAI,EAAE;IAAI,CAAC,CAAC;EAC7B;EAEA,YAAY,GAAG;IAEb,MAAM,IAAI,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,GAAG,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;IAC/D,MAAM,MAAM,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,GAAG,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;IACjE,IAAI,IAAI,KAAK,MAAM,EAAE;MACnB,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC;IAC3B,CAAC,MAAM;MACL,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACvB;EACF;EAEA,YAAY,GAAG;IACb,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;EACvB;EAEA,MAAM,GAAG;IACP,MAAM;MAAC;IAAa,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI;IACvC,MAAM,GAAG,GAAG,UAAU;IACtB,MAAM,KAAK,GAAG;MACZ,GAAG,EAAE,aAAa,CAAC,QAAQ,CAAC,MAAM,EAAE;QAAC,GAAG,EAAE;MAAG,CAAC,CAAC;MAC/C,GAAG,EAAE,aAAa,CAAC,QAAQ,CAAC,MAAM,EAAE;QAAC,GAAG,EAAE;MAAG,CAAC,CAAC;MAC/C,GAAG,EAAE,aAAa,CAAC,QAAQ,CAAC,MAAM,EAAE;QAAC,GAAG,EAAE;MAAG,CAAC,CAAC;MAC/C,GAAG,EAAE,aAAa,CAAC,QAAQ,CAAC,MAAM,EAAE;QAAC,GAAG,EAAE;MAAG,CAAC,CAAC;MAC/C,GAAG,EAAE,aAAa,CAAC,QAAQ,CAAC,QAAQ,EAAE;QAAC,GAAG,EAAE;MAAG,CAAC,CAAC;MACjD,GAAG,EAAE,aAAa,CAAC,QAAQ,CAAC,MAAM,EAAE;QAAC,GAAG,EAAE;MAAG,CAAC,CAAC;MAC/C,GAAG,EAAE,aAAa,CAAC,QAAQ,CAAC,OAAO,EAAE;QAAC,GAAG,EAAE;MAAG,CAAC,CAAC;MAChD,GAAG,EAAE,aAAa,CAAC,QAAQ,CAAC,KAAK,EAAE;QAAC,GAAG,EAAE;MAAG,CAAC;IAC/C,CAAC;IAED,IAAI,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE;IAChC,IAAI,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI;IAC1B,IAAI,OAAO,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,EAAE,EAAE,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC;IACzD,IAAI,KAAK,GAAG,EAAE;IACd,KAAK,IAAI,CAAC,GAAC,CAAC,EAAE,CAAC,GAAC,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;MAC/B,IAAI,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;MACrB,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE;QAE/C;MACF;MACA,KAAK,CAAC,IAAI,CACR;QAAA,WACE;UAAA,UAAK,KAAK,CAAC,CAAC;QAAC,gBAAK,CAAC,EACnB;UAAI,SAAS,EAAC,UAAU;UAAA,UAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,GAC3C,8DAAC,qDAAQ;YAAC,IAAI,EAAE,CAAE;YAAC,OAAO,EAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAG;YAAC,QAAQ,EAAE,IAAI,CAAC;UAAa,gBAAC,CAAC,GAElF,8DAAC,qDAAQ;YAAC,IAAI,EAAE,CAAE;YAAC,OAAO,EAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI;UAAG,gBAAE;QAAC,gBACnD,CAAC,EAAC,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG;UAAI,SAAS,EAAC,UAAU;UAAA,UAClD,8DAAC,qDAAQ;YAAC,IAAI,EAAE,CAAE;YAAC,OAAO,EAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI;UAAG,gBAAC;QAAC,gBACtD,CAAC,GAAG,IAAI;MAAA,GARL,CAAC,MASN,CACN,CAAC;IACH;IAEA,OACE;MAAK,SAAS,EAAC,mBAAmB;MAAA,WAC/B,IAAI,CAAC,KAAK,CAAC,SAAS,GACnB;QAAI,SAAS,EAAC,mBAAmB;QAAA,UAAC,8DAAC,oDAAO;UACxC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,MAAO;UAC1B,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,IAAK;UACtB,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,SAAU;UAC5B,KAAK,EAAE,IAAK;UACZ,MAAM,EAAE,kEAAY,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,IAAI;QAAE,gBAAE;MAAC,gBAAI,CAAC,GAAG,IAAI,EAC9F;QAAO,SAAS,EAAC,OAAO;QAAA,UAAC,8DAAC,wDAAgB;UAAC,EAAE,EAAC,mBAAmB;UAC/D,cAAc,EAAC,aAAa;UAAC,WAAW,EAAC;QAAe,gBAAC;MAAC,gBAAO,CAAC,EACpE;QAAO,SAAS,EAAC,mBAAmB;QAAA,WACnC,IAAI,CAAC,KAAK,CAAC,OAAO,GACjB;UAAA,UAAO;YAAA,WACL,qFAAQ,CAAC;cAAA,UAAK,IAAI,CAAC,KAAK,CAAC;YAAS,gBAAK,CAAC,EACxC;cAAA,UAAK,IAAI,CAAC,KAAK,CAAC;YAAY,gBAAK,CAAC;UAAA,eAChC;QAAC,gBAAO,CAAC,GACb,IAAI,EACN;UAAA,UACG;QAAK,gBACD,CAAC;MAAA,eAAO,CAAC,EAChB,qFAAK,CAAC,EACN;QAAK,SAAS,EAAC,gBAAgB;QAAA,WAC7B;UAAQ,SAAS,EAAC,SAAS;UAAC,OAAO,EAAE,IAAI,CAAC,YAAa;UAAA,UACrD,8DAAC,wDAAgB;YAAC,EAAE,EAAC,eAAe;YAAC,cAAc,EAAC,QAAQ;YAAC,WAAW,EAAC;UAAiB,gBAAE;QAAC,gBACvF,CAAC,EACT;UAAQ,SAAS,EAAC,SAAS;UAAC,OAAO,EAAE,IAAI,CAAC,YAAa;UAAA,UACrD,8DAAC,wDAAgB;YAAC,EAAE,EAAC,WAAW;YAAC,cAAc,EAAC,IAAI;YAAC,WAAW,EAAC;UAAa,gBAAE;QAAC,gBAC3E,CAAC;MAAA,eACN,CAAC;IAAA,eACH,CAAC;EAEV;AACF;AAAC;AAED,+DAAe,sDAAU,CAAC,iBAAiB,CAAC,E","sources":["webpack://tinode-webapp/./src/views/acc-security-view.jsx","webpack://tinode-webapp/./src/widgets/permissions-editor.jsx"],"sourcesContent":["// Edit account parameters.\nimport React from 'react';\nimport { FormattedMessage, defineMessages, injectIntl } from 'react-intl';\n\nimport CheckBox from '../widgets/checkbox.jsx';\nimport InPlaceEdit from '../widgets/in-place-edit.jsx';\nimport PermissionsEditor from '../widgets/permissions-editor.jsx';\n\nconst messages = defineMessages({\n delete_account: {\n id: 'delete_account',\n defaultMessage: 'Delete account',\n description: 'Title for delete account warning'\n },\n delete_account_warning: {\n id: 'delete_account_warning',\n defaultMessage: 'Are you sure you want to delete your account? It cannot be undone.',\n description: 'Warning message when deleting an account'\n }\n});\n\nclass AccSecurityView extends React.Component {\n constructor(props) {\n super(props);\n\n const me = this.props.tinode.getMeTopic();\n let blockedCount = 0;\n me.contacts((c) => {\n if (c.acs && !c.acs.isJoiner()) {\n blockedCount ++;\n }\n });\n const defacs = me.getDefaultAccess();\n this.state = {\n auth: defacs ? defacs.auth : null,\n anon: defacs ? defacs.anon : null,\n showPermissionEditorFor: undefined,\n blockedCount: blockedCount,\n };\n\n this.handlePasswordUpdate = this.handlePasswordUpdate.bind(this);\n this.handleLaunchPermissionsEditor = this.handleLaunchPermissionsEditor.bind(this);\n this.handleHidePermissionsEditor = this.handleHidePermissionsEditor.bind(this);\n this.handlePermissionsChanged = this.handlePermissionsChanged.bind(this);\n this.handleDeleteAccount = this.handleDeleteAccount.bind(this);\n this.handleCheckboxClick = this.handleCheckboxClick.bind(this);\n }\n\n handlePasswordUpdate(pwd) {\n this.setState({password: pwd});\n this.props.onUpdatePassword(pwd);\n }\n\n handleLaunchPermissionsEditor(which) {\n this.setState({\n showPermissionEditorFor: which,\n editedPermissions: this.state[which]\n });\n }\n\n handleHidePermissionsEditor() {\n this.setState({showPermissionEditorFor: undefined});\n }\n\n handlePermissionsChanged(perm) {\n let defacs = {};\n defacs[this.state.showPermissionEditorFor] = perm;\n this.props.onUpdateAccountDesc('me', undefined, undefined, defacs);\n\n let newState = {showPermissionEditorFor: undefined};\n newState[this.state.showPermissionEditorFor] = perm;\n this.setState(newState);\n }\n\n handleCheckboxClick(what, checked) {\n this.props.onToggleIncognitoMode(checked);\n }\n\n handleDeleteAccount(e) {\n e.preventDefault();\n const {formatMessage} = this.props.intl;\n this.props.onShowAlert(\n formatMessage(messages.delete_account), // title\n formatMessage(messages.delete_account_warning), // content\n (_ => this.props.onDeleteAccount()), // onConfirm\n null, // use default text \"OK\"\n true, // Show Reject button\n null // use default text \"Cancel\"\n );\n }\n\n render() {\n return (\n <>{this.state.showPermissionEditorFor ?\n
\n :\n
\n
\n
\n
\n {\n (password_unchanged) => \n }\n
\n
\n
\n
\n \n \n
\n
\n \n \n \n
\n
\n
\n \n \n \n
\n
\n
\n
\n
\n
\n \n
\n
\n
Auth: {this.state.auth}
\n
Anon: {this.state.anon}
\n
\n
\n {this.state.blockedCount > 0 ?\n <>\n
\n
\n >\n : null }\n
\n }>\n );\n }\n};\n\nexport default injectIntl(AccSecurityView);\n","// PermissionsEditor: Component for editing permissions\n//
\nimport React from 'react';\nimport { FormattedMessage, defineMessages, injectIntl } from 'react-intl';\n\nimport CheckBox from './checkbox.jsx';\nimport Contact from './contact.jsx';\n\nimport { makeImageUrl } from '../lib/blob-helpers.js';\n\n// Translatable permission names.\nconst messages = defineMessages({\n joiner: {\n id: 'permission_join',\n defaultMessage: \"Join ({val})\",\n description: 'Name of J permission'\n },\n reader: {\n id: 'permission_read',\n defaultMessage: \"Read ({val})\",\n description: 'Name of R permission'\n },\n writer: {\n id: 'permission_write',\n defaultMessage: \"Write ({val})\",\n description: 'Name of W permission'\n },\n preser: {\n id: 'permission_pres',\n defaultMessage: \"Get notified ({val})\",\n description: 'Name of P permission'\n },\n approver: {\n id: 'permission_admin',\n defaultMessage: \"Approve ({val})\",\n description: 'Name of A permission'\n },\n sharer: {\n id: 'permission_share',\n defaultMessage: \"Share ({val})\",\n description: 'Name of S permission'\n },\n deleter: {\n id: 'permission_delete',\n defaultMessage: \"Delete ({val})\",\n description: 'Name of D permission'\n },\n owner: {\n id: 'permission_owner',\n defaultMessage: \"Owner ({val})\",\n description: 'Name of O permission'\n }\n});\n\nclass PermissionsEditor extends React.Component {\n constructor(props) {\n super(props);\n\n this.state = {\n mode: (props.mode || '').replace('N', '')\n };\n\n this.handleChange = this.handleChange.bind(this);\n this.handleSubmit = this.handleSubmit.bind(this);\n this.handleCancel = this.handleCancel.bind(this);\n }\n\n handleChange(val) {\n let mode = this.state.mode;\n const idx = mode.indexOf(val);\n if (idx == -1) {\n mode += val;\n } else {\n mode = mode.replace(val, '');\n }\n this.setState({mode: mode});\n }\n\n handleSubmit() {\n // Normalize string, otherwise cannot check if mode has changed.\n const mode = (this.state.mode || 'N').split('').sort().join('');\n const before = (this.props.mode || 'N').split('').sort().join('')\n if (mode !== before) {\n this.props.onSubmit(mode);\n } else {\n this.props.onCancel();\n }\n }\n\n handleCancel() {\n this.props.onCancel();\n }\n\n render() {\n const {formatMessage} = this.props.intl;\n const all = 'JRWPASDO';\n const names = {\n 'J': formatMessage(messages.joiner, {val: 'J'}),\n 'R': formatMessage(messages.reader, {val: 'R'}),\n 'W': formatMessage(messages.writer, {val: 'W'}),\n 'P': formatMessage(messages.preser, {val: 'P'}),\n 'A': formatMessage(messages.approver, {val: 'A'}),\n 'S': formatMessage(messages.sharer, {val: 'S'}),\n 'D': formatMessage(messages.deleter, {val: 'D'}),\n 'O': formatMessage(messages.owner, {val: 'O'})\n };\n\n let skip = this.props.skip || '';\n let mode = this.state.mode;\n let compare = (this.props.compare || '').replace('N', '');\n let items = [];\n for (let i=0; i
= 0 && mode.indexOf(c) < 0) {\n // Permission is marked as inactive: hide unchecked permissions, disable checked permissions\n continue;\n }\n items.push(\n \n | {names[c]} | \n {skip.indexOf(c) < 0 ?\n = 0)} onChange={this.handleChange}/>\n :\n = 0)} />\n } | {this.props.compare ? \n = 0)}/>\n | : null}\n
\n );\n }\n\n return (\n \n {this.props.userTitle ?\n
: null}\n
\n
\n {this.props.compare ?\n \n | {this.props.modeTitle} | \n {this.props.compareTitle} | \n
:\n null}\n \n {items}\n
\n
\n
\n \n \n
\n
\n );\n }\n};\n\nexport default injectIntl(PermissionsEditor);\n"],"names":[],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"file":"src_views_acc-security-view_jsx.dev.js","mappings":"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","sources":["webpack://tinode-webapp/./src/views/acc-security-view.jsx","webpack://tinode-webapp/./src/widgets/permissions-editor.jsx"],"sourcesContent":["// Edit account parameters.\nimport React from 'react';\nimport { FormattedMessage, defineMessages, injectIntl } from 'react-intl';\n\nimport CheckBox from '../widgets/checkbox.jsx';\nimport InPlaceEdit from '../widgets/in-place-edit.jsx';\nimport PermissionsEditor from '../widgets/permissions-editor.jsx';\n\nconst messages = defineMessages({\n delete_account: {\n id: 'delete_account',\n defaultMessage: 'Delete account',\n description: 'Title for delete account warning'\n },\n delete_account_warning: {\n id: 'delete_account_warning',\n defaultMessage: 'Are you sure you want to delete your account? It cannot be undone.',\n description: 'Warning message when deleting an account'\n }\n});\n\nclass AccSecurityView extends React.Component {\n constructor(props) {\n super(props);\n\n const me = this.props.tinode.getMeTopic();\n let blockedCount = 0;\n me.contacts((c) => {\n if (c.acs && !c.acs.isJoiner()) {\n blockedCount ++;\n }\n });\n const defacs = me.getDefaultAccess();\n this.state = {\n auth: defacs ? defacs.auth : null,\n anon: defacs ? defacs.anon : null,\n showPermissionEditorFor: undefined,\n blockedCount: blockedCount,\n };\n\n this.handlePasswordUpdate = this.handlePasswordUpdate.bind(this);\n this.handleLaunchPermissionsEditor = this.handleLaunchPermissionsEditor.bind(this);\n this.handleHidePermissionsEditor = this.handleHidePermissionsEditor.bind(this);\n this.handlePermissionsChanged = this.handlePermissionsChanged.bind(this);\n this.handleDeleteAccount = this.handleDeleteAccount.bind(this);\n this.handleLogoutRequest = this.handleLogoutRequest.bind(this);\n this.handleCheckboxClick = this.handleCheckboxClick.bind(this);\n }\n\n handlePasswordUpdate(pwd) {\n this.setState({password: pwd});\n this.props.onUpdatePassword(pwd);\n }\n\n handleLaunchPermissionsEditor(which) {\n this.setState({\n showPermissionEditorFor: which,\n editedPermissions: this.state[which]\n });\n }\n\n handleHidePermissionsEditor() {\n this.setState({showPermissionEditorFor: undefined});\n }\n\n handlePermissionsChanged(perm) {\n let defacs = {};\n defacs[this.state.showPermissionEditorFor] = perm;\n this.props.onUpdateAccountDesc('me', undefined, undefined, defacs);\n\n let newState = {showPermissionEditorFor: undefined};\n newState[this.state.showPermissionEditorFor] = perm;\n this.setState(newState);\n }\n\n handleCheckboxClick(what, checked) {\n this.props.onToggleIncognitoMode(checked);\n }\n\n handleDeleteAccount(e) {\n e.preventDefault();\n const {formatMessage} = this.props.intl;\n this.props.onShowAlert(\n formatMessage(messages.delete_account), // title\n formatMessage(messages.delete_account_warning), // content\n (_ => this.props.onDeleteAccount()), // onConfirm\n null, // use default text \"OK\"\n true, // Show Reject button\n null // use default text \"Cancel\"\n );\n }\n\n // \"退出登录\"这个按钮原来是 onClick 里直接 `this.props.onLogout()`,没有任何二次确认——同一个文件里\n // 紧挨着的\"删除帐户\"按钮反而是走 onShowAlert 弹确认框的(见上面 handleDeleteAccount)。本页\n // ('security' 路由)并不是废弃页面:account-settings-view.jsx、info-view.jsx 的\"安全\"入口,以及\n // 第2章系统消息列表里\"前往安全设置\"跳转按钮(message-center-view.jsx)都会真的落到这个页面,\n // 跟 personal-settings-view.jsx 的\"设置\"页(那边的退出登录已经在别的改造里换成了自己的\n // ConfirmSheet/LogoutConfirm)是两条并存的独立路径——用户从系统消息点\"前往安全设置\"进来,单击一下\n // 图标就会被立即退出登录,且没有任何撤销机会。改成跟\"删除帐户\"一样走 onShowAlert,文案与\n // personal-settings-view.jsx 的 LogoutConfirm 保持一致,不新造一套措辞。\n handleLogoutRequest(e) {\n e.preventDefault();\n this.props.onShowAlert(\n '退出登录',\n '确定要退出当前登录吗?',\n (_ => this.props.onLogout()),\n null, // use default text \"OK\"\n true, // Show Reject button\n null // use default text \"Cancel\"\n );\n }\n\n render() {\n return (\n <>{this.state.showPermissionEditorFor ?\n \n :\n \n
\n
\n
\n {\n (password_unchanged) => \n }\n
\n
\n
\n
\n \n \n
\n
\n \n \n \n
\n
\n
\n \n \n \n
\n
\n
\n
\n
\n
\n \n
\n
\n
Auth: {this.state.auth}
\n
Anon: {this.state.anon}
\n
\n
\n {this.state.blockedCount > 0 ?\n <>\n
\n
\n >\n : null }\n
\n }>\n );\n }\n};\n\nexport default injectIntl(AccSecurityView);\n","// PermissionsEditor: Component for editing permissions\n// \nimport React from 'react';\nimport { FormattedMessage, defineMessages, injectIntl } from 'react-intl';\n\nimport CheckBox from './checkbox.jsx';\nimport Contact from './contact.jsx';\n\nimport { makeImageUrl } from '../lib/blob-helpers.js';\n\n// Translatable permission names.\nconst messages = defineMessages({\n joiner: {\n id: 'permission_join',\n defaultMessage: \"Join ({val})\",\n description: 'Name of J permission'\n },\n reader: {\n id: 'permission_read',\n defaultMessage: \"Read ({val})\",\n description: 'Name of R permission'\n },\n writer: {\n id: 'permission_write',\n defaultMessage: \"Write ({val})\",\n description: 'Name of W permission'\n },\n preser: {\n id: 'permission_pres',\n defaultMessage: \"Get notified ({val})\",\n description: 'Name of P permission'\n },\n approver: {\n id: 'permission_admin',\n defaultMessage: \"Approve ({val})\",\n description: 'Name of A permission'\n },\n sharer: {\n id: 'permission_share',\n defaultMessage: \"Share ({val})\",\n description: 'Name of S permission'\n },\n deleter: {\n id: 'permission_delete',\n defaultMessage: \"Delete ({val})\",\n description: 'Name of D permission'\n },\n owner: {\n id: 'permission_owner',\n defaultMessage: \"Owner ({val})\",\n description: 'Name of O permission'\n }\n});\n\nclass PermissionsEditor extends React.Component {\n constructor(props) {\n super(props);\n\n this.state = {\n mode: (props.mode || '').replace('N', '')\n };\n\n this.handleChange = this.handleChange.bind(this);\n this.handleSubmit = this.handleSubmit.bind(this);\n this.handleCancel = this.handleCancel.bind(this);\n }\n\n handleChange(val) {\n let mode = this.state.mode;\n const idx = mode.indexOf(val);\n if (idx == -1) {\n mode += val;\n } else {\n mode = mode.replace(val, '');\n }\n this.setState({mode: mode});\n }\n\n handleSubmit() {\n // Normalize string, otherwise cannot check if mode has changed.\n const mode = (this.state.mode || 'N').split('').sort().join('');\n const before = (this.props.mode || 'N').split('').sort().join('')\n if (mode !== before) {\n this.props.onSubmit(mode);\n } else {\n this.props.onCancel();\n }\n }\n\n handleCancel() {\n this.props.onCancel();\n }\n\n render() {\n const {formatMessage} = this.props.intl;\n const all = 'JRWPASDO';\n const names = {\n 'J': formatMessage(messages.joiner, {val: 'J'}),\n 'R': formatMessage(messages.reader, {val: 'R'}),\n 'W': formatMessage(messages.writer, {val: 'W'}),\n 'P': formatMessage(messages.preser, {val: 'P'}),\n 'A': formatMessage(messages.approver, {val: 'A'}),\n 'S': formatMessage(messages.sharer, {val: 'S'}),\n 'D': formatMessage(messages.deleter, {val: 'D'}),\n 'O': formatMessage(messages.owner, {val: 'O'})\n };\n\n let skip = this.props.skip || '';\n let mode = this.state.mode;\n let compare = (this.props.compare || '').replace('N', '');\n let items = [];\n for (let i=0; i= 0 && mode.indexOf(c) < 0) {\n // Permission is marked as inactive: hide unchecked permissions, disable checked permissions\n continue;\n }\n items.push(\n \n | {names[c]} | \n {skip.indexOf(c) < 0 ?\n = 0)} onChange={this.handleChange}/>\n :\n = 0)} />\n } | {this.props.compare ? \n = 0)}/>\n | : null}\n
\n );\n }\n\n return (\n \n {this.props.userTitle ?\n
: null}\n
\n
\n {this.props.compare ?\n \n | {this.props.modeTitle} | \n {this.props.compareTitle} | \n
:\n null}\n \n {items}\n
\n
\n
\n \n \n
\n
\n );\n }\n};\n\nexport default injectIntl(PermissionsEditor);\n"],"names":[],"sourceRoot":""}
\ No newline at end of file