@jiangood/admin-spring-boot-starter 0.3.3 → 0.3.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (33) hide show
  1. package/config/dist/common-plugin.js +148 -0
  2. package/config/dist/config.js +3 -4
  3. package/config/dist/index.js +1 -2
  4. package/package.json +3 -2
  5. package/src/framework/field-components/FieldRemoteTreeSelectMultiple.jsx +6 -2
  6. package/config/dist/plugins/form-plugin.js +0 -51
  7. package/config/dist/plugins/route-plugin.js +0 -72
  8. package/src/pages/flowable/design/contextPad.js +0 -50
  9. package/src/pages/flowable/design/customTranslate/customTranslate.js +0 -16
  10. package/src/pages/flowable/design/customTranslate/translations-properties-panel.js +0 -10
  11. package/src/pages/flowable/design/customTranslate/translations.js +0 -144
  12. package/src/pages/flowable/design/descriptors/flowable.json +0 -1109
  13. package/src/pages/flowable/design/index.css +0 -7
  14. package/src/pages/flowable/design/index.jsx +0 -171
  15. package/src/pages/flowable/design/provider/FlowablePropertiesProvider.js +0 -75
  16. package/src/pages/flowable/design/provider/index.js +0 -6
  17. package/src/pages/flowable/design/provider/properties/ConditionDesign.jsx +0 -243
  18. package/src/pages/flowable/design/provider/properties/ConditionExpressionUtils.js +0 -53
  19. package/src/pages/flowable/design/provider/properties/ConditionProps.jsx +0 -76
  20. package/src/pages/flowable/design/provider/properties/DelegateExpressionProps.js +0 -54
  21. package/src/pages/flowable/design/provider/properties/FormProps.js +0 -55
  22. package/src/pages/flowable/design/provider/properties/MultiInstanceProps.js +0 -100
  23. package/src/pages/flowable/design/provider/properties/UserTaskForm.jsx +0 -48
  24. package/src/pages/flowable/design/provider/properties/utils.jsx +0 -35
  25. package/src/pages/flowable/index.jsx +0 -87
  26. package/src/pages/flowable/monitor/definition.jsx +0 -87
  27. package/src/pages/flowable/monitor/instance/index.jsx +0 -177
  28. package/src/pages/flowable/monitor/instance/view.jsx +0 -102
  29. package/src/pages/flowable/monitor/task.jsx +0 -98
  30. package/src/pages/flowable/task/form.jsx +0 -186
  31. package/src/pages/flowable/task/index.jsx +0 -184
  32. package/src/pages/flowable/task/instance/view.jsx +0 -85
  33. package/src/pages/flowable/test/index.jsx +0 -57
