@reskin/bpmn 0.0.2 → 0.0.3
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.
- package/bundles/reskin-bpmn.umd.js +26 -2
- package/bundles/reskin-bpmn.umd.js.map +1 -1
- package/esm2015/public-api.js +1 -1
- package/esm2015/src/bpmn-editor/bpmn-editor.component.js +26 -3
- package/fesm2015/reskin-bpmn.js +25 -2
- package/fesm2015/reskin-bpmn.js.map +1 -1
- package/package.json +1 -1
- package/src/bpmn-editor/bpmn-editor.component.d.ts +20 -0
|
@@ -1074,12 +1074,26 @@
|
|
|
1074
1074
|
RkBpmnEditorComponent.prototype.zoomReset = function () {
|
|
1075
1075
|
this.bpmnJS.get('canvas').zoom('fit-viewport', { x: 0, y: 0 });
|
|
1076
1076
|
};
|
|
1077
|
+
/**
|
|
1078
|
+
* 保存当前 BPMN 图的 XML 表示
|
|
1079
|
+
*
|
|
1080
|
+
* 此方法用于将当前 BPMN 图的 XML 表示保存下来它可以接受一个可选参数 format,
|
|
1081
|
+
* 该参数指示是否应格式化 XML 输出当 format 设置为 true 时,XML 将以一种更易于阅读的格式输出;
|
|
1082
|
+
* 否则,它将以紧凑的形式输出
|
|
1083
|
+
*
|
|
1084
|
+
* @param format {boolean} - 可选参数,默认为 true如果设置为 true,保存的 XML 将被格式化以提高可读性
|
|
1085
|
+
* @returns {Promise<string>} - 返回一个 Promise,解析为 BPMN 图的 XML 字符串表示
|
|
1086
|
+
*/
|
|
1087
|
+
RkBpmnEditorComponent.prototype.saveXML = function (format) {
|
|
1088
|
+
if (format === void 0) { format = true; }
|
|
1089
|
+
return this.bpmnJS.saveXML({ format: format });
|
|
1090
|
+
};
|
|
1077
1091
|
/**
|
|
1078
1092
|
* 下载 .bpmn 格式
|
|
1079
1093
|
*/
|
|
1080
1094
|
RkBpmnEditorComponent.prototype.downloadBPMN = function (name) {
|
|
1081
1095
|
var _this = this;
|
|
1082
|
-
this.
|
|
1096
|
+
this.saveXML().then(function (_c) {
|
|
1083
1097
|
var xml = _c.xml;
|
|
1084
1098
|
if (xml) {
|
|
1085
1099
|
// 把数据转换为URI,下载要用到的
|
|
@@ -1089,12 +1103,22 @@
|
|
|
1089
1103
|
}
|
|
1090
1104
|
});
|
|
1091
1105
|
};
|
|
1106
|
+
/**
|
|
1107
|
+
* 保存SVG图形
|
|
1108
|
+
*
|
|
1109
|
+
* 此方法用于将当前图表以SVG格式保存它不接受任何参数
|
|
1110
|
+
* 返回一个Promise对象,该Promise解析为SaveSVGResult类型的结果
|
|
1111
|
+
* 主要用于需要以SVG格式导出或保存当前图表的场景
|
|
1112
|
+
*/
|
|
1113
|
+
RkBpmnEditorComponent.prototype.saveSVG = function () {
|
|
1114
|
+
return this.bpmnJS.saveSVG();
|
|
1115
|
+
};
|
|
1092
1116
|
/**
|
|
1093
1117
|
* 下载 .svg 格式
|
|
1094
1118
|
*/
|
|
1095
1119
|
RkBpmnEditorComponent.prototype.downloadSVG = function () {
|
|
1096
1120
|
var _this = this;
|
|
1097
|
-
this.
|
|
1121
|
+
this.saveSVG().then(function (_c) {
|
|
1098
1122
|
var svg = _c.svg;
|
|
1099
1123
|
if (svg) {
|
|
1100
1124
|
var svgBlob = new Blob([svg], {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reskin-bpmn.umd.js","sources":["../../../library/bpmn/src/config/translations.ts","../../../library/bpmn/src/config/customTranslate.ts","../../../library/bpmn/src/bpmn-viewer/bpmn-viewer.component.ts","../../../library/bpmn/src/bpmn-viewer/bpmn-viewer.component.html","../../../node_modules/tslib/tslib.es6.mjs","../../../library/bpmn/src/config/defaultXML.ts","../../../library/bpmn/src/bpmn-editor/bpmn-editor.component.ts","../../../library/bpmn/src/bpmn-editor/bpmn-editor.component.html","../../../library/bpmn/src/bpmn.module.ts","../../../library/bpmn/reskin-bpmn.ts"],"sourcesContent":["/**\r\n * 写英文对应的中文内容\r\n */\r\nexport default {\r\n 'Activate global connect tool': '激活全局连接工具',\r\n 'Append {type}': '追加 {type}',\r\n 'Append endEvent': '追加 结束事件 ',\r\n 'Append task': '追加 任务',\r\n 'Append gateway': '追加 网关',\r\n 'Append intermediate/boundary event': '追加 中间/边界 事件',\r\n 'Add lane above': '在上面添加道',\r\n 'Divide into two lanes': '分割成两个道',\r\n 'Divide into three lanes': '分割成三个道',\r\n 'Add lane below': '在下面添加道',\r\n 'Append compensation activity': '追加补偿活动',\r\n 'Change type': '修改类型',\r\n 'Change element': '改变元素',\r\n 'Connect using association': '使用关联连接',\r\n 'Connect using sequence/message flow or association': '使用顺序/消息流或者关联连接',\r\n 'Connect using data input association': '使用数据输入关联连接',\r\n Remove: '移除',\r\n 'Activate hand tool': '激活抓手工具',\r\n 'Activate lasso tool': '激活套索工具',\r\n 'Activate create/remove space tool': '激活创建/删除空间工具',\r\n 'Create expanded sub-process': '创建扩展子过程',\r\n 'Create intermediate/boundary event': '创建中间抛出事件/边界事件',\r\n 'Create pool/participant': '创建池/参与者',\r\n 'Parallel multi-instance': '并行多重事件',\r\n 'Sequential multi-instance': '时序多重事件',\r\n 'Data object reference': '数据对象参考',\r\n 'Data store reference': '数据存储参考',\r\n Loop: '循环',\r\n 'Ad-hoc': '即席',\r\n 'Create {type}': '创建 {type}',\r\n 'Create task': '创建任务',\r\n 'Create start event': '创建开始事件',\r\n 'Create end event': '创建结束事件',\r\n 'Create group': '创建组',\r\n Task: '任务',\r\n 'Send task': '发送任务',\r\n 'Receive task': '接收任务',\r\n 'User task': '用户任务',\r\n 'Manual task': '手工任务',\r\n 'Business rule task': '业务规则任务',\r\n 'Service task': '服务任务',\r\n 'Script task': '脚本任务',\r\n 'Call activity': '调用活动',\r\n 'Sub-process (collapsed)': '子流程(折叠的)',\r\n 'Sub-process (expanded)': '子流程(展开的)',\r\n 'Start event': '开始事件',\r\n StartEvent: '开始事件',\r\n 'Intermediate throw event': '中间事件',\r\n 'End event': '结束事件',\r\n EndEvent: '结束事件',\r\n 'Create gateway': '创建网关',\r\n GateWay: '网关',\r\n 'Create Intermediate/Boundary Event': '创建中间/边界事件',\r\n 'Message start event': '消息开始事件',\r\n 'Timer start event': '定时开始事件',\r\n 'Conditional start event': '条件开始事件',\r\n 'Signal start event': '信号开始事件',\r\n 'Error start event': '错误开始事件',\r\n 'Escalation start event': '升级开始事件',\r\n 'Compensation start event': '补偿开始事件',\r\n 'Message start event (non-interrupting)': '消息开始事件(非中断)',\r\n 'Timer start event (non-interrupting)': '定时开始事件(非中断)',\r\n 'Conditional start event (non-interrupting)': '条件开始事件(非中断)',\r\n 'Signal start event (non-interrupting)': '信号开始事件(非中断)',\r\n 'Escalation start event (non-interrupting)': '升级开始事件(非中断)',\r\n 'Message intermediate catch event': '消息中间捕获事件',\r\n 'Message intermediate throw event': '消息中间抛出事件',\r\n 'Timer intermediate catch event': '定时中间捕获事件',\r\n 'Escalation intermediate throw event': '升级中间抛出事件',\r\n 'Conditional intermediate catch event': '条件中间捕获事件',\r\n 'Link intermediate catch event': '链接中间捕获事件',\r\n 'Link intermediate throw event': '链接中间抛出事件',\r\n 'Compensation intermediate throw event': '补偿中间抛出事件',\r\n 'Signal intermediate catch event': '信号中间捕获事件',\r\n 'Signal intermediate throw event': '信号中间抛出事件',\r\n 'Message end event': '消息结束事件',\r\n 'Escalation end event': '定时结束事件',\r\n 'Error end event': '错误结束事件',\r\n 'Cancel end event': '取消结束事件',\r\n 'Compensation end event': '补偿结束事件',\r\n 'Signal end event': '信号结束事件',\r\n 'Terminate end event': '终止结束事件',\r\n 'Message boundary event': '消息边界事件',\r\n 'Message boundary event (non-interrupting)': '消息边界事件(非中断)',\r\n 'Timer boundary event': '定时边界事件',\r\n 'Timer boundary event (non-interrupting)': '定时边界事件(非中断)',\r\n 'Escalation boundary event': '升级边界事件',\r\n 'Escalation boundary event (non-interrupting)': '升级边界事件(非中断)',\r\n 'Conditional boundary event': '条件边界事件',\r\n 'Conditional boundary event (non-interrupting)': '条件边界事件(非中断)',\r\n 'Error boundary event': '错误边界事件',\r\n 'Cancel boundary event': '取消边界事件',\r\n 'Signal boundary event': '信号边界事件',\r\n 'Signal boundary event (non-interrupting)': '信号边界事件(非中断)',\r\n 'Compensation boundary event': '补偿边界事件',\r\n 'Exclusive gateway': '互斥网关',\r\n 'Parallel gateway': '并行网关',\r\n 'Inclusive gateway': '相容网关',\r\n 'Complex gateway': '复杂网关',\r\n 'Event-based gateway': '事件网关',\r\n Transaction: '转运',\r\n 'Sub-process': '子流程',\r\n 'Event sub-process': '事件子流程',\r\n 'Collapsed pool': '折叠池',\r\n 'Expanded pool': '展开池',\r\n // Errors\r\n 'no parent for {element} in {parent}': '在{parent}里,{element}没有父类',\r\n 'no shape type specified': '没有指定的形状类型',\r\n 'flow elements must be children of pools/participants': '流元素必须是池/参与者的子类',\r\n 'out of bounds release': 'out of bounds release',\r\n 'more than {count} child lanes': '子道大于{count} ',\r\n 'element required': '元素不能为空',\r\n 'diagram not part of bpmn:Definitions': '流程图不符合bpmn规范',\r\n 'no diagram to display': '没有可展示的流程图',\r\n 'no process or collaboration to display': '没有可展示的流程/协作',\r\n 'element {element} referenced by {referenced}#{property} not yet drawn':\r\n '由{referenced}#{property}引用的{element}元素仍未绘制',\r\n 'already rendered {element}': '{element} 已被渲染',\r\n 'failed to import {element}': '导入{element}失败',\r\n //属性面板的参数\r\n Id: '编号',\r\n Name: '名称',\r\n General: '常规',\r\n Details: '详情',\r\n 'Message name': '消息名称',\r\n Message: '消息',\r\n Initiator: '创建者',\r\n 'Asynchronous continuations': '持续异步',\r\n 'Asynchronous before': '异步前',\r\n 'Asynchronous after': '异步后',\r\n 'Job configuration': '工作配置',\r\n Exclusive: '排除',\r\n 'Job priority': '工作优先级',\r\n 'Retry time cycle': '重试时间周期',\r\n Documentation: '文档',\r\n 'Element documentation': '元素文档',\r\n 'History configuration': '历史配置',\r\n 'History time to live': '历史的生存时间',\r\n Forms: '表单',\r\n 'Form key': '表单key',\r\n 'Form fields': '表单字段',\r\n 'Business key': '业务key',\r\n 'Form field': '表单字段',\r\n ID: '编号',\r\n Type: '类型',\r\n Label: '名称',\r\n 'Default value': '默认值',\r\n Validation: '校验',\r\n 'Add constraint': '添加约束',\r\n Config: '配置',\r\n Properties: '属性',\r\n 'Add property': '添加属性',\r\n Value: '值',\r\n Add: '添加',\r\n Values: '值',\r\n 'Add value': '添加值',\r\n Listeners: '监听器',\r\n 'Execution listener': '执行监听',\r\n 'Event type': '事件类型',\r\n 'Listener type': '监听器类型',\r\n 'Java class': 'Java类',\r\n Expression: '表达式',\r\n 'Must provide a value': '必须提供一个值',\r\n 'Delegate expression': '代理表达式',\r\n Script: '脚本',\r\n 'Script format': '脚本格式',\r\n 'Script type': '脚本类型',\r\n 'Inline script': '内联脚本',\r\n 'External script': '外部脚本',\r\n Resource: '资源',\r\n 'Field injection': '字段注入',\r\n Extensions: '扩展',\r\n 'Input/output': '输入/输出',\r\n 'Input parameters': '输入参数',\r\n 'Output parameters': '输出参数',\r\n Parameters: '参数',\r\n 'Output parameter': '输出参数',\r\n 'Timer definition type': '定时器定义类型',\r\n 'Timer definition': '定时器定义',\r\n Date: '日期',\r\n Duration: '持续',\r\n Cycle: '循环',\r\n Signal: '信号',\r\n 'Signal name': '信号名称',\r\n Escalation: '升级',\r\n Error: '错误',\r\n 'Link name': '链接名称',\r\n Condition: '条件名称',\r\n 'Variable name': '变量名称',\r\n 'Variable event': '变量事件',\r\n 'Specify more than one variable change event as a comma separated list.': '多个变量事件以逗号隔开',\r\n 'Wait for completion': '等待完成',\r\n 'Activity ref': '活动参考',\r\n 'Version tag': '版本标签',\r\n Executable: '可执行文件',\r\n 'External task configuration': '扩展任务配置',\r\n 'Task priority': '任务优先级',\r\n External: '外部',\r\n Connector: '连接器',\r\n 'Must configure Connector': '必须配置连接器',\r\n 'Connector Id': '连接器编号',\r\n Implementation: '实现方式',\r\n 'Field Injections': '字段注入',\r\n Fields: '字段',\r\n 'Result Variable': '结果变量',\r\n Topic: '主题',\r\n 'Configure Connector': '配置连接器',\r\n 'Input Parameter': '输入参数',\r\n Assignee: '代理人',\r\n 'Candidate Users': '候选用户',\r\n 'Candidate Groups': '候选组',\r\n 'Due Date': '到期时间',\r\n 'Follow Up Date': '跟踪日期',\r\n Priority: '优先级',\r\n 'The follow up date as an EL expression (e.g. ${someDate} or an ISO date (e.g. 2015-06-26T09:54:00)':\r\n '跟踪日期必须符合EL表达式,如: ${someDate} ,或者一个ISO标准日期,如:2015-06-26T09:54:00',\r\n 'The due date as an EL expression (e.g. ${someDate} or an ISO date (e.g. 2015-06-26T09:54:00)':\r\n '跟踪日期必须符合EL表达式,如: ${someDate} ,或者一个ISO标准日期,如:2015-06-26T09:54:00',\r\n Variables: '变量',\r\n 'Candidate Starter Configuration': '候选开始配置',\r\n 'Task Listener': '任务监听器',\r\n 'Candidate Starter Groups': '候选开始组',\r\n 'Candidate Starter Users': '候选开始用户',\r\n 'Tasklist Configuration': '任务列表配置',\r\n Startable: '启动',\r\n 'Specify more than one group as a comma separated list.': '指定多个组,用逗号分隔',\r\n 'Specify more than one user as a comma separated list.': '指定多个用户,用逗号分隔',\r\n 'This maps to the process definition key.': '这会映射为流程定义的键',\r\n 'CallActivity Type': '调用活动类型',\r\n 'Condition Type': '条件类型',\r\n 'Create UserTask': '创建用户任务',\r\n 'Create CallActivity': '创建调用活动',\r\n 'Called Element': '调用元素',\r\n 'Create data object reference': '创建数据对象引用',\r\n 'Create data store reference': '创建数据存储引用',\r\n 'Multi Instance': '多实例',\r\n 'Loop Cardinality': '实例数量',\r\n Collection: '任务参与人列表',\r\n 'Element Variable': '元素变量',\r\n 'Completion Condition': '完成条件',\r\n 'Participant multiplicity': '参与者多重性',\r\n 'Empty pool/participant': '空池/参与者列表',\r\n 'Append end event': '追加结束事件',\r\n 'Connect to other element': '连接到其他元素',\r\n Delete: '删除元素',\r\n 'Add text annotation': '添加文本注解',\r\n 'Open minimap': '打开小地图',\r\n 'Close minimap': '关闭小地图',\r\n};\r\n","import translations from './translations';\r\n\r\nexport default function customTranslate(template: string, replacements: Record<string, any>) {\r\n replacements = replacements || {};\r\n\r\n // Translate\r\n // @ts-ignore\r\n template = translations[template] || template;\r\n\r\n // Replace\r\n return template.replace(/{([^}]+)}/g, function (_, key) {\r\n return replacements[key] || '{' + key + '}';\r\n });\r\n}\r\n","import {\r\n AfterContentChecked,\r\n Component,\r\n ElementRef,\r\n EventEmitter,\r\n Input,\r\n OnChanges,\r\n OnDestroy,\r\n OnInit,\r\n Output,\r\n SimpleChanges,\r\n ViewChild,\r\n} from '@angular/core';\r\n// @ts-ignore\r\nimport * as BpmnModelTypes from 'bpmn-js/lib/model/Types';\r\n// @ts-ignore\r\nimport * as DiagramCoreTypes from 'diagram-js/lib/core/Types';\r\nimport ElementRegistry from 'diagram-js/lib/core/ElementRegistry';\r\n// @ts-ignore\r\nimport * as DiagramModelTypes from 'diagram-js/lib/model/Types';\r\n// @ts-ignore\r\nimport * as DiagramUtilTypes from 'diagram-js/lib/util/Types';\r\n\r\nimport type Canvas from 'diagram-js/lib/core/Canvas';\r\nimport type { ImportDoneEvent, ImportXMLResult } from 'bpmn-js/lib/BaseViewer';\r\nimport Viewer from 'bpmn-js/lib/Viewer';\r\nimport customTranslate from '../config/customTranslate';\r\n// @ts-ignore\r\nimport minimapModule from 'diagram-js-minimap';\r\nimport { from, Observable } from 'rxjs';\r\nimport BaseViewer from 'bpmn-js/lib/BaseViewer';\r\n// 预览拖动\r\nimport ZoomScrollModule from 'diagram-js/lib/navigation/zoomscroll';\r\nimport MoveCanvasModule from 'diagram-js/lib/navigation/movecanvas';\r\nimport ModelingModule from 'bpmn-js/lib/features/modeling';\r\nimport Modeling from 'bpmn-js/lib/features/modeling/Modeling';\r\n\r\n@Component({\r\n selector: 'rk-bpmn-viewer',\r\n templateUrl: './bpmn-viewer.component.html',\r\n styleUrls: ['../common.scss', './bpmn-viewer.component.scss'],\r\n})\r\nexport class RkBpmnViewerComponent implements OnInit, OnChanges, AfterContentChecked, OnDestroy {\r\n /**\r\n * 值 xml string\r\n */\r\n @Input() data!: string;\r\n /**\r\n * 监听渲染完成\r\n */\r\n @Output() afterRenderChange = new EventEmitter();\r\n\r\n constructor() {}\r\n\r\n @ViewChild('ref') private el?: ElementRef<HTMLDivElement>;\r\n private Viewer!: BaseViewer;\r\n private scale = 1;\r\n\r\n ngOnInit(): void {}\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (changes.data && changes.data.currentValue) {\r\n if (this.Viewer) {\r\n this.setDefaultData(this.data).subscribe();\r\n }\r\n }\r\n }\r\n\r\n ngAfterContentChecked() {\r\n const rect = this.el?.nativeElement.getBoundingClientRect();\r\n if (rect?.width && !this.Viewer) {\r\n this.onInitBpmn();\r\n this.registerEvents();\r\n this.setDefaultData(this.data).subscribe();\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.Viewer?.destroy();\r\n }\r\n\r\n /**\r\n * 初始化bpmnJS app\r\n */\r\n private onInitBpmn(): void {\r\n this.Viewer = new Viewer({\r\n container: this.el?.nativeElement,\r\n additionalModules: [\r\n minimapModule,\r\n ZoomScrollModule,\r\n MoveCanvasModule,\r\n // 汉化\r\n {\r\n translate: ['value', customTranslate],\r\n },\r\n ModelingModule,\r\n ],\r\n });\r\n }\r\n\r\n /**\r\n * 注册事件\r\n */\r\n private registerEvents(): void {\r\n // 注册导入完成事件\r\n this.Viewer.on<ImportDoneEvent>('import.done', ({ error }) => {\r\n if (!error) {\r\n // 加载完成后居中\r\n this.Viewer.get<Canvas>('canvas').zoom('fit-viewport', { x: 0, y: 0 });\r\n // 获得顶层节点\r\n // bpmnModeler.get('canvas').getRootElement()\r\n // 选中节点\r\n // bpmnModeler.get('selection').select(element)\r\n // 遍历所有节点\r\n // bpmnModeler.get('canvas').getRootElement()[0]\r\n\r\n // 设置某个节点颜色\r\n const elementRegistry = this.Viewer.get<ElementRegistry>('elementRegistry');\r\n const nodes = elementRegistry.getAll();\r\n if (nodes && nodes.length > 0) {\r\n const modeling = this.Viewer.get<Modeling>('modeling');\r\n this.afterRenderChange.emit({\r\n nodes,\r\n modeling,\r\n viewer: this.Viewer,\r\n });\r\n // const start = nodes.find((n) => n.businessObject.$attrs.description === 'start');\r\n // const manager = nodes.find((n) => n.businessObject.$attrs.description === 'leader');\r\n // if (start && manager && modeling) {\r\n // modeling.setColor([start, manager] as BpmnModelTypes.Element[], {\r\n // // fill: null,\r\n // stroke: '#1890ff',\r\n // });\r\n //\r\n // // 设置线的颜色\r\n // // 进线\r\n // const edgesIn = manager.incoming.filter((v: any) => !!start.outgoing.find((n: any) => n.id === v.id));\r\n //\r\n // // 出线\r\n // const edgesOut = manager.outgoing;\r\n // modeling.setColor([...edgesIn, ...edgesOut] as [BpmnModelTypes.Element], {\r\n // stroke: '#1890ff',\r\n // });\r\n // }\r\n }\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * 设置默认值\r\n */\r\n private setDefaultData(data: string): Observable<ImportXMLResult> {\r\n return from<Promise<ImportXMLResult>>(this.Viewer.importXML(data));\r\n }\r\n\r\n /**\r\n * 放大\r\n */\r\n zoomIn() {\r\n this.Viewer.get<Canvas>('canvas').zoom(++this.scale);\r\n }\r\n\r\n /**\r\n * 缩小\r\n */\r\n zoomOut() {\r\n if (this.scale > 1) {\r\n this.Viewer.get<Canvas>('canvas').zoom(--this.scale);\r\n }\r\n }\r\n\r\n /**\r\n * 重置位置\r\n */\r\n zoomReset() {\r\n this.Viewer.get<Canvas>('canvas').zoom('fit-viewport', { x: 0, y: 0 });\r\n }\r\n}\r\n","<div class=\"layout:col\">\r\n <div class=\"layout:header px-4\">\r\n <div class=\"btn-group\">\r\n <button class=\"btn icon\" title=\"放大\" (click)=\"zoomIn()\">\r\n <i icon type=\"plus-circle\"></i>\r\n </button>\r\n <button class=\"btn icon\" title=\"缩小\" (click)=\"zoomOut()\">\r\n <i icon type=\"minus-circle\"></i>\r\n </button>\r\n <button class=\"btn icon\" title=\"重置位置\" (click)=\"zoomReset()\">\r\n <i icon type=\"map-pin\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n <div class=\"layout:content\">\r\n <div #ref class=\"w-full h-full\"></div>\r\n </div>\r\n</div>\r\n","/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol */\n\nvar extendStatics = function(d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n }\n return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\n\nexport function __generator(thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++)\n ar = ar.concat(__read(arguments[i]));\n return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n}\n\nexport function __importDefault(mod) {\n return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport function __addDisposableResource(env, value, async) {\n if (value !== null && value !== void 0) {\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n var dispose, inner;\n if (async) {\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n dispose = value[Symbol.asyncDispose];\n }\n if (dispose === void 0) {\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n dispose = value[Symbol.dispose];\n if (async) inner = dispose;\n }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\n env.stack.push({ value: value, dispose: dispose, async: async });\n }\n else if (async) {\n env.stack.push({ async: true });\n }\n return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nexport function __disposeResources(env) {\n function fail(e) {\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n env.hasError = true;\n }\n function next() {\n while (env.stack.length) {\n var rec = env.stack.pop();\n try {\n var result = rec.dispose && rec.dispose.call(rec.value);\n if (rec.async) return Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n catch (e) {\n fail(e);\n }\n }\n if (env.hasError) throw env.error;\n }\n return next();\n}\n\nexport default {\n __extends,\n __assign,\n __rest,\n __decorate,\n __param,\n __metadata,\n __awaiter,\n __generator,\n __createBinding,\n __exportStar,\n __values,\n __read,\n __spread,\n __spreadArrays,\n __spreadArray,\n __await,\n __asyncGenerator,\n __asyncDelegator,\n __asyncValues,\n __makeTemplateObject,\n __importStar,\n __importDefault,\n __classPrivateFieldGet,\n __classPrivateFieldSet,\n __classPrivateFieldIn,\n __addDisposableResource,\n __disposeResources,\n};\n","/**\r\n * 默认值\r\n */\r\nexport const defaultBpmnData = `\r\n<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n<bpmn:definitions xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" >\r\n <bpmn:process id=\"Process_${uid()}\" isExecutable=\"false\" />\r\n <bpmndi:BPMNDiagram id=\"BPMNDiagram_${uid()}\">\r\n <bpmndi:BPMNPlane id=\"BPMNPlane_${uid()}\" bpmnElement=\"Process_${uid()}\" />\r\n </bpmndi:BPMNDiagram>\r\n</bpmn:definitions>`;\r\n\r\n/**\r\n * 生成随机字符串\r\n */\r\nexport function uid() {\r\n return Math.random().toString(36).substring(2);\r\n}\r\n","/*\r\n * @Description: 代码简介\r\n * @Author: Cyclone77\r\n * @E-Mail: cyclone77@126.com\r\n * @Date: 2024-04-24 09:48:29\r\n * @LastEditTime: 2024-04-24 09:48:29\r\n */\r\nimport {\r\n AfterContentChecked,\r\n Component,\r\n ElementRef,\r\n EventEmitter,\r\n Input,\r\n OnChanges,\r\n OnDestroy,\r\n OnInit,\r\n Output,\r\n SimpleChanges,\r\n TemplateRef,\r\n ViewChild,\r\n} from '@angular/core';\r\n\r\nimport * as BpmnModelTypes from 'bpmn-js/lib/model/Types';\r\n// @ts-ignore\r\nimport * as DiagramCoreTypes from 'diagram-js/lib/core/Types';\r\nimport ElementRegistry from 'diagram-js/lib/core/ElementRegistry';\r\n// @ts-ignore\r\nimport * as DiagramModelTypes from 'diagram-js/lib/model/Types';\r\n// @ts-ignore\r\nimport * as DiagramUtilTypes from 'diagram-js/lib/util/Types';\r\n// @ts-ignore\r\nimport * as BpmnUtilTypes from 'bpmn-js/lib/util/Types';\r\n// @ts-ignore\r\nimport * as CommandHandler from 'diagram-js/lib/command/CommandHandler';\r\n\r\nimport type Canvas from 'diagram-js/lib/core/Canvas';\r\nimport type { ImportDoneEvent, ImportXMLResult } from 'bpmn-js/lib/BaseViewer';\r\nimport BpmnJS from 'bpmn-js/lib/Modeler';\r\n// @ts-ignore\r\nimport gridModule from 'diagram-js-grid';\r\n// @ts-ignore\r\nimport minimapModule from 'diagram-js-minimap';\r\nimport { from, Observable } from 'rxjs';\r\nimport Modeling from 'bpmn-js/lib/features/modeling/Modeling';\r\nimport { defaultBpmnData, uid } from '../config/defaultXML';\r\nimport customTranslate from '../config/customTranslate';\r\n\r\n@Component({\r\n selector: 'rk-bpmn-editor',\r\n templateUrl: './bpmn-editor.component.html',\r\n styleUrls: ['../common.scss', './bpmn-editor.component.scss'],\r\n})\r\nexport class RkBpmnEditorComponent implements OnInit, OnChanges, AfterContentChecked, OnDestroy {\r\n /**\r\n * 值 xml string\r\n */\r\n @Input() data?: string;\r\n /**\r\n * 属性面板模板\r\n */\r\n @Input() propertiesTemplate?: TemplateRef<void>;\r\n /**\r\n * 选中元素变化时触发\r\n */\r\n @Output() selectionChange = new EventEmitter();\r\n\r\n constructor() {}\r\n\r\n @ViewChild('ref') private el?: ElementRef<HTMLDivElement>;\r\n @ViewChild('properties') private properties?: ElementRef<HTMLDivElement>;\r\n private bpmnJS!: BpmnJS;\r\n private scale = 1;\r\n targetElement?: any;\r\n\r\n ngOnInit(): void {}\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (changes.data && changes.data.currentValue) {\r\n if (this.bpmnJS) {\r\n this.setDefaultData(changes.data.currentValue).subscribe();\r\n }\r\n }\r\n }\r\n\r\n ngAfterContentChecked() {\r\n const rect = this.el?.nativeElement.getBoundingClientRect();\r\n if (rect?.width && !this.bpmnJS) {\r\n this.onInitBpmn();\r\n this.registerEvents();\r\n this.setDefaultData(this.data ?? defaultBpmnData).subscribe();\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.bpmnJS?.destroy();\r\n }\r\n\r\n /**\r\n * 初始化bpmnJS app\r\n */\r\n private onInitBpmn(): void {\r\n this.bpmnJS = new BpmnJS({\r\n container: this.el?.nativeElement,\r\n additionalModules: [\r\n gridModule,\r\n minimapModule,\r\n // 汉化\r\n {\r\n translate: ['value', customTranslate],\r\n },\r\n ],\r\n //添加属性面板\r\n propertiesPanel: {\r\n parent: this.properties?.nativeElement,\r\n },\r\n });\r\n }\r\n\r\n /**\r\n * 注册事件\r\n */\r\n private registerEvents(): void {\r\n // 注册导入完成事件\r\n this.bpmnJS.on<ImportDoneEvent>('import.done', ({ error }) => {\r\n if (!error) {\r\n // 加载完成后居中\r\n this.bpmnJS.get<Canvas>('canvas').zoom('fit-viewport', { x: 0, y: 0 });\r\n }\r\n });\r\n this.bpmnJS.on('selection.changed', (e: any) => {\r\n const [element] = e.newSelection;\r\n this.targetElement = element;\r\n this.bpmnJS.get<ElementRegistry>('elementRegistry');\r\n const modeling = this.bpmnJS.get<Modeling>('modeling');\r\n this.selectionChange.emit({ modeler: this.bpmnJS, modeling, element });\r\n });\r\n }\r\n\r\n /**\r\n * 更新选中元素节点标签值\r\n * @param modeling\r\n * @param element\r\n * @param data\r\n */\r\n public updateProperties(modeling: Modeling, element: BpmnModelTypes.Element, data: Record<string, string>) {\r\n modeling.updateProperties(element, data);\r\n }\r\n\r\n /**\r\n * 更新选中元素节点标签值\r\n * @param modeling\r\n * @param element\r\n * @param key\r\n * @param value\r\n */\r\n public updatePropertiesByKey(modeling: Modeling, element: BpmnModelTypes.Element, key: string, value: any) {\r\n modeling.updateProperties(element, { [key]: value });\r\n }\r\n\r\n /**\r\n * 设置默认值\r\n */\r\n private setDefaultData(data: string): Observable<ImportXMLResult> {\r\n return from<Promise<ImportXMLResult>>(this.bpmnJS.importXML(data));\r\n }\r\n\r\n /**\r\n * 导入模型\r\n * @param event\r\n */\r\n importModelXML(event: Event): void {\r\n const input = event.target as HTMLInputElement;\r\n if (!input.files?.length) {\r\n return;\r\n }\r\n\r\n const file = input.files.item(0)!;\r\n\r\n const reader = new FileReader();\r\n // 读取File对象中的文本信息,编码格式为UTF-8\r\n reader.readAsText(file, 'utf-8');\r\n reader.onload = () => {\r\n input.value = '';\r\n //读取完毕后将文本信息导入到Bpmn建模器\r\n this.setDefaultData(reader.result as string).subscribe(\r\n () => {},\r\n ({ error }) => {\r\n console.error('打开模型出错,请确认该模型符合Bpmn2.0规范');\r\n },\r\n );\r\n };\r\n }\r\n\r\n /**\r\n * 重置画板\r\n */\r\n resetDrawingBoard(): void {\r\n this.setDefaultData(defaultBpmnData).subscribe();\r\n }\r\n\r\n /**\r\n * 放大\r\n */\r\n zoomIn() {\r\n this.bpmnJS.get<Canvas>('canvas').zoom(++this.scale);\r\n }\r\n\r\n /**\r\n * 缩小\r\n */\r\n zoomOut() {\r\n if (this.scale > 1) {\r\n this.bpmnJS.get<Canvas>('canvas').zoom(--this.scale);\r\n }\r\n }\r\n\r\n /**\r\n * 重置位置\r\n */\r\n zoomReset() {\r\n this.bpmnJS.get<Canvas>('canvas').zoom('fit-viewport', { x: 0, y: 0 });\r\n }\r\n\r\n /**\r\n * 下载 .bpmn 格式\r\n */\r\n downloadBPMN(name?: string): void {\r\n this.bpmnJS.saveXML({ format: true }).then(({ xml }) => {\r\n if (xml) {\r\n // 把数据转换为URI,下载要用到的\r\n const encodedData = encodeURIComponent(xml);\r\n const href = `data:application/bpmn20-xml;charset=UTF-8,${encodedData}`;\r\n this.downloadFile(href, name ?? `diagram-${uid()}.bpmn`);\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * 下载 .svg 格式\r\n */\r\n downloadSVG(): void {\r\n this.bpmnJS.saveSVG().then(({ svg }) => {\r\n if (svg) {\r\n const svgBlob = new Blob([svg], {\r\n type: 'image/svg+xml',\r\n });\r\n this.downloadFile(URL.createObjectURL(svgBlob), `diagram-${uid()}.svg`);\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * 通过href下载文件\r\n */\r\n private downloadFile(href: string, filename: string): void {\r\n const tempLink = document.createElement('a');\r\n tempLink.style.display = 'none';\r\n tempLink.href = href;\r\n tempLink.setAttribute('download', filename);\r\n if (typeof tempLink.download === 'undefined') {\r\n tempLink.setAttribute('target', '_blank');\r\n }\r\n document.body.appendChild(tempLink);\r\n tempLink.click();\r\n document.body.removeChild(tempLink);\r\n }\r\n}\r\n","<div class=\"layout:col\">\r\n <div class=\"layout:header px-4\">\r\n <div class=\"btn-group\">\r\n <button class=\"btn icon\" title=\"导入模型 .bpmn\" (click)=\"fileRef.click()\">\r\n <input #fileRef type=\"file\" style=\"display: none\" accept=\".bpmn\" (change)=\"importModelXML($event)\" />\r\n <i icon type=\"folder-open\"></i>\r\n </button>\r\n <button class=\"btn icon\" title=\"重置画板\" (click)=\"resetDrawingBoard()\">\r\n <i icon type=\"reset\"></i>\r\n </button>\r\n </div>\r\n\r\n <div class=\"ml-4\">\r\n <div class=\"btn-group\">\r\n <button class=\"btn icon\" title=\"放大\" (click)=\"zoomIn()\">\r\n <i icon type=\"plus-circle\"></i>\r\n </button>\r\n <button class=\"btn icon\" title=\"缩小\" (click)=\"zoomOut()\">\r\n <i icon type=\"minus-circle\"></i>\r\n </button>\r\n <button class=\"btn icon\" title=\"重置位置\" (click)=\"zoomReset()\">\r\n <i icon type=\"map-pin\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n\r\n <div class=\"ml-4\">\r\n <div class=\"btn-group\">\r\n <button class=\"btn icon\" title=\"下载为.bpmn格式\" (click)=\"downloadBPMN()\">\r\n <i icon type=\"down-file\"></i>\r\n </button>\r\n <button class=\"btn icon\" title=\"下载为.svg格式\" (click)=\"downloadSVG()\">\r\n <i icon type=\"down-svg\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"layout:content layout:row\">\r\n <div class=\"layout:content\">\r\n <div #ref class=\"w-full h-full\"></div>\r\n </div>\r\n <div class=\"layout:aside\" *ngIf=\"propertiesTemplate\">\r\n <ng-template [ngTemplateOutlet]=\"propertiesTemplate\"></ng-template>\r\n </div>\r\n </div>\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { RkBpmnViewerComponent } from './bpmn-viewer/bpmn-viewer.component';\r\nimport { RkBpmnEditorComponent } from './bpmn-editor/bpmn-editor.component';\r\n\r\n@NgModule({\r\n declarations: [RkBpmnViewerComponent, RkBpmnEditorComponent],\r\n imports: [CommonModule],\r\n exports: [RkBpmnViewerComponent, RkBpmnEditorComponent],\r\n})\r\nexport class RkBpmnModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["EventEmitter","Viewer","minimapModule","ZoomScrollModule","MoveCanvasModule","ModelingModule","from","i0","Component","Input","Output","ViewChild","BpmnJS","gridModule","i1","CommonModule","NgModule"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"reskin-bpmn.umd.js","sources":["../../../library/bpmn/src/config/translations.ts","../../../library/bpmn/src/config/customTranslate.ts","../../../library/bpmn/src/bpmn-viewer/bpmn-viewer.component.ts","../../../library/bpmn/src/bpmn-viewer/bpmn-viewer.component.html","../../../node_modules/tslib/tslib.es6.mjs","../../../library/bpmn/src/config/defaultXML.ts","../../../library/bpmn/src/bpmn-editor/bpmn-editor.component.ts","../../../library/bpmn/src/bpmn-editor/bpmn-editor.component.html","../../../library/bpmn/src/bpmn.module.ts","../../../library/bpmn/reskin-bpmn.ts"],"sourcesContent":["/**\r\n * 写英文对应的中文内容\r\n */\r\nexport default {\r\n 'Activate global connect tool': '激活全局连接工具',\r\n 'Append {type}': '追加 {type}',\r\n 'Append endEvent': '追加 结束事件 ',\r\n 'Append task': '追加 任务',\r\n 'Append gateway': '追加 网关',\r\n 'Append intermediate/boundary event': '追加 中间/边界 事件',\r\n 'Add lane above': '在上面添加道',\r\n 'Divide into two lanes': '分割成两个道',\r\n 'Divide into three lanes': '分割成三个道',\r\n 'Add lane below': '在下面添加道',\r\n 'Append compensation activity': '追加补偿活动',\r\n 'Change type': '修改类型',\r\n 'Change element': '改变元素',\r\n 'Connect using association': '使用关联连接',\r\n 'Connect using sequence/message flow or association': '使用顺序/消息流或者关联连接',\r\n 'Connect using data input association': '使用数据输入关联连接',\r\n Remove: '移除',\r\n 'Activate hand tool': '激活抓手工具',\r\n 'Activate lasso tool': '激活套索工具',\r\n 'Activate create/remove space tool': '激活创建/删除空间工具',\r\n 'Create expanded sub-process': '创建扩展子过程',\r\n 'Create intermediate/boundary event': '创建中间抛出事件/边界事件',\r\n 'Create pool/participant': '创建池/参与者',\r\n 'Parallel multi-instance': '并行多重事件',\r\n 'Sequential multi-instance': '时序多重事件',\r\n 'Data object reference': '数据对象参考',\r\n 'Data store reference': '数据存储参考',\r\n Loop: '循环',\r\n 'Ad-hoc': '即席',\r\n 'Create {type}': '创建 {type}',\r\n 'Create task': '创建任务',\r\n 'Create start event': '创建开始事件',\r\n 'Create end event': '创建结束事件',\r\n 'Create group': '创建组',\r\n Task: '任务',\r\n 'Send task': '发送任务',\r\n 'Receive task': '接收任务',\r\n 'User task': '用户任务',\r\n 'Manual task': '手工任务',\r\n 'Business rule task': '业务规则任务',\r\n 'Service task': '服务任务',\r\n 'Script task': '脚本任务',\r\n 'Call activity': '调用活动',\r\n 'Sub-process (collapsed)': '子流程(折叠的)',\r\n 'Sub-process (expanded)': '子流程(展开的)',\r\n 'Start event': '开始事件',\r\n StartEvent: '开始事件',\r\n 'Intermediate throw event': '中间事件',\r\n 'End event': '结束事件',\r\n EndEvent: '结束事件',\r\n 'Create gateway': '创建网关',\r\n GateWay: '网关',\r\n 'Create Intermediate/Boundary Event': '创建中间/边界事件',\r\n 'Message start event': '消息开始事件',\r\n 'Timer start event': '定时开始事件',\r\n 'Conditional start event': '条件开始事件',\r\n 'Signal start event': '信号开始事件',\r\n 'Error start event': '错误开始事件',\r\n 'Escalation start event': '升级开始事件',\r\n 'Compensation start event': '补偿开始事件',\r\n 'Message start event (non-interrupting)': '消息开始事件(非中断)',\r\n 'Timer start event (non-interrupting)': '定时开始事件(非中断)',\r\n 'Conditional start event (non-interrupting)': '条件开始事件(非中断)',\r\n 'Signal start event (non-interrupting)': '信号开始事件(非中断)',\r\n 'Escalation start event (non-interrupting)': '升级开始事件(非中断)',\r\n 'Message intermediate catch event': '消息中间捕获事件',\r\n 'Message intermediate throw event': '消息中间抛出事件',\r\n 'Timer intermediate catch event': '定时中间捕获事件',\r\n 'Escalation intermediate throw event': '升级中间抛出事件',\r\n 'Conditional intermediate catch event': '条件中间捕获事件',\r\n 'Link intermediate catch event': '链接中间捕获事件',\r\n 'Link intermediate throw event': '链接中间抛出事件',\r\n 'Compensation intermediate throw event': '补偿中间抛出事件',\r\n 'Signal intermediate catch event': '信号中间捕获事件',\r\n 'Signal intermediate throw event': '信号中间抛出事件',\r\n 'Message end event': '消息结束事件',\r\n 'Escalation end event': '定时结束事件',\r\n 'Error end event': '错误结束事件',\r\n 'Cancel end event': '取消结束事件',\r\n 'Compensation end event': '补偿结束事件',\r\n 'Signal end event': '信号结束事件',\r\n 'Terminate end event': '终止结束事件',\r\n 'Message boundary event': '消息边界事件',\r\n 'Message boundary event (non-interrupting)': '消息边界事件(非中断)',\r\n 'Timer boundary event': '定时边界事件',\r\n 'Timer boundary event (non-interrupting)': '定时边界事件(非中断)',\r\n 'Escalation boundary event': '升级边界事件',\r\n 'Escalation boundary event (non-interrupting)': '升级边界事件(非中断)',\r\n 'Conditional boundary event': '条件边界事件',\r\n 'Conditional boundary event (non-interrupting)': '条件边界事件(非中断)',\r\n 'Error boundary event': '错误边界事件',\r\n 'Cancel boundary event': '取消边界事件',\r\n 'Signal boundary event': '信号边界事件',\r\n 'Signal boundary event (non-interrupting)': '信号边界事件(非中断)',\r\n 'Compensation boundary event': '补偿边界事件',\r\n 'Exclusive gateway': '互斥网关',\r\n 'Parallel gateway': '并行网关',\r\n 'Inclusive gateway': '相容网关',\r\n 'Complex gateway': '复杂网关',\r\n 'Event-based gateway': '事件网关',\r\n Transaction: '转运',\r\n 'Sub-process': '子流程',\r\n 'Event sub-process': '事件子流程',\r\n 'Collapsed pool': '折叠池',\r\n 'Expanded pool': '展开池',\r\n // Errors\r\n 'no parent for {element} in {parent}': '在{parent}里,{element}没有父类',\r\n 'no shape type specified': '没有指定的形状类型',\r\n 'flow elements must be children of pools/participants': '流元素必须是池/参与者的子类',\r\n 'out of bounds release': 'out of bounds release',\r\n 'more than {count} child lanes': '子道大于{count} ',\r\n 'element required': '元素不能为空',\r\n 'diagram not part of bpmn:Definitions': '流程图不符合bpmn规范',\r\n 'no diagram to display': '没有可展示的流程图',\r\n 'no process or collaboration to display': '没有可展示的流程/协作',\r\n 'element {element} referenced by {referenced}#{property} not yet drawn':\r\n '由{referenced}#{property}引用的{element}元素仍未绘制',\r\n 'already rendered {element}': '{element} 已被渲染',\r\n 'failed to import {element}': '导入{element}失败',\r\n //属性面板的参数\r\n Id: '编号',\r\n Name: '名称',\r\n General: '常规',\r\n Details: '详情',\r\n 'Message name': '消息名称',\r\n Message: '消息',\r\n Initiator: '创建者',\r\n 'Asynchronous continuations': '持续异步',\r\n 'Asynchronous before': '异步前',\r\n 'Asynchronous after': '异步后',\r\n 'Job configuration': '工作配置',\r\n Exclusive: '排除',\r\n 'Job priority': '工作优先级',\r\n 'Retry time cycle': '重试时间周期',\r\n Documentation: '文档',\r\n 'Element documentation': '元素文档',\r\n 'History configuration': '历史配置',\r\n 'History time to live': '历史的生存时间',\r\n Forms: '表单',\r\n 'Form key': '表单key',\r\n 'Form fields': '表单字段',\r\n 'Business key': '业务key',\r\n 'Form field': '表单字段',\r\n ID: '编号',\r\n Type: '类型',\r\n Label: '名称',\r\n 'Default value': '默认值',\r\n Validation: '校验',\r\n 'Add constraint': '添加约束',\r\n Config: '配置',\r\n Properties: '属性',\r\n 'Add property': '添加属性',\r\n Value: '值',\r\n Add: '添加',\r\n Values: '值',\r\n 'Add value': '添加值',\r\n Listeners: '监听器',\r\n 'Execution listener': '执行监听',\r\n 'Event type': '事件类型',\r\n 'Listener type': '监听器类型',\r\n 'Java class': 'Java类',\r\n Expression: '表达式',\r\n 'Must provide a value': '必须提供一个值',\r\n 'Delegate expression': '代理表达式',\r\n Script: '脚本',\r\n 'Script format': '脚本格式',\r\n 'Script type': '脚本类型',\r\n 'Inline script': '内联脚本',\r\n 'External script': '外部脚本',\r\n Resource: '资源',\r\n 'Field injection': '字段注入',\r\n Extensions: '扩展',\r\n 'Input/output': '输入/输出',\r\n 'Input parameters': '输入参数',\r\n 'Output parameters': '输出参数',\r\n Parameters: '参数',\r\n 'Output parameter': '输出参数',\r\n 'Timer definition type': '定时器定义类型',\r\n 'Timer definition': '定时器定义',\r\n Date: '日期',\r\n Duration: '持续',\r\n Cycle: '循环',\r\n Signal: '信号',\r\n 'Signal name': '信号名称',\r\n Escalation: '升级',\r\n Error: '错误',\r\n 'Link name': '链接名称',\r\n Condition: '条件名称',\r\n 'Variable name': '变量名称',\r\n 'Variable event': '变量事件',\r\n 'Specify more than one variable change event as a comma separated list.': '多个变量事件以逗号隔开',\r\n 'Wait for completion': '等待完成',\r\n 'Activity ref': '活动参考',\r\n 'Version tag': '版本标签',\r\n Executable: '可执行文件',\r\n 'External task configuration': '扩展任务配置',\r\n 'Task priority': '任务优先级',\r\n External: '外部',\r\n Connector: '连接器',\r\n 'Must configure Connector': '必须配置连接器',\r\n 'Connector Id': '连接器编号',\r\n Implementation: '实现方式',\r\n 'Field Injections': '字段注入',\r\n Fields: '字段',\r\n 'Result Variable': '结果变量',\r\n Topic: '主题',\r\n 'Configure Connector': '配置连接器',\r\n 'Input Parameter': '输入参数',\r\n Assignee: '代理人',\r\n 'Candidate Users': '候选用户',\r\n 'Candidate Groups': '候选组',\r\n 'Due Date': '到期时间',\r\n 'Follow Up Date': '跟踪日期',\r\n Priority: '优先级',\r\n 'The follow up date as an EL expression (e.g. ${someDate} or an ISO date (e.g. 2015-06-26T09:54:00)':\r\n '跟踪日期必须符合EL表达式,如: ${someDate} ,或者一个ISO标准日期,如:2015-06-26T09:54:00',\r\n 'The due date as an EL expression (e.g. ${someDate} or an ISO date (e.g. 2015-06-26T09:54:00)':\r\n '跟踪日期必须符合EL表达式,如: ${someDate} ,或者一个ISO标准日期,如:2015-06-26T09:54:00',\r\n Variables: '变量',\r\n 'Candidate Starter Configuration': '候选开始配置',\r\n 'Task Listener': '任务监听器',\r\n 'Candidate Starter Groups': '候选开始组',\r\n 'Candidate Starter Users': '候选开始用户',\r\n 'Tasklist Configuration': '任务列表配置',\r\n Startable: '启动',\r\n 'Specify more than one group as a comma separated list.': '指定多个组,用逗号分隔',\r\n 'Specify more than one user as a comma separated list.': '指定多个用户,用逗号分隔',\r\n 'This maps to the process definition key.': '这会映射为流程定义的键',\r\n 'CallActivity Type': '调用活动类型',\r\n 'Condition Type': '条件类型',\r\n 'Create UserTask': '创建用户任务',\r\n 'Create CallActivity': '创建调用活动',\r\n 'Called Element': '调用元素',\r\n 'Create data object reference': '创建数据对象引用',\r\n 'Create data store reference': '创建数据存储引用',\r\n 'Multi Instance': '多实例',\r\n 'Loop Cardinality': '实例数量',\r\n Collection: '任务参与人列表',\r\n 'Element Variable': '元素变量',\r\n 'Completion Condition': '完成条件',\r\n 'Participant multiplicity': '参与者多重性',\r\n 'Empty pool/participant': '空池/参与者列表',\r\n 'Append end event': '追加结束事件',\r\n 'Connect to other element': '连接到其他元素',\r\n Delete: '删除元素',\r\n 'Add text annotation': '添加文本注解',\r\n 'Open minimap': '打开小地图',\r\n 'Close minimap': '关闭小地图',\r\n};\r\n","import translations from './translations';\r\n\r\nexport default function customTranslate(template: string, replacements: Record<string, any>) {\r\n replacements = replacements || {};\r\n\r\n // Translate\r\n // @ts-ignore\r\n template = translations[template] || template;\r\n\r\n // Replace\r\n return template.replace(/{([^}]+)}/g, function (_, key) {\r\n return replacements[key] || '{' + key + '}';\r\n });\r\n}\r\n","import {\r\n AfterContentChecked,\r\n Component,\r\n ElementRef,\r\n EventEmitter,\r\n Input,\r\n OnChanges,\r\n OnDestroy,\r\n OnInit,\r\n Output,\r\n SimpleChanges,\r\n ViewChild,\r\n} from '@angular/core';\r\n// @ts-ignore\r\nimport * as BpmnModelTypes from 'bpmn-js/lib/model/Types';\r\n// @ts-ignore\r\nimport * as DiagramCoreTypes from 'diagram-js/lib/core/Types';\r\nimport ElementRegistry from 'diagram-js/lib/core/ElementRegistry';\r\n// @ts-ignore\r\nimport * as DiagramModelTypes from 'diagram-js/lib/model/Types';\r\n// @ts-ignore\r\nimport * as DiagramUtilTypes from 'diagram-js/lib/util/Types';\r\n\r\nimport type Canvas from 'diagram-js/lib/core/Canvas';\r\nimport type { ImportDoneEvent, ImportXMLResult } from 'bpmn-js/lib/BaseViewer';\r\nimport Viewer from 'bpmn-js/lib/Viewer';\r\nimport customTranslate from '../config/customTranslate';\r\n// @ts-ignore\r\nimport minimapModule from 'diagram-js-minimap';\r\nimport { from, Observable } from 'rxjs';\r\nimport BaseViewer from 'bpmn-js/lib/BaseViewer';\r\n// 预览拖动\r\nimport ZoomScrollModule from 'diagram-js/lib/navigation/zoomscroll';\r\nimport MoveCanvasModule from 'diagram-js/lib/navigation/movecanvas';\r\nimport ModelingModule from 'bpmn-js/lib/features/modeling';\r\nimport Modeling from 'bpmn-js/lib/features/modeling/Modeling';\r\n\r\n@Component({\r\n selector: 'rk-bpmn-viewer',\r\n templateUrl: './bpmn-viewer.component.html',\r\n styleUrls: ['../common.scss', './bpmn-viewer.component.scss'],\r\n})\r\nexport class RkBpmnViewerComponent implements OnInit, OnChanges, AfterContentChecked, OnDestroy {\r\n /**\r\n * 值 xml string\r\n */\r\n @Input() data!: string;\r\n /**\r\n * 监听渲染完成\r\n */\r\n @Output() afterRenderChange = new EventEmitter();\r\n\r\n constructor() {}\r\n\r\n @ViewChild('ref') private el?: ElementRef<HTMLDivElement>;\r\n private Viewer!: BaseViewer;\r\n private scale = 1;\r\n\r\n ngOnInit(): void {}\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (changes.data && changes.data.currentValue) {\r\n if (this.Viewer) {\r\n this.setDefaultData(this.data).subscribe();\r\n }\r\n }\r\n }\r\n\r\n ngAfterContentChecked() {\r\n const rect = this.el?.nativeElement.getBoundingClientRect();\r\n if (rect?.width && !this.Viewer) {\r\n this.onInitBpmn();\r\n this.registerEvents();\r\n this.setDefaultData(this.data).subscribe();\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.Viewer?.destroy();\r\n }\r\n\r\n /**\r\n * 初始化bpmnJS app\r\n */\r\n private onInitBpmn(): void {\r\n this.Viewer = new Viewer({\r\n container: this.el?.nativeElement,\r\n additionalModules: [\r\n minimapModule,\r\n ZoomScrollModule,\r\n MoveCanvasModule,\r\n // 汉化\r\n {\r\n translate: ['value', customTranslate],\r\n },\r\n ModelingModule,\r\n ],\r\n });\r\n }\r\n\r\n /**\r\n * 注册事件\r\n */\r\n private registerEvents(): void {\r\n // 注册导入完成事件\r\n this.Viewer.on<ImportDoneEvent>('import.done', ({ error }) => {\r\n if (!error) {\r\n // 加载完成后居中\r\n this.Viewer.get<Canvas>('canvas').zoom('fit-viewport', { x: 0, y: 0 });\r\n // 获得顶层节点\r\n // bpmnModeler.get('canvas').getRootElement()\r\n // 选中节点\r\n // bpmnModeler.get('selection').select(element)\r\n // 遍历所有节点\r\n // bpmnModeler.get('canvas').getRootElement()[0]\r\n\r\n // 设置某个节点颜色\r\n const elementRegistry = this.Viewer.get<ElementRegistry>('elementRegistry');\r\n const nodes = elementRegistry.getAll();\r\n if (nodes && nodes.length > 0) {\r\n const modeling = this.Viewer.get<Modeling>('modeling');\r\n this.afterRenderChange.emit({\r\n nodes,\r\n modeling,\r\n viewer: this.Viewer,\r\n });\r\n // const start = nodes.find((n) => n.businessObject.$attrs.description === 'start');\r\n // const manager = nodes.find((n) => n.businessObject.$attrs.description === 'leader');\r\n // if (start && manager && modeling) {\r\n // modeling.setColor([start, manager] as BpmnModelTypes.Element[], {\r\n // // fill: null,\r\n // stroke: '#1890ff',\r\n // });\r\n //\r\n // // 设置线的颜色\r\n // // 进线\r\n // const edgesIn = manager.incoming.filter((v: any) => !!start.outgoing.find((n: any) => n.id === v.id));\r\n //\r\n // // 出线\r\n // const edgesOut = manager.outgoing;\r\n // modeling.setColor([...edgesIn, ...edgesOut] as [BpmnModelTypes.Element], {\r\n // stroke: '#1890ff',\r\n // });\r\n // }\r\n }\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * 设置默认值\r\n */\r\n private setDefaultData(data: string): Observable<ImportXMLResult> {\r\n return from<Promise<ImportXMLResult>>(this.Viewer.importXML(data));\r\n }\r\n\r\n /**\r\n * 放大\r\n */\r\n zoomIn() {\r\n this.Viewer.get<Canvas>('canvas').zoom(++this.scale);\r\n }\r\n\r\n /**\r\n * 缩小\r\n */\r\n zoomOut() {\r\n if (this.scale > 1) {\r\n this.Viewer.get<Canvas>('canvas').zoom(--this.scale);\r\n }\r\n }\r\n\r\n /**\r\n * 重置位置\r\n */\r\n zoomReset() {\r\n this.Viewer.get<Canvas>('canvas').zoom('fit-viewport', { x: 0, y: 0 });\r\n }\r\n}\r\n","<div class=\"layout:col\">\r\n <div class=\"layout:header px-4\">\r\n <div class=\"btn-group\">\r\n <button class=\"btn icon\" title=\"放大\" (click)=\"zoomIn()\">\r\n <i icon type=\"plus-circle\"></i>\r\n </button>\r\n <button class=\"btn icon\" title=\"缩小\" (click)=\"zoomOut()\">\r\n <i icon type=\"minus-circle\"></i>\r\n </button>\r\n <button class=\"btn icon\" title=\"重置位置\" (click)=\"zoomReset()\">\r\n <i icon type=\"map-pin\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n <div class=\"layout:content\">\r\n <div #ref class=\"w-full h-full\"></div>\r\n </div>\r\n</div>\r\n","/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol */\n\nvar extendStatics = function(d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n }\n return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\n\nexport function __generator(thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++)\n ar = ar.concat(__read(arguments[i]));\n return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n}\n\nexport function __importDefault(mod) {\n return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport function __addDisposableResource(env, value, async) {\n if (value !== null && value !== void 0) {\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n var dispose, inner;\n if (async) {\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n dispose = value[Symbol.asyncDispose];\n }\n if (dispose === void 0) {\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n dispose = value[Symbol.dispose];\n if (async) inner = dispose;\n }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\n env.stack.push({ value: value, dispose: dispose, async: async });\n }\n else if (async) {\n env.stack.push({ async: true });\n }\n return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nexport function __disposeResources(env) {\n function fail(e) {\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n env.hasError = true;\n }\n function next() {\n while (env.stack.length) {\n var rec = env.stack.pop();\n try {\n var result = rec.dispose && rec.dispose.call(rec.value);\n if (rec.async) return Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n catch (e) {\n fail(e);\n }\n }\n if (env.hasError) throw env.error;\n }\n return next();\n}\n\nexport default {\n __extends,\n __assign,\n __rest,\n __decorate,\n __param,\n __metadata,\n __awaiter,\n __generator,\n __createBinding,\n __exportStar,\n __values,\n __read,\n __spread,\n __spreadArrays,\n __spreadArray,\n __await,\n __asyncGenerator,\n __asyncDelegator,\n __asyncValues,\n __makeTemplateObject,\n __importStar,\n __importDefault,\n __classPrivateFieldGet,\n __classPrivateFieldSet,\n __classPrivateFieldIn,\n __addDisposableResource,\n __disposeResources,\n};\n","/**\r\n * 默认值\r\n */\r\nexport const defaultBpmnData = `\r\n<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n<bpmn:definitions xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" >\r\n <bpmn:process id=\"Process_${uid()}\" isExecutable=\"false\" />\r\n <bpmndi:BPMNDiagram id=\"BPMNDiagram_${uid()}\">\r\n <bpmndi:BPMNPlane id=\"BPMNPlane_${uid()}\" bpmnElement=\"Process_${uid()}\" />\r\n </bpmndi:BPMNDiagram>\r\n</bpmn:definitions>`;\r\n\r\n/**\r\n * 生成随机字符串\r\n */\r\nexport function uid() {\r\n return Math.random().toString(36).substring(2);\r\n}\r\n","/*\n * @Description: 代码简介\n * @Author: Cyclone77\n * @E-Mail: cyclone77@126.com\n * @Date: 2024-04-24 09:48:29\n * @LastEditTime: 2024-04-24 09:48:29\n */\nimport {\n AfterContentChecked,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Output,\n SimpleChanges,\n TemplateRef,\n ViewChild,\n} from '@angular/core';\n\nimport * as BpmnModelTypes from 'bpmn-js/lib/model/Types';\n// @ts-ignore\nimport * as DiagramCoreTypes from 'diagram-js/lib/core/Types';\nimport ElementRegistry from 'diagram-js/lib/core/ElementRegistry';\n// @ts-ignore\nimport * as DiagramModelTypes from 'diagram-js/lib/model/Types';\n// @ts-ignore\nimport * as DiagramUtilTypes from 'diagram-js/lib/util/Types';\n// @ts-ignore\nimport * as BpmnUtilTypes from 'bpmn-js/lib/util/Types';\n// @ts-ignore\nimport * as CommandHandler from 'diagram-js/lib/command/CommandHandler';\n\nimport type Canvas from 'diagram-js/lib/core/Canvas';\nimport type { ImportDoneEvent, ImportXMLResult, SaveSVGResult, SaveXMLResult } from 'bpmn-js/lib/BaseViewer';\nimport BpmnJS from 'bpmn-js/lib/Modeler';\n// @ts-ignore\nimport gridModule from 'diagram-js-grid';\n// @ts-ignore\nimport minimapModule from 'diagram-js-minimap';\nimport { from, Observable } from 'rxjs';\nimport Modeling from 'bpmn-js/lib/features/modeling/Modeling';\nimport { defaultBpmnData, uid } from '../config/defaultXML';\nimport customTranslate from '../config/customTranslate';\n\n@Component({\n selector: 'rk-bpmn-editor',\n templateUrl: './bpmn-editor.component.html',\n styleUrls: ['../common.scss', './bpmn-editor.component.scss'],\n})\nexport class RkBpmnEditorComponent implements OnInit, OnChanges, AfterContentChecked, OnDestroy {\n /**\n * 值 xml string\n */\n @Input() data?: string;\n /**\n * 属性面板模板\n */\n @Input() propertiesTemplate?: TemplateRef<void>;\n /**\n * 选中元素变化时触发\n */\n @Output() selectionChange = new EventEmitter();\n\n constructor() {}\n\n @ViewChild('ref') private el?: ElementRef<HTMLDivElement>;\n @ViewChild('properties') private properties?: ElementRef<HTMLDivElement>;\n private bpmnJS!: BpmnJS;\n private scale = 1;\n targetElement?: any;\n\n ngOnInit(): void {}\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes.data && changes.data.currentValue) {\n if (this.bpmnJS) {\n this.setDefaultData(changes.data.currentValue).subscribe();\n }\n }\n }\n\n ngAfterContentChecked() {\n const rect = this.el?.nativeElement.getBoundingClientRect();\n if (rect?.width && !this.bpmnJS) {\n this.onInitBpmn();\n this.registerEvents();\n this.setDefaultData(this.data ?? defaultBpmnData).subscribe();\n }\n }\n\n ngOnDestroy(): void {\n this.bpmnJS?.destroy();\n }\n\n /**\n * 初始化bpmnJS app\n */\n private onInitBpmn(): void {\n this.bpmnJS = new BpmnJS({\n container: this.el?.nativeElement,\n additionalModules: [\n gridModule,\n minimapModule,\n // 汉化\n {\n translate: ['value', customTranslate],\n },\n ],\n //添加属性面板\n propertiesPanel: {\n parent: this.properties?.nativeElement,\n },\n });\n }\n\n /**\n * 注册事件\n */\n private registerEvents(): void {\n // 注册导入完成事件\n this.bpmnJS.on<ImportDoneEvent>('import.done', ({ error }) => {\n if (!error) {\n // 加载完成后居中\n this.bpmnJS.get<Canvas>('canvas').zoom('fit-viewport', { x: 0, y: 0 });\n }\n });\n this.bpmnJS.on('selection.changed', (e: any) => {\n const [element] = e.newSelection;\n this.targetElement = element;\n this.bpmnJS.get<ElementRegistry>('elementRegistry');\n const modeling = this.bpmnJS.get<Modeling>('modeling');\n this.selectionChange.emit({ modeler: this.bpmnJS, modeling, element });\n });\n }\n\n /**\n * 更新选中元素节点标签值\n * @param modeling\n * @param element\n * @param data\n */\n public updateProperties(modeling: Modeling, element: BpmnModelTypes.Element, data: Record<string, string>) {\n modeling.updateProperties(element, data);\n }\n\n /**\n * 更新选中元素节点标签值\n * @param modeling\n * @param element\n * @param key\n * @param value\n */\n public updatePropertiesByKey(modeling: Modeling, element: BpmnModelTypes.Element, key: string, value: any) {\n modeling.updateProperties(element, { [key]: value });\n }\n\n /**\n * 设置默认值\n */\n private setDefaultData(data: string): Observable<ImportXMLResult> {\n return from<Promise<ImportXMLResult>>(this.bpmnJS.importXML(data));\n }\n\n /**\n * 导入模型\n * @param event\n */\n importModelXML(event: Event): void {\n const input = event.target as HTMLInputElement;\n if (!input.files?.length) {\n return;\n }\n\n const file = input.files.item(0)!;\n\n const reader = new FileReader();\n // 读取File对象中的文本信息,编码格式为UTF-8\n reader.readAsText(file, 'utf-8');\n reader.onload = () => {\n input.value = '';\n //读取完毕后将文本信息导入到Bpmn建模器\n this.setDefaultData(reader.result as string).subscribe(\n () => {},\n ({ error }) => {\n console.error('打开模型出错,请确认该模型符合Bpmn2.0规范');\n },\n );\n };\n }\n\n /**\n * 重置画板\n */\n resetDrawingBoard(): void {\n this.setDefaultData(defaultBpmnData).subscribe();\n }\n\n /**\n * 放大\n */\n zoomIn() {\n this.bpmnJS.get<Canvas>('canvas').zoom(++this.scale);\n }\n\n /**\n * 缩小\n */\n zoomOut() {\n if (this.scale > 1) {\n this.bpmnJS.get<Canvas>('canvas').zoom(--this.scale);\n }\n }\n\n /**\n * 重置位置\n */\n zoomReset() {\n this.bpmnJS.get<Canvas>('canvas').zoom('fit-viewport', { x: 0, y: 0 });\n }\n\n /**\n * 保存当前 BPMN 图的 XML 表示\n *\n * 此方法用于将当前 BPMN 图的 XML 表示保存下来它可以接受一个可选参数 format,\n * 该参数指示是否应格式化 XML 输出当 format 设置为 true 时,XML 将以一种更易于阅读的格式输出;\n * 否则,它将以紧凑的形式输出\n *\n * @param format {boolean} - 可选参数,默认为 true如果设置为 true,保存的 XML 将被格式化以提高可读性\n * @returns {Promise<string>} - 返回一个 Promise,解析为 BPMN 图的 XML 字符串表示\n */\n saveXML(format: boolean = true): Promise<SaveXMLResult> {\n return this.bpmnJS.saveXML({ format });\n }\n\n /**\n * 下载 .bpmn 格式\n */\n downloadBPMN(name?: string): void {\n this.saveXML().then(({ xml }) => {\n if (xml) {\n // 把数据转换为URI,下载要用到的\n const encodedData = encodeURIComponent(xml);\n const href = `data:application/bpmn20-xml;charset=UTF-8,${encodedData}`;\n this.downloadFile(href, name ?? `diagram-${uid()}.bpmn`);\n }\n });\n }\n\n /**\n * 保存SVG图形\n *\n * 此方法用于将当前图表以SVG格式保存它不接受任何参数\n * 返回一个Promise对象,该Promise解析为SaveSVGResult类型的结果\n * 主要用于需要以SVG格式导出或保存当前图表的场景\n */\n saveSVG(): Promise<SaveSVGResult> {\n return this.bpmnJS.saveSVG();\n }\n\n /**\n * 下载 .svg 格式\n */\n downloadSVG(): void {\n this.saveSVG().then(({ svg }) => {\n if (svg) {\n const svgBlob = new Blob([svg], {\n type: 'image/svg+xml',\n });\n this.downloadFile(URL.createObjectURL(svgBlob), `diagram-${uid()}.svg`);\n }\n });\n }\n\n /**\n * 通过href下载文件\n */\n private downloadFile(href: string, filename: string): void {\n const tempLink = document.createElement('a');\n tempLink.style.display = 'none';\n tempLink.href = href;\n tempLink.setAttribute('download', filename);\n if (typeof tempLink.download === 'undefined') {\n tempLink.setAttribute('target', '_blank');\n }\n document.body.appendChild(tempLink);\n tempLink.click();\n document.body.removeChild(tempLink);\n }\n}\n","<div class=\"layout:col\">\r\n <div class=\"layout:header px-4\">\r\n <div class=\"btn-group\">\r\n <button class=\"btn icon\" title=\"导入模型 .bpmn\" (click)=\"fileRef.click()\">\r\n <input #fileRef type=\"file\" style=\"display: none\" accept=\".bpmn\" (change)=\"importModelXML($event)\" />\r\n <i icon type=\"folder-open\"></i>\r\n </button>\r\n <button class=\"btn icon\" title=\"重置画板\" (click)=\"resetDrawingBoard()\">\r\n <i icon type=\"reset\"></i>\r\n </button>\r\n </div>\r\n\r\n <div class=\"ml-4\">\r\n <div class=\"btn-group\">\r\n <button class=\"btn icon\" title=\"放大\" (click)=\"zoomIn()\">\r\n <i icon type=\"plus-circle\"></i>\r\n </button>\r\n <button class=\"btn icon\" title=\"缩小\" (click)=\"zoomOut()\">\r\n <i icon type=\"minus-circle\"></i>\r\n </button>\r\n <button class=\"btn icon\" title=\"重置位置\" (click)=\"zoomReset()\">\r\n <i icon type=\"map-pin\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n\r\n <div class=\"ml-4\">\r\n <div class=\"btn-group\">\r\n <button class=\"btn icon\" title=\"下载为.bpmn格式\" (click)=\"downloadBPMN()\">\r\n <i icon type=\"down-file\"></i>\r\n </button>\r\n <button class=\"btn icon\" title=\"下载为.svg格式\" (click)=\"downloadSVG()\">\r\n <i icon type=\"down-svg\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"layout:content layout:row\">\r\n <div class=\"layout:content\">\r\n <div #ref class=\"w-full h-full\"></div>\r\n </div>\r\n <div class=\"layout:aside\" *ngIf=\"propertiesTemplate\">\r\n <ng-template [ngTemplateOutlet]=\"propertiesTemplate\"></ng-template>\r\n </div>\r\n </div>\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { RkBpmnViewerComponent } from './bpmn-viewer/bpmn-viewer.component';\r\nimport { RkBpmnEditorComponent } from './bpmn-editor/bpmn-editor.component';\r\n\r\n@NgModule({\r\n declarations: [RkBpmnViewerComponent, RkBpmnEditorComponent],\r\n imports: [CommonModule],\r\n exports: [RkBpmnViewerComponent, RkBpmnEditorComponent],\r\n})\r\nexport class RkBpmnModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["EventEmitter","Viewer","minimapModule","ZoomScrollModule","MoveCanvasModule","ModelingModule","from","i0","Component","Input","Output","ViewChild","BpmnJS","gridModule","i1","CommonModule","NgModule"],"mappings":"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"}
|
package/esm2015/public-api.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
export * from './src/bpmn.module';
|
|
2
2
|
export * from './src/bpmn-editor/bpmn-editor.component';
|
|
3
3
|
export * from './src/bpmn-viewer/bpmn-viewer.component';
|
|
4
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYnJhcnkvYnBtbi9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyx5Q0FBeUMsQ0FBQztBQUN4RCxjQUFjLHlDQUF5QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9zcmMvYnBtbi5tb2R1bGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL3NyYy9icG1uLWVkaXRvci9icG1uLWVkaXRvci5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL3NyYy9icG1uLXZpZXdlci9icG1uLXZpZXdlci5jb21wb25lbnQnO1xyXG4iXX0=
|
|
@@ -158,11 +158,24 @@ export class RkBpmnEditorComponent {
|
|
|
158
158
|
zoomReset() {
|
|
159
159
|
this.bpmnJS.get('canvas').zoom('fit-viewport', { x: 0, y: 0 });
|
|
160
160
|
}
|
|
161
|
+
/**
|
|
162
|
+
* 保存当前 BPMN 图的 XML 表示
|
|
163
|
+
*
|
|
164
|
+
* 此方法用于将当前 BPMN 图的 XML 表示保存下来它可以接受一个可选参数 format,
|
|
165
|
+
* 该参数指示是否应格式化 XML 输出当 format 设置为 true 时,XML 将以一种更易于阅读的格式输出;
|
|
166
|
+
* 否则,它将以紧凑的形式输出
|
|
167
|
+
*
|
|
168
|
+
* @param format {boolean} - 可选参数,默认为 true如果设置为 true,保存的 XML 将被格式化以提高可读性
|
|
169
|
+
* @returns {Promise<string>} - 返回一个 Promise,解析为 BPMN 图的 XML 字符串表示
|
|
170
|
+
*/
|
|
171
|
+
saveXML(format = true) {
|
|
172
|
+
return this.bpmnJS.saveXML({ format });
|
|
173
|
+
}
|
|
161
174
|
/**
|
|
162
175
|
* 下载 .bpmn 格式
|
|
163
176
|
*/
|
|
164
177
|
downloadBPMN(name) {
|
|
165
|
-
this.
|
|
178
|
+
this.saveXML().then(({ xml }) => {
|
|
166
179
|
if (xml) {
|
|
167
180
|
// 把数据转换为URI,下载要用到的
|
|
168
181
|
const encodedData = encodeURIComponent(xml);
|
|
@@ -171,11 +184,21 @@ export class RkBpmnEditorComponent {
|
|
|
171
184
|
}
|
|
172
185
|
});
|
|
173
186
|
}
|
|
187
|
+
/**
|
|
188
|
+
* 保存SVG图形
|
|
189
|
+
*
|
|
190
|
+
* 此方法用于将当前图表以SVG格式保存它不接受任何参数
|
|
191
|
+
* 返回一个Promise对象,该Promise解析为SaveSVGResult类型的结果
|
|
192
|
+
* 主要用于需要以SVG格式导出或保存当前图表的场景
|
|
193
|
+
*/
|
|
194
|
+
saveSVG() {
|
|
195
|
+
return this.bpmnJS.saveSVG();
|
|
196
|
+
}
|
|
174
197
|
/**
|
|
175
198
|
* 下载 .svg 格式
|
|
176
199
|
*/
|
|
177
200
|
downloadSVG() {
|
|
178
|
-
this.
|
|
201
|
+
this.saveSVG().then(({ svg }) => {
|
|
179
202
|
if (svg) {
|
|
180
203
|
const svgBlob = new Blob([svg], {
|
|
181
204
|
type: 'image/svg+xml',
|
|
@@ -222,4 +245,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
|
|
|
222
245
|
type: ViewChild,
|
|
223
246
|
args: ['properties']
|
|
224
247
|
}] } });
|
|
225
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnBtbi1lZGl0b3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicmFyeS9icG1uL3NyYy9icG1uLWVkaXRvci9icG1uLWVkaXRvci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWJyYXJ5L2JwbW4vc3JjL2JwbW4tZWRpdG9yL2JwbW4tZWRpdG9yLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRztBQUNILE9BQU8sRUFFSCxTQUFTLEVBRVQsWUFBWSxFQUNaLEtBQUssRUFJTCxNQUFNLEVBR04sU0FBUyxHQUNaLE1BQU0sZUFBZSxDQUFDO0FBaUJ2QixPQUFPLE1BQU0sTUFBTSxxQkFBcUIsQ0FBQztBQUN6QyxhQUFhO0FBQ2IsT0FBTyxVQUFVLE1BQU0saUJBQWlCLENBQUM7QUFDekMsYUFBYTtBQUNiLE9BQU8sYUFBYSxNQUFNLG9CQUFvQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxJQUFJLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFFeEMsT0FBTyxFQUFFLGVBQWUsRUFBRSxHQUFHLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUM1RCxPQUFPLGVBQWUsTUFBTSwyQkFBMkIsQ0FBQzs7O0FBT3hELE1BQU0sT0FBTyxxQkFBcUI7SUFjOUI7UUFMQTs7V0FFRztRQUNPLG9CQUFlLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQU92QyxVQUFLLEdBQUcsQ0FBQyxDQUFDO0lBTEgsQ0FBQztJQVFoQixRQUFRLEtBQVUsQ0FBQztJQUVuQixXQUFXLENBQUMsT0FBc0I7UUFDOUIsSUFBSSxPQUFPLENBQUMsSUFBSSxJQUFJLE9BQU8sQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQzNDLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRTtnQkFDYixJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsU0FBUyxF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QyxLQUFLO2dCQUNpQixVQUFVO3NCQUExQyxTQUFTO3VCQUFDLFlBQVkiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG4gKiBARGVzY3JpcHRpb246IOS7o+eggeeugOS7i1xyXG4gKiBAQXV0aG9yOiBDeWNsb25lNzdcclxuICogQEUtTWFpbDogY3ljbG9uZTc3QDEyNi5jb21cclxuICogQERhdGU6IDIwMjQtMDQtMjQgMDk6NDg6MjlcclxuICogQExhc3RFZGl0VGltZTogMjAyNC0wNC0yNCAwOTo0ODoyOVxyXG4gKi9cclxuaW1wb3J0IHtcclxuICAgIEFmdGVyQ29udGVudENoZWNrZWQsXHJcbiAgICBDb21wb25lbnQsXHJcbiAgICBFbGVtZW50UmVmLFxyXG4gICAgRXZlbnRFbWl0dGVyLFxyXG4gICAgSW5wdXQsXHJcbiAgICBPbkNoYW5nZXMsXHJcbiAgICBPbkRlc3Ryb3ksXHJcbiAgICBPbkluaXQsXHJcbiAgICBPdXRwdXQsXHJcbiAgICBTaW1wbGVDaGFuZ2VzLFxyXG4gICAgVGVtcGxhdGVSZWYsXHJcbiAgICBWaWV3Q2hpbGQsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQgKiBhcyBCcG1uTW9kZWxUeXBlcyBmcm9tICdicG1uLWpzL2xpYi9tb2RlbC9UeXBlcyc7XHJcbi8vIEB0cy1pZ25vcmVcclxuaW1wb3J0ICogYXMgRGlhZ3JhbUNvcmVUeXBlcyBmcm9tICdkaWFncmFtLWpzL2xpYi9jb3JlL1R5cGVzJztcclxuaW1wb3J0IEVsZW1lbnRSZWdpc3RyeSBmcm9tICdkaWFncmFtLWpzL2xpYi9jb3JlL0VsZW1lbnRSZWdpc3RyeSc7XHJcbi8vIEB0cy1pZ25vcmVcclxuaW1wb3J0ICogYXMgRGlhZ3JhbU1vZGVsVHlwZXMgZnJvbSAnZGlhZ3JhbS1qcy9saWIvbW9kZWwvVHlwZXMnO1xyXG4vLyBAdHMtaWdub3JlXHJcbmltcG9ydCAqIGFzIERpYWdyYW1VdGlsVHlwZXMgZnJvbSAnZGlhZ3JhbS1qcy9saWIvdXRpbC9UeXBlcyc7XHJcbi8vIEB0cy1pZ25vcmVcclxuaW1wb3J0ICogYXMgQnBtblV0aWxUeXBlcyBmcm9tICdicG1uLWpzL2xpYi91dGlsL1R5cGVzJztcclxuLy8gQHRzLWlnbm9yZVxyXG5pbXBvcnQgKiBhcyBDb21tYW5kSGFuZGxlciBmcm9tICdkaWFncmFtLWpzL2xpYi9jb21tYW5kL0NvbW1hbmRIYW5kbGVyJztcclxuXHJcbmltcG9ydCB0eXBlIENhbnZhcyBmcm9tICdkaWFncmFtLWpzL2xpYi9jb3JlL0NhbnZhcyc7XHJcbmltcG9ydCB0eXBlIHsgSW1wb3J0RG9uZUV2ZW50LCBJbXBvcnRYTUxSZXN1bHQgfSBmcm9tICdicG1uLWpzL2xpYi9CYXNlVmlld2VyJztcclxuaW1wb3J0IEJwbW5KUyBmcm9tICdicG1uLWpzL2xpYi9Nb2RlbGVyJztcclxuLy8gQHRzLWlnbm9yZVxyXG5pbXBvcnQgZ3JpZE1vZHVsZSBmcm9tICdkaWFncmFtLWpzLWdyaWQnO1xyXG4vLyBAdHMtaWdub3JlXHJcbmltcG9ydCBtaW5pbWFwTW9kdWxlIGZyb20gJ2RpYWdyYW0tanMtbWluaW1hcCc7XHJcbmltcG9ydCB7IGZyb20sIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IE1vZGVsaW5nIGZyb20gJ2JwbW4tanMvbGliL2ZlYXR1cmVzL21vZGVsaW5nL01vZGVsaW5nJztcclxuaW1wb3J0IHsgZGVmYXVsdEJwbW5EYXRhLCB1aWQgfSBmcm9tICcuLi9jb25maWcvZGVmYXVsdFhNTCc7XHJcbmltcG9ydCBjdXN0b21UcmFuc2xhdGUgZnJvbSAnLi4vY29uZmlnL2N1c3RvbVRyYW5zbGF0ZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAncmstYnBtbi1lZGl0b3InLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL2JwbW4tZWRpdG9yLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuLi9jb21tb24uc2NzcycsICcuL2JwbW4tZWRpdG9yLmNvbXBvbmVudC5zY3NzJ10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBSa0JwbW5FZGl0b3JDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcywgQWZ0ZXJDb250ZW50Q2hlY2tlZCwgT25EZXN0cm95IHtcclxuICAgIC8qKlxyXG4gICAgICog5YC8IHhtbCBzdHJpbmdcclxuICAgICAqL1xyXG4gICAgQElucHV0KCkgZGF0YT86IHN0cmluZztcclxuICAgIC8qKlxyXG4gICAgICog5bGe5oCn6Z2i5p2/5qih5p2/XHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpIHByb3BlcnRpZXNUZW1wbGF0ZT86IFRlbXBsYXRlUmVmPHZvaWQ+O1xyXG4gICAgLyoqXHJcbiAgICAgKiDpgInkuK3lhYPntKDlj5jljJbml7bop6blj5FcclxuICAgICAqL1xyXG4gICAgQE91dHB1dCgpIHNlbGVjdGlvbkNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcigpIHt9XHJcblxyXG4gICAgQFZpZXdDaGlsZCgncmVmJykgcHJpdmF0ZSBlbD86IEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+O1xyXG4gICAgQFZpZXdDaGlsZCgncHJvcGVydGllcycpIHByaXZhdGUgcHJvcGVydGllcz86IEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+O1xyXG4gICAgcHJpdmF0ZSBicG1uSlMhOiBCcG1uSlM7XHJcbiAgICBwcml2YXRlIHNjYWxlID0gMTtcclxuICAgIHRhcmdldEVsZW1lbnQ/OiBhbnk7XHJcblxyXG4gICAgbmdPbkluaXQoKTogdm9pZCB7fVxyXG5cclxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcclxuICAgICAgICBpZiAoY2hhbmdlcy5kYXRhICYmIGNoYW5nZXMuZGF0YS5jdXJyZW50VmFsdWUpIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMuYnBtbkpTKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNldERlZmF1bHREYXRhKGNoYW5nZXMuZGF0YS5jdXJyZW50VmFsdWUpLnN1YnNjcmliZSgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIG5nQWZ0ZXJDb250ZW50Q2hlY2tlZCgpIHtcclxuICAgICAgICBjb25zdCByZWN0ID0gdGhpcy5lbD8ubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcclxuICAgICAgICBpZiAocmVjdD8ud2lkdGggJiYgIXRoaXMuYnBtbkpTKSB7XHJcbiAgICAgICAgICAgIHRoaXMub25Jbml0QnBtbigpO1xyXG4gICAgICAgICAgICB0aGlzLnJlZ2lzdGVyRXZlbnRzKCk7XHJcbiAgICAgICAgICAgIHRoaXMuc2V0RGVmYXVsdERhdGEodGhpcy5kYXRhID8/IGRlZmF1bHRCcG1uRGF0YSkuc3Vic2NyaWJlKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuYnBtbkpTPy5kZXN0cm95KCk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiDliJ3lp4vljJZicG1uSlMgYXBwXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgb25Jbml0QnBtbigpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmJwbW5KUyA9IG5ldyBCcG1uSlMoe1xyXG4gICAgICAgICAgICBjb250YWluZXI6IHRoaXMuZWw/Lm5hdGl2ZUVsZW1lbnQsXHJcbiAgICAgICAgICAgIGFkZGl0aW9uYWxNb2R1bGVzOiBbXHJcbiAgICAgICAgICAgICAgICBncmlkTW9kdWxlLFxyXG4gICAgICAgICAgICAgICAgbWluaW1hcE1vZHVsZSxcclxuICAgICAgICAgICAgICAgIC8vIOaxieWMllxyXG4gICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgIHRyYW5zbGF0ZTogWyd2YWx1ZScsIGN1c3RvbVRyYW5zbGF0ZV0sXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBdLFxyXG4gICAgICAgICAgICAvL+a3u+WKoOWxnuaAp+mdouadv1xyXG4gICAgICAgICAgICBwcm9wZXJ0aWVzUGFuZWw6IHtcclxuICAgICAgICAgICAgICAgIHBhcmVudDogdGhpcy5wcm9wZXJ0aWVzPy5uYXRpdmVFbGVtZW50LFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICog5rOo5YaM5LqL5Lu2XHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgcmVnaXN0ZXJFdmVudHMoKTogdm9pZCB7XHJcbiAgICAgICAgLy8g5rOo5YaM5a+85YWl5a6M5oiQ5LqL5Lu2XHJcbiAgICAgICAgdGhpcy5icG1uSlMub248SW1wb3J0RG9uZUV2ZW50PignaW1wb3J0LmRvbmUnLCAoeyBlcnJvciB9KSA9PiB7XHJcbiAgICAgICAgICAgIGlmICghZXJyb3IpIHtcclxuICAgICAgICAgICAgICAgIC8vIOWKoOi9veWujOaIkOWQjuWxheS4rVxyXG4gICAgICAgICAgICAgICAgdGhpcy5icG1uSlMuZ2V0PENhbnZhcz4oJ2NhbnZhcycpLnpvb20oJ2ZpdC12aWV3cG9ydCcsIHsgeDogMCwgeTogMCB9KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHRoaXMuYnBtbkpTLm9uKCdzZWxlY3Rpb24uY2hhbmdlZCcsIChlOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgY29uc3QgW2VsZW1lbnRdID0gZS5uZXdTZWxlY3Rpb247XHJcbiAgICAgICAgICAgIHRoaXMudGFyZ2V0RWxlbWVudCA9IGVsZW1lbnQ7XHJcbiAgICAgICAgICAgIHRoaXMuYnBtbkpTLmdldDxFbGVtZW50UmVnaXN0cnk+KCdlbGVtZW50UmVnaXN0cnknKTtcclxuICAgICAgICAgICAgY29uc3QgbW9kZWxpbmcgPSB0aGlzLmJwbW5KUy5nZXQ8TW9kZWxpbmc+KCdtb2RlbGluZycpO1xyXG4gICAgICAgICAgICB0aGlzLnNlbGVjdGlvbkNoYW5nZS5lbWl0KHsgbW9kZWxlcjogdGhpcy5icG1uSlMsIG1vZGVsaW5nLCBlbGVtZW50IH0pO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICog5pu05paw6YCJ5Lit5YWD57Sg6IqC54K55qCH562+5YC8XHJcbiAgICAgKiBAcGFyYW0gbW9kZWxpbmdcclxuICAgICAqIEBwYXJhbSBlbGVtZW50XHJcbiAgICAgKiBAcGFyYW0gZGF0YVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgdXBkYXRlUHJvcGVydGllcyhtb2RlbGluZzogTW9kZWxpbmcsIGVsZW1lbnQ6IEJwbW5Nb2RlbFR5cGVzLkVsZW1lbnQsIGRhdGE6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4pIHtcclxuICAgICAgICBtb2RlbGluZy51cGRhdGVQcm9wZXJ0aWVzKGVsZW1lbnQsIGRhdGEpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICog5pu05paw6YCJ5Lit5YWD57Sg6IqC54K55qCH562+5YC8XHJcbiAgICAgKiBAcGFyYW0gbW9kZWxpbmdcclxuICAgICAqIEBwYXJhbSBlbGVtZW50XHJcbiAgICAgKiBAcGFyYW0ga2V5XHJcbiAgICAgKiBAcGFyYW0gdmFsdWVcclxuICAgICAqL1xyXG4gICAgcHVibGljIHVwZGF0ZVByb3BlcnRpZXNCeUtleShtb2RlbGluZzogTW9kZWxpbmcsIGVsZW1lbnQ6IEJwbW5Nb2RlbFR5cGVzLkVsZW1lbnQsIGtleTogc3RyaW5nLCB2YWx1ZTogYW55KSB7XHJcbiAgICAgICAgbW9kZWxpbmcudXBkYXRlUHJvcGVydGllcyhlbGVtZW50LCB7IFtrZXldOiB2YWx1ZSB9KTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIOiuvue9rum7mOiupOWAvFxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIHNldERlZmF1bHREYXRhKGRhdGE6IHN0cmluZyk6IE9ic2VydmFibGU8SW1wb3J0WE1MUmVzdWx0PiB7XHJcbiAgICAgICAgcmV0dXJuIGZyb208UHJvbWlzZTxJbXBvcnRYTUxSZXN1bHQ+Pih0aGlzLmJwbW5KUy5pbXBvcnRYTUwoZGF0YSkpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICog5a+85YWl5qih5Z6LXHJcbiAgICAgKiBAcGFyYW0gZXZlbnRcclxuICAgICAqL1xyXG4gICAgaW1wb3J0TW9kZWxYTUwoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XHJcbiAgICAgICAgY29uc3QgaW5wdXQgPSBldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudDtcclxuICAgICAgICBpZiAoIWlucHV0LmZpbGVzPy5sZW5ndGgpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY29uc3QgZmlsZSA9IGlucHV0LmZpbGVzLml0ZW0oMCkhO1xyXG5cclxuICAgICAgICBjb25zdCByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpO1xyXG4gICAgICAgIC8vIOivu+WPlkZpbGXlr7nosaHkuK3nmoTmlofmnKzkv6Hmga/vvIznvJbnoIHmoLzlvI/kuLpVVEYtOFxyXG4gICAgICAgIHJlYWRlci5yZWFkQXNUZXh0KGZpbGUsICd1dGYtOCcpO1xyXG4gICAgICAgIHJlYWRlci5vbmxvYWQgPSAoKSA9PiB7XHJcbiAgICAgICAgICAgIGlucHV0LnZhbHVlID0gJyc7XHJcbiAgICAgICAgICAgIC8v6K+75Y+W5a6M5q+V5ZCO5bCG5paH5pys5L+h5oGv5a+85YWl5YiwQnBtbuW7uuaooeWZqFxyXG4gICAgICAgICAgICB0aGlzLnNldERlZmF1bHREYXRhKHJlYWRlci5yZXN1bHQgYXMgc3RyaW5nKS5zdWJzY3JpYmUoXHJcbiAgICAgICAgICAgICAgICAoKSA9PiB7fSxcclxuICAgICAgICAgICAgICAgICh7IGVycm9yIH0pID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKCfmiZPlvIDmqKHlnovlh7rplJks6K+356Gu6K6k6K+l5qih5Z6L56ym5ZCIQnBtbjIuMOinhOiMgycpO1xyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICB9O1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICog6YeN572u55S75p2/XHJcbiAgICAgKi9cclxuICAgIHJlc2V0RHJhd2luZ0JvYXJkKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuc2V0RGVmYXVsdERhdGEoZGVmYXVsdEJwbW5EYXRhKS5zdWJzY3JpYmUoKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIOaUvuWkp1xyXG4gICAgICovXHJcbiAgICB6b29tSW4oKSB7XHJcbiAgICAgICAgdGhpcy5icG1uSlMuZ2V0PENhbnZhcz4oJ2NhbnZhcycpLnpvb20oKyt0aGlzLnNjYWxlKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIOe8qeWwj1xyXG4gICAgICovXHJcbiAgICB6b29tT3V0KCkge1xyXG4gICAgICAgIGlmICh0aGlzLnNjYWxlID4gMSkge1xyXG4gICAgICAgICAgICB0aGlzLmJwbW5KUy5nZXQ8Q2FudmFzPignY2FudmFzJykuem9vbSgtLXRoaXMuc2NhbGUpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIOmHjee9ruS9jee9rlxyXG4gICAgICovXHJcbiAgICB6b29tUmVzZXQoKSB7XHJcbiAgICAgICAgdGhpcy5icG1uSlMuZ2V0PENhbnZhcz4oJ2NhbnZhcycpLnpvb20oJ2ZpdC12aWV3cG9ydCcsIHsgeDogMCwgeTogMCB9KTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIOS4i+i9vSAuYnBtbiDmoLzlvI9cclxuICAgICAqL1xyXG4gICAgZG93bmxvYWRCUE1OKG5hbWU/OiBzdHJpbmcpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmJwbW5KUy5zYXZlWE1MKHsgZm9ybWF0OiB0cnVlIH0pLnRoZW4oKHsgeG1sIH0pID0+IHtcclxuICAgICAgICAgICAgaWYgKHhtbCkge1xyXG4gICAgICAgICAgICAgICAgLy8g5oqK5pWw5o2u6L2s5o2i5Li6VVJJ77yM5LiL6L296KaB55So5Yiw55qEXHJcbiAgICAgICAgICAgICAgICBjb25zdCBlbmNvZGVkRGF0YSA9IGVuY29kZVVSSUNvbXBvbmVudCh4bWwpO1xyXG4gICAgICAgICAgICAgICAgY29uc3QgaHJlZiA9IGBkYXRhOmFwcGxpY2F0aW9uL2JwbW4yMC14bWw7Y2hhcnNldD1VVEYtOCwke2VuY29kZWREYXRhfWA7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmRvd25sb2FkRmlsZShocmVmLCBuYW1lID8/IGBkaWFncmFtLSR7dWlkKCl9LmJwbW5gKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICog5LiL6L29IC5zdmcg5qC85byPXHJcbiAgICAgKi9cclxuICAgIGRvd25sb2FkU1ZHKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuYnBtbkpTLnNhdmVTVkcoKS50aGVuKCh7IHN2ZyB9KSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChzdmcpIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHN2Z0Jsb2IgPSBuZXcgQmxvYihbc3ZnXSwge1xyXG4gICAgICAgICAgICAgICAgICAgIHR5cGU6ICdpbWFnZS9zdmcreG1sJyxcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5kb3dubG9hZEZpbGUoVVJMLmNyZWF0ZU9iamVjdFVSTChzdmdCbG9iKSwgYGRpYWdyYW0tJHt1aWQoKX0uc3ZnYCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIOmAmui/h2hyZWbkuIvovb3mlofku7ZcclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBkb3dubG9hZEZpbGUoaHJlZjogc3RyaW5nLCBmaWxlbmFtZTogc3RyaW5nKTogdm9pZCB7XHJcbiAgICAgICAgY29uc3QgdGVtcExpbmsgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdhJyk7XHJcbiAgICAgICAgdGVtcExpbmsuc3R5bGUuZGlzcGxheSA9ICdub25lJztcclxuICAgICAgICB0ZW1wTGluay5ocmVmID0gaHJlZjtcclxuICAgICAgICB0ZW1wTGluay5zZXRBdHRyaWJ1dGUoJ2Rvd25sb2FkJywgZmlsZW5hbWUpO1xyXG4gICAgICAgIGlmICh0eXBlb2YgdGVtcExpbmsuZG93bmxvYWQgPT09ICd1bmRlZmluZWQnKSB7XHJcbiAgICAgICAgICAgIHRlbXBMaW5rLnNldEF0dHJpYnV0ZSgndGFyZ2V0JywgJ19ibGFuaycpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHRlbXBMaW5rKTtcclxuICAgICAgICB0ZW1wTGluay5jbGljaygpO1xyXG4gICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQodGVtcExpbmspO1xyXG4gICAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJsYXlvdXQ6Y29sXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwibGF5b3V0OmhlYWRlciBweC00XCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImJ0bi1ncm91cFwiPlxyXG4gICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGljb25cIiB0aXRsZT1cIuWvvOWFpeaooeWeiyAuYnBtblwiIChjbGljayk9XCJmaWxlUmVmLmNsaWNrKClcIj5cclxuICAgICAgICAgICAgICAgIDxpbnB1dCAjZmlsZVJlZiB0eXBlPVwiZmlsZVwiIHN0eWxlPVwiZGlzcGxheTogbm9uZVwiIGFjY2VwdD1cIi5icG1uXCIgKGNoYW5nZSk9XCJpbXBvcnRNb2RlbFhNTCgkZXZlbnQpXCIgLz5cclxuICAgICAgICAgICAgICAgIDxpIGljb24gdHlwZT1cImZvbGRlci1vcGVuXCI+PC9pPlxyXG4gICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBpY29uXCIgdGl0bGU9XCLph43nva7nlLvmnb9cIiAoY2xpY2spPVwicmVzZXREcmF3aW5nQm9hcmQoKVwiPlxyXG4gICAgICAgICAgICAgICAgPGkgaWNvbiB0eXBlPVwicmVzZXRcIj48L2k+XHJcbiAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibWwtNFwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYnRuLWdyb3VwXCI+XHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGljb25cIiB0aXRsZT1cIuaUvuWkp1wiIChjbGljayk9XCJ6b29tSW4oKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpIGljb24gdHlwZT1cInBsdXMtY2lyY2xlXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGljb25cIiB0aXRsZT1cIue8qeWwj1wiIChjbGljayk9XCJ6b29tT3V0KClcIj5cclxuICAgICAgICAgICAgICAgICAgICA8aSBpY29uIHR5cGU9XCJtaW51cy1jaXJjbGVcIj48L2k+XHJcbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gaWNvblwiIHRpdGxlPVwi6YeN572u5L2N572uXCIgKGNsaWNrKT1cInpvb21SZXNldCgpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGkgaWNvbiB0eXBlPVwibWFwLXBpblwiPjwvaT5cclxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm1sLTRcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJ0bi1ncm91cFwiPlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBpY29uXCIgdGl0bGU9XCLkuIvovb3kuLouYnBtbuagvOW8j1wiIChjbGljayk9XCJkb3dubG9hZEJQTU4oKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpIGljb24gdHlwZT1cImRvd24tZmlsZVwiPjwvaT5cclxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBpY29uXCIgdGl0bGU9XCLkuIvovb3kuLouc3Zn5qC85byPXCIgKGNsaWNrKT1cImRvd25sb2FkU1ZHKClcIj5cclxuICAgICAgICAgICAgICAgICAgICA8aSBpY29uIHR5cGU9XCJkb3duLXN2Z1wiPjwvaT5cclxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImxheW91dDpjb250ZW50IGxheW91dDpyb3dcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibGF5b3V0OmNvbnRlbnRcIj5cclxuICAgICAgICAgICAgPGRpdiAjcmVmIGNsYXNzPVwidy1mdWxsIGgtZnVsbFwiPjwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJsYXlvdXQ6YXNpZGVcIiAqbmdJZj1cInByb3BlcnRpZXNUZW1wbGF0ZVwiPlxyXG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwicHJvcGVydGllc1RlbXBsYXRlXCI+PC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG48L2Rpdj5cclxuIl19
|
|
248
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnBtbi1lZGl0b3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicmFyeS9icG1uL3NyYy9icG1uLWVkaXRvci9icG1uLWVkaXRvci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWJyYXJ5L2JwbW4vc3JjL2JwbW4tZWRpdG9yL2JwbW4tZWRpdG9yLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRztBQUNILE9BQU8sRUFFSCxTQUFTLEVBRVQsWUFBWSxFQUNaLEtBQUssRUFJTCxNQUFNLEVBR04sU0FBUyxHQUNaLE1BQU0sZUFBZSxDQUFDO0FBaUJ2QixPQUFPLE1BQU0sTUFBTSxxQkFBcUIsQ0FBQztBQUN6QyxhQUFhO0FBQ2IsT0FBTyxVQUFVLE1BQU0saUJBQWlCLENBQUM7QUFDekMsYUFBYTtBQUNiLE9BQU8sYUFBYSxNQUFNLG9CQUFvQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxJQUFJLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFFeEMsT0FBTyxFQUFFLGVBQWUsRUFBRSxHQUFHLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUM1RCxPQUFPLGVBQWUsTUFBTSwyQkFBMkIsQ0FBQzs7O0FBT3hELE1BQU0sT0FBTyxxQkFBcUI7SUFjOUI7UUFMQTs7V0FFRztRQUNPLG9CQUFlLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQU92QyxVQUFLLEdBQUcsQ0FBQyxDQUFDO0lBTEgsQ0FBQztJQVFoQixRQUFRLEtBQVUsQ0FBQztJQUVuQixXQUFXLENBQUMsT0FBc0I7UUFDOUIsSUFBSSxPQUFPLENBQUMsSUFBSSxJQUFJLE9BQU8sQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQzNDLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRTtnQkFDYixJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsU0FBUyxF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O29CQUMzQyxTQUFTLEVBQUUsQ0FBQyxnQkFBZ0IsRUFBRSw4QkFBOEIsQ0FBQztpQkFDaEU7MEVBS1ksSUFBSTtzQkFBWixLQUFLO2dCQUlHLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFJSSxlQUFlO3NCQUF4QixNQUFNO2dCQUltQixFQUFFO3NCQUEzQixTQUFTO3VCQUFDLEtBQUs7Z0JBQ2lCLFVBQVU7c0JBQTFDLFNBQVM7dUJBQUMsWUFBWSIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBARGVzY3JpcHRpb246IOS7o+eggeeugOS7i1xuICogQEF1dGhvcjogQ3ljbG9uZTc3XG4gKiBARS1NYWlsOiBjeWNsb25lNzdAMTI2LmNvbVxuICogQERhdGU6IDIwMjQtMDQtMjQgMDk6NDg6MjlcbiAqIEBMYXN0RWRpdFRpbWU6IDIwMjQtMDQtMjQgMDk6NDg6MjlcbiAqL1xuaW1wb3J0IHtcbiAgICBBZnRlckNvbnRlbnRDaGVja2VkLFxuICAgIENvbXBvbmVudCxcbiAgICBFbGVtZW50UmVmLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBJbnB1dCxcbiAgICBPbkNoYW5nZXMsXG4gICAgT25EZXN0cm95LFxuICAgIE9uSW5pdCxcbiAgICBPdXRwdXQsXG4gICAgU2ltcGxlQ2hhbmdlcyxcbiAgICBUZW1wbGF0ZVJlZixcbiAgICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgKiBhcyBCcG1uTW9kZWxUeXBlcyBmcm9tICdicG1uLWpzL2xpYi9tb2RlbC9UeXBlcyc7XG4vLyBAdHMtaWdub3JlXG5pbXBvcnQgKiBhcyBEaWFncmFtQ29yZVR5cGVzIGZyb20gJ2RpYWdyYW0tanMvbGliL2NvcmUvVHlwZXMnO1xuaW1wb3J0IEVsZW1lbnRSZWdpc3RyeSBmcm9tICdkaWFncmFtLWpzL2xpYi9jb3JlL0VsZW1lbnRSZWdpc3RyeSc7XG4vLyBAdHMtaWdub3JlXG5pbXBvcnQgKiBhcyBEaWFncmFtTW9kZWxUeXBlcyBmcm9tICdkaWFncmFtLWpzL2xpYi9tb2RlbC9UeXBlcyc7XG4vLyBAdHMtaWdub3JlXG5pbXBvcnQgKiBhcyBEaWFncmFtVXRpbFR5cGVzIGZyb20gJ2RpYWdyYW0tanMvbGliL3V0aWwvVHlwZXMnO1xuLy8gQHRzLWlnbm9yZVxuaW1wb3J0ICogYXMgQnBtblV0aWxUeXBlcyBmcm9tICdicG1uLWpzL2xpYi91dGlsL1R5cGVzJztcbi8vIEB0cy1pZ25vcmVcbmltcG9ydCAqIGFzIENvbW1hbmRIYW5kbGVyIGZyb20gJ2RpYWdyYW0tanMvbGliL2NvbW1hbmQvQ29tbWFuZEhhbmRsZXInO1xuXG5pbXBvcnQgdHlwZSBDYW52YXMgZnJvbSAnZGlhZ3JhbS1qcy9saWIvY29yZS9DYW52YXMnO1xuaW1wb3J0IHR5cGUgeyBJbXBvcnREb25lRXZlbnQsIEltcG9ydFhNTFJlc3VsdCwgU2F2ZVNWR1Jlc3VsdCwgU2F2ZVhNTFJlc3VsdCB9IGZyb20gJ2JwbW4tanMvbGliL0Jhc2VWaWV3ZXInO1xuaW1wb3J0IEJwbW5KUyBmcm9tICdicG1uLWpzL2xpYi9Nb2RlbGVyJztcbi8vIEB0cy1pZ25vcmVcbmltcG9ydCBncmlkTW9kdWxlIGZyb20gJ2RpYWdyYW0tanMtZ3JpZCc7XG4vLyBAdHMtaWdub3JlXG5pbXBvcnQgbWluaW1hcE1vZHVsZSBmcm9tICdkaWFncmFtLWpzLW1pbmltYXAnO1xuaW1wb3J0IHsgZnJvbSwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IE1vZGVsaW5nIGZyb20gJ2JwbW4tanMvbGliL2ZlYXR1cmVzL21vZGVsaW5nL01vZGVsaW5nJztcbmltcG9ydCB7IGRlZmF1bHRCcG1uRGF0YSwgdWlkIH0gZnJvbSAnLi4vY29uZmlnL2RlZmF1bHRYTUwnO1xuaW1wb3J0IGN1c3RvbVRyYW5zbGF0ZSBmcm9tICcuLi9jb25maWcvY3VzdG9tVHJhbnNsYXRlJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdyay1icG1uLWVkaXRvcicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2JwbW4tZWRpdG9yLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi4vY29tbW9uLnNjc3MnLCAnLi9icG1uLWVkaXRvci5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBSa0JwbW5FZGl0b3JDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcywgQWZ0ZXJDb250ZW50Q2hlY2tlZCwgT25EZXN0cm95IHtcbiAgICAvKipcbiAgICAgKiDlgLwgeG1sIHN0cmluZ1xuICAgICAqL1xuICAgIEBJbnB1dCgpIGRhdGE/OiBzdHJpbmc7XG4gICAgLyoqXG4gICAgICog5bGe5oCn6Z2i5p2/5qih5p2/XG4gICAgICovXG4gICAgQElucHV0KCkgcHJvcGVydGllc1RlbXBsYXRlPzogVGVtcGxhdGVSZWY8dm9pZD47XG4gICAgLyoqXG4gICAgICog6YCJ5Lit5YWD57Sg5Y+Y5YyW5pe26Kem5Y+RXG4gICAgICovXG4gICAgQE91dHB1dCgpIHNlbGVjdGlvbkNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIGNvbnN0cnVjdG9yKCkge31cblxuICAgIEBWaWV3Q2hpbGQoJ3JlZicpIHByaXZhdGUgZWw/OiBFbGVtZW50UmVmPEhUTUxEaXZFbGVtZW50PjtcbiAgICBAVmlld0NoaWxkKCdwcm9wZXJ0aWVzJykgcHJpdmF0ZSBwcm9wZXJ0aWVzPzogRWxlbWVudFJlZjxIVE1MRGl2RWxlbWVudD47XG4gICAgcHJpdmF0ZSBicG1uSlMhOiBCcG1uSlM7XG4gICAgcHJpdmF0ZSBzY2FsZSA9IDE7XG4gICAgdGFyZ2V0RWxlbWVudD86IGFueTtcblxuICAgIG5nT25Jbml0KCk6IHZvaWQge31cblxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICAgICAgaWYgKGNoYW5nZXMuZGF0YSAmJiBjaGFuZ2VzLmRhdGEuY3VycmVudFZhbHVlKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5icG1uSlMpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNldERlZmF1bHREYXRhKGNoYW5nZXMuZGF0YS5jdXJyZW50VmFsdWUpLnN1YnNjcmliZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdBZnRlckNvbnRlbnRDaGVja2VkKCkge1xuICAgICAgICBjb25zdCByZWN0ID0gdGhpcy5lbD8ubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgICAgaWYgKHJlY3Q/LndpZHRoICYmICF0aGlzLmJwbW5KUykge1xuICAgICAgICAgICAgdGhpcy5vbkluaXRCcG1uKCk7XG4gICAgICAgICAgICB0aGlzLnJlZ2lzdGVyRXZlbnRzKCk7XG4gICAgICAgICAgICB0aGlzLnNldERlZmF1bHREYXRhKHRoaXMuZGF0YSA/PyBkZWZhdWx0QnBtbkRhdGEpLnN1YnNjcmliZSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuYnBtbkpTPy5kZXN0cm95KCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog5Yid5aeL5YyWYnBtbkpTIGFwcFxuICAgICAqL1xuICAgIHByaXZhdGUgb25Jbml0QnBtbigpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5icG1uSlMgPSBuZXcgQnBtbkpTKHtcbiAgICAgICAgICAgIGNvbnRhaW5lcjogdGhpcy5lbD8ubmF0aXZlRWxlbWVudCxcbiAgICAgICAgICAgIGFkZGl0aW9uYWxNb2R1bGVzOiBbXG4gICAgICAgICAgICAgICAgZ3JpZE1vZHVsZSxcbiAgICAgICAgICAgICAgICBtaW5pbWFwTW9kdWxlLFxuICAgICAgICAgICAgICAgIC8vIOaxieWMllxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNsYXRlOiBbJ3ZhbHVlJywgY3VzdG9tVHJhbnNsYXRlXSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIC8v5re75Yqg5bGe5oCn6Z2i5p2/XG4gICAgICAgICAgICBwcm9wZXJ0aWVzUGFuZWw6IHtcbiAgICAgICAgICAgICAgICBwYXJlbnQ6IHRoaXMucHJvcGVydGllcz8ubmF0aXZlRWxlbWVudCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOazqOWGjOS6i+S7tlxuICAgICAqL1xuICAgIHByaXZhdGUgcmVnaXN0ZXJFdmVudHMoKTogdm9pZCB7XG4gICAgICAgIC8vIOazqOWGjOWvvOWFpeWujOaIkOS6i+S7tlxuICAgICAgICB0aGlzLmJwbW5KUy5vbjxJbXBvcnREb25lRXZlbnQ+KCdpbXBvcnQuZG9uZScsICh7IGVycm9yIH0pID0+IHtcbiAgICAgICAgICAgIGlmICghZXJyb3IpIHtcbiAgICAgICAgICAgICAgICAvLyDliqDovb3lrozmiJDlkI7lsYXkuK1cbiAgICAgICAgICAgICAgICB0aGlzLmJwbW5KUy5nZXQ8Q2FudmFzPignY2FudmFzJykuem9vbSgnZml0LXZpZXdwb3J0JywgeyB4OiAwLCB5OiAwIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5icG1uSlMub24oJ3NlbGVjdGlvbi5jaGFuZ2VkJywgKGU6IGFueSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgW2VsZW1lbnRdID0gZS5uZXdTZWxlY3Rpb247XG4gICAgICAgICAgICB0aGlzLnRhcmdldEVsZW1lbnQgPSBlbGVtZW50O1xuICAgICAgICAgICAgdGhpcy5icG1uSlMuZ2V0PEVsZW1lbnRSZWdpc3RyeT4oJ2VsZW1lbnRSZWdpc3RyeScpO1xuICAgICAgICAgICAgY29uc3QgbW9kZWxpbmcgPSB0aGlzLmJwbW5KUy5nZXQ8TW9kZWxpbmc+KCdtb2RlbGluZycpO1xuICAgICAgICAgICAgdGhpcy5zZWxlY3Rpb25DaGFuZ2UuZW1pdCh7IG1vZGVsZXI6IHRoaXMuYnBtbkpTLCBtb2RlbGluZywgZWxlbWVudCB9KTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog5pu05paw6YCJ5Lit5YWD57Sg6IqC54K55qCH562+5YC8XG4gICAgICogQHBhcmFtIG1vZGVsaW5nXG4gICAgICogQHBhcmFtIGVsZW1lbnRcbiAgICAgKiBAcGFyYW0gZGF0YVxuICAgICAqL1xuICAgIHB1YmxpYyB1cGRhdGVQcm9wZXJ0aWVzKG1vZGVsaW5nOiBNb2RlbGluZywgZWxlbWVudDogQnBtbk1vZGVsVHlwZXMuRWxlbWVudCwgZGF0YTogUmVjb3JkPHN0cmluZywgc3RyaW5nPikge1xuICAgICAgICBtb2RlbGluZy51cGRhdGVQcm9wZXJ0aWVzKGVsZW1lbnQsIGRhdGEpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOabtOaWsOmAieS4reWFg+e0oOiKgueCueagh+etvuWAvFxuICAgICAqIEBwYXJhbSBtb2RlbGluZ1xuICAgICAqIEBwYXJhbSBlbGVtZW50XG4gICAgICogQHBhcmFtIGtleVxuICAgICAqIEBwYXJhbSB2YWx1ZVxuICAgICAqL1xuICAgIHB1YmxpYyB1cGRhdGVQcm9wZXJ0aWVzQnlLZXkobW9kZWxpbmc6IE1vZGVsaW5nLCBlbGVtZW50OiBCcG1uTW9kZWxUeXBlcy5FbGVtZW50LCBrZXk6IHN0cmluZywgdmFsdWU6IGFueSkge1xuICAgICAgICBtb2RlbGluZy51cGRhdGVQcm9wZXJ0aWVzKGVsZW1lbnQsIHsgW2tleV06IHZhbHVlIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOiuvue9rum7mOiupOWAvFxuICAgICAqL1xuICAgIHByaXZhdGUgc2V0RGVmYXVsdERhdGEoZGF0YTogc3RyaW5nKTogT2JzZXJ2YWJsZTxJbXBvcnRYTUxSZXN1bHQ+IHtcbiAgICAgICAgcmV0dXJuIGZyb208UHJvbWlzZTxJbXBvcnRYTUxSZXN1bHQ+Pih0aGlzLmJwbW5KUy5pbXBvcnRYTUwoZGF0YSkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOWvvOWFpeaooeWei1xuICAgICAqIEBwYXJhbSBldmVudFxuICAgICAqL1xuICAgIGltcG9ydE1vZGVsWE1MKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgICAgICBjb25zdCBpbnB1dCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50O1xuICAgICAgICBpZiAoIWlucHV0LmZpbGVzPy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGZpbGUgPSBpbnB1dC5maWxlcy5pdGVtKDApITtcblxuICAgICAgICBjb25zdCByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpO1xuICAgICAgICAvLyDor7vlj5ZGaWxl5a+56LGh5Lit55qE5paH5pys5L+h5oGv77yM57yW56CB5qC85byP5Li6VVRGLThcbiAgICAgICAgcmVhZGVyLnJlYWRBc1RleHQoZmlsZSwgJ3V0Zi04Jyk7XG4gICAgICAgIHJlYWRlci5vbmxvYWQgPSAoKSA9PiB7XG4gICAgICAgICAgICBpbnB1dC52YWx1ZSA9ICcnO1xuICAgICAgICAgICAgLy/or7vlj5blrozmr5XlkI7lsIbmlofmnKzkv6Hmga/lr7zlhaXliLBCcG1u5bu65qih5ZmoXG4gICAgICAgICAgICB0aGlzLnNldERlZmF1bHREYXRhKHJlYWRlci5yZXN1bHQgYXMgc3RyaW5nKS5zdWJzY3JpYmUoXG4gICAgICAgICAgICAgICAgKCkgPT4ge30sXG4gICAgICAgICAgICAgICAgKHsgZXJyb3IgfSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKCfmiZPlvIDmqKHlnovlh7rplJks6K+356Gu6K6k6K+l5qih5Z6L56ym5ZCIQnBtbjIuMOinhOiMgycpO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICApO1xuICAgICAgICB9O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOmHjee9rueUu+adv1xuICAgICAqL1xuICAgIHJlc2V0RHJhd2luZ0JvYXJkKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnNldERlZmF1bHREYXRhKGRlZmF1bHRCcG1uRGF0YSkuc3Vic2NyaWJlKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog5pS+5aSnXG4gICAgICovXG4gICAgem9vbUluKCkge1xuICAgICAgICB0aGlzLmJwbW5KUy5nZXQ8Q2FudmFzPignY2FudmFzJykuem9vbSgrK3RoaXMuc2NhbGUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOe8qeWwj1xuICAgICAqL1xuICAgIHpvb21PdXQoKSB7XG4gICAgICAgIGlmICh0aGlzLnNjYWxlID4gMSkge1xuICAgICAgICAgICAgdGhpcy5icG1uSlMuZ2V0PENhbnZhcz4oJ2NhbnZhcycpLnpvb20oLS10aGlzLnNjYWxlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOmHjee9ruS9jee9rlxuICAgICAqL1xuICAgIHpvb21SZXNldCgpIHtcbiAgICAgICAgdGhpcy5icG1uSlMuZ2V0PENhbnZhcz4oJ2NhbnZhcycpLnpvb20oJ2ZpdC12aWV3cG9ydCcsIHsgeDogMCwgeTogMCB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDkv53lrZjlvZPliY0gQlBNTiDlm77nmoQgWE1MIOihqOekulxuICAgICAqXG4gICAgICog5q2k5pa55rOV55So5LqO5bCG5b2T5YmNIEJQTU4g5Zu+55qEIFhNTCDooajnpLrkv53lrZjkuIvmnaXlroPlj6/ku6XmjqXlj5fkuIDkuKrlj6/pgInlj4LmlbAgZm9ybWF077yMXG4gICAgICog6K+l5Y+C5pWw5oyH56S65piv5ZCm5bqU5qC85byP5YyWIFhNTCDovpPlh7rlvZMgZm9ybWF0IOiuvue9ruS4uiB0cnVlIOaXtu+8jFhNTCDlsIbku6XkuIDnp43mm7TmmJPkuo7pmIXor7vnmoTmoLzlvI/ovpPlh7rvvJtcbiAgICAgKiDlkKbliJnvvIzlroPlsIbku6XntKflh5HnmoTlvaLlvI/ovpPlh7pcbiAgICAgKlxuICAgICAqIEBwYXJhbSBmb3JtYXQge2Jvb2xlYW59IC0g5Y+v6YCJ5Y+C5pWw77yM6buY6K6k5Li6IHRydWXlpoLmnpzorr7nva7kuLogdHJ1Ze+8jOS/neWtmOeahCBYTUwg5bCG6KKr5qC85byP5YyW5Lul5o+Q6auY5Y+v6K+75oCnXG4gICAgICogQHJldHVybnMge1Byb21pc2U8c3RyaW5nPn0gLSDov5Tlm57kuIDkuKogUHJvbWlzZe+8jOino+aekOS4uiBCUE1OIOWbvueahCBYTUwg5a2X56ym5Liy6KGo56S6XG4gICAgICovXG4gICAgc2F2ZVhNTChmb3JtYXQ6IGJvb2xlYW4gPSB0cnVlKTogUHJvbWlzZTxTYXZlWE1MUmVzdWx0PiB7XG4gICAgICAgIHJldHVybiB0aGlzLmJwbW5KUy5zYXZlWE1MKHsgZm9ybWF0IH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOS4i+i9vSAuYnBtbiDmoLzlvI9cbiAgICAgKi9cbiAgICBkb3dubG9hZEJQTU4obmFtZT86IHN0cmluZyk6IHZvaWQge1xuICAgICAgICB0aGlzLnNhdmVYTUwoKS50aGVuKCh7IHhtbCB9KSA9PiB7XG4gICAgICAgICAgICBpZiAoeG1sKSB7XG4gICAgICAgICAgICAgICAgLy8g5oqK5pWw5o2u6L2s5o2i5Li6VVJJ77yM5LiL6L296KaB55So5Yiw55qEXG4gICAgICAgICAgICAgICAgY29uc3QgZW5jb2RlZERhdGEgPSBlbmNvZGVVUklDb21wb25lbnQoeG1sKTtcbiAgICAgICAgICAgICAgICBjb25zdCBocmVmID0gYGRhdGE6YXBwbGljYXRpb24vYnBtbjIwLXhtbDtjaGFyc2V0PVVURi04LCR7ZW5jb2RlZERhdGF9YDtcbiAgICAgICAgICAgICAgICB0aGlzLmRvd25sb2FkRmlsZShocmVmLCBuYW1lID8/IGBkaWFncmFtLSR7dWlkKCl9LmJwbW5gKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog5L+d5a2YU1ZH5Zu+5b2iXG4gICAgICpcbiAgICAgKiDmraTmlrnms5XnlKjkuo7lsIblvZPliY3lm77ooajku6VTVkfmoLzlvI/kv53lrZjlroPkuI3mjqXlj5fku7vkvZXlj4LmlbBcbiAgICAgKiDov5Tlm57kuIDkuKpQcm9taXNl5a+56LGh77yM6K+lUHJvbWlzZeino+aekOS4ulNhdmVTVkdSZXN1bHTnsbvlnovnmoTnu5PmnpxcbiAgICAgKiDkuLvopoHnlKjkuo7pnIDopoHku6VTVkfmoLzlvI/lr7zlh7rmiJbkv53lrZjlvZPliY3lm77ooajnmoTlnLrmma9cbiAgICAgKi9cbiAgICBzYXZlU1ZHKCk6IFByb21pc2U8U2F2ZVNWR1Jlc3VsdD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5icG1uSlMuc2F2ZVNWRygpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOS4i+i9vSAuc3ZnIOagvOW8j1xuICAgICAqL1xuICAgIGRvd25sb2FkU1ZHKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnNhdmVTVkcoKS50aGVuKCh7IHN2ZyB9KSA9PiB7XG4gICAgICAgICAgICBpZiAoc3ZnKSB7XG4gICAgICAgICAgICAgICAgY29uc3Qgc3ZnQmxvYiA9IG5ldyBCbG9iKFtzdmddLCB7XG4gICAgICAgICAgICAgICAgICAgIHR5cGU6ICdpbWFnZS9zdmcreG1sJyxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB0aGlzLmRvd25sb2FkRmlsZShVUkwuY3JlYXRlT2JqZWN0VVJMKHN2Z0Jsb2IpLCBgZGlhZ3JhbS0ke3VpZCgpfS5zdmdgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog6YCa6L+HaHJlZuS4i+i9veaWh+S7tlxuICAgICAqL1xuICAgIHByaXZhdGUgZG93bmxvYWRGaWxlKGhyZWY6IHN0cmluZywgZmlsZW5hbWU6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICBjb25zdCB0ZW1wTGluayA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2EnKTtcbiAgICAgICAgdGVtcExpbmsuc3R5bGUuZGlzcGxheSA9ICdub25lJztcbiAgICAgICAgdGVtcExpbmsuaHJlZiA9IGhyZWY7XG4gICAgICAgIHRlbXBMaW5rLnNldEF0dHJpYnV0ZSgnZG93bmxvYWQnLCBmaWxlbmFtZSk7XG4gICAgICAgIGlmICh0eXBlb2YgdGVtcExpbmsuZG93bmxvYWQgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICB0ZW1wTGluay5zZXRBdHRyaWJ1dGUoJ3RhcmdldCcsICdfYmxhbmsnKTtcbiAgICAgICAgfVxuICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHRlbXBMaW5rKTtcbiAgICAgICAgdGVtcExpbmsuY2xpY2soKTtcbiAgICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZCh0ZW1wTGluayk7XG4gICAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImxheW91dDpjb2xcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJsYXlvdXQ6aGVhZGVyIHB4LTRcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiYnRuLWdyb3VwXCI+XHJcbiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gaWNvblwiIHRpdGxlPVwi5a+85YWl5qih5Z6LIC5icG1uXCIgKGNsaWNrKT1cImZpbGVSZWYuY2xpY2soKVwiPlxyXG4gICAgICAgICAgICAgICAgPGlucHV0ICNmaWxlUmVmIHR5cGU9XCJmaWxlXCIgc3R5bGU9XCJkaXNwbGF5OiBub25lXCIgYWNjZXB0PVwiLmJwbW5cIiAoY2hhbmdlKT1cImltcG9ydE1vZGVsWE1MKCRldmVudClcIiAvPlxyXG4gICAgICAgICAgICAgICAgPGkgaWNvbiB0eXBlPVwiZm9sZGVyLW9wZW5cIj48L2k+XHJcbiAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGljb25cIiB0aXRsZT1cIumHjee9rueUu+adv1wiIChjbGljayk9XCJyZXNldERyYXdpbmdCb2FyZCgpXCI+XHJcbiAgICAgICAgICAgICAgICA8aSBpY29uIHR5cGU9XCJyZXNldFwiPjwvaT5cclxuICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJtbC00XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJidG4tZ3JvdXBcIj5cclxuICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gaWNvblwiIHRpdGxlPVwi5pS+5aSnXCIgKGNsaWNrKT1cInpvb21JbigpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGkgaWNvbiB0eXBlPVwicGx1cy1jaXJjbGVcIj48L2k+XHJcbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gaWNvblwiIHRpdGxlPVwi57yp5bCPXCIgKGNsaWNrKT1cInpvb21PdXQoKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpIGljb24gdHlwZT1cIm1pbnVzLWNpcmNsZVwiPjwvaT5cclxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBpY29uXCIgdGl0bGU9XCLph43nva7kvY3nva5cIiAoY2xpY2spPVwiem9vbVJlc2V0KClcIj5cclxuICAgICAgICAgICAgICAgICAgICA8aSBpY29uIHR5cGU9XCJtYXAtcGluXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibWwtNFwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYnRuLWdyb3VwXCI+XHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGljb25cIiB0aXRsZT1cIuS4i+i9veS4ui5icG1u5qC85byPXCIgKGNsaWNrKT1cImRvd25sb2FkQlBNTigpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGkgaWNvbiB0eXBlPVwiZG93bi1maWxlXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGljb25cIiB0aXRsZT1cIuS4i+i9veS4ui5zdmfmoLzlvI9cIiAoY2xpY2spPVwiZG93bmxvYWRTVkcoKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpIGljb24gdHlwZT1cImRvd24tc3ZnXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwibGF5b3V0OmNvbnRlbnQgbGF5b3V0OnJvd1wiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJsYXlvdXQ6Y29udGVudFwiPlxyXG4gICAgICAgICAgICA8ZGl2ICNyZWYgY2xhc3M9XCJ3LWZ1bGwgaC1mdWxsXCI+PC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImxheW91dDphc2lkZVwiICpuZ0lmPVwicHJvcGVydGllc1RlbXBsYXRlXCI+XHJcbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJwcm9wZXJ0aWVzVGVtcGxhdGVcIj48L25nLXRlbXBsYXRlPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
|
package/fesm2015/reskin-bpmn.js
CHANGED
|
@@ -580,11 +580,24 @@ class RkBpmnEditorComponent {
|
|
|
580
580
|
zoomReset() {
|
|
581
581
|
this.bpmnJS.get('canvas').zoom('fit-viewport', { x: 0, y: 0 });
|
|
582
582
|
}
|
|
583
|
+
/**
|
|
584
|
+
* 保存当前 BPMN 图的 XML 表示
|
|
585
|
+
*
|
|
586
|
+
* 此方法用于将当前 BPMN 图的 XML 表示保存下来它可以接受一个可选参数 format,
|
|
587
|
+
* 该参数指示是否应格式化 XML 输出当 format 设置为 true 时,XML 将以一种更易于阅读的格式输出;
|
|
588
|
+
* 否则,它将以紧凑的形式输出
|
|
589
|
+
*
|
|
590
|
+
* @param format {boolean} - 可选参数,默认为 true如果设置为 true,保存的 XML 将被格式化以提高可读性
|
|
591
|
+
* @returns {Promise<string>} - 返回一个 Promise,解析为 BPMN 图的 XML 字符串表示
|
|
592
|
+
*/
|
|
593
|
+
saveXML(format = true) {
|
|
594
|
+
return this.bpmnJS.saveXML({ format });
|
|
595
|
+
}
|
|
583
596
|
/**
|
|
584
597
|
* 下载 .bpmn 格式
|
|
585
598
|
*/
|
|
586
599
|
downloadBPMN(name) {
|
|
587
|
-
this.
|
|
600
|
+
this.saveXML().then(({ xml }) => {
|
|
588
601
|
if (xml) {
|
|
589
602
|
// 把数据转换为URI,下载要用到的
|
|
590
603
|
const encodedData = encodeURIComponent(xml);
|
|
@@ -593,11 +606,21 @@ class RkBpmnEditorComponent {
|
|
|
593
606
|
}
|
|
594
607
|
});
|
|
595
608
|
}
|
|
609
|
+
/**
|
|
610
|
+
* 保存SVG图形
|
|
611
|
+
*
|
|
612
|
+
* 此方法用于将当前图表以SVG格式保存它不接受任何参数
|
|
613
|
+
* 返回一个Promise对象,该Promise解析为SaveSVGResult类型的结果
|
|
614
|
+
* 主要用于需要以SVG格式导出或保存当前图表的场景
|
|
615
|
+
*/
|
|
616
|
+
saveSVG() {
|
|
617
|
+
return this.bpmnJS.saveSVG();
|
|
618
|
+
}
|
|
596
619
|
/**
|
|
597
620
|
* 下载 .svg 格式
|
|
598
621
|
*/
|
|
599
622
|
downloadSVG() {
|
|
600
|
-
this.
|
|
623
|
+
this.saveSVG().then(({ svg }) => {
|
|
601
624
|
if (svg) {
|
|
602
625
|
const svgBlob = new Blob([svg], {
|
|
603
626
|
type: 'image/svg+xml',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reskin-bpmn.js","sources":["../../../library/bpmn/src/config/translations.ts","../../../library/bpmn/src/config/customTranslate.ts","../../../library/bpmn/src/bpmn-viewer/bpmn-viewer.component.ts","../../../library/bpmn/src/bpmn-viewer/bpmn-viewer.component.html","../../../library/bpmn/src/config/defaultXML.ts","../../../library/bpmn/src/bpmn-editor/bpmn-editor.component.ts","../../../library/bpmn/src/bpmn-editor/bpmn-editor.component.html","../../../library/bpmn/src/bpmn.module.ts","../../../library/bpmn/reskin-bpmn.ts"],"sourcesContent":["/**\r\n * 写英文对应的中文内容\r\n */\r\nexport default {\r\n 'Activate global connect tool': '激活全局连接工具',\r\n 'Append {type}': '追加 {type}',\r\n 'Append endEvent': '追加 结束事件 ',\r\n 'Append task': '追加 任务',\r\n 'Append gateway': '追加 网关',\r\n 'Append intermediate/boundary event': '追加 中间/边界 事件',\r\n 'Add lane above': '在上面添加道',\r\n 'Divide into two lanes': '分割成两个道',\r\n 'Divide into three lanes': '分割成三个道',\r\n 'Add lane below': '在下面添加道',\r\n 'Append compensation activity': '追加补偿活动',\r\n 'Change type': '修改类型',\r\n 'Change element': '改变元素',\r\n 'Connect using association': '使用关联连接',\r\n 'Connect using sequence/message flow or association': '使用顺序/消息流或者关联连接',\r\n 'Connect using data input association': '使用数据输入关联连接',\r\n Remove: '移除',\r\n 'Activate hand tool': '激活抓手工具',\r\n 'Activate lasso tool': '激活套索工具',\r\n 'Activate create/remove space tool': '激活创建/删除空间工具',\r\n 'Create expanded sub-process': '创建扩展子过程',\r\n 'Create intermediate/boundary event': '创建中间抛出事件/边界事件',\r\n 'Create pool/participant': '创建池/参与者',\r\n 'Parallel multi-instance': '并行多重事件',\r\n 'Sequential multi-instance': '时序多重事件',\r\n 'Data object reference': '数据对象参考',\r\n 'Data store reference': '数据存储参考',\r\n Loop: '循环',\r\n 'Ad-hoc': '即席',\r\n 'Create {type}': '创建 {type}',\r\n 'Create task': '创建任务',\r\n 'Create start event': '创建开始事件',\r\n 'Create end event': '创建结束事件',\r\n 'Create group': '创建组',\r\n Task: '任务',\r\n 'Send task': '发送任务',\r\n 'Receive task': '接收任务',\r\n 'User task': '用户任务',\r\n 'Manual task': '手工任务',\r\n 'Business rule task': '业务规则任务',\r\n 'Service task': '服务任务',\r\n 'Script task': '脚本任务',\r\n 'Call activity': '调用活动',\r\n 'Sub-process (collapsed)': '子流程(折叠的)',\r\n 'Sub-process (expanded)': '子流程(展开的)',\r\n 'Start event': '开始事件',\r\n StartEvent: '开始事件',\r\n 'Intermediate throw event': '中间事件',\r\n 'End event': '结束事件',\r\n EndEvent: '结束事件',\r\n 'Create gateway': '创建网关',\r\n GateWay: '网关',\r\n 'Create Intermediate/Boundary Event': '创建中间/边界事件',\r\n 'Message start event': '消息开始事件',\r\n 'Timer start event': '定时开始事件',\r\n 'Conditional start event': '条件开始事件',\r\n 'Signal start event': '信号开始事件',\r\n 'Error start event': '错误开始事件',\r\n 'Escalation start event': '升级开始事件',\r\n 'Compensation start event': '补偿开始事件',\r\n 'Message start event (non-interrupting)': '消息开始事件(非中断)',\r\n 'Timer start event (non-interrupting)': '定时开始事件(非中断)',\r\n 'Conditional start event (non-interrupting)': '条件开始事件(非中断)',\r\n 'Signal start event (non-interrupting)': '信号开始事件(非中断)',\r\n 'Escalation start event (non-interrupting)': '升级开始事件(非中断)',\r\n 'Message intermediate catch event': '消息中间捕获事件',\r\n 'Message intermediate throw event': '消息中间抛出事件',\r\n 'Timer intermediate catch event': '定时中间捕获事件',\r\n 'Escalation intermediate throw event': '升级中间抛出事件',\r\n 'Conditional intermediate catch event': '条件中间捕获事件',\r\n 'Link intermediate catch event': '链接中间捕获事件',\r\n 'Link intermediate throw event': '链接中间抛出事件',\r\n 'Compensation intermediate throw event': '补偿中间抛出事件',\r\n 'Signal intermediate catch event': '信号中间捕获事件',\r\n 'Signal intermediate throw event': '信号中间抛出事件',\r\n 'Message end event': '消息结束事件',\r\n 'Escalation end event': '定时结束事件',\r\n 'Error end event': '错误结束事件',\r\n 'Cancel end event': '取消结束事件',\r\n 'Compensation end event': '补偿结束事件',\r\n 'Signal end event': '信号结束事件',\r\n 'Terminate end event': '终止结束事件',\r\n 'Message boundary event': '消息边界事件',\r\n 'Message boundary event (non-interrupting)': '消息边界事件(非中断)',\r\n 'Timer boundary event': '定时边界事件',\r\n 'Timer boundary event (non-interrupting)': '定时边界事件(非中断)',\r\n 'Escalation boundary event': '升级边界事件',\r\n 'Escalation boundary event (non-interrupting)': '升级边界事件(非中断)',\r\n 'Conditional boundary event': '条件边界事件',\r\n 'Conditional boundary event (non-interrupting)': '条件边界事件(非中断)',\r\n 'Error boundary event': '错误边界事件',\r\n 'Cancel boundary event': '取消边界事件',\r\n 'Signal boundary event': '信号边界事件',\r\n 'Signal boundary event (non-interrupting)': '信号边界事件(非中断)',\r\n 'Compensation boundary event': '补偿边界事件',\r\n 'Exclusive gateway': '互斥网关',\r\n 'Parallel gateway': '并行网关',\r\n 'Inclusive gateway': '相容网关',\r\n 'Complex gateway': '复杂网关',\r\n 'Event-based gateway': '事件网关',\r\n Transaction: '转运',\r\n 'Sub-process': '子流程',\r\n 'Event sub-process': '事件子流程',\r\n 'Collapsed pool': '折叠池',\r\n 'Expanded pool': '展开池',\r\n // Errors\r\n 'no parent for {element} in {parent}': '在{parent}里,{element}没有父类',\r\n 'no shape type specified': '没有指定的形状类型',\r\n 'flow elements must be children of pools/participants': '流元素必须是池/参与者的子类',\r\n 'out of bounds release': 'out of bounds release',\r\n 'more than {count} child lanes': '子道大于{count} ',\r\n 'element required': '元素不能为空',\r\n 'diagram not part of bpmn:Definitions': '流程图不符合bpmn规范',\r\n 'no diagram to display': '没有可展示的流程图',\r\n 'no process or collaboration to display': '没有可展示的流程/协作',\r\n 'element {element} referenced by {referenced}#{property} not yet drawn':\r\n '由{referenced}#{property}引用的{element}元素仍未绘制',\r\n 'already rendered {element}': '{element} 已被渲染',\r\n 'failed to import {element}': '导入{element}失败',\r\n //属性面板的参数\r\n Id: '编号',\r\n Name: '名称',\r\n General: '常规',\r\n Details: '详情',\r\n 'Message name': '消息名称',\r\n Message: '消息',\r\n Initiator: '创建者',\r\n 'Asynchronous continuations': '持续异步',\r\n 'Asynchronous before': '异步前',\r\n 'Asynchronous after': '异步后',\r\n 'Job configuration': '工作配置',\r\n Exclusive: '排除',\r\n 'Job priority': '工作优先级',\r\n 'Retry time cycle': '重试时间周期',\r\n Documentation: '文档',\r\n 'Element documentation': '元素文档',\r\n 'History configuration': '历史配置',\r\n 'History time to live': '历史的生存时间',\r\n Forms: '表单',\r\n 'Form key': '表单key',\r\n 'Form fields': '表单字段',\r\n 'Business key': '业务key',\r\n 'Form field': '表单字段',\r\n ID: '编号',\r\n Type: '类型',\r\n Label: '名称',\r\n 'Default value': '默认值',\r\n Validation: '校验',\r\n 'Add constraint': '添加约束',\r\n Config: '配置',\r\n Properties: '属性',\r\n 'Add property': '添加属性',\r\n Value: '值',\r\n Add: '添加',\r\n Values: '值',\r\n 'Add value': '添加值',\r\n Listeners: '监听器',\r\n 'Execution listener': '执行监听',\r\n 'Event type': '事件类型',\r\n 'Listener type': '监听器类型',\r\n 'Java class': 'Java类',\r\n Expression: '表达式',\r\n 'Must provide a value': '必须提供一个值',\r\n 'Delegate expression': '代理表达式',\r\n Script: '脚本',\r\n 'Script format': '脚本格式',\r\n 'Script type': '脚本类型',\r\n 'Inline script': '内联脚本',\r\n 'External script': '外部脚本',\r\n Resource: '资源',\r\n 'Field injection': '字段注入',\r\n Extensions: '扩展',\r\n 'Input/output': '输入/输出',\r\n 'Input parameters': '输入参数',\r\n 'Output parameters': '输出参数',\r\n Parameters: '参数',\r\n 'Output parameter': '输出参数',\r\n 'Timer definition type': '定时器定义类型',\r\n 'Timer definition': '定时器定义',\r\n Date: '日期',\r\n Duration: '持续',\r\n Cycle: '循环',\r\n Signal: '信号',\r\n 'Signal name': '信号名称',\r\n Escalation: '升级',\r\n Error: '错误',\r\n 'Link name': '链接名称',\r\n Condition: '条件名称',\r\n 'Variable name': '变量名称',\r\n 'Variable event': '变量事件',\r\n 'Specify more than one variable change event as a comma separated list.': '多个变量事件以逗号隔开',\r\n 'Wait for completion': '等待完成',\r\n 'Activity ref': '活动参考',\r\n 'Version tag': '版本标签',\r\n Executable: '可执行文件',\r\n 'External task configuration': '扩展任务配置',\r\n 'Task priority': '任务优先级',\r\n External: '外部',\r\n Connector: '连接器',\r\n 'Must configure Connector': '必须配置连接器',\r\n 'Connector Id': '连接器编号',\r\n Implementation: '实现方式',\r\n 'Field Injections': '字段注入',\r\n Fields: '字段',\r\n 'Result Variable': '结果变量',\r\n Topic: '主题',\r\n 'Configure Connector': '配置连接器',\r\n 'Input Parameter': '输入参数',\r\n Assignee: '代理人',\r\n 'Candidate Users': '候选用户',\r\n 'Candidate Groups': '候选组',\r\n 'Due Date': '到期时间',\r\n 'Follow Up Date': '跟踪日期',\r\n Priority: '优先级',\r\n 'The follow up date as an EL expression (e.g. ${someDate} or an ISO date (e.g. 2015-06-26T09:54:00)':\r\n '跟踪日期必须符合EL表达式,如: ${someDate} ,或者一个ISO标准日期,如:2015-06-26T09:54:00',\r\n 'The due date as an EL expression (e.g. ${someDate} or an ISO date (e.g. 2015-06-26T09:54:00)':\r\n '跟踪日期必须符合EL表达式,如: ${someDate} ,或者一个ISO标准日期,如:2015-06-26T09:54:00',\r\n Variables: '变量',\r\n 'Candidate Starter Configuration': '候选开始配置',\r\n 'Task Listener': '任务监听器',\r\n 'Candidate Starter Groups': '候选开始组',\r\n 'Candidate Starter Users': '候选开始用户',\r\n 'Tasklist Configuration': '任务列表配置',\r\n Startable: '启动',\r\n 'Specify more than one group as a comma separated list.': '指定多个组,用逗号分隔',\r\n 'Specify more than one user as a comma separated list.': '指定多个用户,用逗号分隔',\r\n 'This maps to the process definition key.': '这会映射为流程定义的键',\r\n 'CallActivity Type': '调用活动类型',\r\n 'Condition Type': '条件类型',\r\n 'Create UserTask': '创建用户任务',\r\n 'Create CallActivity': '创建调用活动',\r\n 'Called Element': '调用元素',\r\n 'Create data object reference': '创建数据对象引用',\r\n 'Create data store reference': '创建数据存储引用',\r\n 'Multi Instance': '多实例',\r\n 'Loop Cardinality': '实例数量',\r\n Collection: '任务参与人列表',\r\n 'Element Variable': '元素变量',\r\n 'Completion Condition': '完成条件',\r\n 'Participant multiplicity': '参与者多重性',\r\n 'Empty pool/participant': '空池/参与者列表',\r\n 'Append end event': '追加结束事件',\r\n 'Connect to other element': '连接到其他元素',\r\n Delete: '删除元素',\r\n 'Add text annotation': '添加文本注解',\r\n 'Open minimap': '打开小地图',\r\n 'Close minimap': '关闭小地图',\r\n};\r\n","import translations from './translations';\r\n\r\nexport default function customTranslate(template: string, replacements: Record<string, any>) {\r\n replacements = replacements || {};\r\n\r\n // Translate\r\n // @ts-ignore\r\n template = translations[template] || template;\r\n\r\n // Replace\r\n return template.replace(/{([^}]+)}/g, function (_, key) {\r\n return replacements[key] || '{' + key + '}';\r\n });\r\n}\r\n","import {\r\n AfterContentChecked,\r\n Component,\r\n ElementRef,\r\n EventEmitter,\r\n Input,\r\n OnChanges,\r\n OnDestroy,\r\n OnInit,\r\n Output,\r\n SimpleChanges,\r\n ViewChild,\r\n} from '@angular/core';\r\n// @ts-ignore\r\nimport * as BpmnModelTypes from 'bpmn-js/lib/model/Types';\r\n// @ts-ignore\r\nimport * as DiagramCoreTypes from 'diagram-js/lib/core/Types';\r\nimport ElementRegistry from 'diagram-js/lib/core/ElementRegistry';\r\n// @ts-ignore\r\nimport * as DiagramModelTypes from 'diagram-js/lib/model/Types';\r\n// @ts-ignore\r\nimport * as DiagramUtilTypes from 'diagram-js/lib/util/Types';\r\n\r\nimport type Canvas from 'diagram-js/lib/core/Canvas';\r\nimport type { ImportDoneEvent, ImportXMLResult } from 'bpmn-js/lib/BaseViewer';\r\nimport Viewer from 'bpmn-js/lib/Viewer';\r\nimport customTranslate from '../config/customTranslate';\r\n// @ts-ignore\r\nimport minimapModule from 'diagram-js-minimap';\r\nimport { from, Observable } from 'rxjs';\r\nimport BaseViewer from 'bpmn-js/lib/BaseViewer';\r\n// 预览拖动\r\nimport ZoomScrollModule from 'diagram-js/lib/navigation/zoomscroll';\r\nimport MoveCanvasModule from 'diagram-js/lib/navigation/movecanvas';\r\nimport ModelingModule from 'bpmn-js/lib/features/modeling';\r\nimport Modeling from 'bpmn-js/lib/features/modeling/Modeling';\r\n\r\n@Component({\r\n selector: 'rk-bpmn-viewer',\r\n templateUrl: './bpmn-viewer.component.html',\r\n styleUrls: ['../common.scss', './bpmn-viewer.component.scss'],\r\n})\r\nexport class RkBpmnViewerComponent implements OnInit, OnChanges, AfterContentChecked, OnDestroy {\r\n /**\r\n * 值 xml string\r\n */\r\n @Input() data!: string;\r\n /**\r\n * 监听渲染完成\r\n */\r\n @Output() afterRenderChange = new EventEmitter();\r\n\r\n constructor() {}\r\n\r\n @ViewChild('ref') private el?: ElementRef<HTMLDivElement>;\r\n private Viewer!: BaseViewer;\r\n private scale = 1;\r\n\r\n ngOnInit(): void {}\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (changes.data && changes.data.currentValue) {\r\n if (this.Viewer) {\r\n this.setDefaultData(this.data).subscribe();\r\n }\r\n }\r\n }\r\n\r\n ngAfterContentChecked() {\r\n const rect = this.el?.nativeElement.getBoundingClientRect();\r\n if (rect?.width && !this.Viewer) {\r\n this.onInitBpmn();\r\n this.registerEvents();\r\n this.setDefaultData(this.data).subscribe();\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.Viewer?.destroy();\r\n }\r\n\r\n /**\r\n * 初始化bpmnJS app\r\n */\r\n private onInitBpmn(): void {\r\n this.Viewer = new Viewer({\r\n container: this.el?.nativeElement,\r\n additionalModules: [\r\n minimapModule,\r\n ZoomScrollModule,\r\n MoveCanvasModule,\r\n // 汉化\r\n {\r\n translate: ['value', customTranslate],\r\n },\r\n ModelingModule,\r\n ],\r\n });\r\n }\r\n\r\n /**\r\n * 注册事件\r\n */\r\n private registerEvents(): void {\r\n // 注册导入完成事件\r\n this.Viewer.on<ImportDoneEvent>('import.done', ({ error }) => {\r\n if (!error) {\r\n // 加载完成后居中\r\n this.Viewer.get<Canvas>('canvas').zoom('fit-viewport', { x: 0, y: 0 });\r\n // 获得顶层节点\r\n // bpmnModeler.get('canvas').getRootElement()\r\n // 选中节点\r\n // bpmnModeler.get('selection').select(element)\r\n // 遍历所有节点\r\n // bpmnModeler.get('canvas').getRootElement()[0]\r\n\r\n // 设置某个节点颜色\r\n const elementRegistry = this.Viewer.get<ElementRegistry>('elementRegistry');\r\n const nodes = elementRegistry.getAll();\r\n if (nodes && nodes.length > 0) {\r\n const modeling = this.Viewer.get<Modeling>('modeling');\r\n this.afterRenderChange.emit({\r\n nodes,\r\n modeling,\r\n viewer: this.Viewer,\r\n });\r\n // const start = nodes.find((n) => n.businessObject.$attrs.description === 'start');\r\n // const manager = nodes.find((n) => n.businessObject.$attrs.description === 'leader');\r\n // if (start && manager && modeling) {\r\n // modeling.setColor([start, manager] as BpmnModelTypes.Element[], {\r\n // // fill: null,\r\n // stroke: '#1890ff',\r\n // });\r\n //\r\n // // 设置线的颜色\r\n // // 进线\r\n // const edgesIn = manager.incoming.filter((v: any) => !!start.outgoing.find((n: any) => n.id === v.id));\r\n //\r\n // // 出线\r\n // const edgesOut = manager.outgoing;\r\n // modeling.setColor([...edgesIn, ...edgesOut] as [BpmnModelTypes.Element], {\r\n // stroke: '#1890ff',\r\n // });\r\n // }\r\n }\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * 设置默认值\r\n */\r\n private setDefaultData(data: string): Observable<ImportXMLResult> {\r\n return from<Promise<ImportXMLResult>>(this.Viewer.importXML(data));\r\n }\r\n\r\n /**\r\n * 放大\r\n */\r\n zoomIn() {\r\n this.Viewer.get<Canvas>('canvas').zoom(++this.scale);\r\n }\r\n\r\n /**\r\n * 缩小\r\n */\r\n zoomOut() {\r\n if (this.scale > 1) {\r\n this.Viewer.get<Canvas>('canvas').zoom(--this.scale);\r\n }\r\n }\r\n\r\n /**\r\n * 重置位置\r\n */\r\n zoomReset() {\r\n this.Viewer.get<Canvas>('canvas').zoom('fit-viewport', { x: 0, y: 0 });\r\n }\r\n}\r\n","<div class=\"layout:col\">\r\n <div class=\"layout:header px-4\">\r\n <div class=\"btn-group\">\r\n <button class=\"btn icon\" title=\"放大\" (click)=\"zoomIn()\">\r\n <i icon type=\"plus-circle\"></i>\r\n </button>\r\n <button class=\"btn icon\" title=\"缩小\" (click)=\"zoomOut()\">\r\n <i icon type=\"minus-circle\"></i>\r\n </button>\r\n <button class=\"btn icon\" title=\"重置位置\" (click)=\"zoomReset()\">\r\n <i icon type=\"map-pin\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n <div class=\"layout:content\">\r\n <div #ref class=\"w-full h-full\"></div>\r\n </div>\r\n</div>\r\n","/**\r\n * 默认值\r\n */\r\nexport const defaultBpmnData = `\r\n<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n<bpmn:definitions xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" >\r\n <bpmn:process id=\"Process_${uid()}\" isExecutable=\"false\" />\r\n <bpmndi:BPMNDiagram id=\"BPMNDiagram_${uid()}\">\r\n <bpmndi:BPMNPlane id=\"BPMNPlane_${uid()}\" bpmnElement=\"Process_${uid()}\" />\r\n </bpmndi:BPMNDiagram>\r\n</bpmn:definitions>`;\r\n\r\n/**\r\n * 生成随机字符串\r\n */\r\nexport function uid() {\r\n return Math.random().toString(36).substring(2);\r\n}\r\n","/*\r\n * @Description: 代码简介\r\n * @Author: Cyclone77\r\n * @E-Mail: cyclone77@126.com\r\n * @Date: 2024-04-24 09:48:29\r\n * @LastEditTime: 2024-04-24 09:48:29\r\n */\r\nimport {\r\n AfterContentChecked,\r\n Component,\r\n ElementRef,\r\n EventEmitter,\r\n Input,\r\n OnChanges,\r\n OnDestroy,\r\n OnInit,\r\n Output,\r\n SimpleChanges,\r\n TemplateRef,\r\n ViewChild,\r\n} from '@angular/core';\r\n\r\nimport * as BpmnModelTypes from 'bpmn-js/lib/model/Types';\r\n// @ts-ignore\r\nimport * as DiagramCoreTypes from 'diagram-js/lib/core/Types';\r\nimport ElementRegistry from 'diagram-js/lib/core/ElementRegistry';\r\n// @ts-ignore\r\nimport * as DiagramModelTypes from 'diagram-js/lib/model/Types';\r\n// @ts-ignore\r\nimport * as DiagramUtilTypes from 'diagram-js/lib/util/Types';\r\n// @ts-ignore\r\nimport * as BpmnUtilTypes from 'bpmn-js/lib/util/Types';\r\n// @ts-ignore\r\nimport * as CommandHandler from 'diagram-js/lib/command/CommandHandler';\r\n\r\nimport type Canvas from 'diagram-js/lib/core/Canvas';\r\nimport type { ImportDoneEvent, ImportXMLResult } from 'bpmn-js/lib/BaseViewer';\r\nimport BpmnJS from 'bpmn-js/lib/Modeler';\r\n// @ts-ignore\r\nimport gridModule from 'diagram-js-grid';\r\n// @ts-ignore\r\nimport minimapModule from 'diagram-js-minimap';\r\nimport { from, Observable } from 'rxjs';\r\nimport Modeling from 'bpmn-js/lib/features/modeling/Modeling';\r\nimport { defaultBpmnData, uid } from '../config/defaultXML';\r\nimport customTranslate from '../config/customTranslate';\r\n\r\n@Component({\r\n selector: 'rk-bpmn-editor',\r\n templateUrl: './bpmn-editor.component.html',\r\n styleUrls: ['../common.scss', './bpmn-editor.component.scss'],\r\n})\r\nexport class RkBpmnEditorComponent implements OnInit, OnChanges, AfterContentChecked, OnDestroy {\r\n /**\r\n * 值 xml string\r\n */\r\n @Input() data?: string;\r\n /**\r\n * 属性面板模板\r\n */\r\n @Input() propertiesTemplate?: TemplateRef<void>;\r\n /**\r\n * 选中元素变化时触发\r\n */\r\n @Output() selectionChange = new EventEmitter();\r\n\r\n constructor() {}\r\n\r\n @ViewChild('ref') private el?: ElementRef<HTMLDivElement>;\r\n @ViewChild('properties') private properties?: ElementRef<HTMLDivElement>;\r\n private bpmnJS!: BpmnJS;\r\n private scale = 1;\r\n targetElement?: any;\r\n\r\n ngOnInit(): void {}\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (changes.data && changes.data.currentValue) {\r\n if (this.bpmnJS) {\r\n this.setDefaultData(changes.data.currentValue).subscribe();\r\n }\r\n }\r\n }\r\n\r\n ngAfterContentChecked() {\r\n const rect = this.el?.nativeElement.getBoundingClientRect();\r\n if (rect?.width && !this.bpmnJS) {\r\n this.onInitBpmn();\r\n this.registerEvents();\r\n this.setDefaultData(this.data ?? defaultBpmnData).subscribe();\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.bpmnJS?.destroy();\r\n }\r\n\r\n /**\r\n * 初始化bpmnJS app\r\n */\r\n private onInitBpmn(): void {\r\n this.bpmnJS = new BpmnJS({\r\n container: this.el?.nativeElement,\r\n additionalModules: [\r\n gridModule,\r\n minimapModule,\r\n // 汉化\r\n {\r\n translate: ['value', customTranslate],\r\n },\r\n ],\r\n //添加属性面板\r\n propertiesPanel: {\r\n parent: this.properties?.nativeElement,\r\n },\r\n });\r\n }\r\n\r\n /**\r\n * 注册事件\r\n */\r\n private registerEvents(): void {\r\n // 注册导入完成事件\r\n this.bpmnJS.on<ImportDoneEvent>('import.done', ({ error }) => {\r\n if (!error) {\r\n // 加载完成后居中\r\n this.bpmnJS.get<Canvas>('canvas').zoom('fit-viewport', { x: 0, y: 0 });\r\n }\r\n });\r\n this.bpmnJS.on('selection.changed', (e: any) => {\r\n const [element] = e.newSelection;\r\n this.targetElement = element;\r\n this.bpmnJS.get<ElementRegistry>('elementRegistry');\r\n const modeling = this.bpmnJS.get<Modeling>('modeling');\r\n this.selectionChange.emit({ modeler: this.bpmnJS, modeling, element });\r\n });\r\n }\r\n\r\n /**\r\n * 更新选中元素节点标签值\r\n * @param modeling\r\n * @param element\r\n * @param data\r\n */\r\n public updateProperties(modeling: Modeling, element: BpmnModelTypes.Element, data: Record<string, string>) {\r\n modeling.updateProperties(element, data);\r\n }\r\n\r\n /**\r\n * 更新选中元素节点标签值\r\n * @param modeling\r\n * @param element\r\n * @param key\r\n * @param value\r\n */\r\n public updatePropertiesByKey(modeling: Modeling, element: BpmnModelTypes.Element, key: string, value: any) {\r\n modeling.updateProperties(element, { [key]: value });\r\n }\r\n\r\n /**\r\n * 设置默认值\r\n */\r\n private setDefaultData(data: string): Observable<ImportXMLResult> {\r\n return from<Promise<ImportXMLResult>>(this.bpmnJS.importXML(data));\r\n }\r\n\r\n /**\r\n * 导入模型\r\n * @param event\r\n */\r\n importModelXML(event: Event): void {\r\n const input = event.target as HTMLInputElement;\r\n if (!input.files?.length) {\r\n return;\r\n }\r\n\r\n const file = input.files.item(0)!;\r\n\r\n const reader = new FileReader();\r\n // 读取File对象中的文本信息,编码格式为UTF-8\r\n reader.readAsText(file, 'utf-8');\r\n reader.onload = () => {\r\n input.value = '';\r\n //读取完毕后将文本信息导入到Bpmn建模器\r\n this.setDefaultData(reader.result as string).subscribe(\r\n () => {},\r\n ({ error }) => {\r\n console.error('打开模型出错,请确认该模型符合Bpmn2.0规范');\r\n },\r\n );\r\n };\r\n }\r\n\r\n /**\r\n * 重置画板\r\n */\r\n resetDrawingBoard(): void {\r\n this.setDefaultData(defaultBpmnData).subscribe();\r\n }\r\n\r\n /**\r\n * 放大\r\n */\r\n zoomIn() {\r\n this.bpmnJS.get<Canvas>('canvas').zoom(++this.scale);\r\n }\r\n\r\n /**\r\n * 缩小\r\n */\r\n zoomOut() {\r\n if (this.scale > 1) {\r\n this.bpmnJS.get<Canvas>('canvas').zoom(--this.scale);\r\n }\r\n }\r\n\r\n /**\r\n * 重置位置\r\n */\r\n zoomReset() {\r\n this.bpmnJS.get<Canvas>('canvas').zoom('fit-viewport', { x: 0, y: 0 });\r\n }\r\n\r\n /**\r\n * 下载 .bpmn 格式\r\n */\r\n downloadBPMN(name?: string): void {\r\n this.bpmnJS.saveXML({ format: true }).then(({ xml }) => {\r\n if (xml) {\r\n // 把数据转换为URI,下载要用到的\r\n const encodedData = encodeURIComponent(xml);\r\n const href = `data:application/bpmn20-xml;charset=UTF-8,${encodedData}`;\r\n this.downloadFile(href, name ?? `diagram-${uid()}.bpmn`);\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * 下载 .svg 格式\r\n */\r\n downloadSVG(): void {\r\n this.bpmnJS.saveSVG().then(({ svg }) => {\r\n if (svg) {\r\n const svgBlob = new Blob([svg], {\r\n type: 'image/svg+xml',\r\n });\r\n this.downloadFile(URL.createObjectURL(svgBlob), `diagram-${uid()}.svg`);\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * 通过href下载文件\r\n */\r\n private downloadFile(href: string, filename: string): void {\r\n const tempLink = document.createElement('a');\r\n tempLink.style.display = 'none';\r\n tempLink.href = href;\r\n tempLink.setAttribute('download', filename);\r\n if (typeof tempLink.download === 'undefined') {\r\n tempLink.setAttribute('target', '_blank');\r\n }\r\n document.body.appendChild(tempLink);\r\n tempLink.click();\r\n document.body.removeChild(tempLink);\r\n }\r\n}\r\n","<div class=\"layout:col\">\r\n <div class=\"layout:header px-4\">\r\n <div class=\"btn-group\">\r\n <button class=\"btn icon\" title=\"导入模型 .bpmn\" (click)=\"fileRef.click()\">\r\n <input #fileRef type=\"file\" style=\"display: none\" accept=\".bpmn\" (change)=\"importModelXML($event)\" />\r\n <i icon type=\"folder-open\"></i>\r\n </button>\r\n <button class=\"btn icon\" title=\"重置画板\" (click)=\"resetDrawingBoard()\">\r\n <i icon type=\"reset\"></i>\r\n </button>\r\n </div>\r\n\r\n <div class=\"ml-4\">\r\n <div class=\"btn-group\">\r\n <button class=\"btn icon\" title=\"放大\" (click)=\"zoomIn()\">\r\n <i icon type=\"plus-circle\"></i>\r\n </button>\r\n <button class=\"btn icon\" title=\"缩小\" (click)=\"zoomOut()\">\r\n <i icon type=\"minus-circle\"></i>\r\n </button>\r\n <button class=\"btn icon\" title=\"重置位置\" (click)=\"zoomReset()\">\r\n <i icon type=\"map-pin\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n\r\n <div class=\"ml-4\">\r\n <div class=\"btn-group\">\r\n <button class=\"btn icon\" title=\"下载为.bpmn格式\" (click)=\"downloadBPMN()\">\r\n <i icon type=\"down-file\"></i>\r\n </button>\r\n <button class=\"btn icon\" title=\"下载为.svg格式\" (click)=\"downloadSVG()\">\r\n <i icon type=\"down-svg\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"layout:content layout:row\">\r\n <div class=\"layout:content\">\r\n <div #ref class=\"w-full h-full\"></div>\r\n </div>\r\n <div class=\"layout:aside\" *ngIf=\"propertiesTemplate\">\r\n <ng-template [ngTemplateOutlet]=\"propertiesTemplate\"></ng-template>\r\n </div>\r\n </div>\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { RkBpmnViewerComponent } from './bpmn-viewer/bpmn-viewer.component';\r\nimport { RkBpmnEditorComponent } from './bpmn-editor/bpmn-editor.component';\r\n\r\n@NgModule({\r\n declarations: [RkBpmnViewerComponent, RkBpmnEditorComponent],\r\n imports: [CommonModule],\r\n exports: [RkBpmnViewerComponent, RkBpmnEditorComponent],\r\n})\r\nexport class RkBpmnModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"reskin-bpmn.js","sources":["../../../library/bpmn/src/config/translations.ts","../../../library/bpmn/src/config/customTranslate.ts","../../../library/bpmn/src/bpmn-viewer/bpmn-viewer.component.ts","../../../library/bpmn/src/bpmn-viewer/bpmn-viewer.component.html","../../../library/bpmn/src/config/defaultXML.ts","../../../library/bpmn/src/bpmn-editor/bpmn-editor.component.ts","../../../library/bpmn/src/bpmn-editor/bpmn-editor.component.html","../../../library/bpmn/src/bpmn.module.ts","../../../library/bpmn/reskin-bpmn.ts"],"sourcesContent":["/**\r\n * 写英文对应的中文内容\r\n */\r\nexport default {\r\n 'Activate global connect tool': '激活全局连接工具',\r\n 'Append {type}': '追加 {type}',\r\n 'Append endEvent': '追加 结束事件 ',\r\n 'Append task': '追加 任务',\r\n 'Append gateway': '追加 网关',\r\n 'Append intermediate/boundary event': '追加 中间/边界 事件',\r\n 'Add lane above': '在上面添加道',\r\n 'Divide into two lanes': '分割成两个道',\r\n 'Divide into three lanes': '分割成三个道',\r\n 'Add lane below': '在下面添加道',\r\n 'Append compensation activity': '追加补偿活动',\r\n 'Change type': '修改类型',\r\n 'Change element': '改变元素',\r\n 'Connect using association': '使用关联连接',\r\n 'Connect using sequence/message flow or association': '使用顺序/消息流或者关联连接',\r\n 'Connect using data input association': '使用数据输入关联连接',\r\n Remove: '移除',\r\n 'Activate hand tool': '激活抓手工具',\r\n 'Activate lasso tool': '激活套索工具',\r\n 'Activate create/remove space tool': '激活创建/删除空间工具',\r\n 'Create expanded sub-process': '创建扩展子过程',\r\n 'Create intermediate/boundary event': '创建中间抛出事件/边界事件',\r\n 'Create pool/participant': '创建池/参与者',\r\n 'Parallel multi-instance': '并行多重事件',\r\n 'Sequential multi-instance': '时序多重事件',\r\n 'Data object reference': '数据对象参考',\r\n 'Data store reference': '数据存储参考',\r\n Loop: '循环',\r\n 'Ad-hoc': '即席',\r\n 'Create {type}': '创建 {type}',\r\n 'Create task': '创建任务',\r\n 'Create start event': '创建开始事件',\r\n 'Create end event': '创建结束事件',\r\n 'Create group': '创建组',\r\n Task: '任务',\r\n 'Send task': '发送任务',\r\n 'Receive task': '接收任务',\r\n 'User task': '用户任务',\r\n 'Manual task': '手工任务',\r\n 'Business rule task': '业务规则任务',\r\n 'Service task': '服务任务',\r\n 'Script task': '脚本任务',\r\n 'Call activity': '调用活动',\r\n 'Sub-process (collapsed)': '子流程(折叠的)',\r\n 'Sub-process (expanded)': '子流程(展开的)',\r\n 'Start event': '开始事件',\r\n StartEvent: '开始事件',\r\n 'Intermediate throw event': '中间事件',\r\n 'End event': '结束事件',\r\n EndEvent: '结束事件',\r\n 'Create gateway': '创建网关',\r\n GateWay: '网关',\r\n 'Create Intermediate/Boundary Event': '创建中间/边界事件',\r\n 'Message start event': '消息开始事件',\r\n 'Timer start event': '定时开始事件',\r\n 'Conditional start event': '条件开始事件',\r\n 'Signal start event': '信号开始事件',\r\n 'Error start event': '错误开始事件',\r\n 'Escalation start event': '升级开始事件',\r\n 'Compensation start event': '补偿开始事件',\r\n 'Message start event (non-interrupting)': '消息开始事件(非中断)',\r\n 'Timer start event (non-interrupting)': '定时开始事件(非中断)',\r\n 'Conditional start event (non-interrupting)': '条件开始事件(非中断)',\r\n 'Signal start event (non-interrupting)': '信号开始事件(非中断)',\r\n 'Escalation start event (non-interrupting)': '升级开始事件(非中断)',\r\n 'Message intermediate catch event': '消息中间捕获事件',\r\n 'Message intermediate throw event': '消息中间抛出事件',\r\n 'Timer intermediate catch event': '定时中间捕获事件',\r\n 'Escalation intermediate throw event': '升级中间抛出事件',\r\n 'Conditional intermediate catch event': '条件中间捕获事件',\r\n 'Link intermediate catch event': '链接中间捕获事件',\r\n 'Link intermediate throw event': '链接中间抛出事件',\r\n 'Compensation intermediate throw event': '补偿中间抛出事件',\r\n 'Signal intermediate catch event': '信号中间捕获事件',\r\n 'Signal intermediate throw event': '信号中间抛出事件',\r\n 'Message end event': '消息结束事件',\r\n 'Escalation end event': '定时结束事件',\r\n 'Error end event': '错误结束事件',\r\n 'Cancel end event': '取消结束事件',\r\n 'Compensation end event': '补偿结束事件',\r\n 'Signal end event': '信号结束事件',\r\n 'Terminate end event': '终止结束事件',\r\n 'Message boundary event': '消息边界事件',\r\n 'Message boundary event (non-interrupting)': '消息边界事件(非中断)',\r\n 'Timer boundary event': '定时边界事件',\r\n 'Timer boundary event (non-interrupting)': '定时边界事件(非中断)',\r\n 'Escalation boundary event': '升级边界事件',\r\n 'Escalation boundary event (non-interrupting)': '升级边界事件(非中断)',\r\n 'Conditional boundary event': '条件边界事件',\r\n 'Conditional boundary event (non-interrupting)': '条件边界事件(非中断)',\r\n 'Error boundary event': '错误边界事件',\r\n 'Cancel boundary event': '取消边界事件',\r\n 'Signal boundary event': '信号边界事件',\r\n 'Signal boundary event (non-interrupting)': '信号边界事件(非中断)',\r\n 'Compensation boundary event': '补偿边界事件',\r\n 'Exclusive gateway': '互斥网关',\r\n 'Parallel gateway': '并行网关',\r\n 'Inclusive gateway': '相容网关',\r\n 'Complex gateway': '复杂网关',\r\n 'Event-based gateway': '事件网关',\r\n Transaction: '转运',\r\n 'Sub-process': '子流程',\r\n 'Event sub-process': '事件子流程',\r\n 'Collapsed pool': '折叠池',\r\n 'Expanded pool': '展开池',\r\n // Errors\r\n 'no parent for {element} in {parent}': '在{parent}里,{element}没有父类',\r\n 'no shape type specified': '没有指定的形状类型',\r\n 'flow elements must be children of pools/participants': '流元素必须是池/参与者的子类',\r\n 'out of bounds release': 'out of bounds release',\r\n 'more than {count} child lanes': '子道大于{count} ',\r\n 'element required': '元素不能为空',\r\n 'diagram not part of bpmn:Definitions': '流程图不符合bpmn规范',\r\n 'no diagram to display': '没有可展示的流程图',\r\n 'no process or collaboration to display': '没有可展示的流程/协作',\r\n 'element {element} referenced by {referenced}#{property} not yet drawn':\r\n '由{referenced}#{property}引用的{element}元素仍未绘制',\r\n 'already rendered {element}': '{element} 已被渲染',\r\n 'failed to import {element}': '导入{element}失败',\r\n //属性面板的参数\r\n Id: '编号',\r\n Name: '名称',\r\n General: '常规',\r\n Details: '详情',\r\n 'Message name': '消息名称',\r\n Message: '消息',\r\n Initiator: '创建者',\r\n 'Asynchronous continuations': '持续异步',\r\n 'Asynchronous before': '异步前',\r\n 'Asynchronous after': '异步后',\r\n 'Job configuration': '工作配置',\r\n Exclusive: '排除',\r\n 'Job priority': '工作优先级',\r\n 'Retry time cycle': '重试时间周期',\r\n Documentation: '文档',\r\n 'Element documentation': '元素文档',\r\n 'History configuration': '历史配置',\r\n 'History time to live': '历史的生存时间',\r\n Forms: '表单',\r\n 'Form key': '表单key',\r\n 'Form fields': '表单字段',\r\n 'Business key': '业务key',\r\n 'Form field': '表单字段',\r\n ID: '编号',\r\n Type: '类型',\r\n Label: '名称',\r\n 'Default value': '默认值',\r\n Validation: '校验',\r\n 'Add constraint': '添加约束',\r\n Config: '配置',\r\n Properties: '属性',\r\n 'Add property': '添加属性',\r\n Value: '值',\r\n Add: '添加',\r\n Values: '值',\r\n 'Add value': '添加值',\r\n Listeners: '监听器',\r\n 'Execution listener': '执行监听',\r\n 'Event type': '事件类型',\r\n 'Listener type': '监听器类型',\r\n 'Java class': 'Java类',\r\n Expression: '表达式',\r\n 'Must provide a value': '必须提供一个值',\r\n 'Delegate expression': '代理表达式',\r\n Script: '脚本',\r\n 'Script format': '脚本格式',\r\n 'Script type': '脚本类型',\r\n 'Inline script': '内联脚本',\r\n 'External script': '外部脚本',\r\n Resource: '资源',\r\n 'Field injection': '字段注入',\r\n Extensions: '扩展',\r\n 'Input/output': '输入/输出',\r\n 'Input parameters': '输入参数',\r\n 'Output parameters': '输出参数',\r\n Parameters: '参数',\r\n 'Output parameter': '输出参数',\r\n 'Timer definition type': '定时器定义类型',\r\n 'Timer definition': '定时器定义',\r\n Date: '日期',\r\n Duration: '持续',\r\n Cycle: '循环',\r\n Signal: '信号',\r\n 'Signal name': '信号名称',\r\n Escalation: '升级',\r\n Error: '错误',\r\n 'Link name': '链接名称',\r\n Condition: '条件名称',\r\n 'Variable name': '变量名称',\r\n 'Variable event': '变量事件',\r\n 'Specify more than one variable change event as a comma separated list.': '多个变量事件以逗号隔开',\r\n 'Wait for completion': '等待完成',\r\n 'Activity ref': '活动参考',\r\n 'Version tag': '版本标签',\r\n Executable: '可执行文件',\r\n 'External task configuration': '扩展任务配置',\r\n 'Task priority': '任务优先级',\r\n External: '外部',\r\n Connector: '连接器',\r\n 'Must configure Connector': '必须配置连接器',\r\n 'Connector Id': '连接器编号',\r\n Implementation: '实现方式',\r\n 'Field Injections': '字段注入',\r\n Fields: '字段',\r\n 'Result Variable': '结果变量',\r\n Topic: '主题',\r\n 'Configure Connector': '配置连接器',\r\n 'Input Parameter': '输入参数',\r\n Assignee: '代理人',\r\n 'Candidate Users': '候选用户',\r\n 'Candidate Groups': '候选组',\r\n 'Due Date': '到期时间',\r\n 'Follow Up Date': '跟踪日期',\r\n Priority: '优先级',\r\n 'The follow up date as an EL expression (e.g. ${someDate} or an ISO date (e.g. 2015-06-26T09:54:00)':\r\n '跟踪日期必须符合EL表达式,如: ${someDate} ,或者一个ISO标准日期,如:2015-06-26T09:54:00',\r\n 'The due date as an EL expression (e.g. ${someDate} or an ISO date (e.g. 2015-06-26T09:54:00)':\r\n '跟踪日期必须符合EL表达式,如: ${someDate} ,或者一个ISO标准日期,如:2015-06-26T09:54:00',\r\n Variables: '变量',\r\n 'Candidate Starter Configuration': '候选开始配置',\r\n 'Task Listener': '任务监听器',\r\n 'Candidate Starter Groups': '候选开始组',\r\n 'Candidate Starter Users': '候选开始用户',\r\n 'Tasklist Configuration': '任务列表配置',\r\n Startable: '启动',\r\n 'Specify more than one group as a comma separated list.': '指定多个组,用逗号分隔',\r\n 'Specify more than one user as a comma separated list.': '指定多个用户,用逗号分隔',\r\n 'This maps to the process definition key.': '这会映射为流程定义的键',\r\n 'CallActivity Type': '调用活动类型',\r\n 'Condition Type': '条件类型',\r\n 'Create UserTask': '创建用户任务',\r\n 'Create CallActivity': '创建调用活动',\r\n 'Called Element': '调用元素',\r\n 'Create data object reference': '创建数据对象引用',\r\n 'Create data store reference': '创建数据存储引用',\r\n 'Multi Instance': '多实例',\r\n 'Loop Cardinality': '实例数量',\r\n Collection: '任务参与人列表',\r\n 'Element Variable': '元素变量',\r\n 'Completion Condition': '完成条件',\r\n 'Participant multiplicity': '参与者多重性',\r\n 'Empty pool/participant': '空池/参与者列表',\r\n 'Append end event': '追加结束事件',\r\n 'Connect to other element': '连接到其他元素',\r\n Delete: '删除元素',\r\n 'Add text annotation': '添加文本注解',\r\n 'Open minimap': '打开小地图',\r\n 'Close minimap': '关闭小地图',\r\n};\r\n","import translations from './translations';\r\n\r\nexport default function customTranslate(template: string, replacements: Record<string, any>) {\r\n replacements = replacements || {};\r\n\r\n // Translate\r\n // @ts-ignore\r\n template = translations[template] || template;\r\n\r\n // Replace\r\n return template.replace(/{([^}]+)}/g, function (_, key) {\r\n return replacements[key] || '{' + key + '}';\r\n });\r\n}\r\n","import {\r\n AfterContentChecked,\r\n Component,\r\n ElementRef,\r\n EventEmitter,\r\n Input,\r\n OnChanges,\r\n OnDestroy,\r\n OnInit,\r\n Output,\r\n SimpleChanges,\r\n ViewChild,\r\n} from '@angular/core';\r\n// @ts-ignore\r\nimport * as BpmnModelTypes from 'bpmn-js/lib/model/Types';\r\n// @ts-ignore\r\nimport * as DiagramCoreTypes from 'diagram-js/lib/core/Types';\r\nimport ElementRegistry from 'diagram-js/lib/core/ElementRegistry';\r\n// @ts-ignore\r\nimport * as DiagramModelTypes from 'diagram-js/lib/model/Types';\r\n// @ts-ignore\r\nimport * as DiagramUtilTypes from 'diagram-js/lib/util/Types';\r\n\r\nimport type Canvas from 'diagram-js/lib/core/Canvas';\r\nimport type { ImportDoneEvent, ImportXMLResult } from 'bpmn-js/lib/BaseViewer';\r\nimport Viewer from 'bpmn-js/lib/Viewer';\r\nimport customTranslate from '../config/customTranslate';\r\n// @ts-ignore\r\nimport minimapModule from 'diagram-js-minimap';\r\nimport { from, Observable } from 'rxjs';\r\nimport BaseViewer from 'bpmn-js/lib/BaseViewer';\r\n// 预览拖动\r\nimport ZoomScrollModule from 'diagram-js/lib/navigation/zoomscroll';\r\nimport MoveCanvasModule from 'diagram-js/lib/navigation/movecanvas';\r\nimport ModelingModule from 'bpmn-js/lib/features/modeling';\r\nimport Modeling from 'bpmn-js/lib/features/modeling/Modeling';\r\n\r\n@Component({\r\n selector: 'rk-bpmn-viewer',\r\n templateUrl: './bpmn-viewer.component.html',\r\n styleUrls: ['../common.scss', './bpmn-viewer.component.scss'],\r\n})\r\nexport class RkBpmnViewerComponent implements OnInit, OnChanges, AfterContentChecked, OnDestroy {\r\n /**\r\n * 值 xml string\r\n */\r\n @Input() data!: string;\r\n /**\r\n * 监听渲染完成\r\n */\r\n @Output() afterRenderChange = new EventEmitter();\r\n\r\n constructor() {}\r\n\r\n @ViewChild('ref') private el?: ElementRef<HTMLDivElement>;\r\n private Viewer!: BaseViewer;\r\n private scale = 1;\r\n\r\n ngOnInit(): void {}\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (changes.data && changes.data.currentValue) {\r\n if (this.Viewer) {\r\n this.setDefaultData(this.data).subscribe();\r\n }\r\n }\r\n }\r\n\r\n ngAfterContentChecked() {\r\n const rect = this.el?.nativeElement.getBoundingClientRect();\r\n if (rect?.width && !this.Viewer) {\r\n this.onInitBpmn();\r\n this.registerEvents();\r\n this.setDefaultData(this.data).subscribe();\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.Viewer?.destroy();\r\n }\r\n\r\n /**\r\n * 初始化bpmnJS app\r\n */\r\n private onInitBpmn(): void {\r\n this.Viewer = new Viewer({\r\n container: this.el?.nativeElement,\r\n additionalModules: [\r\n minimapModule,\r\n ZoomScrollModule,\r\n MoveCanvasModule,\r\n // 汉化\r\n {\r\n translate: ['value', customTranslate],\r\n },\r\n ModelingModule,\r\n ],\r\n });\r\n }\r\n\r\n /**\r\n * 注册事件\r\n */\r\n private registerEvents(): void {\r\n // 注册导入完成事件\r\n this.Viewer.on<ImportDoneEvent>('import.done', ({ error }) => {\r\n if (!error) {\r\n // 加载完成后居中\r\n this.Viewer.get<Canvas>('canvas').zoom('fit-viewport', { x: 0, y: 0 });\r\n // 获得顶层节点\r\n // bpmnModeler.get('canvas').getRootElement()\r\n // 选中节点\r\n // bpmnModeler.get('selection').select(element)\r\n // 遍历所有节点\r\n // bpmnModeler.get('canvas').getRootElement()[0]\r\n\r\n // 设置某个节点颜色\r\n const elementRegistry = this.Viewer.get<ElementRegistry>('elementRegistry');\r\n const nodes = elementRegistry.getAll();\r\n if (nodes && nodes.length > 0) {\r\n const modeling = this.Viewer.get<Modeling>('modeling');\r\n this.afterRenderChange.emit({\r\n nodes,\r\n modeling,\r\n viewer: this.Viewer,\r\n });\r\n // const start = nodes.find((n) => n.businessObject.$attrs.description === 'start');\r\n // const manager = nodes.find((n) => n.businessObject.$attrs.description === 'leader');\r\n // if (start && manager && modeling) {\r\n // modeling.setColor([start, manager] as BpmnModelTypes.Element[], {\r\n // // fill: null,\r\n // stroke: '#1890ff',\r\n // });\r\n //\r\n // // 设置线的颜色\r\n // // 进线\r\n // const edgesIn = manager.incoming.filter((v: any) => !!start.outgoing.find((n: any) => n.id === v.id));\r\n //\r\n // // 出线\r\n // const edgesOut = manager.outgoing;\r\n // modeling.setColor([...edgesIn, ...edgesOut] as [BpmnModelTypes.Element], {\r\n // stroke: '#1890ff',\r\n // });\r\n // }\r\n }\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * 设置默认值\r\n */\r\n private setDefaultData(data: string): Observable<ImportXMLResult> {\r\n return from<Promise<ImportXMLResult>>(this.Viewer.importXML(data));\r\n }\r\n\r\n /**\r\n * 放大\r\n */\r\n zoomIn() {\r\n this.Viewer.get<Canvas>('canvas').zoom(++this.scale);\r\n }\r\n\r\n /**\r\n * 缩小\r\n */\r\n zoomOut() {\r\n if (this.scale > 1) {\r\n this.Viewer.get<Canvas>('canvas').zoom(--this.scale);\r\n }\r\n }\r\n\r\n /**\r\n * 重置位置\r\n */\r\n zoomReset() {\r\n this.Viewer.get<Canvas>('canvas').zoom('fit-viewport', { x: 0, y: 0 });\r\n }\r\n}\r\n","<div class=\"layout:col\">\r\n <div class=\"layout:header px-4\">\r\n <div class=\"btn-group\">\r\n <button class=\"btn icon\" title=\"放大\" (click)=\"zoomIn()\">\r\n <i icon type=\"plus-circle\"></i>\r\n </button>\r\n <button class=\"btn icon\" title=\"缩小\" (click)=\"zoomOut()\">\r\n <i icon type=\"minus-circle\"></i>\r\n </button>\r\n <button class=\"btn icon\" title=\"重置位置\" (click)=\"zoomReset()\">\r\n <i icon type=\"map-pin\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n <div class=\"layout:content\">\r\n <div #ref class=\"w-full h-full\"></div>\r\n </div>\r\n</div>\r\n","/**\r\n * 默认值\r\n */\r\nexport const defaultBpmnData = `\r\n<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n<bpmn:definitions xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" >\r\n <bpmn:process id=\"Process_${uid()}\" isExecutable=\"false\" />\r\n <bpmndi:BPMNDiagram id=\"BPMNDiagram_${uid()}\">\r\n <bpmndi:BPMNPlane id=\"BPMNPlane_${uid()}\" bpmnElement=\"Process_${uid()}\" />\r\n </bpmndi:BPMNDiagram>\r\n</bpmn:definitions>`;\r\n\r\n/**\r\n * 生成随机字符串\r\n */\r\nexport function uid() {\r\n return Math.random().toString(36).substring(2);\r\n}\r\n","/*\n * @Description: 代码简介\n * @Author: Cyclone77\n * @E-Mail: cyclone77@126.com\n * @Date: 2024-04-24 09:48:29\n * @LastEditTime: 2024-04-24 09:48:29\n */\nimport {\n AfterContentChecked,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Output,\n SimpleChanges,\n TemplateRef,\n ViewChild,\n} from '@angular/core';\n\nimport * as BpmnModelTypes from 'bpmn-js/lib/model/Types';\n// @ts-ignore\nimport * as DiagramCoreTypes from 'diagram-js/lib/core/Types';\nimport ElementRegistry from 'diagram-js/lib/core/ElementRegistry';\n// @ts-ignore\nimport * as DiagramModelTypes from 'diagram-js/lib/model/Types';\n// @ts-ignore\nimport * as DiagramUtilTypes from 'diagram-js/lib/util/Types';\n// @ts-ignore\nimport * as BpmnUtilTypes from 'bpmn-js/lib/util/Types';\n// @ts-ignore\nimport * as CommandHandler from 'diagram-js/lib/command/CommandHandler';\n\nimport type Canvas from 'diagram-js/lib/core/Canvas';\nimport type { ImportDoneEvent, ImportXMLResult, SaveSVGResult, SaveXMLResult } from 'bpmn-js/lib/BaseViewer';\nimport BpmnJS from 'bpmn-js/lib/Modeler';\n// @ts-ignore\nimport gridModule from 'diagram-js-grid';\n// @ts-ignore\nimport minimapModule from 'diagram-js-minimap';\nimport { from, Observable } from 'rxjs';\nimport Modeling from 'bpmn-js/lib/features/modeling/Modeling';\nimport { defaultBpmnData, uid } from '../config/defaultXML';\nimport customTranslate from '../config/customTranslate';\n\n@Component({\n selector: 'rk-bpmn-editor',\n templateUrl: './bpmn-editor.component.html',\n styleUrls: ['../common.scss', './bpmn-editor.component.scss'],\n})\nexport class RkBpmnEditorComponent implements OnInit, OnChanges, AfterContentChecked, OnDestroy {\n /**\n * 值 xml string\n */\n @Input() data?: string;\n /**\n * 属性面板模板\n */\n @Input() propertiesTemplate?: TemplateRef<void>;\n /**\n * 选中元素变化时触发\n */\n @Output() selectionChange = new EventEmitter();\n\n constructor() {}\n\n @ViewChild('ref') private el?: ElementRef<HTMLDivElement>;\n @ViewChild('properties') private properties?: ElementRef<HTMLDivElement>;\n private bpmnJS!: BpmnJS;\n private scale = 1;\n targetElement?: any;\n\n ngOnInit(): void {}\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes.data && changes.data.currentValue) {\n if (this.bpmnJS) {\n this.setDefaultData(changes.data.currentValue).subscribe();\n }\n }\n }\n\n ngAfterContentChecked() {\n const rect = this.el?.nativeElement.getBoundingClientRect();\n if (rect?.width && !this.bpmnJS) {\n this.onInitBpmn();\n this.registerEvents();\n this.setDefaultData(this.data ?? defaultBpmnData).subscribe();\n }\n }\n\n ngOnDestroy(): void {\n this.bpmnJS?.destroy();\n }\n\n /**\n * 初始化bpmnJS app\n */\n private onInitBpmn(): void {\n this.bpmnJS = new BpmnJS({\n container: this.el?.nativeElement,\n additionalModules: [\n gridModule,\n minimapModule,\n // 汉化\n {\n translate: ['value', customTranslate],\n },\n ],\n //添加属性面板\n propertiesPanel: {\n parent: this.properties?.nativeElement,\n },\n });\n }\n\n /**\n * 注册事件\n */\n private registerEvents(): void {\n // 注册导入完成事件\n this.bpmnJS.on<ImportDoneEvent>('import.done', ({ error }) => {\n if (!error) {\n // 加载完成后居中\n this.bpmnJS.get<Canvas>('canvas').zoom('fit-viewport', { x: 0, y: 0 });\n }\n });\n this.bpmnJS.on('selection.changed', (e: any) => {\n const [element] = e.newSelection;\n this.targetElement = element;\n this.bpmnJS.get<ElementRegistry>('elementRegistry');\n const modeling = this.bpmnJS.get<Modeling>('modeling');\n this.selectionChange.emit({ modeler: this.bpmnJS, modeling, element });\n });\n }\n\n /**\n * 更新选中元素节点标签值\n * @param modeling\n * @param element\n * @param data\n */\n public updateProperties(modeling: Modeling, element: BpmnModelTypes.Element, data: Record<string, string>) {\n modeling.updateProperties(element, data);\n }\n\n /**\n * 更新选中元素节点标签值\n * @param modeling\n * @param element\n * @param key\n * @param value\n */\n public updatePropertiesByKey(modeling: Modeling, element: BpmnModelTypes.Element, key: string, value: any) {\n modeling.updateProperties(element, { [key]: value });\n }\n\n /**\n * 设置默认值\n */\n private setDefaultData(data: string): Observable<ImportXMLResult> {\n return from<Promise<ImportXMLResult>>(this.bpmnJS.importXML(data));\n }\n\n /**\n * 导入模型\n * @param event\n */\n importModelXML(event: Event): void {\n const input = event.target as HTMLInputElement;\n if (!input.files?.length) {\n return;\n }\n\n const file = input.files.item(0)!;\n\n const reader = new FileReader();\n // 读取File对象中的文本信息,编码格式为UTF-8\n reader.readAsText(file, 'utf-8');\n reader.onload = () => {\n input.value = '';\n //读取完毕后将文本信息导入到Bpmn建模器\n this.setDefaultData(reader.result as string).subscribe(\n () => {},\n ({ error }) => {\n console.error('打开模型出错,请确认该模型符合Bpmn2.0规范');\n },\n );\n };\n }\n\n /**\n * 重置画板\n */\n resetDrawingBoard(): void {\n this.setDefaultData(defaultBpmnData).subscribe();\n }\n\n /**\n * 放大\n */\n zoomIn() {\n this.bpmnJS.get<Canvas>('canvas').zoom(++this.scale);\n }\n\n /**\n * 缩小\n */\n zoomOut() {\n if (this.scale > 1) {\n this.bpmnJS.get<Canvas>('canvas').zoom(--this.scale);\n }\n }\n\n /**\n * 重置位置\n */\n zoomReset() {\n this.bpmnJS.get<Canvas>('canvas').zoom('fit-viewport', { x: 0, y: 0 });\n }\n\n /**\n * 保存当前 BPMN 图的 XML 表示\n *\n * 此方法用于将当前 BPMN 图的 XML 表示保存下来它可以接受一个可选参数 format,\n * 该参数指示是否应格式化 XML 输出当 format 设置为 true 时,XML 将以一种更易于阅读的格式输出;\n * 否则,它将以紧凑的形式输出\n *\n * @param format {boolean} - 可选参数,默认为 true如果设置为 true,保存的 XML 将被格式化以提高可读性\n * @returns {Promise<string>} - 返回一个 Promise,解析为 BPMN 图的 XML 字符串表示\n */\n saveXML(format: boolean = true): Promise<SaveXMLResult> {\n return this.bpmnJS.saveXML({ format });\n }\n\n /**\n * 下载 .bpmn 格式\n */\n downloadBPMN(name?: string): void {\n this.saveXML().then(({ xml }) => {\n if (xml) {\n // 把数据转换为URI,下载要用到的\n const encodedData = encodeURIComponent(xml);\n const href = `data:application/bpmn20-xml;charset=UTF-8,${encodedData}`;\n this.downloadFile(href, name ?? `diagram-${uid()}.bpmn`);\n }\n });\n }\n\n /**\n * 保存SVG图形\n *\n * 此方法用于将当前图表以SVG格式保存它不接受任何参数\n * 返回一个Promise对象,该Promise解析为SaveSVGResult类型的结果\n * 主要用于需要以SVG格式导出或保存当前图表的场景\n */\n saveSVG(): Promise<SaveSVGResult> {\n return this.bpmnJS.saveSVG();\n }\n\n /**\n * 下载 .svg 格式\n */\n downloadSVG(): void {\n this.saveSVG().then(({ svg }) => {\n if (svg) {\n const svgBlob = new Blob([svg], {\n type: 'image/svg+xml',\n });\n this.downloadFile(URL.createObjectURL(svgBlob), `diagram-${uid()}.svg`);\n }\n });\n }\n\n /**\n * 通过href下载文件\n */\n private downloadFile(href: string, filename: string): void {\n const tempLink = document.createElement('a');\n tempLink.style.display = 'none';\n tempLink.href = href;\n tempLink.setAttribute('download', filename);\n if (typeof tempLink.download === 'undefined') {\n tempLink.setAttribute('target', '_blank');\n }\n document.body.appendChild(tempLink);\n tempLink.click();\n document.body.removeChild(tempLink);\n }\n}\n","<div class=\"layout:col\">\r\n <div class=\"layout:header px-4\">\r\n <div class=\"btn-group\">\r\n <button class=\"btn icon\" title=\"导入模型 .bpmn\" (click)=\"fileRef.click()\">\r\n <input #fileRef type=\"file\" style=\"display: none\" accept=\".bpmn\" (change)=\"importModelXML($event)\" />\r\n <i icon type=\"folder-open\"></i>\r\n </button>\r\n <button class=\"btn icon\" title=\"重置画板\" (click)=\"resetDrawingBoard()\">\r\n <i icon type=\"reset\"></i>\r\n </button>\r\n </div>\r\n\r\n <div class=\"ml-4\">\r\n <div class=\"btn-group\">\r\n <button class=\"btn icon\" title=\"放大\" (click)=\"zoomIn()\">\r\n <i icon type=\"plus-circle\"></i>\r\n </button>\r\n <button class=\"btn icon\" title=\"缩小\" (click)=\"zoomOut()\">\r\n <i icon type=\"minus-circle\"></i>\r\n </button>\r\n <button class=\"btn icon\" title=\"重置位置\" (click)=\"zoomReset()\">\r\n <i icon type=\"map-pin\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n\r\n <div class=\"ml-4\">\r\n <div class=\"btn-group\">\r\n <button class=\"btn icon\" title=\"下载为.bpmn格式\" (click)=\"downloadBPMN()\">\r\n <i icon type=\"down-file\"></i>\r\n </button>\r\n <button class=\"btn icon\" title=\"下载为.svg格式\" (click)=\"downloadSVG()\">\r\n <i icon type=\"down-svg\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"layout:content layout:row\">\r\n <div class=\"layout:content\">\r\n <div #ref class=\"w-full h-full\"></div>\r\n </div>\r\n <div class=\"layout:aside\" *ngIf=\"propertiesTemplate\">\r\n <ng-template [ngTemplateOutlet]=\"propertiesTemplate\"></ng-template>\r\n </div>\r\n </div>\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { RkBpmnViewerComponent } from './bpmn-viewer/bpmn-viewer.component';\r\nimport { RkBpmnEditorComponent } from './bpmn-editor/bpmn-editor.component';\r\n\r\n@NgModule({\r\n declarations: [RkBpmnViewerComponent, RkBpmnEditorComponent],\r\n imports: [CommonModule],\r\n exports: [RkBpmnViewerComponent, RkBpmnEditorComponent],\r\n})\r\nexport class RkBpmnModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { AfterContentChecked, EventEmitter, OnChanges, OnDestroy, OnInit, SimpleChanges, TemplateRef } from '@angular/core';
|
|
2
2
|
import * as BpmnModelTypes from 'bpmn-js/lib/model/Types';
|
|
3
|
+
import type { SaveSVGResult, SaveXMLResult } from 'bpmn-js/lib/BaseViewer';
|
|
3
4
|
import Modeling from 'bpmn-js/lib/features/modeling/Modeling';
|
|
4
5
|
import * as i0 from "@angular/core";
|
|
5
6
|
export declare class RkBpmnEditorComponent implements OnInit, OnChanges, AfterContentChecked, OnDestroy {
|
|
@@ -73,10 +74,29 @@ export declare class RkBpmnEditorComponent implements OnInit, OnChanges, AfterCo
|
|
|
73
74
|
* 重置位置
|
|
74
75
|
*/
|
|
75
76
|
zoomReset(): void;
|
|
77
|
+
/**
|
|
78
|
+
* 保存当前 BPMN 图的 XML 表示
|
|
79
|
+
*
|
|
80
|
+
* 此方法用于将当前 BPMN 图的 XML 表示保存下来它可以接受一个可选参数 format,
|
|
81
|
+
* 该参数指示是否应格式化 XML 输出当 format 设置为 true 时,XML 将以一种更易于阅读的格式输出;
|
|
82
|
+
* 否则,它将以紧凑的形式输出
|
|
83
|
+
*
|
|
84
|
+
* @param format {boolean} - 可选参数,默认为 true如果设置为 true,保存的 XML 将被格式化以提高可读性
|
|
85
|
+
* @returns {Promise<string>} - 返回一个 Promise,解析为 BPMN 图的 XML 字符串表示
|
|
86
|
+
*/
|
|
87
|
+
saveXML(format?: boolean): Promise<SaveXMLResult>;
|
|
76
88
|
/**
|
|
77
89
|
* 下载 .bpmn 格式
|
|
78
90
|
*/
|
|
79
91
|
downloadBPMN(name?: string): void;
|
|
92
|
+
/**
|
|
93
|
+
* 保存SVG图形
|
|
94
|
+
*
|
|
95
|
+
* 此方法用于将当前图表以SVG格式保存它不接受任何参数
|
|
96
|
+
* 返回一个Promise对象,该Promise解析为SaveSVGResult类型的结果
|
|
97
|
+
* 主要用于需要以SVG格式导出或保存当前图表的场景
|
|
98
|
+
*/
|
|
99
|
+
saveSVG(): Promise<SaveSVGResult>;
|
|
80
100
|
/**
|
|
81
101
|
* 下载 .svg 格式
|
|
82
102
|
*/
|