diff --git a/db/5pigxx_job.sql b/db/4pigxx_job.sql similarity index 100% rename from db/5pigxx_job.sql rename to db/4pigxx_job.sql diff --git a/db/4pigxx_zipkin.sql b/db/4pigxx_zipkin.sql deleted file mode 100644 index e04d07090..000000000 --- a/db/4pigxx_zipkin.sql +++ /dev/null @@ -1,79 +0,0 @@ -/* - Navicat Premium Data Transfer - - Source Server : 本机mysql - Source Server Type : MySQL - Source Server Version : 50724 - Source Host : localhost:3306 - Source Schema : pigxx_zipkin - - Target Server Type : MySQL - Target Server Version : 50724 - File Encoding : 65001 - - Date: 22/02/2019 11:44:20 -*/ -USE pigxx_zipkin; - -SET NAMES utf8mb4; -SET FOREIGN_KEY_CHECKS = 0; - --- ---------------------------- --- Table structure for zipkin_annotations --- ---------------------------- -DROP TABLE IF EXISTS `zipkin_annotations`; -CREATE TABLE `zipkin_annotations` ( - `trace_id_high` bigint(20) NOT NULL DEFAULT 0 COMMENT 'If non zero, this means the trace uses 128 bit traceIds instead of 64 bit', - `trace_id` bigint(20) NOT NULL COMMENT 'coincides with zipkin_spans.trace_id', - `span_id` bigint(20) NOT NULL COMMENT 'coincides with zipkin_spans.id', - `a_key` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT 'BinaryAnnotation.key or Annotation.value if type == -1', - `a_value` blob NULL COMMENT 'BinaryAnnotation.value(), which must be smaller than 64KB', - `a_type` int(11) NOT NULL COMMENT 'BinaryAnnotation.type() or -1 if Annotation', - `a_timestamp` bigint(20) NULL DEFAULT NULL COMMENT 'Used to implement TTL; Annotation.timestamp or zipkin_spans.timestamp', - `endpoint_ipv4` int(11) NULL DEFAULT NULL COMMENT 'Null when Binary/Annotation.endpoint is null', - `endpoint_ipv6` binary(16) NULL DEFAULT NULL COMMENT 'Null when Binary/Annotation.endpoint is null, or no IPv6 address', - `endpoint_port` smallint(6) NULL DEFAULT NULL COMMENT 'Null when Binary/Annotation.endpoint is null', - `endpoint_service_name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT 'Null when Binary/Annotation.endpoint is null', - UNIQUE INDEX `trace_id_high`(`trace_id_high`, `trace_id`, `span_id`, `a_key`, `a_timestamp`) USING BTREE COMMENT 'Ignore insert on duplicate', - INDEX `trace_id_high_2`(`trace_id_high`, `trace_id`, `span_id`) USING BTREE COMMENT 'for joining with zipkin_spans', - INDEX `trace_id_high_3`(`trace_id_high`, `trace_id`) USING BTREE COMMENT 'for getTraces/ByIds', - INDEX `endpoint_service_name`(`endpoint_service_name`) USING BTREE COMMENT 'for getTraces and getServiceNames', - INDEX `a_type`(`a_type`) USING BTREE COMMENT 'for getTraces', - INDEX `a_key`(`a_key`) USING BTREE COMMENT 'for getTraces', - INDEX `trace_id`(`trace_id`, `span_id`, `a_key`) USING BTREE COMMENT 'for dependencies job' -) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Compressed; - --- ---------------------------- --- Table structure for zipkin_dependencies --- ---------------------------- -DROP TABLE IF EXISTS `zipkin_dependencies`; -CREATE TABLE `zipkin_dependencies` ( - `day` date NOT NULL, - `parent` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL, - `child` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL, - `call_count` bigint(20) NULL DEFAULT NULL, - `error_count` bigint(20) NULL DEFAULT NULL, - UNIQUE INDEX `day`(`day`, `parent`, `child`) USING BTREE -) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Compressed; - --- ---------------------------- --- Table structure for zipkin_spans --- ---------------------------- -DROP TABLE IF EXISTS `zipkin_spans`; -CREATE TABLE `zipkin_spans` ( - `trace_id_high` bigint(20) NOT NULL DEFAULT 0 COMMENT 'If non zero, this means the trace uses 128 bit traceIds instead of 64 bit', - `trace_id` bigint(20) NOT NULL, - `id` bigint(20) NOT NULL, - `name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL, - `parent_id` bigint(20) NULL DEFAULT NULL, - `debug` bit(1) NULL DEFAULT NULL, - `start_ts` bigint(20) NULL DEFAULT NULL COMMENT 'Span.timestamp(): epoch micros used for endTs query and to implement TTL', - `duration` bigint(20) NULL DEFAULT NULL COMMENT 'Span.duration(): micros used for minDuration and maxDuration query', - UNIQUE INDEX `trace_id_high`(`trace_id_high`, `trace_id`, `id`) USING BTREE COMMENT 'ignore insert on duplicate', - INDEX `trace_id_high_2`(`trace_id_high`, `trace_id`, `id`) USING BTREE COMMENT 'for joining with zipkin_annotations', - INDEX `trace_id_high_3`(`trace_id_high`, `trace_id`) USING BTREE COMMENT 'for getTracesByIds', - INDEX `name`(`name`) USING BTREE COMMENT 'for getTraces and getSpanNames', - INDEX `start_ts`(`start_ts`) USING BTREE COMMENT 'for getTraces ordering and range' -) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Compressed; - -SET FOREIGN_KEY_CHECKS = 1; diff --git a/db/6pigxx_mp.sql b/db/5pigxx_mp.sql similarity index 100% rename from db/6pigxx_mp.sql rename to db/5pigxx_mp.sql diff --git a/db/7pigxx_config.sql b/db/6pigxx_config.sql similarity index 100% rename from db/7pigxx_config.sql rename to db/6pigxx_config.sql diff --git a/db/Dockerfile b/db/Dockerfile index 18bb6e816..a69817c21 100644 --- a/db/Dockerfile +++ b/db/Dockerfile @@ -10,10 +10,8 @@ COPY ./db/2pigxx.sql /docker-entrypoint-initdb.d COPY ./db/3pigxx_ac.sql /docker-entrypoint-initdb.d -COPY ./db/4pigxx_zipkin.sql /docker-entrypoint-initdb.d +COPY ./db/4pigxx_job.sql /docker-entrypoint-initdb.d -COPY ./db/5pigxx_job.sql /docker-entrypoint-initdb.d +COPY ./db/5pigxx_mp.sql /docker-entrypoint-initdb.d -COPY ./db/6pigxx_mp.sql /docker-entrypoint-initdb.d - -COPY ./db/7pigxx_config.sql /docker-entrypoint-initdb.d \ No newline at end of file +COPY ./db/6pigxx_config.sql /docker-entrypoint-initdb.d \ No newline at end of file diff --git a/pigx-gateway/src/main/java/com/pig4cloud/pigx/gateway/filter/PigxRequestGlobalFilter.java b/pigx-gateway/src/main/java/com/pig4cloud/pigx/gateway/filter/PigxRequestGlobalFilter.java index 38c0f0770..dfcf6e91a 100644 --- a/pigx-gateway/src/main/java/com/pig4cloud/pigx/gateway/filter/PigxRequestGlobalFilter.java +++ b/pigx-gateway/src/main/java/com/pig4cloud/pigx/gateway/filter/PigxRequestGlobalFilter.java @@ -18,7 +18,6 @@ package com.pig4cloud.pigx.gateway.filter; import com.pig4cloud.pigx.common.core.constant.SecurityConstants; -import com.pig4cloud.pigx.gateway.config.SwaggerProvider; import org.springframework.cloud.gateway.filter.GatewayFilterChain; import org.springframework.cloud.gateway.filter.GlobalFilter; import org.springframework.core.Ordered; @@ -47,7 +46,6 @@ import static org.springframework.cloud.gateway.support.ServerWebExchangeUtils.a */ @Component public class PigxRequestGlobalFilter implements GlobalFilter, Ordered { - private static final String HEADER_NAME = "X-Forwarded-Prefix"; /** * Process the Web request and (optionally) delegate to the next @@ -74,16 +72,9 @@ public class PigxRequestGlobalFilter implements GlobalFilter, Ordered { .build(); exchange.getAttributes().put(GATEWAY_REQUEST_URL_ATTR, newRequest.getURI()); - // 3. 支持swagger添加X-Forwarded-Prefix header - String path = request.getURI().getPath(); - if (!StringUtils.endsWithIgnoreCase(path, SwaggerProvider.API_URI)) { - return chain.filter(exchange.mutate().request(newRequest).build()); - } - String basePath = path.substring(0, path.lastIndexOf(SwaggerProvider.API_URI)); return chain.filter(exchange.mutate() - .request(newRequest.mutate() - .header(HEADER_NAME, basePath) - .build()).build()); + .request(newRequest.mutate() + .build()).build()); } @Override diff --git a/pigx-register/Dockerfile b/pigx-register/Dockerfile index dde4f7a30..22b262f49 100644 --- a/pigx-register/Dockerfile +++ b/pigx-register/Dockerfile @@ -12,4 +12,7 @@ EXPOSE 8848 ADD ./pigx-register/target/pigx-register.jar ./ -CMD java -Djava.security.egd=file:/dev/./urandom -jar pigx-register.jar + +CMD sleep 10;java -Djava.security.egd=file:/dev/./urandom -jar pigx-register.jar + + diff --git a/pigx-register/src/main/resources/static/js/main.js b/pigx-register/src/main/resources/static/js/main.js index 0d742f130..b08c2a231 100755 --- a/pigx-register/src/main/resources/static/js/main.js +++ b/pigx-register/src/main/resources/static/js/main.js @@ -47,7 +47,7 @@ * * Date: 2016-08-08 */ -function(n){var e,p,b,r,o,h,d,m,M,l,u,w,k,i,S,g,s,c,y,T="sizzle"+1*new Date,_=n.document,x=0,a=0,f=ie(),v=ie(),L=ie(),C=function(e,t){return e===t&&(u=!0),0},D={}.hasOwnProperty,t=[],E=t.pop,O=t.push,N=t.push,Y=t.slice,j=function(e,t){for(var n=0,a=e.length;n+~]|"+I+")"+I+"*"),K=new RegExp("="+I+"*([^\\]'\"]*?)"+I+"*\\]","g"),B=new RegExp(R),U=new RegExp("^"+A+"$"),q={ID:new RegExp("^#("+A+")"),CLASS:new RegExp("^\\.("+A+")"),TAG:new RegExp("^("+A+"|[*])"),ATTR:new RegExp("^"+H),PSEUDO:new RegExp("^"+R),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+I+"*(even|odd|(([+-]|)(\\d*)n|)"+I+"*(?:([+-]|)"+I+"*(\\d+)|))"+I+"*\\)|)","i"),bool:new RegExp("^(?:"+P+")$","i"),needsContext:new RegExp("^"+I+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+I+"*((?:-\\d)?\\d*)"+I+"*\\)|)(?=[^-]|$)","i")},G=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,$=/^[^{]+\{\s*\[native \w/,Q=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,X=/[+~]/,Z=new RegExp("\\\\([\\da-f]{1,6}"+I+"?|("+I+")|.)","ig"),ee=function(e,t,n){var a="0x"+t-65536;return a!=a||n?t:a<0?String.fromCharCode(a+65536):String.fromCharCode(a>>10|55296,1023&a|56320)},te=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ne=function(e,t){return t?"\0"===e?"�":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},ae=function(){w()},oe=_e(function(e){return!0===e.disabled&&("form"in e||"label"in e)},{dir:"parentNode",next:"legend"});try{N.apply(t=Y.call(_.childNodes),_.childNodes),t[_.childNodes.length].nodeType}catch(e){N={apply:t.length?function(e,t){O.apply(e,Y.call(t))}:function(e,t){for(var n=e.length,a=0;e[n++]=t[a++];);e.length=n-1}}}function re(e,t,n,a){var o,r,i,s,l,u,c,d=t&&t.ownerDocument,f=t?t.nodeType:9;if(n=n||[],"string"!=typeof e||!e||1!==f&&9!==f&&11!==f)return n;if(!a&&((t?t.ownerDocument||t:_)!==k&&w(t),t=t||k,S)){if(11!==f&&(l=Q.exec(e)))if(o=l[1]){if(9===f){if(!(i=t.getElementById(o)))return n;if(i.id===o)return n.push(i),n}else if(d&&(i=d.getElementById(o))&&y(t,i)&&i.id===o)return n.push(i),n}else{if(l[2])return N.apply(n,t.getElementsByTagName(e)),n;if((o=l[3])&&p.getElementsByClassName&&t.getElementsByClassName)return N.apply(n,t.getElementsByClassName(o)),n}if(p.qsa&&!L[e+" "]&&(!g||!g.test(e))){if(1!==f)d=t,c=e;else if("object"!==t.nodeName.toLowerCase()){for((s=t.getAttribute("id"))?s=s.replace(te,ne):t.setAttribute("id",s=T),r=(u=h(e)).length;r--;)u[r]="#"+s+" "+ye(u[r]);c=u.join(","),d=X.test(e)&&me(t.parentNode)||t}if(c)try{return N.apply(n,d.querySelectorAll(c)),n}catch(e){}finally{s===T&&t.removeAttribute("id")}}}return m(e.replace(F,"$1"),t,n,a)}function ie(){var a=[];return function e(t,n){return a.push(t+" ")>b.cacheLength&&delete e[a.shift()],e[t+" "]=n}}function se(e){return e[T]=!0,e}function le(e){var t=k.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function ue(e,t){for(var n=e.split("|"),a=n.length;a--;)b.attrHandle[n[a]]=t}function ce(e,t){var n=t&&e,a=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(a)return a;if(n)for(;n=n.nextSibling;)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function fe(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function pe(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&oe(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function he(i){return se(function(r){return r=+r,se(function(e,t){for(var n,a=i([],e.length,r),o=a.length;o--;)e[n=a[o]]&&(e[n]=!(t[n]=e[n]))})})}function me(e){return e&&void 0!==e.getElementsByTagName&&e}for(e in p=re.support={},o=re.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return!!t&&"HTML"!==t.nodeName},w=re.setDocument=function(e){var t,n,a=e?e.ownerDocument||e:_;return a!==k&&9===a.nodeType&&a.documentElement&&(i=(k=a).documentElement,S=!o(k),_!==k&&(n=k.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",ae,!1):n.attachEvent&&n.attachEvent("onunload",ae)),p.attributes=le(function(e){return e.className="i",!e.getAttribute("className")}),p.getElementsByTagName=le(function(e){return e.appendChild(k.createComment("")),!e.getElementsByTagName("*").length}),p.getElementsByClassName=$.test(k.getElementsByClassName),p.getById=le(function(e){return i.appendChild(e).id=T,!k.getElementsByName||!k.getElementsByName(T).length}),p.getById?(b.filter.ID=function(e){var t=e.replace(Z,ee);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if(void 0!==t.getElementById&&S){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(Z,ee);return function(e){var t=void 0!==e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if(void 0!==t.getElementById&&S){var n,a,o,r=t.getElementById(e);if(r){if((n=r.getAttributeNode("id"))&&n.value===e)return[r];for(o=t.getElementsByName(e),a=0;r=o[a++];)if((n=r.getAttributeNode("id"))&&n.value===e)return[r]}return[]}}),b.find.TAG=p.getElementsByTagName?function(e,t){return void 0!==t.getElementsByTagName?t.getElementsByTagName(e):p.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,a=[],o=0,r=t.getElementsByTagName(e);if("*"!==e)return r;for(;n=r[o++];)1===n.nodeType&&a.push(n);return a},b.find.CLASS=p.getElementsByClassName&&function(e,t){if(void 0!==t.getElementsByClassName&&S)return t.getElementsByClassName(e)},s=[],g=[],(p.qsa=$.test(k.querySelectorAll))&&(le(function(e){i.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&g.push("[*^$]="+I+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||g.push("\\["+I+"*(?:value|"+P+")"),e.querySelectorAll("[id~="+T+"-]").length||g.push("~="),e.querySelectorAll(":checked").length||g.push(":checked"),e.querySelectorAll("a#"+T+"+*").length||g.push(".#.+[+~]")}),le(function(e){e.innerHTML="";var t=k.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&g.push("name"+I+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&g.push(":enabled",":disabled"),i.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&g.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),g.push(",.*:")})),(p.matchesSelector=$.test(c=i.matches||i.webkitMatchesSelector||i.mozMatchesSelector||i.oMatchesSelector||i.msMatchesSelector))&&le(function(e){p.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",R)}),g=g.length&&new RegExp(g.join("|")),s=s.length&&new RegExp(s.join("|")),t=$.test(i.compareDocumentPosition),y=t||$.test(i.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,a=t&&t.parentNode;return e===a||!(!a||1!==a.nodeType||!(n.contains?n.contains(a):e.compareDocumentPosition&&16&e.compareDocumentPosition(a)))}:function(e,t){if(t)for(;t=t.parentNode;)if(t===e)return!0;return!1},C=t?function(e,t){if(e===t)return u=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!p.sortDetached&&t.compareDocumentPosition(e)===n?e===k||e.ownerDocument===_&&y(_,e)?-1:t===k||t.ownerDocument===_&&y(_,t)?1:l?j(l,e)-j(l,t):0:4&n?-1:1)}:function(e,t){if(e===t)return u=!0,0;var n,a=0,o=e.parentNode,r=t.parentNode,i=[e],s=[t];if(!o||!r)return e===k?-1:t===k?1:o?-1:r?1:l?j(l,e)-j(l,t):0;if(o===r)return ce(e,t);for(n=e;n=n.parentNode;)i.unshift(n);for(n=t;n=n.parentNode;)s.unshift(n);for(;i[a]===s[a];)a++;return a?ce(i[a],s[a]):i[a]===_?-1:s[a]===_?1:0}),k},re.matches=function(e,t){return re(e,null,null,t)},re.matchesSelector=function(e,t){if((e.ownerDocument||e)!==k&&w(e),t=t.replace(K,"='$1']"),p.matchesSelector&&S&&!L[t+" "]&&(!s||!s.test(t))&&(!g||!g.test(t)))try{var n=c.call(e,t);if(n||p.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(Z,ee),e[3]=(e[3]||e[4]||e[5]||"").replace(Z,ee),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||re.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&re.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return q.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&B.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(Z,ee).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=f[e+" "];return t||(t=new RegExp("(^|"+I+")"+e+"("+I+"|$)"))&&f(e,function(e){return t.test("string"==typeof e.className&&e.className||void 0!==e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,a,o){return function(e){var t=re.attr(e,n);return null==t?"!="===a:!a||(t+="","="===a?t===o:"!="===a?t!==o:"^="===a?o&&0===t.indexOf(o):"*="===a?o&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function D(e,n,a){return _(n)?T.grep(e,function(e,t){return!!n.call(e,t,e)!==a}):n.nodeType?T.grep(e,function(e){return e===n!==a}):"string"!=typeof n?T.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(T.fn.init=function(e,t,n){var a,o;if(!e)return this;if(n=n||E,"string"!=typeof e)return e.nodeType?(this[0]=e,this.length=1,this):_(e)?void 0!==n.ready?n.ready(e):e(T):T.makeArray(e,this);if(!(a="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:O.exec(e))||!a[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(a[1]){if(t=t instanceof T?t[0]:t,T.merge(this,T.parseHTML(a[1],t&&t.nodeType?t.ownerDocument||t:S,!0)),C.test(a[1])&&T.isPlainObject(t))for(a in t)_(this[a])?this[a](t[a]):this.attr(a,t[a]);return this}return(o=S.getElementById(a[2]))&&(this[0]=o,this.length=1),this}).prototype=T.fn,E=T(S);var N=/^(?:parents|prev(?:Until|All))/,Y={children:!0,contents:!0,next:!0,prev:!0};function j(e,t){for(;(e=e[t])&&1!==e.nodeType;);return e}T.fn.extend({has:function(e){var t=T(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]+)/i,ce=/^$|^module$|\/(?:java|ecma)script/i,de={option:[1,""],thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};function fe(e,t){var n;return n=void 0!==e.getElementsByTagName?e.getElementsByTagName(t||"*"):void 0!==e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&L(e,t)?T.merge([e],n):n}function pe(e,t){for(var n=0,a=e.length;nx",y.noCloneChecked=!!he.cloneNode(!0).lastChild.defaultValue;var _e=S.documentElement,ve=/^key/,be=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Me=/^([^.]*)(?:\.(.+)|)/;function we(){return!0}function ke(){return!1}function Se(){try{return S.activeElement}catch(e){}}function Te(e,t,n,a,o,r){var i,s;if("object"==typeof t){for(s in"string"!=typeof n&&(a=a||n,n=void 0),t)Te(e,s,n,a,t[s],r);return e}if(null==a&&null==o?(o=n,a=n=void 0):null==o&&("string"==typeof n?(o=a,a=void 0):(o=a,a=n,n=void 0)),!1===o)o=ke;else if(!o)return e;return 1===r&&(i=o,(o=function(e){return T().off(e),i.apply(this,arguments)}).guid=i.guid||(i.guid=T.guid++)),e.each(function(){T.event.add(this,t,o,a,n)})}T.event={global:{},add:function(t,e,n,a,o){var r,i,s,l,u,c,d,f,p,h,m,g=J.get(t);if(g)for(n.handler&&(n=(r=n).handler,o=r.selector),o&&T.find.matchesSelector(_e,o),n.guid||(n.guid=T.guid++),(l=g.events)||(l=g.events={}),(i=g.handle)||(i=g.handle=function(e){return void 0!==T&&T.event.triggered!==e.type?T.event.dispatch.apply(t,arguments):void 0}),u=(e=(e||"").match(P)||[""]).length;u--;)p=m=(s=Me.exec(e[u])||[])[1],h=(s[2]||"").split(".").sort(),p&&(d=T.event.special[p]||{},p=(o?d.delegateType:d.bindType)||p,d=T.event.special[p]||{},c=T.extend({type:p,origType:m,data:a,handler:n,guid:n.guid,selector:o,needsContext:o&&T.expr.match.needsContext.test(o),namespace:h.join(".")},r),(f=l[p])||((f=l[p]=[]).delegateCount=0,d.setup&&!1!==d.setup.call(t,a,h,i)||t.addEventListener&&t.addEventListener(p,i)),d.add&&(d.add.call(t,c),c.handler.guid||(c.handler.guid=n.guid)),o?f.splice(f.delegateCount++,0,c):f.push(c),T.event.global[p]=!0)},remove:function(e,t,n,a,o){var r,i,s,l,u,c,d,f,p,h,m,g=J.hasData(e)&&J.get(e);if(g&&(l=g.events)){for(u=(t=(t||"").match(P)||[""]).length;u--;)if(p=m=(s=Me.exec(t[u])||[])[1],h=(s[2]||"").split(".").sort(),p){for(d=T.event.special[p]||{},f=l[p=(a?d.delegateType:d.bindType)||p]||[],s=s[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),i=r=f.length;r--;)c=f[r],!o&&m!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||a&&a!==c.selector&&("**"!==a||!c.selector)||(f.splice(r,1),c.selector&&f.delegateCount--,d.remove&&d.remove.call(e,c));i&&!f.length&&(d.teardown&&!1!==d.teardown.call(e,h,g.handle)||T.removeEvent(e,p,g.handle),delete l[p])}else for(p in l)T.event.remove(e,p+t[u],n,a,!0);T.isEmptyObject(l)&&J.remove(e,"handle events")}},dispatch:function(e){var t,n,a,o,r,i,s=T.event.fix(e),l=new Array(arguments.length),u=(J.get(this,"events")||{})[s.type]||[],c=T.event.special[s.type]||{};for(l[0]=s,t=1;t\x20\t\r\n\f]*)[^>]*)\/>/gi,Le=/\s*$/g;function Ee(e,t){return L(e,"table")&&L(11!==t.nodeType?t:t.firstChild,"tr")&&T(e).children("tbody")[0]||e}function Oe(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function Ne(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Ye(e,t){var n,a,o,r,i,s,l,u;if(1===t.nodeType){if(J.hasData(e)&&(r=J.access(e),i=J.set(t,r),u=r.events))for(o in delete i.handle,i.events={},u)for(n=0,a=u[o].length;n")},clone:function(e,t,n){var a,o,r,i,s,l,u,c=e.cloneNode(!0),d=T.contains(e.ownerDocument,e);if(!(y.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||T.isXMLDoc(e)))for(i=fe(c),a=0,o=(r=fe(e)).length;a").prop({charset:n.scriptCharset,src:n.url}).on("load error",o=function(e){a.remove(),o=null,e&&t("error"===e.type?404:200,e.type)}),S.head.appendChild(a[0])},abort:function(){o&&o()}}});var Wt,Vt=[],Kt=/(=)\?(?=&|$)|\?\?/;T.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Vt.pop()||T.expando+"_"+bt++;return this[e]=!0,e}}),T.ajaxPrefilter("json jsonp",function(e,t,n){var a,o,r,i=!1!==e.jsonp&&(Kt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Kt.test(e.data)&&"data");if(i||"jsonp"===e.dataTypes[0])return a=e.jsonpCallback=_(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,i?e[i]=e[i].replace(Kt,"$1"+a):!1!==e.jsonp&&(e.url+=(Mt.test(e.url)?"&":"?")+e.jsonp+"="+a),e.converters["script json"]=function(){return r||T.error(a+" was not called"),r[0]},e.dataTypes[0]="json",o=k[a],k[a]=function(){r=arguments},n.always(function(){void 0===o?T(k).removeProp(a):k[a]=o,e[a]&&(e.jsonpCallback=t.jsonpCallback,Vt.push(a)),r&&_(o)&&o(r[0]),r=o=void 0}),"script"}),y.createHTMLDocument=((Wt=S.implementation.createHTMLDocument("").body).innerHTML="
",2===Wt.childNodes.length),T.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((a=(t=S.implementation.createHTMLDocument("")).createElement("base")).href=S.location.href,t.head.appendChild(a)):t=S),r=!n&&[],(o=C.exec(e))?[t.createElement(o[1])]:(o=ye([e],t,r),r&&r.length&&T(r).remove(),T.merge([],o.childNodes)));var a,o,r},T.fn.load=function(e,t,n){var a,o,r,i=this,s=e.indexOf(" ");return-1").append(T.parseHTML(e)).find(a):e)}).always(n&&function(e,t){i.each(function(){n.apply(this,r||[e.responseText,t,e])})}),this},T.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){T.fn[t]=function(e){return this.on(t,e)}}),T.expr.pseudos.animated=function(t){return T.grep(T.timers,function(e){return t===e.elem}).length},T.offset={setOffset:function(e,t,n){var a,o,r,i,s,l,u=T.css(e,"position"),c=T(e),d={};"static"===u&&(e.style.position="relative"),s=c.offset(),r=T.css(e,"top"),l=T.css(e,"left"),o=("absolute"===u||"fixed"===u)&&-1<(r+l).indexOf("auto")?(i=(a=c.position()).top,a.left):(i=parseFloat(r)||0,parseFloat(l)||0),_(t)&&(t=t.call(e,n,T.extend({},s))),null!=t.top&&(d.top=t.top-s.top+i),null!=t.left&&(d.left=t.left-s.left+o),"using"in t?t.using.call(e,d):c.css(d)}},T.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){T.offset.setOffset(this,t,e)});var e,n,a=this[0];return a?a.getClientRects().length?(e=a.getBoundingClientRect(),n=a.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,a=this[0],o={top:0,left:0};if("fixed"===T.css(a,"position"))t=a.getBoundingClientRect();else{for(t=this.offset(),n=a.ownerDocument,e=a.offsetParent||n.documentElement;e&&(e===n.body||e===n.documentElement)&&"static"===T.css(e,"position");)e=e.parentNode;e&&e!==a&&1===e.nodeType&&((o=T(e).offset()).top+=T.css(e,"borderTopWidth",!0),o.left+=T.css(e,"borderLeftWidth",!0))}return{top:t.top-o.top-T.css(a,"marginTop",!0),left:t.left-o.left-T.css(a,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){for(var e=this.offsetParent;e&&"static"===T.css(e,"position");)e=e.offsetParent;return e||_e})}}),T.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,o){var r="pageYOffset"===o;T.fn[t]=function(e){return W(this,function(e,t,n){var a;if(v(e)?a=e:9===e.nodeType&&(a=e.defaultView),void 0===n)return a?a[o]:e[t];a?a.scrollTo(r?a.pageXOffset:n,r?n:a.pageYOffset):e[t]=n},t,e,arguments.length)}}),T.each(["top","left"],function(e,n){T.cssHooks[n]=ze(y.pixelPosition,function(e,t){if(t)return t=Re(e,n),Ie.test(t)?T(e).position()[n]+"px":t})}),T.each({Height:"height",Width:"width"},function(i,s){T.each({padding:"inner"+i,content:s,"":"outer"+i},function(a,r){T.fn[r]=function(e,t){var n=arguments.length&&(a||"boolean"!=typeof e),o=a||(!0===e||!0===t?"margin":"border");return W(this,function(e,t,n){var a;return v(e)?0===r.indexOf("outer")?e["inner"+i]:e.document.documentElement["client"+i]:9===e.nodeType?(a=e.documentElement,Math.max(e.body["scroll"+i],a["scroll"+i],e.body["offset"+i],a["offset"+i],a["client"+i])):void 0===n?T.css(e,t,o):T.style(e,t,n,o)},s,n?e:void 0,n)}})}),T.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){T.fn[n]=function(e,t){return 0, or explicitly pass "'+h+'" as a prop to "'+o+'".'),n.initSelector(),n.initSubscription(),n}w(e,a);var t=e.prototype;return t.getChildContext=function(){var e,t=this.propsMode?null:this.subscription;return(e={})[_]=t||this.context[_],e},t.componentDidMount=function(){f&&(this.subscription.trySubscribe(),this.selector.run(this.props),this.selector.shouldComponentUpdate&&this.forceUpdate())},t.componentWillReceiveProps=function(e){this.selector.run(e)},t.shouldComponentUpdate=function(){return this.selector.shouldComponentUpdate},t.componentWillUnmount=function(){this.subscription&&this.subscription.tryUnsubscribe(),this.subscription=null,this.notifyNestedSubs=P,this.store=null,this.selector.run=P,this.selector.shouldComponentUpdate=!1},t.getWrappedInstance=function(){return E()(g,"To access the wrapped instance, you need to specify { withRef: true } in the options argument of the "+l+"() call."),this.wrappedInstance},t.setWrappedInstance=function(e){this.wrappedInstance=e},t.initSelector=function(){var n,a,o,e=i(this.store.dispatch,r);this.selector=(n=e,a=this.store,o={run:function(e){try{var t=n(a.getState(),e);(t!==o.props||o.error)&&(o.shouldComponentUpdate=!0,o.props=t,o.error=null)}catch(e){o.shouldComponentUpdate=!0,o.error=e}}}),this.selector.run(this.props)},t.initSubscription=function(){if(f){var e=(this.propsMode?this.props:this.context)[_];this.subscription=new N(this.store,e,this.onStateChange.bind(this)),this.notifyNestedSubs=this.subscription.notifyNestedSubs.bind(this.subscription)}},t.onStateChange=function(){this.selector.run(this.props),this.selector.shouldComponentUpdate?(this.componentDidUpdate=this.notifyNestedSubsOnComponentDidUpdate,this.setState(j)):this.notifyNestedSubs()},t.notifyNestedSubsOnComponentDidUpdate=function(){this.componentDidUpdate=void 0,this.notifyNestedSubs()},t.isSubscribed=function(){return Boolean(this.subscription)&&this.subscription.isSubscribed()},t.addExtraProps=function(e){if(!(g||c||this.propsMode&&this.subscription))return e;var t=L({},e);return g&&(t.ref=this.setWrappedInstance),c&&(t[c]=this.renderCount++),this.propsMode&&this.subscription&&(t[_]=this.subscription),t},t.render=function(){var e=this.selector;if(e.shouldComponentUpdate=!1,e.error)throw e.error;return Object(k.createElement)(n,this.addExtraProps(e.props))},e}(k.Component);return t.WrappedComponent=n,t.displayName=o,t.childContextTypes=M,t.contextTypes=b,t.propTypes=b,D()(t,n)}}var c=Object.prototype.hasOwnProperty;function d(e,t){return e===t?0!==e||0!==t||1/e==1/t:e!=e&&t!=t}function v(e,t){if(d(e,t))return!0;if("object"!=typeof e||null===e||"object"!=typeof t||null===t)return!1;var n=Object.keys(e),a=Object.keys(t);if(n.length!==a.length)return!1;for(var o=0;othis.menuNode.clientHeight)){var e=this.menuNode.clientHeight+this.menuNode.scrollTop,t=this.itemNode.offsetTop+this.itemNode.offsetHeight;e or withRouter() outside a ");var l=t.route,u=(a||l.location).pathname;return Object(f.a)(u,{path:o,strict:r,exact:i,sensitive:s},l.match)},i.prototype.componentWillMount=function(){o()(!(this.props.component&&this.props.render),"You should not use and in the same route; will be ignored"),o()(!(this.props.component&&this.props.children&&!h(this.props.children)),"You should not use and in the same route; will be ignored"),o()(!(this.props.render&&this.props.children&&!h(this.props.children)),"You should not use and in the same route; will be ignored")},i.prototype.componentWillReceiveProps=function(e,t){o()(!(e.location&&!this.props.location),' elements should not change from uncontrolled to controlled (or vice versa). You initially used no "location" prop and then provided one on a subsequent render.'),o()(!(!e.location&&this.props.location),' elements should not change from controlled to uncontrolled (or vice versa). You provided a "location" prop initially but omitted it on a subsequent render.'),this.setState({match:this.computeMatch(e,t.router)})},i.prototype.render=function(){var e=this.state.match,t=this.props,n=t.children,a=t.component,o=t.render,r=this.context.router,i=r.history,s=r.route,l=r.staticContext,u={match:e,location:this.props.location||s.location,history:i,staticContext:l};return a?e?d.a.createElement(a,u):null:o?e?o(u):null:"function"==typeof n?n(u):n&&!h(n)?d.a.Children.only(n):null},i}(d.a.Component);m.propTypes={computedMatch:l.a.object,path:l.a.string,exact:l.a.bool,strict:l.a.bool,sensitive:l.a.bool,component:l.a.func,render:l.a.func,children:l.a.oneOfType([l.a.func,l.a.node]),location:l.a.object},m.contextTypes={router:l.a.shape({history:l.a.object.isRequired,route:l.a.object.isRequired,staticContext:l.a.object})},m.childContextTypes={router:l.a.object.isRequired},t.a=m},function(e,t,n){"use strict";var a=n(108),y=n.n(a),_={},v=0;t.a=function(e){var t=1document.F=Object<\/script>"),e.close(),c=e.F;n--;)delete c[u][i[n]];return c()};e.exports=Object.create||function(e,t){var n;return null!==e?(l[u]=o(e),n=new l,l[u]=null,n[s]=e):n=c(),void 0===t?n:r(n,t)}},function(e,t,n){var a=n(70).f,o=n(64),r=n(74)("toStringTag");e.exports=function(e,t,n){e&&!o(e=n?e:e.prototype,r)&&a(e,r,{configurable:!0,value:t})}},function(e,t,n){t.f=n(74)},function(e,t,n){var a=n(57),o=n(63),r=n(95),i=n(126),s=n(70).f;e.exports=function(e){var t=o.Symbol||(o.Symbol=r?{}:a.Symbol||{});"_"==e.charAt(0)||e in t||s(t,e,{value:i.f(e)})}},function(e,t,n){"use strict";t.__esModule=!0,t.default=function(t,e){if(!t)return null;if("string"==typeof t)return document.getElementById(t);"function"==typeof t&&(t=t(e));if(!t)return null;try{return(0,a.findDOMNode)(t)}catch(e){return t}};var a=n(24);e.exports=t.default},function(e,t,n){"use strict";n(62),n(428)},function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var a,o,h=f(n(5)),r=f(n(4)),i=f(n(6)),s=f(n(7)),l=n(0),m=f(l),u=f(n(2)),g=f(n(12)),c=f(n(23)),d=n(11),y=f(n(90));function f(e){return e&&e.__esModule?e:{default:e}}var _=d.func.bindCtx,v=d.obj.pickOthers,p=(o=a=function(n){function p(e){(0,r.default)(this,p);var t=(0,i.default)(this,n.call(this,e));return _(t,["handleKeyDown","handleClick"]),t}return(0,s.default)(p,n),p.prototype.getSelected=function(){var e=this.props,t=e._key,n=e.root,a=e.selected,o=n.props.selectMode,r=n.state.selectedKeys;return a||!!o&&-1o;)i(a,n=t[o++])&&(~l(r,n)||r.push(n));return r}},function(e,t,n){var a=n(149);e.exports=Object("z").propertyIsEnumerable(0)?Object:function(e){return"String"==a(e)?e.split(""):Object(e)}},function(e,t){var n={}.toString;e.exports=function(e){return n.call(e).slice(8,-1)}},function(e,t,n){var a=n(117);e.exports=function(e){return Object(a(e))}},function(e,t,n){"use strict";var v=n(95),b=n(87),M=n(152),w=n(69),k=n(123),S=n(379),T=n(125),x=n(382),L=n(74)("iterator"),C=!([].keys&&"next"in[].keys()),D="values",E=function(){return this};e.exports=function(e,t,n,a,o,r,i){S(n,t,a);var s,l,u,c=function(e){if(!C&&e in h)return h[e];switch(e){case"keys":case D:return function(){return new n(this,e)}}return function(){return new n(this,e)}},d=t+" Iterator",f=o==D,p=!1,h=e.prototype,m=h[L]||h["@@iterator"]||o&&h[o],g=m||c(o),y=o?f?c("entries"):g:void 0,_="Array"==t&&h.entries||m;if(_&&(u=x(_.call(new e)))!==Object.prototype&&u.next&&(T(u,d,!0),v||"function"==typeof u[L]||w(u,L,E)),f&&m&&m.name!==D&&(p=!0,g=function(){return m.call(this)}),v&&!i||!C&&!p&&h[L]||w(h,L,g),k[t]=g,k[d]=E,o)if(s={values:f?g:c(D),keys:r?g:c("keys"),entries:y},i)for(l in s)l in h||M(h,l,s[l]);else b(b.P+b.F*(C||p),t,s);return s}},function(e,t,n){e.exports=n(69)},function(e,t,n){var a=n(147),o=n(121).concat("length","prototype");t.f=Object.getOwnPropertyNames||function(e){return a(e,o)}},function(e,t,n){var a=n(97),o=n(93),r=n(73),i=n(116),s=n(64),l=n(145),u=Object.getOwnPropertyDescriptor;t.f=n(72)?u:function(e,t){if(e=r(e),t=i(t,!0),l)try{return u(e,t)}catch(e){}if(s(e,t))return o(!a.f.call(e,t),e[t])}},function(e,t,n){"use strict"; +function(n){var e,p,b,r,o,h,d,m,M,l,u,w,k,i,S,g,s,c,y,T="sizzle"+1*new Date,_=n.document,x=0,a=0,f=ie(),v=ie(),L=ie(),C=function(e,t){return e===t&&(u=!0),0},D={}.hasOwnProperty,t=[],E=t.pop,O=t.push,N=t.push,Y=t.slice,j=function(e,t){for(var n=0,a=e.length;n+~]|"+I+")"+I+"*"),K=new RegExp("="+I+"*([^\\]'\"]*?)"+I+"*\\]","g"),B=new RegExp(R),U=new RegExp("^"+A+"$"),q={ID:new RegExp("^#("+A+")"),CLASS:new RegExp("^\\.("+A+")"),TAG:new RegExp("^("+A+"|[*])"),ATTR:new RegExp("^"+H),PSEUDO:new RegExp("^"+R),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+I+"*(even|odd|(([+-]|)(\\d*)n|)"+I+"*(?:([+-]|)"+I+"*(\\d+)|))"+I+"*\\)|)","i"),bool:new RegExp("^(?:"+P+")$","i"),needsContext:new RegExp("^"+I+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+I+"*((?:-\\d)?\\d*)"+I+"*\\)|)(?=[^-]|$)","i")},G=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,$=/^[^{]+\{\s*\[native \w/,Q=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,X=/[+~]/,Z=new RegExp("\\\\([\\da-f]{1,6}"+I+"?|("+I+")|.)","ig"),ee=function(e,t,n){var a="0x"+t-65536;return a!=a||n?t:a<0?String.fromCharCode(a+65536):String.fromCharCode(a>>10|55296,1023&a|56320)},te=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ne=function(e,t){return t?"\0"===e?"�":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},ae=function(){w()},oe=_e(function(e){return!0===e.disabled&&("form"in e||"label"in e)},{dir:"parentNode",next:"legend"});try{N.apply(t=Y.call(_.childNodes),_.childNodes),t[_.childNodes.length].nodeType}catch(e){N={apply:t.length?function(e,t){O.apply(e,Y.call(t))}:function(e,t){for(var n=e.length,a=0;e[n++]=t[a++];);e.length=n-1}}}function re(e,t,n,a){var o,r,i,s,l,u,c,d=t&&t.ownerDocument,f=t?t.nodeType:9;if(n=n||[],"string"!=typeof e||!e||1!==f&&9!==f&&11!==f)return n;if(!a&&((t?t.ownerDocument||t:_)!==k&&w(t),t=t||k,S)){if(11!==f&&(l=Q.exec(e)))if(o=l[1]){if(9===f){if(!(i=t.getElementById(o)))return n;if(i.id===o)return n.push(i),n}else if(d&&(i=d.getElementById(o))&&y(t,i)&&i.id===o)return n.push(i),n}else{if(l[2])return N.apply(n,t.getElementsByTagName(e)),n;if((o=l[3])&&p.getElementsByClassName&&t.getElementsByClassName)return N.apply(n,t.getElementsByClassName(o)),n}if(p.qsa&&!L[e+" "]&&(!g||!g.test(e))){if(1!==f)d=t,c=e;else if("object"!==t.nodeName.toLowerCase()){for((s=t.getAttribute("id"))?s=s.replace(te,ne):t.setAttribute("id",s=T),r=(u=h(e)).length;r--;)u[r]="#"+s+" "+ye(u[r]);c=u.join(","),d=X.test(e)&&me(t.parentNode)||t}if(c)try{return N.apply(n,d.querySelectorAll(c)),n}catch(e){}finally{s===T&&t.removeAttribute("id")}}}return m(e.replace(F,"$1"),t,n,a)}function ie(){var a=[];return function e(t,n){return a.push(t+" ")>b.cacheLength&&delete e[a.shift()],e[t+" "]=n}}function se(e){return e[T]=!0,e}function le(e){var t=k.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function ue(e,t){for(var n=e.split("|"),a=n.length;a--;)b.attrHandle[n[a]]=t}function ce(e,t){var n=t&&e,a=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(a)return a;if(n)for(;n=n.nextSibling;)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function fe(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function pe(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&oe(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function he(i){return se(function(r){return r=+r,se(function(e,t){for(var n,a=i([],e.length,r),o=a.length;o--;)e[n=a[o]]&&(e[n]=!(t[n]=e[n]))})})}function me(e){return e&&void 0!==e.getElementsByTagName&&e}for(e in p=re.support={},o=re.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return!!t&&"HTML"!==t.nodeName},w=re.setDocument=function(e){var t,n,a=e?e.ownerDocument||e:_;return a!==k&&9===a.nodeType&&a.documentElement&&(i=(k=a).documentElement,S=!o(k),_!==k&&(n=k.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",ae,!1):n.attachEvent&&n.attachEvent("onunload",ae)),p.attributes=le(function(e){return e.className="i",!e.getAttribute("className")}),p.getElementsByTagName=le(function(e){return e.appendChild(k.createComment("")),!e.getElementsByTagName("*").length}),p.getElementsByClassName=$.test(k.getElementsByClassName),p.getById=le(function(e){return i.appendChild(e).id=T,!k.getElementsByName||!k.getElementsByName(T).length}),p.getById?(b.filter.ID=function(e){var t=e.replace(Z,ee);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if(void 0!==t.getElementById&&S){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(Z,ee);return function(e){var t=void 0!==e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if(void 0!==t.getElementById&&S){var n,a,o,r=t.getElementById(e);if(r){if((n=r.getAttributeNode("id"))&&n.value===e)return[r];for(o=t.getElementsByName(e),a=0;r=o[a++];)if((n=r.getAttributeNode("id"))&&n.value===e)return[r]}return[]}}),b.find.TAG=p.getElementsByTagName?function(e,t){return void 0!==t.getElementsByTagName?t.getElementsByTagName(e):p.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,a=[],o=0,r=t.getElementsByTagName(e);if("*"!==e)return r;for(;n=r[o++];)1===n.nodeType&&a.push(n);return a},b.find.CLASS=p.getElementsByClassName&&function(e,t){if(void 0!==t.getElementsByClassName&&S)return t.getElementsByClassName(e)},s=[],g=[],(p.qsa=$.test(k.querySelectorAll))&&(le(function(e){i.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&g.push("[*^$]="+I+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||g.push("\\["+I+"*(?:value|"+P+")"),e.querySelectorAll("[id~="+T+"-]").length||g.push("~="),e.querySelectorAll(":checked").length||g.push(":checked"),e.querySelectorAll("a#"+T+"+*").length||g.push(".#.+[+~]")}),le(function(e){e.innerHTML="";var t=k.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&g.push("name"+I+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&g.push(":enabled",":disabled"),i.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&g.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),g.push(",.*:")})),(p.matchesSelector=$.test(c=i.matches||i.webkitMatchesSelector||i.mozMatchesSelector||i.oMatchesSelector||i.msMatchesSelector))&&le(function(e){p.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",R)}),g=g.length&&new RegExp(g.join("|")),s=s.length&&new RegExp(s.join("|")),t=$.test(i.compareDocumentPosition),y=t||$.test(i.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,a=t&&t.parentNode;return e===a||!(!a||1!==a.nodeType||!(n.contains?n.contains(a):e.compareDocumentPosition&&16&e.compareDocumentPosition(a)))}:function(e,t){if(t)for(;t=t.parentNode;)if(t===e)return!0;return!1},C=t?function(e,t){if(e===t)return u=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!p.sortDetached&&t.compareDocumentPosition(e)===n?e===k||e.ownerDocument===_&&y(_,e)?-1:t===k||t.ownerDocument===_&&y(_,t)?1:l?j(l,e)-j(l,t):0:4&n?-1:1)}:function(e,t){if(e===t)return u=!0,0;var n,a=0,o=e.parentNode,r=t.parentNode,i=[e],s=[t];if(!o||!r)return e===k?-1:t===k?1:o?-1:r?1:l?j(l,e)-j(l,t):0;if(o===r)return ce(e,t);for(n=e;n=n.parentNode;)i.unshift(n);for(n=t;n=n.parentNode;)s.unshift(n);for(;i[a]===s[a];)a++;return a?ce(i[a],s[a]):i[a]===_?-1:s[a]===_?1:0}),k},re.matches=function(e,t){return re(e,null,null,t)},re.matchesSelector=function(e,t){if((e.ownerDocument||e)!==k&&w(e),t=t.replace(K,"='$1']"),p.matchesSelector&&S&&!L[t+" "]&&(!s||!s.test(t))&&(!g||!g.test(t)))try{var n=c.call(e,t);if(n||p.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(Z,ee),e[3]=(e[3]||e[4]||e[5]||"").replace(Z,ee),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||re.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&re.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return q.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&B.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(Z,ee).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=f[e+" "];return t||(t=new RegExp("(^|"+I+")"+e+"("+I+"|$)"))&&f(e,function(e){return t.test("string"==typeof e.className&&e.className||void 0!==e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,a,o){return function(e){var t=re.attr(e,n);return null==t?"!="===a:!a||(t+="","="===a?t===o:"!="===a?t!==o:"^="===a?o&&0===t.indexOf(o):"*="===a?o&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function D(e,n,a){return _(n)?T.grep(e,function(e,t){return!!n.call(e,t,e)!==a}):n.nodeType?T.grep(e,function(e){return e===n!==a}):"string"!=typeof n?T.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(T.fn.init=function(e,t,n){var a,o;if(!e)return this;if(n=n||E,"string"!=typeof e)return e.nodeType?(this[0]=e,this.length=1,this):_(e)?void 0!==n.ready?n.ready(e):e(T):T.makeArray(e,this);if(!(a="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:O.exec(e))||!a[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(a[1]){if(t=t instanceof T?t[0]:t,T.merge(this,T.parseHTML(a[1],t&&t.nodeType?t.ownerDocument||t:S,!0)),C.test(a[1])&&T.isPlainObject(t))for(a in t)_(this[a])?this[a](t[a]):this.attr(a,t[a]);return this}return(o=S.getElementById(a[2]))&&(this[0]=o,this.length=1),this}).prototype=T.fn,E=T(S);var N=/^(?:parents|prev(?:Until|All))/,Y={children:!0,contents:!0,next:!0,prev:!0};function j(e,t){for(;(e=e[t])&&1!==e.nodeType;);return e}T.fn.extend({has:function(e){var t=T(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]+)/i,ce=/^$|^module$|\/(?:java|ecma)script/i,de={option:[1,""],thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};function fe(e,t){var n;return n=void 0!==e.getElementsByTagName?e.getElementsByTagName(t||"*"):void 0!==e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&L(e,t)?T.merge([e],n):n}function pe(e,t){for(var n=0,a=e.length;nx",y.noCloneChecked=!!he.cloneNode(!0).lastChild.defaultValue;var _e=S.documentElement,ve=/^key/,be=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Me=/^([^.]*)(?:\.(.+)|)/;function we(){return!0}function ke(){return!1}function Se(){try{return S.activeElement}catch(e){}}function Te(e,t,n,a,o,r){var i,s;if("object"==typeof t){for(s in"string"!=typeof n&&(a=a||n,n=void 0),t)Te(e,s,n,a,t[s],r);return e}if(null==a&&null==o?(o=n,a=n=void 0):null==o&&("string"==typeof n?(o=a,a=void 0):(o=a,a=n,n=void 0)),!1===o)o=ke;else if(!o)return e;return 1===r&&(i=o,(o=function(e){return T().off(e),i.apply(this,arguments)}).guid=i.guid||(i.guid=T.guid++)),e.each(function(){T.event.add(this,t,o,a,n)})}T.event={global:{},add:function(t,e,n,a,o){var r,i,s,l,u,c,d,f,p,h,m,g=J.get(t);if(g)for(n.handler&&(n=(r=n).handler,o=r.selector),o&&T.find.matchesSelector(_e,o),n.guid||(n.guid=T.guid++),(l=g.events)||(l=g.events={}),(i=g.handle)||(i=g.handle=function(e){return void 0!==T&&T.event.triggered!==e.type?T.event.dispatch.apply(t,arguments):void 0}),u=(e=(e||"").match(P)||[""]).length;u--;)p=m=(s=Me.exec(e[u])||[])[1],h=(s[2]||"").split(".").sort(),p&&(d=T.event.special[p]||{},p=(o?d.delegateType:d.bindType)||p,d=T.event.special[p]||{},c=T.extend({type:p,origType:m,data:a,handler:n,guid:n.guid,selector:o,needsContext:o&&T.expr.match.needsContext.test(o),namespace:h.join(".")},r),(f=l[p])||((f=l[p]=[]).delegateCount=0,d.setup&&!1!==d.setup.call(t,a,h,i)||t.addEventListener&&t.addEventListener(p,i)),d.add&&(d.add.call(t,c),c.handler.guid||(c.handler.guid=n.guid)),o?f.splice(f.delegateCount++,0,c):f.push(c),T.event.global[p]=!0)},remove:function(e,t,n,a,o){var r,i,s,l,u,c,d,f,p,h,m,g=J.hasData(e)&&J.get(e);if(g&&(l=g.events)){for(u=(t=(t||"").match(P)||[""]).length;u--;)if(p=m=(s=Me.exec(t[u])||[])[1],h=(s[2]||"").split(".").sort(),p){for(d=T.event.special[p]||{},f=l[p=(a?d.delegateType:d.bindType)||p]||[],s=s[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),i=r=f.length;r--;)c=f[r],!o&&m!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||a&&a!==c.selector&&("**"!==a||!c.selector)||(f.splice(r,1),c.selector&&f.delegateCount--,d.remove&&d.remove.call(e,c));i&&!f.length&&(d.teardown&&!1!==d.teardown.call(e,h,g.handle)||T.removeEvent(e,p,g.handle),delete l[p])}else for(p in l)T.event.remove(e,p+t[u],n,a,!0);T.isEmptyObject(l)&&J.remove(e,"handle events")}},dispatch:function(e){var t,n,a,o,r,i,s=T.event.fix(e),l=new Array(arguments.length),u=(J.get(this,"events")||{})[s.type]||[],c=T.event.special[s.type]||{};for(l[0]=s,t=1;t\x20\t\r\n\f]*)[^>]*)\/>/gi,Le=/\s*$/g;function Ee(e,t){return L(e,"table")&&L(11!==t.nodeType?t:t.firstChild,"tr")&&T(e).children("tbody")[0]||e}function Oe(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function Ne(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Ye(e,t){var n,a,o,r,i,s,l,u;if(1===t.nodeType){if(J.hasData(e)&&(r=J.access(e),i=J.set(t,r),u=r.events))for(o in delete i.handle,i.events={},u)for(n=0,a=u[o].length;n")},clone:function(e,t,n){var a,o,r,i,s,l,u,c=e.cloneNode(!0),d=T.contains(e.ownerDocument,e);if(!(y.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||T.isXMLDoc(e)))for(i=fe(c),a=0,o=(r=fe(e)).length;a").prop({charset:n.scriptCharset,src:n.url}).on("load error",o=function(e){a.remove(),o=null,e&&t("error"===e.type?404:200,e.type)}),S.head.appendChild(a[0])},abort:function(){o&&o()}}});var Wt,Vt=[],Kt=/(=)\?(?=&|$)|\?\?/;T.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Vt.pop()||T.expando+"_"+bt++;return this[e]=!0,e}}),T.ajaxPrefilter("json jsonp",function(e,t,n){var a,o,r,i=!1!==e.jsonp&&(Kt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Kt.test(e.data)&&"data");if(i||"jsonp"===e.dataTypes[0])return a=e.jsonpCallback=_(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,i?e[i]=e[i].replace(Kt,"$1"+a):!1!==e.jsonp&&(e.url+=(Mt.test(e.url)?"&":"?")+e.jsonp+"="+a),e.converters["script json"]=function(){return r||T.error(a+" was not called"),r[0]},e.dataTypes[0]="json",o=k[a],k[a]=function(){r=arguments},n.always(function(){void 0===o?T(k).removeProp(a):k[a]=o,e[a]&&(e.jsonpCallback=t.jsonpCallback,Vt.push(a)),r&&_(o)&&o(r[0]),r=o=void 0}),"script"}),y.createHTMLDocument=((Wt=S.implementation.createHTMLDocument("").body).innerHTML="
",2===Wt.childNodes.length),T.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((a=(t=S.implementation.createHTMLDocument("")).createElement("base")).href=S.location.href,t.head.appendChild(a)):t=S),r=!n&&[],(o=C.exec(e))?[t.createElement(o[1])]:(o=ye([e],t,r),r&&r.length&&T(r).remove(),T.merge([],o.childNodes)));var a,o,r},T.fn.load=function(e,t,n){var a,o,r,i=this,s=e.indexOf(" ");return-1").append(T.parseHTML(e)).find(a):e)}).always(n&&function(e,t){i.each(function(){n.apply(this,r||[e.responseText,t,e])})}),this},T.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){T.fn[t]=function(e){return this.on(t,e)}}),T.expr.pseudos.animated=function(t){return T.grep(T.timers,function(e){return t===e.elem}).length},T.offset={setOffset:function(e,t,n){var a,o,r,i,s,l,u=T.css(e,"position"),c=T(e),d={};"static"===u&&(e.style.position="relative"),s=c.offset(),r=T.css(e,"top"),l=T.css(e,"left"),o=("absolute"===u||"fixed"===u)&&-1<(r+l).indexOf("auto")?(i=(a=c.position()).top,a.left):(i=parseFloat(r)||0,parseFloat(l)||0),_(t)&&(t=t.call(e,n,T.extend({},s))),null!=t.top&&(d.top=t.top-s.top+i),null!=t.left&&(d.left=t.left-s.left+o),"using"in t?t.using.call(e,d):c.css(d)}},T.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){T.offset.setOffset(this,t,e)});var e,n,a=this[0];return a?a.getClientRects().length?(e=a.getBoundingClientRect(),n=a.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,a=this[0],o={top:0,left:0};if("fixed"===T.css(a,"position"))t=a.getBoundingClientRect();else{for(t=this.offset(),n=a.ownerDocument,e=a.offsetParent||n.documentElement;e&&(e===n.body||e===n.documentElement)&&"static"===T.css(e,"position");)e=e.parentNode;e&&e!==a&&1===e.nodeType&&((o=T(e).offset()).top+=T.css(e,"borderTopWidth",!0),o.left+=T.css(e,"borderLeftWidth",!0))}return{top:t.top-o.top-T.css(a,"marginTop",!0),left:t.left-o.left-T.css(a,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){for(var e=this.offsetParent;e&&"static"===T.css(e,"position");)e=e.offsetParent;return e||_e})}}),T.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,o){var r="pageYOffset"===o;T.fn[t]=function(e){return W(this,function(e,t,n){var a;if(v(e)?a=e:9===e.nodeType&&(a=e.defaultView),void 0===n)return a?a[o]:e[t];a?a.scrollTo(r?a.pageXOffset:n,r?n:a.pageYOffset):e[t]=n},t,e,arguments.length)}}),T.each(["top","left"],function(e,n){T.cssHooks[n]=ze(y.pixelPosition,function(e,t){if(t)return t=Re(e,n),Ie.test(t)?T(e).position()[n]+"px":t})}),T.each({Height:"height",Width:"width"},function(i,s){T.each({padding:"inner"+i,content:s,"":"outer"+i},function(a,r){T.fn[r]=function(e,t){var n=arguments.length&&(a||"boolean"!=typeof e),o=a||(!0===e||!0===t?"margin":"border");return W(this,function(e,t,n){var a;return v(e)?0===r.indexOf("outer")?e["inner"+i]:e.document.documentElement["client"+i]:9===e.nodeType?(a=e.documentElement,Math.max(e.body["scroll"+i],a["scroll"+i],e.body["offset"+i],a["offset"+i],a["client"+i])):void 0===n?T.css(e,t,o):T.style(e,t,n,o)},s,n?e:void 0,n)}})}),T.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){T.fn[n]=function(e,t){return 0, or explicitly pass "'+h+'" as a prop to "'+o+'".'),n.initSelector(),n.initSubscription(),n}w(e,a);var t=e.prototype;return t.getChildContext=function(){var e,t=this.propsMode?null:this.subscription;return(e={})[_]=t||this.context[_],e},t.componentDidMount=function(){f&&(this.subscription.trySubscribe(),this.selector.run(this.props),this.selector.shouldComponentUpdate&&this.forceUpdate())},t.componentWillReceiveProps=function(e){this.selector.run(e)},t.shouldComponentUpdate=function(){return this.selector.shouldComponentUpdate},t.componentWillUnmount=function(){this.subscription&&this.subscription.tryUnsubscribe(),this.subscription=null,this.notifyNestedSubs=P,this.store=null,this.selector.run=P,this.selector.shouldComponentUpdate=!1},t.getWrappedInstance=function(){return E()(g,"To access the wrapped instance, you need to specify { withRef: true } in the options argument of the "+l+"() call."),this.wrappedInstance},t.setWrappedInstance=function(e){this.wrappedInstance=e},t.initSelector=function(){var n,a,o,e=i(this.store.dispatch,r);this.selector=(n=e,a=this.store,o={run:function(e){try{var t=n(a.getState(),e);(t!==o.props||o.error)&&(o.shouldComponentUpdate=!0,o.props=t,o.error=null)}catch(e){o.shouldComponentUpdate=!0,o.error=e}}}),this.selector.run(this.props)},t.initSubscription=function(){if(f){var e=(this.propsMode?this.props:this.context)[_];this.subscription=new N(this.store,e,this.onStateChange.bind(this)),this.notifyNestedSubs=this.subscription.notifyNestedSubs.bind(this.subscription)}},t.onStateChange=function(){this.selector.run(this.props),this.selector.shouldComponentUpdate?(this.componentDidUpdate=this.notifyNestedSubsOnComponentDidUpdate,this.setState(j)):this.notifyNestedSubs()},t.notifyNestedSubsOnComponentDidUpdate=function(){this.componentDidUpdate=void 0,this.notifyNestedSubs()},t.isSubscribed=function(){return Boolean(this.subscription)&&this.subscription.isSubscribed()},t.addExtraProps=function(e){if(!(g||c||this.propsMode&&this.subscription))return e;var t=L({},e);return g&&(t.ref=this.setWrappedInstance),c&&(t[c]=this.renderCount++),this.propsMode&&this.subscription&&(t[_]=this.subscription),t},t.render=function(){var e=this.selector;if(e.shouldComponentUpdate=!1,e.error)throw e.error;return Object(k.createElement)(n,this.addExtraProps(e.props))},e}(k.Component);return t.WrappedComponent=n,t.displayName=o,t.childContextTypes=M,t.contextTypes=b,t.propTypes=b,D()(t,n)}}var c=Object.prototype.hasOwnProperty;function d(e,t){return e===t?0!==e||0!==t||1/e==1/t:e!=e&&t!=t}function v(e,t){if(d(e,t))return!0;if("object"!=typeof e||null===e||"object"!=typeof t||null===t)return!1;var n=Object.keys(e),a=Object.keys(t);if(n.length!==a.length)return!1;for(var o=0;othis.menuNode.clientHeight)){var e=this.menuNode.clientHeight+this.menuNode.scrollTop,t=this.itemNode.offsetTop+this.itemNode.offsetHeight;e or withRouter() outside a ");var l=t.route,u=(a||l.location).pathname;return Object(f.a)(u,{path:o,strict:r,exact:i,sensitive:s},l.match)},i.prototype.componentWillMount=function(){o()(!(this.props.component&&this.props.render),"You should not use and in the same route; will be ignored"),o()(!(this.props.component&&this.props.children&&!h(this.props.children)),"You should not use and in the same route; will be ignored"),o()(!(this.props.render&&this.props.children&&!h(this.props.children)),"You should not use and in the same route; will be ignored")},i.prototype.componentWillReceiveProps=function(e,t){o()(!(e.location&&!this.props.location),' elements should not change from uncontrolled to controlled (or vice versa). You initially used no "location" prop and then provided one on a subsequent render.'),o()(!(!e.location&&this.props.location),' elements should not change from controlled to uncontrolled (or vice versa). You provided a "location" prop initially but omitted it on a subsequent render.'),this.setState({match:this.computeMatch(e,t.router)})},i.prototype.render=function(){var e=this.state.match,t=this.props,n=t.children,a=t.component,o=t.render,r=this.context.router,i=r.history,s=r.route,l=r.staticContext,u={match:e,location:this.props.location||s.location,history:i,staticContext:l};return a?e?d.a.createElement(a,u):null:o?e?o(u):null:"function"==typeof n?n(u):n&&!h(n)?d.a.Children.only(n):null},i}(d.a.Component);m.propTypes={computedMatch:l.a.object,path:l.a.string,exact:l.a.bool,strict:l.a.bool,sensitive:l.a.bool,component:l.a.func,render:l.a.func,children:l.a.oneOfType([l.a.func,l.a.node]),location:l.a.object},m.contextTypes={router:l.a.shape({history:l.a.object.isRequired,route:l.a.object.isRequired,staticContext:l.a.object})},m.childContextTypes={router:l.a.object.isRequired},t.a=m},function(e,t,n){"use strict";var a=n(108),y=n.n(a),_={},v=0;t.a=function(e){var t=1document.F=Object<\/script>"),e.close(),c=e.F;n--;)delete c[u][i[n]];return c()};e.exports=Object.create||function(e,t){var n;return null!==e?(l[u]=o(e),n=new l,l[u]=null,n[s]=e):n=c(),void 0===t?n:r(n,t)}},function(e,t,n){var a=n(70).f,o=n(64),r=n(74)("toStringTag");e.exports=function(e,t,n){e&&!o(e=n?e:e.prototype,r)&&a(e,r,{configurable:!0,value:t})}},function(e,t,n){t.f=n(74)},function(e,t,n){var a=n(57),o=n(63),r=n(95),i=n(126),s=n(70).f;e.exports=function(e){var t=o.Symbol||(o.Symbol=r?{}:a.Symbol||{});"_"==e.charAt(0)||e in t||s(t,e,{value:i.f(e)})}},function(e,t,n){"use strict";t.__esModule=!0,t.default=function(t,e){if(!t)return null;if("string"==typeof t)return document.getElementById(t);"function"==typeof t&&(t=t(e));if(!t)return null;try{return(0,a.findDOMNode)(t)}catch(e){return t}};var a=n(24);e.exports=t.default},function(e,t,n){"use strict";n(62),n(428)},function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var a,o,h=f(n(5)),r=f(n(4)),i=f(n(6)),s=f(n(7)),l=n(0),m=f(l),u=f(n(2)),g=f(n(12)),c=f(n(23)),d=n(11),y=f(n(90));function f(e){return e&&e.__esModule?e:{default:e}}var _=d.func.bindCtx,v=d.obj.pickOthers,p=(o=a=function(n){function p(e){(0,r.default)(this,p);var t=(0,i.default)(this,n.call(this,e));return _(t,["handleKeyDown","handleClick"]),t}return(0,s.default)(p,n),p.prototype.getSelected=function(){var e=this.props,t=e._key,n=e.root,a=e.selected,o=n.props.selectMode,r=n.state.selectedKeys;return a||!!o&&-1o;)i(a,n=t[o++])&&(~l(r,n)||r.push(n));return r}},function(e,t,n){var a=n(149);e.exports=Object("z").propertyIsEnumerable(0)?Object:function(e){return"String"==a(e)?e.split(""):Object(e)}},function(e,t){var n={}.toString;e.exports=function(e){return n.call(e).slice(8,-1)}},function(e,t,n){var a=n(117);e.exports=function(e){return Object(a(e))}},function(e,t,n){"use strict";var v=n(95),b=n(87),M=n(152),w=n(69),k=n(123),S=n(379),T=n(125),x=n(382),L=n(74)("iterator"),C=!([].keys&&"next"in[].keys()),D="values",E=function(){return this};e.exports=function(e,t,n,a,o,r,i){S(n,t,a);var s,l,u,c=function(e){if(!C&&e in h)return h[e];switch(e){case"keys":case D:return function(){return new n(this,e)}}return function(){return new n(this,e)}},d=t+" Iterator",f=o==D,p=!1,h=e.prototype,m=h[L]||h["@@iterator"]||o&&h[o],g=m||c(o),y=o?f?c("entries"):g:void 0,_="Array"==t&&h.entries||m;if(_&&(u=x(_.call(new e)))!==Object.prototype&&u.next&&(T(u,d,!0),v||"function"==typeof u[L]||w(u,L,E)),f&&m&&m.name!==D&&(p=!0,g=function(){return m.call(this)}),v&&!i||!C&&!p&&h[L]||w(h,L,g),k[t]=g,k[d]=E,o)if(s={values:f?g:c(D),keys:r?g:c("keys"),entries:y},i)for(l in s)l in h||M(h,l,s[l]);else b(b.P+b.F*(C||p),t,s);return s}},function(e,t,n){e.exports=n(69)},function(e,t,n){var a=n(147),o=n(121).concat("length","prototype");t.f=Object.getOwnPropertyNames||function(e){return a(e,o)}},function(e,t,n){var a=n(97),o=n(93),r=n(73),i=n(116),s=n(64),l=n(145),u=Object.getOwnPropertyDescriptor;t.f=n(72)?u:function(e,t){if(e=r(e),t=i(t,!0),l)try{return u(e,t)}catch(e){}if(s(e,t))return o(!a.f.call(e,t),e[t])}},function(e,t,n){"use strict"; /* object-assign (c) Sindre Sorhus diff --git a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/impl/SysRouteConfServiceImpl.java b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/impl/SysRouteConfServiceImpl.java index e94316881..7a944a790 100755 --- a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/impl/SysRouteConfServiceImpl.java +++ b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/impl/SysRouteConfServiceImpl.java @@ -26,6 +26,7 @@ import com.pig4cloud.pigx.admin.api.entity.SysRouteConf; import com.pig4cloud.pigx.admin.mapper.SysRouteConfMapper; import com.pig4cloud.pigx.admin.service.SysRouteConfService; import com.pig4cloud.pigx.common.core.constant.CommonConstants; +import com.pig4cloud.pigx.common.gateway.support.DynamicRouteInitEvent; import com.pig4cloud.pigx.common.gateway.vo.RouteDefinitionVo; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -87,72 +88,81 @@ public class SysRouteConfServiceImpl extends ServiceImpl routeDefinitionVoList = new ArrayList<>(); - routes.forEach(value -> { - log.info("更新路由 ->{}", value); - RouteDefinitionVo vo = new RouteDefinitionVo(); - Map map = (Map) value; - Object id = map.get("routeId"); - if (id != null) { - vo.setId(String.valueOf(id)); - } + try { + routes.forEach(value -> { + log.info("更新路由 ->{}", value); + RouteDefinitionVo vo = new RouteDefinitionVo(); + Map map = (Map) value; - Object routeName = map.get("routeName"); - if (routeName != null) { - vo.setRouteName(String.valueOf(routeName)); - } + Object id = map.get("routeId"); + if (id != null) { + vo.setId(String.valueOf(id)); + } - Object predicates = map.get("predicates"); - if (predicates != null) { - JSONArray predicatesArray = (JSONArray) predicates; - List predicateDefinitionList = - predicatesArray.toList(PredicateDefinition.class); - vo.setPredicates(predicateDefinitionList); - } + Object routeName = map.get("routeName"); + if (routeName != null) { + vo.setRouteName(String.valueOf(routeName)); + } - Object filters = map.get("filters"); - if (filters != null) { - JSONArray filtersArray = (JSONArray) filters; - List filterDefinitionList - = filtersArray.toList(FilterDefinition.class); - vo.setFilters(filterDefinitionList); - } + Object predicates = map.get("predicates"); + if (predicates != null) { + JSONArray predicatesArray = (JSONArray) predicates; + List predicateDefinitionList = + predicatesArray.toList(PredicateDefinition.class); + vo.setPredicates(predicateDefinitionList); + } - Object uri = map.get("uri"); - if (uri != null) { - vo.setUri(URI.create(String.valueOf(uri))); - } + Object filters = map.get("filters"); + if (filters != null) { + JSONArray filtersArray = (JSONArray) filters; + List filterDefinitionList + = filtersArray.toList(FilterDefinition.class); + vo.setFilters(filterDefinitionList); + } - Object order = map.get("order"); - if (order != null) { - vo.setOrder(Integer.parseInt(String.valueOf(order))); - } + Object uri = map.get("uri"); + if (uri != null) { + vo.setUri(URI.create(String.valueOf(uri))); + } - pigxRedisTemplate.setHashValueSerializer(new Jackson2JsonRedisSerializer<>(RouteDefinitionVo.class)); - pigxRedisTemplate.opsForHash().put(CommonConstants.ROUTE_KEY, vo.getId(), vo); - routeDefinitionVoList.add(vo); - }); + Object order = map.get("order"); + if (order != null) { + vo.setOrder(Integer.parseInt(String.valueOf(order))); + } + pigxRedisTemplate.setHashValueSerializer(new Jackson2JsonRedisSerializer<>(RouteDefinitionVo.class)); + pigxRedisTemplate.opsForHash().put(CommonConstants.ROUTE_KEY, vo.getId(), vo); + routeDefinitionVoList.add(vo); + }); - // 逻辑删除全部 - SysRouteConf condition = new SysRouteConf(); - condition.setDelFlag(CommonConstants.STATUS_NORMAL); - this.remove(new UpdateWrapper<>(condition)); + // 逻辑删除全部 + SysRouteConf condition = new SysRouteConf(); + condition.setDelFlag(CommonConstants.STATUS_NORMAL); + this.remove(new UpdateWrapper<>(condition)); - //插入生效路由 - List routeConfList = routeDefinitionVoList.stream().map(vo -> { - SysRouteConf routeConf = new SysRouteConf(); - routeConf.setRouteId(vo.getId()); - routeConf.setRouteName(vo.getRouteName()); - routeConf.setFilters(JSONUtil.toJsonStr(vo.getFilters())); - routeConf.setPredicates(JSONUtil.toJsonStr(vo.getPredicates())); - routeConf.setOrder(vo.getOrder()); - routeConf.setUri(vo.getUri().toString()); - return routeConf; - }).collect(Collectors.toList()); - this.saveBatch(routeConfList); - log.debug("更新网关路由结束 "); + //插入生效路由 + List routeConfList = routeDefinitionVoList.stream().map(vo -> { + SysRouteConf routeConf = new SysRouteConf(); + routeConf.setRouteId(vo.getId()); + routeConf.setRouteName(vo.getRouteName()); + routeConf.setFilters(JSONUtil.toJsonStr(vo.getFilters())); + routeConf.setPredicates(JSONUtil.toJsonStr(vo.getPredicates())); + routeConf.setOrder(vo.getOrder()); + routeConf.setUri(vo.getUri().toString()); + return routeConf; + }).collect(Collectors.toList()); + this.saveBatch(routeConfList); + log.debug("更新网关路由结束 "); - this.applicationEventPublisher.publishEvent(new RefreshRoutesEvent(this)); + this.applicationEventPublisher.publishEvent(new RefreshRoutesEvent(this)); + + } catch (Exception e) { + log.error("路由配置解析失败", e); + // 回滚路由,重新加载即可 + this.applicationEventPublisher.publishEvent(new DynamicRouteInitEvent(this)); + // 抛出异常 + throw new RuntimeException(e); + } return Mono.empty(); } diff --git a/pigx-upms/pigx-upms-biz/src/main/resources/logback-spring.xml b/pigx-upms/pigx-upms-biz/src/main/resources/logback-spring.xml index a04742d97..5aefe3a58 100644 --- a/pigx-upms/pigx-upms-biz/src/main/resources/logback-spring.xml +++ b/pigx-upms/pigx-upms-biz/src/main/resources/logback-spring.xml @@ -2,13 +2,13 @@ - + diff --git a/pigx-visual/pigx-activiti/src/main/resources/static/editor-app/editor.html b/pigx-visual/pigx-activiti/src/main/resources/static/editor-app/editor.html index d8defb79f..05064f6da 100644 --- a/pigx-visual/pigx-activiti/src/main/resources/static/editor-app/editor.html +++ b/pigx-visual/pigx-activiti/src/main/resources/static/editor-app/editor.html @@ -48,7 +48,7 @@ data-drag="true" jqyoui-draggable="{onStart:'startDragCallback', onDrag:'dragCallback'}" data-jqyoui-options="{revert: 'invalid', helper: 'clone', opacity : 0.5}"> - + {{item.name}} @@ -57,21 +57,21 @@
-
+ jqyoui-droppable="{onDrop:'dropCallback',onOver: 'overCallback', onOut: 'outCallback'}">
- -
{{'ELEMENT.AUTHOR' | translate}}: {{selectedItem.auditData.author}}
@@ -117,7 +117,7 @@ ng-click="propertyClicked($index)" ng-class="{'clear' : $index%2 == 0}"> {{ property.title }} : {{ property.title }} ({{'PROPERTY.REMOVED' | translate}}) : - +
- - + + diff --git a/pigx-visual/pigx-activiti/src/main/resources/stencilset.json b/pigx-visual/pigx-activiti/src/main/resources/stencilset.json index 0389732d6..3828882ce 100644 --- a/pigx-visual/pigx-activiti/src/main/resources/stencilset.json +++ b/pigx-visual/pigx-activiti/src/main/resources/stencilset.json @@ -1,1339 +1,2412 @@ { - "title" : "BPMN 2.0标准工具", - "namespace" : "http://b3mn.org/stencilset/bpmn2.0#", - "description" : "BPMN process editor", - "propertyPackages" : [ { - "name" : "process_idpackage", - "properties" : [ { - "id" : "process_id", - "type" : "String", - "title" : "流程名称", - "value" : "process", - "description" : "流程的特殊唯一的名称标识", - "popular" : true - } ] - }, { - "name" : "overrideidpackage", - "properties" : [ { - "id" : "overrideid", - "type" : "String", - "title" : "Id", - "value" : "", - "description" : "Unique identifier of the element.", - "popular" : true - } ] - }, { - "name" : "namepackage", - "properties" : [ { - "id" : "name", - "type" : "String", - "title" : "名称", - "value" : "", - "description" : "元素名称", - "popular" : true, - "refToView" : "text_name" - } ] - }, { - "name" : "documentationpackage", - "properties" : [ { - "id" : "documentation", - "type" : "Text", - "title" : "描述", - "value" : "", - "description" : "元素描述", - "popular" : true - } ] - }, { - "name" : "process_authorpackage", - "properties" : [ { - "id" : "process_author", - "type" : "String", - "title" : "流程作者", - "value" : "", - "description" : "流程定义者姓名", - "popular" : true - } ] - }, { - "name" : "process_versionpackage", - "properties" : [ { - "id" : "process_version", - "type" : "String", - "title" : "流程版本", - "value" : "", - "description" : "标识文档版本", - "popular" : true - } ] - }, { - "name" : "process_namespacepackage", - "properties" : [ { - "id" : "process_namespace", - "type" : "String", - "title" : "目标命名空间", - "value" : "http://www.activiti.org/processdef", - "description" : "工作流目标命名空间", - "popular" : true - } ] - }, { - "name" : "asynchronousdefinitionpackage", - "properties" : [ { - "id" : "asynchronousdefinition", - "type" : "Boolean", - "title" : "异步", - "value" : "false", - "description" : "Define the activity as asynchronous.", - "popular" : true - } ] - }, { - "name" : "exclusivedefinitionpackage", - "properties" : [ { - "id" : "exclusivedefinition", - "type" : "Boolean", - "title" : "单独", - "value" : "false", - "description" : "Define the activity as exclusive.", - "popular" : true - } ] - }, { - "name" : "executionlistenerspackage", - "properties" : [ { - "id" : "executionlisteners", - "type" : "multiplecomplex", - "title" : "执行监听器", - "value" : "", - "description" : "Listeners for an activity, process, sequence flow, start and end event.", - "popular" : true - } ] - }, { - "name" : "tasklistenerspackage", - "properties" : [ { - "id" : "tasklisteners", - "type" : "multiplecomplex", - "title" : "任务监听器", - "value" : "", - "description" : "Listeners for a user task", - "popular" : true - } ] - }, { - "name" : "eventlistenerspackage", - "properties" : [ { - "id" : "eventlisteners", - "type" : "multiplecomplex", - "title" : "事件监听器", - "value" : "", - "description" : "Listeners for any event happening in the Activiti Engine. It's also possible to rethrow the event as a signal, message or error event", - "popular" : true - } ] - }, { - "name" : "usertaskassignmentpackage", - "properties" : [ { - "id" : "usertaskassignment", - "type" : "Complex", - "title" : "代理", - "value" : "", - "description" : "Assignment definition for the user task", - "popular" : true - } ] - }, { - "name" : "formpropertiespackage", - "properties" : [ { - "id" : "formproperties", - "type" : "Complex", - "title" : "动态表单属性", - "value" : "", - "description" : "Definition of the form with a list of form properties", - "popular" : true - } ] - }, { - "name" : "formkeydefinitionpackage", - "properties" : [ { - "id" : "formkeydefinition", - "type" : "String", - "title" : "自定义表单", - "value" : "", - "description" : "用户任务表单编号", - "popular" : true - } ] - }, { - "name" : "duedatedefinitionpackage", - "properties" : [ { - "id" : "duedatedefinition", - "type" : "String", - "title" : "到期日期", - "value" : "", - "description" : "用户任务到期时间", - "popular" : true - } ] - }, { - "name" : "prioritydefinitionpackage", - "properties" : [ { - "id" : "prioritydefinition", - "type" : "String", - "title" : "优先级", - "value" : "", - "description" : "用户任务优先级", - "popular" : true - } ] - }, { - "name" : "duedatedefinitionpackage", - "properties" : [ { - "id" : "duedatedefinition", - "type" : "String", - "title" : "到期日期", - "value" : "", - "description" : "Due date of the user task.", - "popular" : true - } ] - }, { - "name" : "servicetaskclasspackage", - "properties" : [ { - "id" : "servicetaskclass", - "type" : "String", - "title" : "监听类", - "value" : "", - "description" : "Class that implements the service task logic.", - "popular" : true - } ] - }, { - "name" : "servicetaskexpressionpackage", - "properties" : [ { - "id" : "servicetaskexpression", - "type" : "String", - "title" : "表达式", - "value" : "", - "description" : "Service task logic defined with an expression.", - "popular" : true - } ] - }, { - "name" : "servicetaskdelegateexpressionpackage", - "properties" : [ { - "id" : "servicetaskdelegateexpression", - "type" : "String", - "title" : "委托表达式", - "value" : "", - "description" : "Service task logic defined with a delegate expression.", - "popular" : true - } ] - }, { - "name" : "servicetaskfieldspackage", - "properties" : [ { - "id" : "servicetaskfields", - "type" : "Complex", - "title" : "字段", - "value" : "", - "description" : "Field extensions", - "popular" : true - } ] - }, { - "name" : "servicetaskresultvariablepackage", - "properties" : [ { - "id" : "servicetaskresultvariable", - "type" : "String", - "title" : "Result variable name", - "value" : "", - "description" : "Process variable name to store the service task result.", - "popular" : true - } ] - }, { - "name" : "scriptformatpackage", - "properties" : [ { - "id" : "scriptformat", - "type" : "String", - "title" : "脚本格式", - "value" : "", - "description" : "Script format of the script task.", - "popular" : true - } ] - }, { - "name" : "scripttextpackage", - "properties" : [ { - "id" : "scripttext", - "type" : "Text", - "title" : "脚本", - "value" : "", - "description" : "Script text of the script task.", - "popular" : true - } ] - }, { - "name" : "ruletask_rulespackage", - "properties" : [ { - "id" : "ruletask_rules", - "type" : "String", - "title" : "规则", - "value" : "", - "description" : "Rules of the rule task.", - "popular" : true - } ] - }, { - "name" : "ruletask_variables_inputpackage", - "properties" : [ { - "id" : "ruletask_variables_input", - "type" : "String", - "title" : "输入变量", - "value" : "", - "description" : "Input variables of the rule task.", - "popular" : true - } ] - }, { - "name" : "ruletask_excludepackage", - "properties" : [ { - "id" : "ruletask_exclude", - "type" : "Boolean", - "title" : "除外", - "value" : "false", - "description" : "Use the rules property as exclusion.", - "popular" : true - } ] - }, { - "name" : "ruletask_resultpackage", - "properties" : [ { - "id" : "ruletask_result", - "type" : "String", - "title" : "返回变量", - "value" : "", - "description" : "Result variable of the rule task.", - "popular" : true - } ] - }, { - "name" : "mailtasktopackage", - "properties" : [ { - "id" : "mailtaskto", - "type" : "Text", - "title" : "接收人", - "value" : "", - "description" : "The recipients if the e-mail. Multiple recipients are defined in a comma-separated list.", - "popular" : true - } ] - }, { - "name" : "mailtaskfrompackage", - "properties" : [ { - "id" : "mailtaskfrom", - "type" : "Text", - "title" : "发件人", - "value" : "", - "description" : "The sender e-mail address. If not provided, the default configured from address is used.", - "popular" : true - } ] - }, { - "name" : "mailtasksubjectpackage", - "properties" : [ { - "id" : "mailtasksubject", - "type" : "Text", - "title" : "主题", - "value" : "", - "description" : "The subject of the e-mail.", - "popular" : true - } ] - }, { - "name" : "mailtaskccpackage", - "properties" : [ { - "id" : "mailtaskcc", - "type" : "Text", - "title" : "转发", - "value" : "", - "description" : "The cc's of the e-mail. Multiple recipients are defined in a comma-separated list", - "popular" : true - } ] - }, { - "name" : "mailtaskbccpackage", - "properties" : [ { - "id" : "mailtaskbcc", - "type" : "Text", - "title" : "密送", - "value" : "", - "description" : "The bcc's of the e-mail. Multiple recipients are defined in a comma-separated list", - "popular" : true - } ] - }, { - "name" : "mailtasktextpackage", - "properties" : [ { - "id" : "mailtasktext", - "type" : "Text", - "title" : "内容", - "value" : "", - "description" : "The content of the e-mail, in case one needs to send plain none-rich e-mails. Can be used in combination with html, for e-mail clients that don't support rich content. The client will then fall back to this text-only alternative.", - "popular" : true - } ] - }, { - "name" : "mailtaskhtmlpackage", - "properties" : [ { - "id" : "mailtaskhtml", - "type" : "Text", - "title" : "Html", - "value" : "", - "description" : "A piece of HTML that is the content of the e-mail.", - "popular" : true - } ] - }, { - "name" : "mailtaskcharsetpackage", - "properties" : [ { - "id" : "mailtaskcharset", - "type" : "String", - "title" : "Charset", - "value" : "", - "description" : "Allows to change the charset of the email, which is necessary for many non-English languages. ", - "popular" : true - } ] - }, { - "name" : "callactivitycalledelementpackage", - "properties" : [ { - "id" : "callactivitycalledelement", - "type" : "String", - "title" : "被调用元素", - "value" : "", - "description" : "Process reference.", - "popular" : true - } ] - }, { - "name" : "callactivityinparameterspackage", - "properties" : [ { - "id" : "callactivityinparameters", - "type" : "Complex", - "title" : "输入参数", - "value" : "", - "description" : "Definition of the input parameters", - "popular" : true - } ] - }, { - "name" : "callactivityoutparameterspackage", - "properties" : [ { - "id" : "callactivityoutparameters", - "type" : "Complex", - "title" : "输出参数", - "value" : "", - "description" : "Definition of the output parameters", - "popular" : true - } ] - }, { - "name" : "cameltaskcamelcontextpackage", - "properties" : [ { - "id" : "cameltaskcamelcontext", - "type" : "String", - "title" : "Camel内容", - "value" : "", - "description" : "An optional camel context definition, if left empty the default is used.", - "popular" : true - } ] - }, { - "name" : "muletaskendpointurlpackage", - "properties" : [ { - "id" : "muletaskendpointurl", - "type" : "String", - "title" : "终端url", - "value" : "", - "description" : "A required endpoint url to sent the message to Mule.", - "popular" : true - } ] - }, { - "name" : "muletasklanguagepackage", - "properties" : [ { - "id" : "muletasklanguage", - "type" : "String", - "title" : "语言", - "value" : "", - "description" : "A required definition for the language to resolve the payload expression, like juel.", - "popular" : true - } ] - }, { - "name" : "muletaskpayloadexpressionpackage", - "properties" : [ { - "id" : "muletaskpayloadexpression", - "type" : "String", - "title" : "有效载荷表达式", - "value" : "", - "description" : "A required definition for the payload of the message sent to Mule.", - "popular" : true - } ] - }, { - "name" : "muletaskresultvariablepackage", - "properties" : [ { - "id" : "muletaskresultvariable", - "type" : "String", - "title" : "返回变量", - "value" : "", - "description" : "An optional result variable for the payload returned.", - "popular" : true - } ] - }, { - "name" : "conditionsequenceflowpackage", - "properties" : [ { - "id" : "conditionsequenceflow", - "type" : "Complex", - "title" : "流转条件", - "value" : "", - "description" : "The condition of the sequence flow", - "popular" : true - } ] - }, { - "name" : "defaultflowpackage", - "properties" : [ { - "id" : "defaultflow", - "type" : "Boolean", - "title" : "默认流转", - "value" : "false", - "description" : "Define the sequence flow as default", - "popular" : true, - "refToView" : "default" - } ] - }, { - "name" : "conditionalflowpackage", - "properties" : [ { - "id" : "conditionalflow", - "type" : "Boolean", - "title" : "Conditional flow", - "value" : "false", - "description" : "Define the sequence flow with a condition", - "popular" : true - } ] - }, { - "name" : "timercycledefinitionpackage", - "properties" : [ { - "id" : "timercycledefinition", - "type" : "String", - "title" : "循环时间(例:R3/PT10H)", - "value" : "", - "description" : "Define the timer with a ISO-8601 cycle.", - "popular" : true - } ] - }, { - "name" : "timerdatedefinitionpackage", - "properties" : [ { - "id" : "timerdatedefinition", - "type" : "String", - "title" : "开始时间(ISO-8601)", - "value" : "", - "description" : "Define the timer with a ISO-8601 date definition.", - "popular" : true - } ] - }, { - "name" : "timerdurationdefinitionpackage", - "properties" : [ { - "id" : "timerdurationdefinition", - "type" : "String", - "title" : "持续时间(例:PT5M)", - "value" : "", - "description" : "Define the timer with a ISO-8601 duration.", - "popular" : true - } ] - }, { - "name" : "timerenddatedefinitionpackage", - "properties" : [ { - "id" : "timerenddatedefinition", - "type" : "String", - "title" : "结束时间(ISO-8601)", - "value" : "", - "description" : "Define the timer with a ISO-8601 duration.", - "popular" : true - } ] - }, { - "name" : "messagerefpackage", - "properties" : [ { - "id" : "messageref", - "type" : "String", - "title" : "消息引用", - "value" : "", - "description" : "Define the message name.", - "popular" : true - } ] - }, { - "name" : "signalrefpackage", - "properties" : [ { - "id" : "signalref", - "type" : "String", - "title" : "信号引用", - "value" : "", - "description" : "Define the signal name.", - "popular" : true - } ] - }, { - "name" : "errorrefpackage", - "properties" : [ { - "id" : "errorref", - "type" : "String", - "title" : "错误引用", - "value" : "", - "description" : "Define the error name.", - "popular" : true - } ] - }, { - "name" : "cancelactivitypackage", - "properties" : [ { - "id" : "cancelactivity", - "type" : "Boolean", - "title" : "取消活动", - "value" : "true", - "description" : "Should the activity be cancelled", - "popular" : true, - "refToView" : [ "frame", "frame2" ] - } ] - }, { - "name" : "initiatorpackage", - "properties" : [ { - "id" : "initiator", - "type" : "String", - "title" : "发起人", - "value" : "", - "description" : "Initiator of the process.", - "popular" : true - } ] - }, { - "name" : "textpackage", - "properties" : [ { - "id" : "text", - "type" : "String", - "title" : "Text", - "value" : "", - "description" : "The text of the text annotation.", - "popular" : true, - "refToView" : "text" - } ] - }, { - "name" : "multiinstance_typepackage", - "properties" : [ { - "id" : "multiinstance_type", - "type" : "kisbpm-multiinstance", - "title" : "多实例类型", - "value" : "None", - "description" : "Repeated activity execution (parallel or sequential) can be displayed through different loop types", - "popular" : true, - "refToView" : "multiinstance" - } ] - }, { - "name" : "multiinstance_cardinalitypackage", - "properties" : [ { - "id" : "multiinstance_cardinality", - "type" : "String", - "title" : "基数(多实例)", - "value" : "", - "description" : "Define the cardinality of multi instance.", - "popular" : true - } ] - }, { - "name" : "multiinstance_collectionpackage", - "properties" : [ { - "id" : "multiinstance_collection", - "type" : "String", - "title" : "集合(多实例)", - "value" : "", - "description" : "Define the collection for the multi instance.", - "popular" : true - } ] - }, { - "name" : "multiinstance_variablepackage", - "properties" : [ { - "id" : "multiinstance_variable", - "type" : "String", - "title" : "元素变量(多实例)", - "value" : "", - "description" : "Define the element variable for the multi instance.", - "popular" : true - } ] - }, { - "name" : "multiinstance_conditionpackage", - "properties" : [ { - "id" : "multiinstance_condition", - "type" : "String", - "title" : "完成条件(多实例)", - "value" : "", - "description" : "Define the completion condition for the multi instance.", - "popular" : true - } ] - }, { - "name" : "isforcompensationpackage", - "properties" : [ { - "id" : "isforcompensation", - "type" : "Boolean", - "title" : "是否为补偿", - "value" : "false", - "description" : "一个标志,标识是否这个活动的目的是为了补偿.", - "popular" : true, - "refToView" : "compensation" - } ] - }, { - "name" : "sequencefloworderpackage", - "properties" : [ { - "id" : "sequencefloworder", - "type" : "Complex", - "title" : "流动顺序", - "value" : "", - "description" : "Order outgoing sequence flows.", - "popular" : true - } ] - }, { - "name" : "signaldefinitionspackage", - "properties" : [ { - "id" : "signaldefinitions", - "type" : "multiplecomplex", - "title" : "信号定义", - "value" : "", - "description" : "Signal definitions", - "popular" : true - } ] - }, { - "name" : "messagedefinitionspackage", - "properties" : [ { - "id" : "messagedefinitions", - "type" : "multiplecomplex", - "title" : "消息定义", - "value" : "", - "description" : "Message definitions", - "popular" : true - } ] - }, { - "name" : "istransactionpackage", - "properties" : [ { - "id" : "istransaction", - "type" : "Boolean", - "title" : "是否事务处理子过程", - "value" : "false", - "description" : "A flag that identifies whether this sub process is of type transaction.", - "popular" : true, - "refToView" : "border" - } ] - }, { - "name" : "terminateAllpackage", - "properties" : [ { - "id" : "terminateAll", - "type" : "Boolean", - "title" : "终止全部", - "value" : "false", - "description" : "Enable to terminate the process instance", - "popular" : true - } ] - } ], - "stencils" : [ { - "type" : "node", - "id" : "BPMNDiagram", - "title" : "BPMN-Diagram", - "description" : "A BPMN 2.0 diagram.", - "view" : "\n\n \n \n \n \n \t\n \n", - "icon" : "diagram.png", - "groups" : [ "Diagram" ], - "mayBeRoot" : true, - "hide" : true, - "propertyPackages" : [ "process_idpackage", "namepackage", "documentationpackage", "process_authorpackage", "process_versionpackage", "process_namespacepackage", "executionlistenerspackage", "eventlistenerspackage", "signaldefinitionspackage", "messagedefinitionspackage" ], - "hiddenPropertyPackages" : [ ], - "roles" : [ ] - }, { - "type" : "node", - "id" : "StartNoneEvent", - "title" : "事件", - "description" : "A start event without a specific trigger", - "view" : "\n\n \n \n \t\n \n \n \n\t\n \n", - "icon" : "startevent/none.png", - "groups" : [ "启动事件" ], - "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "executionlistenerspackage", "initiatorpackage", "formkeydefinitionpackage", "formpropertiespackage" ], - "hiddenPropertyPackages" : [ ], - "roles" : [ "sequence_start", "Startevents_all", "StartEventsMorph", "all" ] - }, { - "type" : "node", - "id" : "StartTimerEvent", - "title" : "定时事件", - "description" : "A start event with a timer trigger", - "view" : "\n\n \n \n \t\n \n \n \n \n \n \n \n\t\n \n", - "icon" : "startevent/timer.png", - "groups" : [ "启动事件" ], - "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "executionlistenerspackage", "timercycledefinitionpackage", "timerdatedefinitionpackage", "timerdurationdefinitionpackage" ], - "hiddenPropertyPackages" : [ ], - "roles" : [ "sequence_start", "Startevents_all", "StartEventsMorph", "all" ] - }, { - "type" : "node", - "id" : "StartSignalEvent", - "title" : "信号事件", - "description" : "A start event with a signal trigger", - "view" : "\n\n \n \n \t\n \n \n\n \n \n \n\t\n \n", - "icon" : "startevent/signal.png", - "groups" : [ "启动事件" ], - "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "executionlistenerspackage", "signalrefpackage" ], - "hiddenPropertyPackages" : [ ], - "roles" : [ "sequence_start", "Startevents_all", "StartEventsMorph", "all" ] - }, { - "type" : "node", - "id" : "StartMessageEvent", - "title" : "消息事件", - "description" : "A start event with a message trigger", - "view" : "\n\n \n \n \t\n \n \n \n \n \n \n \n\t\n \n", - "icon" : "startevent/message.png", - "groups" : [ "启动事件" ], - "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "executionlistenerspackage", "messagerefpackage" ], - "hiddenPropertyPackages" : [ ], - "roles" : [ "sequence_start", "Startevents_all", "StartEventsMorph", "all" ] - }, { - "type" : "node", - "id" : "StartErrorEvent", - "title" : "异常事件", - "description" : "A start event that catches a thrown BPMN error", - "view" : "\n\n \n \n \t\n \n \n \n \n \n \n\t\n \n", - "icon" : "startevent/error.png", - "groups" : [ "启动事件" ], - "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "executionlistenerspackage", "errorrefpackage" ], - "hiddenPropertyPackages" : [ ], - "roles" : [ "sequence_start", "Startevents_all", "StartEventsMorph", "all" ] - }, { - "type" : "node", - "id" : "UserTask", - "title" : "用户活动", - "description" : "分配给特定人的任务 ", - "view" : "\n\n \n \n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \n \n\t\n\t\n\t\t\n\t\t\n\t\n\t\n\t\t\n\t\t\n\t\n \n\t\n\t\t\n\t\n\t\n\t\n\t\t\n\t\n\t\n\n\t\n\t\t\n\t\n \n", - "icon" : "activity/list/type.user.png", - "groups" : [ "活动列表" ], - "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "asynchronousdefinitionpackage", "exclusivedefinitionpackage", "executionlistenerspackage", "multiinstance_typepackage", "multiinstance_cardinalitypackage", "multiinstance_collectionpackage", "multiinstance_variablepackage", "multiinstance_conditionpackage", "isforcompensationpackage", "usertaskassignmentpackage", "formkeydefinitionpackage", "duedatedefinitionpackage", "prioritydefinitionpackage", "formpropertiespackage", "tasklistenerspackage" ], - "hiddenPropertyPackages" : [ ], - "roles" : [ "Activity", "sequence_start", "sequence_end", "ActivitiesMorph", "all" ] - }, { - "type" : "node", - "id" : "ServiceTask", - "title" : "服务任务", - "description" : "An automatic task with service logic", - "view" : "\n\n \n \n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \n \n\t\n\t\n\t\t\n\t\t\n\t\n\t\n\t\n\t\n \n\t\n\t\t\n\t\n\t\n\t\n\t\t\n\t\n\t\n\t\n\t\t\n\t\n \n", - "icon" : "activity/list/type.service.png", - "groups" : [ "活动列表" ], - "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "asynchronousdefinitionpackage", "exclusivedefinitionpackage", "executionlistenerspackage", "multiinstance_typepackage", "multiinstance_cardinalitypackage", "multiinstance_collectionpackage", "multiinstance_variablepackage", "multiinstance_conditionpackage", "isforcompensationpackage", "servicetaskclasspackage", "servicetaskexpressionpackage", "servicetaskdelegateexpressionpackage", "servicetaskfieldspackage", "servicetaskresultvariablepackage" ], - "hiddenPropertyPackages" : [ ], - "roles" : [ "Activity", "sequence_start", "sequence_end", "ActivitiesMorph", "all" ] - }, { - "type" : "node", - "id" : "ScriptTask", - "title" : "脚本任务", - "description" : "An automatic task with script logic", - "view" : "\n\n \n \n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \n \n\t\n\t\n\t\t\n\t\t\n\t\n\t\n\t\t\n\t\n \n\t\n\t\t\n\t\n\t\n\t\t\n\t\n\t\n\n\t\n\t\t\n\t\n \n", - "icon" : "activity/list/type.script.png", - "groups" : [ "活动列表" ], - "propertyPackages" : [ "scriptformatpackage", "scripttextpackage", "overrideidpackage", "namepackage", "documentationpackage", "asynchronousdefinitionpackage", "exclusivedefinitionpackage", "executionlistenerspackage", "multiinstance_typepackage", "multiinstance_cardinalitypackage", "multiinstance_collectionpackage", "multiinstance_variablepackage", "multiinstance_conditionpackage", "isforcompensationpackage" ], - "hiddenPropertyPackages" : [ ], - "roles" : [ "Activity", "sequence_start", "sequence_end", "ActivitiesMorph", "all" ] - }, { - "type" : "node", - "id" : "BusinessRule", - "title" : "规则任务", - "description" : "An automatic task with rule logic", - "view" : "\n\n \n \n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \n \n \t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\n\t\n\t\n\t\n\t\t\n\t\t\n \n\t\n\t\t\n\t\n\t\n\t\n\t\t\n\t\n\t\n\t\n\t\t\n\t\n\n\t\n\t\t\n\t\n \n", - "icon" : "activity/list/type.business.rule.png", - "groups" : [ "活动列表" ], - "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "asynchronousdefinitionpackage", "exclusivedefinitionpackage", "executionlistenerspackage", "multiinstance_typepackage", "multiinstance_cardinalitypackage", "multiinstance_collectionpackage", "multiinstance_variablepackage", "multiinstance_conditionpackage", "isforcompensationpackage", "ruletask_rulespackage", "ruletask_variables_inputpackage", "ruletask_excludepackage", "ruletask_resultpackage" ], - "hiddenPropertyPackages" : [ ], - "roles" : [ "Activity", "sequence_start", "sequence_end", "ActivitiesMorph", "all" ] - }, { - "type" : "node", - "id" : "ReceiveTask", - "title" : "接受任务", - "description" : "An task that waits for a signal", - "view" : "\n\n \n \n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \n \n\t\n\t\n\t\t\n\t\t\n \n\t\n\t\t\n\t\n\t\n\t\n\t\t\n\t\n\t\n\t\n\t\t\n\t\n\n\t\n\t\t\n\t\n \n", - "icon" : "activity/list/type.receive.png", - "groups" : [ "活动列表" ], - "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "asynchronousdefinitionpackage", "exclusivedefinitionpackage", "executionlistenerspackage", "multiinstance_typepackage", "multiinstance_cardinalitypackage", "multiinstance_collectionpackage", "multiinstance_variablepackage", "multiinstance_conditionpackage", "isforcompensationpackage" ], - "hiddenPropertyPackages" : [ ], - "roles" : [ "Activity", "sequence_start", "sequence_end", "ActivitiesMorph", "all" ] - }, { - "type" : "node", - "id" : "ManualTask", - "title" : "手工任务", - "description" : "An automatic task with no logic", - "view" : "\n\n \n \n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \n \n\t\n\t\n\t\t\n\t\t\n \n \t\n\t\n\t\n\t\n\t\t\n\t\n\t\n\t\n\t\t\n\t\n\n\t\n\t\t\n\t\n \n", - "icon" : "activity/list/type.manual.png", - "groups" : [ "活动列表" ], - "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "asynchronousdefinitionpackage", "exclusivedefinitionpackage", "executionlistenerspackage", "multiinstance_typepackage", "multiinstance_cardinalitypackage", "multiinstance_collectionpackage", "multiinstance_variablepackage", "multiinstance_conditionpackage", "isforcompensationpackage" ], - "hiddenPropertyPackages" : [ ], - "roles" : [ "Activity", "sequence_start", "sequence_end", "ActivitiesMorph", "all" ] - }, { - "type" : "node", - "id" : "MailTask", - "title" : "邮件任务", - "description" : "An mail task", - "view" : "\n\n \n \n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \n \n\t\n\t\n\t\t\n\t\t\n \n\t\n\t\n\t\n\t\t\n\t\n\t\n\t\n\t\t\n\t\n\t\n\t\n\t\t\n\t\n\n\t\n\t\t\n\t\n \n", - "icon" : "activity/list/type.send.png", - "groups" : [ "活动列表" ], - "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "asynchronousdefinitionpackage", "exclusivedefinitionpackage", "executionlistenerspackage", "multiinstance_typepackage", "multiinstance_cardinalitypackage", "multiinstance_collectionpackage", "multiinstance_variablepackage", "multiinstance_conditionpackage", "isforcompensationpackage", "mailtasktopackage", "mailtaskfrompackage", "mailtasksubjectpackage", "mailtaskccpackage", "mailtaskbccpackage", "mailtasktextpackage", "mailtaskhtmlpackage", "mailtaskcharsetpackage" ], - "hiddenPropertyPackages" : [ ], - "roles" : [ "Activity", "sequence_start", "sequence_end", "ActivitiesMorph", "all" ] - }, { - "type" : "node", - "id" : "CamelTask", - "title" : "Camel任务", - "description" : "An task that sends a message to Camel", - "view" : "\n\n \n \n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \n \n\t\n\t\n\t\t\n\t\t\n\t\n\t\n\t\t\n\t\n \n\t\n\t\t\n\t\n\t\n\t\t\n\t\n\t\n\n\t\n\t\t\n\t\n \n", - "icon" : "activity/list/type.camel.png", - "groups" : [ "活动列表" ], - "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "asynchronousdefinitionpackage", "exclusivedefinitionpackage", "executionlistenerspackage", "multiinstance_typepackage", "multiinstance_cardinalitypackage", "multiinstance_collectionpackage", "multiinstance_variablepackage", "multiinstance_conditionpackage", "isforcompensationpackage", "cameltaskcamelcontextpackage" ], - "hiddenPropertyPackages" : [ ], - "roles" : [ "Activity", "sequence_start", "sequence_end", "ActivitiesMorph", "all" ] - }, { - "type" : "node", - "id" : "MuleTask", - "title" : "Mule任务", - "description" : "An task that sends a message to Mule", - "view" : "\n\n \n \n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \n \n\t\n\t\n\t\t\n\t\t\n\t\n\t\n\t\t\n\t\n \n\t\n\t\t\n\t\n\t\n\t\t\n\t\n\t\n\n\t\n\t\t\n\t\n \n", - "icon" : "activity/list/type.mule.png", - "groups" : [ "活动列表" ], - "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "asynchronousdefinitionpackage", "exclusivedefinitionpackage", "executionlistenerspackage", "multiinstance_typepackage", "multiinstance_cardinalitypackage", "multiinstance_collectionpackage", "multiinstance_variablepackage", "multiinstance_conditionpackage", "isforcompensationpackage", "muletaskendpointurlpackage", "muletasklanguagepackage", "muletaskpayloadexpressionpackage", "muletaskresultvariablepackage" ], - "hiddenPropertyPackages" : [ ], - "roles" : [ "Activity", "sequence_start", "sequence_end", "ActivitiesMorph", "all" ] - }, { - "type" : "node", - "id" : "SendTask", - "title" : "Send task", - "description" : "An task that sends a message", - "view" : "\n\n \n \n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \n \n\t\n\t\n\t\t\n\t\t\n \n\t\n\t\n\t\n\t\t\n\t\n\t\n\t\n\t\t\n\t\n\t\n\t\n\t\t\n\t\n\n\t\n\t\t\n\t\n \n", - "icon" : "activity/list/type.send.png", - "groups" : [ "活动列表" ], - "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "asynchronousdefinitionpackage", "exclusivedefinitionpackage", "executionlistenerspackage", "multiinstance_typepackage", "multiinstance_cardinalitypackage", "multiinstance_collectionpackage", "multiinstance_variablepackage", "multiinstance_conditionpackage", "isforcompensationpackage" ], - "hiddenPropertyPackages" : [ ], - "roles" : [ "Activity", "sequence_start", "sequence_end", "ActivitiesMorph", "all" ] - }, { - "type" : "node", - "id" : "SubProcess", - "title" : "子流程", - "description" : "子流程范围", - "view" : "\n\n \n \n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \n \n \n\t\n\t\n\t\n\t\n\t\n\t\n\t\t\n\t\n\t\n\t\t\n\t\n \n", - "icon" : "activity/expanded.subprocess.png", - "groups" : [ "结构列表" ], - "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "asynchronousdefinitionpackage", "exclusivedefinitionpackage", "executionlistenerspackage", "multiinstance_typepackage", "multiinstance_cardinalitypackage", "multiinstance_collectionpackage", "multiinstance_variablepackage", "multiinstance_conditionpackage", "istransactionpackage" ], - "hiddenPropertyPackages" : [ ], - "roles" : [ "Activity", "sequence_start", "sequence_end", "all" ] - }, { - "type" : "node", - "id" : "EventSubProcess", - "title" : "事件子流程", - "description" : "一个事件周期的子流程", - "view" : "\n\n \n \n \t\n \t\n \t\n \t\n \t\n \n \n\t\n\t\n \t\n\t\t\n \t\n\t\n\t\n \n", - "icon" : "activity/event.subprocess.png", - "groups" : [ "结构列表" ], - "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "asynchronousdefinitionpackage", "exclusivedefinitionpackage", "executionlistenerspackage" ], - "hiddenPropertyPackages" : [ ], - "roles" : [ "Activity", "all" ] - }, { - "type" : "node", - "id" : "CallActivity", - "title" : "调用活动", - "description" : "一个调用活动", - "view" : "\n\n \n \n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \n \n\t\n \n\t\n\t\t\n\t\t\n \n\t\n\t\t\n\t\n\t\n\t\n\t\t\n\t\n\n\t\n\t\t\n\t\n \n", - "icon" : "activity/task.png", - "groups" : [ "结构列表" ], - "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "asynchronousdefinitionpackage", "exclusivedefinitionpackage", "executionlistenerspackage", "callactivitycalledelementpackage", "callactivityinparameterspackage", "callactivityoutparameterspackage", "multiinstance_typepackage", "multiinstance_cardinalitypackage", "multiinstance_collectionpackage", "multiinstance_variablepackage", "multiinstance_conditionpackage", "isforcompensationpackage" ], - "hiddenPropertyPackages" : [ ], - "roles" : [ "Activity", "sequence_start", "sequence_end", "all" ] - }, { - "type" : "node", - "id" : "ExclusiveGateway", - "title" : "互斥网关", - "description" : "一个选择的网关", - "view" : "\n\n \n \n \n \t\t\t\t\t\n \n \n \n \n \n \n \n\t\n\t\n\t\n \n\n", - "icon" : "gateway/exclusive.databased.png", - "groups" : [ "网关列表" ], - "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "asynchronousdefinitionpackage", "exclusivedefinitionpackage", "sequencefloworderpackage" ], - "hiddenPropertyPackages" : [ ], - "roles" : [ "sequence_start", "GatewaysMorph", "sequence_end", "all" ] - }, { - "type" : "node", - "id" : "ParallelGateway", - "title" : "并行网关", - "description" : "一个并行的网关", - "view" : "\n\n \n \n \n \n \n \n \n \n\t\n\t\n \n\n", - "icon" : "gateway/parallel.png", - "groups" : [ "网关列表" ], - "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "asynchronousdefinitionpackage", "exclusivedefinitionpackage", "sequencefloworderpackage" ], - "hiddenPropertyPackages" : [ ], - "roles" : [ "sequence_start", "GatewaysMorph", "sequence_end", "all" ] - }, { - "type" : "node", - "id" : "InclusiveGateway", - "title" : "包容性网关", - "description" : "一个包容性网关", - "view" : "\n\n \n \n \n \n\n \n \n \n\t\n\t\n \n\n", - "icon" : "gateway/inclusive.png", - "groups" : [ "网关列表" ], - "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "asynchronousdefinitionpackage", "exclusivedefinitionpackage", "sequencefloworderpackage" ], - "hiddenPropertyPackages" : [ ], - "roles" : [ "sequence_start", "GatewaysMorph", "sequence_end", "all" ] - }, { - "type" : "node", - "id" : "EventGateway", - "title" : "事件网关", - "description" : "一个事件网关", - "view" : "\n\n \n \n \n \n \n \t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\t\n\t\t\n\t\t\n\t\n\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\n\t\n\t\n\t\n\t\n \t\n\t\n\n", - "icon" : "gateway/eventbased.png", - "groups" : [ "网关列表" ], - "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "asynchronousdefinitionpackage", "exclusivedefinitionpackage", "sequencefloworderpackage" ], - "hiddenPropertyPackages" : [ ], - "roles" : [ "sequence_start", "GatewaysMorph", "sequence_end", "all" ] - }, { - "type" : "node", - "id" : "BoundaryErrorEvent", - "title" : "边界错误事件", - "description" : "一个捕捉BPMN异常的边界事件", - "view" : "\n\n \n \n \t\n \n \n \n \n \n \n \n\t\n \n", - "icon" : "catching/error.png", - "groups" : [ "边界事件" ], - "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "errorrefpackage" ], - "hiddenPropertyPackages" : [ ], - "roles" : [ "sequence_start", "BoundaryEventsMorph", "IntermediateEventOnActivityBoundary" ] - }, { - "type" : "node", - "id" : "BoundaryTimerEvent", - "title" : "定时边界事件", - "description" : "一个定时触发的边界事件", - "view" : "\n\n \n \n \t\n \n \n \n \n \t\n \n \n \n \n \n \n \t\n\t\n \n", - "icon" : "catching/timer.png", - "groups" : [ "边界事件" ], - "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "timercycledefinitionpackage", "timerdatedefinitionpackage", "timerdurationdefinitionpackage", "timerenddatedefinitionpackage", "cancelactivitypackage" ], - "hiddenPropertyPackages" : [ ], - "roles" : [ "sequence_start", "BoundaryEventsMorph", "IntermediateEventOnActivityBoundary" ] - }, { - "type" : "node", - "id" : "BoundarySignalEvent", - "title" : "边界信号事件", - "description" : "一个信号触发的边界事件", - "view" : "\n\n \n \n \t\n \n \n \n \n \t\n \n \n \n \n\t\n\t\n \n", - "icon" : "catching/signal.png", - "groups" : [ "边界事件" ], - "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "signalrefpackage", "cancelactivitypackage" ], - "hiddenPropertyPackages" : [ ], - "roles" : [ "sequence_start", "BoundaryEventsMorph", "IntermediateEventOnActivityBoundary" ] - }, { - "type" : "node", - "id" : "BoundaryMessageEvent", - "title" : "边界消息事件", - "description" : "一个边界消息事件", - "view" : "\n\n \n \n \t\n \n \n \n \n \t\n \n \t\n \n \n \n\t\n\t\t\n\t\n\t\n\t\n \n", - "icon" : "catching/message.png", - "groups" : [ "边界事件" ], - "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "messagerefpackage", "cancelactivitypackage" ], - "hiddenPropertyPackages" : [ ], - "roles" : [ "sequence_start", "BoundaryEventsMorph", "IntermediateEventOnActivityBoundary" ] - }, { - "type" : "node", - "id" : "BoundaryCancelEvent", - "title" : "边界取消事件", - "description" : "一个边界取消事件", - "view" : "\n\n \n \n \t\n \n \n \n \n \n \n \n \n\t\n \n", - "icon" : "catching/cancel.png", - "groups" : [ "边界事件" ], - "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage" ], - "hiddenPropertyPackages" : [ ], - "roles" : [ "sequence_start", "BoundaryEventsMorph", "IntermediateEventOnActivityBoundary" ] - }, { - "type" : "node", - "id" : "BoundaryCompensationEvent", - "title" : "边界修正事件", - "description" : "一个边界修正事件", - "view" : "\n\n \n \n \t\n \n \n \n\t\n \n \n \n \n \n\t\n \n", - "icon" : "catching/compensation.png", - "groups" : [ "边界事件" ], - "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage" ], - "hiddenPropertyPackages" : [ ], - "roles" : [ "BoundaryEventsMorph", "IntermediateEventOnActivityBoundary", "all" ] - }, { - "type" : "node", - "id" : "CatchTimerEvent", - "title" : "中间定时器捕获事件", - "description" : "定时器触发的中间捕获事件", - "view" : "\n\n \n \n \t\n \n \n \n \n \t\n \n \n \n \n \n \n \t\n\t\n \n", - "icon" : "catching/timer.png", - "groups" : [ "中间捕获事件列表" ], - "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "executionlistenerspackage", "timercycledefinitionpackage", "timerdatedefinitionpackage", "timerdurationdefinitionpackage" ], - "hiddenPropertyPackages" : [ ], - "roles" : [ "sequence_start", "sequence_end", "CatchEventsMorph", "all" ] - }, { - "type" : "node", - "id" : "CatchSignalEvent", - "title" : "中间信号捕获事件", - "description" : "信号触发的捕获事件", - "view" : "\n\n \n \n \t\n \n \n \n \n \t\n \n \n \n \n\t\n\t\n \n", - "icon" : "catching/signal.png", - "groups" : [ "中间捕获事件列表" ], - "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "executionlistenerspackage", "signalrefpackage" ], - "hiddenPropertyPackages" : [ ], - "roles" : [ "sequence_start", "sequence_end", "CatchEventsMorph", "all" ] - }, { - "type" : "node", - "id" : "CatchMessageEvent", - "title" : "中间消息捕获事件", - "description" : "一个消息触发的中间捕获事件", - "view" : "\n\n \n \n \t\n \n \n \n \n \t\n \n \t\n \n \n \n\t\n\t\t\n\t\n\t\n\t\n \n", - "icon" : "catching/message.png", - "groups" : [ "中间捕获事件列表" ], - "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "executionlistenerspackage", "messagerefpackage" ], - "hiddenPropertyPackages" : [ ], - "roles" : [ "sequence_start", "sequence_end", "CatchEventsMorph", "all" ] - }, { - "type" : "node", - "id" : "ThrowNoneEvent", - "title" : "中间抛出事件", - "description" : "无触发器的中间抛出事件", - "view" : "\n\n \n \n \t\n \n \n \n \n \n \n\t\n \n", - "icon" : "throwing/none.png", - "groups" : [ "中间抛出事件" ], - "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "executionlistenerspackage" ], - "hiddenPropertyPackages" : [ ], - "roles" : [ "ThrowEventsMorph", "sequence_start", "sequence_end", "all" ] - }, { - "type" : "node", - "id" : "ThrowSignalEvent", - "title" : "信号中间抛出事件", - "description" : "一个信号触发的中间抛出事件", - "view" : "\n\n \n \n \t\n \n \n \n \n \n \n\t\n \n", - "icon" : "throwing/signal.png", - "groups" : [ "中间抛出事件" ], - "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "executionlistenerspackage", "signalrefpackage" ], - "hiddenPropertyPackages" : [ ], - "roles" : [ "ThrowEventsMorph", "sequence_start", "sequence_end", "all" ] - }, { - "type" : "node", - "id" : "EndNoneEvent", - "title" : "结束任务", - "description" : "一个无触发器的结束任务", - "view" : "\n\n \n \n \t\n \n \n \n\t\n \n", - "icon" : "endevent/none.png", - "groups" : [ "结束任务列表" ], - "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "executionlistenerspackage" ], - "hiddenPropertyPackages" : [ ], - "roles" : [ "EndEventsMorph", "sequence_end", "all" ] - }, { - "type" : "node", - "id" : "EndErrorEvent", - "title" : "结束错误任务", - "description" : "An end event that throws an error event", - "view" : "\n\n \n \n \t\n \n \n \n \n \n \n\t\n \n", - "icon" : "endevent/error.png", - "groups" : [ "结束任务列表" ], - "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "executionlistenerspackage", "errorrefpackage" ], - "hiddenPropertyPackages" : [ ], - "roles" : [ "EndEventsMorph", "sequence_end", "all" ] - }, { - "type" : "node", - "id" : "EndCancelEvent", - "title" : "结束取消任务", - "description" : "A cancel end event", - "view" : "\n\n \n \n \t\n \n \n \n \n \n\t\n \n", - "icon" : "endevent/cancel.png", - "groups" : [ "结束任务列表" ], - "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "executionlistenerspackage" ], - "hiddenPropertyPackages" : [ ], - "roles" : [ "EndEventsMorph", "sequence_end", "all" ] - }, { - "type" : "node", - "id" : "EndTerminateEvent", - "title" : "终结任务", - "description" : "A terminate end event", - "view" : "\n\n \n \n \t\n \n \n \n \n \n\t\n \n", - "icon" : "endevent/terminate.png", - "groups" : [ "结束任务列表" ], - "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "executionlistenerspackage", "terminateAllpackage" ], - "hiddenPropertyPackages" : [ ], - "roles" : [ "EndEventsMorph", "sequence_end", "all" ] - }, { - "type" : "node", - "id" : "Pool", - "title" : "池", - "description" : "A pool to stucture the process definition", - "view" : "\n\n \n \n \t\n \t\n \t\n \t\n \t\n \n \n \n\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\n\t \t\n \t\n \n \n\t\n\t\n\t\n\t\n \n \n \n", - "icon" : "swimlane/pool.png", - "groups" : [ "泳道列表" ], - "layout" : [ { - "type" : "layout.bpmn2_0.pool" - } ], - "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "process_idpackage" ], - "hiddenPropertyPackages" : [ ], - "roles" : [ "canContainArtifacts", "all" ] - }, { - "type" : "node", - "id" : "Lane", - "title" : "泳道", - "description" : "A lane to stucture the process definition", - "view" : "\n\n \n \n \n \n\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\n\t\n \t\t\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n \n\t\n \n", - "icon" : "swimlane/lane.png", - "groups" : [ "泳道列表" ], - "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage" ], - "hiddenPropertyPackages" : [ ], - "roles" : [ "PoolChild", "canContainArtifacts", "all" ] - }, { - "type" : "edge", - "id" : "SequenceFlow", - "title" : "顺序流", - "description" : "顺序流定义活动的执行顺序", - "view" : "\r\n\r\n\t\r\n\t \t\r\n\t \t\t\r\n\t\t\t\r\n\t \t\r\n\t \t\r\n\t \t\t\r\n\t \t\r\n\t\r\n\t\r\n\t\t\r\n\t\t\r\n\t\r\n", - "icon" : "connector/sequenceflow.png", - "groups" : [ "连接对象" ], - "layout" : [ { - "type" : "layout.bpmn2_0.sequenceflow" - } ], - "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "conditionsequenceflowpackage", "executionlistenerspackage", "defaultflowpackage" ], - "hiddenPropertyPackages" : [ ], - "roles" : [ "ConnectingObjectsMorph", "all" ] - }, { - "type" : "edge", - "id" : "MessageFlow", - "title" : "消息流", - "description" : "Message flow to connect elements in different pools.", - "view" : "\r\n\r\n\t\r\n\t\t\r\n\t \t\t\r\n\t \t\t\r\n\t \t\r\n\r\n\t \t\r\n\t \t\t\r\n\t \t\r\n\t\r\n\t\r\n\t \r\n\t\t\r\n\t\r\n", - "icon" : "connector/messageflow.png", - "groups" : [ "连接对象" ], - "layout" : [ { - "type" : "layout.bpmn2_0.sequenceflow" - } ], - "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage" ], - "hiddenPropertyPackages" : [ ], - "roles" : [ "ConnectingObjectsMorph", "all" ] - }, { - "type" : "edge", - "id" : "Association", - "title" : "注释", - "description" : "连接一个注释到指定元素", - "view" : "\r\n\r\n\t\r\n\t \r\n\t\t\r\n\t\r\n", - "icon" : "connector/association.undirected.png", - "groups" : [ "连接对象" ], - "layout" : [ { - "type" : "layout.bpmn2_0.sequenceflow" - } ], - "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage" ], - "hiddenPropertyPackages" : [ ], - "roles" : [ "ConnectingObjectsMorph", "all" ] - }, { - "type" : "edge", - "id" : "DataAssociation", - "title" : "日期注释", - "description" : "连接一个日期注释到指定元素", - "view" : "\r\n\r\n\t\r\n\t \t\r\n\t \t\t\r\n\t \t\r\n\t\r\n\t\r\n\t \r\n\t\t\r\n\t\r\n", - "icon" : "connector/association.unidirectional.png", - "groups" : [ "连接对象" ], - "layout" : [ { - "type" : "layout.bpmn2_0.sequenceflow" - } ], - "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage" ], - "hiddenPropertyPackages" : [ ], - "roles" : [ "ConnectingObjectsMorph", "all" ] - }, { - "type" : "node", - "id" : "TextAnnotation", - "title" : "文本注释", - "description" : "连接一个文本注释到指定元素", - "view" : "\n\n \n \n \t\n \n \n \n \n \n \n\t\n \n", - "icon" : "artifact/text.annotation.png", - "groups" : [ "加工" ], - "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage", "textpackage" ], - "hiddenPropertyPackages" : [ ], - "roles" : [ "all" ] - }, { - "type" : "node", - "id" : "DataStore", - "title" : "Data store", - "description" : "Reference to a data store.", - "view" : "\r\n\r\n\t\r\n\t\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\r\n\t\r\n\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\t\t \t\r\n\t\t\r\n\t\t\t \r\n\t\r\n\r\n", - "icon" : "dataobject/data.store.png", - "groups" : [ "Artifacts" ], - "propertyPackages" : [ "overrideidpackage", "namepackage", "documentationpackage" ], - "hiddenPropertyPackages" : [ ], - "roles" : [ "all" ] - } ], - "rules" : { - "cardinalityRules" : [ { - "role" : "Startevents_all", - "incomingEdges" : [ { - "role" : "SequenceFlow", - "maximum" : 0 - } ] - }, { - "role" : "Endevents_all", - "outgoingEdges" : [ { - "role" : "SequenceFlow", - "maximum" : 0 - } ] - } ], - "connectionRules" : [ { - "role" : "SequenceFlow", - "connects" : [ { - "from" : "sequence_start", - "to" : [ "sequence_end" ] - } ] - }, { - "role" : "Association", - "connects" : [ { - "from" : "sequence_start", - "to" : [ "TextAnnotation" ] - }, { - "from" : "sequence_end", - "to" : [ "TextAnnotation" ] - }, { - "from" : "TextAnnotation", - "to" : [ "sequence_end" ] - }, { - "from" : "BoundaryCompensationEvent", - "to" : [ "sequence_end" ] - }, { - "from" : "TextAnnotation", - "to" : [ "sequence_start" ] - }, { - "from" : "BoundaryCompensationEvent", - "to" : [ "sequence_start" ] - } ] - }, { - "role" : "DataAssociation", - "connects" : [ { - "from" : "sequence_start", - "to" : [ "DataStore" ] - }, { - "from" : "sequence_end", - "to" : [ "DataStore" ] - }, { - "from" : "DataStore", - "to" : [ "sequence_end" ] - }, { - "from" : "DataStore", - "to" : [ "sequence_start" ] - } ] - }, { - "role" : "IntermediateEventOnActivityBoundary", - "connects" : [ { - "from" : "Activity", - "to" : [ "IntermediateEventOnActivityBoundary" ] - } ] - } ], - "containmentRules" : [ { - "role" : "BPMNDiagram", - "contains" : [ "all" ] - }, { - "role" : "SubProcess", - "contains" : [ "sequence_start", "sequence_end", "from_task_event", "to_task_event", "EventSubProcess", "TextAnnotation", "DataStore" ] - }, { - "role" : "EventSubProcess", - "contains" : [ "sequence_start", "sequence_end", "from_task_event", "to_task_event", "TextAnnotation", "DataStore" ] - }, { - "role" : "Pool", - "contains" : [ "Lane" ] - }, { - "role" : "Lane", - "contains" : [ "sequence_start", "sequence_end", "EventSubProcess", "TextAnnotation", "DataStore" ] - } ], - "morphingRules" : [ { - "role" : "ActivitiesMorph", - "baseMorphs" : [ "UserTask" ], - "preserveBounds" : true - }, { - "role" : "GatewaysMorph", - "baseMorphs" : [ "ExclusiveGateway" ] - }, { - "role" : "StartEventsMorph", - "baseMorphs" : [ "StartNoneEvent" ] - }, { - "role" : "EndEventsMorph", - "baseMorphs" : [ "StartNoneEvent" ] - }, { - "role" : "CatchEventsMorph", - "baseMorphs" : [ "CatchTimerEvent" ] - }, { - "role" : "ThrowEventsMorph", - "baseMorphs" : [ "ThrowNoneEvent" ] - }, { - "role" : "BoundaryEventsMorph", - "baseMorphs" : [ "ThrowNoneEvent" ] - }, { - "role" : "BoundaryCompensationEvent", - "baseMorphs" : [ "BoundaryCompensationEvent" ] - }, { - "role" : "TextAnnotation", - "baseMorphs" : [ "TextAnnotation" ] - }, { - "role" : "DataStore", - "baseMorphs" : [ "DataStore" ] - } ] + "title": "BPMN 2.0标准工具", + "namespace": "http://b3mn.org/stencilset/bpmn2.0#", + "description": "BPMN process editor", + "propertyPackages": [ + { + "name": "process_idpackage", + "properties": [ + { + "id": "process_id", + "type": "String", + "title": "流程名称", + "value": "process", + "description": "流程的特殊唯一的名称标识", + "popular": true + } + ] + }, + { + "name": "overrideidpackage", + "properties": [ + { + "id": "overrideid", + "type": "String", + "title": "Id", + "value": "", + "description": "Unique identifier of the element.", + "popular": true + } + ] + }, + { + "name": "namepackage", + "properties": [ + { + "id": "name", + "type": "String", + "title": "名称", + "value": "", + "description": "元素名称", + "popular": true, + "refToView": "text_name" + } + ] + }, + { + "name": "documentationpackage", + "properties": [ + { + "id": "documentation", + "type": "Text", + "title": "描述", + "value": "", + "description": "元素描述", + "popular": true + } + ] + }, + { + "name": "process_authorpackage", + "properties": [ + { + "id": "process_author", + "type": "String", + "title": "流程作者", + "value": "", + "description": "流程定义者姓名", + "popular": true + } + ] + }, + { + "name": "process_versionpackage", + "properties": [ + { + "id": "process_version", + "type": "String", + "title": "流程版本", + "value": "", + "description": "标识文档版本", + "popular": true + } + ] + }, + { + "name": "process_namespacepackage", + "properties": [ + { + "id": "process_namespace", + "type": "String", + "title": "目标命名空间", + "value": "http://www.activiti.org/processdef", + "description": "工作流目标命名空间", + "popular": true + } + ] + }, + { + "name": "asynchronousdefinitionpackage", + "properties": [ + { + "id": "asynchronousdefinition", + "type": "Boolean", + "title": "异步", + "value": "false", + "description": "Define the activity as asynchronous.", + "popular": true + } + ] + }, + { + "name": "exclusivedefinitionpackage", + "properties": [ + { + "id": "exclusivedefinition", + "type": "Boolean", + "title": "单独", + "value": "false", + "description": "Define the activity as exclusive.", + "popular": true + } + ] + }, + { + "name": "executionlistenerspackage", + "properties": [ + { + "id": "executionlisteners", + "type": "multiplecomplex", + "title": "执行监听器", + "value": "", + "description": "Listeners for an activity, process, sequence flow, start and end event.", + "popular": true + } + ] + }, + { + "name": "tasklistenerspackage", + "properties": [ + { + "id": "tasklisteners", + "type": "multiplecomplex", + "title": "任务监听器", + "value": "", + "description": "Listeners for a user task", + "popular": true + } + ] + }, + { + "name": "eventlistenerspackage", + "properties": [ + { + "id": "eventlisteners", + "type": "multiplecomplex", + "title": "事件监听器", + "value": "", + "description": "Listeners for any event happening in the Activiti Engine. It's also possible to rethrow the event as a signal, message or error event", + "popular": true + } + ] + }, + { + "name": "usertaskassignmentpackage", + "properties": [ + { + "id": "usertaskassignment", + "type": "Complex", + "title": "代理", + "value": "", + "description": "Assignment definition for the user task", + "popular": true + } + ] + }, + { + "name": "formpropertiespackage", + "properties": [ + { + "id": "formproperties", + "type": "Complex", + "title": "动态表单属性", + "value": "", + "description": "Definition of the form with a list of form properties", + "popular": true + } + ] + }, + { + "name": "formkeydefinitionpackage", + "properties": [ + { + "id": "formkeydefinition", + "type": "String", + "title": "自定义表单", + "value": "", + "description": "用户任务表单编号", + "popular": true + } + ] + }, + { + "name": "duedatedefinitionpackage", + "properties": [ + { + "id": "duedatedefinition", + "type": "String", + "title": "到期日期", + "value": "", + "description": "用户任务到期时间", + "popular": true + } + ] + }, + { + "name": "prioritydefinitionpackage", + "properties": [ + { + "id": "prioritydefinition", + "type": "String", + "title": "优先级", + "value": "", + "description": "用户任务优先级", + "popular": true + } + ] + }, + { + "name": "duedatedefinitionpackage", + "properties": [ + { + "id": "duedatedefinition", + "type": "String", + "title": "到期日期", + "value": "", + "description": "Due date of the user task.", + "popular": true + } + ] + }, + { + "name": "servicetaskclasspackage", + "properties": [ + { + "id": "servicetaskclass", + "type": "String", + "title": "监听类", + "value": "", + "description": "Class that implements the service task logic.", + "popular": true + } + ] + }, + { + "name": "servicetaskexpressionpackage", + "properties": [ + { + "id": "servicetaskexpression", + "type": "String", + "title": "表达式", + "value": "", + "description": "Service task logic defined with an expression.", + "popular": true + } + ] + }, + { + "name": "servicetaskdelegateexpressionpackage", + "properties": [ + { + "id": "servicetaskdelegateexpression", + "type": "String", + "title": "委托表达式", + "value": "", + "description": "Service task logic defined with a delegate expression.", + "popular": true + } + ] + }, + { + "name": "servicetaskfieldspackage", + "properties": [ + { + "id": "servicetaskfields", + "type": "Complex", + "title": "字段", + "value": "", + "description": "Field extensions", + "popular": true + } + ] + }, + { + "name": "servicetaskresultvariablepackage", + "properties": [ + { + "id": "servicetaskresultvariable", + "type": "String", + "title": "Result variable name", + "value": "", + "description": "Process variable name to store the service task result.", + "popular": true + } + ] + }, + { + "name": "scriptformatpackage", + "properties": [ + { + "id": "scriptformat", + "type": "String", + "title": "脚本格式", + "value": "", + "description": "Script format of the script task.", + "popular": true + } + ] + }, + { + "name": "scripttextpackage", + "properties": [ + { + "id": "scripttext", + "type": "Text", + "title": "脚本", + "value": "", + "description": "Script text of the script task.", + "popular": true + } + ] + }, + { + "name": "ruletask_rulespackage", + "properties": [ + { + "id": "ruletask_rules", + "type": "String", + "title": "规则", + "value": "", + "description": "Rules of the rule task.", + "popular": true + } + ] + }, + { + "name": "ruletask_variables_inputpackage", + "properties": [ + { + "id": "ruletask_variables_input", + "type": "String", + "title": "输入变量", + "value": "", + "description": "Input variables of the rule task.", + "popular": true + } + ] + }, + { + "name": "ruletask_excludepackage", + "properties": [ + { + "id": "ruletask_exclude", + "type": "Boolean", + "title": "除外", + "value": "false", + "description": "Use the rules property as exclusion.", + "popular": true + } + ] + }, + { + "name": "ruletask_resultpackage", + "properties": [ + { + "id": "ruletask_result", + "type": "String", + "title": "返回变量", + "value": "", + "description": "Result variable of the rule task.", + "popular": true + } + ] + }, + { + "name": "mailtasktopackage", + "properties": [ + { + "id": "mailtaskto", + "type": "Text", + "title": "接收人", + "value": "", + "description": "The recipients if the e-mail. Multiple recipients are defined in a comma-separated list.", + "popular": true + } + ] + }, + { + "name": "mailtaskfrompackage", + "properties": [ + { + "id": "mailtaskfrom", + "type": "Text", + "title": "发件人", + "value": "", + "description": "The sender e-mail address. If not provided, the default configured from address is used.", + "popular": true + } + ] + }, + { + "name": "mailtasksubjectpackage", + "properties": [ + { + "id": "mailtasksubject", + "type": "Text", + "title": "主题", + "value": "", + "description": "The subject of the e-mail.", + "popular": true + } + ] + }, + { + "name": "mailtaskccpackage", + "properties": [ + { + "id": "mailtaskcc", + "type": "Text", + "title": "转发", + "value": "", + "description": "The cc's of the e-mail. Multiple recipients are defined in a comma-separated list", + "popular": true + } + ] + }, + { + "name": "mailtaskbccpackage", + "properties": [ + { + "id": "mailtaskbcc", + "type": "Text", + "title": "密送", + "value": "", + "description": "The bcc's of the e-mail. Multiple recipients are defined in a comma-separated list", + "popular": true + } + ] + }, + { + "name": "mailtasktextpackage", + "properties": [ + { + "id": "mailtasktext", + "type": "Text", + "title": "内容", + "value": "", + "description": "The content of the e-mail, in case one needs to send plain none-rich e-mails. Can be used in combination with html, for e-mail clients that don't support rich content. The client will then fall back to this text-only alternative.", + "popular": true + } + ] + }, + { + "name": "mailtaskhtmlpackage", + "properties": [ + { + "id": "mailtaskhtml", + "type": "Text", + "title": "Html", + "value": "", + "description": "A piece of HTML that is the content of the e-mail.", + "popular": true + } + ] + }, + { + "name": "mailtaskcharsetpackage", + "properties": [ + { + "id": "mailtaskcharset", + "type": "String", + "title": "Charset", + "value": "", + "description": "Allows to change the charset of the email, which is necessary for many non-English languages. ", + "popular": true + } + ] + }, + { + "name": "callactivitycalledelementpackage", + "properties": [ + { + "id": "callactivitycalledelement", + "type": "String", + "title": "被调用元素", + "value": "", + "description": "Process reference.", + "popular": true + } + ] + }, + { + "name": "callactivityinparameterspackage", + "properties": [ + { + "id": "callactivityinparameters", + "type": "Complex", + "title": "输入参数", + "value": "", + "description": "Definition of the input parameters", + "popular": true + } + ] + }, + { + "name": "callactivityoutparameterspackage", + "properties": [ + { + "id": "callactivityoutparameters", + "type": "Complex", + "title": "输出参数", + "value": "", + "description": "Definition of the output parameters", + "popular": true + } + ] + }, + { + "name": "cameltaskcamelcontextpackage", + "properties": [ + { + "id": "cameltaskcamelcontext", + "type": "String", + "title": "Camel内容", + "value": "", + "description": "An optional camel context definition, if left empty the default is used.", + "popular": true + } + ] + }, + { + "name": "muletaskendpointurlpackage", + "properties": [ + { + "id": "muletaskendpointurl", + "type": "String", + "title": "终端url", + "value": "", + "description": "A required endpoint url to sent the message to Mule.", + "popular": true + } + ] + }, + { + "name": "muletasklanguagepackage", + "properties": [ + { + "id": "muletasklanguage", + "type": "String", + "title": "语言", + "value": "", + "description": "A required definition for the language to resolve the payload expression, like juel.", + "popular": true + } + ] + }, + { + "name": "muletaskpayloadexpressionpackage", + "properties": [ + { + "id": "muletaskpayloadexpression", + "type": "String", + "title": "有效载荷表达式", + "value": "", + "description": "A required definition for the payload of the message sent to Mule.", + "popular": true + } + ] + }, + { + "name": "muletaskresultvariablepackage", + "properties": [ + { + "id": "muletaskresultvariable", + "type": "String", + "title": "返回变量", + "value": "", + "description": "An optional result variable for the payload returned.", + "popular": true + } + ] + }, + { + "name": "conditionsequenceflowpackage", + "properties": [ + { + "id": "conditionsequenceflow", + "type": "Complex", + "title": "流转条件", + "value": "", + "description": "The condition of the sequence flow", + "popular": true + } + ] + }, + { + "name": "defaultflowpackage", + "properties": [ + { + "id": "defaultflow", + "type": "Boolean", + "title": "默认流转", + "value": "false", + "description": "Define the sequence flow as default", + "popular": true, + "refToView": "default" + } + ] + }, + { + "name": "conditionalflowpackage", + "properties": [ + { + "id": "conditionalflow", + "type": "Boolean", + "title": "Conditional flow", + "value": "false", + "description": "Define the sequence flow with a condition", + "popular": true + } + ] + }, + { + "name": "timercycledefinitionpackage", + "properties": [ + { + "id": "timercycledefinition", + "type": "String", + "title": "循环时间(例:R3/PT10H)", + "value": "", + "description": "Define the timer with a ISO-8601 cycle.", + "popular": true + } + ] + }, + { + "name": "timerdatedefinitionpackage", + "properties": [ + { + "id": "timerdatedefinition", + "type": "String", + "title": "开始时间(ISO-8601)", + "value": "", + "description": "Define the timer with a ISO-8601 date definition.", + "popular": true + } + ] + }, + { + "name": "timerdurationdefinitionpackage", + "properties": [ + { + "id": "timerdurationdefinition", + "type": "String", + "title": "持续时间(例:PT5M)", + "value": "", + "description": "Define the timer with a ISO-8601 duration.", + "popular": true + } + ] + }, + { + "name": "timerenddatedefinitionpackage", + "properties": [ + { + "id": "timerenddatedefinition", + "type": "String", + "title": "结束时间(ISO-8601)", + "value": "", + "description": "Define the timer with a ISO-8601 duration.", + "popular": true + } + ] + }, + { + "name": "messagerefpackage", + "properties": [ + { + "id": "messageref", + "type": "String", + "title": "消息引用", + "value": "", + "description": "Define the message name.", + "popular": true + } + ] + }, + { + "name": "signalrefpackage", + "properties": [ + { + "id": "signalref", + "type": "String", + "title": "信号引用", + "value": "", + "description": "Define the signal name.", + "popular": true + } + ] + }, + { + "name": "errorrefpackage", + "properties": [ + { + "id": "errorref", + "type": "String", + "title": "错误引用", + "value": "", + "description": "Define the error name.", + "popular": true + } + ] + }, + { + "name": "cancelactivitypackage", + "properties": [ + { + "id": "cancelactivity", + "type": "Boolean", + "title": "取消活动", + "value": "true", + "description": "Should the activity be cancelled", + "popular": true, + "refToView": [ + "frame", + "frame2" + ] + } + ] + }, + { + "name": "initiatorpackage", + "properties": [ + { + "id": "initiator", + "type": "String", + "title": "发起人", + "value": "", + "description": "Initiator of the process.", + "popular": true + } + ] + }, + { + "name": "textpackage", + "properties": [ + { + "id": "text", + "type": "String", + "title": "Text", + "value": "", + "description": "The text of the text annotation.", + "popular": true, + "refToView": "text" + } + ] + }, + { + "name": "multiinstance_typepackage", + "properties": [ + { + "id": "multiinstance_type", + "type": "kisbpm-multiinstance", + "title": "多实例类型", + "value": "None", + "description": "Repeated activity execution (parallel or sequential) can be displayed through different loop types", + "popular": true, + "refToView": "multiinstance" + } + ] + }, + { + "name": "multiinstance_cardinalitypackage", + "properties": [ + { + "id": "multiinstance_cardinality", + "type": "String", + "title": "基数(多实例)", + "value": "", + "description": "Define the cardinality of multi instance.", + "popular": true + } + ] + }, + { + "name": "multiinstance_collectionpackage", + "properties": [ + { + "id": "multiinstance_collection", + "type": "String", + "title": "集合(多实例)", + "value": "", + "description": "Define the collection for the multi instance.", + "popular": true + } + ] + }, + { + "name": "multiinstance_variablepackage", + "properties": [ + { + "id": "multiinstance_variable", + "type": "String", + "title": "元素变量(多实例)", + "value": "", + "description": "Define the element variable for the multi instance.", + "popular": true + } + ] + }, + { + "name": "multiinstance_conditionpackage", + "properties": [ + { + "id": "multiinstance_condition", + "type": "String", + "title": "完成条件(多实例)", + "value": "", + "description": "Define the completion condition for the multi instance.", + "popular": true + } + ] + }, + { + "name": "isforcompensationpackage", + "properties": [ + { + "id": "isforcompensation", + "type": "Boolean", + "title": "是否为补偿", + "value": "false", + "description": "一个标志,标识是否这个活动的目的是为了补偿.", + "popular": true, + "refToView": "compensation" + } + ] + }, + { + "name": "sequencefloworderpackage", + "properties": [ + { + "id": "sequencefloworder", + "type": "Complex", + "title": "流动顺序", + "value": "", + "description": "Order outgoing sequence flows.", + "popular": true + } + ] + }, + { + "name": "signaldefinitionspackage", + "properties": [ + { + "id": "signaldefinitions", + "type": "multiplecomplex", + "title": "信号定义", + "value": "", + "description": "Signal definitions", + "popular": true + } + ] + }, + { + "name": "messagedefinitionspackage", + "properties": [ + { + "id": "messagedefinitions", + "type": "multiplecomplex", + "title": "消息定义", + "value": "", + "description": "Message definitions", + "popular": true + } + ] + }, + { + "name": "istransactionpackage", + "properties": [ + { + "id": "istransaction", + "type": "Boolean", + "title": "是否事务处理子过程", + "value": "false", + "description": "A flag that identifies whether this sub process is of type transaction.", + "popular": true, + "refToView": "border" + } + ] + }, + { + "name": "terminateAllpackage", + "properties": [ + { + "id": "terminateAll", + "type": "Boolean", + "title": "终止全部", + "value": "false", + "description": "Enable to terminate the process instance", + "popular": true + } + ] } + ], + "stencils": [ + { + "type": "node", + "id": "BPMNDiagram", + "title": "BPMN-Diagram", + "description": "A BPMN 2.0 diagram.", + "view": "\n\n \n \n \n \n \t\n \n", + "icon": "diagram.png", + "groups": [ + "Diagram" + ], + "mayBeRoot": true, + "hide": true, + "propertyPackages": [ + "process_idpackage", + "namepackage", + "documentationpackage", + "process_authorpackage", + "process_versionpackage", + "process_namespacepackage", + "executionlistenerspackage", + "eventlistenerspackage", + "signaldefinitionspackage", + "messagedefinitionspackage" + ], + "hiddenPropertyPackages": [], + "roles": [] + }, + { + "type": "node", + "id": "StartNoneEvent", + "title": "事件", + "description": "A start event without a specific trigger", + "view": "\n\n \n \n \t\n \n \n \n\t\n \n", + "icon": "startevent/none.png", + "groups": [ + "启动事件" + ], + "propertyPackages": [ + "overrideidpackage", + "namepackage", + "documentationpackage", + "executionlistenerspackage", + "initiatorpackage", + "formkeydefinitionpackage", + "formpropertiespackage" + ], + "hiddenPropertyPackages": [], + "roles": [ + "sequence_start", + "Startevents_all", + "StartEventsMorph", + "all" + ] + }, + { + "type": "node", + "id": "StartTimerEvent", + "title": "定时事件", + "description": "A start event with a timer trigger", + "view": "\n\n \n \n \t\n \n \n \n \n \n \n \n\t\n \n", + "icon": "startevent/timer.png", + "groups": [ + "启动事件" + ], + "propertyPackages": [ + "overrideidpackage", + "namepackage", + "documentationpackage", + "executionlistenerspackage", + "timercycledefinitionpackage", + "timerdatedefinitionpackage", + "timerdurationdefinitionpackage" + ], + "hiddenPropertyPackages": [], + "roles": [ + "sequence_start", + "Startevents_all", + "StartEventsMorph", + "all" + ] + }, + { + "type": "node", + "id": "StartSignalEvent", + "title": "信号事件", + "description": "A start event with a signal trigger", + "view": "\n\n \n \n \t\n \n \n\n \n \n \n\t\n \n", + "icon": "startevent/signal.png", + "groups": [ + "启动事件" + ], + "propertyPackages": [ + "overrideidpackage", + "namepackage", + "documentationpackage", + "executionlistenerspackage", + "signalrefpackage" + ], + "hiddenPropertyPackages": [], + "roles": [ + "sequence_start", + "Startevents_all", + "StartEventsMorph", + "all" + ] + }, + { + "type": "node", + "id": "StartMessageEvent", + "title": "消息事件", + "description": "A start event with a message trigger", + "view": "\n\n \n \n \t\n \n \n \n \n \n \n \n\t\n \n", + "icon": "startevent/message.png", + "groups": [ + "启动事件" + ], + "propertyPackages": [ + "overrideidpackage", + "namepackage", + "documentationpackage", + "executionlistenerspackage", + "messagerefpackage" + ], + "hiddenPropertyPackages": [], + "roles": [ + "sequence_start", + "Startevents_all", + "StartEventsMorph", + "all" + ] + }, + { + "type": "node", + "id": "StartErrorEvent", + "title": "异常事件", + "description": "A start event that catches a thrown BPMN error", + "view": "\n\n \n \n \t\n \n \n \n \n \n \n\t\n \n", + "icon": "startevent/error.png", + "groups": [ + "启动事件" + ], + "propertyPackages": [ + "overrideidpackage", + "namepackage", + "documentationpackage", + "executionlistenerspackage", + "errorrefpackage" + ], + "hiddenPropertyPackages": [], + "roles": [ + "sequence_start", + "Startevents_all", + "StartEventsMorph", + "all" + ] + }, + { + "type": "node", + "id": "UserTask", + "title": "用户活动", + "description": "分配给特定人的任务 ", + "view": "\n\n \n \n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \n \n\t\n\t\n\t\t\n\t\t\n\t\n\t\n\t\t\n\t\t\n\t\n \n\t\n\t\t\n\t\n\t\n\t\n\t\t\n\t\n\t\n\n\t\n\t\t\n\t\n \n", + "icon": "activity/list/type.user.png", + "groups": [ + "活动列表" + ], + "propertyPackages": [ + "tasklistenerspackage", + "overrideidpackage", + "namepackage", + "documentationpackage", + "asynchronousdefinitionpackage", + "exclusivedefinitionpackage", + "executionlistenerspackage", + "multiinstance_typepackage", + "multiinstance_cardinalitypackage", + "multiinstance_collectionpackage", + "multiinstance_variablepackage", + "multiinstance_conditionpackage", + "isforcompensationpackage", + "usertaskassignmentpackage", + "formkeydefinitionpackage", + "duedatedefinitionpackage", + "prioritydefinitionpackage", + "formpropertiespackage" + ], + "hiddenPropertyPackages": [], + "roles": [ + "Activity", + "sequence_start", + "sequence_end", + "ActivitiesMorph", + "all" + ] + }, + { + "type": "node", + "id": "ServiceTask", + "title": "服务任务", + "description": "An automatic task with service logic", + "view": "\n\n \n \n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \n \n\t\n\t\n\t\t\n\t\t\n\t\n\t\n\t\n\t\n \n\t\n\t\t\n\t\n\t\n\t\n\t\t\n\t\n\t\n\t\n\t\t\n\t\n \n", + "icon": "activity/list/type.service.png", + "groups": [ + "活动列表" + ], + "propertyPackages": [ + "overrideidpackage", + "namepackage", + "documentationpackage", + "asynchronousdefinitionpackage", + "exclusivedefinitionpackage", + "executionlistenerspackage", + "multiinstance_typepackage", + "multiinstance_cardinalitypackage", + "multiinstance_collectionpackage", + "multiinstance_variablepackage", + "multiinstance_conditionpackage", + "isforcompensationpackage", + "servicetaskclasspackage", + "servicetaskexpressionpackage", + "servicetaskdelegateexpressionpackage", + "servicetaskfieldspackage", + "servicetaskresultvariablepackage" + ], + "hiddenPropertyPackages": [], + "roles": [ + "Activity", + "sequence_start", + "sequence_end", + "ActivitiesMorph", + "all" + ] + }, + { + "type": "node", + "id": "ScriptTask", + "title": "脚本任务", + "description": "An automatic task with script logic", + "view": "\n\n \n \n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \n \n\t\n\t\n\t\t\n\t\t\n\t\n\t\n\t\t\n\t\n \n\t\n\t\t\n\t\n\t\n\t\t\n\t\n\t\n\n\t\n\t\t\n\t\n \n", + "icon": "activity/list/type.script.png", + "groups": [ + "活动列表" + ], + "propertyPackages": [ + "scriptformatpackage", + "scripttextpackage", + "overrideidpackage", + "namepackage", + "documentationpackage", + "asynchronousdefinitionpackage", + "exclusivedefinitionpackage", + "executionlistenerspackage", + "multiinstance_typepackage", + "multiinstance_cardinalitypackage", + "multiinstance_collectionpackage", + "multiinstance_variablepackage", + "multiinstance_conditionpackage", + "isforcompensationpackage" + ], + "hiddenPropertyPackages": [], + "roles": [ + "Activity", + "sequence_start", + "sequence_end", + "ActivitiesMorph", + "all" + ] + }, + { + "type": "node", + "id": "BusinessRule", + "title": "规则任务", + "description": "An automatic task with rule logic", + "view": "\n\n \n \n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \n \n \t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\n\t\n\t\n\t\n\t\t\n\t\t\n \n\t\n\t\t\n\t\n\t\n\t\n\t\t\n\t\n\t\n\t\n\t\t\n\t\n\n\t\n\t\t\n\t\n \n", + "icon": "activity/list/type.business.rule.png", + "groups": [ + "活动列表" + ], + "propertyPackages": [ + "overrideidpackage", + "namepackage", + "documentationpackage", + "asynchronousdefinitionpackage", + "exclusivedefinitionpackage", + "executionlistenerspackage", + "multiinstance_typepackage", + "multiinstance_cardinalitypackage", + "multiinstance_collectionpackage", + "multiinstance_variablepackage", + "multiinstance_conditionpackage", + "isforcompensationpackage", + "ruletask_rulespackage", + "ruletask_variables_inputpackage", + "ruletask_excludepackage", + "ruletask_resultpackage" + ], + "hiddenPropertyPackages": [], + "roles": [ + "Activity", + "sequence_start", + "sequence_end", + "ActivitiesMorph", + "all" + ] + }, + { + "type": "node", + "id": "ReceiveTask", + "title": "接受任务", + "description": "An task that waits for a signal", + "view": "\n\n \n \n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \n \n\t\n\t\n\t\t\n\t\t\n \n\t\n\t\t\n\t\n\t\n\t\n\t\t\n\t\n\t\n\t\n\t\t\n\t\n\n\t\n\t\t\n\t\n \n", + "icon": "activity/list/type.receive.png", + "groups": [ + "活动列表" + ], + "propertyPackages": [ + "overrideidpackage", + "namepackage", + "documentationpackage", + "asynchronousdefinitionpackage", + "exclusivedefinitionpackage", + "executionlistenerspackage", + "multiinstance_typepackage", + "multiinstance_cardinalitypackage", + "multiinstance_collectionpackage", + "multiinstance_variablepackage", + "multiinstance_conditionpackage", + "isforcompensationpackage" + ], + "hiddenPropertyPackages": [], + "roles": [ + "Activity", + "sequence_start", + "sequence_end", + "ActivitiesMorph", + "all" + ] + }, + { + "type": "node", + "id": "ManualTask", + "title": "手工任务", + "description": "An automatic task with no logic", + "view": "\n\n \n \n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \n \n\t\n\t\n\t\t\n\t\t\n \n \t\n\t\n\t\n\t\n\t\t\n\t\n\t\n\t\n\t\t\n\t\n\n\t\n\t\t\n\t\n \n", + "icon": "activity/list/type.manual.png", + "groups": [ + "活动列表" + ], + "propertyPackages": [ + "overrideidpackage", + "namepackage", + "documentationpackage", + "asynchronousdefinitionpackage", + "exclusivedefinitionpackage", + "executionlistenerspackage", + "multiinstance_typepackage", + "multiinstance_cardinalitypackage", + "multiinstance_collectionpackage", + "multiinstance_variablepackage", + "multiinstance_conditionpackage", + "isforcompensationpackage" + ], + "hiddenPropertyPackages": [], + "roles": [ + "Activity", + "sequence_start", + "sequence_end", + "ActivitiesMorph", + "all" + ] + }, + { + "type": "node", + "id": "MailTask", + "title": "邮件任务", + "description": "An mail task", + "view": "\n\n \n \n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \n \n\t\n\t\n\t\t\n\t\t\n \n\t\n\t\n\t\n\t\t\n\t\n\t\n\t\n\t\t\n\t\n\t\n\t\n\t\t\n\t\n\n\t\n\t\t\n\t\n \n", + "icon": "activity/list/type.send.png", + "groups": [ + "活动列表" + ], + "propertyPackages": [ + "overrideidpackage", + "namepackage", + "documentationpackage", + "asynchronousdefinitionpackage", + "exclusivedefinitionpackage", + "executionlistenerspackage", + "multiinstance_typepackage", + "multiinstance_cardinalitypackage", + "multiinstance_collectionpackage", + "multiinstance_variablepackage", + "multiinstance_conditionpackage", + "isforcompensationpackage", + "mailtasktopackage", + "mailtaskfrompackage", + "mailtasksubjectpackage", + "mailtaskccpackage", + "mailtaskbccpackage", + "mailtasktextpackage", + "mailtaskhtmlpackage", + "mailtaskcharsetpackage" + ], + "hiddenPropertyPackages": [], + "roles": [ + "Activity", + "sequence_start", + "sequence_end", + "ActivitiesMorph", + "all" + ] + }, + { + "type": "node", + "id": "CamelTask", + "title": "Camel任务", + "description": "An task that sends a message to Camel", + "view": "\n\n \n \n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \n \n\t\n\t\n\t\t\n\t\t\n\t\n\t\n\t\t\n\t\n \n\t\n\t\t\n\t\n\t\n\t\t\n\t\n\t\n\n\t\n\t\t\n\t\n \n", + "icon": "activity/list/type.camel.png", + "groups": [ + "活动列表" + ], + "propertyPackages": [ + "overrideidpackage", + "namepackage", + "documentationpackage", + "asynchronousdefinitionpackage", + "exclusivedefinitionpackage", + "executionlistenerspackage", + "multiinstance_typepackage", + "multiinstance_cardinalitypackage", + "multiinstance_collectionpackage", + "multiinstance_variablepackage", + "multiinstance_conditionpackage", + "isforcompensationpackage", + "cameltaskcamelcontextpackage" + ], + "hiddenPropertyPackages": [], + "roles": [ + "Activity", + "sequence_start", + "sequence_end", + "ActivitiesMorph", + "all" + ] + }, + { + "type": "node", + "id": "MuleTask", + "title": "Mule任务", + "description": "An task that sends a message to Mule", + "view": "\n\n \n \n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \n \n\t\n\t\n\t\t\n\t\t\n\t\n\t\n\t\t\n\t\n \n\t\n\t\t\n\t\n\t\n\t\t\n\t\n\t\n\n\t\n\t\t\n\t\n \n", + "icon": "activity/list/type.mule.png", + "groups": [ + "活动列表" + ], + "propertyPackages": [ + "overrideidpackage", + "namepackage", + "documentationpackage", + "asynchronousdefinitionpackage", + "exclusivedefinitionpackage", + "executionlistenerspackage", + "multiinstance_typepackage", + "multiinstance_cardinalitypackage", + "multiinstance_collectionpackage", + "multiinstance_variablepackage", + "multiinstance_conditionpackage", + "isforcompensationpackage", + "muletaskendpointurlpackage", + "muletasklanguagepackage", + "muletaskpayloadexpressionpackage", + "muletaskresultvariablepackage" + ], + "hiddenPropertyPackages": [], + "roles": [ + "Activity", + "sequence_start", + "sequence_end", + "ActivitiesMorph", + "all" + ] + }, + { + "type": "node", + "id": "SendTask", + "title": "Send task", + "description": "An task that sends a message", + "view": "\n\n \n \n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \n \n\t\n\t\n\t\t\n\t\t\n \n\t\n\t\n\t\n\t\t\n\t\n\t\n\t\n\t\t\n\t\n\t\n\t\n\t\t\n\t\n\n\t\n\t\t\n\t\n \n", + "icon": "activity/list/type.send.png", + "groups": [ + "活动列表" + ], + "propertyPackages": [ + "overrideidpackage", + "namepackage", + "documentationpackage", + "asynchronousdefinitionpackage", + "exclusivedefinitionpackage", + "executionlistenerspackage", + "multiinstance_typepackage", + "multiinstance_cardinalitypackage", + "multiinstance_collectionpackage", + "multiinstance_variablepackage", + "multiinstance_conditionpackage", + "isforcompensationpackage" + ], + "hiddenPropertyPackages": [], + "roles": [ + "Activity", + "sequence_start", + "sequence_end", + "ActivitiesMorph", + "all" + ] + }, + { + "type": "node", + "id": "SubProcess", + "title": "子流程", + "description": "子流程范围", + "view": "\n\n \n \n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \n \n \n\t\n\t\n\t\n\t\n\t\n\t\n\t\t\n\t\n\t\n\t\t\n\t\n \n", + "icon": "activity/expanded.subprocess.png", + "groups": [ + "结构列表" + ], + "propertyPackages": [ + "overrideidpackage", + "namepackage", + "documentationpackage", + "asynchronousdefinitionpackage", + "exclusivedefinitionpackage", + "executionlistenerspackage", + "multiinstance_typepackage", + "multiinstance_cardinalitypackage", + "multiinstance_collectionpackage", + "multiinstance_variablepackage", + "multiinstance_conditionpackage", + "istransactionpackage" + ], + "hiddenPropertyPackages": [], + "roles": [ + "Activity", + "sequence_start", + "sequence_end", + "all" + ] + }, + { + "type": "node", + "id": "EventSubProcess", + "title": "事件子流程", + "description": "一个事件周期的子流程", + "view": "\n\n \n \n \t\n \t\n \t\n \t\n \t\n \n \n\t\n\t\n \t\n\t\t\n \t\n\t\n\t\n \n", + "icon": "activity/event.subprocess.png", + "groups": [ + "结构列表" + ], + "propertyPackages": [ + "overrideidpackage", + "namepackage", + "documentationpackage", + "asynchronousdefinitionpackage", + "exclusivedefinitionpackage", + "executionlistenerspackage" + ], + "hiddenPropertyPackages": [], + "roles": [ + "Activity", + "all" + ] + }, + { + "type": "node", + "id": "CallActivity", + "title": "调用活动", + "description": "一个调用活动", + "view": "\n\n \n \n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \t\n \n \n\t\n \n\t\n\t\t\n\t\t\n \n\t\n\t\t\n\t\n\t\n\t\n\t\t\n\t\n\n\t\n\t\t\n\t\n \n", + "icon": "activity/task.png", + "groups": [ + "结构列表" + ], + "propertyPackages": [ + "overrideidpackage", + "namepackage", + "documentationpackage", + "asynchronousdefinitionpackage", + "exclusivedefinitionpackage", + "executionlistenerspackage", + "callactivitycalledelementpackage", + "callactivityinparameterspackage", + "callactivityoutparameterspackage", + "multiinstance_typepackage", + "multiinstance_cardinalitypackage", + "multiinstance_collectionpackage", + "multiinstance_variablepackage", + "multiinstance_conditionpackage", + "isforcompensationpackage" + ], + "hiddenPropertyPackages": [], + "roles": [ + "Activity", + "sequence_start", + "sequence_end", + "all" + ] + }, + { + "type": "node", + "id": "ExclusiveGateway", + "title": "互斥网关", + "description": "一个选择的网关", + "view": "\n\n \n \n \n \t\t\t\t\t\n \n \n \n \n \n \n \n\t\n\t\n\t\n \n\n", + "icon": "gateway/exclusive.databased.png", + "groups": [ + "网关列表" + ], + "propertyPackages": [ + "overrideidpackage", + "namepackage", + "documentationpackage", + "asynchronousdefinitionpackage", + "exclusivedefinitionpackage", + "sequencefloworderpackage" + ], + "hiddenPropertyPackages": [], + "roles": [ + "sequence_start", + "GatewaysMorph", + "sequence_end", + "all" + ] + }, + { + "type": "node", + "id": "ParallelGateway", + "title": "并行网关", + "description": "一个并行的网关", + "view": "\n\n \n \n \n \n \n \n \n \n\t\n\t\n \n\n", + "icon": "gateway/parallel.png", + "groups": [ + "网关列表" + ], + "propertyPackages": [ + "overrideidpackage", + "namepackage", + "documentationpackage", + "asynchronousdefinitionpackage", + "exclusivedefinitionpackage", + "sequencefloworderpackage" + ], + "hiddenPropertyPackages": [], + "roles": [ + "sequence_start", + "GatewaysMorph", + "sequence_end", + "all" + ] + }, + { + "type": "node", + "id": "InclusiveGateway", + "title": "包容性网关", + "description": "一个包容性网关", + "view": "\n\n \n \n \n \n\n \n \n \n\t\n\t\n \n\n", + "icon": "gateway/inclusive.png", + "groups": [ + "网关列表" + ], + "propertyPackages": [ + "overrideidpackage", + "namepackage", + "documentationpackage", + "asynchronousdefinitionpackage", + "exclusivedefinitionpackage", + "sequencefloworderpackage" + ], + "hiddenPropertyPackages": [], + "roles": [ + "sequence_start", + "GatewaysMorph", + "sequence_end", + "all" + ] + }, + { + "type": "node", + "id": "EventGateway", + "title": "事件网关", + "description": "一个事件网关", + "view": "\n\n \n \n \n \n \n \t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\t\n\t\t\n\t\t\n\t\n\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\n\t\n\t\n\t\n\t\n \t\n\t\n\n", + "icon": "gateway/eventbased.png", + "groups": [ + "网关列表" + ], + "propertyPackages": [ + "overrideidpackage", + "namepackage", + "documentationpackage", + "asynchronousdefinitionpackage", + "exclusivedefinitionpackage", + "sequencefloworderpackage" + ], + "hiddenPropertyPackages": [], + "roles": [ + "sequence_start", + "GatewaysMorph", + "sequence_end", + "all" + ] + }, + { + "type": "node", + "id": "BoundaryErrorEvent", + "title": "边界错误事件", + "description": "一个捕捉BPMN异常的边界事件", + "view": "\n\n \n \n \t\n \n \n \n \n \n \n \n\t\n \n", + "icon": "catching/error.png", + "groups": [ + "边界事件" + ], + "propertyPackages": [ + "overrideidpackage", + "namepackage", + "documentationpackage", + "errorrefpackage" + ], + "hiddenPropertyPackages": [], + "roles": [ + "sequence_start", + "BoundaryEventsMorph", + "IntermediateEventOnActivityBoundary" + ] + }, + { + "type": "node", + "id": "BoundaryTimerEvent", + "title": "定时边界事件", + "description": "一个定时触发的边界事件", + "view": "\n\n \n \n \t\n \n \n \n \n \t\n \n \n \n \n \n \n \t\n\t\n \n", + "icon": "catching/timer.png", + "groups": [ + "边界事件" + ], + "propertyPackages": [ + "overrideidpackage", + "namepackage", + "documentationpackage", + "timercycledefinitionpackage", + "timerdatedefinitionpackage", + "timerdurationdefinitionpackage", + "timerenddatedefinitionpackage", + "cancelactivitypackage" + ], + "hiddenPropertyPackages": [], + "roles": [ + "sequence_start", + "BoundaryEventsMorph", + "IntermediateEventOnActivityBoundary" + ] + }, + { + "type": "node", + "id": "BoundarySignalEvent", + "title": "边界信号事件", + "description": "一个信号触发的边界事件", + "view": "\n\n \n \n \t\n \n \n \n \n \t\n \n \n \n \n\t\n\t\n \n", + "icon": "catching/signal.png", + "groups": [ + "边界事件" + ], + "propertyPackages": [ + "overrideidpackage", + "namepackage", + "documentationpackage", + "signalrefpackage", + "cancelactivitypackage" + ], + "hiddenPropertyPackages": [], + "roles": [ + "sequence_start", + "BoundaryEventsMorph", + "IntermediateEventOnActivityBoundary" + ] + }, + { + "type": "node", + "id": "BoundaryMessageEvent", + "title": "边界消息事件", + "description": "一个边界消息事件", + "view": "\n\n \n \n \t\n \n \n \n \n \t\n \n \t\n \n \n \n\t\n\t\t\n\t\n\t\n\t\n \n", + "icon": "catching/message.png", + "groups": [ + "边界事件" + ], + "propertyPackages": [ + "overrideidpackage", + "namepackage", + "documentationpackage", + "messagerefpackage", + "cancelactivitypackage" + ], + "hiddenPropertyPackages": [], + "roles": [ + "sequence_start", + "BoundaryEventsMorph", + "IntermediateEventOnActivityBoundary" + ] + }, + { + "type": "node", + "id": "BoundaryCancelEvent", + "title": "边界取消事件", + "description": "一个边界取消事件", + "view": "\n\n \n \n \t\n \n \n \n \n \n \n \n \n\t\n \n", + "icon": "catching/cancel.png", + "groups": [ + "边界事件" + ], + "propertyPackages": [ + "overrideidpackage", + "namepackage", + "documentationpackage" + ], + "hiddenPropertyPackages": [], + "roles": [ + "sequence_start", + "BoundaryEventsMorph", + "IntermediateEventOnActivityBoundary" + ] + }, + { + "type": "node", + "id": "BoundaryCompensationEvent", + "title": "边界修正事件", + "description": "一个边界修正事件", + "view": "\n\n \n \n \t\n \n \n \n\t\n \n \n \n \n \n\t\n \n", + "icon": "catching/compensation.png", + "groups": [ + "边界事件" + ], + "propertyPackages": [ + "overrideidpackage", + "namepackage", + "documentationpackage" + ], + "hiddenPropertyPackages": [], + "roles": [ + "BoundaryEventsMorph", + "IntermediateEventOnActivityBoundary", + "all" + ] + }, + { + "type": "node", + "id": "CatchTimerEvent", + "title": "中间定时器捕获事件", + "description": "定时器触发的中间捕获事件", + "view": "\n\n \n \n \t\n \n \n \n \n \t\n \n \n \n \n \n \n \t\n\t\n \n", + "icon": "catching/timer.png", + "groups": [ + "中间捕获事件列表" + ], + "propertyPackages": [ + "overrideidpackage", + "namepackage", + "documentationpackage", + "executionlistenerspackage", + "timercycledefinitionpackage", + "timerdatedefinitionpackage", + "timerdurationdefinitionpackage" + ], + "hiddenPropertyPackages": [], + "roles": [ + "sequence_start", + "sequence_end", + "CatchEventsMorph", + "all" + ] + }, + { + "type": "node", + "id": "CatchSignalEvent", + "title": "中间信号捕获事件", + "description": "信号触发的捕获事件", + "view": "\n\n \n \n \t\n \n \n \n \n \t\n \n \n \n \n\t\n\t\n \n", + "icon": "catching/signal.png", + "groups": [ + "中间捕获事件列表" + ], + "propertyPackages": [ + "overrideidpackage", + "namepackage", + "documentationpackage", + "executionlistenerspackage", + "signalrefpackage" + ], + "hiddenPropertyPackages": [], + "roles": [ + "sequence_start", + "sequence_end", + "CatchEventsMorph", + "all" + ] + }, + { + "type": "node", + "id": "CatchMessageEvent", + "title": "中间消息捕获事件", + "description": "一个消息触发的中间捕获事件", + "view": "\n\n \n \n \t\n \n \n \n \n \t\n \n \t\n \n \n \n\t\n\t\t\n\t\n\t\n\t\n \n", + "icon": "catching/message.png", + "groups": [ + "中间捕获事件列表" + ], + "propertyPackages": [ + "overrideidpackage", + "namepackage", + "documentationpackage", + "executionlistenerspackage", + "messagerefpackage" + ], + "hiddenPropertyPackages": [], + "roles": [ + "sequence_start", + "sequence_end", + "CatchEventsMorph", + "all" + ] + }, + { + "type": "node", + "id": "ThrowNoneEvent", + "title": "中间抛出事件", + "description": "无触发器的中间抛出事件", + "view": "\n\n \n \n \t\n \n \n \n \n \n \n\t\n \n", + "icon": "throwing/none.png", + "groups": [ + "中间抛出事件" + ], + "propertyPackages": [ + "overrideidpackage", + "namepackage", + "documentationpackage", + "executionlistenerspackage" + ], + "hiddenPropertyPackages": [], + "roles": [ + "ThrowEventsMorph", + "sequence_start", + "sequence_end", + "all" + ] + }, + { + "type": "node", + "id": "ThrowSignalEvent", + "title": "信号中间抛出事件", + "description": "一个信号触发的中间抛出事件", + "view": "\n\n \n \n \t\n \n \n \n \n \n \n\t\n \n", + "icon": "throwing/signal.png", + "groups": [ + "中间抛出事件" + ], + "propertyPackages": [ + "overrideidpackage", + "namepackage", + "documentationpackage", + "executionlistenerspackage", + "signalrefpackage" + ], + "hiddenPropertyPackages": [], + "roles": [ + "ThrowEventsMorph", + "sequence_start", + "sequence_end", + "all" + ] + }, + { + "type": "node", + "id": "EndNoneEvent", + "title": "结束任务", + "description": "一个无触发器的结束任务", + "view": "\n\n \n \n \t\n \n \n \n\t\n \n", + "icon": "endevent/none.png", + "groups": [ + "结束任务列表" + ], + "propertyPackages": [ + "overrideidpackage", + "namepackage", + "documentationpackage", + "executionlistenerspackage" + ], + "hiddenPropertyPackages": [], + "roles": [ + "EndEventsMorph", + "sequence_end", + "all" + ] + }, + { + "type": "node", + "id": "EndErrorEvent", + "title": "结束错误任务", + "description": "An end event that throws an error event", + "view": "\n\n \n \n \t\n \n \n \n \n \n \n\t\n \n", + "icon": "endevent/error.png", + "groups": [ + "结束任务列表" + ], + "propertyPackages": [ + "overrideidpackage", + "namepackage", + "documentationpackage", + "executionlistenerspackage", + "errorrefpackage" + ], + "hiddenPropertyPackages": [], + "roles": [ + "EndEventsMorph", + "sequence_end", + "all" + ] + }, + { + "type": "node", + "id": "EndCancelEvent", + "title": "结束取消任务", + "description": "A cancel end event", + "view": "\n\n \n \n \t\n \n \n \n \n \n\t\n \n", + "icon": "endevent/cancel.png", + "groups": [ + "结束任务列表" + ], + "propertyPackages": [ + "overrideidpackage", + "namepackage", + "documentationpackage", + "executionlistenerspackage" + ], + "hiddenPropertyPackages": [], + "roles": [ + "EndEventsMorph", + "sequence_end", + "all" + ] + }, + { + "type": "node", + "id": "EndTerminateEvent", + "title": "终结任务", + "description": "A terminate end event", + "view": "\n\n \n \n \t\n \n \n \n \n \n\t\n \n", + "icon": "endevent/terminate.png", + "groups": [ + "结束任务列表" + ], + "propertyPackages": [ + "overrideidpackage", + "namepackage", + "documentationpackage", + "executionlistenerspackage", + "terminateAllpackage" + ], + "hiddenPropertyPackages": [], + "roles": [ + "EndEventsMorph", + "sequence_end", + "all" + ] + }, + { + "type": "node", + "id": "Pool", + "title": "池", + "description": "A pool to stucture the process definition", + "view": "\n\n \n \n \t\n \t\n \t\n \t\n \t\n \n \n \n\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\n\t \t\n \t\n \n \n\t\n\t\n\t\n\t\n \n \n \n", + "icon": "swimlane/pool.png", + "groups": [ + "泳道列表" + ], + "layout": [ + { + "type": "layout.bpmn2_0.pool" + } + ], + "propertyPackages": [ + "overrideidpackage", + "namepackage", + "documentationpackage", + "process_idpackage" + ], + "hiddenPropertyPackages": [], + "roles": [ + "canContainArtifacts", + "all" + ] + }, + { + "type": "node", + "id": "Lane", + "title": "泳道", + "description": "A lane to stucture the process definition", + "view": "\n\n \n \n \n \n\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\n\t\n \t\t\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n \n\t\n \n", + "icon": "swimlane/lane.png", + "groups": [ + "泳道列表" + ], + "propertyPackages": [ + "overrideidpackage", + "namepackage", + "documentationpackage" + ], + "hiddenPropertyPackages": [], + "roles": [ + "PoolChild", + "canContainArtifacts", + "all" + ] + }, + { + "type": "edge", + "id": "SequenceFlow", + "title": "顺序流", + "description": "顺序流定义活动的执行顺序", + "view": "\r\n\r\n\t\r\n\t \t\r\n\t \t\t\r\n\t\t\t\r\n\t \t\r\n\t \t\r\n\t \t\t\r\n\t \t\r\n\t\r\n\t\r\n\t\t\r\n\t\t\r\n\t\r\n", + "icon": "connector/sequenceflow.png", + "groups": [ + "连接对象" + ], + "layout": [ + { + "type": "layout.bpmn2_0.sequenceflow" + } + ], + "propertyPackages": [ + "overrideidpackage", + "namepackage", + "documentationpackage", + "conditionsequenceflowpackage", + "executionlistenerspackage", + "defaultflowpackage" + ], + "hiddenPropertyPackages": [], + "roles": [ + "ConnectingObjectsMorph", + "all" + ] + }, + { + "type": "edge", + "id": "MessageFlow", + "title": "消息流", + "description": "Message flow to connect elements in different pools.", + "view": "\r\n\r\n\t\r\n\t\t\r\n\t \t\t\r\n\t \t\t\r\n\t \t\r\n\r\n\t \t\r\n\t \t\t\r\n\t \t\r\n\t\r\n\t\r\n\t \r\n\t\t\r\n\t\r\n", + "icon": "connector/messageflow.png", + "groups": [ + "连接对象" + ], + "layout": [ + { + "type": "layout.bpmn2_0.sequenceflow" + } + ], + "propertyPackages": [ + "overrideidpackage", + "namepackage", + "documentationpackage" + ], + "hiddenPropertyPackages": [], + "roles": [ + "ConnectingObjectsMorph", + "all" + ] + }, + { + "type": "edge", + "id": "Association", + "title": "注释", + "description": "连接一个注释到指定元素", + "view": "\r\n\r\n\t\r\n\t \r\n\t\t\r\n\t\r\n", + "icon": "connector/association.undirected.png", + "groups": [ + "连接对象" + ], + "layout": [ + { + "type": "layout.bpmn2_0.sequenceflow" + } + ], + "propertyPackages": [ + "overrideidpackage", + "namepackage", + "documentationpackage" + ], + "hiddenPropertyPackages": [], + "roles": [ + "ConnectingObjectsMorph", + "all" + ] + }, + { + "type": "edge", + "id": "DataAssociation", + "title": "日期注释", + "description": "连接一个日期注释到指定元素", + "view": "\r\n\r\n\t\r\n\t \t\r\n\t \t\t\r\n\t \t\r\n\t\r\n\t\r\n\t \r\n\t\t\r\n\t\r\n", + "icon": "connector/association.unidirectional.png", + "groups": [ + "连接对象" + ], + "layout": [ + { + "type": "layout.bpmn2_0.sequenceflow" + } + ], + "propertyPackages": [ + "overrideidpackage", + "namepackage", + "documentationpackage" + ], + "hiddenPropertyPackages": [], + "roles": [ + "ConnectingObjectsMorph", + "all" + ] + }, + { + "type": "node", + "id": "TextAnnotation", + "title": "文本注释", + "description": "连接一个文本注释到指定元素", + "view": "\n\n \n \n \t\n \n \n \n \n \n \n\t\n \n", + "icon": "artifact/text.annotation.png", + "groups": [ + "加工" + ], + "propertyPackages": [ + "overrideidpackage", + "namepackage", + "documentationpackage", + "textpackage" + ], + "hiddenPropertyPackages": [], + "roles": [ + "all" + ] + }, + { + "type": "node", + "id": "DataStore", + "title": "Data store", + "description": "Reference to a data store.", + "view": "\r\n\r\n\t\r\n\t\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\r\n\t\r\n\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\t\t \t\r\n\t\t\r\n\t\t\t \r\n\t\r\n\r\n", + "icon": "dataobject/data.store.png", + "groups": [ + "Artifacts" + ], + "propertyPackages": [ + "overrideidpackage", + "namepackage", + "documentationpackage" + ], + "hiddenPropertyPackages": [], + "roles": [ + "all" + ] + } + ], + "rules": { + "cardinalityRules": [ + { + "role": "Startevents_all", + "incomingEdges": [ + { + "role": "SequenceFlow", + "maximum": 0 + } + ] + }, + { + "role": "Endevents_all", + "outgoingEdges": [ + { + "role": "SequenceFlow", + "maximum": 0 + } + ] + } + ], + "connectionRules": [ + { + "role": "SequenceFlow", + "connects": [ + { + "from": "sequence_start", + "to": [ + "sequence_end" + ] + } + ] + }, + { + "role": "Association", + "connects": [ + { + "from": "sequence_start", + "to": [ + "TextAnnotation" + ] + }, + { + "from": "sequence_end", + "to": [ + "TextAnnotation" + ] + }, + { + "from": "TextAnnotation", + "to": [ + "sequence_end" + ] + }, + { + "from": "BoundaryCompensationEvent", + "to": [ + "sequence_end" + ] + }, + { + "from": "TextAnnotation", + "to": [ + "sequence_start" + ] + }, + { + "from": "BoundaryCompensationEvent", + "to": [ + "sequence_start" + ] + } + ] + }, + { + "role": "DataAssociation", + "connects": [ + { + "from": "sequence_start", + "to": [ + "DataStore" + ] + }, + { + "from": "sequence_end", + "to": [ + "DataStore" + ] + }, + { + "from": "DataStore", + "to": [ + "sequence_end" + ] + }, + { + "from": "DataStore", + "to": [ + "sequence_start" + ] + } + ] + }, + { + "role": "IntermediateEventOnActivityBoundary", + "connects": [ + { + "from": "Activity", + "to": [ + "IntermediateEventOnActivityBoundary" + ] + } + ] + } + ], + "containmentRules": [ + { + "role": "BPMNDiagram", + "contains": [ + "all" + ] + }, + { + "role": "SubProcess", + "contains": [ + "sequence_start", + "sequence_end", + "from_task_event", + "to_task_event", + "EventSubProcess", + "TextAnnotation", + "DataStore" + ] + }, + { + "role": "EventSubProcess", + "contains": [ + "sequence_start", + "sequence_end", + "from_task_event", + "to_task_event", + "TextAnnotation", + "DataStore" + ] + }, + { + "role": "Pool", + "contains": [ + "Lane" + ] + }, + { + "role": "Lane", + "contains": [ + "sequence_start", + "sequence_end", + "EventSubProcess", + "TextAnnotation", + "DataStore" + ] + } + ], + "morphingRules": [ + { + "role": "ActivitiesMorph", + "baseMorphs": [ + "UserTask" + ], + "preserveBounds": true + }, + { + "role": "GatewaysMorph", + "baseMorphs": [ + "ExclusiveGateway" + ] + }, + { + "role": "StartEventsMorph", + "baseMorphs": [ + "StartNoneEvent" + ] + }, + { + "role": "EndEventsMorph", + "baseMorphs": [ + "StartNoneEvent" + ] + }, + { + "role": "CatchEventsMorph", + "baseMorphs": [ + "CatchTimerEvent" + ] + }, + { + "role": "ThrowEventsMorph", + "baseMorphs": [ + "ThrowNoneEvent" + ] + }, + { + "role": "BoundaryEventsMorph", + "baseMorphs": [ + "ThrowNoneEvent" + ] + }, + { + "role": "BoundaryCompensationEvent", + "baseMorphs": [ + "BoundaryCompensationEvent" + ] + }, + { + "role": "TextAnnotation", + "baseMorphs": [ + "TextAnnotation" + ] + }, + { + "role": "DataStore", + "baseMorphs": [ + "DataStore" + ] + } + ] + } } diff --git a/pigx-visual/pigx-zipkin/Dockerfile b/pigx-visual/pigx-zipkin/Dockerfile deleted file mode 100644 index 3de381941..000000000 --- a/pigx-visual/pigx-zipkin/Dockerfile +++ /dev/null @@ -1,15 +0,0 @@ -FROM anapsix/alpine-java:8_server-jre_unlimited - -MAINTAINER wangiegie@gmail.com - -RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime - -RUN mkdir -p /pigx-zipkin - -WORKDIR /pigx-zipkin - -EXPOSE 5006 - -ADD ./pigx-visual/pigx-zipkin/target/pigx-zipkin.jar ./ - -CMD java -Djava.security.egd=file:/dev/./urandom -jar pigx-zipkin.jar diff --git a/pigx-visual/pigx-zipkin/pom.xml b/pigx-visual/pigx-zipkin/pom.xml deleted file mode 100644 index 3a142c468..000000000 --- a/pigx-visual/pigx-zipkin/pom.xml +++ /dev/null @@ -1,109 +0,0 @@ - - - - - - pigx-visual - com.pig4cloud - 2.8.0 - - 4.0.0 - - pigx-zipkin - pigx zipkin追踪服务 - - - - org.springframework.boot - spring-boot-starter-web - - - org.springframework.boot - spring-boot-starter-undertow - - - - org.springframework.cloud - spring-cloud-starter-alibaba-nacos-config - - - - org.springframework.cloud - spring-cloud-starter-alibaba-nacos-discovery - - - - io.zipkin.java - zipkin-server - ${zipkin.version} - - - - org.springframework.boot - spring-boot-starter-log4j2 - - - - - io.zipkin.java - zipkin-autoconfigure-ui - ${zipkin.version} - - - - io.zipkin.java - zipkin-autoconfigure-storage-mysql - ${zipkin.version} - - - org.springframework.boot - spring-boot-starter-jdbc - - - io.zipkin.java - zipkin-storage-mysql - ${zipkin-storage-mysql.version} - - - - org.jooq - jooq - - - mysql - mysql-connector-java - - - - - - - org.springframework.boot - spring-boot-maven-plugin - - - com.spotify - docker-maven-plugin - - - - - - \ No newline at end of file diff --git a/pigx-visual/pigx-zipkin/src/main/java/com/pig4cloud/pigx/zipkin/PigxZipkinApplication.java b/pigx-visual/pigx-zipkin/src/main/java/com/pig4cloud/pigx/zipkin/PigxZipkinApplication.java deleted file mode 100644 index 3cc744eaa..000000000 --- a/pigx-visual/pigx-zipkin/src/main/java/com/pig4cloud/pigx/zipkin/PigxZipkinApplication.java +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Copyright (c) 2018-2025, lengleng All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * Redistributions of source code must retain the above copyright notice, - * this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * Neither the name of the pig4cloud.com developer nor the names of its - * contributors may be used to endorse or promote products derived from - * this software without specific prior written permission. - * Author: lengleng (wangiegie@gmail.com) - */ - -package com.pig4cloud.pigx.zipkin; - -import org.springframework.boot.SpringApplication; -import org.springframework.cloud.client.SpringCloudApplication; -import org.springframework.context.annotation.Bean; -import zipkin.storage.mysql.MySQLStorage; -import zipkin2.server.internal.EnableZipkinServer; - -import javax.sql.DataSource; - -/** - * @author 仙(๑ • ㅂ • ́)و✧酱 - * @date 2019/2/22 - *

- * 服务链路追踪 - */ -@EnableZipkinServer -@SpringCloudApplication -public class PigxZipkinApplication { - public static void main(String[] args) { - SpringApplication.run(PigxZipkinApplication.class, args); - } - - @Bean - public MySQLStorage mySQLStorage(DataSource datasource) { - return MySQLStorage.builder().datasource(datasource).executor(Runnable::run).build(); - } - -} diff --git a/pigx-visual/pigx-zipkin/src/main/resources/banner.txt b/pigx-visual/pigx-zipkin/src/main/resources/banner.txt deleted file mode 100644 index 63be6e1eb..000000000 --- a/pigx-visual/pigx-zipkin/src/main/resources/banner.txt +++ /dev/null @@ -1,16 +0,0 @@ -${AnsiColor.BRIGHT_YELLOW} - - ::::::::: ::::::::::: :::::::: ::: ::: - :+: :+: :+: :+: :+: :+: :+: - +:+ +:+ +:+ +:+ +:+ +:+ - +#++:++#+ +#+ :#: +#++:+ - +#+ +#+ +#+ +#+# +#+ +#+ - #+# #+# #+# #+# #+# #+# - ### ########### ######## ### ### - - www.pig4cloud.com - - Pig Microservice Architecture - - - diff --git a/pigx-visual/pigx-zipkin/src/main/resources/bootstrap.yml b/pigx-visual/pigx-zipkin/src/main/resources/bootstrap.yml deleted file mode 100644 index 09f5c46fa..000000000 --- a/pigx-visual/pigx-zipkin/src/main/resources/bootstrap.yml +++ /dev/null @@ -1,16 +0,0 @@ -server: - port: 5006 - -spring: - application: - name: @artifactId@ - cloud: - nacos: - discovery: - server-addr: ${NACOS-HOST:pigx-register}:${NACOS-PORT:8848} - config: - server-addr: ${spring.cloud.nacos.discovery.server-addr} - file-extension: yml - shared-dataids: application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension} - profiles: - active: dev \ No newline at end of file diff --git a/pigx-visual/pom.xml b/pigx-visual/pom.xml index d6b1bbc4a..2c4400f31 100644 --- a/pigx-visual/pom.xml +++ b/pigx-visual/pom.xml @@ -40,6 +40,5 @@ pigx-mp-manager pigx-sso-client-demo pigx-tx-manager - pigx-zipkin diff --git a/pom.xml b/pom.xml index 8a67d33d2..417063c98 100644 --- a/pom.xml +++ b/pom.xml @@ -93,15 +93,6 @@ spring-boot-admin-starter-client ${spring-boot-admin.version} - - - org.springframework.cloud - spring-cloud-starter-sleuth - - - org.springframework.cloud - spring-cloud-sleuth-zipkin - org.springframework.cloud