@@ -0,0 +1,148 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var fs = require("fs");
4
+ var path = require("path");
5
+ var pkgName = '@jiangood/admin-spring-boot-starter';
6
+ exports.default = (function (api) {
7
+ api.describe({
8
+ key: 'admin-spring-boot-stater',
9
+ });
10
+ api.logger.info('plugin starting... ');
11
+ var isFramework = api.pkg.name === pkgName;
12
+ var frameworkDirs = Utils.getDirs(api.paths.absNodeModulesPath + "/@jiangood");
13
+ api.logger.info('依赖的框架:', frameworkDirs);
14
+ var _loop_1 = function (frameworkDir) {
15
+ api.logger.info("正在解析文件夹", frameworkDir);
16
+ // 处理路由
17
+ var routeFiles = Utils.findFilesSync(frameworkDir, /src\/pages\/.*\.jsx$/); // src/pages/**
18
+ api.logger.info("找到的页面文件:", routeFiles);
19
+ api.modifyRoutes(function (routes) {
20
+ for (var _i = 0, routeFiles_1 = routeFiles; _i < routeFiles_1.length; _i++) {
21
+ var file = routeFiles_1[_i];
22
+ var route = convertFileToRoute(file);
23
+ if (route) {
24
+ if (routes[route.id] == null) { // 如果用户项目没有这个路由,则加入。否则以用户项目为准
25
+ api.logger.info("加入路由:", route.id, "路径:", route.absPath);
26
+ routes[route.id] = route;
27
+ }
28
+ }
29
+ }
30
+ api.logger.info("路由修改完成");
31
+ return routes;
32
+ });
33
+ };
34
+ // ==================== 处理路由 ========================
35
+ for (var _i = 0, frameworkDirs_1 = frameworkDirs; _i < frameworkDirs_1.length; _i++) {
36
+ var frameworkDir = frameworkDirs_1[_i];
37
+ _loop_1(frameworkDir);
38
+ }
39
+ // =============== 处理表单 ========================
40
+ { // 导入工具类 FormRegistryUtils
41
+ var importFrom_1 = path.join(api.paths.absSrcPath, 'framework');
42
+ if (!isFramework) {
43
+ importFrom_1 = path.join(api.paths.absNodeModulesPath, pkgName);
44
+ }
45
+ api.logger.info('formRegistryPath', importFrom_1);
46
+ api.addEntryImports(function () { return ({
47
+ source: importFrom_1,
48
+ specifier: '{FormRegistryUtils}'
49
+ }); });
50
+ }
51
+ Utils.findFilesSync(api.paths.absSrcPath, /forms\/.*\.jsx$/).forEach(function (file) {
52
+ var name = Utils.getFileMainName(file);
53
+ api.addEntryImports(function () { return ({
54
+ source: file,
55
+ specifier: name
56
+ }); });
57
+ // register form
58
+ api.addEntryCodeAhead(function () { return "FormRegistryUtils.register(\"".concat(name, "\",").concat(name, " );"); });
59
+ api.logger.info('新版本 formRegistry.register: ', name, file);
60
+ });
61
+ });
62
+ function convertFileToRoute(file) {
63
+ var absPath = file;
64
+ var mainName = Utils.getFileMainName(file);
65
+ // 只添加小写开头的文件页面,大写的默认为组件
66
+ if (mainName.charAt(0) !== mainName.charAt(0).toLowerCase()) {
67
+ return;
68
+ }
69
+ var routePath = file.substring(file.indexOf('pages') + 6, file.length - 4);
70
+ routePath = routePath.replaceAll("\$", ":"); // 文件$开头的会替换为路径变量 如$id 变为 :id
71
+ var parentId = "@@/global-layout";
72
+ if (routePath.endsWith("/index")) {
73
+ routePath = routePath.substring(0, routePath.length - 6);
74
+ }
75
+ return {
76
+ absPath: absPath,
77
+ id: routePath,
78
+ path: routePath,
79
+ file: file,
80
+ parentId: parentId
81
+ };
82
+ }
83
+ var Utils = /** @class */ (function () {
84
+ function Utils() {
85
+ }
86
+ /**
87
+ * 获取目录下的所有子目录
88
+ * @param dir
89
+ * @returns {string[]} 完整路径
90
+ */
91
+ Utils.getDirs = function (dir) {
92
+ console.log('获取dir....', dir);
93
+ if (!fs.existsSync(dir))
94
+ throw new Error("\u76EE\u5F55\u4E0D\u5B58\u5728: ".concat(dir));
95
+ return fs.readdirSync(dir).map(function (item) {
96
+ var fullPath = path.join(dir, item);
97
+ if (fs.statSync(fullPath).isDirectory()) {
98
+ return path.join(dir, item);
99
+ }
100
+ });
101
+ };
102
+ /**
103
+ * 同步获取目录下所有文件
104
+ */
105
+ Utils.getAllFilesSync = function (dir) {
106
+ if (!fs.existsSync(dir))
107
+ throw new Error("\u76EE\u5F55\u4E0D\u5B58\u5728: ".concat(dir));
108
+ var results = [];
109
+ function traverse(currentDir) {
110
+ fs.readdirSync(currentDir).forEach(function (item) {
111
+ var fullPath = path.join(currentDir, item);
112
+ if (fs.statSync(fullPath).isDirectory()) {
113
+ traverse(fullPath);
114
+ }
115
+ else {
116
+ results.push(fullPath.split(path.sep).join('/'));
117
+ }
118
+ });
119
+ }
120
+ traverse(dir);
121
+ return results;
122
+ };
123
+ /**
124
+ * 同步查找匹配模式的文件
125
+ *
126
+ * @return 文件列表 全路径
127
+ */
128
+ Utils.findFilesSync = function (dir, pattern) {
129
+ var files = this.getAllFilesSync(dir);
130
+ return files.filter(function (file) { return pattern.test(file); }).map(function (file) { return file.split(path.sep).join('/'); });
131
+ };
132
+ /**
133
+ * 获取文件名(不含后缀)
134
+ * @param {string} filePath - 文件路径
135
+ * @returns {string} 文件名(不含后缀)
136
+ */
137
+ Utils.getFileMainName = function (filePath) {
138
+ // 从路径中提取文件名
139
+ var fileName = path.basename(filePath);
140
+ // 移除扩展名
141
+ var lastDotIndex = fileName.lastIndexOf('.');
142
+ if (lastDotIndex > 0) {
143
+ return fileName.substring(0, lastDotIndex);
144
+ }
145
+ return fileName; // 没有扩展名的情况
146
+ };
147
+ return Utils;
148
+ }());
@@ -7,9 +7,9 @@ var path = require("path");
7
7
  console.log('i am config.ts');
