diff --git a/app/console/.gitignore b/app/console/.gitignore index ac7af2e80e3a7920c6989974744a27c21db8cd33..4a8647a62222df15a4bc5237f9e8e0c75cd1007b 100644 --- a/app/console/.gitignore +++ b/app/console/.gitignore @@ -1 +1,10 @@ /html/ +/console +/work/ +/log/ +/logs/ +/cert/ +/config/ +/db/ +/static/ +/sql/ diff --git a/app/console/config/cluster.yaml b/app/console/config/cluster.yaml deleted file mode 100644 index d6490fbd113844571c6bca8881421d116de73b47..0000000000000000000000000000000000000000 --- a/app/console/config/cluster.yaml +++ /dev/null @@ -1,17 +0,0 @@ -cluster: - - - name: "Default" - title: "默认机房" - note: "默认机房" - db: - driver: "mysql" - host: "127.0.0.1" - port: 3306 - userName: "root" - password: "123456" - database: "goku_ee" - redis: - mode: "stand" - addrs: "127.0.0.1:6379" # stand、cluster模式下addrs为redis地址,多个地址间用英文逗号隔开 - password: "123456" - dbIndex: 0 \ No newline at end of file diff --git a/app/console/config/goku.conf b/app/console/config/goku.conf deleted file mode 100644 index 89c03ea5f180b83f9e5ea6b87968521d8591e9e3..0000000000000000000000000000000000000000 --- a/app/console/config/goku.conf +++ /dev/null @@ -1,7 +0,0 @@ -listen_port: 7000 -admin_bind: 127.0.0.1:7005 -db_host: 127.0.0.1 -db_port: 3306 -db_name: goku_ee -db_user: root -db_password: root \ No newline at end of file diff --git a/app/console/main.go b/app/console/main.go index 1635546392227aec9b2a51d34515053c729998a5..05c82e0557507fa0d2664a6ec3624f591831aae7 100644 --- a/app/console/main.go +++ b/app/console/main.go @@ -2,6 +2,7 @@ package main import ( "flag" + "github.com/eolinker/goku-api-gateway/console/module/account" log "github.com/eolinker/goku-api-gateway/goku-log" @@ -12,19 +13,15 @@ import ( ) var ( - // UserPassword 用户密码 - UserPassword string - // UserName 用户名 - UserName string - // ConfFilePath 配置文件地址 - ConfFilePath = "./config/goku.conf" - + userPassword string + userName string + confFilePath = "./config/goku.conf" ) func main() { - flag.StringVar(&ConfFilePath, "c", "./config/goku.conf", "Please provide a valid configuration file path") - flag.StringVar(&UserName, "u", "", "Please provide user name") - flag.StringVar(&UserPassword, "p", "", "Please provide user password") + flag.StringVar(&confFilePath, "c", "./config/goku.conf", "Please provide a valid configuration file path") + flag.StringVar(&userName, "u", "", "Please provide user name") + flag.StringVar(&userPassword, "p", "", "Please provide user password") isDebug := flag.Bool("debug", false, "") flag.Parse() @@ -32,7 +29,7 @@ func main() { log.StartDebug() } // 初始化配置 - if err := conf.ReadConfigure(ConfFilePath); err != nil { + if err := conf.ReadConfigure(confFilePath); err != nil { log.Panic(err) return } @@ -40,32 +37,34 @@ func main() { console.InitDatabase() console.InitLog() - console.InitClusters() + //console.InitClusters() // 其他需要初始化的模块 _ = general.General() // 检测是否安装 - - if s, err := account.CheckSuperAdminCount(); err != nil { - log.Panic(err) - return - } else if s == 0 { - if UserName == "" { + s, err := account.CheckSuperAdminCount() + if err != nil { + err = console.InitTable() + if err != nil { + log.Panic(err) + return + } + } + if s == 0 { + if userName == "" { log.Fatal("[ERROR] Fail to create administrator. Please try again or contact technical support of eoLinker GOKU API Gateway.") - //fmt.Println("[ERROR] Fail to create administrator. Please try again or contact technical support of eoLinker GOKU API Gateway.") return } - if UserPassword == "" { + if userPassword == "" { log.Fatal("[ERROR] Fail to create administrator. Please try again or contact technical support of eoLinker GOKU API Gateway.") - //fmt.Println("[ERROR] Fail to create administrator. Please try again or contact technical support of eoLinker GOKU API Gateway.") + return } // 用户注册 - password := utils.Md5(utils.Md5(UserPassword)) - f := console.Register(UserName, password) + password := utils.Md5(utils.Md5(userPassword)) + f := console.Register(userName, password) if !f { log.Fatal("[ERROR] Fail to create administrator. Please try again or contact technical support of eoLinker GOKU API Gateway.") - //fmt.Println("[ERROR] Fail to create administrator. Please try again or contact technical support of eoLinker GOKU API Gateway.") return } } diff --git a/app/console/static/scripts/app-9b3cb8f46b.js b/app/console/static/scripts/app-9b3cb8f46b.js deleted file mode 100644 index 286dc41cff3fb3aced8bc12ddbc6ce30d2ef4003..0000000000000000000000000000000000000000 --- a/app/console/static/scripts/app-9b3cb8f46b.js +++ /dev/null @@ -1,22 +0,0 @@ -function _defineProperty(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function _defineProperty(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function _defineProperty(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function _defineProperty(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}!function(e){"use strict";function t(e,t){return t=t||Error,function(){var n,a,i=arguments[0],o=arguments[1],r="["+(e?e+":":"")+i+"] ",s=Q(arguments,2).map(function(e){return Ie(e,Ja.objectMaxDepth)});for(r+=o.replace(/\{\d+\}/g,function(e){var t=+e.slice(1,-1);return t0}function i(e){if(null==e||S(e))return!1;if(fi(e)||w(e)||ni&&e instanceof ni)return!0;var t="length"in Object(e)&&e.length;return I(t)&&(t>=0&&(t-1 in e||e instanceof Array)||"function"==typeof e.item)}function o(e,t,n){var a,r;if(e)if(C(e))for(a in e)"prototype"!==a&&"length"!==a&&"name"!==a&&e.hasOwnProperty(a)&&t.call(n,e[a],a,e);else if(fi(e)||i(e)){var s="object"!=typeof e;for(a=0,r=e.length;a=0&&e.splice(n,1),n}function U(e,t,n){function i(e,t,n){if(n--,n<0)return"...";var a,i=t.$$hashKey;if(fi(e))for(var o=0,s=e.length;o2?Q(arguments,2):[];return!C(t)||t instanceof RegExp?t:n.length?function(){return arguments.length?t.apply(e,H(n,arguments,0)):t.apply(e,n)}:function(){return arguments.length?t.apply(e,arguments):t.call(e)}}function z(t,n){var a=n;return"string"==typeof t&&"$"===t.charAt(0)&&"$"===t.charAt(1)?a=void 0:S(n)?a="$WINDOW":n&&e.document===n?a="$DOCUMENT":_(n)&&(a="$SCOPE"),a}function W(e,t){if(!$(e))return I(t)||(t=t?2:null),JSON.stringify(e,z,t)}function J(e){return w(e)?JSON.parse(e):e}function Y(e,t){e=e.replace(yi,"");var n=Date.parse("Jan 01, 1970 00:00:00 "+e)/6e4;return mi(n)?t:n}function X(e,t){return e=new Date(e.getTime()),e.setMinutes(e.getMinutes()+t),e}function Z(e,t,n){n=n?-1:1;var a=e.getTimezoneOffset(),i=Y(t,a);return X(e,n*(i-a))}function ee(e){e=ni(e).clone();try{e.empty()}catch(t){}var n=ni("
").append(e).html();try{return e[0].nodeType===ki?Ya(n):n.match(/^(<[^>]+>)/)[1].replace(/^<([\w-]+)/,function(e,t){return"<"+Ya(t)})}catch(t){return Ya(n)}}function te(e){try{return decodeURIComponent(e)}catch(t){}}function ne(e){var t={};return o((e||"").split("&"),function(e){var n,a,i;e&&(a=e=e.replace(/\+/g,"%20"),n=e.indexOf("="),n!==-1&&(a=e.substring(0,n),i=e.substring(n+1)),a=te(a),y(a)&&(i=!y(i)||te(i),Wa.call(t,a)?fi(t[a])?t[a].push(i):t[a]=[t[a],i]:t[a]=i))}),t}function ae(e){var t=[];return o(e,function(e,n){fi(e)?o(e,function(e){t.push(oe(n,!0)+(e===!0?"":"="+oe(e,!0)))}):t.push(oe(n,!0)+(e===!0?"":"="+oe(e,!0)))}),t.length?t.join("&"):""}function ie(e){return oe(e,!0).replace(/%26/gi,"&").replace(/%3D/gi,"=").replace(/%2B/gi,"+")}function oe(e,t){return encodeURIComponent(e).replace(/%40/gi,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%3B/gi,";").replace(/%20/g,t?"%20":"+")}function re(e,t){var n,a,i=xi.length;for(a=0;a/,">"))}n=n||[],n.unshift(["$provide",function(e){e.value("$rootElement",t)}]),a.debugInfoEnabled&&n.push(["$compileProvider",function(e){e.debugInfoEnabled(!0)}]),n.unshift("ng");var o=pt(n,a.strictDi);return o.invoke(["$rootScope","$rootElement","$compile","$injector",function(e,t,n,a){e.$apply(function(){t.data("$injector",a),n(t)(e)})}]),o},s=/^NG_ENABLE_DEBUG_INFO!/,c=/^NG_DEFER_BOOTSTRAP!/;return e&&s.test(e.name)&&(a.debugInfoEnabled=!0,e.name=e.name.replace(s,"")),e&&!c.test(e.name)?r():(e.name=e.name.replace(c,""),pi.resumeBootstrap=function(e){return o(e,function(e){n.push(e)}),r()},void(C(pi.resumeDeferredBootstrap)&&pi.resumeDeferredBootstrap()))}function ue(){e.name="NG_ENABLE_DEBUG_INFO!"+e.name,e.location.reload()}function pe(e){var t=pi.element(e).injector();if(!t)throw ui("test","no injector found for element argument to getTestability");return t.get("$$testability")}function de(e,t){return t=t||"_",e.replace(wi,function(e,n){return(n?t:"")+e.toLowerCase()})}function me(){var t;if(!Ii){var n=$i();ai=$(n)?e.jQuery:n?e[n]:void 0,ai&&ai.fn.on?(ni=ai,p(ai.fn,{scope:Bi.scope,isolateScope:Bi.isolateScope,controller:Bi.controller,injector:Bi.injector,inheritedData:Bi.inheritedData}),t=ai.cleanData,ai.cleanData=function(e){for(var n,a,i=0;null!=(a=e[i]);i++)n=ai._data(a,"events"),n&&n.$destroy&&ai(a).triggerHandler("$destroy");t(e)}):ni=Pe,pi.element=ni,Ii=!0}}function fe(e,t,n){if(!e)throw ui("areq","Argument '{0}' is {1}",t||"?",n||"required");return e}function he(e,t,n){return n&&fi(e)&&(e=e[e.length-1]),fe(C(e),t,"not a function, got "+(e&&"object"==typeof e?e.constructor.name||"Object":typeof e)),e}function ge(e,t){if("hasOwnProperty"===e)throw ui("badname","hasOwnProperty is not a valid {0} name",t)}function ve(e,t,n){if(!t)return e;for(var a,i=t.split("."),o=e,r=i.length,s=0;s=0)return"...";n.push(t)}return t})}function Ie(e,t){return"function"==typeof e?e.toString().replace(/ \{[\s\S]*$/,""):$(e)?"undefined":"string"!=typeof e?we(e,t):e}function Oe(a){p(a,{errorHandlingConfig:n,bootstrap:le,copy:U,extend:p,merge:d,equals:B,element:ni,forEach:o,injector:pt,noop:h,bind:K,toJson:W,fromJson:J,identity:g,isUndefined:$,isDefined:y,isString:w,isFunction:C,isObject:x,isNumber:I,isElement:T,isArray:fi,version:Ei,isDate:O,lowercase:Ya,uppercase:Xa,callbacks:{$$counter:0},getTestability:pe,reloadWithDebugInfo:ue,$$minErr:t,$$csp:bi,$$encodeUriSegment:ie,$$encodeUriQuery:oe,$$stringify:ye}),ii=xe(e),ii("ng",["ngLocale"],["$provide",function(e){e.provider({$$sanitizeUri:Dn}),e.provider("$compile",jt).directive({a:Zo,input:$r,textarea:$r,form:or,script:ms,select:gs,option:vs,ngBind:jr,ngBindHtml:Ir,ngBindTemplate:wr,ngClass:Cr,ngClassEven:Sr,ngClassOdd:kr,ngCloak:_r,ngController:Dr,ngForm:rr,ngHide:rs,ngIf:Rr,ngInclude:Mr,ngInit:Pr,ngNonBindable:Yr,ngPluralize:ts,ngRepeat:ns,ngShow:os,ngStyle:ss,ngSwitch:cs,ngSwitchWhen:ls,ngSwitchDefault:us,ngOptions:es,ngTransclude:ds,ngModel:zr,ngList:Tr,ngChange:Or,pattern:$s,ngPattern:$s,required:bs,ngRequired:bs,minlength:xs,ngMinlength:xs,maxlength:ys,ngMaxlength:ys,ngValue:xr,ngModelOptions:Jr}).directive({ngInclude:qr}).directive(er).directive(Er),e.provider({$anchorScroll:dt,$animate:co,$animateCss:po,$$animateJs:ro,$$animateQueue:so,$$AnimateRunner:uo,$$animateAsyncRun:lo,$browser:bt,$cacheFactory:$t,$controller:St,$document:_t,$$isDocumentHidden:Dt,$exceptionHandler:Et,$filter:Hn,$$forceReflow:$o,$interpolate:Ht,$interval:Qt,$http:Gt,$httpParamSerializer:Rt,$httpParamSerializerJQLike:Mt,$httpBackend:Vt,$xhrFactory:Ut,$jsonpCallbacks:ko,$location:cn,$log:ln,$parse:In,$rootScope:_n,$q:On,$$q:Cn,$sce:qn,$sceDelegate:Mn,$sniffer:Pn,$templateCache:yt,$templateRequest:Tn,$$testability:Ln,$timeout:Nn,$window:Un,$$rAF:Sn,$$jqLite:it,$$Map:Ji,$$cookieReader:Bn})}]).info({angularVersion:"1.6.4"})}function Ce(){return++Ri}function ke(e){return _e(e.replace(qi,"ms-"))}function Se(e,t){return t.toUpperCase()}function _e(e){return e.replace(Mi,Se)}function De(e){return!Ni.test(e)}function Ee(e){var t=e.nodeType;return t===Oi||!t||t===_i}function Ae(e){for(var t in Ai[e.ng339])return!0;return!1}function Re(e,t){var n,a,i,r,s=t.createDocumentFragment(),c=[];if(De(e))c.push(t.createTextNode(e));else{for(n=s.appendChild(t.createElement("div")),a=(Fi.exec(e)||["",""])[1].toLowerCase(),i=Ui[a]||Ui._default,n.innerHTML=i[1]+e.replace(Gi,"<$1>")+i[2],r=i[0];r--;)n=n.lastChild;c=H(c,n.childNodes),n=s.firstChild,n.textContent=""}return s.textContent="",s.innerHTML="",o(c,function(e){s.appendChild(e)}),s}function Me(t,n){n=n||e.document;var a;return(a=Li.exec(t))?[n.createElement(a[1])]:(a=Re(t,n))?a.childNodes:[]}function qe(e,t){var n=e.parentNode;n&&n.replaceChild(t,e),t.appendChild(e)}function Pe(e){if(e instanceof Pe)return e;var t;if(w(e)&&(e=gi(e),t=!0),!(this instanceof Pe)){if(t&&"<"!==e.charAt(0))throw Ti("nosel","Looking up elements via selectors is not supported by jqLite! See: http://docs.angularjs.org/api/angular.element");return new Pe(e)}t?Qe(this,Me(e)):C(e)?Xe(e):Qe(this,e)}function Te(e){return e.cloneNode(!0)}function Le(e,t){!t&&Ee(e)&&ni.cleanData([e]),e.querySelectorAll&&ni.cleanData(e.querySelectorAll("*"))}function Ne(e,t,n,a){if(y(a))throw Ti("offargs","jqLite#off() does not support the `selector` argument");var i=Ge(e),r=i&&i.events,s=i&&i.handle;if(s)if(t){var c=function(t){var a=r[t];y(n)&&G(a||[],n),y(n)&&a&&a.length>0||(e.removeEventListener(t,s),delete r[t])};o(t.split(" "),function(e){c(e),Pi[e]&&c(Pi[e])})}else for(t in r)"$destroy"!==t&&e.removeEventListener(t,s),delete r[t]}function Fe(e,t){var n=e.ng339,a=n&&Ai[n];if(a){if(t)return void delete a.data[t];a.handle&&(a.events.$destroy&&a.handle({},"$destroy"),Ne(e)),delete Ai[n],e.ng339=void 0}}function Ge(e,t){var n=e.ng339,a=n&&Ai[n];return t&&!a&&(e.ng339=n=Ce(),a=Ai[n]={events:{},data:{},handle:void 0}),a}function Ue(e,t,n){if(Ee(e)){var a,i=y(n),o=!i&&t&&!x(t),r=!t,s=Ge(e,!o),c=s&&s.data;if(i)c[_e(t)]=n;else{if(r)return c;if(o)return c&&c[_e(t)];for(a in t)c[_e(a)]=t[a]}}}function Ve(e,t){return!!e.getAttribute&&(" "+(e.getAttribute("class")||"")+" ").replace(/[\n\t]/g," ").indexOf(" "+t+" ")>-1}function Be(e,t){t&&e.setAttribute&&o(t.split(" "),function(t){e.setAttribute("class",gi((" "+(e.getAttribute("class")||"")+" ").replace(/[\n\t]/g," ").replace(" "+gi(t)+" "," ")))})}function He(e,t){if(t&&e.setAttribute){var n=(" "+(e.getAttribute("class")||"")+" ").replace(/[\n\t]/g," ");o(t.split(" "),function(e){e=gi(e),n.indexOf(" "+e+" ")===-1&&(n+=e+" ")}),e.setAttribute("class",gi(n))}}function Qe(e,t){if(t)if(t.nodeType)e[e.length++]=t;else{var n=t.length;if("number"==typeof n&&t.window!==t){if(n)for(var a=0;a1&&(i=je(i));for(var c=0;cl&&this.remove(m.key),t}},get:function(e){if(l";var a=Ce.firstChild.attributes,i=a[0];a.removeNamedItem(i.name),i.value=n,e.attributes.setNamedItem(i)}function F(e,t){try{e.addClass(t)}catch(n){}}function U(e,t,n,a,i){e instanceof ni||(e=ni(e));var o=z(e,t,e,n,a,i);U.$$addScopeClass(e);var r=null;return function(t,n,a){if(!e)throw mo("multilink","This element has already been linked.");fe(t,"scope"),i&&i.needsNewScope&&(t=t.$parent.$new()),a=a||{}; -var s=a.parentBoundTranscludeFn,c=a.transcludeControllers,l=a.futureParentElement;s&&s.$$boundTransclude&&(s=s.$$boundTransclude),r||(r=H(l));var u;if(u="html"!==r?ni(ge(r,ni("
").append(e).html())):n?Bi.clone.call(e):e,c)for(var p in c)u.data("$"+p+"Controller",c[p].instance);return U.$$addScopeInfo(u,t),n&&n(u,t),o&&o(t,u,u,s),n||(e=o=null),u}}function H(e){var t=e&&e[0];return t&&"foreignobject"!==N(t)&&ci.call(t).match(/SVG/)?"svg":"html"}function z(e,t,n,a,i,o){function r(e,n,a,i){var o,r,s,c,l,u,p,d,h;if(m){var g=n.length;for(h=new Array(g),l=0;l0)}else a.push(e);return ni(a)}function te(e,t,n){return function(a,i,o,r,s){return i=Z(i[0],t,n),e(a,i,o,r,s)}}function ne(e,t,n,a,i,o){var r;return e?U(t,n,a,i,o):function(){return r||(r=U(t,n,a,i,o),t=n=o=null),r.apply(this,arguments)}}function ae(e,t,n,i,r,s,c,l,u){function d(e,t,n,a){e&&(n&&(e=te(e,n,a)),e.require=f.require,e.directiveName=h,(I===f||f.$$isolateScope)&&(e=xe(e,{isolateScope:!0})),c.push(e)),t&&(n&&(t=te(t,n,a)),t.require=f.require,t.directiveName=h,(I===f||f.$$isolateScope)&&(t=xe(t,{isolateScope:!0})),l.push(t))}function m(e,i,r,s,u){function d(e,t,n,a){var i;if(_(e)||(a=n,n=t,t=e,e=void 0),A&&(i=b),n||(n=A?k.parent():k),!a)return u(e,t,i,n,N);var o=u.$$slots[a];if(o)return o(e,t,i,n,N);if($(o))throw mo("noslot",'No parent directive that requires a transclusion with slot name "{0}". Element: {1}',a,ee(k))}var m,f,h,g,v,b,y,k,S,E;t===r?(S=n,k=n.$$element):(k=ni(r),S=new T(k,n)),v=i,I?g=i.$new(!0):j&&(v=i.$parent),u&&(y=d,y.$$boundTransclude=u,y.isSlotFilled=function(e){return!!u.$$slots[e]}),w&&(b=oe(k,S,y,w,g,i,I)),I&&(U.$$addScopeInfo(k,g,!0,!(O&&(O===I||O===I.$$originalDirective))),U.$$addScopeClass(k,!0),g.$$isolateBindings=I.$$isolateBindings,E=we(i,S,g,g.$$isolateBindings,I),E.removeWatches&&g.$on("$destroy",E.removeWatches));for(var R in b){var M=w[R],q=b[R],P=M.$$bindings.bindToController;if(D){P?q.bindingInfo=we(v,S,q.instance,P,M):q.bindingInfo={};var L=q();L!==q.instance&&(q.instance=L,k.data("$"+M.name+"Controller",L),q.bindingInfo.removeWatches&&q.bindingInfo.removeWatches(),q.bindingInfo=we(v,S,q.instance,P,M))}else q.instance=q(),k.data("$"+M.name+"Controller",q.instance),q.bindingInfo=we(v,S,q.instance,P,M)}for(o(w,function(e,t){var n=e.require;e.bindToController&&!fi(n)&&x(n)&&p(b[t].instance,ie(t,n,k,b))}),o(b,function(e){var t=e.instance;if(C(t.$onChanges))try{t.$onChanges(e.bindingInfo.initialChanges)}catch(n){a(n)}if(C(t.$onInit))try{t.$onInit()}catch(n){a(n)}C(t.$doCheck)&&(v.$watch(function(){t.$doCheck()}),t.$doCheck()),C(t.$onDestroy)&&v.$on("$destroy",function(){t.$onDestroy()})}),m=0,f=c.length;m=0;m--)h=l[m],je(h,h.isolateScope?g:i,k,S,h.require&&ie(h.directiveName,h.require,k,b),y);o(b,function(e){var t=e.instance;C(t.$postLink)&&t.$postLink()})}u=u||{};for(var f,h,g,v,b,y=-Number.MAX_VALUE,j=u.newScopeDirective,w=u.controllerDirectives,I=u.newIsolateScopeDirective,O=u.templateDirective,k=u.nonTlbTranscludeDirective,S=!1,E=!1,A=u.hasElementTranscludeDirective,R=n.$$element=ni(t),M=s,q=i,P=!1,L=!1,F=0,G=e.length;Ff.priority)break;if(b=f.scope,b&&(f.templateUrl||(x(b)?(me("new/isolated scope",I||j,f,R),I=f):me("new/isolated scope",I,f,R)),j=j||f),h=f.name,!P&&(f.replace&&(f.templateUrl||f.template)||f.transclude&&!f.$$tlb)){for(var H,z=F+1;H=e[z++];)if(H.transclude&&!H.$$tlb||H.replace&&(H.templateUrl||H.template)){L=!0;break}P=!0}if(!f.templateUrl&&f.controller&&(w=w||$e(),me("'"+h+"' controller",w[h],f,R),w[h]=f),b=f.transclude)if(S=!0,f.$$tlb||(me("transclusion",k,f,R),k=f),"element"===b)A=!0,y=f.priority,g=R,R=n.$$element=ni(U.$$createComment(h,n[h])),t=R[0],ye(r,Q(g),t),g[0].$$parentNode=g[0].parentNode,q=ne(L,g,i,y,M&&M.name,{nonTlbTranscludeDirective:k});else{var W=$e();if(x(b)){g=[];var J=$e(),X=$e();o(b,function(e,t){var n="?"===e.charAt(0);e=n?e.substring(1):e,J[e]=t,W[t]=null,X[t]=n}),o(R.contents(),function(e){var t=J[It(N(e))];t?(X[t]=!0,W[t]=W[t]||[],W[t].push(e)):g.push(e)}),o(X,function(e,t){if(!e)throw mo("reqslot","Required transclusion slot `{0}` was not filled.",t)});for(var ae in W)W[ae]&&(W[ae]=ne(L,W[ae],i))}else g=ni(Te(t)).contents();R.empty(),q=ne(L,g,i,void 0,void 0,{needsNewScope:f.$$isolateScope||f.$$newScope}),q.$$slots=W}if(f.template)if(E=!0,me("template",O,f,R),O=f,b=C(f.template)?f.template(R,n):f.template,b=Re(b),f.replace){if(M=f,g=De(b)?[]:Ct(ge(f.templateNamespace,gi(b))),t=g[0],1!==g.length||t.nodeType!==Oi)throw mo("tplrt","Template for directive '{0}' must have exactly one root element. {1}",h,"");ye(r,R,t);var se={$attr:{}},ce=Y(t,[],se),pe=e.splice(F+1,e.length-(F+1));(I||j)&&re(ce,I,j),e=e.concat(ce).concat(pe),le(n,se),G=e.length}else R.html(b);if(f.templateUrl)E=!0,me("template",O,f,R),O=f,f.replace&&(M=f),m=ue(e.splice(F,e.length-F),R,n,r,S&&q,c,l,{controllerDirectives:w,newScopeDirective:j!==f&&j,newIsolateScopeDirective:I,templateDirective:O,nonTlbTranscludeDirective:k}),G=e.length;else if(f.compile)try{v=f.compile(R,n,q);var de=f.$$originalDirective||f;C(v)?d(null,K(de,v),V,B):v&&d(K(de,v.pre),K(de,v.post),V,B)}catch(fe){a(fe,ee(R))}f.terminal&&(m.terminal=!0,y=Math.max(y,f.priority))}return m.scope=j&&j.scope===!0,m.transcludeOnThisElement=S,m.templateOnThisElement=E,m.transclude=q,u.hasElementTranscludeDirective=A,m}function ie(e,t,n,a){var i;if(w(t)){var r=t.match(I),s=t.substring(r[0].length),c=r[1]||r[3],l="?"===r[2];if("^^"===c?n=n.parent():(i=a&&a[s],i=i&&i.instance),!i){var u="$"+s+"Controller";i=c?n.inheritedData(u):n.data(u)}if(!i&&!l)throw mo("ctreq","Controller '{0}', required by directive '{1}', can't be found!",s,e)}else if(fi(t)){i=[];for(var p=0,d=t.length;pp.priority)&&p.restrict.indexOf(a)!==-1){if(s&&(p=f(p,{$$start:s,$$end:c})),!p.$$bindings){var v=p.$$bindings=i(p,p.name);x(v.isolateScope)&&(p.$$isolateBindings=v.isolateScope)}e.push(p),l=p}return l}function ce(e){if(u.hasOwnProperty(e))for(var n,a=t.get(e+d),i=0,o=a.length;i"+n+"",a.childNodes[0].childNodes;default:return n}}function ve(e,t){if("srcdoc"===t)return v.HTML;var n=N(e);if("src"===t||"ngSrc"===t){if(["img","video","audio","source","track"].indexOf(n)===-1)return v.RESOURCE_URL}else if("xlinkHref"===t||"form"===n&&"action"===t||"link"===n&&"href"===t)return v.RESOURCE_URL}function be(e,t,a,i,o){var r=ve(e,i),s=!o,c=j[i]||o,l=n(a,s,r,c);if(l){if("multiple"===i&&"select"===N(e))throw mo("selmulti","Binding to the 'multiple' attribute is not supported. Element: {0}",ee(e));if(O.test(i))throw mo("nodomevents","Interpolations for HTML DOM event attributes are disallowed. Please use the ng- versions (such as ng-click instead of onclick) instead.");t.push({priority:100,compile:function(){return{pre:function(e,t,o){var s=o.$$observers||(o.$$observers=$e()),u=o[i];u!==a&&(l=u&&n(u,!0,r,c),a=u),l&&(o[i]=l(e),(s[i]||(s[i]=[])).$$inter=!0,(o.$$observers&&o.$$observers[i].$$scope||e).$watch(l,function(e,t){"class"===i&&e!==t?o.$updateClass(e,t):o.$set(i,e)}))}}}})}}function ye(t,n,a){var i,o,r=n[0],s=n.length,c=r.parentNode;if(t)for(i=0,o=t.length;i0&&k.addClass(this.$$element,e)},$removeClass:function(e){e&&e.length>0&&k.removeClass(this.$$element,e)},$updateClass:function(e,t){var n=Ot(e,t);n&&n.length&&k.addClass(this.$$element,n);var a=Ot(t,e);a&&a.length&&k.removeClass(this.$$element,a)},$set:function(e,t,n,i){var r,s=this.$$element[0],c=Ze(s,e),l=et(e),u=e;if(c?(this.$$element.prop(e,t),i=c):l&&(this[l]=t,u=l),this[e]=t,i?this.$attr[e]=i:(i=this.$attr[e],i||(this.$attr[e]=i=de(e,"-"))),r=N(this.$$element),"a"===r&&("href"===e||"xlinkHref"===e)||"img"===r&&"src"===e)this[e]=t=q(t,"src"===e);else if("img"===r&&"srcset"===e&&y(t)){for(var p="",d=gi(t),m=/(\s+\d+x\s*,|\s+\d+w\s*,|\s+,|,\s+)/,f=/\s/.test(d)?m:/(,)/,h=d.split(f),g=Math.floor(h.length/2),v=0;v0?" ":"")+r}return n}function Ct(e){e=ni(e);var t=e.length;if(t<=1)return e;for(;t--;){var n=e[t];(n.nodeType===Si||n.nodeType===ki&&""===n.nodeValue.trim())&&ri.call(e,t,1)}return e}function kt(e,t){if(t&&w(t))return t;if(w(e)){var n=bo.exec(e);if(n)return n[3]}}function St(){var e={},n=!1;this.has=function(t){return e.hasOwnProperty(t)},this.register=function(t,n){ge(t,"controller"),x(t)?p(e,t):e[t]=n},this.allowGlobals=function(){n=!0},this.$get=["$injector","$window",function(a,i){function o(e,n,a,i){if(!e||!x(e.$scope))throw t("$controller")("noscp","Cannot export controller '{0}' as '{1}'! No $scope object provided via `locals`.",i,n);e.$scope[n]=a}return function(t,r,s,c){var l,u,d,m;if(s=s===!0,c&&w(c)&&(m=c),w(t)){if(u=t.match(bo),!u)throw vo("ctrlfmt","Badly formed controller string '{0}'. Must match `__name__ as __id__` or `__name__`.",t);if(d=u[1],m=m||u[3],t=e.hasOwnProperty(d)?e[d]:ve(r.$scope,d,!0)||(n?ve(i,d,!0):void 0),!t)throw vo("ctrlreg","The controller with the name '{0}' is not registered.",d);he(t,d,!0)}if(s){var f=(fi(t)?t[t.length-1]:t).prototype;return l=Object.create(f||null),m&&o(r,m,l,d||t.name),p(function(){var e=a.invoke(t,l,r,d);return e!==l&&(x(e)||C(e))&&(l=e,m&&o(r,m,l,d||t.name)),l},{instance:l,identifier:m})}return l=a.instantiate(t,r,d),m&&o(r,m,l,d||t.name),l}}]}function _t(){this.$get=["$window",function(e){return ni(e.document)}]}function Dt(){this.$get=["$document","$rootScope",function(e,t){function n(){i=a.hidden}var a=e[0],i=a&&a.hidden;return e.on("visibilitychange",n),t.$on("$destroy",function(){e.off("visibilitychange",n)}),function(){return i}}]}function Et(){this.$get=["$log",function(e){return function(t,n){e.error.apply(e,arguments)}}]}function At(e){return x(e)?O(e)?e.toISOString():W(e):e}function Rt(){this.$get=function(){return function(e){if(!e)return"";var t=[];return r(e,function(e,n){null===e||$(e)||(fi(e)?o(e,function(e){t.push(oe(n)+"="+oe(At(e)))}):t.push(oe(n)+"="+oe(At(e))))}),t.join("&")}}}function Mt(){this.$get=function(){return function(e){function t(e,a,i){null===e||$(e)||(fi(e)?o(e,function(e,n){t(e,a+"["+(x(e)?n:"")+"]")}):x(e)&&!O(e)?r(e,function(e,n){t(e,a+(i?"":"[")+n+(i?"":"]"))}):n.push(oe(a)+"="+oe(At(e))))}if(!e)return"";var n=[];return t(e,"",!0),n.join("&")}}}function qt(e,t){if(w(e)){var n=e.replace(Io,"").trim();if(n){var a=t("Content-Type");if(a&&0===a.indexOf(yo)||Pt(n))try{e=J(n)}catch(i){throw Oo("baddata",'Data must be a valid JSON object. Received: "{0}". Parse error: "{1}"',e,i)}}}return e}function Pt(e){var t=e.match(jo);return t&&wo[t[0]].test(e)}function Tt(e){function t(e,t){e&&(a[e]=a[e]?a[e]+", "+t:t)}var n,a=$e();return w(e)?o(e.split("\n"),function(e){n=e.indexOf(":"),t(Ya(gi(e.substr(0,n))),gi(e.substr(n+1)))}):x(e)&&o(e,function(e,n){t(Ya(n),gi(e))}),a}function Lt(e){var t;return function(n){if(t||(t=Tt(e)),n){var a=t[Ya(n)];return void 0===a&&(a=null),a}return t}}function Nt(e,t,n,a){return C(a)?a(e,t,n):(o(a,function(a){e=a(e,t,n)}),e)}function Ft(e){return 200<=e&&e<300}function Gt(){var e=this.defaults={transformResponse:[qt],transformRequest:[function(e){return!x(e)||D(e)||A(e)||E(e)?e:W(e)}],headers:{common:{Accept:"application/json, text/plain, */*"},post:je(xo),put:je(xo),patch:je(xo)},xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",paramSerializer:"$httpParamSerializer",jsonpCallbackParam:"callback"},n=!1;this.useApplyAsync=function(e){return y(e)?(n=!!e,this):n};var a=this.interceptors=[];this.$get=["$browser","$httpBackend","$$cookieReader","$cacheFactory","$rootScope","$q","$injector","$sce",function(i,r,s,c,l,u,d,m){function f(n){function a(e,t){for(var n=0,a=t.length;n=-1?n:0,(Ft(n)?b.resolve:b.reject)({data:e,status:n,headers:Lt(a),config:t,statusText:i})}function d(e){p(e.data,e.status,je(e.headers()),e.statusText)}function h(){var e=f.pendingRequests.indexOf(t);e!==-1&&f.pendingRequests.splice(e,1)}var g,v,b=u.defer(),C=b.promise,k=t.headers,S="jsonp"===Ya(t.method),_=t.url;if(S?_=m.getTrustedResourceUrl(_):w(_)||(_=m.valueOf(_)),_=j(_,t.paramSerializer(t.params)),S&&(_=I(_,t.jsonpCallbackParam)),f.pendingRequests.push(t),C.then(h,h),!t.cache&&!e.cache||t.cache===!1||"GET"!==t.method&&"JSONP"!==t.method||(g=x(t.cache)?t.cache:x(e.cache)?e.cache:O),g&&(v=g.get(_),y(v)?M(v)?v.then(d,d):fi(v)?p(v[1],v[0],je(v[2]),v[3]):p(v,200,{},"OK"):g.put(_,C)),$(v)){var D=Gn(t.url)?s()[t.xsrfCookieName||e.xsrfCookieName]:void 0;D&&(k[t.xsrfHeaderName||e.xsrfHeaderName]=D),r(t.method,_,a,c,k,t.timeout,t.withCredentials,t.responseType,i(t.eventHandlers),i(t.uploadEventHandlers))}return C}function j(e,t){return t.length>0&&(e+=(e.indexOf("?")===-1?"?":"&")+t),e}function I(e,t){if(/[&?][^=]+=JSON_CALLBACK/.test(e))throw Oo("badjsonp",'Illegal use of JSON_CALLBACK in url, "{0}"',e);var n=new RegExp("[&?]"+t+"=");if(n.test(e))throw Oo("badjsonp",'Illegal use of callback param, "{0}", in url, "{1}"',t,e);return e+=(e.indexOf("?")===-1?"?":"&")+t+"=JSON_CALLBACK"}var O=c("$http");e.paramSerializer=w(e.paramSerializer)?d.get(e.paramSerializer):e.paramSerializer;var k=[];return o(a,function(e){k.unshift(w(e)?d.get(e):d.invoke(e))}),f.pendingRequests=[],g("get","delete","head","jsonp"),v("post","put","patch"),f.defaults=e,f}]}function Ut(){this.$get=function(){return function(){return new e.XMLHttpRequest}}}function Vt(){this.$get=["$browser","$jsonpCallbacks","$document","$xhrFactory",function(e,t,n,a){return Bt(e,a,e.defer,t,n[0])}]}function Bt(e,t,n,a,i){function r(e,t,n){e=e.replace("JSON_CALLBACK",t);var o=i.createElement("script"),r=null;return o.type="text/javascript",o.src=e,o.async=!0,r=function(e){o.removeEventListener("load",r),o.removeEventListener("error",r),i.body.removeChild(o),o=null;var s=-1,c="unknown";e&&("load"!==e.type||a.wasCalled(t)||(e={type:"error"}),c=e.type,s="error"===e.type?404:200),n&&n(s,c)},o.addEventListener("load",r),o.addEventListener("error",r),i.body.appendChild(o),r}return function(i,s,c,l,u,p,d,m,f,h){function g(){x&&x(),j&&j.abort()}function v(e,t,a,i,o){y(O)&&n.cancel(O),x=j=null,e(t,a,i,o)}if(s=s||e.url(),"jsonp"===Ya(i))var b=a.createCallback(s),x=r(s,b,function(e,t){var n=200===e&&a.getResponse(b);v(l,e,n,"",t),a.removeCallback(b)});else{var j=t(i,s);j.open(i,s,!0),o(u,function(e,t){y(e)&&j.setRequestHeader(t,e)}),j.onload=function(){var e=j.statusText||"",t="response"in j?j.response:j.responseText,n=1223===j.status?204:j.status;0===n&&(n=t?200:"file"===Fn(s).protocol?404:0),v(l,n,t,j.getAllResponseHeaders(),e)};var w=function(){v(l,-1,null,null,"")};if(j.onerror=w,j.onabort=w,j.ontimeout=w,o(f,function(e,t){j.addEventListener(t,e)}),o(h,function(e,t){j.upload.addEventListener(t,e)}),d&&(j.withCredentials=!0),m)try{j.responseType=m}catch(I){if("json"!==m)throw I}j.send($(c)?null:c)}if(p>0)var O=n(g,p);else M(p)&&p.then(g)}}function Ht(){var e="{{",t="}}";this.startSymbol=function(t){return t?(e=t,this):e},this.endSymbol=function(e){return e?(t=e,this):t},this.$get=["$parse","$exceptionHandler","$sce",function(n,a,i){function o(e){return"\\\\\\"+e}function r(n){return n.replace(d,e).replace(m,t)}function s(e,t,n,a){var i=e.$watch(function(e){return i(),a(e)},t,n);return i}function c(o,c,d,m){function f(e){try{return e=E(e),m&&!y(e)?e:ye(e)}catch(t){a(Co.interr(o,t))}}if(!o.length||o.indexOf(e)===-1){var h;if(!c){var g=r(o);h=v(g),h.exp=o,h.expressions=[],h.$$watchDelegate=s}return h}m=!!m;for(var b,x,j,w=0,I=[],O=[],k=o.length,S=[],_=[];w1&&Co.throwNoconcat(o),!c||I.length){var D=function(e){for(var t=0,n=I.length;t4,d=p?Q(arguments,4):[],m=t.setInterval,f=t.clearInterval,h=0,g=y(l)&&!l,v=(g?a:n).defer(),b=v.promise;return c=y(c)?c:0,b.$$intervalId=m(function(){g?i.defer(u):e.$evalAsync(u),v.notify(h++),c>0&&h>=c&&(v.resolve(h),f(b.$$intervalId),delete r[b.$$intervalId]),g||e.$apply()},s),r[b.$$intervalId]=v,b}var r={};return o.cancel=function(e){return!!(e&&e.$$intervalId in r)&&(r[e.$$intervalId].promise["catch"](h),r[e.$$intervalId].reject("canceled"),t.clearInterval(e.$$intervalId),delete r[e.$$intervalId],!0)},o}]}function Kt(e){for(var t=e.split("/"),n=t.length;n--;)t[n]=ie(t[n]);return t.join("/")}function zt(e,t){var n=Fn(e);t.$$protocol=n.protocol,t.$$host=n.hostname,t.$$port=m(n.port)||_o[n.protocol]||null}function Wt(e,t){if(Eo.test(e))throw Do("badpath",'Invalid url "{0}".',e);var n="/"!==e.charAt(0);n&&(e="/"+e);var a=Fn(e);t.$$path=decodeURIComponent(n&&"/"===a.pathname.charAt(0)?a.pathname.substring(1):a.pathname),t.$$search=ne(a.search),t.$$hash=decodeURIComponent(a.hash),t.$$path&&"/"!==t.$$path.charAt(0)&&(t.$$path="/"+t.$$path)}function Jt(e,t){return e.slice(0,t.length)===t}function Yt(e,t){if(Jt(t,e))return t.substr(e.length)}function Xt(e){var t=e.indexOf("#");return t===-1?e:e.substr(0,t)}function Zt(e){return e.replace(/(#.+)|#$/,"$1")}function en(e){return e.substr(0,Xt(e).lastIndexOf("/")+1)}function tn(e){return e.substring(0,e.indexOf("/",e.indexOf("//")+2))}function nn(e,t,n){this.$$html5=!0,n=n||"",zt(e,this),this.$$parse=function(e){var n=Yt(t,e);if(!w(n))throw Do("ipthprfx",'Invalid url "{0}", missing path prefix "{1}".',e,t);Wt(n,this),this.$$path||(this.$$path="/"),this.$$compose()},this.$$compose=function(){var e=ae(this.$$search),n=this.$$hash?"#"+ie(this.$$hash):"";this.$$url=Kt(this.$$path)+(e?"?"+e:"")+n,this.$$absUrl=t+this.$$url.substr(1),this.$$urlUpdatedByLocation=!0},this.$$parseLinkUrl=function(a,i){if(i&&"#"===i[0])return this.hash(i.slice(1)),!0;var o,r,s;return y(o=Yt(e,a))?(r=o,s=n&&y(o=Yt(n,o))?t+(Yt("/",o)||o):e+r):y(o=Yt(t,a))?s=t+o:t===a+"/"&&(s=t),s&&this.$$parse(s),!!s}}function an(e,t,n){zt(e,this),this.$$parse=function(a){function i(e,t,n){var a,i=/^\/[A-Z]:(\/.*)/;return Jt(t,n)&&(t=t.replace(n,"")),i.exec(t)?e:(a=i.exec(e),a?a[1]:e)}var o,r=Yt(e,a)||Yt(t,a);$(r)||"#"!==r.charAt(0)?this.$$html5?o=r:(o="",$(r)&&(e=a,this.replace())):(o=Yt(n,r),$(o)&&(o=r)),Wt(o,this),this.$$path=i(this.$$path,o,e),this.$$compose()},this.$$compose=function(){var t=ae(this.$$search),a=this.$$hash?"#"+ie(this.$$hash):"";this.$$url=Kt(this.$$path)+(t?"?"+t:"")+a,this.$$absUrl=e+(this.$$url?n+this.$$url:""),this.$$urlUpdatedByLocation=!0},this.$$parseLinkUrl=function(t,n){return Xt(e)===Xt(t)&&(this.$$parse(t),!0)}}function on(e,t,n){this.$$html5=!0,an.apply(this,arguments),this.$$parseLinkUrl=function(a,i){if(i&&"#"===i[0])return this.hash(i.slice(1)),!0;var o,r;return e===Xt(a)?o=a:(r=Yt(t,a))?o=e+n+r:t===a+"/"&&(o=t),o&&this.$$parse(o),!!o},this.$$compose=function(){var t=ae(this.$$search),a=this.$$hash?"#"+ie(this.$$hash):"";this.$$url=Kt(this.$$path)+(t?"?"+t:"")+a,this.$$absUrl=e+n+this.$$url,this.$$urlUpdatedByLocation=!0}}function rn(e){return function(){return this[e]}}function sn(e,t){return function(n){return $(n)?this[e]:(this[e]=t(n),this.$$compose(),this)}}function cn(){var t="!",n={enabled:!1,requireBase:!0,rewriteLinks:!0};this.hashPrefix=function(e){return y(e)?(t=e,this):t},this.html5Mode=function(e){return R(e)?(n.enabled=e,this):x(e)?(R(e.enabled)&&(n.enabled=e.enabled),R(e.requireBase)&&(n.requireBase=e.requireBase),(R(e.rewriteLinks)||w(e.rewriteLinks))&&(n.rewriteLinks=e.rewriteLinks),this):n},this.$get=["$rootScope","$browser","$sniffer","$rootElement","$window",function(a,i,o,r,s){function c(e,t,n){var a=u.url(),o=u.$$state;try{i.url(e,t,n),u.$$state=i.state()}catch(r){throw u.url(a),u.$$state=o,r}}function l(e,t){a.$broadcast("$locationChangeSuccess",u.absUrl(),e,u.$$state,t)}var u,p,d,m=i.baseHref(),f=i.url();if(n.enabled){if(!m&&n.requireBase)throw Do("nobase","$location in HTML5 mode requires a tag to be present!");d=tn(f)+(m||"/"),p=o.history?nn:on}else d=Xt(f),p=an;var h=en(d);u=new p(d,h,"#"+t),u.$$parseLinkUrl(f,f),u.$$state=i.state();var g=/^\s*(javascript|mailto):/i;r.on("click",function(e){var t=n.rewriteLinks;if(t&&!e.ctrlKey&&!e.metaKey&&!e.shiftKey&&2!==e.which&&2!==e.button){for(var o=ni(e.target);"a"!==N(o[0]);)if(o[0]===r[0]||!(o=o.parent())[0])return;if(!w(t)||!$(o.attr(t))){var c=o.prop("href"),l=o.attr("href")||o.attr("xlink:href");x(c)&&"[object SVGAnimatedString]"===c.toString()&&(c=Fn(c.animVal).href),g.test(c)||!c||o.attr("target")||e.isDefaultPrevented()||u.$$parseLinkUrl(c,l)&&(e.preventDefault(),u.absUrl()!==i.url()&&(a.$apply(),s.angular["ff-684208-preventDefault"]=!0))}}}),Zt(u.absUrl())!==Zt(f)&&i.url(u.absUrl(),!0); -var v=!0;return i.onUrlChange(function(t,n){e.location.reload(),a.$$phase||a.$digest()}),a.$watch(function(){if(v||u.$$urlUpdatedByLocation){u.$$urlUpdatedByLocation=!1;var e=Zt(i.url()),t=Zt(u.absUrl()),n=i.state(),r=u.$$replace,s=e!==t||u.$$html5&&o.history&&n!==u.$$state;(v||s)&&(v=!1,a.$evalAsync(function(){var t=u.absUrl(),i=a.$broadcast("$locationChangeStart",t,e,u.$$state,n).defaultPrevented;u.absUrl()===t&&(i?(u.$$parse(e),u.$$state=n):(s&&c(t,r,n===u.$$state?null:u.$$state),l(e,n)))}))}u.$$replace=!1}),u}]}function ln(){var e=!0,t=this;this.debugEnabled=function(t){return y(t)?(e=t,this):e},this.$get=["$window",function(n){function a(e){return e instanceof Error&&(e.stack&&r?e=e.message&&e.stack.indexOf(e.message)===-1?"Error: "+e.message+"\n"+e.stack:e.stack:e.sourceURL&&(e=e.message+"\n"+e.sourceURL+":"+e.line)),e}function i(e){var t=n.console||{},i=t[e]||t.log||h,r=!1;try{r=!!i.apply}catch(s){}return r?function(){var e=[];return o(arguments,function(t){e.push(a(t))}),i.apply(t,e)}:function(e,t){i(e,null==t?"":t)}}var r=ti||/\bEdge\//.test(n.navigator&&n.navigator.userAgent);return{log:i("log"),info:i("info"),warn:i("warn"),error:i("error"),debug:function(){var n=i("debug");return function(){e&&n.apply(t,arguments)}}()}}]}function un(e){return e+""}function pn(e,t){return"undefined"!=typeof e?e:t}function dn(e,t){return"undefined"==typeof e?t:"undefined"==typeof t?e:e+t}function mn(e,t){var n=e(t);return!n.$stateful}function fn(e,t){var n,a,i;switch(e.type){case Lo.Program:n=!0,o(e.body,function(e){fn(e.expression,t),n=n&&e.expression.constant}),e.constant=n;break;case Lo.Literal:e.constant=!0,e.toWatch=[];break;case Lo.UnaryExpression:fn(e.argument,t),e.constant=e.argument.constant,e.toWatch=e.argument.toWatch;break;case Lo.BinaryExpression:fn(e.left,t),fn(e.right,t),e.constant=e.left.constant&&e.right.constant,e.toWatch=e.left.toWatch.concat(e.right.toWatch);break;case Lo.LogicalExpression:fn(e.left,t),fn(e.right,t),e.constant=e.left.constant&&e.right.constant,e.toWatch=e.constant?[]:[e];break;case Lo.ConditionalExpression:fn(e.test,t),fn(e.alternate,t),fn(e.consequent,t),e.constant=e.test.constant&&e.alternate.constant&&e.consequent.constant,e.toWatch=e.constant?[]:[e];break;case Lo.Identifier:e.constant=!1,e.toWatch=[e];break;case Lo.MemberExpression:fn(e.object,t),e.computed&&fn(e.property,t),e.constant=e.object.constant&&(!e.computed||e.property.constant),e.toWatch=[e];break;case Lo.CallExpression:i=!!e.filter&&mn(t,e.callee.name),n=i,a=[],o(e.arguments,function(e){fn(e,t),n=n&&e.constant,e.constant||a.push.apply(a,e.toWatch)}),e.constant=n,e.toWatch=i?a:[e];break;case Lo.AssignmentExpression:fn(e.left,t),fn(e.right,t),e.constant=e.left.constant&&e.right.constant,e.toWatch=[e];break;case Lo.ArrayExpression:n=!0,a=[],o(e.elements,function(e){fn(e,t),n=n&&e.constant,e.constant||a.push.apply(a,e.toWatch)}),e.constant=n,e.toWatch=a;break;case Lo.ObjectExpression:n=!0,a=[],o(e.properties,function(e){fn(e.value,t),n=n&&e.value.constant&&!e.computed,e.value.constant||a.push.apply(a,e.value.toWatch),e.computed&&(fn(e.key,t),e.key.constant||a.push.apply(a,e.key.toWatch))}),e.constant=n,e.toWatch=a;break;case Lo.ThisExpression:e.constant=!1,e.toWatch=[];break;case Lo.LocalsExpression:e.constant=!1,e.toWatch=[]}}function hn(e){if(1===e.length){var t=e[0].expression,n=t.toWatch;return 1!==n.length?n:n[0]!==t?n:void 0}}function gn(e){return e.type===Lo.Identifier||e.type===Lo.MemberExpression}function vn(e){if(1===e.body.length&&gn(e.body[0].expression))return{type:Lo.AssignmentExpression,left:e.body[0].expression,right:{type:Lo.NGValueParameter},operator:"="}}function bn(e){return 0===e.body.length||1===e.body.length&&(e.body[0].expression.type===Lo.Literal||e.body[0].expression.type===Lo.ArrayExpression||e.body[0].expression.type===Lo.ObjectExpression)}function $n(e){return e.constant}function yn(e){this.$filter=e}function xn(e){this.$filter=e}function jn(e,t,n){this.ast=new Lo(e,n),this.astCompiler=n.csp?new xn(t):new yn(t)}function wn(e){return C(e.valueOf)?e.valueOf():Mo.call(e)}function In(){var e,t,n=$e(),a={"true":!0,"false":!1,"null":null,undefined:void 0};this.addLiteral=function(e,t){a[e]=t},this.setIdentifierFns=function(n,a){return e=n,t=a,this},this.$get=["$filter",function(i){function r(e,t){var a,o,r;switch(typeof e){case"string":if(e=e.trim(),r=e,a=n[r],!a){":"===e.charAt(0)&&":"===e.charAt(1)&&(o=!0,e=e.substring(2));var s=new To(f),u=new jn(s,i,f);a=u.parse(e),a.constant?a.$$watchDelegate=p:o?(a.oneTime=!0,a.$$watchDelegate=l):a.inputs&&(a.$$watchDelegate=c),n[r]=a}return d(a,t);case"function":return d(e,t);default:return d(h,t)}}function s(e,t,n){return null==e||null==t?e===t:!("object"==typeof e&&(e=wn(e),"object"==typeof e&&!n))&&(e===t||e!==e&&t!==t)}function c(e,t,n,a,i){var o,r=a.inputs;if(1===r.length){var c=s;return r=r[0],e.$watch(function(e){var t=r(e);return s(t,c,a.literal)||(o=a(e,void 0,void 0,[t]),c=t&&wn(t)),o},t,n,i)}for(var l=[],u=[],p=0,d=r.length;p0&&u(this.$$state),a},"catch":function(e){return this.then(null,e)},"finally":function(e,t){return this.then(function(t){return b(t,_,e)},function(t){return b(t,v,e)},t)}});var _=y;return I.prototype=s.prototype,I.defer=i,I.reject=v,I.when=y,I.resolve=_,I.all=j,I.race=w,I}function Sn(){this.$get=["$window","$timeout",function(e,t){var n=e.requestAnimationFrame||e.webkitRequestAnimationFrame,a=e.cancelAnimationFrame||e.webkitCancelAnimationFrame||e.webkitCancelRequestAnimationFrame,i=!!n,o=i?function(e){var t=n(e);return function(){a(t)}}:function(e){var n=t(e,16.66,!1);return function(){t.cancel(n)}};return o.supported=i,o}]}function _n(){function e(e){function t(){this.$$watchers=this.$$nextSibling=this.$$childHead=this.$$childTail=null,this.$$listeners={},this.$$listenerCount={},this.$$watchersCount=0,this.$id=c(),this.$$ChildScope=null}return t.prototype=e,t}var n=10,a=t("$rootScope"),r=null,s=null;this.digestTtl=function(e){return arguments.length&&(n=e),n},this.$get=["$exceptionHandler","$parse","$browser",function(t,l,u){function p(e){e.currentScope.$$destroyed=!0}function d(e){9===ti&&(e.$$childHead&&d(e.$$childHead),e.$$nextSibling&&d(e.$$nextSibling)),e.$parent=e.$$nextSibling=e.$$prevSibling=e.$$childHead=e.$$childTail=e.$root=e.$$watchers=null}function m(){this.$id=c(),this.$$phase=this.$parent=this.$$watchers=this.$$nextSibling=this.$$prevSibling=this.$$childHead=this.$$childTail=null,this.$root=this,this.$$destroyed=!1,this.$$listeners={},this.$$listenerCount={},this.$$watchersCount=0,this.$$isolateBindings=null}function f(e){if(I.$$phase)throw a("inprog","{0} already in progress",I.$$phase);I.$$phase=e}function g(){I.$$phase=null}function v(e,t){do e.$$watchersCount+=t;while(e=e.$parent)}function b(e,t,n){do e.$$listenerCount[n]-=t,0===e.$$listenerCount[n]&&delete e.$$listenerCount[n];while(e=e.$parent)}function y(){}function j(){for(;S.length;)try{S.shift()()}catch(e){t(e)}s=null}function w(){null===s&&(s=u.defer(function(){I.$apply(j)}))}m.prototype={constructor:m,$new:function(t,n){var a;return n=n||this,t?(a=new m,a.$root=this.$root):(this.$$ChildScope||(this.$$ChildScope=e(this)),a=new this.$$ChildScope),a.$parent=n,a.$$prevSibling=n.$$childTail,n.$$childHead?(n.$$childTail.$$nextSibling=a,n.$$childTail=a):n.$$childHead=n.$$childTail=a,(t||n!==this)&&a.$on("$destroy",p),a},$watch:function(e,t,n,a){var i=l(e);if(i.$$watchDelegate)return i.$$watchDelegate(this,t,n,i,e);var o=this,s=o.$$watchers,c={fn:t,last:y,get:i,exp:a||e,eq:!!n};return r=null,C(t)||(c.fn=h),s||(s=o.$$watchers=[],s.$$digestWatchIndex=-1),s.unshift(c),s.$$digestWatchIndex++,v(this,1),function(){var e=G(s,c);e>=0&&(v(o,-1),et){p++;for(n in r)Wa.call(o,n)||(g--,delete r[n])}}else r!==o&&(r=o,p++);return p}}function a(){if(h?(h=!1,t(o,o,c)):t(o,s,c),u)if(x(o))if(i(o)){s=new Array(o.length);for(var e=0;e1,p=0,d=l(e,n),m=[],f={},h=!0,g=0;return this.$watch(d,a)},$digest:function(){var e,i,o,c,l,p,d,m,h,v,b,$=n,x=this,w=[];f("$digest"),u.$$checkUrlChange(),this===I&&null!==s&&(u.defer.cancel(s),j()),r=null;do{d=!1,h=x;for(var S=0;S-1)throw No("iwcard","Illegal sequence *** in string matcher. String: {0}",e);return e=vi(e).replace(/\\\*\\\*/g,".*").replace(/\\\*/g,"[^:/.?&;]*"),new RegExp("^"+e+"$")}if(k(e))return new RegExp("^"+e.source+"$");throw No("imatcher",'Matchers may only be "self", string patterns or RegExp objects')}function Rn(e){var t=[];return y(e)&&o(e,function(e){t.push(An(e))}),t}function Mn(){this.SCE_CONTEXTS=Fo;var e=["self"],t=[];this.resourceUrlWhitelist=function(t){return arguments.length&&(e=Rn(t)),e},this.resourceUrlBlacklist=function(e){return arguments.length&&(t=Rn(e)),t},this.$get=["$injector",function(n){function a(e,t){return"self"===e?Gn(t):!!e.exec(t.href)}function i(n){var i,o,r=Fn(n.toString()),s=!1;for(i=0,o=e.length;i to the top of your HTML document. See http://docs.angularjs.org/api/ng.$sce for more information.");var a=je(Fo);a.isEnabled=function(){return e},a.trustAs=n.trustAs,a.getTrusted=n.getTrusted,a.valueOf=n.valueOf,e||(a.trustAs=a.getTrusted=function(e,t){return t},a.valueOf=g),a.parseAs=function(e,n){var i=t(n);return i.literal&&i.constant?i:t(n,function(t){return a.getTrusted(e,t)})};var i=a.parseAs,r=a.getTrusted,s=a.trustAs;return o(Fo,function(e,t){var n=Ya(t);a[En("parse_as_"+n)]=function(t){return i(e,t)},a[En("get_trusted_"+n)]=function(t){return r(e,t)},a[En("trust_as_"+n)]=function(t){return s(e,t)}}),a}]}function Pn(){this.$get=["$window","$document",function(e,t){var n={},a=e.nw&&e.nw.process,i=!a&&e.chrome&&(e.chrome.app&&e.chrome.app.runtime||!e.chrome.app&&e.chrome.runtime&&e.chrome.runtime.id),o=!i&&e.history&&e.history.pushState,r=m((/android (\d+)/.exec(Ya((e.navigator||{}).userAgent))||[])[1]),s=/Boxee/i.test((e.navigator||{}).userAgent),c=t[0]||{},l=c.body&&c.body.style,u=!1,p=!1;return l&&(u=!!("transition"in l||"webkitTransition"in l),p=!!("animation"in l||"webkitAnimation"in l)),{history:!(!o||r<4||s),hasEvent:function(e){if("input"===e&&ti)return!1;if($(n[e])){var t=c.createElement("div");n[e]="on"+e in t}return n[e]},csp:bi(),transitions:u,animations:p,android:r}}]}function Tn(){var e;this.httpOptions=function(t){return t?(e=t,this):e},this.$get=["$exceptionHandler","$templateCache","$http","$q","$sce",function(t,n,a,i,o){function r(s,c){function l(e){return c||(e=Uo("tpload","Failed to load template: {0} (HTTP status: {1} {2})",s,e.status,e.statusText),t(e)),i.reject(e)}r.totalPendingRequests++,w(s)&&!$(n.get(s))||(s=o.getTrustedResourceUrl(s));var u=a.defaults&&a.defaults.transformResponse;return fi(u)?u=u.filter(function(e){return e!==qt}):u===qt&&(u=null),a.get(s,p({cache:n,transformResponse:u},e))["finally"](function(){r.totalPendingRequests--}).then(function(e){return n.put(s,e.data),e.data},l)}return r.totalPendingRequests=0,r}]}function Ln(){this.$get=["$rootScope","$browser","$location",function(e,t,n){var a={};return a.findBindings=function(e,t,n){var a=e.getElementsByClassName("ng-binding"),i=[];return o(a,function(e){var a=pi.element(e).data("$binding");a&&o(a,function(a){if(n){var o=new RegExp("(^|\\s)"+vi(t)+"(\\s|\\||$)");o.test(a)&&i.push(e)}else a.indexOf(t)!==-1&&i.push(e)})}),i},a.findModels=function(e,t,n){for(var a=["ng-","data-ng-","ng\\:"],i=0;i0&&(l=n(r.substring(0,c)),$(i[l])&&(i[l]=n(r.substring(c+1))));return i}}function Bn(){this.$get=Vn}function Hn(e){function t(a,i){if(x(a)){var r={};return o(a,function(e,n){r[n]=t(n,e)}),r}return e.factory(a+n,i)}var n="Filter";this.register=t,this.$get=["$injector",function(e){return function(t){return e.get(t+n)}}],t("currency",Jn),t("date",pa),t("filter",Qn),t("json",da),t("limitTo",ma),t("lowercase",Yo),t("number",Yn),t("orderBy",ha),t("uppercase",Xo)}function Qn(){return function(e,n,a,o){if(!i(e)){if(null==e)return e;throw t("filter")("notarray","Expected array but received: {0}",e)}o=o||"$";var r,s,c=Wn(n);switch(c){case"function":r=n;break;case"boolean":case"null":case"number":case"string":s=!0;case"object":r=Kn(n,a,o,s);break;default:return e}return Array.prototype.filter.call(e,r)}}function Kn(e,t,n,a){var i,o=x(e)&&n in e;return t===!0?t=B:C(t)||(t=function(e,t){return!$(e)&&(null===e||null===t?e===t:!(x(t)||x(e)&&!b(e))&&(e=Ya(""+e),t=Ya(""+t),e.indexOf(t)!==-1))}),i=function(i){return o&&!x(i)?zn(i,e[n],t,n,!1):zn(i,e,t,n,a)}}function zn(e,t,n,a,i,o){var r=Wn(e),s=Wn(t);if("string"===s&&"!"===t.charAt(0))return!zn(e,t.substring(1),n,a,i);if(fi(e))return e.some(function(e){return zn(e,t,n,a,i)});switch(r){case"object":var c;if(i){for(c in e)if(c.charAt&&"$"!==c.charAt(0)&&zn(e[c],t,n,a,!0))return!0;return!o&&zn(e,t,n,a,!1)}if("object"===s){for(c in t){var l=t[c];if(!C(l)&&!$(l)){var u=c===a,p=u?e:e[c];if(!zn(p,l,n,a,u,u))return!1}}return!0}return n(e,t);case"function":return!1;default:return n(e,t)}}function Wn(e){return null===e?"null":typeof e}function Jn(e){var t=e.NUMBER_FORMATS;return function(e,n,a){return $(n)&&(n=t.CURRENCY_SYM),$(a)&&(a=t.PATTERNS[1].maxFrac),null==e?e:ea(e,t.PATTERNS[1],t.GROUP_SEP,t.DECIMAL_SEP,a).replace(/\u00A4/g,n)}}function Yn(e){var t=e.NUMBER_FORMATS;return function(e,n){return null==e?e:ea(e,t.PATTERNS[0],t.GROUP_SEP,t.DECIMAL_SEP,n)}}function Xn(e){var t,n,a,i,o,r=0;for((n=e.indexOf(Qo))>-1&&(e=e.replace(Qo,"")),(a=e.search(/e/i))>0?(n<0&&(n=a),n+=+e.slice(a+1),e=e.substring(0,a)):n<0&&(n=e.length),a=0;e.charAt(a)===Ko;a++);if(a===(o=e.length))t=[0],n=1;else{for(o--;e.charAt(o)===Ko;)o--;for(n-=a,t=[],i=0;a<=o;a++,i++)t[i]=+e.charAt(a)}return n>Ho&&(t=t.splice(0,Ho-1),r=n-1,n=1),{d:t,e:r,i:n}}function Zn(e,t,n,a){var i=e.d,o=i.length-e.i;t=$(t)?Math.min(Math.max(n,o),a):+t;var r=t+e.i,s=i[r];if(r>0){i.splice(Math.max(e.i,r));for(var c=r;c=5)if(r-1<0){for(var u=0;u>r;u--)i.unshift(0),e.i++;i.unshift(1),e.i++}else i[r-1]++;for(;o0?m=u.splice(p,u.length):(m=u,u=[0]);var f=[];for(u.length>=t.lgSize&&f.unshift(u.splice(-t.lgSize,u.length).join(""));u.length>t.gSize;)f.unshift(u.splice(-t.gSize,u.length).join(""));u.length&&f.unshift(u.join("")),l=f.join(n),m.length&&(l+=a+m.join("")),d&&(l+="e+"+d)}return e<0&&!s?t.negPre+l+t.negSuf:t.posPre+l+t.posSuf}function ta(e,t,n,a){var i="";for((e<0||a&&e<=0)&&(a?e=-e+1:(e=-e,i="-")),e=""+e;e.length0||r>-n)&&(r+=n),0===r&&n===-12&&(r=12),ta(r,t,a,i)}}function aa(e,t,n){return function(a,i){var o=a["get"+e](),r=(n?"STANDALONE":"")+(t?"SHORT":""),s=Xa(r+e);return i[s][o]}}function ia(e,t,n){var a=-1*n,i=a>=0?"+":"";return i+=ta(Math[a>0?"floor":"ceil"](a/60),2)+ta(Math.abs(a%60),2)}function oa(e){var t=new Date(e,0,1).getDay();return new Date(e,0,(t<=4?5:12)-t)}function ra(e){return new Date(e.getFullYear(),e.getMonth(),e.getDate()+(4-e.getDay()))}function sa(e){return function(t){var n=oa(t.getFullYear()),a=ra(t),i=+a-+n,o=1+Math.round(i/6048e5);return ta(o,e)}}function ca(e,t){return e.getHours()<12?t.AMPMS[0]:t.AMPMS[1]}function la(e,t){return e.getFullYear()<=0?t.ERAS[0]:t.ERAS[1]}function ua(e,t){return e.getFullYear()<=0?t.ERANAMES[0]:t.ERANAMES[1]}function pa(e){function t(e){var t;if(t=e.match(n)){var a=new Date(0),i=0,o=0,r=t[8]?a.setUTCFullYear:a.setFullYear,s=t[8]?a.setUTCHours:a.setHours;t[9]&&(i=m(t[9]+t[10]),o=m(t[9]+t[11])),r.call(a,m(t[1]),m(t[2])-1,m(t[3]));var c=m(t[4]||0)-i,l=m(t[5]||0)-o,u=m(t[6]||0),p=Math.round(1e3*parseFloat("0."+(t[7]||0)));return s.call(a,c,l,u,p),a}return e}var n=/^(\d{4})-?(\d\d)-?(\d\d)(?:T(\d\d)(?::?(\d\d)(?::?(\d\d)(?:\.(\d+))?)?)?(Z|([+-])(\d\d):?(\d\d))?)?$/;return function(n,a,i){var r,s,c="",l=[];if(a=a||"mediumDate",a=e.DATETIME_FORMATS_CN[a]||a,w(n)&&(n=Jo.test(n)?m(n):t(n)),I(n)&&(n=new Date(n)),!O(n)||!isFinite(n.getTime()))return n;for(;a;)s=Wo.exec(a),s?(l=H(l,s,1),a=l.pop()):(l.push(a),a=null);var u=n.getTimezoneOffset();return i&&(u=Y(i,u),n=Z(n,i,!0)),o(l,function(t){r=zo[t],c+=r?r(n,e.DATETIME_FORMATS_CN,u):"''"===t?"'":t.replace(/(^'|'$)/g,"").replace(/''/g,"'")}),c}}function da(){return function(e,t){return $(t)&&(t=2),W(e,t)}}function ma(){return function(e,t,n){return t=Math.abs(Number(t))===1/0?Number(t):m(t),mi(t)?e:(I(e)&&(e=e.toString()),i(e)?(n=!n||isNaN(n)?0:m(n),n=n<0?Math.max(0,e.length+n):n,t>=0?fa(e,n,n+t):0===n?fa(e,t,e.length):fa(e,Math.max(0,n+t),n)):e)}}function fa(e,t,n){return w(e)?e.slice(t,n):oi.call(e,t,n)}function ha(e){function n(t){return t.map(function(t){var n=1,a=g;if(C(t))a=t;else if(w(t)&&("+"!==t.charAt(0)&&"-"!==t.charAt(0)||(n="-"===t.charAt(0)?-1:1,t=t.substring(1)),""!==t&&(a=e(t),a.constant))){var i=a();a=function(e){return e[i]}}return{get:a,descending:n}})}function a(e){switch(typeof e){case"number":case"boolean":case"string":return!0;default:return!1}}function o(e){return C(e.valueOf)&&(e=e.valueOf(),a(e))?e:b(e)&&(e=e.toString(),a(e))?e:e}function r(e,t){var n=typeof e;return null===e?(n="string",e="null"):"object"===n&&(e=o(e)),{value:e,type:n,index:t}}function s(e,t){var n=0,a=e.type,i=t.type;if(a===i){var o=e.value,r=t.value;"string"===a?(o=o.toLowerCase(),r=r.toLowerCase()):"object"===a&&(x(o)&&(o=e.index),x(r)&&(r=t.index)),o!==r&&(n=o=h},r.$observe("min",function(e){h=d(e),s.$validate()})}if(y(r.max)||r.ngMax){var g;s.$validators.max=function(e){return!p(e)||$(g)||n(e)<=g},r.$observe("max",function(e){g=d(e),s.$validate()})}}}function Sa(e,t,n,a){var i=t[0],o=a.$$hasNativeValidators=x(i.validity);o&&a.$parsers.push(function(e){var n=t.prop(za)||{};return n.badInput||n.typeMismatch?void 0:e})}function _a(e){e.$$parserName="number",e.$parsers.push(function(t){return e.$isEmpty(t)?null:ur.test(t)?parseFloat(t):void 0}),e.$formatters.push(function(t){if(!e.$isEmpty(t)){if(!I(t))throw Qr("numfmt","Expected `{0}` to be a number",t);t=t.toString()}return t})}function Da(e){return y(e)&&!I(e)&&(e=parseFloat(e)),mi(e)?void 0:e}function Ea(e){return(0|e)===e}function Aa(e){var t=e.toString(),n=t.indexOf(".");if(n===-1){if(-1=r},n.$observe("min",function(e){r=Da(e),a.$validate()})),(y(n.max)||n.ngMax)&&(a.$validators.max=function(e){return a.$isEmpty(e)||$(s)||e<=s},n.$observe("max",function(e){s=Da(e),a.$validate()})),y(n.step)||n.ngStep){var c;a.$validators.step=function(e,t){return a.$isEmpty(t)||$(c)||Ra(t,r||0,c)},n.$observe("step",function(e){c=Da(e),a.$validate()})}}function qa(e,t,n,a,i,o){function r(e,a){t.attr(e,n[e]),n.$observe(e,a)}function s(e){if(p=Da(e),!mi(a.$modelValue))if(u){var n=t.val();p>n&&(n=p,t.val(n)),a.$setViewValue(n)}else a.$validate()}function c(e){if(d=Da(e),!mi(a.$modelValue))if(u){var n=t.val();d=p},r("min",s)),g&&(a.$validators.max=u?function(){return!0}:function(e,t){return a.$isEmpty(t)||$(d)||t<=d},r("max",c)),v&&(a.$validators.step=u?function(){return!f.stepMismatch}:function(e,t){return a.$isEmpty(t)||$(m)||Ra(t,p||0,m)},r("step",l))}function Pa(e,t,n,a,i,o){Ia(e,t,n,a,i,o),ja(a),a.$$parserName="url",a.$validators.url=function(e,t){var n=e||t;return a.$isEmpty(n)||cr.test(n)}}function Ta(e,t,n,a,i,o){Ia(e,t,n,a,i,o),ja(a),a.$$parserName="email",a.$validators.email=function(e,t){var n=e||t;return a.$isEmpty(n)||lr.test(n)}}function La(e,t,n,a){var i=!n.ngTrim||"false"!==gi(n.ngTrim);$(n.name)&&t.attr("name",c());var o=function(e){var o;t[0].checked&&(o=n.value,i&&(o=gi(o)),a.$setViewValue(o,e&&e.type))};t.on("click",o),a.$render=function(){var e=n.value;i&&(e=gi(e)),t[0].checked=e===a.$viewValue},n.$observe("value",a.$render)}function Na(e,t,n,a,i){var o;if(y(a)){if(o=e(a),!o.constant)throw Qr("constexpr","Expected constant expression for `{0}`, but saw `{1}`.",n,a);return o(t)}return i}function Fa(e,t,n,a,i,o,r,s){var c=Na(s,e,"ngTrueValue",n.ngTrueValue,!0),l=Na(s,e,"ngFalseValue",n.ngFalseValue,!1),u=function(e){a.$setViewValue(t[0].checked,e&&e.type)};t.on("click",u),a.$render=function(){t[0].checked=a.$viewValue},a.$isEmpty=function(e){return e===!1},a.$formatters.push(function(e){return B(e,c)}),a.$parsers.push(function(e){return e?c:l})}function Ga(e,t){function n(e,t){if(!e||!e.length)return[];if(!t||!t.length)return e;var n=[];e:for(var a=0;a0||b[e])&&(b[e]=(b[e]||0)+t,b[e]===+(t>0)&&n.push(e))}),n.join(" ")}function h(e){e===t?p(v):d(v),$=e}function g(e){w(e)||(e=i(e)),$===t&&m(v,e),v=e}var v,b=l.data("$classCounts"),$=!0;b||(b=$e(),l.data("$classCounts",b)),"ngClass"!==e&&(r||(r=s("$index",function(e){return 1&e})),c.$watch(r,h)),c.$watch(s(u[e],i),g)}}}]}function Ua(e,t,n,a,i,o,r,s,c){this.$viewValue=Number.NaN,this.$modelValue=Number.NaN,this.$$rawModelValue=void 0,this.$validators={},this.$asyncValidators={},this.$parsers=[],this.$formatters=[],this.$viewChangeListeners=[],this.$untouched=!0,this.$touched=!1,this.$pristine=!0,this.$dirty=!1,this.$valid=!0,this.$invalid=!1,this.$error={},this.$$success={},this.$pending=void 0,this.$name=c(n.name||"",!1)(e),this.$$parentForm=tr,this.$options=Kr,this.$$parsedNgModel=i(n.ngModel),this.$$parsedNgModelAssign=this.$$parsedNgModel.assign,this.$$ngModelGet=this.$$parsedNgModel,this.$$ngModelSet=this.$$parsedNgModelAssign,this.$$pendingDebounce=null,this.$$parserValid=void 0,this.$$currentValidationRunId=0,Object.defineProperty(this,"$$scope",{value:e}),this.$$attr=n,this.$$element=a,this.$$animate=o,this.$$timeout=r,this.$$parse=i,this.$$q=s,this.$$exceptionHandler=t,$a(this),Va(this)}function Va(e){e.$$scope.$watch(function(t){var n=e.$$ngModelGet(t);if(n!==e.$modelValue&&(e.$modelValue===e.$modelValue||n===n)){e.$modelValue=e.$$rawModelValue=n,e.$$parserValid=void 0;for(var a=e.$formatters,i=a.length,o=n;i--;)o=a[i](o);e.$viewValue!==o&&(e.$$updateEmptyClasses(o),e.$viewValue=e.$$lastCommittedViewValue=o,e.$render(),e.$$runValidators(e.$modelValue,e.$viewValue,h))}return n})}function Ba(e){this.$$options=e}function Ha(e,t){o(t,function(t,n){y(e[n])||(e[n]=t)})}function Qa(e,t){e.prop("selected",t),e.attr("selected",t)}var Ka=/^\/(.+)\/([a-z]*)$/,za="validity",Wa=Object.prototype.hasOwnProperty,Ja={objectMaxDepth:5},Ya=function(e){return w(e)?e.toLowerCase():e},Xa=function(e){return w(e)?e.toUpperCase():e},Za=function(e){return w(e)?e.replace(/[A-Z]/g,function(e){return String.fromCharCode(32|e.charCodeAt(0))}):e},ei=function(e){return w(e)?e.replace(/[a-z]/g,function(e){return String.fromCharCode(e.charCodeAt(0)&-33)}):e};"i"!=="I".toLowerCase()&&(Ya=Za,Xa=ei);var ti,ni,ai,ii,oi=[].slice,ri=[].splice,si=[].push,ci=Object.prototype.toString,li=Object.getPrototypeOf,ui=t("ng"),pi=e.angular||(e.angular={}),di=0;ti=e.document.documentMode;var mi=Number.isNaN||function(e){return e!==e};h.$inject=[],g.$inject=[];var fi=Array.isArray,hi=/^\[object (?:Uint8|Uint8Clamped|Uint16|Uint32|Int8|Int16|Int32|Float32|Float64)Array]$/,gi=function(e){return w(e)?e.trim():e},vi=function(e){return e.replace(/([-()[\]{}+?*.$^|,:#(?:<\/\1>|)$/,Ni=/<|&#?\w+;/,Fi=/<([\w:-]+)/,Gi=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:-]+)[^>]*)\/>/gi,Ui={option:[1,'"],thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};Ui.optgroup=Ui.option,Ui.tbody=Ui.tfoot=Ui.colgroup=Ui.caption=Ui.thead,Ui.th=Ui.td;var Vi=e.Node.prototype.contains||function(e){return!!(16&this.compareDocumentPosition(e))},Bi=Pe.prototype={ready:Xe,toString:function(){var e=[];return o(this,function(t){e.push(""+t)}),"["+e.join(", ")+"]"},eq:function(e){return ni(e>=0?this[e]:this[this.length+e])},length:0,push:si,sort:[].sort,splice:[].splice},Hi={};o("multiple,selected,checked,disabled,readOnly,required,open".split(","),function(e){Hi[Ya(e)]=e});var Qi={};o("input,select,option,textarea,button,form,details".split(","),function(e){Qi[e]=!0});var Ki={ngMinlength:"minlength",ngMaxlength:"maxlength",ngMin:"min",ngMax:"max",ngPattern:"pattern",ngStep:"step"};o({data:Ue,removeData:Fe,hasData:Ae,cleanData:function(e){for(var t=0,n=e.length;t=0?t.split(" "):[t],c=s.length,l=function(t,a,i){var s=o[t];s||(s=o[t]=[],s.specialHandlerWrapper=a,"$destroy"===t||i||e.addEventListener(t,r)),s.push(n)};c--;)t=s[c],Pi[t]?(l(Pi[t],at),l(t,void 0,!0)):l(t)}},off:Ne,one:function(e,t,n){e=ni(e),e.on(t,function a(){e.off(t,n),e.off(t,a)}),e.on(t,n)},replaceWith:function(e,t){var n,a=e.parentNode;Le(e),o(new Pe(t),function(t){n?a.insertBefore(t,n.nextSibling):a.replaceChild(t,e),n=t})},children:function(e){var t=[];return o(e.childNodes,function(e){e.nodeType===Oi&&t.push(e)}),t},contents:function(e){return e.contentDocument||e.childNodes||[]},append:function(e,t){var n=e.nodeType;if(n===Oi||n===Di){t=new Pe(t);for(var a=0,i=t.length;a/,Xi=/^[^(]*\(\s*([^)]*)\)/m,Zi=/,/,eo=/^\s*(_?)(\S+?)\1\s*$/,to=/((\/\/.*$)|(\/\*[\s\S]*?\*\/))/gm,no=t("$injector");pt.$$annotate=ut;var ao=t("$animate"),io=1,oo="ng-animate",ro=function(){this.$get=h},so=function(){var e=new Wi,t=[];this.$get=["$$AnimateRunner","$rootScope",function(n,a){function i(e,t,n){var a=!1;return t&&(t=w(t)?t.split(" "):fi(t)?t:[],o(t,function(t){t&&(a=!0,e[t]=n)})),a}function r(){o(t,function(t){var n=e.get(t);if(n){var a=ht(t.attr("class")),i="",r="";o(n,function(e,t){var n=!!a[t];e!==n&&(e?i+=(i.length?" ":"")+t:r+=(r.length?" ":"")+t)}),o(t,function(e){i&&He(e,i),r&&Be(e,r)}),e["delete"](t)}}),t.length=0}function s(n,o,s){var c=e.get(n)||{},l=i(c,o,!0),u=i(c,s,!1);(l||u)&&(e.set(n,c),t.push(n),1===t.length&&a.$$postDigest(r))}return{enabled:h,on:h,off:h,pin:h,push:function(e,t,a,i){i&&i(),a=a||{},a.from&&e.css(a.from),a.to&&e.css(a.to),(a.addClass||a.removeClass)&&s(e,a.addClass,a.removeClass);var o=new n;return o.complete(),o}}}]},co=["$provide",function(e){var t=this,n=null;this.$$registeredAnimations=Object.create(null),this.register=function(n,a){if(n&&"."!==n.charAt(0))throw ao("notcsel","Expecting class selector starting with '.' got '{0}'.",n);var i=n+"-animation";t.$$registeredAnimations[n.substr(1)]=i,e.factory(i,a)},this.classNameFilter=function(e){if(1===arguments.length&&(n=e instanceof RegExp?e:null)){var t=new RegExp("[(\\s|\\/)]"+oo+"[(\\s|\\/)]");if(t.test(n.toString()))throw n=null,ao("nongcls",'$animateProvider.classNameFilter(regex) prohibits accepting a regex value which matches/contains the "{0}" CSS class.',oo)}return n},this.$get=["$$animateQueue",function(e){function t(e,t,n){if(n){var a=ft(n);!a||a.parentNode||a.previousElementSibling||(n=null)}n?n.after(e):t.prepend(e)}return{on:e.on,off:e.off,pin:e.pin,enabled:e.enabled,cancel:function(e){e.end&&e.end()},enter:function(n,a,i,o){return a=a&&ni(a),i=i&&ni(i),a=a||i.parent(),t(n,a,i),e.push(n,"enter",gt(o))},move:function(n,a,i,o){return a=a&&ni(a),i=i&&ni(i),a=a||i.parent(),t(n,a,i),e.push(n,"move",gt(o))},leave:function(t,n){return e.push(t,"leave",gt(n),function(){t.remove()})},addClass:function(t,n,a){return a=gt(a),a.addClass=mt(a.addclass,n),e.push(t,"addClass",a)},removeClass:function(t,n,a){return a=gt(a),a.removeClass=mt(a.removeClass,n),e.push(t,"removeClass",a)},setClass:function(t,n,a,i){return i=gt(i),i.addClass=mt(i.addClass,n),i.removeClass=mt(i.removeClass,a),e.push(t,"setClass",i)},animate:function(t,n,a,i,o){return o=gt(o),o.from=o.from?p(o.from,n):n,o.to=o.to?p(o.to,a):a,i=i||"ng-inline-animate",o.tempClasses=mt(o.tempClasses,i),e.push(t,"animate",o)}}}]}],lo=function(){this.$get=["$$rAF",function(e){function t(t){n.push(t),n.length>1||e(function(){for(var e=0;e <= >= && || ! = |".split(" "),function(e){qo[e]=!0});var Po={n:"\n",f:"\f",r:"\r",t:"\t",v:"\x0B","'":"'",'"':'"'},To=function(e){this.options=e};To.prototype={constructor:To,lex:function(e){for(this.text=e,this.index=0,this.tokens=[];this.index=55296&&n<=56319&&a>=56320&&a<=57343?e+t:e},isExpOperator:function(e){return"-"===e||"+"===e||this.isNumber(e)},throwError:function(e,t,n){n=n||this.index;var a=y(t)?"s "+t+"-"+this.index+" ["+this.text.substring(t,n)+"]":" "+n;throw Ro("lexerr","Lexer Error: {0} at column{1} in expression [{2}].",e,a,this.text)},readNumber:function(){for(var e="",t=this.index;this.index0&&!this.peek("}",")",";","]")&&e.push(this.expressionStatement()),!this.expect(";"))return{type:Lo.Program,body:e}},expressionStatement:function(){return{type:Lo.ExpressionStatement,expression:this.filterChain()}},filterChain:function(){for(var e=this.expression();this.expect("|");)e=this.filter(e);return e},expression:function(){return this.assignment()},assignment:function(){var e=this.ternary();if(this.expect("=")){if(!gn(e))throw Ro("lval","Trying to assign a value to a non l-value");e={type:Lo.AssignmentExpression,left:e,right:this.assignment(),operator:"="}}return e},ternary:function(){var e,t,n=this.logicalOR();return this.expect("?")&&(e=this.expression(),this.consume(":"))?(t=this.expression(),{type:Lo.ConditionalExpression,test:n,alternate:e,consequent:t}):n},logicalOR:function(){for(var e=this.logicalAND();this.expect("||");)e={type:Lo.LogicalExpression,operator:"||",left:e,right:this.logicalAND()};return e},logicalAND:function(){for(var e=this.equality();this.expect("&&");)e={type:Lo.LogicalExpression,operator:"&&",left:e,right:this.equality()};return e},equality:function(){for(var e,t=this.relational();e=this.expect("==","!=","===","!==");)t={type:Lo.BinaryExpression,operator:e.text,left:t,right:this.relational()};return t},relational:function(){for(var e,t=this.additive();e=this.expect("<",">","<=",">=");)t={type:Lo.BinaryExpression,operator:e.text,left:t,right:this.additive()};return t},additive:function(){for(var e,t=this.multiplicative();e=this.expect("+","-");)t={type:Lo.BinaryExpression,operator:e.text,left:t,right:this.multiplicative()};return t},multiplicative:function(){for(var e,t=this.unary();e=this.expect("*","/","%");)t={type:Lo.BinaryExpression,operator:e.text,left:t,right:this.unary()};return t},unary:function(){var e;return(e=this.expect("+","-","!"))?{type:Lo.UnaryExpression,operator:e.text,prefix:!0,argument:this.unary()}:this.primary()},primary:function(){var e;this.expect("(")?(e=this.filterChain(),this.consume(")")):this.expect("[")?e=this.arrayDeclaration():this.expect("{")?e=this.object():this.selfReferential.hasOwnProperty(this.peek().text)?e=U(this.selfReferential[this.consume().text]):this.options.literals.hasOwnProperty(this.peek().text)?e={type:Lo.Literal,value:this.options.literals[this.consume().text]}:this.peek().identifier?e=this.identifier():this.peek().constant?e=this.constant():this.throwError("not a primary expression",this.peek());for(var t;t=this.expect("(","[",".");)"("===t.text?(e={type:Lo.CallExpression,callee:e,arguments:this.parseArguments()},this.consume(")")):"["===t.text?(e={type:Lo.MemberExpression,object:e,property:this.expression(),computed:!0},this.consume("]")):"."===t.text?e={type:Lo.MemberExpression,object:e,property:this.identifier(),computed:!1}:this.throwError("IMPOSSIBLE");return e},filter:function(e){for(var t=[e],n={type:Lo.CallExpression,callee:this.identifier(),arguments:t,filter:!0};this.expect(":");)t.push(this.expression());return n},parseArguments:function(){var e=[];if(")"!==this.peekToken().text)do e.push(this.filterChain());while(this.expect(","));return e},identifier:function(){var e=this.consume();return e.identifier||this.throwError("is not a valid identifier",e),{type:Lo.Identifier,name:e.text}},constant:function(){return{type:Lo.Literal,value:this.consume().value}},arrayDeclaration:function(){var e=[];if("]"!==this.peekToken().text)do{if(this.peek("]"))break;e.push(this.expression())}while(this.expect(","));return this.consume("]"),{type:Lo.ArrayExpression,elements:e}},object:function(){var e,t=[];if("}"!==this.peekToken().text)do{if(this.peek("}"))break;e={type:Lo.Property,kind:"init"},this.peek().constant?(e.key=this.constant(),e.computed=!1,this.consume(":"),e.value=this.expression()):this.peek().identifier?(e.key=this.identifier(),e.computed=!1,this.peek(":")?(this.consume(":"),e.value=this.expression()):e.value=e.key):this.peek("[")?(this.consume("["),e.key=this.expression(),this.consume("]"),e.computed=!0, -this.consume(":"),e.value=this.expression()):this.throwError("invalid key",this.peek()),t.push(e)}while(this.expect(","));return this.consume("}"),{type:Lo.ObjectExpression,properties:t}},throwError:function(e,t){throw Ro("syntax","Syntax Error: Token '{0}' {1} at column {2} of the expression [{3}] starting at [{4}].",t.text,e,t.index+1,this.text,this.text.substring(t.index))},consume:function(e){if(0===this.tokens.length)throw Ro("ueoe","Unexpected end of expression: {0}",this.text);var t=this.expect(e);return t||this.throwError("is unexpected, expecting ["+e+"]",this.peek()),t},peekToken:function(){if(0===this.tokens.length)throw Ro("ueoe","Unexpected end of expression: {0}",this.text);return this.tokens[0]},peek:function(e,t,n,a){return this.peekAhead(0,e,t,n,a)},peekAhead:function(e,t,n,a,i){if(this.tokens.length>e){var o=this.tokens[e],r=o.text;if(r===t||r===n||r===a||r===i||!t&&!n&&!a&&!i)return o}return!1},expect:function(e,t,n,a){var i=this.peek(e,t,n,a);return!!i&&(this.tokens.shift(),i)},selfReferential:{"this":{type:Lo.ThisExpression},$locals:{type:Lo.LocalsExpression}}},yn.prototype={compile:function(e){var t=this;this.state={nextId:0,filters:{},fn:{vars:[],body:[],own:{}},assign:{vars:[],body:[],own:{}},inputs:[]},fn(e,t.$filter);var n,a="";if(this.stage="assign",n=vn(e)){this.state.computing="assign";var i=this.nextId();this.recurse(n,i),this.return_(i),a="fn.assign="+this.generateFunction("assign","s,v,l")}var r=hn(e.body);t.stage="inputs",o(r,function(e,n){var a="fn"+n;t.state[a]={vars:[],body:[],own:{}},t.state.computing=a;var i=t.nextId();t.recurse(e,i),t.return_(i),t.state.inputs.push(a),e.watchId=n}),this.state.computing="fn",this.stage="main",this.recurse(e);var s='"'+this.USE+" "+this.STRICT+'";\n'+this.filterPrefix()+"var fn="+this.generateFunction("fn","s,l,a,i")+a+this.watchFns()+"return fn;",c=new Function("$filter","getStringValue","ifDefined","plus",s)(this.$filter,un,pn,dn);return this.state=this.stage=void 0,c},USE:"use",STRICT:"strict",watchFns:function(){var e=[],t=this.state.inputs,n=this;return o(t,function(t){e.push("var "+t+"="+n.generateFunction(t,"s"))}),t.length&&e.push("fn.inputs=["+t.join(",")+"];"),e.join("")},generateFunction:function(e,t){return"function("+t+"){"+this.varsPrefix(e)+this.body(e)+"};"},filterPrefix:function(){var e=[],t=this;return o(this.state.filters,function(n,a){e.push(n+"=$filter("+t.escape(a)+")")}),e.length?"var "+e.join(",")+";":""},varsPrefix:function(e){return this.state[e].vars.length?"var "+this.state[e].vars.join(",")+";":""},body:function(e){return this.state[e].body.join("")},recurse:function(e,t,n,a,i,r){var s,c,l,u,p,d=this;if(a=a||h,!r&&y(e.watchId))return t=t||this.nextId(),void this.if_("i",this.lazyAssign(t,this.computedMember("i",e.watchId)),this.lazyRecurse(e,t,n,a,i,!0));switch(e.type){case Lo.Program:o(e.body,function(t,n){d.recurse(t.expression,void 0,void 0,function(e){c=e}),n!==e.body.length-1?d.current().body.push(c,";"):d.return_(c)});break;case Lo.Literal:u=this.escape(e.value),this.assign(t,u),a(t||u);break;case Lo.UnaryExpression:this.recurse(e.argument,void 0,void 0,function(e){c=e}),u=e.operator+"("+this.ifDefined(c,0)+")",this.assign(t,u),a(u);break;case Lo.BinaryExpression:this.recurse(e.left,void 0,void 0,function(e){s=e}),this.recurse(e.right,void 0,void 0,function(e){c=e}),u="+"===e.operator?this.plus(s,c):"-"===e.operator?this.ifDefined(s,0)+e.operator+this.ifDefined(c,0):"("+s+")"+e.operator+"("+c+")",this.assign(t,u),a(u);break;case Lo.LogicalExpression:t=t||this.nextId(),d.recurse(e.left,t),d.if_("&&"===e.operator?t:d.not(t),d.lazyRecurse(e.right,t)),a(t);break;case Lo.ConditionalExpression:t=t||this.nextId(),d.recurse(e.test,t),d.if_(t,d.lazyRecurse(e.alternate,t),d.lazyRecurse(e.consequent,t)),a(t);break;case Lo.Identifier:t=t||this.nextId(),n&&(n.context="inputs"===d.stage?"s":this.assign(this.nextId(),this.getHasOwnProperty("l",e.name)+"?l:s"),n.computed=!1,n.name=e.name),d.if_("inputs"===d.stage||d.not(d.getHasOwnProperty("l",e.name)),function(){d.if_("inputs"===d.stage||"s",function(){i&&1!==i&&d.if_(d.isNull(d.nonComputedMember("s",e.name)),d.lazyAssign(d.nonComputedMember("s",e.name),"{}")),d.assign(t,d.nonComputedMember("s",e.name))})},t&&d.lazyAssign(t,d.nonComputedMember("l",e.name))),a(t);break;case Lo.MemberExpression:s=n&&(n.context=this.nextId())||this.nextId(),t=t||this.nextId(),d.recurse(e.object,s,void 0,function(){d.if_(d.notNull(s),function(){e.computed?(c=d.nextId(),d.recurse(e.property,c),d.getStringValue(c),i&&1!==i&&d.if_(d.not(d.computedMember(s,c)),d.lazyAssign(d.computedMember(s,c),"{}")),u=d.computedMember(s,c),d.assign(t,u),n&&(n.computed=!0,n.name=c)):(i&&1!==i&&d.if_(d.isNull(d.nonComputedMember(s,e.property.name)),d.lazyAssign(d.nonComputedMember(s,e.property.name),"{}")),u=d.nonComputedMember(s,e.property.name),d.assign(t,u),n&&(n.computed=!1,n.name=e.property.name))},function(){d.assign(t,"undefined")}),a(t)},!!i);break;case Lo.CallExpression:t=t||this.nextId(),e.filter?(c=d.filter(e.callee.name),l=[],o(e.arguments,function(e){var t=d.nextId();d.recurse(e,t),l.push(t)}),u=c+"("+l.join(",")+")",d.assign(t,u),a(t)):(c=d.nextId(),s={},l=[],d.recurse(e.callee,c,s,function(){d.if_(d.notNull(c),function(){o(e.arguments,function(t){d.recurse(t,e.constant?void 0:d.nextId(),void 0,function(e){l.push(e)})}),u=s.name?d.member(s.context,s.name,s.computed)+"("+l.join(",")+")":c+"("+l.join(",")+")",d.assign(t,u)},function(){d.assign(t,"undefined")}),a(t)}));break;case Lo.AssignmentExpression:c=this.nextId(),s={},this.recurse(e.left,void 0,s,function(){d.if_(d.notNull(s.context),function(){d.recurse(e.right,c),u=d.member(s.context,s.name,s.computed)+e.operator+c,d.assign(t,u),a(t||u)})},1);break;case Lo.ArrayExpression:l=[],o(e.elements,function(t){d.recurse(t,e.constant?void 0:d.nextId(),void 0,function(e){l.push(e)})}),u="["+l.join(",")+"]",this.assign(t,u),a(t||u);break;case Lo.ObjectExpression:l=[],p=!1,o(e.properties,function(e){e.computed&&(p=!0)}),p?(t=t||this.nextId(),this.assign(t,"{}"),o(e.properties,function(e){e.computed?(s=d.nextId(),d.recurse(e.key,s)):s=e.key.type===Lo.Identifier?e.key.name:""+e.key.value,c=d.nextId(),d.recurse(e.value,c),d.assign(d.member(t,s,e.computed),c)})):(o(e.properties,function(t){d.recurse(t.value,e.constant?void 0:d.nextId(),void 0,function(e){l.push(d.escape(t.key.type===Lo.Identifier?t.key.name:""+t.key.value)+":"+e)})}),u="{"+l.join(",")+"}",this.assign(t,u)),a(t||u);break;case Lo.ThisExpression:this.assign(t,"s"),a(t||"s");break;case Lo.LocalsExpression:this.assign(t,"l"),a(t||"l");break;case Lo.NGValueParameter:this.assign(t,"v"),a(t||"v")}},getHasOwnProperty:function(e,t){var n=e+"."+t,a=this.current().own;return a.hasOwnProperty(n)||(a[n]=this.nextId(!1,e+"&&("+this.escape(t)+" in "+e+")")),a[n]},assign:function(e,t){if(e)return this.current().body.push(e,"=",t,";"),e},filter:function(e){return this.state.filters.hasOwnProperty(e)||(this.state.filters[e]=this.nextId(!0)),this.state.filters[e]},ifDefined:function(e,t){return"ifDefined("+e+","+this.escape(t)+")"},plus:function(e,t){return"plus("+e+","+t+")"},return_:function(e){this.current().body.push("return ",e,";")},if_:function(e,t,n){if(e===!0)t();else{var a=this.current().body;a.push("if(",e,"){"),t(),a.push("}"),n&&(a.push("else{"),n(),a.push("}"))}},not:function(e){return"!("+e+")"},isNull:function(e){return e+"==null"},notNull:function(e){return e+"!=null"},nonComputedMember:function(e,t){var n=/^[$_a-zA-Z][$_a-zA-Z0-9]*$/,a=/[^$_a-zA-Z0-9]/g;return n.test(t)?e+"."+t:e+'["'+t.replace(a,this.stringEscapeFn)+'"]'},computedMember:function(e,t){return e+"["+t+"]"},member:function(e,t,n){return n?this.computedMember(e,t):this.nonComputedMember(e,t)},getStringValue:function(e){this.assign(e,"getStringValue("+e+")")},lazyRecurse:function(e,t,n,a,i,o){var r=this;return function(){r.recurse(e,t,n,a,i,o)}},lazyAssign:function(e,t){var n=this;return function(){n.assign(e,t)}},stringEscapeRegex:/[^ a-zA-Z0-9]/g,stringEscapeFn:function(e){return"\\u"+("0000"+e.charCodeAt(0).toString(16)).slice(-4)},escape:function(e){if(w(e))return"'"+e.replace(this.stringEscapeRegex,this.stringEscapeFn)+"'";if(I(e))return e.toString();if(e===!0)return"true";if(e===!1)return"false";if(null===e)return"null";if("undefined"==typeof e)return"undefined";throw Ro("esc","IMPOSSIBLE")},nextId:function(e,t){var n="v"+this.state.nextId++;return e||this.current().vars.push(n+(t?"="+t:"")),n},current:function(){return this.state[this.state.computing]}},xn.prototype={compile:function(e){var t=this;fn(e,t.$filter);var n,a;(n=vn(e))&&(a=this.recurse(n));var i,r=hn(e.body);r&&(i=[],o(r,function(e,n){var a=t.recurse(e);e.input=a,i.push(a),e.watchId=n}));var s=[];o(e.body,function(e){s.push(t.recurse(e.expression))});var c=0===e.body.length?h:1===e.body.length?s[0]:function(e,t){var n;return o(s,function(a){n=a(e,t)}),n};return a&&(c.assign=function(e,t,n){return a(e,n,t)}),i&&(c.inputs=i),c},recurse:function(e,t,n){var a,i,r,s=this;if(e.input)return this.inputs(e.input,e.watchId);switch(e.type){case Lo.Literal:return this.value(e.value,t);case Lo.UnaryExpression:return i=this.recurse(e.argument),this["unary"+e.operator](i,t);case Lo.BinaryExpression:return a=this.recurse(e.left),i=this.recurse(e.right),this["binary"+e.operator](a,i,t);case Lo.LogicalExpression:return a=this.recurse(e.left),i=this.recurse(e.right),this["binary"+e.operator](a,i,t);case Lo.ConditionalExpression:return this["ternary?:"](this.recurse(e.test),this.recurse(e.alternate),this.recurse(e.consequent),t);case Lo.Identifier:return s.identifier(e.name,t,n);case Lo.MemberExpression:return a=this.recurse(e.object,!1,!!n),e.computed||(i=e.property.name),e.computed&&(i=this.recurse(e.property)),e.computed?this.computedMember(a,i,t,n):this.nonComputedMember(a,i,t,n);case Lo.CallExpression:return r=[],o(e.arguments,function(e){r.push(s.recurse(e))}),e.filter&&(i=this.$filter(e.callee.name)),e.filter||(i=this.recurse(e.callee,!0)),e.filter?function(e,n,a,o){for(var s=[],c=0;c":function(e,t,n){return function(a,i,o,r){var s=e(a,i,o,r)>t(a,i,o,r);return n?{value:s}:s}},"binary<=":function(e,t,n){return function(a,i,o,r){var s=e(a,i,o,r)<=t(a,i,o,r);return n?{value:s}:s}},"binary>=":function(e,t,n){return function(a,i,o,r){var s=e(a,i,o,r)>=t(a,i,o,r);return n?{value:s}:s}},"binary&&":function(e,t,n){return function(a,i,o,r){var s=e(a,i,o,r)&&t(a,i,o,r);return n?{value:s}:s}},"binary||":function(e,t,n){return function(a,i,o,r){var s=e(a,i,o,r)||t(a,i,o,r);return n?{value:s}:s}},"ternary?:":function(e,t,n,a){return function(i,o,r,s){var c=e(i,o,r,s)?t(i,o,r,s):n(i,o,r,s);return a?{value:c}:c}},value:function(e,t){return function(){return t?{context:void 0,name:void 0,value:e}:e}},identifier:function(e,t,n){return function(a,i,o,r){var s=i&&e in i?i:a;n&&1!==n&&s&&null==s[e]&&(s[e]={});var c=s?s[e]:void 0;return t?{context:s,name:e,value:c}:c}},computedMember:function(e,t,n,a){return function(i,o,r,s){var c,l,u=e(i,o,r,s);return null!=u&&(c=t(i,o,r,s),c=un(c),a&&1!==a&&u&&!u[c]&&(u[c]={}),l=u[c]),n?{context:u,name:c,value:l}:l}},nonComputedMember:function(e,t,n,a){return function(i,o,r,s){var c=e(i,o,r,s);a&&1!==a&&c&&null==c[t]&&(c[t]={});var l=null!=c?c[t]:void 0;return n?{context:c,name:t,value:l}:l}},inputs:function(e,t){return function(n,a,i,o){return o?o[t]:e(n,a,i)}}},jn.prototype={constructor:jn,parse:function(e){var t=this.ast.ast(e),n=this.astCompiler.compile(t);return n.literal=bn(t),n.constant=$n(t),n}};var No=t("$sce"),Fo={HTML:"html",CSS:"css",URL:"url",RESOURCE_URL:"resourceUrl",JS:"js"},Go=/_([a-z])/g,Uo=t("$compile"),Vo=e.document.createElement("a"),Bo=Fn(e.location.href);Vn.$inject=["$document"],Hn.$inject=["$provide"];var Ho=22,Qo=".",Ko="0";Jn.$inject=["$locale"],Yn.$inject=["$locale"];var zo={yyyy:na("FullYear",4,0,!1,!0),yy:na("FullYear",2,0,!0,!0),y:na("FullYear",1,0,!1,!0),MMMM:aa("Month"),MMM:aa("Month",!0),MM:na("Month",2,1),M:na("Month",1,1),LLLL:aa("Month",!1,!0),dd:na("Date",2),d:na("Date",1),HH:na("Hours",2),H:na("Hours",1),hh:na("Hours",2,-12),h:na("Hours",1,-12),mm:na("Minutes",2),m:na("Minutes",1),ss:na("Seconds",2),s:na("Seconds",1),sss:na("Milliseconds",3),EEEE:aa("Day"),EEE:aa("Day",!0),a:ca,Z:ia,ww:sa(2),w:sa(1),G:la,GG:la,GGG:la,GGGG:ua},Wo=/((?:[^yMLdHhmsaZEwG']+)|(?:'(?:[^']|'')*')|(?:E+|y+|M+|L+|d+|H+|h+|m+|s+|a|Z|G+|w+))([\s\S]*)/,Jo=/^-?\d+$/;pa.$inject=["$locale"];var Yo=v(Ya),Xo=v(Xa);ha.$inject=["$parse"];var Zo=v({restrict:"E",compile:function(e,t){if(!t.href&&!t.xlinkHref)return function(e,t){if("a"===t[0].nodeName.toLowerCase()){var n="[object SVGAnimatedString]"===ci.call(t.prop("href"))?"xlink:href":"href";t.on("click",function(e){t.attr(n)||e.preventDefault()})}}}}),er={};o(Hi,function(e,t){function n(e,n,i){e.$watch(i[a],function(e){i.$set(t,!!e)})}if("multiple"!==e){var a=It("ng-"+t),i=n;"checked"===e&&(i=function(e,t,i){i.ngModel!==i[a]&&n(e,t,i)}),er[a]=function(){return{restrict:"A",priority:100,link:i}}}}),o(Ki,function(e,t){er[t]=function(){return{priority:100,link:function(e,n,a){if("ngPattern"===t&&"/"===a.ngPattern.charAt(0)){var i=a.ngPattern.match(Ka);if(i)return void a.$set("ngPattern",new RegExp(i[1],i[2]))}e.$watch(a[t],function(e){a.$set(t,e)})}}}}),o(["src","srcset","href"],function(e){var t=It("ng-"+e);er[t]=function(){return{priority:99,link:function(n,a,i){var o=e,r=e;"href"===e&&"[object SVGAnimatedString]"===ci.call(a.prop("href"))&&(r="xlinkHref",i.$attr[r]="xlink:href",o=null),i.$observe(t,function(t){return t?(i.$set(r,t),void(ti&&o&&a.prop(o,i[r]))):void("href"===e&&i.$set(r,null))})}}}});var tr={$addControl:h,$$renameControl:va,$removeControl:h,$setValidity:h,$setDirty:h,$setPristine:h,$setSubmitted:h},nr="ng-pending",ar="ng-submitted";ba.$inject=["$element","$attrs","$scope","$animate","$interpolate"],ba.prototype={$rollbackViewValue:function(){o(this.$$controls,function(e){e.$rollbackViewValue()})},$commitViewValue:function(){o(this.$$controls,function(e){e.$commitViewValue()})},$addControl:function(e){ge(e.$name,"input"),this.$$controls.push(e),e.$name&&(this[e.$name]=e),e.$$parentForm=this},$$renameControl:function(e,t){var n=e.$name;this[n]===e&&delete this[n],this[t]=e,e.$name=t},$removeControl:function(e){e.$name&&this[e.$name]===e&&delete this[e.$name],o(this.$pending,function(t,n){this.$setValidity(n,null,e)},this),o(this.$error,function(t,n){this.$setValidity(n,null,e)},this),o(this.$$success,function(t,n){this.$setValidity(n,null,e)},this),G(this.$$controls,e),e.$$parentForm=tr},$setDirty:function(){this.$$animate.removeClass(this.$$element,Fr),this.$$animate.addClass(this.$$element,Gr),this.$dirty=!0,this.$pristine=!1,this.$$parentForm.$setDirty()},$setPristine:function(){this.$$animate.setClass(this.$$element,Fr,Gr+" "+ar),this.$dirty=!1,this.$pristine=!0,this.$submitted=!1,o(this.$$controls,function(e){e.$setPristine()})},$setUntouched:function(){o(this.$$controls,function(e){e.$setUntouched()})},$setSubmitted:function(){this.$$animate.addClass(this.$$element,ar),this.$submitted=!0,this.$$parentForm.$setSubmitted()}},ya({clazz:ba,set:function(e,t,n){var a=e[t];if(a){var i=a.indexOf(n);i===-1&&a.push(n)}else e[t]=[n]},unset:function(e,t,n){var a=e[t];a&&(G(a,n),0===a.length&&delete e[t])}});var ir=function(e){return["$timeout","$parse",function(t,n){function a(e){return""===e?n('this[""]').assign:n(e).assign||h}var i={name:"form",restrict:e?"EAC":"E",require:["form","^^?form"],controller:ba,compile:function(n,i){n.addClass(Fr).addClass(Lr);var o=i.name?"name":!(!e||!i.ngForm)&&"ngForm";return{pre:function(e,n,i,r){var s=r[0];if(!("action"in i)){var c=function(t){e.$apply(function(){s.$commitViewValue(),s.$setSubmitted()}),t.preventDefault()};n[0].addEventListener("submit",c),n.on("$destroy",function(){t(function(){n[0].removeEventListener("submit",c)},0,!1)})}var l=r[1]||s.$$parentForm;l.$addControl(s);var u=o?a(s.$name):h;o&&(u(e,s),i.$observe(o,function(t){s.$name!==t&&(u(e,void 0),s.$$parentForm.$$renameControl(s,t),(u=a(s.$name))(e,s))})),n.on("$destroy",function(){s.$$parentForm.$removeControl(s),u(e,void 0),p(s,tr)})}}}};return i}]},or=ir(),rr=ir(!0),sr=/^\d{4,}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+(?:[+-][0-2]\d:[0-5]\d|Z)$/,cr=/^[a-z][a-z\d.+-]*:\/*(?:[^:@]+(?::[^@]+)?@)?(?:[^\s:\/?#]+|\[[a-f\d:]+])(?::\d+)?(?:\/[^?#]*)?(?:\?[^#]*)?(?:#.*)?$/i,lr=/^(?=.{1,254}$)(?=.{1,64}@)[-!#$%&'*+\/0-9=?A-Z^_`a-z{|}~]+(\.[-!#$%&'*+\/0-9=?A-Z^_`a-z{|}~]+)*@[A-Za-z0-9]([A-Za-z0-9-]{0,61}[A-Za-z0-9])?(\.[A-Za-z0-9]([A-Za-z0-9-]{0,61}[A-Za-z0-9])?)*$/,ur=/^\s*(-|\+)?(\d+|(\d*(\.\d*)))([eE][+-]?\d+)?\s*$/,pr=/^(\d{4,})-(\d{2})-(\d{2})$/,dr=/^(\d{4,})-(\d\d)-(\d\d)T(\d\d):(\d\d)(?::(\d\d)(\.\d{1,3})?)?$/,mr=/^(\d{4,})-W(\d\d)$/,fr=/^(\d{4,})-(\d\d)$/,hr=/^(\d\d):(\d\d)(?::(\d\d)(\.\d{1,3})?)?$/,gr="keydown wheel mousedown",vr=$e();o("date,datetime-local,month,time,week".split(","),function(e){vr[e]=!0});var br={text:wa,date:ka("date",pr,Ca(pr,["yyyy","MM","dd"]),"yyyy-MM-dd"),"datetime-local":ka("datetimelocal",dr,Ca(dr,["yyyy","MM","dd","HH","mm","ss","sss"]),"yyyy-MM-ddTHH:mm:ss.sss"),time:ka("time",hr,Ca(hr,["HH","mm","ss","sss"]),"HH:mm:ss.sss"),week:ka("week",mr,Oa,"yyyy-Www"),month:ka("month",fr,Ca(fr,["yyyy","MM"]),"yyyy-MM"),number:Ma,url:Pa,email:Ta,radio:La,range:qa,checkbox:Fa,hidden:h,button:h,submit:h,reset:h,file:h},$r=["$browser","$sniffer","$filter","$parse",function(e,t,n,a){return{restrict:"E",require:["?ngModel"],link:{pre:function(i,o,r,s){s[0]&&(br[Ya(r.type)]||br.text)(i,o,r,s[0],t,e,n,a)}}}}],yr=/^(true|false|\d+)$/,xr=function(){function e(e,t,n){var a=y(n)?n:9===ti?"":null;e.prop("value",a),t.$set("value",n)}return{restrict:"A",priority:100,compile:function(t,n){return yr.test(n.ngValue)?function(t,n,a){var i=t.$eval(a.ngValue);e(n,a,i)}:function(t,n,a){t.$watch(a.ngValue,function(t){e(n,a,t)})}}}},jr=["$compile",function(e){return{restrict:"AC",compile:function(t){return e.$$addBindingClass(t),function(t,n,a){e.$$addBindingInfo(n,a.ngBind),n=n[0],t.$watch(a.ngBind,function(e){n.textContent=ye(e)})}}}}],wr=["$interpolate","$compile",function(e,t){return{compile:function(n){return t.$$addBindingClass(n),function(n,a,i){var o=e(a.attr(i.$attr.ngBindTemplate));t.$$addBindingInfo(a,o.expressions),a=a[0],i.$observe("ngBindTemplate",function(e){a.textContent=$(e)?"":e})}}}}],Ir=["$sce","$parse","$compile",function(e,t,n){return{restrict:"A",compile:function(a,i){var o=t(i.ngBindHtml),r=t(i.ngBindHtml,function(t){return e.valueOf(t)});return n.$$addBindingClass(a),function(t,a,i){n.$$addBindingInfo(a,i.ngBindHtml),t.$watch(r,function(){var n=o(t);a.html(e.getTrustedHtml(n)||"")})}}}}],Or=v({restrict:"A",require:"ngModel",link:function(e,t,n,a){a.$viewChangeListeners.push(function(){e.$eval(n.ngChange)})}}),Cr=Ga("",!0),kr=Ga("Odd",0),Sr=Ga("Even",1),_r=ga({compile:function(e,t){t.$set("ngCloak",void 0),e.removeClass("ng-cloak")}}),Dr=[function(){return{restrict:"A",scope:!0,controller:"@",priority:500}}],Er={},Ar={blur:!0,focus:!0};o("click dblclick mousedown mouseup mouseover mouseout mousemove mouseenter mouseleave keydown keyup keypress submit focus blur copy cut paste".split(" "),function(e){var t=It("ng-"+e);Er[t]=["$parse","$rootScope",function(n,a){return{restrict:"A",compile:function(i,o){var r=n(o[t]);return function(t,n){n.on(e,function(n){var i=function(){r(t,{$event:n})};Ar[e]&&a.$$phase?t.$evalAsync(i):t.$apply(i)})}}}}]});var Rr=["$animate","$compile",function(e,t){return{multiElement:!0,transclude:"element",priority:600,terminal:!0,restrict:"A",$$tlb:!0,link:function(n,a,i,o,r){var s,c,l;n.$watch(i.ngIf,function(n){n?c||r(function(n,o){c=o,n[n.length++]=t.$$createComment("end ngIf",i.ngIf),s={clone:n},e.enter(n,a.parent(),a)}):(l&&(l.remove(),l=null),c&&(c.$destroy(),c=null),s&&(l=be(s.clone),e.leave(l).done(function(e){e!==!1&&(l=null)}),s=null))})}}}],Mr=["$templateRequest","$anchorScroll","$animate",function(e,t,n){return{restrict:"ECA",priority:400,terminal:!0,transclude:"element",controller:pi.noop,compile:function(a,i){var o=i.ngInclude||i.src,r=i.onload||"",s=i.autoscroll;return function(a,i,c,l,u){var p,d,m,f=0,h=function(){d&&(d.remove(),d=null),p&&(p.$destroy(),p=null),m&&(n.leave(m).done(function(e){e!==!1&&(d=null)}),d=m,m=null)};a.$watch(o,function(o){var c=function(e){e===!1||!y(s)||s&&!a.$eval(s)||t()},d=++f;o?(e(o,!0).then(function(e){if(!a.$$destroyed&&d===f){var t=a.$new();l.template=e;var s=u(t,function(e){h(),n.enter(e,null,i).done(c)});p=t,m=s,p.$emit("$includeContentLoaded",o),a.$eval(r)}},function(){a.$$destroyed||d===f&&(h(),a.$emit("$includeContentError",o))}),a.$emit("$includeContentRequested",o)):(h(),l.template=null)})}}}}],qr=["$compile",function(t){return{restrict:"ECA",priority:-400,require:"ngInclude",link:function(n,a,i,o){return ci.call(a[0]).match(/SVG/)?(a.empty(),void t(Re(o.template,e.document).childNodes)(n,function(e){a.append(e)},{futureParentElement:a})):(a.html(o.template),void t(a.contents())(n))}}}],Pr=ga({priority:450,compile:function(){return{pre:function(e,t,n){e.$eval(n.ngInit)}}}}),Tr=function(){return{restrict:"A",priority:100,require:"ngModel",link:function(e,t,n,a){var i=n.ngList||", ",r="false"!==n.ngTrim,s=r?gi(i):i,c=function(e){if(!$(e)){var t=[];return e&&o(e.split(s),function(e){e&&t.push(r?gi(e):e)}),t}};a.$parsers.push(c),a.$formatters.push(function(e){if(fi(e))return e.join(i)}),a.$isEmpty=function(e){return!e||!e.length}}}},Lr="ng-valid",Nr="ng-invalid",Fr="ng-pristine",Gr="ng-dirty",Ur="ng-untouched",Vr="ng-touched",Br="ng-empty",Hr="ng-not-empty",Qr=t("ngModel");Ua.$inject=["$scope","$exceptionHandler","$attrs","$element","$parse","$animate","$timeout","$q","$interpolate"],Ua.prototype={$$initGetterSetters:function(){if(this.$options.getOption("getterSetter")){var e=this.$$parse(this.$$attr.ngModel+"()"),t=this.$$parse(this.$$attr.ngModel+"($$$p)");this.$$ngModelGet=function(t){var n=this.$$parsedNgModel(t);return C(n)&&(n=e(t)),n},this.$$ngModelSet=function(e,n){C(this.$$parsedNgModel(e))?t(e,{$$$p:n}):this.$$parsedNgModelAssign(e,n)}}else if(!this.$$parsedNgModel.assign)throw Qr("nonassign","Expression '{0}' is non-assignable. Element: {1}",this.$$attr.ngModel,ee(this.$$element))},$render:h,$isEmpty:function(e){return $(e)||""===e||null===e||e!==e},$$updateEmptyClasses:function(e){this.$isEmpty(e)?(this.$$animate.removeClass(this.$$element,Hr),this.$$animate.addClass(this.$$element,Br)):(this.$$animate.removeClass(this.$$element,Br),this.$$animate.addClass(this.$$element,Hr))},$setPristine:function(){this.$dirty=!1,this.$pristine=!0,this.$$animate.removeClass(this.$$element,Gr),this.$$animate.addClass(this.$$element,Fr)},$setDirty:function(){this.$dirty=!0,this.$pristine=!1,this.$$animate.removeClass(this.$$element,Fr),this.$$animate.addClass(this.$$element,Gr),this.$$parentForm.$setDirty()},$setUntouched:function(){this.$touched=!1,this.$untouched=!0,this.$$animate.setClass(this.$$element,Ur,Vr)},$setTouched:function(){this.$touched=!0,this.$untouched=!1,this.$$animate.setClass(this.$$element,Vr,Ur)},$rollbackViewValue:function(){this.$$timeout.cancel(this.$$pendingDebounce),this.$viewValue=this.$$lastCommittedViewValue,this.$render()},$validate:function(){if(!mi(this.$modelValue)){var e=this.$$lastCommittedViewValue,t=this.$$rawModelValue,n=this.$valid,a=this.$modelValue,i=this.$options.getOption("allowInvalid"),o=this;this.$$runValidators(t,e,function(e){i||n===e||(o.$modelValue=e?t:void 0,o.$modelValue!==a&&o.$$writeModelToScope())})}},$$runValidators:function(e,t,n){function a(){var e=u.$$parserName||"parse";return $(u.$$parserValid)?(s(e,null),!0):(u.$$parserValid||(o(u.$validators,function(e,t){s(t,null)}),o(u.$asyncValidators,function(e,t){s(t,null)})),s(e,u.$$parserValid),u.$$parserValid)}function i(){var n=!0;return o(u.$validators,function(a,i){var o=Boolean(a(e,t));n=n&&o,s(i,o)}),!!n||(o(u.$asyncValidators,function(e,t){s(t,null)}),!1)}function r(){var n=[],a=!0;o(u.$asyncValidators,function(i,o){var r=i(e,t);if(!M(r))throw Qr("nopromise","Expected asynchronous validator to return a promise but got '{0}' instead.",r);s(o,void 0),n.push(r.then(function(){s(o,!0)},function(){a=!1,s(o,!1)}))}),n.length?u.$$q.all(n).then(function(){c(a)},h):c(!0)}function s(e,t){l===u.$$currentValidationRunId&&u.$setValidity(e,t)}function c(e){l===u.$$currentValidationRunId&&n(e)}this.$$currentValidationRunId++;var l=this.$$currentValidationRunId,u=this;return a()&&i()?void r():void c(!1)},$commitViewValue:function(){var e=this.$viewValue;this.$$timeout.cancel(this.$$pendingDebounce),(this.$$lastCommittedViewValue!==e||""===e&&this.$$hasNativeValidators)&&(this.$$updateEmptyClasses(e),this.$$lastCommittedViewValue=e,this.$pristine&&this.$setDirty(),this.$$parseAndValidate())},$$parseAndValidate:function(){function e(){a.$modelValue!==o&&a.$$writeModelToScope()}var t=this.$$lastCommittedViewValue,n=t,a=this;if(this.$$parserValid=!$(n)||void 0,this.$$parserValid)for(var i=0;i0?this.$$pendingDebounce=this.$$timeout(function(){n.$commitViewValue()},t):this.$$scope.$root.$$phase?this.$commitViewValue():this.$$scope.$apply(function(){n.$commitViewValue()})},$overrideModelOptions:function(e){this.$options=this.$options.createChild(e)}},ya({clazz:Ua,set:function(e,t){e[t]=!0},unset:function(e,t){delete e[t]}});var Kr,zr=["$rootScope",function(e){return{restrict:"A",require:["ngModel","^?form","^?ngModelOptions"],controller:Ua,priority:1,compile:function(t){return t.addClass(Fr).addClass(Ur).addClass(Lr),{pre:function(e,t,n,a){var i=a[0],o=a[1]||i.$$parentForm,r=a[2];r&&(i.$options=r.$options),i.$$initGetterSetters(),o.$addControl(i),n.$observe("name",function(e){i.$name!==e&&i.$$parentForm.$$renameControl(i,e)}),e.$on("$destroy",function(){i.$$parentForm.$removeControl(i)})},post:function(t,n,a,i){function o(){r.$setTouched()}var r=i[0];r.$options.getOption("updateOn")&&n.on(r.$options.getOption("updateOn"),function(e){r.$$debounceViewValueCommit(e&&e.type)}),n.on("blur",function(){r.$touched||(e.$$phase?t.$evalAsync(o):t.$apply(o))})}}}}}],Wr=/(\s+|^)default(\s+|$)/;Ba.prototype={getOption:function(e){return this.$$options[e]},createChild:function(e){var t=!1;return e=p({},e),o(e,function(n,a){"$inherit"===n?"*"===a?t=!0:(e[a]=this.$$options[a],"updateOn"===a&&(e.updateOnDefault=this.$$options.updateOnDefault)):"updateOn"===a&&(e.updateOnDefault=!1,e[a]=gi(n.replace(Wr,function(){return e.updateOnDefault=!0," "})))},this),t&&(delete e["*"],Ha(e,this.$$options)),Ha(e,Kr.$$options),new Ba(e)}},Kr=new Ba({updateOn:"",updateOnDefault:!0,debounce:0,getterSetter:!1,allowInvalid:!1,timezone:null});var Jr=function(){function e(e,t){this.$$attrs=e,this.$$scope=t}return e.$inject=["$attrs","$scope"],e.prototype={$onInit:function(){var e=this.parentCtrl?this.parentCtrl.$options:Kr,t=this.$$scope.$eval(this.$$attrs.ngModelOptions);this.$options=e.createChild(t)}},{restrict:"A",priority:10,require:{parentCtrl:"?^^ngModelOptions"},bindToController:!0,controller:e}},Yr=ga({terminal:!0,priority:1e3}),Xr=t("ngOptions"),Zr=/^\s*([\s\S]+?)(?:\s+as\s+([\s\S]+?))?(?:\s+group\s+by\s+([\s\S]+?))?(?:\s+disable\s+when\s+([\s\S]+?))?\s+for\s+(?:([$\w][$\w]*)|(?:\(\s*([$\w][$\w]*)\s*,\s*([$\w][$\w]*)\s*\)))\s+in\s+([\s\S]+?)(?:\s+track\s+by\s+([\s\S]+?))?$/,es=["$compile","$document","$parse",function(t,n,a){function r(e,t,n){function o(e,t,n,a,i){this.selectValue=e,this.viewValue=t,this.label=n,this.group=a,this.disabled=i}function r(e){var t;if(!l&&i(e))t=e;else{t=[];for(var n in e)e.hasOwnProperty(n)&&"$"!==n.charAt(0)&&t.push(n)}return t}var s=e.match(Zr);if(!s)throw Xr("iexp","Expected expression in form of '_select_ (as _label_)? for (_key_,)?_value_ in _collection_' but got '{0}'. Element: {1}",e,ee(t));var c=s[5]||s[7],l=s[6],u=/ as /.test(s[0])&&s[1],p=s[9],d=a(s[2]?s[1]:c),m=u&&a(u),f=m||d,h=p&&a(p),g=p?function(e,t){return h(n,t)}:function(e){return ot(e)},v=function(e,t){return g(e,w(e,t))},b=a(s[2]||s[1]),$=a(s[3]||""),y=a(s[4]||""),x=a(s[8]),j={},w=l?function(e,t){return j[l]=t,j[c]=e,j}:function(e){return j[c]=e,j};return{trackBy:p,getTrackByValue:v,getWatchables:a(x,function(e){var t=[];e=e||[];for(var a=r(e),i=a.length,o=0;o=0;t--){var n=w.items[t];Je(y(n.group)?n.element.parentNode:n.element)}w=I.getOptions();var i={};if(x&&a.prepend(f.emptyOption),w.items.forEach(function(e){var t;y(e.group)?(t=i[e.group],t||(t=l.cloneNode(!1),O.appendChild(t),t.label=null===e.group?"null":e.group,i[e.group]=t),u(e,t)):u(e,O)}),a[0].appendChild(O),h.$render(),!h.$isEmpty(e)){var o=f.readValue(),r=I.trackBy||g;(r?B(e,o):e===o)||(h.$setViewValue(o),h.$render())}}for(var f=s[0],h=s[1],g=i.multiple,v=0,b=a.children(),$=b.length;v<$;v++)if(""===b[v].value){f.hasEmptyOption=!0,f.emptyOption=b.eq(v);break}var x=!!f.emptyOption,j=ni(c.cloneNode(!1));j.val("?");var w,I=r(i.ngOptions,a,e),O=n[0].createDocumentFragment();f.generateUnknownOptionValue=function(e){return"?"},g?(f.writeValue=function(e){var t=e&&e.map(p)||[];w.items.forEach(function(e){e.element.selected&&!F(t,e)&&(e.element.selected=!1)})},f.readValue=function(){var e=a.val()||[],t=[];return o(e,function(e){var n=w.selectValueMap[e];n&&!n.disabled&&t.push(w.getViewValueFromOption(n))}),t},I.trackBy&&e.$watchCollection(function(){if(fi(h.$viewValue))return h.$viewValue.map(function(e){return I.getTrackByValue(e)})},function(){h.$render()})):(f.writeValue=function(e){var t=w.selectValueMap[a.val()],n=w.getOptionFromViewValue(e);t&&t.element.removeAttribute("selected"),n?(a[0].value!==n.selectValue&&(f.removeUnknownOption(),f.unselectEmptyOption(),a[0].value=n.selectValue,n.element.selected=!0),n.element.setAttribute("selected","selected")):x?f.selectEmptyOption():f.unknownOption.parent().length?f.updateUnknownOption(e):f.renderUnknownOption(e)},f.readValue=function(){var e=w.selectValueMap[a.val()];return e&&!e.disabled?(f.unselectEmptyOption(),f.removeUnknownOption(),w.getViewValueFromOption(e)):null},I.trackBy&&e.$watch(function(){return I.getTrackByValue(h.$viewValue)},function(){h.$render()})),x&&(f.emptyOption.remove(),t(f.emptyOption)(e),f.emptyOption[0].nodeType===Si?(f.hasEmptyOption=!1,f.registerOption=function(e,t){""===t.val()&&(f.hasEmptyOption=!0,f.emptyOption=t,f.emptyOption.removeClass("ng-scope"),h.$render(),t.on("$destroy",function(){f.hasEmptyOption=!1,f.emptyOption=void 0}))}):f.emptyOption.removeClass("ng-scope")),a.empty(),m(),e.$watchCollection(I.getWatchables,m)}var c=e.document.createElement("option"),l=e.document.createElement("optgroup");return{restrict:"A",terminal:!0,require:["select","ngModel"],link:{pre:function(e,t,n,a){a[0].registerOption=h},post:s}}}],ts=["$locale","$interpolate","$log",function(e,t,n){var a=/{}/g,i=/^when(Minus)?(.+)$/;return{link:function(r,s,c){function l(e){s.text(e||"")}var u,p=c.count,d=c.$attr.when&&s.attr(c.$attr.when),m=c.offset||0,f=r.$eval(d)||{},g={},v=t.startSymbol(),b=t.endSymbol(),y=v+p+"-"+m+b,x=pi.noop;o(c,function(e,t){var n=i.exec(t);if(n){var a=(n[1]?"-":"")+Ya(n[2]);f[a]=s.attr(c.$attr[t])}}),o(f,function(e,n){g[n]=t(e.replace(a,y))}),r.$watch(p,function(t){var a=parseFloat(t),i=mi(a);if(i||a in f||(a=e.pluralCat(a-m)),!(a===u||i&&mi(u))){x();var o=g[a];$(o)?(null!=t&&n.debug("ngPluralize: no rule defined for '"+a+"' in "+d),x=h,l()):x=r.$watch(o,l),u=a}})}}}],ns=["$parse","$animate","$compile",function(e,n,a){var r="$$NG_REMOVED",s=t("ngRepeat"),c=function(e,t,n,a,i,o,r){e[n]=a,i&&(e[i]=o),e.$index=t,e.$first=0===t,e.$last=t===r-1,e.$middle=!(e.$first||e.$last),e.$odd=!(e.$even=0===(1&t))},l=function(e){return e.clone[0]},u=function(e){return e.clone[e.clone.length-1]};return{restrict:"A",multiElement:!0,transclude:"element",priority:1e3,terminal:!0,$$tlb:!0,compile:function(t,p){var d=p.ngRepeat,m=a.$$createComment("end ngRepeat",d),f=d.match(/^\s*([\s\S]+?)\s+in\s+([\s\S]+?)(?:\s+as\s+([\s\S]+?))?(?:\s+track\s+by\s+([\s\S]+?))?\s*$/);if(!f)throw s("iexp","Expected expression in form of '_item_ in _collection_[ track by _id_]' but got '{0}'.",d);var h=f[1],g=f[2],v=f[3],b=f[4];if(f=h.match(/^(?:(\s*[$\w]+)|\(\s*([$\w]+)\s*,\s*([$\w]+)\s*\))$/),!f)throw s("iidexp","'_item_' in '_item_ in _collection_' should be an identifier or '(_key_, _value_)' expression, but got '{0}'.",h);var $=f[3]||f[1],y=f[2];if(v&&(!/^[$a-zA-Z_][$a-zA-Z0-9_]*$/.test(v)||/^(null|undefined|this|\$index|\$first|\$middle|\$last|\$even|\$odd|\$parent|\$root|\$id)$/.test(v)))throw s("badident","alias '{0}' is invalid --- must be a valid JS identifier which is not a reserved name.",v);var x,j,w,I,O={$id:ot};return b?x=e(b):(w=function(e,t){return ot(t)},I=function(e){return e}),function(e,t,a,p,f){x&&(j=function(t,n,a){return y&&(O[y]=t),O[$]=n,O.$index=a,x(e,O)});var h=$e();e.$watchCollection(g,function(a){var p,g,b,x,O,C,k,S,_,D,E,A,R=t[0],M=$e();if(v&&(e[v]=a),i(a))_=a,S=j||w;else{S=j||I,_=[];for(var q in a)Wa.call(a,q)&&"$"!==q.charAt(0)&&_.push(q)}for(x=_.length,E=new Array(x),p=0;p0&&(e=new RegExp("^"+e+"$")),e&&!e.test)throw t("ngPattern")("noregexp","Expected {0} to be a RegExp but was {1}. Element: {2}",r,e,ee(n));o=e||void 0,i.$validate()}),i.$validators.pattern=function(e,t){return i.$isEmpty(t)||$(o)||o.test(t)}}}}},ys=function(){return{restrict:"A",require:"?ngModel",link:function(e,t,n,a){if(a){var i=-1;n.$observe("maxlength",function(e){var t=m(e);i=mi(t)?-1:t,a.$validate()}),a.$validators.maxlength=function(e,t){return i<0||a.$isEmpty(t)||t.length<=i}}}}},xs=function(){return{restrict:"A",require:"?ngModel",link:function(e,t,n,a){if(a){var i=0;n.$observe("minlength",function(e){i=m(e)||0,a.$validate()}),a.$validators.minlength=function(e,t){return a.$isEmpty(t)||t.length>=i}}}}};return e.angular.bootstrap?void e.console:(me(),Oe(pi),pi.module("ngLocale",[],["$provide",function(e){function t(e){e+="";var t=e.indexOf(".");return t==-1?0:e.length-t-1}function n(e,n){var a=n;void 0===a&&(a=Math.min(t(e),3));var i=Math.pow(10,a),o=(e*i|0)%i;return{v:a,f:o}}var a={ZERO:"zero",ONE:"one",TWO:"two",FEW:"few",MANY:"many",OTHER:"other"};e.value("$locale",{DATETIME_FORMATS_CN:{AMPMS:["AM","PM"],DAY:["周日","周一","周二","周三","周四","周五","周六"],ERANAMES:["Before Christ","Anno Domini"],ERAS:["BC","AD"],FIRSTDAYOFWEEK:6,MONTH:["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],SHORTDAY:["日","一","二","三","四","五","六"],SHORTMONTH:["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"],STANDALONEMONTH:["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],WEEKENDRANGE:[5,6],fullDate:"EEEE, MMMM d, y",longDate:"MMMM d, y",medium:"MMM d, y h:mm:ss a",mediumDate:"MMM d, y",mediumTime:"h:mm:ss a","short":"M/d/yy h:mm a",shortDate:"M/d/yy",shortTime:"h:mm a"},DATETIME_FORMATS:{AMPMS:["AM","PM"],DAY:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],ERANAMES:["Before Christ","Anno Domini"],ERAS:["BC","AD"],FIRSTDAYOFWEEK:6,MONTH:["January","February","March","April","May","June","July","August","September","October","November","December"],SHORTDAY:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],SHORTMONTH:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],STANDALONEMONTH:["January","February","March","April","May","June","July","August","September","October","November","December"],WEEKENDRANGE:[5,6],fullDate:"EEEE, MMMM d, y",longDate:"MMMM d, y",medium:"MMM d, y h:mm:ss a",mediumDate:"MMM d, y",mediumTime:"h:mm:ss a","short":"M/d/yy h:mm a",shortDate:"M/d/yy",shortTime:"h:mm a"},NUMBER_FORMATS:{CURRENCY_SYM:"$",DECIMAL_SEP:".",GROUP_SEP:",",PATTERNS:[{gSize:3,lgSize:3,maxFrac:3,minFrac:0,minInt:1,negPre:"-",negSuf:"",posPre:"",posSuf:""},{gSize:3,lgSize:3,maxFrac:2,minFrac:2,minInt:1,negPre:"-¤",negSuf:"",posPre:"¤",posSuf:""}]},id:"en-us",localeID:"en_US",pluralCat:function(e,t){var i=0|e,o=n(e,t);return 1==i&&0==o.v?a.ONE:a.OTHER}})}]),void ni(function(){ce(e.document,le)}))}(window),!window.angular.$$csp().noInlineStyle&&window.angular.element(document.head).prepend(''),function(e,t){"use strict";function n(e){return null!=e&&""!==e&&"hasOwnProperty"!==e&&r.test("."+e)}function a(e,a){if(!n(a))throw o("badmember",'Dotted member path "@{0}" is invalid.',a);for(var i=a.split("."),r=0,s=i.length;r>>0,a=Number(arguments[2])||0;for(a=a<0?Math.ceil(a):Math.floor(a),a<0&&(a+=n);a=0||(u.push(i[d]),l[i[d]]=e[i[d]]);return H({},l,t)}function l(e,t,n){if(!n){n=[];for(var a in e)n.push(a)}for(var i=0;i "));if($[n]=a,G(e))v.push(n,[function(){return t.get(e)}],l);else{var i=t.annotate(e);B(i,function(e){e!==n&&c.hasOwnProperty(e)&&m(c[e],e)}),v.push(n,e,i)}b.pop(),$[n]=o}}function f(e){return U(e)&&e.then&&e.$$promises}if(!U(c))throw new Error("'invocables' must be an object");var g=r(c||{}),v=[],b=[],$={};return B(c,m),c=b=$=null,function(a,o,r){function s(){--x||(j||i(y,o.$$values),b.$$values=y,b.$$promises=b.$$promises||!0,delete b.$$inheritedValues,m.resolve(y))}function c(e){b.$$failure=e,m.reject(e)}function l(n,i,o){function l(e){p.reject(e),c(e)}function u(){if(!N(b.$$failure))try{p.resolve(t.invoke(i,r,y)),p.promise.then(function(e){y[n]=e,s()},l)}catch(e){l(e)}}var p=e.defer(),d=0;B(o,function(e){$.hasOwnProperty(e)&&!a.hasOwnProperty(e)&&(d++,$[e].then(function(t){y[e]=t,--d||u()},l))}),d||u(),$[n]=h(p.promise)}if(f(a)&&r===n&&(r=o,o=a,a=null),a){if(!U(a))throw new Error("'locals' must be an object")}else a=u;if(o){if(!f(o))throw new Error("'parent' must be a promise returned by $resolve.resolve()")}else o=p;var m=e.defer(),b=h(m.promise),$=b.$$promises={},y=H({},a),x=1+v.length/3,j=!1;if(h(b),N(o.$$failure))return c(o.$$failure),b;o.$$inheritedValues&&i(y,d(o.$$inheritedValues,g)),H($,o.$$promises),o.$$values?(j=i(y,d(o.$$values,g)),b.$$inheritedValues=d(o.$$values,g),s()):(o.$$inheritedValues&&(b.$$inheritedValues=d(o.$$inheritedValues,g)),o.then(s,c));for(var w=0,I=v.length;w=0));)b=o(v.id,v.type,v.cfg,"path"),p+=r(v.segment,b.type.pattern.source,b.squash,b.isOptional),m.push(v.segment),d=l.lastIndex;$=e.substring(d);var y=$.indexOf("?");if(y>=0){var x=this.sourceSearch=$.substring(y);if($=$.substring(0,y),this.sourcePath=e.substring(0,d+y),x.length>0)for(d=0;c=u.exec(x);)v=s(c,!0),b=o(v.id,v.type,v.cfg,"search"),d=l.lastIndex}else this.sourcePath=e,this.sourceSearch="";p+=r($)+(t.strict===!1?"/?":"")+"$",m.push($),this.regexp=new RegExp(p,t.caseInsensitive?"i":n),this.prefix=m[0],this.$$paramNames=g}function y(e){H(this,e)}function x(){function e(e){return null!=e?e.toString().replace(/(~|\/)/g,function(e){return{"~":"~~","/":"~2F"}[e]}):e}function i(e){return null!=e?e.toString().replace(/(~~|~2F)/g,function(e){return{"~~":"~","~2F":"/"}[e]}):e}function o(){return{strict:h,caseInsensitive:d}}function c(e){return F(e)||V(e)&&F(e[e.length-1])}function l(){for(;j.length;){var e=j.shift();if(e.pattern)throw new Error("You cannot override a type's .pattern at runtime.");t.extend(v[e.name],p.invoke(e.def))}}function u(e){H(this,e||{})}z=this;var p,d=!1,h=!0,g=!1,v={},b=!0,j=[],w={string:{encode:e,decode:i,is:function(e){return null==e||!N(e)||"string"==typeof e},pattern:/[^\/]*/},"int":{encode:e,decode:function(e){return parseInt(e,10)},is:function(e){return e!==n&&null!==e&&this.decode(e.toString())===e},pattern:/\d+/},bool:{encode:function(e){return e?1:0},decode:function(e){return 0!==parseInt(e,10)},is:function(e){return e===!0||e===!1},pattern:/0|1/},date:{encode:function(e){return this.is(e)?[e.getFullYear(),("0"+(e.getMonth()+1)).slice(-2),("0"+e.getDate()).slice(-2)].join("-"):n},decode:function(e){if(this.is(e))return e;var t=this.capture.exec(e);return t?new Date(t[1],t[2]-1,t[3]):n},is:function(e){return e instanceof Date&&!isNaN(e.valueOf())},equals:function(e,t){return this.is(e)&&this.is(t)&&e.toISOString()===t.toISOString()},pattern:/[0-9]{4}-(?:0[1-9]|1[0-2])-(?:0[1-9]|[1-2][0-9]|3[0-1])/,capture:/([0-9]{4})-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])/},json:{encode:t.toJson,decode:t.fromJson,is:t.isObject,equals:t.equals,pattern:/[^\/]*/},any:{encode:t.identity,decode:t.identity,equals:t.equals,pattern:/.*/}};x.$$getDefaultValue=function(e){if(!c(e.value))return e.value;if(!p)throw new Error("Injectable functions cannot be called at configuration time");return p.invoke(e.value)},this.caseInsensitive=function(e){return N(e)&&(d=e),d},this.strictMode=function(e){return N(e)&&(h=e),h},this.defaultSquashPolicy=function(e){if(!N(e))return g;if(e!==!0&&e!==!1&&!G(e))throw new Error("Invalid squash policy: "+e+". Valid policies: false, true, arbitrary-string");return g=e,e},this.compile=function(e,t){return new $(e,H(o(),t))},this.isMatcher=function(e){if(!U(e))return!1;var t=!0;return B($.prototype,function(n,a){F(n)&&(t=t&&N(e[a])&&F(e[a]))}),t},this.type=function(e,t,n){if(!N(t))return v[e];if(v.hasOwnProperty(e))throw new Error("A type named '"+e+"' has already been defined.");return v[e]=new y(H({name:e},t)),n&&(j.push({name:e,def:n}),b||l()),this},B(w,function(e,t){v[t]=new y(H({name:t},e))}),v=a(v,{}),this.$get=["$injector",function(e){return p=e,b=!1,l(),B(w,function(e,t){v[t]||(v[t]=new y(e))}),this}],this.Param=function(e,a,i,o){function l(e){var t=U(e)?r(e):[],n=s(t,"value")===-1&&s(t,"type")===-1&&s(t,"squash")===-1&&s(t,"array")===-1;return n&&(e={value:e}),e.$$fn=c(e.value)?e.value:function(){return e.value},e}function u(n,a,i){if(n.type&&a)throw new Error("Param '"+e+"' has two type configurations.");return a?a:n.type?t.isString(n.type)?v[n.type]:n.type instanceof y?n.type:new y(n.type):"config"===i?v.any:v.string}function d(){var t={array:"search"===o&&"auto"},n=e.match(/\[\]$/)?{array:!0}:{};return H(t,n,i).array}function h(e,t){var n=e.squash;if(!t||n===!1)return!1;if(!N(n)||null==n)return g;if(n===!0||G(n))return n;throw new Error("Invalid squash policy: '"+n+"'. Valid policies: false, true, or arbitrary string")}function b(e,t,a,i){var o,r,c=[{from:"",to:a||t?n:""},{from:null,to:a||t?n:""}];return o=V(e.replace)?e.replace:[],G(i)&&o.push({from:i,to:n}),r=f(o,function(e){return e.from}),m(c,function(e){return s(r,e.from)===-1}).concat(o)}function $(){if(!p)throw new Error("Injectable functions cannot be called at configuration time");var e=p.invoke(i.$$fn);if(null!==e&&e!==n&&!w.type.is(e))throw new Error("Default value ("+e+") for parameter '"+w.id+"' is not an instance of Type ("+w.type.name+")");return e}function x(e){function t(e){return function(t){return t.from===e}}function n(e){var n=f(m(w.replace,t(e)),function(e){return e.to});return n.length?n[0]:e}return e=n(e),N(e)?w.type.$normalize(e):$()}function j(){return"{Param:"+e+" "+a+" squash: '"+C+"' optional: "+O+"}"}var w=this;i=l(i),a=u(i,a,o);var I=d();a=I?a.$asArray(I,"search"===o):a,"string"!==a.name||I||"path"!==o||i.value!==n||(i.value="");var O=i.value!==n,C=h(i,O),k=b(i,I,O,C);H(this,{id:e,type:a,location:o,array:I,squash:C,replace:k,isOptional:O,value:x,dynamic:n,config:i,toString:j})},u.prototype={$$new:function(){return a(this,H(new u,{$$parent:this}))},$$keys:function(){for(var e=[],t=[],n=this,a=r(u.prototype);n;)t.push(n),n=n.$$parent;return t.reverse(),B(t,function(t){B(r(t),function(t){s(e,t)===-1&&s(a,t)===-1&&e.push(t)})}),e},$$values:function(e){var t={},n=this;return B(n.$$keys(),function(a){t[a]=n[a].value(e&&e[a])}),t},$$equals:function(e,t){var n=!0,a=this;return B(a.$$keys(),function(i){var o=e&&e[i],r=t&&t[i];a[i].type.equals(o,r)||(n=!1)}),n},$$validates:function(e){var a,i,o,r,s,c=this.$$keys();for(a=0;a=0)throw new Error("State must have a valid name");if(C.hasOwnProperty(n))throw new Error("State '"+n+"' is already defined");var i=n.indexOf(".")!==-1?n.substring(0,n.lastIndexOf(".")):G(t.parent)?t.parent:U(t.parent)&&G(t.parent.name)?t.parent.name:"";if(i&&!C[i])return m(i,t.self);for(var o in _)F(_[o])&&(t[o]=_[o](t,_.$delegates[o]));return C[n]=t,!t[S]&&t.url&&e.when(t.url,["$match","$stateParams",function(e,n){O.$current.navigable==t&&l(e,n)||O.transitionTo(t,e,{inherit:!0,location:!1})}]),g(n),t}function b(e){return e.indexOf("*")>-1}function $(e){for(var t=e.split("."),n=O.$current.name.split("."),a=0,i=t.length;a=A;a--)r=g[a],r.self.onExit&&s.invoke(r.self.onExit,r.self,r.locals.globals),r.locals=null;for(a=A;a2?u.enter(e,null,n).then(a):u.enter(e,null,n,a)},leave:function(e,n){t.version.minor>2?u.leave(e).then(n):u.leave(e,n)}};if(l){var i=l&&l(n,e);return{enter:function(e,t,n){i.enter(e,null,t),n()},leave:function(e,t){i.leave(e),t()}}}return a()}var c=r(),l=c("$animator"),u=c("$animate"),p={restrict:"ECA",terminal:!0,priority:400,transclude:"element",compile:function(n,r,c){return function(n,r,l){function u(){if(d&&(d.remove(),d=null),f&&(f.$destroy(),f=null),m){var e=m.data("$uiViewAnim");b.leave(m,function(){e.$$animLeave.resolve(),d=null}),d=m,m=null}}function p(s){var p,d=S(n,l,r,i),$=d&&e.$current&&e.$current.locals[d];if(s||$!==h){p=n.$new(),h=e.$current.locals[d],p.$emit("$viewContentLoading",d);var y=c(p,function(e){var i=o.defer(),s=o.defer(),c={$animEnter:i.promise,$animLeave:s.promise,$$animLeave:s};e.data("$uiViewAnim",c),b.enter(e,r,function(){i.resolve(),f&&f.$emit("$viewContentAnimationEnded"),(t.isDefined(v)&&!v||n.$eval(v))&&a(e)}),u()});m=y,f=p,f.$emit("$viewContentLoaded",d),f.$eval(g)}}var d,m,f,h,g=l.onload||"",v=l.autoscroll,b=s(l,n);r.inheritedData("$uiView");n.$on("$stateChangeSuccess",function(){p(!1)}),p(!0)}}};return p}function k(e,n,a,i){return{restrict:"ECA",priority:-400,compile:function(o){var r=o.html();return o.empty?o.empty():o[0].innerHTML=null,function(o,s,c){var l=a.$current,u=S(o,c,s,i),p=l&&l.locals[u];if(!p)return s.html(r),void e(s.contents())(o);s.data("$uiView",{name:u,state:p.$$state}),s.html(p.$template?p.$template:r);var d=t.extend({},p);o[p.$$resolveAs]=d;var m=e(s.contents());if(p.$$controller){p.$scope=o,p.$element=s;var f=n(p.$$controller,p);p.$$controllerAs&&(o[p.$$controllerAs]=f,o[p.$$controllerAs][p.$$resolveAs]=d),F(f.$onInit)&&f.$onInit(),s.data("$ngControllerController",f),s.children().data("$ngControllerController",f)}m(o)}}}}function S(e,t,n,a){var i=a(t.uiView||t.name||"")(e),o=n.inheritedData("$uiView");return i.indexOf("@")>=0?i:i+"@"+(o?o.state.name:"")}function _(e,t){var n,a=e.match(/^\s*({[^}]*})\s*$/);if(a&&(e=t+"("+a[1]+")"),n=e.replace(/\n/g," ").match(/^([^(]+?)\s*(\((.*)\))?$/),!n||4!==n.length)throw new Error("Invalid state ref '"+e+"'");return{state:n[1],paramExpr:n[3]||null}}function D(e){var t=e.parent().inheritedData("$uiView");if(t&&t.state&&t.state.name)return t.state}function E(e){var t="[object SVGAnimatedString]"===Object.prototype.toString.call(e.prop("href")),n="FORM"===e[0].nodeName;return{attr:n?"action":t?"xlink:href":"href",isAnchor:"A"===e.prop("tagName").toUpperCase(),clickable:!n}}function A(e,t,n,a,i){return function(o){var r=o.which||o.button,s=i();if(!(r>1||o.ctrlKey||o.metaKey||o.shiftKey||e.attr("target"))){var c=n(function(){t.go(s.state,s.params,s.options)});o.preventDefault();var l=a.isAnchor&&!s.href?1:0;o.preventDefault=function(){l--<=0&&n.cancel(c)}}}}function R(e,t){return{relative:D(e)||t.$current,inherit:!0}}function M(e,n){return{restrict:"A",require:["?^uiSrefActive","?^uiSrefActiveEq"],link:function(a,i,o,r){var s,c=_(o.uiSref,e.current.name),l={state:c.state,href:null,params:null},u=E(i),p=r[1]||r[0],d=null;l.options=H(R(i,e),o.uiSrefOpts?a.$eval(o.uiSrefOpts):{});var m=function(n){n&&(l.params=t.copy(n)),l.href=e.href(c.state,l.params,l.options),d&&d(),p&&(d=p.$$addStateInfo(c.state,l.params)),null!==l.href&&o.$set(u.attr,l.href)};c.paramExpr&&(a.$watch(c.paramExpr,function(e){e!==l.params&&m(e)},!0),l.params=t.copy(a.$eval(c.paramExpr))),m(),u.clickable&&(s=A(i,e,n,u,function(){return l}),i[i.on?"on":"bind"]("click",s),a.$on("$destroy",function(){i[i.off?"off":"unbind"]("click",s)}))}}}function q(e,t){return{restrict:"A",require:["?^uiSrefActive","?^uiSrefActiveEq"],link:function(n,a,i,o){function r(t){d.state=t[0],d.params=t[1],d.options=t[2],d.href=e.href(d.state,d.params,d.options),m&&m(),l&&(m=l.$$addStateInfo(d.state,d.params)),d.href&&i.$set(c.attr,d.href)}var s,c=E(a),l=o[1]||o[0],u=[i.uiState,i.uiStateParams||null,i.uiStateOpts||null],p="["+u.map(function(e){return e||"null"}).join(", ")+"]",d={state:null,params:null,options:null,href:null},m=null;n.$watch(p,r,!0),r(n.$eval(p)),c.clickable&&(s=A(a,e,t,c,function(){return d}),a[a.on?"on":"bind"]("click",s),n.$on("$destroy",function(){a[a.off?"off":"unbind"]("click",s)}))}}}function P(e,t,n){return{restrict:"A",controller:["$scope","$element","$attrs","$timeout",function(t,a,i,o){function r(t,n,i){var o=e.get(t,D(a)),r=s(t,n),c={state:o||{name:t},params:n,hash:r};return g.push(c),v[r]=i,function(){var e=g.indexOf(c);e!==-1&&g.splice(e,1)}}function s(e,n){if(!G(e))throw new Error("state should be a string");return U(n)?e+K(n):(n=t.$eval(n),U(n)?e+K(n):e)}function c(){for(var t=0;t0)){var n=r(e,t,h);return c(),n}};t.$on("$stateChangeSuccess",c),l(),c()}]}}function T(e){var t=function(t,n){return e.is(t,n)};return t.$stateful=!0,t}function L(e){var t=function(t,n,a){return e.includes(t,n,a)};return t.$stateful=!0,t}var N=t.isDefined,F=t.isFunction,G=t.isString,U=t.isObject,V=t.isArray,B=t.forEach,H=t.extend,Q=t.copy,K=t.toJson;t.module("ui.router.util",["ng"]),t.module("ui.router.router",["ui.router.util"]),t.module("ui.router.state",["ui.router.router","ui.router.util"]),t.module("ui.router",["ui.router.state"]),t.module("ui.router.compat",["ui.router"]),g.$inject=["$q","$injector"],t.module("ui.router.util").service("$resolve",g),t.module("ui.router.util").provider("$templateFactory",v);var z;$.prototype.concat=function(e,t){var n={caseInsensitive:z.caseInsensitive(),strict:z.strictMode(),squash:z.defaultSquashPolicy()};return new $(this.sourcePath+e+this.sourceSearch,H(n,t),this)},$.prototype.toString=function(){return this.source},$.prototype.exec=function(e,t){function n(e){function t(e){return e.split("").reverse().join("")}function n(e){return e.replace(/\\-/g,"-")}var a=t(e).split(/-(?!\\)/),i=f(a,t);return f(i,n).reverse()}var a=this.regexp.exec(e);if(!a)return null;t=t||{};var i,o,r,s=this.parameters(),c=s.length,l=this.segments.length-1,u={};if(l!==a.length-1)throw new Error("Unbalanced capture group in route '"+this.source+"'");var p,d;for(i=0;i=0;o--)if(s=a[o],e.isString(s)||(s=j(s)),s&&u.indexOf(s)===-1&&(!I[s]||r.indexOf(s)!==-1)){var m=n.indexOf(s)===-1;if(p=f(s),m&&(n.push(s),$(t,p.requires,i)),p._runBlocks.length>0)for(l[s]=[];p._runBlocks.length>0;)l[s].push(p._runBlocks.shift());e.isDefined(l[s])&&(m||i.rerun)&&(d=d.concat(l[s])),x(t,p._invokeQueue,s,i.reconfig),x(t,p._configBlocks,s,i.reconfig),c(m?"ocLazyLoad.moduleLoaded":"ocLazyLoad.moduleReloaded",s),a.pop(),u.push(s)}var h=t.getInstanceInjector();e.forEach(d,function(e){h.invoke(e)})}}function y(t,n){function i(t,n){var a,i=!0;return n.length&&(a=o(t),e.forEach(n,function(e){i=i&&o(e)!==a})),i}function o(t){return e.isArray(t)?E(t.toString()):e.isObject(t)?E(D(t)):e.isDefined(t)&&null!==t?E(t.toString()):t}var r=t[2][0],s=t[1],l=!1;e.isUndefined(a[n])&&(a[n]={}),e.isUndefined(a[n][s])&&(a[n][s]={});var u=function(e,t){a[n][s].hasOwnProperty(e)||(a[n][s][e]=[]),i(t,a[n][s][e])&&(l=!0,a[n][s][e].push(t),c("ocLazyLoad.componentLoaded",[n,s,e]))};if(e.isString(r))u(r,t[2][1]);else{if(!e.isObject(r))return!1;e.forEach(r,function(t,n){e.isString(t)?u(t,r[1]):u(n,t)})}return l}function x(t,n,a,o){if(n){var r,s,c,l;for(r=0,s=n.length;r-1)return!1}}var I={},O={$controllerProvider:p,$compileProvider:h,$filterProvider:g,$provide:d,$injector:v,$animateProvider:b},C=!1,k=!1,S=[],_={};S.push=function(e){this.indexOf(e)===-1&&Array.prototype.push.apply(this,arguments)},this.config=function(t){e.isDefined(t.modules)&&(e.isArray(t.modules)?e.forEach(t.modules,function(e){I[e.name]=e}):I[t.modules.name]=t.modules),e.isDefined(t.debug)&&(C=t.debug),e.isDefined(t.events)&&(k=t.events)},this._init=function(a){if(0===o.length){var i=[a],r=["ng:app","ng-app","x-ng-app","data-ng-app"],c=/\sng[:\-]app(:\s*([\w\d_]+);?)?\s/,l=function(e){return e&&i.push(e)};e.forEach(r,function(t){r[t]=!0,l(document.getElementById(t)),t=t.replace(":","\\:"),"undefined"!=typeof a[0]&&a[0].querySelectorAll&&(e.forEach(a[0].querySelectorAll("."+t),l),e.forEach(a[0].querySelectorAll("."+t+"\\:"),l),e.forEach(a[0].querySelectorAll("["+t+"]"),l))}),e.forEach(i,function(t){if(0===o.length){var n=" "+a.className+" ",i=c.exec(n);i?o.push((i[2]||"").replace(/\s+/g,",")):e.forEach(t.attributes,function(e){0===o.length&&r[e.name]&&o.push(e.value)})}})}0===o.length&&(!t.jasmine&&!t.mocha||!e.isDefined(e.mock));var u=function p(t){if(n.indexOf(t)===-1){n.push(t);var a=e.module(t);x(null,a._invokeQueue,t),x(null,a._configBlocks,t),e.forEach(a.requires,p)}};e.forEach(o,function(e){u(e)}),o=[],s.pop()};var D=function(t){try{return JSON.stringify(t)}catch(n){var a=[];return JSON.stringify(t,function(t,n){if(e.isObject(n)&&null!==n){if(a.indexOf(n)!==-1)return;a.push(n)}return n})}},E=function(e){var t,n,a,i=0;if(0==e.length)return i;for(t=0,a=e.length;t-1;return t||(t=!!w(e)),t};if(e.isString(t)&&(t=[t]),e.isArray(t)){var i,o;for(i=0,o=t.length;i-1)&&(t.message='The module "'+D(e)+'" that you are trying to load does not exist. '+t.message),t}},moduleExists:w,_loadDependencies:function(t,n){var a,i,o,r=[],s=this;if(t=s._getModuleName(t),null===t)return p.when();try{a=s._getModule(t)}catch(c){return d(c)}return i=s.getRequires(a),e.forEach(i,function(a){if(e.isString(a)){var i=s.getModuleConfig(a);if(null===i)return void S.push(a);a=i,i.name=void 0}if(s.moduleExists(a.name))return o=a.files.filter(function(e){return s.getModuleConfig(a.name).files.indexOf(e)<0}),0!==o.length&&s._$log.warn('Module "',t,'" attempted to redefine configuration for dependency. "',a.name,'"\n Additional Files Loaded:',o),e.isDefined(s.filesLoader)?void r.push(s.filesLoader(a,n).then(function(){return s._loadDependencies(a)})):d(new Error("Error: New dependencies need to be loaded from external files ("+a.files+"), but no loader has been defined."));if(e.isArray(a)){var c=[];e.forEach(a,function(e){var t=s.getModuleConfig(e);null===t?c.push(e):t.files&&(c=c.concat(t.files))}),c.length>0&&(a={files:c})}else e.isObject(a)&&a.hasOwnProperty("name")&&a.name&&(s.setModuleConfig(a),S.push(a.name));if(e.isDefined(a.files)&&0!==a.files.length){if(!e.isDefined(s.filesLoader))return d(new Error('Error: the module "'+a.name+'" is defined in external files ('+a.files+"), but no loader has been defined."));r.push(s.filesLoader(a,n).then(function(){return s._loadDependencies(a)}))}}),p.all(r)},inject:function(t){var n=arguments.length<=1||void 0===arguments[1]?{}:arguments[1],a=!(arguments.length<=2||void 0===arguments[2])&&arguments[2],i=this,r=p.defer();if(e.isDefined(t)&&null!==t){if(e.isArray(t)){var s=[];return e.forEach(t,function(e){s.push(i.inject(e,n,a))}),p.all(s)}i._addToLoadList(i._getModuleName(t),!0,a)}if(o.length>0){var c=o.slice(),l=function d(e){S.push(e),_[e]=r.promise,i._loadDependencies(e,n).then(function(){try{u=[],$(O,S,n)}catch(e){return i._$log.error(e.message),void r.reject(e)}o.length>0?d(o.shift()):r.resolve(c)},function(e){r.reject(e)})};l(o.shift())}else{if(n&&n.name&&_[n.name])return _[n.name];r.resolve()}return r.promise},getRequires:function(t){var a=[];return e.forEach(t.requires,function(e){n.indexOf(e)===-1&&a.push(e)}),a},_invokeQueue:x,_registerInvokeList:y,_register:$,_addToLoadList:m,_unregister:function(t){e.isDefined(t)&&e.isArray(t)&&e.forEach(t,function(e){a[e]=void 0})}}}],this._init(e.element(t.document))}]);var d=e.bootstrap;e.bootstrap=function(t,p,f){return n=["ng","oc.lazyLoad"],a={},i=[],o=[],r=[],s=[],c=e.noop,l={},u=[],e.forEach(p.slice(),function(e){m(e,!0,!0)}),d(t,p,f)};var m=function(t,n,a){(s.length>0||n)&&e.isString(t)&&o.indexOf(t)===-1&&(o.push(t),a&&r.push(t))},f=e.module;e.module=function(e,t,n){return m(e,!1,!0),f(e,t,n)},"undefined"!=typeof module&&"undefined"!=typeof exports&&module.exports===exports&&(module.exports="oc.lazyLoad")}(angular,window),function(e){"use strict";e.module("oc.lazyLoad").directive("ocLazyLoad",["$ocLazyLoad","$compile","$animate","$parse","$timeout",function(t,n,a,i,o){return{restrict:"A",terminal:!0,priority:1e3,compile:function(o,r){var s=o[0].innerHTML;return o.html(""),function(o,r,c){var l=i(c.ocLazyLoad);o.$watch(function(){return l(o)||c.ocLazyLoad},function(i){e.isDefined(i)&&t.load(i).then(function(){a.enter(s,r),n(r.contents())(o)})},!0)}}}}])}(angular),function(e){"use strict";e.module("oc.lazyLoad").config(["$provide",function(t){t.decorator("$ocLazyLoad",["$delegate","$q","$window","$interval",function(t,n,a,i){var o=!1,r=!1,s=a.document.getElementsByTagName("head")[0]||a.document.getElementsByTagName("body")[0];return t.buildElement=function(c,l,u){var p,d,m=n.defer(),f=t._getFilesCache(),h=function(e){var t=(new Date).getTime();return e.indexOf("?")>=0?"&"===e.substring(0,e.length-1)?e+"_dc="+t:e+"&_dc="+t:e+"?_dc="+t};switch(e.isUndefined(f.get(l))&&f.put(l,m.promise),c){case"css":p=a.document.createElement("link"),p.type="text/css",p.rel="stylesheet",p.href=u.cache===!1?h(l):l;break;case"js":p=a.document.createElement("script"),p.src=u.cache===!1?h(l):l;break;default:f.remove(l),m.reject(new Error('Requested type "'+c+'" is not known. Could not inject "'+l+'"'))}p.onload=p.onreadystatechange=function(e){p.readyState&&!/^c|loade/.test(p.readyState)||d||(p.onload=p.onreadystatechange=null,d=1,t._broadcast("ocLazyLoad.fileLoaded",l), -m.resolve(p))},p.onerror=function(){f.remove(l),m.reject(new Error("Unable to load "+l))},p.async=u.serie?0:1;var g=s.lastChild;if(u.insertBefore){var v=e.element(e.isDefined(window.jQuery)?u.insertBefore:document.querySelector(u.insertBefore));v&&v.length>0&&(g=v[0])}if(g.parentNode.insertBefore(p,g),"css"==c){if(!o){var b=a.navigator.userAgent.toLowerCase();if(b.indexOf("phantomjs/1.9")>-1)r=!0;else if(/iP(hone|od|ad)/.test(a.navigator.platform)){var $=a.navigator.appVersion.match(/OS (\d+)_(\d+)_?(\d+)?/),y=parseFloat([parseInt($[1],10),parseInt($[2],10),parseInt($[3]||0,10)].join("."));r=y<6}else if(b.indexOf("android")>-1){var x=parseFloat(b.slice(b.indexOf("android")+8));r=x<4.4}else if(b.indexOf("safari")>-1){var j=b.match(/version\/([\.\d]+)/i);r=j&&j[1]&&parseFloat(j[1])<6}}if(r)var w=1e3,I=i(function(){try{p.sheet.cssRules,i.cancel(I),p.onload()}catch(e){--w<=0&&p.onerror()}},20)}return m.promise},t}])}])}(angular),function(e){"use strict";e.module("oc.lazyLoad").config(["$provide",function(t){t.decorator("$ocLazyLoad",["$delegate","$q",function(t,n){return t.filesLoader=function(a){var i=arguments.length<=1||void 0===arguments[1]?{}:arguments[1],o=[],r=[],s=[],c=[],l=null,u=t._getFilesCache();t.toggleWatch(!0),e.extend(i,a);var p=function(n){var a,p=null;if(e.isObject(n)&&(p=n.type,n=n.path),l=u.get(n),e.isUndefined(l)||i.cache===!1){if(null!==(a=/^(css|less|html|htm|js)?(?=!)/.exec(n))&&(p=a[1],n=n.substr(a[1].length+1,n.length)),!p)if(null!==(a=/[.](css|less|html|htm|js)?((\?|#).*)?$/.exec(n)))p=a[1];else{if(t.jsLoader.hasOwnProperty("ocLazyLoadLoader")||!t.jsLoader.hasOwnProperty("requirejs"))return void t._$log.error("File type could not be determined. "+n);p="js"}"css"!==p&&"less"!==p||o.indexOf(n)!==-1?"html"!==p&&"htm"!==p||r.indexOf(n)!==-1?"js"===p||s.indexOf(n)===-1?s.push(n):t._$log.error("File type is not valid. "+n):r.push(n):o.push(n)}else l&&c.push(l)};if(i.serie?p(i.files.shift()):e.forEach(i.files,function(e){p(e)}),o.length>0){var d=n.defer();t.cssLoader(o,function(n){e.isDefined(n)&&t.cssLoader.hasOwnProperty("ocLazyLoadLoader")?(t._$log.error(n),d.reject(n)):d.resolve()},i),c.push(d.promise)}if(r.length>0){var m=n.defer();t.templatesLoader(r,function(n){e.isDefined(n)&&t.templatesLoader.hasOwnProperty("ocLazyLoadLoader")?(t._$log.error(n),m.reject(n)):m.resolve()},i),c.push(m.promise)}if(s.length>0){var f=n.defer();t.jsLoader(s,function(n){e.isDefined(n)&&(t.jsLoader.hasOwnProperty("ocLazyLoadLoader")||t.jsLoader.hasOwnProperty("requirejs"))?(t._$log.error(n),f.reject(n)):f.resolve()},i),c.push(f.promise)}if(0===c.length){var h=n.defer(),g="Error: no file to load has been found, if you're trying to load an existing module you should use the 'inject' method instead of 'load'.";return t._$log.error(g),h.reject(g),h.promise}return i.serie&&i.files.length>0?n.all(c).then(function(){return t.filesLoader(a,i)}):n.all(c)["finally"](function(e){return t.toggleWatch(!1),e})},t.load=function(a){var i,o=arguments.length<=1||void 0===arguments[1]?{}:arguments[1],r=this,s=null,c=[],l=n.defer(),u=e.copy(a),p=e.copy(o);if(e.isArray(u))return e.forEach(u,function(e){c.push(r.load(e,p))}),n.all(c).then(function(e){l.resolve(e)},function(e){l.reject(e)}),l.promise;if(e.isString(u)?(s=r.getModuleConfig(u),s||(s={files:[u]})):e.isObject(u)&&(s=e.isDefined(u.path)&&e.isDefined(u.type)?{files:[u]}:r.setModuleConfig(u)),null===s){var d=r._getModuleName(u);return i='Module "'+(d||"unknown")+'" is not configured, cannot load.',t._$log.error(i),l.reject(new Error(i)),l.promise}e.isDefined(s.template)&&(e.isUndefined(s.files)&&(s.files=[]),e.isString(s.template)?s.files.push(s.template):e.isArray(s.template)&&s.files.concat(s.template));var m=e.extend({},p,s);return e.isUndefined(s.files)&&e.isDefined(s.name)&&t.moduleExists(s.name)?t.inject(s.name,m,!0):(t.filesLoader(s,m).then(function(){t.inject(null,m).then(function(e){l.resolve(e)},function(e){l.reject(e)})},function(e){l.reject(e)}),l.promise)},t}])}])}(angular),function(e){"use strict";e.module("oc.lazyLoad").config(["$provide",function(t){t.decorator("$ocLazyLoad",["$delegate","$q",function(t,n){return t.cssLoader=function(a,i,o){var r=[];e.forEach(a,function(e){r.push(t.buildElement("css",e,o))}),n.all(r).then(function(){i()},function(e){i(e)})},t.cssLoader.ocLazyLoadLoader=!0,t}])}])}(angular),function(e){"use strict";e.module("oc.lazyLoad").config(["$provide",function(t){t.decorator("$ocLazyLoad",["$delegate","$q",function(t,n){return t.jsLoader=function(a,i,o){var r=[];e.forEach(a,function(e){r.push(t.buildElement("js",e,o))}),n.all(r).then(function(){i()},function(e){i(e)})},t.jsLoader.ocLazyLoadLoader=!0,t}])}])}(angular),function(e){"use strict";e.module("oc.lazyLoad").config(["$provide",function(t){t.decorator("$ocLazyLoad",["$delegate","$templateCache","$q","$http",function(t,n,a,i){return t.templatesLoader=function(o,r,s){var c=[],l=t._getFilesCache();return e.forEach(o,function(t){var o=a.defer();c.push(o.promise),i.get(t,s).then(function(a){var i=a.data;e.isString(i)&&i.length>0&&e.forEach(e.element(i),function(e){"SCRIPT"===e.nodeName&&"text/ng-template"===e.type&&n.put(e.id,e.innerHTML)}),e.isUndefined(l.get(t))&&l.put(t,!0),o.resolve()})["catch"](function(e){o.reject(new Error('Unable to load template file "'+t+'": '+e.data))})}),a.all(c).then(function(){r()},function(e){r(e)})},t.templatesLoader.ocLazyLoadLoader=!0,t}])}])}(angular),Array.prototype.indexOf||(Array.prototype.indexOf=function(e,t){var n;if(null==this)throw new TypeError('"this" is null or not defined');var a=Object(this),i=a.length>>>0;if(0===i)return-1;var o=+t||0;if(Math.abs(o)===1/0&&(o=0),o>=i)return-1;for(n=Math.max(o>=0?o:i-Math.abs(o),0);n>>32-t},d=function(e,t){var n,a,i,o,r;return i=2147483648&e,o=2147483648&t,n=1073741824&e,a=1073741824&t,r=(1073741823&e)+(1073741823&t),n&a?2147483648^r^i^o:n|a?1073741824&r?3221225472^r^i^o:1073741824^r^i^o:r^i^o},m=function(e,t,n){return e&t|~e&n},f=function(e,t,n){return e&n|t&~n},h=function(e,t,n){return e^t^n},g=function(e,t,n){return t^(e|~n)},v=function(e,t,n,a,i,o,r){return e=d(e,d(d(m(t,n,a),i),r)),d(p(e,o),t)},b=function(e,t,n,a,i,o,r){return e=d(e,d(d(f(t,n,a),i),r)),d(p(e,o),t)},$=function(e,t,n,a,i,o,r){return e=d(e,d(d(h(t,n,a),i),r)),d(p(e,o),t)},y=function(e,t,n,a,i,o,r){return e=d(e,d(d(g(t,n,a),i),r)),d(p(e,o),t)},x=function(e){for(var t,n=e.length,a=n+8,i=(a-a%64)/64,o=16*(i+1),r=new Array(o-1),s=0,c=0;n>c;)t=(c-c%4)/4,s=c%4*8,r[t]=r[t]|e.charCodeAt(c)<>>29,r},j=function(e){var t,n,a="",i="";for(n=0;3>=n;n++)t=e>>>8*n&255,i="0"+t.toString(16),a+=i.substr(i.length-2,2);return a},w=[],I=7,O=12,C=17,k=22,S=5,_=9,D=14,E=20,A=4,R=11,M=16,q=23,P=6,T=10,L=15,N=21;for(w=x(e),s=1732584193,c=4023233417,l=2562383102,u=271733878,t=w.length,n=0;t>n;n+=16)a=s,i=c,o=l,r=u,s=v(s,c,l,u,w[n+0],I,3614090360),u=v(u,s,c,l,w[n+1],O,3905402710),l=v(l,u,s,c,w[n+2],C,606105819),c=v(c,l,u,s,w[n+3],k,3250441966),s=v(s,c,l,u,w[n+4],I,4118548399),u=v(u,s,c,l,w[n+5],O,1200080426),l=v(l,u,s,c,w[n+6],C,2821735955),c=v(c,l,u,s,w[n+7],k,4249261313),s=v(s,c,l,u,w[n+8],I,1770035416),u=v(u,s,c,l,w[n+9],O,2336552879),l=v(l,u,s,c,w[n+10],C,4294925233),c=v(c,l,u,s,w[n+11],k,2304563134),s=v(s,c,l,u,w[n+12],I,1804603682),u=v(u,s,c,l,w[n+13],O,4254626195),l=v(l,u,s,c,w[n+14],C,2792965006),c=v(c,l,u,s,w[n+15],k,1236535329),s=b(s,c,l,u,w[n+1],S,4129170786),u=b(u,s,c,l,w[n+6],_,3225465664),l=b(l,u,s,c,w[n+11],D,643717713),c=b(c,l,u,s,w[n+0],E,3921069994),s=b(s,c,l,u,w[n+5],S,3593408605),u=b(u,s,c,l,w[n+10],_,38016083),l=b(l,u,s,c,w[n+15],D,3634488961),c=b(c,l,u,s,w[n+4],E,3889429448),s=b(s,c,l,u,w[n+9],S,568446438),u=b(u,s,c,l,w[n+14],_,3275163606),l=b(l,u,s,c,w[n+3],D,4107603335),c=b(c,l,u,s,w[n+8],E,1163531501),s=b(s,c,l,u,w[n+13],S,2850285829),u=b(u,s,c,l,w[n+2],_,4243563512),l=b(l,u,s,c,w[n+7],D,1735328473),c=b(c,l,u,s,w[n+12],E,2368359562),s=$(s,c,l,u,w[n+5],A,4294588738),u=$(u,s,c,l,w[n+8],R,2272392833),l=$(l,u,s,c,w[n+11],M,1839030562),c=$(c,l,u,s,w[n+14],q,4259657740),s=$(s,c,l,u,w[n+1],A,2763975236),u=$(u,s,c,l,w[n+4],R,1272893353),l=$(l,u,s,c,w[n+7],M,4139469664),c=$(c,l,u,s,w[n+10],q,3200236656),s=$(s,c,l,u,w[n+13],A,681279174),u=$(u,s,c,l,w[n+0],R,3936430074),l=$(l,u,s,c,w[n+3],M,3572445317),c=$(c,l,u,s,w[n+6],q,76029189),s=$(s,c,l,u,w[n+9],A,3654602809),u=$(u,s,c,l,w[n+12],R,3873151461),l=$(l,u,s,c,w[n+15],M,530742520),c=$(c,l,u,s,w[n+2],q,3299628645),s=y(s,c,l,u,w[n+0],P,4096336452),u=y(u,s,c,l,w[n+7],T,1126891415),l=y(l,u,s,c,w[n+14],L,2878612391),c=y(c,l,u,s,w[n+5],N,4237533241),s=y(s,c,l,u,w[n+12],P,1700485571),u=y(u,s,c,l,w[n+3],T,2399980690),l=y(l,u,s,c,w[n+10],L,4293915773),c=y(c,l,u,s,w[n+1],N,2240044497),s=y(s,c,l,u,w[n+8],P,1873313359),u=y(u,s,c,l,w[n+15],T,4264355552),l=y(l,u,s,c,w[n+6],L,2734768916),c=y(c,l,u,s,w[n+13],N,1309151649),s=y(s,c,l,u,w[n+4],P,4149444226),u=y(u,s,c,l,w[n+11],T,3174756917),l=y(l,u,s,c,w[n+2],L,718787259),c=y(c,l,u,s,w[n+9],N,3951481745),s=d(s,a),c=d(c,i),l=d(l,o),u=d(u,r);var F=j(s)+j(c)+j(l)+j(u);return F.toLowerCase()}};return e}])}(angular),function(){"use strict";function e(e,t,n,a,i,o,r,s,c,l,u){var p={fun:{init:null,param:null}};p.fun.param=function(e){var t,n,a,i,o,r,s,c="";for(t in e.object)if(n=e.object[t],n instanceof Array)for(s=0;s扩展插件处尚未开启该插件停用启用
'},,{key:"更新时间",html:"{{item.updateTime}}"}],operate:{funArr:[{key:"停用",fun:s.operate,itemExpression:'ng-if="item.pluginStatus===1"',params:{status:"Stop"}},{key:"启用",fun:s.operate,itemExpression:'ng-if="item.pluginStatus!==1" ng-disabled="item.pluginStatus===-1"',params:{status:"Start"}},{key:"修改",fun:s.edit,params:{status:"edit"}},{key:"删除",fun:s["delete"],params:'"single",arg'}],"class":"w_200"}},setting:{unhover:!0,batch:!0,defaultFoot:!0}},r.component.menuObject={list:[{type:"btn",authority:"edit","class":"pull-left",btnList:[{name:"添加插件",icon:"jiahao","class":"eo_theme_btn_success block-btn",fun:{"default":s.edit,params:{status:"add"}}}]},{type:"search","class":"pull-right",keyword:r.ajaxRequest.keyword,fun:s.search,placeholder:"输入插件名称或描述"},{type:"fun-list","class":"fun-list-li pull-right mr15",name:"筛选",icon:"shaixuan",activePoint:"condition",funList:[{name:"无",value:0,active:0,fun:{"default":s.conditionFilter}},{name:"启用",value:2,active:2,fun:{"default":s.conditionFilter}},{name:"停用",value:1,active:1,fun:{"default":s.conditionFilter}}]}],batchList:[{type:"btn","class":"pull-left",btnList:[{name:"删除",fun:{"default":s["delete"],params:'"batch"'}},{name:"启用",fun:{"default":s.batchOperate,params:{status:"Start"}}},{name:"停用",fun:{"default":s.batchOperate,params:{status:"Stop"}}}]}],setting:{batch:!0,batchInitFun:s.resetBatchInfo,titleAuthority:"showTitle",title:"策略插件"},active:{condition:0}}}}angular.module("eolinker").component("gpeditInsidePluginGpedit",{templateUrl:"app/ui/content/gpedit/inside/content/plugin/gpedit/index.html",controller:e}),e.$inject=["$scope","GatewayResource","$state","$rootScope","CODE","Authority_CommonService"]}(),function(){"use strict";function e(e,t,n,a,i,o,r){var s=this;s.data={batch:{},pagination:{maxSize:10,pageSize:50,page:0,msgCount:0}},s.fun={},s.ajaxRequest={strategyID:a.params.strategyID,keyword:window.sessionStorage.getItem("COMMON_SEARCH_TIP")},s.ajaxResponse={query:null,balanceList:null},s.component={listDefaultCommonObject:null,menuObject:{}},s.service={authority:r};var c={},l={};c.batchBtnClickFun=function(){if(s.data.pagination.page!==Math.ceil(s.data.pagination.msgCount/s.data.pagination.pageSize)){var e={strategyID:s.ajaxRequest.strategyID,condition:s.component.menuObject.active.condition},t=null;s.ajaxRequest.keyword&&(e.keyword=s.ajaxRequest.keyword),t=n.StrategyApi.IDQuery(e).$promise,t.then(function(e){s.data.allQueryID=e.apiIDList||[]})}},c.scrollLoading=function(){var e={hasItem:s.ajaxResponse.query&&0!==s.ajaxResponse.query.length,hasNextPage:s.data.pagination.pages.data.pagination.page*s.data.pagination.pageSize&&c.getQuery("preload",s.data.pagination.page*s.data.pagination.pageSize,1),s.data.pagination.msgCount--,i.InfoModal(r.title+"成功","success")}}})})},c.getDefaultBalance=function(){var e=n.Balance.SimpleQuery().$promise;return e.then(function(e){s.ajaxResponse.balanceList=e.balanceNames}),e},c.setGpeditBalance=function(e){var t=function(){var t={itemArr:[]};switch(e.status){case"batch":t.apiIDs=s.data.batch.query;break;case"single":t.itemArr=[{type:"input",title:"[原]API负载后端",value:e.item.target,disabled:!0}],t.apiIDs=[e.item.apiID]}var a={title:"设置策略负载",resource:n.StrategyApi.ChangeTarget,textArray:t.itemArr.concat([{type:"html",title:"[新]策略负载后端",key:"target",value:e.item.rewriteTarget,query:s.ajaxResponse.balanceList,autoCompleteObj:{pattern:"[\\w\\._\\/\\-\\:]+"},html:' '}]),request:{strategyID:s.ajaxRequest.strategyID,apiIDs:JSON.stringify(t.apiIDs)}};i.MixInputModal(a,function(t){t&&("batch"===e.status?(c.resetBatchInfo(),c.getQuery("reset")):s.ajaxResponse.query[e.$index].rewriteTarget=t.target,i.InfoModal("设置策略负载成功","success"))})};if(s.ajaxResponse.balanceList)t();else{var a=c.getDefaultBalance();a["finally"](function(){t()})}},c.resetBatchInfo=function(){s.data.batch.isOperating=!1,s.data.batch.selectAll=!1,s.data.batch.query=[],s.data.batch.indexAddress={}},c.setGpeditPlugin=function(e){a.go("home.gpedit.inside.api.plugin",{apiID:e.item.apiID})},s.$onInit=function(){e.$emit("$WindowTitleSet",{list:["API接口","策略"]}),s.component.listDefaultCommonObject={item:{primaryKey:"apiID","default":[{key:"APIs",html:"{{item.apiName}}",draggableCacheMark:"name"},{key:"请求方式",html:"{{item.requestMethod}}",draggableCacheMark:"requestMethod"},{key:"请求URL",html:"{{item.requestURL}}",draggableCacheMark:"url"},{key:"转发方式",html:"{{item.isFollow?item.requestMethod:item.targetMethod}}",draggableCacheMark:"targetMethod"},_defineProperty({key:"转发URL",html:"{{item.targetURL}}",draggableCacheMark:"targetURL"},"draggableCacheMark","targetURL"),{key:'API负载后端',html:"{{item.target}}",draggableCacheMark:"target"},{key:'策略负载后端',html:"{{item.rewriteTarget}}",draggableCacheMark:"rewriteTarget"},{key:"更新时间",html:"{{item.updateTime}}",draggableCacheMark:"updateTime"}],operate:{funArr:[{key:"设置插件",show:!1,fun:c.setGpeditPlugin},{key:"设置策略负载",show:!1,fun:c.setGpeditBalance,params:{status:"single"}},{key:"删除",show:!1,fun:c["delete"],params:'"single",arg'}],"class":"w_200"}},setting:{draggable:!0,dragCacheVar:"GEPDIT_API_LIST_DRAG_VAR",dragCacheObj:{name:"250px",url:"250px",target:"150px",targetURL:"150px",updateTime:"150px",requestMethod:"150px",targetMethod:"150px",rewriteTarget:"150px"},page:!0,scroll:!0,scrollRemainRatio:7,isFixedHeight:!0,unhover:!0,batch:!0},baseFun:{scrollLoading:c.scrollLoading}},s.component.menuObject={list:[{type:"btn",authority:"edit","class":"pull-left",btnList:[{name:"绑定接口",icon:"jiahao","class":"eo_theme_btn_success block-btn",fun:{"default":c.edit,params:{status:"add"}}}]},{type:"search","class":"pull-right",keyword:s.ajaxRequest.keyword,fun:c.search,placeholder:"输入搜索内容"}],batchList:[{type:"btn","class":"pull-left",btnList:[{name:"删除",fun:{"default":c["delete"],params:'"batch"'}},{name:"设置策略负载",fun:{"default":c.setGpeditBalance,params:{status:"batch"}}}]}],setting:{batch:!0,batchInitFun:c.resetBatchInfo,titleAuthority:"showTitle",title:"API列表"},active:{condition:0},baseFun:{batchDefault:c.batchBtnClickFun}}}}angular.module("eolinker").component("gpeditInsideApiDefault",{templateUrl:"app/ui/content/gpedit/inside/content/api/_default/index.html",controller:e}),e.$inject=["$scope","CommonResource","GatewayResource","$state","$rootScope","CODE","Authority_CommonService"]}(),function(){"use strict";function e(e,t,n,a,i){var o=this;o.data={batch:{isOperating:!0,query:[],indexAddress:{}},pagination:{maxSize:10,pageSize:50,page:0,msgCount:0}},o.fun={},o.ajaxResponse={},o.component={groupCommonObject:{firstGroup:{},secondGroup:{}}};var r={strategyID:t.params.strategyID,keyword:window.sessionStorage.getItem("COMMON_SEARCH_TIP") -},s={projectObject:{},positionObject:{strategyID:t.params.strategyID,projectID:null,groupID:-1}},c={},l={groupCommon:i},u={project:null,apiGroup:null};c.scrollLoading=function(){var e={hasItem:o.ajaxResponse.query&&0!==o.ajaxResponse.query.length,hasNextPage:o.data.pagination.page0){var t=l.groupCommon.sort.init(o.ajaxResponse.firstGroupList[0]);o.ajaxResponse.seondGroupList=t.groupList,u.secondGroup=t.groupInfo,o.component.groupCommonObject.firstGroup.mainObject.baseInfo.resetFlag=!o.component.groupCommonObject.firstGroup.mainObject.baseInfo.resetFlag,o.component.groupCommonObject.secondGroup.mainObject.baseInfo.resetFlag=!o.component.groupCommonObject.secondGroup.mainObject.baseInfo.resetFlag,s.positionObject.projectID=o.ajaxResponse.firstGroupList[0].projectID,c.getApiList("reset")}else n.InfoModal("目前暂无可以被引用的API项目","error"),o.fun.back()}),n.global.ajax.ProjectQuery_Common.$promise},c.search=function(e){r.keyword=e.item.keyword,window.sessionStorage.setItem("COMMON_SEARCH_TIP",e.item.keyword),c.getApiList("reset")},c.selectAll=function(e){switch(e){case"selectAll":o.data.allQueryID.map(function(e,t){o.data.batch.indexAddress[e]||(o.data.batch.query.push(e),o.data.batch.indexAddress[e]=t+1)}),o.data.batch.selectAll=!0;break;case"selectView":o.ajaxResponse.query.map(function(e,t){o.data.batch.indexAddress[e.apiID]||(o.data.batch.query.push(e.apiID),o.data.batch.indexAddress[e.apiID]=t+1)});for(var t=o.ajaxResponse.query.length,n=t;n扩展插件处尚未开启该插件停用启用
'},{key:"更新时间",html:"{{item.updateTime}}"}],operate:{funArr:[{key:"停用",fun:s.operate,itemExpression:'ng-if="item.pluginStatus===1"',params:{status:"Stop"}},{key:"启用",fun:s.operate,itemExpression:'ng-if="item.pluginStatus!==1" ng-disabled="item.pluginStatus===-1"',params:{status:"Start"}},{key:"修改",fun:s.edit,params:{status:"edit"}},{key:"删除",fun:s["delete"],params:'"single",arg'}],"class":"w_200"}},setting:{unhover:!0,batch:!0,defaultFoot:!0}},r.component.menuDefaultObject={list:[{type:"btn","class":"btn-group-li",btnList:[{name:"返回API列表",icon:"chexiao",fun:{"default":function(){n.go("home.gpedit.inside.api.default")}}}]},{type:"customized-html",html:'

{{$ctrl.otherObject.requestURL}}

{{$ctrl.otherObject.apiName}}

'}],setting:{"class":"common-menu-fixed-seperate common-menu-lg"}},r.component.menuObject={list:[{type:"btn",authority:"edit","class":"pull-left",btnList:[{name:"添加插件",icon:"jiahao","class":"eo_theme_btn_success block-btn",fun:{"default":s.edit,params:{status:"add"}}}]},{type:"search","class":"pull-right",keyword:r.ajaxRequest.keyword,fun:s.search,placeholder:"输入插件名称或描述"},{type:"fun-list","class":"fun-list-li pull-right mr15",name:"筛选",icon:"shaixuan",activePoint:"condition",funList:[{name:"无",value:0,active:0,fun:{"default":s.conditionFilter}},{name:"启用",value:2,active:2,fun:{"default":s.conditionFilter}},{name:"停用",value:1,active:1,fun:{"default":s.conditionFilter}}]}],batchList:[{type:"btn","class":"pull-left",btnList:[{name:"删除",fun:{"default":s["delete"],params:'"batch"'}},{name:"启用",fun:{"default":s.batchOperate,params:{status:"Start"}}},{name:"停用",fun:{"default":s.batchOperate,params:{status:"Stop"}}}]}],setting:{batch:!0,batchInitFun:s.resetBatchInfo,titleAuthority:"showTitle",title:"策略插件"},active:{condition:0}}}}angular.module("eolinker").component("gpeditInsideApiPlugin",{templateUrl:"app/ui/content/gpedit/inside/content/apiPlugin/index.html",controller:e}),e.$inject=["GatewayResource","$scope","$state","$rootScope","CODE","Authority_CommonService"]}(),function(){"use strict";function e(e,t,n,a,i,o,r,s){var c=this;c.data={batch:{},pagination:{maxSize:10,pageSize:50,page:0,msgCount:0}},c.fun={},c.ajaxRequest={projectID:a.params.projectID,groupID:a.params.groupID||-1,keyword:window.sessionStorage.getItem("COMMON_SEARCH_TIP")},c.ajaxResponse={query:null},c.service={authority:s},c.component={listRequireObject:{},menuObject:{}};var l={},u={};c.fun.init=function(){return l.getQuery("reset")},l.batchBtnClickFun=function(){if(c.data.pagination.page!==Math.ceil(c.data.pagination.msgCount/c.data.pagination.pageSize)){var e={projectID:c.ajaxRequest.projectID,groupID:c.ajaxRequest.groupID,condition:c.component.menuObject.active.condition},t=null;c.ajaxRequest.keyword&&(e.keyword=c.ajaxRequest.keyword),t=n.Api.IDQuery(e).$promise,t.then(function(e){c.data.allQueryID=e.apiIDList||[]})}},l.getQuery=function(e,t,a){var o={projectID:c.ajaxRequest.projectID,groupID:c.ajaxRequest.groupID,condition:c.component.menuObject.active.condition,pageSize:a||c.data.pagination.pageSize},r=[];switch(e){case"reset":o.page=1;break;default:r=c.ajaxResponse.query,o.page=t}return c.ajaxRequest.keyword&&(o.keyword=c.ajaxRequest.keyword),i.global.ajax.Query_Api=n.Api.Query(o),i.global.ajax.Query_Api.$promise.then(function(t){"reset"===e&&(document.getElementsByClassName("tbody_container_ldcc")[0].scrollTop=0),u.isQuerying=!1,c.ajaxResponse.query=r.concat(t.apiList||[]),c.data.pagination.msgCount=t.page.totalNum||0,a||(c.data.pagination.page=o.page)}),i.global.ajax.Query_Api.$promise},l.scrollLoading=function(){var e={hasItem:c.ajaxResponse.query&&0!==c.ajaxResponse.query.length,hasNextPage:c.data.pagination.pagec.data.pagination.page*c.data.pagination.pageSize&&l.getQuery("preload",c.data.pagination.page*c.data.pagination.pageSize,1),c.data.pagination.msgCount--}i.InfoModal("API删除成功","success")}})})},l.batchMoveGroup=function(){var e={modal:{list:[{groupID:0,groupName:"未分组"}].concat(angular.copy(r.get())),title:"批量编辑接口分组",current:c.ajaxRequest},request:{projectID:c.ajaxRequest.projectID,apiIDList:c.data.batch.query.join(","),groupID:""}};i.SelectVisualGroupModal(e.modal,function(t){t&&(e.request.groupID=t.groupID,n.Api.ChangeGroup(e.request).$promise.then(function(e){switch(e.statusCode){case o.COMMON.SUCCESS:l.resetBatchInfo(),l.getQuery("reset"),i.InfoModal("Api批量编辑分组成功","success")}}))})},l.copy=function(e){var t=function(t){var n=angular.copy(e.item),a={apiName:"复制-"+n.apiName,requestURL:n.requestURL,balanceName:n.target,targetURL:n.targetURL,targetMethod:n.isFollow?"-1":n.targetMethod.toLowerCase(),protocol:n.protocol||"http",apiID:n.apiID,groupID:n.groupID||"0",projectID:c.ajaxRequest.projectID,balanceList:t,requestMethodList:[{key:"POST",value:"post"},{key:"GET",value:"get"},{key:"PUT",value:"put"},{key:"DELETE",value:"delete"},{key:"HEAD",value:"head"},{key:"OPTIONS",value:"options"},{key:"PATCH",value:"patch"}]},o=n.requestMethod.split(",");for(var r in o){var s=o[r];switch(s.toLowerCase()){case"post":a.requestMethodList[0].checkbox=!0;break;case"get":a.requestMethodList[1].checkbox=!0;break;case"put":a.requestMethodList[2].checkbox=!0;break;case"delete":a.requestMethodList[3].checkbox=!0;break;case"head":a.requestMethodList[4].checkbox=!0;break;case"options":a.requestMethodList[5].checkbox=!0;break;case"batch":a.requestMethodList[6].checkbox=!0}}i.Gateway_CopyApiModal(a,function(e){e&&(i.InfoModal("Api复制成功","success"),l.getQuery("reset"))})};if(c.ajaxResponse.balanceList)t(c.ajaxResponse.balanceList);else{var n=l.getDefaultBalance();n["finally"](function(){t(c.ajaxResponse.balanceList)})}},l.resetBatchInfo=function(){c.data.batch.isOperating=!1,c.data.batch.selectAll=!1,c.data.batch.query=[],c.data.batch.indexAddress={}},c.$onInit=function(){e.$emit("$WindowTitleSet",{list:["APIs列表"]}),c.component.listDefaultCommonObject={item:{primaryKey:"apiID","default":[{key:"APIs",html:"{{item.apiName}}",draggableCacheMark:"name"},{key:"请求方式",html:"{{item.requestMethod}}",draggableCacheMark:"requestMethod"},{key:"请求URL",html:"{{item.requestURL}}",draggableCacheMark:"url"},{key:"负载后端",html:"{{item.target}}",draggableCacheMark:"target"},{key:"转发方式",html:"{{item.isFollow?item.requestMethod:item.targetMethod}}",draggableCacheMark:"targetMethod"},{key:"转发URL",html:"{{item.targetURL}}",draggableCacheMark:"targetURL"},{key:"分组",html:"{{item.groupName}}",draggableCacheMark:"group"},{key:"更新时间",html:"{{item.updateTime}}",draggableCacheMark:"updateTime"}],operate:{funArr:[{key:"复制",fun:l.copy},{key:"修改",fun:l.edit,params:{status:"edit"}},{key:"删除",fun:l["delete"],params:'"single",arg'}],"class":"w_150"}},setting:{page:!0,scroll:!0,scrollRemainRatio:7,isFixedHeight:!0,draggable:!0,dragCacheVar:"AMS_API_LIST_DRAG_VAR",dragCacheObj:{name:"250px",url:"250px",target:"150px",targetURL:"150px",group:"150px",manager:"150px",updater:"150px",updateTime:"150px",requestMethod:"150px",targetMethod:"150px"},batch:!0,batchInitFun:l.resetBatchInfo,titleAuthority:"showTitle",unhover:!0,warning:"尚未新建任何接口"},baseFun:{scrollLoading:l.scrollLoading}},c.component.menuObject={list:[{type:"more-btn",authority:"edit",icon:"jiahao",name:"新建","class":"pull-left",btnClass:"eo_theme_btn_success",btnList:[{name:"新建接口",fun:{"default":l.edit,params:{status:"add"}}},{name:"导入接口",fun:{"default":l["import"]}}]},{type:"search","class":"pull-right",keyword:c.ajaxRequest.keyword,fun:l.search,placeholder:"输入搜索内容"}],batchList:[{type:"btn","class":"btn-group-li pull-left",btnList:[{name:"修改分组",fun:{"default":l.batchMoveGroup}},{name:"批量删除",fun:{"default":l["delete"],params:'"batch",arg'}}]}],setting:{batch:!0,batchInitFun:l.resetBatchInfo,titleAuthority:"showTitle",title:"接口列表"},active:{condition:0},baseFun:{batchDefault:l.batchBtnClickFun}}}}angular.module("eolinker").component("apiDefault",{templateUrl:"app/ui/content/project/api/_default/index.html",controller:e}),e.$inject=["$scope","CommonResource","GatewayResource","$state","$rootScope","CODE","GroupService","Authority_CommonService"]}(),function(){"use strict";function e(e,t,n,a,i,o){var r=this;r.data={requestMethod:!1,apiGroup:null,requestMethodList:[{key:"POST",value:"post"},{key:"GET",value:"get"},{key:"PUT",value:"put"},{key:"DELETE",value:"delete"},{key:"HEAD",value:"head"},{key:"OPTIONS",value:"options"},{key:"PATCH",value:"patch"}]},r.fun={},r.ajaxRequest={projectID:n.params.projectID,groupID:n.params.groupID||-1,apiID:n.params.apiID},r.ajaxResponse={apiInfo:{apiName:"",requestMethod:"",requestURL:"/",balanceName:"",targetURL:"/",targetMethod:"-1",isFollow:!0,stripPrefix:!0,stripSlash:!0,timeout:"2000",retryCount:"",alertValve:0,protocol:"http"},balanceList:[]},r.component={selectMultistageCommonComponentObject:{"new":{},original:{}},menuObject:{list:[]},balanceAutoCompleteObj:{required:!0,pattern:"[\\w\\._\\/\\-\\:]+"}},r.CONST={PROTOCOL_ARR:[{key:"HTTP",value:"http"},{key:"HTTPS",value:"https"}]};var s={};r.fun.back=function(){n.go("home.project.api.default",{groupID:n.params.groupID})},s.confirm=function(){r.data.requestMethod=!1;var e={projectID:r.ajaxRequest.projectID,groupID:r.component.selectMultistageCommonComponentObject["new"].value==-1?0:r.component.selectMultistageCommonComponentObject["new"].value,apiName:r.ajaxResponse.apiInfo.apiName,requestMethod:[],requestURL:r.ajaxResponse.apiInfo.requestURL,balanceName:r.ajaxResponse.apiInfo.balanceName,targetURL:r.ajaxResponse.apiInfo.targetURL,targetMethod:r.ajaxResponse.apiInfo.targetMethod,stripPrefix:r.ajaxResponse.apiInfo.stripPrefix,timeout:r.ajaxResponse.apiInfo.timeout,retryCount:r.ajaxResponse.apiInfo.retryCount,alertValve:r.ajaxResponse.apiInfo.alertValve,protocol:r.ajaxResponse.apiInfo.protocol,stripSlash:r.ajaxResponse.apiInfo.stripSlash};for(var t in r.data.requestMethodList)r.data.requestMethodList[t].checkbox&&e.requestMethod.push(r.data.requestMethodList[t].value);switch(e.requestMethod.length>0?e.requestMethod=e.requestMethod.join(","):r.data.requestMethod=!0,n.params.status){case"edit":e.apiID=r.ajaxRequest.apiID}return"-1"==r.ajaxResponse.apiInfo.targetMethod&&(e.isFollow=!0,delete e.targetMethod),e},r.fun.load=function(t){e.$emit("$TransferStation",{state:"$Init_LoadingCommonComponent",data:t})},r.fun.requestProcessing=function(t){var n=s.confirm(),a=null;return r.data.submitted=!0,e.ConfirmForm.$valid&&!r.data.requestMethod?a=s.edit({request:n}):i.InfoModal("API编辑失败,请检查信息是否填写完整!","error"),a},s.edit=function(o){var s=null;return"edit"==n.params.status?(s=t.Api.Edit(o.request).$promise,s.then(function(t){switch(t.statusCode){case a.COMMON.SUCCESS:r.fun.back(),i.InfoModal("API修改成功","success");break;case"190005":r.data.requestMethod=!0,e.ConfirmForm.requestURL.$invalid=!0}})):(s=t.Api.Add(o.request).$promise,s.then(function(t){switch(t.statusCode){case a.COMMON.SUCCESS:r.fun.back(),i.InfoModal("API添加成功","success");break;case"190005":r.data.requestMethod=!0,e.ConfirmForm.requestURL.$invalid=!0}})),s},s.initApi=function(){var e={projectID:r.ajaxRequest.projectID,apiID:r.ajaxRequest.apiID};switch(n.params.status){case"edit":t.Api.Info(e).$promise.then(function(e){switch(e.statusCode){case a.COMMON.SUCCESS:r.ajaxResponse.apiInfo=e.apiInfo;var t=e.apiInfo.requestMethod.split(",");r.ajaxResponse.apiInfo.targetMethod=e.apiInfo.isFollow?"-1":r.ajaxResponse.apiInfo.targetMethod;for(var n in t){var i=t[n];switch(i.toLowerCase()){case"post":r.data.requestMethodList[0].checkbox=!0;break;case"get":r.data.requestMethodList[1].checkbox=!0;break;case"put":r.data.requestMethodList[2].checkbox=!0;break;case"delete":r.data.requestMethodList[3].checkbox=!0;break;case"head":r.data.requestMethodList[4].checkbox=!0;break;case"options":r.data.requestMethodList[5].checkbox=!0;break;case"batch":r.data.requestMethodList[6].checkbox=!0}}}})}},s.getDefaultBalance=function(){t.Balance.SimpleQuery().$promise.then(function(e){r.ajaxResponse.balanceList=e.balanceNames})},r.fun.init=function(){var e=[{groupName:"未分组",groupID:-1}],t=o.get();t?(r.data.apiGroup=e.concat(t),s.initApi()):i.global.ajax.Query_Group.$promise["finally"](function(){r.data.apiGroup=e.concat(o.get()),s.initApi()})}(),r.$onInit=function(){s.getDefaultBalance(),r.component.menuObject={list:[{type:"btn","class":"btn-group-li pull-left",btnList:[{name:"返回列表",icon:"chexiao",fun:{"default":r.fun.back}}]},{type:"btn","class":"btn-group-li",btnList:[{name:"保存","class":"eo_theme_btn_success block-btn",fun:{disabled:1,"default":r.fun.requestProcessing,params:{status:1}}}]}],setting:{"class":"common-menu-fixed-seperate"}}}}angular.module("eolinker").component("apiOperate",{templateUrl:"app/ui/content/project/api/operate/index.html",controller:e}).filter("Filter_SlashSymbol",function(){return function(e){return(e||"").replace(/\/{2,}/g,"/")}}),e.$inject=["$scope","GatewayResource","$state","CODE","$rootScope","GroupService"]}(),function(){function e(e,t,n,a,i,o,r){var s=this;s.data={"static":{query:[{groupID:-1,groupName:"所有接口",icon:"caidan"},{groupID:0,groupName:"未分组",icon:"caidan"}]},sidebarShow:null},s.ajaxRequest={projectID:n.params.projectID,groupID:n.params.groupID||-1,apiID:n.params.apiID,orderNumber:[]},s.component={groupCommonObject:{}},s.service={authority:o};var c={};c.init=function(){n.current.name.indexOf("api.default")>-1?s.data.sidebarShow=!0:s.data.sidebarShow=!1},c.init(),c["import"]=function(){var e={modal:{title:"导入分组",resource:t.ImportAms.Group,request:{projectID:s.ajaxRequest.projectID}}};a.ImportModal(e.modal,function(t){t&&(a.InfoModal(e.modal.title+"成功","success"),s.component.groupCommonObject.mainObject.baseInfo.resetFlag=!s.component.groupCommonObject.mainObject.baseInfo.resetFlag)})},e.$on("$stateChangeSuccess",function(){ -n.current.name.indexOf("api.default")>-1?s.data.sidebarShow=!0:s.data.sidebarShow=!1,s.ajaxRequest.groupID=n.params.groupID}),s.$onInit=function(){var e;s.component.groupCommonObject={requestObject:{resource:t.ApiGroup,baseRequest:{projectID:s.ajaxRequest.projectID}},funObject:{unTop:!0,btnGroupList:[{type:"more-btn",authority:"edit",icon:"jiahao",name:"新建","class":"pull-left",btnClass:"eo_theme_btn_success",btnList:[(e={funName:"edit",name:"新建分组"},_defineProperty(e,"funName","edit"),_defineProperty(e,"icon","jiahao"),e),{name:"导入",fun:c["import"]}]}],callback:{querySuccess:function(e){n.current.name.indexOf("list")>-1?i.set(e):i.set(e,!0)}}},mainObject:{showRouterList:["home.project.api.default"],baseInfo:{sort:!0,name:"groupName",id:"groupID",current:s.ajaxRequest},staticQuery:s.data["static"].query,itemFun:[{funName:"edit",key:"新建子分组",params:'"add-child",arg',authority:"edit",isStrong:1},{funName:"edit",key:"编辑",authority:"edit",params:'"edit",arg'},{funName:"delete",authority:"edit",params:{modal:{title:"删除分组",message:"删除分组后,该分组下的api将全部移入接口回收站,该操作无法撤销,确认删除?"}},key:"删除"}]}}}}angular.module("eolinker").component("apiGroup",{template:'',controller:e}),e.$inject=["$scope","GatewayResource","$state","$rootScope","GroupService","Authority_CommonService","Cache_CommonService"]}(),function(){"use strict";function e(e,t,n,a,i,o){var r=this;r.data={batch:{address:[]}},r.fun={},r.ajaxRequest={nodeID:[],groupID:n.params.groupID||-1,cluster:n.params.cluster,keyword:window.sessionStorage.getItem("COMMON_SEARCH_TIP")},r.ajaxResponse={query:null},r.component={listDefaultCommonObject:{},menuObject:{}},r.service={authority:o};var s={},c={GROUP_ARR:[{groupID:0,groupDepth:1,groupName:"未分组"}]};s.search=function(e){window.sessionStorage.setItem("COMMON_SEARCH_TIP",e.item.keyword),n.reload(n.current.name)},s.initQueryAjax=function(){var e={groupID:r.ajaxRequest.groupID,cluster:r.ajaxRequest.cluster};return r.ajaxRequest.keyword&&(e.keyword=r.ajaxRequest.keyword),a.global.ajax.Query_Node=t.Node.Query(e),a.global.ajax.Query_Node.$promise.then(function(e){r.ajaxResponse.query=e.nodeList||[]}),a.global.ajax.Query_Node.$promise},r.fun.init=function(){return s.initQueryAjax()},s.changeGroup=function(){var e={modal:{title:"批量修改节点分组",query:c.GROUP_ARR.concat(r.groupArr),position:{key:"groupName"}},request:{nodeIDList:r.data.batch.query.join(","),groupID:"",cluster:r.ajaxRequest.cluster}};a.SingleSelectModal(e.modal,function(n){n&&(e.request.groupID=e.modal.query[n.$index].groupID,t.Node.ChangeGroup(e.request).$promise.then(function(e){switch(e.statusCode){case i.COMMON.SUCCESS:s.resetBatchInfo(),a.InfoModal("节点批量修改分组成功","success"),r.fun.init()}}))})},s.edit=function(e){var n={title:"edit"==e.status?"修改节点":"新建节点",group:c.GROUP_ARR.concat(r.groupArr),item:"edit"==e.status?e.item:{}},o={request:{}};n.item.groupID=e.item.groupID||parseInt(r.ajaxRequest.groupID),n.item.groupID===-1&&(n.item.groupID=0),a.GatewayClusterModal(n,function(n){if(n)switch(o.request={groupID:n.groupID,nodeIP:n.nodeIP,nodeName:n.nodeName,nodePort:n.nodePort,gatewayPath:n.gatewayPath,cluster:r.ajaxRequest.cluster},e.status){case"add":t.Node.Add(o.request).$promise.then(function(e){switch(e.statusCode){case i.COMMON.SUCCESS:r.fun.init(),a.InfoModal("新增节点成功!","success")}});break;default:o.request.nodeID=e.item.nodeID,t.Node.Edit(o.request).$promise.then(function(e){switch(e.statusCode){case i.COMMON.SUCCESS:r.fun.init(),a.InfoModal("修改节点成功!","success")}})}})},s["delete"]=function(e,n){var o={request:{nodeIDList:"batch"==e?r.data.batch.query.join(","):n.item.nodeID,cluster:r.ajaxRequest.cluster}};a.EnsureModal("删除节点",null,"确认删除?",{},function(c){c&&t.Node.Delete(o.request).$promise.then(function(t){switch(t.statusCode){case i.COMMON.SUCCESS:switch(e){case"batch":s.resetBatchInfo(),r.fun.init();break;case"single":r.ajaxResponse.query.splice(n.$index,1)}a.InfoModal("节点删除成功","success")}})})},s.resetBatchInfo=function(){r.data.batch.isOperating=!1,r.data.batch.selectAll=!1,r.data.batch.query=[],r.data.batch.indexAddress={}},r.$onInit=function(){e.$emit("$WindowTitleSet",{list:["节点管理"]}),r.component.listDefaultCommonObject={item:{primaryKey:"nodeID","default":[{key:"名称",html:"{{item.nodeName}}"},{key:"IP:Port",html:"{{item.nodeIP}}:{{item.nodePort}}"},{key:"状态",html:'未运行异常运行中'},{key:"分组",html:"{{item.groupName}}"},{key:"版本",html:"{{item.version}}"},{key:"更新时间",html:"{{item.updateTime}}","class":"w_180"}],operate:{funArr:[{type:"html",html:''},{key:"删除",fun:s["delete"],params:'"single",arg'}],"class":"w_150"}},baseFun:{edit:s.edit},setting:{isFixedHeight:!0,batch:!0,batchInitFun:s.resetBatchInfo,titleAuthority:"showTitle",unhover:!0,warning:"尚未新建任何节点",fixFoot:!0}},r.component.menuObject={list:[{type:"btn","class":"btn-group-li pull-left",authority:"edit",btnList:[{name:"新建节点",icon:"jiahao","class":"eo_theme_btn_success block-btn",fun:{"default":s.edit,params:{status:"add"}}}]},{type:"search","class":"pull-right",keyword:r.ajaxRequest.keyword,fun:s.search,placeholder:"输入节点名称或IP信息"}],batchList:[{type:"btn","class":"btn-group-li pull-left",btnList:[{name:"修改分组",fun:{"default":s.changeGroup}},{name:"批量删除",fun:{"default":s["delete"],params:'"batch",arg'}}]}],setting:{batch:!0,batchInitFun:s.resetBatchInfo,titleAuthority:"showTitle",title:"节点列表"}}}}angular.module("eolinker").component("clusterNodeDefault",{templateUrl:"app/ui/content/cluster/node/_default/index.html",bindings:{groupArr:"<"},controller:e}),e.$inject=["$scope","GatewayResource","$state","$rootScope","CODE","Authority_CommonService"]}(),function(){function e(e,t,n){var a=this;a.data={"static":{query:[{groupID:-1,groupName:"所有分组",icon:"caidan"},{groupID:0,groupName:"未分组",icon:"caidan"}]}},a.ajaxRequest={cluster:t.params.cluster,groupID:t.params.groupID||-1},a.ajaxResponse={query:[]},a.service={authority:n},a.component={groupCommonObject:{}},a.$onInit=function(){a.component.groupCommonObject={requestObject:{resource:e.NodeGroup,baseRequest:{cluster:a.ajaxRequest.cluster}},funObject:{btnGroupList:[{type:"btn",authority:"edit",icon:"jiahao",name:"新建分组",funName:"edit","class":"eo_theme_btn_success"}],callback:{querySuccess:function(e){a.groupArr=e||[]}}},mainObject:{baseInfo:{name:"groupName",id:"groupID",current:a.ajaxRequest},staticQuery:a.data["static"].query,itemFun:[{funName:"edit",key:"编辑",authority:"edit",params:'"edit",arg'},{funName:"delete",key:"删除",authority:"edit",params:{modal:{title:"删除分组",message:"删除分组后,该分组内的网关节点也将被删除,该操作无法撤销,确认删除?"}}}]}}}}angular.module("eolinker").component("clusterNodeGroup",{template:'',controller:e,bindings:{groupArr:"="}}),e.$inject=["GatewayResource","$state","Authority_CommonService"]}(),function(){function e(e,t){var n=this;n.data={component:{sidebarCommonObject:{}},info:{menu:[{base:"/api/",name:"API列表",sref:"home.gpedit.inside.api",childSref:"home.gpedit.inside.api.default",icon:"icon-api",power:-1},{base:"/plugin/",name:"策略插件",sref:"home.gpedit.inside.plugin",childSref:"home.gpedit.inside.plugin.gpedit",icon:"icon-cengji_o",power:-1},{base:"/auth",name:"鉴权方式",sref:"home.gpedit.inside.auth",icon:"icon-dunpaibaoxianrenzheng_o",power:-1},{base:"/setting",name:"策略管理",sref:"home.gpedit.inside.setting",icon:"icon-quanjushezhi_o",power:-1}]}};var a={};a.shrink=function(){e.$emit("$Home_ShrinkSidebar",{shrink:n.shrinkObject.isShrink})},n.$onInit=function(){var e={common:"home.gpedit.common.list",open:"home.gpedit.default"};n.data.component.sidebarCommonObject={mainObject:{baseInfo:{staticTop:!0,menu:n.data.info.menu,navigation:[{name:"访问策略",sref:"home.gpedit.default"},{name:t.params.strategyName}],staticQuery:[{name:"返回",sref:e[t.params.groupType],icon:"icon-chexiao",params:{groupID:t.params.groupID}}]},baseFun:{shrink:a.shrink}}}}}angular.module("eolinker").component("gpeditNavbar",{templateUrl:"app/ui/content/gpedit/inside/navbar/index.html",bindings:{shrinkObject:"<"},controller:e}),e.$inject=["$scope","$state"]}(),function(){function e(e,t,n,a){var i=this;i.data={"static":{query:[{groupID:-1,groupName:"所有分组",icon:"caidan"},{groupID:0,groupName:"未分组",icon:"caidan"}]}},i.ajaxRequest={groupID:n.params.groupID||-1},i.ajaxResponse={query:[]},i.service={authority:a},i.component={groupCommonObject:{}};var o={cache:t};i.$onInit=function(){i.component.groupCommonObject={requestObject:{resource:e.StrategyGroup,baseRequest:{}},funObject:{btnGroupList:[{type:"btn",authority:"edit",icon:"jiahao",name:"新建分组",funName:"edit","class":"eo_theme_btn_success"}],callback:{querySuccess:function(e){o.cache.set(e,"gpeditGroup")}}},mainObject:{baseInfo:{name:"groupName",id:"groupID",current:i.ajaxRequest},staticQuery:i.data["static"].query,itemFun:[{funName:"edit",key:"编辑",authority:"edit",params:'"edit",arg'},{funName:"delete",key:"删除",authority:"edit",params:{modal:{title:"删除分组",message:"删除分组后,该分组内的网关节点也将被删除,该操作无法撤销,确认删除?"}}}]}}}}angular.module("eolinker").component("gpeditGroup",{template:'',controller:e}),e.$inject=["GatewayResource","Cache_CommonService","$state","Authority_CommonService"]}(),function(){"use strict";function e(e,t,n,a,i,o,r){var s=this;s.data={groupType:n.params.groupType||null,batch:{},pagination:{maxSize:10,pageSize:50,page:1,msgCount:0}},s.ajaxRequest={groupID:n.params.groupID||-1,strategyID:[],keyword:window.sessionStorage.getItem("COMMON_SEARCH_TIP")},s.ajaxResponse={},s.fun={},s.service={authority:r},s.component={listDefaultCommonObject:{},menuObject:{}};var c={cache:o},l={},u={GROUP_ARR:[{groupID:0,groupName:"未分组",icon:"caidan"}]},p={};l.scrollLoading=function(){var e={hasItem:s.ajaxResponse.query&&0!==s.ajaxResponse.query.length,hasNextPage:s.data.pagination.pages.data.pagination.page*s.data.pagination.pageSize&&l.getQuery("preload",s.data.pagination.page*s.data.pagination.pageSize,1),s.data.pagination.msgCount--,a.InfoModal("策略删除成功","success")}}})})},l.conditionFilter=function(t){s.component.menuObject.active.condition!=t.item.value&&(s.component.menuObject.active.condition=t.item.value,s.ajaxRequest.ids=null,e.$broadcast("$Init_LoadingCommonComponent"))},l.resetBatchInfo=function(){s.data.batch.isOperating=!1,s.data.batch.selectAll=!1,s.data.batch.query=[],s.data.batch.indexAddress={}},s.$onInit=function(){e.$emit("$WindowTitleSet",{list:["普通策略列表"]}),s.component.listDefaultCommonObject={item:{primaryKey:"strategyID","default":[{key:"名称",html:"{{item.strategyName}}"},{key:"策略ID",html:'{{item.strategyID}}复制'},{key:"状态",html:'停用启用'},{key:"分组",html:"{{item.groupName}}"},{key:"更新时间",html:"{{item.updateTime}}","class":"w_180"}],operate:{funArr:[{key:"复制",fun:l.edit,params:{status:"copy"}},{key:"修改",fun:l.edit,params:{status:"edit"}},{key:"删除",fun:l["delete"],params:'"single",arg'},{key:"启用",itemExpression:'ng-if="item.enableStatus===0"',fun:l.operate,params:{status:"Start"}},{key:"停用",itemExpression:'ng-if="item.enableStatus===1"',fun:l.operate,params:{status:"Stop"}}],"class":"w_220"}},baseFun:{edit:l.edit,click:function(e){n.go("home.gpedit.inside.api.default",{groupType:"common",strategyID:e.item.strategyID,strategyName:e.item.strategyName,groupID:s.ajaxRequest.groupID})},scrollLoading:l.scrollLoading},setting:{page:!0,scroll:!0,scrollRemainRatio:7,isFixedHeight:!0,batch:!0,batchInitFun:l.resetBatchInfo,titleAuthority:"showTitle",warning:"尚未新建任何策略"}},s.component.menuObject={list:[{type:"btn","class":"btn-group-li pull-left",authority:"edit",btnList:[{name:"新建策略",icon:"jiahao","class":"eo_theme_btn_success block-btn",fun:{"default":l.edit,params:{status:"add"}}}]},{type:"search","class":"pull-right",keyword:s.ajaxRequest.keyword,fun:l.search,placeholder:"输入策略名称或策略ID"},{type:"fun-list","class":"fun-list-li pull-right mr15",name:"筛选",icon:"shaixuan",activePoint:"condition",funList:[{name:"无",value:0,active:0,fun:{"default":l.conditionFilter}},{name:"启用",value:2,active:2,fun:{"default":l.conditionFilter}},{name:"停用",value:1,active:1,fun:{"default":l.conditionFilter}}]}],batchList:[{type:"btn","class":"btn-group-li pull-left",btnList:[{name:"修改分组",fun:{"default":l.changeGroup}},{name:"批量删除",fun:{"default":l["delete"],params:'"batch",arg'}},{name:"批量开启",fun:{"default":l.operate,params:{status:"Start"}}},{name:"批量关闭",fun:{"default":l.operate,params:{status:"Stop"}}}]}],setting:{batch:!0,batchInitFun:l.resetBatchInfo,titleAuthority:"showTitle",title:"普通策略列表"},baseFun:{batchDefault:l.batchBtnClickFun},active:{condition:0}}}}angular.module("eolinker").component("gpeditDefault",{templateUrl:"app/ui/content/gpedit/common/default/index.html",controller:e}),e.$inject=["$scope","GatewayResource","$state","$rootScope","CODE","Cache_CommonService","Authority_CommonService"]}(),function(){"use strict";function e(e,t,n,a,i){var o=this,r={accessLog:null,nodeLog:null,consoleLog:null},s={};o.data={nodeText:"info",consoleText:"warn"},o.ajaxResponse={nodeLog:{},consoleLog:{},accessLog:{}},o.fun={},o.component={progressBarObj:{setting:{value:"name",key:"title"}},listBlockObj:{tdList:[{type:"sort",itemExpression:'ng-show="$ctrl.authorityObject.edit"'},{type:"checkbox",modelKey:"select",authority:"edit"},{type:"text",thKey:"字段名",modelKey:"name","class":"w_20percent"},{type:"html",thKey:"描述",html:'{{item.desc}}'}]},navigationMenuObject:{}},o.service={authority:i},o.fun.saveForm=function(i){var s=i.charAt(0).toUpperCase()+i.slice(1);if(o.data.submitted=!0,!a[s+"Form"].$invalid){var c=o.ajaxResponse[i+"Log"],l={enable:c.enable,dir:c.dir,file:c.file,period:c.period,expire:c.expire};switch(i){case"access":l.fields=JSON.stringify(c.fields,function(e,t){if(!/(desc)|(isHide)/.test(e))return t});break;default:l.level=c.level}var u=n.ConfigLog["Set"+s](l).$promise;return u.then(function(n){switch(n.statusCode){case t.COMMON.SUCCESS:e.InfoModal("保存成功!","success"),o.data[i+"IsEdit"]=!1,r[i+"Log"]=angular.copy(o.ajaxResponse[i+"Log"])}}),u}},o.fun.cancleEdit=function(e){o.data.submitted=!1,o.data[e+"IsEdit"]=!1,o.ajaxResponse[e+"Log"]=angular.copy(r[e+"Log"])},s.changeMenu=function(e){switch(o.data.menuType=e.item.active,o.data.menuType){case 0:r.accessLog||n.ConfigLog.Access({t:(new Date).getTime()}).$promise.then(function(e){o.ajaxResponse.accessLog=e.data,r.accessLog=angular.copy(o.ajaxResponse.accessLog)});break;case 1:r.consoleLog||n.ConfigLog.Console({t:(new Date).getTime()}).$promise.then(function(e){o.ajaxResponse.consoleLog=e.data,r.consoleLog=angular.copy(o.ajaxResponse.consoleLog)}),r.nodeLog||n.ConfigLog.Node({t:(new Date).getTime()}).$promise.then(function(e){o.ajaxResponse.nodeLog=e.data,r.nodeLog=angular.copy(o.ajaxResponse.nodeLog)})}},o.fun.wantToEdit=function(e){o.data[e+"IsEdit"]=!0},o.$onInit=function(){a.$emit("$WindowTitleSet",{list:["日志设置","网关设置"]}),o.component.navigationMenuObject={list:[{type:"navigation","class":"menu-navigation",activePoint:"menuType",tabList:[{name:"请求日志",active:0,fun:{"default":s.changeMenu}},{name:"运行日志",active:1,fun:{"default":s.changeMenu}}]}],setting:{"class":"common-menu-fixed-seperate common-menu-only-navigation"}},s.changeMenu({item:{active:0}})}}angular.module("eolinker").component("settingLog",{templateUrl:"app/ui/content/setting/log/index.html",controller:e}),e.$inject=["$rootScope","CODE","GatewayResource","$scope","Authority_CommonService"]}(),function(){"use strict";function e(e,t,n,a,i){var o=this;o.data={status:{config:{isEdit:!1}},userEmail:[{value:""}]},o.interaction={response:{gatewayConfig:{}}},o.fun={},o.constant={monitorUpdatePeriodQuery:[{key:"30秒",value:30},{key:"60秒",value:60},{key:"180秒",value:180}]};var r={template:{gatewayConfig:{}}};o.service={authority:i},o.fun.editBasicInfo=function(){if(o.data.status.config.submitted=!0,!a.BasicForm.$invalid){var i={request:{successCode:o.interaction.response.gatewayConfig.successCode,monitorUpdatePeriod:o.interaction.response.gatewayConfig.monitorUpdatePeriod,nodeUpdatePeriod:o.interaction.response.gatewayConfig.nodeUpdatePeriod}};n.Config.BaseEdit(i.request).$promise.then(function(n){switch(n.statusCode){case t.COMMON.SUCCESS:e.InfoModal("修改成功!","success"),o.data.status.config.isEdit=!1,angular.copy(o.interaction.response.gatewayConfig,r.template.gatewayConfig)}})}},o.fun.cancleBasicInfo=function(){o.data.status.config.isEdit=!1,o.interaction.response.gatewayConfig=angular.copy(r.template.gatewayConfig)},o.$onInit=function(){a.$emit("$WindowTitleSet",{list:["基本设置","网关设置"]}),n.Config.BaseInfo().$promise.then(function(e){switch(e.statusCode){case t.COMMON.SUCCESS:o.interaction.response.gatewayConfig={successCode:e.gatewayConfig.successCode,monitorUpdatePeriod:e.gatewayConfig.monitorUpdatePeriod,nodeUpdatePeriod:e.gatewayConfig.nodeUpdatePeriod},angular.copy(o.interaction.response.gatewayConfig,r.template.gatewayConfig)}})}}angular.module("eolinker").component("settingBasic",{templateUrl:"app/ui/content/setting/basic/index.html",controller:e}),e.$inject=["$rootScope","CODE","GatewayResource","$scope","Authority_CommonService"]}(),function(){"use strict";function e(e,t,n,a,i){var o=this;o.data={from:n.params.status,status:n.params.status,info:{},interaction:{response:{pluginInfo:{pluginName:n.params.pluginName||"",pluginPriority:"",pluginConfig:"",pluginDesc:"",isStop:"1",pluginType:""}}}},o.component={menuObject:{list:[]}},o.fun={};var r={};o.fun.init=function(){if("add"==n.params.status)return void(o.data.interaction.response.pluginInfo.pluginType="0");var a={request:{pluginName:o.data.interaction.response.pluginInfo.pluginName}};t.Plugin.Info(a.request).$promise.then(function(t){t.pluginInfo.isStop=t.pluginInfo.isStop.toString(),t.pluginInfo.pluginType=t.pluginInfo.pluginType.toString(),o.data.interaction.response.pluginInfo=t.pluginInfo,e.$broadcast("$Maunal_AceEditorAms",t.pluginInfo.pluginConfig||"")})},o.fun.back=function(){n.go("home.plugin.default")},r.confirm=function(){var e={output:{pluginName:o.data.interaction.response.pluginInfo.pluginName,pluginPriority:o.data.interaction.response.pluginInfo.pluginPriority,pluginDesc:o.data.interaction.response.pluginInfo.pluginDesc,isStop:o.data.interaction.response.pluginInfo.isStop,pluginType:o.data.interaction.response.pluginInfo.pluginType}};switch(e.output.pluginType){case"0":e.output.pluginConfig=o.data.interaction.response.pluginInfo.pluginConfig}return e.output},o.fun.load=function(t){e.$emit("$TransferStation",{state:"$Init_LoadingCommonComponent",data:t})},o.fun.requestProcessing=function(t){var n={request:r.confirm(),promise:null};return o.data.info.submited=!1,e.editForm.$valid&&(n.request.pluginConfig&&"0"==n.request.pluginType||"0"!=n.request.pluginType)?n.promise=r.edit({request:n.request}):n.request.pluginConfig?(o.data.info.submited=!0,i.InfoModal("插件编辑失败,请检查信息是否填写完整!","error")):(o.data.info.submited=!0,i.InfoModal("插件编辑失败,未填写插件配置文件信息!","error")),n.promise},r.edit=function(e){var r={promise:null};return"edit"==n.params.status?r.promise=t.Plugin.Edit(e.request).$promise:r.promise=t.Plugin.Add(e.request).$promise,r.promise.then(function(e){switch(e.statusCode){case a.COMMON.SUCCESS:o.fun.back(),i.InfoModal(("edit"==n.params.status?"修改":"添加")+"插件成功","success")}}),r.promise},o.$onInit=function(){o.component.menuObject={list:[{type:"btn","class":"btn-group-li pull-left",btnList:[{name:"返回列表",icon:"chexiao",fun:{"default":o.fun.back}}]},{type:"btn","class":"btn-group-li",btnList:[{name:"保存","class":"eo_theme_btn_success block-btn",fun:{disabled:1,"default":o.fun.requestProcessing,params:{status:1}}}]}],setting:{"class":"common-menu-fixed-seperate"}}}}angular.module("eolinker").component("pluginOperate",{templateUrl:"app/ui/content/plugin/operate/index.html",controller:e}),e.$inject=["$scope","GatewayResource","$state","CODE","$rootScope"]}(),function(){"use strict";function e(e,t,n,a,i,o){var r=this;r.data={batch:{address:[]}},r.ajaxResponse={},r.service={authority:o},r.ajaxRequest={pluginName:[],keyword:window.sessionStorage.getItem("COMMON_SEARCH_TIP")},r.component={menuObject:{},listRequireObject:null},r.fun={};var s={},c={checking:!1};r.fun.init=function(){var e={condition:r.component.menuObject.active.condition};return r.ajaxRequest.keyword&&(e.keyword=r.ajaxRequest.keyword),a.global.ajax.Query_Plugin=t.Plugin.Query(e),a.global.ajax.Query_Plugin.$promise.then(function(e){r.ajaxResponse.query=e.pluginList||[],r.ajaxResponse.query.map(function(e){e.isAlreadyStart=1===e.pluginStatus})}),a.global.ajax.Query_Plugin.$promise},s.conditionFilter=function(t){r.component.menuObject.active.condition!=t.item.value&&(r.component.menuObject.active.condition=t.item.value,r.ajaxRequest.ids=null,e.$broadcast("$Init_LoadingCommonComponent"))},s.search=function(e){window.sessionStorage.setItem("COMMON_SEARCH_TIP",e.item.keyword),n.reload(n.current.name)},s.check=function(e){if(c.checking)return void a.InfoModal("当前已有插件正在进行检测,请稍后再试","error");var n={request:{pluginName:e.item.pluginName},pluginStatus:e.item.pluginStatus};c.checking=!0,r.ajaxResponse.query[e.$index].pluginStatus=2,t.Plugin.Check(n.request).$promise.then(function(t){switch(c.checking=!1,r.ajaxResponse.query[e.$index].pluginStatus=n.pluginStatus,r.ajaxResponse.query[e.$index].isAlreadyStart=n.pluginStatus,t.statusCode){case i.COMMON.SUCCESS:a.InfoModal("检测在全部节点内检测成功,插件可正常使用","success"),r.ajaxResponse.query[e.$index].isCheck=!0;break;case"210000":a.Gateway_NodeCheckErrorReportModal({query:t.errNodeList,pluginName:e.item.pluginName},"success"),r.ajaxResponse.query[e.$index].isCheck=!1}})},s.batchOperate=function(e){var o={tip:"",resource:null,pluginStatus:0};switch(e){case"start":o.tip="开启",o.resource=t.Plugin.BatchStart,o.pluginStatus=1;break;case"stop":o.tip="关闭",o.resource=t.Plugin.BatchStop}o.resource({pluginNameList:r.data.batch.query.join(",")}).$promise.then(function(e){switch(e.statusCode){case i.COMMON.SUCCESS:a.InfoModal("批量"+o.tip+"插件成功!","success"),n.reload("home.plugin.default")}})},s.operate=function(e){t.Plugin[e.status]({pluginName:e.item.pluginName}).$promise.then(function(t){switch(t.statusCode){case i.COMMON.SUCCESS:r.ajaxResponse.query[e.$index].pluginStatus="Start"==e.status?1:0,r.ajaxResponse.query[e.$index].isAlreadyStart=r.ajaxResponse.query[e.$index].pluginStatus,r.ajaxResponse.query[e.$index].isCheck=0,a.InfoModal(("Start"==e.status?"开启":"关闭")+e.item.pluginName+"成功!","success")}})},s.edit=function(e){var t={uri:{status:e.status}};switch(e.status){case"edit":t.uri.pluginName=e.item.pluginName}n.go("home.plugin.operate",t.uri)},s["delete"]=function(e){var n={request:{pluginName:e.item.pluginName}};a.EnsureModal("删除"+e.item.pluginName,null,"确认删除?",{},function(o){o&&t.Plugin.Delete(n.request).$promise.then(function(t){switch(t.statusCode){case i.COMMON.SUCCESS:r.ajaxResponse.query.splice(e.$index,1),a.InfoModal(e.item.pluginName+"删除成功","success")}})})},s.resetBatchInfo=function(){r.data.batch.isOperating=!1,r.data.batch.selectAll=!1,r.data.batch.query=[],r.data.batch.indexAddress={}},r.$onInit=function(){e.$emit("$WindowTitleSet",{list:["插件管理"]}),r.component.listDefaultCommonObject={item:{primaryKey:"pluginName","default":[{key:"名称",html:"{{item.pluginName}}"},{key:"描述",html:"{{item.pluginDesc}}"},{key:"插件类型",html:'全局策略API',"switch":"pluginType","class":"w_100"},{key:"优先级(0-3000)",html:"{{item.pluginPriority}}","class":"w_150"},{key:"状态",html:'关闭开启检测中',"switch":"pluginStatus","class":"w_80"}],operate:{funArr:[{key:"配置",itemExpression:'ng-if="item.pluginType===0"',fun:s.edit,params:{status:"edit"}},{key:"关闭",fun:s.operate,itemExpression:'ng-if="item.isAlreadyStart"',params:{status:"Stop"}},{key:"开启",fun:s.operate,itemExpression:'ng-if="!item.isAlreadyStart" ng-disabled="!item.isCheck"',params:{status:"Start"}},{key:'检测',itemExpression:'ng-disabled="item.isAlreadyStart"',fun:s.check},{key:"删除",fun:s["delete"]}],power:-1,"class":"w_250"}},setting:{unhover:!0,batch:!0,defaultFoot:!0}},r.component.menuObject={list:[{type:"btn",authority:"edit","class":"pull-left",btnList:[{name:"添加插件",icon:"jiahao","class":"eo_theme_btn_success block-btn",fun:{"default":s.edit,params:{status:"add"}}}]},{type:"search","class":"pull-right",keyword:r.ajaxRequest.keyword,fun:s.search,placeholder:"输入插件名称或描述"},{type:"fun-list","class":"fun-list-li pull-right mr15",name:"筛选",icon:"shaixuan",activePoint:"condition",funList:[{name:"无",value:0,active:0,fun:{"default":s.conditionFilter}},{name:"全局插件",value:1,active:1,fun:{"default":s.conditionFilter}},{name:"策略插件",value:2,active:2,fun:{"default":s.conditionFilter}},{name:"接口插件",value:3,active:3,fun:{"default":s.conditionFilter}}]}],batchList:[{type:"btn",disabledPoint:"isBatchSelected","class":"pull-left",btnList:[{name:"批量开启",show:!0,disabled:0,fun:{"default":s.batchOperate,params:'"start"'}},{name:"批量关闭",show:!0,disabled:0,fun:{"default":s.batchOperate,params:'"stop"'}}]}],setting:{batch:!0,batchInitFun:s.resetBatchInfo,"class":"common-menu-fixed-seperate common-menu-lg",titleAuthority:"showTitle",title:"扩展插件"},active:{condition:0}}}}angular.module("eolinker").component("pluginDefault",{templateUrl:"app/ui/content/plugin/_default/index.html",controller:e}),e.$inject=["$scope","GatewayResource","$state","$rootScope","CODE","Authority_CommonService"]}(),function(){"use strict";function e(e,t,n,a,i,o){var r=this;r.data={batch:{}},r.ajaxRequest={projectID:[],keyword:window.sessionStorage.getItem("COMMON_SEARCH_TIP")},r.ajaxResponse={},r.fun={},r.service={authority:o},r.component={menuObject:null};var s={};r.fun.init=function(){var e={};return r.ajaxRequest.keyword&&(e.keyword=r.ajaxRequest.keyword),a.global.ajax.Query_Project=t.Project.Query(e),a.global.ajax.Query_Project.$promise.then(function(e){r.ajaxResponse.query=e.projectList||[]}),a.global.ajax.Query_Project.$promise},s["import"]=function(){var n={title:"导入项目",resource:t.ImportAms.Project};a.ImportModal(n,function(t){t&&(a.InfoModal(n.title+"成功","success"),e.$broadcast("$Init_LoadingCommonComponent"))})},s.edit=function(e){var n={},o={title:("edit"==e.status?"修改":"新增")+"项目",placeholder:"项目名称",text:e.item.projectName||""};a.Common_SingleInputModal(o,function(s){if(s)switch(n.projectName=s.text,e.status){case"add":t.Project.Add(n).$promise.then(function(e){switch(e.statusCode){case i.COMMON.SUCCESS:a.InfoModal(o.title+"成功","success"),r.fun.init()}});break;case"edit":n.projectID=e.item.projectID,t.Project.Edit(n).$promise.then(function(e){switch(e.statusCode){case i.COMMON.SUCCESS:a.InfoModal(o.title+"成功","success"),r.fun.init()}})}})},s["delete"]=function(e){var n={projectIDList:"batch"==e.status?r.data.batch.query.join(","):e.item.projectID},o={title:"batch"==e.status?"批量删除项目":"删除项目-"+e.item.projectName};a.EnsureModal(o.title,null,"确认删除?",{},function(c){ -c&&t.Project.Delete(n).$promise.then(function(t){switch(t.statusCode){case i.COMMON.SUCCESS:switch(e.status){case"batch":s.resetBatchInfo(),r.fun.init();break;case"single":r.ajaxResponse.query.splice(e.$index,1)}a.InfoModal(o.title+"成功","success")}})})},s.click=function(e){n.go("home.project.api.default",{projectID:e.item.projectID,projectName:e.item.projectName})},s.resetBatchInfo=function(){r.data.batch.isOperating=!1,r.data.batch.selectAll=!1,r.data.batch.query=[],r.data.batch.groupQuery=[],r.data.batch.indexAddress={},r.data.batchOprArchive=[]},s.search=function(e){window.sessionStorage.setItem("COMMON_SEARCH_TIP",e.item.keyword),n.reload(n.current.name)},r.$onInit=function(){e.$emit("$WindowTitleSet",{list:["项目列表"]}),r.component.listDefaultCommonObject={item:{primaryKey:"projectID",resource:t.Project,"default":[{key:"名称",html:"{{item.projectName}}",contentClass:"item-title-li"},{key:"更新时间",html:"{{item.updateTime}}","class":"w_250",isUnneccessary:!0}],operate:{funArr:[{key:"编辑",fun:s.edit,params:{status:"edit"}},{key:"删除",fun:s["delete"],params:{status:"single"}}],"class":"w_150"}},setting:{batch:!0,warning:"尚未新建任何项目",defaultFoot:!0},baseFun:{click:s.click,batchSelectAll:function(e,t){switch(e){case"select":switch(t.isArchive){case 1:var n=r.data.batchOprArchive.indexOf(t.projectHashKey);n===-1&&r.data.batchOprArchive.push(t.projectHashKey)}break;case"cancel":r.data.batchOprArchive=[]}},batchItemClick:function(e){switch(e.isArchive){case 1:var t=r.data.batchOprArchive.indexOf(e.projectHashKey);t===-1?r.data.batchOprArchive.push(e.projectHashKey):r.data.batchOprArchive.splice(t,1)}}}},r.component.menuObject={list:[{type:"btn",authority:"edit","class":"pull-left",btnList:[{name:"新建项目",icon:"jiahao","class":"eo_theme_btn_success block-btn",fun:{"default":s.edit,params:{status:"add"}}}]},{type:"btn",authority:"edit","class":"pull-left",btnList:[{name:"导入",icon:"yunshangchuan",fun:{"default":s["import"]}}]},{type:"search","class":"pull-right mr15",keyword:r.ajaxRequest.keyword,fun:s.search,placeholder:"输入项目名称"}],batchList:[{type:"btn",disabledPoint:"isBatchSelected","class":"pull-left",btnList:[{name:"删除",icon:"shanchu",disabled:!1,fun:{"default":s["delete"],params:{status:"batch"}}}]}],setting:{batch:!0,batchInitFun:s.resetBatchInfo,"class":"common-menu-fixed-seperate common-menu-lg",title:"接口管理",titleAuthority:"showTitle"}}}}angular.module("eolinker").component("projectDefault",{templateUrl:"app/ui/content/project/_default/index.html",controller:e}),e.$inject=["$scope","GatewayResource","$state","$rootScope","CODE","Authority_CommonService"]}(),function(){"use strict";function e(e,t,n,a){var i=this,o={cache:t,navbar:e};i.data={},i.component={menuObject:null};var r={};r.setNavShow=function(){n.current.name.indexOf("api.default")>-1?i.data.navShow=!0:i.data.navShow=!1},a.$on("$stateChangeSuccess",r.setNavShow),i.$onInit=function(){o.cache.clear("apiGroup"),r.setNavShow(),o.navbar.info.navigation.extra=n.params.projectName,i.component.menuObject={list:[{type:"btn","class":"btn-group-li pull-left",btnList:[{name:"返回项目列表",icon:"chexiao",fun:{"default":function(){n.go("home.project.default")}}}]}],setting:{"class":"common-menu-fixed-seperate"}}}}angular.module("eolinker").component("api",{templateUrl:"app/ui/content/project/api/index.html",controller:e}),e.$inject=["NavbarService","Cache_CommonService","$state","$scope"]}(),function(){"use strict";function e(e,t,n,a,i,o){var r=this,s={};r.data={cluster:"",tabSummaryList:[{name:"今天",active:0},{name:"近3天",active:1},{name:"近7天",active:2},{active:3,type:"html"}],granularityList:[{name:"小时",active:1},{name:"天",active:0}]},r.fun={},r.ajaxRequest={projectHashKey:n.params.projectHashKey,table:{beginTime:null,endTime:null,period:0}},r.ajaxResponse={monitorInfo:null,redisArr:[]},r.directive={tableTimeObject:{show:!1,maxDate:new Date,maxMode:"month",request:{}}},r.component={overviewObject:{},listDefaultCommonObject:null},s.filterTime=function(e){var t={startTime:o.filter(r.directive[e+"TimeObject"].request.startTime,"yyyy-M!-dd"),endTime:o.filter(r.directive[e+"TimeObject"].request.endTime,"yyyy-M!-dd")};t.startTime?t.endTime?(r.ajaxRequest[e].period=3,r.directive[e+"TimeObject"].show=!1,t.startTime>t.endTime&&(t.templateTime=t.startTime,t.startTime=t.endTime,t.endTime=t.templateTime),r.ajaxRequest[e].beginTime=t.startTime,r.ajaxRequest[e].endTime=t.endTime,s.initTable()):i.InfoModal("请选择结束日期","error"):i.InfoModal("请选择开始日期","error")},r.fun.tableFilterTime=function(e){e&&e.$event.stopPropagation(),s.filterTime("table")},r.fun.changeMenu=function(e,t){return 3==t.item.active?(r.directive.tableTimeObject.show=!0,void t.$event.stopPropagation()):(r.directive.tableTimeObject.request={},r.ajaxRequest.table.beginTime=null,r.ajaxRequest.table.period=t.item.active,void s.initTable())},s.initTable=function(){var e={promise:null,request:{beginTime:r.ajaxRequest.table.beginTime,endTime:r.ajaxRequest.table.endTime,period:r.ajaxRequest.table.period,cluster:r.data.cluster}};return e.promise=t.Monitor.Info(e.request).$promise,e.promise.then(function(e){r.ajaxResponse.monitorInfo=e||{}}),e.promise},s.refresh=function(){var n=t.Monitor.Refresh().$promise;return n.then(function(t){switch(t.statusCode){case a.COMMON.SUCCESS:i.InfoModal("立即刷新成功!","success",function(){e.$emit("$TransferStation",{state:"$Init_LoadingCommonComponent"})})}}),n},s.initComponent=function(){r.component.overviewObject={setting:{title:"基本信息",showOperate:!0}}},r.fun.init=function(e){switch(e=e||{type:"default"},e.type){case"default":if(r.data.cluster)return s.initTable();var t=s.initCluster();return t["finally"](function(){s.initTable()}),t;case"refresh":return s.refresh();case"cluster":return s.initTable()}},r.fun.refresh=function(){e.$emit("$TransferStation",{state:"$Init_LoadingCommonComponent",data:{type:"refresh",tips:"刷新"}})},r.fun.changeClutser=function(){e.$emit("$TransferStation",{state:"$Init_LoadingCommonComponent",data:{type:"cluster"}})},s.initCluster=function(){var e=t.Cluster.SimpleQuery().$promise;return e.then(function(e){r.ajaxResponse.clusterArr=[{title:"所有集群",name:null}].concat(e.clusters||[]),r.data.cluster=r.ajaxResponse.clusterArr[0].name}),e},r.$onInit=function(){e.$emit("$WindowTitleSet",{list:["监控面板"]}),s.initComponent()}}angular.module("eolinker").component("panel",{templateUrl:"app/ui/content/monitor/global/index.html",controller:e}),e.$inject=["$scope","GatewayResource","$state","CODE","$rootScope","uibDateParser"]}(),function(){function e(e,t){var n=this,a={navbar:e};n.component={menuObject:{}},n.$onInit=function(){a.navbar.info.navigation.extra=t.params.clusterName,n.component.menuObject={list:[{type:"btn","class":"btn-group-li pull-left",btnList:[{name:"返回集群列表",icon:"chexiao",fun:{"default":function(){t.go("home.cluster.default")}}}]}],setting:{"class":"common-menu-fixed-seperate"}}}}angular.module("eolinker").component("clusterNode",{templateUrl:"app/ui/content/cluster/node/index.html",controller:e}),e.$inject=["NavbarService","$state"]}(),function(){"use strict";function e(e,t,n,a){var i=this;i.ajaxResponse={query:[]},i.fun={},i.component={listRequireObject:null};var o={};i.fun.init=function(){return n.global.ajax.Query_Cluster=t.Cluster.Query(),n.global.ajax.Query_Cluster.$promise.then(function(e){i.ajaxResponse.query=e.clusters||[]}),n.global.ajax.Query_Cluster.$promise},o.inToCluster=function(e){a.go("home.cluster.node.default",{cluster:e.item.name,clusterName:e.item.title})},i.$onInit=function(){e.$emit("$WindowTitleSet",{list:["网关节点"]}),i.component.menuObject={setting:{"class":"common-menu-fixed-seperate common-menu-lg",titleAuthority:"showTitle",title:"网关节点",secondTitle:"网关支持分集群管理节点"}},i.component.listDefaultCommonObject={setting:{warning:"尚无任何集群",defaultFoot:!0},item:{"default":[{key:"集群名称",html:"{{item.title}}"},{key:"备注",html:"{{item.note}}"},{key:"数据库地址",html:"{{item.db.host+':'+item.db.port+'/'+item.db.database}}"}],operate:{funArr:[{key:"查看详情",fun:o.inToCluster}],power:-1,"class":"w_100"}},baseFun:{click:o.inToCluster}}}}angular.module("eolinker").component("clusterDefault",{templateUrl:"app/ui/content/cluster/_default/index.html",controller:e}),e.$inject=["$scope","GatewayResource","$rootScope","$state"]}(),function(){"use strict";function e(e,t,n,a,i){var o=this;o.data={status:n.params.status,balanceNamePattern:"[\\w\\._\\/\\-\\:]+"},o.fun={},o.ajaxResponse={balanceInfo:{balanceName:n.params.balanceName||"",serviceType:"static"},serviceQuery:[{registryName:"无",serviceDiscoveryID:0}]},o.component={menuObject:{list:[]},listBlockObj:{}},o.CONST={SERVICE_TYPE_ARR:[{key:"静态服务",value:"static"},{key:"服务发现",value:"discovery"}]};var r={},s={staticServiceQuery:[],discoveryServiceQuery:[],serviceIDObj:{}};o.fun.switchMenu=function(e,t){o.ajaxResponse.balanceInfo.serviceType=e,o.ajaxResponse.serviceQuery=s[e+"ServiceQuery"],t||(o.ajaxResponse.balanceInfo.serviceName=s.serviceIDObj[e]||o.ajaxResponse.serviceQuery[0].name)},o.fun.init=function(){if("add"!==o.data.status){var e={balanceName:o.ajaxResponse.balanceInfo.balanceName};t.Balance.Info(e).$promise.then(function(e){e.balanceInfo.staticCluster=e.balanceInfo.staticCluster||{},o.ajaxResponse.balanceInfo=e.balanceInfo,i.global.ajax.Query_ServiceDiscovery.$promise["finally"](function(){o.fun.switchMenu(o.ajaxResponse.balanceInfo.serviceType,!0)}),i.global.ajax.SimpleQuery_Cluster.$promise["finally"](function(){o.ajaxResponse.clusterList.map(function(t,n){o.ajaxResponse.balanceInfo.staticCluster.hasOwnProperty(t.name)&&(o.ajaxResponse.clusterList[n].value=e.balanceInfo.staticCluster[t.name])})})})}},o.fun.back=function(){n.go("home.balance.list.default")},r.initRegistry=function(){return i.global.ajax.Query_ServiceDiscovery=t.ServiceDiscovery.SimpleQuery(),i.global.ajax.Query_ServiceDiscovery.$promise.then(function(e){e.data.list.map(function(e){switch(e.type){case"static":s.staticServiceQuery.push(e);break;default:s.discoveryServiceQuery.push(e)}}),0===s.staticServiceQuery.length&&s.staticServiceQuery.push({name:"无"}),0===s.discoveryServiceQuery.length&&s.discoveryServiceQuery.push({name:"无"}),"add"===o.data.status&&o.fun.switchMenu(o.ajaxResponse.balanceInfo.serviceType)}),i.global.ajax.Query_ServiceDiscovery.$promise},r.confirm=function(){var e={balanceName:o.ajaxResponse.balanceInfo.balanceName,serviceName:o.ajaxResponse.balanceInfo.serviceName};switch(o.ajaxResponse.balanceInfo.serviceType){case"static":e["static"]=o.ajaxResponse.balanceInfo["static"],e.staticCluster={};var t=!0,n=!1,a=void 0;try{for(var i,r=o.ajaxResponse.clusterList[Symbol.iterator]();!(t=(i=r.next()).done);t=!0){var s=i.value;e.staticCluster[s.name]=s.value}}catch(c){n=!0,a=c}finally{try{!t&&r["return"]&&r["return"]()}finally{if(n)throw a}}e.staticCluster=JSON.stringify(e.staticCluster);break;default:e.appName=o.ajaxResponse.balanceInfo.appName}return e},o.fun.load=function(t){e.$emit("$TransferStation",{state:"$Init_LoadingCommonComponent",data:t})},o.fun.requestProcessing=function(t){if(o.data.submitted=!0,"无"===o.ajaxResponse.balanceInfo.serviceName)return void i.InfoModal("暂未发现任何服务注册方式,请先新建服务注册方式","error");var n=r.confirm(),a=null;return e.ConfirmForm.$valid?a=r.edit({request:n}):i.InfoModal("编辑失败,请检查信息是否填写完整!","error"),a},r.edit=function(e){var n=null;if("edit"==o.data.status)n=t.Balance.Edit(e.request).$promise,n.then(function(e){switch(e.statusCode){case a.COMMON.SUCCESS:o.fun.back(),i.InfoModal("修改成功","success")}});else{var r=angular.copy(e.request);n=t.Balance.Add(r).$promise,n.then(function(e){switch(e.statusCode){case a.COMMON.SUCCESS:o.fun.back(),i.InfoModal("添加负载成功","success")}})}return n},r.initBlockTable=function(){o.component.listBlockObj={setting:{munalAddRow:!0},tdList:[{type:"text",thKey:"范围",modelKey:"title","class":"w_150"},{type:"input",thKey:"静态服务地址",modelKey:"value"}]}},r.initCluster=function(){i.global.ajax.SimpleQuery_Cluster=t.Cluster.SimpleQuery(),i.global.ajax.SimpleQuery_Cluster.$promise.then(function(e){o.ajaxResponse.clusterList=e.clusters||[]})},o.$onInit=function(){r.initCluster(),r.initRegistry(),r.initBlockTable(),o.component.menuObject={list:[{type:"btn","class":"btn-group-li pull-left",btnList:[{name:"返回列表",icon:"chexiao",fun:{"default":o.fun.back}}]},{type:"btn","class":"btn-group-li",btnList:[{name:"保存","class":"eo_theme_btn_success block-btn",fun:{disabled:1,"default":o.fun.requestProcessing,params:{status:1}}}]}],setting:{"class":"common-menu-fixed-seperate"}}}}angular.module("eolinker").component("balanceOperate",{templateUrl:"app/ui/content/balance/operate/index.html",controller:e,bindings:{groupArr:"<"}}),e.$inject=["$scope","GatewayResource","$state","CODE","$rootScope"]}(),function(){"use strict";function e(e,t,n,a,i,o){var r=this;r.data={batch:{}},r.ajaxRequest={name:[],keyword:window.sessionStorage.getItem("COMMON_SEARCH_TIP")},r.ajaxResponse={query:[]},r.fun={},r.service={authority:o},r.component={menuObject:{show:{batch:{disable:!1}}},listRequireObject:null};var s={},c={clusterQuery:null},l={clusterNameObj:{}};r.fun.init=function(){var e={};return r.ajaxRequest.keyword&&(e.keyword=r.ajaxRequest.keyword),a.global.ajax.Query_ServiceDiscovery=t.ServiceDiscovery.Query(e),a.global.ajax.Query_ServiceDiscovery.$promise.then(function(e){r.ajaxResponse.query=e.data||[]}),a.global.ajax.Query_ServiceDiscovery.$promise},s.search=function(e){window.sessionStorage.setItem("COMMON_SEARCH_TIP",e.item.keyword),n.reload(n.current.name)},s.initCluster=function(){var e=t.Cluster.SimpleQuery().$promise;return e},s.getServiceData=function(e){var n=t.ServiceDiscovery.Info({name:e}).$promise;return n},s.edit=function(e,t){t=t||{item:{}};var n={edit:{title:"编辑服务注册方式",resource:"Edit"},add:{title:"添加服务注册方式",resource:"Add"}},i=function(i){var o=function(t){t=Object.assign({},{type:"static",driver:"eureka"},t);var o={title:n[e].title,opr:n[e].resource,ajaxResponse:{serviceData:t,clusterQuery:i}};a.Gateway_ServiceModal(o,function(e){e&&r.fun.init()})};if("edit"===e){var c=s.getServiceData(t.item.name);c.then(function(e){if("discovery"===t.item.type){var n=e.data.clusterConfig||{};for(var a in n)l.clusterNameObj.hasOwnProperty(a)&&(i[l.clusterNameObj[a]].value=n[a])}o(e.data)})}else o()};if(c.clusterQuery)i(angular.copy(c.clusterQuery));else{var o=s.initCluster();o.then(function(e){c.clusterQuery=e.clusters||[],c.clusterQuery.map(function(e,t){l.clusterNameObj[e.name]=t}),i(c.clusterQuery)})}},s["delete"]=function(e){var n={names:"batch"==e.status?r.data.batch.query.join(","):e.item.name},o={title:"batch"==e.status?"批量删除服务注册方式":"删除服务注册方式-"+e.item.name};a.EnsureModal(o.title,null,"确认删除?",{},function(c){c&&t.ServiceDiscovery.Delete(n).$promise.then(function(t){switch(t.statusCode){case i.COMMON.SUCCESS:switch(e.status){case"batch":s.resetBatchInfo(),r.fun.init();break;case"single":r.ajaxResponse.query.splice(e.$index,1)}a.InfoModal(o.title+"成功","success")}})})},s.resetBatchInfo=function(){r.data.batch.isOperating=!1,r.data.batch.selectAll=!1,r.data.batch.query=[],r.data.batch.indexAddress={}},r.$onInit=function(){e.$emit("$WindowTitleSet",{list:["服务注册方式"]}),r.component.listDefaultCommonObject={item:{primaryKey:"name","default":[{key:"服务注册方式",html:"{{item.name}}"},{key:"服务类型",html:"{{item.driver}}"},{key:"更新时间",html:"{{item.updateTime}}",keyStyle:{width:"200px"}}],operate:{funArr:[{key:"修改",show:!1,fun:s.edit,params:'"edit",arg'},{key:"删除",show:!1,fun:s["delete"],params:{status:"single"}}],"class":"w_200"}},setting:{batch:!0,unhover:!0,warning:"尚未添加任何内容",defaultFoot:!0}},r.component.menuObject={list:[{type:"btn",authority:"edit","class":"pull-left",btnList:[{name:"服务注册方式",icon:"jiahao","class":"eo_theme_btn_success block-btn",fun:{"default":s.edit,params:'"add"'}}]},{type:"search","class":"pull-right",keyword:r.ajaxRequest.keyword,fun:s.search,placeholder:"输入服务注册方式名称"}],batchList:[{type:"btn",disabledPoint:"isBatchSelected","class":"pull-left",btnList:[{name:"删除",icon:"shanchu",disabled:!1,fun:{"default":s["delete"],params:{status:"batch"}}}]}],setting:{batch:!0,batchInitFun:s.resetBatchInfo,"class":"common-menu-fixed-seperate common-menu-lg",titleAuthority:"showTitle",title:"服务注册方式",secondTitle:"您可以通过静态或动态的方式来注册(发现)您的后端服务,创建好服务注册方式后,您可以在某个方式的基础上创建一个或多个负载(Upstream)"}}}}angular.module("eolinker").component("balanceService",{templateUrl:"app/ui/content/balance/service/index.html",controller:e}),e.$inject=["$scope","GatewayResource","$state","$rootScope","CODE","Authority_CommonService"]}(),function(){"use strict";function e(e,t,n,a,i,o){var r=this;r.data={batch:{address:[]}},r.ajaxRequest={balanceName:[],keyword:window.sessionStorage.getItem("COMMON_SEARCH_TIP")},r.ajaxResponse={query:null},r.service={authority:o},r.component={menuObject:{},listRequireObject:null},r.fun={};var s={},c={};r.fun.init=function(){var e={};return r.ajaxRequest.keyword&&(e.keyword=r.ajaxRequest.keyword),a.global.ajax.Query_Balance=t.Balance.Query(e),a.global.ajax.Query_Balance.$promise.then(function(e){r.ajaxResponse.query=e.balanceList||[]}),a.global.ajax.Query_Balance.$promise},s.search=function(e){window.sessionStorage.setItem("COMMON_SEARCH_TIP",e.item.keyword),n.reload(n.current.name)},s.resetBatchInfo=function(){r.data.batch.isOperating=!1,r.data.batch.selectAll=!1,r.data.batch.query=[],r.data.batch.indexAddress={}},s.initRegistry=function(){return a.global.ajax.Query_ServiceDiscovery&&a.global.ajax.Query_ServiceDiscovery.$cancelRequest(),a.global.ajax.Query_ServiceDiscovery=t.ServiceDiscovery.SimpleQuery(),a.global.ajax.Query_ServiceDiscovery.$promise.then(function(e){c.registry=e.data.list}),a.global.ajax.Query_ServiceDiscovery.$promise},s.edit=function(e){var t={status:e.status};switch(e.status){case"edit":t.balanceName=e.item.balanceName,n.go("home.balance.list.operate",t);break;default:var i=s.initRegistry();i["finally"](function(){0===c.registry.length?a.InfoModal("请先新建服务注册方式","error"):n.go("home.balance.list.operate",t)})}},s["delete"]=function(e){var n={request:{balanceNames:"batch"==e.status?r.data.batch.query.join(","):e.item.balanceName},modal:{title:"batch"==e.status?"批量删除负载":"删除负载-"+e.item.balanceName},loop:{num:0}};a.EnsureModal(n.modal.title,null,"确认删除?",{},function(o){o&&t.Balance.Delete(n.request).$promise.then(function(t){switch(t.statusCode){case i.COMMON.SUCCESS:switch(e.status){case"batch":s.resetBatchInfo(),r.fun.init();break;case"single":r.ajaxResponse.query.splice(e.$index,1)}a.InfoModal(n.modal.title+"成功","success")}})})},r.$onInit=function(){e.$emit("$WindowTitleSet",{list:["负载管理"]}),r.component.listDefaultCommonObject={item:{primaryKey:"balanceName","default":[{key:"名称",html:"{{item.balanceName}}"},{key:"服务注册方式",html:"{{item.serviceName}}"},{key:"更新时间",html:"{{item.updateTime}}","class":"w_200"}],operate:{funArr:[{key:"修改",fun:s.edit,params:{status:"edit"}},{key:"删除",fun:s["delete"],params:{status:"single"}}],"class":"w_150"}},setting:{batch:!0,unhover:!0,warning:"尚未添加负载",defaultFoot:!0}},r.component.menuObject={list:[{type:"btn",authority:"edit","class":"pull-left",btnList:[{name:"添加负载",icon:"jiahao","class":"eo_theme_btn_success block-btn",fun:{"default":s.edit,params:{status:"add"}}}]},{type:"search","class":"pull-right",keyword:r.ajaxRequest.keyword,fun:s.search,placeholder:"输入负载名称或服务注册方式"}],batchList:[{type:"btn",disabledPoint:"isBatchSelected","class":"pull-left",btnList:[{name:"删除",icon:"shanchu",disabled:!1,fun:{"default":s["delete"],params:{status:"batch"}}}]}],setting:{batch:!0,batchInitFun:s.resetBatchInfo,"class":"common-menu-fixed-seperate common-menu-lg",titleAuthority:"showTitle",title:"负载配置",secondTitle:"配置API的转发目标服务器(负载后端),创建之后可以设置为 API 的转发地址 / 负载后端(Target / Upstream)"}}}}angular.module("eolinker").component("balanceList",{templateUrl:"app/ui/content/balance/list/index.html",controller:e}),e.$inject=["$scope","GatewayResource","$state","$rootScope","CODE","Authority_CommonService"]}(),function(){"use strict";function e(e,t,n){var a=this;a.data={info:{strategyID:t.params.strategyID,shrinkObject:{}}},a.service={authority:n},a.$onInit=function(){e.$emit("$Home_ShrinkSidebar",{shrink:!1})}}angular.module("eolinker").config(["$stateProvider","RouteHelpersProvider",function(e,t){e.state("gepdit.inside",{url:"/inside?projectHashKey",template:""})}]).component("gepditInside",{templateUrl:"app/ui/content/gpedit/inside/index.html",controller:e}),e.$inject=["$scope","$state","Authority_CommonService"]}(),function(){"use strict";function e(e,t){var n=this,a={cache:e};n.component={},n.$onInit=function(){a.cache.clear("gpeditGroup"),n.component.menuObject={list:[{type:"btn","class":"btn-group-li pull-left",btnList:[{name:"返回策略列表",icon:"chexiao",fun:{"default":function(){t.go("home.gpedit.default")}}}]}],setting:{"class":"common-menu-fixed-seperate"}}}}angular.module("eolinker").component("gpeditCommon",{templateUrl:"app/ui/content/gpedit/common/index.html",controller:e}),e.$inject=["Cache_CommonService","$state"]}(),function(){"use strict";function e(e,t,n){var a=this;a.component={menuObject:null},a.fun={},a.ajaxResponse={};var i={};i.ajaxOpenGpedit=function(){n.Strategy.Info({strategyType:1}).$promise.then(function(e){a.ajaxResponse.openGpeditInfo=e.strategyInfo||{}})},a.fun.enterGpedit=function(e){switch(e){case"open":t.go("home.gpedit.inside.api.default",{groupType:"open",strategyID:a.ajaxResponse.openGpeditInfo.strategyID,strategyName:a.ajaxResponse.openGpeditInfo.strategyName});break;case"common":t.go("home.gpedit.common.list",{groupType:"common"})}},a.$onInit=function(){e.$emit("$WindowTitleSet",{list:["访问策略"]}),a.component.menuObject={setting:{"class":"common-menu-fixed-seperate common-menu-lg",titleAuthority:"showTitle",title:"访问策略",secondTitle:"您可以给不同的调用方或应用设置访问策略,不同的访问策略可以设置不同的 API 访问权限、鉴权方式以及插件功能等"}},i.ajaxOpenGpedit()}}angular.module("eolinker").component("gpeditOverview",{templateUrl:"app/ui/content/gpedit/overview/index.html",controller:e}),e.$inject=["$scope","$state","GatewayResource"]}(),function(){"use strict";function e(e,t,n,a,i){var o=this;o.data={isEdit:!1,menu:"api"},o.ajaxResponse={alertInfo:{}},o.fun={},o.CONST={ALERT_METHOD_ARR:[{key:"API告警",value:"api",tip:"请求成功状态码在 [网关设置>基本设置] 页面设置,返回非成功状态码则视为请求失败;API的告警阀值在API编辑页面设置"}],ALERT_PROTOCOL_ARR:[{key:"不设置任何协议",value:0},{key:"SSL协议",value:1},{key:"TLS协议",value:2}],alertPeriodTypeQuery:[{key:"1分钟",value:0},{key:"5分钟",value:1},{key:"15分钟",value:2},{key:"30分钟",value:3},{key:"60分钟",value:4}]},o.service={authority:i};var r={alertInfo:{}},s={};o.fun.startAlert=function(){o.data.isEdit&&(o.ajaxResponse.alertInfo.alertStatus=o.ajaxResponse.alertInfo.alertStatus?0:1)},o.fun.changeNotice=function(e){e.$last&&o.ajaxResponse.alertInfo[o.data.menu+"AlertInfo"].userEmail.push({value:""})},o.fun.authorityToEdit=function(){o.data.isEdit=!0,o.ajaxResponse.alertInfo.apiAlertInfo.userEmail[o.ajaxResponse.alertInfo.apiAlertInfo.userEmail.length-1].value&&o.ajaxResponse.alertInfo.apiAlertInfo.userEmail.push({value:""})},o.fun.changeAlertMenu=function(e){o.data.menu=e},o.fun.deleteNotice=function(e){o.ajaxResponse.alertInfo[o.data.menu+"AlertInfo"].userEmail.splice(e.$index,1)},o.fun.checkIsValidEmail=function(e){return!/^[0-9A-Za-z-_.]+@[0-9a-z-]+\.[a-z]{2,20}(\.[a-z]{2,20}){0,1}$/.test(e)&&e},s.spliceUserEmailArr=function(e){var t=!0,n=!1,a=void 0;try{for(var i,r=e[Symbol.iterator]();!(t=(i=r.next()).done);t=!0){var s=i.value;o.ajaxResponse.alertInfo[s+"AlertInfo"].userEmail.length>1&&o.ajaxResponse.alertInfo[s+"AlertInfo"].userEmail.splice(o.ajaxResponse.alertInfo[s+"AlertInfo"].userEmail.length-1,1)}}catch(c){n=!0,a=c}finally{try{!t&&r["return"]&&r["return"]()}finally{if(n)throw a}}},s.setReceiverList=function(e){var t=[],n=!0,a=!1,i=void 0;try{for(var r,s=e[Symbol.iterator]();!(n=(r=s.next()).done);n=!0){var c=r.value;if(o.fun.checkIsValidEmail(c.value))return!1;c.value&&t.push(c.value)}}catch(l){a=!0,i=l}finally{try{!n&&s["return"]&&s["return"]()}finally{if(a)throw i}}return t.join(",")},o.fun.editAlert=function(){if(o.data.submitted=!0,a.ConfirmForm.$invalid)return void e.InfoModal("编辑失败,请检查信息是否填写完整!","error");var i={alertStatus:o.ajaxResponse.alertInfo.alertStatus,sender:o.ajaxResponse.alertInfo.sender,senderPassword:o.ajaxResponse.alertInfo.senderPassword,smtpAddress:o.ajaxResponse.alertInfo.smtpAddress,smtpPort:o.ajaxResponse.alertInfo.smtpPort,smtpProtocol:o.ajaxResponse.alertInfo.smtpProtocol,apiAlertInfo:angular.copy(o.ajaxResponse.alertInfo.apiAlertInfo)};return i.apiAlertInfo.receiverList=s.setReceiverList(i.apiAlertInfo.userEmail),i.apiAlertInfo.receiverList===!1?void e.InfoModal("编辑失败,请检查信息是否填写完整!","error"):(delete i.apiAlertInfo.userEmail,i.apiAlertInfo=JSON.stringify(i.apiAlertInfo),void n.Config.AlertEdit(i).$promise.then(function(n){switch(n.statusCode){case t.COMMON.SUCCESS:e.InfoModal("修改成功!","success"),o.data.isEdit=!1,s.spliceUserEmailArr(["api","node","redis"]),angular.copy(o.ajaxResponse.alertInfo,r.alertInfo)}}))},o.fun.cancleAlert=function(){o.data.isEdit=!1,o.data.userEmail=angular.copy(r.userEmail),o.ajaxResponse.alertInfo=angular.copy(r.alertInfo)},s.splitMailStr=function(e){var t=[];return e.split(",").map(function(e,n){t.push({value:e})}),t},o.$onInit=function(){n.Config.AlertInfo().$promise.then(function(e){switch(e.statusCode){case t.COMMON.SUCCESS:o.ajaxResponse.alertInfo=e.gatewayConfig||{alertStatus:0,sender:"",senderPassword:"",smtpAddress:"",smtpPort:"",smtpProtocol:0,apiAlertInfo:{alertPeriodType:0,receiverList:"",alertAddr:""}},o.ajaxResponse.alertInfo.apiAlertInfo.userEmail=s.splitMailStr(o.ajaxResponse.alertInfo.apiAlertInfo.receiverList),angular.copy(o.ajaxResponse.alertInfo,r.alertInfo)}})}}angular.module("eolinker").component("alertSetting",{templateUrl:"app/ui/content/alert/setting/index.html",controller:e}),e.$inject=["$rootScope","CODE","GatewayResource","$scope","Authority_CommonService"]}(),function(){"use strict";function e(e,t,n,a,i){var o=this;o.data={pagination:{maxSize:10,pageSize:50,page:0,msgCount:0}},o.ajaxResponse={query:[]},o.component={menuObject:{},listRequireObject:null},o.fun={};var r={},s={};o.service={authority:i},o.fun.init=function(){return r.initLoadAjax()},r.initLoadAjax=function(){var e={pageSize:o.data.pagination.pageSize,page:o.data.pagination.page+1},a=o.ajaxResponse.query||[];return s.isQuerying=!0,n.global.ajax.Query_AlertMessage=t.AlertMessage.Query(e),n.global.ajax.Query_AlertMessage.$promise.then(function(e){o.ajaxResponse.query=a.concat(e.alertMessageList||[]),o.data.pagination.msgCount=e.page.totalNum||0,o.data.pagination.page++,s.isQuerying=!1}),n.global.ajax.Query_AlertMessage.$promise},r.scrollLoading=function(){var e={hasItem:o.ajaxResponse.query&&0!==o.ajaxResponse.query.length,hasNextPage:o.data.pagination.page0?(i.data.hasParent=!0,i.data.query=s.getChildGroup(t)):i.data.wantToSelect=!1,r.resetGroup(t)},r.clearText=function(){i.data.q=""},i.fun.click=function(e){e.stopPropagation();var t={};try{t.point=e.target.classList[0]}catch(n){t.point="default"}switch(t.point){case"select-multistage-btn-clear-text":r.clearText();break;case"select-multistage-btn-close":i.data.wantToSelect=!1;break;case"select-multistage-btn-back":r.goToParent();break;case"select-multistage-btn-item":t.index=e.target.getAttribute("eo-attr-index"),t.query=[],i.data.query.map(function(e,n){i.fun.filter(e)&&t.query.push(e)}),r.clickGroup(t.query[t.index]);break;case"select-multistage-btn-item-span":t.index=e.target.parentNode.getAttribute("eo-attr-index"),t.query=[],i.data.query.map(function(e,n){i.fun.filter(e)&&t.query.push(e)}),r.clickGroup(t.query[t.index])}},r.initial=function(){(i.data.query||[]).length<=0||(o=l.groupCommon.fun.generalGroupInfo({list:i.data.query}),i.input[i.input.value]<=0?(c.initialObject.query=s.getChildGroup(0),c.initialObject.textList=l.groupCommon.fun.getGroupPath({currentGroupID:c.initialObject.query[0][i.input.value],groupInfo:o}),i.data.hasParent=!1,c.selectGroup=o.groupObj[c.initialObject.query[0][i.input.value]]):(c.initialObject.query=s.getBrotherGroup(i.input[i.input.value]),c.initialObject.textList=c.initialObject.textList=l.groupCommon.fun.getGroupPath({currentGroupID:i.input[i.input.value],groupInfo:o}),c.selectGroup=o.groupObj[i.input[i.input.value]],i.data.hasParent=!!c.selectGroup.parentGroupID),r.resetInitial())},r.resetInitial=function(){i.output={},i.data.query=angular.copy(c.initialObject.query),i.data.textList=angular.copy(c.initialObject.textList);var e="";for(var t in i.data.textList)e=e+(e?">":"")+i.data.textList[t][i.input.key]; -i.output["new"]=i.output.original={text:e,value:i.data.textList[i.data.textList.length-1][i.input.value]}},c.broadcast=t.$on("$ResetInitial_SelectMultistageCommonComponent",r.resetInitial),e.global.$watch.push(t.$watch("$ctrl.input.query",function(){i.input.query&&(i.data.query=i.input.query,r.initial())})),t.$on("$destroy",function(){c.broadcast()})}angular.module("eolinker").component("selectMultistageCommonComponent",{templateUrl:"app/component/common/select/multistage/index.html",bindings:{input:"<",disabled:"<",output:"="},controller:e}),e.$inject=["$rootScope","$scope","$document","Group_MultistageService"]}();var _typeof="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};!function(){"use strict";function indexController($scope,$state){var vm=this;vm.data={info:{sortForm:{containment:".group-form-ul",child:{containment:".child-group-form-ul"},grandson:{containment:".third-level-group-form-ul"}}},fun:{more:null,common:null}};var fun={};vm.data.fun.more=function(e){e.$event.stopPropagation(),e.item.listIsClick=!0},vm.data.fun.common=function(extend,arg){if(extend){var template={params:arg};switch(_typeof(extend.params)){case"string":return eval("extend.fun("+extend.params+")");default:for(var key in extend.params)null==extend.params[key]?template.params[key]=arg[key]:template.params[key]=extend.params[key];return extend.fun(template.params)}}},fun.show=function(){!vm.mainObject.showRouterList||vm.mainObject.showRouterList.indexOf($state.current.name)>-1?(vm.mainObject.baseFun.init&&vm.mainObject.baseFun.init(),vm.data.info.show=!0):vm.data.info.show=!1},vm.$onInit=function(){fun.show(),$scope.$on("$stateChangeSuccess",function(){fun.show()})}}angular.module("eolinker").component("groupCommonComponent",{templateUrl:"app/component/common/group/old/index.html",controller:indexController,bindings:{authorityObject:"<",funObject:"<",sortObject:"<",mainObject:"<",list:"<"}}),indexController.$inject=["$scope","$state"]}();var _typeof="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};!function(){"use strict";function indexController(){var vm=this;vm.data={selectAllMore:!1,listOrderBy:{}},vm.fun={};var fun={},privateFun={};fun.generateHtml=function(e,t){var n={html:""};switch(e){case"select":n.html='{{$ctrl.otherObject.batch.indexAddress[item."+vm.mainObject.item.primaryKey+"]?'':' '}}"}return n.html},vm.fun.showMore=function(e){var t={};try{t.point=e.$event.target.classList[0]}catch(n){t.point="default"}switch(t.point){case"more-btn":case"more-btn-icon":e.$event.stopPropagation(),e.item.clickMore=!e.item.clickMore}},vm.fun.autoSortFun=function(e){if(!(e.listItem.sort!==!0||vm.mainObject.setting.batch&&(vm.otherObject.batch.isOperating&&"open"!==vm.mainObject.setting.batchInitStatus||vm.otherObject.batchMenu&&vm.otherObject.batchMenu.isOperating))){var t={orderBy:e.item.sortOrderByVal};vm.data.listOrderBy.orderBy===e.item.sortOrderByVal?t.asc=0==e.item.asc?1:0:t.asc=e.item.asc;var n=vm.mainObject.baseFun.autoSortFun({listOrderBy:t});!n&&vm.mainObject.setting.sortStorageKey&&(vm.data.listOrderBy.orderBy===e.item.sortOrderByVal&&(e.item.asc=t.asc),vm.data.listOrderBy=t,window.localStorage.setItem(vm.mainObject.setting.sortStorageKey,angular.toJson(t)))}},privateFun.dragMouseup=function(e,t){vm.mainObject.setting.dragCacheObj[e]=t,window.localStorage.setItem(vm.mainObject.setting.dragCacheVar,JSON.stringify(vm.mainObject.setting.dragCacheObj))},vm.fun.range=function(e,t){return e=e||1,(!vm.list[t.$index+1]||(vm.list[t.$index+1].listDepth||0)<=(t.item.listDepth||0))&&e--,new Array(e)},fun.getTargetEvent=function(e,t){var n=e.getAttribute(t||"eo-attr-index");return n?e:fun.getTargetEvent(e.parentNode,t)},fun.getTargetIndex=function(e,t){var n=e.getAttribute(t||"eo-attr-index");return n?n:fun.getTargetIndex(e.parentNode,t)},fun.operateLevel=function(e,t,n){for(var a={operateName:angular.element(t).hasClass("ng-hide")?"removeClass":"addClass"},i=n,o=n;t&&e"+a.key+""}switch(vm.mainObject.setting.autoSort&&a.sort&&(vm.data.listOrderBy.orderBy===a.sortOrderByVal?a.asc=vm.data.listOrderBy.asc:a.asc="asc"===vm.mainObject.setting.sortDefaultVal.sortOrder?1:0),vm.mainObject.setting.draggable&&(a.draggableMainObject=Object.assign({},e,{mark:a.draggableCacheMark})),t.thItemHtml+='"+o+" \n "+(vm.mainObject.setting.autoSort&&a.sort?'':"")+'\n
 
",n+=' ",a.type){case"depthHtml":vm.data.isDepth=!0,t.itemHtml+='
'+a.html+"
";break;default:t.itemHtml+='"+a.html+"\n")}})}vm.mainObject.item.operate&&(angular.forEach(vm.mainObject.item.operate.funArr,function(e,n){switch(e.type){case"more":angular.forEach(e.funArr,function(e,a){"html"==e.type?t.moreFunArrHtml+=e.html:t.moreFunArrHtml+='
  • "+e.key+"
  • "}),t.operateHtml+='
    {{$ctrl.mainObject.item.operate.funArr["+n+'].key}}
      '+t.moreFunArrHtml+"
    ";break;case"html":t.operateHtml+=e.html;break;default:t.operateHtml+='"}}),t.operateHtml='
    "+t.operateHtml+"
    ");var s=(vm.mainObject.setting.batch?''+(vm.mainObject.setting.page?'
    \n \n
    \n \n
    ':' ')+"":"")+t.thItemHtml+''+(vm.mainObject.setting.operateThKey||"操作")+(""+(vm.mainObject.setting.draggable?"":"")),c=(vm.mainObject.setting.batch?' ':"")+n+(' '+(vm.mainObject.setting.draggable?"":""));t.html=''+(t.itemHtml+t.operateHtml)+(vm.mainObject.setting.draggable?"":"")+"";try{t.html=t.html.replace("{{trExpression}}",vm.mainObject.setting.trExpression||""),t.html=t.html.replace("{{trNgClass}}",vm.mainObject.setting.trNgClass||"")}catch(l){}vm.data.tableHtml='
    "+(""+s+"")+"
    "+(vm.mainObject.setting.page?'
    \n
    • 选择所有数据 (共{{$ctrl.pageObject.pageInfo.msgCount}}条)
    • 选择可见数据 (共{{(($ctrl.pageObject.pageInfo.page*$ctrl.pageObject.pageInfo.pageSize+($ctrl.pageObject.pageInfo.extraOprNum||0))>$ctrl.pageObject.pageInfo.msgCount)?$ctrl.pageObject.pageInfo.msgCount:($ctrl.pageObject.pageInfo.pageSize*$ctrl.pageObject.pageInfo.page+($ctrl.pageObject.pageInfo.extraOprNum||0))}}条)
    \n
    ':"")+('
    \n ':">")+(''+c+"")+''+t.html+'
    '+(vm.mainObject.setting.warning||"尚无任何内容")+"
    "+(vm.mainObject.setting.defaultFoot?'
    共{{$ctrl.list.length}}条记录
    ':"")+"
    "+(vm.mainObject.setting.page?'':vm.mainObject.setting.fixFoot?'':"")+"
    "},fun.countItemSelectIsAll=function(e){if(e)if(vm.mainObject.setting.page){for(var t=!1,n=0;n-1&&a>t&&(t=a)}),t+2},privateFun.resetAfterChangeParentGroupID=function(e,t){e.parentGroupID!=t&&(groupInfo.groupObj[e.groupID].parentGroupID=t,0==t?(groupInfo.parentGroupPath[e.groupID]=[0],groupInfo.groupObj[e.groupID].groupDepth=1):(groupInfo.parentGroupPath[e.groupID]=[t].concat(groupInfo.parentGroupPath[t]),groupInfo.groupObj[e.groupID].groupDepth=groupInfo.groupObj[t].groupDepth+1),privateFun.resetChildGroup(e.groupID))},privateFun.isFatherGroupID=function(e){return 0!=e.child&&groupInfo.parentGroupPath[e.child].indexOf(e.parent)>-1},privateFun.spreed=function(e){vm.funObject.baseFun&&vm.funObject.baseFun.spreed?vm.funObject.baseFun.spreed(e):(e.list=vm.ajaxResponse.query,e.groupInfo=groupInfo,service.groupCommon.fun.spreed(e))},vm.fun.click=function(e){var t="";e=e||{};try{t=e.$event.target.classList[0]}catch(n){t="group"}switch(t){case"group-icon":e.item||(e.item=vm.ajaxResponse.query[$filter("findAttr")(e.$event.target,"data-index")]),privateFun.spreed(e);break;case"actural-group-box":break;default:if(!e.item){var a=$filter("findAttr")(e.$event.target,"data-index");e.item=vm.ajaxResponse.query[a],e.$index=a}var i=function(){service.groupCommon.generalFun.initGroupStatus({currentGroupID:e.item.groupID,groupInfo:groupInfo,list:vm.ajaxResponse.query})};vm.funObject.baseFun&&vm.funObject.baseFun.click?vm.funObject.baseFun.click(e,i):(vm.mainObject.baseInfo.current.groupID!=e.item.groupID&&($state.go($state.current.name,angular.merge({groupID:e.item.groupID},vm.requestObject?vm.requestObject.baseRequest:{})),vm.mainObject.baseInfo.current.groupID=e.item.groupID),i(),vm.funObject&&vm.funObject.clickCallback&&vm.funObject.clickCallback(e))}},vm.fun.sort=function(e){if(vm.mainObject.baseInfo.sort){e=e||{};var t={before:e.from.parentGroupID,after:null},n=angular.copy(groupInfo),a=e.from.groupID,i=e.to.groupID;if(!privateFun.isFatherGroupID({child:i,parent:a})){var o=groupInfo.locationArr.indexOf(a),r=groupInfo.locationArr.indexOf(i);switch(e.where){case"before":var s=service.groupCommon.generalFun.getNextNotChildGroup({currentGroupID:a,groupInfo:groupInfo}),c=s?groupInfo.locationArr.indexOf(s)-o:groupInfo.locationArr.length-o;if(o+c-1==r-1&&e.from.groupDepth==e.to.groupDepth)return;var l=privateFun.getDeepestGroupDepth(e.from.groupID);if(l+e.to.groupDepth-1>data.maxLevel)return void $rootScope.InfoModal("分组最多支持"+data.maxLevel+"级","error");t.after=e.to.parentGroupID;var u=groupInfo.locationArr.splice(o,c);r=groupInfo.locationArr.indexOf(i),u.forEach(function(e,t){groupInfo.locationArr.splice(r+t,0,e)}),groupInfo.childGroupPath[t.before].splice(groupInfo.childGroupPath[t.before].indexOf(a),1),groupInfo.childGroupPath[t.after].splice(groupInfo.childGroupPath[t.after].indexOf(i),0,a),privateFun.resetAfterChangeParentGroupID(e.from,t.after);break;case"in":var p=groupInfo.childGroupPath[t.before].indexOf(a)==groupInfo.childGroupPath[t.before].length-1;if(t.before==t.after&&p)return;var d=privateFun.getDeepestGroupDepth(e.from.groupID);if(d+e.to.groupDepth>data.maxLevel)return void $rootScope.InfoModal("分组最多支持"+data.maxLevel+"级","error");t.after=e.to.groupID;var m=service.groupCommon.generalFun.getNextNotChildGroup({currentGroupID:a,groupInfo:groupInfo}),f=m?groupInfo.locationArr.indexOf(m)-o:groupInfo.locationArr.length-o,h=groupInfo.locationArr.splice(o,f);groupInfo.childGroupPath[t.before].splice(groupInfo.childGroupPath[t.before].indexOf(a),1),r=service.groupCommon.generalFun.getGroupLastChildIndex({currentGroupID:t.after,groupInfo:groupInfo})+1,h.forEach(function(e,t){groupInfo.locationArr.splice(r+t,0,e)}),groupInfo.childGroupPath[t.after]=groupInfo.childGroupPath[t.after]||[],groupInfo.childGroupPath[t.after].push(a),privateFun.resetAfterChangeParentGroupID(e.from,t.after);break;case"after":if(o==r+1&&e.from.groupDepth==e.to.groupDepth)break;var g=privateFun.getDeepestGroupDepth(e.from.groupID);if(g+e.to.groupDepth-1>data.maxLevel)return void $rootScope.InfoModal("分组最多支持"+data.maxLevel+"级","error");t.after=e.to.parentGroupID;var v=service.groupCommon.generalFun.getNextNotChildGroup({currentGroupID:a,groupInfo:groupInfo});groupInfo.childGroupPath[t.before].splice(groupInfo.childGroupPath[t.before].indexOf(a),1);var b=v?groupInfo.locationArr.indexOf(v)-o:groupInfo.locationArr.length-o,$=groupInfo.locationArr.splice(o,b);r=groupInfo.locationArr.length,$.forEach(function(e,t){groupInfo.locationArr.splice(r+t,0,e)}),groupInfo.childGroupPath[t.after].push(a),privateFun.resetAfterChangeParentGroupID(e.from,t.after);break;default:return}service.groupCommon.generalFun.sortByLocationArr({list:vm.ajaxResponse.query,groupInfo:groupInfo});var y={groupOrder:null};y.groupOrder=[{parentGroupID:t.after,groupID:[a]}],t.after!=t.before&&y.groupOrder.push({parentGroupID:t.before}),angular.forEach(y.groupOrder,function(e){var t={};angular.forEach(groupInfo.childGroupPath[e.parentGroupID],function(e,n){t[e]=n}),e.groupOrder=t}),y.groupOrder=JSON.stringify(y.groupOrder),angular.merge(y,vm.requestObject.baseRequest),vm.requestObject.resource.Sort(y).$promise.then(function(a){switch(a.statusCode){case CODE.COMMON.SUCCESS:privateFun.reloadItem({parentGroupID:t,opGroup:e.from}),"in"==e.where&&service.groupCommon.generalFun.openGroup({currentGroupID:t.after,list:vm.ajaxResponse.query,groupInfo:groupInfo});break;default:$rootScope.InfoModal("排序失败,"+RESPONSE_TEXT.FAILURE,"error"),groupInfo=n,service.groupCommon.generalFun.resetGroupInfo(groupInfo),service.groupCommon.generalFun.sortByLocationArr({list:vm.ajaxResponse.query,groupInfo:groupInfo})}vm.service.cache.set(vm.ajaxResponse.query)})}}},privateFun.init=function(e){var t=angular.copy(vm.requestObject.baseRequest),n={response:null};vm.service.cache.clear(),data.requesting||(data.requesting=!0,$rootScope.global.ajax.Query_Group=vm.requestObject.resource.Query(t),$rootScope.global.ajax.Query_Group.$promise.then(function(e){switch(data.requesting=!1,e.statusCode){case CODE.COMMON.SUCCESS:vm.mainObject.baseInfo.queryName&&(e.groupList=e[vm.mainObject.baseInfo.queryName]),n.response=service.groupCommon.sort.init(e,vm.mainObject.baseInfo.current.groupID),vm.ajaxResponse.query=n.response.groupList,groupInfo=n.response.groupInfo,vm.funObject.callback&&vm.funObject.callback.querySuccess(vm.ajaxResponse.query)}}))},privateFun.edit=function(e,t){if("add-child"==e&&t.item.groupDepth>=data.maxLevel)return void $rootScope.InfoModal("分组最多支持"+data.maxLevel+"级","error");t=t||{};var n={title:("edit"==e?"编辑":"新建")+(t.item?"子分组":"分组"),data:"edit"==e?t.item:null,secondTitle:"分组名称"};$rootScope.GroupModal(n,function(a){a&&(angular.merge(a,vm.requestObject.baseRequest),"edit"==e?(a.groupID=t.item.groupID,$filter("Field_CommonFilter")("object",a,["$index"]),vm.requestObject.resource.Edit(a).$promise.then(function(e){switch(e.statusCode){case CODE.COMMON.SUCCESS:$rootScope.InfoModal(n.title+"成功!","success"), -privateFun.init()}})):("add-child"==e&&(a.parentGroupID=t.item.groupID),$filter("Field_CommonFilter")("object",a,["$index","groupID"]),vm.requestObject.resource.Add(a).$promise.then(function(e){switch(e.statusCode){case CODE.COMMON.SUCCESS:$rootScope.InfoModal(n.title+"成功!","success"),privateFun.init()}})))})},privateFun["delete"]=function(e){e=e||{};var t=Object.assign({},{groupID:e.item.groupID},vm.requestObject.baseRequest),n=e.modal;$rootScope.EnsureModal(n.title,!1,n.message,{},function(n){n&&vm.requestObject.resource.Delete(t).$promise.then(function(t){switch(t.statusCode){case CODE.COMMON.SUCCESS:var n=privateFun.judgeItemRelation(e.item.groupID,vm.mainObject.baseInfo.current.groupID);service.groupCommon.fun.deleteGroup({currentGroup:e.item,list:vm.ajaxResponse.query,groupInfo:groupInfo}),vm.service.cache.set(vm.ajaxResponse.query),$rootScope.InfoModal("分组删除成功!","success"),e.callback?e.callback(e,angular.copy(t),{nowGroupWithDelteItemRelation:n}):$state.params.groupID==e.item.groupID?(vm.mainObject.baseInfo.current[vm.mainObject.baseInfo.id]=e.item.parentGroupID||-1,$state.go($state.current.name,angular.merge({groupID:e.item.parentGroupID||-1},vm.requestObject?vm.requestObject.baseRequest:{}))):privateFun.reloadItem({parentGroupID:{before:e.item.parentGroupID,after:0},opGroup:e.item});break;default:$rootScope.InfoModal("分组删除失败,"+RESPONSE_TEXT.FAILURE,"error")}})})},vm.fun.more=function(e){var t="";e.$event.stopPropagation(),e.item.listIsClick=!0,vm.data.listIsClick=!0;try{t=e.$event.target.classList[0]}catch(n){t="group"}switch(t){case"more-icon":break;case"active":break;default:var a=$filter("findAttr")(e.$event.target,"data-child-index");vm.fun.common(vm.mainObject.itemFun[a],e)}},vm.fun.common=function(extend,arg){if(extend){var tmpParam=arg||{};switch(extend.fun||(extend.fun=privateFun[extend.funName]),_typeof(extend.params)){case"string":return eval("extend.fun("+extend.params+")");default:for(var key in extend.params)null==extend.params[key]?tmpParam[key]=arg[key]:tmpParam[key]=extend.params[key];return extend.fun(tmpParam,privateFun.init)}}},vm.$onInit=function(){"modal"!=vm.mainObject.baseInfo.type&&(vm.service.cache.isShrink=!1),vm.mainObject.baseInfo.initGroupDepth=0==vm.mainObject.baseInfo.initGroupDepth?0:1,"cancelRequest"!=vm.mainObject.baseInfo.status&&privateFun.init()},privateFun.watchResetFlag=$scope.$watch("$ctrl.mainObject.baseInfo.resetFlag",function(){switch(vm.mainObject.baseInfo.status){case"cancelRequest":vm.ajaxResponse.query=vm.list,groupInfo=service.groupCommon.fun.generalGroupInfo({list:vm.ajaxResponse.query}),service.groupCommon.generalFun.initGroupStatus({currentGroupID:vm.mainObject.baseInfo.current.groupID,groupInfo:groupInfo,list:vm.ajaxResponse.query});break;default:vm.requestObject&&privateFun.init()}}),vm.$onDestroy=function(){privateFun.watchResetFlag()}}angular.module("eolinker").component("groupDefaultCommonComponent",{templateUrl:"app/component/common/group/default/index.html",controller:indexController,bindings:{list:"<",authorityObject:"<",funObject:"<",requestObject:"<",mainObject:"<"}}),indexController.$inject=["$scope","$rootScope","$state","$filter","Group_MultistageService","GroupService","CODE","RESPONSE_TEXT"]}();var _typeof="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};!function(){"use strict";function e(e){var t=this,n={editor:null,fun:{init:null}};n.fun.readOnly=function(){n.editor.setReadOnly(t.readOnly)},n.fun.render=function(){t.setVariable?n.editor.session.setValue(t.setModel[t.setVariable]||""):n.editor.session.setValue(t.setModel||"")},n.fun.initJavascriptConfig=function(){n.editor.session.setMode("ace/mode/javascript"),n.editor.setAutoScrollEditorIntoView(!0)},n.fun.autoCompleteCustom=function(e,t,n,a,i){var o={define:[{meta:"custom",caption:"eo.img",value:"eo.img",score:7},{meta:"custom",caption:"eo.file",value:"eo.file",score:7},{meta:"custom",caption:"eo.execute",value:"eo.execute",score:6},{meta:"custom",caption:"eo.stop",value:"eo.stop",score:5},{meta:"custom",caption:"eo.info",value:"eo.info",score:4},{meta:"custom",caption:"eo.md5",value:"eo.md5",score:3},{meta:"custom",caption:"eo.sha1",value:"eo.sha1",score:2},{meta:"custom",caption:"eo.sha256",value:"eo.sha256",score:1},{meta:"env",caption:"env.baseUrl",value:"env.baseUrl",score:1},{meta:"env",caption:"env.headers",value:"env.headers",score:1},{meta:"env",caption:"env.extraParams",value:"env.extraParams",score:1},{meta:"env",caption:"env.globalParams",value:"env.globalParams",score:1}]};return 0===a.length?i(null,[]):i(null,o.define)},t.$onInit=function(){switch(n.editor=ace.edit(t.id||"ace-editor-ams-component-js"),n.editor.setOptions({minLines:t.minLine||5,maxLines:30,enableLiveAutocompletion:!0}),n.editor.setShowPrintMargin(!1),n.editor.setTheme("ace/theme/monokai"),n.editor.getSession().on("change",function(a){t.setVariable?t.setModel[t.setVariable]=n.editor.getValue():t.setModel=n.editor.getValue(),e.$root&&e.$root.$$phase||e.$apply()}),t.type){case"javascript":n.fun.initJavascriptConfig();try{ace.require("ace/ext/language_tools")}catch(a){}break;case"automated-javascript":n.fun.initJavascriptConfig();try{ace.require("ace/ext/language_tools").addCompleter({getCompletions:n.fun.autoCompleteCustom})}catch(a){}break;default:n.editor.session.setMode("ace/mode/rust")}e.$on("$InsertText_AceEditorAms"+(t.id||""),function(e,t){n.editor.insert(t)}),e.$on("$Maunal_AceEditorAms"+(t.id||""),function(e,t){switch(_typeof(t||"")){case"object":n.editor.session.setValue(t.data||"");break;default:n.editor.session.setValue(t||"")}}),e.$on("$ResetAceEditor_AmsEditor"+(t.id||""),function(){n.editor.session.setValue("")})},e.$watch("$ctrl.watchModel",n.fun.render),e.$watch("$ctrl.readOnly",n.fun.readOnly),e.$on("$stateChangeStart",function(){n.editor&&n.editor.destroy()}),t.$onDestroy=function(){n.editor&&n.editor.destroy()}}angular.module("eolinker").component("aceEditorAmsComponent",{controller:e,template:'
    ',bindings:{setVariable:"<",setModel:"=",type:"@",watchModel:"<",readOnly:"<",id:"@",minLine:"@"}}),e.$inject=["$scope"]}(),function(){angular.module("eolinker").component("eoNavbar",{templateUrl:"app/ui/navbar/nav0/index.html"})}(),function(){function e(e,t,n,a,i,o,r){var s=this,c={},l={authority:i};s.service={navbar:r,sidebar:a},s.data={showLogout:/home/.test(t.current.name),userInfo:null},s.fun={},s.fun.changePassword=function(){o.Gateway_ChangePasswordModal()},s.fun.logout=function(){n.User.LoginOut().$promise.then(function(n){switch(n.statusCode){case e.COMMON.SUCCESS:s.service.navbar.info.navigation={},t.go("index")}})},c.init=function(){s.data.showLogout&&(o.global.ajax.Info_User=n.User.Info(),o.global.ajax.Info_User.$promise.then(function(e){s.service.navbar.userInfo=s.data.userInfo=e.userInfo,l.authority.fun.setPermission("default",e.userInfo||{userType:0})}))}()}angular.module("eolinker").component("eoNavbar1",{templateUrl:"app/ui/navbar/nav1/index.html",controller:e}),e.$inject=["CODE","$state","CommonResource","Sidebar_CommonService","Authority_CommonService","$rootScope","NavbarService"]}(),function(){angular.module("eolinker").config(["$stateProvider","RouteHelpersProvider",function(e,t){e.state("home.setting",{url:"/setting",template:"
    "}).state("home.setting.log",{url:"/log",template:""}).state("home.setting.basic",{url:"/",template:""})}])}(),function(){"use strict";angular.module("eolinker").config(["$stateProvider","RouteHelpersProvider",function(e,t){e.state("home.plugin",{url:"/plugin",template:"
    ",containerRouter:!0}).state("home.plugin.default",{url:"/",template:""}).state("home.plugin.operate",{url:"/operate/:status?pluginName",template:"",resolve:t.resolveFor("ACE_EDITOR")})}])}(),function(){"use strict";angular.module("eolinker").config(["$stateProvider","RouteHelpersProvider",function(e,t){e.state("home.project",{url:"/project",template:"
    ",containerRouter:!0}).state("home.project.default",{url:"/",template:""}).state("home.project.api",{url:"/api?projectID?projectName",template:"",containerRouter:!0}).state("home.project.api.default",{url:"/?groupID",template:'',needExtraNav:!0}).state("home.project.api.operate",{url:"/operate/:status?apiID?groupID",template:"",needExtraNav:!0})}])}(),function(){"use strict";angular.module("eolinker").config(["$stateProvider","RouteHelpersProvider",function(e,t){e.state("home.monitor",{url:"/monitor",template:"
    "}).state("home.monitor.global",{url:"/",template:""})}])}(),function(){"use strict";function e(e,t,n,a,i,o){var r=this;r.data={submitted:!1,password:{isShow:!1}},r.ajaxRequest={loginCall:"",loginPassword:"",verifyCode:""},r.fun={},r.fun.confirm=function(){var e={loginCall:r.ajaxRequest.loginCall,loginPassword:i.createHash(r.ajaxRequest.loginPassword||"")};e.loginCall&&e.loginPassword?t.Guest.Login(e).$promise.then(function(t){switch(t.statusCode){case a.COMMON.SUCCESS:window.localStorage.setItem("LOGINCALL",e.loginCall),n.go("home.monitor.global")}}):r.data.submitted=!0},r.fun.changeView=function(){r.ajaxRequest.loginPassword&&(r.data.password.isShow=!r.data.password.isShow)}}angular.module("eolinker").config(["$stateProvider","RouteHelpersProvider",function(e,t){e.state("index",{url:"/",auth:!0,template:""})}]).component("login",{templateUrl:"app/ui/content/login/index.html",controller:e}),e.$inject=["$scope","CommonResource","$state","CODE","md5","$rootScope"]}(),function(){"use strict";angular.module("eolinker").config(["$stateProvider","RouteHelpersProvider",function(e,t){e.state("home.cluster",{url:"/cluster",template:"
    ",containerRouter:!0}).state("home.cluster.default",{url:"/",template:""}).state("home.cluster.node",{url:"/node?clusterName",template:"",needExtraNav:!0}).state("home.cluster.node.default",{url:"/:cluster?groupID",template:'',needExtraNav:!0})}])}(),function(){"use strict";angular.module("eolinker").config(["$stateProvider","RouteHelpersProvider",function(e,t){e.state("home.balance",{url:"/balance",template:"
    ",containerRouter:!0}).state("home.balance.service",{url:"/service",template:""}).state("home.balance.list",{url:"/list",template:"
    "}).state("home.balance.list.default",{url:"/",template:''}).state("home.balance.list.operate",{url:"/:status?balanceName",template:'',resolve:t.resolveFor("ACE_EDITOR")})}])}(),function(){"use strict";angular.module("eolinker").config(["$stateProvider","RouteHelpersProvider",function(e,t){e.state("home.gpedit",{url:"/gpedit",template:"
    ",containerRouter:!0}).state("home.gpedit.default",{url:"/overview",template:""}).state("home.gpedit.common",{url:"/list",template:""}).state("home.gpedit.common.list",{url:"/?groupID",template:''}).state("home.gpedit.inside",{url:"/inside/:groupType?strategyID?groupID?strategyName",template:"",containerRouter:!0}).state("home.gpedit.inside.setting",{url:"/setting",template:""}).state("home.gpedit.inside.api",{url:"/api",template:"
    ",containerRouter:!0}).state("home.gpedit.inside.api.default",{url:"/",template:""}).state("home.gpedit.inside.api.operate",{url:"/operate",template:""}).state("home.gpedit.inside.api.plugin",{url:"/plugin/:apiID",template:"",resolve:t.resolveFor("ACE_EDITOR")}).state("home.gpedit.inside.auth",{url:"/auth",template:""}).state("home.gpedit.inside.plugin",{url:"/plugin",template:"
    ",containerRouter:!0}).state("home.gpedit.inside.plugin.gpedit",{url:"/gpedit",template:"",sidebarIndex:1}).state("home.gpedit.inside.plugin.operate",{url:"/operate/:status?pluginName?chineseName",template:'',resolve:t.resolveFor("ACE_EDITOR")})}])}(),function(){"use strict";angular.module("eolinker").config(["$stateProvider","RouteHelpersProvider",function(e,t){e.state("home.alert",{url:"/alert",template:"
    ",containerRouter:!0}).state("home.alert.list",{url:"/list",template:""}).state("home.alert.setting",{url:"/",template:""})}])}(),function(){"use strict";function e(e,t,n){n.Gateway_CopyApiModal=function(e,n){var a=t.open({animation:!0,templateUrl:"Gateway_CopyApiModal",controller:"Gateway_CopyApiModalCtrl",resolve:{input:function(){return e}}});a.result.then(n)},n.Gateway_GpeditApiPluginModal=function(e,n){var a=t.open({animation:!0,templateUrl:"Gateway_GpeditApiPluginModal",controller:"Gateway_GpeditApiPluginModalCtrl",resolve:{input:function(){return e}}});a.result.then(n)},n.Gateway_ServiceModal=function(e,n){var a=t.open({animation:!0,templateUrl:"Gateway_ServiceModal",controller:"Gateway_ServiceModalCtrl",resolve:{input:function(){return e}}});a.result.then(n)},n.MixInputModal=function(e,n){var a=t.open({animation:!0,templateUrl:"MixInputModal",controller:"MixInputModalCtrl",resolve:{input:function(){return e}}});a.result.then(n)},n.Gateway_NodeCheckErrorReportModal=function(e,n){var a=t.open({animation:!0,templateUrl:"Gateway_NodeCheckErrorReportModal",controller:"Gateway_NodeCheckErrorReportModalCtrl",resolve:{input:function(){return e}}});a.result.then(n)},n.Gateway_ChangePasswordModal=function(e,n){var a=t.open({animation:!0,templateUrl:"Gateway_ChangePasswordModal",controller:"Gateway_ChangePasswordModalCtrl",resolve:{input:function(){return e}}});a.result.then(n)},n.GatewayGpeditDefaultModal=function(e,n){var a=t.open({animation:!0,templateUrl:"GatewayGpeditDefaultModal",controller:"GatewayGpeditDefaultModalCtrl",resolve:{input:function(){return e}}});a.result.then(n)},n.GatewayClusterModal=function(e,n){var a=t.open({animation:!0,templateUrl:"GatewayClusterModal",controller:"GatewayClusterModalCtrl",resolve:{input:function(){return e}}});a.result.then(n)},n.ExportModal=function(e,n){var a=t.open({animation:!0,templateUrl:"ExportModal",controller:"ExportModalCtrl",resolve:{input:function(){return e}}});a.result.then(n)},n.CommonChangePasswordModal=function(e,n){var a=t.open({animation:!0,templateUrl:"CommonChangePasswordModal",controller:"CommonChangePasswordModalCtrl",resolve:{input:function(){return e}}});a.result.then(n)},n.ImportModal=function(e,n){var a=t.open({animation:!0,templateUrl:"ImportModal",controller:"ImportModalCtrl",resolve:{input:function(){return e}}});a.result.then(n)},n.Common_SingleInputModal=function(e,n){var a=t.open({animation:!0,templateUrl:"Common_SingleInputModal",controller:"Common_SingleInputModalCtrl",resolve:{input:function(){return e}}});a.result.then(n)},n.Common_LoginModal=function(e){var n=t.open({animation:!0,templateUrl:"Common_LoginModal",controller:"Common_LoginModalCtrl"});return n.result.then(e),n},n.RequestParamDetailModal=function(e,n){var a=t.open({animation:!0,templateUrl:"RequestParamDetailModal",controller:"RequestParamDetailModalCtrl",resolve:{input:function(){return e}}});a.result.then(n)},n.RequestParamEditModal=function(e,n){var a=t.open({animation:!0,templateUrl:"RequestParamEditModal",controller:"RequestParamEditModalCtrl",resolve:{input:function(){return e}}});a.result.then(n)},n.ResponseParamEditModal=function(e,n){var a=t.open({animation:!0,templateUrl:"ResponseParamEditModal",controller:"ResponseParamEditModalCtrl",resolve:{input:function(){return e}}});a.result.then(n)},n.ResponseParamDetailModal=function(e,n){var a=t.open({animation:!0,templateUrl:"ResponseParamDetailModal",controller:"ResponseParamDetailModalCtrl",resolve:{input:function(){return e}}});a.result.then(n)},n.ExpressionBuilderModal=function(e,n){var a=t.open({animation:!0,templateUrl:"ExpressionBuilderModal",controller:"ExpressionBuilderModalCtrl",resolve:{data:function(){return e}}});a.result.then(n)},n.InfoModal=function(e,n,a){var i=t.open({animation:!0,templateUrl:"InfoModal",controller:"InfoModalCtrl",displayClass:"modal-info-display",resolve:{info:function(){return e},type:function(){return n}}});i.result.then(a)},n.EnsureModal=function(e,n,a,i,o){var r=t.open({animation:!0,templateUrl:"EnsureModal",controller:"EnsureModalCtrl",resolve:{title:function(){return e},necessity:function(){return n},info:function(){return a},input:function(){return i}}});r.result.then(o)},n.GroupModal=function(e,n){var a=t.open({animation:!0,templateUrl:"GroupModal",controller:"GroupModalCtrl",resolve:{input:function(){return e}}});a.result.then(n)},n.SelectVisualGroupModal=function(e,n){var a=t.open({animation:!0,templateUrl:"SelectVisualGroupModal",controller:"SelectVisualGroupModalCtrl",resolve:{input:function(){return e}}});a.result.then(n)},n.SingleSelectModal=function(e,n){var a=t.open({animation:!0,templateUrl:"SingleSelectModal",controller:"SingleSelectModalCtrl",resolve:{input:function(){return e}}});a.result.then(n)}}angular.module("eolinker.modal",["ui.bootstrap.modal"]).directive("eoModal",[function(){return{restrict:"AE",templateUrl:"app/modal/index.html",controller:e}}]),e.$inject=["$scope","$uibModal","$rootScope"]}(),function(){"use strict";function e(e,t,n,a,i,o){n.fun={},n.input=o,n.CONST={PROTOCOL_ARR:[{key:"HTTP",value:"http"},{key:"HTTPS",value:"https"}]},n.data={},n.component={pluginOprObj:{}};var r={};n.fun.cancel=function(){i.close(!1)},r.edit=function(e){var o=null;return o=t.Api.Copy(e.request).$promise,o.then(function(e){switch(e.statusCode){case a.COMMON.SUCCESS:i.close(!0);break;case"190005":n.data.requestMethod=!0,n.ConfirmForm.requestURL.$invalid=!0}}),o},r.confirm=function(){n.data.requestMethod=!1;var e={projectID:n.input.projectID,groupID:n.input.groupID,apiName:n.input.apiName,requestMethod:[],requestURL:n.input.requestURL,balanceName:n.input.balanceName,targetURL:n.input.targetURL,targetMethod:n.input.targetMethod,protocol:n.input.protocol,apiID:n.input.apiID};for(var t in n.input.requestMethodList)n.input.requestMethodList[t].checkbox&&e.requestMethod.push(n.input.requestMethodList[t].value);return e.requestMethod.length>0?e.requestMethod=e.requestMethod.join(","):n.data.requestMethod=!0,"-1"==n.input.targetMethod&&(e.isFollow=!0,delete e.targetMethod),e},n.fun.confirm=function(){var t=r.confirm(),a=null;return n.data.submitted=!0,n.ConfirmForm.$valid&&!n.data.requestMethod?a=r.edit({request:t}):e.InfoModal("API复制失败,请检查信息是否填写完整!","error"),a}}function t(e,t,n,a){t.fun={},t.input=a,t.component={pluginOprObj:{}},t.fun.cancel=function(){n.close(!1)},t.fun.confirm=function(){t.component.pluginOprObj.trigger="save"},e.global.$watch.push(t.$watch("component.pluginOprObj.accept",function(){switch(t.component.pluginOprObj.accept){case"saveSuccess":n.close(!0)}},!0))}function n(e,t,n,a,i,o,r){function s(){c.ajaxDriverQuery()}e.input={title:r.title,opr:r.opr},e.data={},e.CONST={SERVICE_TYPE_ARR:[{key:"静态服务",value:"static",tip:"IP地址在网关直接配置"},{key:"服务发现",value:"discovery",tip:"IP地址在网关通过服务发现的方式配置"}]},e.ajaxResponse=angular.copy(r.ajaxResponse),e.component={listBlockObj:{setting:{munalAddRow:!0},tdList:[{type:"text",thKey:"范围",modelKey:"title","class":"w_150"},{type:"input",thKey:"接入地址",modelKey:"value"}]}},e.fun={},e.fun.cancel=function(){o.close(!1)},e.fun.confirm=function(){if(e.data.submitted=!0,e.ConfirmForm.$invalid)return void n.InfoModal("请检查信息是否填写完整","error");var a={name:e.ajaxResponse.serviceData.name};"static"===e.ajaxResponse.serviceData.type?a.driver="static":(a.driver=e.ajaxResponse.serviceData.driver,a.config=e.ajaxResponse.serviceData.config,a.clusterConfig={},e.ajaxResponse.clusterQuery.map(function(e){a.clusterConfig[e.name]=e.value}),a.clusterConfig=JSON.stringify(a.clusterConfig));var s=i.ServiceDiscovery[r.opr](a).$promise;return s.then(function(e){switch(e.statusCode){case t.COMMON.SUCCESS:n.InfoModal(r.title+"成功","success"),o.close(!0)}}),s};var c={},l={cache:a};c.ajaxDriverQuery=function(){var t=l.cache.get("EO_GOKU_DRIVER_LIST");t?e.ajaxResponse.driverQuery=t:i.ServiceDiscovery.DriverQuery().$promise.then(function(t){e.ajaxResponse.driverQuery=t.data||[],l.cache.set(e.ajaxResponse.driverQuery,"EO_GOKU_DRIVER_LIST")})},s()}function a(e,t,n){e.input=n,e.fun={},e.fun.cancel=function(){t.close(!1)}}function i(e,t,n,a,i,o,r){t.data={input:{},interaction:{request:{oldPassword:"",newPassword:""}},fun:{confirm:null}},t.data.fun.confirm=function(){var r={request:{oldPassword:e.createHash(t.data.interaction.request.oldPassword),newPassword:e.createHash(t.data.interaction.request.newPassword)}};t.editForm.$valid&&i.User.ChangePassword(r.request).$promise.then(function(e){switch(e.statusCode){case o.COMMON.SUCCESS:a.InfoModal("修改成功","success"),n.close(!0)}})},t.cancel=function(){n.close(!1)}}function o(e,t,n){e.data={title:n.title,group:n.group},e.output=angular.copy(n.item),e.fun={},e.fun.confirm=function(){e.ConfirmForm.$valid&&t.close(e.output)},e.fun.cancel=function(){t.close(!1)}}function r(e,t,n){e.data={title:n.title,group:n.group,checkStatus:"init"},e.output=angular.copy(n.item),e.fun={},e.fun.confirm=function(){e.ConfirmForm.$valid&&t.close(e.output)},e.fun.cancel=function(){t.close(!1)}}angular.module("eolinker.modal").directive("eoGatewayModal",[function(){return{restrict:"AE",templateUrl:"app/modal/branch/gateway/index.html"}}]).controller("Gateway_ServiceModalCtrl",n).controller("Gateway_NodeCheckErrorReportModalCtrl",a).controller("GatewayClusterModalCtrl",r).controller("GatewayGpeditDefaultModalCtrl",o).controller("Gateway_ChangePasswordModalCtrl",i).controller("Gateway_GpeditApiPluginModalCtrl",t).controller("Gateway_CopyApiModalCtrl",e),e.$inject=["$rootScope","GatewayResource","$scope","CODE","$uibModalInstance","input"],t.$inject=["$rootScope","$scope","$uibModalInstance","input"],n.$inject=["$scope","CODE","$rootScope","Cache_CommonService","GatewayResource","$uibModalInstance","input"],a.$inject=["$scope","$uibModalInstance","input"],i.$inject=["md5","$scope","$uibModalInstance","$rootScope","CommonResource","CODE","input"],o.$inject=["$scope","$uibModalInstance","input"],r.$inject=["$scope","$uibModalInstance","input"]}();var _typeof="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};!function(){"use strict";function indexController(){var vm=this;vm.fun={},vm.fun.common=function(extend,arg){var tmpParam={};switch(_typeof(extend.params)){case"string":return eval("extend.fun("+extend.params+")");default:for(var key in extend.params)null==extend.params[key]?tmpParam[key]=arg[key]:tmpParam[key]=extend.params[key];return extend.fun(tmpParam)}}}angular.module("eolinker").component("overviewProductComponent",{templateUrl:"app/component/product/overview/index.html",controller:indexController,bindings:{listAuthorityObject:"<",authorityObject:"<",mainObject:"<",otherObject:"<"}}),indexController.$inject=[]}();var _typeof="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};!function(){"use strict";function e(e,t,n,a,i,o){e.input=o,e.fun={},e.data={submitted:!1,admin:"",datePickerObject:{request:{startTime:o.datePickerObject&&o.datePickerObject.startTime?new Date(o.datePickerObject.startTime):"",endTime:o.datePickerObject&&o.datePickerObject.endTime?new Date(o.datePickerObject.endTime):""},show:!1}},e.component={selectPersonCommonComponentObject:{}};var r={singleTextObject:angular.copy(o.singleTextObject)},s={};e.fun.showSearchList=function(t){t.stopPropagation(),e.data.showSearchList=!e.data.showSearchList},e.fun.searchMemberList=function(t,n){n.stopPropagation(),e.data.showSearchList=!0,e.input.singleTextObject.selectOptions=[],r.singleTextObject.selectOptions.map(function(n,a){s.filterMemberList(n,t)&&e.input.singleTextObject.selectOptions.push(n)})},e.fun.datePickerSelect=function(t){e.data.datePickerObject.request.startTime?e.data.datePickerObject.request.endTime?o.datePickerObject.notSameDay&&e.data.datePickerObject.request.startTime.getTime()==e.data.datePickerObject.request.endTime.getTime()?(n.InfoModal("开始和结束日期不能是同一天,请重新选择!","error"),e.data.datePickerObject.request.endTime=""):(t&&t.$event.stopPropagation(),e.data.datePickerObject.show=!1):n.InfoModal("请选择"+e.input.datePickerObject.title+"结束日期","error"):n.InfoModal("请选择"+e.input.datePickerObject.title+"开始日期","error")},s.filterMemberList=function(e,t){return(e.inviteCall||"").indexOf(t)>-1||(e.memberNickName||"").indexOf(t)>-1||(e.userNickName||"").indexOf(t)>-1},e.fun.confirm=function(){var r={request:angular.copy(o.request||{}),promise:null};if(e.data.submitted=!0,e.ConfirmForm.$valid){if(o.textArray.map(function(e,t){r.request[e.key]=e.value}),o.datePickerObject){if(!e.data.datePickerObject.request.startTime)return void n.InfoModal("请选择"+e.input.datePickerObject.title+"开始日期","error");if(!e.data.datePickerObject.request.endTime)return void n.InfoModal("请选择"+e.input.datePickerObject.title+"结束日期","error");if(o.datePickerObject.notSameDay&&e.data.datePickerObject.request.startTime.getTime()==e.data.datePickerObject.request.endTime.getTime())return n.InfoModal("开始和结束日期不能是同一天,请重新选择!","error"),void(e.data.datePickerObject.request.endTime="");r.request.startTime=i.filter(e.data.datePickerObject.request.startTime,"yyyy-M!-dd"),r.request.endTime=i.filter(e.data.datePickerObject.request.endTime,"yyyy-M!-dd")}if(o.singleTextObject&&e.component.selectPersonCommonComponentObject.value&&(r.request[o.singleTextObject.key]=e.component.selectPersonCommonComponentObject.value),o.ensure)n.EnsureModal(o.ensureInfo.title,o.ensureInfo.necessity,o.ensureInfo.info,o.ensureInfo.input||{},function(e){if(e){if(!o.resource)return void t.close(Object.assign({},r.request));r.promise=o.resource(r.request).$promise,r.promise.then(function(e){switch(e.statusCode){case a.COMMON.SUCCESS:t.close(Object.assign({},r.request,e))}})}});else{if(o.promiseFun){if(r.promise=o.promiseFun(Object.assign({},r.request)),!r.promise)return}else{if(!o.resource)return void t.close(Object.assign({},r.request));r.promise=o.resource(r.request).$promise}r.promise.then(function(e){switch(e.statusCode){case a.COMMON.SUCCESS:t.close(Object.assign({},r.request,e))}})}}return r.promise},e.fun.cancel=function(){t.close(!1)}}function t(e,t,n,a,i,o){e.info={projectHashKey:o.params.projectHashKey},e.data={exportType:0,granularityList:[{name:"天",active:0},{name:"小时",active:1}],granularity:0},e.input=i,e.fun={};var r={};e.fun.changeMenu=function(t,n){switch(t){case"granularity":e.data.granularity=n.item.active}},r.response=function(a){switch(a.response.statusCode){case n.COMMON.SUCCESS:e.$broadcast("$DumpDirective_Click_"+a["switch"].toString(),{response:a.response,fileName:e.input.fileName,window:a.window}),t.close(!0);break;default:a.window&&a.window.close()}},e.fun.dumpDirective=function(t){var n={promise:null,request:i.request,window:null};return n.request.granularity=e.data.granularity,n.request.fileType="excel",n.promise=i.resource.Download(n.request).$promise,n.promise.then(function(e){r.response({response:e,"switch":"export-by-one-key",window:n.window})}),n.promise},e.fun.cancel=function(){t.close(!1)}}function n(e,t,n){e.data={input:{},fun:{cancel:null,confirm:null}};var a={fun:{init:null}};e.data.fun.confirm=function(){e.editForm.$invalid||e.data.input.inputObject.confirmNewPassword!=e.data.input.inputObject.key||t.close({key:e.data.input.inputObject.key})},e.data.fun.cancel=function(){t.close(!1)},a.fun.init=function(){angular.copy(n,e.data.input)}()}function a(e,t,n){e.data={title:n.title,query:n.query,position:n.position},e.output={$index:"0"},e.ok=function(){t.close(e.output)},e.cancel=function(){t.close(!1)}}function i(e,t,n,a,i,o){e.title=o.title,e.secondTitle=o.secondTitle||"分组名称",e.modalType=o.modalType,e.data={initialGroupData:[],apiGroup:null},e.interaction={request:{}},e.fun={};var r={},s={groupCommon:i},c={};e.fun.initGroup=function(){var t={promise:null,groupList:[]};return t.promise=o.resource(o.request).$promise,t.promise.then(function(n){if(n.groupList.unshift({groupID:0,parentGroupID:-1,groupName:"根目录",groupDepth:0}),e.interaction.request.groupID=0,t.response=s.groupCommon.sort.init(n,0,{initGroupDepth:0}),c=t.response.groupInfo,o.item.groupID)switch(_typeof(o.item.groupID)){case"object":angular.copy(o.item.groupID).map(function(e,n){s.groupCommon.fun.deleteGroup({currentGroup:c.groupObj[e],list:t.response.groupList,groupInfo:c})});break;default:s.groupCommon.fun.deleteGroup({currentGroup:c.groupObj[o.item.groupID],list:t.response.groupList,groupInfo:c})}e.list=t.response.groupList,e.component.groupCommonObject.mainObject.baseInfo.resetFlag=!e.component.groupCommonObject.mainObject.baseInfo.resetFlag}),t.promise},r.click=function(t){e.interaction.request.groupID=t.item.groupID,e.interaction.request.groupName=t.item.groupName,s.groupCommon.generalFun.initGroupStatus({currentGroupID:t.item.groupID,initGroupDepth:"projectGroup"==o.modalType?0:1,groupInfo:c,list:e.list})},r.init=function(){o.staticQuery=o.staticQuery||[],e.list=o.list||[],o.current=o.current||{},e.component={groupCommonObject:{funObject:{unTop:!0,baseFun:{click:r.click}},mainObject:{baseInfo:{initGroupDepth:"projectGroup"==o.modalType?0:1,status:"cancelRequest",name:"groupName",id:"groupID",current:e.interaction.request,hasIcon:o.hasIcon},staticQuery:o.staticQuery||[]}}},"projectGroup"!=o.modalType&&(o.staticQuery.length?e.interaction.request.groupID=o.current.groupID||o.staticQuery[0].groupID:e.interaction.request.groupID=o.current.groupID>0?o.current.groupID:o.list[0].groupID,c=s.groupCommon.fun.generalGroupInfo({list:e.list}),e.interaction.request.groupID>0&&(e.interaction.request.groupName=c.groupObj[e.interaction.request.groupID].groupName))}(),e.fun.confirm=function(){t.close({groupID:e.interaction.request.groupID,groupName:e.interaction.request.groupName,groupInfo:c})},e.fun.cancel=function(){t.close(!1)}}function o(e,t,n,a,i){e.data={title:i.title},e.fun={},e.fun.getFile=function(t){e.$broadcast("$Init_LoadingCommonComponent",{file:t.$file[0]})},e.fun["import"]=function(e){var a={request:new FormData,promise:null};for(var o in i.request)a.request.append(o,i.request[o]);return a.request.append("file",e.file),a.promise=i.resource(a.request).$promise,a.promise.then(function(e){switch(e.statusCode){case n.COMMON.SUCCESS:t.close(!0)}}),a.promise},e.fun.cancel=function(){t.close(!1)}}function r(e,t,n){e.data={input:angular.copy(n)},e.fun={},e.fun.ok=function(){e.editGroupForm.$invalid||t.close({text:e.data.input.text})},e.fun.cancel=function(){t.close(!1)}}function s(e,t,n,a,i,o){e.data={info:{submitted:!1},interaction:{request:{loginCall:"",loginPassword:""}},fun:{close:null,confirm:null}};e.data.fun.close=function(){o.close(!1)},e.data.fun.confirm=function(){var r={request:{loginCall:e.data.interaction.request.loginCall,loginPassword:a.createHash(e.data.interaction.request.loginPassword)}};e.confirmForm.$valid?(e.data.info.submitted=!1, -n.global.ajax.Login_Guest=i.Guest.Login(r.request),n.global.ajax.Login_Guest.$promise.then(function(e){switch(e.statusCode){case t.COMMON.SUCCESS:o.close({loginCall:r.request.loginCall})}})):e.data.info.submitted=!0}}function c(e,t,n,a,i,o){e.title=n,e.necessity=a,e.info={message:i||"此操作无法恢复,确认操作?",btnType:o.btnType||0,btnMessage:o.btnMessage||"删除",btnGroup:o.btnGroup||[],hideDefaultBtn:o.hideDefaultBtn,timer:{limit:o.timeLimit,value:o.timeLimit/1e3,fun:null},btnCancelMessage:o.btnCancelMessage||"取消"},e.fun={};var r={fun:{init:null}};e.data={input:{}},r.fun.init=function(){angular.copy(o,e.data.input),3==e.info.btnType&&(e.info.timer.fun=setInterval(function(){0==e.info.timer&&clearInterval(e.info.timer.fun),e.info.timer.value--,e.$root&&e.$root.$$phase||e.$apply()},1e3))}(),e.fun.btnClick=function(e){e.confirm(),t.close(!1)},e.ok=function(){e.sureForm.$valid||!e.necessity?t.close(!0):e.submited=!0},e.cancel=function(){clearInterval(e.info.timer.fun),t.close(!1)}}function l(e,t,n,a,i){e.type=i||"info",e.info=a;var o=n(function(){t.close(!0)},1500,!0);e.$on("$destroy",function(){o&&n.cancel(o)})}function u(e,t,n){e.title=n.title,e.placeholder=n.placeholder||"1~32位字符串",e.secondTitle=n.secondTitle||"分组",e.required=!n.hasOwnProperty("required")||n.required,e.info={groupName:"",groupID:"",$index:"0",isAdd:!0},e.params={query:[{groupName:"--不设置一级分组--",groupID:"0"}].concat(n.group),status:n.status||"first-level"},e.fun={},e.fun.change=function(t){if(t||(e.info.parentGroupID="0"),"0"==e.info.grandParentGroupID)return void(e.params.secondLevelQuery=[{groupName:"--不设置二级分组--",groupID:"0"}]);for(var a in n.group)n.group[a].groupID==e.info.grandParentGroupID&&(e.params.secondLevelQuery=[{groupName:"--不设置二级分组--",groupID:"0"}].concat(n.group[a].childGroupList))};(function(){switch(n.data&&(e.info={groupName:n.data.groupName,groupID:n.data.groupID,isAdd:!1}),angular.merge(e.info,n.parentObject),n.status){case"third-level":e.fun.change(!0)}})();e.ok=function(){e.editGroupForm.$valid?t.close(e.info):e.submited=!0},e.cancel=function(){t.close(!1)}}function p(e,t,n,a,i){function o(){a&&(e.info={databaseHashKey:i,tableID:a.tableID,tableName:a.tableName,tableDesc:a.tableDesc,isAdd:!1})}e.title=n,e.info={databaseHashKey:i,tableID:"",tableName:"",tableDesc:"",isAdd:!0},o(),e.ok=function(){e.editTableForm.$valid?t.close(e.info):e.submited=!0},e.cancel=function(){t.close(!1)}}angular.module("eolinker.modal").directive("eoCommonModal",[function(){return{restrict:"AE",templateUrl:"app/modal/branch/common/index.html"}}]).controller("Common_LoginModalCtrl",s).controller("Common_SingleInputModalCtrl",r).controller("InfoModalCtrl",l).controller("EnsureModalCtrl",c).controller("GroupModalCtrl",u).controller("TableModalCtrl",p).controller("ImportModalCtrl",o).controller("SelectVisualGroupModalCtrl",i).controller("SingleSelectModalCtrl",a).controller("CommonChangePasswordModalCtrl",n).controller("ExportModalCtrl",t).controller("MixInputModalCtrl",e),e.$inject=["$scope","$uibModalInstance","$rootScope","CODE","uibDateParser","input"],t.$inject=["$scope","$uibModalInstance","CODE","$rootScope","input","$state"],n.$inject=["$scope","$uibModalInstance","input"],a.$inject=["$scope","$uibModalInstance","input"],i.$inject=["$scope","$uibModalInstance","$state","GroupService","Group_MultistageService","input"],o.$inject=["$scope","$uibModalInstance","CODE","$rootScope","input"],r.$inject=["$scope","$uibModalInstance","input"],s.$inject=["$scope","CODE","$rootScope","md5","CommonResource","$uibModalInstance"],c.$inject=["$scope","$uibModalInstance","title","necessity","info","input"],l.$inject=["$scope","$uibModalInstance","$timeout","info","type"],u.$inject=["$scope","$uibModalInstance","input"],p.$inject=["$scope","$uibModalInstance","title","info","databaseHashKey"]}(),function(){"use strict";function e(){var e={};try{e.isShrink=JSON.parse(window.localStorage.getItem("EO_CONFIG_SIDEBAR_SHRINK_STATUS"))||!1}catch(t){e.isShrink=!1}return e}angular.module("eolinker").factory("Sidebar_CommonService",e),e.$inject=[]}(),function(){"use strict";function e(e,t,n,a){var i=this;i.data={current:null,itemSpreedObject:{}},i.fun={},i.service={"default":n,sidebar:a},i.fun.initMenu=function(e){if(t.current.name===e.item.sref||t.current.name.indexOf(e.item.sref+".")>-1){if(i.data.current=e.item,e.item.childList&&e.item.childList.length>0&&(i.data.itemSpreedObject[e.item.sref]=1),i.mainObject.baseInfo.unNav||e.item.unNav)return void(i.service["default"].info.navigation={});if(e.item.childList){i.service["default"].info.navigation={query:i.mainObject.baseInfo.navigation||[{name:e.item.name}]};for(var n=0;n-1||t.current.name.indexOf(a.otherSref)>-1){i.service["default"].info.navigation.current=a.name;break}}}else i.service["default"].info.navigation.query=i.mainObject.baseInfo.navigation||null,i.service["default"].info.navigation.current=e.item.name}},i.fun.clickMenu=function(e,n,a){if(n.click){var o=n.click({item:n});if(o===!0)return}if("text"!=n.mark&&(window.sessionStorage.removeItem("COMMON_SEARCH_TIP"),"disabled"!=n.permissionKey||i.permissionObject[n.permission].disabled!=n.permissionValue)){if(a)i.service["default"].info.navigation={query:i.mainObject.baseInfo.navigation||[{name:a.name}],current:n.name};else if(n.childList&&n.childList.length>0)return void(1==i.data.itemSpreedObject[n.sref]?delete i.data.itemSpreedObject[n.sref]:i.data.itemSpreedObject[n.sref]=1);if(i.data.current=a||n,i.mainObject.baseInfo.unNav)i.service["default"].info.navigation={};else if(n.childList)i.service["default"].info.navigation={query:i.mainObject.baseInfo.navigation||[{name:n.name}],current:n.childList[0].name};else switch(e){case"child":i.service["default"].info.navigation.current=n.name;break;default:i.service["default"].info.navigation={query:i.mainObject.baseInfo.navigation||null,current:n.name}}n.childSref?n.otherChildSref&&t.params.spaceKey?t.go(n.otherChildSref,n.otherParams):t.go(n.childSref,n.params):n.sref&&t.go(n.sref,n.params)}},e.$on("$stateChangeSuccess",function(){if(i.data.current&&t.current.name.indexOf(i.data.current.sref)===-1&&t.current.sidebarIndex){for(var e=0,n=0;n-1){e=n;break}}i.fun.initMenu({item:i.mainObject.baseInfo.menu[e]})}if(t.current.navName)try{i.service["default"].info.navigation.current=t.current.navName}catch(o){}t.current.needExtraNav||(i.service["default"].info.navigation.extra=null)}),i.fun.shrinkSidebar=function(){i.service.sidebar.isShrink=!i.service.sidebar.isShrink,window.localStorage.setItem("EO_CONFIG_SIDEBAR_SHRINK_STATUS",i.service.sidebar.isShrink)},e.$on("$HomeProjectInsideSidebarShrink",function(){i.service.sidebar.isShrink=!0,e.$root&&e.$root.$$phase||e.$apply()}),e.$on("$ResetSidebarActiveStatus_SidebarComponent",function(e,t){i.fun.initMenu({item:i.mainObject.baseInfo.menu[t]})})}angular.module("eolinker").component("sidebarCommonComponent",{templateUrl:"app/component/common/sidebar/index.html",controller:e,bindings:{mainObject:"<",powerObject:"<",permissionObject:"<"}}),e.$inject=["$scope","$state","NavbarService","Sidebar_CommonService"]}(),function(){"use strict";function e(e,t,n){var a=this;a.data={balance:{general:{title:"注意事项",titleStyle:{"float":"none"},"class":"warning-ul common-ul",content:'
    1. 静态后端支持:IP+端口或域名,如:127.0.0.1:8080 或 www.eolinker.com 权重范围:0-999
    2. 静态IP列表,IP与权重之间使用空格分隔,多个IP之间使用英文分号分隔,例如:127.1.1.1:8080 10;
    3. 若IP不加权重,则默认该IP权重为1。例如:“ip1:1111 ; ip2:2222 10” ,这里的ip1权重为1,ip2权重为10
    '}},plug:{general:{title:"注意事项",titleStyle:{"float":"none"},"class":"warning-ul common-ul",content:'

    1. 如需让自定义的插件生效,必须先重启/重载网关。

    2. 检测插件仅针对自定义插件,用于检测该自定义插件是否可用'},operate:{title:"温馨提示","class":"warning-ul common-ul",content:"新增自定义插件后,请立即对该插件进行检测,确保插件可用后再重载或重启网关节点,以使插件生效"},official:{title:"温馨提示","class":"warning-ul common-ul",content:"若要使网关类型插件的最新配置生效,保存后须 重载/重启 网关节点"}},gepditAuth:{general:{title:"温馨提示","class":"warning-ul common-ul",content:'尚未对访问策略设置鉴权方式,请在 策略插件 处添加相应的鉴权插件'}},alertConfig:{general:{title:"告警提示","class":"warning-ul common-ul",content:"返回非成功状态码则视为请求失败;API的告警阀值在API编辑页面设置"}},authorityConfig:{general:{title:"权限提示","class":"warning-ul common-ul",content:"系统管理员以及管理员用户拥有最高读写操作权限,因此不会出现在权限管理的列表中,列表仅会列出普通成员"}}},a.service={$window:t}}angular.module("eolinker").component("tipCommonComponent",{templateUrl:"app/component/common/tip/index.html",controller:e,bindings:{version:"@",status:"@",user:"@",interaction:"<"}}),e.$inject=["$scope","$window","$state"]}(),function(){"use strict";function e(e,t){var n=this,a={fun:{$Destory:null,dataProcessing:null,$LoadingInit:null},info:{broadcast:null}};n.data={info:{isEnd:!0}},a.fun.dataProcessing=function(e){n.data.info.isEnd=!1;var t={promise:n.fun({arg:e})};t.promise?t.promise["finally"](function(){n.data.info.isEnd=!0,n.data.tips=null}):(n.data.info.isEnd=!0,n.data.tips=null)},a.fun.$LoadingInit=function(e,t){t=t,n.data.tips=t?t.tips:"载入",a.fun.dataProcessing(t)},a.fun.$Destory=function(){a.info.broadcast()},n.$onInit=function(t){n.interaction=n.interaction||{request:{},response:{}},n.interaction.request.delay||a.fun.dataProcessing(t),a.info.broadcast=e.$on("$Init_LoadingCommonComponent",a.fun.$LoadingInit),e.$on("$destroy",a.fun.$Destory)}}angular.module("eolinker").component("loadingCommonComponent",{template:'
    • 正在{{$ctrl.data.tips||"载入"}}
    ',controller:e,bindings:{fun:"&",interaction:"<"}}),e.$inject=["$scope","$state"]}(),function(){"use strict";function e(e,t){var n=this,a={info:{templet:{button:'',input:'',textarea:''},clipboard:null},fun:{init:null,reset:null,$destory:null}};n.data={info:{html:null,clipboard:{isClick:!1,success:!1,text:n.buttonHtml||"点击复制"}},fun:{click:null}},a.fun.reset=function(i){a.info.clipboard=new Clipboard(i["class"]),a.info.clipboard.on("success",function(a){n.data.info.clipboard.success=!0,n.data.info.clipboard.isClick=!0,n.isPopup?e.InfoModal("已复制到剪贴板","success"):n.data.info.clipboard.text="复制成功",t.$root&&t.$root.$$phase||t.$apply(),a.clearSelection()}),a.info.clipboard.on("error",function(a){n.data.info.clipboard.success=!1,n.data.info.clipboard.isClick=!0,n.isPopup?e.InfoModal("复制到剪贴板失败","error"):n.data.info.clipboard.text="复制失败",t.$root&&t.$root.$$phase||t.$apply()})},n.data.fun.click=function(){n.data.info.clipboard.isClick=!1},a.fun.$destroy=function(){a.info.clipboard.destroy()},n.$onInit=function(){switch(n.switchTemplet){case"0":n.data.info.html=a.info.templet.button;break;case"1":n.data.info.html=a.info.templet.input;break;case"2":n.data.info.html=a.info.templet.textarea;break;default:n.data.info.html=a.info.templet.input}t.$on("$destroy",a.fun.$destroy),a.fun.reset({"class":".copy-common-component-"+t.$id})}}angular.module("eolinker").component("copyCommonComponent",{template:'',bindings:{copyModel:"<",buttonHtml:"@",isPopup:"@",switchTemplet:"@"},controller:e}),e.$inject=["$rootScope","$scope"]}(),function(){"use strict";angular.module("eolinker.directive",[])}(),function(){"use strict";angular.module("eolinker.directive").directive("watchDomCommonDirective",[function(){return{restrict:"A",scope:{bindId:"@",watchDomCommonDirective:"&"},link:function(e,t,n,a){var i={elem:document.getElementById(e.bindId),fun:{init:null}};i.fun.DOMSubtreeModified=function(){e.watchDomCommonDirective({input:i.elem.innerText})},i.fun.init=function(){angular.element(i.elem).bind("DOMSubtreeModified",i.fun.DOMSubtreeModified)}()}}}])}(),function(e,t){"use strict";function n(e){if(!("clientX"in e||"clientY"in e)){var t=e.touches||e.originalEvent.touches;t&&t.length&&(e.clientX=t[0].clientX,e.clientY=t[0].clientY),e.preventDefault()}}function a(e){if(e=e[0],e.previousElementSibling)return t.element(e.previousElementSibling);for(var n=e.previousSibling;null!=n&&1!=n.nodeType;)n=n.previousSibling;return t.element(n)}function i(e,t){var n=a(e);n.length>0?n.after(t):e.parent().prepend(t)}function o(e,n){if(e instanceof t.element&&(e=e[0]),null!==c)return e[c](n)}var r=[];t.module("eolinker.directive").directive("svGroupRoot",["$rootScope",function(e){function t(e,t,n){return n?e.x-t.x<0:e.y-t.y<0}function n(e){return s[e]}function a(e){delete s[e]}var i,s=Object.create(null);return{restrict:"A",controller:["$scope","$attrs","$interpolate","$parse",function(e,c,l,u){var p=l(c.svGroupRoot)(e)||e.$id;s[p]||(s[p]=[]);var d,m,f,h,g,v,b=this,$=!1,y=u(c.fun)(e);this.sortingInProgress=function(){return i},r.push(e.$watch(c.disabled,function(e,t){b.disabled=e})),e.$on("$destroy",function(){r.map(function(e,t){e()})}),this.$moveUpdate=function(a,r,s,l,y,x,j){if(!b.disabled){var w=s[0].getBoundingClientRect();"element"===a.tolerance&&(r={x:~~(w.left+w.width/2),y:~~(w.top+w.height/2)}),i=!0,d=[],m||(y?(m=y.clone(),m.removeClass("ng-hide")):(m=l.clone(),m.addClass("sv-group-placeholder"),m.css({height:s[0].height+"px",width:s[0].width+"px"})),l.after(m),l.addClass("ng-hide"),g=l,f=a,h=s,e.$root&&e.$root.$$phase||e.$apply()),h[0].reposition({x:r.x+document.body.scrollLeft-r.offset.x*w.width,y:r.y+document.body.scrollTop-r.offset.y*w.height}),n(p).forEach(function(e,n){if(null==a.containment||o(e.element,a.containment)||o(e.element,a.containment+" *")){var i=e.element[0].getBoundingClientRect(),s={x:~~(i.left+i.width/2),y:~~(i.top+i.height/2)};e.container||!e.element[0].scrollHeight&&!e.element[0].scrollWidth||d.push({element:e.element,top:i.top,view:e.getPart(),targetIndex:e.getIndex(),after:t(s,r,$)})}});var I=h[0].getBoundingClientRect(),O=m[0].getBoundingClientRect(),C=I.top+I.height/2,k=I.height/4;d.push({top:O.top,element:m,placeholder:!0}),d.sort(function(e,t){return e.top-t.top});var S=x.model(x.scope)[j].groupDepth,_=1==S?"10px":2*(S-1)+"em";d.forEach(function(t,n){var a=x.model(x.scope)[t.targetIndex],i=function(){t.placeholder||(d[d.length-1].element.removeClass("sv-group-candidate-bottom"),t.element.removeClass("sv-group-candidate-top sv-group-candidate"))},o=!1;if(c.disabledModelKey&&a){var r=u(c.disabledModelKey)(e);if(r)if("string"==typeof r){if(a[r])return void i()}else{var s=!0,l=!1,p=void 0;try{for(var m,f=r[Symbol.iterator]();!(s=(m=f.next()).done);s=!0){var g=m.value;if(a[g])return void i()}}catch(b){l=!0,p=b}finally{try{!s&&f["return"]&&f["return"]()}finally{if(l)throw p}}}}if(c.disabledInAndAfterModelKey&&a){var $=u(c.disabledInAndAfterModelKey)(e);if($)if("string"==typeof $)a[$]&&(o=!0);else{var y=!0,j=!1,w=void 0;try{for(var O,D=$[Symbol.iterator]();!(y=(O=D.next()).done);y=!0){var E=O.value;if(a[E]){o=!0;break}}}catch(b){j=!0,w=b}finally{try{!y&&D["return"]&&D["return"]()}finally{if(j)throw w}}}}if(C>(n-1>-1?d[n-1].top+I.height-k:d[0].top-k)&&Ct.top+k&&Cd[d.length-1].top+I.height-k;o&&(A||R)?(i(),v=null):A?t.placeholder?(v=null,h.children().css({"padding-left":_})):(v=t,v.where="in",S=x.model(x.scope)[v.targetIndex].groupDepth,h.children().css({"padding-left":2*S+"em"}),t.element.addClass("sv-group-candidate")):R?t.placeholder?(v=null,h.children().css({"padding-left":_})):(v=t,v.where="after",S=x.model(x.scope)[v.targetIndex].groupDepth,h.children().css({"padding-left":1==S?"10px":2*(S-1)+"em"}),t.element.removeClass("sv-group-candidate-top sv-group-candidate"),d[d.length-1].element.addClass("sv-group-candidate-bottom")):i()})}},this.$drop=function(t,n,a){function o(){if(i=!1,m.remove(),h.remove(),g.removeClass("ng-hide"),d=void 0,m=void 0,a=void 0,h=void 0,g=void 0,v){v.element.removeClass("sv-group-candidate sv-group-candidate-top sv-group-candidate-bottom");var o=v.targetIndex;c.fun&&y({originIndex:n,targetIndex:o,where:v.where,from:t.model(t.scope)[n],to:t.model(t.scope)[o],groupList:t.model(t.scope)})}v=void 0,e.$root&&e.$root.$$phase||e.$apply()}if(!b.disabled&&m)if(a.revert){var r=m[0].getBoundingClientRect(),s=h[0].getBoundingClientRect(),l=Math.sqrt(Math.pow(s.top-r.top,2)+Math.pow(s.left-r.left,2)),u=+a.revert*l/200;u=Math.min(u,+a.revert),["-webkit-","-moz-","-ms-","-o-",""].forEach(function(e){"undefined"!=typeof h[0].style[e+"transition"]&&(h[0].style[e+"transition"]="all "+u+"ms ease")}),setTimeout(o,u)}else o()},this.addToSortableElements=function(e){n(p).push(e)},this.removeFromSortableElements=function(e){var t=n(p),i=t.indexOf(e);i>-1&&(t.splice(i,1),0===t.length&&a(p))}}]}}]).directive("svGroupPart",["$parse",function(e){return{restrict:"A",require:"^svGroupRoot",controller:["$scope",function(e){e.$svCtrl=this,this.getPart=function(){return e.part},this.$drop=function(t,n){e.$sortableRoot.$drop(e.part,t,n)}}],scope:!0,link:function(t,n,a,i){if(!a.svGroupPart)throw new Error("no model provided");var o=e(a.svGroupPart);if(!o.assign)throw new Error("model not assignable");t.part={id:t.$id,element:n,model:o,scope:t},t.$sortableRoot=i;var r={element:n,getPart:t.$svCtrl.getPart,container:!0};i.addToSortableElements(r),t.$on("$destroy",function(){i.removeFromSortableElements(r)})}}}]).directive("svGroupElement",["$parse","$rootScope",function(e,a){return{restrict:"A",require:["^svGroupPart","^svGroupRoot"],controller:["$scope",function(e){e.$svCtrl=this}],link:function(o,r,s,c){function u(e){function a(e){l.move=e.pageY,l.down-l.move>-5&&l.down-l.move<5||c[1].disabled||(n(e),h||(i(r,s),h=!0),c[1].$moveUpdate(d,{x:e.clientX,y:e.clientY,offset:x},s,r,y,c[0].getPart(),o.$index))}if(n(e),!(c[1].sortingInProgress()||c[1].disabled||0!=e.button&&"mousedown"===e.type)){h=!1,d=t.extend({},{tolerance:"pointer",revert:200},d);var s,l={down:e.pageY},u=r,p=r[0].getBoundingClientRect();$||($=c[0].helper),y||(y=c[0].placeholder),$?(s=$.clone(),s.removeClass("ng-hide"),s.css({left:p.left+document.body.scrollLeft+"px",top:p.top+document.body.scrollTop+"px"}),u.addClass("sv-visibility-hidden")):(s=u.clone(),s.addClass("sv-group-helper").css({left:p.left+document.body.scrollLeft+"px",top:p.top+document.body.scrollTop+"px",width:p.width+"px"}));var v=0;s[0].reposition=function(e){g&&clearInterval(g);var n=(e.x,e.y),a=s[0].getBoundingClientRect(),i=document.body,o=t.element(document.getElementsByClassName(d.parentContainment)),r=o[0].getBoundingClientRect();f&&(n>r.top-a.height&&nr.height+r.top-a.height&&n=o[0].scrollHeight-r.height&&clearInterval(g)},70))),this.style.top=n-i.scrollTop+"px"};var x={x:(e.clientX-p.left)/p.width,y:(e.clientY-p.top)/p.height};m.addClass("sv-sorting-in-progress"),m.bind("mousemove",a).on("mouseup touchend touchcancel",function j(e){b&&b(),g&&clearInterval(g),m.off("mousemove",a),h&&c[0].$drop(o.$index,d),m.removeClass("sv-sorting-in-progress"),r.removeClass("sv-visibility-hidden"),m.off("mouseup touchend touchcancel",j)})}}var p={element:r,getPart:c[0].getPart,getIndex:function(){return o.$index}},d=e(s.svGroupElement)(o),m=null;if(d.containment){m=l.call(r,d.containment);var f=m[0].getBoundingClientRect()}c[1].addToSortableElements(p),o.$on("$destroy",function(){c[1].removeFromSortableElements(p)});var h,g=(t.element(document.body),null),v=r,b=e(s.mouseUp)(o);v.on("mousedown touchstart",u),a.global.$watch.push(o.$watch("$svCtrl.handle",function(e){e&&(v.off("mousedown touchstart",u),v=e,v.on("mousedown touchstart",u))}));var $,y}}}]).directive("svGroupHandle",function(){return{require:"?^svGroupElement",link:function(e,t,n,a){a&&(a.handle=t.add(a.handle))}}});var s=document.documentElement,c=s.matches?"matches":s.matchesSelector?"matchesSelector":s.webkitMatches?"webkitMatches":s.webkitMatchesSelector?"webkitMatchesSelector":s.msMatches?"msMatches":s.msMatchesSelector?"msMatchesSelector":s.mozMatches?"mozMatches":s.mozMatchesSelector?"mozMatchesSelector":null;if(null==c)throw"This browser doesn't support the HTMLElement.matches method";var l=t.element.prototype.closest||function(e){for(var n=this[0].parentNode;n!==document.documentElement&&!n[c](e);)n=n.parentNode;return n[c](e)?t.element(n):t.element()};"function"!=typeof t.element.prototype.add&&(t.element.prototype.add=function(e){var n,a=t.element();for(e=t.element(e),n=0;n=e.mainObject.setting.minHeight&&(o[0].style.height=n+"px",e.$root&&e.$root.$$phase||e.$apply()),!1},s.setWidth=function(t){var n=t.movementX,a=o[0].clientWidth+n-15;if(!(a<=e.mainObject.setting.minWidth)){l=a+"px";for(var i=0;i*{cursor:col-resize!important;user-select: none;}'),document.onmousemove=s.setWidth}return document.onmouseup=function(){document.onmousemove=null,document.onmouseup=null;var n=document.getElementById("eo_tmp_drag");angular.element(n).remove(),t.releaseCapture&&t.releaseCapture(),e.mainObject&&e.mainObject.baseFun&&e.mainObject.baseFun.mouseup&&e.mainObject.baseFun.mouseup(e.mainObject.mark,l)},t.setCapture&&t.setCapture(),!1}),i()}}}])}(),function(){"use strict";angular.module("eolinker.directive").directive("innerHtmlCommonDirective",["$compile","Cache_CommonService","$rootScope",function(e,t,n){return{restrict:"AE",scope:{html:"<",innerHtmlCommonDirective:"@"},link:function(a,i,o,r){n.global.$watch.push(a.$watch(o.html?"html":"innerHtmlCommonDirective",function(){var n={html:o.html?a.html:a.innerHtmlCommonDirective,elemFunName:"append"};if(n.html)switch(o.remove&&i.empty(),"front"==o.position&&(n.elemFunName="prepend"),o.status){case"unbind-angular":i[n.elemFunName](n.html);break;case"cache":i[n.elemFunName](t.get(o.cacheVariable));break;default:try{i[n.elemFunName](e(n.html)(a.$parent))}catch(r){i[n.elemFunName](e(""+n.html+"")(a.$parent))}}}))}}}])}(),function(){"use strict";angular.module("eolinker.directive").directive("datepickerTimesDirective",["$document","$rootScope",function(e,t){return{restrict:"AE",transclude:!0,templateUrl:"app/directive/common/datepicker/index.html",scope:{interaction:"=",datepickerTimesDirective:"&"},link:function(n,a,i,o){n.data={datePicker:{duration:{option:{dateDisabled:null,formatYear:"yy",startingDay:1}}}},n.request={startTime:"",endTime:""},n.fun={};var r={};n.fun.confirm=function(e){e&&e.$event.stopPropagation(),n.interaction.request.startTime=n.request.startTime,n.interaction.request.endTime=n.request.endTime,n.datepickerTimesDirective()},n.fun.close=function(e){e&&e.$event.stopPropagation(),n.interaction.show=!1},e.on("click",function(e){n.fun.close(),n.$root&&n.$root.$$phase||n.$apply()}),n.data.datePicker.duration.option.customClass=function(e){if("day"===e.mode&&e.date.getMonth()!==e.currentMonth)return"uib-day-disabled"},r.init=function(){n.request.startTime=n.interaction.request.startTime,n.request.endTime=n.interaction.request.endTime},r.init(),t.global.$watch.push(n.$watch("interaction.show",function(){n.interaction.show&&(r.init(),n.$broadcast("$RESET_DATEPICKER"))}))}}}])}(),function(){"use strict";angular.module("eolinker").directive("copyCommonDirective",["$rootScope","Cache_CommonService",function(e,t){return{restrict:"A",scope:{copyModel:"<"},link:function(n,a,i,o){var r={elem:null},s={},c={cache:t};s.btnFun=function(t){t.stopPropagation(),r.elem.value=n.copyModel||(i.cacheVariable?c.cache.get(i.cacheVariable):""),r.elem.select(),r.elem.click();try{document.execCommand("copy")?e.InfoModal("复制成功","success"):e.InfoModal("复制失败","error")}catch(a){e.InfoModal("复制失败","error")}},s.init=function(){r.elem=document.getElementById("template_textarea_js")||document.createElement("textarea"),r.elem.setAttribute("style","position:fixed,left:0,top:0,opacity:0;height:0;width:0;"),r.elem.setAttribute("id","template_textarea_js"),document.body.appendChild(r.elem),a.bind(i.buttonFunction||"click",s.btnFun)}(),n.$on("$destory",function(){document.body.removeChild(r.elem)})}}}])}(),function(){function e(e,t){var n,a=this;a.data={component:{sidebarCommonObject:{}},info:{current:null,menu:[{name:"监控面板",sref:"home.monitor",childSref:"home.monitor.global",icon:"icon-jiankong_o",power:-1,status:"un-spreed"},{name:"网关节点",sref:"home.cluster",childSref:"home.cluster.default",icon:"icon-yingyongAPP_o",power:-1},(n={name:"注册方式与负载",sref:"home.balance",icon:"icon-renwuzhongxin_o",childSref:"home.balance.service"},_defineProperty(n,"childSref","home.balance.list.default"),_defineProperty(n,"power",-1),_defineProperty(n,"childList",[{name:"服务注册方式",sref:"home.balance.service"},{name:"负载配置",sref:"home.balance.list",childSref:"home.balance.list.default",params:{cluster:"default"}}]),n),{name:"接口管理",sref:"home.project",icon:"icon-lianjie_o",childSref:"home.project.default",power:-1},{name:"访问策略",sref:"home.gpedit",icon:"icon-yuechi_o",power:-1,childSref:"home.gpedit.default"},{name:"告警设置",sref:"home.alert",childSref:"home.alert.setting",icon:"icon-anquan_o",power:-1,status:"un-spreed",childList:[{name:"告警设置",sref:"home.alert.setting"},{name:"告警列表",sref:"home.alert.list"}]},{name:"扩展插件",sref:"home.plugin",childSref:"home.plugin.default",icon:"icon-cengji_o",power:-1},{name:"网关设置",sref:"home.setting",childSref:"home.setting.basic",icon:"icon-quanjushezhi_o",power:-1,status:"un-spreed",childList:[{name:"基本设置",sref:"home.setting.basic"},{name:"日志设置",sref:"home.setting.log"}]}]}},a.service={authority:t},a.$onInit=function(){a.shrinkObject.isShrink=!1,a.data.component.sidebarCommonObject={mainObject:{baseInfo:{menu:a.data.info.menu}}}}}angular.module("eolinker").component("eoSidebar",{template:'',controller:e,bindings:{shrinkObject:"<"}}),e.$inject=["$scope","Authority_CommonService"]}(),function(){"use strict";function e(){var e={navigation:{query:[],current:""}};return{info:e}}angular.module("eolinker").factory("NavbarService",e),e.$inject=[]}(),function(){"use strict";function e(e,t,n,a){var i=this;i.data={info:{shrinkObject:{},sidebarShow:null},fun:{$Home_ShrinkSidebar:null,init:null}},i.service={group:t,sidebar:a},i.data.fun.init=function(e){/inside/.test(n.current.name)?i.data.info.sidebarShow=!1:i.data.info.sidebarShow=!0},i.data.fun.init({key:window.location.href}),e.$on("$locationChangeSuccess",function(){/inside/.test(n.current.name.toLowerCase())?i.data.info.sidebarShow=!1:i.data.info.sidebarShow=!0})}angular.module("eolinker").config(["$stateProvider","RouteHelpersProvider",function(e,t){e.state("home",{url:"/home",template:'',containerRouter:!0,resolve:t.resolveFor("DATEPICKER")})}]).component("home",{templateUrl:"app/ui/content/index.html",controller:e}),e.$inject=["$scope","GroupService","$state","Sidebar_CommonService"]}(),function(){"use strict";angular.module("eolinker.service",[])}(),function(){"use strict";function e(e){var t={group:null},n={};return n.get=function(){return t.group},n.set=function(n,a){t.group=n,a&&e.$broadcast("$SidebarFinish")},n.clear=function(){t.group=null},n}function t(e){var n={requestGroupOrder:[],time:{},service:e,generalFun:{},fun:{clear:null,spreed:null,operate:null},sort:{operate:null,init:null}},a={},i={locationArr:[],parentGroupPath:{},childGroupPath:{0:[]},groupObj:{}};return n.generalFun.resetGroupInfo=function(e){i=e?e:{locationArr:[],parentGroupPath:{},childGroupPath:{0:[]},groupObj:{}}},n.generalFun.getNextNotChildGroup=function(e){n.generalFun.resetGroupInfo(e.groupInfo||i);var t=i.groupObj[e.currentGroupID],o=i.childGroupPath[t.parentGroupID].indexOf(t.groupID);return o!=i.childGroupPath[t.parentGroupID].length-1?i.childGroupPath[t.parentGroupID][o+1]:a.getNextNotParentGroup(t)},n.generalFun.getGroupLastChildIndex=function(e){n.generalFun.resetGroupInfo(e.groupInfo||i);var t=i.childGroupPath[e.currentGroupID]||[];if(t.length){var a=n.generalFun.getNextNotChildGroup({currentGroupID:t[t.length-1]}),o=i.locationArr.indexOf(a);return o==-1?i.locationArr.length-1:o-1}return i.locationArr.indexOf(e.currentGroupID)},a.getNextNotParentGroup=function(e){if(!(e.groupDepth<2)){var t=i.groupObj[e.parentGroupID],n=i.childGroupPath[t.parentGroupID],o=n[n.indexOf(e.parentGroupID)+1];return o?o:a.getNextNotParentGroup(t)}},a.insertGroupToParentLast=function(e){if(e.parentGroupID){var t=n.generalFun.getGroupLastChildIndex({currentGroupID:e.parentGroupID});i.locationArr.splice(t+1,0,e.groupID)}else i.locationArr.push(e.groupID)},a.orderByGroupOrder=function(e){if(!angular.equals({},n)){var t=e.groupInfo,n={};try{n=JSON.parse(e.response.groupOrder)}catch(a){}var i=[],o=0==t.locationArr.length?"reset":"child";if(angular.forEach(n,function(e,t){i[e]=Number(t)}),"reset"!=o){var r=t.locationArr.indexOf(e.response.groupID)+1;t.childGroupPath[e.response.groupID]=[]}else t.childGroupPath[0]=[],e.response.groupID=0;angular.forEach(i,function(n,a){if(n in t.groupObj){var i=t.groupObj[n];i.parentGroupID==e.response.groupID&&("reset"!=o?(t.parentGroupPath[n]=[e.response.groupID].concat(t.parentGroupPath[e.response.groupID]||0),t.childGroupPath[e.response.groupID].push(n),t.locationArr.splice(r,0,n),r++):(t.parentGroupPath[n]=[0],t.childGroupPath[0].push(n),t.locationArr.push(n)))}})}},n.generalFun.openGroup=function(e){ -i=e.groupInfo||i,t=i.locationArr.indexOf(e.currentGroupID),e.list[t].isOpen=!0,angular.forEach(i.childGroupPath[e.currentGroupID],function(n,a){t=i.locationArr.indexOf(n),t!=-1&&(e.list[t].hideStatus=!1)})},a.closeGroup=function(e){angular.forEach(i.childGroupPath[e.currentGroupID],function(n,o){t=i.locationArr.indexOf(n),e.list[t].isOpen=!1,e.list[t].hideStatus=!0,i.childGroupPath[n]&&(e.currentGroupID=n,a.closeGroup(e))})},a.deleteChildGroup=function(e){i.childGroupPath[e]&&i.childGroupPath[e].length&&angular.forEach(i.childGroupPath[e],function(e,t){a.deleteChildGroup(e)}),i.groupObj[e]=null,i.childGroupPath[e]=[],i.parentGroupPath[e]=[]},n.generalFun.sortByLocationArr=function(e){n.generalFun.resetGroupInfo(e.groupInfo||i),angular.forEach(i.locationArr,function(t,n){e.list[n]=i.groupObj[t]});var t=e.list.length-i.locationArr.length;t>0&&e.list.splice(i.locationArr.length,t)},n.fun.deleteGroup=function(e){n.generalFun.resetGroupInfo(e.groupInfo);var t=i.locationArr.indexOf(e.currentGroup.groupID),o=n.generalFun.getNextNotChildGroup({currentGroupID:e.currentGroup.groupID}),r=o?i.locationArr.indexOf(o)-t:i.locationArr.length-t;i.locationArr.splice(t,r),i.childGroupPath[e.currentGroup.parentGroupID].splice(i.childGroupPath[e.currentGroup.parentGroupID].indexOf(e.currentGroup.groupID),1),i.parentGroupPath[e.currentGroup.groupID]=[],i.groupObj[e.currentGroup.groupID]=null,a.deleteChildGroup(e.currentGroup.groupID),n.generalFun.sortByLocationArr({list:e.list})},n.generalFun.initGroupStatus=function(e){if(e.list&&e.list.length){var t=0==e.initGroupDepth?0:1;n.generalFun.resetGroupInfo(e.groupInfo||i);var a=Number(e.currentGroupID);if("reset"==e.status&&angular.forEach(e.list,function(e,n){e.isOpen=!1,e.groupDepth>t&&(e.hideStatus=!0)}),0==t||!(a<0||0==a)&&a in i.groupObj){var o=(i.groupObj[a],0);o=i.locationArr.indexOf(a),e.list[o].hideStatus=!1,e.list[o].isOpen=!0,0!=a&&angular.forEach(i.parentGroupPath[a],function(n,a){(n||0==t)&&(o=i.locationArr.indexOf(n),e.list[o].isOpen=!0,e.list[o].hideStatus=!1,angular.forEach(i.childGroupPath[n],function(t,n){o=i.locationArr.indexOf(t),e.list[o].hideStatus=!1}))}),angular.forEach(i.childGroupPath[a],function(t,n){o=i.locationArr.indexOf(t),e.list[o].hideStatus=!1})}}},n.fun.generalGroupInfo=function(e){n.generalFun.resetGroupInfo();var t=e.list;return angular.forEach(t,function(e,t){e.groupDepth=e.groupDepth,i.groupObj[e.groupID]=e}),angular.forEach(t,function(e,t){e.groupID=Number(e.groupID),e.parentGroupID=Number(e.parentGroupID||0),i.locationArr.indexOf(e.groupID)==-1&&(e.parentGroupID?(a.insertGroupToParentLast(e),i.parentGroupPath[e.groupID]=[e.parentGroupID].concat(i.parentGroupPath[e.parentGroupID]),i.childGroupPath[e.parentGroupID]?i.childGroupPath[e.parentGroupID].push(e.groupID):i.childGroupPath[e.parentGroupID]=[e.groupID]):(i.parentGroupPath[e.groupID]=[0],i.childGroupPath[0].push(e.groupID),i.locationArr.push(e.groupID)))}),i},n.sort.init=function(e,t,o){var r=[];if(o=o||{},n.generalFun.resetGroupInfo(),r=o.responseKey?e[o.responseKey]:e.groupList,!r)return{groupList:[],groupInfo:{}};var s={output:[]};return s.sortArr=r.sort(function(e,t){return e.groupDepth-t.groupDepth}),angular.forEach(r,function(e,t){e.isOpen=!1,e.groupDepth=e.groupDepth||0,i.groupObj[e.groupID]=e}),a.orderByGroupOrder({groupInfo:i,response:e}),angular.forEach(s.sortArr,function(e,t){e.groupID=Number(e.groupID),e.parentGroupID=Number(e.parentGroupID||0),i.locationArr.indexOf(e.groupID)==-1&&(e.parentGroupID?(a.insertGroupToParentLast(e),i.parentGroupPath[e.groupID]=[e.parentGroupID].concat(i.parentGroupPath[e.parentGroupID]),i.childGroupPath[e.parentGroupID]?i.childGroupPath[e.parentGroupID].push(e.groupID):i.childGroupPath[e.parentGroupID]=[e.groupID]):(i.parentGroupPath[e.groupID]=[0],i.childGroupPath[0].push(e.groupID),i.locationArr.push(e.groupID))),a.orderByGroupOrder({groupInfo:i,response:e})}),angular.forEach(i.locationArr,function(e,t){s.output.push(i.groupObj[e])}),n.generalFun.initGroupStatus({currentGroupID:t,status:"reset",initGroupDepth:o.initGroupDepth,list:s.output}),{groupList:s.output,groupInfo:i}},n.fun.spreed=function(e){e.$event&&e.$event.stopPropagation(),n.generalFun.resetGroupInfo(e.groupInfo);var t={currentGroupID:e.item.groupID,list:e.list};if(e.item.isOpen){var o=i.locationArr.indexOf(e.item.groupID);e.list[o].isOpen=!1,a.closeGroup(t)}else n.generalFun.openGroup(t)},n.fun.clear=function(){n.service.clear()},n.fun.getGroupPath=function(e){n.generalFun.resetGroupInfo(e.groupInfo);var t={output:[]},a=e.currentGroupID,o=i.groupObj[a];return i.parentGroupPath[a]&&i.parentGroupPath[a].length?(angular.forEach(i.parentGroupPath[a],function(e,n){if(e){var a=i.groupObj[e];t.output.unshift({groupName:a.groupName,groupID:a.groupID})}}),t.output.push({groupName:o.groupName,groupID:o.groupID}),t.output):[]},n}angular.module("eolinker.service").factory("Group_MultistageService",t).factory("GroupService",e),e.$inject=["$rootScope"],t.$inject=["GroupService"]}(),function(){"use strict";function e(){var e={info:{cache:null,statusCache:null},fun:{get:null,set:null}};return e.fun.clear=function(t){if(t)try{e.info.statusCache[t]=null}catch(n){}else e.info.cache=null},e.fun.get=function(t){if(t){try{return e.info.statusCache[t]}catch(n){return null}return e.info.statusCache}return e.info.cache},e.fun.set=function(t,n){if(n)try{e.info.statusCache[n]=t}catch(a){e.info.statusCache={},e.info.statusCache[n]=t}else e.info.cache=t},e.fun}angular.module("eolinker").factory("Cache_CommonService",e),e.$inject=[]}(),function(){"use strict";function e(){var e={permission:{"default":null}},t={};return t.clear=function(t){e.permission[t]=null},t.setPermission=function(t,n){switch(t){case"default":switch(n.userType){case 0:e.permission["default"]={authorityManagement:{edit:!0,look:!0},teammateManagement:{edit:!0,editManager:!0},apiManagement:{edit:!0},loadBalance:{edit:!0},strategyManagement:{edit:!0},nodeManagement:{edit:!0},pluginManagement:{edit:!0},gatewayConfig:{edit:!0},alertManagement:{edit:!0}};break;case 1:e.permission["default"]={authorityManagement:{edit:!0,look:!0},teammateManagement:{edit:!0,editManager:!1},apiManagement:{edit:!0},loadBalance:{edit:!0},strategyManagement:{edit:!0},nodeManagement:{edit:!0},pluginManagement:{edit:!0},gatewayConfig:{edit:!0},alertManagement:{edit:!0}};break;case 2:e.permission["default"]=n.permission}}},{permission:e.permission,fun:t}}angular.module("eolinker").factory("Authority_CommonService",e),e.$inject=[]}(),angular.module("ui.bootstrap.stackedMap",[]).factory("$$stackedMap",function(){return{createNew:function(){var e=[];return{add:function(t,n){e.push({key:t,value:n})},get:function(t){for(var n=0;n0&&(t=$.top().value,t.modalDomEl.toggleClass(t.windowTopClass||"",e))}function p(){if(h&&c()===-1){var e=g;d(h,g,function(){e=null}),h=void 0,g=void 0}}function d(e,n,a,i){function r(){r.done||(r.done=!0,t(e,{event:"leave"}).start().then(function(){e.remove(),i&&i.resolve()}),n.$destroy(),a&&a())}var s,c=null,l=function(){return s||(s=o.defer(),c=s.promise),function(){s.resolve()}};return n.$broadcast(x.NOW_CLOSING_EVENT,l),o.when(c).then(r)}function m(e){if(e.isDefaultPrevented())return e;var t=$.top();if(t)switch(e.which){case 27:t.value.keyboard&&(e.preventDefault(),i.$apply(function(){x.dismiss(t.key,"escape key press")}));break;case 9:x.loadFocusElementList(t);var n=!1;e.shiftKey?(x.isFocusInFirstItem(e)||x.isModalFocused(e,t))&&(n=x.focusLastFocusableElement()):x.isFocusInLastItem(e)&&(n=x.focusFirstFocusableElement()),n&&(e.preventDefault(),e.stopPropagation())}}function f(e,t,n){return!e.value.modalScope.$broadcast("modal.closing",t,n).defaultPrevented}var h,g,v,b="modal-open",$=s.createNew(),y=r.createNew(),x={NOW_CLOSING_EVENT:"modal.stack.now-closing"},j=0,w="a[href], area[href], input:not([disabled]), button:not([disabled]),select:not([disabled]), textarea:not([disabled]), iframe, object, embed, *[tabindex], *[contenteditable=true]";return i.$watch(c,function(e){g&&(g.index=e)}),n.on("keydown",m),i.$on("$destroy",function(){n.off("keydown",m)}),x.open=function(t,o){var r=n[0].activeElement,s=o.openedClass||b;u(!1),$.add(t,{deferred:o.deferred,renderDeferred:o.renderDeferred,closedDeferred:o.closedDeferred,modalScope:o.scope,backdrop:o.backdrop,keyboard:o.keyboard,openedClass:o.openedClass,windowTopClass:o.windowTopClass,animation:o.animation,appendTo:o.appendTo}),y.put(s,t);var l=o.appendTo,p=c();if(!l.length)throw new Error("appendTo element not found. Make sure that the element passed is in DOM.");p>=0&&!h&&(g=i.$new(!0),g.modalOptions=o,g.index=p,h=angular.element('
    '),h.attr("backdrop-class",o.backdropClass),o.animation&&h.attr("modal-animation","true"),a(h)(g),e.enter(h,l));var d=angular.element("
    ');d.attr({"template-url":o.windowTemplateUrl,"window-class":o.windowClass,"window-top-class":o.windowTopClass,size:o.size,animate:"animate"}).html(o.content),o.animation&&d.attr("modal-animation","true"),e.enter(a(d)(o.scope),l).then(function(){o.scope.$$uibDestructionScheduled||e.addClass(l,s)}),$.top().value.modalDomEl=d,$.top().value.modalOpener=r,x.clearFocusListCache()},x.close=function(e,t){var n=$.get(e);return n&&f(n,t,!0)?(n.value.modalScope.$$uibDestructionScheduled=!0,n.value.deferred.resolve(t),l(e,n.value.modalOpener),!0):!n},x.dismiss=function(e,t){var n=$.get(e);return n&&f(n,t,!1)?(n.value.modalScope.$$uibDestructionScheduled=!0,n.value.deferred.reject(t),l(e,n.value.modalOpener),!0):!n},x.dismissAll=function(e){for(var t=this.getTop();t&&this.dismiss(t.key,e);)t=this.getTop()},x.getTop=function(){return $.top()},x.modalRendered=function(e){var t=$.get(e);t&&t.value.renderDeferred.resolve()},x.focusFirstFocusableElement=function(){return v.length>0&&(v[0].focus(),!0)},x.focusLastFocusableElement=function(){return v.length>0&&(v[v.length-1].focus(),!0)},x.isModalFocused=function(e,t){if(e&&t){var n=t.value.modalDomEl;if(n&&n.length)return(e.target||e.srcElement)===n[0]}return!1},x.isFocusInFirstItem=function(e){return v.length>0&&(e.target||e.srcElement)===v[0]},x.isFocusInLastItem=function(e){return v.length>0&&(e.target||e.srcElement)===v[v.length-1]},x.clearFocusListCache=function(){v=[],j=0},x.loadFocusElementList=function(e){if((void 0===v||!v.length)&&e){var t=e.value.modalDomEl;t&&t.length&&(v=t[0].querySelectorAll(w))}},x}]).provider("$uibModal",function(){var e={options:{animation:!0,backdrop:!0,keyboard:!0},$get:["$rootScope","$q","$document","$templateRequest","$controller","$uibResolve","$uibModalStack",function(t,n,a,i,o,r,s){function c(e){return e.template?n.when(e.template):i(angular.isFunction(e.templateUrl)?e.templateUrl():e.templateUrl)}var l={},u=null;l.getPromiseChain=function(){return u};var p=function(){var e=document.activeElement;try{e.blur()}catch(t){}};return l.open=function(i){function l(){return b}p();var d=n.defer(),m=n.defer(),f=n.defer(),h=n.defer(),g={result:d.promise,opened:m.promise,closed:f.promise,rendered:h.promise,close:function(e){return s.close(g,e)},dismiss:function(e){return s.dismiss(g,e)}};if(i=angular.extend({},e.options,i),i.resolve=i.resolve||{},i.appendTo=i.appendTo||a.find("body").eq(0),!i.template&&!i.templateUrl)throw new Error("One of template or templateUrl options is required.");var v,b=n.all([c(i),r.resolve(i.resolve,{},null,null)]);return v=u=n.all([u]).then(l,l).then(function(e){var n=i.scope||t,a=n.$new();a.$close=g.close,a.$dismiss=g.dismiss,a.$on("$destroy",function(){a.$$uibDestructionScheduled||a.$dismiss("$uibUnscheduledDestruction")});var r,c={};i.controller&&(c.$scope=a,c.$uibModalInstance=g,angular.forEach(e[1],function(e,t){c[t]=e}),r=o(i.controller,c),i.controllerAs&&(i.bindToController&&(r.$close=a.$close,r.$dismiss=a.$dismiss,angular.extend(r,n),angular.isFunction(r.$onInit)&&r.$onInit()),a[i.controllerAs]=r)),s.open(g,{scope:a,deferred:d,renderDeferred:h,closedDeferred:f,content:e[0],animation:i.animation,backdrop:i.backdrop,keyboard:i.keyboard,backdropClass:i.backdropClass,windowTopClass:i.windowTopClass,windowClass:i.windowClass,windowTemplateUrl:i.windowTemplateUrl,size:i.size,openedClass:i.openedClass,appendTo:i.appendTo,displayClass:i.displayClass}),m.resolve(!0)},function(e){m.reject(e),d.reject(e)})["finally"](function(){u===v&&(u=null)}),g},l}]};return e}),function(){"use strict";angular.module("eolinker.filter",[])}(),function(){"use strict";angular.module("eolinker.filter").filter("Field_CommonFilter",[function(){var e={fun:{main:null}};return e.fun.array=function(e){},e.fun.object=function(e,t){for(var n in e){e[n];t.indexOf(n)>-1&&(e[n]=null)}return e},e.fun.main=function(t,n,a){switch(t){case"array":return e.fun.array(n);case"object":return e.fun.object(n,a)}},e.fun.main}])}(),function(){"use strict";function e(e,t){e.config({debug:!1,events:!0,modules:t.MODULES})}angular.module("eolinker").config(e),e.$inject=["$ocLazyLoadProvider","APP_REQUIRES"]}(),function(){"use strict";function e(e,t,n,a,i){var o={fun:{init:null}};o.fun.init=function(){t.interceptors.push(["$injector",function(e){return e.get("AuthInterceptor")}]),n.html5Mode(!1).hashPrefix(""),a.otherwise("/")},o.fun.init()}function t(){}angular.module("eolinker").config(e).run(t),e.$inject=["$stateProvider","$httpProvider","$locationProvider","$urlRouterProvider","RouteHelpersProvider"],t.$inject=[]}(),function(){"use strict";function e(e){var t={info:{query:{MODULES:e.MODULES,SCRIPTS:{}}},fun:{basepath:null,resolveFor:null,$get:null}};return t.fun.$get=function(){return{basepath:t.fun.basepath,resolveFor:t.fun.resolveFor}},t.fun.basepath=function(e){return"app/"+e},t.fun.resolveFor=function(){var e=arguments;return{deps:["$ocLazyLoad","$q",function(n,a){function i(e){return"function"==typeof e?r.then(e):r.then(function(){var t=o(e);return t?n.load(t):$.error("Route resolve: Bad resource name ["+e+"]")})}function o(e){if(t.info.query.MODULES)for(var n in t.info.query.MODULES)if(t.info.query.MODULES[n].name&&t.info.query.MODULES[n].name===e)return t.info.query.MODULES[n];return t.info.query.SCRIPTS&&t.info.query.SCRIPTS[e]}for(var r=a.when(1),s=0,c=e.length;s0?window.document.title=t.list.join("-")+(t.list.length>=1?"-":"")+a.info.title.root:window.document.title=a.info.title.root}),e.$on(n.SYSTEM_ERROR,function(e){})}angular.module("eolinker").run(e),e.$inject=["$rootScope","$state","AUTH_EVENTS"]}(),function(){"use strict";function e(e,t,n,a){var i={info:{core:angular.module("eolinker")}};i.info.core.controller=e.register,i.info.core.directive=t.directive,i.info.core.filter=n.register,i.info.core.factory=a.factory,i.info.core.service=a.service,i.info.core.constant=a.constant,i.info.core.value=a.value}angular.module("eolinker").config(e),e.$inject=["$controllerProvider","$compileProvider","$filterProvider","$provide"]}(),function(){"use strict";function e(e,t,n){var a=this;a.data={text:"",query:null,searchInputElem:null,inputElem:n[0].getElementsByClassName("input-text"),q:""},a.fun={};var i={},o={originalElemCount:0};a.fun.inputMousedown=function(e){e&&e.stopPropagation(),a.data.currentElementCount=o.originalElemCount-1,i.clearText()},a.fun.searchChange=function(){var e=angular.copy(a.input.query);return a.data.currentElementCount=o.originalElemCount,a.data.q?void(a.data.query=e.filter(function(e,t){return(e[a.input.key]||"").toLowerCase().indexOf((a.data.q||"").toLowerCase())>-1?e:void 0})):void(a.data.query=e)},a.fun.divFocus=function(){a.fun.inputMousedown(),a.data.inputElem[0].focus()},a.fun.keydown=function(e){switch(a.data.hasOwnProperty("currentElementCount")||(a.data.currentElementCount=o.originalElemCount-1),e.keyCode){case 38:a.data.currentElementCount=a.data.currentElementCount<=o.originalElemCount?((a.data.query||[]).length||1)-1:a.data.currentElementCount-1,a.data.currentElementCount==o.originalElemCount?a.data.searchInputElem&&(a.data.searchFocusStatus=!0,a.data.searchInputElem[0].click(),a.data.searchInputElem[0].focus()):4==a.data.currentElementCount&&a.data.inputElem[0].focus(),t.$root&&t.$root.$$phase||t.$apply();break;case 40:e.preventDefault(),a.data.currentElementCount++,a.data.currentElementCount==(a.data.query||[]).length&&(a.data.currentElementCount=o.originalElemCount),a.data.currentElementCount==o.originalElemCount?a.data.searchInputElem&&(a.data.searchFocusStatus=!0,a.data.searchInputElem[0].click(),a.data.searchInputElem[0].focus()):0==a.data.currentElementCount&&a.data.inputElem[0].focus(),t.$root&&t.$root.$$phase||t.$apply();break;case 13:return e.preventDefault(),a.data.currentElementCount>=0&&(i.select(a.data.query[a.data.currentElementCount],a.data.currentElementCount),"true"!==a.multiple&&a.data.inputElem[0].blur(),t.$root&&t.$root.$$phase||t.$apply()),!1}},i.clearText=function(){a.data.q="",a.data.query=a.input.query},i.select=function(e,t){a.output=a.output||{};var n=a.output[a.modelKey];if("true"===a.multiple)if(a.output[a.modelKey]=a.output[a.modelKey]||{},e[a.input.value]in a.output[a.modelKey]){if(a.required&&!(Object.keys(a.output[a.modelKey]).length>1))return;delete a.output[a.modelKey][e[a.input.value]],a.data.text="",angular.forEach(a.output[a.modelKey],function(e,t){a.data.text=a.data.text+(a.data.text?",":"")+e})}else a.output[a.modelKey][e[a.input.value]]=e[a.input.key],a.data.text=a.data.text+(a.data.text?",":"")+e[a.input.key];else a.data.text=e[a.input.key],a.output[a.modelKey]=e[a.input.value];n!==a.output[a.modelKey]&&a.inputChangeFun&&a.inputChangeFun()},a.fun.clear=function(e){e.stopPropagation(),"true"===a.multiple?(a.data.text="",a.output[a.modelKey]={}):(a.data.text="",a.output=a.output||{},a.output[a.modelKey]=null),a.inputChangeFun&&a.inputChangeFun()},a.fun.domClick=function(e){e.stopPropagation()},a.fun.listMouseDown=function(e){e.stopPropagation();var t={};try{t.point=e.target.classList[0]}catch(n){t.point="default"}switch(t.point){case"select-btn-item":case"sd_check_box":"true"===a.multiple&&(e.preventDefault(),a.data.containerFocus=!0),t.index=e.target.getAttribute("eo-attr-index"),i.select(Object.assign({},a.data.query[t.index]),t.index)}},a.fun.searchActiveStatus=function(e){a.data.searchFocusStatus=e},i.initial=function(){if(a.data.text="",void 0!==a.input.initialData)if("true"===a.multiple)angular.forEach(a.input.initialData,function(e,t){t&&(a.data.text+=(a.data.text?",":"")+e,a.output[a.modelKey][t]=e)});else for(var e in a.data.query){var t=a.data.query[e];if(t[a.input.value]==a.input.initialData){a.data.text=t[a.input.key],a.output=a.output||{},a.output[a.modelKey]=t[a.input.value];break}}},e.global.$watch.push(t.$watch("$ctrl.input.query+$ctrl.input.initialData",function(){a.input.query&&(a.data.query=a.input.query,a.data.query.length>=5?(o.originalElemCount=-1,a.data.searchInputElem=n[0].getElementsByClassName("input-search")):o.originalElemCount=0,i.initial())})),a.$onInit=function(){a.modelKey=a.modelKey||"value",n.bind("keydown",a.fun.keydown)}}angular.module("eolinker").component("selectDefaultCommonComponent",{templateUrl:"app/component/selectDefault/index.html",bindings:{input:"<",output:"=",required:"@",multiple:"@",modelKey:"@",inputChangeFun:"&",disabled:"<",mainObject:"<"},controller:e}),e.$inject=["$rootScope","$scope","$element"]}(),function(){"use strict";function e(e){}angular.module("eolinker").component("progressBarCommonComponent",{templateUrl:"app/component/progressBar/index.html",controller:e,bindings:{mainObject:"<",modelKey:"=",list:"<"}}),e.$inject=["$scope"]}(),function(){"use strict";function e(e,t){var n=this,a={broadcast:null},i={};n.data={isEnd:!0},i.dataProcessing=function(e){n.data.isEnd=!1;var t={promise:n.fun({arg:e})};t.promise?t.promise["finally"](function(){n.data.isEnd=!0}):n.data.isEnd=!0},i.$Destory=function(){a.broadcast()},i.$LoadingInit=function(e,t){i.dataProcessing(t)},n.$onInit=function(t){n.interaction=n.interaction||{request:{},response:{}},n.interaction.request.delay||i.dataProcessing(t),a.broadcast=e.$on("$Init_LoadingPartCommonComponent",i.$LoadingInit),e.$on("$destroy",i.$Destory)}}angular.module("eolinker").component("loadingPartCommonComponent",{templateUrl:"app/component/loadingPart/index.html",controller:e,bindings:{fun:"&",interaction:"<"}}),e.$inject=["$scope","$state"]}(),function(){"use strict";function e(){var e=this;e.fun={},e.fun.clickMenu=function(t){e.cancleBindFun?e.output[e.modelKey]=t:e.bindFun({arg:t})}}angular.module("eolinker").component("menuRadioCommonComponent",{templateUrl:"app/component/menuRadio/index.html",controller:e,bindings:{output:"=",list:"<",modelKey:"@",bindFun:"&",cancleBindFun:"@",disabled:"<"}}),e.$inject=[]}();var _typeof="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};!function(){"use strict";function indexController(){var vm=this;vm.fun={common:null},vm.component={blockListObject:{listItem:{baseFun:{teardownWhenCheckboxIsClick:function(e,t){var n={};t.map(function(t){e.indexAddress.hasOwnProperty(t.value)?n[t.value]=e.indexAddress[t.value]:n[t.value]=0}),window.localStorage.setItem(vm.mainObject.setting.listItemStorageName,JSON.stringify(n))}},setting:{trClass:"hover-tr-lbcc"},tdList:[{type:"checkbox",isWantedToExposeObject:!0,checkboxClickAffectTotalItem:!0,activeKey:"value",activeValue:1},{thKey:"列表项",type:"text",modelKey:"key"}]}}},vm.fun.common=function(extend,arg){if(extend){var template={params:arg};switch(_typeof(extend.params)){case"string":return eval("extend.default("+extend.params+")");default:for(var key in extend.params)null==extend.params[key]?template.params[key]=arg[key]:template.params[key]=extend.params[key];return extend["default"](template.params)}}},vm.fun.search=function(e){e.item.keyword=e.item.keyword||"",e.$event&&e.$event.stopPropagation(),e.item.tapShow=!0,e.item.fun(e)},vm.fun.batchCancel=function(){vm.mainObject.setting.batchInitFun()},vm.fun.batchDefault=function(){vm.otherObject.batch.isOperating=!0,vm.mainObject.baseFun&&vm.mainObject.baseFun.batchDefault&&vm.mainObject.baseFun.batchDefault()},vm.$onInit=function(){vm.mainObject.setting.batch&&vm.mainObject.setting.batchInitFun()}}angular.module("eolinker").component("menuDefaultCommonComponent",{templateUrl:"app/component/menuDefault/index.html",controller:indexController,bindings:{authorityObject:"<",otherObject:"=",activeObject:"<",showObject:"<",mainObject:"<",blockListObject:"="}}),indexController.$inject=[]}();var _typeof="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};!function(){"use strict";function e(){var e={},t={};return t.deepCopy=function(e){return JSON.parse(JSON.stringify(e||[]))},t.loopGenerateList=function(e,n){var a={output:[]};try{for(var i in e){var o=e[i];if(n.fun){var r=n.fun(o,n.listDepth);if(r)switch(Object.prototype.toString.call(r)){case"[object Array]":a.output=a.output.concat(r);continue;default:o=r}}n.munalConstructListDepth||(o.listDepth=n.listDepth),a.output.push(o),o.childList&&o.childList.length>0&&(a.output=a.output.concat(t.loopGenerateList(t.deepCopy(o.childList),Object.assign({},n,{listDepth:n.listDepth+1}))),delete o.childList)}}catch(s){}return a.output},e.initReadonlyTableList=function(e,n){n=n||{};var a=t.deepCopy(e);return n.listDepth=0,a=t.loopGenerateList(a,n)},t.organizeLevelAsChildList=function(e,n,a){n=n||{};for(var i={outList:[],length:0},o=!1;n.indexe[n.index].listDepth){o=!0;break}continue}}if(o)break;if(null!==i.optionFunStatus&&(n.index++,i.outList.push(r)),n.index===e.length||r.listDepth>e[n.index].listDepth)break;if(r.listDepthe[n.index].listDepth)break}}return i.outList},e.formatNestList=function(e,n){n=n||{},n.index=0;var a=t.deepCopy(e);return a?t.organizeLevelAsChildList(a,n):a},e.initEditTableList=function(e,n){n=n||{};var a=t.deepCopy(e);if((n.fun||n.isLoop)&&(n.listDepth=n.listDepth||0,a=t.loopGenerateList(a,n)),!n.munalHideOperateColumn){if(n.lastFilterKey&&a.length>0&&!a[a.length-1][n.lastFilterKey])return a;a.push(Object.assign({},{listDepth:0},n.itemStructure))}return a},e}angular.module("eolinker").factory("ListBlock_CommonComponentService",e),e.$inject=[]}();var _typeof="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};!function(){"use strict";function indexController($rootScope,$scope){var vm=this,fun={};vm.data={sortForm:{parentContainment:"tbody-div",containment:".tbody-div"},sortAuthorityVar:"",sort:!1,isEditTable:!1,html:"",partHtml:{},movePart:null,checkboxTdObject:{selectAll:!1,indexAddress:{},query:[]}},vm.fun={};var data={radioOriginalIndex:0,movePart:null};vm.fun.sort=function(e){var t=data.movePart;if(vm.data.sort&&(!vm.mainObject.setting.hasOwnProperty("unSortIndex")||vm.mainObject.setting.unSortIndex!==e.targetIndex)){switch(e.where){case"before":case"in":case"after":break;default:return}e=e||{};var n={list:[],oldList:angular.copy(vm.mainObject.setting.isPartModule?vm.list[t]:vm.list),index:e.originIndex+1,targetIndex:e.targetIndex};n.list.push(Object.assign({},e.from,{listDepth:"in"===e.where?e.to.listDepth+1:e.to.listDepth,isHide:!("in"!==e.where||!e.to.isShrink)}));var a=function(){var t=n.oldList[n.index];"in"===e.where?t.listDepth=e.to.listDepth+t.listDepth-e.from.listDepth+1:t.listDepth=t.listDepth-(e.from.listDepth-e.to.listDepth),n.list.push(t),n.index++};if(vm.mainObject.baseFun.sortPartLastIndex)for(;n.indexe.from.listDepth);)a();else for(;n.indexe.from.listDepth;)a();if(!(e.targetIndex>e.originIndex&&e.targetIndexe.originIndex&&(e.targetIndex=e.targetIndex-(n.index-e.originIndex)+1,n.targetIndex=e.targetIndex-1),n.targetIndex<0))){var i=null;switch(e.where){case"before":i=e.originIndex=4)return;vm.mainObject.baseFun.sortIn&&vm.mainObject.baseFun.sortIn(n.oldList[n.targetIndex]),i=e.originIndex-1&&(tmp.point="input-checkbox")}catch(e){tmp.point="default"}if(!/container-tbd/.test(tmp.point))if(/^(btn-)|(fbtn-)|(cbtn-)/.test(tmp.point)){if(tmp.itemIndex=parseInt(fun.getTargetIndex($event.target)),tmp.btnObject=vm.mainObject.tdList[fun.getTargetIndex($event.target,"eo-attr-td-index")].btnList[fun.getTargetIndex($event.target,"eo-attr-btn-index")],tmp.btnObject.isUnWantToStopPropagation||$event.stopPropagation(),"btn-funItem"===tmp.point&&(tmp.btnObject=tmp.btnObject.funArr[fun.getTargetIndex($event.target,"eo-attr-btn-fun-index")]),tmp.btnObject.fun){var inputArg={item:vm.mainObject.setting.isPartModule?vm.list[inputPartIndex][tmp.itemIndex]:vm.list[tmp.itemIndex],$index:tmp.itemIndex};switch(/^(fbtn-)/.test(tmp.point)&&(inputArg.callback=vm.fun.watchFormLastChange),_typeof(tmp.btnObject.param)){case"string":return void eval("tmp.btnObject.fun("+tmp.btnObject.param+")");default:return void tmp.btnObject.fun(Object.assign(inputArg,tmp.btnObject.param))}}switch(tmp.point){case"btn-delete":case"cbtn-delete":fun.deleteItem(tmp.itemIndex);break;case"btn-addChild":fun.addChildItem({item:vm.list[tmp.itemIndex],$index:tmp.itemIndex});break;case"btn-insert":fun.insertItem({item:vm.list[tmp.itemIndex],$index:tmp.itemIndex})}}else{switch($event.stopPropagation(),data.checkboxClickAffectTotalItem&&vm.data.checkboxTdObject.isOperating?tmp.point="input-checkbox":data.radioClickAffectTotalItem&&(tmp.point="input-radio"),tmp.point){case"input-checkbox":fun.clickCheckbox(vm.mainObject.tdList[data.checkboxTdIndex],fun.getTargetIndex($event.target),inputPartIndex);break;case"relational-checkbox":fun.clickCheckbox(vm.mainObject.tdList[data.relationalCheckboxTdIndex],fun.getTargetIndex($event.target),inputPartIndex);break;case"input-radio":if(tmp.tdObject=vm.mainObject.tdList[data.radioTdIndex],tmp.itemIndex=fun.getTargetIndex($event.target),tmp.tdObject.disabledModelKey&&vm.list[tmp.itemIndex][tmp.tdObject.disabledModelKey])return;(data.radioOriginalIndex||0).toString()===tmp.itemIndex&&tmp.tdObject.isCanBeCancle?(vm.list[tmp.itemIndex][tmp.tdObject.modelKey]=!vm.list[tmp.itemIndex][tmp.tdObject.modelKey],data.radioOriginalIndex=0):(vm.list[data.radioOriginalIndex][tmp.tdObject.modelKey]=!1,vm.list[tmp.itemIndex][tmp.tdObject.modelKey]=!0,data.radioOriginalIndex=tmp.itemIndex)}!vm.data.checkboxTdObject.isOperating&&vm.mainObject.baseFun.trClick&&(tmp.itemIndex=parseInt(fun.getTargetIndex($event.target)),vm.mainObject.baseFun.trClick({item:vm.list[tmp.itemIndex],$index:tmp.itemIndex}))}},vm.fun.selectAll=function(e){var t=vm.mainObject.tdList[e],n="checkbox"===t.type?vm.data.checkboxTdObject:t,a=t.authority;if(!a||vm.authorityObject[a]){var i={modelKey:t.modelKey,activeKey:t.activeKey};switch(n.selectAll=!n.selectAll,t.type){case"relationalCheckbox":t.checkIsValidToRelateAll(n.selectAll)&&vm.fun.selectAll(data.checkboxTdIndex)}if(i.modelKey){if(!n.selectAll&&1===vm.list.length&&vm.mainObject.setting.isStaticFirstIndex)return void(n.selectAll=!0);for(var o in vm.list)vm.mainObject.setting.isStaticFirstIndex&&"0"===o||(vm.list[o][i.modelKey]=n.selectAll);data.queryLength=n.selectAll?(vm.list||[]).length:0,vm.mainObject.baseFun.clickCheckbox&&vm.mainObject.baseFun.clickCheckbox((n.selectAll?"plus":"minus")+"-all")}else{var r=vm.data.checkboxTdObject.indexAddress,s=vm.data.checkboxTdObject.query.length;if(vm.data.checkboxTdObject.indexAddress={},vm.data.checkboxTdObject.query=[],vm.data.checkboxTdObject.selectAll){if(vm.mainObject.setting.isPartModule)for(var c in vm.list){var l=vm.list[c];for(var u in l)vm.data.checkboxTdObject.query.push(l[u][i.activeKey]),vm.data.checkboxTdObject.indexAddress[l[u][i.activeKey]]=t.hasOwnProperty("activeValue")?t.activeValue:parseInt(u)+1}else if(vm.mainObject.setting.disabledSelectModelKey)for(var p in vm.list)vm.list[p][vm.mainObject.setting.disabledSelectModelKey]!==vm.mainObject.setting.disabledSelectVal&&(vm.data.checkboxTdObject.query.push(vm.list[p][i.activeKey]),vm.data.checkboxTdObject.indexAddress[vm.list[p][i.activeKey]]=t.hasOwnProperty("activeValue")?t.activeValue:parseInt(p)+1);else{var d=[];if(d=vm.mainObject.setting&&vm.mainObject.setting.isScrollLoad?vm.otherObject.allQuery:vm.list,vm.mainObject.baseFun.checkIsValidItem)for(var m in d)null!==d[m][i.activeKey]&&vm.mainObject.baseFun.checkIsValidItem({item:d[m],indexAddress:r,isSelectAll:!0})&&(vm.data.checkboxTdObject.query.push(d[m][i.activeKey]),vm.data.checkboxTdObject.indexAddress[d[m][i.activeKey]]=t.hasOwnProperty("activeValue")?t.activeValue:parseInt(m)+1);else for(var f in d)null!==d[f][i.activeKey]&&(vm.data.checkboxTdObject.query.push(d[f][i.activeKey]),vm.data.checkboxTdObject.indexAddress[d[f][i.activeKey]]=t.hasOwnProperty("activeValue")?t.activeValue:parseInt(f)+1)}vm.mainObject.baseFun.clickCheckbox&&vm.mainObject.baseFun.clickCheckbox("plus-all",{oldLength:s,currentLenght:vm.data.checkboxTdObject.query.length})}else vm.mainObject.baseFun.cancelToSelectAll?vm.mainObject.baseFun.cancelToSelectAll():vm.mainObject.baseFun.clickCheckbox&&vm.mainObject.baseFun.clickCheckbox("minus-all",{oldLength:s});vm.mainObject.baseFun.teardownWhenCheckboxIsClick&&vm.mainObject.baseFun.teardownWhenCheckboxIsClick(vm.data.checkboxTdObject,vm.list)}}},fun.getLastItemIndex=function(e,t){for(var n=e+1;n=(t[n].listDepth||0))return n;n++}return n},fun.checkIsLastItem=function(e,t){for(var n=e+1;nt[n].listDepth)return n;n++}return n},vm.fun.watchFormLastChange=function(e,t){if(!vm.mainObject.setting.munalAddRow&&!e.item.cancleAutomaticAddRow)if(vm.data.isDepth){if(!vm.mainObject.setting.munalHideOperateColumn||0!==e.$index){var n=fun.checkIsLastItem(e.$index,vm.list);n===!1||vm.mainObject.setting.illegalAutomaticAddRowModelKey&&(!vm.mainObject.setting.illegalAutomaticAddRowModelKey||e.item.hasOwnProperty(vm.mainObject.setting.illegalAutomaticAddRowModelKey))||vm.list.splice(n,0,Object.assign({},{listDepth:e.item.listDepth},vm.mainObject.itemStructure))}}else e.$index===vm.list.length-1&&vm.list.splice(e.$index+1,0,Object.assign({},{listDepth:e.item.listDepth},vm.mainObject.itemStructure));vm.mainObject.baseFun.watchFormLastChange&&vm.mainObject.baseFun.watchFormLastChange(e),t&&t(e)},$scope.importFile=function(e){e.$index=this.$parent.$index,vm.mainObject.baseFun.importFile(e)},vm.fun.shrinkList=function(e){e.stopPropagation();var t={};t.targetDom=fun.getTargetEvent(e.target),t.itemIndex=fun.getTargetIndex(e.target),vm.list[t.itemIndex].isShrink=!vm.list[t.itemIndex].isShrink,fun.operateLevel(t.targetDom.getAttribute("eo-attr-depth"),t.targetDom.nextElementSibling,parseInt(t.itemIndex)+1)},vm.fun.range=function(e,t){return e=e||1,(!vm.list[t.$index+1]||(vm.list[t.$index+1].listDepth||0)<=(t.item.listDepth||0))&&e--,new Array(e)},vm.fun.sortMouseDown=function(e,t){vm.mainObject.setting.unsortableVar&&vm.otherObject&&vm.otherObject[vm.mainObject.setting.unsortableVar]||(data.mouseEventElem=angular.element(e.target),data.mouseEventElem.bind("mousemove",function(){vm.data.movePart=t}))},vm.fun.mouseUp=function(){data.mouseEventElem&&data.mouseEventElem.unbind("mousemove"),data.movePart=vm.data.movePart,vm.data.movePart=null},fun.operateLevel=function(e,t,n){for(var a={operateName:angular.element(t).hasClass("ng-hide")?"removeClass":"addClass"},i=n,o=n;t&&e';for(var i in n){var o=n[i];a+='"}a+="
    "}return a},fun.initItemHtml=function(e,t){var n="",a="";switch(e.type){case"depthText":vm.data.isDepth=!0,a+='
    '+e.thKey+"
    ",n+='
    {{item.'+e.modelKey+"}}
    ";break;case"depthHtml":vm.data.isDepth=!0,a+='
    '+e.thKey+"
    ",n+='
    '+e.html+"
    ";break;case"depthInput":vm.data.isEditTable=!0,vm.data.isDepth=!0,a+='
    '+e.thKey+"
    ",n+='

    '+(e.errorTip||"请填写"+e.thKey)+"

    "+fun.parseFloatBtnGroupHtml("input",t,e.btnList)+"
    ";break;case"html":if(a+='
    "+e.thKey+"
    ","string"==typeof e.html)n+='
    "+e.html+"
    ";else if(e.html){n=[];for(var i in e.html)n.push('
    '+e.html[i]+"
    ")}break;case"text":if(a+='
    "+(e.thKey||"")+"
    ","string"==typeof e.modelKey)n+='
    {{item."+e.modelKey+"}}
    ";else if(e.modelKey){n=[];for(var o in e.modelKey)n.push('
    {{item."+e.modelKey[o]+"}}
    ")}break;case"sort":vm.data.sort=!0,vm.data.sortAuthorityVar=e.authority||"",a+="
    "+(e.thKey||"")+"
    ",n+="
    ";break;case"radio":data.radioClickAffectTotalItem=e.radioClickAffectTotalItem||!1,data.radioOriginalIndex=vm.mainObject.setting.radioOriginalType||0,data.radioTdIndex=t,a+='
    '+e.thKey+"
    ",n+='
    {{item.'+e.modelKey+'?"":""}}
    ';break;case"relationalCheckbox":data.relationalCheckboxTdIndex=t,$rootScope.global.$watch.push($scope.$watch("$ctrl.list",fun.watchRelationalCheckboxChange,!0));var r=e.authority?"ng-class=\"{'disable-checkbox':!$ctrl.authorityObject."+e.authority+'}" ':"";a+='
    {{$ctrl.mainObject.tdList["+t+'].selectAll?"":" "}}'+(e.thKey?''+e.thKey+"":"")+"
    ",n+='
    {{item."+e.modelKey+'?"":""}}
    ';break;case"checkbox":data.checkboxClickAffectTotalItem=e.checkboxClickAffectTotalItem||!1,data.checkboxTdIndex=t,$rootScope.global.$watch.push($scope.$watch("$ctrl.data.checkboxTdObject.isOperating",fun.watchCheckboxChange)),e.wantToWatchListLength&&$rootScope.global.$watch.push($scope.$watch("$ctrl.list.length",fun.watchCheckboxChange,!0)),e.modelKey&&$rootScope.global.$watch.push($scope.$watch("$ctrl.list",fun.watchCheckboxChange,!0)),e.isWantedToExposeObject&&(vm.data.checkboxTdObject=vm.activeObject=Object.assign({},vm.data.checkboxTdObject,vm.activeObject)),vm.data.checkboxTdObject.isOperating=!vm.data.checkboxTdObject.hasOwnProperty("isOperating")||vm.data.checkboxTdObject.isOperating;var s=e.authority?"ng-class=\"{'disable-checkbox':!$ctrl.authorityObject."+e.authority+'}" ':"";a+='
    {{$ctrl.data.checkboxTdObject.selectAll?"":" "}}'+(e.thKey?''+e.thKey+"":"")+"
    ",n+='
    "+(e.modelKey?"{{item."+e.modelKey+'?"":""}}':"{{$ctrl.data.checkboxTdObject.indexAddress[item."+e.activeKey+']?"":""}}')+"
    ";break;case"cbtn":case"btn":a+="
    "+(e.thKey||"操作")+"
    ",n+="
    ';for(var c in e.btnList){var l=e.btnList[c],u="";switch(l.type){case"more":for(var p in l.funArr){var d=l.funArr[p];u+='

    "}n+='
    '+u+"
    ";break;case"html":n+="
    "+l.html+"
    ";break;default:n+='"}}n+="
    ";break;case"selectMulti":vm.data.isEditTable=!0,a+='
    "+e.thKey+"
    ",n+='
    ';break;case"select":vm.data.isEditTable=!0,a+='
    "+e.thKey+"
    ",n+='
    ';break;case"input":vm.data.isEditTable=!0,a+='
    "+e.thKey+"
    ",n+='

    '+(e.errorTip||"请填写"+e.thKey)+"

    "+fun.parseFloatBtnGroupHtml("input",t,e.btnList)+"
    ";break;case"autoComplete":vm.data.isEditTable=!0,a+='
    '+e.thKey+"
    ",n+='

    '+(e.errorTip||"请填写"+e.thKey)+"

    "+fun.parseFloatBtnGroupHtml("acp",t,e.btnList)+"
    ";break;case"autoCompleteAndFile":vm.data.isEditTable=!0;var m="",f=e.filePlaceholder||"请选择文件",h=e.fileBtnText||"选择文件";m=e.munalDefineFileFun?'":'",a+='
    '+e.thKey+"
    ",n+='
    '+m+'
    '+fun.parseFloatBtnGroupHtml("acp",t,e.btnList)+"
    "}return{thHtml:a,tdHtml:n}},fun.initPartHtml=function(){for(var e={html:new Array(vm.mainObject.setting.partNum),thHtml:""},t=0;t
    ';try{e.html[t]=e.html[t].replace("{{trClass}}",vm.mainObject.setting.trClass||"").replace("{{trNgClass}}",vm.mainObject.setting.trNgClass||"").replace("{{trDirective}}",vm.mainObject.setting.trDirective||"").replace("{{trExpression}}",vm.mainObject.setting.trExpression||"")}catch(n){}}for(var a in vm.mainObject.tdList){var i=vm.mainObject.tdList[a],o=fun.initItemHtml(i,a);e.thHtml+=o.thHtml.replace("{{class}}",i["class"]||"");for(var r in e.html)"string"==typeof o.tdHtml?e.html[r]+=o.tdHtml.replace("{{class}}",i["class"]||""):e.html[r]+=o.tdHtml[r].replace("{{class}}",i["class"]||"")}for(var s in e.html)vm.data.partHtml[vm.mainObject.setting.partModule[s]]=e.html[s]+"
    ";vm.data.thHtml=e.thHtml},fun.initHtml=function(){var e={html:"",thHtml:""},t='
    ';try{t=t.replace("{{trClass}}",vm.mainObject.setting.trClass||"").replace("{{trNgClass}}",vm.mainObject.setting.trNgClass||"").replace("{{trDirective}}",vm.mainObject.setting.trDirective||"")}catch(n){}for(var a in vm.mainObject.tdList){var i=vm.mainObject.tdList[a],o=fun.initItemHtml(i,a);e.thHtml+=o.thHtml.replace("{{class}}",i["class"]||""),t+=o.tdHtml.replace("{{class}}",i["class"]||"").replace("{{placeholder}}",i.placeholder?'placeholder="'+i.placeholder+'"':"")}e.html=(vm.mainObject.setting.isForm?'':"
    ')+('
    ');try{e.html=e.html.replace("{{trExpression}}",vm.mainObject.setting.trExpression||"")}catch(n){}vm.data.html=e.html+(vm.mainObject.extraTrHtml||"")+t+"
    "+(vm.mainObject.setting.isForm?"
    ":"
    "),vm.data.thHtml=e.thHtml},vm.$onInit=function(){vm.mainObject&&(vm.mainObject.setting=vm.mainObject.setting||{},vm.mainObject.baseFun=vm.mainObject.baseFun||{},vm.mainObject.setting.isPartModule?fun.initPartHtml():fun.initHtml())},fun.watchRelationalCheckboxChange=function(){if(!((vm.list||[]).length<=0)){var e=vm.mainObject.tdList[data.relationalCheckboxTdIndex],t=e.modelKey;data.queryLength=0;for(var n in vm.list)vm.list[n][t]&&data.queryLength++;(vm.list||[]).length===data.queryLength?e.selectAll=!0:e.selectAll=!1}},fun.watchCheckboxChange=function(){if((!((vm.list||[]).length<=0)||vm.mainObject.setting.isPartModule)&&vm.data.checkboxTdObject.isOperating){var e=vm.mainObject.tdList[data.checkboxTdIndex].modelKey;if(data.queryLength=0,e){for(var t in vm.list)vm.list[t][e]&&data.queryLength++;(vm.list||[]).length===data.queryLength?vm.data.checkboxTdObject.selectAll=!0:vm.data.checkboxTdObject.selectAll=!1}else{if(vm.mainObject.setting.isPartModule)for(var n in vm.list)data.queryLength+=(vm.list[n]||[]).length;else data.queryLength=(vm.list||[]).length;vm.data.checkboxTdObject.query=[];for(var a in vm.data.checkboxTdObject.indexAddress)vm.data.checkboxTdObject.query.push(vm.mainObject.setting.checkboxKeyIsNum?parseInt(a):a);(vm.data.checkboxTdObject.query||[]).length>=data.queryLength?vm.data.checkboxTdObject.selectAll=!0:vm.data.checkboxTdObject.selectAll=!1}}}}angular.module("eolinker").component("listBlockCommonComponent",{templateUrl:"app/component/listBlock/index.html",controller:indexController,bindings:{otherObject:"=",authorityObject:"<",mainObject:"<",list:"=",activeObject:"=",pageObject:"<"}}),indexController.$inject=["$rootScope","$scope"]}(),function(){"use strict";function indexController($scope,$element){var vm=this;vm.data={query:[],inputElem:$element[0].getElementsByClassName("input-text-acac"),inputIsFocus:!1},vm.fun={};var data={originalElemCount:0},privateFun={};vm.fun.modelChange=function(){if(vm.data.inputIsFocus=!0,vm.inputChangeFun(),privateFun.clearSelectItem(),vm.model[vm.keyName]){vm.data.query=[];var tmpIndex=0;angular.forEach(vm.array,function(val,key){var pattern="/^"+vm.model[vm.keyName].toLowerCase()+"/";try{eval(pattern).test(val.toLowerCase())?(vm.data.query.splice(tmpIndex,0,val),tmpIndex++):val.toLowerCase().indexOf(vm.model[vm.keyName].toLowerCase())>-1&&vm.data.query.push(val)}catch(EVAL_ERR){}}),vm.data.query.length<=0&&(vm.data.viewIsShow=!1)}else vm.data.query=vm.array},vm.fun.changeSwitch=function(e){vm.readOnly||(vm.data.inputIsFocus=e,vm.data.inputIsFocus&&(vm.data.query=vm.array),vm.data.inputElem[0].focus())},vm.fun.changeText=function(e){vm.data.inputIsFocus=!1,vm.model[vm.keyName]=e,vm.inputChangeFun()},privateFun.clearSelectItem=function(){data.originalElemCount=0,vm.data.currentElementCount=data.originalElemCount-1},vm.fun.inputBlur=function(e){e.stopPropagation(),vm.data.inputIsFocus=!1},vm.fun.inputFocus=function(e){e.stopPropagation(),privateFun.clearSelectItem()},vm.fun.keydown=function(e){switch(vm.data.hasOwnProperty("currentElementCount")||(vm.data.currentElementCount=data.originalElemCount-1),e.keyCode){case 38:vm.data.currentElementCount=vm.data.currentElementCount<=data.originalElemCount?((vm.data.query||[]).length||1)-1:vm.data.currentElementCount-1,$scope.$root&&$scope.$root.$$phase||$scope.$apply();break;case 40:e.preventDefault(),vm.data.currentElementCount++,vm.data.currentElementCount===(vm.data.query||[]).length&&(vm.data.currentElementCount=data.originalElemCount),$scope.$root&&$scope.$root.$$phase||$scope.$apply();break;case 13:return e.preventDefault(),vm.data.currentElementCount>=0&&(vm.fun.changeText(vm.data.query[vm.data.currentElementCount],vm.data.currentElementCount),$scope.$root&&$scope.$root.$$phase||$scope.$apply()),!1}}}angular.module("eolinker").component("autoCompleteComponent",{templateUrl:"app/component/autoComplete/index.html",controller:indexController,bindings:{mainObject:"<",readOnly:"<",placeholder:"@",keyName:"@",required:"<",array:"<",model:"=",inputChangeFun:"&"}}),indexController.$inject=["$scope","$element"]}(),function(e,t){"use strict";function n(e,t){return e.className.indexOf(t)>-1?e:!!e.parentElement&&n(e.parentElement,t)}t.module("eolinker.directive").directive("moveTipDirective",["$rootScope","$compile","$filter",function(e,a,i){return{restrict:"A",scope:{},link:function(o,r,s,c){var l=i("uuidFilter")(),u='
    '+(s.tipsObject?"{{"+s.tipsObject+"}}":s.tipsText)+'
    ';t.element(document.body).append(a(u)(o.$parent)); -var p=t.element(document.getElementsByClassName(s.parentClassName)),d=null,m=0,f={},h=null,g=null;try{f=JSON.parse(s.tipsStyle)}catch(v){}e.global.$watch.push(o.$watch(s.tipsDisabled,function(e,t){g=e})),d=t.element(document.getElementsByClassName("move-tip-directive"+l)[0]),p.on("mouseover",function(e){if(m||(m=d[0].offsetHeight),h=s.ableClassName?n(e.target,s.ableClassName):e.target,!g&&e.target.className.indexOf(s.disableClassName)==-1&&(!s.ableClassName||s.ableClassName&&h)){var t=h.getBoundingClientRect();d.css({left:t.left+(Number(f.left)||0)+"px",top:t.top+(Number(f.top)||0)-m+5+"px",visibility:"visible"})}else d.css({visibility:"hidden"})}),d.on("mouseover",function(e){d.css({visibility:"visible"})}),d.on("mouseleave",function(e){d.css({visibility:"hidden"})}),p.on("mouseleave",function(e){d.css({visibility:"hidden"})}),o.$on("$destroy",function(){d.remove()})}}}])}(window,window.angular),function(){"use strict";angular.module("eolinker.directive").directive("tipDirective",["$compile","$filter","$timeout",function(e,t,n){return{restrict:"AE",transclude:!0,templateUrl:"app/directive/tip/index.html",scope:{input:"@"},link:function(e,a,i,o){e.data={input:{marginLeft:i.marginLeft||-5},uuid:t("uuidFilter")(),element:null};var r={timer:null},s={};s.$destroy=function(){r.timer&&n.cancel(r.timer)},r.timer=n(function(){e.data.element=document.getElementById("tip-directive-js-"+e.data.uuid),angular.element(e.data.element).append(e.input)}),e.$on("$destroy",s.$destroy)}}}])}(),function(){"use strict";angular.module("eolinker.directive").value("THROTTLE_MILLISECONDS",null).directive("infiniteScroll",["$rootScope","$window","$interval","THROTTLE_MILLISECONDS",function(e,t,n,a){return{scope:{infiniteScroll:"&",infiniteScrollContainer:"=",infiniteScrollDistance:"=",infiniteScrollDisabled:"=",infiniteScrollCancel:"=",infiniteScrollUseDocumentBottom:"=",infiniteScrollListenForEvent:"@"},link:function(i,o,r){function s(e){return!!e&&n(function(){return v()},0)}var c,l,u,p,d,m,f,h,g,v,b,$,y,x,j,w,I,O,C,k;return k=angular.element(t),j=null,w=null,p=null,d=null,$=!0,C=!1,O=null,u=!1,l=0,b=function(e){return e=e[0]||e,isNaN(e.offsetHeight)?e.document.documentElement.clientHeight:e.offsetHeight},y=function(e){if(e[0].getBoundingClientRect&&!e.css("none"))return e[0].getBoundingClientRect().top+x(e)},x=function(e){return e=e[0]||e,isNaN(window.pageYOffset)?e.document.documentElement.scrollTop:e.ownerDocument.defaultView.pageYOffset},v=function(){var t,a,r,s,c;if(d===k){t=b(d)+x(d[0].document.documentElement);var l=b(o);r=y(o)+l}else{t=b(d),a=0,void 0!==y(d)&&(a=y(d));var l=b(o);r=y(o)-a+l}return C&&(r=b((o[0].ownerDocument||o[0].document).documentElement)),s=r-t,c=s<=b(d)*j*.1&&r,c?(p=!0,w?i.$$phase||e.$$phase?i.infiniteScroll():i.$apply(i.infiniteScroll):void 0):(u&&n.cancel(u),p=!1)},I=function(e,t){var a,i,o;return o=null,i=0,a=function(){return i=(new Date).getTime(),n.cancel(o),o=null,e.call()},function(){var r,s;return r=(new Date).getTime(),s=t-(r-i),s<=0?(n.cancel(o),o=null,i=r,e.call()):o?void 0:o=n(a,s,1)}},null!=a&&(v=I(v,a)),i.$on("$destroy",function(){if(d.unbind("scroll",v),null!=O&&(O(),O=null),u)return n.cancel(u)}),h=function(e){return j=parseFloat(e)||0},i.$watch("infiniteScrollDistance",h),h(i.infiniteScrollDistance),f=function(e){if(w=!e,w&&p)return p=!1,v()},i.$watch("infiniteScrollDisabled",f),f(i.infiniteScrollDisabled),g=function(e){return C=e},i.$watch("infiniteScrollUseDocumentBottom",g),g(i.infiniteScrollUseDocumentBottom),c=function(e){if(null!=d&&d.unbind("scroll",v),d=e,null!=e)return d.bind("scroll",v)},c(k),i.infiniteScrollListenForEvent&&(O=e.$on(i.infiniteScrollListenForEvent,v)),m=function(e){if(null!=e&&0!==e.length){if(e.nodeType&&1===e.nodeType?e=angular.element(e):"function"==typeof e.append?e=angular.element(e[e.length-1]):"string"==typeof e&&(e=angular.element(document.querySelector(e))),null!=e)return c(e);throw new Error("invalid infinite-scroll-container attribute.")}},i.$watch("infiniteScrollContainer",m),i.$watch("infiniteScrollCancel",function(e){if(e){if(d.unbind("scroll",v),null!=O&&(O(),O=null),u)return n.cancel(u)}else c(angular.element(o.parent()))}),m(i.infiniteScrollContainer||[]),null!=r.infiniteScrollParent&&null==r.infiniteScrollCancel&&c(angular.element(o.parent())),null!=r.infiniteScrollImmediateCheck&&($=i.$eval(r.infiniteScrollImmediateCheck)),u=s($)}}}])}(),function(){"use strict";angular.module("eolinker.directive").directive("dropDownMenuCommonDirective",["$rootScope",function(e){return{restrict:"AE",scope:{dirDisable:"<"},link:function(t,n,a,i){t.data={elemArr:n[0].getElementsByClassName("eo_more_btn")};var o={};o.initWatchDom=function(){e.global.$watch.push(t.$watch("data.elemArr.length",function(){if(t.data.elemArr){var e=Array.prototype.slice.call(t.data.elemArr);e.map(function(e){var t=e;angular.element(t).bind("click",function(e){t.focus()})})}}))};(function(){/macintosh|mac os x/i.test(navigator.userAgent)&&!/Chrome/i.test(navigator.userAgent)&&(o.initWatchDom(),t.$on("$stateChangeStart",function(){t.data.elemArr=null}),t.$on("$stateChangeSuccess",function(){t.data.elemArr||(t.data.elemArr=n[0].getElementsByClassName("eo_more_btn"),o.initWatchDom())}))})()}}}])}();var _typeof="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};!function(){"use strict";function e(e,t,n,a,i,o,r){var s={info:{auth:null},fun:{request:null,response:null,responseError:null}};return s.fun.request=function(e){return e},s.fun.response=function(s){if(s.data){e.$broadcast({901:a.UNAUTHENTICATED,401:a.UNAUTHORIZED}[s.data.code],s);try{if(!/^\/nodeHttpServer/.test(s.config.url)&&"object"==_typeof(s.data))switch(s.data=JSON.parse(o("HtmlFilter")(angular.toJson(s.data))),s.data.statusCode){case r.COMMON.UNLOGIN:if(/(home)|(transaction)|(guide)/.test(window.location.href))return e.$broadcast("$LoginAgain_Core",s.config),n.reject("Sorry, the current status is not logged in. If you want to continue the operation, please login first!");break;case r.COMMON.SUCCESS:break;default:if(t.indexOf(s.data.statusCode)===-1){var c=i[s.data.statusCode];c?e.InfoModal(c,"error"):s.data.statusCode&&e.InfoModal(s.data.resultDesc||"操作失败,请稍候再试!","error"),s.data.statusCode=r.COMMON.HAD_WARNING}}}catch(l){s.data=s.data,e.$broadcast(a.SYSTEM_ERROR)}}return n.resolve(s)},s.fun.responseError=function(t){return e.$broadcast(a.SYSTEM_ERROR),n.reject(t)},s.fun}angular.module("eolinker").factory("AuthInterceptor",e),e.$inject=["$rootScope","FILTER_WARNING_CODE_ARR_COMMON_CONST","$q","AUTH_EVENTS","ERR_CODE_ARR_COMMON_CONST","$filter","CODE"]}(),function(){"use strict";angular.module("eolinker.resource",[])}(),function(){"use strict";function e(e,t){var n,a={info:{api:[],method:"POST"}};return a.info.api.ConfigLog=e(t+"config/log/:operate",{},{Console:{params:{operate:"console"},method:"GET",cancellable:!0},SetConsole:{params:{operate:"console"},method:"PUT",cancellable:!0},Node:{params:{operate:"node"},method:"GET",cancellable:!0},SetNode:{params:{operate:"node"},method:"PUT",cancellable:!0},Access:{params:{operate:"access"},method:"GET",cancellable:!0},SetAccess:{params:{operate:"access"},method:"PUT",cancellable:!0}}),a.info.api.ServiceDiscovery=e(t+"balance/service/:operate",{},{DriverQuery:{params:{operate:"drivers"},method:"GET",cancellable:!0},Query:{params:{operate:"list"},method:"GET",cancellable:!0},Info:{params:{operate:"info"},method:"GET",cancellable:!0},Add:{params:{operate:"add"},method:a.info.method,cancellable:!0},Delete:{params:{operate:"delete"},method:a.info.method,cancellable:!0},Edit:{params:{operate:"save"},method:a.info.method,cancellable:!0},SimpleQuery:{params:{operate:"simple"},method:a.info.method,cancellable:!0}}),a.info.api.Cluster=e(t+"cluster/:operate",{},{Query:{params:{operate:"list"},method:"GET",cancellable:!0},SimpleQuery:{params:{operate:"simpleList"},method:"GET",cancellable:!0}}),a.info.api.AlertMessage=e(t+"alert/msg/:operate",{},{Query:{params:{operate:"getList"},method:a.info.method,cancellable:!0},Empty:{params:{operate:"clear"},method:a.info.method,cancellable:!0},Delete:{params:{operate:"delete"},method:a.info.method,cancellable:!0}}),a.info.api.Monitor=e(t+"monitor/gateway/:operate",{},{Info:{params:{operate:"getSummaryInfo"},method:a.info.method,cancellable:!0},Refresh:{params:{operate:"refreshInfo"},method:a.info.method,cancellable:!0},Download:{params:{operate:"download"},method:a.info.method,cancellable:!0}}),a.info.api.Config=e(t+"gateway/config/:mark/:operate",{},{BaseInfo:{params:{mark:"base",operate:"getInfo"},method:a.info.method,cancellable:!0},AlertInfo:{params:{mark:"alert",operate:"getInfo"},method:a.info.method,cancellable:!0},BaseEdit:{params:{mark:"base",operate:"edit"},method:a.info.method,cancellable:!0},AlertEdit:{params:{mark:"alert",operate:"edit"},method:a.info.method,cancellable:!0}}),a.info.api.ImportAms=e(t+"import/ams/:operate",{},{Project:{params:{operate:"project"},method:a.info.method,cancellable:!0,transformRequest:angular.identity,headers:{"Content-Type":void 0}},Api:{params:{operate:"api"},method:a.info.method,cancellable:!0,transformRequest:angular.identity,headers:{"Content-Type":void 0}},Group:{params:{operate:"group"},method:a.info.method,cancellable:!0,transformRequest:angular.identity,headers:{"Content-Type":void 0}}}),a.info.api.Project=e(t+"project/:operate/:target",{},{Query:{params:{operate:"getList"},method:"GET",cancellable:!0},Add:{params:{operate:"add"},method:a.info.method,cancellable:!0},Edit:{params:{operate:"edit"},method:a.info.method,cancellable:!0},Delete:{params:{operate:"batchDelete"},method:a.info.method,cancellable:!0},Info:{params:{operate:"getInfo"},method:a.info.method,cancellable:!0},QueryAndGroup:{params:{operate:"strategy",target:"getList"},method:a.info.method,cancellable:!0}}),a.info.api.Api=e(t+"apis/:mark/:operate",{},{IDQuery:{params:{mark:"id",operate:"getList"},method:"GET",cancellable:!0},Query:{params:{operate:"getList"},method:"GET",cancellable:!0},Copy:{params:{operate:"copy"},method:a.info.method,cancellable:!0},Add:{params:{operate:"add"},method:a.info.method,cancellable:!0},Edit:{params:{operate:"edit"},method:a.info.method,cancellable:!0},Delete:{params:{operate:"batchDelete"},method:a.info.method,cancellable:!0},ChangeGroup:{params:{operate:"batchEditGroup"},method:a.info.method,cancellable:!0},Info:{params:{operate:"getInfo"},method:a.info.method,cancellable:!0}}),a.info.api.ApiGroup=e(t+"apis/group/:operate",{},{Query:{params:{operate:"getList"},method:a.info.method,cancellable:!0},Add:{params:{operate:"add"},method:a.info.method,cancellable:!0},Edit:{params:{operate:"edit"},method:a.info.method,cancellable:!0},Delete:{params:{operate:"delete"},method:a.info.method,cancellable:!0},Info:{params:{operate:"getInfo"},method:a.info.method,cancellable:!0}}),a.info.api.Auth=e(t+"auth/:operate",{},{Edit:{params:{operate:"editInfo"},method:a.info.method,cancellable:!0},Info:{params:{operate:"getInfo"},method:a.info.method,cancellable:!0},Status:{params:{operate:"getStatus"},method:a.info.method,cancellable:!0}}),a.info.api.Node=e(t+"node/:operate",{},{Query:{params:{operate:"getList"},method:a.info.method,cancellable:!0},Add:{params:{operate:"add"},method:a.info.method,cancellable:!0},Edit:{params:{operate:"edit"},method:a.info.method,cancellable:!0},ChangeGroup:{params:{operate:"batchEditGroup"},method:a.info.method,cancellable:!0},Delete:{params:{operate:"batchDelete"},method:a.info.method,cancellable:!0},Info:{params:{operate:"getInfo"},method:a.info.method,cancellable:!0},Reload:{params:{operate:"batchReload"},method:a.info.method,cancellable:!0},Restart:{params:{operate:"batchRestart"},method:a.info.method,cancellable:!0},Start:{params:{operate:"batchStart"},method:a.info.method,cancellable:!0},Stop:{params:{operate:"batchStop"},method:a.info.method,cancellable:!0}}),a.info.api.NodeGroup=e(t+"node/group/:operate",{},{Query:{params:{operate:"getList"},method:a.info.method,cancellable:!0},Add:{params:{operate:"add"},method:a.info.method,cancellable:!0},Edit:{params:{operate:"edit"},method:a.info.method,cancellable:!0},Delete:{params:{operate:"delete"},method:a.info.method,cancellable:!0}}),a.info.api.Strategy=e(t+"strategy/:mark/:operate",{},(n={IDQuery:{params:{mark:"id",operate:"getList"},method:"GET",cancellable:!0},Info:{params:{operate:"getInfo"},method:"GET",cancellable:!0},Query:{params:{operate:"getList"},method:"GET",cancellable:!0},Add:{params:{operate:"add"},method:a.info.method,cancellable:!0},Copy:{params:{operate:"copy"},method:a.info.method,cancellable:!0},Edit:{params:{operate:"edit"},method:a.info.method,cancellable:!0},Delete:{params:{operate:"batchDelete"},method:a.info.method,cancellable:!0},ChangeGroup:{params:{operate:"batchEditGroup"},method:a.info.method,cancellable:!0}},_defineProperty(n,"Info",{params:{operate:"getInfo"},method:a.info.method,cancellable:!0}),_defineProperty(n,"Start",{params:{operate:"batchStart"},method:a.info.method,cancellable:!0}),_defineProperty(n,"Stop",{params:{operate:"batchStop"},method:a.info.method,cancellable:!0}),n)),a.info.api.StrategyGroup=e(t+"strategy/group/:operate",{},{Query:{params:{operate:"getList"},method:a.info.method,cancellable:!0},Add:{params:{operate:"add"},method:a.info.method,cancellable:!0},Edit:{params:{operate:"edit"},method:a.info.method,cancellable:!0},Delete:{params:{operate:"delete"},method:a.info.method,cancellable:!0}}),a.info.api.StrategyApi=e(t+"strategy/api/:mark/:operate",{},{IDQuery:{params:{mark:"id",operate:"getList"},method:"GET",cancellable:!0},UnassignIDQuery:{params:{mark:"id",operate:"getNotInList"},method:"GET",cancellable:!0},All:{params:{operate:"getNotInList"},method:a.info.method,cancellable:!0},Query:{params:{operate:"getList"},method:"GET",cancellable:!0},Add:{params:{operate:"add"},method:a.info.method,cancellable:!0},Edit:{params:{operate:"edit"},method:a.info.method,cancellable:!0},Delete:{params:{operate:"batchDelete"},method:a.info.method,cancellable:!0},Info:{params:{operate:"getInfo"},method:a.info.method,cancellable:!0},ChangeTarget:{params:{operate:"batchEditTarget"},method:a.info.method,cancellable:!0}}),a.info.api.Balance=e(t+"balance/:operate",{},{CheckIsExistInCluster:{params:{operate:"exits"},method:a.info.method,cancellable:!0},Query:{params:{operate:"getList"},method:a.info.method,cancellable:!0},Add:{params:{operate:"add"},method:a.info.method,cancellable:!0},Edit:{params:{operate:"edit"},method:a.info.method,cancellable:!0},Delete:{params:{operate:"batchDelete"},method:a.info.method,cancellable:!0},Info:{params:{operate:"getInfo"},method:a.info.method,cancellable:!0},SimpleQuery:{params:{operate:"simple"},method:a.info.method,cancellable:!0}}),a.info.api.Plugin=e(t+"plugin/:mark/:operate",{},{TagQuery:{params:{operate:"getListByType"},method:a.info.method,cancellable:!0},Query:{params:{operate:"getList"},method:a.info.method,cancellable:!0},Add:{params:{operate:"add"},method:a.info.method,cancellable:!0},Edit:{params:{operate:"edit"},method:a.info.method,cancellable:!0},Delete:{params:{operate:"delete"},method:a.info.method,cancellable:!0},Info:{params:{operate:"getInfo"},method:a.info.method,cancellable:!0},Start:{params:{operate:"start"},method:a.info.method,cancellable:!0},Stop:{params:{operate:"stop"},method:a.info.method,cancellable:!0},BatchStop:{params:{operate:"batchStop"},method:a.info.method,cancellable:!0},BatchStart:{params:{operate:"batchStart"},method:a.info.method,cancellable:!0},Check:{params:{operate:"check",mark:"availiable"},method:a.info.method,cancellable:!0}}),a.info.api.PluginStrategy=e(t+"plugin/strategy/:operate",{},{Query:{params:{operate:"getList"},method:a.info.method,cancellable:!0},Add:{params:{operate:"addPluginToStrategy"},method:a.info.method,cancellable:!0},Edit:{params:{operate:"edit"},method:a.info.method,cancellable:!0},Delete:{params:{operate:"batchDelete"},method:a.info.method,cancellable:!0},Info:{params:{operate:"getInfo"},method:a.info.method,cancellable:!0},Start:{params:{operate:"batchStart"},method:a.info.method,cancellable:!0},Stop:{params:{operate:"batchStop"},method:a.info.method,cancellable:!0}}),a.info.api.GpeditPluginApi=e(t+"strategy/api/plugin/:operate",{},{Query:{params:{operate:"getList"},method:a.info.method,cancellable:!0}}),a.info.api.PluginApi=e(t+"plugin/api/:mark/:operate",{},{QueryByStrategy:{params:{mark:"notAssign",operate:"getList"},method:a.info.method,cancellable:!0},Query:{params:{operate:"getListByStrategy"},method:a.info.method,cancellable:!0},Add:{params:{operate:"addPluginToApi"},method:a.info.method,cancellable:!0},Edit:{params:{operate:"edit"},method:a.info.method,cancellable:!0},Delete:{params:{operate:"batchDelete"},method:a.info.method,cancellable:!0},Info:{params:{operate:"getInfo"},method:a.info.method,cancellable:!0},Start:{params:{operate:"batchStart"},method:a.info.method,cancellable:!0},Stop:{params:{operate:"batchStop"},method:a.info.method,cancellable:!0}}),a.info.api}angular.module("eolinker.resource").factory("GatewayResource",e),e.$inject=["$resource","serverUrl"]}(),function(){"use strict";function e(e,t){var n={info:{api:[],method:"POST"}};return n.info.api.Guest=e(t+"guest/:operate",{},{Check:{params:{operate:"checkLogin"},method:n.info.method,cancellable:!0},Login:{params:{operate:"login"},method:n.info.method,cancellable:!0}}),n.info.api.User=e(t+"user/:mark/:operate",{},{Info:{params:{operate:"getInfo"},method:n.info.method,cancellable:!0},LoginOut:{params:{operate:"logout"},method:n.info.method,cancellable:!0},ChangePassword:{params:{mark:"password",operate:"edit"},method:n.info.method,cancellable:!0}}),n.info.api}angular.module("eolinker.resource").factory("CommonResource",e),e.$inject=["$resource","serverUrl"]}(),function(){"use strict";angular.module("eolinker.filter").filter("HtmlFilter",function(){return function(e){var t={htmlDecode:function(e){var t=document.createElement("div");t.innerHTML=e;var n=t.innerText||t.textContent;return t=null,n},htmlDecodeByRegExp:function(e){var t="";return 0==e.length?"":(t=e.replace(/</g,"<"),t=t.replace(/>/g,">"),t=t.replace(/&/g,"&"),t=t.replace(/ /g," "),t=t.replace(/"/g,'\\"'),t=t.replace(//g,""),t=t.replace(/(\\\\ufeff)/g,""))}};return t.htmlDecodeByRegExp(e)}})}(),function(){"use strict";angular.module("eolinker.filter").filter("findAttr",[function(e,t,n){return function(e,t,n){function a(e,t){n--;var i=e.getAttribute(t);return i?i:n?a(e.parentNode,t):void 0}return n=n||4,a(e,t)}}])}(),function(){"use strict";angular.module("eolinker.filter").filter("uuidFilter",[function(){var e={fun:{uuid:null}};return e.fun.uuid=function(){for(var e={array:[],hexSingal:"0123456789abcdef"},t=0;t<36;t++)e.array[t]=e.hexSingal.substr(Math.floor(16*Math.random()),1);return e.array[14]="4",e.array[19]=e.hexSingal.substr(3&e.array[19]|8,1),e.array[8]=e.array[13]=e.array[18]=e.array[23]="-",e.array.join("")},function(){return e.fun.uuid()}}]).filter("currentTimeFilter",[function(){return function(e,t){var n={};return t=t||{},n.getTime=function(){var n={info:{date:e?new Date(e):new Date,time:{year:null,month:null,day:null,hour:null,minute:null,second:null},string:null}};return n.info.time.year=n.info.date.getFullYear(),n.info.time.month=n.info.date.getMonth()+1,n.info.time.day=n.info.date.getDate(),n.info.time.hour=n.info.date.getHours(),n.info.time.minute=n.info.date.getMinutes(),n.info.time.second=n.info.date.getSeconds(),n.info.string=n.info.time.year+"-",n.info.time.month<10&&(n.info.string+="0"),n.info.string+=n.info.time.month+"-",n.info.time.day<10&&(n.info.string+="0"),n.info.string+=n.info.time.day+" ","day"==t.min?n.info.string:(n.info.time.hour<10&&(n.info.string+="0"),n.info.string+=n.info.time.hour+":",n.info.time.minute<10&&(n.info.string+="0"),n.info.string+=n.info.time.minute+":",n.info.time.second<10&&(n.info.string+="0"),n.info.string+=n.info.time.second,n.info.string)},n.getTime()}}]).filter("additionTimeFilter",[function(e,t){return function(e,t){var n={nowTime:null,afterTime:null};if(e)return n.nowTime=new Date(e[0]+"-"+e[1]+"-"+e[2]),t<12?n.nowTime.setDate(n.nowTime.getDate()+30*t):n.nowTime.setDate(n.nowTime.getDate()+t/12*365),n.afterTime=n.nowTime.getFullYear()+"年"+(n.nowTime.getMonth()+1)+"月"+n.nowTime.getDate()+"日",n.afterTime}}]).filter("durationTimeFilter",[function(e,t){return function(e,t){e=new Date(e),t=new Date(t);var n=t.getTime()-e.getTime(),a=Math.floor(n/864e5),i=n%864e5,o=Math.floor(i/36e5),r=i%36e5,s=Math.floor(r/6e4),c="";return c=s+"分"+c,c=o+"小时"+c,a>0&&(c=a+"天"+c),c}}])}(),function(){"use strict";angular.module("eolinker.constant",[])}(),function(){"use strict";angular.module("eolinker.constant").constant("APP_REQUIRES",{SCRIPTS:{},MODULES:[{name:"CLIPBOARD",files:["vendor/clipboard/dist/clipboard.min.js"]},{name:"ZEPTO",files:["vendor/zepto/zepto.min.js"]},{name:"ACE_EDITOR_AUTOCOMPLETE",files:["libs/ace-builds/src/ext-language_tools.js"]},{name:"ACE_EDITOR",files:["libs/ace-builds/src/ace.js"]},{name:"DATEPICKER",files:["libs/datepicker/lib/position.js","libs/datepicker/lib/dateparser.js","libs/datepicker/lib/datepicker.js","libs/datepicker/index.js"]}]})}(),function(){"use strict";angular.module("eolinker.constant").constant("AUTH_EVENTS",{LOGIN_SUCCESS:"auth-login-success",LOGIN_FAILED:"auth-login-failed",LOGOUT_SUCCESS:"auth-logout-success",SESSION_TIMEOUT:"auth-session-timeout",UNAUTHENTICATED:"auth-not-authenticated",UNAUTHORIZED:"auth-not-authorized",SYSTEM_ERROR:"something-wrong-system"}).constant("USER_ROLES",{USER:"guest"}).constant("PATH_INFO",{HOSTNAME:"nj.goku.com:1204",HOST:window.location.origin+"/",INHERIT_HOST:window.location.origin+window.location.pathname,MOCK:{DEFAULT:"http://result.goku.com/",HIGH:"http://mock.goku.com/"}})}(),function(){"use strict";angular.module("eolinker.constant").constant("RESPONSE_TEXT",{FAILURE:"请稍候再试或提交工单反馈"}).constant("ERROR_WARNING",{COMMON:"请稍候再试"}).constant("FILTER_WARNING_CODE_ARR_COMMON_CONST",["210000","230011","230000"]).constant("ERR_CODE_ARR_COMMON_CONST",{230005:"当前已存在相同地址的节点",260002:"当前已存在相同的负载名称",510009:"添加失败,人数已满!",280013:"操作失败,存在运行中的节点",340000:"当前无可下载的报表",120000:"旧密码错误",210001:"插件优先级非法",210002:"插件名称非法",210003:"插件优先级已经存在",210004:"插件名称已经存在",210005:"插件名称不存在",210009:"插件类型非法",190005:"当前请求方式下,该URL已存在!"}).constant("CODE",{COMMON:{HAD_WARNING:"xxxxxx",SUCCESS:"000000",UNLOGIN:"100001",SERVER_ERROR:"100000",UNAUTH:"100002"}})}(),function(){"use strict";angular.module("eolinker.directive").directive("uploadFileDirective",[function(){return{restrict:"AE",template:'',scope:{fileType:"@",inputId:"@",uploadFileDirective:"&"}}}])}(),function(e,t){"use strict";function n(e){if(!("clientX"in e||"clientY"in e)){var t=e.touches||e.originalEvent.touches;t&&t.length&&(e.clientX=t[0].clientX,e.clientY=t[0].clientY),e.preventDefault()}}function a(e){if(e=e[0],e.previousElementSibling)return t.element(e.previousElementSibling);for(var n=e.previousSibling;null!=n&&1!=n.nodeType;)n=n.previousSibling;return t.element(n)}function i(e,t){var n=a(e);n.length>0?n.after(t):e.parent().prepend(t)}function o(e,n){if(e instanceof t.element&&(e=e[0]),null!==s)return e[s](n)}t.module("eolinker.directive").directive("svRoot",[function(){function e(e,t,n){return n?e.x-t.x<0:e.y-t.y<0}function t(e){return r[e]}function n(e){delete r[e]}var a,r=Object.create(null);return{restrict:"A",controller:["$scope","$attrs","$interpolate","$parse",function(s,c,l,u){var p=l(c.svRoot)(s)||s.$id;r[p]||(r[p]=[]);var d,m,f,h,g,v,b=!1,$=u(c.svOnSort);c.svOnStart=c.$$element[0].attributes["sv-on-start"],c.svOnStart=c.svOnStart&&c.svOnStart.value,c.svOnStop=c.$$element[0].attributes["sv-on-stop"],c.svOnStop=c.svOnStop&&c.svOnStop.value;var y=u(c.svOnStart),x=u(c.svOnStop),j=u(c.fun)(s);if(this.sortingInProgress=function(){return a},c.svGrid){if(b="true"===c.svGrid||"false"!==c.svGrid&&null,null===b)throw"Invalid value of sv-grid attribute"}else s.$watchCollection(function(){return t(p)},function(e){b=!1;var t=e.filter(function(e){return!e.container}).map(function(e){return{part:e.getPart().id,y:e.element[0].getBoundingClientRect().top}}),n=Object.create(null);t.forEach(function(e){n[e.part]?n[e.part].push(e.y):n[e.part]=[e.y]}),Object.keys(n).forEach(function(e){n[e].sort(),n[e].forEach(function(t,a){a0&&t===n[e][a+1]&&(b=!0)})})});this.$moveUpdate=function(n,r,c,l,u,$,x){var j=c[0].getBoundingClientRect();"element"===n.tolerance&&(r={x:~~(j.left+j.width/2),y:~~(j.top+j.height/2)}),a=!0,d=[],m||(u?(m=u.clone(),m.removeClass("ng-hide")):(m=l.clone(),m.addClass("sv-visibility-hidden"),m.addClass("sv-placeholder"),m.css({height:c[0].height+"px",width:c[0].width+"px"})),l.after(m),l.addClass("ng-hide"),g=l,f=n,h=c,y(s,{$helper:{element:h},$part:$.model($.scope),$index:x,$item:$.model($.scope)[x]}),s.$root&&s.$root.$$phase||s.$apply()),h[0].reposition({x:r.x+document.body.scrollLeft-r.offset.x*j.width,y:r.y+document.body.scrollTop-r.offset.y*j.height}),t(p).forEach(function(t,a){if(null==n.containment||o(t.element,n.containment)||o(t.element,n.containment+" *")){var i=t.element[0].getBoundingClientRect(),s={x:~~(i.left+i.width/2),y:~~(i.top+i.height/2)};t.container||!t.element[0].scrollHeight&&!t.element[0].scrollWidth||d.push({element:t.element,q:(s.x-r.x)*(s.x-r.x)+(s.y-r.y)*(s.y-r.y),view:t.getPart(),targetIndex:t.getIndex(),after:e(s,r,b)}),t.container&&!t.element[0].querySelector("[sv-element]:not(.sv-placeholder):not(.sv-source)")&&d.push({element:t.element,q:(s.x-r.x)*(s.x-r.x)+(s.y-r.y)*(s.y-r.y),view:t.getPart(),targetIndex:0,container:!0})}});var w=m[0].getBoundingClientRect(),I={x:~~(w.left+w.width/2),y:~~(w.top+w.height/2)};d.push({q:(I.x-r.x)*(I.x-r.x)+(I.y-r.y)*(I.y-r.y),element:m,placeholder:!0}),d.sort(function(e,t){return e.q-t.q}),d.forEach(function(e,t){0!==t||e.placeholder||e.container?0===t&&e.container?(v=e,e.element.append(m)):e.element.removeClass("sv-candidate"):(v=e,e.element.addClass("sv-candidate"),e.after?e.element.after(m):i(e.element,m))})},this.$drop=function(e,t,n){function i(){if(a=!1,m.remove(),h.remove(),g.removeClass("ng-hide"),d=void 0,m=void 0,n=void 0,h=void 0,g=void 0,x(s,{$part:e.model(e.scope),$index:t,$item:e.model(e.scope)[t]}),v){v.element.removeClass("sv-candidate");var i=e.model(e.scope).splice(t,1),o=v.targetIndex;v.view===e&&v.targetIndex>t&&o--,v.after&&o++,v.view.model(v.view.scope).splice(o,0,i[0]),v.view===e&&t===o||$(s,{$partTo:v.view.model(v.view.scope),$partFrom:e.model(e.scope),$item:i[0],$indexTo:o,$indexFrom:t}),c.fun&&j({$index:t,$targetIndex:o})}v=void 0,s.$root&&s.$root.$$phase||s.$apply()}if(m)if(n.revert){var o=m[0].getBoundingClientRect(),r=h[0].getBoundingClientRect(),l=Math.sqrt(Math.pow(r.top-o.top,2)+Math.pow(r.left-o.left,2)),u=+n.revert*l/200;u=Math.min(u,+n.revert),["-webkit-","-moz-","-ms-","-o-",""].forEach(function(e){"undefined"!=typeof h[0].style[e+"transition"]&&(h[0].style[e+"transition"]="all "+u+"ms ease")}),setTimeout(i,u)}else i()},this.addToSortableElements=function(e){t(p).push(e)},this.removeFromSortableElements=function(e){var a=t(p),i=a.indexOf(e);i>-1&&(a.splice(i,1),0===a.length&&n(p))}}]}}]).directive("svPart",["$parse",function(e){return{restrict:"A",require:"^svRoot",controller:["$scope",function(e){e.$svCtrl=this,this.getPart=function(){return e.part},this.$drop=function(t,n){e.$sortableRoot.$drop(e.part,t,n)}}],scope:!0,link:function(t,n,a,i){if(!a.svPart)throw new Error("no model provided");var o=e(a.svPart);if(!o.assign)throw new Error("model not assignable");t.part={id:t.$id,element:n,model:o,scope:t},t.$sortableRoot=i;var r={element:n,getPart:t.$svCtrl.getPart,container:!0};i.addToSortableElements(r),t.$on("$destroy",function(){i.removeFromSortableElements(r)})}}}]).directive("svElement",["$parse",function(e){return{restrict:"A",require:["^svPart","^svRoot"],controller:["$scope",function(e){e.$svCtrl=this}],link:function(a,i,o,r){function s(s){function l(e){n(e),m||(i.parent().prepend(g),m=!0),r[1].$moveUpdate(u,{x:e.clientX,y:e.clientY,offset:$},g,i,d,r[0].getPart(),a.$index)}if(n(s),!r[1].sortingInProgress()&&(0==s.button||"mousedown"!==s.type)){m=!1;var u=e(o.svElement)(a);if(u=t.extend({},{tolerance:"pointer",revert:200,containment:"html"},u),u.containment)var h=c.call(i,u.containment)[0].getBoundingClientRect();var g,v=i,b=i[0].getBoundingClientRect();p||(p=r[0].helper),d||(d=r[0].placeholder),p?(g=p.clone(),g.removeClass("ng-hide"),g.css({left:b.left+document.body.scrollLeft+"px",top:b.top+document.body.scrollTop+"px"}),v.addClass("sv-visibility-hidden")):(g=v.clone(),g.addClass("sv-helper").css({left:b.left+document.body.scrollLeft+"px",top:b.top+document.body.scrollTop+"px",width:b.width+"px"})),g[0].reposition=function(e){var t=e.x,n=e.y,a=g[0].getBoundingClientRect(),i=document.body;h&&(nh.top+i.scrollTop+h.height&&(n=h.top+i.scrollTop+h.height-a.height),th.left+i.scrollLeft+h.width&&(t=h.left+i.scrollLeft+h.width-a.width)),this.style.left=t-i.scrollLeft+"px",this.style.top=n-i.scrollTop+"px"};var $={x:(s.clientX-b.left)/b.width,y:(s.clientY-b.top)/b.height};f.addClass("sv-sorting-in-progress"),f.on("mousemove touchmove",l).on("mouseup touchend touchcancel",function y(e){f.off("mousemove touchmove",l),f.off("mouseup touchend touchcancel",y),f.removeClass("sv-sorting-in-progress"),m&&r[0].$drop(a.$index,u),i.removeClass("sv-visibility-hidden")})}}var l={element:i,getPart:r[0].getPart,getIndex:function(){return a.$index}};r[1].addToSortableElements(l),a.$on("$destroy",function(){r[1].removeFromSortableElements(l)});var u=i;u.on("mousedown touchstart",s),a.$watch("$svCtrl.handle",function(e){e&&(u.off("mousedown touchstart",s),u=e,u.on("mousedown touchstart",s))});var p;a.$watch("$svCtrl.helper",function(e){e&&(p=e)});var d;a.$watch("$svCtrl.placeholder",function(e){e&&(d=e)});var m,f=(t.element(document.body),t.element(document.documentElement))}}}]).directive("svHandle",function(){return{require:"?^svElement",link:function(e,t,n,a){a&&(a.handle=t.add(a.handle))}}}),t.element(document.head).append([""].join(""));var r=document.documentElement,s=r.matches?"matches":r.matchesSelector?"matchesSelector":r.webkitMatches?"webkitMatches":r.webkitMatchesSelector?"webkitMatchesSelector":r.msMatches?"msMatches":r.msMatchesSelector?"msMatchesSelector":r.mozMatches?"mozMatches":r.mozMatchesSelector?"mozMatchesSelector":null;if(null==s)throw"This browser doesn't support the HTMLElement.matches method";var c=t.element.prototype.closest||function(e){for(var n=this[0].parentNode;n!==document.documentElement&&!n[s](e);)n=n.parentNode;return n[s](e)?t.element(n):t.element()};"function"!=typeof t.element.prototype.add&&(t.element.prototype.add=function(e){var n,a=t.element();for(e=t.element(e),n=0;n

    {{interaction.request.text}}

    ',scope:{interaction:"<",dumpDirective:"&"},link:function(t,n,a,i){t.data={info:{elem:document.getElementById("dump-directive_js")},fun:{dump:null}};var o={info:{broadcast:null},fun:{init:null,$DumpDirective_Click:null,$Destory:null}};t.data.fun.dump=function(){t.$broadcast("$Init_LoadingCommonComponent",{arg:{"switch":t.interaction.request["switch"]}})},o.fun.$DumpDirective_Click=function(n,a){t.data.info.elem.href=e.HOST+"export/"+a.response.fileName,t.data.info.elem.click()},o.fun.$Destory=function(){o.info.broadcast()},o.fun.init=function(){t.interaction=t.interaction||{request:{}},o.info.broadcast=t.$on("$DumpDirective_Click_"+(t.interaction.request.broadcast||t.interaction.request["switch"]||""),o.fun.$DumpDirective_Click),t.$on("$destroy",o.fun.$Destory)}()}}}])}(),function(){"use strict";angular.module("eolinker.directive").directive("buttonSetDisableDirective",[function(){return{restrict:"AE",scope:{buttonSetDisableDirective:"&"},link:function(e,t,n,a){var i={fun:{init:null,btnFun:null}};i.fun.btnFun=function(n){n.stopPropagation();var a={promise:e.buttonSetDisableDirective()};t.prop("disabled",!0),a.promise?a.promise["finally"](function(){t.prop("disabled",!1)}):(t.prop("disabled",!1),e.$root&&e.$root.$$phase||e.$apply())},i.fun.init=function(){t.bind(n.buttonFunction||"click",i.fun.btnFun)}()}}}])}(),function(){return angular.module("eolinker").constant("serverUrl","../").constant("nodeServerUrl","../nodeHttpServer/").constant("isDebug",!1).constant("assetUrl","").constant("PRODUCT_TYPE","online").constant("COOKIE_CONFIG",{path:"/",domain:".eolinker.com"}).constant("WEBSOCKET_PORT",1204)}(),angular.module("eolinker").run(["$templateCache",function(e){e.put("app/modal/index.html",""),e.put("app/component/autoComplete/index.html",'
    • {{item}}
    '),e.put("app/component/listBlock/index.html",'
    '),e.put("app/component/menuDefault/index.html",'
    '),e.put("app/component/loadingPart/index.html",'
    • 正在载入
    '),e.put("app/component/menuRadio/index.html",'
    '),e.put("app/component/progressBar/index.html",'
    '),e.put("app/component/selectDefault/index.html",'

    {{$ctrl.data.text}} {{$ctrl.mainObject.setting.emptyText||\'请选择...\'}}

    暂无任何搜索项

    {{item[$ctrl.input.key]}}

    暂无任何选项

    '),e.put("app/directive/tip/index.html",'
    '),e.put("app/ui/content/index.html",'
    '),e.put("app/component/common/sidebar/index.html",'
    • {{item.name}}{{$ctrl.data.autoSetShrink}}
    •   GOKU GATEWAY CE
    • {{item.name}}

      {{item.name}}

      {{childItem.name}}

    '),e.put("app/component/common/tip/index.html",""), -e.put("app/component/product/overview/index.html",'

    {{$ctrl.mainObject.setting.title}}

    • {{item.key}}:

    {{item.title}}

    {{$ctrl.otherObject[item.quotePoint][item.quoteVariable]}}

    {{item.key}}
    '),e.put("app/directive/common/datepicker/index.html",'
    开始:{{request.startTime?(request.startTime | currentTimeFilter:{min:\'day\'}):\'\' }} 结束:{{request.endTime?(request.endTime | currentTimeFilter:{min:\'day\'}):\'\' }}
    '),e.put("app/modal/branch/gateway/index.html",''),e.put("app/modal/branch/common/index.html",''),e.put("app/ui/content/login/index.html",''),e.put("app/ui/navbar/nav0/index.html",'
    GOKU GATEWAY CE
    '),e.put("app/ui/navbar/nav1/index.html",''), -e.put("app/component/common/group/default/index.html",'
    • {{funItem.name}}

    {{$ctrl.mainObject.baseInfo.title||\'分组\'}}

    {{item[$ctrl.mainObject.baseInfo.name]}}
    {{item[$ctrl.mainObject.baseInfo.name]}} ({{item[$ctrl.mainObject.baseInfo.tips]}})
    • {{funItem.key}}
    '),e.put("app/component/common/group/old/index.html",'
    • {{$ctrl.mainObject.baseInfo.title||\'分组\'}}
      • {{item[$ctrl.mainObject.baseInfo.name]}}
        • {{item1[$ctrl.mainObject.baseInfo.name]}}
          • {{item2[$ctrl.mainObject.baseInfo.name]}}
    • {{$ctrl.mainObject.baseInfo.title||\'分组\'}}
      • {{item[$ctrl.mainObject.baseInfo.name]}}
      • {{item[$ctrl.mainObject.baseInfo.name]}}
        • {{funItem.key}}
    '),e.put("app/component/common/list/default/index.html",'
    '),e.put("app/component/common/select/multistage/index.html",'
    {{$first?"":" / "}}{{item[$ctrl.input.key]}} 请选择...

    返回上一级目录

    {{item[$ctrl.input.key]}}

    暂无搜索结果

    确定

    '),e.put("app/modal/lib/template/modal/backdrop.html",''),e.put("app/modal/lib/template/modal/window.html",''),e.put("app/ui/content/alert/setting/index.html",''),e.put("app/ui/content/balance/list/index.html",'
    '),e.put("app/ui/content/alert/list/index.html",'
    '),e.put("app/ui/content/balance/service/index.html",'
    '),e.put("app/ui/content/balance/operate/index.html",'

    负载名称:

    服务类型

    服务注册方式:

    服务名称:

    全局静态服务地址:

    各集群静态服务地址:

    '),e.put("app/ui/content/gpedit/inside/index.html",'
    '),e.put("app/ui/content/gpedit/common/index.html",'
    '),e.put("app/ui/content/gpedit/overview/index.html",'

    开放策略 {{$ctrl.ajaxResponse.openGpeditInfo.enableStatus?"启用":"停用"}}

    系统自带访问策略,使用开放策略时不需要传递策略 ID 参数

    普通策略

    自定义访问策略,需要传递策略 ID 参数

    '),e.put("app/ui/content/cluster/node/index.html",'
    '),e.put("app/ui/content/cluster/_default/index.html",'
    '),e.put("app/ui/content/monitor/global/index.html",'
    网关基本信息

    V{{$ctrl.ajaxResponse.monitorInfo.baseInfo.version}}

    版本

    {{$ctrl.ajaxResponse.monitorInfo.baseInfo.clusterCount||0}}

    集群

    {{$ctrl.ajaxResponse.monitorInfo.baseInfo.nodeCount}}

    节点

    {{$ctrl.ajaxResponse.monitorInfo.baseInfo.redisCount}}

    REDIS

    API信息

    {{$ctrl.ajaxResponse.monitorInfo.baseInfo.projectCount}}

    项目

    {{$ctrl.ajaxResponse.monitorInfo.baseInfo.apiCount}}

    API

    {{$ctrl.ajaxResponse.monitorInfo.baseInfo.strategyCount}}

    访问策略

    访问统计

    {{$ctrl.ajaxResponse.monitorInfo.gatewayRequestInfo.gatewayRequestCount}}

    请求到达总数

    {{$ctrl.ajaxResponse.monitorInfo.gatewayRequestInfo.gatewayErrorCount||0}}

    请求异常数量

    {{$ctrl.ajaxResponse.monitorInfo.gatewayRequestInfo.gatewaySuccessRate}}

    请求成功率

    转发统计

    {{$ctrl.ajaxResponse.monitorInfo.proxyRequestInfo.proxyRequestCount}}

    请求转发总数

    {{$ctrl.ajaxResponse.monitorInfo.proxyRequestInfo.proxyErrorCount||0}}

    转发异常数量

    {{$ctrl.ajaxResponse.monitorInfo.proxyRequestInfo.proxySuccessRate}}

    转发成功率

    帮助

    访问官方网站获取最新产品资讯以及使用文档

    [官方网站] https://www.eolinker.com

    [帮助中心] https://help.eolinker.com

    WWW.EOLINKER.COM GOKU API GATEWAY V{{$ctrl.ajaxResponse.monitorInfo.baseInfo.version}}
    '),e.put("app/ui/content/plugin/operate/index.html",'

    名称:

       *插件名需与插件代码文件名一致,保存后不可更改

    插件类型:

       *保存后不可更改

    插件优先级(0-3000):

    描述信息:

    错误处理方式:

    插件配置文件信息:

    '), -e.put("app/ui/content/plugin/_default/index.html",'
    '),e.put("app/ui/content/project/api/index.html",'
    '),e.put("app/ui/content/setting/basic/index.html",''),e.put("app/ui/content/project/_default/index.html",'
    '),e.put("app/ui/content/setting/log/index.html",''),e.put("app/ui/content/gpedit/inside/navbar/index.html",''),e.put("app/ui/content/gpedit/common/default/index.html",'
    '),e.put("app/ui/content/cluster/node/_default/index.html",'
    '),e.put("app/ui/content/project/api/_default/index.html",'
    '),e.put("app/ui/content/project/api/operate/index.html",'

    分组:

    名称:

    请求方式:

    请求路径:

    转发地址/负载后端(Target/Upstream):

    转发路径:

    转发时去除匹配网关请求路径,实际转发路径:{{$ctrl.ajaxResponse.apiInfo.targetURL}}{{$ctrl.ajaxResponse.apiInfo.stripPrefix?\'\':($ctrl.ajaxResponse.apiInfo.requestURL|Filter_SlashSymbol)}}
    转发时去除路径中多余的"/",例如“//login”会被解析成“/login”

    转发方式:

    超时限制(ms):

    重试次数[非必填]:

    告警阀值(次)[非必填]:*单位时间内,请求失败到达该阀值进行告警,0代表不进行告警;单位时间在告警管理处设定

    '),e.put("app/ui/content/gpedit/inside/content/apiPlugin/index.html",'
    '),e.put("app/ui/content/gpedit/inside/content/auth/index.html",'
    API KEY
    BASIC AUTH
    JWT
    OAUTH2.0
    KeyHide Credential备注操作
    UsernamePasswordHide Credential备注操作
    ISSSecretRsa Public KeyAlgorithm备注操作
    Credential IDClient IDClient SecretRedirect URI备注操作
    '),e.put("app/ui/content/gpedit/inside/content/setting/index.html",''), -e.put("app/ui/content/gpedit/inside/content/api/_default/index.html",'

    '),e.put("app/ui/content/gpedit/inside/content/plugin/gpedit/index.html",'
    '),e.put("app/ui/content/gpedit/inside/content/api/operate/index.html",'
    '),e.put("app/ui/content/gpedit/inside/content/plugin/operate/index.html",'

    插件:

    配置信息:

    ')}]); \ No newline at end of file diff --git a/app/console/static/styles/app-6e5f7694bf.css b/app/console/static/styles/app-6e5f7694bf.css deleted file mode 100644 index 7675719d73010602c03f381adaa45fbf09767614..0000000000000000000000000000000000000000 --- a/app/console/static/styles/app-6e5f7694bf.css +++ /dev/null @@ -1,16 +0,0 @@ -@charset "UTF-8"; -/*! Editor.md v1.5.0 | editormd.min.css | Open source online markdown editor. | MIT License | By: Pandao | https://github.com/pandao/editor.md | 2015-06-09 */ -/*! prefixes.scss v0.1.0 | Author: Pandao | https://github.com/pandao/prefixes.scss | MIT license | Copyright (c) 2015 */ -.fa-ul,.markdown-body .task-list-item,li.L0,li.L1,li.L2,li.L3,li.L5,li.L6,li.L7,li.L8{list-style-type:none}.editormd-form br,.markdown-body hr:after{clear:both}.editormd{width:90%;height:640px;margin:0 auto 15px;text-align:left;overflow:hidden;position:relative;border:1px solid #ddd;font-family:"Meiryo UI","Microsoft YaHei","Malgun Gothic","Segoe UI","Trebuchet MS",Helvetica,Monaco,monospace,Tahoma,STXihei,"华文细黑",STHeiti,"Helvetica Neue","Droid Sans","wenquanyi micro hei",FreeSans,Arimo,Arial,SimSun,"宋体",Heiti,"黑体",sans-serif}.editormd *,.editormd:after,.editormd:before{-webkit-box-sizing:border-box;box-sizing:border-box}.editormd a{text-decoration:none}.editormd img{border:none;vertical-align:middle}.editormd .editormd-html-textarea,.editormd .editormd-markdown-textarea,.editormd>textarea{width:0;height:0;outline:0;resize:none}.editormd .editormd-html-textarea,.editormd .editormd-markdown-textarea{display:none}.editormd button,.editormd input[type=button],.editormd input[type=submit],.editormd input[type=text],.editormd select,.editormd textarea{-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;appearance:none}.editormd::-webkit-scrollbar{height:10px;width:7px;background:rgba(0,0,0,.1)}.editormd::-webkit-scrollbar:hover{background:rgba(0,0,0,.2)}.editormd::-webkit-scrollbar-thumb{background:rgba(0,0,0,.3);-webkit-border-radius:6px;border-radius:6px}.editormd::-webkit-scrollbar-thumb:hover{-webkit-box-shadow:inset 1px 1px 1px rgba(0,0,0,.25);-ms-box-shadow:inset 1px 1px 1px rgba(0,0,0,.25);-o-box-shadow:inset 1px 1px 1px rgba(0,0,0,.25);box-shadow:inset 1px 1px 1px rgba(0,0,0,.25);background-color:rgba(0,0,0,.4)}.editormd-user-unselect{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none}.editormd-toolbar{width:100%;min-height:37px;background:#fff;display:none;position:absolute;top:0;left:0;z-index:3;border-bottom:1px solid #ddd}.editormd-toolbar-container{padding:0 8px;min-height:35px;-o-user-select:none;user-select:none}.editormd-toolbar-container,.markdown-body .octicon{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}.editormd-menu,.markdown-body ol,.markdown-body td,.markdown-body th,.markdown-body ul{padding:0}.editormd-menu{margin:0;list-style:none}.editormd-menu>li{margin:0;padding:5px 1px;display:inline-block;position:relative}.editormd-menu>li.divider{display:inline-block;text-indent:-9999px;margin:0 5px;height:65%;border-right:1px solid #ddd}.editormd-menu>li>a{outline:0;color:#666;display:inline-block;min-width:24px;font-size:16px;text-decoration:none;text-align:center;-webkit-border-radius:2px;border-radius:2px;border:1px solid #fff;transition:all 300ms ease-out;-webkit-transition:all 300ms ease-out}.editormd-dropdown-menu>li>a:hover,.editormd-menu>li>a{-moz-transition:all 300ms ease-out}.editormd-menu>li>a.active,.editormd-menu>li>a:hover{border:1px solid #ddd;background:#eee}.editormd-menu>li>a>.fa{text-align:center;display:block;padding:5px}.editormd-menu>li>a>.editormd-bold{padding:5px 2px;display:inline-block;font-weight:700}.editormd-menu>li:hover .editormd-dropdown-menu{display:block}.editormd-menu>li+li>a{margin-left:3px}.editormd-dropdown-menu{display:none;background:#fff;border:1px solid #ddd;width:148px;list-style:none;position:absolute;top:33px;left:0;z-index:100;-webkit-box-shadow:1px 2px 6px rgba(0,0,0,.15);-ms-box-shadow:1px 2px 6px rgba(0,0,0,.15);-o-box-shadow:1px 2px 6px rgba(0,0,0,.15);box-shadow:1px 2px 6px rgba(0,0,0,.15)}.editormd-dropdown-menu:after,.editormd-dropdown-menu:before{width:0;height:0;display:block;content:"";position:absolute;left:8px;border:5px solid transparent}.editormd-dropdown-menu:before{top:-11px;border-bottom-color:#ccc}.editormd-dropdown-menu:after{border-bottom-color:#fff;top:-10px}.editormd-dropdown-menu>li>a{color:#666;display:block;text-decoration:none;padding:8px 10px}.editormd-dropdown-menu>li>a:hover{background:#f6f6f6;-webkit-transition:all 300ms ease-out;transition:all 300ms ease-out}.editormd-dropdown-menu>li+li{border-top:1px solid #ddd}.editormd-container{margin:0;width:100%;height:100%;overflow:hidden;padding:35px 0 0;position:relative;background:#fff;-webkit-box-sizing:border-box;box-sizing:border-box}.editormd-dialog{color:#666;position:fixed;z-index:99999;display:none;-webkit-border-radius:3px;border-radius:3px;-webkit-box-shadow:0 0 10px rgba(0,0,0,.3);-ms-box-shadow:0 0 10px rgba(0,0,0,.3);-o-box-shadow:0 0 10px rgba(0,0,0,.3);box-shadow:0 0 10px rgba(0,0,0,.3);background:#fff;font-size:14px}.editormd-dialog-container{position:relative;padding:20px;line-height:1.4}.editormd-dialog-container h1{font-size:24px;margin-bottom:10px}.editormd-dialog-container h1 .fa{color:#2c7eea;padding-right:5px}.editormd-dialog-container h1 small{padding-left:5px;font-weight:400;font-size:12px;color:#999}.editormd-dialog-container select{color:#999;padding:3px 8px;border:1px solid #ddd}.editormd-dialog-close{position:absolute;top:12px;right:15px;font-size:18px;color:#ccc;-webkit-transition:color 300ms ease-out;transition:color 300ms ease-out}.editormd .CodeMirror pre.CodeMirror-placeholder,.editormd-dialog-close:hover{color:#999}.editormd-dialog-header{padding:11px 20px;border-bottom:1px solid #eee;-webkit-transition:background 300ms ease-out;transition:background 300ms ease-out}.editormd-dialog-header:hover{background:#f6f6f6}.editormd-dialog-title{font-size:14px}.editormd-dialog-footer{padding:10px 0 0;text-align:right}.editormd-dialog-info{width:420px}.editormd-dialog-info h1{font-weight:400}.editormd-dialog-info .editormd-dialog-container{padding:20px 25px 25px}.editormd-dialog-info .editormd-dialog-close{top:10px;right:10px}.editormd-dialog-info .hover-link:hover,.editormd-dialog-info a:hover,.editormd-dialog-info p>a{color:#2196f3}.editormd-dialog-info .hover-link{color:#666}.editormd-dialog-info a .fa-external-link,.editormd-form iframe{display:none}.editormd-dialog-info a:hover .fa-external-link,.editormd-form .fa-btns,.editormd-tab-head li{display:inline-block}.editormd-container-mask{width:100%;height:100%;position:absolute;top:0;left:0}.editormd-dialog-mask{position:absolute}.editormd-dialog-mask,.editormd-mask{display:none;width:100%;height:100%;top:0;left:0}.editormd-dialog-mask-bg,.editormd-mask{background:#fff;opacity:.5;filter:alpha(opacity=50)}.editormd-mask{position:fixed;background:#000;opacity:.2;filter:alpha(opacity=20);z-index:99998}.editormd-container-mask{z-index:20;display:block;background-color:#fff}.editormd-code-block-dialog textarea,.editormd-preformatted-text-dialog textarea{width:100%;height:400px;margin-bottom:6px;overflow:auto;border:1px solid #eee;background:#fff;padding:15px;resize:none}.editormd-code-toolbar{color:#999;font-size:14px;margin:-5px 0 10px}.editormd-grid-table{width:99%;display:table;border:1px solid #ddd;border-collapse:collapse}.editormd-grid-table-row{width:100%;display:table-row}.editormd-grid-table-row a,.editormd-tab-head li a{color:#999;text-align:center;text-decoration:none;border:1px solid #ddd}.editormd-grid-table-row a{font-size:1.4em;width:5%;height:36px;display:table-cell;vertical-align:middle;-webkit-transition:background-color 300ms ease-out,color 100ms ease-in;transition:background-color 300ms ease-out,color 100ms ease-in}.editormd-grid-table-row a.selected{color:#666;background-color:#eee}.editormd-grid-table-row a:hover{color:#777;background-color:#f6f6f6}.editormd-tab-head{list-style:none;border-bottom:1px solid #ddd}.editormd-tab-head li a{display:block;padding:6px 12px 5px;margin-bottom:-1px;-webkit-border-top-left-radius:3px;-moz-border-top-left-radius:3px;border-top-left-radius:3px;-webkit-border-top-right-radius:3px;-moz-border-top-right-radius:3px;border-top-right-radius:3px;background:#f6f6f6;-webkit-transition:all 300ms ease-out;transition:all 300ms ease-out}.editormd-tab-head li a:hover{color:#666;background:#eee}.editormd-tab-head li.active a{color:#666;background:#fff;border-bottom-color:#fff}.editormd-tab-head li+li{margin-left:3px}.editormd-tab-box{padding:20px 0}.editormd-form{color:#666}.editormd-form label{float:left;display:block;width:75px;text-align:left;padding:7px 0 15px 5px;margin:0 0 2px;font-weight:400}.editormd-form input:focus{outline:0}.editormd-form input[type=text]{color:#999;padding:8px;border:1px solid #ddd}.editormd-form input[type=number]{color:#999;border:1px solid #ddd;width:40px;display:inline-block;padding:6px 8px}.editormd-form input[type=text]{display:inline-block;width:264px}.editormd-form .fa-btns a{color:#999;padding:7px 10px 0 0;display:inline-block;text-decoration:none;text-align:center}.editormd-form .fa-btns .fa{font-size:1.3em}.editormd-form .fa-btns label{float:none;display:inline-block;width:auto;text-align:left;padding:0 0 0 5px;cursor:pointer}.fa-fw,.fa-li{text-align:center}.editormd-dialog-container .editormd-btn,.editormd-dialog-container button,.editormd-dialog-container input[type=submit],.editormd-dialog-footer .editormd-btn,.editormd-dialog-footer button,.editormd-dialog-footer input[type=submit],.editormd-form .editormd-btn,.editormd-form button,.editormd-form input[type=submit]{color:#666;min-width:75px;cursor:pointer;background:#fff;padding:7px 10px;border:1px solid #ddd;-webkit-border-radius:3px;border-radius:3px;-webkit-transition:background 300ms ease-out;transition:background 300ms ease-out}.editormd-dialog-container .editormd-btn:hover,.editormd-dialog-container button:hover,.editormd-dialog-container input[type=submit]:hover,.editormd-dialog-footer .editormd-btn:hover,.editormd-dialog-footer button:hover,.editormd-dialog-footer input[type=submit]:hover,.editormd-file-input:hover input[type=submit],.editormd-form .editormd-btn:hover,.editormd-form button:hover,.editormd-form input[type=submit]:hover{background:#eee}.editormd-dialog-container .editormd-btn+.editormd-btn,.editormd-dialog-footer .editormd-btn+.editormd-btn,.editormd-form .editormd-btn+.editormd-btn{margin-left:8px}.editormd-file-input{width:75px;height:32px;margin-left:8px;position:relative;display:inline-block}.editormd-file-input input[type=file]{width:75px;height:32px;opacity:0;cursor:pointer;background:#000;display:inline-block;position:absolute;top:0;right:0}.editormd-file-input input[type=file]::-webkit-file-upload-button{visibility:hidden}.editormd .CodeMirror,.editormd-preview{width:50%;height:100%;vertical-align:top;-webkit-box-sizing:border-box;box-sizing:border-box;margin:0;line-height:1.6}.editormd .CodeMirror{z-index:3;float:left;border-right:1px solid #ddd;font-size:14px;font-family:"YaHei Consolas Hybrid",Consolas,"微软雅黑","Meiryo UI","Malgun Gothic","Segoe UI","Trebuchet MS",Helvetica,Monaco,courier,monospace;margin-top:35px;display:inline-block}.editormd-preview{position:absolute;top:35px;right:0;overflow:auto;display:none;background:#fff}.fa,.fa-stack{display:inline-block}.editormd .CodeMirror pre{font-size:14px;padding:0 12px}.editormd .CodeMirror-linenumbers{padding:0 5px}.editormd .CodeMirror-focused .CodeMirror-selected,.editormd .CodeMirror-selected{background:#70b7ff}.editormd .CodeMirror,.editormd .CodeMirror-scroll,.editormd .editormd-preview{-webkit-overflow-scrolling:touch}.editormd .styled-background{background-color:#ff7}.editormd .CodeMirror-focused .cm-matchhighlight{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAIAAAACCAYAAABytg0kAAAAFklEQVQI12NgYGBgkKzc8x9CMDAwAAAmhwSbidEoSQAAAABJRU5ErkJggg==);background-position:bottom;background-repeat:repeat-x}.editormd .CodeMirror-empty.CodeMirror-focused{outline:0}.editormd .cm-trailingspace{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAACCAYAAAB/qH1jAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH3QUXCToH00Y1UgAAACFJREFUCNdjPMDBUc/AwNDAAAFMTAwMDA0OP34wQgX/AQBYgwYEx4f9lQAAAABJRU5ErkJggg==);background-position:bottom left;background-repeat:repeat-x}.editormd .cm-tab{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAMCAYAAAAkuj5RAAAAAXNSR0IArs4c6QAAAGFJREFUSMft1LsRQFAQheHPowAKoACx3IgEKtaEHujDjORSgWTH/ZOdnZOcM/sgk/kFFWY0qV8foQwS4MKBCS3qR6ixBJvElOobYAtivseIE120FaowJPN75GMu8j/LfMwNjh4HUpwg4LUAAAAASUVORK5CYII=) right no-repeat} -/*! prefixes.scss v0.1.0 | Author: Pandao | https://github.com/pandao/prefixes.scss | MIT license | Copyright (c) 2015 */ -/*! - * Font Awesome 4.3.0 by @davegandy - http://fontawesome.io - @fontawesome - * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) - */ -.fa-lg{font-size:1.33333333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571em}.fa-ul{padding-left:0;margin-left:2.14286em}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14285714em;width:2.14285714em;top:.14286em}.fa-li.fa-lg{left:-1.85714em}.fa-border{padding:.2em .25em .15em;border:.08em solid #eee;-webkit-border-radius:.1em;border-radius:.1em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left{margin-right:.3em}.fa.pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}.fa-pulse{-webkit-animation:fa-spin 1s infinite steps(8);animation:fa-spin 1s infinite steps(8)}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0);transform:rotate(0)}to{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0);transform:rotate(0)}to{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}:root .fa-flip-horizontal,:root .fa-flip-vertical,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-rotate-90{-webkit-filter:none;filter:none}.fa-stack{position:relative;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff} -/*! prefixes.scss v0.1.0 | Author: Pandao | https://github.com/pandao/prefixes.scss | MIT license | Copyright (c) 2015 */ -@font-face{font-family:editormd-logo;src:url(../fonts/editormd-logo.eot?-5y8q6h);src:url(.../fonts/editormd-logo.eot?#iefix-5y8q6h) format("embedded-opentype"),url(../fonts/editormd-logo.woff?-5y8q6h) format("woff"),url(../fonts/editormd-logo.ttf?-5y8q6h) format("truetype"),url(../fonts/editormd-logo.svg?-5y8q6h#icomoon) format("svg");font-weight:400;font-style:normal}.editormd-logo{font-size:inherit}.editormd-logo,.editormd-logo-1x,.editormd-logo-2x,.editormd-logo-3x,.editormd-logo-4x,.editormd-logo-5x,.editormd-logo-6x,.editormd-logo-7x,.editormd-logo-8x{font-family:editormd-logo;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;display:inline-block;text-rendering:auto;vertical-align:inherit;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.markdown-body hr:after,.markdown-body hr:before{content:"";display:table}.editormd-logo-1x:before,.editormd-logo-2x:before,.editormd-logo-3x:before,.editormd-logo-4x:before,.editormd-logo-5x:before,.editormd-logo-6x:before,.editormd-logo-7x:before,.editormd-logo-8x:before,.editormd-logo:before{content:"󡦇"}.editormd-logo-1x{font-size:1em}.editormd-logo-lg{font-size:1.2em}.editormd-logo-2x{font-size:2em}.editormd-logo-3x{font-size:3em}.editormd-logo-4x{font-size:4em}.editormd-logo-5x{font-size:5em}.editormd-logo-6x{font-size:6em}.editormd-logo-7x{font-size:7em}.editormd-logo-8x{font-size:8em}.editormd-logo-color{color:#2196f3} -/*! github-markdown-css | The MIT License (MIT) | Copyright (c) Sindre Sorhus (sindresorhus.com) | https://github.com/sindresorhus/github-markdown-css */ -@font-face{font-family:octicons-anchor;src:url(data:font/woff;charset=utf-8;base64,d09GRgABAAAAAAYcAA0AAAAACjQAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAABMAAAABwAAAAca8vGTk9TLzIAAAFMAAAARAAAAFZG1VHVY21hcAAAAZAAAAA+AAABQgAP9AdjdnQgAAAB0AAAAAQAAAAEACICiGdhc3AAAAHUAAAACAAAAAj//wADZ2x5ZgAAAdwAAADRAAABEKyikaNoZWFkAAACsAAAAC0AAAA2AtXoA2hoZWEAAALgAAAAHAAAACQHngNFaG10eAAAAvwAAAAQAAAAEAwAACJsb2NhAAADDAAAAAoAAAAKALIAVG1heHAAAAMYAAAAHwAAACABEAB2bmFtZQAAAzgAAALBAAAFu3I9x/Nwb3N0AAAF/AAAAB0AAAAvaoFvbwAAAAEAAAAAzBdyYwAAAADP2IQvAAAAAM/bz7t4nGNgZGFgnMDAysDB1Ml0hoGBoR9CM75mMGLkYGBgYmBlZsAKAtJcUxgcPsR8iGF2+O/AEMPsznAYKMwIkgMA5REMOXicY2BgYGaAYBkGRgYQsAHyGMF8FgYFIM0ChED+h5j//yEk/3KoSgZGNgYYk4GRCUgwMaACRoZhDwCs7QgGAAAAIgKIAAAAAf//AAJ4nHWMMQrCQBBF/0zWrCCIKUQsTDCL2EXMohYGSSmorScInsRGL2DOYJe0Ntp7BK+gJ1BxF1stZvjz/v8DRghQzEc4kIgKwiAppcA9LtzKLSkdNhKFY3HF4lK69ExKslx7Xa+vPRVS43G98vG1DnkDMIBUgFN0MDXflU8tbaZOUkXUH0+U27RoRpOIyCKjbMCVejwypzJJG4jIwb43rfl6wbwanocrJm9XFYfskuVC5K/TPyczNU7b84CXcbxks1Un6H6tLH9vf2LRnn8Ax7A5WQAAAHicY2BkYGAA4teL1+yI57f5ysDNwgAC529f0kOmWRiYVgEpDgYmEA8AUzEKsQAAAHicY2BkYGB2+O/AEMPCAAJAkpEBFbAAADgKAe0EAAAiAAAAAAQAAAAEAAAAAAAAKgAqACoAiAAAeJxjYGRgYGBhsGFgYgABEMkFhAwM/xn0QAIAD6YBhwB4nI1Ty07cMBS9QwKlQapQW3VXySvEqDCZGbGaHULiIQ1FKgjWMxknMfLEke2A+IJu+wntrt/QbVf9gG75jK577Lg8K1qQPCfnnnt8fX1NRC/pmjrk/zprC+8D7tBy9DHgBXoWfQ44Av8t4Bj4Z8CLtBL9CniJluPXASf0Lm4CXqFX8Q84dOLnMB17N4c7tBo1AS/Qi+hTwBH4rwHHwN8DXqQ30XXAS7QaLwSc0Gn8NuAVWou/gFmnjLrEaEh9GmDdDGgL3B4JsrRPDU2hTOiMSuJUIdKQQayiAth69r6akSSFqIJuA19TrzCIaY8sIoxyrNIrL//pw7A2iMygkX5vDj+G+kuoLdX4GlGK/8Lnlz6/h9MpmoO9rafrz7ILXEHHaAx95s9lsI7AHNMBWEZHULnfAXwG9/ZqdzLI08iuwRloXE8kfhXYAvE23+23DU3t626rbs8/8adv+9DWknsHp3E17oCf+Z48rvEQNZ78paYM38qfk3v/u3l3u3GXN2Dmvmvpf1Srwk3pB/VSsp512bA/GG5i2WJ7wu430yQ5K3nFGiOqgtmSB5pJVSizwaacmUZzZhXLlZTq8qGGFY2YcSkqbth6aW1tRmlaCFs2016m5qn36SbJrqosG4uMV4aP2PHBmB3tjtmgN2izkGQyLWprekbIntJFing32a5rKWCN/SdSoga45EJykyQ7asZvHQ8PTm6cslIpwyeyjbVltNikc2HTR7YKh9LBl9DADC0U/jLcBZDKrMhUBfQBvXRzLtFtjU9eNHKin0x5InTqb8lNpfKv1s1xHzTXRqgKzek/mb7nB8RZTCDhGEX3kK/8Q75AmUM/eLkfA+0Hi908Kx4eNsMgudg5GLdRD7a84npi+YxNr5i5KIbW5izXas7cHXIMAau1OueZhfj+cOcP3P8MNIWLyYOBuxL6DRylJ4cAAAB4nGNgYoAALjDJyIAOWMCiTIxMLDmZedkABtIBygAAAA==) format("woff")}.markdown-body{-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%;color:#333;overflow:hidden;font-family:"Microsoft YaHei",Helvetica,"Meiryo UI","Malgun Gothic","Segoe UI","Trebuchet MS",Monaco,monospace,Tahoma,STXihei,"华文细黑",STHeiti,"Helvetica Neue","Droid Sans","wenquanyi micro hei",FreeSans,Arimo,Arial,SimSun,"宋体",Heiti,"黑体",sans-serif;font-size:16px;line-height:1.6;word-wrap:break-word}.markdown-body strong,.markdown-body table th{font-weight:700}.markdown-body h1{margin:.67em 0}.markdown-body img{border:0;max-width:100%}.markdown-body hr{-webkit-box-sizing:content-box;box-sizing:content-box;height:0;margin:15px 0;overflow:hidden;background:0 0;border:0;border-bottom:1px solid #ddd}.markdown-body input{color:inherit;margin:0;line-height:normal;font:13px/1.4 Helvetica,arial,freesans,clean,sans-serif,"Segoe UI Emoji","Segoe UI Symbol"}.markdown-body html input[disabled]{cursor:default}.markdown-body input[type=checkbox]{padding:0}.markdown-body *,.markdown-body img,.markdown-body input[type=checkbox]{-webkit-box-sizing:border-box;box-sizing:border-box}.markdown-body a{background:0 0;color:#4183c4;text-decoration:none}.markdown-body a:active,.markdown-body a:hover{outline:0;text-decoration:underline}.markdown-body h1,.markdown-body h2{padding-bottom:.3em;border-bottom:1px solid #eee}.markdown-body blockquote{margin:0}.markdown-body ol ol,.markdown-body ul ol{list-style-type:lower-roman}.markdown-body ol ol ol,.markdown-body ol ul ol,.markdown-body ul ol ol,.markdown-body ul ul ol{list-style-type:lower-alpha}.markdown-body dd{margin-left:0}.markdown-body code{font-family:Consolas,"Liberation Mono",Menlo,Courier,monospace;padding:.2em 0;margin:0;font-size:85%;background-color:rgba(0,0,0,.04);-webkit-border-radius:3px;border-radius:3px}.markdown-body pre{font:12px Consolas,"Liberation Mono",Menlo,Courier,monospace;word-wrap:normal}.markdown-body .octicon{font:16px octicons-anchor;line-height:1;display:inline-block;text-decoration:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.markdown-body .octicon-link:before{content:""}.markdown-body>:first-child{margin-top:0!important}.markdown-body>:last-child{margin-bottom:0!important}.markdown-body .anchor{position:absolute;top:0;left:0;display:block;padding-right:6px;padding-left:30px;margin-left:-30px}.markdown-body .anchor:focus{outline:0}.markdown-body h1,.markdown-body h2,.markdown-body h3,.markdown-body h4,.markdown-body h5,.markdown-body h6{position:relative;margin-top:1em;margin-bottom:16px;font-weight:700}.markdown-body h4,.markdown-body h5,.markdown-body h6{line-height:1.4}.markdown-body h1 .octicon-link,.markdown-body h2 .octicon-link,.markdown-body h3 .octicon-link,.markdown-body h4 .octicon-link,.markdown-body h5 .octicon-link,.markdown-body h6 .octicon-link{display:none;color:#000;vertical-align:middle}.markdown-body h1:hover .anchor,.markdown-body h2:hover .anchor,.markdown-body h3:hover .anchor,.markdown-body h4:hover .anchor,.markdown-body h5:hover .anchor,.markdown-body h6:hover .anchor{padding-left:8px;margin-left:-30px;text-decoration:none}.markdown-body h1:hover .anchor .octicon-link,.markdown-body h2:hover .anchor .octicon-link,.markdown-body h3:hover .anchor .octicon-link,.markdown-body h4:hover .anchor .octicon-link,.markdown-body h5:hover .anchor .octicon-link,.markdown-body h6:hover .anchor .octicon-link{display:inline-block}.markdown-body h1{font-size:2.25em;line-height:1.2}.markdown-body h1 .anchor,.markdown-body h2 .anchor{line-height:1}.markdown-body h2{font-size:1.75em;line-height:1.225}.markdown-body h3{font-size:1.5em;line-height:1.43}.markdown-body h3 .anchor,.markdown-body h4 .anchor{line-height:1.2}.markdown-body h4{font-size:1.25em}.markdown-body h5 .anchor,.markdown-body h6 .anchor{line-height:1.1}.markdown-body h5{font-size:1em}.markdown-body h6{font-size:1em;color:#777}.markdown-body blockquote,.markdown-body dl,.markdown-body ol,.markdown-body p,.markdown-body pre,.markdown-body table,.markdown-body ul{margin-top:0;margin-bottom:16px}.markdown-body ol,.markdown-body ul{padding-left:2em}.markdown-body ol ol,.markdown-body ol ul,.markdown-body ul ol,.markdown-body ul ul{margin-top:0;margin-bottom:0}.markdown-body li>p{margin-top:16px}.markdown-body dl{padding:0}.markdown-body dl dt{padding:0;margin-top:16px;font-size:1em;font-style:italic;font-weight:700}.markdown-body dl dd{padding:0 16px;margin-bottom:16px}.markdown-body blockquote{padding:0 15px;color:#777;border-left:4px solid #ddd}.markdown-body blockquote>:first-child{margin-top:0}.markdown-body blockquote>:last-child{margin-bottom:0}.markdown-body table{border-collapse:collapse;border-spacing:0;display:block;width:100%;overflow:auto;word-break:keep-all}.markdown-body table td,.markdown-body table th{padding:6px 13px;border:1px solid #ddd}.markdown-body table tr{background-color:#fff;border-top:1px solid #ccc}.markdown-body table tr:nth-child(2n){background-color:#f8f8f8}.markdown-body code:after,.markdown-body code:before{letter-spacing:-.2em;content:" "}.markdown-body pre>code{padding:0;margin:0;font-size:100%;word-break:normal;white-space:pre;background:0 0;border:0}.markdown-body .highlight{margin-bottom:16px}.markdown-body .highlight pre,.markdown-body pre{padding:16px;overflow:auto;font-size:85%;background-color:#f7f7f7;-webkit-border-radius:3px;border-radius:3px}.markdown-body .highlight pre{margin-bottom:0;word-break:normal}.markdown-body pre code{display:inline;max-width:initial;padding:0;margin:0;overflow:initial;line-height:inherit;word-wrap:normal;background-color:transparent;border:0}.markdown-body pre code:after,.markdown-body pre code:before{content:normal}.markdown-body .pl-c{color:#969896}.markdown-body .pl-c1,.markdown-body .pl-mdh,.markdown-body .pl-mm,.markdown-body .pl-mp,.markdown-body .pl-mr,.markdown-body .pl-s1 .pl-v,.markdown-body .pl-s3,.markdown-body .pl-sc,.markdown-body .pl-sv{color:#0086b3}.markdown-body .pl-e,.markdown-body .pl-en{color:#795da3}.markdown-body .pl-s1 .pl-s2,.markdown-body .pl-smi,.markdown-body .pl-smp,.markdown-body .pl-stj,.markdown-body .pl-vo,.markdown-body .pl-vpf{color:#333}.markdown-body .pl-ent{color:#63a35c}.markdown-body .pl-k,.markdown-body .pl-s,.markdown-body .pl-st{color:#a71d5d}.markdown-body .pl-pds,.markdown-body .pl-s1,.markdown-body .pl-s1 .pl-pse .pl-s2,.markdown-body .pl-sr,.markdown-body .pl-sr .pl-sra,.markdown-body .pl-sr .pl-sre,.markdown-body .pl-src{color:#df5000}.markdown-body .pl-mo,.markdown-body .pl-v{color:#1d3e81}.markdown-body .pl-id{color:#b52a1d}.markdown-body .pl-ii{background-color:#b52a1d;color:#f8f8f8}.markdown-body .pl-sr .pl-cce{color:#63a35c;font-weight:700}.markdown-body .pl-ml{color:#693a17}.markdown-body .pl-mh,.markdown-body .pl-mh .pl-en,.markdown-body .pl-ms{color:#1d3e81;font-weight:700}.markdown-body .pl-mq{color:teal}.markdown-body .pl-mi{color:#333;font-style:italic}.markdown-body .pl-mb{color:#333;font-weight:700}.markdown-body .pl-md,.markdown-body .pl-mdhf{background-color:#ffecec;color:#bd2c00}.markdown-body .pl-mdht,.markdown-body .pl-mi1{background-color:#eaffea;color:#55a532}.markdown-body .pl-mdr{color:#795da3;font-weight:700}.markdown-body kbd{display:inline-block;padding:3px 5px;font:11px Consolas,"Liberation Mono",Menlo,Courier,monospace;line-height:10px;color:#555;vertical-align:middle;background-color:#fcfcfc;border:1px solid #ccc;border-bottom-color:#bbb;-webkit-border-radius:3px;border-radius:3px;-webkit-box-shadow:inset 0 -1px 0 #bbb;box-shadow:inset 0 -1px 0 #bbb}.markdown-body .task-list-item+.task-list-item{margin-top:3px}.markdown-body .task-list-item input{float:left;margin:.3em 0 .25em -1.6em;vertical-align:middle}.markdown-body:checked+.radio-label{z-index:1;position:relative;border-color:#4183c4}.editormd-html-preview,.editormd-preview-container{text-align:left;font-size:14px;line-height:1.6;padding:20px;overflow:auto;width:100%;background-color:#fff}.editormd-html-preview blockquote,.editormd-preview-container blockquote{color:#666;border-left:4px solid #ddd;padding-left:20px;margin-left:0;font-size:14px;font-style:italic}.editormd-html-preview p code,.editormd-preview-container p code{margin-left:5px;margin-right:4px}.editormd-html-preview abbr,.editormd-preview-container abbr{background:#ffd}.editormd-html-preview hr,.editormd-preview-container hr{height:1px;border:none;border-top:1px solid #ddd;background:0 0}.editormd-html-preview code,.editormd-preview-container code{border:1px solid #ddd;background:#f6f6f6;padding:3px;-webkit-border-radius:3px;border-radius:3px;font-size:14px}.editormd-html-preview pre,.editormd-preview-container pre{border:1px solid #ddd;background:#f6f6f6;padding:10px;-webkit-border-radius:3px;border-radius:3px}.editormd-html-preview pre code,.editormd-preview-container pre code{padding:0}.editormd-html-preview code,.editormd-html-preview kbd,.editormd-html-preview pre,.editormd-preview-container code,.editormd-preview-container kbd,.editormd-preview-container pre{font-family:"YaHei Consolas Hybrid",Consolas,"Meiryo UI","Malgun Gothic","Segoe UI","Trebuchet MS",Helvetica,monospace,monospace}.editormd-html-preview table thead tr,.editormd-preview-container table thead tr{background-color:#f8f8f8}.editormd-html-preview p.editormd-tex,.editormd-preview-container p.editormd-tex{text-align:center}.editormd-html-preview span.editormd-tex,.editormd-preview-container span.editormd-tex{margin:0 5px}.editormd-html-preview .emoji,.editormd-preview-container .emoji{width:24px;height:24px}.editormd-html-preview .katex,.editormd-preview-container .katex{font-size:1.4em}.editormd-html-preview .flowchart,.editormd-html-preview .sequence-diagram,.editormd-preview-container .flowchart,.editormd-preview-container .sequence-diagram{margin:0 auto;text-align:center}.editormd-html-preview .flowchart svg,.editormd-html-preview .sequence-diagram svg,.editormd-preview-container .flowchart svg,.editormd-preview-container .sequence-diagram svg{margin:0 auto}.editormd-html-preview .flowchart text,.editormd-html-preview .sequence-diagram text,.editormd-preview-container .flowchart text,.editormd-preview-container .sequence-diagram text{font-size:15px!important;font-family:"YaHei Consolas Hybrid",Consolas,"Microsoft YaHei","Malgun Gothic","Segoe UI",Helvetica,Arial!important} -/*! Pretty printing styles. Used with prettify.js. */ -.pln{color:#000}@media screen{.str{color:#080}.kwd{color:#008}.com{color:#800}.typ{color:#606}.lit{color:#066}.clo,.opn,.pun{color:#660}.tag{color:#008}.atn{color:#606}.atv{color:#080}.dec,.var{color:#606}.fun{color:red}}@media print,projection{.kwd,.tag,.typ{font-weight:700}.str{color:#060}.kwd{color:#006}.com{color:#600;font-style:italic}.typ{color:#404}.lit{color:#044}.clo,.opn,.pun{color:#440}.tag{color:#006}.atn{color:#404}.atv{color:#060}}pre.prettyprint{padding:2px;border:1px solid #888}ol.linenums{margin-top:0;margin-bottom:0}li.L1,li.L3,li.L5,li.L7,li.L9{background:#eee}.editormd-html-preview pre.prettyprint,.editormd-preview-container pre.prettyprint{padding:10px;border:1px solid #ddd;white-space:pre-wrap;word-wrap:break-word}.editormd-html-preview ol.linenums,.editormd-preview-container ol.linenums{color:#999;padding-left:2.5em}.editormd-html-preview ol.linenums li,.editormd-preview-container ol.linenums li,.wangEditor-container .wangEditor-txt ol li{list-style-type:decimal}.editormd-html-preview ol.linenums li code,.editormd-preview-container ol.linenums li code{border:none;background:0 0;padding:0}.editormd-html-preview .editormd-toc-menu,.editormd-preview-container .editormd-toc-menu{margin:8px 0 12px;display:inline-block}.editormd-html-preview .editormd-toc-menu>.markdown-toc,.editormd-preview-container .editormd-toc-menu>.markdown-toc{position:relative;-webkit-border-radius:4px;border-radius:4px;border:1px solid #ddd;display:inline-block;font-size:1em}.editormd-html-preview .editormd-toc-menu>.markdown-toc>ul,.editormd-preview-container .editormd-toc-menu>.markdown-toc>ul{width:160%;min-width:180px;position:absolute;left:-1px;top:-2px;z-index:100;padding:0 10px 10px;display:none;background:#fff;border:1px solid #ddd;-webkit-border-radius:4px;border-radius:4px;-webkit-box-shadow:0 3px 5px rgba(0,0,0,.2);-ms-box-shadow:0 3px 5px rgba(0,0,0,.2);-o-box-shadow:0 3px 5px rgba(0,0,0,.2);box-shadow:0 3px 5px rgba(0,0,0,.2)}.editormd-html-preview .editormd-toc-menu>.markdown-toc>ul>li ul,.editormd-preview-container .editormd-toc-menu>.markdown-toc>ul>li ul{width:100%;min-width:180px;border:1px solid #ddd;display:none;background:#fff;-webkit-border-radius:4px;border-radius:4px}.editormd-html-preview .editormd-toc-menu .toc-menu-btn:hover,.editormd-html-preview .editormd-toc-menu>.markdown-toc>ul>li a:hover,.editormd-preview-container .editormd-toc-menu .toc-menu-btn:hover,.editormd-preview-container .editormd-toc-menu>.markdown-toc>ul>li a:hover{background-color:#f6f6f6}.editormd-html-preview .editormd-toc-menu>.markdown-toc>ul>li a,.editormd-preview-container .editormd-toc-menu>.markdown-toc>ul>li a{color:#666;padding:6px 10px;display:block;-webkit-transition:background-color 500ms ease-out;transition:background-color 500ms ease-out}.editormd-html-preview .editormd-toc-menu>.markdown-toc li,.editormd-preview-container .editormd-toc-menu>.markdown-toc li{position:relative}.editormd-html-preview .editormd-toc-menu>.markdown-toc li>ul,.editormd-preview-container .editormd-toc-menu>.markdown-toc li>ul{position:absolute;top:32px;left:10%;display:none;-webkit-box-shadow:0 3px 5px rgba(0,0,0,.2);-ms-box-shadow:0 3px 5px rgba(0,0,0,.2);-o-box-shadow:0 3px 5px rgba(0,0,0,.2);box-shadow:0 3px 5px rgba(0,0,0,.2)}.editormd-html-preview .editormd-toc-menu>.markdown-toc li>ul:after{pointer-events:pointer-events;position:absolute;left:15px;display:block;content:"";width:0;height:0;border:6px solid transparent;border-width:0 6px 6px;z-index:3}.editormd-html-preview .editormd-toc-menu>.markdown-toc li>ul:before{top:-6px}.editormd-html-preview .editormd-toc-menu>.markdown-toc li>ul:before,.editormd-preview-container .editormd-toc-menu>.markdown-toc li>ul:after,.editormd-preview-container .editormd-toc-menu>.markdown-toc li>ul:before{pointer-events:pointer-events;position:absolute;left:15px;display:block;content:"";width:0;height:0;border:6px solid transparent;border-width:0 6px 6px;z-index:3}.editormd-preview-container .editormd-toc-menu>.markdown-toc li>ul:before{top:-6px}.editormd-html-preview .editormd-toc-menu>.markdown-toc li>ul:before,.editormd-preview-container .editormd-toc-menu>.markdown-toc li>ul:before{border-bottom-color:#ccc}.editormd-html-preview .editormd-toc-menu>.markdown-toc li>ul:after,.editormd-preview-container .editormd-toc-menu>.markdown-toc li>ul:after{border-bottom-color:#fff;top:-5px}.editormd-html-preview .editormd-toc-menu ul,.editormd-preview-container .editormd-toc-menu ul{list-style:none}.editormd-html-preview .editormd-toc-menu a,.editormd-preview-container .editormd-toc-menu a{text-decoration:none}.editormd-html-preview .editormd-toc-menu h1,.editormd-preview-container .editormd-toc-menu h1{font-size:16px;padding:5px 0 10px 10px;line-height:1;border-bottom:1px solid #eee}.editormd-html-preview .editormd-toc-menu h1 .fa,.editormd-preview-container .editormd-toc-menu h1 .fa{padding-left:10px}.editormd-html-preview .editormd-toc-menu .toc-menu-btn,.editormd-preview-container .editormd-toc-menu .toc-menu-btn{color:#666;min-width:180px;padding:5px 10px;-webkit-border-radius:4px;border-radius:4px;display:inline-block;-webkit-transition:background-color 500ms ease-out;transition:background-color 500ms ease-out}.editormd-html-preview textarea,.editormd-onlyread .editormd-toolbar{display:none}.editormd-html-preview .editormd-toc-menu .toc-menu-btn .fa,.editormd-preview-container .editormd-toc-menu .toc-menu-btn .fa{float:right;padding:3px 0 0 10px;font-size:1.3em}.markdown-body .editormd-toc-menu ul{padding-left:0}.markdown-body .highlight pre,.markdown-body pre{line-height:1.6}hr.editormd-page-break{border:1px dotted #ccc;font-size:0;height:2px}@media only print{hr.editormd-page-break{background:0 0;border:none;height:0}}.editormd-html-preview hr.editormd-page-break{background:0 0;border:none;height:0}.editormd-preview-close-btn{color:#fff;padding:4px 6px;font-size:18px;-webkit-border-radius:500px;border-radius:500px;display:none;background-color:#ccc;position:absolute;top:25px;right:35px;z-index:19;-webkit-transition:background-color 300ms ease-out;transition:background-color 300ms ease-out}.editormd-preview-close-btn:hover{background-color:#999}.editormd-preview-active{width:100%;padding:40px}.editormd-preview-theme-dark{color:#777;background:#2c2827}.editormd-preview-theme-dark .editormd-preview-container{color:#888;background-color:#2c2827}.editormd-preview-theme-dark .editormd-preview-container pre.prettyprint,.editormd-preview-theme-dark .editormd-preview-container table,fieldset{border:none}.editormd-preview-theme-dark .editormd-preview-container blockquote{color:#555;padding:.5em;background:#222;border-color:#333}.editormd-preview-theme-dark .editormd-preview-container abbr{color:#fff;padding:1px 3px;-webkit-border-radius:3px;border-radius:3px;background:#f90}.editormd-preview-theme-dark .editormd-preview-container code{color:#fff;border:none;padding:1px 3px;-webkit-border-radius:3px;border-radius:3px;background:#5a9600}.editormd-preview-theme-dark .editormd-preview-container .fa-emoji{color:#b4bf42}.editormd-preview-theme-dark .editormd-preview-container .katex{color:#fec93f}.editormd-preview-theme-dark .editormd-toc-menu>.markdown-toc{background:#fff;border:none}.editormd-preview-theme-dark .editormd-toc-menu>.markdown-toc h1{border-color:#ddd}.editormd-preview-theme-dark .markdown-body h1,.editormd-preview-theme-dark .markdown-body h2,.editormd-preview-theme-dark .markdown-body hr{border-color:#222}.editormd-preview-theme-dark pre{color:#999;background-color:#111;background-color:rgba(0,0,0,.4)}.editormd-preview-theme-dark pre .pln{color:#999}.editormd-preview-theme-dark li.L1,.editormd-preview-theme-dark li.L3,.editormd-preview-theme-dark li.L5,.editormd-preview-theme-dark li.L7,.editormd-preview-theme-dark li.L9{background:0 0}.editormd-preview-theme-dark [class*=editormd-logo]{color:#2196f3}.editormd-preview-theme-dark .sequence-diagram text{fill:#fff}.editormd-preview-theme-dark .sequence-diagram path,.editormd-preview-theme-dark .sequence-diagram rect{color:#fff;fill:#64d1cb;stroke:#64d1cb}.editormd-preview-theme-dark .flowchart path,.editormd-preview-theme-dark .flowchart rect{stroke:#a6c6ff}.editormd-preview-theme-dark .flowchart rect{fill:#a6c6ff}.editormd-preview-theme-dark .flowchart text{fill:#5879b4}@media screen{.editormd-preview-theme-dark .str{color:#080}.editormd-preview-theme-dark .kwd{color:#f90}.editormd-preview-theme-dark .com{color:#444}.editormd-preview-theme-dark .typ{color:#606}.editormd-preview-theme-dark .lit{color:#066}.editormd-preview-theme-dark .clo,.editormd-preview-theme-dark .opn,.editormd-preview-theme-dark .pun{color:#660}.editormd-preview-theme-dark .tag{color:#f90}.editormd-preview-theme-dark .atn{color:#6c95f5}.editormd-preview-theme-dark .atv{color:#080}.editormd-preview-theme-dark .dec,.editormd-preview-theme-dark .var{color:#008ba7}.editormd-preview-theme-dark .fun{color:red}}.editormd-onlyread .CodeMirror{margin-top:0}.editormd-onlyread .editormd-preview{top:0}.editormd-fullscreen{position:fixed;top:0;left:0;border:none;margin:0 auto}.editormd-theme-dark{border-color:#1a1a17}.editormd-theme-dark .editormd-toolbar{background:#1a1a17;border-color:#1a1a17}.editormd-theme-dark .editormd-menu>li>a{color:#777;border-color:#1a1a17}.editormd-theme-dark .editormd-menu>li>a.active,.editormd-theme-dark .editormd-menu>li>a:hover{border-color:#333;background:#333}.editormd-theme-dark .editormd-menu>li.divider{border-right:1px solid #111}.editormd-theme-dark .CodeMirror{border-right:1px solid rgba(0,0,0,.1)}@font-face{font-family:"iconfont";src:url(../assets/font/iconfont.eot?t=50);src:url(../assets/font/iconfont.eot?t=50#iefix) format("embedded-opentype"),url(../assets/font/iconfont.woff?t=500) format("woff"),url(../assets/font/iconfont.ttf?t=500) format("truetype"),url(../assets/font/iconfont.svg?t=500#iconfont) format("svg")}@font-face{font-family:'icomoon';src:url(../assets/font/icomoon.eot?-qdfu1s);src:url(../assets/font/icomoon.eot?#iefix-qdfu1s) format("embedded-opentype"),url(../assets/font/icomoon.ttf?-qdfu1s) format("truetype"),url(../assets/font/icomoon.woff?-qdfu1s) format("woff"),url(../assets/font/icomoon.svg?-qdfu1s#icomoon) format("svg");font-weight:400;font-style:normal}.iconfont{font-family:"iconfont"!important;font-style:normal;-webkit-font-smoothing:antialiased;-webkit-text-stroke-width:.2px;-moz-osx-font-smoothing:grayscale}.icon-circle:before{content:"\e635"}.icon-htmal5icon24:before{content:"\e63c"}.icon-chrome:before{content:"\e665"}.icon-coding:before{content:"\e62e"}.icon-edge:before{content:"\e7de"}.icon-shoucang:before{content:"\e667"}.icon-github:before{content:"\e6a5"}.icon-zhifubao:before{content:"\e666"}.icon-weixinzhifu-copy:before{content:"\e615"}.icon-shiyanshiguanli:before{content:"\e65e"}.icon-gitoschina:before{content:"\e607"}.icon-qq:before{content:"\e69e"}.icon-source-branch:before{content:"\e8b6"}.icon-firefox:before{content:"\e6ab"}.icon-eoLinkerAMS:before{content:"\e624"}.icon-bijibendiannao:before{content:"\eabb"}.icon-bianjibiaoge:before{content:"\eabc"}.icon-chizi:before{content:"\eabd"}.icon-biaoqian:before{content:"\eabe"}.icon-dayinji:before{content:"\eabf"}.icon-baocun:before{content:"\eac0"}.icon-bianji:before{content:"\eac1"}.icon-daochu:before{content:"\eac2"}.icon-daoru:before{content:"\eac3"}.icon-diannao:before{content:"\eac4"}.icon-fuzhi:before{content:"\eac5"}.icon-ding:before{content:"\eac6"}.icon-jianqie:before{content:"\eac7"}.icon-jianpan:before{content:"\eac8"}.icon-jiesuo:before{content:"\eac9"}.icon-shaixuan:before{content:"\eaca"}.icon-shouji:before{content:"\eacb"}.icon-suoding:before{content:"\eacc"}.icon-tupian:before{content:"\eacd"}.icon-tianjiafujian:before{content:"\eace"}.icon-wenben:before{content:"\eacf"}.icon-bangongbao:before{content:"\ead0"}.icon-shu:before{content:"\ead1"}.icon-wenjianjia:before{content:"\ead2"}.icon-touyingyi:before{content:"\ead3"}.icon-cangku_cangchuguanli:before{content:"\ead4"}.icon-cangku_kucun:before{content:"\ead5"}.icon-cangku_kucunxiangqing:before{content:"\ead6"}.icon-cangku:before{content:"\ead7"}.icon-cangku_zhongzhuanchuzhan:before{content:"\ec8c"}.icon-cangku_cangneishicao:before{content:"\ec8e"}.icon-fuwuguanli:before{content:"\ec8a"}.icon-fuwuliu:before{content:"\ead8"}.icon-cangku_daozhan:before{content:"\ec8f"}.icon-cangku_kucunshuaxin:before{content:"\ec90"}.icon-guanliyuanrenzheng:before{content:"\ead9"}.icon-jinzhidengji:before{content:"\eada"}.icon-dianbiao:before{content:"\eadb"}.icon-guanliyuansousuo:before{content:"\eadc"}.icon-kuaisugongzuoliu:before{content:"\eadd"}.icon-saomafuquan:before{content:"\eade"}.icon-fuwuxunhuanguanli:before{content:"\eadf"}.icon-shebeidadian:before{content:"\ec92"}.icon-shuibiao:before{content:"\eae0"}.icon-shebeisousuo:before{content:"\eae1"}.icon-shebeijiance:before{content:"\eae2"}.icon-shuiweichuanganqi:before{content:"\eae3"}.icon-xunjianweixiu:before{content:"\ec93"}.icon-yemianliu:before{content:"\eae4"}.icon-yichangshangbao:before{content:"\ec8d"}.icon-zhongkong:before{content:"\ec94"}.icon-weixiufuwu:before{content:"\eae5"}.icon-wenshiduchuanganqi:before{content:"\eae6"}.icon-duoxuanxuanzhong:before{content:"\eae7"}.icon-bofang:before{content:"\eae8"}.icon-duibi:before{content:"\eae9"}.icon-huojianjiasu:before{content:"\eaea"}.icon-gouwudai:before{content:"\eaeb"}.icon-gouwu:before{content:"\eaec"}.icon-danxuanweixuanzhong:before{content:"\eaed"}.icon-danxuanxuanzhong:before{content:"\eaee"}.icon-jiqiren:before{content:"\eaef"}.icon-jinxianshibutong:before{content:"\eaf0"}.icon-kefu:before{content:"\eaf1"}.icon-leida-faxianx:before{content:"\eaf2"}.icon-lianjie:before{content:"\eaf3"}.icon-duoxuanweixuanzhong:before{content:"\eaf4"}.icon-liangliangduibi:before{content:"\eaf5"}.icon-quxiaolianjie:before{content:"\eaf6"}.icon-liwu:before{content:"\eaf7"}.icon-shanguangdeng:before{content:"\eaf8"}.icon-shengyin:before{content:"\eaf9"}.icon-renlianshibie:before{content:"\eafa"}.icon-tingzhi:before{content:"\eafb"}.icon-tanhao:before{content:"\eafc"}.icon-wenhao:before{content:"\eafd"}.icon-xinxi:before{content:"\eafe"}.icon-shounadaohang:before{content:"\eaff"}.icon-yinliang:before{content:"\eb00"}.icon-yingwen:before{content:"\eb01"}.icon-yuyin:before{content:"\ec99"}.icon-yuechi:before{content:"\eb02"}.icon-yunsuancaozuo:before{content:"\eb03"}.icon-zhediedaohang:before{content:"\eb04"}.icon-zhinanzhen:before{content:"\eb05"}.icon-zhongwen:before{content:"\eb06"}.icon-zanting:before{content:"\eb07"}.icon-zhuti_yifu:before{content:"\eb08"}.icon-zhendong:before{content:"\eb09"}.icon-zhuti_tiaosepan:before{content:"\eb0a"}.icon-mofabang:before{content:"\eb0b"}.icon-zuanshi:before{content:"\eb0c"}.icon-anniu_guanbi:before{content:"\eb0d"}.icon-anquan:before{content:"\eb0e"}.icon-bangzhu:before{content:"\eb0f"}.icon-biaoge:before{content:"\eb10"}.icon-anniu_xuanzhong:before{content:"\eb11"}.icon-chexiao:before{content:"\eb12"}.icon-shouye:before{content:"\eb13"}.icon-duihao:before{content:"\eb14"}.icon-erweima:before{content:"\eb15"}.icon-caidan:before{content:"\eb16"}.icon-guanbi:before{content:"\eb17"}.icon-guanyu:before{content:"\eb18"}.icon-cengji:before{content:"\eb19"}.icon-dengyu:before{content:"\eb1a"}.icon-daohang:before{content:"\eb1b"}.icon-jiahao:before{content:"\eb1c"}.icon-jiazai_dan:before{content:"\eb1d"}.icon-jiazai_shuaxin:before{content:"\eb1e"}.icon-jieshaoxinxi:before{content:"\eb1f"}.icon-jianhao:before{content:"\eb20"}.icon-jinyong:before{content:"\eb21"}.icon-kaiguan:before{content:"\eb22"}.icon-jinggao:before{content:"\eb23"}.icon-lishijilu:before{content:"\eb24"}.icon-linggan:before{content:"\eb25"}.icon-liebiao:before{content:"\eb26"}.icon-pinleijianshao:before{content:"\eb27"}.icon-pinleishanchu:before{content:"\eb28"}.icon-pinleizengjia:before{content:"\eb29"}.icon-kongzhizhongxin:before{content:"\eb2a"}.icon-shanchu:before{content:"\eb2b"}.icon-saoyisao:before{content:"\eb2c"}.icon-shipin:before{content:"\eb2d"}.icon-quanjushezhi:before{content:"\eb2e"}.icon-shitujuzhen:before{content:"\eb2f"}.icon-shuliang-zengjia:before{content:"\eb30"}.icon-shuaxin:before{content:"\eb31"}.icon-shuliangjianshao:before{content:"\eb32"}.icon-sousuo:before{content:"\eb33"}.icon-tuwen:before{content:"\eb34"}.icon-xinzengdaohangliebiao:before{content:"\ec98"}.icon-Androidgengduo:before{content:"\eb35"}.icon-iosgengduo:before{content:"\eb36"}.icon-xiangji:before{content:"\eb37"}.icon-yemiankuangjia:before{content:"\eb38"}.icon-yingyongAPP:before{content:"\eb39"}.icon-anniu_jiantoushouqi:before{content:"\eb3a"}.icon-anniu-jiantouxiangyou:before{content:"\eb3b"}.icon-jiantou_liebiaoxiangyou:before{content:"\eb3c"}.icon-anniu_jiantouzhankai:before{content:"\eb3d"}.icon-jiantou_liebiaoshouqi:before{content:"\eb3e"}.icon-jiantou_liebiaoxiangzuo:before{content:"\eb3f"}.icon-jiantou_liebiaozhankai:before{content:"\eb40"}.icon-jiantou_shangyiye:before{content:"\eb41"}.icon-anniu_jiantouxiangzuo:before{content:"\eb42"}.icon-jiantou_xiayiye:before{content:"\eb43"}.icon-jiantou_xiangyou:before{content:"\eb44"}.icon-jiantou_xiangzuo:before{content:"\eb45"}.icon-jiantou_xiangyouliangci:before{content:"\eb46"}.icon-jiantou_shangxiaqiehuan:before{content:"\eb47"}.icon-jiantou_yemian_xiangshang:before{content:"\eb48"}.icon-jiantou_xiangxia:before{content:"\eb49"}.icon-jiantou_xiangshang:before{content:"\eb4a"}.icon-jiantou_xiangzuoliangci:before{content:"\eb4b"}.icon-jiantou_yemian_xiangxia:before{content:"\eb4c"}.icon-jiantou_yemian_xiangyou:before{content:"\eb4d"}.icon-jiantou_youshang:before{content:"\eb4e"}.icon-jiantou_zuoshang:before{content:"\eb4f"}.icon-jiantou_youxia:before{content:"\eb50"}.icon-jiantou_zuoyouqiehuan:before{content:"\eb51"}.icon-jiaobiaoweixuanzhong:before{content:"\eb52"}.icon-jiaobiaoxuanzhong:before{content:"\eb53"}.icon-quxiaoquanping:before{content:"\eb54"}.icon-sanjiaoxing_shang:before{content:"\eb55"}.icon-quanping:before{content:"\eb56"}.icon-sanjiaoxing:before{content:"\eb57"}.icon-xiazai:before{content:"\eb58"}.icon-xuanzeqishouqi:before{content:"\eb59"}.icon-xiangzuo:before{content:"\eb5a"}.icon-xuanzeqixiayige:before{content:"\eb5b"}.icon-xuanzeqizhankai:before{content:"\eb5c"}.icon-zhiding:before{content:"\eb5d"}.icon-dunpaibaowei:before{content:"\eb5e"}.icon-dunpaibaoxianrenzheng:before{content:"\eb5f"}.icon-huobiliu:before{content:"\ec9b"}.icon-jisuanqi:before{content:"\eb60"}.icon-jiekuan:before{content:"\ec9c"}.icon-jinbi:before{content:"\eb61"}.icon-cunkuan:before{content:"\ec9e"}.icon-meiyuan:before{content:"\eb62"}.icon-qianbao:before{content:"\eb63"}.icon-yinhangqia:before{content:"\eb64"}.icon-zhangdan_xiangqing:before{content:"\eb65"}.icon-zhangdan_quxiao:before{content:"\eb66"}.icon-zhangdan_xinzeng:before{content:"\eb67"}.icon-jinrongguanli:before{content:"\eca1"}.icon-zhangdan-wancheng:before{content:"\eb68"}.icon-zijin_dongjie:before{content:"\eca2"}.icon-zijin:before{content:"\eca3"}.icon-biaoqing:before{content:"\eb69"}.icon-anniu-zan:before{content:"\eb6a"}.icon-biaoqing_xiao:before{content:"\eb6b"}.icon-chengchang:before{content:"\eb6c"}.icon-dianhua:before{content:"\eb6d"}.icon-duanxin:before{content:"\eb6e"}.icon-gerentouxiang:before{content:"\eb6f"}.icon-fenxiang:before{content:"\eb70"}.icon-qiandao:before{content:"\eca9"}.icon-qunzu:before{content:"\eb71"}.icon-biaoqing_beishang:before{content:"\eb72"}.icon-eo_shoucang:before{content:"\eb73"}.icon-tianjiahaoyou:before{content:"\eb74"}.icon-xiai:before{content:"\eb75"}.icon-zan:before{content:"\eb76"}.icon-daibanrenwu_quxiao:before{content:"\eb77"}.icon-daibanrenwu:before{content:"\eb78"}.icon-naozhong:before{content:"\eb79"}.icon-shijian:before{content:"\eb7a"}.icon-riqi:before{content:"\eb7b"}.icon-rili:before{content:"\ec9f"}.icon-shuzhuangtu:before{content:"\eb7c"}.icon-yun:before{content:"\eb7d"}.icon-bingtu:before{content:"\eb7e"}.icon-yunshangchuan:before{content:"\eb7f"}.icon-yunxiazai:before{content:"\eb80"}.icon-zhexiantu:before{content:"\eb81"}.icon-zhuzhuangtu:before{content:"\eb82"}.icon-baoguo_lanshou:before{content:"\eb83"}.icon-baoguo_dabao:before{content:"\eb84"}.icon-baoguo_hezi:before{content:"\eb85"}.icon-baoguo_quxiaoshouhuo:before{content:"\eb86"}.icon-baoguo_shouhuo:before{content:"\eb87"}.icon-didiandingwei:before{content:"\eb88"}.icon-ditu_diqiu:before{content:"\eb89"}.icon-baoguo_fahuo:before{content:"\eb8a"}.icon-ditu_dingwei:before{content:"\eb8b"}.icon-baoguo:before{content:"\eb8c"}.icon-gaojijibao:before{content:"\eb8d"}.icon-fenjianguocheng:before{content:"\eb8e"}.icon-guizi:before{content:"\eca5"}.icon-huoche:before{content:"\eb8f"}.icon-fuwu:before{content:"\eb90"}.icon-jiankong:before{content:"\eb91"}.icon-jibao:before{content:"\ecb8"}.icon-jianzhu:before{content:"\eca6"}.icon-jingliren:before{content:"\eb92"}.icon-huopinfenliu:before{content:"\eb93"}.icon-quxiaojibao:before{content:"\ecb9"}.icon-kuaidiyuan:before{content:"\eb94"}.icon-sandengfen:before{content:"\eca8"}.icon-shijuedingwei:before{content:"\eb95"}.icon-wuliudanao:before{content:"\ecaa"}.icon-yizhan:before{content:"\ecab"}.icon-sidengfen:before{content:"\ecac"}.icon-CPhezuo:before{content:"\ecad"}.icon-yibiaopan:before{content:"\eb96"}.icon-xiaoxi:before{content:"\eb97"}.icon-xinwen:before{content:"\eb98"}.icon-tongzhizhongxin:before{content:"\eb99"}.icon-youjian:before{content:"\ec88"}.icon-dengchu:before{content:"\ecaf"}.icon-yanjing_yincang:before{content:"\eb9a"}.icon-yanjing_xianshi:before{content:"\eb9b"}.icon-baocun_o:before{content:"\eb9c"}.icon-biaoqian_o:before{content:"\eb9d"}.icon-bianjibiaoge_o:before{content:"\eb9e"}.icon-dayinji_o:before{content:"\eb9f"}.icon-chizi_o:before{content:"\eba0"}.icon-bangongbao_o:before{content:"\eba1"}.icon-daoru_o:before{content:"\eba2"}.icon-diannao_o:before{content:"\eba3"}.icon-bianji_o:before{content:"\eba4"}.icon-bijibendiannao_o:before{content:"\eba5"}.icon-ding_o:before{content:"\eba6"}.icon-jianpan_o:before{content:"\eba7"}.icon-jianqie_o:before{content:"\eba8"}.icon-shaixuan_o:before{content:"\eba9"}.icon-jiesuo_o:before{content:"\ebaa"}.icon-daochu_o:before{content:"\ebab"}.icon-shouji_o:before{content:"\ebac"}.icon-tianjiafujian_o:before{content:"\ebad"}.icon-shu_o:before{content:"\ebae"}.icon-fuzhi_o:before{content:"\ebaf"}.icon-wenben_o:before{content:"\ebb0"}.icon-touyingyi_o:before{content:"\ebb1"}.icon-wenjianjia_o:before{content:"\ebb2"}.icon-tupian_o:before{content:"\ebb3"}.icon-suoding_o:before{content:"\ebb4"}.icon-cangku_kucunxiangqing_o:before{content:"\ebb5"}.icon-cangku_daozhan_o:before{content:"\ebb6"}.icon-cangku_kucun_o:before{content:"\ebb7"}.icon-dianbiao_o:before{content:"\ebb8"}.icon-fuwuliu_o:before{content:"\ebb9"}.icon-fuwuguanli_o:before{content:"\ebba"}.icon-gongzuoliu_o:before{content:"\ebbb"}.icon-fuwuxunhuanguanli_o:before{content:"\ebbc"}.icon-guanliyuanrenzheng_o:before{content:"\ebbd"}.icon-jinzhidengji_o:before{content:"\ebbe"}.icon-kuaisugongzuoliu_o:before{content:"\ebbf"}.icon-saomafuquan_o:before{content:"\ebc0"}.icon-guanliyuansousuo_o:before{content:"\ebc1"}.icon-shebeijiance_o:before{content:"\ebc2"}.icon-shebeisousuo_o:before{content:"\ebc3"}.icon-shuibiao_o:before{content:"\ebc4"}.icon-saomajiahuiche_o:before{content:"\ebc5"}.icon-shebeidadian_o:before{content:"\ebc6"}.icon-shuiweichuanganqi_o:before{content:"\ebc7"}.icon-yichangshangbao_o:before{content:"\ebc8"}.icon-xunjianweixiu_o:before{content:"\ebc9"}.icon-yemianliu_o:before{content:"\ebca"}.icon-weixiufuwu_o:before{content:"\ebcb"}.icon-zhongkong_o:before{content:"\ebcc"}.icon-danxuanweixuanzhong_o:before{content:"\ebcd"}.icon-bofang_o:before{content:"\ebce"}.icon-duoxuanweixuanzhong_o:before{content:"\ebcf"}.icon-duoxuanxuanzhong_o:before{content:"\ebd0"}.icon-gouwudai_o:before{content:"\ebd1"}.icon-gouwu_o:before{content:"\ebd2"}.icon-huojianjiasu_o:before{content:"\ebd3"}.icon-jiqiren_o:before{content:"\ebd4"}.icon-kefu_o:before{content:"\ebd5"}.icon-lanya_o:before{content:"\ebd6"}.icon-shengyin_o:before{content:"\ebd7"}.icon-leida-faxian_o:before{content:"\ebd8"}.icon-danxuanxuanzhong_o:before{content:"\ebd9"}.icon-lianjie_o:before{content:"\ebda"}.icon-liwu_o:before{content:"\ebdb"}.icon-liangdu_o:before{content:"\ebdc"}.icon-liangliangduibi_o:before{content:"\ebdd"}.icon-renlianshibie_o:before{content:"\ebde"}.icon-quxiaolianjie_o:before{content:"\ebdf"}.icon-jinxianshibutong_o:before{content:"\ebe0"}.icon-shanguangdeng_o:before{content:"\ebe1"}.icon-tanhao_o:before{content:"\ebe2"}.icon-wenhao_o:before{content:"\ebe3"}.icon-xinxi_o:before{content:"\ebe4"}.icon-tingzhi_o:before{content:"\ebe5"}.icon-yuechi_o:before{content:"\ebe6"}.icon-yingwen_o:before{content:"\ebe7"}.icon-yuyin_o:before{content:"\ebe8"}.icon-yunsuancaozuo_o:before{content:"\ebe9"}.icon-zanting_o:before{content:"\ebea"}.icon-shounadaohang_o:before{content:"\ebeb"}.icon-zhediedaohang_o:before{content:"\ebec"}.icon-zhuti_tiaosepan_o:before{content:"\ebed"}.icon-zhuti_yifu_o:before{content:"\ebee"}.icon-zhuti_o:before{content:"\ebef"}.icon-zuanshi_o:before{content:"\ebf0"}.icon-zhongwen_o:before{content:"\ebf1"}.icon-zhinanzhen_o:before{content:"\ebf2"}.icon-anquan_o:before{content:"\ebf3"}.icon-caidan_o:before{content:"\ebf4"}.icon-anniu_xuanzhong_o:before{content:"\ebf5"}.icon-bangzhu_o:before{content:"\ebf6"}.icon-cengji_o:before{content:"\ebf7"}.icon-chexiao_o:before{content:"\ebf8"}.icon-daohang_o:before{content:"\ebf9"}.icon-duihao_o:before{content:"\ebfa"}.icon-anniu_guanbi_o:before{content:"\ebfb"}.icon-erweima_o:before{content:"\ebfc"}.icon-guanbi_o:before{content:"\ebfd"}.icon-biaoge_o:before{content:"\ebfe"}.icon-guanyu_o:before{content:"\ebff"}.icon-jiahao_o:before{content:"\ec00"}.icon-dengyu_o:before{content:"\ec01"}.icon-jiazai_shuang_o:before{content:"\ec02"}.icon-jianhao_o:before{content:"\ec03"}.icon-jieshaoxinxi_o:before{content:"\ec04"}.icon-kaiguan_o:before{content:"\ec05"}.icon-jiazai_shuaxin_o:before{content:"\ec06"}.icon-lishijilu_o:before{content:"\ec07"}.icon-liebiao_o:before{content:"\ec08"}.icon-linggan_o:before{content:"\ec09"}.icon-jinyong_o:before{content:"\ec0a"}.icon-pinleishanchu_o:before{content:"\ec0b"}.icon-pinleijianshao_o:before{content:"\ec0c"}.icon-kongzhizhongxin_o:before{content:"\ec0d"}.icon-pinleizengjia_o:before{content:"\ec0e"}.icon-renwuzhongxin_o:before{content:"\ec0f"}.icon-quanjushezhi_o:before{content:"\ec10"}.icon-jinggao_o:before{content:"\ec11"}.icon-saoyisao_o:before{content:"\ec12"}.icon-shipin_o:before{content:"\ec13"}.icon-shouye_o:before{content:"\ec14"}.icon-shuliang-zengjia_o:before{content:"\ec15"}.icon-shuaxin_o:before{content:"\ec16"}.icon-shanchu_o:before{content:"\ec17"}.icon-tishi_o:before{content:"\ec18"}.icon-tuwen_o:before{content:"\ec19"}.icon-shitujuzhen_o:before{content:"\ec1a"}.icon-xinzengdaohangliebiao_o:before{content:"\ec1b"}.icon-sousuo_o:before{content:"\ec1c"}.icon-shuliangjianshao_o:before{content:"\ec1d"}.icon-yemiankuangjia_o:before{content:"\ec1e"}.icon-xiangji_o:before{content:"\ec1f"}.icon-yingyongAPP_o:before{content:"\ec20"}.icon-anniu_jiantoushouqi_o:before{content:"\ec21"}.icon-anniu_jiantouxiangzuo_o:before{content:"\ec22"}.icon-anniu_jiantouzhankai_o:before{content:"\ec23"}.icon-jiantou_liebiaoshouqi_o:before{content:"\ec24"}.icon-jiantou_liebiaoxiangyou_o:before{content:"\ec25"}.icon-jiantou_liebiaozhankai_o:before{content:"\ec26"}.icon-anniu-jiantouxiangyou_o:before{content:"\ec27"}.icon-xuanzeqizhankai_o:before{content:"\ec28"}.icon-jiantou_zuoshang_o:before{content:"\ec29"}.icon-jiantou_liebiaoxiangzuo_o:before{content:"\ec2a"}.icon-jiantou_shangyiye_o:before{content:"\ec2b"}.icon-jiantou_xiayiye_o:before{content:"\ec2c"}.icon-jiantou_xiangshang_o:before{content:"\ec2d"}.icon-jiantou_xiangxia_o:before{content:"\ec2e"}.icon-jiantou_xiangyouliangci_o:before{content:"\ec2f"}.icon-jiantou_shangxiaqiehuan_o:before{content:"\ec30"}.icon-jiantou_xiangzuo_o:before{content:"\ec31"}.icon-jiantou_yemian_xiangshang_o:before{content:"\ec32"}.icon-jiantou_xiangzuoliangci_o:before{content:"\ec33"}.icon-jiantou_yemian_xiangyou_o:before{content:"\ec34"}.icon-jiantou_youshang_o:before{content:"\ec35"}.icon-jiantou_xiangyou_o:before{content:"\ec36"}.icon-jiantou_yemian_xiangzuo_o:before{content:"\ec37"}.icon-jiantou_youxia_o:before{content:"\ec38"}.icon-jiantou_zuoyouqiehuan_o:before{content:"\ec39"}.icon-jiantou_yemian_xiangxia_o:before{content:"\ec3a"}.icon-jiaobiaoweixuanzhong_o:before{content:"\ec3b"}.icon-quxiaoquanping_o:before{content:"\ec3c"}.icon-jiaobiaoxuanzhong_o:before{content:"\ec3d"}.icon-sanjiaoxing_shang_o:before{content:"\ec3e"}.icon-quanping_o:before{content:"\ec3f"}.icon-xiangzuo_o:before{content:"\ec40"}.icon-shangxiazhankai_o:before{content:"\ec41"}.icon-xuanzeqishouqi_o:before{content:"\ec42"}.icon-xuanzeqixiayige_o:before{content:"\ec43"}.icon-sanjiaoxing_o:before{content:"\ec44"}.icon-shangchuan_o:before{content:"\ec45"}.icon-xiazai_o:before{content:"\ec46"}.icon-zhiding_o:before{content:"\ec47"}.icon-dunpaibaowei_o:before{content:"\ec48"}.icon-huobiliu_o:before{content:"\ecba"}.icon-dunpaibaoxianzhiliang_o:before{content:"\ec49"}.icon-jiekuan_o:before{content:"\ecbb"}.icon-jinrongguanli_o:before{content:"\ecbc"}.icon-cunkuan_o:before{content:"\ecbd"}.icon-dunpaibaoxianrenzheng_o:before{content:"\ec4a"}.icon-jinbi_o:before{content:"\ec4b"}.icon-zhangdan_quxiao_o:before{content:"\ecbf"}.icon-zhangdan_kong_o:before{content:"\ecc0"}.icon-zhangdan_xinzeng_o:before{content:"\ec4c"}.icon-zhangdan-wancheng_o:before{content:"\ec4d"}.icon-zijin_dongjie_o:before{content:"\ecc3"}.icon-yinhangqia_o:before{content:"\ec4e"}.icon-zijin_o:before{content:"\ecc4"}.icon-zhangdan_xiangqing_o:before{content:"\ec4f"}.icon-anniu-zan_o:before{content:"\ec50"}.icon-biaoqing_xiao_o:before{content:"\ec51"}.icon-chengchang_o:before{content:"\ec52"}.icon-duanxin_o:before{content:"\ec53"}.icon-biaoqing_beishang_o:before{content:"\ec54"}.icon-fenxiang_o:before{content:"\ec55"}.icon-biaoqing_o:before{content:"\ec56"}.icon-gerentouxiang_o:before{content:"\ec57"}.icon-qiandao_o:before{content:"\ecc7"}.icon-qunzu_o:before{content:"\ec58"}.icon-dianhua_o:before{content:"\ec59"}.icon-tianjiahaoyou_o:before{content:"\ec5a"}.icon-shoucang_o:before{content:"\ec5b"}.icon-xiai_o:before{content:"\ec5c"}.icon-zan_o:before{content:"\ec5d"}.icon-naozhong_o:before{content:"\ec5e"}.icon-shijian_o:before{content:"\ec5f"}.icon-riqi_o:before{content:"\ec60"}.icon-daibanrenwu_o:before{content:"\ec61"}.icon-daibanrenwu_quxiao_o:before{content:"\ec62"}.icon-shuzhuangtu_o:before{content:"\ec63"}.icon-zhexiantu_o:before{content:"\ec64"}.icon-yun_o:before{content:"\ec65"}.icon-yunshangchuan_o:before{content:"\ec66"}.icon-yunxiazai_o:before{content:"\ec67"}.icon-bingtu_o:before{content:"\ec68"}.icon-zhuzhuangtu_o:before{content:"\ec69"}.icon-baoguo_hezi_o:before{content:"\ec6a"}.icon-baoguo_dabao_o:before{content:"\ec6b"}.icon-baoguo_quxiaoshouhuo_o:before{content:"\ec6c"}.icon-baoguo_shouhuo_o:before{content:"\ec6d"}.icon-baoguo_shouna_o:before{content:"\ec6e"}.icon-baoguo_o:before{content:"\ec6f"}.icon-baoguo_lanshou_o:before{content:"\ec70"}.icon-didiandingwei_o:before{content:"\ec71"}.icon-ditu_dingwei_o:before{content:"\ec72"}.icon-ditu_diqiu_o:before{content:"\ec73"}.icon-fenjianguocheng_o:before{content:"\ec74"}.icon-fuwu_o:before{content:"\ec75"}.icon-gaojijibao_o:before{content:"\ec76"}.icon-huopinfenliu_o:before{content:"\ec77"}.icon-jiankong_o:before{content:"\ec78"}.icon-kuaidiyuan_o:before{content:"\ec79"}.icon-jianzhu_o:before{content:"\ecd6"}.icon-kuaidiyuanguanli_o:before{content:"\ec7a"}.icon-jibao_o:before{content:"\ecd7"}.icon-sandengfen_o:before{content:"\ecd8"}.icon-shijuedingwei_o:before{content:"\ec7b"}.icon-jingliren_o:before{content:"\ec7c"}.icon-sidengfen_o:before{content:"\ecdb"}.icon-quxiaojibao_o:before{content:"\ecdc"}.icon-wuliudanao_o:before{content:"\ecdd"}.icon-CPhezuo_o:before{content:"\ec7d"}.icon-yibiaopan_o:before{content:"\ec7e"}.icon-xinwen_o:before{content:"\ec7f"}.icon-xiaoxi_o:before{content:"\ec80"}.icon-youjian_o:before{content:"\ece0"}.icon-tongzhizhongxin_o:before{content:"\ec81"}.icon-dengchu_o:before{content:"\ec82"}.icon-yanjing_xianshi_o:before{content:"\ec83"}.icon-gerenxinxi_o:before{content:"\ec84"}.icon-yanjing_yincang_o:before{content:"\ec85"}.icon-anniu_gerenzhongxin_o:before{content:"\ec86"}.icon-huadongkaiguan-guanbi:before{content:"\e606"}.icon-huadongkaiguan-dakai:before{content:"\ec87"}.icon-api:before{content:"\e61e"}.icon-source-branch-copy:before{content:"\ece1"}.icon-api-copy:before{content:"\ece2"}.eo-modal-header .icon-guanbi:hover,menu-Default-Common-Component .common_menu_ul .common-btn:hover,menu-Default-Common-Component .common_menu_ul .fun-list-li:hover,overview-Product-Component .btn-edit-project:hover,overview-Product-Component .common-btn:hover{-webkit-transition:all .2s cubic-bezier(.645,.045,.355,1);transition:all .2s cubic-bezier(.645,.045,.355,1)}list-default-common-component .footer{background-color:#f8f8f8;padding:0 15px;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;height:40px;line-height:40px}list-default-common-component .footer .divide-span{border-right:1px solid #d9d9d9;height:30px;line-height:30px}list-default-common-component .footer,list-default-common-component .pagination{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center}list-default-common-component .pagination .first-page,list-default-common-component .pagination .last-page{-webkit-border-radius:3px;border-radius:3px}list-default-common-component .pageFooter .pagination>.active,list-default-common-component .pageFooter .pagination>.active:focus,list-default-common-component .pageFooter .pagination>.active:hover{background-color:#333}list-default-common-component .pageFooter .pagination>.active a,list-default-common-component .pageFooter .pagination>.active:focus a,list-default-common-component .pageFooter .pagination>.active:hover a{color:#fff}list-default-common-component .pagination-next .iconfont,list-default-common-component .pagination-prev .iconfont{font-weight:700}list-default-common-component .pagination-prev{margin-right:15px}list-default-common-component .pagination-next{margin-left:15px}list-default-common-component .pagination-page{width:25px;height:25px;line-height:25px;-webkit-border-radius:3px;border-radius:3px;margin-right:5px}.eo_theme_btn_danger,.eo_theme_btn_default,.eo_theme_btn_delete,.eo_theme_btn_info,.eo_theme_btn_orange,.eo_theme_btn_success,.eo_theme_btn_warning{height:32px;line-height:32px;cursor:pointer;-webkit-border-radius:4px;border-radius:4px;font-size:13px;padding:0 10px}.btn_static_test_utac,.eo_theme_btn_disabled{height:32px;line-height:32px;-webkit-border-radius:4px;border-radius:4px;font-size:13px;padding:0 10px}.btn_static_test_utac{cursor:pointer}.btn_static_test_utac .iconfont,.eo_theme_btn_danger .iconfont,.eo_theme_btn_default .iconfont,.eo_theme_btn_delete .iconfont,.eo_theme_btn_disabled .iconfont,.eo_theme_btn_info .iconfont,.eo_theme_btn_orange .iconfont,.eo_theme_btn_success .iconfont,.eo_theme_btn_warning .iconfont{font-size:14px}.btn_static_test_utac .iconfont+span,.eo_theme_btn_danger .iconfont+span,.eo_theme_btn_default .iconfont+span,.eo_theme_btn_delete .iconfont+span,.eo_theme_btn_disabled .iconfont+span,.eo_theme_btn_info .iconfont+span,.eo_theme_btn_orange .iconfont+span,.eo_theme_btn_success .iconfont+span,.eo_theme_btn_warning .iconfont+span{margin-left:10px}.btn_static_test_utac span:nth-last-child(n+2),.eo_theme_btn_danger span:nth-last-child(n+2),.eo_theme_btn_default span:nth-last-child(n+2),.eo_theme_btn_delete span:nth-last-child(n+2),.eo_theme_btn_disabled span:nth-last-child(n+2),.eo_theme_btn_info span:nth-last-child(n+2),.eo_theme_btn_orange span:nth-last-child(n+2),.eo_theme_btn_success span:nth-last-child(n+2),.eo_theme_btn_warning span:nth-last-child(n+2){float:left}.btn_static_test_utac:hover,.eo_theme_btn_danger:hover,.eo_theme_btn_default:hover,.eo_theme_btn_delete:hover,.eo_theme_btn_disabled:hover,.eo_theme_btn_info:hover,.eo_theme_btn_orange:hover,.eo_theme_btn_success:hover,.eo_theme_btn_warning:hover{-webkit-transition:all .2s cubic-bezier(.645,.045,.355,1);transition:all .2s cubic-bezier(.645,.045,.355,1)}.btn_static_test_utac:disabled,.eo_theme_btn_danger:disabled,.eo_theme_btn_default:disabled,.eo_theme_btn_delete:disabled,.eo_theme_btn_disabled:disabled,.eo_theme_btn_info:disabled,.eo_theme_btn_orange:disabled,.eo_theme_btn_success:disabled,.eo_theme_btn_warning:disabled{cursor:not-allowed}*{margin:0;padding:0;outline:none;color:inherit;font-family:inherit;font-size:inherit}.base-container-div{position:absolute;width:100%;top:0;left:0;height:100%;z-index:0;font-size:13px}.common-table-div{padding:15px}a *,button *,div,li,p,span,thead th{cursor:inherit}td,th{text-align:left;word-break:break-all}ol,ul{list-style-type:none}body{position:absolute;font-family:"Helvetica Neue","Helvetica","PingFang SC","Hiragino Sans GB","Microsoft YaHei","Noto Sans CJK SC","WenQuanYi Micro Hei","Arial",sans-serif;background:#fff;width:100%;height:100%;color:#333;font-size:13px}a,button{cursor:pointer;text-decoration:none}a input[type=text],button input[type=text]{cursor:text}button{background:initial;border:none}textarea{resize:none}textarea:disabled{background-color:#fafafa;color:#ccc;cursor:not-allowed}input::-ms-clear{display:none}input::-ms-reveal{display:none}.absolute{position:absolute}.eo-blod{font-weight:700}.inline-block{display:inline-block}.eo-tip-container{position:absolute;z-index:100;visibility:hidden}.eo-tip-container .message-li{padding:10px;line-height:initial;-webkit-border-radius:3px;border-radius:3px;background-color:#000;color:#fff;font-size:12px;text-align:left;max-width:500px}.eo-tip-container .message-li *{color:#fff}.eo-tip-container .arrow-li{border-color:#000 transparent transparent transparent;border-width:5px 5px 0;border-style:solid;width:0;margin-left:8px}.eo-modal-header{height:50px;line-height:50px;border-bottom:1px solid #e5e5e5;font-size:18px;padding:0 20px;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.eo-modal-header a,.eo-modal-header input[type=button]{padding:0 16px}.eo-modal-header .icon-guanbi:hover{color:#1890ff}.eo-modal-article{padding:20px}.eo-modal-article .eo_form_first_item_title{margin-bottom:8px}.eo-modal-article .eo_form_item_title{margin:20px 0 8px}.eo-modal-footer{padding:15px 20px;border-top:1px solid #e5e5e5;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;background-color:#f9f9f9;-webkit-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px}.eo-modal-footer button,.eo-modal-footer input[type=button]{margin-right:8px}.eo-modal-tip{color:#999}.eo-operate-btn{color:#1890ff;margin-right:10px;border:none;background:0 0;text-indent:0;cursor:pointer;font-size:12px}.eo-operate-btn .iconfont{padding-right:2px}.eo-operate-btn:hover{color:#1e88e5;text-decoration:underline}.eo-operate-btn:disabled{color:#ccc!important;cursor:not-allowed!important}.eo-static-hidden{height:0;overflow:hidden;visibility:hidden;position:relative;padding:0!important}.eo-none-tr{background-color:inherit!important;color:#999!important;line-height:100px!important;height:100px!important}.eo-none-tr td{text-align:center;cursor:default;vertical-align:middle!important}.no-menu-list-container .common_scss_list .first_level_article{margin:15px 15px 0}.no-menu-list-container .footer{margin:0 15px 15px}.pull-left{float:left}.pull-right{float:right}.wrap{width:1250px;height:auto;margin:0 auto}.eo_theme_mask_bg{position:fixed;z-index:-1;width:100%;height:100%;top:0;left:0}.eo_disable{color:#999!important;background-color:#fafafa!important}.eo_more_btn_container{position:relative;display:inline-block}.eo_more_btn_container .more-btn:focus+.wrap-container{display:block}.eo_more_btn_container .common-btn{-webkit-border-radius:3px 0 0 3px;border-radius:3px 0 0 3px;float:left}.eo_more_btn_container .more-btn{border-left:1px solid #089462;-webkit-border-radius:0 3px 3px 0;border-radius:0 3px 3px 0;width:25px;padding:0}.eo_more_btn_container .wrap-container:hover{display:block}.eo_more_btn_container .wrap-container{background-color:#fff;-webkit-box-shadow:0 10px 15px rgba(0,0,0,.12);box-shadow:0 10px 15px rgba(0,0,0,.12);position:absolute;border-style:solid;border-width:1px;-webkit-border-radius:3px;border-radius:3px;right:0;z-index:2;border-color:#d9d9d9;display:none;margin-top:5px}.eo_more_btn_container .wrap-container a,.eo_more_btn_container .wrap-container button{height:35px;line-height:35px;padding:0 15px;text-align:left;color:#555;word-break:keep-all;white-space:pre;display:block}.eo-more-btn-container .wrap-div p:hover,.eo_more_btn_container .wrap-container a:hover,.eo_more_btn_container .wrap-container button:hover{background-color:#eee;color:#607d8b;text-decoration:underline}.null_tip_span{font-size:16px;width:100%;display:block;text-align:center;line-height:140px;color:#999}.btn_hover:hover{color:#1890ff}.eo-sv-handle{cursor:move}.eo-textarea{border-style:solid;border-width:1px;-webkit-border-radius:3px;border-radius:3px;font-size:14px;padding:4px 11px;-webkit-box-sizing:border-box;box-sizing:border-box;width:250px}.eo-input:disabled,.eo-select:disabled,.eo-textarea:disabled{cursor:not-allowed}.eo-input,.eo-select{border-style:solid;border-width:1px;-webkit-border-radius:3px;border-radius:3px;font-size:12px;padding:4px 6px;-webkit-box-sizing:border-box;box-sizing:border-box;height:30px;line-height:100%;width:250px}.btn-addChild:disabled:hover .ams-scss-disable-tip,.get-more-btn:disabled:hover .ams-scss-disable-tip,.number-label:disabled:hover .ams-scss-disable-tip{display:block}.ams-scss-disable-tip{position:absolute;margin-top:-54px;z-index:4;display:none;margin-left:-10px}.ams-scss-disable-tip .tip-div{padding:10px;word-break:keep-all;line-height:initial;-webkit-border-radius:3px;border-radius:3px;background-color:#000;color:#fff;font-size:12px;text-align:left;max-width:500px;min-width:200px}.ams-scss-disable-tip .arrow-div{border-color:#000 transparent transparent transparent;border-width:5px 5px 0;border-style:solid;width:0;margin-top:8px;margin-left:8px}.eo-checkbox{height:15px;line-height:15px;width:15px;font-size:12px!important;margin-right:4px;cursor:pointer;display:inline-block;text-align:center;-webkit-border-radius:3px;border-radius:3px;text-indent:0;color:#333;background-color:#fff;border:1px solid #d9d9d9;font-weight:100}.eo_link{color:#1890ff}.eo_link:hover{text-decoration:underline}.eo_mask{position:fixed;z-index:-1;width:100%;height:100%;top:0;left:0}.eo_theme_btn_default{border-style:solid;border-width:1px}.eo_theme_btn_danger:disabled,.eo_theme_btn_delete:disabled,.eo_theme_btn_info:disabled,.eo_theme_btn_orange:disabled,.eo_theme_btn_success:disabled,.eo_theme_btn_warning:disabled{border-style:solid;border-width:1px}.eo_theme_btn_disabled{color:#999!important;background-color:#eee!important;border:1px solid #d9d9d9!important;cursor:not-allowed}.eo-more-btn-container{position:relative;display:inline-block}.eo-more-btn-container:hover{color:#1890ff}.eo-more-btn-container .eo_more_btn{line-height:28px}.eo-more-btn-container .iconfont{font-size:24px}.eo-more-btn-container .icon-jiantou_liebiaozhankai{font-size:18px}.eo-more-btn-container .wrap-div{background-color:#fff;-webkit-box-shadow:0 10px 15px rgba(0,0,0,.12);box-shadow:0 10px 15px rgba(0,0,0,.12);position:absolute;border-style:solid;border-width:1px;-webkit-border-radius:3px;border-radius:3px;z-index:2;border-color:#d9d9d9;display:none;margin-top:5px}.eo-more-btn-container .wrap-div p{height:35px;line-height:35px;padding:0 15px;text-align:left;color:#555;word-break:keep-all;white-space:nowrap;min-width:60px;cursor:pointer}.eo-more-btn-container .eo_more_btn:focus+.wrap-div,.eo-more-btn-container:focus .wrap-div{display:block}.eo-wrap-div{background-color:#fff;-webkit-box-shadow:0 10px 15px rgba(0,0,0,.12);box-shadow:0 10px 15px rgba(0,0,0,.12);position:absolute;border-style:solid;border-width:1px;-webkit-border-radius:3px;border-radius:3px;right:0;z-index:2;border-color:#d9d9d9;display:none;margin-top:5px}.eo-wrap-div p{height:35px;line-height:35px;padding:0 15px;text-align:left;color:#555;word-break:keep-all;white-space:pre;min-width:60px;cursor:pointer}.eo-wrap-div p:hover{background-color:#eee;color:#607d8b;text-decoration:underline}.eo-label-default,.eo-label-purple,.eo-label-success{color:#9c27b0;background-color:#f8fff9;border:1px solid #9c27b0;-webkit-border-radius:3px;border-radius:3px}.eo-label-default,.eo-label-success{color:#58a942;border:1px solid #58a942}.eo-label-default{color:#07a1ea;background-color:#fcfeff;border:1px solid #07a1ea}.eo-label-danger,.eo-label-tips,.eo-label-warning{color:#ea0707;background-color:#fffdfd;border:1px solid #ea0707;-webkit-border-radius:3px;border-radius:3px}.eo-label-tips,.eo-label-warning{color:#f18f00;background-color:#fffdf8;border:1px solid #f18f00}.eo-label-tips{color:#999;background-color:#f5f5f5;border:1px solid #999}.eo-label-options,.eo-label-others,.eo-label-yellow{color:#6d4c41;background-color:#fffcfb;border:1px solid #6d4c41;-webkit-border-radius:3px;border-radius:3px}.eo-label-options,.eo-label-yellow{color:#ff8f00;background-color:#fffef6;border:1px solid #ff8f00}.eo-label-options{color:#546e7a;background-color:#fafdff;border:1px solid #546e7a}.eo-color-back,.eo-color-default,.eo-color-success{color:#fff;background-color:#1890ff;border:1px solid #1890ff;-webkit-border-radius:3px;border-radius:3px}.eo-color-back,.eo-color-success{background-color:#00ab6d;border:1px solid #00ab6d}.eo-color-back{background-color:#333;border:1px solid #333;line-height:14px;text-indent:0;-webkit-box-sizing:border-box;box-sizing:border-box}.eo-color-error,.eo-color-warning,.eo-color-yellow{color:#fff;background-color:#f18f00;border:1px solid #f18f00;-webkit-border-radius:3px;border-radius:3px}.eo-color-error,.eo-color-yellow{background-color:#e83333;border:1px solid #e83333}.eo-color-yellow{background-color:#fc0;border:1px solid #fc0}.eo-color-danger,.eo-color-tips,.eo-color-tips-shallow{color:#fff;background-color:#ea0707;border:1px solid #ea0707;-webkit-border-radius:3px;border-radius:3px}.eo-color-tips,.eo-color-tips-shallow{background-color:#999;border:1px solid #999}.eo-color-tips-shallow{background-color:#b3b4b3;border:1px solid #b3b4b3}.eo-color-options,.eo-color-others,.eo-color-purple,.eo-color-unuse{color:#fff;background-color:#795548;border:1px solid #6d4c41;-webkit-border-radius:3px;border-radius:3px}.eo-color-options,.eo-color-purple,.eo-color-unuse{background-color:#607d8b;border:1px solid #546e7a}.eo-color-purple,.eo-color-unuse{background-color:#999;border:1px solid #c63e21}.eo-color-purple{background-color:#9c27b0;border:1px solid #9c27b0}.eo-error-tips{color:#e83333;font-size:12px;display:none;line-height:32px}.eo-had-input-error .eo-error-tips,.eo-had-input-error+.eo-error-tips,.eo-input-error+.eo-error-tips{display:block}.eo-status-options{color:#546e7a}.eo-status-others{color:#6d4c41}.eo-status-default{color:#07a1ea}.eo-status-success{color:#00ab6d}.eo-status-warning{color:#f18f00}.eo-status-error{color:#e83333}.eo-status-yellow{color:#fc0}.eo-status-purple{color:#9c27b0}.eo-status-danger{color:#ea0707}.eo-status-tips{color:#999}.eo-status-disabled{color:#ccc}.eo-tab-icon{color:#fff;height:16px;line-height:18px;-webkit-border-radius:8px;border-radius:8px;display:inline-block;padding:0 10px;font-size:12px}@-webkit-keyframes flicker{0%,to{border:1px solid #d9d9d9}50%{border:1px solid #089462}}@keyframes flicker{0%,to{border:1px solid #d9d9d9}50%{border:1px solid #089462}}.eo-copy{-webkit-animation:flicker 1s;animation:flicker 1s}.eo-tab-menu{display:table;border-bottom:0;width:100%}.eo-tab-menu .item-tab{padding:0 15px;display:inline-block;cursor:pointer;height:38px;line-height:38px;border-bottom-style:solid;border-bottom-width:3px;margin-right:2px}.eo-tab-menu .item-tab .icon-circle{font-size:12px;margin-right:5px}.eo-tab-menu .active-item{cursor:default}.eo-tab-menu .disable-item{cursor:not-allowed}.eo-tab-menu .disable-item .iconfont{display:none}.eo-tab-container{background-color:#fff;-webkit-box-shadow:0 4px 6px 0 rgba(31,31,31,.05),0 0 2px 0 rgba(31,31,31,.2);box-shadow:0 4px 6px 0 rgba(31,31,31,.05),0 0 2px 0 rgba(31,31,31,.2);display:block}.eo-block-container,.eo-method-label,.eo-tab-container{-webkit-border-radius:3px;border-radius:3px}.eo-block-container{background-color:#fff;border:1px solid #d9d9d9;display:block}.eo-method-label{margin-right:8px;font-size:12px;display:inline-block;width:45px;height:18px;line-height:18px;text-align:center;text-indent:0}.eo-absolute{position:absolute}.eo-relative{position:relative}.opacity-none{opacity:0}.eo-had-content-error *,.modal-open .error i,.modal-open .error span{color:#d85030}.eo-had-input-error input,.eo-input-error{border-color:#e83333!important;color:#e83333!important}.eo-had-input-error input:focus,.eo-input-error:focus{border-color:#e83333!important;color:#333!important}.eo-input-success{border-color:#089462!important}.eo-common-table,.eo_popover_tip{-webkit-border-radius:3px;border-radius:3px}.eo_popover_tip{position:absolute;z-index:6;background-color:#000;height:30px;line-height:30px;padding:0 10px;white-space:nowrap;text-indent:0;color:#fff;font-size:12px;display:none}.eo-common-table{border-spacing:0;table-layout:fixed;border:1px solid #e5e5e5}.eo-common-table tbody .hover-tr:hover,.eo-common-table thead,.eo-common-table thead td{background-color:#fafafa}.eo-common-table td{height:40px;line-height:40px;vertical-align:top;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;padding-left:10px}.eo-common-table td:nth-last-child(n+2){border-right:1px dashed #e5e5e5}.eo-common-table .btn-delete{height:25px;line-height:25px;-webkit-border-radius:3px;border-radius:3px;background-color:#f2f2f2;color:#999;display:inline-block;text-align:center;border:1px solid #d9d9d9;padding:0 5px;font-size:12px}.eo-common-table .btn-delete:hover{background-color:#e83333;color:#fff;border:1px solid #d03333}.eo-common-table tbody tr:nth-last-child(n+2) td,gpedit-inside-auth .common-table tbody tr:nth-last-child(n+2) td{border-bottom:1px dashed #e5e5e5}.eo-common-table tbody tr:first-child td{border-top:1px solid #d9d9d9}.popover{position:absolute;z-index:2}.popover table{border-spacing:0}.arrow{border-style:solid;border-width:5px 10px 5px 0;border-color:transparent #333 transparent transparent}.popover-inner{background-color:#333;padding:5px 10px;min-width:150px;max-width:215px}.popover-inner .popover-content{color:#fff;font-size:12px;line-height:20px}input::-webkit-input-placeholder,textarea::-webkit-input-placeholder{color:#ccc}input:-moz-placeholder,input::-moz-placeholder,textarea:-moz-placeholder,textarea::-moz-placeholder{color:#ccc}input:-ms-input-placeholder,textarea:-ms-input-placeholder{color:#ccc}.pageFooter{text-align:center}.pageFooter li>a,.pageFooter li>span{color:#555;width:35px}.pageFooter .disabled>a{color:#e5e5e5;cursor:default}.pageFooter .pagination-next,.pageFooter .pagination-prev{-webkit-border-radius:3px;border-radius:3px}.pageFooter .pagination .active,.pageFooter .pagination .active:focus,.pageFooter .pagination .active:hover{background-color:#089462}.pageFooter .pagination .active a,.pageFooter .pagination .active:focus a,.pageFooter .pagination .active:hover a,list-block-common-component .tfooter-div .pagination>.active a,list-block-common-component .tfooter-div .pagination>.active:focus a,list-block-common-component .tfooter-div .pagination>.active:hover a{color:#fff}.pageFooter .pagination-jump{color:#555;margin:37px 0 20px 10px;display:inline-block}.pageFooter .pagination-jump li{height:37px;line-height:37px;display:inline-block}.pageFooter .pagination-jump li input{height:33px;line-height:33px;margin:0 8px;width:55px;border:1px solid #dfdfdf;background-color:#fff;text-indent:1em}.pageFooter .pagination-jump li button{width:50px}.pageFooter .pagination-sm{margin:25px;display:inline-block}.pageFooter .pagination-sm li{width:35px;height:35px;line-height:36px;background-color:#fff;border:1px solid rgba(0,0,0,.06);border-left:none;text-align:center;display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex}.pageFooter .pagination-sm .pagination-prev{margin-right:10px;border-left:1px solid rgba(0,0,0,.06)}.pageFooter .pagination-sm .pagination-next{margin-left:10px;border-left:1px solid rgba(0,0,0,.06)}.pageFooter .pagination-sm li:nth-child(2){border-left:1px solid rgba(0,0,0,.06)}.pageFooter .first-page{-webkit-border-radius:3px 0 0 3px;border-radius:3px 0 0 3px}.pageFooter .last-page{-webkit-border-radius:0 3px 3px 0;border-radius:0 3px 3px 0}.pageFooter .only-page{-webkit-border-radius:3px;border-radius:3px}.wangEditor-container .wangEditor-txt ul li{list-style-type:initial}.wangEditor-container .wangEditor-txt *{white-space:pre-wrap}.hidden{display:none}::-webkit-scrollbar-track{background:#f5f5f5}::-webkit-scrollbar-thumb{background:#bdbdbd}::-webkit-scrollbar{width:12px;height:12px}.z_index8{z-index:8}.va_top{vertical-align:top}.ws_nowrap{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.wb_all{word-break:break-all}.ws_initial{white-space:initial}.of_hidden{overflow:hidden}.of_inherit{overflow:inherit!important}.br_3{-webkit-border-radius:3px;border-radius:3px}.eo_to_right_0{right:0}.eo_to_right_750{right:-750px}.br_0330{-webkit-border-radius:0 3px 3px 0;border-radius:0 3px 3px 0}.h_180{height:180px}.h_70{height:80px}.lh_50{line-height:50px}.lh_30{line-height:30px}.lh_35{line-height:35px}.lh_20{line-height:20px}.lh_1em{line-height:1em}.lh_14{line-height:14px}.lh_12{line-height:12px}.lh_1point75{line-height:1.75em}.clear_b{clear:both}.dp_f,menu-Default-Common-Component,tip-common-component{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.dp_none{display:none}.dp_b{display:block!important}.dp_ib{display:inline-block}.dp_it{display:inline-table}.mw_1100{min-width:1100px}.mw_100{min-width:100px}.mw_110{min-width:110px}.maw_200{max-width:200px}.mw_300{min-width:300px}.mw_80{min-width:80px}.mw_800{min-width:800px}.mw_55{min-width:55px}.mw_50{min-width:50px}.w_240{width:240px}.w_25{width:25px}.w_15{width:15px}.w_60{width:60px}.w_330{width:330px}.w_640{width:640px}.w_80{width:80px!important}.w_150{width:150px}.w_90{width:90px}.w_180{width:180px}.w_170{width:170px}.w_200{width:200px}.w_300{width:300px}.w_320{width:320px}.w_18percent{width:18%}.w_30percent{width:30%}.w_25percent{width:25%}.w_20percent{width:20%}.w_40percent{width:40%}.w_10percent{width:10%}.w_30{width:30px}.w_400{width:400px}.w_500{width:500px}.w_55{width:55px}.w_50{width:50px!important}.w_250{width:250px}.w_220{width:220px}.w_100{width:100px}.w_50percent{width:50%}.modal-open .eo-modal select-multistage-common-component .container-div,.w_100percent{width:100%}.w_8percent{width:8%}.w_fc{width:-webkit-fit-content;width:-moz-fit-content;width:fit-content}.h_100percent{height:100%}.mh_40{min-height:40px}.h_50,eo-navbar header{height:50px}.h_40{height:40px;line-height:40px}.h_54{height:54px!important}.h_20{height:20px!important}.h_30{height:30px}.h_110{height:110px}.po_re{position:relative}.po_ab{position:absolute}.po_fix{position:fixed}.ti0,tip-directive *{text-indent:0}.ti20{text-indent:20px}.tac{text-align:center}.ta_l{text-align:left}.ta_j{text-align:justify}.ab_r20{position:absolute;right:20px}.h20,.h6{font-size:16px;font-weight:700}.h20{font-size:20px}.h24{font-size:24px}.fwb,.h24{font-weight:700}.fwn{font-weight:400}.cp{cursor:pointer}.cd{cursor:default}.cn-a{cursor:not-allowed}.ccr{cursor:col-resize}.c555{color:#555}.c999{color:#999}.c666,.eo_theme_lrt tbody tr{color:#666}.cddd{color:#ddd}.c_b_g{color:#00ab6d;border:1px solid}.bgc_white{background-color:#fff}.bgc_g{background-color:#00ab6d}.bgc_r{background-color:#e83333}.c_b_r,.c_b_y{color:#f18f00;border:1px solid}.c_b_r{color:#ea0707}.f_row,.f_row_ac{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.f_row{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.f_row_ac{-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.f_column,.f_row_ac,.f_wrap{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.f_column{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.f_wrap{-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap}.f_jc_ac,.f_js_ac{-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.f_js_ac{-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between}.f_jc{-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center}.f_js{-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between}.f_je{-webkit-box-pack:end;-webkit-justify-content:flex-end;-ms-flex-pack:end;justify-content:flex-end}.f_ac{-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.f_as{-webkit-box-align:start;-webkit-align-items:flex-start;-ms-flex-align:start;align-items:flex-start}.f_ae{-webkit-box-align:end;-webkit-align-items:flex-end;-ms-flex-align:end;align-items:flex-end}.bl_none{border-left:none!important}.btd,list-block-common-component .tbody-div>inner-html-common-directive .tr-tbd{border-top:1px solid #d9d9d9}.bbd{border-bottom:1px solid #d9d9d9}.bb_ddd{border-bottom:1px solid #ddd}.bd_all,.bdd_br3{border:1px solid #d9d9d9}.bdd_br3{-webkit-border-radius:3px;border-radius:3px}.fg1,.fg_auto{-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1}.fg_auto{-webkit-flex:auto;-ms-flex:auto;flex:auto}.cr{color:#e83333}.b_cr{border:1px solid #e83333}.b_none{border:none}.cb{color:#2196f3}.cy{color:#f48932}.co{color:#ffb74d}.ce6{color:#e6e6e6}.cf{color:#fff}.cg{color:#00ab6d}.c9{color:#999}.common_scss_list .first_level_article .more-function li:hover,.tdu{text-decoration:underline}.fs12{font-size:12px!important}.fs27{font-size:27px}.fs14{font-size:14px}.fs16{font-size:16px}.fs18{font-size:18px}.fs20{font-size:20px}.fs23{font-size:23px}.fs24{font-size:24px}.fs30{font-size:30px}.fs22{font-size:22px!important}.fs13{font-size:13px}.m_auto{margin:auto}.m20{margin:20px}.m10{margin:10px}.m15{margin:15px}.mr0{margin-right:0}.btn-back .iconfont,.mr5{margin-right:5px}.mr10{margin-right:10px}.mr15{margin-right:15px}.mr20{margin-right:20px}.mr25{margin-right:25px}.mr30{margin-right:30px}.mr40{margin-right:40px}.mr80{margin-right:80px}.ml12{margin-left:12px}.ml0{margin-left:0}.ml5{margin-left:5px}.ml15{margin-left:15px}.ml10{margin-left:10px}.ml20{margin-left:20px}.ml240{margin-left:240px}.ml40{margin-left:40px}.ml50{margin-left:50px}.ml47{margin-left:47px}.mlr5{margin-left:5px;margin-right:5px}.mlr10{margin-left:10px;margin-right:10px}.mlr15{margin-left:15px;margin-right:15px}.mlr20{margin-left:20px;margin-right:20px}.mlr40{margin-left:40px;margin-right:40px}.ml30{margin-left:30px}.mt0{margin-top:0}.mt60{margin-top:60px}.mt65{margin-top:65px}.mt50,cluster-node{margin-top:50px}.mt35{margin-top:35px}.mt12{margin-top:12px}.mt5{margin-top:5px}.mt10{margin-top:10px}.mtb50{margin-top:50px;margin-bottom:50px}.mtb5{margin-top:5px;margin-bottom:5px}.mt20{margin-top:20px}.mt30{margin-top:30px}.mt40{margin-top:40px}.mt15{margin-top:15px}.mt100{margin-top:100px}.mb20{margin-bottom:20px}.mb25{margin-bottom:25px}.mb10{margin-bottom:10px}.mb15{margin-bottom:15px}.mb30{margin-bottom:30px}.mb50{margin-bottom:50px}.mb65{margin-bottom:65px}.mb5{margin-bottom:5px}.mtb10{margin-top:10px;margin-bottom:10px}.mtb15{margin-top:15px;margin-bottom:15px}.mtb20{margin-top:20px;margin-bottom:20px}.mtb40{margin-top:40px;margin-bottom:40px}.pr20{padding-right:20px}.pr5{padding-right:5px}.home-common-has-group-div menu-default-common-component,.pr15{padding-right:15px}.pr10{padding-right:10px}.p5{padding:5px}.p10{padding:10px}.p15{padding:15px}.pl15,list-default-common-component .common_scss_list .first_level_article td,list-default-common-component .common_scss_list .first_level_article th{padding-left:15px}.p20{padding:20px}.ptd1{padding-top:1px;padding-bottom:1px}.plr30{padding-left:30px;padding-right:30px}.plr3{padding-left:3px;padding-right:3px}.plr40{padding-left:40px;padding-right:40px}.plr5{padding-left:5px;padding-right:5px}.pl20{padding-left:20px}.plr10{padding-left:10px;padding-right:10px}.plr15{padding:0 15px}.pl10{padding-left:10px}.plr20{padding-left:20px;padding-right:20px}.ptb2{padding-top:2px;padding-bottom:2px}.ptb5{padding-top:5px;padding-bottom:5px}.pt15{padding-top:15px}.ptb25{padding-top:25px;padding-bottom:25px}.pt10{padding-top:10px}.pt30{padding-top:30px}.pt20{padding-top:20px}.pt25{padding-top:25px}.pb20{padding-bottom:20px}.pb10,.ptb10{padding-bottom:10px}.ptb10{padding-top:10px}.ptb15{padding-top:15px;padding-bottom:15px}.ptb20{padding-top:20px;padding-bottom:20px}.btn-back{border:1px solid #d9d9d9;-webkit-border-radius:3px;border-radius:3px;background-color:#fff;padding:0 10px;font-size:12px;display:inline-block;text-align:center;height:32px;line-height:30px}.btn-back:hover{background-color:#fafafa}.bdn-bgn{border:none;background-color:unset}.vis_hid{visibility:hidden}.tips-box{-webkit-box-shadow:0 4px 6px 0 rgba(31,31,31,.05),0 0 2px 0 rgba(31,31,31,.2);box-shadow:0 4px 6px 0 rgba(31,31,31,.05),0 0 2px 0 rgba(31,31,31,.2);-webkit-border-radius:3px;border-radius:3px;padding:0 15px 15px}.tips-box .tips-title{font-weight:700;border-bottom:1px solid #d9d9d9;height:40px;line-height:40px}.tips-box .tips-ul{padding:10px 0}.tips-box .tips-ul .tips-ul-title{display:inline-block;width:8rem}.tips-box .tips-ul>li{height:30px;line-height:30px}.eo_theme_modal_mask{background-color:rgba(0,0,0,.5)}.eo_theme_mask_bg{background:#f0f2f5}.eo_theme_ts_btn{background-color:#2196f3;color:#fff}.eo_theme_ts_btn:hover{background-color:#1e88e5;color:#fff}.eo_theme_tp_btn{background-color:#00ab6d;color:#fff}.eo_theme_tp_btn:hover{background-color:#089462}.eo_theme_tp_p_btn{background-color:#388e3c;color:#fff}.eo_theme_tp_p_btn:hover{background-color:#2e7d32}.eo_theme_t_p_btn{background-color:#3c7ce5;color:#fff}.eo_theme_t_p_btn:hover{background-color:#3a85c1}.eo-input,.eo-select,.eo-textarea{border-color:#d9d9d9;background-color:#fff;color:#333}.eo-input:hover,.eo-select:hover,.eo-textarea:hover{border-color:#999;-webkit-transition:all .2s cubic-bezier(.645,.045,.355,1);transition:all .2s cubic-bezier(.645,.045,.355,1)}.eo-input:focus,.eo-select:focus,.eo-textarea:focus{border-color:#089462}.eo-input:disabled,.eo-select:disabled,.eo-textarea:disabled{color:#999;background-color:#fafafa}input:disabled{color:#999!important;background-color:#fafafa!important}.eo-tab-menu,.eo_theme_ldt tbody tr:hover,.eo_theme_lgt tbody tr:hover{background-color:#efefef}.eo-tab-menu .item-tab{border-bottom-color:#efefef}.eo-tab-menu .item-tab:hover{border-color:#089462}.eo-tab-menu .item-tab .tab-icon{background-color:#00ab6d}.eo-tab-menu .item-tab .icon-circle{color:#00ab6d}.eo-tab-menu .active-item,.eo-tab-menu .active-item:hover{border-bottom-color:#00ab6d}.eo-tab-menu .disable-item{color:#999}.eo-tab-menu .disable-item:hover{border-bottom-color:transparent}.eo_theme_iblock,.eo_theme_iblock_i{border-color:#d9d9d9;background-color:#fff}.eo_theme_iblock_i:hover{background-color:#fafafa}.eo_theme_iblock_i_dp{color:#b6b6b6}.eo_theme_iblock_tb{color:#607d8b}.eo_theme_iblock_tp{color:#555}.eo_theme_rblock{background-color:#f3f3f3}.eo_theme_rblock_tp{color:#b6b6b6}.eo_theme_rblock_i_dp{border-color:#b6b6b6}.eo_theme_gd_container{background-color:#fff}.eo_theme_gd_container .sv-helper,.eo_theme_gd_li:hover{background-color:#eee}.eo_theme_gd_d{border-color:#e5e5e5}.eo_theme_gd_lt,.eo_theme_ldt thead th{border-color:#d9d9d9}.eo_theme_gd_li{color:#555}.eo_theme_gd_li:hover .eo_theme_gd_lt_icon{color:#455a64}.eo_theme_gd_li .iconfont{color:#999}.eo_theme_gd_li_fl{background-color:#fff;-webkit-box-shadow:-5px 5px 15px #ededed;box-shadow:-5px 5px 15px #ededed;border-color:#dcdcdc}.eo_theme_gd_li_fli{color:#555}.eo_theme_gd_li_fli_s{color:#089462}.eo_theme_gd_li_fli:hover,.eo_theme_gd_li_fli_a{background-color:#eee;color:#607d8b}.eo_theme_gd_btn_c{background-color:#fff;color:#e83333;border-color:#e83333}.eo_theme_gd_btn_c:active,.eo_theme_gd_btn_c:hover{background-color:#d03333;color:#fff;border-color:#d03333}.eo_theme_lct_tra{background-color:#ffecb3!important}.eo_theme_ldt,.eo_theme_lgt{background-color:#fff}.bottom-count-div,.eo_theme_lgt thead th{background-color:#f8f8f8;color:#48555c}.eo_theme_ldt_tdt{color:#999}.eo_theme_lrd{background-color:#fff}.eo_theme_lrt tbody tr:nth-child(odd){background:#fafafa}.eo_theme_lrt tbody tr:nth-child(even){background:#fff}.eo_theme_lrt tbody tr:hover{background:#f0f0f0}.s_style{-webkit-box-shadow:0 0 5px rgba(0,0,0,.1);box-shadow:0 0 5px rgba(0,0,0,.1);border-color:#d9d9d9}.s0_logo_style,.s0_style{background-color:#fff;border-bottom:1px solid #d9d9d9}.s0_style{color:#999}.s0_style:hover{background-color:#f2f2f2}.s0_logo_style{border-color:#d9d9d9}.s0_icon_style{border-right:1px solid #d9d9d9;background-color:#fafafa}.s1_style{background-color:#fff}.s1_tip_style{color:#fff;background-color:#dc441e}.s1_c_style{background-color:#fff}.s1_ic_style{background-color:#efefef}.s1_i_style{border-color:#e5e5e5}.s1_i_style:hover{background-color:#f0f2f5}.s1_if_style{color:#333}.s1_if_style .iconfont{color:#00ab6d}.s1_if_style,.s1_if_style:hover{background-color:#efefef}.s1_i_shrink_style{border-color:#e5e5e5}.s1_i_shrink_style:hover,.s1_if_shrink_style{color:#000;background-color:#e5e7e8}.s1_if_shrink_style .iconfont{color:#00ab6d}.s1_if_shrink_style:hover{color:#000;background-color:#e5e7e8}.s2_style{border-right:1px solid #d9d9d9;-webkit-box-shadow:2px 0 5px rgba(0,0,0,.02);box-shadow:2px 0 5px rgba(0,0,0,.02)}.s2_c_style,.s2_style{background-color:#efefef}.s2_c_shrink_style{background-color:#fff}.s2_i_style:hover{background-color:#f0f2f5}.s2_i_shrink_style:hover{background-color:#f3f3f3}.s2_iaf_style{color:#000;border-right-color:#e5e7e8}.s2_iaf_style,.s2_iaf_style:hover{background-color:#e5e7e8}.s_id_style,.s_id_style:hover{background-color:#efefef;color:#999}.n0_style{background-color:#fff;border-color:#d9d9d9}.n_sbtn_style,.n_space_d_style{background-color:#fff;color:#333}.n_sbtn_style{color:#555}.n_space_d_style:hover .n_sbtn_style{border-color:#1e88e5;color:#1e88e5}.n_dv_c,.n_sbtn_style{border-color:#d9d9d9}.n_r_style,login .login-wrap .login-content article li .iconfont{color:#999}.n_ra_style:hover{color:#333}.n_list0_style,.n_list1_style{background-color:#fff}.n_list0_style:hover{background-color:#f8f8f8;border-color:#f8f8f8}.n_list1_style{-webkit-box-shadow:0 10px 15px rgba(0,0,0,.12);box-shadow:0 10px 15px rgba(0,0,0,.12)}.n_list1_i_style:hover{background-color:#f0f0f0}.m_i_tab_style{border-color:#089462;background-color:#fff}.m_nav_item_style{border-bottom-color:transparent}.m_nav_item_style:hover{border-bottom-color:#089462}.m_nav_active_item_style,.m_nav_active_item_style:hover{border-bottom-color:#00ab6d}.m_btn_d,.m_tab_d{background-color:#fff;border-color:#d9d9d9}.m_btn_d:hover{background-color:#fafafa}.m_i_tab_style .m_tab_d:hover,.m_tab_a{background-color:#089462;color:#fff}.m_tab_a{background-color:#00ab6d}.eo_theme_btn_danger .iconfont,.eo_theme_btn_delete .iconfont,.eo_theme_btn_info .iconfont,.eo_theme_btn_orange .iconfont,.eo_theme_btn_success .iconfont,.eo_theme_btn_warning .iconfont{color:rgba(255,255,255,.7)}.eo_theme_btn_default{background-color:#fff;color:#666;border-color:#d9d9d9}.eo_theme_btn_default:hover{background-color:#fff;color:#1e88e5}.eo_theme_btn_default:disabled{color:#999!important;background-color:#eee!important;border-color:#d9d9d9!important}.eo_theme_btn_default:disabled .iconfont,.eo_theme_btn_delete:disabled .iconfont{color:#999!important}.eo_theme_btn_default:hover{border-color:#1e88e5}.eo_theme_btn_delete{background-color:#f2f2f2;color:#a3a3a3}.eo_theme_btn_delete:hover{background-color:#e83333;color:#fff}.eo_theme_btn_delete:disabled{color:#999!important;background-color:#eee!important;border-color:#d9d9d9!important}.btn_static_test_utac:hover+.eo_theme_btn_success{background-color:#00b775}.btn_static_test_utac:hover+.eo_theme_btn_info{background-color:#3aa3ff}.eo_theme_btn_success{background-color:#00ab6d;color:#fff}.eo_theme_btn_success:hover{background-color:#00b775;color:#fff}.eo_theme_btn_success:disabled{color:#999!important;background-color:#eee!important;border-color:#d9d9d9!important}.eo_theme_btn_danger:disabled .iconfont,.eo_theme_btn_info:disabled .iconfont,.eo_theme_btn_orange:disabled .iconfont,.eo_theme_btn_success:disabled .iconfont,.eo_theme_btn_warning:disabled .iconfont{color:#999!important}.eo_theme_btn_success:active{background-color:#008d5a}.eo_theme_btn_info{background-color:#1890ff;color:#fff}.eo_theme_btn_info:hover{background-color:#3aa3ff;color:#fff}.eo_theme_btn_info:disabled{color:#999!important;background-color:#eee!important;border-color:#d9d9d9!important}.eo_theme_btn_info:active{background-color:#137cdd}.eo_theme_btn_orange{background-color:#ff9800;color:#fff}.eo_theme_btn_orange:hover{background-color:#f47c36;color:#fff}.eo_theme_btn_orange:disabled{color:#999!important;background-color:#eee!important;border-color:#d9d9d9!important}.eo_theme_btn_warning{background-color:#ff5722;color:#fff}.eo_theme_btn_warning:hover{background-color:#f44336;color:#fff}.eo_theme_btn_warning:disabled{color:#999!important;background-color:#eee!important;border-color:#d9d9d9!important}.eo_theme_btn_danger{background-color:#e83333;color:#fff}.eo_theme_btn_danger:hover{background-color:#fd5858;color:#fff}.eo_theme_btn_danger:disabled{color:#999!important;background-color:#eee!important;border-color:#d9d9d9!important}.eo_theme_btn_danger:active{background-color:#d52828}.modal-open{top:0;left:0;overflow:hidden}.modal-open .modal{opacity:1}.modal-open .modal-dialog{position:fixed;width:100%;height:100%;z-index:4;overflow:auto;top:0;min-width:1000px}.modal-open .modal:nth-child(2) .modal-dialog{z-index:3}.modal-open .modal:nth-child(3) .modal-dialog{z-index:2}.modal-open .modal:nth-child(n+3) .modal-dialog{z-index:1}.modal-open .error{background-color:#fff1f0;border:1px solid #d85030;-webkit-box-shadow:0 10px 29px #ffcdd2;box-shadow:0 10px 29px #ffcdd2}.modal-open .success{background-color:#f2fae3;border:1px solid #659f13;-webkit-box-shadow:0 10px 29px #c8e6c9;box-shadow:0 10px 29px #c8e6c9}.modal-open .success i,.modal-open .success span{color:#659f13}@-webkit-keyframes sticky-up{0%{-webkit-transform:translateY(-200%);-ms-transform:translateY(-200%);transform:translateY(-200%)}to{-webkit-transform:translateY(0%);-ms-transform:translateY(0%);transform:translateY(0%)}}@keyframes sticky-up{0%{-webkit-transform:translateY(-200%);-ms-transform:translateY(-200%);transform:translateY(-200%)}to{-webkit-transform:translateY(0%);-ms-transform:translateY(0%);transform:translateY(0%)}}@-webkit-keyframes fade{0%{-webkit-transform:scale(.7);-ms-transform:scale(.7);transform:scale(.7);opacity:0}to{-ms-transform:scale(1);-webkit-transform:scale(1);transform:scale(1);opacity:1}}@keyframes fade{0%{opacity:0}to{opacity:1}}@-webkit-keyframes gradient{0%{opacity:0}to{opacity:.5}}@keyframes gradient{0%{opacity:0}to{opacity:.5}}.modal-open .modal-content{height:-webkit-calc(100% - 100px);height:-ms-calc(100% - 100px);height:calc(100% - 100px)}.modal-open .eo_theme_modal_mask{position:fixed;z-index:-1;width:-webkit-calc(100% - 12px);width:-ms-calc(100% - 12px);width:calc(100% - 12px);height:100%;top:0;left:0;-webkit-animation:fade .7s;animation:fade .7s}.modal-open .eo-modal{position:relative;margin:100px auto 20px;-webkit-border-radius:4px;border-radius:4px}.modal-info-display .modal-dialog,.modal-open .common-modal{-webkit-box-shadow:0 10px 30px rgba(0,0,0,.1);box-shadow:0 10px 30px rgba(0,0,0,.1)}.modal-open .common-modal{background:#fff;text-align:left;-webkit-border-radius:5px;border-radius:5px;-webkit-animation:fade .2s;animation:fade .2s}.modal-open .modal-sure article .textarea-li pre{display:block;visibility:hidden}.modal-info-display .modal-dialog{position:fixed;min-width:350px;max-width:500px;text-align:center;-webkit-animation:sticky-up .3s;animation:sticky-up .3s;-webkit-border-radius:3px;border-radius:3px;height:auto;top:0;margin-top:75px;left:-webkit-calc(50% - 250px);left:-ms-calc(50% - 250px);left:calc(50% - 250px)}.modal-info-display .modal-info p{text-align:justify;line-height:1.75em;padding:10px}.modal-info-display .modal-info p .iconfont{font-size:18px;margin-right:10px}auto-complete-component{position:relative;width:100%}auto-complete-component .iconfont{position:absolute;right:5px;top:3px}auto-complete-component .eo-input{width:100%}auto-complete-component .active_item_acac{background-color:#fafafa}auto-complete-component .container_acac{display:inline-table;width:100%}auto-complete-component .list_container_acac{position:absolute;z-index:1;height:100px;background-color:#fff;border:1px solid #d9d9d9;overflow-y:scroll;line-height:20px;text-indent:10px;font-size:12px;margin-top:1px;width:100%}auto-complete-component .item_acac:hover{background-color:#f5f5f5}auto-complete-component input[type=text]:disabled+.icon-xuanzeqizhankai{display:none}list-block-common-component .disable-tbody-div{cursor:not-allowed;opacity:.5}list-block-common-component>.container-div{border-top:1px solid #d9d9d9;border-bottom:1px solid #d9d9d9}list-block-common-component .hover-tr-lbcc{cursor:pointer}list-block-common-component .hover-tr-lbcc:hover{background-color:#fafafa}list-block-common-component .tr-tbd:hover{background-color:#f2f2f2}list-block-common-component select-default-common-component .container-div{width:-webkit-calc(100% - 2px);width:-ms-calc(100% - 2px);width:calc(100% - 2px)}list-block-common-component select-default-common-component .text-p{border-color:transparent}list-block-common-component .desc-cth{line-height:27px;display:inline-block;margin-left:5px}list-block-common-component .eo-checkbox{margin:auto}list-block-common-component .eo-input,list-block-common-component input[type=text]{width:100%;border-color:transparent}list-block-common-component .eo-input:read-only,list-block-common-component input[type=text]:read-only{-webkit-box-shadow:none;box-shadow:none;text-indent:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}list-block-common-component .sort-handle-td,list-block-common-component .sort-handle-th{width:55px;text-align:center}list-block-common-component .sort-handle-td{padding-top:7px}list-block-common-component .sort-handle-td span{width:23px;height:23px;line-height:25px;-webkit-border-radius:3px;border-radius:3px;background-color:#f2f2f2;color:#999;display:inline-block;text-align:center;border:1px solid #d9d9d9;cursor:move}list-block-common-component .thead-div,list-block-common-component .tr-tbd{display:table;width:100%;height:38px;table-layout:fixed}list-block-common-component .thead-div>div,list-block-common-component .tr-tbd>div{display:table-cell}list-block-common-component .thead-div>div:nth-last-child(n+2),list-block-common-component .tr-tbd>div:nth-last-child(n+2){border-right:1px solid #d9d9d9}list-block-common-component .text-td-tbd,list-block-common-component .thead-div>div{vertical-align:middle}list-block-common-component .va-top-td-tbd{vertical-align:top;padding-top:4px}list-block-common-component .depth-td-tbd,list-block-common-component .text-td-tbd,list-block-common-component .thead-div>div{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}list-block-common-component .text-td-tbd .depth-td-tbd{line-height:38px}list-block-common-component .depth-td-tbd{position:relative;height:100%}list-block-common-component .depth-td-tdb{white-space:nowrap;padding-top:0!important}list-block-common-component .depth-td-tdb input[type=text]{margin-top:4px}list-block-common-component .checkbox-td,list-block-common-component .checkbox-th{width:30px;padding-left:5px;padding-right:5px}list-block-common-component .checkbox-td{padding-top:9px!important}list-block-common-component .block_cth{display:block}list-block-common-component .inline_cth{display:inline-block}list-block-common-component .thead-div{background-color:#f4f4f4;font-weight:700}list-block-common-component .sv-group-helper{background-color:rgba(221,221,221,.3)}list-block-common-component .sv-group-helper .tr-tbd{border-top:none;background-color:transparent}list-block-common-component .sv-group-helper .divide-td-tbd{visibility:hidden}list-block-common-component .btn-shrink{text-align:center;font-size:24px;border:none;background-color:transparent;line-height:38px;margin-left:-5px;position:absolute;left:0}list-block-common-component .btn-shrink:hover{color:#1890ff}list-block-common-component .placeholder-td-tbd{display:inline-block;width:15px}list-block-common-component .divide-td-tbd{border-left:1px solid #d9d9d9;position:absolute;height:100%;margin-left:-3px}list-block-common-component .first-divide-td-tbd{top:10px;display:none}list-block-common-component .operate-td-tbd{padding-top:10px!important}list-block-common-component .operate-td-tbd>div>button:nth-last-child(n+2){padding-right:10px;border-right:1px solid #d9d9d9}list-block-common-component .readonly-tbody-div select-default-common-component .disabled-text-p{border:none;background-color:#fff;color:#333;padding-left:0}list-block-common-component .readonly-tbody-div select-default-common-component .text-p{cursor:default}list-block-common-component .readonly-tbody-div input{border:none}list-block-common-component .file-div{position:relative}list-block-common-component .file-div .file-input{position:absolute;right:5px;-webkit-border-radius:3px;border-radius:3px;line-height:25px;height:23px;border:none;top:4.5px;width:65px;z-index:1;opacity:0;cursor:pointer}list-block-common-component .file-div .file-input:hover+.file-btn-lbt,list-block-common-component .float-btngroup-tbd .float-btn-lbt:hover{background-color:#3faeff}list-block-common-component .file-div .file-btn-lbt{position:absolute;right:5px;width:65px;top:3.5px}list-block-common-component .disabled-tr-lbcc{background-color:#fafafa;color:#999;cursor:not-allowed}list-block-common-component .file-btn-lbt,list-block-common-component .float-btn-lbt{-webkit-border-radius:3px;border-radius:3px;line-height:25px;height:23px;border:none;font-size:12px;background-color:#2196f3;color:#fff}list-block-common-component .float-btngroup-tbd{position:absolute;top:8px;display:none}list-block-common-component .float-btngroup-tbd .float-btn-lbt{padding:0 10px}list-block-common-component .float-btngroup-tbd .float-btn-lbt:nth-child(n+2){margin-left:5px}list-block-common-component .acp-and-file-tbd,list-block-common-component .acp-tbd,list-block-common-component .depth-td-tdb,list-block-common-component .input-tbd{position:relative}list-block-common-component .acp-and-file-tbd:focus-within .float-btngroup-tbd,list-block-common-component .acp-and-file-tbd:hover .float-btngroup-tbd,list-block-common-component .acp-tbd:focus-within .float-btngroup-tbd,list-block-common-component .acp-tbd:hover .float-btngroup-tbd,list-block-common-component .depth-td-tdb:focus-within .float-btngroup-tbd,list-block-common-component .depth-td-tdb:hover .float-btngroup-tbd,list-block-common-component .input-tbd:focus-within .float-btngroup-tbd,list-block-common-component .input-tbd:hover .float-btngroup-tbd,list-block-common-component .more-btn-container:focus-within .more-div-btngroup-tbd{display:block}list-block-common-component .float-btngroup-acp-tbd{right:25px}list-block-common-component .float-btngroup-input-tbd{right:10px}list-block-common-component .more-btn-container{position:relative}list-block-common-component .disable-checkbox{cursor:not-allowed;color:#999;background-color:#fafafa}list-block-common-component .more-div-btngroup-tbd{background-color:#fff;-webkit-box-shadow:0 10px 15px rgba(0,0,0,.12);box-shadow:0 10px 15px rgba(0,0,0,.12);position:absolute;border-style:solid;border-width:1px;-webkit-border-radius:3px;border-radius:3px;right:0;z-index:2;border-color:#d9d9d9;display:none;margin-top:5px;cursor:pointer}list-block-common-component .more-div-btngroup-tbd button{height:35px;line-height:35px;padding:0 15px;text-align:left;color:#555;word-break:keep-all;display:block}list-block-common-component .more-div-btngroup-tbd button:hover{background-color:#eee;color:#607d8b;text-decoration:underline}list-block-common-component .more-btn:focus+.more-div-btngroup-tbd{display:block}list-block-common-component .tfooter-div{background-color:#f4f4f4;padding:0 15px;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:end;-webkit-justify-content:flex-end;-ms-flex-pack:end;justify-content:flex-end;-webkit-box-shadow:0 4px 6px 0 rgba(31,31,31,.05);box-shadow:0 4px 6px 0 rgba(31,31,31,.05);height:60px;line-height:60px;border-top:1px solid #d9d9d9;text-align:center;position:relative}list-block-common-component .tfooter-div>div{position:absolute;left:20px}list-block-common-component .tfooter-div,list-block-common-component .tfooter-div .pagination{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center}list-block-common-component .tfooter-div .pagination .first-page,list-block-common-component .tfooter-div .pagination .last-page{-webkit-border-radius:3px;border-radius:3px}list-block-common-component .tfooter-div .pagination>.active,list-block-common-component .tfooter-div .pagination>.active:focus,list-block-common-component .tfooter-div .pagination>.active:hover{background-color:#333}list-block-common-component .tfooter-div .pagination-next .iconfont,list-block-common-component .tfooter-div .pagination-prev .iconfont{font-weight:700}list-block-common-component .tfooter-div .pagination-prev{margin-right:15px}list-block-common-component .tfooter-div .pagination-next{margin-left:15px}list-block-common-component .tfooter-div .pagination-page{width:25px;height:25px;line-height:25px;-webkit-border-radius:3px;border-radius:3px;margin-right:5px}@-webkit-keyframes load{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes load{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}loading-Part-Common-Component .loading-content{z-index:10}loading-Part-Common-Component .loading-content .loading{padding:10px;-webkit-border-radius:3px;border-radius:3px}loading-Part-Common-Component .loading-content .loading li{height:50px;line-height:50px;text-align:center;color:#999}loading-Part-Common-Component .loading-content .loading li .iconfont{font-size:18px;color:#999}loading-Part-Common-Component .loading-content .loading li div,loading-common-component .loading-content .loading li div{-webkit-animation:load 1.7s infinite ease;animation:load 1.7s infinite ease;display:inline-block;margin-right:10px}menu-Default-Common-Component .common_menu_ul{padding:0 10px;background-color:#fff;width:100%;height:50px;line-height:50px;margin-top:15px;-webkit-border-radius:0 3px 0 0;border-radius:0 3px 0 0;border-right:1px solid #d9d9d9;border-top:1px solid #d9d9d9;border-left:1px solid #d9d9d9}menu-Default-Common-Component .common_menu_ul .menu-title{float:left}menu-Default-Common-Component .common_menu_ul .eo_more_btn:focus+.wrap_div_mcc,menu-Default-Common-Component .common_menu_ul .more-btn-box .more-btn-right:focus+.more-btn-div{display:block}menu-Default-Common-Component .common_menu_ul .wrap_div_mcc{z-index:4;color:#333;-webkit-box-shadow:0 10px 15px rgba(0,0,0,.12);box-shadow:0 10px 15px rgba(0,0,0,.12);min-width:200px;line-height:30px;border:1px solid #d9d9d9;background-color:#fff;font-size:12px;display:none;right:-11px}menu-Default-Common-Component .common_menu_ul .wrap_div_mcc .checkbox-td,menu-Default-Common-Component .common_menu_ul .wrap_div_mcc .checkbox-th{border-right:none}menu-Default-Common-Component .common_menu_ul .wrap_div_mcc .tbody-div{max-height:200px;overflow:auto}menu-Default-Common-Component .common_menu_ul .wrap_div_mcc .thead-div,menu-Default-Common-Component .common_menu_ul .wrap_div_mcc .tr-tbd{height:30px}menu-Default-Common-Component .common_menu_ul .wrap_div_mcc .checkbox-td{padding-top:7px!important}menu-Default-Common-Component .common_menu_ul .wrap_div_mcc:hover{display:block}menu-Default-Common-Component .common_menu_ul .common-btn-list .common-btn{margin-left:15px}menu-Default-Common-Component .common_menu_ul .common-btn-list-first .common-btn:first-child{margin-left:0}menu-Default-Common-Component .common_menu_ul .common-btn{height:32px;line-height:32px;display:inline-block;text-align:center;vertical-align:middle}menu-Default-Common-Component .common_menu_ul .common-btn .iconfont{font-size:24px;margin-right:5px}menu-Default-Common-Component .common_menu_ul .common-btn:hover{color:#2196f3}menu-Default-Common-Component .common_menu_ul .common-btn:hover .disabled-tip{display:block}menu-Default-Common-Component .common_menu_ul .common-btn:disabled,menu-Default-Common-Component .common_menu_ul .common-btn:disabled .iconfont{color:#999;cursor:not-allowed}menu-Default-Common-Component .common_menu_ul .block-btn .iconfont{margin-right:0}menu-Default-Common-Component .common_menu_ul .block-btn:hover{color:#fff}menu-Default-Common-Component .common_menu_ul .block-btn:disabled{background-color:#fafafa;color:#999;border:1px solid #ddd}menu-Default-Common-Component .common_menu_ul .more-btn-box{position:relative}menu-Default-Common-Component .common_menu_ul .more-btn-box .more-btn-left{-webkit-border-radius:3px 0 0 3px;border-radius:3px 0 0 3px}menu-Default-Common-Component .common_menu_ul .more-btn-box .more-btn-right{border-left:1px solid rgba(0,0,0,.1);-webkit-border-radius:0 3px 3px 0;border-radius:0 3px 3px 0;padding:0 5px}menu-Default-Common-Component .common_menu_ul .more-btn-box .more-btn-div{position:absolute;right:0;z-index:2;display:none;margin-top:-1px}menu-Default-Common-Component .common_menu_ul .more-btn-box .more-btn-div .more-btn-list{background-color:#fff;border:1px solid #d9d9d9;-webkit-border-radius:3px;border-radius:3px}menu-Default-Common-Component .common_menu_ul .fun-list-li .list_function_wrap .nav-function li,menu-Default-Common-Component .common_menu_ul .more-btn-box .more-btn-div .more-btn-list li{height:35px;line-height:35px;cursor:pointer;text-align:left;min-width:60px;padding:0 10px;white-space:nowrap}menu-Default-Common-Component .common_menu_ul .more-btn-box .more-btn-div .more-btn-list li:active,menu-Default-Common-Component .common_menu_ul .more-btn-box .more-btn-div .more-btn-list li:focus,menu-Default-Common-Component .common_menu_ul .more-btn-box .more-btn-div .more-btn-list li:hover{background-color:#fafafa;text-decoration:underline}menu-Default-Common-Component .common_menu_ul .block-btn .iconfont,menu-Default-Common-Component .common_menu_ul .more-btn-left .iconfont,menu-Default-Common-Component .common_menu_ul .more-btn-right .iconfont{font-size:14px}menu-Default-Common-Component .common_menu_ul .default-btn{border-style:solid;border-width:1px;-webkit-border-radius:3px;border-radius:3px}menu-Default-Common-Component .common_menu_ul .fun-list-li{cursor:pointer;text-align:center;margin-left:15px}menu-Default-Common-Component .common_menu_ul .fun-list-li .iconfont{cursor:pointer;font-size:24px}menu-Default-Common-Component .common_menu_ul .fun-list-li:hover{color:#2196f3}menu-Default-Common-Component .common_menu_ul .fun-list-li:hover .list_function_wrap,select-default-common-component{display:block}menu-Default-Common-Component .common_menu_ul .fun-list-li .disabled-btn,menu-Default-Common-Component .common_menu_ul .fun-list-li .disabled-btn .iconfont{color:#999;cursor:not-allowed}menu-Default-Common-Component .common_menu_ul .fun-list-li .disabled-btn .list_function_wrap{display:none}menu-Default-Common-Component .common_menu_ul .fun-list-li .list_function_wrap{position:absolute;cursor:default;margin-top:-1px;display:none;z-index:4;color:#333;-webkit-box-shadow:0 10px 15px rgba(0,0,0,.12);box-shadow:0 10px 15px rgba(0,0,0,.12)}menu-Default-Common-Component .common_menu_ul .fun-list-li .list_function_wrap .nav-function{background-color:#fff;border:1px solid #d9d9d9;-webkit-border-radius:3px;border-radius:3px}menu-Default-Common-Component .common_menu_ul .fun-list-li .list_function_wrap .nav-function li:active,menu-Default-Common-Component .common_menu_ul .fun-list-li .list_function_wrap .nav-function li:focus,menu-Default-Common-Component .common_menu_ul .fun-list-li .list_function_wrap .nav-function li:hover{background-color:#fafafa}menu-Default-Common-Component .common_menu_ul .fun-list-li .list_function_wrap .nav-function .strong-li{font-weight:700;color:#2196f3}menu-Default-Common-Component .common_menu_ul .batch_cancel_ldcc+.fun-list-li{margin-left:0}menu-Default-Common-Component .common_menu_ul .combo_box_mdcc{line-height:51px}menu-Default-Common-Component .common_menu_ul .vertical_divide_line_mdcc{color:#d9d9d9}menu-Default-Common-Component .common_menu_ul .divide-span{border-right:1px solid #d9d9d9;margin-left:15px}menu-Default-Common-Component .common_menu_ul .elem-active{cursor:default}menu-Default-Common-Component .common_menu_ul .menu-li{border-style:solid;border-width:1px;-webkit-border-radius:3px;border-radius:3px;overflow:hidden;margin-right:5px}menu-Default-Common-Component .common_menu_ul .menu-li a{padding:0 20px;height:30px;line-height:30px;display:inline-block}menu-Default-Common-Component .common_menu_ul .first-menu-li{margin-left:5px}menu-Default-Common-Component .common_menu_ul .menu-navigation{position:absolute;bottom:0}menu-Default-Common-Component .common_menu_ul .menu-navigation li{cursor:pointer;height:40px;line-height:40px;padding:0 15px;text-align:center;margin-right:2px;border-bottom-style:solid;border-bottom-width:3px}menu-Default-Common-Component .common_menu_ul .search-form{height:50px;line-height:50px;z-index:2;right:0}menu-Default-Common-Component .common_menu_ul .search-tips{color:#9e9e9e;background-color:#ededed;height:30px;line-height:30px;border:1px solid #d9d9d9;padding:0 10px;-webkit-border-radius:3px 0 0 3px;border-radius:3px 0 0 3px;cursor:default}menu-Default-Common-Component .common_menu_ul .search-div{height:28px;line-height:28px;width:100px;border:1px solid #d9d9d9;background-color:#fff;-webkit-border-radius:3px;border-radius:3px;-webkit-transition:width .3s linear 0s;transition:width .3s linear 0s;overflow:hidden;white-space:nowrap}menu-Default-Common-Component .common_menu_ul .search-div .search-input{width:-webkit-calc(100% - 30px);width:calc(100% - 30px);height:100%;border:none}menu-Default-Common-Component .common_menu_ul .search-div .search-tap-box{-webkit-border-radius:3px;border-radius:3px;left:25px;background-color:#eee;height:20px;line-height:20px}menu-Default-Common-Component .common_menu_ul .search-div .search-text{border-right:1px solid #d9d9d9;padding:0 5px;max-width:130px;text-overflow:ellipsis;-webkit-transition:max-width .1s linear 0s;transition:max-width .1s linear 0s;overflow:hidden}menu-Default-Common-Component .common_menu_ul .search-div .search-tap .iconfont:hover{color:#e83333}menu-Default-Common-Component .common_menu_ul .search-input-width-200{width:200px}menu-Default-Common-Component .common_menu_ul .search-div-advanced .advanced-btn{display:none;height:20px;line-height:20px;min-width:24px}menu-Default-Common-Component .common_menu_ul .search-div-advanced:focus .search-input,menu-Default-Common-Component .common_menu_ul .search-div-advanced:hover .search-input{width:-webkit-calc(100% - 75px);width:calc(100% - 75px)}menu-Default-Common-Component .common_menu_ul .search-div-advanced:focus .search-text,menu-Default-Common-Component .common_menu_ul .search-div-advanced:hover .search-text{max-width:75px}menu-Default-Common-Component .common_menu_ul .search-div-advanced:focus .advanced-btn,menu-Default-Common-Component .common_menu_ul .search-div-advanced:hover .advanced-btn{display:initial}menu-Default-Common-Component .common_menu_ul .menu-ml15{margin-left:15px}menu-Default-Common-Component .common_menu_ul .menu-ml10{margin-left:10px}menu-Default-Common-Component .common_menu_ul .menu-mr15{margin-right:15px}menu-Default-Common-Component .common_menu_ul .menu-mr10{margin-right:10px}menu-Default-Common-Component .common_menu_ul .menu-mr5{margin-right:5px}gpedit-inside-auth .common-table .required-td label,menu-Default-Common-Component .common_menu_ul .menu-mr0{margin-right:0}menu-Default-Common-Component .common_menu_ul .menu-ml0{margin-left:0}menu-Default-Common-Component .common-menu-lg{padding:20px;height:auto;line-height:initial;width:-webkit-calc(100% - 276px);width:calc(100% - 276px)}menu-Default-Common-Component .common-menu-lg .menu-title{float:none;margin-bottom:15px}menu-Default-Common-Component .common-menu-lg .vertical_divide_line_mdcc{line-height:32px}menu-Default-Common-Component .can-operate-placeholder{height:112px}menu-Default-Common-Component .can-operate-has-second-title-placeholder{height:160px}menu-Default-Common-Component .disabled-operate-placeholder{height:83px}menu-Default-Common-Component .disabled-operate-has-second-title-placeholder{height:123px}menu-Default-Common-Component .common-menu-md{height:105px}menu-Default-Common-Component .common-menu-fixed-seperate{margin:0;background-color:#fff;border-top:none;border-left:none;border-bottom:1px solid #d9d9d9;position:fixed;z-index:5;-webkit-box-shadow:0 0 10px rgba(0,0,0,.1);box-shadow:0 0 10px rgba(0,0,0,.1)}menu-Default-Common-Component .common-menu-only-navigation{height:50px;line-height:50px}menu-Default-Common-Component .divide-li{line-height:60px}menu-Default-Common-Component .tsc_ul{margin-top:10px}menu-Default-Common-Component .view-btn-li{margin-left:5px}menu-Default-Common-Component .view-btn-li>ul{-webkit-border-radius:3px;border-radius:3px;overflow:hidden}menu-Default-Common-Component .view-btn-li>ul .view-common-btn{cursor:pointer;height:30px;line-height:30px;text-align:center;padding:0 10px;border-style:solid;border-width:1px}menu-Default-Common-Component .view-btn-li>ul .view-common-btn+.view-common-btn{margin-left:0;border-left-style:none}.gateway-modal-copy-api tip-directive,menu-Default-Common-Component .un-margin-left{margin-left:0}menu-Default-Common-Component .disabled-tip{position:absolute;margin-top:-69px;z-index:10;display:none}menu-Default-Common-Component .disabled-tip .tip-div{padding:10px;line-height:initial;-webkit-border-radius:3px;border-radius:3px;background-color:#000;color:#fff;font-size:12px;text-align:left;max-width:500px;min-width:200px}menu-Default-Common-Component .disabled-tip .arrow-div{border-color:#000 transparent transparent transparent;border-width:5px 5px 0;border-style:solid;width:0;margin-left:8px}.shrink-div .common-menu-fixed-seperate{width:-webkit-calc(100% - 66px);width:calc(100% - 66px)}.shrink-div .common-menu-lg{width:-webkit-calc(100% - 86px);width:calc(100% - 86px)}menu-radio-common-component span{display:inline-block;line-height:30px}menu-radio-common-component button:disabled{cursor:not-allowed}progress-bar-common-component .container_pbcc{width:-webkit-fit-content;width:-moz-fit-content;width:fit-content;-webkit-border-radius:3px;border-radius:3px;overflow:hidden;background-color:#00ab6d;color:#fff}progress-bar-common-component .item_btn_pbcc{height:30px}progress-bar-common-component .active_item_btn_pbcc~button{background-color:#ccc;color:#333}progress-bar-common-component .active_item_btn_pbcc~button:hover{background-color:#ddd}select-default-common-component .container-div{width:-webkit-calc(100% - 2px);width:-ms-calc(100% - 2px);width:calc(100% - 2px);display:block;position:relative;color:#333}select-default-common-component .container-div:hover .preview-text-p{border-color:#999;-webkit-transition:all .2s cubic-bezier(.645,.045,.355,1);transition:all .2s cubic-bezier(.645,.045,.355,1)}select-default-common-component .search-p{background-color:#f8f8f8;height:40px;padding:0 10px;line-height:42px}select-default-common-component .search-p input[type=text]{border:none;background:0 0;height:40px;width:100%}select-default-common-component .search-p .iconfont{font-size:16px;padding-right:5px}select-default-common-component .search-p button{height:28px;line-height:28px;padding:0 10px;margin-top:6px;font-size:12px;width:60px}select-default-common-component .container-focus .list-container-div{display:block}select-default-common-component .container-div:focus-within .list-container-div{display:block}select-default-common-component .input-text:focus+.list-container-div{display:block}select-default-common-component .preview-text-p span:first-child{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block}select-default-common-component .sd_check_box{border:1px solid #d9d9d9;height:15px;line-height:15px;-webkit-border-radius:3px;border-radius:3px;margin-right:10px;width:15px;text-align:center}select-default-common-component .arrow-span{position:absolute;right:5px;top:0}select-default-common-component .container-div:focus-within .preview-text-p{border-color:#089462}select-default-common-component .opacity-text-input{position:absolute;opacity:0;z-index:1;top:0}select-default-common-component .opacity-text-input:focus{z-index:-1}select-default-common-component .opacity-text-input:disabled{cursor:not-allowed}select-default-common-component .icon-guanbi{border:none;background-color:transparent;position:relative;z-index:1;top:-32px;height:0;line-height:35px;margin-right:5px}select-default-common-component .hide-node{z-index:-1}select-default-common-component .text-p{border:1px solid #d9d9d9;background-color:#fff;-webkit-border-radius:3px;border-radius:3px;color:#333;height:28px;line-height:30px;padding:0 5px;width:-webkit-calc(100% - 10px);width:-ms-calc(100% - 10px);width:calc(100% - 10px);cursor:pointer;font-size:12px;overflow:hidden}select-default-common-component .disabled_preview_text_p{color:#999;background-color:#fafafa}select-default-common-component .list-container-div{-webkit-border-radius:3px;border-radius:3px;background-color:#fff;border:1px solid #d9d9d9;width:100%;min-width:-webkit-max-content;min-width:-moz-max-content;min-width:max-content;margin-top:2px;font-size:12px;position:absolute;-webkit-box-shadow:0 10px 15px rgba(0,0,0,.12);box-shadow:0 10px 15px rgba(0,0,0,.12);z-index:2;display:none}select-default-common-component .query-container-child-div{max-height:210px;overflow:auto}select-default-common-component .common-class-item{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer}.modal-open .common-modal-import article .modal-import-info .modal-btn-group-ul li:hover,select-default-common-component .common-class-item:hover,select-default-common-component .select-active-item{background-color:#fafafa}select-default-common-component .common-class-item,select-default-common-component .un-search-response-p{height:35px;line-height:35px;padding:0 10px}tip-directive{display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;height:20px;line-height:20px;margin-left:5px}tip-directive .iconfont{color:rgba(0,0,0,.5);cursor:help;display:inline-block;font-weight:initial}tip-directive:hover .tips-message{visibility:visible}.move-tip-directive{position:fixed;z-index:100;visibility:hidden}.move-tip-directive .message-li{padding:10px;line-height:initial;-webkit-border-radius:3px;border-radius:3px;background-color:#000;color:#fff;font-size:12px;text-align:left;max-width:500px;min-width:150px}.move-tip-directive .message-li *{color:#fff}.move-tip-directive .arrow-li{border-color:#000 transparent transparent transparent;border-width:5px 5px 0;border-style:solid;width:0;margin-left:8px}.account-setting-common-scss{display:block;padding:15px}.account-setting-common-scss article{background:#fff;border:1px solid #e5e5e5;-webkit-border-radius:3px;border-radius:3px;font-size:14px}.account-setting-common-scss article .disabled-btn{cursor:not-allowed}.account-setting-common-scss article .title-p{border-bottom:1px solid #e5e5e5;padding-bottom:10px}.account-setting-common-scss article .warning-span{color:red;margin-left:5px;font-size:13px}.account-setting-common-scss article .open-alert-btn{display:inline-block;text-align:center;margin-left:10px;font-size:20px;padding:0;min-width:auto}.account-setting-common-scss article .icon-huadongkaiguan-dakai{color:#00ab6d}.account-setting-common-scss article .btn-group-li{margin-top:30px}.account-setting-common-scss article .btn-group-li button,.account-setting-common-scss article .btn-group-li input[type=button]{min-width:60px;padding:0 10px}.account-setting-common-scss article .btn-group-li button:disabled,.account-setting-common-scss article .btn-group-li button:disabled:hover,.account-setting-common-scss article .btn-group-li input[type=button]:disabled,.account-setting-common-scss article .btn-group-li input[type=button]:disabled:hover{background-color:#b7b7b7;color:#fff;border-color:#b7b7b7;cursor:not-allowed}.account-setting-common-scss article .btn-group-li button,home .home-content .home-div .home-header li button span{margin-right:5px}.account-setting-common-scss article .btn-group-li .list-div{display:inline-grid}.account-setting-common-scss article .btn-group-li .list-div p{line-height:40px}.account-setting-common-scss article .btn-group-li .list-div button{width:80px}.account-setting-common-scss article:nth-child(n+2){margin-top:10px}.account-setting-common-scss article .tips-span{color:#999;font-size:13px;margin-left:10px;display:inline-block}.account-setting-common-scss article input[type=text]:disabled,.account-setting-common-scss article select:disabled{background-color:#fafafa;cursor:not-allowed}.account-setting-common-scss article .icon-shanchu{width:25px;height:25px;line-height:25px;-webkit-border-radius:3px;border-radius:3px;background-color:#f2f2f2;color:#9e9e9e;display:inline-block;text-align:center;border:1px solid #ddd;margin-left:10px}.account-setting-common-scss article .icon-shanchu:hover{background-color:#e83333;color:#fff;border:1px solid #d03333}.account-setting-common-scss article tr:nth-child(n+2) td{padding-top:10px}.common-scss-group{width:240px;position:fixed;left:initial;z-index:3;height:-webkit-calc(100% - 79px);height:-ms-calc(100% - 79px);height:calc(100% - 79px)}.common-scss-group .title-ul{height:50px;line-height:50px;padding:0 10px;background-color:#fff;-webkit-border-radius:3px 0 0 0;border-radius:3px 0 0 0;border-bottom:1px solid #d9d9d9}.common-scss-group .title-ul .common-btn{height:32px;line-height:32px;font-size:13px;display:inline-block;vertical-align:middle}.common-scss-group .title-ul .default-btn{border-style:solid;border-width:1px;margin-left:5px;-webkit-border-radius:3px;border-radius:3px}.common-scss-group .group-ul{-webkit-border-radius:3px 0 0 3px;border-radius:3px 0 0 3px;height:-webkit-calc(100% - 51px);height:-ms-calc(100% - 51px);height:calc(100% - 51px);position:absolute;width:100%;overflow-y:auto;overflow-x:hidden}.common-scss-group .group-li{overflow:hidden;font-size:12px;height:40px;line-height:40px;padding-left:10px;cursor:pointer}.common-scss-group .group-li .group-name{max-width:-webkit-calc(100% - 62px);max-width:calc(100% - 62px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer}.common-scss-group .group-li .active{display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;float:right}.common-scss-group .group-li .icon-iosgengduo{display:inline-block;padding-right:10px}.common-scss-group .group-li .iconfont{float:left;margin-right:5px;cursor:pointer;line-height:41px;font-size:18px}.common-scss-group .group-li .group-function{position:absolute;right:10px;border-style:solid;border-width:1px;-webkit-border-radius:3px;border-radius:3px;z-index:2}.common-scss-group .group-li .group-function li{font-weight:initial;cursor:pointer;padding:0 20px}home>div{min-width:1000px}home .home-content .home-div{margin:51px 0 0 241px}home .home-content .home-div .home-header li button{width:100px;height:30px;line-height:30px;margin-top:15px}home .shrink-div .home-content .home-div{margin-left:51px}home .home-common-only-list-div{padding:0 15px 15px}home .home-common-project-list .common_scss_list{margin:15px}home .home-common-project-list .common-menu-fixed-seperate{-webkit-box-shadow:0 0 10px rgba(0,0,0,.1);box-shadow:0 0 10px rgba(0,0,0,.1);border-bottom:none}balance-list menu-Default-Common-Component .common_menu_ul .search-form,balance-service menu-Default-Common-Component .common_menu_ul .search-form,plugin-Default menu-Default-Common-Component .common_menu_ul .search-form{position:absolute;right:20px;bottom:20px;height:auto}.checkbox-btn{text-align:center;-webkit-border-radius:3px;border-radius:3px;border:1px solid #bcdffb;background-color:#e3f7ff;color:#1e88e5;padding:0 5px;height:30px;line-height:30px;font-size:12px}.checkbox-btn .eo-checkbox{margin:6px 5px 0 0;height:15px;line-height:15px;width:15px;border-color:#1e88e5}.home-common-has-group-div{margin:0 0 0 256px}.input-icon-span{position:absolute;display:inline-block;line-height:38px;margin:1px;text-indent:15px}.display-container-div{display:table;background-color:#f7f8fc;position:absolute;width:100%;top:0;left:0;height:100%;z-index:-1}.menu-divide-span{line-height:34px;margin-top:-4px;float:left;color:#999;font-weight:lighter}@keyframes load{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}loading-common-component .loading-content{top:109px;left:-webkit-calc(50% - 176px);left:-ms-calc(50% - 176px);left:calc(50% - 176px);position:fixed;z-index:10}loading-common-component .loading-content .loading{min-width:350px;max-width:500px;-webkit-border-radius:3px;border-radius:3px;background-color:#fff;border:1px solid #e5e5e5;-webkit-box-shadow:0 10px 29px #ccc;box-shadow:0 10px 29px #ccc}loading-common-component .loading-content .loading i,loading-common-component .loading-content .loading span{color:#e5e5e5}loading-common-component .loading-content .loading li{height:50px;line-height:50px;text-align:center;color:#555;font-size:14px}loading-common-component .loading-content .loading li .iconfont{color:#555;font-size:14px}tip-common-component .tips-ul{padding:0 10px;min-height:32px;line-height:34px;border:1px solid;-webkit-border-radius:3px;border-radius:3px;width:-webkit-calc(100% - 20px);width:-ms-calc(100% - 20px);width:calc(100% - 20px)}tip-common-component .tips-ul li{font-size:12px}tip-common-component .tips-ul .title-li{font-weight:700}tip-common-component .tips-ul>.content-li{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}tip-common-component .warning-ul{background-color:#fdefdd;border-color:#f57705}sidebar-common-component .footer_sidebar_cc{position:absolute;bottom:0;left:0;height:40px;line-height:41px;background-color:#f2f2f2;border-top:1px solid #d9d9d9;text-indent:12px;width:100%;overflow:hidden}sidebar-common-component .footer_sidebar_cc:hover{background-color:#f0f2f5}sidebar-common-component .footer_sidebar_cc:hover .iconfont,sidebar-common-component .shrink_footer_sidebar_cc .iconfont{color:#00b775}sidebar-common-component .text_footer_sidebar_cc{white-space:nowrap}sidebar-common-component .shrink_footer_sidebar_cc .text_footer_sidebar_cc{display:none}sidebar-common-component>div{height:100%;width:50px;color:#444}sidebar-common-component .tip_scc{float:left;line-height:50px}sidebar-common-component .tip_scc .iconfont{font-size:20px}sidebar-common-component .tip_scc .eo-tip-container{margin-top:-26px!important}sidebar-common-component .eo-sidebar{width:240px;position:fixed;top:0;left:0;z-index:10;border-right-style:solid;border-right-width:1px;-webkit-transition:all .3s cubic-bezier(0,0,.2,1);transition:all .3s cubic-bezier(0,0,.2,1)}sidebar-common-component .common-sidebar{height:-webkit-calc(100% - 91px);height:calc(100% - 91px);overflow:hidden}sidebar-common-component .common-sidebar .item-container-ul{height:100%}sidebar-common-component .divide-li{border-top-style:solid;border-top-width:1px}sidebar-common-component .divide-solid-bottom-li{border-bottom-style:solid;border-bottom-width:1px}sidebar-common-component .divide-solid-top-li{border-top-style:solid;border-top-width:1px}sidebar-common-component .default-div .item-container-ul{overflow-y:auto}sidebar-common-component .default-div .group-name1{margin-left:35px}sidebar-common-component .inside-sidebar{z-index:7}sidebar-common-component .item-li{height:45px;line-height:45px;overflow:hidden;text-indent:12px;cursor:pointer}sidebar-common-component .item-li .title-icon{font-size:24px;width:35px}sidebar-common-component .logo-li{text-align:left;background-color:#00ab6d;color:#fff}sidebar-common-component .logo-li .img-span{min-width:50px;display:inline-block}sidebar-common-component .logo-li .item-span{width:170px;font-weight:700;font-size:14px;overflow:hidden;white-space:nowrap}sidebar-common-component .disable-menu-li{cursor:default}.common_scss_list .first_level_article th,sidebar-common-component .static-sidebar{overflow:hidden}sidebar-common-component .static-li{height:50px;line-height:50px}sidebar-common-component .static-li .title-icon{margin-right:0;padding-right:15px}sidebar-common-component .parent-router-p{display:none;text-indent:15px;color:#999;line-height:28px}sidebar-common-component .float-s2 .parent-router-p,sidebar-common-component .shrink-sidebar-div .item-container-li:hover .list-item-div1{display:block}sidebar-common-component .had-child-div{margin-top:-50px}sidebar-common-component .had-child-div .parent-router-p{font-size:12px;background-color:#f3f3f3;font-weight:700}sidebar-common-component .un-child-div{margin-top:-45px}sidebar-common-component .un-child-div .float-s2{padding-bottom:0!important;width:-webkit-max-content!important;width:-moz-max-content!important;width:max-content!important;word-break:keep-all;padding-right:15px}sidebar-common-component .un-child-div .parent-router-p{background-color:#fff;line-height:40px;color:#333;font-weight:initial}sidebar-common-component .s1_tip_style{-webkit-border-radius:3px;border-radius:3px;padding:2px 5px;font-size:12px}sidebar-common-component .shrink-sidebar-div .list-item-div1{position:absolute;margin-left:50px;display:none}sidebar-common-component .shrink-sidebar-div .list-item-div1 div{margin-left:5px;width:180px;-webkit-border-radius:3px;border-radius:3px;overflow:hidden;-webkit-box-shadow:0 4px 6px 0 rgba(31,31,31,.05),0 0 2px 0 rgba(31,31,31,.2);box-shadow:0 4px 6px 0 rgba(31,31,31,.05),0 0 2px 0 rgba(31,31,31,.2);padding-bottom:5px}sidebar-common-component .shrink-sidebar-div .list-item-div1 div .item-li{height:40px;line-height:40px}sidebar-common-component .shrink-sidebar-div .list-item-div1 div .item-li:nth-child(n+2){margin-top:5px}.shrink-div sidebar-common-component .eo-sidebar{width:50px}overview-Product-Component .first-box{background-color:#fff;padding:40px;-webkit-box-shadow:0 0 10px rgba(0,0,0,.1);box-shadow:0 0 10px rgba(0,0,0,.1)}overview-Product-Component .productInfo-box{padding-top:30px}.gateway-modal-cluster .auth-type-p label,overview-Product-Component .btn-edit-project{cursor:pointer}overview-Product-Component .btn-edit-project:hover{color:#2196f3}overview-Product-Component .productInfo-ul{margin-right:140px}overview-Product-Component .productInfo-il{height:30px;line-height:30px}overview-Product-Component .productInfo-name{margin-right:5px}overview-Product-Component .project-operate{margin-top:30px;margin-bottom:-30px;padding-top:30px;border-top:1px solid #d9d9d9;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap}overview-Product-Component .operate-box{width:300px;height:108px;border:1px solid #d9d9d9;margin-bottom:30px;margin-right:30px}overview-Product-Component .operate-box:hover{-webkit-box-shadow:0 4px 6px 0 rgba(0,0,0,.05);box-shadow:0 4px 6px 0 rgba(0,0,0,.05)}overview-Product-Component .operate-box-top{height:55px;padding-left:20px;padding-right:20px}overview-Product-Component .operate-box-bottom{-webkit-border-radius:3px;border-radius:3px;border-top:1px solid #d9d9d9;background-color:#f9f9f9}overview-Product-Component .common-btn{height:50px;line-height:50px;color:#666;-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1}overview-Product-Component .common-btn:hover{border-color:#d9d9d9;color:#2196f3}overview-Product-Component .common-btn .common_btn_divide{display:inline-block;vertical-align:middle;height:30px;line-height:30px;position:relative;right:25%;border-left:1px solid #d9d9d9}overview-Product-Component .list-box{margin:0 20px 20px}.btn-sm{height:35px;line-height:35px;width:40px;min-width:100%}.btn-sm *{color:inherit}.btn-sm:disabled{opacity:.5}.btn-sm:disabled,.btn-sm:disabled *{cursor:not-allowed}.btn-sm:disabled:hover{background-color:#f5f5f5}.uib-datepicker{border:1px solid #d9d9d9;-webkit-border-radius:3px;border-radius:3px;background-color:#fff;display:inline-block;vertical-align:text-top;margin:20px}.uib-datepicker table tr:nth-child(2){color:#333}.uib-datepicker .text-center{text-align:center}.uib-datepicker .td-selected{background-color:#4fc3f7;color:#fff}.uib-datepicker .td-selected:hover{background-color:#29b6f6;color:#fff}.uib-datepicker .td-selected:active{background-color:#29b6f6}.uib-datepicker .td-duration-selected{background-color:#1890ff}.uib-datepicker .td-duration-selected:active{background-color:#137cdd}.datapicker_time_directive{position:absolute;background-color:#fff;margin:10px 0 0 10px;-webkit-box-shadow:0 10px 15px rgba(0,0,0,.12);box-shadow:0 10px 15px rgba(0,0,0,.12);border:1px solid #d9d9d9;z-index:2}.datapicker_time_directive .time_desc{color:#333}.datapicker_time_directive .datapicker_footer{padding:15px 20px;border-top:1px solid #e5e5e5;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;background-color:#f9f9f9;-webkit-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px}.uib-datepicker-popup.dropdown-menu{display:block;float:none;margin:0 auto;background-color:#fff}.modal-open .modal-group article input,.modal-open .modal-group article select,.modal-open .modal-project .eo-input[type=password],.modal-open .modal-project .eo-input[type=text],.modal-open .modal-project select-default-common-component .container-div,.modal-open .modal-project select-person-common-component .container-div,.modal-open .modal-project textarea,.uib-datepicker .uib-title{width:100%}.uib-button-bar{margin-top:20px;display:inline-block;width:100%}.btn-group-vertical,.datepicker-btn-group{position:relative;z-index:9999;display:inline-block;vertical-align:middle}.uib-day button,.uib-month button,.uib-year button{min-width:100%}.uib-day-disabled{opacity:.5}.uib-day-disabled:hover{background-color:#f5f5f5}.uib-position-measure{display:block!important;visibility:hidden!important;position:absolute!important;top:-9999px!important;left:-9999px!important}.uib-position-scrollbar-measure{position:absolute!important;top:-9999px!important;width:50px!important;height:50px!important;overflow:scroll!important}.uib-position-body-scrollbar-measure{overflow:scroll!important}.uib-clear,.uib-close,.uib-datepicker-current{min-width:100px}.sv-group-helper{position:fixed!important;z-index:99999;margin:0!important}.sv-group-helper .group-li{color:#999}.sv-group-helper .group-li,.sv-group-helper .group-li:hover{background-color:rgba(221,221,221,.3)}.sv-group-candidate-top{border-top:2px solid #26a69a}.sv-group-candidate-bottom{border-bottom:2px solid #26a69a}.sv-group-candidate{border:2px solid #26a69a}.sv-group-placeholder{opacity:.5}.sv-sorting-in-progress{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.sv-visibility-hidden{visibility:hidden!important;opacity:0!important}.modal-open .common-modal-singel-select,.modal-open .modal-project{width:600px}.modal-open .modal-project textarea{padding:10px;height:60px;text-indent:0}.modal-open .common-modal-import{width:190px}.modal-open .common-modal-import article .modal-import-info .modal-btn-group-ul{background-color:#f5f5f5;border:1px solid #e5e5e5;-webkit-border-radius:3px;border-radius:3px;margin:0 auto;overflow:hidden}.modal-open .common-modal-import article .modal-import-info .modal-btn-group-ul li{width:100%;height:130px;line-height:130px;cursor:pointer}.modal-open .common-modal-import article .modal-import-info .modal-btn-group-ul li input{width:150px;height:130px;position:absolute;cursor:pointer;opacity:0}.modal-open .common-modal-import article .modal-import-info .modal-btn-group-ul li a{display:inline-block;height:100%;width:100%;background:url(../assets/images/upload_icons.png) no-repeat;text-align:center}.modal-open .common-modal-import article .modal-import-info .modal-btn-group-ul li p{margin-top:46px}.modal-open .common-modal-import article .modal-import-info .modal-btn-group-ul .first-li a{background-position:-288px 9px}.modal-open .common-modal-import article .btn-group{height:10px;line-height:10px}.modal-open .modal-group,.modal-open .modal-sure{width:600px}.modal-open .modal-sure article input[type=text]{width:100%;margin-top:10px}.modal-open .modal-sure article .api-desc-textarea,.modal-open .modal-sure article .desc-textarea{height:80px;width:100%}.modal-open .modal-sure article .textarea-li{position:relative;min-height:96px;max-height:266px}.modal-open .modal-sure article .textarea-li .api-desc-textarea{position:absolute;top:0;left:0;padding:8px;height:100%;-webkit-box-sizing:border-box;box-sizing:border-box}.modal-open .modal-sure .btn-confirm{min-width:56px}.modal-open .modal-sure .btn-confirm:disabled{color:#333;background-color:#d9d9d9;border:none}.modal-open .modal-export{width:500px}.modal-open .modal-export .view-btn-li{font-size:12px}.modal-open .modal-export .view-btn-li .view-common-btn{background-color:#fff;height:30px;line-height:30px;display:inline-block;text-align:center;padding:0 10px;border:1px solid #ddd;min-width:30px}.modal-open .modal-export .view-btn-li .view-common-btn:nth-child(n+2){border-left:none}.modal-open .modal-export .view-btn-li .view-common-btn:first-child{-webkit-border-radius:3px 0 0 3px;border-radius:3px 0 0 3px}.modal-open .modal-export .view-btn-li .last-view-common-btn{margin-left:0;border-left:none;-webkit-border-radius:0 3px 3px 0;border-radius:0 3px 3px 0}.modal-open .modal-export .view-btn-li .elem-active{background-color:#00ab6d;color:#fff}.modal-open .common-modal-change-password{width:550px}.modal-open .common-modal-login{width:550px;text-align:left;-webkit-animation:fade .2s;animation:fade .2s;-webkit-box-shadow:0 10px 30px rgba(0,0,0,.1);box-shadow:0 10px 30px rgba(0,0,0,.1);background-color:#fff}.modal-open .common-modal-login .eo-input{width:100%}.modal-open .common-modal-singel-input{width:550px}.modal-open .modal-visual-group{width:600px}.modal-open .modal-visual-group .common-scss-group{position:initial;height:240px;width:560px;border:1px solid #ddd;-webkit-box-shadow:none;box-shadow:none}.modal-open .modal-visual-group .group-article-0{height:100%}.modal-open .modal-visual-group .group-ul{position:initial;height:100%;-webkit-box-shadow:none;box-shadow:none}.modal-open .modal-visual-group .group-ul .title-li{display:none}.modal-open .modal-visual-group .group-ul .item-li{margin-top:-10px;height:100%}.gateway-modal-service .icon-huadongkaiguan-dakai{color:#00ab6d}.gateway-modal-gpedit-api-plugin .first-level-article{margin:0;border:none;padding:0}.gateway-modal-gpedit-api-plugin .title-p:first-child{line-height:inherit;margin-bottom:10px}.gateway-modal-cluster .common-p select,.gateway-modal-gpedit-api-plugin .eo-input,.gateway-modal-gpedit-default .common-p select{width:100%}.gateway-modal-copy-api{width:640px}.gateway-modal-node-check-error-report{width:600px}.gateway-modal-node-check-error-report article{width:-webkit-calc(100% - 40px);width:-ms-calc(100% - 40px);width:calc(100% - 40px);padding:20px;line-height:1.75em;max-height:600px;overflow:auto}.gateway-modal-node-check-error-report article>div:nth-child(n+2){border-top:1px dashed #e5e5e5;margin-top:10px;padding-top:10px}.gateway-modal-node-check-error-report table{border-bottom:1px solid #e5e5e5;width:100%;padding:0 20px;height:61px}.gateway-modal-node-check-error-report table button{width:60px}.gateway-modal-node-check-error-report table .title-p{font-size:18px;margin-bottom:5px}.gateway-modal-change-password{width:400px}.gateway-modal-change-password .eo-input,.gateway-modal-cluster .common-p input,.gateway-modal-gpedit-default .common-p input{width:-webkit-calc(100% - 2px);width:-ms-calc(100% - 2px);width:calc(100% - 2px)}.gateway-modal-change-password .ng-invalid-password-confirm-directive,.gateway-modal-change-password .ng-invalid-pattern{border:1px solid #d85030}.gateway-modal-cluster,.gateway-modal-gpedit-default{width:570px}.gateway-modal-cluster .common-p textarea,.gateway-modal-gpedit-default .common-p textarea{width:-webkit-calc(100% - 22px);width:-ms-calc(100% - 22px);width:calc(100% - 22px);min-height:80px}@keyframes load{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.gateway-modal-cluster .icon-jiazai_shuaxin{-webkit-animation:load 1.7s infinite ease;animation:load 1.7s infinite ease;display:inline-block}.gateway-modal-cluster .testing-div{display:inline-block}.gateway-modal-cluster .auth-type-p .iconfont{margin-right:5px;font-size:18px}.gateway-modal-cluster .auth-type-p .name-label{margin-right:10px}.gateway-modal-cluster .auth-type-p .icon-danxuanxuanzhong{color:#089462}eo-navbar{margin:0 auto;border:none;z-index:9;min-width:1000px;position:fixed}eo-navbar,eo-navbar1,login{width:100%;top:0;left:0}eo-navbar1{z-index:7;background-color:#fff;position:fixed}eo-navbar1 .nav-router-container{height:50px;line-height:50px;text-align:left}eo-navbar1 .nav-container{height:50px;border-bottom-width:1px;border-bottom-style:solid}eo-navbar1 .space-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:230px;display:inline-block}eo-navbar1 .select-nav-item:hover .list-ni,eo-navbar1 .special-select-nav-item:hover .list-ni,plugin-operate{display:block}eo-navbar1 .special-select-nav-item:hover .list-ni{right:5px}eo-navbar1 .list-ni{background-color:#fff;-webkit-box-shadow:0 10px 15px rgba(0,0,0,.12);box-shadow:0 10px 15px rgba(0,0,0,.12);min-width:160px;-webkit-border-radius:3px;border-radius:3px;border:1px solid #d9d9d9;position:absolute;display:none}eo-navbar1 .item-lni{text-align:left;line-height:43px;cursor:pointer}eo-navbar1 .item-lni a{padding:0 10px;display:block}eo-navbar1 .btn-item-lni{padding:0 10px}eo-navbar1 .user-logo-tni{height:20px;line-height:20px;-webkit-border-radius:10px;border-radius:10px;width:20px;background-color:#d9d9d9;background-size:contain}eo-navbar1 .divide-top-item-lni{border-top-style:solid;border-top-width:1px}eo-navbar1 .unread-new-tip{color:#fff;background-color:#e83333;-webkit-border-radius:9px;border-radius:9px;padding:0 10px;font-size:12px;display:inline-block;height:18px;line-height:20px}eo-navbar1 .space-container{position:fixed;width:100%;text-align:center;top:0;left:0}eo-navbar1 .shrink-btn{height:50px;padding:0 20px}eo-navbar1 .zindex-top-container{z-index:1}eo-navbar1 .nav-item,eo-navbar1 .text-ni{width:auto;display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;padding:0 15px;line-height:50px;cursor:pointer}login{position:absolute;height:100%;display:table}login .login-wrap{vertical-align:middle;display:table-cell;background-color:#f7f8fc}login .login-wrap .login-content{width:325px;margin:-100px auto 30px;text-align:left;padding:30px;font-size:14px;-webkit-box-shadow:0 0 14px #d4d4d4;box-shadow:0 0 14px #d4d4d4;background-color:#fff}login .login-wrap .login-content header .logo-p{margin-bottom:30px;font-size:30px}login .login-wrap .login-content header .tips-p{color:#666;line-height:1.75em}login .login-wrap .login-content article li{margin-bottom:15px;height:37px;line-height:37px}login .login-wrap .login-content article li .iconfont:active,login .login-wrap .login-content article li .iconfont:focus,login .login-wrap .login-content article li .iconfont:hover{color:#333}login .login-wrap .login-content article .password-li .iconfont{position:absolute;height:18px;line-height:18px;padding:0 9px;margin-left:-39px;margin-top:9px}login .login-wrap .login-content article li:first-child{margin-top:20px}login .login-wrap .login-content article li:nth-child(n+4){margin-bottom:25px}ace-editor-ams-component,login .login-wrap .login-content article .eo-input{width:-webkit-calc(100% - 2px);width:-ms-calc(100% - 2px);width:calc(100% - 2px)}login .login-wrap .login-content article .eo_theme_btn_default,login .login-wrap .login-content article .eo_theme_btn_success{width:100%}ace-editor-ams-component{display:block;border:1px solid #e5e5e5;margin:0 0 10px;-webkit-border-radius:3px;border-radius:3px;max-width:100%}group-default-common-component .cc-group-container{margin-top:15px;border:1px solid #d9d9d9;margin-left:15px}group-default-common-component .divide-li{border-bottom-style:dashed;border-bottom-width:1px}group-default-common-component .more-btn-box{position:relative}group-default-common-component .more-btn-left{-webkit-border-radius:3px 0 0 3px;border-radius:3px 0 0 3px}group-default-common-component .more-btn-right{border-left:1px solid rgba(0,0,0,.1);-webkit-border-radius:0 3px 3px 0;border-radius:0 3px 3px 0;padding:0 5px}group-default-common-component .more-btn-right:focus+.more-btn-list{display:block}group-default-common-component .more-btn-list{position:absolute;background-color:#fff;border:1px solid #d9d9d9;-webkit-border-radius:3px;border-radius:3px;z-index:2;left:0;display:none}group-default-common-component .item-li{height:35px;line-height:35px;cursor:pointer;text-align:left;min-width:60px;padding:0 20px;white-space:nowrap}group-default-common-component .item-li:active,group-default-common-component .item-li:focus,group-default-common-component .item-li:hover{background-color:#fafafa;text-decoration:underline}group-default-common-component .shrink-btn:hover{color:#00b775}group-default-common-component .shrink-gdcc{width:60px;background-color:#fff}group-default-common-component .untop-gdcc .group-ul{height:-webkit-calc(100% - 41px);height:-ms-calc(100% - 41px);height:calc(100% - 41px)}.shrink-group-div .home-common-has-group-div{margin:0 0 0 76px}.shrink-group-div .common-scss-group .title-ul{border-bottom:none}group-common-component .home-project-inside-group .account-span{color:#999}group-common-component .home-project-inside-group .sort-group-li .group-li,group-common-component .home-project-inside-group .sort-group-li .group-li .group-name{cursor:move}group-common-component .home-project-inside-group .divide-li{border-bottom:1px dashed #e5e5e5}group-common-component .home-project-inside-group .sv-helper,group-common-component .home-project-inside-group .sv-helper *{background-color:#eee}group-common-component .home-project-inside-group .title-ul>li .tab-last-btn{margin-left:0;border-left:none;-webkit-border-radius:0 3px 3px 0;border-radius:0 3px 3px 0}group-common-component .home-project-inside-group .title-ul>li .tab-first-btn{-webkit-border-radius:3px 0 0 3px;border-radius:3px 0 0 3px}api-operate .home-common-project-list tip-directive,balance-operate tip-directive,group-common-component .home-project-inside-group .title-ul>li .un-margin-left-btn{margin-left:0}group-common-component .home-project-inside-group .child-group-div .api-list-li{padding-right:0}group-common-component .home-project-inside-group .child-group-div .api-list-li>.group-li{padding-left:2em}group-common-component .home-project-inside-group .child-group-div .api-list-li .group-name{text-indent:0;color:#333}group-common-component .home-project-inside-group .child-group-div .api-list-li .group-function{margin-left:-67px}group-common-component .un-top-group-common-component{margin-top:0!important}group-common-component .un-top-group-common-component .group-ul{height:-webkit-calc(100% - 41px);height:-ms-calc(100% - 41px);height:calc(100% - 41px)}list-default-common-component .bottom-count-div{padding:0 28px;height:50px;line-height:50px}list-default-common-component .common_scss_list .first_level_article thead tr{height:40px}list-default-common-component .first_level_article{width:100%}list-default-common-component .fixed-height-list{position:fixed;-webkit-border-radius:0 3px 3px 0;border-radius:0 3px 3px 0;margin:0 15px 15px 0;height:-webkit-calc(100% - 130px);height:-ms-calc(100% - 130px);height:calc(100% - 130px);overflow-y:hidden;width:-webkit-calc(100% - 514px);width:-ms-calc(100% - 514px);width:calc(100% - 514px)}list-default-common-component .fixed-height-list .thead_container_ldcc{overflow-y:scroll}list-default-common-component .fixed-height-list .tbody_container_ldcc{position:absolute;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content;display:inherit;overflow-y:scroll;height:-webkit-calc(100% - 41px);height:calc(100% - 41px);overflow-x:hidden}list-default-common-component .thead_container_ldcc{z-index:1;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content;position:relative;overflow-x:hidden}list-default-common-component .unplaceholder_thead_ldcc tr{height:0!important;line-height:0}list-default-common-component .placeholder_item{background-color:transparent}list-default-common-component .select_all_box{width:36px;border:1px solid #d9d9d9;padding:3px;-webkit-border-radius:3px;border-radius:3px}list-default-common-component .select_all_box .eo-checkbox{width:20px;margin-right:0;height:20px;line-height:20px}list-default-common-component .select_all_box .iconfont{font-weight:400}list-default-common-component .select_all_show_more{line-height:20px;padding-left:4px}list-default-common-component .placeholder_item{padding:10px}list-default-common-component .select_all_placeholder{z-index:1;padding-top:12px;margin-left:15px;margin-top:-17px}list-default-common-component .select_all_placeholder .select_all_ul{font-weight:400;border:1px solid #d9d9d9;-webkit-border-radius:3px;border-radius:3px}list-default-common-component .select_all_placeholder .select_all_item{height:30px;line-height:30px;padding:0 10px;cursor:pointer;font-size:12px}list-default-common-component .eo-checkbox:disabled{color:#9e9e9e;background-color:#ededed;border:1px solid #d9d9d9}list-default-common-component .conatiner_ldcc{position:relative;height:100%}list-default-common-component .conatiner_ldcc_draggable{overflow-x:auto}list-default-common-component .conatiner_ldcc_has_footer{height:-webkit-calc(100% - 40px);height:calc(100% - 40px)}list-default-common-component .divide_line_ldcc{border-right:1px solid #d9d9d9;right:0;top:0;position:absolute;height:100%}list-default-common-component .drag_divide_line_ldcc:last-child .divide_line_ldcc,list-default-common-component .th_bdr_none .divide_line_ldcc,list-default-common-component th:last-child .divide_line_ldcc{display:none}list-default-common-component .thead_container_ldcc{background-color:#f8f8f8;border-bottom:1px solid #d9d9d9}list-default-common-component .hover_th_ldcc{cursor:pointer}list-default-common-component .hover_th_ldcc:hover{background-color:#efefef}list-default-common-component .focus_orderby{color:red}list-default-common-component .un_focus_orderBy{color:rgba(51,51,51,.2)}list-default-common-component .more-btn{display:inline-block;line-height:initial}list-default-common-component .footer{position:absolute;bottom:0;left:0;right:0;border-top:1px solid #d9d9d9}list-default-common-component .btn-shrink{position:absolute;text-align:center;font-size:24px;border:none;margin-top:-5px;left:0}list-default-common-component .btn-shrink:hover{color:#1890ff}.common_scss_list{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.common_scss_list .first_level_article{border:1px solid #d9d9d9;-webkit-border-radius:3px;border-radius:3px}.common_scss_list .first_level_article table{width:100%;border-spacing:0;text-align:left;-webkit-border-radius:3px;border-radius:3px;table-layout:fixed}.common_scss_list .first_level_article thead tr{height:50px}.common_scss_list .first_level_article td,.common_scss_list .first_level_article th{padding-left:20px}.common_scss_list .first_level_article tbody tr{height:43px}.common_scss_list .first_level_article tbody tr td{cursor:inherit;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;border-bottom:1px solid #d9d9d9}.common_scss_list .first_level_article tbody tr .cancel-nowrap{white-space:initial;overflow:initial;text-overflow:initial}.common_scss_list .first_level_article tbody tr .operate-td{overflow:visible}.common_scss_list .first_level_article .more-function{position:absolute;border-style:solid;border-width:1px;-webkit-border-radius:3px;border-radius:3px;right:0;z-index:2;text-align:left}.common_scss_list .first_level_article .more-function li{height:35px;line-height:35px;cursor:pointer;padding:0 20px}.common_scss_list .first_level_article .eo-operate-btn{padding-left:10px;border-left:1px solid #d9d9d9}.common_scss_list .first_level_article .eo-operate-btn:first-child{border-left:none;padding-left:0}.common_scss_list .first_level_article .none_div{background-color:#fff;color:#999;line-height:100px;height:100px;text-align:center}.common_scss_list .first_level_article .hover-tr{cursor:pointer}.common_scss_list .first_level_article .unhover-tr{cursor:default}.common_scss_list .count-span{color:#999;font-weight:initial;font-size:12px}.common_scss_list .eo-tip-container .arrow-li{margin-left:16px}.common_scss_list .eo-tip-container .message-li{margin-left:-50px}.common_scss_list .eo-operate-btn .eo-tip-container .message-li{white-space:pre-line;max-width:170px;min-width:120px}.common_scss_list .eo-operate-btn:hover .eo-tip-container{visibility:visible;margin-top:-70px;margin-left:-8px}.list_default_common_component_has_no_group .fixed-height-list{width:-webkit-calc(100% - 271px);width:-ms-calc(100% - 271px);width:calc(100% - 271px)}.shrink-group-div list-default-common-component .fixed-height-list{width:-webkit-calc(100% - 332px);width:-ms-calc(100% - 332px);width:calc(100% - 332px)}.shrink-div list-default-common-component .fixed-height-list{width:-webkit-calc(100% - 324px);width:-ms-calc(100% - 324px);width:calc(100% - 324px)}.shrink-div .list_default_common_component_has_no_group .fixed-height-list{width:-webkit-calc(100% - 83px);width:-ms-calc(100% - 83px);width:calc(100% - 83px)}.eo_shrink_group_sidebar_container list-default-common-component .fixed-height-list{width:-webkit-calc(100% - 144px);width:-ms-calc(100% - 144px);width:calc(100% - 144px)}select-multistage-common-component .disabled-text-p{color:#999!important;cursor:not-allowed!important;background-color:#fafafa!important}select-multistage-common-component .container-div{width:278px;display:block;position:relative}select-multistage-common-component .text-div{border:1px solid #d9d9d9;background-color:#fff;-webkit-border-radius:3px;border-radius:3px;color:#333;height:32px;line-height:32px;padding:0 10px;cursor:pointer;font-size:12px;-webkit-box-sizing:border-box;box-sizing:border-box}select-multistage-common-component .text-div:hover{border-color:#999;-webkit-transition:all .2s cubic-bezier(.645,.045,.355,1);transition:all .2s cubic-bezier(.645,.045,.355,1)}select-multistage-common-component .text-div:focus{border-color:#089462;-webkit-box-shadow:0 0 0 2px #c8e6c9;box-shadow:0 0 0 2px #c8e6c9}select-multistage-common-component .text-div:disabled{color:#999;cursor:not-allowed;background-color:#fafafa}select-multistage-common-component .select-item-div{width:-webkit-calc(100% - 12px);width:-ms-calc(100% - 12px);width:calc(100% - 12px);display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}select-multistage-common-component .list-container-div{-webkit-border-radius:3px;border-radius:3px;background-color:#fff;border:1px solid #d9d9d9;width:100%;margin-top:5px;font-size:12px;position:absolute;-webkit-box-shadow:0 10px 15px rgba(0,0,0,.12);box-shadow:0 10px 15px rgba(0,0,0,.12);z-index:5}select-multistage-common-component .query-container-child-div{max-height:353px;overflow:auto}select-multistage-common-component .search-p{background-color:#f8f8f8;height:40px;padding:0 10px;line-height:42px}select-multistage-common-component .search-p button,select-multistage-common-component .search-p input[type=text]{border:none;background:0 0;height:40px}select-multistage-common-component .search-p .iconfont{font-size:16px;padding-right:5px}select-multistage-common-component .search-p input[type=text]{width:100%}select-multistage-common-component .search-p input[type=button]{height:28px;line-height:26px;padding:0 10px;margin-top:6px}select-multistage-common-component .common-class-item{cursor:pointer}select-multistage-common-component .common-class-item:hover{background-color:#fafafa}select-multistage-common-component .common-class-item .iconfont{color:#999}select-multistage-common-component .common-class-item,select-multistage-common-component .un-search-response-p{height:35px;line-height:35px;padding:0 10px}cluster-Node-default list-default-common-component .fixed-height-list{height:-webkit-calc(100% - 183px);height:-ms-calc(100% - 183px);height:calc(100% - 183px)}cluster-Node-default .eo-tip-container{margin-left:-14px!important;position:fixed}cluster-Node-Group .common-scss-group{margin-top:65px;height:-webkit-calc(100% - 132px);height:-ms-calc(100% - 132px);height:calc(100% - 132px)}cluster-default list-default-common-component .first-level-article{margin-top:0}cluster-default menu-Default-Common-Component .common_menu_ul .search-form{position:absolute;right:20px;top:10px}cluster-default .menu-title:nth-child(2){padding-bottom:0}cluster-default menu-Default-Common-Component .disabled-operate-has-second-title-placeholder{height:113px}balance-operate .first-level-article{border:1px solid #e5e5e5;background-color:#fff;padding:10px}balance-operate .input_cluster_blo,balance-operate .select_cluster_blo{width:578px}balance-operate input[type=text]:disabled,balance-operate select:disabled,plugin-operate .first-level-article input[type=text]:disabled,plugin-operate .first-level-article select:disabled{background-color:#fafafa;cursor:not-allowed}panel .foot_panel{height:40px;line-height:40px;background-color:#f8f8f8;border-top:1px solid #ddd;position:fixed;bottom:0;width:-webkit-calc(100% - 20px);width:-ms-calc(100% - 20px);width:calc(100% - 20px);left:0;padding-right:20px}panel .first-box{padding-bottom:0;padding-top:30px}panel .basic_data_panel{width:100%}panel .item_panel{width:50%;overflow:hidden}panel list-default-common-component .first-level-article{margin-top:0}panel .icon-bangzhu_o{font-size:50px}panel .time_panel .item_time_panel{background-color:#fff;height:30px;line-height:30px;display:inline-block;text-align:center;padding:0 10px;border:1px solid #ddd}panel .time_panel .item_time_panel:nth-child(n+2){border-left:none}panel .time_panel .item_time_panel:first-child{-webkit-border-radius:3px 0 0 3px;border-radius:3px 0 0 3px}panel .time_panel .item_time_active_panel{background-color:#00ab6d;color:#fff}panel .time_panel .disable-a{color:#ccc;cursor:not-allowed}panel .time_panel .item_time_panel:last-child{margin-left:0;border-left:none;-webkit-border-radius:0 3px 3px 0;border-radius:0 3px 3px 0}panel .panel-ui-div .table-container-div{max-width:1236px}panel .panel-ui-div .eo-tab-menu .item-tab{border-color:transparent;cursor:default}panel .panel-ui-div .item-p{font-size:14px;color:#555;margin:20px 0}panel .panel-ui-div .untop-div{border-top:0}panel .panel-ui-div .default-btn{display:inline-block;height:30px;line-height:30px;border:1px solid #ddd;-webkit-border-radius:3px;border-radius:3px;background-color:#fff;padding:0 10px}gpedit-inside-auth .common-table thead,gpedit-overview .item_gpedit_overview:hover,panel .panel-ui-div .default-btn:hover{background-color:#fafafa}api-default list-default-common-component .fixed-height-list,gpedit-default list-default-common-component .fixed-height-list{height:-webkit-calc(100% - 183px);height:-ms-calc(100% - 183px);height:calc(100% - 183px)}gpedit-default .copy_btn_gd{font-size:12px;padding:2px 3px}gpedit-Group .common-scss-group{margin-top:65px;height:-webkit-calc(100% - 132px);height:-ms-calc(100% - 132px);height:calc(100% - 132px)}.strategy-id-copy-div{position:absolute;right:15px;font-size:14px;line-height:50px;color:#555;z-index:5}.strategy-id-copy-div .copy-a{margin-left:10px;background-color:#fff;-webkit-border-radius:3px;border-radius:3px;border:1px solid #e5e5e5;padding:0 10px;line-height:20px;display:inline-block}.strategy-id-copy-div .copy-a:hover{color:#333}.readonly_strategy_id_copy_gi{border:1px solid #ddd;-webkit-border-radius:3px;border-radius:3px;padding-left:10px;padding-right:10px;position:fixed;background-color:#f0f2f5;top:60px;right:10px;line-height:40px}gpedit-Inside-Api-Plugin .container_giap{margin-top:145px}gpedit-overview .item_gpedit_overview{cursor:pointer}project-Default menu-Default-Common-Component .common_menu_ul .search-form{position:absolute;right:20px;bottom:20px;height:auto}plugin-operate .form_plugin_opr{border:1px solid #e5e5e5;background-color:#fff;font-size:14px;padding:15px;margin-top:10px}plugin-operate .first-level-article{margin:61px 10px 10px}plugin-operate .first-level-article input[type=text]{width:578px}gpedit-inside-auth select,gpedit-inside-plugin-operate select,plugin-operate .first-level-article select{text-indent:0;width:580px}plugin-operate .match-rule-p,plugin-operate .title-p{line-height:50px}plugin-default .icon-jiazai_shuaxin{-webkit-animation:load 1.7s infinite ease;animation:load 1.7s infinite ease;display:inline-block;height:14px;line-height:14px;text-indent:0;margin-left:5px}plugin-default .fun-list-li>div{line-height:30px}plugin-default .fun-list-li{position:absolute;right:230px;bottom:20px}plugin-default .eo-tip-container{margin-left:-14px!important}setting-log .divide_hsl_eoui{border-top:1px solid #ddd;margin:20px 0}setting-log .account-setting-common-scss{margin-top:50px}setting-log button:disabled{cursor:not-allowed!important}setting-log .common-table-div:nth-child(2){margin-top:0}api-operate .home-common-project-list{z-index:0}api-operate .home-common-project-list .first-level-article{margin-left:15px;margin-right:15px;border:1px solid #e5e5e5;background-color:#fff;font-size:14px;padding:10px}api-operate .home-common-project-list .input_common_aop,api-operate .home-common-project-list .select_common_aop,gpedit-inside-auth input[type=text],gpedit-inside-plugin-operate input[type=text]{width:578px}api-operate .home-common-project-list .select_target_protocol_aop{width:100px}api-operate .home-common-project-list .input_target_aop{width:473px}api-Group .common-scss-group{margin-top:65px;height:-webkit-calc(100% - 132px);height:-ms-calc(100% - 132px);height:calc(100% - 132px)}gpedit-inside-auth .first-level-article{border:1px solid #e5e5e5;background-color:#fff;font-size:14px;padding:10px}gpedit-inside-auth .disabled-table td{background-color:#fafafa;cursor:not-allowed}gpedit-inside-auth .title-p{line-height:50px}gpedit-inside-auth input[type=text]:disabled,gpedit-inside-auth select:disabled,gpedit-inside-auth textarea:disabled,gpedit-inside-plugin-operate select:disabled{background-color:#fafafa;cursor:not-allowed}gpedit-inside-auth .common-table{width:100%;border-spacing:0;table-layout:fixed}gpedit-inside-auth .common-table td{font-size:14px;height:40px;line-height:20px;cursor:default;position:relative}gpedit-inside-auth .common-table td .eo-input{border:none;width:100%;-webkit-border-radius:0;border-radius:0;height:40px;display:block}gpedit-inside-auth .common-table td:nth-child(n+2){border-left:1px dashed #e5e5e5}gpedit-inside-auth .common-table td .auto-complete-message{line-height:20px;text-indent:10px;font-size:12px;margin-left:-1px}gpedit-inside-auth .common-table td .disabled-div{background-color:#fafafa;cursor:not-allowed}gpedit-inside-auth .common-table td .item-textarea{border:none;-webkit-border-radius:0;border-radius:0;display:block;position:absolute;text-indent:0;line-height:1.65em;padding:10px;height:100%}gpedit-inside-auth .common-table td .textarea-div{white-space:pre-wrap;height:auto;padding:0 10px;text-indent:0;line-height:1.65em;width:-webkit-calc(100% - 20px);width:-ms-calc(100% - 20px);width:calc(100% - 20px);max-height:200px;min-height:43px}gpedit-inside-auth .common-table .required-td{width:40px;text-align:center;text-indent:0}gpedit-inside-auth .common-table .operation-td{text-indent:0;padding-left:10px;width:100px}gpedit-inside-auth .common-table thead td{text-indent:10px}gpedit-inside-auth .common-table tbody .number-label,gpedit-inside-auth .common-table tbody .radio-input{border:1px solid #e5e5e5;display:inline-block;text-align:center;-webkit-border-radius:3px;border-radius:3px}gpedit-inside-auth .common-table tbody .number-label{background-color:#f2f2f2;color:#9e9e9e;padding:0 5px;height:25px;line-height:27px;font-size:12px}gpedit-inside-auth .common-table tbody .icon-shanchu:hover{background-color:#d32f2f;color:#fff;border:1px solid #c62828}gpedit-inside-auth .common-table tbody .icon-index-magicwand:hover{background-color:#e5e5e5}gpedit-inside-auth .common-table tbody .radio-input{height:23px;line-height:23px;width:23px;font-size:13px;margin-right:4px;cursor:pointer}gpedit-inside-auth .common-table tbody tr td{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;height:40px}gpedit-inside-auth .common-table tbody tr:first-child td{border-top:1px solid #e5e5e5}gpedit-inside-auth .margin-top-60{margin-top:60px}gpedit-inside-api-operate list-default-common-component .fixed-height-list{height:-webkit-calc(100% - 183px);height:-ms-calc(100% - 183px);height:calc(100% - 183px);margin-left:241px;width:-webkit-calc(100% - 755px);width:-ms-calc(100% - 755px);width:calc(100% - 755px)}gpedit-inside-api-operate .common-scss-group{margin-top:65px;height:-webkit-calc(100% - 132px);height:-ms-calc(100% - 132px);height:calc(100% - 132px)}gpedit-inside-api-operate .group-compoment-container .cc-group-container{left:482px}gpedit-inside-api-operate .search_menu_giao .common_menu_ul{margin-left:241px;width:-webkit-calc(100% - 263px);width:-ms-calc(100% - 263px);width:calc(100% - 263px)}gpedit-inside-api-operate .btn-group-div button{height:20px;line-height:22px;padding:0 10px;font-size:12px;margin-right:10px}gpedit-inside-api-operate .btn-group-div button:focus,gpedit-inside-api-operate .btn-group-div button:hover{height:20px;line-height:22px}gpedit-inside-api-operate .btn-group-div button:disabled{background-color:#c3c3c3;cursor:not-allowed;border:none}.shrink-div gpedit-inside-api-operate .group-compoment-container .cc-group-container{left:292px}.shrink-div gpedit-inside-api-operate list-default-common-component .fixed-height-list{width:-webkit-calc(100% - 565px);width:-ms-calc(100% - 565px);width:calc(100% - 565px)}gpedit-Inside-Api-Default .eo-tip-container{position:fixed;margin-left:-14px!important}gpedit-inside-plugin-operate .first-level-article{border:1px solid #e5e5e5;background-color:#fff;font-size:14px;padding:0 15px 5px;margin:66px 15px 15px}gpedit-inside-plugin-operate .match-rule-p,gpedit-inside-plugin-operate .title-p{line-height:50px} \ No newline at end of file diff --git a/app/goku-node/main.go b/app/goku-node/main.go deleted file mode 100644 index 0554b5566d4d216b8d646fd31c00447906b0304a..0000000000000000000000000000000000000000 --- a/app/goku-node/main.go +++ /dev/null @@ -1,91 +0,0 @@ -package main - -import ( - "encoding/json" - "flag" - "fmt" - endless2 "github.com/eolinker/goku-api-gateway/common/endless" - log "github.com/eolinker/goku-api-gateway/goku-log" - "github.com/eolinker/goku-api-gateway/goku-node/cmd" - "runtime" - - node_common "github.com/eolinker/goku-api-gateway/goku-node/node-common" - - "github.com/eolinker/goku-api-gateway/common/database" - "github.com/eolinker/goku-api-gateway/common/general" - redis_manager "github.com/eolinker/goku-api-gateway/common/redis-manager" - goku_node "github.com/eolinker/goku-api-gateway/goku-node" - "github.com/eolinker/goku-api-gateway/server/entity" -) - -var ( - adminHost string - //adminPort int - listenPort int -) - -func initConfig(resultInfo map[string]interface{}) *entity.ClusterInfo { - c := entity.ClusterInfo{} - clusterConfig, err := json.Marshal(resultInfo["cluster"]) - if err != nil { - log.Panic(err) - } - - err = json.Unmarshal(clusterConfig, &c) - if err != nil { - log.Panic(err) - } - return &c -} - -func main() { - - runtime.GOMAXPROCS(runtime.NumCPU()) - - flag.StringVar(&adminHost, "admin", "127.0.0.1:7005", "Please provide a valid host!") - //flag.IntVar(&adminPort, "P", 7005, "Please provide a valid port") - flag.IntVar(&listenPort, "port", 6689, "Please provide a valid listen port!") - isDebug := flag.Bool("debug", false, "") - - flag.Parse() - if *isDebug { - log.StartDebug() - } - // - node_common.SetAdmin(adminHost) - node_common.ListenPort = listenPort - - success, config := cmd.GetConfig(listenPort) - if !success { - log.Fatal(" Fail to get node config!") - return - } - - node_common.SetClusterName(config.Name) - - err := database.InitConnection(&config.DB) - if err != nil { - log.Fatal("Fail to Init db:", err) - return - } - goku_node.InitLog() - log.Debug("gokNode.InitLog") - r := redis_manager.Create(&config.Redis) - redis_manager.SetDefault(r) - - log.Debug("redis-manager.SetDefault") - // 其他需要初始化的模块 - _ = general.General() - - log.Debug("general.General()") - goku_node.InitServer() - go cmd.Heartbeat(listenPort) - server := goku_node.NewRouter() - - err = endless2.ListenAndServe(fmt.Sprintf(":%d", listenPort), server) - if err != nil { - log.Fatal(err) - } - log.Fatalf("Server on :%d stoped \n", listenPort) - -} diff --git a/app/node/.gitignore b/app/node/.gitignore new file mode 100644 index 0000000000000000000000000000000000000000..d77a4e0ae9c578c3472a7cdbfa0bbf22f8f1810d --- /dev/null +++ b/app/node/.gitignore @@ -0,0 +1,3 @@ +/work/ +/logs/ +/node diff --git a/app/node/driver.go b/app/node/driver.go new file mode 100644 index 0000000000000000000000000000000000000000..88a81bee97c52eb37de396f064d19a65849ceb5d --- /dev/null +++ b/app/node/driver.go @@ -0,0 +1,15 @@ +package main + +import ( + + "github.com/eolinker/goku-api-gateway/goku-service/driver/consul" + "github.com/eolinker/goku-api-gateway/goku-service/driver/eureka" + "github.com/eolinker/goku-api-gateway/goku-service/driver/static" + +) + +func init() { + consul.Register() + eureka.Register() + static.Register() +} \ No newline at end of file diff --git a/app/node/flag.go b/app/node/flag.go new file mode 100644 index 0000000000000000000000000000000000000000..740d88917f7e56c27ff359ef4120001ba7838017 --- /dev/null +++ b/app/node/flag.go @@ -0,0 +1,17 @@ +package main + +import "flag" + +//ParseFlag 获取命令行参数 +func ParseFlag() (port int, admin string, staticConfigFile string, isDebug bool) { + adminP := flag.String("admin", "", "Please provide a valid host!") + portP := flag.Int("port", 0, "Please provide a valid listen port!") + staticConfigFileP := flag.String("config", "", "Please provide a config file") + + isDebugP := flag.Bool("debug", false, "") + + flag.Parse() + + return *portP, *adminP, *staticConfigFileP, *isDebugP + +} diff --git a/app/node/main.go b/app/node/main.go new file mode 100644 index 0000000000000000000000000000000000000000..d48b9d070982e00974e775944327ba04bd6c2948 --- /dev/null +++ b/app/node/main.go @@ -0,0 +1,66 @@ +package main + +import ( + "flag" + "github.com/eolinker/goku-api-gateway/config" + log "github.com/eolinker/goku-api-gateway/goku-log" + console2 "github.com/eolinker/goku-api-gateway/node/console" + "github.com/eolinker/goku-api-gateway/node/gateway" + "github.com/eolinker/goku-api-gateway/node/router/httprouter" + "github.com/eolinker/goku-api-gateway/node/server" + "runtime" +) + +func main() { + runtime.GOMAXPROCS(runtime.NumCPU()) + + port, admin, staticConfigFile, isDebug := ParseFlag() + + if isDebug { + log.StartDebug() + } + + if port == 0{ + flag.Usage() + + return + } + + if admin != "" { + // 从控制台启动, + console := console2.NewConsole(port, admin) + ser := server.NewServer(port) + ser.SetConsole(console) + log.Fatal(ser.Server()) + + } else if staticConfigFile != "" { + + // 从静态文件启动 + c, err := config.ReadConfig(staticConfigFile) + if err != nil { + log.Panic("read config from :", staticConfigFile, "\t", err) + } + + server.SetLog(c.Log) + server.SetAccessLog(c.AccessLog) + + + r, err := gateway.Parse(c, httprouter.Factory()) + if err != nil { + log.Panic("parse config error:", err) + } + + + + ser := server.NewServer(port) + e := ser.SetRouter(r) + if e != nil { + log.Panic("init router error:", e) + } + log.Fatal(ser.Server()) + } else { + // + flag.Usage() + return + } +} diff --git a/build/cmd/build-node.sh b/build/cmd/build-node.sh index 48829195b1f026ef3084db425357deb3059f1530..60c65e41bfbd990a4fc02877fd4283115779fe53 100755 --- a/build/cmd/build-node.sh +++ b/build/cmd/build-node.sh @@ -17,12 +17,12 @@ then fi -buildApp goku-node $VERSION +buildApp node $VERSION -OUTPATH="${BasePath}/out/goku-node-${VERSION}" +OUTPATH="${BasePath}/out/node-${VERSION}" mkdir ${OUTPATH}/plugin -cp -a ${BasePath}/build/goku-node/resources/* ${OUTPATH}/ +cp -a ${BasePath}/build/node/resources/* ${OUTPATH}/ if [ -d "${BasePath}/out/plugins" ];then cp -a ${BasePath}/out/plugins/* ${OUTPATH}/plugin/ fi diff --git a/build/cmd/package-node.sh b/build/cmd/package-node.sh index 6a7db33bca02132bd50a21fd4a34e16ea17c3677..8a319850a6be300c33f2130be611a9f43dadf6db 100755 --- a/build/cmd/package-node.sh +++ b/build/cmd/package-node.sh @@ -5,7 +5,7 @@ cd ${BasePath}/ VERSION=$(genVersion $1) -folder="${BasePath}/out/goku-node-${VERSION}" +folder="${BasePath}/out/node-${VERSION}" if [[ ! -d "$folder" ]] then @@ -15,6 +15,6 @@ then exit 1 fi fi -packageApp goku-node $VERSION +packageApp node $VERSION cd ${ORGPATH} diff --git a/build/console/resources/db/sqlite3/.gitignore b/build/console/resources/db/sqlite3/.gitignore new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/build/console/resources/goku.conf.tpl b/build/console/resources/goku.conf.tpl index 89c03ea5f180b83f9e5ea6b87968521d8591e9e3..3f3a4fff4ca845e2721f982b7d4c536c1f4d3fb3 100644 --- a/build/console/resources/goku.conf.tpl +++ b/build/console/resources/goku.conf.tpl @@ -1,7 +1,2 @@ listen_port: 7000 admin_bind: 127.0.0.1:7005 -db_host: 127.0.0.1 -db_port: 3306 -db_name: goku_ee -db_user: root -db_password: root \ No newline at end of file diff --git a/build/console/resources/html/currentAlert.html b/build/console/resources/html/currentAlert.html deleted file mode 100644 index c3d60e8cfe8fdb362fdad5a7b2b01687de369298..0000000000000000000000000000000000000000 --- a/build/console/resources/html/currentAlert.html +++ /dev/null @@ -1,46 +0,0 @@ - - - - - - - -
    - - - - - - - - - - - - - - - - - - -
    GoKu Gateway EE
    -

    GoKu告警:$requestURL接口在$alertPeriod分钟内转发失败$alertCount次

    -
    -

    GoKu接口网关于 $alertTime 监控到 - $requestURL 接口在 $alertPeriod 分钟内转发失败达到 $alertCount 次,详细告警内容请于 - $alertLogPath 文件夹查看。

    -
    -

    接口基本信息

    -
    -

    接口名称:$apiName

    -

    apiID:$apiID

    -

    请求路径:$requestURL

    -

    转发路径:$targetServer

    -

    映射路径:$proxyURL

    -
    -
    - - - \ No newline at end of file diff --git a/build/console/resources/run.sh b/build/console/resources/run.sh index f56cfaa5a6b19c556233661e4fc7e5d390d80e71..4f924effcc3dd0f6b70330c90d9e33d8f55f9252 100644 --- a/build/console/resources/run.sh +++ b/build/console/resources/run.sh @@ -70,16 +70,14 @@ stop() { kill $pid >/dev/null 2>&1 if [[ $? != 0 ]];then echo "$PROG stop error" - + exit 1 fi rm -f "$WORK_PATH/$PROG.pid" echo "$PROG stopped" - else - echo "Error! $PROG not started!" 1>&2 fi else ## Program is not running, exit with error. - echo "Error! $PROG not started!" 1>&2 + echo "note! $PROG not started!" 1>&2 fi } diff --git a/build/console/resources/sql/goku_ce.sql b/build/console/resources/sql/goku_ce.sql index 44bf7bdd02a8298a85f93d7e4e713f2d5afc71c6..42d76e3b462a5cb3be68efafeb74fd04064b11f9 100644 --- a/build/console/resources/sql/goku_ce.sql +++ b/build/console/resources/sql/goku_ce.sql @@ -1,591 +1,456 @@ -USE goku_ce; -SET FOREIGN_KEY_CHECKS=0; +PRAGMA foreign_keys = false; -- ---------------------------- -- Table structure for goku_admin -- ---------------------------- -DROP TABLE IF EXISTS `goku_admin`; -CREATE TABLE `goku_admin` ( - `userID` int(11) unsigned NOT NULL AUTO_INCREMENT, - `loginCall` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL, - `loginPassword` varchar(255) NOT NULL, - `userType` tinyint(4) NOT NULL DEFAULT '0', - `groupID` int(11) NOT NULL DEFAULT '0', - `remark` varchar(255) DEFAULT NULL, - `permissions` text, - PRIMARY KEY (`userID`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; - --- ---------------------------- --- Records of goku_admin --- ---------------------------- +DROP TABLE IF EXISTS "goku_admin"; +CREATE TABLE "goku_admin" ( + "userID" integer NOT NULL PRIMARY KEY AUTOINCREMENT, + "loginCall" text(255) NOT NULL, + "loginPassword" text(255) NOT NULL, + "userType" integer(4) NOT NULL DEFAULT 0, + "groupID" integer(11) NOT NULL DEFAULT 0, + "remark" text(255), + "permissions" text +); -- ---------------------------- -- Table structure for goku_balance -- ---------------------------- -DROP TABLE IF EXISTS `goku_balance`; -CREATE TABLE `goku_balance` ( - `balanceID` int(10) unsigned NOT NULL AUTO_INCREMENT, - `balanceName` varchar(255) NOT NULL DEFAULT '', - `serviceName` varchar(255) NOT NULL DEFAULT '', - `balanceConfig` text, - `createTime` timestamp NULL DEFAULT NULL, - `updateTime` timestamp NULL DEFAULT NULL, - `balanceDesc` varchar(255) DEFAULT NULL, - `defaultConfig` text NOT NULL, - `clusterConfig` text NOT NULL, - `appName` varchar(255) NOT NULL DEFAULT '', - `static` text, - `staticCluster` text, - PRIMARY KEY (`balanceID`), - UNIQUE KEY `balanceName` (`balanceName`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; - --- ---------------------------- --- Records of goku_balance --- ---------------------------- +DROP TABLE IF EXISTS "goku_balance"; +CREATE TABLE "goku_balance" ( + "balanceID" integer NOT NULL PRIMARY KEY AUTOINCREMENT, + "balanceName" text(255) NOT NULL, + "serviceName" text(255) NOT NULL, + "balanceConfig" text, + "createTime" text, + "updateTime" text, + "balanceDesc" text(255), + "defaultConfig" text NOT NULL, + "clusterConfig" text NOT NULL DEFAULT '', + "appName" text(255) NOT NULL DEFAULT '', + "static" text, + "staticCluster" text +); -- ---------------------------- -- Table structure for goku_cluster -- ---------------------------- -DROP TABLE IF EXISTS `goku_cluster`; -CREATE TABLE `goku_cluster` ( - `id` int(11) unsigned NOT NULL AUTO_INCREMENT, - `name` varchar(20) NOT NULL DEFAULT '', - `title` varchar(50) NOT NULL DEFAULT '', - `note` varchar(255) DEFAULT NULL, - `db` text, - `redis` text, - PRIMARY KEY (`id`), - UNIQUE KEY `name` (`name`), - UNIQUE KEY `titel` (`title`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - --- ---------------------------- --- Records of goku_cluster --- ---------------------------- +DROP TABLE IF EXISTS "goku_cluster"; +CREATE TABLE "goku_cluster" ( + "id" integer NOT NULL PRIMARY KEY AUTOINCREMENT, + "name" text(20) NOT NULL, + "title" text(50) NOT NULL, + "note" text(255), + "db" text, + "redis" text +); -- ---------------------------- -- Table structure for goku_config_log -- ---------------------------- -DROP TABLE IF EXISTS `goku_config_log`; -CREATE TABLE `goku_config_log` ( - `id` int(11) unsigned NOT NULL AUTO_INCREMENT, - `name` varchar(20) NOT NULL DEFAULT '', - `enable` int(11) NOT NULL DEFAULT '0', - `dir` varchar(255) NOT NULL DEFAULT 'logs/', - `file` varchar(255) NOT NULL DEFAULT '', - `period` varchar(10) NOT NULL DEFAULT '', - `level` varchar(10) NOT NULL DEFAULT '', - `fields` text NOT NULL, - `expire` int(11) NOT NULL DEFAULT '0', - PRIMARY KEY (`id`), - UNIQUE KEY `name` (`name`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - --- ---------------------------- --- Records of goku_config_log --- ---------------------------- +DROP TABLE IF EXISTS "goku_config_log"; +CREATE TABLE "goku_config_log" ( + "id" integer NOT NULL PRIMARY KEY AUTOINCREMENT, + "name" text(20) NOT NULL, + "enable" integer(11) NOT NULL DEFAULT 1, + "dir" text(255) NOT NULL, + "file" text(255) NOT NULL, + "period" text(10) NOT NULL, + "level" text(10) NOT NULL, + "fields" text NOT NULL, + "expire" integer(11) NOT NULL DEFAULT 3 +); -- ---------------------------- -- Table structure for goku_conn_plugin_api -- ---------------------------- -DROP TABLE IF EXISTS `goku_conn_plugin_api`; -CREATE TABLE `goku_conn_plugin_api` ( - `connID` int(10) unsigned NOT NULL AUTO_INCREMENT, - `apiID` int(11) NOT NULL, - `pluginName` varchar(255) NOT NULL, - `pluginConfig` text, - `strategyID` varchar(255) NOT NULL, - `pluginInfo` text, - `createTime` timestamp NULL DEFAULT NULL, - `updateTime` timestamp NULL DEFAULT NULL, - `pluginStatus` tinyint(4) DEFAULT NULL, - `updateTag` varchar(32) DEFAULT NULL COMMENT '更新标识位', - `updaterID` int(11) NOT NULL DEFAULT '0', - PRIMARY KEY (`connID`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; - --- ---------------------------- --- Records of goku_conn_plugin_api --- ---------------------------- +DROP TABLE IF EXISTS "goku_conn_plugin_api"; +CREATE TABLE "goku_conn_plugin_api" ( + "connID" integer NOT NULL PRIMARY KEY AUTOINCREMENT, + "apiID" integer(11) NOT NULL, + "pluginName" text(255) NOT NULL, + "pluginConfig" text, + "strategyID" text(255) NOT NULL, + "pluginInfo" text, + "createTime" text, + "updateTime" text, + "pluginStatus" integer(4), + "updateTag" text(32), + "updaterID" integer(11) NOT NULL DEFAULT 0 +); -- ---------------------------- -- Table structure for goku_conn_plugin_strategy -- ---------------------------- -DROP TABLE IF EXISTS `goku_conn_plugin_strategy`; -CREATE TABLE `goku_conn_plugin_strategy` ( - `connID` int(10) unsigned NOT NULL AUTO_INCREMENT, - `strategyID` varchar(255) NOT NULL, - `pluginName` varchar(255) NOT NULL, - `pluginConfig` text, - `pluginInfo` text, - `createTime` timestamp NULL DEFAULT NULL, - `updateTime` timestamp NULL DEFAULT NULL, - `pluginStatus` tinyint(4) DEFAULT NULL, - `updateTag` varchar(32) DEFAULT NULL COMMENT '更新标识位', - `updaterID` int(11) NOT NULL DEFAULT '0', - PRIMARY KEY (`connID`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; - --- ---------------------------- --- Records of goku_conn_plugin_strategy --- ---------------------------- +DROP TABLE IF EXISTS "goku_conn_plugin_strategy"; +CREATE TABLE "goku_conn_plugin_strategy" ( + "connID" integer NOT NULL PRIMARY KEY AUTOINCREMENT, + "strategyID" text(255) NOT NULL, + "pluginName" text(255) NOT NULL, + "pluginConfig" text, + "pluginInfo" text, + "createTime" text, + "updateTime" text, + "pluginStatus" integer(4), + "updateTag" text(32), + "updaterID" integer(11) NOT NULL DEFAULT 0 +); -- ---------------------------- -- Table structure for goku_conn_strategy_api -- ---------------------------- -DROP TABLE IF EXISTS `goku_conn_strategy_api`; -CREATE TABLE `goku_conn_strategy_api` ( - `connID` int(10) unsigned NOT NULL AUTO_INCREMENT, - `strategyID` varchar(255) NOT NULL, - `apiID` int(11) NOT NULL, - `apiMonitorStatus` int(11) NOT NULL DEFAULT '1', - `strategyMonitorStatus` int(11) NOT NULL DEFAULT '1', - `target` varchar(255) DEFAULT NULL, - `updateTime` datetime DEFAULT NULL, - PRIMARY KEY (`connID`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; - --- ---------------------------- --- Records of goku_conn_strategy_api --- ---------------------------- +DROP TABLE IF EXISTS "goku_conn_strategy_api"; +CREATE TABLE "goku_conn_strategy_api" ( + "connID" integer NOT NULL PRIMARY KEY AUTOINCREMENT, + "strategyID" text(255) NOT NULL, + "apiID" integer(11) NOT NULL, + "apiMonitorStatus" integer(11) NOT NULL DEFAULT 0, + "strategyMonitorStatus" integer(11) NOT NULL DEFAULT 0, + "target" text(255), + "updateTime" text +); -- ---------------------------- -- Table structure for goku_gateway -- ---------------------------- -DROP TABLE IF EXISTS `goku_gateway`; -CREATE TABLE `goku_gateway` ( - `id` int(11) unsigned NOT NULL AUTO_INCREMENT, - `successCode` varchar(255) NOT NULL, - `nodeUpdatePeriod` int(11) NOT NULL, - `monitorUpdatePeriod` int(11) NOT NULL, - `alertStatus` tinyint(4) NOT NULL DEFAULT '0', - `sender` varchar(255) DEFAULT NULL, - `senderPassword` varchar(255) DEFAULT NULL, - `smtpAddress` varchar(255) DEFAULT NULL, - `smtpPort` int(11) NOT NULL DEFAULT '25', - `smtpProtocol` tinyint(4) NOT NULL DEFAULT '0', - `monitorTimeout` tinyint(4) NOT NULL DEFAULT '5', - `apiAlertInfo` text, - `nodeAlertInfo` text, - `redisAlertInfo` text, - PRIMARY KEY (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4; - --- ---------------------------- --- Records of goku_gateway --- ---------------------------- -INSERT INTO `goku_gateway` VALUES ('1', '200', '5', '30', '0', null, null, null, '25', '0', '5', '{\"alertAddr\":\"\",\"alertPeriodType\":0,\"logPath\":\"./log/apiAlert\",\"receiverList\":\"\"}', '{\"alertAddr\":\"\",\"logPath\":\"./log/nodeAlert\",\"receiverList\":\"\"}', '{\"alertAddr\":\"\",\"logPath\":\"./log/redisAlert\",\"receiverList\":\"\"}'); +DROP TABLE IF EXISTS "goku_gateway"; +CREATE TABLE "goku_gateway" ( + "id" integer(11) NOT NULL, + "successCode" text(255) NOT NULL, + "nodeUpdatePeriod" integer(11) NOT NULL, + "monitorUpdatePeriod" integer(11) NOT NULL, + "alertStatus" integer(4) NOT NULL, + "alertPeriodType" integer(4) NOT NULL, + "alertAddress" text(255), + "alertLogPath" text(255), + "sender" text(255), + "senderPassword" text(255), + "smtpAddress" text(255), + "smtpPort" integer(11) NOT NULL, + "smtpProtocol" integer(4) NOT NULL, + "receiverList" text(255), + "monitorTimeout" integer(4) NOT NULL, + "apiAlertInfo" text, + "nodeAlertInfo" text, + "redisAlertInfo" text, + "versionID" INTEGER NOT NULL DEFAULT 0, + PRIMARY KEY ("id") +); + +INSERT INTO "goku_gateway" VALUES (1, 200, 1, 30, 0, 0, NULL, NULL, NULL, NULL, NULL, 25, 0, NULL, 0, NULL, NULL, NULL, 0); -- ---------------------------- -- Table structure for goku_gateway_alert -- ---------------------------- -DROP TABLE IF EXISTS `goku_gateway_alert`; -CREATE TABLE `goku_gateway_alert` ( - `alertID` int(11) unsigned NOT NULL AUTO_INCREMENT, - `requestURL` varchar(255) NOT NULL, - `targetServer` varchar(255) NOT NULL, - `alertPeriodType` tinyint(4) NOT NULL, - `alertCount` int(11) NOT NULL, - `updateTime` timestamp NULL DEFAULT NULL, - `targetURL` varchar(255) NOT NULL, - `clusterName` varchar(255) DEFAULT NULL, - `nodeIP` varchar(255) DEFAULT NULL, - PRIMARY KEY (`alertID`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; - --- ---------------------------- --- Records of goku_gateway_alert --- ---------------------------- +DROP TABLE IF EXISTS "goku_gateway_alert"; +CREATE TABLE "goku_gateway_alert" ( + "alertID" integer NOT NULL PRIMARY KEY AUTOINCREMENT, + "requestURL" text(255) NOT NULL, + "targetServer" text(255) NOT NULL, + "alertPeriodType" integer(4) NOT NULL, + "alertCount" integer(11) NOT NULL, + "updateTime" text, + "targetURL" text(255) NOT NULL, + "clusterName" text(255), + "nodeIP" text(255) +); -- ---------------------------- -- Table structure for goku_gateway_api -- ---------------------------- -DROP TABLE IF EXISTS `goku_gateway_api`; -CREATE TABLE `goku_gateway_api` ( - `apiID` int(11) NOT NULL AUTO_INCREMENT, - `groupID` int(11) NOT NULL, - `projectID` int(11) NOT NULL, - `requestURL` varchar(255) NOT NULL, - `apiName` varchar(255) NOT NULL, - `requestMethod` varchar(255) NOT NULL, - `targetServer` varchar(255) DEFAULT NULL, - `targetURL` varchar(255) DEFAULT NULL, - `targetMethod` varchar(255) DEFAULT NULL, - `isFollow` varchar(32) NOT NULL, - `stripPrefix` varchar(32) DEFAULT NULL, - `timeout` int(11) DEFAULT NULL, - `retryCount` int(11) DEFAULT NULL, - `createTime` timestamp NULL DEFAULT NULL, - `updateTime` timestamp NULL DEFAULT NULL, - `alertValve` int(11) NOT NULL DEFAULT '0', - `monitorStatus` int(11) NOT NULL DEFAULT '0', - `managerID` int(11) NOT NULL DEFAULT '0', - `lastUpdateUserID` int(11) NOT NULL DEFAULT '0', - `createUserID` int(11) NOT NULL, - `balanceName` varchar(255) DEFAULT NULL, - `protocol` varchar(20) DEFAULT NULL, - `stripSlash` varchar(32) NOT NULL DEFAULT '1', - PRIMARY KEY (`apiID`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; - --- ---------------------------- --- Records of goku_gateway_api --- ---------------------------- +DROP TABLE IF EXISTS "goku_gateway_api"; +CREATE TABLE "goku_gateway_api" ( + "apiID" integer NOT NULL PRIMARY KEY AUTOINCREMENT, + "groupID" integer(11) NOT NULL, + "projectID" integer(11) NOT NULL, + "requestURL" text(255) NOT NULL, + "apiName" text(255) NOT NULL, + "requestMethod" text(255) NOT NULL, + "targetServer" text(255), + "targetURL" text(255), + "targetMethod" text(255), + "isFollow" text(32) NOT NULL, + "stripPrefix" text(32), + "timeout" integer(11), + "retryCount" integer(11), + "createTime" text, + "updateTime" text, + "alertValve" integer(11) NOT NULL DEFAULT 0, + "monitorStatus" integer(11) NOT NULL DEFAULT 1, + "managerID" integer(11) NOT NULL, + "lastUpdateUserID" integer(11) NOT NULL, + "createUserID" integer(11) NOT NULL, + "balanceName" text(255), + "protocol" text(20), + "stripSlash" text(32), + "apiType" integer NOT NULL DEFAULT 0, + "responseDataType" text NOT NULL DEFAULT origin, + "linkApis" TEXT, + "staticResponse" TEXT +); -- ---------------------------- -- Table structure for goku_gateway_api_group -- ---------------------------- -DROP TABLE IF EXISTS `goku_gateway_api_group`; -CREATE TABLE `goku_gateway_api_group` ( - `groupID` int(11) NOT NULL AUTO_INCREMENT, - `projectID` int(11) NOT NULL, - `groupName` varchar(255) NOT NULL, - `groupPath` varchar(255) DEFAULT NULL, - `groupDepth` tinyint(4) NOT NULL DEFAULT '1', - `parentGroupID` int(11) NOT NULL DEFAULT '0', - PRIMARY KEY (`groupID`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; - --- ---------------------------- --- Records of goku_gateway_api_group --- ---------------------------- +DROP TABLE IF EXISTS "goku_gateway_api_group"; +CREATE TABLE "goku_gateway_api_group" ( + "groupID" integer NOT NULL PRIMARY KEY AUTOINCREMENT, + "projectID" integer(11) NOT NULL, + "groupName" text(255) NOT NULL, + "groupPath" text(255), + "groupDepth" text(255), + "parentGroupID" integer(11) NOT NULL DEFAULT 0 +); -- ---------------------------- -- Table structure for goku_gateway_permission_group -- ---------------------------- -DROP TABLE IF EXISTS `goku_gateway_permission_group`; -CREATE TABLE `goku_gateway_permission_group` ( - `groupID` int(10) unsigned NOT NULL AUTO_INCREMENT, - `groupName` varchar(255) NOT NULL, - `permissions` text, - PRIMARY KEY (`groupID`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; - --- ---------------------------- --- Records of goku_gateway_permission_group --- ---------------------------- +DROP TABLE IF EXISTS "goku_gateway_permission_group"; +CREATE TABLE "goku_gateway_permission_group" ( + "groupID" integer NOT NULL PRIMARY KEY AUTOINCREMENT, + "groupName" text(255) NOT NULL, + "permissions" text +); -- ---------------------------- -- Table structure for goku_gateway_project -- ---------------------------- -DROP TABLE IF EXISTS `goku_gateway_project`; -CREATE TABLE `goku_gateway_project` ( - `projectID` int(10) unsigned NOT NULL AUTO_INCREMENT, - `projectName` varchar(255) NOT NULL, - `createTime` timestamp NULL DEFAULT NULL, - `updateTime` timestamp NULL DEFAULT NULL, - PRIMARY KEY (`projectID`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; - --- ---------------------------- --- Records of goku_gateway_project --- ---------------------------- +DROP TABLE IF EXISTS "goku_gateway_project"; +CREATE TABLE "goku_gateway_project" ( + "projectID" integer NOT NULL PRIMARY KEY AUTOINCREMENT, + "projectName" text(255) NOT NULL, + "createTime" text, + "updateTime" text +); -- ---------------------------- -- Table structure for goku_gateway_strategy -- ---------------------------- -DROP TABLE IF EXISTS `goku_gateway_strategy`; -CREATE TABLE `goku_gateway_strategy` ( - `strategyID` varchar(32) NOT NULL, - `strategyName` varchar(255) NOT NULL, - `updateTime` timestamp NULL DEFAULT NULL, - `createTime` timestamp NULL DEFAULT NULL, - `auth` varchar(255) NOT NULL DEFAULT '0', - `groupID` int(11) NOT NULL DEFAULT '1', - `monitorStatus` int(4) NOT NULL DEFAULT '0', - `enableStatus` int(11) NOT NULL DEFAULT '1', - `strategyType` int(11) NOT NULL DEFAULT '0', - PRIMARY KEY (`strategyID`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +DROP TABLE IF EXISTS "goku_gateway_strategy"; +CREATE TABLE "goku_gateway_strategy" ( + "strategyID" text(32) NOT NULL, + "strategyName" text(255) NOT NULL, + "updateTime" text, + "createTime" text, + "auth" text(255), + "groupID" integer(11) NOT NULL DEFAULT 0, + "monitorStatus" integer(4) NOT NULL DEFAULT 0, + "enableStatus" integer(11) NOT NULL DEFAULT 0, + "strategyType" integer(11) NOT NULL DEFAULT 0, + PRIMARY KEY ("strategyID") +); -- ---------------------------- --- Records of goku_gateway_strategy +-- Records of "goku_gateway_strategy" -- ---------------------------- -INSERT INTO `goku_gateway_strategy` VALUES ('tqvka3', '开放策略', '2019-02-20 09:59:18', '2019-02-20 09:59:21', '0', '1', '0', '1', '1'); +INSERT INTO "goku_gateway_strategy" VALUES ('RGAtKBd', '开放策略', '2019-10-17 00:00:00', '2019-10-17 00:00:00', NULL, 0, 0, 0, 1); -- ---------------------------- -- Table structure for goku_gateway_strategy_group -- ---------------------------- -DROP TABLE IF EXISTS `goku_gateway_strategy_group`; -CREATE TABLE `goku_gateway_strategy_group` ( - `groupID` int(10) unsigned NOT NULL AUTO_INCREMENT, - `groupName` varchar(255) NOT NULL, - `groupType` int(11) NOT NULL DEFAULT '0', - PRIMARY KEY (`groupID`) -) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4; - --- ---------------------------- --- Records of goku_gateway_strategy_group --- ---------------------------- -INSERT INTO `goku_gateway_strategy_group` VALUES ('1', '开放策略', '1'); +DROP TABLE IF EXISTS "goku_gateway_strategy_group"; +CREATE TABLE "goku_gateway_strategy_group" ( + "groupID" integer NOT NULL PRIMARY KEY AUTOINCREMENT, + "groupName" text(255) NOT NULL, + "groupType" integer(11) NOT NULL DEFAULT 0 +); -- ---------------------------- --- Table structure for goku_message +-- Records of "goku_gateway_strategy_group" -- ---------------------------- -DROP TABLE IF EXISTS `goku_message`; -CREATE TABLE `goku_message` ( - `msgID` int(10) unsigned NOT NULL AUTO_INCREMENT, - `updateTime` timestamp NULL DEFAULT NULL, - `msg` varchar(255) DEFAULT NULL, - `msgType` tinyint(4) NOT NULL DEFAULT '0', - PRIMARY KEY (`msgID`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +INSERT INTO "goku_gateway_strategy_group" VALUES (1, '开放分组', 1); -- ---------------------------- --- Records of goku_message +-- Table structure for goku_gateway_version_config -- ---------------------------- +DROP TABLE IF EXISTS "goku_gateway_version_config"; +CREATE TABLE "goku_gateway_version_config" ( + "versionID" integer NOT NULL PRIMARY KEY AUTOINCREMENT, + "name" TEXT NOT NULL, + "version" TEXT, + "remark" TEXT, + "createTime" TEXT, + "updateTime" TEXT, + "publishTime" TEXT, + "config" TEXT, + "balanceConfig" TEXT, + "discoverConfig" TEXT +); -- ---------------------------- -- Table structure for goku_monitor_cluster -- ---------------------------- -DROP TABLE IF EXISTS `goku_monitor_cluster`; -CREATE TABLE `goku_monitor_cluster` ( - `recordID` int(10) unsigned NOT NULL AUTO_INCREMENT, - `strategyID` varchar(20) NOT NULL, - `apiID` int(11) NOT NULL, - `clusterID` int(11) NOT NULL, - `hour` int(11) NOT NULL, - `gatewayRequestCount` int(11) NOT NULL DEFAULT '0', - `gatewaySuccessCount` int(11) NOT NULL DEFAULT '0', - `gatewayStatus2xxCount` int(11) NOT NULL DEFAULT '0', - `gatewayStatus4xxCount` int(11) NOT NULL DEFAULT '0', - `gatewayStatus5xxCount` int(11) NOT NULL DEFAULT '0', - `proxyRequestCount` int(11) NOT NULL DEFAULT '0', - `proxySuccessCount` int(11) NOT NULL DEFAULT '0', - `proxyStatus2xxCount` int(11) NOT NULL DEFAULT '0', - `proxyStatus4xxCount` int(11) NOT NULL DEFAULT '0', - `proxyStatus5xxCount` int(11) NOT NULL DEFAULT '0', - `proxyTimeoutCount` int(11) NOT NULL DEFAULT '0', - `updateTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, - PRIMARY KEY (`recordID`), - UNIQUE KEY `key` (`strategyID`,`apiID`,`clusterID`,`hour`), - KEY `strategyID_2` (`strategyID`), - KEY `apiID` (`apiID`), - KEY `clusterID` (`clusterID`), - KEY `hour` (`hour`), - KEY `strategy_api` (`strategyID`,`apiID`,`clusterID`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; - --- ---------------------------- --- Records of goku_monitor_cluster --- ---------------------------- +DROP TABLE IF EXISTS "goku_monitor_cluster"; +CREATE TABLE "goku_monitor_cluster" ( + "recordID" integer NOT NULL PRIMARY KEY AUTOINCREMENT, + "strategyID" text(20) NOT NULL, + "apiID" integer(11) NOT NULL, + "clusterID" integer(11) NOT NULL, + "hour" integer(11) NOT NULL, + "gatewayRequestCount" integer(11) NOT NULL, + "gatewaySuccessCount" integer(11) NOT NULL, + "gatewayStatus2xxCount" integer(11) NOT NULL, + "gatewayStatus4xxCount" integer(11) NOT NULL, + "gatewayStatus5xxCount" integer(11) NOT NULL, + "proxyRequestCount" integer(11) NOT NULL, + "proxySuccessCount" integer(11) NOT NULL, + "proxyStatus2xxCount" integer(11) NOT NULL, + "proxyStatus4xxCount" integer(11) NOT NULL, + "proxyStatus5xxCount" integer(11) NOT NULL, + "proxyTimeoutCount" integer(11) NOT NULL, + "updateTime" text NOT NULL +); -- ---------------------------- -- Table structure for goku_node_group -- ---------------------------- -DROP TABLE IF EXISTS `goku_node_group`; -CREATE TABLE `goku_node_group` ( - `groupID` int(10) unsigned NOT NULL AUTO_INCREMENT, - `groupName` varchar(255) NOT NULL DEFAULT '', - `groupType` tinyint(4) NOT NULL DEFAULT '0', - `clusterID` int(11) NOT NULL, - PRIMARY KEY (`groupID`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; - --- ---------------------------- --- Records of goku_node_group --- ---------------------------- +DROP TABLE IF EXISTS "goku_node_group"; +CREATE TABLE "goku_node_group" ( + "groupID" integer NOT NULL PRIMARY KEY AUTOINCREMENT, + "groupName" text(255) NOT NULL, + "groupType" integer(4) NOT NULL, + "clusterID" integer(11) NOT NULL +); -- ---------------------------- -- Table structure for goku_node_info -- ---------------------------- -DROP TABLE IF EXISTS `goku_node_info`; -CREATE TABLE `goku_node_info` ( - `nodeID` int(10) unsigned NOT NULL AUTO_INCREMENT, - `nodeIP` varchar(255) NOT NULL, - `updateStatus` tinyint(4) NOT NULL DEFAULT '0', - `createTime` timestamp NULL DEFAULT NULL, - `updateTime` timestamp NULL DEFAULT NULL, - `groupID` int(11) NOT NULL, - `nodeName` varchar(255) NOT NULL, - `nodePort` varchar(255) DEFAULT NULL, - `nodeStatus` varchar(255) DEFAULT NULL, - `version` varchar(255) DEFAULT NULL, - `sshPort` varchar(255) NOT NULL DEFAULT '22', - `userName` varchar(255) DEFAULT NULL, - `password` varchar(255) DEFAULT NULL, - `gatewayPath` varchar(255) DEFAULT NULL, - `key` text, - `authMethod` tinyint(4) NOT NULL DEFAULT '0', - `clusterID` int(11) NOT NULL, - PRIMARY KEY (`nodeID`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; - --- ---------------------------- --- Records of goku_node_info --- ---------------------------- +DROP TABLE IF EXISTS "goku_node_info"; +CREATE TABLE "goku_node_info" ( + "nodeID" integer NOT NULL PRIMARY KEY AUTOINCREMENT, + "nodeIP" text(255) NOT NULL, + "updateStatus" integer(4) NOT NULL DEFAULT 0, + "createTime" text, + "updateTime" text, + "groupID" integer(11) NOT NULL DEFAULT 0, + "nodeName" text(255) NOT NULL, + "nodePort" text(255), + "nodeStatus" integer(11) NOT NULL, + "version" text(255), + "sshPort" text(255) DEFAULT 22, + "userName" text(255), + "password" text(255), + "gatewayPath" text(255), + "key" text, + "authMethod" integer(4) NOT NULL DEFAULT 0, + "clusterID" integer(11) NOT NULL DEFAULT 0 +); -- ---------------------------- -- Table structure for goku_plugin -- ---------------------------- -DROP TABLE IF EXISTS `goku_plugin`; -CREATE TABLE `goku_plugin` ( - `pluginID` int(10) unsigned NOT NULL AUTO_INCREMENT, - `pluginName` varchar(255) NOT NULL, - `chineseName` varchar(255) DEFAULT NULL, - `pluginStatus` tinyint(4) NOT NULL DEFAULT '0', - `pluginPriority` int(4) NOT NULL DEFAULT '0', - `pluginConfig` text, - `pluginInfo` text, - `isStop` tinyint(4) NOT NULL DEFAULT '0', - `pluginType` tinyint(4) NOT NULL DEFAULT '0', - `official` varchar(255) NOT NULL, - `pluginDesc` varchar(255) DEFAULT NULL, - `version` varchar(255) NOT NULL, - `isCheck` tinyint(4) NOT NULL DEFAULT '0', - PRIMARY KEY (`pluginID`) -) ENGINE=InnoDB AUTO_INCREMENT=20 DEFAULT CHARSET=utf8mb4; +DROP TABLE IF EXISTS "goku_plugin"; +CREATE TABLE "goku_plugin" ( + "pluginID" integer NOT NULL PRIMARY KEY AUTOINCREMENT, + "pluginName" text(255) NOT NULL, + "chineseName" text(255), + "pluginStatus" integer(4) NOT NULL, + "pluginPriority" integer(4) NOT NULL, + "pluginConfig" text, + "pluginInfo" text, + "isStop" integer(4) NOT NULL, + "pluginType" integer(4) NOT NULL, + "official" text(255) NOT NULL, + "pluginDesc" text(255), + "version" text(255) NOT NULL, + "isCheck" integer(4) NOT NULL +); --- ---------------------------- --- Table structure for goku_redis_config --- ---------------------------- -DROP TABLE IF EXISTS `goku_redis_config`; -CREATE TABLE `goku_redis_config` ( - `id` int(11) unsigned NOT NULL, - `cluster_id` int(11) NOT NULL DEFAULT '0', - `name` varchar(20) NOT NULL DEFAULT '', - `mod` varchar(10) NOT NULL DEFAULT '', - `addrs` text NOT NULL, - `password` varchar(255) NOT NULL DEFAULT '', - PRIMARY KEY (`id`), - UNIQUE KEY `cluster_id` (`cluster_id`,`name`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; -- ---------------------------- --- Records of goku_redis_config --- ---------------------------- - --- ---------------------------- --- Table structure for goku_redis_info +-- Table structure for goku_service_config -- ---------------------------- -DROP TABLE IF EXISTS `goku_redis_info`; -CREATE TABLE `goku_redis_info` ( - `id` int(11) unsigned NOT NULL AUTO_INCREMENT, - `server` varchar(20) NOT NULL COMMENT 'ip:port', - `info` text NOT NULL COMMENT 'info,json', - `datetime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, - PRIMARY KEY (`id`), - KEY `server` (`server`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; +DROP TABLE IF EXISTS "goku_service_config"; +CREATE TABLE "goku_service_config" ( + "id" integer NOT NULL PRIMARY KEY AUTOINCREMENT, + "name" text(255) NOT NULL, + "default" integer(4), + "driver" text(20) NOT NULL, + "desc" text NOT NULL, + "config" text NOT NULL, + "clusterConfig" text NOT NULL, + "healthCheck" integer(4) NOT NULL, + "healthCheckPath" text(255) NOT NULL, + "healthCheckPeriod" integer(11) NOT NULL, + "healthCheckCode" text(255) NOT NULL, + "healthCheckTimeOut" integer(11) NOT NULL, + "createTime" text NOT NULL, + "updateTime" text NOT NULL +); -- ---------------------------- --- Records of goku_redis_info +-- Table structure for goku_service_discovery -- ---------------------------- +DROP TABLE IF EXISTS "goku_service_discovery"; +CREATE TABLE "goku_service_discovery" ( + "id" integer NOT NULL PRIMARY KEY AUTOINCREMENT, + "name" text(30), + "type" text(20), + "remark" text(500), + "config" text, + "default" text(255), + "createTime" text, + "updateTime" text +); -- ---------------------------- --- Table structure for goku_redis_memory +-- Table structure for goku_table_update_record -- ---------------------------- -DROP TABLE IF EXISTS `goku_redis_memory`; -CREATE TABLE `goku_redis_memory` ( - `id` int(11) unsigned NOT NULL AUTO_INCREMENT, - `server` varchar(20) DEFAULT NULL COMMENT 'ip:port', - `used` int(11) DEFAULT NULL, - `peak` int(11) DEFAULT NULL, - `datetime` timestamp NULL DEFAULT NULL, - PRIMARY KEY (`id`), - KEY `server` (`server`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; +DROP TABLE IF EXISTS "goku_table_update_record"; +CREATE TABLE "goku_table_update_record" ( + "name" text(64) NOT NULL, + "updateTime" text NOT NULL, + "tableID" integer NOT NULL PRIMARY KEY AUTOINCREMENT +); --- ---------------------------- --- Records of goku_redis_memory --- ---------------------------- -- ---------------------------- --- Table structure for goku_redis_server +-- Records of "sqlite_sequence" -- ---------------------------- -DROP TABLE IF EXISTS `goku_redis_server`; -CREATE TABLE `goku_redis_server` ( - `id` int(11) unsigned NOT NULL AUTO_INCREMENT, - `server` varchar(20) NOT NULL DEFAULT '' COMMENT 'ip:port', - `password` varchar(20) DEFAULT NULL, - `clusterID` int(11) NOT NULL DEFAULT '1', - `status` int(11) NOT NULL DEFAULT '0', - PRIMARY KEY (`id`), - UNIQUE KEY `server` (`server`,`clusterID`), - KEY `status` (`status`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; +INSERT INTO "sqlite_sequence" VALUES ('goku_admin', 1); +INSERT INTO "sqlite_sequence" VALUES ('goku_plugin', 30); +INSERT INTO "sqlite_sequence" VALUES ('goku_balance', 0); +INSERT INTO "sqlite_sequence" VALUES ('goku_config_log', 0); +INSERT INTO "sqlite_sequence" VALUES ('goku_gateway_strategy_group', 1); -- ---------------------------- --- Records of goku_redis_server +-- Auto increment value for goku_admin -- ---------------------------- +UPDATE "sqlite_sequence" SET seq = 1 WHERE name = 'goku_admin'; -- ---------------------------- --- Table structure for goku_service_config +-- Auto increment value for goku_balance -- ---------------------------- -DROP TABLE IF EXISTS `goku_service_config`; -CREATE TABLE `goku_service_config` ( - `id` int(11) unsigned NOT NULL AUTO_INCREMENT, - `name` varchar(255) NOT NULL DEFAULT '', - `default` tinyint(4) DEFAULT NULL, - `driver` varchar(20) NOT NULL DEFAULT '' COMMENT 'driver.name', - `desc` text NOT NULL, - `config` text NOT NULL, - `clusterConfig` text NOT NULL, - `healthCheck` tinyint(4) NOT NULL DEFAULT '0', - `healthCheckPath` varchar(255) NOT NULL DEFAULT '/', - `healthCheckPeriod` int(11) NOT NULL DEFAULT '5', - `healthCheckCode` varchar(255) NOT NULL DEFAULT '200', - `healthCheckTimeOut` int(11) NOT NULL DEFAULT '200', - `createTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, - `updateTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, - PRIMARY KEY (`id`), - UNIQUE KEY `name` (`name`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; -- ---------------------------- --- Records of goku_service_config +-- Indexes structure for table goku_balance -- ---------------------------- +CREATE INDEX "balanceName" +ON "goku_balance" ( + "balanceName" ASC +); -- ---------------------------- --- Table structure for goku_service_discovery +-- Indexes structure for table goku_cluster -- ---------------------------- -DROP TABLE IF EXISTS `goku_service_discovery`; -CREATE TABLE `goku_service_discovery` ( - `id` int(11) unsigned NOT NULL AUTO_INCREMENT, - `name` varchar(30) DEFAULT NULL, - `type` varchar(20) DEFAULT NULL, - `remark` varchar(500) DEFAULT NULL, - `config` text, - `default` varchar(255) DEFAULT NULL, - `createTime` timestamp NULL DEFAULT NULL, - `updateTime` timestamp NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP, - PRIMARY KEY (`id`), - UNIQUE KEY `name` (`name`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE INDEX "name" +ON "goku_cluster" ( + "name" ASC +); -- ---------------------------- --- Records of goku_service_discovery +-- Auto increment value for goku_config_log -- ---------------------------- -- ---------------------------- --- Table structure for goku_table_update_record +-- Auto increment value for goku_gateway_strategy_group -- ---------------------------- -DROP TABLE IF EXISTS `goku_table_update_record`; -CREATE TABLE `goku_table_update_record` ( - `name` varchar(64) NOT NULL, - `updateTime` datetime NOT NULL, - `tableID` int(10) unsigned NOT NULL AUTO_INCREMENT, - PRIMARY KEY (`tableID`), - UNIQUE KEY `name` (`name`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; +UPDATE "sqlite_sequence" SET seq = 1 WHERE name = 'goku_gateway_strategy_group'; -- ---------------------------- --- Records of goku_table_update_record +-- Auto increment value for goku_plugin -- ---------------------------- +UPDATE "sqlite_sequence" SET seq = 30 WHERE name = 'goku_plugin'; --- ---------------------------- --- Table structure for goku_version --- ---------------------------- -DROP TABLE IF EXISTS `goku_version`; -CREATE TABLE `goku_version` ( - `version` varchar(20) NOT NULL DEFAULT '', - `sol` int(11) NOT NULL DEFAULT '0', - PRIMARY KEY (`version`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - --- ---------------------------- --- Records of goku_version --- ---------------------------- -INSERT INTO `goku_version` VALUES ('3.0.0', '0'); +PRAGMA foreign_keys = true; diff --git a/app/console/static/assets/font/icomoon.eot b/build/console/resources/static/assets/font/icomoon.eot similarity index 100% rename from app/console/static/assets/font/icomoon.eot rename to build/console/resources/static/assets/font/icomoon.eot diff --git a/app/console/static/assets/font/icomoon.svg b/build/console/resources/static/assets/font/icomoon.svg similarity index 100% rename from app/console/static/assets/font/icomoon.svg rename to build/console/resources/static/assets/font/icomoon.svg diff --git a/app/console/static/assets/font/icomoon.ttf b/build/console/resources/static/assets/font/icomoon.ttf similarity index 100% rename from app/console/static/assets/font/icomoon.ttf rename to build/console/resources/static/assets/font/icomoon.ttf diff --git a/app/console/static/assets/font/icomoon.woff b/build/console/resources/static/assets/font/icomoon.woff similarity index 100% rename from app/console/static/assets/font/icomoon.woff rename to build/console/resources/static/assets/font/icomoon.woff diff --git a/app/console/static/assets/font/iconfont.eot b/build/console/resources/static/assets/font/iconfont.eot similarity index 100% rename from app/console/static/assets/font/iconfont.eot rename to build/console/resources/static/assets/font/iconfont.eot diff --git a/app/console/static/assets/font/iconfont.svg b/build/console/resources/static/assets/font/iconfont.svg similarity index 100% rename from app/console/static/assets/font/iconfont.svg rename to build/console/resources/static/assets/font/iconfont.svg diff --git a/app/console/static/assets/font/iconfont.ttf b/build/console/resources/static/assets/font/iconfont.ttf similarity index 100% rename from app/console/static/assets/font/iconfont.ttf rename to build/console/resources/static/assets/font/iconfont.ttf diff --git a/app/console/static/assets/font/iconfont.woff b/build/console/resources/static/assets/font/iconfont.woff similarity index 100% rename from app/console/static/assets/font/iconfont.woff rename to build/console/resources/static/assets/font/iconfont.woff diff --git a/app/console/static/assets/font/iconfont.woff2 b/build/console/resources/static/assets/font/iconfont.woff2 similarity index 100% rename from app/console/static/assets/font/iconfont.woff2 rename to build/console/resources/static/assets/font/iconfont.woff2 diff --git a/app/console/static/assets/images/eolinker_sim_0.png b/build/console/resources/static/assets/images/eolinker_sim_0.png similarity index 100% rename from app/console/static/assets/images/eolinker_sim_0.png rename to build/console/resources/static/assets/images/eolinker_sim_0.png diff --git a/app/console/static/assets/images/favicon.ico b/build/console/resources/static/assets/images/favicon.ico similarity index 100% rename from app/console/static/assets/images/favicon.ico rename to build/console/resources/static/assets/images/favicon.ico diff --git a/app/console/static/assets/images/logo_admin.png b/build/console/resources/static/assets/images/logo_admin.png similarity index 100% rename from app/console/static/assets/images/logo_admin.png rename to build/console/resources/static/assets/images/logo_admin.png diff --git a/app/console/static/assets/images/logo_white_mini.png b/build/console/resources/static/assets/images/logo_white_mini.png similarity index 100% rename from app/console/static/assets/images/logo_white_mini.png rename to build/console/resources/static/assets/images/logo_white_mini.png diff --git a/app/console/static/assets/images/upload_icons.png b/build/console/resources/static/assets/images/upload_icons.png similarity index 100% rename from app/console/static/assets/images/upload_icons.png rename to build/console/resources/static/assets/images/upload_icons.png diff --git a/app/console/static/index.html b/build/console/resources/static/index.html similarity index 95% rename from app/console/static/index.html rename to build/console/resources/static/index.html index 87bdc5194358259a02d405cb6e65fd48eb490989..9040743ba9c77541fde8ecc1325edfbe9c284e56 100644 --- a/app/console/static/index.html +++ b/build/console/resources/static/index.html @@ -17,7 +17,7 @@ GoKu Gateway | 企业微服务架构的首选解决方案,加速企业数字化转型 - + -

    单位时间 - *单位时间内,API请求失败到达设定阀值则进行告警 -

    -

    - -

    - -
    -

    告警地址 - *接收告警信息的API地址 -

    -

    - - -

    -

    接收邮箱

    - - - - - -
    - - - -
    -
    - - - - -
    - - -
    -
    - -
    - - - \ No newline at end of file diff --git a/console/static/src/app/ui/content/alert/setting/index.js b/console/static/src/app/ui/content/alert/setting/index.js deleted file mode 100644 index ec804cb38d4f2b07f1a5edfd056dc5ab12499d61..0000000000000000000000000000000000000000 --- a/console/static/src/app/ui/content/alert/setting/index.js +++ /dev/null @@ -1,179 +0,0 @@ -(function () { - 'use strict'; - /* - * author:广州银云信息科技有限公司 - * 环境管理相关js - */ - angular.module('eolinker') - .component('alertSetting', { - templateUrl: 'app/ui/content/alert/setting/index.html', - controller: indexController - }) - - indexController.$inject = ['$rootScope', 'CODE', 'GatewayResource', '$scope', 'Authority_CommonService']; - - function indexController($rootScope, CODE, GatewayResource, $scope, Authority_CommonService) { - var vm = this; - vm.data = { - isEdit: false, - menu:'api' - } - vm.ajaxResponse = { - alertInfo: {} - } - vm.fun = {}; - vm.CONST = { - ALERT_METHOD_ARR:[{ - key:'API告警', - value:'api', - tip:"请求成功状态码在 [网关设置>基本设置] 页面设置,返回非成功状态码则视为请求失败;API的告警阀值在API编辑页面设置" - }], - ALERT_PROTOCOL_ARR: [{ - key: '不设置任何协议', - value: 0 - }, { - key: 'SSL协议', - value: 1 - }, { - key: 'TLS协议', - value: 2 - }], - alertPeriodTypeQuery: [{ - key: '1分钟', - value: 0 - }, { - key: '5分钟', - value: 1 - }, { - key: '15分钟', - value: 2 - }, { - key: '30分钟', - value: 3 - }, { - key: '60分钟', - value: 4 - }] - } - vm.service = { - authority: Authority_CommonService - } - var cache = { - alertInfo: {} - },privateFun={}; - vm.fun.startAlert = function () { - if (vm.data.isEdit) { - vm.ajaxResponse.alertInfo.alertStatus = vm.ajaxResponse.alertInfo.alertStatus ? 0 : 1; - } - } - vm.fun.changeNotice = function (arg) { - if (arg.$last) { - vm.ajaxResponse.alertInfo[vm.data.menu+'AlertInfo'].userEmail.push({ - value: '' - }); - } - } - vm.fun.authorityToEdit = function () { - vm.data.isEdit = true; - if(vm.ajaxResponse.alertInfo.apiAlertInfo.userEmail[vm.ajaxResponse.alertInfo.apiAlertInfo.userEmail.length-1].value){ - vm.ajaxResponse.alertInfo.apiAlertInfo.userEmail.push({ - value: '' - }); - } - } - vm.fun.changeAlertMenu=(inputMenuType)=>{ - vm.data.menu=inputMenuType; - } - vm.fun.deleteNotice = function (arg) { - vm.ajaxResponse.alertInfo[vm.data.menu+'AlertInfo'].userEmail.splice(arg.$index, 1); - } - vm.fun.checkIsValidEmail=(inputEmail)=>{ - return !/^[0-9A-Za-z-_.]+@[0-9a-z-]+\.[a-z]{2,20}(\.[a-z]{2,20}){0,1}$/.test(inputEmail)&&inputEmail; - } - privateFun.spliceUserEmailArr=(inputMarkArr)=>{ - for(let val of inputMarkArr){ - if(vm.ajaxResponse.alertInfo[val+'AlertInfo'].userEmail.length>1)vm.ajaxResponse.alertInfo[val+'AlertInfo'].userEmail.splice(vm.ajaxResponse.alertInfo[val+'AlertInfo'].userEmail.length - 1, 1); - } - } - privateFun.setReceiverList=(inputArr)=>{ - let tmpOutput=[]; - for(let val of inputArr){ - if(vm.fun.checkIsValidEmail(val.value))return false; - if (val.value) tmpOutput.push(val.value); - } - return tmpOutput.join(','); - } - vm.fun.editAlert = function () { - vm.data.submitted=true; - if ($scope.ConfirmForm.$invalid) { - $rootScope.InfoModal('编辑失败,请检查信息是否填写完整!', 'error'); - return; - } - let tmpAjaxRequest = { - alertStatus: vm.ajaxResponse.alertInfo.alertStatus, - sender: vm.ajaxResponse.alertInfo.sender, - senderPassword: vm.ajaxResponse.alertInfo.senderPassword, - smtpAddress: vm.ajaxResponse.alertInfo.smtpAddress, - smtpPort: vm.ajaxResponse.alertInfo.smtpPort, - smtpProtocol: vm.ajaxResponse.alertInfo.smtpProtocol, - apiAlertInfo: angular.copy(vm.ajaxResponse.alertInfo.apiAlertInfo) - } - tmpAjaxRequest.apiAlertInfo.receiverList=privateFun.setReceiverList(tmpAjaxRequest.apiAlertInfo.userEmail); - if(tmpAjaxRequest.apiAlertInfo.receiverList===false){ - $rootScope.InfoModal('编辑失败,请检查信息是否填写完整!', 'error'); - return; - } - delete tmpAjaxRequest.apiAlertInfo.userEmail; - tmpAjaxRequest.apiAlertInfo=JSON.stringify(tmpAjaxRequest.apiAlertInfo); - GatewayResource.Config.AlertEdit(tmpAjaxRequest).$promise.then(function (response) { - switch (response.statusCode) { - case CODE.COMMON.SUCCESS: { - $rootScope.InfoModal('修改成功!', 'success'); - vm.data.isEdit = false; - privateFun.spliceUserEmailArr(['api','node','redis']); - angular.copy(vm.ajaxResponse.alertInfo, cache.alertInfo); - break; - } - } - }) - } - vm.fun.cancleAlert = function () { - vm.data.isEdit = false; - vm.data.userEmail = angular.copy(cache.userEmail); - vm.ajaxResponse.alertInfo = angular.copy(cache.alertInfo); - } - privateFun.splitMailStr=(inputMailStr)=>{ - let tmpOutput=[]; - (inputMailStr.split(',')).map(function (val, key) { - tmpOutput.push({ - value: val - }) - }); - return tmpOutput; - } - vm.$onInit = function () { - GatewayResource.Config.AlertInfo().$promise.then(function (response) { - switch (response.statusCode) { - case CODE.COMMON.SUCCESS: { - vm.ajaxResponse.alertInfo = response.gatewayConfig || { - "alertStatus": 0, - "sender": "", - "senderPassword": "", - "smtpAddress": "", - "smtpPort": '', - "smtpProtocol": 0, - "apiAlertInfo": { - alertPeriodType:0, - receiverList:'', - alertAddr:'' - } - }; - vm.ajaxResponse.alertInfo.apiAlertInfo.userEmail=privateFun.splitMailStr(vm.ajaxResponse.alertInfo.apiAlertInfo.receiverList); - angular.copy(vm.ajaxResponse.alertInfo, cache.alertInfo); - break; - } - } - }) - }; - } -})(); \ No newline at end of file diff --git a/console/static/src/app/ui/content/cluster/_default/index.html b/console/static/src/app/ui/content/cluster/_default/index.html index 2c33a1b029e653fcc2aa8f148946b3c010c414f6..84aba940f5905f09aaee64652384c62472a594d3 100644 --- a/console/static/src/app/ui/content/cluster/_default/index.html +++ b/console/static/src/app/ui/content/cluster/_default/index.html @@ -1,5 +1,5 @@
    - +
    diff --git a/console/static/src/app/ui/content/cluster/_default/index.js b/console/static/src/app/ui/content/cluster/_default/index.js index 3ad1c1a11e89dce3eb5a07c28933b9a6f4521c83..f8d4530644fbb6c208b6c5cca7b81dfe73c8f0bb 100644 --- a/console/static/src/app/ui/content/cluster/_default/index.js +++ b/console/static/src/app/ui/content/cluster/_default/index.js @@ -6,9 +6,9 @@ controller: indexController }) - indexController.$inject = ['$scope', 'GatewayResource', '$rootScope', '$state']; + indexController.$inject = ['$scope', 'GatewayResource','CODE', '$rootScope', '$state']; - function indexController($scope, GatewayResource, $rootScope, $state) { + function indexController($scope, GatewayResource,CODE, $rootScope, $state) { var vm = this; vm.ajaxResponse = { query: [] @@ -26,7 +26,7 @@ return $rootScope.global.ajax.Query_Cluster.$promise; } /** - * @name 进入集群内页 + * @desc 进入集群内页 */ privateFun.inToCluster=(inputArg)=>{ $state.go('home.cluster.node.default',{ @@ -34,11 +34,102 @@ clusterName:inputArg.item.title }); } + /** + * @desc 编辑集群 + */ + privateFun.editCluster = function (inputArg) { + let tmpObj={ + edit:{ + title:"修改集群", + opr:"Edit", + disabled:true, + item:inputArg.item + }, + add:{ + title:"新增集群", + opr:"Add", + item:{}, + tip:"创建后不可修改" + } + }; + inputArg.item=tmpObj[inputArg.status].item; + let tmpModal = { + title: tmpObj[inputArg.status].title, + resource: GatewayResource.Cluster[tmpObj[inputArg.status].opr], + textArray: [{ + type: 'input', + title: `Primary Key`, + value: inputArg.item.name||"", + key:"name", + disabled:tmpObj[inputArg.status].disabled, + placeholder:"具有唯一性,支持英文(不区分大小写)、下划线、数字", + pattern:"^[a-zA-Z][a-zA-z0-9_]*$", + tip:tmpObj[inputArg.status].tip||"", + required:true + },{ + type: 'input', + title: '集群名称', + value: inputArg.item.title||"", + key:"title", + placeholder:"具有唯一性,支持中文、英文(不区分大小写)、下划线、数字", + required:true + },{ + type: 'input', + title: '备注', + key:"note", + value: inputArg.item.note||"", + placeholder:"集群备注" + }] + } + $rootScope.MixInputModal(tmpModal,(callback)=>{ + if(callback){ + vm.fun.init(); + $rootScope.InfoModal(`${tmpModal.title}成功`,'success'); + } + }) + } + privateFun.delete = function (inputArg) { + let tmpAjaxRequest={ + name:inputArg.item.name + },tmpModal={ + title:"删除集群" + } + $rootScope.EnsureModal(tmpModal.title, null, '确认删除?', {btnMessage:'删除'}, function (callback) { + if (callback) { + GatewayResource.Cluster.Delete(tmpAjaxRequest).$promise.then(function (response) { + switch (response.statusCode) { + case CODE.COMMON.SUCCESS: + { + vm.ajaxResponse.query.splice(inputArg.$index, 1); + $rootScope.InfoModal(tmpModal.title + '成功', 'success'); + break; + } + } + }) + } + }); + } vm.$onInit = function () { $scope.$emit('$WindowTitleSet', { list: ['网关节点'] }); vm.component.menuObject = { + list: [{ + type: 'btn', + class: 'btn-group-li pull-left', + btnList: [{ + name: '新建集群', + icon: 'jiahao', + class: 'eo_theme_btn_success block-btn', + fun: { + default: privateFun.editCluster, + params: { + status: 'add' + } + } + }] + + }], setting: { class: "common-menu-fixed-seperate common-menu-lg", titleAuthority: 'showTitle', @@ -59,17 +150,28 @@ key: '备注', html: '{{item.note}}' }, { - key: '数据库地址', - html: `{{item.db.host+':'+item.db.port+'/'+item.db.database}}` + key: 'Primary Key', + html: '{{item.name}}' }], operate: { funArr: [{ key: '查看详情', fun: privateFun.inToCluster + }, + { + key: '修改', + fun: privateFun.editCluster, + params: { + status: 'edit' + } + }, { + key: `删除`, + fun: privateFun.delete, + itemExpression:`ng-disabled="item.nodeCount"` } ], power: -1, - class:'w_100' + class:'w_200' } }, baseFun:{ diff --git a/console/static/src/app/ui/content/cluster/_default/index.scss b/console/static/src/app/ui/content/cluster/_default/index.scss index 93a3d5534ee6e70a8b594bfc971c763637db881e..9dc553f7a6e6068516f87308b7f3a473d11a7bf1 100644 --- a/console/static/src/app/ui/content/cluster/_default/index.scss +++ b/console/static/src/app/ui/content/cluster/_default/index.scss @@ -1,16 +1,8 @@ cluster-default{ - list-default-common-component .first-level-article{ - margin-top: 0; + list-default-common-component tip-directive{ + margin-left: 0; } - menu-Default-Common-Component .common_menu_ul .search-form { - position: absolute; - right: 20px; - top: 10px; - } - .menu-title:nth-child(2){ - padding-bottom: 0; - } - menu-Default-Common-Component .disabled-operate-has-second-title-placeholder{ - height: 113px; + list-default-common-component .eo-tip-container{ + margin-left: -15px !important; } } \ No newline at end of file diff --git a/console/static/src/app/ui/content/gpedit/common/group/index.js b/console/static/src/app/ui/content/gpedit/common/group/index.js index 35a777f4d61a94f1f61adbda6f0ae3760d40eed6..3b2c58d6f98dc794686a650057a832156d55cf50 100644 --- a/console/static/src/app/ui/content/gpedit/common/group/index.js +++ b/console/static/src/app/ui/content/gpedit/common/group/index.js @@ -80,7 +80,7 @@ params: { modal: { title: '删除分组', - message: '删除分组后,该分组内的网关节点也将被删除,该操作无法撤销,确认删除?' + message: '删除分组后,该分组内的策略也将被删除,该操作无法撤销,确认删除?' } } }] diff --git a/console/static/src/app/ui/content/gpedit/inside/content/api/_default/index.js b/console/static/src/app/ui/content/gpedit/inside/content/api/_default/index.js index b924b47783eee32907f203a7e99dffde66cba000..12578f20fa601678dd629471aa29c2c0764bab35 100644 --- a/console/static/src/app/ui/content/gpedit/inside/content/api/_default/index.js +++ b/console/static/src/app/ui/content/gpedit/inside/content/api/_default/index.js @@ -238,7 +238,7 @@ primaryKey:'apiID', default: [{ key: 'APIs', - html: '{{item.apiName}}', + html: `{{item.apiType?"编排":"普通"}}{{item.apiName}}`, draggableCacheMark: 'name' },{ key: '请求方式', diff --git a/console/static/src/app/ui/content/gpedit/inside/content/api/operate/index.js b/console/static/src/app/ui/content/gpedit/inside/content/api/operate/index.js index bdd952cf957f0716a0f5a037a362f0cdd76a3705..169a8b2a61325b0331116ac769eac33f602fbf2d 100644 --- a/console/static/src/app/ui/content/gpedit/inside/content/api/operate/index.js +++ b/console/static/src/app/ui/content/gpedit/inside/content/api/operate/index.js @@ -228,7 +228,7 @@ primaryKey: 'apiID', default: [{ key: 'APIs', - html: '{{item.apiName}}' + html: `{{item.apiType?"编排":"普通"}}{{item.apiName}}`, }, { key: '请求方式', html: '{{item.requestMethod}}' diff --git a/console/static/src/app/ui/content/monitor/global/index.html b/console/static/src/app/ui/content/monitor/global/index.html index ba4f01cca903e57de6965727f3e07cf2aef00677..72ef63fdd8f80419f14415818927e446656c3dad 100644 --- a/console/static/src/app/ui/content/monitor/global/index.html +++ b/console/static/src/app/ui/content/monitor/global/index.html @@ -19,10 +19,6 @@

    节点

    -
    -

    {{$ctrl.ajaxResponse.monitorInfo.baseInfo.redisCount}}

    -

    REDIS

    -
    @@ -44,63 +40,6 @@

    - -
    -
    -
    访问统计
    -
    -
    -

    {{$ctrl.ajaxResponse.monitorInfo.gatewayRequestInfo.gatewayRequestCount}}

    -

    请求到达总数

    -
    -
    -

    {{$ctrl.ajaxResponse.monitorInfo.gatewayRequestInfo.gatewayErrorCount||0}}

    -

    请求异常数量

    -
    -
    -

    - {{$ctrl.ajaxResponse.monitorInfo.gatewayRequestInfo.gatewaySuccessRate}} -

    -

    请求成功率

    -
    -
    -
    -
    -
    转发统计
    -
    -
    -

    {{$ctrl.ajaxResponse.monitorInfo.proxyRequestInfo.proxyRequestCount}}

    -

    请求转发总数

    -
    -
    -

    {{$ctrl.ajaxResponse.monitorInfo.proxyRequestInfo.proxyErrorCount||0}}

    -

    转发异常数量

    -
    -
    -

    - {{$ctrl.ajaxResponse.monitorInfo.proxyRequestInfo.proxySuccessRate}} -

    -

    转发成功率

    -
    -
    -
    -
    帮助
    diff --git a/console/static/src/app/ui/content/monitor/global/index.js b/console/static/src/app/ui/content/monitor/global/index.js index f4b193451841500c8ea1ffaa2a1df76af0d39cac..faf8786e61f9918b2ead8574cee2ed6fef538e6a 100644 --- a/console/static/src/app/ui/content/monitor/global/index.js +++ b/console/static/src/app/ui/content/monitor/global/index.js @@ -13,32 +13,9 @@ var vm = this, privateFun = {} - vm.data = { - cluster:'', - tabSummaryList: [{ - name: '今天', - active: 0 - }, { - name: '近3天', - active: 1 - }, { - name: '近7天', - active: 2 - }, { - active: 3, - type: 'html' - }], - granularityList: [{ - name: '小时', - active: 1 - }, { - name: '天', - active: 0 - }] - } + vm.data = {} vm.fun = {}; vm.ajaxRequest={ - projectHashKey: $state.params.projectHashKey, table: { beginTime: null, endTime: null, @@ -61,60 +38,13 @@ overviewObject: {}, listDefaultCommonObject: null } - privateFun.filterTime = function (mark) { - var template = { - startTime: uibDateParser.filter(vm.directive[mark + 'TimeObject'].request.startTime, 'yyyy-M!-dd'), - endTime: uibDateParser.filter(vm.directive[mark + 'TimeObject'].request.endTime, 'yyyy-M!-dd') - } - if (!template.startTime) { - $rootScope.InfoModal('请选择开始日期', 'error'); - } else if (!template.endTime) { - $rootScope.InfoModal('请选择结束日期', 'error'); - } else { - - vm.ajaxRequest[mark].period = 3; - vm.directive[mark + 'TimeObject'].show = false; - if (template.startTime > template.endTime) { - template.templateTime = template.startTime; - template.startTime = template.endTime; - template.endTime = template.templateTime; - } - vm.ajaxRequest[mark].beginTime = template.startTime; - vm.ajaxRequest[mark].endTime = template.endTime; - privateFun.initTable(); - } - } - vm.fun.tableFilterTime = function (arg) { - if (arg) arg.$event.stopPropagation(); - privateFun.filterTime('table') - } - vm.fun.changeMenu = function (mark, arg) { - if (arg.item.active == 3) { - vm.directive.tableTimeObject.show = true; - arg.$event.stopPropagation(); - return; - } else { - vm.directive.tableTimeObject.request = {}; - vm.ajaxRequest.table.beginTime = null; - } - vm.ajaxRequest.table.period = arg.item.active; - privateFun.initTable(); - } privateFun.initTable=function(){ - var template = { - promise: null, - request: { - beginTime: vm.ajaxRequest.table.beginTime, - endTime: vm.ajaxRequest.table.endTime, - period: vm.ajaxRequest.table.period, - cluster:vm.data.cluster - } - } - template.promise = GatewayResource.Monitor.Info(template.request).$promise; - template.promise.then(function (response) { + let tmpPromise; + tmpPromise = GatewayResource.Monitor.Info().$promise; + tmpPromise.then(function (response) { vm.ajaxResponse.monitorInfo = response || {}; }) - return template.promise; + return tmpPromise; } privateFun.refresh=function(){ var tmpPromise=GatewayResource.Monitor.Refresh().$promise; @@ -146,23 +76,12 @@ type:'default' } switch(arg.type){ - case 'default':{ - if(vm.data.cluster){ - return privateFun.initTable(); - }else{ - let tmpPromise=privateFun.initCluster(); - tmpPromise.finally(()=>{ - privateFun.initTable(); - }) - return tmpPromise; - } + default:{ + return privateFun.initTable();; } case 'refresh':{ return privateFun.refresh(); } - case 'cluster':{ - return privateFun.initTable(); - } } } @@ -175,28 +94,9 @@ } }); } - vm.fun.changeClutser=()=>{ - $scope.$emit('$TransferStation', { - state: '$Init_LoadingCommonComponent', - data:{ - type:'cluster' - } - }); - } - privateFun.initCluster=()=>{ - let tmpPromise=GatewayResource.Cluster.SimpleQuery().$promise; - tmpPromise.then((response)=>{ - vm.ajaxResponse.clusterArr=[{ - title:"所有集群", - name:null - }].concat(response.clusters||[]); - vm.data.cluster=vm.ajaxResponse.clusterArr[0].name; - }) - return tmpPromise; - } vm.$onInit = function () { $scope.$emit('$WindowTitleSet', { - list: ['监控面板'] + list: ['首页'] }); privateFun.initComponent(); } diff --git a/console/static/src/app/ui/content/project/api/_default/index.js b/console/static/src/app/ui/content/project/api/_default/index.js index a7bac182d41eb672f66095c68eb6e33b33eac1b8..671bf7f92e64a8e25d7d6e55c63a49d9195ee593 100644 --- a/console/static/src/app/ui/content/project/api/_default/index.js +++ b/console/static/src/app/ui/content/project/api/_default/index.js @@ -309,7 +309,7 @@ primaryKey: 'apiID', default: [{ key: 'APIs', - html: '{{item.apiName}}', + html: `{{item.apiType?"编排":"普通"}}{{item.apiName}}`, draggableCacheMark: 'name' }, { key: '请求方式', @@ -397,11 +397,19 @@ class: 'pull-left', btnClass: 'eo_theme_btn_success', btnList: [{ - name: '新建接口', + name: '普通接口', fun: { default: privateFun.edit, params: { - status: 'add' + status: 'add-common' + } + } + }, { + name: '链式调用(服务编排)', + fun: { + default: privateFun.edit, + params: { + status: 'add-link' } } }, { diff --git a/console/static/src/app/ui/content/project/api/_default/index.scss b/console/static/src/app/ui/content/project/api/_default/index.scss index 4d54c311bb7700ba3e832d63f229cf3442f26c60..3b7b2421aa88106d9d8472a4c48d78035e2d3ffa 100644 --- a/console/static/src/app/ui/content/project/api/_default/index.scss +++ b/console/static/src/app/ui/content/project/api/_default/index.scss @@ -2,6 +2,9 @@ api-default{ list-default-common-component .fixed-height-list{ @include eo-height(100%,183px); } + menu-Default-Common-Component .more-btn-div{ + right: auto !important; + } } api-Group{ .common-scss-group{ diff --git a/console/static/src/app/ui/content/project/api/group/index.js b/console/static/src/app/ui/content/project/api/group/index.js index 6ac2e514cf0cc5c6817f37cf12ca51d7faaadb20..a14e27b417e4b30b85ea3cb221c0877c74396957 100644 --- a/console/static/src/app/ui/content/project/api/group/index.js +++ b/console/static/src/app/ui/content/project/api/group/index.js @@ -135,7 +135,7 @@ params: { modal: { title: '删除分组', - message: '删除分组后,该分组下的api将全部移入接口回收站,该操作无法撤销,确认删除?' + message: '删除分组后,该分组内的API也将被删除,该操作无法撤销,确认删除?' } }, key: '删除' diff --git a/console/static/src/app/ui/content/project/api/operate/index.html b/console/static/src/app/ui/content/project/api/operate/index.html index 2935d14b69e85929fa3b8bf75302d0edef978a5a..e24ab76a6cec532efee2c7f8e3a1899fdd81e361 100644 --- a/console/static/src/app/ui/content/project/api/operate/index.html +++ b/console/static/src/app/ui/content/project/api/operate/index.html @@ -1,137 +1,137 @@ -
    - - -
    - -
    -

    分组:

    -

    - - -

    -

    名称:

    -

    - -

    + + +
    + +

    分组:

    +

    + + +

    +

    + 返回数据类型: + +

    +

    + +

    +

    名称:

    +

    + +

    + +

    + 请求方式: + +

    +
    +
    + + + +
    +
    +

    + 请求路径: + +

    +

    + +

    +

    - 请求方式: - -

    -
    -
    - - - + 转发地址/负载后端(Target/Upstream): + +

    +
    + +
    + + +
    -
    -

    - 请求路径: - -

    -

    - -

    +

    + 转发路径: + +

    +

    + +

    +

    + 转发方式: + +

    +

    + +

    +
    +

    + 超时限制(ms): + +

    +

    + +

    +

    - 转发地址/负载后端(Target/Upstream): - -

    -
    - -
    - - -
    + 重试次数: + +

    +

    + +

    +
    +
    + +
    +
    +
    +
    + 异常返回: +
    -

    - 转发路径: - -

    -

    - -

    -
    -
    - - 转发时去除匹配网关请求路径,实际转发路径:{{$ctrl.ajaxResponse.apiInfo.targetURL}}{{$ctrl.ajaxResponse.apiInfo.stripPrefix?'':($ctrl.ajaxResponse.apiInfo.requestURL|Filter_SlashSymbol)}} - -
    -
    - - 转发时去除路径中多余的"/",例如“//login”会被解析成“/login” - -
    +
    -

    - 转发方式: - -

    -

    - -

    -

    - 超时限制(ms): - -

    -

    - -

    -

    - 重试次数[非必填]: - -

    -

    - -

    -

    告警阀值(次)[非必填]:*单位时间内,请求失败到达该阀值进行告警,0代表不进行告警;单位时间在告警管理处设定 -

    -

    - -

    - -
    -
    -
    +

    + +

    -
    -
    \ No newline at end of file +
    +
    +
    \ No newline at end of file diff --git a/console/static/src/app/ui/content/project/api/operate/index.js b/console/static/src/app/ui/content/project/api/operate/index.js index e452a8ba5999ceeb048c3da5e9a1b5c776cb8250..6b2a7d05fc359187d20b27208025a84bca4a3dfa 100644 --- a/console/static/src/app/ui/content/project/api/operate/index.js +++ b/console/static/src/app/ui/content/project/api/operate/index.js @@ -20,6 +20,8 @@ function indexController($scope, GatewayResource, $state, CODE, $rootScope, GroupService) { var vm = this; vm.data = { + status:$state.params.status, + isSpreedStaticResponse:true, requestMethod: false, apiGroup: null, requestMethodList: [{ @@ -51,6 +53,15 @@ groupID: $state.params.groupID || -1, apiID: $state.params.apiID } + vm.CONST = { + PROTOCOL_ARR: [{ + key: 'HTTP', + value: 'http' + }, { + key: 'HTTPS', + value: 'https' + }] + } vm.ajaxResponse = { apiInfo: { apiName: '', @@ -60,12 +71,12 @@ targetURL: '/', targetMethod: '-1', isFollow: true, - stripPrefix: true, - stripSlash:true, timeout: '2000', - retryCount: '', - alertValve: 0, - protocol: 'http' + retryCount: 0, + protocol: 'http', + responseDataType:$state.params.status==="add-link"?"json":"origin", + linkApis:[], + apiType:$state.params.status==="add-link"?1:0 }, balanceList:[] } @@ -77,26 +88,83 @@ menuObject: { list: [] }, - balanceAutoCompleteObj:{required:true,pattern:'[\\w\\._\\/\\-\\:]+'} + balanceAutoCompleteObj:{required:true,pattern:'[\\w\\._\\/\\-\\:]+'}, + apiLinkStepObj:{ + CONST:{ + PROTOCOL_ARR:vm.CONST.PROTOCOL_ARR + } + } }; - vm.CONST = { - PROTOCOL_ARR: [{ - key: 'HTTP', - value: 'http' - }, { - key: 'HTTPS', - value: 'https' - }] - } + var privateFun = {}; vm.fun.back = function () { $state.go('home.project.api.default', { 'groupID': $state.params.groupID }); } + privateFun.parseLinkApis=()=>{ + if(vm.ajaxResponse.apiInfo.apiType===0)return true; + let tmpLinkApis=angular.copy(vm.ajaxResponse.apiInfo.linkApis); + for(let key in tmpLinkApis){ + let val=tmpLinkApis[key]; + if(!/^[1-9]\d*$/.test(val.timeout)){ + return false; + } + val.timeout=parseInt(val.timeout); + if(!/(^[1-9]\d*$)|(^0$)/.test(val.retry)){ + return false; + } + val.retry=parseInt(val.retry); + let tmpList=[]; + val.blackList.map((childItem)=>{ + if(childItem.ip){ + tmpList.push(childItem.ip); + } + }) + val.blackList=tmpList; + tmpList=[]; + val.whiteList.map((childItem)=>{ + if(childItem.ip){ + tmpList.push(childItem.ip); + } + }) + val.whiteList=tmpList; + val.delete=val.delete.filter((childItem)=>{ + if(childItem.origin)return childItem; + }); + tmpList=[]; + for(let childKey in val.move){ + let childItem =val.move[childKey]; + if(childItem.target){ + if(childItem.origin){ + tmpList.push(childItem) + }else return; + } + } + val.move=tmpList; + tmpList=[]; + for(let childKey in val.rename){ + let childItem =val.rename[childKey]; + if(childItem.target){ + if(childItem.origin){ + childItem.target=(childItem.prefixStr||"")+childItem.target; + tmpList.push(childItem) + }else return; + } + } + val.rename=tmpList; + } + return JSON.stringify(tmpLinkApis,(tmpInputKey,tmpInputItem)=>{ + if (/(prefixStr)|(prefixStr)|($$hashKey)/.test(tmpInputKey)) { + return undefined; + } + return tmpInputItem; + }) + } privateFun.confirm = function () { vm.data.requestMethod = false; var tmpOutput = { + apiType:vm.ajaxResponse.apiInfo.apiType, projectID: vm.ajaxRequest.projectID, groupID: vm.component.selectMultistageCommonComponentObject.new.value==-1?0:vm.component.selectMultistageCommonComponentObject.new.value, apiName: vm.ajaxResponse.apiInfo.apiName, @@ -105,12 +173,11 @@ balanceName: vm.ajaxResponse.apiInfo.balanceName, targetURL: vm.ajaxResponse.apiInfo.targetURL, targetMethod: vm.ajaxResponse.apiInfo.targetMethod, - stripPrefix: vm.ajaxResponse.apiInfo.stripPrefix, + responseDataType: vm.ajaxResponse.apiInfo.responseDataType, timeout: vm.ajaxResponse.apiInfo.timeout, retryCount: vm.ajaxResponse.apiInfo.retryCount, - alertValve: vm.ajaxResponse.apiInfo.alertValve, protocol:vm.ajaxResponse.apiInfo.protocol, - stripSlash:vm.ajaxResponse.apiInfo.stripSlash + staticResponse:vm.ajaxResponse.apiInfo.staticResponse } for (var key in vm.data.requestMethodList) { if (vm.data.requestMethodList[key].checkbox) { @@ -122,7 +189,7 @@ } else { vm.data.requestMethod = true; } - switch ($state.params.status) { + switch (vm.data.status) { case 'edit': { tmpOutput.apiID = vm.ajaxRequest.apiID break; @@ -141,12 +208,13 @@ }); } vm.fun.requestProcessing = function (arg) { - var tmpAjaxRequest = privateFun.confirm(), - tmpPromise = null; + var tmpPromise = null,tmpLinkApis=privateFun.parseLinkApis(),tmpAjaxRequest=privateFun.confirm(); vm.data.submitted = true; - if ($scope.ConfirmForm.$valid && !vm.data.requestMethod) { + if ($scope.ConfirmForm.$valid && !vm.data.requestMethod&&tmpLinkApis) { tmpPromise = privateFun.edit({ - request: tmpAjaxRequest + request: tmpLinkApis!==true?Object.assign({},tmpAjaxRequest,{ + linkApis:tmpLinkApis + }):tmpAjaxRequest }); } else { $rootScope.InfoModal('API编辑失败,请检查信息是否填写完整!', 'error'); @@ -156,7 +224,7 @@ } privateFun.edit = function (arg) { var tmpPromise = null; - if ($state.params.status == 'edit') { + if (vm.data.status == 'edit') { tmpPromise = GatewayResource.Api.Edit(arg.request).$promise; tmpPromise.then(function (response) { switch (response.statusCode) { @@ -196,7 +264,7 @@ projectID: vm.ajaxRequest.projectID, apiID: vm.ajaxRequest.apiID } - switch ($state.params.status) { + switch (vm.data.status) { case 'edit': { GatewayResource.Api.Info(tmpAjaxRequest).$promise.then(function (response) { switch (response.statusCode) { @@ -237,6 +305,46 @@ } } } + if(response.apiInfo.apiType===1){ + vm.ajaxResponse.apiInfo.linkApis.map((val)=>{ + let tmpList=[]; + val.timeout=(val.timeout||2000).toString(); + val.blackList.map((childItem)=>{ + tmpList.push({ + ip:childItem + }) + }) + val.blackList=tmpList.concat([{ip:""}]); + tmpList=[]; + val.whiteList.map((childItem)=>{ + tmpList.push({ + ip:childItem + }) + }) + val.whiteList=tmpList.concat([{ip:""}]); + tmpList=[]; + val.delete.map((childItem)=>{ + tmpList.push(childItem) + }) + val.delete=tmpList.concat([{origin:""}]); + + tmpList=[]; + val.move.map((childItem)=>{ + tmpList.push(childItem) + }) + val.move=tmpList.concat([{origin:"",target:""}]); + + tmpList=[]; + val.rename.map((childItem)=>{ + let tmpArr=childItem.target.split('.'); + childItem.prefixStr=tmpArr.slice(0,tmpArr.length-1).join('.'); + if(childItem.prefixStr)childItem.prefixStr+="."; + childItem.target=tmpArr[tmpArr.length-1]; + tmpList.push(childItem) + }) + val.rename=tmpList.concat([{origin:"",target:""}]); + }) + } break; } } diff --git a/console/static/src/app/ui/content/project/api/operate/index.scss b/console/static/src/app/ui/content/project/api/operate/index.scss index 18936898b9e4e614d167e05dd61c9a791365ae23..f70b4e03783eb782623dd319b02fe6c6eeb356cb 100644 --- a/console/static/src/app/ui/content/project/api/operate/index.scss +++ b/console/static/src/app/ui/content/project/api/operate/index.scss @@ -1,27 +1,33 @@ api-operate { - .home-common-project-list { - z-index: 0; - tip-directive{ - margin-left: 0; - } - .first-level-article { - margin-left: $PLATE_PADDING; - margin-right:$PLATE_PADDING; + z-index: 0; + tip-directive{ + margin-left: 0; + } + .abnormal_container_aop{ + border: 1px solid #ddd; + border-radius: 4px; + width: 578px; + } + .abnormal_text_aop{ + background-color: #fafafa; + } + .first-level-article { + margin-left: $PLATE_PADDING; + margin-right:$PLATE_PADDING; - border: 1px solid #e5e5e5; - background-color: #fff; - font-size: 14px; - padding: 10px; - } - .select_common_aop,.input_common_aop { - width: 578px; - } - .select_target_protocol_aop{ - width: 100px; - } - .input_target_aop{ - width: 473px; - } + border: 1px solid #e5e5e5; + background-color: #fff; + font-size: 14px; + padding: 10px; + } + .select_common_aop,.input_common_aop { + width: 578px; + } + .select_target_protocol_aop{ + width: 100px; + } + .input_target_aop{ + width: 473px; } } \ No newline at end of file diff --git a/console/static/src/app/ui/content/publish/index.html b/console/static/src/app/ui/content/publish/index.html new file mode 100644 index 0000000000000000000000000000000000000000..1837483c707e017329c9e312aa747318af5a4e13 --- /dev/null +++ b/console/static/src/app/ui/content/publish/index.html @@ -0,0 +1,5 @@ +
    + + +
    + \ No newline at end of file diff --git a/console/static/src/app/ui/content/publish/index.js b/console/static/src/app/ui/content/publish/index.js new file mode 100644 index 0000000000000000000000000000000000000000..022ddf3cdc5a7303267065f000fb587b8bb9fd11 --- /dev/null +++ b/console/static/src/app/ui/content/publish/index.js @@ -0,0 +1,279 @@ +(function () { + 'use strict'; + angular.module('eolinker') + .config(['$stateProvider', 'RouteHelpersProvider', function ($stateProvider, helper) { + $stateProvider + .state('home.publish', { + url: '/publish', + template: '' + }) + }]) + .component('publish', { + templateUrl: 'app/ui/content/publish/index.html', + controller: indexController + }) + + indexController.$inject = ['$scope', 'GatewayResource', '$state', '$rootScope', 'CODE', 'Authority_CommonService']; + + function indexController($scope, GatewayResource, $state, $rootScope, CODE, Authority_CommonService) { + var vm = this; + vm.data = { + batch: {}, + alreadyHadPublishConf:false //是否已经存在已发布的配置 + } + vm.ajaxRequest = { + versionID: [], + keyword: window.sessionStorage.getItem('COMMON_SEARCH_TIP') + }; + vm.ajaxResponse = {}; + vm.fun = {}; + vm.service = { + authority: Authority_CommonService + } + vm.component = { + menuObject: null + } + var privateFun = {},cache={ + publishQuery:[] + }; + + vm.fun.init = function () { + let tmpAjaxRequest = {}; + if (vm.ajaxRequest.keyword) { + tmpAjaxRequest.keyword = vm.ajaxRequest.keyword; + } + vm.data.alreadyHadPublishConf=false; + $rootScope.global.ajax.Query_Version = GatewayResource.Version.Query(tmpAjaxRequest); + $rootScope.global.ajax.Query_Version.$promise.then(function (response) { + vm.ajaxResponse.query = response.configList || []; + if(vm.ajaxResponse.query.length>0&&vm.ajaxResponse.query[0].publishStatus===1){ + vm.data.alreadyHadPublishConf=true; + } + }) + return $rootScope.global.ajax.Query_Version.$promise; + } + privateFun.generateConf = function () { + let tmpModal = { + title: "生成配置", + resource: GatewayResource.Version.Add, + btnObject:{ + text:"保存" + }, + tmpBtnObj:{ + ajaxRequest:{ + publish:1 + }, + text:"保存并发布" + }, + textArray: [{ + type: 'input', + title: "名称", + key:"name", + placeholder:"配置名称", + required:true + },{ + type: 'input', + title: '版本号', + key:"version", + placeholder:"配置版本号,如1.0" + },{ + type: 'input', + title: '备注', + key:"remark", + placeholder:"配置备注" + }] + } + $rootScope.MixInputModal(tmpModal,(callback)=>{ + if(callback){ + vm.fun.init(); + $rootScope.InfoModal(`${tmpModal.title}成功`,'success'); + } + }) + } + privateFun.publish = function (inputArg) { + let tmpModal = { + title: "发布配置" + },tmpAjaxRequest={ + versionID:inputArg.item.versionID + } + $rootScope.EnsureModal(tmpModal.title, null, '配置发布立即生效,确定对各节点发布配置?', { + btnType:2, + btnMessage:"确定" + }, function (callback) { + if (callback) { + GatewayResource.Version.Publish(tmpAjaxRequest).$promise.then(function (response) { + switch (response.statusCode) { + case CODE.COMMON.SUCCESS: { + vm.fun.init(); + $rootScope.InfoModal(tmpModal.title + '成功', 'success'); + break; + } + } + }) + } + }); + } + privateFun.delete = function (inputArg) { + let tmpAjaxRequest = { + ids: inputArg.status == 'batch' ? vm.data.batch.query : [inputArg.item.versionID] + }, + tmpModal = { + title: "删除配置" + }; + $rootScope.EnsureModal(tmpModal.title, null, '确认删除配置?', {}, function (callback) { + if (callback) { + tmpAjaxRequest.ids=JSON.stringify(tmpAjaxRequest.ids); + GatewayResource.Version.Delete(tmpAjaxRequest).$promise.then(function (response) { + switch (response.statusCode) { + case CODE.COMMON.SUCCESS: { + switch (inputArg.status) { + case 'batch': { + privateFun.resetBatchInfo(); + vm.fun.init(); + break; + } + case 'single': { + vm.ajaxResponse.query.splice(inputArg.$index, 1); + break; + } + } + $rootScope.InfoModal(tmpModal.title + '成功', 'success'); + break; + } + } + }) + } + }); + } + privateFun.resetBatchInfo = function () { + vm.data.batch.isOperating = false; + vm.data.batch.selectAll = false; + vm.data.batch.query = []; + vm.data.batch.indexAddress = {}; + vm.ajaxResponse.query=cache.publishQuery.concat(vm.ajaxResponse.query); + }; + privateFun.search = function (arg) { + window.sessionStorage.setItem('COMMON_SEARCH_TIP', arg.item.keyword); + $state.reload($state.current.name); + } + vm.$onInit = function () { + $scope.$emit('$WindowTitleSet', { + list: ['配置列表'] + }); + vm.component.listDefaultCommonObject = { + item: { + primaryKey: 'versionID', + resource: GatewayResource.Version, + default: [{ + key: '状态', + html: `{{item.publishStatus?"已发布":"未发布"}}`, + class: 'w_80' + },{ + key: '名称', + html: '{{item.name}}', + contentClass: 'item-title-li' + },{ + key: '版本号', + html: '{{item.version}}', + contentClass: 'item-title-li' + },{ + key: '备注', + html: '{{item.remark}}', + contentClass: 'item-title-li' + }, + { + key: '保存时间', + html: '{{item.createTime}}', + class: 'w_150' + }, + { + key: '发布时间', + html: '{{item.publishTime}}', + class: 'w_150', + isUnneccessary: true + } + ], + operate: { + funArr: [{ + key: '发布', + fun: privateFun.publish, + itemExpression:`ng-disabled="item.publishStatus"` + }, + { + key: '删除', + fun: privateFun.delete, + itemExpression:`ng-disabled="item.publishStatus"`, + params: { + status: 'single' + } + } + ], + class: 'w_150' + } + }, + setting: { + batch: true, + warning: '尚未生成任何配置', + defaultFoot: true, + unhover:true + } + } + vm.component.menuObject = { + list: [{ + type: 'btn', + authority: 'edit', + class: 'pull-left', + btnList: [{ + name: '生成配置', + icon: 'jiahao', + class: 'eo_theme_btn_success block-btn', + fun: { + default: privateFun.generateConf, + params: { + status: 'add' + } + } + }] + }, { + type: 'search', + class: 'pull-right mr15', + keyword: vm.ajaxRequest.keyword, + fun: privateFun.search, + placeholder: "输入搜索内容" + } + ], + batchList: [{ + type: 'btn', + disabledPoint: 'isBatchSelected', + class: 'pull-left', + btnList: [{ + name: '删除', + icon: 'shanchu', + disabled: false, + fun: { + default: privateFun.delete, + params: { + status: 'batch' + } + } + }] + }], + baseFun: { + batchDefault: () => { + if(vm.data.alreadyHadPublishConf){ + cache.publishQuery=[vm.ajaxResponse.query.shift()] + } + } + }, + setting: { + batch: true, + batchInitFun: privateFun.resetBatchInfo, + class: "common-menu-fixed-seperate common-menu-lg", + title: "配置管理", + secondTitle:"网关的配置内容支持版本管理,可以对配置进行发布和回滚

    注意:配置发布后会立即生效,请谨慎操作", + titleAuthority: "showTitle" + } + } + } + } +})(); \ No newline at end of file diff --git a/console/static/src/app/ui/content/publish/index.scss b/console/static/src/app/ui/content/publish/index.scss new file mode 100644 index 0000000000000000000000000000000000000000..f99b5794be0a851adc7f437a255a412c85bf7261 --- /dev/null +++ b/console/static/src/app/ui/content/publish/index.scss @@ -0,0 +1,11 @@ +publish { + menu-Default-Common-Component .common_menu_ul .search-form { + position: absolute; + right: 20px; + bottom: 20px; + height: auto; + } + menu-Default-Common-Component .can-operate-has-second-title-placeholder{ + height: 190px; + } +} \ No newline at end of file diff --git a/console/static/src/app/ui/content/setting/basic/index.html b/console/static/src/app/ui/content/setting/basic/index.html deleted file mode 100644 index 705c7355518c0c0f471e0e45c303a0f429dddc03..0000000000000000000000000000000000000000 --- a/console/static/src/app/ui/content/setting/basic/index.html +++ /dev/null @@ -1,43 +0,0 @@ - \ No newline at end of file diff --git a/console/static/src/app/ui/content/setting/basic/index.js b/console/static/src/app/ui/content/setting/basic/index.js deleted file mode 100644 index 1ad184cfba0995fdd83ec79e8107ca59f08decc6..0000000000000000000000000000000000000000 --- a/console/static/src/app/ui/content/setting/basic/index.js +++ /dev/null @@ -1,99 +0,0 @@ -(function () { - 'use strict'; - /* - * author:广州银云信息科技有限公司 - * 网关设置,基础配置相关js - */ - angular.module('eolinker') - .component('settingBasic', { - templateUrl: 'app/ui/content/setting/basic/index.html', - controller: indexController - }) - - indexController.$inject = ['$rootScope', 'CODE', 'GatewayResource','$scope','Authority_CommonService']; - - function indexController($rootScope, CODE, GatewayResource,$scope,Authority_CommonService) { - var vm = this; - vm.data = { - status: { - config: { - isEdit: false - } - }, - userEmail: [{ - value: '' - }] - } - vm.interaction = { - response: { - gatewayConfig: {} - } - } - vm.fun = {}; - vm.constant = { - monitorUpdatePeriodQuery: [{ - key: '30秒', - value: 30 - }, { - key: '60秒', - value: 60 - }, { - key: '180秒', - value: 180 - }] - } - var data = { - template: { - gatewayConfig: {} - } - } - vm.service={ - authority:Authority_CommonService - } - vm.fun.editBasicInfo = function () { - vm.data.status.config.submitted = true; - if ($scope.BasicForm.$invalid) return; - var template = { - request: { - successCode: vm.interaction.response.gatewayConfig.successCode, - monitorUpdatePeriod: vm.interaction.response.gatewayConfig.monitorUpdatePeriod, - nodeUpdatePeriod: vm.interaction.response.gatewayConfig.nodeUpdatePeriod - } - } - GatewayResource.Config.BaseEdit(template.request).$promise.then(function (response) { - switch (response.statusCode) { - case CODE.COMMON.SUCCESS: - { - $rootScope.InfoModal('修改成功!', 'success'); - vm.data.status.config.isEdit = false; - angular.copy(vm.interaction.response.gatewayConfig, data.template.gatewayConfig); - break; - } - } - }) - } - vm.fun.cancleBasicInfo = function () { - vm.data.status.config.isEdit = false; - vm.interaction.response.gatewayConfig = angular.copy(data.template.gatewayConfig); - } - vm.$onInit = function () { - $scope.$emit('$WindowTitleSet', { - list: ['基本设置','网关设置'] - }); - GatewayResource.Config.BaseInfo().$promise.then(function (response) { - switch (response.statusCode) { - case CODE.COMMON.SUCCESS: - { - vm.interaction.response.gatewayConfig = { - successCode: response.gatewayConfig.successCode, - monitorUpdatePeriod: response.gatewayConfig.monitorUpdatePeriod, - nodeUpdatePeriod: response.gatewayConfig.nodeUpdatePeriod - } - angular.copy(vm.interaction.response.gatewayConfig, data.template.gatewayConfig); - break; - } - } - }) - }; - } -})(); \ No newline at end of file diff --git a/console/static/src/app/ui/content/setting/index.router.js b/console/static/src/app/ui/content/setting/index.router.js index b2709222fffda77573b7a846dac1a21c41fa2206..783c7f6545dd127b4a996cfc1839199c141fcd85 100644 --- a/console/static/src/app/ui/content/setting/index.router.js +++ b/console/static/src/app/ui/content/setting/index.router.js @@ -13,10 +13,6 @@ .state('home.setting.log', { url: '/log', template: '' - }) - .state('home.setting.basic', { - url: '/', - template: '' }); }]) })() \ No newline at end of file diff --git a/console/static/src/app/ui/navbar/nav1/index.html b/console/static/src/app/ui/navbar/nav1/index.html index 98b8720d350f0f4a51db4b606dceac2fd007db12..a1f50691675c15f932a7cdefae59445c070487f7 100644 --- a/console/static/src/app/ui/navbar/nav1/index.html +++ b/console/static/src/app/ui/navbar/nav1/index.html @@ -14,7 +14,8 @@
    -   +   {{$ctrl.data.userInfo.remark||$ctrl.data.userInfo.loginCall||' '}}