whistle 2.9.27 → 2.9.28

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -8,6 +8,6 @@
8
8
  </head>
9
9
  <body style="overscroll-behavior-x: none;">
10
10
  <div id="container" class="main"></div>
11
- <script src="js/index.js?v=2.9.27"></script>
11
+ <script src="js/index.js?v=2.9.28"></script>
12
12
  </body>
13
13
  </html>
@@ -1,6 +1,6 @@
1
1
  !function(e){function t(r){if(n[r])return n[r].exports;var o=n[r]={exports:{},id:r,loaded:!1};return e[r].call(o.exports,o,o.exports,t),o.loaded=!0,o.exports}var n={};return t.m=e,t.c=n,t.p="",t(0)}([function(e,t,n){"use strict";function r(e){if(/\.json$/i.test(e.name)&&G.test(e.value))try{JSON.parse(e.value)}catch(t){R.warn("Warning: the value of "+e.name+" can`t be parsed into json. "+t.message)}}function o(e,t){e=JSON.stringify(e);var n=new FormData,r=new File([e],"data.json",{type:"application/json"});return n.append(t||"rules",r),n}function i(e){return e=e.trim(),e?/^https?:\/\/[^/]/i.test(e)?e:void R.error("Please input the correct url."):void R.error("The url cannot be empty.")}function a(e){return function(t,n){if(!t)return L.showSystemError(n),e(!0);if(0!==t.ec)return R.error(t.em),e(!0);try{if(t=t.body&&JSON.parse(t.body),t&&Object.keys(t).length)return e(!1,t);R.info("No body data.")}catch(r){R.error(r.message)}e(!0)}}function s(e){if(e.networkMode)return"network";if(e.rulesMode&&e.pluginsMode)return"plugins";var t=location.hash.substring(1);return t=t?t.replace(/[?#].*$/,""):location.href.replace(/[?#].*$/,"").replace(/.*\//,""),e.rulesOnlyMode?"values"===t?"values":"rules":e.rulesMode?"network"===t?"rules":t:e.pluginsMode&&"plugins"!==t?"network":t}function l(e,t){var n,r=e.length;for(n=0;r>n;n++)if(-1===h.inArray(e[n],t))return!1;var o=t.length;if(r!==o)for(n=0;o>n;n++)if(-1===h.inArray(t[n],e))return!1;return!0}function c(e){if(0==e.indexOf("{")){var t=e.lastIndexOf("}");return t>1&&e.substring(1,t)}return!1}function u(e){if(0==e.indexOf("(")){var t=e.lastIndexOf(")");return-1!=t&&e.substring(1,t)||""}return!1}var d=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},p="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};n(1);var g,f,h=n(5),m=n(6),A=n(39),M=n(178),w=n(186),b=n(333),y=n(334),v=n(586),T=n(590),x=n(559),N=n(558),C=n(594),I=n(597),E=n(600),D=n(281),L=n(199),S=n(279),k=n(280),j=n(284),U=n(293),B=n(603),Q=n(606),z=n(607),R=n(207),O=n(610),H=n(289),V=n(611),F=n(615),P=n(210),Y=/http\/2\.0/i,G=/^\s*(?:[\{{][\w\W]+[\}}]|\[[\w\W]+\])\s*$/,W="Default",X=7,_=134217728,J=6291456,Z=2097152,K=100,q=".cm-js-type, .cm-js-http-url, .cm-string, .cm-js-at",$=/^"(https?:)?(\/\/[^/]\S+)"$/i,ee=/^@(https?:)?(\/\/[^/]\S+)$/i,te=["removeSelected","exportWhistleFile","exportSazFile"],ne=window.location.search;/[&#?]showTreeView=(0|false|1|true)(?:&|$|#)/.test(ne)&&(f="1"===RegExp.$1||"true"===RegExp.$1),/[&#?]hideLeft(?:Bar|Menu)=(0|false|1|true)(?:&|$|#)/.test(ne)?g="1"===RegExp.$1||"true"===RegExp.$1:/[&#?]showLeft(?:Bar|Menu)=(0|false|1|true)(?:&|$|#)/.test(ne)&&(g="0"===RegExp.$1||"false"===RegExp.$1);var re=[{name:"Clear",icon:"remove"},{name:"Save",icon:"save-file"},{name:"Tree View",multiple:!0},{name:"Rules",multiple:!0},{name:"Plugins",multiple:!0}],oe=[{name:"Export Selected",icon:"export",id:"exportRules"},{name:"Export All",href:"cgi-bin/rules/export",target:"downloadTargetFrame",id:"exportAllRules"},{name:"Import",icon:"import",id:"importRules"}],ie=[{name:"Export Selected",icon:"export",id:"exportValues"},{name:"Export All",href:"cgi-bin/values/export",target:"downloadTargetFrame",id:"exportAllValues"},{name:"Import",icon:"import",id:"importValues"}],ae=[{name:"Remove Selected Sessions",icon:"remove",id:"removeSelected",disabled:!0,title:"Ctrl[Command] + D"},{name:"Remove Unselected Sessions",id:"removeUnselected",disabled:!0,title:"Ctrl[Command] + Shift + D"}],se=[{name:"Abort",icon:"ban-circle",id:"abort"}],le=m.createClass({displayName:"Index",getInitialState:function(){var e=this.props.modal,t=e.rules,n=e.values,r=!!e.server.multiEnv,o=j.get("caType");"cer"!==o&&"pem"!==o&&(o="crt");var i={replayCount:1,tabs:[],caType:o,allowMultipleChoice:e.rules.allowMultipleChoice,backRulesFirst:e.rules.backRulesFirst,networkMode:!!e.server.networkMode,rulesMode:!!e.server.rulesMode,pluginsMode:!!e.server.pluginsMode,rulesOnlyMode:!!e.server.rulesOnlyMode,multiEnv:e.server.multiEnv,isWin:e.server.isWin,ndr:e.server.ndr,ndp:e.server.ndp,drb:e.server.drb,drm:e.server.drm,version:e.version};g!==!1&&(g=g||e.server.hideLeftMenu);var a=s(i);a&&-1==a.indexOf("rules")?-1!=a.indexOf("values")?(i.hasValues=!0,i.name="values"):-1!=a.indexOf("plugins")?(i.hasPlugins=!0,i.name="plugins"):(i.hasNetwork=!0,i.name="network"):(i.hasRules=!0,i.name="rules");var l,c=[],u=[],d={},p=[],h=[],m={},A=j.get("rulesTheme"),M=j.get("valuesTheme"),w=j.get("rulesFontSize"),y=j.get("valuesFontSize"),v=j.get("showRulesLineNumbers"),T=j.get("showValuesLineNumbers"),x=j.get("autoRulesLineWrapping"),N=j.get("autoValuesLineWrapping");if(t){l=j.get("activeRules")||t.current;var C=!t.defaultRulesIsDisabled;A||(A=t.theme),w||(w=t.fontSize),v||(v=t.showLineNumbers?"true":"false"),c.push(W),d.Default={name:W,fixed:!0,value:t.defaultRules,selected:C,isDefault:!0,active:l===W},u.push(d.Default),t.list.forEach(function(e){c.push(e.name),e=d[e.name]={name:e.name,value:e.data,selected:e.selected,active:l===e.name},u.push(e)})}n&&(l=j.get("activeValues")||n.current,M||(M=n.theme),y||(y=n.fontSize),T||(T=n.showLineNumbers?"true":"false"),n.list.forEach(function(e){p.push(e.name),m[e.name]={name:e.name,value:e.data,active:l===e.name},h.push({name:e.name,icon:"edit"})}));var I=new b(c,d),E=new b(p,m),U=D.networkModal;D.rulesModal=I,i.rulesTheme=A,i.valuesTheme=M,i.rulesFontSize=w,i.valuesFontSize=y,i.showRulesLineNumbers="true"===v,i.showValuesLineNumbers="true"===T,i.autoRulesLineWrapping=!!x,i.foldGutter=""!==!!j.get("foldGutter"),i.autoValuesLineWrapping=!!N,i.plugins=e.plugins,i.disabledPlugins=e.disabledPlugins,i.disabledAllRules=e.disabledAllRules,i.disabledAllPlugins=e.disabledAllPlugins,i.interceptHttpsConnects=!r&&e.interceptHttpsConnects,i.enableHttp2=e.enableHttp2,i.rules=I,i.network=U,i.rulesOptions=u,i.pluginsOptions=this.createPluginsOptions(e.plugins),D.valuesModal=i.values=E,i.valuesOptions=h,D.syncData=this.syncData,D.syncRules=this.syncRules,D.syncValues=this.syncValues,this.initPluginTabs(i,e.plugins),I.exists(D.activeRulesName)&&this.setRulesActive(D.activeRulesName,I),E.exists(D.activeValuesName)&&this.setValuesActive(D.activeValuesName,E),i.networkOptions=[{name:"Remove All Sessions",icon:"remove",id:"removeAll",disabled:!0,title:"Ctrl[Command] + X"},{name:"Remove Selected Sessions",id:"removeSelected",disabled:!0,title:"Ctrl[Command] + D"},{name:"Remove Unselected Sessions",id:"removeUnselected",disabled:!0,title:"Ctrl[Command] + Shift + D"},{name:"Export Selected Sessions (*.txt)",icon:"export",id:"exportWhistleFile",disabled:!0,title:"Ctrl + S"},{name:"Export Selected Sessions (*.saz)",id:"exportSazFile",disabled:!0,title:"Ctrl + S"},{name:"Export Selected Sessions (*.har)",id:"exportHarFile",disabled:!0,title:"Ctrl + S"},{name:"Import Sessions",icon:"import",id:"importSessions",title:"Ctrl + I"},{name:"Show Tree View",icon:"tree-conifer",id:"toggleView"}],i.helpOptions=[{name:"GitHub",href:"https://github.com/avwo/whistle",icon:!1},{name:"Docs",href:"https://avwo.github.io/whistle/",icon:!1},{name:"Update",href:"https://avwo.github.io/whistle/update.html",icon:!1},{name:"Issue",href:"https://github.com/avwo/whistle/issues/new",icon:!1}],S.setPlugins(i),i.exportFileType=j.get("exportFileType");var B=j.get("showLeftMenu");i.showLeftMenu=null==B?!0:B,L.triggerPageChange(i.name),(f||f===!1)&&U.setTreeView(f,!0);var Q=this;return k.on("importSessionsFromUrl",function(e,t){Q.importSessionsFromUrl(t)}),this.updateMenuView(i)},initPluginTabs:function(e,t){t=t||{};var n,r,o=e.tabs;try{n=JSON.parse(j.get("activePluginTabList")),r=j.get("activePluginTabName")}catch(i){}if(Array.isArray(n)){var a={};Object.keys(t).forEach(function(o){var i=t[o];o=o.slice(0,-1),-1!==n.indexOf(o)&&(r===o&&(e.active=o),a[o]={name:o,url:i.pluginHomepage||"plugin."+o+"/"})}),n.forEach(function(e){e=e&&a[e],e&&o.push(e)})}},getListByName:function(e,t){var n=this.state[e].list,r=this.state[e].data;return{type:t,url:location.href,list:n.map(function(e){var t=r[e];return{name:e,value:t&&t.value||""}})}},triggerRulesChange:function(e){L.triggerListChange("rules",this.getListByName("rules",e))},triggerValuesChange:function(e){L.triggerListChange("values",this.getListByName("values",e))},syncData:function(e,t){var n=this.state;this.refs.syncDialog.show(e,n.rules,n.values,t)},syncRules:function(e){var t=this;t.syncData(e,function(){t.refs.syncDialog.syncRules(e)})},syncValues:function(e){var t=this;t.syncData(e,function(){t.refs.syncDialog.syncValues(e)})},createPluginsOptions:function(e){e=e||{};var t=[{name:"Home"}];return Object.keys(e).sort(function(t,n){var r=e[t],o=e[n];return L.compare(r.priority,o.priority)||L.compare(o.mtime,r.mtime)||(t>n?1:-1)}).forEach(function(n){var r=e[n];t.push({name:n.slice(0,-1),icon:"checkbox",mtime:r.mtime,homepage:r.homepage,latest:r.latest,hideLongProtocol:r.hideLongProtocol,hideShortProtocol:r.hideShortProtocol,path:r.path,pluginVars:r.pluginVars})}),t},reloadRules:function(e){var t=this,n=j.get("activeRules",!0)||e.current,r=[],o={};r.push(W),o.Default={name:W,fixed:!0,value:e.defaultRules,selected:!e.defaultRulesIsDisabled,isDefault:!0,active:n===W},e.list.forEach(function(e){r.push(e.name),e=o[e.name]={name:e.name,value:e.data,selected:e.selected,active:n===e.name}}),t.state.rules.reset(r,o),t.setState({})},reloadValues:function(e){var t=this,n=j.get("activeValues",!0)||e.current,r=[],o={};e.list.forEach(function(e){r.push(e.name),o[e.name]={name:e.name,value:e.data,active:n===e.name}}),t.state.values.reset(r,o),t.setState({})},reloadData:function(){var e=this,t=h(".w-reload-data-tips").closest(".w-confirm-reload-dialog"),n=t.find(".w-reload-data-tips").attr("data-name"),r="rules"===n,o=function(t,n){return t?void(r?(e.reloadRules(t),e.triggerRulesChange("reload")):(e.reloadValues(t),e.triggerValuesChange("reload"))):void L.showSystemError(n)};r?(D.rules.list(o),k.trigger("reloadRulesRecycleBin")):(D.values.list(o),k.trigger("reloadValuesRecycleBin"))},showReloadRules:function(){if("rules"===this.state.name&&this.rulesChanged){this.rulesChanged=!1;var e=this.state.rules.hasChanged();this.showReloadDialog("The rules has been modified.<br/>Do you want to reload it.",e)}},showReloadValues:function(){if("values"===this.state.name&&this.valuesChanged){this.valuesChanged=!1;var e=this.state.values.hasChanged();this.showReloadDialog("The values has been modified.<br/>Do you want to reload it.",e)}},componentDidUpdate:function(){this.showReloadRules(),this.showReloadValues()},showReloadDialog:function(e,t){var n=this.refs.confirmReload;n.show(),t&&(e+='<p class="w-confim-reload-note">Note: There are unsaved changes.</p>'),h(".w-reload-data-tips").html(e).attr("data-name",this.state.name)},componentDidMount:function(){function e(e){if(e=e&&e.trim()){var t=e.indexOf("://")+3;if(e=-1!=t?e.substring(t):e,0===e.indexOf("{"))return t=e.lastIndexOf("}"),t>1?e.substring(1,t):null}}var t=this,n=new M(".w-copy-text");n.on("error",function(e){P.alert("Copy failed.")}),n=new M(".w-copy-text-with-tips"),n.on("error",function(e){R.error("Copy failed.")}),n.on("success",function(e){R.success("Copied clipboard.")});var r=function(e){e.preventDefault()};k.on("enableRecord",function(){t.enableRecord()}),k.on("rulesChanged",function(){t.rulesChanged=!0,t.showReloadRules()}),k.on("switchTreeView",function(){t.toggleTreeView()}),k.on("updateGlobal",function(){t.setState({})}),k.on("valuesChanged",function(){t.valuesChanged=!0,t.showReloadValues()}),k.on("disableAllPlugins",t.disableAllPlugins),k.on("disableAllRules",t.disableAllRules),k.on("showFiles",function(e,n){t.files=t.files||n,t.showFiles()}),k.on("activeRules",function(){var e=D.rulesModal;e.exists(D.activeRulesName)&&(t.setRulesActive(D.activeRulesName,e),t.setState({}))}),k.on("activeValues",function(){var e=D.valuesModal;e.exists(D.activeValuesName)&&(t.setValuesActive(D.activeValuesName,e),t.setState({}))}),k.on("recoverRules",function(e,n){var r=t.state.rules,o=n.filename,i=function(e){e&&D.rules.add({name:o,value:n.data,recycleFilename:n.name},function(e,i){if(e&&0===e.ec){var a=r.add(o,n.data);t.setRulesActive(o),t.setState({activeRules:a}),t.triggerRulesChange("create"),k.trigger("rulesRecycleList",e),k.trigger("focusRulesList")}else L.showSystemError(i)})};return r.exists(o)?void P.confirm("The name `"+o+"` already exists, whether to overwrite it?",i):i(!0)}),k.on("recoverValues",function(e,n){var r=t.state.values,o=n.filename,i=function(e){e&&D.values.add({name:o,value:n.data,recycleFilename:n.name},function(e,i){if(e&&0===e.ec){var a=r.add(o,n.data);t.setValuesActive(o),t.setState({activeValues:a}),t.triggerValuesChange("create"),k.trigger("valuesRecycleList",e)}else L.showSystemError(i)})};return r.exists(o)?void P.confirm("The name `"+o+"` already exists, whether to overwrite it?",i):i(!0)}),h(document).on("dragleave",r).on("dragenter",r).on("dragover",r).on("drop",function(e){e.preventDefault();var n=e.originalEvent.dataTransfer.files,r=n&&n[0];if(r){if(h(".w-files-dialog.in").length)return k.trigger("uploadFile",r);var o,i=t.state.name,a=h(e.target);if("network"===i){if(a.closest(".w-frames-composer").length)return;if(/\.log$/i.test(r.name))return r.size>Z?P.alert("The file size cannot exceed 2m."):void L.readFileAsText(r,function(e){e=L.parseLogs(e),e&&(null!==D.uploadLogs&&(D.uploadLogs=e),k.trigger("showLog"),k.trigger("uploadLogs",{logs:e}))});o=new FormData,o.append("importSessions",n[0]),t.uploadSessionsForm(o)}a.closest(".w-divider-left").length&&("rules"===i?(o=new FormData,o.append("rules",n[0]),t.rulesForm=o,t.refs.confirmImportRules.show()):"values"===i&&(o=new FormData,o.append("values",n[0]),t.valuesForm=o,t.refs.confirmImportValues.show()))}}).on("keydown",function(e){(e.metaKey||e.ctrlKey)&&82===e.keyCode&&e.preventDefault()});var i=function(e){var n=e.target;"A"==n.nodeName&&h(n).parent().hasClass("w-list-data")&&("rules"==t.state.name?t.removeRules():t.removeValues()),e.preventDefault()};h(window).on("hashchange",function(){var e=s(t.state);e&&-1==e.indexOf("rules")?-1!=e.indexOf("values")?t.showValues():-1!=e.indexOf("plugins")?t.showPlugins():t.showNetwork():t.showRules()}).on("keyup",function(e){if(27==e.keyCode){t.setMenuOptionsState();var n=h(".modal");"function"==typeof n.modal&&n.modal("hide")}}).on("keydown",function(e){if(46==e.keyCode&&i(e),!e.ctrlKey&&!e.metaKey)return void(112===e.keyCode?(e.preventDefault(),window.open("https://avwo.github.io/whistle/webui/"+t.state.name+".html")):116===e.keyCode&&e.preventDefault());77===e.keyCode?(t.toggleLeftMenu(),e.preventDefault()):66===e.keyCode&&(t.toggleTreeView(),e.preventDefault(),k.trigger("toggleTreeViewByAccessKey"));var n="network"===t.state.name;n&&88==e.keyCode&&(L.isFocusEditor()||h(e.target).closest(".w-frames-list").length||t.clear()),68==e.keyCode&&i(e);var r=t.state.network;if(n&&83===e.keyCode){if(e.preventDefault(),h(".modal.in").length)return void(h(A.findDOMNode(t.refs.chooseFileType)).is(":visible")&&t.exportBySave());var o=e.target.nodeName;if("INPUT"===o||"TEXTAREA"===o)return;var a=r.hasSelected();return void(a&&(h(A.findDOMNode(t.refs.chooseFileType)).modal("show"),setTimeout(function(){A.findDOMNode(t.refs.sessionsName).focus()},500)))}n&&73===e.keyCode&&(t.importSessions(e),e.preventDefault())});var a=function(){var e=t.state.name;return"rules"===e||"values"===e};h(document.body).on("mouseenter",q,function(t){if(a()&&(t.ctrlKey||t.metaKey)){var n=h(this);(n.hasClass("cm-js-http-url")||n.hasClass("cm-string")||n.hasClass("cm-js-at")||e(n.text()))&&n.addClass("w-is-link")}}).on("mouseleave",q,function(e){h(this).removeClass("w-is-link")}).on("mousedown",q,function(n){if(a()&&(n.ctrlKey||n.metaKey)){var r=h(this),o=r.text();if(r.hasClass("cm-js-at"))return void(ee.test(o)&&window.open((RegExp.$1||"http:")+RegExp.$2));if(r.hasClass("cm-string"))return void($.test(o)&&window.open((RegExp.$1||"http:")+RegExp.$2));if(r.hasClass("cm-js-http-url"))return/^https?:\/\//i.test(o)||(o="http:"+("/"===o[0]?"":"//")+o),void window.open(o);var i=e(o);return i?void t.showAndActiveValues({name:i}):void 0}}),"network"==t.state.name&&t.startLoadData(),D.on("settings",function(e){var n=t.state,r=e.server;if(n.interceptHttpsConnects!==e.interceptHttpsConnects||n.enableHttp2!==e.enableHttp2||n.disabledAllRules!==e.disabledAllRules||n.allowMultipleChoice!==e.allowMultipleChoice||n.disabledAllPlugins!==e.disabledAllPlugins||n.multiEnv!=r.multiEnv||n.ndp!=r.ndp||n.ndr!=r.ndr||n.drb!=r.drb||n.drm!=r.drm){n.interceptHttpsConnects=e.interceptHttpsConnects,n.enableHttp2=e.enableHttp2,n.disabledAllRules=e.disabledAllRules,n.allowMultipleChoice=e.allowMultipleChoice,n.disabledAllPlugins=e.disabledAllPlugins,n.multiEnv=r.multiEnv,n.ndp=r.ndp,n.ndr=r.ndr,n.drb=r.drb,n.drm=r.drm,S.setPlugins(n);var o=re;o[3].checked=!n.disabledAllRules,o[4].checked=!n.disabledAllPlugins,t.setState({}),t.refs.contextMenu.update()}}),D.on("rules",function(e){var n=t.state.rules,r=e.list;e.defaultRulesIsDisabled||-1!==r.indexOf("Default")||r.unshift("Default");var o=n.getSelectedNames();l(o,r)||(t.reselectRules(e,!0),t.setState({}))}),D.on("serverInfo",function(e){t.serverInfo=e}),k.on("executeComposer",function(){t.autoRefresh&&t.autoRefresh()});var c=function(e){if(Array.isArray(e))return e;if(e&&!e.selected)return[e]};k.on("updateUI",function(){t.setState({})}),k.on("replaySessions",function(e,n,r){var o=t.state.network,i=c(n)||o.getSelectedList(),a=i&&i.length;return r&&1===a?(t.replayList=i,t.refs.setReplayCount.show(),void setTimeout(function(){var e=A.findDOMNode(t.refs.replayCount);e.select(),e.focus()},300)):void t.replay(e,i)}),k.on("importSessions",t.importSessions),k.on("filterSessions",t.showSettings),k.on("exportSessions",function(e,n){t.exportData(e,c(n))}),k.on("abortRequest",function(e,n){t.abort(c(n))}),k.on("uploadSessions",function(e,n){var r=c(n&&n.curItem),o=n&&n.upload;if("function"==typeof o){if(!r){var i=t.state.network;r=i.getSelectedList(),r&&r.length&&(r=h.extend(!0,[],r))}r&&o(r)}}),k.on("removeIt",function(e,n){var r=t.state.network;n&&r&&(r.remove(n),t.setState({}))}),k.on("removeOthers",function(e,n){var r=t.state.network;n&&r&&(n.selected?r.removeUnselectedItems():r.removeOthers(n),t.setState({}))}),k.on("clearAll",t.clear),k.on("removeSelected",function(){var e=t.state.network;e&&(e.removeSelectedItems(),t.setState({}))}),k.on("removeUnselected",function(){var e=t.state.network;e&&(e.removeUnselectedItems(),t.setState({}))}),k.on("removeUnmarked",function(){var e=t.state.network;e&&(e.removeUnmarkedItems(),t.setState({}))}),k.on("saveRules",function(e,n){if(n.changed||!n.selected){var r=t.state.rules.getChangedGroupList(n);r.forEach(t.selectRules)}else t.unselectRules(n)}),k.on("saveValues",function(e,n){var r=t.state.values.getChangedGroupList(n);r.forEach(t.saveValues)}),k.on("renameRules",function(e,n){t.showEditRules(n)}),k.on("renameValues",function(e,n){t.showEditValues(n)}),k.on("deleteRules",function(e,n){setTimeout(function(){t.removeRules(n)},0)}),k.on("deleteValues",function(e,n){setTimeout(function(){t.removeValues(n)},0)}),k.on("createRules",t.showCreateRules),k.on("createValues",t.showCreateValues),k.on("exportRules",t.exportData),k.on("exportValues",t.exportData),k.on("importRules",t.importRules),k.on("importValues",t.importValues),k.on("uploadRules",function(e,n){var r=o(n);r.append("replaceAll","1"),t._uploadRules(r,!0)}),k.on("uploadValues",function(e,n){var r=o(n,"values");r.append("replaceAll","1"),t._uploadValues(r,!0)});var u;h(document).on("visibilitychange",function(){clearTimeout(u),document.hidden||(u=setTimeout(function(){var e=t.scrollerAtBottom&&t.scrollerAtBottom();t.setState({},function(){e&&t.autoRefresh()})},100))}),setTimeout(function(){D.checkUpdate(function(e){e&&e.showUpdate&&t.setState({version:e.version,latestVersion:e.latestVersion},function(){h(A.findDOMNode(t.refs.showUpdateTipsDialog)).modal("show")})})},1e4),D.getLogIdList=this.getLogIdListFromRules,D.importAnySessions=t.importAnySessions,D.on("plugins",function(e){var n=t.createPluginsOptions(e.plugins),r=t.state.pluginsOptions,o=t.state.disabledPlugins,i=t.state.disabledAllPlugins,a=e.disabledPlugins;if(i==e.disabledAllPlugins&&n.length==r.length){for(var s,l=0,c=n.length;c>l;l++){var u=n[l],d=r[l];if(u.name!=d.name||u.latest!==d.latest||u.mtime!=d.mtime||o[u.name]!=a[u.name]||u.hideLongProtocol!=d.hideLongProtocol||u.hideShortProtocol!=d.hideShortProtocol||u.path!=d.path){s=!0;break}}if(!s)return}var p=t.state.plugins;p&&e.plugins&&Object.keys(e.plugins).forEach(function(t){var n=p[t];if(n){var r=e.plugins[t];r.selectedRulesHistory=n.selectedRulesHistory,r.selectedValuesHistory=n.selectedValuesHistory}});var g={plugins:e.plugins,disabledPlugins:e.disabledPlugins,pluginsOptions:n,disabledAllPlugins:e.disabledAllPlugins};S.setPlugins(g),t.setState(g)});try{var d=window.parent.onWhistleReady;"function"==typeof d&&d({url:location.href,pageId:D.getPageId(),compose:D.compose,importSessions:t.importAnySessions,importHarSessions:t.importHarSessions,clearSessions:t.clear,selectIndex:function(e){k.trigger("selectedIndex",e)}})}catch(p){}},importAnySessions:function(e){e&&(Array.isArray(e)?D.addNetworkList(e):this.importHarSessions(e))},donotShowAgain:function(){D.donotShowAgain()},hideUpdateTipsDialog:function(){h(A.findDOMNode(this.refs.showUpdateTipsDialog)).modal("hide")},getAllRulesText:function(){var e=" "+this.getAllRulesValue();return e.replace(/#[^\r\n]*[\r\n]/g,"\n")},getLogIdListFromRules:function(){var e=this.getAllRulesText();if(e=e.match(/\slog:\/\/(?:\{[^\s]{1,36}\}|[^/\\{}()<>\s]{1,36})\s/g)){var t={};e=e.map(function(e){return e=L.removeProtocol(e.trim()),"{"===e[0]&&(e=e.slice(1,-1)),e}).filter(function(e){return e?t[e]?!1:(t[e]=1,!0):!1})}return e},getWeinreFromRules:function(){var e=this.state.values,t=this.getAllRulesText();if(t=t.match(/(?:^|\s)weinre:\/\/[^\s#]+(?:$|\s)/gm)){var n={};t=t.map(function(t){t=L.removeProtocol(t.trim());var n=u(t);if(n!==!1)return n;var r=c(t);return r!==!1?(r=e.get(r),r&&r.value):t}).filter(function(e){return e?n[e]?!1:(n[e]=1,!0):!1})}return t},getValuesFromRules:function(){var e=" "+this.getAllRulesValue();return(e=e.match(/\s(?:[\w-]+:\/\/)?\{[^\s#]+\}/g))&&(e=e.map(function(e){return c(L.removeProtocol(e.trim()))}).filter(function(e){return!!e})),e},getAllRulesValue:function(){var e=[],t=[],n=[],r=this.state.rules;return r.list.forEach(function(o){var i=r.get(o),a=i.value||"";i.active?t.push(a):i.selected?n.push(a):e.push(a)}),r=this.state.values,r.list.forEach(function(t){/\.rules$/.test(t)&&e.push(r.get(t).value)}),t.concat(n).concat(e).join("\r\n")},preventBlur:function(e){"INPUT"!=e.target.nodeName&&e.preventDefault()},startLoadData:function(){function e(o,a){o=o||r.state.network,clearTimeout(i),i=null,"network"==r.state.name&&(a=a||n(),o.update(a)&&a&&(i=setTimeout(e,3e3)),document.hidden||r.setState({},function(){a&&t()}))}function t(e){(e||!r.state.network.isTreeView)&&(s.scrollTop=1e7)}function n(){var e=a.find(".ReactVirtualized__Grid__innerScrollContainer")[0];return e?s.scrollTop+s.offsetHeight+5>e.offsetHeight:!0}var r=this;if(r._updateNetwork)return void r._updateNetwork();var o,i,a=h(".w-req-data-list .ReactVirtualized__Grid:first").scroll(function(){var t=r.state.network;o&&clearTimeout(o),o=null,n()&&(o=setTimeout(function(){e(t,!0)},1e3))}),s=a[0];this.container=a,D.on("data",e),h(document).on("dblclick",".w-network-menu-list",function(e){h(e.target).hasClass("w-network-menu-list")&&(s.scrollTop<1?t(!0):s.scrollTop=0)}),r._updateNetwork=e,r.autoRefresh=t,r.scrollerAtBottom=n},showPlugins:function(e){"plugins"!=this.state.name?(this.setMenuOptionsState(),this.hidePluginsOptions()):e&&!this.state.showLeftMenu&&this.showPluginsOptions(),this.setState({hasPlugins:!0,name:"plugins"}),L.changePageName("plugins")},handleAction:function(e){if("top"===e)return void(this.container[0].scrollTop=0);if("bottom"===e)return this.autoRefresh(!0);if("pause"===e)return k.trigger("changeRecordState",e),D.pauseNetworkRecord();var t="refresh"===e;return t?k.trigger("changeRecordState"):k.trigger("changeRecordState","stop"),D.stopNetworkRecord(!t),t?this.autoRefresh():void 0},showNetwork:function(e){return"network"==this.state.name?void(e&&!this.state.showLeftMenu&&this.showNetworkOptions()):(this.setMenuOptionsState(),this.setState({hasNetwork:!0,name:"network"},function(){this.startLoadData()}),void L.changePageName("network"))},handleNetwork:function(e,t){var n=this.state.network;"removeAll"==e.id?this.clear():"removeSelected"==e.id?n.removeSelectedItems():"removeUnselected"==e.id?n.removeUnselectedItems():"exportWhistleFile"==e.id?this.exportSessions("whistle"):"exportSazFile"==e.id?this.exportSessions("Fiddler"):"exportHarFile"==e.id?this.exportSessions("har"):"importSessions"==e.id?this.importSessions(t):"toggleView"===e.id&&this.toggleTreeView(),this.hideNetworkOptions()},importData:function(e){switch(this.state.name){case"network":this.importSessions(e);break;case"rules":this.importRules(e);break;case"values":this.importValues(e)}},exportData:function(e,t){switch(this.state.name){case"network":var n=this.state.network,r=Array.isArray(t)||n.hasSelected();if(this.currentFoucsItem=t,r){h(A.findDOMNode(this.refs.chooseFileType)).modal("show");var o=this;setTimeout(function(){A.findDOMNode(o.refs.sessionsName).focus()},500)}else R.info("Please select the sessions first.");break;case"rules":this.showAndActiveRules({id:"exportRules"});break;case"values":this.showAndActiveValues({id:"exportValues"})}},importSessions:function(e,t){var n=this,r=e&&e.shiftKey||t&&t.shiftKey;return r?(n.refs.importRemoteSessions.show(),void setTimeout(function(){var e=A.findDOMNode(n.refs.sessionsRemoteUrl);e.focus(),e.select()},500)):void A.findDOMNode(n.refs.importSessions).click()},importSessionsFromUrl:function(e,t){if(e){var n=this;n.setState({pendingSessions:!0}),D.importRemote({url:e},a(function(e,r){n.setState({pendingSessions:!1}),e||(t&&n.refs.importRemoteSessions.hide(),n.importAnySessions(r))}))}},importRemoteSessions:function(e){if(!e||"click"===e.type||13===e.keyCode){var t=this,n=A.findDOMNode(t.refs.sessionsRemoteUrl),r=i(n.value);t.importSessionsFromUrl(r,!0)}},importRules:function(e,t){var n=this,r=e&&e.shiftKey||t&&t.shiftKey;return r?(n.refs.importRemoteRules.show(),void setTimeout(function(){var e=A.findDOMNode(n.refs.rulesRemoteUrl);e.focus(),e.select()},500)):void A.findDOMNode(n.refs.importRules).click()},importRemoteRules:function(e){if(!e||"click"===e.type||13===e.keyCode){var t=this,n=A.findDOMNode(t.refs.rulesRemoteUrl),r=i(n.value);r&&(t.setState({pendingRules:!0}),D.importRemote({url:r},a(function(e,n){t.setState({pendingRules:!1}),e||(t.refs.importRemoteRules.hide(),n&&(t.rulesForm=o(n),t.refs.confirmImportRules.show()))})))}},importValues:function(e,t){var n=this,r=e&&e.shiftKey||t&&t.shiftKey;return r?(n.refs.importRemoteValues.show(),void setTimeout(function(){var e=A.findDOMNode(n.refs.valuesRemoteUrl);e.focus(),e.select()},500)):void A.findDOMNode(n.refs.importValues).click()},importRemoteValues:function(e){if(!e||"click"===e.type||13===e.keyCode){var t=this,n=A.findDOMNode(t.refs.valuesRemoteUrl),r=i(n.value);r&&(t.setState({pendingValues:!0}),D.importRemote({url:r},a(function(e,n){t.setState({pendingValues:!1}),e||(t.refs.importRemoteValues.hide(),n&&(t.valuesForm=o(n,"values"),t.refs.confirmImportValues.show()))})))}},_uploadRules:function(e,t){var n=this;D.upload.importRules(e,function(e,r){e?0===e.ec?(n.reloadRules(e),t&&R.success("Successful synchronization Rules.")):P.alert(e.em):L.showSystemError(r)})},_uploadValues:function(e,t){var n=this;D.upload.importValues(e,function(e,r){e||L.showSystemError(r),0===e.ec?(n.reloadValues(e),t&&R.success("Successful synchronization Values.")):P.alert(e.em)})},uploadRules:function(e){var t=this.rulesForm;if(this.rulesForm=null,t){var n=t.get("rules");if(!n||!/\.(txt|json)$/i.test(n.name))return P.alert("Only supports .txt or .json file.");if(n.size>J)return P.alert("The file size cannot exceed 6m.");h(e.target).hasClass("btn-danger")&&t.append("replaceAll","1"),this._uploadRules(t),A.findDOMNode(this.refs.importRules).value=""}},uploadValues:function(e){var t=this.valuesForm;if(this.valuesForm=null,t){var n=t.get("values");if(!n||!/\.(txt|json)$/i.test(n.name))return P.alert("Only supports .txt or .json file.");if(n.size>J)return P.alert("The file size cannot exceed 6m.");h(e.target).hasClass("btn-danger")&&t.append("replaceAll","1"),this._uploadValues(t),A.findDOMNode(this.refs.importValues).value=""}},uploadRulesForm:function(){this.rulesForm=new FormData(A.findDOMNode(this.refs.importRulesForm)),this.refs.confirmImportRules.show()},uploadValuesForm:function(){this.valuesForm=new FormData(A.findDOMNode(this.refs.importValuesForm)),this.refs.confirmImportValues.show()},showAndActiveRules:function(e,t){if("rules"===this.state.name)switch(e.id){case"exportRules":this.refs.selectRulesDialog.show();break;case"importRules":this.importRules(t)}else this.setRulesActive(e.name),this.showRules();this.hideRulesOptions()},showRules:function(e){"rules"!=this.state.name?(this.setMenuOptionsState(),this.hideRulesOptions()):e&&!this.state.showLeftMenu&&this.showRulesOptions(e),this.setState({hasRules:!0,name:"rules"}),L.changePageName("rules")},showAndActiveValues:function(e,t){var n=this;if("values"===n.state.name&&e.id)switch(e.id){case"exportValues":n.refs.selectValuesDialog.show();break;case"importValues":this.importValues(t)}else{var r=n.state.values,o=e.name;r.exists(o)?n.setValuesActive(o):D.values.add({name:o},function(e,t){if(e&&0===e.ec){var i=r.add(o);n.setValuesActive(o),n.setState({activeValues:i}),k.trigger("focusValuesList")}else L.showSystemError(t)}),this.showValues()}n.hideValuesOptions()},addValue:function(){},showValues:function(e){"values"!=this.state.name?(this.setMenuOptionsState(),this.hideValuesOptions()):e&&!this.state.showLeftMenu&&this.showValuesOptions(e),this.setState({hasValues:!0,name:"values"}),L.changePageName("values")},showNetworkOptions:function(){"network"==this.state.name&&this.setState({showNetworkOptions:!0})},hideNetworkOptions:function(){this.setState({showRemoveOptions:!1,showAbortOptions:!1,showNetworkOptions:!1})},showRemoveOptions:function(){this.setState({showRemoveOptions:!0})},showAbortOptions:function(){var e=this.state.network,t=e.getSelectedList();se[0].disabled=!t||!t.filter(L.canAbort).length,this.setState({showAbortOptions:!0})},showCreateOptions:function(){this.setState({showCreateOptions:!0})},hideCreateOptions:function(){this.setState({showCreateOptions:!1})},hideRemoveOptions:function(){this.setState({showRemoveOptions:!1})},hideAbortOptions:function(){this.setState({showAbortOptions:!1})},showHelpOptions:function(){this.setState({showHelpOptions:!0})},hideHelpOptions:function(){this.setState({showHelpOptions:!1})},showHasNewVersion:function(e){this.setState({hasNewVersion:e})},showRulesOptions:function(e){var t,n=this,r=n.state.rules,o=r.data,i=r.list;if("rules"===n.state.name){var a=i.length;oe[0].disabled=2>a,oe[1].disabled=1>a,t=oe}else t=[],i.forEach(function(e){t.push(o[e])});n.setState({rulesOptions:t,showRulesOptions:!0})},hideRulesOptions:function(){this.setState({showRulesOptions:!1})},showValuesOptions:function(e){var t,n=this,r=this.state.values.list;if("values"===n.state.name){var o=r.length;ie[0].disabled=2>o,ie[1].disabled=1>o,t=ie}else{t=[];var i=n.getValuesFromRules()||[];i=L.unique(r.concat(i));var a=[];i.forEach(function(e){var n=-1!=r.indexOf(e),o={name:e,icon:n?"edit":"plus"};n?t.push(o):a.push(o)}),t=a.concat(t)}n.setState({valuesOptions:t,showValuesOptions:!0})},hideValuesOptions:function(){this.setState({showValuesOptions:!1})},showAndActivePlugins:function(e){this.hidePluginsOptions(),this.showPlugins(),this.showPluginTab(e.name)},showPluginTab:function(e){
2
2
  var t="Home",n=this.state.tabs||[];if(e&&e!=t)for(var r=0,o=n.length;o>r;r++)if(n[r].name==e){t=e,e=null;break}var i=e&&this.state.plugins[e+":"];if(i){if(n.length>=X)return P.alert("At most "+X+" tabs can be opened at the same time."),this.showPlugins();if(t=e,i.pluginHomepage&&!i.openInPlugins)return window.open(i.pluginHomepage);n.push({name:e,url:i.pluginHomepage||"plugin."+e+"/"})}this.setState({active:t,tabs:n}),this.updatePluginTabInfo(n,t)},updatePluginTabInfo:function(e,t){e=e.map(function(e){return e.name}),j.set("activePluginTabList",JSON.stringify(e)),t&&j.set("activePluginTabName",t)},activePluginTab:function(e){this.showPluginTab(h(e.target).attr("data-name"))},closePluginTab:function(e){for(var t=h(e.target).attr("data-name"),n=this.state.tabs||[],r=0,o=n.length;o>r;r++)if(n[r].name==t){n.splice(r,1);var i=this.state.active;if(i==t){var a=n[r]||n[r-1];this.state.active=a?a.name:null}return this.setState({tabs:n}),void this.updatePluginTabInfo(n)}},showPluginsOptions:function(e){this.setState({showPluginsOptions:!0})},hidePluginsOptions:function(){this.setState({showPluginsOptions:!1})},showWeinreOptionsQuick:function(e){var t=this.getWeinreFromRules();return t&&t.length?void h(e.target).closest("div").addClass("w-menu-wrapper-show"):void this.showAnonymousWeinre()},showWeinreOptions:function(e){var t=this,n=t.state.weinreOptions=t.getWeinreFromRules()||[];t.state.weinreOptions=L.unique(n).map(function(e){return{name:e,icon:"console"}}),t.setState({showWeinreOptions:!0})},hideWeinreOptions:function(){this.setState({showWeinreOptions:!1})},setMenuOptionsState:function(e,t){var n={showCreateRules:!1,showCreateValues:!1,showEditRules:!1,showEditValues:!1,showCreateOptions:!1};e&&(n[e]=!0),this.setState(n,t)},hideRulesInput:function(){this.setState({showCreateRules:!1})},hideValuesInput:function(){this.setState({showCreateValues:!1})},hideRenameRuleInput:function(){this.setState({showEditRules:!1})},hideRenameValueInput:function(){this.setState({showEditValues:!1})},showCreateRules:function(e,t){var n=A.findDOMNode(this.refs.createRulesInput);this._curFocusRulesItem=t,this.setState({showCreateRules:!0},function(){n.focus()})},showCreateValues:function(e,t){var n=A.findDOMNode(this.refs.createValuesInput);this._curFocusValuesItem=t,this.setState({showCreateValues:!0},function(){n.focus()})},showHttpsSettingsDialog:function(){h(A.findDOMNode(this.refs.rootCADialog)).modal("show")},interceptHttpsConnects:function(e){var t=this,n=e.target.checked;D.interceptHttpsConnects({interceptHttpsConnects:n?1:0},function(e,r){e&&0===e.ec?t.state.interceptHttpsConnects=n:L.showSystemError(r),t.setState({})})},enableHttp2:function(e){if(!D.supportH2){var t=this;return void P.confirm("The current version of Node.js cannot support HTTP/2.\nPlease upgrade to the latest LTS version.",function(e){e&&window.open("https://nodejs.org/"),t.setState({})})}var n=e.target.checked;D.enableHttp2({enableHttp2:n?1:0},function(e,r){e&&0===e.ec?t.state.enableHttp2=n:L.showSystemError(r),t.setState({})})},createRules:function(e){if(13==e.keyCode||"click"==e.type){var t=this,n=A.findDOMNode(t.refs.createRulesInput),r=n.value.trim();if(!r)return void R.error("The name cannot be empty.");var o,i=t.state.rules,a=e&&e.target.getAttribute("data-type");if("group"===a&&(o=!0,r="\r"+r),i.exists(r))return void R.error("The name '"+r+"' already exists.");var s="top"===a?1:"",l=t._curFocusRulesItem,c={name:r,addToTop:s};l&&(c.groupName=l.name),D.rules.add(c,function(e,a){if(e&&0===e.ec){var l=i[s?"unshift":"add"](r);n.value="",n.blur(),i.moveToGroup(r,c.groupName,s),!o&&t.setRulesActive(r),c.groupName&&k.trigger("expandRulesGroup",c.groupName),t.setState(o?{}:{activeRules:l},function(){o&&k.trigger("scrollRulesBottom")}),t.triggerRulesChange("create")}else L.showSystemError(a)})}},createValues:function(e){if(13==e.keyCode||"click"==e.type){var t=this,n=A.findDOMNode(t.refs.createValuesInput),r=n.value.trim();if(!r)return void R.error("The name cannot be empty.");if(/\s/.test(r))return void R.error("The name cannot contain spaces.");if(/#/.test(r))return void R.error("The name cannot contain #.");var o,i=t.state.values,a=e&&e.target.getAttribute("data-type");if("group"===a&&(o=!0,r="\r"+r),i.exists(r))return void R.error("The name '"+r+"' already exists.");var s=t._curFocusValuesItem,l={name:r};s&&(l.groupName=s.name),D.values.add(l,function(e,a){if(e&&0===e.ec){var s=i.add(r);n.value="",n.blur(),i.moveToGroup(r,l.groupName),!o&&t.setValuesActive(r),l.groupName&&k.trigger("expandValuesGroup",l.groupName),t.setState(o?{}:{activeValues:s},function(){o&&k.trigger("scrollValuesBottom")}),t.triggerValuesChange("create")}else L.showSystemError(a)})}},showEditRules:function(e){this.currentFocusRules=e;var t=this.state.rules,n=e||t.getActive();if(n&&!n.isDefault){var r=A.findDOMNode(this.refs.editRulesInput);r.value=n.name,this.setState({showEditRules:!0,selectedRule:n},function(){r.select(),r.focus()})}},showEditValuesByDBClick:function(e){!e.changed&&this.showEditValues()},showEditValues:function(e){this.currentFocusValues=e;var t=this.state.values,n=e||t.getActive();if(n&&!n.isDefault){var r=A.findDOMNode(this.refs.editValuesInput);r.value=n.name,this.setState({showEditValues:!0,selectedValue:n},function(){r.select(),r.focus()})}},editRules:function(e){if(13==e.keyCode||"click"==e.type){var t=this,n=t.state.rules,r=this.currentFocusRules||n.getActive();if(r){var o=A.findDOMNode(t.refs.editRulesInput),i=L.isGroup(r.name),a=(i?"\r":"")+o.value.trim();if(!a)return void R.error("The name cannot be empty.");if(n.exists(a))return void R.error("The name '"+a+"' already exists.");var s=r.name;D.rules.rename({name:s,newName:a},function(e,r){e&&0===e.ec?(n.rename(s,a),o.value="",o.blur(),!i&&t.setRulesActive(a),k.trigger("rulesNameChanged",[s,a]),t.setState({activeRules:n.getActive()}),t.triggerRulesChange("rename")):L.showSystemError(r)})}}},editValues:function(e){if(13==e.keyCode||"click"==e.type){var t=this,n=t.state.values,o=this.currentFocusValues||n.getActive();if(o){var i=A.findDOMNode(t.refs.editValuesInput),a=L.isGroup(o.name),s=(a?"\r":"")+i.value.trim();if(!s)return void R.error("The name cannot be empty.");if(n.exists(s))return void R.error("The name '"+s+"' already exists.");var l=o.name;D.values.rename({name:l,newName:s},function(e,c){e&&0===e.ec?(n.rename(l,s),i.value="",i.blur(),!a&&t.setValuesActive(s),k.trigger("valuesNameChanged",[l,s]),t.setState({activeValues:n.getActive()}),t.triggerValuesChange("rename"),r(o)):L.showSystemError(c)})}}},showAnonymousWeinre:function(){this.openWeinre()},showWeinre:function(e){this.openWeinre(e.name)},openWeinre:function(e){window.open("weinre/client/#"+(e||"anonymous")),this.setState({showWeinreOptions:!1})},onClickRulesOption:function(e){e.selected?this.unselectRules(e):this.selectRules(e)},selectRules:function(e){if(!L.isGroup(e.name)){var t=this;return D.rules[e.isDefault?"enableDefault":"select"](e,function(n,r){n&&0===n.ec?(t.reselectRules(n),t.state.rules.setChanged(e.name,!1),t.setState({}),t.triggerRulesChange("save"),t.state.disabledAllRules&&P.confirm("Rules has been turn off, do you want to turn on it?",function(e){e&&D.rules.disableAllRules({disabledAllRules:0},function(e,n){e&&0===e.ec?(t.state.disabledAllRules=!1,t.setState({})):L.showSystemError(n)})})):L.showSystemError(r)}),!1}},selectRulesByOptions:function(e){var t=this.state.rules.data[h(e.target).attr("data-name")];this[e.target.checked?"selectRules":"unselectRules"](t)},unselectRules:function(e){var t=this;return D.rules[e.isDefault?"disableDefault":"unselect"](e,function(e,n){e&&0===e.ec?(t.reselectRules(e),t.setState({})):L.showSystemError(n)}),!1},reselectRules:function(e,t){var n=this;n.state.rules.clearAllSelected(),n.setSelected(n.state.rules,"Default",!e.defaultRulesIsDisabled,t),e.list.forEach(function(e){n.setSelected(n.state.rules,e,!0,t)})},saveValues:function(e){if(e.changed&&!L.isGroup(e.name)){var t=this;return D.values.add(e,function(n,o){n&&0===n.ec?(t.setSelected(t.state.values,e.name),t.triggerValuesChange("save"),r(e)):L.showSystemError(o)}),!1}},setSelected:function(e,t,n,r){e.setSelected(t,n)&&(r||e.setChanged(t,!1),this.setState({curSelectedName:t}))},replayCountChange:function(e){var t=e.target.value.replace(/^\s*0*|[^\d]+/,""),n=t.slice(0,3);n>K&&(n=K),this.setState({replayCount:n})},clickReplay:function(e){e.shiftKey?k.trigger("replaySessions",[null,e.shiftKey]):this.replay(e)},replay:function(e,t,n){var r=this.state.network;if(t=Array.isArray(t)?t:r.getSelectedList(),t&&t.length){this.enableRecord();var o,i=function(e,t){var n=e.req;D.compose2({repeatCount:t,useH2:e.useH2?1:"",url:e.url,headers:L.getOriginalReqHeaders(e),method:n.method,base64:n.base64})};if(n>1?i(t[0],Math.min(n,K)):(o={},t.slice(0,K).forEach(function(e){o[e.id]=1,i(e)})),r.isTreeView){var a=D.lastSelectedDataId;if(!a)return;if(!o)return k.trigger("replayTreeView",[a,n]);var s=a&&r.getTreeNode(a);if(s=s&&s.parent,!s)return;n=0,s.children.forEach(function(e){e=e.data,e&&o[e.id]&&++n}),k.trigger("replayTreeView",[a,n])}else this.autoRefresh&&this.autoRefresh()}},enableRecord:function(){this.refs.recordBtn.enable(),k.trigger("changeRecordState")},composer:function(){k.trigger("composer")},showFiles:function(){this.refs.filesDialog.show(this.files)},clear:function(){var e=this.state.network;this.setState({network:e.clear(),showRemoveOptions:!1})},removeRules:function(e){var t=this,n=this.state.rules,r=e||n.getActive();if(r&&!r.isDefault){var o=r.name;P.confirm("Are you sure to delete "+(L.isGroup(o)?"group ":"")+"'"+o+"'.",function(r){r&&D.rules.remove({name:o},function(r,i){if(r&&0===r.ec){var a=e&&!e.active?null:n.getSibling(o);n.remove(o),a&&(t.setRulesActive(a.name),k.trigger("expandRulesGroup",a.name)),t.setState(e?{}:{activeRules:a}),t.triggerRulesChange("remove"),k.trigger("focusRulesList")}else L.showSystemError(i)})})}},removeValues:function(e){var t=this,n=this.state.values,r=e||n.getActive();if(r&&!r.isDefault){var o=r.name;P.confirm("Are you sure to delete "+(L.isGroup(o)?"group ":"")+"'"+o+"'.",function(r){r&&D.values.remove({name:o},function(r,i){if(r&&0===r.ec){var a=e&&!e.active?null:n.getSibling(o);n.remove(o),a&&(t.setValuesActive(a.name),k.trigger("expandValuesGroup",a.name)),t.setState(e?{}:{activeValues:a}),t.triggerValuesChange("remove"),k.trigger("focusValuesList")}else L.showSystemError(i)})})}},setRulesActive:function(e,t){t=t||this.state.rules,j.set("activeRules",e),t.setActive(e)},setValuesActive:function(e,t){t=t||this.state.values,j.set("activeValues",e),t.setActive(e)},showRulesSettings:function(){h(A.findDOMNode(this.refs.rulesSettingsDialog)).modal("show")},showValuesSettings:function(){h(A.findDOMNode(this.refs.valuesSettingsDialog)).modal("show")},toggleLeftMenu:function(){var e=!this.state.showLeftMenu;this.setState({showLeftMenu:e}),j.set("showLeftMenu",e?1:"")},handleCreate:function(){"rules"==this.state.name?this.showCreateRules():this.showCreateValues()},saveRulesOrValues:function(){var e,t=this,n=t.state,r="rules"==n.name;r?(e=n.rules.getChangedList(),e.length&&(e.forEach(function(e){t.selectRules(e)}),t.setState({}))):(e=n.values.getChangedList(),e.length&&(e.forEach(function(e){t.saveValues(e)}),t.setState({})))},onClickMenu:function(e){var t=h(e.target).closest("a"),n=this,r=n.state,o="rules"==r.name;t.hasClass("w-edit-menu")?o?n.showEditRules():n.showEditValues():t.hasClass("w-delete-menu")?o?n.removeRules():n.removeValues():t.hasClass("w-save-menu")&&n.saveRulesOrValues()},showSettings:function(e){var t=this.state.name;return"rules"===t?void this.showRulesSettings():"values"===t?void this.showValuesSettings():void this.refs.networkSettings.showDialog()},activeRules:function(e){j.set("activeRules",e.name),this.setState({activeRules:e})},activeValues:function(e){j.set("activeValues",e.name),this.setState({activeValues:e})},onRulesThemeChange:function(e){var t=e.target.value;j.set("rulesTheme",t),this.setState({rulesTheme:t})},onValuesThemeChange:function(e){var t=e.target.value;j.set("valuesTheme",t),this.setState({valuesTheme:t})},onRulesFontSizeChange:function(e){var t=e.target.value;j.set("rulesFontSize",t),this.setState({rulesFontSize:t})},onValuesFontSizeChange:function(e){var t=e.target.value;j.set("valuesFontSize",t),this.setState({valuesFontSize:t})},onRulesLineNumberChange:function(e){var t=e.target.checked;j.set("showRulesLineNumbers",t),this.setState({showRulesLineNumbers:t})},onValuesLineNumberChange:function(e){var t=e.target.checked;j.set("showValuesLineNumbers",t),this.setState({showValuesLineNumbers:t})},showFoldGutter:function(e){var t=e.target.checked;j.set("foldGutter",t?"1":""),this.setState({foldGutter:t})},onRulesLineWrappingChange:function(e){var t=e.target.checked;j.set("autoRulesLineWrapping",t?1:""),this.setState({autoRulesLineWrapping:t})},onValuesLineWrappingChange:function(e){var t=e.target.checked;j.set("autoValuesLineWrapping",t?1:""),this.setState({autoValuesLineWrapping:t})},confirmDisableAllRules:function(e){var t=this,n=t.state;n.disabledAllRules?t.disableAllRules():P.confirm("Are you sure to disable all rules",function(e){e&&t.disableAllRules()}),e&&e.preventDefault()},confirmDisableAllPlugins:function(e){var t=this,n=t.state;n.disabledAllPlugins?t.disableAllPlugins():P.confirm("Are you sure to disable all plugins",function(e){e&&t.disableAllPlugins()}),e&&e.preventDefault()},disableAllRules:function(e,t){var n=this,r=n.state,o=!r.disabledAllRules;D.rules.disableAllRules({disabledAllRules:o?1:0},function(e,i){e&&0===e.ec?(r.disabledAllRules=o,n.setState({}),"function"==typeof t&&t(o)):L.showSystemError(i)}),e&&e.preventDefault()},disableAllPlugins:function(e,t){var n=this,r=n.state,o=!r.disabledAllPlugins;D.plugins.disableAllPlugins({disabledAllPlugins:o?1:0},function(e,i){e&&0===e.ec?(r.disabledAllPlugins=o,S.setPlugins(r),n.setState({}),"function"==typeof t&&t(o)):L.showSystemError(i)}),e&&e.preventDefault()},disablePlugin:function(e){var t=this,n=e.target;return t.state.ndp?R.warn("Not allowed disable plugins."):void D.plugins.disablePlugin({name:h(n).attr("data-name"),disabled:n.checked?0:1},function(e,n){e&&0===e.ec?(t.state.disabledPlugins=e.data,S.setPlugins(t.state),t.setState({})):L.showSystemError(n)})},abort:function(e){if(!Array.isArray(e)){var t=this.state.network;e=t.getSelectedList()}e&&(e=e.map(function(e){return L.canAbort(e)?e.id:void 0}),e.length&&D.abort({list:e.join()})),this.hideAbortOptions()},allowMultipleChoice:function(e){var t=this,n=e.target.checked;D.rules.allowMultipleChoice({allowMultipleChoice:n?1:0},function(e,r){e&&0===e.ec?t.setState({allowMultipleChoice:n}):L.showSystemError(r)})},enableBackRulesFirst:function(e){var t=this,n=e.target.checked;D.rules.enableBackRulesFirst({backRulesFirst:n?1:0},function(e,r){e&&0===e.ec?t.setState({backRulesFirst:n}):L.showSystemError(r)})},reinstallAllPlugins:function(){k.trigger("updateAllPlugins","reinstallAllPlugins")},chooseFileType:function(e){var t=e.target.value;j.set("exportFileType",t),this.setState({exportFileType:t})},uploadSessions:function(){this.uploadSessionsForm(new FormData(A.findDOMNode(this.refs.importSessionsForm))),A.findDOMNode(this.refs.importSessions).value=""},importHarSessions:function(e){if(e&&"object"===("undefined"==typeof e?"undefined":p(e))){var t=e.log.entries,n=[];t.forEach(function(e){if(e){var t=e.whistleTimes||"",r=new Date(t.startTime||e.startedDateTime).getTime();if(!isNaN(r)){var o=e.request||{},i=e.response||{},a=L.parseHeadersFromHar(o.headers),s=L.parseHeadersFromHar(i.headers),l=e.clientIPAddress||"127.0.0.1",c=e.serverIPAddress||"",u=Y.test(o.httpVersion||i.httpVersion),d=u?"2.0":"1.1",p=o.postData||"",g={method:o.method,ip:l,port:o.port,httpVersion:d,unzipSize:p.size,size:o.bodySize>0?o.bodySize:0,headers:a.headers,rawHeaderNames:a.rawHeaderNames,body:""},f=p.base64||p.text;f&&(p.base64?g.base64=f:g.body=f);var h=i.content,m={httpVersion:d,statusCode:i.statusCode||i.status,statusMessage:i.statusText,unzipSize:h.size,size:i.bodySize>0?i.bodySize:0,headers:s.headers,rawHeaderNames:s.rawHeaderNames,ip:c,port:i.port,body:""},A=i.content,M=A&&A.text;M&&(A.base64?m.base64=A.base64:"IMG"===L.getContentType(A.mimeType)||M.length%4===0&&/^[a-z\d+/]+={0,2}$/i.test(M)?m.base64=M:m.body=M);var w={useH2:u,startTime:r,frames:e.frames,url:o.url,realUrl:e.whistleRealUrl,req:g,res:m,fwdHost:e.whistleFwdHost,sniPlugin:e.whistleSniPlugin,rules:e.whistleRules||{},version:e.whistleVersion,nodeVersion:e.whistleNodeVersion};if(t&&t.startTime)w.dnsTime=t.dnsTime,w.requestTime=t.requestTime,w.responseTime=t.responseTime,w.endTime=t.endTime;else{var b=e.timings||{},y=Math.round(r+L.getTimeFromHar(e.time));r=Math.floor(r+L.getTimeFromHar(b.dns)),w.dnsTime=r,r=Math.floor(r+L.getTimeFromHar(b.connect)+L.getTimeFromHar(b.ssl)+L.getTimeFromHar(b.send)+L.getTimeFromHar(b.blocked)+L.getTimeFromHar(b.wait)),w.requestTime=r,r=Math.floor(r+L.getTimeFromHar(b.receive)),w.responseTime=r,w.endTime=Math.max(r,y)}n.push(w)}}}),D.addNetworkList(n)}},uploadSessionsForm:function(e){var t=e.get("importSessions");if(!t||!/\.(txt|json|saz|har)$/i.test(t.name))return P.alert("Only supports .txt, .json, .saz or .har file.");if(t.size>_)return P.alert("The file size cannot exceed 64m.");var n=/\.txt$/i.test(t.name);if(n||/\.har$/i.test(t.name)){var r=this;return void L.readFileAsText(t,function(e){try{e=JSON.parse(e),n?D.addNetworkList(e):r.importHarSessions(e)}catch(t){P.alert("Unrecognized format.")}})}D.upload.importSessions(e,D.addNetworkList)},exportSessions:function(e,t){var n=this.state.network,r=this.currentFoucsItem;if(this.currentFoucsItem=null,r&&h(A.findDOMNode(this.refs.chooseFileType)).is(":visible")||(r=n.getSelectedList()),r&&r.length){var o=A.findDOMNode(this.refs.exportSessionsForm);A.findDOMNode(this.refs.exportFilename).value=t||"",A.findDOMNode(this.refs.exportFileType).value=e,"har"===e&&(r={log:{version:"1.2",creator:{name:"Whistle",version:this.state.version,comment:""},browser:{name:"Whistle",version:this.state.version},pages:[],entries:r.map(L.toHar),comment:""}}),A.findDOMNode(this.refs.sessions).value=JSON.stringify(r,null," "),o.submit()}},exportBySave:function(e){if(!e||"click"===e.type||13===e.keyCode){var t=A.findDOMNode(this.refs.sessionsName),n=t.value.trim();t.value="",this.exportSessions(this.state.exportFileType,n),h(A.findDOMNode(this.refs.chooseFileType)).modal("hide")}},replayRepeat:function(e){e&&"click"!==e.type&&13!==e.keyCode||(this.refs.setReplayCount.hide(),this.replay("",this.replayList,this.state.replayCount),k.trigger("focusNetworkList"))},showAboutDialog:function(e){h(e.target).closest(".w-menu-enable").length&&this.refs.aboutDialog.showAboutInfo()},showCustomCertsInfo:function(){var e=this;e.loadingCerts||(e.loadingCerts=!0,D.certs.all(function(t,n){return e.loadingCerts=!1,t?void e.refs.certsInfoDialog.show(t.certs,t.dir):void L.showSystemError(n)}))},onContextMenu:function(e){var t=0,n=re;if(n[2].hide&&++t,n[3].hide&&++t,n[4].hide&&++t,3>t){var r=L.getMenuPosition(e,110,100-30*t),o=this.state;r.list=n,n[2].checked=!!o.network.isTreeView,n[3].checked=!o.disabledAllRules,n[4].checked=!o.disabledAllPlugins;var i=h(e.target);n[0].hide=!0,n[1].hide=!0,i.closest(".w-network-menu").length?n[0].hide=!1:i.closest(".w-save-menu").length&&(n[1].hide=!1,i.closest(".w-rules-menu").length?n[1].disabled=!o.rules.hasChanged():n[1].disabled=!o.values.hasChanged()),this.refs.contextMenu.show(r)}e.preventDefault()},onClickContextMenu:function(e){var t=this,n=t.state,r=re;switch(e){case"Tree View":r[2].checked=!n.network.isTreeView,t.toggleTreeView();break;case"Rules":t.disableAllRules(null,function(e){r[3].checked=!e,t.setState({})});break;case"Plugins":t.disableAllPlugins(null,function(e){r[4].checked=!e,t.setState({})});break;case"Clear":return void t.clear();case"Save":return void t.saveRulesOrValues()}this.refs.contextMenu.show({})},forceShowLeftMenu:function(){var e=this;clearTimeout(e.hideTimer),clearTimeout(e.showTimer),e.showTimer=setTimeout(function(){e.setState({forceShowLeftMenu:!0})},200)},selectCAType:function(e){var t=e.target.value;"cer"!==t&&"pem"!==t&&(t="crt"),this.setState({caType:t}),j.set("caType",t)},forceHideLeftMenu:function(){var e=this;clearTimeout(e.hideTimer),clearTimeout(e.showTimer),e.hideTimer=setTimeout(function(){e.setState({forceShowLeftMenu:!1})},500)},updateMenuView:function(e){var t=e.networkOptions[e.networkOptions.length-1];return e.network.isTreeView?(t.icon="globe",t.name="Show List View"):(t.icon="tree-conifer",t.name="Show Tree View"),e},toggleTreeView:function(){var e=this,t=e.state.network;t.setTreeView(!t.isTreeView),e.updateMenuView(e.state),e.setState({},function(){t.isTreeView||e.autoRefresh&&e.autoRefresh()})},toggleTreeViewByIcon:function(){"network"==this.getTabName()&&this.toggleTreeView()},getTabName:function(){var e=this.state,t=e.networkMode,n=e.rulesMode,r=e.rulesOnlyMode,o=e.pluginsMode,i=e.name;return t?i="network":r?i="values"===i?"values":"rules":n&&o?(i="plugins",t=!0):n?i="network"===i?"rules":i:o&&(i="plugins"!==i?"network":i),i||"network"},render:function(){var e=this.state,t=e.networkMode,n=e.rulesMode,r=e.rulesOnlyMode,o=e.pluginsMode,i=e.multiEnv,a=this.getTabName(),s="network"==a,l="rules"==a,c="values"==a,u="plugins"==a,p=!0,f=!0,h=e.rulesTheme||"cobalt",A=e.valuesTheme||"cobalt",M=e.rulesFontSize||"14px",b=e.valuesFontSize||"14px",L=e.showRulesLineNumbers||!1,S=e.showValuesLineNumbers||!1,k=e.autoRulesLineWrapping,j=e.autoValuesLineWrapping,R=e.rulesOptions,P=e.pluginsOptions,Y={},G=e.showNetworkOptions,X=e.showRulesOptions,_=e.showValuesOptions,J=e.showPluginsOptions,Z=e.showWeinreOptions,q=e.showHelpOptions,$=e.network,ee=$.isTreeView,ne=ee?"tree-conifer":"globe";R[0].name===W&&R.forEach(function(t,n){t.icon=n&&e.multiEnv?"edit":"checkbox",t.selected||(Y[t.name]=1)});var oe,ie;if(l){ie=e.rules.data;for(oe in ie)if(ie[oe].active){p=f=ie[oe].isDefault;break}}else if(c){ie=e.values.data;for(oe in ie)if(ie[oe].active){p=f=!1;break}}$.rulesModal=e.rules,e.rules.editorTheme={theme:h,fontSize:M,lineNumbers:L};var le=e.networkOptions,ce=$.hasUnselected();$.hasSelected()?(le.forEach(function(e){e.disabled=!1,"removeUnselected"===e.id&&(e.disabled=!ce)}),ae.forEach(function(e){e.disabled=!1,"removeUnselected"===e.id&&(e.disabled=!ce)})):(le.forEach(function(e){-1!==te.indexOf(e.id)?e.disabled=!0:"removeUnselected"===e.id&&(e.disabled=!ce)}),le[0].disabled=!ce,ae.forEach(function(e){-1!==te.indexOf(e.id)?e.disabled=!0:"removeUnselected"===e.id&&(e.disabled=!ce)}));var ue,de,pe=e.pendingSessions,ge=e.pendingRules,fe=e.pendingValues,he=g&&!e.forceShowLeftMenu,me=o&&n,Ae=(t||e.showLeftMenu)&&!me,Me=e.disabledAllPlugins,we=e.disabledAllRules;Ae&&g&&(ue=this.forceShowLeftMenu,de=this.forceHideLeftMenu),re[2].hide=n,re[3].hide=o,re[4].hide=r;var be=e.caType||"crt",ye="img/qrcode.png",ve="cgi-bin/rootca",Te="http://rootca.pro/";return"crt"!==be&&(ye="img/qrcode-"+be+".png",ve+="?type="+be,Te+=be),m.createElement("div",{className:"main orient-vertical-box"+(Ae?" w-show-left-menu":"")},m.createElement("div",{className:"w-menu w-"+a+"-menu-list"},m.createElement("a",{onClick:this.toggleLeftMenu,draggable:"false",className:"w-show-left-menu-btn",onMouseEnter:ue,onMouseLeave:de,style:{display:t||me?"none":void 0},title:"Dock to "+(Ae?"top":"left")+" (Ctrl[Command] + M)"},m.createElement("span",{className:"glyphicon glyphicon-chevron-"+(Ae?he?"down":"up":"left")})),m.createElement("div",{style:{display:n?"none":void 0},onMouseEnter:this.showNetworkOptions,onMouseLeave:this.hideNetworkOptions,className:"w-nav-menu w-menu-wrapper"+(G?" w-menu-wrapper-show":"")},m.createElement("a",{onClick:this.showNetwork,onDoubleClick:this.toggleTreeView,className:"w-network-menu"+("network"==a?" w-menu-selected":""),title:"Double click to show"+(ee?" List View":" Tree View"),draggable:"false"},m.createElement("span",{className:"glyphicon glyphicon-"+ne}),"Network"),m.createElement(x,{ref:"networkMenuItem",options:e.networkOptions,className:"w-network-menu-item",onClickOption:this.handleNetwork})),m.createElement("div",{style:{display:o?"none":void 0},onMouseEnter:this.showRulesOptions,onMouseLeave:this.hideRulesOptions,className:"w-nav-menu w-menu-wrapper"+(X?" w-menu-wrapper-show":"")+(l?" w-menu-auto":"")},m.createElement("a",{onClick:this.showRules,className:"w-rules-menu"+("rules"==a?" w-menu-selected":""),draggable:"false"},m.createElement("span",{className:"glyphicon glyphicon-list"+(we?" w-disabled":"")}),"Rules"),m.createElement(x,{ref:"rulesMenuItem",name:"rules"==a?null:"Open",options:R,checkedOptions:Y,disabled:we,className:"w-rules-menu-item",onClick:this.showRules,onClickOption:this.showAndActiveRules,onChange:this.selectRulesByOptions})),m.createElement("div",{style:{display:o?"none":void 0},onMouseEnter:this.showValuesOptions,onMouseLeave:this.hideValuesOptions,className:"w-nav-menu w-menu-wrapper"+(_?" w-menu-wrapper-show":"")+(c?" w-menu-auto":"")},m.createElement("a",{onClick:this.showValues,className:"w-values-menu"+("values"==a?" w-menu-selected":""),draggable:"false"},m.createElement("span",{className:"glyphicon glyphicon-folder-close"}),"Values"),m.createElement(x,{ref:"valuesMenuItem",name:"values"==a?null:"Open",options:e.valuesOptions,className:"w-values-menu-item",onClick:this.showValues,onClickOption:this.showAndActiveValues})),m.createElement("div",{style:{display:r||me?"none":void 0},ref:"pluginsMenu",onMouseEnter:this.showPluginsOptions,onMouseLeave:this.hidePluginsOptions,className:"w-nav-menu w-menu-wrapper"+(J?" w-menu-wrapper-show":"")},m.createElement("a",{onClick:this.showPlugins,className:"w-plugins-menu"+("plugins"==a?" w-menu-selected":""),draggable:"false"},m.createElement("span",{className:"glyphicon glyphicon-list-alt"+(Me?" w-disabled":"")}),"Plugins"),m.createElement(x,{ref:"pluginsMenuItem",name:"plugins"==a?null:"Open",options:P,checkedOptions:e.disabledPlugins,disabled:Me,className:"w-plugins-menu-item",onClick:this.showPlugins,onChange:this.disablePlugin,onClickOption:this.showAndActivePlugins})),!e.ndr&&m.createElement("a",{onClick:this.confirmDisableAllRules,className:"w-enable-rules-menu",title:we?"Enable all rules":"Disable all rules",style:{display:l?"":"none",color:we?"#f66":void 0},draggable:"false"},m.createElement("span",{className:"glyphicon glyphicon-"+(we?"play-circle":"off")}),we?"ON":"OFF"),!e.ndp&&m.createElement("a",{onClick:this.confirmDisableAllPlugins,className:"w-enable-plugin-menu",title:Me?"Enable all plugins":"Disable all plugins",style:{display:u?"":"none",color:Me?"#f66":void 0},draggable:"false"},m.createElement("span",{className:"glyphicon glyphicon-"+(Me?"play-circle":"off")}),Me?"ON":"OFF"),m.createElement(O,{hide:!u}),m.createElement("a",{onClick:this.reinstallAllPlugins,className:"w-plugins-menu"+(u?"":" hide"),draggable:"false"},m.createElement("span",{className:"glyphicon glyphicon-download-alt"}),"ReinstallAll"),m.createElement(N,{ref:"recordBtn",hide:!s,onClick:this.handleAction}),m.createElement("a",{onClick:this.importData,className:"w-import-menu",style:{display:u?"none":""},draggable:"false"},m.createElement("span",{className:"glyphicon glyphicon-import"}),"Import"),m.createElement("a",{onClick:this.exportData,className:"w-export-menu",style:{display:u?"none":""},draggable:"false"},m.createElement("span",{className:"glyphicon glyphicon-export"}),"Export"),m.createElement("div",{onMouseEnter:this.showRemoveOptions,onMouseLeave:this.hideRemoveOptions,style:{display:s?"":"none"},className:"w-menu-wrapper w-remove-menu-list w-menu-auto"+(e.showRemoveOptions?" w-menu-wrapper-show":"")},m.createElement("a",{onClick:this.clear,className:"w-remove-menu",title:"Ctrl[Command] + X",draggable:"false"},m.createElement("span",{className:"glyphicon glyphicon-remove"}),"Clear"),m.createElement(x,{options:ae,className:"w-remove-menu-item",onClickOption:this.handleNetwork})),m.createElement("a",{onClick:this.onClickMenu,className:"w-save-menu",style:{display:s||u?"none":""},draggable:"false",title:"Ctrl[Command] + S"},m.createElement("span",{className:"glyphicon glyphicon-save-file"}),"Save"),m.createElement("a",{className:"w-create-menu",style:{display:s||u?"none":""},draggable:"false",onClick:this.handleCreate},m.createElement("span",{className:"glyphicon glyphicon-plus"}),"Create"),m.createElement("a",{onClick:this.onClickMenu,className:"w-edit-menu"+(p?" w-disabled":""),style:{display:s||u?"none":""},draggable:"false"},m.createElement("span",{className:"glyphicon glyphicon-edit"}),"Rename"),m.createElement("div",{onMouseEnter:this.showAbortOptions,onMouseLeave:this.hideAbortOptions,style:{display:s?"":"none"},className:"w-menu-wrapper w-abort-menu-list w-menu-auto"+(e.showAbortOptions?" w-menu-wrapper-show":"")},m.createElement("a",{onClick:this.clickReplay,className:"w-replay-menu",draggable:"false"},m.createElement("span",{className:"glyphicon glyphicon-repeat"}),"Replay"),m.createElement(x,{options:se,className:"w-remove-menu-item",onClickOption:this.abort})),m.createElement("a",{onClick:this.composer,className:"w-composer-menu",style:{display:s?"":"none"},draggable:"false"},m.createElement("span",{className:"glyphicon glyphicon-edit"}),"Compose"),m.createElement("a",{onClick:this.onClickMenu,className:"w-delete-menu"+(f?" w-disabled":""),style:{display:s||u?"none":""},draggable:"false"},m.createElement("span",{className:"glyphicon glyphicon-trash"}),"Delete"),m.createElement(Q,{onClick:this.showSettings,disabledRules:l&&we,isNetwork:s,hide:u}),m.createElement("a",{onClick:this.showFiles,className:"w-files-menu",draggable:"false"},m.createElement("span",{className:"glyphicon glyphicon-upload"}),"Files"),m.createElement("div",{onMouseEnter:this.showWeinreOptions,onMouseLeave:this.hideWeinreOptions,className:"w-menu-wrapper"+(Z?" w-menu-wrapper-show":"")},m.createElement("a",{onClick:this.showWeinreOptionsQuick,onDoubleClick:this.showAnonymousWeinre,className:"w-weinre-menu",draggable:"false"},m.createElement("span",{className:"glyphicon glyphicon-console"}),"Weinre"),m.createElement(x,{ref:"weinreMenuItem",name:"anonymous",options:e.weinreOptions,className:"w-weinre-menu-item",onClick:this.showAnonymousWeinre,onClickOption:this.showWeinre})),m.createElement("a",{onClick:this.showHttpsSettingsDialog,className:"w-https-menu",draggable:"false",style:{color:D.hasInvalidCerts?"red":void 0}},m.createElement("span",{className:"glyphicon glyphicon-"+(e.interceptHttpsConnects?"ok":"lock")}),"HTTPS"),m.createElement("div",{onMouseEnter:this.showHelpOptions,onMouseLeave:this.hideHelpOptions,className:"w-menu-wrapper"+(q?" w-menu-wrapper-show":"")},m.createElement("a",{className:"w-help-menu"+(e.hasNewVersion?" w-menu-enable":""),onClick:this.showAboutDialog,title:e.hasNewVersion?"There is a new version of whistle":void 0,href:e.hasNewVersion?void 0:"https://github.com/avwo/whistle#whistle",target:e.hasNewVersion?void 0:"_blank"},e.hasNewVersion?m.createElement("i",{className:"w-new-version-icon"}):null,m.createElement("span",{className:"glyphicon glyphicon-question-sign"}),"Help"),m.createElement(x,{ref:"helpMenuItem",options:e.helpOptions,name:m.createElement(v,{ref:"aboutDialog",onClick:this.hideHelpOptions,onCheckUpdate:this.showHasNewVersion}),className:"w-help-menu-item"})),m.createElement(T,{name:a}),m.createElement("div",{onMouseDown:this.preventBlur,style:{display:e.showCreateRules?"block":"none"},className:"shadow w-input-menu-item w-create-rules-input"},m.createElement("input",{ref:"createRulesInput",onKeyDown:this.createRules,onBlur:this.hideRulesInput,type:"text",maxLength:"64",placeholder:"Input the name"}),m.createElement("button",{type:"button",onClick:this.createRules,className:"btn btn-primary"},"+Rule"),m.createElement("button",{type:"button",onClick:this.createRules,"data-type":"top",className:"btn btn-default"},"+Top"),m.createElement("button",{type:"button",onClick:this.createRules,"data-type":"group",className:"btn btn-default"},"+Group")),m.createElement("div",{onMouseDown:this.preventBlur,style:{display:e.showCreateValues?"block":"none"
3
- },className:"shadow w-input-menu-item w-create-values-input"},m.createElement("input",{ref:"createValuesInput",onKeyDown:this.createValues,onBlur:this.hideValuesInput,type:"text",maxLength:"64",placeholder:"Input the name"}),m.createElement("button",{type:"button",onClick:this.createValues,className:"btn btn-primary"},"+Key"),m.createElement("button",{type:"button",onClick:this.createValues,"data-type":"group",className:"btn btn-default"},"+Group")),m.createElement("div",{onMouseDown:this.preventBlur,style:{display:e.showEditRules?"block":"none"},className:"shadow w-input-menu-item w-edit-rules-input"},m.createElement("input",{ref:"editRulesInput",onKeyDown:this.editRules,onBlur:this.hideRenameRuleInput,type:"text",maxLength:"64"}),m.createElement("button",{type:"button",onClick:this.editRules,className:"btn btn-primary"},"OK")),m.createElement("div",{onMouseDown:this.preventBlur,style:{display:e.showEditValues?"block":"none"},className:"shadow w-input-menu-item w-edit-values-input"},m.createElement("input",{ref:"editValuesInput",onKeyDown:this.editValues,onBlur:this.hideRenameValueInput,type:"text",maxLength:"64"}),m.createElement("button",{type:"button",onClick:this.editValues,className:"btn btn-primary"},"OK"))),m.createElement("div",{className:"w-container box fill"},m.createElement(H,{onClick:this.onClickContextMenu,ref:"contextMenu"}),m.createElement("div",{onContextMenu:this.onContextMenu,onDoubleClick:this.onContextMenu,className:"w-left-menu"+(ue?" w-hover-left-menu":""),style:{display:t||he?"none":void 0},onMouseEnter:ue,onMouseLeave:de},m.createElement("a",{onClick:this.showNetwork,className:"w-network-menu"+("network"==a?" w-menu-selected":""),style:{display:n?"none":void 0},draggable:"false"},m.createElement("span",{className:"glyphicon glyphicon-"+ne}),m.createElement("i",{className:"w-left-menu-name"},"Network")),m.createElement("a",{onClick:this.showRules,className:"w-save-menu w-rules-menu"+("rules"==a?" w-menu-selected":""),style:{display:o?"none":void 0},draggable:"false"},m.createElement("span",{className:"glyphicon glyphicon-list"+(we?" w-disabled":"")}),m.createElement("i",{className:"w-left-menu-name"},"Rules"),m.createElement("i",{className:"w-menu-changed",style:{display:e.rules.hasChanged()?void 0:"none"}},"*")),m.createElement("a",{onClick:this.showValues,className:"w-save-menu w-values-menu"+("values"==a?" w-menu-selected":""),style:{display:o?"none":void 0},draggable:"false"},m.createElement("span",{className:"glyphicon glyphicon-folder-close"}),m.createElement("i",{className:"w-left-menu-name"},"Values"),m.createElement("i",{className:"w-menu-changed",style:{display:e.values.hasChanged()?void 0:"none"}},"*")),m.createElement("a",{onClick:this.showPlugins,className:"w-plugins-menu"+("plugins"==a?" w-menu-selected":""),style:{display:r||me?"none":void 0},draggable:"false"},m.createElement("span",{className:"glyphicon glyphicon-list-alt"+(Me?" w-disabled":"")}),m.createElement("i",{className:"w-left-menu-name"},"Plugins"))),e.hasRules?m.createElement(w,{ref:"rules",disabled:we,theme:h,lineWrapping:k,fontSize:M,lineNumbers:L,onSelect:this.selectRules,onUnselect:this.unselectRules,onActive:this.activeRules,modal:e.rules,hide:"rules"==a?!1:!0,name:"rules"}):void 0,e.hasValues?m.createElement(w,{theme:A,onDoubleClick:this.showEditValuesByDBClick,fontSize:b,lineWrapping:j,lineNumbers:S,onSelect:this.saveValues,onActive:this.activeValues,modal:e.values,hide:"values"==a?!1:!0,className:"w-values-list",foldGutter:e.foldGutter}):void 0,e.hasNetwork?m.createElement(y,{ref:"network",hide:"rules"===a||"values"===a||"plugins"===a,modal:$}):void 0,e.hasPlugins?m.createElement(E,d({},e,{onOpen:this.activePluginTab,onClose:this.closePluginTab,onActive:this.activePluginTab,onChange:this.disablePlugin,ref:"plugins",hide:"plugins"==a?!1:!0})):void 0),m.createElement("div",{ref:"rulesSettingsDialog",className:"modal fade w-rules-settings-dialog"},m.createElement("div",{className:"modal-dialog"},m.createElement("div",{className:"modal-content"},m.createElement("div",{className:"modal-body"},m.createElement("button",{type:"button",className:"close","data-dismiss":"modal","aria-label":"Close"},m.createElement("span",{"aria-hidden":"true"},"×")),m.createElement(C,{theme:h,fontSize:M,lineNumbers:L,lineWrapping:k,onLineWrappingChange:this.onRulesLineWrappingChange,onThemeChange:this.onRulesThemeChange,onFontSizeChange:this.onRulesFontSizeChange,onLineNumberChange:this.onRulesLineNumberChange}),!e.drb&&m.createElement("p",{className:"w-editor-settings-box"},m.createElement("label",null,m.createElement("input",{type:"checkbox",checked:e.backRulesFirst,onChange:this.enableBackRulesFirst})," ","Back rules first")),!e.drm&&m.createElement("p",{className:"w-editor-settings-box"},m.createElement("label",{style:{color:i?"#aaa":void 0}},m.createElement("input",{type:"checkbox",disabled:i,checked:!i&&e.allowMultipleChoice,onChange:this.allowMultipleChoice})," ","Use multiple rules"))),m.createElement("div",{className:"modal-footer"},m.createElement("button",{type:"button",className:"btn btn-default","data-dismiss":"modal"},"Close"))))),m.createElement("div",{ref:"valuesSettingsDialog",className:"modal fade w-values-settings-dialog"},m.createElement("div",{className:"modal-dialog"},m.createElement("div",{className:"modal-content"},m.createElement("div",{className:"modal-body"},m.createElement("button",{type:"button",className:"close","data-dismiss":"modal","aria-label":"Close"},m.createElement("span",{"aria-hidden":"true"},"×")),m.createElement(C,{theme:A,fontSize:b,lineNumbers:S,lineWrapping:j,onLineWrappingChange:this.onValuesLineWrappingChange,onThemeChange:this.onValuesThemeChange,onFontSizeChange:this.onValuesFontSizeChange,onLineNumberChange:this.onValuesLineNumberChange}),m.createElement("p",{className:"w-editor-settings-box"},m.createElement("label",null,m.createElement("input",{type:"checkbox",checked:e.foldGutter,onChange:this.showFoldGutter})," ","Show fold gutter"))),m.createElement("div",{className:"modal-footer"},m.createElement("button",{type:"button",className:"btn btn-default","data-dismiss":"modal"},"Close"))))),m.createElement(I,{ref:"networkSettings"}),m.createElement("div",{ref:"rootCADialog",className:"modal fade w-https-dialog"},m.createElement("div",{className:"modal-dialog"},m.createElement("div",{className:"modal-content"},m.createElement("div",{className:"modal-body"},m.createElement("button",{type:"button",className:"close","data-dismiss":"modal","aria-label":"Close"},m.createElement("span",{"aria-hidden":"true"},"×")),m.createElement("div",null,m.createElement("a",{className:"w-help-menu",title:"Click here to learn how to install root ca",href:"https://avwo.github.io/whistle/webui/https.html",target:"_blank"},m.createElement("span",{className:"glyphicon glyphicon-question-sign"})),m.createElement("a",{className:"w-download-rootca",title:Te,href:ve,target:"downloadTargetFrame"},"Download RootCA"),m.createElement("select",{className:"w-root-ca-type",value:be,onChange:this.selectCAType},m.createElement("option",{value:"crt"},"rootCA.crt"),m.createElement("option",{value:"cer"},"rootCA.cer"),m.createElement("option",{value:"pem"},"rootCA.pem"))),m.createElement("a",{title:Te,href:ve,target:"downloadTargetFrame"},m.createElement("img",{src:ye,width:"320"})),m.createElement("div",{className:"w-https-settings"},m.createElement("p",null,m.createElement("label",{title:i?"Use `pattern enable://capture` in rules to replace global configuration":void 0},m.createElement("input",{disabled:i,checked:e.interceptHttpsConnects,onChange:this.interceptHttpsConnects,type:"checkbox"})," ","Capture TUNNEL CONNECTs")),m.createElement("p",null,m.createElement("label",null,m.createElement("input",{checked:D.supportH2&&e.enableHttp2,onChange:this.enableHttp2,type:"checkbox"})," ","Enable HTTP/2")),m.createElement("a",{draggable:"false",style:{color:D.hasInvalidCerts?"red":void 0},onClick:this.showCustomCertsInfo},"View custom certs info"),m.createElement(V,{ref:"certsInfoDialog"}))),m.createElement("div",{className:"modal-footer"},m.createElement("button",{type:"button",className:"btn btn-default","data-dismiss":"modal"},"Close"))))),m.createElement("div",{ref:"chooseFileType",className:"modal fade w-choose-filte-type"},m.createElement("div",{className:"modal-dialog"},m.createElement("div",{className:"modal-content"},m.createElement("div",{className:"modal-body"},m.createElement("label",{className:"w-choose-filte-type-label"},"Save as:",m.createElement("input",{ref:"sessionsName",onKeyDown:this.exportBySave,placeholder:"Input the filename",className:"form-control",maxLength:"64"}),m.createElement("select",{ref:"fileType",className:"form-control",value:e.exportFileType,onChange:this.chooseFileType},m.createElement("option",{value:"whistle"},"*.txt"),m.createElement("option",{value:"Fiddler"},"*.saz"),m.createElement("option",{value:"har"},"*.har"))),m.createElement("a",{type:"button",onKeyDown:this.exportBySave,tabIndex:"0",onMouseDown:this.preventBlur,className:"btn btn-primary",onClick:this.exportBySave},"Export"))))),m.createElement(U,{ref:"setReplayCount",wstyle:"w-replay-count-dialog"},m.createElement("div",{className:"modal-body"},m.createElement("label",null,"Times:",m.createElement("input",{ref:"replayCount",placeholder:"<= "+K,onKeyDown:this.replayRepeat,onChange:this.replayCountChange,value:e.replayCount,className:"form-control",maxLength:"3"})),m.createElement("button",{type:"button",onKeyDown:this.replayRepeat,tabIndex:"0",onMouseDown:this.preventBlur,className:"btn btn-primary",disabled:!e.replayCount,onClick:this.replayRepeat},"Replay"))),m.createElement(U,{ref:"importRemoteRules",wstyle:"w-import-remote-dialog"},m.createElement("div",{className:"modal-body"},m.createElement("input",{readOnly:ge,ref:"rulesRemoteUrl",maxLength:"2048",onKeyDown:this.importRemoteRules,placeholder:"Input the url",style:{"ime-mode":"disabled"}})),m.createElement("div",{className:"modal-footer"},m.createElement("button",{type:"button",className:"btn btn-primary",disabled:ge,onMouseDown:this.preventBlur,onClick:this.importRemoteRules},ge?"Importing rules":"Import rules"),m.createElement("button",{type:"button",className:"btn btn-default","data-dismiss":"modal"},"Close"))),m.createElement(U,{ref:"importRemoteSessions",wstyle:"w-import-remote-dialog"},m.createElement("div",{className:"modal-body"},m.createElement("input",{readOnly:pe,ref:"sessionsRemoteUrl",maxLength:"2048",onKeyDown:this.importRemoteSessions,placeholder:"Input the url",style:{"ime-mode":"disabled"}})),m.createElement("div",{className:"modal-footer"},m.createElement("button",{type:"button",className:"btn btn-primary",disabled:pe,onMouseDown:this.preventBlur,onClick:this.importRemoteSessions},pe?"Importing sessions":"Import sessions"),m.createElement("button",{type:"button",className:"btn btn-default","data-dismiss":"modal"},"Close"))),m.createElement(U,{ref:"importRemoteValues",wstyle:"w-import-remote-dialog"},m.createElement("div",{className:"modal-body"},m.createElement("input",{readOnly:fe,ref:"valuesRemoteUrl",maxLength:"2048",onKeyDown:this.importRemoteValues,placeholder:"Input the url",style:{"ime-mode":"disabled"}})),m.createElement("div",{className:"modal-footer"},m.createElement("button",{type:"button",className:"btn btn-primary",disabled:fe,onMouseDown:this.preventBlur,onClick:this.importRemoteValues},fe?"Importing values":"Import values"),m.createElement("button",{type:"button",className:"btn btn-default","data-dismiss":"modal"},"Close"))),m.createElement("div",{ref:"showUpdateTipsDialog",className:"modal fade w-show-update-tips-dialog"},m.createElement("div",{className:"modal-dialog"},m.createElement("div",{className:"modal-content"},m.createElement("div",{className:"modal-body"},m.createElement("button",{type:"button",className:"close","data-dismiss":"modal","aria-label":"Close"},m.createElement("span",{"aria-hidden":"true"},"×")),m.createElement("p",{className:"w-show-update-tips"},"whistle has important updates, it is recommended that you update to the latest version."),m.createElement("p",null,"Current version: ",e.version),m.createElement("p",null,"The latest stable version: ",e.latestVersion),m.createElement("p",null,"View change:"," ",m.createElement("a",{title:"Change log",href:"https://github.com/avwo/whistle/blob/master/CHANGELOG.md",target:"_blank"},"CHANGELOG.md"))),m.createElement("div",{className:"modal-footer"},m.createElement("button",{type:"button",className:"btn btn-default",onClick:this.donotShowAgain,"data-dismiss":"modal"},"Don't show again"),m.createElement("a",{type:"button",className:"btn btn-primary",onClick:this.hideUpdateTipsDialog,href:"https://avwo.github.io/whistle/update.html",target:"_blank"},"Update now"))))),m.createElement(U,{ref:"confirmReload",wstyle:"w-confirm-reload-dialog"},m.createElement("div",{className:"modal-body w-confirm-reload"},m.createElement("button",{type:"button",className:"close","data-dismiss":"modal"},m.createElement("span",{"aria-hidden":"true"},"×")),m.createElement("div",{className:"w-reload-data-tips"})),m.createElement("div",{className:"modal-footer"},m.createElement("button",{type:"button",className:"btn btn-default","data-dismiss":"modal"},"No"),m.createElement("button",{type:"button",className:"btn btn-primary",onClick:this.reloadData,"data-dismiss":"modal"},"Yes"))),m.createElement(U,{ref:"confirmImportRules",wstyle:"w-confirm-import-dialog"},m.createElement("div",{className:"modal-body w-confirm-import"},m.createElement("button",{type:"button",className:"close","data-dismiss":"modal"},m.createElement("span",{"aria-hidden":"true"},"×")),"Whether to replace the existing rules?"),m.createElement("div",{className:"modal-footer"},m.createElement("button",{type:"button",className:"btn btn-danger",onClick:this.uploadRules,"data-dismiss":"modal"},"Replace"),m.createElement("button",{type:"button",className:"btn btn-primary",onClick:this.uploadRules,"data-dismiss":"modal"},"Reserve"))),m.createElement(U,{ref:"confirmImportValues",wstyle:"w-confirm-import-dialog"},m.createElement("div",{className:"modal-body w-confirm-import"},m.createElement("button",{type:"button",className:"close","data-dismiss":"modal"},m.createElement("span",{"aria-hidden":"true"},"×")),"Whether to replace the existing values?"),m.createElement("div",{className:"modal-footer"},m.createElement("button",{type:"button",className:"btn btn-danger",onClick:this.uploadValues,"data-dismiss":"modal"},"Replace"),m.createElement("button",{type:"button",className:"btn btn-primary",onClick:this.uploadValues,"data-dismiss":"modal"},"Reserve"))),m.createElement(z,{ref:"filesDialog"}),m.createElement(B,{ref:"selectRulesDialog",name:"rules",list:e.rules.list}),m.createElement(B,{ref:"selectValuesDialog",name:"values",list:e.values.list}),m.createElement("iframe",{name:"downloadTargetFrame",style:{display:"none"}}),m.createElement("form",{ref:"exportSessionsForm",action:"cgi-bin/sessions/export",style:{display:"none"},method:"post",target:"downloadTargetFrame"},m.createElement("input",{ref:"exportFilename",name:"exportFilename",type:"hidden"}),m.createElement("input",{ref:"exportFileType",name:"exportFileType",type:"hidden"}),m.createElement("input",{ref:"sessions",name:"sessions",type:"hidden"})),m.createElement("form",{ref:"importSessionsForm",encType:"multipart/form-data",style:{display:"none"}},m.createElement("input",{ref:"importSessions",onChange:this.uploadSessions,type:"file",name:"importSessions",accept:".txt,.json,.saz,.har"})),m.createElement("form",{ref:"importRulesForm",encType:"multipart/form-data",style:{display:"none"}},m.createElement("input",{ref:"importRules",onChange:this.uploadRulesForm,name:"rules",type:"file",accept:".txt,.json"})),m.createElement("form",{ref:"importValuesForm",encType:"multipart/form-data",style:{display:"none"}},m.createElement("input",{ref:"importValues",onChange:this.uploadValuesForm,name:"values",type:"file",accept:".txt,.json"})),m.createElement(F,{ref:"syncDialog"}))}});D.getInitialData(function(e){A.render(m.createElement(le,{modal:e}),document.getElementById("container"))})},function(e,t,n){var r=n(2);"string"==typeof r&&(r=[[e.id,r,""]]);n(4)(r,{});r.locals&&(e.exports=r.locals)},function(e,t,n){t=e.exports=n(3)(),t.push([e.id,".w-menu{height:30px;border-top:1px solid #fcfcfc;border-bottom:1px solid #ccc;background:#f1f3f4;padding-right:5pc;position:relative;z-index:1001}.w-history-bar a,.w-menu a{text-decoration:none!important;color:#000;padding:0 5px;line-height:26px;height:26px;margin-right:5px;display:inline-block}.w-menu a{height:27px;line-height:28px}.w-detail .glyphicon,.w-menu .glyphicon{margin-right:3px}.w-menu .glyphicon-folder-close,.w-menu .glyphicon-folder-open{margin-right:6px}.w-menu .w-online{position:absolute;right:0}.w-left-menu a:hover,.w-left-menu a:hover .w-disabled,.w-menu .w-online,.w-menu a:hover{color:#337ab7}.w-menu .w-offline{color:#ccc!important;cursor:default}.w-frames-action .w-disabled,.w-history-bar .w-disabled,.w-menu .w-disabled{color:#aaa!important;cursor:not-allowed!important}.w-left-menu .w-disabled{color:#aaa}.w-menu .w-new-version-icon{position:absolute;top:2px;left:17px;width:5px;height:5px;border-radius:5px;background:red}.w-menu .w-menu-wrapper{display:inline-block;position:relative;height:30px}.w-show-update-tips{font-weight:700}.w-input-menu-item{display:block;position:absolute;background:#fff;border:1px solid #ccc;border-radius:2px;z-index:101;top:30px;display:none;white-space:nowrap}.w-input-menu-item input{width:246px;height:2pc;border:1px solid #ccc;border-radius:0!important;border-radius:2px;padding:0 5px;vertical-align:middle}.w-input-menu-item .btn{height:2pc;padding:0 9pt;vertical-align:middle;border-radius:0;border-top-right-radius:2px;border-bottom-right-radius:2px;margin-left:1px;border-color:#ccc}.w-create-rules-input{left:310px}.w-create-values-input{left:300px}.w-edit-rules-input{left:382px}.w-edit-values-input{left:372px}.w-show-left-menu .w-create-rules-input{left:210px}.w-show-left-menu .w-create-values-input{left:200px}.w-show-left-menu .w-edit-rules-input{left:282px}.w-show-left-menu .w-edit-values-input{left:17pc}.w-menu-wrapper .w-menu-item{display:none!important}.w-menu-wrapper-show .w-menu-item{display:block!important}.w-values-list .glyphicon-ok{display:none!important}.w-values-list a{font-weight:400!important}.w-disabled .glyphicon-ok,.w-disabled .glyphicon-stop{color:#ccc!important}.w-rules-settings-dialog .modal-dialog{width:25pc}.w-values-settings-dialog .modal-dialog{width:300px}.w-show-update-tips-dialog .modal-dialog{width:21pc}.w-show-update-tips-dialog .modal-body p{margin-bottom:5px}.w-https-dialog .modal-dialog{width:340px}.w-https-help{margin-left:150px}.w-https-dialog .modal-dialog div{white-space:nowrap}.w-https-dialog a{display:inline-block}.w-download-rootca,.w-https-help{line-height:30px}.w-https-settings label{font-weight:400}.w-https-settings p{margin:10px 0}.w-is-link{cursor:pointer;text-decoration:underline}.w-choose-filte-type .modal-dialog{width:456px}.w-choose-filte-type-label{white-space:nowrap}.w-choose-filte-type-label .form-control{margin-left:10px;width:200px;display:inline-block;font-weight:400}.w-choose-filte-type-label select.form-control{margin:0 5px;width:5pc}.w-confirm-import-dialog .modal-dialog{width:20pc;font-weight:700}.w-show-left-menu-btn{padding:0 15px!important;margin-right:0!important}.w-left-menu{background:#f1f3f4;border-left:1px solid #ccc;border-right:1px solid #ccc;display:none}.w-show-left-menu .w-left-menu{display:block;border-left:none}.w-show-left-menu .w-nav-menu{display:none}.w-left-menu a{display:block;position:relative;padding:10px 0 8px;width:47px;overflow:hidden;text-align:center;text-decoration:none!important;color:#000}.w-left-menu a span{margin-right:5px}.w-left-menu a .w-left-menu-name{display:block;font-style:normal;font-size:9pt;zoom:1;transform:scale(0.8,0.8);width:65px;margin-left:-10px;white-space:nowrap}.w-left-menu-tips{padding:6px 10px;display:none;left:47px;top:3px;position:absolute;z-index:1;border-radius:4px}.w-left-menu a:hover .w-left-menu-tips{display:block;color:#000;background-color:#f1f3f4;font-weight:700;border:1px solid #ccc}.w-left-menu a .w-left-menu-tips:hover,.w-menu .w-export-menu,.w-menu .w-import-menu,.w-menu .w-remove-menu-list{display:none}.w-show-left-menu .w-export-menu,.w-show-left-menu .w-import-menu,.w-show-left-menu .w-remove-menu-list{display:inline-block}.w-menu-changed{position:absolute;top:2px;left:5px;color:red}.w-replay-count-dialog .modal-content{width:236px!important;white-space:nowrap}.w-replay-count-dialog .modal-dialog{width:236px!important}.w-replay-count-dialog .modal-content label{width:auto}.w-replay-count-dialog input{display:inline-block;width:5pc;text-align:center;margin:0 10px}.w-import-remote-dialog .modal-content{width:525px}.w-import-remote-dialog input{width:500px;height:30px;line-height:30px;padding:5px}.w-https-menu .glyphicon-lock{color:#9e9e26}.w-hover-left-menu{position:absolute;z-index:1;height:auto;border-bottom:1px solid #ccc;min-height:0}.w-menu .w-tree-view-active{color:#337ab7}.w-menu-selected{background-color:#ddd}.w-root-ca-type{width:75pt;float:right;margin:3px 15px 0 0;border:1px solid #ccc;border-radius:3px;height:24px;font-size:9pt;padding-left:8px}",""])},function(e,t){e.exports=function(){var e=[];return e.toString=function(){for(var e=[],t=0;t<this.length;t++){var n=this[t];n[2]?e.push("@media "+n[2]+"{"+n[1]+"}"):e.push(n[1])}return e.join("")},e.i=function(t,n){"string"==typeof t&&(t=[[null,t,""]]);for(var r={},o=0;o<this.length;o++){var i=this[o][0];"number"==typeof i&&(r[i]=!0)}for(o=0;o<t.length;o++){var a=t[o];"number"==typeof a[0]&&r[a[0]]||(n&&!a[2]?a[2]=n:n&&(a[2]="("+a[2]+") and ("+n+")"),e.push(a))}},e}},function(e,t,n){function r(e,t){for(var n=0;n<e.length;n++){var r=e[n],o=d[r.id];if(o){o.refs++;for(var i=0;i<o.parts.length;i++)o.parts[i](r.parts[i]);for(;i<r.parts.length;i++)o.parts.push(s(r.parts[i],t))}else{for(var a=[],i=0;i<r.parts.length;i++)a.push(s(r.parts[i],t));d[r.id]={id:r.id,refs:1,parts:a}}}}function o(e){for(var t=[],n={},r=0;r<e.length;r++){var o=e[r],i=o[0],a=o[1],s=o[2],l=o[3],c={css:a,media:s,sourceMap:l};n[i]?n[i].parts.push(c):t.push(n[i]={id:i,parts:[c]})}return t}function i(){var e=document.createElement("style"),t=f();return e.type="text/css",t.appendChild(e),e}function a(){var e=document.createElement("link"),t=f();return e.rel="stylesheet",t.appendChild(e),e}function s(e,t){var n,r,o;if(t.singleton){var s=m++;n=h||(h=i()),r=l.bind(null,n,s,!1),o=l.bind(null,n,s,!0)}else e.sourceMap&&"function"==typeof URL&&"function"==typeof URL.createObjectURL&&"function"==typeof URL.revokeObjectURL&&"function"==typeof Blob&&"function"==typeof btoa?(n=a(),r=u.bind(null,n),o=function(){n.parentNode.removeChild(n),n.href&&URL.revokeObjectURL(n.href)}):(n=i(),r=c.bind(null,n),o=function(){n.parentNode.removeChild(n)});return r(e),function(t){if(t){if(t.css===e.css&&t.media===e.media&&t.sourceMap===e.sourceMap)return;r(e=t)}else o()}}function l(e,t,n,r){var o=n?"":r.css;if(e.styleSheet)e.styleSheet.cssText=A(t,o);else{var i=document.createTextNode(o),a=e.childNodes;a[t]&&e.removeChild(a[t]),a.length?e.insertBefore(i,a[t]):e.appendChild(i)}}function c(e,t){var n=t.css,r=t.media;t.sourceMap;if(r&&e.setAttribute("media",r),e.styleSheet)e.styleSheet.cssText=n;else{for(;e.firstChild;)e.removeChild(e.firstChild);e.appendChild(document.createTextNode(n))}}function u(e,t){var n=t.css,r=(t.media,t.sourceMap);r&&(n+="\n/*# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(r))))+" */");var o=new Blob([n],{type:"text/css"}),i=e.href;e.href=URL.createObjectURL(o),i&&URL.revokeObjectURL(i)}var d={},p=function(e){var t;return function(){return"undefined"==typeof t&&(t=e.apply(this,arguments)),t}},g=p(function(){return/msie [6-9]\b/.test(window.navigator.userAgent.toLowerCase())}),f=p(function(){return document.head||document.getElementsByTagName("head")[0]}),h=null,m=0;e.exports=function(e,t){t=t||{},"undefined"==typeof t.singleton&&(t.singleton=g());var n=o(e);return r(n,t),function(e){for(var i=[],a=0;a<n.length;a++){var s=n[a],l=d[s.id];l.refs--,i.push(l)}if(e){var c=o(e);r(c,t)}for(var a=0;a<i.length;a++){var l=i[a];if(0===l.refs){for(var u=0;u<l.parts.length;u++)l.parts[u]();delete d[l.id]}}}};var A=function(){var e=[];return function(t,n){return e[t]=n,e.filter(Boolean).join("\n")}}()},function(e,t,n){var r,o;/*!
3
+ },className:"shadow w-input-menu-item w-create-values-input"},m.createElement("input",{ref:"createValuesInput",onKeyDown:this.createValues,onBlur:this.hideValuesInput,type:"text",maxLength:"64",placeholder:"Input the name"}),m.createElement("button",{type:"button",onClick:this.createValues,className:"btn btn-primary"},"+Key"),m.createElement("button",{type:"button",onClick:this.createValues,"data-type":"group",className:"btn btn-default"},"+Group")),m.createElement("div",{onMouseDown:this.preventBlur,style:{display:e.showEditRules?"block":"none"},className:"shadow w-input-menu-item w-edit-rules-input"},m.createElement("input",{ref:"editRulesInput",onKeyDown:this.editRules,onBlur:this.hideRenameRuleInput,type:"text",maxLength:"64"}),m.createElement("button",{type:"button",onClick:this.editRules,className:"btn btn-primary"},"OK")),m.createElement("div",{onMouseDown:this.preventBlur,style:{display:e.showEditValues?"block":"none"},className:"shadow w-input-menu-item w-edit-values-input"},m.createElement("input",{ref:"editValuesInput",onKeyDown:this.editValues,onBlur:this.hideRenameValueInput,type:"text",maxLength:"64"}),m.createElement("button",{type:"button",onClick:this.editValues,className:"btn btn-primary"},"OK"))),m.createElement("div",{className:"w-container box fill"},m.createElement(H,{onClick:this.onClickContextMenu,ref:"contextMenu"}),m.createElement("div",{onContextMenu:this.onContextMenu,onDoubleClick:this.onContextMenu,className:"w-left-menu"+(ue?" w-hover-left-menu":""),style:{display:t||he?"none":void 0},onMouseEnter:ue,onMouseLeave:de},m.createElement("a",{onClick:this.showNetwork,className:"w-network-menu"+("network"==a?" w-menu-selected":""),style:{display:n?"none":void 0},draggable:"false"},m.createElement("span",{className:"glyphicon glyphicon-"+ne}),m.createElement("i",{className:"w-left-menu-name"},"Network")),m.createElement("a",{onClick:this.showRules,className:"w-save-menu w-rules-menu"+("rules"==a?" w-menu-selected":""),style:{display:o?"none":void 0},draggable:"false"},m.createElement("span",{className:"glyphicon glyphicon-list"+(we?" w-disabled":"")}),m.createElement("i",{className:"w-left-menu-name"},"Rules"),m.createElement("i",{className:"w-menu-changed",style:{display:e.rules.hasChanged()?void 0:"none"}},"*")),m.createElement("a",{onClick:this.showValues,className:"w-save-menu w-values-menu"+("values"==a?" w-menu-selected":""),style:{display:o?"none":void 0},draggable:"false"},m.createElement("span",{className:"glyphicon glyphicon-folder-close"}),m.createElement("i",{className:"w-left-menu-name"},"Values"),m.createElement("i",{className:"w-menu-changed",style:{display:e.values.hasChanged()?void 0:"none"}},"*")),m.createElement("a",{onClick:this.showPlugins,className:"w-plugins-menu"+("plugins"==a?" w-menu-selected":""),style:{display:r||me?"none":void 0},draggable:"false"},m.createElement("span",{className:"glyphicon glyphicon-list-alt"+(Me?" w-disabled":"")}),m.createElement("i",{className:"w-left-menu-name"},"Plugins"))),e.hasRules?m.createElement(w,{ref:"rules",disabled:we,theme:h,lineWrapping:k,fontSize:M,lineNumbers:L,onSelect:this.selectRules,onUnselect:this.unselectRules,onActive:this.activeRules,modal:e.rules,hide:"rules"==a?!1:!0,name:"rules"}):void 0,e.hasValues?m.createElement(w,{theme:A,onDoubleClick:this.showEditValuesByDBClick,fontSize:b,lineWrapping:j,lineNumbers:S,onSelect:this.saveValues,onActive:this.activeValues,modal:e.values,hide:"values"==a?!1:!0,className:"w-values-list",foldGutter:e.foldGutter}):void 0,e.hasNetwork?m.createElement(y,{ref:"network",hide:"rules"===a||"values"===a||"plugins"===a,modal:$}):void 0,e.hasPlugins?m.createElement(E,d({},e,{onOpen:this.activePluginTab,onClose:this.closePluginTab,onActive:this.activePluginTab,onChange:this.disablePlugin,ref:"plugins",hide:"plugins"==a?!1:!0})):void 0),m.createElement("div",{ref:"rulesSettingsDialog",className:"modal fade w-rules-settings-dialog"},m.createElement("div",{className:"modal-dialog"},m.createElement("div",{className:"modal-content"},m.createElement("div",{className:"modal-body"},m.createElement("button",{type:"button",className:"close","data-dismiss":"modal","aria-label":"Close"},m.createElement("span",{"aria-hidden":"true"},"×")),m.createElement(C,{theme:h,fontSize:M,lineNumbers:L,lineWrapping:k,onLineWrappingChange:this.onRulesLineWrappingChange,onThemeChange:this.onRulesThemeChange,onFontSizeChange:this.onRulesFontSizeChange,onLineNumberChange:this.onRulesLineNumberChange}),!e.drb&&m.createElement("p",{className:"w-editor-settings-box"},m.createElement("label",null,m.createElement("input",{type:"checkbox",checked:e.backRulesFirst,onChange:this.enableBackRulesFirst})," ","Back rules first")),!e.drm&&m.createElement("p",{className:"w-editor-settings-box"},m.createElement("label",{style:{color:i?"#aaa":void 0}},m.createElement("input",{type:"checkbox",disabled:i,checked:!i&&e.allowMultipleChoice,onChange:this.allowMultipleChoice})," ","Use multiple rules"))),m.createElement("div",{className:"modal-footer"},m.createElement("button",{type:"button",className:"btn btn-default","data-dismiss":"modal"},"Close"))))),m.createElement("div",{ref:"valuesSettingsDialog",className:"modal fade w-values-settings-dialog"},m.createElement("div",{className:"modal-dialog"},m.createElement("div",{className:"modal-content"},m.createElement("div",{className:"modal-body"},m.createElement("button",{type:"button",className:"close","data-dismiss":"modal","aria-label":"Close"},m.createElement("span",{"aria-hidden":"true"},"×")),m.createElement(C,{theme:A,fontSize:b,lineNumbers:S,lineWrapping:j,onLineWrappingChange:this.onValuesLineWrappingChange,onThemeChange:this.onValuesThemeChange,onFontSizeChange:this.onValuesFontSizeChange,onLineNumberChange:this.onValuesLineNumberChange}),m.createElement("p",{className:"w-editor-settings-box"},m.createElement("label",null,m.createElement("input",{type:"checkbox",checked:e.foldGutter,onChange:this.showFoldGutter})," ","Show fold gutter"))),m.createElement("div",{className:"modal-footer"},m.createElement("button",{type:"button",className:"btn btn-default","data-dismiss":"modal"},"Close"))))),m.createElement(I,{ref:"networkSettings"}),m.createElement("div",{ref:"rootCADialog",className:"modal fade w-https-dialog"},m.createElement("div",{className:"modal-dialog"},m.createElement("div",{className:"modal-content"},m.createElement("div",{className:"modal-body"},m.createElement("button",{type:"button",className:"close","data-dismiss":"modal","aria-label":"Close"},m.createElement("span",{"aria-hidden":"true"},"×")),m.createElement("div",null,m.createElement("a",{className:"w-help-menu",title:"Click here to learn how to install root ca",href:"https://avwo.github.io/whistle/webui/https.html",target:"_blank"},m.createElement("span",{className:"glyphicon glyphicon-question-sign"})),m.createElement("a",{className:"w-download-rootca",title:Te,href:ve,target:"downloadTargetFrame"},"Download RootCA"),m.createElement("select",{className:"w-root-ca-type",value:be,onChange:this.selectCAType},m.createElement("option",{value:"crt"},"rootCA.crt"),m.createElement("option",{value:"cer"},"rootCA.cer"),m.createElement("option",{value:"pem"},"rootCA.pem"))),m.createElement("a",{title:Te,href:ve,target:"downloadTargetFrame"},m.createElement("img",{src:ye,width:"320"})),m.createElement("div",{className:"w-https-settings"},m.createElement("p",null,m.createElement("label",{title:i?"Use `pattern enable://capture` in rules to replace global configuration":void 0},m.createElement("input",{disabled:i,checked:e.interceptHttpsConnects,onChange:this.interceptHttpsConnects,type:"checkbox"})," ","Capture TUNNEL CONNECTs")),m.createElement("p",null,m.createElement("label",null,m.createElement("input",{checked:D.supportH2&&e.enableHttp2,onChange:this.enableHttp2,type:"checkbox"})," ","Enable HTTP/2")),m.createElement("a",{draggable:"false",style:{color:D.hasInvalidCerts?"red":void 0},onClick:this.showCustomCertsInfo},"View custom certs info"),m.createElement(V,{ref:"certsInfoDialog"}))),m.createElement("div",{className:"modal-footer"},m.createElement("button",{type:"button",className:"btn btn-default","data-dismiss":"modal"},"Close"))))),m.createElement("div",{ref:"chooseFileType",className:"modal fade w-choose-filte-type"},m.createElement("div",{className:"modal-dialog"},m.createElement("div",{className:"modal-content"},m.createElement("div",{className:"modal-body"},m.createElement("label",{className:"w-choose-filte-type-label"},"Save as:",m.createElement("input",{ref:"sessionsName",onKeyDown:this.exportBySave,placeholder:"Input the filename",className:"form-control",maxLength:"64"}),m.createElement("select",{ref:"fileType",className:"form-control",value:e.exportFileType,onChange:this.chooseFileType},m.createElement("option",{value:"whistle"},"*.txt"),m.createElement("option",{value:"Fiddler"},"*.saz"),m.createElement("option",{value:"har"},"*.har"))),m.createElement("a",{type:"button",onKeyDown:this.exportBySave,tabIndex:"0",onMouseDown:this.preventBlur,className:"btn btn-primary",onClick:this.exportBySave},"Export"))))),m.createElement(U,{ref:"setReplayCount",wstyle:"w-replay-count-dialog"},m.createElement("div",{className:"modal-body"},m.createElement("label",null,"Times:",m.createElement("input",{ref:"replayCount",placeholder:"<= "+K,onKeyDown:this.replayRepeat,onChange:this.replayCountChange,value:e.replayCount,className:"form-control",maxLength:"3"})),m.createElement("button",{type:"button",onKeyDown:this.replayRepeat,tabIndex:"0",onMouseDown:this.preventBlur,className:"btn btn-primary",disabled:!e.replayCount,onClick:this.replayRepeat},"Replay"))),m.createElement(U,{ref:"importRemoteRules",wstyle:"w-import-remote-dialog"},m.createElement("div",{className:"modal-body"},m.createElement("input",{readOnly:ge,ref:"rulesRemoteUrl",maxLength:"2048",onKeyDown:this.importRemoteRules,placeholder:"Input the url",style:{"ime-mode":"disabled"}})),m.createElement("div",{className:"modal-footer"},m.createElement("button",{type:"button",className:"btn btn-primary",disabled:ge,onMouseDown:this.preventBlur,onClick:this.importRemoteRules},ge?"Importing rules":"Import rules"),m.createElement("button",{type:"button",className:"btn btn-default","data-dismiss":"modal"},"Close"))),m.createElement(U,{ref:"importRemoteSessions",wstyle:"w-import-remote-dialog"},m.createElement("div",{className:"modal-body"},m.createElement("input",{readOnly:pe,ref:"sessionsRemoteUrl",maxLength:"2048",onKeyDown:this.importRemoteSessions,placeholder:"Input the url",style:{"ime-mode":"disabled"}})),m.createElement("div",{className:"modal-footer"},m.createElement("button",{type:"button",className:"btn btn-primary",disabled:pe,onMouseDown:this.preventBlur,onClick:this.importRemoteSessions},pe?"Importing sessions":"Import sessions"),m.createElement("button",{type:"button",className:"btn btn-default","data-dismiss":"modal"},"Close"))),m.createElement(U,{ref:"importRemoteValues",wstyle:"w-import-remote-dialog"},m.createElement("div",{className:"modal-body"},m.createElement("input",{readOnly:fe,ref:"valuesRemoteUrl",maxLength:"2048",onKeyDown:this.importRemoteValues,placeholder:"Input the url",style:{"ime-mode":"disabled"}})),m.createElement("div",{className:"modal-footer"},m.createElement("button",{type:"button",className:"btn btn-primary",disabled:fe,onMouseDown:this.preventBlur,onClick:this.importRemoteValues},fe?"Importing values":"Import values"),m.createElement("button",{type:"button",className:"btn btn-default","data-dismiss":"modal"},"Close"))),m.createElement("div",{ref:"showUpdateTipsDialog",className:"modal fade w-show-update-tips-dialog"},m.createElement("div",{className:"modal-dialog"},m.createElement("div",{className:"modal-content"},m.createElement("div",{className:"modal-body"},m.createElement("button",{type:"button",className:"close","data-dismiss":"modal","aria-label":"Close"},m.createElement("span",{"aria-hidden":"true"},"×")),m.createElement("p",{className:"w-show-update-tips"},"whistle has important updates, it is recommended that you update to the latest version."),m.createElement("p",null,"Current version: ",e.version),m.createElement("p",null,"The latest stable version: ",e.latestVersion),m.createElement("p",null,"View change:"," ",m.createElement("a",{title:"Change log",href:"https://github.com/avwo/whistle/blob/master/CHANGELOG.md",target:"_blank"},"CHANGELOG.md"))),m.createElement("div",{className:"modal-footer"},m.createElement("button",{type:"button",className:"btn btn-default",onClick:this.donotShowAgain,"data-dismiss":"modal"},"Don't show again"),m.createElement("a",{type:"button",className:"btn btn-primary",onClick:this.hideUpdateTipsDialog,href:"https://avwo.github.io/whistle/update.html",target:"_blank"},"Update now"))))),m.createElement(U,{ref:"confirmReload",wstyle:"w-confirm-reload-dialog"},m.createElement("div",{className:"modal-body w-confirm-reload"},m.createElement("button",{type:"button",className:"close","data-dismiss":"modal"},m.createElement("span",{"aria-hidden":"true"},"×")),m.createElement("div",{className:"w-reload-data-tips"})),m.createElement("div",{className:"modal-footer"},m.createElement("button",{type:"button",className:"btn btn-default","data-dismiss":"modal"},"No"),m.createElement("button",{type:"button",className:"btn btn-primary",onClick:this.reloadData,"data-dismiss":"modal"},"Yes"))),m.createElement(U,{ref:"confirmImportRules",wstyle:"w-confirm-import-dialog"},m.createElement("div",{className:"modal-body w-confirm-import"},m.createElement("button",{type:"button",className:"close","data-dismiss":"modal"},m.createElement("span",{"aria-hidden":"true"},"×")),"Whether to replace the existing rules?"),m.createElement("div",{className:"modal-footer"},m.createElement("button",{type:"button",className:"btn btn-danger",onClick:this.uploadRules,"data-dismiss":"modal"},"Replace"),m.createElement("button",{type:"button",className:"btn btn-primary",onClick:this.uploadRules,"data-dismiss":"modal"},"Reserve"))),m.createElement(U,{ref:"confirmImportValues",wstyle:"w-confirm-import-dialog"},m.createElement("div",{className:"modal-body w-confirm-import"},m.createElement("button",{type:"button",className:"close","data-dismiss":"modal"},m.createElement("span",{"aria-hidden":"true"},"×")),"Whether to replace the existing values?"),m.createElement("div",{className:"modal-footer"},m.createElement("button",{type:"button",className:"btn btn-danger",onClick:this.uploadValues,"data-dismiss":"modal"},"Replace"),m.createElement("button",{type:"button",className:"btn btn-primary",onClick:this.uploadValues,"data-dismiss":"modal"},"Reserve"))),m.createElement(z,{ref:"filesDialog"}),m.createElement(B,{ref:"selectRulesDialog",name:"rules",list:e.rules.list}),m.createElement(B,{ref:"selectValuesDialog",name:"values",list:e.values.list}),m.createElement("iframe",{name:"downloadTargetFrame",style:{display:"none"}}),m.createElement("form",{ref:"exportSessionsForm",action:"cgi-bin/sessions/export",style:{display:"none"},method:"post",target:"downloadTargetFrame"},m.createElement("input",{ref:"exportFilename",name:"exportFilename",type:"hidden"}),m.createElement("input",{ref:"exportFileType",name:"exportFileType",type:"hidden"}),m.createElement("input",{ref:"sessions",name:"sessions",type:"hidden"})),m.createElement("form",{ref:"importSessionsForm",encType:"multipart/form-data",style:{display:"none"}},m.createElement("input",{ref:"importSessions",onChange:this.uploadSessions,type:"file",name:"importSessions",accept:".txt,.json,.saz,.har"})),m.createElement("form",{ref:"importRulesForm",encType:"multipart/form-data",style:{display:"none"}},m.createElement("input",{ref:"importRules",onChange:this.uploadRulesForm,name:"rules",type:"file",accept:".txt,.json"})),m.createElement("form",{ref:"importValuesForm",encType:"multipart/form-data",style:{display:"none"}},m.createElement("input",{ref:"importValues",onChange:this.uploadValuesForm,name:"values",type:"file",accept:".txt,.json"})),m.createElement(F,{ref:"syncDialog"}))}});D.getInitialData(function(e){A.render(m.createElement(le,{modal:e}),document.getElementById("container"))})},function(e,t,n){var r=n(2);"string"==typeof r&&(r=[[e.id,r,""]]);n(4)(r,{});r.locals&&(e.exports=r.locals)},function(e,t,n){t=e.exports=n(3)(),t.push([e.id,".w-menu{height:30px;border-top:1px solid #fcfcfc;border-bottom:1px solid #ccc;background:#f1f3f4;padding-right:5pc;position:relative;z-index:1001}.w-history-bar a,.w-menu a{text-decoration:none!important;color:#000;padding:0 5px;line-height:26px;height:26px;margin-right:5px;display:inline-block}.w-menu a{height:27px;line-height:28px}.w-detail .glyphicon,.w-menu .glyphicon{margin-right:3px}.w-menu .glyphicon-folder-close,.w-menu .glyphicon-folder-open{margin-right:6px}.w-menu .w-online{position:absolute;right:0}.w-left-menu a:hover,.w-left-menu a:hover .w-disabled,.w-menu .w-online,.w-menu a:hover{color:#337ab7}.w-menu .w-offline{color:#ccc!important;cursor:default}.w-frames-action .w-disabled,.w-history-bar .w-disabled,.w-menu .w-disabled{color:#aaa!important;cursor:not-allowed!important}.w-left-menu .w-disabled{color:#aaa}.w-menu .w-menu-enable .glyphicon-cog{color:#f66!important}.w-menu .w-new-version-icon{position:absolute;top:2px;left:17px;width:5px;height:5px;border-radius:5px;background:red}.w-menu .w-menu-wrapper{display:inline-block;position:relative;height:30px}.w-show-update-tips{font-weight:700}.w-input-menu-item{display:block;position:absolute;background:#fff;border:1px solid #ccc;border-radius:2px;z-index:101;top:30px;display:none;white-space:nowrap}.w-input-menu-item input{width:246px;height:2pc;border:1px solid #ccc;border-radius:0!important;border-radius:2px;padding:0 5px;vertical-align:middle}.w-input-menu-item .btn{height:2pc;padding:0 9pt;vertical-align:middle;border-radius:0;border-top-right-radius:2px;border-bottom-right-radius:2px;margin-left:1px;border-color:#ccc}.w-create-rules-input{left:310px}.w-create-values-input{left:300px}.w-edit-rules-input{left:382px}.w-edit-values-input{left:372px}.w-show-left-menu .w-create-rules-input{left:210px}.w-show-left-menu .w-create-values-input{left:200px}.w-show-left-menu .w-edit-rules-input{left:282px}.w-show-left-menu .w-edit-values-input{left:17pc}.w-menu-wrapper .w-menu-item{display:none!important}.w-menu-wrapper-show .w-menu-item{display:block!important}.w-values-list .glyphicon-ok{display:none!important}.w-values-list a{font-weight:400!important}.w-disabled .glyphicon-ok,.w-disabled .glyphicon-stop{color:#ccc!important}.w-rules-settings-dialog .modal-dialog{width:25pc}.w-values-settings-dialog .modal-dialog{width:300px}.w-show-update-tips-dialog .modal-dialog{width:21pc}.w-show-update-tips-dialog .modal-body p{margin-bottom:5px}.w-https-dialog .modal-dialog{width:340px}.w-https-help{margin-left:150px}.w-https-dialog .modal-dialog div{white-space:nowrap}.w-https-dialog a{display:inline-block}.w-download-rootca,.w-https-help{line-height:30px}.w-https-settings label{font-weight:400}.w-https-settings p{margin:10px 0}.w-is-link{cursor:pointer;text-decoration:underline}.w-choose-filte-type .modal-dialog{width:456px}.w-choose-filte-type-label{white-space:nowrap}.w-choose-filte-type-label .form-control{margin-left:10px;width:200px;display:inline-block;font-weight:400}.w-choose-filte-type-label select.form-control{margin:0 5px;width:5pc}.w-confirm-import-dialog .modal-dialog{width:20pc;font-weight:700}.w-show-left-menu-btn{padding:0 15px!important;margin-right:0!important}.w-left-menu{background:#f1f3f4;border-left:1px solid #ccc;border-right:1px solid #ccc;display:none}.w-show-left-menu .w-left-menu{display:block;border-left:none}.w-show-left-menu .w-nav-menu{display:none}.w-left-menu a{display:block;position:relative;padding:10px 0 8px;width:47px;overflow:hidden;text-align:center;text-decoration:none!important;color:#000}.w-left-menu a span{margin-right:5px}.w-left-menu a .w-left-menu-name{display:block;font-style:normal;font-size:9pt;zoom:1;transform:scale(0.8,0.8);width:65px;margin-left:-10px;white-space:nowrap}.w-left-menu-tips{padding:6px 10px;display:none;left:47px;top:3px;position:absolute;z-index:1;border-radius:4px}.w-left-menu a:hover .w-left-menu-tips{display:block;color:#000;background-color:#f1f3f4;font-weight:700;border:1px solid #ccc}.w-left-menu a .w-left-menu-tips:hover,.w-menu .w-export-menu,.w-menu .w-import-menu,.w-menu .w-remove-menu-list{display:none}.w-show-left-menu .w-export-menu,.w-show-left-menu .w-import-menu,.w-show-left-menu .w-remove-menu-list{display:inline-block}.w-menu-changed{position:absolute;top:2px;left:5px;color:red}.w-replay-count-dialog .modal-content{width:236px!important;white-space:nowrap}.w-replay-count-dialog .modal-dialog{width:236px!important}.w-replay-count-dialog .modal-content label{width:auto}.w-replay-count-dialog input{display:inline-block;width:5pc;text-align:center;margin:0 10px}.w-import-remote-dialog .modal-content{width:525px}.w-import-remote-dialog input{width:500px;height:30px;line-height:30px;padding:5px}.w-https-menu .glyphicon-lock{color:#9e9e26}.w-hover-left-menu{position:absolute;z-index:1;height:auto;border-bottom:1px solid #ccc;min-height:0}.w-menu .w-tree-view-active{color:#337ab7}.w-menu-selected{background-color:#ddd}.w-root-ca-type{width:75pt;float:right;margin:3px 15px 0 0;border:1px solid #ccc;border-radius:3px;height:24px;font-size:9pt;padding-left:8px}",""])},function(e,t){e.exports=function(){var e=[];return e.toString=function(){for(var e=[],t=0;t<this.length;t++){var n=this[t];n[2]?e.push("@media "+n[2]+"{"+n[1]+"}"):e.push(n[1])}return e.join("")},e.i=function(t,n){"string"==typeof t&&(t=[[null,t,""]]);for(var r={},o=0;o<this.length;o++){var i=this[o][0];"number"==typeof i&&(r[i]=!0)}for(o=0;o<t.length;o++){var a=t[o];"number"==typeof a[0]&&r[a[0]]||(n&&!a[2]?a[2]=n:n&&(a[2]="("+a[2]+") and ("+n+")"),e.push(a))}},e}},function(e,t,n){function r(e,t){for(var n=0;n<e.length;n++){var r=e[n],o=d[r.id];if(o){o.refs++;for(var i=0;i<o.parts.length;i++)o.parts[i](r.parts[i]);for(;i<r.parts.length;i++)o.parts.push(s(r.parts[i],t))}else{for(var a=[],i=0;i<r.parts.length;i++)a.push(s(r.parts[i],t));d[r.id]={id:r.id,refs:1,parts:a}}}}function o(e){for(var t=[],n={},r=0;r<e.length;r++){var o=e[r],i=o[0],a=o[1],s=o[2],l=o[3],c={css:a,media:s,sourceMap:l};n[i]?n[i].parts.push(c):t.push(n[i]={id:i,parts:[c]})}return t}function i(){var e=document.createElement("style"),t=f();return e.type="text/css",t.appendChild(e),e}function a(){var e=document.createElement("link"),t=f();return e.rel="stylesheet",t.appendChild(e),e}function s(e,t){var n,r,o;if(t.singleton){var s=m++;n=h||(h=i()),r=l.bind(null,n,s,!1),o=l.bind(null,n,s,!0)}else e.sourceMap&&"function"==typeof URL&&"function"==typeof URL.createObjectURL&&"function"==typeof URL.revokeObjectURL&&"function"==typeof Blob&&"function"==typeof btoa?(n=a(),r=u.bind(null,n),o=function(){n.parentNode.removeChild(n),n.href&&URL.revokeObjectURL(n.href)}):(n=i(),r=c.bind(null,n),o=function(){n.parentNode.removeChild(n)});return r(e),function(t){if(t){if(t.css===e.css&&t.media===e.media&&t.sourceMap===e.sourceMap)return;r(e=t)}else o()}}function l(e,t,n,r){var o=n?"":r.css;if(e.styleSheet)e.styleSheet.cssText=A(t,o);else{var i=document.createTextNode(o),a=e.childNodes;a[t]&&e.removeChild(a[t]),a.length?e.insertBefore(i,a[t]):e.appendChild(i)}}function c(e,t){var n=t.css,r=t.media;t.sourceMap;if(r&&e.setAttribute("media",r),e.styleSheet)e.styleSheet.cssText=n;else{for(;e.firstChild;)e.removeChild(e.firstChild);e.appendChild(document.createTextNode(n))}}function u(e,t){var n=t.css,r=(t.media,t.sourceMap);r&&(n+="\n/*# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(r))))+" */");var o=new Blob([n],{type:"text/css"}),i=e.href;e.href=URL.createObjectURL(o),i&&URL.revokeObjectURL(i)}var d={},p=function(e){var t;return function(){return"undefined"==typeof t&&(t=e.apply(this,arguments)),t}},g=p(function(){return/msie [6-9]\b/.test(window.navigator.userAgent.toLowerCase())}),f=p(function(){return document.head||document.getElementsByTagName("head")[0]}),h=null,m=0;e.exports=function(e,t){t=t||{},"undefined"==typeof t.singleton&&(t.singleton=g());var n=o(e);return r(n,t),function(e){for(var i=[],a=0;a<n.length;a++){var s=n[a],l=d[s.id];l.refs--,i.push(l)}if(e){var c=o(e);r(c,t)}for(var a=0;a<i.length;a++){var l=i[a];if(0===l.refs){for(var u=0;u<l.parts.length;u++)l.parts[u]();delete d[l.id]}}}};var A=function(){var e=[];return function(t,n){return e[t]=n,e.filter(Boolean).join("\n")}}()},function(e,t,n){var r,o;/*!
4
4
  * jQuery JavaScript Library v3.3.1
5
5
  * https://jquery.com/
6
6
  *
@@ -99,6 +99,6 @@ var o=n(6),i=n(293),a=n(281),s=n(284),l=n(199),c=o.createClass({displayName:"Abo
99
99
  * Licensed under the MIT license
100
100
  */
101
101
  if("undefined"==typeof jQuery)throw new Error("Bootstrap's JavaScript requires jQuery");+function(e){"use strict";var t=e.fn.jquery.split(" ")[0].split(".");if(t[0]<2&&t[1]<9||1==t[0]&&9==t[1]&&t[2]<1)throw new Error("Bootstrap's JavaScript requires jQuery version 1.9.1 or higher")}(jQuery),+function(e){"use strict";function t(){var e=document.createElement("bootstrap"),t={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};for(var n in t)if(void 0!==e.style[n])return{end:t[n]};return!1}e.fn.emulateTransitionEnd=function(t){var n=!1,r=this;e(this).one("bsTransitionEnd",function(){n=!0});var o=function(){n||e(r).trigger(e.support.transition.end)};return setTimeout(o,t),this},e(function(){e.support.transition=t(),e.support.transition&&(e.event.special.bsTransitionEnd={bindType:e.support.transition.end,delegateType:e.support.transition.end,handle:function(t){return e(t.target).is(this)?t.handleObj.handler.apply(this,arguments):void 0}})})}(jQuery),+function(e){"use strict";function t(t){return this.each(function(){var n=e(this),o=n.data("bs.alert");o||n.data("bs.alert",o=new r(this)),"string"==typeof t&&o[t].call(n)})}var n='[data-dismiss="alert"]',r=function(t){e(t).on("click",n,this.close)};r.VERSION="3.3.5",r.TRANSITION_DURATION=150,r.prototype.close=function(t){function n(){a.detach().trigger("closed.bs.alert").remove()}var o=e(this),i=o.attr("data-target");i||(i=o.attr("href"),i=i&&i.replace(/.*(?=#[^\s]*$)/,""));var a=e(i);t&&t.preventDefault(),a.length||(a=o.closest(".alert")),a.trigger(t=e.Event("close.bs.alert")),t.isDefaultPrevented()||(a.removeClass("in"),e.support.transition&&a.hasClass("fade")?a.one("bsTransitionEnd",n).emulateTransitionEnd(r.TRANSITION_DURATION):n())};var o=e.fn.alert;e.fn.alert=t,e.fn.alert.Constructor=r,e.fn.alert.noConflict=function(){return e.fn.alert=o,this},e(document).on("click.bs.alert.data-api",n,r.prototype.close)}(jQuery),+function(e){"use strict";function t(t){return this.each(function(){var r=e(this),o=r.data("bs.button"),i="object"==typeof t&&t;o||r.data("bs.button",o=new n(this,i)),"toggle"==t?o.toggle():t&&o.setState(t)})}var n=function(t,r){this.$element=e(t),this.options=e.extend({},n.DEFAULTS,r),this.isLoading=!1};n.VERSION="3.3.5",n.DEFAULTS={loadingText:"loading..."},n.prototype.setState=function(t){var n="disabled",r=this.$element,o=r.is("input")?"val":"html",i=r.data();t+="Text",null==i.resetText&&r.data("resetText",r[o]()),setTimeout(e.proxy(function(){r[o](null==i[t]?this.options[t]:i[t]),"loadingText"==t?(this.isLoading=!0,r.addClass(n).attr(n,n)):this.isLoading&&(this.isLoading=!1,r.removeClass(n).removeAttr(n))},this),0)},n.prototype.toggle=function(){var e=!0,t=this.$element.closest('[data-toggle="buttons"]');if(t.length){var n=this.$element.find("input");"radio"==n.prop("type")?(n.prop("checked")&&(e=!1),t.find(".active").removeClass("active"),this.$element.addClass("active")):"checkbox"==n.prop("type")&&(n.prop("checked")!==this.$element.hasClass("active")&&(e=!1),this.$element.toggleClass("active")),n.prop("checked",this.$element.hasClass("active")),e&&n.trigger("change")}else this.$element.attr("aria-pressed",!this.$element.hasClass("active")),this.$element.toggleClass("active")};var r=e.fn.button;e.fn.button=t,e.fn.button.Constructor=n,e.fn.button.noConflict=function(){return e.fn.button=r,this},e(document).on("click.bs.button.data-api",'[data-toggle^="button"]',function(n){var r=e(n.target);r.hasClass("btn")||(r=r.closest(".btn")),t.call(r,"toggle"),e(n.target).is('input[type="radio"]')||e(n.target).is('input[type="checkbox"]')||n.preventDefault()}).on("focus.bs.button.data-api blur.bs.button.data-api",'[data-toggle^="button"]',function(t){e(t.target).closest(".btn").toggleClass("focus",/^focus(in)?$/.test(t.type))})}(jQuery),+function(e){"use strict";function t(t){return this.each(function(){var r=e(this),o=r.data("bs.carousel"),i=e.extend({},n.DEFAULTS,r.data(),"object"==typeof t&&t),a="string"==typeof t?t:i.slide;o||r.data("bs.carousel",o=new n(this,i)),"number"==typeof t?o.to(t):a?o[a]():i.interval&&o.pause().cycle()})}var n=function(t,n){this.$element=e(t),this.$indicators=this.$element.find(".carousel-indicators"),this.options=n,this.paused=null,this.sliding=null,this.interval=null,this.$active=null,this.$items=null,this.options.keyboard&&this.$element.on("keydown.bs.carousel",e.proxy(this.keydown,this)),"hover"==this.options.pause&&!("ontouchstart"in document.documentElement)&&this.$element.on("mouseenter.bs.carousel",e.proxy(this.pause,this)).on("mouseleave.bs.carousel",e.proxy(this.cycle,this))};n.VERSION="3.3.5",n.TRANSITION_DURATION=600,n.DEFAULTS={interval:5e3,pause:"hover",wrap:!0,keyboard:!0},n.prototype.keydown=function(e){if(!/input|textarea/i.test(e.target.tagName)){switch(e.which){case 37:this.prev();break;case 39:this.next();break;default:return}e.preventDefault()}},n.prototype.cycle=function(t){return t||(this.paused=!1),this.interval&&clearInterval(this.interval),this.options.interval&&!this.paused&&(this.interval=setInterval(e.proxy(this.next,this),this.options.interval)),this},n.prototype.getItemIndex=function(e){return this.$items=e.parent().children(".item"),this.$items.index(e||this.$active)},n.prototype.getItemForDirection=function(e,t){var n=this.getItemIndex(t),r="prev"==e&&0===n||"next"==e&&n==this.$items.length-1;if(r&&!this.options.wrap)return t;var o="prev"==e?-1:1,i=(n+o)%this.$items.length;return this.$items.eq(i)},n.prototype.to=function(e){var t=this,n=this.getItemIndex(this.$active=this.$element.find(".item.active"));return e>this.$items.length-1||0>e?void 0:this.sliding?this.$element.one("slid.bs.carousel",function(){t.to(e)}):n==e?this.pause().cycle():this.slide(e>n?"next":"prev",this.$items.eq(e))},n.prototype.pause=function(t){return t||(this.paused=!0),this.$element.find(".next, .prev").length&&e.support.transition&&(this.$element.trigger(e.support.transition.end),this.cycle(!0)),this.interval=clearInterval(this.interval),this},n.prototype.next=function(){return this.sliding?void 0:this.slide("next")},n.prototype.prev=function(){return this.sliding?void 0:this.slide("prev")},n.prototype.slide=function(t,r){var o=this.$element.find(".item.active"),i=r||this.getItemForDirection(t,o),a=this.interval,s="next"==t?"left":"right",l=this;if(i.hasClass("active"))return this.sliding=!1;var c=i[0],u=e.Event("slide.bs.carousel",{relatedTarget:c,direction:s});if(this.$element.trigger(u),!u.isDefaultPrevented()){if(this.sliding=!0,a&&this.pause(),this.$indicators.length){this.$indicators.find(".active").removeClass("active");var d=e(this.$indicators.children()[this.getItemIndex(i)]);d&&d.addClass("active")}var p=e.Event("slid.bs.carousel",{relatedTarget:c,direction:s});return e.support.transition&&this.$element.hasClass("slide")?(i.addClass(t),i[0].offsetWidth,o.addClass(s),i.addClass(s),o.one("bsTransitionEnd",function(){i.removeClass([t,s].join(" ")).addClass("active"),o.removeClass(["active",s].join(" ")),l.sliding=!1,setTimeout(function(){l.$element.trigger(p)},0)}).emulateTransitionEnd(n.TRANSITION_DURATION)):(o.removeClass("active"),i.addClass("active"),this.sliding=!1,this.$element.trigger(p)),a&&this.cycle(),this}};var r=e.fn.carousel;e.fn.carousel=t,e.fn.carousel.Constructor=n,e.fn.carousel.noConflict=function(){return e.fn.carousel=r,this};var o=function(n){var r,o=e(this),i=e(o.attr("data-target")||(r=o.attr("href"))&&r.replace(/.*(?=#[^\s]+$)/,""));if(i.hasClass("carousel")){var a=e.extend({},i.data(),o.data()),s=o.attr("data-slide-to");s&&(a.interval=!1),t.call(i,a),s&&i.data("bs.carousel").to(s),n.preventDefault()}};e(document).on("click.bs.carousel.data-api","[data-slide]",o).on("click.bs.carousel.data-api","[data-slide-to]",o),e(window).on("load",function(){e('[data-ride="carousel"]').each(function(){var n=e(this);t.call(n,n.data())})})}(jQuery),+function(e){"use strict";function t(t){var n,r=t.attr("data-target")||(n=t.attr("href"))&&n.replace(/.*(?=#[^\s]+$)/,"");return e(r)}function n(t){return this.each(function(){var n=e(this),o=n.data("bs.collapse"),i=e.extend({},r.DEFAULTS,n.data(),"object"==typeof t&&t);!o&&i.toggle&&/show|hide/.test(t)&&(i.toggle=!1),o||n.data("bs.collapse",o=new r(this,i)),"string"==typeof t&&o[t]()})}var r=function(t,n){this.$element=e(t),this.options=e.extend({},r.DEFAULTS,n),this.$trigger=e('[data-toggle="collapse"][href="#'+t.id+'"],[data-toggle="collapse"][data-target="#'+t.id+'"]'),this.transitioning=null,this.options.parent?this.$parent=this.getParent():this.addAriaAndCollapsedClass(this.$element,this.$trigger),this.options.toggle&&this.toggle()};r.VERSION="3.3.5",r.TRANSITION_DURATION=350,r.DEFAULTS={toggle:!0},r.prototype.dimension=function(){var e=this.$element.hasClass("width");return e?"width":"height"},r.prototype.show=function(){if(!this.transitioning&&!this.$element.hasClass("in")){var t,o=this.$parent&&this.$parent.children(".panel").children(".in, .collapsing");if(!(o&&o.length&&(t=o.data("bs.collapse"),t&&t.transitioning))){var i=e.Event("show.bs.collapse");if(this.$element.trigger(i),!i.isDefaultPrevented()){o&&o.length&&(n.call(o,"hide"),t||o.data("bs.collapse",null));var a=this.dimension();this.$element.removeClass("collapse").addClass("collapsing")[a](0).attr("aria-expanded",!0),this.$trigger.removeClass("collapsed").attr("aria-expanded",!0),this.transitioning=1;var s=function(){this.$element.removeClass("collapsing").addClass("collapse in")[a](""),this.transitioning=0,this.$element.trigger("shown.bs.collapse")};if(!e.support.transition)return s.call(this);var l=e.camelCase(["scroll",a].join("-"));this.$element.one("bsTransitionEnd",e.proxy(s,this)).emulateTransitionEnd(r.TRANSITION_DURATION)[a](this.$element[0][l])}}}},r.prototype.hide=function(){if(!this.transitioning&&this.$element.hasClass("in")){var t=e.Event("hide.bs.collapse");if(this.$element.trigger(t),!t.isDefaultPrevented()){var n=this.dimension();this.$element[n](this.$element[n]())[0].offsetHeight,this.$element.addClass("collapsing").removeClass("collapse in").attr("aria-expanded",!1),this.$trigger.addClass("collapsed").attr("aria-expanded",!1),this.transitioning=1;var o=function(){this.transitioning=0,this.$element.removeClass("collapsing").addClass("collapse").trigger("hidden.bs.collapse")};return e.support.transition?void this.$element[n](0).one("bsTransitionEnd",e.proxy(o,this)).emulateTransitionEnd(r.TRANSITION_DURATION):o.call(this)}}},r.prototype.toggle=function(){this[this.$element.hasClass("in")?"hide":"show"]()},r.prototype.getParent=function(){return e(this.options.parent).find('[data-toggle="collapse"][data-parent="'+this.options.parent+'"]').each(e.proxy(function(n,r){var o=e(r);this.addAriaAndCollapsedClass(t(o),o)},this)).end()},r.prototype.addAriaAndCollapsedClass=function(e,t){var n=e.hasClass("in");e.attr("aria-expanded",n),t.toggleClass("collapsed",!n).attr("aria-expanded",n)};var o=e.fn.collapse;e.fn.collapse=n,e.fn.collapse.Constructor=r,e.fn.collapse.noConflict=function(){return e.fn.collapse=o,this},e(document).on("click.bs.collapse.data-api",'[data-toggle="collapse"]',function(r){var o=e(this);o.attr("data-target")||r.preventDefault();var i=t(o),a=i.data("bs.collapse"),s=a?"toggle":o.data();n.call(i,s)})}(jQuery),+function(e){"use strict";function t(t){var n=t.attr("data-target");n||(n=t.attr("href"),n=n&&/#[A-Za-z]/.test(n)&&n.replace(/.*(?=#[^\s]*$)/,""));var r=n&&e(n);return r&&r.length?r:t.parent()}function n(n){n&&3===n.which||(e(o).remove(),e(i).each(function(){var r=e(this),o=t(r),i={relatedTarget:this};o.hasClass("open")&&(n&&"click"==n.type&&/input|textarea/i.test(n.target.tagName)&&e.contains(o[0],n.target)||(o.trigger(n=e.Event("hide.bs.dropdown",i)),n.isDefaultPrevented()||(r.attr("aria-expanded","false"),o.removeClass("open").trigger("hidden.bs.dropdown",i))))}))}function r(t){return this.each(function(){var n=e(this),r=n.data("bs.dropdown");r||n.data("bs.dropdown",r=new a(this)),"string"==typeof t&&r[t].call(n)})}var o=".dropdown-backdrop",i='[data-toggle="dropdown"]',a=function(t){e(t).on("click.bs.dropdown",this.toggle)};a.VERSION="3.3.5",a.prototype.toggle=function(r){var o=e(this);if(!o.is(".disabled, :disabled")){var i=t(o),a=i.hasClass("open");if(n(),!a){"ontouchstart"in document.documentElement&&!i.closest(".navbar-nav").length&&e(document.createElement("div")).addClass("dropdown-backdrop").insertAfter(e(this)).on("click",n);var s={relatedTarget:this};if(i.trigger(r=e.Event("show.bs.dropdown",s)),r.isDefaultPrevented())return;o.trigger("focus").attr("aria-expanded","true"),i.toggleClass("open").trigger("shown.bs.dropdown",s)}return!1}},a.prototype.keydown=function(n){if(/(38|40|27|32)/.test(n.which)&&!/input|textarea/i.test(n.target.tagName)){var r=e(this);if(n.preventDefault(),n.stopPropagation(),!r.is(".disabled, :disabled")){var o=t(r),a=o.hasClass("open");if(!a&&27!=n.which||a&&27==n.which)return 27==n.which&&o.find(i).trigger("focus"),r.trigger("click");var s=" li:not(.disabled):visible a",l=o.find(".dropdown-menu"+s);if(l.length){var c=l.index(n.target);38==n.which&&c>0&&c--,40==n.which&&c<l.length-1&&c++,~c||(c=0),l.eq(c).trigger("focus")}}}};var s=e.fn.dropdown;e.fn.dropdown=r,e.fn.dropdown.Constructor=a,e.fn.dropdown.noConflict=function(){return e.fn.dropdown=s,this},e(document).on("click.bs.dropdown.data-api",n).on("click.bs.dropdown.data-api",".dropdown form",function(e){e.stopPropagation()}).on("click.bs.dropdown.data-api",i,a.prototype.toggle).on("keydown.bs.dropdown.data-api",i,a.prototype.keydown).on("keydown.bs.dropdown.data-api",".dropdown-menu",a.prototype.keydown)}(jQuery),+function(e){"use strict";function t(t,r){return this.each(function(){var o=e(this),i=o.data("bs.modal"),a=e.extend({},n.DEFAULTS,o.data(),"object"==typeof t&&t);i||o.data("bs.modal",i=new n(this,a)),"string"==typeof t?i[t](r):a.show&&i.show(r)})}var n=function(t,n){this.options=n,this.$body=e(document.body),this.$element=e(t),this.$dialog=this.$element.find(".modal-dialog"),this.$backdrop=null,this.isShown=null,this.originalBodyPad=null,this.scrollbarWidth=0,this.ignoreBackdropClick=!1,this.options.remote&&this.$element.find(".modal-content").load(this.options.remote,e.proxy(function(){this.$element.trigger("loaded.bs.modal")},this))};n.VERSION="3.3.5",n.TRANSITION_DURATION=300,n.BACKDROP_TRANSITION_DURATION=150,n.DEFAULTS={backdrop:!0,keyboard:!0,show:!0},n.prototype.toggle=function(e){return this.isShown?this.hide():this.show(e)},n.prototype.show=function(t){var r=this,o=e.Event("show.bs.modal",{relatedTarget:t});this.$element.trigger(o),this.isShown||o.isDefaultPrevented()||(this.isShown=!0,this.checkScrollbar(),this.setScrollbar(),this.$body.addClass("modal-open"),this.escape(),this.resize(),this.$element.on("click.dismiss.bs.modal",'[data-dismiss="modal"]',e.proxy(this.hide,this)),this.$dialog.on("mousedown.dismiss.bs.modal",function(){r.$element.one("mouseup.dismiss.bs.modal",function(t){e(t.target).is(r.$element)&&(r.ignoreBackdropClick=!0)})}),this.backdrop(function(){var o=e.support.transition&&r.$element.hasClass("fade");r.$element.parent().length||r.$element.appendTo(r.$body),r.$element.show().scrollTop(0),r.adjustDialog(),o&&r.$element[0].offsetWidth,r.$element.addClass("in"),r.enforceFocus();var i=e.Event("shown.bs.modal",{relatedTarget:t});o?r.$dialog.one("bsTransitionEnd",function(){r.$element.trigger("focus").trigger(i)}).emulateTransitionEnd(n.TRANSITION_DURATION):r.$element.trigger("focus").trigger(i)}))},n.prototype.hide=function(t){t&&t.preventDefault(),t=e.Event("hide.bs.modal"),this.$element.trigger(t),this.isShown&&!t.isDefaultPrevented()&&(this.isShown=!1,this.escape(),this.resize(),e(document).off("focusin.bs.modal"),this.$element.removeClass("in").off("click.dismiss.bs.modal").off("mouseup.dismiss.bs.modal"),this.$dialog.off("mousedown.dismiss.bs.modal"),e.support.transition&&this.$element.hasClass("fade")?this.$element.one("bsTransitionEnd",e.proxy(this.hideModal,this)).emulateTransitionEnd(n.TRANSITION_DURATION):this.hideModal())},n.prototype.enforceFocus=function(){e(document).off("focusin.bs.modal").on("focusin.bs.modal",e.proxy(function(e){this.$element[0]===e.target||this.$element.has(e.target).length||this.$element.trigger("focus")},this))},n.prototype.escape=function(){this.isShown&&this.options.keyboard?this.$element.on("keydown.dismiss.bs.modal",e.proxy(function(e){27==e.which&&this.hide()},this)):this.isShown||this.$element.off("keydown.dismiss.bs.modal")},n.prototype.resize=function(){this.isShown?e(window).on("resize.bs.modal",e.proxy(this.handleUpdate,this)):e(window).off("resize.bs.modal")},n.prototype.hideModal=function(){var e=this;this.$element.hide(),this.backdrop(function(){e.$body.removeClass("modal-open"),e.resetAdjustments(),e.resetScrollbar(),e.$element.trigger("hidden.bs.modal")})},n.prototype.removeBackdrop=function(){this.$backdrop&&this.$backdrop.remove(),this.$backdrop=null},n.prototype.backdrop=function(t){var r=this,o=this.$element.hasClass("fade")?"fade":"";if(this.isShown&&this.options.backdrop){var i=e.support.transition&&o;if(this.$backdrop=e(document.createElement("div")).addClass("modal-backdrop "+o).appendTo(this.$body),this.$element.on("click.dismiss.bs.modal",e.proxy(function(e){return this.ignoreBackdropClick?void(this.ignoreBackdropClick=!1):void(e.target===e.currentTarget&&("static"==this.options.backdrop?this.$element[0].focus():this.hide()))},this)),i&&this.$backdrop[0].offsetWidth,this.$backdrop.addClass("in"),!t)return;i?this.$backdrop.one("bsTransitionEnd",t).emulateTransitionEnd(n.BACKDROP_TRANSITION_DURATION):t()}else if(!this.isShown&&this.$backdrop){this.$backdrop.removeClass("in");var a=function(){r.removeBackdrop(),t&&t()};e.support.transition&&this.$element.hasClass("fade")?this.$backdrop.one("bsTransitionEnd",a).emulateTransitionEnd(n.BACKDROP_TRANSITION_DURATION):a()}else t&&t()},n.prototype.handleUpdate=function(){this.adjustDialog()},n.prototype.adjustDialog=function(){var e=this.$element[0].scrollHeight>document.documentElement.clientHeight;this.$element.css({paddingLeft:!this.bodyIsOverflowing&&e?this.scrollbarWidth:"",paddingRight:this.bodyIsOverflowing&&!e?this.scrollbarWidth:""})},n.prototype.resetAdjustments=function(){this.$element.css({paddingLeft:"",paddingRight:""})},n.prototype.checkScrollbar=function(){var e=window.innerWidth;if(!e){var t=document.documentElement.getBoundingClientRect();e=t.right-Math.abs(t.left)}this.bodyIsOverflowing=document.body.clientWidth<e,this.scrollbarWidth=this.measureScrollbar()},n.prototype.setScrollbar=function(){var e=parseInt(this.$body.css("padding-right")||0,10);this.originalBodyPad=document.body.style.paddingRight||"",this.bodyIsOverflowing&&this.$body.css("padding-right",e+this.scrollbarWidth)},n.prototype.resetScrollbar=function(){this.$body.css("padding-right",this.originalBodyPad)},n.prototype.measureScrollbar=function(){var e=document.createElement("div");e.className="modal-scrollbar-measure",this.$body.append(e);var t=e.offsetWidth-e.clientWidth;return this.$body[0].removeChild(e),t};var r=e.fn.modal;e.fn.modal=t,e.fn.modal.Constructor=n,e.fn.modal.noConflict=function(){return e.fn.modal=r,this},e(document).on("click.bs.modal.data-api",'[data-toggle="modal"]',function(n){var r=e(this),o=r.attr("href"),i=e(r.attr("data-target")||o&&o.replace(/.*(?=#[^\s]+$)/,"")),a=i.data("bs.modal")?"toggle":e.extend({remote:!/#/.test(o)&&o},i.data(),r.data());r.is("a")&&n.preventDefault(),i.one("show.bs.modal",function(e){e.isDefaultPrevented()||i.one("hidden.bs.modal",function(){r.is(":visible")&&r.trigger("focus")})}),t.call(i,a,this)})}(jQuery),+function(e){"use strict";function t(t){return this.each(function(){var r=e(this),o=r.data("bs.tooltip"),i="object"==typeof t&&t;(o||!/destroy|hide/.test(t))&&(o||r.data("bs.tooltip",o=new n(this,i)),"string"==typeof t&&o[t]())})}var n=function(e,t){this.type=null,this.options=null,this.enabled=null,this.timeout=null,this.hoverState=null,this.$element=null,this.inState=null,this.init("tooltip",e,t)};n.VERSION="3.3.5",n.TRANSITION_DURATION=150,n.DEFAULTS={animation:!0,placement:"top",selector:!1,template:'<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',trigger:"hover focus",title:"",delay:0,html:!1,container:!1,viewport:{selector:"body",padding:0}},n.prototype.init=function(t,n,r){if(this.enabled=!0,this.type=t,this.$element=e(n),this.options=this.getOptions(r),this.$viewport=this.options.viewport&&e(e.isFunction(this.options.viewport)?this.options.viewport.call(this,this.$element):this.options.viewport.selector||this.options.viewport),this.inState={click:!1,hover:!1,focus:!1},this.$element[0]instanceof document.constructor&&!this.options.selector)throw new Error("`selector` option must be specified when initializing "+this.type+" on the window.document object!");for(var o=this.options.trigger.split(" "),i=o.length;i--;){var a=o[i];if("click"==a)this.$element.on("click."+this.type,this.options.selector,e.proxy(this.toggle,this));else if("manual"!=a){var s="hover"==a?"mouseenter":"focusin",l="hover"==a?"mouseleave":"focusout";this.$element.on(s+"."+this.type,this.options.selector,e.proxy(this.enter,this)),this.$element.on(l+"."+this.type,this.options.selector,e.proxy(this.leave,this))}}this.options.selector?this._options=e.extend({},this.options,{trigger:"manual",selector:""}):this.fixTitle()},n.prototype.getDefaults=function(){return n.DEFAULTS},n.prototype.getOptions=function(t){return t=e.extend({},this.getDefaults(),this.$element.data(),t),t.delay&&"number"==typeof t.delay&&(t.delay={show:t.delay,hide:t.delay}),t},n.prototype.getDelegateOptions=function(){var t={},n=this.getDefaults();return this._options&&e.each(this._options,function(e,r){n[e]!=r&&(t[e]=r)}),t},n.prototype.enter=function(t){var n=t instanceof this.constructor?t:e(t.currentTarget).data("bs."+this.type);return n||(n=new this.constructor(t.currentTarget,this.getDelegateOptions()),e(t.currentTarget).data("bs."+this.type,n)),t instanceof e.Event&&(n.inState["focusin"==t.type?"focus":"hover"]=!0),n.tip().hasClass("in")||"in"==n.hoverState?void(n.hoverState="in"):(clearTimeout(n.timeout),n.hoverState="in",n.options.delay&&n.options.delay.show?void(n.timeout=setTimeout(function(){"in"==n.hoverState&&n.show()},n.options.delay.show)):n.show())},n.prototype.isInStateTrue=function(){for(var e in this.inState)if(this.inState[e])return!0;return!1},n.prototype.leave=function(t){var n=t instanceof this.constructor?t:e(t.currentTarget).data("bs."+this.type);return n||(n=new this.constructor(t.currentTarget,this.getDelegateOptions()),e(t.currentTarget).data("bs."+this.type,n)),t instanceof e.Event&&(n.inState["focusout"==t.type?"focus":"hover"]=!1),n.isInStateTrue()?void 0:(clearTimeout(n.timeout),n.hoverState="out",n.options.delay&&n.options.delay.hide?void(n.timeout=setTimeout(function(){"out"==n.hoverState&&n.hide()},n.options.delay.hide)):n.hide())},n.prototype.show=function(){var t=e.Event("show.bs."+this.type);if(this.hasContent()&&this.enabled){this.$element.trigger(t);var r=e.contains(this.$element[0].ownerDocument.documentElement,this.$element[0]);if(t.isDefaultPrevented()||!r)return;var o=this,i=this.tip(),a=this.getUID(this.type);this.setContent(),i.attr("id",a),this.$element.attr("aria-describedby",a),this.options.animation&&i.addClass("fade");var s="function"==typeof this.options.placement?this.options.placement.call(this,i[0],this.$element[0]):this.options.placement,l=/\s?auto?\s?/i,c=l.test(s);c&&(s=s.replace(l,"")||"top"),i.detach().css({top:0,left:0,display:"block"}).addClass(s).data("bs."+this.type,this),this.options.container?i.appendTo(this.options.container):i.insertAfter(this.$element),this.$element.trigger("inserted.bs."+this.type);var u=this.getPosition(),d=i[0].offsetWidth,p=i[0].offsetHeight;if(c){var g=s,f=this.getPosition(this.$viewport);s="bottom"==s&&u.bottom+p>f.bottom?"top":"top"==s&&u.top-p<f.top?"bottom":"right"==s&&u.right+d>f.width?"left":"left"==s&&u.left-d<f.left?"right":s,i.removeClass(g).addClass(s)}var h=this.getCalculatedOffset(s,u,d,p);this.applyPlacement(h,s);var m=function(){var e=o.hoverState;o.$element.trigger("shown.bs."+o.type),o.hoverState=null,"out"==e&&o.leave(o)};e.support.transition&&this.$tip.hasClass("fade")?i.one("bsTransitionEnd",m).emulateTransitionEnd(n.TRANSITION_DURATION):m()}},n.prototype.applyPlacement=function(t,n){var r=this.tip(),o=r[0].offsetWidth,i=r[0].offsetHeight,a=parseInt(r.css("margin-top"),10),s=parseInt(r.css("margin-left"),10);isNaN(a)&&(a=0),isNaN(s)&&(s=0),t.top+=a,t.left+=s,e.offset.setOffset(r[0],e.extend({using:function(e){r.css({top:Math.round(e.top),left:Math.round(e.left)})}},t),0),r.addClass("in");var l=r[0].offsetWidth,c=r[0].offsetHeight;"top"==n&&c!=i&&(t.top=t.top+i-c);var u=this.getViewportAdjustedDelta(n,t,l,c);u.left?t.left+=u.left:t.top+=u.top;var d=/top|bottom/.test(n),p=d?2*u.left-o+l:2*u.top-i+c,g=d?"offsetWidth":"offsetHeight";r.offset(t),this.replaceArrow(p,r[0][g],d)},n.prototype.replaceArrow=function(e,t,n){this.arrow().css(n?"left":"top",50*(1-e/t)+"%").css(n?"top":"left","")},n.prototype.setContent=function(){var e=this.tip(),t=this.getTitle();e.find(".tooltip-inner")[this.options.html?"html":"text"](t),e.removeClass("fade in top bottom left right")},n.prototype.hide=function(t){function r(){"in"!=o.hoverState&&i.detach(),o.$element.removeAttr("aria-describedby").trigger("hidden.bs."+o.type),t&&t()}var o=this,i=e(this.$tip),a=e.Event("hide.bs."+this.type);return this.$element.trigger(a),a.isDefaultPrevented()?void 0:(i.removeClass("in"),e.support.transition&&i.hasClass("fade")?i.one("bsTransitionEnd",r).emulateTransitionEnd(n.TRANSITION_DURATION):r(),this.hoverState=null,this)},n.prototype.fixTitle=function(){var e=this.$element;(e.attr("title")||"string"!=typeof e.attr("data-original-title"))&&e.attr("data-original-title",e.attr("title")||"").attr("title","")},n.prototype.hasContent=function(){return this.getTitle()},n.prototype.getPosition=function(t){t=t||this.$element;var n=t[0],r="BODY"==n.tagName,o=n.getBoundingClientRect();null==o.width&&(o=e.extend({},o,{width:o.right-o.left,height:o.bottom-o.top}));var i=r?{top:0,left:0}:t.offset(),a={scroll:r?document.documentElement.scrollTop||document.body.scrollTop:t.scrollTop()},s=r?{width:e(window).width(),height:e(window).height()}:null;return e.extend({},o,a,s,i)},n.prototype.getCalculatedOffset=function(e,t,n,r){return"bottom"==e?{top:t.top+t.height,left:t.left+t.width/2-n/2}:"top"==e?{top:t.top-r,left:t.left+t.width/2-n/2}:"left"==e?{top:t.top+t.height/2-r/2,left:t.left-n}:{top:t.top+t.height/2-r/2,left:t.left+t.width}},n.prototype.getViewportAdjustedDelta=function(e,t,n,r){var o={top:0,left:0};if(!this.$viewport)return o;var i=this.options.viewport&&this.options.viewport.padding||0,a=this.getPosition(this.$viewport);if(/right|left/.test(e)){var s=t.top-i-a.scroll,l=t.top+i-a.scroll+r;s<a.top?o.top=a.top-s:l>a.top+a.height&&(o.top=a.top+a.height-l)}else{var c=t.left-i,u=t.left+i+n;c<a.left?o.left=a.left-c:u>a.right&&(o.left=a.left+a.width-u)}return o},n.prototype.getTitle=function(){var e,t=this.$element,n=this.options;return e=t.attr("data-original-title")||("function"==typeof n.title?n.title.call(t[0]):n.title)},n.prototype.getUID=function(e){do e+=~~(1e6*Math.random());while(document.getElementById(e));return e},n.prototype.tip=function(){if(!this.$tip&&(this.$tip=e(this.options.template),1!=this.$tip.length))throw new Error(this.type+" `template` option must consist of exactly 1 top-level element!");return this.$tip},n.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".tooltip-arrow")},n.prototype.enable=function(){this.enabled=!0},n.prototype.disable=function(){this.enabled=!1},n.prototype.toggleEnabled=function(){this.enabled=!this.enabled},n.prototype.toggle=function(t){var n=this;t&&(n=e(t.currentTarget).data("bs."+this.type),n||(n=new this.constructor(t.currentTarget,this.getDelegateOptions()),e(t.currentTarget).data("bs."+this.type,n))),t?(n.inState.click=!n.inState.click,n.isInStateTrue()?n.enter(n):n.leave(n)):n.tip().hasClass("in")?n.leave(n):n.enter(n)},n.prototype.destroy=function(){var e=this;clearTimeout(this.timeout),this.hide(function(){e.$element.off("."+e.type).removeData("bs."+e.type),e.$tip&&e.$tip.detach(),e.$tip=null,e.$arrow=null,e.$viewport=null})};var r=e.fn.tooltip;e.fn.tooltip=t,e.fn.tooltip.Constructor=n,e.fn.tooltip.noConflict=function(){return e.fn.tooltip=r,this}}(jQuery),+function(e){"use strict";function t(t){return this.each(function(){var r=e(this),o=r.data("bs.popover"),i="object"==typeof t&&t;(o||!/destroy|hide/.test(t))&&(o||r.data("bs.popover",o=new n(this,i)),"string"==typeof t&&o[t]())})}var n=function(e,t){this.init("popover",e,t)};if(!e.fn.tooltip)throw new Error("Popover requires tooltip.js");n.VERSION="3.3.5",n.DEFAULTS=e.extend({},e.fn.tooltip.Constructor.DEFAULTS,{placement:"right",trigger:"click",content:"",template:'<div class="popover" role="tooltip"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>'}),n.prototype=e.extend({},e.fn.tooltip.Constructor.prototype),n.prototype.constructor=n,n.prototype.getDefaults=function(){return n.DEFAULTS},n.prototype.setContent=function(){var e=this.tip(),t=this.getTitle(),n=this.getContent();e.find(".popover-title")[this.options.html?"html":"text"](t),e.find(".popover-content").children().detach().end()[this.options.html?"string"==typeof n?"html":"append":"text"](n),e.removeClass("fade top bottom left right in"),e.find(".popover-title").html()||e.find(".popover-title").hide()},n.prototype.hasContent=function(){return this.getTitle()||this.getContent()},n.prototype.getContent=function(){var e=this.$element,t=this.options;return e.attr("data-content")||("function"==typeof t.content?t.content.call(e[0]):t.content)},n.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".arrow")};var r=e.fn.popover;e.fn.popover=t,e.fn.popover.Constructor=n,e.fn.popover.noConflict=function(){return e.fn.popover=r,this}}(jQuery),+function(e){"use strict";function t(n,r){this.$body=e(document.body),this.$scrollElement=e(e(n).is(document.body)?window:n),this.options=e.extend({},t.DEFAULTS,r),this.selector=(this.options.target||"")+" .nav li > a",this.offsets=[],this.targets=[],this.activeTarget=null,this.scrollHeight=0,this.$scrollElement.on("scroll.bs.scrollspy",e.proxy(this.process,this)),this.refresh(),this.process()}function n(n){return this.each(function(){var r=e(this),o=r.data("bs.scrollspy"),i="object"==typeof n&&n;o||r.data("bs.scrollspy",o=new t(this,i)),"string"==typeof n&&o[n]()})}t.VERSION="3.3.5",t.DEFAULTS={offset:10},t.prototype.getScrollHeight=function(){return this.$scrollElement[0].scrollHeight||Math.max(this.$body[0].scrollHeight,document.documentElement.scrollHeight)},t.prototype.refresh=function(){var t=this,n="offset",r=0;this.offsets=[],this.targets=[],this.scrollHeight=this.getScrollHeight(),e.isWindow(this.$scrollElement[0])||(n="position",r=this.$scrollElement.scrollTop()),this.$body.find(this.selector).map(function(){var t=e(this),o=t.data("target")||t.attr("href"),i=/^#./.test(o)&&e(o);return i&&i.length&&i.is(":visible")&&[[i[n]().top+r,o]]||null}).sort(function(e,t){return e[0]-t[0]}).each(function(){t.offsets.push(this[0]),t.targets.push(this[1])})},t.prototype.process=function(){var e,t=this.$scrollElement.scrollTop()+this.options.offset,n=this.getScrollHeight(),r=this.options.offset+n-this.$scrollElement.height(),o=this.offsets,i=this.targets,a=this.activeTarget;if(this.scrollHeight!=n&&this.refresh(),t>=r)return a!=(e=i[i.length-1])&&this.activate(e);if(a&&t<o[0])return this.activeTarget=null,this.clear();for(e=o.length;e--;)a!=i[e]&&t>=o[e]&&(void 0===o[e+1]||t<o[e+1])&&this.activate(i[e])},t.prototype.activate=function(t){this.activeTarget=t,this.clear();var n=this.selector+'[data-target="'+t+'"],'+this.selector+'[href="'+t+'"]',r=e(n).parents("li").addClass("active");r.parent(".dropdown-menu").length&&(r=r.closest("li.dropdown").addClass("active")),
102
- r.trigger("activate.bs.scrollspy")},t.prototype.clear=function(){e(this.selector).parentsUntil(this.options.target,".active").removeClass("active")};var r=e.fn.scrollspy;e.fn.scrollspy=n,e.fn.scrollspy.Constructor=t,e.fn.scrollspy.noConflict=function(){return e.fn.scrollspy=r,this},e(window).on("load.bs.scrollspy.data-api",function(){e('[data-spy="scroll"]').each(function(){var t=e(this);n.call(t,t.data())})})}(jQuery),+function(e){"use strict";function t(t){return this.each(function(){var r=e(this),o=r.data("bs.tab");o||r.data("bs.tab",o=new n(this)),"string"==typeof t&&o[t]()})}var n=function(t){this.element=e(t)};n.VERSION="3.3.5",n.TRANSITION_DURATION=150,n.prototype.show=function(){var t=this.element,n=t.closest("ul:not(.dropdown-menu)"),r=t.data("target");if(r||(r=t.attr("href"),r=r&&r.replace(/.*(?=#[^\s]*$)/,"")),!t.parent("li").hasClass("active")){var o=n.find(".active:last a"),i=e.Event("hide.bs.tab",{relatedTarget:t[0]}),a=e.Event("show.bs.tab",{relatedTarget:o[0]});if(o.trigger(i),t.trigger(a),!a.isDefaultPrevented()&&!i.isDefaultPrevented()){var s=e(r);this.activate(t.closest("li"),n),this.activate(s,s.parent(),function(){o.trigger({type:"hidden.bs.tab",relatedTarget:t[0]}),t.trigger({type:"shown.bs.tab",relatedTarget:o[0]})})}}},n.prototype.activate=function(t,r,o){function i(){a.removeClass("active").find("> .dropdown-menu > .active").removeClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!1),t.addClass("active").find('[data-toggle="tab"]').attr("aria-expanded",!0),s?(t[0].offsetWidth,t.addClass("in")):t.removeClass("fade"),t.parent(".dropdown-menu").length&&t.closest("li.dropdown").addClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!0),o&&o()}var a=r.find("> .active"),s=o&&e.support.transition&&(a.length&&a.hasClass("fade")||!!r.find("> .fade").length);a.length&&s?a.one("bsTransitionEnd",i).emulateTransitionEnd(n.TRANSITION_DURATION):i(),a.removeClass("in")};var r=e.fn.tab;e.fn.tab=t,e.fn.tab.Constructor=n,e.fn.tab.noConflict=function(){return e.fn.tab=r,this};var o=function(n){n.preventDefault(),t.call(e(this),"show")};e(document).on("click.bs.tab.data-api",'[data-toggle="tab"]',o).on("click.bs.tab.data-api",'[data-toggle="pill"]',o)}(jQuery),+function(e){"use strict";function t(t){return this.each(function(){var r=e(this),o=r.data("bs.affix"),i="object"==typeof t&&t;o||r.data("bs.affix",o=new n(this,i)),"string"==typeof t&&o[t]()})}var n=function(t,r){this.options=e.extend({},n.DEFAULTS,r),this.$target=e(this.options.target).on("scroll.bs.affix.data-api",e.proxy(this.checkPosition,this)).on("click.bs.affix.data-api",e.proxy(this.checkPositionWithEventLoop,this)),this.$element=e(t),this.affixed=null,this.unpin=null,this.pinnedOffset=null,this.checkPosition()};n.VERSION="3.3.5",n.RESET="affix affix-top affix-bottom",n.DEFAULTS={offset:0,target:window},n.prototype.getState=function(e,t,n,r){var o=this.$target.scrollTop(),i=this.$element.offset(),a=this.$target.height();if(null!=n&&"top"==this.affixed)return n>o?"top":!1;if("bottom"==this.affixed)return null!=n?o+this.unpin<=i.top?!1:"bottom":e-r>=o+a?!1:"bottom";var s=null==this.affixed,l=s?o:i.top,c=s?a:t;return null!=n&&n>=o?"top":null!=r&&l+c>=e-r?"bottom":!1},n.prototype.getPinnedOffset=function(){if(this.pinnedOffset)return this.pinnedOffset;this.$element.removeClass(n.RESET).addClass("affix");var e=this.$target.scrollTop(),t=this.$element.offset();return this.pinnedOffset=t.top-e},n.prototype.checkPositionWithEventLoop=function(){setTimeout(e.proxy(this.checkPosition,this),1)},n.prototype.checkPosition=function(){if(this.$element.is(":visible")){var t=this.$element.height(),r=this.options.offset,o=r.top,i=r.bottom,a=Math.max(e(document).height(),e(document.body).height());"object"!=typeof r&&(i=o=r),"function"==typeof o&&(o=r.top(this.$element)),"function"==typeof i&&(i=r.bottom(this.$element));var s=this.getState(a,t,o,i);if(this.affixed!=s){null!=this.unpin&&this.$element.css("top","");var l="affix"+(s?"-"+s:""),c=e.Event(l+".bs.affix");if(this.$element.trigger(c),c.isDefaultPrevented())return;this.affixed=s,this.unpin="bottom"==s?this.getPinnedOffset():null,this.$element.removeClass(n.RESET).addClass(l).trigger(l.replace("affix","affixed")+".bs.affix")}"bottom"==s&&this.$element.offset({top:a-t-i})}};var r=e.fn.affix;e.fn.affix=t,e.fn.affix.Constructor=n,e.fn.affix.noConflict=function(){return e.fn.affix=r,this},e(window).on("load",function(){e('[data-spy="affix"]').each(function(){var n=e(this),r=n.data();r.offset=r.offset||{},null!=r.offsetBottom&&(r.offset.bottom=r.offsetBottom),null!=r.offsetTop&&(r.offset.top=r.offsetTop),t.call(n,r)})})}(jQuery)},function(e,t,n){"use strict";function r(){if(!a){var e=['<h5><strong>Uptime:</strong> <span id="whistleUptime">-</span></h5>','<h5><strong>All Requests:</strong> <span id="whistleAllRequests">-</span></h5>','<h5><strong>All QPS:</strong> <span id="whistleAllQps">-</span></h5>','<h5><strong>Requests:</strong> <span id="whistleRequests">-</span></h5>','<h5><strong>QPS:</strong> <span id="whistleQps">-</span></h5>','<h5><strong>CPU:</strong> <span id="whistleCpu">-</span></h5>','<h5><strong>Memory:</strong> <span id="whistleMemory">-</span></h5>'];a=i('<div class="modal fade w-online-dialog"><div class="modal-dialog"><div class="modal-content"><div class="modal-body"><button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button><div class="w-online-dialog-ctn"></div><div class="w-online-dialog-info">'+e.join("")+'</div><a class="w-online-view-dns">View custom DNS servers</a></div><div class="modal-footer"><button type="button" class="btn btn-default" data-dismiss="modal">Close</button></div></div></div></div>').appendTo(document.body)}return a}function o(e){return e.map(function(e){return" "+e})}n(187),n(591);var i=window.jQuery=n(5);n(589);var a,s=n(6),l=n(39),c=n(293),u=n(281),d=n(199),p=n(593),g=s.createClass({displayName:"Online",getInitialState:function(){return{}},componentWillMount:function(){var e=this,t=!0,n=i(document.body);u.on("serverInfo",function(r){e.updateServerInfo(r),r&&e.checkServerChanged(r);var o=!!r;o!==t&&(t=o,t?n.removeClass("w-offline-status"):n.addClass("w-offline-status")),e.setState({server:r})})},checkServerChanged:function(e){e.mac=e.mac||"",void 0===this.macAddr?(this.macAddr=e.mac,this.serverPort=e.port,this.version=e.version,this.baseDir=e.baseDir,this.networkMode=e.networkMode,this.pluginsMode=e.pluginsMode,this.rulesMode=e.rulesMode,this.multiEnv=e.multiEnv,this.rulesOnlyMode=e.rulesOnlyMode):this.version!==e.version||this.baseDir!==e.baseDir||this.rulesOnlyMode!==e.rulesOnlyMode||this.networkMode!==e.networkMode||this.pluginsMode!==e.pluginsMode||this.rulesMode!==e.rulesMode||this.multiEnv!==e.multiEnv?this.refs.confirmReload.show():this.refs.confirmReload.hide()},showServerInfo:function(){this.state.server&&(this.updateServerInfo(this.state.server),a.modal("show"))},updateServerInfo:function(e){if(e){this.state.server=e;var t=[],n=d.escape(e.username);n&&t.push("<h5><strong>Username:</strong> "+n+"</h5>");var o=d.escape(e.host);o&&t.push("<h5><strong>Host:</strong> "+o+"</h5>"),e.pid&&t.push("<h5><strong>PID:</strong> "+e.pid+"</h5>"),e.nodeVersion&&t.push("<h5><strong>Node:</strong> "+e.nodeVersion+"</h5>"),e.version&&t.push("<h5><strong>Whistle:</strong> v"+e.version+"</h5>");var i=e.realPort||e.port;if(i){var s=null!=e.realHost?e.realHost:e.bip;t.push("<h5><strong>Port:</strong> "+(s?s+":"+i:i)+"</h5>")}e.socksPort&&t.push("<h5><strong>SOCKS Port:</strong> "+e.socksPort+"</h5>"),e.httpPort&&t.push("<h5><strong>HTTP Port:</strong> "+e.httpPort+"</h5>"),e.httpsPort&&t.push("<h5><strong>HTTPS Port:</strong> "+e.httpsPort+"</h5>"),e.ipv4.length&&(t.push("<h5><strong>IPv4:</strong></h5>"),t.push("<p>"+e.ipv4.join("<br/>")+"</p>")),e.ipv6.length&&(t.push("<h5><strong>IPv6:</strong></h5>"),t.push("<p>"+e.ipv6.join("<br/>")+"</p>"));var l=r().find(".w-online-dialog-ctn").html(t.join(""));if(l.find("h5:first").attr("title",e.host),!this._initProxyInfo){this._initProxyInfo=!0;var c,p=!0,g=a.find(".w-online-view-dns"),f=!0,h=this;g.on("click",function(){h.refs.dnsDialog.show(u.getServerInfo())});var m=function(e){e&&e.dns?f&&(f=!1,g.show()):f||(f=!0,g.hide())};m(e),setInterval(function(){var e=u.getServerInfo(),t=e&&e.pInfo;if(m(e),!t)return void(p&&(p=!0,a.find(".w-online-dialog-info").hide()));p&&(p=!1,a.find(".w-online-dialog-info").show());var n=a.find("#whistleRequests"),r=a.find("#whistleAllRequests"),o=a.find("#whistleCpu"),i=a.find("#whistleMemory"),s=a.find("#whistleUptime"),l=a.find("#whistleQps"),g=a.find("#whistleAllQps");s.text(d.formatTime(t.uptime)),s.parent().attr("title",t.uptime),n.parent().attr("title","HTTP[S]: "+t.httpRequests+" (Total: "+t.totalHttpRequests+")\nWS[S]: "+t.wsRequests+" (Total: "+t.totalWsRequests+")\nTUNNEL: "+t.tunnelRequests+" (Total: "+t.totalTunnelRequests+")"),r.parent().attr("title","HTTP[S]: "+t.allHttpRequests+" (Total: "+t.totalAllHttpRequests+")\nWS[S]: "+t.allWsRequests+" (Total: "+t.totalAllWsRequests+")\nTUNNEL: "+t.tunnelRequests+" (Total: "+t.totalTunnelRequests+")"),i.parent().attr("title",Object.keys(t.memUsage).map(function(e){return e+": "+t.memUsage[e]}).join("\n")),l.parent().attr("title",["HTTP[s]: "+d.getQps(t.httpQps),"WS[S]: "+d.getQps(t.wsQps),"TUNNEL: "+d.getQps(t.tunnelQps)].join("\n")),g.parent().attr("title",["HTTP[s]: "+d.getQps(t.allHttpQps),"WS[S]: "+d.getQps(t.allWsQps),"TUNNEL: "+d.getQps(t.tunnelQps)].join("\n"));var f=t.httpRequests+t.wsRequests+t.tunnelRequests,h=t.allHttpRequests+t.allWsRequests+t.tunnelRequests,A=t.totalHttpRequests+t.totalWsRequests+t.totalTunnelRequests,M=t.totalAllHttpRequests+t.totalAllWsRequests+t.totalTunnelRequests;if(t.totalCount=f,t.allCount=A,t.totalUICount=h,t.allUICount=M,c&&c.pInfo){var w=c.pInfo;t.memUsage.rss!==w.memUsage.rss&&i.text(d.getSize(t.memUsage.rss)+" (Max: "+d.getSize(t.maxRss)+")"),(f!==w.totalCount||A!==w.allCount)&&n.text(f+" (Total: "+A+")"),(h!==w.totalUICount||M!==w.allUICount)&&r.text(h+" (Total: "+M+")"),t.cpuPercent!==w.cpuPercent&&o.text(t.cpuPercent+" (Max: "+t.maxCpu+")"),t.totalQps!==w.totalQps&&l.text(d.getQps(t.totalQps)+" (Max: "+d.getQps(t.maxQps)+")"),t.totalAllQps!==w.totalAllQps&&g.text(d.getQps(t.totalAllQps)+" (Max: "+d.getQps(t.maxAllQps)+")")}else n.text(f+" (Total: "+A+")"),r.text(h+" (Total: "+M+")"),o.text(t.cpuPercent+" (Max: "+t.maxCpu+")"),i.text(d.getSize(t.memUsage.rss)+" (Max: "+d.getSize(t.maxRss)+")"),l.text(d.getQps(t.totalQps)+" (Max: "+d.getQps(t.maxQps)+")"),g.text(d.getQps(t.totalAllQps)+" (Max: "+d.getQps(t.maxAllQps)+")");c=e},1e3)}}},reload:function(){location.reload()},getTitle:function(e){if(e){var t=[];e.host&&t.push("Host: "+e.host),e.pid&&t.push("PID: "+e.pid);var n=e.realPort||e.port;n&&t.push("Port: "+n),e.socksPort&&t.push("SOCKS Port: "+e.socksPort),e.httpPort&&t.push("HTTP Port: "+e.httpPort),e.httpsPort&&t.push("HTTPS Port: "+e.httpsPort),e.ipv4.length&&(t.push("IPv4:"),t.push.apply(t,o(e.ipv4))),e.ipv6.length&&(t.push("IPv6:"),t.push.apply(t,o(e.ipv6)));var r=e.pInfo;return r&&(t.push("Uptime: "+d.formatTime(r.uptime)),t.push("All Requests: "+(r.allHttpRequests+r.allWsRequests+r.tunnelRequests+" (Total: "+(r.totalAllHttpRequests+r.totalAllWsRequests+r.totalTunnelRequests)+")")),t.push("Requests: "+(r.httpRequests+r.wsRequests+r.tunnelRequests+" (Total: "+(r.totalHttpRequests+r.totalWsRequests+r.totalTunnelRequests)+")")),r.cpuPercent&&t.push("CPU: "+r.cpuPercent),t.push("Memory: "+d.getSize(r.memUsage.rss)),t.push("QPS: "+d.getQps(r.totalQps)),t.push("All QPS: "+d.getQps(r.totalAllQps))),e.dns&&t.push("Use custom DNS servers"),t.join("\n")}},setTitle:function(){var e=u.getServerInfo()||this.state.server;l.findDOMNode(this.refs.onlineMenu).title=this.getTitle(e)},render:function(){var e=this.state.server;return s.createElement("a",{ref:"onlineMenu",draggable:"false",onMouseEnter:this.setTitle,className:"w-online-menu w-online"+(e?"":" w-offline"),onClick:this.showServerInfo},s.createElement("span",{className:"glyphicon glyphicon-stats"}),e?"Online":"Offline",e&&e.dns?s.createElement("span",null,e.doh?"(DOH)":e.r6?"(IPv6)":"(IPv4)"):null,s.createElement(c,{ref:"confirmReload",wstyle:"w-confirm-reload-dialog w-confirm-reload-global"},s.createElement("div",{className:"modal-body w-confirm-reload"},s.createElement("button",{type:"button",className:"close","data-dismiss":"modal"},s.createElement("span",{"aria-hidden":"true"},"×")),"The proxy has been modified.",s.createElement("br",null),"Do you want to reload this page."),s.createElement("div",{className:"modal-footer"},s.createElement("button",{type:"button",className:"btn btn-default","data-dismiss":"modal"},"Cancel"),s.createElement("button",{type:"button",className:"btn btn-primary",onClick:this.reload},"Reload"))),s.createElement(p,{ref:"dnsDialog"}))}});e.exports=g},function(e,t,n){var r=n(592);"string"==typeof r&&(r=[[e.id,r,""]]);n(4)(r,{});r.locals&&(e.exports=r.locals)},function(e,t,n){t=e.exports=n(3)(),t.push([e.id,".w-online-dialog .modal-dialog{width:20pc}.w-online-dialog-info,.w-online-view-dns{display:none}.w-online-dialog-ctn h5{padding:5px 0;margin:0;text-overflow:ellipsis;max-width:100%;white-space:nowrap;overflow:hidden}.w-online-dialog-ctn p{margin:-23px 0 5px 36px}.w-confirm-reload-dialog{z-index:1000000000}.w-confirm-reload-global{z-index:1000000001}.w-confirm-reload-dialog .modal-dialog{width:280px}.w-confirm-reload-dialog .w-confirm-reload{font-weight:700;line-height:1.8;padding:10px 20px}.w-confim-reload-note{color:red;margin:0}.w-online-menu>span{margin-left:5px;font-size:13px}.w-dns-servers-dialog{z-index:1100}.w-dns-servers-dialog pre{font-size:14px;font-weight:700}.w-dns-servers-dialog .modal-dialog{width:420px}.w-tips-dialog .modal-dialog{width:35pc!important}#appearanceMode{display:inline-block;width:150px;margin-left:10px;height:2pc;font-size:13px;font-weight:400}",""])},function(e,t,n){"use strict";n(187);var r=n(6),o=n(293),i=r.createClass({displayName:"DNSDialog",getInitialState:function(){return{servers:""}},show:function(e){if(e&&e.dns){this._hideDialog=!1;var t=e.dns;e.doh||(t=e.dns.split(",").map(function(e,t){return"DNS Server"+(t+1)+": "+e}).join("\n")),this.setState({ipv6:e.r6,useDefault:e.df,servers:t,doh:e.doh}),this.refs.dnsServersDialog.show()}},hide:function(){this.refs.dnsServersDialog.hide(),this._hideDialog=!0},shouldComponentUpdate:function(){return this._hideDialog===!1},render:function(){var e,t=this.state;return e=t.doh?"Resolve IP address from follow URL:":"Resolve "+(t.ipv6?"IPv6":"IPv4")+" address from follow DNS servers"+(t.useDefault?" first":"")+":",r.createElement(o,{ref:"dnsServersDialog",wstyle:"w-dns-servers-dialog"},r.createElement("div",{className:"modal-header"},e,r.createElement("button",{type:"button",className:"close","data-dismiss":"modal"},r.createElement("span",{"aria-hidden":"true"},"×"))),r.createElement("pre",{className:"modal-body"},t.servers),r.createElement("div",{className:"modal-footer"},r.createElement("button",{type:"button","data-dismiss":"modal",className:"btn btn-primary w-copy-text-with-tips","data-clipboard-text":t.servers},"Copy"),r.createElement("button",{type:"button",className:"btn btn-default","data-dismiss":"modal"},"Close")))}});e.exports=i},function(e,t,n){"use strict";n(187),n(595);var r=n(6),o=r.createClass({displayName:"EditorSettings",render:function(){return r.createElement("div",{className:"w-editor-settings"},r.createElement("p",null,r.createElement("label",null,r.createElement("span",{className:"w-label"},"Theme:"),r.createElement("select",{value:this.props.theme,onChange:this.props.onThemeChange,className:"form-control"},r.createElement("option",{value:"default"},"default"),r.createElement("option",{value:"ambiance"},"ambiance"),r.createElement("option",{value:"blackboard"},"blackboard"),r.createElement("option",{value:"cobalt"},"cobalt"),r.createElement("option",{value:"eclipse"},"eclipse"),r.createElement("option",{value:"elegant"},"elegant"),r.createElement("option",{value:"erlang-dark"},"erlang-dark"),r.createElement("option",{value:"lesser-dark"},"lesser-dark"),r.createElement("option",{value:"midnight"},"midnight"),r.createElement("option",{value:"monokai"},"monokai"),r.createElement("option",{value:"neat"},"neat"),r.createElement("option",{value:"night"},"night"),r.createElement("option",{value:"rubyblue"},"rubyblue"),r.createElement("option",{value:"solarized dark"},"solarized dark"),r.createElement("option",{value:"solarized light"},"solarized light"),r.createElement("option",{value:"twilight"},"twilight"),r.createElement("option",{value:"vibrant-ink"},"vibrant-ink"),r.createElement("option",{value:"xq-dark"},"xq-dark"),r.createElement("option",{value:"xq-light"},"xq-light")))),r.createElement("p",null,r.createElement("label",null,r.createElement("span",{className:"w-label"},"Font size:"),r.createElement("select",{value:this.props.fontSize,onChange:this.props.onFontSizeChange,className:"form-control"},r.createElement("option",{value:"13px"},"13px"),r.createElement("option",{value:"14px"},"14px"),r.createElement("option",{value:"16px"},"16px"),r.createElement("option",{value:"18px"},"18px"),r.createElement("option",{value:"20px"},"20px"),r.createElement("option",{value:"22px"},"22px"),r.createElement("option",{value:"24px"},"24px"),r.createElement("option",{value:"26px"},"26px"),r.createElement("option",{value:"28px"},"28px"),r.createElement("option",{value:"30px"},"30px"),r.createElement("option",{value:"32px"},"32px"),r.createElement("option",{value:"34px"},"34px"),r.createElement("option",{value:"36px"},"36px")))),r.createElement("p",{className:"w-editor-settings-box"},r.createElement("label",null,r.createElement("input",{checked:this.props.lineNumbers,onChange:this.props.onLineNumberChange,type:"checkbox"})," ","Show line number")),r.createElement("p",{className:"w-editor-settings-box"},r.createElement("label",null,r.createElement("input",{checked:this.props.lineWrapping,onChange:this.props.onLineWrappingChange,type:"checkbox"})," ","Auto line wrapping")))}});e.exports=o},function(e,t,n){var r=n(596);"string"==typeof r&&(r=[[e.id,r,""]]);n(4)(r,{});r.locals&&(e.exports=r.locals)},function(e,t,n){t=e.exports=n(3)(),t.push([e.id,".w-editor-settings label,.w-editor-settings-box label{font-weight:400;white-space:nowrap}.w-editor-settings label .w-label{display:inline-block;width:60px;text-align:right;margin-right:5px}.w-editor-settings select{width:186px}.w-rules-settings-dialog .w-editor-settings select{width:260px}.w-editor-settings-box{padding-left:65px;margin:10px!important}.w-editor-settings .form-control{display:inline-block;margin-left:5px}.w-editor-settings p{margin:5px}",""])},function(e,t,n){"use strict";var r=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e};n(187),n(598);var o=n(5),i=n(6),a=n(39),s=n(283),l=n(293),c=n(342),u=n(281),d=n(280),p=n(199),g=n(284),f=i.createClass({displayName:"Settings",getInitialState:function(){var e=c.getDragger();return e.onDrop=e.onDrop.bind(this),o.extend(this.getNetworkSettings(),{dragger:e})},getNetworkSettings:function(){return o.extend(u.getFilterText(),{columns:c.getAllColumns()})},onColumnsResort:function(){d.trigger("onColumnsChanged"),this.setState({columns:c.getAllColumns()})},resetColumns:function(){c.reset(),this.onColumnsResort()},componentDidMount:function(){var e=this;d.on("toggleTreeView",function(){e.setState({})})},onNetworkSettingsChange:function(e){var t=e.target,n=t.getAttribute("data-name");if(n&&"path"!==n){if("viewOwn"===n)return u.setOnlyViewOwnData(t.checked),this.setState({}),void d.trigger("filterChanged");if("treeView"===n)return void d.trigger("switchTreeView");if("disabledHNR"===n)return g.set("disabledHNR",t.checked?"":"1"),this.setState({});var r,o,i=this.state;switch(n){case"filter":i.disabledFilterText=!t.checked,r=!0;break;case"excludeFilter":i.disabledExcludeText=!t.checked,r=!0;break;case"filterText":r=!0,i.filterText=t.value;break;case"excludeText":r=!0,i.excludeText=t.value;break;case"networkColumns":o=!0;break;default:c.setSelected(n,t.checked),o=!0}r?(u.setFilterText(i),d.trigger("filterChanged")):o&&d.trigger("onColumnsChanged"),this.setState(i)}},onFilterKeyDown:function(e){(e.ctrlKey||e.metaKey)&&88==e.keyCode&&e.stopPropagation()},onRowsChange:function(e){s.setMaxRows(e.target.value)},showDialog:function(){var e=this.getNetworkSettings();this.setState(e),this.refs.networkSettingsDialog.show()},hideDialog:function(){this.refs.networkSettingsDialog.hide()},editCustomCol:function(e){e.preventDefault();var t=this;t.refs.editCustomColumn.show();var n=e.target.getAttribute("data-name");t.setState({name:n,value:u[n.toLowerCase()],nameChanged:!1},function(){setTimeout(function(){var e=a.findDOMNode(t.refs.newColumnName);e.select(),e.focus()},360)})},onNameChange:function(e){var t=e.target.value;this.setState({value:t.trim(),nameChanged:!0})},changeName:function(){var e=this,t=e.state,n=t.name,r=t.value;u.setCustomColumn({name:n,value:r},function(t,o){return t?(e.refs.editCustomColumn.hide(),u[n.toLowerCase()]=r,e.setState({}),void d.trigger("onColumnTitleChange")):void p.showSystemError(o)})},render:function(){var e=this,t=e.state,n=t.columns,o="1"===g.get("isTreeView");return i.createElement(l,{ref:"networkSettingsDialog",wstyle:"w-network-settings-dialog"},i.createElement("div",{onChange:e.onNetworkSettingsChange,className:"modal-body"},i.createElement("button",{type:"button",className:"close","data-dismiss":"modal","aria-label":"Close"},i.createElement("span",{"aria-hidden":"true"},"×")),i.createElement("fieldset",{className:"network-settings-filter"},i.createElement("legend",null,i.createElement("label",null,i.createElement("input",{checked:!t.disabledExcludeText,"data-name":"excludeFilter",type:"checkbox"}),"Exclude Filter"),i.createElement("a",{className:"w-help-menu",title:"Click here to learn how to use the filter",href:"https://avwo.github.io/whistle/webui/filter.html",target:"_blank"},i.createElement("span",{className:"glyphicon glyphicon-question-sign"}))),i.createElement("textarea",{disabled:t.disabledExcludeText,onKeyDown:e.onFilterKeyDown,value:t.excludeText,"data-name":"excludeText",placeholder:"type filter text",maxLength:u.MAX_EXCLUDE_LEN})),i.createElement("fieldset",{className:"network-settings-filter"},i.createElement("legend",null,i.createElement("label",null,i.createElement("input",{checked:!t.disabledFilterText,"data-name":"filter",type:"checkbox"}),"Include Filter"),i.createElement("a",{className:"w-help-menu",title:"Click here to learn how to use the filter",href:"https://avwo.github.io/whistle/webui/filter.html",target:"_blank"},i.createElement("span",{className:"glyphicon glyphicon-question-sign"}))),i.createElement("textarea",{disabled:t.disabledFilterText,onKeyDown:e.onFilterKeyDown,value:t.filterText,"data-name":"filterText",placeholder:"type filter text",maxLength:u.MAX_INCLUDE_LEN})),i.createElement("fieldset",{className:"network-settings-columns"},i.createElement("legend",null,i.createElement("label",null,"Network Columns"),i.createElement("label",{onClick:e.resetColumns,className:"btn btn-default"},"Reset")),n.map(function(n){var o,a=n.name,s="custom1"===a,l=s||"custom2"===a;return o=l?s?u.custom1:u.custom2:n.title,i.createElement("label",r({},t.dragger,{"data-name":a,draggable:!0,key:a}),i.createElement("input",{disabled:n.locked,checked:!!n.selected||!!n.locked,"data-name":a,type:"checkbox"}),l?i.createElement("span",{title:o,className:"w-network-custom-col"},o):o,l?i.createElement("span",{onClick:e.editCustomCol,"data-name":n.title,title:"Edit "+n.title,className:"glyphicon glyphicon-edit"},s?1:2):void 0)})),i.createElement("label",{className:"w-network-settings-own"},"Max Rows Number:",i.createElement("select",{className:"form-control",onChange:e.onRowsChange,defaultValue:s.getMaxRows()},i.createElement("option",{value:"500"},"500"),i.createElement("option",{value:"1000"},"1000"),i.createElement("option",{value:"1500"},"1500"),i.createElement("option",{value:"2000"},"2000"),i.createElement("option",{value:"2500"},"2500"),i.createElement("option",{value:"3000"},"3000"))),i.createElement("label",{className:"w-network-settings-own"},i.createElement("input",{checked:u.isOnlyViewOwnData(),"data-name":"viewOwn",type:"checkbox"}),"Only view the requests of own computer (IP: ",u.clientIp,")"),i.createElement("label",{className:"w-network-settings-own"},i.createElement("input",{checked:o,"data-name":"treeView",type:"checkbox"}),i.createElement("span",{className:"glyphicon glyphicon-tree-conifer",style:{marginRight:2}}),"Show Tree View (Ctrl[Command] + B)"),o?i.createElement("br",null):null,o?i.createElement("label",{className:"w-network-settings-own"},i.createElement("input",{checked:"1"!==g.get("disabledHNR"),"data-name":"disabledHNR",type:"checkbox"}),"Highlight new requests"):null),i.createElement("div",{className:"modal-footer"},i.createElement("button",{type:"button",className:"btn btn-default","data-dismiss":"modal"},"Close")),i.createElement(l,{ref:"editCustomColumn",wstyle:"w-network-settings-edit"},i.createElement("div",{onChange:e.onNetworkSettingsChange,className:"modal-body"},i.createElement("button",{type:"button",className:"close","data-dismiss":"modal","aria-label":"Close"},i.createElement("span",{"aria-hidden":"true"},"×")),i.createElement("label",null,"New ",t.name," Name:",i.createElement("input",{onChange:this.onNameChange,ref:"newColumnName",value:t.value,className:"form-control",maxLength:"16",placeholder:"Input the new column name"}))),i.createElement("div",{className:"modal-footer"},i.createElement("button",{disabled:!t.nameChanged,onClick:e.changeName,type:"button",className:"btn btn-primary"},"Confirm"),i.createElement("button",{type:"button",className:"btn btn-default","data-dismiss":"modal"},"Cancel"))))}});e.exports=f},function(e,t,n){var r=n(599);"string"==typeof r&&(r=[[e.id,r,""]]);n(4)(r,{});r.locals&&(e.exports=r.locals)},function(e,t,n){t=e.exports=n(3)(),t.push([e.id,".w-network-settings-dialog fieldset{border:1px solid #ddd;padding-bottom:10px}.w-network-settings-dialog legend{border:none;margin:0 10px;padding:0 10px;width:auto}.w-network-settings-dialog legend label{font-size:13px;width:auto;padding:0}.w-network-settings-dialog label{font-size:13px;font-weight:400;line-height:30px;height:30px;display:inline-block;width:6pc;margin-right:10px;font-weight:700;text-align:right}.network-settings-columns{margin-top:10px}.network-settings-filter{border:none!important}.network-settings-filter legend{margin:0;padding:0}.network-settings-filter legend label{margin-right:5px}.network-settings-filter textarea[disabled]{background:#f5f5f5}.network-settings-columns label{white-space:nowrap;padding-left:10px;margin-left:10px;text-align:left;width:90pt}.network-settings-columns label .glyphicon-edit{margin-left:5px;cursor:pointer}.network-settings-columns label .glyphicon-edit:hover{color:#337ab7}.network-settings-columns .btn{margin-right:0;text-align:center;color:#666;width:72px}.network-settings-columns legend label{margin-left:0}.w-network-settings-dialog .modal-dialog{width:600px}.w-network-settings-dialog input[type=checkbox]{margin-right:5px}.w-network-settings-dialog textarea{width:578px;height:90px;border:1px solid #ddd;overflow:auto;margin:0;padding:5px 10px}.w-network-settings-dialog .w-help-menu{color:#000;font-size:14px}.w-certs-info-dialog .w-help-menu:hover,.w-files-dialog .w-help-menu:hover,.w-https-dialog .w-help-menu:hover,.w-network-settings-dialog .w-help-menu:hover{color:#337ab7}.w-certs-info-dialog .w-help-menu,.w-files-dialog .w-help-menu,.w-https-dialog .w-help-menu{margin-right:5px;color:#000;font-size:14px}.w-network-settings-dialog div input[type=text]{width:436px}.w-network-settings-own{width:auto!important;margin:15px 0 0;white-space:nowrap}.w-network-settings-own select{margin-left:20px;width:10pc;display:inline-block}.w-network-custom-col{display:inline-block;max-width:90px;text-overflow:ellipsis;white-space:nowrap}.network-settings-columns label span{vertical-align:middle;overflow:hidden;font-weight:400}.w-network-settings-edit label{white-space:nowrap}.w-network-settings-edit label .form-control{display:inline-block;margin:0 10px;font-weight:400}.w-network-settings-edit label select{width:150px}.w-network-settings-edit label input{width:330px}.w-network-settings-edit .modal-dialog{width:530px}.network-settings-columns legend .btn-primary{width:auto;margin-right:10px;padding:0 8px;color:#fff;font-weight:400}.w-certs-info-title{margin-bottom:20px}",""])},function(e,t,n){"use strict";function r(e){return function(t,n){var r=e[t],o=e[n];return r._key=t,o._key=n,h.comparePlugin(r,o)}}function o(e){l||(l=setTimeout(function(){l=null},2e3),p.trigger("disableAllPlugins",e))}function i(e){var t=f.getServerInfo().cmdName,n="";return t&&M.test(t)?(t=RegExp.$1+" ",n=" "+RegExp.$2.trim()):t="w2 ",t+(e?"uninstall":"install")+n+" "}function a(e){return e.account?" --account="+e.account:""}function s(e){return e.updateUrl||e.moduleName}n(601);var l,c=n(5),u=n(6),d=n(39),p=n(280),g=n(293),f=n(281),h=n(199),m=n(210),A=n(567),M=/^([\w]{1,12})(\s+-g)?$/;window.getWhistleProxyServerInfo=function(){var e=f.getServerInfo();return e&&c.extend(!0,{},e)};var w=u.createClass({displayName:"Home",componentDidMount:function(){var e=this;e.setUpdateAllBtnState(),p.on("updateAllPlugins",function(t,n){n="reinstallAllPlugins"===n;var o=e.props.data||{},l=o.plugins||{},c={};Object.keys(l).sort(r(l)).map(function(e){var t=l[e];if(!t.isProj&&(n||h.compareVersion(t.latest,t.version))){var r=(t.registry?" --registry="+t.registry:"")+a(t),o=c[r]||[];o.push(s(t)),c[r]=o}});var u=Object.keys(c).map(function(e){var t=c[e].join(" ");return i()+t+e}).join("\n\n");u&&e.setState({cmdMsg:u,uninstall:!1},e.showMsgDialog)})},componentDidUpdate:function(){this.setUpdateAllBtnState()},onOpen:function(e){this.props.onOpen&&this.props.onOpen(e),e.preventDefault()},syncData:function(e){f.syncData(e)},showDialog:function(){this.refs.pluginRulesDialog.show()},hideDialog:function(){this.refs.pluginRulesDialog.hide()},showRules:function(e){var t=c(e.target).attr("data-name"),n=this.props.data.plugins[t+":"];n.name=t,this.setState({plugin:n},this.showDialog)},onCmdChange:function(e){this.setState({cmdMsg:e.target.value})},showMsgDialog:function(){this.refs.operatePluginDialog.show()},showUpdate:function(e){var t=c(e.target).attr("data-name"),n=this.props.data.plugins[t+":"],r=n.registry?" --registry="+n.registry:"";this.setState({cmdMsg:i()+s(n)+a(n)+r,isSys:n.isSys,uninstall:!1},this.showMsgDialog)},showUninstall:function(e){var t=c(e.target).attr("data-name"),n=this.props.data.plugins[t+":"],r=this.props.data.isWin?"":"sudo ",o=n.isSys,s=o?i(!0):r+"npm uninstall -g ",l=!o&&n.registry?" --registry="+n.registry:"";this.setState({cmdMsg:s+n.moduleName+a(n)+l,isSys:o,uninstall:!0,pluginPath:n.path},this.showMsgDialog)},enableAllPlugins:function(e){var t=this,n=t.props.data||{};!l&&n.disabledAllPlugins&&m.confirm("Do you want to turn on Plugins?",function(t){t&&o(e)})},setUpdateAllBtnState:function(){p.trigger("setUpdateAllBtnState",this.hasNewPlugin)},render:function(){var e=this,t=e.props.data||{},n=t.plugins||[],o=e.state||{},i=o.plugin||{},a=o.cmdMsg,s=Object.keys(n),l=t.disabledPlugins||{},c=t.disabledAllPlugins,d=t.ndp;return e.hasNewPlugin=!1,u.createElement("div",{className:"fill orient-vertical-box w-plugins",style:{display:e.props.hide?"none":""}},u.createElement("div",{className:"w-plugins-headers"},u.createElement("table",{className:"table"},u.createElement("thead",null,u.createElement("tr",null,u.createElement("th",{className:"w-plugins-order"},"#"),u.createElement("th",{className:"w-plugins-active"},"Active"),u.createElement("th",{className:"w-plugins-date"},"Date"),u.createElement("th",{className:"w-plugins-name"},"Name"),u.createElement("th",{className:"w-plugins-version"
103
- },"Version"),u.createElement("th",{className:"w-plugins-operation"},"Operation"),u.createElement("th",{className:"w-plugins-desc"},"Description"))))),u.createElement("div",{className:"fill w-plugins-list"},u.createElement("table",{className:"table table-hover"},u.createElement("tbody",null,s.length?s.sort(r(n)).map(function(t,r){var o=n[t];t=t.slice(0,-1);var i=!l[t],a=o.pluginHomepage&&!o.openInPlugins,s=o.pluginHomepage||"plugin."+t+"/",p=h.compareVersion(o.latest,o.version);return p&&(p="(New: "+o.latest+")",e.hasNewPlugin=!0),u.createElement("tr",{key:t,className:(!c&&i?"":"w-plugins-disable")+(p?" w-has-new-version":"")},u.createElement("th",{className:"w-plugins-order",onDoubleClick:e.enableAllPlugins},r+1),u.createElement("td",{className:"w-plugins-active",onDoubleClick:e.enableAllPlugins},u.createElement("input",{type:"checkbox",title:d?"Not allowed disable plugins":c?"Disabled":(i?"Disable ":"Enable ")+t,"data-name":t,checked:d||i,disabled:!d&&c,onChange:e.props.onChange,className:d?"w-not-allowed":void 0})),u.createElement("td",{className:"w-plugins-date"},h.toLocaleString(new Date(o.mtime))),u.createElement("td",{className:"w-plugins-name",title:o.moduleName},o.noOpt?u.createElement("span",null,t):u.createElement("a",{href:s,target:"_blank","data-name":t,onClick:a?null:e.onOpen},t)),u.createElement("td",{className:"w-plugins-version"},o.homepage?u.createElement("a",{href:o.homepage,target:"_blank"},o.version):o.version,p?o.homepage?u.createElement("a",{className:"w-new-version",href:o.homepage,target:"_blank"},p):u.createElement("span",{className:"w-new-version"},p):void 0),u.createElement("td",{className:"w-plugins-operation"},o.noOpt?u.createElement("span",{className:"disabled"},"Option"):u.createElement("a",{href:s,target:"_blank","data-name":t,className:"w-plugin-btn",onClick:a?null:e.onOpen},"Option"),o.rules||o._rules||o.resRules?u.createElement("a",{draggable:"false","data-name":t,onClick:e.showRules},"Rules"):u.createElement("span",{className:"disabled"},"Rules"),o.isProj?u.createElement("span",{className:"disabled"},"Update"):u.createElement("a",{draggable:"false",className:"w-plugin-btn w-plugin-update-btn","data-name":t,onClick:e.showUpdate},"Update"),o.isProj||o.notUn?u.createElement("span",{className:"disabled"},"Uninstall"):u.createElement("a",{draggable:"false",className:"w-plugin-btn","data-name":t,onClick:e.showUninstall},"Uninstall"),o.homepage?u.createElement("a",{href:o.homepage,className:"w-plugin-btn",target:"_blank"},"Help"):u.createElement("span",{className:"disabled"},"Help"),h.isString(o.rulesUrl)||h.isString(o.valuesUrl)?u.createElement("a",{className:"w-plugin-btn",onClick:function(){e.syncData(o)}},"Sync"):void 0),u.createElement("td",{className:"w-plugins-desc",title:o.description},o.description))}):u.createElement("tr",null,u.createElement("td",{colSpan:"7",className:"w-empty"},u.createElement("a",{href:"https://github.com/whistle-plugins",target:"_blank"},"Empty")))))),u.createElement(g,{ref:"pluginRulesDialog",wstyle:"w-plugin-rules-dialog"},u.createElement("div",{className:"modal-header"},u.createElement("h4",null,i.name),u.createElement("button",{type:"button",className:"close","data-dismiss":"modal"},u.createElement("span",{"aria-hidden":"true"},"×"))),u.createElement("div",{className:"modal-body"},u.createElement("div",{className:"w-plugin-rules"},i.rules?u.createElement("fieldset",null,u.createElement("legend",null,"rules.txt"),u.createElement("pre",null,i.rules)):null,i._rules?u.createElement("fieldset",null,u.createElement("legend",null,"reqRules.txt (_rules.txt)"),u.createElement("pre",null,i._rules)):null,i.resRules?u.createElement("fieldset",null,u.createElement("legend",null,"resRules.txt"),u.createElement("pre",null,i.resRules)):null)),u.createElement("div",{className:"modal-footer"},u.createElement("button",{type:"button",className:"btn btn-default","data-dismiss":"modal"},"Close"))),u.createElement(g,{ref:"operatePluginDialog",wstyle:"w-plugin-update-dialog"},u.createElement("div",{className:"modal-body"},u.createElement("h5",null,u.createElement("a",{"data-dismiss":"modal",className:"w-copy-text-with-tips","data-clipboard-text":a},"Copy the following command")," ","to the CLI to execute:"),u.createElement("textarea",{value:a,className:"w-plugin-update-cmd",onChange:this.onCmdChange}),u.createElement("div",{style:{margin:"8px 0 0",color:"red","word-break":"break-all",display:!o.isSys&&o.uninstall?"":"none"}},"If uninstall failed, delete the following directory instead:",u.createElement("a",{className:"w-copy-text-with-tips","data-dismiss":"modal","data-clipboard-text":o.pluginPath,style:{marginLeft:5,cursor:"pointer"}},o.pluginPath))),u.createElement("div",{className:"modal-footer"},u.createElement("button",{type:"button","data-dismiss":"modal",className:"btn btn-primary w-copy-text-with-tips","data-clipboard-text":a},"Copy"),u.createElement("button",{type:"button",className:"btn btn-default","data-dismiss":"modal"},"Close"))))}}),b=u.createClass({displayName:"Tabs",componentDidMount:function(){function e(){clearTimeout(n),n=setTimeout(t,60)}function t(){if(!r.props.hide){var e=i.offsetHeight;e&&(o.style.width=i.offsetWidth+"px",o.style.height=e+"px")}}var n,r=this,o=d.findDOMNode(r.refs.tabPanel),i=o.parentNode;r._resizeHandler=e,e(),c(window).on("resize",e)},shouldComponentUpdate:function(e,t){return!this.props.hide||!e.hide},componentDidUpdate:function(e,t){e.hide&&!this.props.hide&&this._resizeHandler()},onClose:function(e){this.props.onClose&&this.props.onClose(e),e.stopPropagation()},render:function(){var e=this,t=e.props,n=t.tabs||[],r="Home",i=t.disabledPlugins||{},a=t.disabledAllPlugins,s=t.ndp,l=e.props.active;if(l&&l!=r)for(var c=0,d=n.length;d>c;c++){var p=n[c];if(p.name==l){r=p.name;break}}return u.createElement("div",{className:"w-nav-tabs fill orient-vertical-box",style:{display:e.props.hide?"none":"",paddingTop:a?0:void 0}},a?u.createElement("div",{className:"w-record-status",style:{marginBottom:5}},"All plugins is disabled",u.createElement("button",{className:"btn btn-primary",onClick:o},"Enable")):null,u.createElement("ul",{className:"nav nav-tabs"},u.createElement("li",{className:"w-nav-home-tab"+("Home"==r?" active":""),"data-name":"Home",onClick:e.props.onActive},u.createElement("a",{draggable:"false"},"Home")),n.map(function(t){var n=!s&&(a||i[t.name]);return u.createElement("li",{className:r==t.name?" active":""},u.createElement("a",{"data-name":t.name,title:t.name,onClick:e.props.onActive,draggable:"false",className:n?"w-plugin-tab-disabled":void 0},n?u.createElement("span",{className:"glyphicon glyphicon-ban-circle"}):void 0,t.name,u.createElement("span",{"data-name":t.name,title:"Close",className:"w-close-icon",onClick:e.onClose},"×")))})),u.createElement("div",{className:"fill orient-vertical-box w-nav-tab-panel"},u.createElement("div",{ref:"tabPanel",className:"fill orient-vertical-box"},u.createElement(w,{data:e.props,hide:"Home"!=r,onChange:e.props.onChange,onOpen:e.props.onOpen}),n.map(function(e){return u.createElement(A,{inited:r==e.name},u.createElement("iframe",{style:{display:r==e.name?"":"none"},src:e.url}))}))))}});e.exports=b},function(e,t,n){var r=n(602);"string"==typeof r&&(r=[[e.id,r,""]]);n(4)(r,{});r.locals&&(e.exports=r.locals)},function(e,t,n){t=e.exports=n(3)(),t.push([e.id,".w-nav-tabs{padding-top:10px;font-size:13px}.w-nav-tabs>.nav>li>a{padding:5px 20px 5px 10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:90pt;position:relative}.w-nav-tabs>.nav>li>a>.w-close-icon{display:block;position:absolute;top:5px;right:5px;color:#999;cursor:pointer}.w-nav-tabs>.nav>li>a>.w-close-icon:hover{color:#000}.w-plugin-tab-disabled{color:#ccc!important}.w-plugin-tab-disabled .glyphicon-ban-circle{vertical-align:text-top;margin-right:3px;color:#ccc!important}.w-nav-tabs iframe{border:none;display:block;background-color:#fff;margin:0;padding:0;width:100%;height:100%}.w-nav-tabs .w-nav-tab-panel,.w-nav-tabs .w-nav-tab-panel>div{overflow:hidden}.w-nav-tabs>.nav>.w-nav-home-tab>a{padding-right:10px!important}.w-plugins td,.w-plugins th{font-size:13px;font-weight:400}.w-plugins-headers{border-bottom:1px solid #ccc;overflow:hidden}.w-plugins-headers .table th{border:none!important;padding:6px;color:#000;background:#fafafa;font-weight:700}.w-plugins-list{overflow-y:auto;overflow-x:hidden;outline:0}.w-plugins-list td,.w-plugins-list th{border-top:none!important;border-bottom:1px solid #ddd;padding:8px 6px!important;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.w-plugins-disable,.w-plugins-disable a,.w-plugins-disable td{color:#aaa}.w-plugins-order{width:50px}.w-plugins-active{width:60px}.w-plugins-list td.w-plugins-active input{margin-left:9pt;vertical-align:text-bottom}.w-plugins-name{width:10pc}.w-plugins-version{width:140px}.w-plugins-list .w-has-new-version .w-plugin-update-btn,.w-plugins-list .w-has-new-version .w-plugins-version .w-new-version,.w-plugins-menu.w-plugin-update-btn{color:#f66!important}.w-plugins-list .w-has-new-version .w-plugins-version span{margin-left:3px}.w-plugins-list .w-has-new-version .w-plugin-update-btn:hover,.w-plugins-list .w-has-new-version .w-plugins-version span:hover,.w-plugins-menu.w-plugin-update-btn:hover{color:#f33!important}.w-plugins-date{width:180px}.w-plugins-operation{width:360px}.w-plugins-operation a,.w-plugins-operation span.disabled{margin-right:20px}.w-plugins-operation a:last-child,.w-plugins-operation span.disabled:last-child{margin-right:0}.w-plugins-operation span.disabled{color:#ccc}.w-plugin-rules-dialog .modal-dialog{width:40pc}.w-plugin-rules-dialog .modal-dialog pre{max-height:220px;overflow:auto;padding:10px}.w-plugin-rules-dialog fieldset{border:1px solid #ddd}.w-plugin-rules-dialog fieldset legend{font-size:13px;padding:0 10px;border:none;width:auto;margin:0 10px;font-weight:700}.w-plugin-rules-dialog fieldset:nth-child(2){margin-top:15px}.w-plugin-rules-dialog .modal-header h4{margin:0}.w-plugin-rules-dialog .modal-header .close{position:absolute;right:10px;top:1pc}.w-plugin-update-dialog .modal-dialog{width:600px}.w-plugin-update-cmd{background:#002240;color:#ddd;padding:15px;margin-top:10px;font-size:14px;display:block;width:578px;height:220px}.w-plugin-btn{color:#337ab7!important}.w-plugin-btn:hover{color:#23527c!important}",""])},function(e,t,n){"use strict";n(187),n(604);var r=n(6),o=n(39),i=n(199),a=n(293),s=r.createClass({displayName:"ListDialog",getInitialState:function(){return{checkedItems:{},selectedCount:0}},onChange:function(e){var t=e.target,n=t.parentNode.title,r=this.state.checkedItems;t.checked?r[n]=1:delete r[n],this.setState({selectedCount:Object.keys(r).length})},onConfirm:function(e){if(!e.target.disabled){this.refs.dialog.hide();var t=o.findDOMNode(this.refs.filename),n=o.findDOMNode(this.refs.exportData),r=-1!==e.target.className.indexOf("btn-warning"),i=r?this.getAllItems():this.state.checkedItems;o.findDOMNode(this.refs.exportName).value=t.value.trim(),o.findDOMNode(this.refs.data).value=JSON.stringify(i),n.submit(),t.value=""}},getAllItems:function(){var e=this.props.list||[],t={};return e.forEach(function(e){t[e]=1}),t},show:function(){var e=this;e.refs.dialog.show(),setTimeout(function(){o.findDOMNode(e.refs.filename).focus()},500)},preventDefault:function(e){e.preventDefault()},render:function(){var e=this,t=e.props.list||[],n=e.state.checkedItems,o=e.state.selectedCount,s=this.props.name;return r.createElement(a,{ref:"dialog",wclassName:" w-list-dialog"},r.createElement("div",{className:"modal-body"},r.createElement("button",{type:"button",className:"close","data-dismiss":"modal"},r.createElement("span",{"aria-hidden":"true"},"×")),r.createElement("p",null,"Filename:",r.createElement("input",{ref:"filename",style:{width:390,display:"inline-block",marginLeft:5},className:"form-control",placeholder:"Input the filename"})),t.map(function(t){return r.createElement("label",{title:t},r.createElement("input",{onChange:e.onChange,type:"checkbox",checked:!!n[t]}),i.isGroup(t)?r.createElement("span",{className:"glyphicon glyphicon-triangle-right w-list-group-icon"}):null,t)})),r.createElement("div",{className:"modal-footer"},r.createElement("div",{className:"w-list-counter"},"Selected: ",o," / ",t.length),r.createElement("button",{type:"button",className:"btn btn-default","data-dismiss":"modal"},"Cancel"),r.createElement("button",{type:"button",className:"btn btn-warning",onMouseDown:this.preventDefault,onClick:this.onConfirm},"Export All"),r.createElement("button",{type:"button",className:"btn btn-primary",disabled:!Object.keys(n).length,onMouseDown:this.preventDefault,onClick:this.onConfirm},"Export Selected")),r.createElement("form",{action:"cgi-bin/"+s+"/export",ref:"exportData",style:{display:"none"},target:"downloadTargetFrame"},r.createElement("input",{ref:"exportName",type:"hidden",name:"filename"}),r.createElement("input",{ref:"data",type:"hidden",name:s})))}});e.exports=s},function(e,t,n){var r=n(605);"string"==typeof r&&(r=[[e.id,r,""]]);n(4)(r,{});r.locals&&(e.exports=r.locals)},function(e,t,n){t=e.exports=n(3)(),t.push([e.id,".w-list-dialog label{line-height:26px;width:226px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-left:10px}.w-list-dialog label input{margin-right:5px}.w-list-dialog{width:500px}.w-list-dialog .modal-footer{position:relative}.w-list-counter{position:absolute;left:10px;top:15px}",""])},function(e,t,n){"use strict";var r=n(6),o=n(281),i=n(280),a=r.createClass({displayName:"FilterBtn",getInitialState:function(){return{hasFilterText:!!o.filterIsEnabled()}},componentDidMount:function(){var e=this;i.on("filterChanged",function(){var t=!!o.filterIsEnabled();t!==e.state.hasFilterText&&e.setState({hasFilterText:!!o.filterIsEnabled()})})},render:function(){var e=this.props.hide,t=this.props.isNetwork,n=t&&this.state.hasFilterText?" w-menu-enable":"";return r.createElement("a",{onClick:this.props.onClick,className:"w-settings-menu"+n,style:{display:e?"none":""},draggable:"false"},r.createElement("span",{className:"glyphicon glyphicon-cog"}),"Settings")}});e.exports=a},function(e,t,n){"use strict";function r(e){e.select(),e.focus()}function o(e,t){d.error(e),t.select(),t.focus()}function i(e){return e.map(function(e){return e.date=c.toLocaleString(new Date(e.date)),e})}n(187),n(608);var a=n(6),s=n(39),l=n(293),c=n(199),u=n(280),d=n(207),p=n(281),g=n(210),f=20971520,h=60,m=a.createClass({displayName:"FilesDialog",getInitialState:function(){return{files:i(p.getUploadFiles())}},updateFiles:function(e){e&&this.setState({files:i(e)})},show:function(){this.refs.filesDialog.show()},hide:function(){this.refs.filesDialog.hide()},showNameInput:function(){if(this.checkCount()){var e=this.refs;e.filenameDialog.show();var t=s.findDOMNode(e.filename);t.value=this.params.name||"",setTimeout(function(){r(t)},500),this.setState({})}},componentDidMount:function(){var e=this;u.on("uploadFile",function(t,n){e.submit(n)}),u.on("showFilenameInput",function(t,n){e.params=n,e.showNameInput()}),u.on("download",function(t,n){e.startDownload(n)})},checkParams:function(){var e=s.findDOMNode(this.refs.filename),t=e.value.trim();return t?t.length>h?void o("The filename length cannot exceed 60.",e):/[\\/:*?"<>|\s]/.test(t)?void o('The filename cannot contain \\/:*?"<>| and spaces.',e):(this.params.name=t,!0):void o("The filename cannot be empty.",e)},checkCount:function(){var e=this.state.files;return e.length>=h?(this.show(),setTimeout(function(){g.alert("The number of uploaded files cannot exceed 60,\ndelete the unnecessary files first.")},10),!1):!0},onConfirm:function(){if(!this.pending&&this.checkParams()&&this.checkCount()){var e=this;e.pending=!0;var t=e.params.name;p.values.checkFile({name:t,count:e.state.files.length},function(n,r){if(e.pending=!1,!n)return c.showSystemError(r);if(e.updateFiles(n.files),n.isMax)return g.alert("The number of uploaded files cannot exceed 60,\ndelete the unnecessary files first.");var o=function(t){t&&(e.pending=!0,p.values.upload(JSON.stringify(e.params),function(t,n){return e.pending=!1,t?0!==t.ec?g.alert(t.em):(e.params="",e.refs.filenameDialog.hide(),e.updateFiles(t.files),void e.show()):c.showSystemError(n)},{contentType:"application/json",processData:!1}))};return n.exists?void g.confirm("The name `"+t+"` already exists, whether to overwrite it?",o):o(!0)})}},startDownload:function(e){s.findDOMNode(this.refs.name).value=e.name,s.findDOMNode(this.refs.headers).value=e.headers||"",s.findDOMNode(this.refs.content).value=e.base64||"",s.findDOMNode(this.refs.downloadForm).submit()},download:function(e){this.checkParams()&&this.startDownload(this.params)},submit:function(e){if(!e.size)return g.alert("The file size cannot be empty.");if(e.size>f)return g.alert("The file size cannot exceed 20m.");var t=this,n={};c.readFileAsBase64(e,function(r){n.base64=r,s.findDOMNode(t.refs.file).value="",n.name=(e.name||"").replace(/[\\/:*?"<>|\s]/g,""),t.params=n,t.showNameInput()})},uploadFile:function(){var e=s.findDOMNode(this.refs.uploadFileForm);this.submit(new FormData(e).get("file"))},selectFile:function(){this.checkCount()&&s.findDOMNode(this.refs.file).click()},remove:function(e){var t=e.target.getAttribute("data-name"),n=this;g.confirm("Are you sure to delete '"+t+"'.",function(e){e&&p.values.removeFile({name:t},function(e,t){return e?0!==e.ec?g.alert(e.em):void n.updateFiles(e.files):c.showSystemError(t)})})},downloadFile:function(e){var t=e.target.getAttribute("data-name");window.open("cgi-bin/values/download?name="+encodeURIComponent(t))},render:function(){var e=this,t=(e.params||"").title,n=e.state.files;return a.createElement(l,{wstyle:"w-files-dialog",ref:"filesDialog"},a.createElement("div",{className:"modal-body"},a.createElement("button",{type:"button",className:"close","data-dismiss":"modal"},a.createElement("span",{"aria-hidden":"true"},"×")),a.createElement("h4",null,a.createElement("a",{className:"w-help-menu",title:"Click here to see help",href:"https://avwo.github.io/whistle/webui/files.html",target:"_blank"},a.createElement("span",{className:"glyphicon glyphicon-question-sign"})),"System Files"),a.createElement("button",{className:"w-files-upload-btn",onClick:e.selectFile},a.createElement("span",{className:"glyphicon glyphicon-arrow-up"}),"Drop file here or click to browse (size <= 20m)"),a.createElement("table",{className:"table",style:{display:n.length?void 0:"none"}},a.createElement("thead",null,a.createElement("th",{className:"w-files-order"},"#"),a.createElement("th",{className:"w-files-date"},"Date"),a.createElement("th",{className:"w-files-path"},"Path"),a.createElement("th",{className:"w-files-operation"},"Operation")),a.createElement("tbody",null,n.map(function(t,n){var r="/$whistle/"+t.name;return a.createElement("tr",{key:t.name},a.createElement("th",{className:"w-files-order"},n+1),a.createElement("td",{className:"w-files-date"},t.date),a.createElement("td",{className:"w-files-path"},r),a.createElement("td",{className:"w-files-operation"},a.createElement("a",{className:"w-copy-text-with-tips","data-clipboard-text":r},"Copy path"),a.createElement("a",{"data-name":t.name,onClick:e.downloadFile},"Download"),a.createElement("a",{"data-name":t.name,onClick:e.remove},"Delete")))})))),a.createElement("div",{className:"modal-footer"},a.createElement("button",{type:"button",className:"btn btn-default","data-dismiss":"modal"},"Close")),a.createElement("form",{ref:"uploadFileForm",encType:"multipart/form-data",style:{display:"none"}},a.createElement("input",{ref:"file",onChange:this.uploadFile,name:"file",type:"file"})),a.createElement(l,{ref:"filenameDialog",wstyle:"w-files-info-dialog"},a.createElement("div",{className:"modal-header"},t||"Modify the filename",a.createElement("button",{type:"button",className:"close","data-dismiss":"modal"},a.createElement("span",{"aria-hidden":"true"},"×"))),a.createElement("div",{className:"modal-body"},a.createElement("label",{className:"w-files-name"},"Name:",a.createElement("input",{ref:"filename",maxLength:"60",placeholder:"Input the filename",type:"text",className:"form-control"}))),a.createElement("div",{className:"modal-footer"},a.createElement("button",{type:"button",className:"btn btn-default",onClick:this.download},"Download"),a.createElement("button",{type:"button",className:"btn btn-primary",onClick:this.onConfirm},"Confirm"),a.createElement("button",{type:"button",className:"btn btn-default","data-dismiss":"modal"},"Close"))),a.createElement("form",{ref:"downloadForm",action:"cgi-bin/download",style:{display:"none"},method:"post",target:"downloadTargetFrame"},a.createElement("input",{ref:"name",name:"filename",type:"hidden"}),a.createElement("input",{ref:"type",name:"type",type:"hidden",value:"rawBase64"}),a.createElement("input",{ref:"headers",name:"headers",type:"hidden"}),a.createElement("input",{ref:"content",name:"content",type:"hidden"})))}}),A=a.createClass({displayName:"FilesDialogWrap",show:function(e){this.refs.filesDialog.show(e)},hide:function(){this.refs.filesDialog.hide()},shouldComponentUpdate:function(){return!1},render:function(){return a.createElement(m,{ref:"filesDialog"})}});e.exports=A},function(e,t,n){var r=n(609);"string"==typeof r&&(r=[[e.id,r,""]]);n(4)(r,{});r.locals&&(e.exports=r.locals)},function(e,t,n){t=e.exports=n(3)(),t.push([e.id,".w-files-dialog .modal-dialog{width:900px}.w-files-dialog h4{margin-top:10px}.w-files-upload-btn{border:1px solid #ccc;border-radius:5px;display:block;background:#fff;line-height:60px;text-align:center;margin:20px 0;color:#aaa;font-size:1pc;width:55pc;font-weight:400}.w-files-upload-btn:hover{color:#aaa}.w-files-upload-btn span{font-size:24px;vertical-align:sub;margin-right:10px}.w-files-order{width:36px}.w-files-date{width:205px}.w-files-path{word-break:break-all;word-wrap:break-word}.w-files-operation{width:15pc}.w-files-operation a{margin-right:15px;display:inline-block;white-space:nowrap}.w-files-operation a:last-child{color:#f66}.w-files-operation a:last-child:hover{color:red}.w-files-name{display:block;margin:20px 0;white-space:nowrap}.w-files-info-dialog .modal-dialog{width:45pc}.w-files-name input{display:inline-block;width:620px;margin-left:20px;font-weight:400}.w-files-save-in{padding-bottom:10px}.w-files-save-in label{margin-right:20px;font-weight:400}label:first-child{font-weight:700}.w-files-save-in input{margin-right:5px}.w-files-save-in label:last-child{margin-left:20px}.w-files-info-dialog .modal-header{font-weight:700}.w-files-dialog thead th{padding:8px}",""])},function(e,t,n){"use strict";var r=n(6),o=n(280),i=r.createClass({displayName:"UpdateAllBtn",getInitialState:function(){return{disabled:!0}},componentDidMount:function(){var e=this;o.on("setUpdateAllBtnState",function(t,n){e.setState({disabled:!n})})},updateAllPlugins:function(){!this.state.disabled&&o.trigger("updateAllPlugins")},render:function(){var e=this.state.disabled||this.props.hide;return r.createElement("a",{onClick:this.updateAllPlugins,className:"w-plugins-menu w-plugin-update-btn"+(e?" hide":""),draggable:"false"},r.createElement("span",{className:"glyphicon glyphicon-refresh"}),"UpdateAll")}});e.exports=i},function(e,t,n){"use strict";function r(e,t){return t=t||e.filename,t+"."+(e.type||"crt")}function o(e,t){var n=new FileReader;n.readAsText(e),n.onload=function(){t(n.result)}}n(187),n(612);var i=n(6),a=n(39),s=n(199),l=n(293),c=n(614),u=n(210),d=n(281),p=n(207),g={color:"#5bbd72"},f=131072,h=i.createClass({displayName:"HistoryData",getInitialState:function(){return{list:[]}},show:function(e,t){var n,o=[];this._certsDir=this._certsDir||t,Object.keys(e).forEach(function(t){var a,s=e[t],l=new Date(s.notBefore),c=new Date(s.notAfter),u="",d=Date.now();l.getTime()>d?(a=!0,u="Invalid"):c.getTime()<d&&(a=!0,u="Expired");var p={dir:s.dir,filename:t,domain:s.dnsName,mtime:s.mtime,type:s.type,validity:l.toLocaleString()+" ~ "+c.toLocaleString(),status:u||i.createElement("span",{className:"glyphicon glyphicon-ok",style:g}),isInvalid:a};"root"===t?(p.displayName="root (Root CA)",n=p,p.readOnly=!0):("z"===t[0]&&"/"===t[1]&&(t=t.substring(2),p.readOnly=!0),p.displayName=r(p,t),o.push(p))}),o.sort(function(e,t){return e.readOnly?t.readOnly?0:-1:t.readOnly?1:s.compare(t.mtime,e.mtime)}),n&&o.unshift(n),this.refs.certsInfoDialog.show(),this._hideDialog=!1,this.setState({list:o})},hide:function(){this.refs.certsInfoDialog.hide(),this._hideDialog=!0},showRemoveTips:function(e){var t=(e.dir||"").replace(/\\/g,"/");t+=/\/$/.test(t)?"":"/";var n=t+r(e),o=t+e.filename+".key";this.refs.tipsDialog.show({title:"Delete the following files and restart whistle:",tips:o+"\n"+n,dir:e.dir})},handleCgi:function(e,t){return e?void this.show(e):s.showSystemError(t)},removeCert:function(e){var t=this;u.confirm("Are you sure to delete '"+r(e)+"'.",function(n){n&&d.certs.remove({filename:e.filename,type:e.type},t.handleCgi)})},shouldComponentUpdate:function(){return this._hideDialog===!1},formatFiles:function(e){for(var t,n=0,r=e.length;r>n;n++){var o=e[n];if(o.size>f||!(o.size>0))return void p.error("The uploaded certificate size cannot exceed 128K.");var i=o.name;if(!/\.(crt|cer|pem|key)/.test(i))return void p.error("Only files with .key, .crt, .cer, .pem suffixes are supported.");var a=RegExp.$1;if(i=i.slice(0,-4),!i||i.length>128)return void p.error("The file name cannot be empty and the length cannot exceed 128.");t=t||{};var s=t[i]||{};s["key"==a?"key":"cert"]=o,"key"!==a&&(s.type=a),t[i]=s}if(t){var l;return Object.keys(t).forEach(function(e){var n=t[e];n.key&&n.cert&&(l=l||{},l[e]=n)}),l}},handleChange:function(e){var t=this,n=a.findDOMNode(t.refs.uploadCerts),r=n.files&&t.formatFiles(n.files);if(n.value="",r){if(r.root){var i=t._certsDir||"~/.WhistleAppData/custom_certs";u.alert("Root CA cannot be uploaded by UI.\nYou must manually upload to follow directory and restart Whistle:\n"+i),delete r.root}var s=function(){d.certs.upload(JSON.stringify(r),t.handleCgi)},l=Object.keys(r),c=2*l.length;l.map(function(e){var t=r[e];o(t.key,function(e){t.key=e,0===--c&&s()}),o(t.cert,function(e){t.cert=e,0===--c&&s()})})}},showUpload:function(){a.findDOMNode(this.refs.uploadCerts).click()},render:function(){var e=this,t=e.state.list||[];return i.createElement(l,{ref:"certsInfoDialog",wstyle:"w-certs-info-dialog"},i.createElement("div",{className:"modal-body"},i.createElement("button",{type:"button",className:"close",onClick:e.hide},i.createElement("span",{"aria-hidden":"true"},"×")),i.createElement("h4",{className:"w-certs-info-title"},i.createElement("a",{className:"w-help-menu",title:"Click here to see help",href:"https://avwo.github.io/whistle/custom-certs.html",target:"_blank"},i.createElement("span",{className:"glyphicon glyphicon-question-sign"})),"Custom Certs"),i.createElement("table",{className:"table"},i.createElement("thead",null,i.createElement("th",{className:"w-certs-info-order"},"#"),i.createElement("th",{className:"w-certs-info-filename"},"Filename"),i.createElement("th",{className:"w-certs-info-domain"},"DNS Name"),i.createElement("th",{className:"w-certs-info-validity"},"Validity"),i.createElement("th",{className:"w-certs-info-status"},"Status")),i.createElement("tbody",null,t.length?t.map(function(t,n){return i.createElement("tr",{className:t.isInvalid?"w-cert-invalid":void 0},i.createElement("th",{className:"w-certs-info-order"},n+1),i.createElement("td",{className:"w-certs-info-filename",title:t.filename},t.readOnly?i.createElement("span",{className:"glyphicon glyphicon-lock"}):void 0,t.displayName||t.filename,i.createElement("br",null),i.createElement("a",{className:"w-delete",onClick:function(){t.readOnly?e.showRemoveTips(t):e.removeCert(t)},title:"",style:{color:t.readOnly?"#337ab7":void 0}},t.readOnly?"View path":"Delete")),i.createElement("td",{className:"w-certs-info-domain",title:t.domain},t.domain),i.createElement("td",{className:"w-certs-info-validity",title:t.validity},t.validity),i.createElement("td",{className:"w-certs-info-status"},t.status))}):i.createElement("tr",null,i.createElement("td",{colSpan:"5",className:"w-empty"},"Empty"))))),i.createElement("div",{className:"modal-footer"},i.createElement("input",{ref:"uploadCerts",style:{display:"none"},type:"file",accept:".crt,.cer,.pem,.key",multiple:"multiple",onChange:e.handleChange}),i.createElement("button",{type:"button",style:{display:d.isDiableCustomCerts()?"none":void 0},className:"btn btn-primary",onClick:e.showUpload},"Upload"),i.createElement("button",{type:"button",className:"btn btn-default","data-dismiss":"modal"},"Close")),i.createElement(c,{ref:"tipsDialog"}))}});e.exports=h},function(e,t,n){var r=n(613);"string"==typeof r&&(r=[[e.id,r,""]]);n(4)(r,{});r.locals&&(e.exports=r.locals)},function(e,t,n){t=e.exports=n(3)(),t.push([e.id,".w-certs-info-dialog .modal-dialog{width:64pc}.w-certs-info-order{width:50px}.w-certs-info-validity{width:330px}.w-certs-info-status{width:75pt}.w-cert-invalid td,.w-cert-invalid th{color:red}.w-certs-info-filename a{font-size:9pt;cursor:pointer}.w-certs-info-filename .glyphicon-lock{margin-right:5px}.w-certs-info-dialog td{overflow:hidden;text-overflow:ellipsis}.w-certs-info-filename{width:220px}.w-certs-info-dialog td,.w-certs-info-dialog th{vertical-align:middle!important}",""])},function(e,t,n){"use strict";n(187);var r=n(6),o=n(293),i=r.createClass({displayName:"TipsDialog",getInitialState:function(){return{}},show:function(e){this._hideDialog=!1,this.setState(e),this.refs.tipsDialog.show()},hide:function(){this.refs.tipsDialog.hide(),this._hideDialog=!0},shouldComponentUpdate:function(){return this._hideDialog===!1},render:function(){var e=this.state;return r.createElement(o,{ref:"tipsDialog",wstyle:"w-dns-servers-dialog w-tips-dialog"},r.createElement("div",{className:"modal-header"},e.title,r.createElement("button",{type:"button",className:"close","data-dismiss":"modal"},r.createElement("span",{"aria-hidden":"true"},"×"))),r.createElement("pre",{className:"modal-body"},e.tips),r.createElement("div",{className:"modal-footer"},r.createElement("button",{type:"button","data-dismiss":"modal",className:"btn btn-primary w-copy-text-with-tips","data-clipboard-text":e.dir},"Copy directory"),r.createElement("button",{type:"button",className:"btn btn-default","data-dismiss":"modal"},"Close")))}});e.exports=i},function(e,t,n){"use strict";function r(e,t){var n="plugin."+e.substring(8);return 0===t.indexOf(e)||0===t.indexOf(n)?t:n+"/"+t}n(616);var o=n(6),i=n(293),a=n(199),s=n(281),l=n(618),c=o.createClass({displayName:"SyncDialog",getInitialState:function(){return{}},show:function(e,t,n,r){var o=this;o.rulesModal=t,o.valuesModal=n,o.plugin=e,a.isString(e.rulesUrl)||(e.rulesUrl=null),a.isString(e.valuesUrl)||(e.valuesUrl=null),(e.rulesUrl||e.valuesUrl)&&o.setState(e,"function"==typeof r?r:function(){o.refs.syncDialog.show()})},_syncRules:function(e){var t=this,n=t.state.rulesUrl;if(!t.loadingRules&&a.isString(n)){t.loadingRules=!0,e&&(n+=(-1===n.indexOf("?")?"?":"&")+"history="+encodeURIComponent(e));var o=s.createCgi(r(t.state.moduleName,n));o(function(n,r){return t.loadingRules=!1,t.setState({}),n?(t.plugin.selectedRulesHistory=e,void t.refs.kvDialog.show(n,t.rulesModal,t.valuesModal,!1,e)):a.showSystemError(r)}),t.setState({})}},_syncValues:function(e){var t=this,n=t.state.valuesUrl;if(!t.loadingValues&&a.isString(n)){t.loadingValues=!0,e&&(n+=(-1===n.indexOf("?")?"?":"&")+"history="+encodeURIComponent(e));var o=s.createCgi(r(t.state.moduleName,n));o(function(n,r){return t.loadingValues=!1,t.setState({}),n?(t.plugin.selectedValuesHistory=e,void t.refs.kvDialog.show(n,t.rulesModal,t.valuesModal,!0,e)):a.showSystemError(r)}),t.setState({})}},syncRules:function(){this._syncRules(this.plugin.selectedRulesHistory)},syncValues:function(){this._syncValues(this.plugin.selectedValuesHistory)},onHistoryChange:function(e,t){t?this._syncValues(e):this._syncRules(e)},render:function(){var e=this.state;return o.createElement(i,{ref:"syncDialog",wstyle:"w-sync-dialog"},o.createElement("div",{className:"modal-body"},o.createElement("button",{onClick:this.syncRules,
104
- disabled:this.loadingRules||!a.isString(e.rulesUrl),type:"button",className:"btn btn-primary"},o.createElement("span",{className:"glyphicon glyphicon-list"})," ",this.loadingRules?"Loading":"Sync"," Rules"),o.createElement("button",{onClick:this.syncValues,disabled:this.loadingValues||!a.isString(e.valuesUrl),type:"button",className:"btn btn-default"},o.createElement("span",{className:"glyphicon glyphicon-folder-close"})," ",this.loadingValues?"Loading":"Sync"," Values")),o.createElement("div",{className:"modal-footer"},o.createElement("button",{type:"button",className:"btn btn-default","data-dismiss":"modal"},"Close")),o.createElement(l,{onHistoryChange:this.onHistoryChange,ref:"kvDialog"}))}}),u=o.createClass({displayName:"SyncDialogWrap",shouldComponentUpdate:function(){return!1},show:function(e,t,n,r){this.refs.syncDialog.show(e,t,n,r)},syncRules:function(){this.refs.syncDialog.syncRules()},syncValues:function(){this.refs.syncDialog.syncValues()},render:function(){return o.createElement(c,{ref:"syncDialog"})}});e.exports=u},function(e,t,n){var r=n(617);"string"==typeof r&&(r=[[e.id,r,""]]);n(4)(r,{});r.locals&&(e.exports=r.locals)},function(e,t,n){t=e.exports=n(3)(),t.push([e.id,".w-sync-dialog .modal-dialog{width:420px}.w-sync-dialog .modal-body .btn{display:block;width:398px;line-height:40px;font-size:18px;margin:10px 0}.w-sync-dialog .modal-body .btn span{margin-right:10px}.w-history-record-list{margin:25px 0 15px 10px;width:510px;display:inline-block}",""])},function(e,t,n){"use strict";var r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};n(187),n(619);var o=n(6),i=n(293),a=n(199),s=n(280),l=n(210),c=o.createClass({displayName:"KVDialog",getInitialState:function(){return{list:[],history:[]}},show:function(e,t,n,o,i){this.isValues=o,this.refs.kvDialog.show(),this._hideDialog=!1;var s=[];if(e&&Array.isArray(e.list)&&"object"===r(e.data)){var l=0;e.list.forEach(function(e){e&&360>l&&"string"==typeof e&&e.length<=256&&(++l,s.push(e))}),e.selected&&(i=-1===s.indexOf(e.selected)?"":e.selected),e=e.data}this.setState({selectedHistory:i,history:s,list:a.parseImportData(e||"",o?n:t,o)})},hide:function(){this.refs.kvDialog.hide(),this._hideDialog=!0},shouldComponentUpdate:function(){return this._hideDialog===!1},selectHistory:function(e){var t=this.props.onHistoryChange;t&&t(e.target.value,this.isValues)},viewContent:function(e){a.openEditor(e.target.title)},confirm:function(){var e,t={},n=this;return n.state.list.forEach(function(n){e=e||n.isConflict,t[n.name]=n.value}),e?void l.confirm("Conflict with existing content, whether to continue to overwrite them?",function(e){e&&s.trigger(n.isValues?"uploadValues":"uploadRules",t)}):s.trigger(n.isValues?"uploadValues":"uploadRules",t)},remove:function(e){var t=this;l.confirm("Are you sure to delete '"+e.name+"'.",function(n){if(n){var r=t.state.list.indexOf(e);-1!==r&&(t.state.list.splice(r,1),t.setState({}))}})},render:function(){var e=this,t=e.state,n=t.list||[],r=t.history,a=t.selectedHistory||"",s=!n.length;return o.createElement(i,{ref:"kvDialog",wstyle:"w-kv-dialog"},o.createElement("div",{className:"modal-body"},o.createElement("button",{type:"button",className:"close",onClick:e.hide},o.createElement("span",{"aria-hidden":"true"},"×")),r.length?o.createElement("label",null,this.isValues?"Values":"Rules"," History:",o.createElement("select",{value:a,onChange:this.selectHistory,className:"form-control w-history-record-list"},o.createElement("option",{value:""},"Select history"),r.map(function(e){return o.createElement("option",{value:e},e)}))):void 0,o.createElement("table",{className:"table"},o.createElement("thead",null,o.createElement("th",{className:"w-kv-name"},"Name"),o.createElement("th",{className:"w-kv-operation"},"Operation")),o.createElement("tbody",null,s?o.createElement("tr",null,o.createElement("td",{colSpan:"2",className:"w-empty"},"Empty")):n.map(function(t,n){return o.createElement("tr",{className:t.isConflict?"w-kv-conflict":void 0},o.createElement("th",{title:t.name,className:"w-kv-name"},t.name),o.createElement("td",{className:"w-kv-operation"},o.createElement("a",{title:t.value,onClick:e.viewContent},"Content"),o.createElement("a",{"data-name":t.name,onClick:function(){e.remove(t)}},"Delete"),o.createElement("strong",null,t.isConflict?"[Conflict]":"")))})))),o.createElement("div",{className:"modal-footer"},o.createElement("button",{type:"button",className:"btn btn-primary",disabled:s,onClick:this.confirm,"data-dismiss":"modal"},"Add to ",this.isValues?"Values":"Rules"),o.createElement("button",{type:"button",className:"btn btn-default","data-dismiss":"modal"},"Close")))}});e.exports=c},function(e,t,n){var r=n(620);"string"==typeof r&&(r=[[e.id,r,""]]);n(4)(r,{});r.locals&&(e.exports=r.locals)},function(e,t,n){t=e.exports=n(3)(),t.push([e.id,".w-kv-dialog .modal-dialog{width:666px}.w-kv-name{width:25pc}.w-kv-operation a:nth-child(2){color:#f66;margin:0 20px}.w-kv-conflict th,.w-kv-operation strong{color:#f66}",""])}]);
102
+ r.trigger("activate.bs.scrollspy")},t.prototype.clear=function(){e(this.selector).parentsUntil(this.options.target,".active").removeClass("active")};var r=e.fn.scrollspy;e.fn.scrollspy=n,e.fn.scrollspy.Constructor=t,e.fn.scrollspy.noConflict=function(){return e.fn.scrollspy=r,this},e(window).on("load.bs.scrollspy.data-api",function(){e('[data-spy="scroll"]').each(function(){var t=e(this);n.call(t,t.data())})})}(jQuery),+function(e){"use strict";function t(t){return this.each(function(){var r=e(this),o=r.data("bs.tab");o||r.data("bs.tab",o=new n(this)),"string"==typeof t&&o[t]()})}var n=function(t){this.element=e(t)};n.VERSION="3.3.5",n.TRANSITION_DURATION=150,n.prototype.show=function(){var t=this.element,n=t.closest("ul:not(.dropdown-menu)"),r=t.data("target");if(r||(r=t.attr("href"),r=r&&r.replace(/.*(?=#[^\s]*$)/,"")),!t.parent("li").hasClass("active")){var o=n.find(".active:last a"),i=e.Event("hide.bs.tab",{relatedTarget:t[0]}),a=e.Event("show.bs.tab",{relatedTarget:o[0]});if(o.trigger(i),t.trigger(a),!a.isDefaultPrevented()&&!i.isDefaultPrevented()){var s=e(r);this.activate(t.closest("li"),n),this.activate(s,s.parent(),function(){o.trigger({type:"hidden.bs.tab",relatedTarget:t[0]}),t.trigger({type:"shown.bs.tab",relatedTarget:o[0]})})}}},n.prototype.activate=function(t,r,o){function i(){a.removeClass("active").find("> .dropdown-menu > .active").removeClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!1),t.addClass("active").find('[data-toggle="tab"]').attr("aria-expanded",!0),s?(t[0].offsetWidth,t.addClass("in")):t.removeClass("fade"),t.parent(".dropdown-menu").length&&t.closest("li.dropdown").addClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!0),o&&o()}var a=r.find("> .active"),s=o&&e.support.transition&&(a.length&&a.hasClass("fade")||!!r.find("> .fade").length);a.length&&s?a.one("bsTransitionEnd",i).emulateTransitionEnd(n.TRANSITION_DURATION):i(),a.removeClass("in")};var r=e.fn.tab;e.fn.tab=t,e.fn.tab.Constructor=n,e.fn.tab.noConflict=function(){return e.fn.tab=r,this};var o=function(n){n.preventDefault(),t.call(e(this),"show")};e(document).on("click.bs.tab.data-api",'[data-toggle="tab"]',o).on("click.bs.tab.data-api",'[data-toggle="pill"]',o)}(jQuery),+function(e){"use strict";function t(t){return this.each(function(){var r=e(this),o=r.data("bs.affix"),i="object"==typeof t&&t;o||r.data("bs.affix",o=new n(this,i)),"string"==typeof t&&o[t]()})}var n=function(t,r){this.options=e.extend({},n.DEFAULTS,r),this.$target=e(this.options.target).on("scroll.bs.affix.data-api",e.proxy(this.checkPosition,this)).on("click.bs.affix.data-api",e.proxy(this.checkPositionWithEventLoop,this)),this.$element=e(t),this.affixed=null,this.unpin=null,this.pinnedOffset=null,this.checkPosition()};n.VERSION="3.3.5",n.RESET="affix affix-top affix-bottom",n.DEFAULTS={offset:0,target:window},n.prototype.getState=function(e,t,n,r){var o=this.$target.scrollTop(),i=this.$element.offset(),a=this.$target.height();if(null!=n&&"top"==this.affixed)return n>o?"top":!1;if("bottom"==this.affixed)return null!=n?o+this.unpin<=i.top?!1:"bottom":e-r>=o+a?!1:"bottom";var s=null==this.affixed,l=s?o:i.top,c=s?a:t;return null!=n&&n>=o?"top":null!=r&&l+c>=e-r?"bottom":!1},n.prototype.getPinnedOffset=function(){if(this.pinnedOffset)return this.pinnedOffset;this.$element.removeClass(n.RESET).addClass("affix");var e=this.$target.scrollTop(),t=this.$element.offset();return this.pinnedOffset=t.top-e},n.prototype.checkPositionWithEventLoop=function(){setTimeout(e.proxy(this.checkPosition,this),1)},n.prototype.checkPosition=function(){if(this.$element.is(":visible")){var t=this.$element.height(),r=this.options.offset,o=r.top,i=r.bottom,a=Math.max(e(document).height(),e(document.body).height());"object"!=typeof r&&(i=o=r),"function"==typeof o&&(o=r.top(this.$element)),"function"==typeof i&&(i=r.bottom(this.$element));var s=this.getState(a,t,o,i);if(this.affixed!=s){null!=this.unpin&&this.$element.css("top","");var l="affix"+(s?"-"+s:""),c=e.Event(l+".bs.affix");if(this.$element.trigger(c),c.isDefaultPrevented())return;this.affixed=s,this.unpin="bottom"==s?this.getPinnedOffset():null,this.$element.removeClass(n.RESET).addClass(l).trigger(l.replace("affix","affixed")+".bs.affix")}"bottom"==s&&this.$element.offset({top:a-t-i})}};var r=e.fn.affix;e.fn.affix=t,e.fn.affix.Constructor=n,e.fn.affix.noConflict=function(){return e.fn.affix=r,this},e(window).on("load",function(){e('[data-spy="affix"]').each(function(){var n=e(this),r=n.data();r.offset=r.offset||{},null!=r.offsetBottom&&(r.offset.bottom=r.offsetBottom),null!=r.offsetTop&&(r.offset.top=r.offsetTop),t.call(n,r)})})}(jQuery)},function(e,t,n){"use strict";function r(){if(!a){var e=['<h5><strong>Uptime:</strong> <span id="whistleUptime">-</span></h5>','<h5><strong>All Requests:</strong> <span id="whistleAllRequests">-</span></h5>','<h5><strong>All QPS:</strong> <span id="whistleAllQps">-</span></h5>','<h5><strong>Requests:</strong> <span id="whistleRequests">-</span></h5>','<h5><strong>QPS:</strong> <span id="whistleQps">-</span></h5>','<h5><strong>CPU:</strong> <span id="whistleCpu">-</span></h5>','<h5><strong>Memory:</strong> <span id="whistleMemory">-</span></h5>'];a=i('<div class="modal fade w-online-dialog"><div class="modal-dialog"><div class="modal-content"><div class="modal-body"><button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button><div class="w-online-dialog-ctn"></div><div class="w-online-dialog-info">'+e.join("")+'</div><a class="w-online-view-dns">View custom DNS servers</a></div><div class="modal-footer"><button type="button" class="btn btn-default" data-dismiss="modal">Close</button></div></div></div></div>').appendTo(document.body)}return a}function o(e){return e.map(function(e){return" "+e})}n(187),n(591);var i=window.jQuery=n(5);n(589);var a,s=n(6),l=n(39),c=n(293),u=n(281),d=n(199),p=n(593),g=s.createClass({displayName:"Online",getInitialState:function(){return{}},componentWillMount:function(){var e=this,t=!0,n=i(document.body);u.on("serverInfo",function(r){e.updateServerInfo(r),r&&e.checkServerChanged(r);var o=!!r;o!==t&&(t=o,t?n.removeClass("w-offline-status"):n.addClass("w-offline-status")),e.setState({server:r})})},checkServerChanged:function(e){e.mac=e.mac||"",void 0===this.macAddr?(this.macAddr=e.mac,this.serverPort=e.port,this.version=e.version,this.baseDir=e.baseDir,this.networkMode=e.networkMode,this.pluginsMode=e.pluginsMode,this.rulesMode=e.rulesMode,this.multiEnv=e.multiEnv,this.rulesOnlyMode=e.rulesOnlyMode):this.version!==e.version||this.baseDir!==e.baseDir||this.rulesOnlyMode!==e.rulesOnlyMode||this.networkMode!==e.networkMode||this.pluginsMode!==e.pluginsMode||this.rulesMode!==e.rulesMode||this.multiEnv!==e.multiEnv?this.refs.confirmReload.show():this.refs.confirmReload.hide()},showServerInfo:function(){this.state.server&&(this.updateServerInfo(this.state.server),a.modal("show"))},updateServerInfo:function(e){if(e){this.state.server=e;var t=[],n=d.escape(e.username);n&&t.push("<h5><strong>Username:</strong> "+n+"</h5>");var o=d.escape(e.host);o&&t.push("<h5><strong>Host:</strong> "+o+"</h5>"),e.pid&&t.push("<h5><strong>PID:</strong> "+e.pid+"</h5>"),e.nodeVersion&&t.push("<h5><strong>Node:</strong> "+e.nodeVersion+"</h5>"),e.version&&t.push("<h5><strong>Whistle:</strong> v"+e.version+"</h5>");var i=e.realPort||e.port;if(i){var s=null!=e.realHost?e.realHost:e.bip;t.push("<h5><strong>Port:</strong> "+(s?s+":"+i:i)+"</h5>")}e.socksPort&&t.push("<h5><strong>SOCKS Port:</strong> "+e.socksPort+"</h5>"),e.httpPort&&t.push("<h5><strong>HTTP Port:</strong> "+e.httpPort+"</h5>"),e.httpsPort&&t.push("<h5><strong>HTTPS Port:</strong> "+e.httpsPort+"</h5>"),e.ipv4.length&&(t.push("<h5><strong>IPv4:</strong></h5>"),t.push("<p>"+e.ipv4.join("<br/>")+"</p>")),e.ipv6.length&&(t.push("<h5><strong>IPv6:</strong></h5>"),t.push("<p>"+e.ipv6.join("<br/>")+"</p>"));var l=r().find(".w-online-dialog-ctn").html(t.join(""));if(l.find("h5:first").attr("title",e.host),!this._initProxyInfo){this._initProxyInfo=!0;var c,p=!0,g=a.find(".w-online-view-dns"),f=!0,h=this;g.on("click",function(){h.refs.dnsDialog.show(u.getServerInfo())});var m=function(e){e&&e.dns?f&&(f=!1,g.show()):f||(f=!0,g.hide())};m(e),setInterval(function(){var e=u.getServerInfo(),t=e&&e.pInfo;if(m(e),!t)return void(p&&(p=!0,a.find(".w-online-dialog-info").hide()));p&&(p=!1,a.find(".w-online-dialog-info").show());var n=a.find("#whistleRequests"),r=a.find("#whistleAllRequests"),o=a.find("#whistleCpu"),i=a.find("#whistleMemory"),s=a.find("#whistleUptime"),l=a.find("#whistleQps"),g=a.find("#whistleAllQps");s.text(d.formatTime(t.uptime)),s.parent().attr("title",t.uptime),n.parent().attr("title","HTTP[S]: "+t.httpRequests+" (Total: "+t.totalHttpRequests+")\nWS[S]: "+t.wsRequests+" (Total: "+t.totalWsRequests+")\nTUNNEL: "+t.tunnelRequests+" (Total: "+t.totalTunnelRequests+")"),r.parent().attr("title","HTTP[S]: "+t.allHttpRequests+" (Total: "+t.totalAllHttpRequests+")\nWS[S]: "+t.allWsRequests+" (Total: "+t.totalAllWsRequests+")\nTUNNEL: "+t.tunnelRequests+" (Total: "+t.totalTunnelRequests+")"),i.parent().attr("title",Object.keys(t.memUsage).map(function(e){return e+": "+t.memUsage[e]}).join("\n")),l.parent().attr("title",["HTTP[s]: "+d.getQps(t.httpQps),"WS[S]: "+d.getQps(t.wsQps),"TUNNEL: "+d.getQps(t.tunnelQps)].join("\n")),g.parent().attr("title",["HTTP[s]: "+d.getQps(t.allHttpQps),"WS[S]: "+d.getQps(t.allWsQps),"TUNNEL: "+d.getQps(t.tunnelQps)].join("\n"));var f=t.httpRequests+t.wsRequests+t.tunnelRequests,h=t.allHttpRequests+t.allWsRequests+t.tunnelRequests,A=t.totalHttpRequests+t.totalWsRequests+t.totalTunnelRequests,M=t.totalAllHttpRequests+t.totalAllWsRequests+t.totalTunnelRequests;if(t.totalCount=f,t.allCount=A,t.totalUICount=h,t.allUICount=M,c&&c.pInfo){var w=c.pInfo;t.memUsage.rss!==w.memUsage.rss&&i.text(d.getSize(t.memUsage.rss)+" (Max: "+d.getSize(t.maxRss)+")"),(f!==w.totalCount||A!==w.allCount)&&n.text(f+" (Total: "+A+")"),(h!==w.totalUICount||M!==w.allUICount)&&r.text(h+" (Total: "+M+")"),t.cpuPercent!==w.cpuPercent&&o.text(t.cpuPercent+" (Max: "+t.maxCpu+")"),t.totalQps!==w.totalQps&&l.text(d.getQps(t.totalQps)+" (Max: "+d.getQps(t.maxQps)+")"),t.totalAllQps!==w.totalAllQps&&g.text(d.getQps(t.totalAllQps)+" (Max: "+d.getQps(t.maxAllQps)+")")}else n.text(f+" (Total: "+A+")"),r.text(h+" (Total: "+M+")"),o.text(t.cpuPercent+" (Max: "+t.maxCpu+")"),i.text(d.getSize(t.memUsage.rss)+" (Max: "+d.getSize(t.maxRss)+")"),l.text(d.getQps(t.totalQps)+" (Max: "+d.getQps(t.maxQps)+")"),g.text(d.getQps(t.totalAllQps)+" (Max: "+d.getQps(t.maxAllQps)+")");c=e},1e3)}}},reload:function(){location.reload()},getTitle:function(e){if(e){var t=[];e.host&&t.push("Host: "+e.host),e.pid&&t.push("PID: "+e.pid);var n=e.realPort||e.port;n&&t.push("Port: "+n),e.socksPort&&t.push("SOCKS Port: "+e.socksPort),e.httpPort&&t.push("HTTP Port: "+e.httpPort),e.httpsPort&&t.push("HTTPS Port: "+e.httpsPort),e.ipv4.length&&(t.push("IPv4:"),t.push.apply(t,o(e.ipv4))),e.ipv6.length&&(t.push("IPv6:"),t.push.apply(t,o(e.ipv6)));var r=e.pInfo;return r&&(t.push("Uptime: "+d.formatTime(r.uptime)),t.push("All Requests: "+(r.allHttpRequests+r.allWsRequests+r.tunnelRequests+" (Total: "+(r.totalAllHttpRequests+r.totalAllWsRequests+r.totalTunnelRequests)+")")),t.push("Requests: "+(r.httpRequests+r.wsRequests+r.tunnelRequests+" (Total: "+(r.totalHttpRequests+r.totalWsRequests+r.totalTunnelRequests)+")")),r.cpuPercent&&t.push("CPU: "+r.cpuPercent),t.push("Memory: "+d.getSize(r.memUsage.rss)),t.push("QPS: "+d.getQps(r.totalQps)),t.push("All QPS: "+d.getQps(r.totalAllQps))),e.dns&&t.push("Use custom DNS servers"),t.join("\n")}},setTitle:function(){var e=u.getServerInfo()||this.state.server;l.findDOMNode(this.refs.onlineMenu).title=this.getTitle(e)},render:function(){var e=this.state.server;return s.createElement("a",{ref:"onlineMenu",draggable:"false",onMouseEnter:this.setTitle,className:"w-online-menu w-online"+(e?"":" w-offline"),onClick:this.showServerInfo},s.createElement("span",{className:"glyphicon glyphicon-stats"}),e?"Online":"Offline",e&&e.dns?s.createElement("span",null,e.doh?"(DOH)":e.r6?"(IPv6)":"(IPv4)"):null,s.createElement(c,{ref:"confirmReload",wstyle:"w-confirm-reload-dialog w-confirm-reload-global"},s.createElement("div",{className:"modal-body w-confirm-reload"},s.createElement("button",{type:"button",className:"close","data-dismiss":"modal"},s.createElement("span",{"aria-hidden":"true"},"×")),"The proxy has been modified.",s.createElement("br",null),"Do you want to reload this page."),s.createElement("div",{className:"modal-footer"},s.createElement("button",{type:"button",className:"btn btn-default","data-dismiss":"modal"},"Cancel"),s.createElement("button",{type:"button",className:"btn btn-primary",onClick:this.reload},"Reload"))),s.createElement(p,{ref:"dnsDialog"}))}});e.exports=g},function(e,t,n){var r=n(592);"string"==typeof r&&(r=[[e.id,r,""]]);n(4)(r,{});r.locals&&(e.exports=r.locals)},function(e,t,n){t=e.exports=n(3)(),t.push([e.id,".w-online-dialog .modal-dialog{width:20pc}.w-online-dialog-info,.w-online-view-dns{display:none}.w-online-dialog-ctn h5{padding:5px 0;margin:0;text-overflow:ellipsis;max-width:100%;white-space:nowrap;overflow:hidden}.w-online-dialog-ctn p{margin:-23px 0 5px 36px}.w-confirm-reload-dialog{z-index:1000000000}.w-confirm-reload-global{z-index:1000000001}.w-confirm-reload-dialog .modal-dialog{width:280px}.w-confirm-reload-dialog .w-confirm-reload{font-weight:700;line-height:1.8;padding:10px 20px}.w-confim-reload-note{color:red;margin:0}.w-online-menu>span{margin-left:5px;font-size:13px}.w-dns-servers-dialog{z-index:1100}.w-dns-servers-dialog pre{font-size:14px;font-weight:700}.w-dns-servers-dialog .modal-dialog{width:420px}.w-tips-dialog .modal-dialog{width:35pc!important}#appearanceMode{display:inline-block;width:150px;margin-left:10px;height:2pc;font-size:13px;font-weight:400}",""])},function(e,t,n){"use strict";n(187);var r=n(6),o=n(293),i=r.createClass({displayName:"DNSDialog",getInitialState:function(){return{servers:""}},show:function(e){if(e&&e.dns){this._hideDialog=!1;var t=e.dns;e.doh||(t=e.dns.split(",").map(function(e,t){return"DNS Server"+(t+1)+": "+e}).join("\n")),this.setState({ipv6:e.r6,useDefault:e.df,servers:t,doh:e.doh}),this.refs.dnsServersDialog.show()}},hide:function(){this.refs.dnsServersDialog.hide(),this._hideDialog=!0},shouldComponentUpdate:function(){return this._hideDialog===!1},render:function(){var e,t=this.state;return e=t.doh?"Resolve IP address from follow URL:":"Resolve "+(t.ipv6?"IPv6":"IPv4")+" address from follow DNS servers"+(t.useDefault?" first":"")+":",r.createElement(o,{ref:"dnsServersDialog",wstyle:"w-dns-servers-dialog"},r.createElement("div",{className:"modal-header"},e,r.createElement("button",{type:"button",className:"close","data-dismiss":"modal"},r.createElement("span",{"aria-hidden":"true"},"×"))),r.createElement("pre",{className:"modal-body"},t.servers),r.createElement("div",{className:"modal-footer"},r.createElement("button",{type:"button","data-dismiss":"modal",className:"btn btn-primary w-copy-text-with-tips","data-clipboard-text":t.servers},"Copy"),r.createElement("button",{type:"button",className:"btn btn-default","data-dismiss":"modal"},"Close")))}});e.exports=i},function(e,t,n){"use strict";n(187),n(595);var r=n(6),o=r.createClass({displayName:"EditorSettings",render:function(){return r.createElement("div",{className:"w-editor-settings"},r.createElement("p",null,r.createElement("label",null,r.createElement("span",{className:"w-label"},"Theme:"),r.createElement("select",{value:this.props.theme,onChange:this.props.onThemeChange,className:"form-control"},r.createElement("option",{value:"default"},"default"),r.createElement("option",{value:"ambiance"},"ambiance"),r.createElement("option",{value:"blackboard"},"blackboard"),r.createElement("option",{value:"cobalt"},"cobalt"),r.createElement("option",{value:"eclipse"},"eclipse"),r.createElement("option",{value:"elegant"},"elegant"),r.createElement("option",{value:"erlang-dark"},"erlang-dark"),r.createElement("option",{value:"lesser-dark"},"lesser-dark"),r.createElement("option",{value:"midnight"},"midnight"),r.createElement("option",{value:"monokai"},"monokai"),r.createElement("option",{value:"neat"},"neat"),r.createElement("option",{value:"night"},"night"),r.createElement("option",{value:"rubyblue"},"rubyblue"),r.createElement("option",{value:"solarized dark"},"solarized dark"),r.createElement("option",{value:"solarized light"},"solarized light"),r.createElement("option",{value:"twilight"},"twilight"),r.createElement("option",{value:"vibrant-ink"},"vibrant-ink"),r.createElement("option",{value:"xq-dark"},"xq-dark"),r.createElement("option",{value:"xq-light"},"xq-light")))),r.createElement("p",null,r.createElement("label",null,r.createElement("span",{className:"w-label"},"Font size:"),r.createElement("select",{value:this.props.fontSize,onChange:this.props.onFontSizeChange,className:"form-control"},r.createElement("option",{value:"13px"},"13px"),r.createElement("option",{value:"14px"},"14px"),r.createElement("option",{value:"16px"},"16px"),r.createElement("option",{value:"18px"},"18px"),r.createElement("option",{value:"20px"},"20px"),r.createElement("option",{value:"22px"},"22px"),r.createElement("option",{value:"24px"},"24px"),r.createElement("option",{value:"26px"},"26px"),r.createElement("option",{value:"28px"},"28px"),r.createElement("option",{value:"30px"},"30px"),r.createElement("option",{value:"32px"},"32px"),r.createElement("option",{value:"34px"},"34px"),r.createElement("option",{value:"36px"},"36px")))),r.createElement("p",{className:"w-editor-settings-box"},r.createElement("label",null,r.createElement("input",{checked:this.props.lineNumbers,onChange:this.props.onLineNumberChange,type:"checkbox"})," ","Show line number")),r.createElement("p",{className:"w-editor-settings-box"},r.createElement("label",null,r.createElement("input",{checked:this.props.lineWrapping,onChange:this.props.onLineWrappingChange,type:"checkbox"})," ","Auto line wrapping")))}});e.exports=o},function(e,t,n){var r=n(596);"string"==typeof r&&(r=[[e.id,r,""]]);n(4)(r,{});r.locals&&(e.exports=r.locals)},function(e,t,n){t=e.exports=n(3)(),t.push([e.id,".w-editor-settings label,.w-editor-settings-box label{font-weight:400;white-space:nowrap}.w-editor-settings label .w-label{display:inline-block;width:60px;text-align:right;margin-right:5px}.w-editor-settings select{width:186px}.w-rules-settings-dialog .w-editor-settings select{width:260px}.w-editor-settings-box{padding-left:65px;margin:10px!important}.w-editor-settings .form-control{display:inline-block;margin-left:5px}.w-editor-settings p{margin:5px}",""])},function(e,t,n){"use strict";var r=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e};n(187),n(598);var o=n(5),i=n(6),a=n(39),s=n(283),l=n(293),c=n(342),u=n(281),d=n(280),p=n(199),g=n(284),f={backgroundColor:"lightyellow"},h=/[^\s]/,m=i.createClass({displayName:"Settings",getInitialState:function(){var e=c.getDragger();return e.onDrop=e.onDrop.bind(this),o.extend(this.getNetworkSettings(),{dragger:e})},getNetworkSettings:function(){return o.extend(u.getFilterText(),{columns:c.getAllColumns()})},onColumnsResort:function(){d.trigger("onColumnsChanged"),this.setState({columns:c.getAllColumns()})},resetColumns:function(){c.reset(),this.onColumnsResort()},componentDidMount:function(){var e=this;d.on("toggleTreeView",function(){e.setState({})})},onNetworkSettingsChange:function(e){var t=e.target,n=t.getAttribute("data-name");if(n&&"path"!==n){if("viewOwn"===n)return u.setOnlyViewOwnData(t.checked),this.setState({}),void d.trigger("filterChanged");if("treeView"===n)return void d.trigger("switchTreeView");if("disabledHNR"===n)return g.set("disabledHNR",t.checked?"":"1"),this.setState({});var r,o,i=this.state;switch(n){case"filter":i.disabledFilterText=!t.checked,r=!0;break;case"excludeFilter":i.disabledExcludeText=!t.checked,r=!0;break;case"filterText":r=!0,i.filterText=t.value;break;case"excludeText":r=!0,i.excludeText=t.value;break;case"networkColumns":o=!0;break;default:c.setSelected(n,t.checked),o=!0}r?(u.setFilterText(i),d.trigger("filterChanged")):o&&d.trigger("onColumnsChanged"),this.setState(i)}},onFilterKeyDown:function(e){(e.ctrlKey||e.metaKey)&&88==e.keyCode&&e.stopPropagation()},onRowsChange:function(e){s.setMaxRows(e.target.value)},showDialog:function(){var e=this.getNetworkSettings();this.setState(e),this.refs.networkSettingsDialog.show()},hideDialog:function(){this.refs.networkSettingsDialog.hide()},editCustomCol:function(e){e.preventDefault();var t=this;t.refs.editCustomColumn.show();var n=e.target.getAttribute("data-name");t.setState({name:n,value:u[n.toLowerCase()],nameChanged:!1},function(){setTimeout(function(){var e=a.findDOMNode(t.refs.newColumnName);e.select(),e.focus()},360)})},onNameChange:function(e){var t=e.target.value;this.setState({value:t.trim(),nameChanged:!0})},changeName:function(){var e=this,t=e.state,n=t.name,r=t.value;u.setCustomColumn({name:n,value:r},function(t,o){return t?(e.refs.editCustomColumn.hide(),u[n.toLowerCase()]=r,e.setState({}),void d.trigger("onColumnTitleChange")):void p.showSystemError(o)})},render:function(){var e=this,t=e.state,n=t.columns,o="1"===g.get("isTreeView");return i.createElement(l,{ref:"networkSettingsDialog",wstyle:"w-network-settings-dialog"},i.createElement("div",{onChange:e.onNetworkSettingsChange,className:"modal-body"},i.createElement("button",{type:"button",className:"close","data-dismiss":"modal","aria-label":"Close"},i.createElement("span",{"aria-hidden":"true"},"×")),i.createElement("fieldset",{className:"network-settings-filter"},i.createElement("legend",null,i.createElement("label",null,i.createElement("input",{checked:!t.disabledExcludeText,"data-name":"excludeFilter",type:"checkbox"}),"Exclude Filter"),i.createElement("a",{className:"w-help-menu",title:"Click here to learn how to use the filter",href:"https://avwo.github.io/whistle/webui/filter.html",target:"_blank"},i.createElement("span",{className:"glyphicon glyphicon-question-sign"}))),i.createElement("textarea",{disabled:t.disabledExcludeText,onKeyDown:e.onFilterKeyDown,value:t.excludeText,"data-name":"excludeText",placeholder:"type filter text",style:!t.disabledExcludeText&&h.test(t.excludeText)?f:void 0,maxLength:u.MAX_EXCLUDE_LEN})),i.createElement("fieldset",{className:"network-settings-filter"},i.createElement("legend",null,i.createElement("label",null,i.createElement("input",{checked:!t.disabledFilterText,"data-name":"filter",type:"checkbox"}),"Include Filter"),i.createElement("a",{className:"w-help-menu",title:"Click here to learn how to use the filter",href:"https://avwo.github.io/whistle/webui/filter.html",target:"_blank"},i.createElement("span",{className:"glyphicon glyphicon-question-sign"}))),i.createElement("textarea",{disabled:t.disabledFilterText,onKeyDown:e.onFilterKeyDown,value:t.filterText,"data-name":"filterText",placeholder:"type filter text",style:!t.disabledFilterText&&h.test(t.filterText)?f:void 0,maxLength:u.MAX_INCLUDE_LEN})),i.createElement("fieldset",{className:"network-settings-columns"},i.createElement("legend",null,i.createElement("label",null,"Network Columns"),i.createElement("label",{onClick:e.resetColumns,className:"btn btn-default"},"Reset")),n.map(function(n){var o,a=n.name,s="custom1"===a,l=s||"custom2"===a;return o=l?s?u.custom1:u.custom2:n.title,i.createElement("label",r({},t.dragger,{"data-name":a,draggable:!0,key:a}),i.createElement("input",{disabled:n.locked,checked:!!n.selected||!!n.locked,"data-name":a,type:"checkbox"}),l?i.createElement("span",{title:o,className:"w-network-custom-col"},o):o,l?i.createElement("span",{onClick:e.editCustomCol,"data-name":n.title,title:"Edit "+n.title,className:"glyphicon glyphicon-edit"},s?1:2):void 0)})),i.createElement("label",{className:"w-network-settings-own"},"Max Rows Number:",i.createElement("select",{className:"form-control",onChange:e.onRowsChange,defaultValue:s.getMaxRows()},i.createElement("option",{value:"500"},"500"),i.createElement("option",{value:"1000"},"1000"),i.createElement("option",{value:"1500"},"1500"),i.createElement("option",{value:"2000"},"2000"),i.createElement("option",{value:"2500"},"2500"),i.createElement("option",{value:"3000"},"3000"))),i.createElement("label",{className:"w-network-settings-own"},i.createElement("input",{checked:u.isOnlyViewOwnData(),"data-name":"viewOwn",type:"checkbox"}),"Only view the requests of own computer (IP: ",u.clientIp,")"),i.createElement("label",{className:"w-network-settings-own"},i.createElement("input",{checked:o,"data-name":"treeView",type:"checkbox"}),i.createElement("span",{className:"glyphicon glyphicon-tree-conifer",style:{marginRight:2}}),"Show Tree View (Ctrl[Command] + B)"),o?i.createElement("br",null):null,o?i.createElement("label",{className:"w-network-settings-own"},i.createElement("input",{checked:"1"!==g.get("disabledHNR"),"data-name":"disabledHNR",type:"checkbox"}),"Highlight new requests"):null),i.createElement("div",{className:"modal-footer"},i.createElement("button",{type:"button",className:"btn btn-default","data-dismiss":"modal"},"Close")),i.createElement(l,{ref:"editCustomColumn",wstyle:"w-network-settings-edit"},i.createElement("div",{onChange:e.onNetworkSettingsChange,className:"modal-body"},i.createElement("button",{type:"button",className:"close","data-dismiss":"modal","aria-label":"Close"},i.createElement("span",{"aria-hidden":"true"},"×")),i.createElement("label",null,"New ",t.name," Name:",i.createElement("input",{onChange:this.onNameChange,ref:"newColumnName",value:t.value,className:"form-control",maxLength:"16",placeholder:"Input the new column name"}))),i.createElement("div",{className:"modal-footer"},i.createElement("button",{disabled:!t.nameChanged,onClick:e.changeName,type:"button",className:"btn btn-primary"},"Confirm"),i.createElement("button",{type:"button",className:"btn btn-default","data-dismiss":"modal"},"Cancel"))))}});e.exports=m},function(e,t,n){var r=n(599);"string"==typeof r&&(r=[[e.id,r,""]]);n(4)(r,{});r.locals&&(e.exports=r.locals)},function(e,t,n){t=e.exports=n(3)(),t.push([e.id,".w-network-settings-dialog fieldset{border:1px solid #ddd;padding-bottom:10px}.w-network-settings-dialog legend{border:none;margin:0 10px;padding:0 10px;width:auto}.w-network-settings-dialog legend label{font-size:13px;width:auto;padding:0}.w-network-settings-dialog label{font-size:13px;font-weight:400;line-height:30px;height:30px;display:inline-block;width:6pc;margin-right:10px;font-weight:700;text-align:right}.network-settings-columns{margin-top:10px}.network-settings-filter{border:none!important}.network-settings-filter legend{margin:0;padding:0}.network-settings-filter legend label{margin-right:5px}.network-settings-filter textarea[disabled]{background:#f5f5f5}.network-settings-columns label{white-space:nowrap;padding-left:10px;margin-left:10px;text-align:left;width:90pt}.network-settings-columns label .glyphicon-edit{margin-left:5px;cursor:pointer}.network-settings-columns label .glyphicon-edit:hover{color:#337ab7}.network-settings-columns .btn{margin-right:0;text-align:center;color:#666;width:72px}.network-settings-columns legend label{margin-left:0}.w-network-settings-dialog .modal-dialog{width:600px}.w-network-settings-dialog input[type=checkbox]{margin-right:5px}.w-network-settings-dialog textarea{width:578px;height:90px;border:1px solid #ddd;overflow:auto;margin:0;padding:5px 10px}.w-network-settings-dialog .w-help-menu{color:#000;font-size:14px}.w-certs-info-dialog .w-help-menu:hover,.w-files-dialog .w-help-menu:hover,.w-https-dialog .w-help-menu:hover,.w-network-settings-dialog .w-help-menu:hover{color:#337ab7}.w-certs-info-dialog .w-help-menu,.w-files-dialog .w-help-menu,.w-https-dialog .w-help-menu{margin-right:5px;color:#000;font-size:14px}.w-network-settings-dialog div input[type=text]{width:436px}.w-network-settings-own{width:auto!important;margin:15px 0 0;white-space:nowrap}.w-network-settings-own select{margin-left:20px;width:10pc;display:inline-block}.w-network-custom-col{display:inline-block;max-width:90px;text-overflow:ellipsis;white-space:nowrap}.network-settings-columns label span{vertical-align:middle;overflow:hidden;font-weight:400}.w-network-settings-edit label{white-space:nowrap}.w-network-settings-edit label .form-control{display:inline-block;margin:0 10px;font-weight:400}.w-network-settings-edit label select{width:150px}.w-network-settings-edit label input{width:330px}.w-network-settings-edit .modal-dialog{width:530px}.network-settings-columns legend .btn-primary{width:auto;margin-right:10px;padding:0 8px;color:#fff;font-weight:400}.w-certs-info-title{margin-bottom:20px}",""])},function(e,t,n){"use strict";function r(e){return function(t,n){var r=e[t],o=e[n];return r._key=t,o._key=n,h.comparePlugin(r,o)}}function o(e){l||(l=setTimeout(function(){l=null},2e3),p.trigger("disableAllPlugins",e))}function i(e){var t=f.getServerInfo().cmdName,n="";return t&&M.test(t)?(t=RegExp.$1+" ",n=" "+RegExp.$2.trim()):t="w2 ",t+(e?"uninstall":"install")+n+" "}function a(e){return e.account?" --account="+e.account:""}function s(e){return e.updateUrl||e.moduleName}n(601);var l,c=n(5),u=n(6),d=n(39),p=n(280),g=n(293),f=n(281),h=n(199),m=n(210),A=n(567),M=/^([\w]{1,12})(\s+-g)?$/;window.getWhistleProxyServerInfo=function(){var e=f.getServerInfo();return e&&c.extend(!0,{},e)};var w=u.createClass({displayName:"Home",componentDidMount:function(){var e=this;e.setUpdateAllBtnState(),p.on("updateAllPlugins",function(t,n){n="reinstallAllPlugins"===n;var o=e.props.data||{},l=o.plugins||{},c={};Object.keys(l).sort(r(l)).map(function(e){var t=l[e];if(!t.isProj&&(n||h.compareVersion(t.latest,t.version))){var r=(t.registry?" --registry="+t.registry:"")+a(t),o=c[r]||[];o.push(s(t)),c[r]=o}});var u=Object.keys(c).map(function(e){var t=c[e].join(" ");return i()+t+e}).join("\n\n");u&&e.setState({cmdMsg:u,uninstall:!1},e.showMsgDialog)})},componentDidUpdate:function(){this.setUpdateAllBtnState()},onOpen:function(e){this.props.onOpen&&this.props.onOpen(e),e.preventDefault()},syncData:function(e){f.syncData(e)},showDialog:function(){this.refs.pluginRulesDialog.show()},hideDialog:function(){this.refs.pluginRulesDialog.hide()},showRules:function(e){var t=c(e.target).attr("data-name"),n=this.props.data.plugins[t+":"];n.name=t,this.setState({plugin:n},this.showDialog)},onCmdChange:function(e){this.setState({cmdMsg:e.target.value})},showMsgDialog:function(){this.refs.operatePluginDialog.show()},showUpdate:function(e){var t=c(e.target).attr("data-name"),n=this.props.data.plugins[t+":"],r=n.registry?" --registry="+n.registry:"";this.setState({cmdMsg:i()+s(n)+a(n)+r,isSys:n.isSys,uninstall:!1},this.showMsgDialog)},showUninstall:function(e){var t=c(e.target).attr("data-name"),n=this.props.data.plugins[t+":"],r=this.props.data.isWin?"":"sudo ",o=n.isSys,s=o?i(!0):r+"npm uninstall -g ",l=!o&&n.registry?" --registry="+n.registry:"";this.setState({cmdMsg:s+n.moduleName+a(n)+l,isSys:o,uninstall:!0,pluginPath:n.path},this.showMsgDialog)},enableAllPlugins:function(e){var t=this,n=t.props.data||{};!l&&n.disabledAllPlugins&&m.confirm("Do you want to turn on Plugins?",function(t){t&&o(e)})},setUpdateAllBtnState:function(){p.trigger("setUpdateAllBtnState",this.hasNewPlugin)},render:function(){var e=this,t=e.props.data||{},n=t.plugins||[],o=e.state||{},i=o.plugin||{},a=o.cmdMsg,s=Object.keys(n),l=t.disabledPlugins||{},c=t.disabledAllPlugins,d=t.ndp;return e.hasNewPlugin=!1,u.createElement("div",{className:"fill orient-vertical-box w-plugins",style:{display:e.props.hide?"none":""}},u.createElement("div",{className:"w-plugins-headers"},u.createElement("table",{className:"table"},u.createElement("thead",null,u.createElement("tr",null,u.createElement("th",{className:"w-plugins-order"},"#"),u.createElement("th",{className:"w-plugins-active"},"Active"),u.createElement("th",{
103
+ className:"w-plugins-date"},"Date"),u.createElement("th",{className:"w-plugins-name"},"Name"),u.createElement("th",{className:"w-plugins-version"},"Version"),u.createElement("th",{className:"w-plugins-operation"},"Operation"),u.createElement("th",{className:"w-plugins-desc"},"Description"))))),u.createElement("div",{className:"fill w-plugins-list"},u.createElement("table",{className:"table table-hover"},u.createElement("tbody",null,s.length?s.sort(r(n)).map(function(t,r){var o=n[t];t=t.slice(0,-1);var i=!l[t],a=o.pluginHomepage&&!o.openInPlugins,s=o.pluginHomepage||"plugin."+t+"/",p=h.compareVersion(o.latest,o.version);return p&&(p="(New: "+o.latest+")",e.hasNewPlugin=!0),u.createElement("tr",{key:t,className:(!c&&i?"":"w-plugins-disable")+(p?" w-has-new-version":"")},u.createElement("th",{className:"w-plugins-order",onDoubleClick:e.enableAllPlugins},r+1),u.createElement("td",{className:"w-plugins-active",onDoubleClick:e.enableAllPlugins},u.createElement("input",{type:"checkbox",title:d?"Not allowed disable plugins":c?"Disabled":(i?"Disable ":"Enable ")+t,"data-name":t,checked:d||i,disabled:!d&&c,onChange:e.props.onChange,className:d?"w-not-allowed":void 0})),u.createElement("td",{className:"w-plugins-date"},h.toLocaleString(new Date(o.mtime))),u.createElement("td",{className:"w-plugins-name",title:o.moduleName},o.noOpt?u.createElement("span",null,t):u.createElement("a",{href:s,target:"_blank","data-name":t,onClick:a?null:e.onOpen},t)),u.createElement("td",{className:"w-plugins-version"},o.homepage?u.createElement("a",{href:o.homepage,target:"_blank"},o.version):o.version,p?o.homepage?u.createElement("a",{className:"w-new-version",href:o.homepage,target:"_blank"},p):u.createElement("span",{className:"w-new-version"},p):void 0),u.createElement("td",{className:"w-plugins-operation"},o.noOpt?u.createElement("span",{className:"disabled"},"Option"):u.createElement("a",{href:s,target:"_blank","data-name":t,className:"w-plugin-btn",onClick:a?null:e.onOpen},"Option"),o.rules||o._rules||o.resRules?u.createElement("a",{draggable:"false","data-name":t,onClick:e.showRules},"Rules"):u.createElement("span",{className:"disabled"},"Rules"),o.isProj?u.createElement("span",{className:"disabled"},"Update"):u.createElement("a",{draggable:"false",className:"w-plugin-btn w-plugin-update-btn","data-name":t,onClick:e.showUpdate},"Update"),o.isProj||o.notUn?u.createElement("span",{className:"disabled"},"Uninstall"):u.createElement("a",{draggable:"false",className:"w-plugin-btn","data-name":t,onClick:e.showUninstall},"Uninstall"),o.homepage?u.createElement("a",{href:o.homepage,className:"w-plugin-btn",target:"_blank"},"Help"):u.createElement("span",{className:"disabled"},"Help"),h.isString(o.rulesUrl)||h.isString(o.valuesUrl)?u.createElement("a",{className:"w-plugin-btn",onClick:function(){e.syncData(o)}},"Sync"):void 0),u.createElement("td",{className:"w-plugins-desc",title:o.description},o.description))}):u.createElement("tr",null,u.createElement("td",{colSpan:"7",className:"w-empty"},u.createElement("a",{href:"https://github.com/whistle-plugins",target:"_blank"},"Empty")))))),u.createElement(g,{ref:"pluginRulesDialog",wstyle:"w-plugin-rules-dialog"},u.createElement("div",{className:"modal-header"},u.createElement("h4",null,i.name),u.createElement("button",{type:"button",className:"close","data-dismiss":"modal"},u.createElement("span",{"aria-hidden":"true"},"×"))),u.createElement("div",{className:"modal-body"},u.createElement("div",{className:"w-plugin-rules"},i.rules?u.createElement("fieldset",null,u.createElement("legend",null,"rules.txt"),u.createElement("pre",null,i.rules)):null,i._rules?u.createElement("fieldset",null,u.createElement("legend",null,"reqRules.txt (_rules.txt)"),u.createElement("pre",null,i._rules)):null,i.resRules?u.createElement("fieldset",null,u.createElement("legend",null,"resRules.txt"),u.createElement("pre",null,i.resRules)):null)),u.createElement("div",{className:"modal-footer"},u.createElement("button",{type:"button",className:"btn btn-default","data-dismiss":"modal"},"Close"))),u.createElement(g,{ref:"operatePluginDialog",wstyle:"w-plugin-update-dialog"},u.createElement("div",{className:"modal-body"},u.createElement("h5",null,u.createElement("a",{"data-dismiss":"modal",className:"w-copy-text-with-tips","data-clipboard-text":a},"Copy the following command")," ","to the CLI to execute:"),u.createElement("textarea",{value:a,className:"w-plugin-update-cmd",onChange:this.onCmdChange}),u.createElement("div",{style:{margin:"8px 0 0",color:"red","word-break":"break-all",display:!o.isSys&&o.uninstall?"":"none"}},"If uninstall failed, delete the following directory instead:",u.createElement("a",{className:"w-copy-text-with-tips","data-dismiss":"modal","data-clipboard-text":o.pluginPath,style:{marginLeft:5,cursor:"pointer"}},o.pluginPath))),u.createElement("div",{className:"modal-footer"},u.createElement("button",{type:"button","data-dismiss":"modal",className:"btn btn-primary w-copy-text-with-tips","data-clipboard-text":a},"Copy"),u.createElement("button",{type:"button",className:"btn btn-default","data-dismiss":"modal"},"Close"))))}}),b=u.createClass({displayName:"Tabs",componentDidMount:function(){function e(){clearTimeout(n),n=setTimeout(t,60)}function t(){if(!r.props.hide){var e=i.offsetHeight;e&&(o.style.width=i.offsetWidth+"px",o.style.height=e+"px")}}var n,r=this,o=d.findDOMNode(r.refs.tabPanel),i=o.parentNode;r._resizeHandler=e,e(),c(window).on("resize",e)},shouldComponentUpdate:function(e,t){return!this.props.hide||!e.hide},componentDidUpdate:function(e,t){e.hide&&!this.props.hide&&this._resizeHandler()},onClose:function(e){this.props.onClose&&this.props.onClose(e),e.stopPropagation()},render:function(){var e=this,t=e.props,n=t.tabs||[],r="Home",i=t.disabledPlugins||{},a=t.disabledAllPlugins,s=t.ndp,l=e.props.active;if(l&&l!=r)for(var c=0,d=n.length;d>c;c++){var p=n[c];if(p.name==l){r=p.name;break}}return u.createElement("div",{className:"w-nav-tabs fill orient-vertical-box",style:{display:e.props.hide?"none":"",paddingTop:a?0:void 0}},a?u.createElement("div",{className:"w-record-status",style:{marginBottom:5}},"All plugins is disabled",u.createElement("button",{className:"btn btn-primary",onClick:o},"Enable")):null,u.createElement("ul",{className:"nav nav-tabs"},u.createElement("li",{className:"w-nav-home-tab"+("Home"==r?" active":""),"data-name":"Home",onClick:e.props.onActive},u.createElement("a",{draggable:"false"},"Home")),n.map(function(t){var n=!s&&(a||i[t.name]);return u.createElement("li",{className:r==t.name?" active":""},u.createElement("a",{"data-name":t.name,title:t.name,onClick:e.props.onActive,draggable:"false",className:n?"w-plugin-tab-disabled":void 0},n?u.createElement("span",{className:"glyphicon glyphicon-ban-circle"}):void 0,t.name,u.createElement("span",{"data-name":t.name,title:"Close",className:"w-close-icon",onClick:e.onClose},"×")))})),u.createElement("div",{className:"fill orient-vertical-box w-nav-tab-panel"},u.createElement("div",{ref:"tabPanel",className:"fill orient-vertical-box"},u.createElement(w,{data:e.props,hide:"Home"!=r,onChange:e.props.onChange,onOpen:e.props.onOpen}),n.map(function(e){return u.createElement(A,{inited:r==e.name},u.createElement("iframe",{style:{display:r==e.name?"":"none"},src:e.url}))}))))}});e.exports=b},function(e,t,n){var r=n(602);"string"==typeof r&&(r=[[e.id,r,""]]);n(4)(r,{});r.locals&&(e.exports=r.locals)},function(e,t,n){t=e.exports=n(3)(),t.push([e.id,".w-nav-tabs{padding-top:10px;font-size:13px}.w-nav-tabs>.nav>li>a{padding:5px 20px 5px 10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:90pt;position:relative}.w-nav-tabs>.nav>li>a>.w-close-icon{display:block;position:absolute;top:5px;right:5px;color:#999;cursor:pointer}.w-nav-tabs>.nav>li>a>.w-close-icon:hover{color:#000}.w-plugin-tab-disabled{color:#ccc!important}.w-plugin-tab-disabled .glyphicon-ban-circle{vertical-align:text-top;margin-right:3px;color:#ccc!important}.w-nav-tabs iframe{border:none;display:block;background-color:#fff;margin:0;padding:0;width:100%;height:100%}.w-nav-tabs .w-nav-tab-panel,.w-nav-tabs .w-nav-tab-panel>div{overflow:hidden}.w-nav-tabs>.nav>.w-nav-home-tab>a{padding-right:10px!important}.w-plugins td,.w-plugins th{font-size:13px;font-weight:400}.w-plugins-headers{border-bottom:1px solid #ccc;overflow:hidden}.w-plugins-headers .table th{border:none!important;padding:6px;color:#000;background:#fafafa;font-weight:700}.w-plugins-list{overflow-y:auto;overflow-x:hidden;outline:0}.w-plugins-list td,.w-plugins-list th{border-top:none!important;border-bottom:1px solid #ddd;padding:8px 6px!important;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.w-plugins-disable,.w-plugins-disable a,.w-plugins-disable td{color:#aaa}.w-plugins-order{width:50px}.w-plugins-active{width:60px}.w-plugins-list td.w-plugins-active input{margin-left:9pt;vertical-align:text-bottom}.w-plugins-name{width:10pc}.w-plugins-version{width:140px}.w-plugins-list .w-has-new-version .w-plugin-update-btn,.w-plugins-list .w-has-new-version .w-plugins-version .w-new-version,.w-plugins-menu.w-plugin-update-btn{color:#f66!important}.w-plugins-list .w-has-new-version .w-plugins-version span{margin-left:3px}.w-plugins-list .w-has-new-version .w-plugin-update-btn:hover,.w-plugins-list .w-has-new-version .w-plugins-version span:hover,.w-plugins-menu.w-plugin-update-btn:hover{color:#f33!important}.w-plugins-date{width:180px}.w-plugins-operation{width:360px}.w-plugins-operation a,.w-plugins-operation span.disabled{margin-right:20px}.w-plugins-operation a:last-child,.w-plugins-operation span.disabled:last-child{margin-right:0}.w-plugins-operation span.disabled{color:#ccc}.w-plugin-rules-dialog .modal-dialog{width:40pc}.w-plugin-rules-dialog .modal-dialog pre{max-height:220px;overflow:auto;padding:10px}.w-plugin-rules-dialog fieldset{border:1px solid #ddd}.w-plugin-rules-dialog fieldset legend{font-size:13px;padding:0 10px;border:none;width:auto;margin:0 10px;font-weight:700}.w-plugin-rules-dialog fieldset:nth-child(2){margin-top:15px}.w-plugin-rules-dialog .modal-header h4{margin:0}.w-plugin-rules-dialog .modal-header .close{position:absolute;right:10px;top:1pc}.w-plugin-update-dialog .modal-dialog{width:600px}.w-plugin-update-cmd{background:#002240;color:#ddd;padding:15px;margin-top:10px;font-size:14px;display:block;width:578px;height:220px}.w-plugin-btn{color:#337ab7!important}.w-plugin-btn:hover{color:#23527c!important}",""])},function(e,t,n){"use strict";n(187),n(604);var r=n(6),o=n(39),i=n(199),a=n(293),s=r.createClass({displayName:"ListDialog",getInitialState:function(){return{checkedItems:{},selectedCount:0}},onChange:function(e){var t=e.target,n=t.parentNode.title,r=this.state.checkedItems;t.checked?r[n]=1:delete r[n],this.setState({selectedCount:Object.keys(r).length})},onConfirm:function(e){if(!e.target.disabled){this.refs.dialog.hide();var t=o.findDOMNode(this.refs.filename),n=o.findDOMNode(this.refs.exportData),r=-1!==e.target.className.indexOf("btn-warning"),i=r?this.getAllItems():this.state.checkedItems;o.findDOMNode(this.refs.exportName).value=t.value.trim(),o.findDOMNode(this.refs.data).value=JSON.stringify(i),n.submit(),t.value=""}},getAllItems:function(){var e=this.props.list||[],t={};return e.forEach(function(e){t[e]=1}),t},show:function(){var e=this;e.refs.dialog.show(),setTimeout(function(){o.findDOMNode(e.refs.filename).focus()},500)},preventDefault:function(e){e.preventDefault()},render:function(){var e=this,t=e.props.list||[],n=e.state.checkedItems,o=e.state.selectedCount,s=this.props.name;return r.createElement(a,{ref:"dialog",wclassName:" w-list-dialog"},r.createElement("div",{className:"modal-body"},r.createElement("button",{type:"button",className:"close","data-dismiss":"modal"},r.createElement("span",{"aria-hidden":"true"},"×")),r.createElement("p",null,"Filename:",r.createElement("input",{ref:"filename",style:{width:390,display:"inline-block",marginLeft:5},className:"form-control",placeholder:"Input the filename"})),t.map(function(t){return r.createElement("label",{title:t},r.createElement("input",{onChange:e.onChange,type:"checkbox",checked:!!n[t]}),i.isGroup(t)?r.createElement("span",{className:"glyphicon glyphicon-triangle-right w-list-group-icon"}):null,t)})),r.createElement("div",{className:"modal-footer"},r.createElement("div",{className:"w-list-counter"},"Selected: ",o," / ",t.length),r.createElement("button",{type:"button",className:"btn btn-default","data-dismiss":"modal"},"Cancel"),r.createElement("button",{type:"button",className:"btn btn-warning",onMouseDown:this.preventDefault,onClick:this.onConfirm},"Export All"),r.createElement("button",{type:"button",className:"btn btn-primary",disabled:!Object.keys(n).length,onMouseDown:this.preventDefault,onClick:this.onConfirm},"Export Selected")),r.createElement("form",{action:"cgi-bin/"+s+"/export",ref:"exportData",style:{display:"none"},target:"downloadTargetFrame"},r.createElement("input",{ref:"exportName",type:"hidden",name:"filename"}),r.createElement("input",{ref:"data",type:"hidden",name:s})))}});e.exports=s},function(e,t,n){var r=n(605);"string"==typeof r&&(r=[[e.id,r,""]]);n(4)(r,{});r.locals&&(e.exports=r.locals)},function(e,t,n){t=e.exports=n(3)(),t.push([e.id,".w-list-dialog label{line-height:26px;width:226px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-left:10px}.w-list-dialog label input{margin-right:5px}.w-list-dialog{width:500px}.w-list-dialog .modal-footer{position:relative}.w-list-counter{position:absolute;left:10px;top:15px}",""])},function(e,t,n){"use strict";var r=n(6),o=n(281),i=n(280),a=r.createClass({displayName:"FilterBtn",getInitialState:function(){return{hasFilterText:!!o.filterIsEnabled()}},componentDidMount:function(){var e=this;i.on("filterChanged",function(){var t=!!o.filterIsEnabled();t!==e.state.hasFilterText&&e.setState({hasFilterText:!!o.filterIsEnabled()})})},render:function(){var e=this.props.hide,t=this.props.isNetwork,n=t&&this.state.hasFilterText?" w-menu-enable":"";return r.createElement("a",{onClick:this.props.onClick,className:"w-settings-menu"+n,style:{display:e?"none":""},draggable:"false"},r.createElement("span",{className:"glyphicon glyphicon-cog"}),"Settings")}});e.exports=a},function(e,t,n){"use strict";function r(e){e.select(),e.focus()}function o(e,t){d.error(e),t.select(),t.focus()}function i(e){return e.map(function(e){return e.date=c.toLocaleString(new Date(e.date)),e})}n(187),n(608);var a=n(6),s=n(39),l=n(293),c=n(199),u=n(280),d=n(207),p=n(281),g=n(210),f=20971520,h=60,m=a.createClass({displayName:"FilesDialog",getInitialState:function(){return{files:i(p.getUploadFiles())}},updateFiles:function(e){e&&this.setState({files:i(e)})},show:function(){this.refs.filesDialog.show()},hide:function(){this.refs.filesDialog.hide()},showNameInput:function(){if(this.checkCount()){var e=this.refs;e.filenameDialog.show();var t=s.findDOMNode(e.filename);t.value=this.params.name||"",setTimeout(function(){r(t)},500),this.setState({})}},componentDidMount:function(){var e=this;u.on("uploadFile",function(t,n){e.submit(n)}),u.on("showFilenameInput",function(t,n){e.params=n,e.showNameInput()}),u.on("download",function(t,n){e.startDownload(n)})},checkParams:function(){var e=s.findDOMNode(this.refs.filename),t=e.value.trim();return t?t.length>h?void o("The filename length cannot exceed 60.",e):/[\\/:*?"<>|\s]/.test(t)?void o('The filename cannot contain \\/:*?"<>| and spaces.',e):(this.params.name=t,!0):void o("The filename cannot be empty.",e)},checkCount:function(){var e=this.state.files;return e.length>=h?(this.show(),setTimeout(function(){g.alert("The number of uploaded files cannot exceed 60,\ndelete the unnecessary files first.")},10),!1):!0},onConfirm:function(){if(!this.pending&&this.checkParams()&&this.checkCount()){var e=this;e.pending=!0;var t=e.params.name;p.values.checkFile({name:t,count:e.state.files.length},function(n,r){if(e.pending=!1,!n)return c.showSystemError(r);if(e.updateFiles(n.files),n.isMax)return g.alert("The number of uploaded files cannot exceed 60,\ndelete the unnecessary files first.");var o=function(t){t&&(e.pending=!0,p.values.upload(JSON.stringify(e.params),function(t,n){return e.pending=!1,t?0!==t.ec?g.alert(t.em):(e.params="",e.refs.filenameDialog.hide(),e.updateFiles(t.files),void e.show()):c.showSystemError(n)},{contentType:"application/json",processData:!1}))};return n.exists?void g.confirm("The name `"+t+"` already exists, whether to overwrite it?",o):o(!0)})}},startDownload:function(e){s.findDOMNode(this.refs.name).value=e.name,s.findDOMNode(this.refs.headers).value=e.headers||"",s.findDOMNode(this.refs.content).value=e.base64||"",s.findDOMNode(this.refs.downloadForm).submit()},download:function(e){this.checkParams()&&this.startDownload(this.params)},submit:function(e){if(!e.size)return g.alert("The file size cannot be empty.");if(e.size>f)return g.alert("The file size cannot exceed 20m.");var t=this,n={};c.readFileAsBase64(e,function(r){n.base64=r,s.findDOMNode(t.refs.file).value="",n.name=(e.name||"").replace(/[\\/:*?"<>|\s]/g,""),t.params=n,t.showNameInput()})},uploadFile:function(){var e=s.findDOMNode(this.refs.uploadFileForm);this.submit(new FormData(e).get("file"))},selectFile:function(){this.checkCount()&&s.findDOMNode(this.refs.file).click()},remove:function(e){var t=e.target.getAttribute("data-name"),n=this;g.confirm("Are you sure to delete '"+t+"'.",function(e){e&&p.values.removeFile({name:t},function(e,t){return e?0!==e.ec?g.alert(e.em):void n.updateFiles(e.files):c.showSystemError(t)})})},downloadFile:function(e){var t=e.target.getAttribute("data-name");window.open("cgi-bin/values/download?name="+encodeURIComponent(t))},render:function(){var e=this,t=(e.params||"").title,n=e.state.files;return a.createElement(l,{wstyle:"w-files-dialog",ref:"filesDialog"},a.createElement("div",{className:"modal-body"},a.createElement("button",{type:"button",className:"close","data-dismiss":"modal"},a.createElement("span",{"aria-hidden":"true"},"×")),a.createElement("h4",null,a.createElement("a",{className:"w-help-menu",title:"Click here to see help",href:"https://avwo.github.io/whistle/webui/files.html",target:"_blank"},a.createElement("span",{className:"glyphicon glyphicon-question-sign"})),"System Files"),a.createElement("button",{className:"w-files-upload-btn",onClick:e.selectFile},a.createElement("span",{className:"glyphicon glyphicon-arrow-up"}),"Drop file here or click to browse (size <= 20m)"),a.createElement("table",{className:"table",style:{display:n.length?void 0:"none"}},a.createElement("thead",null,a.createElement("th",{className:"w-files-order"},"#"),a.createElement("th",{className:"w-files-date"},"Date"),a.createElement("th",{className:"w-files-path"},"Path"),a.createElement("th",{className:"w-files-operation"},"Operation")),a.createElement("tbody",null,n.map(function(t,n){var r="/$whistle/"+t.name;return a.createElement("tr",{key:t.name},a.createElement("th",{className:"w-files-order"},n+1),a.createElement("td",{className:"w-files-date"},t.date),a.createElement("td",{className:"w-files-path"},r),a.createElement("td",{className:"w-files-operation"},a.createElement("a",{className:"w-copy-text-with-tips","data-clipboard-text":r},"Copy path"),a.createElement("a",{"data-name":t.name,onClick:e.downloadFile},"Download"),a.createElement("a",{"data-name":t.name,onClick:e.remove},"Delete")))})))),a.createElement("div",{className:"modal-footer"},a.createElement("button",{type:"button",className:"btn btn-default","data-dismiss":"modal"},"Close")),a.createElement("form",{ref:"uploadFileForm",encType:"multipart/form-data",style:{display:"none"}},a.createElement("input",{ref:"file",onChange:this.uploadFile,name:"file",type:"file"})),a.createElement(l,{ref:"filenameDialog",wstyle:"w-files-info-dialog"},a.createElement("div",{className:"modal-header"},t||"Modify the filename",a.createElement("button",{type:"button",className:"close","data-dismiss":"modal"},a.createElement("span",{"aria-hidden":"true"},"×"))),a.createElement("div",{className:"modal-body"},a.createElement("label",{className:"w-files-name"},"Name:",a.createElement("input",{ref:"filename",maxLength:"60",placeholder:"Input the filename",type:"text",className:"form-control"}))),a.createElement("div",{className:"modal-footer"},a.createElement("button",{type:"button",className:"btn btn-default",onClick:this.download},"Download"),a.createElement("button",{type:"button",className:"btn btn-primary",onClick:this.onConfirm},"Confirm"),a.createElement("button",{type:"button",className:"btn btn-default","data-dismiss":"modal"},"Close"))),a.createElement("form",{ref:"downloadForm",action:"cgi-bin/download",style:{display:"none"},method:"post",target:"downloadTargetFrame"},a.createElement("input",{ref:"name",name:"filename",type:"hidden"}),a.createElement("input",{ref:"type",name:"type",type:"hidden",value:"rawBase64"}),a.createElement("input",{ref:"headers",name:"headers",type:"hidden"}),a.createElement("input",{ref:"content",name:"content",type:"hidden"})))}}),A=a.createClass({displayName:"FilesDialogWrap",show:function(e){this.refs.filesDialog.show(e)},hide:function(){this.refs.filesDialog.hide()},shouldComponentUpdate:function(){return!1},render:function(){return a.createElement(m,{ref:"filesDialog"})}});e.exports=A},function(e,t,n){var r=n(609);"string"==typeof r&&(r=[[e.id,r,""]]);n(4)(r,{});r.locals&&(e.exports=r.locals)},function(e,t,n){t=e.exports=n(3)(),t.push([e.id,".w-files-dialog .modal-dialog{width:900px}.w-files-dialog h4{margin-top:10px}.w-files-upload-btn{border:1px solid #ccc;border-radius:5px;display:block;background:#fff;line-height:60px;text-align:center;margin:20px 0;color:#aaa;font-size:1pc;width:55pc;font-weight:400}.w-files-upload-btn:hover{color:#aaa}.w-files-upload-btn span{font-size:24px;vertical-align:sub;margin-right:10px}.w-files-order{width:36px}.w-files-date{width:205px}.w-files-path{word-break:break-all;word-wrap:break-word}.w-files-operation{width:15pc}.w-files-operation a{margin-right:15px;display:inline-block;white-space:nowrap}.w-files-operation a:last-child{color:#f66}.w-files-operation a:last-child:hover{color:red}.w-files-name{display:block;margin:20px 0;white-space:nowrap}.w-files-info-dialog .modal-dialog{width:45pc}.w-files-name input{display:inline-block;width:620px;margin-left:20px;font-weight:400}.w-files-save-in{padding-bottom:10px}.w-files-save-in label{margin-right:20px;font-weight:400}label:first-child{font-weight:700}.w-files-save-in input{margin-right:5px}.w-files-save-in label:last-child{margin-left:20px}.w-files-info-dialog .modal-header{font-weight:700}.w-files-dialog thead th{padding:8px}",""])},function(e,t,n){"use strict";var r=n(6),o=n(280),i=r.createClass({displayName:"UpdateAllBtn",getInitialState:function(){return{disabled:!0}},componentDidMount:function(){var e=this;o.on("setUpdateAllBtnState",function(t,n){e.setState({disabled:!n})})},updateAllPlugins:function(){!this.state.disabled&&o.trigger("updateAllPlugins")},render:function(){var e=this.state.disabled||this.props.hide;return r.createElement("a",{onClick:this.updateAllPlugins,className:"w-plugins-menu w-plugin-update-btn"+(e?" hide":""),draggable:"false"},r.createElement("span",{className:"glyphicon glyphicon-refresh"}),"UpdateAll")}});e.exports=i},function(e,t,n){"use strict";function r(e,t){return t=t||e.filename,t+"."+(e.type||"crt")}function o(e,t){var n=new FileReader;n.readAsText(e),n.onload=function(){t(n.result)}}n(187),n(612);var i=n(6),a=n(39),s=n(199),l=n(293),c=n(614),u=n(210),d=n(281),p=n(207),g={color:"#5bbd72"},f=131072,h=i.createClass({displayName:"HistoryData",getInitialState:function(){return{list:[]}},show:function(e,t){var n,o=[];this._certsDir=this._certsDir||t,Object.keys(e).forEach(function(t){var a,s=e[t],l=new Date(s.notBefore),c=new Date(s.notAfter),u="",d=Date.now();l.getTime()>d?(a=!0,u="Invalid"):c.getTime()<d&&(a=!0,u="Expired");var p={dir:s.dir,filename:t,domain:s.dnsName,mtime:s.mtime,type:s.type,validity:l.toLocaleString()+" ~ "+c.toLocaleString(),status:u||i.createElement("span",{className:"glyphicon glyphicon-ok",style:g}),isInvalid:a};"root"===t?(p.displayName="root (Root CA)",n=p,p.readOnly=!0):("z"===t[0]&&"/"===t[1]&&(t=t.substring(2),p.readOnly=!0),p.displayName=r(p,t),o.push(p))}),o.sort(function(e,t){return e.readOnly?t.readOnly?0:-1:t.readOnly?1:s.compare(t.mtime,e.mtime)}),n&&o.unshift(n),this.refs.certsInfoDialog.show(),this._hideDialog=!1,this.setState({list:o})},hide:function(){this.refs.certsInfoDialog.hide(),this._hideDialog=!0},showRemoveTips:function(e){var t=(e.dir||"").replace(/\\/g,"/");t+=/\/$/.test(t)?"":"/";var n=t+r(e),o=t+e.filename+".key";this.refs.tipsDialog.show({title:"Delete the following files and restart whistle:",tips:o+"\n"+n,dir:e.dir})},handleCgi:function(e,t){return e?void this.show(e):s.showSystemError(t)},removeCert:function(e){var t=this;u.confirm("Are you sure to delete '"+r(e)+"'.",function(n){n&&d.certs.remove({filename:e.filename,type:e.type},t.handleCgi)})},shouldComponentUpdate:function(){return this._hideDialog===!1},formatFiles:function(e){for(var t,n=0,r=e.length;r>n;n++){var o=e[n];if(o.size>f||!(o.size>0))return void p.error("The uploaded certificate size cannot exceed 128K.");var i=o.name;if(!/\.(crt|cer|pem|key)/.test(i))return void p.error("Only files with .key, .crt, .cer, .pem suffixes are supported.");var a=RegExp.$1;if(i=i.slice(0,-4),!i||i.length>128)return void p.error("The file name cannot be empty and the length cannot exceed 128.");t=t||{};var s=t[i]||{};s["key"==a?"key":"cert"]=o,"key"!==a&&(s.type=a),t[i]=s}if(t){var l;return Object.keys(t).forEach(function(e){var n=t[e];n.key&&n.cert&&(l=l||{},l[e]=n)}),l}},handleChange:function(e){var t=this,n=a.findDOMNode(t.refs.uploadCerts),r=n.files&&t.formatFiles(n.files);if(n.value="",r){if(r.root){var i=t._certsDir||"~/.WhistleAppData/custom_certs";u.alert("Root CA cannot be uploaded by UI.\nYou must manually upload to follow directory and restart Whistle:\n"+i),delete r.root}var s=function(){d.certs.upload(JSON.stringify(r),t.handleCgi)},l=Object.keys(r),c=2*l.length;l.map(function(e){var t=r[e];o(t.key,function(e){t.key=e,0===--c&&s()}),o(t.cert,function(e){t.cert=e,0===--c&&s()})})}},showUpload:function(){a.findDOMNode(this.refs.uploadCerts).click()},render:function(){var e=this,t=e.state.list||[];return i.createElement(l,{ref:"certsInfoDialog",wstyle:"w-certs-info-dialog"},i.createElement("div",{className:"modal-body"},i.createElement("button",{type:"button",className:"close",onClick:e.hide},i.createElement("span",{"aria-hidden":"true"},"×")),i.createElement("h4",{className:"w-certs-info-title"},i.createElement("a",{className:"w-help-menu",title:"Click here to see help",href:"https://avwo.github.io/whistle/custom-certs.html",target:"_blank"},i.createElement("span",{className:"glyphicon glyphicon-question-sign"})),"Custom Certs"),i.createElement("table",{className:"table"},i.createElement("thead",null,i.createElement("th",{className:"w-certs-info-order"},"#"),i.createElement("th",{className:"w-certs-info-filename"},"Filename"),i.createElement("th",{className:"w-certs-info-domain"},"DNS Name"),i.createElement("th",{className:"w-certs-info-validity"},"Validity"),i.createElement("th",{className:"w-certs-info-status"},"Status")),i.createElement("tbody",null,t.length?t.map(function(t,n){return i.createElement("tr",{className:t.isInvalid?"w-cert-invalid":void 0},i.createElement("th",{className:"w-certs-info-order"},n+1),i.createElement("td",{className:"w-certs-info-filename",title:t.filename},t.readOnly?i.createElement("span",{className:"glyphicon glyphicon-lock"}):void 0,t.displayName||t.filename,i.createElement("br",null),i.createElement("a",{className:"w-delete",onClick:function(){t.readOnly?e.showRemoveTips(t):e.removeCert(t)},title:"",style:{color:t.readOnly?"#337ab7":void 0}},t.readOnly?"View path":"Delete")),i.createElement("td",{className:"w-certs-info-domain",title:t.domain},t.domain),i.createElement("td",{className:"w-certs-info-validity",title:t.validity},t.validity),i.createElement("td",{className:"w-certs-info-status"},t.status))}):i.createElement("tr",null,i.createElement("td",{colSpan:"5",className:"w-empty"},"Empty"))))),i.createElement("div",{className:"modal-footer"},i.createElement("input",{ref:"uploadCerts",style:{display:"none"},type:"file",accept:".crt,.cer,.pem,.key",multiple:"multiple",onChange:e.handleChange}),i.createElement("button",{type:"button",style:{display:d.isDiableCustomCerts()?"none":void 0},className:"btn btn-primary",onClick:e.showUpload},"Upload"),i.createElement("button",{type:"button",className:"btn btn-default","data-dismiss":"modal"},"Close")),i.createElement(c,{ref:"tipsDialog"}))}});e.exports=h},function(e,t,n){var r=n(613);"string"==typeof r&&(r=[[e.id,r,""]]);n(4)(r,{});r.locals&&(e.exports=r.locals)},function(e,t,n){t=e.exports=n(3)(),t.push([e.id,".w-certs-info-dialog .modal-dialog{width:64pc}.w-certs-info-order{width:50px}.w-certs-info-validity{width:330px}.w-certs-info-status{width:75pt}.w-cert-invalid td,.w-cert-invalid th{color:red}.w-certs-info-filename a{font-size:9pt;cursor:pointer}.w-certs-info-filename .glyphicon-lock{margin-right:5px}.w-certs-info-dialog td{overflow:hidden;text-overflow:ellipsis}.w-certs-info-filename{width:220px}.w-certs-info-dialog td,.w-certs-info-dialog th{vertical-align:middle!important}",""])},function(e,t,n){"use strict";n(187);var r=n(6),o=n(293),i=r.createClass({displayName:"TipsDialog",getInitialState:function(){return{}},show:function(e){this._hideDialog=!1,this.setState(e),this.refs.tipsDialog.show()},hide:function(){this.refs.tipsDialog.hide(),this._hideDialog=!0},shouldComponentUpdate:function(){return this._hideDialog===!1},render:function(){var e=this.state;return r.createElement(o,{ref:"tipsDialog",wstyle:"w-dns-servers-dialog w-tips-dialog"},r.createElement("div",{className:"modal-header"},e.title,r.createElement("button",{type:"button",className:"close","data-dismiss":"modal"},r.createElement("span",{"aria-hidden":"true"},"×"))),r.createElement("pre",{className:"modal-body"},e.tips),r.createElement("div",{className:"modal-footer"},r.createElement("button",{type:"button","data-dismiss":"modal",className:"btn btn-primary w-copy-text-with-tips","data-clipboard-text":e.dir},"Copy directory"),r.createElement("button",{type:"button",className:"btn btn-default","data-dismiss":"modal"},"Close")))}});e.exports=i},function(e,t,n){"use strict";function r(e,t){var n="plugin."+e.substring(8);return 0===t.indexOf(e)||0===t.indexOf(n)?t:n+"/"+t}n(616);var o=n(6),i=n(293),a=n(199),s=n(281),l=n(618),c=o.createClass({displayName:"SyncDialog",getInitialState:function(){return{}},show:function(e,t,n,r){var o=this;o.rulesModal=t,o.valuesModal=n,o.plugin=e,a.isString(e.rulesUrl)||(e.rulesUrl=null),a.isString(e.valuesUrl)||(e.valuesUrl=null),(e.rulesUrl||e.valuesUrl)&&o.setState(e,"function"==typeof r?r:function(){o.refs.syncDialog.show()})},_syncRules:function(e){var t=this,n=t.state.rulesUrl;if(!t.loadingRules&&a.isString(n)){t.loadingRules=!0,e&&(n+=(-1===n.indexOf("?")?"?":"&")+"history="+encodeURIComponent(e));var o=s.createCgi(r(t.state.moduleName,n));o(function(n,r){return t.loadingRules=!1,t.setState({}),n?(t.plugin.selectedRulesHistory=e,void t.refs.kvDialog.show(n,t.rulesModal,t.valuesModal,!1,e)):a.showSystemError(r)}),t.setState({})}},_syncValues:function(e){var t=this,n=t.state.valuesUrl;if(!t.loadingValues&&a.isString(n)){t.loadingValues=!0,e&&(n+=(-1===n.indexOf("?")?"?":"&")+"history="+encodeURIComponent(e));var o=s.createCgi(r(t.state.moduleName,n));o(function(n,r){return t.loadingValues=!1,t.setState({}),n?(t.plugin.selectedValuesHistory=e,void t.refs.kvDialog.show(n,t.rulesModal,t.valuesModal,!0,e)):a.showSystemError(r)}),t.setState({})}},syncRules:function(){this._syncRules(this.plugin.selectedRulesHistory)},syncValues:function(){this._syncValues(this.plugin.selectedValuesHistory)},onHistoryChange:function(e,t){t?this._syncValues(e):this._syncRules(e)},render:function(){var e=this.state;return o.createElement(i,{
104
+ ref:"syncDialog",wstyle:"w-sync-dialog"},o.createElement("div",{className:"modal-body"},o.createElement("button",{onClick:this.syncRules,disabled:this.loadingRules||!a.isString(e.rulesUrl),type:"button",className:"btn btn-primary"},o.createElement("span",{className:"glyphicon glyphicon-list"})," ",this.loadingRules?"Loading":"Sync"," Rules"),o.createElement("button",{onClick:this.syncValues,disabled:this.loadingValues||!a.isString(e.valuesUrl),type:"button",className:"btn btn-default"},o.createElement("span",{className:"glyphicon glyphicon-folder-close"})," ",this.loadingValues?"Loading":"Sync"," Values")),o.createElement("div",{className:"modal-footer"},o.createElement("button",{type:"button",className:"btn btn-default","data-dismiss":"modal"},"Close")),o.createElement(l,{onHistoryChange:this.onHistoryChange,ref:"kvDialog"}))}}),u=o.createClass({displayName:"SyncDialogWrap",shouldComponentUpdate:function(){return!1},show:function(e,t,n,r){this.refs.syncDialog.show(e,t,n,r)},syncRules:function(){this.refs.syncDialog.syncRules()},syncValues:function(){this.refs.syncDialog.syncValues()},render:function(){return o.createElement(c,{ref:"syncDialog"})}});e.exports=u},function(e,t,n){var r=n(617);"string"==typeof r&&(r=[[e.id,r,""]]);n(4)(r,{});r.locals&&(e.exports=r.locals)},function(e,t,n){t=e.exports=n(3)(),t.push([e.id,".w-sync-dialog .modal-dialog{width:420px}.w-sync-dialog .modal-body .btn{display:block;width:398px;line-height:40px;font-size:18px;margin:10px 0}.w-sync-dialog .modal-body .btn span{margin-right:10px}.w-history-record-list{margin:25px 0 15px 10px;width:510px;display:inline-block}",""])},function(e,t,n){"use strict";var r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};n(187),n(619);var o=n(6),i=n(293),a=n(199),s=n(280),l=n(210),c=o.createClass({displayName:"KVDialog",getInitialState:function(){return{list:[],history:[]}},show:function(e,t,n,o,i){this.isValues=o,this.refs.kvDialog.show(),this._hideDialog=!1;var s=[];if(e&&Array.isArray(e.list)&&"object"===r(e.data)){var l=0;e.list.forEach(function(e){e&&360>l&&"string"==typeof e&&e.length<=256&&(++l,s.push(e))}),e.selected&&(i=-1===s.indexOf(e.selected)?"":e.selected),e=e.data}this.setState({selectedHistory:i,history:s,list:a.parseImportData(e||"",o?n:t,o)})},hide:function(){this.refs.kvDialog.hide(),this._hideDialog=!0},shouldComponentUpdate:function(){return this._hideDialog===!1},selectHistory:function(e){var t=this.props.onHistoryChange;t&&t(e.target.value,this.isValues)},viewContent:function(e){a.openEditor(e.target.title)},confirm:function(){var e,t={},n=this;return n.state.list.forEach(function(n){e=e||n.isConflict,t[n.name]=n.value}),e?void l.confirm("Conflict with existing content, whether to continue to overwrite them?",function(e){e&&s.trigger(n.isValues?"uploadValues":"uploadRules",t)}):s.trigger(n.isValues?"uploadValues":"uploadRules",t)},remove:function(e){var t=this;l.confirm("Are you sure to delete '"+e.name+"'.",function(n){if(n){var r=t.state.list.indexOf(e);-1!==r&&(t.state.list.splice(r,1),t.setState({}))}})},render:function(){var e=this,t=e.state,n=t.list||[],r=t.history,a=t.selectedHistory||"",s=!n.length;return o.createElement(i,{ref:"kvDialog",wstyle:"w-kv-dialog"},o.createElement("div",{className:"modal-body"},o.createElement("button",{type:"button",className:"close",onClick:e.hide},o.createElement("span",{"aria-hidden":"true"},"×")),r.length?o.createElement("label",null,this.isValues?"Values":"Rules"," History:",o.createElement("select",{value:a,onChange:this.selectHistory,className:"form-control w-history-record-list"},o.createElement("option",{value:""},"Select history"),r.map(function(e){return o.createElement("option",{value:e},e)}))):void 0,o.createElement("table",{className:"table"},o.createElement("thead",null,o.createElement("th",{className:"w-kv-name"},"Name"),o.createElement("th",{className:"w-kv-operation"},"Operation")),o.createElement("tbody",null,s?o.createElement("tr",null,o.createElement("td",{colSpan:"2",className:"w-empty"},"Empty")):n.map(function(t,n){return o.createElement("tr",{className:t.isConflict?"w-kv-conflict":void 0},o.createElement("th",{title:t.name,className:"w-kv-name"},t.name),o.createElement("td",{className:"w-kv-operation"},o.createElement("a",{title:t.value,onClick:e.viewContent},"Content"),o.createElement("a",{"data-name":t.name,onClick:function(){e.remove(t)}},"Delete"),o.createElement("strong",null,t.isConflict?"[Conflict]":"")))})))),o.createElement("div",{className:"modal-footer"},o.createElement("button",{type:"button",className:"btn btn-primary",disabled:s,onClick:this.confirm,"data-dismiss":"modal"},"Add to ",this.isValues?"Values":"Rules"),o.createElement("button",{type:"button",className:"btn btn-default","data-dismiss":"modal"},"Close")))}});e.exports=c},function(e,t,n){var r=n(620);"string"==typeof r&&(r=[[e.id,r,""]]);n(4)(r,{});r.locals&&(e.exports=r.locals)},function(e,t,n){t=e.exports=n(3)(),t.push([e.id,".w-kv-dialog .modal-dialog{width:666px}.w-kv-name{width:25pc}.w-kv-operation a:nth-child(2){color:#f66;margin:0 20px}.w-kv-conflict th,.w-kv-operation strong{color:#f66}",""])}]);
package/lib/https/ca.js CHANGED
@@ -41,8 +41,10 @@ var certsCache = new LRU({ max: 256 });
41
41
  var remoteCerts = new LRU({ max: 1280 });
42
42
  var ILEGAL_CHAR_RE = /[^a-z\d-]/i;
43
43
  var RANDOM_SERIAL = '.' + Date.now() + '.' + Math.floor(Math.random() * 10000);
44
- var CLEAR_CERTS_INTERVAL = 1000 * 60 * 60 * 24 * 20;
45
- var MAX_INNTERFAL = 18;
44
+ var ONE_DAY = 1000 * 60 * 60 * 24;
45
+ var MIN_DATE = ONE_DAY * 20;
46
+ var CLEAR_CERTS_INTERVAL = ONE_DAY * 20;
47
+ var MAX_INNTERFAL = 16;
46
48
  var PORT_RE = /:\d*$/;
47
49
  var customRoot;
48
50
  var ROOT_KEY, ROOT_CRT;
@@ -494,11 +496,17 @@ function createCert(publicKey, serialNumber, isShortPeriod) {
494
496
  var cert = pki.createCertificate();
495
497
  cert.publicKey = publicKey;
496
498
  cert.serialNumber = serialNumber || '01';
497
- var curYear = new Date().getFullYear();
498
- cert.validity.notBefore = new Date();
499
- cert.validity.notAfter = new Date();
500
- cert.validity.notBefore.setFullYear(curYear - 1);
499
+ var curDate = new Date();
500
+ var curYear = curDate.getFullYear();
501
+ if (isShortPeriod) {
502
+ cert.validity.notBefore = new Date(curDate.getTime() - MIN_DATE);
503
+ } else {
504
+ cert.validity.notBefore = new Date();
505
+ cert.validity.notBefore.setFullYear(curYear - 1);
506
+ }
507
+ // https://www.ssls.com/blog/apples-new-ssl-lifetime-limitation-and-what-it-means-for-you/
501
508
  // https://chromium.googlesource.com/chromium/src/+/refs/heads/master/net/cert/cert_verify_proc.cc#900
509
+ cert.validity.notAfter = new Date();
502
510
  cert.validity.notAfter.setFullYear(curYear + (isShortPeriod ? 1 : 10));
503
511
  return cert;
504
512
  }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "whistle",
3
3
  "description": "HTTP, HTTP2, HTTPS, Websocket debugging proxy",
4
- "version": "2.9.27",
4
+ "version": "2.9.28",
5
5
  "dataDirname": ".whistle",
6
6
  "localUIHost": "local.whistlejs.com",
7
7
  "port": 8899,