8
8
  console.log('__dirname', __dirname);
9
9
  console.log('process.cwd()', process.cwd());
10
- var isFramework = fs.existsSync(path.join(process.cwd(), 'config/plugins/route-plugin.ts'));
10
+ var isFramework = fs.existsSync(path.join(process.cwd(), 'config/common-plugin.ts'));
11
11
  console.log('isFramework', isFramework);
12
- var pluginDir = isFramework ? './config/plugins' : '@jiangood/admin-spring-boot-starter/config/dist/plugins';
12
+ var pluginDir = isFramework ? './config' : '@jiangood/admin-spring-boot-starter/config/dist';
13
13
  console.log('pluginDir', pluginDir);
14
14
  var host = '127.0.0.1:8080';
15
15
  exports.default = (0, umi_1.defineConfig)({
@@ -20,8 +20,7 @@ exports.default = (0, umi_1.defineConfig)({
20
20
  mfsu: false,
21
21
  esbuildMinifyIIFE: true,
22
22
  plugins: [
23
- pluginDir + '/form-plugin',
24
- pluginDir + '/route-plugin',
23
+ pluginDir + '/common-plugin',
25
24
  ],
26
25
  proxy: {
27
26
  '/admin': {
@@ -15,5 +15,4 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./config"), exports);
18
- __exportStar(require("./plugins/route-plugin"), exports);
19
- __exportStar(require("./plugins/form-plugin"), exports);
18
+ __exportStar(require("./common-plugin"), exports);
package/package.json CHANGED
@@ -4,7 +4,8 @@
4
4
  "@types/react-dom": "^19.0.0",
5
5
  "@types/react-lazylog": "^4.5.1",
6
6
  "@umijs/plugins": "^4.3.17",
7
- "typescript": "^5.0.0"
7
+ "typescript": "^5.0.0",
8
+ "@jiangood/admin-process-plugin-spring-boot-starter": "1.0.6"
8
9
  },
9
10
  "peerDependencies": {
10
11
  "@ant-design/icons": "^6.0.0",
@@ -33,7 +34,7 @@
33
34
  "!src/.umi"
34
35
  ],
35
36
  "main": "src/index.ts",
36
- "version": "0.3.3",
37
+ "version": "0.3.5",
37
38
  "scripts": {
38
39
  "dev": "umi dev",
39
40
  "build": "tsc --outDir config/dist --skipLibCheck --noEmitOnError false config/index.ts"
@@ -7,6 +7,10 @@ export class FieldRemoteTreeSelectMultiple extends React.Component {
7
7
 
8
8
  static defaultProps = {
9
9
  treeDefaultExpandAll: true,
10
+ style: {
11
+ width: '100%',
12
+ minWidth: 200,
13
+ },
10
14
  }
11
15
 
12
16
  state = {
@@ -44,10 +48,9 @@ export class FieldRemoteTreeSelectMultiple extends React.Component {
44
48
 
45
49
 
46
50
 
47
-
48
51
  return (
49
52
  <TreeSelect
50
- style={{width: '100%', minWidth: 200}}
53
+ style={this.props.style}
51
54
  allowClear={true}
52
55
  dropdownStyle={{maxHeight: 400, overflow: 'auto'}}
53
56
  treeData={data}
@@ -62,6 +65,7 @@ export class FieldRemoteTreeSelectMultiple extends React.Component {
62
65
  }}
63
66
  treeLine={{showLeafIcon: true}}
64
67
  treeDefaultExpandAll={this.props.treeDefaultExpandAll}
68
+
65
69
  />
66
70
  );
67
71
  }
@@ -1,51 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- var fs = require("fs");
4
- var path = require("path");
5
- // 自动注册src/forms下的表单
6
- var pkgName = '@jiangood/admin-spring-boot-starter';
7
- exports.default = (function (api) {
8
- api.logger.info('plugin starting... ');
9
- api.logger.info('info', JSON.stringify(api.env));
10
- api.describe({
11
- key: 'form-register-by-dir',
12
- });
13
- var isFramework = api.pkg.name === pkgName;
14
- api.logger.info('current pkgName', api.pkg.name);
15
- api.logger.info('is framework ?', isFramework);
16
- var formRegistryPath = path.join(api.paths.absSrcPath, 'framework');
17
- if (!isFramework) {
18
- formRegistryPath = path.join(api.paths.absNodeModulesPath, pkgName);
19
- }
20
- api.logger.info('formRegistryPath', formRegistryPath);
21
- api.addEntryImports(function () { return ({
22
- source: formRegistryPath,
23
- specifier: '{FormRegistryUtils}'
24
- }); });
25
- parseDir(api, path.join(api.paths.absSrcPath, 'forms'));
26
- if (!isFramework) {
27
- parseDir(api, path.join(api.paths.absNodeModulesPath, pkgName, 'src', 'forms'));
28
- }
29
- });
30
- function parseDir(api, dir) {
31
- api.logger.info('scan dir', dir);
32
- if (!fs.existsSync(dir)) {
33
- api.logger.info('dir not exist, return ');
34
- return;
35
- }
36
- fs.readdirSync(dir).forEach(function (file) {
37
- if (!file.endsWith(".jsx")) {
38
- return;
39
- }
40
- var source = path.join(dir, file);
41
- var name = file.replace(".jsx", "");
42
- // import form
43
- api.addEntryImports(function () { return ({
44
- source: source,
45
- specifier: name
46
- }); });
47
- // register form
48
- api.addEntryCodeAhead(function () { return "FormRegistryUtils.register(\"".concat(name, "\",").concat(name, " );"); });
49
- api.logger.info('formRegistry.register: ', name, source);
50
- });
51
- }
@@ -1,72 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- var fs = require("fs");
4
- var path = require("path");
5
- // 自动注册src/forms下的表单
6
- var pkgName = '@jiangood/admin-spring-boot-starter';
7
- exports.default = (function (api) {
8
- api.describe({
9
- key: 'addDependenceRoutes',
10
- });
11
- var pageDir = api.paths.absNodeModulesPath + "/" + pkgName + "/src/pages";
12
- api.logger.info('scan dir is', pageDir);
13
- var exist = fs.existsSync(pageDir);
14
- if (!exist) {
15
- api.logger.info('dir not exist, return ');
16
- return;
17
- }
18
- var frameworkRoutes = [];
19
- parseDir(pageDir, frameworkRoutes);
20
- api.logger.info('框架路由数量: ', frameworkRoutes.length);
21
- api.modifyRoutes(function (routes) {
22
- // routes 代表用户项目的路由,umi已经自动解析过pages目录
23
- // 接下来加入加入框架的路由,确保用户项目路由优先级高
24
- for (var _i = 0, frameworkRoutes_1 = frameworkRoutes; _i < frameworkRoutes_1.length; _i++) {
25
- var route = frameworkRoutes_1[_i];
26
- if (routes[route.id] == null) { // 如果用户项目没有这个路由,则加入。否则以用户项目为准
27
- routes[route.id] = route;
28
- }
29
- }
30
- return routes;
31
- });
32
- });
33
- function parseDir(pageDir, fileRoutes) {
34
- var list = fs.readdirSync(pageDir);
35
- for (var _i = 0, list_1 = list; _i < list_1.length; _i++) {
36
- var fileName = list_1[_i];
37
- var fullPath = path.join(pageDir, fileName);
38
- var stats = fs.statSync(fullPath);
39
- if (stats.isFile()) {
40
- if (fileName.endsWith(".jsx")) {
41
- addRoute(fullPath, fileRoutes);
42
- }
43
- }
44
- else if (stats.isDirectory()) {
45
- parseDir(fullPath, fileRoutes);
46
- }
47
- }
48
- }
49
- function addRoute(file, fileRoutes) {
50
- var routePath = file.substring(file.indexOf('pages') + 6, file.length - 4);
51
- routePath = routePath.replaceAll('\\', '/');
52
- // 文件$开头的会替换为路径变量 如$id 变为 :id
53
- routePath = routePath.replaceAll("\$", ":");
54
- var parentId = "@@/global-layout";
55
- fileRoutes.push({
56
- absPath: file,
57
- id: routePath,
58
- path: routePath,
59
- file: file,
60
- parentId: parentId
61
- });
62
- if (routePath.endsWith("/index")) {
63
- routePath = routePath.substring(0, routePath.length - 6);
64
- fileRoutes.push({
65
- absPath: file,
66
- id: routePath,
67
- path: routePath,
68
- file: file,
69
- parentId: parentId
70
- });
71
- }
72
- }
@@ -1,50 +0,0 @@
1
- class CustomContextPad {
2
- constructor(config, contextPad, create, elementFactory, injector, translate) {
3
- this.create = create;
4
- this.elementFactory = elementFactory;
5
- this.translate = translate;
6
-
7
- if (config.autoPlace !== false) {
8
- this.autoPlace = injector.get('autoPlace', false);
9
- }
10
-
11
- contextPad.registerProvider(this);
12
- }
13
-
14
- static $inject = ['config', 'contextPad', 'create', 'elementFactory', 'injector'];
15
-
16
- getContextPadEntries(element) {
17
- const { autoPlace, create, elementFactory } = this;
18
-
19
- function appendServiceTask(event, element) {
20
- if (autoPlace) {
21
- const shape = elementFactory.createShape({ type: 'bpmn:UserTask' });
22
- autoPlace.append(element, shape);
23
- } else {
24
- appendServiceTaskStart(event, element);
25
- }
26
- }
27
-
28
- function appendServiceTaskStart(event) {
29
- const shape = elementFactory.createShape({ type: 'bpmn:UserTask' });
30
- create.start(event, shape, element);
31
- }
32
-
33
- return {
34
- 'append.append-task': {
35
- group: 'model',
36
- className: 'bpmn-icon-user-task',
37
- title: '追加用户任务',
38
- action: {
39
- click: appendServiceTask,
40
- dragstart: appendServiceTaskStart,
41
- },
42
- },
43
- };
44
- }
45
- }
46
-
47
- export default {
48
- __init__: ['customContextPad'],
49
- customContextPad: ['type', CustomContextPad],
50
- };
@@ -1,16 +0,0 @@
1
- // i18n demo https://github.com/bpmn-io/bpmn-js-examples/blob/main/i18n/src/customTranslate/customTranslate.js
2
-
3
- import translations1 from './translations';
4
- import translations2 from './translations-properties-panel';
5
-
6
- export default function customTranslate(template, replacements) {
7
- replacements = replacements || {};
8
-
9
- // Translate
10
- template = translations1[template] || translations2[template] || template;
11
-
12
- // Replace
13
- return template.replace(/{([^}]+)}/g, function(_, key) {
14
- return replacements[key] || '{' + key + '}';
15
- });
16
- }
@@ -1,10 +0,0 @@
1
-
2
- export default {
3
- "General": "通用",
4
- "Documentation":"文档/描述",
5
- "Element documentation":"元素的文本描述或注释",
6
- "Service Task":"服务任务",
7
- "Multi-instance":"多实例",
8
- "Loop cardinality":"循环基数",
9
- "Completion condition":"完成条件",
10
- };
@@ -1,144 +0,0 @@
1
- /**
2
- * This is a sample file that should be replaced with the actual translation.
3
- *
4
- * Checkout https://github.com/bpmn-io/bpmn-js-i18n for a list of available
5
- *
6
- * translations and labels to translate.
7
- *
8
- * demo: https://github.com/bpmn-io/bpmn-js-examples/
9
- */
10
- export default {
11
- "Activate create/remove space tool": "启动创建/删除空间工具",
12
- "Activate global connect tool": "启动全局连接工具",
13
- "Activate hand tool": "启动手动工具",
14
- "Activate lasso tool": "启动 Lasso 工具",
15
- "Ad-hoc": "Ad-hoc子流程",
16
- "Ad-hoc sub-process (collapsed)": "临时子流程(折叠)",
17
- "Ad-hoc sub-process (expanded)": "临时子流程(展开)",
18
- "Add lane above": "在上方添加通道",
19
- "Add lane below": "在下方添加通道",
20
- "Add text annotation": "添加文本注释",
21
- "Append compensation activity": "追加补偿活动",
22
- "Append conditional intermediate catch event": "添加中间条件捕获事件",
23
- "Append end event": "添加结束事件",
24
- "Append gateway": "添加网关",
25
- "Append intermediate/boundary event": "添加中间/边界事件",
26
- "Append message intermediate catch event": "添加消息中间捕获事件",
27
- "Append receive task": "添加接收任务",
28
- "Append signal intermediate catch event": "添加信号中间捕获事件",
29
- "Append task": "添加任务",
30
- "Append timer intermediate catch event": "添加定时器中间捕获事件",
31
- "Business rule task": "规则任务",
32
- "Call activity": "引用流程",
33
- "Cancel boundary event": "取消边界事件",
34
- "Cancel end event": "取消结束事件",
35
- "Change type": "更改类型",
36
- "Collection": "集合",
37
- "Compensation boundary event": "补偿边界事件",
38
- "Compensation end event": "结束补偿事件",
39
- "Compensation intermediate throw event": "中间补偿抛出事件",
40
- "Compensation start event": "补偿启动事件",
41
- "Complex gateway": "复杂网关",
42
- "Conditional boundary event": "条件边界事件",
43
- "Conditional boundary event (non-interrupting)": "条件边界事件 (非中断)",
44
- "Conditional flow": "条件流",
45
- "Conditional intermediate catch event": "中间条件捕获事件",
46
- "Conditional start event": "条件启动事件",
47
- "Conditional start event (non-interrupting)": "条件启动事件 (非中断)",
48
- "Connect to other element": "连接到其他元素",
49
- "Connect using association": "文本关联",
50
- "Connect using data input association": "数据关联",
51
- "Connect using sequence/message flow or association": "消息关联",
52
- "Create data object reference": "创建数据对象引用",
53
- "Create data store reference": "创建数据存储引用",
54
- "Create end event": "创建结束事件",
55
- "Create expanded sub-process": "创建可折叠子流程",
56
- "Create gateway": "创建网关",
57
- "Create group": "创建组",
58
- "Create intermediate/boundary event": "创建中间/边界事件",
59
- "Create pool/participant": "创建池/参与者",
60
- "Create start event": "创建开始事件",
61
- "Create task": "创建任务",
62
- "Data object reference": "数据对象引用",
63
- "Data store reference": "数据存储引用",
64
- "Default flow": "默认流",
65
- "Delete": "删除",
66
- "Divide into three lanes": "分成三条通道",
67
- "Divide into two lanes": "分成两条通道",
68
- "Empty pool/participant": "空泳道",
69
- "Empty pool/participant (removes content)": "清空泳道(删除内容)",
70
- "End event": "结束事件",
71
- "Error boundary event": "错误边界事件",
72
- "Error end event": "结束错误事件",
73
- "Error start event": "错误启动事件",
74
- "Escalation boundary event": "升级边界事件",
75
- "Escalation boundary event (non-interrupting)": "升级边界事件 (非中断)",
76
- "Escalation end event": "结束升级事件",
77
- "Escalation intermediate throw event": "中间升级抛出事件",
78
- "Escalation start event": "升级启动事件",
79
- "Escalation start event (non-interrupting)": "升级启动事件 (非中断)",
80
- "Event sub-process": "事件子流程",
81
- "Event-based gateway": "事件网关",
82
- "Exclusive gateway": "独占网关",
83
- "Inclusive gateway": "包容网关",
84
- "Intermediate throw event": "中间抛出事件",
85
- "Link intermediate catch event": "中间链接捕获事件",
86
- "Link intermediate throw event": "中间链接抛出事件",
87
- "Loop": "循环",
88
- "Manual task": "手动任务",
89
- "Message boundary event": "消息边界事件",
90
- "Message boundary event (non-interrupting)": "消息边界事件 (非中断)",
91
- "Message end event": "结束消息事件",
92
- "Message intermediate catch event": "中间消息捕获事件",
93
- "Message intermediate throw event": "中间消息抛出事件",
94
- "Message start event": "消息启动事件",
95
- "Message start event (non-interrupting)": "消息启动事件 (非中断)",
96
- "Open {element}": "打开 {element}",
97
- "Parallel gateway": "并行网关",
98
- "Parallel multi-instance": "并行多实例",
99
- "Participant multiplicity": "参与者多重性",
100
- "Receive task": "接受任务",
101
- "Remove": "移除",
102
- "Script task": "脚本任务",
103
- "Search in diagram": "在图表中搜索",
104
- "Send task": "发送任务",
105
- "Sequence flow": "顺序流",
106
- "Sequential multi-instance": "串行多实例",
107
- "Service task": "服务任务",
108
- "Signal boundary event": "信号边界事件",
109
- "Signal boundary event (non-interrupting)": "信号边界事件 (非中断)",
110
- "Signal end event": "结束信号事件",
111
- "Signal intermediate catch event": "中间信号捕获事件",
112
- "Signal intermediate throw event": "中间信号抛出事件",
113
- "Signal start event": "信号启动事件",
114
- "Signal start event (non-interrupting)": "信号启动事件 (非中断)",
115
- "Start event": "开始事件",
116
- "Sub-process": "子流程",
117
- "Sub-process (collapsed)": "可折叠子流程",
118
- "Sub-process (expanded)": "可展开子流程",
119
- "Task": "任务",
120
- "Terminate end event": "终止边界事件",
121
- "Timer boundary event": "定时边界事件",
122
- "Timer boundary event (non-interrupting)": "定时边界事件 (非中断)",
123
- "Timer intermediate catch event": "中间定时捕获事件",
124
- "Timer start event": "定时启动事件",
125
- "Timer start event (non-interrupting)": "定时启动事件 (非中断)",
126
- "Transaction": "事务",
127
- "User task": "用户任务",
128
- "already rendered {element}": "{element} 已呈现",
129
- "correcting missing bpmnElement on {plane} to {rootElement}": "在 {plane} 上更正缺失的 bpmnElement 为 {rootElement}",
130
- "diagram not part of bpmn:Definitions": "图表不是 bpmn:Definitions 的一部分",
131
- "element required": "需要元素",
132
- "element {element} referenced by {referenced}#{property} not yet drawn": "元素 {element} 的引用 {referenced}#{property} 尚未绘制",
133
- "failed to import {element}": "{element} 导入失败",
134
- "flow elements must be children of pools/participants": "元素必须是池/参与者的子级",
135
- "missing {semantic}#attachedToRef": "在 {element} 中缺少 {semantic}#attachedToRef",
136
- "more than {count} child lanes": "超过 {count} 条通道",
137
- "multiple DI elements defined for {element}": "为 {element} 定义了多个 DI 元素",
138
- "no bpmnElement referenced in {element}": "{element} 中没有引用 bpmnElement",
139
- "no diagram to display": "没有要显示的图表",
140
- "no parent for {element} in {parent}": "在 {element} 中没有父元素 {parent}",
141
- "no process or collaboration to display": "没有可显示的流程或协作",
142
- "no shape type specified": "未指定形状类型",
143
- "out of bounds release": "越界释放"
144
- };